diff --git a/README.md b/README.md index e24b726e4d..3954d6d200 100644 --- a/README.md +++ b/README.md @@ -1,30 +1,30 @@ -* [Documentation for PR #11450](docs-pr11450/) (built from [22817d8](https://github.com/cvc5/cvc5/commit/22817d8) @ [PR #11450](https://github.com/cvc5/cvc5/pull/11450), Dec Fri 13, 16:10 UTC) +* [Documentation for PR #11436](docs-pr11436/) (built from [1847570](https://github.com/cvc5/cvc5/commit/1847570) @ [PR #11436](https://github.com/cvc5/cvc5/pull/11436), Dec Fri 13, 17:27 UTC) *** -* [Documentation for main](docs-main/) (built from [1b8dd45](https://github.com/cvc5/cvc5/commit/1b8dd45) @ [main](https://github.com/cvc5/cvc5/tree/main), 14 hours ago) -* [Documentation for PR #11450](docs-pr11450/) (built from [22817d8](https://github.com/cvc5/cvc5/commit/22817d8) @ [PR #11450](https://github.com/cvc5/cvc5/pull/11450), now) -* [Documentation for PR #11449](docs-pr11449/) (built from [2660608](https://github.com/cvc5/cvc5/commit/2660608) @ [PR #11449](https://github.com/cvc5/cvc5/pull/11449), 39 minutes ago) -* [Documentation for PR #11448](docs-pr11448/) (built from [7d36a64](https://github.com/cvc5/cvc5/commit/7d36a64) @ [PR #11448](https://github.com/cvc5/cvc5/pull/11448), 44 minutes ago) -* [Documentation for PR #11447](docs-pr11447/) (built from [b3162fd](https://github.com/cvc5/cvc5/commit/b3162fd) @ [PR #11447](https://github.com/cvc5/cvc5/pull/11447), 62 minutes ago) -* [Documentation for PR #11445](docs-pr11445/) (built from [7faa941](https://github.com/cvc5/cvc5/commit/7faa941) @ [PR #11445](https://github.com/cvc5/cvc5/pull/11445), 19 hours ago) -* [Documentation for PR #11444](docs-pr11444/) (built from [7d7e812](https://github.com/cvc5/cvc5/commit/7d7e812) @ [PR #11444](https://github.com/cvc5/cvc5/pull/11444), 22 hours ago) -* [Documentation for PR #11443](docs-pr11443/) (built from [95c3d30](https://github.com/cvc5/cvc5/commit/95c3d30) @ [PR #11443](https://github.com/cvc5/cvc5/pull/11443), 23 hours ago) -* [Documentation for PR #11442](docs-pr11442/) (built from [42fca49](https://github.com/cvc5/cvc5/commit/42fca49) @ [PR #11442](https://github.com/cvc5/cvc5/pull/11442), 23 hours ago) +* [Documentation for main](docs-main/) (built from [1b8dd45](https://github.com/cvc5/cvc5/commit/1b8dd45) @ [main](https://github.com/cvc5/cvc5/tree/main), 15 hours ago) +* [Documentation for PR #11450](docs-pr11450/) (built from [22817d8](https://github.com/cvc5/cvc5/commit/22817d8) @ [PR #11450](https://github.com/cvc5/cvc5/pull/11450), 77 minutes ago) +* [Documentation for PR #11449](docs-pr11449/) (built from [2660608](https://github.com/cvc5/cvc5/commit/2660608) @ [PR #11449](https://github.com/cvc5/cvc5/pull/11449), 2 hours ago) +* [Documentation for PR #11448](docs-pr11448/) (built from [7d36a64](https://github.com/cvc5/cvc5/commit/7d36a64) @ [PR #11448](https://github.com/cvc5/cvc5/pull/11448), 2 hours ago) +* [Documentation for PR #11447](docs-pr11447/) (built from [b3162fd](https://github.com/cvc5/cvc5/commit/b3162fd) @ [PR #11447](https://github.com/cvc5/cvc5/pull/11447), 2 hours ago) +* [Documentation for PR #11445](docs-pr11445/) (built from [7faa941](https://github.com/cvc5/cvc5/commit/7faa941) @ [PR #11445](https://github.com/cvc5/cvc5/pull/11445), 21 hours ago) +* [Documentation for PR #11444](docs-pr11444/) (built from [7d7e812](https://github.com/cvc5/cvc5/commit/7d7e812) @ [PR #11444](https://github.com/cvc5/cvc5/pull/11444), 23 hours ago) +* [Documentation for PR #11443](docs-pr11443/) (built from [95c3d30](https://github.com/cvc5/cvc5/commit/95c3d30) @ [PR #11443](https://github.com/cvc5/cvc5/pull/11443), 24 hours ago) +* [Documentation for PR #11442](docs-pr11442/) (built from [42fca49](https://github.com/cvc5/cvc5/commit/42fca49) @ [PR #11442](https://github.com/cvc5/cvc5/pull/11442), 25 hours ago) * [Documentation for PR #11441](docs-pr11441/) (built from [fdf0039](https://github.com/cvc5/cvc5/commit/fdf0039) @ [PR #11441](https://github.com/cvc5/cvc5/pull/11441), 2 days ago) -* [Documentation for PR #11440](docs-pr11440/) (built from [6da8a83](https://github.com/cvc5/cvc5/commit/6da8a83) @ [PR #11440](https://github.com/cvc5/cvc5/pull/11440), 18 hours ago) +* [Documentation for PR #11440](docs-pr11440/) (built from [6da8a83](https://github.com/cvc5/cvc5/commit/6da8a83) @ [PR #11440](https://github.com/cvc5/cvc5/pull/11440), 19 hours ago) * [Documentation for PR #11439](docs-pr11439/) (built from [1439ddb](https://github.com/cvc5/cvc5/commit/1439ddb) @ [PR #11439](https://github.com/cvc5/cvc5/pull/11439), 2 days ago) * [Documentation for PR #11438](docs-pr11438/) (built from [2151995](https://github.com/cvc5/cvc5/commit/2151995) @ [PR #11438](https://github.com/cvc5/cvc5/pull/11438), 2 days ago) * [Documentation for PR #11437](docs-pr11437/) (built from [1795a54](https://github.com/cvc5/cvc5/commit/1795a54) @ [PR #11437](https://github.com/cvc5/cvc5/pull/11437), 2 days ago) -* [Documentation for PR #11436](docs-pr11436/) (built from [d4468ca](https://github.com/cvc5/cvc5/commit/d4468ca) @ [PR #11436](https://github.com/cvc5/cvc5/pull/11436), 3 days ago) +* [Documentation for PR #11436](docs-pr11436/) (built from [1847570](https://github.com/cvc5/cvc5/commit/1847570) @ [PR #11436](https://github.com/cvc5/cvc5/pull/11436), now) * [Documentation for PR #11435](docs-pr11435/) (built from [8e5f1a6](https://github.com/cvc5/cvc5/commit/8e5f1a6) @ [PR #11435](https://github.com/cvc5/cvc5/pull/11435), 3 days ago) * [Documentation for PR #11434](docs-pr11434/) (built from [c050919](https://github.com/cvc5/cvc5/commit/c050919) @ [PR #11434](https://github.com/cvc5/cvc5/pull/11434), 3 days ago) * [Documentation for PR #11433](docs-pr11433/) (built from [97c090d](https://github.com/cvc5/cvc5/commit/97c090d) @ [PR #11433](https://github.com/cvc5/cvc5/pull/11433), 3 days ago) * [Documentation for PR #11432](docs-pr11432/) (built from [56c53d3](https://github.com/cvc5/cvc5/commit/56c53d3) @ [PR #11432](https://github.com/cvc5/cvc5/pull/11432), 3 days ago) -* [Documentation for PR #11431](docs-pr11431/) (built from [2be4218](https://github.com/cvc5/cvc5/commit/2be4218) @ [PR #11431](https://github.com/cvc5/cvc5/pull/11431), 18 hours ago) +* [Documentation for PR #11431](docs-pr11431/) (built from [2be4218](https://github.com/cvc5/cvc5/commit/2be4218) @ [PR #11431](https://github.com/cvc5/cvc5/pull/11431), 19 hours ago) * [Documentation for PR #11430](docs-pr11430/) (built from [9369244](https://github.com/cvc5/cvc5/commit/9369244) @ [PR #11430](https://github.com/cvc5/cvc5/pull/11430), 3 days ago) * [Documentation for PR #11429](docs-pr11429/) (built from [6ebd82b](https://github.com/cvc5/cvc5/commit/6ebd82b) @ [PR #11429](https://github.com/cvc5/cvc5/pull/11429), 3 days ago) * [Documentation for PR #11428](docs-pr11428/) (built from [36123a8](https://github.com/cvc5/cvc5/commit/36123a8) @ [PR #11428](https://github.com/cvc5/cvc5/pull/11428), 3 days ago) @@ -46,9 +46,9 @@ * [Documentation for PR #11412](docs-pr11412/) (built from [a1d8bbf](https://github.com/cvc5/cvc5/commit/a1d8bbf) @ [PR #11412](https://github.com/cvc5/cvc5/pull/11412), 8 days ago) * [Documentation for PR #11411](docs-pr11411/) (built from [ad27b53](https://github.com/cvc5/cvc5/commit/ad27b53) @ [PR #11411](https://github.com/cvc5/cvc5/pull/11411), 8 days ago) * [Documentation for PR #11410](docs-pr11410/) (built from [a1faa0a](https://github.com/cvc5/cvc5/commit/a1faa0a) @ [PR #11410](https://github.com/cvc5/cvc5/pull/11410), 8 days ago) -* [Documentation for PR #11402](docs-pr11402/) (built from [66187fa](https://github.com/cvc5/cvc5/commit/66187fa) @ [PR #11402](https://github.com/cvc5/cvc5/pull/11402), 19 hours ago) +* [Documentation for PR #11402](docs-pr11402/) (built from [66187fa](https://github.com/cvc5/cvc5/commit/66187fa) @ [PR #11402](https://github.com/cvc5/cvc5/pull/11402), 20 hours ago) * [Documentation for PR #11392](docs-pr11392/) (built from [d13dda7](https://github.com/cvc5/cvc5/commit/d13dda7) @ [PR #11392](https://github.com/cvc5/cvc5/pull/11392), 4 days ago) * [Documentation for PR #11389](docs-pr11389/) (built from [f8c135e](https://github.com/cvc5/cvc5/commit/f8c135e) @ [PR #11389](https://github.com/cvc5/cvc5/pull/11389), 8 days ago) -* [Documentation for PR #11348](docs-pr11348/) (built from [11017ba](https://github.com/cvc5/cvc5/commit/11017ba) @ [PR #11348](https://github.com/cvc5/cvc5/pull/11348), 16 hours ago) +* [Documentation for PR #11348](docs-pr11348/) (built from [11017ba](https://github.com/cvc5/cvc5/commit/11017ba) @ [PR #11348](https://github.com/cvc5/cvc5/pull/11348), 17 hours ago) * [Documentation for PR #11297](docs-pr11297/) (built from [69d8c75](https://github.com/cvc5/cvc5/commit/69d8c75) @ [PR #11297](https://github.com/cvc5/cvc5/pull/11297), 4 days ago) * [Documentation for PR #11176](docs-pr11176/) (built from [e68066c](https://github.com/cvc5/cvc5/commit/e68066c) @ [PR #11176](https://github.com/cvc5/cvc5/pull/11176), 3 days ago) diff --git a/docs-pr11436 b/docs-pr11436 index cccf33b673..16ab5d57ad 120000 --- a/docs-pr11436 +++ b/docs-pr11436 @@ -1 +1 @@ -docs-pr11436-d4468ca0d699b5e907280ace4da746b0a9bff0cd \ No newline at end of file +docs-pr11436-184757005d554c79e69a25e06567c832de3e2686 \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/api.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/api.html new file mode 100644 index 0000000000..0934cd11c2 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/api.html @@ -0,0 +1,154 @@ + + + + + + + + + + + + + API Documentation — cvc5 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
    +
  • + +
  • +
  • +
+
+
+
+
+ +
+

API Documentation

+

Alternatively to using cvc5 as a binary, cvc5 can be +integrated at the back end of other tools via one of its rich and comprehensive +APIs.

+

The primary interface of cvc5 is its C++ API. +Its C API, Java API and +base Python API implement a thin wrapper around +the C++ API. +In addition to the base Python API, cvc5 also provides a more pythonic +Python API at +https://github.com/cvc5/cvc5_pythonic_api, +documented here.

+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/c.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/c.html new file mode 100644 index 0000000000..5aa8c86b27 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/c.html @@ -0,0 +1,371 @@ + + + + + + + + + + + + + C API — cvc5 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

C API

+

The C API of cvc5 is based on its C++ API and is +feature complete, within the limits of the C language. +The quickstart guide gives a short introduction of how +to use cvc5 via its C API. +For most applications, the Cvc5 solver struct is the main +entry point to cvc5.

+

One of the key differences is the way how memory is managed. While users of +the C++ API can rely on memory being efficiently managed automatically, on the +C level, management to maintain a low overhead needs more manual +intervention.

+

The C API offers two modes of memory management:

+
    +
  1. Let cvc5 handle memory management without manual intervention. All memory +allocated by the C API via a term manager (Cvc5TermManager) or +solver (Cvc5) instance will only be released when these +instances are deleted via cvc5_delete() and +cvc5_term_manager_delete(). For example:

  2. +
+
Cvc5TermManager* tm = cvc5_term_manager_new();
+Cvc5* cvc5 = cvc5_new(tm);
+Cvc5Term a = cvc5_mk_const(tm, cvc5_get_integer_sort(tm), "a");
+Cvc5Term two = cvc5_mk_integer_int64(tm, 2);
+Cvc5Term args1[2] = {a, two};
+cvc5_assert_formula(cvc5, cvc5_mk_term(tm, CVC5_KIND_EQUAL, 2, args1));
+Cvc5Term b = cvc5_mk_const(tm, cvc5_get_integer_sort(tm), "b");
+Cvc5Term args2[2] = {b, two};
+cvc5_assert_formula(cvc5, cvc5_mk_term(tm, CVC5_KIND_DISTINCT, 2, args2));
+cvc5_check_sat(cvc5);
+cvc5_delete(cvc5);
+cvc5_term_manager_delete(tm);
+
+
+
    +
  1. Introduce a more fine-grained, user-level memory management for objects +created via a term manager or solver via the corresponding cvc5_*_copy() +and cvc5_*_release() functions. The copy functions increment the +reference counter of an object, the release functions decrement the +reference counter and free its allocated memory when the counter reaches 0. +For example:

  2. +
+
Cvc5TermManager* tm = cvc5_term_manager_new();
+Cvc5* cvc5 = cvc5_new(tm);
+Cvc5Term a = cvc5_mk_const(tm, cvc5_get_integer_sort(tm), "a");
+Cvc5Term two = cvc5_mk_integer_int64(tm, 2);
+Cvc5Term args1[2] = {a, two};
+cvc5_assert_formula(cvc5, cvc5_mk_term(tm, CVC5_KIND_EQUAL, 2, args1));
+// we can release 'a' here, not needed anymore
+cvc5_term_release(a);
+Cvc5Term b = cvc5_mk_const(tm, cvc5_get_integer_sort(tm), "b");
+Cvc5Term args2[2] = {b, two};
+cvc5_assert_formula(cvc5, cvc5_mk_term(tm, CVC5_KIND_DISTINCT, 2, args2));
+cvc5_check_sat(cvc5);
+cvc5_delete(cvc5);
+cvc5_term_manager_delete(tm);
+
+
+ +
+
+

Types

+

The following types are defined via typedefs but used as black boxes, their +internals are hidden.

+ +
+
+

Structs

+

The following structs are fully exposed via the API.

+ +
+
+

Enums

+ +
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/enums/cvc5kind.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/enums/cvc5kind.html new file mode 100644 index 0000000000..fd1ce46fcb --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/enums/cvc5kind.html @@ -0,0 +1,7337 @@ + + + + + + + + + + + + + Cvc5Kind — cvc5 documentation + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Cvc5Kind

+

Every Cvc5Term has an associated kind, represented +as enum Cvc5Kind. +This kind distinguishes if the term is a value, constant, variable or operator, +and what kind of each. +For example, a bit-vector value has kind +CVC5_KIND_CONST_BITVECTOR, a free constant symbol has kind +CVC5_KIND_CONSTANT, +an equality over terms of any sort has kind CVC5_KIND_EQUAL, +and a universally quantified formula has kind +CVC5_KIND_FORALL.

+
+
+
+
+
+
+
+enum Cvc5Kind
+

The kind of a cvc5 Term.

+

Values:

+
+
+enumerator CVC5_KIND_INTERNAL_KIND
+

Internal kind.

+

This kind serves as an abstraction for internal kinds that are not exposed via the API but may appear in terms returned by API functions, e.g., when querying the simplified form of a term.

+
+

Note

+

Should never be created via the API.

+
+
+ +
+
+enumerator CVC5_KIND_UNDEFINED_KIND
+

Undefined kind.

+
+

Note

+

Should never be exposed or created via the API.

+
+
+ +
+
+enumerator CVC5_KIND_NULL_TERM
+

Null kind.

+

The kind of a null term (Term::Term()).

+
+

Note

+

May not be explicitly created via API functions other than +Term::Term().

+
+
+ +
+
+enumerator CVC5_KIND_UNINTERPRETED_SORT_VALUE
+

The value of an uninterpreted constant.

+
+

Note

+

May be returned as the result of an API call, but terms of this +kind may not be created explicitly via the API and may not +appear in assertions.

+
+
+ +
+
+enumerator CVC5_KIND_EQUAL
+

Equality, chainable.

+

    +
  • Arity: n > 1

      +
    • 1..n: Terms of the same Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_DISTINCT
+

Disequality.

+

    +
  • Arity: n > 1

      +
    • 1..n: Terms of the same Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_CONSTANT
+

Free constant symbol.

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkConst(const Sort&, const std::string&) const

    • +
    • Solver::mkConst(const Sort&) const

    • +
    +

  • +
+

+
+

Note

+

Not permitted in bindings (e.g., FORALL, +EXISTS).

+
+
+ +
+
+enumerator CVC5_KIND_VARIABLE
+

(Bound) variable.

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkVar(const Sort&, const std::string&) const

    • +
    +

  • +
+

+
+

Note

+

Only permitted in bindings and in lambda and quantifier bodies.

+
+
+ +
+
+enumerator CVC5_KIND_SKOLEM
+

A Skolem.

+

skolem is available via the calls Solver::getSkolemId and +Solver::getSkolemIndices.

+

+
+

Note

+

Represents an internally generated term. Information on the

+
+
+ +
+
+enumerator CVC5_KIND_SEXPR
+

Symbolic expression.

+

    +
  • Arity: n > 0

      +
    • 1..n: Terms with same sorts

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator CVC5_KIND_LAMBDA
+

Lambda expression.

+

    +
  • Arity: 2

      +
    • 1: Term of kind :cpp:enumerator:VARIABLE_LIST

    • +
    • 2: Term of any Sort (the body of the lambda)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_WITNESS
+

Witness.

+

The syntax of a witness term is similar to a quantified formula except that only one variable is allowed. For example, the term

(witness ((x S)) F)
+
+
+

returns an element \(x\) of Sort \(S\) and asserts formula +\(F\).

+

The witness operator behaves like the description operator +(see https://planetmath.org/hilbertsvarepsilonoperator) if there is +no \(x\) that satisfies \(F\). But if such \(x\) exists, the +witness operator does not enforce the following axiom which ensures +uniqueness up to logical equivalence:

+
+\[\forall x. F \equiv G \Rightarrow witness~x. F = witness~x. G\]
+

For example, if there are two elements of Sort \(S\) that satisfy +formula \(F\), then the following formula is satisfiable:

+
(distinct
+   (witness ((x Int)) F)
+   (witness ((x Int)) F))
+
+
+

+

+

    +
  • Arity: 3

      +
    • 1: Term of kind :cpp:enumerator:VARIABLE_LIST

    • +
    • 2: Term of Sort Bool (the body of the witness)

    • +
    • 3: (optional) Term of kind :cpp:enumerator:INST_PATTERN_LIST

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+

Note

+

This kind is primarily used internally, but may be returned in +models (e.g., for arithmetic terms in non-linear queries). However, +it is not supported by the parser. Moreover, the user of the API +should be cautious when using this operator. In general, all witness +terms (witness ((x Int)) F) should be such that (exists ((x Int)) +F) is a valid formula. If this is not the case, then the semantics +in formulas that use witness terms may be unintuitive. For example, +the following formula is unsatisfiable: +(or (= (witness ((x Int)) false) 0) (not (= (witness ((x Int)) +false) 0)), whereas notice that (or (= z 0) (not (= z 0))) is +true for any \(z\).

+
+
+ +
+
+enumerator CVC5_KIND_CONST_BOOLEAN
+

Boolean constant.

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkTrue() const

    • +
    • Solver::mkFalse() const

    • +
    • Solver::mkBoolean(bool) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_NOT
+

Logical negation.

+

    +
  • Arity: 1

      +
    • 1: Term of Sort Bool

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_AND
+

Logical conjunction.

+

    +
  • Arity: n > 1

      +
    • 1..n: Terms of Sort Bool

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_IMPLIES
+

Logical implication.

+

    +
  • Arity: n > 1

      +
    • 1..n: Terms of Sort Bool

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_OR
+

Logical disjunction.

+

    +
  • Arity: n > 1

      +
    • 1..n: Terms of Sort Bool

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_XOR
+

Logical exclusive disjunction, left associative.

+

    +
  • Arity: n > 1

      +
    • 1..n: Terms of Sort Bool

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_ITE
+

If-then-else.

+

    +
  • Arity: 3

      +
    • 1: Term of Sort Bool

    • +
    • 2: The ‘then’ term, Term of any Sort

    • +
    • 3: The ‘else’ term, Term of the same sort as second argument

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_APPLY_UF
+

Application of an uninterpreted function.

+

    +
  • Arity: n > 1

      +
    • 1: Function Term

    • +
    • 2..n: Function argument instantiation Terms of any first-class Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_CARDINALITY_CONSTRAINT
+

Cardinality constraint on uninterpreted sort.

+

Interpreted as a predicate that is true when the cardinality of +uinterpreted Sort \(S\) is less than or equal to an upper bound.

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkCardinalityConstraint(const Sort&, uint32_t) const

    • +
    +

  • +
+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator CVC5_KIND_HO_APPLY
+

Higher-order applicative encoding of function application, left associative.

+

    +
  • Arity: n = 2

      +
    • 1: Function Term

    • +
    • 2: Argument Term of the domain Sort of the function

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_ADD
+

Arithmetic addition.

+

    +
  • Arity: n > 1

      +
    • 1..n: Terms of Sort Int or Real (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_MULT
+

Arithmetic multiplication.

+

    +
  • Arity: n > 1

      +
    • 1..n: Terms of Sort Int or Real (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_IAND
+

Integer and.

+

Operator for bit-wise AND over integers, parameterized by a (positive) +bit-width \(k\).

+
((_ iand k) i_1 i_2)
+
+
+

is equivalent to

+
((_ iand k) i_1 i_2)
+(bv2int (bvand ((_ int2bv k) i_1) ((_ int2bv k) i_2)))
+
+
+

for all integers i_1, i_2.

+
    +
  • Arity: 2

    +
      +
    • 1..2: Terms of Sort Int

    • +
    +
  • +
  • Indices: 1

    +
      +
    • 1: Bit-width \(k\)

    • +
    +
  • +
+

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_POW2
+

Power of two.

+

Operator for raising 2 to a non-negative integer power.

+

    +
  • Arity: 1

      +
    • 1: Term of Sort Int

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_SUB
+

Arithmetic subtraction, left associative.

+

    +
  • Arity: n > 1

      +
    • 1..n: Terms of Sort Int or Real (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_NEG
+

Arithmetic negation.

+

    +
  • Arity: 1

      +
    • 1: Term of Sort Int or Real

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_DIVISION
+

Real division, division by 0 undefined, left associative.

+

    +
  • Arity: n > 1

      +
    • 1..n: Terms of Sort Real

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_DIVISION_TOTAL
+

Real division, division by 0 defined to be 0, left associative.

+

    +
  • Arity: n > 1

      +
    • 1..n: Terms of Sort Real

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator CVC5_KIND_INTS_DIVISION
+

Integer division, division by 0 undefined, left associative.

+

    +
  • Arity: n > 1

      +
    • 1..n: Terms of Sort Int

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_INTS_DIVISION_TOTAL
+

Integer division, division by 0 defined to be 0, left associative.

+

    +
  • Arity: n > 1

      +
    • 1..n: Terms of Sort Int

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator CVC5_KIND_INTS_MODULUS
+

Integer modulus, modulus by 0 undefined.

+

    +
  • Arity: 2

      +
    • 1: Term of Sort Int

    • +
    • 2: Term of Sort Int

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_INTS_MODULUS_TOTAL
+

Integer modulus, t modulus by 0 defined to be t.

+

    +
  • Arity: 2

      +
    • 1: Term of Sort Int

    • +
    • 2: Term of Sort Int

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator CVC5_KIND_ABS
+

Absolute value.

+

    +
  • Arity: 1

      +
    • 1: Term of Sort Int or Real

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_POW
+

Arithmetic power.

+

    +
  • Arity: 2

      +
    • 1..2: Term of Sort Int or Real (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_EXPONENTIAL
+

Exponential function.

+

    +
  • Arity: 1

      +
    • 1: Term of Sort Real

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_SINE
+

Sine function.

+

    +
  • Arity: 1

      +
    • 1: Term of Sort Real

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_COSINE
+

Cosine function.

+

    +
  • Arity: 1

      +
    • 1: Term of Sort Real

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_TANGENT
+

Tangent function.

+

    +
  • Arity: 1

      +
    • 1: Term of Sort Real

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_COSECANT
+

Cosecant function.

+

    +
  • Arity: 1

      +
    • 1: Term of Sort Real

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_SECANT
+

Secant function.

+

    +
  • Arity: 1

      +
    • 1: Term of Sort Real

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_COTANGENT
+

Cotangent function.

+

    +
  • Arity: 1

      +
    • 1: Term of Sort Real

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_ARCSINE
+

Arc sine function.

+

    +
  • Arity: 1

      +
    • 1: Term of Sort Real

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_ARCCOSINE
+

Arc cosine function.

+

    +
  • Arity: 1

      +
    • 1: Term of Sort Real

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_ARCTANGENT
+

Arc tangent function.

+

    +
  • Arity: 1

      +
    • 1: Term of Sort Real

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_ARCCOSECANT
+

Arc cosecant function.

+

    +
  • Arity: 1

      +
    • 1: Term of Sort Real

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_ARCSECANT
+

Arc secant function.

+

    +
  • Arity: 1

      +
    • 1: Term of Sort Real

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_ARCCOTANGENT
+

Arc cotangent function.

+

    +
  • Arity: 1

      +
    • 1: Term of Sort Real

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_SQRT
+

Square root.

+

If the argument x is non-negative, then this returns a non-negative value y such that y * y = x.

+

    +
  • Arity: 1

      +
    • 1: Term of Sort Real

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_DIVISIBLE
+

Operator for the divisibility-by-\(k\) predicate.

+
    +
  • Arity: 1

    +
      +
    • 1: Term of Sort Int

    • +
    +
  • +
  • Indices: 1

    +
      +
    • 1: The integer \(k\) to divide by.

    • +
    +
  • +
+

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_CONST_RATIONAL
+

Arbitrary-precision rational constant.

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkReal(const std::string&) const

    • +
    • Solver::mkReal(int64_t) const

    • +
    • Solver::mkReal(int64_t, int64_t) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_CONST_INTEGER
+

Arbitrary-precision integer constant.

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkInteger(const std::string&) const

    • +
    • Solver::mkInteger(int64_t) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_LT
+

Less than, chainable.

+

    +
  • Arity: n > 1

      +
    • 1..n: Terms of Sort Int or Real (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_LEQ
+

Less than or equal, chainable.

+

    +
  • Arity: n > 1

      +
    • 1..n: Terms of Sort Int or Real (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_GT
+

Greater than, chainable.

+

    +
  • Arity: n > 1

      +
    • 1..n: Terms of Sort Int or Real (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_GEQ
+

Greater than or equal, chainable.

+

    +
  • Arity: n > 1

      +
    • 1..n: Terms of Sort Int or Real (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_IS_INTEGER
+

Is-integer predicate.

+

    +
  • Arity: 1

      +
    • 1: Term of Sort Int or Real

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_TO_INTEGER
+

Convert Term of sort Int or Real to Int via the floor function.

+

    +
  • Arity: 1

      +
    • 1: Term of Sort Int or Real

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_TO_REAL
+

Convert Term of Sort Int or Real to Real.

+

    +
  • Arity: 1

      +
    • 1: Term of Sort Int or Real

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_PI
+

Pi constant.

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkPi() const

    • +
    +

  • +
+

+
+

Note

+

PI is considered a special symbol of Sort +Real, but is not a Real value, i.e., +Term::isRealValue() will return false.

+
+
+ +
+
+enumerator CVC5_KIND_CONST_BITVECTOR
+

Fixed-size bit-vector constant.

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkBitVector(uint32_t, uint64_t) const

    • +
    • Solver::mkBitVector(uint32_t, const std::string&, uint32_t) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BITVECTOR_CONCAT
+

Concatenation of two or more bit-vectors.

+

    +
  • Arity: n > 1

      +
    • 1..n: Terms of bit-vector Sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BITVECTOR_AND
+

Bit-wise and.

+

    +
  • Arity: n > 1

      +
    • 1..n: Terms of bit-vector Sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BITVECTOR_OR
+

Bit-wise or.

+

    +
  • Arity: n > 1

      +
    • 1..n: Terms of bit-vector Sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BITVECTOR_XOR
+

Bit-wise xor.

+

    +
  • Arity: n > 1

      +
    • 1..n: Terms of bit-vector Sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BITVECTOR_NOT
+

Bit-wise negation.

+

    +
  • Arity: 1

      +
    • 1: Term of bit-vector Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BITVECTOR_NAND
+

Bit-wise nand.

+

    +
  • Arity: 2

      +
    • 1..2: Terms of bit-vector Sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BITVECTOR_NOR
+

Bit-wise nor.

+

    +
  • Arity: 2

      +
    • 1..2: Terms of bit-vector Sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BITVECTOR_XNOR
+

Bit-wise xnor, left associative.

+

    +
  • Arity: 2

      +
    • 1..2: Terms of bit-vector Sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BITVECTOR_COMP
+

Equality comparison (returns bit-vector of size 1).

+

    +
  • Arity: 2

      +
    • 1..2: Terms of bit-vector Sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BITVECTOR_MULT
+

Multiplication of two or more bit-vectors.

+

    +
  • Arity: n > 1

      +
    • 1..n: Terms of bit-vector Sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BITVECTOR_ADD
+

Addition of two or more bit-vectors.

+

    +
  • Arity: n > 1

      +
    • 1..n: Terms of bit-vector Sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BITVECTOR_SUB
+

Subtraction of two bit-vectors.

+

    +
  • Arity: n > 1

      +
    • 1..n: Terms of bit-vector Sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BITVECTOR_NEG
+

Negation of a bit-vector (two’s complement).

+

    +
  • Arity: 1

      +
    • 1: Term of bit-vector Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BITVECTOR_UDIV
+

Unsigned bit-vector division.

+

Truncates towards 0. If the divisor is zero, the result is all ones.

+

    +
  • Arity: 2

      +
    • 1..2: Terms of bit-vector Sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BITVECTOR_UREM
+

Unsigned bit-vector remainder.

+

Remainder from unsigned bit-vector division. If the modulus is zero, the result is the dividend.

+

    +
  • Arity: 2

      +
    • 1..2: Terms of bit-vector Sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BITVECTOR_SDIV
+

Signed bit-vector division.

+

Two’s complement signed division of two bit-vectors. If the divisor is zero and the dividend is positive, the result is all ones. If the divisor is zero and the dividend is negative, the result is one.

+

    +
  • Arity: 2

      +
    • 1..2: Terms of bit-vector Sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BITVECTOR_SREM
+

Signed bit-vector remainder (sign follows dividend).

+

Two’s complement signed remainder of two bit-vectors where the sign follows the dividend. If the modulus is zero, the result is the dividend.

+

    +
  • Arity: 2

      +
    • 1..2: Terms of bit-vector Sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BITVECTOR_SMOD
+

Signed bit-vector remainder (sign follows divisor).

+

Two’s complement signed remainder where the sign follows the divisor. If the modulus is zero, the result is the dividend.

+

    +
  • Arity: 2

      +
    • 1..2: Terms of bit-vector Sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BITVECTOR_SHL
+

Bit-vector shift left.

+

    +
  • Arity: 2

      +
    • 1..2: Terms of bit-vector Sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BITVECTOR_LSHR
+

Bit-vector logical shift right.

+

    +
  • Arity: 2

      +
    • 1..2: Terms of bit-vector Sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BITVECTOR_ASHR
+

Bit-vector arithmetic shift right.

+

    +
  • Arity: 2

      +
    • 1..2: Terms of bit-vector Sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BITVECTOR_ULT
+

Bit-vector unsigned less than.

+

    +
  • Arity: 2

      +
    • 1..2: Terms of bit-vector Sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BITVECTOR_ULE
+

Bit-vector unsigned less than or equal.

+

    +
  • Arity: 2

      +
    • 1..2: Terms of bit-vector Sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BITVECTOR_UGT
+

Bit-vector unsigned greater than.

+

    +
  • Arity: 2

      +
    • 1..2: Terms of bit-vector Sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BITVECTOR_UGE
+

Bit-vector unsigned greater than or equal.

+

    +
  • Arity: 2

      +
    • 1..2: Terms of bit-vector Sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BITVECTOR_SLT
+

Bit-vector signed less than.

+

    +
  • Arity: 2

      +
    • 1..2: Terms of bit-vector Sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BITVECTOR_SLE
+

Bit-vector signed less than or equal.

+

    +
  • Arity: 2

      +
    • 1..2: Terms of bit-vector Sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BITVECTOR_SGT
+

Bit-vector signed greater than.

+

    +
  • Arity: 2

      +
    • 1..2: Terms of bit-vector Sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BITVECTOR_SGE
+

Bit-vector signed greater than or equal.

+

    +
  • Arity: 2

      +
    • 1..2: Terms of bit-vector Sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BITVECTOR_ULTBV
+

Bit-vector unsigned less than returning a bit-vector of size 1.

+

    +
  • Arity: 2

      +
    • 1..2: Terms of bit-vector Sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BITVECTOR_SLTBV
+

Bit-vector signed less than returning a bit-vector of size 1.

+

    +
  • Arity: 2

      +
    • 1..2: Terms of bit-vector Sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BITVECTOR_ITE
+

Bit-vector if-then-else.

+

Same semantics as regular ITE, but condition is bit-vector of size 1.

+

    +
  • Arity: 3

      +
    • 1: Term of bit-vector Sort of size 1

    • +
    • 1..3: Terms of bit-vector sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BITVECTOR_REDOR
+

Bit-vector redor.

+

    +
  • Arity: 1

      +
    • 1: Term of bit-vector Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BITVECTOR_REDAND
+

Bit-vector redand.

+

    +
  • Arity: 1

      +
    • 1: Term of bit-vector Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BITVECTOR_NEGO
+

Bit-vector negation overflow detection.

+

    +
  • Arity: 1

      +
    • 1: Term of bit-vector Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BITVECTOR_UADDO
+

Bit-vector unsigned addition overflow detection.

+

    +
  • Arity: 2

      +
    • 1..2: Terms of bit-vector Sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BITVECTOR_SADDO
+

Bit-vector signed addition overflow detection.

+

    +
  • Arity: 2

      +
    • 1..2: Terms of bit-vector Sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BITVECTOR_UMULO
+

Bit-vector unsigned multiplication overflow detection.

+

    +
  • Arity: 2

      +
    • 1..2: Terms of bit-vector Sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BITVECTOR_SMULO
+

Bit-vector signed multiplication overflow detection.

+

    +
  • Arity: 2

      +
    • 1..2: Terms of bit-vector Sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BITVECTOR_USUBO
+

Bit-vector unsigned subtraction overflow detection.

+

    +
  • Arity: 2

      +
    • 1..2: Terms of bit-vector Sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BITVECTOR_SSUBO
+

Bit-vector signed subtraction overflow detection.

+

    +
  • Arity: 2

      +
    • 1..2: Terms of bit-vector Sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BITVECTOR_SDIVO
+

Bit-vector signed division overflow detection.

+

    +
  • Arity: 2

      +
    • 1..2: Terms of bit-vector Sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BITVECTOR_EXTRACT
+

Bit-vector extract.

+

    +
  • Arity: 1

      +
    • 1: Term of bit-vector Sort

    • +
    +

  • +
  • Indices: 2

      +
    • 1: The upper bit index.

    • +
    • 2: The lower bit index.

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BITVECTOR_REPEAT
+

Bit-vector repeat.

+

    +
  • Arity: 1

      +
    • 1: Term of bit-vector Sort

    • +
    +

  • +
  • Indices: 1

      +
    • 1: The number of times to repeat the given term.

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BITVECTOR_ZERO_EXTEND
+

Bit-vector zero extension.

+

    +
  • Arity: 1

      +
    • 1: Term of bit-vector Sort

    • +
    +

  • +
  • Indices: 1

      +
    • 1: The number of zeroes to extend the given term with.

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BITVECTOR_SIGN_EXTEND
+

Bit-vector sign extension.

+

    +
  • Arity: 1

      +
    • 1: Term of bit-vector Sort

    • +
    +

  • +
  • Indices: 1

      +
    • 1: The number of bits (of the value of the sign bit) to extend the given term with.

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BITVECTOR_ROTATE_LEFT
+

Bit-vector rotate left.

+

    +
  • Arity: 1

      +
    • 1: Term of bit-vector Sort

    • +
    +

  • +
  • Indices: 1

      +
    • 1: The number of bits to rotate the given term left.

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BITVECTOR_ROTATE_RIGHT
+

Bit-vector rotate right.

+

    +
  • Arity: 1

      +
    • 1: Term of bit-vector Sort

    • +
    +

  • +
  • Indices: 1

      +
    • 1: The number of bits to rotate the given term right.

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_INT_TO_BITVECTOR
+

Conversion from Int to bit-vector.

+

    +
  • Arity: 1

      +
    • 1: Term of Sort Int

    • +
    +

  • +
  • Indices: 1

      +
    • 1: The size of the bit-vector to convert to.

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BITVECTOR_TO_NAT
+

Bit-vector conversion to (non-negative) integer.

+

    +
  • Arity: 1

      +
    • 1: Term of bit-vector Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BITVECTOR_FROM_BOOLS
+

Converts a list of Bool terms to a bit-vector.

+

    +
  • Arity: n > 0

      +
    • 1..n: Terms of Sort Bool

    • +
    +

  • +
+

+
+

Note

+

May be returned as the result of an API call, but terms of this +kind may not be created explicitly via the API and may not +appear in assertions.

+
+
+ +
+
+enumerator CVC5_KIND_BITVECTOR_BIT
+

Retrieves the bit at the given index from a bit-vector as a Bool term.

+

    +
  • Arity: 1

      +
    • 1: Term of bit-vector Sort

    • +
    +

  • +
  • Indices: 1

      +
    • 1: The bit index

    • +
    +

  • +
+

+
+

Note

+

May be returned as the result of an API call, but terms of this +kind may not be created explicitly via the API and may not +appear in assertions.

+
+
+ +
+
+enumerator CVC5_KIND_CONST_FINITE_FIELD
+

Finite field constant.

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkFiniteFieldElem(const std::string&, const Sort&, uint32_t base) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_FINITE_FIELD_NEG
+

Negation of a finite field element (additive inverse).

+

    +
  • Arity: 1

      +
    • 1: Term of finite field Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_FINITE_FIELD_ADD
+

Addition of two or more finite field elements.

+

    +
  • Arity: n > 1

      +
    • 1..n: Terms of finite field Sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_FINITE_FIELD_BITSUM
+

Bitsum of two or more finite field elements: x + 2y + 4z + …

+

    +
  • Arity: n > 1

      +
    • 1..n: Terms of finite field Sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_FINITE_FIELD_MULT
+

Multiplication of two or more finite field elements.

+

    +
  • Arity: n > 1

      +
    • 1..n: Terms of finite field Sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_CONST_FLOATINGPOINT
+

Floating-point constant, created from IEEE-754 bit-vector representation of the floating-point value.

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkFloatingPoint(uint32_t, uint32_t, Term) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_CONST_ROUNDINGMODE
+

RoundingMode constant.

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkRoundingMode(RoundingMode) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_FLOATINGPOINT_FP
+

Create floating-point literal from bit-vector triple.

+

    +
  • Arity: 3

      +
    • 1: Term of bit-vector Sort of size 1 (sign bit)

    • +
    • 2: Term of bit-vector Sort of exponent size (exponent)

    • +
    • 3: Term of bit-vector Sort of significand size - 1 (significand without hidden bit)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_FLOATINGPOINT_EQ
+

Floating-point equality.

+

    +
  • Arity: 2

      +
    • 1..2: Terms of floating-point Sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_FLOATINGPOINT_ABS
+

Floating-point absolute value.

+

    +
  • Arity: 1

      +
    • 1: Term of floating-point Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_FLOATINGPOINT_NEG
+

Floating-point negation.

+

    +
  • Arity: 1

      +
    • 1: Term of floating-point Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_FLOATINGPOINT_ADD
+

Floating-point addition.

+

    +
  • Arity: 3

      +
    • 1: Term of Sort RoundingMode

    • +
    • 2..3: Terms of floating-point Sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_FLOATINGPOINT_SUB
+

Floating-point sutraction.

+

    +
  • Arity: 3

      +
    • 1: Term of Sort RoundingMode

    • +
    • 2..3: Terms of floating-point Sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_FLOATINGPOINT_MULT
+

Floating-point multiply.

+

    +
  • Arity: 3

      +
    • 1: Term of Sort RoundingMode

    • +
    • 2..3: Terms of floating-point Sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_FLOATINGPOINT_DIV
+

Floating-point division.

+

    +
  • Arity: 3

      +
    • 1: Term of Sort RoundingMode

    • +
    • 2..3: Terms of floating-point Sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_FLOATINGPOINT_FMA
+

Floating-point fused multiply and add.

+

    +
  • Arity: 4

      +
    • 1: Term of Sort RoundingMode

    • +
    • 2..4: Terms of floating-point Sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_FLOATINGPOINT_SQRT
+

Floating-point square root.

+

    +
  • Arity: 2

      +
    • 1: Term of Sort RoundingMode

    • +
    • 2: Term of floating-point Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_FLOATINGPOINT_REM
+

Floating-point remainder.

+

    +
  • Arity: 2

      +
    • 1..2: Terms of floating-point Sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_FLOATINGPOINT_RTI
+

Floating-point round to integral.

+

    +
  • Arity: 2

      +
    • 1..2: Terms of floating-point Sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_FLOATINGPOINT_MIN
+

Floating-point minimum.

+

    +
  • Arity: 2

      +
    • 1: Term of Sort RoundingMode

    • +
    • 2: Term of floating-point Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_FLOATINGPOINT_MAX
+

Floating-point maximum.

+

    +
  • Arity: 2

      +
    • 1..2: Terms of floating-point Sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_FLOATINGPOINT_LEQ
+

Floating-point less than or equal.

+

    +
  • Arity: 2

      +
    • 1..2: Terms of floating-point Sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_FLOATINGPOINT_LT
+

Floating-point less than.

+

    +
  • Arity: 2

      +
    • 1..2: Terms of floating-point Sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_FLOATINGPOINT_GEQ
+

Floating-point greater than or equal.

+

    +
  • Arity: 2

      +
    • 1..2: Terms of floating-point Sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_FLOATINGPOINT_GT
+

Floating-point greater than.

+

    +
  • Arity: 2

      +
    • 1..2: Terms of floating-point Sort (sorts must match)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_FLOATINGPOINT_IS_NORMAL
+

Floating-point is normal tester.

+

    +
  • Arity: 1

      +
    • 1: Term of floating-point Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_FLOATINGPOINT_IS_SUBNORMAL
+

Floating-point is sub-normal tester.

+

    +
  • Arity: 1

      +
    • 1: Term of floating-point Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_FLOATINGPOINT_IS_ZERO
+

Floating-point is zero tester.

+

    +
  • Arity: 1

      +
    • 1: Term of floating-point Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_FLOATINGPOINT_IS_INF
+

Floating-point is infinite tester.

+

    +
  • Arity: 1

      +
    • 1: Term of floating-point Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_FLOATINGPOINT_IS_NAN
+

Floating-point is NaN tester.

+

    +
  • Arity: 1

      +
    • 1: Term of floating-point Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_FLOATINGPOINT_IS_NEG
+

Floating-point is negative tester.

+

    +
  • Arity: 1

      +
    • 1: Term of floating-point Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_FLOATINGPOINT_IS_POS
+

Floating-point is positive tester.

+

    +
  • Arity: 1

      +
    • 1: Term of floating-point Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_IEEE_BV
+

Conversion to floating-point from IEEE-754 bit-vector.

+

    +
  • Arity: 1

      +
    • 1: Term of bit-vector Sort

    • +
    +

  • +
  • Indices: 2

      +
    • 1: The exponent size

    • +
    • 2: The significand size

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_FP
+

Conversion to floating-point from floating-point.

+

    +
  • Arity: 2

      +
    • 1: Term of Sort RoundingMode

    • +
    • 2: Term of floating-point Sort

    • +
    +

  • +
  • Indices: 2

      +
    • 1: The exponent size

    • +
    • 2: The significand size

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_REAL
+

Conversion to floating-point from Real.

+

    +
  • Arity: 2

      +
    • 1: Term of Sort RoundingMode

    • +
    • 2: Term of Sort Real

    • +
    +

  • +
  • Indices: 2

      +
    • 1: The exponent size

    • +
    • 2: The significand size

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_SBV
+

Conversion to floating-point from signed bit-vector.

+

    +
  • Arity: 2

      +
    • 1: Term of Sort RoundingMode

    • +
    • 2: Term of bit-vector Sort

    • +
    +

  • +
  • Indices: 2

      +
    • 1: The exponent size

    • +
    • 2: The significand size

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_UBV
+

Conversion to floating-point from unsigned bit-vector.

+

    +
  • Arity: 2

      +
    • 1: Term of Sort RoundingMode

    • +
    • 2: Term of bit-vector Sort

    • +
    +

  • +
  • Indices: 2

      +
    • 1: The exponent size

    • +
    • 2: The significand size

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_FLOATINGPOINT_TO_UBV
+

Conversion to unsigned bit-vector from floating-point.

+

    +
  • Arity: 2

      +
    • 1: Term of Sort RoundingMode

    • +
    • 2: Term of floating-point Sort

    • +
    +

  • +
  • Indices: 1

      +
    • 1: The size of the bit-vector to convert to.

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_FLOATINGPOINT_TO_SBV
+

Conversion to signed bit-vector from floating-point.

+

    +
  • Arity: 2

      +
    • 1: Term of Sort RoundingMode

    • +
    • 2: Term of floating-point Sort

    • +
    +

  • +
  • Indices: 1

      +
    • 1: The size of the bit-vector to convert to.

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_FLOATINGPOINT_TO_REAL
+

Conversion to Real from floating-point.

+

    +
  • Arity: 1

      +
    • 1: Term of Sort Real

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_SELECT
+

Array select.

+

    +
  • Arity: 2

      +
    • 1: Term of array Sort

    • +
    • 2: Term of array index Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_STORE
+

Array store.

+

    +
  • Arity: 3

      +
    • 1: Term of array Sort

    • +
    • 2: Term of array index Sort

    • +
    • 3: Term of array element Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_CONST_ARRAY
+

Constant array.

+

    +
  • Arity: 2

      +
    • 1: Term of array Sort

    • +
    • 2: Term of array element Sort (value)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_EQ_RANGE
+

Equality over arrays \(a\) and \(b\) over a given range +\([i,j]\), i.e.,

+
+\[\forall k . i \leq k \leq j \Rightarrow a[k] = b[k]\]
+

+

    +
  • Arity: 4

      +
    • 1: Term of array Sort (first array)

    • +
    • 2: Term of array Sort (second array)

    • +
    • 3: Term of array index Sort (lower bound of range, inclusive)

    • +
    • 4: Term of array index Sort (upper bound of range, inclusive)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+

Note

+

We currently support the creation of array equalities over index +Sorts bit-vector, floating-point, Int and Real. +Requires to enable option +arrays-exp.

+
+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator CVC5_KIND_APPLY_CONSTRUCTOR
+

Datatype constructor application.

+

    +
  • Arity: n > 0

      +
    • 1: DatatypeConstructor Term (see DatatypeConstructor::getTerm() const)

    • +
    • 2..n: Terms of the Sorts of the selectors of the constructor (the arguments to the constructor)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_APPLY_SELECTOR
+

Datatype selector application.

+

    +
  • Arity: 2

      +
    • 1: DatatypeSelector Term (see DatatypeSelector::getTerm() const)

    • +
    • 2: Term of the codomain Sort of the selector

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+

Note

+

Undefined if misapplied.

+
+
+ +
+
+enumerator CVC5_KIND_APPLY_TESTER
+

Datatype tester application.

+

    +
  • Arity: 2

      +
    • 1: Datatype tester Term (see DatatypeConstructor::getTesterTerm() const)

    • +
    • 2: Term of Datatype Sort (DatatypeConstructor must belong to this Datatype Sort)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_APPLY_UPDATER
+

Datatype update application.

+

    +
  • Arity: 3

      +
    • 1: Datatype updater Term (see DatatypeSelector::getUpdaterTerm() const)

    • +
    • 2: Term of Datatype Sort (DatatypeSelector of the updater must belong to a constructor of this Datatype Sort)

    • +
    • 3: Term of the codomain Sort of the selector (the Term to update the field of the datatype term with)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+

Note

+

Does not change the datatype argument if misapplied.

+
+
+ +
+
+enumerator CVC5_KIND_MATCH
+

Match expression.

+

This kind is primarily used in the parser to support the SMT-LIBv2 match expression.

+

For example, the SMT-LIBv2 syntax for the following match term

(match l (((cons h t) h) (nil 0)))
+
+
+

is represented by the AST

+
(MATCH l
+    (MATCH_BIND_CASE (VARIABLE_LIST h t) (cons h t) h)
+    (MATCH_CASE nil 0))
+
+
+

Terms of kind MATCH_CASE are constant case expressions, +which are used for nullary constructors. Kind +MATCH_BIND_CASE is used for constructors with selectors +and variable match patterns. If not all constructors are covered, at least +one catch-all variable pattern must be included.

+
    +
  • Arity: n > 1

    +
      +
    • 1..n: Terms of kind MATCH_CASE and MATCH_BIND_CASE

    • +
    +
  • +
+

+

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_MATCH_CASE
+

Match case for nullary constructors.

+

A (constant) case expression to be used within a match expression.

+

    +
  • Arity: 2

    +
      +
    • 1: Term of kind APPLY_CONSTRUCTOR (the pattern to match against)

    • +
    • 2: Term of any Sort (the term the match term evaluates to)

    • +
    +
  • +
+

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_MATCH_BIND_CASE
+

Match case with binders, for constructors with selectors and variable patterns.

+

A (non-constant) case expression to be used within a match expression.

+

    +
  • Arity: 3

    +
      +
    • For variable patterns:

      +
        +
      • 1: Term of kind VARIABLE_LIST (containing the free variable of the case)

      • +
      • 2: Term of kind VARIABLE (the pattern expression, the free variable of the case)

      • +
      • 3: Term of any Sort (the term the pattern evaluates to)

      • +
      +
    • +
    • For constructors with selectors:

      +
        +
      • 1: Term of kind VARIABLE_LIST (containing the free variable of the case)

      • +
      • 2: Term of kind APPLY_CONSTRUCTOR (the pattern expression, applying the set of variables to the constructor)

      • +
      • 3: Term of any Sort (the term the match term evaluates to)

      • +
      +
    • +
    +
  • +
+

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_TUPLE_PROJECT
+

Tuple projection.

+

This operator takes a tuple as an argument and returns a tuple obtained by concatenating components of its argument at the provided indices.

+

For example,

((_ tuple.project 1 2 2 3 1) (tuple 10 20 30 40))
+
+
+

+ yields

(tuple 20 30 30 40 20)
+
+
+

+

+

    +
  • Arity: 1

      +
    • 1: Term of tuple Sort

    • +
    +

  • +
  • Indices: n

      +
    • 1..n: The tuple indices to project

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_NULLABLE_LIFT
+

Lifting operator for nullable terms. This operator lifts a built-in operator or a user-defined function to nullable terms. For built-in kinds use mkNullableLift. For user-defined functions use mkTerm.

+

    +
  • Arity: n > 1

  • +
  • 1..n: Terms of nullable sort

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkNullableLift(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_SEP_NIL
+

Separation logic nil.

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkSepNil(const Sort&) const

    • +
    +

  • +
+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator CVC5_KIND_SEP_EMP
+

Separation logic empty heap.

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkSepEmp() const

    • +
    +

  • +
+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator CVC5_KIND_SEP_PTO
+

Separation logic points-to relation.

+

    +
  • Arity: 2

      +
    • 1: Term denoting the location of the points-to constraint

    • +
    • 2: Term denoting the data of the points-to constraint

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator CVC5_KIND_SEP_STAR
+

Separation logic star.

+

    +
  • Arity: n > 1

      +
    • 1..n: Terms of sort Bool (the child constraints that hold in disjoint (separated) heaps)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator CVC5_KIND_SEP_WAND
+

Separation logic magic wand.

+

    +
  • Arity: 2

      +
    • 1: Terms of Sort Bool (the antecendant of the magic wand constraint)

    • +
    • 2: Terms of Sort Bool (conclusion of the magic wand constraint, which is asserted to hold in all heaps that are disjoint extensions of the antecedent)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator CVC5_KIND_SET_EMPTY
+

Empty set.

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkEmptySet(const Sort&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_SET_UNION
+

Set union.

+

    +
  • Arity: 2

      +
    • 1..2: Terms of set Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_SET_INTER
+

Set intersection.

+

    +
  • Arity: 2

      +
    • 1..2: Terms of set Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_SET_MINUS
+

Set subtraction.

+

    +
  • Arity: 2

      +
    • 1..2: Terms of set Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_SET_SUBSET
+

Subset predicate.

+

Determines if the first set is a subset of the second set.

+

    +
  • Arity: 2

      +
    • 1..2: Terms of set Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_SET_MEMBER
+

Set membership predicate.

+

Determines if the given set element is a member of the second set.

+

    +
  • Arity: 2

      +
    • 1: Term of any Sort (must match the element Sort of the given set Term)

    • +
    • 2: Term of set Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_SET_SINGLETON
+

Singleton set.

+

Construct a singleton set from an element given as a parameter. The returned set has the same Sort as the element.

+

    +
  • Arity: 1

      +
    • 1: Term of any Sort (the set element)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_SET_INSERT
+

The set obtained by inserting elements;

+

    +
  • Arity: n > 0

      +
    • 1..n-1: Terms of any Sort (must match the element sort of the given set Term)

    • +
    • n: Term of set Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_SET_CARD
+

Set cardinality.

+

    +
  • Arity: 1

      +
    • 1: Term of set Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_SET_COMPLEMENT
+

Set complement with respect to finite universe.

+

    +
  • Arity: 1

      +
    • 1: Term of set Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_SET_UNIVERSE
+

Finite universe set.

+

All set variables must be interpreted as subsets of it.

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkUniverseSet(const Sort&) const

    • +
    +

  • +
+

+
+

Note

+

SET_UNIVERSE is considered a special symbol of +the theory of sets and is not considered as a set value, i.e., +Term::isSetValue() will return false.

+
+
+ +
+
+enumerator CVC5_KIND_SET_COMPREHENSION
+

Set comprehension

+

A set comprehension is specified by a variable list \(x_1 ... x_n\), +a predicate \(P[x_1...x_n]\), and a term \(t[x_1...x_n]\). A +comprehension \(C\) with the above form has members given by the +following semantics:

+
+\[\forall y. ( \exists x_1...x_n. P[x_1...x_n] \wedge t[x_1...x_n] = y ) +\Leftrightarrow (set.member \; y \; C)\]
+

where \(y\) ranges over the element Sort of the (set) Sort of the +comprehension. If \(t[x_1..x_n]\) is not provided, it is equivalent +to \(y\) in the above formula.

+
    +
  • Arity: 3

    +
      +
    • 1: Term of Kind VARIABLE_LIST

    • +
    • 2: Term of sort Bool (the predicate of the comprehension)

    • +
    • 3: (optional) Term denoting the generator for the comprehension

    • +
    +
  • +
+

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator CVC5_KIND_SET_CHOOSE
+

Set choose.

+

Select an element from a given set. For a set \(A = \{x\}\), the term +(set.choose \(A\)) is equivalent to the term \(x_1\). For an empty +set, it is an arbitrary value. For a set with cardinality > 1, it will +deterministically return an element in \(A\).

+

    +
  • Arity: 1

      +
    • 1: Term of set Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator CVC5_KIND_SET_IS_EMPTY
+

Set is empty tester.

+

    +
  • Arity: 1

      +
    • 1: Term of set Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator CVC5_KIND_SET_IS_SINGLETON
+

Set is singleton tester.

+

    +
  • Arity: 1

      +
    • 1: Term of set Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator CVC5_KIND_SET_MAP
+

Set map.

+

This operator applies the first argument, a function of +Sort \((\rightarrow S_1 \; S_2)\), to every element of the second +argument, a set of Sort (Set \(S_1\)), and returns a set of Sort +(Set \(S_2\)).

+
    +
  • Arity: 2

    +
      +
    • 1: Term of function Sort \((\rightarrow S_1 \; S_2)\)

    • +
    • 2: Term of set Sort (Set \(S_1\))

    • +
    +
  • +
+

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator CVC5_KIND_SET_FILTER
+

Set filter.

+

This operator filters the elements of a set. +(set.filter \(p \; A\)) takes a predicate \(p\) of Sort +\((\rightarrow T \; Bool)\) as a first argument, and a set \(A\) +of Sort (Set \(T\)) as a second argument, and returns a subset of Sort +(Set \(T\)) that includes all elements of \(A\) that satisfy +\(p\).

+
    +
  • Arity: 2

    +
      +
    • 1: Term of function Sort \((\rightarrow T \; Bool)\)

    • +
    • 2: Term of bag Sort (Set \(T\))

    • +
    +
  • +
+

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator CVC5_KIND_SET_ALL
+

Set all.

+

This operator checks whether all elements of a set satisfy a predicate. +(set.all \(p \; A\)) takes a predicate \(p\) of Sort +\((\rightarrow T \; Bool)\) as a first argument, and a set \(A\) +of Sort (Set \(T\)) as a second argument, and returns true iff all +elements of \(A\) satisfy predicate \(p\).

+
    +
  • Arity: 2

    +
      +
    • 1: Term of function Sort \((\rightarrow T \; Bool)\)

    • +
    • 2: Term of bag Sort (Set \(T\))

    • +
    +
  • +
+

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator CVC5_KIND_SET_SOME
+

Set some.

+

This operator checks whether at least one element of a set satisfies a predicate. +(set.some \(p \; A\)) takes a predicate \(p\) of Sort +\((\rightarrow T \; Bool)\) as a first argument, and a set \(A\) +of Sort (Set \(T\)) as a second argument, and returns true iff at least +one element of \(A\) satisfies predicate \(p\).

+
    +
  • Arity: 2

    +
      +
    • 1: Term of function Sort \((\rightarrow T \; Bool)\)

    • +
    • 2: Term of bag Sort (Set \(T\))

    • +
    +
  • +
+

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator CVC5_KIND_SET_FOLD
+

Set fold.

+

This operator combines elements of a set into a single value. +(set.fold \(f \; t \; A\)) folds the elements of set \(A\) +starting with Term \(t\) and using the combining function \(f\).

+
    +
  • Arity: 2

    +
      +
    • 1: Term of function Sort \((\rightarrow S_1 \; S_2 \; S_2)\)

    • +
    • 2: Term of Sort \(S_2\) (the initial value)

    • +
    • 3: Term of bag Sort (Set \(S_1\))

    • +
    +
  • +
+

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator CVC5_KIND_RELATION_JOIN
+

Relation join.

+

    +
  • Arity: 2

      +
    • 1..2: Terms of relation Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_RELATION_TABLE_JOIN
+

+

Table join operator for relations has the form +\(((\_ \; rel.table\_join \; m_1 \; n_1 \; \dots \; m_k \; n_k) \; A \; B)\) +where \(m_1 \; n_1 \; \dots \; m_k \; n_k\) are natural numbers, +and \(A, B\) are relations. +This operator filters the product of two sets based on the equality of +projected tuples using indices \(m_1, \dots, m_k\) in relation \(A\), +and indices \(n_1, \dots, n_k\) in relation \(B\).

+
+
    +
  • Arity: 2

    +
      +
    • 1: Term of relation Sort

    • +
    • 2: Term of relation Sort

    • +
    +
  • +
  • Indices: n +- 1..n: Indices of the projection

  • +
+

+
    +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator CVC5_KIND_RELATION_PRODUCT
+

Relation cartesian product.

+

    +
  • Arity: 2

      +
    • 1..2: Terms of relation Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_RELATION_TRANSPOSE
+

Relation transpose.

+

    +
  • Arity: 1

      +
    • 1: Term of relation Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_RELATION_TCLOSURE
+

Relation transitive closure.

+

    +
  • Arity: 1

      +
    • 1: Term of relation Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_RELATION_JOIN_IMAGE
+

Relation join image.

+

    +
  • Arity: 2

      +
    • 1..2: Terms of relation Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator CVC5_KIND_RELATION_IDEN
+

Relation identity.

+

    +
  • Arity: 1

      +
    • 1: Term of relation Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator CVC5_KIND_RELATION_GROUP
+

Relation group

+

\(((\_ \; rel.group \; n_1 \; \dots \; n_k) \; A)\) partitions tuples +of relation \(A\) such that tuples that have the same projection +with indices \(n_1 \; \dots \; n_k\) are in the same part. +It returns a set of relations of type \((Set \; T)\) where +\(T\) is the type of \(A\).

+
    +
  • Arity: 1

    +
      +
    • 1: Term of relation sort

    • +
    +
  • +
  • Indices: n

    +
      +
    • 1..n: Indices of the projection

    • +
    +
  • +
+

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator CVC5_KIND_RELATION_AGGREGATE
+

Relation aggregate operator has the form +\(((\_ \; rel.aggr \; n_1 ... n_k) \; f \; i \; A)\) +where \(n_1, ..., n_k\) are natural numbers, +\(f\) is a function of type +\((\rightarrow (Tuple \; T_1 \; ... \; T_j)\; T \; T)\), +\(i\) has the type \(T\), +and \(A\) has type \((Relation \; T_1 \; ... \; T_j)\). +The returned type is \((Set \; T)\).

+

This operator aggregates elements in A that have the same tuple projection +with indices n_1, …, n_k using the combining function \(f\), +and initial value \(i\).

+
    +
  • Arity: 3

    +
      +
    • 1: Term of sort \((\rightarrow (Tuple \; T_1 \; ... \; T_j)\; T \; T)\)

    • +
    • 2: Term of Sort \(T\)

    • +
    • 3: Term of relation sort \(Relation T_1 ... T_j\)

    • +
    +
  • +
  • Indices: n +- 1..n: Indices of the projection

  • +
+

+
    +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator CVC5_KIND_RELATION_PROJECT
+

Relation projection operator extends tuple projection operator to sets.

+

    +
  • Arity: 1

      +
    • 1: Term of relation Sort

    • +
    +

  • +
  • Indices: n

      +
    • 1..n: Indices of the projection

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

      +

    • +
    +

  • +
+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator CVC5_KIND_BAG_EMPTY
+

Empty bag.

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkEmptyBag(const Sort&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BAG_UNION_MAX
+

Bag max union.

+

    +
  • Arity: 2

      +
    • 1..2: Terms of bag Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BAG_UNION_DISJOINT
+

Bag disjoint union (sum).

+

    +
  • Arity: 2

      +
    • 1..2: Terms of bag Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BAG_INTER_MIN
+

Bag intersection (min).

+

    +
  • Arity: 2

      +
    • 1..2: Terms of bag Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BAG_DIFFERENCE_SUBTRACT
+

Bag difference subtract.

+

Subtracts multiplicities of the second from the first.

+

    +
  • Arity: 2

      +
    • 1..2: Terms of bag Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BAG_DIFFERENCE_REMOVE
+

Bag difference remove.

+

Removes shared elements in the two bags.

+

    +
  • Arity: 2

      +
    • 1..2: Terms of bag Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BAG_SUBBAG
+

Bag inclusion predicate.

+

Determine if multiplicities of the first bag are less than or equal to multiplicities of the second bag.

+

    +
  • Arity: 2

      +
    • 1..2: Terms of bag Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BAG_COUNT
+

Bag element multiplicity.

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const Term&, const Term&) const

    • +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BAG_MEMBER
+

Bag membership predicate.

+

    +
  • Arity: 2

      +
    • 1: Term of any Sort (must match the element Sort of the given bag Term)

    • +
    • 2: Terms of bag Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BAG_SETOF
+

Bag setof.

+

Eliminate duplicates in a given bag. The returned bag contains exactly the same elements in the given bag, but with multiplicity one.

+

    +
  • Arity: 1

      +
    • 1: Term of bag Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator CVC5_KIND_BAG_MAKE
+

Bag make.

+

Construct a bag with the given element and given multiplicity.

+

    +
  • Arity: 2

      +
    • 1: Term of any Sort (the bag element)

    • +
    • 2: Term of Sort Int (the multiplicity of the element)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_BAG_CARD
+

Bag cardinality.

+

    +
  • Arity: 1

      +
    • 1: Term of bag Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator CVC5_KIND_BAG_CHOOSE
+

Bag choose.

+

Select an element from a given bag.

+

For a bag \(A = \{(x,n)\}\) where \(n\) is the multiplicity, then +the term (choose \(A\)) is equivalent to the term \(x\). For an +empty bag, then it is an arbitrary value. For a bag that contains distinct +elements, it will deterministically return an element in \(A\).

+

    +
  • Arity: 1

      +
    • 1: Term of bag Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator CVC5_KIND_BAG_MAP
+

Bag map.

+

This operator applies the first argument, a function of +Sort \((\rightarrow S_1 \; S_2)\), to every element of the second +argument, a set of Sort (Bag \(S_1\)), and returns a set of Sort +(Bag \(S_2\)).

+
    +
  • Arity: 2

    +
      +
    • 1: Term of function Sort \((\rightarrow S_1 \; S_2)\)

    • +
    • 2: Term of bag Sort (Bag \(S_1\))

    • +
    +
  • +
+

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator CVC5_KIND_BAG_FILTER
+

Bag filter.

+

This operator filters the elements of a bag. +(bag.filter \(p \; B\)) takes a predicate \(p\) of Sort +\((\rightarrow T \; Bool)\) as a first argument, and a bag \(B\) +of Sort (Bag \(T\)) as a second argument, and returns a subbag of Sort +(Bag \(T\)) that includes all elements of \(B\) that satisfy +\(p\) with the same multiplicity.

+
    +
  • Arity: 2

    +
      +
    • 1: Term of function Sort \((\rightarrow T \; Bool)\)

    • +
    • 2: Term of bag Sort (Bag \(T\))

    • +
    +
  • +
+

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator CVC5_KIND_BAG_FOLD
+

Bag fold.

+

This operator combines elements of a bag into a single value. +(bag.fold \(f \; t \; B\)) folds the elements of bag \(B\) +starting with Term \(t\) and using the combining function \(f\).

+
    +
  • Arity: 2

    +
      +
    • 1: Term of function Sort \((\rightarrow S_1 \; S_2 \; S_2)\)

    • +
    • 2: Term of Sort \(S_2\) (the initial value)

    • +
    • 3: Term of bag Sort (Bag \(S_1\))

    • +
    +
  • +
+

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator CVC5_KIND_BAG_PARTITION
+

Bag partition.

+

This operator partitions of a bag of elements into disjoint bags. +(bag.partition \(r \; B\)) partitions the elements of bag \(B\) +of type \((Bag \; E)\) based on the equivalence relations \(r\) of +type \((\rightarrow \; E \; E \; Bool)\). +It returns a bag of bags of type \((Bag \; (Bag \; E))\).

+
    +
  • Arity: 2

    +
      +
    • 1: Term of function Sort \((\rightarrow \; E \; E \; Bool)\)

    • +
    • 2: Term of bag Sort (Bag \(E\))

    • +
    +
  • +
+

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator CVC5_KIND_TABLE_PRODUCT
+

Table cross product.

+

    +
  • Arity: 2

      +
    • 1..2: Terms of table Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator CVC5_KIND_TABLE_PROJECT
+

Table projection operator extends tuple projection operator to tables.

+

    +
  • Arity: 1

      +
    • 1: Term of table Sort

    • +
    +

  • +
  • Indices: n

      +
    • 1..n: Indices of the projection

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

      +

    • +
    +

  • +
+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator CVC5_KIND_TABLE_AGGREGATE
+

Table aggregate operator has the form +\(((\_ \; table.aggr \; n_1 ... n_k) \; f \; i \; A)\) +where \(n_1, ..., n_k\) are natural numbers, +\(f\) is a function of type +\((\rightarrow (Tuple \; T_1 \; ... \; T_j)\; T \; T)\), +\(i\) has the type \(T\), +and \(A\) has type \((Table \; T_1 \; ... \; T_j)\). +The returned type is \((Bag \; T)\).

+

This operator aggregates elements in A that have the same tuple projection +with indices n_1, …, n_k using the combining function \(f\), +and initial value \(i\).

+
    +
  • Arity: 3

    +
      +
    • 1: Term of sort \((\rightarrow (Tuple \; T_1 \; ... \; T_j)\; T \; T)\)

    • +
    • 2: Term of Sort \(T\)

    • +
    • 3: Term of table sort \(Table T_1 ... T_j\)

    • +
    +
  • +
  • Indices: n +- 1..n: Indices of the projection

  • +
+

+
    +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator CVC5_KIND_TABLE_JOIN
+

+

Table join operator has the form +\(((\_ \; table.join \; m_1 \; n_1 \; \dots \; m_k \; n_k) \; A \; B)\) +where \(m_1 \; n_1 \; \dots \; m_k \; n_k\) are natural numbers, +and \(A, B\) are tables. +This operator filters the product of two bags based on the equality of +projected tuples using indices \(m_1, \dots, m_k\) in table \(A\), +and indices \(n_1, \dots, n_k\) in table \(B\).

+
+
    +
  • Arity: 2

    +
      +
    • 1: Term of table Sort

    • +
    • 2: Term of table Sort

    • +
    +
  • +
  • Indices: n +- 1..n: Indices of the projection

  • +
+

+
    +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator CVC5_KIND_TABLE_GROUP
+

Table group

+

\(((\_ \; table.group \; n_1 \; \dots \; n_k) \; A)\) partitions tuples +of table \(A\) such that tuples that have the same projection +with indices \(n_1 \; \dots \; n_k\) are in the same part. +It returns a bag of tables of type \((Bag \; T)\) where +\(T\) is the type of \(A\).

+
    +
  • Arity: 1

    +
      +
    • 1: Term of table sort

    • +
    +
  • +
  • Indices: n

    +
      +
    • 1..n: Indices of the projection

    • +
    +
  • +
+

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator CVC5_KIND_STRING_CONCAT
+

String concat.

+

    +
  • Arity: n > 1

      +
    • 1..n: Terms of Sort String

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_STRING_IN_REGEXP
+

String membership.

+

    +
  • Arity: 2

      +
    • 1: Term of Sort String

    • +
    • 2: Term of Sort RegLan

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_STRING_LENGTH
+

String length.

+

    +
  • Arity: 1

      +
    • 1: Term of Sort String

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_STRING_SUBSTR
+

String substring.

+

Extracts a substring, starting at index \(i\) and of length \(l\), +from a string \(s\). If the start index is negative, the start index +is greater than the length of the string, or the length is negative, the +result is the empty string.

+
    +
  • Arity: 3

    +
      +
    • 1: Term of Sort String

    • +
    • 2: Term of Sort Int (index \(i\))

    • +
    • 3: Term of Sort Int (length \(l\))

    • +
    +
  • +
+

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_STRING_UPDATE
+

String update.

+

Updates a string \(s\) by replacing its context starting at an index +with string \(t\). If the start index is negative, the start index is +greater than the length of the string, the result is \(s\). Otherwise, +the length of the original string is preserved.

+
    +
  • Arity: 3

    +
      +
    • 1: Term of Sort String

    • +
    • 2: Term of Sort Int (index \(i\))

    • +
    • 3: Term of Sort Strong (replacement string \(t\))

    • +
    +
  • +
+

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_STRING_CHARAT
+

String character at.

+

Returns the character at index \(i\) from a string \(s\). If the +index is negative or the index is greater than the length of the string, +the result is the empty string. Otherwise the result is a string of +length 1.

+
    +
  • Arity: 2

    +
      +
    • 1: Term of Sort String (string \(s\))

    • +
    • 2: Term of Sort Int (index \(i\))

    • +
    +
  • +
+

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_STRING_CONTAINS
+

String contains.

+

Determines whether a string \(s_1\) contains another string +\(s_2\). If \(s_2\) is empty, the result is always true.

+
    +
  • Arity: 2

    +
      +
    • 1: Term of Sort String (the string \(s_1\))

    • +
    • 2: Term of Sort String (the string \(s_2\))

    • +
    +
  • +
+

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_STRING_INDEXOF
+

String index-of.

+

Returns the index of a substring \(s_2\) in a string \(s_1\) +starting at index \(i\). If the index is negative or greater than the +length of string \(s_1\) or the substring \(s_2\) does not appear +in string \(s_1\) after index \(i\), the result is -1.

+
    +
  • Arity: 2

    +
      +
    • 1: Term of Sort String (substring \(s_1\))

    • +
    • 2: Term of Sort String (substring \(s_2\))

    • +
    • 3: Term of Sort Int (index \(i\))

    • +
    +
  • +
+

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_STRING_INDEXOF_RE
+

String index-of regular expression match.

+

Returns the first match of a regular expression \(r\) in a +string \(s\). If the index is negative or greater than the length of +string \(s_1\), or \(r\) does not match a substring in \(s\) +after index \(i\), the result is -1.

+
    +
  • Arity: 3

    +
      +
    • 1: Term of Sort String (string \(s\))

    • +
    • 2: Term of Sort RegLan (regular expression \(r\))

    • +
    • 3: Term of Sort Int (index \(i\))

    • +
    +
  • +
+

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_STRING_REPLACE
+

String replace.

+

Replaces a string \(s_2\) in a string \(s_1\) with string +\(s_3\). If \(s_2\) does not appear in \(s_1\), \(s_1\) is +returned unmodified.

+
    +
  • Arity: 3

    +
      +
    • 1: Term of Sort String (string \(s_1\))

    • +
    • 2: Term of Sort String (string \(s_2\))

    • +
    • 3: Term of Sort String (string \(s_3\))

    • +
    +
  • +
+

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_STRING_REPLACE_ALL
+

String replace all.

+

Replaces all occurrences of a string \(s_2\) in a string \(s_1\) +with string \(s_3\). If \(s_2\) does not appear in \(s_1\), +\(s_1\) is returned unmodified.

+
    +
  • Arity: 3

    +
      +
    • 1: Term of Sort String (\(s_1\))

    • +
    • 2: Term of Sort String (\(s_2\))

    • +
    • 3: Term of Sort String (\(s_3\))

    • +
    +
  • +
+

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_STRING_REPLACE_RE
+

String replace regular expression match.

+

Replaces the first match of a regular expression \(r\) in +string \(s_1\) with string \(s_2\). If \(r\) does not match a +substring of \(s_1\), \(s_1\) is returned unmodified.

+
    +
  • Arity: 3

    +
      +
    • 1: Term of Sort String (\(s_1\))

    • +
    • 2: Term of Sort RegLan

    • +
    • 3: Term of Sort String (\(s_2\))

    • +
    +
  • +
+

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_STRING_REPLACE_RE_ALL
+

String replace all regular expression matches.

+

Replaces all matches of a regular expression \(r\) in string +\(s_1\) with string \(s_2\). If \(r\) does not match a +substring of \(s_1\), string \(s_1\) is returned unmodified.

+
    +
  • Arity: 3

    +
      +
    • 1: Term of Sort String (\(s_1\))

    • +
    • 2: Term of Sort RegLan

    • +
    • 3: Term of Sort String (\(s_2\))

    • +
    +
  • +
+

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_STRING_TO_LOWER
+

String to lower case.

+

    +
  • Arity: 1

      +
    • 1: Term of Sort String

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_STRING_TO_UPPER
+

String to upper case.

+

    +
  • Arity: 1

      +
    • 1: Term of Sort String

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_STRING_REV
+

String reverse.

+

    +
  • Arity: 1

      +
    • 1: Term of Sort String

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_STRING_TO_CODE
+

String to code.

+

Returns the code point of a string if it has length one, or returns -1 otherwise.

+

    +
  • Arity: 1

      +
    • 1: Term of Sort String

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_STRING_FROM_CODE
+

String from code.

+

Returns a string containing a single character whose code point matches the argument to this function, or the empty string if the argument is out-of-bounds.

+

    +
  • Arity: 1

      +
    • 1: Term of Sort Int

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_STRING_LT
+

String less than.

+

Returns true if string \(s_1\) is (strictly) less than \(s_2\) +based on a lexiographic ordering over code points.

+
    +
  • Arity: 2

    +
      +
    • 1: Term of Sort String (\(s_1\))

    • +
    • 2: Term of Sort String (\(s_2\))

    • +
    +
  • +
+

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_STRING_LEQ
+

String less than or equal.

+

Returns true if string \(s_1\) is less than or equal to \(s_2\) +based on a lexiographic ordering over code points.

+
    +
  • Arity: 2

    +
      +
    • 1: Term of Sort String (\(s_1\))

    • +
    • 2: Term of Sort String (\(s_2\))

    • +
    +
  • +
+

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_STRING_PREFIX
+

String prefix-of.

+

Determines whether a string \(s_1\) is a prefix of string \(s_2\). +If string s1 is empty, this operator returns true.

+
    +
  • Arity: 2

    +
      +
    • 1: Term of Sort String (\(s_1\))

    • +
    • 2: Term of Sort String (\(s_2\))

    • +
    +
  • +
+

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_STRING_SUFFIX
+

String suffix-of.

+

Determines whether a string \(s_1\) is a suffix of the second string. +If string \(s_1\) is empty, this operator returns true.

+
    +
  • Arity: 2

    +
      +
    • 1: Term of Sort String (\(s_1\))

    • +
    • 2: Term of Sort String (\(s_2\))

    • +
    +
  • +
+

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_STRING_IS_DIGIT
+

String is-digit.

+

Returns true if given string is a digit (it is one of "0", …, "9").

+

    +
  • Arity: 1

      +
    • 1: Term of Sort String

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_STRING_FROM_INT
+

Conversion from Int to String.

+

If the integer is negative this operator returns the empty string.

+

    +
  • Arity: 1

      +
    • 1: Term of Sort Int

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_STRING_TO_INT
+

String to integer (total function).

+

If the string does not contain an integer or the integer is negative, the operator returns -1.

+

    +
  • Arity: 1

      +
    • 1: Term of Sort Int

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_CONST_STRING
+

Constant string.

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkString(const std::string&, bool) const

    • +
    • Solver::mkString(const std::wstring&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_STRING_TO_REGEXP
+

Conversion from string to regexp.

+

    +
  • Arity: 1

      +
    • 1: Term of Sort String

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_REGEXP_CONCAT
+

Regular expression concatenation.

+

    +
  • Arity: 2

      +
    • 1..2: Terms of Sort RegLan

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_REGEXP_UNION
+

Regular expression union.

+

    +
  • Arity: 2

      +
    • 1..2: Terms of Sort RegLan

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_REGEXP_INTER
+

Regular expression intersection.

+

    +
  • Arity: 2

      +
    • 1..2: Terms of Sort RegLan

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_REGEXP_DIFF
+

Regular expression difference.

+

    +
  • Arity: 2

      +
    • 1..2: Terms of Sort RegLan

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_REGEXP_STAR
+

Regular expression *.

+

    +
  • Arity: 1

      +
    • 1: Term of Sort RegLan

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_REGEXP_PLUS
+

Regular expression +.

+

    +
  • Arity: 1

      +
    • 1: Term of Sort RegLan

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_REGEXP_OPT
+

Regular expression ?.

+

    +
  • Arity: 1

      +
    • 1: Term of Sort RegLan

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_REGEXP_RANGE
+

Regular expression range.

+

    +
  • Arity: 2

      +
    • 1: Term of Sort String (lower bound character for the range)

    • +
    • 2: Term of Sort String (upper bound character for the range)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_REGEXP_REPEAT
+

Operator for regular expression repeat.

+

    +
  • Arity: 1

      +
    • 1: Term of Sort RegLan

    • +
    +

  • +
  • Indices: 1

      +
    • 1: The number of repetitions

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_REGEXP_LOOP
+

Regular expression loop.

+

Regular expression loop from lower bound to upper bound number of repetitions.

+

    +
  • Arity: 1

      +
    • 1: Term of Sort RegLan

    • +
    +

  • +
  • Indices: 1

      +
    • 1: The lower bound

    • +
    • 2: The upper bound

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_REGEXP_NONE
+

Regular expression none.

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkRegexpNone() const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_REGEXP_ALL
+

Regular expression all.

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkRegexpAll() const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_REGEXP_ALLCHAR
+

Regular expression all characters.

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkRegexpAllchar() const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_REGEXP_COMPLEMENT
+

Regular expression complement.

+

    +
  • Arity: 1

      +
    • 1: Term of Sort RegLan

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_SEQ_CONCAT
+

Sequence concat.

+

    +
  • Arity: n > 1

      +
    • 1..n: Terms of sequence Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_SEQ_LENGTH
+

Sequence length.

+

    +
  • Arity: 1

      +
    • 1: Term of sequence Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_SEQ_EXTRACT
+

Sequence extract.

+

Extracts a subsequence, starting at index \(i\) and of length \(l\), +from a sequence \(s\). If the start index is negative, the start index +is greater than the length of the sequence, or the length is negative, the +result is the empty sequence.

+
    +
  • Arity: 3

    +
      +
    • 1: Term of sequence Sort

    • +
    • 2: Term of Sort Int (index \(i\))

    • +
    • 3: Term of Sort Int (length \(l\))

    • +
    +
  • +
+

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_SEQ_UPDATE
+

Sequence update.

+

Updates a sequence \(s\) by replacing its context starting at an index +with string \(t\). If the start index is negative, the start index is +greater than the length of the sequence, the result is \(s\). +Otherwise, the length of the original sequence is preserved.

+
    +
  • Arity: 3

    +
      +
    • 1: Term of sequence Sort

    • +
    • 2: Term of Sort Int (index \(i\))

    • +
    • 3: Term of sequence Sort (replacement sequence \(t\))

    • +
    +
  • +
+

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_SEQ_AT
+

Sequence element at.

+

Returns the element at index \(i\) from a sequence \(s\). If the index +is negative or the index is greater or equal to the length of the +sequence, the result is the empty sequence. Otherwise the result is a +sequence of length 1.

+
    +
  • Arity: 2

    +
      +
    • 1: Term of sequence Sort

    • +
    • 2: Term of Sort Int (index \(i\))

    • +
    +
  • +
+

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_SEQ_CONTAINS
+

Sequence contains.

+

Checks whether a sequence \(s_1\) contains another sequence +\(s_2\). If \(s_2\) is empty, the result is always true.

+
    +
  • Arity: 2

    +
      +
    • 1: Term of sequence Sort (\(s_1\))

    • +
    • 2: Term of sequence Sort (\(s_2\))

    • +
    +
  • +
+

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_SEQ_INDEXOF
+

Sequence index-of.

+

Returns the index of a subsequence \(s_2\) in a sequence \(s_1\) +starting at index \(i\). If the index is negative or greater than the +length of sequence \(s_1\) or the subsequence \(s_2\) does not +appear in sequence \(s_1\) after index \(i\), the result is -1.

+
    +
  • Arity: 3

    +
      +
    • 1: Term of sequence Sort (\(s_1\))

    • +
    • 2: Term of sequence Sort (\(s_2\))

    • +
    • 3: Term of Sort Int (\(i\))

    • +
    +
  • +
+

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_SEQ_REPLACE
+

Sequence replace.

+

Replaces the first occurrence of a sequence \(s_2\) in a +sequence \(s_1\) with sequence \(s_3\). If \(s_2\) does not +appear in \(s_1\), \(s_1\) is returned unmodified.

+
    +
  • Arity: 3

    +
      +
    • 1: Term of sequence Sort (\(s_1\))

    • +
    • 2: Term of sequence Sort (\(s_2\))

    • +
    • 3: Term of sequence Sort (\(s_3\))

    • +
    +
  • +
+

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_SEQ_REPLACE_ALL
+

Sequence replace all.

+

Replaces all occurrences of a sequence \(s_2\) in a sequence +\(s_1\) with sequence \(s_3\). If \(s_2\) does not appear in +\(s_1\), sequence \(s_1\) is returned unmodified.

+
    +
  • Arity: 3

    +
      +
    • 1: Term of sequence Sort (\(s_1\))

    • +
    • 2: Term of sequence Sort (\(s_2\))

    • +
    • 3: Term of sequence Sort (\(s_3\))

    • +
    +
  • +
+

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_SEQ_REV
+

Sequence reverse.

+

    +
  • Arity: 1

      +
    • 1: Term of sequence Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_SEQ_PREFIX
+

Sequence prefix-of.

+

Checks whether a sequence \(s_1\) is a prefix of sequence \(s_2\). +If sequence \(s_1\) is empty, this operator returns true.

+
    +
  • Arity: 1

    +
      +
    • 1: Term of sequence Sort (\(s_1\))

    • +
    • 2: Term of sequence Sort (\(s_2\))

    • +
    +
  • +
+

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_SEQ_SUFFIX
+

Sequence suffix-of.

+

Checks whether a sequence \(s_1\) is a suffix of sequence \(s_2\). +If sequence \(s_1\) is empty, this operator returns true.

+
    +
  • Arity: 1

    +
      +
    • 1: Term of sequence Sort (\(s_1\))

    • +
    • 2: Term of sequence Sort (\(s_2\))

    • +
    +
  • +
+

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_CONST_SEQUENCE
+

Constant sequence.

+

A constant sequence is a term that is equivalent to:

(seq.++ (seq.unit c1) ... (seq.unit cn))
+
+
+

where \(n \leq 0\) and \(c_1, ..., c_n\) are constants of some +sort. The elements can be extracted with Term::getSequenceValue().

+

+

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkEmptySequence(const Sort&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_SEQ_UNIT
+

Sequence unit.

+

Corresponds to a sequence of length one with the given term.

+

    +
  • Arity: 1

      +
    • 1: Term of any Sort (the element term)

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_SEQ_NTH
+

Sequence nth.

+

Corresponds to the nth element of a sequence.

+

    +
  • Arity: 2

    +
      +
    • 1: Term of sequence Sort

    • +
    • 2: Term of Sort Int (\(n\))

    • +
    +
  • +
+

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_FORALL
+

Universally quantified formula.

+

    +
  • Arity: 3

    +
      +
    • 1: Term of Kind VARIABLE_LIST

    • +
    • 2: Term of Sort Bool (the quantifier body)

    • +
    • 3: (optional) Term of Kind INST_PATTERN

    • +
    +
  • +
+

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_EXISTS
+

Existentially quantified formula.

+

    +
  • Arity: 3

    +
      +
    • 1: Term of Kind VARIABLE_LIST

    • +
    • 2: Term of Sort Bool (the quantifier body)

    • +
    • 3: (optional) Term of Kind INST_PATTERN

    • +
    +
  • +
+

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_VARIABLE_LIST
+

Variable list.

+

A list of variables (used to bind variables under a quantifier)

+

    +
  • Arity: n > 0

    +
      +
    • 1..n: Terms of Kind VARIABLE

    • +
    +
  • +
+

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_INST_PATTERN
+

Instantiation pattern.

+

Specifies a (list of) terms to be used as a pattern for quantifier instantiation.

+

    +
  • Arity: n > 0

      +
    • 1..n: Terms of any Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+

Note

+

Should only be used as a child of +INST_PATTERN_LIST.

+
+
+ +
+
+enumerator CVC5_KIND_INST_NO_PATTERN
+

Instantiation no-pattern.

+

Specifies a (list of) terms that should not be used as a pattern for quantifier instantiation.

+

    +
  • Arity: n > 0

      +
    • 1..n: Terms of any Sort

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+

Note

+

Should only be used as a child of +INST_PATTERN_LIST.

+
+
+ +
+
+enumerator CVC5_KIND_INST_POOL
+

Instantiation pool annotation.

+

Specifies an annotation for pool based instantiation.

+

In detail, pool symbols can be declared via the method

    +
  • Solver::declarePool(const std::string&, const Sort&, const std::vector<Term>&) const

  • +
+

+

A pool symbol represents a set of terms of a given sort. An instantiation pool annotation should either: (1) have child sets matching the types of the quantified formula, (2) have a child set of tuple type whose component types match the types of the quantified formula.

+

For an example of (1), for a quantified formula:

+

(FORALL (VARIABLE_LIST x y) F (INST_PATTERN_LIST (INST_POOL p q)))
+
+
+

if \(x\) and \(y\) have Sorts \(S_1\) and \(S_2\), then +pool symbols \(p\) and \(q\) should have Sorts (Set \(S_1\)) +and (Set \(S_2\)), respectively. This annotation specifies that the +quantified formula above should be instantiated with the product of all +terms that occur in the sets \(p\) and \(q\).

+

+

Alternatively, as an example of (2), for a quantified formula:

+

(FORALL (VARIABLE_LIST x y) F (INST_PATTERN_LIST (INST_POOL s)))
+
+
+

\(s\) should have Sort (Set (Tuple \(S_1\) \(S_2\))). This +annotation specifies that the quantified formula above should be +instantiated with the pairs of values in \(s\).

+
    +
  • Arity: n > 0

    +
      +
    • 1..n: Terms that comprise the pools, which are one-to-one with the variables of the quantified formula to be instantiated

    • +
    +
  • +
  • Create Term of this Kind with:

    +
      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +
  • +
  • Create Op of this kind with:

    +
      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +
  • +
+

+
+

Note

+

Should only be used as a child of +INST_PATTERN_LIST.

+
+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator CVC5_KIND_INST_ADD_TO_POOL
+

A instantantiation-add-to-pool annotation.

+

An instantantiation-add-to-pool annotation indicates that when a quantified formula is instantiated, the instantiated version of a term should be added to the given pool.

+

For example, consider a quantified formula:

+

(FORALL (VARIABLE_LIST x) F
+        (INST_PATTERN_LIST (INST_ADD_TO_POOL (ADD x 1) p)))
+
+
+

where assume that \(x\) has type Int. When this quantified formula is +instantiated with, e.g., the term \(t\), the term (ADD t 1) is +added to pool \(p\).

+

+

    +
  • Arity: 2

      +
    • 1: The Term whose free variables are bound by the quantified formula.

    • +
    • 2: The pool to add to, whose Sort should be a set of elements that match the Sort of the first argument.

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+

Note

+

Should only be used as a child of +INST_PATTERN_LIST.

+
+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator CVC5_KIND_SKOLEM_ADD_TO_POOL
+

A skolemization-add-to-pool annotation.

+

An skolemization-add-to-pool annotation indicates that when a quantified formula is skolemized, the skolemized version of a term should be added to the given pool.

+

For example, consider a quantified formula:

+

(FORALL (VARIABLE_LIST x) F
+        (INST_PATTERN_LIST (SKOLEM_ADD_TO_POOL (ADD x 1) p)))
+
+
+

where assume that \(x\) has type Int. When this quantified formula is +skolemized, e.g., with \(k\) of type Int, then the term (ADD k 1) +is added to the pool \(p\).

+

+

    +
  • Arity: 2

      +
    • 1: The Term whose free variables are bound by the quantified formula.

    • +
    • 2: The pool to add to, whose Sort should be a set of elements that match the Sort of the first argument.

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+

Note

+

Should only be used as a child of +INST_PATTERN_LIST.

+
+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator CVC5_KIND_INST_ATTRIBUTE
+

Instantiation attribute.

+

Specifies a custom property for a quantified formula given by a term that is ascribed a user attribute.

+

    +
  • Arity: n > 0

      +
    • 1: Term of Kind :cpp:enumerator:CONST_STRING (the keyword of the attribute)

    • +
    • 2...n: Terms representing the values of the attribute

    • +
    +

  • +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+

Note

+

Should only be used as a child of +INST_PATTERN_LIST.

+
+
+ +
+
+enumerator CVC5_KIND_INST_PATTERN_LIST
+

A list of instantiation patterns, attributes or annotations.

+

    +
  • Arity: n > 1

    +
      +
    • 1..n: Terms of Kind INST_PATTERN, INST_NO_PATTERN, INST_POOL, INST_ADD_TO_POOL, SKOLEM_ADD_TO_POOL, INST_ATTRIBUTE

    • +
    +
  • +
+

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +

  • +
  • Create Op of this kind with:

      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_KIND_LAST_KIND
+

Marks the upper-bound of this enumeration.

+
+ +
+ +
+
+
+const char *cvc5_kind_to_string(Cvc5Kind kind)
+

Get a string representation of a Cvc5Kind.

+
+
Parameters:
+

kind – The kind.

+
+
Returns:
+

The string representation.

+
+
+
+ +
+
+size_t cvc5_kind_hash(Cvc5Kind kind)
+

Hash function for Cvc5Kinds.

+
+
Parameters:
+

kind – The kind.

+
+
Returns:
+

The hash value.

+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/enums/cvc5proofrule.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/enums/cvc5proofrule.html new file mode 100644 index 0000000000..2fe8ba231e --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/enums/cvc5proofrule.html @@ -0,0 +1,5529 @@ + + + + + + + + + + + + + Cvc5ProofRule and Cvc5ProofRewriteRule — cvc5 documentation + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Cvc5ProofRule and Cvc5ProofRewriteRule

+

Enum Cvc5ProofRule captures the reasoning steps performed by the +SAT solver, the theory solvers and the preprocessor. It represents the +inference rules used to derive conclusions within a proof.

+

Enum Cvc5ProofRewriteRule pertains to rewrites performed on terms. +These identifiers are arguments of the proof rules +CVC5_PROOF_RULE_THEORY_REWRITE and +CVC5_PROOF_RULE_DSL_REWRITE.

+
+
+
+enum Cvc5ProofRule
+

An enumeration for proof rules. This enumeration is analogous to Kind for +Node objects.

+

All proof rules are given as inference rules, presented in the following +form:

+
+\[\texttt{RULENAME}: +\inferruleSC{\varphi_1 \dots \varphi_n \mid t_1 \dots t_m}{\psi}{if $C$}\]
+

where we call \(\varphi_i\) its premises or children, \(t_i\) its +arguments, \(\psi\) its conclusion, and \(C\) its side condition. +Alternatively, we can write the application of a proof rule as +(RULENAME F1 ... Fn :args t1 ... tm), omitting the conclusion +(since it can be uniquely determined from premises and arguments). +Note that premises are sometimes given as proofs, i.e., application of +proof rules, instead of formulas. This abuses the notation to see proof +rule applications and their conclusions interchangeably.

+

Conceptually, the following proof rules form a calculus whose target +user is the Node-level theory solvers. This means that the rules below +are designed to reason about, among other things, common operations on Node +objects like Rewriter::rewrite or Node::substitute. It is intended to be +translated or printed in other formats.

+

The following ProofRule values include core rules and those categorized by +theory, including the theory of equality.

+

The “core rules” include two distinguished rules which have special status: +(1) ASSUME, which represents an +open leaf in a proof; and +(2) SCOPE, which encloses a scope +(a subproof) with a set of scoped assumptions. +The core rules additionally correspond to generic operations that are done +internally on nodes, e.g., calling Rewriter::rewrite().

+

Rules with prefix MACRO_ are those that can be defined in terms of other +rules. These exist for convenience and can be replaced by their definition +in post-processing.

+

+

Values:

+
+
+enumerator CVC5_PROOF_RULE_ASSUME
+

Assumption (a leaf)

+
+\[\inferrule{- \mid F}{F}\]
+

This rule has special status, in that an application of assume is an +open leaf in a proof that is not (yet) justified. An assume leaf is +analogous to a free variable in a term, where we say “F is a free +assumption in proof P” if it contains an application of F that is not +bound by SCOPE (see below).

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_SCOPE
+

Scope (a binder for assumptions)

+
+\[\inferruleSC{F \mid F_1 \dots F_n}{(F_1 \land \dots \land F_n) +\Rightarrow F}{if $F\neq\bot$} \textrm{ or } \inferruleSC{F \mid F_1 +\dots F_n}{\neg (F_1 \land \dots \land F_n)}{if $F=\bot$}\]
+

This rule has a dual purpose with +ASSUME. It is a way to close +assumptions in a proof. We require that \(F_1 \dots F_n\) are free +assumptions in P and say that \(F_1 \dots F_n\) are not free in +(SCOPE P). In other words, they are bound by this application. For +example, the proof node: +(SCOPE (ASSUME F) :args F) +has the conclusion \(F \Rightarrow F\) and has no free assumptions. +More generally, a proof with no free assumptions always concludes a valid +formula.

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_SUBS
+

Builtin theory – Substitution

+
+\[\inferrule{F_1 \dots F_n \mid t, ids?}{t = t \circ \sigma_{ids}(F_n) +\circ \cdots \circ \sigma_{ids}(F_1)}\]
+

where \(\sigma_{ids}(F_i)\) are substitutions, which notice are applied +in reverse order. Notice that \(ids\) is a MethodId identifier, which +determines how to convert the formulas \(F_1 \dots F_n\) into +substitutions. It is an optional argument, where by default the premises +are equalities of the form (= x y) and converted into substitutions +\(x\mapsto y\).

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_MACRO_REWRITE
+

Builtin theory – Rewrite

+
+\[\inferrule{- \mid t, idr}{t = \texttt{rewrite}_{idr}(t)}\]
+

where \(idr\) is a MethodId identifier, which determines the kind of +rewriter to apply, e.g. Rewriter::rewrite.

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_EVALUATE
+

Builtin theory – Evaluate

+
+\[\inferrule{- \mid t}{t = \texttt{evaluate}(t)}\]
+

where \(\texttt{evaluate}\) is implemented by calling the method +\(\texttt{Evalutor::evaluate}\) in theory/evaluator.h with an +empty substitution. +Note this is equivalent to: (REWRITE t MethodId::RW_EVALUATE).

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_ACI_NORM
+

Builtin theory – associative/commutative/idempotency/identity normalization

+
+\[\inferrule{- \mid t = s}{t = s}\]
+

where \(\texttt{expr::isACNorm(t, s)} = \top\). For details, see +expr/nary_term_util.h. +This method normalizes currently based on two kinds of operators: +(1) those that are associative, commutative, idempotent, and have an +identity element (examples are or, and, bvand), +(2) those that are associative and have an identity element (examples +are str.++, re.++).

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_MACRO_SR_EQ_INTRO
+

Builtin theory – Substitution + Rewriting equality introduction

+

In this rule, we provide a term \(t\) and conclude that it is equal to +its rewritten form under a (proven) substitution.

+
+\[\inferrule{F_1 \dots F_n \mid t, (ids (ida (idr)?)?)?}{t = +\texttt{rewrite}_{idr}(t \circ \sigma_{ids, ida}(F_n) \circ \cdots \circ +\sigma_{ids, ida}(F_1))}\]
+

In other words, from the point of view of Skolem forms, this rule +transforms \(t\) to \(t'\) by standard substitution + rewriting.

+

The arguments \(ids\), \(ida\) and \(idr\) are optional and +specify the identifier of the substitution, the substitution application +and rewriter respectively to be used. For details, see +theory/builtin/proof_checker.h.

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_MACRO_SR_PRED_INTRO
+

Builtin theory – Substitution + Rewriting predicate introduction

+

In this rule, we provide a formula \(F\) and conclude it, under the +condition that it rewrites to true under a proven substitution.

+
+\[\inferrule{F_1 \dots F_n \mid F, (ids (ida (idr)?)?)?}{F}\]
+

where \(\texttt{rewrite}_{idr}(F \circ \sigma_{ids, ida}(F_n) \circ +\cdots \circ \sigma_{ids, ida}(F_1)) = \top\) and \(ids\) and +\(idr\) are method identifiers.

+

More generally, this rule also holds when +\(\texttt{Rewriter::rewrite}(\texttt{toOriginal}(F')) = \top\) +where \(F'\) is the result of the left hand side of the equality above. +Here, notice that we apply rewriting on the original form of \(F'\), +meaning that this rule may conclude an \(F\) whose Skolem form is +justified by the definition of its (fresh) Skolem variables. For example, +this rule may justify the conclusion \(k = t\) where \(k\) is the +purification Skolem for \(t\), e.g. where the original form of +\(k\) is \(t\).

+

Furthermore, notice that the rewriting and substitution is applied only +within the side condition, meaning the rewritten form of the original form +of \(F\) does not escape this rule.

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_MACRO_SR_PRED_ELIM
+

Builtin theory – Substitution + Rewriting predicate elimination

+
+\[\inferrule{F, F_1 \dots F_n \mid (ids (ida +(idr)?)?)?}{\texttt{rewrite}_{idr}(F \circ \sigma_{ids, ida}(F_n) \circ +\cdots \circ \sigma_{ids, ida}(F_1))}\]
+

where \(ids\) and \(idr\) are method identifiers.

+

We rewrite only on the Skolem form of \(F\), similar to +MACRO_SR_EQ_INTRO.

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_MACRO_SR_PRED_TRANSFORM
+

Builtin theory – Substitution + Rewriting predicate elimination

+
+\[\inferrule{F, F_1 \dots F_n \mid G, (ids (ida (idr)?)?)?}{G}\]
+

where

+
+\[\begin{split}\texttt{rewrite}_{idr}(F \circ \sigma_{ids, ida}(F_n) \circ\cdots \circ \sigma_{ids, ida}(F_1)) =\\ \texttt{rewrite}_{idr}(G \circ \sigma_{ids, ida}(F_n) \circ \cdots \circ \sigma_{ids, ida}(F_1))\end{split}\]
+

More generally, this rule also holds when: +\(\texttt{Rewriter::rewrite}(\texttt{toOriginal}(F')) = \texttt{Rewriter::rewrite}(\texttt{toOriginal}(G'))\) +where \(F'\) and \(G'\) are the result of each side of the equation +above. Here, original forms are used in a similar manner to +MACRO_SR_PRED_INTRO +above.

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_ENCODE_EQ_INTRO
+

Builtin theory – Encode equality introduction

+
+\[\inferrule{- \mid t}{t=t'}\]
+

where \(t\) and \(t'\) are equivalent up to their encoding in an +external proof format.

+

More specifically, it is the case that +\(\texttt{RewriteDbNodeConverter::postConvert}(t) = t;\). +This conversion method for instance may drop user patterns from quantified +formulas or change the representation of \(t\) in a way that is a +no-op in external proof formats.

+

Note this rule can be treated as a +REFL when appropriate in +external proof formats.

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_DSL_REWRITE
+

Builtin theory – DSL rewrite

+
+\[\inferrule{F_1 \dots F_n \mid id t_1 \dots t_n}{F}\]
+

where id is a ProofRewriteRule whose definition in the +RARE DSL is \(\forall x_1 \dots x_n. (G_1 \wedge G_n) \Rightarrow G\) +where for \(i=1, \dots n\), we have that \(F_i = \sigma(G_i)\) +and \(F = \sigma(G)\) where \(\sigma\) is the substitution +\(\{x_1\mapsto t_1,\dots,x_n\mapsto t_n\}\).

+

Notice that the application of the substitution takes into account the +possible list semantics of variables \(x_1 \ldots x_n\). If +\(x_i\) is a variable with list semantics, then \(t_i\) denotes a +list of terms. The substitution implemented by +\(\texttt{expr::narySubstitute}\) (for details, see +expr/nary_term_util.h) which replaces each \(x_i\) with the +list \(t_i\) in its place.

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_THEORY_REWRITE
+

Other theory rewrite rules

+
+\[\inferrule{- \mid id, t = t'}{t = t'}\]
+

where id is the ProofRewriteRule of the theory rewrite +rule which transforms \(t\) to \(t'\).

+

In contrast to DSL_REWRITE, theory rewrite rules used by +this proof rule are not necessarily expressible in RARE. Each rule that can +be used in this proof rule are documented explicitly in cases within the +ProofRewriteRule enum.

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_ITE_EQ
+

Processing rules – If-then-else equivalence

+
+\[\inferrule{- \mid \ite{C}{t_1}{t_2}}{\ite{C}{((\ite{C}{t_1}{t_2}) = t_1)}{((\ite{C}{t_1}{t_2}) = t_2)}}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_TRUST
+

Trusted rule

+
+\[\inferrule{F_1 \dots F_n \mid tid, F, ...}{F}\]
+

where \(tid\) is an identifier and \(F\) is a formula. This rule +is used when a formal justification of an inference step cannot be provided. +The formulas \(F_1 \dots F_n\) refer to a set of formulas that +entail \(F\), which may or may not be provided.

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_TRUST_THEORY_REWRITE
+

Trusted rules – Theory rewrite

+
+\[\inferrule{- \mid F, tid, rid}{F}\]
+

where \(F\) is an equality of the form \(t = t'\) where \(t'\) +is obtained by applying the kind of rewriting given by the method +identifier \(rid\), which is one of: +RW_REWRITE_THEORY_PRE, RW_REWRITE_THEORY_POST, +RW_REWRITE_EQ_EXT. Notice that the checker for this rule does not +replay the rewrite to ensure correctness, since theory rewriter methods are +not static. For example, the quantifiers rewriter involves constructing new +bound variables that are not guaranteed to be consistent on each call.

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_SAT_REFUTATION
+

SAT Refutation for assumption-based unsat cores

+
+\[\inferrule{F_1 \dots F_n \mid -}{\bot}\]
+

where \(F_1 \dots F_n\) correspond to the unsat core determined by the +SAT solver.

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_DRAT_REFUTATION
+

DRAT Refutation

+
+\[\inferrule{F_1 \dots F_n \mid D, P}{\bot}\]
+

where \(F_1 \dots F_n\) correspond to the clauses in the +DIMACS file given by filename D and P is a filename of a file storing +a DRAT proof.

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_SAT_EXTERNAL_PROVE
+

SAT external prove Refutation

+
+\[\inferrule{F_1 \dots F_n \mid D}{\bot}\]
+

where \(F_1 \dots F_n\) correspond to the input clauses in the +DIMACS file D.

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_RESOLUTION
+

Boolean – Resolution

+
+\[\inferrule{C_1, C_2 \mid pol, L}{C}\]
+

where

+
    +
  • \(C_1\) and \(C_2\) are nodes viewed as clauses, i.e., either an +OR node with each children viewed as a literal or a node viewed as a +literal. Note that an OR node could also be a literal.

  • +
  • \(pol\) is either true or false, representing the polarity of the +pivot on the first clause

  • +
  • \(L\) is the pivot of the resolution, which occurs as is (resp. under +a NOT) in \(C_1\) and negatively (as is) in \(C_2\) if +\(pol = \top\) (\(pol = \bot\)).

  • +
+

\(C\) is a clause resulting from collecting all the literals in +\(C_1\), minus the first occurrence of the pivot or its negation, and +\(C_2\), minus the first occurrence of the pivot or its negation, +according to the policy above. If the resulting clause has a single +literal, that literal itself is the result; if it has no literals, then the +result is false; otherwise it’s an OR node of the resulting literals.

+

Note that it may be the case that the pivot does not occur in the +clauses. In this case the rule is not unsound, but it does not correspond +to resolution but rather to a weakening of the clause that did not have a +literal eliminated.

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_CHAIN_RESOLUTION
+

Boolean – N-ary Resolution

+
+\[\inferrule{C_1 \dots C_n \mid (pol_1 \dots pol_{n-1}), (L_1 \dots L_{n-1})}{C}\]
+

where

+
    +
  • let \(C_1 \dots C_n\) be nodes viewed as clauses, as defined above

  • +
  • let \(C_1 \diamond_{L,pol} C_2\) represent the resolution of +\(C_1\) with \(C_2\) with pivot \(L\) and polarity +\(pol\), as defined above

  • +
  • let \(C_1' = C_1\),

  • +
  • for each \(i > 1\), let \(C_i' = C_{i-1} \diamond_{L_{i-1}, pol_{i-1}} C_i'\)

  • +
+

Note the list of polarities and pivots are provided as s-expressions.

+

The result of the chain resolution is \(C = C_n'\)

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_FACTORING
+

Boolean – Factoring

+
+\[\inferrule{C_1 \mid -}{C_2}\]
+

where \(C_2\) is the clause \(C_1\), but every occurrence of a literal +after its first occurrence is omitted.

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_REORDERING
+

Boolean – Reordering

+
+\[\inferrule{C_1 \mid C_2}{C_2}\]
+

where +the multiset representations of \(C_1\) and \(C_2\) are the same.

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_MACRO_RESOLUTION
+

Boolean – N-ary Resolution + Factoring + Reordering

+
+\[\inferrule{C_1 \dots C_n \mid C, pol_1,L_1 \dots pol_{n-1},L_{n-1}}{C}\]
+

where

+
    +
  • let \(C_1 \dots C_n\) be nodes viewed as clauses, as defined in +RESOLUTION

  • +
  • let \(C_1 \diamond_{L,\mathit{pol}} C_2\) represent the resolution of +\(C_1\) with \(C_2\) with pivot \(L\) and polarity +\(pol\), as defined in +RESOLUTION

  • +
  • let \(C_1'\) be equal, in its set representation, to \(C_1\),

  • +
  • for each \(i > 1\), let \(C_i'\) be equal, in its set +representation, to \(C_{i-1} \diamond_{L_{i-1},\mathit{pol}_{i-1}} +C_i'\)

  • +
+

The result of the chain resolution is \(C\), which is equal, in its set +representation, to \(C_n'\)

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_MACRO_RESOLUTION_TRUST
+

Boolean – N-ary Resolution + Factoring + Reordering unchecked

+

Same as +MACRO_RESOLUTION, but +not checked by the internal proof checker.

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_SPLIT
+

Boolean – Split

+
+\[\inferrule{- \mid F}{F \lor \neg F}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_EQ_RESOLVE
+

Boolean – Equality resolution

+
+\[\inferrule{F_1, (F_1 = F_2) \mid -}{F_2}\]
+

Note this can optionally be seen as a macro for +EQUIV_ELIM1 + +RESOLUTION.

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_MODUS_PONENS
+

Boolean – Modus Ponens

+
+\[\inferrule{F_1, (F_1 \rightarrow F_2) \mid -}{F_2}\]
+

Note this can optionally be seen as a macro for +IMPLIES_ELIM + +RESOLUTION.

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_NOT_NOT_ELIM
+

Boolean – Double negation elimination

+
+\[\inferrule{\neg (\neg F) \mid -}{F}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_CONTRA
+

Boolean – Contradiction

+
+\[\inferrule{F, \neg F \mid -}{\bot}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_AND_ELIM
+

Boolean – And elimination

+
+\[\inferrule{(F_1 \land \dots \land F_n) \mid i}{F_i}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_AND_INTRO
+

Boolean – And introduction

+
+\[\inferrule{F_1 \dots F_n \mid -}{(F_1 \land \dots \land F_n)}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_NOT_OR_ELIM
+

Boolean – Not Or elimination

+
+\[\inferrule{\neg(F_1 \lor \dots \lor F_n) \mid i}{\neg F_i}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_IMPLIES_ELIM
+

Boolean – Implication elimination

+
+\[\inferrule{F_1 \rightarrow F_2 \mid -}{\neg F_1 \lor F_2}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_NOT_IMPLIES_ELIM1
+

Boolean – Not Implication elimination version 1

+
+\[\inferrule{\neg(F_1 \rightarrow F_2) \mid -}{F_1}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_NOT_IMPLIES_ELIM2
+

Boolean – Not Implication elimination version 2

+
+\[\inferrule{\neg(F_1 \rightarrow F_2) \mid -}{\neg F_2}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_EQUIV_ELIM1
+

Boolean – Equivalence elimination version 1

+
+\[\inferrule{F_1 = F_2 \mid -}{\neg F_1 \lor F_2}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_EQUIV_ELIM2
+

Boolean – Equivalence elimination version 2

+
+\[\inferrule{F_1 = F_2 \mid -}{F_1 \lor \neg F_2}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_NOT_EQUIV_ELIM1
+

Boolean – Not Equivalence elimination version 1

+
+\[\inferrule{F_1 \neq F_2 \mid -}{F_1 \lor F_2}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_NOT_EQUIV_ELIM2
+

Boolean – Not Equivalence elimination version 2

+
+\[\inferrule{F_1 \neq F_2 \mid -}{\neg F_1 \lor \neg F_2}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_XOR_ELIM1
+

Boolean – XOR elimination version 1

+
+\[\inferrule{F_1 \xor F_2 \mid -}{F_1 \lor F_2}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_XOR_ELIM2
+

Boolean – XOR elimination version 2

+
+\[\inferrule{F_1 \xor F_2 \mid -}{\neg F_1 \lor \neg F_2}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_NOT_XOR_ELIM1
+

Boolean – Not XOR elimination version 1

+
+\[\inferrule{\neg(F_1 \xor F_2) \mid -}{F_1 \lor \neg F_2}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_NOT_XOR_ELIM2
+

Boolean – Not XOR elimination version 2

+
+\[\inferrule{\neg(F_1 \xor F_2) \mid -}{\neg F_1 \lor F_2}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_ITE_ELIM1
+

Boolean – ITE elimination version 1

+
+\[\inferrule{(\ite{C}{F_1}{F_2}) \mid -}{\neg C \lor F_1}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_ITE_ELIM2
+

Boolean – ITE elimination version 2

+
+\[\inferrule{(\ite{C}{F_1}{F_2}) \mid -}{C \lor F_2}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_NOT_ITE_ELIM1
+

Boolean – Not ITE elimination version 1

+
+\[\inferrule{\neg(\ite{C}{F_1}{F_2}) \mid -}{\neg C \lor \neg F_1}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_NOT_ITE_ELIM2
+

Boolean – Not ITE elimination version 2

+
+\[\inferrule{\neg(\ite{C}{F_1}{F_2}) \mid -}{C \lor \neg F_2}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_NOT_AND
+

Boolean – De Morgan – Not And

+
+\[\inferrule{\neg(F_1 \land \dots \land F_n) \mid -}{\neg F_1 \lor \dots +\lor \neg F_n}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_CNF_AND_POS
+

Boolean – CNF – And Positive

+
+\[\inferrule{- \mid (F_1 \land \dots \land F_n), i}{\neg (F_1 \land \dots +\land F_n) \lor F_i}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_CNF_AND_NEG
+

Boolean – CNF – And Negative

+
+\[\inferrule{- \mid (F_1 \land \dots \land F_n)}{(F_1 \land \dots \land +F_n) \lor \neg F_1 \lor \dots \lor \neg F_n}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_CNF_OR_POS
+

Boolean – CNF – Or Positive

+
+\[\inferrule{- \mid (F_1 \lor \dots \lor F_n)}{\neg(F_1 \lor \dots \lor +F_n) \lor F_1 \lor \dots \lor F_n}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_CNF_OR_NEG
+

Boolean – CNF – Or Negative

+
+\[\inferrule{- \mid (F_1 \lor \dots \lor F_n), i}{(F_1 \lor \dots \lor F_n) +\lor \neg F_i}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_CNF_IMPLIES_POS
+

Boolean – CNF – Implies Positive

+
+\[\inferrule{- \mid F_1 \rightarrow F_2}{\neg(F_1 \rightarrow F_2) \lor \neg F_1 +\lor F_2}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_CNF_IMPLIES_NEG1
+

Boolean – CNF – Implies Negative 1

+
+\[\inferrule{- \mid F_1 \rightarrow F_2}{(F_1 \rightarrow F_2) \lor F_1}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_CNF_IMPLIES_NEG2
+

Boolean – CNF – Implies Negative 2

+
+\[\inferrule{- \mid F_1 \rightarrow F_2}{(F_1 \rightarrow F_2) \lor \neg F_2}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_CNF_EQUIV_POS1
+

Boolean – CNF – Equiv Positive 1

+
+\[\inferrule{- \mid F_1 = F_2}{F_1 \neq F_2 \lor \neg F_1 \lor F_2}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_CNF_EQUIV_POS2
+

Boolean – CNF – Equiv Positive 2

+
+\[\inferrule{- \mid F_1 = F_2}{F_1 \neq F_2 \lor F_1 \lor \neg F_2}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_CNF_EQUIV_NEG1
+

Boolean – CNF – Equiv Negative 1

+
+\[\inferrule{- \mid F_1 = F_2}{(F_1 = F_2) \lor F_1 \lor F_2}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_CNF_EQUIV_NEG2
+

Boolean – CNF – Equiv Negative 2

+
+\[\inferrule{- \mid F_1 = F_2}{(F_1 = F_2) \lor \neg F_1 \lor \neg F_2}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_CNF_XOR_POS1
+

Boolean – CNF – XOR Positive 1

+
+\[\inferrule{- \mid F_1 \xor F_2}{\neg(F_1 \xor F_2) \lor F_1 \lor F_2}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_CNF_XOR_POS2
+

Boolean – CNF – XOR Positive 2

+
+\[\inferrule{- \mid F_1 \xor F_2}{\neg(F_1 \xor F_2) \lor \neg F_1 \lor +\neg F_2}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_CNF_XOR_NEG1
+

Boolean – CNF – XOR Negative 1

+
+\[\inferrule{- \mid F_1 \xor F_2}{(F_1 \xor F_2) \lor \neg F_1 \lor F_2}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_CNF_XOR_NEG2
+

Boolean – CNF – XOR Negative 2

+
+\[\inferrule{- \mid F_1 \xor F_2}{(F_1 \xor F_2) \lor F_1 \lor \neg F_2}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_CNF_ITE_POS1
+

Boolean – CNF – ITE Positive 1

+
+\[\inferrule{- \mid (\ite{C}{F_1}{F_2})}{\neg(\ite{C}{F_1}{F_2}) \lor \neg +C \lor F_1}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_CNF_ITE_POS2
+

Boolean – CNF – ITE Positive 2

+
+\[\inferrule{- \mid (\ite{C}{F_1}{F_2})}{\neg(\ite{C}{F_1}{F_2}) \lor C +\lor F_2}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_CNF_ITE_POS3
+

Boolean – CNF – ITE Positive 3

+
+\[\inferrule{- \mid (\ite{C}{F_1}{F_2})}{\neg(\ite{C}{F_1}{F_2}) \lor F_1 +\lor F_2}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_CNF_ITE_NEG1
+

Boolean – CNF – ITE Negative 1

+
+\[\inferrule{- \mid (\ite{C}{F_1}{F_2})}{(\ite{C}{F_1}{F_2}) \lor \neg C +\lor \neg F_1}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_CNF_ITE_NEG2
+

Boolean – CNF – ITE Negative 2

+
+\[\inferrule{- \mid (\ite{C}{F_1}{F_2})}{(\ite{C}{F_1}{F_2}) \lor C \lor +\neg F_2}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_CNF_ITE_NEG3
+

Boolean – CNF – ITE Negative 3

+
+\[\inferrule{- \mid (\ite{C}{F_1}{F_2})}{(\ite{C}{F_1}{F_2}) \lor \neg F_1 +\lor \neg F_2}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_REFL
+

Equality – Reflexivity

+
+\[\inferrule{-\mid t}{t = t}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_SYMM
+

Equality – Symmetry

+
+\[\inferrule{t_1 = t_2\mid -}{t_2 = t_1}\]
+

or

+
+\[\inferrule{t_1 \neq t_2\mid -}{t_2 \neq t_1}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_TRANS
+

Equality – Transitivity

+
+\[\inferrule{t_1=t_2,\dots,t_{n-1}=t_n\mid -}{t_1 = t_n}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_CONG
+

Equality – Congruence

+
+\[\inferrule{t_1=s_1,\dots,t_n=s_n\mid k, f?}{k(f?, t_1,\dots, t_n) = +k(f?, s_1,\dots, s_n)}\]
+

where \(k\) is the application kind. Notice that \(f\) must be +provided iff \(k\) is a parameterized kind, e.g. +cvc5::Kind::APPLY_UF. The actual node for +\(k\) is constructible via ProofRuleChecker::mkKindNode. +If \(k\) is a binder kind (e.g. cvc5::Kind::FORALL) then \(f\) +is a term of kind cvc5::Kind::VARIABLE_LIST +denoting the variables bound by both sides of the conclusion. +This rule is used for kinds that have a fixed arity, such as +cvc5::Kind::ITE, cvc5::Kind::EQUAL, and so on. It is also used for +cvc5::Kind::APPLY_UF where \(f\) must be provided. +It is not used for equality between +cvc5::Kind::HO_APPLY terms, which should +use the HO_CONG proof rule.

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_NARY_CONG
+

Equality – N-ary Congruence

+
+\[\inferrule{t_1=s_1,\dots,t_n=s_n\mid k}{k(t_1,\dots, t_n) = +k(s_1,\dots, s_n)}\]
+

where \(k\) is the application kind. The actual node for \(k\) is +constructible via ProofRuleChecker::mkKindNode. This rule is used for +kinds that have variadic arity, such as cvc5::Kind::AND, +cvc5::Kind::PLUS and so on.

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_TRUE_INTRO
+

Equality – True intro

+
+\[\inferrule{F\mid -}{F = \top}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_TRUE_ELIM
+

Equality – True elim

+
+\[\inferrule{F=\top\mid -}{F}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_FALSE_INTRO
+

Equality – False intro

+
+\[\inferrule{\neg F\mid -}{F = \bot}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_FALSE_ELIM
+

Equality – False elim

+
+\[\inferrule{F=\bot\mid -}{\neg F}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_HO_APP_ENCODE
+

Equality – Higher-order application encoding

+
+\[\inferrule{-\mid t}{t=t'}\]
+

where t’ is the higher-order application that is equivalent to t, +as implemented by uf::TheoryUfRewriter::getHoApplyForApplyUf. +For details see theory/uf/theory_uf_rewriter.h

+

For example, this rule concludes \(f(x,y) = @( @(f,x), y)\), where +\(@\) is the HO_APPLY kind.

+

Note this rule can be treated as a +REFL when appropriate in +external proof formats.

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_HO_CONG
+

Equality – Higher-order congruence

+
+\[\inferrule{f=g, t_1=s_1,\dots,t_n=s_n\mid k}{k(f, t_1,\dots, t_n) = +k(g, s_1,\dots, s_n)}\]
+

Notice that this rule is only used when the application kind \(k\) is +either cvc5::Kind::APPLY_UF or cvc5::Kind::HO_APPLY.

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_ARRAYS_READ_OVER_WRITE
+

Arrays – Read over write

+
+\[\inferrule{i_1 \neq i_2\mid \mathit{select}(\mathit{store}(a,i_1,e),i_2)} +{\mathit{select}(\mathit{store}(a,i_1,e),i_2) = \mathit{select}(a,i_2)}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_ARRAYS_READ_OVER_WRITE_CONTRA
+

Arrays – Read over write, contrapositive

+
+\[\inferrule{\mathit{select}(\mathit{store}(a,i_2,e),i_1) \neq +\mathit{select}(a,i_1)\mid -}{i_1=i_2}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_ARRAYS_READ_OVER_WRITE_1
+

Arrays – Read over write 1

+
+\[\inferrule{-\mid \mathit{select}(\mathit{store}(a,i,e),i)} +{\mathit{select}(\mathit{store}(a,i,e),i)=e}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_ARRAYS_EXT
+

Arrays – Arrays extensionality

+
+\[\inferrule{a \neq b\mid -} +{\mathit{select}(a,k)\neq\mathit{select}(b,k)}\]
+

where \(k\) is the \(\texttt{ARRAY_DEQ_DIFF}\) skolem for (a, b).

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_MACRO_BV_BITBLAST
+

Bit-vectors – (Macro) Bitblast

+
+\[\inferrule{-\mid t}{t = \texttt{bitblast}(t)}\]
+

where \(\texttt{bitblast}\) represents the result of the bit-blasted term as +a bit-vector consisting of the output bits of the bit-blasted circuit +representation of the term. Terms are bit-blasted according to the +strategies defined in theory/bv/bitblast/bitblast_strategies_template.h.

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_BV_BITBLAST_STEP
+

Bit-vectors – Bitblast bit-vector constant, variable, and terms

+

For constant and variables:

+
+\[\inferrule{-\mid t}{t = \texttt{bitblast}(t)}\]
+

For terms:

+
+\[\inferrule{-\mid k(\texttt{bitblast}(t_1),\dots,\texttt{bitblast}(t_n))} +{k(\texttt{bitblast}(t_1),\dots,\texttt{bitblast}(t_n)) = +\texttt{bitblast}(t)}\]
+

where \(t\) is \(k(t_1,\dots,t_n)\).

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_BV_EAGER_ATOM
+

Bit-vectors – Bit-vector eager atom

+
+\[\inferrule{-\mid F}{F = F[0]}\]
+

where \(F\) is of kind BITVECTOR_EAGER_ATOM.

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_DT_SPLIT
+

Datatypes – Split

+
+\[\inferrule{-\mid t}{\mathit{is}_{C_1}(t)\vee\cdots\vee\mathit{is}_{C_n}(t)}\]
+

where \(C_1,\dots,C_n\) are all the constructors of the type of \(t\).

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_DT_CLASH
+

Datatypes – Clash

+
+\[\inferruleSC{\mathit{is}_{C_i}(t), \mathit{is}_{C_j}(t)\mid -}{\bot} +{if $i\neq j$}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_SKOLEM_INTRO
+

Quantifiers – Skolem introduction

+
+\[\inferrule{-\mid k}{k = t}\]
+

where \(t\) is the unpurified form of skolem \(k\).

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_SKOLEMIZE
+

Quantifiers – Skolemization

+
+\[\inferrule{\neg (\forall x_1\dots x_n.\> F)\mid -}{\neg F\sigma}\]
+

where \(\sigma\) maps \(x_1,\dots,x_n\) to their representative +skolems, which are skolems \(k_1,\dots,k_n\). For each \(k_i\), +its skolem identifier is QUANTIFIERS_SKOLEMIZE, +and its indices are \((\forall x_1\dots x_n.\> F)\) and \(x_i\).

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_INSTANTIATE
+

Quantifiers – Instantiation

+
+\[\inferrule{\forall x_1\dots x_n.\> F\mid (t_1 \dots t_n), (id\, (t)?)?} +{F\{x_1\mapsto t_1,\dots,x_n\mapsto t_n\}}\]
+

The list of terms to instantiate \((t_1 \dots t_n)\) is provided as +an s-expression as the first argument. The optional argument \(id\) +indicates the inference id that caused the instantiation. The term +\(t\) indicates an additional term (e.g. the trigger) associated with +the instantiation, which depends on the id. If the id has prefix +QUANTIFIERS_INST_E_MATCHING, then \(t\) is the trigger that +generated the instantiation.

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_ALPHA_EQUIV
+

Quantifiers – Alpha equivalence

+
+\[\inferruleSC{-\mid F, (y_1 \ldots y_n), (z_1,\dots, z_n)} +{F = F\{y_1\mapsto z_1,\dots,y_n\mapsto z_n\}} +{if $y_1,\dots,y_n, z_1,\dots,z_n$ are unique bound variables}\]
+

Notice that this rule is correct only when \(z_1,\dots,z_n\) are not +contained in \(FV(F) \setminus \{ y_1,\dots, y_n \}\), where +\(FV(\varphi)\) are the free variables of \(\varphi\). The internal +quantifiers proof checker does not currently check that this is the case.

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_QUANT_VAR_REORDERING
+

Quantifiers – Variable reordering

+
+\[\inferrule{-\mid (\forall X.\> F) = (\forall Y.\> F)} +{(\forall X.\> F) = (\forall Y.\> F)}\]
+

where \(Y\) is a reordering of \(X\).

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_SETS_SINGLETON_INJ
+

Sets – Singleton injectivity

+
+\[\inferrule{\mathit{set.singleton}(t) = \mathit{set.singleton}(s)\mid -}{t=s}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_SETS_EXT
+

Sets – Sets extensionality

+
+\[\inferrule{a \neq b\mid -} +{\mathit{set.member}(k,a)\neq\mathit{set.member}(k,b)}\]
+

where \(k\) is the \(\texttt{SETS_DEQ_DIFF}\) skolem for (a, b).

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_SETS_FILTER_UP
+

Sets – Sets filter up

+
+\[\inferrule{\mathit{set.member}(x,a)\mid P} +{\mathit{set.member}(x, \mathit{set.filter}(P, a)) = P(x)}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_SETS_FILTER_DOWN
+

Sets – Sets filter down

+
+\[\inferrule{\mathit{set.member}(x,\mathit{set.filter}(P, a))\mid -} +{\mathit{set.member}(x,a) \wedge P(x)}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_CONCAT_EQ
+

Strings – Core rules – Concatenation equality

+
+\[\inferrule{(t_1\cdot\ldots \cdot t_n \cdot t) = (t_1 \cdot\ldots +\cdot t_n\cdot s)\mid b}{t = s}\]
+

where \(\cdot\) stands for string concatenation and \(b\) indicates +if the direction is reversed.

+

Notice that \(t\) or \(s\) may be empty, in which case they are +implicit in the concatenation above. For example, if the premise is +\(x\cdot z = x\), then this rule, with argument \(\bot\), concludes +\(z = \epsilon\).

+

Also note that constants are split, such that for \((\mathsf{'abc'} +\cdot x) = (\mathsf{'a'} \cdot y)\), this rule, with argument \(\bot\), +concludes \((\mathsf{'bc'} \cdot x) = y\). This splitting is done only +for constants such that Word::splitConstant returns non-null.

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_CONCAT_UNIFY
+

Strings – Core rules – Concatenation unification

+
+\[\inferrule{(t_1\cdot t_2) = (s_1 \cdot s_2),\, \mathit{len}(t_1) = +\mathit{len}(s_1)\mid \bot}{t_1 = s_1}\]
+

Alternatively for the reverse:

+
+\[\inferrule{(t_1\cdot t_2) = (s_1 \cdot s_2),\, \mathit{len}(t_2) = +\mathit{len}(s_2)\mid \top}{t_2 = s_2}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_CONCAT_CONFLICT
+

Strings – Core rules – Concatenation conflict

+
+\[\inferrule{(c_1\cdot t) = (c_2 \cdot s)\mid b}{\bot}\]
+

where \(b\) indicates if the direction is reversed, \(c_1,\,c_2\) +are constants such that \(\texttt{Word::splitConstant}(c_1,c_2, +\mathit{index},b)\) is null, in other words, neither is a prefix of the +other. Note it may be the case that one side of the equality denotes the +empty string.

+

This rule is used exclusively for strings.

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_CONCAT_CONFLICT_DEQ
+

Strings – Core rules – Concatenation conflict for disequal characters

+
+\[\inferrule{(t_1\cdot t) = (s_1 \cdot s), t_1 \neq s_1 \mid b}{\bot}\]
+

where \(t_1\) and \(s_1\) are constants of length one, or otherwise one side +of the equality is the empty sequence and \(t_1\) or \(s_1\) corresponding to +that side is the empty sequence.

+

This rule is used exclusively for sequences.

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_CONCAT_SPLIT
+

Strings – Core rules – Concatenation split

+
+\[\inferruleSC{(t_1\cdot t_2) = (s_1 \cdot s_2),\, +\mathit{len}(t_1) \neq \mathit{len}(s_1)\mid b}{((t_1 = s_1\cdot r) +\vee (s_1 = t_1\cdot r)) \wedge r \neq \epsilon \wedge \mathit{len}(r)>0}{if $b=\bot$}\]
+

where \(r\) is the purification skolem for +\(\mathit{ite}( +\mathit{len}(t_1) >= \mathit{len}(s_1), +\mathit{suf}(t_1,\mathit{len}(s_1)), +\mathit{suf}(s_1,\mathit{len}(t_1)))\) +and \(\epsilon\) is the empty string (or sequence).

+
+\[\inferruleSC{(t_1\cdot t_2) = (s_1 \cdot s_2),\, +\mathit{len}(t_2) \neq \mathit{len}(s_2)\mid b}{((t_2 = r \cdot s_2) +\vee (s_2 = r \cdot t_2)) \wedge r \neq \epsilon \wedge \mathit{len}(r)>0}{if $b=\top$}\]
+

where \(r\) is the purification Skolem for +\(\mathit{ite}( +\mathit{len}(t_2) >= \mathit{len}(s_2), +\mathit{pre}(t_2,\mathit{len}(t_2) - \mathit{len}(s_2)), +\mathit{pre}(s_2,\mathit{len}(s_2) - \mathit{len}(t_2)))\) +and \(\epsilon\) is the empty string (or sequence).

+

Above, \(\mathit{suf}(x,n)\) is shorthand for +\(\mathit{substr}(x,n, \mathit{len}(x) - n)\) and +\(\mathit{pre}(x,n)\) is shorthand for \(\mathit{substr}(x,0,n)\).

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_CONCAT_CSPLIT
+

Strings – Core rules – Concatenation split for constants

+
+\[\inferrule{(t_1\cdot t_2) = (c \cdot s_2),\, +\mathit{len}(t_1) \neq 0\mid \bot}{(t_1 = c\cdot r)}\]
+

where \(r\) is the purification skolem for \(\mathit{suf}(t_1,1)\).

+

Alternatively for the reverse:

+
+\[\inferrule{(t_1\cdot t_2) = (s_1 \cdot c),\, +\mathit{len}(t_2) \neq 0\mid \top}{(t_2 = r\cdot c)}\]
+

where \(r\) is the purification skolem for +\(\mathit{pre}(t_2,\mathit{len}(t_2) - 1)\).

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_CONCAT_LPROP
+

Strings – Core rules – Concatenation length propagation

+
+\[\inferrule{(t_1\cdot t_2) = (s_1 \cdot s_2),\, +\mathit{len}(t_1) > \mathit{len}(s_1)\mid \bot}{(t_1 = s_1\cdot r)}\]
+

where \(r\) is the purification Skolem for +\(\mathit{ite}( +\mathit{len}(t_1) >= \mathit{len}(s_1), +\mathit{suf}(t_1,\mathit{len}(s_1)), +\mathit{suf}(s_1,\mathit{len}(t_1)))\).

+

Alternatively for the reverse:

+
+\[\inferrule{(t_1\cdot t_2) = (s_1 \cdot s_2),\, +\mathit{len}(t_2) > \mathit{len}(s_2)\mid \top}{(t_2 = r \cdot s_2)}\]
+

where \(r\) is the purification Skolem for +\(\mathit{ite}( +\mathit{len}(t_2) >= \mathit{len}(s_2), +\mathit{pre}(t_2,\mathit{len}(t_2) - \mathit{len}(s_2)), +\mathit{pre}(s_2,\mathit{len}(s_2) - \mathit{len}(t_2)))\)

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_CONCAT_CPROP
+

Strings – Core rules – Concatenation constant propagation

+
+\[\inferrule{(t_1\cdot w_1\cdot t_2) = (w_2 \cdot s),\, +\mathit{len}(t_1) \neq 0\mid \bot}{(t_1 = t_3\cdot r)}\]
+

where \(w_1,\,w_2\) are words, \(t_3\) is +\(\mathit{pre}(w_2,p)\), \(p\) is +\(\texttt{Word::overlap}(\mathit{suf}(w_2,1), w_1)\), and \(r\) is +the purification skolem for +\(\mathit{suf}(t_1,\mathit{len}(w_3))\). Note that +\(\mathit{suf}(w_2,p)\) is the largest suffix of +\(\mathit{suf}(w_2,1)\) that can contain a prefix of \(w_1\); since +\(t_1\) is non-empty, \(w_3\) must therefore be contained in +\(t_1\).

+

Alternatively for the reverse:

+
+\[\inferrule{(t_1\cdot w_1\cdot t_2) = (s \cdot w_2),\, +\mathit{len}(t_2) \neq 0\mid \top}{(t_2 = r\cdot t_3)}\]
+

where \(w_1,\,w_2\) are words, \(t_3\) is +\(\mathit{substr}(w_2, \mathit{len}(w_2) - p, p)\), \(p\) is +\(\texttt{Word::roverlap}(\mathit{pre}(w_2, \mathit{len}(w_2) - 1), +w_1)\), and \(r\) is the purification skolem for +\(\mathit{pre}(t_2,\mathit{len}(t_2) - \mathit{len}(w_3))\). Note that +\(\mathit{pre}(w_2, \mathit{len}(w_2) - p)\) is the largest prefix of +\(\mathit{pre}(w_2, \mathit{len}(w_2) - 1)\) that can contain a suffix +of \(w_1\); since \(t_2\) is non-empty, \(w_3\) must therefore +be contained in \(t_2\).

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_STRING_DECOMPOSE
+

Strings – Core rules – String decomposition

+
+\[\inferrule{\mathit{len}(t) \geq n\mid \bot}{t = w_1\cdot w_2 \wedge +\mathit{len}(w_1) = n}\]
+

where \(w_1\) is the purification skolem for \(\mathit{pre}(t,n)\) +and \(w_2\) is the purification skolem for \(\mathit{suf}(t,n)\). +Or alternatively for the reverse:

+
+\[\inferrule{\mathit{len}(t) \geq n\mid \top}{t = w_1\cdot w_2 \wedge +\mathit{len}(w_2) = n}\]
+

where \(w_1\) is the purification skolem for \(\mathit{pre}(t,n)\) and +\(w_2\) is the purification skolem for \(\mathit{suf}(t,n)\).

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_STRING_LENGTH_POS
+

Strings – Core rules – Length positive

+
+\[\inferrule{-\mid t}{(\mathit{len}(t) = 0\wedge t= \epsilon)\vee \mathit{len}(t) +> 0}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_STRING_LENGTH_NON_EMPTY
+

Strings – Core rules – Length non-empty

+
+\[\inferrule{t\neq \epsilon\mid -}{\mathit{len}(t) \neq 0}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_STRING_REDUCTION
+

Strings – Extended functions – Reduction

+
+\[\inferrule{-\mid t}{R\wedge t = w}\]
+

where \(w\) is \(\texttt{StringsPreprocess::reduce}(t, R, +\dots)\). For details, see +theory/strings/theory_strings_preprocess.h. +In other words, \(R\) is the reduction predicate for extended +term \(t\), and \(w\) is the purification skolem for \(t\).

+

Notice that the free variables of \(R\) are \(w\) and the free +variables of \(t\).

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_STRING_EAGER_REDUCTION
+

Strings – Extended functions – Eager reduction

+
+\[\inferrule{-\mid t}{R}\]
+

where \(R\) is \(\texttt{TermRegistry::eagerReduce}(t)\). +For details, see theory/strings/term_registry.h.

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_RE_INTER
+

Strings – Regular expressions – Intersection

+
+\[\inferrule{t\in R_1,\,t\in R_2\mid -}{t\in \mathit{re.inter}(R_1,R_2)}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_RE_UNFOLD_POS
+

Strings – Regular expressions – Positive Unfold

+
+\[\inferrule{t\in R\mid -}{F}\]
+

where \(F\) corresponds to the one-step unfolding of the premise. +This is implemented by \(\texttt{RegExpOpr::reduceRegExpPos}(t\in R)\).

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_RE_UNFOLD_NEG
+

Strings – Regular expressions – Negative Unfold

+
+\[\inferrule{t \not \in \mathit{re}.\text{*}(R) \mid -}{t \neq \ \epsilon \ \wedge \forall L. L \leq 0 \vee \mathit{str.len}(t) < L \vee \mathit{pre}(t, L) \not \in R \vee \mathit{suf}(t, L) \not \in \mathit{re}.\text{*}(R)}\]
+

Or alternatively for regular expression concatenation:

+
+\[\inferrule{t \not \in \mathit{re}.\text{++}(R_1, \ldots, R_n)\mid -}{\forall L. L < 0 \vee \mathit{str.len}(t) < L \vee \mathit{pre}(t, L) \not \in R_1 \vee \mathit{suf}(t, L) \not \in \mathit{re}.\text{++}(R_2, \ldots, R_n)}\]
+

Note that in either case the varaible \(L\) has type \(Int\) and +name “@var.str_index”.

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_RE_UNFOLD_NEG_CONCAT_FIXED
+

Strings – Regular expressions – Unfold negative concatenation, fixed

+
+\[ \inferrule{t\not\in \mathit{re}.\text{re.++}(r_1, \ldots, r_n) \mid \bot}{ +\mathit{pre}(t, L) \not \in r_1 \vee \mathit{suf}(t, L) \not \in \mathit{re}.\text{re.++}(r_2, \ldots, r_n)}\]
+

where \(r_1\) has fixed length \(L\).

+

or alternatively for the reverse:

+
+\[\inferrule{t \not \in \mathit{re}.\text{re.++}(r_1, \ldots, r_n) \mid \top}{ +\mathit{suf}(t, str.len(t) - L) \not \in r_n \vee +\mathit{pre}(t, str.len(t) - L) \not \in \mathit{re}.\text{re.++}(r_1, \ldots, r_{n-1})}\]
+

where \(r_n\) has fixed length \(L\).

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_STRING_CODE_INJ
+

Strings – Code points

+
+\[\inferrule{-\mid t,s}{\mathit{to\_code}(t) = -1 \vee \mathit{to\_code}(t) \neq +\mathit{to\_code}(s) \vee t = s}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_STRING_SEQ_UNIT_INJ
+

Strings – Sequence unit

+
+\[\inferrule{\mathit{unit}(x) = \mathit{unit}(y)\mid -}{x = y}\]
+

Also applies to the case where \(\mathit{unit}(y)\) is a constant +sequence of length one.

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_STRING_EXT
+

Strings – Extensionality

+
+\[\inferrule{s \neq t\mid -} +{\mathit{seq.len}(s) \neq \mathit{seq.len}(t) \vee (\mathit{seq.nth}(s,k)\neq\mathit{set.nth}(t,k) \wedge 0 \leq k \wedge k < \mathit{seq.len}(s))}\]
+

where \(s,t\) are terms of sequence type, \(k\) is the +\(\texttt{STRINGS_DEQ_DIFF}\) skolem for \(s,t\). Alternatively, +if \(s,t\) are terms of string type, we use +\(\mathit{seq.substr}(s,k,1)\) instead of \(\mathit{seq.nth}(s,k)\) +and similarly for \(t\).

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_MACRO_STRING_INFERENCE
+

Strings – (Macro) String inference

+
+\[\inferrule{?\mid F,\mathit{id},\mathit{isRev},\mathit{exp}}{F}\]
+

used to bookkeep an inference that has not yet been converted via +\(\texttt{strings::InferProofCons::convert}\).

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_MACRO_ARITH_SCALE_SUM_UB
+

Arithmetic – Adding inequalities

+

An arithmetic literal is a term of the form \(p \diamond c\) where +\(\diamond \in \{ <, \leq, =, \geq, > \}\), \(p\) a +polynomial and \(c\) a rational constant.

+
+\[\inferrule{l_1 \dots l_n \mid k_1 \dots k_n}{t_1 \diamond t_2}\]
+

where \(k_i \in \mathbb{R}, k_i \neq 0\), \(\diamond\) is the +fusion of the \(\diamond_i\) (flipping each if its \(k_i\) is +negative) such that \(\diamond_i \in \{ <, \leq \}\) (this implies that +lower bounds have negative \(k_i\) and upper bounds have positive +\(k_i\)), \(t_1\) is the sum of the scaled polynomials and +\(t_2\) is the sum of the scaled constants:

+
+\[ \begin{align}\begin{aligned}t_1 \colon= k_1 \cdot p_1 + \cdots + k_n \cdot p_n\\t_2 \colon= k_1 \cdot c_1 + \cdots + k_n \cdot c_n\end{aligned}\end{align} \]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_ARITH_MULT_ABS_COMPARISON
+

Arithmetic – Non-linear multiply absolute value comparison

+
+\[\inferrule{F_1 \dots F_n \mid -}{F}\]
+

where \(F\) is of the form +\(\left| t_1 \cdot t_n \right| \diamond \left| s_1 \cdot s_n \right|\). +If \(\diamond\) is \(=\), then each \(F_i\) is +\(\left| t_i \right| = \left| s_i \right|\).

+

If \(\diamond\) is \(>\), then +each \(F_i\) is either \(\left| t_i \right| > \left| s_i \right|\) or +\(\left| t_i \right| = \left| s_i \right| \land \left| t_i \right| \neq 0\), +and \(F_1\) is of the former form.

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_ARITH_SUM_UB
+

Arithmetic – Sum upper bounds

+
+\[\inferrule{P_1 \dots P_n \mid -}{L \diamond R}\]
+

where \(P_i\) has the form \(L_i \diamond_i R_i\) and +\(\diamond_i \in \{<, \leq, =\}\). Furthermore \(\diamond = <\) if +\(\diamond_i = <\) for any \(i\) and \(\diamond = \leq\) +otherwise, \(L = L_1 + \cdots + L_n\) and \(R = R_1 + \cdots + R_n\).

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_INT_TIGHT_UB
+

Arithmetic – Tighten strict integer upper bounds

+
+\[\inferrule{i < c \mid -}{i \leq \lfloor c \rfloor}\]
+

where \(i\) has integer type.

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_INT_TIGHT_LB
+

Arithmetic – Tighten strict integer lower bounds

+
+\[\inferrule{i > c \mid -}{i \geq \lceil c \rceil}\]
+

where \(i\) has integer type.

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_ARITH_TRICHOTOMY
+

Arithmetic – Trichotomy of the reals

+
+\[\inferrule{A, B \mid -}{C}\]
+

where \(\neg A, \neg B, C\) are \(x < c, x = c, x > c\) in some order. +Note that \(\neg\) here denotes arithmetic negation, i.e., flipping \(\geq\) to \(<\) etc.

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_ARITH_REDUCTION
+

Arithmetic – Reduction

+
+\[\inferrule{- \mid t}{F}\]
+

where \(t\) is an application of an extended arithmetic operator (e.g. +division, modulus, cosine, sqrt, is_int, to_int) and \(F\) is the +reduction predicate for \(t\). In other words, \(F\) is a +predicate that is used to reduce reasoning about \(t\) to reasoning +about the core operators of arithmetic.

+

In detail, \(F\) is implemented by +\(\texttt{arith::OperatorElim::getAxiomFor(t)}\), see +theory/arith/operator_elim.h.

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_ARITH_POLY_NORM
+

Arithmetic – Polynomial normalization

+
+\[\inferrule{- \mid t = s}{t = s}\]
+

where \(\texttt{arith::PolyNorm::isArithPolyNorm(t, s)} = \top\). This +method normalizes polynomials \(s\) and \(t\) over arithmetic or +bitvectors.

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_ARITH_POLY_NORM_REL
+

Arithmetic – Polynomial normalization for relations

+
+\[\inferrule{c_x \cdot (x_1 - x_2) = c_y \cdot (y_1 - y_2) \mid \diamond} + {(x_1 \diamond x_2) = (y_1 \diamond y_2)}\]
+

where \(\diamond \in \{<, \leq, =, \geq, >\}\) for arithmetic and +\(\diamond \in \{=\}\) for bitvectors. \(c_x\) and \(c_y\) are +scaling factors. For \(<, \leq, \geq, >\), the scaling factors have the +same sign. For bitvectors, they are set to \(1\).

+

If \(c_x\) has type \(Real\) and \(x_1, x_2\) are of type +\(Int\), then \((x_1 - x_2)\) is wrapped in an application of +to_real, similarly for \((y_1 - y_2)\).

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_ARITH_MULT_SIGN
+

Arithmetic – Sign inference

+
+\[\inferrule{- \mid f_1 \dots f_k, m}{(f_1 \land \dots \land f_k) \rightarrow m \diamond 0}\]
+

where \(f_1 \dots f_k\) are variables compared to zero (less, greater +or not equal), \(m\) is a monomial from these variables and +\(\diamond\) is the comparison (less or equal) that results from the +signs of the variables. All variables with even exponent in \(m\) +should be given as not equal to zero while all variables with odd exponent +in \(m\) should be given as less or greater than zero.

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_ARITH_MULT_POS
+

Arithmetic – Multiplication with positive factor

+
+\[\inferrule{- \mid m, l \diamond r}{(m > 0 \land l \diamond r) \rightarrow m \cdot l \diamond m \cdot r}\]
+

where \(\diamond\) is a relation symbol.

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_ARITH_MULT_NEG
+

Arithmetic – Multiplication with negative factor

+
+\[\inferrule{- \mid m, l \diamond r}{(m < 0 \land l \diamond r) \rightarrow m \cdot l \diamond_{inv} m \cdot r}\]
+

where \(\diamond\) is a relation symbol and \(\diamond_{inv}\) the +inverted relation symbol.

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_ARITH_MULT_TANGENT
+

Arithmetic – Multiplication tangent plane

+
+\[ \begin{align}\begin{aligned}\inferruleSC{- \mid x, y, a, b, \sigma}{(t \leq tplane) = ((x \leq a \land y \geq b) \lor (x \geq a \land y \leq b))}{if $\sigma = \bot$}\\\inferruleSC{- \mid x, y, a, b, \sigma}{(t \geq tplane) = ((x \leq a \land y \leq b) \lor (x \geq a \land y \geq b))}{if $\sigma = \top$}\end{aligned}\end{align} \]
+

where \(x,y\) are real terms (variables or extended terms), +\(t = x \cdot y\), \(a,b\) are real +constants, \(\sigma \in \{ \top, \bot\}\) and \(tplane := b \cdot x + a \cdot y - a \cdot b\) is the tangent plane of \(x \cdot y\) at \((a,b)\).

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_ARITH_TRANS_PI
+

Arithmetic – Transcendentals – Assert bounds on Pi

+
+\[\inferrule{- \mid l, u}{\texttt{real.pi} \geq l \land \texttt{real.pi} +\leq u}\]
+

where \(l,u\) are valid lower and upper bounds on \(\pi\).

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_ARITH_TRANS_EXP_NEG
+

Arithmetic – Transcendentals – Exp at negative values

+
+\[\inferrule{- \mid t}{(t < 0) \leftrightarrow (\exp(t) < 1)}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_ARITH_TRANS_EXP_POSITIVITY
+

Arithmetic – Transcendentals – Exp is always positive

+
+\[\inferrule{- \mid t}{\exp(t) > 0}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_ARITH_TRANS_EXP_SUPER_LIN
+

Arithmetic – Transcendentals – Exp grows super-linearly for positive +values

+
+\[\inferrule{- \mid t}{t \leq 0 \lor \exp(t) > t+1}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_ARITH_TRANS_EXP_ZERO
+

Arithmetic – Transcendentals – Exp at zero

+
+\[\inferrule{- \mid t}{(t=0) \leftrightarrow (\exp(t) = 1)}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_ARITH_TRANS_EXP_APPROX_ABOVE_NEG
+

Arithmetic – Transcendentals – Exp is approximated from above for +negative values

+
+\[\inferrule{- \mid d,t,l,u}{(t \geq l \land t \leq u) \rightarrow exp(t) +\leq \texttt{secant}(\exp, l, u, t)}\]
+

where \(d\) is an even positive number, \(t\) an arithmetic term +and \(l,u\) are lower and upper bounds on \(t\). Let \(p\) be +the \(d\)’th taylor polynomial at zero (also called the Maclaurin +series) of the exponential function. \(\texttt{secant}(\exp, l, u, t)\) +denotes the secant of \(p\) from \((l, \exp(l))\) to \((u, +\exp(u))\) evaluated at \(t\), calculated as follows:

+
+\[\frac{p(l) - p(u)}{l - u} \cdot (t - l) + p(l)\]
+

The lemma states that if \(t\) is between \(l\) and \(u\), then +\(\exp(t\) is below the secant of \(p\) from \(l\) to +\(u\).

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_ARITH_TRANS_EXP_APPROX_ABOVE_POS
+

Arithmetic – Transcendentals – Exp is approximated from above for +positive values

+
+\[\inferrule{- \mid d,t,l,u}{(t \geq l \land t \leq u) \rightarrow exp(t) +\leq \texttt{secant-pos}(\exp, l, u, t)}\]
+

where \(d\) is an even positive number, \(t\) an arithmetic term +and \(l,u\) are lower and upper bounds on \(t\). Let \(p^*\) be +a modification of the \(d\)’th taylor polynomial at zero (also called +the Maclaurin series) of the exponential function as follows where +\(p(d-1)\) is the regular Maclaurin series of degree \(d-1\):

+
+\[p^* := p(d-1) \cdot \frac{1 + t^n}{n!}\]
+

\(\texttt{secant-pos}(\exp, l, u, t)\) denotes the secant of \(p\) +from \((l, \exp(l))\) to \((u, \exp(u))\) evaluated at \(t\), +calculated as follows:

+
+\[\frac{p(l) - p(u)}{l - u} \cdot (t - l) + p(l)\]
+

The lemma states that if \(t\) is between \(l\) and \(u\), then +\(\exp(t\) is below the secant of \(p\) from \(l\) to +\(u\).

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_ARITH_TRANS_EXP_APPROX_BELOW
+

Arithmetic – Transcendentals – Exp is approximated from below

+
+\[\inferrule{- \mid d,c,t}{t \geq c \rightarrow exp(t) \geq \texttt{maclaurin}(\exp, d, c)}\]
+

where \(d\) is an odd positive number, \(t\) an arithmetic term and +\(\texttt{maclaurin}(\exp, d, c)\) is the \(d\)’th taylor +polynomial at zero (also called the Maclaurin series) of the exponential +function evaluated at \(c\). The Maclaurin series for the exponential +function is the following:

+
+\[\exp(x) = \sum_{n=0}^{\infty} \frac{x^n}{n!}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_ARITH_TRANS_SINE_BOUNDS
+

Arithmetic – Transcendentals – Sine is always between -1 and 1

+
+\[\inferrule{- \mid t}{\sin(t) \leq 1 \land \sin(t) \geq -1}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_ARITH_TRANS_SINE_SHIFT
+

Arithmetic – Transcendentals – Sine is shifted to -pi…pi

+
+\[\inferrule{- \mid x}{-\pi \leq y \leq \pi \land \sin(y) = \sin(x) +\land (\ite{-\pi \leq x \leq \pi}{x = y}{x = y + 2 \pi s})}\]
+

where \(x\) is the argument to sine, \(y\) is a new real skolem +that is \(x\) shifted into \(-\pi \dots \pi\) and \(s\) is a +new integer skolem that is the number of phases \(y\) is shifted. +In particular, \(y\) is the +TRANSCENDENTAL_PURIFY_ARG +skolem for \(\sin(x)\) and \(s\) is the +TRANSCENDENTAL_SINE_PHASE_SHIFT +skolem for \(x\).

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_ARITH_TRANS_SINE_SYMMETRY
+

Arithmetic – Transcendentals – Sine is symmetric with respect to +negation of the argument

+
+\[\inferrule{- \mid t}{\sin(t) - \sin(-t) = 0}\]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_ARITH_TRANS_SINE_TANGENT_ZERO
+

Arithmetic – Transcendentals – Sine is bounded by the tangent at zero

+
+\[\inferrule{- \mid t}{(t > 0 \rightarrow \sin(t) < t) \land (t < 0 +\rightarrow \sin(t) > t)} \]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_ARITH_TRANS_SINE_TANGENT_PI
+

Arithmetic – Transcendentals – Sine is bounded by the tangents at -pi +and pi

+
+\[\inferrule{- \mid t}{(t > -\pi \rightarrow \sin(t) > -\pi - t) \land (t < +\pi \rightarrow \sin(t) < \pi - t)} \]
+

+
+ +
+
+enumerator CVC5_PROOF_RULE_ARITH_TRANS_SINE_APPROX_ABOVE_NEG
+

Arithmetic – Transcendentals – Sine is approximated from above for +negative values

+
+\[\inferrule{- \mid d,t,lb,ub,l,u}{(t \geq lb land t \leq ub) \rightarrow +\sin(t) \leq \texttt{secant}(\sin, l, u, t)}\]
+

where \(d\) is an even positive number, \(t\) an arithmetic term, +\(lb,ub\) are symbolic lower and upper bounds on \(t\) (possibly +containing \(\pi\)) and \(l,u\) the evaluated lower and upper +bounds on \(t\). Let \(p\) be the \(d\)’th taylor polynomial at +zero (also called the Maclaurin series) of the sine function. +\(\texttt{secant}(\sin, l, u, t)\) denotes the secant of \(p\) from +\((l, \sin(l))\) to \((u, \sin(u))\) evaluated at \(t\), +calculated as follows:

+
+\[\frac{p(l) - p(u)}{l - u} \cdot (t - l) + p(l)\]
+

The lemma states that if \(t\) is between \(l\) and \(u\), then +\(\sin(t)\) is below the secant of \(p\) from \(l\) to +\(u\).

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_ARITH_TRANS_SINE_APPROX_ABOVE_POS
+

Arithmetic – Transcendentals – Sine is approximated from above for +positive values

+
+\[\inferrule{- \mid d,t,c,lb,ub}{(t \geq lb land t \leq ub) \rightarrow +\sin(t) \leq \texttt{upper}(\sin, c)}\]
+

where \(d\) is an even positive number, \(t\) an arithmetic term, +\(c\) an arithmetic constant and \(lb,ub\) are symbolic lower and +upper bounds on \(t\) (possibly containing \(\pi\)). Let \(p\) +be the \(d\)’th taylor polynomial at zero (also called the Maclaurin +series) of the sine function. \(\texttt{upper}(\sin, c)\) denotes the +upper bound on \(\sin(c)\) given by \(p\) and \(lb,up\) such +that \(\sin(t)\) is the maximum of the sine function on +\((lb,ub)\).

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_ARITH_TRANS_SINE_APPROX_BELOW_NEG
+

Arithmetic – Transcendentals – Sine is approximated from below for +negative values

+
+\[\inferrule{- \mid d,t,c,lb,ub}{(t \geq lb land t \leq ub) \rightarrow +\sin(t) \geq \texttt{lower}(\sin, c)}\]
+

where \(d\) is an even positive number, \(t\) an arithmetic term, +\(c\) an arithmetic constant and \(lb,ub\) are symbolic lower and +upper bounds on \(t\) (possibly containing \(\pi\)). Let \(p\) +be the \(d\)’th taylor polynomial at zero (also called the Maclaurin +series) of the sine function. \(\texttt{lower}(\sin, c)\) denotes the +lower bound on \(\sin(c)\) given by \(p\) and \(lb,up\) such +that \(\sin(t)\) is the minimum of the sine function on +\((lb,ub)\).

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_ARITH_TRANS_SINE_APPROX_BELOW_POS
+

Arithmetic – Transcendentals – Sine is approximated from below for +positive values

+
+\[\inferrule{- \mid d,t,lb,ub,l,u}{(t \geq lb land t \leq ub) \rightarrow +\sin(t) \geq \texttt{secant}(\sin, l, u, t)}\]
+

where \(d\) is an even positive number, \(t\) an arithmetic term, +\(lb,ub\) are symbolic lower and upper bounds on \(t\) (possibly +containing \(\pi\)) and \(l,u\) the evaluated lower and upper +bounds on \(t\). Let \(p\) be the \(d\)’th taylor polynomial at +zero (also called the Maclaurin series) of the sine function. +\(\texttt{secant}(\sin, l, u, t)\) denotes the secant of \(p\) from +\((l, \sin(l))\) to \((u, \sin(u))\) evaluated at \(t\), +calculated as follows:

+
+\[\frac{p(l) - p(u)}{l - u} \cdot (t - l) + p(l)\]
+

The lemma states that if \(t\) is between \(l\) and \(u\), then +\(\sin(t)\) is above the secant of \(p\) from \(l\) to +\(u\).

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_LFSC_RULE
+

External – LFSC

+

Place holder for LFSC rules.

+
+\[\inferrule{P_1, \dots, P_n\mid \texttt{id}, Q, A_1,\dots, A_m}{Q}\]
+

Note that the premises and arguments are arbitrary. It’s expected that +\(\texttt{id}\) refer to a proof rule in the external LFSC calculus.

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_ALETHE_RULE
+

External – Alethe

+

Place holder for Alethe rules.

+
+\[\inferrule{P_1, \dots, P_n\mid \texttt{id}, Q, Q', A_1,\dots, A_m}{Q}\]
+

Note that the premises and arguments are arbitrary. It’s expected that +\(\texttt{id}\) refer to a proof rule in the external Alethe calculus, +and that \(Q'\) be the representation of Q to be printed by the Alethe +printer.

+

+
+ +
+
+enumerator CVC5_PROOF_RULE_UNKNOWN
+
+ +
+
+enumerator CVC5_PROOF_RULE_LAST
+
+ +
+ +
+
+const char *cvc5_proof_rule_to_string(Cvc5ProofRule rule)
+

Get a string representation of a Cvc5ProofRule.

+
+
Parameters:
+

rule – The proof rule.

+
+
Returns:
+

The string representation.

+
+
+
+ +
+
+size_t cvc5_proof_rule_hash(Cvc5ProofRule rule)
+

Hash function for Cvc5ProofRule.

+
+
Parameters:
+

rule – The proof rule.

+
+
Returns:
+

The hash value.

+
+
+
+ +
+
+
+enum Cvc5ProofRewriteRule
+

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 proof rule +and the THEORY_REWRITE +proof rule.

+

Values:

+
+
+enumerator CVC5_PROOF_REWRITE_RULE_NONE
+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_DISTINCT_ELIM
+

Builtin – Distinct elimination

+
+\[\texttt{distinct}(t_1, t_2) = \neg (t_1 = t2)\]
+

if \(n = 2\), or

+
+\[\texttt{distinct}(t_1, \ldots, tn) = \bigwedge_{i=1}^n \bigwedge_{j=i+1}^n t_i \neq t_j\]
+

if \(n > 2\)

+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_DISTINCT_CARD_CONFLICT
+

Builtin – Distinct cardinality conflict

+
+\[\texttt{distinct}(t_1, \ldots, tn) = \bot\]
+

where \(n\) is greater than the cardinality of the type of +\(t_1, \ldots, t_n\).

+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_TO_NAT_ELIM
+

UF – Bitvector to natural elimination

+
+\[\texttt{bv2nat}(t) = t_1 + \ldots + t_n\]
+

where for \(i=1, \ldots, n\), \(t_i\) is +\(\texttt{ite}(x[i-1, i-1] = 1, 2^i, 0)\).

+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_INT_TO_BV_ELIM
+

UF – Integer to bitvector elimination

+
+\[\texttt{int2bv}_n(t) = (bvconcat t_1 \ldots t_n)\]
+

where for \(i=1, \ldots, n\), \(t_i\) is +\(\texttt{ite}(\texttt{mod}(t,2^n) \geq 2^{n-1}, 1, 0)\).

+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_MACRO_BOOL_NNF_NORM
+

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.

+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_MACRO_ARITH_STRING_PRED_ENTAIL
+

Arithmetic – strings predicate entailment

+
+\[(= s t) = c\]
+
+\[(>= s t) = c\]
+

where \(c\) is a Boolean constant. +This macro is elaborated by applications of EVALUATE, +ARITH_POLY_NORM, +ARITH_STRING_PRED_ENTAIL, +ARITH_STRING_PRED_SAFE_APPROX, +as well as other rewrites for normalizing arithmetic predicates.

+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARITH_STRING_PRED_ENTAIL
+

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.

+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARITH_STRING_PRED_SAFE_APPROX
+

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”.

+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARITH_POW_ELIM
+

Arithmetic – power elimination

+
+\[(x ^ c) = (x \cdot \ldots \cdot x)\]
+

where \(c\) is a non-negative integer.

+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BETA_REDUCE
+

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 Node::substitute.

+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_LAMBDA_ELIM
+

Equality – Lambda elimination

+
+\[(\lambda x_1 \ldots x_n.\> f(x_1 \ldots x_n)) = f\]
+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARRAYS_SELECT_CONST
+

Arrays – Constant array select

+
+\[(select A x) = c\]
+

where \(A\) is a constant array storing element \(c\).

+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_MACRO_ARRAYS_DISTINCT_ARRAYS
+

Arrays – Macro distinct arrays

+
+\[(A = B) = \bot\]
+

where \(A\) and \(B\) are distinct array values, that is, +the Node::isConst method returns true for both.

+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_MACRO_ARRAYS_NORMALIZE_CONSTANT
+

Arrays – Macro normalize constant

+
+\[A = B\]
+

where \(B\) is the result of normalizing the array value \(A\) +into a canonical form, using the internal method +TheoryArraysRewriter::normalizeConstant.

+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARRAYS_EQ_RANGE_EXPAND
+

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)\]
+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_EXISTS_ELIM
+

Quantifiers – Exists elimination

+
+\[\exists x_1\dots x_n.\> F = \neg \forall x_1\dots x_n.\> \neg F\]
+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_QUANT_UNUSED_VARS
+

Quantifiers – Unused variables

+
+\[\forall X.\> F = \forall X_1.\> F\]
+

where \(X_1\) is the subset of \(X\) that appear free in \(F\) +and \(X_1\) does not contain duplicate variables.

+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_MERGE_PRENEX
+

Quantifiers – Macro merge prenex

+
+\[\forall X_1.\> \ldots \forall X_n.\> F = \forall X.\> F\]
+

where \(X_1 \ldots X_n\) are lists of variables and \(X\) is the +result of removing duplicates from \(X_1 \ldots X_n\).

+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_QUANT_MERGE_PRENEX
+

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.

+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_PRENEX
+

Quantifiers – Macro prenex

+
+\[(\forall X.\> F_1 \vee \cdots \vee (\forall Y.\> F_i) \vee \cdots \vee F_n) = (\forall X Z.\> F_1 \vee \cdots \vee F_i\{ Y \mapsto Z \} \vee \cdots \vee F_n)\]
+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_MINISCOPE
+

Quantifiers – Macro miniscoping

+
+\[\forall X.\> F_1 \wedge \cdots \wedge F_n = +G_1 \wedge \cdots \wedge G_n\]
+

where each \(G_i\) is semantically equivalent to +\(\forall X.\> F_i\), or alternatively

+
+\[\forall X.\> \ite{C}{F_1}{F_2} = \ite{C}{G_1}{G_2}\]
+

where \(C\) does not have any free variable in \(X\).

+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_QUANT_MINISCOPE_AND
+

Quantifiers – Miniscoping and

+
+\[\forall X.\> F_1 \wedge \ldots \wedge F_n = +(\forall X.\> F_1) \wedge \ldots \wedge (\forall X.\> F_n)\]
+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_QUANT_MINISCOPE_OR
+

Quantifiers – Miniscoping or

+
+\[\forall X.\> F_1 \vee \ldots \vee F_n = (\forall X_1.\> F_1) \vee \ldots \vee (\forall X_n.\> F_n)\]
+

where \(X = X_1 \ldots X_n\), and the right hand side does not have any +free variable in \(X\).

+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_QUANT_MINISCOPE_ITE
+

Quantifiers – Miniscoping ite

+
+\[\forall X.\> \ite{C}{F_1}{F_2} = \ite{C}{\forall X.\> F_1}{\forall X.\> F_2}\]
+

where \(C\) does not have any free variable in \(X\).

+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_QUANT_DT_SPLIT
+

Quantifiers – Datatypes Split

+
+\[(\forall x Y.\> F) = (\forall X_1 Y. F_1) \vee \cdots \vee (\forall X_n Y. F_n)\]
+

where \(x\) is of a datatype type with constructors +\(C_1, \ldots, C_n\), where for each \(i = 1, \ldots, n\), +\(F_i\) is \(F \{ x \mapsto C_i(X_i) \}\).

+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_PARTITION_CONNECTED_FV
+

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\).

+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_VAR_ELIM_EQ
+

Quantifiers – Macro variable elimination equality

+
+\[\forall x Y.\> F = \forall Y.\> F \{ x \mapsto t \}\]
+

where \(\neg F\) entails \(x = t\).

+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_QUANT_VAR_ELIM_EQ
+

Quantifiers – Macro variable elimination equality

+
+\[(\forall x.\> x \neq t \vee F) = F \{ x \mapsto t \}\]
+

or alternatively

+
+\[(\forall x.\> x \neq t) = \bot\]
+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_VAR_ELIM_INEQ
+

Quantifiers – Macro variable elimination inequality

+
+\[\forall x Y.\> F = \forall Y.\> G\]
+

where \(G\) is the result of replacing all literals containing +\(x\) with a constant. This is applied only when all such literals +are lower (resp. upper) bounds for \(x\).

+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_REWRITE_BODY
+

Quantifiers – Macro quantifiers rewrite body

+
+\[\forall X.\> F = \forall X.\> G\]
+

where \(G\) is semantically equivalent to \(F\).

+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_DT_INST
+

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\).

+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_DT_COLLAPSE_SELECTOR
+

Datatypes – collapse selector

+
+\[s_i(c(t_1, \ldots, t_n)) = t_i\]
+

where \(s_i\) is the \(i^{th}\) selector for constructor \(c\).

+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_DT_COLLAPSE_TESTER
+

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.

+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_DT_COLLAPSE_TESTER_SINGLETON
+

Datatypes – collapse tester

+
+\[\mathit{is}_c(t) = true\]
+

where \(c\) is the only constructor of its associated datatype.

+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_DT_CONS_EQ
+

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.

+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_DT_CYCLE
+

Datatypes – cycle

+
+\[(x = t[x]) = \bot\]
+

where all terms on the path to \(x\) in \(t[x]\) are applications +of constructors, and this path is non-empty.

+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_DT_COLLAPSE_UPDATER
+

Datatypes – collapse tester

+
+\[u_{c,i}(c(t_1, \ldots, t_i, \ldots, t_n), s) = c(t_1, \ldots, s, \ldots, t_n)\]
+

or alternatively

+
+\[u_{c,i}(d(t_1, \ldots, t_n), s) = d(t_1, \ldots, t_n)\]
+

where \(c\) and \(d\) are distinct constructors.

+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_DT_UPDATER_ELIM
+

Datatypes - updater elimination

+
+\[u_{c,i}(t, s) = ite(\mathit{is}_c(t), c(s_0(t), \ldots, s, \ldots s_n(t)), t)\]
+

where \(s_i\) is the \(i^{th}\) selector for constructor \(c\).

+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_DT_MATCH_ELIM
+

Datatypes – match elimination

+
+\[\texttt{match}(t ((p_1 c_1) \ldots (p_n c_n))) = \texttt{ite}(F_1, r_1, \texttt{ite}( \ldots, r_n))\]
+

where for \(i=1, \ldots, n\), \(F_1\) is a formula that holds iff +\(t\) matches \(p_i\) and \(r_i\) is the result of a +substitution on \(c_i\) based on this match.

+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_UMULO_ELIMINATE
+

Bitvectors – Unsigned multiplication overflow detection elimination

+

See M.Gok, M.J. Schulte, P.I. Balzola, “Efficient integer multiplication +overflow detection circuits”, 2001. +http://ieeexplore.ieee.org/document/987767

+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_SMULO_ELIMINATE
+

Bitvectors – Unsigned multiplication overflow detection elimination

+

See M.Gok, M.J. Schulte, P.I. Balzola, “Efficient integer multiplication +overflow detection circuits”, 2001. +http://ieeexplore.ieee.org/document/987767

+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_ADD_COMBINE_LIKE_TERMS
+

Bitvectors – Combine like terms during addition by counting terms

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_MULT_SIMPLIFY
+

Bitvectors – Extract negations from multiplicands

+
+\[bvmul(bvneg(a),\ b,\ c) = bvneg(bvmul(a,\ b,\ c))\]
+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_BITWISE_SLICING
+

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

+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_REPEAT_ELIM
+

Bitvectors – Extract continuous substrings of bitvectors

+
+\[repeat(n,\ t) = concat(t ... t)\]
+

where \(t\) is repeated \(n\) times.

+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_RE_LOOP_ELIM
+

Strings – regular expression loop elimination

+
+\[re.loop_{l,u}(R) = re.union(R^l, \ldots, R^u)\]
+

where \(u \geq l\).

+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_RE_INTER_UNION_INCLUSION
+

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.

+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_IN_RE_EVAL
+

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.

+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_IN_RE_CONSUME
+

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\).

+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_IN_RE_CONCAT_STAR_CHAR
+

Strings – string in regular expression concatenation star character

+
+\[\begin{split}\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))\end{split}\]
+

where all strings in \(R\) have length one.

+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_IN_RE_SIGMA
+

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)\]
+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_IN_RE_SIGMA_STAR
+

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{++}\).

+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_MACRO_SUBSTR_STRIP_SYM_LENGTH
+

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\).

+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_SETS_IS_EMPTY_EVAL
+

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.

+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_SETS_INSERT_ELIM
+

Sets – sets insert elimination

+
+\[\mathit{sets.insert}(t_1, \ldots, t_n, S) = \texttt{set.union}(\texttt{sets.singleton}(t_1), \ldots, \texttt{sets.singleton}(t_n), S)\]
+

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARITH_MUL_ONE
+

Auto-generated from RARE rule arith-mul-one

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARITH_MUL_ZERO
+

Auto-generated from RARE rule arith-mul-zero

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARITH_DIV_TOTAL_REAL
+

Auto-generated from RARE rule arith-div-total-real

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARITH_DIV_TOTAL_INT
+

Auto-generated from RARE rule arith-div-total-int

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARITH_DIV_TOTAL_ZERO_REAL
+

Auto-generated from RARE rule arith-div-total-zero-real

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARITH_DIV_TOTAL_ZERO_INT
+

Auto-generated from RARE rule arith-div-total-zero-int

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARITH_INT_DIV_TOTAL
+

Auto-generated from RARE rule arith-int-div-total

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARITH_INT_DIV_TOTAL_ONE
+

Auto-generated from RARE rule arith-int-div-total-one

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARITH_INT_DIV_TOTAL_ZERO
+

Auto-generated from RARE rule arith-int-div-total-zero

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARITH_INT_MOD_TOTAL
+

Auto-generated from RARE rule arith-int-mod-total

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARITH_INT_MOD_TOTAL_ONE
+

Auto-generated from RARE rule arith-int-mod-total-one

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARITH_INT_MOD_TOTAL_ZERO
+

Auto-generated from RARE rule arith-int-mod-total-zero

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_GT
+

Auto-generated from RARE rule arith-elim-gt

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_LT
+

Auto-generated from RARE rule arith-elim-lt

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_INT_GT
+

Auto-generated from RARE rule arith-elim-int-gt

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_INT_LT
+

Auto-generated from RARE rule arith-elim-int-lt

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_LEQ
+

Auto-generated from RARE rule arith-elim-leq

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARITH_LEQ_NORM
+

Auto-generated from RARE rule arith-leq-norm

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARITH_GEQ_TIGHTEN
+

Auto-generated from RARE rule arith-geq-tighten

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARITH_GEQ_NORM1_INT
+

Auto-generated from RARE rule arith-geq-norm1-int

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARITH_GEQ_NORM1_REAL
+

Auto-generated from RARE rule arith-geq-norm1-real

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARITH_GEQ_NORM2
+

Auto-generated from RARE rule arith-geq-norm2

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARITH_REFL_LEQ
+

Auto-generated from RARE rule arith-refl-leq

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARITH_REFL_LT
+

Auto-generated from RARE rule arith-refl-lt

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARITH_REFL_GEQ
+

Auto-generated from RARE rule arith-refl-geq

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARITH_REFL_GT
+

Auto-generated from RARE rule arith-refl-gt

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARITH_EQ_ELIM_REAL
+

Auto-generated from RARE rule arith-eq-elim-real

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARITH_EQ_ELIM_INT
+

Auto-generated from RARE rule arith-eq-elim-int

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARITH_PLUS_FLATTEN
+

Auto-generated from RARE rule arith-plus-flatten

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARITH_MULT_FLATTEN
+

Auto-generated from RARE rule arith-mult-flatten

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARITH_MULT_DIST
+

Auto-generated from RARE rule arith-mult-dist

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARITH_ABS_ELIM_INT
+

Auto-generated from RARE rule arith-abs-elim-int

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARITH_ABS_ELIM_REAL
+

Auto-generated from RARE rule arith-abs-elim-real

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARITH_TO_REAL_ELIM
+

Auto-generated from RARE rule arith-to-real-elim

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARITH_TO_INT_ELIM_TO_REAL
+

Auto-generated from RARE rule arith-to-int-elim-to-real

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARITH_DIV_ELIM_TO_REAL1
+

Auto-generated from RARE rule arith-div-elim-to-real1

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARITH_DIV_ELIM_TO_REAL2
+

Auto-generated from RARE rule arith-div-elim-to-real2

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARITH_SINE_ZERO
+

Auto-generated from RARE rule arith-sine-zero

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARITH_SINE_PI2
+

Auto-generated from RARE rule arith-sine-pi2

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARITH_COSINE_ELIM
+

Auto-generated from RARE rule arith-cosine-elim

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARITH_TANGENT_ELIM
+

Auto-generated from RARE rule arith-tangent-elim

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARITH_SECENT_ELIM
+

Auto-generated from RARE rule arith-secent-elim

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARITH_COSECENT_ELIM
+

Auto-generated from RARE rule arith-cosecent-elim

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARITH_COTANGENT_ELIM
+

Auto-generated from RARE rule arith-cotangent-elim

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARITH_PI_NOT_INT
+

Auto-generated from RARE rule arith-pi-not-int

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARITH_ABS_EQ
+

Auto-generated from RARE rule arith-abs-eq

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARITH_ABS_INT_GT
+

Auto-generated from RARE rule arith-abs-int-gt

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARITH_ABS_REAL_GT
+

Auto-generated from RARE rule arith-abs-real-gt

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARRAY_READ_OVER_WRITE
+

Auto-generated from RARE rule array-read-over-write

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARRAY_READ_OVER_WRITE2
+

Auto-generated from RARE rule array-read-over-write2

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARRAY_STORE_OVERWRITE
+

Auto-generated from RARE rule array-store-overwrite

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARRAY_STORE_SELF
+

Auto-generated from RARE rule array-store-self

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ARRAY_READ_OVER_WRITE_SPLIT
+

Auto-generated from RARE rule array-read-over-write-split

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BOOL_DOUBLE_NOT_ELIM
+

Auto-generated from RARE rule bool-double-not-elim

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BOOL_NOT_TRUE
+

Auto-generated from RARE rule bool-not-true

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BOOL_NOT_FALSE
+

Auto-generated from RARE rule bool-not-false

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BOOL_EQ_TRUE
+

Auto-generated from RARE rule bool-eq-true

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BOOL_EQ_FALSE
+

Auto-generated from RARE rule bool-eq-false

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BOOL_EQ_NREFL
+

Auto-generated from RARE rule bool-eq-nrefl

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_FALSE1
+

Auto-generated from RARE rule bool-impl-false1

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_FALSE2
+

Auto-generated from RARE rule bool-impl-false2

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_TRUE1
+

Auto-generated from RARE rule bool-impl-true1

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_TRUE2
+

Auto-generated from RARE rule bool-impl-true2

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_ELIM
+

Auto-generated from RARE rule bool-impl-elim

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BOOL_OR_TRUE
+

Auto-generated from RARE rule bool-or-true

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BOOL_OR_FLATTEN
+

Auto-generated from RARE rule bool-or-flatten

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BOOL_AND_FALSE
+

Auto-generated from RARE rule bool-and-false

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BOOL_AND_FLATTEN
+

Auto-generated from RARE rule bool-and-flatten

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BOOL_AND_CONF
+

Auto-generated from RARE rule bool-and-conf

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BOOL_AND_CONF2
+

Auto-generated from RARE rule bool-and-conf2

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BOOL_OR_TAUT
+

Auto-generated from RARE rule bool-or-taut

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BOOL_OR_TAUT2
+

Auto-generated from RARE rule bool-or-taut2

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BOOL_OR_DE_MORGAN
+

Auto-generated from RARE rule bool-or-de-morgan

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BOOL_IMPLIES_DE_MORGAN
+

Auto-generated from RARE rule bool-implies-de-morgan

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BOOL_AND_DE_MORGAN
+

Auto-generated from RARE rule bool-and-de-morgan

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BOOL_OR_AND_DISTRIB
+

Auto-generated from RARE rule bool-or-and-distrib

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BOOL_XOR_REFL
+

Auto-generated from RARE rule bool-xor-refl

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BOOL_XOR_NREFL
+

Auto-generated from RARE rule bool-xor-nrefl

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BOOL_XOR_FALSE
+

Auto-generated from RARE rule bool-xor-false

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BOOL_XOR_TRUE
+

Auto-generated from RARE rule bool-xor-true

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BOOL_XOR_COMM
+

Auto-generated from RARE rule bool-xor-comm

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BOOL_XOR_ELIM
+

Auto-generated from RARE rule bool-xor-elim

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BOOL_NOT_XOR_ELIM
+

Auto-generated from RARE rule bool-not-xor-elim

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BOOL_NOT_EQ_ELIM1
+

Auto-generated from RARE rule bool-not-eq-elim1

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BOOL_NOT_EQ_ELIM2
+

Auto-generated from RARE rule bool-not-eq-elim2

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ITE_NEG_BRANCH
+

Auto-generated from RARE rule ite-neg-branch

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ITE_THEN_TRUE
+

Auto-generated from RARE rule ite-then-true

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ITE_ELSE_FALSE
+

Auto-generated from RARE rule ite-else-false

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ITE_THEN_FALSE
+

Auto-generated from RARE rule ite-then-false

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ITE_ELSE_TRUE
+

Auto-generated from RARE rule ite-else-true

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ITE_THEN_LOOKAHEAD_SELF
+

Auto-generated from RARE rule ite-then-lookahead-self

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ITE_ELSE_LOOKAHEAD_SELF
+

Auto-generated from RARE rule ite-else-lookahead-self

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ITE_THEN_LOOKAHEAD_NOT_SELF
+

Auto-generated from RARE rule ite-then-lookahead-not-self

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ITE_ELSE_LOOKAHEAD_NOT_SELF
+

Auto-generated from RARE rule ite-else-lookahead-not-self

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ITE_EXPAND
+

Auto-generated from RARE rule ite-expand

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BOOL_NOT_ITE_ELIM
+

Auto-generated from RARE rule bool-not-ite-elim

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ITE_TRUE_COND
+

Auto-generated from RARE rule ite-true-cond

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ITE_FALSE_COND
+

Auto-generated from RARE rule ite-false-cond

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ITE_NOT_COND
+

Auto-generated from RARE rule ite-not-cond

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ITE_EQ_BRANCH
+

Auto-generated from RARE rule ite-eq-branch

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ITE_THEN_LOOKAHEAD
+

Auto-generated from RARE rule ite-then-lookahead

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ITE_ELSE_LOOKAHEAD
+

Auto-generated from RARE rule ite-else-lookahead

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ITE_THEN_NEG_LOOKAHEAD
+

Auto-generated from RARE rule ite-then-neg-lookahead

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_ITE_ELSE_NEG_LOOKAHEAD
+

Auto-generated from RARE rule ite-else-neg-lookahead

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_CONCAT_FLATTEN
+

Auto-generated from RARE rule bv-concat-flatten

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_CONCAT_EXTRACT_MERGE
+

Auto-generated from RARE rule bv-concat-extract-merge

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_EXTRACT
+

Auto-generated from RARE rule bv-extract-extract

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_WHOLE
+

Auto-generated from RARE rule bv-extract-whole

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_CONCAT_1
+

Auto-generated from RARE rule bv-extract-concat-1

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_CONCAT_2
+

Auto-generated from RARE rule bv-extract-concat-2

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_CONCAT_3
+

Auto-generated from RARE rule bv-extract-concat-3

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_CONCAT_4
+

Auto-generated from RARE rule bv-extract-concat-4

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_EQ_EXTRACT_ELIM1
+

Auto-generated from RARE rule bv-eq-extract-elim1

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_EQ_EXTRACT_ELIM2
+

Auto-generated from RARE rule bv-eq-extract-elim2

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_EQ_EXTRACT_ELIM3
+

Auto-generated from RARE rule bv-eq-extract-elim3

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_BITWISE_AND
+

Auto-generated from RARE rule bv-extract-bitwise-and

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_BITWISE_OR
+

Auto-generated from RARE rule bv-extract-bitwise-or

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_BITWISE_XOR
+

Auto-generated from RARE rule bv-extract-bitwise-xor

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_NOT
+

Auto-generated from RARE rule bv-extract-not

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_SIGN_EXTEND_1
+

Auto-generated from RARE rule bv-extract-sign-extend-1

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_SIGN_EXTEND_2
+

Auto-generated from RARE rule bv-extract-sign-extend-2

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_SIGN_EXTEND_3
+

Auto-generated from RARE rule bv-extract-sign-extend-3

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_NEG_MULT
+

Auto-generated from RARE rule bv-neg-mult

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_NEG_ADD
+

Auto-generated from RARE rule bv-neg-add

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_CONST_NEG
+

Auto-generated from RARE rule bv-mult-distrib-const-neg

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_CONST_ADD
+

Auto-generated from RARE rule bv-mult-distrib-const-add

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_CONST_SUB
+

Auto-generated from RARE rule bv-mult-distrib-const-sub

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_1
+

Auto-generated from RARE rule bv-mult-distrib-1

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_2
+

Auto-generated from RARE rule bv-mult-distrib-2

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_NOT_XOR
+

Auto-generated from RARE rule bv-not-xor

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_AND_SIMPLIFY_1
+

Auto-generated from RARE rule bv-and-simplify-1

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_AND_SIMPLIFY_2
+

Auto-generated from RARE rule bv-and-simplify-2

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_OR_SIMPLIFY_1
+

Auto-generated from RARE rule bv-or-simplify-1

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_OR_SIMPLIFY_2
+

Auto-generated from RARE rule bv-or-simplify-2

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_XOR_SIMPLIFY_1
+

Auto-generated from RARE rule bv-xor-simplify-1

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_XOR_SIMPLIFY_2
+

Auto-generated from RARE rule bv-xor-simplify-2

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_XOR_SIMPLIFY_3
+

Auto-generated from RARE rule bv-xor-simplify-3

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_ULT_ADD_ONE
+

Auto-generated from RARE rule bv-ult-add-one

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_CONCAT_TO_MULT
+

Auto-generated from RARE rule bv-concat-to-mult

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_MULT_SLT_MULT_1
+

Auto-generated from RARE rule bv-mult-slt-mult-1

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_MULT_SLT_MULT_2
+

Auto-generated from RARE rule bv-mult-slt-mult-2

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_AND
+

Auto-generated from RARE rule bv-commutative-and

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_OR
+

Auto-generated from RARE rule bv-commutative-or

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_XOR
+

Auto-generated from RARE rule bv-commutative-xor

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_MUL
+

Auto-generated from RARE rule bv-commutative-mul

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_OR_ZERO
+

Auto-generated from RARE rule bv-or-zero

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_MUL_ONE
+

Auto-generated from RARE rule bv-mul-one

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_MUL_ZERO
+

Auto-generated from RARE rule bv-mul-zero

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_ADD_ZERO
+

Auto-generated from RARE rule bv-add-zero

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_ADD_TWO
+

Auto-generated from RARE rule bv-add-two

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_ZERO_EXTEND_ELIMINATE_0
+

Auto-generated from RARE rule bv-zero-extend-eliminate-0

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ELIMINATE_0
+

Auto-generated from RARE rule bv-sign-extend-eliminate-0

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_NOT_NEQ
+

Auto-generated from RARE rule bv-not-neq

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_ULT_ONES
+

Auto-generated from RARE rule bv-ult-ones

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_OR_FLATTEN
+

Auto-generated from RARE rule bv-or-flatten

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_XOR_FLATTEN
+

Auto-generated from RARE rule bv-xor-flatten

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_AND_FLATTEN
+

Auto-generated from RARE rule bv-and-flatten

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_MUL_FLATTEN
+

Auto-generated from RARE rule bv-mul-flatten

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_CONCAT_MERGE_CONST
+

Auto-generated from RARE rule bv-concat-merge-const

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_ADD
+

Auto-generated from RARE rule bv-commutative-add

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_NEG_SUB
+

Auto-generated from RARE rule bv-neg-sub

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_NEG_IDEMP
+

Auto-generated from RARE rule bv-neg-idemp

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_SUB_ELIMINATE
+

Auto-generated from RARE rule bv-sub-eliminate

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_UGT_ELIMINATE
+

Auto-generated from RARE rule bv-ugt-eliminate

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_UGE_ELIMINATE
+

Auto-generated from RARE rule bv-uge-eliminate

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_SGT_ELIMINATE
+

Auto-generated from RARE rule bv-sgt-eliminate

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_SGE_ELIMINATE
+

Auto-generated from RARE rule bv-sge-eliminate

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_SLT_ELIMINATE
+

Auto-generated from RARE rule bv-slt-eliminate

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_SLE_ELIMINATE
+

Auto-generated from RARE rule bv-sle-eliminate

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_REDOR_ELIMINATE
+

Auto-generated from RARE rule bv-redor-eliminate

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_REDAND_ELIMINATE
+

Auto-generated from RARE rule bv-redand-eliminate

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_ULE_ELIMINATE
+

Auto-generated from RARE rule bv-ule-eliminate

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_COMP_ELIMINATE
+

Auto-generated from RARE rule bv-comp-eliminate

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_ROTATE_LEFT_ELIMINATE_1
+

Auto-generated from RARE rule bv-rotate-left-eliminate-1

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_ROTATE_LEFT_ELIMINATE_2
+

Auto-generated from RARE rule bv-rotate-left-eliminate-2

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_ROTATE_RIGHT_ELIMINATE_1
+

Auto-generated from RARE rule bv-rotate-right-eliminate-1

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_ROTATE_RIGHT_ELIMINATE_2
+

Auto-generated from RARE rule bv-rotate-right-eliminate-2

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_NAND_ELIMINATE
+

Auto-generated from RARE rule bv-nand-eliminate

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_NOR_ELIMINATE
+

Auto-generated from RARE rule bv-nor-eliminate

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_XNOR_ELIMINATE
+

Auto-generated from RARE rule bv-xnor-eliminate

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_SDIV_ELIMINATE
+

Auto-generated from RARE rule bv-sdiv-eliminate

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_SDIV_ELIMINATE_FEWER_BITWISE_OPS
+

Auto-generated from RARE rule bv-sdiv-eliminate-fewer-bitwise-ops

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_ZERO_EXTEND_ELIMINATE
+

Auto-generated from RARE rule bv-zero-extend-eliminate

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ELIMINATE
+

Auto-generated from RARE rule bv-sign-extend-eliminate

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_UADDO_ELIMINATE
+

Auto-generated from RARE rule bv-uaddo-eliminate

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_SADDO_ELIMINATE
+

Auto-generated from RARE rule bv-saddo-eliminate

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_SDIVO_ELIMINATE
+

Auto-generated from RARE rule bv-sdivo-eliminate

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_SMOD_ELIMINATE
+

Auto-generated from RARE rule bv-smod-eliminate

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_SMOD_ELIMINATE_FEWER_BITWISE_OPS
+

Auto-generated from RARE rule bv-smod-eliminate-fewer-bitwise-ops

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_SREM_ELIMINATE
+

Auto-generated from RARE rule bv-srem-eliminate

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_SREM_ELIMINATE_FEWER_BITWISE_OPS
+

Auto-generated from RARE rule bv-srem-eliminate-fewer-bitwise-ops

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_USUBO_ELIMINATE
+

Auto-generated from RARE rule bv-usubo-eliminate

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_SSUBO_ELIMINATE
+

Auto-generated from RARE rule bv-ssubo-eliminate

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_ITE_EQUAL_CHILDREN
+

Auto-generated from RARE rule bv-ite-equal-children

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_ITE_CONST_CHILDREN_1
+

Auto-generated from RARE rule bv-ite-const-children-1

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_ITE_CONST_CHILDREN_2
+

Auto-generated from RARE rule bv-ite-const-children-2

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_ITE_EQUAL_COND_1
+

Auto-generated from RARE rule bv-ite-equal-cond-1

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_ITE_EQUAL_COND_2
+

Auto-generated from RARE rule bv-ite-equal-cond-2

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_ITE_EQUAL_COND_3
+

Auto-generated from RARE rule bv-ite-equal-cond-3

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_ITE_MERGE_THEN_IF
+

Auto-generated from RARE rule bv-ite-merge-then-if

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_ITE_MERGE_ELSE_IF
+

Auto-generated from RARE rule bv-ite-merge-else-if

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_ITE_MERGE_THEN_ELSE
+

Auto-generated from RARE rule bv-ite-merge-then-else

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_ITE_MERGE_ELSE_ELSE
+

Auto-generated from RARE rule bv-ite-merge-else-else

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_SHL_BY_CONST_0
+

Auto-generated from RARE rule bv-shl-by-const-0

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_SHL_BY_CONST_1
+

Auto-generated from RARE rule bv-shl-by-const-1

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_SHL_BY_CONST_2
+

Auto-generated from RARE rule bv-shl-by-const-2

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_LSHR_BY_CONST_0
+

Auto-generated from RARE rule bv-lshr-by-const-0

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_LSHR_BY_CONST_1
+

Auto-generated from RARE rule bv-lshr-by-const-1

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_LSHR_BY_CONST_2
+

Auto-generated from RARE rule bv-lshr-by-const-2

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_ASHR_BY_CONST_0
+

Auto-generated from RARE rule bv-ashr-by-const-0

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_ASHR_BY_CONST_1
+

Auto-generated from RARE rule bv-ashr-by-const-1

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_ASHR_BY_CONST_2
+

Auto-generated from RARE rule bv-ashr-by-const-2

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_AND_CONCAT_PULLUP
+

Auto-generated from RARE rule bv-and-concat-pullup

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_OR_CONCAT_PULLUP
+

Auto-generated from RARE rule bv-or-concat-pullup

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_XOR_CONCAT_PULLUP
+

Auto-generated from RARE rule bv-xor-concat-pullup

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_BITWISE_IDEMP_1
+

Auto-generated from RARE rule bv-bitwise-idemp-1

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_BITWISE_IDEMP_2
+

Auto-generated from RARE rule bv-bitwise-idemp-2

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_AND_ZERO
+

Auto-generated from RARE rule bv-and-zero

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_AND_ONE
+

Auto-generated from RARE rule bv-and-one

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_OR_ONE
+

Auto-generated from RARE rule bv-or-one

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_XOR_DUPLICATE
+

Auto-generated from RARE rule bv-xor-duplicate

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_XOR_ONES
+

Auto-generated from RARE rule bv-xor-ones

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_XOR_ZERO
+

Auto-generated from RARE rule bv-xor-zero

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_BITWISE_NOT_AND
+

Auto-generated from RARE rule bv-bitwise-not-and

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_BITWISE_NOT_OR
+

Auto-generated from RARE rule bv-bitwise-not-or

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_XOR_NOT
+

Auto-generated from RARE rule bv-xor-not

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_NOT_IDEMP
+

Auto-generated from RARE rule bv-not-idemp

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_ULT_ZERO_1
+

Auto-generated from RARE rule bv-ult-zero-1

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_ULT_ZERO_2
+

Auto-generated from RARE rule bv-ult-zero-2

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_ULT_SELF
+

Auto-generated from RARE rule bv-ult-self

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_LT_SELF
+

Auto-generated from RARE rule bv-lt-self

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_ULE_SELF
+

Auto-generated from RARE rule bv-ule-self

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_ULE_ZERO
+

Auto-generated from RARE rule bv-ule-zero

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_ZERO_ULE
+

Auto-generated from RARE rule bv-zero-ule

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_SLE_SELF
+

Auto-generated from RARE rule bv-sle-self

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_ULE_MAX
+

Auto-generated from RARE rule bv-ule-max

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_NOT_ULT
+

Auto-generated from RARE rule bv-not-ult

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_NOT_ULE
+

Auto-generated from RARE rule bv-not-ule

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_NOT_SLE
+

Auto-generated from RARE rule bv-not-sle

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_MULT_POW2_1
+

Auto-generated from RARE rule bv-mult-pow2-1

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_MULT_POW2_2
+

Auto-generated from RARE rule bv-mult-pow2-2

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_MULT_POW2_2B
+

Auto-generated from RARE rule bv-mult-pow2-2b

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_MULT_LEADING_BIT
+

Auto-generated from RARE rule bv-extract-mult-leading-bit

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_UDIV_POW2_NOT_ONE
+

Auto-generated from RARE rule bv-udiv-pow2-not-one

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_UDIV_ZERO
+

Auto-generated from RARE rule bv-udiv-zero

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_UDIV_ONE
+

Auto-generated from RARE rule bv-udiv-one

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_UREM_POW2_NOT_ONE
+

Auto-generated from RARE rule bv-urem-pow2-not-one

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_UREM_ONE
+

Auto-generated from RARE rule bv-urem-one

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_UREM_SELF
+

Auto-generated from RARE rule bv-urem-self

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_SHL_ZERO
+

Auto-generated from RARE rule bv-shl-zero

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_LSHR_ZERO
+

Auto-generated from RARE rule bv-lshr-zero

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_ASHR_ZERO
+

Auto-generated from RARE rule bv-ashr-zero

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_UGT_UREM
+

Auto-generated from RARE rule bv-ugt-urem

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_ULT_ONE
+

Auto-generated from RARE rule bv-ult-one

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_SLT_ZERO
+

Auto-generated from RARE rule bv-slt-zero

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_MERGE_SIGN_EXTEND_1
+

Auto-generated from RARE rule bv-merge-sign-extend-1

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_MERGE_SIGN_EXTEND_2
+

Auto-generated from RARE rule bv-merge-sign-extend-2

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_MERGE_SIGN_EXTEND_3
+

Auto-generated from RARE rule bv-merge-sign-extend-3

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_EQ_CONST_1
+

Auto-generated from RARE rule bv-sign-extend-eq-const-1

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_EQ_CONST_2
+

Auto-generated from RARE rule bv-sign-extend-eq-const-2

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_ZERO_EXTEND_EQ_CONST_1
+

Auto-generated from RARE rule bv-zero-extend-eq-const-1

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_ZERO_EXTEND_EQ_CONST_2
+

Auto-generated from RARE rule bv-zero-extend-eq-const-2

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ULT_CONST_1
+

Auto-generated from RARE rule bv-sign-extend-ult-const-1

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ULT_CONST_2
+

Auto-generated from RARE rule bv-sign-extend-ult-const-2

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ULT_CONST_3
+

Auto-generated from RARE rule bv-sign-extend-ult-const-3

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ULT_CONST_4
+

Auto-generated from RARE rule bv-sign-extend-ult-const-4

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_SETS_EQ_SINGLETON_EMP
+

Auto-generated from RARE rule sets-eq-singleton-emp

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_SETS_MEMBER_SINGLETON
+

Auto-generated from RARE rule sets-member-singleton

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_SETS_MEMBER_EMP
+

Auto-generated from RARE rule sets-member-emp

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_SETS_SUBSET_ELIM
+

Auto-generated from RARE rule sets-subset-elim

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_SETS_UNION_COMM
+

Auto-generated from RARE rule sets-union-comm

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_SETS_INTER_COMM
+

Auto-generated from RARE rule sets-inter-comm

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_SETS_INTER_EMP1
+

Auto-generated from RARE rule sets-inter-emp1

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_SETS_INTER_EMP2
+

Auto-generated from RARE rule sets-inter-emp2

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_SETS_MINUS_EMP1
+

Auto-generated from RARE rule sets-minus-emp1

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_SETS_MINUS_EMP2
+

Auto-generated from RARE rule sets-minus-emp2

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_SETS_UNION_EMP1
+

Auto-generated from RARE rule sets-union-emp1

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_SETS_UNION_EMP2
+

Auto-generated from RARE rule sets-union-emp2

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_SETS_INTER_MEMBER
+

Auto-generated from RARE rule sets-inter-member

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_SETS_MINUS_MEMBER
+

Auto-generated from RARE rule sets-minus-member

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_SETS_UNION_MEMBER
+

Auto-generated from RARE rule sets-union-member

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_SETS_CHOOSE_SINGLETON
+

Auto-generated from RARE rule sets-choose-singleton

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_SETS_CARD_SINGLETON
+

Auto-generated from RARE rule sets-card-singleton

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_SETS_CARD_UNION
+

Auto-generated from RARE rule sets-card-union

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_SETS_CARD_MINUS
+

Auto-generated from RARE rule sets-card-minus

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_SETS_CARD_EMP
+

Auto-generated from RARE rule sets-card-emp

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_SETS_MINUS_SELF
+

Auto-generated from RARE rule sets-minus-self

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_SETS_IS_EMPTY_ELIM
+

Auto-generated from RARE rule sets-is-empty-elim

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_EQ_CTN_FALSE
+

Auto-generated from RARE rule str-eq-ctn-false

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_EQ_CTN_FULL_FALSE1
+

Auto-generated from RARE rule str-eq-ctn-full-false1

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_EQ_CTN_FULL_FALSE2
+

Auto-generated from RARE rule str-eq-ctn-full-false2

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_CONCAT_FLATTEN
+

Auto-generated from RARE rule str-concat-flatten

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_CONCAT_FLATTEN_EQ
+

Auto-generated from RARE rule str-concat-flatten-eq

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_CONCAT_FLATTEN_EQ_REV
+

Auto-generated from RARE rule str-concat-flatten-eq-rev

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EMPTY_STR
+

Auto-generated from RARE rule str-substr-empty-str

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EMPTY_RANGE
+

Auto-generated from RARE rule str-substr-empty-range

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EMPTY_START
+

Auto-generated from RARE rule str-substr-empty-start

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EMPTY_START_NEG
+

Auto-generated from RARE rule str-substr-empty-start-neg

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EQ_EMPTY
+

Auto-generated from RARE rule str-substr-eq-empty

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_LEN_REPLACE_INV
+

Auto-generated from RARE rule str-len-replace-inv

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_LEN_UPDATE_INV
+

Auto-generated from RARE rule str-len-update-inv

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_LEN_SUBSTR_IN_RANGE
+

Auto-generated from RARE rule str-len-substr-in-range

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_LEN_SUBSTR_UB1
+

Auto-generated from RARE rule str-len-substr-ub1

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_LEN_SUBSTR_UB2
+

Auto-generated from RARE rule str-len-substr-ub2

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH
+

Auto-generated from RARE rule str-concat-clash

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH_REV
+

Auto-generated from RARE rule str-concat-clash-rev

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH2
+

Auto-generated from RARE rule str-concat-clash2

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH2_REV
+

Auto-generated from RARE rule str-concat-clash2-rev

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_CONCAT_UNIFY
+

Auto-generated from RARE rule str-concat-unify

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_CONCAT_UNIFY_REV
+

Auto-generated from RARE rule str-concat-unify-rev

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_CONCAT_UNIFY_BASE
+

Auto-generated from RARE rule str-concat-unify-base

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_CONCAT_UNIFY_BASE_REV
+

Auto-generated from RARE rule str-concat-unify-base-rev

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH_CHAR
+

Auto-generated from RARE rule str-concat-clash-char

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH_CHAR_REV
+

Auto-generated from RARE rule str-concat-clash-char-rev

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_PREFIXOF_ELIM
+

Auto-generated from RARE rule str-prefixof-elim

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_SUFFIXOF_ELIM
+

Auto-generated from RARE rule str-suffixof-elim

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_PREFIXOF_ONE
+

Auto-generated from RARE rule str-prefixof-one

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_SUFFIXOF_ONE
+

Auto-generated from RARE rule str-suffixof-one

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_COMBINE1
+

Auto-generated from RARE rule str-substr-combine1

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_COMBINE2
+

Auto-generated from RARE rule str-substr-combine2

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_COMBINE3
+

Auto-generated from RARE rule str-substr-combine3

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_COMBINE4
+

Auto-generated from RARE rule str-substr-combine4

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_CONCAT1
+

Auto-generated from RARE rule str-substr-concat1

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_CONCAT2
+

Auto-generated from RARE rule str-substr-concat2

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_FULL
+

Auto-generated from RARE rule str-substr-full

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_FULL_EQ
+

Auto-generated from RARE rule str-substr-full-eq

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_REFL
+

Auto-generated from RARE rule str-contains-refl

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_CONCAT_FIND
+

Auto-generated from RARE rule str-contains-concat-find

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_SPLIT_CHAR
+

Auto-generated from RARE rule str-contains-split-char

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_LT_LEN
+

Auto-generated from RARE rule str-contains-lt-len

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_LEQ_LEN_EQ
+

Auto-generated from RARE rule str-contains-leq-len-eq

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_EMP
+

Auto-generated from RARE rule str-contains-emp

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_IS_EMP
+

Auto-generated from RARE rule str-contains-is-emp

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_AT_ELIM
+

Auto-generated from RARE rule str-at-elim

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_REPLACE_SELF
+

Auto-generated from RARE rule str-replace-self

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_REPLACE_PREFIX
+

Auto-generated from RARE rule str-replace-prefix

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_REPLACE_NO_CONTAINS
+

Auto-generated from RARE rule str-replace-no-contains

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_REPLACE_EMPTY
+

Auto-generated from RARE rule str-replace-empty

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_REPLACE_CONTAINS_PRE
+

Auto-generated from RARE rule str-replace-contains-pre

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_REPLACE_ALL_NO_CONTAINS
+

Auto-generated from RARE rule str-replace-all-no-contains

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_REPLACE_RE_NONE
+

Auto-generated from RARE rule str-replace-re-none

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_REPLACE_RE_ALL_NONE
+

Auto-generated from RARE rule str-replace-re-all-none

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_LEN_CONCAT_REC
+

Auto-generated from RARE rule str-len-concat-rec

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_INDEXOF_SELF
+

Auto-generated from RARE rule str-indexof-self

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_INDEXOF_NO_CONTAINS
+

Auto-generated from RARE rule str-indexof-no-contains

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_INDEXOF_CONTAINS_PRE
+

Auto-generated from RARE rule str-indexof-contains-pre

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_INDEXOF_RE_NONE
+

Auto-generated from RARE rule str-indexof-re-none

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_TO_LOWER_CONCAT
+

Auto-generated from RARE rule str-to-lower-concat

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_TO_UPPER_CONCAT
+

Auto-generated from RARE rule str-to-upper-concat

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_TO_LOWER_UPPER
+

Auto-generated from RARE rule str-to-lower-upper

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_TO_UPPER_LOWER
+

Auto-generated from RARE rule str-to-upper-lower

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_TO_LOWER_LEN
+

Auto-generated from RARE rule str-to-lower-len

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_TO_UPPER_LEN
+

Auto-generated from RARE rule str-to-upper-len

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_TO_LOWER_FROM_INT
+

Auto-generated from RARE rule str-to-lower-from-int

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_TO_UPPER_FROM_INT
+

Auto-generated from RARE rule str-to-upper-from-int

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_TO_INT_CONCAT_NEG_ONE
+

Auto-generated from RARE rule str-to-int-concat-neg-one

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_LEQ_EMPTY
+

Auto-generated from RARE rule str-leq-empty

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_LEQ_EMPTY_EQ
+

Auto-generated from RARE rule str-leq-empty-eq

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_LEQ_CONCAT_FALSE
+

Auto-generated from RARE rule str-leq-concat-false

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_LEQ_CONCAT_TRUE
+

Auto-generated from RARE rule str-leq-concat-true

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_LT_ELIM
+

Auto-generated from RARE rule str-lt-elim

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_RE_ALL_ELIM
+

Auto-generated from RARE rule re-all-elim

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_RE_OPT_ELIM
+

Auto-generated from RARE rule re-opt-elim

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_RE_DIFF_ELIM
+

Auto-generated from RARE rule re-diff-elim

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_RE_CONCAT_EMP
+

Auto-generated from RARE rule re-concat-emp

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_RE_CONCAT_NONE
+

Auto-generated from RARE rule re-concat-none

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_RE_CONCAT_FLATTEN
+

Auto-generated from RARE rule re-concat-flatten

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_RE_CONCAT_STAR_SWAP
+

Auto-generated from RARE rule re-concat-star-swap

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_RE_CONCAT_STAR_REPEAT
+

Auto-generated from RARE rule re-concat-star-repeat

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_RE_CONCAT_MERGE
+

Auto-generated from RARE rule re-concat-merge

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_RE_UNION_ALL
+

Auto-generated from RARE rule re-union-all

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_RE_UNION_NONE
+

Auto-generated from RARE rule re-union-none

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_RE_UNION_FLATTEN
+

Auto-generated from RARE rule re-union-flatten

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_RE_UNION_DUP
+

Auto-generated from RARE rule re-union-dup

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_RE_INTER_ALL
+

Auto-generated from RARE rule re-inter-all

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_RE_INTER_NONE
+

Auto-generated from RARE rule re-inter-none

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_RE_INTER_FLATTEN
+

Auto-generated from RARE rule re-inter-flatten

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_RE_INTER_DUP
+

Auto-generated from RARE rule re-inter-dup

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_RE_STAR_NONE
+

Auto-generated from RARE rule re-star-none

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_RE_LOOP_NEG
+

Auto-generated from RARE rule re-loop-neg

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_RE_INTER_CSTRING
+

Auto-generated from RARE rule re-inter-cstring

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_RE_INTER_CSTRING_NEG
+

Auto-generated from RARE rule re-inter-cstring-neg

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_LEN_INCLUDE
+

Auto-generated from RARE rule str-substr-len-include

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_LEN_INCLUDE_PRE
+

Auto-generated from RARE rule str-substr-len-include-pre

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_LEN_SKIP
+

Auto-generated from RARE rule str-substr-len-skip

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_SEQ_LEN_REV
+

Auto-generated from RARE rule seq-len-rev

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_SEQ_REV_REV
+

Auto-generated from RARE rule seq-rev-rev

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_SEQ_REV_CONCAT
+

Auto-generated from RARE rule seq-rev-concat

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_SEQ_LEN_UNIT
+

Auto-generated from RARE rule seq-len-unit

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_SEQ_NTH_UNIT
+

Auto-generated from RARE rule seq-nth-unit

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_SEQ_REV_UNIT
+

Auto-generated from RARE rule seq-rev-unit

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_SEQ_LEN_EMPTY
+

Auto-generated from RARE rule seq-len-empty

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_RE_IN_EMPTY
+

Auto-generated from RARE rule re-in-empty

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_RE_IN_SIGMA
+

Auto-generated from RARE rule re-in-sigma

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_RE_IN_SIGMA_STAR
+

Auto-generated from RARE rule re-in-sigma-star

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_RE_IN_CSTRING
+

Auto-generated from RARE rule re-in-cstring

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_RE_IN_COMP
+

Auto-generated from RARE rule re-in-comp

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_IN_RE_UNION_ELIM
+

Auto-generated from RARE rule str-in-re-union-elim

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_IN_RE_INTER_ELIM
+

Auto-generated from RARE rule str-in-re-inter-elim

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_IN_RE_RANGE_ELIM
+

Auto-generated from RARE rule str-in-re-range-elim

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_IN_RE_CONTAINS
+

Auto-generated from RARE rule str-in-re-contains

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX
+

Auto-generated from RARE rule str-in-re-strip-prefix

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_NEG
+

Auto-generated from RARE rule str-in-re-strip-prefix-neg

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SR_SINGLE
+

Auto-generated from RARE rule str-in-re-strip-prefix-sr-single

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG
+

Auto-generated from RARE rule str-in-re-strip-prefix-sr-single-neg

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SRS_SINGLE
+

Auto-generated from RARE rule str-in-re-strip-prefix-srs-single

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG
+

Auto-generated from RARE rule str-in-re-strip-prefix-srs-single-neg

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_S_SINGLE
+

Auto-generated from RARE rule str-in-re-strip-prefix-s-single

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG
+

Auto-generated from RARE rule str-in-re-strip-prefix-s-single-neg

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE
+

Auto-generated from RARE rule str-in-re-strip-prefix-base

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_NEG
+

Auto-generated from RARE rule str-in-re-strip-prefix-base-neg

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE
+

Auto-generated from RARE rule str-in-re-strip-prefix-base-s-single

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG
+

Auto-generated from RARE rule str-in-re-strip-prefix-base-s-single-neg

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_CHAR
+

Auto-generated from RARE rule str-in-re-strip-char

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_CHAR_S_SINGLE
+

Auto-generated from RARE rule str-in-re-strip-char-s-single

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_REV
+

Auto-generated from RARE rule str-in-re-strip-prefix-rev

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_NEG_REV
+

Auto-generated from RARE rule str-in-re-strip-prefix-neg-rev

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SR_SINGLE_REV
+

Auto-generated from RARE rule str-in-re-strip-prefix-sr-single-rev

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG_REV
+

Auto-generated from RARE rule str-in-re-strip-prefix-sr-single-neg-rev

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_REV
+

Auto-generated from RARE rule str-in-re-strip-prefix-srs-single-rev

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG_REV
+

Auto-generated from RARE rule str-in-re-strip-prefix-srs-single-neg-rev

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_S_SINGLE_REV
+

Auto-generated from RARE rule str-in-re-strip-prefix-s-single-rev

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG_REV
+

Auto-generated from RARE rule str-in-re-strip-prefix-s-single-neg-rev

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_REV
+

Auto-generated from RARE rule str-in-re-strip-prefix-base-rev

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_NEG_REV
+

Auto-generated from RARE rule str-in-re-strip-prefix-base-neg-rev

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_REV
+

Auto-generated from RARE rule str-in-re-strip-prefix-base-s-single-rev

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG_REV
+

Auto-generated from RARE rule str-in-re-strip-prefix-base-s-single-neg-rev

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_CHAR_REV
+

Auto-generated from RARE rule str-in-re-strip-char-rev

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_CHAR_S_SINGLE_REV
+

Auto-generated from RARE rule str-in-re-strip-char-s-single-rev

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_IN_RE_REQ_UNFOLD
+

Auto-generated from RARE rule str-in-re-req-unfold

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_IN_RE_REQ_UNFOLD_REV
+

Auto-generated from RARE rule str-in-re-req-unfold-rev

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_IN_RE_SKIP_UNFOLD
+

Auto-generated from RARE rule str-in-re-skip-unfold

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_IN_RE_SKIP_UNFOLD_REV
+

Auto-generated from RARE rule str-in-re-skip-unfold-rev

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_IN_RE_TEST_UNFOLD
+

Auto-generated from RARE rule str-in-re-test-unfold

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_STR_IN_RE_TEST_UNFOLD_REV
+

Auto-generated from RARE rule str-in-re-test-unfold-rev

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_EQ_REFL
+

Auto-generated from RARE rule eq-refl

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_EQ_SYMM
+

Auto-generated from RARE rule eq-symm

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_EQ_COND_DEQ
+

Auto-generated from RARE rule eq-cond-deq

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_EQ_ITE_LIFT
+

Auto-generated from RARE rule eq-ite-lift

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_DISTINCT_BINARY_ELIM
+

Auto-generated from RARE rule distinct-binary-elim

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_UF_BV2NAT_INT2BV
+

Auto-generated from RARE rule uf-bv2nat-int2bv

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_UF_BV2NAT_INT2BV_EXTEND
+

Auto-generated from RARE rule uf-bv2nat-int2bv-extend

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_UF_BV2NAT_INT2BV_EXTRACT
+

Auto-generated from RARE rule uf-bv2nat-int2bv-extract

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_UF_INT2BV_BV2NAT
+

Auto-generated from RARE rule uf-int2bv-bv2nat

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_UF_BV2NAT_GEQ_ELIM
+

Auto-generated from RARE rule uf-bv2nat-geq-elim

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_UF_INT2BV_BVULT_EQUIV
+

Auto-generated from RARE rule uf-int2bv-bvult-equiv

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_UF_INT2BV_BVULE_EQUIV
+

Auto-generated from RARE rule uf-int2bv-bvule-equiv

+
+ +
+
+enumerator CVC5_PROOF_REWRITE_RULE_LAST
+
+ +
+ +
+
+const char *cvc5_proof_rewrite_rule_to_string(Cvc5ProofRewriteRule rule)
+

Get a string representation of a Cvc5ProofRewriteRule.

+
+
Parameters:
+

rule – The proof rewrite rule.

+
+
Returns:
+

The string representation.

+
+
+
+ +
+
+size_t cvc5_proof_rewrite_rule_hash(Cvc5ProofRewriteRule rule)
+

Hash function for Cvc5ProofRewriteRule.

+
+
Parameters:
+

rule – The proof rewrite rule.

+
+
Returns:
+

The hash value.

+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/enums/cvc5roundingmode.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/enums/cvc5roundingmode.html new file mode 100644 index 0000000000..984ea1e4fb --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/enums/cvc5roundingmode.html @@ -0,0 +1,244 @@ + + + + + + + + + + + + + Cvc5RoundingMode — cvc5 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Cvc5RoundingMode

+

This enum represents a floating-point rounding mode.

+
+
+
+
+
+
+
+enum Cvc5RoundingMode
+

Rounding modes for floating-point numbers.

+

For many floating-point operations, infinitely precise results may not be representable with the number of available bits. Thus, the results are rounded in a certain way to one of the representable floating-point numbers.

+

These rounding modes directly follow the SMT-LIB theory for floating-point +arithmetic, which in turn is based on IEEE Standard 754 [IEE19]. +The rounding modes are specified in Sections 4.3.1 and 4.3.2 of the IEEE +Standard 754.

+

Values:

+
+
+enumerator CVC5_RM_ROUND_NEAREST_TIES_TO_EVEN
+

Round to the nearest even number.

+

If the two nearest floating-point numbers bracketing an unrepresentable infinitely precise result are equally near, the one with an even least significant digit will be delivered.

+
+ +
+
+enumerator CVC5_RM_ROUND_TOWARD_POSITIVE
+

Round towards positive infinity (SMT-LIB: +oo).

+

The result shall be the format’s floating-point number (possibly +oo) closest to and no less than the infinitely precise result.

+
+ +
+
+enumerator CVC5_RM_ROUND_TOWARD_NEGATIVE
+

Round towards negative infinity (-oo).

+

The result shall be the format’s floating-point number (possibly -oo) closest to and no less than the infinitely precise result.

+
+ +
+
+enumerator CVC5_RM_ROUND_TOWARD_ZERO
+

Round towards zero.

+

The result shall be the format’s floating-point number closest to and no greater in magnitude than the infinitely precise result.

+
+ +
+
+enumerator CVC5_RM_ROUND_NEAREST_TIES_TO_AWAY
+

Round to the nearest number away from zero.

+

If the two nearest floating-point numbers bracketing an unrepresentable infinitely precise result are equally near), the one with larger magnitude will be selected.

+
+ +
+
+enumerator CVC5_RM_LAST
+
+ +
+ +
+
+
+const char *cvc5_rm_to_string(Cvc5RoundingMode rm)
+

Get a string representation of a Cvc5RoundingMode.

+
+
Parameters:
+

rm – The rounding mode.

+
+
Returns:
+

The string representation.

+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/enums/cvc5sortkind.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/enums/cvc5sortkind.html new file mode 100644 index 0000000000..c005c3ebd9 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/enums/cvc5sortkind.html @@ -0,0 +1,502 @@ + + + + + + + + + + + + + Cvc5SortKind — cvc5 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Cvc5SortKind

+

Every Cvc5Sort has an associated kind, represented +as enum Cvc5SortKind.

+
+
+
+
+
+
+
+enum Cvc5SortKind
+

The kind of a cvc5 Sort.

+

Values:

+
+
+enumerator CVC5_SORT_KIND_INTERNAL_SORT_KIND
+

Internal kind.

+

This kind serves as an abstraction for internal kinds that are not exposed via the API but may appear in terms returned by API functions, e.g., when querying the simplified form of a term.

+
+

Note

+

Should never be created via the API.

+
+
+ +
+
+enumerator CVC5_SORT_KIND_UNDEFINED_SORT_KIND
+

Undefined kind.

+
+

Note

+

Should never be exposed or created via the API.

+
+
+ +
+
+enumerator CVC5_SORT_KIND_NULL_SORT
+

Null kind.

+

The kind of a null sort (Sort::Sort()).

+
+

Note

+

May not be explicitly created via API functions other than +Sort::Sort().

+
+
+ +
+
+enumerator CVC5_SORT_KIND_ABSTRACT_SORT
+

An abstract sort.

+

An abstract sort represents a sort whose parameters or argument sorts are unspecified. For example, mkAbstractSort(BITVECTOR_SORT) returns a sort that represents the sort of bit-vectors whose bit-width is unspecified.

+

    +
  • Create Sort of this Kind with:

      +
    • Solver::mkAbstractSort(SortKind) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_SORT_KIND_ARRAY_SORT
+

An array sort, whose argument sorts are the index and element sorts of the array.

+

    +
  • Create Sort of this Kind with:

      +
    • Solver::mkArraySort(Sort, Sort) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_SORT_KIND_BAG_SORT
+

A bag sort, whose argument sort is the element sort of the bag.

+

    +
  • Create Sort of this Kind with:

      +
    • Solver::mkBagSort(Sort) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_SORT_KIND_BOOLEAN_SORT
+

The Boolean sort.

+

    +
  • Create Sort of this Kind with:

      +
    • Solver::getBooleanSort() const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_SORT_KIND_BITVECTOR_SORT
+

A bit-vector sort, parameterized by an integer denoting its bit-width.

+

    +
  • Create Sort of this Kind with:

      +
    • Solver::mkBitVectorSort(uint32_t) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_SORT_KIND_DATATYPE_SORT
+

A datatype sort.

+

    +
  • Create Sort of this Kind with:

      +
    • Solver::mkDatatypeSort(DatatypeDecl)

    • +
    • Solver::mkDatatypeSorts(const std::vector<DatatypeDecl>&)

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_SORT_KIND_FINITE_FIELD_SORT
+

A finite field sort, parameterized by a size.

+

    +
  • Create Sort of this Kind with:

      +
    • Solver::mkFiniteFieldSort(const std::string&, uint32_t base) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_SORT_KIND_FLOATINGPOINT_SORT
+

A floating-point sort, parameterized by two integers denoting its exponent and significand bit-widths.

+

    +
  • Create Sort of this Kind with:

      +
    • Solver::mkFloatingPointSort(uint32_t, uint32_t) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_SORT_KIND_FUNCTION_SORT
+

A function sort with given domain sorts and codomain sort.

+

    +
  • Create Sort of this Kind with:

      +
    • Solver::mkFunctionSort(const std::vector<Sort>&, Sort) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_SORT_KIND_INTEGER_SORT
+

The integer sort.

+

    +
  • Create Sort of this Kind with:

      +
    • Solver::getIntegerSort() const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_SORT_KIND_REAL_SORT
+

The real sort.

+

    +
  • Create Sort of this Kind with:

      +
    • Solver::getRealSort() const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_SORT_KIND_REGLAN_SORT
+

The regular language sort.

+

    +
  • Create Sort of this Kind with:

      +
    • Solver::getRegExpSort() const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_SORT_KIND_ROUNDINGMODE_SORT
+

The rounding mode sort.

+

    +
  • Create Sort of this Kind with:

      +
    • Solver::getRoundingModeSort() const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_SORT_KIND_SEQUENCE_SORT
+

A sequence sort, whose argument sort is the element sort of the sequence.

+

    +
  • Create Sort of this Kind with:

      +
    • Solver::mkSequenceSort(Sort) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_SORT_KIND_SET_SORT
+

A set sort, whose argument sort is the element sort of the set.

+

    +
  • Create Sort of this Kind with:

      +
    • Solver::mkSetSort(Sort) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_SORT_KIND_STRING_SORT
+

The string sort.

+

    +
  • Create Sort of this Kind with:

      +
    • Solver::getStringSort() const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_SORT_KIND_TUPLE_SORT
+

A tuple sort, whose argument sorts denote the sorts of the direct children of the tuple.

+

    +
  • Create Sort of this Kind with:

      +
    • Solver::mkTupleSort(const std::vector<Sort>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_SORT_KIND_NULLABLE_SORT
+

A nullable sort, whose argument sort denotes the sort of the direct child of the nullable.

+

    +
  • Create Sort of this Kind with:

      +
    • Solver::mkNullableSort(const Sort&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_SORT_KIND_UNINTERPRETED_SORT
+

An uninterpreted sort.

+

    +
  • Create Sort of this Kind with:

      +
    • Solver::mkUninterpretedSort(const std::optional<std::string>&) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CVC5_SORT_KIND_LAST_SORT_KIND
+

Marks the upper-bound of this enumeration.

+
+ +
+ +
+
+
+const char *cvc5_sort_kind_to_string(Cvc5SortKind kind)
+

Get a string representation of a Cvc5SortKind.

+
+
Parameters:
+

kind – The sort kind.

+
+
Returns:
+

The string representation.

+
+
+
+ +
+
+size_t cvc5_sort_kind_hash(Cvc5SortKind kind)
+

Hash function for Cvc5SortKinds.

+
+
Parameters:
+

kind – The kind.

+
+
Returns:
+

The hash value.

+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/enums/cvc5unknownexplanation.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/enums/cvc5unknownexplanation.html new file mode 100644 index 0000000000..29ceb4814a --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/enums/cvc5unknownexplanation.html @@ -0,0 +1,265 @@ + + + + + + + + + + + + + Cvc5UnknownExplanation — cvc5 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Cvc5UnknownExplanation

+

This enum class represents the explanation for an unknown solver result +(see Cvc5Result).

+
+
+
+
+
+
+
+enum Cvc5UnknownExplanation
+

The different reasons for returning an “unknown” result.

+

Values:

+
+
+enumerator CVC5_UNKNOWN_EXPLANATION_REQUIRES_FULL_CHECK
+

Full satisfiability check required (e.g., if only preprocessing was performed).

+
+ +
+
+enumerator CVC5_UNKNOWN_EXPLANATION_INCOMPLETE
+

Incomplete theory solver.

+
+ +
+
+enumerator CVC5_UNKNOWN_EXPLANATION_TIMEOUT
+

Time limit reached.

+
+ +
+
+enumerator CVC5_UNKNOWN_EXPLANATION_RESOURCEOUT
+

Resource limit reached.

+
+ +
+
+enumerator CVC5_UNKNOWN_EXPLANATION_MEMOUT
+

Memory limit reached.

+
+ +
+
+enumerator CVC5_UNKNOWN_EXPLANATION_INTERRUPTED
+

Solver was interrupted.

+
+ +
+
+enumerator CVC5_UNKNOWN_EXPLANATION_UNSUPPORTED
+

Unsupported feature encountered.

+
+ +
+
+enumerator CVC5_UNKNOWN_EXPLANATION_OTHER
+

Other reason.

+
+ +
+
+enumerator CVC5_UNKNOWN_EXPLANATION_REQUIRES_CHECK_AGAIN
+

Requires another satisfiability check

+
+ +
+
+enumerator CVC5_UNKNOWN_EXPLANATION_UNKNOWN_REASON
+

No specific reason given.

+
+ +
+
+enumerator CVC5_UNKNOWN_EXPLANATION_LAST
+
+ +
+ +
+
+
+const char *cvc5_unknown_explanation_to_string(Cvc5UnknownExplanation exp)
+

Get a string representation of a Cvc5UnknownExplanation.

+
+
Parameters:
+

exp – The unknown explanation.

+
+
Returns:
+

The string representation.

+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/enums/modes.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/enums/modes.html new file mode 100644 index 0000000000..7e134f17d6 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/enums/modes.html @@ -0,0 +1,497 @@ + + + + + + + + + + + + + Modes — cvc5 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Modes

+

Some API functions require a configuration mode argument, e.g., +cvc5_block_model(). +The following enum classes define such configuration modes.

+
+
+
+
+
+
+
+enum Cvc5BlockModelsMode
+

Mode for blocking models.

+

Specifies how models are blocked in Solver::blockModel and Solver::blockModelValues.

+

Values:

+
+
+enumerator CVC5_BLOCK_MODELS_MODE_LITERALS
+

Block models based on the SAT skeleton.

+
+ +
+
+enumerator CVC5_BLOCK_MODELS_MODE_VALUES
+

Block models based on the concrete model values for the free variables.

+
+ +
+
+enumerator CVC5_BLOCK_MODELS_MODE_LAST
+
+ +
+ +
+
+const char *cvc5_modes_block_models_mode_to_string(Cvc5BlockModelsMode mode)
+

Get a string representation of a Cvc5BlockModelsMode.

+
+
Parameters:
+

mode – The mode.

+
+
Returns:
+

The string representation.

+
+
+
+ +
+
+
+enum Cvc5LearnedLitType
+

Types of learned literals.

+

Specifies categories of literals learned for the method Solver::getLearnedLiterals.

+

Note that a literal may conceptually belong to multiple categories. We classify literals based on the first criteria in this list that they meet.

+

Values:

+
+
+enumerator CVC5_LEARNED_LIT_TYPE_PREPROCESS_SOLVED
+

An equality that was turned into a substitution during preprocessing.

+

In particular, literals in this category are of the form (= x t) where x does not occur in t.

+
+ +
+
+enumerator CVC5_LEARNED_LIT_TYPE_PREPROCESS
+

A top-level literal (unit clause) from the preprocessed set of input formulas.

+
+ +
+
+enumerator CVC5_LEARNED_LIT_TYPE_INPUT
+

A literal from the preprocessed set of input formulas that does not occur at top-level after preprocessing.

+

Typically), this is the most interesting category of literals to learn.

+
+ +
+
+enumerator CVC5_LEARNED_LIT_TYPE_SOLVABLE
+

An internal literal that is solvable for an input variable.

+

In particular, literals in this category are of the form (= x t) where x does not occur in t, the preprocessed set of input formulas contains the term x, but not the literal (= x t).

+

Note that solvable literals can be turned into substitutions during preprocessing.

+
+ +
+
+enumerator CVC5_LEARNED_LIT_TYPE_CONSTANT_PROP
+

An internal literal that can be made into a constant propagation for an input term.

+

In particular, literals in this category are of the form (= t c) where c is a constant, the preprocessed set of input formulas contains the term t, but not the literal (= t c).

+
+ +
+
+enumerator CVC5_LEARNED_LIT_TYPE_INTERNAL
+

Any internal literal that does not fall into the above categories.

+
+ +
+
+enumerator CVC5_LEARNED_LIT_TYPE_UNKNOWN
+

Special case for when produce-learned-literals is not set.

+
+ +
+
+enumerator CVC5_LEARNED_LIT_TYPE_LAST
+
+ +
+ +
+
+const char *cvc5_modes_learned_lit_type_to_string(Cvc5LearnedLitType type)
+

Get a string representation of a Cvc5LearnedLitType.

+
+
Parameters:
+

type – The learned literal type.

+
+
Returns:
+

The string representation.

+
+
+
+ +
+
+
+enum Cvc5ProofComponent
+

Components to include in a proof.

+

Values:

+
+
+enumerator CVC5_PROOF_COMPONENT_RAW_PREPROCESS
+

Proofs of G1 … Gn whose free assumptions are a subset of F1, … Fm, where:

    +
  • G1, … Gn are the preprocessed input formulas,

  • +
  • F1, … Fm are the input formulas.

  • +
+

+

Note that G1 … Gn may be arbitrary formulas, not necessarily clauses.

+
+ +
+
+enumerator CVC5_PROOF_COMPONENT_PREPROCESS
+

Proofs of Gu1 … Gun whose free assumptions are Fu1, … Fum, where:

    +
  • Gu1, … Gun are clauses corresponding to input formulas used in the SAT proof,

  • +
  • Fu1, … Fum is the subset of the input formulas that are used in the SAT proof (i.e. the unsat core).

  • +
+

+

Note that Gu1 … Gun are clauses that are added to the SAT solver before its main search.

+

Only valid immediately after an unsat response.

+
+ +
+
+enumerator CVC5_PROOF_COMPONENT_SAT
+

A proof of false whose free assumptions are Gu1, … Gun, L1 … Lk, where:

    +
  • Gu1, … Gun, is a set of clauses corresponding to input formulas,

  • +
  • L1, …, Lk is a set of clauses corresponding to theory lemmas.

  • +
+

+

Only valid immediately after an unsat response.

+
+ +
+
+enumerator CVC5_PROOF_COMPONENT_THEORY_LEMMAS
+

Proofs of L1 … Lk where:

    +
  • L1, …, Lk are clauses corresponding to theory lemmas used in the SAT proof.

  • +
+

+

In contrast to proofs given for preprocess, L1 … Lk are clauses that are added to the SAT solver after its main search.

+

Only valid immediately after an unsat response.

+
+ +
+
+enumerator CVC5_PROOF_COMPONENT_FULL
+

A proof of false whose free assumptions are a subset of the input formulas F1), … Fm.

+

Only valid immediately after an unsat response.

+
+ +
+
+enumerator CVC5_PROOF_COMPONENT_LAST
+
+ +
+ +
+
+const char *cvc5_modes_proof_component_to_string(Cvc5ProofComponent pc)
+

Get a string representation of a Cvc5ProofComponent.

+
+
Parameters:
+

pc – The proof component.

+
+
Returns:
+

The string representation.

+
+
+
+ +
+
+
+enum Cvc5ProofFormat
+

Proof format used for proof printing.

+

Values:

+
+
+enumerator CVC5_PROOF_FORMAT_NONE
+

Do not translate proof output.

+
+ +
+
+enumerator CVC5_PROOF_FORMAT_DOT
+

Output DOT proof.

+
+ +
+
+enumerator CVC5_PROOF_FORMAT_LFSC
+

Output LFSC proof.

+
+ +
+
+enumerator CVC5_PROOF_FORMAT_ALETHE
+

Output Alethe proof.

+
+ +
+
+enumerator CVC5_PROOF_FORMAT_CPC
+

Output Cooperating Proof Calculus proof based on Eunoia signatures.

+
+ +
+
+enumerator CVC5_PROOF_FORMAT_DEFAULT
+

Use the proof format mode set in the solver options.

+
+ +
+
+enumerator CVC5_PROOF_FORMAT_LAST
+
+ +
+ +
+
+const char *cvc5_modes_proof_format_to_string(Cvc5ProofFormat format)
+

Get a string representation of a Cvc5ProofFormat.

+
+
Parameters:
+

format – The proof format.

+
+
Returns:
+

The string representation.

+
+
+
+ +
+
+
+enum Cvc5FindSynthTarget
+

Find synthesis targets, used as an argument to Solver::findSynth. These specify various kinds of terms that can be found by this method.

+

Values:

+
+
+enumerator CVC5_FIND_SYNTH_TARGET_ENUM
+

Find the next term in the enumeration of the target grammar.

+
+ +
+
+enumerator CVC5_FIND_SYNTH_TARGET_REWRITE
+

Find a pair of terms (t,s) in the target grammar which are equivalent but do not rewrite to the same term in the given rewriter (&#8212;sygus-rewrite=MODE). If so, the equality (= t s) is returned by findSynth.

+

This can be used to synthesize rewrite rules. Note if the rewriter is set to none (&#8212;sygus-rewrite=none), this indicates a possible rewrite when implementing a rewriter from scratch.

+
+ +
+
+enumerator CVC5_FIND_SYNTH_TARGET_REWRITE_UNSOUND
+

Find a term t in the target grammar which rewrites to a term s that is not equivalent to it. If so, the equality (= t s) is returned by findSynth.

+

This can be used to test the correctness of the given rewriter. Any returned rewrite indicates an unsoundness in the given rewriter.

+
+ +
+
+enumerator CVC5_FIND_SYNTH_TARGET_REWRITE_INPUT
+

Find a rewrite between pairs of terms (t,s) that are matchable with terms in the input assertions where t and s are equivalent but do not rewrite to the same term in the given rewriter (&#8212;sygus-rewrite=MODE).

+

This can be used to synthesize rewrite rules that apply to the current problem.

+
+ +
+
+enumerator CVC5_FIND_SYNTH_TARGET_QUERY
+

Find a query over the given grammar. If the given grammar generates terms that are not Boolean, we consider equalities over terms from the given grammar.

+

The algorithm for determining which queries to generate is configured by &#8212;sygus-query-gen=MODE. Queries that are internally solved can be filtered by the option &#8212;sygus-query-gen-filter-solved.

+
+ +
+
+enumerator CVC5_FIND_SYNTH_TARGET_LAST
+
+ +
+ +
+
+const char *cvc5_modes_find_synth_target_to_string(Cvc5FindSynthTarget target)
+

Get a string representation of a Cvc5FindSynthTarget.

+
+
Parameters:
+

target – The synthesis find target.

+
+
Returns:
+

The string representation.

+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/quickstart.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/quickstart.html new file mode 100644 index 0000000000..10e3f26cbd --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/quickstart.html @@ -0,0 +1,1434 @@ + + + + + + + + + + + + + Quickstart Guide — cvc5 documentation + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Quickstart Guide

+

First, create a cvc5 Cvc5TermManager instance:

+
Cvc5TermManager* tm = cvc5_term_manager_new();
+
+
+

Then, create a Cvc5 solver instance:

+
Cvc5* slv = cvc5_new(tm);
+
+
+

We will ask the solver to produce models and unsat cores in the following, +and for this we have to enable the following options.

+
cvc5_set_option(slv, "produce-models", "true");
+cvc5_set_option(slv, "produce-unsat-cores", "true");
+
+
+

Next we set the logic. +The simplest way to set a logic for the solver is to choose “ALL”. +This enables all logics in the solver. +Alternatively, "QF_ALL" enables all logics without quantifiers. +To optimize the solver’s behavior for a more specific logic, +use the logic name, e.g. "QF_BV" or "QF_AUFBV".

+
cvc5_set_logic(slv, "ALL");
+
+
+

In the following, we will define constraints of reals and integers. +For this, we first query the solver for the corresponding sorts.

+
Cvc5Sort real_sort = cvc5_get_real_sort(tm);
+Cvc5Sort int_sort = cvc5_get_integer_sort(tm);
+
+
+

Now, we create two constants x and y of sort Real, +and two constants a and b of sort Integer. +Notice that these are symbolic constants, but not actual values.

+
Cvc5Term x = cvc5_mk_const(tm, real_sort, "x");
+Cvc5Term y = cvc5_mk_const(tm, real_sort, "y");
+Cvc5Term a = cvc5_mk_const(tm, int_sort, "a");
+Cvc5Term b = cvc5_mk_const(tm, int_sort, "b");
+
+
+

We define the following constraints regarding x and y:

+
+\[(0 < x) \wedge (0 < y) \wedge (x + y < 1) \wedge (x \leq y)\]
+

We construct the required terms and assert them as follows:

+
// Formally, constraints are also terms. Their sort is Boolean.
+// We will construct these constraints gradually,
+// by defining each of their components.
+// We start with the constant numerals 0 and 1:
+Cvc5Term zero = cvc5_mk_real_int64(tm, 0);
+Cvc5Term one = cvc5_mk_real_int64(tm, 1);
+
+// Next, we construct the term x + y
+Cvc5Term args2[2] = {x, y};
+Cvc5Term x_plus_y = cvc5_mk_term(tm, CVC5_KIND_ADD, 2, args2);
+
+// Now we can define the constraints.
+// They use the operators +, <=, and <.
+// In the API, these are denoted by ADD, LEQ, and LT.
+// A list of available operators is available in:
+// src/api/cpp/cvc5_kind.h
+args2[0] = zero;
+args2[1] = x;
+Cvc5Term constraint1 = cvc5_mk_term(tm, CVC5_KIND_LT, 2, args2);
+args2[1] = y;
+Cvc5Term constraint2 = cvc5_mk_term(tm, CVC5_KIND_LT, 2, args2);
+args2[0] = x_plus_y;
+args2[1] = one;
+Cvc5Term constraint3 = cvc5_mk_term(tm, CVC5_KIND_LT, 2, args2);
+args2[0] = x;
+args2[1] = y;
+Cvc5Term constraint4 = cvc5_mk_term(tm, CVC5_KIND_LEQ, 2, args2);
+
+// Now we assert the constraints to the solver.
+cvc5_assert_formula(slv, constraint1);
+cvc5_assert_formula(slv, constraint2);
+cvc5_assert_formula(slv, constraint3);
+cvc5_assert_formula(slv, constraint4);
+
+
+

Now we check if the asserted formula is satisfiable, that is, we check if +there exist values of sort Real for x and y that satisfy all +the constraints.

+
Cvc5Result r = cvc5_check_sat(slv);
+
+
+

The result we get from this satisfiability check is either sat, unsat +or unknown. +It’s status can be queried via +cvc5_result_is_sat(), +cvc5_result_is_unsat() and +cvc5_result_is_unknown(). +Alternatively, it can also be printed.

+
printf("expected: sat\n");
+printf("result: %s\n", cvc5_result_to_string(r));
+
+
+

This will print:

+
expected: sat
+result: sat
+
+
+

Now, we query the solver for the values for x and y that satisfy +the constraints.

+
Cvc5Term x_val = cvc5_get_value(slv, x);
+Cvc5Term y_val = cvc5_get_value(slv, y);
+
+
+

It is also possible to get values for terms that do not appear in the original +formula.

+
args2[0] = x;
+args2[1] = y;
+Cvc5Term x_minus_y = cvc5_mk_term(tm, CVC5_KIND_SUB, 2, args2);
+Cvc5Term x_minus_y_val = cvc5_get_value(slv, x_minus_y);
+
+
+

We can retrieve the string representation of these values as follows.

+
// Note: The const char* returned by cvc5_term_get_real_value is only valid
+//       until the next call to this function.
+char* x_str = strdup(cvc5_term_get_real_value(x_val));
+char* y_str = strdup(cvc5_term_get_real_value(y_val));
+char* x_minus_y_str = strdup(cvc5_term_get_real_value(x_minus_y_val));
+
+printf("value for x: %s\n", x_str);
+printf("value for y: %s\n", y_str);
+printf("value for x - y: %s\n", x_minus_y_str);
+
+free(y_str);
+free(x_str);
+free(x_minus_y_str);
+
+// Alternatively, you can directly print the value strings without
+// copying them first:
+printf("value for x: %s\n", cvc5_term_get_real_value(x_val));
+printf("value for y: %s\n", cvc5_term_get_real_value(y_val));
+printf("value for x - y: %s\n", cvc5_term_get_real_value(x_minus_y_val));
+
+
+

This will print the following:

+
value for x: 1/6
+value for y: 1/6
+value for x - y: 0.0
+
+
+

We can convert these values to C++ types.

+
// Further, we can convert the values to cpp types
+int64_t x_num;
+uint64_t x_den;
+cvc5_term_get_real64_value(x_val, &x_num, &x_den);
+int64_t y_num;
+uint64_t y_den;
+cvc5_term_get_real64_value(y_val, &y_num, &y_den);
+int64_t x_minus_y_num;
+uint64_t x_minus_y_den;
+cvc5_term_get_real64_value(x_minus_y_val, &x_minus_y_num, &x_minus_y_den);
+
+printf("value for x: %" PRId64 "/%" PRIu64 "\n", x_num, x_den);
+printf("value for y: %" PRId64 "/%" PRIu64 "\n", y_num, y_den);
+printf("value for x - y: %" PRId64 "/%" PRIu64 "\n", x_minus_y_num, x_minus_y_den);
+
+
+

Another way to independently compute the value of x - y would be to +perform the (rational) arithmetic manually. +However, for more complex terms, it is easier to let the solver do the +evaluation.

+
int64_t x_minus_y_num_computed = x_num * y_den - x_den * y_num;
+uint64_t x_minus_y_den_computed = x_den * y_den;
+uint64_t g = gcd(x_minus_y_num_computed, x_minus_y_den_computed);
+x_minus_y_num_computed = x_minus_y_num_computed / g;
+x_minus_y_den_computed = x_minus_y_den_computed / g;
+if (x_minus_y_num_computed == x_minus_y_num
+    && x_minus_y_den_computed == x_minus_y_den)
+{
+  printf("computed correctly\n");
+}
+else
+{
+  printf("computed incorrectly\n");
+}
+
+
+

This will print:

+
computed correctly
+
+
+

Next, we will check satisfiability of the same formula, +only this time over integer variables a and b. +For this, we first reset the assertions added to the solver.

+
cvc5_reset_assertions(slv);
+
+
+

Next, we assert the same assertions as above, but with integers. +This time, we inline the construction of terms +to the assertion command.

+
args2[0] = cvc5_mk_integer_int64(tm, 0);
+args2[1] = a;
+cvc5_assert_formula(slv, cvc5_mk_term(tm, CVC5_KIND_LT, 2, args2));
+args2[1] = b;
+cvc5_assert_formula(slv, cvc5_mk_term(tm, CVC5_KIND_LT, 2, args2));
+args2[0] = a;
+args2[1] = b;
+Cvc5Term add = cvc5_mk_term(tm, CVC5_KIND_ADD, 2, args2);
+args2[0] = add;
+args2[1] = cvc5_mk_integer_int64(tm, 1);
+cvc5_assert_formula(slv, cvc5_mk_term(tm, CVC5_KIND_LT, 2, args2));
+args2[0] = a;
+args2[1] = b;
+cvc5_assert_formula(slv, cvc5_mk_term(tm, CVC5_KIND_LEQ, 2, args2));
+
+
+

Now, we check whether the revised assertion is satisfiable.

+
cvc5_result_release(r);  // optional, not needed anymore so we can release
+r = cvc5_check_sat(slv);
+
+
+
printf("expected: unsat\n");
+printf("result: %s\n", cvc5_result_to_string(r));
+
+
+

This time the asserted formula is unsatisfiable:

+
expected: unsat
+result: unsat
+
+
+

We can query the solver for an unsatisfiable core, that is, a subset +of the assertions that is already unsatisfiable.

+
size_t size;
+const Cvc5Term* unsat_core = cvc5_get_unsat_core(slv, &size);
+printf("unsat core size: %lu\n", size);
+printf("unsat core: \n");
+for (size_t i = 0; i < size; i++)
+{
+  printf("%s\n", cvc5_term_to_string(unsat_core[i]));
+}
+
+
+

This will print:

+
unsat core size: 3
+unsat core:
+(< 0 a)
+(< 0 b)
+(< (+ a b) 1)
+
+
+
+

Example

+
+

examples/api/cpp/quickstart.cpp

+
  1/******************************************************************************
+  2 * Top contributors (to current version):
+  3 *   Yoni Zohar, Aina Niemetz, Gereon Kremer
+  4 *
+  5 * This file is part of the cvc5 project.
+  6 *
+  7 * Copyright (c) 2009-2024 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 * A simple demonstration of the API capabilities of cvc5.
+ 14 *
+ 15 */
+ 16
+ 17#include <cvc5/cvc5.h>
+ 18
+ 19#include <iostream>
+ 20#include <numeric>
+ 21
+ 22using namespace cvc5;
+ 23
+ 24int main()
+ 25{
+ 26  // Create a term manager
+ 27  //! [docs-cpp-quickstart-0 start]
+ 28  TermManager tm;
+ 29  //! [docs-cpp-quickstart-0 end]
+ 30  // Create a solver
+ 31  //! [docs-cpp-quickstart-1 start]
+ 32  Solver solver(tm);
+ 33  //! [docs-cpp-quickstart-1 end]
+ 34
+ 35  // We will ask the solver to produce models and unsat cores,
+ 36  // hence these options should be turned on.
+ 37  //! [docs-cpp-quickstart-2 start]
+ 38  solver.setOption("produce-models", "true");
+ 39  solver.setOption("produce-unsat-cores", "true");
+ 40  //! [docs-cpp-quickstart-2 end]
+ 41
+ 42  // The simplest way to set a logic for the solver is to choose "ALL".
+ 43  // This enables all logics in the solver.
+ 44  // Alternatively, "QF_ALL" enables all logics without quantifiers.
+ 45  // To optimize the solver's behavior for a more specific logic,
+ 46  // use the logic name, e.g. "QF_BV" or "QF_AUFBV".
+ 47
+ 48  // Set the logic
+ 49  //! [docs-cpp-quickstart-3 start]
+ 50  solver.setLogic("ALL");
+ 51  //! [docs-cpp-quickstart-3 end]
+ 52
+ 53  // In this example, we will define constraints over reals and integers.
+ 54  // Hence, we first obtain the corresponding sorts.
+ 55  //! [docs-cpp-quickstart-4 start]
+ 56  Sort realSort = tm.getRealSort();
+ 57  Sort intSort = tm.getIntegerSort();
+ 58  //! [docs-cpp-quickstart-4 end]
+ 59
+ 60  // x and y will be real variables, while a and b will be integer variables.
+ 61  // Formally, their cpp type is Term,
+ 62  // and they are called "constants" in SMT jargon:
+ 63  //! [docs-cpp-quickstart-5 start]
+ 64  Term x = tm.mkConst(realSort, "x");
+ 65  Term y = tm.mkConst(realSort, "y");
+ 66  Term a = tm.mkConst(intSort, "a");
+ 67  Term b = tm.mkConst(intSort, "b");
+ 68  //! [docs-cpp-quickstart-5 end]
+ 69
+ 70  // Our constraints regarding x and y will be:
+ 71  //
+ 72  //   (1)  0 < x
+ 73  //   (2)  0 < y
+ 74  //   (3)  x + y < 1
+ 75  //   (4)  x <= y
+ 76  //
+ 77
+ 78  //! [docs-cpp-quickstart-6 start]
+ 79  // Formally, constraints are also terms. Their sort is Boolean.
+ 80  // We will construct these constraints gradually,
+ 81  // by defining each of their components.
+ 82  // We start with the constant numerals 0 and 1:
+ 83  Term zero = tm.mkReal(0);
+ 84  Term one = tm.mkReal(1);
+ 85
+ 86  // Next, we construct the term x + y
+ 87  Term xPlusY = tm.mkTerm(Kind::ADD, {x, y});
+ 88
+ 89  // Now we can define the constraints.
+ 90  // They use the operators +, <=, and <.
+ 91  // In the API, these are denoted by ADD, LEQ, and LT.
+ 92  // A list of available operators is available in:
+ 93  // src/api/cpp/cvc5_kind.h
+ 94  Term constraint1 = tm.mkTerm(Kind::LT, {zero, x});
+ 95  Term constraint2 = tm.mkTerm(Kind::LT, {zero, y});
+ 96  Term constraint3 = tm.mkTerm(Kind::LT, {xPlusY, one});
+ 97  Term constraint4 = tm.mkTerm(Kind::LEQ, {x, y});
+ 98
+ 99  // Now we assert the constraints to the solver.
+100  solver.assertFormula(constraint1);
+101  solver.assertFormula(constraint2);
+102  solver.assertFormula(constraint3);
+103  solver.assertFormula(constraint4);
+104  //! [docs-cpp-quickstart-6 end]
+105
+106  // Check if the formula is satisfiable, that is,
+107  // are there real values for x and y that satisfy all the constraints?
+108  //! [docs-cpp-quickstart-7 start]
+109  Result r1 = solver.checkSat();
+110  //! [docs-cpp-quickstart-7 end]
+111
+112  // The result is either SAT, UNSAT, or UNKNOWN.
+113  // In this case, it is SAT.
+114  //! [docs-cpp-quickstart-8 start]
+115  std::cout << "expected: sat" << std::endl;
+116  std::cout << "result: " << r1 << std::endl;
+117  //! [docs-cpp-quickstart-8 end]
+118
+119  // We can get the values for x and y that satisfy the constraints.
+120  //! [docs-cpp-quickstart-9 start]
+121  Term xVal = solver.getValue(x);
+122  Term yVal = solver.getValue(y);
+123  //! [docs-cpp-quickstart-9 end]
+124
+125  // It is also possible to get values for compound terms,
+126  // even if those did not appear in the original formula.
+127  //! [docs-cpp-quickstart-10 start]
+128  Term xMinusY = tm.mkTerm(Kind::SUB, {x, y});
+129  Term xMinusYVal = solver.getValue(xMinusY);
+130  //! [docs-cpp-quickstart-10 end]
+131
+132  // We can now obtain the string representations of the values.
+133  //! [docs-cpp-quickstart-11 start]
+134  std::string xStr = xVal.getRealValue();
+135  std::string yStr = yVal.getRealValue();
+136  std::string xMinusYStr = xMinusYVal.getRealValue();
+137
+138  std::cout << "value for x: " << xStr << std::endl;
+139  std::cout << "value for y: " << yStr << std::endl;
+140  std::cout << "value for x - y: " << xMinusYStr << std::endl;
+141  //! [docs-cpp-quickstart-11 end]
+142
+143  //! [docs-cpp-quickstart-12 start]
+144  // Further, we can convert the values to cpp types
+145  std::pair<int64_t, uint64_t> xPair = xVal.getReal64Value();
+146  std::pair<int64_t, uint64_t> yPair = yVal.getReal64Value();
+147  std::pair<int64_t, uint64_t> xMinusYPair = xMinusYVal.getReal64Value();
+148
+149  std::cout << "value for x: " << xPair.first << "/" << xPair.second
+150            << std::endl;
+151  std::cout << "value for y: " << yPair.first << "/" << yPair.second
+152            << std::endl;
+153  std::cout << "value for x - y: " << xMinusYPair.first << "/"
+154            << xMinusYPair.second << std::endl;
+155  //! [docs-cpp-quickstart-12 end]
+156
+157  // Another way to independently compute the value of x - y would be
+158  // to perform the (rational) arithmetic manually.
+159  // However, for more complex terms,
+160  // it is easier to let the solver do the evaluation.
+161  //! [docs-cpp-quickstart-13 start]
+162  std::pair<int64_t, uint64_t> xMinusYComputed = {
+163    xPair.first * yPair.second - xPair.second * yPair.first,
+164    xPair.second * yPair.second
+165  };
+166  uint64_t g = std::gcd(xMinusYComputed.first, xMinusYComputed.second);
+167  xMinusYComputed = { xMinusYComputed.first / g, xMinusYComputed.second / g };
+168  if (xMinusYComputed == xMinusYPair)
+169  {
+170    std::cout << "computed correctly" << std::endl;
+171  }
+172  else
+173  {
+174    std::cout << "computed incorrectly" << std::endl;
+175  }
+176  //! [docs-cpp-quickstart-13 end]
+177
+178  // Next, we will check satisfiability of the same formula,
+179  // only this time over integer variables a and b.
+180
+181  // We start by resetting assertions added to the solver.
+182  //! [docs-cpp-quickstart-14 start]
+183  solver.resetAssertions();
+184  //! [docs-cpp-quickstart-14 end]
+185
+186  // Next, we assert the same assertions above with integers.
+187  // This time, we inline the construction of terms
+188  // to the assertion command.
+189  //! [docs-cpp-quickstart-15 start]
+190  solver.assertFormula(tm.mkTerm(Kind::LT, {tm.mkInteger(0), a}));
+191  solver.assertFormula(tm.mkTerm(Kind::LT, {tm.mkInteger(0), b}));
+192  solver.assertFormula(
+193      tm.mkTerm(Kind::LT, {tm.mkTerm(Kind::ADD, {a, b}), tm.mkInteger(1)}));
+194  solver.assertFormula(tm.mkTerm(Kind::LEQ, {a, b}));
+195  //! [docs-cpp-quickstart-15 end]
+196
+197  // We check whether the revised assertion is satisfiable.
+198  //! [docs-cpp-quickstart-16 start]
+199  Result r2 = solver.checkSat();
+200  //! [docs-cpp-quickstart-16 end]
+201
+202  // This time the formula is unsatisfiable
+203  //! [docs-cpp-quickstart-17 start]
+204  std::cout << "expected: unsat" << std::endl;
+205  std::cout << "result: " << r2 << std::endl;
+206  //! [docs-cpp-quickstart-17 end]
+207
+208  // We can query the solver for an unsatisfiable core, i.e., a subset
+209  // of the assertions that is already unsatisfiable.
+210  //! [docs-cpp-quickstart-18 start]
+211  std::vector<Term> unsatCore = solver.getUnsatCore();
+212  std::cout << "unsat core size: " << unsatCore.size() << std::endl;
+213  std::cout << "unsat core: " << std::endl;
+214  for (const Term& t : unsatCore)
+215  {
+216    std::cout << t << std::endl;
+217  }
+218  //! [docs-cpp-quickstart-18 end]
+219
+220  return 0;
+221}
+
+
+
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/structs/cvc5optioninfo.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/structs/cvc5optioninfo.html new file mode 100644 index 0000000000..78534c7e00 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/structs/cvc5optioninfo.html @@ -0,0 +1,538 @@ + + + + + + + + + + + + + Cvc5OptionInfo — cvc5 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Cvc5OptionInfo

+

This struct encapsulates all the information associated with a configuration +option. It can be retrieved via cvc5_get_option_info() +and allows to query any configuration information associated with an option.

+

The kind of an option info object is defined as enum +Cvc5OptionInfoKind. Encapsulated values can be queried depending on +the kind.

+
+
+
+
+
+
+
+enum Cvc5OptionInfoKind
+

Values:

+
+
+enumerator CVC5_OPTION_INFO_VOID
+

The empty option info, does not hold value information.

+
+ +
+
+enumerator CVC5_OPTION_INFO_BOOL
+

Information for option with boolean option value.

+
+ +
+
+enumerator CVC5_OPTION_INFO_STR
+

Information for option with string option value.

+
+ +
+
+enumerator CVC5_OPTION_INFO_INT64
+

Information for option with int64 option value.

+
+ +
+
+enumerator CVC5_OPTION_INFO_UINT64
+

Information for option with uint64 option value.

+
+ +
+
+enumerator CVC5_OPTION_INFO_DOUBLE
+

Information for option with double value.

+
+ +
+
+enumerator CVC5_OPTION_INFO_MODES
+

Information for option with option modes.

+
+ +
+ +
+
+
+typedef struct Cvc5OptionInfo Cvc5OptionInfo
+

A cvc5 option info.

+
+ +
+
+struct Cvc5OptionInfo
+

Holds information about a specific option, including its name, its +aliases, whether the option was explicitly set by the user, and information +concerning its value. +It can be obtained via cvc5_get_option_info() and allows for a +more detailed inspection of options than cvc5_get_option(). +Union member info holds any of the following alternatives:

+
    +
  • Neither of the following if the option holds no value (or the value has no +native type). In that case, the kind of the option will be denoted as +#CVC5_OPTION_INFO_VOID.

  • +
  • Struct BoolInfo if the option is of type bool. It holds the current +value and the default value of the option. Option kind is denoted as +#CVC5_OPTION_INFO_BOOL.

  • +
  • Struct StringInfo if the option is of type const char*. It holds +the current value and the default value of the option. Option kind is +denoted as #CVC5_OPTION_INFO_STR.

  • +
  • Struct IntInfo if the option is of type int64_t. It holds the +current, default, minimum and maximum value of the option. Option kind is +denoted as #CVC5_OPTION_INFO_INT64.

  • +
  • Struct UIntInfo if the option is of type uint64_t. It holds the +current, default, minimum and maximum value of the option. Option kind is +denoted as #CVC5_OPTION_INFO_UINT64.

  • +
  • Struct DoubleInfo if the option is of type double. It holds the +current, default, minimum and maximum value of the option. Option kind is +denoted as #CVC5_OPTION_INFO_DOUBLE.

  • +
  • Struct ModeInfo if the option has modes. It holds the current and +default valuesof the option, as well as a list of valid modes. Option kind +is denoted as #CVC5_OPTION_INFO_MODES.

  • +
+

+
+

Public Members

+
+
+Cvc5OptionInfoKind kind
+

The kind of the option info.

+
+ +
+
+const char *name
+

The option name

+
+ +
+
+size_t num_aliases
+

The number of option name aliases

+
+ +
+
+const char **aliases
+

The option name aliases

+
+ +
+
+bool is_set_by_user
+

True if the option was explicitly set by the user

+
+ +
+
+bool is_expert
+

True if the option is an expert option

+
+ +
+
+bool is_regular
+

True if the option is a regular option

+
+ +
+
+void *d_cpp_info
+

The associated C++ info. For internal use, only.

+
+ +
+
+
+struct BoolInfo
+

Information for boolean option values.

+
+

Public Members

+
+
+bool dflt
+

The default value.

+
+ +
+
+bool cur
+

The current value.

+
+ +
+
+ +
+
+struct DoubleInfo
+

Information for double values.

+
+

Public Members

+
+
+double dflt
+

The default value.

+
+ +
+
+double cur
+

The current value.

+
+ +
+
+double min
+

The minimum value.

+
+ +
+
+double max
+

The maximum value.

+
+ +
+
+bool has_min
+

True if option has a minimum value.

+
+ +
+
+bool has_max
+

True if option has a maximum value.

+
+ +
+
+ +
+
+struct IntInfo
+

Information for int64 values.

+
+

Public Members

+
+
+int64_t dflt
+

The default value.

+
+ +
+
+int64_t cur
+

The current value.

+
+ +
+
+int64_t min
+

The minimum value.

+
+ +
+
+int64_t max
+

The maximum value.

+
+ +
+
+bool has_min
+

True if option has a minimum value.

+
+ +
+
+bool has_max
+

True if option has a maximum value.

+
+ +
+
+ +
+
+struct ModeInfo
+

Information for mode option values.

+
+

Public Members

+
+
+const char *dflt
+

The default value.

+
+ +
+
+const char *cur
+

The current value.

+
+ +
+
+size_t num_modes
+

The number of possible modes.

+
+ +
+
+const char **modes
+

The possible modes.

+
+ +
+
+ +
+
+struct StringInfo
+

Information for string option values.

+
+

Public Members

+
+
+const char *dflt
+

The default value.

+
+ +
+
+const char *cur
+

The current value.

+
+ +
+
+ +
+
+struct UIntInfo
+

Information for uint64 values.

+
+

Public Members

+
+
+uint64_t dflt
+

The default value.

+
+ +
+
+uint64_t cur
+

The current value.

+
+ +
+
+uint64_t min
+

The minimum value.

+
+ +
+
+uint64_t max
+

The maximum value.

+
+ +
+
+bool has_min
+

True if option has a minimum value.

+
+ +
+
+bool has_max
+

True if option has a maximum value.

+
+ +
+
+ +
+ +
+
+

Warning

+

doxygengroup: Cannot find group “c_cvc5optioninfo” in doxygen xml output for project “cvc5_c” from directory: /home/runner/work/cvc5/cvc5/build-shared/docs/api/c/doxygen/xml

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/structs/cvc5plugin.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/structs/cvc5plugin.html new file mode 100644 index 0000000000..176e1284aa --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/structs/cvc5plugin.html @@ -0,0 +1,282 @@ + + + + + + + + + + + + + Cvc5Plugin — cvc5 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Cvc5Plugin

+

This structs encapsulates a user-specified solver plugin. +It is configured via cvc5_add_plugin().

+
+
+
+
+
+
+
+typedef struct Cvc5Plugin Cvc5Plugin
+
+ +
+
+struct Cvc5Plugin
+

A cvc5 plugin.

+
+

Public Members

+
+
+const Cvc5Term *(*check)(size_t *size, void *state)
+

Call to check, return list of lemmas to add to the SAT solver. This method is called periodically, roughly at every SAT decision.

+
+

Note

+

This function pointer may be NULL to use the default implementation.

+
+
+
Param size:
+

The size of the returned array of lemmas.

+
+
Param state:
+

The state data for the function, may be NULL.

+
+
Return:
+

The vector of lemmas to add to the SAT solver.

+
+
+
+ +
+
+void (*notify_sat_clause)(const Cvc5Term clause, void *state)
+

Notify SAT clause, called when clause is learned by the SAT solver.

+
+

Note

+

This function pointer may be NULL to use the default implementation.

+
+
+
Param clause:
+

The learned clause.

+
+
Param state:
+

The state data for the function, may be NULL.

+
+
+
+ +
+
+void (*notify_theory_lemma)(const Cvc5Term lemma, void *state)
+

Notify theory lemma, called when lemma is sent by a theory solver.

+
+

Note

+

This function pointer may be NULL to use the default implementation.

+
+
+
Param lemma:
+

The theory lemma.

+
+
Param state:
+

The state data for the function, may be NULL.

+
+
+
+ +
+
+const char *(*get_name)()
+

Get the name of the plugin (for debugging).

+
+

Note

+

This function pointer may NOT be NULL.

+
+
+
Return:
+

The name of the plugin.

+
+
+
+ +
+
+void *d_check_state
+

The state to pass into check.

+
+ +
+
+void *d_notify_sat_clause_state
+

The state to pass into notify_sat_clause.

+
+ +
+
+void *d_notify_theory_lemma_state
+

The state to pass into notify_theory_lemma.

+
+ +
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5.html new file mode 100644 index 0000000000..ebb735a960 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5.html @@ -0,0 +1,2103 @@ + + + + + + + + + + + + + Cvc5 — cvc5 documentation + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Cvc5

+

This struct represents a cvc5 solver instance.

+

Terms, sorts and +operators are not tied to a Cvc5 instance +but associated with a Cvc5TermManager instance, which can be +shared between solver instances.

+

Solver options are configured via cvc5_set_option() +and queried via cvc5_get_option() +(for more information on configuration options, see Options). +Information about a specific option can be retrieved via +cvc5_get_option_info() (see Cvc5OptionInfo).

+
+
+
+
+
+
+
+typedef struct Cvc5 Cvc5
+

A cvc5 solver.

+
+ +
+
+
+Cvc5 *cvc5_new(Cvc5TermManager *tm)
+

Construct a new instance of a cvc5 solver.

+
+
Parameters:
+

tm – The associated term manager instance.

+
+
Returns:
+

The cvc5 solver instance.

+
+
+
+ +
+
+void cvc5_delete(Cvc5 *cvc5)
+

Delete a cvc5 solver instance.

+
+
Parameters:
+

cvc5 – The solver instance.

+
+
+
+ +
+
+Cvc5TermManager *cvc5_get_tm(Cvc5 *cvc5)
+

Get the associated term manager of a cvc5 solver instance.

+
+
Parameters:
+

cvc5 – The solver instance.

+
+
Returns:
+

The term manager.

+
+
+
+ +
+
+Cvc5Sort cvc5_declare_dt(Cvc5 *cvc5, const char *symbol, size_t size, const Cvc5DatatypeConstructorDecl ctors[])
+

Create datatype sort.

+

SMT-LIB:

+

(declare-datatype <symbol> <datatype_decl>)
+
+
+

+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • symbol – The name of the datatype sort.

  • +
  • size – The number of constructor declarations of the datatype sort.

  • +
  • ctors – The constructor declarations.

  • +
+
+
Returns:
+

The datatype sort.

+
+
+
+ +
+
+Cvc5Term cvc5_declare_fun(Cvc5 *cvc5, const char *symbol, size_t size, const Cvc5Sort sorts[], Cvc5Sort sort, bool fresh)
+

Declare n-ary function symbol.

+

SMT-LIB:

+

(declare-fun <symbol> ( <sort>* ) <sort>)
+
+
+

+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • symbol – The name of the function.

  • +
  • size – The number of domain sorts of the function.

  • +
  • sorts – The domain sorts of the function.

  • +
  • sort – The codomain sort of the function.

  • +
  • fresh – If true, then this method always returns a new Term. Otherwise, this method will always return the same Term for each call with the given sorts and symbol where fresh is false.

  • +
+
+
Returns:
+

The function.

+
+
+
+ +
+
+Cvc5Sort cvc5_declare_sort(Cvc5 *cvc5, const char *symbol, uint32_t arity, bool fresh)
+

Declare uninterpreted sort.

+

SMT-LIB:

+

(declare-sort <symbol> <numeral>)
+
+
+

+
+

Note

+

This corresponds to cvc5_mk_uninterpreted_sort() if arity = 0, and to cvc5_mk_uninterpreted_sort_constructor_sort() if arity > 0.

+
+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • symbol – The name of the sort.

  • +
  • arity – The arity of the sort.

  • +
  • fresh – If true, then this method always returns a new Sort.

  • +
+
+
Returns:
+

The sort.

+
+
+
+ +
+
+Cvc5Term cvc5_define_fun(Cvc5 *cvc5, const char *symbol, size_t size, const Cvc5Term vars[], const Cvc5Sort sort, const Cvc5Term term, bool global)
+

Define n-ary function.

+

SMT-LIB:

+

(define-fun <function_def>)
+
+
+

+
+
Parameters:
+
    +
  • cvc5 – The cvc5 solver instance.

  • +
  • symbol – The name of the function.

  • +
  • size – The number of parameters of the function.

  • +
  • vars – The parameters.

  • +
  • sort – The sort of the return value of this function.

  • +
  • term – The function body.

  • +
  • global – Determines whether this definition is global (i.e., persists when popping the context).

  • +
+
+
Returns:
+

The function.

+
+
+
+ +
+
+Cvc5Term cvc5_define_fun_rec(Cvc5 *cvc5, const char *symbol, size_t size, const Cvc5Term vars[], const Cvc5Sort sort, const Cvc5Term term, bool global)
+

Define recursive function.

+

SMT-LIB:

+

(define-fun-rec <function_def>)
+
+
+

+
+
Parameters:
+
    +
  • cvc5 – The cvc5 solver instance.

  • +
  • symbol – The name of the function.

  • +
  • size – The number of parameters of the function.

  • +
  • vars – The parameters to this function.

  • +
  • sort – The sort of the return value of this function.

  • +
  • term – The function body.

  • +
  • global – Determines whether this definition is global (i.e., persists when popping the context).

  • +
+
+
Returns:
+

The function.

+
+
+
+ +
+
+Cvc5Term cvc5_define_fun_rec_from_const(Cvc5 *cvc5, Cvc5Term fun, size_t size, const Cvc5Term vars[], const Cvc5Term term, bool global)
+

Define recursive function.

+

SMT-LIB:

+

(define-fun-rec <function_def>)
+
+
+

+

Create parameter fun with mkConst().

+
+
Parameters:
+
    +
  • cvc5 – The cvc5 solver instance.

  • +
  • fun – The sorted function.

  • +
  • size – The number of parameters of the function.

  • +
  • vars – The parameters to this function.

  • +
  • term – The function body.

  • +
  • global – Determines whether this definition is global (i.e., persists when popping the context).

  • +
+
+
Returns:
+

The function.

+
+
+
+ +
+
+void cvc5_define_funs_rec(Cvc5 *cvc5, size_t nfuns, const Cvc5Term funs[], size_t nvars[], const Cvc5Term *vars[], const Cvc5Term terms[], bool global)
+

Define recursive functions.

+

SMT-LIB:

+

(define-funs-rec
+    ( <function_decl>_1 ... <function_decl>_n )
+    ( <term>_1 ... <term>_n )
+)
+
+
+

+

Create elements of parameter funs with cvc5_mk_const().

+
+
Parameters:
+
    +
  • cvc5 – The cvc5 solver instance.

  • +
  • nfuns – The number of sorted functions.

  • +
  • funs – The sorted functions.

  • +
  • nvars – The numbers of parameters for each function.

  • +
  • vars – The list of parameters to the functions.

  • +
  • terms – The list of function bodies of the functions.

  • +
  • global – Determines whether this definition is global (i.e., persists when popping the context).

  • +
+
+
+
+ +
+
+Cvc5Term cvc5_simplify(Cvc5 *cvc5, Cvc5Term term, bool apply_subs)
+

Simplify a formula without doing “much” work.

+

Does not involve the SAT Engine in the simplification, but uses the current definitions, and assertions. It also involves theory normalization.

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • term – The formula to simplify.

  • +
  • apply_subs – True to apply substitutions for solved variables.

  • +
+
+
Returns:
+

The simplified formula.

+
+
+
+ +
+
+void cvc5_assert_formula(Cvc5 *cvc5, Cvc5Term term)
+

Assert a formula.

+

SMT-LIB:

+

(assert <term>)
+
+
+

+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • term – The formula to assert.

  • +
+
+
+
+ +
+
+Cvc5Result cvc5_check_sat(Cvc5 *cvc5)
+

Check satisfiability.

+

SMT-LIB:

+

(check-sat)
+
+
+

+
+
Parameters:
+

cvc5 – The solver instance.

+
+
Returns:
+

The result of the satisfiability check.

+
+
+
+ +
+
+Cvc5Result cvc5_check_sat_assuming(Cvc5 *cvc5, size_t size, const Cvc5Term assumptions[])
+

Check satisfiability assuming the given formulas.

+

SMT-LIB:

+

(check-sat-assuming ( <prop_literal>+ ))
+
+
+

+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • size – The number of assumptions.

  • +
  • assumptions – The formulas to assume.

  • +
+
+
Returns:
+

The result of the satisfiability check.

+
+
+
+ +
+
+const Cvc5Term *cvc5_get_assertions(Cvc5 *cvc5, size_t *size)
+

Get the list of asserted formulas.

+

SMT-LIB:

+

(get-assertions)
+
+
+

+
+

Note

+

The returned Cvc5Term array pointer is only valid until the next call to this function.

+
+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • size – The size of the resulting assertions array.

  • +
+
+
Returns:
+

The list of asserted formulas.

+
+
+
+ +
+
+const char *cvc5_get_info(Cvc5 *cvc5, const char *flag)
+

Get info from the solver.

+

SMT-LIB:

+

(get-info <info_flag>)
+
+
+

+
+

Note

+

The returned char* pointer is only valid until the next call to this function.

+
+
+
Parameters:
+

cvc5 – The solver instance.

+
+
Returns:
+

The info.

+
+
+
+ +
+
+const char *cvc5_get_option(Cvc5 *cvc5, const char *option)
+

Get the value of a given option.

+

SMT-LIB:

+

(get-option <keyword>)
+
+
+

+
+

Note

+

The returned char* pointer is only valid until the next call to this function.

+
+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • option – The option for which the value is queried.

  • +
+
+
Returns:
+

A string representation of the option value.

+
+
+
+ +
+
+const char **cvc5_get_option_names(Cvc5 *cvc5, size_t *size)
+

Get all option names that can be used with cvc5_set_option(), cvc5_get_option() and cvc5_get_option_info().

+
+

Note

+

The returned char* pointer is only valid until the next call to this function.

+
+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • size – The size of the resulting option names array.

  • +
+
+
Returns:
+

All option names.

+
+
+
+ +
+
+void cvc5_get_option_info(Cvc5 *cvc5, const char *option, Cvc5OptionInfo *info)
+

Get some information about a given option. See struct Cvc5OptionInfo for more details on which information is available.

+
+

Note

+

The returned Cvc5OptionInfo data is only valid until the next call to this function.

+
+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • option – The option for which the info is queried.

  • +
  • info – The output parameter for the queried info.

  • +
+
+
+
+ +
+
+const Cvc5Term *cvc5_get_unsat_assumptions(Cvc5 *cvc5, size_t *size)
+

Get the set of unsat (“failed”) assumptions.

+

SMT-LIB:

+

(get-unsat-assumptions)
+
+
+

Requires to enable option +produce-unsat-assumptions.

+

+
+

Note

+

The returned Cvc5Term array pointer is only valid until the next call to this function.

+
+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • size – The number of the resulting unsat assumptions.

  • +
+
+
Returns:
+

The set of unsat assumptions.

+
+
+
+ +
+
+const Cvc5Term *cvc5_get_unsat_core(Cvc5 *cvc5, size_t *size)
+

Get the unsatisfiable core.

+

SMT-LIB:

+

(get-unsat-core)
+
+
+

Requires to enable option +produce-unsat-cores.

+

+
+

Note

+

In contrast to SMT-LIB, cvc5’s API does not distinguish between named +and unnamed assertions when producing an unsatisfiable core. +Additionally, the API allows this option to be called after a check with +assumptions. A subset of those assumptions may be included in the +unsatisfiable core returned by this function.

+
+
+

Note

+

The returned Cvc5Term array pointer is only valid until the next call to this function.

+
+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • size – The size of the resulting unsat core.

  • +
+
+
Returns:
+

A set of terms representing the unsatisfiable core.

+
+
+
+ +
+
+const Cvc5Term *cvc5_get_unsat_core_lemmas(Cvc5 *cvc5, size_t *size)
+

Get the lemmas used to derive unsatisfiability.

+

SMT-LIB:

+

(get-unsat-core-lemmas)
+
+
+

Requires the SAT proof unsat core mode, so to enable option +unsat-core-mode=sat-proof.

+

+
+

Note

+

The returned Cvc5Term array pointer is only valid until the next call to this function.

+
+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • size – The size of the resulting unsat core.

  • +
+
+
Returns:
+

A set of terms representing the lemmas used to derive unsatisfiability.

+
+
+
+ +
+
+void cvc5_get_difficulty(Cvc5 *cvc5, size_t *size, Cvc5Term *inputs[], Cvc5Term *values[])
+

Get a difficulty estimate for an asserted formula. This function is intended to be called immediately after any response to a checkSat.

+
+

Note

+

The resulting mapping from inputs (which is a subset of the inputs) to real values is an estimate of how difficult each assertion was to solve. Unmentioned assertions can be assumed to have zero difficulty.

+
+
+

Note

+

The resulting inputs and values array pointers are only valid until the next call to this function.

+
+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • size – The resulting size of inputs and values.

  • +
  • inputs – The resulting inputs that are mapped to the resulting values.

  • +
  • values – The resulting real values.

  • +
+
+
+
+ +
+
+const Cvc5Term *cvc5_get_timeout_core(Cvc5 *cvc5, Cvc5Result *result, size_t *size)
+

Get a timeout core.

+

This function computes a subset of the current assertions that cause a +timeout. It may make multiple checks for satisfiability internally, each +limited by the timeout value given by +timeout-core-timeout.

+

If the result is unknown and the reason is timeout, then the list of +formulas correspond to a subset of the current assertions that cause a +timeout in the specified time timeout-core-timeout. If the result is unsat, then the list of +formulas correspond to an unsat core for the current assertions. Otherwise, +the result is sat, indicating that the current assertions are satisfiable, +and the returned set of assertions is empty.

+

+

+SMT-LIB:

+

(get-timeout-core)
+
+
+

+
+

Note

+

This command does not require being preceeded by a call to cvc5_check_sat().

+
+
+

Note

+

The resulting result and term array pointer are only valid until the next call to this function.

+
+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • result – The resulting result.

  • +
  • size – The resulting size of the timeout core.

  • +
+
+
Returns:
+

The list of assertions determined to be the timeout core. The resulting result is stored in result.

+
+
+
+ +
+
+const Cvc5Term *cvc5_get_timeout_core_assuming(Cvc5 *cvc5, size_t size, const Cvc5Term assumptions[], Cvc5Result *result, size_t *rsize)
+

Get a timeout core of the given assumptions.

+

This function computes a subset of the given assumptions that cause a timeout when added to the current assertions.

+

If the result is unknown and the reason is timeout, then the set of +assumptions corresponds to a subset of the given assumptions that cause a +timeout when added to the current assertions in the specified time +timeout-core-timeout. If the result +is unsat, then the set of assumptions together with the current assertions +correspond to an unsat core for the current assertions. Otherwise, the +result is sat, indicating that the given assumptions plus the current +assertions are satisfiable, and the returned set of assumptions is empty.

+

+SMT-LIB:

+

(get-timeout-core (<assert>*))
+
+
+

+
+

Note

+

This command does not require being preceeded by a call to cvc5_check_sat().

+
+
+

Note

+

The resulting result and term array pointer are only valid until the next call to this function.

+
+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • size – The number of assumptions.

  • +
  • assumptions – The (non-empty) set of formulas to assume.

  • +
  • result – The resulting result.

  • +
  • rsize – The resulting size of the timeout core.

  • +
+
+
Returns:
+

The list of assumptions determined to be the timeout core. The resulting result is stored in result.

+
+
+
+ +
+
+const Cvc5Proof *cvc5_get_proof(Cvc5 *cvc5, Cvc5ProofComponent c, size_t *size)
+

Get a proof associated with the most recent call to checkSat.

+

SMT-LIB:

+

(get-proof :c)
+
+
+

Requires to enable option +produce-proofs. +The string representation depends on the value of option +produce-proofs.

+

+
+

Note

+

The returned Cvc5Proof array pointer is only valid until the next call to this function.

+
+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • c – The component of the proof to return

  • +
  • size – The size of the resulting array of proofs.

  • +
+
+
Returns:
+

An array of proofs.

+
+
+
+ +
+
+const Cvc5Term *cvc5_get_learned_literals(Cvc5 *cvc5, Cvc5LearnedLitType type, size_t *size)
+

Get a list of learned literals that are entailed by the current set of assertions.

+
+

Note

+

The resulting Cvc5Term array pointer is only valid until the next call to this function.

+
+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • type – The type of learned literalsjto return

  • +
  • size – The size of the resulting list of literals.

  • +
+
+
Returns:
+

A list of literals that were learned at top-level.

+
+
+
+ +
+
+Cvc5Term cvc5_get_value(Cvc5 *cvc5, Cvc5Term term)
+

Get the value of the given term in the current model.

+

SMT-LIB:

+

(get-value ( <term> ))
+
+
+

+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • term – The term for which the value is queried.

  • +
+
+
Returns:
+

The value of the given term.

+
+
+
+ +
+
+const Cvc5Term *cvc5_get_values(Cvc5 *cvc5, size_t size, const Cvc5Term terms[], size_t *rsize)
+

Get the values of the given terms in the current model.

+

SMT-LIB:

+

(get-value ( <term>* ))
+
+
+

+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • size – The number of terms for which the value is queried.

  • +
  • terms – The terms.

  • +
  • rsize – The resulting size of the timeout core.

  • +
+
+
Returns:
+

The values of the given terms.

+
+
+
+ +
+
+const Cvc5Term *cvc5_get_model_domain_elements(Cvc5 *cvc5, Cvc5Sort sort, size_t *size)
+

Get the domain elements of uninterpreted sort s in the current model. The current model interprets s as the finite sort whose domain elements are given in the return value of this function.

+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • sort – The uninterpreted sort in question.

  • +
  • size – The size of the resulting domain elements array.

  • +
+
+
Returns:
+

The domain elements of s in the current model.

+
+
+
+ +
+
+bool cvc5_is_model_core_symbol(Cvc5 *cvc5, Cvc5Term v)
+

Determine if the model value of the given free constant was essential for showing satisfiability of the last cvc5_check_sat() query based on the current model.

+

For any free constant v, this will only return false if model-cores* has been set to true.

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • v – The term in question.

  • +
+
+
Returns:
+

True if v was essential and is thus a model core symbol.

+
+
+
+ +
+
+const char *cvc5_get_model(Cvc5 *cvc5, size_t nsorts, const Cvc5Sort sorts[], size_t nconsts, const Cvc5Term consts[])
+

Get the model

+

SMT-LIB:

+

(get-model)
+
+
+

Requires to enable option +produce-models.

+

+
+

Note

+

The returned char* pointer is only valid until the next call to this function.

+
+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • nsorts – The number of uninterpreted sorts that should be printed in the model.

  • +
  • sorts – The list of uninterpreted sorts.

  • +
  • nconsts – The size of the list of free constants that should be printed in the model.

  • +
  • consts – The list of free constants that should be printed in the model. A subset of these may be printed based on isModelCoreSymbol().

  • +
+
+
Returns:
+

A string representing the model.

+
+
+
+ +
+
+Cvc5Term cvc5_get_quantifier_elimination(Cvc5 *cvc5, Cvc5Term q)
+

Do quantifier elimination.

+

SMT-LIB:

+

(get-qe <q>)
+
+
+

+
+

Note

+

Quantifier Elimination is is only complete for logics such as LRA, LIA and BV.

+
+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • q – A quantified formula of the form \(Q\bar{x}_1... Q\bar{x}_n. P( x_1...x_i, y_1...y_j)\) where \(Q\bar{x}\) is a set of quantified variables of the form \(Q x_1...x_k\) and \(P( x_1...x_i, y_1...y_j )\) is a quantifier-free formula

  • +
+
+
Returns:
+

A formula \(\phi\) such that, given the current set of formulas \(A\) asserted to this solver:

    +
  • \((A \wedge q)\) and \((A \wedge \phi)\) are equivalent

  • +
  • \(\phi\) is quantifier-free formula containing only free variables in \(y_1...y_n\).

  • +
+

+
+
+
+ +
+
+Cvc5Term cvc5_get_quantifier_elimination_disjunct(Cvc5 *cvc5, Cvc5Term q)
+

Do partial quantifier elimination, which can be used for incrementally computing the result of a quantifier elimination.

+

SMT-LIB:

+

(get-qe-disjunct <q>)
+
+
+

+
+

Note

+

Quantifier Elimination is is only complete for logics such as LRA, LIA and BV.

+
+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • q – A quantified formula of the form \(Q\bar{x}_1... Q\bar{x}_n. P( x_1...x_i, y_1...y_j)\) where \(Q\bar{x}\) is a set of quantified variables of the form \(Q x_1...x_k\) and \(P( x_1...x_i, y_1...y_j )\) is a quantifier-free formula

  • +
+
+
Returns:
+

A formula \(\phi\) such that, given the current set of formulas \(A\) asserted to this solver:

    +
  • \((A \wedge q \implies A \wedge \phi)\) if \(Q\) is \(\forall\), and \((A \wedge \phi \implies A \wedge q)\) if \(Q\) is \(\exists\)

  • +
  • \(\phi\) is quantifier-free formula containing only free variables in \(y_1...y_n\)

  • +
  • If \(Q\) is \(\exists\), let \((A \wedge Q_n)\) be the formula \((A \wedge \neg (\phi \wedge Q_1) \wedge ... \wedge \neg (\phi \wedge Q_n))\) where for each \(i = 1...n\), formula \((\phi \wedge Q_i)\) is the result of calling cvc5_get_quantifier_elimination_disjunct() for \(q\) with the set of assertions \((A \wedge Q_{i-1})\). Similarly, if \(Q\) is \(\forall\), then let \((A \wedge Q_n)\) be \((A \wedge (\phi \wedge Q_1) \wedge ... \wedge (\phi \wedge Q_n))\) where \((\phi \wedge Q_i)\) is the same as above. In either case, we have that \((\phi \wedge Q_j)\) will eventually be true or false, for some finite j.

  • +
+

+
+
+
+ +
+
+void cvc5_declare_sep_heap(Cvc5 *cvc5, Cvc5Sort loc, Cvc5Sort data)
+

When using separation logic, this sets the location sort and the datatype sort to the given ones. This function should be invoked exactly once, before any separation logic constraints are provided.

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • loc – The location sort of the heap.

  • +
  • data – The data sort of the heap.

  • +
+
+
+
+ +
+
+Cvc5Term cvc5_get_value_sep_heap(Cvc5 *cvc5)
+

When using separation logic, obtain the term for the heap.

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+

cvc5 – The solver instance.

+
+
Returns:
+

The term for the heap.

+
+
+
+ +
+
+Cvc5Term cvc5_get_value_sep_nil(Cvc5 *cvc5)
+

When using separation logic, obtain the term for nil.

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+

cvc5 – The solver instance.

+
+
Returns:
+

The term for nil.

+
+
+
+ +
+
+Cvc5Term cvc5_declare_pool(Cvc5 *cvc5, const char *symbol, Cvc5Sort sort, size_t size, const Cvc5Term init_value[])
+

Declare a symbolic pool of terms with the given initial value.

+

For details on how pools are used to specify instructions for quantifier instantiation, see documentation for the #INST_POOL kind.

+

SMT-LIB:

+

(declare-pool <symbol> <sort> ( <term>* ))
+
+
+

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • symbol – The name of the pool.

  • +
  • sort – The sort of the elements of the pool.

  • +
  • size – The number of initial values of the pool.

  • +
  • init_value – The initial value of the pool.

  • +
+
+
Returns:
+

The pool symbol.

+
+
+
+ +
+
+Cvc5Term cvc5_declare_oracle_fun(Cvc5 *cvc5, const char *symbol, size_t size, const Cvc5Sort sorts[], Cvc5Sort sort, void *state, Cvc5Term (*fun)(size_t, const Cvc5Term*, void*))
+

Declare an oracle function with reference to an implementation.

+

Oracle functions have a different semantics with respect to ordinary declared functions. In particular, for an input to be satisfiable, its oracle functions are implicitly universally quantified.

+

This function is used in part for implementing this command:

+

(declare-oracle-fun <sym> (<sort>*) <sort> <sym>)

+

+

In particular, the above command is implemented by constructing a function over terms that wraps a call to binary sym via a text interface.

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • symbol – The name of the oracle

  • +
  • size – The number of domain sorts of the oracle function.

  • +
  • sorts – The domain sorts.

  • +
  • sort – The sort of the return value of this function.

  • +
  • state – The state data for the oracle function, may be NULL.

  • +
  • fun – The function that implements the oracle function, taking a an array of term arguments and its size and a void pointer to optionally capture any state data the function may need.

  • +
+
+
Returns:
+

The oracle function.

+
+
+
+ +
+
+void cvc5_add_plugin(Cvc5 *cvc5, Cvc5Plugin *plugin)
+

Add plugin to this solver. Its callbacks will be called throughout the lifetime of this solver.

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • plugin – The plugin to add to this solver.

  • +
+
+
+
+ +
+
+Cvc5Term cvc5_get_interpolant(Cvc5 *cvc5, Cvc5Term conj)
+

Get an interpolant.

+

Given that \(A \rightarrow B\) is valid, this function determines a term \(I\) over the shared variables of \(A\) and \(B\), such that \(A \rightarrow I\) and \(I \rightarrow B\) are valid, if such a term exits. \(A\) is the current set of assertions and \(B\) is the conjecture, given as conj.

+

SMT-LIB:

+

(get-interpolant <symbol> <conj>)
+
+
+

+
+

Note

+

In SMT-LIB, <symbol> assigns a symbol to the interpolant.

+
+
+

Note

+

Requires option +produce-interpolants to +be set to a mode different from none.

+
+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • conj – The conjecture term.

  • +
+
+
Returns:
+

The interpolant, if an interpolant exists, else the null term.

+
+
+
+ +
+
+Cvc5Term cvc5_get_interpolant_with_grammar(Cvc5 *cvc5, Cvc5Term conj, Cvc5Grammar grammar)
+

Get an interpolant

+

Given that \(A \rightarrow B\) is valid, this function determines a term \(I\) over the shared variables of \(A\) and \(B\), with respect to a given grammar, such that \(A \rightarrow I\) and \(I \rightarrow B\) are valid, if such a term exits. \(A\) is the current set of assertions and \(B\) is the conjecture, given as conj.

+

SMT-LIB:

+

(get-interpolant <symbol> <conj> <grammar>)
+
+
+

+
+

Note

+

In SMT-LIB, <symbol> assigns a symbol to the interpolant.

+
+
+

Note

+

Requires option +produce-interpolants to +be set to a mode different from none.

+
+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • conj – The conjecture term.

  • +
  • grammar – The grammar for the interpolant I.

  • +
+
+
Returns:
+

The interpolant, if an interpolant exists, else the null term.

+
+
+
+ +
+
+Cvc5Term cvc5_get_interpolant_next(Cvc5 *cvc5)
+

Get the next interpolant. Can only be called immediately after a successful call to get-interpolant or get-interpolant-next. Is guaranteed to produce a syntactically different interpolant wrt the last returned interpolant if successful.

+

SMT-LIB:

+

(get-interpolant-next)
+
+
+

Requires to enable incremental mode, and option +produce-interpolants to be set to +a mode different from none.

+

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+

cvc5 – The solver instance.

+
+
Returns:
+

A Term \(I\) such that \(A \rightarrow I\) and \(I \rightarrow B\) are valid, where \(A\) is the current set of assertions and \(B\) is given in the input by conj, or the null term if such a term cannot be found.

+
+
+
+ +
+
+Cvc5Term cvc5_get_abduct(Cvc5 *cvc5, Cvc5Term conj)
+

Get an abduct.

+

SMT-LIB:

+

(get-abduct <conj>)
+
+
+

Requires to enable option +produce-abducts.

+

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • conj – The conjecture term.

  • +
+
+
Returns:
+

A term \(C\) such that \((A \wedge C)\) is satisfiable, and \((A \wedge \neg B \wedge C)\) is unsatisfiable, where \(A\) is the current set of assertions and \(B\) is given in the input by conj, or the null term if such a term cannot be found.

+
+
+
+ +
+
+Cvc5Term cvc5_get_abduct_with_grammar(Cvc5 *cvc5, Cvc5Term conj, Cvc5Grammar grammar)
+

Get an abduct.

+

SMT-LIB:

+

(get-abduct <conj> <grammar>)
+
+
+

Requires to enable option +produce-abducts.

+

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • conj – The conjecture term.

  • +
  • grammar – The grammar for the abduct \(C\)

  • +
+
+
Returns:
+

A term C such that \((A \wedge C)\) is satisfiable, and \((A \wedge \neg B \wedge C)\) is unsatisfiable, where \(A\) is the current set of assertions and \(B\) is given in the input by conj, or the null term if such a term cannot be found.

+
+
+
+ +
+
+Cvc5Term cvc5_get_abduct_next(Cvc5 *cvc5)
+

Get the next abduct. Can only be called immediately after a successful call to get-abduct or get-abduct-next. Is guaranteed to produce a syntactically different abduct wrt the last returned abduct if successful.

+

SMT-LIB:

+

(get-abduct-next)
+
+
+

Requires to enable incremental mode, and option +produce-abducts.

+

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+

cvc5 – The solver instance.

+
+
Returns:
+

A term C such that \((A \wedge C)\) is satisfiable, and \((A \wedge \neg B \wedge C)\) is unsatisfiable, where \(A\) is the current set of assertions and \(B\) is given in the input by the last call to getAbduct(), or the null term if such a term cannot be found.

+
+
+
+ +
+
+void cvc5_block_model(Cvc5 *cvc5, Cvc5BlockModelsMode mode)
+

Block the current model. Can be called only if immediately preceded by a SAT or INVALID query.

+

SMT-LIB:

+

(block-model)
+
+
+

Requires enabling option +produce-models.

+

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • mode – The mode to use for blocking.

  • +
+
+
+
+ +
+
+void cvc5_block_model_values(Cvc5 *cvc5, size_t size, const Cvc5Term terms[])
+

Block the current model values of (at least) the values in terms. Can be called only if immediately preceded by a SAT query.

+

SMT-LIB:

+

(block-model-values ( <terms>+ ))
+
+
+

Requires enabling option +produce-models.

+

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • size – The number of values to block.

  • +
  • terms – The values to block.

  • +
+
+
+
+ +
+
+const char *cvc5_get_instantiations(Cvc5 *cvc5)
+
+

Note

+

The returned char* pointer is only valid until the next call to this function.

+
+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+

cvc5 – The solver instance.

+
+
Returns:
+

A string that contains information about all instantiations made by the quantifiers module.

+
+
+
+ +
+
+void cvc5_push(Cvc5 *cvc5, uint32_t nscopes)
+

Push (a) level(s) to the assertion stack.

+

SMT-LIB:

+

(push <numeral>)
+
+
+

+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • nscopes – The number of levels to push.

  • +
+
+
+
+ +
+
+void cvc5_pop(Cvc5 *cvc5, uint32_t nscopes)
+

Pop (a) level(s) from the assertion stack.

+

SMT-LIB:

+

(pop <numeral>)
+
+
+

+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • nscopes – The number of levels to pop.

  • +
+
+
+
+ +
+
+void cvc5_reset_assertions(Cvc5 *cvc5)
+

Remove all assertions.

+

SMT-LIB:

+

(reset-assertions)
+
+
+

+
+
Parameters:
+

cvc5 – The solver instance.

+
+
+
+ +
+
+void cvc5_set_info(Cvc5 *cvc5, const char *keyword, const char *value)
+

Set info.

+

SMT-LIB:

+

(set-info <attribute>)
+
+
+

+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • keyword – The info flag.

  • +
  • value – The value of the info flag.

  • +
+
+
+
+ +
+
+void cvc5_set_logic(Cvc5 *cvc5, const char *logic)
+

Set logic.

+

SMT-LIB:

+

(set-logic <symbol>)
+
+
+

+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • logic – The logic to set.

  • +
+
+
+
+ +
+
+bool cvc5_is_logic_set(Cvc5 *cvc5)
+

Determine if cvc5_set_logic() has been called.

+
+
Returns:
+

True if setLogic() has already been called for the given solver instance.

+
+
+
+ +
+
+const char *cvc5_get_logic(Cvc5 *cvc5)
+

Get the logic set the solver.

+
+

Note

+

Asserts `cvc5_is_logic_set()1.

+
+
+

Note

+

The returned char* pointer is only valid until the next call to this function.

+
+
+
Returns:
+

The logic used by the solver.

+
+
+
+ +
+
+void cvc5_set_option(Cvc5 *cvc5, const char *option, const char *value)
+

Set option.

+

SMT-LIB:

+

(set-option :<option> <value>)
+
+
+

+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • option – The option name.

  • +
  • value – The option value.

  • +
+
+
+
+ +
+
+Cvc5Term cvc5_declare_sygus_var(Cvc5 *cvc5, const char *symbol, Cvc5Sort sort)
+

Append symbol to the current list of universal variables.

+

SyGuS v2:

+

(declare-var <symbol> <sort>)
+
+
+

+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • sort – The sort of the universal variable.

  • +
  • symbol – The name of the universal variable.

  • +
+
+
Returns:
+

The universal variable.

+
+
+
+ +
+
+Cvc5Grammar cvc5_mk_grammar(Cvc5 *cvc5, size_t nbound_vars, const Cvc5Term bound_vars[], size_t nsymbols, const Cvc5Term symbols[])
+

Create a Sygus grammar. The first non-terminal is treated as the starting non-terminal, so the order of non-terminals matters.

+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • nbound_vars – The number of bound variabls.

  • +
  • bound_vars – The parameters to corresponding synth-fun/synth-inv.

  • +
  • nsymbols – The number of symbols.

  • +
  • symbols – The pre-declaration of the non-terminal symbols.

  • +
+
+
Returns:
+

The grammar.

+
+
+
+ +
+
+Cvc5Term cvc5_synth_fun(Cvc5 *cvc5, const char *symbol, size_t size, const Cvc5Term bound_vars[], Cvc5Sort sort)
+

Synthesize n-ary function.

+

SyGuS v2:

+

(synth-fun <symbol> ( <boundVars>* ) <sort>)
+
+
+

+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • symbol – The name of the function.

  • +
  • size – The number of parameters.

  • +
  • bound_vars – The parameters to this function.

  • +
  • sort – The sort of the return value of this function.

  • +
+
+
Returns:
+

The function.

+
+
+
+ +
+
+Cvc5Term cvc5_synth_fun_with_grammar(Cvc5 *cvc5, const char *symbol, size_t size, const Cvc5Term bound_vars[], Cvc5Sort sort, Cvc5Grammar grammar)
+

Synthesize n-ary function following specified syntactic constraints.

+

SyGuS v2:

+

(synth-fun <symbol> ( <boundVars>* ) <sort> <grammar>)
+
+
+

+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • symbol – The name of the function.

  • +
  • size – The number of parameters.

  • +
  • boundVars – The parameters to this function.

  • +
  • sort – The sort of the return value of this function.

  • +
  • grammar – The syntactic constraints.

  • +
+
+
Returns:
+

The function.

+
+
+
+ +
+
+void cvc5_add_sygus_constraint(Cvc5 *cvc5, Cvc5Term term)
+

Add a forumla to the set of Sygus constraints.

+

SyGuS v2:

+

(constraint <term>)
+
+
+

+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • term – The formula to add as a constraint.

  • +
+
+
+
+ +
+
+const Cvc5Term *cvc5_get_sygus_constraints(Cvc5 *cvc5, size_t *size)
+

Get the list of sygus constraints.

+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • size – The size of the resulting list of sygus constraints.

  • +
+
+
Returns:
+

The list of sygus constraints.

+
+
+
+ +
+
+void cvc5_add_sygus_assume(Cvc5 *cvc5, Cvc5Term term)
+

Add a forumla to the set of Sygus assumptions.

+

SyGuS v2:

+

(assume <term>)
+
+
+

+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • term – The formula to add as an assumption.

  • +
+
+
+
+ +
+
+const Cvc5Term *cvc5_get_sygus_assumptions(Cvc5 *cvc5, size_t *size)
+

Get the list of sygus assumptions.

+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • size – The size of the resulting list of sygus assumptions.

  • +
+
+
Returns:
+

The list of sygus assumptions.

+
+
+
+ +
+
+void cvc5_add_sygus_inv_constraint(Cvc5 *cvc5, Cvc5Term inv, Cvc5Term pre, Cvc5Term trans, Cvc5Term post)
+

Add a set of Sygus constraints to the current state that correspond to an invariant synthesis problem.

+

SyGuS v2:

+

(inv-constraint <inv> <pre> <trans> <post>)
+
+
+

+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • inv – The function-to-synthesize.

  • +
  • pre – The pre-condition.

  • +
  • trans – The transition relation.

  • +
  • post – The post-condition.

  • +
+
+
+
+ +
+
+Cvc5SynthResult cvc5_check_synth(Cvc5 *cvc5)
+

Try to find a solution for the synthesis conjecture corresponding to the current list of functions-to-synthesize, universal variables and constraints.

+

SyGuS v2:

+

(check-synth)
+
+
+

+
+
Parameters:
+

cvc5 – The solver instance.

+
+
Returns:
+

The result of the check, which is “solution” if the check found a solution in which case solutions are available via getSynthSolutions, “no solution” if it was determined there is no solution, or “unknown” otherwise.

+
+
+
+ +
+
+Cvc5SynthResult cvc5_check_synth_next(Cvc5 *cvc5)
+

Try to find a next solution for the synthesis conjecture corresponding to the current list of functions-to-synthesize, universal variables and constraints. Must be called immediately after a successful call to check-synth or check-synth-next.

+

+SyGuS v2:

+

(check-synth-next)
+
+
+

+
+

Note

+

Requires incremental mode.

+
+
+
Parameters:
+

cvc5 – The solver instance.

+
+
Returns:
+

The result of the check, which is “solution” if the check found a solution in which case solutions are available via getSynthSolutions, “no solution” if it was determined there is no solution, or “unknown” otherwise.

+
+
+
+ +
+
+Cvc5Term cvc5_get_synth_solution(Cvc5 *cvc5, Cvc5Term term)
+

Get the synthesis solution of the given term. This function should be called immediately after the solver answers unsat for sygus input.

+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • term – The term for which the synthesis solution is queried.

  • +
+
+
Returns:
+

The synthesis solution of the given term.

+
+
+
+ +
+
+const Cvc5Term *cvc5_get_synth_solutions(Cvc5 *cvc5, size_t size, const Cvc5Term terms[])
+

Get the synthesis solutions of the given terms. This function should be called immediately after the solver answers unsat for sygus input.

+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • size – The size of the terms array.

  • +
  • terms – The terms for which the synthesis solutions is queried.

  • +
+
+
Returns:
+

The synthesis solutions of the given terms.

+
+
+
+ +
+
+Cvc5Term cvc5_find_synth(Cvc5 *cvc5, Cvc5FindSynthTarget target)
+

Find a target term of interest using sygus enumeration, with no provided grammar.

+

The solver will infer which grammar to use in this call, which by default will be the grammars specified by the function(s)-to-synthesize in the current context.

+

SyGuS v2:

+

(find-synth :target)
+
+
+

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • target – The identifier specifying what kind of term to find

  • +
+
+
Returns:
+

The result of the find, which is the null term if this call failed.

+
+
+
+ +
+
+Cvc5Term cvc5_find_synth_with_grammar(Cvc5 *cvc5, Cvc5FindSynthTarget target, Cvc5Grammar grammar)
+

Find a target term of interest using sygus enumeration with a provided grammar.

+

SyGuS v2:

+

(find-synth :target G)
+
+
+

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • target – The identifier specifying what kind of term to find

  • +
  • grammar – The grammar for the term

  • +
+
+
Returns:
+

The result of the find, which is the null term if this call failed.

+
+
+
+ +
+
+Cvc5Term cvc5_find_synth_next(Cvc5 *cvc5)
+

Try to find a next target term of interest using sygus enumeration. Must be called immediately after a successful call to find-synth or find-synth-next.

+

SyGuS v2:

+

(find-synth-next)
+
+
+

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+

cvc5 – The solver instance.

+
+
Returns:
+

The result of the find, which is the null term if this call failed.

+
+
+
+ +
+
+Cvc5Statistics cvc5_get_statistics(Cvc5 *cvc5)
+

Get a snapshot of the current state of the statistic values of this solver. The returned object is completely decoupled from the solver and will not change when the solver is used again.

+
+
Parameters:
+

cvc5 – The solver instance.

+
+
Returns:
+

A snapshot of the current state of the statistic values.

+
+
+
+ +
+
+void cvc5_print_stats_safe(Cvc5 *cvc5, int fd)
+

Print the statistics to the given file descriptor, suitable for usage in signal handlers.

+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • fd – The file descriptor.

  • +
+
+
+
+ +
+
+bool cvc5_is_output_on(Cvc5 *cvc5, const char *tag)
+

Determines if the output stream for the given tag is enabled. Tags can be enabled with the output option (and -o <tag> on the command line).

+
+

Note

+

Requires that a valid tag is given.

+
+
+
Parameters:
+

cvc5 – The solver instance.

+
+
Returns:
+

True if the given tag is enabled.

+
+
+
+ +
+
+void cvc5_get_output(Cvc5 *cvc5, const char *tag, const char *filename)
+

Configure a file to write the output for a given tag.

+

Tags can be enabled with the output option (and -o <tag> on the command line). Requires that the given tag is valid.

+
+

Note

+

Close file filename before reading via cvc5_close_output().

+
+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • tag – The output tag.

  • +
  • filename – The file to write the output to. Use <stdout> to configure to write to stdout.

  • +
+
+
+
+ +
+
+void cvc5_close_output(Cvc5 *cvc5, const char *filename)
+

Close output file configured for an output tag via cvc5_get_output().

+
+

Note

+

This is required before reading the file.

+
+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • filename – The file to close.

  • +
+
+
+
+ +
+
+const char *cvc5_get_version(Cvc5 *cvc5)
+

Get a string representation of the version of this solver.

+
+

Note

+

The returned char* pointer is only valid until the next call to this function.

+
+
+
Parameters:
+

cvc5 – The solver instance.

+
+
Returns:
+

The version string.

+
+
+
+ +
+
+const char *cvc5_proof_to_string(Cvc5 *cvc5, Cvc5Proof proof, Cvc5ProofFormat format, size_t size, const Cvc5Term assertions[], const char *names[])
+

Prints a proof as a string in a selected proof format mode. Other aspects of printing are taken from the solver options.

+
+

Note

+

The returned char* pointer is only valid until the next call to this function.

+
+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+
    +
  • cvc5 – The solver instance.

  • +
  • proof – A proof, usually obtained from Solver::getProof().

  • +
  • format – The proof format used to print the proof. Must be modes::ProofFormat::NONE if the proof is from a component other than modes::ProofComponent::FULL.

  • +
  • size – The number of assertions to names mappings given.

  • +
  • assertions – The list of assertions that are mapped to assertions_names. May be NULL if assertions_size is 0.

  • +
  • names – The names of the assertions (1:1 mapping). May by NULL if assertions is NULL.

  • +
+
+
Returns:
+

The string representation of the proof in the given format.

+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5command.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5command.html new file mode 100644 index 0000000000..dfc0debd32 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5command.html @@ -0,0 +1,239 @@ + + + + + + + + + + + + + Cvc5Command — cvc5 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Cvc5Command

+

Encapsulation of a command. +Commands are constructed by the input parser and +can be invoked on the solver and symbol manager.

+
+
+
+
+
+
+
+typedef struct cvc5_cmd_t *Cvc5Command
+

Encapsulation of a command.

+

Commands are constructed by the input parser and can be invoked on the solver and symbol manager.

+
+ +
+
+
+const char *cvc5_cmd_invoke(Cvc5Command cmd, Cvc5 *cvc5, Cvc5SymbolManager *sm)
+

Invoke a given command on the solver and symbol manager sm and return any resulting output as a string.

+
+

Note

+

The returned char* pointer is only valid until the next call to this function.

+
+
+
Parameters:
+
    +
  • cmd – The command to invoke.

  • +
  • solver – The solver to invoke the command on.

  • +
  • sm – The symbol manager to invoke the command on.

  • +
+
+
Returns:
+

The output of invoking the command.

+
+
+
+ +
+
+const char *cvc5_cmd_to_string(const Cvc5Command cmd)
+

Get a string representation of this command.

+
+

Note

+

The returned char* pointer is only valid until the next call to this function.

+
+
+
Returns:
+

The string representation.

+
+
+
+ +
+
+const char *cvc5_cmd_get_name(const Cvc5Command cmd)
+

Get the name for a given command, e.g., “assert”.

+
+

Note

+

The returned char* pointer is only valid until the next call to this function.

+
+
+
Returns:
+

The name of the command.

+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5datatype.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5datatype.html new file mode 100644 index 0000000000..2a9643d316 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5datatype.html @@ -0,0 +1,476 @@ + + + + + + + + + + + + + Cvc5Datatype — cvc5 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Cvc5Datatype

+

This struct represents a datatype. A Cvc5Datatype is encapsulated +by a datatype sort and can be retrieved from a +datatype sort via cvc5_sort_get_datatype(). +Datatypes are specified by a Cvc5DatatypeDecl via +cvc5_mk_dt_decl() when constructing a datatype sort.

+
+
+
+
+
+
+
+typedef struct cvc5_dt_t *Cvc5Datatype
+

A cvc5 datatype.

+
+ +
+
+
+Cvc5Datatype cvc5_dt_copy(Cvc5Datatype dt)
+

Make copy of datatype, increases reference counter of dt.

+
+

Note

+

This step is optional and allows users to manage resources in a more fine-grained manner.

+
+
+
Parameters:
+

dt – The datatype to copy.

+
+
Returns:
+

The same datatype with its reference count increased by one.

+
+
+
+ +
+
+void cvc5_dt_release(Cvc5Datatype dt)
+

Release copy of datatype, decrements reference counter of dt.

+
+

Note

+

This step is optional and allows users to release resources in a more fine-grained manner. Further, any API function that returns a Cvc5Datatype returns a copy that is owned by the callee of the function and thus, can be released.

+
+
+
Parameters:
+

dt – The datatype to release.

+
+
+
+ +
+
+bool cvc5_dt_is_equal(Cvc5Datatype a, Cvc5Datatype b)
+

Compare two datatypes for structural equality.

+
+
Parameters:
+
    +
  • a – The first datatype.

  • +
  • b – The second datatype.

  • +
+
+
Returns:
+

True if the datatypes are equal.

+
+
+
+ +
+
+Cvc5DatatypeConstructor cvc5_dt_get_constructor(Cvc5Datatype dt, size_t idx)
+

Get the datatype constructor of a given datatype at a given index.

+
+
Parameters:
+
    +
  • dt – The datatype.

  • +
  • idx – The index of the datatype constructor to return.

  • +
+
+
Returns:
+

The datatype constructor with the given index.

+
+
+
+ +
+
+Cvc5DatatypeConstructor cvc5_dt_get_constructor_by_name(Cvc5Datatype dt, const char *name)
+

Get the datatype constructor of a given datatype with the given name.

+
+

Note

+

This is a linear search through the constructors, so in case of multiple, similarly-named constructors, the first is returned.

+
+
+
Parameters:
+
    +
  • dt – The datatype.

  • +
  • name – The name of the datatype constructor.

  • +
+
+
Returns:
+

The datatype constructor with the given name.

+
+
+
+ +
+
+Cvc5DatatypeSelector cvc5_dt_get_selector(Cvc5Datatype dt, const char *name)
+

Get the datatype selector of a given datatype with the given name.

+
+

Note

+

This is a linear search through the constructors and their selectors, so in case of multiple, similarly-named selectors, the first is returned.

+
+
+
Parameters:
+
    +
  • dt – The datatype.

  • +
  • name – The name of the datatype selector.

  • +
+
+
Returns:
+

The datatype selector with the given name.

+
+
+
+ +
+
+const char *cvc5_dt_get_name(Cvc5Datatype dt)
+

Get the name of a given datatype.

+
+

Note

+

The returned char* pointer is only valid until the next call to this function.

+
+
+
Parameters:
+

dt – The datatype.

+
+
Returns:
+

The name.

+
+
+
+ +
+
+size_t cvc5_dt_get_num_constructors(Cvc5Datatype dt)
+

Get the number of constructors of a given datatype.

+
+
Parameters:
+

dt – The datatype.

+
+
Returns:
+

The number of constructors.

+
+
+
+ +
+
+const Cvc5Sort *cvc5_dt_get_parameters(Cvc5Datatype dt, size_t *size)
+

Get the parameters of a given datatype, if it is parametric.

+
+

Note

+

Asserts that this datatype is parametric.

+
+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+
    +
  • dt – The datatype.

  • +
  • size – The size of the resulting array.

  • +
+
+
Returns:
+

The parameters of this datatype.

+
+
+
+ +
+
+bool cvc5_dt_is_parametric(Cvc5Datatype dt)
+

Determine if a given datatype is parametric.

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+

dt – The datatype.

+
+
Returns:
+

True if the datatype is parametric.

+
+
+
+ +
+
+bool cvc5_dt_is_codatatype(Cvc5Datatype dt)
+

Determine if a given datatype corresponds to a co-datatype.

+
+
Parameters:
+

dt – The datatype.

+
+
Returns:
+

True if the datatype corresponds to a co-datatype.

+
+
+
+ +
+
+bool cvc5_dt_is_tuple(Cvc5Datatype dt)
+

Determine if a given datatype corresponds to a tuple.

+
+
Parameters:
+

dt – The datatype.

+
+
Returns:
+

True if this datatype corresponds to a tuple.

+
+
+
+ +
+
+bool cvc5_dt_is_record(Cvc5Datatype dt)
+

Determine if a given datatype corresponds to a record.

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+

dt – The datatype.

+
+
Returns:
+

True if the datatype corresponds to a record.

+
+
+
+ +
+
+bool cvc5_dt_is_finite(Cvc5Datatype dt)
+

Determine if a given datatype is finite.

+
+
Parameters:
+

dt – The datatype.

+
+
Returns:
+

True if the datatype is finite.

+
+
+
+ +
+
+bool cvc5_dt_is_well_founded(Cvc5Datatype dt)
+

Determine if a given datatype is well-founded.

+

If the datatype is not a codatatype, this returns false if there are no values of the datatype that are of finite size.

+
+
Parameters:
+

dt – The datatype.

+
+
Returns:
+

True if the datatype is well-founded.

+
+
+
+ +
+
+const char *cvc5_dt_to_string(Cvc5Datatype dt)
+

Get a string representation of a given datatype.

+
+

Note

+

The returned char* pointer is only valid until the next call to this function.

+
+
+
Returns:
+

The string representation.

+
+
+
+ +
+
+size_t cvc5_dt_hash(Cvc5Datatype dt)
+

Compute the hash value of a datatype.

+
+
Parameters:
+

term – The datatype.

+
+
Returns:
+

The hash value of the datatype.

+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5datatypeconstructor.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5datatypeconstructor.html new file mode 100644 index 0000000000..dc60a783d3 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5datatypeconstructor.html @@ -0,0 +1,408 @@ + + + + + + + + + + + + + Cvc5DatatypeConstructor — cvc5 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Cvc5DatatypeConstructor

+

This struct represents a datatype constructor. Datatype constructors are +specified by a datatype constructor declaration via cvc5_mk_dt_cons_decl() when +constructing a datatype sort and can be retrieved from a +Cvc5Datatype via cvc5_dt_get_constructor().

+
+
+
+
+
+
+
+typedef struct cvc5_dt_cons_t *Cvc5DatatypeConstructor
+

A cvc5 datatype constructor.

+
+ +
+
+
+Cvc5DatatypeConstructor cvc5_dt_cons_copy(Cvc5DatatypeConstructor cons)
+

Make copy of datatype constructor, increases reference counter of cons.

+
+

Note

+

This step is optional and allows users to manage resources in a more fine-grained manner.

+
+
+
Parameters:
+

cons – The datatype constructor to copy.

+
+
Returns:
+

The same datatype constructor with its reference count increased by one.

+
+
+
+ +
+
+void cvc5_dt_cons_release(Cvc5DatatypeConstructor cons)
+

Release copy of datatype constructor, decrements reference counter of cons.

+
+

Note

+

This step is optional and allows users to release resources in a more fine-grained manner. Further, any API function that returns a Cvc5DatatypeConstructor returns a copy that is owned by the callee of the function and thus, can be released.

+
+
+
Parameters:
+

cons – The datatype constructor to release.

+
+
+
+ +
+
+bool cvc5_dt_cons_is_equal(Cvc5DatatypeConstructor a, Cvc5DatatypeConstructor b)
+

Compare two datatype constructors for structural equality.

+
+
Parameters:
+
    +
  • a – The first datatype constructor.

  • +
  • b – The second datatype constructor.

  • +
+
+
Returns:
+

True if the datatype constructors are equal.

+
+
+
+ +
+
+const char *cvc5_dt_cons_get_name(Cvc5DatatypeConstructor cons)
+

Get the name of a given datatype constructor.

+
+

Note

+

The returned char* pointer is only valid until the next call to this function.

+
+
+
Parameters:
+

cons – The datatype constructor.

+
+
Returns:
+

The name.

+
+
+
+ +
+
+Cvc5Term cvc5_dt_cons_get_term(Cvc5DatatypeConstructor cons)
+

Get the constructor term of a given datatype constructor.

+

Datatype constructors are a special class of function-like terms whose sort is datatype constructor (cvc5_sort_is_dt_constructor()). All datatype constructors, including nullary ones, should be used as the first argument to Terms whose kind is CVC5_KIND_APPLY_CONSTRUCTOR. For example, the nil list can be constructed by cvc5_mk_term(CVC5_KIND_APPLY_CONSTRUCTOR, {t}), where t is the term returned by this function.

+
+

Note

+

This function should not be used for parametric datatypes. Instead, use the function cvc5_dt_cons_get_instantiated_term() below.

+
+
+
Parameters:
+

cons – The datatype constructor.

+
+
Returns:
+

The constructor term.

+
+
+
+ +
+
+Cvc5Term cvc5_dt_cons_get_instantiated_term(Cvc5DatatypeConstructor cons, Cvc5Sort sort)
+

Get the constructor term of this datatype constructor whose return type is sort.

+

This function is intended to be used on constructors of parametric datatypes and can be seen as returning the constructor term that has been explicitly cast to the given sort.

+

This function is required for constructors of parametric datatypes whose return type cannot be determined by type inference. For example, given:

+

(declare-datatype List
+    (par (T) ((nil) (cons (head T) (tail (List T))))))
+
+
+

+

The type of nil terms must be provided by the user. In SMT version 2.6, this is done via the syntax for qualified identifiers:

+

(as nil (List Int))
+
+
+

+

This function is equivalent of applying the above, where the datatype constructor is the one corresponding to nil, and sort is (List Int).

+
+

Note

+

The returned constructor term t is used to construct the above (nullary) application of nil with cvc5_mk_term(CVC5_KIND_APPLY_CONSTRUCTOR, {t}).

+
+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+
    +
  • cons – The datatype constructor.

  • +
  • sort – The desired return sort of the constructor.

  • +
+
+
Returns:
+

The constructor term.

+
+
+
+ +
+
+Cvc5Term cvc5_dt_cons_get_tester_term(Cvc5DatatypeConstructor cons)
+

Get the tester term of a given datatype constructor.

+

Similar to constructors, testers are a class of function-like terms of tester sort (cvc5_sort_is_dt_constructor()) which should be used as the first argument of Terms of kind CVC5_KIND_APPLY_TESTER.

+
+
Parameters:
+

cons – The datatype constructor.

+
+
Returns:
+

The tester term.

+
+
+
+ +
+
+size_t cvc5_dt_cons_get_num_selectors(Cvc5DatatypeConstructor cons)
+

Get the number of selectors of a given datatype constructor.

+
+
Parameters:
+

cons – The datatype constructor.

+
+
Returns:
+

The number of selectors.

+
+
+
+ +
+
+Cvc5DatatypeSelector cvc5_dt_cons_get_selector(Cvc5DatatypeConstructor cons, size_t index)
+

Get the selector at index i of a given datatype constructor.

+
+
Parameters:
+

cons – The datatype constructor.

+
+
Returns:
+

The i^th DatatypeSelector.

+
+
+
+ +
+
+Cvc5DatatypeSelector cvc5_dt_cons_get_selector_by_name(Cvc5DatatypeConstructor cons, const char *name)
+

Get the datatype selector with the given name.

+
+

Note

+

This is a linear search through the selectors, so in case of multiple, similarly-named selectors, the first is returned.

+
+
+
Parameters:
+
    +
  • cons – The datatype constructor.

  • +
  • name – The name of the datatype selector.

  • +
+
+
Returns:
+

The first datatype selector with the given name.

+
+
+
+ +
+
+const char *cvc5_dt_cons_to_string(Cvc5DatatypeConstructor cons)
+

Get a string representation of a given datatype constructor.

+
+

Note

+

The returned char* pointer is only valid until the next call to this function.

+
+
+
Parameters:
+

cons – The datatype constructor.

+
+
Returns:
+

The string representation.

+
+
+
+ +
+
+size_t cvc5_dt_cons_hash(Cvc5DatatypeConstructor cons)
+

Compute the hash value of a datatype constructor.

+
+
Parameters:
+

term – The datatype constructor.

+
+
Returns:
+

The hash value of the datatype constructor.

+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5datatypeconstructordecl.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5datatypeconstructordecl.html new file mode 100644 index 0000000000..ab8babc4e5 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5datatypeconstructordecl.html @@ -0,0 +1,193 @@ + + + + + + + + + + + + + Cvc5DatatypeConstructorDecl — cvc5 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Cvc5DatatypeConstructorDecl

+

This struct encapsulates a datatype constructor declaration. +A Cvc5DatatypeConstructorDecl +is constructed via cvc5_mk_dt_cons_decl(). +This is not yet a datatype constructor datatype constructor itself, but the representation of the specification +for creating a datatype constructor of a datatype sort +via cvc5_mk_dt_sort() and cvc5_mk_dt_sorts().

+
+
+
+
+
+
+
+typedef struct cvc5_dt_cons_decl_t *Cvc5DatatypeConstructorDecl
+

A cvc5 datatype constructor declaration. A datatype constructor declaration is a specification used for creating a datatype constructor.

+
+ +
+
+

Warning

+

doxygengroup: Cannot find group “c_cvc5dtconsdecl” in doxygen xml output for project “cvc5_c” from directory: /home/runner/work/cvc5/cvc5/build-shared/docs/api/c/doxygen/xml

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5datatypedecl.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5datatypedecl.html new file mode 100644 index 0000000000..20e56bb1de --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5datatypedecl.html @@ -0,0 +1,354 @@ + + + + + + + + + + + + + Cvc5DatatypeDecl — cvc5 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Cvc5DatatypeDecl

+

This struct encapsulates a datatype declaration. A Cvc5DatatypeDecl +is constructed via cvc5_mk_dt_decl(). +This is not a datatype itself, but the representation of +the specification for creating a datatype sort via +cvc5_mk_dt_sort() and cvc5_mk_dt_sorts().

+
+
+
+
+
+
+
+typedef struct cvc5_dt_decl_t *Cvc5DatatypeDecl
+

A cvc5 datatype declaration. A datatype declaration is not itself a datatype (see Datatype), but a specification for creating a datatype sort.

+

The interface for a datatype declaration coincides with the syntax for the SMT-LIB 2.6 command declare-datatype, or a single datatype within the declare-datatypes command.

+

Datatype sorts can be constructed from a Cvc5DatatypeDecl using:

    +
  • cvc5_mk_datatype_sort()

  • +
  • cvc5_mk_datatype_sorts()

  • +
+

+
+ +
+
+
+Cvc5DatatypeDecl cvc5_dt_decl_copy(Cvc5DatatypeDecl decl)
+

Make copy of datatype declaration, increases reference counter of decl.

+
+

Note

+

This step is optional and allows users to manage resources in a more fine-grained manner.

+
+
+
Parameters:
+

decl – The datatype declaration to copy.

+
+
Returns:
+

The same datatype declarationwith its reference count increased by one.

+
+
+
+ +
+
+void cvc5_dt_decl_release(Cvc5DatatypeDecl decl)
+

Release copy of datatype declaration, decrements reference counter of decl.

+
+

Note

+

This step is optional and allows users to release resources in a more fine-grained manner. Further, any API function that returns a Cvc5DatatypeDecl returns a copy that is owned by the callee of the function and thus, can be released.

+
+
+
Parameters:
+

decl – The datatype declaration to release.

+
+
+
+ +
+
+bool cvc5_dt_decl_is_equal(Cvc5DatatypeDecl a, Cvc5DatatypeDecl b)
+

Compare two datatype declarations for structural equality.

+
+
Parameters:
+
    +
  • a – The first datatype declaration.

  • +
  • b – The second datatype declaration.

  • +
+
+
Returns:
+

True if the datatype declarations are equal.

+
+
+
+ +
+
+void cvc5_dt_decl_add_constructor(Cvc5DatatypeDecl decl, Cvc5DatatypeConstructorDecl ctor)
+

Add datatype constructor declaration.

+
+
Parameters:
+
    +
  • decl – The datatype declaration.

  • +
  • ctor – The datatype constructor declaration to add.

  • +
+
+
+
+ +
+
+size_t cvc5_dt_decl_get_num_constructors(Cvc5DatatypeDecl decl)
+

Get the number of constructors for a given Datatype declaration.

+
+
Parameters:
+

decl – The datatype declaration.

+
+
Returns:
+

The number of constructors.

+
+
+
+ +
+
+bool cvc5_dt_decl_is_parametric(Cvc5DatatypeDecl decl)
+

Determine if a given Datatype declaration is parametric.

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+

decl – The datatype declaration.

+
+
Returns:
+

True if the datatype declaration is parametric.

+
+
+
+ +
+
+bool cvc5_dt_decl_is_resolved(Cvc5DatatypeDecl decl)
+

Determine if a given datatype declaration is resolved (has already been used to declare a datatype).

+
+
Parameters:
+

decl – The datatype declaration.

+
+
Returns:
+

True if the datatype declaration is resolved.

+
+
+
+ +
+
+const char *cvc5_dt_decl_to_string(Cvc5DatatypeDecl decl)
+

Get a string representation of a given datatype declaration.

+
+

Note

+

The returned char* pointer is only valid until the next call to this function.

+
+
+
Parameters:
+

decl – The datatype declaration.

+
+
Returns:
+

A string representation of the datatype declaration.

+
+
+
+ +
+
+const char *cvc5_dt_decl_get_name(Cvc5DatatypeDecl decl)
+

Get the name of a given datatype declaration.

+
+

Note

+

The returned char* pointer is only valid until the next call to this function.

+
+
+
Parameters:
+

decl – The datatype declaration.

+
+
Returns:
+

The name of the datatype declaration.

+
+
+
+ +
+
+size_t cvc5_dt_decl_hash(Cvc5DatatypeDecl decl)
+

Compute the hash value of a datatype declaration.

+
+
Parameters:
+

term – The datatype declaration.

+
+
Returns:
+

The hash value of the datatype declaration.

+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5datatypeselector.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5datatypeselector.html new file mode 100644 index 0000000000..3d305ccd4b --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5datatypeselector.html @@ -0,0 +1,334 @@ + + + + + + + + + + + + + Cvc5DatatypeSelector — cvc5 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Cvc5DatatypeSelector

+

This struct represents a datatype selector. A Cvc5DatatypeSelector +is specified via cvc5_dt_cons_decl_add_selector(), +cvc5_dt_cons_decl_add_selector_self() +and cvc5_dt_cons_decl_add_selector_unresolved(), +when constructing a datatype sort and can be retrieved from a +Cvc5DatatypeConstructor via +cvc5_dt_cons_get_selector().

+
+
+
+
+
+
+
+typedef struct cvc5_dt_sel_t *Cvc5DatatypeSelector
+

A cvc5 datatype selector.

+
+ +
+
+
+Cvc5DatatypeSelector cvc5_dt_sel_copy(Cvc5DatatypeSelector sel)
+

Make copy of datatype selector, increases reference counter of sel.

+
+

Note

+

This step is optional and allows users to manage resources in a more fine-grained manner.

+
+
+
Parameters:
+

sel – The datatype selector to copy.

+
+
Returns:
+

The same datatype selector with its reference count increased by one.

+
+
+
+ +
+
+void cvc5_dt_sel_release(Cvc5DatatypeSelector sel)
+

Release copy of datatype selector, decrements reference counter of sel.

+
+

Note

+

This step is optional and allows users to release resources in a more fine-grained manner. Further, any API function that returns a Cvc5DatatypeSelector returns a copy that is owned by the callee of the function and thus, can be released.

+
+
+
Parameters:
+

sel – The datatype selector to release.

+
+
+
+ +
+
+bool cvc5_dt_sel_is_equal(Cvc5DatatypeSelector a, Cvc5DatatypeSelector b)
+

Compare two datatype selectors for structural equality.

+
+
Parameters:
+
    +
  • a – The first datatype selector.

  • +
  • b – The second datatype selector.

  • +
+
+
Returns:
+

True if the datatype selectors are equal.

+
+
+
+ +
+
+const char *cvc5_dt_sel_get_name(Cvc5DatatypeSelector sel)
+

Get the name of a given datatype selector.

+
+

Note

+

The returned char* pointer is only valid until the next call to this function.

+
+
+
Parameters:
+

sel – The datatype selector.

+
+
Returns:
+

The name of the Datatype selector.

+
+
+
+ +
+
+Cvc5Term cvc5_dt_sel_get_term(Cvc5DatatypeSelector sel)
+

Get the selector term of a given datatype selector.

+

Selector terms are a class of function-like terms of selector sort (cvc5_sort_is_dt_selector()), and should be used as the first argument of Terms of kind CVC5_KIND_APPLY_SELECTOR.

+
+
Parameters:
+

sel – The datatype selector.

+
+
Returns:
+

The selector term.

+
+
+
+ +
+
+Cvc5Term cvc5_dt_sel_get_updater_term(Cvc5DatatypeSelector sel)
+

Get the updater term of a given datatype selector.

+

Similar to selectors, updater terms are a class of function-like terms of updater Sort (cvc5_sort_is_dt_updater()), and should be used as the first argument of Terms of kind CVC5_KIND_APPLY_UPDATER.

+
+
Parameters:
+

sel – The datatype selector.

+
+
Returns:
+

The updater term.

+
+
+
+ +
+
+Cvc5Sort cvc5_dt_sel_get_codomain_sort(Cvc5DatatypeSelector sel)
+

Get the codomain sort of a given datatype selector.

+
+
Parameters:
+

sel – The datatype selector.

+
+
Returns:
+

The codomain sort of the selector.

+
+
+
+ +
+
+const char *cvc5_dt_sel_to_string(Cvc5DatatypeSelector sel)
+

Get the string representation of a given datatype selector.

+
+

Note

+

The returned char* pointer is only valid until the next call to this function.

+
+
+
Parameters:
+

sel – The datatype selector.

+
+
Returns:
+

The string representation.

+
+
+
+ +
+
+size_t cvc5_dt_sel_hash(Cvc5DatatypeSelector sel)
+

Compute the hash value of a datatype selector.

+
+
Parameters:
+

term – The datatype selector.

+
+
Returns:
+

The hash value of the datatype selector.

+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5grammar.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5grammar.html new file mode 100644 index 0000000000..31376e54c2 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5grammar.html @@ -0,0 +1,344 @@ + + + + + + + + + + + + + Cvc5Grammar — cvc5 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Cvc5Grammar

+

This struct encapsulates a SyGuS grammar. It is created via +cvc5_mk_grammar() and allows to define a context-free grammar of +terms, according to the definition of grammars in the SyGuS IF 2.1 standard.

+
+
+
+
+
+
+
+typedef struct cvc5_grammar_t *Cvc5Grammar
+

A Sygus Grammar. This can be used to define a context-free grammar of terms. Its interface coincides with the definition of grammars (GrammarDef) in the SyGuS IF 2.1 standard.

+
+ +
+
+
+void cvc5_grammar_add_rule(Cvc5Grammar grammar, Cvc5Term symbol, Cvc5Term rule)
+

Add rule to the set of rules corresponding to symbol of a given grammar.

+
+
Parameters:
+
    +
  • grammar – The grammar.

  • +
  • symbol – The non-terminal to which the rule is added.

  • +
  • rule – The rule to add.

  • +
+
+
+
+ +
+
+void cvc5_grammar_add_rules(Cvc5Grammar grammar, Cvc5Term symbol, size_t size, const Cvc5Term rules[])
+

Add rules to the set of rules corresponding to symbol of a given grammar.

+
+
Parameters:
+
    +
  • grammar – The grammar.

  • +
  • symbol – The non-terminal to which the rules are added.

  • +
  • size – The number of rules to add.

  • +
  • rules – The rules to add.

  • +
+
+
+
+ +
+
+void cvc5_grammar_add_any_constant(Cvc5Grammar grammar, Cvc5Term symbol)
+

Allow symbol to be an arbitrary constant of a given grammar.

+
+
Parameters:
+
    +
  • grammar – The grammar.

  • +
  • symbol – The non-terminal allowed to be any constant.

  • +
+
+
+
+ +
+
+void cvc5_grammar_add_any_variable(Cvc5Grammar grammar, Cvc5Term symbol)
+

Allow symbol to be any input variable of a given grammar to corresponding synth-fun/synth-inv with the same sort as symbol.

+
+
Parameters:
+
    +
  • grammar – The grammar.

  • +
  • symbol – The non-terminal allowed to be any input variable.

  • +
+
+
+
+ +
+
+const char *cvc5_grammar_to_string(const Cvc5Grammar grammar)
+

Get a string representation of a given grammar.

+
+

Note

+

The returned char* pointer is only valid until the next call to this function.

+
+
+
Parameters:
+

grammar – The grammar.

+
+
Returns:
+

A string representation of the grammar.

+
+
+
+ +
+
+bool cvc5_grammar_is_equal(Cvc5Grammar a, Cvc5Grammar b)
+

Compare two grammars for referential equality.

+
+
Parameters:
+
    +
  • a – The first grammar.

  • +
  • b – The second grammar.

  • +
+
+
Returns:
+

True if both grammar pointers point to the same internal grammar object.

+
+
+
+ +
+
+bool cvc5_grammar_is_disequal(Cvc5Grammar a, Cvc5Grammar b)
+

Compare two grammars for referential disequality.

+
+
Parameters:
+
    +
  • a – The first grammar.

  • +
  • b – The second grammar.

  • +
+
+
Returns:
+

True if both grammar pointers point to different internal grammar objects.

+
+
+
+ +
+
+size_t cvc5_grammar_hash(Cvc5Grammar grammar)
+

Compute the hash value of a grammar.

+
+
Parameters:
+

grammar – The grammar.

+
+
Returns:
+

The hash value of the grammar.

+
+
+
+ +
+
+Cvc5Grammar cvc5_grammar_copy(Cvc5Grammar grammar)
+

Make copy of grammar, increases reference counter of grammar.

+
+

Note

+

This step is optional and allows users to manage resources in a more fine-grained manner.

+
+
+
Parameters:
+

grammar – The grammar to copy.

+
+
Returns:
+

The same grammar with its reference count increased by one.

+
+
+
+ +
+
+void cvc5_grammar_release(Cvc5Grammar grammar)
+

Release copy of grammar, decrements reference counter of grammar.

+
+

Note

+

This step is optional and allows users to release resources in a more fine-grained manner. Further, any API function that returns a copy that is owned by the callee of the function and thus, can be released.

+
+
+
Parameters:
+

grammar – The grammar to release.

+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5inputparser.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5inputparser.html new file mode 100644 index 0000000000..ea2fcb99c9 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5inputparser.html @@ -0,0 +1,192 @@ + + + + + + + + + + + + + Cvc5InputParser — cvc5 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Cvc5InputParser

+

This struct is the main interface for retrieving commands and expressions from an input.

+
+
+
+
+
+
+
+typedef struct Cvc5InputParser Cvc5InputParser
+

This struct is the main interface for retrieving commands and expressions from an input using a parser.

+

After construction, it is expected that an input is first configure via, e.g., cvc5_parser_set_file_input(), cvc5_parser_set_str_input() or cvc5_parser_set_inc_str_input() and cvc5_parser_append_inc_str_input(). Then, functions cvc5_parser_next_command() and cvc5_parser_next_term() can be invoked to parse the input.

+

The input parser interacts with a symbol manager, which determines which symbols are defined in the current context, based on the background logic and user-defined symbols. If no symbol manager is provided, then the input parser will construct (an initially empty) one.

+

If provided, the symbol manager must have a logic that is compatible with the provided solver. That is, if both the solver and symbol manager have their logics set (cvc5_sm_is_logic_set() and cvc5_is_logic_set()), then their logics must be the same.

+

Upon setting an input source, if either the solver (resp. symbol manager) has its logic set, then the symbol manager (resp. solver) is set to use that logic, if its logic is not already set.

+
+ +
+
+

Warning

+

doxygengroup: Cannot find group “c_cvc5inputparser” in doxygen xml output for project “cvc5_c” from directory: /home/runner/work/cvc5/cvc5/build-shared/docs/api/c/doxygen/xml

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5op.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5op.html new file mode 100644 index 0000000000..76ced3d71b --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5op.html @@ -0,0 +1,354 @@ + + + + + + + + + + + + + Cvc5Op — cvc5 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Cvc5Op

+

The Cvc5Op struct represents a cvc5 operator, instantiated with +the parameters it requires (if any).

+

A Cvc5Term of operator kind that does not require additional +parameters, e.g., CVC5_KIND_ADD, is usually constructed via +Cvc5Term cvc5_mk_term(Cvc5TermManager* tm, Cvc5Kind kind, size_t size, const Cvc5Term args[])(). +Alternatively, any Cvc5Term can be constructed via first +instantiating a corresponding Cvc5Op, even if the operator does +not require additional parameters. +Terms with operators that require additional parameters, e.g., +CVC5_KIND_BITVECTOR_EXTRACT, must be created via +cvc5_mk_op() (or cvc5_mk_op_from_str()) and +cvc5_mk_term_from_op().

+
+
+
+
+
+
+
+typedef struct cvc5_op_t *Cvc5Op
+

A cvc5 operator.

+

An operator is a term that represents certain operators, instantiated with its required parameters, e.g., a Term of kind CVC5_KIND_BITVECTOR_EXTRACT.

+
+ +
+
+
+Cvc5Op cvc5_op_copy(Cvc5Op op)
+

Make copy of operator, increases reference counter of op.

+
+

Note

+

This step is optional and allows users to manage resources in a more fine-grained manner.

+
+
+
Parameters:
+

op – The op to copy.

+
+
Returns:
+

The same op with its reference count increased by one.

+
+
+
+ +
+
+void cvc5_op_release(Cvc5Op op)
+

Release copy of operator, decrements reference counter of op.

+
+

Note

+

This step is optional and allows users to release resources in a more fine-grained manner. Further, any API function that returns a Cvc5Op returns a copy that is owned by the callee of the function and thus, can be released.

+
+
+
Parameters:
+

op – The op to release.

+
+
+
+ +
+
+bool cvc5_op_is_equal(Cvc5Op a, Cvc5Op b)
+

Compare two operators for syntactic equality.

+
+
Parameters:
+
    +
  • a – The first operator.

  • +
  • b – The second operator.

  • +
+
+
Returns:
+

True if both operators are syntactically identical.

+
+
+
+ +
+
+bool cvc5_op_is_disequal(Cvc5Op a, Cvc5Op b)
+

Compare two operators for syntactic disequality.

+
+
Parameters:
+
    +
  • a – The first operator.

  • +
  • b – The second operator.

  • +
+
+
Returns:
+

True if both operators are syntactically disequal.

+
+
+
+ +
+
+Cvc5Kind cvc5_op_get_kind(Cvc5Op op)
+

Get the kind of a given operator.

+
+
Parameters:
+

op – The operator.

+
+
Returns:
+

The kind of the operator.

+
+
+
+ +
+
+bool cvc5_op_is_indexed(Cvc5Op op)
+

Determine if a given operator is indexed.

+
+
Parameters:
+

op – The operator.

+
+
Returns:
+

True iff the operator is indexed.

+
+
+
+ +
+
+size_t cvc5_op_get_num_indices(Cvc5Op op)
+

Get the number of indices of a given operator.

+
+
Parameters:
+

op – The operator.

+
+
Returns:
+

The number of indices of the operator.

+
+
+
+ +
+
+Cvc5Term cvc5_op_get_index(Cvc5Op op, size_t i)
+

Get the index at position i of an indexed operator.

+
+
Parameters:
+
    +
  • op – The operator.

  • +
  • i – The position of the index to return.

  • +
+
+
Returns:
+

The index at position i.

+
+
+
+ +
+
+const char *cvc5_op_to_string(Cvc5Op op)
+

Get a string representation of a given operator.

+
+

Note

+

The returned char* pointer is only valid until the next call to this function.

+
+
+
Parameters:
+

op – The operator.

+
+
Returns:
+

A string representation of the operator.

+
+
+
+ +
+
+size_t cvc5_op_hash(Cvc5Op op)
+

Compute the hash value of an operator.

+
+
Parameters:
+

op – The operator.

+
+
Returns:
+

The hash value of the operator.

+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5proof.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5proof.html new file mode 100644 index 0000000000..91ae43ba5d --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5proof.html @@ -0,0 +1,345 @@ + + + + + + + + + + + + + Cvc5Proof — cvc5 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Cvc5Proof

+

This struct encapsulates a cvc5 proof object, which can be retrieved via +function cvc5_get_proof() after a cvc5_check_sat() +query returns an unsat result.

+
+
+
+
+
+
+
+typedef struct cvc5_proof_t *Cvc5Proof
+

A cvc5 proof.

+
+ +
+
+
+Cvc5ProofRule cvc5_proof_get_rule(Cvc5Proof proof)
+

Get the proof rule used by the root step of a given proof.

+
+
Returns:
+

The proof rule.

+
+
+
+ +
+
+Cvc5ProofRewriteRule cvc5_proof_get_rewrite_rule(Cvc5Proof proof)
+

Get the proof rewrite rule used by the root step of the proof.

+

Requires that cvc5_proof_get_rule() does not return CVC5_PROOF_RULE_DSL_REWRITE or CVC5_PROOF_RULE_THEORY_REWRITE.

+
+
Parameters:
+

proof – The proof.

+
+
Returns:
+

The proof rewrite rule.

+
+
+
+ +
+
+Cvc5Term cvc5_proof_get_result(Cvc5Proof proof)
+

Get the conclusion of the root step of a given proof.

+
+
Parameters:
+

proof – The proof.

+
+
Returns:
+

The conclusion term.

+
+
+
+ +
+
+const Cvc5Proof *cvc5_proof_get_children(Cvc5Proof proof, size_t *size)
+

Get the premises of the root step of a given proof.

+
+

Note

+

The returned Cvc5Proof array pointer is only valid until the next call to this function.

+
+
+
Parameters:
+
    +
  • proof – The proof.

  • +
  • size – Output parameter to store the number of resulting premise proofs.

  • +
+
+
Returns:
+

The premise proofs.

+
+
+
+ +
+
+const Cvc5Term *cvc5_proof_get_arguments(Cvc5Proof proof, size_t *size)
+

Get the arguments of the root step of a given proof.

+
+
Parameters:
+
    +
  • proof – The proof.

  • +
  • size – Output parameter to store the number of resulting argument terms.

  • +
+
+
Returns:
+

The argument terms.

+
+
+
+ +
+
+bool cvc5_proof_is_equal(Cvc5Proof a, Cvc5Proof b)
+

Compare two proofs for referential equality.

+
+
Parameters:
+
    +
  • a – The first proof.

  • +
  • b – The second proof.

  • +
+
+
Returns:
+

True if both proof pointers point to the same internal proof object.

+
+
+
+ +
+
+bool cvc5_proof_is_disequal(Cvc5Proof a, Cvc5Proof b)
+

Compare two proofs for referential disequality.

+
+
Parameters:
+
    +
  • a – The first proof.

  • +
  • b – The second proof.

  • +
+
+
Returns:
+

True if both proof pointers point to different internal proof objects.

+
+
+
+ +
+
+size_t cvc5_proof_hash(Cvc5Proof proof)
+

Compute the hash value of a proof.

+
+
Parameters:
+

proof – The proof.

+
+
Returns:
+

The hash value of the proof.

+
+
+
+ +
+
+Cvc5Proof cvc5_proof_copy(Cvc5Proof proof)
+

Make copy of proof, increases reference counter of proof.

+
+

Note

+

This step is optional and allows users to manage resources in a more fine-grained manner.

+
+
+
Parameters:
+

proof – The proof to copy.

+
+
Returns:
+

The same proof with its reference count increased by one.

+
+
+
+ +
+
+void cvc5_proof_release(Cvc5Proof proof)
+

Release copy of proof, decrements reference counter of proof.

+
+

Note

+

This step is optional and allows users to release resources in a more fine-grained manner. Further, any API function that returns a copy that is owned by the callee of the function and thus, can be released.

+
+
+
Parameters:
+

proof – The proof to release.

+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5result.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5result.html new file mode 100644 index 0000000000..0b133da90e --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5result.html @@ -0,0 +1,357 @@ + + + + + + + + + + + + + Cvc5Result — cvc5 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Cvc5Result

+

This class represents a Cvc5 result.

+

A Cvc5Result encapsulates a 3-valued solver result (sat, unsat, +unknown). Explanations for unknown results are represented as enum class +Cvc5UnknownExplanation and can be queried via +cvc5_result_get_unknown_explanation().

+
+
+
+
+
+
+
+typedef struct cvc5_result_t *Cvc5Result
+

Encapsulation of a three-valued solver result, with explanations.

+
+ +
+
+
+Cvc5Result cvc5_result_copy(Cvc5Result result)
+

Make copy of result, increases reference counter of result.

+
+

Note

+

This step is optional and allows users to manage resources in a more fine-grained manner.

+
+
+
Parameters:
+

result – The result to copy.

+
+
Returns:
+

The same result with its reference count increased by one.

+
+
+
+ +
+
+void cvc5_result_release(Cvc5Result result)
+

Release copy of result, decrements reference counter of result.

+
+

Note

+

This step is optional and allows users to release resources in a more fine-grained manner. Further, any API function that returns a copy that is owned by the callee of the function and thus, can be released.

+
+
+
Parameters:
+

result – The result to release.

+
+
+
+ +
+
+bool cvc5_result_is_null(const Cvc5Result result)
+

Determine if a given result is empty (a nullary result) and not an actual result returned from a cvc5_check_sat() (and friends) query.

+
+
Parameters:
+

result – The result.

+
+
Returns:
+

True if the given result is a nullary result.

+
+
+
+ +
+
+bool cvc5_result_is_sat(const Cvc5Result result)
+

Determine if given result is from a satisfiable cvc5_check_sat() or cvc5_check_sat_ssuming() query.

+
+
Parameters:
+

result – The result.

+
+
Returns:
+

True if result is from a satisfiable query.

+
+
+
+ +
+
+bool cvc5_result_is_unsat(const Cvc5Result result)
+

Determine if given result is from an unsatisfiable cvc5_check_sat() or cvc5_check_sat_assuming() query.

+
+
Parameters:
+

result – The result.

+
+
Returns:
+

True if result is from an unsatisfiable query.

+
+
+
+ +
+
+bool cvc5_result_is_unknown(const Cvc5Result result)
+

Determine if given result is from a cvc5_check_sat() or cvc5_check_sat_assuming() query and cvc5 was not able to determine (un)satisfiability.

+
+
Parameters:
+

result – The result.

+
+
Returns:
+

True if result is from a query where cvc5 was not able to determine (un)satisfiability.

+
+
+
+ +
+
+bool cvc5_result_is_equal(const Cvc5Result a, const Cvc5Result b)
+

Determine equality of two results.

+
+
Parameters:
+
    +
  • a – The first result to compare to for equality.

  • +
  • b – The second result to compare to for equality.

  • +
+
+
Returns:
+

True if the results are equal.

+
+
+
+ +
+
+bool cvc5_result_is_disequal(const Cvc5Result a, const Cvc5Result b)
+

Operator overloading for disequality of two results.

+
+
Parameters:
+
    +
  • a – The first result to compare to for disequality.

  • +
  • b – The second result to compare to for disequality.

  • +
+
+
Returns:
+

True if the results are disequal.

+
+
+
+ +
+
+Cvc5UnknownExplanation cvc5_result_get_unknown_explanation(const Cvc5Result result)
+

Get the explanation for an unknown result.

+
+
Parameters:
+

result – The result.

+
+
Returns:
+

An explanation for an unknown query result.

+
+
+
+ +
+
+const char *cvc5_result_to_string(const Cvc5Result result)
+

Get the string representation of a given result.

+
+

Note

+

The returned char* pointer is only valid until the next call to this function.

+
+
+
Parameters:
+

result – The result.

+
+
Returns:
+

The string representation.

+
+
+
+ +
+
+size_t cvc5_result_hash(Cvc5Result result)
+

Compute the hash value of a result.

+
+
Parameters:
+

result – The result.

+
+
Returns:
+

The hash value of the result.

+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5sort.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5sort.html new file mode 100644 index 0000000000..f98ec46a2a --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5sort.html @@ -0,0 +1,1255 @@ + + + + + + + + + + + + + Cvc5Sort — cvc5 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Cvc5Sort

+

The Cvc5Sort struct represents the sort of a Cvc5Term. +Its kind is represented as enum Cvc5SortKind.

+

A Cvc5Sort can be hashed (using cvc5_sort_hash()) +represented as a string (via cvc5_sort_to_string()).

+

Cvc5Sort instances are created via factory functions associated +with a Cvc5TermManager instance, e.g., +cvc5_get_boolean_sort() for the Boolean sort and +cvc5_mk_bv_sort() for bit-vector sorts.

+

Sorts are defined as standardized in the SMT-LIB standard for standardized +theories. Additionally, we introduce the following sorts for non-standardized +theories:

+ +
+
+
+
+
+
+
+typedef struct cvc5_sort_t *Cvc5Sort
+

The sort of a cvc5 term.

+
+ +
+
+
+Cvc5Sort cvc5_sort_copy(Cvc5Sort sort)
+

Make copy of sort, increases reference counter of sort.

+
+

Note

+

This step is optional and allows users to manage resources in a more fine-grained manner.

+
+
+
Parameters:
+

sort – The sort to copy.

+
+
Returns:
+

The same sort with its reference count increased by one.

+
+
+
+ +
+
+void cvc5_sort_release(Cvc5Sort sort)
+

Release copy of sort, decrements reference counter of sort.

+
+

Note

+

This step is optional and allows users to release resources in a more fine-grained manner. Further, any API function that returns a Cvc5Sort returns a copy that is owned by the callee of the function and thus, can be released.

+
+
+
Parameters:
+

sort – The sort to release.

+
+
+
+ +
+
+bool cvc5_sort_is_equal(Cvc5Sort a, Cvc5Sort b)
+

Compare two sorts for structural equality.

+
+
Parameters:
+
    +
  • a – The first sort.

  • +
  • b – The second sort.

  • +
+
+
Returns:
+

True if the sorts are equal.

+
+
+
+ +
+
+bool cvc5_sort_is_disequal(Cvc5Sort a, Cvc5Sort b)
+

Compare two sorts for structural disequality.

+
+
Parameters:
+
    +
  • a – The first sort.

  • +
  • b – The second sort.

  • +
+
+
Returns:
+

True if the sorts are not equal.

+
+
+
+ +
+
+int64_t cvc5_sort_compare(Cvc5Sort a, Cvc5Sort b)
+

Compare two sorts for ordering.

+
+
Parameters:
+
    +
  • a – The first sort.

  • +
  • b – The second sort.

  • +
+
+
Returns:
+

An integer value indicating the ordering: 0 if both sorts are equal, -1 if a < b, and 1 if b > a.

+
+
+
+ +
+
+Cvc5SortKind cvc5_sort_get_kind(Cvc5Sort sort)
+

Get the kind of the given sort.

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

The kind of the sort.

+
+
+
+ +
+
+bool cvc5_sort_has_symbol(Cvc5Sort sort)
+

Determine if the given sort has a symbol (a name).

+

For example, uninterpreted sorts and uninterpreted sort constructors have symbols.

+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

True if the sort has a symbol.

+
+
+
+ +
+
+const char *cvc5_sort_get_symbol(Cvc5Sort sort)
+

Get the symbol of this Sort.

+

+The symbol of this sort is the string that was provided when constructing it via cvc5_mk_uninterpreted_sort(), cvc5_mk_unresolved_sort(), or cvc5_mk_uninterpreted_sort_constructor_sort().

+
+

Note

+

Asserts cvc5_sort_has_symbol().

+
+
+

Note

+

The returned char* pointer is only valid until the next call to this function.

+
+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

The raw symbol of the sort.

+
+
+
+ +
+
+bool cvc5_sort_is_boolean(Cvc5Sort sort)
+

Determine if given sort is the Boolean sort (SMT-LIB: Bool).

+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

True if given sort is the Boolean sort.

+
+
+
+ +
+
+bool cvc5_sort_is_integer(Cvc5Sort sort)
+

Determine if given sort is the integer sort (SMT-LIB: Int).

+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

True if given sort is the integer sort.

+
+
+
+ +
+
+bool cvc5_sort_is_real(Cvc5Sort sort)
+

Determine if given sort is the real sort (SMT-LIB: Real).

+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

True if given sort is the real sort.

+
+
+
+ +
+
+bool cvc5_sort_is_string(Cvc5Sort sort)
+

Determine if given sort is the string sort (SMT-LIB: String).

+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

True if given sort is the string sort.

+
+
+
+ +
+
+bool cvc5_sort_is_regexp(Cvc5Sort sort)
+

Determine if given sort is the regular expression sort (SMT-LIB: RegLan).

+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

True if given sort is the regular expression sort.

+
+
+
+ +
+
+bool cvc5_sort_is_rm(Cvc5Sort sort)
+

Determine if given sort is the rounding mode sort (SMT-LIB: Cvc5RoundingMode).

+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

True if given sort is the rounding mode sort.

+
+
+
+ +
+
+bool cvc5_sort_is_bv(Cvc5Sort sort)
+

Determine if given sort is a bit-vector sort (SMT-LIB: (_ BitVec i)).

+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

True if given sort is a bit-vector sort.

+
+
+
+ +
+
+bool cvc5_sort_is_fp(Cvc5Sort sort)
+

Determine if given sort is a floatingpoint sort (SMT-LIB: (_ FloatingPoint eb sb)).

+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

True if given sort is a floating-point sort.

+
+
+
+ +
+
+bool cvc5_sort_is_dt(Cvc5Sort sort)
+

Determine if given sort is a datatype sort.

+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

True if given sort is a datatype sort.

+
+
+
+ +
+
+bool cvc5_sort_is_dt_constructor(Cvc5Sort sort)
+

Determine if given sort is a datatype constructor sort.

+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

True if given sort is a datatype constructor sort.

+
+
+
+ +
+
+bool cvc5_sort_is_dt_selector(Cvc5Sort sort)
+

Determine if given sort is a datatype selector sort.

+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

True if given sort is a datatype selector sort.

+
+
+
+ +
+
+bool cvc5_sort_is_dt_tester(Cvc5Sort sort)
+

Determine if given sort is a datatype tester sort.

+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

True if given sort is a datatype tester sort.

+
+
+
+ +
+
+bool cvc5_sort_is_dt_updater(Cvc5Sort sort)
+

Determine if given sort is a datatype updater sort.

+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

True if given sort is a datatype updater sort.

+
+
+
+ +
+
+bool cvc5_sort_is_fun(Cvc5Sort sort)
+

Determine if given sort is a function sort.

+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

True if given sort is a function sort.

+
+
+
+ +
+
+bool cvc5_sort_is_predicate(Cvc5Sort sort)
+

Determine if given sort is a predicate sort.

+

A predicate sort is a function sort that maps to the Boolean sort. All predicate sorts are also function sorts.

+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

True if given sort is a predicate sort.

+
+
+
+ +
+
+bool cvc5_sort_is_tuple(Cvc5Sort sort)
+

Determine if given sort is a tuple sort.

+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

True if given sort is a tuple sort.

+
+
+
+ +
+
+bool cvc5_sort_is_nullable(Cvc5Sort sort)
+

Determine if given sort is a nullable sort.

+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

True if given sort is a nullable sort.

+
+
+
+ +
+
+bool cvc5_sort_is_record(Cvc5Sort sort)
+

Determine if given sort is a record sort.

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

True if the sort is a record sort.

+
+
+
+ +
+
+bool cvc5_sort_is_array(Cvc5Sort sort)
+

Determine if given sort is an array sort.

+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

True if the sort is an array sort.

+
+
+
+ +
+
+bool cvc5_sort_is_ff(Cvc5Sort sort)
+

Determine if given sort is a finite field sort.

+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

True if the sort is a finite field sort.

+
+
+
+ +
+
+bool cvc5_sort_is_set(Cvc5Sort sort)
+

Determine if given sort is a Set sort.

+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

True if the sort is a Set sort.

+
+
+
+ +
+
+bool cvc5_sort_is_bag(Cvc5Sort sort)
+

Determine if given sort is a Bag sort.

+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

True if the sort is a Bag sort.

+
+
+
+ +
+
+bool cvc5_sort_is_sequence(Cvc5Sort sort)
+

Determine if given sort is a Sequence sort.

+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

True if the sort is a Sequence sort.

+
+
+
+ +
+
+bool cvc5_sort_is_abstract(Cvc5Sort sort)
+

Determine if given sort is an abstract sort.

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

True if the sort is a abstract sort.

+
+
+
+ +
+
+bool cvc5_sort_is_uninterpreted_sort(Cvc5Sort sort)
+

Determine if given sort is an uninterpreted sort.

+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

True if given sort is an uninterpreted sort.

+
+
+
+ +
+
+bool cvc5_sort_is_uninterpreted_sort_constructor(Cvc5Sort sort)
+

Determine if given sort is an uninterpreted sort constructor.

+

An uninterpreted sort constructor has arity > 0 and can be instantiated to construct uninterpreted sorts with given sort parameters.

+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

True if given sort is of sort constructor kind.

+
+
+
+ +
+
+bool cvc5_sort_is_instantiated(Cvc5Sort sort)
+

Determine if given sort is an instantiated (parametric datatype or uninterpreted sort constructor) sort.

+

An instantiated sort is a sort that has been constructed from instantiating a sort with sort arguments (see cvc5_sort_instantiate().

+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

True if given sort is an instantiated sort.

+
+
+
+ +
+
+Cvc5Sort cvc5_sort_get_uninterpreted_sort_constructor(Cvc5Sort sort)
+

Get the associated uninterpreted sort constructor of an instantiated uninterpreted sort.

+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

The uninterpreted sort constructor sort.

+
+
+
+ +
+
+Cvc5Datatype cvc5_sort_get_datatype(Cvc5Sort sort)
+

Get the underlying datatype of a datatype sort.

+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

The underlying datatype of a datatype sort.

+
+
+
+ +
+
+Cvc5Sort cvc5_sort_instantiate(Cvc5Sort sort, size_t size, const Cvc5Sort params[])
+

Instantiate a parameterized datatype sort or uninterpreted sort constructor sort.

+

Create sort parameters with cvc5_mk_param_sort().

+
+
Parameters:
+
    +
  • sort – The sort to instantiate.

  • +
  • size – The number of sort parameters to instantiate with.

  • +
  • params – The list of sort parameters to instantiate with.

  • +
+
+
Returns:
+

The instantiated sort.

+
+
+
+ +
+
+const Cvc5Sort *cvc5_sort_get_instantiated_parameters(Cvc5Sort sort, size_t *size)
+

Get the sorts used to instantiate the sort parameters of a given parametric sort (parametric datatype or uninterpreted sort constructor sort, see cvc5_sort_instantiate();

+
+
Parameters:
+
    +
  • sort – The sort.

  • +
  • size – The size of the resulting array of sorts.

  • +
+
+
Returns:
+

The sorts used to instantiate the sort parameters of a parametric sort

+
+
+
+ +
+
+Cvc5Sort cvc5_sort_substitute(Cvc5Sort sort, Cvc5Sort s, Cvc5Sort replacement)
+

Substitution of Sorts.

+

Note that this replacement is applied during a pre-order traversal and only once to the sort. It is not run until fix point.

+

For example, (Array A B).substitute({A, C}, {(Array C D), (Array A B)}) will return (Array (Array C D) B).

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+
    +
  • sort – The sort.

  • +
  • s – The subsort to be substituted within the given sort.

  • +
  • replacement – The sort replacing the substituted subsort.

  • +
+
+
+
+ +
+
+Cvc5Sort cvc5_sort_substitute_sorts(Cvc5Sort sort, size_t size, const Cvc5Sort sorts[], const Cvc5Sort replacements[])
+

Simultaneous substitution of Sorts.

+

Note that this replacement is applied during a pre-order traversal and only once to the sort. It is not run until fix point. In the case that sorts contains duplicates, the replacement earliest in the vector takes priority.

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+
    +
  • sort – The sort.

  • +
  • sorts – The subsorts to be substituted within the given sort.

  • +
  • replacements – The sort replacing the substituted subsorts.

  • +
  • size – The size of sorts and replacements.

  • +
+
+
+
+ +
+
+const char *cvc5_sort_to_string(Cvc5Sort sort)
+

Get a string representation of a given sort.

+
+

Note

+

The returned char* pointer is only valid until the next call to this function.

+
+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

A string representation of the given sort.

+
+
+
+ +
+
+size_t cvc5_sort_hash(Cvc5Sort sort)
+

Compute the hash value of a sort.

+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

The hash value of the sort.

+
+
+
+ +
+
+size_t cvc5_sort_dt_constructor_get_arity(Cvc5Sort sort)
+

Get the arity of a datatype constructor sort.

+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

The arity of a datatype constructor sort.

+
+
+
+ +
+
+const Cvc5Sort *cvc5_sort_dt_constructor_get_domain(Cvc5Sort sort, size_t *size)
+

Get the domain sorts of a datatype constructor sort.

+
+
Parameters:
+
    +
  • sort – The sort.

  • +
  • size – The size of the resulting array of domain sorts.

  • +
+
+
Returns:
+

The domain sorts of a datatype constructor sort.

+
+
+
+ +
+
+Cvc5Sort cvc5_sort_dt_constructor_get_codomain(Cvc5Sort sort)
+

Get the codomain sort of a datatype constructor sort.

+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

The codomain sort of a constructor sort.

+
+
+
+ +
+
+Cvc5Sort cvc5_sort_dt_selector_get_domain(Cvc5Sort sort)
+

Get the domain sort of a given datatype selector sort.

+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

The domain sort of a datatype selector sort.

+
+
+
+ +
+
+Cvc5Sort cvc5_sort_dt_selector_get_codomain(Cvc5Sort sort)
+

Get the codomain sort of a given datatype selector sort.

+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

The codomain sort of a datatype selector sort.

+
+
+
+ +
+
+Cvc5Sort cvc5_sort_dt_tester_get_domain(Cvc5Sort sort)
+

Get the domain sort of a given datatype tester sort.

+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

The domain sort of a datatype tester sort.

+
+
+
+ +
+
+Cvc5Sort cvc5_sort_dt_tester_get_codomain(Cvc5Sort sort)
+

Get the codomain dort of a given datatype tester sort (the Boolean sort).

+
+

Note

+

We mainly need this for the symbol table, which doesn’t have access to the solver object.

+
+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

The codomain sort of a datatype tester sort.

+
+
+
+ +
+
+size_t cvc5_sort_fun_get_arity(Cvc5Sort sort)
+

Get the aritye of a given function sort.

+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

The arity of a function sort.

+
+
+
+ +
+
+const Cvc5Sort *cvc5_sort_fun_get_domain(Cvc5Sort sort, size_t *size)
+

Get the domain of a given function sort.

+
+
Parameters:
+
    +
  • sort – The sort.

  • +
  • size – The size of the resulting array of domain sorts.

  • +
+
+
Returns:
+

The domain sorts of a function sort.

+
+
+
+ +
+
+Cvc5Sort cvc5_sort_fun_get_codomain(Cvc5Sort sort)
+

Get the codomain of a given function sort.

+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

The codomain sort of a function sort.

+
+
+
+ +
+
+Cvc5Sort cvc5_sort_array_get_index_sort(Cvc5Sort sort)
+

Get the index sort of a given array sort.

+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

The array index sort of an array sort.

+
+
+
+ +
+
+Cvc5Sort cvc5_sort_array_get_element_sort(Cvc5Sort sort)
+

Get the element sort of a given array sort.

+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

The array element sort of an array sort.

+
+
+
+ +
+
+Cvc5Sort cvc5_sort_set_get_element_sort(Cvc5Sort sort)
+

Get the element sort of a given set sort.

+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

The element sort of a set sort.

+
+
+
+ +
+
+Cvc5Sort cvc5_sort_bag_get_element_sort(Cvc5Sort sort)
+

Get the element sort of a given bag sort.

+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

The element sort of a bag sort.

+
+
+
+ +
+
+Cvc5Sort cvc5_sort_sequence_get_element_sort(Cvc5Sort sort)
+

Get the element sort of a sequence sort.

+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

The element sort of a sequence sort.

+
+
+
+ +
+
+Cvc5SortKind cvc5_sort_abstract_get_kind(Cvc5Sort sort)
+

Get the kind of an abstract sort, which denotes the sort kinds that the abstract sort denotes.

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

The kind of an abstract sort.

+
+
+
+ +
+
+size_t cvc5_sort_uninterpreted_sort_constructor_get_arity(Cvc5Sort sort)
+

Get the arity of an uninterpreted sort constructor sort.

+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

The arity of an uninterpreted sort constructor sort.

+
+
+
+ +
+
+uint32_t cvc5_sort_bv_get_size(Cvc5Sort sort)
+

Get the size of a bit-vector sort.

+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

The bit-width of the bit-vector sort.

+
+
+
+ +
+
+const char *cvc5_sort_ff_get_size(Cvc5Sort sort)
+

Get the size of a finite field sort.

+
+

Note

+

The returned char* pointer is only valid until the next call to this function.

+
+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

The size of the finite field sort.

+
+
+
+ +
+
+uint32_t cvc5_sort_fp_get_exp_size(Cvc5Sort sort)
+

Get the exponent size of a floating-point sort.

+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

The bit-width of the exponent of the floating-point sort.

+
+
+
+ +
+
+uint32_t cvc5_sort_fp_get_sig_size(Cvc5Sort sort)
+

Get the significand size of a floating-point sort.

+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

The width of the significand of the floating-point sort.

+
+
+
+ +
+
+size_t cvc5_sort_dt_get_arity(Cvc5Sort sort)
+

Get the arity of a datatype sort, which is the number of type parameters if the datatype is parametric, or 0 otherwise.

+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

The arity of a datatype sort.

+
+
+
+ +
+
+size_t cvc5_sort_tuple_get_length(Cvc5Sort sort)
+

Get the length of a tuple sort.

+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

The length of a tuple sort.

+
+
+
+ +
+
+const Cvc5Sort *cvc5_sort_tuple_get_element_sorts(Cvc5Sort sort, size_t *size)
+

Get the element sorts of a tuple sort.

+
+
Parameters:
+
    +
  • sort – The sort.

  • +
  • size – The size of the resulting array of tuple element sorts.

  • +
+
+
Returns:
+

The element sorts of a tuple sort.

+
+
+
+ +
+
+Cvc5Sort cvc5_sort_nullable_get_element_sort(Cvc5Sort sort)
+

Get the element sort of a nullable sort.

+
+
Parameters:
+

sort – The sort.

+
+
Returns:
+

The element sort of a nullable sort.

+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5statistics.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5statistics.html new file mode 100644 index 0000000000..5b4baeed10 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5statistics.html @@ -0,0 +1,372 @@ + + + + + + + + + + + + + Cvc5Statistics — cvc5 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Cvc5Statistics

+

See Statistics for general information on statistics in cvc5.

+

Struct cvc5::Statistics represents a mapping from statistic names +to statistic values, which are represented by struct Cvc5Stat. A +Cvc5Stat may hold values of different +types (bool, int64_t, uint64_t, double, const char* and +histograms) and can be inspected by identifying the type via functions +cvc5_stat_is_<type> and obtaining +the actual value via functions cvc5_stat_get_<type>. +Histograms are represented as a paar of arrays (const char** keys[] and +uint64_t* values[]) where the key is the string representation of one +enumeration value and the value is the frequency of this particular value.

+

A statistics iterator can be initialized via cvc5_stats_iter_init(), +which allows to configure the visbility of internal and unchanged statistic +entries. Iteration over statistics entries is then provided via functions +cvc5_stats_iter_has_next() and cvc5_stats_iter_next().

+
+
+
+
+
+
+
+typedef struct cvc5_stat_t *Cvc5Stat
+

A cvc5 statistic.

+
+ +
+
+
+bool cvc5_stat_is_internal(Cvc5Stat stat)
+

Determine if a given statistic is intended for internal use only.

+
+
Parameters:
+

stat – The statistic.

+
+
Returns:
+

True if this is an internal statistic.

+
+
+
+ +
+
+bool cvc5_stat_is_default(Cvc5Stat stat)
+

Determine if a given statistics statistic holds the default value.

+
+
Parameters:
+

stat – The statistic.

+
+
Returns:
+

True if this is a defaulted statistic.

+
+
+
+ +
+
+bool cvc5_stat_is_int(Cvc5Stat stat)
+

Determine if a given statistic holds an integer value.

+
+
Parameters:
+

stat – The statistic.

+
+
Returns:
+

True if this value is an integer.

+
+
+
+ +
+
+int64_t cvc5_stat_get_int(Cvc5Stat stat)
+

Get the value of an integer statistic.

+
+
Parameters:
+

stat – The statistic.

+
+
Returns:
+

The integer value.

+
+
+
+ +
+
+bool cvc5_stat_is_double(Cvc5Stat stat)
+

Determine if a given statistic holds a double value.

+
+
Parameters:
+

stat – The statistic.

+
+
Returns:
+

True if this value is a double.

+
+
+
+ +
+
+double cvc5_stat_get_double(Cvc5Stat stat)
+

Get the value of a double statistic.

+
+
Parameters:
+

stat – The statistic.

+
+
Returns:
+

The double value.

+
+
+
+ +
+
+bool cvc5_stat_is_string(Cvc5Stat stat)
+

Determine if a given statistic holds a string value.

+
+
Parameters:
+

stat – The statistic.

+
+
Returns:
+

True if this value is a string.

+
+
+
+ +
+
+const char *cvc5_stat_get_string(Cvc5Stat stat)
+

Get value of a string statistic.

+
+

Note

+

The returned char pointer is only valid until the next call to this function.

+
+
+
Parameters:
+

stat – The statistic.

+
+
Returns:
+

The string value.

+
+
+
+ +
+
+bool cvc5_stat_is_histogram(Cvc5Stat stat)
+

Determine if a given statistic holds a histogram.

+
+
Parameters:
+

stat – The statistic.

+
+
Returns:
+

True if this value is a histogram.

+
+
+
+ +
+
+void cvc5_stat_get_histogram(Cvc5Stat stat, const char **keys[], uint64_t *values[], size_t *size)
+

Get the value of a histogram statistic.

+
+
Parameters:
+

stat – The statistic.

+
+
Returns:
+

The histogram value.

+
+
+
+ +
+
+const char *cvc5_stat_to_string(Cvc5Stat stat)
+

Get a string representation of a given statistic.

+
+

Note

+

The returned char* pointer is only valid until the next call to this function.

+
+
+
Parameters:
+

stat – The statistic.

+
+
Returns:
+

The string representation.

+
+
+
+ +
+
+
+typedef struct cvc5_stats_t *Cvc5Statistics
+

A cvc5 statistics instance.

+
+ +
+
+

Warning

+

doxygengroup: Cannot find group “c_cvc5statistics” in doxygen xml output for project “cvc5_c” from directory: /home/runner/work/cvc5/cvc5/build-shared/docs/api/c/doxygen/xml

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5symbolmanager.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5symbolmanager.html new file mode 100644 index 0000000000..eae1831fb7 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5symbolmanager.html @@ -0,0 +1,192 @@ + + + + + + + + + + + + + Cvc5SymbolManager — cvc5 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Cvc5SymbolManager

+

This class manages a symbol table and other meta-information pertaining to +SMT-LIB v2 inputs (e.g., named assertions, declared functions, etc.).

+
+
+
+
+
+
+
+typedef struct Cvc5SymbolManager Cvc5SymbolManager
+

Symbol manager. Internally, the symbol manager manages a symbol table and other meta-information pertaining to SMT2 file inputs (e.g. named assertions, declared functions, etc.).

+

A symbol manager can be modified by invoking commands, see cvc5_cmd_invoke().

+

A symbol manager can be provided when constructing a Cvc5InputParser, in which case that input parser has symbols of this symbol manager preloaded.

+

The symbol manager’s interface is otherwise not publicly available.

+
+ +
+
+

Warning

+

doxygengroup: Cannot find group “c_cvc5symbolmanager” in doxygen xml output for project “cvc5_c” from directory: /home/runner/work/cvc5/cvc5/build-shared/docs/api/c/doxygen/xml

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5synthresult.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5synthresult.html new file mode 100644 index 0000000000..dc9b235edb --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5synthresult.html @@ -0,0 +1,194 @@ + + + + + + + + + + + + + Cvc5SynthResult — cvc5 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Cvc5SynthResult

+

This struct represents a Cvc5 SyGus synthesis result.

+
+
+
+
+
+
+
+typedef struct cvc5_synth_result_t *Cvc5SynthResult
+

Encapsulation of a solver synth result.

+

This is the return value of the API functions:

+

+

which we call “synthesis queries”. This class indicates whether the synthesis query has a solution, has no solution, or is unknown.

+
+ +
+
+

Warning

+

doxygengroup: Cannot find group “c_cvc5synthresult” in doxygen xml output for project “cvc5_c” from directory: /home/runner/work/cvc5/cvc5/build-shared/docs/api/c/doxygen/xml

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5term.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5term.html new file mode 100644 index 0000000000..4bebf58e96 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5term.html @@ -0,0 +1,1469 @@ + + + + + + + + + + + + + Cvc5Term — cvc5 documentation + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Cvc5Term

+

The Cvc5Term struct represents an arbitrary expression +of any of the supported sorts. The list of all supported kinds of terms is +given by the Cvc5Kind enum. +The Cvc5Term struct provides functions for general inspection +(e.g., comparison, retrieving the kind and sort, accessing sub-terms), +but also functions for retrieving constant values for the supported theories +(i.e., cvc5_term_is_*_value() and cvc5_term_get_*_value(), +which returns the constant values in the best type standard C++ offers).

+

Additionally, a :cpp:tyep:`Cvc5Term` can be hashed (using +cvc5_term_hash()) and represented as string +(via cvc5_term_to_string()).

+

Cvc5Term instances are created via factory functions associated +with a Cvc5TermManager instance, e.g., +cvc5_mk_term() for generic terms of a specific kind and +cvc5_mk_<type>() for constants, variables and values of a given type.

+
+
+
+
+
+
+
+typedef struct cvc5_term_t *Cvc5Term
+

A cvc5 term.

+
+ +
+
+
+Cvc5Term cvc5_term_copy(Cvc5Term term)
+

Make copy of term, increases reference counter of term.

+
+

Note

+

This step is optional and allows users to manage resources in a more fine-grained manner.

+
+
+
Parameters:
+

term – The term to copy.

+
+
Returns:
+

The same term with its reference count increased by one.

+
+
+
+ +
+
+void cvc5_term_release(Cvc5Term term)
+

Release copy of term, decrements reference counter of term.

+
+

Note

+

This step is optional and allows users to release resources in a more fine-grained manner. Further, any API function that returns a copy that is owned by the callee of the function and thus, can be released.

+
+
+
Parameters:
+

term – The term to release.

+
+
+
+ +
+
+bool cvc5_term_is_equal(Cvc5Term a, Cvc5Term b)
+

Compare two terms for syntactic equality.

+
+
Parameters:
+
    +
  • a – The first term.

  • +
  • b – The second term.

  • +
+
+
Returns:
+

True if both term are syntactically identical.

+
+
+
+ +
+
+bool cvc5_term_is_disequal(Cvc5Term a, Cvc5Term b)
+

Compare two terms for syntactic disequality.

+
+
Parameters:
+
    +
  • a – The first term.

  • +
  • b – The second term.

  • +
+
+
Returns:
+

True if both term are syntactically disequal.

+
+
+
+ +
+
+int64_t cvc5_term_compare(Cvc5Term a, Cvc5Term b)
+

Compare two terms for ordering.

+
+
Parameters:
+
    +
  • a – The first term.

  • +
  • b – The second term.

  • +
+
+
Returns:
+

An integer value indicating the ordering: 0 if both terms are equal, -1 if a < b, and 1 if b > a.

+
+
+
+ +
+
+size_t cvc5_term_get_num_children(Cvc5Term term)
+

Get the number of children of a given term.

+
+
Parameters:
+

term – The term.

+
+
Returns:
+

The number of children of this term.

+
+
+
+ +
+
+Cvc5Term cvc5_term_get_child(Cvc5Term term, size_t index)
+

Get the child term of a given term at a given index.

+
+
Parameters:
+
    +
  • term – The term.

  • +
  • index – The index of the child.

  • +
+
+
Returns:
+

The child term at the given index.

+
+
+
+ +
+
+uint64_t cvc5_term_get_id(Cvc5Term term)
+

Get the id of a given term.

+
+
Parameters:
+

term – The term.

+
+
Returns:
+

The id of the term.

+
+
+
+ +
+
+Cvc5Kind cvc5_term_get_kind(Cvc5Term term)
+

Get the kind of a given term.

+
+
Parameters:
+

term – The term.

+
+
Returns:
+

The kind of the term.

+
+
+
+ +
+
+Cvc5Sort cvc5_term_get_sort(Cvc5Term term)
+

Get the sort of a given term.

+
+
Parameters:
+

term – The term.

+
+
Returns:
+

The sort of the term.

+
+
+
+ +
+
+Cvc5Term cvc5_term_substitute_term(Cvc5Term term, Cvc5Term t, Cvc5Term replacement)
+

Replace a given term t with term replacement in a given term.

+
+

Note

+

This replacement is applied during a pre-order traversal and only once (it is not run until fixed point).

+
+
+
Parameters:
+
    +
  • term – The term.

  • +
  • t – The term to replace.

  • +
  • replacement – The term to replace it with.

  • +
+
+
Returns:
+

The result of replacing term with replacement in the term.

+
+
+
+ +
+
+Cvc5Term cvc5_term_substitute_terms(Cvc5Term term, size_t size, const Cvc5Term terms[], const Cvc5Term replacements[])
+

Simultaneously replace given terms terms with terms replacements in a given term.

+

In the case that terms contains duplicates, the replacement earliest in the vector takes priority. For example, calling substitute on f(x,y) with terms = { x, z }, replacements = { g(z), w } results in the term f(g(z),y).

+
+

Note

+

Requires that terms and replacements are of equal size (they are interpreted as 1 : 1 mapping).

+
+
+

Note

+

This replacement is applied during a pre-order traversal and only once (it is not run until fixed point).

+
+
+
Parameters:
+
    +
  • term – The term.

  • +
  • size – The size of terms and replacements.

  • +
  • terms – The terms to replace.

  • +
  • replacements – The replacement terms.

  • +
+
+
Returns:
+

The result of simultaneously replacing terms with replacements in the given term.

+
+
+
+ +
+
+bool cvc5_term_has_op(Cvc5Term term)
+

Determine if a given term has an operator.

+
+
Parameters:
+

term – The term.

+
+
Returns:
+

True iff the term has an operator.

+
+
+
+ +
+
+Cvc5Op cvc5_term_get_op(Cvc5Term term)
+

Get the operator of a term with an operator.

+
+

Note

+

Requires that the term has an operator (see cvc5_term_has_op()).

+
+
+
Parameters:
+

term – The term.

+
+
Returns:
+

The Op used to create the term.

+
+
+
+ +
+
+bool cvc5_term_has_symbol(Cvc5Term term)
+

Determine if a given term has a symbol (a name).

+

For example, free constants and variables have symbols.

+
+
Parameters:
+

term – The term.

+
+
Returns:
+

True if the term has a symbol.

+
+
+
+ +
+
+const char *cvc5_term_get_symbol(Cvc5Term term)
+

Get the symbol of a given term with a symbol.

+

+The symbol of the term is the string that was provided when constructing it via cvc5_mk_const() or cvc5_mk_var().

+
+

Note

+

Requires that the term has a symbol (see cvc5_term_has_symbol()).

+
+
+

Note

+

The returned char* pointer is only valid until the next call to this function.

+
+
+
Parameters:
+

term – The term.

+
+
Returns:
+

The raw symbol of the term.

+
+
+
+ +
+
+const char *cvc5_term_to_string(Cvc5Term term)
+

Get a string representation of a given term.

+
+

Note

+

The returned char* pointer is only valid until the next call to this function.

+
+
+
Parameters:
+

term – The term.

+
+
Returns:
+

A string representation of the term.

+
+
+
+ +
+
+int32_t cvc5_term_get_real_or_integer_value_sign(Cvc5Term term)
+

Get the sign of a given integer or real value.

+
+

Note

+

Requires that given term is an integer or real value.

+
+
+
Parameters:
+

term – The value term.

+
+
Returns:
+

0 if the term is zero, -1 if the term is a negative real or integer value, 1 if the term is a positive real or integer value.

+
+
+
+ +
+
+bool cvc5_term_is_int32_value(Cvc5Term term)
+

Determine if a given term is an int32 value.

+
+

Note

+

This will return true for integer constants and real constants that have integer value.

+
+
+
Parameters:
+

term – The term.

+
+
Returns:
+

True if the term is an integer value that fits within int32_t.

+
+
+
+ +
+
+int32_t cvc5_term_get_int32_value(Cvc5Term term)
+

Get the int32_t representation of a given integral value.

+
+

Note

+

Requires that the term is an int32 value (see cvc5_term_is_int32_value()).

+
+
+
Parameters:
+

term – The term.

+
+
Returns:
+

The given term as int32_t value.

+
+
+
+ +
+
+bool cvc5_term_is_uint32_value(Cvc5Term term)
+

Determine if a given term is an uint32 value.

+
+

Note

+

This will return true for integer constants and real constants that have integral value.

+
+
+
Returns:
+

True if the term is an integral value and fits within uint32_t.

+
+
+
+ +
+
+uint32_t cvc5_term_get_uint32_value(Cvc5Term term)
+

Get the uint32_t representation of a given integral value.

+
+

Note

+

Requires that the term is an uint32 value (see cvc5_term_is_uint32_value()).

+
+
+
Parameters:
+

term – The term.

+
+
Returns:
+

The term as uint32_t value.

+
+
+
+ +
+
+bool cvc5_term_is_int64_value(Cvc5Term term)
+

Determine if a given term is an int64 value.

+
+

Note

+

This will return true for integer constants and real constants that have integral value.

+
+
+
Parameters:
+

term – The term.

+
+
Returns:
+

True if the term is an integral value that fits within int64_t.

+
+
+
+ +
+
+int64_t cvc5_term_get_int64_value(Cvc5Term term)
+

Get the int64_t representation of a given integral value.

+
+

Note

+

Requires that the term is an int64 value (see cvc5_term_is_int64_value()).

+
+
+
Parameters:
+

term – The term.

+
+
Returns:
+

The term as int64_t value.

+
+
+
+ +
+
+bool cvc5_term_is_uint64_value(Cvc5Term term)
+

Determine if a given term is an uint64 value.

+
+

Note

+

This will return true for integer constants and real constants that have integral value.

+
+
+
Parameters:
+

term – The term.

+
+
Returns:
+

True if the term is an integral value that fits within uint64_t.

+
+
+
+ +
+
+uint64_t cvc5_term_get_uint64_value(Cvc5Term term)
+

Get the uint64_t representation of a given integral value.

+
+

Note

+

Requires that the term is an uint64 value (see cvc5_term_is_uint64_value()).

+
+
+
Parameters:
+

term – The term.

+
+
Returns:
+

The term as uint64_t value.

+
+
+
+ +
+
+bool cvc5_term_is_integer_value(Cvc5Term term)
+

Determine if a given term is an integral value.

+
+
Parameters:
+

term – The term.

+
+
Returns:
+

True if the term is an integer constant or a real constant that has an integral value.

+
+
+
+ +
+
+const char *cvc5_term_get_integer_value(Cvc5Term term)
+

Get a string representation of a given integral value.

+
+

Note

+

Requires that the term is an integral value (see cvc5_term_is_integer_value()).

+
+
+

Note

+

The returned char* pointer is only valid until the next call to this function.

+
+
+
Parameters:
+

term – The term.

+
+
Returns:
+

The integral term in (decimal) string representation.

+
+
+
+ +
+
+bool cvc5_term_is_string_value(Cvc5Term term)
+

Determine if a given term is a string value.

+
+
Parameters:
+

term – The term.

+
+
Returns:
+

True if the term is a string value.

+
+
+
+ +
+
+const wchar_t *cvc5_term_get_string_value(Cvc5Term term)
+

Get the native string representation of a string value.

+
+

Note

+

Requires that the term is a string value (see cvc5_term_is_string_value()).

+
+
+

Note

+

This is not to be confused with cvc5_term_to_string(), which returns some string representation of the term, whatever data it may hold.

+
+
+
Parameters:
+

term – The term.

+
+
Returns:
+

The string term as a native string value.

+
+
+
+ +
+
+bool cvc5_term_is_real32_value(Cvc5Term term)
+

Determine if a given term is a rational value whose numerator fits into an int32 value and its denominator fits into a uint32 value.

+
+
Parameters:
+

term – The term.

+
+
Returns:
+

True if the term is a rational and its numerator and denominator fit into 32 bit integer values.

+
+
+
+ +
+
+void cvc5_term_get_real32_value(Cvc5Term term, int32_t *num, uint32_t *den)
+

Get the 32 bit integer representations of the numerator and denominator of a rational value.

+
+

Note

+

Requires that the term is a rational value and its numerator and denominator fit into 32 bit integer values (see cvc5_term_is_real32_value()).

+
+
+
Parameters:
+
    +
  • term – The term.

  • +
  • num – The resulting int32_t representation of the numerator.

  • +
  • den – The resulting uint32_t representation of the denominator.

  • +
+
+
+
+ +
+
+bool cvc5_term_is_real64_value(Cvc5Term term)
+

Determine if a given term is a rational value whose numerator fits into an int64 value and its denominator fits into a uint64 value.

+
+
Parameters:
+

term – The term.

+
+
Returns:
+

True if the term is a rational value whose numerator and denominator fit within int64_t and uint64_t, respectively.

+
+
+
+ +
+
+void cvc5_term_get_real64_value(Cvc5Term term, int64_t *num, uint64_t *den)
+

Get the 64 bit integer representations of the numerator and denominator of a rational value.

+
+

Note

+

Requires that the term is a rational value and its numerator and denominator fit into 64 bit integer values (see cvc5_term_is_real64_value()).

+
+
+
Parameters:
+
    +
  • term – The term.

  • +
  • num – The resulting int64_t representation of the numerator.

  • +
  • den – The resulting uint64_t representation of the denominator.

  • +
+
+
+
+ +
+
+bool cvc5_term_is_real_value(Cvc5Term term)
+

Determine if a given term is a rational value.

+
+

Note

+

A term of kind PI is not considered to be a real value.

+
+
+
Parameters:
+

term – The term.

+
+
Returns:
+

True if the term is a rational value.

+
+
+
+ +
+
+const char *cvc5_term_get_real_value(Cvc5Term term)
+

Get a string representation of a given rational value.

+
+

Note

+

Requires that the term is a rational value (see cvc5_term_is_real_value()).

+
+
+

Note

+

The returned char* pointer is only valid until the next call to this function.

+
+
+
Parameters:
+

term – The term.

+
+
Returns:
+

The representation of a rational value as a (rational) string.

+
+
+
+ +
+
+bool cvc5_term_is_const_array(Cvc5Term term)
+

Determine if a given term is a constant array.

+
+
Parameters:
+

term – The term.

+
+
Returns:
+

True if the term is a constant array.

+
+
+
+ +
+
+Cvc5Term cvc5_term_get_const_array_base(Cvc5Term term)
+

Determine the base (element stored at all indices) of a constant array.

+
+

Note

+

Requires that the term is a constant array (see isConstArray()).

+
+
+
Parameters:
+

term – The term.

+
+
Returns:
+

The base term.

+
+
+
+ +
+
+bool cvc5_term_is_boolean_value(Cvc5Term term)
+

Determine if a given term is a Boolean value.

+
+
Parameters:
+

term – The term.

+
+
Returns:
+

True if the term is a Boolean value.

+
+
+
+ +
+
+bool cvc5_term_get_boolean_value(Cvc5Term term)
+

Get the value of a Boolean term as a native Boolean value.

+
+

Note

+

Asserts cvc5_term_is_boolean_value().

+
+
+
Parameters:
+

term – The term.

+
+
Returns:
+

The representation of a Boolean value as a native Boolean value.

+
+
+
+ +
+
+bool cvc5_term_is_bv_value(Cvc5Term term)
+

Determine if a given term is a bit-vector value.

+
+
Parameters:
+

term – The term.

+
+
Returns:
+

True if the term is a bit-vector value.

+
+
+
+ +
+
+const char *cvc5_term_get_bv_value(Cvc5Term term, uint32_t base)
+

Get the string representation of a bit-vector value.

+
+

Note

+

Asserts cvc5_term_is_bv_value().

+
+
+

Note

+

The returned char* pointer is only valid until the next call to this function.

+
+
+
Parameters:
+
    +
  • term – The term.

  • +
  • base2 for binary, 10 for decimal, and 16 for hexadecimal.

  • +
+
+
Returns:
+

The string representation of a bit-vector value.

+
+
+
+ +
+
+bool cvc5_term_is_ff_value(Cvc5Term term)
+

Determine if a given term is a finite field value.

+
+
Parameters:
+

term – The term.

+
+
Returns:
+

True if the term is a finite field value.

+
+
+
+ +
+
+const char *cvc5_term_get_ff_value(Cvc5Term term)
+

Get the string representation of a finite field value (base 10).

+
+

Note

+

Asserts cvc5_term_is_ff_value().

+
+
+

Note

+

Uses the integer representative of smallest absolute value.

+
+
+

Note

+

The returned char* pointer is only valid until the next call to this function.

+
+
+
Parameters:
+

term – The term.

+
+
Returns:
+

The string representation of the integer representation of the finite field value.

+
+
+
+ +
+
+bool cvc5_term_is_uninterpreted_sort_value(Cvc5Term term)
+

Determine if a given term is an uninterpreted sort value.

+
+
Parameters:
+

term – The term.

+
+
Returns:
+

True if the term is an abstract value.

+
+
+
+ +
+
+const char *cvc5_term_get_uninterpreted_sort_value(Cvc5Term term)
+

Get a string representation of an uninterpreted sort value.

+ +
+

Note

+

The returned char* pointer is only valid until the next call to this function.

+
+
+
Parameters:
+

term – The term.

+
+
Returns:
+

The representation of an uninterpreted sort value as a string.

+
+
+
+ +
+
+bool cvc5_term_is_tuple_value(Cvc5Term term)
+

Determine if a given term is a tuple value.

+
+
Parameters:
+

term – The term.

+
+
Returns:
+

True if the term is a tuple value.

+
+
+
+ +
+
+const Cvc5Term *cvc5_term_get_tuple_value(Cvc5Term term, size_t *size)
+

Get a tuple value as an array of terms.

+
+

Note

+

Asserts cvc5_term_is_tuple_value().

+
+
+
Parameters:
+
    +
  • term – The term.

  • +
  • size – The size of the resulting array.

  • +
+
+
Returns:
+

The representation of a tuple value as an array of terms.

+
+
+
+ +
+
+bool cvc5_term_is_rm_value(Cvc5Term term)
+

Determine if a given term is a floating-point rounding mode value.

+
+
Parameters:
+

term – The term.

+
+
Returns:
+

True if the term is a rounding mode value.

+
+
+
+ +
+
+Cvc5RoundingMode cvc5_term_get_rm_value(Cvc5Term term)
+

Get the Cvc5RoundingMode value of a given rounding-mode value term.

+
+

Note

+

Asserts cvc5_term_is_rounding_mode_value().

+
+
+
Parameters:
+

term – The term.

+
+
Returns:
+

The floating-point rounding mode value of the term.

+
+
+
+ +
+
+bool cvc5_term_is_fp_pos_zero(Cvc5Term term)
+

Determine if a given term is a floating-point positive zero value (+zero).

+
+
Parameters:
+

term – The term.

+
+
Returns:
+

True if the term is the floating-point value for positive zero.

+
+
+
+ +
+
+bool cvc5_term_is_fp_neg_zero(Cvc5Term term)
+

Determine if a given term is a floating-point negative zero value (-zero).

+
+
Parameters:
+

term – The term.

+
+
Returns:
+

True if the term is the floating-point value for negative zero.

+
+
+
+ +
+
+bool cvc5_term_is_fp_pos_inf(Cvc5Term term)
+

Determine if a given term is a floating-point positive infinity value (+oo).

+
+
Parameters:
+

term – The term.

+
+
Returns:
+

True if the term is the floating-point value for positive. infinity.

+
+
+
+ +
+
+bool cvc5_term_is_fp_neg_inf(Cvc5Term term)
+

Determine if a given term is a floating-point negative infinity value (-oo).

+
+
Parameters:
+

term – The term.

+
+
Returns:
+

True if the term is the floating-point value for negative. infinity.

+
+
+
+ +
+
+bool cvc5_term_is_fp_nan(Cvc5Term term)
+

Determine if a given term is a floating-point NaN value.

+
+
Parameters:
+

term – The term.

+
+
Returns:
+

True if the term is the floating-point value for not a number.

+
+
+
+ +
+
+bool cvc5_term_is_fp_value(Cvc5Term term)
+

Determine if a given term is a floating-point value.

+
+
Parameters:
+

term – The term.

+
+
Returns:
+

True if the term is a floating-point value.

+
+
+
+ +
+
+void cvc5_term_get_fp_value(Cvc5Term term, uint32_t *ew, uint32_t *sw, Cvc5Term *val)
+

Get the representation of a floating-point value as its exponent width, significand width and a bit-vector value term.

+
+

Note

+

Asserts cvc5_term_is_fp_value().

+
+
+
Parameters:
+
    +
  • term – The term.

  • +
  • ew – The resulting exponent width.

  • +
  • sw – The resulting significand width.

  • +
  • val – The resulting bit-vector value term.

  • +
+
+
+
+ +
+
+bool cvc5_term_is_set_value(Cvc5Term term)
+

Determine if a given term is a set value.

+

A term is a set value if it is considered to be a (canonical) constant set value. A canonical set value is one whose AST is:

+

(union (singleton c1) ... (union (singleton c_{n-1}) (singleton c_n))))
+
+
+

+

where \(c_1 ... c_n\) are values ordered by id such that \(c_1 > ... > c_n\).

+
+

Note

+

A universe set term (kind CVC5_KIND_SET_UNIVERSE) is not considered to be a set value.

+
+
+
Parameters:
+

term – The term.

+
+
Returns:
+

True if the term is a set value.

+
+
+
+ +
+
+const Cvc5Term *cvc5_term_get_set_value(Cvc5Term term, size_t *size)
+

Get a set value as an array of terms.

+
+

Note

+

Asserts cvc5_term_is_set_value().

+
+
+
Parameters:
+
    +
  • term – The term.

  • +
  • size – The size of the resulting array.

  • +
+
+
Returns:
+

The representation of a set value as an array of terms.

+
+
+
+ +
+
+bool cvc5_term_is_sequence_value(Cvc5Term term)
+

Determine if a given term is a sequence value.

+

A term is a sequence value if it has kind #CONST_SEQUENCE. In contrast to values for the set sort (as described in isSetValue()), a sequence value is represented as a Term with no children.

+

Semantically, a sequence value is a concatenation of unit sequences whose elements are themselves values. For example:

+

(seq.++ (seq.unit 0) (seq.unit 1))
+
+
+

+

The above term has two representations in Term. One is as the sequence concatenation term:

+

(SEQ_CONCAT (SEQ_UNIT 0) (SEQ_UNIT 1))
+
+
+

+

where 0 and 1 are the terms corresponding to the integer constants 0 and 1.

+

Alternatively, the above term is represented as the constant sequence value:

+

CONST_SEQUENCE_{0,1}
+
+
+

+

where calling getSequenceValue() on the latter returns the vector {0, 1}.

+

The former term is not a sequence value, but the latter term is.

+

Constant sequences cannot be constructed directly via the API. They are returned in response to API calls such cvc5_get_value() and cvc5_simplify().

+
+
Parameters:
+

term – The term.

+
+
Returns:
+

True if the term is a sequence value.

+
+
+
+ +
+
+const Cvc5Term *cvc5_term_get_sequence_value(Cvc5Term term, size_t *size)
+

Get a sequence value as an array of terms.

+ +
+
Parameters:
+
    +
  • term – The term.

  • +
  • size – The size of the resulting array.

  • +
+
+
Returns:
+

The representation of a sequence value as a vector of terms.

+
+
+
+ +
+
+bool cvc5_term_is_cardinality_constraint(Cvc5Term term)
+

Determine if a given term is a cardinality constraint.

+
+
Parameters:
+

term – The term.

+
+
Returns:
+

True if the term is a cardinality constraint.

+
+
+
+ +
+
+void cvc5_term_get_cardinality_constraint(Cvc5Term term, Cvc5Sort *sort, uint32_t *upper)
+

Get a cardinality constraint as a pair of its sort and upper bound.

+ +
+
Parameters:
+
    +
  • term – The term.

  • +
  • sort – The resulting sort.

  • +
  • upper – The resulting upper bound.

  • +
+
+
Returns:
+

The sort the cardinality constraint is for and its upper bound.

+
+
+
+ +
+
+bool cvc5_term_is_real_algebraic_number(Cvc5Term term)
+

Determine if a given term is a real algebraic number.

+
+
Parameters:
+

term – The term.

+
+
Returns:
+

True if the term is a real algebraic number.

+
+
+
+ +
+
+Cvc5Term cvc5_term_get_real_algebraic_number_defining_polynomial(Cvc5Term term, Cvc5Term v)
+

Get the defining polynomial for a real algebraic number term, expressed in terms of the given variable.

+ +
+
Parameters:
+
    +
  • term – The real algebraic number term.

  • +
  • v – The variable over which to express the polynomial.

  • +
+
+
Returns:
+

The defining polynomial.

+
+
+
+ +
+
+Cvc5Term cvc5_term_get_real_algebraic_number_lower_bound(Cvc5Term term)
+

Get the lower bound for a real algebraic number value.

+ +
+
Parameters:
+

term – The real algebraic number value.

+
+
Returns:
+

The lower bound.

+
+
+
+ +
+
+Cvc5Term cvc5_term_get_real_algebraic_number_upper_bound(Cvc5Term term)
+

Get the upper bound for a real algebraic number value.

+ +
+
Parameters:
+

term – The real algebraic number value.

+
+
Returns:
+

The upper bound.

+
+
+
+ +
+
+bool cvc5_term_is_skolem(Cvc5Term term)
+

Is the given term a skolem?

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+

term – The skolem.

+
+
Returns:
+

True if the term is a skolem function.

+
+
+
+ +
+
+Cvc5SkolemId cvc5_term_get_skolem_id(Cvc5Term term)
+

Get skolem identifier of a term.

+
+

Note

+

Asserts isSkolem().

+
+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+

term – The skolem.

+
+
Returns:
+

The skolem identifier of the term.

+
+
+
+ +
+
+const Cvc5Term *cvc5_term_get_skolem_indices(Cvc5Term term, size_t *size)
+

Get the skolem indices of a term.

+
+

Note

+

Asserts isSkolem().

+
+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+
    +
  • term – The skolem.

  • +
  • size – The size of the resulting array.

  • +
+
+
Returns:
+

The skolem indices of the term. This is list of terms that the skolem function is indexed by. For example, the array diff skolem Cvc5SkolemId::ARRAY_DEQ_DIFF is indexed by two arrays.

+
+
+
+ +
+
+size_t cvc5_term_hash(Cvc5Term term)
+

Compute the hash value of a term.

+
+
Parameters:
+

term – The term.

+
+
Returns:
+

The hash value of the term.

+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5termmanager.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5termmanager.html new file mode 100644 index 0000000000..4d77570793 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/c/types/cvc5termmanager.html @@ -0,0 +1,300 @@ + + + + + + + + + + + + + Cvc5TermManager — cvc5 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Cvc5TermManager

+

This struct represents a cvc5 term manager instance.

+

Terms, Sorts and +Ops are not tied to a Cvc5 +but associated with a Cvc5TermManager instance, which can be +shared between solver instances (and thus allows sharing of terms and sorts +between solver instances).

+

Term kinds are defined via enum Cvc5Kind, and sort +kinds via enum Cvc5SortKind.

+

Solver options are configured via cvc5_set_option() +and queried via cvc5_get_option() +(for more information on configuration options, see Options). +Information about a specific option can be retrieved via +cvc5_get_option_info() +(see Cvc5OptionInfo).

+
+
+
+
+
+
+
+typedef struct Cvc5TermManager Cvc5TermManager
+

A cvc5 term (and sort) manager.

+
+ +
+
+

Warning

+

doxygengroup: Cannot find group “c_cvc5termmanager” in doxygen xml output for project “cvc5_c” from directory: /home/runner/work/cvc5/cvc5/build-shared/docs/api/c/doxygen/xml

+
+
+
+

Sort Creation

+
+

Warning

+

doxygengroup: Cannot find group “c_sort_creation” in doxygen xml output for project “cvc5_c” from directory: /home/runner/work/cvc5/cvc5/build-shared/docs/api/c/doxygen/xml

+
+
+
+
+

Operator Creation

+
+
+Cvc5Op cvc5_mk_op(Cvc5TermManager *tm, Cvc5Kind kind, size_t size, const uint32_t idxs[])
+

Create operator of Kind:

+

+

See Cvc5Kind for a description of the parameters.

+
+

Note

+

If idxs is empty, the Cvc5Op simply wraps the Cvc5Kind. The Cvc5Kind can be used in cvc5_mk_term directly without creating a Cvc5Op first.

+
+
+
Parameters:
+
    +
  • tm – The term manager instance.

  • +
  • kind – The kind of the operator.

  • +
  • size – The number of indices of the operator.

  • +
  • idxs – The indices.

  • +
+
+
+
+ +
+
+Cvc5Op cvc5_mk_op_from_str(Cvc5TermManager *tm, Cvc5Kind kind, const char *arg)
+

Create operator of kind:

+

+

See CKind for a description of the parameters.

+
+
Parameters:
+
    +
  • tm – The term manager instance.

  • +
  • kind – The kind of the operator.

  • +
  • arg – The string argument to this operator.

  • +
+
+
+
+ +
+
+
+

Term Creation

+
+

Warning

+

doxygengroup: Cannot find group “c_term_creation” in doxygen xml output for project “cvc5_c” from directory: /home/runner/work/cvc5/cvc5/build-shared/docs/api/c/doxygen/xml

+
+
+
+
+

Datatype Declaration Creation

+
+

Warning

+

doxygengroup: Cannot find group “c_dt_decl_creation” in doxygen xml output for project “cvc5_c” from directory: /home/runner/work/cvc5/cvc5/build-shared/docs/api/c/doxygen/xml

+
+
+
+
+

Datatype Constructor Declaration Creation

+
+

Warning

+

doxygengroup: Cannot find group “c_dt_cons_decl_creation” in doxygen xml output for project “cvc5_c” from directory: /home/runner/work/cvc5/cvc5/build-shared/docs/api/c/doxygen/xml

+
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/command.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/command.html new file mode 100644 index 0000000000..95717fe2b9 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/command.html @@ -0,0 +1,254 @@ + + + + + + + + + + + + + Command — cvc5 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Command

+

Encapsulation of a command. +Commands are constructed by the input parser and can be invoked on +the solver and symbol manager.

+
+
+
+class Command
+

Encapsulation of a command.

+

Commands are constructed by the input parser and can be invoked on the solver and symbol manager.

+
+

Public Functions

+
+
+Command()
+
+ +
+
+void invoke(cvc5::Solver *solver, parser::SymbolManager *sm, std::ostream &out)
+

Invoke the command on the solver and symbol manager sm, prints the result to output stream out.

+
+
Parameters:
+
    +
  • solver – The solver to invoke the command on.

  • +
  • sm – The symbol manager to invoke the command on.

  • +
  • out – The output stream to write the result of the command on.

  • +
+
+
+
+ +
+
+std::string toString() const
+

Get a string representation of this command.

+
+
Returns:
+

The string representation.

+
+
+
+ +
+
+std::string getCommandName() const
+

Get the name for this command, e.g., “assert”.

+
+
Returns:
+

The name of this command.

+
+
+
+ +
+
+bool isNull() const
+

Determine if this command is null.

+
+
Returns:
+

True if this command is null.

+
+
+
+ +
+
+

Friends

+
+
+friend class main::CommandExecutor
+
+ +
+
+friend class internal::InteractiveShell
+
+ +
+
+friend class main::ExecutionContext
+
+ +
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/datatype.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/datatype.html new file mode 100644 index 0000000000..3684067496 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/datatype.html @@ -0,0 +1,587 @@ + + + + + + + + + + + + + Datatype — cvc5 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Datatype

+

This class represents a datatype. A cvc5::Datatype is encapsulated +by a datatype Sort and can be retrieved from a +datatype sort via cvc5::Sort::getDatatype(). +Datatypes are specified by a cvc5::DatatypeDecl via +cvc5::TermManager::mkDatatypeDecl() when constructing a datatype +sort.

+
+ +
+
+
+class Datatype
+

A cvc5 datatype.

+
+

Public Functions

+
+
+Datatype()
+

Constructor.

+
+ +
+
+~Datatype()
+

Destructor.

+
+ +
+
+bool operator==(const Datatype &dt) const
+

Equality operator.

+
+
Parameters:
+

dt – The datatype to compare to for equality.

+
+
Returns:
+

True if the datatypes are equal.

+
+
+
+ +
+
+DatatypeConstructor operator[](size_t idx) const
+

Get the datatype constructor at a given index.

+
+
Parameters:
+

idx – The index of the datatype constructor to return.

+
+
Returns:
+

The datatype constructor with the given index.

+
+
+
+ +
+
+DatatypeConstructor operator[](const std::string &name) const
+

Get the datatype constructor with the given name.

+
+

Note

+

This is a linear search through the constructors, so in case of multiple, similarly-named constructors, the first is returned.

+
+
+
Parameters:
+

name – The name of the datatype constructor.

+
+
Returns:
+

The datatype constructor with the given name.

+
+
+
+ +
+
+DatatypeConstructor getConstructor(const std::string &name) const
+
+ +
+
+DatatypeSelector getSelector(const std::string &name) const
+

Get the datatype selector with the given name.

+
+

Note

+

This is a linear search through the constructors and their selectors, so in case of multiple, similarly-named selectors, the first is returned.

+
+
+
Parameters:
+

name – The name of the datatype selector.

+
+
Returns:
+

The datatype selector with the given name.

+
+
+
+ +
+
+std::string getName() const
+

Get the name of this datatype.

+
+
Returns:
+

The name.

+
+
+
+ +
+
+size_t getNumConstructors() const
+

Get the number of constructors of this datatype.

+
+
Returns:
+

The number of constructors.

+
+
+
+ +
+
+std::vector<Sort> getParameters() const
+

Get the parameters of this datatype, if it is parametric.

+
+

Note

+

Asserts that this datatype is parametric.

+
+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Returns:
+

The parameters of this datatype.

+
+
+
+ +
+
+bool isParametric() const
+

Determine if this datatype is parametric.

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Returns:
+

True if this datatype is parametric.

+
+
+
+ +
+
+bool isCodatatype() const
+

Determine if this datatype corresponds to a co-datatype.

+
+
Returns:
+

True if this datatype corresponds to a co-datatype.

+
+
+
+ +
+
+bool isTuple() const
+

Determine if this datatype corresponds to a tuple.

+
+
Returns:
+

True if this datatype corresponds to a tuple.

+
+
+
+ +
+
+bool isRecord() const
+

Determine if this datatype corresponds to a record.

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Returns:
+

True if this datatype corresponds to a record.

+
+
+
+ +
+
+bool isFinite() const
+

Determine if a given datatype is finite.

+
+
Returns:
+

True if this datatype is finite.

+
+
+
+ +
+
+bool isWellFounded() const
+

Determine if this datatype is well-founded.

+

If this datatype is not a codatatype, this returns false if there are no values of this datatype that are of finite size.

+
+
Returns:
+

True if this datatype is well-founded.

+
+
+
+ +
+
+bool isNull() const
+
+
Returns:
+

True if this Datatype is a null object.

+
+
+
+ +
+
+std::string toString() const
+
+
Returns:
+

A string representation of this datatype.

+
+
+
+ +
+
+const_iterator begin() const
+
+
Returns:
+

An iterator to the first constructor of this datatype.

+
+
+
+ +
+
+const_iterator end() const
+
+
Returns:
+

An iterator to one-off-the-last constructor of this datatype.

+
+
+
+ +
+
+

Friends

+
+
+friend struct std::hash< Datatype >
+
+ +
+
+
+class const_iterator
+

Iterator for the constructors of a datatype.

+
+

Public Types

+
+
+using iterator_category = std::forward_iterator_tag
+

Iterator tag

+
+ +
+
+using value_type = Datatype
+

The type of the item

+
+ +
+
+using pointer = const Datatype*
+

The pointer type of the item

+
+ +
+
+using reference = const Datatype&
+

The reference type of the item

+
+ +
+
+using difference_type = std::ptrdiff_t
+

The type returned when two iterators are subtracted

+
+ +
+
+

Public Functions

+
+
+const_iterator()
+

Nullary constructor (required for Cython).

+
+ +
+
+const_iterator &operator=(const const_iterator &it)
+

Assignment operator.

+
+
Parameters:
+

it – The iterator to assign to.

+
+
Returns:
+

The reference to the iterator after assignment.

+
+
+
+ +
+
+bool operator==(const const_iterator &it) const
+

Equality operator.

+
+
Parameters:
+

it – The iterator to compare to for equality.

+
+
Returns:
+

True if the iterators are equal.

+
+
+
+ +
+
+bool operator!=(const const_iterator &it) const
+

Disequality operator.

+
+
Parameters:
+

it – The iterator to compare to for disequality.

+
+
Returns:
+

True if the iterators are disequal.

+
+
+
+ +
+
+const_iterator &operator++()
+

Increment operator (prefix).

+
+
Returns:
+

A reference to the iterator after incrementing by one.

+
+
+
+ +
+
+const_iterator operator++(int)
+

Increment operator (postfix).

+
+
Returns:
+

A reference to the iterator after incrementing by one.

+
+
+
+ +
+
+const DatatypeConstructor &operator*() const
+

Dereference operator.

+
+
Returns:
+

A reference to the constructor this iterator points to.

+
+
+
+ +
+
+const DatatypeConstructor *operator->() const
+

Dereference operator.

+
+
Returns:
+

A pointer to the constructor this iterator points to.

+
+
+
+ +
+
+ +
+ +
+
+
+std::ostream &cvc5::operator<<(std::ostream &out, const Datatype &dtype)
+

Serialize a datatype to given stream.

+
+
Parameters:
+
    +
  • out – The output stream.

  • +
  • dtype – The datatype to be serialized to given stream.

  • +
+
+
Returns:
+

The output stream.

+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/datatypeconstructor.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/datatypeconstructor.html new file mode 100644 index 0000000000..52c200cd79 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/datatypeconstructor.html @@ -0,0 +1,546 @@ + + + + + + + + + + + + + DatatypeConstructor — cvc5 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

DatatypeConstructor

+

This class represents a datatype constructor. Datatype constructors are +specified by a cvc5::DatatypeConstructorDecl via +cvc5::TermManager::mkDatatypeConstructorDecl() when constructing a +datatype sort and can be retrieved from a cvc5::Datatype via +cvc5::Datatype::getConstructor().

+
+ +
+
+
+class DatatypeConstructor
+

A cvc5 datatype constructor.

+
+

Public Functions

+
+
+DatatypeConstructor()
+

Constructor.

+
+ +
+
+~DatatypeConstructor()
+

Destructor.

+
+ +
+
+bool operator==(const DatatypeConstructor &cons) const
+

Equality operator.

+
+
Parameters:
+

cons – The datatype constructor to compare to for equality.

+
+
Returns:
+

True if the datatype constructors are equal.

+
+
+
+ +
+
+std::string getName() const
+

Get the name of this datatype constructor.

+
+
Returns:
+

The name.

+
+
+
+ +
+
+Term getTerm() const
+

Get the constructor term of this datatype constructor.

+

Datatype constructors are a special class of function-like terms whose sort is datatype constructor (Sort::isDatatypeConstructor()). All datatype constructors, including nullary ones, should be used as the first argument to Terms whose kind is #APPLY_CONSTRUCTOR. For example, the nil list can be constructed by Solver::mkTerm(Kind::APPLY_CONSTRUCTOR, {t}), where t is the term returned by this function.

+
+

Note

+

This function should not be used for parametric datatypes. Instead, use the function DatatypeConstructor::getInstantiatedTerm() below.

+
+
+
Returns:
+

The constructor term.

+
+
+
+ +
+
+Term getInstantiatedTerm(const Sort &retSort) const
+

Get the constructor term of this datatype constructor whose return type is retSort.

+

This function is intended to be used on constructors of parametric datatypes and can be seen as returning the constructor term that has been explicitly cast to the given sort.

+

This function is required for constructors of parametric datatypes whose return type cannot be determined by type inference. For example, given:

+

(declare-datatype List
+    (par (T) ((nil) (cons (head T) (tail (List T))))))
+
+
+

+

The type of nil terms must be provided by the user. In SMT version 2.6, this is done via the syntax for qualified identifiers:

+

(as nil (List Int))
+
+
+

+

This function is equivalent of applying the above, where this DatatypeConstructor is the one corresponding to nil, and retSort is (List Int).

+
+

Note

+

The returned constructor term t is used to construct the above (nullary) application of nil with Solver::mkTerm(Kind::APPLY_CONSTRUCTOR, {t}).

+
+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+

retSort – The desired return sort of the constructor.

+
+
Returns:
+

The constructor term.

+
+
+
+ +
+
+Term getTesterTerm() const
+

Get the tester term of this datatype constructor.

+

Similar to constructors, testers are a class of function-like terms of tester sort (Sort::isDatatypeConstructor()) which should be used as the first argument of Terms of kind #APPLY_TESTER.

+
+
Returns:
+

The tester term.

+
+
+
+ +
+
+size_t getNumSelectors() const
+
+
Returns:
+

The number of selectors (so far) of this Datatype constructor.

+
+
+
+ +
+
+DatatypeSelector operator[](size_t index) const
+
+
Returns:
+

The i^th DatatypeSelector.

+
+
+
+ +
+
+DatatypeSelector operator[](const std::string &name) const
+

Get the datatype selector with the given name.

+
+

Note

+

This is a linear search through the selectors, so in case of multiple, similarly-named selectors, the first is returned.

+
+
+
Parameters:
+

name – The name of the datatype selector.

+
+
Returns:
+

The first datatype selector with the given name.

+
+
+
+ +
+
+DatatypeSelector getSelector(const std::string &name) const
+

Get the datatype selector with the given name.

+
+

Note

+

This is a linear search through the selectors, so in case of multiple, similarly-named selectors, the first is returned.

+
+
+
Parameters:
+

name – The name of the datatype selector.

+
+
Returns:
+

The first datatype selector with the given name.

+
+
+
+ +
+
+bool isNull() const
+
+
Returns:
+

True if this DatatypeConstructor is a null object.

+
+
+
+ +
+
+std::string toString() const
+

Get a string representation of this datatype constructor.

+
+
Returns:
+

The string representation.

+
+
+
+ +
+
+const_iterator begin() const
+
+
Returns:
+

An iterator to the first selector of this constructor.

+
+
+
+ +
+
+const_iterator end() const
+
+
Returns:
+

An iterator to one-off-the-last selector of this constructor.

+
+
+
+ +
+
+

Friends

+
+
+friend struct std::hash< DatatypeConstructor >
+
+ +
+
+
+class const_iterator
+

Iterator for the selectors of a datatype constructor.

+
+

Public Types

+
+
+using iterator_category = std::forward_iterator_tag
+

Iterator tag

+
+ +
+
+using value_type = DatatypeConstructor
+

The type of the item

+
+ +
+
+using pointer = const DatatypeConstructor*
+

The pointer type of the item

+
+ +
+
+using reference = const DatatypeConstructor&
+

The reference type of the item

+
+ +
+
+using difference_type = std::ptrdiff_t
+

The type returned when two iterators are subtracted

+
+ +
+
+

Public Functions

+
+
+const_iterator()
+

Nullary constructor (required for Cython).

+
+ +
+
+const_iterator &operator=(const const_iterator &it)
+

Assignment operator.

+
+
Parameters:
+

it – The iterator to assign to.

+
+
Returns:
+

The reference to the iterator after assignment.

+
+
+
+ +
+
+bool operator==(const const_iterator &it) const
+

Equality operator.

+
+
Parameters:
+

it – The iterator to compare to for equality.

+
+
Returns:
+

True if the iterators are equal.

+
+
+
+ +
+
+bool operator!=(const const_iterator &it) const
+

Disequality operator.

+
+
Parameters:
+

it – The iterator to compare to for disequality.

+
+
Returns:
+

True if the iterators are disequal.

+
+
+
+ +
+
+const_iterator &operator++()
+

Increment operator (prefix).

+
+
Returns:
+

A reference to the iterator after incrementing by one.

+
+
+
+ +
+
+const_iterator operator++(int)
+

Increment operator (postfix).

+
+
Returns:
+

A reference to the iterator after incrementing by one.

+
+
+
+ +
+
+const DatatypeSelector &operator*() const
+

Dereference operator.

+
+
Returns:
+

A reference to the selector this iterator points to.

+
+
+
+ +
+
+const DatatypeSelector *operator->() const
+

Dereference operator.

+
+
Returns:
+

A pointer to the selector this iterator points to.

+
+
+
+ +
+
+ +
+ +
+
+
+std::ostream &cvc5::operator<<(std::ostream &out, const DatatypeConstructor &ctor)
+

Serialize a datatype constructor to given stream.

+
+
Parameters:
+
    +
  • out – The output stream.

  • +
  • ctor – The datatype constructor to be serialized to given stream.

  • +
+
+
Returns:
+

The output stream.

+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/datatypeconstructordecl.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/datatypeconstructordecl.html new file mode 100644 index 0000000000..d6b6bd9f71 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/datatypeconstructordecl.html @@ -0,0 +1,321 @@ + + + + + + + + + + + + + DatatypeConstructorDecl — cvc5 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

DatatypeConstructorDecl

+

This class encapsulates a datatype constructor declaration. +A DatatypeConstructorDecl +is constructed via cvc5::Solver::mkDatatypeConstructorDecl(). +This is not yet a datatype constructor itself, +but the representation of the specification for creating a datatype constructor +of a datatype Sort via +cvc5::Solver::mkDatatypeSort() and +cvc5::Solver::mkDatatypeSorts().

+
+ +
+
+
+class DatatypeConstructorDecl
+

A cvc5 datatype constructor declaration. A datatype constructor declaration is a specification used for creating a datatype constructor.

+
+

Public Functions

+
+
+DatatypeConstructorDecl()
+

Constructor.

+
+ +
+
+~DatatypeConstructorDecl()
+

Destructor.

+
+ +
+
+bool operator==(const DatatypeConstructorDecl &decl) const
+

Equality operator.

+
+
Parameters:
+

decl – The datatype constructor declaration to compare to for equality.

+
+
Returns:
+

True if the datatype constructor declarations are equal.

+
+
+
+ +
+
+void addSelector(const std::string &name, const Sort &sort)
+

Add datatype selector declaration.

+
+
Parameters:
+
    +
  • name – The name of the datatype selector declaration to add.

  • +
  • sort – The codomain sort of the datatype selector declaration to add.

  • +
+
+
+
+ +
+
+void addSelectorSelf(const std::string &name)
+

Add datatype selector declaration whose codomain type is the datatype itself.

+
+
Parameters:
+

name – The name of the datatype selector declaration to add.

+
+
+
+ +
+
+void addSelectorUnresolved(const std::string &name, const std::string &unresDataypeName)
+

Add datatype selector declaration whose codomain sort is an unresolved datatype with the given name.

+
+
Parameters:
+
    +
  • name – The name of the datatype selector declaration to add.

  • +
  • unresDataypeName – The name of the unresolved datatype. The codomain of the selector will be the resolved datatype with the given name.

  • +
+
+
+
+ +
+
+bool isNull() const
+
+
Returns:
+

True if this DatatypeConstructorDecl is a null declaration.

+
+
+
+ +
+
+std::string toString() const
+
+
Returns:
+

A string representation of this datatype constructor declaration.

+
+
+
+ +
+
+

Friends

+
+
+friend struct std::hash< DatatypeConstructorDecl >
+
+ +
+
+ +
+
+
+std::ostream &cvc5::operator<<(std::ostream &out, const DatatypeConstructorDecl &ctordecl)
+

Serialize a datatype constructor declaration to given stream.

+
+
Parameters:
+
    +
  • out – The output stream.

  • +
  • ctordecl – The datatype constructor declaration to be serialized.

  • +
+
+
Returns:
+

The output stream.

+
+
+
+ +
+
+std::ostream &cvc5::operator<<(std::ostream &out, const std::vector<DatatypeConstructorDecl> &vector)
+

Serialize a vector of datatype constructor declarations to given stream.

+
+
Parameters:
+
    +
  • out – The output stream.

  • +
  • vector – The vector of datatype constructor declarations to be. serialized to the given stream

  • +
+
+
Returns:
+

The output stream.

+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/datatypedecl.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/datatypedecl.html new file mode 100644 index 0000000000..dc84a3de72 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/datatypedecl.html @@ -0,0 +1,329 @@ + + + + + + + + + + + + + DatatypeDecl — cvc5 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

DatatypeDecl

+

This class encapsulates a datatype declaration. A datatype declaration is +constructed via cvc5::Solver::mkDatatypeDecl(). This is not a +datatype itself, but the representation of the +specification for creating a datatype Sort via +cvc5::Solver::mkDatatypeSort() and +cvc5::Solver::mkDatatypeSorts().

+
+ +
+
+
+class DatatypeDecl
+

A cvc5 datatype declaration. A datatype declaration is not itself a datatype (see Datatype), but a specification for creating a datatype sort.

+

The interface for a datatype declaration coincides with the syntax for the SMT-LIB 2.6 command declare-datatype, or a single datatype within the declare-datatypes command.

+

Datatype sorts can be constructed from a DatatypeDecl using:

+

+
+

Public Functions

+
+
+DatatypeDecl()
+

Constructor.

+
+ +
+
+~DatatypeDecl()
+

Destructor.

+
+ +
+
+bool operator==(const DatatypeDecl &decl) const
+

Equality operator.

+
+
Parameters:
+

decl – The datatype declaration to compare to for equality.

+
+
Returns:
+

True if the datatype declarations are equal.

+
+
+
+ +
+
+void addConstructor(const DatatypeConstructorDecl &ctor)
+

Add datatype constructor declaration.

+
+
Parameters:
+

ctor – The datatype constructor declaration to add.

+
+
+
+ +
+
+size_t getNumConstructors() const
+

Get the number of constructors (so far) for this Datatype declaration.

+
+
Returns:
+

The number of constructors.

+
+
+
+ +
+
+bool isParametric() const
+

Determine if this Datatype declaration is parametric.

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Returns:
+

True if this datatype declaration is parametric.

+
+
+
+ +
+
+bool isResolved() const
+

Determine if this datatype declaration is resolved (has already been used to declare a datatype).

+
+
Returns:
+

True if this datatype declaration is resolved.

+
+
+
+ +
+
+bool isNull() const
+

Determine if this datatype declaration is nullary.

+
+
Returns:
+

True if this DatatypeDecl is a null object.

+
+
+
+ +
+
+std::string toString() const
+

Get a string representation of this datatype declaration.

+
+
Returns:
+

A string representation.

+
+
+
+ +
+
+std::string getName() const
+

Get the name of this datatype declaration.

+
+
Returns:
+

The name.

+
+
+
+ +
+
+

Friends

+
+
+friend struct std::hash< DatatypeDecl >
+
+ +
+
+ +
+
+
+std::ostream &cvc5::operator<<(std::ostream &out, const DatatypeDecl &dtdecl)
+

Serialize a datatype declaration to given stream.

+
+
Parameters:
+
    +
  • out – The output stream.

  • +
  • dtdecl – The datatype declaration to be serialized to the given stream.

  • +
+
+
Returns:
+

The output stream.

+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/datatypeselector.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/datatypeselector.html new file mode 100644 index 0000000000..a8aaae0b9d --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/datatypeselector.html @@ -0,0 +1,310 @@ + + + + + + + + + + + + + DatatypeSelector — cvc5 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

DatatypeSelector

+

This class represents a datatype selector. Datatype selectors are +specified via cvc5::DatatypeConstructorDecl::addSelector(), +cvc5::DatatypeConstructorDecl::addSelectorSelf() +and cvc5::DatatypeConstructorDecl::addSelectorUnresolved() +when constructing a datatype sort and can be retrieved from a +cvc5::DatatypeConstructor via +cvc5::DatatypeConstructor::getSelector().

+
+ +
+
+
+class DatatypeSelector
+

A cvc5 datatype selector.

+
+

Public Functions

+
+
+DatatypeSelector()
+

Constructor.

+
+ +
+
+~DatatypeSelector()
+

Destructor.

+
+ +
+
+bool operator==(const DatatypeSelector &sel) const
+

Equality operator.

+
+
Parameters:
+

sel – The datatype selector to compare to for equality.

+
+
Returns:
+

True if the datatype selectors are equal.

+
+
+
+ +
+
+std::string getName() const
+

Get the name of this datatype selector.

+
+
Returns:
+

The name of this Datatype selector.

+
+
+
+ +
+
+Term getTerm() const
+

Get the selector term of this datatype selector.

+

Selector terms are a class of function-like terms of selector sort (Sort::isDatatypeSelector()), and should be used as the first argument of Terms of kind #APPLY_SELECTOR.

+
+
Returns:
+

The selector term.

+
+
+
+ +
+
+Term getUpdaterTerm() const
+

Get the updater term of this datatype selector.

+

Similar to selectors, updater terms are a class of function-like terms of updater Sort (Sort::isDatatypeUpdater()), and should be used as the first argument of Terms of kind #APPLY_UPDATER.

+
+
Returns:
+

The updater term.

+
+
+
+ +
+
+Sort getCodomainSort() const
+

Get the codomain sort of this selector.

+
+
Returns:
+

The codomain sort of this selector.

+
+
+
+ +
+
+bool isNull() const
+
+
Returns:
+

True if this DatatypeSelector is a null object.

+
+
+
+ +
+
+std::string toString() const
+

Get the string representation of this datatype selector.

+
+
Returns:
+

The string representation.

+
+
+
+ +
+
+

Friends

+
+
+friend struct std::hash< DatatypeSelector >
+
+ +
+
+ +
+
+
+std::ostream &cvc5::operator<<(std::ostream &out, const DatatypeSelector &stor)
+

Serialize a datatype selector to given stream.

+
+
Parameters:
+
    +
  • out – The output stream.

  • +
  • stor – The datatype selector to be serialized to given stream.

  • +
+
+
Returns:
+

The output stream.

+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/driveroptions.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/driveroptions.html new file mode 100644 index 0000000000..8b11afc033 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/driveroptions.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + DriverOptions — cvc5 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

DriverOptions

+
+
+class DriverOptions
+

This class provides type-safe access to a few options that frontends are +likely to use, but can not be not be communicated appropriately via the +regular Solver::getOption() or +Solver::getOptionInfo() +functions. This includes, e.g., the input and output streams that can be +configured via err, in and +out. This class does not store the options itself, +but only acts as a wrapper to the solver object. It can thus no longer be +used after the solver object has been destroyed.

+
+

Public Functions

+
+
+std::istream &in() const
+

Access the solver’s input stream

+
+ +
+
+std::ostream &err() const
+

Access the solver’s error output stream

+
+ +
+
+std::ostream &out() const
+

Access the solver’s output stream

+
+ +
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/grammar.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/grammar.html new file mode 100644 index 0000000000..60826f40a3 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/grammar.html @@ -0,0 +1,330 @@ + + + + + + + + + + + + + Grammar — cvc5 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Grammar

+

This class encapsulates a SyGuS grammar. It is created via +cvc5::Solver::mkGrammar() and allows to define a context-free +grammar of terms, according to the definition of grammars in the SyGuS IF 2.1 +standard.

+
+ +
+
+
+class Grammar
+

A Sygus Grammar. This class can be used to define a context-free grammar of terms. Its interface coincides with the definition of grammars (GrammarDef) in the SyGuS IF 2.1 standard.

+
+

Public Functions

+
+
+Grammar()
+

Nullary constructor. Needed for the Cython API.

+
+ +
+
+~Grammar()
+

Destructor for bookeeping.

+
+ +
+
+bool isNull() const
+

Determine if this is the null grammar (Grammar::Grammar()).

+
+
Returns:
+

True if this grammar is the null grammar.

+
+
+
+ +
+
+bool operator==(const Grammar &grammar) const
+

Operator overloading for referential equality of two grammars.

+
+
Parameters:
+

grammar – The grammarto compare to for equality.

+
+
Returns:
+

True if both grammars point to the same internal grammar object.

+
+
+
+ +
+
+bool operator!=(const Grammar &grammar) const
+

Referential disequality operator.

+
+
Parameters:
+

grammar – The grammar to compare to for disequality.

+
+
Returns:
+

True if both grammars point to different internal grammar objects.

+
+
+
+ +
+
+void addRule(const Term &ntSymbol, const Term &rule)
+

Add rule to the set of rules corresponding to ntSymbol.

+
+
Parameters:
+
    +
  • ntSymbol – The non-terminal to which the rule is added.

  • +
  • rule – The rule to add.

  • +
+
+
+
+ +
+
+void addRules(const Term &ntSymbol, const std::vector<Term> &rules)
+

Add rules to the set of rules corresponding to ntSymbol.

+
+
Parameters:
+
    +
  • ntSymbol – The non-terminal to which the rules are added.

  • +
  • rules – The rules to add.

  • +
+
+
+
+ +
+
+void addAnyConstant(const Term &ntSymbol)
+

Allow ntSymbol to be an arbitrary constant.

+
+
Parameters:
+

ntSymbol – The non-terminal allowed to be any constant.

+
+
+
+ +
+
+void addAnyVariable(const Term &ntSymbol)
+

Allow ntSymbol to be any input variable to corresponding synth-fun/synth-inv with the same sort as ntSymbol.

+
+
Parameters:
+

ntSymbol – The non-terminal allowed to be any input variable.

+
+
+
+ +
+
+std::string toString() const
+
+
Returns:
+

A string representation of this grammar.

+
+
+
+ +
+
+

Friends

+
+
+friend class parser::Cmd
+
+ +
+
+friend struct std::hash< Grammar >
+
+ +
+
+ +
+
+
+std::ostream &cvc5::operator<<(std::ostream &out, const Grammar &grammar)
+

Serialize a grammar to given stream.

+
+
Parameters:
+
    +
  • out – The output stream.

  • +
  • grammar – The grammar to be serialized to the given output stream.

  • +
+
+
Returns:
+

The output stream.

+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/inputparser.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/inputparser.html new file mode 100644 index 0000000000..feecd73240 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/inputparser.html @@ -0,0 +1,342 @@ + + + + + + + + + + + + + InputParser — cvc5 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

InputParser

+

This class is the main interface for retrieving commands and expressions from an +input.

+
+
+
+class InputParser
+

This class is the main interface for retrieving commands and expressions from an input using a parser.

+

After construction, it is expected that an input is first configured via, e.g., InputParser::setFileInput(), InputParser::setStreamInput(), InputParser::setStringInput() or InputParser::setIncrementalStringInput() and InputParser::appendIncrementalStringInput(). Then, functions InputParser::nextCommand() and InputParser::nextExpression() can be invoked to parse the input.

+

The input parser interacts with a symbol manager, which determines which symbols are defined in the current context, based on the background logic and user-defined symbols. If no symbol manager is provided, then the input parser will construct (an initially empty) one.

+

If provided, the symbol manager must have a logic that is compatible with the provided solver. That is, if both the solver and symbol manager have their logics set (SymbolManager::isLogicSet() and Solver::isLogicSet()), then their logics must be the same.

+

Upon setting an input source, if either the solver (resp. symbol manager) has its logic set, then the symbol manager (resp. solver) is set to use that logic, if its logic is not already set.

+
+

Public Functions

+
+
+InputParser(Solver *solver, SymbolManager *sm)
+

Construct an input parser

+
+
Parameters:
+
    +
  • solver – The solver (e.g. for constructing terms and sorts)

  • +
  • sm – The symbol manager, which contains a symbol table that maps symbols to terms and sorts. Must have a logic that is compatible with the solver.

  • +
+
+
+
+ +
+
+InputParser(Solver *solver)
+

Construct an input parser with an initially empty symbol manager.

+
+
Parameters:
+

solver – The solver (e.g. for constructing terms and sorts)

+
+
+
+ +
+
+Solver *getSolver()
+

Get the associated solver instance of this input parser.

+
+
Returns:
+

The solver instance.

+
+
+
+ +
+
+SymbolManager *getSymbolManager()
+

Get the associated symbol manager of this input parser.

+
+
Returns:
+

The associated symbol manager.

+
+
+
+ +
+
+void setFileInput(modes::InputLanguage lang, const std::string &filename)
+

Configure given file as input.

+
+
Parameters:
+
    +
  • lang – The input language (e.g., modes::InputLanguage::SMT_LIB_2_6).

  • +
  • filename – The name of the file to configure.

  • +
+
+
+
+ +
+
+void setStreamInput(modes::InputLanguage lang, std::istream &input, const std::string &name)
+

Configure given stream as input.

+
+
Parameters:
+
    +
  • lang – The input language.

  • +
  • input – The input stream.

  • +
  • name – The name of the stream, for use in error messages.

  • +
+
+
+
+ +
+
+void setStringInput(modes::InputLanguage lang, const std::string &input, const std::string &name)
+

Configure a given concrete input string as the input to this parser.

+
+
Parameters:
+
    +
  • lang – The input language of the input string.

  • +
  • input – The input string.

  • +
  • name – The name to use as input stream name for error messages.

  • +
+
+
+
+ +
+
+void setIncrementalStringInput(modes::InputLanguage lang, const std::string &name)
+

Configure that we will be feeding strings to this parser via appendIncrementalStringInput() below.

+
+
Parameters:
+
    +
  • lang – the input language

  • +
  • name – the name of the stream, for use in error messages

  • +
+
+
+
+ +
+
+void appendIncrementalStringInput(const std::string &input)
+

Append string to the input being parsed by this parser. Should be called after calling setIncrementalStringInput().

+
+
Parameters:
+

input – The input string

+
+
+
+ +
+
+Command nextCommand()
+

Parse and return the next command. Will initialize the logic to “ALL” or the forced logic if no logic is set prior to this point and a command is read that requires initializing the logic.

+
+
Returns:
+

The parsed command. This is the null command if no command was read.

+
+
+
+ +
+
+Term nextTerm()
+

Parse and return the next term. Requires setting the logic prior to this point.

+
+
Returns:
+

The parsed term.

+
+
+
+ +
+
+bool done() const
+

Is this parser done reading input?

+
+
Returns:
+

True if parser is done reading input.

+
+
+
+ +
+
+

Friends

+
+
+friend class internal::InteractiveShell
+
+ +
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/op.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/op.html new file mode 100644 index 0000000000..d480347621 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/op.html @@ -0,0 +1,340 @@ + + + + + + + + + + + + + Op — cvc5 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Op

+

This class encapsulates a cvc5 operator. A cvc5::Op is a term that +represents an operator, instantiated with the parameters it requires (if any).

+

A cvc5::Term of operator kind that does not require additional +parameters, e.g., cvc5::Kind::ADD, is usually constructed via +cvc5::Solver::mkTerm(Kind kind, const std::vector<Term>& children). +Alternatively, any cvc5::Term can be constructed via first +instantiating a corresponding cvc5::Op, even if the operator does +not require additional parameters. +Terms with operators that require additional parameters, e.g., +cvc5::Kind::BITVECTOR_EXTRACT, must be created via +cvc5::TermManager::mkOp() and +cvc5::TermManager::mkTerm(const Op& op, const std::vector<Term>& children).

+
+ +
+
+
+class Op
+

A cvc5 operator.

+

An operator is a term that represents certain operators, instantiated with its required parameters, e.g., a Term of kind #BITVECTOR_EXTRACT.

+
+

Public Functions

+
+
+Op()
+

Constructor.

+
+ +
+
+~Op()
+

Destructor.

+
+ +
+
+bool operator==(const Op &t) const
+

Syntactic equality operator.

+
+
Parameters:
+

t – The operator to compare to for equality.

+
+
Returns:
+

True if both operators are syntactically identical.

+
+
+
+ +
+
+bool operator!=(const Op &t) const
+

Syntactic disequality operator.

+
+
Parameters:
+

t – The operator to compare to for disequality.

+
+
Returns:
+

True if operators differ syntactically.

+
+
+
+ +
+
+Kind getKind() const
+

Get the kind of this operator.

+
+
Returns:
+

The kind of this operator.

+
+
+
+ +
+
+bool isNull() const
+

Determine if this operator is nullary.

+
+
Returns:
+

True if this operator is a nullary operator.

+
+
+
+ +
+
+bool isIndexed() const
+

Determine if this operator is indexed.

+
+
Returns:
+

True iff this operator is indexed.

+
+
+
+ +
+
+size_t getNumIndices() const
+

Get the number of indices of this operator.

+
+
Returns:
+

The number of indices of this operator.

+
+
+
+ +
+
+Term operator[](size_t i)
+

Get the index at position i of an indexed operator.

+
+
Parameters:
+

i – The position of the index to return.

+
+
Returns:
+

The index at position i.

+
+
+
+ +
+
+std::string toString() const
+

Get the string representation of this operator.

+
+
Returns:
+

A string representation of this operator.

+
+
+
+ +
+
+ +
+
+
+std::ostream &cvc5::operator<<(std::ostream &out, const Op &op)
+

Serialize an operator to given stream.

+
+
Parameters:
+
    +
  • out – The output stream.

  • +
  • op – The operator to be serialized to the given output stream.

  • +
+
+
Returns:
+

The output stream.

+
+
+
+ +
+
+
+template<>
struct hash<cvc5::Op>
+

Hash function for Ops.

+
+

Public Functions

+
+
+size_t operator()(const cvc5::Op &op) const
+
+ +
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/optioninfo.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/optioninfo.html new file mode 100644 index 0000000000..dc847d72c3 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/optioninfo.html @@ -0,0 +1,455 @@ + + + + + + + + + + + + + OptionInfo — cvc5 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

OptionInfo

+

This class encapsulates all the information associated with a configuration +option. It can be retrieved via cvc5::Solver::getOptionInfo() +and allows to query any configuration information associated with an option.

+
+ +
+
+
+struct OptionInfo
+

Holds information about a specific option, including its name, its +aliases, whether the option was explicitly set by the user, and information +concerning its value. It can be obtained via +Solver::getOptionInfo() and +allows for a more detailed inspection of options than +Solver::getOption(). The +valueInfo member holds any of the +following alternatives:

+
    +
  • VoidInfo if the option holds no +value (or the value has no native type)

  • +
  • ValueInfo if the option is of +type bool or std::string, holds the current value and the default +value.

  • +
  • NumberInfo if the option is of +type int64_t, uint64_t or double, holds the current and default +value, as well as the minimum and maximum.

  • +
  • ModeInfo if the option is a mode +option, holds the current and default values, as well as a list of valid +modes.

  • +
+

Additionally, this class provides convenience functions to obtain the +current value of an option in a type-safe manner using boolValue(), stringValue(), intValue(), uintValue() and doubleValue(). They assert that the option has the +respective type and return the current value.

+

If the option has a special type that is not covered by the above +alternatives, the valueInfo holds +a VoidInfo. Some options, that are +expected to be used by frontends (e.g., input and output streams) can also +be accessed using Solver::getDriverOptions().

+

+
+

Public Types

+
+
+using OptionInfoVariant = std::variant<VoidInfo, ValueInfo<bool>, ValueInfo<std::string>, NumberInfo<int64_t>, NumberInfo<uint64_t>, NumberInfo<double>, ModeInfo>
+

Possible types for valueInfo.

+
+ +
+
+

Public Functions

+
+
+bool boolValue() const
+

Get the current value as a bool.

+
+

Note

+

Asserts that valueInfo holds a bool.

+
+
+
Returns:
+

The current value as a bool.

+
+
+
+ +
+
+std::string stringValue() const
+

Get the current value as a std::string.

+
+

Note

+

Asserts that valueInfo holds a std::string.

+
+
+
Returns:
+

The current value as a std::string.

+
+
+
+ +
+
+int64_t intValue() const
+

Get the current value as an int64_t.

+
+

Note

+

Asserts that valueInfo holds an int64_t.

+
+
+
Returns:
+

The current value as a int64_t.

+
+
+
+ +
+
+uint64_t uintValue() const
+

Get the current value as a uint64_t.

+
+

Note

+

Asserts that valueInfo holds a uint64_t.

+
+
+
Returns:
+

The current value as a uint64_t.

+
+
+
+ +
+
+double doubleValue() const
+

Obtain the current value as a double.

+
+

Note

+

Asserts that valueInfo holds a double.

+
+
+
Returns:
+

The current value as a double.

+
+
+
+ +
+
+std::string toString() const
+

Get a string representation of an option info.

+
+
Returns:
+

The string representation.

+
+
+
+ +
+
+

Public Members

+
+
+std::string name
+

The option name

+
+ +
+
+std::vector<std::string> aliases
+

The option name aliases

+
+ +
+
+bool setByUser
+

Whether the option was explicitly set by the user

+
+ +
+
+bool isExpert
+

Whether this is an expert option

+
+ +
+
+bool isRegular
+

Whether this is a regular option

+
+ +
+
+OptionInfoVariant valueInfo
+

The option value information

+
+ +
+
+
+struct ModeInfo
+

Information for mode option values.

+
+

Public Members

+
+
+std::string defaultValue
+

The default value.

+
+ +
+
+std::string currentValue
+

The current value.

+
+ +
+
+std::vector<std::string> modes
+

The possible modes.

+
+ +
+
+ +
+
+template<typename T>
struct NumberInfo
+

Information for numeric values. T can be int64_t, uint64_t or double.

+
+

Public Members

+
+
+T defaultValue
+

The default value.

+
+ +
+
+T currentValue
+

The current value.

+
+ +
+
+std::optional<T> minimum
+

The optional minimum value.

+
+ +
+
+std::optional<T> maximum
+

The optional maximum value.

+
+ +
+
+ +
+
+template<typename T>
struct ValueInfo
+

Basic information for option values. T can be bool or std::string.

+
+

Public Members

+
+
+T defaultValue
+

The default value.

+
+ +
+
+T currentValue
+

The current value.

+
+ +
+
+ +
+
+struct VoidInfo
+

Has no value information.

+
+ +
+ +
+
+
+std::ostream &cvc5::operator<<(std::ostream &os, const OptionInfo &oi)
+

Print an OptionInfo object to an output stream.

+
+
Parameters:
+
    +
  • os – The output stream.

  • +
  • oi – The option info.

  • +
+
+
Returns:
+

The output stream.

+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/plugin.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/plugin.html new file mode 100644 index 0000000000..fad49a7737 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/plugin.html @@ -0,0 +1,235 @@ + + + + + + + + + + + + + Plugin — cvc5 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Plugin

+

This class encapsulates a user-specified solver plugin. +It is configured via cvc5::Solver::addPlugin().

+
+
+
+class Plugin
+

A cvc5 plugin.

+
+

Public Functions

+
+
+Plugin(TermManager &tm)
+
+ +
+
+virtual ~Plugin() = default
+
+ +
+
+virtual std::vector<Term> check()
+

Call to check, return vector of lemmas to add to the SAT solver. This method is called periodically, roughly at every SAT decision.

+
+
Returns:
+

The vector of lemmas to add to the SAT solver.

+
+
+
+ +
+
+virtual void notifySatClause(const Term &clause)
+

Notify SAT clause, called when clause is learned by the SAT solver.

+
+
Parameters:
+

clause – The learned clause.

+
+
+
+ +
+
+virtual void notifyTheoryLemma(const Term &lemma)
+

Notify theory lemma, called when lemma is sent by a theory solver.

+
+
Parameters:
+

lemma – The theory lemma.

+
+
+
+ +
+
+virtual std::string getName() = 0
+

Get the name of the plugin (for debugging).

+
+
Returns:
+

The name of the plugin.

+
+
+
+ +
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/proof.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/proof.html new file mode 100644 index 0000000000..40c7d56dfe --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/proof.html @@ -0,0 +1,314 @@ + + + + + + + + + + + + + Proof — cvc5 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Proof

+

This class encapsulates a cvc5 proof object, which can be retrieved via +function cvc5::Solver::getProof() after a +cvc5::Solver::checkSat() query returns an unsat result.

+
+ +
+
+
+class Proof
+

A cvc5 proof. Proofs are trees and every proof object corresponds to the root step of a proof. The branches of the root step are the premises of the step.

+
+

Public Functions

+
+
+Proof()
+

Nullary constructor. Needed for the Cython API.

+
+ +
+
+~Proof()
+
+ +
+
+bool isNull() const
+

Determine if this is the null proof (Proof::Proof()).

+
+
Returns:
+

True if this grammar is the null proof.

+
+
+
+ +
+
+ProofRule getRule() const
+

Get the proof rule used by the root step of the proof.

+
+
Returns:
+

The proof rule.

+
+
+
+ +
+
+ProofRewriteRule getRewriteRule() const
+

Get the proof rewrite rule used by the root step of the proof.

+

Requires that getRule() does not return #DSL_REWRITE or #THEORY_REWRITE.

+
+
Returns:
+

The proof rewrite rule.

+
+
+
+ +
+
+Term getResult() const
+
+
Returns:
+

The conclusion of the root step of the proof.

+
+
+
+ +
+
+const std::vector<Proof> getChildren() const
+
+
Returns:
+

The premises of the root step of the proof.

+
+
+
+ +
+
+const std::vector<Term> getArguments() const
+
+
Returns:
+

The arguments of the root step of the proof as a vector of terms. Some of those terms might be strings.

+
+
+
+ +
+
+bool operator==(const Proof &p) const
+

Operator overloading for referential equality of two proofs.

+
+
Parameters:
+

p – The proof to compare to for equality.

+
+
Returns:
+

True if both proofs point to the same internal proof object.

+
+
+
+ +
+
+bool operator!=(const Proof &p) const
+

Referential disequality operator.

+
+
Parameters:
+

p – The proof to compare to for disequality.

+
+
Returns:
+

True if both proofs point to different internal proof objects.

+
+
+
+ +
+
+

Friends

+
+
+friend struct std::hash< Proof >
+
+ +
+
+ +
+
+
+template<>
struct hash<cvc5::Proof>
+

Hash function for proofs.

+
+

Public Functions

+
+
+size_t operator()(const cvc5::Proof &p) const
+
+ +
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/result.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/result.html new file mode 100644 index 0000000000..f4ac62169a --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/result.html @@ -0,0 +1,302 @@ + + + + + + + + + + + + + Result — cvc5 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Result

+

This class represents a cvc5::Solver result.

+

A cvc5::Result encapsulates a 3-valued solver result (sat, unsat, +unknown). Explanations for unknown results are represented as enum class +cvc5::UnknownExplanation and can be queried via +cvc5::Result::getUnknownExplanation().

+
+ +
+
+
+class Result
+

Encapsulation of a three-valued solver result, with explanations.

+
+

Public Functions

+
+
+Result()
+

Constructor.

+
+ +
+
+bool isNull() const
+

Determine if this Result is a nullary Result.

+
+
Returns:
+

True if Result is empty (a nullary Result) and not an actual result returned from a checkSat() (and friends) query.

+
+
+
+ +
+
+bool isSat() const
+
+
Returns:
+

True if this result is from a satisfiable checkSat() or checkSatAssuming() query.

+
+
+
+ +
+
+bool isUnsat() const
+
+
Returns:
+

True if this result is from an unsatisfiable checkSat() or checkSatAssuming() query.

+
+
+
+ +
+
+bool isUnknown() const
+
+
Returns:
+

True if result is from a checkSat() or checkSatAssuming() query and cvc5 was not able to determine (un)satisfiability.

+
+
+
+ +
+
+bool operator==(const Result &r) const
+

Operator overloading for equality of two results.

+
+
Parameters:
+

r – The result to compare to for equality.

+
+
Returns:
+

True if the results are equal.

+
+
+
+ +
+
+bool operator!=(const Result &r) const
+

Operator overloading for disequality of two results.

+
+
Parameters:
+

r – The result to compare to for disequality.

+
+
Returns:
+

True if the results are disequal.

+
+
+
+ +
+
+UnknownExplanation getUnknownExplanation() const
+
+
Returns:
+

An explanation for an unknown query result.

+
+
+
+ +
+
+std::string toString() const
+
+
Returns:
+

A string representation of this result.

+
+
+
+ +
+
+ +
+
+
+std::ostream &cvc5::operator<<(std::ostream &out, const Result &r)
+

Serialize a Result to given stream.

+
+
Parameters:
+
    +
  • out – The output stream.

  • +
  • r – The result to be serialized to the given output stream.

  • +
+
+
Returns:
+

The output stream.

+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/solver.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/solver.html new file mode 100644 index 0000000000..73689df03e --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/solver.html @@ -0,0 +1,3284 @@ + + + + + + + + + + + + + Solver — cvc5 documentation + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Solver

+

This class represents a cvc5 solver instance.

+

Terms, Sorts and +Ops are not tied to a cvc5::Solver +but associated with a cvc5::TermManager instance, which can be +shared between solver instances.

+

Solver options are configured via cvc5::Solver::setOption() +and queried via cvc5::Solver::getOption() +(for more information on configuration options, see Options). +Information about a specific option can be retrieved via +cvc5::getOptionInfo() (see OptionInfo).

+
+
+
+class Solver
+

A cvc5 solver.

+
+

Public Functions

+
+
+Solver()
+

Constructor.

+
+

Warning

+

This constructor is deprecated and replaced by Solver::Solver(TermManager&). It will be removed in a future release.

+
+
+
Returns:
+

The Solver.

+
+
+
+ +
+
+Solver(TermManager &tm)
+

Constructor.

+

Constructs solver instance from a given term manager instance.

+
+
Parameters:
+

tm – The associated term manager.

+
+
Returns:
+

The Solver.

+
+
+
+ +
+
+~Solver()
+

Destructor.

+
+ +
+
+Solver(const Solver&) = delete
+

Disallow copy/assignment.

+
+ +
+
+Solver &operator=(const Solver&) = delete
+
+ +
+
+Sort getBooleanSort() const
+

Get the Boolean sort.

+
+

Warning

+

This function is deprecated and replaced by TermManager::getBooleanSort(). It will be removed in a future release.

+
+
+
Returns:
+

Sort Boolean.

+
+
+
+ +
+
+Sort getIntegerSort() const
+

Get the Integer sort.

+
+

Warning

+

This function is deprecated and replaced by TermManager::getIntegerSort(). It will be removed in a future release.

+
+
+
Returns:
+

Sort Integer.

+
+
+
+ +
+
+Sort getRealSort() const
+

Get the Real sort.

+
+

Warning

+

This function is deprecated and replaced by TermManager::getRealSort(). It will be removed in a future release.

+
+
+
Returns:
+

Sort Real.

+
+
+
+ +
+
+Sort getRegExpSort() const
+

Get the regular expression sort.

+
+

Warning

+

This function is deprecated and replaced by TermManager::getRegExpSort(). It will be removed in a future release.

+
+
+
Returns:
+

Sort RegExp.

+
+
+
+ +
+
+Sort getRoundingModeSort() const
+

Get the rounding mode sort.

+
+

Warning

+

This function is deprecated and replaced by TermManager::getRoundingModeSort(). It will be removed in a future release.

+
+
+
Returns:
+

Sort RoundingMode.

+
+
+
+ +
+
+Sort getStringSort() const
+

Get the string sort.

+
+

Warning

+

This function is deprecated and replaced by TermManager::getStringSort(). It will be removed in a future release.

+
+
+
Returns:
+

Sort String.

+
+
+
+ +
+
+Sort mkArraySort(const Sort &indexSort, const Sort &elemSort) const
+

Create an array sort.

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkArraySort(). It will be removed in a future release.

+
+
+
Parameters:
+
    +
  • indexSort – The array index sort.

  • +
  • elemSort – The array element sort.

  • +
+
+
Returns:
+

The array sort.

+
+
+
+ +
+
+Sort mkBitVectorSort(uint32_t size) const
+

Create a bit-vector sort.

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkBitVectorSort(). It will be removed in a future release.

+
+
+
Parameters:
+

size – The bit-width of the bit-vector sort.

+
+
Returns:
+

The bit-vector sort.

+
+
+
+ +
+
+Sort mkFloatingPointSort(uint32_t exp, uint32_t sig) const
+

Create a floating-point sort.

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkFloatingPointSort(). It will be removed in a future release.

+
+
+
Parameters:
+
    +
  • exp – The bit-width of the exponent of the floating-point sort.

  • +
  • sig – The bit-width of the significand of the floating-point sort.

  • +
+
+
+
+ +
+
+Sort mkFiniteFieldSort(const std::string &size, uint32_t base = 10) const
+

Create a finite-field sort from a given string of base n.

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkFiniteFieldSort(). It will be removed in a future release.

+
+
+
Parameters:
+
    +
  • size – The modulus of the field. Must be prime.

  • +
  • base – The base of the string representation of size.

  • +
+
+
Returns:
+

The finite-field sort.

+
+
+
+ +
+
+Sort mkDatatypeSort(const DatatypeDecl &dtypedecl) const
+

Create a datatype sort.

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkDatatypeSort(). It will be removed in a future release.

+
+
+
Parameters:
+

dtypedecl – The datatype declaration from which the sort is created.

+
+
Returns:
+

The datatype sort.

+
+
+
+ +
+
+std::vector<Sort> mkDatatypeSorts(const std::vector<DatatypeDecl> &dtypedecls) const
+

Create a vector of datatype sorts.

+
+

Note

+

The names of the datatype declarations must be distinct.

+
+
+

Warning

+

This function is deprecated and replaced by TermManager::mkDatatypeSorts(). It will be removed in a future release.

+
+
+
Parameters:
+

dtypedecls – The datatype declarations from which the sort is created.

+
+
Returns:
+

The datatype sorts.

+
+
+
+ +
+
+Sort mkFunctionSort(const std::vector<Sort> &sorts, const Sort &codomain) const
+

Create function sort.

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkFunctionSort(). It will be removed in a future release.

+
+
+
Parameters:
+
    +
  • sorts – The sort of the function arguments.

  • +
  • codomain – The sort of the function return value.

  • +
+
+
Returns:
+

The function sort.

+
+
+
+ +
+
+Sort mkParamSort(const std::optional<std::string> &symbol = std::nullopt) const
+

Create a sort parameter.

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+

Warning

+

This function is deprecated and replaced by TermManager::mkParamSort(). It will be removed in a future release.

+
+
+
Parameters:
+

symbol – The name of the sort.

+
+
Returns:
+

The sort parameter.

+
+
+
+ +
+
+Sort mkPredicateSort(const std::vector<Sort> &sorts) const
+

Create a predicate sort.

+

This is equivalent to calling mkFunctionSort() with the Boolean sort as the codomain.

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkPredicateSort(). It will be removed in a future release.

+
+
+
Parameters:
+

sorts – The list of sorts of the predicate.

+
+
Returns:
+

The predicate sort.

+
+
+
+ +
+
+Sort mkRecordSort(const std::vector<std::pair<std::string, Sort>> &fields) const
+

Create a record sort

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+

Warning

+

This function is deprecated and replaced by TermManager::mkRecordSort(). It will be removed in a future release.

+
+
+
Parameters:
+

fields – The list of fields of the record.

+
+
Returns:
+

The record sort.

+
+
+
+ +
+
+Sort mkSetSort(const Sort &elemSort) const
+

Create a set sort.

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkSetSort(). It will be removed in a future release.

+
+
+
Parameters:
+

elemSort – The sort of the set elements.

+
+
Returns:
+

The set sort.

+
+
+
+ +
+
+Sort mkBagSort(const Sort &elemSort) const
+

Create a bag sort.

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkBagSort(). It will be removed in a future release.

+
+
+
Parameters:
+

elemSort – The sort of the bag elements.

+
+
Returns:
+

The bag sort.

+
+
+
+ +
+
+Sort mkSequenceSort(const Sort &elemSort) const
+

Create a sequence sort.

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkSequenceSort(). It will be removed in a future release.

+
+
+
Parameters:
+

elemSort – The sort of the sequence elements.

+
+
Returns:
+

The sequence sort.

+
+
+
+ +
+
+Sort mkAbstractSort(SortKind k) const
+

Create an abstract sort. An abstract sort represents a sort for a given kind whose parameters and arguments are unspecified.

+

The kind k must be the kind of a sort that can be abstracted, i.e., a sort that has indices or argument sorts. For example, #ARRAY_SORT and #BITVECTOR_SORT can be passed as the kind k to this function, while #INTEGER_SORT and #STRING_SORT cannot.

+
+

Note

+

Providing the kind #ABSTRACT_SORT as an argument to this function returns the (fully) unspecified sort, denoted ?.

+
+
+

Note

+

Providing a kind k that has no indices and a fixed arity of argument sorts will return the sort of kind k whose arguments are the unspecified sort. For example, mkAbstractSort(SortKind::ARRAY_SORT) will return the sort (ARRAY_SORT ? ?) instead of the abstract sort whose abstract kind is #ARRAY_SORT.

+
+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+

Warning

+

This function is deprecated and replaced by TermManager::mkAbstractSort(). It will be removed in a future release.

+
+
+
Parameters:
+

k – The kind of the abstract sort

+
+
Returns:
+

The abstract sort.

+
+
+
+ +
+
+Sort mkUninterpretedSort(const std::optional<std::string> &symbol = std::nullopt) const
+

Create an uninterpreted sort.

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkUninterpretedSort(). It will be removed in a future release.

+
+
+
Parameters:
+

symbol – The name of the sort.

+
+
Returns:
+

The uninterpreted sort.

+
+
+
+ +
+
+Sort mkUnresolvedDatatypeSort(const std::string &symbol, size_t arity = 0) const
+

Create an unresolved datatype sort.

+

This is for creating yet unresolved sort placeholders for mutually recursive parametric datatypes.

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+

Warning

+

This function is deprecated and replaced by TermManager::mkUnresolvedDatatypeSort(). It will be removed in a future release.

+
+
+
Parameters:
+
    +
  • symbol – The symbol of the sort.

  • +
  • arity – The number of sort parameters of the sort.

  • +
+
+
Returns:
+

The unresolved sort.

+
+
+
+ +
+
+Sort mkUninterpretedSortConstructorSort(size_t arity, const std::optional<std::string> &symbol = std::nullopt) const
+

Create an uninterpreted sort constructor sort.

+

An uninterpreted sort constructor is an uninterpreted sort with arity > 0.

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkUninterpretedSortConstructorerSort(). It will be removed in a future release.

+
+
+
Parameters:
+
    +
  • symbol – The symbol of the sort.

  • +
  • arity – The arity of the sort (must be > 0)

  • +
+
+
Returns:
+

The uninterpreted sort constructor sort.

+
+
+
+ +
+
+Sort mkTupleSort(const std::vector<Sort> &sorts) const
+

Create a tuple sort.

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkTupleSort(). It will be removed in a future release.

+
+
+
Parameters:
+

sorts – The sorts of the elements of the tuple.

+
+
Returns:
+

The tuple sort.

+
+
+
+ +
+
+Sort mkNullableSort(const Sort &sort) const
+

Create a nullable sort.

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkNullableSort(). It will be removed in a future release.

+
+
+
Parameters:
+

sort – The sort of the element of the nullable.

+
+
Returns:
+

The nullable sort.

+
+
+
+ +
+
+Term mkTerm(Kind kind, const std::vector<Term> &children = {}) const
+

Create n-ary term of given kind.

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkTerm(). It will be removed in a future release.

+
+
+
Parameters:
+
    +
  • kind – The kind of the term.

  • +
  • children – The children of the term.

  • +
+
+
Returns:
+

The Term

+
+
+
+ +
+
+Term mkTerm(const Op &op, const std::vector<Term> &children = {}) const
+

Create n-ary term of given kind from a given operator. Create operators with mkOp().

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkTerm(). It will be removed in a future release.

+
+
+
Parameters:
+
    +
  • op – The operator.

  • +
  • children – The children of the term.

  • +
+
+
Returns:
+

The Term.

+
+
+
+ +
+
+Term mkTuple(const std::vector<Term> &terms) const
+

Create a tuple term.

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkTuple(). It will be removed in a future release.

+
+
+
Parameters:
+

terms – The elements in the tuple.

+
+
Returns:
+

The tuple Term.

+
+
+
+ +
+
+Term mkNullableSome(const Term &term) const
+

Create a nullable some term.

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkNullableSome(). It will be removed in a future release.

+
+
+
Parameters:
+

term – The element value.

+
+
Returns:
+

the Element value wrapped in some constructor.

+
+
+
+ +
+
+Term mkNullableVal(const Term &term) const
+

Create a selector for nullable term.

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkNullableVal(). It will be removed in a future release.

+
+
+
Parameters:
+

term – A nullable term.

+
+
Returns:
+

The element value of the nullable term.

+
+
+
+ +
+
+Term mkNullableIsNull(const Term &term) const
+

Create a null tester for a nullable term.

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkNullableisNull(). It will be removed in a future release.

+
+
+
Parameters:
+

term – A nullable term.

+
+
Returns:
+

A tester whether term is null.

+
+
+
+ +
+
+Term mkNullableIsSome(const Term &term) const
+

Create a some tester for a nullable term.

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkNullableisSome(). It will be removed in a future release.

+
+
+
Parameters:
+

term – A nullable term.

+
+
Returns:
+

A tester whether term is some.

+
+
+
+ +
+
+Term mkNullableNull(const Sort &sort) const
+

Create a constant representing an null of the given sort.

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkNullableNull(). It will be removed in a future release.

+
+
+
Parameters:
+

sort – The sort of the Nullable element.

+
+
Returns:
+

The null constant.

+
+
+
+ +
+
+Term mkNullableLift(Kind kind, const std::vector<Term> &args) const
+

Create a term that lifts kind to nullable terms. Example: If we have the term ((_ nullable.lift +) x y), where x, y of type (Nullable Int), then kind would be ADD, and args would be [x, y]. This function would return (nullable.lift (lambda ((a Int) (b Int)) (+ a b)) x y)

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkNullableLift(). It will be removed in a future release.

+
+
+
Parameters:
+
    +
  • kind – The lifted operator.

  • +
  • args – The arguments of the lifted operator.

  • +
+
+
Returns:
+

A term of Kind NULLABLE_LIFT where the first child is a lambda expression, and the remaining children are the original arguments.

+
+
+
+ +
+
+Op mkOp(Kind kind, const std::vector<uint32_t> &args = {}) const
+

Create operator of Kind:

    +
  • #BITVECTOR_EXTRACT

  • +
  • #BITVECTOR_REPEAT

  • +
  • #BITVECTOR_ROTATE_LEFT

  • +
  • #BITVECTOR_ROTATE_RIGHT

  • +
  • #BITVECTOR_SIGN_EXTEND

  • +
  • #BITVECTOR_ZERO_EXTEND

  • +
  • #DIVISIBLE

  • +
  • #FLOATINGPOINT_TO_FP_FROM_FP

  • +
  • #FLOATINGPOINT_TO_FP_FROM_IEEE_BV

  • +
  • #FLOATINGPOINT_TO_FP_FROM_REAL

  • +
  • #FLOATINGPOINT_TO_FP_FROM_SBV

  • +
  • #FLOATINGPOINT_TO_FP_FROM_UBV

  • +
  • #FLOATINGPOINT_TO_SBV

  • +
  • #FLOATINGPOINT_TO_UBV

  • +
  • #INT_TO_BITVECTOR

  • +
  • #TUPLE_PROJECT

  • +
+

+

See cvc5::Kind for a description of the parameters.

+
+

Note

+

If args is empty, the Op simply wraps the cvc5::Kind. The Kind can be used in Solver::mkTerm directly without creating an Op first.

+
+
+

Warning

+

This function is deprecated and replaced by TermManager::mkOp(). It will be removed in a future release.

+
+
+
Parameters:
+
    +
  • kind – The kind of the operator.

  • +
  • args – The arguments (indices) of the operator.

  • +
+
+
+
+ +
+
+Op mkOp(Kind kind, const std::string &arg) const
+

Create operator of kind:

    +
  • #DIVISIBLE (to support arbitrary precision integers) See cvc5::Kind for a description of the parameters.

  • +
+

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkOp(). It will be removed in a future release.

+
+
+
Parameters:
+
    +
  • kind – The kind of the operator.

  • +
  • arg – The string argument to this operator.

  • +
+
+
+
+ +
+
+Term mkTrue() const
+

Create a Boolean true constant.

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkTrue(). It will be removed in a future release.

+
+
+
Returns:
+

The true constant.

+
+
+
+ +
+
+Term mkFalse() const
+

Create a Boolean false constant.

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkFalse(). It will be removed in a future release.

+
+
+
Returns:
+

The false constant.

+
+
+
+ +
+
+Term mkBoolean(bool val) const
+

Create a Boolean constant.

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkBoolean(). It will be removed in a future release.

+
+
+
Parameters:
+

val – The value of the constant.

+
+
Returns:
+

The Boolean constant.

+
+
+
+ +
+
+Term mkPi() const
+

Create a constant representing the number Pi.

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkPi(). It will be removed in a future release.

+
+
+

Warning

+

This function is deprecated and replaced by TermManager::mkPi(). It will be removed in a future release.

+
+
+
Returns:
+

A constant representing Pi.

+
+
+
+ +
+
+Term mkInteger(const std::string &s) const
+

Create an integer constant from a string.

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkInteger(). It will be removed in a future release.

+
+
+
Parameters:
+

s – The string representation of the constant, may represent an integer (e.g., “123”).

+
+
Returns:
+

A constant of sort Integer assuming s represents an integer)

+
+
+
+ +
+
+Term mkInteger(int64_t val) const
+

Create an integer constant from a c++ int.

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkInteger(). It will be removed in a future release.

+
+
+
Parameters:
+

val – The value of the constant.

+
+
Returns:
+

A constant of sort Integer.

+
+
+
+ +
+
+Term mkReal(const std::string &s) const
+

Create a real constant from a string.

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkReal(). It will be removed in a future release.

+
+
+
Parameters:
+

s – The string representation of the constant, may represent an integer (e.g., “123”) or real constant (e.g., “12.34” or “12/34”).

+
+
Returns:
+

A constant of sort Real.

+
+
+
+ +
+
+Term mkReal(int64_t val) const
+

Create a real constant from an integer.

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkReal(). It will be removed in a future release.

+
+
+
Parameters:
+

val – The value of the constant.

+
+
Returns:
+

A constant of sort Real.

+
+
+
+ +
+
+Term mkReal(int64_t num, int64_t den) const
+

Create a real constant from a rational.

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkReal(). It will be removed in a future release.

+
+
+
Parameters:
+
    +
  • num – The value of the numerator.

  • +
  • den – The value of the denominator.

  • +
+
+
Returns:
+

A constant of sort Real.

+
+
+
+ +
+
+Term mkRegexpAll() const
+

Create a regular expression all (re.all) term.

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkRegExpAll(). It will be removed in a future release.

+
+
+
Returns:
+

The all term.

+
+
+
+ +
+
+Term mkRegexpAllchar() const
+

Create a regular expression allchar (re.allchar) term.

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkRegExpAllChar(). It will be removed in a future release.

+
+
+
Returns:
+

The allchar term.

+
+
+
+ +
+
+Term mkRegexpNone() const
+

Create a regular expression none (re.none) term.

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkRegExpNone(). It will be removed in a future release.

+
+
+
Returns:
+

The none term.

+
+
+
+ +
+
+Term mkEmptySet(const Sort &sort) const
+

Create a constant representing an empty set of the given sort.

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkEmptySet(). It will be removed in a future release.

+
+
+
Parameters:
+

sort – The sort of the set elements.

+
+
Returns:
+

The empty set constant.

+
+
+
+ +
+
+Term mkEmptyBag(const Sort &sort) const
+

Create a constant representing an empty bag of the given sort.

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkEmptyBag(). It will be removed in a future release.

+
+
+
Parameters:
+

sort – The sort of the bag elements.

+
+
Returns:
+

The empty bag constant.

+
+
+
+ +
+
+Term mkSepEmp() const
+

Create a separation logic empty term.

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+

Warning

+

This function is deprecated and replaced by TermManager::mkSepEmp(). It will be removed in a future release.

+
+
+
Returns:
+

The separation logic empty term.

+
+
+
+ +
+
+Term mkSepNil(const Sort &sort) const
+

Create a separation logic nil term.

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+

Warning

+

This function is deprecated and replaced by TermManager::mkSepNil(). It will be removed in a future release.

+
+
+
Parameters:
+

sort – The sort of the nil term.

+
+
Returns:
+

The separation logic nil term.

+
+
+
+ +
+
+Term mkString(const std::string &s, bool useEscSequences = false) const
+

Create a String constant from a std::string which may contain SMT-LIB compatible escape sequences like \u1234 to encode unicode characters.

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkString(). It will be removed in a future release.

+
+
+
Parameters:
+
    +
  • s – The string this constant represents.

  • +
  • useEscSequences – Determines whether escape sequences in s should. be converted to the corresponding unicode character

  • +
+
+
Returns:
+

The String constant.

+
+
+
+ +
+
+Term mkString(const std::wstring &s) const
+

Create a String constant from a std::wstring. This function does not support escape sequences as std::wstring already supports unicode characters.

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkString(). It will be removed in a future release.

+
+
+
Parameters:
+

s – The string this constant represents.

+
+
Returns:
+

The String constant.

+
+
+
+ +
+
+Term mkEmptySequence(const Sort &sort) const
+

Create an empty sequence of the given element sort.

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkEmptySequence(). It will be removed in a future release.

+
+
+
Parameters:
+

sort – The element sort of the sequence.

+
+
Returns:
+

The empty sequence with given element sort.

+
+
+
+ +
+
+Term mkUniverseSet(const Sort &sort) const
+

Create a universe set of the given sort.

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkUniverseSet(). It will be removed in a future release.

+
+
+
Parameters:
+

sort – The sort of the set elements.

+
+
Returns:
+

The universe set constant.

+
+
+
+ +
+
+Term mkBitVector(uint32_t size, uint64_t val = 0) const
+

Create a bit-vector constant of given size and value.

+
+

Note

+

The given value must fit into a bit-vector of the given size.

+
+
+

Warning

+

This function is deprecated and replaced by TermManager::mkBitVector(). It will be removed in a future release.

+
+
+
Parameters:
+
    +
  • size – The bit-width of the bit-vector sort.

  • +
  • val – The value of the constant.

  • +
+
+
Returns:
+

The bit-vector constant.

+
+
+
+ +
+
+Term mkBitVector(uint32_t size, const std::string &s, uint32_t base) const
+

Create a bit-vector constant of a given bit-width from a given string of base 2, 10 or 16.

+
+

Note

+

The given value must fit into a bit-vector of the given size.

+
+
+

Warning

+

This function is deprecated and replaced by TermManager::mkBitVector(). It will be removed in a future release.

+
+
+
Parameters:
+
    +
  • size – The bit-width of the constant.

  • +
  • s – The string representation of the constant.

  • +
  • base – The base of the string representation (2 for binary, 10 for decimal, and 16 for hexadecimal).

  • +
+
+
Returns:
+

The bit-vector constant.

+
+
+
+ +
+
+Term mkFiniteFieldElem(const std::string &value, const Sort &sort, uint32_t base = 10) const
+

Create a finite field constant in a given field from a given string of base n.

+

+If size is the field size, the constant needs not be in the range [0,size). If it is outside this range, it will be reduced modulo size before being constructed.

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkFiniteFieldElem(). It will be removed in a future release.

+
+
+
Parameters:
+
    +
  • value – The string representation of the constant.

  • +
  • sort – The field sort.

  • +
  • base – The base of the string representation of value.

  • +
+
+
+
+ +
+
+Term mkConstArray(const Sort &sort, const Term &val) const
+

Create a constant array with the provided constant value stored at every index.

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkConstArray(). It will be removed in a future release.

+
+
+
Parameters:
+
    +
  • sort – The sort of the constant array (must be an array sort).

  • +
  • val – The constant value to store (must match the sort’s element sort).

  • +
+
+
Returns:
+

The constant array term.

+
+
+
+ +
+
+Term mkFloatingPointPosInf(uint32_t exp, uint32_t sig) const
+

Create a positive infinity floating-point constant (SMT-LIB: +oo).

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkFloatingPointPosInf(). It will be removed in a future release.

+
+
+
Parameters:
+
    +
  • exp – Number of bits in the exponent.

  • +
  • sig – Number of bits in the significand.

  • +
+
+
Returns:
+

The floating-point constant.

+
+
+
+ +
+
+Term mkFloatingPointNegInf(uint32_t exp, uint32_t sig) const
+

Create a negative infinity floating-point constant (SMT-LIB: -oo).

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkFloatingPointNegInf(). It will be removed in a future release.

+
+
+
Parameters:
+
    +
  • exp – Number of bits in the exponent.

  • +
  • sig – Number of bits in the significand.

  • +
+
+
Returns:
+

The floating-point constant.

+
+
+
+ +
+
+Term mkFloatingPointNaN(uint32_t exp, uint32_t sig) const
+

Create a not-a-number floating-point constant (SMT-LIB: NaN).

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkFloatingPointNaN(). It will be removed in a future release.

+
+
+
Parameters:
+
    +
  • exp – Number of bits in the exponent.

  • +
  • sig – Number of bits in the significand.

  • +
+
+
Returns:
+

The floating-point constant.

+
+
+
+ +
+
+Term mkFloatingPointPosZero(uint32_t exp, uint32_t sig) const
+

Create a positive zero floating-point constant (SMT-LIB: +zero).

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkFloatingPointPosZero(). It will be removed in a future release.

+
+
+
Parameters:
+
    +
  • exp – Number of bits in the exponent.

  • +
  • sig – Number of bits in the significand.

  • +
+
+
Returns:
+

The floating-point constant.

+
+
+
+ +
+
+Term mkFloatingPointNegZero(uint32_t exp, uint32_t sig) const
+

Create a negative zero floating-point constant (SMT-LIB: -zero).

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkFloatingPointNegZero(). It will be removed in a future release.

+
+
+
Parameters:
+
    +
  • exp – Number of bits in the exponent.

  • +
  • sig – Number of bits in the significand.

  • +
+
+
Returns:
+

The floating-point constant.

+
+
+
+ +
+
+Term mkRoundingMode(RoundingMode rm) const
+

Create a rounding mode value.

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkRoundingMode(). It will be removed in a future release.

+
+
+
Parameters:
+

rm – The floating point rounding mode this constant represents.

+
+
Returns:
+

The rounding mode value.

+
+
+
+ +
+
+Term mkFloatingPoint(uint32_t exp, uint32_t sig, const Term &val) const
+

Create a floating-point value from a bit-vector given in IEEE-754 format.

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkFloatingPoint(). It will be removed in a future release.

+
+
+
Parameters:
+
    +
  • exp – Size of the exponent.

  • +
  • sig – Size of the significand.

  • +
  • val – Value of the floating-point constant as a bit-vector term.

  • +
+
+
Returns:
+

The floating-point value.

+
+
+
+ +
+
+Term mkFloatingPoint(const Term &sign, const Term &exp, const Term &sig) const
+

Create a floating-point value from its three IEEE-754 bit-vector value components (sign bit, exponent, significand).

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkFloatingPoint(). It will be removed in a future release.

+
+
+
Parameters:
+
    +
  • sign – The sign bit.

  • +
  • exp – The bit-vector representing the exponent.

  • +
  • sig – The bit-vector representing the significand.

  • +
+
+
Returns:
+

The floating-point value.

+
+
+
+ +
+
+Term mkCardinalityConstraint(const Sort &sort, uint32_t upperBound) const
+

Create a cardinality constraint for an uninterpreted sort.

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+

Warning

+

This function is deprecated and replaced by TermManager::mkCardinalityConstraint(). It will be removed in a future release.

+
+
+
Parameters:
+
    +
  • sort – The sort the cardinality constraint is for.

  • +
  • upperBound – The upper bound on the cardinality of the sort.

  • +
+
+
Returns:
+

The cardinality constraint.

+
+
+
+ +
+
+Term mkConst(const Sort &sort, const std::optional<std::string> &symbol = std::nullopt) const
+

Create a free constant.

+

Note that the returned term is always fresh, even if the same arguments were provided on a previous call to mkConst().

+

SMT-LIB:

+

(declare-const <symbol> <sort>)
+(declare-fun <symbol> () <sort>)
+
+
+

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkConst(). It will be removed in a future release.

+
+
+
Parameters:
+
    +
  • sort – The sort of the constant.

  • +
  • symbol – The name of the constant (optional).

  • +
+
+
Returns:
+

The constant.

+
+
+
+ +
+
+Term mkVar(const Sort &sort, const std::optional<std::string> &symbol = std::nullopt) const
+

Create a bound variable to be used in a binder (i.e., a quantifier, a lambda, or a witness binder).

+

Note that the returned term is always fresh, even if the same arguments were provided on a previous call to mkConst.

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkVar(). It will be removed in a future release.

+
+
+
Parameters:
+
    +
  • sort – The sort of the variable.

  • +
  • symbol – The name of the variable (optional).

  • +
+
+
Returns:
+

The variable.

+
+
+
+ +
+
+DatatypeConstructorDecl mkDatatypeConstructorDecl(const std::string &name)
+

Create a datatype constructor declaration.

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkDatatypeConstructorDecl(). It will be removed in a future release.

+
+
+
Parameters:
+

name – The name of the datatype constructor.

+
+
Returns:
+

The DatatypeConstructorDecl.

+
+
+
+ +
+
+DatatypeDecl mkDatatypeDecl(const std::string &name, bool isCoDatatype = false)
+

Create a datatype declaration.

+
+

Warning

+

This function is deprecated and replaced by TermManager::mkDatatypeDecl(). It will be removed in a future release.

+
+
+
Parameters:
+
    +
  • name – The name of the datatype.

  • +
  • isCoDatatype – True if a codatatype is to be constructed.

  • +
+
+
Returns:
+

The DatatypeDecl.

+
+
+
+ +
+
+DatatypeDecl mkDatatypeDecl(const std::string &name, const std::vector<Sort> &params, bool isCoDatatype = false)
+

Create a datatype declaration. Create sorts parameter with Solver::mkParamSort().

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+

Warning

+

This function is deprecated and replaced by TermManager::mkDatatypeDecl(). It will be removed in a future release.

+
+
+
Parameters:
+
    +
  • name – The name of the datatype.

  • +
  • params – A list of sort parameters.

  • +
  • isCoDatatype – True if a codatatype is to be constructed.

  • +
+
+
Returns:
+

The DatatypeDecl.

+
+
+
+ +
+
+Term simplify(const Term &t, bool applySubs = false)
+

Simplify a term or formula based on rewriting and (optionally) applying substitutions for solved variables.

+

If applySubs is true, then for example, if (= x 0) was asserted to this solver, this method may replace occurrences of x with 0.

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+
    +
  • t – The term to simplify.

  • +
  • applySubs – True to apply substitutions for solved variables.

  • +
+
+
Returns:
+

The simplified term.

+
+
+
+ +
+
+void assertFormula(const Term &term) const
+

Assert a formula.

+

SMT-LIB:

+

(assert <term>)
+
+
+

+
+
Parameters:
+

term – The formula to assert.

+
+
+
+ +
+
+Result checkSat() const
+

Check satisfiability.

+

SMT-LIB:

+

(check-sat)
+
+
+

+
+
Returns:
+

The result of the satisfiability check.

+
+
+
+ +
+
+Result checkSatAssuming(const Term &assumption) const
+

Check satisfiability assuming the given formula.

+

SMT-LIB:

+

(check-sat-assuming ( <prop_literal> ))
+
+
+

+
+
Parameters:
+

assumption – The formula to assume.

+
+
Returns:
+

The result of the satisfiability check.

+
+
+
+ +
+
+Result checkSatAssuming(const std::vector<Term> &assumptions) const
+

Check satisfiability assuming the given formulas.

+

SMT-LIB:

+

(check-sat-assuming ( <prop_literal>+ ))
+
+
+

+
+
Parameters:
+

assumptions – The formulas to assume.

+
+
Returns:
+

The result of the satisfiability check.

+
+
+
+ +
+
+Sort declareDatatype(const std::string &symbol, const std::vector<DatatypeConstructorDecl> &ctors) const
+

Create datatype sort.

+

SMT-LIB:

+

(declare-datatype <symbol> <datatype_decl>)
+
+
+

+
+
Parameters:
+
    +
  • symbol – The name of the datatype sort.

  • +
  • ctors – The constructor declarations of the datatype sort.

  • +
+
+
Returns:
+

The datatype sort.

+
+
+
+ +
+
+Term declareFun(const std::string &symbol, const std::vector<Sort> &sorts, const Sort &sort, bool fresh = true) const
+

Declare n-ary function symbol.

+

SMT-LIB:

+

(declare-fun <symbol> ( <sort>* ) <sort>)
+
+
+

+
+
Parameters:
+
    +
  • symbol – The name of the function.

  • +
  • sorts – The sorts of the parameters to this function.

  • +
  • sort – The sort of the return value of this function.

  • +
  • fresh – If true, then this method always returns a new Term. Otherwise, this method will always return the same Term for each call with the given sorts and symbol where fresh is false.

  • +
+
+
Returns:
+

The function.

+
+
+
+ +
+
+Sort declareSort(const std::string &symbol, uint32_t arity, bool fresh = true) const
+

Declare uninterpreted sort.

+

SMT-LIB:

+

(declare-sort <symbol> <numeral>)
+
+
+

+
+

Note

+

This corresponds to mkUninterpretedSort(const std::optional<std::string>&) if arity = 0, and to mkUninterpretedSortConstructorSort(size_t arity, const std::optional<std::string>&) if arity > 0.

+
+
+
Parameters:
+
    +
  • symbol – The name of the sort.

  • +
  • arity – The arity of the sort.

  • +
  • fresh – If true, then this method always returns a new Sort. Otherwise, this method will always return the same Sort for each call with the given arity and symbol where fresh is false.

  • +
+
+
Returns:
+

The sort.

+
+
+
+ +
+
+Term defineFun(const std::string &symbol, const std::vector<Term> &bound_vars, const Sort &sort, const Term &term, bool global = false) const
+

Define n-ary function.

+

SMT-LIB:

+

(define-fun <function_def>)
+
+
+

+
+
Parameters:
+
    +
  • symbol – The name of the function.

  • +
  • bound_vars – The parameters to this function.

  • +
  • sort – The sort of the return value of this function.

  • +
  • term – The function body.

  • +
  • global – Determines whether this definition is global (i.e., persists when popping the context).

  • +
+
+
Returns:
+

The function.

+
+
+
+ +
+
+Term defineFunRec(const std::string &symbol, const std::vector<Term> &bound_vars, const Sort &sort, const Term &term, bool global = false) const
+

Define recursive function.

+

SMT-LIB:

+

(define-fun-rec <function_def>)
+
+
+

+
+
Parameters:
+
    +
  • symbol – The name of the function.

  • +
  • bound_vars – The parameters to this function.

  • +
  • sort – The sort of the return value of this function.

  • +
  • term – The function body.

  • +
  • global – Determines whether this definition is global (i.e., persists when popping the context).

  • +
+
+
Returns:
+

The function.

+
+
+
+ +
+
+Term defineFunRec(const Term &fun, const std::vector<Term> &bound_vars, const Term &term, bool global = false) const
+

Define recursive function.

+

SMT-LIB:

+

(define-fun-rec <function_def>)
+
+
+

+

Create parameter fun with TermManager::mkConst().

+
+
Parameters:
+
    +
  • fun – The sorted function.

  • +
  • bound_vars – The parameters to this function.

  • +
  • term – The function body.

  • +
  • global – Determines whether this definition is global (i.e., persists when popping the context).

  • +
+
+
Returns:
+

The function.

+
+
+
+ +
+
+void defineFunsRec(const std::vector<Term> &funs, const std::vector<std::vector<Term>> &bound_vars, const std::vector<Term> &terms, bool global = false) const
+

Define recursive functions.

+

SMT-LIB:

+

(define-funs-rec
+    ( <function_decl>_1 ... <function_decl>_n )
+    ( <term>_1 ... <term>_n )
+)
+
+
+

+

Create elements of parameter funs with TermManager::mkConst().

+
+
Parameters:
+
    +
  • funs – The sorted functions.

  • +
  • bound_vars – The list of parameters to the functions.

  • +
  • terms – The list of function bodies of the functions.

  • +
  • global – Determines whether this definition is global (i.e., persists when popping the context).

  • +
+
+
+
+ +
+
+std::vector<Term> getAssertions() const
+

Get the list of asserted formulas.

+

SMT-LIB:

+

(get-assertions)
+
+
+

+
+
Returns:
+

The list of asserted formulas.

+
+
+
+ +
+
+std::string getInfo(const std::string &flag) const
+

Get info from the solver.

+

SMT-LIB:

+

(get-info <info_flag>)
+
+
+

+
+
Returns:
+

The info.

+
+
+
+ +
+
+std::string getOption(const std::string &option) const
+

Get the value of a given option.

+

SMT-LIB:

+

(get-option <keyword>)
+
+
+

+
+
Parameters:
+

option – The option for which the value is queried.

+
+
Returns:
+

A string representation of the option value.

+
+
+
+ +
+
+std::vector<std::string> getOptionNames() const
+

Get all option names that can be used with setOption(), getOption() and getOptionInfo().

+
+
Returns:
+

All option names.

+
+
+
+ +
+
+OptionInfo getOptionInfo(const std::string &option) const
+

Get some information about the given option.

+

Check the OptionInfo class for more details on which information is available.

+
+
Returns:
+

Information about the given option.

+
+
+
+ +
+
+DriverOptions getDriverOptions() const
+

Get the driver options, which provide access to options that can not be communicated properly via getOption() and getOptionInfo().

+
+
Returns:
+

A DriverOptions object.

+
+
+
+ +
+
+std::vector<Term> getUnsatAssumptions() const
+

Get the set of unsat (“failed”) assumptions.

+

SMT-LIB:

+

(get-unsat-assumptions)
+
+
+

Requires to enable option +produce-unsat-assumptions.

+

+
+
Returns:
+

The set of unsat assumptions.

+
+
+
+ +
+
+std::vector<Term> getUnsatCore() const
+

Get the unsatisfiable core.

+

SMT-LIB:

+

(get-unsat-core)
+
+
+

Requires to enable option +produce-unsat-cores.

+

+
+

Note

+

In contrast to SMT-LIB, cvc5’s API does not distinguish between named +and unnamed assertions when producing an unsatisfiable core. +Additionally, the API allows this option to be called after a check with +assumptions. A subset of those assumptions may be included in the +unsatisfiable core returned by this function.

+
+
+
Returns:
+

A set of terms representing the unsatisfiable core.

+
+
+
+ +
+
+std::vector<Term> getUnsatCoreLemmas() const
+

Get the lemmas used to derive unsatisfiability.

+

SMT-LIB:

+

(get-unsat-core-lemmas)
+
+
+

Requires the SAT proof unsat core mode, so to enable option +unsat-cores-mode=sat-proof.

+

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Returns:
+

A set of terms representing the lemmas used to derive unsatisfiability.

+
+
+
+ +
+
+std::map<Term, Term> getDifficulty() const
+

Get a difficulty estimate for an asserted formula. This function is intended to be called immediately after any response to a checkSat.

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Returns:
+

A map from (a subset of) the input assertions to a real value that. is an estimate of how difficult each assertion was to solve. Unmentioned assertions can be assumed to have zero difficulty.

+
+
+
+ +
+
+std::pair<Result, std::vector<Term>> getTimeoutCore() const
+

Get a timeout core.

+

This function computes a subset of the current assertions that cause a +timeout. It may make multiple checks for satisfiability internally, each +limited by the timeout value given by +timeout-core-timeout.

+

If the result is unknown and the reason is timeout, then returned the set +of assertions corresponds to a subset of the current assertions that cause +a timeout in the specified time timeout-core-timeout. If the result is unsat, then the list +of formulas correspond to an unsat core for the current assertions. +Otherwise, the result is sat, indicating that the current assertions are +satisfiable, and the returned set of assertions is empty.

+

+

SMT-LIB:

+

(get-timeout-core)
+
+
+

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Returns:
+

The result of the timeout core computation. This is a pair containing a result and a set of assertions.

+
+
+
+ +
+
+std::pair<Result, std::vector<Term>> getTimeoutCoreAssuming(const std::vector<Term> &assumptions) const
+

Get a timeout core of the given assumptions.

+

This function computes a subset of the given assumptions that cause a timeout when added to the current assertions.

+

If the result is unknown and the reason is timeout, then the set of +assumptions corresponds to a subset of the given assumptions that cause a +timeout when added to the current assertions in the specified time +timeout-core-timeout. If the +result is unsat, then the set of assumptions together with the current +assertions correspond to an unsat core for the current assertions. +Otherwise, the result is sat, indicating that the given assumptions plus +the current assertions are satisfiable, and the returned set of +assumptions is empty.

+

+SMT-LIB:

+

(get-timeout-core (<assert>*))
+
+
+

+
+

Note

+

This command does not require being preceeded by a call to checkSat().

+
+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+

assumptions – The (non-empty) set of formulas to assume.

+
+
Returns:
+

The result of the timeout core computation. This is a pair containing a result and a set of assumptions.

+
+
+
+ +
+
+std::vector<Proof> getProof(modes::ProofComponent c = modes::ProofComponent::FULL) const
+

Get a proof associated with the most recent call to checkSat.

+

SMT-LIB:

+

(get-proof :c)
+
+
+

Requires to enable option +produce-proofs. +The string representation depends on the value of option +produce-proofs.

+

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+

c – The component of the proof to return

+
+
Returns:
+

A vector of proofs.

+
+
+
+ +
+
+std::string proofToString(Proof proof, modes::ProofFormat format = modes::ProofFormat::DEFAULT, const std::map<cvc5::Term, std::string> &assertionNames = std::map<cvc5::Term, std::string>()) const
+

Prints a proof as a string in a selected proof format mode. Other aspects of printing are taken from the solver options.

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+
    +
  • proof – A proof, usually obtained from Solver::getProof().

  • +
  • format – The proof format used to print the proof. Must be modes::ProofFormat::NONE if the proof is from a component other than modes::ProofComponent::FULL.

  • +
  • assertionNames – Mapping between assertions and names, if they were given by the user. This is used by the Alethe proof format.

  • +
+
+
Returns:
+

The string representation of the proof in the given format.

+
+
+
+ +
+
+std::vector<Term> getLearnedLiterals(modes::LearnedLitType t = modes::LearnedLitType::INPUT) const
+

Get a list of learned literals that are entailed by the current set of assertions.

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+

t – The type of learned literals to return

+
+
Returns:
+

A list of literals that were learned at top-level.

+
+
+
+ +
+
+Term getValue(const Term &term) const
+

Get the value of the given term in the current model.

+

SMT-LIB:

+

(get-value ( <term> ))
+
+
+

+
+
Parameters:
+

term – The term for which the value is queried.

+
+
Returns:
+

The value of the given term.

+
+
+
+ +
+
+std::vector<Term> getValue(const std::vector<Term> &terms) const
+

Get the values of the given terms in the current model.

+

SMT-LIB:

+

(get-value ( <term>* ))
+
+
+

+
+
Parameters:
+

terms – The terms for which the value is queried.

+
+
Returns:
+

The values of the given terms.

+
+
+
+ +
+
+std::vector<Term> getModelDomainElements(const Sort &s) const
+

Get the domain elements of uninterpreted sort s in the current model. The current model interprets s as the finite sort whose domain elements are given in the return value of this function.

+
+
Parameters:
+

s – The uninterpreted sort in question.

+
+
Returns:
+

The domain elements of s in the current model.

+
+
+
+ +
+
+bool isModelCoreSymbol(const Term &v) const
+

Determine if the model value of the given free constant was essential for showing satisfiability of the last checkSat() query based on the current model.

+

For any free constant v, this will only return false if model-cores* has been set to true.

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+

v – The term in question.

+
+
Returns:
+

True if v is a model core symbol.

+
+
+
+ +
+
+std::string getModel(const std::vector<Sort> &sorts, const std::vector<Term> &consts) const
+

Get the model

+

SMT-LIB:

+

(get-model)
+
+
+

Requires to enable option +produce-models.

+

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+
    +
  • sorts – The list of uninterpreted sorts that should be printed in the model.

  • +
  • consts – The list of free constants that should be printed in the model. A subset of these may be printed based on isModelCoreSymbol().

  • +
+
+
Returns:
+

A string representing the model.

+
+
+
+ +
+
+Term getQuantifierElimination(const Term &q) const
+

Do quantifier elimination.

+

SMT-LIB:

+

(get-qe <q>)
+
+
+

+
+

Note

+

Quantifier Elimination is is only complete for logics such as LRA, LIA and BV.

+
+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+

q – A quantified formula of the form \(Q\bar{x}_1... Q\bar{x}_n. P( x_1...x_i, y_1...y_j)\) where \(Q\bar{x}\) is a set of quantified variables of the form \(Q x_1...x_k\) and \(P( x_1...x_i, y_1...y_j )\) is a quantifier-free formula

+
+
Returns:
+

A formula \(\phi\) such that, given the current set of formulas \(A\) asserted to this solver:

    +
  • \((A \wedge q)\) and \((A \wedge \phi)\) are equivalent

  • +
  • \(\phi\) is quantifier-free formula containing only free variables in \(y_1...y_n\).

  • +
+

+
+
+
+ +
+
+Term getQuantifierEliminationDisjunct(const Term &q) const
+

Do partial quantifier elimination, which can be used for incrementally computing the result of a quantifier elimination.

+

SMT-LIB:

+

(get-qe-disjunct <q>)
+
+
+

+
+

Note

+

Quantifier Elimination is is only complete for logics such as LRA, LIA and BV.

+
+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+

q – A quantified formula of the form \(Q\bar{x}_1... Q\bar{x}_n. P( x_1...x_i, y_1...y_j)\) where \(Q\bar{x}\) is a set of quantified variables of the form \(Q x_1...x_k\) and \(P( x_1...x_i, y_1...y_j )\) is a quantifier-free formula

+
+
Returns:
+

A formula \(\phi\) such that, given the current set of formulas \(A\) asserted to this solver:

    +
  • \((A \wedge q \implies A \wedge \phi)\) if \(Q\) is \(\forall\), and \((A \wedge \phi \implies A \wedge q)\) if \(Q\) is \(\exists\)

  • +
  • \(\phi\) is quantifier-free formula containing only free variables in \(y_1...y_n\)

  • +
  • If \(Q\) is \(\exists\), let \((A \wedge Q_n)\) be the formula \((A \wedge \neg (\phi \wedge Q_1) \wedge ... \wedge \neg (\phi \wedge Q_n))\) where for each \(i = 1...n\), formula \((\phi \wedge Q_i)\) is the result of calling Solver::getQuantifierEliminationDisjunct() for \(q\) with the set of assertions \((A \wedge Q_{i-1})\). Similarly, if \(Q\) is \(\forall\), then let \((A \wedge Q_n)\) be \((A \wedge (\phi \wedge Q_1) \wedge ... \wedge (\phi \wedge Q_n))\) where \((\phi \wedge Q_i)\) is the same as above. In either case, we have that \((\phi \wedge Q_j)\) will eventually be true or false, for some finite j.

  • +
+

+
+
+
+ +
+
+void declareSepHeap(const Sort &locSort, const Sort &dataSort) const
+

When using separation logic, this sets the location sort and the datatype sort to the given ones. This function should be invoked exactly once, before any separation logic constraints are provided.

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+
    +
  • locSort – The location sort of the heap.

  • +
  • dataSort – The data sort of the heap.

  • +
+
+
+
+ +
+
+Term getValueSepHeap() const
+

When using separation logic, obtain the term for the heap.

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Returns:
+

The term for the heap.

+
+
+
+ +
+
+Term getValueSepNil() const
+

When using separation logic, obtain the term for nil.

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Returns:
+

The term for nil.

+
+
+
+ +
+
+Term declarePool(const std::string &symbol, const Sort &sort, const std::vector<Term> &initValue) const
+

Declare a symbolic pool of terms with the given initial value.

+

For details on how pools are used to specify instructions for quantifier instantiation, see documentation for the #INST_POOL kind.

+

SMT-LIB:

+

(declare-pool <symbol> <sort> ( <term>* ))
+
+
+

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+
    +
  • symbol – The name of the pool.

  • +
  • sort – The sort of the elements of the pool.

  • +
  • initValue – The initial value of the pool.

  • +
+
+
Returns:
+

The pool symbol.

+
+
+
+ +
+
+Term declareOracleFun(const std::string &symbol, const std::vector<Sort> &sorts, const Sort &sort, std::function<Term(const std::vector<Term>&)> fn) const
+

Declare an oracle function with reference to an implementation.

+

Oracle functions have a different semantics with respect to ordinary declared functions. In particular, for an input to be satisfiable, its oracle functions are implicitly universally quantified.

+

This function is used in part for implementing this command:

+

(declare-oracle-fun <sym> (<sort>*) <sort> <sym>)

+

+

In particular, the above command is implemented by constructing a function over terms that wraps a call to binary sym via a text interface.

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+
    +
  • symbol – The name of the oracle

  • +
  • sorts – The sorts of the parameters to this function

  • +
  • sort – The sort of the return value of this function

  • +
  • fn – The function that implements the oracle function.

  • +
+
+
Returns:
+

The oracle function

+
+
+
+ +
+
+void addPlugin(Plugin &p)
+

Add plugin to this solver. Its callbacks will be called throughout the lifetime of this solver.

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+

p – The plugin to add to this solver.

+
+
+
+ +
+
+void pop(uint32_t nscopes = 1) const
+

Pop (a) level(s) from the assertion stack.

+

SMT-LIB:

+

(pop <numeral>)
+
+
+

+
+
Parameters:
+

nscopes – The number of levels to pop.

+
+
+
+ +
+
+Term getInterpolant(const Term &conj) const
+

Get an interpolant.

+

Given that \(A\rightarrow B\) is valid, this function determines a term \(I\) over the shared variables of \(A\) and \(B\), such that \(A \rightarrow I\) and \(I \rightarrow B\) are valid. \(A\) is the current set of assertions and \(B\) is the conjecture, given as conj.

+

SMT-LIB:

+

(get-interpolant <symbol> <conj>)
+
+
+

+
+

Note

+

In SMT-LIB, <symbol> assigns a symbol to the interpolant.

+
+
+

Note

+

Requires option +produce-interpolants to +be set to a mode different from none.

+
+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+

conj – The conjecture term.

+
+
Returns:
+

The interpolant, if an interpolant exists, else the null term.

+
+
+
+ +
+
+Term getInterpolant(const Term &conj, Grammar &grammar) const
+

Get an interpolant.

+

Given that \(A\rightarrow B\) is valid, this function determines a term \(I\) over the shared variables of \(A\) and \(B\), such that \(A \rightarrow I\) and \(I \rightarrow B\) are valid. \(I\) is constructed from the given grammar. \(A\) is the current set of assertions and \(B\) is the conjecture, given as conj.

+

SMT-LIB:

+

(get-interpolant <symbol> <conj> <grammar>)
+
+
+

+
+

Note

+

In SMT-LIB, <symbol> assigns a symbol to the interpolant.

+
+
+

Note

+

Requires option +produce-interpolants to +be set to a mode different from none.

+
+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+
    +
  • conj – The conjecture term.

  • +
  • grammar – The grammar for the interpolant I.

  • +
+
+
Returns:
+

The interpolant, if an interpolant exists, else the null term.

+
+
+
+ +
+
+Term getInterpolantNext() const
+

Get the next interpolant. Can only be called immediately after a successful call to get-interpolant or get-interpolant-next. Is guaranteed to produce a syntactically different interpolant wrt the last returned interpolant if successful.

+

SMT-LIB:

+

(get-interpolant-next)
+
+
+

Requires to enable incremental mode, and option +produce-interpolants to be set to +a mode different from none.

+

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Returns:
+

A Term \(I\) such that \(A \rightarrow I\) and \(I \rightarrow B\) are valid, where \(A\) is the current set of assertions and \(B\) is given in the input by conj, or the null term if such a term cannot be found.

+
+
+
+ +
+
+Term getAbduct(const Term &conj) const
+

Get an abduct.

+

SMT-LIB:

+

(get-abduct <conj>)
+
+
+

Requires to enable option +produce-abducts.

+

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+

conj – The conjecture term.

+
+
Returns:
+

A term \(C\) such that \((A \wedge C)\) is satisfiable, and \((A \wedge \neg B \wedge C)\) is unsatisfiable, where \(A\) is the current set of assertions and \(B\) is given in the input by conj, or the null term if such a term cannot be found.

+
+
+
+ +
+
+Term getAbduct(const Term &conj, Grammar &grammar) const
+

Get an abduct.

+

SMT-LIB:

+

(get-abduct <conj> <grammar>)
+
+
+

Requires to enable option +produce-abducts.

+

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+
    +
  • conj – The conjecture term.

  • +
  • grammar – The grammar for the abduct \(C\)

  • +
+
+
Returns:
+

A term C such that \((A \wedge C)\) is satisfiable, and \((A \wedge \neg B \wedge C)\) is unsatisfiable, where \(A\) is the current set of assertions and \(B\) is given in the input by conj, or the null term if such a term cannot be found.

+
+
+
+ +
+
+Term getAbductNext() const
+

Get the next abduct. Can only be called immediately after a successful call to get-abduct or get-abduct-next. Is guaranteed to produce a syntactically different abduct wrt the last returned abduct if successful.

+

SMT-LIB:

+

(get-abduct-next)
+
+
+

Requires to enable incremental mode, and option +produce-abducts.

+

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Returns:
+

A term C such that \((A \wedge C)\) is satisfiable, and \((A \wedge \neg B \wedge C)\) is unsatisfiable, where \(A\) is the current set of assertions and \(B\) is given in the input by the last call to getAbduct(), or the null term if such a term cannot be found.

+
+
+
+ +
+
+void blockModel(modes::BlockModelsMode mode) const
+

Block the current model. Can be called only if immediately preceded by a SAT or INVALID query.

+

SMT-LIB:

+

(block-model)
+
+
+

Requires enabling option +produce-models.

+

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+

mode – The mode to use for blocking.

+
+
+
+ +
+
+void blockModelValues(const std::vector<Term> &terms) const
+

Block the current model values of (at least) the values in terms. Can be called only if immediately preceded by a SAT query.

+

SMT-LIB:

+

(block-model-values ( <terms>+ ))
+
+
+

Requires enabling option +produce-models.

+

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+

terms – The model values to block.

+
+
+
+ +
+
+std::string getInstantiations() const
+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Returns:
+

A string that contains information about all instantiations made by the quantifiers module.

+
+
+
+ +
+
+void push(uint32_t nscopes = 1) const
+

Push (a) level(s) to the assertion stack.

+

SMT-LIB:

+

(push <numeral>)
+
+
+

+
+
Parameters:
+

nscopes – The number of levels to push.

+
+
+
+ +
+
+void resetAssertions() const
+

Remove all assertions.

+

SMT-LIB:

+

(reset-assertions)
+
+
+

+
+ +
+
+void setInfo(const std::string &keyword, const std::string &value) const
+

Set info.

+

SMT-LIB:

+

(set-info <attribute>)
+
+
+

+
+
Parameters:
+
    +
  • keyword – The info flag.

  • +
  • value – The value of the info flag.

  • +
+
+
+
+ +
+
+void setLogic(const std::string &logic) const
+

Set logic.

+

SMT-LIB:

+

(set-logic <symbol>)
+
+
+

+
+
Parameters:
+

logic – The logic to set.

+
+
+
+ +
+
+bool isLogicSet() const
+

Determine if setLogic() has been called.

+
+
Returns:
+

True if setLogic() has already been called for this solver instance.

+
+
+
+ +
+
+std::string getLogic() const
+

Get the logic set the solver.

+
+

Note

+

Asserts isLogicSet().

+
+
+
Returns:
+

The logic used by the solver.

+
+
+
+ +
+
+void setOption(const std::string &option, const std::string &value) const
+

Set option.

+

SMT-LIB:

+

(set-option :<option> <value>)
+
+
+

+
+
Parameters:
+
    +
  • option – The option name.

  • +
  • value – The option value.

  • +
+
+
+
+ +
+
+Term declareSygusVar(const std::string &symbol, const Sort &sort) const
+

Append symbol to the current list of universal variables.

+

SyGuS v2:

+

(declare-var <symbol> <sort>)
+
+
+

+
+
Parameters:
+
    +
  • sort – The sort of the universal variable.

  • +
  • symbol – The name of the universal variable.

  • +
+
+
Returns:
+

The universal variable.

+
+
+
+ +
+
+Grammar mkGrammar(const std::vector<Term> &boundVars, const std::vector<Term> &ntSymbols) const
+

Create a Sygus grammar. The first non-terminal is treated as the starting non-terminal, so the order of non-terminals matters.

+
+
Parameters:
+
    +
  • boundVars – The parameters to corresponding synth-fun/synth-inv.

  • +
  • ntSymbols – The pre-declaration of the non-terminal symbols.

  • +
+
+
Returns:
+

The grammar.

+
+
+
+ +
+
+Term synthFun(const std::string &symbol, const std::vector<Term> &boundVars, const Sort &sort) const
+

Synthesize n-ary function.

+

SyGuS v2:

+

(synth-fun <symbol> ( <boundVars>* ) <sort>)
+
+
+

+
+
Parameters:
+
    +
  • symbol – The name of the function.

  • +
  • boundVars – The parameters to this function.

  • +
  • sort – The sort of the return value of this function.

  • +
+
+
Returns:
+

The function.

+
+
+
+ +
+
+Term synthFun(const std::string &symbol, const std::vector<Term> &boundVars, Sort sort, Grammar &grammar) const
+

Synthesize n-ary function following specified syntactic constraints.

+

SyGuS v2:

+

(synth-fun <symbol> ( <boundVars>* ) <sort> <grammar>)
+
+
+

+
+
Parameters:
+
    +
  • symbol – The name of the function.

  • +
  • boundVars – The parameters to this function.

  • +
  • sort – The sort of the return value of this function.

  • +
  • grammar – The syntactic constraints.

  • +
+
+
Returns:
+

The function.

+
+
+
+ +
+
+void addSygusConstraint(const Term &term) const
+

Add a forumla to the set of Sygus constraints.

+

SyGuS v2:

+

(constraint <term>)
+
+
+

+
+
Parameters:
+

term – The formula to add as a constraint.

+
+
+
+ +
+
+std::vector<Term> getSygusConstraints() const
+

Get the list of sygus constraints.

+
+
Returns:
+

The list of sygus constraints.

+
+
+
+ +
+
+void addSygusAssume(const Term &term) const
+

Add a forumla to the set of Sygus assumptions.

+

SyGuS v2:

+

(assume <term>)
+
+
+

+
+
Parameters:
+

term – The formula to add as an assumption.

+
+
+
+ +
+
+std::vector<Term> getSygusAssumptions() const
+

Get the list of sygus assumptions.

+
+
Returns:
+

The list of sygus assumptions.

+
+
+
+ +
+
+void addSygusInvConstraint(const Term &inv, const Term &pre, const Term &trans, const Term &post) const
+

Add a set of Sygus constraints to the current state that correspond to an invariant synthesis problem.

+

SyGuS v2:

+

(inv-constraint <inv> <pre> <trans> <post>)
+
+
+

+
+
Parameters:
+
    +
  • inv – The function-to-synthesize.

  • +
  • pre – The pre-condition.

  • +
  • trans – The transition relation.

  • +
  • post – The post-condition.

  • +
+
+
+
+ +
+
+SynthResult checkSynth() const
+

Try to find a solution for the synthesis conjecture corresponding to the current list of functions-to-synthesize, universal variables and constraints.

+

SyGuS v2:

+

(check-synth)
+
+
+

+
+
Returns:
+

The result of the check, which is “solution” if the check found a solution in which case solutions are available via getSynthSolutions, “no solution” if it was determined there is no solution, or “unknown” otherwise.

+
+
+
+ +
+
+SynthResult checkSynthNext() const
+

Try to find a next solution for the synthesis conjecture corresponding to the current list of functions-to-synthesize, universal variables and constraints. Must be called immediately after a successful call to check-synth or check-synth-next. Requires incremental mode.

+

SyGuS v2:

+

(check-synth-next)
+
+
+

+
+
Returns:
+

The result of the check, which is “solution” if the check found a solution in which case solutions are available via getSynthSolutions, “no solution” if it was determined there is no solution, or “unknown” otherwise.

+
+
+
+ +
+
+Term getSynthSolution(const Term &term) const
+

Get the synthesis solution of the given term. This function should be called immediately after the solver answers unsat for sygus input.

+
+
Parameters:
+

term – The term for which the synthesis solution is queried.

+
+
Returns:
+

The synthesis solution of the given term.

+
+
+
+ +
+
+std::vector<Term> getSynthSolutions(const std::vector<Term> &terms) const
+

Get the synthesis solutions of the given terms. This function should be called immediately after the solver answers unsat for sygus input.

+
+
Parameters:
+

terms – The terms for which the synthesis solutions is queried.

+
+
Returns:
+

The synthesis solutions of the given terms.

+
+
+
+ +
+
+Term findSynth(modes::FindSynthTarget fst) const
+

Find a target term of interest using sygus enumeration, with no provided grammar.

+

The solver will infer which grammar to use in this call, which by default will be the grammars specified by the function(s)-to-synthesize in the current context.

+

SyGuS v2:

+

(find-synth :target)
+
+
+

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+

fst – The identifier specifying what kind of term to find

+
+
Returns:
+

The result of the find, which is the null term if this call failed.

+
+
+
+ +
+
+Term findSynth(modes::FindSynthTarget fst, Grammar &grammar) const
+

Find a target term of interest using sygus enumeration with a provided grammar.

+

SyGuS v2:

+

(find-synth :target G)
+
+
+

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+
    +
  • fst – The identifier specifying what kind of term to find

  • +
  • grammar – The grammar for the term

  • +
+
+
Returns:
+

The result of the find, which is the null term if this call failed.

+
+
+
+ +
+
+Term findSynthNext() const
+

Try to find a next target term of interest using sygus enumeration. Must be called immediately after a successful call to find-synth or find-synth-next.

+

SyGuS v2:

+

(find-synth-next)
+
+
+

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Returns:
+

The result of the find, which is the null term if this call failed.

+
+
+
+ +
+
+Statistics getStatistics() const
+

Get a snapshot of the current state of the statistic values of this solver. The returned object is completely decoupled from the solver and will not change when the solver is used again.

+
+
Returns:
+

A snapshot of the current state of the statistic values.

+
+
+
+ +
+
+void printStatisticsSafe(int fd) const
+

Print the statistics to the given file descriptor, suitable for usage in signal handlers.

+
+
Parameters:
+

fd – The file descriptor.

+
+
+
+ +
+
+bool isOutputOn(const std::string &tag) const
+

Determines if the output stream for the given tag is enabled. Tags can be enabled with the output option (and -o <tag> on the command line).

+

Requires that a valid tag is given.

+
+
Returns:
+

True if the given tag is enabled.

+
+
+
+ +
+
+std::ostream &getOutput(const std::string &tag) const
+

Get an output stream for the given tag.

+

Tags can be enabled with the output option (and -o <tag> on the command line). Raises an exception when an invalid tag is given.

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+

tag – The output tag.

+
+
Returns:
+

The output stream.

+
+
+
+ +
+
+std::string getVersion() const
+

Get a string representation of the version of this solver.

+
+
Returns:
+

The version string.

+
+
+
+ +
+
+TermManager &getTermManager() const
+

Get the associated term manager instance.

+
+
Returns:
+

The term manager.

+
+
+
+ +
+
+

Friends

+
+
+friend class parser::Cmd
+
+ +
+
+friend class main::CommandExecutor
+
+ +
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/sort.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/sort.html new file mode 100644 index 0000000000..63afdd61ee --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/sort.html @@ -0,0 +1,1096 @@ + + + + + + + + + + + + + Sort — cvc5 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Sort

+

The Sort class represents the sort of a +Term. +Its kind is represented as enum class cvc5::SortKind.

+

A Sort can be hashed (using +std::hash<cvc5::Sort>) and serialized to an output stream +(using function +std::ostream& cvc5::operator<< (std::ostream& out, const Sort& s)).

+

Class cvc5::Sort only provides the default constructor +to create a null Sort. Class TermManager +provides factory functions for all other sorts, e.g., +cvc5::TermManager::getBooleanSort() for the Boolean sort and +cvc5::TermManager::mkBitVectorSort() for bit-vector +sorts.

+

Sorts are defined as standardized in the SMT-LIB standard for standardized +theories. Additionally, we introduce the following sorts for non-standardized +theories:

+ +
+ +
+
+
+class Sort
+

The sort of a cvc5 term.

+
+

Public Functions

+
+
+Sort()
+

Constructor.

+
+ +
+
+~Sort()
+

Destructor.

+
+ +
+
+bool operator==(const Sort &s) const
+

Comparison for structural equality.

+
+
Parameters:
+

s – The sort to compare to.

+
+
Returns:
+

True if the sorts are equal.

+
+
+
+ +
+
+bool operator!=(const Sort &s) const
+

Comparison for structural disequality.

+
+
Parameters:
+

s – The sort to compare to.

+
+
Returns:
+

True if the sorts are not equal.

+
+
+
+ +
+
+bool operator<(const Sort &s) const
+

Comparison for ordering on sorts.

+
+
Parameters:
+

s – The sort to compare to.

+
+
Returns:
+

True if this sort is less than s.

+
+
+
+ +
+
+bool operator>(const Sort &s) const
+

Comparison for ordering on sorts.

+
+
Parameters:
+

s – The sort to compare to.

+
+
Returns:
+

True if this sort is greater than s.

+
+
+
+ +
+
+bool operator<=(const Sort &s) const
+

Comparison for ordering on sorts.

+
+
Parameters:
+

s – The sort to compare to.

+
+
Returns:
+

True if this sort is less than or equal to s.

+
+
+
+ +
+
+bool operator>=(const Sort &s) const
+

Comparison for ordering on sorts.

+
+
Parameters:
+

s – The sort to compare to.

+
+
Returns:
+

True if this sort is greater than or equal to s.

+
+
+
+ +
+
+SortKind getKind() const
+

Get the kind of this sort.

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Returns:
+

The kind of the sort.

+
+
+
+ +
+
+bool hasSymbol() const
+

Determine if this sort has a symbol (a name).

+

For example, uninterpreted sorts and uninterpreted sort constructors have symbols.

+
+
Returns:
+

True if the sort has a symbol.

+
+
+
+ +
+
+std::string getSymbol() const
+

Get the symbol of this Sort.

+

+The symbol of this sort is the string that was provided when constructing it via Solver::mkUninterpretedSort(const std::string&) const, Solver::mkUnresolvedSort(const std::string&, size_t) const, or Solver::mkUninterpretedSortConstructorSort(const std::string&, size_t).

+
+

Note

+

Asserts hasSymbol().

+
+
+
Returns:
+

The raw symbol of the sort.

+
+
+
+ +
+
+bool isNull() const
+

Determine if this is the null sort (Sort::Sort()).

+
+
Returns:
+

True if this Sort is the null sort.

+
+
+
+ +
+
+bool isBoolean() const
+

Determine if this is the Boolean sort (SMT-LIB: Bool).

+
+
Returns:
+

True if this sort is the Boolean sort.

+
+
+
+ +
+
+bool isInteger() const
+

Determine if this is the integer sort (SMT-LIB: Int).

+
+
Returns:
+

True if this sort is the integer sort.

+
+
+
+ +
+
+bool isReal() const
+

Determine if this is the real sort (SMT-LIB: Real).

+
+
Returns:
+

True if this sort is the real sort.

+
+
+
+ +
+
+bool isString() const
+

Determine if this is the string sort (SMT-LIB: String).

+
+
Returns:
+

True if this sort is the string sort.

+
+
+
+ +
+
+bool isRegExp() const
+

Determine if this is the regular expression sort (SMT-LIB: RegLan).

+
+
Returns:
+

True if this sort is the regular expression sort.

+
+
+
+ +
+
+bool isRoundingMode() const
+

Determine if this is the rounding mode sort (SMT-LIB: RoundingMode).

+
+
Returns:
+

True if this sort is the rounding mode sort.

+
+
+
+ +
+
+bool isBitVector() const
+

Determine if this is a bit-vector sort (SMT-LIB: (_ BitVec i)).

+
+
Returns:
+

True if this sort is a bit-vector sort.

+
+
+
+ +
+
+bool isFloatingPoint() const
+

Determine if this is a floatingpoint sort (SMT-LIB: (_ FloatingPoint eb sb)).

+
+
Returns:
+

True if this sort is a floating-point sort.

+
+
+
+ +
+
+bool isDatatype() const
+

Determine if this is a datatype sort.

+
+
Returns:
+

True if this sort is a datatype sort.

+
+
+
+ +
+
+bool isDatatypeConstructor() const
+

Determine if this is a datatype constructor sort.

+
+
Returns:
+

True if this sort is a datatype constructor sort.

+
+
+
+ +
+
+bool isDatatypeSelector() const
+

Determine if this is a datatype selector sort.

+
+
Returns:
+

True if this sort is a datatype selector sort.

+
+
+
+ +
+
+bool isDatatypeTester() const
+

Determine if this is a datatype tester sort.

+
+
Returns:
+

True if this sort is a datatype tester sort.

+
+
+
+ +
+
+bool isDatatypeUpdater() const
+

Determine if this is a datatype updater sort.

+
+
Returns:
+

True if this sort is a datatype updater sort.

+
+
+
+ +
+
+bool isFunction() const
+

Determine if this is a function sort.

+
+
Returns:
+

True if this sort is a function sort.

+
+
+
+ +
+
+bool isPredicate() const
+

Determine if this is a predicate sort.

+

A predicate sort is a function sort that maps to the Boolean sort. All predicate sorts are also function sorts.

+
+
Returns:
+

True if this sort is a predicate sort.

+
+
+
+ +
+
+bool isTuple() const
+

Determine if this is a tuple sort.

+
+
Returns:
+

True if this sort is a tuple sort.

+
+
+
+ +
+
+bool isNullable() const
+

Determine if this is a nullable sort.

+
+
Returns:
+

True if the sort is a nullable sort.

+
+
+
+ +
+
+bool isRecord() const
+

Determine if this is a record sort.

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Returns:
+

True if the sort is a record sort.

+
+
+
+ +
+
+bool isArray() const
+

Determine if this is an array sort.

+
+
Returns:
+

True if the sort is an array sort.

+
+
+
+ +
+
+bool isFiniteField() const
+

Determine if this is a finite field sort.

+
+
Returns:
+

True if the sort is a finite field sort.

+
+
+
+ +
+
+bool isSet() const
+

Determine if this is a Set sort.

+
+
Returns:
+

True if the sort is a Set sort.

+
+
+
+ +
+
+bool isBag() const
+

Determine if this is a Bag sort.

+
+
Returns:
+

True if the sort is a Bag sort.

+
+
+
+ +
+
+bool isSequence() const
+

Determine if this is a Sequence sort.

+
+
Returns:
+

True if the sort is a Sequence sort.

+
+
+
+ +
+
+bool isAbstract() const
+

Determine if this is an abstract sort.

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Returns:
+

True if the sort is a abstract sort.

+
+
+
+ +
+
+bool isUninterpretedSort() const
+

Determine if this is an uninterpreted sort.

+
+
Returns:
+

True if this is an uninterpreted sort.

+
+
+
+ +
+
+bool isUninterpretedSortConstructor() const
+

Determine if this is an uninterpreted sort constructor.

+

An uninterpreted sort constructor has arity > 0 and can be instantiated to construct uninterpreted sorts with given sort parameters.

+
+
Returns:
+

True if this is of sort constructor kind.

+
+
+
+ +
+
+bool isInstantiated() const
+

Determine if this is an instantiated (parametric datatype or uninterpreted sort constructor) sort.

+

An instantiated sort is a sort that has been constructed from instantiating a sort with sort arguments (see Sort::instantiate(const std::vector<Sort>&) const)).

+
+
Returns:
+

True if this is an instantiated sort.

+
+
+
+ +
+
+Sort getUninterpretedSortConstructor() const
+

Get the associated uninterpreted sort constructor of an instantiated uninterpreted sort.

+
+
Returns:
+

The uninterpreted sort constructor sort.

+
+
+
+ +
+
+Datatype getDatatype() const
+
+
Returns:
+

The underlying datatype of a datatype sort.

+
+
+
+ +
+
+Sort instantiate(const std::vector<Sort> &params) const
+

Instantiate a parameterized datatype sort or uninterpreted sort constructor sort.

+

Create sort parameters with Solver::mkParamSort().

+
+
Parameters:
+

params – The list of sort parameters to instantiate with.

+
+
Returns:
+

The instantiated sort.

+
+
+
+ +
+
+std::vector<Sort> getInstantiatedParameters() const
+

Get the sorts used to instantiate the sort parameters of a parametric sort (parametric datatype or uninterpreted sort constructor sort, see Sort::instantiate(const std::vector<Sort>& const)).

+
+
Returns:
+

The sorts used to instantiate the sort parameters of a parametric sort

+
+
+
+ +
+
+Sort substitute(const Sort &sort, const Sort &replacement) const
+

Substitution of Sorts.

+

Note that this replacement is applied during a pre-order traversal and only once to the sort. It is not run until fix point.

+

For example, (Array A B).substitute({A, C}, {(Array C D), (Array A B)}) will return (Array (Array C D) B).

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+
    +
  • sort – The subsort to be substituted within this sort.

  • +
  • replacement – The sort replacing the substituted subsort.

  • +
+
+
+
+ +
+
+Sort substitute(const std::vector<Sort> &sorts, const std::vector<Sort> &replacements) const
+

Simultaneous substitution of Sorts.

+

Note that this replacement is applied during a pre-order traversal and only once to the sort. It is not run until fix point. In the case that sorts contains duplicates, the replacement earliest in the vector takes priority.

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+
    +
  • sorts – The subsorts to be substituted within this sort.

  • +
  • replacements – The sort replacing the substituted subsorts.

  • +
+
+
+
+ +
+
+void toStream(std::ostream &out) const
+

Output a string representation of this sort to a given stream.

+
+
Parameters:
+

out – The output stream.

+
+
+
+ +
+
+std::string toString() const
+
+
Returns:
+

A string representation of this sort.

+
+
+
+ +
+
+size_t getDatatypeConstructorArity() const
+
+
Returns:
+

The arity of a datatype constructor sort.

+
+
+
+ +
+
+std::vector<Sort> getDatatypeConstructorDomainSorts() const
+
+
Returns:
+

The domain sorts of a datatype constructor sort.

+
+
+
+ +
+
+Sort getDatatypeConstructorCodomainSort() const
+
+
Returns:
+

The codomain sort of a constructor sort.

+
+
+
+ +
+
+Sort getDatatypeSelectorDomainSort() const
+
+
Returns:
+

The domain sort of a datatype selector sort.

+
+
+
+ +
+
+Sort getDatatypeSelectorCodomainSort() const
+
+
Returns:
+

The codomain sort of a datatype selector sort.

+
+
+
+ +
+
+Sort getDatatypeTesterDomainSort() const
+
+
Returns:
+

The domain sort of a datatype tester sort.

+
+
+
+ +
+
+Sort getDatatypeTesterCodomainSort() const
+
+

Note

+

We mainly need this for the symbol table, which doesn’t have access to the solver object.

+
+
+
Returns:
+

The codomain sort of a datatype tester sort, which is the Boolean sort.

+
+
+
+ +
+
+size_t getFunctionArity() const
+
+
Returns:
+

The arity of a function sort.

+
+
+
+ +
+
+std::vector<Sort> getFunctionDomainSorts() const
+
+
Returns:
+

The domain sorts of a function sort.

+
+
+
+ +
+
+Sort getFunctionCodomainSort() const
+
+
Returns:
+

The codomain sort of a function sort.

+
+
+
+ +
+
+Sort getArrayIndexSort() const
+
+
Returns:
+

The array index sort of an array sort.

+
+
+
+ +
+
+Sort getArrayElementSort() const
+
+
Returns:
+

The array element sort of an array sort.

+
+
+
+ +
+
+Sort getSetElementSort() const
+
+
Returns:
+

The element sort of a set sort.

+
+
+
+ +
+
+Sort getBagElementSort() const
+
+
Returns:
+

The element sort of a bag sort.

+
+
+
+ +
+
+Sort getSequenceElementSort() const
+
+
Returns:
+

The element sort of a sequence sort.

+
+
+
+ +
+
+SortKind getAbstractedKind() const
+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Returns:
+

The sort kind of an abstract sort, which denotes the kind of sorts that this abstract sort denotes.

+
+
+
+ +
+
+size_t getUninterpretedSortConstructorArity() const
+
+
Returns:
+

The arity of an uninterpreted sort constructor sort.

+
+
+
+ +
+
+uint32_t getBitVectorSize() const
+
+
Returns:
+

The bit-width of the bit-vector sort.

+
+
+
+ +
+
+std::string getFiniteFieldSize() const
+
+
Returns:
+

The size of the finite field sort.

+
+
+
+ +
+
+uint32_t getFloatingPointExponentSize() const
+
+
Returns:
+

The bit-width of the exponent of the floating-point sort.

+
+
+
+ +
+
+uint32_t getFloatingPointSignificandSize() const
+
+
Returns:
+

The width of the significand of the floating-point sort.

+
+
+
+ +
+
+size_t getDatatypeArity() const
+

Get the arity of a datatype sort, which is the number of type parameters if the datatype is parametric, or 0 otherwise.

+
+
Returns:
+

The arity of a datatype sort.

+
+
+
+ +
+
+size_t getTupleLength() const
+
+
Returns:
+

The length of a tuple sort.

+
+
+
+ +
+
+std::vector<Sort> getTupleSorts() const
+
+
Returns:
+

The element sorts of a tuple sort.

+
+
+
+ +
+
+Sort getNullableElementSort() const
+
+
Returns:
+

The element sort of a nullable sort.

+
+
+
+ +
+
+

Friends

+
+
+friend class parser::Cmd
+
+ +
+
+friend struct std::hash< Sort >
+
+ +
+
+ +
+
+
+std::ostream &cvc5::operator<<(std::ostream &out, const Sort &s)
+

Serialize a sort to given stream.

+
+
Parameters:
+
    +
  • out – The output stream.

  • +
  • s – The sort to be serialized to the given output stream.

  • +
+
+
Returns:
+

The output stream.

+
+
+
+ +
+
+
+template<>
struct hash<cvc5::Sort>
+

Hash function for Sorts.

+
+

Public Functions

+
+
+size_t operator()(const cvc5::Sort &s) const
+
+ +
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/statistics.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/statistics.html new file mode 100644 index 0000000000..e59b2f492e --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/statistics.html @@ -0,0 +1,456 @@ + + + + + + + + + + + + + Statistics — cvc5 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Statistics

+

See Statistics for general information on statistics in cvc5.

+

Class cvc5::Statistics represents a mapping from statistic names +(as std::string) to statistic values, which are represented by class +cvc5::Stat. A cvc5::Stat may hold values of different +types (int64_t, double, std::string and histograms) and can be +inspected by identifying the type +(Stat::isInt(), +Stat::isDouble(), etc) and obtaining +the actual value (Stat::getInt(), +Stat::getDouble(), etc). Histograms +are represented as std::map<std::string, uint64_t> where the key is the +string representation of one enumeration value +and the value is the frequency of this particular value.

+

By default, iterating over a Statistics +object shows all statistics, including internal and unchanged ones. +The inclusion of internal and defaulted statistics can be configured via +Boolean parameters internal and defaulted of function +Statistics::begin().

+
+ +
+
+
+class Statistics
+

Represents a snapshot of the solver statistics. See Statistics for +how statistics can be used.

+

Statistics can be queried from the Solver via +Solver::getStatistics(), and +from the TermManager via TermManager::getStatistics(). An statistics instance obtained from +either call is independent of the Solver (and +its associated :cpp:class:`TermManager <cvc5::TermManager>`object: it will +not change when new terms are created or the solver’s internal statistics +do. It will also not be invalidated if the solver/term manageris destroyed.

+

Iterating over this class (via begin() and end()) +shows only public statistics that have been changed. By passing appropriate +flags to begin(), statistics that are +internal, defaulted, or both, can be included as well. A single statistic +value is represented as Stat.

+

+
+

Public Functions

+
+
+const Stat &get(const std::string &name)
+

Retrieve the statistic with the given name.

+
+

Note

+

Asserts that a statistic with the given name actually exists and throws a CVC5ApiRecoverableException if it does not.

+
+
+
Parameters:
+

name – The name of the statistic.

+
+
Returns:
+

The statistic with the given name.

+
+
+
+ +
+
+iterator begin(bool internal = true, bool defaulted = true) const
+

Begin iteration over the statistics values. By default, only entries that are public and have been set are visible while the others are skipped.

+
+
Parameters:
+
    +
  • internal – If set to true, internal statistics are shown as well.

  • +
  • defaulted – If set to true, defaulted statistics are shown as well.

  • +
+
+
+
+ +
+
+iterator end() const
+

End iteration

+
+ +
+
+ +
+
+
+std::ostream &cvc5::operator<<(std::ostream &out, const Statistics &stats)
+
+ +
+
+
+class Stat
+

Represents a snapshot of a single statistic value. See Statistics for +how statistics can be used. +A value can be of type int64_t, double, std::string or a +histogram +(std::map<std::string, uint64_t>). +The value type can be queried (using isInt(), isDouble(), etc.) and +the stored value can be accessed (using getInt(), getDouble(), etc.). +It is possible to query whether this statistic is an internal statistic by +isInternal() and whether its value is +the default value by isDefault().

+
+

Public Types

+
+
+using HistogramData = std::map<std::string, uint64_t>
+

Representation of a histogram: maps names to frequencies.

+
+ +
+
+

Public Functions

+
+
+Stat()
+

Create an empty statistics object. On such an object all isX() return false and all getX() throw an API exception. It solely exists because it makes implementing bindings for other languages much easier.

+
+ +
+
+Stat(const Stat &s)
+

Copy constructor

+
+ +
+
+~Stat()
+

Destructor

+
+ +
+
+Stat &operator=(const Stat &s)
+

Copy assignment

+
+ +
+
+bool isInternal() const
+

Determine if this statistic is intended for internal use only.

+
+
Returns:
+

True if this is an internal statistic.

+
+
+
+ +
+
+bool isDefault() const
+

Determine if this statistic holds the default value.

+
+
Returns:
+

True if this is a defaulted statistic.

+
+
+
+ +
+
+bool isInt() const
+

Determine if this statistic holds an integer value.

+
+
Returns:
+

True if this value is an integer.

+
+
+
+ +
+
+int64_t getInt() const
+

Get the value of an integer statistic.

+
+
Returns:
+

The integer value.

+
+
+
+ +
+
+bool isDouble() const
+

Determine if this statistic holds a double value.

+
+
Returns:
+

True if this value is a double.

+
+
+
+ +
+
+double getDouble() const
+

Get the value of a double statistic.

+
+
Returns:
+

The double value.

+
+
+
+ +
+
+bool isString() const
+

Determine if this statistic holds a string value.

+
+
Returns:
+

True if this value is a string.

+
+
+
+ +
+
+const std::string &getString() const
+

Get the value of a string statistic.

+
+
Returns:
+

The string value.

+
+
+
+ +
+
+bool isHistogram() const
+

Determine if this statistics holds a histogram.

+
+
Returns:
+

True if this value is a histogram.

+
+
+
+ +
+
+const HistogramData &getHistogram() const
+

Get the value of a histogram statistic.

+
+
Returns:
+

The histogram value.

+
+
+
+ +
+
+std::string toString() const
+

Get a string represenation of this statistic.

+
+
Returns:
+

The string represenation.

+
+
+
+ +
+
+

Friends

+
+
+friend class Statistics
+
+ +
+
+friend std::ostream &operator<<(std::ostream &os, const Stat &sv)
+

Print a Stat object to an std::ostream.

+
+ +
+
+ +
+
+
+std::ostream &cvc5::operator<<(std::ostream &os, const Stat &stat)
+

Print a Stat object to an std::ostream.

+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/symbolmanager.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/symbolmanager.html new file mode 100644 index 0000000000..f46d971207 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/symbolmanager.html @@ -0,0 +1,288 @@ + + + + + + + + + + + + + SymbolManager — cvc5 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

SymbolManager

+

This class manages a symbol table and other meta-information pertaining to +SMT-LIB v2 inputs (e.g., named assertions, declared functions, etc.).

+
+
+
+class SymbolManager
+

Symbol manager. Internally, this class manages a symbol table and other meta-information pertaining to SMT2 file inputs (e.g. named assertions, declared functions, etc.).

+

A symbol manager can be modified by invoking commands, see Command::invoke.

+

A symbol manager can be provided when constructing an InputParser, in which case that InputParser has symbols of this symbol manager preloaded.

+

The symbol manager’s interface is otherwise not publicly available.

+
+

Public Functions

+
+
+SymbolManager(cvc5::TermManager &tm)
+

Constructor.

+
+
Parameters:
+

tm – The associated term manager instance.

+
+
+
+ +
+
+SymbolManager(cvc5::Solver *slv)
+

Constructor.

+
+

Warning

+

This constructor is deprecated and replaced by SymbolManager::SymbolManager(TermManager&). It will be removed in a future release.

+
+
+
Parameters:
+

slv – The solver instance.

+
+
+
+ +
+
+~SymbolManager()
+

Destructor.

+
+ +
+
+bool isLogicSet() const
+

Determine if the logic of this symbol manager has been set.

+
+
Returns:
+

True if the logic has been set.

+
+
+
+ +
+
+const std::string &getLogic() const
+

Get the logic configured for this symbol manager.

+
+

Note

+

Asserts isLogicSet().

+
+
+
Returns:
+

The configured logic.

+
+
+
+ +
+
+std::vector<Sort> getDeclaredSorts() const
+

Get the list of sorts that have been declared via declare-sort commands. These are the sorts that are printed as part of a response to a get-model command.

+
+
Returns:
+

The declared sorts.

+
+
+
+ +
+
+std::vector<Term> getDeclaredTerms() const
+

Get the list of terms that have been declared via declare-fun and declare-const. These are the terms that are printed in response to a get-model command.

+
+
Returns:
+

The declared terms.

+
+
+
+ +
+
+std::map<Term, std::string> getNamedTerms() const
+

Get a mapping from terms to names that have been given to them via the :named attribute.

+
+
Returns:
+

A map of the named terms to their names.

+
+
+
+ +
+
+

Friends

+
+
+friend class internal::InteractiveShell
+
+ +
+
+friend class main::CommandExecutor
+
+ +
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/synthresult.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/synthresult.html new file mode 100644 index 0000000000..14b4488806 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/synthresult.html @@ -0,0 +1,294 @@ + + + + + + + + + + + + + SynthResult — cvc5 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

SynthResult

+

This class represents a cvc5::Solver SyGus synthesis result.

+
+ +
+
+
+class SynthResult
+

Encapsulation of a solver synth result.

+

This is the return value of the API functions:

+

+

which we call “synthesis queries”. This class indicates whether the synthesis query has a solution, has no solution, or is unknown.

+
+

Public Functions

+
+
+SynthResult()
+

Constructor.

+
+ +
+
+bool isNull() const
+

Determine if a given synthesis result is empty (a nullary result) and not an actual result returned from a synthesis query.

+
+
Returns:
+

True if SynthResult is null, i.e., not a SynthResult returned from a synthesis query.

+
+
+
+ +
+
+bool hasSolution() const
+
+
Returns:
+

True if the synthesis query has a solution.

+
+
+
+ +
+
+bool hasNoSolution() const
+
+
Returns:
+

True if the synthesis query has no solution. In this case, it was determined that there was no solution.

+
+
+
+ +
+
+bool isUnknown() const
+
+
Returns:
+

True if the result of the synthesis query could not be determined.

+
+
+
+ +
+
+bool operator==(const SynthResult &r) const
+

Operator overloading for equality of two synthesis results.

+
+
Parameters:
+

r – The synthesis result to compare to for equality.

+
+
Returns:
+

True if the synthesis results are equal.

+
+
+
+ +
+
+bool operator!=(const SynthResult &r) const
+

Operator overloading for disequality of two synthesis results.

+
+
Parameters:
+

r – The synthesis result to compare to for disequality.

+
+
Returns:
+

True if the synthesis results are disequal.

+
+
+
+ +
+
+std::string toString() const
+
+
Returns:
+

A string representation of this synthesis result.

+
+
+
+ +
+
+ +
+
+
+std::ostream &cvc5::operator<<(std::ostream &out, const SynthResult &r)
+

Serialize a SynthResult to given stream.

+
+
Parameters:
+
    +
  • out – The output stream.

  • +
  • r – The result to be serialized to the given output stream.

  • +
+
+
Returns:
+

The output stream.

+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/term.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/term.html new file mode 100644 index 0000000000..b56f4cdd8d --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/term.html @@ -0,0 +1,1648 @@ + + + + + + + + + + + + + Term — cvc5 documentation + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Term

+

The Term class represents an arbitrary expression +of any of the supported sorts. The list of all supported kinds of terms is +given by the Kind enum. +The Term class provides functions for general +inspection (e.g., comparison, retrieving the kind and sort, accessing +sub-terms), +but also functions for retrieving constant values for the supported theories +(i.e., is<Type>Value() and get<Type>Value(), which returns the +constant values in the best type standard C++ offers).

+

Additionally, a Term can be hashed (using +std::hash<cvc5::Term>) and given to output streams, including +terms within standard containers like std::map, std::set, or +std::vector.

+

The Term only offers the default constructor to +create a null term. Instead, the TermManager +class provides factory functions to create terms, e.g., +TermManager::mkTerm() for generic +terms and TermManager::mk<Type>() for constants, variables and values +of a given type.

+
+ +
+
+
+class Term
+

A cvc5 Term.

+
+

Public Functions

+
+
+Term()
+

Constructor for a null term.

+
+ +
+
+~Term()
+

Destructor.

+
+ +
+
+bool operator==(const Term &t) const
+

Syntactic equality operator.

+
+
Parameters:
+

t – The term to compare to for equality.

+
+
Returns:
+

True if the terms are equal.

+
+
+
+ +
+
+bool operator!=(const Term &t) const
+

Syntactic disequality operator.

+
+
Parameters:
+

t – The term to compare to for disequality.

+
+
Returns:
+

True if terms are disequal.

+
+
+
+ +
+
+bool operator<(const Term &t) const
+

Comparison for ordering on terms by their id.

+
+
Parameters:
+

t – The term to compare to.

+
+
Returns:
+

True if this term is less than t.

+
+
+
+ +
+
+bool operator>(const Term &t) const
+

Comparison for ordering on terms by their id.

+
+
Parameters:
+

t – The term to compare to.

+
+
Returns:
+

True if this term is greater than t.

+
+
+
+ +
+
+bool operator<=(const Term &t) const
+

Comparison for ordering on terms by their id.

+
+
Parameters:
+

t – The term to compare to.

+
+
Returns:
+

True if this term is less than or equal to t.

+
+
+
+ +
+
+bool operator>=(const Term &t) const
+

Comparison for ordering on terms by their id.

+
+
Parameters:
+

t – The term to compare to.

+
+
Returns:
+

True if this term is greater than or equal to t.

+
+
+
+ +
+
+size_t getNumChildren() const
+

Get the number of children of this term.

+
+
Returns:
+

The number of children of this term.

+
+
+
+ +
+
+Term operator[](size_t index) const
+

Get the child term of this term at a given index.

+
+
Parameters:
+

index – The index of the child.

+
+
Returns:
+

The child term at the given index.

+
+
+
+ +
+
+uint64_t getId() const
+

Get the id of this term.

+
+
Returns:
+

The id of this term.

+
+
+
+ +
+
+Kind getKind() const
+

Get the kind of this term.

+
+
Returns:
+

The kind of this term.

+
+
+
+ +
+
+Sort getSort() const
+

Get the sort of this term.

+
+
Returns:
+

The sort of this term.

+
+
+
+ +
+
+Term substitute(const Term &term, const Term &replacement) const
+

Replace term with replacement in this term.

+
+

Note

+

This replacement is applied during a pre-order traversal and only once (it is not run until fixed point).

+
+
+
Parameters:
+
    +
  • term – The term to replace.

  • +
  • replacement – The term to replace it with.

  • +
+
+
Returns:
+

The result of replacing term with replacement in this term.

+
+
+
+ +
+
+Term substitute(const std::vector<Term> &terms, const std::vector<Term> &replacements) const
+

Simultaneously replace terms with replacements in this term.

+

In the case that terms contains duplicates, the replacement earliest in the vector takes priority. For example, calling substitute on f(x,y) with terms = { x, z }, replacements = { g(z), w } results in the term f(g(z),y).

+
+

Note

+

Requires that terms and replacements are of equal size (they are interpreted as 1 : 1 mapping).

+
+
+

Note

+

This replacement is applied during a pre-order traversal and only once (it is not run until fixed point).

+
+
+
Parameters:
+
    +
  • terms – The terms to replace.

  • +
  • replacements – The replacement terms.

  • +
+
+
Returns:
+

The result of simultaneously replacing terms with replacements in this term.

+
+
+
+ +
+
+bool hasOp() const
+

Determine if this term has an operator.

+
+
Returns:
+

True iff this term has an operator.

+
+
+
+ +
+
+Op getOp() const
+

Get the operator of a term with an operator.

+
+

Note

+

Requires that this term has an operator (see hasOp()).

+
+
+
Returns:
+

The Op used to create this term.

+
+
+
+ +
+
+bool hasSymbol() const
+

Determine if this term has a symbol (a name).

+

For example, free constants and variables have symbols.

+
+
Returns:
+

True if the term has a symbol.

+
+
+
+ +
+
+std::string getSymbol() const
+

Get the symbol of this Term.

+

+The symbol of the term is the string that was provided when constructing it via TermManager::mkConst() or TermManager::mkVar().

+
+

Note

+

Requires that this term has a symbol (see hasSymbol()).

+
+
+
Returns:
+

The raw symbol of the term.

+
+
+
+ +
+
+bool isNull() const
+

Determine if this term is nullary.

+
+
Returns:
+

True if this Term is a null term.

+
+
+
+ +
+
+Term notTerm() const
+

Boolean negation.

+
+
Returns:
+

The Boolean negation of this term.

+
+
+
+ +
+
+Term andTerm(const Term &t) const
+

Boolean and.

+
+
Parameters:
+

t – A Boolean term.

+
+
Returns:
+

The conjunction of this term and the given term.

+
+
+
+ +
+
+Term orTerm(const Term &t) const
+

Boolean or.

+
+
Parameters:
+

t – A Boolean term.

+
+
Returns:
+

The disjunction of this term and the given term.

+
+
+
+ +
+
+Term xorTerm(const Term &t) const
+

Boolean exclusive or.

+
+
Parameters:
+

t – A Boolean term.

+
+
Returns:
+

The exclusive disjunction of this term and the given term.

+
+
+
+ +
+
+Term eqTerm(const Term &t) const
+

Equality.

+
+
Parameters:
+

t – A Boolean term.

+
+
Returns:
+

A Boolean term representing equivalence of this term and the given term.

+
+
+
+ +
+
+Term impTerm(const Term &t) const
+

Boolean implication.

+
+
Parameters:
+

t – A Boolean term.

+
+
Returns:
+

The implication of this term and the given term.

+
+
+
+ +
+
+Term iteTerm(const Term &t, const Term &e) const
+

If-then-else with this term as the Boolean condition.

+
+
Parameters:
+
    +
  • t – The ‘then’ term.

  • +
  • e – The ‘else’ term.

  • +
+
+
Returns:
+

The if-then-else term with this term as the Boolean condition.

+
+
+
+ +
+
+std::string toString() const
+
+
Returns:
+

A string representation of this term.

+
+
+
+ +
+
+const_iterator begin() const
+
+
Returns:
+

An iterator to the first child of this Term.

+
+
+
+ +
+
+const_iterator end() const
+
+
Returns:
+

An iterator to one-off-the-last child of this Term.

+
+
+
+ +
+
+int32_t getRealOrIntegerValueSign() const
+

Get the sign of an integer or real value.

+
+

Note

+

Requires that this term is an integer or real value.

+
+
+
Returns:
+

0 if this term is zero, -1 if this term is a negative real or integer value, 1 if this term is a positive real or integer value.

+
+
+
+ +
+
+bool isInt32Value() const
+

Determine if this term is an int32 value.

+
+

Note

+

This will return true for integer constants and real constants that have integer value.

+
+
+
Returns:
+

True if the term is an integral value that fits within int32_t.

+
+
+
+ +
+
+int32_t getInt32Value() const
+

Get the int32_t representation of this integral value.

+
+

Note

+

Requires that this term is an int32 value (see isInt32Value()).

+
+
+
Returns:
+

This integral value as int32_t value.

+
+
+
+ +
+
+bool isUInt32Value() const
+

Determine if this term is a uint32 value.

+
+

Note

+

This will return true for integer constants and real constants that have integral value.

+
+
+
Returns:
+

True if the term is an integral value and fits within uint32_t.

+
+
+
+ +
+
+uint32_t getUInt32Value() const
+

Get the uint32_t representation of this integral value.

+
+

Note

+

Requires that this term is a uint32 value (see isUInt32Value()).

+
+
+
Returns:
+

This integral value as a uint32_t.

+
+
+
+ +
+
+bool isInt64Value() const
+

Determine if this term is an int64 value.

+
+

Note

+

This will return true for integer constants and real constants that have integral value.

+
+
+
Returns:
+

True if the term is an integral value and fits within int64_t.

+
+
+
+ +
+
+int64_t getInt64Value() const
+

Get the int64_t representation of this integral value.

+
+

Note

+

Requires that this term is an int64 value (see isInt64Value()).

+
+
+
Returns:
+

This integral value as a int64_t.

+
+
+
+ +
+
+bool isUInt64Value() const
+

Determine if this term is a uint64 value.

+
+

Note

+

This will return true for integer constants and real constants that have integral value.

+
+
+
Returns:
+

True if the term is an integral value that fits within uint64_t.

+
+
+
+ +
+
+uint64_t getUInt64Value() const
+

Get the uint64_t representation of this integral value.

+
+

Note

+

Requires that this term is an uint64 value (see isUInt64Value()).

+
+
+
Returns:
+

This integral value as a uint64_t.

+
+
+
+ +
+
+bool isIntegerValue() const
+

Determine if this term is an integral value.

+
+
Returns:
+

True if the term is an integer constant or a real constant that has an integral value.

+
+
+
+ +
+
+std::string getIntegerValue() const
+

Get a string representation of this integral value.

+
+

Note

+

Requires that this term is an integral value (see isIntegerValue()).

+
+
+
Returns:
+

The integral term in (decimal) string representation.

+
+
+
+ +
+
+bool isStringValue() const
+

Determine if this term is a string value.

+
+
Returns:
+

True if the term is a string value.

+
+
+
+ +
+
+std::wstring getStringValue() const
+

Get the native string representation of a string value.

+
+

Note

+

Requires that this term is a string value (see isStringValue()).

+
+
+

Note

+

This is not to be confused with toString(), which returns some string representation of the term, whatever data it may hold.

+
+
+
Returns:
+

The string term as a native string value.

+
+
+
+ +
+
+bool isReal32Value() const
+

Determine if this term is a rational value whose numerator fits into an int32 value and its denominator fits into a uint32 value.

+
+
Returns:
+

True if the term is a rational and its numerator and denominator fit into 32 bit integer values.

+
+
+
+ +
+
+std::pair<int32_t, uint32_t> getReal32Value() const
+

Get the 32 bit integer representations of the numerator and denominator of a rational value.

+
+

Note

+

Requires that this term is a rational value and its numerator and denominator fit into 32 bit integer values (see isReal32Value()).

+
+
+
Returns:
+

The representation of a rational value as a pair of its numerator and denominator as integer values.

+
+
+
+ +
+
+bool isReal64Value() const
+

Determine if this term is a rational value whose numerator fits into an int64 value and its denominator fits into a uint64 value.

+
+
Returns:
+

True if the term is a rational value whose numerator and denominator fit within int64_t and uint64_t, respectively.

+
+
+
+ +
+
+std::pair<int64_t, uint64_t> getReal64Value() const
+

Get the 64 bit integer representations of the numerator and denominator of a rational value.

+
+

Note

+

Requires that this term is a rational value and its numerator and denominator fit into 64 bit integer values (see isReal64Value()).

+
+
+
Returns:
+

The representation of a rational value as a pair of its numerator and denominator.

+
+
+
+ +
+
+bool isRealValue() const
+

Determine if this term is a rational value.

+
+

Note

+

A term of kind PI is not considered to be a real value.

+
+
+
Returns:
+

True if the term is a rational value.

+
+
+
+ +
+
+std::string getRealValue() const
+

Get a string representation of this rational value.

+
+

Note

+

Requires that this term is a rational value (see isRealValue()).

+
+
+
Returns:
+

The representation of a rational value as a (rational) string.

+
+
+
+ +
+
+bool isConstArray() const
+

Determine if this term is a constant array.

+
+
Returns:
+

True if the term is a constant array.

+
+
+
+ +
+
+Term getConstArrayBase() const
+

Determine the base (element stored at all indices) of a constant array.

+
+

Note

+

Requires that this term is a constant array (see isConstArray()).

+
+
+
Returns:
+

The base term.

+
+
+
+ +
+
+bool isBooleanValue() const
+

Determine if this term is a Boolean value.

+
+
Returns:
+

True if the term is a Boolean value.

+
+
+
+ +
+
+bool getBooleanValue() const
+

Get the value of a Boolean term as a native Boolean value.

+
+

Note

+

Asserts isBooleanValue().

+
+
+
Returns:
+

The representation of a Boolean value as a native Boolean value.

+
+
+
+ +
+
+bool isBitVectorValue() const
+

Determine if this term is a bit-vector value.

+
+
Returns:
+

True if the term is a bit-vector value.

+
+
+
+ +
+
+std::string getBitVectorValue(uint32_t base = 2) const
+

Get the string representation of a bit-vector value.

+
+

Note

+

Asserts isBitVectorValue().

+
+
+
Parameters:
+

base2 for binary, 10 for decimal, and 16 for hexadecimal.

+
+
Returns:
+

The string representation of a bit-vector value.

+
+
+
+ +
+
+bool isFiniteFieldValue() const
+

Determine if this term is a finite field value.

+
+
Returns:
+

True if the term is a finite field value.

+
+
+
+ +
+
+std::string getFiniteFieldValue() const
+

Get the string representation of a finite field value (base 10).

+
+

Note

+

Asserts isFiniteFieldValue().

+
+
+

Note

+

Uses the integer representative of smallest absolute value.

+
+
+
Returns:
+

The string representation of the integer representation of this finite field value.

+
+
+
+ +
+
+bool isUninterpretedSortValue() const
+

Determine if this term is an uninterpreted sort value.

+
+
Returns:
+

True if the term is an abstract value.

+
+
+
+ +
+
+std::string getUninterpretedSortValue() const
+

Get a string representation of an uninterpreted sort value.

+
+

Note

+

Asserts isUninterpretedSortValue().

+
+
+
Returns:
+

The representation of an uninterpreted sort value as a string.

+
+
+
+ +
+
+bool isTupleValue() const
+

Determine if this term is a tuple value.

+
+
Returns:
+

True if the term is a tuple value.

+
+
+
+ +
+
+std::vector<Term> getTupleValue() const
+

Get a tuple value as a vector of terms.

+
+

Note

+

Asserts isTupleValue().

+
+
+
Returns:
+

The representation of a tuple value as a vector of terms.

+
+
+
+ +
+
+bool isRoundingModeValue() const
+

Determine if this term is a floating-point rounding mode value.

+
+
Returns:
+

True if the term is a rounding mode value.

+
+
+
+ +
+
+RoundingMode getRoundingModeValue() const
+

Get the RoundingMode value of a given rounding-mode value term.

+
+

Note

+

Asserts isRoundingModeValue().

+
+
+
Returns:
+

The floating-point rounding mode value of the term.

+
+
+
+ +
+
+bool isFloatingPointPosZero() const
+

Determine if this term is a floating-point positive zero value (+zero).

+
+
Returns:
+

True if the term is the floating-point value for positive zero.

+
+
+
+ +
+
+bool isFloatingPointNegZero() const
+

Determine if this term is a floating-point negative zero value (-zero).

+
+
Returns:
+

True if the term is the floating-point value for negative zero.

+
+
+
+ +
+
+bool isFloatingPointPosInf() const
+

Determine if this term is a floating-point positive infinity value (+oo).

+
+
Returns:
+

True if the term is the floating-point value for positive. infinity.

+
+
+
+ +
+
+bool isFloatingPointNegInf() const
+

Determine if this term is a floating-point negative infinity value (-oo).

+
+
Returns:
+

True if the term is the floating-point value for negative. infinity.

+
+
+
+ +
+
+bool isFloatingPointNaN() const
+

Determine if a given term is a floating-point NaN value.

+
+
Returns:
+

True if the term is the floating-point value for not a number.

+
+
+
+ +
+
+bool isFloatingPointValue() const
+

Determine if a given term is a floating-point value.

+
+
Returns:
+

True if the term is a floating-point value.

+
+
+
+ +
+
+std::tuple<uint32_t, uint32_t, Term> getFloatingPointValue() const
+

Get the representation of a floating-point value as a tuple of its exponent width, significand width and a bit-vector value term.

+
+

Note

+

Asserts isFloatingPointValue().

+
+
+
Returns:
+

The floating-point value representation.

+
+
+
+ +
+
+bool isSetValue() const
+

Determine if this term is a set value.

+

A term is a set value if it is considered to be a (canonical) constant set value. A canonical set value is one whose AST is:

+

(union (singleton c1) ... (union (singleton c_{n-1}) (singleton c_n))))
+
+
+

+

where \(c_1 ... c_n\) are values ordered by id such that \(c_1 > ... > c_n\) (see Term::operator>(const Term&) const).

+
+

Note

+

A universe set term (kind SET_UNIVERSE) is not considered to be a set value.

+
+
+
Returns:
+

True if the term is a set value.

+
+
+
+ +
+
+std::set<Term> getSetValue() const
+

Get a set value as a set of terms.

+
+

Note

+

Asserts isSetValue().

+
+
+
Returns:
+

The representation of a set value as a set of terms.

+
+
+
+ +
+
+bool isSequenceValue() const
+

Determine if this term is a sequence value.

+

A term is a sequence value if it has kind #CONST_SEQUENCE. In contrast to values for the set sort (as described in isSetValue()), a sequence value is represented as a Term with no children.

+

Semantically, a sequence value is a concatenation of unit sequences whose elements are themselves values. For example:

+

(seq.++ (seq.unit 0) (seq.unit 1))
+
+
+

+

The above term has two representations in Term. One is as the sequence concatenation term:

+

(SEQ_CONCAT (SEQ_UNIT 0) (SEQ_UNIT 1))
+
+
+

+

where 0 and 1 are the terms corresponding to the integer constants 0 and 1.

+

Alternatively, the above term is represented as the constant sequence value:

+

CONST_SEQUENCE_{0,1}
+
+
+

+

where calling getSequenceValue() on the latter returns the vector {0, 1}.

+

The former term is not a sequence value, but the latter term is.

+

Constant sequences cannot be constructed directly via the API. They are returned in response to API calls such Solver::getValue() and Solver::simplify().

+
+
Returns:
+

True if the term is a sequence value.

+
+
+
+ +
+
+std::vector<Term> getSequenceValue() const
+

Get a sequence value as a vector of terms.

+
+

Note

+

Asserts isSequenceValue().

+
+
+
Returns:
+

The representation of a sequence value as a vector of terms.

+
+
+
+ +
+
+bool isCardinalityConstraint() const
+

Determine if this term is a cardinality constraint.

+
+
Returns:
+

True if the term is a cardinality constraint.

+
+
+
+ +
+
+std::pair<Sort, uint32_t> getCardinalityConstraint() const
+

Get a cardinality constraint as a pair of its sort and upper bound.

+
+

Note

+

Asserts isCardinalityConstraint().

+
+
+
Returns:
+

The sort the cardinality constraint is for and its upper bound.

+
+
+
+ +
+
+bool isRealAlgebraicNumber() const
+

Determine if this term is a real algebraic number.

+
+
Returns:
+

True if the term is a real algebraic number.

+
+
+
+ +
+
+Term getRealAlgebraicNumberDefiningPolynomial(const Term &v) const
+

Get the defining polynomial for a real algebraic number term, expressed in terms of the given variable.

+
+

Note

+

Asserts isRealAlgebraicNumber().

+
+
+
Parameters:
+

v – The variable over which to express the polynomial.

+
+
Returns:
+

The defining polynomial.

+
+
+
+ +
+
+Term getRealAlgebraicNumberLowerBound() const
+

Get the lower bound for a real algebraic number value.

+
+

Note

+

Asserts isRealAlgebraicNumber().

+
+
+
Returns:
+

The lower bound.

+
+
+
+ +
+
+Term getRealAlgebraicNumberUpperBound() const
+

Get the upper bound for a real algebraic number value.

+
+

Note

+

Asserts isRealAlgebraicNumber().

+
+
+
Returns:
+

The upper bound.

+
+
+
+ +
+
+bool isSkolem() const
+

Is this term a skolem?

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Returns:
+

True if this term is a skolem function.

+
+
+
+ +
+
+SkolemId getSkolemId() const
+

Get skolem identifier of this term.

+
+

Note

+

Asserts isSkolem().

+
+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Returns:
+

The skolem identifier of this term.

+
+
+
+ +
+
+std::vector<Term> getSkolemIndices() const
+

Get the skolem indices of this term.

+
+

Note

+

Asserts isSkolem().

+
+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Returns:
+

The skolem indices of this term. This is list of terms that the skolem function is indexed by. For example, the array diff skolem SkolemId::ARRAY_DEQ_DIFF is indexed by two arrays.

+
+
+
+ +
+
+

Friends

+
+
+friend class parser::Cmd
+
+ +
+
+friend struct std::hash< Term >
+
+ +
+
+
+class const_iterator
+

Iterator for the children of a Term.

+
+

Note

+

This treats uninterpreted functions as Term just like any other term for example, the term f(x, y) will have Kind APPLY_UF and three children: f, x, and y

+
+
+

Public Types

+
+
+using iterator_category = std::forward_iterator_tag
+

Iterator tag

+
+ +
+
+using value_type = Term
+

The type of the item

+
+ +
+
+using pointer = const Term*
+

The pointer type of the item

+
+ +
+
+using reference = const Term&
+

The reference type of the item

+
+ +
+
+using difference_type = std::ptrdiff_t
+

The type returned when two iterators are subtracted

+
+ +
+
+

Public Functions

+
+
+const_iterator()
+

Null Constructor.

+
+ +
+
+const_iterator(TermManager *tm, const std::shared_ptr<internal::Node> &e, uint32_t p)
+

Constructor

+
+
Parameters:
+
    +
  • tm – The associated term manager.

  • +
  • e – A std::shared pointer to the node that we’re iterating over.

  • +
  • p – The position of the iterator (e.g. which child it’s on).

  • +
+
+
+
+ +
+
+const_iterator(const const_iterator &it)
+

Copy constructor.

+
+ +
+
+const_iterator &operator=(const const_iterator &it)
+

Assignment operator.

+
+
Parameters:
+

it – The iterator to assign to.

+
+
Returns:
+

The reference to the iterator after assignment.

+
+
+
+ +
+
+bool operator==(const const_iterator &it) const
+

Equality operator.

+
+
Parameters:
+

it – The iterator to compare to for equality.

+
+
Returns:
+

True if the iterators are equal.

+
+
+
+ +
+
+bool operator!=(const const_iterator &it) const
+

Disequality operator.

+
+
Parameters:
+

it – The iterator to compare to for disequality.

+
+
Returns:
+

True if the iterators are disequal.

+
+
+
+ +
+
+const_iterator &operator++()
+

Increment operator (prefix).

+
+
Returns:
+

A reference to the iterator after incrementing by one.

+
+
+
+ +
+
+const_iterator operator++(int)
+

Increment operator (postfix).

+
+
Returns:
+

A reference to the iterator after incrementing by one.

+
+
+
+ +
+
+Term operator*() const
+

Dereference operator.

+
+
Returns:
+

The term this iterator points to.

+
+
+
+ +
+
+ +
+ +
+
+
+std::ostream &cvc5::operator<<(std::ostream &out, const Term &t)
+

Serialize a term to given stream.

+
+
Parameters:
+
    +
  • out – The output stream.

  • +
  • t – The term to be serialized to the given output stream.

  • +
+
+
Returns:
+

The output stream.

+
+
+
+ +
+
+std::ostream &cvc5::operator<<(std::ostream &out, const std::vector<Term> &vector)
+

Serialize a vector of terms to given stream.

+
+
Parameters:
+
    +
  • out – The output stream.

  • +
  • vector – The vector of terms to be serialized to the given stream.

  • +
+
+
Returns:
+

The output stream.

+
+
+
+ +
+
+std::ostream &cvc5::operator<<(std::ostream &out, const std::set<Term> &set)
+

Serialize a set of terms to the given stream.

+
+
Parameters:
+
    +
  • out – The output stream.

  • +
  • set – The set of terms to be serialized to the given stream.

  • +
+
+
Returns:
+

The output stream.

+
+
+
+ +
+
+std::ostream &cvc5::operator<<(std::ostream &out, const std::unordered_set<Term> &unordered_set)
+

Serialize an unordered_set of terms to the given stream.

+
+
Parameters:
+
    +
  • out – The output stream.

  • +
  • unordered_set – The set of terms to be serialized to the given stream.

  • +
+
+
Returns:
+

The output stream.

+
+
+
+ +
+
+template<typename V>
std::ostream &cvc5::operator<<(std::ostream &out, const std::map<Term, V> &map)
+

Serialize a map of terms to the given stream.

+
+
Parameters:
+
    +
  • out – The output stream.

  • +
  • map – The map of terms to be serialized to the given stream.

  • +
+
+
Returns:
+

The output stream.

+
+
+
+ +
+
+template<typename V>
std::ostream &cvc5::operator<<(std::ostream &out, const std::unordered_map<Term, V> &unordered_map)
+

Serialize an unordered_map of terms to the given stream.

+
+
Parameters:
+
    +
  • out – The output stream.

  • +
  • unordered_map – The map of terms to be serialized to the given stream.

  • +
+
+
Returns:
+

The output stream.

+
+
+
+ +
+
+
+template<>
struct hash<cvc5::Term>
+

Hash function for Terms.

+
+

Public Functions

+
+
+size_t operator()(const cvc5::Term &t) const
+
+ +
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/termmanager.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/termmanager.html new file mode 100644 index 0000000000..dbf1fbc989 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/classes/termmanager.html @@ -0,0 +1,1431 @@ + + + + + + + + + + + + + TermManager — cvc5 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

TermManager

+

This class represents a cvc5 term manager instance.

+

Terms, Sorts and +Ops are not tied to a cvc5::Solver +but associated with a cvc5::TermManager instance, which can be +shared between solver instances (and thus allows sharing of terms and sorts +between solver instances). +Term kinds are defined via enum class cvc5::Kind, and +sort kinds via enum class cvc5::SortKind.

+
+
+
+class TermManager
+

A cvc5 term manager.

+
+

Public Functions

+
+
+TermManager()
+

Constructor.

+
+ +
+
+~TermManager()
+

Destructor.

+
+ +
+
+Statistics getStatistics() const
+

Get a snapshot of the current state of the statistic values of this term manager.

+

Term manager statistics are independent from any solver instance. The returned object is completely decoupled from the term manager and will not change when the solver is used again.

+
+
Returns:
+

A snapshot of the current state of the statistic values.

+
+
+
+ +
+
+void printStatisticsSafe(int fd) const
+

Print the statistics to the given file descriptor, suitable for usage in signal handlers.

+
+
Parameters:
+

fd – The file descriptor.

+
+
+
+ +
+
+Sort getBooleanSort()
+

Get the Boolean sort.

+
+
Returns:
+

Sort Bool.

+
+
+
+ +
+
+Sort getIntegerSort()
+

Get the Integer sort.

+
+
Returns:
+

Sort Int.

+
+
+
+ +
+
+Sort getRealSort()
+

Get the Real sort.

+
+
Returns:
+

Sort Real.

+
+
+
+ +
+
+Sort getRegExpSort()
+

Get the regular expression sort.

+
+
Returns:
+

Sort RegExp.

+
+
+
+ +
+
+Sort getRoundingModeSort()
+

Get the rounding mode sort.

+
+
Returns:
+

Sort RoundingMode.

+
+
+
+ +
+
+Sort getStringSort()
+

Get the string sort.

+
+
Returns:
+

Sort String.

+
+
+
+ +
+
+Sort mkArraySort(const Sort &indexSort, const Sort &elemSort)
+

Create an array sort.

+
+
Parameters:
+
    +
  • indexSort – The array index sort.

  • +
  • elemSort – The array element sort.

  • +
+
+
Returns:
+

The array sort.

+
+
+
+ +
+
+Sort mkBitVectorSort(uint32_t size)
+

Create a bit-vector sort.

+
+
Parameters:
+

size – The bit-width of the bit-vector sort.

+
+
Returns:
+

The bit-vector sort.

+
+
+
+ +
+
+Sort mkFloatingPointSort(uint32_t exp, uint32_t sig)
+

Create a floating-point sort.

+
+
Parameters:
+
    +
  • exp – The bit-width of the exponent of the floating-point sort.

  • +
  • sig – The bit-width of the significand of the floating-point sort.

  • +
+
+
Returns:
+

The floating-point sort.

+
+
+
+ +
+
+Sort mkFiniteFieldSort(const std::string &size, uint32_t base = 10)
+

Create a finite-field sort from a given string of base n.

+
+
Parameters:
+
    +
  • size – The modulus of the field. Must be prime.

  • +
  • base – The base of the string representation of size.

  • +
+
+
Returns:
+

The finite-field sort.

+
+
+
+ +
+
+Sort mkDatatypeSort(const DatatypeDecl &dtypedecl)
+

Create a datatype sort.

+
+
Parameters:
+

dtypedecl – The datatype declaration from which the sort is created.

+
+
Returns:
+

The datatype sort.

+
+
+
+ +
+
+std::vector<Sort> mkDatatypeSorts(const std::vector<DatatypeDecl> &dtypedecls)
+

Create a vector of datatype sorts.

+
+

Note

+

The names of the datatype declarations must be distinct.

+
+
+
Parameters:
+

dtypedecls – The datatype declarations from which the sort is created.

+
+
Returns:
+

The datatype sorts.

+
+
+
+ +
+
+Sort mkFunctionSort(const std::vector<Sort> &sorts, const Sort &codomain)
+

Create function sort.

+
+
Parameters:
+
    +
  • sorts – The sort of the function arguments.

  • +
  • codomain – The sort of the function return value.

  • +
+
+
Returns:
+

The function sort.

+
+
+
+ +
+
+Term mkSkolem(SkolemId id, const std::vector<Term> &indices)
+

Create a skolem.

+
+
Parameters:
+
    +
  • id – The skolem identifier.

  • +
  • indices – The indices of the skolem.

  • +
+
+
Returns:
+

The skolem.

+
+
+
+ +
+
+size_t getNumIndicesForSkolemId(SkolemId id)
+

Get the number of indices for a skolem id.

+
+
Parameters:
+

id – The skolem id.

+
+
Returns:
+

The number of indices for the skolem id.

+
+
+
+ +
+
+Sort mkParamSort(const std::optional<std::string> &symbol = std::nullopt)
+

Create a sort parameter.

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+

symbol – The name of the sort.

+
+
Returns:
+

The sort parameter.

+
+
+
+ +
+
+Sort mkPredicateSort(const std::vector<Sort> &sorts)
+

Create a predicate sort.

+

This is equivalent to calling mkFunctionSort() with the Boolean sort as the codomain.

+
+
Parameters:
+

sorts – The list of sorts of the predicate.

+
+
Returns:
+

The predicate sort.

+
+
+
+ +
+
+Sort mkRecordSort(const std::vector<std::pair<std::string, Sort>> &fields)
+

Create a record sort

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+

fields – The list of fields of the record.

+
+
Returns:
+

The record sort.

+
+
+
+ +
+
+Sort mkSetSort(const Sort &elemSort)
+

Create a set sort.

+
+
Parameters:
+

elemSort – The sort of the set elements.

+
+
Returns:
+

The set sort.

+
+
+
+ +
+
+Sort mkBagSort(const Sort &elemSort)
+

Create a bag sort.

+
+
Parameters:
+

elemSort – The sort of the bag elements.

+
+
Returns:
+

The bag sort.

+
+
+
+ +
+
+Sort mkSequenceSort(const Sort &elemSort)
+

Create a sequence sort.

+
+
Parameters:
+

elemSort – The sort of the sequence elements.

+
+
Returns:
+

The sequence sort.

+
+
+
+ +
+
+Sort mkAbstractSort(SortKind k)
+

Create an abstract sort. An abstract sort represents a sort for a given kind whose parameters and arguments are unspecified.

+

The kind k must be the kind of a sort that can be abstracted, i.e., a sort that has indices or argument sorts. For example, #ARRAY_SORT and #BITVECTOR_SORT can be passed as the kind k to this function, while #INTEGER_SORT and #STRING_SORT cannot.

+
+

Note

+

Providing the kind #ABSTRACT_SORT as an argument to this function returns the (fully) unspecified sort, denoted ?.

+
+
+

Note

+

Providing a kind k that has no indices and a fixed arity of argument sorts will return the sort of kind k whose arguments are the unspecified sort. For example, mkAbstractSort(SortKind::ARRAY_SORT) will return the sort (ARRAY_SORT ? ?) instead of the abstract sort whose abstract kind is #ARRAY_SORT.

+
+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+

k – The kind of the abstract sort

+
+
Returns:
+

The abstract sort.

+
+
+
+ +
+
+Sort mkUninterpretedSort(const std::optional<std::string> &symbol = std::nullopt)
+

Create an uninterpreted sort.

+
+
Parameters:
+

symbol – The name of the sort.

+
+
Returns:
+

The uninterpreted sort.

+
+
+
+ +
+
+Sort mkUnresolvedDatatypeSort(const std::string &symbol, size_t arity = 0)
+

Create an unresolved datatype sort.

+

This is for creating yet unresolved sort placeholders for mutually recursive parametric datatypes.

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+
    +
  • symbol – The symbol of the sort.

  • +
  • arity – The number of sort parameters of the sort.

  • +
+
+
Returns:
+

The unresolved sort.

+
+
+
+ +
+
+Sort mkUninterpretedSortConstructorSort(size_t arity, const std::optional<std::string> &symbol = std::nullopt)
+

Create an uninterpreted sort constructor sort.

+

An uninterpreted sort constructor is an uninterpreted sort with arity > 0.

+
+
Parameters:
+
    +
  • symbol – The symbol of the sort.

  • +
  • arity – The arity of the sort (must be > 0)

  • +
+
+
Returns:
+

The uninterpreted sort constructor sort.

+
+
+
+ +
+
+Sort mkTupleSort(const std::vector<Sort> &sorts)
+

Create a tuple sort.

+
+
Parameters:
+

sorts – The sorts of the elements of the tuple.

+
+
Returns:
+

The tuple sort.

+
+
+
+ +
+
+Sort mkNullableSort(const Sort &sort)
+

Create a nullable sort.

+
+
Parameters:
+

sort – The sort of the element of the nullable.

+
+
Returns:
+

The nullable sort.

+
+
+
+ +
+
+Op mkOp(Kind kind, const std::vector<uint32_t> &args = {})
+

Create operator of Kind:

    +
  • #BITVECTOR_EXTRACT

  • +
  • #BITVECTOR_REPEAT

  • +
  • #BITVECTOR_ROTATE_LEFT

  • +
  • #BITVECTOR_ROTATE_RIGHT

  • +
  • #BITVECTOR_SIGN_EXTEND

  • +
  • #BITVECTOR_ZERO_EXTEND

  • +
  • #DIVISIBLE

  • +
  • #FLOATINGPOINT_TO_FP_FROM_FP

  • +
  • #FLOATINGPOINT_TO_FP_FROM_IEEE_BV

  • +
  • #FLOATINGPOINT_TO_FP_FROM_REAL

  • +
  • #FLOATINGPOINT_TO_FP_FROM_SBV

  • +
  • #FLOATINGPOINT_TO_FP_FROM_UBV

  • +
  • #FLOATINGPOINT_TO_SBV

  • +
  • #FLOATINGPOINT_TO_UBV

  • +
  • #INT_TO_BITVECTOR

  • +
  • #TUPLE_PROJECT

  • +
+

+

See cvc5::Kind for a description of the parameters.

+
+

Note

+

If args is empty, the Op simply wraps the cvc5::Kind. The Kind can be used in Solver::mkTerm directly without creating an Op first.

+
+
+
Parameters:
+
    +
  • kind – The kind of the operator.

  • +
  • args – The arguments (indices) of the operator.

  • +
+
+
+
+ +
+
+Op mkOp(Kind kind, const std::string &arg)
+

Create operator of kind:

    +
  • #DIVISIBLE (to support arbitrary precision integers) See cvc5::Kind for a description of the parameters.

  • +
+

+
+
Parameters:
+
    +
  • kind – The kind of the operator.

  • +
  • arg – The string argument to this operator.

  • +
+
+
+
+ +
+
+Term mkTerm(Kind kind, const std::vector<Term> &children = {})
+

Create n-ary term of given kind.

+
+
Parameters:
+
    +
  • kind – The kind of the term.

  • +
  • children – The children of the term.

  • +
+
+
Returns:
+

The term.

+
+
+
+ +
+
+Term mkTerm(const Op &op, const std::vector<Term> &children = {})
+

Create n-ary term of given kind from a given operator.

+

Create operators with mkOp().

+
+
Parameters:
+
    +
  • op – The operator.

  • +
  • children – The children of the term.

  • +
+
+
Returns:
+

The Term.

+
+
+
+ +
+
+Term mkTrue()
+

Create a Boolean true constant.

+
+
Returns:
+

The true constant.

+
+
+
+ +
+
+Term mkFalse()
+

Create a Boolean false constant.

+
+
Returns:
+

The false constant.

+
+
+
+ +
+
+Term mkBoolean(bool val)
+

Create a Boolean constant.

+
+
Parameters:
+

val – The value of the constant.

+
+
Returns:
+

The Boolean constant.

+
+
+
+ +
+
+Term mkPi()
+

Create a constant representing the number Pi.

+
+
Returns:
+

A constant representing Pi.

+
+
+
+ +
+
+Term mkInteger(const std::string &s)
+

Create an integer constant from a string.

+
+
Parameters:
+

s – The string representation of the constant, may represent an integer (e.g., “123”).

+
+
Returns:
+

A constant of sort Integer assuming s represents an integer)

+
+
+
+ +
+
+Term mkInteger(int64_t val)
+

Create an integer constant from a c++ int.

+
+
Parameters:
+

val – The value of the constant.

+
+
Returns:
+

A constant of sort Integer.

+
+
+
+ +
+
+Term mkReal(const std::string &s)
+

Create a real constant from a string.

+
+
Parameters:
+

s – The string representation of the constant, may represent an integer (e.g., “123”) or real constant (e.g., “12.34” or “12/34”).

+
+
Returns:
+

A constant of sort Real.

+
+
+
+ +
+
+Term mkReal(int64_t val)
+

Create a real constant from an integer.

+
+
Parameters:
+

val – The value of the constant.

+
+
Returns:
+

A constant of sort Integer.

+
+
+
+ +
+
+Term mkReal(int64_t num, int64_t den)
+

Create a real constant from a rational.

+
+
Parameters:
+
    +
  • num – The value of the numerator.

  • +
  • den – The value of the denominator.

  • +
+
+
Returns:
+

A constant of sort Real.

+
+
+
+ +
+
+Term mkRegexpAll()
+

Create a regular expression all (re.all) term.

+
+
Returns:
+

The all term.

+
+
+
+ +
+
+Term mkRegexpAllchar()
+

Create a regular expression allchar (re.allchar) term.

+
+
Returns:
+

The allchar term.

+
+
+
+ +
+
+Term mkRegexpNone()
+

Create a regular expression none (re.none) term.

+
+
Returns:
+

The none term.

+
+
+
+ +
+
+Term mkEmptySet(const Sort &sort)
+

Create a constant representing an empty set of the given sort.

+
+
Parameters:
+

sort – The sort of the set elements.

+
+
Returns:
+

The empty set constant.

+
+
+
+ +
+
+Term mkEmptyBag(const Sort &sort)
+

Create a constant representing an empty bag of the given sort.

+
+
Parameters:
+

sort – The sort of the bag elements.

+
+
Returns:
+

The empty bag constant.

+
+
+
+ +
+
+Term mkSepEmp()
+

Create a separation logic empty term.

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Returns:
+

The separation logic empty term.

+
+
+
+ +
+
+Term mkSepNil(const Sort &sort)
+

Create a separation logic nil term.

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+

sort – The sort of the nil term.

+
+
Returns:
+

The separation logic nil term.

+
+
+
+ +
+
+Term mkString(const std::string &s, bool useEscSequences = false)
+

Create a String constant from a std::string which may contain SMT-LIB compatible escape sequences like \u1234 to encode unicode characters.

+
+
Parameters:
+
    +
  • s – The string this constant represents.

  • +
  • useEscSequences – Determines whether escape sequences in s should be converted to the corresponding unicode character.

  • +
+
+
Returns:
+

The String constant.

+
+
+
+ +
+
+Term mkString(const std::wstring &s)
+

Create a String constant from a std::wstring.

+

This function does not support escape sequences as std::wstring already supports unicode characters.

+
+
Parameters:
+

s – The string this constant represents.

+
+
Returns:
+

The String constant.

+
+
+
+ +
+
+Term mkEmptySequence(const Sort &sort)
+

Create an empty sequence of the given element sort.

+
+
Parameters:
+

sort – The element sort of the sequence.

+
+
Returns:
+

The empty sequence with given element sort.

+
+
+
+ +
+
+Term mkUniverseSet(const Sort &sort)
+

Create a universe set of the given sort.

+
+
Parameters:
+

sort – The sort of the set elements.

+
+
Returns:
+

The universe set constant.

+
+
+
+ +
+
+Term mkBitVector(uint32_t size, uint64_t val = 0)
+

Create a bit-vector constant of given size and value.

+
+

Note

+

The given value must fit into a bit-vector of the given size.

+
+
+
Parameters:
+
    +
  • size – The bit-width of the bit-vector sort.

  • +
  • val – The value of the constant.

  • +
+
+
Returns:
+

The bit-vector constant.

+
+
+
+ +
+
+Term mkBitVector(uint32_t size, const std::string &s, uint32_t base)
+

Create a bit-vector constant of a given bit-width from a given string of base 2, 10 or 16.

+
+

Note

+

The given value must fit into a bit-vector of the given size.

+
+
+
Parameters:
+
    +
  • size – The bit-width of the constant.

  • +
  • s – The string representation of the constant.

  • +
  • base – The base of the string representation (2 for binary, 10 for decimal, and 16 for hexadecimal).

  • +
+
+
Returns:
+

The bit-vector constant.

+
+
+
+ +
+
+Term mkFiniteFieldElem(const std::string &value, const Sort &sort, uint32_t base = 10)
+

Create a finite field constant in a given field from a given string of base n.

+

If size is the field size, the constant needs not be in the range [0,size). If it is outside this range, it will be reduced modulo size before being constructed.

+
+
Parameters:
+
    +
  • value – The string representation of the constant.

  • +
  • sort – The field sort.

  • +
  • base – The base of the string representation of value.

  • +
+
+
+
+ +
+
+Term mkConstArray(const Sort &sort, const Term &val)
+

Create a constant array with the provided constant value stored at every index.

+
+
Parameters:
+
    +
  • sort – The sort of the constant array (must be an array sort).

  • +
  • val – The constant value to store (must match the sort’s element sort).

  • +
+
+
Returns:
+

The constant array term.

+
+
+
+ +
+
+Term mkFloatingPointPosInf(uint32_t exp, uint32_t sig)
+

Create a positive infinity floating-point constant (SMT-LIB: +oo).

+
+
Parameters:
+
    +
  • exp – Number of bits in the exponent.

  • +
  • sig – Number of bits in the significand.

  • +
+
+
Returns:
+

The floating-point constant.

+
+
+
+ +
+
+Term mkFloatingPointNegInf(uint32_t exp, uint32_t sig)
+

Create a negative infinity floating-point constant (SMT-LIB: -oo).

+
+
Parameters:
+
    +
  • exp – Number of bits in the exponent.

  • +
  • sig – Number of bits in the significand.

  • +
+
+
Returns:
+

The floating-point constant.

+
+
+
+ +
+
+Term mkFloatingPointNaN(uint32_t exp, uint32_t sig)
+

Create a not-a-number floating-point constant (SMT-LIB: NaN).

+
+
Parameters:
+
    +
  • exp – Number of bits in the exponent.

  • +
  • sig – Number of bits in the significand.

  • +
+
+
Returns:
+

The floating-point constant.

+
+
+
+ +
+
+Term mkFloatingPointPosZero(uint32_t exp, uint32_t sig)
+

Create a positive zero floating-point constant (SMT-LIB: +zero).

+
+
Parameters:
+
    +
  • exp – Number of bits in the exponent.

  • +
  • sig – Number of bits in the significand.

  • +
+
+
Returns:
+

The floating-point constant.

+
+
+
+ +
+
+Term mkFloatingPointNegZero(uint32_t exp, uint32_t sig)
+

Create a negative zero floating-point constant (SMT-LIB: -zero).

+
+
Parameters:
+
    +
  • exp – Number of bits in the exponent.

  • +
  • sig – Number of bits in the significand.

  • +
+
+
Returns:
+

The floating-point constant.

+
+
+
+ +
+
+Term mkRoundingMode(RoundingMode rm)
+

Create a rounding mode value.

+
+
Parameters:
+

rm – The floating point rounding mode this constant represents.

+
+
Returns:
+

The rounding mode value.

+
+
+
+ +
+
+Term mkFloatingPoint(uint32_t exp, uint32_t sig, const Term &val)
+

Create a floating-point value from a bit-vector given in IEEE-754 format.

+
+
Parameters:
+
    +
  • exp – Size of the exponent.

  • +
  • sig – Size of the significand.

  • +
  • val – Value of the floating-point constant as a bit-vector term.

  • +
+
+
Returns:
+

The floating-point value.

+
+
+
+ +
+
+Term mkFloatingPoint(const Term &sign, const Term &exp, const Term &sig)
+

Create a floating-point value from its three IEEE-754 bit-vector value components (sign bit, exponent, significand).

+
+
Parameters:
+
    +
  • sign – The sign bit.

  • +
  • exp – The bit-vector representing the exponent.

  • +
  • sig – The bit-vector representing the significand.

  • +
+
+
Returns:
+

The floating-point value.

+
+
+
+ +
+
+Term mkCardinalityConstraint(const Sort &sort, uint32_t upperBound)
+

Create a cardinality constraint for an uninterpreted sort.

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+
    +
  • sort – The sort the cardinality constraint is for.

  • +
  • upperBound – The upper bound on the cardinality of the sort.

  • +
+
+
Returns:
+

The cardinality constraint.

+
+
+
+ +
+
+Term mkTuple(const std::vector<Term> &terms)
+

Create a tuple term.

+
+
Parameters:
+

terms – The elements in the tuple.

+
+
Returns:
+

The tuple Term.

+
+
+
+ +
+
+Term mkNullableSome(const Term &term)
+

Create a nullable some term.

+
+
Parameters:
+

term – The element value.

+
+
Returns:
+

the Element value wrapped in some constructor.

+
+
+
+ +
+
+Term mkNullableVal(const Term &term)
+

Create a selector for nullable term.

+
+
Parameters:
+

term – A nullable term.

+
+
Returns:
+

The element value of the nullable term.

+
+
+
+ +
+
+Term mkNullableIsNull(const Term &term)
+

Create a null tester for a nullable term.

+
+
Parameters:
+

term – A nullable term.

+
+
Returns:
+

A tester whether term is null.

+
+
+
+ +
+
+Term mkNullableIsSome(const Term &term)
+

Create a some tester for a nullable term.

+
+
Parameters:
+

term – A nullable term.

+
+
Returns:
+

A tester whether term is some.

+
+
+
+ +
+
+Term mkNullableNull(const Sort &sort)
+

Create a constant representing an null of the given sort.

+
+
Parameters:
+

sort – The sort of the Nullable element.

+
+
Returns:
+

The null constant.

+
+
+
+ +
+
+Term mkNullableLift(Kind kind, const std::vector<Term> &args)
+

Create a term that lifts kind to nullable terms.

+

Example: If we have the term ((_ nullable.lift +) x y), where x, y of type (Nullable Int), then kind would be ADD, and args would be [x, y]. This function would return (nullable.lift (lambda ((a Int) (b Int)) (+ a b)) x y)

+
+
Parameters:
+
    +
  • kind – The lifted operator.

  • +
  • args – The arguments of the lifted operator.

  • +
+
+
Returns:
+

A term of Kind NULLABLE_LIFT where the first child is a lambda expression, and the remaining children are the original arguments.

+
+
+
+ +
+
+Term mkConst(const Sort &sort, const std::optional<std::string> &symbol = std::nullopt)
+

Create a free constant.

+

Note that the returned term is always fresh, even if the same arguments were provided on a previous call to mkConst().

+

SMT-LIB:

+

(declare-const <symbol> <sort>)
+(declare-fun <symbol> () <sort>)
+
+
+

+
+
Parameters:
+
    +
  • sort – The sort of the constant.

  • +
  • symbol – The name of the constant (optional).

  • +
+
+
Returns:
+

The constant.

+
+
+
+ +
+
+Term mkVar(const Sort &sort, const std::optional<std::string> &symbol = std::nullopt)
+

Create a bound variable to be used in a binder (i.e., a quantifier, a lambda, or a witness binder).

+
+

Note

+

The returned term is always fresh, even if the same arguments were provided on a previous call to mkConst().

+
+
+
Parameters:
+
    +
  • sort – The sort of the variable.

  • +
  • symbol – The name of the variable (optional).

  • +
+
+
Returns:
+

The variable.

+
+
+
+ +
+
+DatatypeConstructorDecl mkDatatypeConstructorDecl(const std::string &name)
+

Create a datatype constructor declaration.

+
+
Parameters:
+

name – The name of the datatype constructor.

+
+
Returns:
+

The DatatypeConstructorDecl.

+
+
+
+ +
+
+DatatypeDecl mkDatatypeDecl(const std::string &name, bool isCoDatatype = false)
+

Create a datatype declaration.

+
+
Parameters:
+
    +
  • name – The name of the datatype.

  • +
  • isCoDatatype – True if a codatatype is to be constructed.

  • +
+
+
Returns:
+

The DatatypeDecl.

+
+
+
+ +
+
+DatatypeDecl mkDatatypeDecl(const std::string &name, const std::vector<Sort> &params, bool isCoDatatype = false)
+

Create a datatype declaration.

+

Create sorts parameter with Solver::mkParamSort().

+
+

Warning

+

This function is experimental and may change in future versions.

+
+
+
Parameters:
+
    +
  • name – The name of the datatype.

  • +
  • params – A list of sort parameters.

  • +
  • isCoDatatype – True if a codatatype is to be constructed.

  • +
+
+
Returns:
+

The DatatypeDecl.

+
+
+
+ +
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/cpp.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/cpp.html new file mode 100644 index 0000000000..45f1b7c214 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/cpp.html @@ -0,0 +1,284 @@ + + + + + + + + + + + + + C++ API — cvc5 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

C++ API

+

The C++ API is the primary interface for cvc5 and exposes the full +functionality of cvc5.

+

The quickstart guide gives a short introduction, while the +following class hierarchy of the cvc5 namespace provides more details on +the individual classes. +For most applications, the Solver class is the main +entry point to cvc5.

+ +
+

Class hierarchy

+
+
namespace cvc5 {
+
+
namespace modes {
+
+
+

}

+
+
namespace parser {
+
+
+

}

+

}

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/enums/kind.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/enums/kind.html new file mode 100644 index 0000000000..984f336bad --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/enums/kind.html @@ -0,0 +1,7366 @@ + + + + + + + + + + + + + Kind — cvc5 documentation + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Kind

+

Every Term has an associated kind, represented +as enum class cvc5::Kind. +This kind distinguishes if the Term is a value, constant, variable or operator, +and what kind of each. +For example, a bit-vector value has kind +CONST_BITVECTOR, +a free constant symbol has kind +CONSTANT, +an equality over terms of any sort has kind +EQUAL, and a universally +quantified formula has kind FORALL.

+
+ +
+
+
+enum class cvc5::Kind
+

The kind of a cvc5 Term.

+

Values:

+
+
+enumerator INTERNAL_KIND
+

Internal kind.

+

This kind serves as an abstraction for internal kinds that are not exposed via the API but may appear in terms returned by API functions, e.g., when querying the simplified form of a term.

+
+

Note

+

Should never be created via the API.

+
+
+ +
+
+enumerator UNDEFINED_KIND
+

Undefined kind.

+
+

Note

+

Should never be exposed or created via the API.

+
+
+ +
+
+enumerator NULL_TERM
+

Null kind.

+

The kind of a null term (Term::Term()).

+
+

Note

+

May not be explicitly created via API functions other than +Term::Term().

+
+
+ +
+
+enumerator UNINTERPRETED_SORT_VALUE
+

The value of an uninterpreted constant.

+
+

Note

+

May be returned as the result of an API call, but terms of this +kind may not be created explicitly via the API and may not +appear in assertions.

+
+
+ +
+
+enumerator EQUAL
+

Equality, chainable.

+

+

+
+ +
+
+enumerator DISTINCT
+

Disequality.

+

+

+
+ +
+
+enumerator CONSTANT
+

Free constant symbol.

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkConst(const Sort&, const std::string&) const

    • +
    • Solver::mkConst(const Sort&) const

    • +
    +

  • +
+

+
+

Note

+

Not permitted in bindings (e.g., FORALL, +EXISTS).

+
+
+ +
+
+enumerator VARIABLE
+

(Bound) variable.

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkVar(const Sort&, const std::string&) const

    • +
    +

  • +
+

+
+

Note

+

Only permitted in bindings and in lambda and quantifier bodies.

+
+
+ +
+
+enumerator SKOLEM
+

A Skolem.

+

skolem is available via the calls Solver::getSkolemId and +Solver::getSkolemIndices.

+

+
+

Note

+

Represents an internally generated term. Information on the

+
+
+ +
+
+enumerator SEXPR
+

Symbolic expression.

+

+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator LAMBDA
+

Lambda expression.

+

+

+
+ +
+
+enumerator WITNESS
+

Witness.

+

The syntax of a witness term is similar to a quantified formula except that only one variable is allowed. For example, the term

(witness ((x S)) F)
+
+
+

returns an element \(x\) of Sort \(S\) and asserts formula +\(F\).

+

The witness operator behaves like the description operator +(see https://planetmath.org/hilbertsvarepsilonoperator) if there is +no \(x\) that satisfies \(F\). But if such \(x\) exists, the +witness operator does not enforce the following axiom which ensures +uniqueness up to logical equivalence:

+
+\[\forall x. F \equiv G \Rightarrow witness~x. F = witness~x. G\]
+

For example, if there are two elements of Sort \(S\) that satisfy +formula \(F\), then the following formula is satisfiable:

+
(distinct
+   (witness ((x Int)) F)
+   (witness ((x Int)) F))
+
+
+

+

+

+

+
+

Note

+

This kind is primarily used internally, but may be returned in +models (e.g., for arithmetic terms in non-linear queries). However, +it is not supported by the parser. Moreover, the user of the API +should be cautious when using this operator. In general, all witness +terms (witness ((x Int)) F) should be such that (exists ((x Int)) +F) is a valid formula. If this is not the case, then the semantics +in formulas that use witness terms may be unintuitive. For example, +the following formula is unsatisfiable: +(or (= (witness ((x Int)) false) 0) (not (= (witness ((x Int)) +false) 0)), whereas notice that (or (= z 0) (not (= z 0))) is +true for any \(z\).

+
+
+ +
+
+enumerator CONST_BOOLEAN
+

Boolean constant.

+

+

+
+ +
+
+enumerator NOT
+

Logical negation.

+

+

+
+ +
+
+enumerator AND
+

Logical conjunction.

+

+

+
+ +
+
+enumerator IMPLIES
+

Logical implication.

+

+

+
+ +
+
+enumerator OR
+

Logical disjunction.

+

+

+
+ +
+
+enumerator XOR
+

Logical exclusive disjunction, left associative.

+

+

+
+ +
+
+enumerator ITE
+

If-then-else.

+

+

+
+ +
+
+enumerator APPLY_UF
+

Application of an uninterpreted function.

+

+

+
+ +
+
+enumerator CARDINALITY_CONSTRAINT
+

Cardinality constraint on uninterpreted sort.

+

Interpreted as a predicate that is true when the cardinality of +uinterpreted Sort \(S\) is less than or equal to an upper bound.

+

+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator HO_APPLY
+

Higher-order applicative encoding of function application, left associative.

+

+

+
+ +
+
+enumerator ADD
+

Arithmetic addition.

+

+

+
+ +
+
+enumerator MULT
+

Arithmetic multiplication.

+

+

+
+ +
+
+enumerator IAND
+

Integer and.

+

Operator for bit-wise AND over integers, parameterized by a (positive) +bit-width \(k\).

+
((_ iand k) i_1 i_2)
+
+
+

is equivalent to

+
((_ iand k) i_1 i_2)
+(bv2int (bvand ((_ int2bv k) i_1) ((_ int2bv k) i_2)))
+
+
+

for all integers i_1, i_2.

+
    +
  • Arity: 2

    +
      +
    • 1..2: Terms of Sort Int

    • +
    +
  • +
  • Indices: 1

    +
      +
    • 1: Bit-width \(k\)

    • +
    +
  • +
+

+

+

+
+ +
+
+enumerator POW2
+

Power of two.

+

Operator for raising 2 to a non-negative integer power.

+

+

+
+ +
+
+enumerator SUB
+

Arithmetic subtraction, left associative.

+

+

+
+ +
+
+enumerator NEG
+

Arithmetic negation.

+

+

+
+ +
+
+enumerator DIVISION
+

Real division, division by 0 undefined, left associative.

+

+

+
+ +
+
+enumerator DIVISION_TOTAL
+

Real division, division by 0 defined to be 0, left associative.

+

+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator INTS_DIVISION
+

Integer division, division by 0 undefined, left associative.

+

+

+
+ +
+
+enumerator INTS_DIVISION_TOTAL
+

Integer division, division by 0 defined to be 0, left associative.

+

+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator INTS_MODULUS
+

Integer modulus, modulus by 0 undefined.

+

+

+
+ +
+
+enumerator INTS_MODULUS_TOTAL
+

Integer modulus, t modulus by 0 defined to be t.

+

+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator ABS
+

Absolute value.

+

+

+
+ +
+
+enumerator POW
+

Arithmetic power.

+

+

+
+ +
+
+enumerator EXPONENTIAL
+

Exponential function.

+

+

+
+ +
+
+enumerator SINE
+

Sine function.

+

+

+
+ +
+
+enumerator COSINE
+

Cosine function.

+

+

+
+ +
+
+enumerator TANGENT
+

Tangent function.

+

+

+
+ +
+
+enumerator COSECANT
+

Cosecant function.

+

+

+
+ +
+
+enumerator SECANT
+

Secant function.

+

+

+
+ +
+
+enumerator COTANGENT
+

Cotangent function.

+

+

+
+ +
+
+enumerator ARCSINE
+

Arc sine function.

+

+

+
+ +
+
+enumerator ARCCOSINE
+

Arc cosine function.

+

+

+
+ +
+
+enumerator ARCTANGENT
+

Arc tangent function.

+

+

+
+ +
+
+enumerator ARCCOSECANT
+

Arc cosecant function.

+

+

+
+ +
+
+enumerator ARCSECANT
+

Arc secant function.

+

+

+
+ +
+
+enumerator ARCCOTANGENT
+

Arc cotangent function.

+

+

+
+ +
+
+enumerator SQRT
+

Square root.

+

If the argument x is non-negative, then this returns a non-negative value y such that y * y = x.

+

+

+
+ +
+
+enumerator DIVISIBLE
+

Operator for the divisibility-by-\(k\) predicate.

+
    +
  • Arity: 1

    +
      +
    • 1: Term of Sort Int

    • +
    +
  • +
  • Indices: 1

    +
      +
    • 1: The integer \(k\) to divide by.

    • +
    +
  • +
+

+

+

+
+ +
+
+enumerator CONST_RATIONAL
+

Arbitrary-precision rational constant.

+

+

+
+ +
+
+enumerator CONST_INTEGER
+

Arbitrary-precision integer constant.

+

+

+
+ +
+
+enumerator LT
+

Less than, chainable.

+

+

+
+ +
+
+enumerator LEQ
+

Less than or equal, chainable.

+

+

+
+ +
+
+enumerator GT
+

Greater than, chainable.

+

+

+
+ +
+
+enumerator GEQ
+

Greater than or equal, chainable.

+

+

+
+ +
+
+enumerator IS_INTEGER
+

Is-integer predicate.

+

+

+
+ +
+
+enumerator TO_INTEGER
+

Convert Term of sort Int or Real to Int via the floor function.

+

+

+
+ +
+
+enumerator TO_REAL
+

Convert Term of Sort Int or Real to Real.

+

+

+
+ +
+
+enumerator PI
+

Pi constant.

+

+

+
+

Note

+

PI is considered a special symbol of Sort +Real, but is not a Real value, i.e., +Term::isRealValue() will return false.

+
+
+ +
+
+enumerator CONST_BITVECTOR
+

Fixed-size bit-vector constant.

+

+

+
+ +
+
+enumerator BITVECTOR_CONCAT
+

Concatenation of two or more bit-vectors.

+

+

+
+ +
+
+enumerator BITVECTOR_AND
+

Bit-wise and.

+

+

+
+ +
+
+enumerator BITVECTOR_OR
+

Bit-wise or.

+

+

+
+ +
+
+enumerator BITVECTOR_XOR
+

Bit-wise xor.

+

+

+
+ +
+
+enumerator BITVECTOR_NOT
+

Bit-wise negation.

+

+

+
+ +
+
+enumerator BITVECTOR_NAND
+

Bit-wise nand.

+

+

+
+ +
+
+enumerator BITVECTOR_NOR
+

Bit-wise nor.

+

+

+
+ +
+
+enumerator BITVECTOR_XNOR
+

Bit-wise xnor, left associative.

+

+

+
+ +
+
+enumerator BITVECTOR_COMP
+

Equality comparison (returns bit-vector of size 1).

+

+

+
+ +
+
+enumerator BITVECTOR_MULT
+

Multiplication of two or more bit-vectors.

+

+

+
+ +
+
+enumerator BITVECTOR_ADD
+

Addition of two or more bit-vectors.

+

+

+
+ +
+
+enumerator BITVECTOR_SUB
+

Subtraction of two bit-vectors.

+

+

+
+ +
+
+enumerator BITVECTOR_NEG
+

Negation of a bit-vector (two’s complement).

+

+

+
+ +
+
+enumerator BITVECTOR_UDIV
+

Unsigned bit-vector division.

+

Truncates towards 0. If the divisor is zero, the result is all ones.

+

+

+
+ +
+
+enumerator BITVECTOR_UREM
+

Unsigned bit-vector remainder.

+

Remainder from unsigned bit-vector division. If the modulus is zero, the result is the dividend.

+

+

+
+ +
+
+enumerator BITVECTOR_SDIV
+

Signed bit-vector division.

+

Two’s complement signed division of two bit-vectors. If the divisor is zero and the dividend is positive, the result is all ones. If the divisor is zero and the dividend is negative, the result is one.

+

+

+
+ +
+
+enumerator BITVECTOR_SREM
+

Signed bit-vector remainder (sign follows dividend).

+

Two’s complement signed remainder of two bit-vectors where the sign follows the dividend. If the modulus is zero, the result is the dividend.

+

+

+
+ +
+
+enumerator BITVECTOR_SMOD
+

Signed bit-vector remainder (sign follows divisor).

+

Two’s complement signed remainder where the sign follows the divisor. If the modulus is zero, the result is the dividend.

+

+

+
+ +
+
+enumerator BITVECTOR_SHL
+

Bit-vector shift left.

+

+

+
+ +
+
+enumerator BITVECTOR_LSHR
+

Bit-vector logical shift right.

+

+

+
+ +
+
+enumerator BITVECTOR_ASHR
+

Bit-vector arithmetic shift right.

+

+

+
+ +
+
+enumerator BITVECTOR_ULT
+

Bit-vector unsigned less than.

+

+

+
+ +
+
+enumerator BITVECTOR_ULE
+

Bit-vector unsigned less than or equal.

+

+

+
+ +
+
+enumerator BITVECTOR_UGT
+

Bit-vector unsigned greater than.

+

+

+
+ +
+
+enumerator BITVECTOR_UGE
+

Bit-vector unsigned greater than or equal.

+

+

+
+ +
+
+enumerator BITVECTOR_SLT
+

Bit-vector signed less than.

+

+

+
+ +
+
+enumerator BITVECTOR_SLE
+

Bit-vector signed less than or equal.

+

+

+
+ +
+
+enumerator BITVECTOR_SGT
+

Bit-vector signed greater than.

+

+

+
+ +
+
+enumerator BITVECTOR_SGE
+

Bit-vector signed greater than or equal.

+

+

+
+ +
+
+enumerator BITVECTOR_ULTBV
+

Bit-vector unsigned less than returning a bit-vector of size 1.

+

+

+
+ +
+
+enumerator BITVECTOR_SLTBV
+

Bit-vector signed less than returning a bit-vector of size 1.

+

+

+
+ +
+
+enumerator BITVECTOR_ITE
+

Bit-vector if-then-else.

+

Same semantics as regular ITE, but condition is bit-vector of size 1.

+

+

+
+ +
+
+enumerator BITVECTOR_REDOR
+

Bit-vector redor.

+

+

+
+ +
+
+enumerator BITVECTOR_REDAND
+

Bit-vector redand.

+

+

+
+ +
+
+enumerator BITVECTOR_NEGO
+

Bit-vector negation overflow detection.

+

+

+
+ +
+
+enumerator BITVECTOR_UADDO
+

Bit-vector unsigned addition overflow detection.

+

+

+
+ +
+
+enumerator BITVECTOR_SADDO
+

Bit-vector signed addition overflow detection.

+

+

+
+ +
+
+enumerator BITVECTOR_UMULO
+

Bit-vector unsigned multiplication overflow detection.

+

+

+
+ +
+
+enumerator BITVECTOR_SMULO
+

Bit-vector signed multiplication overflow detection.

+

+

+
+ +
+
+enumerator BITVECTOR_USUBO
+

Bit-vector unsigned subtraction overflow detection.

+

+

+
+ +
+
+enumerator BITVECTOR_SSUBO
+

Bit-vector signed subtraction overflow detection.

+

+

+
+ +
+
+enumerator BITVECTOR_SDIVO
+

Bit-vector signed division overflow detection.

+

+

+
+ +
+
+enumerator BITVECTOR_EXTRACT
+

Bit-vector extract.

+

+

+
+ +
+
+enumerator BITVECTOR_REPEAT
+

Bit-vector repeat.

+

+

+
+ +
+
+enumerator BITVECTOR_ZERO_EXTEND
+

Bit-vector zero extension.

+

+

+
+ +
+
+enumerator BITVECTOR_SIGN_EXTEND
+

Bit-vector sign extension.

+

+

+
+ +
+
+enumerator BITVECTOR_ROTATE_LEFT
+

Bit-vector rotate left.

+

+

+
+ +
+
+enumerator BITVECTOR_ROTATE_RIGHT
+

Bit-vector rotate right.

+

+

+
+ +
+
+enumerator INT_TO_BITVECTOR
+

Conversion from Int to bit-vector.

+

+

+
+ +
+
+enumerator BITVECTOR_TO_NAT
+

Bit-vector conversion to (non-negative) integer.

+

+

+
+ +
+
+enumerator BITVECTOR_FROM_BOOLS
+

Converts a list of Bool terms to a bit-vector.

+

    +
  • Arity: n > 0

      +
    • 1..n: Terms of Sort Bool

    • +
    +

  • +
+

+
+

Note

+

May be returned as the result of an API call, but terms of this +kind may not be created explicitly via the API and may not +appear in assertions.

+
+
+ +
+
+enumerator BITVECTOR_BIT
+

Retrieves the bit at the given index from a bit-vector as a Bool term.

+

    +
  • Arity: 1

    +

  • +
  • Indices: 1

      +
    • 1: The bit index

    • +
    +

  • +
+

+
+

Note

+

May be returned as the result of an API call, but terms of this +kind may not be created explicitly via the API and may not +appear in assertions.

+
+
+ +
+
+enumerator CONST_FINITE_FIELD
+

Finite field constant.

+

+

+
+ +
+
+enumerator FINITE_FIELD_NEG
+

Negation of a finite field element (additive inverse).

+

+

+
+ +
+
+enumerator FINITE_FIELD_ADD
+

Addition of two or more finite field elements.

+

+

+
+ +
+
+enumerator FINITE_FIELD_BITSUM
+

Bitsum of two or more finite field elements: x + 2y + 4z + …

+

+

+
+ +
+
+enumerator FINITE_FIELD_MULT
+

Multiplication of two or more finite field elements.

+

+

+
+ +
+
+enumerator CONST_FLOATINGPOINT
+

Floating-point constant, created from IEEE-754 bit-vector representation of the floating-point value.

+

    +
  • Create Term of this Kind with:

      +
    • Solver::mkFloatingPoint(uint32_t, uint32_t, Term) const

    • +
    +

  • +
+

+
+ +
+
+enumerator CONST_ROUNDINGMODE
+

RoundingMode constant.

+

+

+
+ +
+
+enumerator FLOATINGPOINT_FP
+

Create floating-point literal from bit-vector triple.

+

+

+
+ +
+
+enumerator FLOATINGPOINT_EQ
+

Floating-point equality.

+

+

+
+ +
+
+enumerator FLOATINGPOINT_ABS
+

Floating-point absolute value.

+

+

+
+ +
+
+enumerator FLOATINGPOINT_NEG
+

Floating-point negation.

+

+

+
+ +
+
+enumerator FLOATINGPOINT_ADD
+

Floating-point addition.

+

+

+
+ +
+
+enumerator FLOATINGPOINT_SUB
+

Floating-point sutraction.

+

+

+
+ +
+
+enumerator FLOATINGPOINT_MULT
+

Floating-point multiply.

+

+

+
+ +
+
+enumerator FLOATINGPOINT_DIV
+

Floating-point division.

+

+

+
+ +
+
+enumerator FLOATINGPOINT_FMA
+

Floating-point fused multiply and add.

+

+

+
+ +
+
+enumerator FLOATINGPOINT_SQRT
+

Floating-point square root.

+

+

+
+ +
+
+enumerator FLOATINGPOINT_REM
+

Floating-point remainder.

+

+

+
+ +
+
+enumerator FLOATINGPOINT_RTI
+

Floating-point round to integral.

+

+

+
+ +
+
+enumerator FLOATINGPOINT_MIN
+

Floating-point minimum.

+

+

+
+ +
+
+enumerator FLOATINGPOINT_MAX
+

Floating-point maximum.

+

+

+
+ +
+
+enumerator FLOATINGPOINT_LEQ
+

Floating-point less than or equal.

+

+

+
+ +
+
+enumerator FLOATINGPOINT_LT
+

Floating-point less than.

+

+

+
+ +
+
+enumerator FLOATINGPOINT_GEQ
+

Floating-point greater than or equal.

+

+

+
+ +
+
+enumerator FLOATINGPOINT_GT
+

Floating-point greater than.

+

+

+
+ +
+
+enumerator FLOATINGPOINT_IS_NORMAL
+

Floating-point is normal tester.

+

+

+
+ +
+
+enumerator FLOATINGPOINT_IS_SUBNORMAL
+

Floating-point is sub-normal tester.

+

+

+
+ +
+
+enumerator FLOATINGPOINT_IS_ZERO
+

Floating-point is zero tester.

+

+

+
+ +
+
+enumerator FLOATINGPOINT_IS_INF
+

Floating-point is infinite tester.

+

+

+
+ +
+
+enumerator FLOATINGPOINT_IS_NAN
+

Floating-point is NaN tester.

+

+

+
+ +
+
+enumerator FLOATINGPOINT_IS_NEG
+

Floating-point is negative tester.

+

+

+
+ +
+
+enumerator FLOATINGPOINT_IS_POS
+

Floating-point is positive tester.

+

+

+
+ +
+
+enumerator FLOATINGPOINT_TO_FP_FROM_IEEE_BV
+

Conversion to floating-point from IEEE-754 bit-vector.

+

+

+
+ +
+
+enumerator FLOATINGPOINT_TO_FP_FROM_FP
+

Conversion to floating-point from floating-point.

+

+

+
+ +
+
+enumerator FLOATINGPOINT_TO_FP_FROM_REAL
+

Conversion to floating-point from Real.

+

+

+
+ +
+
+enumerator FLOATINGPOINT_TO_FP_FROM_SBV
+

Conversion to floating-point from signed bit-vector.

+

+

+
+ +
+
+enumerator FLOATINGPOINT_TO_FP_FROM_UBV
+

Conversion to floating-point from unsigned bit-vector.

+

+

+
+ +
+
+enumerator FLOATINGPOINT_TO_UBV
+

Conversion to unsigned bit-vector from floating-point.

+

+

+
+ +
+
+enumerator FLOATINGPOINT_TO_SBV
+

Conversion to signed bit-vector from floating-point.

+

+

+
+ +
+
+enumerator FLOATINGPOINT_TO_REAL
+

Conversion to Real from floating-point.

+

+

+
+ +
+
+enumerator SELECT
+

Array select.

+

+

+
+ +
+
+enumerator STORE
+

Array store.

+

+

+
+ +
+
+enumerator CONST_ARRAY
+

Constant array.

+

+

+
+ +
+
+enumerator EQ_RANGE
+

Equality over arrays \(a\) and \(b\) over a given range +\([i,j]\), i.e.,

+
+\[\forall k . i \leq k \leq j \Rightarrow a[k] = b[k]\]
+

+

+

+
+

Note

+

We currently support the creation of array equalities over index +Sorts bit-vector, floating-point, Int and Real. +Requires to enable option +arrays-exp.

+
+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator APPLY_CONSTRUCTOR
+

Datatype constructor application.

+

+

+
+ +
+
+enumerator APPLY_SELECTOR
+

Datatype selector application.

+

+

+
+

Note

+

Undefined if misapplied.

+
+
+ +
+
+enumerator APPLY_TESTER
+

Datatype tester application.

+

+

+
+ +
+
+enumerator APPLY_UPDATER
+

Datatype update application.

+

+

+
+

Note

+

Does not change the datatype argument if misapplied.

+
+
+ +
+
+enumerator MATCH
+

Match expression.

+

This kind is primarily used in the parser to support the SMT-LIBv2 match expression.

+

For example, the SMT-LIBv2 syntax for the following match term

(match l (((cons h t) h) (nil 0)))
+
+
+

is represented by the AST

+
(MATCH l
+    (MATCH_BIND_CASE (VARIABLE_LIST h t) (cons h t) h)
+    (MATCH_CASE nil 0))
+
+
+

Terms of kind MATCH_CASE are constant case expressions, +which are used for nullary constructors. Kind +MATCH_BIND_CASE is used for constructors with selectors +and variable match patterns. If not all constructors are covered, at least +one catch-all variable pattern must be included.

+ +

+

+

+

+
+ +
+
+enumerator MATCH_CASE
+

Match case for nullary constructors.

+

A (constant) case expression to be used within a match expression.

+

    +
  • Arity: 2

    +
      +
    • 1: Term of kind APPLY_CONSTRUCTOR (the pattern to match against)

    • +
    • 2: Term of any Sort (the term the match term evaluates to)

    • +
    +
  • +
+

+

+

+
+ +
+
+enumerator MATCH_BIND_CASE
+

Match case with binders, for constructors with selectors and variable patterns.

+

A (non-constant) case expression to be used within a match expression.

+

    +
  • Arity: 3

    +
      +
    • For variable patterns:

      +
        +
      • 1: Term of kind VARIABLE_LIST (containing the free variable of the case)

      • +
      • 2: Term of kind VARIABLE (the pattern expression, the free variable of the case)

      • +
      • 3: Term of any Sort (the term the pattern evaluates to)

      • +
      +
    • +
    • For constructors with selectors:

      +
        +
      • 1: Term of kind VARIABLE_LIST (containing the free variable of the case)

      • +
      • 2: Term of kind APPLY_CONSTRUCTOR (the pattern expression, applying the set of variables to the constructor)

      • +
      • 3: Term of any Sort (the term the match term evaluates to)

      • +
      +
    • +
    +
  • +
+

+

+

+
+ +
+
+enumerator TUPLE_PROJECT
+

Tuple projection.

+

This operator takes a tuple as an argument and returns a tuple obtained by concatenating components of its argument at the provided indices.

+

For example,

((_ tuple.project 1 2 2 3 1) (tuple 10 20 30 40))
+
+
+

+ yields

(tuple 20 30 30 40 20)
+
+
+

+

+

+

+
+ +
+
+enumerator NULLABLE_LIFT
+

Lifting operator for nullable terms. This operator lifts a built-in operator or a user-defined function to nullable terms. For built-in kinds use mkNullableLift. For user-defined functions use mkTerm.

+

+

+
+ +
+
+enumerator SEP_NIL
+

Separation logic nil.

+

+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator SEP_EMP
+

Separation logic empty heap.

+

+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator SEP_PTO
+

Separation logic points-to relation.

+

+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator SEP_STAR
+

Separation logic star.

+

+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator SEP_WAND
+

Separation logic magic wand.

+

+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator SET_EMPTY
+

Empty set.

+

+

+
+ +
+
+enumerator SET_UNION
+

Set union.

+

+

+
+ +
+
+enumerator SET_INTER
+

Set intersection.

+

+

+
+ +
+
+enumerator SET_MINUS
+

Set subtraction.

+

+

+
+ +
+
+enumerator SET_SUBSET
+

Subset predicate.

+

Determines if the first set is a subset of the second set.

+

+

+
+ +
+
+enumerator SET_MEMBER
+

Set membership predicate.

+

Determines if the given set element is a member of the second set.

+

+

+
+ +
+
+enumerator SET_SINGLETON
+

Singleton set.

+

Construct a singleton set from an element given as a parameter. The returned set has the same Sort as the element.

+

+

+
+ +
+
+enumerator SET_INSERT
+

The set obtained by inserting elements;

+

+

+
+ +
+
+enumerator SET_CARD
+

Set cardinality.

+

+

+
+ +
+
+enumerator SET_COMPLEMENT
+

Set complement with respect to finite universe.

+

+

+
+ +
+
+enumerator SET_UNIVERSE
+

Finite universe set.

+

All set variables must be interpreted as subsets of it.

+

+

+
+

Note

+

SET_UNIVERSE is considered a special symbol of +the theory of sets and is not considered as a set value, i.e., +Term::isSetValue() will return false.

+
+
+ +
+
+enumerator SET_COMPREHENSION
+

Set comprehension

+

A set comprehension is specified by a variable list \(x_1 ... x_n\), +a predicate \(P[x_1...x_n]\), and a term \(t[x_1...x_n]\). A +comprehension \(C\) with the above form has members given by the +following semantics:

+
+\[\forall y. ( \exists x_1...x_n. P[x_1...x_n] \wedge t[x_1...x_n] = y ) +\Leftrightarrow (set.member \; y \; C)\]
+

where \(y\) ranges over the element Sort of the (set) Sort of the +comprehension. If \(t[x_1..x_n]\) is not provided, it is equivalent +to \(y\) in the above formula.

+
    +
  • Arity: 3

    +
      +
    • 1: Term of Kind VARIABLE_LIST

    • +
    • 2: Term of sort Bool (the predicate of the comprehension)

    • +
    • 3: (optional) Term denoting the generator for the comprehension

    • +
    +
  • +
+

+

+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator SET_CHOOSE
+

Set choose.

+

Select an element from a given set. For a set \(A = \{x\}\), the term +(set.choose \(A\)) is equivalent to the term \(x_1\). For an empty +set, it is an arbitrary value. For a set with cardinality > 1, it will +deterministically return an element in \(A\).

+

+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator SET_IS_EMPTY
+

Set is empty tester.

+

+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator SET_IS_SINGLETON
+

Set is singleton tester.

+

+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator SET_MAP
+

Set map.

+

This operator applies the first argument, a function of +Sort \((\rightarrow S_1 \; S_2)\), to every element of the second +argument, a set of Sort (Set \(S_1\)), and returns a set of Sort +(Set \(S_2\)).

+
    +
  • Arity: 2

    +
      +
    • 1: Term of function Sort \((\rightarrow S_1 \; S_2)\)

    • +
    • 2: Term of set Sort (Set \(S_1\))

    • +
    +
  • +
+

+

+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator SET_FILTER
+

Set filter.

+

This operator filters the elements of a set. +(set.filter \(p \; A\)) takes a predicate \(p\) of Sort +\((\rightarrow T \; Bool)\) as a first argument, and a set \(A\) +of Sort (Set \(T\)) as a second argument, and returns a subset of Sort +(Set \(T\)) that includes all elements of \(A\) that satisfy +\(p\).

+
    +
  • Arity: 2

    +
      +
    • 1: Term of function Sort \((\rightarrow T \; Bool)\)

    • +
    • 2: Term of bag Sort (Set \(T\))

    • +
    +
  • +
+

+

+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator SET_ALL
+

Set all.

+

This operator checks whether all elements of a set satisfy a predicate. +(set.all \(p \; A\)) takes a predicate \(p\) of Sort +\((\rightarrow T \; Bool)\) as a first argument, and a set \(A\) +of Sort (Set \(T\)) as a second argument, and returns true iff all +elements of \(A\) satisfy predicate \(p\).

+
    +
  • Arity: 2

    +
      +
    • 1: Term of function Sort \((\rightarrow T \; Bool)\)

    • +
    • 2: Term of bag Sort (Set \(T\))

    • +
    +
  • +
+

+

+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator SET_SOME
+

Set some.

+

This operator checks whether at least one element of a set satisfies a predicate. +(set.some \(p \; A\)) takes a predicate \(p\) of Sort +\((\rightarrow T \; Bool)\) as a first argument, and a set \(A\) +of Sort (Set \(T\)) as a second argument, and returns true iff at least +one element of \(A\) satisfies predicate \(p\).

+
    +
  • Arity: 2

    +
      +
    • 1: Term of function Sort \((\rightarrow T \; Bool)\)

    • +
    • 2: Term of bag Sort (Set \(T\))

    • +
    +
  • +
+

+

+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator SET_FOLD
+

Set fold.

+

This operator combines elements of a set into a single value. +(set.fold \(f \; t \; A\)) folds the elements of set \(A\) +starting with Term \(t\) and using the combining function \(f\).

+
    +
  • Arity: 2

    +
      +
    • 1: Term of function Sort \((\rightarrow S_1 \; S_2 \; S_2)\)

    • +
    • 2: Term of Sort \(S_2\) (the initial value)

    • +
    • 3: Term of bag Sort (Set \(S_1\))

    • +
    +
  • +
+

+

+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator RELATION_JOIN
+

Relation join.

+

+

+
+ +
+
+enumerator RELATION_TABLE_JOIN
+

+

Table join operator for relations has the form +\(((\_ \; rel.table\_join \; m_1 \; n_1 \; \dots \; m_k \; n_k) \; A \; B)\) +where \(m_1 \; n_1 \; \dots \; m_k \; n_k\) are natural numbers, +and \(A, B\) are relations. +This operator filters the product of two sets based on the equality of +projected tuples using indices \(m_1, \dots, m_k\) in relation \(A\), +and indices \(n_1, \dots, n_k\) in relation \(B\).

+
+
    +
  • Arity: 2

    +
      +
    • 1: Term of relation Sort

    • +
    • 2: Term of relation Sort

    • +
    +
  • +
  • Indices: n +- 1..n: Indices of the projection

  • +
+

+ +

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator RELATION_PRODUCT
+

Relation cartesian product.

+

+

+
+ +
+
+enumerator RELATION_TRANSPOSE
+

Relation transpose.

+

+

+
+ +
+
+enumerator RELATION_TCLOSURE
+

Relation transitive closure.

+

+

+
+ +
+
+enumerator RELATION_JOIN_IMAGE
+

Relation join image.

+

+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator RELATION_IDEN
+

Relation identity.

+

+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator RELATION_GROUP
+

Relation group

+

\(((\_ \; rel.group \; n_1 \; \dots \; n_k) \; A)\) partitions tuples +of relation \(A\) such that tuples that have the same projection +with indices \(n_1 \; \dots \; n_k\) are in the same part. +It returns a set of relations of type \((Set \; T)\) where +\(T\) is the type of \(A\).

+
    +
  • Arity: 1

    +
      +
    • 1: Term of relation sort

    • +
    +
  • +
  • Indices: n

    +
      +
    • 1..n: Indices of the projection

    • +
    +
  • +
+

+

+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator RELATION_AGGREGATE
+

Relation aggregate operator has the form +\(((\_ \; rel.aggr \; n_1 ... n_k) \; f \; i \; A)\) +where \(n_1, ..., n_k\) are natural numbers, +\(f\) is a function of type +\((\rightarrow (Tuple \; T_1 \; ... \; T_j)\; T \; T)\), +\(i\) has the type \(T\), +and \(A\) has type \((Relation \; T_1 \; ... \; T_j)\). +The returned type is \((Set \; T)\).

+

This operator aggregates elements in A that have the same tuple projection +with indices n_1, …, n_k using the combining function \(f\), +and initial value \(i\).

+
    +
  • Arity: 3

    +
      +
    • 1: Term of sort \((\rightarrow (Tuple \; T_1 \; ... \; T_j)\; T \; T)\)

    • +
    • 2: Term of Sort \(T\)

    • +
    • 3: Term of relation sort \(Relation T_1 ... T_j\)

    • +
    +
  • +
  • Indices: n +- 1..n: Indices of the projection

  • +
+

+ +

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator RELATION_PROJECT
+

Relation projection operator extends tuple projection operator to sets.

+

+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator BAG_EMPTY
+

Empty bag.

+

+

+
+ +
+
+enumerator BAG_UNION_MAX
+

Bag max union.

+

+

+
+ +
+
+enumerator BAG_UNION_DISJOINT
+

Bag disjoint union (sum).

+

+

+
+ +
+
+enumerator BAG_INTER_MIN
+

Bag intersection (min).

+

+

+
+ +
+
+enumerator BAG_DIFFERENCE_SUBTRACT
+

Bag difference subtract.

+

Subtracts multiplicities of the second from the first.

+

+

+
+ +
+
+enumerator BAG_DIFFERENCE_REMOVE
+

Bag difference remove.

+

Removes shared elements in the two bags.

+

+

+
+ +
+
+enumerator BAG_SUBBAG
+

Bag inclusion predicate.

+

Determine if multiplicities of the first bag are less than or equal to multiplicities of the second bag.

+

+

+
+ +
+
+enumerator BAG_COUNT
+

Bag element multiplicity.

+

+

+
+ +
+
+enumerator BAG_MEMBER
+

Bag membership predicate.

+

+

+
+ +
+
+enumerator BAG_SETOF
+

Bag setof.

+

Eliminate duplicates in a given bag. The returned bag contains exactly the same elements in the given bag, but with multiplicity one.

+

+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator BAG_MAKE
+

Bag make.

+

Construct a bag with the given element and given multiplicity.

+

+

+
+ +
+
+enumerator BAG_CARD
+

Bag cardinality.

+

+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator BAG_CHOOSE
+

Bag choose.

+

Select an element from a given bag.

+

For a bag \(A = \{(x,n)\}\) where \(n\) is the multiplicity, then +the term (choose \(A\)) is equivalent to the term \(x\). For an +empty bag, then it is an arbitrary value. For a bag that contains distinct +elements, it will deterministically return an element in \(A\).

+

+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator BAG_MAP
+

Bag map.

+

This operator applies the first argument, a function of +Sort \((\rightarrow S_1 \; S_2)\), to every element of the second +argument, a set of Sort (Bag \(S_1\)), and returns a set of Sort +(Bag \(S_2\)).

+
    +
  • Arity: 2

    +
      +
    • 1: Term of function Sort \((\rightarrow S_1 \; S_2)\)

    • +
    • 2: Term of bag Sort (Bag \(S_1\))

    • +
    +
  • +
+

+

+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator BAG_FILTER
+

Bag filter.

+

This operator filters the elements of a bag. +(bag.filter \(p \; B\)) takes a predicate \(p\) of Sort +\((\rightarrow T \; Bool)\) as a first argument, and a bag \(B\) +of Sort (Bag \(T\)) as a second argument, and returns a subbag of Sort +(Bag \(T\)) that includes all elements of \(B\) that satisfy +\(p\) with the same multiplicity.

+
    +
  • Arity: 2

    +
      +
    • 1: Term of function Sort \((\rightarrow T \; Bool)\)

    • +
    • 2: Term of bag Sort (Bag \(T\))

    • +
    +
  • +
+

+

+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator BAG_FOLD
+

Bag fold.

+

This operator combines elements of a bag into a single value. +(bag.fold \(f \; t \; B\)) folds the elements of bag \(B\) +starting with Term \(t\) and using the combining function \(f\).

+
    +
  • Arity: 2

    +
      +
    • 1: Term of function Sort \((\rightarrow S_1 \; S_2 \; S_2)\)

    • +
    • 2: Term of Sort \(S_2\) (the initial value)

    • +
    • 3: Term of bag Sort (Bag \(S_1\))

    • +
    +
  • +
+

+

+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator BAG_PARTITION
+

Bag partition.

+

This operator partitions of a bag of elements into disjoint bags. +(bag.partition \(r \; B\)) partitions the elements of bag \(B\) +of type \((Bag \; E)\) based on the equivalence relations \(r\) of +type \((\rightarrow \; E \; E \; Bool)\). +It returns a bag of bags of type \((Bag \; (Bag \; E))\).

+
    +
  • Arity: 2

    +
      +
    • 1: Term of function Sort \((\rightarrow \; E \; E \; Bool)\)

    • +
    • 2: Term of bag Sort (Bag \(E\))

    • +
    +
  • +
+

+

+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator TABLE_PRODUCT
+

Table cross product.

+

+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator TABLE_PROJECT
+

Table projection operator extends tuple projection operator to tables.

+

+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator TABLE_AGGREGATE
+

Table aggregate operator has the form +\(((\_ \; table.aggr \; n_1 ... n_k) \; f \; i \; A)\) +where \(n_1, ..., n_k\) are natural numbers, +\(f\) is a function of type +\((\rightarrow (Tuple \; T_1 \; ... \; T_j)\; T \; T)\), +\(i\) has the type \(T\), +and \(A\) has type \((Table \; T_1 \; ... \; T_j)\). +The returned type is \((Bag \; T)\).

+

This operator aggregates elements in A that have the same tuple projection +with indices n_1, …, n_k using the combining function \(f\), +and initial value \(i\).

+
    +
  • Arity: 3

    +
      +
    • 1: Term of sort \((\rightarrow (Tuple \; T_1 \; ... \; T_j)\; T \; T)\)

    • +
    • 2: Term of Sort \(T\)

    • +
    • 3: Term of table sort \(Table T_1 ... T_j\)

    • +
    +
  • +
  • Indices: n +- 1..n: Indices of the projection

  • +
+

+ +

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator TABLE_JOIN
+

+

Table join operator has the form +\(((\_ \; table.join \; m_1 \; n_1 \; \dots \; m_k \; n_k) \; A \; B)\) +where \(m_1 \; n_1 \; \dots \; m_k \; n_k\) are natural numbers, +and \(A, B\) are tables. +This operator filters the product of two bags based on the equality of +projected tuples using indices \(m_1, \dots, m_k\) in table \(A\), +and indices \(n_1, \dots, n_k\) in table \(B\).

+
+
    +
  • Arity: 2

    +
      +
    • 1: Term of table Sort

    • +
    • 2: Term of table Sort

    • +
    +
  • +
  • Indices: n +- 1..n: Indices of the projection

  • +
+

+ +

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator TABLE_GROUP
+

Table group

+

\(((\_ \; table.group \; n_1 \; \dots \; n_k) \; A)\) partitions tuples +of table \(A\) such that tuples that have the same projection +with indices \(n_1 \; \dots \; n_k\) are in the same part. +It returns a bag of tables of type \((Bag \; T)\) where +\(T\) is the type of \(A\).

+
    +
  • Arity: 1

    +
      +
    • 1: Term of table sort

    • +
    +
  • +
  • Indices: n

    +
      +
    • 1..n: Indices of the projection

    • +
    +
  • +
+

+

+

+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator STRING_CONCAT
+

String concat.

+

+

+
+ +
+
+enumerator STRING_IN_REGEXP
+

String membership.

+

+

+
+ +
+
+enumerator STRING_LENGTH
+

String length.

+

+

+
+ +
+
+enumerator STRING_SUBSTR
+

String substring.

+

Extracts a substring, starting at index \(i\) and of length \(l\), +from a string \(s\). If the start index is negative, the start index +is greater than the length of the string, or the length is negative, the +result is the empty string.

+
    +
  • Arity: 3

    +
      +
    • 1: Term of Sort String

    • +
    • 2: Term of Sort Int (index \(i\))

    • +
    • 3: Term of Sort Int (length \(l\))

    • +
    +
  • +
+

+

+

+
+ +
+
+enumerator STRING_UPDATE
+

String update.

+

Updates a string \(s\) by replacing its context starting at an index +with string \(t\). If the start index is negative, the start index is +greater than the length of the string, the result is \(s\). Otherwise, +the length of the original string is preserved.

+
    +
  • Arity: 3

    +
      +
    • 1: Term of Sort String

    • +
    • 2: Term of Sort Int (index \(i\))

    • +
    • 3: Term of Sort Strong (replacement string \(t\))

    • +
    +
  • +
+

+

+

+
+ +
+
+enumerator STRING_CHARAT
+

String character at.

+

Returns the character at index \(i\) from a string \(s\). If the +index is negative or the index is greater than the length of the string, +the result is the empty string. Otherwise the result is a string of +length 1.

+
    +
  • Arity: 2

    +
      +
    • 1: Term of Sort String (string \(s\))

    • +
    • 2: Term of Sort Int (index \(i\))

    • +
    +
  • +
+

+

+

+
+ +
+
+enumerator STRING_CONTAINS
+

String contains.

+

Determines whether a string \(s_1\) contains another string +\(s_2\). If \(s_2\) is empty, the result is always true.

+
    +
  • Arity: 2

    +
      +
    • 1: Term of Sort String (the string \(s_1\))

    • +
    • 2: Term of Sort String (the string \(s_2\))

    • +
    +
  • +
+

+

+

+
+ +
+
+enumerator STRING_INDEXOF
+

String index-of.

+

Returns the index of a substring \(s_2\) in a string \(s_1\) +starting at index \(i\). If the index is negative or greater than the +length of string \(s_1\) or the substring \(s_2\) does not appear +in string \(s_1\) after index \(i\), the result is -1.

+
    +
  • Arity: 2

    +
      +
    • 1: Term of Sort String (substring \(s_1\))

    • +
    • 2: Term of Sort String (substring \(s_2\))

    • +
    • 3: Term of Sort Int (index \(i\))

    • +
    +
  • +
+

+

+

+
+ +
+
+enumerator STRING_INDEXOF_RE
+

String index-of regular expression match.

+

Returns the first match of a regular expression \(r\) in a +string \(s\). If the index is negative or greater than the length of +string \(s_1\), or \(r\) does not match a substring in \(s\) +after index \(i\), the result is -1.

+
    +
  • Arity: 3

    +
      +
    • 1: Term of Sort String (string \(s\))

    • +
    • 2: Term of Sort RegLan (regular expression \(r\))

    • +
    • 3: Term of Sort Int (index \(i\))

    • +
    +
  • +
+

+

+

+
+ +
+
+enumerator STRING_REPLACE
+

String replace.

+

Replaces a string \(s_2\) in a string \(s_1\) with string +\(s_3\). If \(s_2\) does not appear in \(s_1\), \(s_1\) is +returned unmodified.

+
    +
  • Arity: 3

    +
      +
    • 1: Term of Sort String (string \(s_1\))

    • +
    • 2: Term of Sort String (string \(s_2\))

    • +
    • 3: Term of Sort String (string \(s_3\))

    • +
    +
  • +
+

+

+

+
+ +
+
+enumerator STRING_REPLACE_ALL
+

String replace all.

+

Replaces all occurrences of a string \(s_2\) in a string \(s_1\) +with string \(s_3\). If \(s_2\) does not appear in \(s_1\), +\(s_1\) is returned unmodified.

+
    +
  • Arity: 3

    +
      +
    • 1: Term of Sort String (\(s_1\))

    • +
    • 2: Term of Sort String (\(s_2\))

    • +
    • 3: Term of Sort String (\(s_3\))

    • +
    +
  • +
+

+

+

+
+ +
+
+enumerator STRING_REPLACE_RE
+

String replace regular expression match.

+

Replaces the first match of a regular expression \(r\) in +string \(s_1\) with string \(s_2\). If \(r\) does not match a +substring of \(s_1\), \(s_1\) is returned unmodified.

+
    +
  • Arity: 3

    +
      +
    • 1: Term of Sort String (\(s_1\))

    • +
    • 2: Term of Sort RegLan

    • +
    • 3: Term of Sort String (\(s_2\))

    • +
    +
  • +
+

+

+

+
+ +
+
+enumerator STRING_REPLACE_RE_ALL
+

String replace all regular expression matches.

+

Replaces all matches of a regular expression \(r\) in string +\(s_1\) with string \(s_2\). If \(r\) does not match a +substring of \(s_1\), string \(s_1\) is returned unmodified.

+
    +
  • Arity: 3

    +
      +
    • 1: Term of Sort String (\(s_1\))

    • +
    • 2: Term of Sort RegLan

    • +
    • 3: Term of Sort String (\(s_2\))

    • +
    +
  • +
+

+

+

+
+ +
+
+enumerator STRING_TO_LOWER
+

String to lower case.

+

+

+
+ +
+
+enumerator STRING_TO_UPPER
+

String to upper case.

+

+

+
+ +
+
+enumerator STRING_REV
+

String reverse.

+

+

+
+ +
+
+enumerator STRING_TO_CODE
+

String to code.

+

Returns the code point of a string if it has length one, or returns -1 otherwise.

+

+

+
+ +
+
+enumerator STRING_FROM_CODE
+

String from code.

+

Returns a string containing a single character whose code point matches the argument to this function, or the empty string if the argument is out-of-bounds.

+

+

+
+ +
+
+enumerator STRING_LT
+

String less than.

+

Returns true if string \(s_1\) is (strictly) less than \(s_2\) +based on a lexiographic ordering over code points.

+
    +
  • Arity: 2

    +
      +
    • 1: Term of Sort String (\(s_1\))

    • +
    • 2: Term of Sort String (\(s_2\))

    • +
    +
  • +
+

+

+

+
+ +
+
+enumerator STRING_LEQ
+

String less than or equal.

+

Returns true if string \(s_1\) is less than or equal to \(s_2\) +based on a lexiographic ordering over code points.

+
    +
  • Arity: 2

    +
      +
    • 1: Term of Sort String (\(s_1\))

    • +
    • 2: Term of Sort String (\(s_2\))

    • +
    +
  • +
+

+

+

+
+ +
+
+enumerator STRING_PREFIX
+

String prefix-of.

+

Determines whether a string \(s_1\) is a prefix of string \(s_2\). +If string s1 is empty, this operator returns true.

+
    +
  • Arity: 2

    +
      +
    • 1: Term of Sort String (\(s_1\))

    • +
    • 2: Term of Sort String (\(s_2\))

    • +
    +
  • +
+

+

+

+
+ +
+
+enumerator STRING_SUFFIX
+

String suffix-of.

+

Determines whether a string \(s_1\) is a suffix of the second string. +If string \(s_1\) is empty, this operator returns true.

+
    +
  • Arity: 2

    +
      +
    • 1: Term of Sort String (\(s_1\))

    • +
    • 2: Term of Sort String (\(s_2\))

    • +
    +
  • +
+

+

+

+
+ +
+
+enumerator STRING_IS_DIGIT
+

String is-digit.

+

Returns true if given string is a digit (it is one of "0", …, "9").

+

+

+
+ +
+
+enumerator STRING_FROM_INT
+

Conversion from Int to String.

+

If the integer is negative this operator returns the empty string.

+

+

+
+ +
+
+enumerator STRING_TO_INT
+

String to integer (total function).

+

If the string does not contain an integer or the integer is negative, the operator returns -1.

+

+

+
+ +
+
+enumerator CONST_STRING
+

Constant string.

+

+

+
+ +
+
+enumerator STRING_TO_REGEXP
+

Conversion from string to regexp.

+

+

+
+ +
+
+enumerator REGEXP_CONCAT
+

Regular expression concatenation.

+

+

+
+ +
+
+enumerator REGEXP_UNION
+

Regular expression union.

+

+

+
+ +
+
+enumerator REGEXP_INTER
+

Regular expression intersection.

+

+

+
+ +
+
+enumerator REGEXP_DIFF
+

Regular expression difference.

+

+

+
+ +
+
+enumerator REGEXP_STAR
+

Regular expression *.

+

+

+
+ +
+
+enumerator REGEXP_PLUS
+

Regular expression +.

+

+

+
+ +
+
+enumerator REGEXP_OPT
+

Regular expression ?.

+

+

+
+ +
+
+enumerator REGEXP_RANGE
+

Regular expression range.

+

+

+
+ +
+
+enumerator REGEXP_REPEAT
+

Operator for regular expression repeat.

+

+

+
+ +
+
+enumerator REGEXP_LOOP
+

Regular expression loop.

+

Regular expression loop from lower bound to upper bound number of repetitions.

+

+

+
+ +
+
+enumerator REGEXP_NONE
+

Regular expression none.

+

+

+
+ +
+
+enumerator REGEXP_ALL
+

Regular expression all.

+

+

+
+ +
+
+enumerator REGEXP_ALLCHAR
+

Regular expression all characters.

+

+

+
+ +
+
+enumerator REGEXP_COMPLEMENT
+

Regular expression complement.

+

+

+
+ +
+
+enumerator SEQ_CONCAT
+

Sequence concat.

+

+

+
+ +
+
+enumerator SEQ_LENGTH
+

Sequence length.

+

+

+
+ +
+
+enumerator SEQ_EXTRACT
+

Sequence extract.

+

Extracts a subsequence, starting at index \(i\) and of length \(l\), +from a sequence \(s\). If the start index is negative, the start index +is greater than the length of the sequence, or the length is negative, the +result is the empty sequence.

+
    +
  • Arity: 3

    +
      +
    • 1: Term of sequence Sort

    • +
    • 2: Term of Sort Int (index \(i\))

    • +
    • 3: Term of Sort Int (length \(l\))

    • +
    +
  • +
+

+

+

+
+ +
+
+enumerator SEQ_UPDATE
+

Sequence update.

+

Updates a sequence \(s\) by replacing its context starting at an index +with string \(t\). If the start index is negative, the start index is +greater than the length of the sequence, the result is \(s\). +Otherwise, the length of the original sequence is preserved.

+
    +
  • Arity: 3

    +
      +
    • 1: Term of sequence Sort

    • +
    • 2: Term of Sort Int (index \(i\))

    • +
    • 3: Term of sequence Sort (replacement sequence \(t\))

    • +
    +
  • +
+

+

+

+
+ +
+
+enumerator SEQ_AT
+

Sequence element at.

+

Returns the element at index \(i\) from a sequence \(s\). If the index +is negative or the index is greater or equal to the length of the +sequence, the result is the empty sequence. Otherwise the result is a +sequence of length 1.

+
    +
  • Arity: 2

    +
      +
    • 1: Term of sequence Sort

    • +
    • 2: Term of Sort Int (index \(i\))

    • +
    +
  • +
+

+

+

+
+ +
+
+enumerator SEQ_CONTAINS
+

Sequence contains.

+

Checks whether a sequence \(s_1\) contains another sequence +\(s_2\). If \(s_2\) is empty, the result is always true.

+
    +
  • Arity: 2

    +
      +
    • 1: Term of sequence Sort (\(s_1\))

    • +
    • 2: Term of sequence Sort (\(s_2\))

    • +
    +
  • +
+

+

+

+
+ +
+
+enumerator SEQ_INDEXOF
+

Sequence index-of.

+

Returns the index of a subsequence \(s_2\) in a sequence \(s_1\) +starting at index \(i\). If the index is negative or greater than the +length of sequence \(s_1\) or the subsequence \(s_2\) does not +appear in sequence \(s_1\) after index \(i\), the result is -1.

+
    +
  • Arity: 3

    +
      +
    • 1: Term of sequence Sort (\(s_1\))

    • +
    • 2: Term of sequence Sort (\(s_2\))

    • +
    • 3: Term of Sort Int (\(i\))

    • +
    +
  • +
+

+

+

+
+ +
+
+enumerator SEQ_REPLACE
+

Sequence replace.

+

Replaces the first occurrence of a sequence \(s_2\) in a +sequence \(s_1\) with sequence \(s_3\). If \(s_2\) does not +appear in \(s_1\), \(s_1\) is returned unmodified.

+
    +
  • Arity: 3

    +
      +
    • 1: Term of sequence Sort (\(s_1\))

    • +
    • 2: Term of sequence Sort (\(s_2\))

    • +
    • 3: Term of sequence Sort (\(s_3\))

    • +
    +
  • +
+

+

+

+
+ +
+
+enumerator SEQ_REPLACE_ALL
+

Sequence replace all.

+

Replaces all occurrences of a sequence \(s_2\) in a sequence +\(s_1\) with sequence \(s_3\). If \(s_2\) does not appear in +\(s_1\), sequence \(s_1\) is returned unmodified.

+
    +
  • Arity: 3

    +
      +
    • 1: Term of sequence Sort (\(s_1\))

    • +
    • 2: Term of sequence Sort (\(s_2\))

    • +
    • 3: Term of sequence Sort (\(s_3\))

    • +
    +
  • +
+

+

+

+
+ +
+
+enumerator SEQ_REV
+

Sequence reverse.

+

+

+
+ +
+
+enumerator SEQ_PREFIX
+

Sequence prefix-of.

+

Checks whether a sequence \(s_1\) is a prefix of sequence \(s_2\). +If sequence \(s_1\) is empty, this operator returns true.

+
    +
  • Arity: 1

    +
      +
    • 1: Term of sequence Sort (\(s_1\))

    • +
    • 2: Term of sequence Sort (\(s_2\))

    • +
    +
  • +
+

+

+

+
+ +
+
+enumerator SEQ_SUFFIX
+

Sequence suffix-of.

+

Checks whether a sequence \(s_1\) is a suffix of sequence \(s_2\). +If sequence \(s_1\) is empty, this operator returns true.

+
    +
  • Arity: 1

    +
      +
    • 1: Term of sequence Sort (\(s_1\))

    • +
    • 2: Term of sequence Sort (\(s_2\))

    • +
    +
  • +
+

+

+

+
+ +
+
+enumerator CONST_SEQUENCE
+

Constant sequence.

+

A constant sequence is a term that is equivalent to:

(seq.++ (seq.unit c1) ... (seq.unit cn))
+
+
+

where \(n \leq 0\) and \(c_1, ..., c_n\) are constants of some +sort. The elements can be extracted with Term::getSequenceValue().

+

+

+

+

+
+ +
+
+enumerator SEQ_UNIT
+

Sequence unit.

+

Corresponds to a sequence of length one with the given term.

+

+

+
+ +
+
+enumerator SEQ_NTH
+

Sequence nth.

+

Corresponds to the nth element of a sequence.

+

    +
  • Arity: 2

    +
      +
    • 1: Term of sequence Sort

    • +
    • 2: Term of Sort Int (\(n\))

    • +
    +
  • +
+

+

+

+
+ +
+
+enumerator FORALL
+

Universally quantified formula.

+

    +
  • Arity: 3

    + +
  • +
+

+

+

+
+ +
+
+enumerator EXISTS
+

Existentially quantified formula.

+

    +
  • Arity: 3

    + +
  • +
+

+

+

+
+ +
+
+enumerator VARIABLE_LIST
+

Variable list.

+

A list of variables (used to bind variables under a quantifier)

+

    +
  • Arity: n > 0

    + +
  • +
+

+

+

+
+ +
+
+enumerator INST_PATTERN
+

Instantiation pattern.

+

Specifies a (list of) terms to be used as a pattern for quantifier instantiation.

+

+

+
+

Note

+

Should only be used as a child of +INST_PATTERN_LIST.

+
+
+ +
+
+enumerator INST_NO_PATTERN
+

Instantiation no-pattern.

+

Specifies a (list of) terms that should not be used as a pattern for quantifier instantiation.

+

+

+
+

Note

+

Should only be used as a child of +INST_PATTERN_LIST.

+
+
+ +
+
+enumerator INST_POOL
+

Instantiation pool annotation.

+

Specifies an annotation for pool based instantiation.

+

In detail, pool symbols can be declared via the method

+

+

A pool symbol represents a set of terms of a given sort. An instantiation pool annotation should either: (1) have child sets matching the types of the quantified formula, (2) have a child set of tuple type whose component types match the types of the quantified formula.

+

For an example of (1), for a quantified formula:

+

(FORALL (VARIABLE_LIST x y) F (INST_PATTERN_LIST (INST_POOL p q)))
+
+
+

if \(x\) and \(y\) have Sorts \(S_1\) and \(S_2\), then +pool symbols \(p\) and \(q\) should have Sorts (Set \(S_1\)) +and (Set \(S_2\)), respectively. This annotation specifies that the +quantified formula above should be instantiated with the product of all +terms that occur in the sets \(p\) and \(q\).

+

+

Alternatively, as an example of (2), for a quantified formula:

+

(FORALL (VARIABLE_LIST x y) F (INST_PATTERN_LIST (INST_POOL s)))
+
+
+

\(s\) should have Sort (Set (Tuple \(S_1\) \(S_2\))). This +annotation specifies that the quantified formula above should be +instantiated with the pairs of values in \(s\).

+
    +
  • Arity: n > 0

    +
      +
    • 1..n: Terms that comprise the pools, which are one-to-one with the variables of the quantified formula to be instantiated

    • +
    +
  • +
  • Create Term of this Kind with:

    +
      +
    • Solver::mkTerm(Kind, const std::vector<Term>&) const

    • +
    • Solver::mkTerm(const Op&, const std::vector<Term>&) const

    • +
    +
  • +
  • Create Op of this kind with:

    +
      +
    • Solver::mkOp(Kind, const std::vector<uint32_t>&) const

    • +
    +
  • +
+

+
+

Note

+

Should only be used as a child of +INST_PATTERN_LIST.

+
+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator INST_ADD_TO_POOL
+

A instantantiation-add-to-pool annotation.

+

An instantantiation-add-to-pool annotation indicates that when a quantified formula is instantiated, the instantiated version of a term should be added to the given pool.

+

For example, consider a quantified formula:

+

(FORALL (VARIABLE_LIST x) F
+        (INST_PATTERN_LIST (INST_ADD_TO_POOL (ADD x 1) p)))
+
+
+

where assume that \(x\) has type Int. When this quantified formula is +instantiated with, e.g., the term \(t\), the term (ADD t 1) is +added to pool \(p\).

+

+

+

+
+

Note

+

Should only be used as a child of +INST_PATTERN_LIST.

+
+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator SKOLEM_ADD_TO_POOL
+

A skolemization-add-to-pool annotation.

+

An skolemization-add-to-pool annotation indicates that when a quantified formula is skolemized, the skolemized version of a term should be added to the given pool.

+

For example, consider a quantified formula:

+

(FORALL (VARIABLE_LIST x) F
+        (INST_PATTERN_LIST (SKOLEM_ADD_TO_POOL (ADD x 1) p)))
+
+
+

where assume that \(x\) has type Int. When this quantified formula is +skolemized, e.g., with \(k\) of type Int, then the term (ADD k 1) +is added to the pool \(p\).

+

+

+

+
+

Note

+

Should only be used as a child of +INST_PATTERN_LIST.

+
+
+

Warning

+

This kind is experimental and may be changed or removed in +future versions.

+
+
+ +
+
+enumerator INST_ATTRIBUTE
+

Instantiation attribute.

+

Specifies a custom property for a quantified formula given by a term that is ascribed a user attribute.

+

+

+
+

Note

+

Should only be used as a child of +INST_PATTERN_LIST.

+
+
+ +
+
+enumerator INST_PATTERN_LIST
+

A list of instantiation patterns, attributes or annotations.

+

+

+

+

+
+ +
+
+enumerator LAST_KIND
+

Marks the upper-bound of this enumeration.

+
+ +
+ +
+
+
+std::ostream &cvc5::operator<<(std::ostream &out, Kind kind)
+

Serialize a kind to given stream.

+
+
Parameters:
+
    +
  • out – The output stream.

  • +
  • kind – The kind to be serialized to the given output stream.

  • +
+
+
Returns:
+

The output stream.

+
+
+
+ +
+
+std::string std::to_string(cvc5::Kind kind)
+

Get the string representation of a given kind.

+
+
Parameters:
+

kind – The kind

+
+
Returns:
+

The string representation.

+
+
+
+ +
+
+
+template<>
struct hash<cvc5::Kind>
+

Hash function for Kinds.

+
+

Public Functions

+
+
+size_t operator()(cvc5::Kind kind) const
+

Hashes a Kind to a size_t.

+
+
Parameters:
+

kind – The kind.

+
+
Returns:
+

The hash value.

+
+
+
+ +
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/enums/modes.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/enums/modes.html new file mode 100644 index 0000000000..31e932e8da --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/enums/modes.html @@ -0,0 +1,524 @@ + + + + + + + + + + + + + Modes — cvc5 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Modes

+

Some API functions require a configuration mode argument, e.g., +cvc5::Solver::blockModel(). +The following enum classes define such configuration modes.

+
+ +
+
+
+enum class cvc5::modes::BlockModelsMode
+

Mode for blocking models.

+

Specifies how models are blocked in Solver::blockModel and Solver::blockModelValues.

+

Values:

+
+
+enumerator LITERALS
+

Block models based on the SAT skeleton.

+
+ +
+
+enumerator VALUES
+

Block models based on the concrete model values for the free variables.

+
+ +
+ +
+
+std::ostream &cvc5::modes::operator<<(std::ostream &out, BlockModelsMode mode)
+

Serialize a BlockModelsMode to given stream.

+
+
Parameters:
+
    +
  • out – The output stream

  • +
  • mode – The mode.

  • +
+
+
Returns:
+

The output stream

+
+
+
+ +
+
+std::string std::to_string(cvc5::modes::BlockModelsMode mode)
+
+ +
+
+
+enum class cvc5::modes::LearnedLitType
+

Types of learned literals.

+

Specifies categories of literals learned for the method Solver::getLearnedLiterals.

+

Note that a literal may conceptually belong to multiple categories. We classify literals based on the first criteria in this list that they meet.

+

Values:

+
+
+enumerator PREPROCESS_SOLVED
+

An equality that was turned into a substitution during preprocessing.

+

In particular, literals in this category are of the form (= x t) where x does not occur in t.

+
+ +
+
+enumerator PREPROCESS
+

A top-level literal (unit clause) from the preprocessed set of input formulas.

+
+ +
+
+enumerator INPUT
+

A literal from the preprocessed set of input formulas that does not occur at top-level after preprocessing.

+

Typically), this is the most interesting category of literals to learn.

+
+ +
+
+enumerator SOLVABLE
+

An internal literal that is solvable for an input variable.

+

In particular, literals in this category are of the form (= x t) where x does not occur in t, the preprocessed set of input formulas contains the term x, but not the literal (= x t).

+

Note that solvable literals can be turned into substitutions during preprocessing.

+
+ +
+
+enumerator CONSTANT_PROP
+

An internal literal that can be made into a constant propagation for an input term.

+

In particular, literals in this category are of the form (= t c) where c is a constant, the preprocessed set of input formulas contains the term t, but not the literal (= t c).

+
+ +
+
+enumerator INTERNAL
+

Any internal literal that does not fall into the above categories.

+
+ +
+
+enumerator UNKNOWN
+

Special case for when produce-learned-literals is not set.

+
+ +
+ +
+
+std::ostream &cvc5::modes::operator<<(std::ostream &out, LearnedLitType type)
+

Serialize a LearnedLitType to given stream.

+
+
Parameters:
+
    +
  • out – The output stream

  • +
  • type – The learned literal type.

  • +
+
+
Returns:
+

The output stream

+
+
+
+ +
+
+std::string std::to_string(cvc5::modes::LearnedLitType type)
+
+ +
+
+
+enum class cvc5::modes::ProofComponent
+

Components to include in a proof.

+

Values:

+
+
+enumerator RAW_PREPROCESS
+

Proofs of G1 … Gn whose free assumptions are a subset of F1, … Fm, where:

    +
  • G1, … Gn are the preprocessed input formulas,

  • +
  • F1, … Fm are the input formulas.

  • +
+

+

Note that G1 … Gn may be arbitrary formulas, not necessarily clauses.

+
+ +
+
+enumerator PREPROCESS
+

Proofs of Gu1 … Gun whose free assumptions are Fu1, … Fum, where:

    +
  • Gu1, … Gun are clauses corresponding to input formulas used in the SAT proof,

  • +
  • Fu1, … Fum is the subset of the input formulas that are used in the SAT proof (i.e. the unsat core).

  • +
+

+

Note that Gu1 … Gun are clauses that are added to the SAT solver before its main search.

+

Only valid immediately after an unsat response.

+
+ +
+
+enumerator SAT
+

A proof of false whose free assumptions are Gu1, … Gun, L1 … Lk, where:

    +
  • Gu1, … Gun, is a set of clauses corresponding to input formulas,

  • +
  • L1, …, Lk is a set of clauses corresponding to theory lemmas.

  • +
+

+

Only valid immediately after an unsat response.

+
+ +
+
+enumerator THEORY_LEMMAS
+

Proofs of L1 … Lk where:

    +
  • L1, …, Lk are clauses corresponding to theory lemmas used in the SAT proof.

  • +
+

+

In contrast to proofs given for preprocess, L1 … Lk are clauses that are added to the SAT solver after its main search.

+

Only valid immediately after an unsat response.

+
+ +
+
+enumerator FULL
+

A proof of false whose free assumptions are a subset of the input formulas F1), … Fm.

+

Only valid immediately after an unsat response.

+
+ +
+ +
+
+std::ostream &cvc5::modes::operator<<(std::ostream &out, ProofComponent pc)
+

Serialize a ProofComponent to given stream.

+
+
Parameters:
+
    +
  • out – The output stream

  • +
  • pc – The proof component.

  • +
+
+
Returns:
+

The output stream

+
+
+
+ +
+
+std::string std::to_string(cvc5::modes::ProofComponent pc)
+
+ +
+
+
+enum class cvc5::modes::ProofFormat
+

Proof format used for proof printing.

+

Values:

+
+
+enumerator NONE
+

Do not translate proof output.

+
+ +
+
+enumerator DOT
+

Output DOT proof.

+
+ +
+
+enumerator LFSC
+

Output LFSC proof.

+
+ +
+
+enumerator ALETHE
+

Output Alethe proof.

+
+ +
+
+enumerator CPC
+

Output Cooperating Proof Calculus proof based on Eunoia signatures.

+
+ +
+
+enumerator DEFAULT
+

Use the proof format mode set in the solver options.

+
+ +
+ +
+
+std::ostream &cvc5::modes::operator<<(std::ostream &out, ProofFormat format)
+

Serialize a FindSynthTarget to given stream.

+
+
Parameters:
+
    +
  • out – The output stream

  • +
  • format – The proof format.

  • +
+
+
Returns:
+

The output stream

+
+
+
+ +
+
+std::string std::to_string(cvc5::modes::ProofFormat format)
+
+ +
+
+
+enum class cvc5::modes::FindSynthTarget
+

Find synthesis targets, used as an argument to Solver::findSynth. These specify various kinds of terms that can be found by this method.

+

Values:

+
+
+enumerator ENUM
+

Find the next term in the enumeration of the target grammar.

+
+ +
+
+enumerator REWRITE
+

Find a pair of terms (t,s) in the target grammar which are equivalent but do not rewrite to the same term in the given rewriter (&#8212;sygus-rewrite=MODE). If so, the equality (= t s) is returned by findSynth.

+

This can be used to synthesize rewrite rules. Note if the rewriter is set to none (&#8212;sygus-rewrite=none), this indicates a possible rewrite when implementing a rewriter from scratch.

+
+ +
+
+enumerator REWRITE_UNSOUND
+

Find a term t in the target grammar which rewrites to a term s that is not equivalent to it. If so, the equality (= t s) is returned by findSynth.

+

This can be used to test the correctness of the given rewriter. Any returned rewrite indicates an unsoundness in the given rewriter.

+
+ +
+
+enumerator REWRITE_INPUT
+

Find a rewrite between pairs of terms (t,s) that are matchable with terms in the input assertions where t and s are equivalent but do not rewrite to the same term in the given rewriter (&#8212;sygus-rewrite=MODE).

+

This can be used to synthesize rewrite rules that apply to the current problem.

+
+ +
+
+enumerator QUERY
+

Find a query over the given grammar. If the given grammar generates terms that are not Boolean, we consider equalities over terms from the given grammar.

+

The algorithm for determining which queries to generate is configured by &#8212;sygus-query-gen=MODE. Queries that are internally solved can be filtered by the option &#8212;sygus-query-gen-filter-solved.

+
+ +
+ +
+
+std::ostream &cvc5::modes::operator<<(std::ostream &out, FindSynthTarget target)
+

Serialize a FindSynthTarget to given stream.

+
+
Parameters:
+
    +
  • out – The output stream

  • +
  • target – The synthesis find target.

  • +
+
+
Returns:
+

The output stream

+
+
+
+ +
+
+std::string std::to_string(cvc5::modes::FindSynthTarget target)
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/enums/proofrule.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/enums/proofrule.html new file mode 100644 index 0000000000..627de84b45 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/enums/proofrule.html @@ -0,0 +1,5582 @@ + + + + + + + + + + + + + ProofRule and ProofRewriteRule — cvc5 documentation + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ProofRule and ProofRewriteRule

+

Enum class ProofRule captures the reasoning steps +performed by the SAT solver, the theory solvers and the preprocessor. It +represents the inference rules used to derive conclusions within a proof.

+

Enum class ProofRewriteRule pertains to +rewrites performed on terms. These identifiers are arguments of the proof rules +THEORY_REWRITE and +DSL_REWRITE.

+
+ +
+
+
+enum class cvc5::ProofRule
+

An enumeration for proof rules. This enumeration is analogous to Kind for +Node objects.

+

All proof rules are given as inference rules, presented in the following +form:

+
+\[\texttt{RULENAME}: +\inferruleSC{\varphi_1 \dots \varphi_n \mid t_1 \dots t_m}{\psi}{if $C$}\]
+

where we call \(\varphi_i\) its premises or children, \(t_i\) its +arguments, \(\psi\) its conclusion, and \(C\) its side condition. +Alternatively, we can write the application of a proof rule as +(RULENAME F1 ... Fn :args t1 ... tm), omitting the conclusion +(since it can be uniquely determined from premises and arguments). +Note that premises are sometimes given as proofs, i.e., application of +proof rules, instead of formulas. This abuses the notation to see proof +rule applications and their conclusions interchangeably.

+

Conceptually, the following proof rules form a calculus whose target +user is the Node-level theory solvers. This means that the rules below +are designed to reason about, among other things, common operations on Node +objects like Rewriter::rewrite or Node::substitute. It is intended to be +translated or printed in other formats.

+

The following ProofRule values include core rules and those categorized by +theory, including the theory of equality.

+

The “core rules” include two distinguished rules which have special status: +(1) ASSUME, which represents an +open leaf in a proof; and +(2) SCOPE, which encloses a scope +(a subproof) with a set of scoped assumptions. +The core rules additionally correspond to generic operations that are done +internally on nodes, e.g., calling Rewriter::rewrite().

+

Rules with prefix MACRO_ are those that can be defined in terms of other +rules. These exist for convenience and can be replaced by their definition +in post-processing.

+

+

Values:

+
+
+enumerator ASSUME
+

Assumption (a leaf)

+
+\[\inferrule{- \mid F}{F}\]
+

This rule has special status, in that an application of assume is an +open leaf in a proof that is not (yet) justified. An assume leaf is +analogous to a free variable in a term, where we say “F is a free +assumption in proof P” if it contains an application of F that is not +bound by SCOPE (see below).

+

+
+ +
+
+enumerator SCOPE
+

Scope (a binder for assumptions)

+
+\[\inferruleSC{F \mid F_1 \dots F_n}{(F_1 \land \dots \land F_n) +\Rightarrow F}{if $F\neq\bot$} \textrm{ or } \inferruleSC{F \mid F_1 +\dots F_n}{\neg (F_1 \land \dots \land F_n)}{if $F=\bot$}\]
+

This rule has a dual purpose with +ASSUME. It is a way to close +assumptions in a proof. We require that \(F_1 \dots F_n\) are free +assumptions in P and say that \(F_1 \dots F_n\) are not free in +(SCOPE P). In other words, they are bound by this application. For +example, the proof node: +(SCOPE (ASSUME F) :args F) +has the conclusion \(F \Rightarrow F\) and has no free assumptions. +More generally, a proof with no free assumptions always concludes a valid +formula.

+

+
+ +
+
+enumerator SUBS
+

Builtin theory – Substitution

+
+\[\inferrule{F_1 \dots F_n \mid t, ids?}{t = t \circ \sigma_{ids}(F_n) +\circ \cdots \circ \sigma_{ids}(F_1)}\]
+

where \(\sigma_{ids}(F_i)\) are substitutions, which notice are applied +in reverse order. Notice that \(ids\) is a MethodId identifier, which +determines how to convert the formulas \(F_1 \dots F_n\) into +substitutions. It is an optional argument, where by default the premises +are equalities of the form (= x y) and converted into substitutions +\(x\mapsto y\).

+

+
+ +
+
+enumerator MACRO_REWRITE
+

Builtin theory – Rewrite

+
+\[\inferrule{- \mid t, idr}{t = \texttt{rewrite}_{idr}(t)}\]
+

where \(idr\) is a MethodId identifier, which determines the kind of +rewriter to apply, e.g. Rewriter::rewrite.

+

+
+ +
+
+enumerator EVALUATE
+

Builtin theory – Evaluate

+
+\[\inferrule{- \mid t}{t = \texttt{evaluate}(t)}\]
+

where \(\texttt{evaluate}\) is implemented by calling the method +\(\texttt{Evalutor::evaluate}\) in theory/evaluator.h with an +empty substitution. +Note this is equivalent to: (REWRITE t MethodId::RW_EVALUATE).

+

+
+ +
+
+enumerator ACI_NORM
+

Builtin theory – associative/commutative/idempotency/identity normalization

+
+\[\inferrule{- \mid t = s}{t = s}\]
+

where \(\texttt{expr::isACNorm(t, s)} = \top\). For details, see +expr/nary_term_util.h. +This method normalizes currently based on two kinds of operators: +(1) those that are associative, commutative, idempotent, and have an +identity element (examples are or, and, bvand), +(2) those that are associative and have an identity element (examples +are str.++, re.++).

+

+
+ +
+
+enumerator MACRO_SR_EQ_INTRO
+

Builtin theory – Substitution + Rewriting equality introduction

+

In this rule, we provide a term \(t\) and conclude that it is equal to +its rewritten form under a (proven) substitution.

+
+\[\inferrule{F_1 \dots F_n \mid t, (ids (ida (idr)?)?)?}{t = +\texttt{rewrite}_{idr}(t \circ \sigma_{ids, ida}(F_n) \circ \cdots \circ +\sigma_{ids, ida}(F_1))}\]
+

In other words, from the point of view of Skolem forms, this rule +transforms \(t\) to \(t'\) by standard substitution + rewriting.

+

The arguments \(ids\), \(ida\) and \(idr\) are optional and +specify the identifier of the substitution, the substitution application +and rewriter respectively to be used. For details, see +theory/builtin/proof_checker.h.

+

+
+ +
+
+enumerator MACRO_SR_PRED_INTRO
+

Builtin theory – Substitution + Rewriting predicate introduction

+

In this rule, we provide a formula \(F\) and conclude it, under the +condition that it rewrites to true under a proven substitution.

+
+\[\inferrule{F_1 \dots F_n \mid F, (ids (ida (idr)?)?)?}{F}\]
+

where \(\texttt{rewrite}_{idr}(F \circ \sigma_{ids, ida}(F_n) \circ +\cdots \circ \sigma_{ids, ida}(F_1)) = \top\) and \(ids\) and +\(idr\) are method identifiers.

+

More generally, this rule also holds when +\(\texttt{Rewriter::rewrite}(\texttt{toOriginal}(F')) = \top\) +where \(F'\) is the result of the left hand side of the equality above. +Here, notice that we apply rewriting on the original form of \(F'\), +meaning that this rule may conclude an \(F\) whose Skolem form is +justified by the definition of its (fresh) Skolem variables. For example, +this rule may justify the conclusion \(k = t\) where \(k\) is the +purification Skolem for \(t\), e.g. where the original form of +\(k\) is \(t\).

+

Furthermore, notice that the rewriting and substitution is applied only +within the side condition, meaning the rewritten form of the original form +of \(F\) does not escape this rule.

+

+
+ +
+
+enumerator MACRO_SR_PRED_ELIM
+

Builtin theory – Substitution + Rewriting predicate elimination

+
+\[\inferrule{F, F_1 \dots F_n \mid (ids (ida +(idr)?)?)?}{\texttt{rewrite}_{idr}(F \circ \sigma_{ids, ida}(F_n) \circ +\cdots \circ \sigma_{ids, ida}(F_1))}\]
+

where \(ids\) and \(idr\) are method identifiers.

+

We rewrite only on the Skolem form of \(F\), similar to +MACRO_SR_EQ_INTRO.

+

+
+ +
+
+enumerator MACRO_SR_PRED_TRANSFORM
+

Builtin theory – Substitution + Rewriting predicate elimination

+
+\[\inferrule{F, F_1 \dots F_n \mid G, (ids (ida (idr)?)?)?}{G}\]
+

where

+
+\[\begin{split}\texttt{rewrite}_{idr}(F \circ \sigma_{ids, ida}(F_n) \circ\cdots \circ \sigma_{ids, ida}(F_1)) =\\ \texttt{rewrite}_{idr}(G \circ \sigma_{ids, ida}(F_n) \circ \cdots \circ \sigma_{ids, ida}(F_1))\end{split}\]
+

More generally, this rule also holds when: +\(\texttt{Rewriter::rewrite}(\texttt{toOriginal}(F')) = \texttt{Rewriter::rewrite}(\texttt{toOriginal}(G'))\) +where \(F'\) and \(G'\) are the result of each side of the equation +above. Here, original forms are used in a similar manner to +MACRO_SR_PRED_INTRO +above.

+

+
+ +
+
+enumerator ENCODE_EQ_INTRO
+

Builtin theory – Encode equality introduction

+
+\[\inferrule{- \mid t}{t=t'}\]
+

where \(t\) and \(t'\) are equivalent up to their encoding in an +external proof format.

+

More specifically, it is the case that +\(\texttt{RewriteDbNodeConverter::postConvert}(t) = t;\). +This conversion method for instance may drop user patterns from quantified +formulas or change the representation of \(t\) in a way that is a +no-op in external proof formats.

+

Note this rule can be treated as a +REFL when appropriate in +external proof formats.

+

+
+ +
+
+enumerator DSL_REWRITE
+

Builtin theory – DSL rewrite

+
+\[\inferrule{F_1 \dots F_n \mid id t_1 \dots t_n}{F}\]
+

where id is a ProofRewriteRule whose definition in the +RARE DSL is \(\forall x_1 \dots x_n. (G_1 \wedge G_n) \Rightarrow G\) +where for \(i=1, \dots n\), we have that \(F_i = \sigma(G_i)\) +and \(F = \sigma(G)\) where \(\sigma\) is the substitution +\(\{x_1\mapsto t_1,\dots,x_n\mapsto t_n\}\).

+

Notice that the application of the substitution takes into account the +possible list semantics of variables \(x_1 \ldots x_n\). If +\(x_i\) is a variable with list semantics, then \(t_i\) denotes a +list of terms. The substitution implemented by +\(\texttt{expr::narySubstitute}\) (for details, see +expr/nary_term_util.h) which replaces each \(x_i\) with the +list \(t_i\) in its place.

+

+
+ +
+
+enumerator THEORY_REWRITE
+

Other theory rewrite rules

+
+\[\inferrule{- \mid id, t = t'}{t = t'}\]
+

where id is the ProofRewriteRule of the theory rewrite +rule which transforms \(t\) to \(t'\).

+

In contrast to DSL_REWRITE, theory rewrite rules used by +this proof rule are not necessarily expressible in RARE. Each rule that can +be used in this proof rule are documented explicitly in cases within the +ProofRewriteRule enum.

+

+
+ +
+
+enumerator ITE_EQ
+

Processing rules – If-then-else equivalence

+
+\[\inferrule{- \mid \ite{C}{t_1}{t_2}}{\ite{C}{((\ite{C}{t_1}{t_2}) = t_1)}{((\ite{C}{t_1}{t_2}) = t_2)}}\]
+

+
+ +
+
+enumerator TRUST
+

Trusted rule

+
+\[\inferrule{F_1 \dots F_n \mid tid, F, ...}{F}\]
+

where \(tid\) is an identifier and \(F\) is a formula. This rule +is used when a formal justification of an inference step cannot be provided. +The formulas \(F_1 \dots F_n\) refer to a set of formulas that +entail \(F\), which may or may not be provided.

+

+
+ +
+
+enumerator TRUST_THEORY_REWRITE
+

Trusted rules – Theory rewrite

+
+\[\inferrule{- \mid F, tid, rid}{F}\]
+

where \(F\) is an equality of the form \(t = t'\) where \(t'\) +is obtained by applying the kind of rewriting given by the method +identifier \(rid\), which is one of: +RW_REWRITE_THEORY_PRE, RW_REWRITE_THEORY_POST, +RW_REWRITE_EQ_EXT. Notice that the checker for this rule does not +replay the rewrite to ensure correctness, since theory rewriter methods are +not static. For example, the quantifiers rewriter involves constructing new +bound variables that are not guaranteed to be consistent on each call.

+

+
+ +
+
+enumerator SAT_REFUTATION
+

SAT Refutation for assumption-based unsat cores

+
+\[\inferrule{F_1 \dots F_n \mid -}{\bot}\]
+

where \(F_1 \dots F_n\) correspond to the unsat core determined by the +SAT solver.

+

+
+ +
+
+enumerator DRAT_REFUTATION
+

DRAT Refutation

+
+\[\inferrule{F_1 \dots F_n \mid D, P}{\bot}\]
+

where \(F_1 \dots F_n\) correspond to the clauses in the +DIMACS file given by filename D and P is a filename of a file storing +a DRAT proof.

+

+
+ +
+
+enumerator SAT_EXTERNAL_PROVE
+

SAT external prove Refutation

+
+\[\inferrule{F_1 \dots F_n \mid D}{\bot}\]
+

where \(F_1 \dots F_n\) correspond to the input clauses in the +DIMACS file D.

+

+
+ +
+
+enumerator RESOLUTION
+

Boolean – Resolution

+
+\[\inferrule{C_1, C_2 \mid pol, L}{C}\]
+

where

+
    +
  • \(C_1\) and \(C_2\) are nodes viewed as clauses, i.e., either an +OR node with each children viewed as a literal or a node viewed as a +literal. Note that an OR node could also be a literal.

  • +
  • \(pol\) is either true or false, representing the polarity of the +pivot on the first clause

  • +
  • \(L\) is the pivot of the resolution, which occurs as is (resp. under +a NOT) in \(C_1\) and negatively (as is) in \(C_2\) if +\(pol = \top\) (\(pol = \bot\)).

  • +
+

\(C\) is a clause resulting from collecting all the literals in +\(C_1\), minus the first occurrence of the pivot or its negation, and +\(C_2\), minus the first occurrence of the pivot or its negation, +according to the policy above. If the resulting clause has a single +literal, that literal itself is the result; if it has no literals, then the +result is false; otherwise it’s an OR node of the resulting literals.

+

Note that it may be the case that the pivot does not occur in the +clauses. In this case the rule is not unsound, but it does not correspond +to resolution but rather to a weakening of the clause that did not have a +literal eliminated.

+

+
+ +
+
+enumerator CHAIN_RESOLUTION
+

Boolean – N-ary Resolution

+
+\[\inferrule{C_1 \dots C_n \mid (pol_1 \dots pol_{n-1}), (L_1 \dots L_{n-1})}{C}\]
+

where

+
    +
  • let \(C_1 \dots C_n\) be nodes viewed as clauses, as defined above

  • +
  • let \(C_1 \diamond_{L,pol} C_2\) represent the resolution of +\(C_1\) with \(C_2\) with pivot \(L\) and polarity +\(pol\), as defined above

  • +
  • let \(C_1' = C_1\),

  • +
  • for each \(i > 1\), let \(C_i' = C_{i-1} \diamond_{L_{i-1}, pol_{i-1}} C_i'\)

  • +
+

Note the list of polarities and pivots are provided as s-expressions.

+

The result of the chain resolution is \(C = C_n'\)

+

+
+ +
+
+enumerator FACTORING
+

Boolean – Factoring

+
+\[\inferrule{C_1 \mid -}{C_2}\]
+

where \(C_2\) is the clause \(C_1\), but every occurrence of a literal +after its first occurrence is omitted.

+

+
+ +
+
+enumerator REORDERING
+

Boolean – Reordering

+
+\[\inferrule{C_1 \mid C_2}{C_2}\]
+

where +the multiset representations of \(C_1\) and \(C_2\) are the same.

+

+
+ +
+
+enumerator MACRO_RESOLUTION
+

Boolean – N-ary Resolution + Factoring + Reordering

+
+\[\inferrule{C_1 \dots C_n \mid C, pol_1,L_1 \dots pol_{n-1},L_{n-1}}{C}\]
+

where

+
    +
  • let \(C_1 \dots C_n\) be nodes viewed as clauses, as defined in +RESOLUTION

  • +
  • let \(C_1 \diamond_{L,\mathit{pol}} C_2\) represent the resolution of +\(C_1\) with \(C_2\) with pivot \(L\) and polarity +\(pol\), as defined in +RESOLUTION

  • +
  • let \(C_1'\) be equal, in its set representation, to \(C_1\),

  • +
  • for each \(i > 1\), let \(C_i'\) be equal, in its set +representation, to \(C_{i-1} \diamond_{L_{i-1},\mathit{pol}_{i-1}} +C_i'\)

  • +
+

The result of the chain resolution is \(C\), which is equal, in its set +representation, to \(C_n'\)

+

+
+ +
+
+enumerator MACRO_RESOLUTION_TRUST
+

Boolean – N-ary Resolution + Factoring + Reordering unchecked

+

Same as +MACRO_RESOLUTION, but +not checked by the internal proof checker.

+

+
+ +
+
+enumerator SPLIT
+

Boolean – Split

+
+\[\inferrule{- \mid F}{F \lor \neg F}\]
+

+
+ +
+
+enumerator EQ_RESOLVE
+

Boolean – Equality resolution

+
+\[\inferrule{F_1, (F_1 = F_2) \mid -}{F_2}\]
+

Note this can optionally be seen as a macro for +EQUIV_ELIM1 + +RESOLUTION.

+

+
+ +
+
+enumerator MODUS_PONENS
+

Boolean – Modus Ponens

+
+\[\inferrule{F_1, (F_1 \rightarrow F_2) \mid -}{F_2}\]
+

Note this can optionally be seen as a macro for +IMPLIES_ELIM + +RESOLUTION.

+

+
+ +
+
+enumerator NOT_NOT_ELIM
+

Boolean – Double negation elimination

+
+\[\inferrule{\neg (\neg F) \mid -}{F}\]
+

+
+ +
+
+enumerator CONTRA
+

Boolean – Contradiction

+
+\[\inferrule{F, \neg F \mid -}{\bot}\]
+

+
+ +
+
+enumerator AND_ELIM
+

Boolean – And elimination

+
+\[\inferrule{(F_1 \land \dots \land F_n) \mid i}{F_i}\]
+

+
+ +
+
+enumerator AND_INTRO
+

Boolean – And introduction

+
+\[\inferrule{F_1 \dots F_n \mid -}{(F_1 \land \dots \land F_n)}\]
+

+
+ +
+
+enumerator NOT_OR_ELIM
+

Boolean – Not Or elimination

+
+\[\inferrule{\neg(F_1 \lor \dots \lor F_n) \mid i}{\neg F_i}\]
+

+
+ +
+
+enumerator IMPLIES_ELIM
+

Boolean – Implication elimination

+
+\[\inferrule{F_1 \rightarrow F_2 \mid -}{\neg F_1 \lor F_2}\]
+

+
+ +
+
+enumerator NOT_IMPLIES_ELIM1
+

Boolean – Not Implication elimination version 1

+
+\[\inferrule{\neg(F_1 \rightarrow F_2) \mid -}{F_1}\]
+

+
+ +
+
+enumerator NOT_IMPLIES_ELIM2
+

Boolean – Not Implication elimination version 2

+
+\[\inferrule{\neg(F_1 \rightarrow F_2) \mid -}{\neg F_2}\]
+

+
+ +
+
+enumerator EQUIV_ELIM1
+

Boolean – Equivalence elimination version 1

+
+\[\inferrule{F_1 = F_2 \mid -}{\neg F_1 \lor F_2}\]
+

+
+ +
+
+enumerator EQUIV_ELIM2
+

Boolean – Equivalence elimination version 2

+
+\[\inferrule{F_1 = F_2 \mid -}{F_1 \lor \neg F_2}\]
+

+
+ +
+
+enumerator NOT_EQUIV_ELIM1
+

Boolean – Not Equivalence elimination version 1

+
+\[\inferrule{F_1 \neq F_2 \mid -}{F_1 \lor F_2}\]
+

+
+ +
+
+enumerator NOT_EQUIV_ELIM2
+

Boolean – Not Equivalence elimination version 2

+
+\[\inferrule{F_1 \neq F_2 \mid -}{\neg F_1 \lor \neg F_2}\]
+

+
+ +
+
+enumerator XOR_ELIM1
+

Boolean – XOR elimination version 1

+
+\[\inferrule{F_1 \xor F_2 \mid -}{F_1 \lor F_2}\]
+

+
+ +
+
+enumerator XOR_ELIM2
+

Boolean – XOR elimination version 2

+
+\[\inferrule{F_1 \xor F_2 \mid -}{\neg F_1 \lor \neg F_2}\]
+

+
+ +
+
+enumerator NOT_XOR_ELIM1
+

Boolean – Not XOR elimination version 1

+
+\[\inferrule{\neg(F_1 \xor F_2) \mid -}{F_1 \lor \neg F_2}\]
+

+
+ +
+
+enumerator NOT_XOR_ELIM2
+

Boolean – Not XOR elimination version 2

+
+\[\inferrule{\neg(F_1 \xor F_2) \mid -}{\neg F_1 \lor F_2}\]
+

+
+ +
+
+enumerator ITE_ELIM1
+

Boolean – ITE elimination version 1

+
+\[\inferrule{(\ite{C}{F_1}{F_2}) \mid -}{\neg C \lor F_1}\]
+

+
+ +
+
+enumerator ITE_ELIM2
+

Boolean – ITE elimination version 2

+
+\[\inferrule{(\ite{C}{F_1}{F_2}) \mid -}{C \lor F_2}\]
+

+
+ +
+
+enumerator NOT_ITE_ELIM1
+

Boolean – Not ITE elimination version 1

+
+\[\inferrule{\neg(\ite{C}{F_1}{F_2}) \mid -}{\neg C \lor \neg F_1}\]
+

+
+ +
+
+enumerator NOT_ITE_ELIM2
+

Boolean – Not ITE elimination version 2

+
+\[\inferrule{\neg(\ite{C}{F_1}{F_2}) \mid -}{C \lor \neg F_2}\]
+

+
+ +
+
+enumerator NOT_AND
+

Boolean – De Morgan – Not And

+
+\[\inferrule{\neg(F_1 \land \dots \land F_n) \mid -}{\neg F_1 \lor \dots +\lor \neg F_n}\]
+

+
+ +
+
+enumerator CNF_AND_POS
+

Boolean – CNF – And Positive

+
+\[\inferrule{- \mid (F_1 \land \dots \land F_n), i}{\neg (F_1 \land \dots +\land F_n) \lor F_i}\]
+

+
+ +
+
+enumerator CNF_AND_NEG
+

Boolean – CNF – And Negative

+
+\[\inferrule{- \mid (F_1 \land \dots \land F_n)}{(F_1 \land \dots \land +F_n) \lor \neg F_1 \lor \dots \lor \neg F_n}\]
+

+
+ +
+
+enumerator CNF_OR_POS
+

Boolean – CNF – Or Positive

+
+\[\inferrule{- \mid (F_1 \lor \dots \lor F_n)}{\neg(F_1 \lor \dots \lor +F_n) \lor F_1 \lor \dots \lor F_n}\]
+

+
+ +
+
+enumerator CNF_OR_NEG
+

Boolean – CNF – Or Negative

+
+\[\inferrule{- \mid (F_1 \lor \dots \lor F_n), i}{(F_1 \lor \dots \lor F_n) +\lor \neg F_i}\]
+

+
+ +
+
+enumerator CNF_IMPLIES_POS
+

Boolean – CNF – Implies Positive

+
+\[\inferrule{- \mid F_1 \rightarrow F_2}{\neg(F_1 \rightarrow F_2) \lor \neg F_1 +\lor F_2}\]
+

+
+ +
+
+enumerator CNF_IMPLIES_NEG1
+

Boolean – CNF – Implies Negative 1

+
+\[\inferrule{- \mid F_1 \rightarrow F_2}{(F_1 \rightarrow F_2) \lor F_1}\]
+

+
+ +
+
+enumerator CNF_IMPLIES_NEG2
+

Boolean – CNF – Implies Negative 2

+
+\[\inferrule{- \mid F_1 \rightarrow F_2}{(F_1 \rightarrow F_2) \lor \neg F_2}\]
+

+
+ +
+
+enumerator CNF_EQUIV_POS1
+

Boolean – CNF – Equiv Positive 1

+
+\[\inferrule{- \mid F_1 = F_2}{F_1 \neq F_2 \lor \neg F_1 \lor F_2}\]
+

+
+ +
+
+enumerator CNF_EQUIV_POS2
+

Boolean – CNF – Equiv Positive 2

+
+\[\inferrule{- \mid F_1 = F_2}{F_1 \neq F_2 \lor F_1 \lor \neg F_2}\]
+

+
+ +
+
+enumerator CNF_EQUIV_NEG1
+

Boolean – CNF – Equiv Negative 1

+
+\[\inferrule{- \mid F_1 = F_2}{(F_1 = F_2) \lor F_1 \lor F_2}\]
+

+
+ +
+
+enumerator CNF_EQUIV_NEG2
+

Boolean – CNF – Equiv Negative 2

+
+\[\inferrule{- \mid F_1 = F_2}{(F_1 = F_2) \lor \neg F_1 \lor \neg F_2}\]
+

+
+ +
+
+enumerator CNF_XOR_POS1
+

Boolean – CNF – XOR Positive 1

+
+\[\inferrule{- \mid F_1 \xor F_2}{\neg(F_1 \xor F_2) \lor F_1 \lor F_2}\]
+

+
+ +
+
+enumerator CNF_XOR_POS2
+

Boolean – CNF – XOR Positive 2

+
+\[\inferrule{- \mid F_1 \xor F_2}{\neg(F_1 \xor F_2) \lor \neg F_1 \lor +\neg F_2}\]
+

+
+ +
+
+enumerator CNF_XOR_NEG1
+

Boolean – CNF – XOR Negative 1

+
+\[\inferrule{- \mid F_1 \xor F_2}{(F_1 \xor F_2) \lor \neg F_1 \lor F_2}\]
+

+
+ +
+
+enumerator CNF_XOR_NEG2
+

Boolean – CNF – XOR Negative 2

+
+\[\inferrule{- \mid F_1 \xor F_2}{(F_1 \xor F_2) \lor F_1 \lor \neg F_2}\]
+

+
+ +
+
+enumerator CNF_ITE_POS1
+

Boolean – CNF – ITE Positive 1

+
+\[\inferrule{- \mid (\ite{C}{F_1}{F_2})}{\neg(\ite{C}{F_1}{F_2}) \lor \neg +C \lor F_1}\]
+

+
+ +
+
+enumerator CNF_ITE_POS2
+

Boolean – CNF – ITE Positive 2

+
+\[\inferrule{- \mid (\ite{C}{F_1}{F_2})}{\neg(\ite{C}{F_1}{F_2}) \lor C +\lor F_2}\]
+

+
+ +
+
+enumerator CNF_ITE_POS3
+

Boolean – CNF – ITE Positive 3

+
+\[\inferrule{- \mid (\ite{C}{F_1}{F_2})}{\neg(\ite{C}{F_1}{F_2}) \lor F_1 +\lor F_2}\]
+

+
+ +
+
+enumerator CNF_ITE_NEG1
+

Boolean – CNF – ITE Negative 1

+
+\[\inferrule{- \mid (\ite{C}{F_1}{F_2})}{(\ite{C}{F_1}{F_2}) \lor \neg C +\lor \neg F_1}\]
+

+
+ +
+
+enumerator CNF_ITE_NEG2
+

Boolean – CNF – ITE Negative 2

+
+\[\inferrule{- \mid (\ite{C}{F_1}{F_2})}{(\ite{C}{F_1}{F_2}) \lor C \lor +\neg F_2}\]
+

+
+ +
+
+enumerator CNF_ITE_NEG3
+

Boolean – CNF – ITE Negative 3

+
+\[\inferrule{- \mid (\ite{C}{F_1}{F_2})}{(\ite{C}{F_1}{F_2}) \lor \neg F_1 +\lor \neg F_2}\]
+

+
+ +
+
+enumerator REFL
+

Equality – Reflexivity

+
+\[\inferrule{-\mid t}{t = t}\]
+

+
+ +
+
+enumerator SYMM
+

Equality – Symmetry

+
+\[\inferrule{t_1 = t_2\mid -}{t_2 = t_1}\]
+

or

+
+\[\inferrule{t_1 \neq t_2\mid -}{t_2 \neq t_1}\]
+

+
+ +
+
+enumerator TRANS
+

Equality – Transitivity

+
+\[\inferrule{t_1=t_2,\dots,t_{n-1}=t_n\mid -}{t_1 = t_n}\]
+

+
+ +
+
+enumerator CONG
+

Equality – Congruence

+
+\[\inferrule{t_1=s_1,\dots,t_n=s_n\mid k, f?}{k(f?, t_1,\dots, t_n) = +k(f?, s_1,\dots, s_n)}\]
+

where \(k\) is the application kind. Notice that \(f\) must be +provided iff \(k\) is a parameterized kind, e.g. +cvc5::Kind::APPLY_UF. The actual node for +\(k\) is constructible via ProofRuleChecker::mkKindNode. +If \(k\) is a binder kind (e.g. cvc5::Kind::FORALL) then \(f\) +is a term of kind cvc5::Kind::VARIABLE_LIST +denoting the variables bound by both sides of the conclusion. +This rule is used for kinds that have a fixed arity, such as +cvc5::Kind::ITE, cvc5::Kind::EQUAL, and so on. It is also used for +cvc5::Kind::APPLY_UF where \(f\) must be provided. +It is not used for equality between +cvc5::Kind::HO_APPLY terms, which should +use the HO_CONG proof rule.

+

+
+ +
+
+enumerator NARY_CONG
+

Equality – N-ary Congruence

+
+\[\inferrule{t_1=s_1,\dots,t_n=s_n\mid k}{k(t_1,\dots, t_n) = +k(s_1,\dots, s_n)}\]
+

where \(k\) is the application kind. The actual node for \(k\) is +constructible via ProofRuleChecker::mkKindNode. This rule is used for +kinds that have variadic arity, such as cvc5::Kind::AND, +cvc5::Kind::PLUS and so on.

+

+
+ +
+
+enumerator TRUE_INTRO
+

Equality – True intro

+
+\[\inferrule{F\mid -}{F = \top}\]
+

+
+ +
+
+enumerator TRUE_ELIM
+

Equality – True elim

+
+\[\inferrule{F=\top\mid -}{F}\]
+

+
+ +
+
+enumerator FALSE_INTRO
+

Equality – False intro

+
+\[\inferrule{\neg F\mid -}{F = \bot}\]
+

+
+ +
+
+enumerator FALSE_ELIM
+

Equality – False elim

+
+\[\inferrule{F=\bot\mid -}{\neg F}\]
+

+
+ +
+
+enumerator HO_APP_ENCODE
+

Equality – Higher-order application encoding

+
+\[\inferrule{-\mid t}{t=t'}\]
+

where t’ is the higher-order application that is equivalent to t, +as implemented by uf::TheoryUfRewriter::getHoApplyForApplyUf. +For details see theory/uf/theory_uf_rewriter.h

+

For example, this rule concludes \(f(x,y) = @( @(f,x), y)\), where +\(@\) is the HO_APPLY kind.

+

Note this rule can be treated as a +REFL when appropriate in +external proof formats.

+

+
+ +
+
+enumerator HO_CONG
+

Equality – Higher-order congruence

+
+\[\inferrule{f=g, t_1=s_1,\dots,t_n=s_n\mid k}{k(f, t_1,\dots, t_n) = +k(g, s_1,\dots, s_n)}\]
+

Notice that this rule is only used when the application kind \(k\) is +either cvc5::Kind::APPLY_UF or cvc5::Kind::HO_APPLY.

+

+
+ +
+
+enumerator ARRAYS_READ_OVER_WRITE
+

Arrays – Read over write

+
+\[\inferrule{i_1 \neq i_2\mid \mathit{select}(\mathit{store}(a,i_1,e),i_2)} +{\mathit{select}(\mathit{store}(a,i_1,e),i_2) = \mathit{select}(a,i_2)}\]
+

+
+ +
+
+enumerator ARRAYS_READ_OVER_WRITE_CONTRA
+

Arrays – Read over write, contrapositive

+
+\[\inferrule{\mathit{select}(\mathit{store}(a,i_2,e),i_1) \neq +\mathit{select}(a,i_1)\mid -}{i_1=i_2}\]
+

+
+ +
+
+enumerator ARRAYS_READ_OVER_WRITE_1
+

Arrays – Read over write 1

+
+\[\inferrule{-\mid \mathit{select}(\mathit{store}(a,i,e),i)} +{\mathit{select}(\mathit{store}(a,i,e),i)=e}\]
+

+
+ +
+
+enumerator ARRAYS_EXT
+

Arrays – Arrays extensionality

+
+\[\inferrule{a \neq b\mid -} +{\mathit{select}(a,k)\neq\mathit{select}(b,k)}\]
+

where \(k\) is the \(\texttt{ARRAY_DEQ_DIFF}\) skolem for (a, b).

+

+
+ +
+
+enumerator MACRO_BV_BITBLAST
+

Bit-vectors – (Macro) Bitblast

+
+\[\inferrule{-\mid t}{t = \texttt{bitblast}(t)}\]
+

where \(\texttt{bitblast}\) represents the result of the bit-blasted term as +a bit-vector consisting of the output bits of the bit-blasted circuit +representation of the term. Terms are bit-blasted according to the +strategies defined in theory/bv/bitblast/bitblast_strategies_template.h.

+

+
+ +
+
+enumerator BV_BITBLAST_STEP
+

Bit-vectors – Bitblast bit-vector constant, variable, and terms

+

For constant and variables:

+
+\[\inferrule{-\mid t}{t = \texttt{bitblast}(t)}\]
+

For terms:

+
+\[\inferrule{-\mid k(\texttt{bitblast}(t_1),\dots,\texttt{bitblast}(t_n))} +{k(\texttt{bitblast}(t_1),\dots,\texttt{bitblast}(t_n)) = +\texttt{bitblast}(t)}\]
+

where \(t\) is \(k(t_1,\dots,t_n)\).

+

+
+ +
+
+enumerator BV_EAGER_ATOM
+

Bit-vectors – Bit-vector eager atom

+
+\[\inferrule{-\mid F}{F = F[0]}\]
+

where \(F\) is of kind BITVECTOR_EAGER_ATOM.

+

+
+ +
+
+enumerator DT_SPLIT
+

Datatypes – Split

+
+\[\inferrule{-\mid t}{\mathit{is}_{C_1}(t)\vee\cdots\vee\mathit{is}_{C_n}(t)}\]
+

where \(C_1,\dots,C_n\) are all the constructors of the type of \(t\).

+

+
+ +
+
+enumerator DT_CLASH
+

Datatypes – Clash

+
+\[\inferruleSC{\mathit{is}_{C_i}(t), \mathit{is}_{C_j}(t)\mid -}{\bot} +{if $i\neq j$}\]
+

+
+ +
+
+enumerator SKOLEM_INTRO
+

Quantifiers – Skolem introduction

+
+\[\inferrule{-\mid k}{k = t}\]
+

where \(t\) is the unpurified form of skolem \(k\).

+

+
+ +
+
+enumerator SKOLEMIZE
+

Quantifiers – Skolemization

+
+\[\inferrule{\neg (\forall x_1\dots x_n.\> F)\mid -}{\neg F\sigma}\]
+

where \(\sigma\) maps \(x_1,\dots,x_n\) to their representative +skolems, which are skolems \(k_1,\dots,k_n\). For each \(k_i\), +its skolem identifier is QUANTIFIERS_SKOLEMIZE, +and its indices are \((\forall x_1\dots x_n.\> F)\) and \(x_i\).

+

+
+ +
+
+enumerator INSTANTIATE
+

Quantifiers – Instantiation

+
+\[\inferrule{\forall x_1\dots x_n.\> F\mid (t_1 \dots t_n), (id\, (t)?)?} +{F\{x_1\mapsto t_1,\dots,x_n\mapsto t_n\}}\]
+

The list of terms to instantiate \((t_1 \dots t_n)\) is provided as +an s-expression as the first argument. The optional argument \(id\) +indicates the inference id that caused the instantiation. The term +\(t\) indicates an additional term (e.g. the trigger) associated with +the instantiation, which depends on the id. If the id has prefix +QUANTIFIERS_INST_E_MATCHING, then \(t\) is the trigger that +generated the instantiation.

+

+
+ +
+
+enumerator ALPHA_EQUIV
+

Quantifiers – Alpha equivalence

+
+\[\inferruleSC{-\mid F, (y_1 \ldots y_n), (z_1,\dots, z_n)} +{F = F\{y_1\mapsto z_1,\dots,y_n\mapsto z_n\}} +{if $y_1,\dots,y_n, z_1,\dots,z_n$ are unique bound variables}\]
+

Notice that this rule is correct only when \(z_1,\dots,z_n\) are not +contained in \(FV(F) \setminus \{ y_1,\dots, y_n \}\), where +\(FV(\varphi)\) are the free variables of \(\varphi\). The internal +quantifiers proof checker does not currently check that this is the case.

+

+
+ +
+
+enumerator QUANT_VAR_REORDERING
+

Quantifiers – Variable reordering

+
+\[\inferrule{-\mid (\forall X.\> F) = (\forall Y.\> F)} +{(\forall X.\> F) = (\forall Y.\> F)}\]
+

where \(Y\) is a reordering of \(X\).

+

+
+ +
+
+enumerator SETS_SINGLETON_INJ
+

Sets – Singleton injectivity

+
+\[\inferrule{\mathit{set.singleton}(t) = \mathit{set.singleton}(s)\mid -}{t=s}\]
+

+
+ +
+
+enumerator SETS_EXT
+

Sets – Sets extensionality

+
+\[\inferrule{a \neq b\mid -} +{\mathit{set.member}(k,a)\neq\mathit{set.member}(k,b)}\]
+

where \(k\) is the \(\texttt{SETS_DEQ_DIFF}\) skolem for (a, b).

+

+
+ +
+
+enumerator SETS_FILTER_UP
+

Sets – Sets filter up

+
+\[\inferrule{\mathit{set.member}(x,a)\mid P} +{\mathit{set.member}(x, \mathit{set.filter}(P, a)) = P(x)}\]
+

+
+ +
+
+enumerator SETS_FILTER_DOWN
+

Sets – Sets filter down

+
+\[\inferrule{\mathit{set.member}(x,\mathit{set.filter}(P, a))\mid -} +{\mathit{set.member}(x,a) \wedge P(x)}\]
+

+
+ +
+
+enumerator CONCAT_EQ
+

Strings – Core rules – Concatenation equality

+
+\[\inferrule{(t_1\cdot\ldots \cdot t_n \cdot t) = (t_1 \cdot\ldots +\cdot t_n\cdot s)\mid b}{t = s}\]
+

where \(\cdot\) stands for string concatenation and \(b\) indicates +if the direction is reversed.

+

Notice that \(t\) or \(s\) may be empty, in which case they are +implicit in the concatenation above. For example, if the premise is +\(x\cdot z = x\), then this rule, with argument \(\bot\), concludes +\(z = \epsilon\).

+

Also note that constants are split, such that for \((\mathsf{'abc'} +\cdot x) = (\mathsf{'a'} \cdot y)\), this rule, with argument \(\bot\), +concludes \((\mathsf{'bc'} \cdot x) = y\). This splitting is done only +for constants such that Word::splitConstant returns non-null.

+

+
+ +
+
+enumerator CONCAT_UNIFY
+

Strings – Core rules – Concatenation unification

+
+\[\inferrule{(t_1\cdot t_2) = (s_1 \cdot s_2),\, \mathit{len}(t_1) = +\mathit{len}(s_1)\mid \bot}{t_1 = s_1}\]
+

Alternatively for the reverse:

+
+\[\inferrule{(t_1\cdot t_2) = (s_1 \cdot s_2),\, \mathit{len}(t_2) = +\mathit{len}(s_2)\mid \top}{t_2 = s_2}\]
+

+
+ +
+
+enumerator CONCAT_CONFLICT
+

Strings – Core rules – Concatenation conflict

+
+\[\inferrule{(c_1\cdot t) = (c_2 \cdot s)\mid b}{\bot}\]
+

where \(b\) indicates if the direction is reversed, \(c_1,\,c_2\) +are constants such that \(\texttt{Word::splitConstant}(c_1,c_2, +\mathit{index},b)\) is null, in other words, neither is a prefix of the +other. Note it may be the case that one side of the equality denotes the +empty string.

+

This rule is used exclusively for strings.

+

+
+ +
+
+enumerator CONCAT_CONFLICT_DEQ
+

Strings – Core rules – Concatenation conflict for disequal characters

+
+\[\inferrule{(t_1\cdot t) = (s_1 \cdot s), t_1 \neq s_1 \mid b}{\bot}\]
+

where \(t_1\) and \(s_1\) are constants of length one, or otherwise one side +of the equality is the empty sequence and \(t_1\) or \(s_1\) corresponding to +that side is the empty sequence.

+

This rule is used exclusively for sequences.

+

+
+ +
+
+enumerator CONCAT_SPLIT
+

Strings – Core rules – Concatenation split

+
+\[\inferruleSC{(t_1\cdot t_2) = (s_1 \cdot s_2),\, +\mathit{len}(t_1) \neq \mathit{len}(s_1)\mid b}{((t_1 = s_1\cdot r) +\vee (s_1 = t_1\cdot r)) \wedge r \neq \epsilon \wedge \mathit{len}(r)>0}{if $b=\bot$}\]
+

where \(r\) is the purification skolem for +\(\mathit{ite}( +\mathit{len}(t_1) >= \mathit{len}(s_1), +\mathit{suf}(t_1,\mathit{len}(s_1)), +\mathit{suf}(s_1,\mathit{len}(t_1)))\) +and \(\epsilon\) is the empty string (or sequence).

+
+\[\inferruleSC{(t_1\cdot t_2) = (s_1 \cdot s_2),\, +\mathit{len}(t_2) \neq \mathit{len}(s_2)\mid b}{((t_2 = r \cdot s_2) +\vee (s_2 = r \cdot t_2)) \wedge r \neq \epsilon \wedge \mathit{len}(r)>0}{if $b=\top$}\]
+

where \(r\) is the purification Skolem for +\(\mathit{ite}( +\mathit{len}(t_2) >= \mathit{len}(s_2), +\mathit{pre}(t_2,\mathit{len}(t_2) - \mathit{len}(s_2)), +\mathit{pre}(s_2,\mathit{len}(s_2) - \mathit{len}(t_2)))\) +and \(\epsilon\) is the empty string (or sequence).

+

Above, \(\mathit{suf}(x,n)\) is shorthand for +\(\mathit{substr}(x,n, \mathit{len}(x) - n)\) and +\(\mathit{pre}(x,n)\) is shorthand for \(\mathit{substr}(x,0,n)\).

+

+
+ +
+
+enumerator CONCAT_CSPLIT
+

Strings – Core rules – Concatenation split for constants

+
+\[\inferrule{(t_1\cdot t_2) = (c \cdot s_2),\, +\mathit{len}(t_1) \neq 0\mid \bot}{(t_1 = c\cdot r)}\]
+

where \(r\) is the purification skolem for \(\mathit{suf}(t_1,1)\).

+

Alternatively for the reverse:

+
+\[\inferrule{(t_1\cdot t_2) = (s_1 \cdot c),\, +\mathit{len}(t_2) \neq 0\mid \top}{(t_2 = r\cdot c)}\]
+

where \(r\) is the purification skolem for +\(\mathit{pre}(t_2,\mathit{len}(t_2) - 1)\).

+

+
+ +
+
+enumerator CONCAT_LPROP
+

Strings – Core rules – Concatenation length propagation

+
+\[\inferrule{(t_1\cdot t_2) = (s_1 \cdot s_2),\, +\mathit{len}(t_1) > \mathit{len}(s_1)\mid \bot}{(t_1 = s_1\cdot r)}\]
+

where \(r\) is the purification Skolem for +\(\mathit{ite}( +\mathit{len}(t_1) >= \mathit{len}(s_1), +\mathit{suf}(t_1,\mathit{len}(s_1)), +\mathit{suf}(s_1,\mathit{len}(t_1)))\).

+

Alternatively for the reverse:

+
+\[\inferrule{(t_1\cdot t_2) = (s_1 \cdot s_2),\, +\mathit{len}(t_2) > \mathit{len}(s_2)\mid \top}{(t_2 = r \cdot s_2)}\]
+

where \(r\) is the purification Skolem for +\(\mathit{ite}( +\mathit{len}(t_2) >= \mathit{len}(s_2), +\mathit{pre}(t_2,\mathit{len}(t_2) - \mathit{len}(s_2)), +\mathit{pre}(s_2,\mathit{len}(s_2) - \mathit{len}(t_2)))\)

+

+
+ +
+
+enumerator CONCAT_CPROP
+

Strings – Core rules – Concatenation constant propagation

+
+\[\inferrule{(t_1\cdot w_1\cdot t_2) = (w_2 \cdot s),\, +\mathit{len}(t_1) \neq 0\mid \bot}{(t_1 = t_3\cdot r)}\]
+

where \(w_1,\,w_2\) are words, \(t_3\) is +\(\mathit{pre}(w_2,p)\), \(p\) is +\(\texttt{Word::overlap}(\mathit{suf}(w_2,1), w_1)\), and \(r\) is +the purification skolem for +\(\mathit{suf}(t_1,\mathit{len}(w_3))\). Note that +\(\mathit{suf}(w_2,p)\) is the largest suffix of +\(\mathit{suf}(w_2,1)\) that can contain a prefix of \(w_1\); since +\(t_1\) is non-empty, \(w_3\) must therefore be contained in +\(t_1\).

+

Alternatively for the reverse:

+
+\[\inferrule{(t_1\cdot w_1\cdot t_2) = (s \cdot w_2),\, +\mathit{len}(t_2) \neq 0\mid \top}{(t_2 = r\cdot t_3)}\]
+

where \(w_1,\,w_2\) are words, \(t_3\) is +\(\mathit{substr}(w_2, \mathit{len}(w_2) - p, p)\), \(p\) is +\(\texttt{Word::roverlap}(\mathit{pre}(w_2, \mathit{len}(w_2) - 1), +w_1)\), and \(r\) is the purification skolem for +\(\mathit{pre}(t_2,\mathit{len}(t_2) - \mathit{len}(w_3))\). Note that +\(\mathit{pre}(w_2, \mathit{len}(w_2) - p)\) is the largest prefix of +\(\mathit{pre}(w_2, \mathit{len}(w_2) - 1)\) that can contain a suffix +of \(w_1\); since \(t_2\) is non-empty, \(w_3\) must therefore +be contained in \(t_2\).

+

+
+ +
+
+enumerator STRING_DECOMPOSE
+

Strings – Core rules – String decomposition

+
+\[\inferrule{\mathit{len}(t) \geq n\mid \bot}{t = w_1\cdot w_2 \wedge +\mathit{len}(w_1) = n}\]
+

where \(w_1\) is the purification skolem for \(\mathit{pre}(t,n)\) +and \(w_2\) is the purification skolem for \(\mathit{suf}(t,n)\). +Or alternatively for the reverse:

+
+\[\inferrule{\mathit{len}(t) \geq n\mid \top}{t = w_1\cdot w_2 \wedge +\mathit{len}(w_2) = n}\]
+

where \(w_1\) is the purification skolem for \(\mathit{pre}(t,n)\) and +\(w_2\) is the purification skolem for \(\mathit{suf}(t,n)\).

+

+
+ +
+
+enumerator STRING_LENGTH_POS
+

Strings – Core rules – Length positive

+
+\[\inferrule{-\mid t}{(\mathit{len}(t) = 0\wedge t= \epsilon)\vee \mathit{len}(t) +> 0}\]
+

+
+ +
+
+enumerator STRING_LENGTH_NON_EMPTY
+

Strings – Core rules – Length non-empty

+
+\[\inferrule{t\neq \epsilon\mid -}{\mathit{len}(t) \neq 0}\]
+

+
+ +
+
+enumerator STRING_REDUCTION
+

Strings – Extended functions – Reduction

+
+\[\inferrule{-\mid t}{R\wedge t = w}\]
+

where \(w\) is \(\texttt{StringsPreprocess::reduce}(t, R, +\dots)\). For details, see +theory/strings/theory_strings_preprocess.h. +In other words, \(R\) is the reduction predicate for extended +term \(t\), and \(w\) is the purification skolem for \(t\).

+

Notice that the free variables of \(R\) are \(w\) and the free +variables of \(t\).

+

+
+ +
+
+enumerator STRING_EAGER_REDUCTION
+

Strings – Extended functions – Eager reduction

+
+\[\inferrule{-\mid t}{R}\]
+

where \(R\) is \(\texttt{TermRegistry::eagerReduce}(t)\). +For details, see theory/strings/term_registry.h.

+

+
+ +
+
+enumerator RE_INTER
+

Strings – Regular expressions – Intersection

+
+\[\inferrule{t\in R_1,\,t\in R_2\mid -}{t\in \mathit{re.inter}(R_1,R_2)}\]
+

+
+ +
+
+enumerator RE_UNFOLD_POS
+

Strings – Regular expressions – Positive Unfold

+
+\[\inferrule{t\in R\mid -}{F}\]
+

where \(F\) corresponds to the one-step unfolding of the premise. +This is implemented by \(\texttt{RegExpOpr::reduceRegExpPos}(t\in R)\).

+

+
+ +
+
+enumerator RE_UNFOLD_NEG
+

Strings – Regular expressions – Negative Unfold

+
+\[\inferrule{t \not \in \mathit{re}.\text{*}(R) \mid -}{t \neq \ \epsilon \ \wedge \forall L. L \leq 0 \vee \mathit{str.len}(t) < L \vee \mathit{pre}(t, L) \not \in R \vee \mathit{suf}(t, L) \not \in \mathit{re}.\text{*}(R)}\]
+

Or alternatively for regular expression concatenation:

+
+\[\inferrule{t \not \in \mathit{re}.\text{++}(R_1, \ldots, R_n)\mid -}{\forall L. L < 0 \vee \mathit{str.len}(t) < L \vee \mathit{pre}(t, L) \not \in R_1 \vee \mathit{suf}(t, L) \not \in \mathit{re}.\text{++}(R_2, \ldots, R_n)}\]
+

Note that in either case the varaible \(L\) has type \(Int\) and +name “@var.str_index”.

+

+
+ +
+
+enumerator RE_UNFOLD_NEG_CONCAT_FIXED
+

Strings – Regular expressions – Unfold negative concatenation, fixed

+
+\[ \inferrule{t\not\in \mathit{re}.\text{re.++}(r_1, \ldots, r_n) \mid \bot}{ +\mathit{pre}(t, L) \not \in r_1 \vee \mathit{suf}(t, L) \not \in \mathit{re}.\text{re.++}(r_2, \ldots, r_n)}\]
+

where \(r_1\) has fixed length \(L\).

+

or alternatively for the reverse:

+
+\[\inferrule{t \not \in \mathit{re}.\text{re.++}(r_1, \ldots, r_n) \mid \top}{ +\mathit{suf}(t, str.len(t) - L) \not \in r_n \vee +\mathit{pre}(t, str.len(t) - L) \not \in \mathit{re}.\text{re.++}(r_1, \ldots, r_{n-1})}\]
+

where \(r_n\) has fixed length \(L\).

+

+
+ +
+
+enumerator STRING_CODE_INJ
+

Strings – Code points

+
+\[\inferrule{-\mid t,s}{\mathit{to\_code}(t) = -1 \vee \mathit{to\_code}(t) \neq +\mathit{to\_code}(s) \vee t = s}\]
+

+
+ +
+
+enumerator STRING_SEQ_UNIT_INJ
+

Strings – Sequence unit

+
+\[\inferrule{\mathit{unit}(x) = \mathit{unit}(y)\mid -}{x = y}\]
+

Also applies to the case where \(\mathit{unit}(y)\) is a constant +sequence of length one.

+

+
+ +
+
+enumerator STRING_EXT
+

Strings – Extensionality

+
+\[\inferrule{s \neq t\mid -} +{\mathit{seq.len}(s) \neq \mathit{seq.len}(t) \vee (\mathit{seq.nth}(s,k)\neq\mathit{set.nth}(t,k) \wedge 0 \leq k \wedge k < \mathit{seq.len}(s))}\]
+

where \(s,t\) are terms of sequence type, \(k\) is the +\(\texttt{STRINGS_DEQ_DIFF}\) skolem for \(s,t\). Alternatively, +if \(s,t\) are terms of string type, we use +\(\mathit{seq.substr}(s,k,1)\) instead of \(\mathit{seq.nth}(s,k)\) +and similarly for \(t\).

+

+
+ +
+
+enumerator MACRO_STRING_INFERENCE
+

Strings – (Macro) String inference

+
+\[\inferrule{?\mid F,\mathit{id},\mathit{isRev},\mathit{exp}}{F}\]
+

used to bookkeep an inference that has not yet been converted via +\(\texttt{strings::InferProofCons::convert}\).

+

+
+ +
+
+enumerator MACRO_ARITH_SCALE_SUM_UB
+

Arithmetic – Adding inequalities

+

An arithmetic literal is a term of the form \(p \diamond c\) where +\(\diamond \in \{ <, \leq, =, \geq, > \}\), \(p\) a +polynomial and \(c\) a rational constant.

+
+\[\inferrule{l_1 \dots l_n \mid k_1 \dots k_n}{t_1 \diamond t_2}\]
+

where \(k_i \in \mathbb{R}, k_i \neq 0\), \(\diamond\) is the +fusion of the \(\diamond_i\) (flipping each if its \(k_i\) is +negative) such that \(\diamond_i \in \{ <, \leq \}\) (this implies that +lower bounds have negative \(k_i\) and upper bounds have positive +\(k_i\)), \(t_1\) is the sum of the scaled polynomials and +\(t_2\) is the sum of the scaled constants:

+
+\[ \begin{align}\begin{aligned}t_1 \colon= k_1 \cdot p_1 + \cdots + k_n \cdot p_n\\t_2 \colon= k_1 \cdot c_1 + \cdots + k_n \cdot c_n\end{aligned}\end{align} \]
+

+
+ +
+
+enumerator ARITH_MULT_ABS_COMPARISON
+

Arithmetic – Non-linear multiply absolute value comparison

+
+\[\inferrule{F_1 \dots F_n \mid -}{F}\]
+

where \(F\) is of the form +\(\left| t_1 \cdot t_n \right| \diamond \left| s_1 \cdot s_n \right|\). +If \(\diamond\) is \(=\), then each \(F_i\) is +\(\left| t_i \right| = \left| s_i \right|\).

+

If \(\diamond\) is \(>\), then +each \(F_i\) is either \(\left| t_i \right| > \left| s_i \right|\) or +\(\left| t_i \right| = \left| s_i \right| \land \left| t_i \right| \neq 0\), +and \(F_1\) is of the former form.

+

+
+ +
+
+enumerator ARITH_SUM_UB
+

Arithmetic – Sum upper bounds

+
+\[\inferrule{P_1 \dots P_n \mid -}{L \diamond R}\]
+

where \(P_i\) has the form \(L_i \diamond_i R_i\) and +\(\diamond_i \in \{<, \leq, =\}\). Furthermore \(\diamond = <\) if +\(\diamond_i = <\) for any \(i\) and \(\diamond = \leq\) +otherwise, \(L = L_1 + \cdots + L_n\) and \(R = R_1 + \cdots + R_n\).

+

+
+ +
+
+enumerator INT_TIGHT_UB
+

Arithmetic – Tighten strict integer upper bounds

+
+\[\inferrule{i < c \mid -}{i \leq \lfloor c \rfloor}\]
+

where \(i\) has integer type.

+

+
+ +
+
+enumerator INT_TIGHT_LB
+

Arithmetic – Tighten strict integer lower bounds

+
+\[\inferrule{i > c \mid -}{i \geq \lceil c \rceil}\]
+

where \(i\) has integer type.

+

+
+ +
+
+enumerator ARITH_TRICHOTOMY
+

Arithmetic – Trichotomy of the reals

+
+\[\inferrule{A, B \mid -}{C}\]
+

where \(\neg A, \neg B, C\) are \(x < c, x = c, x > c\) in some order. +Note that \(\neg\) here denotes arithmetic negation, i.e., flipping \(\geq\) to \(<\) etc.

+

+
+ +
+
+enumerator ARITH_REDUCTION
+

Arithmetic – Reduction

+
+\[\inferrule{- \mid t}{F}\]
+

where \(t\) is an application of an extended arithmetic operator (e.g. +division, modulus, cosine, sqrt, is_int, to_int) and \(F\) is the +reduction predicate for \(t\). In other words, \(F\) is a +predicate that is used to reduce reasoning about \(t\) to reasoning +about the core operators of arithmetic.

+

In detail, \(F\) is implemented by +\(\texttt{arith::OperatorElim::getAxiomFor(t)}\), see +theory/arith/operator_elim.h.

+

+
+ +
+
+enumerator ARITH_POLY_NORM
+

Arithmetic – Polynomial normalization

+
+\[\inferrule{- \mid t = s}{t = s}\]
+

where \(\texttt{arith::PolyNorm::isArithPolyNorm(t, s)} = \top\). This +method normalizes polynomials \(s\) and \(t\) over arithmetic or +bitvectors.

+

+
+ +
+
+enumerator ARITH_POLY_NORM_REL
+

Arithmetic – Polynomial normalization for relations

+
+\[\inferrule{c_x \cdot (x_1 - x_2) = c_y \cdot (y_1 - y_2) \mid \diamond} + {(x_1 \diamond x_2) = (y_1 \diamond y_2)}\]
+

where \(\diamond \in \{<, \leq, =, \geq, >\}\) for arithmetic and +\(\diamond \in \{=\}\) for bitvectors. \(c_x\) and \(c_y\) are +scaling factors. For \(<, \leq, \geq, >\), the scaling factors have the +same sign. For bitvectors, they are set to \(1\).

+

If \(c_x\) has type \(Real\) and \(x_1, x_2\) are of type +\(Int\), then \((x_1 - x_2)\) is wrapped in an application of +to_real, similarly for \((y_1 - y_2)\).

+

+
+ +
+
+enumerator ARITH_MULT_SIGN
+

Arithmetic – Sign inference

+
+\[\inferrule{- \mid f_1 \dots f_k, m}{(f_1 \land \dots \land f_k) \rightarrow m \diamond 0}\]
+

where \(f_1 \dots f_k\) are variables compared to zero (less, greater +or not equal), \(m\) is a monomial from these variables and +\(\diamond\) is the comparison (less or equal) that results from the +signs of the variables. All variables with even exponent in \(m\) +should be given as not equal to zero while all variables with odd exponent +in \(m\) should be given as less or greater than zero.

+

+
+ +
+
+enumerator ARITH_MULT_POS
+

Arithmetic – Multiplication with positive factor

+
+\[\inferrule{- \mid m, l \diamond r}{(m > 0 \land l \diamond r) \rightarrow m \cdot l \diamond m \cdot r}\]
+

where \(\diamond\) is a relation symbol.

+

+
+ +
+
+enumerator ARITH_MULT_NEG
+

Arithmetic – Multiplication with negative factor

+
+\[\inferrule{- \mid m, l \diamond r}{(m < 0 \land l \diamond r) \rightarrow m \cdot l \diamond_{inv} m \cdot r}\]
+

where \(\diamond\) is a relation symbol and \(\diamond_{inv}\) the +inverted relation symbol.

+

+
+ +
+
+enumerator ARITH_MULT_TANGENT
+

Arithmetic – Multiplication tangent plane

+
+\[ \begin{align}\begin{aligned}\inferruleSC{- \mid x, y, a, b, \sigma}{(t \leq tplane) = ((x \leq a \land y \geq b) \lor (x \geq a \land y \leq b))}{if $\sigma = \bot$}\\\inferruleSC{- \mid x, y, a, b, \sigma}{(t \geq tplane) = ((x \leq a \land y \leq b) \lor (x \geq a \land y \geq b))}{if $\sigma = \top$}\end{aligned}\end{align} \]
+

where \(x,y\) are real terms (variables or extended terms), +\(t = x \cdot y\), \(a,b\) are real +constants, \(\sigma \in \{ \top, \bot\}\) and \(tplane := b \cdot x + a \cdot y - a \cdot b\) is the tangent plane of \(x \cdot y\) at \((a,b)\).

+

+
+ +
+
+enumerator ARITH_TRANS_PI
+

Arithmetic – Transcendentals – Assert bounds on Pi

+
+\[\inferrule{- \mid l, u}{\texttt{real.pi} \geq l \land \texttt{real.pi} +\leq u}\]
+

where \(l,u\) are valid lower and upper bounds on \(\pi\).

+

+
+ +
+
+enumerator ARITH_TRANS_EXP_NEG
+

Arithmetic – Transcendentals – Exp at negative values

+
+\[\inferrule{- \mid t}{(t < 0) \leftrightarrow (\exp(t) < 1)}\]
+

+
+ +
+
+enumerator ARITH_TRANS_EXP_POSITIVITY
+

Arithmetic – Transcendentals – Exp is always positive

+
+\[\inferrule{- \mid t}{\exp(t) > 0}\]
+

+
+ +
+
+enumerator ARITH_TRANS_EXP_SUPER_LIN
+

Arithmetic – Transcendentals – Exp grows super-linearly for positive +values

+
+\[\inferrule{- \mid t}{t \leq 0 \lor \exp(t) > t+1}\]
+

+
+ +
+
+enumerator ARITH_TRANS_EXP_ZERO
+

Arithmetic – Transcendentals – Exp at zero

+
+\[\inferrule{- \mid t}{(t=0) \leftrightarrow (\exp(t) = 1)}\]
+

+
+ +
+
+enumerator ARITH_TRANS_EXP_APPROX_ABOVE_NEG
+

Arithmetic – Transcendentals – Exp is approximated from above for +negative values

+
+\[\inferrule{- \mid d,t,l,u}{(t \geq l \land t \leq u) \rightarrow exp(t) +\leq \texttt{secant}(\exp, l, u, t)}\]
+

where \(d\) is an even positive number, \(t\) an arithmetic term +and \(l,u\) are lower and upper bounds on \(t\). Let \(p\) be +the \(d\)’th taylor polynomial at zero (also called the Maclaurin +series) of the exponential function. \(\texttt{secant}(\exp, l, u, t)\) +denotes the secant of \(p\) from \((l, \exp(l))\) to \((u, +\exp(u))\) evaluated at \(t\), calculated as follows:

+
+\[\frac{p(l) - p(u)}{l - u} \cdot (t - l) + p(l)\]
+

The lemma states that if \(t\) is between \(l\) and \(u\), then +\(\exp(t\) is below the secant of \(p\) from \(l\) to +\(u\).

+

+
+ +
+
+enumerator ARITH_TRANS_EXP_APPROX_ABOVE_POS
+

Arithmetic – Transcendentals – Exp is approximated from above for +positive values

+
+\[\inferrule{- \mid d,t,l,u}{(t \geq l \land t \leq u) \rightarrow exp(t) +\leq \texttt{secant-pos}(\exp, l, u, t)}\]
+

where \(d\) is an even positive number, \(t\) an arithmetic term +and \(l,u\) are lower and upper bounds on \(t\). Let \(p^*\) be +a modification of the \(d\)’th taylor polynomial at zero (also called +the Maclaurin series) of the exponential function as follows where +\(p(d-1)\) is the regular Maclaurin series of degree \(d-1\):

+
+\[p^* := p(d-1) \cdot \frac{1 + t^n}{n!}\]
+

\(\texttt{secant-pos}(\exp, l, u, t)\) denotes the secant of \(p\) +from \((l, \exp(l))\) to \((u, \exp(u))\) evaluated at \(t\), +calculated as follows:

+
+\[\frac{p(l) - p(u)}{l - u} \cdot (t - l) + p(l)\]
+

The lemma states that if \(t\) is between \(l\) and \(u\), then +\(\exp(t\) is below the secant of \(p\) from \(l\) to +\(u\).

+

+
+ +
+
+enumerator ARITH_TRANS_EXP_APPROX_BELOW
+

Arithmetic – Transcendentals – Exp is approximated from below

+
+\[\inferrule{- \mid d,c,t}{t \geq c \rightarrow exp(t) \geq \texttt{maclaurin}(\exp, d, c)}\]
+

where \(d\) is an odd positive number, \(t\) an arithmetic term and +\(\texttt{maclaurin}(\exp, d, c)\) is the \(d\)’th taylor +polynomial at zero (also called the Maclaurin series) of the exponential +function evaluated at \(c\). The Maclaurin series for the exponential +function is the following:

+
+\[\exp(x) = \sum_{n=0}^{\infty} \frac{x^n}{n!}\]
+

+
+ +
+
+enumerator ARITH_TRANS_SINE_BOUNDS
+

Arithmetic – Transcendentals – Sine is always between -1 and 1

+
+\[\inferrule{- \mid t}{\sin(t) \leq 1 \land \sin(t) \geq -1}\]
+

+
+ +
+
+enumerator ARITH_TRANS_SINE_SHIFT
+

Arithmetic – Transcendentals – Sine is shifted to -pi…pi

+
+\[\inferrule{- \mid x}{-\pi \leq y \leq \pi \land \sin(y) = \sin(x) +\land (\ite{-\pi \leq x \leq \pi}{x = y}{x = y + 2 \pi s})}\]
+

where \(x\) is the argument to sine, \(y\) is a new real skolem +that is \(x\) shifted into \(-\pi \dots \pi\) and \(s\) is a +new integer skolem that is the number of phases \(y\) is shifted. +In particular, \(y\) is the +TRANSCENDENTAL_PURIFY_ARG +skolem for \(\sin(x)\) and \(s\) is the +TRANSCENDENTAL_SINE_PHASE_SHIFT +skolem for \(x\).

+

+
+ +
+
+enumerator ARITH_TRANS_SINE_SYMMETRY
+

Arithmetic – Transcendentals – Sine is symmetric with respect to +negation of the argument

+
+\[\inferrule{- \mid t}{\sin(t) - \sin(-t) = 0}\]
+

+
+ +
+
+enumerator ARITH_TRANS_SINE_TANGENT_ZERO
+

Arithmetic – Transcendentals – Sine is bounded by the tangent at zero

+
+\[\inferrule{- \mid t}{(t > 0 \rightarrow \sin(t) < t) \land (t < 0 +\rightarrow \sin(t) > t)} \]
+

+
+ +
+
+enumerator ARITH_TRANS_SINE_TANGENT_PI
+

Arithmetic – Transcendentals – Sine is bounded by the tangents at -pi +and pi

+
+\[\inferrule{- \mid t}{(t > -\pi \rightarrow \sin(t) > -\pi - t) \land (t < +\pi \rightarrow \sin(t) < \pi - t)} \]
+

+
+ +
+
+enumerator ARITH_TRANS_SINE_APPROX_ABOVE_NEG
+

Arithmetic – Transcendentals – Sine is approximated from above for +negative values

+
+\[\inferrule{- \mid d,t,lb,ub,l,u}{(t \geq lb land t \leq ub) \rightarrow +\sin(t) \leq \texttt{secant}(\sin, l, u, t)}\]
+

where \(d\) is an even positive number, \(t\) an arithmetic term, +\(lb,ub\) are symbolic lower and upper bounds on \(t\) (possibly +containing \(\pi\)) and \(l,u\) the evaluated lower and upper +bounds on \(t\). Let \(p\) be the \(d\)’th taylor polynomial at +zero (also called the Maclaurin series) of the sine function. +\(\texttt{secant}(\sin, l, u, t)\) denotes the secant of \(p\) from +\((l, \sin(l))\) to \((u, \sin(u))\) evaluated at \(t\), +calculated as follows:

+
+\[\frac{p(l) - p(u)}{l - u} \cdot (t - l) + p(l)\]
+

The lemma states that if \(t\) is between \(l\) and \(u\), then +\(\sin(t)\) is below the secant of \(p\) from \(l\) to +\(u\).

+

+
+ +
+
+enumerator ARITH_TRANS_SINE_APPROX_ABOVE_POS
+

Arithmetic – Transcendentals – Sine is approximated from above for +positive values

+
+\[\inferrule{- \mid d,t,c,lb,ub}{(t \geq lb land t \leq ub) \rightarrow +\sin(t) \leq \texttt{upper}(\sin, c)}\]
+

where \(d\) is an even positive number, \(t\) an arithmetic term, +\(c\) an arithmetic constant and \(lb,ub\) are symbolic lower and +upper bounds on \(t\) (possibly containing \(\pi\)). Let \(p\) +be the \(d\)’th taylor polynomial at zero (also called the Maclaurin +series) of the sine function. \(\texttt{upper}(\sin, c)\) denotes the +upper bound on \(\sin(c)\) given by \(p\) and \(lb,up\) such +that \(\sin(t)\) is the maximum of the sine function on +\((lb,ub)\).

+

+
+ +
+
+enumerator ARITH_TRANS_SINE_APPROX_BELOW_NEG
+

Arithmetic – Transcendentals – Sine is approximated from below for +negative values

+
+\[\inferrule{- \mid d,t,c,lb,ub}{(t \geq lb land t \leq ub) \rightarrow +\sin(t) \geq \texttt{lower}(\sin, c)}\]
+

where \(d\) is an even positive number, \(t\) an arithmetic term, +\(c\) an arithmetic constant and \(lb,ub\) are symbolic lower and +upper bounds on \(t\) (possibly containing \(\pi\)). Let \(p\) +be the \(d\)’th taylor polynomial at zero (also called the Maclaurin +series) of the sine function. \(\texttt{lower}(\sin, c)\) denotes the +lower bound on \(\sin(c)\) given by \(p\) and \(lb,up\) such +that \(\sin(t)\) is the minimum of the sine function on +\((lb,ub)\).

+

+
+ +
+
+enumerator ARITH_TRANS_SINE_APPROX_BELOW_POS
+

Arithmetic – Transcendentals – Sine is approximated from below for +positive values

+
+\[\inferrule{- \mid d,t,lb,ub,l,u}{(t \geq lb land t \leq ub) \rightarrow +\sin(t) \geq \texttt{secant}(\sin, l, u, t)}\]
+

where \(d\) is an even positive number, \(t\) an arithmetic term, +\(lb,ub\) are symbolic lower and upper bounds on \(t\) (possibly +containing \(\pi\)) and \(l,u\) the evaluated lower and upper +bounds on \(t\). Let \(p\) be the \(d\)’th taylor polynomial at +zero (also called the Maclaurin series) of the sine function. +\(\texttt{secant}(\sin, l, u, t)\) denotes the secant of \(p\) from +\((l, \sin(l))\) to \((u, \sin(u))\) evaluated at \(t\), +calculated as follows:

+
+\[\frac{p(l) - p(u)}{l - u} \cdot (t - l) + p(l)\]
+

The lemma states that if \(t\) is between \(l\) and \(u\), then +\(\sin(t)\) is above the secant of \(p\) from \(l\) to +\(u\).

+

+
+ +
+
+enumerator LFSC_RULE
+

External – LFSC

+

Place holder for LFSC rules.

+
+\[\inferrule{P_1, \dots, P_n\mid \texttt{id}, Q, A_1,\dots, A_m}{Q}\]
+

Note that the premises and arguments are arbitrary. It’s expected that +\(\texttt{id}\) refer to a proof rule in the external LFSC calculus.

+

+
+ +
+
+enumerator ALETHE_RULE
+

External – Alethe

+

Place holder for Alethe rules.

+
+\[\inferrule{P_1, \dots, P_n\mid \texttt{id}, Q, Q', A_1,\dots, A_m}{Q}\]
+

Note that the premises and arguments are arbitrary. It’s expected that +\(\texttt{id}\) refer to a proof rule in the external Alethe calculus, +and that \(Q'\) be the representation of Q to be printed by the Alethe +printer.

+

+
+ +
+
+enumerator UNKNOWN
+
+ +
+ +
+
+std::ostream &cvc5::operator<<(std::ostream &out, ProofRule rule)
+

Writes a proof rule name to a stream.

+
+
Parameters:
+
    +
  • out – The stream to write to

  • +
  • rule – The proof rule to write to the stream

  • +
+
+
Returns:
+

The stream

+
+
+
+ +
+
+std::string std::to_string(cvc5::ProofRule rule)
+

Converts a proof rule to a string.

+
+
Parameters:
+

rule – The proof rule

+
+
Returns:
+

The name of the proof rule

+
+
+
+ +
+
+template<>
struct hash<cvc5::ProofRule>
+

Hash function for ProofRules.

+
+

Public Functions

+
+
+size_t operator()(cvc5::ProofRule rule) const
+

Hashes a ProofRule to a size_t.

+
+
Parameters:
+

rule – The proof rule.

+
+
Returns:
+

The hash value.

+
+
+
+ +
+
+ +
+
+
+enum class cvc5::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 proof rule +and the THEORY_REWRITE +proof rule.

+

Values:

+
+
+enumerator NONE
+
+ +
+
+enumerator DISTINCT_ELIM
+

Builtin – Distinct elimination

+
+\[\texttt{distinct}(t_1, t_2) = \neg (t_1 = t2)\]
+

if \(n = 2\), or

+
+\[\texttt{distinct}(t_1, \ldots, tn) = \bigwedge_{i=1}^n \bigwedge_{j=i+1}^n t_i \neq t_j\]
+

if \(n > 2\)

+

+
+ +
+
+enumerator DISTINCT_CARD_CONFLICT
+

Builtin – Distinct cardinality conflict

+
+\[\texttt{distinct}(t_1, \ldots, tn) = \bot\]
+

where \(n\) is greater than the cardinality of the type of +\(t_1, \ldots, t_n\).

+

+
+ +
+
+enumerator BV_TO_NAT_ELIM
+

UF – Bitvector to natural elimination

+
+\[\texttt{bv2nat}(t) = t_1 + \ldots + t_n\]
+

where for \(i=1, \ldots, n\), \(t_i\) is +\(\texttt{ite}(x[i-1, i-1] = 1, 2^i, 0)\).

+

+
+ +
+
+enumerator INT_TO_BV_ELIM
+

UF – Integer to bitvector elimination

+
+\[\texttt{int2bv}_n(t) = (bvconcat t_1 \ldots t_n)\]
+

where for \(i=1, \ldots, n\), \(t_i\) is +\(\texttt{ite}(\texttt{mod}(t,2^n) \geq 2^{n-1}, 1, 0)\).

+

+
+ +
+
+enumerator MACRO_BOOL_NNF_NORM
+

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.

+

+
+ +
+
+enumerator MACRO_ARITH_STRING_PRED_ENTAIL
+

Arithmetic – strings predicate entailment

+
+\[(= s t) = c\]
+
+\[(>= s t) = c\]
+

where \(c\) is a Boolean constant. +This macro is elaborated by applications of EVALUATE, +ARITH_POLY_NORM, +ARITH_STRING_PRED_ENTAIL, +ARITH_STRING_PRED_SAFE_APPROX, +as well as other rewrites for normalizing arithmetic predicates.

+

+
+ +
+
+enumerator ARITH_STRING_PRED_ENTAIL
+

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.

+

+
+ +
+
+enumerator ARITH_STRING_PRED_SAFE_APPROX
+

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”.

+

+
+ +
+
+enumerator ARITH_POW_ELIM
+

Arithmetic – power elimination

+
+\[(x ^ c) = (x \cdot \ldots \cdot x)\]
+

where \(c\) is a non-negative integer.

+

+
+ +
+
+enumerator BETA_REDUCE
+

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 Node::substitute.

+

+
+ +
+
+enumerator LAMBDA_ELIM
+

Equality – Lambda elimination

+
+\[(\lambda x_1 \ldots x_n.\> f(x_1 \ldots x_n)) = f\]
+

+
+ +
+
+enumerator ARRAYS_SELECT_CONST
+

Arrays – Constant array select

+
+\[(select A x) = c\]
+

where \(A\) is a constant array storing element \(c\).

+

+
+ +
+
+enumerator MACRO_ARRAYS_DISTINCT_ARRAYS
+

Arrays – Macro distinct arrays

+
+\[(A = B) = \bot\]
+

where \(A\) and \(B\) are distinct array values, that is, +the Node::isConst method returns true for both.

+

+
+ +
+
+enumerator MACRO_ARRAYS_NORMALIZE_CONSTANT
+

Arrays – Macro normalize constant

+
+\[A = B\]
+

where \(B\) is the result of normalizing the array value \(A\) +into a canonical form, using the internal method +TheoryArraysRewriter::normalizeConstant.

+

+
+ +
+
+enumerator ARRAYS_EQ_RANGE_EXPAND
+

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)\]
+

+
+ +
+
+enumerator EXISTS_ELIM
+

Quantifiers – Exists elimination

+
+\[\exists x_1\dots x_n.\> F = \neg \forall x_1\dots x_n.\> \neg F\]
+

+
+ +
+
+enumerator QUANT_UNUSED_VARS
+

Quantifiers – Unused variables

+
+\[\forall X.\> F = \forall X_1.\> F\]
+

where \(X_1\) is the subset of \(X\) that appear free in \(F\) +and \(X_1\) does not contain duplicate variables.

+

+
+ +
+
+enumerator MACRO_QUANT_MERGE_PRENEX
+

Quantifiers – Macro merge prenex

+
+\[\forall X_1.\> \ldots \forall X_n.\> F = \forall X.\> F\]
+

where \(X_1 \ldots X_n\) are lists of variables and \(X\) is the +result of removing duplicates from \(X_1 \ldots X_n\).

+

+
+ +
+
+enumerator QUANT_MERGE_PRENEX
+

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.

+

+
+ +
+
+enumerator MACRO_QUANT_PRENEX
+

Quantifiers – Macro prenex

+
+\[(\forall X.\> F_1 \vee \cdots \vee (\forall Y.\> F_i) \vee \cdots \vee F_n) = (\forall X Z.\> F_1 \vee \cdots \vee F_i\{ Y \mapsto Z \} \vee \cdots \vee F_n)\]
+

+
+ +
+
+enumerator MACRO_QUANT_MINISCOPE
+

Quantifiers – Macro miniscoping

+
+\[\forall X.\> F_1 \wedge \cdots \wedge F_n = +G_1 \wedge \cdots \wedge G_n\]
+

where each \(G_i\) is semantically equivalent to +\(\forall X.\> F_i\), or alternatively

+
+\[\forall X.\> \ite{C}{F_1}{F_2} = \ite{C}{G_1}{G_2}\]
+

where \(C\) does not have any free variable in \(X\).

+

+
+ +
+
+enumerator QUANT_MINISCOPE_AND
+

Quantifiers – Miniscoping and

+
+\[\forall X.\> F_1 \wedge \ldots \wedge F_n = +(\forall X.\> F_1) \wedge \ldots \wedge (\forall X.\> F_n)\]
+

+
+ +
+
+enumerator QUANT_MINISCOPE_OR
+

Quantifiers – Miniscoping or

+
+\[\forall X.\> F_1 \vee \ldots \vee F_n = (\forall X_1.\> F_1) \vee \ldots \vee (\forall X_n.\> F_n)\]
+

where \(X = X_1 \ldots X_n\), and the right hand side does not have any +free variable in \(X\).

+

+
+ +
+
+enumerator QUANT_MINISCOPE_ITE
+

Quantifiers – Miniscoping ite

+
+\[\forall X.\> \ite{C}{F_1}{F_2} = \ite{C}{\forall X.\> F_1}{\forall X.\> F_2}\]
+

where \(C\) does not have any free variable in \(X\).

+

+
+ +
+
+enumerator QUANT_DT_SPLIT
+

Quantifiers – Datatypes Split

+
+\[(\forall x Y.\> F) = (\forall X_1 Y. F_1) \vee \cdots \vee (\forall X_n Y. F_n)\]
+

where \(x\) is of a datatype type with constructors +\(C_1, \ldots, C_n\), where for each \(i = 1, \ldots, n\), +\(F_i\) is \(F \{ x \mapsto C_i(X_i) \}\).

+

+
+ +
+
+enumerator MACRO_QUANT_PARTITION_CONNECTED_FV
+

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\).

+

+
+ +
+
+enumerator MACRO_QUANT_VAR_ELIM_EQ
+

Quantifiers – Macro variable elimination equality

+
+\[\forall x Y.\> F = \forall Y.\> F \{ x \mapsto t \}\]
+

where \(\neg F\) entails \(x = t\).

+

+
+ +
+
+enumerator QUANT_VAR_ELIM_EQ
+

Quantifiers – Macro variable elimination equality

+
+\[(\forall x.\> x \neq t \vee F) = F \{ x \mapsto t \}\]
+

or alternatively

+
+\[(\forall x.\> x \neq t) = \bot\]
+

+
+ +
+
+enumerator MACRO_QUANT_VAR_ELIM_INEQ
+

Quantifiers – Macro variable elimination inequality

+
+\[\forall x Y.\> F = \forall Y.\> G\]
+

where \(G\) is the result of replacing all literals containing +\(x\) with a constant. This is applied only when all such literals +are lower (resp. upper) bounds for \(x\).

+

+
+ +
+
+enumerator MACRO_QUANT_REWRITE_BODY
+

Quantifiers – Macro quantifiers rewrite body

+
+\[\forall X.\> F = \forall X.\> G\]
+

where \(G\) is semantically equivalent to \(F\).

+

+
+ +
+
+enumerator DT_INST
+

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\).

+

+
+ +
+
+enumerator DT_COLLAPSE_SELECTOR
+

Datatypes – collapse selector

+
+\[s_i(c(t_1, \ldots, t_n)) = t_i\]
+

where \(s_i\) is the \(i^{th}\) selector for constructor \(c\).

+

+
+ +
+
+enumerator DT_COLLAPSE_TESTER
+

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.

+

+
+ +
+
+enumerator DT_COLLAPSE_TESTER_SINGLETON
+

Datatypes – collapse tester

+
+\[\mathit{is}_c(t) = true\]
+

where \(c\) is the only constructor of its associated datatype.

+

+
+ +
+
+enumerator DT_CONS_EQ
+

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.

+

+
+ +
+
+enumerator DT_CYCLE
+

Datatypes – cycle

+
+\[(x = t[x]) = \bot\]
+

where all terms on the path to \(x\) in \(t[x]\) are applications +of constructors, and this path is non-empty.

+

+
+ +
+
+enumerator DT_COLLAPSE_UPDATER
+

Datatypes – collapse tester

+
+\[u_{c,i}(c(t_1, \ldots, t_i, \ldots, t_n), s) = c(t_1, \ldots, s, \ldots, t_n)\]
+

or alternatively

+
+\[u_{c,i}(d(t_1, \ldots, t_n), s) = d(t_1, \ldots, t_n)\]
+

where \(c\) and \(d\) are distinct constructors.

+

+
+ +
+
+enumerator DT_UPDATER_ELIM
+

Datatypes - updater elimination

+
+\[u_{c,i}(t, s) = ite(\mathit{is}_c(t), c(s_0(t), \ldots, s, \ldots s_n(t)), t)\]
+

where \(s_i\) is the \(i^{th}\) selector for constructor \(c\).

+

+
+ +
+
+enumerator DT_MATCH_ELIM
+

Datatypes – match elimination

+
+\[\texttt{match}(t ((p_1 c_1) \ldots (p_n c_n))) = \texttt{ite}(F_1, r_1, \texttt{ite}( \ldots, r_n))\]
+

where for \(i=1, \ldots, n\), \(F_1\) is a formula that holds iff +\(t\) matches \(p_i\) and \(r_i\) is the result of a +substitution on \(c_i\) based on this match.

+

+
+ +
+
+enumerator BV_UMULO_ELIMINATE
+

Bitvectors – Unsigned multiplication overflow detection elimination

+

See M.Gok, M.J. Schulte, P.I. Balzola, “Efficient integer multiplication +overflow detection circuits”, 2001. +http://ieeexplore.ieee.org/document/987767

+

+
+ +
+
+enumerator BV_SMULO_ELIMINATE
+

Bitvectors – Unsigned multiplication overflow detection elimination

+

See M.Gok, M.J. Schulte, P.I. Balzola, “Efficient integer multiplication +overflow detection circuits”, 2001. +http://ieeexplore.ieee.org/document/987767

+

+
+ +
+
+enumerator BV_ADD_COMBINE_LIKE_TERMS
+

Bitvectors – Combine like terms during addition by counting terms

+
+ +
+
+enumerator BV_MULT_SIMPLIFY
+

Bitvectors – Extract negations from multiplicands

+
+\[bvmul(bvneg(a),\ b,\ c) = bvneg(bvmul(a,\ b,\ c))\]
+

+
+ +
+
+enumerator BV_BITWISE_SLICING
+

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

+

+
+ +
+
+enumerator BV_REPEAT_ELIM
+

Bitvectors – Extract continuous substrings of bitvectors

+
+\[repeat(n,\ t) = concat(t ... t)\]
+

where \(t\) is repeated \(n\) times.

+

+
+ +
+
+enumerator RE_LOOP_ELIM
+

Strings – regular expression loop elimination

+
+\[re.loop_{l,u}(R) = re.union(R^l, \ldots, R^u)\]
+

where \(u \geq l\).

+

+
+ +
+
+enumerator RE_INTER_UNION_INCLUSION
+

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.

+

+
+ +
+
+enumerator STR_IN_RE_EVAL
+

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.

+

+
+ +
+
+enumerator STR_IN_RE_CONSUME
+

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\).

+

+
+ +
+
+enumerator STR_IN_RE_CONCAT_STAR_CHAR
+

Strings – string in regular expression concatenation star character

+
+\[\begin{split}\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))\end{split}\]
+

where all strings in \(R\) have length one.

+

+
+ +
+
+enumerator STR_IN_RE_SIGMA
+

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)\]
+

+
+ +
+
+enumerator STR_IN_RE_SIGMA_STAR
+

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{++}\).

+

+
+ +
+
+enumerator MACRO_SUBSTR_STRIP_SYM_LENGTH
+

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\).

+

+
+ +
+
+enumerator SETS_IS_EMPTY_EVAL
+

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.

+

+
+ +
+
+enumerator SETS_INSERT_ELIM
+

Sets – sets insert elimination

+
+\[\mathit{sets.insert}(t_1, \ldots, t_n, S) = \texttt{set.union}(\texttt{sets.singleton}(t_1), \ldots, \texttt{sets.singleton}(t_n), S)\]
+

+
+ +
+
+enumerator ARITH_MUL_ONE
+

Auto-generated from RARE rule arith-mul-one

+
+ +
+
+enumerator ARITH_MUL_ZERO
+

Auto-generated from RARE rule arith-mul-zero

+
+ +
+
+enumerator ARITH_DIV_TOTAL_REAL
+

Auto-generated from RARE rule arith-div-total-real

+
+ +
+
+enumerator ARITH_DIV_TOTAL_INT
+

Auto-generated from RARE rule arith-div-total-int

+
+ +
+
+enumerator ARITH_DIV_TOTAL_ZERO_REAL
+

Auto-generated from RARE rule arith-div-total-zero-real

+
+ +
+
+enumerator ARITH_DIV_TOTAL_ZERO_INT
+

Auto-generated from RARE rule arith-div-total-zero-int

+
+ +
+
+enumerator ARITH_INT_DIV_TOTAL
+

Auto-generated from RARE rule arith-int-div-total

+
+ +
+
+enumerator ARITH_INT_DIV_TOTAL_ONE
+

Auto-generated from RARE rule arith-int-div-total-one

+
+ +
+
+enumerator ARITH_INT_DIV_TOTAL_ZERO
+

Auto-generated from RARE rule arith-int-div-total-zero

+
+ +
+
+enumerator ARITH_INT_MOD_TOTAL
+

Auto-generated from RARE rule arith-int-mod-total

+
+ +
+
+enumerator ARITH_INT_MOD_TOTAL_ONE
+

Auto-generated from RARE rule arith-int-mod-total-one

+
+ +
+
+enumerator ARITH_INT_MOD_TOTAL_ZERO
+

Auto-generated from RARE rule arith-int-mod-total-zero

+
+ +
+
+enumerator ARITH_ELIM_GT
+

Auto-generated from RARE rule arith-elim-gt

+
+ +
+
+enumerator ARITH_ELIM_LT
+

Auto-generated from RARE rule arith-elim-lt

+
+ +
+
+enumerator ARITH_ELIM_INT_GT
+

Auto-generated from RARE rule arith-elim-int-gt

+
+ +
+
+enumerator ARITH_ELIM_INT_LT
+

Auto-generated from RARE rule arith-elim-int-lt

+
+ +
+
+enumerator ARITH_ELIM_LEQ
+

Auto-generated from RARE rule arith-elim-leq

+
+ +
+
+enumerator ARITH_LEQ_NORM
+

Auto-generated from RARE rule arith-leq-norm

+
+ +
+
+enumerator ARITH_GEQ_TIGHTEN
+

Auto-generated from RARE rule arith-geq-tighten

+
+ +
+
+enumerator ARITH_GEQ_NORM1_INT
+

Auto-generated from RARE rule arith-geq-norm1-int

+
+ +
+
+enumerator ARITH_GEQ_NORM1_REAL
+

Auto-generated from RARE rule arith-geq-norm1-real

+
+ +
+
+enumerator ARITH_GEQ_NORM2
+

Auto-generated from RARE rule arith-geq-norm2

+
+ +
+
+enumerator ARITH_REFL_LEQ
+

Auto-generated from RARE rule arith-refl-leq

+
+ +
+
+enumerator ARITH_REFL_LT
+

Auto-generated from RARE rule arith-refl-lt

+
+ +
+
+enumerator ARITH_REFL_GEQ
+

Auto-generated from RARE rule arith-refl-geq

+
+ +
+
+enumerator ARITH_REFL_GT
+

Auto-generated from RARE rule arith-refl-gt

+
+ +
+
+enumerator ARITH_EQ_ELIM_REAL
+

Auto-generated from RARE rule arith-eq-elim-real

+
+ +
+
+enumerator ARITH_EQ_ELIM_INT
+

Auto-generated from RARE rule arith-eq-elim-int

+
+ +
+
+enumerator ARITH_PLUS_FLATTEN
+

Auto-generated from RARE rule arith-plus-flatten

+
+ +
+
+enumerator ARITH_MULT_FLATTEN
+

Auto-generated from RARE rule arith-mult-flatten

+
+ +
+
+enumerator ARITH_MULT_DIST
+

Auto-generated from RARE rule arith-mult-dist

+
+ +
+
+enumerator ARITH_ABS_ELIM_INT
+

Auto-generated from RARE rule arith-abs-elim-int

+
+ +
+
+enumerator ARITH_ABS_ELIM_REAL
+

Auto-generated from RARE rule arith-abs-elim-real

+
+ +
+
+enumerator ARITH_TO_REAL_ELIM
+

Auto-generated from RARE rule arith-to-real-elim

+
+ +
+
+enumerator ARITH_TO_INT_ELIM_TO_REAL
+

Auto-generated from RARE rule arith-to-int-elim-to-real

+
+ +
+
+enumerator ARITH_DIV_ELIM_TO_REAL1
+

Auto-generated from RARE rule arith-div-elim-to-real1

+
+ +
+
+enumerator ARITH_DIV_ELIM_TO_REAL2
+

Auto-generated from RARE rule arith-div-elim-to-real2

+
+ +
+
+enumerator ARITH_SINE_ZERO
+

Auto-generated from RARE rule arith-sine-zero

+
+ +
+
+enumerator ARITH_SINE_PI2
+

Auto-generated from RARE rule arith-sine-pi2

+
+ +
+
+enumerator ARITH_COSINE_ELIM
+

Auto-generated from RARE rule arith-cosine-elim

+
+ +
+
+enumerator ARITH_TANGENT_ELIM
+

Auto-generated from RARE rule arith-tangent-elim

+
+ +
+
+enumerator ARITH_SECENT_ELIM
+

Auto-generated from RARE rule arith-secent-elim

+
+ +
+
+enumerator ARITH_COSECENT_ELIM
+

Auto-generated from RARE rule arith-cosecent-elim

+
+ +
+
+enumerator ARITH_COTANGENT_ELIM
+

Auto-generated from RARE rule arith-cotangent-elim

+
+ +
+
+enumerator ARITH_PI_NOT_INT
+

Auto-generated from RARE rule arith-pi-not-int

+
+ +
+
+enumerator ARITH_ABS_EQ
+

Auto-generated from RARE rule arith-abs-eq

+
+ +
+
+enumerator ARITH_ABS_INT_GT
+

Auto-generated from RARE rule arith-abs-int-gt

+
+ +
+
+enumerator ARITH_ABS_REAL_GT
+

Auto-generated from RARE rule arith-abs-real-gt

+
+ +
+
+enumerator ARRAY_READ_OVER_WRITE
+

Auto-generated from RARE rule array-read-over-write

+
+ +
+
+enumerator ARRAY_READ_OVER_WRITE2
+

Auto-generated from RARE rule array-read-over-write2

+
+ +
+
+enumerator ARRAY_STORE_OVERWRITE
+

Auto-generated from RARE rule array-store-overwrite

+
+ +
+
+enumerator ARRAY_STORE_SELF
+

Auto-generated from RARE rule array-store-self

+
+ +
+
+enumerator ARRAY_READ_OVER_WRITE_SPLIT
+

Auto-generated from RARE rule array-read-over-write-split

+
+ +
+
+enumerator BOOL_DOUBLE_NOT_ELIM
+

Auto-generated from RARE rule bool-double-not-elim

+
+ +
+
+enumerator BOOL_NOT_TRUE
+

Auto-generated from RARE rule bool-not-true

+
+ +
+
+enumerator BOOL_NOT_FALSE
+

Auto-generated from RARE rule bool-not-false

+
+ +
+
+enumerator BOOL_EQ_TRUE
+

Auto-generated from RARE rule bool-eq-true

+
+ +
+
+enumerator BOOL_EQ_FALSE
+

Auto-generated from RARE rule bool-eq-false

+
+ +
+
+enumerator BOOL_EQ_NREFL
+

Auto-generated from RARE rule bool-eq-nrefl

+
+ +
+
+enumerator BOOL_IMPL_FALSE1
+

Auto-generated from RARE rule bool-impl-false1

+
+ +
+
+enumerator BOOL_IMPL_FALSE2
+

Auto-generated from RARE rule bool-impl-false2

+
+ +
+
+enumerator BOOL_IMPL_TRUE1
+

Auto-generated from RARE rule bool-impl-true1

+
+ +
+
+enumerator BOOL_IMPL_TRUE2
+

Auto-generated from RARE rule bool-impl-true2

+
+ +
+
+enumerator BOOL_IMPL_ELIM
+

Auto-generated from RARE rule bool-impl-elim

+
+ +
+
+enumerator BOOL_OR_TRUE
+

Auto-generated from RARE rule bool-or-true

+
+ +
+
+enumerator BOOL_OR_FLATTEN
+

Auto-generated from RARE rule bool-or-flatten

+
+ +
+
+enumerator BOOL_AND_FALSE
+

Auto-generated from RARE rule bool-and-false

+
+ +
+
+enumerator BOOL_AND_FLATTEN
+

Auto-generated from RARE rule bool-and-flatten

+
+ +
+
+enumerator BOOL_AND_CONF
+

Auto-generated from RARE rule bool-and-conf

+
+ +
+
+enumerator BOOL_AND_CONF2
+

Auto-generated from RARE rule bool-and-conf2

+
+ +
+
+enumerator BOOL_OR_TAUT
+

Auto-generated from RARE rule bool-or-taut

+
+ +
+
+enumerator BOOL_OR_TAUT2
+

Auto-generated from RARE rule bool-or-taut2

+
+ +
+
+enumerator BOOL_OR_DE_MORGAN
+

Auto-generated from RARE rule bool-or-de-morgan

+
+ +
+
+enumerator BOOL_IMPLIES_DE_MORGAN
+

Auto-generated from RARE rule bool-implies-de-morgan

+
+ +
+
+enumerator BOOL_AND_DE_MORGAN
+

Auto-generated from RARE rule bool-and-de-morgan

+
+ +
+
+enumerator BOOL_OR_AND_DISTRIB
+

Auto-generated from RARE rule bool-or-and-distrib

+
+ +
+
+enumerator BOOL_XOR_REFL
+

Auto-generated from RARE rule bool-xor-refl

+
+ +
+
+enumerator BOOL_XOR_NREFL
+

Auto-generated from RARE rule bool-xor-nrefl

+
+ +
+
+enumerator BOOL_XOR_FALSE
+

Auto-generated from RARE rule bool-xor-false

+
+ +
+
+enumerator BOOL_XOR_TRUE
+

Auto-generated from RARE rule bool-xor-true

+
+ +
+
+enumerator BOOL_XOR_COMM
+

Auto-generated from RARE rule bool-xor-comm

+
+ +
+
+enumerator BOOL_XOR_ELIM
+

Auto-generated from RARE rule bool-xor-elim

+
+ +
+
+enumerator BOOL_NOT_XOR_ELIM
+

Auto-generated from RARE rule bool-not-xor-elim

+
+ +
+
+enumerator BOOL_NOT_EQ_ELIM1
+

Auto-generated from RARE rule bool-not-eq-elim1

+
+ +
+
+enumerator BOOL_NOT_EQ_ELIM2
+

Auto-generated from RARE rule bool-not-eq-elim2

+
+ +
+
+enumerator ITE_NEG_BRANCH
+

Auto-generated from RARE rule ite-neg-branch

+
+ +
+
+enumerator ITE_THEN_TRUE
+

Auto-generated from RARE rule ite-then-true

+
+ +
+
+enumerator ITE_ELSE_FALSE
+

Auto-generated from RARE rule ite-else-false

+
+ +
+
+enumerator ITE_THEN_FALSE
+

Auto-generated from RARE rule ite-then-false

+
+ +
+
+enumerator ITE_ELSE_TRUE
+

Auto-generated from RARE rule ite-else-true

+
+ +
+
+enumerator ITE_THEN_LOOKAHEAD_SELF
+

Auto-generated from RARE rule ite-then-lookahead-self

+
+ +
+
+enumerator ITE_ELSE_LOOKAHEAD_SELF
+

Auto-generated from RARE rule ite-else-lookahead-self

+
+ +
+
+enumerator ITE_THEN_LOOKAHEAD_NOT_SELF
+

Auto-generated from RARE rule ite-then-lookahead-not-self

+
+ +
+
+enumerator ITE_ELSE_LOOKAHEAD_NOT_SELF
+

Auto-generated from RARE rule ite-else-lookahead-not-self

+
+ +
+
+enumerator ITE_EXPAND
+

Auto-generated from RARE rule ite-expand

+
+ +
+
+enumerator BOOL_NOT_ITE_ELIM
+

Auto-generated from RARE rule bool-not-ite-elim

+
+ +
+
+enumerator ITE_TRUE_COND
+

Auto-generated from RARE rule ite-true-cond

+
+ +
+
+enumerator ITE_FALSE_COND
+

Auto-generated from RARE rule ite-false-cond

+
+ +
+
+enumerator ITE_NOT_COND
+

Auto-generated from RARE rule ite-not-cond

+
+ +
+
+enumerator ITE_EQ_BRANCH
+

Auto-generated from RARE rule ite-eq-branch

+
+ +
+
+enumerator ITE_THEN_LOOKAHEAD
+

Auto-generated from RARE rule ite-then-lookahead

+
+ +
+
+enumerator ITE_ELSE_LOOKAHEAD
+

Auto-generated from RARE rule ite-else-lookahead

+
+ +
+
+enumerator ITE_THEN_NEG_LOOKAHEAD
+

Auto-generated from RARE rule ite-then-neg-lookahead

+
+ +
+
+enumerator ITE_ELSE_NEG_LOOKAHEAD
+

Auto-generated from RARE rule ite-else-neg-lookahead

+
+ +
+
+enumerator BV_CONCAT_FLATTEN
+

Auto-generated from RARE rule bv-concat-flatten

+
+ +
+
+enumerator BV_CONCAT_EXTRACT_MERGE
+

Auto-generated from RARE rule bv-concat-extract-merge

+
+ +
+
+enumerator BV_EXTRACT_EXTRACT
+

Auto-generated from RARE rule bv-extract-extract

+
+ +
+
+enumerator BV_EXTRACT_WHOLE
+

Auto-generated from RARE rule bv-extract-whole

+
+ +
+
+enumerator BV_EXTRACT_CONCAT_1
+

Auto-generated from RARE rule bv-extract-concat-1

+
+ +
+
+enumerator BV_EXTRACT_CONCAT_2
+

Auto-generated from RARE rule bv-extract-concat-2

+
+ +
+
+enumerator BV_EXTRACT_CONCAT_3
+

Auto-generated from RARE rule bv-extract-concat-3

+
+ +
+
+enumerator BV_EXTRACT_CONCAT_4
+

Auto-generated from RARE rule bv-extract-concat-4

+
+ +
+
+enumerator BV_EQ_EXTRACT_ELIM1
+

Auto-generated from RARE rule bv-eq-extract-elim1

+
+ +
+
+enumerator BV_EQ_EXTRACT_ELIM2
+

Auto-generated from RARE rule bv-eq-extract-elim2

+
+ +
+
+enumerator BV_EQ_EXTRACT_ELIM3
+

Auto-generated from RARE rule bv-eq-extract-elim3

+
+ +
+
+enumerator BV_EXTRACT_BITWISE_AND
+

Auto-generated from RARE rule bv-extract-bitwise-and

+
+ +
+
+enumerator BV_EXTRACT_BITWISE_OR
+

Auto-generated from RARE rule bv-extract-bitwise-or

+
+ +
+
+enumerator BV_EXTRACT_BITWISE_XOR
+

Auto-generated from RARE rule bv-extract-bitwise-xor

+
+ +
+
+enumerator BV_EXTRACT_NOT
+

Auto-generated from RARE rule bv-extract-not

+
+ +
+
+enumerator BV_EXTRACT_SIGN_EXTEND_1
+

Auto-generated from RARE rule bv-extract-sign-extend-1

+
+ +
+
+enumerator BV_EXTRACT_SIGN_EXTEND_2
+

Auto-generated from RARE rule bv-extract-sign-extend-2

+
+ +
+
+enumerator BV_EXTRACT_SIGN_EXTEND_3
+

Auto-generated from RARE rule bv-extract-sign-extend-3

+
+ +
+
+enumerator BV_NEG_MULT
+

Auto-generated from RARE rule bv-neg-mult

+
+ +
+
+enumerator BV_NEG_ADD
+

Auto-generated from RARE rule bv-neg-add

+
+ +
+
+enumerator BV_MULT_DISTRIB_CONST_NEG
+

Auto-generated from RARE rule bv-mult-distrib-const-neg

+
+ +
+
+enumerator BV_MULT_DISTRIB_CONST_ADD
+

Auto-generated from RARE rule bv-mult-distrib-const-add

+
+ +
+
+enumerator BV_MULT_DISTRIB_CONST_SUB
+

Auto-generated from RARE rule bv-mult-distrib-const-sub

+
+ +
+
+enumerator BV_MULT_DISTRIB_1
+

Auto-generated from RARE rule bv-mult-distrib-1

+
+ +
+
+enumerator BV_MULT_DISTRIB_2
+

Auto-generated from RARE rule bv-mult-distrib-2

+
+ +
+
+enumerator BV_NOT_XOR
+

Auto-generated from RARE rule bv-not-xor

+
+ +
+
+enumerator BV_AND_SIMPLIFY_1
+

Auto-generated from RARE rule bv-and-simplify-1

+
+ +
+
+enumerator BV_AND_SIMPLIFY_2
+

Auto-generated from RARE rule bv-and-simplify-2

+
+ +
+
+enumerator BV_OR_SIMPLIFY_1
+

Auto-generated from RARE rule bv-or-simplify-1

+
+ +
+
+enumerator BV_OR_SIMPLIFY_2
+

Auto-generated from RARE rule bv-or-simplify-2

+
+ +
+
+enumerator BV_XOR_SIMPLIFY_1
+

Auto-generated from RARE rule bv-xor-simplify-1

+
+ +
+
+enumerator BV_XOR_SIMPLIFY_2
+

Auto-generated from RARE rule bv-xor-simplify-2

+
+ +
+
+enumerator BV_XOR_SIMPLIFY_3
+

Auto-generated from RARE rule bv-xor-simplify-3

+
+ +
+
+enumerator BV_ULT_ADD_ONE
+

Auto-generated from RARE rule bv-ult-add-one

+
+ +
+
+enumerator BV_CONCAT_TO_MULT
+

Auto-generated from RARE rule bv-concat-to-mult

+
+ +
+
+enumerator BV_MULT_SLT_MULT_1
+

Auto-generated from RARE rule bv-mult-slt-mult-1

+
+ +
+
+enumerator BV_MULT_SLT_MULT_2
+

Auto-generated from RARE rule bv-mult-slt-mult-2

+
+ +
+
+enumerator BV_COMMUTATIVE_AND
+

Auto-generated from RARE rule bv-commutative-and

+
+ +
+
+enumerator BV_COMMUTATIVE_OR
+

Auto-generated from RARE rule bv-commutative-or

+
+ +
+
+enumerator BV_COMMUTATIVE_XOR
+

Auto-generated from RARE rule bv-commutative-xor

+
+ +
+
+enumerator BV_COMMUTATIVE_MUL
+

Auto-generated from RARE rule bv-commutative-mul

+
+ +
+
+enumerator BV_OR_ZERO
+

Auto-generated from RARE rule bv-or-zero

+
+ +
+
+enumerator BV_MUL_ONE
+

Auto-generated from RARE rule bv-mul-one

+
+ +
+
+enumerator BV_MUL_ZERO
+

Auto-generated from RARE rule bv-mul-zero

+
+ +
+
+enumerator BV_ADD_ZERO
+

Auto-generated from RARE rule bv-add-zero

+
+ +
+
+enumerator BV_ADD_TWO
+

Auto-generated from RARE rule bv-add-two

+
+ +
+
+enumerator BV_ZERO_EXTEND_ELIMINATE_0
+

Auto-generated from RARE rule bv-zero-extend-eliminate-0

+
+ +
+
+enumerator BV_SIGN_EXTEND_ELIMINATE_0
+

Auto-generated from RARE rule bv-sign-extend-eliminate-0

+
+ +
+
+enumerator BV_NOT_NEQ
+

Auto-generated from RARE rule bv-not-neq

+
+ +
+
+enumerator BV_ULT_ONES
+

Auto-generated from RARE rule bv-ult-ones

+
+ +
+
+enumerator BV_OR_FLATTEN
+

Auto-generated from RARE rule bv-or-flatten

+
+ +
+
+enumerator BV_XOR_FLATTEN
+

Auto-generated from RARE rule bv-xor-flatten

+
+ +
+
+enumerator BV_AND_FLATTEN
+

Auto-generated from RARE rule bv-and-flatten

+
+ +
+
+enumerator BV_MUL_FLATTEN
+

Auto-generated from RARE rule bv-mul-flatten

+
+ +
+
+enumerator BV_CONCAT_MERGE_CONST
+

Auto-generated from RARE rule bv-concat-merge-const

+
+ +
+
+enumerator BV_COMMUTATIVE_ADD
+

Auto-generated from RARE rule bv-commutative-add

+
+ +
+
+enumerator BV_NEG_SUB
+

Auto-generated from RARE rule bv-neg-sub

+
+ +
+
+enumerator BV_NEG_IDEMP
+

Auto-generated from RARE rule bv-neg-idemp

+
+ +
+
+enumerator BV_SUB_ELIMINATE
+

Auto-generated from RARE rule bv-sub-eliminate

+
+ +
+
+enumerator BV_UGT_ELIMINATE
+

Auto-generated from RARE rule bv-ugt-eliminate

+
+ +
+
+enumerator BV_UGE_ELIMINATE
+

Auto-generated from RARE rule bv-uge-eliminate

+
+ +
+
+enumerator BV_SGT_ELIMINATE
+

Auto-generated from RARE rule bv-sgt-eliminate

+
+ +
+
+enumerator BV_SGE_ELIMINATE
+

Auto-generated from RARE rule bv-sge-eliminate

+
+ +
+
+enumerator BV_SLT_ELIMINATE
+

Auto-generated from RARE rule bv-slt-eliminate

+
+ +
+
+enumerator BV_SLE_ELIMINATE
+

Auto-generated from RARE rule bv-sle-eliminate

+
+ +
+
+enumerator BV_REDOR_ELIMINATE
+

Auto-generated from RARE rule bv-redor-eliminate

+
+ +
+
+enumerator BV_REDAND_ELIMINATE
+

Auto-generated from RARE rule bv-redand-eliminate

+
+ +
+
+enumerator BV_ULE_ELIMINATE
+

Auto-generated from RARE rule bv-ule-eliminate

+
+ +
+
+enumerator BV_COMP_ELIMINATE
+

Auto-generated from RARE rule bv-comp-eliminate

+
+ +
+
+enumerator BV_ROTATE_LEFT_ELIMINATE_1
+

Auto-generated from RARE rule bv-rotate-left-eliminate-1

+
+ +
+
+enumerator BV_ROTATE_LEFT_ELIMINATE_2
+

Auto-generated from RARE rule bv-rotate-left-eliminate-2

+
+ +
+
+enumerator BV_ROTATE_RIGHT_ELIMINATE_1
+

Auto-generated from RARE rule bv-rotate-right-eliminate-1

+
+ +
+
+enumerator BV_ROTATE_RIGHT_ELIMINATE_2
+

Auto-generated from RARE rule bv-rotate-right-eliminate-2

+
+ +
+
+enumerator BV_NAND_ELIMINATE
+

Auto-generated from RARE rule bv-nand-eliminate

+
+ +
+
+enumerator BV_NOR_ELIMINATE
+

Auto-generated from RARE rule bv-nor-eliminate

+
+ +
+
+enumerator BV_XNOR_ELIMINATE
+

Auto-generated from RARE rule bv-xnor-eliminate

+
+ +
+
+enumerator BV_SDIV_ELIMINATE
+

Auto-generated from RARE rule bv-sdiv-eliminate

+
+ +
+
+enumerator BV_SDIV_ELIMINATE_FEWER_BITWISE_OPS
+

Auto-generated from RARE rule bv-sdiv-eliminate-fewer-bitwise-ops

+
+ +
+
+enumerator BV_ZERO_EXTEND_ELIMINATE
+

Auto-generated from RARE rule bv-zero-extend-eliminate

+
+ +
+
+enumerator BV_SIGN_EXTEND_ELIMINATE
+

Auto-generated from RARE rule bv-sign-extend-eliminate

+
+ +
+
+enumerator BV_UADDO_ELIMINATE
+

Auto-generated from RARE rule bv-uaddo-eliminate

+
+ +
+
+enumerator BV_SADDO_ELIMINATE
+

Auto-generated from RARE rule bv-saddo-eliminate

+
+ +
+
+enumerator BV_SDIVO_ELIMINATE
+

Auto-generated from RARE rule bv-sdivo-eliminate

+
+ +
+
+enumerator BV_SMOD_ELIMINATE
+

Auto-generated from RARE rule bv-smod-eliminate

+
+ +
+
+enumerator BV_SMOD_ELIMINATE_FEWER_BITWISE_OPS
+

Auto-generated from RARE rule bv-smod-eliminate-fewer-bitwise-ops

+
+ +
+
+enumerator BV_SREM_ELIMINATE
+

Auto-generated from RARE rule bv-srem-eliminate

+
+ +
+
+enumerator BV_SREM_ELIMINATE_FEWER_BITWISE_OPS
+

Auto-generated from RARE rule bv-srem-eliminate-fewer-bitwise-ops

+
+ +
+
+enumerator BV_USUBO_ELIMINATE
+

Auto-generated from RARE rule bv-usubo-eliminate

+
+ +
+
+enumerator BV_SSUBO_ELIMINATE
+

Auto-generated from RARE rule bv-ssubo-eliminate

+
+ +
+
+enumerator BV_ITE_EQUAL_CHILDREN
+

Auto-generated from RARE rule bv-ite-equal-children

+
+ +
+
+enumerator BV_ITE_CONST_CHILDREN_1
+

Auto-generated from RARE rule bv-ite-const-children-1

+
+ +
+
+enumerator BV_ITE_CONST_CHILDREN_2
+

Auto-generated from RARE rule bv-ite-const-children-2

+
+ +
+
+enumerator BV_ITE_EQUAL_COND_1
+

Auto-generated from RARE rule bv-ite-equal-cond-1

+
+ +
+
+enumerator BV_ITE_EQUAL_COND_2
+

Auto-generated from RARE rule bv-ite-equal-cond-2

+
+ +
+
+enumerator BV_ITE_EQUAL_COND_3
+

Auto-generated from RARE rule bv-ite-equal-cond-3

+
+ +
+
+enumerator BV_ITE_MERGE_THEN_IF
+

Auto-generated from RARE rule bv-ite-merge-then-if

+
+ +
+
+enumerator BV_ITE_MERGE_ELSE_IF
+

Auto-generated from RARE rule bv-ite-merge-else-if

+
+ +
+
+enumerator BV_ITE_MERGE_THEN_ELSE
+

Auto-generated from RARE rule bv-ite-merge-then-else

+
+ +
+
+enumerator BV_ITE_MERGE_ELSE_ELSE
+

Auto-generated from RARE rule bv-ite-merge-else-else

+
+ +
+
+enumerator BV_SHL_BY_CONST_0
+

Auto-generated from RARE rule bv-shl-by-const-0

+
+ +
+
+enumerator BV_SHL_BY_CONST_1
+

Auto-generated from RARE rule bv-shl-by-const-1

+
+ +
+
+enumerator BV_SHL_BY_CONST_2
+

Auto-generated from RARE rule bv-shl-by-const-2

+
+ +
+
+enumerator BV_LSHR_BY_CONST_0
+

Auto-generated from RARE rule bv-lshr-by-const-0

+
+ +
+
+enumerator BV_LSHR_BY_CONST_1
+

Auto-generated from RARE rule bv-lshr-by-const-1

+
+ +
+
+enumerator BV_LSHR_BY_CONST_2
+

Auto-generated from RARE rule bv-lshr-by-const-2

+
+ +
+
+enumerator BV_ASHR_BY_CONST_0
+

Auto-generated from RARE rule bv-ashr-by-const-0

+
+ +
+
+enumerator BV_ASHR_BY_CONST_1
+

Auto-generated from RARE rule bv-ashr-by-const-1

+
+ +
+
+enumerator BV_ASHR_BY_CONST_2
+

Auto-generated from RARE rule bv-ashr-by-const-2

+
+ +
+
+enumerator BV_AND_CONCAT_PULLUP
+

Auto-generated from RARE rule bv-and-concat-pullup

+
+ +
+
+enumerator BV_OR_CONCAT_PULLUP
+

Auto-generated from RARE rule bv-or-concat-pullup

+
+ +
+
+enumerator BV_XOR_CONCAT_PULLUP
+

Auto-generated from RARE rule bv-xor-concat-pullup

+
+ +
+
+enumerator BV_BITWISE_IDEMP_1
+

Auto-generated from RARE rule bv-bitwise-idemp-1

+
+ +
+
+enumerator BV_BITWISE_IDEMP_2
+

Auto-generated from RARE rule bv-bitwise-idemp-2

+
+ +
+
+enumerator BV_AND_ZERO
+

Auto-generated from RARE rule bv-and-zero

+
+ +
+
+enumerator BV_AND_ONE
+

Auto-generated from RARE rule bv-and-one

+
+ +
+
+enumerator BV_OR_ONE
+

Auto-generated from RARE rule bv-or-one

+
+ +
+
+enumerator BV_XOR_DUPLICATE
+

Auto-generated from RARE rule bv-xor-duplicate

+
+ +
+
+enumerator BV_XOR_ONES
+

Auto-generated from RARE rule bv-xor-ones

+
+ +
+
+enumerator BV_XOR_ZERO
+

Auto-generated from RARE rule bv-xor-zero

+
+ +
+
+enumerator BV_BITWISE_NOT_AND
+

Auto-generated from RARE rule bv-bitwise-not-and

+
+ +
+
+enumerator BV_BITWISE_NOT_OR
+

Auto-generated from RARE rule bv-bitwise-not-or

+
+ +
+
+enumerator BV_XOR_NOT
+

Auto-generated from RARE rule bv-xor-not

+
+ +
+
+enumerator BV_NOT_IDEMP
+

Auto-generated from RARE rule bv-not-idemp

+
+ +
+
+enumerator BV_ULT_ZERO_1
+

Auto-generated from RARE rule bv-ult-zero-1

+
+ +
+
+enumerator BV_ULT_ZERO_2
+

Auto-generated from RARE rule bv-ult-zero-2

+
+ +
+
+enumerator BV_ULT_SELF
+

Auto-generated from RARE rule bv-ult-self

+
+ +
+
+enumerator BV_LT_SELF
+

Auto-generated from RARE rule bv-lt-self

+
+ +
+
+enumerator BV_ULE_SELF
+

Auto-generated from RARE rule bv-ule-self

+
+ +
+
+enumerator BV_ULE_ZERO
+

Auto-generated from RARE rule bv-ule-zero

+
+ +
+
+enumerator BV_ZERO_ULE
+

Auto-generated from RARE rule bv-zero-ule

+
+ +
+
+enumerator BV_SLE_SELF
+

Auto-generated from RARE rule bv-sle-self

+
+ +
+
+enumerator BV_ULE_MAX
+

Auto-generated from RARE rule bv-ule-max

+
+ +
+
+enumerator BV_NOT_ULT
+

Auto-generated from RARE rule bv-not-ult

+
+ +
+
+enumerator BV_NOT_ULE
+

Auto-generated from RARE rule bv-not-ule

+
+ +
+
+enumerator BV_NOT_SLE
+

Auto-generated from RARE rule bv-not-sle

+
+ +
+
+enumerator BV_MULT_POW2_1
+

Auto-generated from RARE rule bv-mult-pow2-1

+
+ +
+
+enumerator BV_MULT_POW2_2
+

Auto-generated from RARE rule bv-mult-pow2-2

+
+ +
+
+enumerator BV_MULT_POW2_2B
+

Auto-generated from RARE rule bv-mult-pow2-2b

+
+ +
+
+enumerator BV_EXTRACT_MULT_LEADING_BIT
+

Auto-generated from RARE rule bv-extract-mult-leading-bit

+
+ +
+
+enumerator BV_UDIV_POW2_NOT_ONE
+

Auto-generated from RARE rule bv-udiv-pow2-not-one

+
+ +
+
+enumerator BV_UDIV_ZERO
+

Auto-generated from RARE rule bv-udiv-zero

+
+ +
+
+enumerator BV_UDIV_ONE
+

Auto-generated from RARE rule bv-udiv-one

+
+ +
+
+enumerator BV_UREM_POW2_NOT_ONE
+

Auto-generated from RARE rule bv-urem-pow2-not-one

+
+ +
+
+enumerator BV_UREM_ONE
+

Auto-generated from RARE rule bv-urem-one

+
+ +
+
+enumerator BV_UREM_SELF
+

Auto-generated from RARE rule bv-urem-self

+
+ +
+
+enumerator BV_SHL_ZERO
+

Auto-generated from RARE rule bv-shl-zero

+
+ +
+
+enumerator BV_LSHR_ZERO
+

Auto-generated from RARE rule bv-lshr-zero

+
+ +
+
+enumerator BV_ASHR_ZERO
+

Auto-generated from RARE rule bv-ashr-zero

+
+ +
+
+enumerator BV_UGT_UREM
+

Auto-generated from RARE rule bv-ugt-urem

+
+ +
+
+enumerator BV_ULT_ONE
+

Auto-generated from RARE rule bv-ult-one

+
+ +
+
+enumerator BV_SLT_ZERO
+

Auto-generated from RARE rule bv-slt-zero

+
+ +
+
+enumerator BV_MERGE_SIGN_EXTEND_1
+

Auto-generated from RARE rule bv-merge-sign-extend-1

+
+ +
+
+enumerator BV_MERGE_SIGN_EXTEND_2
+

Auto-generated from RARE rule bv-merge-sign-extend-2

+
+ +
+
+enumerator BV_MERGE_SIGN_EXTEND_3
+

Auto-generated from RARE rule bv-merge-sign-extend-3

+
+ +
+
+enumerator BV_SIGN_EXTEND_EQ_CONST_1
+

Auto-generated from RARE rule bv-sign-extend-eq-const-1

+
+ +
+
+enumerator BV_SIGN_EXTEND_EQ_CONST_2
+

Auto-generated from RARE rule bv-sign-extend-eq-const-2

+
+ +
+
+enumerator BV_ZERO_EXTEND_EQ_CONST_1
+

Auto-generated from RARE rule bv-zero-extend-eq-const-1

+
+ +
+
+enumerator BV_ZERO_EXTEND_EQ_CONST_2
+

Auto-generated from RARE rule bv-zero-extend-eq-const-2

+
+ +
+
+enumerator BV_SIGN_EXTEND_ULT_CONST_1
+

Auto-generated from RARE rule bv-sign-extend-ult-const-1

+
+ +
+
+enumerator BV_SIGN_EXTEND_ULT_CONST_2
+

Auto-generated from RARE rule bv-sign-extend-ult-const-2

+
+ +
+
+enumerator BV_SIGN_EXTEND_ULT_CONST_3
+

Auto-generated from RARE rule bv-sign-extend-ult-const-3

+
+ +
+
+enumerator BV_SIGN_EXTEND_ULT_CONST_4
+

Auto-generated from RARE rule bv-sign-extend-ult-const-4

+
+ +
+
+enumerator SETS_EQ_SINGLETON_EMP
+

Auto-generated from RARE rule sets-eq-singleton-emp

+
+ +
+
+enumerator SETS_MEMBER_SINGLETON
+

Auto-generated from RARE rule sets-member-singleton

+
+ +
+
+enumerator SETS_MEMBER_EMP
+

Auto-generated from RARE rule sets-member-emp

+
+ +
+
+enumerator SETS_SUBSET_ELIM
+

Auto-generated from RARE rule sets-subset-elim

+
+ +
+
+enumerator SETS_UNION_COMM
+

Auto-generated from RARE rule sets-union-comm

+
+ +
+
+enumerator SETS_INTER_COMM
+

Auto-generated from RARE rule sets-inter-comm

+
+ +
+
+enumerator SETS_INTER_EMP1
+

Auto-generated from RARE rule sets-inter-emp1

+
+ +
+
+enumerator SETS_INTER_EMP2
+

Auto-generated from RARE rule sets-inter-emp2

+
+ +
+
+enumerator SETS_MINUS_EMP1
+

Auto-generated from RARE rule sets-minus-emp1

+
+ +
+
+enumerator SETS_MINUS_EMP2
+

Auto-generated from RARE rule sets-minus-emp2

+
+ +
+
+enumerator SETS_UNION_EMP1
+

Auto-generated from RARE rule sets-union-emp1

+
+ +
+
+enumerator SETS_UNION_EMP2
+

Auto-generated from RARE rule sets-union-emp2

+
+ +
+
+enumerator SETS_INTER_MEMBER
+

Auto-generated from RARE rule sets-inter-member

+
+ +
+
+enumerator SETS_MINUS_MEMBER
+

Auto-generated from RARE rule sets-minus-member

+
+ +
+
+enumerator SETS_UNION_MEMBER
+

Auto-generated from RARE rule sets-union-member

+
+ +
+
+enumerator SETS_CHOOSE_SINGLETON
+

Auto-generated from RARE rule sets-choose-singleton

+
+ +
+
+enumerator SETS_CARD_SINGLETON
+

Auto-generated from RARE rule sets-card-singleton

+
+ +
+
+enumerator SETS_CARD_UNION
+

Auto-generated from RARE rule sets-card-union

+
+ +
+
+enumerator SETS_CARD_MINUS
+

Auto-generated from RARE rule sets-card-minus

+
+ +
+
+enumerator SETS_CARD_EMP
+

Auto-generated from RARE rule sets-card-emp

+
+ +
+
+enumerator SETS_MINUS_SELF
+

Auto-generated from RARE rule sets-minus-self

+
+ +
+
+enumerator SETS_IS_EMPTY_ELIM
+

Auto-generated from RARE rule sets-is-empty-elim

+
+ +
+
+enumerator STR_EQ_CTN_FALSE
+

Auto-generated from RARE rule str-eq-ctn-false

+
+ +
+
+enumerator STR_EQ_CTN_FULL_FALSE1
+

Auto-generated from RARE rule str-eq-ctn-full-false1

+
+ +
+
+enumerator STR_EQ_CTN_FULL_FALSE2
+

Auto-generated from RARE rule str-eq-ctn-full-false2

+
+ +
+
+enumerator STR_CONCAT_FLATTEN
+

Auto-generated from RARE rule str-concat-flatten

+
+ +
+
+enumerator STR_CONCAT_FLATTEN_EQ
+

Auto-generated from RARE rule str-concat-flatten-eq

+
+ +
+
+enumerator STR_CONCAT_FLATTEN_EQ_REV
+

Auto-generated from RARE rule str-concat-flatten-eq-rev

+
+ +
+
+enumerator STR_SUBSTR_EMPTY_STR
+

Auto-generated from RARE rule str-substr-empty-str

+
+ +
+
+enumerator STR_SUBSTR_EMPTY_RANGE
+

Auto-generated from RARE rule str-substr-empty-range

+
+ +
+
+enumerator STR_SUBSTR_EMPTY_START
+

Auto-generated from RARE rule str-substr-empty-start

+
+ +
+
+enumerator STR_SUBSTR_EMPTY_START_NEG
+

Auto-generated from RARE rule str-substr-empty-start-neg

+
+ +
+
+enumerator STR_SUBSTR_EQ_EMPTY
+

Auto-generated from RARE rule str-substr-eq-empty

+
+ +
+
+enumerator STR_LEN_REPLACE_INV
+

Auto-generated from RARE rule str-len-replace-inv

+
+ +
+
+enumerator STR_LEN_UPDATE_INV
+

Auto-generated from RARE rule str-len-update-inv

+
+ +
+
+enumerator STR_LEN_SUBSTR_IN_RANGE
+

Auto-generated from RARE rule str-len-substr-in-range

+
+ +
+
+enumerator STR_LEN_SUBSTR_UB1
+

Auto-generated from RARE rule str-len-substr-ub1

+
+ +
+
+enumerator STR_LEN_SUBSTR_UB2
+

Auto-generated from RARE rule str-len-substr-ub2

+
+ +
+
+enumerator STR_CONCAT_CLASH
+

Auto-generated from RARE rule str-concat-clash

+
+ +
+
+enumerator STR_CONCAT_CLASH_REV
+

Auto-generated from RARE rule str-concat-clash-rev

+
+ +
+
+enumerator STR_CONCAT_CLASH2
+

Auto-generated from RARE rule str-concat-clash2

+
+ +
+
+enumerator STR_CONCAT_CLASH2_REV
+

Auto-generated from RARE rule str-concat-clash2-rev

+
+ +
+
+enumerator STR_CONCAT_UNIFY
+

Auto-generated from RARE rule str-concat-unify

+
+ +
+
+enumerator STR_CONCAT_UNIFY_REV
+

Auto-generated from RARE rule str-concat-unify-rev

+
+ +
+
+enumerator STR_CONCAT_UNIFY_BASE
+

Auto-generated from RARE rule str-concat-unify-base

+
+ +
+
+enumerator STR_CONCAT_UNIFY_BASE_REV
+

Auto-generated from RARE rule str-concat-unify-base-rev

+
+ +
+
+enumerator STR_CONCAT_CLASH_CHAR
+

Auto-generated from RARE rule str-concat-clash-char

+
+ +
+
+enumerator STR_CONCAT_CLASH_CHAR_REV
+

Auto-generated from RARE rule str-concat-clash-char-rev

+
+ +
+
+enumerator STR_PREFIXOF_ELIM
+

Auto-generated from RARE rule str-prefixof-elim

+
+ +
+
+enumerator STR_SUFFIXOF_ELIM
+

Auto-generated from RARE rule str-suffixof-elim

+
+ +
+
+enumerator STR_PREFIXOF_ONE
+

Auto-generated from RARE rule str-prefixof-one

+
+ +
+
+enumerator STR_SUFFIXOF_ONE
+

Auto-generated from RARE rule str-suffixof-one

+
+ +
+
+enumerator STR_SUBSTR_COMBINE1
+

Auto-generated from RARE rule str-substr-combine1

+
+ +
+
+enumerator STR_SUBSTR_COMBINE2
+

Auto-generated from RARE rule str-substr-combine2

+
+ +
+
+enumerator STR_SUBSTR_COMBINE3
+

Auto-generated from RARE rule str-substr-combine3

+
+ +
+
+enumerator STR_SUBSTR_COMBINE4
+

Auto-generated from RARE rule str-substr-combine4

+
+ +
+
+enumerator STR_SUBSTR_CONCAT1
+

Auto-generated from RARE rule str-substr-concat1

+
+ +
+
+enumerator STR_SUBSTR_CONCAT2
+

Auto-generated from RARE rule str-substr-concat2

+
+ +
+
+enumerator STR_SUBSTR_FULL
+

Auto-generated from RARE rule str-substr-full

+
+ +
+
+enumerator STR_SUBSTR_FULL_EQ
+

Auto-generated from RARE rule str-substr-full-eq

+
+ +
+
+enumerator STR_CONTAINS_REFL
+

Auto-generated from RARE rule str-contains-refl

+
+ +
+
+enumerator STR_CONTAINS_CONCAT_FIND
+

Auto-generated from RARE rule str-contains-concat-find

+
+ +
+
+enumerator STR_CONTAINS_SPLIT_CHAR
+

Auto-generated from RARE rule str-contains-split-char

+
+ +
+
+enumerator STR_CONTAINS_LT_LEN
+

Auto-generated from RARE rule str-contains-lt-len

+
+ +
+
+enumerator STR_CONTAINS_LEQ_LEN_EQ
+

Auto-generated from RARE rule str-contains-leq-len-eq

+
+ +
+
+enumerator STR_CONTAINS_EMP
+

Auto-generated from RARE rule str-contains-emp

+
+ +
+
+enumerator STR_CONTAINS_IS_EMP
+

Auto-generated from RARE rule str-contains-is-emp

+
+ +
+
+enumerator STR_AT_ELIM
+

Auto-generated from RARE rule str-at-elim

+
+ +
+
+enumerator STR_REPLACE_SELF
+

Auto-generated from RARE rule str-replace-self

+
+ +
+
+enumerator STR_REPLACE_PREFIX
+

Auto-generated from RARE rule str-replace-prefix

+
+ +
+
+enumerator STR_REPLACE_NO_CONTAINS
+

Auto-generated from RARE rule str-replace-no-contains

+
+ +
+
+enumerator STR_REPLACE_EMPTY
+

Auto-generated from RARE rule str-replace-empty

+
+ +
+
+enumerator STR_REPLACE_CONTAINS_PRE
+

Auto-generated from RARE rule str-replace-contains-pre

+
+ +
+
+enumerator STR_REPLACE_ALL_NO_CONTAINS
+

Auto-generated from RARE rule str-replace-all-no-contains

+
+ +
+
+enumerator STR_REPLACE_RE_NONE
+

Auto-generated from RARE rule str-replace-re-none

+
+ +
+
+enumerator STR_REPLACE_RE_ALL_NONE
+

Auto-generated from RARE rule str-replace-re-all-none

+
+ +
+
+enumerator STR_LEN_CONCAT_REC
+

Auto-generated from RARE rule str-len-concat-rec

+
+ +
+
+enumerator STR_INDEXOF_SELF
+

Auto-generated from RARE rule str-indexof-self

+
+ +
+
+enumerator STR_INDEXOF_NO_CONTAINS
+

Auto-generated from RARE rule str-indexof-no-contains

+
+ +
+
+enumerator STR_INDEXOF_CONTAINS_PRE
+

Auto-generated from RARE rule str-indexof-contains-pre

+
+ +
+
+enumerator STR_INDEXOF_RE_NONE
+

Auto-generated from RARE rule str-indexof-re-none

+
+ +
+
+enumerator STR_TO_LOWER_CONCAT
+

Auto-generated from RARE rule str-to-lower-concat

+
+ +
+
+enumerator STR_TO_UPPER_CONCAT
+

Auto-generated from RARE rule str-to-upper-concat

+
+ +
+
+enumerator STR_TO_LOWER_UPPER
+

Auto-generated from RARE rule str-to-lower-upper

+
+ +
+
+enumerator STR_TO_UPPER_LOWER
+

Auto-generated from RARE rule str-to-upper-lower

+
+ +
+
+enumerator STR_TO_LOWER_LEN
+

Auto-generated from RARE rule str-to-lower-len

+
+ +
+
+enumerator STR_TO_UPPER_LEN
+

Auto-generated from RARE rule str-to-upper-len

+
+ +
+
+enumerator STR_TO_LOWER_FROM_INT
+

Auto-generated from RARE rule str-to-lower-from-int

+
+ +
+
+enumerator STR_TO_UPPER_FROM_INT
+

Auto-generated from RARE rule str-to-upper-from-int

+
+ +
+
+enumerator STR_TO_INT_CONCAT_NEG_ONE
+

Auto-generated from RARE rule str-to-int-concat-neg-one

+
+ +
+
+enumerator STR_LEQ_EMPTY
+

Auto-generated from RARE rule str-leq-empty

+
+ +
+
+enumerator STR_LEQ_EMPTY_EQ
+

Auto-generated from RARE rule str-leq-empty-eq

+
+ +
+
+enumerator STR_LEQ_CONCAT_FALSE
+

Auto-generated from RARE rule str-leq-concat-false

+
+ +
+
+enumerator STR_LEQ_CONCAT_TRUE
+

Auto-generated from RARE rule str-leq-concat-true

+
+ +
+
+enumerator STR_LT_ELIM
+

Auto-generated from RARE rule str-lt-elim

+
+ +
+
+enumerator RE_ALL_ELIM
+

Auto-generated from RARE rule re-all-elim

+
+ +
+
+enumerator RE_OPT_ELIM
+

Auto-generated from RARE rule re-opt-elim

+
+ +
+
+enumerator RE_DIFF_ELIM
+

Auto-generated from RARE rule re-diff-elim

+
+ +
+
+enumerator RE_CONCAT_EMP
+

Auto-generated from RARE rule re-concat-emp

+
+ +
+
+enumerator RE_CONCAT_NONE
+

Auto-generated from RARE rule re-concat-none

+
+ +
+
+enumerator RE_CONCAT_FLATTEN
+

Auto-generated from RARE rule re-concat-flatten

+
+ +
+
+enumerator RE_CONCAT_STAR_SWAP
+

Auto-generated from RARE rule re-concat-star-swap

+
+ +
+
+enumerator RE_CONCAT_STAR_REPEAT
+

Auto-generated from RARE rule re-concat-star-repeat

+
+ +
+
+enumerator RE_CONCAT_MERGE
+

Auto-generated from RARE rule re-concat-merge

+
+ +
+
+enumerator RE_UNION_ALL
+

Auto-generated from RARE rule re-union-all

+
+ +
+
+enumerator RE_UNION_NONE
+

Auto-generated from RARE rule re-union-none

+
+ +
+
+enumerator RE_UNION_FLATTEN
+

Auto-generated from RARE rule re-union-flatten

+
+ +
+
+enumerator RE_UNION_DUP
+

Auto-generated from RARE rule re-union-dup

+
+ +
+
+enumerator RE_INTER_ALL
+

Auto-generated from RARE rule re-inter-all

+
+ +
+
+enumerator RE_INTER_NONE
+

Auto-generated from RARE rule re-inter-none

+
+ +
+
+enumerator RE_INTER_FLATTEN
+

Auto-generated from RARE rule re-inter-flatten

+
+ +
+
+enumerator RE_INTER_DUP
+

Auto-generated from RARE rule re-inter-dup

+
+ +
+
+enumerator RE_STAR_NONE
+

Auto-generated from RARE rule re-star-none

+
+ +
+
+enumerator RE_LOOP_NEG
+

Auto-generated from RARE rule re-loop-neg

+
+ +
+
+enumerator RE_INTER_CSTRING
+

Auto-generated from RARE rule re-inter-cstring

+
+ +
+
+enumerator RE_INTER_CSTRING_NEG
+

Auto-generated from RARE rule re-inter-cstring-neg

+
+ +
+
+enumerator STR_SUBSTR_LEN_INCLUDE
+

Auto-generated from RARE rule str-substr-len-include

+
+ +
+
+enumerator STR_SUBSTR_LEN_INCLUDE_PRE
+

Auto-generated from RARE rule str-substr-len-include-pre

+
+ +
+
+enumerator STR_SUBSTR_LEN_SKIP
+

Auto-generated from RARE rule str-substr-len-skip

+
+ +
+
+enumerator SEQ_LEN_REV
+

Auto-generated from RARE rule seq-len-rev

+
+ +
+
+enumerator SEQ_REV_REV
+

Auto-generated from RARE rule seq-rev-rev

+
+ +
+
+enumerator SEQ_REV_CONCAT
+

Auto-generated from RARE rule seq-rev-concat

+
+ +
+
+enumerator SEQ_LEN_UNIT
+

Auto-generated from RARE rule seq-len-unit

+
+ +
+
+enumerator SEQ_NTH_UNIT
+

Auto-generated from RARE rule seq-nth-unit

+
+ +
+
+enumerator SEQ_REV_UNIT
+

Auto-generated from RARE rule seq-rev-unit

+
+ +
+
+enumerator SEQ_LEN_EMPTY
+

Auto-generated from RARE rule seq-len-empty

+
+ +
+
+enumerator RE_IN_EMPTY
+

Auto-generated from RARE rule re-in-empty

+
+ +
+
+enumerator RE_IN_SIGMA
+

Auto-generated from RARE rule re-in-sigma

+
+ +
+
+enumerator RE_IN_SIGMA_STAR
+

Auto-generated from RARE rule re-in-sigma-star

+
+ +
+
+enumerator RE_IN_CSTRING
+

Auto-generated from RARE rule re-in-cstring

+
+ +
+
+enumerator RE_IN_COMP
+

Auto-generated from RARE rule re-in-comp

+
+ +
+
+enumerator STR_IN_RE_UNION_ELIM
+

Auto-generated from RARE rule str-in-re-union-elim

+
+ +
+
+enumerator STR_IN_RE_INTER_ELIM
+

Auto-generated from RARE rule str-in-re-inter-elim

+
+ +
+
+enumerator STR_IN_RE_RANGE_ELIM
+

Auto-generated from RARE rule str-in-re-range-elim

+
+ +
+
+enumerator STR_IN_RE_CONTAINS
+

Auto-generated from RARE rule str-in-re-contains

+
+ +
+
+enumerator STR_IN_RE_STRIP_PREFIX
+

Auto-generated from RARE rule str-in-re-strip-prefix

+
+ +
+
+enumerator STR_IN_RE_STRIP_PREFIX_NEG
+

Auto-generated from RARE rule str-in-re-strip-prefix-neg

+
+ +
+
+enumerator STR_IN_RE_STRIP_PREFIX_SR_SINGLE
+

Auto-generated from RARE rule str-in-re-strip-prefix-sr-single

+
+ +
+
+enumerator STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG
+

Auto-generated from RARE rule str-in-re-strip-prefix-sr-single-neg

+
+ +
+
+enumerator STR_IN_RE_STRIP_PREFIX_SRS_SINGLE
+

Auto-generated from RARE rule str-in-re-strip-prefix-srs-single

+
+ +
+
+enumerator STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG
+

Auto-generated from RARE rule str-in-re-strip-prefix-srs-single-neg

+
+ +
+
+enumerator STR_IN_RE_STRIP_PREFIX_S_SINGLE
+

Auto-generated from RARE rule str-in-re-strip-prefix-s-single

+
+ +
+
+enumerator STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG
+

Auto-generated from RARE rule str-in-re-strip-prefix-s-single-neg

+
+ +
+
+enumerator STR_IN_RE_STRIP_PREFIX_BASE
+

Auto-generated from RARE rule str-in-re-strip-prefix-base

+
+ +
+
+enumerator STR_IN_RE_STRIP_PREFIX_BASE_NEG
+

Auto-generated from RARE rule str-in-re-strip-prefix-base-neg

+
+ +
+
+enumerator STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE
+

Auto-generated from RARE rule str-in-re-strip-prefix-base-s-single

+
+ +
+
+enumerator STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG
+

Auto-generated from RARE rule str-in-re-strip-prefix-base-s-single-neg

+
+ +
+
+enumerator STR_IN_RE_STRIP_CHAR
+

Auto-generated from RARE rule str-in-re-strip-char

+
+ +
+
+enumerator STR_IN_RE_STRIP_CHAR_S_SINGLE
+

Auto-generated from RARE rule str-in-re-strip-char-s-single

+
+ +
+
+enumerator STR_IN_RE_STRIP_PREFIX_REV
+

Auto-generated from RARE rule str-in-re-strip-prefix-rev

+
+ +
+
+enumerator STR_IN_RE_STRIP_PREFIX_NEG_REV
+

Auto-generated from RARE rule str-in-re-strip-prefix-neg-rev

+
+ +
+
+enumerator STR_IN_RE_STRIP_PREFIX_SR_SINGLE_REV
+

Auto-generated from RARE rule str-in-re-strip-prefix-sr-single-rev

+
+ +
+
+enumerator STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG_REV
+

Auto-generated from RARE rule str-in-re-strip-prefix-sr-single-neg-rev

+
+ +
+
+enumerator STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_REV
+

Auto-generated from RARE rule str-in-re-strip-prefix-srs-single-rev

+
+ +
+
+enumerator STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG_REV
+

Auto-generated from RARE rule str-in-re-strip-prefix-srs-single-neg-rev

+
+ +
+
+enumerator STR_IN_RE_STRIP_PREFIX_S_SINGLE_REV
+

Auto-generated from RARE rule str-in-re-strip-prefix-s-single-rev

+
+ +
+
+enumerator STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG_REV
+

Auto-generated from RARE rule str-in-re-strip-prefix-s-single-neg-rev

+
+ +
+
+enumerator STR_IN_RE_STRIP_PREFIX_BASE_REV
+

Auto-generated from RARE rule str-in-re-strip-prefix-base-rev

+
+ +
+
+enumerator STR_IN_RE_STRIP_PREFIX_BASE_NEG_REV
+

Auto-generated from RARE rule str-in-re-strip-prefix-base-neg-rev

+
+ +
+
+enumerator STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_REV
+

Auto-generated from RARE rule str-in-re-strip-prefix-base-s-single-rev

+
+ +
+
+enumerator STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG_REV
+

Auto-generated from RARE rule str-in-re-strip-prefix-base-s-single-neg-rev

+
+ +
+
+enumerator STR_IN_RE_STRIP_CHAR_REV
+

Auto-generated from RARE rule str-in-re-strip-char-rev

+
+ +
+
+enumerator STR_IN_RE_STRIP_CHAR_S_SINGLE_REV
+

Auto-generated from RARE rule str-in-re-strip-char-s-single-rev

+
+ +
+
+enumerator STR_IN_RE_REQ_UNFOLD
+

Auto-generated from RARE rule str-in-re-req-unfold

+
+ +
+
+enumerator STR_IN_RE_REQ_UNFOLD_REV
+

Auto-generated from RARE rule str-in-re-req-unfold-rev

+
+ +
+
+enumerator STR_IN_RE_SKIP_UNFOLD
+

Auto-generated from RARE rule str-in-re-skip-unfold

+
+ +
+
+enumerator STR_IN_RE_SKIP_UNFOLD_REV
+

Auto-generated from RARE rule str-in-re-skip-unfold-rev

+
+ +
+
+enumerator STR_IN_RE_TEST_UNFOLD
+

Auto-generated from RARE rule str-in-re-test-unfold

+
+ +
+
+enumerator STR_IN_RE_TEST_UNFOLD_REV
+

Auto-generated from RARE rule str-in-re-test-unfold-rev

+
+ +
+
+enumerator EQ_REFL
+

Auto-generated from RARE rule eq-refl

+
+ +
+
+enumerator EQ_SYMM
+

Auto-generated from RARE rule eq-symm

+
+ +
+
+enumerator EQ_COND_DEQ
+

Auto-generated from RARE rule eq-cond-deq

+
+ +
+
+enumerator EQ_ITE_LIFT
+

Auto-generated from RARE rule eq-ite-lift

+
+ +
+
+enumerator DISTINCT_BINARY_ELIM
+

Auto-generated from RARE rule distinct-binary-elim

+
+ +
+
+enumerator UF_BV2NAT_INT2BV
+

Auto-generated from RARE rule uf-bv2nat-int2bv

+
+ +
+
+enumerator UF_BV2NAT_INT2BV_EXTEND
+

Auto-generated from RARE rule uf-bv2nat-int2bv-extend

+
+ +
+
+enumerator UF_BV2NAT_INT2BV_EXTRACT
+

Auto-generated from RARE rule uf-bv2nat-int2bv-extract

+
+ +
+
+enumerator UF_INT2BV_BV2NAT
+

Auto-generated from RARE rule uf-int2bv-bv2nat

+
+ +
+
+enumerator UF_BV2NAT_GEQ_ELIM
+

Auto-generated from RARE rule uf-bv2nat-geq-elim

+
+ +
+
+enumerator UF_INT2BV_BVULT_EQUIV
+

Auto-generated from RARE rule uf-int2bv-bvult-equiv

+
+ +
+
+enumerator UF_INT2BV_BVULE_EQUIV
+

Auto-generated from RARE rule uf-int2bv-bvule-equiv

+
+ +
+ +
+
+std::ostream &cvc5::operator<<(std::ostream &out, ProofRewriteRule rule)
+

Writes a proof rewrite rule name to a stream.

+
+
Parameters:
+
    +
  • out – The stream to write to

  • +
  • rule – The proof rewrite rule to write to the stream

  • +
+
+
Returns:
+

The stream

+
+
+
+ +
+
+std::string std::to_string(cvc5::ProofRewriteRule rule)
+

Converts a proof rewrite rule to a string.

+
+
Parameters:
+

rule – The proof rewrite rule

+
+
Returns:
+

The name of the proof rewrite rule

+
+
+
+ +
+
+template<>
struct hash<cvc5::ProofRewriteRule>
+

Hash function for ProofRewriteRules.

+
+

Public Functions

+
+
+size_t operator()(cvc5::ProofRewriteRule rule) const
+

Hashes a ProofRewriteRule to a size_t.

+
+
Parameters:
+

rule – The proof rewrite rule.

+
+
Returns:
+

The hash value.

+
+
+
+ +
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/enums/roundingmode.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/enums/roundingmode.html new file mode 100644 index 0000000000..1e0f995a43 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/enums/roundingmode.html @@ -0,0 +1,247 @@ + + + + + + + + + + + + + RoundingMode — cvc5 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

RoundingMode

+

This enum class represents a floating-point rounding mode.

+
+ +
+
+
+enum class cvc5::RoundingMode
+

Rounding modes for floating-point numbers.

+

For many floating-point operations, infinitely precise results may not be representable with the number of available bits. Thus, the results are rounded in a certain way to one of the representable floating-point numbers.

+

These rounding modes directly follow the SMT-LIB theory for floating-point +arithmetic, which in turn is based on IEEE Standard 754 [IEE19]. +The rounding modes are specified in Sections 4.3.1 and 4.3.2 of the IEEE +Standard 754.

+

Values:

+
+
+enumerator ROUND_NEAREST_TIES_TO_EVEN
+

Round to the nearest even number.

+

If the two nearest floating-point numbers bracketing an unrepresentable infinitely precise result are equally near, the one with an even least significant digit will be delivered.

+
+ +
+
+enumerator ROUND_TOWARD_POSITIVE
+

Round towards positive infinity (SMT-LIB: +oo).

+

The result shall be the format’s floating-point number (possibly +oo) closest to and no less than the infinitely precise result.

+
+ +
+
+enumerator ROUND_TOWARD_NEGATIVE
+

Round towards negative infinity (-oo).

+

The result shall be the format’s floating-point number (possibly -oo) closest to and no less than the infinitely precise result.

+
+ +
+
+enumerator ROUND_TOWARD_ZERO
+

Round towards zero.

+

The result shall be the format’s floating-point number closest to and no greater in magnitude than the infinitely precise result.

+
+ +
+
+enumerator ROUND_NEAREST_TIES_TO_AWAY
+

Round to the nearest number away from zero.

+

If the two nearest floating-point numbers bracketing an unrepresentable infinitely precise result are equally near), the one with larger magnitude will be selected.

+
+ +
+ +
+
+
+std::ostream &cvc5::operator<<(std::ostream &out, RoundingMode rm)
+

Serialize a RoundingMode to given stream.

+
+
Parameters:
+
    +
  • out – The output stream

  • +
  • rm – The rounding mode to be serialized to the given output stream

  • +
+
+
Returns:
+

The output stream

+
+
+
+ +
+
+std::string std::to_string(cvc5::RoundingMode rm)
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/enums/sortkind.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/enums/sortkind.html new file mode 100644 index 0000000000..d8a70f3577 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/enums/sortkind.html @@ -0,0 +1,530 @@ + + + + + + + + + + + + + SortKind — cvc5 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

SortKind

+

Every Sort has an associated kind, represented +as enum class cvc5::SortKind.

+
+ +
+
+
+enum class cvc5::SortKind
+

The kind of a cvc5 Sort.

+

Values:

+
+
+enumerator INTERNAL_SORT_KIND
+

Internal kind.

+

This kind serves as an abstraction for internal kinds that are not exposed via the API but may appear in terms returned by API functions, e.g., when querying the simplified form of a term.

+
+

Note

+

Should never be created via the API.

+
+
+ +
+
+enumerator UNDEFINED_SORT_KIND
+

Undefined kind.

+
+

Note

+

Should never be exposed or created via the API.

+
+
+ +
+
+enumerator NULL_SORT
+

Null kind.

+

The kind of a null sort (Sort::Sort()).

+
+

Note

+

May not be explicitly created via API functions other than +Sort::Sort().

+
+
+ +
+
+enumerator ABSTRACT_SORT
+

An abstract sort.

+

An abstract sort represents a sort whose parameters or argument sorts are unspecified. For example, mkAbstractSort(BITVECTOR_SORT) returns a sort that represents the sort of bit-vectors whose bit-width is unspecified.

+

+

+
+ +
+
+enumerator ARRAY_SORT
+

An array sort, whose argument sorts are the index and element sorts of the array.

+

    +
  • Create Sort of this Kind with:

      +
    • Solver::mkArraySort(Sort, Sort) const

    • +
    +

  • +
+

+
+ +
+
+enumerator BAG_SORT
+

A bag sort, whose argument sort is the element sort of the bag.

+

    +
  • Create Sort of this Kind with:

      +
    • Solver::mkBagSort(Sort) const

    • +
    +

  • +
+

+
+ +
+
+enumerator BOOLEAN_SORT
+

The Boolean sort.

+

+

+
+ +
+
+enumerator BITVECTOR_SORT
+

A bit-vector sort, parameterized by an integer denoting its bit-width.

+

+

+
+ +
+
+enumerator DATATYPE_SORT
+

A datatype sort.

+

    +
  • Create Sort of this Kind with:

      +
    • Solver::mkDatatypeSort(DatatypeDecl)

    • +
    • Solver::mkDatatypeSorts(const std::vector<DatatypeDecl>&)

    • +
    +

  • +
+

+
+ +
+
+enumerator FINITE_FIELD_SORT
+

A finite field sort, parameterized by a size.

+

+

+
+ +
+
+enumerator FLOATINGPOINT_SORT
+

A floating-point sort, parameterized by two integers denoting its exponent and significand bit-widths.

+

+

+
+ +
+
+enumerator FUNCTION_SORT
+

A function sort with given domain sorts and codomain sort.

+

    +
  • Create Sort of this Kind with:

      +
    • Solver::mkFunctionSort(const std::vector<Sort>&, Sort) const

    • +
    +

  • +
+

+
+ +
+
+enumerator INTEGER_SORT
+

The integer sort.

+

+

+
+ +
+
+enumerator REAL_SORT
+

The real sort.

+

+

+
+ +
+
+enumerator REGLAN_SORT
+

The regular language sort.

+

+

+
+ +
+
+enumerator ROUNDINGMODE_SORT
+

The rounding mode sort.

+

+

+
+ +
+
+enumerator SEQUENCE_SORT
+

A sequence sort, whose argument sort is the element sort of the sequence.

+

    +
  • Create Sort of this Kind with:

      +
    • Solver::mkSequenceSort(Sort) const

    • +
    +

  • +
+

+
+ +
+
+enumerator SET_SORT
+

A set sort, whose argument sort is the element sort of the set.

+

    +
  • Create Sort of this Kind with:

      +
    • Solver::mkSetSort(Sort) const

    • +
    +

  • +
+

+
+ +
+
+enumerator STRING_SORT
+

The string sort.

+

+

+
+ +
+
+enumerator TUPLE_SORT
+

A tuple sort, whose argument sorts denote the sorts of the direct children of the tuple.

+

+

+
+ +
+
+enumerator NULLABLE_SORT
+

A nullable sort, whose argument sort denotes the sort of the direct child of the nullable.

+

+

+
+ +
+
+enumerator UNINTERPRETED_SORT
+

An uninterpreted sort.

+

+

+
+ +
+
+enumerator LAST_SORT_KIND
+

Marks the upper-bound of this enumeration.

+
+ +
+ +
+
+
+std::ostream &cvc5::operator<<(std::ostream &out, SortKind k)
+

Serialize a kind to given stream.

+
+
Parameters:
+
    +
  • out – the output stream

  • +
  • k – the sort kind to be serialized to the given output stream

  • +
+
+
Returns:
+

the output stream

+
+
+
+ +
+
+std::string std::to_string(cvc5::SortKind k)
+

Get the string representation of a given kind.

+
+
Parameters:
+

k – the sort kind

+
+
Returns:
+

the string representation of kind k

+
+
+
+ +
+
+
+template<>
struct hash<cvc5::SortKind>
+

Hash function for SortKinds.

+
+

Public Functions

+
+
+size_t operator()(cvc5::SortKind kind) const
+

Hashes a SortKind to a size_t.

+
+
Parameters:
+

kind – The kind.

+
+
Returns:
+

The hash value.

+
+
+
+ +
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/enums/unknownexplanation.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/enums/unknownexplanation.html new file mode 100644 index 0000000000..9cc971fffc --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/enums/unknownexplanation.html @@ -0,0 +1,268 @@ + + + + + + + + + + + + + UnknownExplanation — cvc5 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

UnknownExplanation

+

This enum class represents the explanation for an unknown solver result +(see Result).

+
+ +
+
+
+enum class cvc5::UnknownExplanation
+

The different reasons for returning an “unknown” result.

+

Values:

+
+
+enumerator REQUIRES_FULL_CHECK
+

Full satisfiability check required (e.g., if only preprocessing was performed).

+
+ +
+
+enumerator INCOMPLETE
+

Incomplete theory solver.

+
+ +
+
+enumerator TIMEOUT
+

Time limit reached.

+
+ +
+
+enumerator RESOURCEOUT
+

Resource limit reached.

+
+ +
+
+enumerator MEMOUT
+

Memory limit reached.

+
+ +
+
+enumerator INTERRUPTED
+

Solver was interrupted.

+
+ +
+
+enumerator UNSUPPORTED
+

Unsupported feature encountered.

+
+ +
+
+enumerator OTHER
+

Other reason.

+
+ +
+
+enumerator REQUIRES_CHECK_AGAIN
+

Requires another satisfiability check

+
+ +
+
+enumerator UNKNOWN_REASON
+

No specific reason given.

+
+ +
+ +
+
+
+std::ostream &cvc5::operator<<(std::ostream &out, UnknownExplanation e)
+

Serialize an UnknownExplanation to given stream.

+
+
Parameters:
+
    +
  • out – The output stream

  • +
  • e – The explanation to be serialized to the given output stream

  • +
+
+
Returns:
+

The output stream

+
+
+
+ +
+
+std::string std::to_string(cvc5::UnknownExplanation exp)
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/exceptions/exceptions.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/exceptions/exceptions.html new file mode 100644 index 0000000000..a71324e4d6 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/exceptions/exceptions.html @@ -0,0 +1,366 @@ + + + + + + + + + + + + + Exceptions — cvc5 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Exceptions

+

The cvc5 API communicates certain errors using exceptions. We broadly +distinguish two types of exceptions: CVC5ApiException and CVC5ApiRecoverableException (which is derived from +CVC5ApiException).

+

If any method fails with a CVC5ApiRecoverableException, the solver behaves as if the failing +method was not called. The solver can still be used safely.

+

If, however, a method fails with a CVC5ApiException, the associated object may be in an unsafe state +and it should no longer be used.

+

If the cvc5::parser::InputParser encounters an error, it will +throw a cvc5::parser::ParserException. +If thrown, API objects can still be used

+
+
+class CVC5ApiException : public exception
+

Base class for all API exceptions. If thrown, all API objects may be in an unsafe state.

+

Subclassed by cvc5::CVC5ApiRecoverableException, cvc5::parser::ParserException

+
+

Public Functions

+
+
+inline CVC5ApiException(const std::string &str)
+

Construct with message from a string.

+
+
Parameters:
+

str – The error message.

+
+
+
+ +
+
+inline CVC5ApiException(const std::stringstream &stream)
+

Construct with message from a string stream.

+
+
Parameters:
+

stream – The error message.

+
+
+
+ +
+
+inline const std::string &getMessage() const
+

Retrieve the message from this exception.

+
+
Returns:
+

The error message.

+
+
+
+ +
+
+inline const char *what() const noexcept override
+

Retrieve the message as a C-style array.

+
+
Returns:
+

The error message.

+
+
+
+ +
+
+inline virtual void toStream(std::ostream &os) const
+

Printing: feel free to redefine toStream(). When overridden in a derived class, it’s recommended that this method print the type of exception before the actual message.

+
+ +
+
+ +
+
+class CVC5ApiRecoverableException : public cvc5::CVC5ApiException
+

A recoverable API exception. If thrown, API objects can still be used.

+

Subclassed by cvc5::CVC5ApiOptionException, cvc5::CVC5ApiUnsupportedException

+
+

Public Functions

+
+
+inline CVC5ApiRecoverableException(const std::string &str)
+

Construct with message from a string.

+
+
Parameters:
+

str – The error message.

+
+
+
+ +
+
+inline CVC5ApiRecoverableException(const std::stringstream &stream)
+

Construct with message from a string stream.

+
+
Parameters:
+

stream – The error message.

+
+
+
+ +
+
+ +
+
+class ParserException : public cvc5::CVC5ApiException
+

Base class for all Parser exceptions. If thrown, API objects can still be used

+

Subclassed by cvc5::parser::ParserEndOfFileException

+
+

Public Functions

+
+
+ParserException()
+

Default constructor

+
+ +
+
+ParserException(const std::string &msg)
+

Construct with message from a string.

+
+
Parameters:
+

msg – The error message.

+
+
+
+ +
+
+ParserException(const char *msg)
+

Construct with message from a C string.

+
+
Parameters:
+

msg – The error message.

+
+
+
+ +
+
+ParserException(const std::string &msg, const std::string &filename, unsigned long line, unsigned long column)
+

Construct with message from a string.

+
+
Parameters:
+
    +
  • msg – The error message.

  • +
  • filename – name of the file.

  • +
  • line – The error line number.

  • +
  • column – The error column number.

  • +
+
+
+
+ +
+
+virtual void toStream(std::ostream &os) const override
+

Print error to output stream.

+
+
Parameters:
+

os – The output stream to write the error on.

+
+
+
+ +
+
+std::string getFilename() const
+
+
Returns:
+

The file name.

+
+
+
+ +
+
+unsigned long getLine() const
+
+
Returns:
+

The line number of the parsing error.

+
+
+
+ +
+
+unsigned long getColumn() const
+
+
Returns:
+

The column number of the parsing error.

+
+
+
+ +
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/quickstart.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/quickstart.html new file mode 100644 index 0000000000..29745499c9 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/cpp/quickstart.html @@ -0,0 +1,1118 @@ + + + + + + + + + + + + + Quickstart Guide — cvc5 documentation + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Quickstart Guide

+

First, create a cvc5 TermManager instance:

+
TermManager tm;
+
+
+

Then, create a cvc5 Solver instance:

+
Solver solver(tm);
+
+
+

We will ask the solver to produce models and unsat cores in the following, +and for this we have to enable the following options.

+
solver.setOption("produce-models", "true");
+solver.setOption("produce-unsat-cores", "true");
+
+
+

Next we set the logic. +The simplest way to set a logic for the solver is to choose “ALL”. +This enables all logics in the solver. +Alternatively, "QF_ALL" enables all logics without quantifiers. +To optimize the solver’s behavior for a more specific logic, +use the logic name, e.g. "QF_BV" or "QF_AUFBV".

+
solver.setLogic("ALL");
+
+
+

In the following, we will define constraints of reals and integers. +For this, we first query the solver for the corresponding sorts.

+
Sort realSort = tm.getRealSort();
+Sort intSort = tm.getIntegerSort();
+
+
+

Now, we create two constants x and y of sort Real, +and two constants a and b of sort Integer. +Notice that these are symbolic constants, but not actual values.

+
Term x = tm.mkConst(realSort, "x");
+Term y = tm.mkConst(realSort, "y");
+Term a = tm.mkConst(intSort, "a");
+Term b = tm.mkConst(intSort, "b");
+
+
+

We define the following constraints regarding x and y:

+
+\[(0 < x) \wedge (0 < y) \wedge (x + y < 1) \wedge (x \leq y)\]
+

We construct the required terms and assert them as follows:

+
// Formally, constraints are also terms. Their sort is Boolean.
+// We will construct these constraints gradually,
+// by defining each of their components.
+// We start with the constant numerals 0 and 1:
+Term zero = tm.mkReal(0);
+Term one = tm.mkReal(1);
+
+// Next, we construct the term x + y
+Term xPlusY = tm.mkTerm(Kind::ADD, {x, y});
+
+// Now we can define the constraints.
+// They use the operators +, <=, and <.
+// In the API, these are denoted by ADD, LEQ, and LT.
+// A list of available operators is available in:
+// src/api/cpp/cvc5_kind.h
+Term constraint1 = tm.mkTerm(Kind::LT, {zero, x});
+Term constraint2 = tm.mkTerm(Kind::LT, {zero, y});
+Term constraint3 = tm.mkTerm(Kind::LT, {xPlusY, one});
+Term constraint4 = tm.mkTerm(Kind::LEQ, {x, y});
+
+// Now we assert the constraints to the solver.
+solver.assertFormula(constraint1);
+solver.assertFormula(constraint2);
+solver.assertFormula(constraint3);
+solver.assertFormula(constraint4);
+
+
+

Now we check if the asserted formula is satisfiable, that is, we check if +there exist values of sort Real for x and y that satisfy all +the constraints.

+
Result r1 = solver.checkSat();
+
+
+

The result we get from this satisfiability check is either sat, unsat +or unknown. +It’s status can be queried via +cvc5::Result::isSat(), +cvc5::Result::isUnsat() and +cvc5::Result::isSatUnknown(). +Alternatively, it can also be printed.

+
std::cout << "expected: sat" << std::endl;
+std::cout << "result: " << r1 << std::endl;
+
+
+

This will print:

+
expected: sat
+result: sat
+
+
+

Now, we query the solver for the values for x and y that satisfy +the constraints.

+
Term xVal = solver.getValue(x);
+Term yVal = solver.getValue(y);
+
+
+

It is also possible to get values for terms that do not appear in the original +formula.

+
Term xMinusY = tm.mkTerm(Kind::SUB, {x, y});
+Term xMinusYVal = solver.getValue(xMinusY);
+
+
+

We can retrieve the string representation of these values as follows.

+
std::string xStr = xVal.getRealValue();
+std::string yStr = yVal.getRealValue();
+std::string xMinusYStr = xMinusYVal.getRealValue();
+
+std::cout << "value for x: " << xStr << std::endl;
+std::cout << "value for y: " << yStr << std::endl;
+std::cout << "value for x - y: " << xMinusYStr << std::endl;
+
+
+

This will print the following:

+
value for x: 1/6
+value for y: 1/6
+value for x - y: 0.0
+
+
+

We can convert these values to C++ types.

+
// Further, we can convert the values to cpp types
+std::pair<int64_t, uint64_t> xPair = xVal.getReal64Value();
+std::pair<int64_t, uint64_t> yPair = yVal.getReal64Value();
+std::pair<int64_t, uint64_t> xMinusYPair = xMinusYVal.getReal64Value();
+
+std::cout << "value for x: " << xPair.first << "/" << xPair.second
+          << std::endl;
+std::cout << "value for y: " << yPair.first << "/" << yPair.second
+          << std::endl;
+std::cout << "value for x - y: " << xMinusYPair.first << "/"
+          << xMinusYPair.second << std::endl;
+
+
+

Another way to independently compute the value of x - y would be to +perform the (rational) arithmetic manually. +However, for more complex terms, it is easier to let the solver do the +evaluation.

+
std::pair<int64_t, uint64_t> xMinusYComputed = {
+  xPair.first * yPair.second - xPair.second * yPair.first,
+  xPair.second * yPair.second
+};
+uint64_t g = std::gcd(xMinusYComputed.first, xMinusYComputed.second);
+xMinusYComputed = { xMinusYComputed.first / g, xMinusYComputed.second / g };
+if (xMinusYComputed == xMinusYPair)
+{
+  std::cout << "computed correctly" << std::endl;
+}
+else
+{
+  std::cout << "computed incorrectly" << std::endl;
+}
+
+
+

This will print:

+
computed correctly
+
+
+

Next, we will check satisfiability of the same formula, +only this time over integer variables a and b. +For this, we first reset the assertions added to the solver.

+
solver.resetAssertions();
+
+
+

Next, we assert the same assertions as above, but with integers. +This time, we inline the construction of terms +to the assertion command.

+
solver.assertFormula(tm.mkTerm(Kind::LT, {tm.mkInteger(0), a}));
+solver.assertFormula(tm.mkTerm(Kind::LT, {tm.mkInteger(0), b}));
+solver.assertFormula(
+    tm.mkTerm(Kind::LT, {tm.mkTerm(Kind::ADD, {a, b}), tm.mkInteger(1)}));
+solver.assertFormula(tm.mkTerm(Kind::LEQ, {a, b}));
+
+
+

Now, we check whether the revised assertion is satisfiable.

+
Result r2 = solver.checkSat();
+
+
+
std::cout << "expected: unsat" << std::endl;
+std::cout << "result: " << r2 << std::endl;
+
+
+

This time the asserted formula is unsatisfiable:

+
expected: unsat
+result: unsat
+
+
+

We can query the solver for an unsatisfiable core, that is, a subset +of the assertions that is already unsatisfiable.

+
std::vector<Term> unsatCore = solver.getUnsatCore();
+std::cout << "unsat core size: " << unsatCore.size() << std::endl;
+std::cout << "unsat core: " << std::endl;
+for (const Term& t : unsatCore)
+{
+  std::cout << t << std::endl;
+}
+
+
+

This will print:

+
unsat core size: 3
+unsat core:
+(< 0 a)
+(< 0 b)
+(< (+ a b) 1)
+
+
+
+

Example

+
+

examples/api/cpp/quickstart.cpp

+
  1/******************************************************************************
+  2 * Top contributors (to current version):
+  3 *   Yoni Zohar, Aina Niemetz, Gereon Kremer
+  4 *
+  5 * This file is part of the cvc5 project.
+  6 *
+  7 * Copyright (c) 2009-2024 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 * A simple demonstration of the API capabilities of cvc5.
+ 14 *
+ 15 */
+ 16
+ 17#include <cvc5/cvc5.h>
+ 18
+ 19#include <iostream>
+ 20#include <numeric>
+ 21
+ 22using namespace cvc5;
+ 23
+ 24int main()
+ 25{
+ 26  // Create a term manager
+ 27  //! [docs-cpp-quickstart-0 start]
+ 28  TermManager tm;
+ 29  //! [docs-cpp-quickstart-0 end]
+ 30  // Create a solver
+ 31  //! [docs-cpp-quickstart-1 start]
+ 32  Solver solver(tm);
+ 33  //! [docs-cpp-quickstart-1 end]
+ 34
+ 35  // We will ask the solver to produce models and unsat cores,
+ 36  // hence these options should be turned on.
+ 37  //! [docs-cpp-quickstart-2 start]
+ 38  solver.setOption("produce-models", "true");
+ 39  solver.setOption("produce-unsat-cores", "true");
+ 40  //! [docs-cpp-quickstart-2 end]
+ 41
+ 42  // The simplest way to set a logic for the solver is to choose "ALL".
+ 43  // This enables all logics in the solver.
+ 44  // Alternatively, "QF_ALL" enables all logics without quantifiers.
+ 45  // To optimize the solver's behavior for a more specific logic,
+ 46  // use the logic name, e.g. "QF_BV" or "QF_AUFBV".
+ 47
+ 48  // Set the logic
+ 49  //! [docs-cpp-quickstart-3 start]
+ 50  solver.setLogic("ALL");
+ 51  //! [docs-cpp-quickstart-3 end]
+ 52
+ 53  // In this example, we will define constraints over reals and integers.
+ 54  // Hence, we first obtain the corresponding sorts.
+ 55  //! [docs-cpp-quickstart-4 start]
+ 56  Sort realSort = tm.getRealSort();
+ 57  Sort intSort = tm.getIntegerSort();
+ 58  //! [docs-cpp-quickstart-4 end]
+ 59
+ 60  // x and y will be real variables, while a and b will be integer variables.
+ 61  // Formally, their cpp type is Term,
+ 62  // and they are called "constants" in SMT jargon:
+ 63  //! [docs-cpp-quickstart-5 start]
+ 64  Term x = tm.mkConst(realSort, "x");
+ 65  Term y = tm.mkConst(realSort, "y");
+ 66  Term a = tm.mkConst(intSort, "a");
+ 67  Term b = tm.mkConst(intSort, "b");
+ 68  //! [docs-cpp-quickstart-5 end]
+ 69
+ 70  // Our constraints regarding x and y will be:
+ 71  //
+ 72  //   (1)  0 < x
+ 73  //   (2)  0 < y
+ 74  //   (3)  x + y < 1
+ 75  //   (4)  x <= y
+ 76  //
+ 77
+ 78  //! [docs-cpp-quickstart-6 start]
+ 79  // Formally, constraints are also terms. Their sort is Boolean.
+ 80  // We will construct these constraints gradually,
+ 81  // by defining each of their components.
+ 82  // We start with the constant numerals 0 and 1:
+ 83  Term zero = tm.mkReal(0);
+ 84  Term one = tm.mkReal(1);
+ 85
+ 86  // Next, we construct the term x + y
+ 87  Term xPlusY = tm.mkTerm(Kind::ADD, {x, y});
+ 88
+ 89  // Now we can define the constraints.
+ 90  // They use the operators +, <=, and <.
+ 91  // In the API, these are denoted by ADD, LEQ, and LT.
+ 92  // A list of available operators is available in:
+ 93  // src/api/cpp/cvc5_kind.h
+ 94  Term constraint1 = tm.mkTerm(Kind::LT, {zero, x});
+ 95  Term constraint2 = tm.mkTerm(Kind::LT, {zero, y});
+ 96  Term constraint3 = tm.mkTerm(Kind::LT, {xPlusY, one});
+ 97  Term constraint4 = tm.mkTerm(Kind::LEQ, {x, y});
+ 98
+ 99  // Now we assert the constraints to the solver.
+100  solver.assertFormula(constraint1);
+101  solver.assertFormula(constraint2);
+102  solver.assertFormula(constraint3);
+103  solver.assertFormula(constraint4);
+104  //! [docs-cpp-quickstart-6 end]
+105
+106  // Check if the formula is satisfiable, that is,
+107  // are there real values for x and y that satisfy all the constraints?
+108  //! [docs-cpp-quickstart-7 start]
+109  Result r1 = solver.checkSat();
+110  //! [docs-cpp-quickstart-7 end]
+111
+112  // The result is either SAT, UNSAT, or UNKNOWN.
+113  // In this case, it is SAT.
+114  //! [docs-cpp-quickstart-8 start]
+115  std::cout << "expected: sat" << std::endl;
+116  std::cout << "result: " << r1 << std::endl;
+117  //! [docs-cpp-quickstart-8 end]
+118
+119  // We can get the values for x and y that satisfy the constraints.
+120  //! [docs-cpp-quickstart-9 start]
+121  Term xVal = solver.getValue(x);
+122  Term yVal = solver.getValue(y);
+123  //! [docs-cpp-quickstart-9 end]
+124
+125  // It is also possible to get values for compound terms,
+126  // even if those did not appear in the original formula.
+127  //! [docs-cpp-quickstart-10 start]
+128  Term xMinusY = tm.mkTerm(Kind::SUB, {x, y});
+129  Term xMinusYVal = solver.getValue(xMinusY);
+130  //! [docs-cpp-quickstart-10 end]
+131
+132  // We can now obtain the string representations of the values.
+133  //! [docs-cpp-quickstart-11 start]
+134  std::string xStr = xVal.getRealValue();
+135  std::string yStr = yVal.getRealValue();
+136  std::string xMinusYStr = xMinusYVal.getRealValue();
+137
+138  std::cout << "value for x: " << xStr << std::endl;
+139  std::cout << "value for y: " << yStr << std::endl;
+140  std::cout << "value for x - y: " << xMinusYStr << std::endl;
+141  //! [docs-cpp-quickstart-11 end]
+142
+143  //! [docs-cpp-quickstart-12 start]
+144  // Further, we can convert the values to cpp types
+145  std::pair<int64_t, uint64_t> xPair = xVal.getReal64Value();
+146  std::pair<int64_t, uint64_t> yPair = yVal.getReal64Value();
+147  std::pair<int64_t, uint64_t> xMinusYPair = xMinusYVal.getReal64Value();
+148
+149  std::cout << "value for x: " << xPair.first << "/" << xPair.second
+150            << std::endl;
+151  std::cout << "value for y: " << yPair.first << "/" << yPair.second
+152            << std::endl;
+153  std::cout << "value for x - y: " << xMinusYPair.first << "/"
+154            << xMinusYPair.second << std::endl;
+155  //! [docs-cpp-quickstart-12 end]
+156
+157  // Another way to independently compute the value of x - y would be
+158  // to perform the (rational) arithmetic manually.
+159  // However, for more complex terms,
+160  // it is easier to let the solver do the evaluation.
+161  //! [docs-cpp-quickstart-13 start]
+162  std::pair<int64_t, uint64_t> xMinusYComputed = {
+163    xPair.first * yPair.second - xPair.second * yPair.first,
+164    xPair.second * yPair.second
+165  };
+166  uint64_t g = std::gcd(xMinusYComputed.first, xMinusYComputed.second);
+167  xMinusYComputed = { xMinusYComputed.first / g, xMinusYComputed.second / g };
+168  if (xMinusYComputed == xMinusYPair)
+169  {
+170    std::cout << "computed correctly" << std::endl;
+171  }
+172  else
+173  {
+174    std::cout << "computed incorrectly" << std::endl;
+175  }
+176  //! [docs-cpp-quickstart-13 end]
+177
+178  // Next, we will check satisfiability of the same formula,
+179  // only this time over integer variables a and b.
+180
+181  // We start by resetting assertions added to the solver.
+182  //! [docs-cpp-quickstart-14 start]
+183  solver.resetAssertions();
+184  //! [docs-cpp-quickstart-14 end]
+185
+186  // Next, we assert the same assertions above with integers.
+187  // This time, we inline the construction of terms
+188  // to the assertion command.
+189  //! [docs-cpp-quickstart-15 start]
+190  solver.assertFormula(tm.mkTerm(Kind::LT, {tm.mkInteger(0), a}));
+191  solver.assertFormula(tm.mkTerm(Kind::LT, {tm.mkInteger(0), b}));
+192  solver.assertFormula(
+193      tm.mkTerm(Kind::LT, {tm.mkTerm(Kind::ADD, {a, b}), tm.mkInteger(1)}));
+194  solver.assertFormula(tm.mkTerm(Kind::LEQ, {a, b}));
+195  //! [docs-cpp-quickstart-15 end]
+196
+197  // We check whether the revised assertion is satisfiable.
+198  //! [docs-cpp-quickstart-16 start]
+199  Result r2 = solver.checkSat();
+200  //! [docs-cpp-quickstart-16 end]
+201
+202  // This time the formula is unsatisfiable
+203  //! [docs-cpp-quickstart-17 start]
+204  std::cout << "expected: unsat" << std::endl;
+205  std::cout << "result: " << r2 << std::endl;
+206  //! [docs-cpp-quickstart-17 end]
+207
+208  // We can query the solver for an unsatisfiable core, i.e., a subset
+209  // of the assertions that is already unsatisfiable.
+210  //! [docs-cpp-quickstart-18 start]
+211  std::vector<Term> unsatCore = solver.getUnsatCore();
+212  std::cout << "unsat core size: " << unsatCore.size() << std::endl;
+213  std::cout << "unsat core: " << std::endl;
+214  for (const Term& t : unsatCore)
+215  {
+216    std::cout << t << std::endl;
+217  }
+218  //! [docs-cpp-quickstart-18 end]
+219
+220  return 0;
+221}
+
+
+
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/allclasses-index.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/allclasses-index.html new file mode 100644 index 0000000000..45991887f0 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/allclasses-index.html @@ -0,0 +1,375 @@ + + + + + +All Classes + + + + + + + + + + + + + + +
+ +
+
+
+

All Classes

+
+
+ +
+
+ + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/allclasses.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/allclasses.html new file mode 100644 index 0000000000..227972524e --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/allclasses.html @@ -0,0 +1,72 @@ + + + + + +All Classes + + + + + + + + + + + + +
+

All Classes

+
+ +
+
+ + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/allpackages-index.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/allpackages-index.html new file mode 100644 index 0000000000..f744d015e8 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/allpackages-index.html @@ -0,0 +1,170 @@ + + + + + +All Packages + + + + + + + + + + + + + + +
+ +
+
+
+

All Packages

+
+
+ +
+
+ + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/constant-values.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/constant-values.html new file mode 100644 index 0000000000..aebb1bce84 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/constant-values.html @@ -0,0 +1,181 @@ + + + + + +Constant Field Values + + + + + + + + + + + + + + +
+ +
+
+
+

Constant Field Values

+
+

Contents

+ +
+
+
+ + +
+

io.github.*

+
    +
  • + + + + + + + + + + + + + + +
    io.github.cvc5.Utils 
    Modifier and TypeConstant FieldValue
    + +public static final java.lang.StringLIBPATH_IN_JAR"/cvc5-libs"
    +
  • +
+
+
+
+ + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/deprecated-list.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/deprecated-list.html new file mode 100644 index 0000000000..efc9336a4b --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/deprecated-list.html @@ -0,0 +1,721 @@ + + + + + +Deprecated List + + + + + + + + + + + + + + +
+ +
+
+
+

Deprecated API

+

Contents

+ +
+
+ + + + + + + +
+
+ + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/element-list b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/element-list new file mode 100644 index 0000000000..ead6914ff6 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/element-list @@ -0,0 +1,2 @@ +io.github.cvc5 +io.github.cvc5.modes diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/help-doc.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/help-doc.html new file mode 100644 index 0000000000..f7754957a7 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/help-doc.html @@ -0,0 +1,274 @@ + + + + + +API Help + + + + + + + + + + + + + + +
+ +
+
+
+

How This API Document Is Organized

+
This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.
+
+
+ +
+This help file applies to API documentation generated by the standard doclet.
+
+ + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/index-all.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/index-all.html new file mode 100644 index 0000000000..00b872dbd6 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/index-all.html @@ -0,0 +1,9016 @@ + + + + + +Index + + + + + + + + + + + + + + +
+ +
+
+
A B C D E F G H I K L M N O P Q R S T U V W X 
All Classes All Packages + + +

A

+
+
ABS - io.github.cvc5.Kind
+
+
Absolute value.
+
+
ABSTRACT_SORT - io.github.cvc5.SortKind
+
+
An abstract sort.
+
+
AbstractPlugin - Class in io.github.cvc5
+
 
+
AbstractPlugin(TermManager) - Constructor for class io.github.cvc5.AbstractPlugin
+
+
Create plugin instance.
+
+
ACI_NORM - io.github.cvc5.ProofRule
+
+
Builtin theory – associative/commutative/idempotency/identity normalization + + \[ + \inferrule{- \mid t = s}{t = s} + \] + where \(\texttt{expr::isACNorm(t, s)} = \top\).
+
+
ADD - io.github.cvc5.Kind
+
+
Arithmetic addition.
+
+
addAnyConstant(Term) - Method in class io.github.cvc5.Grammar
+
+
Allow ntSymbol to be an arbitrary constant.
+
+
addAnyVariable(Term) - Method in class io.github.cvc5.Grammar
+
+
Allow ntSymbol to be any input variable to corresponding + synth-fun or synth-inv with the same sort as + ntSymbol.
+
+
addConstructor(DatatypeConstructorDecl) - Method in class io.github.cvc5.DatatypeDecl
+
+
Add datatype constructor declaration.
+
+
addPlugin(AbstractPlugin) - Method in class io.github.cvc5.Solver
+
+
Add plugin to this solver.
+
+
addRule(Term, Term) - Method in class io.github.cvc5.Grammar
+
+
Add rule to the set of rules corresponding to ntSymbol.
+
+
addRules(long, long, long[]) - Method in class io.github.cvc5.Grammar
+
 
+
addRules(Term, Term[]) - Method in class io.github.cvc5.Grammar
+
+
Add rules to the set of rules corresponding to ntSymbol.
+
+
addSelector(String, Sort) - Method in class io.github.cvc5.DatatypeConstructorDecl
+
+
Add datatype selector declaration.
+
+
addSelectorSelf(String) - Method in class io.github.cvc5.DatatypeConstructorDecl
+
+
Add datatype selector declaration whose codomain type is the datatype + itself.
+
+
addSelectorUnresolved(String, String) - Method in class io.github.cvc5.DatatypeConstructorDecl
+
+
Add datatype selector declaration whose codomain sort is an unresolved + datatype with the given name.
+
+
addSygusAssume(Term) - Method in class io.github.cvc5.Solver
+
+
Add a forumla to the set of Sygus assumptions.
+
+
addSygusConstraint(Term) - Method in class io.github.cvc5.Solver
+
+
Add a forumla to the set of Sygus constraints.
+
+
addSygusInvConstraint(Term, Term, Term, Term) - Method in class io.github.cvc5.Solver
+
+
Add a set of Sygus constraints to the current state that correspond to an + invariant synthesis problem.
+
+
ALETHE - io.github.cvc5.modes.ProofFormat
+
+
Output Alethe proof.
+
+
ALETHE_RULE - io.github.cvc5.ProofRule
+
+
External – Alethe + + Place holder for Alethe rules.
+
+
ALPHA_EQUIV - io.github.cvc5.ProofRule
+
+
Quantifiers – Alpha equivalence + + \[ + + \inferruleSC{-\mid F, (y_1 \ldots y_n), (z_1,\dots, z_n)} + {F = F\{y_1\mapsto z_1,\dots,y_n\mapsto z_n\}} + {if $y_1,\dots,y_n, z_1,\dots,z_n$ are unique bound variables} + \] + Notice that this rule is correct only when \(z_1,\dots,z_n\) are not + contained in \(FV(F) \setminus \{ y_1,\dots, y_n \}\), where + \(FV(\varphi)\) are the free variables of \(\varphi\).
+
+
AND - io.github.cvc5.Kind
+
+
Logical conjunction.
+
+
AND_ELIM - io.github.cvc5.ProofRule
+
+
Boolean – And elimination + + \[ + \inferrule{(F_1 \land \dots \land F_n) \mid i}{F_i} + \]
+
+
AND_INTRO - io.github.cvc5.ProofRule
+
+
Boolean – And introduction + + \[ + \inferrule{F_1 \dots F_n \mid -}{(F_1 \land \dots \land F_n)} + \]
+
+
andTerm(Term) - Method in class io.github.cvc5.Term
+
+
Boolean and.
+
+
appendIncrementalStringInput(String) - Method in class io.github.cvc5.InputParser
+
+
Append string to the input being parsed by this parser.
+
+
apply(Term[]) - Method in interface io.github.cvc5.IOracle
+
 
+
APPLY_CONSTRUCTOR - io.github.cvc5.Kind
+
+
Datatype constructor application.
+
+
APPLY_SELECTOR - io.github.cvc5.Kind
+
+
Datatype selector application.
+
+
APPLY_TESTER - io.github.cvc5.Kind
+
+
Datatype tester application.
+
+
APPLY_UF - io.github.cvc5.Kind
+
+
Application of an uninterpreted function.
+
+
APPLY_UPDATER - io.github.cvc5.Kind
+
+
Datatype update application.
+
+
ARCCOSECANT - io.github.cvc5.Kind
+
+
Arc cosecant function.
+
+
ARCCOSINE - io.github.cvc5.Kind
+
+
Arc cosine function.
+
+
ARCCOTANGENT - io.github.cvc5.Kind
+
+
Arc cotangent function.
+
+
ARCSECANT - io.github.cvc5.Kind
+
+
Arc secant function.
+
+
ARCSINE - io.github.cvc5.Kind
+
+
Arc sine function.
+
+
ARCTANGENT - io.github.cvc5.Kind
+
+
Arc tangent function.
+
+
ARITH_ABS_ELIM_INT - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule arith-abs-elim-int
+
+
ARITH_ABS_ELIM_REAL - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule arith-abs-elim-real
+
+
ARITH_ABS_EQ - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule arith-abs-eq
+
+
ARITH_ABS_INT_GT - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule arith-abs-int-gt
+
+
ARITH_ABS_REAL_GT - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule arith-abs-real-gt
+
+
ARITH_COSECENT_ELIM - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule arith-cosecent-elim
+
+
ARITH_COSINE_ELIM - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule arith-cosine-elim
+
+
ARITH_COTANGENT_ELIM - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule arith-cotangent-elim
+
+
ARITH_DIV_ELIM_TO_REAL1 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule arith-div-elim-to-real1
+
+
ARITH_DIV_ELIM_TO_REAL2 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule arith-div-elim-to-real2
+
+
ARITH_DIV_TOTAL_INT - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule arith-div-total-int
+
+
ARITH_DIV_TOTAL_REAL - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule arith-div-total-real
+
+
ARITH_DIV_TOTAL_ZERO_INT - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule arith-div-total-zero-int
+
+
ARITH_DIV_TOTAL_ZERO_REAL - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule arith-div-total-zero-real
+
+
ARITH_ELIM_GT - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule arith-elim-gt
+
+
ARITH_ELIM_INT_GT - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule arith-elim-int-gt
+
+
ARITH_ELIM_INT_LT - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule arith-elim-int-lt
+
+
ARITH_ELIM_LEQ - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule arith-elim-leq
+
+
ARITH_ELIM_LT - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule arith-elim-lt
+
+
ARITH_EQ_ELIM_INT - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule arith-eq-elim-int
+
+
ARITH_EQ_ELIM_REAL - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule arith-eq-elim-real
+
+
ARITH_GEQ_NORM1_INT - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule arith-geq-norm1-int
+
+
ARITH_GEQ_NORM1_REAL - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule arith-geq-norm1-real
+
+
ARITH_GEQ_NORM2 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule arith-geq-norm2
+
+
ARITH_GEQ_TIGHTEN - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule arith-geq-tighten
+
+
ARITH_INT_DIV_TOTAL - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule arith-int-div-total
+
+
ARITH_INT_DIV_TOTAL_ONE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule arith-int-div-total-one
+
+
ARITH_INT_DIV_TOTAL_ZERO - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule arith-int-div-total-zero
+
+
ARITH_INT_MOD_TOTAL - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule arith-int-mod-total
+
+
ARITH_INT_MOD_TOTAL_ONE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule arith-int-mod-total-one
+
+
ARITH_INT_MOD_TOTAL_ZERO - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule arith-int-mod-total-zero
+
+
ARITH_LEQ_NORM - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule arith-leq-norm
+
+
ARITH_MUL_ONE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule arith-mul-one
+
+
ARITH_MUL_ZERO - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule arith-mul-zero
+
+
ARITH_MULT_ABS_COMPARISON - io.github.cvc5.ProofRule
+
+
Arithmetic – Non-linear multiply absolute value comparison + + \[ + \inferrule{F_1 \dots F_n \mid -}{F} + \] + where \(F\) is of the form + \(\left| t_1 \cdot t_n \right| \diamond \left| s_1 \cdot s_n \right|\).
+
+
ARITH_MULT_DIST - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule arith-mult-dist
+
+
ARITH_MULT_FLATTEN - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule arith-mult-flatten
+
+
ARITH_MULT_NEG - io.github.cvc5.ProofRule
+
+
Arithmetic – Multiplication with negative factor + + \[ + \inferrule{- \mid m, l \diamond r}{(m < 0 \land l \diamond r) \rightarrow m \cdot l \diamond_{inv} m \cdot r} + \] + where \(\diamond\) is a relation symbol and \(\diamond_{inv}\) the + inverted relation symbol.
+
+
ARITH_MULT_POS - io.github.cvc5.ProofRule
+
+
Arithmetic – Multiplication with positive factor + + \[ + \inferrule{- \mid m, l \diamond r}{(m > 0 \land l \diamond r) \rightarrow m \cdot l \diamond m \cdot r} + \] + where \(\diamond\) is a relation symbol.
+
+
ARITH_MULT_SIGN - io.github.cvc5.ProofRule
+
+
Arithmetic – Sign inference + + \[ + \inferrule{- \mid f_1 \dots f_k, m}{(f_1 \land \dots \land f_k) \rightarrow m \diamond 0} + \] + where \(f_1 \dots f_k\) are variables compared to zero (less, greater + or not equal), \(m\) is a monomial from these variables and + \(\diamond\) is the comparison (less or equal) that results from the + signs of the variables.
+
+
ARITH_MULT_TANGENT - io.github.cvc5.ProofRule
+
+
Arithmetic – Multiplication tangent plane + + \[ + \inferruleSC{- \mid x, y, a, b, \sigma}{(t \leq tplane) = ((x \leq a \land y \geq b) \lor (x \geq a \land y \leq b))}{if $\sigma = \bot$} + + \inferruleSC{- \mid x, y, a, b, \sigma}{(t \geq tplane) = ((x \leq a \land y \leq b) \lor (x \geq a \land y \geq b))}{if $\sigma = \top$} + \] + where \(x,y\) are real terms (variables or extended terms), + \(t = x \cdot y\), \(a,b\) are real + constants, \(\sigma \in \{ \top, \bot\}\) and \(tplane := b \cdot x + a \cdot y - a \cdot b\) is the tangent plane of \(x \cdot y\) at \((a,b)\).
+
+
ARITH_PI_NOT_INT - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule arith-pi-not-int
+
+
ARITH_PLUS_FLATTEN - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule arith-plus-flatten
+
+
ARITH_POLY_NORM - io.github.cvc5.ProofRule
+
+
Arithmetic – Polynomial normalization + + \[ + \inferrule{- \mid t = s}{t = s} + \] + where \(\texttt{arith::PolyNorm::isArithPolyNorm(t, s)} = \top\).
+
+
ARITH_POLY_NORM_REL - io.github.cvc5.ProofRule
+
+
Arithmetic – Polynomial normalization for relations + + ..
+
+
ARITH_POW_ELIM - io.github.cvc5.ProofRewriteRule
+
+
Arithmetic – power elimination + + \[ + (x ^ c) = (x \cdot \ldots \cdot x) + \] + where \(c\) is a non-negative integer.
+
+
ARITH_REDUCTION - io.github.cvc5.ProofRule
+
+
Arithmetic – Reduction + + \[ + \inferrule{- \mid t}{F} + \] + where \(t\) is an application of an extended arithmetic operator (e.g.
+
+
ARITH_REFL_GEQ - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule arith-refl-geq
+
+
ARITH_REFL_GT - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule arith-refl-gt
+
+
ARITH_REFL_LEQ - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule arith-refl-leq
+
+
ARITH_REFL_LT - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule arith-refl-lt
+
+
ARITH_SECENT_ELIM - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule arith-secent-elim
+
+
ARITH_SINE_PI2 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule arith-sine-pi2
+
+
ARITH_SINE_ZERO - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule arith-sine-zero
+
+
ARITH_STRING_PRED_ENTAIL - io.github.cvc5.ProofRewriteRule
+
+
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_SAFE_APPROX - io.github.cvc5.ProofRewriteRule
+
+
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)\).
+
+
ARITH_SUM_UB - io.github.cvc5.ProofRule
+
+
Arithmetic – Sum upper bounds + + \[ + \inferrule{P_1 \dots P_n \mid -}{L \diamond R} + \] + where \(P_i\) has the form \(L_i \diamond_i R_i\) and + \(\diamond_i \in \{<, \leq, =\}\).
+
+
ARITH_TANGENT_ELIM - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule arith-tangent-elim
+
+
ARITH_TO_INT_ELIM_TO_REAL - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule arith-to-int-elim-to-real
+
+
ARITH_TO_REAL_ELIM - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule arith-to-real-elim
+
+
ARITH_TRANS_EXP_APPROX_ABOVE_NEG - io.github.cvc5.ProofRule
+
+
Arithmetic – Transcendentals – Exp is approximated from above for + negative values + + \[ + \inferrule{- \mid d,t,l,u}{(t \geq l \land t \leq u) \rightarrow exp(t) + \leq \texttt{secant}(\exp, l, u, t)} + \] + where \(d\) is an even positive number, \(t\) an arithmetic term + and \(l,u\) are lower and upper bounds on \(t\).
+
+
ARITH_TRANS_EXP_APPROX_ABOVE_POS - io.github.cvc5.ProofRule
+
+
Arithmetic – Transcendentals – Exp is approximated from above for + positive values + + \[ + \inferrule{- \mid d,t,l,u}{(t \geq l \land t \leq u) \rightarrow exp(t) + \leq \texttt{secant-pos}(\exp, l, u, t)} + \] + where \(d\) is an even positive number, \(t\) an arithmetic term + and \(l,u\) are lower and upper bounds on \(t\).
+
+
ARITH_TRANS_EXP_APPROX_BELOW - io.github.cvc5.ProofRule
+
+
Arithmetic – Transcendentals – Exp is approximated from below + + \[ + \inferrule{- \mid d,c,t}{t \geq c \rightarrow exp(t) \geq \texttt{maclaurin}(\exp, d, c)} + \] + where \(d\) is an odd positive number, \(t\) an arithmetic term and + \(\texttt{maclaurin}(\exp, d, c)\) is the \(d\)'th taylor + polynomial at zero (also called the Maclaurin series) of the exponential + function evaluated at \(c\).
+
+
ARITH_TRANS_EXP_NEG - io.github.cvc5.ProofRule
+
+
Arithmetic – Transcendentals – Exp at negative values + + \[ + \inferrule{- \mid t}{(t < 0) \leftrightarrow (\exp(t) < 1)} + \]
+
+
ARITH_TRANS_EXP_POSITIVITY - io.github.cvc5.ProofRule
+
+
Arithmetic – Transcendentals – Exp is always positive + + \[ + \inferrule{- \mid t}{\exp(t) > 0} + \]
+
+
ARITH_TRANS_EXP_SUPER_LIN - io.github.cvc5.ProofRule
+
+
Arithmetic – Transcendentals – Exp grows super-linearly for positive + values + + \[ + \inferrule{- \mid t}{t \leq 0 \lor \exp(t) > t+1} + \]
+
+
ARITH_TRANS_EXP_ZERO - io.github.cvc5.ProofRule
+
+
Arithmetic – Transcendentals – Exp at zero + + \[ + \inferrule{- \mid t}{(t=0) \leftrightarrow (\exp(t) = 1)} + \]
+
+
ARITH_TRANS_PI - io.github.cvc5.ProofRule
+
+
Arithmetic – Transcendentals – Assert bounds on Pi + + \[ + \inferrule{- \mid l, u}{\texttt{real.pi} \geq l \land \texttt{real.pi} + \leq u} + \] + where \(l,u\) are valid lower and upper bounds on \(\pi\).
+
+
ARITH_TRANS_SINE_APPROX_ABOVE_NEG - io.github.cvc5.ProofRule
+
+
Arithmetic – Transcendentals – Sine is approximated from above for + negative values + + \[ + \inferrule{- \mid d,t,lb,ub,l,u}{(t \geq lb land t \leq ub) \rightarrow + \sin(t) \leq \texttt{secant}(\sin, l, u, t)} + \] + where \(d\) is an even positive number, \(t\) an arithmetic term, + \(lb,ub\) are symbolic lower and upper bounds on \(t\) (possibly + containing \(\pi\)) and \(l,u\) the evaluated lower and upper + bounds on \(t\).
+
+
ARITH_TRANS_SINE_APPROX_ABOVE_POS - io.github.cvc5.ProofRule
+
+
Arithmetic – Transcendentals – Sine is approximated from above for + positive values + + \[ + \inferrule{- \mid d,t,c,lb,ub}{(t \geq lb land t \leq ub) \rightarrow + \sin(t) \leq \texttt{upper}(\sin, c)} + \] + where \(d\) is an even positive number, \(t\) an arithmetic term, + \(c\) an arithmetic constant and \(lb,ub\) are symbolic lower and + upper bounds on \(t\) (possibly containing \(\pi\)).
+
+
ARITH_TRANS_SINE_APPROX_BELOW_NEG - io.github.cvc5.ProofRule
+
+
Arithmetic – Transcendentals – Sine is approximated from below for + negative values + + \[ + \inferrule{- \mid d,t,c,lb,ub}{(t \geq lb land t \leq ub) \rightarrow + \sin(t) \geq \texttt{lower}(\sin, c)} + \] + where \(d\) is an even positive number, \(t\) an arithmetic term, + \(c\) an arithmetic constant and \(lb,ub\) are symbolic lower and + upper bounds on \(t\) (possibly containing \(\pi\)).
+
+
ARITH_TRANS_SINE_APPROX_BELOW_POS - io.github.cvc5.ProofRule
+
+
Arithmetic – Transcendentals – Sine is approximated from below for + positive values + + \[ + \inferrule{- \mid d,t,lb,ub,l,u}{(t \geq lb land t \leq ub) \rightarrow + \sin(t) \geq \texttt{secant}(\sin, l, u, t)} + \] + where \(d\) is an even positive number, \(t\) an arithmetic term, + \(lb,ub\) are symbolic lower and upper bounds on \(t\) (possibly + containing \(\pi\)) and \(l,u\) the evaluated lower and upper + bounds on \(t\).
+
+
ARITH_TRANS_SINE_BOUNDS - io.github.cvc5.ProofRule
+
+
Arithmetic – Transcendentals – Sine is always between -1 and 1 + + \[ + \inferrule{- \mid t}{\sin(t) \leq 1 \land \sin(t) \geq -1} + \]
+
+
ARITH_TRANS_SINE_SHIFT - io.github.cvc5.ProofRule
+
+
Arithmetic – Transcendentals – Sine is shifted to -pi...pi + + \[ + \inferrule{- \mid x}{-\pi \leq y \leq \pi \land \sin(y) = \sin(x) + \land (\ite{-\pi \leq x \leq \pi}{x = y}{x = y + 2 \pi s})} + \] + where \(x\) is the argument to sine, \(y\) is a new real skolem + that is \(x\) shifted into \(-\pi \dots \pi\) and \(s\) is a + new integer skolem that is the number of phases \(y\) is shifted.
+
+
ARITH_TRANS_SINE_SYMMETRY - io.github.cvc5.ProofRule
+
+
Arithmetic – Transcendentals – Sine is symmetric with respect to + negation of the argument + + \[ + \inferrule{- \mid t}{\sin(t) - \sin(-t) = 0} + \]
+
+
ARITH_TRANS_SINE_TANGENT_PI - io.github.cvc5.ProofRule
+
+
Arithmetic – Transcendentals – Sine is bounded by the tangents at -pi + and pi + + ..
+
+
ARITH_TRANS_SINE_TANGENT_ZERO - io.github.cvc5.ProofRule
+
+
Arithmetic – Transcendentals – Sine is bounded by the tangent at zero + + ..
+
+
ARITH_TRICHOTOMY - io.github.cvc5.ProofRule
+
+
Arithmetic – Trichotomy of the reals + + \[ + \inferrule{A, B \mid -}{C} + \] + where \(\neg A, \neg B, C\) are \(x < c, x = c, x > c\) in some order.
+
+
ARITH_VTS_DELTA - io.github.cvc5.SkolemId
+
+
Used to reason about virtual term substitution.
+
+
ARITH_VTS_DELTA_FREE - io.github.cvc5.SkolemId
+
+
Used to reason about virtual term substitution.
+
+
ARITH_VTS_INFINITY - io.github.cvc5.SkolemId
+
+
Used to reason about virtual term substitution.
+
+
ARITH_VTS_INFINITY_FREE - io.github.cvc5.SkolemId
+
+
Used to reason about virtual term substitution.
+
+
ARRAY_DEQ_DIFF - io.github.cvc5.SkolemId
+
+
The array diff skolem, which is the witness k for the inference + (=> (not (= A B)) (not (= (select A k) (select B k)))).
+
+
ARRAY_READ_OVER_WRITE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule array-read-over-write
+
+
ARRAY_READ_OVER_WRITE_SPLIT - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule array-read-over-write-split
+
+
ARRAY_READ_OVER_WRITE2 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule array-read-over-write2
+
+
ARRAY_SORT - io.github.cvc5.SortKind
+
+
An array sort, whose argument sorts are the index and element sorts of the + array.
+
+
ARRAY_STORE_OVERWRITE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule array-store-overwrite
+
+
ARRAY_STORE_SELF - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule array-store-self
+
+
ARRAYS_EQ_RANGE_EXPAND - io.github.cvc5.ProofRewriteRule
+
+
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_EXT - io.github.cvc5.ProofRule
+
+
Arrays – Arrays extensionality + + \[ + + \inferrule{a \neq b\mid -} + {\mathit{select}(a,k)\neq\mathit{select}(b,k)} + \] + where \(k\) is the \(\texttt{ARRAY_DEQ_DIFF}\) skolem for `(a, b)`.
+
+
ARRAYS_READ_OVER_WRITE - io.github.cvc5.ProofRule
+
+
Arrays – Read over write + + \[ + + \inferrule{i_1 \neq i_2\mid \mathit{select}(\mathit{store}(a,i_1,e),i_2)} + {\mathit{select}(\mathit{store}(a,i_1,e),i_2) = \mathit{select}(a,i_2)} + \]
+
+
ARRAYS_READ_OVER_WRITE_1 - io.github.cvc5.ProofRule
+
+
Arrays – Read over write 1 + + \[ + + \inferrule{-\mid \mathit{select}(\mathit{store}(a,i,e),i)} + {\mathit{select}(\mathit{store}(a,i,e),i)=e} + \]
+
+
ARRAYS_READ_OVER_WRITE_CONTRA - io.github.cvc5.ProofRule
+
+
Arrays – Read over write, contrapositive + + \[ + + \inferrule{\mathit{select}(\mathit{store}(a,i_2,e),i_1) \neq + \mathit{select}(a,i_1)\mid -}{i_1=i_2} + \]
+
+
ARRAYS_SELECT_CONST - io.github.cvc5.ProofRewriteRule
+
+
Arrays – Constant array select + + \[ + (select A x) = c + \] + where \(A\) is a constant array storing element \(c\).
+
+
assertFormula(Term) - Method in class io.github.cvc5.Solver
+
+
Assert a formula.
+
+
ASSUME - io.github.cvc5.ProofRule
+
+
Assumption (a leaf) + + \[ + + \inferrule{- \mid F}{F} + \] + This rule has special status, in that an application of assume is an + open leaf in a proof that is not (yet) justified.
+
+
+ + + +

B

+
+
BAG_CARD - io.github.cvc5.Kind
+
+
Bag cardinality.
+
+
BAG_CHOOSE - io.github.cvc5.Kind
+
+
Bag choose.
+
+
BAG_COUNT - io.github.cvc5.Kind
+
+
Bag element multiplicity.
+
+
BAG_DIFFERENCE_REMOVE - io.github.cvc5.Kind
+
+
Bag difference remove.
+
+
BAG_DIFFERENCE_SUBTRACT - io.github.cvc5.Kind
+
+
Bag difference subtract.
+
+
BAG_EMPTY - io.github.cvc5.Kind
+
+
Empty bag.
+
+
BAG_FILTER - io.github.cvc5.Kind
+
+
Bag filter.
+
+
BAG_FOLD - io.github.cvc5.Kind
+
+
Bag fold.
+
+
BAG_INTER_MIN - io.github.cvc5.Kind
+
+
Bag intersection (min).
+
+
BAG_MAKE - io.github.cvc5.Kind
+
+
Bag make.
+
+
BAG_MAP - io.github.cvc5.Kind
+
+
Bag map.
+
+
BAG_MEMBER - io.github.cvc5.Kind
+
+
Bag membership predicate.
+
+
BAG_PARTITION - io.github.cvc5.Kind
+
+
Bag partition.
+
+
BAG_SETOF - io.github.cvc5.Kind
+
+
Bag setof.
+
+
BAG_SORT - io.github.cvc5.SortKind
+
+
A bag sort, whose argument sort is the element sort of the bag.
+
+
BAG_SUBBAG - io.github.cvc5.Kind
+
+
Bag inclusion predicate.
+
+
BAG_UNION_DISJOINT - io.github.cvc5.Kind
+
+
Bag disjoint union (sum).
+
+
BAG_UNION_MAX - io.github.cvc5.Kind
+
+
Bag max union.
+
+
BAGS_CARD_COMBINE - io.github.cvc5.SkolemId
+
+
An uninterpreted function for bag.card operator: + To compute (bag.card A), we need a function that + counts multiplicities of distinct elements.
+
+
BAGS_CHOOSE - io.github.cvc5.SkolemId
+
+
An interpreted function uf for bag.choose operator: + (bag.choose A) is replaced by (uf A) along with the inference + that (>= (bag.count (uf A) A) 1) when A is non-empty.
+
+
BAGS_DEQ_DIFF - io.github.cvc5.SkolemId
+
+
The bag diff skolem, which is the witness k for the inference + (=> (not (= A B)) (not (= (bag.count k A) (bag.count k B)))).
+
+
BAGS_DISTINCT_ELEMENTS - io.github.cvc5.SkolemId
+
+
An uninterpreted function for distinct elements of a bag A, which returns + the n^th distinct element of the bag.
+
+
BAGS_DISTINCT_ELEMENTS_SIZE - io.github.cvc5.SkolemId
+
+
A skolem variable for the size of the distinct elements of a bag A.
+
+
BAGS_DISTINCT_ELEMENTS_UNION_DISJOINT - io.github.cvc5.SkolemId
+
+
An uninterpreted function for the union of distinct elements + in a bag (Bag T).
+
+
BAGS_FOLD_CARD - io.github.cvc5.SkolemId
+
+
An uninterpreted function for bag.fold operator: + To compute (bag.fold f t A), we need to guess the cardinality n of + bag A using a skolem function with BAGS_FOLD_CARD id.
+
+
BAGS_FOLD_COMBINE - io.github.cvc5.SkolemId
+
+
An uninterpreted function for bag.fold operator: + To compute (bag.fold f t A), we need a function that + accumulates intermidiate values.
+
+
BAGS_FOLD_ELEMENTS - io.github.cvc5.SkolemId
+
+
An uninterpreted function for bag.fold operator: + To compute (bag.fold f t A), we need a function for + elements of A.
+
+
BAGS_FOLD_UNION_DISJOINT - io.github.cvc5.SkolemId
+
+
An uninterpreted function for bag.fold operator: + To compute (bag.fold f t A), we need a function for + elements of A which is given by elements defined in + BAGS_FOLD_ELEMENTS.
+
+
BAGS_MAP_INDEX - io.github.cvc5.SkolemId
+
+
A skolem variable for the index that is unique per terms + (bag.map f A), y, e where: + f: (-> E T), + A: (Bag E), + y: T, + e: E + + + Number of skolem indices: 5 + + 1: a map term of the form (bag.map f A).
+
+
BAGS_MAP_PREIMAGE_INJECTIVE - io.github.cvc5.SkolemId
+
+
A skolem for the preimage of an element y in (bag.map f A) such that + (= (f x) y) where f: (-> E T) is an injective function.
+
+
BAGS_MAP_SUM - io.github.cvc5.SkolemId
+
+
An uninterpreted function for bag.map operator: + If bag A is {uf(1), ..., uf(n)} (see BAGS_DISTINCT_ELEMENTS}, + then the multiplicity of an element y in a bag (bag.map f A) is sum(n), + where sum: (-> Int Int) is a skolem function such that: + sum(0) = 0 + sum(i) = sum (i-1) + (bag.count (uf i) A) + + + Number of skolem indices: 3 + + 1: the function f of type (-> E T).
+
+
BaseInfo() - Constructor for class io.github.cvc5.OptionInfo.BaseInfo
+
 
+
BETA_REDUCE - io.github.cvc5.ProofRewriteRule
+
+
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 Node.substitute.
+
+
BITVECTOR_ADD - io.github.cvc5.Kind
+
+
Addition of two or more bit-vectors.
+
+
BITVECTOR_AND - io.github.cvc5.Kind
+
+
Bit-wise and.
+
+
BITVECTOR_ASHR - io.github.cvc5.Kind
+
+
Bit-vector arithmetic shift right.
+
+
BITVECTOR_BIT - io.github.cvc5.Kind
+
+
Retrieves the bit at the given index from a bit-vector as a Bool term.
+
+
BITVECTOR_COMP - io.github.cvc5.Kind
+
+
Equality comparison (returns bit-vector of size 1).
+
+
BITVECTOR_CONCAT - io.github.cvc5.Kind
+
+
Concatenation of two or more bit-vectors.
+
+
BITVECTOR_EXTRACT - io.github.cvc5.Kind
+
+
Bit-vector extract.
+
+
BITVECTOR_FROM_BOOLS - io.github.cvc5.Kind
+
+
Converts a list of Bool terms to a bit-vector.
+
+
BITVECTOR_ITE - io.github.cvc5.Kind
+
+
Bit-vector if-then-else.
+
+
BITVECTOR_LSHR - io.github.cvc5.Kind
+
+
Bit-vector logical shift right.
+
+
BITVECTOR_MULT - io.github.cvc5.Kind
+
+
Multiplication of two or more bit-vectors.
+
+
BITVECTOR_NAND - io.github.cvc5.Kind
+
+
Bit-wise nand.
+
+
BITVECTOR_NEG - io.github.cvc5.Kind
+
+
Negation of a bit-vector (two's complement).
+
+
BITVECTOR_NEGO - io.github.cvc5.Kind
+
+
Bit-vector negation overflow detection.
+
+
BITVECTOR_NOR - io.github.cvc5.Kind
+
+
Bit-wise nor.
+
+
BITVECTOR_NOT - io.github.cvc5.Kind
+
+
Bit-wise negation.
+
+
BITVECTOR_OR - io.github.cvc5.Kind
+
+
Bit-wise or.
+
+
BITVECTOR_REDAND - io.github.cvc5.Kind
+
+
Bit-vector redand.
+
+
BITVECTOR_REDOR - io.github.cvc5.Kind
+
+
Bit-vector redor.
+
+
BITVECTOR_REPEAT - io.github.cvc5.Kind
+
+
Bit-vector repeat.
+
+
BITVECTOR_ROTATE_LEFT - io.github.cvc5.Kind
+
+
Bit-vector rotate left.
+
+
BITVECTOR_ROTATE_RIGHT - io.github.cvc5.Kind
+
+
Bit-vector rotate right.
+
+
BITVECTOR_SADDO - io.github.cvc5.Kind
+
+
Bit-vector signed addition overflow detection.
+
+
BITVECTOR_SDIV - io.github.cvc5.Kind
+
+
Signed bit-vector division.
+
+
BITVECTOR_SDIVO - io.github.cvc5.Kind
+
+
Bit-vector signed division overflow detection.
+
+
BITVECTOR_SGE - io.github.cvc5.Kind
+
+
Bit-vector signed greater than or equal.
+
+
BITVECTOR_SGT - io.github.cvc5.Kind
+
+
Bit-vector signed greater than.
+
+
BITVECTOR_SHL - io.github.cvc5.Kind
+
+
Bit-vector shift left.
+
+
BITVECTOR_SIGN_EXTEND - io.github.cvc5.Kind
+
+
Bit-vector sign extension.
+
+
BITVECTOR_SLE - io.github.cvc5.Kind
+
+
Bit-vector signed less than or equal.
+
+
BITVECTOR_SLT - io.github.cvc5.Kind
+
+
Bit-vector signed less than.
+
+
BITVECTOR_SLTBV - io.github.cvc5.Kind
+
+
Bit-vector signed less than returning a bit-vector of size 1.
+
+
BITVECTOR_SMOD - io.github.cvc5.Kind
+
+
Signed bit-vector remainder (sign follows divisor).
+
+
BITVECTOR_SMULO - io.github.cvc5.Kind
+
+
Bit-vector signed multiplication overflow detection.
+
+
BITVECTOR_SORT - io.github.cvc5.SortKind
+
+
A bit-vector sort, parameterized by an integer denoting its bit-width.
+
+
BITVECTOR_SREM - io.github.cvc5.Kind
+
+
Signed bit-vector remainder (sign follows dividend).
+
+
BITVECTOR_SSUBO - io.github.cvc5.Kind
+
+
Bit-vector signed subtraction overflow detection.
+
+
BITVECTOR_SUB - io.github.cvc5.Kind
+
+
Subtraction of two bit-vectors.
+
+
BITVECTOR_TO_NAT - io.github.cvc5.Kind
+
+
Bit-vector conversion to (non-negative) integer.
+
+
BITVECTOR_UADDO - io.github.cvc5.Kind
+
+
Bit-vector unsigned addition overflow detection.
+
+
BITVECTOR_UDIV - io.github.cvc5.Kind
+
+
Unsigned bit-vector division.
+
+
BITVECTOR_UGE - io.github.cvc5.Kind
+
+
Bit-vector unsigned greater than or equal.
+
+
BITVECTOR_UGT - io.github.cvc5.Kind
+
+
Bit-vector unsigned greater than.
+
+
BITVECTOR_ULE - io.github.cvc5.Kind
+
+
Bit-vector unsigned less than or equal.
+
+
BITVECTOR_ULT - io.github.cvc5.Kind
+
+
Bit-vector unsigned less than.
+
+
BITVECTOR_ULTBV - io.github.cvc5.Kind
+
+
Bit-vector unsigned less than returning a bit-vector of size 1.
+
+
BITVECTOR_UMULO - io.github.cvc5.Kind
+
+
Bit-vector unsigned multiplication overflow detection.
+
+
BITVECTOR_UREM - io.github.cvc5.Kind
+
+
Unsigned bit-vector remainder.
+
+
BITVECTOR_USUBO - io.github.cvc5.Kind
+
+
Bit-vector unsigned subtraction overflow detection.
+
+
BITVECTOR_XNOR - io.github.cvc5.Kind
+
+
Bit-wise xnor, left associative.
+
+
BITVECTOR_XOR - io.github.cvc5.Kind
+
+
Bit-wise xor.
+
+
BITVECTOR_ZERO_EXTEND - io.github.cvc5.Kind
+
+
Bit-vector zero extension.
+
+
blockModel(BlockModelsMode) - Method in class io.github.cvc5.Solver
+
+
Block the current model.
+
+
BlockModelsMode - Enum in io.github.cvc5.modes
+
 
+
blockModelValues(Term[]) - Method in class io.github.cvc5.Solver
+
+
Block the current model values of (at least) the values in terms.
+
+
BOOL_AND_CONF - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule boolean-and-conf
+
+
BOOL_AND_CONF2 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule boolean-and-conf2
+
+
BOOL_AND_DE_MORGAN - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule boolean-and-de-morgan
+
+
BOOL_AND_FALSE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule boolean-and-false
+
+
BOOL_AND_FLATTEN - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule boolean-and-flatten
+
+
BOOL_DOUBLE_NOT_ELIM - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule boolean-double-not-elim
+
+
BOOL_EQ_FALSE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule boolean-eq-false
+
+
BOOL_EQ_NREFL - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule boolean-eq-nrefl
+
+
BOOL_EQ_TRUE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule boolean-eq-true
+
+
BOOL_IMPL_ELIM - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule boolean-impl-elim
+
+
BOOL_IMPL_FALSE1 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule boolean-impl-false1
+
+
BOOL_IMPL_FALSE2 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule boolean-impl-false2
+
+
BOOL_IMPL_TRUE1 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule boolean-impl-true1
+
+
BOOL_IMPL_TRUE2 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule boolean-impl-true2
+
+
BOOL_IMPLIES_DE_MORGAN - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule boolean-implies-de-morgan
+
+
BOOL_NOT_EQ_ELIM1 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule boolean-not-eq-elim1
+
+
BOOL_NOT_EQ_ELIM2 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule boolean-not-eq-elim2
+
+
BOOL_NOT_FALSE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule boolean-not-false
+
+
BOOL_NOT_ITE_ELIM - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule boolean-not-ite-elim
+
+
BOOL_NOT_TRUE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule boolean-not-true
+
+
BOOL_NOT_XOR_ELIM - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule boolean-not-xor-elim
+
+
BOOL_OR_AND_DISTRIB - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule boolean-or-and-distrib
+
+
BOOL_OR_DE_MORGAN - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule boolean-or-de-morgan
+
+
BOOL_OR_FLATTEN - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule boolean-or-flatten
+
+
BOOL_OR_TAUT - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule boolean-or-taut
+
+
BOOL_OR_TAUT2 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule boolean-or-taut2
+
+
BOOL_OR_TRUE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule boolean-or-true
+
+
BOOL_XOR_COMM - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule boolean-xor-comm
+
+
BOOL_XOR_ELIM - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule boolean-xor-elim
+
+
BOOL_XOR_FALSE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule boolean-xor-false
+
+
BOOL_XOR_NREFL - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule boolean-xor-nrefl
+
+
BOOL_XOR_REFL - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule boolean-xor-refl
+
+
BOOL_XOR_TRUE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule boolean-xor-true
+
+
BOOLEAN_SORT - io.github.cvc5.SortKind
+
+
The Boolean sort.
+
+
booleanValue() - Method in class io.github.cvc5.OptionInfo
+
+
Obtain the current value as a Boolean.
+
+
BV_ADD_COMBINE_LIKE_TERMS - io.github.cvc5.ProofRewriteRule
+
+
Bitvectors – Combine like terms during addition by counting terms
+
+
BV_ADD_TWO - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-add-two
+
+
BV_ADD_ZERO - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-add-zero
+
+
BV_AND_CONCAT_PULLUP - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-and-concat-pullup
+
+
BV_AND_FLATTEN - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-and-flatten
+
+
BV_AND_ONE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-and-one
+
+
BV_AND_SIMPLIFY_1 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-and-simplify-1
+
+
BV_AND_SIMPLIFY_2 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-and-simplify-2
+
+
BV_AND_ZERO - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-and-zero
+
+
BV_ASHR_BY_CONST_0 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-ashr-by--0
+
+
BV_ASHR_BY_CONST_1 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-ashr-by--1
+
+
BV_ASHR_BY_CONST_2 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-ashr-by--2
+
+
BV_ASHR_ZERO - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-ashr-zero
+
+
BV_BITBLAST_STEP - io.github.cvc5.ProofRule
+
+
Bit-vectors – Bitblast bit-vector constant, variable, and terms + + For constant and variables: + + \[ + + \inferrule{-\mid t}{t = \texttt{bitblast}(t)} + \] + For terms: + + \[ + + \inferrule{-\mid k(\texttt{bitblast}(t_1),\dots,\texttt{bitblast}(t_n))} + {k(\texttt{bitblast}(t_1),\dots,\texttt{bitblast}(t_n)) = + \texttt{bitblast}(t)} + \] + where \(t\) is \(k(t_1,\dots,t_n)\).
+
+
BV_BITWISE_IDEMP_1 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-bitwise-idemp-1
+
+
BV_BITWISE_IDEMP_2 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-bitwise-idemp-2
+
+
BV_BITWISE_NOT_AND - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-bitwise-not-and
+
+
BV_BITWISE_NOT_OR - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-bitwise-not-or
+
+
BV_BITWISE_SLICING - io.github.cvc5.ProofRewriteRule
+
+
Bitvectors – Extract continuous substrings of bitvectors + + \[ + bvand(a,\ c) = concat(bvand(a[i_0:j_0],\ c_0) ...
+
+
BV_COMMUTATIVE_ADD - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-commutative-add
+
+
BV_COMMUTATIVE_AND - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-commutative-and
+
+
BV_COMMUTATIVE_MUL - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-commutative-mul
+
+
BV_COMMUTATIVE_OR - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-commutative-or
+
+
BV_COMMUTATIVE_XOR - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-commutative-xor
+
+
BV_COMP_ELIMINATE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-comp-eliminate
+
+
BV_CONCAT_EXTRACT_MERGE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-concat-extract-merge
+
+
BV_CONCAT_FLATTEN - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-concat-flatten
+
+
BV_CONCAT_MERGE_CONST - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-concat-merge-
+
+
BV_CONCAT_TO_MULT - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-concat-to-mult
+
+
BV_EAGER_ATOM - io.github.cvc5.ProofRule
+
+
Bit-vectors – Bit-vector eager atom + + \[ + + \inferrule{-\mid F}{F = F[0]} + \] + where \(F\) is of kind BITVECTOR_EAGER_ATOM.
+
+
BV_EMPTY - io.github.cvc5.SkolemId
+
+
The empty bitvector.
+
+
BV_EQ_EXTRACT_ELIM1 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-eq-extract-elim1
+
+
BV_EQ_EXTRACT_ELIM2 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-eq-extract-elim2
+
+
BV_EQ_EXTRACT_ELIM3 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-eq-extract-elim3
+
+
BV_EXTRACT_BITWISE_AND - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-extract-bitwise-and
+
+
BV_EXTRACT_BITWISE_OR - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-extract-bitwise-or
+
+
BV_EXTRACT_BITWISE_XOR - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-extract-bitwise-xor
+
+
BV_EXTRACT_CONCAT_1 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-extract-concat-1
+
+
BV_EXTRACT_CONCAT_2 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-extract-concat-2
+
+
BV_EXTRACT_CONCAT_3 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-extract-concat-3
+
+
BV_EXTRACT_CONCAT_4 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-extract-concat-4
+
+
BV_EXTRACT_EXTRACT - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-extract-extract
+
+
BV_EXTRACT_MULT_LEADING_BIT - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-extract-mult-leading-bit
+
+
BV_EXTRACT_NOT - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-extract-not
+
+
BV_EXTRACT_SIGN_EXTEND_1 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-extract-sign-extend-1
+
+
BV_EXTRACT_SIGN_EXTEND_2 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-extract-sign-extend-2
+
+
BV_EXTRACT_SIGN_EXTEND_3 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-extract-sign-extend-3
+
+
BV_EXTRACT_WHOLE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-extract-whole
+
+
BV_ITE_CONST_CHILDREN_1 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-ite--children-1
+
+
BV_ITE_CONST_CHILDREN_2 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-ite--children-2
+
+
BV_ITE_EQUAL_CHILDREN - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-ite-equal-children
+
+
BV_ITE_EQUAL_COND_1 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-ite-equal-cond-1
+
+
BV_ITE_EQUAL_COND_2 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-ite-equal-cond-2
+
+
BV_ITE_EQUAL_COND_3 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-ite-equal-cond-3
+
+
BV_ITE_MERGE_ELSE_ELSE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-ite-merge-else-else
+
+
BV_ITE_MERGE_ELSE_IF - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-ite-merge-else-if
+
+
BV_ITE_MERGE_THEN_ELSE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-ite-merge-then-else
+
+
BV_ITE_MERGE_THEN_IF - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-ite-merge-then-if
+
+
BV_LSHR_BY_CONST_0 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-lshr-by--0
+
+
BV_LSHR_BY_CONST_1 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-lshr-by--1
+
+
BV_LSHR_BY_CONST_2 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-lshr-by--2
+
+
BV_LSHR_ZERO - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-lshr-zero
+
+
BV_LT_SELF - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-lt-self
+
+
BV_MERGE_SIGN_EXTEND_1 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-merge-sign-extend-1
+
+
BV_MERGE_SIGN_EXTEND_2 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-merge-sign-extend-2
+
+
BV_MERGE_SIGN_EXTEND_3 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-merge-sign-extend-3
+
+
BV_MUL_FLATTEN - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-mul-flatten
+
+
BV_MUL_ONE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-mul-one
+
+
BV_MUL_ZERO - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-mul-zero
+
+
BV_MULT_DISTRIB_1 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-mult-distrib-1
+
+
BV_MULT_DISTRIB_2 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-mult-distrib-2
+
+
BV_MULT_DISTRIB_CONST_ADD - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-mult-distrib--add
+
+
BV_MULT_DISTRIB_CONST_NEG - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-mult-distrib--neg
+
+
BV_MULT_DISTRIB_CONST_SUB - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-mult-distrib--sub
+
+
BV_MULT_POW2_1 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-mult-pow2-1
+
+
BV_MULT_POW2_2 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-mult-pow2-2
+
+
BV_MULT_POW2_2B - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-mult-pow2-2b
+
+
BV_MULT_SIMPLIFY - io.github.cvc5.ProofRewriteRule
+
+
Bitvectors – Extract negations from multiplicands + + \[ + bvmul(bvneg(a),\ b,\ c) = bvneg(bvmul(a,\ b,\ c)) + \]
+
+
BV_MULT_SLT_MULT_1 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-mult-slt-mult-1
+
+
BV_MULT_SLT_MULT_2 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-mult-slt-mult-2
+
+
BV_NAND_ELIMINATE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-nand-eliminate
+
+
BV_NEG_ADD - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-neg-add
+
+
BV_NEG_IDEMP - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-neg-idemp
+
+
BV_NEG_MULT - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-neg-mult
+
+
BV_NEG_SUB - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-neg-sub
+
+
BV_NOR_ELIMINATE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-nor-eliminate
+
+
BV_NOT_IDEMP - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-not-idemp
+
+
BV_NOT_NEQ - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-not-neq
+
+
BV_NOT_SLE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-not-sle
+
+
BV_NOT_ULE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-not-ule
+
+
BV_NOT_ULT - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-not-ult
+
+
BV_NOT_XOR - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-not-xor
+
+
BV_OR_CONCAT_PULLUP - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-or-concat-pullup
+
+
BV_OR_FLATTEN - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-or-flatten
+
+
BV_OR_ONE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-or-one
+
+
BV_OR_SIMPLIFY_1 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-or-simplify-1
+
+
BV_OR_SIMPLIFY_2 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-or-simplify-2
+
+
BV_OR_ZERO - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-or-zero
+
+
BV_REDAND_ELIMINATE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-redand-eliminate
+
+
BV_REDOR_ELIMINATE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-redor-eliminate
+
+
BV_REPEAT_ELIM - io.github.cvc5.ProofRewriteRule
+
+
Bitvectors – Extract continuous substrings of bitvectors + + \[ + repeat(n,\ t) = concat(t ...
+
+
BV_ROTATE_LEFT_ELIMINATE_1 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-rotate-left-eliminate-1
+
+
BV_ROTATE_LEFT_ELIMINATE_2 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-rotate-left-eliminate-2
+
+
BV_ROTATE_RIGHT_ELIMINATE_1 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-rotate-right-eliminate-1
+
+
BV_ROTATE_RIGHT_ELIMINATE_2 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-rotate-right-eliminate-2
+
+
BV_SADDO_ELIMINATE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-saddo-eliminate
+
+
BV_SDIV_ELIMINATE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-sdiv-eliminate
+
+
BV_SDIV_ELIMINATE_FEWER_BITWISE_OPS - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-sdiv-eliminate-fewer-bitwise-ops
+
+
BV_SDIVO_ELIMINATE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-sdivo-eliminate
+
+
BV_SGE_ELIMINATE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-sge-eliminate
+
+
BV_SGT_ELIMINATE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-sgt-eliminate
+
+
BV_SHL_BY_CONST_0 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-shl-by--0
+
+
BV_SHL_BY_CONST_1 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-shl-by--1
+
+
BV_SHL_BY_CONST_2 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-shl-by--2
+
+
BV_SHL_ZERO - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-shl-zero
+
+
BV_SIGN_EXTEND_ELIMINATE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-sign-extend-eliminate
+
+
BV_SIGN_EXTEND_ELIMINATE_0 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-sign-extend-eliminate-0
+
+
BV_SIGN_EXTEND_EQ_CONST_1 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-sign-extend-eq--1
+
+
BV_SIGN_EXTEND_EQ_CONST_2 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-sign-extend-eq--2
+
+
BV_SIGN_EXTEND_ULT_CONST_1 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-sign-extend-ult--1
+
+
BV_SIGN_EXTEND_ULT_CONST_2 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-sign-extend-ult--2
+
+
BV_SIGN_EXTEND_ULT_CONST_3 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-sign-extend-ult--3
+
+
BV_SIGN_EXTEND_ULT_CONST_4 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-sign-extend-ult--4
+
+
BV_SLE_ELIMINATE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-sle-eliminate
+
+
BV_SLE_SELF - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-sle-self
+
+
BV_SLT_ELIMINATE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-slt-eliminate
+
+
BV_SLT_ZERO - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-slt-zero
+
+
BV_SMOD_ELIMINATE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-smod-eliminate
+
+
BV_SMOD_ELIMINATE_FEWER_BITWISE_OPS - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-smod-eliminate-fewer-bitwise-ops
+
+
BV_SMULO_ELIMINATE - io.github.cvc5.ProofRewriteRule
+
+
Bitvectors – Unsigned multiplication overflow detection elimination + + See M.Gok, M.J.
+
+
BV_SREM_ELIMINATE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-srem-eliminate
+
+
BV_SREM_ELIMINATE_FEWER_BITWISE_OPS - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-srem-eliminate-fewer-bitwise-ops
+
+
BV_SSUBO_ELIMINATE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-ssubo-eliminate
+
+
BV_SUB_ELIMINATE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-sub-eliminate
+
+
BV_TO_INT_UF - io.github.cvc5.SkolemId
+
+
A skolem function introduced by the int-blaster.
+
+
BV_TO_NAT_ELIM - io.github.cvc5.ProofRewriteRule
+
+
UF – Bitvector to natural elimination + + \[ + \texttt{bv2nat}(t) = t_1 + \ldots + t_n + \] + where for \(i=1, \ldots, n\), \(t_i\) is + \(\texttt{ite}(x[i-1, i-1] = 1, 2^i, 0)\).
+
+
BV_UADDO_ELIMINATE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-uaddo-eliminate
+
+
BV_UDIV_ONE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-udiv-one
+
+
BV_UDIV_POW2_NOT_ONE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-udiv-pow2-not-one
+
+
BV_UDIV_ZERO - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-udiv-zero
+
+
BV_UGE_ELIMINATE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-uge-eliminate
+
+
BV_UGT_ELIMINATE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-ugt-eliminate
+
+
BV_UGT_UREM - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-ugt-urem
+
+
BV_ULE_ELIMINATE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-ule-eliminate
+
+
BV_ULE_MAX - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-ule-max
+
+
BV_ULE_SELF - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-ule-self
+
+
BV_ULE_ZERO - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-ule-zero
+
+
BV_ULT_ADD_ONE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-ult-add-one
+
+
BV_ULT_ONE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-ult-one
+
+
BV_ULT_ONES - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-ult-ones
+
+
BV_ULT_SELF - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-ult-self
+
+
BV_ULT_ZERO_1 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-ult-zero-1
+
+
BV_ULT_ZERO_2 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-ult-zero-2
+
+
BV_UMULO_ELIMINATE - io.github.cvc5.ProofRewriteRule
+
+
Bitvectors – Unsigned multiplication overflow detection elimination + + See M.Gok, M.J.
+
+
BV_UREM_ONE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-urem-one
+
+
BV_UREM_POW2_NOT_ONE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-urem-pow2-not-one
+
+
BV_UREM_SELF - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-urem-self
+
+
BV_USUBO_ELIMINATE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-usubo-eliminate
+
+
BV_XNOR_ELIMINATE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-xnor-eliminate
+
+
BV_XOR_CONCAT_PULLUP - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-xor-concat-pullup
+
+
BV_XOR_DUPLICATE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-xor-duplicate
+
+
BV_XOR_FLATTEN - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-xor-flatten
+
+
BV_XOR_NOT - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-xor-not
+
+
BV_XOR_ONES - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-xor-ones
+
+
BV_XOR_SIMPLIFY_1 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-xor-simplify-1
+
+
BV_XOR_SIMPLIFY_2 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-xor-simplify-2
+
+
BV_XOR_SIMPLIFY_3 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-xor-simplify-3
+
+
BV_XOR_ZERO - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-xor-zero
+
+
BV_ZERO_EXTEND_ELIMINATE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-zero-extend-eliminate
+
+
BV_ZERO_EXTEND_ELIMINATE_0 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-zero-extend-eliminate-0
+
+
BV_ZERO_EXTEND_EQ_CONST_1 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-zero-extend-eq--1
+
+
BV_ZERO_EXTEND_EQ_CONST_2 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-zero-extend-eq--2
+
+
BV_ZERO_ULE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule bv-zero-ule
+
+
+ + + +

C

+
+
CARDINALITY_CONSTRAINT - io.github.cvc5.Kind
+
+
Cardinality constraint on uninterpreted sort.
+
+
CHAIN_RESOLUTION - io.github.cvc5.ProofRule
+
+
Boolean – N-ary Resolution + + \[ + \inferrule{C_1 \dots C_n \mid (pol_1 \dots pol_{n-1}), (L_1 \dots L_{n-1})}{C} + \] + where + + + let \(C_1 \dots C_n\) be nodes viewed as clauses, as defined above + + let \(C_1 \diamond_{L,pol} C_2\) represent the resolution of + \(C_1\) with \(C_2\) with pivot \(L\) and polarity + \(pol\), as defined above + + let \(C_1' = C_1\), + + for each \(i > 1\), let \(C_i' = C_{i-1} \diamond_{L_{i-1}, pol_{i-1}} C_i'\) + + + Note the list of polarities and pivots are provided as s-expressions.
+
+
check() - Method in class io.github.cvc5.AbstractPlugin
+
+
Call to check, return vector of lemmas to add to the SAT solver.
+
+
checkSat() - Method in class io.github.cvc5.Solver
+
+
Check satisfiability.
+
+
checkSatAssuming(Term) - Method in class io.github.cvc5.Solver
+
+
Check satisfiability assuming the given formula.
+
+
checkSatAssuming(Term[]) - Method in class io.github.cvc5.Solver
+
+
Check satisfiability assuming the given formulas.
+
+
checkSynth() - Method in class io.github.cvc5.Solver
+
+
Try to find a solution for the synthesis conjecture corresponding to the + current list of functions-to-synthesize, universal variables and + constraints.
+
+
checkSynthNext() - Method in class io.github.cvc5.Solver
+
+
Try to find a next solution for the synthesis conjecture corresponding to + the current list of functions-to-synthesize, universal variables and + constraints.
+
+
CNF_AND_NEG - io.github.cvc5.ProofRule
+
+
Boolean – CNF – And Negative + + \[ + \inferrule{- \mid (F_1 \land \dots \land F_n)}{(F_1 \land \dots \land + F_n) \lor \neg F_1 \lor \dots \lor \neg F_n} + \]
+
+
CNF_AND_POS - io.github.cvc5.ProofRule
+
+
Boolean – CNF – And Positive + + \[ + \inferrule{- \mid (F_1 \land \dots \land F_n), i}{\neg (F_1 \land \dots + \land F_n) \lor F_i} + \]
+
+
CNF_EQUIV_NEG1 - io.github.cvc5.ProofRule
+
+
Boolean – CNF – Equiv Negative 1 + + \[ + \inferrule{- \mid F_1 = F_2}{(F_1 = F_2) \lor F_1 \lor F_2} + \]
+
+
CNF_EQUIV_NEG2 - io.github.cvc5.ProofRule
+
+
Boolean – CNF – Equiv Negative 2 + + \[ + \inferrule{- \mid F_1 = F_2}{(F_1 = F_2) \lor \neg F_1 \lor \neg F_2} + \]
+
+
CNF_EQUIV_POS1 - io.github.cvc5.ProofRule
+
+
Boolean – CNF – Equiv Positive 1 + + \[ + \inferrule{- \mid F_1 = F_2}{F_1 \neq F_2 \lor \neg F_1 \lor F_2} + \]
+
+
CNF_EQUIV_POS2 - io.github.cvc5.ProofRule
+
+
Boolean – CNF – Equiv Positive 2 + + \[ + \inferrule{- \mid F_1 = F_2}{F_1 \neq F_2 \lor F_1 \lor \neg F_2} + \]
+
+
CNF_IMPLIES_NEG1 - io.github.cvc5.ProofRule
+
+
Boolean – CNF – Implies Negative 1 + + \[ + \inferrule{- \mid F_1 \rightarrow F_2}{(F_1 \rightarrow F_2) \lor F_1} + \]
+
+
CNF_IMPLIES_NEG2 - io.github.cvc5.ProofRule
+
+
Boolean – CNF – Implies Negative 2 + + \[ + \inferrule{- \mid F_1 \rightarrow F_2}{(F_1 \rightarrow F_2) \lor \neg F_2} + \]
+
+
CNF_IMPLIES_POS - io.github.cvc5.ProofRule
+
+
Boolean – CNF – Implies Positive + + \[ + \inferrule{- \mid F_1 \rightarrow F_2}{\neg(F_1 \rightarrow F_2) \lor \neg F_1 + \lor F_2} + \]
+
+
CNF_ITE_NEG1 - io.github.cvc5.ProofRule
+
+
Boolean – CNF – ITE Negative 1 + + \[ + \inferrule{- \mid (\ite{C}{F_1}{F_2})}{(\ite{C}{F_1}{F_2}) \lor \neg C + \lor \neg F_1} + \]
+
+
CNF_ITE_NEG2 - io.github.cvc5.ProofRule
+
+
Boolean – CNF – ITE Negative 2 + + \[ + \inferrule{- \mid (\ite{C}{F_1}{F_2})}{(\ite{C}{F_1}{F_2}) \lor C \lor + \neg F_2} + \]
+
+
CNF_ITE_NEG3 - io.github.cvc5.ProofRule
+
+
Boolean – CNF – ITE Negative 3 + + \[ + \inferrule{- \mid (\ite{C}{F_1}{F_2})}{(\ite{C}{F_1}{F_2}) \lor \neg F_1 + \lor \neg F_2} + \]
+
+
CNF_ITE_POS1 - io.github.cvc5.ProofRule
+
+
Boolean – CNF – ITE Positive 1 + + \[ + \inferrule{- \mid (\ite{C}{F_1}{F_2})}{\neg(\ite{C}{F_1}{F_2}) \lor \neg + C \lor F_1} + \]
+
+
CNF_ITE_POS2 - io.github.cvc5.ProofRule
+
+
Boolean – CNF – ITE Positive 2 + + \[ + \inferrule{- \mid (\ite{C}{F_1}{F_2})}{\neg(\ite{C}{F_1}{F_2}) \lor C + \lor F_2} + \]
+
+
CNF_ITE_POS3 - io.github.cvc5.ProofRule
+
+
Boolean – CNF – ITE Positive 3 + + \[ + \inferrule{- \mid (\ite{C}{F_1}{F_2})}{\neg(\ite{C}{F_1}{F_2}) \lor F_1 + \lor F_2} + \]
+
+
CNF_OR_NEG - io.github.cvc5.ProofRule
+
+
Boolean – CNF – Or Negative + + \[ + \inferrule{- \mid (F_1 \lor \dots \lor F_n), i}{(F_1 \lor \dots \lor F_n) + \lor \neg F_i} + \]
+
+
CNF_OR_POS - io.github.cvc5.ProofRule
+
+
Boolean – CNF – Or Positive + + \[ + \inferrule{- \mid (F_1 \lor \dots \lor F_n)}{\neg(F_1 \lor \dots \lor + F_n) \lor F_1 \lor \dots \lor F_n} + \]
+
+
CNF_XOR_NEG1 - io.github.cvc5.ProofRule
+
+
Boolean – CNF – XOR Negative 1 + + \[ + \inferrule{- \mid F_1 \xor F_2}{(F_1 \xor F_2) \lor \neg F_1 \lor F_2} + \]
+
+
CNF_XOR_NEG2 - io.github.cvc5.ProofRule
+
+
Boolean – CNF – XOR Negative 2 + + \[ + \inferrule{- \mid F_1 \xor F_2}{(F_1 \xor F_2) \lor F_1 \lor \neg F_2} + \]
+
+
CNF_XOR_POS1 - io.github.cvc5.ProofRule
+
+
Boolean – CNF – XOR Positive 1 + + \[ + \inferrule{- \mid F_1 \xor F_2}{\neg(F_1 \xor F_2) \lor F_1 \lor F_2} + \]
+
+
CNF_XOR_POS2 - io.github.cvc5.ProofRule
+
+
Boolean – CNF – XOR Positive 2 + + \[ + \inferrule{- \mid F_1 \xor F_2}{\neg(F_1 \xor F_2) \lor \neg F_1 \lor + \neg F_2} + \]
+
+
Command - Class in io.github.cvc5
+
 
+
compareTo(Sort) - Method in class io.github.cvc5.Sort
+
+
Comparison for ordering on sorts.
+
+
compareTo(Term) - Method in class io.github.cvc5.Term
+
+
Comparison for ordering on terms.
+
+
CONCAT_CONFLICT - io.github.cvc5.ProofRule
+
+
Strings – Core rules – Concatenation conflict + + \[ + + \inferrule{(c_1\cdot t) = (c_2 \cdot s)\mid b}{\bot} + \] + where \(b\) indicates if the direction is reversed, \(c_1,\,c_2\) + are constants such that \(\texttt{Word::splitConstant}(c_1,c_2, + \mathit{index},b)\) is null, in other words, neither is a prefix of the + other.
+
+
CONCAT_CONFLICT_DEQ - io.github.cvc5.ProofRule
+
+
Strings – Core rules – Concatenation conflict for disequal characters + + \[ + + \inferrule{(t_1\cdot t) = (s_1 \cdot s), t_1 \neq s_1 \mid b}{\bot} + \] + where \(t_1\) and \(s_1\) are constants of length one, or otherwise one side + of the equality is the empty sequence and \(t_1\) or \(s_1\) corresponding to + that side is the empty sequence.
+
+
CONCAT_CPROP - io.github.cvc5.ProofRule
+
+
Strings – Core rules – Concatenation constant propagation + + \[ + + \inferrule{(t_1\cdot w_1\cdot t_2) = (w_2 \cdot s),\, + \mathit{len}(t_1) \neq 0\mid \bot}{(t_1 = t_3\cdot r)} + \] + where \(w_1,\,w_2\) are words, \(t_3\) is + \(\mathit{pre}(w_2,p)\), \(p\) is + \(\texttt{Word::overlap}(\mathit{suf}(w_2,1), w_1)\), and \(r\) is + the purification skolem for + \(\mathit{suf}(t_1,\mathit{len}(w_3))\).
+
+
CONCAT_CSPLIT - io.github.cvc5.ProofRule
+
+
Strings – Core rules – Concatenation split for constants + + \[ + + \inferrule{(t_1\cdot t_2) = (c \cdot s_2),\, + \mathit{len}(t_1) \neq 0\mid \bot}{(t_1 = c\cdot r)} + \] + where \(r\) is the purification skolem for \(\mathit{suf}(t_1,1)\).
+
+
CONCAT_EQ - io.github.cvc5.ProofRule
+
+
Strings – Core rules – Concatenation equality + + \[ + + \inferrule{(t_1\cdot\ldots \cdot t_n \cdot t) = (t_1 \cdot\ldots + \cdot t_n\cdot s)\mid b}{t = s} + \] + where \(\cdot\) stands for string concatenation and \(b\) indicates + if the direction is reversed.
+
+
CONCAT_LPROP - io.github.cvc5.ProofRule
+
+
Strings – Core rules – Concatenation length propagation + + \[ + + \inferrule{(t_1\cdot t_2) = (s_1 \cdot s_2),\, + \mathit{len}(t_1) > \mathit{len}(s_1)\mid \bot}{(t_1 = s_1\cdot r)} + \] + where \(r\) is the purification Skolem for + \(\mathit{ite}( + \mathit{len}(t_1) >= \mathit{len}(s_1), + \mathit{suf}(t_1,\mathit{len}(s_1)), + \mathit{suf}(s_1,\mathit{len}(t_1)))\).
+
+
CONCAT_SPLIT - io.github.cvc5.ProofRule
+
+
Strings – Core rules – Concatenation split + + \[ + + \inferruleSC{(t_1\cdot t_2) = (s_1 \cdot s_2),\, + \mathit{len}(t_1) \neq \mathit{len}(s_1)\mid b}{((t_1 = s_1\cdot r) + \vee (s_1 = t_1\cdot r)) \wedge r \neq \epsilon \wedge \mathit{len}(r)>0}{if $b=\bot$} + \] + where \(r\) is the purification skolem for + \(\mathit{ite}( + \mathit{len}(t_1) >= \mathit{len}(s_1), + \mathit{suf}(t_1,\mathit{len}(s_1)), + \mathit{suf}(s_1,\mathit{len}(t_1)))\) + and \(\epsilon\) is the empty string (or sequence).
+
+
CONCAT_UNIFY - io.github.cvc5.ProofRule
+
+
Strings – Core rules – Concatenation unification + + \[ + + \inferrule{(t_1\cdot t_2) = (s_1 \cdot s_2),\, \mathit{len}(t_1) = + \mathit{len}(s_1)\mid \bot}{t_1 = s_1} + \] + Alternatively for the reverse: + + \[ + + \inferrule{(t_1\cdot t_2) = (s_1 \cdot s_2),\, \mathit{len}(t_2) = + \mathit{len}(s_2)\mid \top}{t_2 = s_2} + \]
+
+
CONG - io.github.cvc5.ProofRule
+
+
Equality – Congruence + + \[ + + \inferrule{t_1=s_1,\dots,t_n=s_n\mid k, f?}{k(f?, t_1,\dots, t_n) = + k(f?, s_1,\dots, s_n)} + \] + where \(k\) is the application kind.
+
+
CONST_ARRAY - io.github.cvc5.Kind
+
+
Constant array.
+
+
CONST_BITVECTOR - io.github.cvc5.Kind
+
+
Fixed-size bit-vector constant.
+
+
CONST_BOOLEAN - io.github.cvc5.Kind
+
+
Boolean constant.
+
+
CONST_FINITE_FIELD - io.github.cvc5.Kind
+
+
Finite field constant.
+
+
CONST_FLOATINGPOINT - io.github.cvc5.Kind
+
+
Floating-point constant, created from IEEE-754 bit-vector representation + of the floating-point value.
+
+
CONST_INTEGER - io.github.cvc5.Kind
+
+
Arbitrary-precision integer constant.
+
+
CONST_RATIONAL - io.github.cvc5.Kind
+
+
Arbitrary-precision rational constant.
+
+
CONST_ROUNDINGMODE - io.github.cvc5.Kind
+
+
RoundingMode constant.
+
+
CONST_SEQUENCE - io.github.cvc5.Kind
+
+
Constant sequence.
+
+
CONST_STRING - io.github.cvc5.Kind
+
+
Constant string.
+
+
CONSTANT - io.github.cvc5.Kind
+
+
Free constant symbol.
+
+
CONSTANT_PROP - io.github.cvc5.modes.LearnedLitType
+
+
An internal literal that can be made into a constant propagation for an + input term.
+
+
ConstIterator() - Constructor for class io.github.cvc5.Datatype.ConstIterator
+
 
+
ConstIterator() - Constructor for class io.github.cvc5.DatatypeConstructor.ConstIterator
+
 
+
ConstIterator() - Constructor for class io.github.cvc5.Statistics.ConstIterator
+
 
+
ConstIterator() - Constructor for class io.github.cvc5.Term.ConstIterator
+
 
+
ConstIterator(boolean, boolean) - Constructor for class io.github.cvc5.Statistics.ConstIterator
+
 
+
Context - Class in io.github.cvc5
+
 
+
Context() - Constructor for class io.github.cvc5.Context
+
 
+
CONTRA - io.github.cvc5.ProofRule
+
+
Boolean – Contradiction + + \[ + \inferrule{F, \neg F \mid -}{\bot} + \]
+
+
COSECANT - io.github.cvc5.Kind
+
+
Cosecant function.
+
+
COSINE - io.github.cvc5.Kind
+
+
Cosine function.
+
+
COTANGENT - io.github.cvc5.Kind
+
+
Cotangent function.
+
+
CPC - io.github.cvc5.modes.ProofFormat
+
+
Output Cooperating Proof Calculus proof based on Eunoia signatures.
+
+
CVC5ApiException - Exception in io.github.cvc5
+
 
+
CVC5ApiException(String) - Constructor for exception io.github.cvc5.CVC5ApiException
+
 
+
CVC5ApiOptionException - Exception in io.github.cvc5
+
 
+
CVC5ApiOptionException(String) - Constructor for exception io.github.cvc5.CVC5ApiOptionException
+
 
+
CVC5ApiRecoverableException - Exception in io.github.cvc5
+
 
+
CVC5ApiRecoverableException(String) - Constructor for exception io.github.cvc5.CVC5ApiRecoverableException
+
 
+
CVC5ParserException - Exception in io.github.cvc5
+
 
+
CVC5ParserException(String) - Constructor for exception io.github.cvc5.CVC5ParserException
+
 
+
+ + + +

D

+
+
Datatype - Class in io.github.cvc5
+
+
A cvc5 datatype.
+
+
DATATYPE_SORT - io.github.cvc5.SortKind
+
+
A datatype sort.
+
+
Datatype.ConstIterator - Class in io.github.cvc5
+
 
+
DatatypeConstructor - Class in io.github.cvc5
+
+
A cvc5 datatype constructor.
+
+
DatatypeConstructor.ConstIterator - Class in io.github.cvc5
+
 
+
DatatypeConstructorDecl - Class in io.github.cvc5
+
+
A cvc5 datatype constructor declaration.
+
+
DatatypeDecl - Class in io.github.cvc5
+
+
A cvc5 datatype declaration.
+
+
DatatypeDecl() - Constructor for class io.github.cvc5.DatatypeDecl
+
+
Null datatypeDecl
+
+
DatatypeSelector - Class in io.github.cvc5
+
+
A cvc5 datatype selector.
+
+
declareDatatype(String, DatatypeConstructorDecl[]) - Method in class io.github.cvc5.Solver
+
+
Create datatype sort.
+
+
declareFun(String, Sort[], Sort) - Method in class io.github.cvc5.Solver
+
+
Declare n-ary function symbol.
+
+
declareFun(String, Sort[], Sort, boolean) - Method in class io.github.cvc5.Solver
+
+
Declare n-ary function symbol.
+
+
declareOracleFun(String, Sort[], Sort, IOracle) - Method in class io.github.cvc5.Solver
+
+
Declare an oracle function with reference to an implementation.
+
+
declarePool(String, Sort, Term[]) - Method in class io.github.cvc5.Solver
+
+
Declare a symbolic pool of terms with the given initial value.
+
+
declareSepHeap(Sort, Sort) - Method in class io.github.cvc5.Solver
+
+
When using separation logic, this sets the location sort and the + datatype sort to the given ones.
+
+
declareSort(String, int) - Method in class io.github.cvc5.Solver
+
+
Declare uninterpreted sort.
+
+
declareSort(String, int, boolean) - Method in class io.github.cvc5.Solver
+
+
Declare uninterpreted sort.
+
+
declareSygusVar(String, Sort) - Method in class io.github.cvc5.Solver
+
+
Append symbol to the current list of universal variables.
+
+
DEFAULT - io.github.cvc5.modes.ProofFormat
+
+
Use the proof format mode set in the solver options.
+
+
defineFun(String, Term[], Sort, Term) - Method in class io.github.cvc5.Solver
+
+
Define n-ary function in the current context.
+
+
defineFun(String, Term[], Sort, Term, boolean) - Method in class io.github.cvc5.Solver
+
+
Define n-ary function.
+
+
defineFunRec(Term, Term[], Term) - Method in class io.github.cvc5.Solver
+
+
Define recursive function in the current context.
+
+
defineFunRec(Term, Term[], Term, boolean) - Method in class io.github.cvc5.Solver
+
+
Define recursive function.
+
+
defineFunRec(String, Term[], Sort, Term) - Method in class io.github.cvc5.Solver
+
+
Define recursive function in the current context.
+
+
defineFunRec(String, Term[], Sort, Term, boolean) - Method in class io.github.cvc5.Solver
+
+
Define recursive function.
+
+
defineFunsRec(Term[], Term[][], Term[]) - Method in class io.github.cvc5.Solver
+
+
Define recursive functions in the current context.
+
+
defineFunsRec(Term[], Term[][], Term[], boolean) - Method in class io.github.cvc5.Solver
+
+
Define recursive functions.
+
+
deletePointer() - Method in class io.github.cvc5.Proof
+
 
+
deletePointer(long) - Method in class io.github.cvc5.Command
+
 
+
deletePointer(long) - Method in class io.github.cvc5.Datatype
+
 
+
deletePointer(long) - Method in class io.github.cvc5.DatatypeConstructor
+
 
+
deletePointer(long) - Method in class io.github.cvc5.DatatypeConstructorDecl
+
 
+
deletePointer(long) - Method in class io.github.cvc5.DatatypeDecl
+
 
+
deletePointer(long) - Method in class io.github.cvc5.DatatypeSelector
+
 
+
deletePointer(long) - Method in class io.github.cvc5.Grammar
+
 
+
deletePointer(long) - Method in class io.github.cvc5.InputParser
+
 
+
deletePointer(long) - Method in class io.github.cvc5.Op
+
 
+
deletePointer(long) - Method in class io.github.cvc5.OptionInfo
+
 
+
deletePointer(long) - Method in class io.github.cvc5.Proof
+
 
+
deletePointer(long) - Method in class io.github.cvc5.Result
+
 
+
deletePointer(long) - Method in class io.github.cvc5.Solver
+
 
+
deletePointer(long) - Method in class io.github.cvc5.Sort
+
 
+
deletePointer(long) - Method in class io.github.cvc5.Stat
+
 
+
deletePointer(long) - Method in class io.github.cvc5.Statistics
+
 
+
deletePointer(long) - Method in class io.github.cvc5.SymbolManager
+
 
+
deletePointer(long) - Method in class io.github.cvc5.SynthResult
+
 
+
deletePointer(long) - Method in class io.github.cvc5.Term
+
 
+
deletePointer(long) - Method in class io.github.cvc5.TermManager
+
 
+
deletePointers() - Static method in class io.github.cvc5.Context
+
+
Delete all cpp pointers for terms, sorts, etc
+
+
DISTINCT - io.github.cvc5.Kind
+
+
Disequality.
+
+
DISTINCT_BINARY_ELIM - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule distinct-binary-elim
+
+
DISTINCT_CARD_CONFLICT - io.github.cvc5.ProofRewriteRule
+
+
Builtin – Distinct cardinality conflict + + \[ + \texttt{distinct}(t_1, \ldots, tn) = \bot + \] + where \(n\) is greater than the cardinality of the type of + \(t_1, \ldots, t_n\).
+
+
DISTINCT_ELIM - io.github.cvc5.ProofRewriteRule
+
+
Builtin – Distinct elimination + + \[ + \texttt{distinct}(t_1, t_2) = \neg (t_1 = t2) + \] + if \(n = 2\), or + + \[ + \texttt{distinct}(t_1, \ldots, tn) = \bigwedge_{i=1}^n \bigwedge_{j=i+1}^n t_i \neq t_j + \] + if \(n > 2\)
+
+
DIV_BY_ZERO - io.github.cvc5.SkolemId
+
+
The function for division by zero.
+
+
DIVISIBLE - io.github.cvc5.Kind
+
+
Operator for the divisibility-by-\(k\) predicate.
+
+
DIVISION - io.github.cvc5.Kind
+
+
Real division, division by 0 undefined, left associative.
+
+
DIVISION_TOTAL - io.github.cvc5.Kind
+
+
Real division, division by 0 defined to be 0, left associative.
+
+
done() - Method in class io.github.cvc5.InputParser
+
 
+
DOT - io.github.cvc5.modes.ProofFormat
+
+
Output DOT proof.
+
+
doubleValue() - Method in class io.github.cvc5.OptionInfo
+
+
Obtain the current value as a double.
+
+
DRAT_REFUTATION - io.github.cvc5.ProofRule
+
+
DRAT Refutation + + \[ + \inferrule{F_1 \dots F_n \mid D, P}{\bot} + \] + where \(F_1 \dots F_n\) correspond to the clauses in the + DIMACS file given by filename `D` and `P` is a filename of a file storing + a DRAT proof.
+
+
DSL_REWRITE - io.github.cvc5.ProofRule
+
+
Builtin theory – DSL rewrite + + \[ + \inferrule{F_1 \dots F_n \mid id t_1 \dots t_n}{F} + \] + where `id` is a ProofRewriteRule whose definition in the + RARE DSL is \(\forall x_1 \dots x_n.
+
+
DT_CLASH - io.github.cvc5.ProofRule
+
+
Datatypes – Clash + + \[ + + \inferruleSC{\mathit{is}_{C_i}(t), \mathit{is}_{C_j}(t)\mid -}{\bot} + {if $i\neq j$} + \]
+
+
DT_COLLAPSE_SELECTOR - io.github.cvc5.ProofRewriteRule
+
+
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_TESTER - io.github.cvc5.ProofRewriteRule
+
+
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_SINGLETON - io.github.cvc5.ProofRewriteRule
+
+
Datatypes – collapse tester + + \[ + \mathit{is}_c(t) = true + \] + where \(c\) is the only constructor of its associated datatype.
+
+
DT_COLLAPSE_UPDATER - io.github.cvc5.ProofRewriteRule
+
+
Datatypes – collapse tester + + \[ + u_{c,i}(c(t_1, \ldots, t_i, \ldots, t_n), s) = c(t_1, \ldots, s, \ldots, t_n) + \] + or alternatively + + \[ + u_{c,i}(d(t_1, \ldots, t_n), s) = d(t_1, \ldots, t_n) + \] + where \(c\) and \(d\) are distinct constructors.
+
+
DT_CONS_EQ - io.github.cvc5.ProofRewriteRule
+
+
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_CYCLE - io.github.cvc5.ProofRewriteRule
+
+
Datatypes – cycle + + \[ + (x = t[x]) = \bot + \] + where all terms on the path to \(x\) in \(t[x]\) are applications + of constructors, and this path is non-empty.
+
+
DT_INST - io.github.cvc5.ProofRewriteRule
+
+
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_MATCH_ELIM - io.github.cvc5.ProofRewriteRule
+
+
Datatypes – match elimination + + \[ + \texttt{match}(t ((p_1 c_1) \ldots (p_n c_n))) = \texttt{ite}(F_1, r_1, \texttt{ite}( \ldots, r_n)) + \] + where for \(i=1, \ldots, n\), \(F_1\) is a formula that holds iff + \(t\) matches \(p_i\) and \(r_i\) is the result of a + substitution on \(c_i\) based on this match.
+
+
DT_SPLIT - io.github.cvc5.ProofRule
+
+
Datatypes – Split + + \[ + + \inferrule{-\mid t}{\mathit{is}_{C_1}(t)\vee\cdots\vee\mathit{is}_{C_n}(t)} + \] + where \(C_1,\dots,C_n\) are all the constructors of the type of \(t\).
+
+
DT_UPDATER_ELIM - io.github.cvc5.ProofRewriteRule
+
+
Datatypes - updater elimination + + \[ + u_{c,i}(t, s) = ite(\mathit{is}_c(t), c(s_0(t), \ldots, s, \ldots s_n(t)), t) + \] + where \(s_i\) is the \(i^{th}\) selector for constructor \(c\).
+
+
+ + + +

E

+
+
ENCODE_EQ_INTRO - io.github.cvc5.ProofRule
+
+
Builtin theory – Encode equality introduction + + \[ + \inferrule{- \mid t}{t=t'} + \] + where \(t\) and \(t'\) are equivalent up to their encoding in an + external proof format.
+
+
ENUM - io.github.cvc5.modes.FindSynthTarget
+
+
Find the next term in the enumeration of the target grammar.
+
+
EQ_COND_DEQ - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule eq-cond-deq
+
+
EQ_ITE_LIFT - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule eq-ite-lift
+
+
EQ_RANGE - io.github.cvc5.Kind
+
+
Equality over arrays \(a\) and \(b\) over a given range + \([i,j]\), i.e., + + \[ + + \forall k .
+
+
EQ_REFL - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule eq-refl
+
+
EQ_RESOLVE - io.github.cvc5.ProofRule
+
+
Boolean – Equality resolution + + \[ + \inferrule{F_1, (F_1 = F_2) \mid -}{F_2} + \] + Note this can optionally be seen as a macro for + EQUIV_ELIM1 <cvc5.ProofRule.EQUIV_ELIM1> + + RESOLUTION <cvc5.ProofRule.RESOLUTION>.
+
+
EQ_SYMM - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule eq-symm
+
+
eqTerm(Term) - Method in class io.github.cvc5.Term
+
+
Equality.
+
+
EQUAL - io.github.cvc5.Kind
+
+
Equality, chainable.
+
+
equals(Object) - Method in class io.github.cvc5.Datatype
+
+
Syntactic equality operator.
+
+
equals(Object) - Method in class io.github.cvc5.DatatypeConstructor
+
+
Syntactic equality operator.
+
+
equals(Object) - Method in class io.github.cvc5.DatatypeConstructorDecl
+
+
Syntactic equality operator.
+
+
equals(Object) - Method in class io.github.cvc5.DatatypeDecl
+
+
Syntactic equality operator.
+
+
equals(Object) - Method in class io.github.cvc5.DatatypeSelector
+
+
Syntactic equality operator.
+
+
equals(Object) - Method in class io.github.cvc5.Grammar
+
+
Referential equality operator.
+
+
equals(Object) - Method in class io.github.cvc5.Op
+
+
Syntactic equality operator.
+
+
equals(Object) - Method in class io.github.cvc5.Pair
+
 
+
equals(Object) - Method in class io.github.cvc5.Proof
+
+
Referential equality operator.
+
+
equals(Object) - Method in class io.github.cvc5.Result
+
+
Operator overloading for equality of two results.
+
+
equals(Object) - Method in class io.github.cvc5.Solver
+
 
+
equals(Object) - Method in class io.github.cvc5.Sort
+
+
Comparison for structural equality.
+
+
equals(Object) - Method in class io.github.cvc5.SymbolManager
+
 
+
equals(Object) - Method in class io.github.cvc5.SynthResult
+
+
Operator overloading for equality of two synthesis results.
+
+
equals(Object) - Method in class io.github.cvc5.Term
+
+
Syntactic equality operator.
+
+
equals(Object) - Method in class io.github.cvc5.TermManager
+
 
+
equals(Object) - Method in class io.github.cvc5.Triplet
+
 
+
EQUIV_ELIM1 - io.github.cvc5.ProofRule
+
+
Boolean – Equivalence elimination version 1 + + \[ + \inferrule{F_1 = F_2 \mid -}{\neg F_1 \lor F_2} + \]
+
+
EQUIV_ELIM2 - io.github.cvc5.ProofRule
+
+
Boolean – Equivalence elimination version 2 + + \[ + \inferrule{F_1 = F_2 \mid -}{F_1 \lor \neg F_2} + \]
+
+
EVALUATE - io.github.cvc5.ProofRule
+
+
Builtin theory – Evaluate + + \[ + \inferrule{- \mid t}{t = \texttt{evaluate}(t)} + \] + where \(\texttt{evaluate}\) is implemented by calling the method + \(\texttt{Evalutor::evaluate}\) in :cvc5src:`theory/evaluator.h` with an + empty substitution.
+
+
EXISTS - io.github.cvc5.Kind
+
+
Existentially quantified formula.
+
+
EXISTS_ELIM - io.github.cvc5.ProofRewriteRule
+
+
Quantifiers – Exists elimination + + \[ + \exists x_1\dots x_n.\> F = \neg \forall x_1\dots x_n.\> \neg F + \]
+
+
EXPONENTIAL - io.github.cvc5.Kind
+
+
Exponential function.
+
+
+ + + +

F

+
+
FACTORING - io.github.cvc5.ProofRule
+
+
Boolean – Factoring + + \[ + \inferrule{C_1 \mid -}{C_2} + \] + where \(C_2\) is the clause \(C_1\), but every occurrence of a literal + after its first occurrence is omitted.
+
+
FALSE_ELIM - io.github.cvc5.ProofRule
+
+
Equality – False elim + + \[ + + \inferrule{F=\bot\mid -}{\neg F} + \]
+
+
FALSE_INTRO - io.github.cvc5.ProofRule
+
+
Equality – False intro + + \[ + + \inferrule{\neg F\mid -}{F = \bot} + \]
+
+
findSynth(FindSynthTarget) - Method in class io.github.cvc5.Solver
+
+
Find a target term of interest using sygus enumeration, with no provided + grammar.
+
+
findSynth(FindSynthTarget, Grammar) - Method in class io.github.cvc5.Solver
+
+
Find a target term of interest using sygus enumeration with a provided + grammar.
+
+
findSynthNext() - Method in class io.github.cvc5.Solver
+
+
Try to find a next target term of interest using sygus enumeration.
+
+
FindSynthTarget - Enum in io.github.cvc5.modes
+
 
+
FINITE_FIELD_ADD - io.github.cvc5.Kind
+
+
Addition of two or more finite field elements.
+
+
FINITE_FIELD_BITSUM - io.github.cvc5.Kind
+
+
Bitsum of two or more finite field elements: x + 2y + 4z + ...
+
+
FINITE_FIELD_MULT - io.github.cvc5.Kind
+
+
Multiplication of two or more finite field elements.
+
+
FINITE_FIELD_NEG - io.github.cvc5.Kind
+
+
Negation of a finite field element (additive inverse).
+
+
FINITE_FIELD_SORT - io.github.cvc5.SortKind
+
+
A finite field sort, parameterized by a size.
+
+
first - Variable in class io.github.cvc5.Pair
+
 
+
first - Variable in class io.github.cvc5.Triplet
+
 
+
FLOATINGPOINT_ABS - io.github.cvc5.Kind
+
+
Floating-point absolute value.
+
+
FLOATINGPOINT_ADD - io.github.cvc5.Kind
+
+
Floating-point addition.
+
+
FLOATINGPOINT_DIV - io.github.cvc5.Kind
+
+
Floating-point division.
+
+
FLOATINGPOINT_EQ - io.github.cvc5.Kind
+
+
Floating-point equality.
+
+
FLOATINGPOINT_FMA - io.github.cvc5.Kind
+
+
Floating-point fused multiply and add.
+
+
FLOATINGPOINT_FP - io.github.cvc5.Kind
+
+
Create floating-point literal from bit-vector triple.
+
+
FLOATINGPOINT_GEQ - io.github.cvc5.Kind
+
+
Floating-point greater than or equal.
+
+
FLOATINGPOINT_GT - io.github.cvc5.Kind
+
+
Floating-point greater than.
+
+
FLOATINGPOINT_IS_INF - io.github.cvc5.Kind
+
+
Floating-point is infinite tester.
+
+
FLOATINGPOINT_IS_NAN - io.github.cvc5.Kind
+
+
Floating-point is NaN tester.
+
+
FLOATINGPOINT_IS_NEG - io.github.cvc5.Kind
+
+
Floating-point is negative tester.
+
+
FLOATINGPOINT_IS_NORMAL - io.github.cvc5.Kind
+
+
Floating-point is normal tester.
+
+
FLOATINGPOINT_IS_POS - io.github.cvc5.Kind
+
+
Floating-point is positive tester.
+
+
FLOATINGPOINT_IS_SUBNORMAL - io.github.cvc5.Kind
+
+
Floating-point is sub-normal tester.
+
+
FLOATINGPOINT_IS_ZERO - io.github.cvc5.Kind
+
+
Floating-point is zero tester.
+
+
FLOATINGPOINT_LEQ - io.github.cvc5.Kind
+
+
Floating-point less than or equal.
+
+
FLOATINGPOINT_LT - io.github.cvc5.Kind
+
+
Floating-point less than.
+
+
FLOATINGPOINT_MAX - io.github.cvc5.Kind
+
+
Floating-point maximum.
+
+
FLOATINGPOINT_MIN - io.github.cvc5.Kind
+
+
Floating-point minimum.
+
+
FLOATINGPOINT_MULT - io.github.cvc5.Kind
+
+
Floating-point multiply.
+
+
FLOATINGPOINT_NEG - io.github.cvc5.Kind
+
+
Floating-point negation.
+
+
FLOATINGPOINT_REM - io.github.cvc5.Kind
+
+
Floating-point remainder.
+
+
FLOATINGPOINT_RTI - io.github.cvc5.Kind
+
+
Floating-point round to integral.
+
+
FLOATINGPOINT_SORT - io.github.cvc5.SortKind
+
+
A floating-point sort, parameterized by two integers denoting its + exponent and significand bit-widths.
+
+
FLOATINGPOINT_SQRT - io.github.cvc5.Kind
+
+
Floating-point square root.
+
+
FLOATINGPOINT_SUB - io.github.cvc5.Kind
+
+
Floating-point sutraction.
+
+
FLOATINGPOINT_TO_FP_FROM_FP - io.github.cvc5.Kind
+
+
Conversion to floating-point from floating-point.
+
+
FLOATINGPOINT_TO_FP_FROM_IEEE_BV - io.github.cvc5.Kind
+
+
Conversion to floating-point from IEEE-754 bit-vector.
+
+
FLOATINGPOINT_TO_FP_FROM_REAL - io.github.cvc5.Kind
+
+
Conversion to floating-point from Real.
+
+
FLOATINGPOINT_TO_FP_FROM_SBV - io.github.cvc5.Kind
+
+
Conversion to floating-point from signed bit-vector.
+
+
FLOATINGPOINT_TO_FP_FROM_UBV - io.github.cvc5.Kind
+
+
Conversion to floating-point from unsigned bit-vector.
+
+
FLOATINGPOINT_TO_REAL - io.github.cvc5.Kind
+
+
Conversion to Real from floating-point.
+
+
FLOATINGPOINT_TO_SBV - io.github.cvc5.Kind
+
+
Conversion to signed bit-vector from floating-point.
+
+
FLOATINGPOINT_TO_UBV - io.github.cvc5.Kind
+
+
Conversion to unsigned bit-vector from floating-point.
+
+
FORALL - io.github.cvc5.Kind
+
+
Universally quantified formula.
+
+
FP_MAX_ZERO - io.github.cvc5.SkolemId
+
+
A skolem function that is unique per floating-point sort, introduced for + the undefined zero case of fp.max.
+
+
FP_MIN_ZERO - io.github.cvc5.SkolemId
+
+
A skolem function that is unique per floating-point sort, introduced for + the undefined zero case of fp.min.
+
+
FP_TO_REAL - io.github.cvc5.SkolemId
+
+
A skolem function introduced for the undefined of fp.to_real that is + unique per floating-point sort.
+
+
FP_TO_SBV - io.github.cvc5.SkolemId
+
+
A skolem function introduced for the undefined out-ouf-bounds case of + fp.to_sbv that is unique per floating-point sort and sort of the + arguments to the operator.
+
+
FP_TO_UBV - io.github.cvc5.SkolemId
+
+
A skolem function introduced for the undefined out-ouf-bounds case of + fp.to_ubv that is unique per floating-point sort and sort of the + arguments to the operator.
+
+
fromInt(int) - Static method in enum io.github.cvc5.Kind
+
 
+
fromInt(int) - Static method in enum io.github.cvc5.modes.BlockModelsMode
+
 
+
fromInt(int) - Static method in enum io.github.cvc5.modes.FindSynthTarget
+
 
+
fromInt(int) - Static method in enum io.github.cvc5.modes.InputLanguage
+
 
+
fromInt(int) - Static method in enum io.github.cvc5.modes.LearnedLitType
+
 
+
fromInt(int) - Static method in enum io.github.cvc5.modes.ProofComponent
+
 
+
fromInt(int) - Static method in enum io.github.cvc5.modes.ProofFormat
+
 
+
fromInt(int) - Static method in enum io.github.cvc5.ProofRewriteRule
+
 
+
fromInt(int) - Static method in enum io.github.cvc5.ProofRule
+
 
+
fromInt(int) - Static method in enum io.github.cvc5.RoundingMode
+
 
+
fromInt(int) - Static method in enum io.github.cvc5.SkolemId
+
 
+
fromInt(int) - Static method in enum io.github.cvc5.SortKind
+
 
+
fromInt(int) - Static method in enum io.github.cvc5.UnknownExplanation
+
 
+
FULL - io.github.cvc5.modes.ProofComponent
+
+
A proof of false whose free assumptions are a subset of the input formulas + F1), ...
+
+
FUNCTION_SORT - io.github.cvc5.SortKind
+
+
A function sort with given domain sorts and codomain sort.
+
+
+ + + +

G

+
+
GEQ - io.github.cvc5.Kind
+
+
Greater than or equal, chainable.
+
+
get(int) - Method in class io.github.cvc5.Op
+
+
Get the index at position i.
+
+
get(String) - Method in class io.github.cvc5.Statistics
+
+
Retrieve the statistic with the given name.
+
+
getAbduct(Term) - Method in class io.github.cvc5.Solver
+
+
Get an abduct.
+
+
getAbduct(Term, Grammar) - Method in class io.github.cvc5.Solver
+
+
Get an abduct.
+
+
getAbductNext() - Method in class io.github.cvc5.Solver
+
+
Get the next abduct.
+
+
getAbstractedKind() - Method in class io.github.cvc5.Sort
+
 
+
getAliases() - Method in class io.github.cvc5.OptionInfo
+
 
+
getArguments() - Method in class io.github.cvc5.Proof
+
 
+
getArrayElementSort() - Method in class io.github.cvc5.Sort
+
 
+
getArrayIndexSort() - Method in class io.github.cvc5.Sort
+
 
+
getAssertions() - Method in class io.github.cvc5.Solver
+
+
Get the list of asserted formulas.
+
+
getBagElementSort() - Method in class io.github.cvc5.Sort
+
 
+
getBaseInfo() - Method in class io.github.cvc5.OptionInfo
+
 
+
getBitVectorSize() - Method in class io.github.cvc5.Sort
+
 
+
getBitVectorValue() - Method in class io.github.cvc5.Term
+
+
Asserts isBitVectorValue().
+
+
getBitVectorValue(int) - Method in class io.github.cvc5.Term
+
+
Get the string representation of a bit-vector value.
+
+
getBooleanSort() - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.getBooleanSort(). + It will be removed in a future release.
+
+
+
getBooleanSort() - Method in class io.github.cvc5.TermManager
+
+
Get the Boolean sort.
+
+
getBooleanValue() - Method in class io.github.cvc5.Term
+
+
Asserts isBooleanValue().
+
+
getCardinalityConstraint() - Method in class io.github.cvc5.Term
+
+
Asserts isCardinalityConstraint().
+
+
getChild(int) - Method in class io.github.cvc5.Term
+
+
Get the child term at a given index.
+
+
getChildren() - Method in class io.github.cvc5.Proof
+
 
+
getCodomainSort() - Method in class io.github.cvc5.DatatypeSelector
+
 
+
getCommandName() - Method in class io.github.cvc5.Command
+
+
Get the name for this command, e.g.
+
+
getConstArrayBase() - Method in class io.github.cvc5.Term
+
+
Asserts isConstArray().
+
+
getConstructor(int) - Method in class io.github.cvc5.Datatype
+
+
Get the datatype constructor at a given index.
+
+
getConstructor(String) - Method in class io.github.cvc5.Datatype
+
+
Get the datatype constructor with the given name.
+
+
getCurrentValue() - Method in class io.github.cvc5.OptionInfo.ValueInfo
+
 
+
getDatatype() - Method in class io.github.cvc5.Sort
+
 
+
getDatatypeArity() - Method in class io.github.cvc5.Sort
+
 
+
getDatatypeConstructorArity() - Method in class io.github.cvc5.Sort
+
 
+
getDatatypeConstructorCodomainSort() - Method in class io.github.cvc5.Sort
+
 
+
getDatatypeConstructorDomainSorts() - Method in class io.github.cvc5.Sort
+
 
+
getDatatypeSelectorCodomainSort() - Method in class io.github.cvc5.Sort
+
 
+
getDatatypeSelectorDomainSort() - Method in class io.github.cvc5.Sort
+
 
+
getDatatypeTesterCodomainSort() - Method in class io.github.cvc5.Sort
+
 
+
getDatatypeTesterDomainSort() - Method in class io.github.cvc5.Sort
+
 
+
getDeclaredSorts() - Method in class io.github.cvc5.SymbolManager
+
+
Get the list of sorts that have been declared via `declare-sort` commands.
+
+
getDeclaredTerms() - Method in class io.github.cvc5.SymbolManager
+
+
Get the list of terms that have been declared via `declare-fun` and + `declare-const`.
+
+
getDefaultValue() - Method in class io.github.cvc5.OptionInfo.ValueInfo
+
 
+
getDifficulty() - Method in class io.github.cvc5.Solver
+
+
Get a difficulty estimate for an asserted formula.
+
+
getDouble() - Method in class io.github.cvc5.Stat
+
+
Return the double value.
+
+
getFiniteFieldSize() - Method in class io.github.cvc5.Sort
+
 
+
getFiniteFieldValue() - Method in class io.github.cvc5.Term
+
+
Get the string representation of a finite field value.
+
+
getFloatingPointExponentSize() - Method in class io.github.cvc5.Sort
+
 
+
getFloatingPointSignificandSize() - Method in class io.github.cvc5.Sort
+
 
+
getFloatingPointValue() - Method in class io.github.cvc5.Term
+
+
Asserts isFloatingPointValue().
+
+
getFunctionArity() - Method in class io.github.cvc5.Sort
+
 
+
getFunctionCodomainSort() - Method in class io.github.cvc5.Sort
+
 
+
getFunctionDomainSorts() - Method in class io.github.cvc5.Sort
+
 
+
getHistogram() - Method in class io.github.cvc5.Stat
+
+
Return the histogram value.
+
+
getId() - Method in class io.github.cvc5.Term
+
 
+
getInfo(String) - Method in class io.github.cvc5.Solver
+
+
Get info from the solver.
+
+
getInstantiatedParameters() - Method in class io.github.cvc5.Sort
+
+
Get the sorts used to instantiate the sort parameters of a parametric + sort (parametric datatype or uninterpreted sort constructor sort, + see Sort.instantiate(Sort[])).
+
+
getInstantiatedTerm(Sort) - Method in class io.github.cvc5.DatatypeConstructor
+
+
Get the constructor term of this datatype constructor whose return + type is retSort.
+
+
getInstantiations() - Method in class io.github.cvc5.Solver
+
+
Get a string that contains information about all instantiations made by + the quantifiers module.
+
+
getInt() - Method in class io.github.cvc5.Stat
+
+
Return the integer value.
+
+
getIntegerSort() - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.getIntegerSort(). + It will be removed in a future release.
+
+
+
getIntegerSort() - Method in class io.github.cvc5.TermManager
+
+
Get the integer sort.
+
+
getIntegerSort(long) - Method in class io.github.cvc5.TermManager
+
 
+
getIntegerValue() - Method in class io.github.cvc5.Term
+
+
Asserts isIntegerValue().
+
+
getInterpolant(Term) - Method in class io.github.cvc5.Solver
+
+
Get an interpolant.
+
+
getInterpolant(Term, Grammar) - Method in class io.github.cvc5.Solver
+
+
Get an interpolant.
+
+
getInterpolantNext() - Method in class io.github.cvc5.Solver
+
+
Get the next interpolant.
+
+
getKind() - Method in class io.github.cvc5.Op
+
 
+
getKind() - Method in class io.github.cvc5.Sort
+
 
+
getKind() - Method in class io.github.cvc5.Term
+
 
+
getLearnedLiterals() - Method in class io.github.cvc5.Solver
+
+
Get a list of input literals that are entailed by the current set of + assertions.
+
+
getLearnedLiterals(LearnedLitType) - Method in class io.github.cvc5.Solver
+
+
Get a list of literals that are entailed by the current set of assertions.
+
+
getLogic() - Method in class io.github.cvc5.Solver
+
+
Get the logic set the solver.
+
+
getLogic() - Method in class io.github.cvc5.SymbolManager
+
 
+
getMaximum() - Method in class io.github.cvc5.OptionInfo.NumberInfo
+
 
+
getMinimum() - Method in class io.github.cvc5.OptionInfo.NumberInfo
+
 
+
getModel(Sort[], Term[]) - Method in class io.github.cvc5.Solver
+
+
Get the model + + SMT-LIB: + + ( get-model ) + + + Requires to enable option produce-models.
+
+
getModelDomainElements(Sort) - Method in class io.github.cvc5.Solver
+
+
Get the domain elements of uninterpreted sort s in the current model.
+
+
getModes() - Method in class io.github.cvc5.OptionInfo.ModeInfo
+
 
+
getName() - Method in class io.github.cvc5.AbstractPlugin
+
+
Get the name of the plugin (for debugging).
+
+
getName() - Method in class io.github.cvc5.Datatype
+
 
+
getName() - Method in class io.github.cvc5.DatatypeConstructor
+
 
+
getName() - Method in class io.github.cvc5.DatatypeDecl
+
 
+
getName() - Method in class io.github.cvc5.DatatypeSelector
+
 
+
getName() - Method in class io.github.cvc5.OptionInfo
+
 
+
getNamedTerms() - Method in class io.github.cvc5.SymbolManager
+
+
Get a mapping from terms to names that have been given to them via the + :named attribute.
+
+
getNullableElementSort() - Method in class io.github.cvc5.Sort
+
 
+
getNumChildren() - Method in class io.github.cvc5.Term
+
 
+
getNumConstructors() - Method in class io.github.cvc5.Datatype
+
 
+
getNumConstructors() - Method in class io.github.cvc5.DatatypeDecl
+
+
Get the number of constructors (so far) for this Datatype declaration.
+
+
getNumIndices() - Method in class io.github.cvc5.Op
+
 
+
getNumIndicesForSkolemId(SkolemId) - Method in class io.github.cvc5.TermManager
+
+
Get the number of indices for a given skolem id.
+
+
getNumSelectors() - Method in class io.github.cvc5.DatatypeConstructor
+
 
+
getOp() - Method in class io.github.cvc5.Term
+
 
+
getOption(String) - Method in class io.github.cvc5.Solver
+
+
Get the value of a given option.
+
+
getOptionInfo(String) - Method in class io.github.cvc5.Solver
+
+
Get some information about the given option.
+
+
getOptionNames() - Method in class io.github.cvc5.Solver
+
+
Get all option names that can be used with + Solver.setOption(String, String), + Solver.getOption(String) and + Solver.getOptionInfo(String).
+
+
getPairs(Pair<K, ? extends AbstractPointer>[]) - Static method in class io.github.cvc5.Utils
+
 
+
getParameters() - Method in class io.github.cvc5.Datatype
+
 
+
getPointer() - Method in class io.github.cvc5.Proof
+
 
+
getPointers(IPointer[]) - Static method in class io.github.cvc5.Utils
+
 
+
getPointers(IPointer[][]) - Static method in class io.github.cvc5.Utils
+
 
+
getProof() - Method in class io.github.cvc5.Solver
+
+
Get refutation proof for the most recent call to checkSat.
+
+
getProof(ProofComponent) - Method in class io.github.cvc5.Solver
+
+
Get a proof associated with the most recent call to checkSat.
+
+
getProofs(long[]) - Static method in class io.github.cvc5.Utils
+
 
+
getQuantifierElimination(Term) - Method in class io.github.cvc5.Solver
+
+
Do quantifier elimination.
+
+
getQuantifierEliminationDisjunct(Term) - Method in class io.github.cvc5.Solver
+
+
Do partial quantifier elimination, which can be used for incrementally + computing the result of a quantifier elimination.
+
+
getRational(Pair<BigInteger, BigInteger>) - Static method in class io.github.cvc5.Utils
+
+
Convert a pair of BigIntegers to a rational string a/b
+
+
getRational(String) - Static method in class io.github.cvc5.Utils
+
+
Convert a rational string a/b to a pair of BigIntegers
+
+
getRealAlgebraicNumberDefiningPolynomial(Term) - Method in class io.github.cvc5.Term
+
+
Asserts isRealAlgebraicNumber().
+
+
getRealAlgebraicNumberLowerBound() - Method in class io.github.cvc5.Term
+
+
Asserts isRealAlgebraicNumber().
+
+
getRealAlgebraicNumberUpperBound() - Method in class io.github.cvc5.Term
+
+
Asserts isRealAlgebraicNumber().
+
+
getRealOrIntegerValueSign() - Method in class io.github.cvc5.Term
+
+
Get integer or real value sign.
+
+
getRealSort() - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.getRealSort(). + It will be removed in a future release.
+
+
+
getRealSort() - Method in class io.github.cvc5.TermManager
+
+
Get the real sort.
+
+
getRealValue() - Method in class io.github.cvc5.Term
+
+
Asserts isRealValue().
+
+
getRegExpSort() - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.getRegExpSort(). + It will be removed in a future release.
+
+
+
getRegExpSort() - Method in class io.github.cvc5.TermManager
+
+
Get the regular expression sort.
+
+
getResult() - Method in class io.github.cvc5.Proof
+
 
+
getRewriteRule() - Method in class io.github.cvc5.Proof
+
 
+
getRoundingModeSort() - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.getRoundingModeSort(). + It will be removed in a future release.
+
+
+
getRoundingModeSort() - Method in class io.github.cvc5.TermManager
+
+
Get the floating-point rounding mode sort.
+
+
getRoundingModeValue() - Method in class io.github.cvc5.Term
+
+
Asserts isRoundingModeValue().
+
+
getRule() - Method in class io.github.cvc5.Proof
+
 
+
getSelector(int) - Method in class io.github.cvc5.DatatypeConstructor
+
+
Get the DatatypeSelector at the given index
+
+
getSelector(String) - Method in class io.github.cvc5.Datatype
+
+
Get the datatype constructor with the given name.
+
+
getSelector(String) - Method in class io.github.cvc5.DatatypeConstructor
+
+
Get the datatype selector with the given name.
+
+
getSequenceElementSort() - Method in class io.github.cvc5.Sort
+
 
+
getSequenceValue() - Method in class io.github.cvc5.Term
+
+
Asserts isSequenceValue().
+
+
getSetByUser() - Method in class io.github.cvc5.OptionInfo
+
 
+
getSetElementSort() - Method in class io.github.cvc5.Sort
+
 
+
getSetValue() - Method in class io.github.cvc5.Term
+
+
Asserts isSetValue().
+
+
getSkolemId() - Method in class io.github.cvc5.Term
+
+
Get skolem identifier of this term.
+
+
getSkolemIndices() - Method in class io.github.cvc5.Term
+
+
Get the skolem indices of this term.
+
+
getSolver() - Method in class io.github.cvc5.InputParser
+
 
+
getSort() - Method in class io.github.cvc5.Term
+
 
+
getSorts(long[]) - Static method in class io.github.cvc5.Utils
+
 
+
getStatistics() - Method in class io.github.cvc5.Solver
+
+
Get a snapshot of the current state of the statistic values of this + solver.
+
+
getStatistics() - Method in class io.github.cvc5.TermManager
+
+
Get a snapshot of the current state of the statistic values of this + term manager.
+
+
getString() - Method in class io.github.cvc5.Stat
+
+
Return the string value.
+
+
getStringSort() - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.getStringSort(). + It will be removed in a future release.
+
+
+
getStringSort() - Method in class io.github.cvc5.TermManager
+
+
Get the string sort.
+
+
getStringValue() - Method in class io.github.cvc5.Term
+
 
+
getSygusAssumptions() - Method in class io.github.cvc5.Solver
+
+
Get the list of sygus assumptions.
+
+
getSygusConstraints() - Method in class io.github.cvc5.Solver
+
+
Get the list of sygus constraints.
+
+
getSymbol() - Method in class io.github.cvc5.Sort
+
 
+
getSymbol() - Method in class io.github.cvc5.Term
+
+
Asserts hasSymbol().
+
+
getSymbolManager() - Method in class io.github.cvc5.InputParser
+
 
+
getSynthSolution(Term) - Method in class io.github.cvc5.Solver
+
+
Get the synthesis solution of the given term.
+
+
getSynthSolutions(Term[]) - Method in class io.github.cvc5.Solver
+
+
Get the synthesis solutions of the given terms.
+
+
getTerm() - Method in class io.github.cvc5.DatatypeConstructor
+
+
Get the constructor term of this datatype constructor.
+
+
getTerm() - Method in class io.github.cvc5.DatatypeSelector
+
+
Get the selector term of this datatype selector.
+
+
getTermManager() - Method in class io.github.cvc5.AbstractPlugin
+
+
Get the associated term manager instance
+
+
getTermManager() - Method in class io.github.cvc5.Solver
+
+
Get the associated term manager instance
+
+
getTerms(long[]) - Static method in class io.github.cvc5.Utils
+
 
+
getTesterTerm() - Method in class io.github.cvc5.DatatypeConstructor
+
+
Get the tester term of this datatype constructor.
+
+
getTimeoutCore() - Method in class io.github.cvc5.Solver
+
+
Get a timeout core, which computes a subset of the current assertions that + cause a timeout.
+
+
getTimeoutCoreAssuming(Term[]) - Method in class io.github.cvc5.Solver
+
+
Get a timeout core, which computes a subset of the given assumptions that + cause a timeout when added to the current assertions.
+
+
getTupleLength() - Method in class io.github.cvc5.Sort
+
 
+
getTupleSorts() - Method in class io.github.cvc5.Sort
+
 
+
getTupleValue() - Method in class io.github.cvc5.Term
+
+
Asserts isTupleValue().
+
+
getUninterpretedSortConstructor() - Method in class io.github.cvc5.Sort
+
+
Get the associated uninterpreted sort constructor of an instantiated + uninterpreted sort.
+
+
getUninterpretedSortConstructorArity() - Method in class io.github.cvc5.Sort
+
 
+
getUninterpretedSortValue() - Method in class io.github.cvc5.Term
+
+
Asserts isUninterpretedSortValue().
+
+
getUnknownExplanation() - Method in class io.github.cvc5.Result
+
+
Get an explanation for an unknown query result.
+
+
getUnsatAssumptions() - Method in class io.github.cvc5.Solver
+
+
Get the set of unsat ("failed") assumptions.
+
+
getUnsatCore() - Method in class io.github.cvc5.Solver
+
+
Get the unsatisfiable core.
+
+
getUnsatCoreLemmas() - Method in class io.github.cvc5.Solver
+
+
Get the lemmas used to derive unsatisfiability.
+
+
getUpdaterTerm() - Method in class io.github.cvc5.DatatypeSelector
+
+
Get the updater term of this datatype selector.
+
+
getValue() - Method in enum io.github.cvc5.Kind
+
 
+
getValue() - Method in enum io.github.cvc5.modes.BlockModelsMode
+
 
+
getValue() - Method in enum io.github.cvc5.modes.FindSynthTarget
+
 
+
getValue() - Method in enum io.github.cvc5.modes.InputLanguage
+
 
+
getValue() - Method in enum io.github.cvc5.modes.LearnedLitType
+
 
+
getValue() - Method in enum io.github.cvc5.modes.ProofComponent
+
 
+
getValue() - Method in enum io.github.cvc5.modes.ProofFormat
+
 
+
getValue() - Method in enum io.github.cvc5.ProofRewriteRule
+
 
+
getValue() - Method in enum io.github.cvc5.ProofRule
+
 
+
getValue() - Method in enum io.github.cvc5.RoundingMode
+
 
+
getValue() - Method in enum io.github.cvc5.SkolemId
+
 
+
getValue() - Method in enum io.github.cvc5.SortKind
+
 
+
getValue() - Method in enum io.github.cvc5.UnknownExplanation
+
 
+
getValue(Term) - Method in class io.github.cvc5.Solver
+
+
Get the value of the given term in the current model.
+
+
getValue(Term[]) - Method in class io.github.cvc5.Solver
+
+
Get the values of the given terms in the current model.
+
+
getValueSepHeap() - Method in class io.github.cvc5.Solver
+
+
When using separation logic, obtain the term for the heap.
+
+
getValueSepNil() - Method in class io.github.cvc5.Solver
+
+
When using separation logic, obtain the term for nil.
+
+
getVersion() - Method in class io.github.cvc5.Solver
+
+
Get a string representation of the version of this solver.
+
+
Grammar - Class in io.github.cvc5
+
+
A Sygus Grammar.
+
+
Grammar(Grammar) - Constructor for class io.github.cvc5.Grammar
+
 
+
GROUND_TERM - io.github.cvc5.SkolemId
+
+
An arbitrary ground term of a given sort.
+
+
GT - io.github.cvc5.Kind
+
+
Greater than, chainable.
+
+
+ + + +

H

+
+
hashCode() - Method in class io.github.cvc5.Datatype
+
+
Get the hash value of a datatype.
+
+
hashCode() - Method in class io.github.cvc5.DatatypeConstructor
+
+
Get the hash value of a datatype constructor.
+
+
hashCode() - Method in class io.github.cvc5.DatatypeConstructorDecl
+
+
Get the hash value of a datatype constructor declaration.
+
+
hashCode() - Method in class io.github.cvc5.DatatypeDecl
+
+
Get the hash value of a datatype declaration.
+
+
hashCode() - Method in class io.github.cvc5.DatatypeSelector
+
+
Get the hash value of a datatype selector.
+
+
hashCode() - Method in class io.github.cvc5.Grammar
+
+
Get the hash value of a grammar.
+
+
hashCode() - Method in class io.github.cvc5.Op
+
+
Get the hash value of an operator.
+
+
hashCode() - Method in class io.github.cvc5.Proof
+
+
Get the hash value of a proof.
+
+
hashCode() - Method in class io.github.cvc5.Result
+
+
Get the hash value of a result.
+
+
hashCode() - Method in class io.github.cvc5.Sort
+
+
Get the hash value of a sort.
+
+
hashCode() - Method in class io.github.cvc5.SynthResult
+
+
Get the hash value of a synthesis result.
+
+
hashCode() - Method in class io.github.cvc5.Term
+
+
Get the hash value of a term.
+
+
hasNext() - Method in class io.github.cvc5.Datatype.ConstIterator
+
 
+
hasNext() - Method in class io.github.cvc5.DatatypeConstructor.ConstIterator
+
 
+
hasNext() - Method in class io.github.cvc5.Statistics.ConstIterator
+
 
+
hasNext() - Method in class io.github.cvc5.Term.ConstIterator
+
 
+
hasNoSolution() - Method in class io.github.cvc5.SynthResult
+
 
+
hasOp() - Method in class io.github.cvc5.Term
+
 
+
hasSolution() - Method in class io.github.cvc5.SynthResult
+
 
+
hasSymbol() - Method in class io.github.cvc5.Sort
+
 
+
hasSymbol() - Method in class io.github.cvc5.Term
+
 
+
HO_APP_ENCODE - io.github.cvc5.ProofRule
+
+
Equality – Higher-order application encoding + + \[ + + \inferrule{-\mid t}{t=t'} + \] + where `t'` is the higher-order application that is equivalent to `t`, + as implemented by uf.TheoryUfRewriter.getHoApplyForApplyUf.
+
+
HO_APPLY - io.github.cvc5.Kind
+
+
Higher-order applicative encoding of function application, left + associative.
+
+
HO_CONG - io.github.cvc5.ProofRule
+
+
Equality – Higher-order congruence + + \[ + + \inferrule{f=g, t_1=s_1,\dots,t_n=s_n\mid k}{k(f, t_1,\dots, t_n) = + k(g, s_1,\dots, s_n)} + \] + Notice that this rule is only used when the application kind \(k\) is + either `cvc5.Kind.APPLY_UF` or `cvc5.Kind.HO_APPLY`.
+
+
HO_DEQ_DIFF - io.github.cvc5.SkolemId
+
+
The higher-roder diff skolem, which is the witness k for the inference + (=> (not (= A B)) (not (= (A k1 ... kn) (B k1 ... kn)))).
+
+
+ + + +

I

+
+
IAND - io.github.cvc5.Kind
+
+
Integer and.
+
+
IMPLIES - io.github.cvc5.Kind
+
+
Logical implication.
+
+
IMPLIES_ELIM - io.github.cvc5.ProofRule
+
+
Boolean – Implication elimination + + \[ + \inferrule{F_1 \rightarrow F_2 \mid -}{\neg F_1 \lor F_2} + \]
+
+
impTerm(Term) - Method in class io.github.cvc5.Term
+
+
Boolean implication.
+
+
INCOMPLETE - io.github.cvc5.UnknownExplanation
+
+
Incomplete theory solver.
+
+
INPUT - io.github.cvc5.modes.LearnedLitType
+
+
A literal from the preprocessed set of input formulas that does not + occur at top-level after preprocessing.
+
+
InputLanguage - Enum in io.github.cvc5.modes
+
 
+
InputParser - Class in io.github.cvc5
+
+
This class is the main interface for retrieving commands and expressions + from an input using a parser.
+
+
InputParser(Solver) - Constructor for class io.github.cvc5.InputParser
+
+
Construct an input parser with an initially empty symbol manager.
+
+
InputParser(Solver, SymbolManager) - Constructor for class io.github.cvc5.InputParser
+
+
Construct an input parser
+
+
INST_ADD_TO_POOL - io.github.cvc5.Kind
+
+
A instantantiation-add-to-pool annotation.
+
+
INST_ATTRIBUTE - io.github.cvc5.Kind
+
+
Instantiation attribute.
+
+
INST_NO_PATTERN - io.github.cvc5.Kind
+
+
Instantiation no-pattern.
+
+
INST_PATTERN - io.github.cvc5.Kind
+
+
Instantiation pattern.
+
+
INST_PATTERN_LIST - io.github.cvc5.Kind
+
+
A list of instantiation patterns, attributes or annotations.
+
+
INST_POOL - io.github.cvc5.Kind
+
+
Instantiation pool annotation.
+
+
instantiate(Sort[]) - Method in class io.github.cvc5.Sort
+
+
Instantiate a parameterized datatype sort or uninterpreted sort + constructor sort.
+
+
INSTANTIATE - io.github.cvc5.ProofRule
+
+
Quantifiers – Instantiation + + \[ + + \inferrule{\forall x_1\dots x_n.\> F\mid (t_1 \dots t_n), (id\, (t)?)?} + {F\{x_1\mapsto t_1,\dots,x_n\mapsto t_n\}} + \] + The list of terms to instantiate \((t_1 \dots t_n)\) is provided as + an s-expression as the first argument.
+
+
INT_DIV_BY_ZERO - io.github.cvc5.SkolemId
+
+
The function for integer division by zero.
+
+
INT_TIGHT_LB - io.github.cvc5.ProofRule
+
+
Arithmetic – Tighten strict integer lower bounds + + \[ + \inferrule{i > c \mid -}{i \geq \lceil c \rceil} + \] + where \(i\) has integer type.
+
+
INT_TIGHT_UB - io.github.cvc5.ProofRule
+
+
Arithmetic – Tighten strict integer upper bounds + + \[ + \inferrule{i < c \mid -}{i \leq \lfloor c \rfloor} + \] + where \(i\) has integer type.
+
+
INT_TO_BITVECTOR - io.github.cvc5.Kind
+
+
Conversion from Int to bit-vector.
+
+
INT_TO_BV_ELIM - io.github.cvc5.ProofRewriteRule
+
+
UF – Integer to bitvector elimination + + \[ + \texttt{int2bv}_n(t) = (bvconcat t_1 \ldots t_n) + \] + where for \(i=1, \ldots, n\), \(t_i\) is + \(\texttt{ite}(\texttt{mod}(t,2^n) \geq 2^{n-1}, 1, 0)\).
+
+
INTEGER_SORT - io.github.cvc5.SortKind
+
+
The integer sort.
+
+
INTERNAL - io.github.cvc5.modes.LearnedLitType
+
+
Any internal literal that does not fall into the above categories.
+
+
INTERNAL - io.github.cvc5.SkolemId
+
+
The identifier of the skolem is not exported.
+
+
INTERNAL_KIND - io.github.cvc5.Kind
+
+
Internal kind.
+
+
INTERNAL_SORT_KIND - io.github.cvc5.SortKind
+
+
Internal kind.
+
+
INTERRUPTED - io.github.cvc5.UnknownExplanation
+
+
Solver was interrupted.
+
+
INTS_DIVISION - io.github.cvc5.Kind
+
+
Integer division, division by 0 undefined, left associative.
+
+
INTS_DIVISION_TOTAL - io.github.cvc5.Kind
+
+
Integer division, division by 0 defined to be 0, left associative.
+
+
INTS_MODULUS - io.github.cvc5.Kind
+
+
Integer modulus, modulus by 0 undefined.
+
+
INTS_MODULUS_TOTAL - io.github.cvc5.Kind
+
+
Integer modulus, t modulus by 0 defined to be t.
+
+
intValue() - Method in class io.github.cvc5.OptionInfo
+
+
Obtain the current value as as int.
+
+
invoke(Solver, SymbolManager) - Method in class io.github.cvc5.Command
+
+
Invoke the command on the solver and symbol manager sm and return any + resulting output as a string.
+
+
io.github.cvc5 - package io.github.cvc5
+
 
+
io.github.cvc5.modes - package io.github.cvc5.modes
+
 
+
IOracle - Interface in io.github.cvc5
+
 
+
IS_INTEGER - io.github.cvc5.Kind
+
+
Is-integer predicate.
+
+
isAbstract() - Method in class io.github.cvc5.Sort
+
+
Determine if this is an abstract sort.
+
+
isArray() - Method in class io.github.cvc5.Sort
+
+
Determine if this is an array sort.
+
+
isBag() - Method in class io.github.cvc5.Sort
+
+
Determine if this is a Bag sort.
+
+
isBitVector() - Method in class io.github.cvc5.Sort
+
+
Determine if this is a bit-vector sort (SMT-LIB: (_ BitVec i)).
+
+
isBitVectorValue() - Method in class io.github.cvc5.Term
+
 
+
isBoolean() - Method in class io.github.cvc5.Sort
+
+
Determine if this is the Boolean sort (SMT-LIB: Bool).
+
+
isBooleanValue() - Method in class io.github.cvc5.Term
+
 
+
isCardinalityConstraint() - Method in class io.github.cvc5.Term
+
 
+
isCodatatype() - Method in class io.github.cvc5.Datatype
+
 
+
isConstArray() - Method in class io.github.cvc5.Term
+
 
+
isDatatype() - Method in class io.github.cvc5.Sort
+
+
Determine if this is a datatype sort.
+
+
isDatatypeConstructor() - Method in class io.github.cvc5.Sort
+
+
Determine if this is a datatype constructor sort.
+
+
isDatatypeSelector() - Method in class io.github.cvc5.Sort
+
+
Determine if this is a datatype selector sort.
+
+
isDatatypeTester() - Method in class io.github.cvc5.Sort
+
+
Determine if this is a datatype tester sort.
+
+
isDatatypeUpdater() - Method in class io.github.cvc5.Sort
+
+
Determine if this is a datatype updater sort.
+
+
isDefault() - Method in class io.github.cvc5.Stat
+
+
Does this value hold the default value?
+
+
isDouble() - Method in class io.github.cvc5.Stat
+
+
Is this value a double?
+
+
isFinite() - Method in class io.github.cvc5.Datatype
+
 
+
isFiniteField() - Method in class io.github.cvc5.Sort
+
+
Determine if this is a finite field sort (SMT-LIB: (_ FiniteField i)).
+
+
isFiniteFieldValue() - Method in class io.github.cvc5.Term
+
 
+
isFloatingPoint() - Method in class io.github.cvc5.Sort
+
+
Determine if this is a floatingpoint sort + (SMT-LIB: (_ FloatingPoint eb sb)).
+
+
isFloatingPointNaN() - Method in class io.github.cvc5.Term
+
 
+
isFloatingPointNegInf() - Method in class io.github.cvc5.Term
+
 
+
isFloatingPointNegZero() - Method in class io.github.cvc5.Term
+
 
+
isFloatingPointPosInf() - Method in class io.github.cvc5.Term
+
 
+
isFloatingPointPosZero() - Method in class io.github.cvc5.Term
+
 
+
isFloatingPointValue() - Method in class io.github.cvc5.Term
+
 
+
isFunction() - Method in class io.github.cvc5.Sort
+
+
Determine if this is a function sort.
+
+
isHistogram() - Method in class io.github.cvc5.Stat
+
+
Is this value a histogram?
+
+
isIndexed() - Method in class io.github.cvc5.Op
+
 
+
isInstantiated() - Method in class io.github.cvc5.Sort
+
+
Determine if this is an instantiated (parametric datatype or uninterpreted + sort constructor) sort.
+
+
isInt() - Method in class io.github.cvc5.Stat
+
+
Is this value an integer?
+
+
isInteger() - Method in class io.github.cvc5.Sort
+
+
Determine if this is the integer sort (SMT-LIB: Int).
+
+
isIntegerValue() - Method in class io.github.cvc5.Term
+
 
+
isInternal() - Method in class io.github.cvc5.Stat
+
+
Is this value intended for internal use only?
+
+
isLogicSet() - Method in class io.github.cvc5.Solver
+
+
Is logic set? Returns whether we called setLogic yet for this solver.
+
+
isLogicSet() - Method in class io.github.cvc5.SymbolManager
+
 
+
isModelCoreSymbol(Term) - Method in class io.github.cvc5.Solver
+
+
This returns false if the model value of free constant v was not + essential for showing the satisfiability of the last call to + Solver.checkSat() using the current model.
+
+
isNull() - Method in class io.github.cvc5.Command
+
 
+
isNull() - Method in class io.github.cvc5.Datatype
+
 
+
isNull() - Method in class io.github.cvc5.DatatypeConstructor
+
 
+
isNull() - Method in class io.github.cvc5.DatatypeConstructorDecl
+
 
+
isNull() - Method in class io.github.cvc5.DatatypeDecl
+
 
+
isNull() - Method in class io.github.cvc5.DatatypeSelector
+
 
+
isNull() - Method in class io.github.cvc5.Grammar
+
+
Determine if this is the null grammar.
+
+
isNull() - Method in class io.github.cvc5.Op
+
 
+
isNull() - Method in class io.github.cvc5.Result
+
 
+
isNull() - Method in class io.github.cvc5.Sort
+
+
Determine if this is the null sort.
+
+
isNull() - Method in class io.github.cvc5.SynthResult
+
 
+
isNull() - Method in class io.github.cvc5.Term
+
 
+
isNullable() - Method in class io.github.cvc5.Sort
+
+
Determine if this a nullable sort.
+
+
isParametric() - Method in class io.github.cvc5.Datatype
+
 
+
isParametric() - Method in class io.github.cvc5.DatatypeDecl
+
+
Determine if this datatype declaration is parametric.
+
+
isPredicate() - Method in class io.github.cvc5.Sort
+
+
Determine if this is a predicate sort.
+
+
isReal() - Method in class io.github.cvc5.Sort
+
+
Determine if this is the real sort (SMT-LIB: Real).
+
+
isRealAlgebraicNumber() - Method in class io.github.cvc5.Term
+
 
+
isRealValue() - Method in class io.github.cvc5.Term
+
 
+
isRecord() - Method in class io.github.cvc5.Datatype
+
 
+
isRecord() - Method in class io.github.cvc5.Sort
+
+
Determine if this is a record sort.
+
+
isRegExp() - Method in class io.github.cvc5.Sort
+
+
Determine if this is the regular expression sort (SMT-LIB: RegLan).
+
+
isRoundingMode() - Method in class io.github.cvc5.Sort
+
+
Determine if this is the rounding mode sort (SMT-LIB: RoundingMode).
+
+
isRoundingModeValue() - Method in class io.github.cvc5.Term
+
 
+
isSat() - Method in class io.github.cvc5.Result
+
 
+
isSequence() - Method in class io.github.cvc5.Sort
+
+
Determine if this is a Sequence sort.
+
+
isSequenceValue() - Method in class io.github.cvc5.Term
+
 
+
isSet() - Method in class io.github.cvc5.Sort
+
+
Determine if this is a Set sort.
+
+
isSetValue() - Method in class io.github.cvc5.Term
+
 
+
isSkolem() - Method in class io.github.cvc5.Term
+
 
+
isString() - Method in class io.github.cvc5.Sort
+
+
Determine if this is the string sort (SMT-LIB: String)..
+
+
isString() - Method in class io.github.cvc5.Stat
+
+
Is this value a string?
+
+
isStringValue() - Method in class io.github.cvc5.Term
+
 
+
isTuple() - Method in class io.github.cvc5.Datatype
+
 
+
isTuple() - Method in class io.github.cvc5.Sort
+
+
Determine if this a tuple sort.
+
+
isTupleValue() - Method in class io.github.cvc5.Term
+
 
+
isUninterpretedSort() - Method in class io.github.cvc5.Sort
+
+
Determine if this is an uninterpreted sort.
+
+
isUninterpretedSortConstructor() - Method in class io.github.cvc5.Sort
+
+
Determine if this is an uninterpreted sort constructor.
+
+
isUninterpretedSortValue() - Method in class io.github.cvc5.Term
+
 
+
isUnknown() - Method in class io.github.cvc5.Result
+
 
+
isUnknown() - Method in class io.github.cvc5.SynthResult
+
 
+
isUnsat() - Method in class io.github.cvc5.Result
+
 
+
isWellFounded() - Method in class io.github.cvc5.Datatype
+
+
Is this datatype well-founded? If this datatype is not a codatatype, + this returns false if there are no values of this datatype that are of + finite size.
+
+
ITE - io.github.cvc5.Kind
+
+
If-then-else.
+
+
ITE_ELIM1 - io.github.cvc5.ProofRule
+
+
Boolean – ITE elimination version 1 + + \[ + \inferrule{(\ite{C}{F_1}{F_2}) \mid -}{\neg C \lor F_1} + \]
+
+
ITE_ELIM2 - io.github.cvc5.ProofRule
+
+
Boolean – ITE elimination version 2 + + \[ + \inferrule{(\ite{C}{F_1}{F_2}) \mid -}{C \lor F_2} + \]
+
+
ITE_ELSE_FALSE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule ite-else-false
+
+
ITE_ELSE_LOOKAHEAD - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule ite-else-lookahead
+
+
ITE_ELSE_LOOKAHEAD_NOT_SELF - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule ite-else-lookahead-not-self
+
+
ITE_ELSE_LOOKAHEAD_SELF - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule ite-else-lookahead-self
+
+
ITE_ELSE_NEG_LOOKAHEAD - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule ite-else-neg-lookahead
+
+
ITE_ELSE_TRUE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule ite-else-true
+
+
ITE_EQ - io.github.cvc5.ProofRule
+
+
Processing rules – If-then-else equivalence + + \[ + \inferrule{- \mid \ite{C}{t_1}{t_2}}{\ite{C}{((\ite{C}{t_1}{t_2}) = t_1)}{((\ite{C}{t_1}{t_2}) = t_2)}} + \]
+
+
ITE_EQ_BRANCH - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule ite-eq-branch
+
+
ITE_EXPAND - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule ite-expand
+
+
ITE_FALSE_COND - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule ite-false-cond
+
+
ITE_NEG_BRANCH - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule ite-neg-branch
+
+
ITE_NOT_COND - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule ite-not-cond
+
+
ITE_THEN_FALSE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule ite-then-false
+
+
ITE_THEN_LOOKAHEAD - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule ite-then-lookahead
+
+
ITE_THEN_LOOKAHEAD_NOT_SELF - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule ite-then-lookahead-not-self
+
+
ITE_THEN_LOOKAHEAD_SELF - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule ite-then-lookahead-self
+
+
ITE_THEN_NEG_LOOKAHEAD - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule ite-then-neg-lookahead
+
+
ITE_THEN_TRUE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule ite-then-true
+
+
ITE_TRUE_COND - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule ite-true-cond
+
+
iterator() - Method in class io.github.cvc5.Datatype
+
 
+
iterator() - Method in class io.github.cvc5.DatatypeConstructor
+
 
+
iterator() - Method in class io.github.cvc5.Statistics
+
 
+
iterator() - Method in class io.github.cvc5.Term
+
 
+
iterator(boolean, boolean) - Method in class io.github.cvc5.Statistics
+
 
+
iteTerm(Term, Term) - Method in class io.github.cvc5.Term
+
+
If-then-else with this term as the Boolean condition.
+
+
+ + + +

K

+
+
Kind - Enum in io.github.cvc5
+
 
+
+ + + +

L

+
+
LAMBDA - io.github.cvc5.Kind
+
+
Lambda expression.
+
+
LAMBDA_ELIM - io.github.cvc5.ProofRewriteRule
+
+
Equality – Lambda elimination + + \[ + (\lambda x_1 \ldots x_n.\> f(x_1 \ldots x_n)) = f + \]
+
+
LAST_KIND - io.github.cvc5.Kind
+
+
Marks the upper-bound of this enumeration.
+
+
LAST_SORT_KIND - io.github.cvc5.SortKind
+
+
Marks the upper-bound of this enumeration.
+
+
LearnedLitType - Enum in io.github.cvc5.modes
+
 
+
LEQ - io.github.cvc5.Kind
+
+
Less than or equal, chainable.
+
+
LFSC - io.github.cvc5.modes.ProofFormat
+
+
Output LFSC proof.
+
+
LFSC_RULE - io.github.cvc5.ProofRule
+
+
External – LFSC + + Place holder for LFSC rules.
+
+
LIBPATH_IN_JAR - Static variable in class io.github.cvc5.Utils
+
 
+
LITERALS - io.github.cvc5.modes.BlockModelsMode
+
+
Block models based on the SAT skeleton.
+
+
loadLibraries() - Static method in class io.github.cvc5.Utils
+
+
Load cvc5 native libraries.
+
+
loadLibraryFromJar(Path, String, String) - Static method in class io.github.cvc5.Utils
+
+
Loads a native library from a specified path within a JAR file and loads it into the JVM.
+
+
LT - io.github.cvc5.Kind
+
+
Less than, chainable.
+
+
+ + + +

M

+
+
MACRO_ARITH_SCALE_SUM_UB - io.github.cvc5.ProofRule
+
+
Arithmetic – Adding inequalities + + An arithmetic literal is a term of the form \(p \diamond c\) where + \(\diamond \in \{ <, \leq, =, \geq, > \}\), \(p\) a + polynomial and \(c\) a rational constant.
+
+
MACRO_ARITH_STRING_PRED_ENTAIL - io.github.cvc5.ProofRewriteRule
+
+
Arithmetic – strings predicate entailment + + \[ + (= s t) = c + \] + \[ + (>= s t) = c + \] + where \(c\) is a Boolean constant.
+
+
MACRO_ARRAYS_DISTINCT_ARRAYS - io.github.cvc5.ProofRewriteRule
+
+
Arrays – Macro distinct arrays + + \[ + (A = B) = \bot + \] + where \(A\) and \(B\) are distinct array values, that is, + the Node.isConst method returns true for both.
+
+
MACRO_ARRAYS_NORMALIZE_CONSTANT - io.github.cvc5.ProofRewriteRule
+
+
Arrays – Macro normalize constant + + \[ + A = B + \] + where \(B\) is the result of normalizing the array value \(A\) + into a canonical form, using the internal method + TheoryArraysRewriter.normalizeConstant.
+
+
MACRO_BOOL_NNF_NORM - io.github.cvc5.ProofRewriteRule
+
+
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_BV_BITBLAST - io.github.cvc5.ProofRule
+
+
Bit-vectors – (Macro) Bitblast + + \[ + + \inferrule{-\mid t}{t = \texttt{bitblast}(t)} + \] + where \(\texttt{bitblast}\) represents the result of the bit-blasted term as + a bit-vector consisting of the output bits of the bit-blasted circuit + representation of the term.
+
+
MACRO_QUANT_MERGE_PRENEX - io.github.cvc5.ProofRewriteRule
+
+
Quantifiers – Macro merge prenex + + \[ + \forall X_1.\> \ldots \forall X_n.\> F = \forall X.\> F + \] + where \(X_1 \ldots X_n\) are lists of variables and \(X\) is the + result of removing duplicates from \(X_1 \ldots X_n\).
+
+
MACRO_QUANT_MINISCOPE - io.github.cvc5.ProofRewriteRule
+
+
Quantifiers – Macro miniscoping + + \[ + \forall X.\> F_1 \wedge \cdots \wedge F_n = + G_1 \wedge \cdots \wedge G_n + \] + where each \(G_i\) is semantically equivalent to + \(\forall X.\> F_i\), or alternatively + + \[ + \forall X.\> \ite{C}{F_1}{F_2} = \ite{C}{G_1}{G_2} + \] + where \(C\) does not have any free variable in \(X\).
+
+
MACRO_QUANT_PARTITION_CONNECTED_FV - io.github.cvc5.ProofRewriteRule
+
+
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\).
+
+
MACRO_QUANT_PRENEX - io.github.cvc5.ProofRewriteRule
+
+
Quantifiers – Macro prenex + + \[ + (\forall X.\> F_1 \vee \cdots \vee (\forall Y.\> F_i) \vee \cdots \vee F_n) = (\forall X Z.\> F_1 \vee \cdots \vee F_i\{ Y \mapsto Z \} \vee \cdots \vee F_n) + \]
+
+
MACRO_QUANT_REWRITE_BODY - io.github.cvc5.ProofRewriteRule
+
+
Quantifiers – Macro quantifiers rewrite body + + \[ + \forall X.\> F = \forall X.\> G + \] + where \(G\) is semantically equivalent to \(F\).
+
+
MACRO_QUANT_VAR_ELIM_EQ - io.github.cvc5.ProofRewriteRule
+
+
Quantifiers – Macro variable elimination equality + + \[ + \forall x Y.\> F = \forall Y.\> F \{ x \mapsto t \} + \] + where \(\neg F\) entails \(x = t\).
+
+
MACRO_QUANT_VAR_ELIM_INEQ - io.github.cvc5.ProofRewriteRule
+
+
Quantifiers – Macro variable elimination inequality + + \[ + \forall x Y.\> F = \forall Y.\> G + \] + where \(G\) is the result of replacing all literals containing + \(x\) with a constant.
+
+
MACRO_RESOLUTION - io.github.cvc5.ProofRule
+
+
Boolean – N-ary Resolution + Factoring + Reordering + + \[ + \inferrule{C_1 \dots C_n \mid C, pol_1,L_1 \dots pol_{n-1},L_{n-1}}{C} + \] + where + + + let \(C_1 \dots C_n\) be nodes viewed as clauses, as defined in + RESOLUTION <cvc5.ProofRule.RESOLUTION> + + let \(C_1 \diamond_{L,\mathit{pol}} C_2\) represent the resolution of + \(C_1\) with \(C_2\) with pivot \(L\) and polarity + \(pol\), as defined in + RESOLUTION <cvc5.ProofRule.RESOLUTION> + + let \(C_1'\) be equal, in its set representation, to \(C_1\), + + for each \(i > 1\), let \(C_i'\) be equal, in its set + representation, to \(C_{i-1} \diamond_{L_{i-1},\mathit{pol}_{i-1}} + C_i'\) + + + The result of the chain resolution is \(C\), which is equal, in its set + representation, to \(C_n'\)
+
+
MACRO_RESOLUTION_TRUST - io.github.cvc5.ProofRule
+
+
Boolean – N-ary Resolution + Factoring + Reordering unchecked + + Same as + MACRO_RESOLUTION <cvc5.ProofRule.MACRO_RESOLUTION>, but + not checked by the internal proof checker.
+
+
MACRO_REWRITE - io.github.cvc5.ProofRule
+
+
Builtin theory – Rewrite + + \[ + \inferrule{- \mid t, idr}{t = \texttt{rewrite}_{idr}(t)} + \] + where \(idr\) is a MethodId identifier, which determines the kind of + rewriter to apply, e.g.
+
+
MACRO_SR_EQ_INTRO - io.github.cvc5.ProofRule
+
+
Builtin theory – Substitution + Rewriting equality introduction + + In this rule, we provide a term \(t\) and conclude that it is equal to + its rewritten form under a (proven) substitution.
+
+
MACRO_SR_PRED_ELIM - io.github.cvc5.ProofRule
+
+
Builtin theory – Substitution + Rewriting predicate elimination + + \[ + \inferrule{F, F_1 \dots F_n \mid (ids (ida + (idr)?)?)?}{\texttt{rewrite}_{idr}(F \circ \sigma_{ids, ida}(F_n) \circ + \cdots \circ \sigma_{ids, ida}(F_1))} + \] + where \(ids\) and \(idr\) are method identifiers.
+
+
MACRO_SR_PRED_INTRO - io.github.cvc5.ProofRule
+
+
Builtin theory – Substitution + Rewriting predicate introduction + + In this rule, we provide a formula \(F\) and conclude it, under the + condition that it rewrites to true under a proven substitution.
+
+
MACRO_SR_PRED_TRANSFORM - io.github.cvc5.ProofRule
+
+
Builtin theory – Substitution + Rewriting predicate elimination + + \[ + \inferrule{F, F_1 \dots F_n \mid G, (ids (ida (idr)?)?)?}{G} + \] + where + + \[ + \texttt{rewrite}_{idr}(F \circ \sigma_{ids, ida}(F_n) \circ\cdots \circ \sigma_{ids, ida}(F_1)) =\\ \texttt{rewrite}_{idr}(G \circ \sigma_{ids, ida}(F_n) \circ \cdots \circ \sigma_{ids, ida}(F_1)) + \] + More generally, this rule also holds when: + \(\texttt{Rewriter::rewrite}(\texttt{toOriginal}(F')) = \texttt{Rewriter::rewrite}(\texttt{toOriginal}(G'))\) + where \(F'\) and \(G'\) are the result of each side of the equation + above.
+
+
MACRO_STRING_INFERENCE - io.github.cvc5.ProofRule
+
+
Strings – (Macro) String inference + + \[ + + \inferrule{?\mid F,\mathit{id},\mathit{isRev},\mathit{exp}}{F} + \] + used to bookkeep an inference that has not yet been converted via + \(\texttt{strings::InferProofCons::convert}\).
+
+
MACRO_SUBSTR_STRIP_SYM_LENGTH - io.github.cvc5.ProofRewriteRule
+
+
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\).
+
+
MATCH - io.github.cvc5.Kind
+
+
Match expression.
+
+
MATCH_BIND_CASE - io.github.cvc5.Kind
+
+
Match case with binders, for constructors with selectors and variable + patterns.
+
+
MATCH_CASE - io.github.cvc5.Kind
+
+
Match case for nullary constructors.
+
+
MEMOUT - io.github.cvc5.UnknownExplanation
+
+
Memory limit reached.
+
+
mkAbstractSort(SortKind) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkAbstractSort(SortKind). + It will be removed in a future release.
+
+
+
mkAbstractSort(SortKind) - Method in class io.github.cvc5.TermManager
+
+
Create an abstract sort.
+
+
mkArraySort(Sort, Sort) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkArraySort(Sort, Sort). + It will be removed in a future release.
+
+
+
mkArraySort(Sort, Sort) - Method in class io.github.cvc5.TermManager
+
+
Create an array sort.
+
+
mkBagSort(Sort) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkBagSort(Sort). + It will be removed in a future release.
+
+
+
mkBagSort(Sort) - Method in class io.github.cvc5.TermManager
+
+
Create a bag sort.
+
+
mkBitVector(int) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkBitVector(int). + It will be removed in a future release.
+
+
+
mkBitVector(int) - Method in class io.github.cvc5.TermManager
+
+
Create a bit-vector constant of given size and value = 0.
+
+
mkBitVector(int, long) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkBitVector(int, long). + It will be removed in a future release.
+
+
+
mkBitVector(int, long) - Method in class io.github.cvc5.TermManager
+
+
Create a bit-vector constant of given size and value.
+
+
mkBitVector(int, String, int) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkBitVector(int, String, int). + It will be removed in a future release.
+
+
+
mkBitVector(int, String, int) - Method in class io.github.cvc5.TermManager
+
+
Create a bit-vector constant of a given bit-width from a given string of + base 2, 10 or 16.
+
+
mkBitVectorSort(int) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkBitVectorSort(int). + It will be removed in a future release.
+
+
+
mkBitVectorSort(int) - Method in class io.github.cvc5.TermManager
+
+
Create a bit-vector sort.
+
+
mkBoolean(boolean) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkBoolean(boolean). + It will be removed in a future release.
+
+
+
mkBoolean(boolean) - Method in class io.github.cvc5.TermManager
+
+
Create a Boolean constant.
+
+
mkCardinalityConstraint(Sort, int) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkCardinalityConstraint(Sort, int). + It will be removed in a future release.
+
+
+
mkCardinalityConstraint(Sort, int) - Method in class io.github.cvc5.TermManager
+
+
Create a cardinality constraint for an uninterpreted sort.
+
+
mkConst(Sort) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkConst(Sort). + It will be removed in a future release.
+
+
+
mkConst(Sort) - Method in class io.github.cvc5.TermManager
+
+
Create a free constant with a default symbol name.
+
+
mkConst(Sort, String) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkConst(Sort, String). + It will be removed in a future release.
+
+
+
mkConst(Sort, String) - Method in class io.github.cvc5.TermManager
+
+
Create a free constant.
+
+
mkConstArray(Sort, Term) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkConstArray(Sort, Term). + It will be removed in a future release.
+
+
+
mkConstArray(Sort, Term) - Method in class io.github.cvc5.TermManager
+
+
Create a constant array with the provided constant value stored at + every index
+
+
mkDatatypeConstructorDecl(String) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkDatatypeConstructorDecl(String). + It will be removed in a future release.
+
+
+
mkDatatypeConstructorDecl(String) - Method in class io.github.cvc5.TermManager
+
+
Create a datatype constructor declaration.
+
+
mkDatatypeDecl(String) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkDatatypeDecl(String). + It will be removed in a future release.
+
+
+
mkDatatypeDecl(String) - Method in class io.github.cvc5.TermManager
+
+
Create a datatype declaration.
+
+
mkDatatypeDecl(String, boolean) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkDatatypeDecl(String, boolean). + It will be removed in a future release.
+
+
+
mkDatatypeDecl(String, boolean) - Method in class io.github.cvc5.TermManager
+
+
Create a datatype declaration.
+
+
mkDatatypeDecl(String, Sort[]) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkDatatypeDecl(String, Sort[]). + It will be removed in a future release.
+
+
+
mkDatatypeDecl(String, Sort[]) - Method in class io.github.cvc5.TermManager
+
+
Create a datatype declaration.
+
+
mkDatatypeDecl(String, Sort[], boolean) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkDatatypeDecl(String, Sort[]). + It will be removed in a future release.
+
+
+
mkDatatypeDecl(String, Sort[], boolean) - Method in class io.github.cvc5.TermManager
+
+
Create a datatype declaration.
+
+
mkDatatypeSort(DatatypeDecl) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkDatatypeSort(DatatypeDecl). + It will be removed in a future release.
+
+
+
mkDatatypeSort(DatatypeDecl) - Method in class io.github.cvc5.TermManager
+
+
Create a datatype sort.
+
+
mkDatatypeSorts(DatatypeDecl[]) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkDatatypeSorts(DatatypeDecl[]). + It will be removed in a future release.
+
+
+
mkDatatypeSorts(DatatypeDecl[]) - Method in class io.github.cvc5.TermManager
+
+
Create a vector of datatype sorts.
+
+
mkEmptyBag(Sort) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkEmptyBag(Sort). + It will be removed in a future release.
+
+
+
mkEmptyBag(Sort) - Method in class io.github.cvc5.TermManager
+
+
Create a constant representing an empty bag of the given sort.
+
+
mkEmptySequence(Sort) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkEmptySequence(Sort). + It will be removed in a future release.
+
+
+
mkEmptySequence(Sort) - Method in class io.github.cvc5.TermManager
+
+
Create an empty sequence of the given element sort.
+
+
mkEmptySet(Sort) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkEmptySet(Sort). + It will be removed in a future release.
+
+
+
mkEmptySet(Sort) - Method in class io.github.cvc5.TermManager
+
+
Create a constant representing an empty set of the given sort.
+
+
mkFalse() - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkFalse(). + It will be removed in a future release.
+
+
+
mkFalse() - Method in class io.github.cvc5.TermManager
+
+
Create a Boolean false constant.
+
+
mkFiniteFieldElem(String, Sort, int) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkFiniteFieldElem(String, Sort, int). + It will be removed in a future release.
+
+
+
mkFiniteFieldElem(String, Sort, int) - Method in class io.github.cvc5.TermManager
+
+
Create a finite field constant in a given field and for a given value.
+
+
mkFiniteFieldSort(String, int) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkFiniteFieldSort(String, int). + It will be removed in a future release.
+
+
+
mkFiniteFieldSort(String, int) - Method in class io.github.cvc5.TermManager
+
+
Create a finite field sort.
+
+
mkFloatingPoint(int, int, Term) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkFloatingPoint(int, int, Term). + It will be removed in a future release.
+
+
+
mkFloatingPoint(int, int, Term) - Method in class io.github.cvc5.TermManager
+
+
Create a floating-point value from a bit-vector given in IEEE-754 + format.
+
+
mkFloatingPoint(Term, Term, Term) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkFloatingPoint(Term, Term, Term). + It will be removed in a future release.
+
+
+
mkFloatingPoint(Term, Term, Term) - Method in class io.github.cvc5.TermManager
+
+
Create a floating-point value from its three IEEE-754 bit-vector value + components (sign bit, exponent, significand).
+
+
mkFloatingPointNaN(int, int) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkFloatingPointNaN(int, int). + It will be removed in a future release.
+
+
+
mkFloatingPointNaN(int, int) - Method in class io.github.cvc5.TermManager
+
+
Create a not-a-number floating-point constant (SMT-LIB: NaN).
+
+
mkFloatingPointNegInf(int, int) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkFloatingPointNegInf(int, int). + It will be removed in a future release.
+
+
+
mkFloatingPointNegInf(int, int) - Method in class io.github.cvc5.TermManager
+
+
Create a negative infinity floating-point constant (SMT-LIB: -oo).
+
+
mkFloatingPointNegZero(int, int) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkFloatingPointNegZero(int, int). + It will be removed in a future release.
+
+
+
mkFloatingPointNegZero(int, int) - Method in class io.github.cvc5.TermManager
+
+
Create a negative zero floating-point constant (SMT-LIB: -zero).
+
+
mkFloatingPointPosInf(int, int) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkFloatingPointPosInf(int, int). + It will be removed in a future release.
+
+
+
mkFloatingPointPosInf(int, int) - Method in class io.github.cvc5.TermManager
+
+
Create a positive infinity floating-point constant (SMT-LIB: +oo).
+
+
mkFloatingPointPosZero(int, int) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkFloatingPointPosZero(int, int). + It will be removed in a future release.
+
+
+
mkFloatingPointPosZero(int, int) - Method in class io.github.cvc5.TermManager
+
+
Create a positive zero floating-point constant (SMT-LIB: +zero).
+
+
mkFloatingPointSort(int, int) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkFloatingPointSort(int, int). + It will be removed in a future release.
+
+
+
mkFloatingPointSort(int, int) - Method in class io.github.cvc5.TermManager
+
+
Create a floating-point sort.
+
+
mkFunctionSort(Sort[], Sort) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkFunctionSort(Sort[], Sort). + It will be removed in a future release.
+
+
+
mkFunctionSort(Sort[], Sort) - Method in class io.github.cvc5.TermManager
+
+
Create function sort.
+
+
mkFunctionSort(Sort, Sort) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkFunctionSort(Sort, Sort). + It will be removed in a future release.
+
+
+
mkFunctionSort(Sort, Sort) - Method in class io.github.cvc5.TermManager
+
+
Create function sort.
+
+
mkGrammar(Term[], Term[]) - Method in class io.github.cvc5.Solver
+
+
Create a Sygus grammar.
+
+
mkInteger(long) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkInteger(long). + It will be removed in a future release.
+
+
+
mkInteger(long) - Method in class io.github.cvc5.TermManager
+
+
Create an integer constant from a C++ int.
+
+
mkInteger(String) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkInteger(String). + It will be removed in a future release.
+
+
+
mkInteger(String) - Method in class io.github.cvc5.TermManager
+
+
Create an integer constant from a string.
+
+
mkNullableIsNull(Term) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkNullableIsNull(Term). + It will be removed in a future release.
+
+
+
mkNullableIsNull(Term) - Method in class io.github.cvc5.TermManager
+
+
Create a null tester for a nullable term.
+
+
mkNullableIsSome(Term) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkNullableIsSome(Term). + It will be removed in a future release.
+
+
+
mkNullableIsSome(Term) - Method in class io.github.cvc5.TermManager
+
+
Create a some tester for a nullable term.
+
+
mkNullableLift(Kind, Term[]) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkNullableLift(Kind, Term[]). + It will be removed in a future release.
+
+
+
mkNullableLift(Kind, Term[]) - Method in class io.github.cvc5.TermManager
+
+
Create a term that lifts kind to nullable terms.
+
+
mkNullableNull(Sort) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkNullableNull(Sort). + It will be removed in a future release.
+
+
+
mkNullableNull(Sort) - Method in class io.github.cvc5.TermManager
+
+
Create a constant representing a null value of the given sort.
+
+
mkNullableSome(Term) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkNullableSome(Term). + It will be removed in a future release.
+
+
+
mkNullableSome(Term) - Method in class io.github.cvc5.TermManager
+
+
Create a nullable some term.
+
+
mkNullableSort(Sort) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkNullableSort(Sort). + It will be removed in a future release.
+
+
+
mkNullableSort(Sort) - Method in class io.github.cvc5.TermManager
+
+
Create a nullable sort.
+
+
mkNullableVal(Term) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkNullableVal(Term). + It will be removed in a future release.
+
+
+
mkNullableVal(Term) - Method in class io.github.cvc5.TermManager
+
+
Create a selector for nullable term.
+
+
mkOp(Kind) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkOp(Kind). + It will be removed in a future release.
+
+
+
mkOp(Kind) - Method in class io.github.cvc5.TermManager
+
+
Create an operator for a builtin Kind + The Kind may not be the Kind for an indexed operator + (e.g., Kind.BITVECTOR_EXTRACT).
+
+
mkOp(Kind, int) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkOp(Kind, int). + It will be removed in a future release.
+
+
+
mkOp(Kind, int) - Method in class io.github.cvc5.TermManager
+
+
Create operator of kind: + + DIVISIBLE + BITVECTOR_REPEAT + BITVECTOR_ZERO_EXTEND + BITVECTOR_SIGN_EXTEND + BITVECTOR_ROTATE_LEFT + BITVECTOR_ROTATE_RIGHT + INT_TO_BITVECTOR + FLOATINGPOINT_TO_UBV + FLOATINGPOINT_TO_UBV_TOTAL + FLOATINGPOINT_TO_SBV + FLOATINGPOINT_TO_SBV_TOTAL + TUPLE_UPDATE + + See enum Kind for a description of the parameters.
+
+
mkOp(Kind, int[]) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkOp(Kind, int[]). + It will be removed in a future release.
+
+
+
mkOp(Kind, int[]) - Method in class io.github.cvc5.TermManager
+
+
Create operator of Kind: + + TUPLE_PROJECT + + See enum Kind for a description of the parameters.
+
+
mkOp(Kind, int, int) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkOp(Kind, int, int). + It will be removed in a future release.
+
+
+
mkOp(Kind, int, int) - Method in class io.github.cvc5.TermManager
+
+
Create operator of Kind: + + BITVECTOR_EXTRACT + FLOATINGPOINT_TO_FP_FROM_IEEE_BV + FLOATINGPOINT_TO_FP_FROM_FP + FLOATINGPOINT_TO_FP_FROM_REAL + FLOATINGPOINT_TO_FP_FROM_SBV + FLOATINGPOINT_TO_FP_FROM_UBV + + See enum Kind for a description of the parameters.
+
+
mkOp(Kind, String) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkOp(Kind, String). + It will be removed in a future release.
+
+
+
mkOp(Kind, String) - Method in class io.github.cvc5.TermManager
+
+
Create operator of kind: + + + Kind.DIVISIBLE (to support arbitrary precision integers) + + + See enum Kind for a description of the parameters.
+
+
mkParamSort() - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkParamSort(). + It will be removed in a future release.
+
+
+
mkParamSort() - Method in class io.github.cvc5.TermManager
+
+
Create a sort parameter.
+
+
mkParamSort(String) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkParamSort(String). + It will be removed in a future release.
+
+
+
mkParamSort(String) - Method in class io.github.cvc5.TermManager
+
+
Create a sort parameter.
+
+
mkPi() - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkPi(). + It will be removed in a future release.
+
+
+
mkPi() - Method in class io.github.cvc5.TermManager
+
+
Create a constant representing the number Pi.
+
+
mkPredicateSort(Sort[]) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkPredicateSort(Sort[]). + It will be removed in a future release.
+
+
+
mkPredicateSort(Sort[]) - Method in class io.github.cvc5.TermManager
+
+
Create a predicate sort.
+
+
mkReal(long) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkReal(long). + It will be removed in a future release.
+
+
+
mkReal(long) - Method in class io.github.cvc5.TermManager
+
+
Create a real constant from an integer.
+
+
mkReal(long, long) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkReal(long, long). + It will be removed in a future release.
+
+
+
mkReal(long, long) - Method in class io.github.cvc5.TermManager
+
+
Create a real constant from a rational.
+
+
mkReal(String) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkReal(String). + It will be removed in a future release.
+
+
+
mkReal(String) - Method in class io.github.cvc5.TermManager
+
+
Create a real constant from a string.
+
+
mkRecordSort(Pair<String, Sort>[]) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkRecordSort(Pair[]). + It will be removed in a future release.
+
+
+
mkRecordSort(Pair<String, Sort>[]) - Method in class io.github.cvc5.TermManager
+
+
Create a record sort
+
+
mkRegexpAll() - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkRegexpAll(). + It will be removed in a future release.
+
+
+
mkRegexpAll() - Method in class io.github.cvc5.TermManager
+
+
Create a regular expression all (re.all) term.
+
+
mkRegexpAllchar() - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkRegexpAllchar(). + It will be removed in a future release.
+
+
+
mkRegexpAllchar() - Method in class io.github.cvc5.TermManager
+
+
Create a regular expression allchar (re.allchar) term.
+
+
mkRegexpNone() - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkRegexpNone(). + It will be removed in a future release.
+
+
+
mkRegexpNone() - Method in class io.github.cvc5.TermManager
+
+
Create a regular expression none (re.none) term.
+
+
mkRoundingMode(RoundingMode) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkRoundingMode(RoundingMode). + It will be removed in a future release.
+
+
+
mkRoundingMode(RoundingMode) - Method in class io.github.cvc5.TermManager
+
+
Create a rounding mode constant.
+
+
mkSepEmp() - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkSepEmp(). + It will be removed in a future release.
+
+
+
mkSepEmp() - Method in class io.github.cvc5.TermManager
+
+
Create a separation logic empty term.
+
+
mkSepNil(Sort) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkSepNil(Sort). + It will be removed in a future release.
+
+
+
mkSepNil(Sort) - Method in class io.github.cvc5.TermManager
+
+
Create a separation logic nil term.
+
+
mkSequenceSort(Sort) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkSequenceSort(Sort). + It will be removed in a future release.
+
+
+
mkSequenceSort(Sort) - Method in class io.github.cvc5.TermManager
+
+
Create a sequence sort.
+
+
mkSetSort(Sort) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkSetSort(Sort). + It will be removed in a future release.
+
+
+
mkSetSort(Sort) - Method in class io.github.cvc5.TermManager
+
+
Create a set sort.
+
+
mkSkolem(SkolemId, Term[]) - Method in class io.github.cvc5.TermManager
+
+
Create a skolem
+
+
mkString(int[]) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkString(int[]). + It will be removed in a future release.
+
+
+
mkString(int[]) - Method in class io.github.cvc5.TermManager
+
+
Create a String constant.
+
+
mkString(String) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkString(String). + It will be removed in a future release.
+
+
+
mkString(String) - Method in class io.github.cvc5.TermManager
+
+
Create a String constant.
+
+
mkString(String, boolean) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkString(String, boolean). + It will be removed in a future release.
+
+
+
mkString(String, boolean) - Method in class io.github.cvc5.TermManager
+
+
Create a String constant.
+
+
mkTerm(Kind) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkTerm(Kind). + It will be removed in a future release.
+
+
+
mkTerm(Kind) - Method in class io.github.cvc5.TermManager
+
+
Create 0-ary term of given kind.
+
+
mkTerm(Kind, Term) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkTerm(Kind, Term). + It will be removed in a future release.
+
+
+
mkTerm(Kind, Term) - Method in class io.github.cvc5.TermManager
+
+
Create a unary term of given kind.
+
+
mkTerm(Kind, Term[]) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkTerm(Kind, Term[]). + It will be removed in a future release.
+
+
+
mkTerm(Kind, Term[]) - Method in class io.github.cvc5.TermManager
+
+
Create n-ary term of given kind.
+
+
mkTerm(Kind, Term, Term) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkTerm(Kind, Term, Term). + It will be removed in a future release.
+
+
+
mkTerm(Kind, Term, Term) - Method in class io.github.cvc5.TermManager
+
+
Create binary term of given kind.
+
+
mkTerm(Kind, Term, Term, Term) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkTerm(Kind, Term, Term, Term). + It will be removed in a future release.
+
+
+
mkTerm(Kind, Term, Term, Term) - Method in class io.github.cvc5.TermManager
+
+
Create ternary term of given kind.
+
+
mkTerm(Op) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkTerm(Op). + It will be removed in a future release.
+
+
+
mkTerm(Op) - Method in class io.github.cvc5.TermManager
+
+
Create nullary term of given kind from a given operator.
+
+
mkTerm(Op, Term) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkTerm(Op, Term). + It will be removed in a future release.
+
+
+
mkTerm(Op, Term) - Method in class io.github.cvc5.TermManager
+
+
Create unary term of given kind from a given operator.
+
+
mkTerm(Op, Term[]) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkTerm(Op, Term[]). + It will be removed in a future release.
+
+
+
mkTerm(Op, Term[]) - Method in class io.github.cvc5.TermManager
+
+
Create n-ary term of given kind from a given operator.
+
+
mkTerm(Op, Term, Term) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkTerm(Op, Term, Term). + It will be removed in a future release.
+
+
+
mkTerm(Op, Term, Term) - Method in class io.github.cvc5.TermManager
+
+
Create binary term of given kind from a given operator.
+
+
mkTerm(Op, Term, Term, Term) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkTerm(Op, Term, Term, Term). + It will be removed in a future release.
+
+
+
mkTerm(Op, Term, Term, Term) - Method in class io.github.cvc5.TermManager
+
+
Create ternary term of given kind from a given operator.
+
+
mkTrue() - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkTrue(). + It will be removed in a future release.
+
+
+
mkTrue() - Method in class io.github.cvc5.TermManager
+
+
Create a Boolean true constant.
+
+
mkTuple(Term[]) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkTuple(Term[]). + It will be removed in a future release.
+
+
+
mkTuple(Term[]) - Method in class io.github.cvc5.TermManager
+
+
Create a tuple term.
+
+
mkTupleSort(Sort[]) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkTupleSort(Sort[]). + It will be removed in a future release.
+
+
+
mkTupleSort(Sort[]) - Method in class io.github.cvc5.TermManager
+
+
Create a tuple sort.
+
+
mkUninterpretedSort() - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkUninterpretedSort(). + It will be removed in a future release.
+
+
+
mkUninterpretedSort() - Method in class io.github.cvc5.TermManager
+
+
Create an uninterpreted sort.
+
+
mkUninterpretedSort(String) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkUninterpretedSort(String). + It will be removed in a future release.
+
+
+
mkUninterpretedSort(String) - Method in class io.github.cvc5.TermManager
+
+
Create an uninterpreted sort.
+
+
mkUninterpretedSortConstructorSort(int) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkUninterpretedSortConstructorSort(int). + It will be removed in a future release.
+
+
+
mkUninterpretedSortConstructorSort(int) - Method in class io.github.cvc5.TermManager
+
+
Create a sort constructor sort.
+
+
mkUninterpretedSortConstructorSort(int, String) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkUninterpretedSortConstructorSort(int, String). + It will be removed in a future release.
+
+
+
mkUninterpretedSortConstructorSort(int, String) - Method in class io.github.cvc5.TermManager
+
+
Create a sort constructor sort.
+
+
mkUniverseSet(Sort) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkUniverseSet(Sort). + It will be removed in a future release.
+
+
+
mkUniverseSet(Sort) - Method in class io.github.cvc5.TermManager
+
+
Create a universe set of the given sort.
+
+
mkUnresolvedDatatypeSort(String) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkUnresolvedDatatypeSort(String). + It will be removed in a future release.
+
+
+
mkUnresolvedDatatypeSort(String) - Method in class io.github.cvc5.TermManager
+
+
Create an unresolved datatype sort.
+
+
mkUnresolvedDatatypeSort(String, int) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkUnresolvedDatatypeSort(String, int). + It will be removed in a future release.
+
+
+
mkUnresolvedDatatypeSort(String, int) - Method in class io.github.cvc5.TermManager
+
+
Create an unresolved datatype sort.
+
+
mkVar(Sort) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkVar(Sort). + It will be removed in a future release.
+
+
+
mkVar(Sort) - Method in class io.github.cvc5.TermManager
+
+
Create a bound variable to be used in a binder (i.e., a quantifier, a + lambda, or a witness binder).
+
+
mkVar(Sort, String) - Method in class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + TermManager.mkVar(Sort, String). + It will be removed in a future release.
+
+
+
mkVar(Sort, String) - Method in class io.github.cvc5.TermManager
+
+
Create a bound variable to be used in a binder (i.e., a quantifier, a + lambda, or a witness binder).
+
+
MOD_BY_ZERO - io.github.cvc5.SkolemId
+
+
The function for integer modulus by zero.
+
+
ModeInfo(String, String, String[]) - Constructor for class io.github.cvc5.OptionInfo.ModeInfo
+
 
+
MODUS_PONENS - io.github.cvc5.ProofRule
+
+
Boolean – Modus Ponens + + \[ + \inferrule{F_1, (F_1 \rightarrow F_2) \mid -}{F_2} + \] + Note this can optionally be seen as a macro for + IMPLIES_ELIM <cvc5.ProofRule.IMPLIES_ELIM> + + RESOLUTION <cvc5.ProofRule.RESOLUTION>.
+
+
MULT - io.github.cvc5.Kind
+
+
Arithmetic multiplication.
+
+
+ + + +

N

+
+
NARY_CONG - io.github.cvc5.ProofRule
+
+
Equality – N-ary Congruence + + \[ + + \inferrule{t_1=s_1,\dots,t_n=s_n\mid k}{k(t_1,\dots, t_n) = + k(s_1,\dots, s_n)} + \] + where \(k\) is the application kind.
+
+
NEG - io.github.cvc5.Kind
+
+
Arithmetic negation.
+
+
next() - Method in class io.github.cvc5.Datatype.ConstIterator
+
 
+
next() - Method in class io.github.cvc5.DatatypeConstructor.ConstIterator
+
 
+
next() - Method in class io.github.cvc5.Statistics.ConstIterator
+
 
+
next() - Method in class io.github.cvc5.Term.ConstIterator
+
 
+
nextCommand() - Method in class io.github.cvc5.InputParser
+
+
Parse and return the next command.
+
+
nextTerm() - Method in class io.github.cvc5.InputParser
+
+
Parse and return the next term.
+
+
NONE - io.github.cvc5.modes.ProofFormat
+
+
Do not translate proof output.
+
+
NONE - io.github.cvc5.ProofRewriteRule
+
+
This enumeration represents the rewrite rules used in a rewrite proof.
+
+
NONE - io.github.cvc5.SkolemId
+
+
Indicates this is not a skolem.
+
+
NOT - io.github.cvc5.Kind
+
+
Logical negation.
+
+
NOT_AND - io.github.cvc5.ProofRule
+
+
Boolean – De Morgan – Not And + + \[ + \inferrule{\neg(F_1 \land \dots \land F_n) \mid -}{\neg F_1 \lor \dots + \lor \neg F_n} + \]
+
+
NOT_EQUIV_ELIM1 - io.github.cvc5.ProofRule
+
+
Boolean – Not Equivalence elimination version 1 + + \[ + \inferrule{F_1 \neq F_2 \mid -}{F_1 \lor F_2} + \]
+
+
NOT_EQUIV_ELIM2 - io.github.cvc5.ProofRule
+
+
Boolean – Not Equivalence elimination version 2 + + \[ + \inferrule{F_1 \neq F_2 \mid -}{\neg F_1 \lor \neg F_2} + \]
+
+
NOT_IMPLIES_ELIM1 - io.github.cvc5.ProofRule
+
+
Boolean – Not Implication elimination version 1 + + \[ + \inferrule{\neg(F_1 \rightarrow F_2) \mid -}{F_1} + \]
+
+
NOT_IMPLIES_ELIM2 - io.github.cvc5.ProofRule
+
+
Boolean – Not Implication elimination version 2 + + \[ + \inferrule{\neg(F_1 \rightarrow F_2) \mid -}{\neg F_2} + \]
+
+
NOT_ITE_ELIM1 - io.github.cvc5.ProofRule
+
+
Boolean – Not ITE elimination version 1 + + \[ + \inferrule{\neg(\ite{C}{F_1}{F_2}) \mid -}{\neg C \lor \neg F_1} + \]
+
+
NOT_ITE_ELIM2 - io.github.cvc5.ProofRule
+
+
Boolean – Not ITE elimination version 2 + + \[ + \inferrule{\neg(\ite{C}{F_1}{F_2}) \mid -}{C \lor \neg F_2} + \]
+
+
NOT_NOT_ELIM - io.github.cvc5.ProofRule
+
+
Boolean – Double negation elimination + + \[ + \inferrule{\neg (\neg F) \mid -}{F} + \]
+
+
NOT_OR_ELIM - io.github.cvc5.ProofRule
+
+
Boolean – Not Or elimination + + \[ + \inferrule{\neg(F_1 \lor \dots \lor F_n) \mid i}{\neg F_i} + \]
+
+
NOT_XOR_ELIM1 - io.github.cvc5.ProofRule
+
+
Boolean – Not XOR elimination version 1 + + \[ + \inferrule{\neg(F_1 \xor F_2) \mid -}{F_1 \lor \neg F_2} + \]
+
+
NOT_XOR_ELIM2 - io.github.cvc5.ProofRule
+
+
Boolean – Not XOR elimination version 2 + + \[ + \inferrule{\neg(F_1 \xor F_2) \mid -}{\neg F_1 \lor F_2} + \]
+
+
notifySatClause(Term) - Method in class io.github.cvc5.AbstractPlugin
+
+
Notify SAT clause, called when cl is a clause learned by the SAT solver.
+
+
notifyTheoryLemma(Term) - Method in class io.github.cvc5.AbstractPlugin
+
+
Notify theory lemma, called when lem is a theory lemma sent by a theory + solver.
+
+
notTerm() - Method in class io.github.cvc5.Term
+
+
Boolean negation.
+
+
NULL_SORT - io.github.cvc5.SortKind
+
+
Null kind.
+
+
NULL_TERM - io.github.cvc5.Kind
+
+
Null kind.
+
+
NULLABLE_LIFT - io.github.cvc5.Kind
+
+
Lifting operator for nullable terms.
+
+
NULLABLE_SORT - io.github.cvc5.SortKind
+
+
A nullable sort, whose argument sort denotes the sort of the direct child + of the nullable.
+
+
NumberInfo(T, T, T, T) - Constructor for class io.github.cvc5.OptionInfo.NumberInfo
+
 
+
+ + + +

O

+
+
Op - Class in io.github.cvc5
+
+
A cvc5 operator.
+
+
Op() - Constructor for class io.github.cvc5.Op
+
+
Null op
+
+
OptionInfo - Class in io.github.cvc5
+
+
Holds some description about a particular option, including its name, its + aliases, whether the option was explicitly set by the user, and information + concerning its value.
+
+
OptionInfo.BaseInfo - Class in io.github.cvc5
+
+
Abstract class for OptionInfo values
+
+
OptionInfo.ModeInfo - Class in io.github.cvc5
+
 
+
OptionInfo.NumberInfo<T> - Class in io.github.cvc5
+
+
Default value, current value, minimum and maximum of a numeric value
+
+
OptionInfo.ValueInfo<T> - Class in io.github.cvc5
+
+
Has the current and the default value
+
+
OptionInfo.VoidInfo - Class in io.github.cvc5
+
+
Has no value information
+
+
OR - io.github.cvc5.Kind
+
+
Logical disjunction.
+
+
orTerm(Term) - Method in class io.github.cvc5.Term
+
+
Boolean or.
+
+
OTHER - io.github.cvc5.UnknownExplanation
+
+
Other reason.
+
+
+ + + +

P

+
+
Pair<K,​V> - Class in io.github.cvc5
+
 
+
Pair(K, V) - Constructor for class io.github.cvc5.Pair
+
 
+
PI - io.github.cvc5.Kind
+
+
Pi constant.
+
+
pointer - Variable in class io.github.cvc5.Proof
+
 
+
pop() - Method in class io.github.cvc5.Solver
+
+
Pop a level from the assertion stack.
+
+
pop(int) - Method in class io.github.cvc5.Solver
+
+
Pop (a) level(s) from the assertion stack.
+
+
POW - io.github.cvc5.Kind
+
+
Arithmetic power.
+
+
POW2 - io.github.cvc5.Kind
+
+
Power of two.
+
+
PREPROCESS - io.github.cvc5.modes.LearnedLitType
+
+
A top-level literal (unit clause) from the preprocessed set of input + formulas.
+
+
PREPROCESS - io.github.cvc5.modes.ProofComponent
+
+
Proofs of Gu1 ...
+
+
PREPROCESS_SOLVED - io.github.cvc5.modes.LearnedLitType
+
+
An equality that was turned into a substitution during preprocessing.
+
+
Proof - Class in io.github.cvc5
+
+
A cvc5 Proof.
+
+
Proof() - Constructor for class io.github.cvc5.Proof
+
+
Null proof
+
+
ProofComponent - Enum in io.github.cvc5.modes
+
 
+
ProofFormat - Enum in io.github.cvc5.modes
+
 
+
ProofRewriteRule - Enum in io.github.cvc5
+
 
+
ProofRule - Enum in io.github.cvc5
+
 
+
proofToString(Proof) - Method in class io.github.cvc5.Solver
+
+
Prints a proof into a string with a slected proof format mode.
+
+
proofToString(Proof, ProofFormat) - Method in class io.github.cvc5.Solver
+
+
Prints a proof into a string with a slected proof format mode.
+
+
proofToString(Proof, ProofFormat, Map) - Method in class io.github.cvc5.Solver
+
+
Prints a proof into a string with a slected proof format mode.
+
+
PURIFY - io.github.cvc5.SkolemId
+
+
The purification skolem for a term.
+
+
push() - Method in class io.github.cvc5.Solver
+
+
Push a level to the assertion stack.
+
+
push(int) - Method in class io.github.cvc5.Solver
+
+
Push (a) level(s) to the assertion stack.
+
+
+ + + +

Q

+
+
QUANT_DT_SPLIT - io.github.cvc5.ProofRewriteRule
+
+
Quantifiers – Datatypes Split + + \[ + (\forall x Y.\> F) = (\forall X_1 Y.
+
+
QUANT_MERGE_PRENEX - io.github.cvc5.ProofRewriteRule
+
+
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_MINISCOPE_AND - io.github.cvc5.ProofRewriteRule
+
+
Quantifiers – Miniscoping and + + \[ + \forall X.\> F_1 \wedge \ldots \wedge F_n = + (\forall X.\> F_1) \wedge \ldots \wedge (\forall X.\> F_n) + \]
+
+
QUANT_MINISCOPE_ITE - io.github.cvc5.ProofRewriteRule
+
+
Quantifiers – Miniscoping ite + + \[ + \forall X.\> \ite{C}{F_1}{F_2} = \ite{C}{\forall X.\> F_1}{\forall X.\> F_2} + \] + where \(C\) does not have any free variable in \(X\).
+
+
QUANT_MINISCOPE_OR - io.github.cvc5.ProofRewriteRule
+
+
Quantifiers – Miniscoping or + + \[ + \forall X.\> F_1 \vee \ldots \vee F_n = (\forall X_1.\> F_1) \vee \ldots \vee (\forall X_n.\> F_n) + \] + where \(X = X_1 \ldots X_n\), and the right hand side does not have any + free variable in \(X\).
+
+
QUANT_UNUSED_VARS - io.github.cvc5.ProofRewriteRule
+
+
Quantifiers – Unused variables + + \[ + \forall X.\> F = \forall X_1.\> F + \] + where \(X_1\) is the subset of \(X\) that appear free in \(F\) + and \(X_1\) does not contain duplicate variables.
+
+
QUANT_VAR_ELIM_EQ - io.github.cvc5.ProofRewriteRule
+
+
Quantifiers – Macro variable elimination equality + + ..
+
+
QUANT_VAR_REORDERING - io.github.cvc5.ProofRule
+
+
Quantifiers – Variable reordering + + \[ + + \inferrule{-\mid (\forall X.\> F) = (\forall Y.\> F)} + {(\forall X.\> F) = (\forall Y.\> F)} + \] + where \(Y\) is a reordering of \(X\).
+
+
QUANTIFIERS_SKOLEMIZE - io.github.cvc5.SkolemId
+
+
The n^th skolem for the negation of universally quantified formula Q.
+
+
QUERY - io.github.cvc5.modes.FindSynthTarget
+
+
Find a query over the given grammar.
+
+
+ + + +

R

+
+
RAW_PREPROCESS - io.github.cvc5.modes.ProofComponent
+
+
Proofs of G1 ...
+
+
RE_ALL_ELIM - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule re-all-elim
+
+
RE_CONCAT_EMP - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule re-concat-emp
+
+
RE_CONCAT_FLATTEN - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule re-concat-flatten
+
+
RE_CONCAT_MERGE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule re-concat-merge
+
+
RE_CONCAT_NONE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule re-concat-none
+
+
RE_CONCAT_STAR_REPEAT - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule re-concat-star-repeat
+
+
RE_CONCAT_STAR_SWAP - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule re-concat-star-swap
+
+
RE_DIFF_ELIM - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule re-diff-elim
+
+
RE_FIRST_MATCH - io.github.cvc5.SkolemId
+
+
For string a and regular expression R, this skolem is the string that + the first, shortest match of R was matched to in a.
+
+
RE_FIRST_MATCH_POST - io.github.cvc5.SkolemId
+
+
For string a and regular expression R, this skolem is the remainder + of a after the first, shortest match of R in a.
+
+
RE_FIRST_MATCH_PRE - io.github.cvc5.SkolemId
+
+
The next three skolems are used to decompose the match of a regular + expression in string.
+
+
RE_IN_COMP - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule re-in-comp
+
+
RE_IN_CSTRING - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule re-in-cstring
+
+
RE_IN_EMPTY - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule re-in-empty
+
+
RE_IN_SIGMA - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule re-in-sigma
+
+
RE_IN_SIGMA_STAR - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule re-in-sigma-star
+
+
RE_INTER - io.github.cvc5.ProofRule
+
+
Strings – Regular expressions – Intersection + + \[ + + \inferrule{t\in R_1,\,t\in R_2\mid -}{t\in \mathit{re.inter}(R_1,R_2)} + \]
+
+
RE_INTER_ALL - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule re-inter-all
+
+
RE_INTER_CSTRING - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule re-inter-cstring
+
+
RE_INTER_CSTRING_NEG - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule re-inter-cstring-neg
+
+
RE_INTER_DUP - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule re-inter-dup
+
+
RE_INTER_FLATTEN - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule re-inter-flatten
+
+
RE_INTER_NONE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule re-inter-none
+
+
RE_INTER_UNION_INCLUSION - io.github.cvc5.ProofRewriteRule
+
+
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`.
+
+
RE_LOOP_ELIM - io.github.cvc5.ProofRewriteRule
+
+
Strings – regular expression loop elimination + + \[ + re.loop_{l,u}(R) = re.union(R^l, \ldots, R^u) + \] + where \(u \geq l\).
+
+
RE_LOOP_NEG - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule re-loop-neg
+
+
RE_OPT_ELIM - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule re-opt-elim
+
+
RE_STAR_NONE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule re-star-none
+
+
RE_UNFOLD_NEG - io.github.cvc5.ProofRule
+
+
Strings – Regular expressions – Negative Unfold + + \[ + + \inferrule{t \not \in \mathit{re}.\text{*}(R) \mid -}{t \neq \ \epsilon \ \wedge \forall L.
+
+
RE_UNFOLD_NEG_CONCAT_FIXED - io.github.cvc5.ProofRule
+
+
Strings – Regular expressions – Unfold negative concatenation, fixed + + ..
+
+
RE_UNFOLD_POS - io.github.cvc5.ProofRule
+
+
Strings – Regular expressions – Positive Unfold + + \[ + + \inferrule{t\in R\mid -}{F} + \] + where \(F\) corresponds to the one-step unfolding of the premise.
+
+
RE_UNFOLD_POS_COMPONENT - io.github.cvc5.SkolemId
+
+
Regular expression unfold component: if (str.in_re a R), where R is + (re.++ R0 ... Rn), then the RE_UNFOLD_POS_COMPONENT for indices + (a,R,i) is a string ki such that (= a (str.++ k0 ... kn)) and + (str.in_re k0 R0) for i = 0, ..., n.
+
+
RE_UNION_ALL - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule re-union-all
+
+
RE_UNION_DUP - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule re-union-dup
+
+
RE_UNION_FLATTEN - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule re-union-flatten
+
+
RE_UNION_NONE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule re-union-none
+
+
readLibraryFilenames(String) - Static method in class io.github.cvc5.Utils
+
+
Reads a text file from the specified path within the JAR file and returns a list of library + filenames.
+
+
REAL_SORT - io.github.cvc5.SortKind
+
+
The real sort.
+
+
REFL - io.github.cvc5.ProofRule
+
+
Equality – Reflexivity + + \[ + + \inferrule{-\mid t}{t = t} + \]
+
+
REGEXP_ALL - io.github.cvc5.Kind
+
+
Regular expression all.
+
+
REGEXP_ALLCHAR - io.github.cvc5.Kind
+
+
Regular expression all characters.
+
+
REGEXP_COMPLEMENT - io.github.cvc5.Kind
+
+
Regular expression complement.
+
+
REGEXP_CONCAT - io.github.cvc5.Kind
+
+
Regular expression concatenation.
+
+
REGEXP_DIFF - io.github.cvc5.Kind
+
+
Regular expression difference.
+
+
REGEXP_INTER - io.github.cvc5.Kind
+
+
Regular expression intersection.
+
+
REGEXP_LOOP - io.github.cvc5.Kind
+
+
Regular expression loop.
+
+
REGEXP_NONE - io.github.cvc5.Kind
+
+
Regular expression none.
+
+
REGEXP_OPT - io.github.cvc5.Kind
+
+
Regular expression ?.
+
+
REGEXP_PLUS - io.github.cvc5.Kind
+
+
Regular expression +.
+
+
REGEXP_RANGE - io.github.cvc5.Kind
+
+
Regular expression range.
+
+
REGEXP_REPEAT - io.github.cvc5.Kind
+
+
Operator for regular expression repeat.
+
+
REGEXP_STAR - io.github.cvc5.Kind
+
+
Regular expression \*.
+
+
REGEXP_UNION - io.github.cvc5.Kind
+
+
Regular expression union.
+
+
REGLAN_SORT - io.github.cvc5.SortKind
+
+
The regular language sort.
+
+
RELATION_AGGREGATE - io.github.cvc5.Kind
+
+
Relation aggregate operator has the form + \(((\_ \; rel.aggr \; n_1 ...
+
+
RELATION_GROUP - io.github.cvc5.Kind
+
+
Relation group + + + \(((\_ \; rel.group \; n_1 \; \dots \; n_k) \; A)\) partitions tuples + of relation \(A\) such that tuples that have the same projection + with indices \(n_1 \; \dots \; n_k\) are in the same part.
+
+
RELATION_IDEN - io.github.cvc5.Kind
+
+
Relation identity.
+
+
RELATION_JOIN - io.github.cvc5.Kind
+
+
Relation join.
+
+
RELATION_JOIN_IMAGE - io.github.cvc5.Kind
+
+
Relation join image.
+
+
RELATION_PRODUCT - io.github.cvc5.Kind
+
+
Relation cartesian product.
+
+
RELATION_PROJECT - io.github.cvc5.Kind
+
+
Relation projection operator extends tuple projection operator to sets.
+
+
RELATION_TABLE_JOIN - io.github.cvc5.Kind
+
+
Table join operator for relations has the form + \(((\_ \; rel.table\_join \; m_1 \; n_1 \; \dots \; m_k \; n_k) \; A \; B)\) + where \(m_1 \; n_1 \; \dots \; m_k \; n_k\) are natural numbers, + and \(A, B\) are relations.
+
+
RELATION_TCLOSURE - io.github.cvc5.Kind
+
+
Relation transitive closure.
+
+
RELATION_TRANSPOSE - io.github.cvc5.Kind
+
+
Relation transpose.
+
+
RELATIONS_GROUP_PART - io.github.cvc5.SkolemId
+
+
Given a group term ((_ rel.group n1 ... nk) A) of type + (Set (Relation T)) this skolem maps elements of A to their parts in the + resulting partition.
+
+
RELATIONS_GROUP_PART_ELEMENT - io.github.cvc5.SkolemId
+
+
Given a group term ((_ rel.group n1 ...
+
+
REORDERING - io.github.cvc5.ProofRule
+
+
Boolean – Reordering + + \[ + \inferrule{C_1 \mid C_2}{C_2} + \] + where + the multiset representations of \(C_1\) and \(C_2\) are the same.
+
+
REQUIRES_CHECK_AGAIN - io.github.cvc5.UnknownExplanation
+
+
Requires another satisfiability check
+
+
REQUIRES_FULL_CHECK - io.github.cvc5.UnknownExplanation
+
+
Full satisfiability check required (e.g., if only preprocessing was + performed).
+
+
resetAssertions() - Method in class io.github.cvc5.Solver
+
+
Remove all assertions.
+
+
RESOLUTION - io.github.cvc5.ProofRule
+
+
Boolean – Resolution + + \[ + \inferrule{C_1, C_2 \mid pol, L}{C} + \] + where + + + \(C_1\) and \(C_2\) are nodes viewed as clauses, i.e., either an + OR node with each children viewed as a literal or a node viewed as a + literal.
+
+
RESOURCEOUT - io.github.cvc5.UnknownExplanation
+
+
Resource limit reached.
+
+
Result - Class in io.github.cvc5
+
+
Encapsulation of a three-valued solver result, with explanations.
+
+
Result() - Constructor for class io.github.cvc5.Result
+
+
Null result
+
+
REWRITE - io.github.cvc5.modes.FindSynthTarget
+
+
Find a pair of terms (t,s) in the target grammar which are equivalent + but do not rewrite to the same term in the given rewriter + (--sygus-rewrite=MODE).
+
+
REWRITE_INPUT - io.github.cvc5.modes.FindSynthTarget
+
+
Find a rewrite between pairs of terms (t,s) that are matchable with terms + in the input assertions where t and s are equivalent but do not rewrite + to the same term in the given rewriter (--sygus-rewrite=MODE).
+
+
REWRITE_UNSOUND - io.github.cvc5.modes.FindSynthTarget
+
+
Find a term t in the target grammar which rewrites to a term s that is + not equivalent to it.
+
+
ROUND_NEAREST_TIES_TO_AWAY - io.github.cvc5.RoundingMode
+
+
Round to the nearest number away from zero.
+
+
ROUND_NEAREST_TIES_TO_EVEN - io.github.cvc5.RoundingMode
+
+
Round to the nearest even number.
+
+
ROUND_TOWARD_NEGATIVE - io.github.cvc5.RoundingMode
+
+
Round towards negative infinity (-oo).
+
+
ROUND_TOWARD_POSITIVE - io.github.cvc5.RoundingMode
+
+
Round towards positive infinity (SMT-LIB: +oo).
+
+
ROUND_TOWARD_ZERO - io.github.cvc5.RoundingMode
+
+
Round towards zero.
+
+
RoundingMode - Enum in io.github.cvc5
+
 
+
ROUNDINGMODE_SORT - io.github.cvc5.SortKind
+
+
The rounding mode sort.
+
+
+ + + +

S

+
+
SAT - io.github.cvc5.modes.ProofComponent
+
+
A proof of false whose free assumptions are Gu1, ...
+
+
SAT_EXTERNAL_PROVE - io.github.cvc5.ProofRule
+
+
SAT external prove Refutation + + \[ + \inferrule{F_1 \dots F_n \mid D}{\bot} + \] + where \(F_1 \dots F_n\) correspond to the input clauses in the + DIMACS file `D`.
+
+
SAT_REFUTATION - io.github.cvc5.ProofRule
+
+
SAT Refutation for assumption-based unsat cores + + \[ + \inferrule{F_1 \dots F_n \mid -}{\bot} + \] + where \(F_1 \dots F_n\) correspond to the unsat core determined by the + SAT solver.
+
+
SCOPE - io.github.cvc5.ProofRule
+
+
Scope (a binder for assumptions) + + \[ + + \inferruleSC{F \mid F_1 \dots F_n}{(F_1 \land \dots \land F_n) + \Rightarrow F}{if $F\neq\bot$} \textrm{ or } \inferruleSC{F \mid F_1 + \dots F_n}{\neg (F_1 \land \dots \land F_n)}{if $F=\bot$} + \] + This rule has a dual purpose with + ASSUME <cvc5.ProofRule.ASSUME>.
+
+
SECANT - io.github.cvc5.Kind
+
+
Secant function.
+
+
second - Variable in class io.github.cvc5.Pair
+
 
+
second - Variable in class io.github.cvc5.Triplet
+
 
+
SELECT - io.github.cvc5.Kind
+
+
Array select.
+
+
SEP_EMP - io.github.cvc5.Kind
+
+
Separation logic empty heap.
+
+
SEP_NIL - io.github.cvc5.Kind
+
+
Separation logic nil.
+
+
SEP_PTO - io.github.cvc5.Kind
+
+
Separation logic points-to relation.
+
+
SEP_STAR - io.github.cvc5.Kind
+
+
Separation logic star.
+
+
SEP_WAND - io.github.cvc5.Kind
+
+
Separation logic magic wand.
+
+
SEQ_AT - io.github.cvc5.Kind
+
+
Sequence element at.
+
+
SEQ_CONCAT - io.github.cvc5.Kind
+
+
Sequence concat.
+
+
SEQ_CONTAINS - io.github.cvc5.Kind
+
+
Sequence contains.
+
+
SEQ_EXTRACT - io.github.cvc5.Kind
+
+
Sequence extract.
+
+
SEQ_INDEXOF - io.github.cvc5.Kind
+
+
Sequence index-of.
+
+
SEQ_LEN_EMPTY - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule seq-len-empty
+
+
SEQ_LEN_REV - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule seq-len-rev
+
+
SEQ_LEN_UNIT - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule seq-len-unit
+
+
SEQ_LENGTH - io.github.cvc5.Kind
+
+
Sequence length.
+
+
SEQ_NTH - io.github.cvc5.Kind
+
+
Sequence nth.
+
+
SEQ_NTH_UNIT - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule seq-nth-unit
+
+
SEQ_PREFIX - io.github.cvc5.Kind
+
+
Sequence prefix-of.
+
+
SEQ_REPLACE - io.github.cvc5.Kind
+
+
Sequence replace.
+
+
SEQ_REPLACE_ALL - io.github.cvc5.Kind
+
+
Sequence replace all.
+
+
SEQ_REV - io.github.cvc5.Kind
+
+
Sequence reverse.
+
+
SEQ_REV_CONCAT - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule seq-rev-concat
+
+
SEQ_REV_REV - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule seq-rev-rev
+
+
SEQ_REV_UNIT - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule seq-rev-unit
+
+
SEQ_SUFFIX - io.github.cvc5.Kind
+
+
Sequence suffix-of.
+
+
SEQ_UNIT - io.github.cvc5.Kind
+
+
Sequence unit.
+
+
SEQ_UPDATE - io.github.cvc5.Kind
+
+
Sequence update.
+
+
SEQUENCE_SORT - io.github.cvc5.SortKind
+
+
A sequence sort, whose argument sort is the element sort of the sequence.
+
+
SET_ALL - io.github.cvc5.Kind
+
+
Set all.
+
+
SET_CARD - io.github.cvc5.Kind
+
+
Set cardinality.
+
+
SET_CHOOSE - io.github.cvc5.Kind
+
+
Set choose.
+
+
SET_COMPLEMENT - io.github.cvc5.Kind
+
+
Set complement with respect to finite universe.
+
+
SET_COMPREHENSION - io.github.cvc5.Kind
+
+
Set comprehension + + + A set comprehension is specified by a variable list \(x_1 ...
+
+
SET_EMPTY - io.github.cvc5.Kind
+
+
Empty set.
+
+
SET_FILTER - io.github.cvc5.Kind
+
+
Set filter.
+
+
SET_FOLD - io.github.cvc5.Kind
+
+
Set fold.
+
+
SET_INSERT - io.github.cvc5.Kind
+
+
The set obtained by inserting elements; + + + Arity: n > 0 + + + 1..n-1: Terms of any Sort (must match the element sort of the given set Term) + + n: Term of set Sort + + + + Create Term of this Kind with: + + + Solver.mkTerm(Kind, Term[]) + + Solver.mkTerm(Op, Term[]) + + + + Create Op of this kind with: + + + Solver.mkOp(Kind, int[]) + +
+
+
SET_INTER - io.github.cvc5.Kind
+
+
Set intersection.
+
+
SET_IS_EMPTY - io.github.cvc5.Kind
+
+
Set is empty tester.
+
+
SET_IS_SINGLETON - io.github.cvc5.Kind
+
+
Set is singleton tester.
+
+
SET_MAP - io.github.cvc5.Kind
+
+
Set map.
+
+
SET_MEMBER - io.github.cvc5.Kind
+
+
Set membership predicate.
+
+
SET_MINUS - io.github.cvc5.Kind
+
+
Set subtraction.
+
+
SET_SINGLETON - io.github.cvc5.Kind
+
+
Singleton set.
+
+
SET_SOME - io.github.cvc5.Kind
+
+
Set some.
+
+
SET_SORT - io.github.cvc5.SortKind
+
+
A set sort, whose argument sort is the element sort of the set.
+
+
SET_SUBSET - io.github.cvc5.Kind
+
+
Subset predicate.
+
+
SET_UNION - io.github.cvc5.Kind
+
+
Set union.
+
+
SET_UNIVERSE - io.github.cvc5.Kind
+
+
Finite universe set.
+
+
setFileInput(InputLanguage, String) - Method in class io.github.cvc5.InputParser
+
+
Set the input for the given file.
+
+
setIncrementalStringInput(InputLanguage, String) - Method in class io.github.cvc5.InputParser
+
+
Set that we will be feeding strings to this parser via + appendIncrementalStringInput below.
+
+
setInfo(String, String) - Method in class io.github.cvc5.Solver
+
+
Set info.
+
+
setLogic(String) - Method in class io.github.cvc5.Solver
+
+
Set logic.
+
+
setOption(String, String) - Method in class io.github.cvc5.Solver
+
+
Set option.
+
+
SETS_CARD_EMP - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule sets-card-emp
+
+
SETS_CARD_MINUS - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule sets-card-minus
+
+
SETS_CARD_SINGLETON - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule sets-card-singleton
+
+
SETS_CARD_UNION - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule sets-card-union
+
+
SETS_CHOOSE - io.github.cvc5.SkolemId
+
+
An interpreted function for set.choose operator, where (set.choose A) + is expanded to (uf A) along with the inference + (set.member (uf A) A)) when A is non-empty, + where uf: (-> (Set E) E) is this skolem function, and E is the type of + elements of A.
+
+
SETS_CHOOSE_SINGLETON - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule sets-choose-singleton
+
+
SETS_DEQ_DIFF - io.github.cvc5.SkolemId
+
+
The set diff skolem, which is the witness k for the inference + (=> (not (= A B)) (not (= (set.member k A) (set.member k B)))).
+
+
SETS_EQ_SINGLETON_EMP - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule sets-eq-singleton-emp
+
+
SETS_EXT - io.github.cvc5.ProofRule
+
+
Sets – Sets extensionality + + \[ + + \inferrule{a \neq b\mid -} + {\mathit{set.member}(k,a)\neq\mathit{set.member}(k,b)} + \] + where \(k\) is the \(\texttt{SETS_DEQ_DIFF}\) skolem for `(a, b)`.
+
+
SETS_FILTER_DOWN - io.github.cvc5.ProofRule
+
+
Sets – Sets filter down + + \[ + + \inferrule{\mathit{set.member}(x,\mathit{set.filter}(P, a))\mid -} + {\mathit{set.member}(x,a) \wedge P(x)} + \]
+
+
SETS_FILTER_UP - io.github.cvc5.ProofRule
+
+
Sets – Sets filter up + + \[ + + \inferrule{\mathit{set.member}(x,a)\mid P} + {\mathit{set.member}(x, \mathit{set.filter}(P, a)) = P(x)} + \]
+
+
SETS_FOLD_CARD - io.github.cvc5.SkolemId
+
+
An uninterpreted function for set.fold operator: + To compute (set.fold f t A), we need to guess the cardinality n of + set A using a skolem function with SETS_FOLD_CARD id.
+
+
SETS_FOLD_COMBINE - io.github.cvc5.SkolemId
+
+
An uninterpreted function for set.fold operator: + To compute (set.fold f t A), we need a function that + accumulates intermidiate values.
+
+
SETS_FOLD_ELEMENTS - io.github.cvc5.SkolemId
+
+
An uninterpreted function for set.fold operator: + To compute (set.fold f t A), we need a function for + elements of A.
+
+
SETS_FOLD_UNION - io.github.cvc5.SkolemId
+
+
An uninterpreted function for set.fold operator: + To compute (set.fold f t A), we need a function for + elements of A which is given by elements defined in + SETS_FOLD_ELEMENTS.
+
+
SETS_INSERT_ELIM - io.github.cvc5.ProofRewriteRule
+
+
Sets – sets insert elimination + + \[ + \mathit{sets.insert}(t_1, \ldots, t_n, S) = \texttt{set.union}(\texttt{sets.singleton}(t_1), \ldots, \texttt{sets.singleton}(t_n), S) + \]
+
+
SETS_INTER_COMM - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule sets-inter-comm
+
+
SETS_INTER_EMP1 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule sets-inter-emp1
+
+
SETS_INTER_EMP2 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule sets-inter-emp2
+
+
SETS_INTER_MEMBER - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule sets-inter-member
+
+
SETS_IS_EMPTY_ELIM - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule sets-is-empty-elim
+
+
SETS_IS_EMPTY_EVAL - io.github.cvc5.ProofRewriteRule
+
+
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_MAP_DOWN_ELEMENT - io.github.cvc5.SkolemId
+
+
A skolem variable that is unique per terms (set.map f A), y which is an + element in (set.map f A).
+
+
SETS_MEMBER_EMP - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule sets-member-emp
+
+
SETS_MEMBER_SINGLETON - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule sets-member-singleton
+
+
SETS_MINUS_EMP1 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule sets-minus-emp1
+
+
SETS_MINUS_EMP2 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule sets-minus-emp2
+
+
SETS_MINUS_MEMBER - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule sets-minus-member
+
+
SETS_MINUS_SELF - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule sets-minus-self
+
+
SETS_SINGLETON_INJ - io.github.cvc5.ProofRule
+
+
Sets – Singleton injectivity + + \[ + + \inferrule{\mathit{set.singleton}(t) = \mathit{set.singleton}(s)\mid -}{t=s} + \]
+
+
SETS_SUBSET_ELIM - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule sets-subset-elim
+
+
SETS_UNION_COMM - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule sets-union-comm
+
+
SETS_UNION_EMP1 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule sets-union-emp1
+
+
SETS_UNION_EMP2 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule sets-union-emp2
+
+
SETS_UNION_MEMBER - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule sets-union-member
+
+
setStringInput(InputLanguage, String, String) - Method in class io.github.cvc5.InputParser
+
+
Set the input to the given concrete input string.
+
+
SEXPR - io.github.cvc5.Kind
+
+
Symbolic expression.
+
+
SHARED_SELECTOR - io.github.cvc5.SkolemId
+
+
A shared datatype selector, see Reynolds et.
+
+
simplify(Term) - Method in class io.github.cvc5.Solver
+
+
Simplify a term or formula based on rewriting.
+
+
simplify(Term, boolean) - Method in class io.github.cvc5.Solver
+
+
Simplify a term or formula based on rewriting and (optionally) applying + substitutions for solved variables.
+
+
SINE - io.github.cvc5.Kind
+
+
Sine function.
+
+
SKOLEM - io.github.cvc5.Kind
+
+
A Skolem.
+
+
SKOLEM_ADD_TO_POOL - io.github.cvc5.Kind
+
+
A skolemization-add-to-pool annotation.
+
+
SKOLEM_INTRO - io.github.cvc5.ProofRule
+
+
Quantifiers – Skolem introduction + + \[ + + \inferrule{-\mid k}{k = t} + \] + where \(t\) is the unpurified form of skolem \(k\).
+
+
SkolemId - Enum in io.github.cvc5
+
 
+
SKOLEMIZE - io.github.cvc5.ProofRule
+
+
Quantifiers – Skolemization + + \[ + + \inferrule{\neg (\forall x_1\dots x_n.\> F)\mid -}{\neg F\sigma} + \] + where \(\sigma\) maps \(x_1,\dots,x_n\) to their representative + skolems, which are skolems \(k_1,\dots,k_n\).
+
+
SMT_LIB_2_6 - io.github.cvc5.modes.InputLanguage
+
+
The SMT-LIB version 2.6 language
+
+
SOLVABLE - io.github.cvc5.modes.LearnedLitType
+
+
An internal literal that is solvable for an input variable.
+
+
Solver - Class in io.github.cvc5
+
+
A cvc5 solver.
+
+
Solver() - Constructor for class io.github.cvc5.Solver
+
+
Deprecated. +
This function is deprecated and replaced by + Solver(TermManager). + It will be removed in a future release.
+
+
+
Solver(TermManager) - Constructor for class io.github.cvc5.Solver
+
+
Create solver instance.
+
+
Sort - Class in io.github.cvc5
+
+
The sort of a cvc5 term.
+
+
Sort() - Constructor for class io.github.cvc5.Sort
+
+
Null sort
+
+
SortKind - Enum in io.github.cvc5
+
 
+
SPLIT - io.github.cvc5.ProofRule
+
+
Boolean – Split + + \[ + \inferrule{- \mid F}{F \lor \neg F} + \]
+
+
SQRT - io.github.cvc5.Kind
+
+
Square root.
+
+
Stat - Class in io.github.cvc5
+
+
Represents a snapshot of a single statistic value.
+
+
Statistics - Class in io.github.cvc5
+
 
+
Statistics.ConstIterator - Class in io.github.cvc5
+
 
+
STORE - io.github.cvc5.Kind
+
+
Array store.
+
+
STR_AT_ELIM - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-at-elim
+
+
STR_CONCAT_CLASH - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-concat-clash
+
+
STR_CONCAT_CLASH_CHAR - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-concat-clash-char
+
+
STR_CONCAT_CLASH_CHAR_REV - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-concat-clash-char-rev
+
+
STR_CONCAT_CLASH_REV - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-concat-clash-rev
+
+
STR_CONCAT_CLASH2 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-concat-clash2
+
+
STR_CONCAT_CLASH2_REV - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-concat-clash2-rev
+
+
STR_CONCAT_FLATTEN - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-concat-flatten
+
+
STR_CONCAT_FLATTEN_EQ - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-concat-flatten-eq
+
+
STR_CONCAT_FLATTEN_EQ_REV - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-concat-flatten-eq-rev
+
+
STR_CONCAT_UNIFY - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-concat-unify
+
+
STR_CONCAT_UNIFY_BASE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-concat-unify-base
+
+
STR_CONCAT_UNIFY_BASE_REV - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-concat-unify-base-rev
+
+
STR_CONCAT_UNIFY_REV - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-concat-unify-rev
+
+
STR_CONTAINS_CONCAT_FIND - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-contains-concat-find
+
+
STR_CONTAINS_EMP - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-contains-emp
+
+
STR_CONTAINS_IS_EMP - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-contains-is-emp
+
+
STR_CONTAINS_LEQ_LEN_EQ - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-contains-leq-len-eq
+
+
STR_CONTAINS_LT_LEN - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-contains-lt-len
+
+
STR_CONTAINS_REFL - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-contains-refl
+
+
STR_CONTAINS_SPLIT_CHAR - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-contains-split-char
+
+
STR_EQ_CTN_FALSE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-eq-ctn-false
+
+
STR_EQ_CTN_FULL_FALSE1 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-eq-ctn-full-false1
+
+
STR_EQ_CTN_FULL_FALSE2 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-eq-ctn-full-false2
+
+
STR_IN_RE_CONCAT_STAR_CHAR - io.github.cvc5.ProofRewriteRule
+
+
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_CONSUME - io.github.cvc5.ProofRewriteRule
+
+
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_CONTAINS - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-in-re-contains
+
+
STR_IN_RE_EVAL - io.github.cvc5.ProofRewriteRule
+
+
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_INTER_ELIM - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-in-re-inter-elim
+
+
STR_IN_RE_RANGE_ELIM - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-in-re-range-elim
+
+
STR_IN_RE_REQ_UNFOLD - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-in-re-req-unfold
+
+
STR_IN_RE_REQ_UNFOLD_REV - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-in-re-req-unfold-rev
+
+
STR_IN_RE_SIGMA - io.github.cvc5.ProofRewriteRule
+
+
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_STAR - io.github.cvc5.ProofRewriteRule
+
+
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_SKIP_UNFOLD - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-in-re-skip-unfold
+
+
STR_IN_RE_SKIP_UNFOLD_REV - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-in-re-skip-unfold-rev
+
+
STR_IN_RE_STRIP_CHAR - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-in-re-strip-char
+
+
STR_IN_RE_STRIP_CHAR_REV - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-in-re-strip-char-rev
+
+
STR_IN_RE_STRIP_CHAR_S_SINGLE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-in-re-strip-char-s-single
+
+
STR_IN_RE_STRIP_CHAR_S_SINGLE_REV - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-in-re-strip-char-s-single-rev
+
+
STR_IN_RE_STRIP_PREFIX - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-in-re-strip-prefix
+
+
STR_IN_RE_STRIP_PREFIX_BASE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-in-re-strip-prefix-base
+
+
STR_IN_RE_STRIP_PREFIX_BASE_NEG - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-in-re-strip-prefix-base-neg
+
+
STR_IN_RE_STRIP_PREFIX_BASE_NEG_REV - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-in-re-strip-prefix-base-neg-rev
+
+
STR_IN_RE_STRIP_PREFIX_BASE_REV - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-in-re-strip-prefix-base-rev
+
+
STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-in-re-strip-prefix-base-s-single
+
+
STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-in-re-strip-prefix-base-s-single-neg
+
+
STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG_REV - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-in-re-strip-prefix-base-s-single-neg-rev
+
+
STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_REV - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-in-re-strip-prefix-base-s-single-rev
+
+
STR_IN_RE_STRIP_PREFIX_NEG - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-in-re-strip-prefix-neg
+
+
STR_IN_RE_STRIP_PREFIX_NEG_REV - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-in-re-strip-prefix-neg-rev
+
+
STR_IN_RE_STRIP_PREFIX_REV - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-in-re-strip-prefix-rev
+
+
STR_IN_RE_STRIP_PREFIX_S_SINGLE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-in-re-strip-prefix-s-single
+
+
STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-in-re-strip-prefix-s-single-neg
+
+
STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG_REV - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-in-re-strip-prefix-s-single-neg-rev
+
+
STR_IN_RE_STRIP_PREFIX_S_SINGLE_REV - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-in-re-strip-prefix-s-single-rev
+
+
STR_IN_RE_STRIP_PREFIX_SR_SINGLE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-in-re-strip-prefix-sr-single
+
+
STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-in-re-strip-prefix-sr-single-neg
+
+
STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG_REV - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-in-re-strip-prefix-sr-single-neg-rev
+
+
STR_IN_RE_STRIP_PREFIX_SR_SINGLE_REV - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-in-re-strip-prefix-sr-single-rev
+
+
STR_IN_RE_STRIP_PREFIX_SRS_SINGLE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-in-re-strip-prefix-srs-single
+
+
STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-in-re-strip-prefix-srs-single-neg
+
+
STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG_REV - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-in-re-strip-prefix-srs-single-neg-rev
+
+
STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_REV - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-in-re-strip-prefix-srs-single-rev
+
+
STR_IN_RE_TEST_UNFOLD - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-in-re-test-unfold
+
+
STR_IN_RE_TEST_UNFOLD_REV - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-in-re-test-unfold-rev
+
+
STR_IN_RE_UNION_ELIM - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-in-re-union-elim
+
+
STR_INDEXOF_CONTAINS_PRE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-indexof-contains-pre
+
+
STR_INDEXOF_NO_CONTAINS - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-indexof-no-contains
+
+
STR_INDEXOF_RE_NONE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-indexof-re-none
+
+
STR_INDEXOF_SELF - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-indexof-self
+
+
STR_LEN_CONCAT_REC - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-len-concat-rec
+
+
STR_LEN_REPLACE_INV - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-len-replace-inv
+
+
STR_LEN_SUBSTR_IN_RANGE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-len-substr-in-range
+
+
STR_LEN_SUBSTR_UB1 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-len-substr-ub1
+
+
STR_LEN_SUBSTR_UB2 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-len-substr-ub2
+
+
STR_LEN_UPDATE_INV - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-len-update-inv
+
+
STR_LEQ_CONCAT_FALSE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-leq-concat-false
+
+
STR_LEQ_CONCAT_TRUE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-leq-concat-true
+
+
STR_LEQ_EMPTY - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-leq-empty
+
+
STR_LEQ_EMPTY_EQ - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-leq-empty-eq
+
+
STR_LT_ELIM - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-lt-elim
+
+
STR_PREFIXOF_ELIM - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-prefixof-elim
+
+
STR_PREFIXOF_ONE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-prefixof-one
+
+
STR_REPLACE_ALL_NO_CONTAINS - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-replace-all-no-contains
+
+
STR_REPLACE_CONTAINS_PRE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-replace-contains-pre
+
+
STR_REPLACE_EMPTY - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-replace-empty
+
+
STR_REPLACE_NO_CONTAINS - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-replace-no-contains
+
+
STR_REPLACE_PREFIX - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-replace-prefix
+
+
STR_REPLACE_RE_ALL_NONE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-replace-re-all-none
+
+
STR_REPLACE_RE_NONE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-replace-re-none
+
+
STR_REPLACE_SELF - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-replace-self
+
+
STR_SUBSTR_COMBINE1 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-substr-combine1
+
+
STR_SUBSTR_COMBINE2 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-substr-combine2
+
+
STR_SUBSTR_COMBINE3 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-substr-combine3
+
+
STR_SUBSTR_COMBINE4 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-substr-combine4
+
+
STR_SUBSTR_CONCAT1 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-substr-concat1
+
+
STR_SUBSTR_CONCAT2 - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-substr-concat2
+
+
STR_SUBSTR_EMPTY_RANGE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-substr-empty-range
+
+
STR_SUBSTR_EMPTY_START - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-substr-empty-start
+
+
STR_SUBSTR_EMPTY_START_NEG - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-substr-empty-start-neg
+
+
STR_SUBSTR_EMPTY_STR - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-substr-empty-str
+
+
STR_SUBSTR_EQ_EMPTY - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-substr-eq-empty
+
+
STR_SUBSTR_FULL - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-substr-full
+
+
STR_SUBSTR_FULL_EQ - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-substr-full-eq
+
+
STR_SUBSTR_LEN_INCLUDE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-substr-len-include
+
+
STR_SUBSTR_LEN_INCLUDE_PRE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-substr-len-include-pre
+
+
STR_SUBSTR_LEN_SKIP - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-substr-len-skip
+
+
STR_SUFFIXOF_ELIM - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-suffixof-elim
+
+
STR_SUFFIXOF_ONE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-suffixof-one
+
+
STR_TO_INT_CONCAT_NEG_ONE - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-to-int-concat-neg-one
+
+
STR_TO_LOWER_CONCAT - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-to-lower-concat
+
+
STR_TO_LOWER_FROM_INT - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-to-lower-from-int
+
+
STR_TO_LOWER_LEN - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-to-lower-len
+
+
STR_TO_LOWER_UPPER - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-to-lower-upper
+
+
STR_TO_UPPER_CONCAT - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-to-upper-concat
+
+
STR_TO_UPPER_FROM_INT - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-to-upper-from-int
+
+
STR_TO_UPPER_LEN - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-to-upper-len
+
+
STR_TO_UPPER_LOWER - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule str-to-upper-lower
+
+
STRING_CHARAT - io.github.cvc5.Kind
+
+
String character at.
+
+
STRING_CODE_INJ - io.github.cvc5.ProofRule
+
+
Strings – Code points + + \[ + + \inferrule{-\mid t,s}{\mathit{to\_code}(t) = -1 \vee \mathit{to\_code}(t) \neq + \mathit{to\_code}(s) \vee t = s} + \]
+
+
STRING_CONCAT - io.github.cvc5.Kind
+
+
String concat.
+
+
STRING_CONTAINS - io.github.cvc5.Kind
+
+
String contains.
+
+
STRING_DECOMPOSE - io.github.cvc5.ProofRule
+
+
Strings – Core rules – String decomposition + + \[ + + \inferrule{\mathit{len}(t) \geq n\mid \bot}{t = w_1\cdot w_2 \wedge + \mathit{len}(w_1) = n} + \] + where \(w_1\) is the purification skolem for \(\mathit{pre}(t,n)\) + and \(w_2\) is the purification skolem for \(\mathit{suf}(t,n)\).
+
+
STRING_EAGER_REDUCTION - io.github.cvc5.ProofRule
+
+
Strings – Extended functions – Eager reduction + + \[ + + \inferrule{-\mid t}{R} + \] + where \(R\) is \(\texttt{TermRegistry::eagerReduce}(t)\).
+
+
STRING_EXT - io.github.cvc5.ProofRule
+
+
Strings – Extensionality + + \[ + + \inferrule{s \neq t\mid -} + {\mathit{seq.len}(s) \neq \mathit{seq.len}(t) \vee (\mathit{seq.nth}(s,k)\neq\mathit{set.nth}(t,k) \wedge 0 \leq k \wedge k < \mathit{seq.len}(s))} + \] + where \(s,t\) are terms of sequence type, \(k\) is the + \(\texttt{STRINGS_DEQ_DIFF}\) skolem for \(s,t\).
+
+
STRING_FROM_CODE - io.github.cvc5.Kind
+
+
String from code.
+
+
STRING_FROM_INT - io.github.cvc5.Kind
+
+
Conversion from Int to String.
+
+
STRING_IN_REGEXP - io.github.cvc5.Kind
+
+
String membership.
+
+
STRING_INDEXOF - io.github.cvc5.Kind
+
+
String index-of.
+
+
STRING_INDEXOF_RE - io.github.cvc5.Kind
+
+
String index-of regular expression match.
+
+
STRING_IS_DIGIT - io.github.cvc5.Kind
+
+
String is-digit.
+
+
STRING_LENGTH - io.github.cvc5.Kind
+
+
String length.
+
+
STRING_LENGTH_NON_EMPTY - io.github.cvc5.ProofRule
+
+
Strings – Core rules – Length non-empty + + \[ + + \inferrule{t\neq \epsilon\mid -}{\mathit{len}(t) \neq 0} + \]
+
+
STRING_LENGTH_POS - io.github.cvc5.ProofRule
+
+
Strings – Core rules – Length positive + + \[ + + \inferrule{-\mid t}{(\mathit{len}(t) = 0\wedge t= \epsilon)\vee \mathit{len}(t) + > 0} + \]
+
+
STRING_LEQ - io.github.cvc5.Kind
+
+
String less than or equal.
+
+
STRING_LT - io.github.cvc5.Kind
+
+
String less than.
+
+
STRING_PREFIX - io.github.cvc5.Kind
+
+
String prefix-of.
+
+
STRING_REDUCTION - io.github.cvc5.ProofRule
+
+
Strings – Extended functions – Reduction + + \[ + + \inferrule{-\mid t}{R\wedge t = w} + \] + where \(w\) is \(\texttt{StringsPreprocess::reduce}(t, R, + \dots)\).
+
+
STRING_REPLACE - io.github.cvc5.Kind
+
+
String replace.
+
+
STRING_REPLACE_ALL - io.github.cvc5.Kind
+
+
String replace all.
+
+
STRING_REPLACE_RE - io.github.cvc5.Kind
+
+
String replace regular expression match.
+
+
STRING_REPLACE_RE_ALL - io.github.cvc5.Kind
+
+
String replace all regular expression matches.
+
+
STRING_REV - io.github.cvc5.Kind
+
+
String reverse.
+
+
STRING_SEQ_UNIT_INJ - io.github.cvc5.ProofRule
+
+
Strings – Sequence unit + + \[ + + \inferrule{\mathit{unit}(x) = \mathit{unit}(y)\mid -}{x = y} + \] + Also applies to the case where \(\mathit{unit}(y)\) is a constant + sequence of length one.
+
+
STRING_SORT - io.github.cvc5.SortKind
+
+
The string sort.
+
+
STRING_SUBSTR - io.github.cvc5.Kind
+
+
String substring.
+
+
STRING_SUFFIX - io.github.cvc5.Kind
+
+
String suffix-of.
+
+
STRING_TO_CODE - io.github.cvc5.Kind
+
+
String to code.
+
+
STRING_TO_INT - io.github.cvc5.Kind
+
+
String to integer (total function).
+
+
STRING_TO_LOWER - io.github.cvc5.Kind
+
+
String to lower case.
+
+
STRING_TO_REGEXP - io.github.cvc5.Kind
+
+
Conversion from string to regexp.
+
+
STRING_TO_UPPER - io.github.cvc5.Kind
+
+
String to upper case.
+
+
STRING_UPDATE - io.github.cvc5.Kind
+
+
String update.
+
+
STRINGS_DEQ_DIFF - io.github.cvc5.SkolemId
+
+
Difference index for string disequalities, such that k is the witness for + the inference + (=> (not (= a b)) (not (= (substr a k 1) (substr b k 1)))) + where note that `k` may be out of bounds for at most of a,b.
+
+
STRINGS_ITOS_RESULT - io.github.cvc5.SkolemId
+
+
A function used to define intermediate results of str.from_int + applications.
+
+
STRINGS_NUM_OCCUR - io.github.cvc5.SkolemId
+
+
An integer corresponding to the number of times a string occurs in another + string.
+
+
STRINGS_NUM_OCCUR_RE - io.github.cvc5.SkolemId
+
+
Analogous to STRINGS_NUM_OCCUR, but for regular expressions.
+
+
STRINGS_OCCUR_INDEX - io.github.cvc5.SkolemId
+
+
A function k such that for x = 0...n, (k x) is the end + index of the x^th occurrence of a string b in string a, where n is the + number of occurrences of b in a, and (= (k 0) 0).
+
+
STRINGS_OCCUR_INDEX_RE - io.github.cvc5.SkolemId
+
+
Analogous to STRINGS_OCCUR_INDEX, but for regular expressions.
+
+
STRINGS_OCCUR_LEN_RE - io.github.cvc5.SkolemId
+
+
A function k where for x = 0...n, (k x) is the length of + the x^th occurrence of R in a (excluding matches of empty strings) where R + is a regular expression, n is the number of occurrences of R in a, and + (= (k 0) 0).
+
+
STRINGS_REPLACE_ALL_RESULT - io.github.cvc5.SkolemId
+
+
A function used to define intermediate results of str.replace_all and + str.replace_re_all applications.
+
+
STRINGS_STOI_NON_DIGIT - io.github.cvc5.SkolemId
+
+
A position containing a non-digit in a string, used when (str.to_int a) + is equal to -1.
+
+
STRINGS_STOI_RESULT - io.github.cvc5.SkolemId
+
+
A function used to define intermediate results of str.from_int + applications.
+
+
stringValue() - Method in class io.github.cvc5.OptionInfo
+
+
Obtain the current value as a string.
+
+
SUB - io.github.cvc5.Kind
+
+
Arithmetic subtraction, left associative.
+
+
SUBS - io.github.cvc5.ProofRule
+
+
Builtin theory – Substitution + + \[ + + \inferrule{F_1 \dots F_n \mid t, ids?}{t = t \circ \sigma_{ids}(F_n) + \circ \cdots \circ \sigma_{ids}(F_1)} + \] + where \(\sigma_{ids}(F_i)\) are substitutions, which notice are applied + in reverse order.
+
+
substitute(Sort[], Sort[]) - Method in class io.github.cvc5.Sort
+
+
Simultaneous substitution of Sorts.
+
+
substitute(Sort, Sort) - Method in class io.github.cvc5.Sort
+
+
Substitution of Sorts.
+
+
substitute(Term[], Term[]) - Method in class io.github.cvc5.Term
+
+
Simultaneously replace terms with replacements in this + term.
+
+
substitute(Term, Term) - Method in class io.github.cvc5.Term
+
+
Replace term with replacement in this term.
+
+
SYGUS_2_1 - io.github.cvc5.modes.InputLanguage
+
+
The SyGuS version 2.1 language.
+
+
SymbolManager - Class in io.github.cvc5
+
 
+
SymbolManager(Solver) - Constructor for class io.github.cvc5.SymbolManager
+
+
Deprecated. +
This function is deprecated and replaced by + Solver(TermManager). + It will be removed in a future release.
+
+
+
SymbolManager(TermManager) - Constructor for class io.github.cvc5.SymbolManager
+
+
Create symbol manager instance.
+
+
SYMM - io.github.cvc5.ProofRule
+
+
Equality – Symmetry + + \[ + + \inferrule{t_1 = t_2\mid -}{t_2 = t_1} + \] + or + + \[ + + \inferrule{t_1 \neq t_2\mid -}{t_2 \neq t_1} + \]
+
+
synthFun(String, Term[], Sort) - Method in class io.github.cvc5.Solver
+
+
Synthesize n-ary function.
+
+
synthFun(String, Term[], Sort, Grammar) - Method in class io.github.cvc5.Solver
+
+
Synthesize n-ary function following specified syntactic constraints.
+
+
SynthResult - Class in io.github.cvc5
+
+
Encapsulation of a solver synth result.
+
+
SynthResult() - Constructor for class io.github.cvc5.SynthResult
+
+
Null synthResult
+
+
+ + + +

T

+
+
TABLE_AGGREGATE - io.github.cvc5.Kind
+
+
Table aggregate operator has the form + \(((\_ \; table.aggr \; n_1 ...
+
+
TABLE_GROUP - io.github.cvc5.Kind
+
+
Table group + + + \(((\_ \; table.group \; n_1 \; \dots \; n_k) \; A)\) partitions tuples + of table \(A\) such that tuples that have the same projection + with indices \(n_1 \; \dots \; n_k\) are in the same part.
+
+
TABLE_JOIN - io.github.cvc5.Kind
+
+
Table join operator has the form + \(((\_ \; table.join \; m_1 \; n_1 \; \dots \; m_k \; n_k) \; A \; B)\) + where \(m_1 \; n_1 \; \dots \; m_k \; n_k\) are natural numbers, + and \(A, B\) are tables.
+
+
TABLE_PRODUCT - io.github.cvc5.Kind
+
+
Table cross product.
+
+
TABLE_PROJECT - io.github.cvc5.Kind
+
+
Table projection operator extends tuple projection operator to tables.
+
+
TABLES_GROUP_PART - io.github.cvc5.SkolemId
+
+
Given a group term ((_ table.group n1 ... nk) A) of type + (Bag (Table T)), this skolem maps elements of A to their parts in the + resulting partition.
+
+
TABLES_GROUP_PART_ELEMENT - io.github.cvc5.SkolemId
+
+
Given a group term ((_ table.group n1 ... nk) A) of type + (Bag (Table T)) and a part B of type (Table T), this function + returns a skolem element that is a member of B if B is not empty.
+
+
TANGENT - io.github.cvc5.Kind
+
+
Tangent function.
+
+
Term - Class in io.github.cvc5
+
+
A cvc5 Term.
+
+
Term() - Constructor for class io.github.cvc5.Term
+
+
Null term
+
+
Term.ConstIterator - Class in io.github.cvc5
+
 
+
termManager - Variable in class io.github.cvc5.AbstractPlugin
+
 
+
TermManager - Class in io.github.cvc5
+
+
A cvc5 term manager.
+
+
TermManager() - Constructor for class io.github.cvc5.TermManager
+
+
Create a term manager instance.
+
+
THEORY_LEMMAS - io.github.cvc5.modes.ProofComponent
+
+
Proofs of L1 ...
+
+
THEORY_REWRITE - io.github.cvc5.ProofRule
+
+
Other theory rewrite rules + + \[ + \inferrule{- \mid id, t = t'}{t = t'} + \] + where `id` is the ProofRewriteRule of the theory rewrite + rule which transforms \(t\) to \(t'\).
+
+
third - Variable in class io.github.cvc5.Triplet
+
 
+
TIMEOUT - io.github.cvc5.UnknownExplanation
+
+
Time limit reached.
+
+
TO_INTEGER - io.github.cvc5.Kind
+
+
Convert Term of sort Int or Real to Int via the floor function.
+
+
TO_REAL - io.github.cvc5.Kind
+
+
Convert Term of Sort Int or Real to Real.
+
+
toString() - Method in class io.github.cvc5.OptionInfo
+
 
+
toString(long) - Method in class io.github.cvc5.Command
+
 
+
toString(long) - Method in class io.github.cvc5.Datatype
+
 
+
toString(long) - Method in class io.github.cvc5.DatatypeConstructor
+
 
+
toString(long) - Method in class io.github.cvc5.DatatypeConstructorDecl
+
 
+
toString(long) - Method in class io.github.cvc5.DatatypeDecl
+
 
+
toString(long) - Method in class io.github.cvc5.DatatypeSelector
+
 
+
toString(long) - Method in class io.github.cvc5.Grammar
+
 
+
toString(long) - Method in class io.github.cvc5.InputParser
+
 
+
toString(long) - Method in class io.github.cvc5.Op
+
 
+
toString(long) - Method in class io.github.cvc5.OptionInfo
+
 
+
toString(long) - Method in class io.github.cvc5.Result
+
 
+
toString(long) - Method in class io.github.cvc5.Solver
+
 
+
toString(long) - Method in class io.github.cvc5.Sort
+
 
+
toString(long) - Method in class io.github.cvc5.Stat
+
 
+
toString(long) - Method in class io.github.cvc5.Statistics
+
 
+
toString(long) - Method in class io.github.cvc5.SymbolManager
+
 
+
toString(long) - Method in class io.github.cvc5.SynthResult
+
 
+
toString(long) - Method in class io.github.cvc5.Term
+
 
+
toString(long) - Method in class io.github.cvc5.TermManager
+
 
+
TRANS - io.github.cvc5.ProofRule
+
+
Equality – Transitivity + + \[ + + \inferrule{t_1=t_2,\dots,t_{n-1}=t_n\mid -}{t_1 = t_n} + \]
+
+
TRANSCENDENTAL_PURIFY - io.github.cvc5.SkolemId
+
+
A function introduced to eliminate extended trancendental functions.
+
+
TRANSCENDENTAL_PURIFY_ARG - io.github.cvc5.SkolemId
+
+
Argument used to purify trancendental function app (f x).
+
+
TRANSCENDENTAL_SINE_PHASE_SHIFT - io.github.cvc5.SkolemId
+
+
Argument used to reason about the phase shift of arguments to sine.
+
+
transferTo(InputStream, FileOutputStream) - Static method in class io.github.cvc5.Utils
+
+
Transfers all bytes from the provided InputStream to the specified FileOutputStream.
+
+
Triplet<A,​B,​C> - Class in io.github.cvc5
+
 
+
Triplet(A, B, C) - Constructor for class io.github.cvc5.Triplet
+
 
+
TRUE_ELIM - io.github.cvc5.ProofRule
+
+
Equality – True elim + + \[ + + \inferrule{F=\top\mid -}{F} + \]
+
+
TRUE_INTRO - io.github.cvc5.ProofRule
+
+
Equality – True intro + + \[ + + \inferrule{F\mid -}{F = \top} + \]
+
+
TRUST - io.github.cvc5.ProofRule
+
+
Trusted rule + + \[ + \inferrule{F_1 \dots F_n \mid tid, F, ...}{F} + \] + where \(tid\) is an identifier and \(F\) is a formula.
+
+
TRUST_THEORY_REWRITE - io.github.cvc5.ProofRule
+
+
Trusted rules – Theory rewrite + + \[ + \inferrule{- \mid F, tid, rid}{F} + \] + where \(F\) is an equality of the form \(t = t'\) where \(t'\) + is obtained by applying the kind of rewriting given by the method + identifier \(rid\), which is one of: + RW_REWRITE_THEORY_PRE, RW_REWRITE_THEORY_POST, + RW_REWRITE_EQ_EXT.
+
+
TUPLE_PROJECT - io.github.cvc5.Kind
+
+
Tuple projection.
+
+
TUPLE_SORT - io.github.cvc5.SortKind
+
+
A tuple sort, whose argument sorts denote the sorts of the direct children + of the tuple.
+
+
+ + + +

U

+
+
UF_BV2NAT_GEQ_ELIM - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule uf-bv2nat-geq-elim
+
+
UF_BV2NAT_INT2BV - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule uf-bv2nat-int2bv
+
+
UF_BV2NAT_INT2BV_EXTEND - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule uf-bv2nat-int2bv-extend
+
+
UF_BV2NAT_INT2BV_EXTRACT - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule uf-bv2nat-int2bv-extract
+
+
UF_INT2BV_BV2NAT - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule uf-int2bv-bv2nat
+
+
UF_INT2BV_BVULE_EQUIV - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule uf-int2bv-bvule-equiv
+
+
UF_INT2BV_BVULT_EQUIV - io.github.cvc5.ProofRewriteRule
+
+
Auto-generated from RARE rule uf-int2bv-bvult-equiv
+
+
UNDEFINED_KIND - io.github.cvc5.Kind
+
+
Undefined kind.
+
+
UNDEFINED_SORT_KIND - io.github.cvc5.SortKind
+
+
Undefined kind.
+
+
UNINTERPRETED_SORT - io.github.cvc5.SortKind
+
+
An uninterpreted sort.
+
+
UNINTERPRETED_SORT_VALUE - io.github.cvc5.Kind
+
+
The value of an uninterpreted constant.
+
+
UNKNOWN - io.github.cvc5.modes.InputLanguage
+
+
No language given.
+
+
UNKNOWN - io.github.cvc5.modes.LearnedLitType
+
+
Special case for when produce-learned-literals is not set.
+
+
UNKNOWN - io.github.cvc5.ProofRule
+
+
External – Alethe + + Place holder for Alethe rules.
+
+
UNKNOWN_REASON - io.github.cvc5.UnknownExplanation
+
+
No specific reason given.
+
+
UnknownExplanation - Enum in io.github.cvc5
+
 
+
UNSUPPORTED - io.github.cvc5.UnknownExplanation
+
+
Unsupported feature encountered.
+
+
Utils - Class in io.github.cvc5
+
 
+
Utils() - Constructor for class io.github.cvc5.Utils
+
 
+
+ + + +

V

+
+
validateUnsigned(int[], String) - Static method in class io.github.cvc5.Utils
+
 
+
validateUnsigned(int, String) - Static method in class io.github.cvc5.Utils
+
 
+
validateUnsigned(long[], String) - Static method in class io.github.cvc5.Utils
+
 
+
validateUnsigned(long, String) - Static method in class io.github.cvc5.Utils
+
 
+
ValueInfo(T, T) - Constructor for class io.github.cvc5.OptionInfo.ValueInfo
+
 
+
valueOf(String) - Static method in enum io.github.cvc5.Kind
+
+
Returns the enum constant of this type with the specified name.
+
+
valueOf(String) - Static method in enum io.github.cvc5.modes.BlockModelsMode
+
+
Returns the enum constant of this type with the specified name.
+
+
valueOf(String) - Static method in enum io.github.cvc5.modes.FindSynthTarget
+
+
Returns the enum constant of this type with the specified name.
+
+
valueOf(String) - Static method in enum io.github.cvc5.modes.InputLanguage
+
+
Returns the enum constant of this type with the specified name.
+
+
valueOf(String) - Static method in enum io.github.cvc5.modes.LearnedLitType
+
+
Returns the enum constant of this type with the specified name.
+
+
valueOf(String) - Static method in enum io.github.cvc5.modes.ProofComponent
+
+
Returns the enum constant of this type with the specified name.
+
+
valueOf(String) - Static method in enum io.github.cvc5.modes.ProofFormat
+
+
Returns the enum constant of this type with the specified name.
+
+
valueOf(String) - Static method in enum io.github.cvc5.ProofRewriteRule
+
+
Returns the enum constant of this type with the specified name.
+
+
valueOf(String) - Static method in enum io.github.cvc5.ProofRule
+
+
Returns the enum constant of this type with the specified name.
+
+
valueOf(String) - Static method in enum io.github.cvc5.RoundingMode
+
+
Returns the enum constant of this type with the specified name.
+
+
valueOf(String) - Static method in enum io.github.cvc5.SkolemId
+
+
Returns the enum constant of this type with the specified name.
+
+
valueOf(String) - Static method in enum io.github.cvc5.SortKind
+
+
Returns the enum constant of this type with the specified name.
+
+
valueOf(String) - Static method in enum io.github.cvc5.UnknownExplanation
+
+
Returns the enum constant of this type with the specified name.
+
+
values() - Static method in enum io.github.cvc5.Kind
+
+
Returns an array containing the constants of this enum type, in +the order they are declared.
+
+
values() - Static method in enum io.github.cvc5.modes.BlockModelsMode
+
+
Returns an array containing the constants of this enum type, in +the order they are declared.
+
+
values() - Static method in enum io.github.cvc5.modes.FindSynthTarget
+
+
Returns an array containing the constants of this enum type, in +the order they are declared.
+
+
values() - Static method in enum io.github.cvc5.modes.InputLanguage
+
+
Returns an array containing the constants of this enum type, in +the order they are declared.
+
+
values() - Static method in enum io.github.cvc5.modes.LearnedLitType
+
+
Returns an array containing the constants of this enum type, in +the order they are declared.
+
+
values() - Static method in enum io.github.cvc5.modes.ProofComponent
+
+
Returns an array containing the constants of this enum type, in +the order they are declared.
+
+
values() - Static method in enum io.github.cvc5.modes.ProofFormat
+
+
Returns an array containing the constants of this enum type, in +the order they are declared.
+
+
values() - Static method in enum io.github.cvc5.ProofRewriteRule
+
+
Returns an array containing the constants of this enum type, in +the order they are declared.
+
+
values() - Static method in enum io.github.cvc5.ProofRule
+
+
Returns an array containing the constants of this enum type, in +the order they are declared.
+
+
values() - Static method in enum io.github.cvc5.RoundingMode
+
+
Returns an array containing the constants of this enum type, in +the order they are declared.
+
+
values() - Static method in enum io.github.cvc5.SkolemId
+
+
Returns an array containing the constants of this enum type, in +the order they are declared.
+
+
values() - Static method in enum io.github.cvc5.SortKind
+
+
Returns an array containing the constants of this enum type, in +the order they are declared.
+
+
values() - Static method in enum io.github.cvc5.UnknownExplanation
+
+
Returns an array containing the constants of this enum type, in +the order they are declared.
+
+
VALUES - io.github.cvc5.modes.BlockModelsMode
+
+
Block models based on the concrete model values for the free variables.
+
+
VARIABLE - io.github.cvc5.Kind
+
+
(Bound) variable.
+
+
VARIABLE_LIST - io.github.cvc5.Kind
+
+
Variable list.
+
+
VoidInfo() - Constructor for class io.github.cvc5.OptionInfo.VoidInfo
+
 
+
+ + + +

W

+
+
WITNESS - io.github.cvc5.Kind
+
+
Witness.
+
+
+ + + +

X

+
+
XOR - io.github.cvc5.Kind
+
+
Logical exclusive disjunction, left associative.
+
+
XOR_ELIM1 - io.github.cvc5.ProofRule
+
+
Boolean – XOR elimination version 1 + + \[ + \inferrule{F_1 \xor F_2 \mid -}{F_1 \lor F_2} + \]
+
+
XOR_ELIM2 - io.github.cvc5.ProofRule
+
+
Boolean – XOR elimination version 2 + + \[ + \inferrule{F_1 \xor F_2 \mid -}{\neg F_1 \lor \neg F_2} + \]
+
+
xorTerm(Term) - Method in class io.github.cvc5.Term
+
+
Boolean exclusive or.
+
+
+A B C D E F G H I K L M N O P Q R S T U V W X 
All Classes All Packages
+
+ + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/index.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/index.html new file mode 100644 index 0000000000..4aae1391d7 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/index.html @@ -0,0 +1,163 @@ + + + + + +Overview + + + + + + + + + + + + + + +
+ +
+
+
+ + + + + + + + + + + + + + + + +
Packages 
PackageDescription
io.github.cvc5 
io.github.cvc5.modes 
+
+
+ + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/AbstractPlugin.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/AbstractPlugin.html new file mode 100644 index 0000000000..078bb21164 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/AbstractPlugin.html @@ -0,0 +1,449 @@ + + + + + +AbstractPlugin + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Class AbstractPlugin

+
+
+ +
+
    +
  • +
    +
    public abstract class AbstractPlugin
    +extends java.lang.Object
    +
  • +
+
+
+
    +
  • + +
    + +
    + +
    +
      +
    • + + +

      Constructor Summary

      + + + + + + + + + + +
      Constructors 
      ConstructorDescription
      AbstractPlugin​(TermManager tm) +
      Create plugin instance.
      +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and TypeMethodDescription
      Term[]check() +
      Call to check, return vector of lemmas to add to the SAT solver.
      +
      abstract java.lang.StringgetName() +
      Get the name of the plugin (for debugging).
      +
      TermManagergetTermManager() +
      Get the associated term manager instance
      +
      voidnotifySatClause​(Term cl) +
      Notify SAT clause, called when cl is a clause learned by the SAT solver.
      +
      voidnotifyTheoryLemma​(Term lem) +
      Notify theory lemma, called when lem is a theory lemma sent by a theory + solver.
      +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • +
      +
    • +
    +
    +
  • +
+
+
+
    +
  • + +
    + +
    + +
    +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        AbstractPlugin

        +
        public AbstractPlugin​(TermManager tm)
        +
        Create plugin instance.
        +
        +
        Parameters:
        +
        tm - The associated term manager.
        +
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        getTermManager

        +
        public TermManager getTermManager()
        +
        Get the associated term manager instance
        +
        +
        Returns:
        +
        The term manager.
        +
        +
      • +
      + + + +
        +
      • +

        check

        +
        public Term[] check()
        +
        Call to check, return vector of lemmas to add to the SAT solver. + This method is called periodically, roughly at every SAT decision.
        +
        +
        Returns:
        +
        The vector of lemmas to add to the SAT solver.
        +
        +
      • +
      + + + +
        +
      • +

        notifySatClause

        +
        public void notifySatClause​(Term cl)
        +
        Notify SAT clause, called when cl is a clause learned by the SAT solver.
        +
        +
        Parameters:
        +
        cl - The learned clause.
        +
        +
      • +
      + + + +
        +
      • +

        notifyTheoryLemma

        +
        public void notifyTheoryLemma​(Term lem)
        +
        Notify theory lemma, called when lem is a theory lemma sent by a theory + solver.
        +
        +
        Parameters:
        +
        lem - The theory lemma.
        +
        +
      • +
      + + + +
        +
      • +

        getName

        +
        public abstract java.lang.String getName()
        +
        Get the name of the plugin (for debugging).
        +
        +
        Returns:
        +
        The name of the plugin.
        +
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/CVC5ApiException.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/CVC5ApiException.html new file mode 100644 index 0000000000..8b24334f14 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/CVC5ApiException.html @@ -0,0 +1,297 @@ + + + + + +CVC5ApiException + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Class CVC5ApiException

+
+
+ +
+
    +
  • +
    +
    All Implemented Interfaces:
    +
    java.io.Serializable
    +
    +
    +
    Direct Known Subclasses:
    +
    CVC5ApiRecoverableException
    +
    +
    +
    public class CVC5ApiException
    +extends java.lang.Exception
    +
    +
    See Also:
    +
    Serialized Form
    +
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Constructor Summary

      + + + + + + + + + + +
      Constructors 
      ConstructorDescription
      CVC5ApiException​(java.lang.String message) 
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Summary

      +
        +
      • + + +

        Methods inherited from class java.lang.Throwable

        +addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
      • +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • +
      +
    • +
    +
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        CVC5ApiException

        +
        public CVC5ApiException​(java.lang.String message)
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/CVC5ApiOptionException.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/CVC5ApiOptionException.html new file mode 100644 index 0000000000..db68d62c7c --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/CVC5ApiOptionException.html @@ -0,0 +1,303 @@ + + + + + +CVC5ApiOptionException + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Class CVC5ApiOptionException

+
+
+ +
+ +
+
+
    +
  • + +
    +
      +
    • + + +

      Constructor Summary

      + + + + + + + + + + +
      Constructors 
      ConstructorDescription
      CVC5ApiOptionException​(java.lang.String message) 
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Summary

      +
        +
      • + + +

        Methods inherited from class java.lang.Throwable

        +addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
      • +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • +
      +
    • +
    +
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        CVC5ApiOptionException

        +
        public CVC5ApiOptionException​(java.lang.String message)
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/CVC5ApiRecoverableException.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/CVC5ApiRecoverableException.html new file mode 100644 index 0000000000..dc46860275 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/CVC5ApiRecoverableException.html @@ -0,0 +1,302 @@ + + + + + +CVC5ApiRecoverableException + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Class CVC5ApiRecoverableException

+
+
+ +
+ +
+
+
    +
  • + +
    + +
    + +
    +
      +
    • + + +

      Method Summary

      +
        +
      • + + +

        Methods inherited from class java.lang.Throwable

        +addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
      • +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • +
      +
    • +
    +
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        CVC5ApiRecoverableException

        +
        public CVC5ApiRecoverableException​(java.lang.String message)
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/CVC5ParserException.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/CVC5ParserException.html new file mode 100644 index 0000000000..9f13a57b3c --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/CVC5ParserException.html @@ -0,0 +1,293 @@ + + + + + +CVC5ParserException + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Class CVC5ParserException

+
+
+ +
+
    +
  • +
    +
    All Implemented Interfaces:
    +
    java.io.Serializable
    +
    +
    +
    public class CVC5ParserException
    +extends java.lang.Exception
    +
    +
    See Also:
    +
    Serialized Form
    +
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Constructor Summary

      + + + + + + + + + + +
      Constructors 
      ConstructorDescription
      CVC5ParserException​(java.lang.String message) 
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Summary

      +
        +
      • + + +

        Methods inherited from class java.lang.Throwable

        +addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
      • +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • +
      +
    • +
    +
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        CVC5ParserException

        +
        public CVC5ParserException​(java.lang.String message)
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Command.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Command.html new file mode 100644 index 0000000000..a3f1ffb6aa --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Command.html @@ -0,0 +1,439 @@ + + + + + +Command + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Class Command

+
+
+ +
+
    +
  • +
    +
    public class Command
    +extends java.lang.Object
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Field Summary

      + + + + + + + + + + + + +
      Fields 
      Modifier and TypeFieldDescription
      protected longpointer 
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethodDescription
      voiddeletePointer() 
      protected voiddeletePointer​(long pointer) 
      java.lang.StringgetCommandName() +
      Get the name for this command, e.g.
      +
      longgetPointer() 
      java.lang.Stringinvoke​(Solver solver, + SymbolManager symbolManager) +
      Invoke the command on the solver and symbol manager sm and return any + resulting output as a string.
      +
      booleanisNull() 
      java.lang.StringtoString() 
      protected java.lang.StringtoString​(long pointer) 
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • +
      +
    • +
    +
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        pointer

        +
        protected long pointer
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        deletePointer

        +
        protected void deletePointer​(long pointer)
        +
      • +
      + + + +
        +
      • +

        invoke

        +
        public java.lang.String invoke​(Solver solver,
        +                               SymbolManager symbolManager)
        +
        Invoke the command on the solver and symbol manager sm and return any + resulting output as a string.
        +
        +
        Parameters:
        +
        solver - The solver to invoke the command on.
        +
        symbolManager - The symbol manager to invoke the command on.
        +
        Returns:
        +
        The output of invoking the command.
        +
        +
      • +
      + + + +
        +
      • +

        toString

        +
        protected java.lang.String toString​(long pointer)
        +
        +
        Returns:
        +
        A string representation of this result.
        +
        +
      • +
      + + + +
        +
      • +

        getCommandName

        +
        public java.lang.String getCommandName()
        +
        Get the name for this command, e.g. "assert".
        +
        +
        Returns:
        +
        The name of this command.
        +
        +
      • +
      + + + +
        +
      • +

        isNull

        +
        public boolean isNull()
        +
        +
        Returns:
        +
        True if this command is null.
        +
        +
      • +
      + + + +
        +
      • +

        getPointer

        +
        public long getPointer()
        +
      • +
      + + + +
        +
      • +

        deletePointer

        +
        public void deletePointer()
        +
      • +
      + + + +
        +
      • +

        toString

        +
        public java.lang.String toString()
        +
        +
        Overrides:
        +
        toString in class java.lang.Object
        +
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Context.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Context.html new file mode 100644 index 0000000000..5a89d2dcb3 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Context.html @@ -0,0 +1,309 @@ + + + + + +Context + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Class Context

+
+
+ +
+
    +
  • +
    +
    public class Context
    +extends java.lang.Object
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Constructor Summary

      + + + + + + + + + + +
      Constructors 
      ConstructorDescription
      Context() 
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + +
      All Methods Static Methods Concrete Methods 
      Modifier and TypeMethodDescription
      static voiddeletePointers() +
      Delete all cpp pointers for terms, sorts, etc
      +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • +
      +
    • +
    +
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        Context

        +
        public Context()
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        deletePointers

        +
        public static void deletePointers()
        +
        Delete all cpp pointers for terms, sorts, etc
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Datatype.ConstIterator.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Datatype.ConstIterator.html new file mode 100644 index 0000000000..2cf75eb601 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Datatype.ConstIterator.html @@ -0,0 +1,344 @@ + + + + + +Datatype.ConstIterator + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Class Datatype.ConstIterator

+
+
+ +
+ +
+
+
    +
  • + +
    +
      +
    • + + +

      Constructor Summary

      + + + + + + + + + + +
      Constructors 
      ConstructorDescription
      ConstIterator() 
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + + + + +
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethodDescription
      booleanhasNext() 
      DatatypeConstructornext() 
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • +
      +
        +
      • + + +

        Methods inherited from interface java.util.Iterator

        +forEachRemaining, remove
      • +
      +
    • +
    +
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        ConstIterator

        +
        public ConstIterator()
        +
      • +
      +
    • +
    +
    + +
    + +
    +
  • +
+
+
+
+ + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Datatype.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Datatype.html new file mode 100644 index 0000000000..5fc2bb4814 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Datatype.html @@ -0,0 +1,741 @@ + + + + + +Datatype + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Class Datatype

+
+
+ +
+
    +
  • +
    +
    All Implemented Interfaces:
    +
    java.lang.Iterable<DatatypeConstructor>
    +
    +
    +
    public class Datatype
    +extends java.lang.Object
    +implements java.lang.Iterable<DatatypeConstructor>
    +
    A cvc5 datatype.
    +
  • +
+
+
+ +
+
+
    +
  • + +
    +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        pointer

        +
        protected long pointer
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        deletePointer

        +
        protected void deletePointer​(long pointer)
        +
      • +
      + + + +
        +
      • +

        equals

        +
        public boolean equals​(java.lang.Object dt)
        +
        Syntactic equality operator.
        +
        +
        Overrides:
        +
        equals in class java.lang.Object
        +
        Parameters:
        +
        dt - The datatype to compare to for equality.
        +
        Returns:
        +
        True if the datatypes are equal.
        +
        +
      • +
      + + + +
        +
      • +

        getConstructor

        +
        public DatatypeConstructor getConstructor​(int idx)
        +
        Get the datatype constructor at a given index.
        +
        +
        Parameters:
        +
        idx - The index of the datatype constructor to return.
        +
        Returns:
        +
        The datatype constructor with the given index.
        +
        +
      • +
      + + + +
        +
      • +

        getConstructor

        +
        public DatatypeConstructor getConstructor​(java.lang.String name)
        +
        Get the datatype constructor with the given name. + This is a linear search through the constructors, so in case of multiple, + similarly-named constructors, the first is returned.
        +
        +
        Parameters:
        +
        name - The name of the datatype constructor.
        +
        Returns:
        +
        The datatype constructor with the given name.
        +
        +
      • +
      + + + +
        +
      • +

        getSelector

        +
        public DatatypeSelector getSelector​(java.lang.String name)
        +
        Get the datatype constructor with the given name. + This is a linear search through the constructors and their selectors, so + in case of multiple, similarly-named selectors, the first is returned.
        +
        +
        Parameters:
        +
        name - The name of the datatype selector.
        +
        Returns:
        +
        The datatype selector with the given name.
        +
        +
      • +
      + + + +
        +
      • +

        getName

        +
        public java.lang.String getName()
        +
        +
        Returns:
        +
        The name of this Datatype.
        +
        +
      • +
      + + + +
        +
      • +

        getNumConstructors

        +
        public int getNumConstructors()
        +
        +
        Returns:
        +
        The number of constructors for this Datatype.
        +
        +
      • +
      + + + +
        +
      • +

        getParameters

        +
        public Sort[] getParameters()
        +
        +
        Returns:
        +
        The parameters of this datatype, if it is parametric. An exception. + is thrown if this datatype is not parametric.
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        isParametric

        +
        public boolean isParametric()
        +
        +
        Returns:
        +
        True if this datatype is parametric.
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        isCodatatype

        +
        public boolean isCodatatype()
        +
        +
        Returns:
        +
        True if this datatype corresponds to a co-datatype
        +
        +
      • +
      + + + +
        +
      • +

        isTuple

        +
        public boolean isTuple()
        +
        +
        Returns:
        +
        True if this datatype corresponds to a tuple
        +
        +
      • +
      + + + +
        +
      • +

        isRecord

        +
        public boolean isRecord()
        +
        +
        Returns:
        +
        True if this datatype corresponds to a record.
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        isFinite

        +
        public boolean isFinite()
        +
        +
        Returns:
        +
        True if this datatype is finite
        +
        +
      • +
      + + + +
        +
      • +

        isWellFounded

        +
        public boolean isWellFounded()
        +
        Is this datatype well-founded? If this datatype is not a codatatype, + this returns false if there are no values of this datatype that are of + finite size.
        +
        +
        Returns:
        +
        True if this datatype is well-founded.
        +
        +
      • +
      + + + +
        +
      • +

        isNull

        +
        public boolean isNull()
        +
        +
        Returns:
        +
        True if this Datatype is a null object.
        +
        +
      • +
      + + + +
        +
      • +

        toString

        +
        protected java.lang.String toString​(long pointer)
        +
        +
        Returns:
        +
        A string representation of this datatype.
        +
        +
      • +
      + + + + + + + +
        +
      • +

        hashCode

        +
        public int hashCode()
        +
        Get the hash value of a datatype.
        +
        +
        Overrides:
        +
        hashCode in class java.lang.Object
        +
        Returns:
        +
        The hash value.
        +
        +
      • +
      + + + +
        +
      • +

        getPointer

        +
        public long getPointer()
        +
      • +
      + + + +
        +
      • +

        deletePointer

        +
        public void deletePointer()
        +
      • +
      + + + +
        +
      • +

        toString

        +
        public java.lang.String toString()
        +
        +
        Overrides:
        +
        toString in class java.lang.Object
        +
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/DatatypeConstructor.ConstIterator.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/DatatypeConstructor.ConstIterator.html new file mode 100644 index 0000000000..6d1b2a6fe7 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/DatatypeConstructor.ConstIterator.html @@ -0,0 +1,344 @@ + + + + + +DatatypeConstructor.ConstIterator + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Class DatatypeConstructor.ConstIterator

+
+
+ +
+ +
+
+
    +
  • + +
    +
      +
    • + + +

      Constructor Summary

      + + + + + + + + + + +
      Constructors 
      ConstructorDescription
      ConstIterator() 
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + + + + +
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethodDescription
      booleanhasNext() 
      DatatypeSelectornext() 
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • +
      +
        +
      • + + +

        Methods inherited from interface java.util.Iterator

        +forEachRemaining, remove
      • +
      +
    • +
    +
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        ConstIterator

        +
        public ConstIterator()
        +
      • +
      +
    • +
    +
    + +
    + +
    +
  • +
+
+
+
+ + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/DatatypeConstructor.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/DatatypeConstructor.html new file mode 100644 index 0000000000..d561e1cdac --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/DatatypeConstructor.html @@ -0,0 +1,678 @@ + + + + + +DatatypeConstructor + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Class DatatypeConstructor

+
+
+ +
+
    +
  • +
    +
    All Implemented Interfaces:
    +
    java.lang.Iterable<DatatypeSelector>
    +
    +
    +
    public class DatatypeConstructor
    +extends java.lang.Object
    +implements java.lang.Iterable<DatatypeSelector>
    +
    A cvc5 datatype constructor.
    +
  • +
+
+
+
    +
  • + +
    + +
    + +
    +
      +
    • + + +

      Field Summary

      + + + + + + + + + + + + +
      Fields 
      Modifier and TypeFieldDescription
      protected longpointer 
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethodDescription
      voiddeletePointer() 
      protected voiddeletePointer​(long pointer) 
      booleanequals​(java.lang.Object c) +
      Syntactic equality operator.
      +
      TermgetInstantiatedTerm​(Sort retSort) +
      Get the constructor term of this datatype constructor whose return + type is retSort.
      +
      java.lang.StringgetName() 
      intgetNumSelectors() 
      longgetPointer() 
      DatatypeSelectorgetSelector​(int index) +
      Get the DatatypeSelector at the given index
      +
      DatatypeSelectorgetSelector​(java.lang.String name) +
      Get the datatype selector with the given name.
      +
      TermgetTerm() +
      Get the constructor term of this datatype constructor.
      +
      TermgetTesterTerm() +
      Get the tester term of this datatype constructor.
      +
      inthashCode() +
      Get the hash value of a datatype constructor.
      +
      booleanisNull() 
      java.util.Iterator<DatatypeSelector>iterator() 
      java.lang.StringtoString() 
      protected java.lang.StringtoString​(long pointer) 
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
      • +
      +
        +
      • + + +

        Methods inherited from interface java.lang.Iterable

        +forEach, spliterator
      • +
      +
    • +
    +
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        pointer

        +
        protected long pointer
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        deletePointer

        +
        protected void deletePointer​(long pointer)
        +
      • +
      + + + +
        +
      • +

        equals

        +
        public boolean equals​(java.lang.Object c)
        +
        Syntactic equality operator.
        +
        +
        Overrides:
        +
        equals in class java.lang.Object
        +
        Parameters:
        +
        c - The datatype constructor to compare to for equality.
        +
        Returns:
        +
        True if the datatype constructors are equal.
        +
        +
      • +
      + + + +
        +
      • +

        getName

        +
        public java.lang.String getName()
        +
        +
        Returns:
        +
        The name of this Datatype constructor.
        +
        +
      • +
      + + + +
        +
      • +

        getTerm

        +
        public Term getTerm()
        +
        Get the constructor term of this datatype constructor. + + Datatype constructors are a special class of function-like terms whose sort + is datatype constructor (Sort.isDatatypeConstructor()). All + datatype constructors, including nullary ones, should be used as the + first argument to Terms whose kind is Kind.APPLY_CONSTRUCTOR. + For example, the nil list is represented by the term + (APPLY_CONSTRUCTOR nil), where nil is the term returned by + this method.
        +
        +
        Returns:
        +
        The constructor term.
        +
        Note:
        +
        This method should not be used for parametric datatypes. Instead, + use method + getInstantiatedTerm(Sort) below.
        +
        +
      • +
      + + + +
        +
      • +

        getInstantiatedTerm

        +
        public Term getInstantiatedTerm​(Sort retSort)
        +
        Get the constructor term of this datatype constructor whose return + type is retSort. + + This method is intended to be used on constructors of parametric datatypes + and can be seen as returning the constructor term that has been explicitly + cast to the given sort. + + This method is required for constructors of parametric datatypes whose + return type cannot be determined by type inference. For example, given: + (declare-datatype List (par (T) ((nil) (cons (head T) + (tail (List T)))))) + The type of nil terms need to be provided by the user. In SMT version 2.6, + this is done via the syntax for qualified identifiers: + (as nil (List Int)) + This method is equivalent of applying the above, where this + DatatypeConstructor is the one corresponding to nil, and + retSort is (List Int).
        +
        +
        Parameters:
        +
        retSort - The desired return sort of the constructor.
        +
        Returns:
        +
        The constructor term.
        +
        Note:
        +
        The returned constructor term t is used to construct the + above (nullary) application of nil with + Solver.mkTerm(APPLY_CONSTRUCTOR, new Term[] {t})., This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        getTesterTerm

        +
        public Term getTesterTerm()
        +
        Get the tester term of this datatype constructor. + + Similar to constructors, testers are a class of function-like terms of + tester sort (Sort.isDatatypeTester()), and should be used as the + first argument of Terms of kind Kind.APPLY_TESTER.
        +
        +
        Returns:
        +
        The tester term.
        +
        +
      • +
      + + + +
        +
      • +

        getNumSelectors

        +
        public int getNumSelectors()
        +
        +
        Returns:
        +
        The number of selectors (so far) of this Datatype constructor.
        +
        +
      • +
      + + + +
        +
      • +

        getSelector

        +
        public DatatypeSelector getSelector​(int index)
        +
        Get the DatatypeSelector at the given index
        +
        +
        Parameters:
        +
        index - The given index i.
        +
        Returns:
        +
        The i^th DatatypeSelector.
        +
        +
      • +
      + + + +
        +
      • +

        getSelector

        +
        public DatatypeSelector getSelector​(java.lang.String name)
        +
        Get the datatype selector with the given name. + This is a linear search through the selectors, so in case of + multiple, similarly-named selectors, the first is returned.
        +
        +
        Parameters:
        +
        name - The name of the datatype selector.
        +
        Returns:
        +
        The first datatype selector with the given name.
        +
        +
      • +
      + + + +
        +
      • +

        isNull

        +
        public boolean isNull()
        +
        +
        Returns:
        +
        True if this DatatypeConstructor is a null object.
        +
        +
      • +
      + + + +
        +
      • +

        toString

        +
        protected java.lang.String toString​(long pointer)
        +
        +
        Returns:
        +
        A string representation of this datatype constructor.
        +
        +
      • +
      + + + + + + + +
        +
      • +

        hashCode

        +
        public int hashCode()
        +
        Get the hash value of a datatype constructor.
        +
        +
        Overrides:
        +
        hashCode in class java.lang.Object
        +
        Returns:
        +
        The hash value.
        +
        +
      • +
      + + + +
        +
      • +

        getPointer

        +
        public long getPointer()
        +
      • +
      + + + +
        +
      • +

        deletePointer

        +
        public void deletePointer()
        +
      • +
      + + + +
        +
      • +

        toString

        +
        public java.lang.String toString()
        +
        +
        Overrides:
        +
        toString in class java.lang.Object
        +
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/DatatypeConstructorDecl.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/DatatypeConstructorDecl.html new file mode 100644 index 0000000000..9c654c0d14 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/DatatypeConstructorDecl.html @@ -0,0 +1,515 @@ + + + + + +DatatypeConstructorDecl + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Class DatatypeConstructorDecl

+
+
+ +
+
    +
  • +
    +
    public class DatatypeConstructorDecl
    +extends java.lang.Object
    +
    A cvc5 datatype constructor declaration. A datatype constructor declaration + is a specification used for creating a datatype constructor.
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Field Summary

      + + + + + + + + + + + + +
      Fields 
      Modifier and TypeFieldDescription
      protected longpointer 
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethodDescription
      voidaddSelector​(java.lang.String name, + Sort sort) +
      Add datatype selector declaration.
      +
      voidaddSelectorSelf​(java.lang.String name) +
      Add datatype selector declaration whose codomain type is the datatype + itself.
      +
      voidaddSelectorUnresolved​(java.lang.String name, + java.lang.String unresDataypeName) +
      Add datatype selector declaration whose codomain sort is an unresolved + datatype with the given name.
      +
      voiddeletePointer() 
      protected voiddeletePointer​(long pointer) 
      booleanequals​(java.lang.Object d) +
      Syntactic equality operator.
      +
      longgetPointer() 
      inthashCode() +
      Get the hash value of a datatype constructor declaration.
      +
      booleanisNull() 
      java.lang.StringtoString() 
      protected java.lang.StringtoString​(long pointer) 
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
      • +
      +
    • +
    +
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        pointer

        +
        protected long pointer
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        deletePointer

        +
        protected void deletePointer​(long pointer)
        +
      • +
      + + + +
        +
      • +

        equals

        +
        public boolean equals​(java.lang.Object d)
        +
        Syntactic equality operator.
        +
        +
        Overrides:
        +
        equals in class java.lang.Object
        +
        Parameters:
        +
        d - The datatype constructor declaration to compare to for equality.
        +
        Returns:
        +
        True if the datatype constructor declarations are equal.
        +
        +
      • +
      + + + +
        +
      • +

        addSelector

        +
        public void addSelector​(java.lang.String name,
        +                        Sort sort)
        +
        Add datatype selector declaration.
        +
        +
        Parameters:
        +
        name - The name of the datatype selector declaration to add.
        +
        sort - The codomain sort of the datatype selector declaration to add.
        +
        +
      • +
      + + + +
        +
      • +

        addSelectorSelf

        +
        public void addSelectorSelf​(java.lang.String name)
        +
        Add datatype selector declaration whose codomain type is the datatype + itself.
        +
        +
        Parameters:
        +
        name - The name of the datatype selector declaration to add.
        +
        +
      • +
      + + + +
        +
      • +

        addSelectorUnresolved

        +
        public void addSelectorUnresolved​(java.lang.String name,
        +                                  java.lang.String unresDataypeName)
        +
        Add datatype selector declaration whose codomain sort is an unresolved + datatype with the given name.
        +
        +
        Parameters:
        +
        name - The name of the datatype selector declaration to add.
        +
        unresDataypeName - The name of the unresolved datatype. The codomain + of the selector will be the resolved datatype with + the given name.
        +
        +
      • +
      + + + +
        +
      • +

        isNull

        +
        public boolean isNull()
        +
        +
        Returns:
        +
        True If this DatatypeConstructorDecl is a null declaration.
        +
        +
      • +
      + + + +
        +
      • +

        toString

        +
        protected java.lang.String toString​(long pointer)
        +
        +
        Returns:
        +
        A String representation of this datatype constructor declaration
        +
        +
      • +
      + + + +
        +
      • +

        hashCode

        +
        public int hashCode()
        +
        Get the hash value of a datatype constructor declaration.
        +
        +
        Overrides:
        +
        hashCode in class java.lang.Object
        +
        Returns:
        +
        The hash value.
        +
        +
      • +
      + + + +
        +
      • +

        getPointer

        +
        public long getPointer()
        +
      • +
      + + + +
        +
      • +

        deletePointer

        +
        public void deletePointer()
        +
      • +
      + + + +
        +
      • +

        toString

        +
        public java.lang.String toString()
        +
        +
        Overrides:
        +
        toString in class java.lang.Object
        +
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/DatatypeDecl.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/DatatypeDecl.html new file mode 100644 index 0000000000..e43cb732c7 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/DatatypeDecl.html @@ -0,0 +1,574 @@ + + + + + +DatatypeDecl + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Class DatatypeDecl

+
+
+ +
+
    +
  • +
    +
    public class DatatypeDecl
    +extends java.lang.Object
    +
    A cvc5 datatype declaration. A datatype declaration is not itself a datatype + (see Datatype), but a specification for creating a datatype sort. + + The interface for a datatype declaration coincides with the syntax for the + SMT-LIB 2.6 command declare-datatype, or a single datatype within the + declare-datatypes command. + + Datatype sorts can be constructed from DatatypeDecl using the methods: + - Solver.mkDatatypeSort(DatatypeDecl) + - Solver.mkDatatypeSorts(DatatypeDecl[])
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Field Summary

      + + + + + + + + + + + + +
      Fields 
      Modifier and TypeFieldDescription
      protected longpointer 
      +
    • +
    +
    + +
    +
      +
    • + + +

      Constructor Summary

      + + + + + + + + + + +
      Constructors 
      ConstructorDescription
      DatatypeDecl() +
      Null datatypeDecl
      +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethodDescription
      voidaddConstructor​(DatatypeConstructorDecl ctor) +
      Add datatype constructor declaration.
      +
      voiddeletePointer() 
      protected voiddeletePointer​(long pointer) 
      booleanequals​(java.lang.Object d) +
      Syntactic equality operator.
      +
      java.lang.StringgetName() 
      intgetNumConstructors() +
      Get the number of constructors (so far) for this Datatype declaration.
      +
      longgetPointer() 
      inthashCode() +
      Get the hash value of a datatype declaration.
      +
      booleanisNull() 
      booleanisParametric() +
      Determine if this datatype declaration is parametric.
      +
      java.lang.StringtoString() 
      protected java.lang.StringtoString​(long pointer) 
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
      • +
      +
    • +
    +
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        pointer

        +
        protected long pointer
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        DatatypeDecl

        +
        public DatatypeDecl()
        +
        Null datatypeDecl
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        deletePointer

        +
        protected void deletePointer​(long pointer)
        +
      • +
      + + + +
        +
      • +

        equals

        +
        public boolean equals​(java.lang.Object d)
        +
        Syntactic equality operator.
        +
        +
        Overrides:
        +
        equals in class java.lang.Object
        +
        Parameters:
        +
        d - The datatype declaration to compare to for equality.
        +
        Returns:
        +
        True if the datatype declarations are equal.
        +
        +
      • +
      + + + +
        +
      • +

        addConstructor

        +
        public void addConstructor​(DatatypeConstructorDecl ctor)
        +
        Add datatype constructor declaration.
        +
        +
        Parameters:
        +
        ctor - The datatype constructor declaration to add.
        +
        +
      • +
      + + + +
        +
      • +

        getNumConstructors

        +
        public int getNumConstructors()
        +
        Get the number of constructors (so far) for this Datatype declaration.
        +
        +
        Returns:
        +
        The number of constructors.
        +
        +
      • +
      + + + +
        +
      • +

        isParametric

        +
        public boolean isParametric()
        +
        Determine if this datatype declaration is parametric.
        +
        +
        Returns:
        +
        True if this DatatypeDecl is parametric.
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        isNull

        +
        public boolean isNull()
        +
        +
        Returns:
        +
        True if this DatatypeDecl is a null object.
        +
        +
      • +
      + + + +
        +
      • +

        toString

        +
        protected java.lang.String toString​(long pointer)
        +
        +
        Returns:
        +
        A string representation of this datatype declaration.
        +
        +
      • +
      + + + +
        +
      • +

        getName

        +
        public java.lang.String getName()
        +
        +
        Returns:
        +
        The name of this datatype declaration.
        +
        +
      • +
      + + + +
        +
      • +

        hashCode

        +
        public int hashCode()
        +
        Get the hash value of a datatype declaration.
        +
        +
        Overrides:
        +
        hashCode in class java.lang.Object
        +
        Returns:
        +
        The hash value.
        +
        +
      • +
      + + + +
        +
      • +

        getPointer

        +
        public long getPointer()
        +
      • +
      + + + +
        +
      • +

        deletePointer

        +
        public void deletePointer()
        +
      • +
      + + + +
        +
      • +

        toString

        +
        public java.lang.String toString()
        +
        +
        Overrides:
        +
        toString in class java.lang.Object
        +
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/DatatypeSelector.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/DatatypeSelector.html new file mode 100644 index 0000000000..c0fb6e5d0f --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/DatatypeSelector.html @@ -0,0 +1,525 @@ + + + + + +DatatypeSelector + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Class DatatypeSelector

+
+
+ +
+
    +
  • +
    +
    public class DatatypeSelector
    +extends java.lang.Object
    +
    A cvc5 datatype selector.
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Field Summary

      + + + + + + + + + + + + +
      Fields 
      Modifier and TypeFieldDescription
      protected longpointer 
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethodDescription
      voiddeletePointer() 
      protected voiddeletePointer​(long pointer) 
      booleanequals​(java.lang.Object s) +
      Syntactic equality operator.
      +
      SortgetCodomainSort() 
      java.lang.StringgetName() 
      longgetPointer() 
      TermgetTerm() +
      Get the selector term of this datatype selector.
      +
      TermgetUpdaterTerm() +
      Get the updater term of this datatype selector.
      +
      inthashCode() +
      Get the hash value of a datatype selector.
      +
      booleanisNull() 
      java.lang.StringtoString() 
      protected java.lang.StringtoString​(long pointer) 
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
      • +
      +
    • +
    +
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        pointer

        +
        protected long pointer
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        deletePointer

        +
        protected void deletePointer​(long pointer)
        +
      • +
      + + + +
        +
      • +

        equals

        +
        public boolean equals​(java.lang.Object s)
        +
        Syntactic equality operator.
        +
        +
        Overrides:
        +
        equals in class java.lang.Object
        +
        Parameters:
        +
        s - The datatype selector to compare to for equality.
        +
        Returns:
        +
        True if the datatype selectors are equal.
        +
        +
      • +
      + + + +
        +
      • +

        getName

        +
        public java.lang.String getName()
        +
        +
        Returns:
        +
        The Name of this Datatype selector.
        +
        +
      • +
      + + + +
        +
      • +

        getTerm

        +
        public Term getTerm()
        +
        Get the selector term of this datatype selector. + + Selector terms are a class of function-like terms of selector + sort (Sort::isDatatypeSelector), and should be used as the first + argument of Terms of kind APPLY_SELECTOR.
        +
        +
        Returns:
        +
        The Selector term.
        +
        +
      • +
      + + + +
        +
      • +

        getUpdaterTerm

        +
        public Term getUpdaterTerm()
        +
        Get the updater term of this datatype selector. + + Similar to selectors, updater terms are a class of function-like terms of + updater Sort (Sort::isDatatypeUpdater), and should be used as the first + argument of Terms of kind APPLY_UPDATER.
        +
        +
        Returns:
        +
        The Updater term.
        +
        +
      • +
      + + + +
        +
      • +

        getCodomainSort

        +
        public Sort getCodomainSort()
        +
        +
        Returns:
        +
        The Codomain sort of this selector.
        +
        +
      • +
      + + + +
        +
      • +

        isNull

        +
        public boolean isNull()
        +
        +
        Returns:
        +
        True If this DatatypeSelector is a null object.
        +
        +
      • +
      + + + +
        +
      • +

        toString

        +
        protected java.lang.String toString​(long pointer)
        +
        +
        Returns:
        +
        A String representation of this datatype selector.
        +
        +
      • +
      + + + +
        +
      • +

        hashCode

        +
        public int hashCode()
        +
        Get the hash value of a datatype selector.
        +
        +
        Overrides:
        +
        hashCode in class java.lang.Object
        +
        Returns:
        +
        The hash value.
        +
        +
      • +
      + + + +
        +
      • +

        getPointer

        +
        public long getPointer()
        +
      • +
      + + + +
        +
      • +

        deletePointer

        +
        public void deletePointer()
        +
      • +
      + + + +
        +
      • +

        toString

        +
        public java.lang.String toString()
        +
        +
        Overrides:
        +
        toString in class java.lang.Object
        +
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Grammar.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Grammar.html new file mode 100644 index 0000000000..c76c4749f6 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Grammar.html @@ -0,0 +1,598 @@ + + + + + +Grammar + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Class Grammar

+
+
+ +
+
    +
  • +
    +
    public class Grammar
    +extends java.lang.Object
    +
    A Sygus Grammar. + + This class can be used to define a context-free grammar of terms. Its + interface coincides with the definition of grammars (GrammarDef) in + the SyGuS IF 2.1 standard.
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Field Summary

      + + + + + + + + + + + + +
      Fields 
      Modifier and TypeFieldDescription
      protected longpointer 
      +
    • +
    +
    + +
    +
      +
    • + + +

      Constructor Summary

      + + + + + + + + + + +
      Constructors 
      ConstructorDescription
      Grammar​(Grammar grammar) 
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethodDescription
      voidaddAnyConstant​(Term ntSymbol) +
      Allow ntSymbol to be an arbitrary constant.
      +
      voidaddAnyVariable​(Term ntSymbol) +
      Allow ntSymbol to be any input variable to corresponding + synth-fun or synth-inv with the same sort as + ntSymbol.
      +
      voidaddRule​(Term ntSymbol, + Term rule) +
      Add rule to the set of rules corresponding to ntSymbol.
      +
      voidaddRules​(long pointer, + long ntSymbolPointer, + long[] rulePointers) 
      voidaddRules​(Term ntSymbol, + Term[] rules) +
      Add rules to the set of rules corresponding to ntSymbol.
      +
      voiddeletePointer() 
      protected voiddeletePointer​(long pointer) 
      booleanequals​(java.lang.Object g) +
      Referential equality operator.
      +
      longgetPointer() 
      inthashCode() +
      Get the hash value of a grammar.
      +
      booleanisNull() +
      Determine if this is the null grammar.
      +
      java.lang.StringtoString() 
      protected java.lang.StringtoString​(long pointer) 
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
      • +
      +
    • +
    +
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        pointer

        +
        protected long pointer
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        Grammar

        +
        public Grammar​(Grammar grammar)
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        deletePointer

        +
        protected void deletePointer​(long pointer)
        +
      • +
      + + + +
        +
      • +

        isNull

        +
        public boolean isNull()
        +
        Determine if this is the null grammar.
        +
        +
        Returns:
        +
        True if this Grammar is the null grammar.
        +
        +
      • +
      + + + +
        +
      • +

        equals

        +
        public boolean equals​(java.lang.Object g)
        +
        Referential equality operator.
        +
        +
        Overrides:
        +
        equals in class java.lang.Object
        +
        Parameters:
        +
        g - The grammar to compare to for equality.
        +
        Returns:
        +
        True if the gramamrs point to the same internal grammar object.
        +
        +
      • +
      + + + +
        +
      • +

        addRule

        +
        public void addRule​(Term ntSymbol,
        +                    Term rule)
        +
        Add rule to the set of rules corresponding to ntSymbol.
        +
        +
        Parameters:
        +
        ntSymbol - the non-terminal to which the rule is added.
        +
        rule - the rule to add.
        +
        +
      • +
      + + + +
        +
      • +

        addRules

        +
        public void addRules​(Term ntSymbol,
        +                     Term[] rules)
        +
        Add rules to the set of rules corresponding to ntSymbol.
        +
        +
        Parameters:
        +
        ntSymbol - the non-terminal to which the rules are added.
        +
        rules - the rules to add.
        +
        +
      • +
      + + + +
        +
      • +

        addRules

        +
        public void addRules​(long pointer,
        +                     long ntSymbolPointer,
        +                     long[] rulePointers)
        +
      • +
      + + + +
        +
      • +

        addAnyConstant

        +
        public void addAnyConstant​(Term ntSymbol)
        +
        Allow ntSymbol to be an arbitrary constant.
        +
        +
        Parameters:
        +
        ntSymbol - the non-terminal allowed to be any constant.
        +
        +
      • +
      + + + +
        +
      • +

        addAnyVariable

        +
        public void addAnyVariable​(Term ntSymbol)
        +
        Allow ntSymbol to be any input variable to corresponding + synth-fun or synth-inv with the same sort as + ntSymbol.
        +
        +
        Parameters:
        +
        ntSymbol - the non-terminal allowed to be any input constant.
        +
        +
      • +
      + + + +
        +
      • +

        toString

        +
        protected java.lang.String toString​(long pointer)
        +
        +
        Returns:
        +
        A String representation of this grammar.
        +
        +
      • +
      + + + +
        +
      • +

        hashCode

        +
        public int hashCode()
        +
        Get the hash value of a grammar.
        +
        +
        Overrides:
        +
        hashCode in class java.lang.Object
        +
        Returns:
        +
        The hash value.
        +
        +
      • +
      + + + +
        +
      • +

        getPointer

        +
        public long getPointer()
        +
      • +
      + + + +
        +
      • +

        deletePointer

        +
        public void deletePointer()
        +
      • +
      + + + +
        +
      • +

        toString

        +
        public java.lang.String toString()
        +
        +
        Overrides:
        +
        toString in class java.lang.Object
        +
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/IOracle.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/IOracle.html new file mode 100644 index 0000000000..6ca0d2ad1f --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/IOracle.html @@ -0,0 +1,260 @@ + + + + + +IOracle + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Interface IOracle

+
+
+
+
    +
  • +
    +
    Functional Interface:
    +
    This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
    +
    +
    +
    @FunctionalInterface
    +public interface IOracle
    +
  • +
+
+
+ +
+
+ +
+
+
+ + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/InputParser.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/InputParser.html new file mode 100644 index 0000000000..cfcf64fbc0 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/InputParser.html @@ -0,0 +1,663 @@ + + + + + +InputParser + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Class InputParser

+
+
+ +
+
    +
  • +
    +
    public class InputParser
    +extends java.lang.Object
    +
    This class is the main interface for retrieving commands and expressions + from an input using a parser. + + After construction, it is expected that an input is first set via + setFileInput(InputLanguage, String), + setStringInput(InputLanguage, String, String), + or setIncrementalStringInput(InputLanguage, String) and + appendIncrementalStringInput(String). Then, the methods + nextCommand() and nextTerm() can be + invoked to parse the input. + + The input parser interacts with a symbol manager, which determines which + symbols are defined in the current context, based on the background logic + and user-defined symbols. If no symbol manager is provided, then the + input parser will construct (an initially empty) one. + + If provided, the symbol manager must have a logic that is compatible + with the provided solver. That is, if both the solver and symbol + manager have their logics set (SymbolManager.isLogicSet() and + Solver.isLogicSet(), then their logics must be the same. + + Upon setting an input source, if either the solver (resp. symbol + manager) has its logic set, then the symbol manager (resp. solver) is set to + use that logic, if its logic is not already set.
    +
  • +
+
+
+ +
+
+
    +
  • + +
    +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        pointer

        +
        protected long pointer
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        InputParser

        +
        public InputParser​(Solver solver,
        +                   SymbolManager sm)
        +
        Construct an input parser
        +
        +
        Parameters:
        +
        solver - The solver (e.g. for constructing terms and sorts)
        +
        sm - The symbol manager, which contains a symbol table that maps + symbols to terms and sorts. Must have a logic that is compatible + with the solver.
        +
        +
      • +
      + + + +
        +
      • +

        InputParser

        +
        public InputParser​(Solver solver)
        +
        Construct an input parser with an initially empty symbol manager.
        +
        +
        Parameters:
        +
        solver - The solver (e.g. for constructing terms and sorts).
        +
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        deletePointer

        +
        protected void deletePointer​(long pointer)
        +
      • +
      + + + +
        +
      • +

        toString

        +
        protected java.lang.String toString​(long pointer)
        +
      • +
      + + + +
        +
      • +

        getSolver

        +
        public Solver getSolver()
        +
        +
        Returns:
        +
        The underlying solver of this input parser
        +
        +
      • +
      + + + +
        +
      • +

        getSymbolManager

        +
        public SymbolManager getSymbolManager()
        +
        +
        Returns:
        +
        The underlying symbol manager of this input parser.
        +
        +
      • +
      + + + +
        +
      • +

        setFileInput

        +
        public void setFileInput​(InputLanguage lang,
        +                         java.lang.String fileName)
        +
        Set the input for the given file.
        +
        +
        Parameters:
        +
        lang - the input language (e.g. InputLanguage.SMT_LIB_2_6).
        +
        fileName - the input file name.
        +
        +
      • +
      + + + +
        +
      • +

        setStringInput

        +
        public void setStringInput​(InputLanguage lang,
        +                           java.lang.String input,
        +                           java.lang.String name)
        +
        Set the input to the given concrete input string.
        +
        +
        Parameters:
        +
        lang - The input language.
        +
        input - The input string.
        +
        name - The name of the stream, for use in error messages.
        +
        +
      • +
      + + + +
        +
      • +

        setIncrementalStringInput

        +
        public void setIncrementalStringInput​(InputLanguage lang,
        +                                      java.lang.String name)
        +
        Set that we will be feeding strings to this parser via + appendIncrementalStringInput below.
        +
        +
        Parameters:
        +
        lang - The input language.
        +
        name - The name of the stream, for use in error messages.
        +
        +
      • +
      + + + +
        +
      • +

        appendIncrementalStringInput

        +
        public void appendIncrementalStringInput​(java.lang.String input)
        +
        Append string to the input being parsed by this parser. Should be + called after calling setIncrementalStringInput.
        +
        +
        Parameters:
        +
        input - The input string.
        +
        +
      • +
      + + + +
        +
      • +

        nextCommand

        +
        public Command nextCommand()
        +
        Parse and return the next command. Will initialize the logic to "ALL" + or the forced logic if no logic is set prior to this point and a command + is read that requires initializing the logic.
        +
        +
        Returns:
        +
        The parsed command. This is the null command if no command was + read.
        +
        +
      • +
      + + + +
        +
      • +

        nextTerm

        +
        public Term nextTerm()
        +
        Parse and return the next term. Requires setting the logic prior + to this point.
        +
        +
        Returns:
        +
        The parsed term.
        +
        +
      • +
      + + + +
        +
      • +

        done

        +
        public boolean done()
        +
        +
        Returns:
        +
        True if this parser done reading input.
        +
        +
      • +
      + + + +
        +
      • +

        getPointer

        +
        public long getPointer()
        +
      • +
      + + + +
        +
      • +

        deletePointer

        +
        public void deletePointer()
        +
      • +
      + + + +
        +
      • +

        toString

        +
        public java.lang.String toString()
        +
        +
        Overrides:
        +
        toString in class java.lang.Object
        +
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Kind.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Kind.html new file mode 100644 index 0000000000..e0178c5cbd --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Kind.html @@ -0,0 +1,12870 @@ + + + + + +Kind + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Enum Kind

+
+
+ +
+
    +
  • +
    +
    All Implemented Interfaces:
    +
    java.io.Serializable, java.lang.Comparable<Kind>
    +
    +
    +
    public enum Kind
    +extends java.lang.Enum<Kind>
    +
  • +
+
+
+ +
+
+
    +
  • + +
    +
      +
    • + + +

      Enum Constant Detail

      + + + +
        +
      • +

        INTERNAL_KIND

        +
        public static final Kind INTERNAL_KIND
        +
        Internal kind. + + This kind serves as an abstraction for internal kinds that are not exposed + via the API but may appear in terms returned by API functions, e.g., + when querying the simplified form of a term.
        +
        +
        Note:
        +
        Should never be created via the API.
        +
        +
      • +
      + + + +
        +
      • +

        UNDEFINED_KIND

        +
        public static final Kind UNDEFINED_KIND
        +
        Undefined kind.
        +
        +
        Note:
        +
        Should never be exposed or created via the API.
        +
        +
      • +
      + + + +
        +
      • +

        NULL_TERM

        +
        public static final Kind NULL_TERM
        +
        Null kind. + + The kind of a null term (Term()).
        +
        +
        Note:
        +
        May not be explicitly created via API functions other than + Term().
        +
        +
      • +
      + + + +
        +
      • +

        UNINTERPRETED_SORT_VALUE

        +
        public static final Kind UNINTERPRETED_SORT_VALUE
        +
        The value of an uninterpreted constant.
        +
        +
        Note:
        +
        May be returned as the result of an API call, but terms of this + kind may not be created explicitly via the API and may not + appear in assertions.
        +
        +
      • +
      + + + + + + + + + + + + + + + +
        +
      • +

        VARIABLE

        +
        public static final Kind VARIABLE
        +
        (Bound) variable. + +
        +
        +
        Note:
        +
        Only permitted in bindings and in lambda and quantifier bodies.
        +
        +
      • +
      + + + +
        +
      • +

        SKOLEM

        +
        public static final Kind SKOLEM
        +
        A Skolem.
        +
        +
        Note:
        +
        Represents an internally generated term. Information on the + skolem is available via the calls `Solver.getSkolemId` and + `Solver.getSkolemIndices`.
        +
        +
      • +
      + + + + + + + + + + + +
        +
      • +

        WITNESS

        +
        public static final Kind WITNESS
        +
        Witness. + + The syntax of a witness term is similar to a quantified formula except that + only one variable is allowed. + For example, the term + + .. code. smtlib + + (witness ((x S)) F) + + returns an element \(x\) of Sort \(S\) and asserts formula + \(F\). + + The witness operator behaves like the description operator + (see https: + no \(x\) that satisfies \(F\). But if such \(x\) exists, the + witness operator does not enforce the following axiom which ensures + uniqueness up to logical equivalence: + + \[ + + \forall x. F \equiv G \Rightarrow witness~x. F = witness~x. G + \] + For example, if there are two elements of Sort \(S\) that satisfy + formula \(F\), then the following formula is satisfiable: + + .. code. smtlib + + (distinct + (witness ((x Int)) F) + (witness ((x Int)) F)) + + + +
        +
        +
        Note:
        +
        This kind is primarily used internally, but may be returned in + models (e.g., for arithmetic terms in non-linear queries). However, + it is not supported by the parser. Moreover, the user of the API + should be cautious when using this operator. In general, all witness + terms (witness ((x Int)) F) should be such that ``(exists ((x Int)) + F)`` is a valid formula. If this is not the case, then the semantics + in formulas that use witness terms may be unintuitive. For example, + the following formula is unsatisfiable: + ``(or (= (witness ((x Int)) false) 0) (not (= (witness ((x Int)) + false) 0)), whereas notice that (or (= z 0) (not (= z 0)))`` is + true for any \(z\).
        +
        +
      • +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        +
      • +

        CARDINALITY_CONSTRAINT

        +
        public static final Kind CARDINALITY_CONSTRAINT
        +
        Cardinality constraint on uninterpreted sort. + + + Interpreted as a predicate that is true when the cardinality of + uinterpreted Sort \(S\) is less than or equal to an upper bound. + + +
        +
        +
        Note:
        +
        This kind is experimental and may be changed or removed in + future versions.
        +
        +
      • +
      + + + +
        +
      • +

        HO_APPLY

        +
        public static final Kind HO_APPLY
        +
        Higher-order applicative encoding of function application, left + associative. + +
        +
      • +
      + + + + + + + + + + + +
        +
      • +

        IAND

        +
        public static final Kind IAND
        +
        Integer and. + + + Operator for bit-wise AND over integers, parameterized by a (positive) + bit-width \(k\). + + .. code. smtlib + + ((_ iand k) i_1 i_2) + + is equivalent to + + .. code. smtlib + + ((_ iand k) i_1 i_2) + (bv2int (bvand ((_ int2bv k) i_1) ((_ int2bv k) i_2))) + + for all integers i_1, i_2. + +
        +
      • +
      + + + + + + + + + + + + + + + + + + + +
        +
      • +

        DIVISION_TOTAL

        +
        public static final Kind DIVISION_TOTAL
        +
        Real division, division by 0 defined to be 0, left associative. + +
        +
        +
        Note:
        +
        This kind is experimental and may be changed or removed in + future versions.
        +
        +
      • +
      + + + + + + + +
        +
      • +

        INTS_DIVISION_TOTAL

        +
        public static final Kind INTS_DIVISION_TOTAL
        +
        Integer division, division by 0 defined to be 0, left associative. + +
        +
        +
        Note:
        +
        This kind is experimental and may be changed or removed in + future versions.
        +
        +
      • +
      + + + + + + + +
        +
      • +

        INTS_MODULUS_TOTAL

        +
        public static final Kind INTS_MODULUS_TOTAL
        +
        Integer modulus, t modulus by 0 defined to be t. + +
        +
        +
        Note:
        +
        This kind is experimental and may be changed or removed in + future versions.
        +
        +
      • +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        +
      • +

        DIVISIBLE

        +
        public static final Kind DIVISIBLE
        +
        Operator for the divisibility-by-\(k\) predicate. + +
        +
      • +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        +
      • +

        PI

        +
        public static final Kind PI
        +
        Pi constant. + +
        +
        +
        Note:
        +
        PI is considered a special symbol of Sort + Real, but is not a Real value, i.e., + Term.isRealValue() will return false.
        +
        +
      • +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        +
      • +

        BITVECTOR_UDIV

        +
        public static final Kind BITVECTOR_UDIV
        +
        Unsigned bit-vector division. + + Truncates towards 0. If the divisor is zero, the result is all ones. + +
        +
      • +
      + + + +
        +
      • +

        BITVECTOR_UREM

        +
        public static final Kind BITVECTOR_UREM
        +
        Unsigned bit-vector remainder. + + Remainder from unsigned bit-vector division. If the modulus is zero, the + result is the dividend. + +
        +
      • +
      + + + +
        +
      • +

        BITVECTOR_SDIV

        +
        public static final Kind BITVECTOR_SDIV
        +
        Signed bit-vector division. + + Two's complement signed division of two bit-vectors. If the divisor is + zero and the dividend is positive, the result is all ones. If the divisor + is zero and the dividend is negative, the result is one. + +
        +
      • +
      + + + +
        +
      • +

        BITVECTOR_SREM

        +
        public static final Kind BITVECTOR_SREM
        +
        Signed bit-vector remainder (sign follows dividend). + + Two's complement signed remainder of two bit-vectors where the sign + follows the dividend. If the modulus is zero, the result is the dividend. + +
        +
      • +
      + + + +
        +
      • +

        BITVECTOR_SMOD

        +
        public static final Kind BITVECTOR_SMOD
        +
        Signed bit-vector remainder (sign follows divisor). + + Two's complement signed remainder where the sign follows the divisor. If + the modulus is zero, the result is the dividend. + +
        +
      • +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        +
      • +

        BITVECTOR_ITE

        +
        public static final Kind BITVECTOR_ITE
        +
        Bit-vector if-then-else. + + Same semantics as regular ITE, but condition is bit-vector of size 1. + +
        +
      • +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        +
      • +

        BITVECTOR_EXTRACT

        +
        public static final Kind BITVECTOR_EXTRACT
        +
        Bit-vector extract. + +
          +
        • Arity: 1 + +
            +
          • 1: Term of bit-vector Sort + +
          +
        • +
        • Indices: 2 + +
            +
          • 1: The upper bit index. +
          • +
          • 2: The lower bit index. + +
          +
        • +
        • Create Term of this Kind with: + + +
        • +
        • Create Op of this kind with: + + +
        +
      • +
      + + + +
        +
      • +

        BITVECTOR_REPEAT

        +
        public static final Kind BITVECTOR_REPEAT
        +
        Bit-vector repeat. + +
          +
        • Arity: 1 + +
            +
          • 1: Term of bit-vector Sort + +
          +
        • +
        • Indices: 1 + +
            +
          • 1: The number of times to repeat the given term. + +
          +
        • +
        • Create Term of this Kind with: + + +
        • +
        • Create Op of this kind with: + + +
        +
      • +
      + + + +
        +
      • +

        BITVECTOR_ZERO_EXTEND

        +
        public static final Kind BITVECTOR_ZERO_EXTEND
        +
        Bit-vector zero extension. + +
          +
        • Arity: 1 + +
            +
          • 1: Term of bit-vector Sort + +
          +
        • +
        • Indices: 1 + +
            +
          • 1: The number of zeroes to extend the given term with. + +
          +
        • +
        • Create Term of this Kind with: + + +
        • +
        • Create Op of this kind with: + + +
        +
      • +
      + + + +
        +
      • +

        BITVECTOR_SIGN_EXTEND

        +
        public static final Kind BITVECTOR_SIGN_EXTEND
        +
        Bit-vector sign extension. + +
          +
        • Arity: 1 + +
            +
          • 1: Term of bit-vector Sort + +
          +
        • +
        • Indices: 1 + +
            +
          • 1: The number of bits (of the value of the sign bit) to extend the given term with. + +
          +
        • +
        • Create Term of this Kind with: + + +
        • +
        • Create Op of this kind with: + + +
        +
      • +
      + + + +
        +
      • +

        BITVECTOR_ROTATE_LEFT

        +
        public static final Kind BITVECTOR_ROTATE_LEFT
        +
        Bit-vector rotate left. + +
          +
        • Arity: 1 + +
            +
          • 1: Term of bit-vector Sort + +
          +
        • +
        • Indices: 1 + +
            +
          • 1: The number of bits to rotate the given term left. + +
          +
        • +
        • Create Term of this Kind with: + + +
        • +
        • Create Op of this kind with: + + +
        +
      • +
      + + + +
        +
      • +

        BITVECTOR_ROTATE_RIGHT

        +
        public static final Kind BITVECTOR_ROTATE_RIGHT
        +
        Bit-vector rotate right. + +
          +
        • Arity: 1 + +
            +
          • 1: Term of bit-vector Sort + +
          +
        • +
        • Indices: 1 + +
            +
          • 1: The number of bits to rotate the given term right. + +
          +
        • +
        • Create Term of this Kind with: + + +
        • +
        • Create Op of this kind with: + + +
        +
      • +
      + + + +
        +
      • +

        INT_TO_BITVECTOR

        +
        public static final Kind INT_TO_BITVECTOR
        +
        Conversion from Int to bit-vector. + +
          +
        • Arity: 1 + +
            +
          • 1: Term of Sort Int + +
          +
        • +
        • Indices: 1 + +
            +
          • 1: The size of the bit-vector to convert to. + +
          +
        • +
        • Create Term of this Kind with: + + +
        • +
        • Create Op of this kind with: + + +
        +
      • +
      + + + + + + + +
        +
      • +

        BITVECTOR_FROM_BOOLS

        +
        public static final Kind BITVECTOR_FROM_BOOLS
        +
        Converts a list of Bool terms to a bit-vector. + +
          +
        • Arity: n > 0 + +
            +
          • 1..n: Terms of Sort Bool + + +
          +
        +
        +
        Note:
        +
        May be returned as the result of an API call, but terms of this + kind may not be created explicitly via the API and may not + appear in assertions.
        +
        +
      • +
      + + + +
        +
      • +

        BITVECTOR_BIT

        +
        public static final Kind BITVECTOR_BIT
        +
        Retrieves the bit at the given index from a bit-vector as a Bool term. + +
          +
        • Arity: 1 + +
            +
          • 1: Term of bit-vector Sort + +
          +
        • +
        • Indices: 1 + +
            +
          • 1: The bit index + + +
          +
        +
        +
        Note:
        +
        May be returned as the result of an API call, but terms of this + kind may not be created explicitly via the API and may not + appear in assertions.
        +
        +
      • +
      + + + + + + + + + + + + + + + +
        +
      • +

        FINITE_FIELD_BITSUM

        +
        public static final Kind FINITE_FIELD_BITSUM
        +
        Bitsum of two or more finite field elements: x + 2y + 4z + ... + +
        +
      • +
      + + + + + + + +
        +
      • +

        CONST_FLOATINGPOINT

        +
        public static final Kind CONST_FLOATINGPOINT
        +
        Floating-point constant, created from IEEE-754 bit-vector representation + of the floating-point value. + +
        +
      • +
      + + + + + + + +
        +
      • +

        FLOATINGPOINT_FP

        +
        public static final Kind FLOATINGPOINT_FP
        +
        Create floating-point literal from bit-vector triple. + + +
          +
        • Arity: 3 + +
            +
          • 1: Term of bit-vector Sort of size `1` (sign bit) +
          • +
          • 2: Term of bit-vector Sort of exponent size (exponent) +
          • +
          • 3: Term of bit-vector Sort of significand size - 1 (significand without hidden bit) + +
          +
        • +
        • Create Term of this Kind with: + + +
        • +
        • Create Op of this kind with: + + +
        +
      • +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        +
      • +

        FLOATINGPOINT_TO_FP_FROM_IEEE_BV

        +
        public static final Kind FLOATINGPOINT_TO_FP_FROM_IEEE_BV
        +
        Conversion to floating-point from IEEE-754 bit-vector. + +
          +
        • Arity: 1 + +
            +
          • 1: Term of bit-vector Sort + +
          +
        • +
        • Indices: 2 + +
            +
          • 1: The exponent size +
          • +
          • 2: The significand size + +
          +
        • +
        • Create Term of this Kind with: + + +
        • +
        • Create Op of this kind with: + + +
        +
      • +
      + + + +
        +
      • +

        FLOATINGPOINT_TO_FP_FROM_FP

        +
        public static final Kind FLOATINGPOINT_TO_FP_FROM_FP
        +
        Conversion to floating-point from floating-point. + +
          +
        • Arity: 2 + +
            +
          • 1: Term of Sort RoundingMode +
          • +
          • 2: Term of floating-point Sort + +
          +
        • +
        • Indices: 2 + +
            +
          • 1: The exponent size +
          • +
          • 2: The significand size + +
          +
        • +
        • Create Term of this Kind with: + + +
        • +
        • Create Op of this kind with: + + +
        +
      • +
      + + + +
        +
      • +

        FLOATINGPOINT_TO_FP_FROM_REAL

        +
        public static final Kind FLOATINGPOINT_TO_FP_FROM_REAL
        +
        Conversion to floating-point from Real. + +
          +
        • Arity: 2 + +
            +
          • 1: Term of Sort RoundingMode +
          • +
          • 2: Term of Sort Real + +
          +
        • +
        • Indices: 2 + +
            +
          • 1: The exponent size +
          • +
          • 2: The significand size + +
          +
        • +
        • Create Term of this Kind with: + + +
        • +
        • Create Op of this kind with: + + +
        +
      • +
      + + + +
        +
      • +

        FLOATINGPOINT_TO_FP_FROM_SBV

        +
        public static final Kind FLOATINGPOINT_TO_FP_FROM_SBV
        +
        Conversion to floating-point from signed bit-vector. + +
          +
        • Arity: 2 + +
            +
          • 1: Term of Sort RoundingMode +
          • +
          • 2: Term of bit-vector Sort + +
          +
        • +
        • Indices: 2 + +
            +
          • 1: The exponent size +
          • +
          • 2: The significand size + +
          +
        • +
        • Create Term of this Kind with: + + +
        • +
        • Create Op of this kind with: + + +
        +
      • +
      + + + +
        +
      • +

        FLOATINGPOINT_TO_FP_FROM_UBV

        +
        public static final Kind FLOATINGPOINT_TO_FP_FROM_UBV
        +
        Conversion to floating-point from unsigned bit-vector. + +
          +
        • Arity: 2 + +
            +
          • 1: Term of Sort RoundingMode +
          • +
          • 2: Term of bit-vector Sort + +
          +
        • +
        • Indices: 2 + +
            +
          • 1: The exponent size +
          • +
          • 2: The significand size + +
          +
        • +
        • Create Term of this Kind with: + + +
        • +
        • Create Op of this kind with: + + +
        +
      • +
      + + + +
        +
      • +

        FLOATINGPOINT_TO_UBV

        +
        public static final Kind FLOATINGPOINT_TO_UBV
        +
        Conversion to unsigned bit-vector from floating-point. + +
          +
        • Arity: 2 + +
            +
          • 1: Term of Sort RoundingMode +
          • +
          • 2: Term of floating-point Sort + +
          +
        • +
        • Indices: 1 + +
            +
          • 1: The size of the bit-vector to convert to. + +
          +
        • +
        • Create Term of this Kind with: + + +
        • +
        • Create Op of this kind with: + + +
        +
      • +
      + + + +
        +
      • +

        FLOATINGPOINT_TO_SBV

        +
        public static final Kind FLOATINGPOINT_TO_SBV
        +
        Conversion to signed bit-vector from floating-point. + +
          +
        • Arity: 2 + +
            +
          • 1: Term of Sort RoundingMode +
          • +
          • 2: Term of floating-point Sort + +
          +
        • +
        • Indices: 1 + +
            +
          • 1: The size of the bit-vector to convert to. + +
          +
        • +
        • Create Term of this Kind with: + + +
        • +
        • Create Op of this kind with: + + +
        +
      • +
      + + + + + + + + + + + + + + + + + + + +
        +
      • +

        EQ_RANGE

        +
        public static final Kind EQ_RANGE
        +
        Equality over arrays \(a\) and \(b\) over a given range + \([i,j]\), i.e., + + \[ + + \forall k . i \leq k \leq j \Rightarrow a[k] = b[k] + \] + + +
          +
        • Arity: 4 + +
            +
          • 1: Term of array Sort (first array) +
          • +
          • 2: Term of array Sort (second array) +
          • +
          • 3: Term of array index Sort (lower bound of range, inclusive) +
          • +
          • 4: Term of array index Sort (upper bound of range, inclusive) + +
          +
        • +
        • Create Term of this Kind with: + + +
        • +
        • Create Op of this kind with: + + +
        +
        +
        Note:
        +
        This kind is experimental and may be changed or removed in + future versions., We currently support the creation of array equalities over index + Sorts bit-vector, floating-point, Int and Real. + Requires to enable option + :ref:`arrays-exp<lbl-option-arrays-exp>`.
        +
        +
      • +
      + + + + + + + + + + + + + + + +
        +
      • +

        APPLY_UPDATER

        +
        public static final Kind APPLY_UPDATER
        +
        Datatype update application. + +
        +
        +
        Note:
        +
        Does not change the datatype argument if misapplied.
        +
        +
      • +
      + + + +
        +
      • +

        MATCH

        +
        public static final Kind MATCH
        +
        Match expression. + + This kind is primarily used in the parser to support the + SMT-LIBv2 match expression. + + For example, the SMT-LIBv2 syntax for the following match term + + .. code. smtlib + + (match l (((cons h t) h) (nil 0))) + + is represented by the AST + + .. code. lisp + + (MATCH l + (MATCH_BIND_CASE (VARIABLE_LIST h t) (cons h t) h) + (MATCH_CASE nil 0)) + + Terms of kind MATCH_CASE are constant case expressions, + which are used for nullary constructors. Kind + MATCH_BIND_CASE is used for constructors with selectors + and variable match patterns. If not all constructors are covered, at least + one catch-all variable pattern must be included. + +
        +
      • +
      + + + +
        +
      • +

        MATCH_CASE

        +
        public static final Kind MATCH_CASE
        +
        Match case for nullary constructors. + + A (constant) case expression to be used within a match expression. + + +
        +
      • +
      + + + +
        +
      • +

        MATCH_BIND_CASE

        +
        public static final Kind MATCH_BIND_CASE
        +
        Match case with binders, for constructors with selectors and variable + patterns. + + A (non-constant) case expression to be used within a match expression. + + +
          +
        • Arity: 3 + +
            +
          • For variable patterns: + +
              +
            • 1: Term of kind VARIABLE_LIST (containing the free variable of the case) +
            • +
            • 2: Term of kind VARIABLE (the pattern expression, the free variable of the case) +
            • +
            • 3: Term of any Sort (the term the pattern evaluates to) + +
            +
          +
        • +
        • For constructors with selectors: + +
            +
          • 1: Term of kind VARIABLE_LIST (containing the free variable of the case) +
          • +
          • 2: Term of kind APPLY_CONSTRUCTOR (the pattern expression, applying the set of variables to the constructor) +
          • +
          • 3: Term of any Sort (the term the match term evaluates to) + + +
          +
        • +
        • Create Term of this Kind with: + + +
        • +
        • Create Op of this kind with: + + +
        +
      • +
      + + + +
        +
      • +

        TUPLE_PROJECT

        +
        public static final Kind TUPLE_PROJECT
        +
        Tuple projection. + + This operator takes a tuple as an argument and returns a tuple obtained by + concatenating components of its argument at the provided indices. + + For example, + + .. code. smtlib + + ((_ tuple.project 1 2 2 3 1) (tuple 10 20 30 40)) + + yields + + .. code. smtlib + + (tuple 20 30 30 40 20) + + +
        +
      • +
      + + + +
        +
      • +

        NULLABLE_LIFT

        +
        public static final Kind NULLABLE_LIFT
        +
        Lifting operator for nullable terms. + This operator lifts a built-in operator or a user-defined function + to nullable terms. + For built-in kinds use mkNullableLift. + For user-defined functions use mkTerm. + +
        +
      • +
      + + + +
        +
      • +

        SEP_NIL

        +
        public static final Kind SEP_NIL
        +
        Separation logic nil. + +
        +
        +
        Note:
        +
        This kind is experimental and may be changed or removed in + future versions.
        +
        +
      • +
      + + + +
        +
      • +

        SEP_EMP

        +
        public static final Kind SEP_EMP
        +
        Separation logic empty heap. + +
        +
        +
        Note:
        +
        This kind is experimental and may be changed or removed in + future versions.
        +
        +
      • +
      + + + +
        +
      • +

        SEP_PTO

        +
        public static final Kind SEP_PTO
        +
        Separation logic points-to relation. + +
        +
        +
        Note:
        +
        This kind is experimental and may be changed or removed in + future versions.
        +
        +
      • +
      + + + +
        +
      • +

        SEP_STAR

        +
        public static final Kind SEP_STAR
        +
        Separation logic star. + +
        +
        +
        Note:
        +
        This kind is experimental and may be changed or removed in + future versions.
        +
        +
      • +
      + + + +
        +
      • +

        SEP_WAND

        +
        public static final Kind SEP_WAND
        +
        Separation logic magic wand. + +
          +
        • Arity: 2 + +
            +
          • 1: Terms of Sort Bool (the antecendant of the magic wand constraint) +
          • +
          • 2: Terms of Sort Bool (conclusion of the magic wand constraint, + which is asserted to hold in all heaps that are disjoint + extensions of the antecedent) + +
          +
        • +
        • Create Term of this Kind with: + + +
        • +
        • Create Op of this kind with: + + +
        +
        +
        Note:
        +
        This kind is experimental and may be changed or removed in + future versions.
        +
        +
      • +
      + + + +
        +
      • +

        SET_EMPTY

        +
        public static final Kind SET_EMPTY
        +
        Empty set. + +
        +
      • +
      + + + + + + + + + + + + + + + + + + + +
        +
      • +

        SET_MEMBER

        +
        public static final Kind SET_MEMBER
        +
        Set membership predicate. + + Determines if the given set element is a member of the second set. + +
        +
      • +
      + + + +
        +
      • +

        SET_SINGLETON

        +
        public static final Kind SET_SINGLETON
        +
        Singleton set. + + Construct a singleton set from an element given as a parameter. + The returned set has the same Sort as the element. + +
        +
      • +
      + + + + + + + + + + + + + + + +
        +
      • +

        SET_UNIVERSE

        +
        public static final Kind SET_UNIVERSE
        +
        Finite universe set. + + All set variables must be interpreted as subsets of it. + +
        +
        +
        Note:
        +
        SET_UNIVERSE is considered a special symbol of + the theory of sets and is not considered as a set value, i.e., + Term.isSetValue() will return false.
        +
        +
      • +
      + + + +
        +
      • +

        SET_COMPREHENSION

        +
        public static final Kind SET_COMPREHENSION
        +
        Set comprehension + + + A set comprehension is specified by a variable list \(x_1 ... x_n\), + a predicate \(P[x_1...x_n]\), and a term \(t[x_1...x_n]\). A + comprehension \(C\) with the above form has members given by the + following semantics: + + .. math. + + \forall y. ( \exists x_1...x_n. P[x_1...x_n] \wedge t[x_1...x_n] = y ) + \Leftrightarrow (set.member \; y \; C) + + where \(y\) ranges over the element Sort of the (set) Sort of the + comprehension. If \(t[x_1..x_n]\) is not provided, it is equivalent + to \(y\) in the above formula. + +
        +
        +
        Note:
        +
        This kind is experimental and may be changed or removed in + future versions.
        +
        +
      • +
      + + + +
        +
      • +

        SET_CHOOSE

        +
        public static final Kind SET_CHOOSE
        +
        Set choose. + + + Select an element from a given set. For a set \(A = \{x\}\), the term + (set.choose \(A\)) is equivalent to the term \(x_1\). For an empty + set, it is an arbitrary value. For a set with cardinality > 1, it will + deterministically return an element in \(A\). + + +
        +
        +
        Note:
        +
        This kind is experimental and may be changed or removed in + future versions.
        +
        +
      • +
      + + + + + + + +
        +
      • +

        SET_IS_SINGLETON

        +
        public static final Kind SET_IS_SINGLETON
        +
        Set is singleton tester. + +
        +
        +
        Note:
        +
        This kind is experimental and may be changed or removed in + future versions.
        +
        +
      • +
      + + + +
        +
      • +

        SET_MAP

        +
        public static final Kind SET_MAP
        +
        Set map. + + + This operator applies the first argument, a function of + Sort \((\rightarrow S_1 \; S_2)\), to every element of the second + argument, a set of Sort (Set \(S_1\)), and returns a set of Sort + (Set \(S_2\)). + +
        +
        +
        Note:
        +
        This kind is experimental and may be changed or removed in + future versions.
        +
        +
      • +
      + + + +
        +
      • +

        SET_FILTER

        +
        public static final Kind SET_FILTER
        +
        Set filter. + + + This operator filters the elements of a set. + (set.filter \(p \; A\)) takes a predicate \(p\) of Sort + \((\rightarrow T \; Bool)\) as a first argument, and a set \(A\) + of Sort (Set \(T\)) as a second argument, and returns a subset of Sort + (Set \(T\)) that includes all elements of \(A\) that satisfy + \(p\). + +
        +
        +
        Note:
        +
        This kind is experimental and may be changed or removed in + future versions.
        +
        +
      • +
      + + + +
        +
      • +

        SET_ALL

        +
        public static final Kind SET_ALL
        +
        Set all. + + + This operator checks whether all elements of a set satisfy a predicate. + (set.all \(p \; A\)) takes a predicate \(p\) of Sort + \((\rightarrow T \; Bool)\) as a first argument, and a set \(A\) + of Sort (Set \(T\)) as a second argument, and returns true iff all + elements of \(A\) satisfy predicate \(p\). + +
        +
        +
        Note:
        +
        This kind is experimental and may be changed or removed in + future versions.
        +
        +
      • +
      + + + +
        +
      • +

        SET_SOME

        +
        public static final Kind SET_SOME
        +
        Set some. + + + This operator checks whether at least one element of a set satisfies a predicate. + (set.some \(p \; A\)) takes a predicate \(p\) of Sort + \((\rightarrow T \; Bool)\) as a first argument, and a set \(A\) + of Sort (Set \(T\)) as a second argument, and returns true iff at least + one element of \(A\) satisfies predicate \(p\). + +
        +
        +
        Note:
        +
        This kind is experimental and may be changed or removed in + future versions.
        +
        +
      • +
      + + + +
        +
      • +

        SET_FOLD

        +
        public static final Kind SET_FOLD
        +
        Set fold. + + + This operator combines elements of a set into a single value. + (set.fold \(f \; t \; A\)) folds the elements of set \(A\) + starting with Term \(t\) and using the combining function \(f\). + +
          +
        • Arity: 2 + +
            +
          • 1: Term of function Sort \((\rightarrow S_1 \; S_2 \; S_2)\) +
          • +
          • 2: Term of Sort \(S_2\) (the initial value) +
          • +
          • 3: Term of bag Sort (Set \(S_1\)) + + +
          +
        • +
        • Create Term of this Kind with: + + +
        +
        +
        Note:
        +
        This kind is experimental and may be changed or removed in + future versions.
        +
        +
      • +
      + + + + + + + +
        +
      • +

        RELATION_TABLE_JOIN

        +
        public static final Kind RELATION_TABLE_JOIN
        +
        Table join operator for relations has the form + \(((\_ \; rel.table\_join \; m_1 \; n_1 \; \dots \; m_k \; n_k) \; A \; B)\) + where \(m_1 \; n_1 \; \dots \; m_k \; n_k\) are natural numbers, + and \(A, B\) are relations. + This operator filters the product of two sets based on the equality of + projected tuples using indices \(m_1, \dots, m_k\) in relation \(A\), + and indices \(n_1, \dots, n_k\) in relation \(B\). + +
          +
        • Arity: 2 + +
            +
          • 1: Term of relation Sort + +
          • +
          • 2: Term of relation Sort + +
          +
        • +
        • Indices: n +
            +
          • 1..n: Indices of the projection + + +
          +
        • +
        • Create Term of this Kind with: + +
        • +
        • Create Op of this kind with: + +
        +
        +
        Note:
        +
        This kind is experimental and may be changed or removed in + future versions.
        +
        +
      • +
      + + + + + + + + + + + + + + + +
        +
      • +

        RELATION_JOIN_IMAGE

        +
        public static final Kind RELATION_JOIN_IMAGE
        +
        Relation join image. + +
        +
        +
        Note:
        +
        This kind is experimental and may be changed or removed in + future versions.
        +
        +
      • +
      + + + + + + + +
        +
      • +

        RELATION_GROUP

        +
        public static final Kind RELATION_GROUP
        +
        Relation group + + + \(((\_ \; rel.group \; n_1 \; \dots \; n_k) \; A)\) partitions tuples + of relation \(A\) such that tuples that have the same projection + with indices \(n_1 \; \dots \; n_k\) are in the same part. + It returns a set of relations of type \((Set \; T)\) where + \(T\) is the type of \(A\). + +
        +
        +
        Note:
        +
        This kind is experimental and may be changed or removed in + future versions.
        +
        +
      • +
      + + + +
        +
      • +

        RELATION_AGGREGATE

        +
        public static final Kind RELATION_AGGREGATE
        +
        Relation aggregate operator has the form + \(((\_ \; rel.aggr \; n_1 ... n_k) \; f \; i \; A)\) + where \(n_1, ..., n_k\) are natural numbers, + \(f\) is a function of type + \((\rightarrow (Tuple \; T_1 \; ... \; T_j)\; T \; T)\), + \(i\) has the type \(T\), + and \(A\) has type \((Relation \; T_1 \; ... \; T_j)\). + The returned type is \((Set \; T)\). + + This operator aggregates elements in A that have the same tuple projection + with indices n_1, ..., n_k using the combining function \(f\), + and initial value \(i\). + +
          +
        • Arity: 3 + +
            +
          • 1: Term of sort \((\rightarrow (Tuple \; T_1 \; ... \; T_j)\; T \; T)\) +
          • +
          • 2: Term of Sort \(T\) +
          • +
          • 3: Term of relation sort \(Relation T_1 ... T_j\) + +
          +
        • +
        • Indices: n +
            +
          • 1..n: Indices of the projection + +
          +
        • +
        • Create Term of this Kind with: + +
        • +
        • Create Op of this kind with: + +
        +
        +
        Note:
        +
        This kind is experimental and may be changed or removed in + future versions.
        +
        +
      • +
      + + + +
        +
      • +

        RELATION_PROJECT

        +
        public static final Kind RELATION_PROJECT
        +
        Relation projection operator extends tuple projection operator to sets. + +
        +
        +
        Note:
        +
        This kind is experimental and may be changed or removed in + future versions.
        +
        +
      • +
      + + + +
        +
      • +

        BAG_EMPTY

        +
        public static final Kind BAG_EMPTY
        +
        Empty bag. + +
        +
      • +
      + + + + + + + + + + + + + + + + + + + + + + + +
        +
      • +

        BAG_SUBBAG

        +
        public static final Kind BAG_SUBBAG
        +
        Bag inclusion predicate. + + Determine if multiplicities of the first bag are less than or equal to + multiplicities of the second bag. + +
        +
      • +
      + + + + + + + + + + + +
        +
      • +

        BAG_SETOF

        +
        public static final Kind BAG_SETOF
        +
        Bag setof. + + Eliminate duplicates in a given bag. The returned bag contains exactly the + same elements in the given bag, but with multiplicity one. + +
        +
        +
        Note:
        +
        This kind is experimental and may be changed or removed in + future versions.
        +
        +
      • +
      + + + +
        +
      • +

        BAG_MAKE

        +
        public static final Kind BAG_MAKE
        +
        Bag make. + + Construct a bag with the given element and given multiplicity. + +
        +
      • +
      + + + + + + + +
        +
      • +

        BAG_CHOOSE

        +
        public static final Kind BAG_CHOOSE
        +
        Bag choose. + + Select an element from a given bag. + + + For a bag \(A = \{(x,n)\}\) where \(n\) is the multiplicity, then + the term (choose \(A\)) is equivalent to the term \(x\). For an + empty bag, then it is an arbitrary value. For a bag that contains distinct + elements, it will deterministically return an element in \(A\). + + +
        +
        +
        Note:
        +
        This kind is experimental and may be changed or removed in + future versions.
        +
        +
      • +
      + + + +
        +
      • +

        BAG_MAP

        +
        public static final Kind BAG_MAP
        +
        Bag map. + + + This operator applies the first argument, a function of + Sort \((\rightarrow S_1 \; S_2)\), to every element of the second + argument, a set of Sort (Bag \(S_1\)), and returns a set of Sort + (Bag \(S_2\)). + +
        +
        +
        Note:
        +
        This kind is experimental and may be changed or removed in + future versions.
        +
        +
      • +
      + + + +
        +
      • +

        BAG_FILTER

        +
        public static final Kind BAG_FILTER
        +
        Bag filter. + + + This operator filters the elements of a bag. + (bag.filter \(p \; B\)) takes a predicate \(p\) of Sort + \((\rightarrow T \; Bool)\) as a first argument, and a bag \(B\) + of Sort (Bag \(T\)) as a second argument, and returns a subbag of Sort + (Bag \(T\)) that includes all elements of \(B\) that satisfy + \(p\) with the same multiplicity. + +
        +
        +
        Note:
        +
        This kind is experimental and may be changed or removed in + future versions.
        +
        +
      • +
      + + + +
        +
      • +

        BAG_FOLD

        +
        public static final Kind BAG_FOLD
        +
        Bag fold. + + + This operator combines elements of a bag into a single value. + (bag.fold \(f \; t \; B\)) folds the elements of bag \(B\) + starting with Term \(t\) and using the combining function \(f\). + +
          +
        • Arity: 2 + +
            +
          • 1: Term of function Sort \((\rightarrow S_1 \; S_2 \; S_2)\) +
          • +
          • 2: Term of Sort \(S_2\) (the initial value) +
          • +
          • 3: Term of bag Sort (Bag \(S_1\)) + + +
          +
        • +
        • Create Term of this Kind with: + + +
        +
        +
        Note:
        +
        This kind is experimental and may be changed or removed in + future versions.
        +
        +
      • +
      + + + +
        +
      • +

        BAG_PARTITION

        +
        public static final Kind BAG_PARTITION
        +
        Bag partition. + + + This operator partitions of a bag of elements into disjoint bags. + (bag.partition \(r \; B\)) partitions the elements of bag \(B\) + of type \((Bag \; E)\) based on the equivalence relations \(r\) of + type \((\rightarrow \; E \; E \; Bool)\). + It returns a bag of bags of type \((Bag \; (Bag \; E))\). + +
        +
        +
        Note:
        +
        This kind is experimental and may be changed or removed in + future versions.
        +
        +
      • +
      + + + +
        +
      • +

        TABLE_PRODUCT

        +
        public static final Kind TABLE_PRODUCT
        +
        Table cross product. + +
        +
        +
        Note:
        +
        This kind is experimental and may be changed or removed in + future versions.
        +
        +
      • +
      + + + +
        +
      • +

        TABLE_PROJECT

        +
        public static final Kind TABLE_PROJECT
        +
        Table projection operator extends tuple projection operator to tables. + +
        +
        +
        Note:
        +
        This kind is experimental and may be changed or removed in + future versions.
        +
        +
      • +
      + + + +
        +
      • +

        TABLE_AGGREGATE

        +
        public static final Kind TABLE_AGGREGATE
        +
        Table aggregate operator has the form + \(((\_ \; table.aggr \; n_1 ... n_k) \; f \; i \; A)\) + where \(n_1, ..., n_k\) are natural numbers, + \(f\) is a function of type + \((\rightarrow (Tuple \; T_1 \; ... \; T_j)\; T \; T)\), + \(i\) has the type \(T\), + and \(A\) has type \((Table \; T_1 \; ... \; T_j)\). + The returned type is \((Bag \; T)\). + + This operator aggregates elements in A that have the same tuple projection + with indices n_1, ..., n_k using the combining function \(f\), + and initial value \(i\). + +
          +
        • Arity: 3 + +
            +
          • 1: Term of sort \((\rightarrow (Tuple \; T_1 \; ... \; T_j)\; T \; T)\) +
          • +
          • 2: Term of Sort \(T\) +
          • +
          • 3: Term of table sort \(Table T_1 ... T_j\) + +
          +
        • +
        • Indices: n +
            +
          • 1..n: Indices of the projection + +
          +
        • +
        • Create Term of this Kind with: + +
        • +
        • Create Op of this kind with: + +
        +
        +
        Note:
        +
        This kind is experimental and may be changed or removed in + future versions.
        +
        +
      • +
      + + + +
        +
      • +

        TABLE_JOIN

        +
        public static final Kind TABLE_JOIN
        +
        Table join operator has the form + \(((\_ \; table.join \; m_1 \; n_1 \; \dots \; m_k \; n_k) \; A \; B)\) + where \(m_1 \; n_1 \; \dots \; m_k \; n_k\) are natural numbers, + and \(A, B\) are tables. + This operator filters the product of two bags based on the equality of + projected tuples using indices \(m_1, \dots, m_k\) in table \(A\), + and indices \(n_1, \dots, n_k\) in table \(B\). + +
          +
        • Arity: 2 + +
            +
          • 1: Term of table Sort + +
          • +
          • 2: Term of table Sort + +
          +
        • +
        • Indices: n +
            +
          • 1..n: Indices of the projection + + +
          +
        • +
        • Create Term of this Kind with: + +
        • +
        • Create Op of this kind with: + +
        +
        +
        Note:
        +
        This kind is experimental and may be changed or removed in + future versions.
        +
        +
      • +
      + + + +
        +
      • +

        TABLE_GROUP

        +
        public static final Kind TABLE_GROUP
        +
        Table group + + + \(((\_ \; table.group \; n_1 \; \dots \; n_k) \; A)\) partitions tuples + of table \(A\) such that tuples that have the same projection + with indices \(n_1 \; \dots \; n_k\) are in the same part. + It returns a bag of tables of type \((Bag \; T)\) where + \(T\) is the type of \(A\). + +
        +
        +
        Note:
        +
        This kind is experimental and may be changed or removed in + future versions.
        +
        +
      • +
      + + + + + + + + + + + + + + + +
        +
      • +

        STRING_SUBSTR

        +
        public static final Kind STRING_SUBSTR
        +
        String substring. + + + Extracts a substring, starting at index \(i\) and of length \(l\), + from a string \(s\). If the start index is negative, the start index + is greater than the length of the string, or the length is negative, the + result is the empty string. + +
        +
      • +
      + + + +
        +
      • +

        STRING_UPDATE

        +
        public static final Kind STRING_UPDATE
        +
        String update. + + + Updates a string \(s\) by replacing its context starting at an index + with string \(t\). If the start index is negative, the start index is + greater than the length of the string, the result is \(s\). Otherwise, + the length of the original string is preserved. + +
        +
      • +
      + + + +
        +
      • +

        STRING_CHARAT

        +
        public static final Kind STRING_CHARAT
        +
        String character at. + + + Returns the character at index \(i\) from a string \(s\). If the + index is negative or the index is greater than the length of the string, + the result is the empty string. Otherwise the result is a string of + length 1. + +
        +
      • +
      + + + +
        +
      • +

        STRING_CONTAINS

        +
        public static final Kind STRING_CONTAINS
        +
        String contains. + + + Determines whether a string \(s_1\) contains another string + \(s_2\). If \(s_2\) is empty, the result is always true. + +
        +
      • +
      + + + +
        +
      • +

        STRING_INDEXOF

        +
        public static final Kind STRING_INDEXOF
        +
        String index-of. + + + Returns the index of a substring \(s_2\) in a string \(s_1\) + starting at index \(i\). If the index is negative or greater than the + length of string \(s_1\) or the substring \(s_2\) does not appear + in string \(s_1\) after index \(i\), the result is -1. + +
        +
      • +
      + + + +
        +
      • +

        STRING_INDEXOF_RE

        +
        public static final Kind STRING_INDEXOF_RE
        +
        String index-of regular expression match. + + + Returns the first match of a regular expression \(r\) in a + string \(s\). If the index is negative or greater than the length of + string \(s_1\), or \(r\) does not match a substring in \(s\) + after index \(i\), the result is -1. + +
        +
      • +
      + + + +
        +
      • +

        STRING_REPLACE

        +
        public static final Kind STRING_REPLACE
        +
        String replace. + + + Replaces a string \(s_2\) in a string \(s_1\) with string + \(s_3\). If \(s_2\) does not appear in \(s_1\), \(s_1\) is + returned unmodified. + +
        +
      • +
      + + + +
        +
      • +

        STRING_REPLACE_ALL

        +
        public static final Kind STRING_REPLACE_ALL
        +
        String replace all. + + + Replaces all occurrences of a string \(s_2\) in a string \(s_1\) + with string \(s_3\). If \(s_2\) does not appear in \(s_1\), + \(s_1\) is returned unmodified. + +
        +
      • +
      + + + +
        +
      • +

        STRING_REPLACE_RE

        +
        public static final Kind STRING_REPLACE_RE
        +
        String replace regular expression match. + + + Replaces the first match of a regular expression \(r\) in + string \(s_1\) with string \(s_2\). If \(r\) does not match a + substring of \(s_1\), \(s_1\) is returned unmodified. + +
        +
      • +
      + + + +
        +
      • +

        STRING_REPLACE_RE_ALL

        +
        public static final Kind STRING_REPLACE_RE_ALL
        +
        String replace all regular expression matches. + + + Replaces all matches of a regular expression \(r\) in string + \(s_1\) with string \(s_2\). If \(r\) does not match a + substring of \(s_1\), string \(s_1\) is returned unmodified. + +
        +
      • +
      + + + + + + + + + + + + + + + + + + + +
        +
      • +

        STRING_FROM_CODE

        +
        public static final Kind STRING_FROM_CODE
        +
        String from code. + + Returns a string containing a single character whose code point matches + the argument to this function, or the empty string if the argument is + out-of-bounds. + +
        +
      • +
      + + + +
        +
      • +

        STRING_LT

        +
        public static final Kind STRING_LT
        +
        String less than. + + + Returns true if string \(s_1\) is (strictly) less than \(s_2\) + based on a lexiographic ordering over code points. + +
        +
      • +
      + + + +
        +
      • +

        STRING_LEQ

        +
        public static final Kind STRING_LEQ
        +
        String less than or equal. + + + Returns true if string \(s_1\) is less than or equal to \(s_2\) + based on a lexiographic ordering over code points. + +
        +
      • +
      + + + +
        +
      • +

        STRING_PREFIX

        +
        public static final Kind STRING_PREFIX
        +
        String prefix-of. + + + Determines whether a string \(s_1\) is a prefix of string \(s_2\). + If string s1 is empty, this operator returns true. + +
        +
      • +
      + + + +
        +
      • +

        STRING_SUFFIX

        +
        public static final Kind STRING_SUFFIX
        +
        String suffix-of. + + + Determines whether a string \(s_1\) is a suffix of the second string. + If string \(s_1\) is empty, this operator returns true. + +
        +
      • +
      + + + + + + + + + + + +
        +
      • +

        STRING_TO_INT

        +
        public static final Kind STRING_TO_INT
        +
        String to integer (total function). + + If the string does not contain an integer or the integer is negative, the + operator returns `-1`. + +
        +
      • +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        +
      • +

        REGEXP_RANGE

        +
        public static final Kind REGEXP_RANGE
        +
        Regular expression range. + +
        +
      • +
      + + + +
        +
      • +

        REGEXP_REPEAT

        +
        public static final Kind REGEXP_REPEAT
        +
        Operator for regular expression repeat. + +
        +
      • +
      + + + +
        +
      • +

        REGEXP_LOOP

        +
        public static final Kind REGEXP_LOOP
        +
        Regular expression loop. + + Regular expression loop from lower bound to upper bound number of + repetitions. + +
        +
      • +
      + + + +
        +
      • +

        REGEXP_NONE

        +
        public static final Kind REGEXP_NONE
        +
        Regular expression none. + +
        +
      • +
      + + + +
        +
      • +

        REGEXP_ALL

        +
        public static final Kind REGEXP_ALL
        +
        Regular expression all. + +
        +
      • +
      + + + +
        +
      • +

        REGEXP_ALLCHAR

        +
        public static final Kind REGEXP_ALLCHAR
        +
        Regular expression all characters. + +
        +
      • +
      + + + + + + + + + + + + + + + +
        +
      • +

        SEQ_EXTRACT

        +
        public static final Kind SEQ_EXTRACT
        +
        Sequence extract. + + + Extracts a subsequence, starting at index \(i\) and of length \(l\), + from a sequence \(s\). If the start index is negative, the start index + is greater than the length of the sequence, or the length is negative, the + result is the empty sequence. + +
        +
      • +
      + + + +
        +
      • +

        SEQ_UPDATE

        +
        public static final Kind SEQ_UPDATE
        +
        Sequence update. + + + Updates a sequence \(s\) by replacing its context starting at an index + with string \(t\). If the start index is negative, the start index is + greater than the length of the sequence, the result is \(s\). + Otherwise, the length of the original sequence is preserved. + +
        +
      • +
      + + + +
        +
      • +

        SEQ_AT

        +
        public static final Kind SEQ_AT
        +
        Sequence element at. + + + Returns the element at index \(i\) from a sequence \(s\). If the index + is negative or the index is greater or equal to the length of the + sequence, the result is the empty sequence. Otherwise the result is a + sequence of length 1. + +
        +
      • +
      + + + +
        +
      • +

        SEQ_CONTAINS

        +
        public static final Kind SEQ_CONTAINS
        +
        Sequence contains. + + + Checks whether a sequence \(s_1\) contains another sequence + \(s_2\). If \(s_2\) is empty, the result is always true. + +
        +
      • +
      + + + +
        +
      • +

        SEQ_INDEXOF

        +
        public static final Kind SEQ_INDEXOF
        +
        Sequence index-of. + + + Returns the index of a subsequence \(s_2\) in a sequence \(s_1\) + starting at index \(i\). If the index is negative or greater than the + length of sequence \(s_1\) or the subsequence \(s_2\) does not + appear in sequence \(s_1\) after index \(i\), the result is -1. + +
        +
      • +
      + + + +
        +
      • +

        SEQ_REPLACE

        +
        public static final Kind SEQ_REPLACE
        +
        Sequence replace. + + + Replaces the first occurrence of a sequence \(s_2\) in a + sequence \(s_1\) with sequence \(s_3\). If \(s_2\) does not + appear in \(s_1\), \(s_1\) is returned unmodified. + +
        +
      • +
      + + + +
        +
      • +

        SEQ_REPLACE_ALL

        +
        public static final Kind SEQ_REPLACE_ALL
        +
        Sequence replace all. + + + Replaces all occurrences of a sequence \(s_2\) in a sequence + \(s_1\) with sequence \(s_3\). If \(s_2\) does not appear in + \(s_1\), sequence \(s_1\) is returned unmodified. + +
        +
      • +
      + + + + + + + +
        +
      • +

        SEQ_PREFIX

        +
        public static final Kind SEQ_PREFIX
        +
        Sequence prefix-of. + + + Checks whether a sequence \(s_1\) is a prefix of sequence \(s_2\). + If sequence \(s_1\) is empty, this operator returns true. + +
        +
      • +
      + + + +
        +
      • +

        SEQ_SUFFIX

        +
        public static final Kind SEQ_SUFFIX
        +
        Sequence suffix-of. + + + Checks whether a sequence \(s_1\) is a suffix of sequence \(s_2\). + If sequence \(s_1\) is empty, this operator returns true. + +
        +
      • +
      + + + +
        +
      • +

        CONST_SEQUENCE

        +
        public static final Kind CONST_SEQUENCE
        +
        Constant sequence. + + A constant sequence is a term that is equivalent to: + + .. code. smtlib + + (seq.++ (seq.unit c1) ... (seq.unit cn)) + + where \(n \leq 0\) and \(c_1, ..., c_n\) are constants of some + sort. The elements can be extracted with Term.getSequenceValue(). + + +
        +
      • +
      + + + + + + + + + + + +
        +
      • +

        FORALL

        +
        public static final Kind FORALL
        +
        Universally quantified formula. + + +
        +
      • +
      + + + +
        +
      • +

        EXISTS

        +
        public static final Kind EXISTS
        +
        Existentially quantified formula. + + +
        +
      • +
      + + + + + + + +
        +
      • +

        INST_PATTERN

        +
        public static final Kind INST_PATTERN
        +
        Instantiation pattern. + + Specifies a (list of) terms to be used as a pattern for quantifier + instantiation. + +
        +
        +
        Note:
        +
        Should only be used as a child of + INST_PATTERN_LIST.
        +
        +
      • +
      + + + +
        +
      • +

        INST_NO_PATTERN

        +
        public static final Kind INST_NO_PATTERN
        +
        Instantiation no-pattern. + + Specifies a (list of) terms that should not be used as a pattern for + quantifier instantiation. + +
        +
        +
        Note:
        +
        Should only be used as a child of + INST_PATTERN_LIST.
        +
        +
      • +
      + + + +
        +
      • +

        INST_POOL

        +
        public static final Kind INST_POOL
        +
        Instantiation pool annotation. + + Specifies an annotation for pool based instantiation. + + In detail, pool symbols can be declared via the method + + A pool symbol represents a set of terms of a given sort. An instantiation + pool annotation should either: + (1) have child sets matching the types of the quantified formula, + (2) have a child set of tuple type whose component types match the types + of the quantified formula. + + For an example of (1), for a quantified formula: + + + .. code. lisp + + (FORALL (VARIABLE_LIST x y) F (INST_PATTERN_LIST (INST_POOL p q))) + + if \(x\) and \(y\) have Sorts \(S_1\) and \(S_2\), then + pool symbols \(p\) and \(q\) should have Sorts (Set \(S_1\)) + and (Set \(S_2\)), respectively. This annotation specifies that the + quantified formula above should be instantiated with the product of all + terms that occur in the sets \(p\) and \(q\). + + + Alternatively, as an example of (2), for a quantified formula: + + + .. code. lisp + + (FORALL (VARIABLE_LIST x y) F (INST_PATTERN_LIST (INST_POOL s))) + + \(s\) should have Sort (Set (Tuple \(S_1\) \(S_2\))). This + annotation specifies that the quantified formula above should be + instantiated with the pairs of values in \(s\). + +
        +
        +
        Note:
        +
        This kind is experimental and may be changed or removed in + future versions., Should only be used as a child of + INST_PATTERN_LIST.
        +
        +
      • +
      + + + +
        +
      • +

        INST_ADD_TO_POOL

        +
        public static final Kind INST_ADD_TO_POOL
        +
        A instantantiation-add-to-pool annotation. + + An instantantiation-add-to-pool annotation indicates that when a quantified + formula is instantiated, the instantiated version of a term should be + added to the given pool. + + For example, consider a quantified formula: + + + .. code. lisp + + (FORALL (VARIABLE_LIST x) F + (INST_PATTERN_LIST (INST_ADD_TO_POOL (ADD x 1) p))) + + where assume that \(x\) has type Int. When this quantified formula is + instantiated with, e.g., the term \(t\), the term (ADD t 1) is + added to pool \(p\). + + +
        +
        +
        Note:
        +
        This kind is experimental and may be changed or removed in + future versions., Should only be used as a child of + INST_PATTERN_LIST.
        +
        +
      • +
      + + + +
        +
      • +

        SKOLEM_ADD_TO_POOL

        +
        public static final Kind SKOLEM_ADD_TO_POOL
        +
        A skolemization-add-to-pool annotation. + + An skolemization-add-to-pool annotation indicates that when a quantified + formula is skolemized, the skolemized version of a term should be added to + the given pool. + + For example, consider a quantified formula: + + + .. code. lisp + + (FORALL (VARIABLE_LIST x) F + (INST_PATTERN_LIST (SKOLEM_ADD_TO_POOL (ADD x 1) p))) + + where assume that \(x\) has type Int. When this quantified formula is + skolemized, e.g., with \(k\) of type Int, then the term (ADD k 1) + is added to the pool \(p\). + + +
        +
        +
        Note:
        +
        This kind is experimental and may be changed or removed in + future versions., Should only be used as a child of + INST_PATTERN_LIST.
        +
        +
      • +
      + + + +
        +
      • +

        INST_ATTRIBUTE

        +
        public static final Kind INST_ATTRIBUTE
        +
        Instantiation attribute. + + Specifies a custom property for a quantified formula given by a + term that is ascribed a user attribute. + +
        +
        +
        Note:
        +
        Should only be used as a child of + INST_PATTERN_LIST.
        +
        +
      • +
      + + + +
        +
      • +

        INST_PATTERN_LIST

        +
        public static final Kind INST_PATTERN_LIST
        +
        A list of instantiation patterns, attributes or annotations. + + +
        +
      • +
      + + + +
        +
      • +

        LAST_KIND

        +
        public static final Kind LAST_KIND
        +
        Marks the upper-bound of this enumeration.
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        values

        +
        public static Kind[] values()
        +
        Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +
        +for (Kind c : Kind.values())
        +    System.out.println(c);
        +
        +
        +
        Returns:
        +
        an array containing the constants of this enum type, in the order they are declared
        +
        +
      • +
      + + + +
        +
      • +

        valueOf

        +
        public static Kind valueOf​(java.lang.String name)
        +
        Returns the enum constant of this type with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)
        +
        +
        Parameters:
        +
        name - the name of the enum constant to be returned.
        +
        Returns:
        +
        the enum constant with the specified name
        +
        Throws:
        +
        java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
        +
        java.lang.NullPointerException - if the argument is null
        +
        +
      • +
      + + + + + + + +
        +
      • +

        getValue

        +
        public int getValue()
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Op.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Op.html new file mode 100644 index 0000000000..17f5bb4872 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Op.html @@ -0,0 +1,566 @@ + + + + + +Op + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Class Op

+
+
+ +
+
    +
  • +
    +
    public class Op
    +extends java.lang.Object
    +
    A cvc5 operator. + + An operator is a term that represents certain operators, instantiated + with its required parameters, e.g., a Term of kind + Kind.BITVECTOR_EXTRACT.
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Field Summary

      + + + + + + + + + + + + +
      Fields 
      Modifier and TypeFieldDescription
      protected longpointer 
      +
    • +
    +
    + +
    +
      +
    • + + +

      Constructor Summary

      + + + + + + + + + + +
      Constructors 
      ConstructorDescription
      Op() +
      Null op
      +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethodDescription
      voiddeletePointer() 
      protected voiddeletePointer​(long pointer) 
      booleanequals​(java.lang.Object t) +
      Syntactic equality operator.
      +
      Termget​(int i) +
      Get the index at position i.
      +
      KindgetKind() 
      intgetNumIndices() 
      longgetPointer() 
      inthashCode() +
      Get the hash value of an operator.
      +
      booleanisIndexed() 
      booleanisNull() 
      java.lang.StringtoString() 
      protected java.lang.StringtoString​(long pointer) 
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
      • +
      +
    • +
    +
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        pointer

        +
        protected long pointer
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        Op

        +
        public Op()
        +
        Null op
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        deletePointer

        +
        protected void deletePointer​(long pointer)
        +
      • +
      + + + +
        +
      • +

        equals

        +
        public boolean equals​(java.lang.Object t)
        +
        Syntactic equality operator.
        +
        +
        Overrides:
        +
        equals in class java.lang.Object
        +
        Parameters:
        +
        t - The operator to compare to for equality.
        +
        Returns:
        +
        True if the operators are syntactically identical.
        +
        +
      • +
      + + + +
        +
      • +

        getKind

        +
        public Kind getKind()
        +
        +
        Returns:
        +
        The kind of this operator.
        +
        +
      • +
      + + + +
        +
      • +

        isNull

        +
        public boolean isNull()
        +
        +
        Returns:
        +
        True if this operator is a null term.
        +
        +
      • +
      + + + +
        +
      • +

        isIndexed

        +
        public boolean isIndexed()
        +
        +
        Returns:
        +
        True iff this operator is indexed.
        +
        +
      • +
      + + + +
        +
      • +

        getNumIndices

        +
        public int getNumIndices()
        +
        +
        Returns:
        +
        The number of indices of this op.
        +
        +
      • +
      + + + +
        +
      • +

        get

        +
        public Term get​(int i)
        +         throws CVC5ApiException
        +
        Get the index at position i.
        +
        +
        Parameters:
        +
        i - The position of the index to return.
        +
        Returns:
        +
        The index at position i.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        toString

        +
        protected java.lang.String toString​(long pointer)
        +
        +
        Returns:
        +
        A string representation of this operator.
        +
        +
      • +
      + + + +
        +
      • +

        hashCode

        +
        public int hashCode()
        +
        Get the hash value of an operator.
        +
        +
        Overrides:
        +
        hashCode in class java.lang.Object
        +
        Returns:
        +
        The hash value.
        +
        +
      • +
      + + + +
        +
      • +

        getPointer

        +
        public long getPointer()
        +
      • +
      + + + +
        +
      • +

        deletePointer

        +
        public void deletePointer()
        +
      • +
      + + + +
        +
      • +

        toString

        +
        public java.lang.String toString()
        +
        +
        Overrides:
        +
        toString in class java.lang.Object
        +
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/OptionInfo.BaseInfo.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/OptionInfo.BaseInfo.html new file mode 100644 index 0000000000..d13c39d80e --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/OptionInfo.BaseInfo.html @@ -0,0 +1,277 @@ + + + + + +OptionInfo.BaseInfo + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Class OptionInfo.BaseInfo

+
+
+ +
+ +
+
+
    +
  • + +
    +
      +
    • + + +

      Constructor Summary

      + + + + + + + + + + +
      Constructors 
      ConstructorDescription
      BaseInfo() 
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Summary

      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • +
      +
    • +
    +
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        BaseInfo

        +
        public BaseInfo()
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/OptionInfo.ModeInfo.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/OptionInfo.ModeInfo.html new file mode 100644 index 0000000000..becd389ef9 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/OptionInfo.ModeInfo.html @@ -0,0 +1,331 @@ + + + + + +OptionInfo.ModeInfo + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Class OptionInfo.ModeInfo

+
+
+ +
+ +
+
+
    +
  • + +
    +
      +
    • + + +

      Constructor Summary

      + + + + + + + + + + +
      Constructors 
      ConstructorDescription
      ModeInfo​(java.lang.String defaultValue, + java.lang.String currentValue, + java.lang.String[] modes) 
      +
    • +
    +
    + +
    + +
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        ModeInfo

        +
        public ModeInfo​(java.lang.String defaultValue,
        +                java.lang.String currentValue,
        +                java.lang.String[] modes)
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        getModes

        +
        public java.lang.String[] getModes()
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/OptionInfo.NumberInfo.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/OptionInfo.NumberInfo.html new file mode 100644 index 0000000000..4e98f20e0d --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/OptionInfo.NumberInfo.html @@ -0,0 +1,350 @@ + + + + + +OptionInfo.NumberInfo + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Class OptionInfo.NumberInfo<T>

+
+
+ +
+
    +
  • +
    +
    Enclosing class:
    +
    OptionInfo
    +
    +
    +
    public class OptionInfo.NumberInfo<T>
    +extends OptionInfo.ValueInfo<T>
    +
    Default value, current value, minimum and maximum of a numeric value
    +
  • +
+
+
+ +
+
+
    +
  • + +
    +
      +
    • + + +

      Constructor Detail

      + + + + + +
        +
      • +

        NumberInfo

        +
        public NumberInfo​(T defaultValue,
        +                  T currentValue,
        +                  T minimum,
        +                  T maximum)
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        getMinimum

        +
        public T getMinimum()
        +
      • +
      + + + +
        +
      • +

        getMaximum

        +
        public T getMaximum()
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/OptionInfo.ValueInfo.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/OptionInfo.ValueInfo.html new file mode 100644 index 0000000000..c12c311082 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/OptionInfo.ValueInfo.html @@ -0,0 +1,338 @@ + + + + + +OptionInfo.ValueInfo + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Class OptionInfo.ValueInfo<T>

+
+
+ +
+ +
+
+
    +
  • + +
    +
      +
    • + + +

      Constructor Summary

      + + + + + + + + + + +
      Constructors 
      ConstructorDescription
      ValueInfo​(T defaultValue, + T currentValue) 
      +
    • +
    +
    + +
    + +
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Constructor Detail

      + + + + + +
        +
      • +

        ValueInfo

        +
        public ValueInfo​(T defaultValue,
        +                 T currentValue)
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        getDefaultValue

        +
        public T getDefaultValue()
        +
      • +
      + + + +
        +
      • +

        getCurrentValue

        +
        public T getCurrentValue()
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/OptionInfo.VoidInfo.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/OptionInfo.VoidInfo.html new file mode 100644 index 0000000000..0b5ed2b62b --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/OptionInfo.VoidInfo.html @@ -0,0 +1,278 @@ + + + + + +OptionInfo.VoidInfo + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Class OptionInfo.VoidInfo

+
+
+ +
+ +
+
+
    +
  • + +
    +
      +
    • + + +

      Constructor Summary

      + + + + + + + + + + +
      Constructors 
      ConstructorDescription
      VoidInfo() 
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Summary

      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • +
      +
    • +
    +
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        VoidInfo

        +
        public VoidInfo()
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/OptionInfo.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/OptionInfo.html new file mode 100644 index 0000000000..76b929d64c --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/OptionInfo.html @@ -0,0 +1,593 @@ + + + + + +OptionInfo + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Class OptionInfo

+
+
+ +
+
    +
  • +
    +
    public class OptionInfo
    +extends java.lang.Object
    +
    Holds some description about a particular option, including its name, its + aliases, whether the option was explicitly set by the user, and information + concerning its value. The valueInfo member holds any of the following + alternatives: +
      +
    • + OptionInfo.VoidInfo if the option holds no value (or the value + has no native type) +
    • +
    • + OptionInfo.ValueInfo if the option is of type boolean or String, + holds the current value and the default value. +
    • +
    • + OptionInfo.NumberInfo if the option is of type BigInteger or + double, holds the current and default value, as well as the minimum and + maximum. +
    • +
    • + OptionInfo.ModeInfo if the option is a mode option, holds the + current and default values, as well as a list of valid modes. +
    • +
    + + Additionally, this class provides convenience functions to obtain the + current value of an option in a type-safe manner using + booleanValue(), stringValue(), + intValue(), and doubleValue(). + They assert that the option has the respective type and return the current + value.
    +
  • +
+
+
+
    +
  • + +
    + +
    + +
    +
      +
    • + + +

      Field Summary

      + + + + + + + + + + + + +
      Fields 
      Modifier and TypeFieldDescription
      protected longpointer 
      +
    • +
    +
    + +
    + +
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        pointer

        +
        protected long pointer
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        deletePointer

        +
        protected void deletePointer​(long pointer)
        +
      • +
      + + + +
        +
      • +

        toString

        +
        public java.lang.String toString()
        +
      • +
      + + + +
        +
      • +

        toString

        +
        protected java.lang.String toString​(long pointer)
        +
        +
        Returns:
        +
        A string representation of this OptionInfo.
        +
        +
      • +
      + + + +
        +
      • +

        getName

        +
        public java.lang.String getName()
        +
      • +
      + + + +
        +
      • +

        getAliases

        +
        public java.lang.String[] getAliases()
        +
      • +
      + + + +
        +
      • +

        getSetByUser

        +
        public boolean getSetByUser()
        +
      • +
      + + + + + + + +
        +
      • +

        booleanValue

        +
        public boolean booleanValue()
        +
        Obtain the current value as a Boolean. + Asserts that valueInfo holds a Boolean.
        +
        +
        Returns:
        +
        The Boolean value.
        +
        +
      • +
      + + + +
        +
      • +

        stringValue

        +
        public java.lang.String stringValue()
        +
        Obtain the current value as a string. + Asserts that valueInfo holds a string.
        +
        +
        Returns:
        +
        The string value.
        +
        +
      • +
      + + + +
        +
      • +

        intValue

        +
        public java.math.BigInteger intValue()
        +
        Obtain the current value as as int. + Asserts that valueInfo holds an int.
        +
        +
        Returns:
        +
        The integer value.
        +
        +
      • +
      + + + +
        +
      • +

        doubleValue

        +
        public double doubleValue()
        +
        Obtain the current value as a double. + Asserts that valueInfo holds a double.
        +
        +
        Returns:
        +
        The double value.
        +
        +
      • +
      + + + +
        +
      • +

        getPointer

        +
        public long getPointer()
        +
      • +
      + + + +
        +
      • +

        deletePointer

        +
        public void deletePointer()
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Pair.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Pair.html new file mode 100644 index 0000000000..e727a013e8 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Pair.html @@ -0,0 +1,370 @@ + + + + + +Pair + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Class Pair<K,​V>

+
+
+ +
+
    +
  • +
    +
    public class Pair<K,​V>
    +extends java.lang.Object
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Field Summary

      + + + + + + + + + + + + + + + + + +
      Fields 
      Modifier and TypeFieldDescription
      Kfirst 
      Vsecond 
      +
    • +
    +
    + +
    +
      +
    • + + +

      Constructor Summary

      + + + + + + + + + + +
      Constructors 
      ConstructorDescription
      Pair​(K first, + V second) 
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + +
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethodDescription
      booleanequals​(java.lang.Object pair) 
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • +
      +
    • +
    +
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        first

        +
        public K first
        +
      • +
      + + + +
        +
      • +

        second

        +
        public V second
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Constructor Detail

      + + + + + +
        +
      • +

        Pair

        +
        public Pair​(K first,
        +            V second)
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        equals

        +
        public boolean equals​(java.lang.Object pair)
        +
        +
        Overrides:
        +
        equals in class java.lang.Object
        +
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Proof.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Proof.html new file mode 100644 index 0000000000..785b0dc6e2 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Proof.html @@ -0,0 +1,526 @@ + + + + + +Proof + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Class Proof

+
+
+ +
+
    +
  • +
    +
    public class Proof
    +extends java.lang.Object
    +
    A cvc5 Proof.
    +
  • +
+
+
+ +
+
+
    +
  • + +
    +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        pointer

        +
        protected long pointer
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        Proof

        +
        public Proof()
        +
        Null proof
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        deletePointer

        +
        public void deletePointer()
        +
      • +
      + + + +
        +
      • +

        deletePointer

        +
        protected void deletePointer​(long pointer)
        +
      • +
      + + + +
        +
      • +

        getPointer

        +
        public long getPointer()
        +
      • +
      + + + + + + + +
        +
      • +

        getRewriteRule

        +
        public ProofRewriteRule getRewriteRule()
        +                                throws CVC5ApiException
        +
        +
        Returns:
        +
        The proof rewrite rule used by the root step of the proof.
        +
        Throws:
        +
        CVC5ApiException - if `getRule()` does not return `DSL_REWRITE` + or `THEORY_REWRITE`.
        +
        +
      • +
      + + + +
        +
      • +

        getResult

        +
        public Term getResult()
        +
        +
        Returns:
        +
        The conclusion of the root step of the proof.
        +
        +
      • +
      + + + +
        +
      • +

        getChildren

        +
        public Proof[] getChildren()
        +
        +
        Returns:
        +
        The premises of the root step of the proof.
        +
        +
      • +
      + + + +
        +
      • +

        getArguments

        +
        public Term[] getArguments()
        +
        +
        Returns:
        +
        The arguments of the root step of the proof as a vector of terms. + Some of those terms might be strings.
        +
        +
      • +
      + + + +
        +
      • +

        equals

        +
        public boolean equals​(java.lang.Object p)
        +
        Referential equality operator.
        +
        +
        Overrides:
        +
        equals in class java.lang.Object
        +
        Parameters:
        +
        p - The proof to compare to for equality.
        +
        Returns:
        +
        True if the proofs point to the same internal proof object.
        +
        +
      • +
      + + + +
        +
      • +

        hashCode

        +
        public int hashCode()
        +
        Get the hash value of a proof.
        +
        +
        Overrides:
        +
        hashCode in class java.lang.Object
        +
        Returns:
        +
        The hash value.
        +
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/ProofRewriteRule.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/ProofRewriteRule.html new file mode 100644 index 0000000000..53e427fb76 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/ProofRewriteRule.html @@ -0,0 +1,9122 @@ + + + + + +ProofRewriteRule + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Enum ProofRewriteRule

+
+
+ +
+
    +
  • +
    +
    All Implemented Interfaces:
    +
    java.io.Serializable, java.lang.Comparable<ProofRewriteRule>
    +
    +
    +
    public enum ProofRewriteRule
    +extends java.lang.Enum<ProofRewriteRule>
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Enum Constant Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Enum Constants 
      Enum ConstantDescription
      ARITH_ABS_ELIM_INT +
      Auto-generated from RARE rule arith-abs-elim-int
      +
      ARITH_ABS_ELIM_REAL +
      Auto-generated from RARE rule arith-abs-elim-real
      +
      ARITH_ABS_EQ +
      Auto-generated from RARE rule arith-abs-eq
      +
      ARITH_ABS_INT_GT +
      Auto-generated from RARE rule arith-abs-int-gt
      +
      ARITH_ABS_REAL_GT +
      Auto-generated from RARE rule arith-abs-real-gt
      +
      ARITH_COSECENT_ELIM +
      Auto-generated from RARE rule arith-cosecent-elim
      +
      ARITH_COSINE_ELIM +
      Auto-generated from RARE rule arith-cosine-elim
      +
      ARITH_COTANGENT_ELIM +
      Auto-generated from RARE rule arith-cotangent-elim
      +
      ARITH_DIV_ELIM_TO_REAL1 +
      Auto-generated from RARE rule arith-div-elim-to-real1
      +
      ARITH_DIV_ELIM_TO_REAL2 +
      Auto-generated from RARE rule arith-div-elim-to-real2
      +
      ARITH_DIV_TOTAL_INT +
      Auto-generated from RARE rule arith-div-total-int
      +
      ARITH_DIV_TOTAL_REAL +
      Auto-generated from RARE rule arith-div-total-real
      +
      ARITH_DIV_TOTAL_ZERO_INT +
      Auto-generated from RARE rule arith-div-total-zero-int
      +
      ARITH_DIV_TOTAL_ZERO_REAL +
      Auto-generated from RARE rule arith-div-total-zero-real
      +
      ARITH_ELIM_GT +
      Auto-generated from RARE rule arith-elim-gt
      +
      ARITH_ELIM_INT_GT +
      Auto-generated from RARE rule arith-elim-int-gt
      +
      ARITH_ELIM_INT_LT +
      Auto-generated from RARE rule arith-elim-int-lt
      +
      ARITH_ELIM_LEQ +
      Auto-generated from RARE rule arith-elim-leq
      +
      ARITH_ELIM_LT +
      Auto-generated from RARE rule arith-elim-lt
      +
      ARITH_EQ_ELIM_INT +
      Auto-generated from RARE rule arith-eq-elim-int
      +
      ARITH_EQ_ELIM_REAL +
      Auto-generated from RARE rule arith-eq-elim-real
      +
      ARITH_GEQ_NORM1_INT +
      Auto-generated from RARE rule arith-geq-norm1-int
      +
      ARITH_GEQ_NORM1_REAL +
      Auto-generated from RARE rule arith-geq-norm1-real
      +
      ARITH_GEQ_NORM2 +
      Auto-generated from RARE rule arith-geq-norm2
      +
      ARITH_GEQ_TIGHTEN +
      Auto-generated from RARE rule arith-geq-tighten
      +
      ARITH_INT_DIV_TOTAL +
      Auto-generated from RARE rule arith-int-div-total
      +
      ARITH_INT_DIV_TOTAL_ONE +
      Auto-generated from RARE rule arith-int-div-total-one
      +
      ARITH_INT_DIV_TOTAL_ZERO +
      Auto-generated from RARE rule arith-int-div-total-zero
      +
      ARITH_INT_MOD_TOTAL +
      Auto-generated from RARE rule arith-int-mod-total
      +
      ARITH_INT_MOD_TOTAL_ONE +
      Auto-generated from RARE rule arith-int-mod-total-one
      +
      ARITH_INT_MOD_TOTAL_ZERO +
      Auto-generated from RARE rule arith-int-mod-total-zero
      +
      ARITH_LEQ_NORM +
      Auto-generated from RARE rule arith-leq-norm
      +
      ARITH_MUL_ONE +
      Auto-generated from RARE rule arith-mul-one
      +
      ARITH_MUL_ZERO +
      Auto-generated from RARE rule arith-mul-zero
      +
      ARITH_MULT_DIST +
      Auto-generated from RARE rule arith-mult-dist
      +
      ARITH_MULT_FLATTEN +
      Auto-generated from RARE rule arith-mult-flatten
      +
      ARITH_PI_NOT_INT +
      Auto-generated from RARE rule arith-pi-not-int
      +
      ARITH_PLUS_FLATTEN +
      Auto-generated from RARE rule arith-plus-flatten
      +
      ARITH_POW_ELIM +
      Arithmetic – power elimination + + \[ + (x ^ c) = (x \cdot \ldots \cdot x) + \] + where \(c\) is a non-negative integer.
      +
      ARITH_REFL_GEQ +
      Auto-generated from RARE rule arith-refl-geq
      +
      ARITH_REFL_GT +
      Auto-generated from RARE rule arith-refl-gt
      +
      ARITH_REFL_LEQ +
      Auto-generated from RARE rule arith-refl-leq
      +
      ARITH_REFL_LT +
      Auto-generated from RARE rule arith-refl-lt
      +
      ARITH_SECENT_ELIM +
      Auto-generated from RARE rule arith-secent-elim
      +
      ARITH_SINE_PI2 +
      Auto-generated from RARE rule arith-sine-pi2
      +
      ARITH_SINE_ZERO +
      Auto-generated from RARE rule arith-sine-zero
      +
      ARITH_STRING_PRED_ENTAIL +
      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_SAFE_APPROX +
      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)\).
      +
      ARITH_TANGENT_ELIM +
      Auto-generated from RARE rule arith-tangent-elim
      +
      ARITH_TO_INT_ELIM_TO_REAL +
      Auto-generated from RARE rule arith-to-int-elim-to-real
      +
      ARITH_TO_REAL_ELIM +
      Auto-generated from RARE rule arith-to-real-elim
      +
      ARRAY_READ_OVER_WRITE +
      Auto-generated from RARE rule array-read-over-write
      +
      ARRAY_READ_OVER_WRITE_SPLIT +
      Auto-generated from RARE rule array-read-over-write-split
      +
      ARRAY_READ_OVER_WRITE2 +
      Auto-generated from RARE rule array-read-over-write2
      +
      ARRAY_STORE_OVERWRITE +
      Auto-generated from RARE rule array-store-overwrite
      +
      ARRAY_STORE_SELF +
      Auto-generated from RARE rule array-store-self
      +
      ARRAYS_EQ_RANGE_EXPAND +
      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_SELECT_CONST +
      Arrays – Constant array select + + \[ + (select A x) = c + \] + where \(A\) is a constant array storing element \(c\).
      +
      BETA_REDUCE +
      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 Node.substitute.
      +
      BOOL_AND_CONF +
      Auto-generated from RARE rule boolean-and-conf
      +
      BOOL_AND_CONF2 +
      Auto-generated from RARE rule boolean-and-conf2
      +
      BOOL_AND_DE_MORGAN +
      Auto-generated from RARE rule boolean-and-de-morgan
      +
      BOOL_AND_FALSE +
      Auto-generated from RARE rule boolean-and-false
      +
      BOOL_AND_FLATTEN +
      Auto-generated from RARE rule boolean-and-flatten
      +
      BOOL_DOUBLE_NOT_ELIM +
      Auto-generated from RARE rule boolean-double-not-elim
      +
      BOOL_EQ_FALSE +
      Auto-generated from RARE rule boolean-eq-false
      +
      BOOL_EQ_NREFL +
      Auto-generated from RARE rule boolean-eq-nrefl
      +
      BOOL_EQ_TRUE +
      Auto-generated from RARE rule boolean-eq-true
      +
      BOOL_IMPL_ELIM +
      Auto-generated from RARE rule boolean-impl-elim
      +
      BOOL_IMPL_FALSE1 +
      Auto-generated from RARE rule boolean-impl-false1
      +
      BOOL_IMPL_FALSE2 +
      Auto-generated from RARE rule boolean-impl-false2
      +
      BOOL_IMPL_TRUE1 +
      Auto-generated from RARE rule boolean-impl-true1
      +
      BOOL_IMPL_TRUE2 +
      Auto-generated from RARE rule boolean-impl-true2
      +
      BOOL_IMPLIES_DE_MORGAN +
      Auto-generated from RARE rule boolean-implies-de-morgan
      +
      BOOL_NOT_EQ_ELIM1 +
      Auto-generated from RARE rule boolean-not-eq-elim1
      +
      BOOL_NOT_EQ_ELIM2 +
      Auto-generated from RARE rule boolean-not-eq-elim2
      +
      BOOL_NOT_FALSE +
      Auto-generated from RARE rule boolean-not-false
      +
      BOOL_NOT_ITE_ELIM +
      Auto-generated from RARE rule boolean-not-ite-elim
      +
      BOOL_NOT_TRUE +
      Auto-generated from RARE rule boolean-not-true
      +
      BOOL_NOT_XOR_ELIM +
      Auto-generated from RARE rule boolean-not-xor-elim
      +
      BOOL_OR_AND_DISTRIB +
      Auto-generated from RARE rule boolean-or-and-distrib
      +
      BOOL_OR_DE_MORGAN +
      Auto-generated from RARE rule boolean-or-de-morgan
      +
      BOOL_OR_FLATTEN +
      Auto-generated from RARE rule boolean-or-flatten
      +
      BOOL_OR_TAUT +
      Auto-generated from RARE rule boolean-or-taut
      +
      BOOL_OR_TAUT2 +
      Auto-generated from RARE rule boolean-or-taut2
      +
      BOOL_OR_TRUE +
      Auto-generated from RARE rule boolean-or-true
      +
      BOOL_XOR_COMM +
      Auto-generated from RARE rule boolean-xor-comm
      +
      BOOL_XOR_ELIM +
      Auto-generated from RARE rule boolean-xor-elim
      +
      BOOL_XOR_FALSE +
      Auto-generated from RARE rule boolean-xor-false
      +
      BOOL_XOR_NREFL +
      Auto-generated from RARE rule boolean-xor-nrefl
      +
      BOOL_XOR_REFL +
      Auto-generated from RARE rule boolean-xor-refl
      +
      BOOL_XOR_TRUE +
      Auto-generated from RARE rule boolean-xor-true
      +
      BV_ADD_COMBINE_LIKE_TERMS +
      Bitvectors – Combine like terms during addition by counting terms
      +
      BV_ADD_TWO +
      Auto-generated from RARE rule bv-add-two
      +
      BV_ADD_ZERO +
      Auto-generated from RARE rule bv-add-zero
      +
      BV_AND_CONCAT_PULLUP +
      Auto-generated from RARE rule bv-and-concat-pullup
      +
      BV_AND_FLATTEN +
      Auto-generated from RARE rule bv-and-flatten
      +
      BV_AND_ONE +
      Auto-generated from RARE rule bv-and-one
      +
      BV_AND_SIMPLIFY_1 +
      Auto-generated from RARE rule bv-and-simplify-1
      +
      BV_AND_SIMPLIFY_2 +
      Auto-generated from RARE rule bv-and-simplify-2
      +
      BV_AND_ZERO +
      Auto-generated from RARE rule bv-and-zero
      +
      BV_ASHR_BY_CONST_0 +
      Auto-generated from RARE rule bv-ashr-by--0
      +
      BV_ASHR_BY_CONST_1 +
      Auto-generated from RARE rule bv-ashr-by--1
      +
      BV_ASHR_BY_CONST_2 +
      Auto-generated from RARE rule bv-ashr-by--2
      +
      BV_ASHR_ZERO +
      Auto-generated from RARE rule bv-ashr-zero
      +
      BV_BITWISE_IDEMP_1 +
      Auto-generated from RARE rule bv-bitwise-idemp-1
      +
      BV_BITWISE_IDEMP_2 +
      Auto-generated from RARE rule bv-bitwise-idemp-2
      +
      BV_BITWISE_NOT_AND +
      Auto-generated from RARE rule bv-bitwise-not-and
      +
      BV_BITWISE_NOT_OR +
      Auto-generated from RARE rule bv-bitwise-not-or
      +
      BV_BITWISE_SLICING +
      Bitvectors – Extract continuous substrings of bitvectors + + \[ + bvand(a,\ c) = concat(bvand(a[i_0:j_0],\ c_0) ...
      +
      BV_COMMUTATIVE_ADD +
      Auto-generated from RARE rule bv-commutative-add
      +
      BV_COMMUTATIVE_AND +
      Auto-generated from RARE rule bv-commutative-and
      +
      BV_COMMUTATIVE_MUL +
      Auto-generated from RARE rule bv-commutative-mul
      +
      BV_COMMUTATIVE_OR +
      Auto-generated from RARE rule bv-commutative-or
      +
      BV_COMMUTATIVE_XOR +
      Auto-generated from RARE rule bv-commutative-xor
      +
      BV_COMP_ELIMINATE +
      Auto-generated from RARE rule bv-comp-eliminate
      +
      BV_CONCAT_EXTRACT_MERGE +
      Auto-generated from RARE rule bv-concat-extract-merge
      +
      BV_CONCAT_FLATTEN +
      Auto-generated from RARE rule bv-concat-flatten
      +
      BV_CONCAT_MERGE_CONST +
      Auto-generated from RARE rule bv-concat-merge-
      +
      BV_CONCAT_TO_MULT +
      Auto-generated from RARE rule bv-concat-to-mult
      +
      BV_EQ_EXTRACT_ELIM1 +
      Auto-generated from RARE rule bv-eq-extract-elim1
      +
      BV_EQ_EXTRACT_ELIM2 +
      Auto-generated from RARE rule bv-eq-extract-elim2
      +
      BV_EQ_EXTRACT_ELIM3 +
      Auto-generated from RARE rule bv-eq-extract-elim3
      +
      BV_EXTRACT_BITWISE_AND +
      Auto-generated from RARE rule bv-extract-bitwise-and
      +
      BV_EXTRACT_BITWISE_OR +
      Auto-generated from RARE rule bv-extract-bitwise-or
      +
      BV_EXTRACT_BITWISE_XOR +
      Auto-generated from RARE rule bv-extract-bitwise-xor
      +
      BV_EXTRACT_CONCAT_1 +
      Auto-generated from RARE rule bv-extract-concat-1
      +
      BV_EXTRACT_CONCAT_2 +
      Auto-generated from RARE rule bv-extract-concat-2
      +
      BV_EXTRACT_CONCAT_3 +
      Auto-generated from RARE rule bv-extract-concat-3
      +
      BV_EXTRACT_CONCAT_4 +
      Auto-generated from RARE rule bv-extract-concat-4
      +
      BV_EXTRACT_EXTRACT +
      Auto-generated from RARE rule bv-extract-extract
      +
      BV_EXTRACT_MULT_LEADING_BIT +
      Auto-generated from RARE rule bv-extract-mult-leading-bit
      +
      BV_EXTRACT_NOT +
      Auto-generated from RARE rule bv-extract-not
      +
      BV_EXTRACT_SIGN_EXTEND_1 +
      Auto-generated from RARE rule bv-extract-sign-extend-1
      +
      BV_EXTRACT_SIGN_EXTEND_2 +
      Auto-generated from RARE rule bv-extract-sign-extend-2
      +
      BV_EXTRACT_SIGN_EXTEND_3 +
      Auto-generated from RARE rule bv-extract-sign-extend-3
      +
      BV_EXTRACT_WHOLE +
      Auto-generated from RARE rule bv-extract-whole
      +
      BV_ITE_CONST_CHILDREN_1 +
      Auto-generated from RARE rule bv-ite--children-1
      +
      BV_ITE_CONST_CHILDREN_2 +
      Auto-generated from RARE rule bv-ite--children-2
      +
      BV_ITE_EQUAL_CHILDREN +
      Auto-generated from RARE rule bv-ite-equal-children
      +
      BV_ITE_EQUAL_COND_1 +
      Auto-generated from RARE rule bv-ite-equal-cond-1
      +
      BV_ITE_EQUAL_COND_2 +
      Auto-generated from RARE rule bv-ite-equal-cond-2
      +
      BV_ITE_EQUAL_COND_3 +
      Auto-generated from RARE rule bv-ite-equal-cond-3
      +
      BV_ITE_MERGE_ELSE_ELSE +
      Auto-generated from RARE rule bv-ite-merge-else-else
      +
      BV_ITE_MERGE_ELSE_IF +
      Auto-generated from RARE rule bv-ite-merge-else-if
      +
      BV_ITE_MERGE_THEN_ELSE +
      Auto-generated from RARE rule bv-ite-merge-then-else
      +
      BV_ITE_MERGE_THEN_IF +
      Auto-generated from RARE rule bv-ite-merge-then-if
      +
      BV_LSHR_BY_CONST_0 +
      Auto-generated from RARE rule bv-lshr-by--0
      +
      BV_LSHR_BY_CONST_1 +
      Auto-generated from RARE rule bv-lshr-by--1
      +
      BV_LSHR_BY_CONST_2 +
      Auto-generated from RARE rule bv-lshr-by--2
      +
      BV_LSHR_ZERO +
      Auto-generated from RARE rule bv-lshr-zero
      +
      BV_LT_SELF +
      Auto-generated from RARE rule bv-lt-self
      +
      BV_MERGE_SIGN_EXTEND_1 +
      Auto-generated from RARE rule bv-merge-sign-extend-1
      +
      BV_MERGE_SIGN_EXTEND_2 +
      Auto-generated from RARE rule bv-merge-sign-extend-2
      +
      BV_MERGE_SIGN_EXTEND_3 +
      Auto-generated from RARE rule bv-merge-sign-extend-3
      +
      BV_MUL_FLATTEN +
      Auto-generated from RARE rule bv-mul-flatten
      +
      BV_MUL_ONE +
      Auto-generated from RARE rule bv-mul-one
      +
      BV_MUL_ZERO +
      Auto-generated from RARE rule bv-mul-zero
      +
      BV_MULT_DISTRIB_1 +
      Auto-generated from RARE rule bv-mult-distrib-1
      +
      BV_MULT_DISTRIB_2 +
      Auto-generated from RARE rule bv-mult-distrib-2
      +
      BV_MULT_DISTRIB_CONST_ADD +
      Auto-generated from RARE rule bv-mult-distrib--add
      +
      BV_MULT_DISTRIB_CONST_NEG +
      Auto-generated from RARE rule bv-mult-distrib--neg
      +
      BV_MULT_DISTRIB_CONST_SUB +
      Auto-generated from RARE rule bv-mult-distrib--sub
      +
      BV_MULT_POW2_1 +
      Auto-generated from RARE rule bv-mult-pow2-1
      +
      BV_MULT_POW2_2 +
      Auto-generated from RARE rule bv-mult-pow2-2
      +
      BV_MULT_POW2_2B +
      Auto-generated from RARE rule bv-mult-pow2-2b
      +
      BV_MULT_SIMPLIFY +
      Bitvectors – Extract negations from multiplicands + + \[ + bvmul(bvneg(a),\ b,\ c) = bvneg(bvmul(a,\ b,\ c)) + \]
      +
      BV_MULT_SLT_MULT_1 +
      Auto-generated from RARE rule bv-mult-slt-mult-1
      +
      BV_MULT_SLT_MULT_2 +
      Auto-generated from RARE rule bv-mult-slt-mult-2
      +
      BV_NAND_ELIMINATE +
      Auto-generated from RARE rule bv-nand-eliminate
      +
      BV_NEG_ADD +
      Auto-generated from RARE rule bv-neg-add
      +
      BV_NEG_IDEMP +
      Auto-generated from RARE rule bv-neg-idemp
      +
      BV_NEG_MULT +
      Auto-generated from RARE rule bv-neg-mult
      +
      BV_NEG_SUB +
      Auto-generated from RARE rule bv-neg-sub
      +
      BV_NOR_ELIMINATE +
      Auto-generated from RARE rule bv-nor-eliminate
      +
      BV_NOT_IDEMP +
      Auto-generated from RARE rule bv-not-idemp
      +
      BV_NOT_NEQ +
      Auto-generated from RARE rule bv-not-neq
      +
      BV_NOT_SLE +
      Auto-generated from RARE rule bv-not-sle
      +
      BV_NOT_ULE +
      Auto-generated from RARE rule bv-not-ule
      +
      BV_NOT_ULT +
      Auto-generated from RARE rule bv-not-ult
      +
      BV_NOT_XOR +
      Auto-generated from RARE rule bv-not-xor
      +
      BV_OR_CONCAT_PULLUP +
      Auto-generated from RARE rule bv-or-concat-pullup
      +
      BV_OR_FLATTEN +
      Auto-generated from RARE rule bv-or-flatten
      +
      BV_OR_ONE +
      Auto-generated from RARE rule bv-or-one
      +
      BV_OR_SIMPLIFY_1 +
      Auto-generated from RARE rule bv-or-simplify-1
      +
      BV_OR_SIMPLIFY_2 +
      Auto-generated from RARE rule bv-or-simplify-2
      +
      BV_OR_ZERO +
      Auto-generated from RARE rule bv-or-zero
      +
      BV_REDAND_ELIMINATE +
      Auto-generated from RARE rule bv-redand-eliminate
      +
      BV_REDOR_ELIMINATE +
      Auto-generated from RARE rule bv-redor-eliminate
      +
      BV_REPEAT_ELIM +
      Bitvectors – Extract continuous substrings of bitvectors + + \[ + repeat(n,\ t) = concat(t ...
      +
      BV_ROTATE_LEFT_ELIMINATE_1 +
      Auto-generated from RARE rule bv-rotate-left-eliminate-1
      +
      BV_ROTATE_LEFT_ELIMINATE_2 +
      Auto-generated from RARE rule bv-rotate-left-eliminate-2
      +
      BV_ROTATE_RIGHT_ELIMINATE_1 +
      Auto-generated from RARE rule bv-rotate-right-eliminate-1
      +
      BV_ROTATE_RIGHT_ELIMINATE_2 +
      Auto-generated from RARE rule bv-rotate-right-eliminate-2
      +
      BV_SADDO_ELIMINATE +
      Auto-generated from RARE rule bv-saddo-eliminate
      +
      BV_SDIV_ELIMINATE +
      Auto-generated from RARE rule bv-sdiv-eliminate
      +
      BV_SDIV_ELIMINATE_FEWER_BITWISE_OPS +
      Auto-generated from RARE rule bv-sdiv-eliminate-fewer-bitwise-ops
      +
      BV_SDIVO_ELIMINATE +
      Auto-generated from RARE rule bv-sdivo-eliminate
      +
      BV_SGE_ELIMINATE +
      Auto-generated from RARE rule bv-sge-eliminate
      +
      BV_SGT_ELIMINATE +
      Auto-generated from RARE rule bv-sgt-eliminate
      +
      BV_SHL_BY_CONST_0 +
      Auto-generated from RARE rule bv-shl-by--0
      +
      BV_SHL_BY_CONST_1 +
      Auto-generated from RARE rule bv-shl-by--1
      +
      BV_SHL_BY_CONST_2 +
      Auto-generated from RARE rule bv-shl-by--2
      +
      BV_SHL_ZERO +
      Auto-generated from RARE rule bv-shl-zero
      +
      BV_SIGN_EXTEND_ELIMINATE +
      Auto-generated from RARE rule bv-sign-extend-eliminate
      +
      BV_SIGN_EXTEND_ELIMINATE_0 +
      Auto-generated from RARE rule bv-sign-extend-eliminate-0
      +
      BV_SIGN_EXTEND_EQ_CONST_1 +
      Auto-generated from RARE rule bv-sign-extend-eq--1
      +
      BV_SIGN_EXTEND_EQ_CONST_2 +
      Auto-generated from RARE rule bv-sign-extend-eq--2
      +
      BV_SIGN_EXTEND_ULT_CONST_1 +
      Auto-generated from RARE rule bv-sign-extend-ult--1
      +
      BV_SIGN_EXTEND_ULT_CONST_2 +
      Auto-generated from RARE rule bv-sign-extend-ult--2
      +
      BV_SIGN_EXTEND_ULT_CONST_3 +
      Auto-generated from RARE rule bv-sign-extend-ult--3
      +
      BV_SIGN_EXTEND_ULT_CONST_4 +
      Auto-generated from RARE rule bv-sign-extend-ult--4
      +
      BV_SLE_ELIMINATE +
      Auto-generated from RARE rule bv-sle-eliminate
      +
      BV_SLE_SELF +
      Auto-generated from RARE rule bv-sle-self
      +
      BV_SLT_ELIMINATE +
      Auto-generated from RARE rule bv-slt-eliminate
      +
      BV_SLT_ZERO +
      Auto-generated from RARE rule bv-slt-zero
      +
      BV_SMOD_ELIMINATE +
      Auto-generated from RARE rule bv-smod-eliminate
      +
      BV_SMOD_ELIMINATE_FEWER_BITWISE_OPS +
      Auto-generated from RARE rule bv-smod-eliminate-fewer-bitwise-ops
      +
      BV_SMULO_ELIMINATE +
      Bitvectors – Unsigned multiplication overflow detection elimination + + See M.Gok, M.J.
      +
      BV_SREM_ELIMINATE +
      Auto-generated from RARE rule bv-srem-eliminate
      +
      BV_SREM_ELIMINATE_FEWER_BITWISE_OPS +
      Auto-generated from RARE rule bv-srem-eliminate-fewer-bitwise-ops
      +
      BV_SSUBO_ELIMINATE +
      Auto-generated from RARE rule bv-ssubo-eliminate
      +
      BV_SUB_ELIMINATE +
      Auto-generated from RARE rule bv-sub-eliminate
      +
      BV_TO_NAT_ELIM +
      UF – Bitvector to natural elimination + + \[ + \texttt{bv2nat}(t) = t_1 + \ldots + t_n + \] + where for \(i=1, \ldots, n\), \(t_i\) is + \(\texttt{ite}(x[i-1, i-1] = 1, 2^i, 0)\).
      +
      BV_UADDO_ELIMINATE +
      Auto-generated from RARE rule bv-uaddo-eliminate
      +
      BV_UDIV_ONE +
      Auto-generated from RARE rule bv-udiv-one
      +
      BV_UDIV_POW2_NOT_ONE +
      Auto-generated from RARE rule bv-udiv-pow2-not-one
      +
      BV_UDIV_ZERO +
      Auto-generated from RARE rule bv-udiv-zero
      +
      BV_UGE_ELIMINATE +
      Auto-generated from RARE rule bv-uge-eliminate
      +
      BV_UGT_ELIMINATE +
      Auto-generated from RARE rule bv-ugt-eliminate
      +
      BV_UGT_UREM +
      Auto-generated from RARE rule bv-ugt-urem
      +
      BV_ULE_ELIMINATE +
      Auto-generated from RARE rule bv-ule-eliminate
      +
      BV_ULE_MAX +
      Auto-generated from RARE rule bv-ule-max
      +
      BV_ULE_SELF +
      Auto-generated from RARE rule bv-ule-self
      +
      BV_ULE_ZERO +
      Auto-generated from RARE rule bv-ule-zero
      +
      BV_ULT_ADD_ONE +
      Auto-generated from RARE rule bv-ult-add-one
      +
      BV_ULT_ONE +
      Auto-generated from RARE rule bv-ult-one
      +
      BV_ULT_ONES +
      Auto-generated from RARE rule bv-ult-ones
      +
      BV_ULT_SELF +
      Auto-generated from RARE rule bv-ult-self
      +
      BV_ULT_ZERO_1 +
      Auto-generated from RARE rule bv-ult-zero-1
      +
      BV_ULT_ZERO_2 +
      Auto-generated from RARE rule bv-ult-zero-2
      +
      BV_UMULO_ELIMINATE +
      Bitvectors – Unsigned multiplication overflow detection elimination + + See M.Gok, M.J.
      +
      BV_UREM_ONE +
      Auto-generated from RARE rule bv-urem-one
      +
      BV_UREM_POW2_NOT_ONE +
      Auto-generated from RARE rule bv-urem-pow2-not-one
      +
      BV_UREM_SELF +
      Auto-generated from RARE rule bv-urem-self
      +
      BV_USUBO_ELIMINATE +
      Auto-generated from RARE rule bv-usubo-eliminate
      +
      BV_XNOR_ELIMINATE +
      Auto-generated from RARE rule bv-xnor-eliminate
      +
      BV_XOR_CONCAT_PULLUP +
      Auto-generated from RARE rule bv-xor-concat-pullup
      +
      BV_XOR_DUPLICATE +
      Auto-generated from RARE rule bv-xor-duplicate
      +
      BV_XOR_FLATTEN +
      Auto-generated from RARE rule bv-xor-flatten
      +
      BV_XOR_NOT +
      Auto-generated from RARE rule bv-xor-not
      +
      BV_XOR_ONES +
      Auto-generated from RARE rule bv-xor-ones
      +
      BV_XOR_SIMPLIFY_1 +
      Auto-generated from RARE rule bv-xor-simplify-1
      +
      BV_XOR_SIMPLIFY_2 +
      Auto-generated from RARE rule bv-xor-simplify-2
      +
      BV_XOR_SIMPLIFY_3 +
      Auto-generated from RARE rule bv-xor-simplify-3
      +
      BV_XOR_ZERO +
      Auto-generated from RARE rule bv-xor-zero
      +
      BV_ZERO_EXTEND_ELIMINATE +
      Auto-generated from RARE rule bv-zero-extend-eliminate
      +
      BV_ZERO_EXTEND_ELIMINATE_0 +
      Auto-generated from RARE rule bv-zero-extend-eliminate-0
      +
      BV_ZERO_EXTEND_EQ_CONST_1 +
      Auto-generated from RARE rule bv-zero-extend-eq--1
      +
      BV_ZERO_EXTEND_EQ_CONST_2 +
      Auto-generated from RARE rule bv-zero-extend-eq--2
      +
      BV_ZERO_ULE +
      Auto-generated from RARE rule bv-zero-ule
      +
      DISTINCT_BINARY_ELIM +
      Auto-generated from RARE rule distinct-binary-elim
      +
      DISTINCT_CARD_CONFLICT +
      Builtin – Distinct cardinality conflict + + \[ + \texttt{distinct}(t_1, \ldots, tn) = \bot + \] + where \(n\) is greater than the cardinality of the type of + \(t_1, \ldots, t_n\).
      +
      DISTINCT_ELIM +
      Builtin – Distinct elimination + + \[ + \texttt{distinct}(t_1, t_2) = \neg (t_1 = t2) + \] + if \(n = 2\), or + + \[ + \texttt{distinct}(t_1, \ldots, tn) = \bigwedge_{i=1}^n \bigwedge_{j=i+1}^n t_i \neq t_j + \] + if \(n > 2\)
      +
      DT_COLLAPSE_SELECTOR +
      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_TESTER +
      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_SINGLETON +
      Datatypes – collapse tester + + \[ + \mathit{is}_c(t) = true + \] + where \(c\) is the only constructor of its associated datatype.
      +
      DT_COLLAPSE_UPDATER +
      Datatypes – collapse tester + + \[ + u_{c,i}(c(t_1, \ldots, t_i, \ldots, t_n), s) = c(t_1, \ldots, s, \ldots, t_n) + \] + or alternatively + + \[ + u_{c,i}(d(t_1, \ldots, t_n), s) = d(t_1, \ldots, t_n) + \] + where \(c\) and \(d\) are distinct constructors.
      +
      DT_CONS_EQ +
      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_CYCLE +
      Datatypes – cycle + + \[ + (x = t[x]) = \bot + \] + where all terms on the path to \(x\) in \(t[x]\) are applications + of constructors, and this path is non-empty.
      +
      DT_INST +
      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_MATCH_ELIM +
      Datatypes – match elimination + + \[ + \texttt{match}(t ((p_1 c_1) \ldots (p_n c_n))) = \texttt{ite}(F_1, r_1, \texttt{ite}( \ldots, r_n)) + \] + where for \(i=1, \ldots, n\), \(F_1\) is a formula that holds iff + \(t\) matches \(p_i\) and \(r_i\) is the result of a + substitution on \(c_i\) based on this match.
      +
      DT_UPDATER_ELIM +
      Datatypes - updater elimination + + \[ + u_{c,i}(t, s) = ite(\mathit{is}_c(t), c(s_0(t), \ldots, s, \ldots s_n(t)), t) + \] + where \(s_i\) is the \(i^{th}\) selector for constructor \(c\).
      +
      EQ_COND_DEQ +
      Auto-generated from RARE rule eq-cond-deq
      +
      EQ_ITE_LIFT +
      Auto-generated from RARE rule eq-ite-lift
      +
      EQ_REFL +
      Auto-generated from RARE rule eq-refl
      +
      EQ_SYMM +
      Auto-generated from RARE rule eq-symm
      +
      EXISTS_ELIM +
      Quantifiers – Exists elimination + + \[ + \exists x_1\dots x_n.\> F = \neg \forall x_1\dots x_n.\> \neg F + \]
      +
      INT_TO_BV_ELIM +
      UF – Integer to bitvector elimination + + \[ + \texttt{int2bv}_n(t) = (bvconcat t_1 \ldots t_n) + \] + where for \(i=1, \ldots, n\), \(t_i\) is + \(\texttt{ite}(\texttt{mod}(t,2^n) \geq 2^{n-1}, 1, 0)\).
      +
      ITE_ELSE_FALSE +
      Auto-generated from RARE rule ite-else-false
      +
      ITE_ELSE_LOOKAHEAD +
      Auto-generated from RARE rule ite-else-lookahead
      +
      ITE_ELSE_LOOKAHEAD_NOT_SELF +
      Auto-generated from RARE rule ite-else-lookahead-not-self
      +
      ITE_ELSE_LOOKAHEAD_SELF +
      Auto-generated from RARE rule ite-else-lookahead-self
      +
      ITE_ELSE_NEG_LOOKAHEAD +
      Auto-generated from RARE rule ite-else-neg-lookahead
      +
      ITE_ELSE_TRUE +
      Auto-generated from RARE rule ite-else-true
      +
      ITE_EQ_BRANCH +
      Auto-generated from RARE rule ite-eq-branch
      +
      ITE_EXPAND +
      Auto-generated from RARE rule ite-expand
      +
      ITE_FALSE_COND +
      Auto-generated from RARE rule ite-false-cond
      +
      ITE_NEG_BRANCH +
      Auto-generated from RARE rule ite-neg-branch
      +
      ITE_NOT_COND +
      Auto-generated from RARE rule ite-not-cond
      +
      ITE_THEN_FALSE +
      Auto-generated from RARE rule ite-then-false
      +
      ITE_THEN_LOOKAHEAD +
      Auto-generated from RARE rule ite-then-lookahead
      +
      ITE_THEN_LOOKAHEAD_NOT_SELF +
      Auto-generated from RARE rule ite-then-lookahead-not-self
      +
      ITE_THEN_LOOKAHEAD_SELF +
      Auto-generated from RARE rule ite-then-lookahead-self
      +
      ITE_THEN_NEG_LOOKAHEAD +
      Auto-generated from RARE rule ite-then-neg-lookahead
      +
      ITE_THEN_TRUE +
      Auto-generated from RARE rule ite-then-true
      +
      ITE_TRUE_COND +
      Auto-generated from RARE rule ite-true-cond
      +
      LAMBDA_ELIM +
      Equality – Lambda elimination + + \[ + (\lambda x_1 \ldots x_n.\> f(x_1 \ldots x_n)) = f + \]
      +
      MACRO_ARITH_STRING_PRED_ENTAIL +
      Arithmetic – strings predicate entailment + + \[ + (= s t) = c + \] + \[ + (>= s t) = c + \] + where \(c\) is a Boolean constant.
      +
      MACRO_ARRAYS_DISTINCT_ARRAYS +
      Arrays – Macro distinct arrays + + \[ + (A = B) = \bot + \] + where \(A\) and \(B\) are distinct array values, that is, + the Node.isConst method returns true for both.
      +
      MACRO_ARRAYS_NORMALIZE_CONSTANT +
      Arrays – Macro normalize constant + + \[ + A = B + \] + where \(B\) is the result of normalizing the array value \(A\) + into a canonical form, using the internal method + TheoryArraysRewriter.normalizeConstant.
      +
      MACRO_BOOL_NNF_NORM +
      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_QUANT_MERGE_PRENEX +
      Quantifiers – Macro merge prenex + + \[ + \forall X_1.\> \ldots \forall X_n.\> F = \forall X.\> F + \] + where \(X_1 \ldots X_n\) are lists of variables and \(X\) is the + result of removing duplicates from \(X_1 \ldots X_n\).
      +
      MACRO_QUANT_MINISCOPE +
      Quantifiers – Macro miniscoping + + \[ + \forall X.\> F_1 \wedge \cdots \wedge F_n = + G_1 \wedge \cdots \wedge G_n + \] + where each \(G_i\) is semantically equivalent to + \(\forall X.\> F_i\), or alternatively + + \[ + \forall X.\> \ite{C}{F_1}{F_2} = \ite{C}{G_1}{G_2} + \] + where \(C\) does not have any free variable in \(X\).
      +
      MACRO_QUANT_PARTITION_CONNECTED_FV +
      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\).
      +
      MACRO_QUANT_PRENEX +
      Quantifiers – Macro prenex + + \[ + (\forall X.\> F_1 \vee \cdots \vee (\forall Y.\> F_i) \vee \cdots \vee F_n) = (\forall X Z.\> F_1 \vee \cdots \vee F_i\{ Y \mapsto Z \} \vee \cdots \vee F_n) + \]
      +
      MACRO_QUANT_REWRITE_BODY +
      Quantifiers – Macro quantifiers rewrite body + + \[ + \forall X.\> F = \forall X.\> G + \] + where \(G\) is semantically equivalent to \(F\).
      +
      MACRO_QUANT_VAR_ELIM_EQ +
      Quantifiers – Macro variable elimination equality + + \[ + \forall x Y.\> F = \forall Y.\> F \{ x \mapsto t \} + \] + where \(\neg F\) entails \(x = t\).
      +
      MACRO_QUANT_VAR_ELIM_INEQ +
      Quantifiers – Macro variable elimination inequality + + \[ + \forall x Y.\> F = \forall Y.\> G + \] + where \(G\) is the result of replacing all literals containing + \(x\) with a constant.
      +
      MACRO_SUBSTR_STRIP_SYM_LENGTH +
      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\).
      +
      NONE +
      This enumeration represents the rewrite rules used in a rewrite proof.
      +
      QUANT_DT_SPLIT +
      Quantifiers – Datatypes Split + + \[ + (\forall x Y.\> F) = (\forall X_1 Y.
      +
      QUANT_MERGE_PRENEX +
      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_MINISCOPE_AND +
      Quantifiers – Miniscoping and + + \[ + \forall X.\> F_1 \wedge \ldots \wedge F_n = + (\forall X.\> F_1) \wedge \ldots \wedge (\forall X.\> F_n) + \]
      +
      QUANT_MINISCOPE_ITE +
      Quantifiers – Miniscoping ite + + \[ + \forall X.\> \ite{C}{F_1}{F_2} = \ite{C}{\forall X.\> F_1}{\forall X.\> F_2} + \] + where \(C\) does not have any free variable in \(X\).
      +
      QUANT_MINISCOPE_OR +
      Quantifiers – Miniscoping or + + \[ + \forall X.\> F_1 \vee \ldots \vee F_n = (\forall X_1.\> F_1) \vee \ldots \vee (\forall X_n.\> F_n) + \] + where \(X = X_1 \ldots X_n\), and the right hand side does not have any + free variable in \(X\).
      +
      QUANT_UNUSED_VARS +
      Quantifiers – Unused variables + + \[ + \forall X.\> F = \forall X_1.\> F + \] + where \(X_1\) is the subset of \(X\) that appear free in \(F\) + and \(X_1\) does not contain duplicate variables.
      +
      QUANT_VAR_ELIM_EQ +
      Quantifiers – Macro variable elimination equality + + ..
      +
      RE_ALL_ELIM +
      Auto-generated from RARE rule re-all-elim
      +
      RE_CONCAT_EMP +
      Auto-generated from RARE rule re-concat-emp
      +
      RE_CONCAT_FLATTEN +
      Auto-generated from RARE rule re-concat-flatten
      +
      RE_CONCAT_MERGE +
      Auto-generated from RARE rule re-concat-merge
      +
      RE_CONCAT_NONE +
      Auto-generated from RARE rule re-concat-none
      +
      RE_CONCAT_STAR_REPEAT +
      Auto-generated from RARE rule re-concat-star-repeat
      +
      RE_CONCAT_STAR_SWAP +
      Auto-generated from RARE rule re-concat-star-swap
      +
      RE_DIFF_ELIM +
      Auto-generated from RARE rule re-diff-elim
      +
      RE_IN_COMP +
      Auto-generated from RARE rule re-in-comp
      +
      RE_IN_CSTRING +
      Auto-generated from RARE rule re-in-cstring
      +
      RE_IN_EMPTY +
      Auto-generated from RARE rule re-in-empty
      +
      RE_IN_SIGMA +
      Auto-generated from RARE rule re-in-sigma
      +
      RE_IN_SIGMA_STAR +
      Auto-generated from RARE rule re-in-sigma-star
      +
      RE_INTER_ALL +
      Auto-generated from RARE rule re-inter-all
      +
      RE_INTER_CSTRING +
      Auto-generated from RARE rule re-inter-cstring
      +
      RE_INTER_CSTRING_NEG +
      Auto-generated from RARE rule re-inter-cstring-neg
      +
      RE_INTER_DUP +
      Auto-generated from RARE rule re-inter-dup
      +
      RE_INTER_FLATTEN +
      Auto-generated from RARE rule re-inter-flatten
      +
      RE_INTER_NONE +
      Auto-generated from RARE rule re-inter-none
      +
      RE_INTER_UNION_INCLUSION +
      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`.
      +
      RE_LOOP_ELIM +
      Strings – regular expression loop elimination + + \[ + re.loop_{l,u}(R) = re.union(R^l, \ldots, R^u) + \] + where \(u \geq l\).
      +
      RE_LOOP_NEG +
      Auto-generated from RARE rule re-loop-neg
      +
      RE_OPT_ELIM +
      Auto-generated from RARE rule re-opt-elim
      +
      RE_STAR_NONE +
      Auto-generated from RARE rule re-star-none
      +
      RE_UNION_ALL +
      Auto-generated from RARE rule re-union-all
      +
      RE_UNION_DUP +
      Auto-generated from RARE rule re-union-dup
      +
      RE_UNION_FLATTEN +
      Auto-generated from RARE rule re-union-flatten
      +
      RE_UNION_NONE +
      Auto-generated from RARE rule re-union-none
      +
      SEQ_LEN_EMPTY +
      Auto-generated from RARE rule seq-len-empty
      +
      SEQ_LEN_REV +
      Auto-generated from RARE rule seq-len-rev
      +
      SEQ_LEN_UNIT +
      Auto-generated from RARE rule seq-len-unit
      +
      SEQ_NTH_UNIT +
      Auto-generated from RARE rule seq-nth-unit
      +
      SEQ_REV_CONCAT +
      Auto-generated from RARE rule seq-rev-concat
      +
      SEQ_REV_REV +
      Auto-generated from RARE rule seq-rev-rev
      +
      SEQ_REV_UNIT +
      Auto-generated from RARE rule seq-rev-unit
      +
      SETS_CARD_EMP +
      Auto-generated from RARE rule sets-card-emp
      +
      SETS_CARD_MINUS +
      Auto-generated from RARE rule sets-card-minus
      +
      SETS_CARD_SINGLETON +
      Auto-generated from RARE rule sets-card-singleton
      +
      SETS_CARD_UNION +
      Auto-generated from RARE rule sets-card-union
      +
      SETS_CHOOSE_SINGLETON +
      Auto-generated from RARE rule sets-choose-singleton
      +
      SETS_EQ_SINGLETON_EMP +
      Auto-generated from RARE rule sets-eq-singleton-emp
      +
      SETS_INSERT_ELIM +
      Sets – sets insert elimination + + \[ + \mathit{sets.insert}(t_1, \ldots, t_n, S) = \texttt{set.union}(\texttt{sets.singleton}(t_1), \ldots, \texttt{sets.singleton}(t_n), S) + \]
      +
      SETS_INTER_COMM +
      Auto-generated from RARE rule sets-inter-comm
      +
      SETS_INTER_EMP1 +
      Auto-generated from RARE rule sets-inter-emp1
      +
      SETS_INTER_EMP2 +
      Auto-generated from RARE rule sets-inter-emp2
      +
      SETS_INTER_MEMBER +
      Auto-generated from RARE rule sets-inter-member
      +
      SETS_IS_EMPTY_ELIM +
      Auto-generated from RARE rule sets-is-empty-elim
      +
      SETS_IS_EMPTY_EVAL +
      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_MEMBER_EMP +
      Auto-generated from RARE rule sets-member-emp
      +
      SETS_MEMBER_SINGLETON +
      Auto-generated from RARE rule sets-member-singleton
      +
      SETS_MINUS_EMP1 +
      Auto-generated from RARE rule sets-minus-emp1
      +
      SETS_MINUS_EMP2 +
      Auto-generated from RARE rule sets-minus-emp2
      +
      SETS_MINUS_MEMBER +
      Auto-generated from RARE rule sets-minus-member
      +
      SETS_MINUS_SELF +
      Auto-generated from RARE rule sets-minus-self
      +
      SETS_SUBSET_ELIM +
      Auto-generated from RARE rule sets-subset-elim
      +
      SETS_UNION_COMM +
      Auto-generated from RARE rule sets-union-comm
      +
      SETS_UNION_EMP1 +
      Auto-generated from RARE rule sets-union-emp1
      +
      SETS_UNION_EMP2 +
      Auto-generated from RARE rule sets-union-emp2
      +
      SETS_UNION_MEMBER +
      Auto-generated from RARE rule sets-union-member
      +
      STR_AT_ELIM +
      Auto-generated from RARE rule str-at-elim
      +
      STR_CONCAT_CLASH +
      Auto-generated from RARE rule str-concat-clash
      +
      STR_CONCAT_CLASH_CHAR +
      Auto-generated from RARE rule str-concat-clash-char
      +
      STR_CONCAT_CLASH_CHAR_REV +
      Auto-generated from RARE rule str-concat-clash-char-rev
      +
      STR_CONCAT_CLASH_REV +
      Auto-generated from RARE rule str-concat-clash-rev
      +
      STR_CONCAT_CLASH2 +
      Auto-generated from RARE rule str-concat-clash2
      +
      STR_CONCAT_CLASH2_REV +
      Auto-generated from RARE rule str-concat-clash2-rev
      +
      STR_CONCAT_FLATTEN +
      Auto-generated from RARE rule str-concat-flatten
      +
      STR_CONCAT_FLATTEN_EQ +
      Auto-generated from RARE rule str-concat-flatten-eq
      +
      STR_CONCAT_FLATTEN_EQ_REV +
      Auto-generated from RARE rule str-concat-flatten-eq-rev
      +
      STR_CONCAT_UNIFY +
      Auto-generated from RARE rule str-concat-unify
      +
      STR_CONCAT_UNIFY_BASE +
      Auto-generated from RARE rule str-concat-unify-base
      +
      STR_CONCAT_UNIFY_BASE_REV +
      Auto-generated from RARE rule str-concat-unify-base-rev
      +
      STR_CONCAT_UNIFY_REV +
      Auto-generated from RARE rule str-concat-unify-rev
      +
      STR_CONTAINS_CONCAT_FIND +
      Auto-generated from RARE rule str-contains-concat-find
      +
      STR_CONTAINS_EMP +
      Auto-generated from RARE rule str-contains-emp
      +
      STR_CONTAINS_IS_EMP +
      Auto-generated from RARE rule str-contains-is-emp
      +
      STR_CONTAINS_LEQ_LEN_EQ +
      Auto-generated from RARE rule str-contains-leq-len-eq
      +
      STR_CONTAINS_LT_LEN +
      Auto-generated from RARE rule str-contains-lt-len
      +
      STR_CONTAINS_REFL +
      Auto-generated from RARE rule str-contains-refl
      +
      STR_CONTAINS_SPLIT_CHAR +
      Auto-generated from RARE rule str-contains-split-char
      +
      STR_EQ_CTN_FALSE +
      Auto-generated from RARE rule str-eq-ctn-false
      +
      STR_EQ_CTN_FULL_FALSE1 +
      Auto-generated from RARE rule str-eq-ctn-full-false1
      +
      STR_EQ_CTN_FULL_FALSE2 +
      Auto-generated from RARE rule str-eq-ctn-full-false2
      +
      STR_IN_RE_CONCAT_STAR_CHAR +
      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_CONSUME +
      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_CONTAINS +
      Auto-generated from RARE rule str-in-re-contains
      +
      STR_IN_RE_EVAL +
      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_INTER_ELIM +
      Auto-generated from RARE rule str-in-re-inter-elim
      +
      STR_IN_RE_RANGE_ELIM +
      Auto-generated from RARE rule str-in-re-range-elim
      +
      STR_IN_RE_REQ_UNFOLD +
      Auto-generated from RARE rule str-in-re-req-unfold
      +
      STR_IN_RE_REQ_UNFOLD_REV +
      Auto-generated from RARE rule str-in-re-req-unfold-rev
      +
      STR_IN_RE_SIGMA +
      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_STAR +
      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_SKIP_UNFOLD +
      Auto-generated from RARE rule str-in-re-skip-unfold
      +
      STR_IN_RE_SKIP_UNFOLD_REV +
      Auto-generated from RARE rule str-in-re-skip-unfold-rev
      +
      STR_IN_RE_STRIP_CHAR +
      Auto-generated from RARE rule str-in-re-strip-char
      +
      STR_IN_RE_STRIP_CHAR_REV +
      Auto-generated from RARE rule str-in-re-strip-char-rev
      +
      STR_IN_RE_STRIP_CHAR_S_SINGLE +
      Auto-generated from RARE rule str-in-re-strip-char-s-single
      +
      STR_IN_RE_STRIP_CHAR_S_SINGLE_REV +
      Auto-generated from RARE rule str-in-re-strip-char-s-single-rev
      +
      STR_IN_RE_STRIP_PREFIX +
      Auto-generated from RARE rule str-in-re-strip-prefix
      +
      STR_IN_RE_STRIP_PREFIX_BASE +
      Auto-generated from RARE rule str-in-re-strip-prefix-base
      +
      STR_IN_RE_STRIP_PREFIX_BASE_NEG +
      Auto-generated from RARE rule str-in-re-strip-prefix-base-neg
      +
      STR_IN_RE_STRIP_PREFIX_BASE_NEG_REV +
      Auto-generated from RARE rule str-in-re-strip-prefix-base-neg-rev
      +
      STR_IN_RE_STRIP_PREFIX_BASE_REV +
      Auto-generated from RARE rule str-in-re-strip-prefix-base-rev
      +
      STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE +
      Auto-generated from RARE rule str-in-re-strip-prefix-base-s-single
      +
      STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG +
      Auto-generated from RARE rule str-in-re-strip-prefix-base-s-single-neg
      +
      STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG_REV +
      Auto-generated from RARE rule str-in-re-strip-prefix-base-s-single-neg-rev
      +
      STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_REV +
      Auto-generated from RARE rule str-in-re-strip-prefix-base-s-single-rev
      +
      STR_IN_RE_STRIP_PREFIX_NEG +
      Auto-generated from RARE rule str-in-re-strip-prefix-neg
      +
      STR_IN_RE_STRIP_PREFIX_NEG_REV +
      Auto-generated from RARE rule str-in-re-strip-prefix-neg-rev
      +
      STR_IN_RE_STRIP_PREFIX_REV +
      Auto-generated from RARE rule str-in-re-strip-prefix-rev
      +
      STR_IN_RE_STRIP_PREFIX_S_SINGLE +
      Auto-generated from RARE rule str-in-re-strip-prefix-s-single
      +
      STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG +
      Auto-generated from RARE rule str-in-re-strip-prefix-s-single-neg
      +
      STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG_REV +
      Auto-generated from RARE rule str-in-re-strip-prefix-s-single-neg-rev
      +
      STR_IN_RE_STRIP_PREFIX_S_SINGLE_REV +
      Auto-generated from RARE rule str-in-re-strip-prefix-s-single-rev
      +
      STR_IN_RE_STRIP_PREFIX_SR_SINGLE +
      Auto-generated from RARE rule str-in-re-strip-prefix-sr-single
      +
      STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG +
      Auto-generated from RARE rule str-in-re-strip-prefix-sr-single-neg
      +
      STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG_REV +
      Auto-generated from RARE rule str-in-re-strip-prefix-sr-single-neg-rev
      +
      STR_IN_RE_STRIP_PREFIX_SR_SINGLE_REV +
      Auto-generated from RARE rule str-in-re-strip-prefix-sr-single-rev
      +
      STR_IN_RE_STRIP_PREFIX_SRS_SINGLE +
      Auto-generated from RARE rule str-in-re-strip-prefix-srs-single
      +
      STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG +
      Auto-generated from RARE rule str-in-re-strip-prefix-srs-single-neg
      +
      STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG_REV +
      Auto-generated from RARE rule str-in-re-strip-prefix-srs-single-neg-rev
      +
      STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_REV +
      Auto-generated from RARE rule str-in-re-strip-prefix-srs-single-rev
      +
      STR_IN_RE_TEST_UNFOLD +
      Auto-generated from RARE rule str-in-re-test-unfold
      +
      STR_IN_RE_TEST_UNFOLD_REV +
      Auto-generated from RARE rule str-in-re-test-unfold-rev
      +
      STR_IN_RE_UNION_ELIM +
      Auto-generated from RARE rule str-in-re-union-elim
      +
      STR_INDEXOF_CONTAINS_PRE +
      Auto-generated from RARE rule str-indexof-contains-pre
      +
      STR_INDEXOF_NO_CONTAINS +
      Auto-generated from RARE rule str-indexof-no-contains
      +
      STR_INDEXOF_RE_NONE +
      Auto-generated from RARE rule str-indexof-re-none
      +
      STR_INDEXOF_SELF +
      Auto-generated from RARE rule str-indexof-self
      +
      STR_LEN_CONCAT_REC +
      Auto-generated from RARE rule str-len-concat-rec
      +
      STR_LEN_REPLACE_INV +
      Auto-generated from RARE rule str-len-replace-inv
      +
      STR_LEN_SUBSTR_IN_RANGE +
      Auto-generated from RARE rule str-len-substr-in-range
      +
      STR_LEN_SUBSTR_UB1 +
      Auto-generated from RARE rule str-len-substr-ub1
      +
      STR_LEN_SUBSTR_UB2 +
      Auto-generated from RARE rule str-len-substr-ub2
      +
      STR_LEN_UPDATE_INV +
      Auto-generated from RARE rule str-len-update-inv
      +
      STR_LEQ_CONCAT_FALSE +
      Auto-generated from RARE rule str-leq-concat-false
      +
      STR_LEQ_CONCAT_TRUE +
      Auto-generated from RARE rule str-leq-concat-true
      +
      STR_LEQ_EMPTY +
      Auto-generated from RARE rule str-leq-empty
      +
      STR_LEQ_EMPTY_EQ +
      Auto-generated from RARE rule str-leq-empty-eq
      +
      STR_LT_ELIM +
      Auto-generated from RARE rule str-lt-elim
      +
      STR_PREFIXOF_ELIM +
      Auto-generated from RARE rule str-prefixof-elim
      +
      STR_PREFIXOF_ONE +
      Auto-generated from RARE rule str-prefixof-one
      +
      STR_REPLACE_ALL_NO_CONTAINS +
      Auto-generated from RARE rule str-replace-all-no-contains
      +
      STR_REPLACE_CONTAINS_PRE +
      Auto-generated from RARE rule str-replace-contains-pre
      +
      STR_REPLACE_EMPTY +
      Auto-generated from RARE rule str-replace-empty
      +
      STR_REPLACE_NO_CONTAINS +
      Auto-generated from RARE rule str-replace-no-contains
      +
      STR_REPLACE_PREFIX +
      Auto-generated from RARE rule str-replace-prefix
      +
      STR_REPLACE_RE_ALL_NONE +
      Auto-generated from RARE rule str-replace-re-all-none
      +
      STR_REPLACE_RE_NONE +
      Auto-generated from RARE rule str-replace-re-none
      +
      STR_REPLACE_SELF +
      Auto-generated from RARE rule str-replace-self
      +
      STR_SUBSTR_COMBINE1 +
      Auto-generated from RARE rule str-substr-combine1
      +
      STR_SUBSTR_COMBINE2 +
      Auto-generated from RARE rule str-substr-combine2
      +
      STR_SUBSTR_COMBINE3 +
      Auto-generated from RARE rule str-substr-combine3
      +
      STR_SUBSTR_COMBINE4 +
      Auto-generated from RARE rule str-substr-combine4
      +
      STR_SUBSTR_CONCAT1 +
      Auto-generated from RARE rule str-substr-concat1
      +
      STR_SUBSTR_CONCAT2 +
      Auto-generated from RARE rule str-substr-concat2
      +
      STR_SUBSTR_EMPTY_RANGE +
      Auto-generated from RARE rule str-substr-empty-range
      +
      STR_SUBSTR_EMPTY_START +
      Auto-generated from RARE rule str-substr-empty-start
      +
      STR_SUBSTR_EMPTY_START_NEG +
      Auto-generated from RARE rule str-substr-empty-start-neg
      +
      STR_SUBSTR_EMPTY_STR +
      Auto-generated from RARE rule str-substr-empty-str
      +
      STR_SUBSTR_EQ_EMPTY +
      Auto-generated from RARE rule str-substr-eq-empty
      +
      STR_SUBSTR_FULL +
      Auto-generated from RARE rule str-substr-full
      +
      STR_SUBSTR_FULL_EQ +
      Auto-generated from RARE rule str-substr-full-eq
      +
      STR_SUBSTR_LEN_INCLUDE +
      Auto-generated from RARE rule str-substr-len-include
      +
      STR_SUBSTR_LEN_INCLUDE_PRE +
      Auto-generated from RARE rule str-substr-len-include-pre
      +
      STR_SUBSTR_LEN_SKIP +
      Auto-generated from RARE rule str-substr-len-skip
      +
      STR_SUFFIXOF_ELIM +
      Auto-generated from RARE rule str-suffixof-elim
      +
      STR_SUFFIXOF_ONE +
      Auto-generated from RARE rule str-suffixof-one
      +
      STR_TO_INT_CONCAT_NEG_ONE +
      Auto-generated from RARE rule str-to-int-concat-neg-one
      +
      STR_TO_LOWER_CONCAT +
      Auto-generated from RARE rule str-to-lower-concat
      +
      STR_TO_LOWER_FROM_INT +
      Auto-generated from RARE rule str-to-lower-from-int
      +
      STR_TO_LOWER_LEN +
      Auto-generated from RARE rule str-to-lower-len
      +
      STR_TO_LOWER_UPPER +
      Auto-generated from RARE rule str-to-lower-upper
      +
      STR_TO_UPPER_CONCAT +
      Auto-generated from RARE rule str-to-upper-concat
      +
      STR_TO_UPPER_FROM_INT +
      Auto-generated from RARE rule str-to-upper-from-int
      +
      STR_TO_UPPER_LEN +
      Auto-generated from RARE rule str-to-upper-len
      +
      STR_TO_UPPER_LOWER +
      Auto-generated from RARE rule str-to-upper-lower
      +
      UF_BV2NAT_GEQ_ELIM +
      Auto-generated from RARE rule uf-bv2nat-geq-elim
      +
      UF_BV2NAT_INT2BV +
      Auto-generated from RARE rule uf-bv2nat-int2bv
      +
      UF_BV2NAT_INT2BV_EXTEND +
      Auto-generated from RARE rule uf-bv2nat-int2bv-extend
      +
      UF_BV2NAT_INT2BV_EXTRACT +
      Auto-generated from RARE rule uf-bv2nat-int2bv-extract
      +
      UF_INT2BV_BV2NAT +
      Auto-generated from RARE rule uf-int2bv-bv2nat
      +
      UF_INT2BV_BVULE_EQUIV +
      Auto-generated from RARE rule uf-int2bv-bvule-equiv
      +
      UF_INT2BV_BVULT_EQUIV +
      Auto-generated from RARE rule uf-int2bv-bvult-equiv
      +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and TypeMethodDescription
      static ProofRewriteRulefromInt​(int value) 
      intgetValue() 
      static ProofRewriteRulevalueOf​(java.lang.String name) +
      Returns the enum constant of this type with the specified name.
      +
      static ProofRewriteRule[]values() +
      Returns an array containing the constants of this enum type, in +the order they are declared.
      +
      +
        +
      • + + +

        Methods inherited from class java.lang.Enum

        +clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
      • +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +getClass, notify, notifyAll, wait, wait, wait
      • +
      +
    • +
    +
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Enum Constant Detail

      + + + +
        +
      • +

        NONE

        +
        public static final ProofRewriteRule NONE
        +
        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.ProofRule.DSL_REWRITE> proof rule + and the THEORY_REWRITE <cvc5.ProofRule.THEORY_REWRITE> + proof rule.
        +
      • +
      + + + +
        +
      • +

        DISTINCT_ELIM

        +
        public static final ProofRewriteRule DISTINCT_ELIM
        +
        Builtin – Distinct elimination + + \[ + \texttt{distinct}(t_1, t_2) = \neg (t_1 = t2) + \] + if \(n = 2\), or + + \[ + \texttt{distinct}(t_1, \ldots, tn) = \bigwedge_{i=1}^n \bigwedge_{j=i+1}^n t_i \neq t_j + \] + if \(n > 2\)
        +
      • +
      + + + +
        +
      • +

        DISTINCT_CARD_CONFLICT

        +
        public static final ProofRewriteRule DISTINCT_CARD_CONFLICT
        +
        Builtin – Distinct cardinality conflict + + \[ + \texttt{distinct}(t_1, \ldots, tn) = \bot + \] + where \(n\) is greater than the cardinality of the type of + \(t_1, \ldots, t_n\).
        +
      • +
      + + + +
        +
      • +

        BV_TO_NAT_ELIM

        +
        public static final ProofRewriteRule BV_TO_NAT_ELIM
        +
        UF – Bitvector to natural elimination + + \[ + \texttt{bv2nat}(t) = t_1 + \ldots + t_n + \] + where for \(i=1, \ldots, n\), \(t_i\) is + \(\texttt{ite}(x[i-1, i-1] = 1, 2^i, 0)\).
        +
      • +
      + + + +
        +
      • +

        INT_TO_BV_ELIM

        +
        public static final ProofRewriteRule INT_TO_BV_ELIM
        +
        UF – Integer to bitvector elimination + + \[ + \texttt{int2bv}_n(t) = (bvconcat t_1 \ldots t_n) + \] + where for \(i=1, \ldots, n\), \(t_i\) is + \(\texttt{ite}(\texttt{mod}(t,2^n) \geq 2^{n-1}, 1, 0)\).
        +
      • +
      + + + +
        +
      • +

        MACRO_BOOL_NNF_NORM

        +
        public static final ProofRewriteRule MACRO_BOOL_NNF_NORM
        +
        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_ARITH_STRING_PRED_ENTAIL

        +
        public static final ProofRewriteRule MACRO_ARITH_STRING_PRED_ENTAIL
        +
        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.ProofRule.EVALUATE>, + ARITH_POLY_NORM <cvc5.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.
        +
      • +
      + + + +
        +
      • +

        ARITH_STRING_PRED_ENTAIL

        +
        public static final ProofRewriteRule ARITH_STRING_PRED_ENTAIL
        +
        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_SAFE_APPROX

        +
        public static final ProofRewriteRule ARITH_STRING_PRED_SAFE_APPROX
        +
        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_POW_ELIM

        +
        public static final ProofRewriteRule ARITH_POW_ELIM
        +
        Arithmetic – power elimination + + \[ + (x ^ c) = (x \cdot \ldots \cdot x) + \] + where \(c\) is a non-negative integer.
        +
      • +
      + + + +
        +
      • +

        BETA_REDUCE

        +
        public static final ProofRewriteRule BETA_REDUCE
        +
        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 Node.substitute.
        +
      • +
      + + + +
        +
      • +

        LAMBDA_ELIM

        +
        public static final ProofRewriteRule LAMBDA_ELIM
        +
        Equality – Lambda elimination + + \[ + (\lambda x_1 \ldots x_n.\> f(x_1 \ldots x_n)) = f + \]
        +
      • +
      + + + +
        +
      • +

        ARRAYS_SELECT_CONST

        +
        public static final ProofRewriteRule ARRAYS_SELECT_CONST
        +
        Arrays – Constant array select + + \[ + (select A x) = c + \] + where \(A\) is a constant array storing element \(c\).
        +
      • +
      + + + +
        +
      • +

        MACRO_ARRAYS_DISTINCT_ARRAYS

        +
        public static final ProofRewriteRule MACRO_ARRAYS_DISTINCT_ARRAYS
        +
        Arrays – Macro distinct arrays + + \[ + (A = B) = \bot + \] + where \(A\) and \(B\) are distinct array values, that is, + the Node.isConst method returns true for both.
        +
      • +
      + + + +
        +
      • +

        MACRO_ARRAYS_NORMALIZE_CONSTANT

        +
        public static final ProofRewriteRule MACRO_ARRAYS_NORMALIZE_CONSTANT
        +
        Arrays – Macro normalize constant + + \[ + A = B + \] + where \(B\) is the result of normalizing the array value \(A\) + into a canonical form, using the internal method + TheoryArraysRewriter.normalizeConstant.
        +
      • +
      + + + +
        +
      • +

        ARRAYS_EQ_RANGE_EXPAND

        +
        public static final ProofRewriteRule ARRAYS_EQ_RANGE_EXPAND
        +
        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) + \]
        +
      • +
      + + + +
        +
      • +

        EXISTS_ELIM

        +
        public static final ProofRewriteRule EXISTS_ELIM
        +
        Quantifiers – Exists elimination + + \[ + \exists x_1\dots x_n.\> F = \neg \forall x_1\dots x_n.\> \neg F + \]
        +
      • +
      + + + +
        +
      • +

        QUANT_UNUSED_VARS

        +
        public static final ProofRewriteRule QUANT_UNUSED_VARS
        +
        Quantifiers – Unused variables + + \[ + \forall X.\> F = \forall X_1.\> F + \] + where \(X_1\) is the subset of \(X\) that appear free in \(F\) + and \(X_1\) does not contain duplicate variables.
        +
      • +
      + + + +
        +
      • +

        MACRO_QUANT_MERGE_PRENEX

        +
        public static final ProofRewriteRule MACRO_QUANT_MERGE_PRENEX
        +
        Quantifiers – Macro merge prenex + + \[ + \forall X_1.\> \ldots \forall X_n.\> F = \forall X.\> F + \] + where \(X_1 \ldots X_n\) are lists of variables and \(X\) is the + result of removing duplicates from \(X_1 \ldots X_n\).
        +
      • +
      + + + +
        +
      • +

        QUANT_MERGE_PRENEX

        +
        public static final ProofRewriteRule QUANT_MERGE_PRENEX
        +
        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.
        +
      • +
      + + + +
        +
      • +

        MACRO_QUANT_PRENEX

        +
        public static final ProofRewriteRule MACRO_QUANT_PRENEX
        +
        Quantifiers – Macro prenex + + \[ + (\forall X.\> F_1 \vee \cdots \vee (\forall Y.\> F_i) \vee \cdots \vee F_n) = (\forall X Z.\> F_1 \vee \cdots \vee F_i\{ Y \mapsto Z \} \vee \cdots \vee F_n) + \]
        +
      • +
      + + + +
        +
      • +

        MACRO_QUANT_MINISCOPE

        +
        public static final ProofRewriteRule MACRO_QUANT_MINISCOPE
        +
        Quantifiers – Macro miniscoping + + \[ + \forall X.\> F_1 \wedge \cdots \wedge F_n = + G_1 \wedge \cdots \wedge G_n + \] + where each \(G_i\) is semantically equivalent to + \(\forall X.\> F_i\), or alternatively + + \[ + \forall X.\> \ite{C}{F_1}{F_2} = \ite{C}{G_1}{G_2} + \] + where \(C\) does not have any free variable in \(X\).
        +
      • +
      + + + +
        +
      • +

        QUANT_MINISCOPE_AND

        +
        public static final ProofRewriteRule QUANT_MINISCOPE_AND
        +
        Quantifiers – Miniscoping and + + \[ + \forall X.\> F_1 \wedge \ldots \wedge F_n = + (\forall X.\> F_1) \wedge \ldots \wedge (\forall X.\> F_n) + \]
        +
      • +
      + + + +
        +
      • +

        QUANT_MINISCOPE_OR

        +
        public static final ProofRewriteRule QUANT_MINISCOPE_OR
        +
        Quantifiers – Miniscoping or + + \[ + \forall X.\> F_1 \vee \ldots \vee F_n = (\forall X_1.\> F_1) \vee \ldots \vee (\forall X_n.\> F_n) + \] + where \(X = X_1 \ldots X_n\), and the right hand side does not have any + free variable in \(X\).
        +
      • +
      + + + +
        +
      • +

        QUANT_MINISCOPE_ITE

        +
        public static final ProofRewriteRule QUANT_MINISCOPE_ITE
        +
        Quantifiers – Miniscoping ite + + \[ + \forall X.\> \ite{C}{F_1}{F_2} = \ite{C}{\forall X.\> F_1}{\forall X.\> F_2} + \] + where \(C\) does not have any free variable in \(X\).
        +
      • +
      + + + +
        +
      • +

        QUANT_DT_SPLIT

        +
        public static final ProofRewriteRule QUANT_DT_SPLIT
        +
        Quantifiers – Datatypes Split + + \[ + (\forall x Y.\> F) = (\forall X_1 Y. F_1) \vee \cdots \vee (\forall X_n Y. F_n) + \] + where \(x\) is of a datatype type with constructors + \(C_1, \ldots, C_n\), where for each \(i = 1, \ldots, n\), + \(F_i\) is \(F \{ x \mapsto C_i(X_i) \}\).
        +
      • +
      + + + +
        +
      • +

        MACRO_QUANT_PARTITION_CONNECTED_FV

        +
        public static final ProofRewriteRule MACRO_QUANT_PARTITION_CONNECTED_FV
        +
        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_VAR_ELIM_EQ

        +
        public static final ProofRewriteRule MACRO_QUANT_VAR_ELIM_EQ
        +
        Quantifiers – Macro variable elimination equality + + \[ + \forall x Y.\> F = \forall Y.\> F \{ x \mapsto t \} + \] + where \(\neg F\) entails \(x = t\).
        +
      • +
      + + + +
        +
      • +

        QUANT_VAR_ELIM_EQ

        +
        public static final ProofRewriteRule QUANT_VAR_ELIM_EQ
        +
        Quantifiers – Macro variable elimination equality + + .. math. + (\forall x.\> x \neq t \vee F) = F \{ x \mapsto t \} + + or alternatively + + .. math. + (\forall x.\> x \neq t) = \bot
        +
      • +
      + + + +
        +
      • +

        MACRO_QUANT_VAR_ELIM_INEQ

        +
        public static final ProofRewriteRule MACRO_QUANT_VAR_ELIM_INEQ
        +
        Quantifiers – Macro variable elimination inequality + + \[ + \forall x Y.\> F = \forall Y.\> G + \] + where \(G\) is the result of replacing all literals containing + \(x\) with a constant. This is applied only when all such literals + are lower (resp. upper) bounds for \(x\).
        +
      • +
      + + + +
        +
      • +

        MACRO_QUANT_REWRITE_BODY

        +
        public static final ProofRewriteRule MACRO_QUANT_REWRITE_BODY
        +
        Quantifiers – Macro quantifiers rewrite body + + \[ + \forall X.\> F = \forall X.\> G + \] + where \(G\) is semantically equivalent to \(F\).
        +
      • +
      + + + +
        +
      • +

        DT_INST

        +
        public static final ProofRewriteRule DT_INST
        +
        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_COLLAPSE_SELECTOR

        +
        public static final ProofRewriteRule DT_COLLAPSE_SELECTOR
        +
        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_TESTER

        +
        public static final ProofRewriteRule DT_COLLAPSE_TESTER
        +
        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_SINGLETON

        +
        public static final ProofRewriteRule DT_COLLAPSE_TESTER_SINGLETON
        +
        Datatypes – collapse tester + + \[ + \mathit{is}_c(t) = true + \] + where \(c\) is the only constructor of its associated datatype.
        +
      • +
      + + + +
        +
      • +

        DT_CONS_EQ

        +
        public static final ProofRewriteRule DT_CONS_EQ
        +
        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_CYCLE

        +
        public static final ProofRewriteRule DT_CYCLE
        +
        Datatypes – cycle + + \[ + (x = t[x]) = \bot + \] + where all terms on the path to \(x\) in \(t[x]\) are applications + of constructors, and this path is non-empty.
        +
      • +
      + + + +
        +
      • +

        DT_COLLAPSE_UPDATER

        +
        public static final ProofRewriteRule DT_COLLAPSE_UPDATER
        +
        Datatypes – collapse tester + + \[ + u_{c,i}(c(t_1, \ldots, t_i, \ldots, t_n), s) = c(t_1, \ldots, s, \ldots, t_n) + \] + or alternatively + + \[ + u_{c,i}(d(t_1, \ldots, t_n), s) = d(t_1, \ldots, t_n) + \] + where \(c\) and \(d\) are distinct constructors.
        +
      • +
      + + + +
        +
      • +

        DT_UPDATER_ELIM

        +
        public static final ProofRewriteRule DT_UPDATER_ELIM
        +
        Datatypes - updater elimination + + \[ + u_{c,i}(t, s) = ite(\mathit{is}_c(t), c(s_0(t), \ldots, s, \ldots s_n(t)), t) + \] + where \(s_i\) is the \(i^{th}\) selector for constructor \(c\).
        +
      • +
      + + + +
        +
      • +

        DT_MATCH_ELIM

        +
        public static final ProofRewriteRule DT_MATCH_ELIM
        +
        Datatypes – match elimination + + \[ + \texttt{match}(t ((p_1 c_1) \ldots (p_n c_n))) = \texttt{ite}(F_1, r_1, \texttt{ite}( \ldots, r_n)) + \] + where for \(i=1, \ldots, n\), \(F_1\) is a formula that holds iff + \(t\) matches \(p_i\) and \(r_i\) is the result of a + substitution on \(c_i\) based on this match.
        +
      • +
      + + + +
        +
      • +

        BV_UMULO_ELIMINATE

        +
        public static final ProofRewriteRule BV_UMULO_ELIMINATE
        +
        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

        +
        public static final ProofRewriteRule BV_SMULO_ELIMINATE
        +
        Bitvectors – Unsigned multiplication overflow detection elimination + + See M.Gok, M.J. Schulte, P.I. Balzola, "Efficient integer multiplication + overflow detection circuits", 2001. + http:
        +
      • +
      + + + +
        +
      • +

        BV_ADD_COMBINE_LIKE_TERMS

        +
        public static final ProofRewriteRule BV_ADD_COMBINE_LIKE_TERMS
        +
        Bitvectors – Combine like terms during addition by counting terms
        +
      • +
      + + + +
        +
      • +

        BV_MULT_SIMPLIFY

        +
        public static final ProofRewriteRule BV_MULT_SIMPLIFY
        +
        Bitvectors – Extract negations from multiplicands + + \[ + bvmul(bvneg(a),\ b,\ c) = bvneg(bvmul(a,\ b,\ c)) + \]
        +
      • +
      + + + +
        +
      • +

        BV_BITWISE_SLICING

        +
        public static final ProofRewriteRule BV_BITWISE_SLICING
        +
        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_REPEAT_ELIM

        +
        public static final ProofRewriteRule BV_REPEAT_ELIM
        +
        Bitvectors – Extract continuous substrings of bitvectors + + \[ + repeat(n,\ t) = concat(t ... t) + \] + where \(t\) is repeated \(n\) times.
        +
      • +
      + + + +
        +
      • +

        RE_LOOP_ELIM

        +
        public static final ProofRewriteRule RE_LOOP_ELIM
        +
        Strings – regular expression loop elimination + + \[ + re.loop_{l,u}(R) = re.union(R^l, \ldots, R^u) + \] + where \(u \geq l\).
        +
      • +
      + + + +
        +
      • +

        RE_INTER_UNION_INCLUSION

        +
        public static final ProofRewriteRule RE_INTER_UNION_INCLUSION
        +
        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`.
        +
      • +
      + + + +
        +
      • +

        STR_IN_RE_EVAL

        +
        public static final ProofRewriteRule STR_IN_RE_EVAL
        +
        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_CONSUME

        +
        public static final ProofRewriteRule STR_IN_RE_CONSUME
        +
        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_CONCAT_STAR_CHAR

        +
        public static final ProofRewriteRule STR_IN_RE_CONCAT_STAR_CHAR
        +
        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_SIGMA

        +
        public static final ProofRewriteRule STR_IN_RE_SIGMA
        +
        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_STAR

        +
        public static final ProofRewriteRule STR_IN_RE_SIGMA_STAR
        +
        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{++}\).
        +
      • +
      + + + +
        +
      • +

        MACRO_SUBSTR_STRIP_SYM_LENGTH

        +
        public static final ProofRewriteRule MACRO_SUBSTR_STRIP_SYM_LENGTH
        +
        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\).
        +
      • +
      + + + +
        +
      • +

        SETS_IS_EMPTY_EVAL

        +
        public static final ProofRewriteRule SETS_IS_EMPTY_EVAL
        +
        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_INSERT_ELIM

        +
        public static final ProofRewriteRule SETS_INSERT_ELIM
        +
        Sets – sets insert elimination + + \[ + \mathit{sets.insert}(t_1, \ldots, t_n, S) = \texttt{set.union}(\texttt{sets.singleton}(t_1), \ldots, \texttt{sets.singleton}(t_n), S) + \]
        +
      • +
      + + + +
        +
      • +

        ARITH_MUL_ONE

        +
        public static final ProofRewriteRule ARITH_MUL_ONE
        +
        Auto-generated from RARE rule arith-mul-one
        +
      • +
      + + + +
        +
      • +

        ARITH_MUL_ZERO

        +
        public static final ProofRewriteRule ARITH_MUL_ZERO
        +
        Auto-generated from RARE rule arith-mul-zero
        +
      • +
      + + + +
        +
      • +

        ARITH_DIV_TOTAL_REAL

        +
        public static final ProofRewriteRule ARITH_DIV_TOTAL_REAL
        +
        Auto-generated from RARE rule arith-div-total-real
        +
      • +
      + + + +
        +
      • +

        ARITH_DIV_TOTAL_INT

        +
        public static final ProofRewriteRule ARITH_DIV_TOTAL_INT
        +
        Auto-generated from RARE rule arith-div-total-int
        +
      • +
      + + + +
        +
      • +

        ARITH_DIV_TOTAL_ZERO_REAL

        +
        public static final ProofRewriteRule ARITH_DIV_TOTAL_ZERO_REAL
        +
        Auto-generated from RARE rule arith-div-total-zero-real
        +
      • +
      + + + +
        +
      • +

        ARITH_DIV_TOTAL_ZERO_INT

        +
        public static final ProofRewriteRule ARITH_DIV_TOTAL_ZERO_INT
        +
        Auto-generated from RARE rule arith-div-total-zero-int
        +
      • +
      + + + +
        +
      • +

        ARITH_INT_DIV_TOTAL

        +
        public static final ProofRewriteRule ARITH_INT_DIV_TOTAL
        +
        Auto-generated from RARE rule arith-int-div-total
        +
      • +
      + + + +
        +
      • +

        ARITH_INT_DIV_TOTAL_ONE

        +
        public static final ProofRewriteRule ARITH_INT_DIV_TOTAL_ONE
        +
        Auto-generated from RARE rule arith-int-div-total-one
        +
      • +
      + + + +
        +
      • +

        ARITH_INT_DIV_TOTAL_ZERO

        +
        public static final ProofRewriteRule ARITH_INT_DIV_TOTAL_ZERO
        +
        Auto-generated from RARE rule arith-int-div-total-zero
        +
      • +
      + + + +
        +
      • +

        ARITH_INT_MOD_TOTAL

        +
        public static final ProofRewriteRule ARITH_INT_MOD_TOTAL
        +
        Auto-generated from RARE rule arith-int-mod-total
        +
      • +
      + + + +
        +
      • +

        ARITH_INT_MOD_TOTAL_ONE

        +
        public static final ProofRewriteRule ARITH_INT_MOD_TOTAL_ONE
        +
        Auto-generated from RARE rule arith-int-mod-total-one
        +
      • +
      + + + +
        +
      • +

        ARITH_INT_MOD_TOTAL_ZERO

        +
        public static final ProofRewriteRule ARITH_INT_MOD_TOTAL_ZERO
        +
        Auto-generated from RARE rule arith-int-mod-total-zero
        +
      • +
      + + + +
        +
      • +

        ARITH_ELIM_GT

        +
        public static final ProofRewriteRule ARITH_ELIM_GT
        +
        Auto-generated from RARE rule arith-elim-gt
        +
      • +
      + + + +
        +
      • +

        ARITH_ELIM_LT

        +
        public static final ProofRewriteRule ARITH_ELIM_LT
        +
        Auto-generated from RARE rule arith-elim-lt
        +
      • +
      + + + +
        +
      • +

        ARITH_ELIM_INT_GT

        +
        public static final ProofRewriteRule ARITH_ELIM_INT_GT
        +
        Auto-generated from RARE rule arith-elim-int-gt
        +
      • +
      + + + +
        +
      • +

        ARITH_ELIM_INT_LT

        +
        public static final ProofRewriteRule ARITH_ELIM_INT_LT
        +
        Auto-generated from RARE rule arith-elim-int-lt
        +
      • +
      + + + +
        +
      • +

        ARITH_ELIM_LEQ

        +
        public static final ProofRewriteRule ARITH_ELIM_LEQ
        +
        Auto-generated from RARE rule arith-elim-leq
        +
      • +
      + + + +
        +
      • +

        ARITH_LEQ_NORM

        +
        public static final ProofRewriteRule ARITH_LEQ_NORM
        +
        Auto-generated from RARE rule arith-leq-norm
        +
      • +
      + + + +
        +
      • +

        ARITH_GEQ_TIGHTEN

        +
        public static final ProofRewriteRule ARITH_GEQ_TIGHTEN
        +
        Auto-generated from RARE rule arith-geq-tighten
        +
      • +
      + + + +
        +
      • +

        ARITH_GEQ_NORM1_INT

        +
        public static final ProofRewriteRule ARITH_GEQ_NORM1_INT
        +
        Auto-generated from RARE rule arith-geq-norm1-int
        +
      • +
      + + + +
        +
      • +

        ARITH_GEQ_NORM1_REAL

        +
        public static final ProofRewriteRule ARITH_GEQ_NORM1_REAL
        +
        Auto-generated from RARE rule arith-geq-norm1-real
        +
      • +
      + + + +
        +
      • +

        ARITH_GEQ_NORM2

        +
        public static final ProofRewriteRule ARITH_GEQ_NORM2
        +
        Auto-generated from RARE rule arith-geq-norm2
        +
      • +
      + + + +
        +
      • +

        ARITH_REFL_LEQ

        +
        public static final ProofRewriteRule ARITH_REFL_LEQ
        +
        Auto-generated from RARE rule arith-refl-leq
        +
      • +
      + + + +
        +
      • +

        ARITH_REFL_LT

        +
        public static final ProofRewriteRule ARITH_REFL_LT
        +
        Auto-generated from RARE rule arith-refl-lt
        +
      • +
      + + + +
        +
      • +

        ARITH_REFL_GEQ

        +
        public static final ProofRewriteRule ARITH_REFL_GEQ
        +
        Auto-generated from RARE rule arith-refl-geq
        +
      • +
      + + + +
        +
      • +

        ARITH_REFL_GT

        +
        public static final ProofRewriteRule ARITH_REFL_GT
        +
        Auto-generated from RARE rule arith-refl-gt
        +
      • +
      + + + +
        +
      • +

        ARITH_EQ_ELIM_REAL

        +
        public static final ProofRewriteRule ARITH_EQ_ELIM_REAL
        +
        Auto-generated from RARE rule arith-eq-elim-real
        +
      • +
      + + + +
        +
      • +

        ARITH_EQ_ELIM_INT

        +
        public static final ProofRewriteRule ARITH_EQ_ELIM_INT
        +
        Auto-generated from RARE rule arith-eq-elim-int
        +
      • +
      + + + +
        +
      • +

        ARITH_PLUS_FLATTEN

        +
        public static final ProofRewriteRule ARITH_PLUS_FLATTEN
        +
        Auto-generated from RARE rule arith-plus-flatten
        +
      • +
      + + + +
        +
      • +

        ARITH_MULT_FLATTEN

        +
        public static final ProofRewriteRule ARITH_MULT_FLATTEN
        +
        Auto-generated from RARE rule arith-mult-flatten
        +
      • +
      + + + +
        +
      • +

        ARITH_MULT_DIST

        +
        public static final ProofRewriteRule ARITH_MULT_DIST
        +
        Auto-generated from RARE rule arith-mult-dist
        +
      • +
      + + + +
        +
      • +

        ARITH_ABS_ELIM_INT

        +
        public static final ProofRewriteRule ARITH_ABS_ELIM_INT
        +
        Auto-generated from RARE rule arith-abs-elim-int
        +
      • +
      + + + +
        +
      • +

        ARITH_ABS_ELIM_REAL

        +
        public static final ProofRewriteRule ARITH_ABS_ELIM_REAL
        +
        Auto-generated from RARE rule arith-abs-elim-real
        +
      • +
      + + + +
        +
      • +

        ARITH_TO_REAL_ELIM

        +
        public static final ProofRewriteRule ARITH_TO_REAL_ELIM
        +
        Auto-generated from RARE rule arith-to-real-elim
        +
      • +
      + + + +
        +
      • +

        ARITH_TO_INT_ELIM_TO_REAL

        +
        public static final ProofRewriteRule ARITH_TO_INT_ELIM_TO_REAL
        +
        Auto-generated from RARE rule arith-to-int-elim-to-real
        +
      • +
      + + + +
        +
      • +

        ARITH_DIV_ELIM_TO_REAL1

        +
        public static final ProofRewriteRule ARITH_DIV_ELIM_TO_REAL1
        +
        Auto-generated from RARE rule arith-div-elim-to-real1
        +
      • +
      + + + +
        +
      • +

        ARITH_DIV_ELIM_TO_REAL2

        +
        public static final ProofRewriteRule ARITH_DIV_ELIM_TO_REAL2
        +
        Auto-generated from RARE rule arith-div-elim-to-real2
        +
      • +
      + + + +
        +
      • +

        ARITH_SINE_ZERO

        +
        public static final ProofRewriteRule ARITH_SINE_ZERO
        +
        Auto-generated from RARE rule arith-sine-zero
        +
      • +
      + + + +
        +
      • +

        ARITH_SINE_PI2

        +
        public static final ProofRewriteRule ARITH_SINE_PI2
        +
        Auto-generated from RARE rule arith-sine-pi2
        +
      • +
      + + + +
        +
      • +

        ARITH_COSINE_ELIM

        +
        public static final ProofRewriteRule ARITH_COSINE_ELIM
        +
        Auto-generated from RARE rule arith-cosine-elim
        +
      • +
      + + + +
        +
      • +

        ARITH_TANGENT_ELIM

        +
        public static final ProofRewriteRule ARITH_TANGENT_ELIM
        +
        Auto-generated from RARE rule arith-tangent-elim
        +
      • +
      + + + +
        +
      • +

        ARITH_SECENT_ELIM

        +
        public static final ProofRewriteRule ARITH_SECENT_ELIM
        +
        Auto-generated from RARE rule arith-secent-elim
        +
      • +
      + + + +
        +
      • +

        ARITH_COSECENT_ELIM

        +
        public static final ProofRewriteRule ARITH_COSECENT_ELIM
        +
        Auto-generated from RARE rule arith-cosecent-elim
        +
      • +
      + + + +
        +
      • +

        ARITH_COTANGENT_ELIM

        +
        public static final ProofRewriteRule ARITH_COTANGENT_ELIM
        +
        Auto-generated from RARE rule arith-cotangent-elim
        +
      • +
      + + + +
        +
      • +

        ARITH_PI_NOT_INT

        +
        public static final ProofRewriteRule ARITH_PI_NOT_INT
        +
        Auto-generated from RARE rule arith-pi-not-int
        +
      • +
      + + + +
        +
      • +

        ARITH_ABS_EQ

        +
        public static final ProofRewriteRule ARITH_ABS_EQ
        +
        Auto-generated from RARE rule arith-abs-eq
        +
      • +
      + + + +
        +
      • +

        ARITH_ABS_INT_GT

        +
        public static final ProofRewriteRule ARITH_ABS_INT_GT
        +
        Auto-generated from RARE rule arith-abs-int-gt
        +
      • +
      + + + +
        +
      • +

        ARITH_ABS_REAL_GT

        +
        public static final ProofRewriteRule ARITH_ABS_REAL_GT
        +
        Auto-generated from RARE rule arith-abs-real-gt
        +
      • +
      + + + +
        +
      • +

        ARRAY_READ_OVER_WRITE

        +
        public static final ProofRewriteRule ARRAY_READ_OVER_WRITE
        +
        Auto-generated from RARE rule array-read-over-write
        +
      • +
      + + + +
        +
      • +

        ARRAY_READ_OVER_WRITE2

        +
        public static final ProofRewriteRule ARRAY_READ_OVER_WRITE2
        +
        Auto-generated from RARE rule array-read-over-write2
        +
      • +
      + + + +
        +
      • +

        ARRAY_STORE_OVERWRITE

        +
        public static final ProofRewriteRule ARRAY_STORE_OVERWRITE
        +
        Auto-generated from RARE rule array-store-overwrite
        +
      • +
      + + + +
        +
      • +

        ARRAY_STORE_SELF

        +
        public static final ProofRewriteRule ARRAY_STORE_SELF
        +
        Auto-generated from RARE rule array-store-self
        +
      • +
      + + + +
        +
      • +

        ARRAY_READ_OVER_WRITE_SPLIT

        +
        public static final ProofRewriteRule ARRAY_READ_OVER_WRITE_SPLIT
        +
        Auto-generated from RARE rule array-read-over-write-split
        +
      • +
      + + + +
        +
      • +

        BOOL_DOUBLE_NOT_ELIM

        +
        public static final ProofRewriteRule BOOL_DOUBLE_NOT_ELIM
        +
        Auto-generated from RARE rule boolean-double-not-elim
        +
      • +
      + + + +
        +
      • +

        BOOL_NOT_TRUE

        +
        public static final ProofRewriteRule BOOL_NOT_TRUE
        +
        Auto-generated from RARE rule boolean-not-true
        +
      • +
      + + + +
        +
      • +

        BOOL_NOT_FALSE

        +
        public static final ProofRewriteRule BOOL_NOT_FALSE
        +
        Auto-generated from RARE rule boolean-not-false
        +
      • +
      + + + +
        +
      • +

        BOOL_EQ_TRUE

        +
        public static final ProofRewriteRule BOOL_EQ_TRUE
        +
        Auto-generated from RARE rule boolean-eq-true
        +
      • +
      + + + +
        +
      • +

        BOOL_EQ_FALSE

        +
        public static final ProofRewriteRule BOOL_EQ_FALSE
        +
        Auto-generated from RARE rule boolean-eq-false
        +
      • +
      + + + +
        +
      • +

        BOOL_EQ_NREFL

        +
        public static final ProofRewriteRule BOOL_EQ_NREFL
        +
        Auto-generated from RARE rule boolean-eq-nrefl
        +
      • +
      + + + +
        +
      • +

        BOOL_IMPL_FALSE1

        +
        public static final ProofRewriteRule BOOL_IMPL_FALSE1
        +
        Auto-generated from RARE rule boolean-impl-false1
        +
      • +
      + + + +
        +
      • +

        BOOL_IMPL_FALSE2

        +
        public static final ProofRewriteRule BOOL_IMPL_FALSE2
        +
        Auto-generated from RARE rule boolean-impl-false2
        +
      • +
      + + + +
        +
      • +

        BOOL_IMPL_TRUE1

        +
        public static final ProofRewriteRule BOOL_IMPL_TRUE1
        +
        Auto-generated from RARE rule boolean-impl-true1
        +
      • +
      + + + +
        +
      • +

        BOOL_IMPL_TRUE2

        +
        public static final ProofRewriteRule BOOL_IMPL_TRUE2
        +
        Auto-generated from RARE rule boolean-impl-true2
        +
      • +
      + + + +
        +
      • +

        BOOL_IMPL_ELIM

        +
        public static final ProofRewriteRule BOOL_IMPL_ELIM
        +
        Auto-generated from RARE rule boolean-impl-elim
        +
      • +
      + + + +
        +
      • +

        BOOL_OR_TRUE

        +
        public static final ProofRewriteRule BOOL_OR_TRUE
        +
        Auto-generated from RARE rule boolean-or-true
        +
      • +
      + + + +
        +
      • +

        BOOL_OR_FLATTEN

        +
        public static final ProofRewriteRule BOOL_OR_FLATTEN
        +
        Auto-generated from RARE rule boolean-or-flatten
        +
      • +
      + + + +
        +
      • +

        BOOL_AND_FALSE

        +
        public static final ProofRewriteRule BOOL_AND_FALSE
        +
        Auto-generated from RARE rule boolean-and-false
        +
      • +
      + + + +
        +
      • +

        BOOL_AND_FLATTEN

        +
        public static final ProofRewriteRule BOOL_AND_FLATTEN
        +
        Auto-generated from RARE rule boolean-and-flatten
        +
      • +
      + + + +
        +
      • +

        BOOL_AND_CONF

        +
        public static final ProofRewriteRule BOOL_AND_CONF
        +
        Auto-generated from RARE rule boolean-and-conf
        +
      • +
      + + + +
        +
      • +

        BOOL_AND_CONF2

        +
        public static final ProofRewriteRule BOOL_AND_CONF2
        +
        Auto-generated from RARE rule boolean-and-conf2
        +
      • +
      + + + +
        +
      • +

        BOOL_OR_TAUT

        +
        public static final ProofRewriteRule BOOL_OR_TAUT
        +
        Auto-generated from RARE rule boolean-or-taut
        +
      • +
      + + + +
        +
      • +

        BOOL_OR_TAUT2

        +
        public static final ProofRewriteRule BOOL_OR_TAUT2
        +
        Auto-generated from RARE rule boolean-or-taut2
        +
      • +
      + + + +
        +
      • +

        BOOL_OR_DE_MORGAN

        +
        public static final ProofRewriteRule BOOL_OR_DE_MORGAN
        +
        Auto-generated from RARE rule boolean-or-de-morgan
        +
      • +
      + + + +
        +
      • +

        BOOL_IMPLIES_DE_MORGAN

        +
        public static final ProofRewriteRule BOOL_IMPLIES_DE_MORGAN
        +
        Auto-generated from RARE rule boolean-implies-de-morgan
        +
      • +
      + + + +
        +
      • +

        BOOL_AND_DE_MORGAN

        +
        public static final ProofRewriteRule BOOL_AND_DE_MORGAN
        +
        Auto-generated from RARE rule boolean-and-de-morgan
        +
      • +
      + + + +
        +
      • +

        BOOL_OR_AND_DISTRIB

        +
        public static final ProofRewriteRule BOOL_OR_AND_DISTRIB
        +
        Auto-generated from RARE rule boolean-or-and-distrib
        +
      • +
      + + + +
        +
      • +

        BOOL_XOR_REFL

        +
        public static final ProofRewriteRule BOOL_XOR_REFL
        +
        Auto-generated from RARE rule boolean-xor-refl
        +
      • +
      + + + +
        +
      • +

        BOOL_XOR_NREFL

        +
        public static final ProofRewriteRule BOOL_XOR_NREFL
        +
        Auto-generated from RARE rule boolean-xor-nrefl
        +
      • +
      + + + +
        +
      • +

        BOOL_XOR_FALSE

        +
        public static final ProofRewriteRule BOOL_XOR_FALSE
        +
        Auto-generated from RARE rule boolean-xor-false
        +
      • +
      + + + +
        +
      • +

        BOOL_XOR_TRUE

        +
        public static final ProofRewriteRule BOOL_XOR_TRUE
        +
        Auto-generated from RARE rule boolean-xor-true
        +
      • +
      + + + +
        +
      • +

        BOOL_XOR_COMM

        +
        public static final ProofRewriteRule BOOL_XOR_COMM
        +
        Auto-generated from RARE rule boolean-xor-comm
        +
      • +
      + + + +
        +
      • +

        BOOL_XOR_ELIM

        +
        public static final ProofRewriteRule BOOL_XOR_ELIM
        +
        Auto-generated from RARE rule boolean-xor-elim
        +
      • +
      + + + +
        +
      • +

        BOOL_NOT_XOR_ELIM

        +
        public static final ProofRewriteRule BOOL_NOT_XOR_ELIM
        +
        Auto-generated from RARE rule boolean-not-xor-elim
        +
      • +
      + + + +
        +
      • +

        BOOL_NOT_EQ_ELIM1

        +
        public static final ProofRewriteRule BOOL_NOT_EQ_ELIM1
        +
        Auto-generated from RARE rule boolean-not-eq-elim1
        +
      • +
      + + + +
        +
      • +

        BOOL_NOT_EQ_ELIM2

        +
        public static final ProofRewriteRule BOOL_NOT_EQ_ELIM2
        +
        Auto-generated from RARE rule boolean-not-eq-elim2
        +
      • +
      + + + +
        +
      • +

        ITE_NEG_BRANCH

        +
        public static final ProofRewriteRule ITE_NEG_BRANCH
        +
        Auto-generated from RARE rule ite-neg-branch
        +
      • +
      + + + +
        +
      • +

        ITE_THEN_TRUE

        +
        public static final ProofRewriteRule ITE_THEN_TRUE
        +
        Auto-generated from RARE rule ite-then-true
        +
      • +
      + + + +
        +
      • +

        ITE_ELSE_FALSE

        +
        public static final ProofRewriteRule ITE_ELSE_FALSE
        +
        Auto-generated from RARE rule ite-else-false
        +
      • +
      + + + +
        +
      • +

        ITE_THEN_FALSE

        +
        public static final ProofRewriteRule ITE_THEN_FALSE
        +
        Auto-generated from RARE rule ite-then-false
        +
      • +
      + + + +
        +
      • +

        ITE_ELSE_TRUE

        +
        public static final ProofRewriteRule ITE_ELSE_TRUE
        +
        Auto-generated from RARE rule ite-else-true
        +
      • +
      + + + +
        +
      • +

        ITE_THEN_LOOKAHEAD_SELF

        +
        public static final ProofRewriteRule ITE_THEN_LOOKAHEAD_SELF
        +
        Auto-generated from RARE rule ite-then-lookahead-self
        +
      • +
      + + + +
        +
      • +

        ITE_ELSE_LOOKAHEAD_SELF

        +
        public static final ProofRewriteRule ITE_ELSE_LOOKAHEAD_SELF
        +
        Auto-generated from RARE rule ite-else-lookahead-self
        +
      • +
      + + + +
        +
      • +

        ITE_THEN_LOOKAHEAD_NOT_SELF

        +
        public static final ProofRewriteRule ITE_THEN_LOOKAHEAD_NOT_SELF
        +
        Auto-generated from RARE rule ite-then-lookahead-not-self
        +
      • +
      + + + +
        +
      • +

        ITE_ELSE_LOOKAHEAD_NOT_SELF

        +
        public static final ProofRewriteRule ITE_ELSE_LOOKAHEAD_NOT_SELF
        +
        Auto-generated from RARE rule ite-else-lookahead-not-self
        +
      • +
      + + + +
        +
      • +

        ITE_EXPAND

        +
        public static final ProofRewriteRule ITE_EXPAND
        +
        Auto-generated from RARE rule ite-expand
        +
      • +
      + + + +
        +
      • +

        BOOL_NOT_ITE_ELIM

        +
        public static final ProofRewriteRule BOOL_NOT_ITE_ELIM
        +
        Auto-generated from RARE rule boolean-not-ite-elim
        +
      • +
      + + + +
        +
      • +

        ITE_TRUE_COND

        +
        public static final ProofRewriteRule ITE_TRUE_COND
        +
        Auto-generated from RARE rule ite-true-cond
        +
      • +
      + + + +
        +
      • +

        ITE_FALSE_COND

        +
        public static final ProofRewriteRule ITE_FALSE_COND
        +
        Auto-generated from RARE rule ite-false-cond
        +
      • +
      + + + +
        +
      • +

        ITE_NOT_COND

        +
        public static final ProofRewriteRule ITE_NOT_COND
        +
        Auto-generated from RARE rule ite-not-cond
        +
      • +
      + + + +
        +
      • +

        ITE_EQ_BRANCH

        +
        public static final ProofRewriteRule ITE_EQ_BRANCH
        +
        Auto-generated from RARE rule ite-eq-branch
        +
      • +
      + + + +
        +
      • +

        ITE_THEN_LOOKAHEAD

        +
        public static final ProofRewriteRule ITE_THEN_LOOKAHEAD
        +
        Auto-generated from RARE rule ite-then-lookahead
        +
      • +
      + + + +
        +
      • +

        ITE_ELSE_LOOKAHEAD

        +
        public static final ProofRewriteRule ITE_ELSE_LOOKAHEAD
        +
        Auto-generated from RARE rule ite-else-lookahead
        +
      • +
      + + + +
        +
      • +

        ITE_THEN_NEG_LOOKAHEAD

        +
        public static final ProofRewriteRule ITE_THEN_NEG_LOOKAHEAD
        +
        Auto-generated from RARE rule ite-then-neg-lookahead
        +
      • +
      + + + +
        +
      • +

        ITE_ELSE_NEG_LOOKAHEAD

        +
        public static final ProofRewriteRule ITE_ELSE_NEG_LOOKAHEAD
        +
        Auto-generated from RARE rule ite-else-neg-lookahead
        +
      • +
      + + + +
        +
      • +

        BV_CONCAT_FLATTEN

        +
        public static final ProofRewriteRule BV_CONCAT_FLATTEN
        +
        Auto-generated from RARE rule bv-concat-flatten
        +
      • +
      + + + +
        +
      • +

        BV_CONCAT_EXTRACT_MERGE

        +
        public static final ProofRewriteRule BV_CONCAT_EXTRACT_MERGE
        +
        Auto-generated from RARE rule bv-concat-extract-merge
        +
      • +
      + + + +
        +
      • +

        BV_EXTRACT_EXTRACT

        +
        public static final ProofRewriteRule BV_EXTRACT_EXTRACT
        +
        Auto-generated from RARE rule bv-extract-extract
        +
      • +
      + + + +
        +
      • +

        BV_EXTRACT_WHOLE

        +
        public static final ProofRewriteRule BV_EXTRACT_WHOLE
        +
        Auto-generated from RARE rule bv-extract-whole
        +
      • +
      + + + +
        +
      • +

        BV_EXTRACT_CONCAT_1

        +
        public static final ProofRewriteRule BV_EXTRACT_CONCAT_1
        +
        Auto-generated from RARE rule bv-extract-concat-1
        +
      • +
      + + + +
        +
      • +

        BV_EXTRACT_CONCAT_2

        +
        public static final ProofRewriteRule BV_EXTRACT_CONCAT_2
        +
        Auto-generated from RARE rule bv-extract-concat-2
        +
      • +
      + + + +
        +
      • +

        BV_EXTRACT_CONCAT_3

        +
        public static final ProofRewriteRule BV_EXTRACT_CONCAT_3
        +
        Auto-generated from RARE rule bv-extract-concat-3
        +
      • +
      + + + +
        +
      • +

        BV_EXTRACT_CONCAT_4

        +
        public static final ProofRewriteRule BV_EXTRACT_CONCAT_4
        +
        Auto-generated from RARE rule bv-extract-concat-4
        +
      • +
      + + + +
        +
      • +

        BV_EQ_EXTRACT_ELIM1

        +
        public static final ProofRewriteRule BV_EQ_EXTRACT_ELIM1
        +
        Auto-generated from RARE rule bv-eq-extract-elim1
        +
      • +
      + + + +
        +
      • +

        BV_EQ_EXTRACT_ELIM2

        +
        public static final ProofRewriteRule BV_EQ_EXTRACT_ELIM2
        +
        Auto-generated from RARE rule bv-eq-extract-elim2
        +
      • +
      + + + +
        +
      • +

        BV_EQ_EXTRACT_ELIM3

        +
        public static final ProofRewriteRule BV_EQ_EXTRACT_ELIM3
        +
        Auto-generated from RARE rule bv-eq-extract-elim3
        +
      • +
      + + + +
        +
      • +

        BV_EXTRACT_BITWISE_AND

        +
        public static final ProofRewriteRule BV_EXTRACT_BITWISE_AND
        +
        Auto-generated from RARE rule bv-extract-bitwise-and
        +
      • +
      + + + +
        +
      • +

        BV_EXTRACT_BITWISE_OR

        +
        public static final ProofRewriteRule BV_EXTRACT_BITWISE_OR
        +
        Auto-generated from RARE rule bv-extract-bitwise-or
        +
      • +
      + + + +
        +
      • +

        BV_EXTRACT_BITWISE_XOR

        +
        public static final ProofRewriteRule BV_EXTRACT_BITWISE_XOR
        +
        Auto-generated from RARE rule bv-extract-bitwise-xor
        +
      • +
      + + + +
        +
      • +

        BV_EXTRACT_NOT

        +
        public static final ProofRewriteRule BV_EXTRACT_NOT
        +
        Auto-generated from RARE rule bv-extract-not
        +
      • +
      + + + +
        +
      • +

        BV_EXTRACT_SIGN_EXTEND_1

        +
        public static final ProofRewriteRule BV_EXTRACT_SIGN_EXTEND_1
        +
        Auto-generated from RARE rule bv-extract-sign-extend-1
        +
      • +
      + + + +
        +
      • +

        BV_EXTRACT_SIGN_EXTEND_2

        +
        public static final ProofRewriteRule BV_EXTRACT_SIGN_EXTEND_2
        +
        Auto-generated from RARE rule bv-extract-sign-extend-2
        +
      • +
      + + + +
        +
      • +

        BV_EXTRACT_SIGN_EXTEND_3

        +
        public static final ProofRewriteRule BV_EXTRACT_SIGN_EXTEND_3
        +
        Auto-generated from RARE rule bv-extract-sign-extend-3
        +
      • +
      + + + +
        +
      • +

        BV_NEG_MULT

        +
        public static final ProofRewriteRule BV_NEG_MULT
        +
        Auto-generated from RARE rule bv-neg-mult
        +
      • +
      + + + +
        +
      • +

        BV_NEG_ADD

        +
        public static final ProofRewriteRule BV_NEG_ADD
        +
        Auto-generated from RARE rule bv-neg-add
        +
      • +
      + + + +
        +
      • +

        BV_MULT_DISTRIB_CONST_NEG

        +
        public static final ProofRewriteRule BV_MULT_DISTRIB_CONST_NEG
        +
        Auto-generated from RARE rule bv-mult-distrib--neg
        +
      • +
      + + + +
        +
      • +

        BV_MULT_DISTRIB_CONST_ADD

        +
        public static final ProofRewriteRule BV_MULT_DISTRIB_CONST_ADD
        +
        Auto-generated from RARE rule bv-mult-distrib--add
        +
      • +
      + + + +
        +
      • +

        BV_MULT_DISTRIB_CONST_SUB

        +
        public static final ProofRewriteRule BV_MULT_DISTRIB_CONST_SUB
        +
        Auto-generated from RARE rule bv-mult-distrib--sub
        +
      • +
      + + + +
        +
      • +

        BV_MULT_DISTRIB_1

        +
        public static final ProofRewriteRule BV_MULT_DISTRIB_1
        +
        Auto-generated from RARE rule bv-mult-distrib-1
        +
      • +
      + + + +
        +
      • +

        BV_MULT_DISTRIB_2

        +
        public static final ProofRewriteRule BV_MULT_DISTRIB_2
        +
        Auto-generated from RARE rule bv-mult-distrib-2
        +
      • +
      + + + +
        +
      • +

        BV_NOT_XOR

        +
        public static final ProofRewriteRule BV_NOT_XOR
        +
        Auto-generated from RARE rule bv-not-xor
        +
      • +
      + + + +
        +
      • +

        BV_AND_SIMPLIFY_1

        +
        public static final ProofRewriteRule BV_AND_SIMPLIFY_1
        +
        Auto-generated from RARE rule bv-and-simplify-1
        +
      • +
      + + + +
        +
      • +

        BV_AND_SIMPLIFY_2

        +
        public static final ProofRewriteRule BV_AND_SIMPLIFY_2
        +
        Auto-generated from RARE rule bv-and-simplify-2
        +
      • +
      + + + +
        +
      • +

        BV_OR_SIMPLIFY_1

        +
        public static final ProofRewriteRule BV_OR_SIMPLIFY_1
        +
        Auto-generated from RARE rule bv-or-simplify-1
        +
      • +
      + + + +
        +
      • +

        BV_OR_SIMPLIFY_2

        +
        public static final ProofRewriteRule BV_OR_SIMPLIFY_2
        +
        Auto-generated from RARE rule bv-or-simplify-2
        +
      • +
      + + + +
        +
      • +

        BV_XOR_SIMPLIFY_1

        +
        public static final ProofRewriteRule BV_XOR_SIMPLIFY_1
        +
        Auto-generated from RARE rule bv-xor-simplify-1
        +
      • +
      + + + +
        +
      • +

        BV_XOR_SIMPLIFY_2

        +
        public static final ProofRewriteRule BV_XOR_SIMPLIFY_2
        +
        Auto-generated from RARE rule bv-xor-simplify-2
        +
      • +
      + + + +
        +
      • +

        BV_XOR_SIMPLIFY_3

        +
        public static final ProofRewriteRule BV_XOR_SIMPLIFY_3
        +
        Auto-generated from RARE rule bv-xor-simplify-3
        +
      • +
      + + + +
        +
      • +

        BV_ULT_ADD_ONE

        +
        public static final ProofRewriteRule BV_ULT_ADD_ONE
        +
        Auto-generated from RARE rule bv-ult-add-one
        +
      • +
      + + + +
        +
      • +

        BV_CONCAT_TO_MULT

        +
        public static final ProofRewriteRule BV_CONCAT_TO_MULT
        +
        Auto-generated from RARE rule bv-concat-to-mult
        +
      • +
      + + + +
        +
      • +

        BV_MULT_SLT_MULT_1

        +
        public static final ProofRewriteRule BV_MULT_SLT_MULT_1
        +
        Auto-generated from RARE rule bv-mult-slt-mult-1
        +
      • +
      + + + +
        +
      • +

        BV_MULT_SLT_MULT_2

        +
        public static final ProofRewriteRule BV_MULT_SLT_MULT_2
        +
        Auto-generated from RARE rule bv-mult-slt-mult-2
        +
      • +
      + + + +
        +
      • +

        BV_COMMUTATIVE_AND

        +
        public static final ProofRewriteRule BV_COMMUTATIVE_AND
        +
        Auto-generated from RARE rule bv-commutative-and
        +
      • +
      + + + +
        +
      • +

        BV_COMMUTATIVE_OR

        +
        public static final ProofRewriteRule BV_COMMUTATIVE_OR
        +
        Auto-generated from RARE rule bv-commutative-or
        +
      • +
      + + + +
        +
      • +

        BV_COMMUTATIVE_XOR

        +
        public static final ProofRewriteRule BV_COMMUTATIVE_XOR
        +
        Auto-generated from RARE rule bv-commutative-xor
        +
      • +
      + + + +
        +
      • +

        BV_COMMUTATIVE_MUL

        +
        public static final ProofRewriteRule BV_COMMUTATIVE_MUL
        +
        Auto-generated from RARE rule bv-commutative-mul
        +
      • +
      + + + +
        +
      • +

        BV_OR_ZERO

        +
        public static final ProofRewriteRule BV_OR_ZERO
        +
        Auto-generated from RARE rule bv-or-zero
        +
      • +
      + + + +
        +
      • +

        BV_MUL_ONE

        +
        public static final ProofRewriteRule BV_MUL_ONE
        +
        Auto-generated from RARE rule bv-mul-one
        +
      • +
      + + + +
        +
      • +

        BV_MUL_ZERO

        +
        public static final ProofRewriteRule BV_MUL_ZERO
        +
        Auto-generated from RARE rule bv-mul-zero
        +
      • +
      + + + +
        +
      • +

        BV_ADD_ZERO

        +
        public static final ProofRewriteRule BV_ADD_ZERO
        +
        Auto-generated from RARE rule bv-add-zero
        +
      • +
      + + + +
        +
      • +

        BV_ADD_TWO

        +
        public static final ProofRewriteRule BV_ADD_TWO
        +
        Auto-generated from RARE rule bv-add-two
        +
      • +
      + + + +
        +
      • +

        BV_ZERO_EXTEND_ELIMINATE_0

        +
        public static final ProofRewriteRule BV_ZERO_EXTEND_ELIMINATE_0
        +
        Auto-generated from RARE rule bv-zero-extend-eliminate-0
        +
      • +
      + + + +
        +
      • +

        BV_SIGN_EXTEND_ELIMINATE_0

        +
        public static final ProofRewriteRule BV_SIGN_EXTEND_ELIMINATE_0
        +
        Auto-generated from RARE rule bv-sign-extend-eliminate-0
        +
      • +
      + + + +
        +
      • +

        BV_NOT_NEQ

        +
        public static final ProofRewriteRule BV_NOT_NEQ
        +
        Auto-generated from RARE rule bv-not-neq
        +
      • +
      + + + +
        +
      • +

        BV_ULT_ONES

        +
        public static final ProofRewriteRule BV_ULT_ONES
        +
        Auto-generated from RARE rule bv-ult-ones
        +
      • +
      + + + +
        +
      • +

        BV_OR_FLATTEN

        +
        public static final ProofRewriteRule BV_OR_FLATTEN
        +
        Auto-generated from RARE rule bv-or-flatten
        +
      • +
      + + + +
        +
      • +

        BV_XOR_FLATTEN

        +
        public static final ProofRewriteRule BV_XOR_FLATTEN
        +
        Auto-generated from RARE rule bv-xor-flatten
        +
      • +
      + + + +
        +
      • +

        BV_AND_FLATTEN

        +
        public static final ProofRewriteRule BV_AND_FLATTEN
        +
        Auto-generated from RARE rule bv-and-flatten
        +
      • +
      + + + +
        +
      • +

        BV_MUL_FLATTEN

        +
        public static final ProofRewriteRule BV_MUL_FLATTEN
        +
        Auto-generated from RARE rule bv-mul-flatten
        +
      • +
      + + + +
        +
      • +

        BV_CONCAT_MERGE_CONST

        +
        public static final ProofRewriteRule BV_CONCAT_MERGE_CONST
        +
        Auto-generated from RARE rule bv-concat-merge-
        +
      • +
      + + + +
        +
      • +

        BV_COMMUTATIVE_ADD

        +
        public static final ProofRewriteRule BV_COMMUTATIVE_ADD
        +
        Auto-generated from RARE rule bv-commutative-add
        +
      • +
      + + + +
        +
      • +

        BV_NEG_SUB

        +
        public static final ProofRewriteRule BV_NEG_SUB
        +
        Auto-generated from RARE rule bv-neg-sub
        +
      • +
      + + + +
        +
      • +

        BV_NEG_IDEMP

        +
        public static final ProofRewriteRule BV_NEG_IDEMP
        +
        Auto-generated from RARE rule bv-neg-idemp
        +
      • +
      + + + +
        +
      • +

        BV_SUB_ELIMINATE

        +
        public static final ProofRewriteRule BV_SUB_ELIMINATE
        +
        Auto-generated from RARE rule bv-sub-eliminate
        +
      • +
      + + + +
        +
      • +

        BV_UGT_ELIMINATE

        +
        public static final ProofRewriteRule BV_UGT_ELIMINATE
        +
        Auto-generated from RARE rule bv-ugt-eliminate
        +
      • +
      + + + +
        +
      • +

        BV_UGE_ELIMINATE

        +
        public static final ProofRewriteRule BV_UGE_ELIMINATE
        +
        Auto-generated from RARE rule bv-uge-eliminate
        +
      • +
      + + + +
        +
      • +

        BV_SGT_ELIMINATE

        +
        public static final ProofRewriteRule BV_SGT_ELIMINATE
        +
        Auto-generated from RARE rule bv-sgt-eliminate
        +
      • +
      + + + +
        +
      • +

        BV_SGE_ELIMINATE

        +
        public static final ProofRewriteRule BV_SGE_ELIMINATE
        +
        Auto-generated from RARE rule bv-sge-eliminate
        +
      • +
      + + + +
        +
      • +

        BV_SLT_ELIMINATE

        +
        public static final ProofRewriteRule BV_SLT_ELIMINATE
        +
        Auto-generated from RARE rule bv-slt-eliminate
        +
      • +
      + + + +
        +
      • +

        BV_SLE_ELIMINATE

        +
        public static final ProofRewriteRule BV_SLE_ELIMINATE
        +
        Auto-generated from RARE rule bv-sle-eliminate
        +
      • +
      + + + +
        +
      • +

        BV_REDOR_ELIMINATE

        +
        public static final ProofRewriteRule BV_REDOR_ELIMINATE
        +
        Auto-generated from RARE rule bv-redor-eliminate
        +
      • +
      + + + +
        +
      • +

        BV_REDAND_ELIMINATE

        +
        public static final ProofRewriteRule BV_REDAND_ELIMINATE
        +
        Auto-generated from RARE rule bv-redand-eliminate
        +
      • +
      + + + +
        +
      • +

        BV_ULE_ELIMINATE

        +
        public static final ProofRewriteRule BV_ULE_ELIMINATE
        +
        Auto-generated from RARE rule bv-ule-eliminate
        +
      • +
      + + + +
        +
      • +

        BV_COMP_ELIMINATE

        +
        public static final ProofRewriteRule BV_COMP_ELIMINATE
        +
        Auto-generated from RARE rule bv-comp-eliminate
        +
      • +
      + + + +
        +
      • +

        BV_ROTATE_LEFT_ELIMINATE_1

        +
        public static final ProofRewriteRule BV_ROTATE_LEFT_ELIMINATE_1
        +
        Auto-generated from RARE rule bv-rotate-left-eliminate-1
        +
      • +
      + + + +
        +
      • +

        BV_ROTATE_LEFT_ELIMINATE_2

        +
        public static final ProofRewriteRule BV_ROTATE_LEFT_ELIMINATE_2
        +
        Auto-generated from RARE rule bv-rotate-left-eliminate-2
        +
      • +
      + + + +
        +
      • +

        BV_ROTATE_RIGHT_ELIMINATE_1

        +
        public static final ProofRewriteRule BV_ROTATE_RIGHT_ELIMINATE_1
        +
        Auto-generated from RARE rule bv-rotate-right-eliminate-1
        +
      • +
      + + + +
        +
      • +

        BV_ROTATE_RIGHT_ELIMINATE_2

        +
        public static final ProofRewriteRule BV_ROTATE_RIGHT_ELIMINATE_2
        +
        Auto-generated from RARE rule bv-rotate-right-eliminate-2
        +
      • +
      + + + +
        +
      • +

        BV_NAND_ELIMINATE

        +
        public static final ProofRewriteRule BV_NAND_ELIMINATE
        +
        Auto-generated from RARE rule bv-nand-eliminate
        +
      • +
      + + + +
        +
      • +

        BV_NOR_ELIMINATE

        +
        public static final ProofRewriteRule BV_NOR_ELIMINATE
        +
        Auto-generated from RARE rule bv-nor-eliminate
        +
      • +
      + + + +
        +
      • +

        BV_XNOR_ELIMINATE

        +
        public static final ProofRewriteRule BV_XNOR_ELIMINATE
        +
        Auto-generated from RARE rule bv-xnor-eliminate
        +
      • +
      + + + +
        +
      • +

        BV_SDIV_ELIMINATE

        +
        public static final ProofRewriteRule BV_SDIV_ELIMINATE
        +
        Auto-generated from RARE rule bv-sdiv-eliminate
        +
      • +
      + + + +
        +
      • +

        BV_SDIV_ELIMINATE_FEWER_BITWISE_OPS

        +
        public static final ProofRewriteRule BV_SDIV_ELIMINATE_FEWER_BITWISE_OPS
        +
        Auto-generated from RARE rule bv-sdiv-eliminate-fewer-bitwise-ops
        +
      • +
      + + + +
        +
      • +

        BV_ZERO_EXTEND_ELIMINATE

        +
        public static final ProofRewriteRule BV_ZERO_EXTEND_ELIMINATE
        +
        Auto-generated from RARE rule bv-zero-extend-eliminate
        +
      • +
      + + + +
        +
      • +

        BV_SIGN_EXTEND_ELIMINATE

        +
        public static final ProofRewriteRule BV_SIGN_EXTEND_ELIMINATE
        +
        Auto-generated from RARE rule bv-sign-extend-eliminate
        +
      • +
      + + + +
        +
      • +

        BV_UADDO_ELIMINATE

        +
        public static final ProofRewriteRule BV_UADDO_ELIMINATE
        +
        Auto-generated from RARE rule bv-uaddo-eliminate
        +
      • +
      + + + +
        +
      • +

        BV_SADDO_ELIMINATE

        +
        public static final ProofRewriteRule BV_SADDO_ELIMINATE
        +
        Auto-generated from RARE rule bv-saddo-eliminate
        +
      • +
      + + + +
        +
      • +

        BV_SDIVO_ELIMINATE

        +
        public static final ProofRewriteRule BV_SDIVO_ELIMINATE
        +
        Auto-generated from RARE rule bv-sdivo-eliminate
        +
      • +
      + + + +
        +
      • +

        BV_SMOD_ELIMINATE

        +
        public static final ProofRewriteRule BV_SMOD_ELIMINATE
        +
        Auto-generated from RARE rule bv-smod-eliminate
        +
      • +
      + + + +
        +
      • +

        BV_SMOD_ELIMINATE_FEWER_BITWISE_OPS

        +
        public static final ProofRewriteRule BV_SMOD_ELIMINATE_FEWER_BITWISE_OPS
        +
        Auto-generated from RARE rule bv-smod-eliminate-fewer-bitwise-ops
        +
      • +
      + + + +
        +
      • +

        BV_SREM_ELIMINATE

        +
        public static final ProofRewriteRule BV_SREM_ELIMINATE
        +
        Auto-generated from RARE rule bv-srem-eliminate
        +
      • +
      + + + +
        +
      • +

        BV_SREM_ELIMINATE_FEWER_BITWISE_OPS

        +
        public static final ProofRewriteRule BV_SREM_ELIMINATE_FEWER_BITWISE_OPS
        +
        Auto-generated from RARE rule bv-srem-eliminate-fewer-bitwise-ops
        +
      • +
      + + + +
        +
      • +

        BV_USUBO_ELIMINATE

        +
        public static final ProofRewriteRule BV_USUBO_ELIMINATE
        +
        Auto-generated from RARE rule bv-usubo-eliminate
        +
      • +
      + + + +
        +
      • +

        BV_SSUBO_ELIMINATE

        +
        public static final ProofRewriteRule BV_SSUBO_ELIMINATE
        +
        Auto-generated from RARE rule bv-ssubo-eliminate
        +
      • +
      + + + +
        +
      • +

        BV_ITE_EQUAL_CHILDREN

        +
        public static final ProofRewriteRule BV_ITE_EQUAL_CHILDREN
        +
        Auto-generated from RARE rule bv-ite-equal-children
        +
      • +
      + + + +
        +
      • +

        BV_ITE_CONST_CHILDREN_1

        +
        public static final ProofRewriteRule BV_ITE_CONST_CHILDREN_1
        +
        Auto-generated from RARE rule bv-ite--children-1
        +
      • +
      + + + +
        +
      • +

        BV_ITE_CONST_CHILDREN_2

        +
        public static final ProofRewriteRule BV_ITE_CONST_CHILDREN_2
        +
        Auto-generated from RARE rule bv-ite--children-2
        +
      • +
      + + + +
        +
      • +

        BV_ITE_EQUAL_COND_1

        +
        public static final ProofRewriteRule BV_ITE_EQUAL_COND_1
        +
        Auto-generated from RARE rule bv-ite-equal-cond-1
        +
      • +
      + + + +
        +
      • +

        BV_ITE_EQUAL_COND_2

        +
        public static final ProofRewriteRule BV_ITE_EQUAL_COND_2
        +
        Auto-generated from RARE rule bv-ite-equal-cond-2
        +
      • +
      + + + +
        +
      • +

        BV_ITE_EQUAL_COND_3

        +
        public static final ProofRewriteRule BV_ITE_EQUAL_COND_3
        +
        Auto-generated from RARE rule bv-ite-equal-cond-3
        +
      • +
      + + + +
        +
      • +

        BV_ITE_MERGE_THEN_IF

        +
        public static final ProofRewriteRule BV_ITE_MERGE_THEN_IF
        +
        Auto-generated from RARE rule bv-ite-merge-then-if
        +
      • +
      + + + +
        +
      • +

        BV_ITE_MERGE_ELSE_IF

        +
        public static final ProofRewriteRule BV_ITE_MERGE_ELSE_IF
        +
        Auto-generated from RARE rule bv-ite-merge-else-if
        +
      • +
      + + + +
        +
      • +

        BV_ITE_MERGE_THEN_ELSE

        +
        public static final ProofRewriteRule BV_ITE_MERGE_THEN_ELSE
        +
        Auto-generated from RARE rule bv-ite-merge-then-else
        +
      • +
      + + + +
        +
      • +

        BV_ITE_MERGE_ELSE_ELSE

        +
        public static final ProofRewriteRule BV_ITE_MERGE_ELSE_ELSE
        +
        Auto-generated from RARE rule bv-ite-merge-else-else
        +
      • +
      + + + +
        +
      • +

        BV_SHL_BY_CONST_0

        +
        public static final ProofRewriteRule BV_SHL_BY_CONST_0
        +
        Auto-generated from RARE rule bv-shl-by--0
        +
      • +
      + + + +
        +
      • +

        BV_SHL_BY_CONST_1

        +
        public static final ProofRewriteRule BV_SHL_BY_CONST_1
        +
        Auto-generated from RARE rule bv-shl-by--1
        +
      • +
      + + + +
        +
      • +

        BV_SHL_BY_CONST_2

        +
        public static final ProofRewriteRule BV_SHL_BY_CONST_2
        +
        Auto-generated from RARE rule bv-shl-by--2
        +
      • +
      + + + +
        +
      • +

        BV_LSHR_BY_CONST_0

        +
        public static final ProofRewriteRule BV_LSHR_BY_CONST_0
        +
        Auto-generated from RARE rule bv-lshr-by--0
        +
      • +
      + + + +
        +
      • +

        BV_LSHR_BY_CONST_1

        +
        public static final ProofRewriteRule BV_LSHR_BY_CONST_1
        +
        Auto-generated from RARE rule bv-lshr-by--1
        +
      • +
      + + + +
        +
      • +

        BV_LSHR_BY_CONST_2

        +
        public static final ProofRewriteRule BV_LSHR_BY_CONST_2
        +
        Auto-generated from RARE rule bv-lshr-by--2
        +
      • +
      + + + +
        +
      • +

        BV_ASHR_BY_CONST_0

        +
        public static final ProofRewriteRule BV_ASHR_BY_CONST_0
        +
        Auto-generated from RARE rule bv-ashr-by--0
        +
      • +
      + + + +
        +
      • +

        BV_ASHR_BY_CONST_1

        +
        public static final ProofRewriteRule BV_ASHR_BY_CONST_1
        +
        Auto-generated from RARE rule bv-ashr-by--1
        +
      • +
      + + + +
        +
      • +

        BV_ASHR_BY_CONST_2

        +
        public static final ProofRewriteRule BV_ASHR_BY_CONST_2
        +
        Auto-generated from RARE rule bv-ashr-by--2
        +
      • +
      + + + +
        +
      • +

        BV_AND_CONCAT_PULLUP

        +
        public static final ProofRewriteRule BV_AND_CONCAT_PULLUP
        +
        Auto-generated from RARE rule bv-and-concat-pullup
        +
      • +
      + + + +
        +
      • +

        BV_OR_CONCAT_PULLUP

        +
        public static final ProofRewriteRule BV_OR_CONCAT_PULLUP
        +
        Auto-generated from RARE rule bv-or-concat-pullup
        +
      • +
      + + + +
        +
      • +

        BV_XOR_CONCAT_PULLUP

        +
        public static final ProofRewriteRule BV_XOR_CONCAT_PULLUP
        +
        Auto-generated from RARE rule bv-xor-concat-pullup
        +
      • +
      + + + +
        +
      • +

        BV_BITWISE_IDEMP_1

        +
        public static final ProofRewriteRule BV_BITWISE_IDEMP_1
        +
        Auto-generated from RARE rule bv-bitwise-idemp-1
        +
      • +
      + + + +
        +
      • +

        BV_BITWISE_IDEMP_2

        +
        public static final ProofRewriteRule BV_BITWISE_IDEMP_2
        +
        Auto-generated from RARE rule bv-bitwise-idemp-2
        +
      • +
      + + + +
        +
      • +

        BV_AND_ZERO

        +
        public static final ProofRewriteRule BV_AND_ZERO
        +
        Auto-generated from RARE rule bv-and-zero
        +
      • +
      + + + +
        +
      • +

        BV_AND_ONE

        +
        public static final ProofRewriteRule BV_AND_ONE
        +
        Auto-generated from RARE rule bv-and-one
        +
      • +
      + + + +
        +
      • +

        BV_OR_ONE

        +
        public static final ProofRewriteRule BV_OR_ONE
        +
        Auto-generated from RARE rule bv-or-one
        +
      • +
      + + + +
        +
      • +

        BV_XOR_DUPLICATE

        +
        public static final ProofRewriteRule BV_XOR_DUPLICATE
        +
        Auto-generated from RARE rule bv-xor-duplicate
        +
      • +
      + + + +
        +
      • +

        BV_XOR_ONES

        +
        public static final ProofRewriteRule BV_XOR_ONES
        +
        Auto-generated from RARE rule bv-xor-ones
        +
      • +
      + + + +
        +
      • +

        BV_XOR_ZERO

        +
        public static final ProofRewriteRule BV_XOR_ZERO
        +
        Auto-generated from RARE rule bv-xor-zero
        +
      • +
      + + + +
        +
      • +

        BV_BITWISE_NOT_AND

        +
        public static final ProofRewriteRule BV_BITWISE_NOT_AND
        +
        Auto-generated from RARE rule bv-bitwise-not-and
        +
      • +
      + + + +
        +
      • +

        BV_BITWISE_NOT_OR

        +
        public static final ProofRewriteRule BV_BITWISE_NOT_OR
        +
        Auto-generated from RARE rule bv-bitwise-not-or
        +
      • +
      + + + +
        +
      • +

        BV_XOR_NOT

        +
        public static final ProofRewriteRule BV_XOR_NOT
        +
        Auto-generated from RARE rule bv-xor-not
        +
      • +
      + + + +
        +
      • +

        BV_NOT_IDEMP

        +
        public static final ProofRewriteRule BV_NOT_IDEMP
        +
        Auto-generated from RARE rule bv-not-idemp
        +
      • +
      + + + +
        +
      • +

        BV_ULT_ZERO_1

        +
        public static final ProofRewriteRule BV_ULT_ZERO_1
        +
        Auto-generated from RARE rule bv-ult-zero-1
        +
      • +
      + + + +
        +
      • +

        BV_ULT_ZERO_2

        +
        public static final ProofRewriteRule BV_ULT_ZERO_2
        +
        Auto-generated from RARE rule bv-ult-zero-2
        +
      • +
      + + + +
        +
      • +

        BV_ULT_SELF

        +
        public static final ProofRewriteRule BV_ULT_SELF
        +
        Auto-generated from RARE rule bv-ult-self
        +
      • +
      + + + +
        +
      • +

        BV_LT_SELF

        +
        public static final ProofRewriteRule BV_LT_SELF
        +
        Auto-generated from RARE rule bv-lt-self
        +
      • +
      + + + +
        +
      • +

        BV_ULE_SELF

        +
        public static final ProofRewriteRule BV_ULE_SELF
        +
        Auto-generated from RARE rule bv-ule-self
        +
      • +
      + + + +
        +
      • +

        BV_ULE_ZERO

        +
        public static final ProofRewriteRule BV_ULE_ZERO
        +
        Auto-generated from RARE rule bv-ule-zero
        +
      • +
      + + + +
        +
      • +

        BV_ZERO_ULE

        +
        public static final ProofRewriteRule BV_ZERO_ULE
        +
        Auto-generated from RARE rule bv-zero-ule
        +
      • +
      + + + +
        +
      • +

        BV_SLE_SELF

        +
        public static final ProofRewriteRule BV_SLE_SELF
        +
        Auto-generated from RARE rule bv-sle-self
        +
      • +
      + + + +
        +
      • +

        BV_ULE_MAX

        +
        public static final ProofRewriteRule BV_ULE_MAX
        +
        Auto-generated from RARE rule bv-ule-max
        +
      • +
      + + + +
        +
      • +

        BV_NOT_ULT

        +
        public static final ProofRewriteRule BV_NOT_ULT
        +
        Auto-generated from RARE rule bv-not-ult
        +
      • +
      + + + +
        +
      • +

        BV_NOT_ULE

        +
        public static final ProofRewriteRule BV_NOT_ULE
        +
        Auto-generated from RARE rule bv-not-ule
        +
      • +
      + + + +
        +
      • +

        BV_NOT_SLE

        +
        public static final ProofRewriteRule BV_NOT_SLE
        +
        Auto-generated from RARE rule bv-not-sle
        +
      • +
      + + + +
        +
      • +

        BV_MULT_POW2_1

        +
        public static final ProofRewriteRule BV_MULT_POW2_1
        +
        Auto-generated from RARE rule bv-mult-pow2-1
        +
      • +
      + + + +
        +
      • +

        BV_MULT_POW2_2

        +
        public static final ProofRewriteRule BV_MULT_POW2_2
        +
        Auto-generated from RARE rule bv-mult-pow2-2
        +
      • +
      + + + +
        +
      • +

        BV_MULT_POW2_2B

        +
        public static final ProofRewriteRule BV_MULT_POW2_2B
        +
        Auto-generated from RARE rule bv-mult-pow2-2b
        +
      • +
      + + + +
        +
      • +

        BV_EXTRACT_MULT_LEADING_BIT

        +
        public static final ProofRewriteRule BV_EXTRACT_MULT_LEADING_BIT
        +
        Auto-generated from RARE rule bv-extract-mult-leading-bit
        +
      • +
      + + + +
        +
      • +

        BV_UDIV_POW2_NOT_ONE

        +
        public static final ProofRewriteRule BV_UDIV_POW2_NOT_ONE
        +
        Auto-generated from RARE rule bv-udiv-pow2-not-one
        +
      • +
      + + + +
        +
      • +

        BV_UDIV_ZERO

        +
        public static final ProofRewriteRule BV_UDIV_ZERO
        +
        Auto-generated from RARE rule bv-udiv-zero
        +
      • +
      + + + +
        +
      • +

        BV_UDIV_ONE

        +
        public static final ProofRewriteRule BV_UDIV_ONE
        +
        Auto-generated from RARE rule bv-udiv-one
        +
      • +
      + + + +
        +
      • +

        BV_UREM_POW2_NOT_ONE

        +
        public static final ProofRewriteRule BV_UREM_POW2_NOT_ONE
        +
        Auto-generated from RARE rule bv-urem-pow2-not-one
        +
      • +
      + + + +
        +
      • +

        BV_UREM_ONE

        +
        public static final ProofRewriteRule BV_UREM_ONE
        +
        Auto-generated from RARE rule bv-urem-one
        +
      • +
      + + + +
        +
      • +

        BV_UREM_SELF

        +
        public static final ProofRewriteRule BV_UREM_SELF
        +
        Auto-generated from RARE rule bv-urem-self
        +
      • +
      + + + +
        +
      • +

        BV_SHL_ZERO

        +
        public static final ProofRewriteRule BV_SHL_ZERO
        +
        Auto-generated from RARE rule bv-shl-zero
        +
      • +
      + + + +
        +
      • +

        BV_LSHR_ZERO

        +
        public static final ProofRewriteRule BV_LSHR_ZERO
        +
        Auto-generated from RARE rule bv-lshr-zero
        +
      • +
      + + + +
        +
      • +

        BV_ASHR_ZERO

        +
        public static final ProofRewriteRule BV_ASHR_ZERO
        +
        Auto-generated from RARE rule bv-ashr-zero
        +
      • +
      + + + +
        +
      • +

        BV_UGT_UREM

        +
        public static final ProofRewriteRule BV_UGT_UREM
        +
        Auto-generated from RARE rule bv-ugt-urem
        +
      • +
      + + + +
        +
      • +

        BV_ULT_ONE

        +
        public static final ProofRewriteRule BV_ULT_ONE
        +
        Auto-generated from RARE rule bv-ult-one
        +
      • +
      + + + +
        +
      • +

        BV_SLT_ZERO

        +
        public static final ProofRewriteRule BV_SLT_ZERO
        +
        Auto-generated from RARE rule bv-slt-zero
        +
      • +
      + + + +
        +
      • +

        BV_MERGE_SIGN_EXTEND_1

        +
        public static final ProofRewriteRule BV_MERGE_SIGN_EXTEND_1
        +
        Auto-generated from RARE rule bv-merge-sign-extend-1
        +
      • +
      + + + +
        +
      • +

        BV_MERGE_SIGN_EXTEND_2

        +
        public static final ProofRewriteRule BV_MERGE_SIGN_EXTEND_2
        +
        Auto-generated from RARE rule bv-merge-sign-extend-2
        +
      • +
      + + + +
        +
      • +

        BV_MERGE_SIGN_EXTEND_3

        +
        public static final ProofRewriteRule BV_MERGE_SIGN_EXTEND_3
        +
        Auto-generated from RARE rule bv-merge-sign-extend-3
        +
      • +
      + + + +
        +
      • +

        BV_SIGN_EXTEND_EQ_CONST_1

        +
        public static final ProofRewriteRule BV_SIGN_EXTEND_EQ_CONST_1
        +
        Auto-generated from RARE rule bv-sign-extend-eq--1
        +
      • +
      + + + +
        +
      • +

        BV_SIGN_EXTEND_EQ_CONST_2

        +
        public static final ProofRewriteRule BV_SIGN_EXTEND_EQ_CONST_2
        +
        Auto-generated from RARE rule bv-sign-extend-eq--2
        +
      • +
      + + + +
        +
      • +

        BV_ZERO_EXTEND_EQ_CONST_1

        +
        public static final ProofRewriteRule BV_ZERO_EXTEND_EQ_CONST_1
        +
        Auto-generated from RARE rule bv-zero-extend-eq--1
        +
      • +
      + + + +
        +
      • +

        BV_ZERO_EXTEND_EQ_CONST_2

        +
        public static final ProofRewriteRule BV_ZERO_EXTEND_EQ_CONST_2
        +
        Auto-generated from RARE rule bv-zero-extend-eq--2
        +
      • +
      + + + +
        +
      • +

        BV_SIGN_EXTEND_ULT_CONST_1

        +
        public static final ProofRewriteRule BV_SIGN_EXTEND_ULT_CONST_1
        +
        Auto-generated from RARE rule bv-sign-extend-ult--1
        +
      • +
      + + + +
        +
      • +

        BV_SIGN_EXTEND_ULT_CONST_2

        +
        public static final ProofRewriteRule BV_SIGN_EXTEND_ULT_CONST_2
        +
        Auto-generated from RARE rule bv-sign-extend-ult--2
        +
      • +
      + + + +
        +
      • +

        BV_SIGN_EXTEND_ULT_CONST_3

        +
        public static final ProofRewriteRule BV_SIGN_EXTEND_ULT_CONST_3
        +
        Auto-generated from RARE rule bv-sign-extend-ult--3
        +
      • +
      + + + +
        +
      • +

        BV_SIGN_EXTEND_ULT_CONST_4

        +
        public static final ProofRewriteRule BV_SIGN_EXTEND_ULT_CONST_4
        +
        Auto-generated from RARE rule bv-sign-extend-ult--4
        +
      • +
      + + + +
        +
      • +

        SETS_EQ_SINGLETON_EMP

        +
        public static final ProofRewriteRule SETS_EQ_SINGLETON_EMP
        +
        Auto-generated from RARE rule sets-eq-singleton-emp
        +
      • +
      + + + +
        +
      • +

        SETS_MEMBER_SINGLETON

        +
        public static final ProofRewriteRule SETS_MEMBER_SINGLETON
        +
        Auto-generated from RARE rule sets-member-singleton
        +
      • +
      + + + +
        +
      • +

        SETS_MEMBER_EMP

        +
        public static final ProofRewriteRule SETS_MEMBER_EMP
        +
        Auto-generated from RARE rule sets-member-emp
        +
      • +
      + + + +
        +
      • +

        SETS_SUBSET_ELIM

        +
        public static final ProofRewriteRule SETS_SUBSET_ELIM
        +
        Auto-generated from RARE rule sets-subset-elim
        +
      • +
      + + + +
        +
      • +

        SETS_UNION_COMM

        +
        public static final ProofRewriteRule SETS_UNION_COMM
        +
        Auto-generated from RARE rule sets-union-comm
        +
      • +
      + + + +
        +
      • +

        SETS_INTER_COMM

        +
        public static final ProofRewriteRule SETS_INTER_COMM
        +
        Auto-generated from RARE rule sets-inter-comm
        +
      • +
      + + + +
        +
      • +

        SETS_INTER_EMP1

        +
        public static final ProofRewriteRule SETS_INTER_EMP1
        +
        Auto-generated from RARE rule sets-inter-emp1
        +
      • +
      + + + +
        +
      • +

        SETS_INTER_EMP2

        +
        public static final ProofRewriteRule SETS_INTER_EMP2
        +
        Auto-generated from RARE rule sets-inter-emp2
        +
      • +
      + + + +
        +
      • +

        SETS_MINUS_EMP1

        +
        public static final ProofRewriteRule SETS_MINUS_EMP1
        +
        Auto-generated from RARE rule sets-minus-emp1
        +
      • +
      + + + +
        +
      • +

        SETS_MINUS_EMP2

        +
        public static final ProofRewriteRule SETS_MINUS_EMP2
        +
        Auto-generated from RARE rule sets-minus-emp2
        +
      • +
      + + + +
        +
      • +

        SETS_UNION_EMP1

        +
        public static final ProofRewriteRule SETS_UNION_EMP1
        +
        Auto-generated from RARE rule sets-union-emp1
        +
      • +
      + + + +
        +
      • +

        SETS_UNION_EMP2

        +
        public static final ProofRewriteRule SETS_UNION_EMP2
        +
        Auto-generated from RARE rule sets-union-emp2
        +
      • +
      + + + +
        +
      • +

        SETS_INTER_MEMBER

        +
        public static final ProofRewriteRule SETS_INTER_MEMBER
        +
        Auto-generated from RARE rule sets-inter-member
        +
      • +
      + + + +
        +
      • +

        SETS_MINUS_MEMBER

        +
        public static final ProofRewriteRule SETS_MINUS_MEMBER
        +
        Auto-generated from RARE rule sets-minus-member
        +
      • +
      + + + +
        +
      • +

        SETS_UNION_MEMBER

        +
        public static final ProofRewriteRule SETS_UNION_MEMBER
        +
        Auto-generated from RARE rule sets-union-member
        +
      • +
      + + + +
        +
      • +

        SETS_CHOOSE_SINGLETON

        +
        public static final ProofRewriteRule SETS_CHOOSE_SINGLETON
        +
        Auto-generated from RARE rule sets-choose-singleton
        +
      • +
      + + + +
        +
      • +

        SETS_CARD_SINGLETON

        +
        public static final ProofRewriteRule SETS_CARD_SINGLETON
        +
        Auto-generated from RARE rule sets-card-singleton
        +
      • +
      + + + +
        +
      • +

        SETS_CARD_UNION

        +
        public static final ProofRewriteRule SETS_CARD_UNION
        +
        Auto-generated from RARE rule sets-card-union
        +
      • +
      + + + +
        +
      • +

        SETS_CARD_MINUS

        +
        public static final ProofRewriteRule SETS_CARD_MINUS
        +
        Auto-generated from RARE rule sets-card-minus
        +
      • +
      + + + +
        +
      • +

        SETS_CARD_EMP

        +
        public static final ProofRewriteRule SETS_CARD_EMP
        +
        Auto-generated from RARE rule sets-card-emp
        +
      • +
      + + + +
        +
      • +

        SETS_MINUS_SELF

        +
        public static final ProofRewriteRule SETS_MINUS_SELF
        +
        Auto-generated from RARE rule sets-minus-self
        +
      • +
      + + + +
        +
      • +

        SETS_IS_EMPTY_ELIM

        +
        public static final ProofRewriteRule SETS_IS_EMPTY_ELIM
        +
        Auto-generated from RARE rule sets-is-empty-elim
        +
      • +
      + + + +
        +
      • +

        STR_EQ_CTN_FALSE

        +
        public static final ProofRewriteRule STR_EQ_CTN_FALSE
        +
        Auto-generated from RARE rule str-eq-ctn-false
        +
      • +
      + + + +
        +
      • +

        STR_EQ_CTN_FULL_FALSE1

        +
        public static final ProofRewriteRule STR_EQ_CTN_FULL_FALSE1
        +
        Auto-generated from RARE rule str-eq-ctn-full-false1
        +
      • +
      + + + +
        +
      • +

        STR_EQ_CTN_FULL_FALSE2

        +
        public static final ProofRewriteRule STR_EQ_CTN_FULL_FALSE2
        +
        Auto-generated from RARE rule str-eq-ctn-full-false2
        +
      • +
      + + + +
        +
      • +

        STR_CONCAT_FLATTEN

        +
        public static final ProofRewriteRule STR_CONCAT_FLATTEN
        +
        Auto-generated from RARE rule str-concat-flatten
        +
      • +
      + + + +
        +
      • +

        STR_CONCAT_FLATTEN_EQ

        +
        public static final ProofRewriteRule STR_CONCAT_FLATTEN_EQ
        +
        Auto-generated from RARE rule str-concat-flatten-eq
        +
      • +
      + + + +
        +
      • +

        STR_CONCAT_FLATTEN_EQ_REV

        +
        public static final ProofRewriteRule STR_CONCAT_FLATTEN_EQ_REV
        +
        Auto-generated from RARE rule str-concat-flatten-eq-rev
        +
      • +
      + + + +
        +
      • +

        STR_SUBSTR_EMPTY_STR

        +
        public static final ProofRewriteRule STR_SUBSTR_EMPTY_STR
        +
        Auto-generated from RARE rule str-substr-empty-str
        +
      • +
      + + + +
        +
      • +

        STR_SUBSTR_EMPTY_RANGE

        +
        public static final ProofRewriteRule STR_SUBSTR_EMPTY_RANGE
        +
        Auto-generated from RARE rule str-substr-empty-range
        +
      • +
      + + + +
        +
      • +

        STR_SUBSTR_EMPTY_START

        +
        public static final ProofRewriteRule STR_SUBSTR_EMPTY_START
        +
        Auto-generated from RARE rule str-substr-empty-start
        +
      • +
      + + + +
        +
      • +

        STR_SUBSTR_EMPTY_START_NEG

        +
        public static final ProofRewriteRule STR_SUBSTR_EMPTY_START_NEG
        +
        Auto-generated from RARE rule str-substr-empty-start-neg
        +
      • +
      + + + +
        +
      • +

        STR_SUBSTR_EQ_EMPTY

        +
        public static final ProofRewriteRule STR_SUBSTR_EQ_EMPTY
        +
        Auto-generated from RARE rule str-substr-eq-empty
        +
      • +
      + + + +
        +
      • +

        STR_LEN_REPLACE_INV

        +
        public static final ProofRewriteRule STR_LEN_REPLACE_INV
        +
        Auto-generated from RARE rule str-len-replace-inv
        +
      • +
      + + + +
        +
      • +

        STR_LEN_UPDATE_INV

        +
        public static final ProofRewriteRule STR_LEN_UPDATE_INV
        +
        Auto-generated from RARE rule str-len-update-inv
        +
      • +
      + + + +
        +
      • +

        STR_LEN_SUBSTR_IN_RANGE

        +
        public static final ProofRewriteRule STR_LEN_SUBSTR_IN_RANGE
        +
        Auto-generated from RARE rule str-len-substr-in-range
        +
      • +
      + + + +
        +
      • +

        STR_LEN_SUBSTR_UB1

        +
        public static final ProofRewriteRule STR_LEN_SUBSTR_UB1
        +
        Auto-generated from RARE rule str-len-substr-ub1
        +
      • +
      + + + +
        +
      • +

        STR_LEN_SUBSTR_UB2

        +
        public static final ProofRewriteRule STR_LEN_SUBSTR_UB2
        +
        Auto-generated from RARE rule str-len-substr-ub2
        +
      • +
      + + + +
        +
      • +

        STR_CONCAT_CLASH

        +
        public static final ProofRewriteRule STR_CONCAT_CLASH
        +
        Auto-generated from RARE rule str-concat-clash
        +
      • +
      + + + +
        +
      • +

        STR_CONCAT_CLASH_REV

        +
        public static final ProofRewriteRule STR_CONCAT_CLASH_REV
        +
        Auto-generated from RARE rule str-concat-clash-rev
        +
      • +
      + + + +
        +
      • +

        STR_CONCAT_CLASH2

        +
        public static final ProofRewriteRule STR_CONCAT_CLASH2
        +
        Auto-generated from RARE rule str-concat-clash2
        +
      • +
      + + + +
        +
      • +

        STR_CONCAT_CLASH2_REV

        +
        public static final ProofRewriteRule STR_CONCAT_CLASH2_REV
        +
        Auto-generated from RARE rule str-concat-clash2-rev
        +
      • +
      + + + +
        +
      • +

        STR_CONCAT_UNIFY

        +
        public static final ProofRewriteRule STR_CONCAT_UNIFY
        +
        Auto-generated from RARE rule str-concat-unify
        +
      • +
      + + + +
        +
      • +

        STR_CONCAT_UNIFY_REV

        +
        public static final ProofRewriteRule STR_CONCAT_UNIFY_REV
        +
        Auto-generated from RARE rule str-concat-unify-rev
        +
      • +
      + + + +
        +
      • +

        STR_CONCAT_UNIFY_BASE

        +
        public static final ProofRewriteRule STR_CONCAT_UNIFY_BASE
        +
        Auto-generated from RARE rule str-concat-unify-base
        +
      • +
      + + + +
        +
      • +

        STR_CONCAT_UNIFY_BASE_REV

        +
        public static final ProofRewriteRule STR_CONCAT_UNIFY_BASE_REV
        +
        Auto-generated from RARE rule str-concat-unify-base-rev
        +
      • +
      + + + +
        +
      • +

        STR_CONCAT_CLASH_CHAR

        +
        public static final ProofRewriteRule STR_CONCAT_CLASH_CHAR
        +
        Auto-generated from RARE rule str-concat-clash-char
        +
      • +
      + + + +
        +
      • +

        STR_CONCAT_CLASH_CHAR_REV

        +
        public static final ProofRewriteRule STR_CONCAT_CLASH_CHAR_REV
        +
        Auto-generated from RARE rule str-concat-clash-char-rev
        +
      • +
      + + + +
        +
      • +

        STR_PREFIXOF_ELIM

        +
        public static final ProofRewriteRule STR_PREFIXOF_ELIM
        +
        Auto-generated from RARE rule str-prefixof-elim
        +
      • +
      + + + +
        +
      • +

        STR_SUFFIXOF_ELIM

        +
        public static final ProofRewriteRule STR_SUFFIXOF_ELIM
        +
        Auto-generated from RARE rule str-suffixof-elim
        +
      • +
      + + + +
        +
      • +

        STR_PREFIXOF_ONE

        +
        public static final ProofRewriteRule STR_PREFIXOF_ONE
        +
        Auto-generated from RARE rule str-prefixof-one
        +
      • +
      + + + +
        +
      • +

        STR_SUFFIXOF_ONE

        +
        public static final ProofRewriteRule STR_SUFFIXOF_ONE
        +
        Auto-generated from RARE rule str-suffixof-one
        +
      • +
      + + + +
        +
      • +

        STR_SUBSTR_COMBINE1

        +
        public static final ProofRewriteRule STR_SUBSTR_COMBINE1
        +
        Auto-generated from RARE rule str-substr-combine1
        +
      • +
      + + + +
        +
      • +

        STR_SUBSTR_COMBINE2

        +
        public static final ProofRewriteRule STR_SUBSTR_COMBINE2
        +
        Auto-generated from RARE rule str-substr-combine2
        +
      • +
      + + + +
        +
      • +

        STR_SUBSTR_COMBINE3

        +
        public static final ProofRewriteRule STR_SUBSTR_COMBINE3
        +
        Auto-generated from RARE rule str-substr-combine3
        +
      • +
      + + + +
        +
      • +

        STR_SUBSTR_COMBINE4

        +
        public static final ProofRewriteRule STR_SUBSTR_COMBINE4
        +
        Auto-generated from RARE rule str-substr-combine4
        +
      • +
      + + + +
        +
      • +

        STR_SUBSTR_CONCAT1

        +
        public static final ProofRewriteRule STR_SUBSTR_CONCAT1
        +
        Auto-generated from RARE rule str-substr-concat1
        +
      • +
      + + + +
        +
      • +

        STR_SUBSTR_CONCAT2

        +
        public static final ProofRewriteRule STR_SUBSTR_CONCAT2
        +
        Auto-generated from RARE rule str-substr-concat2
        +
      • +
      + + + +
        +
      • +

        STR_SUBSTR_FULL

        +
        public static final ProofRewriteRule STR_SUBSTR_FULL
        +
        Auto-generated from RARE rule str-substr-full
        +
      • +
      + + + +
        +
      • +

        STR_SUBSTR_FULL_EQ

        +
        public static final ProofRewriteRule STR_SUBSTR_FULL_EQ
        +
        Auto-generated from RARE rule str-substr-full-eq
        +
      • +
      + + + +
        +
      • +

        STR_CONTAINS_REFL

        +
        public static final ProofRewriteRule STR_CONTAINS_REFL
        +
        Auto-generated from RARE rule str-contains-refl
        +
      • +
      + + + +
        +
      • +

        STR_CONTAINS_CONCAT_FIND

        +
        public static final ProofRewriteRule STR_CONTAINS_CONCAT_FIND
        +
        Auto-generated from RARE rule str-contains-concat-find
        +
      • +
      + + + +
        +
      • +

        STR_CONTAINS_SPLIT_CHAR

        +
        public static final ProofRewriteRule STR_CONTAINS_SPLIT_CHAR
        +
        Auto-generated from RARE rule str-contains-split-char
        +
      • +
      + + + +
        +
      • +

        STR_CONTAINS_LT_LEN

        +
        public static final ProofRewriteRule STR_CONTAINS_LT_LEN
        +
        Auto-generated from RARE rule str-contains-lt-len
        +
      • +
      + + + +
        +
      • +

        STR_CONTAINS_LEQ_LEN_EQ

        +
        public static final ProofRewriteRule STR_CONTAINS_LEQ_LEN_EQ
        +
        Auto-generated from RARE rule str-contains-leq-len-eq
        +
      • +
      + + + +
        +
      • +

        STR_CONTAINS_EMP

        +
        public static final ProofRewriteRule STR_CONTAINS_EMP
        +
        Auto-generated from RARE rule str-contains-emp
        +
      • +
      + + + +
        +
      • +

        STR_CONTAINS_IS_EMP

        +
        public static final ProofRewriteRule STR_CONTAINS_IS_EMP
        +
        Auto-generated from RARE rule str-contains-is-emp
        +
      • +
      + + + +
        +
      • +

        STR_AT_ELIM

        +
        public static final ProofRewriteRule STR_AT_ELIM
        +
        Auto-generated from RARE rule str-at-elim
        +
      • +
      + + + +
        +
      • +

        STR_REPLACE_SELF

        +
        public static final ProofRewriteRule STR_REPLACE_SELF
        +
        Auto-generated from RARE rule str-replace-self
        +
      • +
      + + + +
        +
      • +

        STR_REPLACE_PREFIX

        +
        public static final ProofRewriteRule STR_REPLACE_PREFIX
        +
        Auto-generated from RARE rule str-replace-prefix
        +
      • +
      + + + +
        +
      • +

        STR_REPLACE_NO_CONTAINS

        +
        public static final ProofRewriteRule STR_REPLACE_NO_CONTAINS
        +
        Auto-generated from RARE rule str-replace-no-contains
        +
      • +
      + + + +
        +
      • +

        STR_REPLACE_EMPTY

        +
        public static final ProofRewriteRule STR_REPLACE_EMPTY
        +
        Auto-generated from RARE rule str-replace-empty
        +
      • +
      + + + +
        +
      • +

        STR_REPLACE_CONTAINS_PRE

        +
        public static final ProofRewriteRule STR_REPLACE_CONTAINS_PRE
        +
        Auto-generated from RARE rule str-replace-contains-pre
        +
      • +
      + + + +
        +
      • +

        STR_REPLACE_ALL_NO_CONTAINS

        +
        public static final ProofRewriteRule STR_REPLACE_ALL_NO_CONTAINS
        +
        Auto-generated from RARE rule str-replace-all-no-contains
        +
      • +
      + + + +
        +
      • +

        STR_REPLACE_RE_NONE

        +
        public static final ProofRewriteRule STR_REPLACE_RE_NONE
        +
        Auto-generated from RARE rule str-replace-re-none
        +
      • +
      + + + +
        +
      • +

        STR_REPLACE_RE_ALL_NONE

        +
        public static final ProofRewriteRule STR_REPLACE_RE_ALL_NONE
        +
        Auto-generated from RARE rule str-replace-re-all-none
        +
      • +
      + + + +
        +
      • +

        STR_LEN_CONCAT_REC

        +
        public static final ProofRewriteRule STR_LEN_CONCAT_REC
        +
        Auto-generated from RARE rule str-len-concat-rec
        +
      • +
      + + + +
        +
      • +

        STR_INDEXOF_SELF

        +
        public static final ProofRewriteRule STR_INDEXOF_SELF
        +
        Auto-generated from RARE rule str-indexof-self
        +
      • +
      + + + +
        +
      • +

        STR_INDEXOF_NO_CONTAINS

        +
        public static final ProofRewriteRule STR_INDEXOF_NO_CONTAINS
        +
        Auto-generated from RARE rule str-indexof-no-contains
        +
      • +
      + + + +
        +
      • +

        STR_INDEXOF_CONTAINS_PRE

        +
        public static final ProofRewriteRule STR_INDEXOF_CONTAINS_PRE
        +
        Auto-generated from RARE rule str-indexof-contains-pre
        +
      • +
      + + + +
        +
      • +

        STR_INDEXOF_RE_NONE

        +
        public static final ProofRewriteRule STR_INDEXOF_RE_NONE
        +
        Auto-generated from RARE rule str-indexof-re-none
        +
      • +
      + + + +
        +
      • +

        STR_TO_LOWER_CONCAT

        +
        public static final ProofRewriteRule STR_TO_LOWER_CONCAT
        +
        Auto-generated from RARE rule str-to-lower-concat
        +
      • +
      + + + +
        +
      • +

        STR_TO_UPPER_CONCAT

        +
        public static final ProofRewriteRule STR_TO_UPPER_CONCAT
        +
        Auto-generated from RARE rule str-to-upper-concat
        +
      • +
      + + + +
        +
      • +

        STR_TO_LOWER_UPPER

        +
        public static final ProofRewriteRule STR_TO_LOWER_UPPER
        +
        Auto-generated from RARE rule str-to-lower-upper
        +
      • +
      + + + +
        +
      • +

        STR_TO_UPPER_LOWER

        +
        public static final ProofRewriteRule STR_TO_UPPER_LOWER
        +
        Auto-generated from RARE rule str-to-upper-lower
        +
      • +
      + + + +
        +
      • +

        STR_TO_LOWER_LEN

        +
        public static final ProofRewriteRule STR_TO_LOWER_LEN
        +
        Auto-generated from RARE rule str-to-lower-len
        +
      • +
      + + + +
        +
      • +

        STR_TO_UPPER_LEN

        +
        public static final ProofRewriteRule STR_TO_UPPER_LEN
        +
        Auto-generated from RARE rule str-to-upper-len
        +
      • +
      + + + +
        +
      • +

        STR_TO_LOWER_FROM_INT

        +
        public static final ProofRewriteRule STR_TO_LOWER_FROM_INT
        +
        Auto-generated from RARE rule str-to-lower-from-int
        +
      • +
      + + + +
        +
      • +

        STR_TO_UPPER_FROM_INT

        +
        public static final ProofRewriteRule STR_TO_UPPER_FROM_INT
        +
        Auto-generated from RARE rule str-to-upper-from-int
        +
      • +
      + + + +
        +
      • +

        STR_TO_INT_CONCAT_NEG_ONE

        +
        public static final ProofRewriteRule STR_TO_INT_CONCAT_NEG_ONE
        +
        Auto-generated from RARE rule str-to-int-concat-neg-one
        +
      • +
      + + + +
        +
      • +

        STR_LEQ_EMPTY

        +
        public static final ProofRewriteRule STR_LEQ_EMPTY
        +
        Auto-generated from RARE rule str-leq-empty
        +
      • +
      + + + +
        +
      • +

        STR_LEQ_EMPTY_EQ

        +
        public static final ProofRewriteRule STR_LEQ_EMPTY_EQ
        +
        Auto-generated from RARE rule str-leq-empty-eq
        +
      • +
      + + + +
        +
      • +

        STR_LEQ_CONCAT_FALSE

        +
        public static final ProofRewriteRule STR_LEQ_CONCAT_FALSE
        +
        Auto-generated from RARE rule str-leq-concat-false
        +
      • +
      + + + +
        +
      • +

        STR_LEQ_CONCAT_TRUE

        +
        public static final ProofRewriteRule STR_LEQ_CONCAT_TRUE
        +
        Auto-generated from RARE rule str-leq-concat-true
        +
      • +
      + + + +
        +
      • +

        STR_LT_ELIM

        +
        public static final ProofRewriteRule STR_LT_ELIM
        +
        Auto-generated from RARE rule str-lt-elim
        +
      • +
      + + + +
        +
      • +

        RE_ALL_ELIM

        +
        public static final ProofRewriteRule RE_ALL_ELIM
        +
        Auto-generated from RARE rule re-all-elim
        +
      • +
      + + + +
        +
      • +

        RE_OPT_ELIM

        +
        public static final ProofRewriteRule RE_OPT_ELIM
        +
        Auto-generated from RARE rule re-opt-elim
        +
      • +
      + + + +
        +
      • +

        RE_DIFF_ELIM

        +
        public static final ProofRewriteRule RE_DIFF_ELIM
        +
        Auto-generated from RARE rule re-diff-elim
        +
      • +
      + + + +
        +
      • +

        RE_CONCAT_EMP

        +
        public static final ProofRewriteRule RE_CONCAT_EMP
        +
        Auto-generated from RARE rule re-concat-emp
        +
      • +
      + + + +
        +
      • +

        RE_CONCAT_NONE

        +
        public static final ProofRewriteRule RE_CONCAT_NONE
        +
        Auto-generated from RARE rule re-concat-none
        +
      • +
      + + + +
        +
      • +

        RE_CONCAT_FLATTEN

        +
        public static final ProofRewriteRule RE_CONCAT_FLATTEN
        +
        Auto-generated from RARE rule re-concat-flatten
        +
      • +
      + + + +
        +
      • +

        RE_CONCAT_STAR_SWAP

        +
        public static final ProofRewriteRule RE_CONCAT_STAR_SWAP
        +
        Auto-generated from RARE rule re-concat-star-swap
        +
      • +
      + + + +
        +
      • +

        RE_CONCAT_STAR_REPEAT

        +
        public static final ProofRewriteRule RE_CONCAT_STAR_REPEAT
        +
        Auto-generated from RARE rule re-concat-star-repeat
        +
      • +
      + + + +
        +
      • +

        RE_CONCAT_MERGE

        +
        public static final ProofRewriteRule RE_CONCAT_MERGE
        +
        Auto-generated from RARE rule re-concat-merge
        +
      • +
      + + + +
        +
      • +

        RE_UNION_ALL

        +
        public static final ProofRewriteRule RE_UNION_ALL
        +
        Auto-generated from RARE rule re-union-all
        +
      • +
      + + + +
        +
      • +

        RE_UNION_NONE

        +
        public static final ProofRewriteRule RE_UNION_NONE
        +
        Auto-generated from RARE rule re-union-none
        +
      • +
      + + + +
        +
      • +

        RE_UNION_FLATTEN

        +
        public static final ProofRewriteRule RE_UNION_FLATTEN
        +
        Auto-generated from RARE rule re-union-flatten
        +
      • +
      + + + +
        +
      • +

        RE_UNION_DUP

        +
        public static final ProofRewriteRule RE_UNION_DUP
        +
        Auto-generated from RARE rule re-union-dup
        +
      • +
      + + + +
        +
      • +

        RE_INTER_ALL

        +
        public static final ProofRewriteRule RE_INTER_ALL
        +
        Auto-generated from RARE rule re-inter-all
        +
      • +
      + + + +
        +
      • +

        RE_INTER_NONE

        +
        public static final ProofRewriteRule RE_INTER_NONE
        +
        Auto-generated from RARE rule re-inter-none
        +
      • +
      + + + +
        +
      • +

        RE_INTER_FLATTEN

        +
        public static final ProofRewriteRule RE_INTER_FLATTEN
        +
        Auto-generated from RARE rule re-inter-flatten
        +
      • +
      + + + +
        +
      • +

        RE_INTER_DUP

        +
        public static final ProofRewriteRule RE_INTER_DUP
        +
        Auto-generated from RARE rule re-inter-dup
        +
      • +
      + + + +
        +
      • +

        RE_STAR_NONE

        +
        public static final ProofRewriteRule RE_STAR_NONE
        +
        Auto-generated from RARE rule re-star-none
        +
      • +
      + + + +
        +
      • +

        RE_LOOP_NEG

        +
        public static final ProofRewriteRule RE_LOOP_NEG
        +
        Auto-generated from RARE rule re-loop-neg
        +
      • +
      + + + +
        +
      • +

        RE_INTER_CSTRING

        +
        public static final ProofRewriteRule RE_INTER_CSTRING
        +
        Auto-generated from RARE rule re-inter-cstring
        +
      • +
      + + + +
        +
      • +

        RE_INTER_CSTRING_NEG

        +
        public static final ProofRewriteRule RE_INTER_CSTRING_NEG
        +
        Auto-generated from RARE rule re-inter-cstring-neg
        +
      • +
      + + + +
        +
      • +

        STR_SUBSTR_LEN_INCLUDE

        +
        public static final ProofRewriteRule STR_SUBSTR_LEN_INCLUDE
        +
        Auto-generated from RARE rule str-substr-len-include
        +
      • +
      + + + +
        +
      • +

        STR_SUBSTR_LEN_INCLUDE_PRE

        +
        public static final ProofRewriteRule STR_SUBSTR_LEN_INCLUDE_PRE
        +
        Auto-generated from RARE rule str-substr-len-include-pre
        +
      • +
      + + + +
        +
      • +

        STR_SUBSTR_LEN_SKIP

        +
        public static final ProofRewriteRule STR_SUBSTR_LEN_SKIP
        +
        Auto-generated from RARE rule str-substr-len-skip
        +
      • +
      + + + +
        +
      • +

        SEQ_LEN_REV

        +
        public static final ProofRewriteRule SEQ_LEN_REV
        +
        Auto-generated from RARE rule seq-len-rev
        +
      • +
      + + + +
        +
      • +

        SEQ_REV_REV

        +
        public static final ProofRewriteRule SEQ_REV_REV
        +
        Auto-generated from RARE rule seq-rev-rev
        +
      • +
      + + + +
        +
      • +

        SEQ_REV_CONCAT

        +
        public static final ProofRewriteRule SEQ_REV_CONCAT
        +
        Auto-generated from RARE rule seq-rev-concat
        +
      • +
      + + + +
        +
      • +

        SEQ_LEN_UNIT

        +
        public static final ProofRewriteRule SEQ_LEN_UNIT
        +
        Auto-generated from RARE rule seq-len-unit
        +
      • +
      + + + +
        +
      • +

        SEQ_NTH_UNIT

        +
        public static final ProofRewriteRule SEQ_NTH_UNIT
        +
        Auto-generated from RARE rule seq-nth-unit
        +
      • +
      + + + +
        +
      • +

        SEQ_REV_UNIT

        +
        public static final ProofRewriteRule SEQ_REV_UNIT
        +
        Auto-generated from RARE rule seq-rev-unit
        +
      • +
      + + + +
        +
      • +

        SEQ_LEN_EMPTY

        +
        public static final ProofRewriteRule SEQ_LEN_EMPTY
        +
        Auto-generated from RARE rule seq-len-empty
        +
      • +
      + + + +
        +
      • +

        RE_IN_EMPTY

        +
        public static final ProofRewriteRule RE_IN_EMPTY
        +
        Auto-generated from RARE rule re-in-empty
        +
      • +
      + + + +
        +
      • +

        RE_IN_SIGMA

        +
        public static final ProofRewriteRule RE_IN_SIGMA
        +
        Auto-generated from RARE rule re-in-sigma
        +
      • +
      + + + +
        +
      • +

        RE_IN_SIGMA_STAR

        +
        public static final ProofRewriteRule RE_IN_SIGMA_STAR
        +
        Auto-generated from RARE rule re-in-sigma-star
        +
      • +
      + + + +
        +
      • +

        RE_IN_CSTRING

        +
        public static final ProofRewriteRule RE_IN_CSTRING
        +
        Auto-generated from RARE rule re-in-cstring
        +
      • +
      + + + +
        +
      • +

        RE_IN_COMP

        +
        public static final ProofRewriteRule RE_IN_COMP
        +
        Auto-generated from RARE rule re-in-comp
        +
      • +
      + + + +
        +
      • +

        STR_IN_RE_UNION_ELIM

        +
        public static final ProofRewriteRule STR_IN_RE_UNION_ELIM
        +
        Auto-generated from RARE rule str-in-re-union-elim
        +
      • +
      + + + +
        +
      • +

        STR_IN_RE_INTER_ELIM

        +
        public static final ProofRewriteRule STR_IN_RE_INTER_ELIM
        +
        Auto-generated from RARE rule str-in-re-inter-elim
        +
      • +
      + + + +
        +
      • +

        STR_IN_RE_RANGE_ELIM

        +
        public static final ProofRewriteRule STR_IN_RE_RANGE_ELIM
        +
        Auto-generated from RARE rule str-in-re-range-elim
        +
      • +
      + + + +
        +
      • +

        STR_IN_RE_CONTAINS

        +
        public static final ProofRewriteRule STR_IN_RE_CONTAINS
        +
        Auto-generated from RARE rule str-in-re-contains
        +
      • +
      + + + +
        +
      • +

        STR_IN_RE_STRIP_PREFIX

        +
        public static final ProofRewriteRule STR_IN_RE_STRIP_PREFIX
        +
        Auto-generated from RARE rule str-in-re-strip-prefix
        +
      • +
      + + + +
        +
      • +

        STR_IN_RE_STRIP_PREFIX_NEG

        +
        public static final ProofRewriteRule STR_IN_RE_STRIP_PREFIX_NEG
        +
        Auto-generated from RARE rule str-in-re-strip-prefix-neg
        +
      • +
      + + + +
        +
      • +

        STR_IN_RE_STRIP_PREFIX_SR_SINGLE

        +
        public static final ProofRewriteRule STR_IN_RE_STRIP_PREFIX_SR_SINGLE
        +
        Auto-generated from RARE rule str-in-re-strip-prefix-sr-single
        +
      • +
      + + + +
        +
      • +

        STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG

        +
        public static final ProofRewriteRule STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG
        +
        Auto-generated from RARE rule str-in-re-strip-prefix-sr-single-neg
        +
      • +
      + + + +
        +
      • +

        STR_IN_RE_STRIP_PREFIX_SRS_SINGLE

        +
        public static final ProofRewriteRule STR_IN_RE_STRIP_PREFIX_SRS_SINGLE
        +
        Auto-generated from RARE rule str-in-re-strip-prefix-srs-single
        +
      • +
      + + + +
        +
      • +

        STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG

        +
        public static final ProofRewriteRule STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG
        +
        Auto-generated from RARE rule str-in-re-strip-prefix-srs-single-neg
        +
      • +
      + + + +
        +
      • +

        STR_IN_RE_STRIP_PREFIX_S_SINGLE

        +
        public static final ProofRewriteRule STR_IN_RE_STRIP_PREFIX_S_SINGLE
        +
        Auto-generated from RARE rule str-in-re-strip-prefix-s-single
        +
      • +
      + + + +
        +
      • +

        STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG

        +
        public static final ProofRewriteRule STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG
        +
        Auto-generated from RARE rule str-in-re-strip-prefix-s-single-neg
        +
      • +
      + + + +
        +
      • +

        STR_IN_RE_STRIP_PREFIX_BASE

        +
        public static final ProofRewriteRule STR_IN_RE_STRIP_PREFIX_BASE
        +
        Auto-generated from RARE rule str-in-re-strip-prefix-base
        +
      • +
      + + + +
        +
      • +

        STR_IN_RE_STRIP_PREFIX_BASE_NEG

        +
        public static final ProofRewriteRule STR_IN_RE_STRIP_PREFIX_BASE_NEG
        +
        Auto-generated from RARE rule str-in-re-strip-prefix-base-neg
        +
      • +
      + + + +
        +
      • +

        STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE

        +
        public static final ProofRewriteRule STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE
        +
        Auto-generated from RARE rule str-in-re-strip-prefix-base-s-single
        +
      • +
      + + + +
        +
      • +

        STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG

        +
        public static final ProofRewriteRule STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG
        +
        Auto-generated from RARE rule str-in-re-strip-prefix-base-s-single-neg
        +
      • +
      + + + +
        +
      • +

        STR_IN_RE_STRIP_CHAR

        +
        public static final ProofRewriteRule STR_IN_RE_STRIP_CHAR
        +
        Auto-generated from RARE rule str-in-re-strip-char
        +
      • +
      + + + +
        +
      • +

        STR_IN_RE_STRIP_CHAR_S_SINGLE

        +
        public static final ProofRewriteRule STR_IN_RE_STRIP_CHAR_S_SINGLE
        +
        Auto-generated from RARE rule str-in-re-strip-char-s-single
        +
      • +
      + + + +
        +
      • +

        STR_IN_RE_STRIP_PREFIX_REV

        +
        public static final ProofRewriteRule STR_IN_RE_STRIP_PREFIX_REV
        +
        Auto-generated from RARE rule str-in-re-strip-prefix-rev
        +
      • +
      + + + +
        +
      • +

        STR_IN_RE_STRIP_PREFIX_NEG_REV

        +
        public static final ProofRewriteRule STR_IN_RE_STRIP_PREFIX_NEG_REV
        +
        Auto-generated from RARE rule str-in-re-strip-prefix-neg-rev
        +
      • +
      + + + +
        +
      • +

        STR_IN_RE_STRIP_PREFIX_SR_SINGLE_REV

        +
        public static final ProofRewriteRule STR_IN_RE_STRIP_PREFIX_SR_SINGLE_REV
        +
        Auto-generated from RARE rule str-in-re-strip-prefix-sr-single-rev
        +
      • +
      + + + +
        +
      • +

        STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG_REV

        +
        public static final ProofRewriteRule STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG_REV
        +
        Auto-generated from RARE rule str-in-re-strip-prefix-sr-single-neg-rev
        +
      • +
      + + + +
        +
      • +

        STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_REV

        +
        public static final ProofRewriteRule STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_REV
        +
        Auto-generated from RARE rule str-in-re-strip-prefix-srs-single-rev
        +
      • +
      + + + +
        +
      • +

        STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG_REV

        +
        public static final ProofRewriteRule STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG_REV
        +
        Auto-generated from RARE rule str-in-re-strip-prefix-srs-single-neg-rev
        +
      • +
      + + + +
        +
      • +

        STR_IN_RE_STRIP_PREFIX_S_SINGLE_REV

        +
        public static final ProofRewriteRule STR_IN_RE_STRIP_PREFIX_S_SINGLE_REV
        +
        Auto-generated from RARE rule str-in-re-strip-prefix-s-single-rev
        +
      • +
      + + + +
        +
      • +

        STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG_REV

        +
        public static final ProofRewriteRule STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG_REV
        +
        Auto-generated from RARE rule str-in-re-strip-prefix-s-single-neg-rev
        +
      • +
      + + + +
        +
      • +

        STR_IN_RE_STRIP_PREFIX_BASE_REV

        +
        public static final ProofRewriteRule STR_IN_RE_STRIP_PREFIX_BASE_REV
        +
        Auto-generated from RARE rule str-in-re-strip-prefix-base-rev
        +
      • +
      + + + +
        +
      • +

        STR_IN_RE_STRIP_PREFIX_BASE_NEG_REV

        +
        public static final ProofRewriteRule STR_IN_RE_STRIP_PREFIX_BASE_NEG_REV
        +
        Auto-generated from RARE rule str-in-re-strip-prefix-base-neg-rev
        +
      • +
      + + + +
        +
      • +

        STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_REV

        +
        public static final ProofRewriteRule STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_REV
        +
        Auto-generated from RARE rule str-in-re-strip-prefix-base-s-single-rev
        +
      • +
      + + + +
        +
      • +

        STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG_REV

        +
        public static final ProofRewriteRule STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG_REV
        +
        Auto-generated from RARE rule str-in-re-strip-prefix-base-s-single-neg-rev
        +
      • +
      + + + +
        +
      • +

        STR_IN_RE_STRIP_CHAR_REV

        +
        public static final ProofRewriteRule STR_IN_RE_STRIP_CHAR_REV
        +
        Auto-generated from RARE rule str-in-re-strip-char-rev
        +
      • +
      + + + +
        +
      • +

        STR_IN_RE_STRIP_CHAR_S_SINGLE_REV

        +
        public static final ProofRewriteRule STR_IN_RE_STRIP_CHAR_S_SINGLE_REV
        +
        Auto-generated from RARE rule str-in-re-strip-char-s-single-rev
        +
      • +
      + + + +
        +
      • +

        STR_IN_RE_REQ_UNFOLD

        +
        public static final ProofRewriteRule STR_IN_RE_REQ_UNFOLD
        +
        Auto-generated from RARE rule str-in-re-req-unfold
        +
      • +
      + + + +
        +
      • +

        STR_IN_RE_REQ_UNFOLD_REV

        +
        public static final ProofRewriteRule STR_IN_RE_REQ_UNFOLD_REV
        +
        Auto-generated from RARE rule str-in-re-req-unfold-rev
        +
      • +
      + + + +
        +
      • +

        STR_IN_RE_SKIP_UNFOLD

        +
        public static final ProofRewriteRule STR_IN_RE_SKIP_UNFOLD
        +
        Auto-generated from RARE rule str-in-re-skip-unfold
        +
      • +
      + + + +
        +
      • +

        STR_IN_RE_SKIP_UNFOLD_REV

        +
        public static final ProofRewriteRule STR_IN_RE_SKIP_UNFOLD_REV
        +
        Auto-generated from RARE rule str-in-re-skip-unfold-rev
        +
      • +
      + + + +
        +
      • +

        STR_IN_RE_TEST_UNFOLD

        +
        public static final ProofRewriteRule STR_IN_RE_TEST_UNFOLD
        +
        Auto-generated from RARE rule str-in-re-test-unfold
        +
      • +
      + + + +
        +
      • +

        STR_IN_RE_TEST_UNFOLD_REV

        +
        public static final ProofRewriteRule STR_IN_RE_TEST_UNFOLD_REV
        +
        Auto-generated from RARE rule str-in-re-test-unfold-rev
        +
      • +
      + + + +
        +
      • +

        EQ_REFL

        +
        public static final ProofRewriteRule EQ_REFL
        +
        Auto-generated from RARE rule eq-refl
        +
      • +
      + + + +
        +
      • +

        EQ_SYMM

        +
        public static final ProofRewriteRule EQ_SYMM
        +
        Auto-generated from RARE rule eq-symm
        +
      • +
      + + + +
        +
      • +

        EQ_COND_DEQ

        +
        public static final ProofRewriteRule EQ_COND_DEQ
        +
        Auto-generated from RARE rule eq-cond-deq
        +
      • +
      + + + +
        +
      • +

        EQ_ITE_LIFT

        +
        public static final ProofRewriteRule EQ_ITE_LIFT
        +
        Auto-generated from RARE rule eq-ite-lift
        +
      • +
      + + + +
        +
      • +

        DISTINCT_BINARY_ELIM

        +
        public static final ProofRewriteRule DISTINCT_BINARY_ELIM
        +
        Auto-generated from RARE rule distinct-binary-elim
        +
      • +
      + + + +
        +
      • +

        UF_BV2NAT_INT2BV

        +
        public static final ProofRewriteRule UF_BV2NAT_INT2BV
        +
        Auto-generated from RARE rule uf-bv2nat-int2bv
        +
      • +
      + + + +
        +
      • +

        UF_BV2NAT_INT2BV_EXTEND

        +
        public static final ProofRewriteRule UF_BV2NAT_INT2BV_EXTEND
        +
        Auto-generated from RARE rule uf-bv2nat-int2bv-extend
        +
      • +
      + + + +
        +
      • +

        UF_BV2NAT_INT2BV_EXTRACT

        +
        public static final ProofRewriteRule UF_BV2NAT_INT2BV_EXTRACT
        +
        Auto-generated from RARE rule uf-bv2nat-int2bv-extract
        +
      • +
      + + + +
        +
      • +

        UF_INT2BV_BV2NAT

        +
        public static final ProofRewriteRule UF_INT2BV_BV2NAT
        +
        Auto-generated from RARE rule uf-int2bv-bv2nat
        +
      • +
      + + + +
        +
      • +

        UF_BV2NAT_GEQ_ELIM

        +
        public static final ProofRewriteRule UF_BV2NAT_GEQ_ELIM
        +
        Auto-generated from RARE rule uf-bv2nat-geq-elim
        +
      • +
      + + + +
        +
      • +

        UF_INT2BV_BVULT_EQUIV

        +
        public static final ProofRewriteRule UF_INT2BV_BVULT_EQUIV
        +
        Auto-generated from RARE rule uf-int2bv-bvult-equiv
        +
      • +
      + + + +
        +
      • +

        UF_INT2BV_BVULE_EQUIV

        +
        public static final ProofRewriteRule UF_INT2BV_BVULE_EQUIV
        +
        Auto-generated from RARE rule uf-int2bv-bvule-equiv
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        values

        +
        public static ProofRewriteRule[] values()
        +
        Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +
        +for (ProofRewriteRule c : ProofRewriteRule.values())
        +    System.out.println(c);
        +
        +
        +
        Returns:
        +
        an array containing the constants of this enum type, in the order they are declared
        +
        +
      • +
      + + + +
        +
      • +

        valueOf

        +
        public static ProofRewriteRule valueOf​(java.lang.String name)
        +
        Returns the enum constant of this type with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)
        +
        +
        Parameters:
        +
        name - the name of the enum constant to be returned.
        +
        Returns:
        +
        the enum constant with the specified name
        +
        Throws:
        +
        java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
        +
        java.lang.NullPointerException - if the argument is null
        +
        +
      • +
      + + + + + + + +
        +
      • +

        getValue

        +
        public int getValue()
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/ProofRule.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/ProofRule.html new file mode 100644 index 0000000000..0c2e27930c --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/ProofRule.html @@ -0,0 +1,5108 @@ + + + + + +ProofRule + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Enum ProofRule

+
+
+ +
+
    +
  • +
    +
    All Implemented Interfaces:
    +
    java.io.Serializable, java.lang.Comparable<ProofRule>
    +
    +
    +
    public enum ProofRule
    +extends java.lang.Enum<ProofRule>
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Enum Constant Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Enum Constants 
      Enum ConstantDescription
      ACI_NORM +
      Builtin theory – associative/commutative/idempotency/identity normalization + + \[ + \inferrule{- \mid t = s}{t = s} + \] + where \(\texttt{expr::isACNorm(t, s)} = \top\).
      +
      ALETHE_RULE +
      External – Alethe + + Place holder for Alethe rules.
      +
      ALPHA_EQUIV +
      Quantifiers – Alpha equivalence + + \[ + + \inferruleSC{-\mid F, (y_1 \ldots y_n), (z_1,\dots, z_n)} + {F = F\{y_1\mapsto z_1,\dots,y_n\mapsto z_n\}} + {if $y_1,\dots,y_n, z_1,\dots,z_n$ are unique bound variables} + \] + Notice that this rule is correct only when \(z_1,\dots,z_n\) are not + contained in \(FV(F) \setminus \{ y_1,\dots, y_n \}\), where + \(FV(\varphi)\) are the free variables of \(\varphi\).
      +
      AND_ELIM +
      Boolean – And elimination + + \[ + \inferrule{(F_1 \land \dots \land F_n) \mid i}{F_i} + \]
      +
      AND_INTRO +
      Boolean – And introduction + + \[ + \inferrule{F_1 \dots F_n \mid -}{(F_1 \land \dots \land F_n)} + \]
      +
      ARITH_MULT_ABS_COMPARISON +
      Arithmetic – Non-linear multiply absolute value comparison + + \[ + \inferrule{F_1 \dots F_n \mid -}{F} + \] + where \(F\) is of the form + \(\left| t_1 \cdot t_n \right| \diamond \left| s_1 \cdot s_n \right|\).
      +
      ARITH_MULT_NEG +
      Arithmetic – Multiplication with negative factor + + \[ + \inferrule{- \mid m, l \diamond r}{(m < 0 \land l \diamond r) \rightarrow m \cdot l \diamond_{inv} m \cdot r} + \] + where \(\diamond\) is a relation symbol and \(\diamond_{inv}\) the + inverted relation symbol.
      +
      ARITH_MULT_POS +
      Arithmetic – Multiplication with positive factor + + \[ + \inferrule{- \mid m, l \diamond r}{(m > 0 \land l \diamond r) \rightarrow m \cdot l \diamond m \cdot r} + \] + where \(\diamond\) is a relation symbol.
      +
      ARITH_MULT_SIGN +
      Arithmetic – Sign inference + + \[ + \inferrule{- \mid f_1 \dots f_k, m}{(f_1 \land \dots \land f_k) \rightarrow m \diamond 0} + \] + where \(f_1 \dots f_k\) are variables compared to zero (less, greater + or not equal), \(m\) is a monomial from these variables and + \(\diamond\) is the comparison (less or equal) that results from the + signs of the variables.
      +
      ARITH_MULT_TANGENT +
      Arithmetic – Multiplication tangent plane + + \[ + \inferruleSC{- \mid x, y, a, b, \sigma}{(t \leq tplane) = ((x \leq a \land y \geq b) \lor (x \geq a \land y \leq b))}{if $\sigma = \bot$} + + \inferruleSC{- \mid x, y, a, b, \sigma}{(t \geq tplane) = ((x \leq a \land y \leq b) \lor (x \geq a \land y \geq b))}{if $\sigma = \top$} + \] + where \(x,y\) are real terms (variables or extended terms), + \(t = x \cdot y\), \(a,b\) are real + constants, \(\sigma \in \{ \top, \bot\}\) and \(tplane := b \cdot x + a \cdot y - a \cdot b\) is the tangent plane of \(x \cdot y\) at \((a,b)\).
      +
      ARITH_POLY_NORM +
      Arithmetic – Polynomial normalization + + \[ + \inferrule{- \mid t = s}{t = s} + \] + where \(\texttt{arith::PolyNorm::isArithPolyNorm(t, s)} = \top\).
      +
      ARITH_POLY_NORM_REL +
      Arithmetic – Polynomial normalization for relations + + ..
      +
      ARITH_REDUCTION +
      Arithmetic – Reduction + + \[ + \inferrule{- \mid t}{F} + \] + where \(t\) is an application of an extended arithmetic operator (e.g.
      +
      ARITH_SUM_UB +
      Arithmetic – Sum upper bounds + + \[ + \inferrule{P_1 \dots P_n \mid -}{L \diamond R} + \] + where \(P_i\) has the form \(L_i \diamond_i R_i\) and + \(\diamond_i \in \{<, \leq, =\}\).
      +
      ARITH_TRANS_EXP_APPROX_ABOVE_NEG +
      Arithmetic – Transcendentals – Exp is approximated from above for + negative values + + \[ + \inferrule{- \mid d,t,l,u}{(t \geq l \land t \leq u) \rightarrow exp(t) + \leq \texttt{secant}(\exp, l, u, t)} + \] + where \(d\) is an even positive number, \(t\) an arithmetic term + and \(l,u\) are lower and upper bounds on \(t\).
      +
      ARITH_TRANS_EXP_APPROX_ABOVE_POS +
      Arithmetic – Transcendentals – Exp is approximated from above for + positive values + + \[ + \inferrule{- \mid d,t,l,u}{(t \geq l \land t \leq u) \rightarrow exp(t) + \leq \texttt{secant-pos}(\exp, l, u, t)} + \] + where \(d\) is an even positive number, \(t\) an arithmetic term + and \(l,u\) are lower and upper bounds on \(t\).
      +
      ARITH_TRANS_EXP_APPROX_BELOW +
      Arithmetic – Transcendentals – Exp is approximated from below + + \[ + \inferrule{- \mid d,c,t}{t \geq c \rightarrow exp(t) \geq \texttt{maclaurin}(\exp, d, c)} + \] + where \(d\) is an odd positive number, \(t\) an arithmetic term and + \(\texttt{maclaurin}(\exp, d, c)\) is the \(d\)'th taylor + polynomial at zero (also called the Maclaurin series) of the exponential + function evaluated at \(c\).
      +
      ARITH_TRANS_EXP_NEG +
      Arithmetic – Transcendentals – Exp at negative values + + \[ + \inferrule{- \mid t}{(t < 0) \leftrightarrow (\exp(t) < 1)} + \]
      +
      ARITH_TRANS_EXP_POSITIVITY +
      Arithmetic – Transcendentals – Exp is always positive + + \[ + \inferrule{- \mid t}{\exp(t) > 0} + \]
      +
      ARITH_TRANS_EXP_SUPER_LIN +
      Arithmetic – Transcendentals – Exp grows super-linearly for positive + values + + \[ + \inferrule{- \mid t}{t \leq 0 \lor \exp(t) > t+1} + \]
      +
      ARITH_TRANS_EXP_ZERO +
      Arithmetic – Transcendentals – Exp at zero + + \[ + \inferrule{- \mid t}{(t=0) \leftrightarrow (\exp(t) = 1)} + \]
      +
      ARITH_TRANS_PI +
      Arithmetic – Transcendentals – Assert bounds on Pi + + \[ + \inferrule{- \mid l, u}{\texttt{real.pi} \geq l \land \texttt{real.pi} + \leq u} + \] + where \(l,u\) are valid lower and upper bounds on \(\pi\).
      +
      ARITH_TRANS_SINE_APPROX_ABOVE_NEG +
      Arithmetic – Transcendentals – Sine is approximated from above for + negative values + + \[ + \inferrule{- \mid d,t,lb,ub,l,u}{(t \geq lb land t \leq ub) \rightarrow + \sin(t) \leq \texttt{secant}(\sin, l, u, t)} + \] + where \(d\) is an even positive number, \(t\) an arithmetic term, + \(lb,ub\) are symbolic lower and upper bounds on \(t\) (possibly + containing \(\pi\)) and \(l,u\) the evaluated lower and upper + bounds on \(t\).
      +
      ARITH_TRANS_SINE_APPROX_ABOVE_POS +
      Arithmetic – Transcendentals – Sine is approximated from above for + positive values + + \[ + \inferrule{- \mid d,t,c,lb,ub}{(t \geq lb land t \leq ub) \rightarrow + \sin(t) \leq \texttt{upper}(\sin, c)} + \] + where \(d\) is an even positive number, \(t\) an arithmetic term, + \(c\) an arithmetic constant and \(lb,ub\) are symbolic lower and + upper bounds on \(t\) (possibly containing \(\pi\)).
      +
      ARITH_TRANS_SINE_APPROX_BELOW_NEG +
      Arithmetic – Transcendentals – Sine is approximated from below for + negative values + + \[ + \inferrule{- \mid d,t,c,lb,ub}{(t \geq lb land t \leq ub) \rightarrow + \sin(t) \geq \texttt{lower}(\sin, c)} + \] + where \(d\) is an even positive number, \(t\) an arithmetic term, + \(c\) an arithmetic constant and \(lb,ub\) are symbolic lower and + upper bounds on \(t\) (possibly containing \(\pi\)).
      +
      ARITH_TRANS_SINE_APPROX_BELOW_POS +
      Arithmetic – Transcendentals – Sine is approximated from below for + positive values + + \[ + \inferrule{- \mid d,t,lb,ub,l,u}{(t \geq lb land t \leq ub) \rightarrow + \sin(t) \geq \texttt{secant}(\sin, l, u, t)} + \] + where \(d\) is an even positive number, \(t\) an arithmetic term, + \(lb,ub\) are symbolic lower and upper bounds on \(t\) (possibly + containing \(\pi\)) and \(l,u\) the evaluated lower and upper + bounds on \(t\).
      +
      ARITH_TRANS_SINE_BOUNDS +
      Arithmetic – Transcendentals – Sine is always between -1 and 1 + + \[ + \inferrule{- \mid t}{\sin(t) \leq 1 \land \sin(t) \geq -1} + \]
      +
      ARITH_TRANS_SINE_SHIFT +
      Arithmetic – Transcendentals – Sine is shifted to -pi...pi + + \[ + \inferrule{- \mid x}{-\pi \leq y \leq \pi \land \sin(y) = \sin(x) + \land (\ite{-\pi \leq x \leq \pi}{x = y}{x = y + 2 \pi s})} + \] + where \(x\) is the argument to sine, \(y\) is a new real skolem + that is \(x\) shifted into \(-\pi \dots \pi\) and \(s\) is a + new integer skolem that is the number of phases \(y\) is shifted.
      +
      ARITH_TRANS_SINE_SYMMETRY +
      Arithmetic – Transcendentals – Sine is symmetric with respect to + negation of the argument + + \[ + \inferrule{- \mid t}{\sin(t) - \sin(-t) = 0} + \]
      +
      ARITH_TRANS_SINE_TANGENT_PI +
      Arithmetic – Transcendentals – Sine is bounded by the tangents at -pi + and pi + + ..
      +
      ARITH_TRANS_SINE_TANGENT_ZERO +
      Arithmetic – Transcendentals – Sine is bounded by the tangent at zero + + ..
      +
      ARITH_TRICHOTOMY +
      Arithmetic – Trichotomy of the reals + + \[ + \inferrule{A, B \mid -}{C} + \] + where \(\neg A, \neg B, C\) are \(x < c, x = c, x > c\) in some order.
      +
      ARRAYS_EXT +
      Arrays – Arrays extensionality + + \[ + + \inferrule{a \neq b\mid -} + {\mathit{select}(a,k)\neq\mathit{select}(b,k)} + \] + where \(k\) is the \(\texttt{ARRAY_DEQ_DIFF}\) skolem for `(a, b)`.
      +
      ARRAYS_READ_OVER_WRITE +
      Arrays – Read over write + + \[ + + \inferrule{i_1 \neq i_2\mid \mathit{select}(\mathit{store}(a,i_1,e),i_2)} + {\mathit{select}(\mathit{store}(a,i_1,e),i_2) = \mathit{select}(a,i_2)} + \]
      +
      ARRAYS_READ_OVER_WRITE_1 +
      Arrays – Read over write 1 + + \[ + + \inferrule{-\mid \mathit{select}(\mathit{store}(a,i,e),i)} + {\mathit{select}(\mathit{store}(a,i,e),i)=e} + \]
      +
      ARRAYS_READ_OVER_WRITE_CONTRA +
      Arrays – Read over write, contrapositive + + \[ + + \inferrule{\mathit{select}(\mathit{store}(a,i_2,e),i_1) \neq + \mathit{select}(a,i_1)\mid -}{i_1=i_2} + \]
      +
      ASSUME +
      Assumption (a leaf) + + \[ + + \inferrule{- \mid F}{F} + \] + This rule has special status, in that an application of assume is an + open leaf in a proof that is not (yet) justified.
      +
      BV_BITBLAST_STEP +
      Bit-vectors – Bitblast bit-vector constant, variable, and terms + + For constant and variables: + + \[ + + \inferrule{-\mid t}{t = \texttt{bitblast}(t)} + \] + For terms: + + \[ + + \inferrule{-\mid k(\texttt{bitblast}(t_1),\dots,\texttt{bitblast}(t_n))} + {k(\texttt{bitblast}(t_1),\dots,\texttt{bitblast}(t_n)) = + \texttt{bitblast}(t)} + \] + where \(t\) is \(k(t_1,\dots,t_n)\).
      +
      BV_EAGER_ATOM +
      Bit-vectors – Bit-vector eager atom + + \[ + + \inferrule{-\mid F}{F = F[0]} + \] + where \(F\) is of kind BITVECTOR_EAGER_ATOM.
      +
      CHAIN_RESOLUTION +
      Boolean – N-ary Resolution + + \[ + \inferrule{C_1 \dots C_n \mid (pol_1 \dots pol_{n-1}), (L_1 \dots L_{n-1})}{C} + \] + where + + + let \(C_1 \dots C_n\) be nodes viewed as clauses, as defined above + + let \(C_1 \diamond_{L,pol} C_2\) represent the resolution of + \(C_1\) with \(C_2\) with pivot \(L\) and polarity + \(pol\), as defined above + + let \(C_1' = C_1\), + + for each \(i > 1\), let \(C_i' = C_{i-1} \diamond_{L_{i-1}, pol_{i-1}} C_i'\) + + + Note the list of polarities and pivots are provided as s-expressions.
      +
      CNF_AND_NEG +
      Boolean – CNF – And Negative + + \[ + \inferrule{- \mid (F_1 \land \dots \land F_n)}{(F_1 \land \dots \land + F_n) \lor \neg F_1 \lor \dots \lor \neg F_n} + \]
      +
      CNF_AND_POS +
      Boolean – CNF – And Positive + + \[ + \inferrule{- \mid (F_1 \land \dots \land F_n), i}{\neg (F_1 \land \dots + \land F_n) \lor F_i} + \]
      +
      CNF_EQUIV_NEG1 +
      Boolean – CNF – Equiv Negative 1 + + \[ + \inferrule{- \mid F_1 = F_2}{(F_1 = F_2) \lor F_1 \lor F_2} + \]
      +
      CNF_EQUIV_NEG2 +
      Boolean – CNF – Equiv Negative 2 + + \[ + \inferrule{- \mid F_1 = F_2}{(F_1 = F_2) \lor \neg F_1 \lor \neg F_2} + \]
      +
      CNF_EQUIV_POS1 +
      Boolean – CNF – Equiv Positive 1 + + \[ + \inferrule{- \mid F_1 = F_2}{F_1 \neq F_2 \lor \neg F_1 \lor F_2} + \]
      +
      CNF_EQUIV_POS2 +
      Boolean – CNF – Equiv Positive 2 + + \[ + \inferrule{- \mid F_1 = F_2}{F_1 \neq F_2 \lor F_1 \lor \neg F_2} + \]
      +
      CNF_IMPLIES_NEG1 +
      Boolean – CNF – Implies Negative 1 + + \[ + \inferrule{- \mid F_1 \rightarrow F_2}{(F_1 \rightarrow F_2) \lor F_1} + \]
      +
      CNF_IMPLIES_NEG2 +
      Boolean – CNF – Implies Negative 2 + + \[ + \inferrule{- \mid F_1 \rightarrow F_2}{(F_1 \rightarrow F_2) \lor \neg F_2} + \]
      +
      CNF_IMPLIES_POS +
      Boolean – CNF – Implies Positive + + \[ + \inferrule{- \mid F_1 \rightarrow F_2}{\neg(F_1 \rightarrow F_2) \lor \neg F_1 + \lor F_2} + \]
      +
      CNF_ITE_NEG1 +
      Boolean – CNF – ITE Negative 1 + + \[ + \inferrule{- \mid (\ite{C}{F_1}{F_2})}{(\ite{C}{F_1}{F_2}) \lor \neg C + \lor \neg F_1} + \]
      +
      CNF_ITE_NEG2 +
      Boolean – CNF – ITE Negative 2 + + \[ + \inferrule{- \mid (\ite{C}{F_1}{F_2})}{(\ite{C}{F_1}{F_2}) \lor C \lor + \neg F_2} + \]
      +
      CNF_ITE_NEG3 +
      Boolean – CNF – ITE Negative 3 + + \[ + \inferrule{- \mid (\ite{C}{F_1}{F_2})}{(\ite{C}{F_1}{F_2}) \lor \neg F_1 + \lor \neg F_2} + \]
      +
      CNF_ITE_POS1 +
      Boolean – CNF – ITE Positive 1 + + \[ + \inferrule{- \mid (\ite{C}{F_1}{F_2})}{\neg(\ite{C}{F_1}{F_2}) \lor \neg + C \lor F_1} + \]
      +
      CNF_ITE_POS2 +
      Boolean – CNF – ITE Positive 2 + + \[ + \inferrule{- \mid (\ite{C}{F_1}{F_2})}{\neg(\ite{C}{F_1}{F_2}) \lor C + \lor F_2} + \]
      +
      CNF_ITE_POS3 +
      Boolean – CNF – ITE Positive 3 + + \[ + \inferrule{- \mid (\ite{C}{F_1}{F_2})}{\neg(\ite{C}{F_1}{F_2}) \lor F_1 + \lor F_2} + \]
      +
      CNF_OR_NEG +
      Boolean – CNF – Or Negative + + \[ + \inferrule{- \mid (F_1 \lor \dots \lor F_n), i}{(F_1 \lor \dots \lor F_n) + \lor \neg F_i} + \]
      +
      CNF_OR_POS +
      Boolean – CNF – Or Positive + + \[ + \inferrule{- \mid (F_1 \lor \dots \lor F_n)}{\neg(F_1 \lor \dots \lor + F_n) \lor F_1 \lor \dots \lor F_n} + \]
      +
      CNF_XOR_NEG1 +
      Boolean – CNF – XOR Negative 1 + + \[ + \inferrule{- \mid F_1 \xor F_2}{(F_1 \xor F_2) \lor \neg F_1 \lor F_2} + \]
      +
      CNF_XOR_NEG2 +
      Boolean – CNF – XOR Negative 2 + + \[ + \inferrule{- \mid F_1 \xor F_2}{(F_1 \xor F_2) \lor F_1 \lor \neg F_2} + \]
      +
      CNF_XOR_POS1 +
      Boolean – CNF – XOR Positive 1 + + \[ + \inferrule{- \mid F_1 \xor F_2}{\neg(F_1 \xor F_2) \lor F_1 \lor F_2} + \]
      +
      CNF_XOR_POS2 +
      Boolean – CNF – XOR Positive 2 + + \[ + \inferrule{- \mid F_1 \xor F_2}{\neg(F_1 \xor F_2) \lor \neg F_1 \lor + \neg F_2} + \]
      +
      CONCAT_CONFLICT +
      Strings – Core rules – Concatenation conflict + + \[ + + \inferrule{(c_1\cdot t) = (c_2 \cdot s)\mid b}{\bot} + \] + where \(b\) indicates if the direction is reversed, \(c_1,\,c_2\) + are constants such that \(\texttt{Word::splitConstant}(c_1,c_2, + \mathit{index},b)\) is null, in other words, neither is a prefix of the + other.
      +
      CONCAT_CONFLICT_DEQ +
      Strings – Core rules – Concatenation conflict for disequal characters + + \[ + + \inferrule{(t_1\cdot t) = (s_1 \cdot s), t_1 \neq s_1 \mid b}{\bot} + \] + where \(t_1\) and \(s_1\) are constants of length one, or otherwise one side + of the equality is the empty sequence and \(t_1\) or \(s_1\) corresponding to + that side is the empty sequence.
      +
      CONCAT_CPROP +
      Strings – Core rules – Concatenation constant propagation + + \[ + + \inferrule{(t_1\cdot w_1\cdot t_2) = (w_2 \cdot s),\, + \mathit{len}(t_1) \neq 0\mid \bot}{(t_1 = t_3\cdot r)} + \] + where \(w_1,\,w_2\) are words, \(t_3\) is + \(\mathit{pre}(w_2,p)\), \(p\) is + \(\texttt{Word::overlap}(\mathit{suf}(w_2,1), w_1)\), and \(r\) is + the purification skolem for + \(\mathit{suf}(t_1,\mathit{len}(w_3))\).
      +
      CONCAT_CSPLIT +
      Strings – Core rules – Concatenation split for constants + + \[ + + \inferrule{(t_1\cdot t_2) = (c \cdot s_2),\, + \mathit{len}(t_1) \neq 0\mid \bot}{(t_1 = c\cdot r)} + \] + where \(r\) is the purification skolem for \(\mathit{suf}(t_1,1)\).
      +
      CONCAT_EQ +
      Strings – Core rules – Concatenation equality + + \[ + + \inferrule{(t_1\cdot\ldots \cdot t_n \cdot t) = (t_1 \cdot\ldots + \cdot t_n\cdot s)\mid b}{t = s} + \] + where \(\cdot\) stands for string concatenation and \(b\) indicates + if the direction is reversed.
      +
      CONCAT_LPROP +
      Strings – Core rules – Concatenation length propagation + + \[ + + \inferrule{(t_1\cdot t_2) = (s_1 \cdot s_2),\, + \mathit{len}(t_1) > \mathit{len}(s_1)\mid \bot}{(t_1 = s_1\cdot r)} + \] + where \(r\) is the purification Skolem for + \(\mathit{ite}( + \mathit{len}(t_1) >= \mathit{len}(s_1), + \mathit{suf}(t_1,\mathit{len}(s_1)), + \mathit{suf}(s_1,\mathit{len}(t_1)))\).
      +
      CONCAT_SPLIT +
      Strings – Core rules – Concatenation split + + \[ + + \inferruleSC{(t_1\cdot t_2) = (s_1 \cdot s_2),\, + \mathit{len}(t_1) \neq \mathit{len}(s_1)\mid b}{((t_1 = s_1\cdot r) + \vee (s_1 = t_1\cdot r)) \wedge r \neq \epsilon \wedge \mathit{len}(r)>0}{if $b=\bot$} + \] + where \(r\) is the purification skolem for + \(\mathit{ite}( + \mathit{len}(t_1) >= \mathit{len}(s_1), + \mathit{suf}(t_1,\mathit{len}(s_1)), + \mathit{suf}(s_1,\mathit{len}(t_1)))\) + and \(\epsilon\) is the empty string (or sequence).
      +
      CONCAT_UNIFY +
      Strings – Core rules – Concatenation unification + + \[ + + \inferrule{(t_1\cdot t_2) = (s_1 \cdot s_2),\, \mathit{len}(t_1) = + \mathit{len}(s_1)\mid \bot}{t_1 = s_1} + \] + Alternatively for the reverse: + + \[ + + \inferrule{(t_1\cdot t_2) = (s_1 \cdot s_2),\, \mathit{len}(t_2) = + \mathit{len}(s_2)\mid \top}{t_2 = s_2} + \]
      +
      CONG +
      Equality – Congruence + + \[ + + \inferrule{t_1=s_1,\dots,t_n=s_n\mid k, f?}{k(f?, t_1,\dots, t_n) = + k(f?, s_1,\dots, s_n)} + \] + where \(k\) is the application kind.
      +
      CONTRA +
      Boolean – Contradiction + + \[ + \inferrule{F, \neg F \mid -}{\bot} + \]
      +
      DRAT_REFUTATION +
      DRAT Refutation + + \[ + \inferrule{F_1 \dots F_n \mid D, P}{\bot} + \] + where \(F_1 \dots F_n\) correspond to the clauses in the + DIMACS file given by filename `D` and `P` is a filename of a file storing + a DRAT proof.
      +
      DSL_REWRITE +
      Builtin theory – DSL rewrite + + \[ + \inferrule{F_1 \dots F_n \mid id t_1 \dots t_n}{F} + \] + where `id` is a ProofRewriteRule whose definition in the + RARE DSL is \(\forall x_1 \dots x_n.
      +
      DT_CLASH +
      Datatypes – Clash + + \[ + + \inferruleSC{\mathit{is}_{C_i}(t), \mathit{is}_{C_j}(t)\mid -}{\bot} + {if $i\neq j$} + \]
      +
      DT_SPLIT +
      Datatypes – Split + + \[ + + \inferrule{-\mid t}{\mathit{is}_{C_1}(t)\vee\cdots\vee\mathit{is}_{C_n}(t)} + \] + where \(C_1,\dots,C_n\) are all the constructors of the type of \(t\).
      +
      ENCODE_EQ_INTRO +
      Builtin theory – Encode equality introduction + + \[ + \inferrule{- \mid t}{t=t'} + \] + where \(t\) and \(t'\) are equivalent up to their encoding in an + external proof format.
      +
      EQ_RESOLVE +
      Boolean – Equality resolution + + \[ + \inferrule{F_1, (F_1 = F_2) \mid -}{F_2} + \] + Note this can optionally be seen as a macro for + EQUIV_ELIM1 <cvc5.EQUIV_ELIM1> + + RESOLUTION <cvc5.RESOLUTION>.
      +
      EQUIV_ELIM1 +
      Boolean – Equivalence elimination version 1 + + \[ + \inferrule{F_1 = F_2 \mid -}{\neg F_1 \lor F_2} + \]
      +
      EQUIV_ELIM2 +
      Boolean – Equivalence elimination version 2 + + \[ + \inferrule{F_1 = F_2 \mid -}{F_1 \lor \neg F_2} + \]
      +
      EVALUATE +
      Builtin theory – Evaluate + + \[ + \inferrule{- \mid t}{t = \texttt{evaluate}(t)} + \] + where \(\texttt{evaluate}\) is implemented by calling the method + \(\texttt{Evalutor::evaluate}\) in :cvc5src:`theory/evaluator.h` with an + empty substitution.
      +
      FACTORING +
      Boolean – Factoring + + \[ + \inferrule{C_1 \mid -}{C_2} + \] + where \(C_2\) is the clause \(C_1\), but every occurrence of a literal + after its first occurrence is omitted.
      +
      FALSE_ELIM +
      Equality – False elim + + \[ + + \inferrule{F=\bot\mid -}{\neg F} + \]
      +
      FALSE_INTRO +
      Equality – False intro + + \[ + + \inferrule{\neg F\mid -}{F = \bot} + \]
      +
      HO_APP_ENCODE +
      Equality – Higher-order application encoding + + \[ + + \inferrule{-\mid t}{t=t'} + \] + where `t'` is the higher-order application that is equivalent to `t`, + as implemented by uf.TheoryUfRewriter.getHoApplyForApplyUf.
      +
      HO_CONG +
      Equality – Higher-order congruence + + \[ + + \inferrule{f=g, t_1=s_1,\dots,t_n=s_n\mid k}{k(f, t_1,\dots, t_n) = + k(g, s_1,\dots, s_n)} + \] + Notice that this rule is only used when the application kind \(k\) is + either `cvc5.Kind.APPLY_UF` or `cvc5.Kind.HO_APPLY`.
      +
      IMPLIES_ELIM +
      Boolean – Implication elimination + + \[ + \inferrule{F_1 \rightarrow F_2 \mid -}{\neg F_1 \lor F_2} + \]
      +
      INSTANTIATE +
      Quantifiers – Instantiation + + \[ + + \inferrule{\forall x_1\dots x_n.\> F\mid (t_1 \dots t_n), (id\, (t)?)?} + {F\{x_1\mapsto t_1,\dots,x_n\mapsto t_n\}} + \] + The list of terms to instantiate \((t_1 \dots t_n)\) is provided as + an s-expression as the first argument.
      +
      INT_TIGHT_LB +
      Arithmetic – Tighten strict integer lower bounds + + \[ + \inferrule{i > c \mid -}{i \geq \lceil c \rceil} + \] + where \(i\) has integer type.
      +
      INT_TIGHT_UB +
      Arithmetic – Tighten strict integer upper bounds + + \[ + \inferrule{i < c \mid -}{i \leq \lfloor c \rfloor} + \] + where \(i\) has integer type.
      +
      ITE_ELIM1 +
      Boolean – ITE elimination version 1 + + \[ + \inferrule{(\ite{C}{F_1}{F_2}) \mid -}{\neg C \lor F_1} + \]
      +
      ITE_ELIM2 +
      Boolean – ITE elimination version 2 + + \[ + \inferrule{(\ite{C}{F_1}{F_2}) \mid -}{C \lor F_2} + \]
      +
      ITE_EQ +
      Processing rules – If-then-else equivalence + + \[ + \inferrule{- \mid \ite{C}{t_1}{t_2}}{\ite{C}{((\ite{C}{t_1}{t_2}) = t_1)}{((\ite{C}{t_1}{t_2}) = t_2)}} + \]
      +
      LFSC_RULE +
      External – LFSC + + Place holder for LFSC rules.
      +
      MACRO_ARITH_SCALE_SUM_UB +
      Arithmetic – Adding inequalities + + An arithmetic literal is a term of the form \(p \diamond c\) where + \(\diamond \in \{ <, \leq, =, \geq, > \}\), \(p\) a + polynomial and \(c\) a rational constant.
      +
      MACRO_BV_BITBLAST +
      Bit-vectors – (Macro) Bitblast + + \[ + + \inferrule{-\mid t}{t = \texttt{bitblast}(t)} + \] + where \(\texttt{bitblast}\) represents the result of the bit-blasted term as + a bit-vector consisting of the output bits of the bit-blasted circuit + representation of the term.
      +
      MACRO_RESOLUTION +
      Boolean – N-ary Resolution + Factoring + Reordering + + \[ + \inferrule{C_1 \dots C_n \mid C, pol_1,L_1 \dots pol_{n-1},L_{n-1}}{C} + \] + where + + + let \(C_1 \dots C_n\) be nodes viewed as clauses, as defined in + RESOLUTION <cvc5.RESOLUTION> + + let \(C_1 \diamond_{L,\mathit{pol}} C_2\) represent the resolution of + \(C_1\) with \(C_2\) with pivot \(L\) and polarity + \(pol\), as defined in + RESOLUTION <cvc5.RESOLUTION> + + let \(C_1'\) be equal, in its set representation, to \(C_1\), + + for each \(i > 1\), let \(C_i'\) be equal, in its set + representation, to \(C_{i-1} \diamond_{L_{i-1},\mathit{pol}_{i-1}} + C_i'\) + + + The result of the chain resolution is \(C\), which is equal, in its set + representation, to \(C_n'\)
      +
      MACRO_RESOLUTION_TRUST +
      Boolean – N-ary Resolution + Factoring + Reordering unchecked + + Same as + MACRO_RESOLUTION <cvc5.MACRO_RESOLUTION>, but + not checked by the internal proof checker.
      +
      MACRO_REWRITE +
      Builtin theory – Rewrite + + \[ + \inferrule{- \mid t, idr}{t = \texttt{rewrite}_{idr}(t)} + \] + where \(idr\) is a MethodId identifier, which determines the kind of + rewriter to apply, e.g.
      +
      MACRO_SR_EQ_INTRO +
      Builtin theory – Substitution + Rewriting equality introduction + + In this rule, we provide a term \(t\) and conclude that it is equal to + its rewritten form under a (proven) substitution.
      +
      MACRO_SR_PRED_ELIM +
      Builtin theory – Substitution + Rewriting predicate elimination + + \[ + \inferrule{F, F_1 \dots F_n \mid (ids (ida + (idr)?)?)?}{\texttt{rewrite}_{idr}(F \circ \sigma_{ids, ida}(F_n) \circ + \cdots \circ \sigma_{ids, ida}(F_1))} + \] + where \(ids\) and \(idr\) are method identifiers.
      +
      MACRO_SR_PRED_INTRO +
      Builtin theory – Substitution + Rewriting predicate introduction + + In this rule, we provide a formula \(F\) and conclude it, under the + condition that it rewrites to true under a proven substitution.
      +
      MACRO_SR_PRED_TRANSFORM +
      Builtin theory – Substitution + Rewriting predicate elimination + + \[ + \inferrule{F, F_1 \dots F_n \mid G, (ids (ida (idr)?)?)?}{G} + \] + where + + \[ + \texttt{rewrite}_{idr}(F \circ \sigma_{ids, ida}(F_n) \circ\cdots \circ \sigma_{ids, ida}(F_1)) =\\ \texttt{rewrite}_{idr}(G \circ \sigma_{ids, ida}(F_n) \circ \cdots \circ \sigma_{ids, ida}(F_1)) + \] + More generally, this rule also holds when: + \(\texttt{Rewriter::rewrite}(\texttt{toOriginal}(F')) = \texttt{Rewriter::rewrite}(\texttt{toOriginal}(G'))\) + where \(F'\) and \(G'\) are the result of each side of the equation + above.
      +
      MACRO_STRING_INFERENCE +
      Strings – (Macro) String inference + + \[ + + \inferrule{?\mid F,\mathit{id},\mathit{isRev},\mathit{exp}}{F} + \] + used to bookkeep an inference that has not yet been converted via + \(\texttt{strings::InferProofCons::convert}\).
      +
      MODUS_PONENS +
      Boolean – Modus Ponens + + \[ + \inferrule{F_1, (F_1 \rightarrow F_2) \mid -}{F_2} + \] + Note this can optionally be seen as a macro for + IMPLIES_ELIM <cvc5.IMPLIES_ELIM> + + RESOLUTION <cvc5.RESOLUTION>.
      +
      NARY_CONG +
      Equality – N-ary Congruence + + \[ + + \inferrule{t_1=s_1,\dots,t_n=s_n\mid k}{k(t_1,\dots, t_n) = + k(s_1,\dots, s_n)} + \] + where \(k\) is the application kind.
      +
      NOT_AND +
      Boolean – De Morgan – Not And + + \[ + \inferrule{\neg(F_1 \land \dots \land F_n) \mid -}{\neg F_1 \lor \dots + \lor \neg F_n} + \]
      +
      NOT_EQUIV_ELIM1 +
      Boolean – Not Equivalence elimination version 1 + + \[ + \inferrule{F_1 \neq F_2 \mid -}{F_1 \lor F_2} + \]
      +
      NOT_EQUIV_ELIM2 +
      Boolean – Not Equivalence elimination version 2 + + \[ + \inferrule{F_1 \neq F_2 \mid -}{\neg F_1 \lor \neg F_2} + \]
      +
      NOT_IMPLIES_ELIM1 +
      Boolean – Not Implication elimination version 1 + + \[ + \inferrule{\neg(F_1 \rightarrow F_2) \mid -}{F_1} + \]
      +
      NOT_IMPLIES_ELIM2 +
      Boolean – Not Implication elimination version 2 + + \[ + \inferrule{\neg(F_1 \rightarrow F_2) \mid -}{\neg F_2} + \]
      +
      NOT_ITE_ELIM1 +
      Boolean – Not ITE elimination version 1 + + \[ + \inferrule{\neg(\ite{C}{F_1}{F_2}) \mid -}{\neg C \lor \neg F_1} + \]
      +
      NOT_ITE_ELIM2 +
      Boolean – Not ITE elimination version 2 + + \[ + \inferrule{\neg(\ite{C}{F_1}{F_2}) \mid -}{C \lor \neg F_2} + \]
      +
      NOT_NOT_ELIM +
      Boolean – Double negation elimination + + \[ + \inferrule{\neg (\neg F) \mid -}{F} + \]
      +
      NOT_OR_ELIM +
      Boolean – Not Or elimination + + \[ + \inferrule{\neg(F_1 \lor \dots \lor F_n) \mid i}{\neg F_i} + \]
      +
      NOT_XOR_ELIM1 +
      Boolean – Not XOR elimination version 1 + + \[ + \inferrule{\neg(F_1 \xor F_2) \mid -}{F_1 \lor \neg F_2} + \]
      +
      NOT_XOR_ELIM2 +
      Boolean – Not XOR elimination version 2 + + \[ + \inferrule{\neg(F_1 \xor F_2) \mid -}{\neg F_1 \lor F_2} + \]
      +
      QUANT_VAR_REORDERING +
      Quantifiers – Variable reordering + + \[ + + \inferrule{-\mid (\forall X.\> F) = (\forall Y.\> F)} + {(\forall X.\> F) = (\forall Y.\> F)} + \] + where \(Y\) is a reordering of \(X\).
      +
      RE_INTER +
      Strings – Regular expressions – Intersection + + \[ + + \inferrule{t\in R_1,\,t\in R_2\mid -}{t\in \mathit{re.inter}(R_1,R_2)} + \]
      +
      RE_UNFOLD_NEG +
      Strings – Regular expressions – Negative Unfold + + \[ + + \inferrule{t \not \in \mathit{re}.\text{*}(R) \mid -}{t \neq \ \epsilon \ \wedge \forall L.
      +
      RE_UNFOLD_NEG_CONCAT_FIXED +
      Strings – Regular expressions – Unfold negative concatenation, fixed + + ..
      +
      RE_UNFOLD_POS +
      Strings – Regular expressions – Positive Unfold + + \[ + + \inferrule{t\in R\mid -}{F} + \] + where \(F\) corresponds to the one-step unfolding of the premise.
      +
      REFL +
      Equality – Reflexivity + + \[ + + \inferrule{-\mid t}{t = t} + \]
      +
      REORDERING +
      Boolean – Reordering + + \[ + \inferrule{C_1 \mid C_2}{C_2} + \] + where + the multiset representations of \(C_1\) and \(C_2\) are the same.
      +
      RESOLUTION +
      Boolean – Resolution + + \[ + \inferrule{C_1, C_2 \mid pol, L}{C} + \] + where + + + \(C_1\) and \(C_2\) are nodes viewed as clauses, i.e., either an + OR node with each children viewed as a literal or a node viewed as a + literal.
      +
      SAT_EXTERNAL_PROVE +
      SAT external prove Refutation + + \[ + \inferrule{F_1 \dots F_n \mid D}{\bot} + \] + where \(F_1 \dots F_n\) correspond to the input clauses in the + DIMACS file `D`.
      +
      SAT_REFUTATION +
      SAT Refutation for assumption-based unsat cores + + \[ + \inferrule{F_1 \dots F_n \mid -}{\bot} + \] + where \(F_1 \dots F_n\) correspond to the unsat core determined by the + SAT solver.
      +
      SCOPE +
      Scope (a binder for assumptions) + + \[ + + \inferruleSC{F \mid F_1 \dots F_n}{(F_1 \land \dots \land F_n) + \Rightarrow F}{if $F\neq\bot$} \textrm{ or } \inferruleSC{F \mid F_1 + \dots F_n}{\neg (F_1 \land \dots \land F_n)}{if $F=\bot$} + \] + This rule has a dual purpose with + ASSUME <cvc5.ASSUME>.
      +
      SETS_EXT +
      Sets – Sets extensionality + + \[ + + \inferrule{a \neq b\mid -} + {\mathit{set.member}(k,a)\neq\mathit{set.member}(k,b)} + \] + where \(k\) is the \(\texttt{SETS_DEQ_DIFF}\) skolem for `(a, b)`.
      +
      SETS_FILTER_DOWN +
      Sets – Sets filter down + + \[ + + \inferrule{\mathit{set.member}(x,\mathit{set.filter}(P, a))\mid -} + {\mathit{set.member}(x,a) \wedge P(x)} + \]
      +
      SETS_FILTER_UP +
      Sets – Sets filter up + + \[ + + \inferrule{\mathit{set.member}(x,a)\mid P} + {\mathit{set.member}(x, \mathit{set.filter}(P, a)) = P(x)} + \]
      +
      SETS_SINGLETON_INJ +
      Sets – Singleton injectivity + + \[ + + \inferrule{\mathit{set.singleton}(t) = \mathit{set.singleton}(s)\mid -}{t=s} + \]
      +
      SKOLEM_INTRO +
      Quantifiers – Skolem introduction + + \[ + + \inferrule{-\mid k}{k = t} + \] + where \(t\) is the unpurified form of skolem \(k\).
      +
      SKOLEMIZE +
      Quantifiers – Skolemization + + \[ + + \inferrule{\neg (\forall x_1\dots x_n.\> F)\mid -}{\neg F\sigma} + \] + where \(\sigma\) maps \(x_1,\dots,x_n\) to their representative + skolems, which are skolems \(k_1,\dots,k_n\).
      +
      SPLIT +
      Boolean – Split + + \[ + \inferrule{- \mid F}{F \lor \neg F} + \]
      +
      STRING_CODE_INJ +
      Strings – Code points + + \[ + + \inferrule{-\mid t,s}{\mathit{to\_code}(t) = -1 \vee \mathit{to\_code}(t) \neq + \mathit{to\_code}(s) \vee t = s} + \]
      +
      STRING_DECOMPOSE +
      Strings – Core rules – String decomposition + + \[ + + \inferrule{\mathit{len}(t) \geq n\mid \bot}{t = w_1\cdot w_2 \wedge + \mathit{len}(w_1) = n} + \] + where \(w_1\) is the purification skolem for \(\mathit{pre}(t,n)\) + and \(w_2\) is the purification skolem for \(\mathit{suf}(t,n)\).
      +
      STRING_EAGER_REDUCTION +
      Strings – Extended functions – Eager reduction + + \[ + + \inferrule{-\mid t}{R} + \] + where \(R\) is \(\texttt{TermRegistry::eagerReduce}(t)\).
      +
      STRING_EXT +
      Strings – Extensionality + + \[ + + \inferrule{s \neq t\mid -} + {\mathit{seq.len}(s) \neq \mathit{seq.len}(t) \vee (\mathit{seq.nth}(s,k)\neq\mathit{set.nth}(t,k) \wedge 0 \leq k \wedge k < \mathit{seq.len}(s))} + \] + where \(s,t\) are terms of sequence type, \(k\) is the + \(\texttt{STRINGS_DEQ_DIFF}\) skolem for \(s,t\).
      +
      STRING_LENGTH_NON_EMPTY +
      Strings – Core rules – Length non-empty + + \[ + + \inferrule{t\neq \epsilon\mid -}{\mathit{len}(t) \neq 0} + \]
      +
      STRING_LENGTH_POS +
      Strings – Core rules – Length positive + + \[ + + \inferrule{-\mid t}{(\mathit{len}(t) = 0\wedge t= \epsilon)\vee \mathit{len}(t) + > 0} + \]
      +
      STRING_REDUCTION +
      Strings – Extended functions – Reduction + + \[ + + \inferrule{-\mid t}{R\wedge t = w} + \] + where \(w\) is \(\texttt{StringsPreprocess::reduce}(t, R, + \dots)\).
      +
      STRING_SEQ_UNIT_INJ +
      Strings – Sequence unit + + \[ + + \inferrule{\mathit{unit}(x) = \mathit{unit}(y)\mid -}{x = y} + \] + Also applies to the case where \(\mathit{unit}(y)\) is a constant + sequence of length one.
      +
      SUBS +
      Builtin theory – Substitution + + \[ + + \inferrule{F_1 \dots F_n \mid t, ids?}{t = t \circ \sigma_{ids}(F_n) + \circ \cdots \circ \sigma_{ids}(F_1)} + \] + where \(\sigma_{ids}(F_i)\) are substitutions, which notice are applied + in reverse order.
      +
      SYMM +
      Equality – Symmetry + + \[ + + \inferrule{t_1 = t_2\mid -}{t_2 = t_1} + \] + or + + \[ + + \inferrule{t_1 \neq t_2\mid -}{t_2 \neq t_1} + \]
      +
      THEORY_REWRITE +
      Other theory rewrite rules + + \[ + \inferrule{- \mid id, t = t'}{t = t'} + \] + where `id` is the ProofRewriteRule of the theory rewrite + rule which transforms \(t\) to \(t'\).
      +
      TRANS +
      Equality – Transitivity + + \[ + + \inferrule{t_1=t_2,\dots,t_{n-1}=t_n\mid -}{t_1 = t_n} + \]
      +
      TRUE_ELIM +
      Equality – True elim + + \[ + + \inferrule{F=\top\mid -}{F} + \]
      +
      TRUE_INTRO +
      Equality – True intro + + \[ + + \inferrule{F\mid -}{F = \top} + \]
      +
      TRUST +
      Trusted rule + + \[ + \inferrule{F_1 \dots F_n \mid tid, F, ...}{F} + \] + where \(tid\) is an identifier and \(F\) is a formula.
      +
      TRUST_THEORY_REWRITE +
      Trusted rules – Theory rewrite + + \[ + \inferrule{- \mid F, tid, rid}{F} + \] + where \(F\) is an equality of the form \(t = t'\) where \(t'\) + is obtained by applying the kind of rewriting given by the method + identifier \(rid\), which is one of: + RW_REWRITE_THEORY_PRE, RW_REWRITE_THEORY_POST, + RW_REWRITE_EQ_EXT.
      +
      UNKNOWN +
      External – Alethe + + Place holder for Alethe rules.
      +
      XOR_ELIM1 +
      Boolean – XOR elimination version 1 + + \[ + \inferrule{F_1 \xor F_2 \mid -}{F_1 \lor F_2} + \]
      +
      XOR_ELIM2 +
      Boolean – XOR elimination version 2 + + \[ + \inferrule{F_1 \xor F_2 \mid -}{\neg F_1 \lor \neg F_2} + \]
      +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and TypeMethodDescription
      static ProofRulefromInt​(int value) 
      intgetValue() 
      static ProofRulevalueOf​(java.lang.String name) +
      Returns the enum constant of this type with the specified name.
      +
      static ProofRule[]values() +
      Returns an array containing the constants of this enum type, in +the order they are declared.
      +
      +
        +
      • + + +

        Methods inherited from class java.lang.Enum

        +clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
      • +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +getClass, notify, notifyAll, wait, wait, wait
      • +
      +
    • +
    +
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Enum Constant Detail

      + + + +
        +
      • +

        ASSUME

        +
        public static final ProofRule ASSUME
        +
        Assumption (a leaf) + + \[ + + \inferrule{- \mid F}{F} + \] + This rule has special status, in that an application of assume is an + open leaf in a proof that is not (yet) justified. An assume leaf is + analogous to a free variable in a term, where we say "F is a free + assumption in proof P" if it contains an application of F that is not + bound by SCOPE <cvc5.SCOPE> (see below).
        +
      • +
      + + + +
        +
      • +

        SCOPE

        +
        public static final ProofRule SCOPE
        +
        Scope (a binder for assumptions) + + \[ + + \inferruleSC{F \mid F_1 \dots F_n}{(F_1 \land \dots \land F_n) + \Rightarrow F}{if $F\neq\bot$} \textrm{ or } \inferruleSC{F \mid F_1 + \dots F_n}{\neg (F_1 \land \dots \land F_n)}{if $F=\bot$} + \] + This rule has a dual purpose with + ASSUME <cvc5.ASSUME>. It is a way to close + assumptions in a proof. We require that \(F_1 \dots F_n\) are free + assumptions in P and say that \(F_1 \dots F_n\) are not free in + (SCOPE P). In other words, they are bound by this application. For + example, the proof node: + (SCOPE (ASSUME F) :args F) + has the conclusion \(F \Rightarrow F\) and has no free assumptions. + More generally, a proof with no free assumptions always concludes a valid + formula.
        +
      • +
      + + + +
        +
      • +

        SUBS

        +
        public static final ProofRule SUBS
        +
        Builtin theory – Substitution + + \[ + + \inferrule{F_1 \dots F_n \mid t, ids?}{t = t \circ \sigma_{ids}(F_n) + \circ \cdots \circ \sigma_{ids}(F_1)} + \] + where \(\sigma_{ids}(F_i)\) are substitutions, which notice are applied + in reverse order. Notice that \(ids\) is a MethodId identifier, which + determines how to convert the formulas \(F_1 \dots F_n\) into + substitutions. It is an optional argument, where by default the premises + are equalities of the form `(= x y)` and converted into substitutions + \(x\mapsto y\).
        +
      • +
      + + + +
        +
      • +

        MACRO_REWRITE

        +
        public static final ProofRule MACRO_REWRITE
        +
        Builtin theory – Rewrite + + \[ + \inferrule{- \mid t, idr}{t = \texttt{rewrite}_{idr}(t)} + \] + where \(idr\) is a MethodId identifier, which determines the kind of + rewriter to apply, e.g. Rewriter.rewrite.
        +
      • +
      + + + +
        +
      • +

        EVALUATE

        +
        public static final ProofRule EVALUATE
        +
        Builtin theory – Evaluate + + \[ + \inferrule{- \mid t}{t = \texttt{evaluate}(t)} + \] + where \(\texttt{evaluate}\) is implemented by calling the method + \(\texttt{Evalutor::evaluate}\) in :cvc5src:`theory/evaluator.h` with an + empty substitution. + Note this is equivalent to: (REWRITE t {@link MethodId#RW_EVALUATE)}.
        +
      • +
      + + + +
        +
      • +

        ACI_NORM

        +
        public static final ProofRule ACI_NORM
        +
        Builtin theory – associative/commutative/idempotency/identity normalization + + \[ + \inferrule{- \mid t = s}{t = s} + \] + where \(\texttt{expr::isACNorm(t, s)} = \top\). For details, see + :cvc5src:`expr/nary_term_util.h`. + This method normalizes currently based on two kinds of operators: + (1) those that are associative, commutative, idempotent, and have an + identity element (examples are or, and, bvand), + (2) those that are associative and have an identity element (examples + are str.++, re.++).
        +
      • +
      + + + +
        +
      • +

        MACRO_SR_EQ_INTRO

        +
        public static final ProofRule MACRO_SR_EQ_INTRO
        +
        Builtin theory – Substitution + Rewriting equality introduction + + In this rule, we provide a term \(t\) and conclude that it is equal to + its rewritten form under a (proven) substitution. + + \[ + \inferrule{F_1 \dots F_n \mid t, (ids (ida (idr)?)?)?}{t = + \texttt{rewrite}_{idr}(t \circ \sigma_{ids, ida}(F_n) \circ \cdots \circ + \sigma_{ids, ida}(F_1))} + \] + In other words, from the point of view of Skolem forms, this rule + transforms \(t\) to \(t'\) by standard substitution + rewriting. + + The arguments \(ids\), \(ida\) and \(idr\) are optional and + specify the identifier of the substitution, the substitution application + and rewriter respectively to be used. For details, see + :cvc5src:`theory/builtin/proof_checker.h`.
        +
      • +
      + + + +
        +
      • +

        MACRO_SR_PRED_INTRO

        +
        public static final ProofRule MACRO_SR_PRED_INTRO
        +
        Builtin theory – Substitution + Rewriting predicate introduction + + In this rule, we provide a formula \(F\) and conclude it, under the + condition that it rewrites to true under a proven substitution. + + \[ + \inferrule{F_1 \dots F_n \mid F, (ids (ida (idr)?)?)?}{F} + \] + where \(\texttt{rewrite}_{idr}(F \circ \sigma_{ids, ida}(F_n) \circ + \cdots \circ \sigma_{ids, ida}(F_1)) = \top\) and \(ids\) and + \(idr\) are method identifiers. + + More generally, this rule also holds when + \(\texttt{Rewriter::rewrite}(\texttt{toOriginal}(F')) = \top\) + where \(F'\) is the result of the left hand side of the equality above. + Here, notice that we apply rewriting on the original form of \(F'\), + meaning that this rule may conclude an \(F\) whose Skolem form is + justified by the definition of its (fresh) Skolem variables. For example, + this rule may justify the conclusion \(k = t\) where \(k\) is the + purification Skolem for \(t\), e.g. where the original form of + \(k\) is \(t\). + + Furthermore, notice that the rewriting and substitution is applied only + within the side condition, meaning the rewritten form of the original form + of \(F\) does not escape this rule.
        +
      • +
      + + + +
        +
      • +

        MACRO_SR_PRED_ELIM

        +
        public static final ProofRule MACRO_SR_PRED_ELIM
        +
        Builtin theory – Substitution + Rewriting predicate elimination + + \[ + \inferrule{F, F_1 \dots F_n \mid (ids (ida + (idr)?)?)?}{\texttt{rewrite}_{idr}(F \circ \sigma_{ids, ida}(F_n) \circ + \cdots \circ \sigma_{ids, ida}(F_1))} + \] + where \(ids\) and \(idr\) are method identifiers. + + We rewrite only on the Skolem form of \(F\), similar to + MACRO_SR_EQ_INTRO <cvc5.MACRO_SR_EQ_INTRO>.
        +
      • +
      + + + +
        +
      • +

        MACRO_SR_PRED_TRANSFORM

        +
        public static final ProofRule MACRO_SR_PRED_TRANSFORM
        +
        Builtin theory – Substitution + Rewriting predicate elimination + + \[ + \inferrule{F, F_1 \dots F_n \mid G, (ids (ida (idr)?)?)?}{G} + \] + where + + \[ + \texttt{rewrite}_{idr}(F \circ \sigma_{ids, ida}(F_n) \circ\cdots \circ \sigma_{ids, ida}(F_1)) =\\ \texttt{rewrite}_{idr}(G \circ \sigma_{ids, ida}(F_n) \circ \cdots \circ \sigma_{ids, ida}(F_1)) + \] + More generally, this rule also holds when: + \(\texttt{Rewriter::rewrite}(\texttt{toOriginal}(F')) = \texttt{Rewriter::rewrite}(\texttt{toOriginal}(G'))\) + where \(F'\) and \(G'\) are the result of each side of the equation + above. Here, original forms are used in a similar manner to + MACRO_SR_PRED_INTRO <cvc5.MACRO_SR_PRED_INTRO> + above.
        +
      • +
      + + + +
        +
      • +

        ENCODE_EQ_INTRO

        +
        public static final ProofRule ENCODE_EQ_INTRO
        +
        Builtin theory – Encode equality introduction + + \[ + \inferrule{- \mid t}{t=t'} + \] + where \(t\) and \(t'\) are equivalent up to their encoding in an + external proof format. + + More specifically, it is the case that + \(\texttt{RewriteDbNodeConverter::postConvert}(t) = t;\). + This conversion method for instance may drop user patterns from quantified + formulas or change the representation of \(t\) in a way that is a + no-op in external proof formats. + + Note this rule can be treated as a + REFL <cvc5.REFL> when appropriate in + external proof formats.
        +
      • +
      + + + +
        +
      • +

        DSL_REWRITE

        +
        public static final ProofRule DSL_REWRITE
        +
        Builtin theory – DSL rewrite + + \[ + \inferrule{F_1 \dots F_n \mid id t_1 \dots t_n}{F} + \] + where `id` is a ProofRewriteRule whose definition in the + RARE DSL is \(\forall x_1 \dots x_n. (G_1 \wedge G_n) \Rightarrow G\) + where for \(i=1, \dots n\), we have that \(F_i = \sigma(G_i)\) + and \(F = \sigma(G)\) where \(\sigma\) is the substitution + \(\{x_1\mapsto t_1,\dots,x_n\mapsto t_n\}\). + + Notice that the application of the substitution takes into account the + possible list semantics of variables \(x_1 \ldots x_n\). If + \(x_i\) is a variable with list semantics, then \(t_i\) denotes a + list of terms. The substitution implemented by + \(\texttt{expr::narySubstitute}\) (for details, see + :cvc5src:`expr/nary_term_util.h`) which replaces each \(x_i\) with the + list \(t_i\) in its place.
        +
      • +
      + + + +
        +
      • +

        THEORY_REWRITE

        +
        public static final ProofRule THEORY_REWRITE
        +
        Other theory rewrite rules + + \[ + \inferrule{- \mid id, t = t'}{t = t'} + \] + where `id` is the ProofRewriteRule of the theory rewrite + rule which transforms \(t\) to \(t'\). + + In contrast to DSL_REWRITE, theory rewrite rules used by + this proof rule are not necessarily expressible in RARE. Each rule that can + be used in this proof rule are documented explicitly in cases within the + ProofRewriteRule enum.
        +
      • +
      + + + +
        +
      • +

        ITE_EQ

        +
        public static final ProofRule ITE_EQ
        +
        Processing rules – If-then-else equivalence + + \[ + \inferrule{- \mid \ite{C}{t_1}{t_2}}{\ite{C}{((\ite{C}{t_1}{t_2}) = t_1)}{((\ite{C}{t_1}{t_2}) = t_2)}} + \]
        +
      • +
      + + + +
        +
      • +

        TRUST

        +
        public static final ProofRule TRUST
        +
        Trusted rule + + \[ + \inferrule{F_1 \dots F_n \mid tid, F, ...}{F} + \] + where \(tid\) is an identifier and \(F\) is a formula. This rule + is used when a formal justification of an inference step cannot be provided. + The formulas \(F_1 \dots F_n\) refer to a set of formulas that + entail \(F\), which may or may not be provided.
        +
      • +
      + + + +
        +
      • +

        TRUST_THEORY_REWRITE

        +
        public static final ProofRule TRUST_THEORY_REWRITE
        +
        Trusted rules – Theory rewrite + + \[ + \inferrule{- \mid F, tid, rid}{F} + \] + where \(F\) is an equality of the form \(t = t'\) where \(t'\) + is obtained by applying the kind of rewriting given by the method + identifier \(rid\), which is one of: + RW_REWRITE_THEORY_PRE, RW_REWRITE_THEORY_POST, + RW_REWRITE_EQ_EXT. Notice that the checker for this rule does not + replay the rewrite to ensure correctness, since theory rewriter methods are + not static. For example, the quantifiers rewriter involves constructing new + bound variables that are not guaranteed to be consistent on each call.
        +
      • +
      + + + +
        +
      • +

        SAT_REFUTATION

        +
        public static final ProofRule SAT_REFUTATION
        +
        SAT Refutation for assumption-based unsat cores + + \[ + \inferrule{F_1 \dots F_n \mid -}{\bot} + \] + where \(F_1 \dots F_n\) correspond to the unsat core determined by the + SAT solver.
        +
      • +
      + + + +
        +
      • +

        DRAT_REFUTATION

        +
        public static final ProofRule DRAT_REFUTATION
        +
        DRAT Refutation + + \[ + \inferrule{F_1 \dots F_n \mid D, P}{\bot} + \] + where \(F_1 \dots F_n\) correspond to the clauses in the + DIMACS file given by filename `D` and `P` is a filename of a file storing + a DRAT proof.
        +
      • +
      + + + +
        +
      • +

        SAT_EXTERNAL_PROVE

        +
        public static final ProofRule SAT_EXTERNAL_PROVE
        +
        SAT external prove Refutation + + \[ + \inferrule{F_1 \dots F_n \mid D}{\bot} + \] + where \(F_1 \dots F_n\) correspond to the input clauses in the + DIMACS file `D`.
        +
      • +
      + + + +
        +
      • +

        RESOLUTION

        +
        public static final ProofRule RESOLUTION
        +
        Boolean – Resolution + + \[ + \inferrule{C_1, C_2 \mid pol, L}{C} + \] + where + +
          +
        • \(C_1\) and \(C_2\) are nodes viewed as clauses, i.e., either an + OR node with each children viewed as a literal or a node viewed as a + literal. Note that an OR node could also be a literal. +
        • +
        • \(pol\) is either true or false, representing the polarity of the + pivot on the first clause +
        • +
        • \(L\) is the pivot of the resolution, which occurs as is (resp. under + a NOT) in \(C_1\) and negatively (as is) in \(C_2\) if + \(pol = \top\) (\(pol = \bot\)). + +
        + \(C\) is a clause resulting from collecting all the literals in + \(C_1\), minus the first occurrence of the pivot or its negation, and + \(C_2\), minus the first occurrence of the pivot or its negation, + according to the policy above. If the resulting clause has a single + literal, that literal itself is the result; if it has no literals, then the + result is false; otherwise it's an OR node of the resulting literals. + + Note that it may be the case that the pivot does not occur in the + clauses. In this case the rule is not unsound, but it does not correspond + to resolution but rather to a weakening of the clause that did not have a + literal eliminated.
        +
      • +
      + + + +
        +
      • +

        CHAIN_RESOLUTION

        +
        public static final ProofRule CHAIN_RESOLUTION
        +
        Boolean – N-ary Resolution + + \[ + \inferrule{C_1 \dots C_n \mid (pol_1 \dots pol_{n-1}), (L_1 \dots L_{n-1})}{C} + \] + where + +
          +
        • let \(C_1 \dots C_n\) be nodes viewed as clauses, as defined above +
        • +
        • let \(C_1 \diamond_{L,pol} C_2\) represent the resolution of + \(C_1\) with \(C_2\) with pivot \(L\) and polarity + \(pol\), as defined above +
        • +
        • let \(C_1' = C_1\), +
        • +
        • for each \(i > 1\), let \(C_i' = C_{i-1} \diamond_{L_{i-1}, pol_{i-1}} C_i'\) + +
        + Note the list of polarities and pivots are provided as s-expressions. + + The result of the chain resolution is \(C = C_n'\)
        +
      • +
      + + + +
        +
      • +

        FACTORING

        +
        public static final ProofRule FACTORING
        +
        Boolean – Factoring + + \[ + \inferrule{C_1 \mid -}{C_2} + \] + where \(C_2\) is the clause \(C_1\), but every occurrence of a literal + after its first occurrence is omitted.
        +
      • +
      + + + +
        +
      • +

        REORDERING

        +
        public static final ProofRule REORDERING
        +
        Boolean – Reordering + + \[ + \inferrule{C_1 \mid C_2}{C_2} + \] + where + the multiset representations of \(C_1\) and \(C_2\) are the same.
        +
      • +
      + + + +
        +
      • +

        MACRO_RESOLUTION

        +
        public static final ProofRule MACRO_RESOLUTION
        +
        Boolean – N-ary Resolution + Factoring + Reordering + + \[ + \inferrule{C_1 \dots C_n \mid C, pol_1,L_1 \dots pol_{n-1},L_{n-1}}{C} + \] + where + +
          +
        • let \(C_1 \dots C_n\) be nodes viewed as clauses, as defined in + RESOLUTION <cvc5.RESOLUTION> +
        • +
        • let \(C_1 \diamond_{L,\mathit{pol}} C_2\) represent the resolution of + \(C_1\) with \(C_2\) with pivot \(L\) and polarity + \(pol\), as defined in + RESOLUTION <cvc5.RESOLUTION> +
        • +
        • let \(C_1'\) be equal, in its set representation, to \(C_1\), +
        • +
        • for each \(i > 1\), let \(C_i'\) be equal, in its set + representation, to \(C_{i-1} \diamond_{L_{i-1},\mathit{pol}_{i-1}} + C_i'\) + +
        + The result of the chain resolution is \(C\), which is equal, in its set + representation, to \(C_n'\)
        +
      • +
      + + + +
        +
      • +

        MACRO_RESOLUTION_TRUST

        +
        public static final ProofRule MACRO_RESOLUTION_TRUST
        +
        Boolean – N-ary Resolution + Factoring + Reordering unchecked + + Same as + MACRO_RESOLUTION <cvc5.MACRO_RESOLUTION>, but + not checked by the internal proof checker.
        +
      • +
      + + + +
        +
      • +

        SPLIT

        +
        public static final ProofRule SPLIT
        +
        Boolean – Split + + \[ + \inferrule{- \mid F}{F \lor \neg F} + \]
        +
      • +
      + + + +
        +
      • +

        EQ_RESOLVE

        +
        public static final ProofRule EQ_RESOLVE
        +
        Boolean – Equality resolution + + \[ + \inferrule{F_1, (F_1 = F_2) \mid -}{F_2} + \] + Note this can optionally be seen as a macro for + EQUIV_ELIM1 <cvc5.EQUIV_ELIM1> + + RESOLUTION <cvc5.RESOLUTION>.
        +
      • +
      + + + +
        +
      • +

        MODUS_PONENS

        +
        public static final ProofRule MODUS_PONENS
        +
        Boolean – Modus Ponens + + \[ + \inferrule{F_1, (F_1 \rightarrow F_2) \mid -}{F_2} + \] + Note this can optionally be seen as a macro for + IMPLIES_ELIM <cvc5.IMPLIES_ELIM> + + RESOLUTION <cvc5.RESOLUTION>.
        +
      • +
      + + + +
        +
      • +

        NOT_NOT_ELIM

        +
        public static final ProofRule NOT_NOT_ELIM
        +
        Boolean – Double negation elimination + + \[ + \inferrule{\neg (\neg F) \mid -}{F} + \]
        +
      • +
      + + + +
        +
      • +

        CONTRA

        +
        public static final ProofRule CONTRA
        +
        Boolean – Contradiction + + \[ + \inferrule{F, \neg F \mid -}{\bot} + \]
        +
      • +
      + + + +
        +
      • +

        AND_ELIM

        +
        public static final ProofRule AND_ELIM
        +
        Boolean – And elimination + + \[ + \inferrule{(F_1 \land \dots \land F_n) \mid i}{F_i} + \]
        +
      • +
      + + + +
        +
      • +

        AND_INTRO

        +
        public static final ProofRule AND_INTRO
        +
        Boolean – And introduction + + \[ + \inferrule{F_1 \dots F_n \mid -}{(F_1 \land \dots \land F_n)} + \]
        +
      • +
      + + + +
        +
      • +

        NOT_OR_ELIM

        +
        public static final ProofRule NOT_OR_ELIM
        +
        Boolean – Not Or elimination + + \[ + \inferrule{\neg(F_1 \lor \dots \lor F_n) \mid i}{\neg F_i} + \]
        +
      • +
      + + + +
        +
      • +

        IMPLIES_ELIM

        +
        public static final ProofRule IMPLIES_ELIM
        +
        Boolean – Implication elimination + + \[ + \inferrule{F_1 \rightarrow F_2 \mid -}{\neg F_1 \lor F_2} + \]
        +
      • +
      + + + +
        +
      • +

        NOT_IMPLIES_ELIM1

        +
        public static final ProofRule NOT_IMPLIES_ELIM1
        +
        Boolean – Not Implication elimination version 1 + + \[ + \inferrule{\neg(F_1 \rightarrow F_2) \mid -}{F_1} + \]
        +
      • +
      + + + +
        +
      • +

        NOT_IMPLIES_ELIM2

        +
        public static final ProofRule NOT_IMPLIES_ELIM2
        +
        Boolean – Not Implication elimination version 2 + + \[ + \inferrule{\neg(F_1 \rightarrow F_2) \mid -}{\neg F_2} + \]
        +
      • +
      + + + +
        +
      • +

        EQUIV_ELIM1

        +
        public static final ProofRule EQUIV_ELIM1
        +
        Boolean – Equivalence elimination version 1 + + \[ + \inferrule{F_1 = F_2 \mid -}{\neg F_1 \lor F_2} + \]
        +
      • +
      + + + +
        +
      • +

        EQUIV_ELIM2

        +
        public static final ProofRule EQUIV_ELIM2
        +
        Boolean – Equivalence elimination version 2 + + \[ + \inferrule{F_1 = F_2 \mid -}{F_1 \lor \neg F_2} + \]
        +
      • +
      + + + +
        +
      • +

        NOT_EQUIV_ELIM1

        +
        public static final ProofRule NOT_EQUIV_ELIM1
        +
        Boolean – Not Equivalence elimination version 1 + + \[ + \inferrule{F_1 \neq F_2 \mid -}{F_1 \lor F_2} + \]
        +
      • +
      + + + +
        +
      • +

        NOT_EQUIV_ELIM2

        +
        public static final ProofRule NOT_EQUIV_ELIM2
        +
        Boolean – Not Equivalence elimination version 2 + + \[ + \inferrule{F_1 \neq F_2 \mid -}{\neg F_1 \lor \neg F_2} + \]
        +
      • +
      + + + +
        +
      • +

        XOR_ELIM1

        +
        public static final ProofRule XOR_ELIM1
        +
        Boolean – XOR elimination version 1 + + \[ + \inferrule{F_1 \xor F_2 \mid -}{F_1 \lor F_2} + \]
        +
      • +
      + + + +
        +
      • +

        XOR_ELIM2

        +
        public static final ProofRule XOR_ELIM2
        +
        Boolean – XOR elimination version 2 + + \[ + \inferrule{F_1 \xor F_2 \mid -}{\neg F_1 \lor \neg F_2} + \]
        +
      • +
      + + + +
        +
      • +

        NOT_XOR_ELIM1

        +
        public static final ProofRule NOT_XOR_ELIM1
        +
        Boolean – Not XOR elimination version 1 + + \[ + \inferrule{\neg(F_1 \xor F_2) \mid -}{F_1 \lor \neg F_2} + \]
        +
      • +
      + + + +
        +
      • +

        NOT_XOR_ELIM2

        +
        public static final ProofRule NOT_XOR_ELIM2
        +
        Boolean – Not XOR elimination version 2 + + \[ + \inferrule{\neg(F_1 \xor F_2) \mid -}{\neg F_1 \lor F_2} + \]
        +
      • +
      + + + +
        +
      • +

        ITE_ELIM1

        +
        public static final ProofRule ITE_ELIM1
        +
        Boolean – ITE elimination version 1 + + \[ + \inferrule{(\ite{C}{F_1}{F_2}) \mid -}{\neg C \lor F_1} + \]
        +
      • +
      + + + +
        +
      • +

        ITE_ELIM2

        +
        public static final ProofRule ITE_ELIM2
        +
        Boolean – ITE elimination version 2 + + \[ + \inferrule{(\ite{C}{F_1}{F_2}) \mid -}{C \lor F_2} + \]
        +
      • +
      + + + +
        +
      • +

        NOT_ITE_ELIM1

        +
        public static final ProofRule NOT_ITE_ELIM1
        +
        Boolean – Not ITE elimination version 1 + + \[ + \inferrule{\neg(\ite{C}{F_1}{F_2}) \mid -}{\neg C \lor \neg F_1} + \]
        +
      • +
      + + + +
        +
      • +

        NOT_ITE_ELIM2

        +
        public static final ProofRule NOT_ITE_ELIM2
        +
        Boolean – Not ITE elimination version 2 + + \[ + \inferrule{\neg(\ite{C}{F_1}{F_2}) \mid -}{C \lor \neg F_2} + \]
        +
      • +
      + + + +
        +
      • +

        NOT_AND

        +
        public static final ProofRule NOT_AND
        +
        Boolean – De Morgan – Not And + + \[ + \inferrule{\neg(F_1 \land \dots \land F_n) \mid -}{\neg F_1 \lor \dots + \lor \neg F_n} + \]
        +
      • +
      + + + +
        +
      • +

        CNF_AND_POS

        +
        public static final ProofRule CNF_AND_POS
        +
        Boolean – CNF – And Positive + + \[ + \inferrule{- \mid (F_1 \land \dots \land F_n), i}{\neg (F_1 \land \dots + \land F_n) \lor F_i} + \]
        +
      • +
      + + + +
        +
      • +

        CNF_AND_NEG

        +
        public static final ProofRule CNF_AND_NEG
        +
        Boolean – CNF – And Negative + + \[ + \inferrule{- \mid (F_1 \land \dots \land F_n)}{(F_1 \land \dots \land + F_n) \lor \neg F_1 \lor \dots \lor \neg F_n} + \]
        +
      • +
      + + + +
        +
      • +

        CNF_OR_POS

        +
        public static final ProofRule CNF_OR_POS
        +
        Boolean – CNF – Or Positive + + \[ + \inferrule{- \mid (F_1 \lor \dots \lor F_n)}{\neg(F_1 \lor \dots \lor + F_n) \lor F_1 \lor \dots \lor F_n} + \]
        +
      • +
      + + + +
        +
      • +

        CNF_OR_NEG

        +
        public static final ProofRule CNF_OR_NEG
        +
        Boolean – CNF – Or Negative + + \[ + \inferrule{- \mid (F_1 \lor \dots \lor F_n), i}{(F_1 \lor \dots \lor F_n) + \lor \neg F_i} + \]
        +
      • +
      + + + +
        +
      • +

        CNF_IMPLIES_POS

        +
        public static final ProofRule CNF_IMPLIES_POS
        +
        Boolean – CNF – Implies Positive + + \[ + \inferrule{- \mid F_1 \rightarrow F_2}{\neg(F_1 \rightarrow F_2) \lor \neg F_1 + \lor F_2} + \]
        +
      • +
      + + + +
        +
      • +

        CNF_IMPLIES_NEG1

        +
        public static final ProofRule CNF_IMPLIES_NEG1
        +
        Boolean – CNF – Implies Negative 1 + + \[ + \inferrule{- \mid F_1 \rightarrow F_2}{(F_1 \rightarrow F_2) \lor F_1} + \]
        +
      • +
      + + + +
        +
      • +

        CNF_IMPLIES_NEG2

        +
        public static final ProofRule CNF_IMPLIES_NEG2
        +
        Boolean – CNF – Implies Negative 2 + + \[ + \inferrule{- \mid F_1 \rightarrow F_2}{(F_1 \rightarrow F_2) \lor \neg F_2} + \]
        +
      • +
      + + + +
        +
      • +

        CNF_EQUIV_POS1

        +
        public static final ProofRule CNF_EQUIV_POS1
        +
        Boolean – CNF – Equiv Positive 1 + + \[ + \inferrule{- \mid F_1 = F_2}{F_1 \neq F_2 \lor \neg F_1 \lor F_2} + \]
        +
      • +
      + + + +
        +
      • +

        CNF_EQUIV_POS2

        +
        public static final ProofRule CNF_EQUIV_POS2
        +
        Boolean – CNF – Equiv Positive 2 + + \[ + \inferrule{- \mid F_1 = F_2}{F_1 \neq F_2 \lor F_1 \lor \neg F_2} + \]
        +
      • +
      + + + +
        +
      • +

        CNF_EQUIV_NEG1

        +
        public static final ProofRule CNF_EQUIV_NEG1
        +
        Boolean – CNF – Equiv Negative 1 + + \[ + \inferrule{- \mid F_1 = F_2}{(F_1 = F_2) \lor F_1 \lor F_2} + \]
        +
      • +
      + + + +
        +
      • +

        CNF_EQUIV_NEG2

        +
        public static final ProofRule CNF_EQUIV_NEG2
        +
        Boolean – CNF – Equiv Negative 2 + + \[ + \inferrule{- \mid F_1 = F_2}{(F_1 = F_2) \lor \neg F_1 \lor \neg F_2} + \]
        +
      • +
      + + + +
        +
      • +

        CNF_XOR_POS1

        +
        public static final ProofRule CNF_XOR_POS1
        +
        Boolean – CNF – XOR Positive 1 + + \[ + \inferrule{- \mid F_1 \xor F_2}{\neg(F_1 \xor F_2) \lor F_1 \lor F_2} + \]
        +
      • +
      + + + +
        +
      • +

        CNF_XOR_POS2

        +
        public static final ProofRule CNF_XOR_POS2
        +
        Boolean – CNF – XOR Positive 2 + + \[ + \inferrule{- \mid F_1 \xor F_2}{\neg(F_1 \xor F_2) \lor \neg F_1 \lor + \neg F_2} + \]
        +
      • +
      + + + +
        +
      • +

        CNF_XOR_NEG1

        +
        public static final ProofRule CNF_XOR_NEG1
        +
        Boolean – CNF – XOR Negative 1 + + \[ + \inferrule{- \mid F_1 \xor F_2}{(F_1 \xor F_2) \lor \neg F_1 \lor F_2} + \]
        +
      • +
      + + + +
        +
      • +

        CNF_XOR_NEG2

        +
        public static final ProofRule CNF_XOR_NEG2
        +
        Boolean – CNF – XOR Negative 2 + + \[ + \inferrule{- \mid F_1 \xor F_2}{(F_1 \xor F_2) \lor F_1 \lor \neg F_2} + \]
        +
      • +
      + + + +
        +
      • +

        CNF_ITE_POS1

        +
        public static final ProofRule CNF_ITE_POS1
        +
        Boolean – CNF – ITE Positive 1 + + \[ + \inferrule{- \mid (\ite{C}{F_1}{F_2})}{\neg(\ite{C}{F_1}{F_2}) \lor \neg + C \lor F_1} + \]
        +
      • +
      + + + +
        +
      • +

        CNF_ITE_POS2

        +
        public static final ProofRule CNF_ITE_POS2
        +
        Boolean – CNF – ITE Positive 2 + + \[ + \inferrule{- \mid (\ite{C}{F_1}{F_2})}{\neg(\ite{C}{F_1}{F_2}) \lor C + \lor F_2} + \]
        +
      • +
      + + + +
        +
      • +

        CNF_ITE_POS3

        +
        public static final ProofRule CNF_ITE_POS3
        +
        Boolean – CNF – ITE Positive 3 + + \[ + \inferrule{- \mid (\ite{C}{F_1}{F_2})}{\neg(\ite{C}{F_1}{F_2}) \lor F_1 + \lor F_2} + \]
        +
      • +
      + + + +
        +
      • +

        CNF_ITE_NEG1

        +
        public static final ProofRule CNF_ITE_NEG1
        +
        Boolean – CNF – ITE Negative 1 + + \[ + \inferrule{- \mid (\ite{C}{F_1}{F_2})}{(\ite{C}{F_1}{F_2}) \lor \neg C + \lor \neg F_1} + \]
        +
      • +
      + + + +
        +
      • +

        CNF_ITE_NEG2

        +
        public static final ProofRule CNF_ITE_NEG2
        +
        Boolean – CNF – ITE Negative 2 + + \[ + \inferrule{- \mid (\ite{C}{F_1}{F_2})}{(\ite{C}{F_1}{F_2}) \lor C \lor + \neg F_2} + \]
        +
      • +
      + + + +
        +
      • +

        CNF_ITE_NEG3

        +
        public static final ProofRule CNF_ITE_NEG3
        +
        Boolean – CNF – ITE Negative 3 + + \[ + \inferrule{- \mid (\ite{C}{F_1}{F_2})}{(\ite{C}{F_1}{F_2}) \lor \neg F_1 + \lor \neg F_2} + \]
        +
      • +
      + + + +
        +
      • +

        REFL

        +
        public static final ProofRule REFL
        +
        Equality – Reflexivity + + \[ + + \inferrule{-\mid t}{t = t} + \]
        +
      • +
      + + + +
        +
      • +

        SYMM

        +
        public static final ProofRule SYMM
        +
        Equality – Symmetry + + \[ + + \inferrule{t_1 = t_2\mid -}{t_2 = t_1} + \] + or + + \[ + + \inferrule{t_1 \neq t_2\mid -}{t_2 \neq t_1} + \]
        +
      • +
      + + + +
        +
      • +

        TRANS

        +
        public static final ProofRule TRANS
        +
        Equality – Transitivity + + \[ + + \inferrule{t_1=t_2,\dots,t_{n-1}=t_n\mid -}{t_1 = t_n} + \]
        +
      • +
      + + + +
        +
      • +

        CONG

        +
        public static final ProofRule CONG
        +
        Equality – Congruence + + \[ + + \inferrule{t_1=s_1,\dots,t_n=s_n\mid k, f?}{k(f?, t_1,\dots, t_n) = + k(f?, s_1,\dots, s_n)} + \] + where \(k\) is the application kind. Notice that \(f\) must be + provided iff \(k\) is a parameterized kind, e.g. + `cvc5.Kind.APPLY_UF`. The actual node for + \(k\) is constructible via ProofRuleChecker.mkKindNode. + If \(k\) is a binder kind (e.g. cvc5.{@link Kind#FORALL}) then \(f\) + is a term of kind cvc5.Kind.VARIABLE_LIST + denoting the variables bound by both sides of the conclusion. + This rule is used for kinds that have a fixed arity, such as + cvc5.Kind.ITE, cvc5.Kind.EQUAL, and so on. It is also used for + cvc5.Kind.APPLY_UF where \(f\) must be provided. + It is not used for equality between + cvc5.Kind.HO_APPLY terms, which should + use the HO_CONG <cvc5.HO_CONG> proof rule.
        +
      • +
      + + + +
        +
      • +

        NARY_CONG

        +
        public static final ProofRule NARY_CONG
        +
        Equality – N-ary Congruence + + \[ + + \inferrule{t_1=s_1,\dots,t_n=s_n\mid k}{k(t_1,\dots, t_n) = + k(s_1,\dots, s_n)} + \] + where \(k\) is the application kind. The actual node for \(k\) is + constructible via ProofRuleChecker.mkKindNode. This rule is used for + kinds that have variadic arity, such as cvc5.Kind.AND, + cvc5.Kind.PLUS and so on.
        +
      • +
      + + + +
        +
      • +

        TRUE_INTRO

        +
        public static final ProofRule TRUE_INTRO
        +
        Equality – True intro + + \[ + + \inferrule{F\mid -}{F = \top} + \]
        +
      • +
      + + + +
        +
      • +

        TRUE_ELIM

        +
        public static final ProofRule TRUE_ELIM
        +
        Equality – True elim + + \[ + + \inferrule{F=\top\mid -}{F} + \]
        +
      • +
      + + + +
        +
      • +

        FALSE_INTRO

        +
        public static final ProofRule FALSE_INTRO
        +
        Equality – False intro + + \[ + + \inferrule{\neg F\mid -}{F = \bot} + \]
        +
      • +
      + + + +
        +
      • +

        FALSE_ELIM

        +
        public static final ProofRule FALSE_ELIM
        +
        Equality – False elim + + \[ + + \inferrule{F=\bot\mid -}{\neg F} + \]
        +
      • +
      + + + +
        +
      • +

        HO_APP_ENCODE

        +
        public static final ProofRule HO_APP_ENCODE
        +
        Equality – Higher-order application encoding + + \[ + + \inferrule{-\mid t}{t=t'} + \] + where `t'` is the higher-order application that is equivalent to `t`, + as implemented by uf.TheoryUfRewriter.getHoApplyForApplyUf. + For details see :cvc5src:`theory/uf/theory_uf_rewriter.h` + + For example, this rule concludes \(f(x,y) = @( @(f,x), y)\), where + \(@\) is the HO_APPLY kind. + + Note this rule can be treated as a + REFL <cvc5.REFL> when appropriate in + external proof formats.
        +
      • +
      + + + +
        +
      • +

        HO_CONG

        +
        public static final ProofRule HO_CONG
        +
        Equality – Higher-order congruence + + \[ + + \inferrule{f=g, t_1=s_1,\dots,t_n=s_n\mid k}{k(f, t_1,\dots, t_n) = + k(g, s_1,\dots, s_n)} + \] + Notice that this rule is only used when the application kind \(k\) is + either `cvc5.Kind.APPLY_UF` or `cvc5.Kind.HO_APPLY`.
        +
      • +
      + + + +
        +
      • +

        ARRAYS_READ_OVER_WRITE

        +
        public static final ProofRule ARRAYS_READ_OVER_WRITE
        +
        Arrays – Read over write + + \[ + + \inferrule{i_1 \neq i_2\mid \mathit{select}(\mathit{store}(a,i_1,e),i_2)} + {\mathit{select}(\mathit{store}(a,i_1,e),i_2) = \mathit{select}(a,i_2)} + \]
        +
      • +
      + + + +
        +
      • +

        ARRAYS_READ_OVER_WRITE_CONTRA

        +
        public static final ProofRule ARRAYS_READ_OVER_WRITE_CONTRA
        +
        Arrays – Read over write, contrapositive + + \[ + + \inferrule{\mathit{select}(\mathit{store}(a,i_2,e),i_1) \neq + \mathit{select}(a,i_1)\mid -}{i_1=i_2} + \]
        +
      • +
      + + + +
        +
      • +

        ARRAYS_READ_OVER_WRITE_1

        +
        public static final ProofRule ARRAYS_READ_OVER_WRITE_1
        +
        Arrays – Read over write 1 + + \[ + + \inferrule{-\mid \mathit{select}(\mathit{store}(a,i,e),i)} + {\mathit{select}(\mathit{store}(a,i,e),i)=e} + \]
        +
      • +
      + + + +
        +
      • +

        ARRAYS_EXT

        +
        public static final ProofRule ARRAYS_EXT
        +
        Arrays – Arrays extensionality + + \[ + + \inferrule{a \neq b\mid -} + {\mathit{select}(a,k)\neq\mathit{select}(b,k)} + \] + where \(k\) is the \(\texttt{ARRAY_DEQ_DIFF}\) skolem for `(a, b)`.
        +
      • +
      + + + +
        +
      • +

        MACRO_BV_BITBLAST

        +
        public static final ProofRule MACRO_BV_BITBLAST
        +
        Bit-vectors – (Macro) Bitblast + + \[ + + \inferrule{-\mid t}{t = \texttt{bitblast}(t)} + \] + where \(\texttt{bitblast}\) represents the result of the bit-blasted term as + a bit-vector consisting of the output bits of the bit-blasted circuit + representation of the term. Terms are bit-blasted according to the + strategies defined in :cvc5src:`theory/bv/bitblast/bitblast_strategies_template.h`.
        +
      • +
      + + + +
        +
      • +

        BV_BITBLAST_STEP

        +
        public static final ProofRule BV_BITBLAST_STEP
        +
        Bit-vectors – Bitblast bit-vector constant, variable, and terms + + For constant and variables: + + \[ + + \inferrule{-\mid t}{t = \texttt{bitblast}(t)} + \] + For terms: + + \[ + + \inferrule{-\mid k(\texttt{bitblast}(t_1),\dots,\texttt{bitblast}(t_n))} + {k(\texttt{bitblast}(t_1),\dots,\texttt{bitblast}(t_n)) = + \texttt{bitblast}(t)} + \] + where \(t\) is \(k(t_1,\dots,t_n)\).
        +
      • +
      + + + +
        +
      • +

        BV_EAGER_ATOM

        +
        public static final ProofRule BV_EAGER_ATOM
        +
        Bit-vectors – Bit-vector eager atom + + \[ + + \inferrule{-\mid F}{F = F[0]} + \] + where \(F\) is of kind BITVECTOR_EAGER_ATOM.
        +
      • +
      + + + +
        +
      • +

        DT_SPLIT

        +
        public static final ProofRule DT_SPLIT
        +
        Datatypes – Split + + \[ + + \inferrule{-\mid t}{\mathit{is}_{C_1}(t)\vee\cdots\vee\mathit{is}_{C_n}(t)} + \] + where \(C_1,\dots,C_n\) are all the constructors of the type of \(t\).
        +
      • +
      + + + +
        +
      • +

        DT_CLASH

        +
        public static final ProofRule DT_CLASH
        +
        Datatypes – Clash + + \[ + + \inferruleSC{\mathit{is}_{C_i}(t), \mathit{is}_{C_j}(t)\mid -}{\bot} + {if $i\neq j$} + \]
        +
      • +
      + + + +
        +
      • +

        SKOLEM_INTRO

        +
        public static final ProofRule SKOLEM_INTRO
        +
        Quantifiers – Skolem introduction + + \[ + + \inferrule{-\mid k}{k = t} + \] + where \(t\) is the unpurified form of skolem \(k\).
        +
      • +
      + + + +
        +
      • +

        SKOLEMIZE

        +
        public static final ProofRule SKOLEMIZE
        +
        Quantifiers – Skolemization + + \[ + + \inferrule{\neg (\forall x_1\dots x_n.\> F)\mid -}{\neg F\sigma} + \] + where \(\sigma\) maps \(x_1,\dots,x_n\) to their representative + skolems, which are skolems \(k_1,\dots,k_n\). For each \(k_i\), + its skolem identifier is QUANTIFIERS_SKOLEMIZE <cvc5.SkolemId.QUANTIFIERS_SKOLEMIZE>, + and its indices are \((\forall x_1\dots x_n.\> F)\) and \(x_i\).
        +
      • +
      + + + +
        +
      • +

        INSTANTIATE

        +
        public static final ProofRule INSTANTIATE
        +
        Quantifiers – Instantiation + + \[ + + \inferrule{\forall x_1\dots x_n.\> F\mid (t_1 \dots t_n), (id\, (t)?)?} + {F\{x_1\mapsto t_1,\dots,x_n\mapsto t_n\}} + \] + The list of terms to instantiate \((t_1 \dots t_n)\) is provided as + an s-expression as the first argument. The optional argument \(id\) + indicates the inference id that caused the instantiation. The term + \(t\) indicates an additional term (e.g. the trigger) associated with + the instantiation, which depends on the id. If the id has prefix + QUANTIFIERS_INST_E_MATCHING, then \(t\) is the trigger that + generated the instantiation.
        +
      • +
      + + + +
        +
      • +

        ALPHA_EQUIV

        +
        public static final ProofRule ALPHA_EQUIV
        +
        Quantifiers – Alpha equivalence + + \[ + + \inferruleSC{-\mid F, (y_1 \ldots y_n), (z_1,\dots, z_n)} + {F = F\{y_1\mapsto z_1,\dots,y_n\mapsto z_n\}} + {if $y_1,\dots,y_n, z_1,\dots,z_n$ are unique bound variables} + \] + Notice that this rule is correct only when \(z_1,\dots,z_n\) are not + contained in \(FV(F) \setminus \{ y_1,\dots, y_n \}\), where + \(FV(\varphi)\) are the free variables of \(\varphi\). The internal + quantifiers proof checker does not currently check that this is the case.
        +
      • +
      + + + +
        +
      • +

        QUANT_VAR_REORDERING

        +
        public static final ProofRule QUANT_VAR_REORDERING
        +
        Quantifiers – Variable reordering + + \[ + + \inferrule{-\mid (\forall X.\> F) = (\forall Y.\> F)} + {(\forall X.\> F) = (\forall Y.\> F)} + \] + where \(Y\) is a reordering of \(X\).
        +
      • +
      + + + +
        +
      • +

        SETS_SINGLETON_INJ

        +
        public static final ProofRule SETS_SINGLETON_INJ
        +
        Sets – Singleton injectivity + + \[ + + \inferrule{\mathit{set.singleton}(t) = \mathit{set.singleton}(s)\mid -}{t=s} + \]
        +
      • +
      + + + +
        +
      • +

        SETS_EXT

        +
        public static final ProofRule SETS_EXT
        +
        Sets – Sets extensionality + + \[ + + \inferrule{a \neq b\mid -} + {\mathit{set.member}(k,a)\neq\mathit{set.member}(k,b)} + \] + where \(k\) is the \(\texttt{SETS_DEQ_DIFF}\) skolem for `(a, b)`.
        +
      • +
      + + + +
        +
      • +

        SETS_FILTER_UP

        +
        public static final ProofRule SETS_FILTER_UP
        +
        Sets – Sets filter up + + \[ + + \inferrule{\mathit{set.member}(x,a)\mid P} + {\mathit{set.member}(x, \mathit{set.filter}(P, a)) = P(x)} + \]
        +
      • +
      + + + +
        +
      • +

        SETS_FILTER_DOWN

        +
        public static final ProofRule SETS_FILTER_DOWN
        +
        Sets – Sets filter down + + \[ + + \inferrule{\mathit{set.member}(x,\mathit{set.filter}(P, a))\mid -} + {\mathit{set.member}(x,a) \wedge P(x)} + \]
        +
      • +
      + + + +
        +
      • +

        CONCAT_EQ

        +
        public static final ProofRule CONCAT_EQ
        +
        Strings – Core rules – Concatenation equality + + \[ + + \inferrule{(t_1\cdot\ldots \cdot t_n \cdot t) = (t_1 \cdot\ldots + \cdot t_n\cdot s)\mid b}{t = s} + \] + where \(\cdot\) stands for string concatenation and \(b\) indicates + if the direction is reversed. + + Notice that \(t\) or \(s\) may be empty, in which case they are + implicit in the concatenation above. For example, if the premise is + \(x\cdot z = x\), then this rule, with argument \(\bot\), concludes + \(z = \epsilon\). + + Also note that constants are split, such that for \((\mathsf{'abc'} + \cdot x) = (\mathsf{'a'} \cdot y)\), this rule, with argument \(\bot\), + concludes \((\mathsf{'bc'} \cdot x) = y\). This splitting is done only + for constants such that Word.splitConstant returns non-null.
        +
      • +
      + + + +
        +
      • +

        CONCAT_UNIFY

        +
        public static final ProofRule CONCAT_UNIFY
        +
        Strings – Core rules – Concatenation unification + + \[ + + \inferrule{(t_1\cdot t_2) = (s_1 \cdot s_2),\, \mathit{len}(t_1) = + \mathit{len}(s_1)\mid \bot}{t_1 = s_1} + \] + Alternatively for the reverse: + + \[ + + \inferrule{(t_1\cdot t_2) = (s_1 \cdot s_2),\, \mathit{len}(t_2) = + \mathit{len}(s_2)\mid \top}{t_2 = s_2} + \]
        +
      • +
      + + + +
        +
      • +

        CONCAT_CONFLICT

        +
        public static final ProofRule CONCAT_CONFLICT
        +
        Strings – Core rules – Concatenation conflict + + \[ + + \inferrule{(c_1\cdot t) = (c_2 \cdot s)\mid b}{\bot} + \] + where \(b\) indicates if the direction is reversed, \(c_1,\,c_2\) + are constants such that \(\texttt{Word::splitConstant}(c_1,c_2, + \mathit{index},b)\) is null, in other words, neither is a prefix of the + other. Note it may be the case that one side of the equality denotes the + empty string. + + This rule is used exclusively for strings.
        +
      • +
      + + + +
        +
      • +

        CONCAT_CONFLICT_DEQ

        +
        public static final ProofRule CONCAT_CONFLICT_DEQ
        +
        Strings – Core rules – Concatenation conflict for disequal characters + + \[ + + \inferrule{(t_1\cdot t) = (s_1 \cdot s), t_1 \neq s_1 \mid b}{\bot} + \] + where \(t_1\) and \(s_1\) are constants of length one, or otherwise one side + of the equality is the empty sequence and \(t_1\) or \(s_1\) corresponding to + that side is the empty sequence. + + This rule is used exclusively for sequences.
        +
      • +
      + + + +
        +
      • +

        CONCAT_SPLIT

        +
        public static final ProofRule CONCAT_SPLIT
        +
        Strings – Core rules – Concatenation split + + \[ + + \inferruleSC{(t_1\cdot t_2) = (s_1 \cdot s_2),\, + \mathit{len}(t_1) \neq \mathit{len}(s_1)\mid b}{((t_1 = s_1\cdot r) + \vee (s_1 = t_1\cdot r)) \wedge r \neq \epsilon \wedge \mathit{len}(r)>0}{if $b=\bot$} + \] + where \(r\) is the purification skolem for + \(\mathit{ite}( + \mathit{len}(t_1) >= \mathit{len}(s_1), + \mathit{suf}(t_1,\mathit{len}(s_1)), + \mathit{suf}(s_1,\mathit{len}(t_1)))\) + and \(\epsilon\) is the empty string (or sequence). + + \[ + + \inferruleSC{(t_1\cdot t_2) = (s_1 \cdot s_2),\, + \mathit{len}(t_2) \neq \mathit{len}(s_2)\mid b}{((t_2 = r \cdot s_2) + \vee (s_2 = r \cdot t_2)) \wedge r \neq \epsilon \wedge \mathit{len}(r)>0}{if $b=\top$} + \] + where \(r\) is the purification Skolem for + \(\mathit{ite}( + \mathit{len}(t_2) >= \mathit{len}(s_2), + \mathit{pre}(t_2,\mathit{len}(t_2) - \mathit{len}(s_2)), + \mathit{pre}(s_2,\mathit{len}(s_2) - \mathit{len}(t_2)))\) + and \(\epsilon\) is the empty string (or sequence). + + Above, \(\mathit{suf}(x,n)\) is shorthand for + \(\mathit{substr}(x,n, \mathit{len}(x) - n)\) and + \(\mathit{pre}(x,n)\) is shorthand for \(\mathit{substr}(x,0,n)\).
        +
      • +
      + + + +
        +
      • +

        CONCAT_CSPLIT

        +
        public static final ProofRule CONCAT_CSPLIT
        +
        Strings – Core rules – Concatenation split for constants + + \[ + + \inferrule{(t_1\cdot t_2) = (c \cdot s_2),\, + \mathit{len}(t_1) \neq 0\mid \bot}{(t_1 = c\cdot r)} + \] + where \(r\) is the purification skolem for \(\mathit{suf}(t_1,1)\). + + Alternatively for the reverse: + + \[ + + \inferrule{(t_1\cdot t_2) = (s_1 \cdot c),\, + \mathit{len}(t_2) \neq 0\mid \top}{(t_2 = r\cdot c)} + \] + where \(r\) is the purification skolem for + \(\mathit{pre}(t_2,\mathit{len}(t_2) - 1)\).
        +
      • +
      + + + +
        +
      • +

        CONCAT_LPROP

        +
        public static final ProofRule CONCAT_LPROP
        +
        Strings – Core rules – Concatenation length propagation + + \[ + + \inferrule{(t_1\cdot t_2) = (s_1 \cdot s_2),\, + \mathit{len}(t_1) > \mathit{len}(s_1)\mid \bot}{(t_1 = s_1\cdot r)} + \] + where \(r\) is the purification Skolem for + \(\mathit{ite}( + \mathit{len}(t_1) >= \mathit{len}(s_1), + \mathit{suf}(t_1,\mathit{len}(s_1)), + \mathit{suf}(s_1,\mathit{len}(t_1)))\). + + Alternatively for the reverse: + + \[ + + \inferrule{(t_1\cdot t_2) = (s_1 \cdot s_2),\, + \mathit{len}(t_2) > \mathit{len}(s_2)\mid \top}{(t_2 = r \cdot s_2)} + \] + where \(r\) is the purification Skolem for + \(\mathit{ite}( + \mathit{len}(t_2) >= \mathit{len}(s_2), + \mathit{pre}(t_2,\mathit{len}(t_2) - \mathit{len}(s_2)), + \mathit{pre}(s_2,\mathit{len}(s_2) - \mathit{len}(t_2)))\)
        +
      • +
      + + + +
        +
      • +

        CONCAT_CPROP

        +
        public static final ProofRule CONCAT_CPROP
        +
        Strings – Core rules – Concatenation constant propagation + + \[ + + \inferrule{(t_1\cdot w_1\cdot t_2) = (w_2 \cdot s),\, + \mathit{len}(t_1) \neq 0\mid \bot}{(t_1 = t_3\cdot r)} + \] + where \(w_1,\,w_2\) are words, \(t_3\) is + \(\mathit{pre}(w_2,p)\), \(p\) is + \(\texttt{Word::overlap}(\mathit{suf}(w_2,1), w_1)\), and \(r\) is + the purification skolem for + \(\mathit{suf}(t_1,\mathit{len}(w_3))\). Note that + \(\mathit{suf}(w_2,p)\) is the largest suffix of + \(\mathit{suf}(w_2,1)\) that can contain a prefix of \(w_1\); since + \(t_1\) is non-empty, \(w_3\) must therefore be contained in + \(t_1\). + + Alternatively for the reverse: + + \[ + + \inferrule{(t_1\cdot w_1\cdot t_2) = (s \cdot w_2),\, + \mathit{len}(t_2) \neq 0\mid \top}{(t_2 = r\cdot t_3)} + \] + where \(w_1,\,w_2\) are words, \(t_3\) is + \(\mathit{substr}(w_2, \mathit{len}(w_2) - p, p)\), \(p\) is + \(\texttt{Word::roverlap}(\mathit{pre}(w_2, \mathit{len}(w_2) - 1), + w_1)\), and \(r\) is the purification skolem for + \(\mathit{pre}(t_2,\mathit{len}(t_2) - \mathit{len}(w_3))\). Note that + \(\mathit{pre}(w_2, \mathit{len}(w_2) - p)\) is the largest prefix of + \(\mathit{pre}(w_2, \mathit{len}(w_2) - 1)\) that can contain a suffix + of \(w_1\); since \(t_2\) is non-empty, \(w_3\) must therefore + be contained in \(t_2\).
        +
      • +
      + + + +
        +
      • +

        STRING_DECOMPOSE

        +
        public static final ProofRule STRING_DECOMPOSE
        +
        Strings – Core rules – String decomposition + + \[ + + \inferrule{\mathit{len}(t) \geq n\mid \bot}{t = w_1\cdot w_2 \wedge + \mathit{len}(w_1) = n} + \] + where \(w_1\) is the purification skolem for \(\mathit{pre}(t,n)\) + and \(w_2\) is the purification skolem for \(\mathit{suf}(t,n)\). + Or alternatively for the reverse: + + \[ + + \inferrule{\mathit{len}(t) \geq n\mid \top}{t = w_1\cdot w_2 \wedge + \mathit{len}(w_2) = n} + \] + where \(w_1\) is the purification skolem for \(\mathit{pre}(t,n)\) and + \(w_2\) is the purification skolem for \(\mathit{suf}(t,n)\).
        +
      • +
      + + + +
        +
      • +

        STRING_LENGTH_POS

        +
        public static final ProofRule STRING_LENGTH_POS
        +
        Strings – Core rules – Length positive + + \[ + + \inferrule{-\mid t}{(\mathit{len}(t) = 0\wedge t= \epsilon)\vee \mathit{len}(t) + > 0} + \]
        +
      • +
      + + + +
        +
      • +

        STRING_LENGTH_NON_EMPTY

        +
        public static final ProofRule STRING_LENGTH_NON_EMPTY
        +
        Strings – Core rules – Length non-empty + + \[ + + \inferrule{t\neq \epsilon\mid -}{\mathit{len}(t) \neq 0} + \]
        +
      • +
      + + + +
        +
      • +

        STRING_REDUCTION

        +
        public static final ProofRule STRING_REDUCTION
        +
        Strings – Extended functions – Reduction + + \[ + + \inferrule{-\mid t}{R\wedge t = w} + \] + where \(w\) is \(\texttt{StringsPreprocess::reduce}(t, R, + \dots)\). For details, see + :cvc5src:`theory/strings/theory_strings_preprocess.h`. + In other words, \(R\) is the reduction predicate for extended + term \(t\), and \(w\) is the purification skolem for \(t\). + + Notice that the free variables of \(R\) are \(w\) and the free + variables of \(t\).
        +
      • +
      + + + +
        +
      • +

        STRING_EAGER_REDUCTION

        +
        public static final ProofRule STRING_EAGER_REDUCTION
        +
        Strings – Extended functions – Eager reduction + + \[ + + \inferrule{-\mid t}{R} + \] + where \(R\) is \(\texttt{TermRegistry::eagerReduce}(t)\). + For details, see :cvc5src:`theory/strings/term_registry.h`.
        +
      • +
      + + + +
        +
      • +

        RE_INTER

        +
        public static final ProofRule RE_INTER
        +
        Strings – Regular expressions – Intersection + + \[ + + \inferrule{t\in R_1,\,t\in R_2\mid -}{t\in \mathit{re.inter}(R_1,R_2)} + \]
        +
      • +
      + + + +
        +
      • +

        RE_UNFOLD_POS

        +
        public static final ProofRule RE_UNFOLD_POS
        +
        Strings – Regular expressions – Positive Unfold + + \[ + + \inferrule{t\in R\mid -}{F} + \] + where \(F\) corresponds to the one-step unfolding of the premise. + This is implemented by \(\texttt{RegExpOpr::reduceRegExpPos}(t\in R)\).
        +
      • +
      + + + +
        +
      • +

        RE_UNFOLD_NEG

        +
        public static final ProofRule RE_UNFOLD_NEG
        +
        Strings – Regular expressions – Negative Unfold + + \[ + + \inferrule{t \not \in \mathit{re}.\text{*}(R) \mid -}{t \neq \ \epsilon \ \wedge \forall L. L \leq 0 \vee \mathit{str.len}(t) < L \vee \mathit{pre}(t, L) \not \in R \vee \mathit{suf}(t, L) \not \in \mathit{re}.\text{*}(R)} + \] + Or alternatively for regular expression concatenation: + + \[ + + \inferrule{t \not \in \mathit{re}.\text{++}(R_1, \ldots, R_n)\mid -}{\forall L. L < 0 \vee \mathit{str.len}(t) < L \vee \mathit{pre}(t, L) \not \in R_1 \vee \mathit{suf}(t, L) \not \in \mathit{re}.\text{++}(R_2, \ldots, R_n)} + \] + Note that in either case the varaible \(L\) has type \(Int\) and + name `"@var.str_index"`.
        +
      • +
      + + + +
        +
      • +

        RE_UNFOLD_NEG_CONCAT_FIXED

        +
        public static final ProofRule RE_UNFOLD_NEG_CONCAT_FIXED
        +
        Strings – Regular expressions – Unfold negative concatenation, fixed + + .. math. + + \inferrule{t\not\in \mathit{re}.\text{re.++}(r_1, \ldots, r_n) \mid \bot}{ + \mathit{pre}(t, L) \not \in r_1 \vee \mathit{suf}(t, L) \not \in \mathit{re}.\text{re.++}(r_2, \ldots, r_n)} + + where \(r_1\) has fixed length \(L\). + + or alternatively for the reverse: + + + \[ + + \inferrule{t \not \in \mathit{re}.\text{re.++}(r_1, \ldots, r_n) \mid \top}{ + \mathit{suf}(t, str.len(t) - L) \not \in r_n \vee + \mathit{pre}(t, str.len(t) - L) \not \in \mathit{re}.\text{re.++}(r_1, \ldots, r_{n-1})} + \] + where \(r_n\) has fixed length \(L\).
        +
      • +
      + + + +
        +
      • +

        STRING_CODE_INJ

        +
        public static final ProofRule STRING_CODE_INJ
        +
        Strings – Code points + + \[ + + \inferrule{-\mid t,s}{\mathit{to\_code}(t) = -1 \vee \mathit{to\_code}(t) \neq + \mathit{to\_code}(s) \vee t = s} + \]
        +
      • +
      + + + +
        +
      • +

        STRING_SEQ_UNIT_INJ

        +
        public static final ProofRule STRING_SEQ_UNIT_INJ
        +
        Strings – Sequence unit + + \[ + + \inferrule{\mathit{unit}(x) = \mathit{unit}(y)\mid -}{x = y} + \] + Also applies to the case where \(\mathit{unit}(y)\) is a constant + sequence of length one.
        +
      • +
      + + + +
        +
      • +

        STRING_EXT

        +
        public static final ProofRule STRING_EXT
        +
        Strings – Extensionality + + \[ + + \inferrule{s \neq t\mid -} + {\mathit{seq.len}(s) \neq \mathit{seq.len}(t) \vee (\mathit{seq.nth}(s,k)\neq\mathit{set.nth}(t,k) \wedge 0 \leq k \wedge k < \mathit{seq.len}(s))} + \] + where \(s,t\) are terms of sequence type, \(k\) is the + \(\texttt{STRINGS_DEQ_DIFF}\) skolem for \(s,t\). Alternatively, + if \(s,t\) are terms of string type, we use + \(\mathit{seq.substr}(s,k,1)\) instead of \(\mathit{seq.nth}(s,k)\) + and similarly for \(t\).
        +
      • +
      + + + +
        +
      • +

        MACRO_STRING_INFERENCE

        +
        public static final ProofRule MACRO_STRING_INFERENCE
        +
        Strings – (Macro) String inference + + \[ + + \inferrule{?\mid F,\mathit{id},\mathit{isRev},\mathit{exp}}{F} + \] + used to bookkeep an inference that has not yet been converted via + \(\texttt{strings::InferProofCons::convert}\).
        +
      • +
      + + + +
        +
      • +

        MACRO_ARITH_SCALE_SUM_UB

        +
        public static final ProofRule MACRO_ARITH_SCALE_SUM_UB
        +
        Arithmetic – Adding inequalities + + An arithmetic literal is a term of the form \(p \diamond c\) where + \(\diamond \in \{ <, \leq, =, \geq, > \}\), \(p\) a + polynomial and \(c\) a rational constant. + + \[ + \inferrule{l_1 \dots l_n \mid k_1 \dots k_n}{t_1 \diamond t_2} + \] + where \(k_i \in \mathbb{R}, k_i \neq 0\), \(\diamond\) is the + fusion of the \(\diamond_i\) (flipping each if its \(k_i\) is + negative) such that \(\diamond_i \in \{ <, \leq \}\) (this implies that + lower bounds have negative \(k_i\) and upper bounds have positive + \(k_i\)), \(t_1\) is the sum of the scaled polynomials and + \(t_2\) is the sum of the scaled constants: + + \[ + t_1 \colon= k_1 \cdot p_1 + \cdots + k_n \cdot p_n + + t_2 \colon= k_1 \cdot c_1 + \cdots + k_n \cdot c_n + \]
        +
      • +
      + + + +
        +
      • +

        ARITH_MULT_ABS_COMPARISON

        +
        public static final ProofRule ARITH_MULT_ABS_COMPARISON
        +
        Arithmetic – Non-linear multiply absolute value comparison + + \[ + \inferrule{F_1 \dots F_n \mid -}{F} + \] + where \(F\) is of the form + \(\left| t_1 \cdot t_n \right| \diamond \left| s_1 \cdot s_n \right|\). + If \(\diamond\) is \(=\), then each \(F_i\) is + \(\left| t_i \right| = \left| s_i \right|\). + + If \(\diamond\) is \(>\), then + each \(F_i\) is either \(\left| t_i \right| > \left| s_i \right|\) or + \(\left| t_i \right| = \left| s_i \right| \land \left| t_i \right| \neq 0\), + and \(F_1\) is of the former form.
        +
      • +
      + + + +
        +
      • +

        ARITH_SUM_UB

        +
        public static final ProofRule ARITH_SUM_UB
        +
        Arithmetic – Sum upper bounds + + \[ + \inferrule{P_1 \dots P_n \mid -}{L \diamond R} + \] + where \(P_i\) has the form \(L_i \diamond_i R_i\) and + \(\diamond_i \in \{<, \leq, =\}\). Furthermore \(\diamond = <\) if + \(\diamond_i = <\) for any \(i\) and \(\diamond = \leq\) + otherwise, \(L = L_1 + \cdots + L_n\) and \(R = R_1 + \cdots + R_n\).
        +
      • +
      + + + +
        +
      • +

        INT_TIGHT_UB

        +
        public static final ProofRule INT_TIGHT_UB
        +
        Arithmetic – Tighten strict integer upper bounds + + \[ + \inferrule{i < c \mid -}{i \leq \lfloor c \rfloor} + \] + where \(i\) has integer type.
        +
      • +
      + + + +
        +
      • +

        INT_TIGHT_LB

        +
        public static final ProofRule INT_TIGHT_LB
        +
        Arithmetic – Tighten strict integer lower bounds + + \[ + \inferrule{i > c \mid -}{i \geq \lceil c \rceil} + \] + where \(i\) has integer type.
        +
      • +
      + + + +
        +
      • +

        ARITH_TRICHOTOMY

        +
        public static final ProofRule ARITH_TRICHOTOMY
        +
        Arithmetic – Trichotomy of the reals + + \[ + \inferrule{A, B \mid -}{C} + \] + where \(\neg A, \neg B, C\) are \(x < c, x = c, x > c\) in some order. + Note that \(\neg\) here denotes arithmetic negation, i.e., flipping \(\geq\) to \(<\) etc.
        +
      • +
      + + + +
        +
      • +

        ARITH_REDUCTION

        +
        public static final ProofRule ARITH_REDUCTION
        +
        Arithmetic – Reduction + + \[ + \inferrule{- \mid t}{F} + \] + where \(t\) is an application of an extended arithmetic operator (e.g. + division, modulus, cosine, sqrt, is_int, to_int) and \(F\) is the + reduction predicate for \(t\). In other words, \(F\) is a + predicate that is used to reduce reasoning about \(t\) to reasoning + about the core operators of arithmetic. + + In detail, \(F\) is implemented by + \(\texttt{arith::OperatorElim::getAxiomFor(t)}\), see + :cvc5src:`theory/arith/operator_elim.h`.
        +
      • +
      + + + +
        +
      • +

        ARITH_POLY_NORM

        +
        public static final ProofRule ARITH_POLY_NORM
        +
        Arithmetic – Polynomial normalization + + \[ + \inferrule{- \mid t = s}{t = s} + \] + where \(\texttt{arith::PolyNorm::isArithPolyNorm(t, s)} = \top\). This + method normalizes polynomials \(s\) and \(t\) over arithmetic or + bitvectors.
        +
      • +
      + + + +
        +
      • +

        ARITH_POLY_NORM_REL

        +
        public static final ProofRule ARITH_POLY_NORM_REL
        +
        Arithmetic – Polynomial normalization for relations + + .. math. + \inferrule{c_x \cdot (x_1 - x_2) = c_y \cdot (y_1 - y_2) \mid \diamond} + {(x_1 \diamond x_2) = (y_1 \diamond y_2)} + + where \(\diamond \in \{<, \leq, =, \geq, >\}\) for arithmetic and + \(\diamond \in \{=\}\) for bitvectors. \(c_x\) and \(c_y\) are + scaling factors. For \(<, \leq, \geq, >\), the scaling factors have the + same sign. For bitvectors, they are set to \(1\). + + If \(c_x\) has type \(Real\) and \(x_1, x_2\) are of type + \(Int\), then \((x_1 - x_2)\) is wrapped in an application of + `to_real`, similarly for \((y_1 - y_2)\).
        +
      • +
      + + + +
        +
      • +

        ARITH_MULT_SIGN

        +
        public static final ProofRule ARITH_MULT_SIGN
        +
        Arithmetic – Sign inference + + \[ + \inferrule{- \mid f_1 \dots f_k, m}{(f_1 \land \dots \land f_k) \rightarrow m \diamond 0} + \] + where \(f_1 \dots f_k\) are variables compared to zero (less, greater + or not equal), \(m\) is a monomial from these variables and + \(\diamond\) is the comparison (less or equal) that results from the + signs of the variables. All variables with even exponent in \(m\) + should be given as not equal to zero while all variables with odd exponent + in \(m\) should be given as less or greater than zero.
        +
      • +
      + + + +
        +
      • +

        ARITH_MULT_POS

        +
        public static final ProofRule ARITH_MULT_POS
        +
        Arithmetic – Multiplication with positive factor + + \[ + \inferrule{- \mid m, l \diamond r}{(m > 0 \land l \diamond r) \rightarrow m \cdot l \diamond m \cdot r} + \] + where \(\diamond\) is a relation symbol.
        +
      • +
      + + + +
        +
      • +

        ARITH_MULT_NEG

        +
        public static final ProofRule ARITH_MULT_NEG
        +
        Arithmetic – Multiplication with negative factor + + \[ + \inferrule{- \mid m, l \diamond r}{(m < 0 \land l \diamond r) \rightarrow m \cdot l \diamond_{inv} m \cdot r} + \] + where \(\diamond\) is a relation symbol and \(\diamond_{inv}\) the + inverted relation symbol.
        +
      • +
      + + + +
        +
      • +

        ARITH_MULT_TANGENT

        +
        public static final ProofRule ARITH_MULT_TANGENT
        +
        Arithmetic – Multiplication tangent plane + + \[ + \inferruleSC{- \mid x, y, a, b, \sigma}{(t \leq tplane) = ((x \leq a \land y \geq b) \lor (x \geq a \land y \leq b))}{if $\sigma = \bot$} + + \inferruleSC{- \mid x, y, a, b, \sigma}{(t \geq tplane) = ((x \leq a \land y \leq b) \lor (x \geq a \land y \geq b))}{if $\sigma = \top$} + \] + where \(x,y\) are real terms (variables or extended terms), + \(t = x \cdot y\), \(a,b\) are real + constants, \(\sigma \in \{ \top, \bot\}\) and \(tplane := b \cdot x + a \cdot y - a \cdot b\) is the tangent plane of \(x \cdot y\) at \((a,b)\).
        +
      • +
      + + + +
        +
      • +

        ARITH_TRANS_PI

        +
        public static final ProofRule ARITH_TRANS_PI
        +
        Arithmetic – Transcendentals – Assert bounds on Pi + + \[ + \inferrule{- \mid l, u}{\texttt{real.pi} \geq l \land \texttt{real.pi} + \leq u} + \] + where \(l,u\) are valid lower and upper bounds on \(\pi\).
        +
      • +
      + + + +
        +
      • +

        ARITH_TRANS_EXP_NEG

        +
        public static final ProofRule ARITH_TRANS_EXP_NEG
        +
        Arithmetic – Transcendentals – Exp at negative values + + \[ + \inferrule{- \mid t}{(t < 0) \leftrightarrow (\exp(t) < 1)} + \]
        +
      • +
      + + + +
        +
      • +

        ARITH_TRANS_EXP_POSITIVITY

        +
        public static final ProofRule ARITH_TRANS_EXP_POSITIVITY
        +
        Arithmetic – Transcendentals – Exp is always positive + + \[ + \inferrule{- \mid t}{\exp(t) > 0} + \]
        +
      • +
      + + + +
        +
      • +

        ARITH_TRANS_EXP_SUPER_LIN

        +
        public static final ProofRule ARITH_TRANS_EXP_SUPER_LIN
        +
        Arithmetic – Transcendentals – Exp grows super-linearly for positive + values + + \[ + \inferrule{- \mid t}{t \leq 0 \lor \exp(t) > t+1} + \]
        +
      • +
      + + + +
        +
      • +

        ARITH_TRANS_EXP_ZERO

        +
        public static final ProofRule ARITH_TRANS_EXP_ZERO
        +
        Arithmetic – Transcendentals – Exp at zero + + \[ + \inferrule{- \mid t}{(t=0) \leftrightarrow (\exp(t) = 1)} + \]
        +
      • +
      + + + +
        +
      • +

        ARITH_TRANS_EXP_APPROX_ABOVE_NEG

        +
        public static final ProofRule ARITH_TRANS_EXP_APPROX_ABOVE_NEG
        +
        Arithmetic – Transcendentals – Exp is approximated from above for + negative values + + \[ + \inferrule{- \mid d,t,l,u}{(t \geq l \land t \leq u) \rightarrow exp(t) + \leq \texttt{secant}(\exp, l, u, t)} + \] + where \(d\) is an even positive number, \(t\) an arithmetic term + and \(l,u\) are lower and upper bounds on \(t\). Let \(p\) be + the \(d\)'th taylor polynomial at zero (also called the Maclaurin + series) of the exponential function. \(\texttt{secant}(\exp, l, u, t)\) + denotes the secant of \(p\) from \((l, \exp(l))\) to \((u, + \exp(u))\) evaluated at \(t\), calculated as follows: + + \[ + \frac{p(l) - p(u)}{l - u} \cdot (t - l) + p(l) + \] + The lemma states that if \(t\) is between \(l\) and \(u\), then + \(\exp(t\) is below the secant of \(p\) from \(l\) to + \(u\).
        +
      • +
      + + + +
        +
      • +

        ARITH_TRANS_EXP_APPROX_ABOVE_POS

        +
        public static final ProofRule ARITH_TRANS_EXP_APPROX_ABOVE_POS
        +
        Arithmetic – Transcendentals – Exp is approximated from above for + positive values + + \[ + \inferrule{- \mid d,t,l,u}{(t \geq l \land t \leq u) \rightarrow exp(t) + \leq \texttt{secant-pos}(\exp, l, u, t)} + \] + where \(d\) is an even positive number, \(t\) an arithmetic term + and \(l,u\) are lower and upper bounds on \(t\). Let \(p^*\) be + a modification of the \(d\)'th taylor polynomial at zero (also called + the Maclaurin series) of the exponential function as follows where + \(p(d-1)\) is the regular Maclaurin series of degree \(d-1\): + + \[ + p^* := p(d-1) \cdot \frac{1 + t^n}{n!} + \] + \(\texttt{secant-pos}(\exp, l, u, t)\) denotes the secant of \(p\) + from \((l, \exp(l))\) to \((u, \exp(u))\) evaluated at \(t\), + calculated as follows: + + \[ + \frac{p(l) - p(u)}{l - u} \cdot (t - l) + p(l) + \] + The lemma states that if \(t\) is between \(l\) and \(u\), then + \(\exp(t\) is below the secant of \(p\) from \(l\) to + \(u\).
        +
      • +
      + + + +
        +
      • +

        ARITH_TRANS_EXP_APPROX_BELOW

        +
        public static final ProofRule ARITH_TRANS_EXP_APPROX_BELOW
        +
        Arithmetic – Transcendentals – Exp is approximated from below + + \[ + \inferrule{- \mid d,c,t}{t \geq c \rightarrow exp(t) \geq \texttt{maclaurin}(\exp, d, c)} + \] + where \(d\) is an odd positive number, \(t\) an arithmetic term and + \(\texttt{maclaurin}(\exp, d, c)\) is the \(d\)'th taylor + polynomial at zero (also called the Maclaurin series) of the exponential + function evaluated at \(c\). The Maclaurin series for the exponential + function is the following: + + \[ + \exp(x) = \sum_{n=0}^{\infty} \frac{x^n}{n!} + \]
        +
      • +
      + + + +
        +
      • +

        ARITH_TRANS_SINE_BOUNDS

        +
        public static final ProofRule ARITH_TRANS_SINE_BOUNDS
        +
        Arithmetic – Transcendentals – Sine is always between -1 and 1 + + \[ + \inferrule{- \mid t}{\sin(t) \leq 1 \land \sin(t) \geq -1} + \]
        +
      • +
      + + + +
        +
      • +

        ARITH_TRANS_SINE_SHIFT

        +
        public static final ProofRule ARITH_TRANS_SINE_SHIFT
        +
        Arithmetic – Transcendentals – Sine is shifted to -pi...pi + + \[ + \inferrule{- \mid x}{-\pi \leq y \leq \pi \land \sin(y) = \sin(x) + \land (\ite{-\pi \leq x \leq \pi}{x = y}{x = y + 2 \pi s})} + \] + where \(x\) is the argument to sine, \(y\) is a new real skolem + that is \(x\) shifted into \(-\pi \dots \pi\) and \(s\) is a + new integer skolem that is the number of phases \(y\) is shifted. + In particular, \(y\) is the + TRANSCENDENTAL_PURIFY_ARG <cvc5.SkolemId.TRANSCENDENTAL_PURIFY_ARG> + skolem for \(\sin(x)\) and \(s\) is the + TRANSCENDENTAL_SINE_PHASE_SHIFT <cvc5.SkolemId.TRANSCENDENTAL_SINE_PHASE_SHIFT> + skolem for \(x\).
        +
      • +
      + + + +
        +
      • +

        ARITH_TRANS_SINE_SYMMETRY

        +
        public static final ProofRule ARITH_TRANS_SINE_SYMMETRY
        +
        Arithmetic – Transcendentals – Sine is symmetric with respect to + negation of the argument + + \[ + \inferrule{- \mid t}{\sin(t) - \sin(-t) = 0} + \]
        +
      • +
      + + + +
        +
      • +

        ARITH_TRANS_SINE_TANGENT_ZERO

        +
        public static final ProofRule ARITH_TRANS_SINE_TANGENT_ZERO
        +
        Arithmetic – Transcendentals – Sine is bounded by the tangent at zero + + .. math. + \inferrule{- \mid t}{(t > 0 \rightarrow \sin(t) < t) \land (t < 0 + \rightarrow \sin(t) > t)}
        +
      • +
      + + + +
        +
      • +

        ARITH_TRANS_SINE_TANGENT_PI

        +
        public static final ProofRule ARITH_TRANS_SINE_TANGENT_PI
        +
        Arithmetic – Transcendentals – Sine is bounded by the tangents at -pi + and pi + + .. math. + \inferrule{- \mid t}{(t > -\pi \rightarrow \sin(t) > -\pi - t) \land (t < + \pi \rightarrow \sin(t) < \pi - t)}
        +
      • +
      + + + +
        +
      • +

        ARITH_TRANS_SINE_APPROX_ABOVE_NEG

        +
        public static final ProofRule ARITH_TRANS_SINE_APPROX_ABOVE_NEG
        +
        Arithmetic – Transcendentals – Sine is approximated from above for + negative values + + \[ + \inferrule{- \mid d,t,lb,ub,l,u}{(t \geq lb land t \leq ub) \rightarrow + \sin(t) \leq \texttt{secant}(\sin, l, u, t)} + \] + where \(d\) is an even positive number, \(t\) an arithmetic term, + \(lb,ub\) are symbolic lower and upper bounds on \(t\) (possibly + containing \(\pi\)) and \(l,u\) the evaluated lower and upper + bounds on \(t\). Let \(p\) be the \(d\)'th taylor polynomial at + zero (also called the Maclaurin series) of the sine function. + \(\texttt{secant}(\sin, l, u, t)\) denotes the secant of \(p\) from + \((l, \sin(l))\) to \((u, \sin(u))\) evaluated at \(t\), + calculated as follows: + + \[ + \frac{p(l) - p(u)}{l - u} \cdot (t - l) + p(l) + \] + The lemma states that if \(t\) is between \(l\) and \(u\), then + \(\sin(t)\) is below the secant of \(p\) from \(l\) to + \(u\).
        +
      • +
      + + + +
        +
      • +

        ARITH_TRANS_SINE_APPROX_ABOVE_POS

        +
        public static final ProofRule ARITH_TRANS_SINE_APPROX_ABOVE_POS
        +
        Arithmetic – Transcendentals – Sine is approximated from above for + positive values + + \[ + \inferrule{- \mid d,t,c,lb,ub}{(t \geq lb land t \leq ub) \rightarrow + \sin(t) \leq \texttt{upper}(\sin, c)} + \] + where \(d\) is an even positive number, \(t\) an arithmetic term, + \(c\) an arithmetic constant and \(lb,ub\) are symbolic lower and + upper bounds on \(t\) (possibly containing \(\pi\)). Let \(p\) + be the \(d\)'th taylor polynomial at zero (also called the Maclaurin + series) of the sine function. \(\texttt{upper}(\sin, c)\) denotes the + upper bound on \(\sin(c)\) given by \(p\) and \(lb,up\) such + that \(\sin(t)\) is the maximum of the sine function on + \((lb,ub)\).
        +
      • +
      + + + +
        +
      • +

        ARITH_TRANS_SINE_APPROX_BELOW_NEG

        +
        public static final ProofRule ARITH_TRANS_SINE_APPROX_BELOW_NEG
        +
        Arithmetic – Transcendentals – Sine is approximated from below for + negative values + + \[ + \inferrule{- \mid d,t,c,lb,ub}{(t \geq lb land t \leq ub) \rightarrow + \sin(t) \geq \texttt{lower}(\sin, c)} + \] + where \(d\) is an even positive number, \(t\) an arithmetic term, + \(c\) an arithmetic constant and \(lb,ub\) are symbolic lower and + upper bounds on \(t\) (possibly containing \(\pi\)). Let \(p\) + be the \(d\)'th taylor polynomial at zero (also called the Maclaurin + series) of the sine function. \(\texttt{lower}(\sin, c)\) denotes the + lower bound on \(\sin(c)\) given by \(p\) and \(lb,up\) such + that \(\sin(t)\) is the minimum of the sine function on + \((lb,ub)\).
        +
      • +
      + + + +
        +
      • +

        ARITH_TRANS_SINE_APPROX_BELOW_POS

        +
        public static final ProofRule ARITH_TRANS_SINE_APPROX_BELOW_POS
        +
        Arithmetic – Transcendentals – Sine is approximated from below for + positive values + + \[ + \inferrule{- \mid d,t,lb,ub,l,u}{(t \geq lb land t \leq ub) \rightarrow + \sin(t) \geq \texttt{secant}(\sin, l, u, t)} + \] + where \(d\) is an even positive number, \(t\) an arithmetic term, + \(lb,ub\) are symbolic lower and upper bounds on \(t\) (possibly + containing \(\pi\)) and \(l,u\) the evaluated lower and upper + bounds on \(t\). Let \(p\) be the \(d\)'th taylor polynomial at + zero (also called the Maclaurin series) of the sine function. + \(\texttt{secant}(\sin, l, u, t)\) denotes the secant of \(p\) from + \((l, \sin(l))\) to \((u, \sin(u))\) evaluated at \(t\), + calculated as follows: + + \[ + \frac{p(l) - p(u)}{l - u} \cdot (t - l) + p(l) + \] + The lemma states that if \(t\) is between \(l\) and \(u\), then + \(\sin(t)\) is above the secant of \(p\) from \(l\) to + \(u\).
        +
      • +
      + + + +
        +
      • +

        LFSC_RULE

        +
        public static final ProofRule LFSC_RULE
        +
        External – LFSC + + Place holder for LFSC rules. + + \[ + \inferrule{P_1, \dots, P_n\mid \texttt{id}, Q, A_1,\dots, A_m}{Q} + \] + Note that the premises and arguments are arbitrary. It's expected that + \(\texttt{id}\) refer to a proof rule in the external LFSC calculus.
        +
      • +
      + + + +
        +
      • +

        ALETHE_RULE

        +
        public static final ProofRule ALETHE_RULE
        +
        External – Alethe + + Place holder for Alethe rules. + + \[ + \inferrule{P_1, \dots, P_n\mid \texttt{id}, Q, Q', A_1,\dots, A_m}{Q} + \] + Note that the premises and arguments are arbitrary. It's expected that + \(\texttt{id}\) refer to a proof rule in the external Alethe calculus, + and that \(Q'\) be the representation of Q to be printed by the Alethe + printer.
        +
      • +
      + + + +
        +
      • +

        UNKNOWN

        +
        public static final ProofRule UNKNOWN
        +
        External – Alethe + + Place holder for Alethe rules. + + \[ + \inferrule{P_1, \dots, P_n\mid \texttt{id}, Q, Q', A_1,\dots, A_m}{Q} + \] + Note that the premises and arguments are arbitrary. It's expected that + \(\texttt{id}\) refer to a proof rule in the external Alethe calculus, + and that \(Q'\) be the representation of Q to be printed by the Alethe + printer.
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        values

        +
        public static ProofRule[] values()
        +
        Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +
        +for (ProofRule c : ProofRule.values())
        +    System.out.println(c);
        +
        +
        +
        Returns:
        +
        an array containing the constants of this enum type, in the order they are declared
        +
        +
      • +
      + + + +
        +
      • +

        valueOf

        +
        public static ProofRule valueOf​(java.lang.String name)
        +
        Returns the enum constant of this type with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)
        +
        +
        Parameters:
        +
        name - the name of the enum constant to be returned.
        +
        Returns:
        +
        the enum constant with the specified name
        +
        Throws:
        +
        java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
        +
        java.lang.NullPointerException - if the argument is null
        +
        +
      • +
      + + + + + + + +
        +
      • +

        getValue

        +
        public int getValue()
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Result.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Result.html new file mode 100644 index 0000000000..7072bcf467 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Result.html @@ -0,0 +1,561 @@ + + + + + +Result + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Class Result

+
+
+ +
+
    +
  • +
    +
    public class Result
    +extends java.lang.Object
    +
    Encapsulation of a three-valued solver result, with explanations.
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Field Summary

      + + + + + + + + + + + + +
      Fields 
      Modifier and TypeFieldDescription
      protected longpointer 
      +
    • +
    +
    + +
    +
      +
    • + + +

      Constructor Summary

      + + + + + + + + + + +
      Constructors 
      ConstructorDescription
      Result() +
      Null result
      +
      +
    • +
    +
    + +
    + +
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        pointer

        +
        protected long pointer
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        Result

        +
        public Result()
        +
        Null result
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        deletePointer

        +
        protected void deletePointer​(long pointer)
        +
      • +
      + + + +
        +
      • +

        isNull

        +
        public boolean isNull()
        +
        +
        Returns:
        +
        True if Result is empty, i.e., a nullary Result, and not an actual + result returned from a checkSat() (and friends) query.
        +
        +
      • +
      + + + +
        +
      • +

        isSat

        +
        public boolean isSat()
        +
        +
        Returns:
        +
        True if query was a satisfiable checkSat() or checkSatAssuming() + query.
        +
        +
      • +
      + + + +
        +
      • +

        isUnsat

        +
        public boolean isUnsat()
        +
        +
        Returns:
        +
        True if query was an unsatisfiable checkSat() or + checkSatAssuming() query.
        +
        +
      • +
      + + + +
        +
      • +

        isUnknown

        +
        public boolean isUnknown()
        +
        +
        Returns:
        +
        True if query was a checkSat() or checkSatAssuming() query and + cvc5 was not able to determine (un)satisfiability.
        +
        +
      • +
      + + + +
        +
      • +

        equals

        +
        public boolean equals​(java.lang.Object r)
        +
        Operator overloading for equality of two results.
        +
        +
        Overrides:
        +
        equals in class java.lang.Object
        +
        Parameters:
        +
        r - The result to compare to for equality.
        +
        Returns:
        +
        True if the results are equal.
        +
        +
      • +
      + + + +
        +
      • +

        getUnknownExplanation

        +
        public UnknownExplanation getUnknownExplanation()
        +
        Get an explanation for an unknown query result.
        +
        +
        Returns:
        +
        The explanation.
        +
        +
      • +
      + + + +
        +
      • +

        toString

        +
        protected java.lang.String toString​(long pointer)
        +
        +
        Returns:
        +
        A string representation of this result.
        +
        +
      • +
      + + + +
        +
      • +

        hashCode

        +
        public int hashCode()
        +
        Get the hash value of a result.
        +
        +
        Overrides:
        +
        hashCode in class java.lang.Object
        +
        Returns:
        +
        The hash value.
        +
        +
      • +
      + + + +
        +
      • +

        getPointer

        +
        public long getPointer()
        +
      • +
      + + + +
        +
      • +

        deletePointer

        +
        public void deletePointer()
        +
      • +
      + + + +
        +
      • +

        toString

        +
        public java.lang.String toString()
        +
        +
        Overrides:
        +
        toString in class java.lang.Object
        +
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/RoundingMode.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/RoundingMode.html new file mode 100644 index 0000000000..707e18829d --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/RoundingMode.html @@ -0,0 +1,482 @@ + + + + + +RoundingMode + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Enum RoundingMode

+
+
+ +
+
    +
  • +
    +
    All Implemented Interfaces:
    +
    java.io.Serializable, java.lang.Comparable<RoundingMode>
    +
    +
    +
    public enum RoundingMode
    +extends java.lang.Enum<RoundingMode>
    +
  • +
+
+
+
    +
  • + +
    + +
    + +
    +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and TypeMethodDescription
      static RoundingModefromInt​(int value) 
      intgetValue() 
      static RoundingModevalueOf​(java.lang.String name) +
      Returns the enum constant of this type with the specified name.
      +
      static RoundingMode[]values() +
      Returns an array containing the constants of this enum type, in +the order they are declared.
      +
      +
        +
      • + + +

        Methods inherited from class java.lang.Enum

        +clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
      • +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +getClass, notify, notifyAll, wait, wait, wait
      • +
      +
    • +
    +
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Enum Constant Detail

      + + + +
        +
      • +

        ROUND_NEAREST_TIES_TO_EVEN

        +
        public static final RoundingMode ROUND_NEAREST_TIES_TO_EVEN
        +
        Round to the nearest even number. + + If the two nearest floating-point numbers bracketing an unrepresentable + infinitely precise result are equally near, the one with an even least + significant digit will be delivered.
        +
      • +
      + + + +
        +
      • +

        ROUND_TOWARD_POSITIVE

        +
        public static final RoundingMode ROUND_TOWARD_POSITIVE
        +
        Round towards positive infinity (SMT-LIB: +oo). + + The result shall be the format's floating-point number (possibly +oo) + closest to and no less than the infinitely precise result.
        +
      • +
      + + + +
        +
      • +

        ROUND_TOWARD_NEGATIVE

        +
        public static final RoundingMode ROUND_TOWARD_NEGATIVE
        +
        Round towards negative infinity (-oo). + + The result shall be the format's floating-point number (possibly -oo) + closest to and no less than the infinitely precise result.
        +
      • +
      + + + +
        +
      • +

        ROUND_TOWARD_ZERO

        +
        public static final RoundingMode ROUND_TOWARD_ZERO
        +
        Round towards zero. + + The result shall be the format's floating-point number closest to and no + greater in magnitude than the infinitely precise result.
        +
      • +
      + + + +
        +
      • +

        ROUND_NEAREST_TIES_TO_AWAY

        +
        public static final RoundingMode ROUND_NEAREST_TIES_TO_AWAY
        +
        Round to the nearest number away from zero. + + If the two nearest floating-point numbers bracketing an unrepresentable + infinitely precise result are equally near), the one with larger magnitude + will be selected.
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        values

        +
        public static RoundingMode[] values()
        +
        Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +
        +for (RoundingMode c : RoundingMode.values())
        +    System.out.println(c);
        +
        +
        +
        Returns:
        +
        an array containing the constants of this enum type, in the order they are declared
        +
        +
      • +
      + + + +
        +
      • +

        valueOf

        +
        public static RoundingMode valueOf​(java.lang.String name)
        +
        Returns the enum constant of this type with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)
        +
        +
        Parameters:
        +
        name - the name of the enum constant to be returned.
        +
        Returns:
        +
        the enum constant with the specified name
        +
        Throws:
        +
        java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
        +
        java.lang.NullPointerException - if the argument is null
        +
        +
      • +
      + + + + + + + +
        +
      • +

        getValue

        +
        public int getValue()
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/SkolemId.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/SkolemId.html new file mode 100644 index 0000000000..33dd23b00e --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/SkolemId.html @@ -0,0 +1,2272 @@ + + + + + +SkolemId + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Enum SkolemId

+
+
+ +
+
    +
  • +
    +
    All Implemented Interfaces:
    +
    java.io.Serializable, java.lang.Comparable<SkolemId>
    +
    +
    +
    public enum SkolemId
    +extends java.lang.Enum<SkolemId>
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Enum Constant Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Enum Constants 
      Enum ConstantDescription
      ARITH_VTS_DELTA +
      Used to reason about virtual term substitution.
      +
      ARITH_VTS_DELTA_FREE +
      Used to reason about virtual term substitution.
      +
      ARITH_VTS_INFINITY +
      Used to reason about virtual term substitution.
      +
      ARITH_VTS_INFINITY_FREE +
      Used to reason about virtual term substitution.
      +
      ARRAY_DEQ_DIFF +
      The array diff skolem, which is the witness k for the inference + (=> (not (= A B)) (not (= (select A k) (select B k)))).
      +
      BAGS_CARD_COMBINE +
      An uninterpreted function for bag.card operator: + To compute (bag.card A), we need a function that + counts multiplicities of distinct elements.
      +
      BAGS_CHOOSE +
      An interpreted function uf for bag.choose operator: + (bag.choose A) is replaced by (uf A) along with the inference + that (>= (bag.count (uf A) A) 1) when A is non-empty.
      +
      BAGS_DEQ_DIFF +
      The bag diff skolem, which is the witness k for the inference + (=> (not (= A B)) (not (= (bag.count k A) (bag.count k B)))).
      +
      BAGS_DISTINCT_ELEMENTS +
      An uninterpreted function for distinct elements of a bag A, which returns + the n^th distinct element of the bag.
      +
      BAGS_DISTINCT_ELEMENTS_SIZE +
      A skolem variable for the size of the distinct elements of a bag A.
      +
      BAGS_DISTINCT_ELEMENTS_UNION_DISJOINT +
      An uninterpreted function for the union of distinct elements + in a bag (Bag T).
      +
      BAGS_FOLD_CARD +
      An uninterpreted function for bag.fold operator: + To compute (bag.fold f t A), we need to guess the cardinality n of + bag A using a skolem function with BAGS_FOLD_CARD id.
      +
      BAGS_FOLD_COMBINE +
      An uninterpreted function for bag.fold operator: + To compute (bag.fold f t A), we need a function that + accumulates intermidiate values.
      +
      BAGS_FOLD_ELEMENTS +
      An uninterpreted function for bag.fold operator: + To compute (bag.fold f t A), we need a function for + elements of A.
      +
      BAGS_FOLD_UNION_DISJOINT +
      An uninterpreted function for bag.fold operator: + To compute (bag.fold f t A), we need a function for + elements of A which is given by elements defined in + BAGS_FOLD_ELEMENTS.
      +
      BAGS_MAP_INDEX +
      A skolem variable for the index that is unique per terms + (bag.map f A), y, e where: + f: (-> E T), + A: (Bag E), + y: T, + e: E + + + Number of skolem indices: 5 + + 1: a map term of the form (bag.map f A).
      +
      BAGS_MAP_PREIMAGE_INJECTIVE +
      A skolem for the preimage of an element y in (bag.map f A) such that + (= (f x) y) where f: (-> E T) is an injective function.
      +
      BAGS_MAP_SUM +
      An uninterpreted function for bag.map operator: + If bag A is {uf(1), ..., uf(n)} (see BAGS_DISTINCT_ELEMENTS}, + then the multiplicity of an element y in a bag (bag.map f A) is sum(n), + where sum: (-> Int Int) is a skolem function such that: + sum(0) = 0 + sum(i) = sum (i-1) + (bag.count (uf i) A) + + + Number of skolem indices: 3 + + 1: the function f of type (-> E T).
      +
      BV_EMPTY +
      The empty bitvector.
      +
      BV_TO_INT_UF +
      A skolem function introduced by the int-blaster.
      +
      DIV_BY_ZERO +
      The function for division by zero.
      +
      FP_MAX_ZERO +
      A skolem function that is unique per floating-point sort, introduced for + the undefined zero case of fp.max.
      +
      FP_MIN_ZERO +
      A skolem function that is unique per floating-point sort, introduced for + the undefined zero case of fp.min.
      +
      FP_TO_REAL +
      A skolem function introduced for the undefined of fp.to_real that is + unique per floating-point sort.
      +
      FP_TO_SBV +
      A skolem function introduced for the undefined out-ouf-bounds case of + fp.to_sbv that is unique per floating-point sort and sort of the + arguments to the operator.
      +
      FP_TO_UBV +
      A skolem function introduced for the undefined out-ouf-bounds case of + fp.to_ubv that is unique per floating-point sort and sort of the + arguments to the operator.
      +
      GROUND_TERM +
      An arbitrary ground term of a given sort.
      +
      HO_DEQ_DIFF +
      The higher-roder diff skolem, which is the witness k for the inference + (=> (not (= A B)) (not (= (A k1 ... kn) (B k1 ... kn)))).
      +
      INT_DIV_BY_ZERO +
      The function for integer division by zero.
      +
      INTERNAL +
      The identifier of the skolem is not exported.
      +
      MOD_BY_ZERO +
      The function for integer modulus by zero.
      +
      NONE +
      Indicates this is not a skolem.
      +
      PURIFY +
      The purification skolem for a term.
      +
      QUANTIFIERS_SKOLEMIZE +
      The n^th skolem for the negation of universally quantified formula Q.
      +
      RE_FIRST_MATCH +
      For string a and regular expression R, this skolem is the string that + the first, shortest match of R was matched to in a.
      +
      RE_FIRST_MATCH_POST +
      For string a and regular expression R, this skolem is the remainder + of a after the first, shortest match of R in a.
      +
      RE_FIRST_MATCH_PRE +
      The next three skolems are used to decompose the match of a regular + expression in string.
      +
      RE_UNFOLD_POS_COMPONENT +
      Regular expression unfold component: if (str.in_re a R), where R is + (re.++ R0 ... Rn), then the RE_UNFOLD_POS_COMPONENT for indices + (a,R,i) is a string ki such that (= a (str.++ k0 ... kn)) and + (str.in_re k0 R0) for i = 0, ..., n.
      +
      RELATIONS_GROUP_PART +
      Given a group term ((_ rel.group n1 ... nk) A) of type + (Set (Relation T)) this skolem maps elements of A to their parts in the + resulting partition.
      +
      RELATIONS_GROUP_PART_ELEMENT +
      Given a group term ((_ rel.group n1 ...
      +
      SETS_CHOOSE +
      An interpreted function for set.choose operator, where (set.choose A) + is expanded to (uf A) along with the inference + (set.member (uf A) A)) when A is non-empty, + where uf: (-> (Set E) E) is this skolem function, and E is the type of + elements of A.
      +
      SETS_DEQ_DIFF +
      The set diff skolem, which is the witness k for the inference + (=> (not (= A B)) (not (= (set.member k A) (set.member k B)))).
      +
      SETS_FOLD_CARD +
      An uninterpreted function for set.fold operator: + To compute (set.fold f t A), we need to guess the cardinality n of + set A using a skolem function with SETS_FOLD_CARD id.
      +
      SETS_FOLD_COMBINE +
      An uninterpreted function for set.fold operator: + To compute (set.fold f t A), we need a function that + accumulates intermidiate values.
      +
      SETS_FOLD_ELEMENTS +
      An uninterpreted function for set.fold operator: + To compute (set.fold f t A), we need a function for + elements of A.
      +
      SETS_FOLD_UNION +
      An uninterpreted function for set.fold operator: + To compute (set.fold f t A), we need a function for + elements of A which is given by elements defined in + SETS_FOLD_ELEMENTS.
      +
      SETS_MAP_DOWN_ELEMENT +
      A skolem variable that is unique per terms (set.map f A), y which is an + element in (set.map f A).
      +
      SHARED_SELECTOR +
      A shared datatype selector, see Reynolds et.
      +
      STRINGS_DEQ_DIFF +
      Difference index for string disequalities, such that k is the witness for + the inference + (=> (not (= a b)) (not (= (substr a k 1) (substr b k 1)))) + where note that `k` may be out of bounds for at most of a,b.
      +
      STRINGS_ITOS_RESULT +
      A function used to define intermediate results of str.from_int + applications.
      +
      STRINGS_NUM_OCCUR +
      An integer corresponding to the number of times a string occurs in another + string.
      +
      STRINGS_NUM_OCCUR_RE +
      Analogous to STRINGS_NUM_OCCUR, but for regular expressions.
      +
      STRINGS_OCCUR_INDEX +
      A function k such that for x = 0...n, (k x) is the end + index of the x^th occurrence of a string b in string a, where n is the + number of occurrences of b in a, and (= (k 0) 0).
      +
      STRINGS_OCCUR_INDEX_RE +
      Analogous to STRINGS_OCCUR_INDEX, but for regular expressions.
      +
      STRINGS_OCCUR_LEN_RE +
      A function k where for x = 0...n, (k x) is the length of + the x^th occurrence of R in a (excluding matches of empty strings) where R + is a regular expression, n is the number of occurrences of R in a, and + (= (k 0) 0).
      +
      STRINGS_REPLACE_ALL_RESULT +
      A function used to define intermediate results of str.replace_all and + str.replace_re_all applications.
      +
      STRINGS_STOI_NON_DIGIT +
      A position containing a non-digit in a string, used when (str.to_int a) + is equal to -1.
      +
      STRINGS_STOI_RESULT +
      A function used to define intermediate results of str.from_int + applications.
      +
      TABLES_GROUP_PART +
      Given a group term ((_ table.group n1 ... nk) A) of type + (Bag (Table T)), this skolem maps elements of A to their parts in the + resulting partition.
      +
      TABLES_GROUP_PART_ELEMENT +
      Given a group term ((_ table.group n1 ... nk) A) of type + (Bag (Table T)) and a part B of type (Table T), this function + returns a skolem element that is a member of B if B is not empty.
      +
      TRANSCENDENTAL_PURIFY +
      A function introduced to eliminate extended trancendental functions.
      +
      TRANSCENDENTAL_PURIFY_ARG +
      Argument used to purify trancendental function app (f x).
      +
      TRANSCENDENTAL_SINE_PHASE_SHIFT +
      Argument used to reason about the phase shift of arguments to sine.
      +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and TypeMethodDescription
      static SkolemIdfromInt​(int value) 
      intgetValue() 
      static SkolemIdvalueOf​(java.lang.String name) +
      Returns the enum constant of this type with the specified name.
      +
      static SkolemId[]values() +
      Returns an array containing the constants of this enum type, in +the order they are declared.
      +
      +
        +
      • + + +

        Methods inherited from class java.lang.Enum

        +clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
      • +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +getClass, notify, notifyAll, wait, wait, wait
      • +
      +
    • +
    +
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Enum Constant Detail

      + + + +
        +
      • +

        INTERNAL

        +
        public static final SkolemId INTERNAL
        +
        The identifier of the skolem is not exported. These skolems should not + appear in any user-level API calls.
        +
      • +
      + + + +
        +
      • +

        PURIFY

        +
        public static final SkolemId PURIFY
        +
        The purification skolem for a term. This is a variable that is semantically + equivalent to the indexed term t. + +
          +
        • Number of skolem indices: 1 +
            +
          • 1: The term t that this skolem purifies. +
          +
        • +
        • Sort: The sort of t. +
        +
      • +
      + + + +
        +
      • +

        GROUND_TERM

        +
        public static final SkolemId GROUND_TERM
        +
        An arbitrary ground term of a given sort. + +
          +
        • Number of skolem indices: 1 +
            +
          • 1: A term that represents the sort of the term. +
          +
        • +
        • Sort: The sort given by the index. +
        +
      • +
      + + + +
        +
      • +

        ARRAY_DEQ_DIFF

        +
        public static final SkolemId ARRAY_DEQ_DIFF
        +
        The array diff skolem, which is the witness k for the inference + (=> (not (= A B)) (not (= (select A k) (select B k)))). + +
          +
        • Number of skolem indices: 2 +
            +
          • 1: The first array of sort (Array T1 T2). +
          • +
          • 2: The second array of sort (Array T1 T2). +
          +
        • +
        • Sort: T1 +
        +
      • +
      + + + +
        +
      • +

        BV_EMPTY

        +
        public static final SkolemId BV_EMPTY
        +
        The empty bitvector. + +
          +
        • Number of skolem indices: 0 +
        • +
        • Type: (_ BitVec 0) +
        +
      • +
      + + + +
        +
      • +

        DIV_BY_ZERO

        +
        public static final SkolemId DIV_BY_ZERO
        +
        The function for division by zero. This is semantically equivalent to the + SMT-LIB term (lambda ((x Real)) (/ x 0.0)). + +
          +
        • Number of skolem indices: 0 +
        • +
        • Sort: (-> Real Real) +
        +
      • +
      + + + +
        +
      • +

        INT_DIV_BY_ZERO

        +
        public static final SkolemId INT_DIV_BY_ZERO
        +
        The function for integer division by zero. This is semantically equivalent + to the SMT-LIB term (lambda ((x Int)) (div x 0)). + +
          +
        • Number of skolem indices: 0 +
        • +
        • Sort: (-> Int Int) +
        +
      • +
      + + + +
        +
      • +

        MOD_BY_ZERO

        +
        public static final SkolemId MOD_BY_ZERO
        +
        The function for integer modulus by zero. This is semantically equivalent + to the SMT-LIB term (lambda ((x Int)) (mod x 0)). + +
          +
        • Number of skolem indices: 0 +
        • +
        • Sort: (-> Int Int) +
        +
      • +
      + + + +
        +
      • +

        TRANSCENDENTAL_PURIFY

        +
        public static final SkolemId TRANSCENDENTAL_PURIFY
        +
        A function introduced to eliminate extended trancendental functions. + Transcendental functions like sqrt, arccos, arcsin, etc. are replaced + during processing with uninterpreted functions that are unique to + each function. + +
          +
        • Number of skolem indices: 1 +
            +
          • 1: A lambda corresponding to the function, e.g., +
          +
        + `(lambda ((x Real)) (sqrt x))`. +
          +
        • Sort: (-> Real Real) +
        +
      • +
      + + + +
        +
      • +

        TRANSCENDENTAL_PURIFY_ARG

        +
        public static final SkolemId TRANSCENDENTAL_PURIFY_ARG
        +
        Argument used to purify trancendental function app (f x). + For (sin x), this is a variable that is assumed to be in phase with + x that is between -pi and pi. + +
          +
        • Number of skolem indices: 1 +
            +
          • 1: The application of a trancendental function. +
          +
        • +
        • Sort: Real +
        +
      • +
      + + + +
        +
      • +

        TRANSCENDENTAL_SINE_PHASE_SHIFT

        +
        public static final SkolemId TRANSCENDENTAL_SINE_PHASE_SHIFT
        +
        Argument used to reason about the phase shift of arguments to sine. + In particular, this is an integral rational indicating the number of times + \(2\pi\) is added to a real value between \(-\pi\) and \(\pi\) + to obtain the value of argument to sine. + +
          +
        • Number of skolem indices: 1 +
            +
          • 1: The argument to sine. +
          +
        • +
        • Sort: Real +
        +
      • +
      + + + +
        +
      • +

        ARITH_VTS_DELTA

        +
        public static final SkolemId ARITH_VTS_DELTA
        +
        Used to reason about virtual term substitution. This term represents + an infinitesimal. This skolem is expected to appear in instantiations + and immediately be rewritten via virtual term substitution. + +
          +
        • Number of skolem indices: 0 +
        • +
        • Sort: Real +
        +
      • +
      + + + +
        +
      • +

        ARITH_VTS_DELTA_FREE

        +
        public static final SkolemId ARITH_VTS_DELTA_FREE
        +
        Used to reason about virtual term substitution. This term represents + an infinitesimal. Unlike ARITH_VTS_DELTA, this skolem may appear in + lemmas. + +
          +
        • Number of skolem indices: 0 +
        • +
        • Sort: Real +
        +
      • +
      + + + +
        +
      • +

        ARITH_VTS_INFINITY

        +
        public static final SkolemId ARITH_VTS_INFINITY
        +
        Used to reason about virtual term substitution. This term represents + infinity. This skolem is expected to appear in instantiations + and immediately be rewritten via virtual term substitution. + +
          +
        • Number of skolem indices: 0 +
            +
          • 1: A term that represents an arithmetic sort (Int or Real). +
          +
        • +
        • Sort: The sort given by the index. +
        +
      • +
      + + + +
        +
      • +

        ARITH_VTS_INFINITY_FREE

        +
        public static final SkolemId ARITH_VTS_INFINITY_FREE
        +
        Used to reason about virtual term substitution. This term represents + infinity. Unlike ARITH_VTS_INFINITY, this skolem may appear in + lemmas. + +
          +
        • Number of skolem indices: 0 +
            +
          • 1: A term that represents an arithmetic sort (Int or Real). +
          +
        • +
        • Sort: The sort given by the index. +
        +
      • +
      + + + +
        +
      • +

        SHARED_SELECTOR

        +
        public static final SkolemId SHARED_SELECTOR
        +
        A shared datatype selector, see Reynolds et. al. "Datatypes with Shared + Selectors", IJCAR 2018. Represents a selector that can extract fields + of multiple constructors. + +
          +
        • Number of skolem indices: 3 +
            +
          • 1: A term that represents the datatype we are extracting from. +
          • +
          • 2: A term that represents the sort of field we are extracting. +
          • +
          • 3: An integer n such that this shared selector returns the n^th + subfield term of the given sort. +
          +
        • +
        • Sort: A selector sort whose domain is given by first index, + and whose codomain is the given by the second index. +
        +
      • +
      + + + +
        +
      • +

        HO_DEQ_DIFF

        +
        public static final SkolemId HO_DEQ_DIFF
        +
        The higher-roder diff skolem, which is the witness k for the inference + (=> (not (= A B)) (not (= (A k1 ... kn) (B k1 ... kn)))). + +
          +
        • Number of skolem indices: 2 +
            +
          • 1: The first function of sort (-> T1 ... Tn T). +
          • +
          • 2: The second function of sort (-> T1 ... Tn T). +
          • +
          • 3: The argument index i. +
          +
        • +
        • Sort: Ti +
        +
      • +
      + + + +
        +
      • +

        QUANTIFIERS_SKOLEMIZE

        +
        public static final SkolemId QUANTIFIERS_SKOLEMIZE
        +
        The n^th skolem for the negation of universally quantified formula Q. + +
          +
        • Number of skolem indices: 2 +
            +
          • 1: The quantified formula Q. +
          • +
          • 2: The index of the variable in the binder of Q to skolemize. +
          +
        • +
        • Sort: The type of the variable referenced by the second index. +
        +
      • +
      + + + +
        +
      • +

        STRINGS_NUM_OCCUR

        +
        public static final SkolemId STRINGS_NUM_OCCUR
        +
        An integer corresponding to the number of times a string occurs in another + string. This is used to reason about str.replace_all. + +
          +
        • Number of skolem indices: 2 +
            +
          • 1: The first string. +
          • +
          • 2: The second string. +
          +
        • +
        • Sort: Int +
        +
      • +
      + + + +
        +
      • +

        STRINGS_OCCUR_INDEX

        +
        public static final SkolemId STRINGS_OCCUR_INDEX
        +
        A function k such that for x = 0...n, (k x) is the end + index of the x^th occurrence of a string b in string a, where n is the + number of occurrences of b in a, and (= (k 0) 0). This is used to + reason about str.replace_all. + +
          +
        • Number of skolem indices: 2 +
            +
          • 1: The first string. +
          • +
          • 2: The second string. +
          +
        • +
        • Sort: (-> Int Int) +
        +
      • +
      + + + +
        +
      • +

        STRINGS_NUM_OCCUR_RE

        +
        public static final SkolemId STRINGS_NUM_OCCUR_RE
        +
        Analogous to STRINGS_NUM_OCCUR, but for regular expressions. + An integer corresponding to the number of times a regular expression can + be matched in a string. This is used to reason about str.replace_all_re. + +
          +
        • Number of skolem indices: 2 +
            +
          • 1: The string to match. +
          • +
          • 2: The regular expression to find. +
          +
        • +
        • Sort: Int +
        +
      • +
      + + + +
        +
      • +

        STRINGS_OCCUR_INDEX_RE

        +
        public static final SkolemId STRINGS_OCCUR_INDEX_RE
        +
        Analogous to STRINGS_OCCUR_INDEX, but for regular expressions. + A function k such that for x = 0...n, (k x) is the end + index of the x^th occurrence of a regular expression R in string a, where + n is the number of occurrences of R in a, and (= (k 0) 0). This is used + to reason about str.replace_all_re. + +
          +
        • Number of skolem indices: 2 +
            +
          • 1: The string to match. +
          • +
          • 2: The regular expression to find. +
          +
        • +
        • Sort: (-> Int Int) +
        +
      • +
      + + + +
        +
      • +

        STRINGS_OCCUR_LEN_RE

        +
        public static final SkolemId STRINGS_OCCUR_LEN_RE
        +
        A function k where for x = 0...n, (k x) is the length of + the x^th occurrence of R in a (excluding matches of empty strings) where R + is a regular expression, n is the number of occurrences of R in a, and + (= (k 0) 0). + +
          +
        • Number of skolem indices: 2 +
            +
          • 1: The string to match. +
          • +
          • 2: The regular expression to find. +
          +
        • +
        • Sort: (-> Int Int) +
        +
      • +
      + + + +
        +
      • +

        STRINGS_DEQ_DIFF

        +
        public static final SkolemId STRINGS_DEQ_DIFF
        +
        Difference index for string disequalities, such that k is the witness for + the inference + (=> (not (= a b)) (not (= (substr a k 1) (substr b k 1)))) + where note that `k` may be out of bounds for at most of a,b. + +
          +
        • Number of skolem indices: 2 +
            +
          • 1: The first string. +
          • +
          • 2: The second string. +
          +
        • +
        • Sort: Int +
        +
      • +
      + + + +
        +
      • +

        STRINGS_REPLACE_ALL_RESULT

        +
        public static final SkolemId STRINGS_REPLACE_ALL_RESULT
        +
        A function used to define intermediate results of str.replace_all and + str.replace_re_all applications. This denotes a function that denotes the + result of processing the string or sequence after processing the n^th + occurrence of string or match of the regular expression in the given + replace_all term. + +
          +
        • Number of skolem indices: 1 +
            +
          • 1: The application of replace_all or replace_all_re. +
          +
        • +
        • Sort: (-> Int S) where S is either String or (Seq T) for +
        + some T.
        +
      • +
      + + + +
        +
      • +

        STRINGS_ITOS_RESULT

        +
        public static final SkolemId STRINGS_ITOS_RESULT
        +
        A function used to define intermediate results of str.from_int + applications. This is a function k denoting the result + of processing the first n digits of the argument. + +
          +
        • Number of skolem indices: 1 +
            +
          • 1: The argument to str.from_int. +
          +
        • +
        • Sort: (-> Int Int) +
        +
      • +
      + + + +
        +
      • +

        STRINGS_STOI_RESULT

        +
        public static final SkolemId STRINGS_STOI_RESULT
        +
        A function used to define intermediate results of str.from_int + applications. This is a function k of type (-> Int String) denoting the + result of processing the first n characters of the argument. + +
          +
        • Number of skolem indices: 1 +
            +
          • 1: The argument to str.to_int. +
          +
        • +
        • Sort: (-> Int String) +
        +
      • +
      + + + +
        +
      • +

        STRINGS_STOI_NON_DIGIT

        +
        public static final SkolemId STRINGS_STOI_NON_DIGIT
        +
        A position containing a non-digit in a string, used when (str.to_int a) + is equal to -1. This is an integer that returns a position for which the + argument string is not a digit if one exists, or is unconstrained otherwise. + +
          +
        • Number of skolem indices: 1 +
            +
          • 1: The argument to str.to_int. +
          +
        • +
        • Sort: Int +
        +
      • +
      + + + +
        +
      • +

        RE_FIRST_MATCH_PRE

        +
        public static final SkolemId RE_FIRST_MATCH_PRE
        +
        The next three skolems are used to decompose the match of a regular + expression in string. + + For string a and regular expression R, this skolem is the prefix of + string a before the first, shortest match of R in a. Formally, if + (str.in_re a (re.++ (re.* re.allchar) R (re.* re.allchar))), then + there exists strings k_pre, k_match, k_post such that: + (= a (str.++ k_pre k_match k_post)) and + (= (len k_pre) (indexof_re a R 0)) and + ``(forall ((l Int)) (=> (< 0 l (len k_match)) + (not (str.in_re (substr k_match 0 l) R))))`` and + (str.in_re k_match R) + This skolem is k_pre, and the proceeding two skolems are k_match and + k_post. + +
          +
        • Number of skolem indices: 2 +
            +
          • 1: The string. +
          • +
          • 2: The regular expression to match. +
          +
        • +
        • Sort: String +
        +
      • +
      + + + +
        +
      • +

        RE_FIRST_MATCH

        +
        public static final SkolemId RE_FIRST_MATCH
        +
        For string a and regular expression R, this skolem is the string that + the first, shortest match of R was matched to in a. + +
          +
        • Number of skolem indices: 2 +
            +
          • 1: The string. +
          • +
          • 2: The regular expression to match. +
          +
        • +
        • Sort: String +
        +
      • +
      + + + +
        +
      • +

        RE_FIRST_MATCH_POST

        +
        public static final SkolemId RE_FIRST_MATCH_POST
        +
        For string a and regular expression R, this skolem is the remainder + of a after the first, shortest match of R in a. + +
          +
        • Number of skolem indices: 2 +
            +
          • 1: The string. +
          • +
          • 2: The regular expression to match. +
          +
        • +
        • Sort: String +
        +
      • +
      + + + +
        +
      • +

        RE_UNFOLD_POS_COMPONENT

        +
        public static final SkolemId RE_UNFOLD_POS_COMPONENT
        +
        Regular expression unfold component: if (str.in_re a R), where R is + (re.++ R0 ... Rn), then the RE_UNFOLD_POS_COMPONENT for indices + (a,R,i) is a string ki such that (= a (str.++ k0 ... kn)) and + (str.in_re k0 R0) for i = 0, ..., n. + +
          +
        • Number of skolem indices: 3 +
            +
          • 1: The string. +
          • +
          • 2: The regular expression. +
          • +
          • 3: The index of the skolem. +
          +
        • +
        • Sort: String +
        +
      • +
      + + + +
        +
      • +

        BAGS_CARD_COMBINE

        +
        public static final SkolemId BAGS_CARD_COMBINE
        +
        An uninterpreted function for bag.card operator: + To compute (bag.card A), we need a function that + counts multiplicities of distinct elements. We call this function + combine of type Int -> Int where: + combine(0) = 0. + combine(i) = m(elements(i), A) + combine(i-1) for 1 <= i <= n. + elements: a skolem function for (bag.fold f t A). + See BAGS_DISTINCT_ELEMENTS. + n: is the number of distinct elements in A. + +
          +
        • Number of skolem indices: 1 +
            +
          • 1: the bag argument A. +
          +
        • +
        • Sort: (-> Int Int) +
        +
      • +
      + + + +
        +
      • +

        BAGS_DISTINCT_ELEMENTS_UNION_DISJOINT

        +
        public static final SkolemId BAGS_DISTINCT_ELEMENTS_UNION_DISJOINT
        +
        An uninterpreted function for the union of distinct elements + in a bag (Bag T). To compute operators like bag.card, + we need a function for distinct elements in A of type (-> Int T) + (see BAGS_DISTINCT_ELEMENTS). + We also need to restrict the range [1, n] to only elements in the bag + as follows: + unionDisjoint(0) = bag.empty. + unionDisjoint(i) = disjoint union of {<elements(i), m(elements(i), A)>} + and unionDisjoint(i-1). + unionDisjoint(n) = A. + +
          +
        • Number of skolem indices: 1 +
            +
          • 1: the bag argument A of type (Bag T). +
          +
        • +
        • Sort: (-> Int (Bag T)) +
        +
      • +
      + + + +
        +
      • +

        BAGS_FOLD_CARD

        +
        public static final SkolemId BAGS_FOLD_CARD
        +
        An uninterpreted function for bag.fold operator: + To compute (bag.fold f t A), we need to guess the cardinality n of + bag A using a skolem function with BAGS_FOLD_CARD id. + +
          +
        • Number of skolem indices: 1 +
            +
          • 1: the bag argument A. +
          +
        • +
        • Sort: Int +
        +
      • +
      + + + +
        +
      • +

        BAGS_FOLD_COMBINE

        +
        public static final SkolemId BAGS_FOLD_COMBINE
        +
        An uninterpreted function for bag.fold operator: + To compute (bag.fold f t A), we need a function that + accumulates intermidiate values. We call this function + combine of type Int -> T2 where: + combine(0) = t + combine(i) = f(elements(i), combine(i - 1)) for 1 <= i <= n. + elements: a skolem function for (bag.fold f t A) + see BAGS_FOLD_ELEMENTS. + n: is the cardinality of A. + T2: is the type of initial value t. + +
          +
        • Number of skolem indices: 3 +
            +
          • 1: the function f of type (-> T1 T2). +
          • +
          • 2: the initial value t of type T2. +
          • +
          • 3: the bag argument A of type (Bag T1). +
          +
        • +
        • Sort: (-> Int T2) +
        +
      • +
      + + + +
        +
      • +

        BAGS_FOLD_ELEMENTS

        +
        public static final SkolemId BAGS_FOLD_ELEMENTS
        +
        An uninterpreted function for bag.fold operator: + To compute (bag.fold f t A), we need a function for + elements of A. We call this function + elements of type (-> Int T1) where T1 is the type of + elements of A. + If the cardinality of A is n, then + A is the disjoint union of {elements(i)} for 1 <= i <= n. + See BAGS_FOLD_UNION_DISJOINT. + +
          +
        • Number of skolem indices: 1 +
            +
          • 1: a bag argument A of type (Bag T1) +
          +
        • +
        • Sort: (-> Int T1) +
        +
      • +
      + + + +
        +
      • +

        BAGS_FOLD_UNION_DISJOINT

        +
        public static final SkolemId BAGS_FOLD_UNION_DISJOINT
        +
        An uninterpreted function for bag.fold operator: + To compute (bag.fold f t A), we need a function for + elements of A which is given by elements defined in + BAGS_FOLD_ELEMENTS. + We also need unionDisjoint: (-> Int (Bag T1)) to compute + the disjoint union such that: + unionDisjoint(0) = bag.empty. + unionDisjoint(i) = disjoint union of {elements(i)} and unionDisjoint (i-1). + unionDisjoint(n) = A. + +
          +
        • Number of skolem indices: 1 +
            +
          • 1: the bag argument A of type (Bag T1). +
          +
        • +
        • Sort: (-> Int (Bag T1)) +
        +
      • +
      + + + +
        +
      • +

        BAGS_CHOOSE

        +
        public static final SkolemId BAGS_CHOOSE
        +
        An interpreted function uf for bag.choose operator: + (bag.choose A) is replaced by (uf A) along with the inference + that (>= (bag.count (uf A) A) 1) when A is non-empty. + where T is the type of elements of A. + +
          +
        • Number of skolem indices: 1 +
            +
          • 1: the bag to chose from, of type (Bag T). +
          +
        • +
        • Sort: (-> (Bag T) T) +
        +
      • +
      + + + +
        +
      • +

        BAGS_DISTINCT_ELEMENTS

        +
        public static final SkolemId BAGS_DISTINCT_ELEMENTS
        +
        An uninterpreted function for distinct elements of a bag A, which returns + the n^th distinct element of the bag. + See BAGS_DISTINCT_ELEMENTS_UNION_DISJOINT. + +
          +
        • Number of skolem indices: 1 +
            +
          • 1: the bag argument A of type (Bag T). +
          +
        • +
        • Sort: (-> Int T) +
        +
      • +
      + + + +
        +
      • +

        BAGS_DISTINCT_ELEMENTS_SIZE

        +
        public static final SkolemId BAGS_DISTINCT_ELEMENTS_SIZE
        +
        A skolem variable for the size of the distinct elements of a bag A. + +
          +
        • Number of skolem indices: 1 +
            +
          • 1: the bag argument A. +
          +
        • +
        • Sort: Int +
        +
      • +
      + + + +
        +
      • +

        BAGS_MAP_PREIMAGE_INJECTIVE

        +
        public static final SkolemId BAGS_MAP_PREIMAGE_INJECTIVE
        +
        A skolem for the preimage of an element y in (bag.map f A) such that + (= (f x) y) where f: (-> E T) is an injective function. + +
          +
        • Number of skolem indices: 3 +
            +
          • 1: the function f of type (-> E T). +
          • +
          • 2: the bag argument A of (Bag E). +
          • +
          • 3: the element argument y type T. +
          +
        • +
        • Sort: E +
        +
      • +
      + + + +
        +
      • +

        BAGS_MAP_INDEX

        +
        public static final SkolemId BAGS_MAP_INDEX
        +
        A skolem variable for the index that is unique per terms + (bag.map f A), y, e where: + f: (-> E T), + A: (Bag E), + y: T, + e: E + +
          +
        • Number of skolem indices: 5 +
            +
          • 1: a map term of the form (bag.map f A). +
          • +
          • 2: a skolem function with id BAGS_DISTINCT_ELEMENTS. +
          • +
          • 3: a skolem function with id BAGS_DISTINCT_ELEMENTS_SIZE. +
          • +
          • 4: an element y of type T representing the mapped value. +
          • +
          • 5: an element x of type E. +
          +
        • +
        • Sort: Int +
        +
      • +
      + + + +
        +
      • +

        BAGS_MAP_SUM

        +
        public static final SkolemId BAGS_MAP_SUM
        +
        An uninterpreted function for bag.map operator: + If bag A is {uf(1), ..., uf(n)} (see BAGS_DISTINCT_ELEMENTS}, + then the multiplicity of an element y in a bag (bag.map f A) is sum(n), + where sum: (-> Int Int) is a skolem function such that: + sum(0) = 0 + sum(i) = sum (i-1) + (bag.count (uf i) A) + +
          +
        • Number of skolem indices: 3 +
            +
          • 1: the function f of type (-> E T). +
          • +
          • 2: the bag argument A of (Bag E). +
          • +
          • 3: the element argument e type E. +
          +
        • +
        • Sort: (-> Int Int) +
        +
      • +
      + + + +
        +
      • +

        BAGS_DEQ_DIFF

        +
        public static final SkolemId BAGS_DEQ_DIFF
        +
        The bag diff skolem, which is the witness k for the inference + (=> (not (= A B)) (not (= (bag.count k A) (bag.count k B)))). + +
          +
        • Number of skolem indices: 2 +
            +
          • 1: The first bag of type (Bag T). +
          • +
          • 2: The second bag of type (Bag T). +
          +
        • +
        • Sort: T +
        +
      • +
      + + + +
        +
      • +

        TABLES_GROUP_PART

        +
        public static final SkolemId TABLES_GROUP_PART
        +
        Given a group term ((_ table.group n1 ... nk) A) of type + (Bag (Table T)), this skolem maps elements of A to their parts in the + resulting partition. + +
          +
        • Number of skolem indices: 1 +
            +
          • 1: a group term of the form ((_ table.group n1 ... nk) A). +
          +
        • +
        • Sort: (-> T (Table T)) +
        +
      • +
      + + + +
        +
      • +

        TABLES_GROUP_PART_ELEMENT

        +
        public static final SkolemId TABLES_GROUP_PART_ELEMENT
        +
        Given a group term ((_ table.group n1 ... nk) A) of type + (Bag (Table T)) and a part B of type (Table T), this function + returns a skolem element that is a member of B if B is not empty. + +
          +
        • Number of skolem indices: 2 +
            +
          • 1: a group term of the form ((_ table.group n1 ... nk) A). +
          • +
          • 2: a table B of type (Table T). +
          +
        • +
        • Sort: T +
        +
      • +
      + + + +
        +
      • +

        RELATIONS_GROUP_PART

        +
        public static final SkolemId RELATIONS_GROUP_PART
        +
        Given a group term ((_ rel.group n1 ... nk) A) of type + (Set (Relation T)) this skolem maps elements of A to their parts in the + resulting partition. + +
          +
        • Number of skolem indices: 1 +
            +
          • 1: a relation of the form ((_ rel.group n1 ... nk) A). +
          +
        • +
        • Sort: (-> T (Relation T)) +
        +
      • +
      + + + +
        +
      • +

        RELATIONS_GROUP_PART_ELEMENT

        +
        public static final SkolemId RELATIONS_GROUP_PART_ELEMENT
        +
        Given a group term ((_ rel.group n1 ... nk) A) of type (Set (Relation T)) + and a part B of type (Relation T), this function returns a skolem element + that is a member of B if B is not empty. + +
          +
        • Number of skolem indices: 2 +
            +
          • 1: a group term of the form ((_ rel.group n1 ... nk) A). +
          • +
          • 2: a relation B of type (Relation T). +
          +
        • +
        • Sort: T +
        +
      • +
      + + + +
        +
      • +

        SETS_CHOOSE

        +
        public static final SkolemId SETS_CHOOSE
        +
        An interpreted function for set.choose operator, where (set.choose A) + is expanded to (uf A) along with the inference + (set.member (uf A) A)) when A is non-empty, + where uf: (-> (Set E) E) is this skolem function, and E is the type of + elements of A. + +
          +
        • Number of skolem indices: 1 +
            +
          • 1: a ground value for the type (Set E). +
          +
        • +
        • Sort: (-> (Set E) E) +
        +
      • +
      + + + +
        +
      • +

        SETS_DEQ_DIFF

        +
        public static final SkolemId SETS_DEQ_DIFF
        +
        The set diff skolem, which is the witness k for the inference + (=> (not (= A B)) (not (= (set.member k A) (set.member k B)))). + +
          +
        • Number of skolem indices: 2 +
            +
          • 1: The first set of type (Set E). +
          • +
          • 2: The second set of type (Set E). +
          +
        • +
        • Sort: E +
        +
      • +
      + + + +
        +
      • +

        SETS_FOLD_CARD

        +
        public static final SkolemId SETS_FOLD_CARD
        +
        An uninterpreted function for set.fold operator: + To compute (set.fold f t A), we need to guess the cardinality n of + set A using a skolem function with SETS_FOLD_CARD id. + +
          +
        • Number of skolem indices: 1 +
            +
          • 1: the set argument A. +
          +
        • +
        • Sort: Int +
        +
      • +
      + + + +
        +
      • +

        SETS_FOLD_COMBINE

        +
        public static final SkolemId SETS_FOLD_COMBINE
        +
        An uninterpreted function for set.fold operator: + To compute (set.fold f t A), we need a function that + accumulates intermidiate values. We call this function + combine of type Int -> T2 where: + combine(0) = t + combine(i) = f(elements(i), combine(i - 1)) for 1 <= i <= n + elements: a skolem function for (set.fold f t A) + see SETS_FOLD_ELEMENTS + n: is the cardinality of A + T2: is the type of initial value t + +
          +
        • Number of skolem indices: 3 +
            +
          • 1: the function f of type (-> T1 T2). +
          • +
          • 2: the initial value t of type T2. +
          • +
          • 3: the set argument A of type (Set T1). +
          +
        • +
        • Sort: (-> Int T2) +
        +
      • +
      + + + +
        +
      • +

        SETS_FOLD_ELEMENTS

        +
        public static final SkolemId SETS_FOLD_ELEMENTS
        +
        An uninterpreted function for set.fold operator: + To compute (set.fold f t A), we need a function for + elements of A. We call this function + elements of type (-> Int T) where T is the type of + elements of A. + If the cardinality of A is n, then + A is the union of {elements(i)} for 1 <= i <= n. + See SETS_FOLD_UNION_DISJOINT. + +
          +
        • Number of skolem indices: 1 +
            +
          • 1: a set argument A of type (Set T). +
          +
        • +
        • Sort: (-> Int T) +
        +
      • +
      + + + +
        +
      • +

        SETS_FOLD_UNION

        +
        public static final SkolemId SETS_FOLD_UNION
        +
        An uninterpreted function for set.fold operator: + To compute (set.fold f t A), we need a function for + elements of A which is given by elements defined in + SETS_FOLD_ELEMENTS. + We also need unionFn: (-> Int (Set E)) to compute + the union such that: + unionFn(0) = set.empty + unionFn(i) = union of {elements(i)} and unionFn (i-1) + unionFn(n) = A + +
          +
        • Number of skolem indices: 1 +
            +
          • 1: a set argument A of type (Set E). +
          +
        • +
        • Sort: (-> Int (Set E)) +
        +
      • +
      + + + +
        +
      • +

        SETS_MAP_DOWN_ELEMENT

        +
        public static final SkolemId SETS_MAP_DOWN_ELEMENT
        +
        A skolem variable that is unique per terms (set.map f A), y which is an + element in (set.map f A). The skolem is constrained to be an element in + A, and it is mapped to y by f. + +
          +
        • Number of skolem indices: 2 +
            +
          • 1: a map term of the form (set.map f A) where A of type (Set E) +
          • +
          • 2: the element argument y. +
          +
        • +
        • Sort: E +
        +
      • +
      + + + +
        +
      • +

        FP_MIN_ZERO

        +
        public static final SkolemId FP_MIN_ZERO
        +
        A skolem function that is unique per floating-point sort, introduced for + the undefined zero case of fp.min. + +
          +
        • Number of skolem indices: 1 +
            +
          • 1: The floating-point sort FP of the fp.min operator. +
          +
        • +
        • Sort: (-> FP FP (_ BitVec 1)) +
        +
      • +
      + + + +
        +
      • +

        FP_MAX_ZERO

        +
        public static final SkolemId FP_MAX_ZERO
        +
        A skolem function that is unique per floating-point sort, introduced for + the undefined zero case of fp.max. + +
          +
        • Number of skolem indices: 1 +
            +
          • 1: The floating-point sort FP of the fp.max operator. +
          +
        • +
        • Sort: (-> FP FP (_ BitVec 1)) +
        +
      • +
      + + + +
        +
      • +

        FP_TO_UBV

        +
        public static final SkolemId FP_TO_UBV
        +
        A skolem function introduced for the undefined out-ouf-bounds case of + fp.to_ubv that is unique per floating-point sort and sort of the + arguments to the operator. + +
          +
        • Number of skolem indices: 2 +
            +
          • 1: The floating-point sort FP of operand of fp.to_ubv. +
          • +
          • 2: The bit-vector sort BV to convert to. +
          +
        • +
        • Sort: (-> RoundingMode FP BV) +
        +
      • +
      + + + +
        +
      • +

        FP_TO_SBV

        +
        public static final SkolemId FP_TO_SBV
        +
        A skolem function introduced for the undefined out-ouf-bounds case of + fp.to_sbv that is unique per floating-point sort and sort of the + arguments to the operator. + +
          +
        • Number of skolem indices: 2 +
            +
          • 1: The floating-point sort FP of operand of fp.to_sbv. +
          • +
          • 2: The bit-vector sort BV to convert to. +
          +
        • +
        • Sort: (-> RoundingMode FP BV) +
        +
      • +
      + + + +
        +
      • +

        FP_TO_REAL

        +
        public static final SkolemId FP_TO_REAL
        +
        A skolem function introduced for the undefined of fp.to_real that is + unique per floating-point sort. + +
          +
        • Number of skolem indices: 1 +
            +
          • 1: The floating-point sort FP of the operand of fp.to_real. +
          +
        • +
        • Sort: (-> FP Real) +
        +
      • +
      + + + +
        +
      • +

        BV_TO_INT_UF

        +
        public static final SkolemId BV_TO_INT_UF
        +
        A skolem function introduced by the int-blaster. + Given a function f with argument and/or return types + that include bit-vectors, we get a function + that replaces them by integer types. + For example, if the original function is from + BV and Strings to Strings, the resulting + function is from Ints and Strings to Strings. +
          +
        • Number of skolem indices: 1 +
            +
          • 1: the original function f, with BV sorts. +
          +
        • +
        • Sort: `(-> T1' ... ( -> Tn' T')...)` Where + f has sort (->T1 ... (-> Tn T)...) and Ti' (T') is + `Int` if Ti (T) is `BV` and Ti' (T') is just Ti (T) + otherwise. +
        +
      • +
      + + + +
        +
      • +

        NONE

        +
        public static final SkolemId NONE
        +
        Indicates this is not a skolem.
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        values

        +
        public static SkolemId[] values()
        +
        Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +
        +for (SkolemId c : SkolemId.values())
        +    System.out.println(c);
        +
        +
        +
        Returns:
        +
        an array containing the constants of this enum type, in the order they are declared
        +
        +
      • +
      + + + +
        +
      • +

        valueOf

        +
        public static SkolemId valueOf​(java.lang.String name)
        +
        Returns the enum constant of this type with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)
        +
        +
        Parameters:
        +
        name - the name of the enum constant to be returned.
        +
        Returns:
        +
        the enum constant with the specified name
        +
        Throws:
        +
        java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
        +
        java.lang.NullPointerException - if the argument is null
        +
        +
      • +
      + + + + + + + +
        +
      • +

        getValue

        +
        public int getValue()
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Solver.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Solver.html new file mode 100644 index 0000000000..22eaba7928 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Solver.html @@ -0,0 +1,6639 @@ + + + + + +Solver + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Class Solver

+
+
+ +
+
    +
  • +
    +
    public class Solver
    +extends java.lang.Object
    +
    A cvc5 solver.
    +
  • +
+
+
+ +
+
+
    +
  • + +
    +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        pointer

        +
        protected long pointer
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        Solver

        +
        @Deprecated
        +public Solver()
        +
        Deprecated. +
        This function is deprecated and replaced by + Solver(TermManager). + It will be removed in a future release.
        +
        +
        Create solver instance.
        +
      • +
      + + + +
        +
      • +

        Solver

        +
        public Solver​(TermManager d_tm)
        +
        Create solver instance.
        +
        +
        Parameters:
        +
        d_tm - The associated term manager.
        +
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        deletePointer

        +
        protected void deletePointer​(long pointer)
        +
      • +
      + + + +
        +
      • +

        toString

        +
        protected java.lang.String toString​(long pointer)
        +
      • +
      + + + +
        +
      • +

        equals

        +
        public boolean equals​(java.lang.Object s)
        +
        +
        Overrides:
        +
        equals in class java.lang.Object
        +
        +
      • +
      + + + +
        +
      • +

        getTermManager

        +
        public TermManager getTermManager()
        +
        Get the associated term manager instance
        +
        +
        Returns:
        +
        The term manager.
        +
        +
      • +
      + + + +
        +
      • +

        getBooleanSort

        +
        @Deprecated
        +public Sort getBooleanSort()
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.getBooleanSort(). + It will be removed in a future release.
        +
        +
        Get the Boolean sort.
        +
        +
        Returns:
        +
        Sort Boolean.
        +
        +
      • +
      + + + +
        +
      • +

        getIntegerSort

        +
        @Deprecated
        +public Sort getIntegerSort()
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.getIntegerSort(). + It will be removed in a future release.
        +
        +
        Get the integer sort.
        +
        +
        Returns:
        +
        Sort Integer.
        +
        +
      • +
      + + + +
        +
      • +

        getRealSort

        +
        @Deprecated
        +public Sort getRealSort()
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.getRealSort(). + It will be removed in a future release.
        +
        +
        Get the real sort.
        +
        +
        Returns:
        +
        Sort Real.
        +
        +
      • +
      + + + +
        +
      • +

        getRegExpSort

        +
        @Deprecated
        +public Sort getRegExpSort()
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.getRegExpSort(). + It will be removed in a future release.
        +
        +
        Get the regular expression sort.
        +
        +
        Returns:
        +
        Sort RegExp.
        +
        +
      • +
      + + + +
        +
      • +

        getRoundingModeSort

        +
        @Deprecated
        +public Sort getRoundingModeSort()
        +                         throws CVC5ApiException
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.getRoundingModeSort(). + It will be removed in a future release.
        +
        +
        Get the floating-point rounding mode sort.
        +
        +
        Returns:
        +
        Sort RoundingMode.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        getStringSort

        +
        @Deprecated
        +public Sort getStringSort()
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.getStringSort(). + It will be removed in a future release.
        +
        +
        Get the string sort.
        +
        +
        Returns:
        +
        Sort String.
        +
        +
      • +
      + + + +
        +
      • +

        mkArraySort

        +
        @Deprecated
        +public Sort mkArraySort​(Sort indexSort,
        +                        Sort elemSort)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkArraySort(Sort, Sort). + It will be removed in a future release.
        +
        +
        Create an array sort.
        +
        +
        Parameters:
        +
        indexSort - The array index sort.
        +
        elemSort - The array element sort.
        +
        Returns:
        +
        The array sort.
        +
        +
      • +
      + + + +
        +
      • +

        mkBitVectorSort

        +
        @Deprecated
        +public Sort mkBitVectorSort​(int size)
        +                     throws CVC5ApiException
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkBitVectorSort(int). + It will be removed in a future release.
        +
        +
        Create a bit-vector sort.
        +
        +
        Parameters:
        +
        size - The bit-width of the bit-vector sort.
        +
        Returns:
        +
        The bit-vector sort.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        mkFiniteFieldSort

        +
        @Deprecated
        +public Sort mkFiniteFieldSort​(java.lang.String size,
        +                              int base)
        +                       throws CVC5ApiException
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkFiniteFieldSort(String, int). + It will be removed in a future release.
        +
        +
        Create a finite field sort.
        +
        +
        Parameters:
        +
        size - The size of the finite field sort.
        +
        base - The base of the string representation.
        +
        Returns:
        +
        The finite field sort.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        mkFloatingPointSort

        +
        @Deprecated
        +public Sort mkFloatingPointSort​(int exp,
        +                                int sig)
        +                         throws CVC5ApiException
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkFloatingPointSort(int, int). + It will be removed in a future release.
        +
        +
        Create a floating-point sort.
        +
        +
        Parameters:
        +
        exp - The bit-width of the exponent of the floating-point sort.
        +
        sig - The bit-width of the significand of the floating-point sort.
        +
        Returns:
        +
        The floating-point sort.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        mkDatatypeSort

        +
        @Deprecated
        +public Sort mkDatatypeSort​(DatatypeDecl dtypedecl)
        +                    throws CVC5ApiException
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkDatatypeSort(DatatypeDecl). + It will be removed in a future release.
        +
        +
        Create a datatype sort.
        +
        +
        Parameters:
        +
        dtypedecl - The datatype declaration from which the sort is created.
        +
        Returns:
        +
        The datatype sort.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        mkDatatypeSorts

        +
        @Deprecated
        +public Sort[] mkDatatypeSorts​(DatatypeDecl[] dtypedecls)
        +                       throws CVC5ApiException
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkDatatypeSorts(DatatypeDecl[]). + It will be removed in a future release.
        +
        +
        Create a vector of datatype sorts. + + The names of the datatype declarations must be distinct.
        +
        +
        Parameters:
        +
        dtypedecls - The datatype declarations from which the sort is created.
        +
        Returns:
        +
        The datatype sorts.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        mkFunctionSort

        +
        @Deprecated
        +public Sort mkFunctionSort​(Sort domain,
        +                           Sort codomain)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkFunctionSort(Sort, Sort). + It will be removed in a future release.
        +
        +
        Create function sort.
        +
        +
        Parameters:
        +
        domain - The sort of the fuction argument.
        +
        codomain - The sort of the function return value.
        +
        Returns:
        +
        The function sort.
        +
        +
      • +
      + + + +
        +
      • +

        mkFunctionSort

        +
        @Deprecated
        +public Sort mkFunctionSort​(Sort[] sorts,
        +                           Sort codomain)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkFunctionSort(Sort[], Sort). + It will be removed in a future release.
        +
        +
        Create function sort.
        +
        +
        Parameters:
        +
        sorts - The sort of the function arguments.
        +
        codomain - The sort of the function return value.
        +
        Returns:
        +
        The function sort.
        +
        +
      • +
      + + + +
        +
      • +

        mkParamSort

        +
        @Deprecated
        +public Sort mkParamSort​(java.lang.String symbol)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkParamSort(String). + It will be removed in a future release.
        +
        +
        Create a sort parameter.
        +
        +
        Parameters:
        +
        symbol - The name of the sort.
        +
        Returns:
        +
        The sort parameter.
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        mkParamSort

        +
        @Deprecated
        +public Sort mkParamSort()
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkParamSort(). + It will be removed in a future release.
        +
        +
        Create a sort parameter.
        +
        +
        Returns:
        +
        The sort parameter.
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        mkPredicateSort

        +
        @Deprecated
        +public Sort mkPredicateSort​(Sort[] sorts)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkPredicateSort(Sort[]). + It will be removed in a future release.
        +
        +
        Create a predicate sort.
        +
        +
        Parameters:
        +
        sorts - The list of sorts of the predicate.
        +
        Returns:
        +
        The predicate sort.
        +
        +
      • +
      + + + +
        +
      • +

        mkRecordSort

        +
        @Deprecated
        +public Sort mkRecordSort​(Pair<java.lang.String,​Sort>[] fields)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkRecordSort(Pair[]). + It will be removed in a future release.
        +
        +
        Create a record sort
        +
        +
        Parameters:
        +
        fields - The list of fields of the record.
        +
        Returns:
        +
        The record sort.
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        mkSetSort

        +
        @Deprecated
        +public Sort mkSetSort​(Sort elemSort)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkSetSort(Sort). + It will be removed in a future release.
        +
        +
        Create a set sort.
        +
        +
        Parameters:
        +
        elemSort - The sort of the set elements.
        +
        Returns:
        +
        The set sort.
        +
        +
      • +
      + + + +
        +
      • +

        mkBagSort

        +
        @Deprecated
        +public Sort mkBagSort​(Sort elemSort)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkBagSort(Sort). + It will be removed in a future release.
        +
        +
        Create a bag sort.
        +
        +
        Parameters:
        +
        elemSort - The sort of the bag elements.
        +
        Returns:
        +
        The bag sort.
        +
        +
      • +
      + + + +
        +
      • +

        mkSequenceSort

        +
        @Deprecated
        +public Sort mkSequenceSort​(Sort elemSort)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkSequenceSort(Sort). + It will be removed in a future release.
        +
        +
        Create a sequence sort.
        +
        +
        Parameters:
        +
        elemSort - The sort of the sequence elements.
        +
        Returns:
        +
        The sequence sort.
        +
        +
      • +
      + + + +
        +
      • +

        mkAbstractSort

        +
        @Deprecated
        +public Sort mkAbstractSort​(SortKind kind)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkAbstractSort(SortKind). + It will be removed in a future release.
        +
        +
        Create an abstract sort. An abstract sort represents a sort for a given + kind whose parameters and arguments are unspecified. + + The SortKind k must be the kind of a sort that can be abstracted, + i.e., a sort that has indices or argument sorts. For example, + SortKind.ARRAY_SORT and SortKind.BITVECTOR_SORT can be + passed as the SortKind k to this method, while + SortKind.INTEGER_SORT and SortKind.STRING_SORT cannot.
        +
        +
        Parameters:
        +
        kind - The kind of the abstract sort
        +
        Returns:
        +
        The abstract sort.
        +
        Note:
        +
        Providing the kind SortKind.ABSTRACT_SORT as an + argument to this method returns the (fully) unspecified sort, + often denoted ?., Providing a kind k that has no indices and a fixed arity + of argument sorts will return the sort of SortKind k + whose arguments are the unspecified sort. For example, + mkAbstractSort(ARRAY_SORT) will return the sort + (ARRAY_SORT ? ?) instead of the abstract sort whose + abstract kind is SortKind.ABSTRACT_SORT., This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        mkUninterpretedSort

        +
        @Deprecated
        +public Sort mkUninterpretedSort​(java.lang.String symbol)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkUninterpretedSort(String). + It will be removed in a future release.
        +
        +
        Create an uninterpreted sort.
        +
        +
        Parameters:
        +
        symbol - The name of the sort.
        +
        Returns:
        +
        The uninterpreted sort.
        +
        +
      • +
      + + + +
        +
      • +

        mkUninterpretedSort

        +
        @Deprecated
        +public Sort mkUninterpretedSort()
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkUninterpretedSort(). + It will be removed in a future release.
        +
        +
        Create an uninterpreted sort.
        +
        +
        Returns:
        +
        The uninterpreted sort.
        +
        +
      • +
      + + + +
        +
      • +

        mkUnresolvedDatatypeSort

        +
        @Deprecated
        +public Sort mkUnresolvedDatatypeSort​(java.lang.String symbol,
        +                                     int arity)
        +                              throws CVC5ApiException
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkUnresolvedDatatypeSort(String, int). + It will be removed in a future release.
        +
        +
        Create an unresolved datatype sort. + + This is for creating yet unresolved sort placeholders for mutually + recursive parametric datatypes.
        +
        +
        Parameters:
        +
        symbol - The symbol of the sort.
        +
        arity - The number of sort parameters of the sort.
        +
        Returns:
        +
        The unresolved sort.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        mkUnresolvedDatatypeSort

        +
        @Deprecated
        +public Sort mkUnresolvedDatatypeSort​(java.lang.String symbol)
        +                              throws CVC5ApiException
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkUnresolvedDatatypeSort(String). + It will be removed in a future release.
        +
        +
        Create an unresolved datatype sort. + + This is for creating yet unresolved sort placeholders for mutually + recursive datatypes without sort parameters.
        +
        +
        Parameters:
        +
        symbol - The symbol of the sort.
        +
        Returns:
        +
        The unresolved sort.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        mkUninterpretedSortConstructorSort

        +
        @Deprecated
        +public Sort mkUninterpretedSortConstructorSort​(int arity,
        +                                               java.lang.String symbol)
        +                                        throws CVC5ApiException
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkUninterpretedSortConstructorSort(int, String). + It will be removed in a future release.
        +
        +
        Create a sort constructor sort. + + An uninterpreted sort constructor is an uninterpreted sort with + arity > 0.
        +
        +
        Parameters:
        +
        arity - The arity of the sort (must be > 0)
        +
        symbol - The symbol of the sort.
        +
        Returns:
        +
        The sort constructor sort.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        mkUninterpretedSortConstructorSort

        +
        @Deprecated
        +public Sort mkUninterpretedSortConstructorSort​(int arity)
        +                                        throws CVC5ApiException
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkUninterpretedSortConstructorSort(int). + It will be removed in a future release.
        +
        +
        Create a sort constructor sort. + + An uninterpreted sort constructor is an uninterpreted sort with + arity > 0.
        +
        +
        Parameters:
        +
        arity - The arity of the sort (must be > 0)
        +
        Returns:
        +
        The sort constructor sort.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        mkTupleSort

        +
        @Deprecated
        +public Sort mkTupleSort​(Sort[] sorts)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkTupleSort(Sort[]). + It will be removed in a future release.
        +
        +
        Create a tuple sort.
        +
        +
        Parameters:
        +
        sorts - Of the elements of the tuple.
        +
        Returns:
        +
        The tuple sort.
        +
        +
      • +
      + + + +
        +
      • +

        mkNullableSort

        +
        @Deprecated
        +public Sort mkNullableSort​(Sort sort)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkNullableSort(Sort). + It will be removed in a future release.
        +
        +
        Create a nullable sort.
        +
        +
        Parameters:
        +
        sort - The sort of the element of the nullable.
        +
        Returns:
        +
        The nullable sort.
        +
        +
      • +
      + + + +
        +
      • +

        mkTerm

        +
        @Deprecated
        +public Term mkTerm​(Kind kind)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkTerm(Kind). + It will be removed in a future release.
        +
        +
        Create 0-ary term of given kind.
        +
        +
        Parameters:
        +
        kind - The kind of the term.
        +
        Returns:
        +
        The Term.
        +
        +
      • +
      + + + +
        +
      • +

        mkTerm

        +
        @Deprecated
        +public Term mkTerm​(Kind kind,
        +                   Term child)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkTerm(Kind, Term). + It will be removed in a future release.
        +
        +
        Create a unary term of given kind.
        +
        +
        Parameters:
        +
        kind - The kind of the term.
        +
        child - The child of the term.
        +
        Returns:
        +
        The Term.
        +
        +
      • +
      + + + +
        +
      • +

        mkTerm

        +
        @Deprecated
        +public Term mkTerm​(Kind kind,
        +                   Term child1,
        +                   Term child2)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkTerm(Kind, Term, Term). + It will be removed in a future release.
        +
        +
        Create binary term of given kind.
        +
        +
        Parameters:
        +
        kind - The kind of the term.
        +
        child1 - The first child of the term.
        +
        child2 - The second child of the term.
        +
        Returns:
        +
        The Term.
        +
        +
      • +
      + + + +
        +
      • +

        mkTerm

        +
        @Deprecated
        +public Term mkTerm​(Kind kind,
        +                   Term child1,
        +                   Term child2,
        +                   Term child3)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkTerm(Kind, Term, Term, Term). + It will be removed in a future release.
        +
        +
        Create ternary term of given kind.
        +
        +
        Parameters:
        +
        kind - The kind of the term.
        +
        child1 - The first child of the term.
        +
        child2 - The second child of the term.
        +
        child3 - The third child of the term.
        +
        Returns:
        +
        The Term.
        +
        +
      • +
      + + + +
        +
      • +

        mkTerm

        +
        @Deprecated
        +public Term mkTerm​(Kind kind,
        +                   Term[] children)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkTerm(Kind, Term[]). + It will be removed in a future release.
        +
        +
        Create n-ary term of given kind.
        +
        +
        Parameters:
        +
        kind - The kind of the term.
        +
        children - The children of the term.
        +
        Returns:
        +
        The Term.
        +
        +
      • +
      + + + +
        +
      • +

        mkTerm

        +
        @Deprecated
        +public Term mkTerm​(Op op)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkTerm(Op). + It will be removed in a future release.
        +
        +
        Create nullary term of given kind from a given operator. + Create operators with mkOp().
        +
        +
        Parameters:
        +
        op - The operator.
        +
        Returns:
        +
        The Term.
        +
        +
      • +
      + + + +
        +
      • +

        mkTerm

        +
        @Deprecated
        +public Term mkTerm​(Op op,
        +                   Term child)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkTerm(Op, Term). + It will be removed in a future release.
        +
        +
        Create unary term of given kind from a given operator. + Create operators with mkOp().
        +
        +
        Parameters:
        +
        op - The operator.
        +
        child - The child of the term.
        +
        Returns:
        +
        The Term.
        +
        +
      • +
      + + + +
        +
      • +

        mkTerm

        +
        @Deprecated
        +public Term mkTerm​(Op op,
        +                   Term child1,
        +                   Term child2)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkTerm(Op, Term, Term). + It will be removed in a future release.
        +
        +
        Create binary term of given kind from a given operator. + Create operators with mkOp().
        +
        +
        Parameters:
        +
        op - The operator.
        +
        child1 - The first child of the term.
        +
        child2 - The second child of the term.
        +
        Returns:
        +
        The Term.
        +
        +
      • +
      + + + +
        +
      • +

        mkTerm

        +
        @Deprecated
        +public Term mkTerm​(Op op,
        +                   Term child1,
        +                   Term child2,
        +                   Term child3)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkTerm(Op, Term, Term, Term). + It will be removed in a future release.
        +
        +
        Create ternary term of given kind from a given operator. + Create operators with mkOp().
        +
        +
        Parameters:
        +
        op - The operator.
        +
        child1 - The first child of the term.
        +
        child2 - The second child of the term.
        +
        child3 - The third child of the term.
        +
        Returns:
        +
        The Term.
        +
        +
      • +
      + + + +
        +
      • +

        mkTerm

        +
        @Deprecated
        +public Term mkTerm​(Op op,
        +                   Term[] children)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkTerm(Op, Term[]). + It will be removed in a future release.
        +
        +
        Create n-ary term of given kind from a given operator. + Create operators with mkOp().
        +
        +
        Parameters:
        +
        op - The operator.
        +
        children - The children of the term.
        +
        Returns:
        +
        The Term.
        +
        +
      • +
      + + + +
        +
      • +

        mkTuple

        +
        @Deprecated
        +public Term mkTuple​(Term[] terms)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkTuple(Term[]). + It will be removed in a future release.
        +
        +
        Create a tuple term. Terms are automatically converted if sorts are + compatible.
        +
        +
        Parameters:
        +
        terms - The elements in the tuple.
        +
        Returns:
        +
        The tuple Term.
        +
        +
      • +
      + + + +
        +
      • +

        mkNullableSome

        +
        @Deprecated
        +public Term mkNullableSome​(Term term)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkNullableSome(Term). + It will be removed in a future release.
        +
        +
        Create a nullable some term.
        +
        +
        Parameters:
        +
        term - The element value.
        +
        Returns:
        +
        the Element value wrapped in some constructor.
        +
        +
      • +
      + + + +
        +
      • +

        mkNullableVal

        +
        @Deprecated
        +public Term mkNullableVal​(Term term)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkNullableVal(Term). + It will be removed in a future release.
        +
        +
        Create a selector for nullable term.
        +
        +
        Parameters:
        +
        term - A nullable term.
        +
        Returns:
        +
        The element value of the nullable term.
        +
        +
      • +
      + + + +
        +
      • +

        mkNullableIsNull

        +
        @Deprecated
        +public Term mkNullableIsNull​(Term term)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkNullableIsNull(Term). + It will be removed in a future release.
        +
        +
        Create a null tester for a nullable term.
        +
        +
        Parameters:
        +
        term - A nullable term.
        +
        Returns:
        +
        A tester whether term is null.
        +
        +
      • +
      + + + +
        +
      • +

        mkNullableIsSome

        +
        @Deprecated
        +public Term mkNullableIsSome​(Term term)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkNullableIsSome(Term). + It will be removed in a future release.
        +
        +
        Create a some tester for a nullable term.
        +
        +
        Parameters:
        +
        term - A nullable term.
        +
        Returns:
        +
        A tester whether term is some.
        +
        +
      • +
      + + + +
        +
      • +

        mkNullableNull

        +
        @Deprecated
        +public Term mkNullableNull​(Sort sort)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkNullableNull(Sort). + It will be removed in a future release.
        +
        +
        Create a constant representing a null value of the given sort.
        +
        +
        Parameters:
        +
        sort - The sort of the Nullable element.
        +
        Returns:
        +
        The null constant.
        +
        +
      • +
      + + + +
        +
      • +

        mkNullableLift

        +
        @Deprecated
        +public Term mkNullableLift​(Kind kind,
        +                           Term[] args)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkNullableLift(Kind, Term[]). + It will be removed in a future release.
        +
        +
        Create a term that lifts kind to nullable terms. + + Example: + If we have the term ((_ nullable.lift +) x y), + where x, y of type (Nullable Int), then + kind would be ADD, and args would be [x, y]. + This function would return + (nullable.lift (lambda ((a Int) (b Int)) (+ a b)) x y)
        +
        +
        Parameters:
        +
        kind - The lifted operator.
        +
        args - The arguments of the lifted operator.
        +
        Returns:
        +
        A term of Kind NULLABLE_LIFT where the first child + is a lambda expression, and the remaining children are + the original arguments.
        +
        +
      • +
      + + + +
        +
      • +

        mkOp

        +
        @Deprecated
        +public Op mkOp​(Kind kind)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkOp(Kind). + It will be removed in a future release.
        +
        +
        Create an operator for a builtin Kind + The Kind may not be the Kind for an indexed operator + (e.g., Kind.BITVECTOR_EXTRACT).
        +
        +
        Parameters:
        +
        kind - The kind to wrap.
        +
        Returns:
        +
        The operator.
        +
        Note:
        +
        In this case, the Op simply wraps the Kind. The Kind can be used + in mkTerm directly without creating an op first.
        +
        +
      • +
      + + + +
        +
      • +

        mkOp

        +
        @Deprecated
        +public Op mkOp​(Kind kind,
        +               java.lang.String arg)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkOp(Kind, String). + It will be removed in a future release.
        +
        +
        Create operator of kind: + + See enum Kind for a description of the parameters.
        +
        +
        Parameters:
        +
        kind - The kind of the operator.
        +
        arg - The string argument to this operator.
        +
        Returns:
        +
        The operator.
        +
        +
      • +
      + + + +
        +
      • +

        mkOp

        +
        @Deprecated
        +public Op mkOp​(Kind kind,
        +               int arg)
        +        throws CVC5ApiException
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkOp(Kind, int). + It will be removed in a future release.
        +
        +
        Create operator of kind: +
          +
        • DIVISIBLE
        • +
        • BITVECTOR_REPEAT
        • +
        • BITVECTOR_ZERO_EXTEND
        • +
        • BITVECTOR_SIGN_EXTEND
        • +
        • BITVECTOR_ROTATE_LEFT
        • +
        • BITVECTOR_ROTATE_RIGHT
        • +
        • INT_TO_BITVECTOR
        • +
        • FLOATINGPOINT_TO_UBV
        • +
        • FLOATINGPOINT_TO_UBV_TOTAL
        • +
        • FLOATINGPOINT_TO_SBV
        • +
        • FLOATINGPOINT_TO_SBV_TOTAL
        • +
        • TUPLE_UPDATE
        • +
        + See enum Kind for a description of the parameters.
        +
        +
        Parameters:
        +
        kind - The kind of the operator.
        +
        arg - The unsigned int argument to this operator.
        +
        Returns:
        +
        The operator.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        mkOp

        +
        @Deprecated
        +public Op mkOp​(Kind kind,
        +               int arg1,
        +               int arg2)
        +        throws CVC5ApiException
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkOp(Kind, int, int). + It will be removed in a future release.
        +
        +
        Create operator of Kind: +
          +
        • BITVECTOR_EXTRACT
        • +
        • FLOATINGPOINT_TO_FP_FROM_IEEE_BV
        • +
        • FLOATINGPOINT_TO_FP_FROM_FP
        • +
        • FLOATINGPOINT_TO_FP_FROM_REAL
        • +
        • FLOATINGPOINT_TO_FP_FROM_SBV
        • +
        • FLOATINGPOINT_TO_FP_FROM_UBV
        • +
        + See enum Kind for a description of the parameters.
        +
        +
        Parameters:
        +
        kind - The kind of the operator.
        +
        arg1 - The first unsigned int argument to this operator.
        +
        arg2 - The second unsigned int argument to this operator.
        +
        Returns:
        +
        The operator.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        mkOp

        +
        @Deprecated
        +public Op mkOp​(Kind kind,
        +               int[] args)
        +        throws CVC5ApiException
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkOp(Kind, int[]). + It will be removed in a future release.
        +
        +
        Create operator of Kind: +
          +
        • TUPLE_PROJECT
        • +
        + See enum Kind for a description of the parameters.
        +
        +
        Parameters:
        +
        kind - The kind of the operator.
        +
        args - The arguments (indices) of the operator.
        +
        Returns:
        +
        The operator.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        mkTrue

        +
        @Deprecated
        +public Term mkTrue()
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkTrue(). + It will be removed in a future release.
        +
        +
        Create a Boolean true constant.
        +
        +
        Returns:
        +
        The true constant.
        +
        +
      • +
      + + + +
        +
      • +

        mkFalse

        +
        @Deprecated
        +public Term mkFalse()
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkFalse(). + It will be removed in a future release.
        +
        +
        Create a Boolean false constant.
        +
        +
        Returns:
        +
        The false constant.
        +
        +
      • +
      + + + +
        +
      • +

        mkBoolean

        +
        @Deprecated
        +public Term mkBoolean​(boolean val)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkBoolean(boolean). + It will be removed in a future release.
        +
        +
        Create a Boolean constant.
        +
        +
        Parameters:
        +
        val - The value of the constant.
        +
        Returns:
        +
        The Boolean constant.
        +
        +
      • +
      + + + +
        +
      • +

        mkPi

        +
        @Deprecated
        +public Term mkPi()
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkPi(). + It will be removed in a future release.
        +
        +
        Create a constant representing the number Pi.
        +
        +
        Returns:
        +
        A constant representing Pi.
        +
        +
      • +
      + + + +
        +
      • +

        mkInteger

        +
        @Deprecated
        +public Term mkInteger​(java.lang.String s)
        +               throws CVC5ApiException
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkInteger(String). + It will be removed in a future release.
        +
        +
        Create an integer constant from a string.
        +
        +
        Parameters:
        +
        s - The string representation of the constant, may represent an. + integer (e.g., "123").
        +
        Returns:
        +
        A constant of sort Integer assuming s represents an + integer).
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        mkInteger

        +
        @Deprecated
        +public Term mkInteger​(long val)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkInteger(long). + It will be removed in a future release.
        +
        +
        Create an integer constant from a C++ int.
        +
        +
        Parameters:
        +
        val - The value of the constant.
        +
        Returns:
        +
        A constant of sort Integer.
        +
        +
      • +
      + + + +
        +
      • +

        mkReal

        +
        @Deprecated
        +public Term mkReal​(java.lang.String s)
        +            throws CVC5ApiException
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkReal(String). + It will be removed in a future release.
        +
        +
        Create a real constant from a string.
        +
        +
        Parameters:
        +
        s - The string representation of the constant, may represent an. + integer (e.g., "123") or real constant (e.g., "12.34" or + "12/34").
        +
        Returns:
        +
        A constant of sort Real.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        mkReal

        +
        @Deprecated
        +public Term mkReal​(long val)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkReal(long). + It will be removed in a future release.
        +
        +
        Create a real constant from an integer.
        +
        +
        Parameters:
        +
        val - The value of the constant.
        +
        Returns:
        +
        A constant of sort Integer.
        +
        +
      • +
      + + + +
        +
      • +

        mkReal

        +
        @Deprecated
        +public Term mkReal​(long num,
        +                   long den)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkReal(long, long). + It will be removed in a future release.
        +
        +
        Create a real constant from a rational.
        +
        +
        Parameters:
        +
        num - The value of the numerator.
        +
        den - The value of the denominator.
        +
        Returns:
        +
        A constant of sort Real.
        +
        +
      • +
      + + + +
        +
      • +

        mkRegexpNone

        +
        @Deprecated
        +public Term mkRegexpNone()
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkRegexpNone(). + It will be removed in a future release.
        +
        +
        Create a regular expression none (re.none) term.
        +
        +
        Returns:
        +
        The none term.
        +
        +
      • +
      + + + +
        +
      • +

        mkRegexpAll

        +
        @Deprecated
        +public Term mkRegexpAll()
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkRegexpAll(). + It will be removed in a future release.
        +
        +
        Create a regular expression all (re.all) term.
        +
        +
        Returns:
        +
        The all term.
        +
        +
      • +
      + + + +
        +
      • +

        mkRegexpAllchar

        +
        @Deprecated
        +public Term mkRegexpAllchar()
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkRegexpAllchar(). + It will be removed in a future release.
        +
        +
        Create a regular expression allchar (re.allchar) term.
        +
        +
        Returns:
        +
        The allchar term.
        +
        +
      • +
      + + + +
        +
      • +

        mkEmptySet

        +
        @Deprecated
        +public Term mkEmptySet​(Sort sort)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkEmptySet(Sort). + It will be removed in a future release.
        +
        +
        Create a constant representing an empty set of the given sort.
        +
        +
        Parameters:
        +
        sort - The sort of the set elements.
        +
        Returns:
        +
        The empty set constant.
        +
        +
      • +
      + + + +
        +
      • +

        mkEmptyBag

        +
        @Deprecated
        +public Term mkEmptyBag​(Sort sort)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkEmptyBag(Sort). + It will be removed in a future release.
        +
        +
        Create a constant representing an empty bag of the given sort.
        +
        +
        Parameters:
        +
        sort - The sort of the bag elements.
        +
        Returns:
        +
        The empty bag constant.
        +
        +
      • +
      + + + +
        +
      • +

        mkSepEmp

        +
        @Deprecated
        +public Term mkSepEmp()
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkSepEmp(). + It will be removed in a future release.
        +
        +
        Create a separation logic empty term.
        +
        +
        Returns:
        +
        The separation logic empty term.
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        mkSepNil

        +
        @Deprecated
        +public Term mkSepNil​(Sort sort)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkSepNil(Sort). + It will be removed in a future release.
        +
        +
        Create a separation logic nil term.
        +
        +
        Parameters:
        +
        sort - The sort of the nil term.
        +
        Returns:
        +
        The separation logic nil term.
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        mkString

        +
        @Deprecated
        +public Term mkString​(java.lang.String s)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkString(String). + It will be removed in a future release.
        +
        +
        Create a String constant.
        +
        +
        Parameters:
        +
        s - The string this constant represents.
        +
        Returns:
        +
        The String constant.
        +
        +
      • +
      + + + +
        +
      • +

        mkString

        +
        @Deprecated
        +public Term mkString​(java.lang.String s,
        +                     boolean useEscSequences)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkString(String, boolean). + It will be removed in a future release.
        +
        +
        Create a String constant.
        +
        +
        Parameters:
        +
        s - The string this constant represents.
        +
        useEscSequences - Determines whether escape sequences in s + should be converted to the corresponding unicode + character.
        +
        Returns:
        +
        The String constant.
        +
        +
      • +
      + + + +
        +
      • +

        mkString

        +
        @Deprecated
        +public Term mkString​(int[] s)
        +              throws CVC5ApiException
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkString(int[]). + It will be removed in a future release.
        +
        +
        Create a String constant.
        +
        +
        Parameters:
        +
        s - A list of unsigned (unicode) values this constant represents + as string.
        +
        Returns:
        +
        The String constant.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        mkEmptySequence

        +
        @Deprecated
        +public Term mkEmptySequence​(Sort sort)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkEmptySequence(Sort). + It will be removed in a future release.
        +
        +
        Create an empty sequence of the given element sort.
        +
        +
        Parameters:
        +
        sort - The element sort of the sequence.
        +
        Returns:
        +
        The empty sequence with given element sort.
        +
        +
      • +
      + + + +
        +
      • +

        mkUniverseSet

        +
        @Deprecated
        +public Term mkUniverseSet​(Sort sort)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkUniverseSet(Sort). + It will be removed in a future release.
        +
        +
        Create a universe set of the given sort.
        +
        +
        Parameters:
        +
        sort - The sort of the set elements.
        +
        Returns:
        +
        The universe set constant.
        +
        +
      • +
      + + + +
        +
      • +

        mkBitVector

        +
        @Deprecated
        +public Term mkBitVector​(int size)
        +                 throws CVC5ApiException
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkBitVector(int). + It will be removed in a future release.
        +
        +
        Create a bit-vector constant of given size and value = 0.
        +
        +
        Parameters:
        +
        size - The bit-width of the bit-vector sort.
        +
        Returns:
        +
        The bit-vector constant.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        mkBitVector

        +
        @Deprecated
        +public Term mkBitVector​(int size,
        +                        long val)
        +                 throws CVC5ApiException
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkBitVector(int, long). + It will be removed in a future release.
        +
        +
        Create a bit-vector constant of given size and value.
        +
        +
        Parameters:
        +
        size - The bit-width of the bit-vector sort.
        +
        val - The value of the constant.
        +
        Returns:
        +
        The bit-vector constant.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        Note:
        +
        The given value must fit into a bit-vector of the given size.
        +
        +
      • +
      + + + +
        +
      • +

        mkBitVector

        +
        @Deprecated
        +public Term mkBitVector​(int size,
        +                        java.lang.String s,
        +                        int base)
        +                 throws CVC5ApiException
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkBitVector(int, String, int). + It will be removed in a future release.
        +
        +
        Create a bit-vector constant of a given bit-width from a given string of + base 2, 10 or 16.
        +
        +
        Parameters:
        +
        size - The bit-width of the constant.
        +
        s - The string representation of the constant.
        +
        base - The base of the string representation (2, 10, or 16)
        +
        Returns:
        +
        The bit-vector constant.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        Note:
        +
        The given value must fit into a bit-vector of the given size.
        +
        +
      • +
      + + + +
        +
      • +

        mkFiniteFieldElem

        +
        @Deprecated
        +public Term mkFiniteFieldElem​(java.lang.String val,
        +                              Sort sort,
        +                              int base)
        +                       throws CVC5ApiException
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkFiniteFieldElem(String, Sort, int). + It will be removed in a future release.
        +
        +
        Create a finite field constant in a given field and for a given value.
        +
        +
        Parameters:
        +
        val - The value of the constant.
        +
        sort - The sort of the finite field.
        +
        base - The base of the string representation.
        +
        Returns:
        +
        The finite field constant.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        Note:
        +
        The given value must fit into a the given finite field.
        +
        +
      • +
      + + + +
        +
      • +

        mkConstArray

        +
        @Deprecated
        +public Term mkConstArray​(Sort sort,
        +                         Term val)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkConstArray(Sort, Term). + It will be removed in a future release.
        +
        +
        Create a constant array with the provided constant value stored at + every index
        +
        +
        Parameters:
        +
        sort - The sort of the constant array (must be an array sort)
        +
        val - The constant value to store (must match the sort's element + sort).
        +
        Returns:
        +
        The constant array term.
        +
        +
      • +
      + + + +
        +
      • +

        mkFloatingPointPosInf

        +
        @Deprecated
        +public Term mkFloatingPointPosInf​(int exp,
        +                                  int sig)
        +                           throws CVC5ApiException
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkFloatingPointPosInf(int, int). + It will be removed in a future release.
        +
        +
        Create a positive infinity floating-point constant (SMT-LIB: +oo).
        +
        +
        Parameters:
        +
        exp - Number of bits in the exponent.
        +
        sig - Number of bits in the significand.
        +
        Returns:
        +
        The floating-point constant.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        mkFloatingPointNegInf

        +
        @Deprecated
        +public Term mkFloatingPointNegInf​(int exp,
        +                                  int sig)
        +                           throws CVC5ApiException
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkFloatingPointNegInf(int, int). + It will be removed in a future release.
        +
        +
        Create a negative infinity floating-point constant (SMT-LIB: -oo).
        +
        +
        Parameters:
        +
        exp - Number of bits in the exponent.
        +
        sig - Number of bits in the significand.
        +
        Returns:
        +
        The floating-point constant.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        mkFloatingPointNaN

        +
        @Deprecated
        +public Term mkFloatingPointNaN​(int exp,
        +                               int sig)
        +                        throws CVC5ApiException
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkFloatingPointNaN(int, int). + It will be removed in a future release.
        +
        +
        Create a not-a-number floating-point constant (SMT-LIB: NaN).
        +
        +
        Parameters:
        +
        exp - Number of bits in the exponent.
        +
        sig - Number of bits in the significand.
        +
        Returns:
        +
        The floating-point constant.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        mkFloatingPointPosZero

        +
        @Deprecated
        +public Term mkFloatingPointPosZero​(int exp,
        +                                   int sig)
        +                            throws CVC5ApiException
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkFloatingPointPosZero(int, int). + It will be removed in a future release.
        +
        +
        Create a positive zero floating-point constant (SMT-LIB: +zero).
        +
        +
        Parameters:
        +
        exp - Number of bits in the exponent.
        +
        sig - Number of bits in the significand.
        +
        Returns:
        +
        The floating-point constant.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        mkFloatingPointNegZero

        +
        @Deprecated
        +public Term mkFloatingPointNegZero​(int exp,
        +                                   int sig)
        +                            throws CVC5ApiException
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkFloatingPointNegZero(int, int). + It will be removed in a future release.
        +
        +
        Create a negative zero floating-point constant (SMT-LIB: -zero).
        +
        +
        Parameters:
        +
        exp - Number of bits in the exponent.
        +
        sig - Number of bits in the significand.
        +
        Returns:
        +
        The floating-point constant.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        mkRoundingMode

        +
        @Deprecated
        +public Term mkRoundingMode​(RoundingMode rm)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkRoundingMode(RoundingMode). + It will be removed in a future release.
        +
        +
        Create a rounding mode constant.
        +
        +
        Parameters:
        +
        rm - The floating point rounding mode this constant represents.
        +
        Returns:
        +
        The rounding mode.
        +
        +
      • +
      + + + +
        +
      • +

        mkFloatingPoint

        +
        @Deprecated
        +public Term mkFloatingPoint​(int exp,
        +                            int sig,
        +                            Term val)
        +                     throws CVC5ApiException
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkFloatingPoint(int, int, Term). + It will be removed in a future release.
        +
        +
        Create a floating-point value from a bit-vector given in IEEE-754 + format.
        +
        +
        Parameters:
        +
        exp - Size of the exponent.
        +
        sig - Size of the significand.
        +
        val - Value of the floating-point constant as a bit-vector term.
        +
        Returns:
        +
        The floating-point value.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        mkFloatingPoint

        +
        @Deprecated
        +public Term mkFloatingPoint​(Term sign,
        +                            Term exp,
        +                            Term sig)
        +                     throws CVC5ApiException
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkFloatingPoint(Term, Term, Term). + It will be removed in a future release.
        +
        +
        Create a floating-point value from its three IEEE-754 bit-vector value + components (sign bit, exponent, significand).
        +
        +
        Parameters:
        +
        sign - The sign bit.
        +
        exp - The bit-vector representing the exponent.
        +
        sig - The bit-vector representing the significand.
        +
        Returns:
        +
        The floating-point value.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        mkCardinalityConstraint

        +
        @Deprecated
        +public Term mkCardinalityConstraint​(Sort sort,
        +                                    int upperBound)
        +                             throws CVC5ApiException
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkCardinalityConstraint(Sort, int). + It will be removed in a future release.
        +
        +
        Create a cardinality constraint for an uninterpreted sort.
        +
        +
        Parameters:
        +
        sort - The sort the cardinality constraint is for.
        +
        upperBound - The upper bound on the cardinality of the sort.
        +
        Returns:
        +
        The cardinality constraint.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        mkConst

        +
        @Deprecated
        +public Term mkConst​(Sort sort,
        +                    java.lang.String symbol)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkConst(Sort, String). + It will be removed in a future release.
        +
        +
        Create a free constant. + + SMT-LIB: + + ( declare-const <symbol> <sort> ) + ( declare-fun <symbol> ( ) <sort> ) +
        +
        +
        Parameters:
        +
        sort - The sort of the constant.
        +
        symbol - The name of the constant.
        +
        Returns:
        +
        The first-order constant.
        +
        +
      • +
      + + + +
        +
      • +

        mkConst

        +
        @Deprecated
        +public Term mkConst​(Sort sort)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkConst(Sort). + It will be removed in a future release.
        +
        +
        Create a free constant with a default symbol name.
        +
        +
        Parameters:
        +
        sort - The sort of the constant.
        +
        Returns:
        +
        The first-order constant.
        +
        +
      • +
      + + + +
        +
      • +

        mkVar

        +
        @Deprecated
        +public Term mkVar​(Sort sort)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkVar(Sort). + It will be removed in a future release.
        +
        +
        Create a bound variable to be used in a binder (i.e., a quantifier, a + lambda, or a witness binder).
        +
        +
        Parameters:
        +
        sort - The sort of the variable.
        +
        Returns:
        +
        The variable.
        +
        +
      • +
      + + + +
        +
      • +

        mkVar

        +
        @Deprecated
        +public Term mkVar​(Sort sort,
        +                  java.lang.String symbol)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkVar(Sort, String). + It will be removed in a future release.
        +
        +
        Create a bound variable to be used in a binder (i.e., a quantifier, a + lambda, or a witness binder).
        +
        +
        Parameters:
        +
        sort - The sort of the variable.
        +
        symbol - The name of the variable.
        +
        Returns:
        +
        The variable.
        +
        +
      • +
      + + + +
        +
      • +

        mkDatatypeConstructorDecl

        +
        @Deprecated
        +public DatatypeConstructorDecl mkDatatypeConstructorDecl​(java.lang.String name)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkDatatypeConstructorDecl(String). + It will be removed in a future release.
        +
        +
        Create a datatype constructor declaration.
        +
        +
        Parameters:
        +
        name - The name of the datatype constructor.
        +
        Returns:
        +
        The DatatypeConstructorDecl.
        +
        +
      • +
      + + + +
        +
      • +

        mkDatatypeDecl

        +
        @Deprecated
        +public DatatypeDecl mkDatatypeDecl​(java.lang.String name)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkDatatypeDecl(String). + It will be removed in a future release.
        +
        +
        Create a datatype declaration.
        +
        +
        Parameters:
        +
        name - The name of the datatype.
        +
        Returns:
        +
        The DatatypeDecl.
        +
        +
      • +
      + + + +
        +
      • +

        mkDatatypeDecl

        +
        @Deprecated
        +public DatatypeDecl mkDatatypeDecl​(java.lang.String name,
        +                                   boolean isCoDatatype)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkDatatypeDecl(String, boolean). + It will be removed in a future release.
        +
        +
        Create a datatype declaration.
        +
        +
        Parameters:
        +
        name - The name of the datatype.
        +
        isCoDatatype - True if a codatatype is to be constructed.
        +
        Returns:
        +
        The DatatypeDecl.
        +
        +
      • +
      + + + +
        +
      • +

        mkDatatypeDecl

        +
        @Deprecated
        +public DatatypeDecl mkDatatypeDecl​(java.lang.String name,
        +                                   Sort[] params)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkDatatypeDecl(String, Sort[]). + It will be removed in a future release.
        +
        +
        Create a datatype declaration. + + Create sorts parameter with mkParamSort(String).
        +
        +
        Parameters:
        +
        name - The name of the datatype.
        +
        params - A list of sort parameters.
        +
        Returns:
        +
        The DatatypeDecl.
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        mkDatatypeDecl

        +
        @Deprecated
        +public DatatypeDecl mkDatatypeDecl​(java.lang.String name,
        +                                   Sort[] params,
        +                                   boolean isCoDatatype)
        +
        Deprecated. +
        This function is deprecated and replaced by + TermManager.mkDatatypeDecl(String, Sort[]). + It will be removed in a future release.
        +
        +
        Create a datatype declaration. + + Create sorts parameter with mkParamSort(String).
        +
        +
        Parameters:
        +
        name - The name of the datatype.
        +
        params - A list of sort parameters.
        +
        isCoDatatype - True if a codatatype is to be constructed.
        +
        Returns:
        +
        The DatatypeDecl.
        +
        +
      • +
      + + + +
        +
      • +

        simplify

        +
        public Term simplify​(Term t)
        +
        Simplify a term or formula based on rewriting.
        +
        +
        Parameters:
        +
        t - The term to simplify.
        +
        Returns:
        +
        The simplified term.
        +
        Note:
        +
        This function is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        simplify

        +
        public Term simplify​(Term t,
        +                     boolean applySubs)
        +
        Simplify a term or formula based on rewriting and (optionally) applying + substitutions for solved variables. + + If applySubs is true, then for example, if `(= x 0)` was asserted to this + solver, this method may replace occurrences of `x` with `0`.
        +
        +
        Parameters:
        +
        t - The term to simplify.
        +
        applySubs - Whether to apply substitutions for solved variables.
        +
        Returns:
        +
        The simplified term.
        +
        Note:
        +
        This function is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        assertFormula

        +
        public void assertFormula​(Term term)
        +
        Assert a formula. + SMT-LIB: + + ( assert <term> ) +
        +
        +
        Parameters:
        +
        term - The formula to assert.
        +
        +
      • +
      + + + +
        +
      • +

        checkSat

        +
        public Result checkSat()
        +
        Check satisfiability. + + SMT-LIB: + + ( check-sat ) +
        +
        +
        Returns:
        +
        The result of the satisfiability check.
        +
        +
      • +
      + + + +
        +
      • +

        checkSatAssuming

        +
        public Result checkSatAssuming​(Term assumption)
        +
        Check satisfiability assuming the given formula. + + SMT-LIB: + + ( check-sat-assuming ( <prop_literal> ) ) +
        +
        +
        Parameters:
        +
        assumption - The formula to assume.
        +
        Returns:
        +
        The result of the satisfiability check.
        +
        +
      • +
      + + + +
        +
      • +

        checkSatAssuming

        +
        public Result checkSatAssuming​(Term[] assumptions)
        +
        Check satisfiability assuming the given formulas. + + SMT-LIB: + + ( check-sat-assuming ( <prop_literal>+ ) ) +
        +
        +
        Parameters:
        +
        assumptions - The formulas to assume.
        +
        Returns:
        +
        The result of the satisfiability check.
        +
        +
      • +
      + + + +
        +
      • +

        declareDatatype

        +
        public Sort declareDatatype​(java.lang.String symbol,
        +                            DatatypeConstructorDecl[] ctors)
        +
        Create datatype sort. + + SMT-LIB: + + ( declare-datatype <symbol> <datatype_decl> ) +
        +
        +
        Parameters:
        +
        symbol - The name of the datatype sort.
        +
        ctors - The constructor declarations of the datatype sort.
        +
        Returns:
        +
        The datatype sort.
        +
        +
      • +
      + + + +
        +
      • +

        declareFun

        +
        public Term declareFun​(java.lang.String symbol,
        +                       Sort[] sorts,
        +                       Sort sort)
        +
        Declare n-ary function symbol. + + SMT-LIB: + + ( declare-fun <symbol> ( <sort>* ) <sort> ) +
        +
        +
        Parameters:
        +
        symbol - The name of the function.
        +
        sorts - The sorts of the parameters to this function.
        +
        sort - The sort of the return value of this function.
        +
        Returns:
        +
        The function.
        +
        +
      • +
      + + + +
        +
      • +

        declareFun

        +
        public Term declareFun​(java.lang.String symbol,
        +                       Sort[] sorts,
        +                       Sort sort,
        +                       boolean fresh)
        +
        Declare n-ary function symbol. + + SMT-LIB: + + ( declare-fun <symbol> ( <sort>* ) <sort> ) +
        +
        +
        Parameters:
        +
        symbol - The name of the function.
        +
        sorts - The sorts of the parameters to this function.
        +
        sort - The sort of the return value of this function.
        +
        fresh - If true, then this method always returns a new Term. + Otherwise, this method will always return the same Term + for each call with the given sorts and symbol where fresh is false.
        +
        Returns:
        +
        The function.
        +
        +
      • +
      + + + +
        +
      • +

        declareSort

        +
        public Sort declareSort​(java.lang.String symbol,
        +                        int arity)
        +                 throws CVC5ApiException
        +
        Declare uninterpreted sort. + + SMT-LIB: + + ( declare-sort <symbol> <numeral> ) +
        +
        +
        Parameters:
        +
        symbol - The name of the sort.
        +
        arity - The arity of the sort.
        +
        Returns:
        +
        The sort.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        Note:
        +
        This corresponds to mkUninterpretedSort() const if arity = 0, and + to mkUninterpretedSortConstructorSort() const if arity > 0.
        +
        +
      • +
      + + + +
        +
      • +

        declareSort

        +
        public Sort declareSort​(java.lang.String symbol,
        +                        int arity,
        +                        boolean fresh)
        +                 throws CVC5ApiException
        +
        Declare uninterpreted sort. + + SMT-LIB: + + ( declare-sort <symbol> <numeral> ) +
        +
        +
        Parameters:
        +
        symbol - The name of the sort.
        +
        arity - The arity of the sort.
        +
        fresh - If true, then this method always returns a new Sort. + Otherwise, this method will always return the same Sort + for each call with the given arity and symbol where fresh is false.
        +
        Returns:
        +
        The sort.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        Note:
        +
        This corresponds to mkUninterpretedSort() const if arity = 0, and + to mkUninterpretedSortConstructorSort() const if arity > 0.
        +
        +
      • +
      + + + +
        +
      • +

        defineFun

        +
        public Term defineFun​(java.lang.String symbol,
        +                      Term[] boundVars,
        +                      Sort sort,
        +                      Term term)
        +
        Define n-ary function in the current context. + + SMT-LIB: + + ( define-fun <function_def> ) +
        +
        +
        Parameters:
        +
        symbol - The name of the function.
        +
        boundVars - The parameters to this function.
        +
        sort - The sort of the return value of this function.
        +
        term - The function body.
        +
        Returns:
        +
        The function.
        +
        +
      • +
      + + + +
        +
      • +

        defineFun

        +
        public Term defineFun​(java.lang.String symbol,
        +                      Term[] boundVars,
        +                      Sort sort,
        +                      Term term,
        +                      boolean global)
        +
        Define n-ary function. + + SMT-LIB: + + ( define-fun <function_def> ) +
        +
        +
        Parameters:
        +
        symbol - The name of the function.
        +
        boundVars - The parameters to this function.
        +
        sort - The sort of the return value of this function.
        +
        term - The function body.
        +
        global - Determines whether this definition is global (i.e., persists + when popping the context).
        +
        Returns:
        +
        The function.
        +
        +
      • +
      + + + +
        +
      • +

        defineFunRec

        +
        public Term defineFunRec​(java.lang.String symbol,
        +                         Term[] boundVars,
        +                         Sort sort,
        +                         Term term)
        +
        Define recursive function in the current context. + + SMT-LIB: + + ( define-fun-rec <function_def> ) +
        +
        +
        Parameters:
        +
        symbol - The name of the function.
        +
        boundVars - The parameters to this function.
        +
        sort - The sort of the return value of this function.
        +
        term - The function body.
        +
        Returns:
        +
        The function.
        +
        +
      • +
      + + + +
        +
      • +

        defineFunRec

        +
        public Term defineFunRec​(java.lang.String symbol,
        +                         Term[] boundVars,
        +                         Sort sort,
        +                         Term term,
        +                         boolean global)
        +
        Define recursive function. + + SMT-LIB: + + ( define-fun-rec <function_def> ) +
        +
        +
        Parameters:
        +
        symbol - The name of the function.
        +
        boundVars - The parameters to this function.
        +
        sort - The sort of the return value of this function.
        +
        term - The function body.
        +
        global - Determines whether this definition is global (i.e., persists + when popping the context).
        +
        Returns:
        +
        The function.
        +
        +
      • +
      + + + +
        +
      • +

        defineFunRec

        +
        public Term defineFunRec​(Term fun,
        +                         Term[] boundVars,
        +                         Term term)
        +
        Define recursive function in the current context. + + SMT-LIB: + + ( define-fun-rec <function_def> ) + + + Create parameter fun with mkConst(Sort).
        +
        +
        Parameters:
        +
        fun - The sorted function.
        +
        boundVars - The parameters to this function.
        +
        term - The function body.
        +
        Returns:
        +
        The function.
        +
        +
      • +
      + + + +
        +
      • +

        defineFunRec

        +
        public Term defineFunRec​(Term fun,
        +                         Term[] boundVars,
        +                         Term term,
        +                         boolean global)
        +
        Define recursive function. + + SMT-LIB: + + ( define-fun-rec <function_def> ) + + + Create parameter fun with mkConst(Sort).
        +
        +
        Parameters:
        +
        fun - The sorted function.
        +
        boundVars - The parameters to this function.
        +
        term - The function body.
        +
        global - Determines whether this definition is global (i.e., persists + when popping the context).
        +
        Returns:
        +
        The function.
        +
        +
      • +
      + + + +
        +
      • +

        defineFunsRec

        +
        public void defineFunsRec​(Term[] funs,
        +                          Term[][] boundVars,
        +                          Term[] terms)
        +
        Define recursive functions in the current context. + + SMT-LIB: + + ( define-funs-rec ( <function_decl>^{n+1} ) ( <term>^{n+1} ) ) + + + Create elements of parameter funs with + mkConst(Sort).
        +
        +
        Parameters:
        +
        funs - The sorted functions.
        +
        boundVars - The list of parameters to the functions.
        +
        terms - The list of function bodies of the functions.
        +
        +
      • +
      + + + +
        +
      • +

        defineFunsRec

        +
        public void defineFunsRec​(Term[] funs,
        +                          Term[][] boundVars,
        +                          Term[] terms,
        +                          boolean global)
        +
        Define recursive functions. + + SMT-LIB: + + ( define-funs-rec ( <function_decl>^{n+1} ) ( <term>^{n+1} ) ) + + + Create elements of parameter funs with + mkConst(Sort).
        +
        +
        Parameters:
        +
        funs - The sorted functions.
        +
        boundVars - The list of parameters to the functions.
        +
        terms - The list of function bodies of the functions.
        +
        global - Determines whether this definition is global (i.e., persists + when popping the context).
        +
        +
      • +
      + + + +
        +
      • +

        getLearnedLiterals

        +
        public Term[] getLearnedLiterals()
        +
        Get a list of input literals that are entailed by the current set of + assertions. + + SMT-LIB: + + ( get-learned-literals ) +
        +
        +
        Returns:
        +
        The list of learned literals.
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        getLearnedLiterals

        +
        public Term[] getLearnedLiterals​(LearnedLitType type)
        +
        Get a list of literals that are entailed by the current set of assertions. + + SMT-LIB: + + ( get-learned-literals :type ) +
        +
        +
        Parameters:
        +
        type - The type of learned literals to return
        +
        Returns:
        +
        The list of learned literals.
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        getAssertions

        +
        public Term[] getAssertions()
        +
        Get the list of asserted formulas. + + SMT-LIB: + + ( get-assertions ) +
        +
        +
        Returns:
        +
        The list of asserted formulas.
        +
        +
      • +
      + + + +
        +
      • +

        getInfo

        +
        public java.lang.String getInfo​(java.lang.String flag)
        +
        Get info from the solver. + SMT-LIB: ( get-info <info_flag> )
        +
        +
        Parameters:
        +
        flag - The get-info flag.
        +
        Returns:
        +
        The info.
        +
        +
      • +
      + + + +
        +
      • +

        getOption

        +
        public java.lang.String getOption​(java.lang.String option)
        +
        Get the value of a given option. + SMT-LIB: + + ( get-option <keyword> ) +
        +
        +
        Parameters:
        +
        option - The option for which the value is queried.
        +
        Returns:
        +
        A string representation of the option value.
        +
        +
      • +
      + + + + + + + +
        +
      • +

        getOptionInfo

        +
        public OptionInfo getOptionInfo​(java.lang.String option)
        +
        Get some information about the given option. + + Check the OptionInfo class for more details on which information + is available.
        +
        +
        Parameters:
        +
        option - The name of the option.
        +
        Returns:
        +
        Information about the given option.
        +
        +
      • +
      + + + +
        +
      • +

        getUnsatAssumptions

        +
        public Term[] getUnsatAssumptions()
        +
        Get the set of unsat ("failed") assumptions. + + SMT-LIB: + + ( get-unsat-assumptions ) + + + Requires to enable option produce-unsat-assumptions.
        +
        +
        Returns:
        +
        The set of unsat assumptions.
        +
        +
      • +
      + + + +
        +
      • +

        getUnsatCore

        +
        public Term[] getUnsatCore()
        +
        Get the unsatisfiable core. + SMT-LIB: + + (get-unsat-core) + + Requires to enable option produce-unsat-cores.
        +
        +
        Returns:
        +
        A set of terms representing the unsatisfiable core.
        +
        Note:
        +
        In contrast to SMT-LIB, cvc5's API does not distinguish between + named and unnamed assertions when producing an unsatisfiable + core. Additionally, the API allows this option to be called after + a check with assumptions. A subset of those assumptions may be + included in the unsatisfiable core returned by this method.
        +
        +
      • +
      + + + +
        +
      • +

        getUnsatCoreLemmas

        +
        public Term[] getUnsatCoreLemmas()
        +
        Get the lemmas used to derive unsatisfiability. + SMT-LIB: + + (get-unsat-core-lemmas) + + Requires the SAT proof unsat core mode, so to enable option unsat-core-mode=sat-proof
        +
        +
        Returns:
        +
        A set of terms representing the lemmas used to derive + unsatisfiability.
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        getDifficulty

        +
        public java.util.Map<Term,​Term> getDifficulty()
        +
        Get a difficulty estimate for an asserted formula. This method is + intended to be called immediately after any response to a checkSat.
        +
        +
        Returns:
        +
        A map from (a subset of) the input assertions to a real value that. + is an estimate of how difficult each assertion was to solve. Unmentioned + assertions can be assumed to have zero difficulty.
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        getTimeoutCore

        +
        public Pair<Result,​Term[]> getTimeoutCore()
        +
        Get a timeout core, which computes a subset of the current assertions that + cause a timeout. Note it does not require being proceeded by a call to + checkSat. + + SMT-LIB: + + (get-timeout-core) +
        +
        +
        Returns:
        +
        The result of the timeout core computation. This is a pair + containing a result and a list of formulas. If the result is unknown + and the reason is timeout, then the list of formulas correspond to a + subset of the current assertions that cause a timeout in the specified + time timeout-core-timeout. + If the result is unsat, then the list of formulas correspond to an + unsat core for the current assertions. Otherwise, the result is sat, + indicating that the current assertions are satisfiable, and + the list of formulas is empty. + + This method may make multiple checks for satisfiability internally, each + limited by the timeout value given by timeout-core-timeout.
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        getTimeoutCoreAssuming

        +
        public Pair<Result,​Term[]> getTimeoutCoreAssuming​(Term[] assumptions)
        +
        Get a timeout core, which computes a subset of the given assumptions that + cause a timeout when added to the current assertions. Note it does not + require being proceeded by a call to checkSat. + + SMT-LIB: + + (get-timeout-core) +
        +
        +
        Parameters:
        +
        assumptions - The formulas to assume.
        +
        Returns:
        +
        The result of the timeout core computation. This is a pair + containing a result and a list of formulas. If the result is unknown + and the reason is timeout, then the list of formulas correspond to a + subset of assumptions that cause a timeout when added to the current + assertions in the specified time timeout-core-timeout. + If the result is unsat, then the list of formulas plus the current + assertions correspond to an unsat core for the current assertions. + Otherwise, the result is sat, indicating that the given assumptions plus + the current assertions are satisfiable, and the list of formulas is empty. + + This method may make multiple checks for satisfiability internally, each + limited by the timeout value given by timeout-core-timeout.
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        getProof

        +
        public Proof[] getProof()
        +
        Get refutation proof for the most recent call to checkSat. + + SMT-LIB: + + ( get-proof ) + + + Requires to enable option produce-proofs.
        +
        +
        Returns:
        +
        A vector of proof nodes. This is equivalent to getProof + when c is FULL.
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        getProof

        +
        public Proof[] getProof​(ProofComponent c)
        +
        Get a proof associated with the most recent call to checkSat. + + SMT-LIB: + + ( get-proof :c) + + + Requires to enable option produce-proofs.
        +
        +
        Parameters:
        +
        c - The component of the proof to return
        +
        Returns:
        +
        A vector of proof nodes.
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        proofToString

        +
        public java.lang.String proofToString​(Proof proof)
        +
        Prints a proof into a string with a slected proof format mode. + Other aspects of printing are taken from the solver options.
        +
        +
        Parameters:
        +
        proof - A proof.
        +
        Returns:
        +
        The proof printed in the current format.
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        proofToString

        +
        public java.lang.String proofToString​(Proof proof,
        +                                      ProofFormat format)
        +
        Prints a proof into a string with a slected proof format mode. + Other aspects of printing are taken from the solver options.
        +
        +
        Parameters:
        +
        proof - A proof.
        +
        format - The proof format used to print the proof. Must be + `PROOF_FORMAT_NONE` if the proof is from a component other than + `PROOF_COMPONENT_FULL`.
        +
        Returns:
        +
        The proof printed in the current format.
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        proofToString

        +
        public java.lang.String proofToString​(Proof proof,
        +                                      ProofFormat format,
        +                                      java.util.Map assertionNames)
        +
        Prints a proof into a string with a slected proof format mode. + Other aspects of printing are taken from the solver options.
        +
        +
        Parameters:
        +
        proof - A proof.
        +
        format - The proof format used to print the proof. Must be + `PROOF_FORMAT_NONE` if the proof is from a component other than + `PROOF_COMPONENT_FULL`.
        +
        assertionNames - Mapping between assertions and names, if they were + given by the user. This is used by the Alethe proof format.
        +
        Returns:
        +
        The proof printed in the current format.
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        getValue

        +
        public Term getValue​(Term term)
        +
        Get the value of the given term in the current model. + + SMT-LIB: + + ( get-value ( <term> ) ) +
        +
        +
        Parameters:
        +
        term - The term for which the value is queried.
        +
        Returns:
        +
        The value of the given term.
        +
        +
      • +
      + + + +
        +
      • +

        getValue

        +
        public Term[] getValue​(Term[] terms)
        +
        Get the values of the given terms in the current model. + + SMT-LIB: + + ( get-value ( <term>+ ) ) +
        +
        +
        Parameters:
        +
        terms - The terms for which the value is queried.
        +
        Returns:
        +
        The values of the given terms.
        +
        +
      • +
      + + + +
        +
      • +

        getModelDomainElements

        +
        public Term[] getModelDomainElements​(Sort s)
        +
        Get the domain elements of uninterpreted sort s in the current model. + + The current model interprets s as the finite sort whose domain + elements are given in the return value of this method.
        +
        +
        Parameters:
        +
        s - The uninterpreted sort in question.
        +
        Returns:
        +
        The domain elements of s in the current model.
        +
        +
      • +
      + + + +
        +
      • +

        isModelCoreSymbol

        +
        public boolean isModelCoreSymbol​(Term v)
        +
        This returns false if the model value of free constant v was not + essential for showing the satisfiability of the last call to + checkSat() using the current model. This method will only + return false (for any v) if the option model-cores has + been set.
        +
        +
        Parameters:
        +
        v - The term in question.
        +
        Returns:
        +
        True if v is a model core symbol.
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        getModel

        +
        public java.lang.String getModel​(Sort[] sorts,
        +                                 Term[] vars)
        +
        Get the model + + SMT-LIB: + + ( get-model ) + + + Requires to enable option produce-models.
        +
        +
        Parameters:
        +
        sorts - The list of uninterpreted sorts that should be printed in the. + model.
        +
        vars - The list of free constants that should be printed in the. + model. A subset of these may be printed based on + isModelCoreSymbol(Term).
        +
        Returns:
        +
        A string representing the model.
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        getQuantifierElimination

        +
        public Term getQuantifierElimination​(Term q)
        +
        Do quantifier elimination. + + SMT-LIB: + + ( get-qe <q> ) + + + Quantifier Elimination is is only complete for logics such as LRA, + LIA and BV.
        +
        +
        Parameters:
        +
        q - A quantified formula of the form: + Q x1...xn. P( x1...xn, y1...yn ) + where P( x1...xn, y1...yn ) is a quantifier-free formula.
        +
        Returns:
        +
        A formula ret such that, given the current set of formulas + A asserted to this solver: + - ( A && q ) and ( A && ret ) are equivalent + - ret is quantifier-free formula containing only free + variables in y1...yn.
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        getQuantifierEliminationDisjunct

        +
        public Term getQuantifierEliminationDisjunct​(Term q)
        +
        Do partial quantifier elimination, which can be used for incrementally + computing the result of a quantifier elimination. + + SMT-LIB: + + ( get-qe-disjunct <q> ) + + + Quantifier Elimination is is only complete for logics such as LRA, + LIA and BV.
        +
        +
        Parameters:
        +
        q - A quantified formula of the form: + Q x1...xn. P( x1...xn, y1...yn ) + where P( x1...xn, y1...yn ) is a quantifier-free formula.
        +
        Returns:
        +
        A formula ret such that, given the current set of formulas A + asserted to this solver: + - (A ^ q) => (A ^ ret) if Q is forall or + (A ^ ret) => (A ^ q) if Q is exists, + - ret is quantifier-free formula containing only free variables + in y1...yn, + - If Q is exists, let A && Q_n be the formula + A && ~(ret && Q_1) && ... && ~(ret && Q_n) + where for each i=1,...n, formula ret && Q_i + is the result of calling + getQuantifierEliminationDisjunct(Term) + for q with the set of assertions + A && Q_{i-1}. Similarly, if Q is forall, then + let A && Q_n be + A && (ret && Q_1) && ... && (ret&& Q_n) + where ret && Q_i is the same as above. In either case, + we have that ret && Q_j will eventually be true or + false, for some finite j.
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        declareSepHeap

        +
        public void declareSepHeap​(Sort locSort,
        +                           Sort dataSort)
        +
        When using separation logic, this sets the location sort and the + datatype sort to the given ones. This method should be invoked exactly + once, before any separation logic constraints are provided.
        +
        +
        Parameters:
        +
        locSort - The location sort of the heap.
        +
        dataSort - The data sort of the heap.
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        getValueSepHeap

        +
        public Term getValueSepHeap()
        +
        When using separation logic, obtain the term for the heap.
        +
        +
        Returns:
        +
        The term for the heap.
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        getValueSepNil

        +
        public Term getValueSepNil()
        +
        When using separation logic, obtain the term for nil.
        +
        +
        Returns:
        +
        The term for nil.
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        declarePool

        +
        public Term declarePool​(java.lang.String symbol,
        +                        Sort sort,
        +                        Term[] initValue)
        +
        Declare a symbolic pool of terms with the given initial value. + + SMT-LIB: + + ( declare-pool <symbol> <sort> ( <term>* ) ) +
        +
        +
        Parameters:
        +
        symbol - The name of the pool.
        +
        sort - The sort of the elements of the pool.
        +
        initValue - The initial value of the pool.
        +
        Returns:
        +
        The pool.
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        declareOracleFun

        +
        public Term declareOracleFun​(java.lang.String symbol,
        +                             Sort[] sorts,
        +                             Sort sort,
        +                             IOracle oracle)
        +
        Declare an oracle function with reference to an implementation. + + Oracle functions have a different semantics with respect to ordinary + declared functions. In particular, for an input to be satisfiable, + its oracle functions are implicitly universally quantified. + + This method is used in part for implementing this command: + + + (declare-oracle-fun <sym> (<sort>*) <sort> <sym>) + + + + In particular, the above command is implemented by constructing a + function over terms that wraps a call to binary sym via a text interface.
        +
        +
        Parameters:
        +
        symbol - The name of the oracle
        +
        sorts - The sorts of the parameters to this function
        +
        sort - The sort of the return value of this function
        +
        oracle - An object that implements the oracle interface.
        +
        Returns:
        +
        The oracle function
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        addPlugin

        +
        public void addPlugin​(AbstractPlugin p)
        +
        Add plugin to this solver. Its callbacks will be called throughout the + lifetime of this solver.
        +
        +
        Parameters:
        +
        p - The plugin to add to this solver.
        +
        +
      • +
      + + + +
        +
      • +

        pop

        +
        public void pop()
        +         throws CVC5ApiException
        +
        Pop a level from the assertion stack. + + SMT-LIB: + + ( pop <numeral> ) +
        +
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        pop

        +
        public void pop​(int nscopes)
        +         throws CVC5ApiException
        +
        Pop (a) level(s) from the assertion stack. + + SMT-LIB: + + ( pop <numeral> ) +
        +
        +
        Parameters:
        +
        nscopes - The number of levels to pop.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        getInterpolant

        +
        public Term getInterpolant​(Term conj)
        +
        Get an interpolant. + +

        + Given that A->B is valid, + this function determines a term I + over the shared variables of A and + B, + such that A->I and I->B + are valid. A is the current set of + assertions and B is the conjecture, given as conj. +

        + + SMT-LIB: + + ( get-interpolant <symbol> <conj> ) +
        +
        +
        Parameters:
        +
        conj - The conjecture term.
        +
        Returns:
        +
        The interpolant, if an interpolant exists, else the null term.
        +
        Note:
        +
        In SMT-LIB, <symbol> assigns a symbol to the interpolant., Requires option produce-interpolants to be set to a mode + different from none., This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        getInterpolant

        +
        public Term getInterpolant​(Term conj,
        +                           Grammar grammar)
        +
        Get an interpolant. + +

        + Given that A->B is valid, + this function determines a term I, + over the shared variables of A and + B, + with respect to a given grammar, such + that A->I and I->B are valid, if such a term exits. + A is the current set of assertions and B is the + conjecture, given as conj. +

        + + SMT-LIB: + + ( get-interpolant <symbol> <conj> <g> ) +
        +
        +
        Parameters:
        +
        conj - The conjecture term.
        +
        grammar - The grammar for the interpolant I.
        +
        Returns:
        +
        The interpolant, if an interpolant exists, else the null term.
        +
        Note:
        +
        In SMT-LIB, <symbol> assigns a symbol to the interpolant., Requires option produce-interpolants to be set to a mode + different from none., This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        getInterpolantNext

        +
        public Term getInterpolantNext()
        +
        Get the next interpolant. + + Can only be called immediately after a successful call to + get-interpolant or get-interpolant-next. Is guaranteed to + produce a syntactically different interpolant wrt the last returned + interpolant if successful. + + SMT-LIB: + + (get-interpolant-next) + + + Requires to enable incremental mode, and option + produce-interpolants to be set to a mode different from + none.
        +
        +
        Returns:
        +
        A Term I such that A->I and I->B are valid, + where A is the current set of assertions and B + is given in the input by conj on the last call to getInterpolant, + or the null term if such a term cannot be found.
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        getAbduct

        +
        public Term getAbduct​(Term conj)
        +
        Get an abduct. + + SMT-LIB: + + ( get-abduct <conj> ) + + Requires enabling option produce-abducts.
        +
        +
        Parameters:
        +
        conj - The conjecture term.
        +
        Returns:
        +
        A term C such that A && C is satisfiable, and + A && ~B && C is unsatisfiable, where A is the + current set of assertions and B is given in the input by + conj, or the null term if such a term cannot be found.
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        getAbduct

        +
        public Term getAbduct​(Term conj,
        +                      Grammar grammar)
        +
        Get an abduct. + + SMT-LIB: + + ( get-abduct <conj> <g> ) + + + Requires enabling option produce-abducts.
        +
        +
        Parameters:
        +
        conj - The conjecture term.
        +
        grammar - The grammar for the abduct C.
        +
        Returns:
        +
        A term C such that A && C is satisfiable, and + A && ~B && C is unsatisfiable, where A is the + current set of assertions and B is given in the input by + conj, or the null term if such a term cannot be found.
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        getAbductNext

        +
        public Term getAbductNext()
        +
        Get the next abduct. Can only be called immediately after a successful + call to get-abduct or get-abduct-next. Is guaranteed to produce a + syntactically different abduct wrt the last returned abduct if successful. + SMT-LIB: + + ( get-abduct-next ) + + Requires enabling incremental mode and option produce-abducts.
        +
        +
        Returns:
        +
        A term C such that A^C is satisfiable, and A^~B^C is. + unsatisfiable, where A is the current set of assertions and B is + given in the input by conj in the last call to getAbduct, or the + null term if such a term cannot be found.
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        blockModel

        +
        public void blockModel​(BlockModelsMode mode)
        +
        Block the current model. + + Can be called only if immediately preceded by a SAT or INVALID query. + + SMT-LIB: + + ( block-model ) + + + Requires enabling option produce-models.
        +
        +
        Parameters:
        +
        mode - The mode to use for blocking.
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        blockModelValues

        +
        public void blockModelValues​(Term[] terms)
        +
        Block the current model values of (at least) the values in terms. + + Can be called only if immediately preceded by a SAT query. + + SMT-LIB: + + ( block-model-values ( <terms>+ ) ) + + + Requires enabling option produce-models.
        +
        +
        Parameters:
        +
        terms - The model values to block.
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        getInstantiations

        +
        public java.lang.String getInstantiations()
        +
        Get a string that contains information about all instantiations made by + the quantifiers module.
        +
        +
        Returns:
        +
        The string representing the information about all instantiations.
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        push

        +
        public void push()
        +          throws CVC5ApiException
        +
        Push a level to the assertion stack. + + SMT-LIB: + + ( push <numeral> ) +
        +
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        push

        +
        public void push​(int nscopes)
        +          throws CVC5ApiException
        +
        Push (a) level(s) to the assertion stack. + + SMT-LIB: + + ( push <numeral> ) +
        +
        +
        Parameters:
        +
        nscopes - The number of levels to push.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        resetAssertions

        +
        public void resetAssertions()
        +
        Remove all assertions. + + SMT-LIB: + + ( reset-assertions ) +
        +
      • +
      + + + +
        +
      • +

        setInfo

        +
        public void setInfo​(java.lang.String keyword,
        +                    java.lang.String value)
        +             throws CVC5ApiException
        +
        Set info. + + SMT-LIB: + + ( set-info <attribute> ) +
        +
        +
        Parameters:
        +
        keyword - The info flag.
        +
        value - The value of the info flag.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        setLogic

        +
        public void setLogic​(java.lang.String logic)
        +              throws CVC5ApiException
        +
        Set logic. + + SMT-LIB: + + ( set-logic <symbol> ) +
        +
        +
        Parameters:
        +
        logic - The logic to set.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        isLogicSet

        +
        public boolean isLogicSet()
        +
        Is logic set? Returns whether we called setLogic yet for this solver.
        +
        +
        Returns:
        +
        whether we called setLogic yet for this solver.
        +
        +
      • +
      + + + +
        +
      • +

        getLogic

        +
        public java.lang.String getLogic()
        +                          throws CVC5ApiException
        +
        Get the logic set the solver.
        +
        +
        Returns:
        +
        The logic used by the solver.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        Note:
        +
        Asserts isLogicSet().
        +
        +
      • +
      + + + +
        +
      • +

        setOption

        +
        public void setOption​(java.lang.String option,
        +                      java.lang.String value)
        +
        Set option. + + SMT-LIB: + + ( set-option <option> ) +
        +
        +
        Parameters:
        +
        option - The option name.
        +
        value - The option value.
        +
        +
      • +
      + + + +
        +
      • +

        declareSygusVar

        +
        public Term declareSygusVar​(java.lang.String symbol,
        +                            Sort sort)
        +
        Append symbol to the current list of universal variables. + + SyGuS v2: + + ( declare-var <symbol> <sort> ) +
        +
        +
        Parameters:
        +
        sort - The sort of the universal variable.
        +
        symbol - The name of the universal variable.
        +
        Returns:
        +
        The universal variable.
        +
        +
      • +
      + + + +
        +
      • +

        mkGrammar

        +
        public Grammar mkGrammar​(Term[] boundVars,
        +                         Term[] ntSymbols)
        +
        Create a Sygus grammar. + + The first non-terminal is treated as the starting non-terminal, so the + order of non-terminals matters.
        +
        +
        Parameters:
        +
        boundVars - The parameters to corresponding synth-fun/synth-inv.
        +
        ntSymbols - The pre-declaration of the non-terminal symbols.
        +
        Returns:
        +
        The grammar.
        +
        +
      • +
      + + + +
        +
      • +

        synthFun

        +
        public Term synthFun​(java.lang.String symbol,
        +                     Term[] boundVars,
        +                     Sort sort)
        +
        Synthesize n-ary function. + + SyGuS v2: + + ( synth-fun <symbol> ( <boundVars>* ) <sort> ) +
        +
        +
        Parameters:
        +
        symbol - The name of the function.
        +
        boundVars - The parameters to this function.
        +
        sort - The sort of the return value of this function.
        +
        Returns:
        +
        The function.
        +
        +
      • +
      + + + +
        +
      • +

        synthFun

        +
        public Term synthFun​(java.lang.String symbol,
        +                     Term[] boundVars,
        +                     Sort sort,
        +                     Grammar grammar)
        +
        Synthesize n-ary function following specified syntactic constraints. + + SyGuS v2: + + ( synth-fun <symbol> ( <boundVars>* ) <sort> <g> ) +
        +
        +
        Parameters:
        +
        symbol - The name of the function.
        +
        boundVars - The parameters to this function.
        +
        sort - The sort of the return value of this function.
        +
        grammar - The syntactic constraints.
        +
        Returns:
        +
        The function.
        +
        +
      • +
      + + + +
        +
      • +

        addSygusConstraint

        +
        public void addSygusConstraint​(Term term)
        +
        Add a forumla to the set of Sygus constraints. + + SyGuS v2: + + ( constraint <term> ) +
        +
        +
        Parameters:
        +
        term - The formula to add as a constraint.
        +
        +
      • +
      + + + +
        +
      • +

        getSygusConstraints

        +
        public Term[] getSygusConstraints()
        +
        Get the list of sygus constraints.
        +
        +
        Returns:
        +
        The list of sygus constraints.
        +
        +
      • +
      + + + +
        +
      • +

        addSygusAssume

        +
        public void addSygusAssume​(Term term)
        +
        Add a forumla to the set of Sygus assumptions. + + SyGuS v2: + + ( assume <term> ) +
        +
        +
        Parameters:
        +
        term - The formula to add as an assumption.
        +
        +
      • +
      + + + +
        +
      • +

        getSygusAssumptions

        +
        public Term[] getSygusAssumptions()
        +
        Get the list of sygus assumptions.
        +
        +
        Returns:
        +
        The list of sygus assumptions.
        +
        +
      • +
      + + + +
        +
      • +

        addSygusInvConstraint

        +
        public void addSygusInvConstraint​(Term inv,
        +                                  Term pre,
        +                                  Term trans,
        +                                  Term post)
        +
        Add a set of Sygus constraints to the current state that correspond to an + invariant synthesis problem. + + SyGuS v2: + + ( inv-constraint <inv> <pre> <trans> <post> ) +
        +
        +
        Parameters:
        +
        inv - The function-to-synthesize.
        +
        pre - The pre-condition.
        +
        trans - The transition relation.
        +
        post - The post-condition.
        +
        +
      • +
      + + + +
        +
      • +

        checkSynth

        +
        public SynthResult checkSynth()
        +
        Try to find a solution for the synthesis conjecture corresponding to the + current list of functions-to-synthesize, universal variables and + constraints. + + SyGuS v2: + + ( check-synth ) +
        +
        +
        Returns:
        +
        The result of the check, which is "solution" if the check found a. + solution in which case solutions are available via + getSynthSolutions, "no solution" if it was determined there is no + solution, or "unknown" otherwise.
        +
        +
      • +
      + + + +
        +
      • +

        checkSynthNext

        +
        public SynthResult checkSynthNext()
        +
        Try to find a next solution for the synthesis conjecture corresponding to + the current list of functions-to-synthesize, universal variables and + constraints. Must be called immediately after a successful call to + check-synth or check-synth-next.
        +
        +
        Returns:
        +
        The result of the check, which is "solution" if the check found a + solution in which case solutions are available via + getSynthSolutions, "no solution" if it was determined there is no + solution, or "unknown" otherwise.
        +
        Note:
        +
        Requires incremental mode. + + SyGuS v2: + + ( check-synth-next ) +
        +
        +
      • +
      + + + +
        +
      • +

        getSynthSolution

        +
        public Term getSynthSolution​(Term term)
        +
        Get the synthesis solution of the given term. + + This method should be called immediately after the solver answers unsat + for sygus input.
        +
        +
        Parameters:
        +
        term - The term for which the synthesis solution is queried.
        +
        Returns:
        +
        The synthesis solution of the given term.
        +
        +
      • +
      + + + +
        +
      • +

        getSynthSolutions

        +
        public Term[] getSynthSolutions​(Term[] terms)
        +
        Get the synthesis solutions of the given terms. + + This method should be called immediately after the solver answers unsat + for sygus input.
        +
        +
        Parameters:
        +
        terms - The terms for which the synthesis solutions is queried.
        +
        Returns:
        +
        The synthesis solutions of the given terms.
        +
        +
      • +
      + + + +
        +
      • +

        findSynth

        +
        public Term findSynth​(FindSynthTarget fst)
        +
        Find a target term of interest using sygus enumeration, with no provided + grammar. + + The solver will infer which grammar to use in this call, which by default + will be the grammars specified by the function(s)-to-synthesize in the + current context. + + SyGuS v2: + + (find-synth :target) +
        +
        +
        Parameters:
        +
        fst - The identifier specifying what kind of term to find
        +
        Returns:
        +
        The result of the find, which is the null term if this call failed.
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        findSynth

        +
        public Term findSynth​(FindSynthTarget fst,
        +                      Grammar grammar)
        +
        Find a target term of interest using sygus enumeration with a provided + grammar. + + SyGuS v2: + + (find-synth :target G) +
        +
        +
        Parameters:
        +
        fst - The identifier specifying what kind of term to find
        +
        grammar - The grammar for the term
        +
        Returns:
        +
        The result of the find, which is the null term if this call failed.
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        findSynthNext

        +
        public Term findSynthNext()
        +
        Try to find a next target term of interest using sygus enumeration. Must + be called immediately after a successful call to find-synth or + find-synth-next. + + SyGuS v2: + + (find-synth-next) +
        +
        +
        Returns:
        +
        The result of the find, which is the null term if this call failed.
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        getStatistics

        +
        public Statistics getStatistics()
        +
        Get a snapshot of the current state of the statistic values of this + solver. The returned object is completely decoupled from the solver and + will not change when the solver is used again.
        +
        +
        Returns:
        +
        A snapshot of the current state of the statistic values.
        +
        +
      • +
      + + + +
        +
      • +

        getVersion

        +
        public java.lang.String getVersion()
        +
        Get a string representation of the version of this solver.
        +
        +
        Returns:
        +
        The version string.
        +
        +
      • +
      + + + +
        +
      • +

        getPointer

        +
        public long getPointer()
        +
      • +
      + + + +
        +
      • +

        deletePointer

        +
        public void deletePointer()
        +
      • +
      + + + +
        +
      • +

        toString

        +
        public java.lang.String toString()
        +
        +
        Overrides:
        +
        toString in class java.lang.Object
        +
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Sort.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Sort.html new file mode 100644 index 0000000000..250f7a6eb7 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Sort.html @@ -0,0 +1,1783 @@ + + + + + +Sort + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Class Sort

+
+
+ +
+
    +
  • +
    +
    All Implemented Interfaces:
    +
    java.lang.Comparable<Sort>
    +
    +
    +
    public class Sort
    +extends java.lang.Object
    +implements java.lang.Comparable<Sort>
    +
    The sort of a cvc5 term.
    +
  • +
+
+
+ +
+
+
    +
  • + +
    +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        pointer

        +
        protected long pointer
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        Sort

        +
        public Sort()
        +
        Null sort
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        deletePointer

        +
        protected void deletePointer​(long pointer)
        +
      • +
      + + + +
        +
      • +

        equals

        +
        public boolean equals​(java.lang.Object s)
        +
        Comparison for structural equality.
        +
        +
        Overrides:
        +
        equals in class java.lang.Object
        +
        Parameters:
        +
        s - The sort to compare to.
        +
        Returns:
        +
        True if the sorts are equal.
        +
        +
      • +
      + + + +
        +
      • +

        compareTo

        +
        public int compareTo​(Sort s)
        +
        Comparison for ordering on sorts.
        +
        +
        Specified by:
        +
        compareTo in interface java.lang.Comparable<Sort>
        +
        Parameters:
        +
        s - The sort to compare to.
        +
        Returns:
        +
        A negative integer, zero, or a positive integer as this sort + is less than, equal to, or greater than the specified sort.
        +
        +
      • +
      + + + +
        +
      • +

        getKind

        +
        public SortKind getKind()
        +                 throws CVC5ApiException
        +
        +
        Returns:
        +
        The kind of this sort.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        hasSymbol

        +
        public boolean hasSymbol()
        +
        +
        Returns:
        +
        True if the sort has a symbol.
        +
        +
      • +
      + + + +
        +
      • +

        getSymbol

        +
        public java.lang.String getSymbol()
        +
        +
        Returns:
        +
        The raw symbol of the symbol.
        +
        Note:
        +
        Asserts hasSymbol().
        +
        +
      • +
      + + + +
        +
      • +

        isNull

        +
        public boolean isNull()
        +
        Determine if this is the null sort.
        +
        +
        Returns:
        +
        True if this Sort is the null sort.
        +
        +
      • +
      + + + +
        +
      • +

        isBoolean

        +
        public boolean isBoolean()
        +
        Determine if this is the Boolean sort (SMT-LIB: Bool).
        +
        +
        Returns:
        +
        True if this sort is the Boolean sort.
        +
        +
      • +
      + + + +
        +
      • +

        isInteger

        +
        public boolean isInteger()
        +
        Determine if this is the integer sort (SMT-LIB: Int).
        +
        +
        Returns:
        +
        True if this sort is the integer sort.
        +
        +
      • +
      + + + +
        +
      • +

        isReal

        +
        public boolean isReal()
        +
        Determine if this is the real sort (SMT-LIB: Real).
        +
        +
        Returns:
        +
        True if this sort is the real sort.
        +
        +
      • +
      + + + +
        +
      • +

        isString

        +
        public boolean isString()
        +
        Determine if this is the string sort (SMT-LIB: String)..
        +
        +
        Returns:
        +
        True if this sort is the string sort.
        +
        +
      • +
      + + + +
        +
      • +

        isRegExp

        +
        public boolean isRegExp()
        +
        Determine if this is the regular expression sort (SMT-LIB: RegLan).
        +
        +
        Returns:
        +
        True if this sort is the regular expression sort.
        +
        +
      • +
      + + + +
        +
      • +

        isRoundingMode

        +
        public boolean isRoundingMode()
        +
        Determine if this is the rounding mode sort (SMT-LIB: RoundingMode).
        +
        +
        Returns:
        +
        True if this sort is the rounding mode sort.
        +
        +
      • +
      + + + +
        +
      • +

        isBitVector

        +
        public boolean isBitVector()
        +
        Determine if this is a bit-vector sort (SMT-LIB: (_ BitVec i)).
        +
        +
        Returns:
        +
        True if this sort is a bit-vector sort.
        +
        +
      • +
      + + + +
        +
      • +

        isFiniteField

        +
        public boolean isFiniteField()
        +
        Determine if this is a finite field sort (SMT-LIB: (_ FiniteField i)).
        +
        +
        Returns:
        +
        True if this sort is a finite field sort.
        +
        +
      • +
      + + + +
        +
      • +

        isFloatingPoint

        +
        public boolean isFloatingPoint()
        +
        Determine if this is a floatingpoint sort + (SMT-LIB: (_ FloatingPoint eb sb)).
        +
        +
        Returns:
        +
        True if this sort is a floating-point sort.
        +
        +
      • +
      + + + +
        +
      • +

        isDatatype

        +
        public boolean isDatatype()
        +
        Determine if this is a datatype sort.
        +
        +
        Returns:
        +
        True if this sort is a datatype sort.
        +
        +
      • +
      + + + +
        +
      • +

        isDatatypeConstructor

        +
        public boolean isDatatypeConstructor()
        +
        Determine if this is a datatype constructor sort.
        +
        +
        Returns:
        +
        True if this sort is a datatype constructor sort.
        +
        +
      • +
      + + + +
        +
      • +

        isDatatypeSelector

        +
        public boolean isDatatypeSelector()
        +
        Determine if this is a datatype selector sort.
        +
        +
        Returns:
        +
        True if this sort is a datatype selector sort.
        +
        +
      • +
      + + + +
        +
      • +

        isDatatypeTester

        +
        public boolean isDatatypeTester()
        +
        Determine if this is a datatype tester sort.
        +
        +
        Returns:
        +
        True if this sort is a datatype tester sort.
        +
        +
      • +
      + + + +
        +
      • +

        isDatatypeUpdater

        +
        public boolean isDatatypeUpdater()
        +
        Determine if this is a datatype updater sort.
        +
        +
        Returns:
        +
        True if this sort is a datatype updater sort.
        +
        +
      • +
      + + + +
        +
      • +

        isFunction

        +
        public boolean isFunction()
        +
        Determine if this is a function sort.
        +
        +
        Returns:
        +
        True if this sort is a function sort.
        +
        +
      • +
      + + + +
        +
      • +

        isPredicate

        +
        public boolean isPredicate()
        +
        Determine if this is a predicate sort. + + A predicate sort is a function sort that maps to the Boolean sort. All + predicate sorts are also function sorts.
        +
        +
        Returns:
        +
        True if this sort is a predicate sort.
        +
        +
      • +
      + + + +
        +
      • +

        isTuple

        +
        public boolean isTuple()
        +
        Determine if this a tuple sort.
        +
        +
        Returns:
        +
        True if this sort is a tuple sort.
        +
        +
      • +
      + + + +
        +
      • +

        isNullable

        +
        public boolean isNullable()
        +
        Determine if this a nullable sort.
        +
        +
        Returns:
        +
        True if this sort is a nullable sort.
        +
        +
      • +
      + + + +
        +
      • +

        isRecord

        +
        public boolean isRecord()
        +
        Determine if this is a record sort.
        +
        +
        Returns:
        +
        True if the sort is a record sort.
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        isArray

        +
        public boolean isArray()
        +
        Determine if this is an array sort.
        +
        +
        Returns:
        +
        True if the sort is an array sort.
        +
        +
      • +
      + + + +
        +
      • +

        isSet

        +
        public boolean isSet()
        +
        Determine if this is a Set sort.
        +
        +
        Returns:
        +
        True if the sort is a Set sort.
        +
        +
      • +
      + + + +
        +
      • +

        isBag

        +
        public boolean isBag()
        +
        Determine if this is a Bag sort.
        +
        +
        Returns:
        +
        True if the sort is a Bag sort.
        +
        +
      • +
      + + + +
        +
      • +

        isSequence

        +
        public boolean isSequence()
        +
        Determine if this is a Sequence sort.
        +
        +
        Returns:
        +
        True if the sort is a Sequence sort.
        +
        +
      • +
      + + + +
        +
      • +

        isAbstract

        +
        public boolean isAbstract()
        +
        Determine if this is an abstract sort.
        +
        +
        Returns:
        +
        True if the sort is a abstract sort.
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        isUninterpretedSort

        +
        public boolean isUninterpretedSort()
        +
        Determine if this is an uninterpreted sort.
        +
        +
        Returns:
        +
        True if this is an uninterpreted sort.
        +
        +
      • +
      + + + +
        +
      • +

        isUninterpretedSortConstructor

        +
        public boolean isUninterpretedSortConstructor()
        +
        Determine if this is an uninterpreted sort constructor. + + An uninterpreted sort constructor has arity > 0 and can be instantiated + to construct uninterpreted sorts with given sort parameters.
        +
        +
        Returns:
        +
        True if this is a sort constructor kind.
        +
        +
      • +
      + + + +
        +
      • +

        isInstantiated

        +
        public boolean isInstantiated()
        +
        Determine if this is an instantiated (parametric datatype or uninterpreted + sort constructor) sort. + + An instantiated sort is a sort that has been constructed from + instantiating a sort with sort arguments + (see instantiate(Sort[])).
        +
        +
        Returns:
        +
        True if this is an instantiated sort.
        +
        +
      • +
      + + + +
        +
      • +

        getUninterpretedSortConstructor

        +
        public Sort getUninterpretedSortConstructor()
        +
        Get the associated uninterpreted sort constructor of an instantiated + uninterpreted sort.
        +
        +
        Returns:
        +
        The uninterpreted sort constructor sort.
        +
        +
      • +
      + + + +
        +
      • +

        getDatatype

        +
        public Datatype getDatatype()
        +
        +
        Returns:
        +
        The underlying datatype of a datatype sort.
        +
        +
      • +
      + + + +
        +
      • +

        instantiate

        +
        public Sort instantiate​(Sort[] params)
        +
        Instantiate a parameterized datatype sort or uninterpreted sort + constructor sort. + + Create sorts parameter with Solver.mkParamSort(String)).
        +
        +
        Parameters:
        +
        params - The list of sort parameters to instantiate with.
        +
        Returns:
        +
        The instantiated sort.
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        getInstantiatedParameters

        +
        public Sort[] getInstantiatedParameters()
        +
        Get the sorts used to instantiate the sort parameters of a parametric + sort (parametric datatype or uninterpreted sort constructor sort, + see instantiate(Sort[])).
        +
        +
        Returns:
        +
        The sorts used to instantiate the sort parameters of a + parametric sort.
        +
        +
      • +
      + + + +
        +
      • +

        substitute

        +
        public Sort substitute​(Sort sort,
        +                       Sort replacement)
        +
        Substitution of Sorts.
        +
        +
        Parameters:
        +
        sort - The subsort to be substituted within this sort.
        +
        replacement - The sort replacing the substituted subsort.
        +
        Returns:
        +
        The sort yielded by substituting the replacement sort within the + given sort.
        +
        Note:
        +
        This replacement is applied during a pre-order traversal and + only once to the sort. It is not run until fix point., This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        substitute

        +
        public Sort substitute​(Sort[] sorts,
        +                       Sort[] replacements)
        +
        Simultaneous substitution of Sorts. + + Note that this replacement is applied during a pre-order traversal and + only once to the sort. It is not run until fix point. In the case that + sorts contains duplicates, the replacement earliest in the list takes + priority. + + For example, + (Array A B).substitute({A, C}, {(Array C D), (Array A B)}) will + return (Array (Array C D) B).
        +
        +
        Parameters:
        +
        sorts - The subsorts to be substituted within this sort.
        +
        replacements - The sort replacing the substituted subsorts.
        +
        Returns:
        +
        The sorts yielded by substituting the replacement sort within the + given sorts.
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        toString

        +
        protected java.lang.String toString​(long pointer)
        +
        +
        Returns:
        +
        A string representation of this sort.
        +
        +
      • +
      + + + +
        +
      • +

        getDatatypeConstructorArity

        +
        public int getDatatypeConstructorArity()
        +
        +
        Returns:
        +
        The arity of a datatype constructor sort.
        +
        +
      • +
      + + + +
        +
      • +

        getDatatypeConstructorDomainSorts

        +
        public Sort[] getDatatypeConstructorDomainSorts()
        +
        +
        Returns:
        +
        The domain sorts of a datatype constructor sort.
        +
        +
      • +
      + + + +
        +
      • +

        getDatatypeConstructorCodomainSort

        +
        public Sort getDatatypeConstructorCodomainSort()
        +
        +
        Returns:
        +
        The codomain sort of a datatype constructor sort.
        +
        +
      • +
      + + + +
        +
      • +

        getDatatypeSelectorDomainSort

        +
        public Sort getDatatypeSelectorDomainSort()
        +
        +
        Returns:
        +
        The domain sort of a datatype selector sort.
        +
        +
      • +
      + + + +
        +
      • +

        getDatatypeSelectorCodomainSort

        +
        public Sort getDatatypeSelectorCodomainSort()
        +
        +
        Returns:
        +
        The codomain sort of a datatype selector sort.
        +
        +
      • +
      + + + +
        +
      • +

        getDatatypeTesterDomainSort

        +
        public Sort getDatatypeTesterDomainSort()
        +
        +
        Returns:
        +
        The domain sort of a datatype tester sort.
        +
        +
      • +
      + + + +
        +
      • +

        getDatatypeTesterCodomainSort

        +
        public Sort getDatatypeTesterCodomainSort()
        +
        +
        Returns:
        +
        The codomain sort of a datatype tester sort, which is the Boolean + sort.
        +
        +
      • +
      + + + +
        +
      • +

        getFunctionArity

        +
        public int getFunctionArity()
        +
        +
        Returns:
        +
        The arity of a function sort.
        +
        +
      • +
      + + + +
        +
      • +

        getFunctionDomainSorts

        +
        public Sort[] getFunctionDomainSorts()
        +
        +
        Returns:
        +
        The domain sorts of a function sort.
        +
        +
      • +
      + + + +
        +
      • +

        getFunctionCodomainSort

        +
        public Sort getFunctionCodomainSort()
        +
        +
        Returns:
        +
        The codomain sort of a function sort.
        +
        +
      • +
      + + + +
        +
      • +

        getArrayIndexSort

        +
        public Sort getArrayIndexSort()
        +
        +
        Returns:
        +
        The array index sort of an array sort.
        +
        +
      • +
      + + + +
        +
      • +

        getArrayElementSort

        +
        public Sort getArrayElementSort()
        +
        +
        Returns:
        +
        The array element sort of an array element sort.
        +
        +
      • +
      + + + +
        +
      • +

        getSetElementSort

        +
        public Sort getSetElementSort()
        +
        +
        Returns:
        +
        The element sort of a set sort.
        +
        +
      • +
      + + + +
        +
      • +

        getBagElementSort

        +
        public Sort getBagElementSort()
        +
        +
        Returns:
        +
        The element sort of a bag sort.
        +
        +
      • +
      + + + +
        +
      • +

        getSequenceElementSort

        +
        public Sort getSequenceElementSort()
        +
        +
        Returns:
        +
        The element sort of a sequence sort.
        +
        +
      • +
      + + + +
        +
      • +

        getAbstractedKind

        +
        public SortKind getAbstractedKind()
        +                           throws CVC5ApiException
        +
        +
        Returns:
        +
        The sort kind of an abstract sort, which denotes the kind of + sorts that this abstract sort denotes.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        getUninterpretedSortConstructorArity

        +
        public int getUninterpretedSortConstructorArity()
        +
        +
        Returns:
        +
        The arity of an uninterpreted sort constructor sort.
        +
        +
      • +
      + + + +
        +
      • +

        getBitVectorSize

        +
        public int getBitVectorSize()
        +
        +
        Returns:
        +
        The bit-width of the bit-vector sort.
        +
        +
      • +
      + + + +
        +
      • +

        getFiniteFieldSize

        +
        public java.lang.String getFiniteFieldSize()
        +
        +
        Returns:
        +
        The bit-width of the bit-vector sort.
        +
        +
      • +
      + + + +
        +
      • +

        getFloatingPointExponentSize

        +
        public int getFloatingPointExponentSize()
        +
        +
        Returns:
        +
        The bit-width of the exponent of the floating-point sort.
        +
        +
      • +
      + + + +
        +
      • +

        getFloatingPointSignificandSize

        +
        public int getFloatingPointSignificandSize()
        +
        +
        Returns:
        +
        The width of the significand of the floating-point sort.
        +
        +
      • +
      + + + +
        +
      • +

        getDatatypeArity

        +
        public int getDatatypeArity()
        +
        +
        Returns:
        +
        The arity of a datatype sort.
        +
        +
      • +
      + + + +
        +
      • +

        getTupleLength

        +
        public int getTupleLength()
        +
        +
        Returns:
        +
        The length of a tuple sort.
        +
        +
      • +
      + + + +
        +
      • +

        getTupleSorts

        +
        public Sort[] getTupleSorts()
        +
        +
        Returns:
        +
        The element sorts of a tuple sort.
        +
        +
      • +
      + + + +
        +
      • +

        getNullableElementSort

        +
        public Sort getNullableElementSort()
        +
        +
        Returns:
        +
        The element sort of a nullable sort.
        +
        +
      • +
      + + + +
        +
      • +

        hashCode

        +
        public int hashCode()
        +
        Get the hash value of a sort.
        +
        +
        Overrides:
        +
        hashCode in class java.lang.Object
        +
        Returns:
        +
        The hash value.
        +
        +
      • +
      + + + +
        +
      • +

        getPointer

        +
        public long getPointer()
        +
      • +
      + + + +
        +
      • +

        deletePointer

        +
        public void deletePointer()
        +
      • +
      + + + +
        +
      • +

        toString

        +
        public java.lang.String toString()
        +
        +
        Overrides:
        +
        toString in class java.lang.Object
        +
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/SortKind.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/SortKind.html new file mode 100644 index 0000000000..03fff3d662 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/SortKind.html @@ -0,0 +1,939 @@ + + + + + +SortKind + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Enum SortKind

+
+
+ +
+
    +
  • +
    +
    All Implemented Interfaces:
    +
    java.io.Serializable, java.lang.Comparable<SortKind>
    +
    +
    +
    public enum SortKind
    +extends java.lang.Enum<SortKind>
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Enum Constant Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Enum Constants 
      Enum ConstantDescription
      ABSTRACT_SORT +
      An abstract sort.
      +
      ARRAY_SORT +
      An array sort, whose argument sorts are the index and element sorts of the + array.
      +
      BAG_SORT +
      A bag sort, whose argument sort is the element sort of the bag.
      +
      BITVECTOR_SORT +
      A bit-vector sort, parameterized by an integer denoting its bit-width.
      +
      BOOLEAN_SORT +
      The Boolean sort.
      +
      DATATYPE_SORT +
      A datatype sort.
      +
      FINITE_FIELD_SORT +
      A finite field sort, parameterized by a size.
      +
      FLOATINGPOINT_SORT +
      A floating-point sort, parameterized by two integers denoting its + exponent and significand bit-widths.
      +
      FUNCTION_SORT +
      A function sort with given domain sorts and codomain sort.
      +
      INTEGER_SORT +
      The integer sort.
      +
      INTERNAL_SORT_KIND +
      Internal kind.
      +
      LAST_SORT_KIND +
      Marks the upper-bound of this enumeration.
      +
      NULL_SORT +
      Null kind.
      +
      NULLABLE_SORT +
      A nullable sort, whose argument sort denotes the sort of the direct child + of the nullable.
      +
      REAL_SORT +
      The real sort.
      +
      REGLAN_SORT +
      The regular language sort.
      +
      ROUNDINGMODE_SORT +
      The rounding mode sort.
      +
      SEQUENCE_SORT +
      A sequence sort, whose argument sort is the element sort of the sequence.
      +
      SET_SORT +
      A set sort, whose argument sort is the element sort of the set.
      +
      STRING_SORT +
      The string sort.
      +
      TUPLE_SORT +
      A tuple sort, whose argument sorts denote the sorts of the direct children + of the tuple.
      +
      UNDEFINED_SORT_KIND +
      Undefined kind.
      +
      UNINTERPRETED_SORT +
      An uninterpreted sort.
      +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and TypeMethodDescription
      static SortKindfromInt​(int value) 
      intgetValue() 
      static SortKindvalueOf​(java.lang.String name) +
      Returns the enum constant of this type with the specified name.
      +
      static SortKind[]values() +
      Returns an array containing the constants of this enum type, in +the order they are declared.
      +
      +
        +
      • + + +

        Methods inherited from class java.lang.Enum

        +clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
      • +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +getClass, notify, notifyAll, wait, wait, wait
      • +
      +
    • +
    +
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Enum Constant Detail

      + + + +
        +
      • +

        INTERNAL_SORT_KIND

        +
        public static final SortKind INTERNAL_SORT_KIND
        +
        Internal kind. + + This kind serves as an abstraction for internal kinds that are not exposed + via the API but may appear in terms returned by API functions, e.g., + when querying the simplified form of a term.
        +
        +
        Note:
        +
        Should never be created via the API.
        +
        +
      • +
      + + + +
        +
      • +

        UNDEFINED_SORT_KIND

        +
        public static final SortKind UNDEFINED_SORT_KIND
        +
        Undefined kind.
        +
        +
        Note:
        +
        Should never be exposed or created via the API.
        +
        +
      • +
      + + + +
        +
      • +

        NULL_SORT

        +
        public static final SortKind NULL_SORT
        +
        Null kind. + + The kind of a null sort (Sort()).
        +
        +
        Note:
        +
        May not be explicitly created via API functions other than + Sort().
        +
        +
      • +
      + + + +
        +
      • +

        ABSTRACT_SORT

        +
        public static final SortKind ABSTRACT_SORT
        +
        An abstract sort. + + An abstract sort represents a sort whose parameters or argument sorts are + unspecified. For example, `mkAbstractSort(BITVECTOR_SORT)` returns a + sort that represents the sort of bit-vectors whose bit-width is + unspecified. + +
        +
      • +
      + + + +
        +
      • +

        ARRAY_SORT

        +
        public static final SortKind ARRAY_SORT
        +
        An array sort, whose argument sorts are the index and element sorts of the + array. + +
        +
      • +
      + + + +
        +
      • +

        BAG_SORT

        +
        public static final SortKind BAG_SORT
        +
        A bag sort, whose argument sort is the element sort of the bag. + +
        +
      • +
      + + + + + + + +
        +
      • +

        BITVECTOR_SORT

        +
        public static final SortKind BITVECTOR_SORT
        +
        A bit-vector sort, parameterized by an integer denoting its bit-width. + +
        +
      • +
      + + + + + + + + + + + +
        +
      • +

        FLOATINGPOINT_SORT

        +
        public static final SortKind FLOATINGPOINT_SORT
        +
        A floating-point sort, parameterized by two integers denoting its + exponent and significand bit-widths. + +
        +
      • +
      + + + + + + + + + + + +
        +
      • +

        REAL_SORT

        +
        public static final SortKind REAL_SORT
        +
        The real sort. + +
        +
      • +
      + + + +
        +
      • +

        REGLAN_SORT

        +
        public static final SortKind REGLAN_SORT
        +
        The regular language sort. + +
        +
      • +
      + + + + + + + +
        +
      • +

        SEQUENCE_SORT

        +
        public static final SortKind SEQUENCE_SORT
        +
        A sequence sort, whose argument sort is the element sort of the sequence. + +
        +
      • +
      + + + +
        +
      • +

        SET_SORT

        +
        public static final SortKind SET_SORT
        +
        A set sort, whose argument sort is the element sort of the set. + +
        +
      • +
      + + + +
        +
      • +

        STRING_SORT

        +
        public static final SortKind STRING_SORT
        +
        The string sort. + +
        +
      • +
      + + + +
        +
      • +

        TUPLE_SORT

        +
        public static final SortKind TUPLE_SORT
        +
        A tuple sort, whose argument sorts denote the sorts of the direct children + of the tuple. + +
        +
      • +
      + + + +
        +
      • +

        NULLABLE_SORT

        +
        public static final SortKind NULLABLE_SORT
        +
        A nullable sort, whose argument sort denotes the sort of the direct child + of the nullable. + +
        +
      • +
      + + + + + + + +
        +
      • +

        LAST_SORT_KIND

        +
        public static final SortKind LAST_SORT_KIND
        +
        Marks the upper-bound of this enumeration.
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        values

        +
        public static SortKind[] values()
        +
        Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +
        +for (SortKind c : SortKind.values())
        +    System.out.println(c);
        +
        +
        +
        Returns:
        +
        an array containing the constants of this enum type, in the order they are declared
        +
        +
      • +
      + + + +
        +
      • +

        valueOf

        +
        public static SortKind valueOf​(java.lang.String name)
        +
        Returns the enum constant of this type with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)
        +
        +
        Parameters:
        +
        name - the name of the enum constant to be returned.
        +
        Returns:
        +
        the enum constant with the specified name
        +
        Throws:
        +
        java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
        +
        java.lang.NullPointerException - if the argument is null
        +
        +
      • +
      + + + + + + + +
        +
      • +

        getValue

        +
        public int getValue()
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Stat.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Stat.html new file mode 100644 index 0000000000..549d70ac7b --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Stat.html @@ -0,0 +1,589 @@ + + + + + +Stat + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Class Stat

+
+
+ +
+
    +
  • +
    +
    public class Stat
    +extends java.lang.Object
    +
    Represents a snapshot of a single statistic value. + A value can be of type long, double, String or a histogram + (Map<String, Long>). + The value type can be queried (using isInt(), isDouble(), etc.) and + the stored value can be accessed (using getInt(), getDouble(), etc.). + It is possible to query whether this statistic is an internal statistic by + isInternal() and whether its value is the default value by isDefault().
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Field Summary

      + + + + + + + + + + + + +
      Fields 
      Modifier and TypeFieldDescription
      protected longpointer 
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethodDescription
      voiddeletePointer() 
      protected voiddeletePointer​(long pointer) 
      doublegetDouble() +
      Return the double value.
      +
      java.util.Map<java.lang.String,​java.lang.Long>getHistogram() +
      Return the histogram value.
      +
      longgetInt() +
      Return the integer value.
      +
      longgetPointer() 
      java.lang.StringgetString() +
      Return the string value.
      +
      booleanisDefault() +
      Does this value hold the default value?
      +
      booleanisDouble() +
      Is this value a double?
      +
      booleanisHistogram() +
      Is this value a histogram?
      +
      booleanisInt() +
      Is this value an integer?
      +
      booleanisInternal() +
      Is this value intended for internal use only?
      +
      booleanisString() +
      Is this value a string?
      +
      java.lang.StringtoString() 
      protected java.lang.StringtoString​(long pointer) 
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • +
      +
    • +
    +
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        pointer

        +
        protected long pointer
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        deletePointer

        +
        protected void deletePointer​(long pointer)
        +
      • +
      + + + +
        +
      • +

        toString

        +
        protected java.lang.String toString​(long pointer)
        +
        +
        Returns:
        +
        A string representation of this Stat.
        +
        +
      • +
      + + + +
        +
      • +

        isInternal

        +
        public boolean isInternal()
        +
        Is this value intended for internal use only?
        +
        +
        Returns:
        +
        Whether this is an internal statistic.
        +
        +
      • +
      + + + +
        +
      • +

        isDefault

        +
        public boolean isDefault()
        +
        Does this value hold the default value?
        +
        +
        Returns:
        +
        Whether this is a defaulted statistic.
        +
        +
      • +
      + + + +
        +
      • +

        isInt

        +
        public boolean isInt()
        +
        Is this value an integer?
        +
        +
        Returns:
        +
        Whether the value is an integer.
        +
        +
      • +
      + + + +
        +
      • +

        getInt

        +
        public long getInt()
        +
        Return the integer value.
        +
        +
        Returns:
        +
        The integer value.
        +
        +
      • +
      + + + +
        +
      • +

        isDouble

        +
        public boolean isDouble()
        +
        Is this value a double?
        +
        +
        Returns:
        +
        Whether the value is a double.
        +
        +
      • +
      + + + +
        +
      • +

        getDouble

        +
        public double getDouble()
        +
        Return the double value.
        +
        +
        Returns:
        +
        The double value.
        +
        +
      • +
      + + + +
        +
      • +

        isString

        +
        public boolean isString()
        +
        Is this value a string?
        +
        +
        Returns:
        +
        Whether the value is a string.
        +
        +
      • +
      + + + +
        +
      • +

        getString

        +
        public java.lang.String getString()
        +
        Return the string value.
        +
        +
        Returns:
        +
        The string value.
        +
        +
      • +
      + + + +
        +
      • +

        isHistogram

        +
        public boolean isHistogram()
        +
        Is this value a histogram?
        +
        +
        Returns:
        +
        Whether the value is a histogram.
        +
        +
      • +
      + + + +
        +
      • +

        getHistogram

        +
        public java.util.Map<java.lang.String,​java.lang.Long> getHistogram()
        +
        Return the histogram value.
        +
        +
        Returns:
        +
        The histogram value.
        +
        +
      • +
      + + + +
        +
      • +

        getPointer

        +
        public long getPointer()
        +
      • +
      + + + +
        +
      • +

        deletePointer

        +
        public void deletePointer()
        +
      • +
      + + + +
        +
      • +

        toString

        +
        public java.lang.String toString()
        +
        +
        Overrides:
        +
        toString in class java.lang.Object
        +
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Statistics.ConstIterator.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Statistics.ConstIterator.html new file mode 100644 index 0000000000..1965689cd3 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Statistics.ConstIterator.html @@ -0,0 +1,359 @@ + + + + + +Statistics.ConstIterator + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Class Statistics.ConstIterator

+
+
+ +
+
    +
  • +
    +
    All Implemented Interfaces:
    +
    java.util.Iterator<java.util.Map.Entry<java.lang.String,​Stat>>
    +
    +
    +
    Enclosing class:
    +
    Statistics
    +
    +
    +
    public class Statistics.ConstIterator
    +extends java.lang.Object
    +implements java.util.Iterator<java.util.Map.Entry<java.lang.String,​Stat>>
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Constructor Summary

      + + + + + + + + + + + + + + +
      Constructors 
      ConstructorDescription
      ConstIterator() 
      ConstIterator​(boolean internal, + boolean defaulted) 
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + + + + +
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethodDescription
      booleanhasNext() 
      java.util.Map.Entry<java.lang.String,​Stat>next() 
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • +
      +
        +
      • + + +

        Methods inherited from interface java.util.Iterator

        +forEachRemaining, remove
      • +
      +
    • +
    +
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        ConstIterator

        +
        public ConstIterator​(boolean internal,
        +                     boolean defaulted)
        +
      • +
      + + + +
        +
      • +

        ConstIterator

        +
        public ConstIterator()
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        hasNext

        +
        public boolean hasNext()
        +
        +
        Specified by:
        +
        hasNext in interface java.util.Iterator<java.util.Map.Entry<java.lang.String,​Stat>>
        +
        +
      • +
      + + + +
        +
      • +

        next

        +
        public java.util.Map.Entry<java.lang.String,​Stat> next()
        +
        +
        Specified by:
        +
        next in interface java.util.Iterator<java.util.Map.Entry<java.lang.String,​Stat>>
        +
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Statistics.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Statistics.html new file mode 100644 index 0000000000..bfe0e64dcf --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Statistics.html @@ -0,0 +1,466 @@ + + + + + +Statistics + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Class Statistics

+
+
+ +
+
    +
  • +
    +
    All Implemented Interfaces:
    +
    java.lang.Iterable<java.util.Map.Entry<java.lang.String,​Stat>>
    +
    +
    +
    public class Statistics
    +extends java.lang.Object
    +implements java.lang.Iterable<java.util.Map.Entry<java.lang.String,​Stat>>
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Nested Class Summary

      + + + + + + + + + + + + +
      Nested Classes 
      Modifier and TypeClassDescription
      class Statistics.ConstIterator 
      +
    • +
    +
    + +
    +
      +
    • + + +

      Field Summary

      + + + + + + + + + + + + +
      Fields 
      Modifier and TypeFieldDescription
      protected longpointer 
      +
    • +
    +
    + +
    + +
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        pointer

        +
        protected long pointer
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        deletePointer

        +
        protected void deletePointer​(long pointer)
        +
      • +
      + + + +
        +
      • +

        toString

        +
        protected java.lang.String toString​(long pointer)
        +
        +
        Returns:
        +
        A string representation of this Statistics.
        +
        +
      • +
      + + + +
        +
      • +

        get

        +
        public Stat get​(java.lang.String name)
        +
        Retrieve the statistic with the given name. + Asserts that a statistic with the given name actually exists and throws + a CVC5ApiRecoverableException if it does not.
        +
        +
        Parameters:
        +
        name - Name of the statistic.
        +
        Returns:
        +
        The statistic with the given name.
        +
        +
      • +
      + + + + + + + +
        +
      • +

        iterator

        +
        public Statistics.ConstIterator iterator()
        +
        +
        Specified by:
        +
        iterator in interface java.lang.Iterable<java.util.Map.Entry<java.lang.String,​Stat>>
        +
        +
      • +
      + + + +
        +
      • +

        getPointer

        +
        public long getPointer()
        +
      • +
      + + + +
        +
      • +

        deletePointer

        +
        public void deletePointer()
        +
      • +
      + + + +
        +
      • +

        toString

        +
        public java.lang.String toString()
        +
        +
        Overrides:
        +
        toString in class java.lang.Object
        +
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/SymbolManager.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/SymbolManager.html new file mode 100644 index 0000000000..2e16ebf492 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/SymbolManager.html @@ -0,0 +1,570 @@ + + + + + +SymbolManager + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Class SymbolManager

+
+
+ +
+
    +
  • +
    +
    public class SymbolManager
    +extends java.lang.Object
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Field Summary

      + + + + + + + + + + + + +
      Fields 
      Modifier and TypeFieldDescription
      protected longpointer 
      +
    • +
    +
    + +
    + +
    + +
    +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethodDescription
      voiddeletePointer() 
      protected voiddeletePointer​(long pointer) 
      booleanequals​(java.lang.Object s) 
      Sort[]getDeclaredSorts() +
      Get the list of sorts that have been declared via `declare-sort` commands.
      +
      Term[]getDeclaredTerms() +
      Get the list of terms that have been declared via `declare-fun` and + `declare-const`.
      +
      java.lang.StringgetLogic() 
      java.util.Map<Term,​java.lang.String>getNamedTerms() +
      Get a mapping from terms to names that have been given to them via the + :named attribute.
      +
      longgetPointer() 
      booleanisLogicSet() 
      java.lang.StringtoString() 
      protected java.lang.StringtoString​(long pointer) 
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • +
      +
    • +
    +
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        pointer

        +
        protected long pointer
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        SymbolManager

        +
        public SymbolManager​(TermManager tm)
        +
        Create symbol manager instance.
        +
        +
        Parameters:
        +
        tm - The associated term manager.
        +
        +
      • +
      + + + +
        +
      • +

        SymbolManager

        +
        @Deprecated
        +public SymbolManager​(Solver solver)
        +
        Deprecated. +
        This function is deprecated and replaced by + Solver(TermManager). + It will be removed in a future release.
        +
        +
        Create symbol manager instance.
        +
        +
        Parameters:
        +
        solver - The associated solver.
        +
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        toString

        +
        protected java.lang.String toString​(long pointer)
        +
      • +
      + + + +
        +
      • +

        deletePointer

        +
        protected void deletePointer​(long pointer)
        +
      • +
      + + + +
        +
      • +

        equals

        +
        public boolean equals​(java.lang.Object s)
        +
        +
        Overrides:
        +
        equals in class java.lang.Object
        +
        +
      • +
      + + + +
        +
      • +

        isLogicSet

        +
        public boolean isLogicSet()
        +
        +
        Returns:
        +
        True if the logic of this symbol manager has been set.
        +
        +
      • +
      + + + +
        +
      • +

        getLogic

        +
        public java.lang.String getLogic()
        +
        +
        Returns:
        +
        The logic used by this symbol manager.
        +
        Note:
        +
        Asserts isLogicSet().
        +
        +
      • +
      + + + +
        +
      • +

        getDeclaredSorts

        +
        public Sort[] getDeclaredSorts()
        +
        Get the list of sorts that have been declared via `declare-sort` commands. + These are the sorts that are printed as part of a response to a + `get-model` command.
        +
        +
        Returns:
        +
        The declared sorts.
        +
        +
      • +
      + + + +
        +
      • +

        getDeclaredTerms

        +
        public Term[] getDeclaredTerms()
        +
        Get the list of terms that have been declared via `declare-fun` and + `declare-const`. These are the terms that are printed in response to a + `get-model` command.
        +
        +
        Returns:
        +
        The declared terms.
        +
        +
      • +
      + + + +
        +
      • +

        getNamedTerms

        +
        public java.util.Map<Term,​java.lang.String> getNamedTerms()
        +
        Get a mapping from terms to names that have been given to them via the + :named attribute.
        +
        +
        Returns:
        +
        A map of the named terms to their names.
        +
        +
      • +
      + + + +
        +
      • +

        getPointer

        +
        public long getPointer()
        +
      • +
      + + + +
        +
      • +

        deletePointer

        +
        public void deletePointer()
        +
      • +
      + + + +
        +
      • +

        toString

        +
        public java.lang.String toString()
        +
        +
        Overrides:
        +
        toString in class java.lang.Object
        +
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/SynthResult.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/SynthResult.html new file mode 100644 index 0000000000..92a31d0736 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/SynthResult.html @@ -0,0 +1,545 @@ + + + + + +SynthResult + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Class SynthResult

+
+
+ +
+
    +
  • +
    +
    public class SynthResult
    +extends java.lang.Object
    +
    Encapsulation of a solver synth result. + + This is the return value of the API methods: + - Solver.checkSynth() + - Solver.checkSynthNext() + + which we call synthesis queries. This class indicates whether the + synthesis query has a solution, has no solution, or is unknown.
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Field Summary

      + + + + + + + + + + + + +
      Fields 
      Modifier and TypeFieldDescription
      protected longpointer 
      +
    • +
    +
    + +
    +
      +
    • + + +

      Constructor Summary

      + + + + + + + + + + +
      Constructors 
      ConstructorDescription
      SynthResult() +
      Null synthResult
      +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethodDescription
      voiddeletePointer() 
      protected voiddeletePointer​(long pointer) 
      booleanequals​(java.lang.Object r) +
      Operator overloading for equality of two synthesis results.
      +
      longgetPointer() 
      inthashCode() +
      Get the hash value of a synthesis result.
      +
      booleanhasNoSolution() 
      booleanhasSolution() 
      booleanisNull() 
      booleanisUnknown() 
      java.lang.StringtoString() 
      protected java.lang.StringtoString​(long pointer) 
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
      • +
      +
    • +
    +
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        pointer

        +
        protected long pointer
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        SynthResult

        +
        public SynthResult()
        +
        Null synthResult
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        deletePointer

        +
        protected void deletePointer​(long pointer)
        +
      • +
      + + + +
        +
      • +

        equals

        +
        public boolean equals​(java.lang.Object r)
        +
        Operator overloading for equality of two synthesis results.
        +
        +
        Overrides:
        +
        equals in class java.lang.Object
        +
        Parameters:
        +
        r - The synthesis result to compare to for equality.
        +
        Returns:
        +
        True if the synthesis results are equal.
        +
        +
      • +
      + + + +
        +
      • +

        isNull

        +
        public boolean isNull()
        +
        +
        Returns:
        +
        True if SynthResult is empty, i.e., a nullary SynthResult, and not + an actual result returned from a synthesis query.
        +
        +
      • +
      + + + +
        +
      • +

        hasSolution

        +
        public boolean hasSolution()
        +
        +
        Returns:
        +
        True if the synthesis query has a solution.
        +
        +
      • +
      + + + +
        +
      • +

        hasNoSolution

        +
        public boolean hasNoSolution()
        +
        +
        Returns:
        +
        True if the synthesis query has no solution. In this case, it was + determined there was no solution.
        +
        +
      • +
      + + + +
        +
      • +

        isUnknown

        +
        public boolean isUnknown()
        +
        +
        Returns:
        +
        True if the result of the synthesis query could not be determined.
        +
        +
      • +
      + + + +
        +
      • +

        toString

        +
        protected java.lang.String toString​(long pointer)
        +
        +
        Returns:
        +
        A string representation of this result.
        +
        +
      • +
      + + + +
        +
      • +

        hashCode

        +
        public int hashCode()
        +
        Get the hash value of a synthesis result.
        +
        +
        Overrides:
        +
        hashCode in class java.lang.Object
        +
        Returns:
        +
        The hash value.
        +
        +
      • +
      + + + +
        +
      • +

        getPointer

        +
        public long getPointer()
        +
      • +
      + + + +
        +
      • +

        deletePointer

        +
        public void deletePointer()
        +
      • +
      + + + +
        +
      • +

        toString

        +
        public java.lang.String toString()
        +
        +
        Overrides:
        +
        toString in class java.lang.Object
        +
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Term.ConstIterator.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Term.ConstIterator.html new file mode 100644 index 0000000000..ec409212f0 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Term.ConstIterator.html @@ -0,0 +1,344 @@ + + + + + +Term.ConstIterator + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Class Term.ConstIterator

+
+
+ +
+
    +
  • +
    +
    All Implemented Interfaces:
    +
    java.util.Iterator<Term>
    +
    +
    +
    Enclosing class:
    +
    Term
    +
    +
    +
    public class Term.ConstIterator
    +extends java.lang.Object
    +implements java.util.Iterator<Term>
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Constructor Summary

      + + + + + + + + + + +
      Constructors 
      ConstructorDescription
      ConstIterator() 
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + + + + +
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethodDescription
      booleanhasNext() 
      Termnext() 
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • +
      +
        +
      • + + +

        Methods inherited from interface java.util.Iterator

        +forEachRemaining, remove
      • +
      +
    • +
    +
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        ConstIterator

        +
        public ConstIterator()
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        hasNext

        +
        public boolean hasNext()
        +
        +
        Specified by:
        +
        hasNext in interface java.util.Iterator<Term>
        +
        +
      • +
      + + + +
        +
      • +

        next

        +
        public Term next()
        +
        +
        Specified by:
        +
        next in interface java.util.Iterator<Term>
        +
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Term.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Term.html new file mode 100644 index 0000000000..ba06778047 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Term.html @@ -0,0 +1,1843 @@ + + + + + +Term + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Class Term

+
+
+ +
+
    +
  • +
    +
    All Implemented Interfaces:
    +
    java.lang.Comparable<Term>, java.lang.Iterable<Term>
    +
    +
    +
    public class Term
    +extends java.lang.Object
    +implements java.lang.Comparable<Term>, java.lang.Iterable<Term>
    +
    A cvc5 Term.
    +
  • +
+
+
+ +
+
+
    +
  • + +
    +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        pointer

        +
        protected long pointer
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        Term

        +
        public Term()
        +
        Null term
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        deletePointer

        +
        protected void deletePointer​(long pointer)
        +
      • +
      + + + +
        +
      • +

        equals

        +
        public boolean equals​(java.lang.Object t)
        +
        Syntactic equality operator. + Return true if both terms are syntactically identical.
        +
        +
        Overrides:
        +
        equals in class java.lang.Object
        +
        Parameters:
        +
        t - The term to compare to for equality.
        +
        Returns:
        +
        True if the terms are equal.
        +
        +
      • +
      + + + +
        +
      • +

        compareTo

        +
        public int compareTo​(Term t)
        +
        Comparison for ordering on terms.
        +
        +
        Specified by:
        +
        compareTo in interface java.lang.Comparable<Term>
        +
        Parameters:
        +
        t - The term to compare to.
        +
        Returns:
        +
        A negative integer, zero, or a positive integer as this term. + is less than, equal to, or greater than the specified term.
        +
        +
      • +
      + + + +
        +
      • +

        getNumChildren

        +
        public int getNumChildren()
        +
        +
        Returns:
        +
        The number of children of this term.
        +
        +
      • +
      + + + +
        +
      • +

        getChild

        +
        public Term getChild​(int index)
        +              throws CVC5ApiException
        +
        Get the child term at a given index.
        +
        +
        Parameters:
        +
        index - The index of the child term to return.
        +
        Returns:
        +
        The child term with the given index.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        getId

        +
        public long getId()
        +
        +
        Returns:
        +
        The id of this term.
        +
        +
      • +
      + + + + + + + +
        +
      • +

        getSort

        +
        public Sort getSort()
        +
        +
        Returns:
        +
        The sort of this term.
        +
        +
      • +
      + + + +
        +
      • +

        substitute

        +
        public Term substitute​(Term term,
        +                       Term replacement)
        +
        Replace term with replacement in this term.
        +
        +
        Parameters:
        +
        term - The term to replace.
        +
        replacement - The term to replace it with.
        +
        Returns:
        +
        The result of replacing term with replacement in + this term.
        +
        Note:
        +
        This replacement is applied during a pre-order traversal and + only once (it is not run until fixed point).
        +
        +
      • +
      + + + +
        +
      • +

        substitute

        +
        public Term substitute​(Term[] terms,
        +                       Term[] replacements)
        +
        Simultaneously replace terms with replacements in this + term. + + In the case that terms contains duplicates, the replacement earliest in + the vector takes priority. For example, calling substitute on + f(x,y) with terms = { x, z }, + replacements = { g(z), w } results in the term + f(g(z),y).
        +
        +
        Parameters:
        +
        terms - The terms to replace.
        +
        replacements - The replacement terms.
        +
        Returns:
        +
        The result of simultaneously replacing terms with + replacements in this term.
        +
        Note:
        +
        This replacement is applied during a pre-order traversal and + only once (it is not run until fixed point).
        +
        +
      • +
      + + + +
        +
      • +

        hasOp

        +
        public boolean hasOp()
        +
        +
        Returns:
        +
        True iff this term has an operator.
        +
        +
      • +
      + + + +
        +
      • +

        getOp

        +
        public Op getOp()
        +
        +
        Returns:
        +
        The Op used to create this term.
        +
        Note:
        +
        This is safe to call when hasOp() returns true.
        +
        +
      • +
      + + + +
        +
      • +

        hasSymbol

        +
        public boolean hasSymbol()
        +
        +
        Returns:
        +
        True if the term has a symbol.
        +
        +
      • +
      + + + +
        +
      • +

        getSymbol

        +
        public java.lang.String getSymbol()
        +
        Asserts hasSymbol().
        +
        +
        Returns:
        +
        The raw symbol of the term.
        +
        +
      • +
      + + + +
        +
      • +

        isNull

        +
        public boolean isNull()
        +
        +
        Returns:
        +
        True if this Term is a null term.
        +
        +
      • +
      + + + +
        +
      • +

        notTerm

        +
        public Term notTerm()
        +
        Boolean negation.
        +
        +
        Returns:
        +
        The Boolean negation of this term.
        +
        +
      • +
      + + + +
        +
      • +

        andTerm

        +
        public Term andTerm​(Term t)
        +
        Boolean and.
        +
        +
        Parameters:
        +
        t - A Boolean term.
        +
        Returns:
        +
        The conjunction of this term and the given term.
        +
        +
      • +
      + + + +
        +
      • +

        orTerm

        +
        public Term orTerm​(Term t)
        +
        Boolean or.
        +
        +
        Parameters:
        +
        t - A Boolean term.
        +
        Returns:
        +
        The disjunction of this term and the given term.
        +
        +
      • +
      + + + +
        +
      • +

        xorTerm

        +
        public Term xorTerm​(Term t)
        +
        Boolean exclusive or.
        +
        +
        Parameters:
        +
        t - A Boolean term.
        +
        Returns:
        +
        The exclusive disjunction of this term and the given term.
        +
        +
      • +
      + + + +
        +
      • +

        eqTerm

        +
        public Term eqTerm​(Term t)
        +
        Equality.
        +
        +
        Parameters:
        +
        t - A Boolean term.
        +
        Returns:
        +
        The Boolean equivalence of this term and the given term.
        +
        +
      • +
      + + + +
        +
      • +

        impTerm

        +
        public Term impTerm​(Term t)
        +
        Boolean implication.
        +
        +
        Parameters:
        +
        t - A Boolean term.
        +
        Returns:
        +
        The implication of this term and the given term.
        +
        +
      • +
      + + + +
        +
      • +

        iteTerm

        +
        public Term iteTerm​(Term thenTerm,
        +                    Term elseTerm)
        +
        If-then-else with this term as the Boolean condition.
        +
        +
        Parameters:
        +
        thenTerm - The 'then' term.
        +
        elseTerm - The 'else' term.
        +
        Returns:
        +
        The if-then-else term with this term as the Boolean condition.
        +
        +
      • +
      + + + +
        +
      • +

        toString

        +
        protected java.lang.String toString​(long pointer)
        +
        +
        Returns:
        +
        A string representation of this term.
        +
        +
      • +
      + + + +
        +
      • +

        getRealOrIntegerValueSign

        +
        public int getRealOrIntegerValueSign()
        +
        Get integer or real value sign. Must be called on integer or real values, + or otherwise an exception is thrown.
        +
        +
        Returns:
        +
        0 if this term is zero, -1 if this term is a negative real or + integer value, 1 if this term is a positive real or integer value.
        +
        +
      • +
      + + + +
        +
      • +

        isIntegerValue

        +
        public boolean isIntegerValue()
        +
        +
        Returns:
        +
        True if the term is an integer value.
        +
        +
      • +
      + + + +
        +
      • +

        getIntegerValue

        +
        public java.math.BigInteger getIntegerValue()
        +
        Asserts isIntegerValue().
        +
        +
        Returns:
        +
        The integer represented by this term.
        +
        +
      • +
      + + + +
        +
      • +

        isStringValue

        +
        public boolean isStringValue()
        +
        +
        Returns:
        +
        True if the term is a string constant.
        +
        +
      • +
      + + + +
        +
      • +

        getStringValue

        +
        public java.lang.String getStringValue()
        +
        +
        Returns:
        +
        The stored string constant. + + Asserts isString().
        +
        Note:
        +
        This method is not to be confused with Object.toString()) + which returns the term in some string representation, whatever + data it may hold.
        +
        +
      • +
      + + + +
        +
      • +

        isRealValue

        +
        public boolean isRealValue()
        +
        +
        Returns:
        +
        True if the term is a rational value.
        +
        +
      • +
      + + + +
        +
      • +

        getRealValue

        +
        public Pair<java.math.BigInteger,​java.math.BigInteger> getRealValue()
        +
        Asserts isRealValue().
        +
        +
        Returns:
        +
        The representation of a rational value as a pair of its numerator. + and denominator.
        +
        +
      • +
      + + + +
        +
      • +

        isConstArray

        +
        public boolean isConstArray()
        +
        +
        Returns:
        +
        True if the term is a constant array.
        +
        +
      • +
      + + + +
        +
      • +

        getConstArrayBase

        +
        public Term getConstArrayBase()
        +
        Asserts isConstArray().
        +
        +
        Returns:
        +
        The base (element stored at all indices) of a constant array.
        +
        +
      • +
      + + + +
        +
      • +

        isBooleanValue

        +
        public boolean isBooleanValue()
        +
        +
        Returns:
        +
        True if the term is a Boolean value.
        +
        +
      • +
      + + + +
        +
      • +

        getBooleanValue

        +
        public boolean getBooleanValue()
        +
        Asserts isBooleanValue().
        +
        +
        Returns:
        +
        The representation of a Boolean value as a native Boolean value.
        +
        +
      • +
      + + + +
        +
      • +

        isBitVectorValue

        +
        public boolean isBitVectorValue()
        +
        +
        Returns:
        +
        True if the term is a bit-vector value.
        +
        +
      • +
      + + + +
        +
      • +

        getBitVectorValue

        +
        public java.lang.String getBitVectorValue()
        +                                   throws CVC5ApiException
        +
        Asserts isBitVectorValue().
        +
        +
        Returns:
        +
        The representation of a bit-vector value in bit string + representation.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        getBitVectorValue

        +
        public java.lang.String getBitVectorValue​(int base)
        +                                   throws CVC5ApiException
        +
        Get the string representation of a bit-vector value. + + Supported values for base are 2 (bit string), 10 + (decimal string) or 16 (hexadecimal string).
        +
        +
        Parameters:
        +
        base - 2 for binary, 10 for decimal, and 16 + for hexadecimal.
        +
        Returns:
        +
        The string representation of a bit-vector value.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        Note:
        +
        Asserts Term#isBitVectorValue().
        +
        +
      • +
      + + + +
        +
      • +

        isFiniteFieldValue

        +
        public boolean isFiniteFieldValue()
        +
        +
        Returns:
        +
        True if the term is a finite field value.
        +
        +
      • +
      + + + +
        +
      • +

        getFiniteFieldValue

        +
        public java.lang.String getFiniteFieldValue()
        +                                     throws CVC5ApiException
        +
        Get the string representation of a finite field value.
        +
        +
        Returns:
        +
        The string representation of a finite field value.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        Note:
        +
        Asserts Term#isFiniteFieldValue().
        +
        +
      • +
      + + + +
        +
      • +

        isUninterpretedSortValue

        +
        public boolean isUninterpretedSortValue()
        +
        +
        Returns:
        +
        True if the term is an uninterpreted sort value.
        +
        +
      • +
      + + + +
        +
      • +

        getUninterpretedSortValue

        +
        public java.lang.String getUninterpretedSortValue()
        +
        Asserts isUninterpretedSortValue().
        +
        +
        Returns:
        +
        The representation of an uninterpreted sort value as a string.
        +
        +
      • +
      + + + +
        +
      • +

        isRoundingModeValue

        +
        public boolean isRoundingModeValue()
        +
        +
        Returns:
        +
        True if the term is a floating-point rounding mode value.
        +
        +
      • +
      + + + +
        +
      • +

        getRoundingModeValue

        +
        public RoundingMode getRoundingModeValue()
        +                                  throws CVC5ApiException
        +
        Asserts isRoundingModeValue().
        +
        +
        Returns:
        +
        The floating-point rounding mode value held by the term.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        isTupleValue

        +
        public boolean isTupleValue()
        +
        +
        Returns:
        +
        True if the term is a tuple value.
        +
        +
      • +
      + + + +
        +
      • +

        getTupleValue

        +
        public Term[] getTupleValue()
        +
        Asserts isTupleValue().
        +
        +
        Returns:
        +
        The representation of a tuple value as a vector of terms.
        +
        +
      • +
      + + + +
        +
      • +

        isFloatingPointPosZero

        +
        public boolean isFloatingPointPosZero()
        +
        +
        Returns:
        +
        True if the term is the floating-point value for positive zero.
        +
        +
      • +
      + + + +
        +
      • +

        isFloatingPointNegZero

        +
        public boolean isFloatingPointNegZero()
        +
        +
        Returns:
        +
        True if the term is the floating-point value for negative zero.
        +
        +
      • +
      + + + +
        +
      • +

        isFloatingPointPosInf

        +
        public boolean isFloatingPointPosInf()
        +
        +
        Returns:
        +
        True if the term is the floating-point value for positive. + infinity.
        +
        +
      • +
      + + + +
        +
      • +

        isFloatingPointNegInf

        +
        public boolean isFloatingPointNegInf()
        +
        +
        Returns:
        +
        True if the term is the floating-point value for negative. + infinity.
        +
        +
      • +
      + + + +
        +
      • +

        isFloatingPointNaN

        +
        public boolean isFloatingPointNaN()
        +
        +
        Returns:
        +
        True if the term is the floating-point value for not a number.
        +
        +
      • +
      + + + +
        +
      • +

        isFloatingPointValue

        +
        public boolean isFloatingPointValue()
        +
        +
        Returns:
        +
        True if the term is a floating-point value.
        +
        +
      • +
      + + + +
        +
      • +

        getFloatingPointValue

        +
        public Triplet<java.lang.Long,​java.lang.Long,​Term> getFloatingPointValue()
        +
        Asserts isFloatingPointValue().
        +
        +
        Returns:
        +
        The representation of a floating-point value as a tuple of the. + exponent width, the significand width and a bit-vector value.
        +
        +
      • +
      + + + +
        +
      • +

        isSetValue

        +
        public boolean isSetValue()
        +
        +
        Returns:
        +
        True if the term is a set value.
        +
        +
      • +
      + + + +
        +
      • +

        getSetValue

        +
        public java.util.Set<Term> getSetValue()
        +
        Asserts isSetValue().
        +
        +
        Returns:
        +
        The representation of a set value as a set of terms.
        +
        +
      • +
      + + + +
        +
      • +

        isSequenceValue

        +
        public boolean isSequenceValue()
        +
        +
        Returns:
        +
        True if the term is a sequence value.
        +
        +
      • +
      + + + +
        +
      • +

        getSequenceValue

        +
        public Term[] getSequenceValue()
        +
        Asserts isSequenceValue().
        +
        +
        Returns:
        +
        The representation of a sequence value as a vector of terms.
        +
        Note:
        +
        It is usually necessary for sequences to call + Solver.simplify(Term) to turn a sequence that is + constructed by, e.g., concatenation of unit sequences, into a + sequence value.
        +
        +
      • +
      + + + +
        +
      • +

        isCardinalityConstraint

        +
        public boolean isCardinalityConstraint()
        +
        +
        Returns:
        +
        True if the term is a cardinality constraint.
        +
        +
      • +
      + + + +
        +
      • +

        getCardinalityConstraint

        +
        public Pair<Sort,​java.math.BigInteger> getCardinalityConstraint()
        +
        Asserts isCardinalityConstraint().
        +
        +
        Returns:
        +
        The sort the cardinality constraint is for and its upper bound.
        +
        +
      • +
      + + + +
        +
      • +

        isRealAlgebraicNumber

        +
        public boolean isRealAlgebraicNumber()
        +
        +
        Returns:
        +
        True if the term is a real algebraic number.
        +
        +
      • +
      + + + +
        +
      • +

        getRealAlgebraicNumberDefiningPolynomial

        +
        public Term getRealAlgebraicNumberDefiningPolynomial​(Term v)
        +
        Asserts isRealAlgebraicNumber().
        +
        +
        Parameters:
        +
        v - The variable over which to express the polynomial.
        +
        Returns:
        +
        The defining polynomial for the real algebraic number, expressed in terms of the given + variable.
        +
        +
      • +
      + + + +
        +
      • +

        getRealAlgebraicNumberLowerBound

        +
        public Term getRealAlgebraicNumberLowerBound()
        +
        Asserts isRealAlgebraicNumber().
        +
        +
        Returns:
        +
        The lower bound for the value of the real algebraic number.
        +
        +
      • +
      + + + +
        +
      • +

        getRealAlgebraicNumberUpperBound

        +
        public Term getRealAlgebraicNumberUpperBound()
        +
        Asserts isRealAlgebraicNumber().
        +
        +
        Returns:
        +
        The upper bound for the value of the real algebraic number.
        +
        +
      • +
      + + + +
        +
      • +

        isSkolem

        +
        public boolean isSkolem()
        +
        +
        Returns:
        +
        True if this term is a skolem function.
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        getSkolemId

        +
        public SkolemId getSkolemId()
        +                     throws CVC5ApiException
        +
        Get skolem identifier of this term.
        +
        +
        Returns:
        +
        The skolem identifier of this term.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        Note:
        +
        Asserts isSkolem()., This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        getSkolemIndices

        +
        public Term[] getSkolemIndices()
        +                        throws CVC5ApiException
        +
        Get the skolem indices of this term.
        +
        +
        Returns:
        +
        The skolem indices of this term. This a list of terms that the + skolem function is indexed by. For example, the array diff skolem + SkolemId.ARRAY_DEQ_DIFF is indexed by two arrays.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        Note:
        +
        Asserts isSkolem()., This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        iterator

        +
        public java.util.Iterator<Term> iterator()
        +
        +
        Specified by:
        +
        iterator in interface java.lang.Iterable<Term>
        +
        +
      • +
      + + + +
        +
      • +

        hashCode

        +
        public int hashCode()
        +
        Get the hash value of a term.
        +
        +
        Overrides:
        +
        hashCode in class java.lang.Object
        +
        Returns:
        +
        The hash value.
        +
        +
      • +
      + + + +
        +
      • +

        getPointer

        +
        public long getPointer()
        +
      • +
      + + + +
        +
      • +

        deletePointer

        +
        public void deletePointer()
        +
      • +
      + + + +
        +
      • +

        toString

        +
        public java.lang.String toString()
        +
        +
        Overrides:
        +
        toString in class java.lang.Object
        +
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/TermManager.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/TermManager.html new file mode 100644 index 0000000000..bbad080c79 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/TermManager.html @@ -0,0 +1,3113 @@ + + + + + +TermManager + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Class TermManager

+
+
+ +
+
    +
  • +
    +
    public class TermManager
    +extends java.lang.Object
    +
    A cvc5 term manager.
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Field Summary

      + + + + + + + + + + + + +
      Fields 
      Modifier and TypeFieldDescription
      protected longpointer 
      +
    • +
    +
    + +
    +
      +
    • + + +

      Constructor Summary

      + + + + + + + + + + +
      Constructors 
      ConstructorDescription
      TermManager() +
      Create a term manager instance.
      +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethodDescription
      voiddeletePointer() 
      protected voiddeletePointer​(long pointer) 
      booleanequals​(java.lang.Object o) 
      SortgetBooleanSort() +
      Get the Boolean sort.
      +
      SortgetIntegerSort() +
      Get the integer sort.
      +
      longgetIntegerSort​(long pointer) 
      intgetNumIndicesForSkolemId​(SkolemId id) +
      Get the number of indices for a given skolem id.
      +
      longgetPointer() 
      SortgetRealSort() +
      Get the real sort.
      +
      SortgetRegExpSort() +
      Get the regular expression sort.
      +
      SortgetRoundingModeSort() +
      Get the floating-point rounding mode sort.
      +
      StatisticsgetStatistics() +
      Get a snapshot of the current state of the statistic values of this + term manager.
      +
      SortgetStringSort() +
      Get the string sort.
      +
      SortmkAbstractSort​(SortKind kind) +
      Create an abstract sort.
      +
      SortmkArraySort​(Sort indexSort, + Sort elemSort) +
      Create an array sort.
      +
      SortmkBagSort​(Sort elemSort) +
      Create a bag sort.
      +
      TermmkBitVector​(int size) +
      Create a bit-vector constant of given size and value = 0.
      +
      TermmkBitVector​(int size, + long val) +
      Create a bit-vector constant of given size and value.
      +
      TermmkBitVector​(int size, + java.lang.String s, + int base) +
      Create a bit-vector constant of a given bit-width from a given string of + base 2, 10 or 16.
      +
      SortmkBitVectorSort​(int size) +
      Create a bit-vector sort.
      +
      TermmkBoolean​(boolean val) +
      Create a Boolean constant.
      +
      TermmkCardinalityConstraint​(Sort sort, + int upperBound) +
      Create a cardinality constraint for an uninterpreted sort.
      +
      TermmkConst​(Sort sort) +
      Create a free constant with a default symbol name.
      +
      TermmkConst​(Sort sort, + java.lang.String symbol) +
      Create a free constant.
      +
      TermmkConstArray​(Sort sort, + Term val) +
      Create a constant array with the provided constant value stored at + every index
      +
      DatatypeConstructorDeclmkDatatypeConstructorDecl​(java.lang.String name) +
      Create a datatype constructor declaration.
      +
      DatatypeDeclmkDatatypeDecl​(java.lang.String name) +
      Create a datatype declaration.
      +
      DatatypeDeclmkDatatypeDecl​(java.lang.String name, + boolean isCoDatatype) +
      Create a datatype declaration.
      +
      DatatypeDeclmkDatatypeDecl​(java.lang.String name, + Sort[] params) +
      Create a datatype declaration.
      +
      DatatypeDeclmkDatatypeDecl​(java.lang.String name, + Sort[] params, + boolean isCoDatatype) +
      Create a datatype declaration.
      +
      SortmkDatatypeSort​(DatatypeDecl dtypedecl) +
      Create a datatype sort.
      +
      Sort[]mkDatatypeSorts​(DatatypeDecl[] dtypedecls) +
      Create a vector of datatype sorts.
      +
      TermmkEmptyBag​(Sort sort) +
      Create a constant representing an empty bag of the given sort.
      +
      TermmkEmptySequence​(Sort sort) +
      Create an empty sequence of the given element sort.
      +
      TermmkEmptySet​(Sort sort) +
      Create a constant representing an empty set of the given sort.
      +
      TermmkFalse() +
      Create a Boolean false constant.
      +
      TermmkFiniteFieldElem​(java.lang.String val, + Sort sort, + int base) +
      Create a finite field constant in a given field and for a given value.
      +
      SortmkFiniteFieldSort​(java.lang.String size, + int base) +
      Create a finite field sort.
      +
      TermmkFloatingPoint​(int exp, + int sig, + Term val) +
      Create a floating-point value from a bit-vector given in IEEE-754 + format.
      +
      TermmkFloatingPoint​(Term sign, + Term exp, + Term sig) +
      Create a floating-point value from its three IEEE-754 bit-vector value + components (sign bit, exponent, significand).
      +
      TermmkFloatingPointNaN​(int exp, + int sig) +
      Create a not-a-number floating-point constant (SMT-LIB: NaN).
      +
      TermmkFloatingPointNegInf​(int exp, + int sig) +
      Create a negative infinity floating-point constant (SMT-LIB: -oo).
      +
      TermmkFloatingPointNegZero​(int exp, + int sig) +
      Create a negative zero floating-point constant (SMT-LIB: -zero).
      +
      TermmkFloatingPointPosInf​(int exp, + int sig) +
      Create a positive infinity floating-point constant (SMT-LIB: +oo).
      +
      TermmkFloatingPointPosZero​(int exp, + int sig) +
      Create a positive zero floating-point constant (SMT-LIB: +zero).
      +
      SortmkFloatingPointSort​(int exp, + int sig) +
      Create a floating-point sort.
      +
      SortmkFunctionSort​(Sort[] sorts, + Sort codomain) +
      Create function sort.
      +
      SortmkFunctionSort​(Sort domain, + Sort codomain) +
      Create function sort.
      +
      TermmkInteger​(long val) +
      Create an integer constant from a C++ int.
      +
      TermmkInteger​(java.lang.String s) +
      Create an integer constant from a string.
      +
      TermmkNullableIsNull​(Term term) +
      Create a null tester for a nullable term.
      +
      TermmkNullableIsSome​(Term term) +
      Create a some tester for a nullable term.
      +
      TermmkNullableLift​(Kind kind, + Term[] args) +
      Create a term that lifts kind to nullable terms.
      +
      TermmkNullableNull​(Sort sort) +
      Create a constant representing a null value of the given sort.
      +
      TermmkNullableSome​(Term term) +
      Create a nullable some term.
      +
      SortmkNullableSort​(Sort sort) +
      Create a nullable sort.
      +
      TermmkNullableVal​(Term term) +
      Create a selector for nullable term.
      +
      OpmkOp​(Kind kind) +
      Create an operator for a builtin Kind + The Kind may not be the Kind for an indexed operator + (e.g., Kind.BITVECTOR_EXTRACT).
      +
      OpmkOp​(Kind kind, + int arg) +
      Create operator of kind: + + DIVISIBLE + BITVECTOR_REPEAT + BITVECTOR_ZERO_EXTEND + BITVECTOR_SIGN_EXTEND + BITVECTOR_ROTATE_LEFT + BITVECTOR_ROTATE_RIGHT + INT_TO_BITVECTOR + FLOATINGPOINT_TO_UBV + FLOATINGPOINT_TO_UBV_TOTAL + FLOATINGPOINT_TO_SBV + FLOATINGPOINT_TO_SBV_TOTAL + TUPLE_UPDATE + + See enum Kind for a description of the parameters.
      +
      OpmkOp​(Kind kind, + int[] args) +
      Create operator of Kind: + + TUPLE_PROJECT + + See enum Kind for a description of the parameters.
      +
      OpmkOp​(Kind kind, + int arg1, + int arg2) +
      Create operator of Kind: + + BITVECTOR_EXTRACT + FLOATINGPOINT_TO_FP_FROM_IEEE_BV + FLOATINGPOINT_TO_FP_FROM_FP + FLOATINGPOINT_TO_FP_FROM_REAL + FLOATINGPOINT_TO_FP_FROM_SBV + FLOATINGPOINT_TO_FP_FROM_UBV + + See enum Kind for a description of the parameters.
      +
      OpmkOp​(Kind kind, + java.lang.String arg) +
      Create operator of kind: + + + Kind.DIVISIBLE (to support arbitrary precision integers) + + + See enum Kind for a description of the parameters.
      +
      SortmkParamSort() +
      Create a sort parameter.
      +
      SortmkParamSort​(java.lang.String symbol) +
      Create a sort parameter.
      +
      TermmkPi() +
      Create a constant representing the number Pi.
      +
      SortmkPredicateSort​(Sort[] sorts) +
      Create a predicate sort.
      +
      TermmkReal​(long val) +
      Create a real constant from an integer.
      +
      TermmkReal​(long num, + long den) +
      Create a real constant from a rational.
      +
      TermmkReal​(java.lang.String s) +
      Create a real constant from a string.
      +
      SortmkRecordSort​(Pair<java.lang.String,​Sort>[] fields) +
      Create a record sort
      +
      TermmkRegexpAll() +
      Create a regular expression all (re.all) term.
      +
      TermmkRegexpAllchar() +
      Create a regular expression allchar (re.allchar) term.
      +
      TermmkRegexpNone() +
      Create a regular expression none (re.none) term.
      +
      TermmkRoundingMode​(RoundingMode rm) +
      Create a rounding mode constant.
      +
      TermmkSepEmp() +
      Create a separation logic empty term.
      +
      TermmkSepNil​(Sort sort) +
      Create a separation logic nil term.
      +
      SortmkSequenceSort​(Sort elemSort) +
      Create a sequence sort.
      +
      SortmkSetSort​(Sort elemSort) +
      Create a set sort.
      +
      TermmkSkolem​(SkolemId skolemId, + Term[] indices) +
      Create a skolem
      +
      TermmkString​(int[] s) +
      Create a String constant.
      +
      TermmkString​(java.lang.String s) +
      Create a String constant.
      +
      TermmkString​(java.lang.String s, + boolean useEscSequences) +
      Create a String constant.
      +
      TermmkTerm​(Kind kind) +
      Create 0-ary term of given kind.
      +
      TermmkTerm​(Kind kind, + Term child) +
      Create a unary term of given kind.
      +
      TermmkTerm​(Kind kind, + Term[] children) +
      Create n-ary term of given kind.
      +
      TermmkTerm​(Kind kind, + Term child1, + Term child2) +
      Create binary term of given kind.
      +
      TermmkTerm​(Kind kind, + Term child1, + Term child2, + Term child3) +
      Create ternary term of given kind.
      +
      TermmkTerm​(Op op) +
      Create nullary term of given kind from a given operator.
      +
      TermmkTerm​(Op op, + Term child) +
      Create unary term of given kind from a given operator.
      +
      TermmkTerm​(Op op, + Term[] children) +
      Create n-ary term of given kind from a given operator.
      +
      TermmkTerm​(Op op, + Term child1, + Term child2) +
      Create binary term of given kind from a given operator.
      +
      TermmkTerm​(Op op, + Term child1, + Term child2, + Term child3) +
      Create ternary term of given kind from a given operator.
      +
      TermmkTrue() +
      Create a Boolean true constant.
      +
      TermmkTuple​(Term[] terms) +
      Create a tuple term.
      +
      SortmkTupleSort​(Sort[] sorts) +
      Create a tuple sort.
      +
      SortmkUninterpretedSort() +
      Create an uninterpreted sort.
      +
      SortmkUninterpretedSort​(java.lang.String symbol) +
      Create an uninterpreted sort.
      +
      SortmkUninterpretedSortConstructorSort​(int arity) +
      Create a sort constructor sort.
      +
      SortmkUninterpretedSortConstructorSort​(int arity, + java.lang.String symbol) +
      Create a sort constructor sort.
      +
      TermmkUniverseSet​(Sort sort) +
      Create a universe set of the given sort.
      +
      SortmkUnresolvedDatatypeSort​(java.lang.String symbol) +
      Create an unresolved datatype sort.
      +
      SortmkUnresolvedDatatypeSort​(java.lang.String symbol, + int arity) +
      Create an unresolved datatype sort.
      +
      TermmkVar​(Sort sort) +
      Create a bound variable to be used in a binder (i.e., a quantifier, a + lambda, or a witness binder).
      +
      TermmkVar​(Sort sort, + java.lang.String symbol) +
      Create a bound variable to be used in a binder (i.e., a quantifier, a + lambda, or a witness binder).
      +
      java.lang.StringtoString() 
      protected java.lang.StringtoString​(long pointer) 
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • +
      +
    • +
    +
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        pointer

        +
        protected long pointer
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        TermManager

        +
        public TermManager()
        +
        Create a term manager instance.
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        deletePointer

        +
        protected void deletePointer​(long pointer)
        +
      • +
      + + + +
        +
      • +

        toString

        +
        protected java.lang.String toString​(long pointer)
        +
      • +
      + + + +
        +
      • +

        equals

        +
        public boolean equals​(java.lang.Object o)
        +
        +
        Overrides:
        +
        equals in class java.lang.Object
        +
        +
      • +
      + + + +
        +
      • +

        getStatistics

        +
        public Statistics getStatistics()
        +
        Get a snapshot of the current state of the statistic values of this + term manager. + + Term manager statistics are independent from any solver instance. The + returned object is completely decoupled from the term manager and will + not change when the solver is used again.
        +
        +
        Returns:
        +
        A snapshot of the current state of the statistic values.
        +
        +
      • +
      + + + +
        +
      • +

        getBooleanSort

        +
        public Sort getBooleanSort()
        +
        Get the Boolean sort.
        +
        +
        Returns:
        +
        Sort Boolean.
        +
        +
      • +
      + + + +
        +
      • +

        getIntegerSort

        +
        public Sort getIntegerSort()
        +
        Get the integer sort.
        +
        +
        Returns:
        +
        Sort Integer.
        +
        +
      • +
      + + + +
        +
      • +

        getIntegerSort

        +
        public long getIntegerSort​(long pointer)
        +
      • +
      + + + +
        +
      • +

        getRealSort

        +
        public Sort getRealSort()
        +
        Get the real sort.
        +
        +
        Returns:
        +
        Sort Real.
        +
        +
      • +
      + + + +
        +
      • +

        getRegExpSort

        +
        public Sort getRegExpSort()
        +
        Get the regular expression sort.
        +
        +
        Returns:
        +
        Sort RegExp.
        +
        +
      • +
      + + + +
        +
      • +

        getRoundingModeSort

        +
        public Sort getRoundingModeSort()
        +                         throws CVC5ApiException
        +
        Get the floating-point rounding mode sort.
        +
        +
        Returns:
        +
        Sort RoundingMode.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        getStringSort

        +
        public Sort getStringSort()
        +
        Get the string sort.
        +
        +
        Returns:
        +
        Sort String.
        +
        +
      • +
      + + + +
        +
      • +

        mkArraySort

        +
        public Sort mkArraySort​(Sort indexSort,
        +                        Sort elemSort)
        +
        Create an array sort.
        +
        +
        Parameters:
        +
        indexSort - The array index sort.
        +
        elemSort - The array element sort.
        +
        Returns:
        +
        The array sort.
        +
        +
      • +
      + + + +
        +
      • +

        mkBitVectorSort

        +
        public Sort mkBitVectorSort​(int size)
        +                     throws CVC5ApiException
        +
        Create a bit-vector sort.
        +
        +
        Parameters:
        +
        size - The bit-width of the bit-vector sort.
        +
        Returns:
        +
        The bit-vector sort.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        mkFiniteFieldSort

        +
        public Sort mkFiniteFieldSort​(java.lang.String size,
        +                              int base)
        +                       throws CVC5ApiException
        +
        Create a finite field sort.
        +
        +
        Parameters:
        +
        size - The size of the finite field sort.
        +
        base - The base of the string representation.
        +
        Returns:
        +
        The finite field sort.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        mkFloatingPointSort

        +
        public Sort mkFloatingPointSort​(int exp,
        +                                int sig)
        +                         throws CVC5ApiException
        +
        Create a floating-point sort.
        +
        +
        Parameters:
        +
        exp - The bit-width of the exponent of the floating-point sort.
        +
        sig - The bit-width of the significand of the floating-point sort.
        +
        Returns:
        +
        The floating-point sort.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        mkDatatypeSort

        +
        public Sort mkDatatypeSort​(DatatypeDecl dtypedecl)
        +                    throws CVC5ApiException
        +
        Create a datatype sort.
        +
        +
        Parameters:
        +
        dtypedecl - The datatype declaration from which the sort is created.
        +
        Returns:
        +
        The datatype sort.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        mkDatatypeSorts

        +
        public Sort[] mkDatatypeSorts​(DatatypeDecl[] dtypedecls)
        +                       throws CVC5ApiException
        +
        Create a vector of datatype sorts. + + The names of the datatype declarations must be distinct.
        +
        +
        Parameters:
        +
        dtypedecls - The datatype declarations from which the sort is created.
        +
        Returns:
        +
        The datatype sorts.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        mkFunctionSort

        +
        public Sort mkFunctionSort​(Sort domain,
        +                           Sort codomain)
        +
        Create function sort.
        +
        +
        Parameters:
        +
        domain - The sort of the fuction argument.
        +
        codomain - The sort of the function return value.
        +
        Returns:
        +
        The function sort.
        +
        +
      • +
      + + + +
        +
      • +

        mkFunctionSort

        +
        public Sort mkFunctionSort​(Sort[] sorts,
        +                           Sort codomain)
        +
        Create function sort.
        +
        +
        Parameters:
        +
        sorts - The sort of the function arguments.
        +
        codomain - The sort of the function return value.
        +
        Returns:
        +
        The function sort.
        +
        +
      • +
      + + + +
        +
      • +

        mkParamSort

        +
        public Sort mkParamSort​(java.lang.String symbol)
        +
        Create a sort parameter.
        +
        +
        Parameters:
        +
        symbol - The name of the sort.
        +
        Returns:
        +
        The sort parameter.
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        mkParamSort

        +
        public Sort mkParamSort()
        +
        Create a sort parameter.
        +
        +
        Returns:
        +
        The sort parameter.
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        mkSkolem

        +
        public Term mkSkolem​(SkolemId skolemId,
        +                     Term[] indices)
        +
        Create a skolem
        +
        +
        Parameters:
        +
        skolemId - The id of the skolem.
        +
        indices - The indices of the skolem.
        +
        Returns:
        +
        The skolem.
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        getNumIndicesForSkolemId

        +
        public int getNumIndicesForSkolemId​(SkolemId id)
        +
        Get the number of indices for a given skolem id.
        +
        +
        Parameters:
        +
        id - The skolem id.
        +
        Returns:
        +
        The number of indices for the given skolem id.
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        mkPredicateSort

        +
        public Sort mkPredicateSort​(Sort[] sorts)
        +
        Create a predicate sort.
        +
        +
        Parameters:
        +
        sorts - The list of sorts of the predicate.
        +
        Returns:
        +
        The predicate sort.
        +
        +
      • +
      + + + +
        +
      • +

        mkRecordSort

        +
        public Sort mkRecordSort​(Pair<java.lang.String,​Sort>[] fields)
        +
        Create a record sort
        +
        +
        Parameters:
        +
        fields - The list of fields of the record.
        +
        Returns:
        +
        The record sort.
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        mkSetSort

        +
        public Sort mkSetSort​(Sort elemSort)
        +
        Create a set sort.
        +
        +
        Parameters:
        +
        elemSort - The sort of the set elements.
        +
        Returns:
        +
        The set sort.
        +
        +
      • +
      + + + +
        +
      • +

        mkBagSort

        +
        public Sort mkBagSort​(Sort elemSort)
        +
        Create a bag sort.
        +
        +
        Parameters:
        +
        elemSort - The sort of the bag elements.
        +
        Returns:
        +
        The bag sort.
        +
        +
      • +
      + + + +
        +
      • +

        mkSequenceSort

        +
        public Sort mkSequenceSort​(Sort elemSort)
        +
        Create a sequence sort.
        +
        +
        Parameters:
        +
        elemSort - The sort of the sequence elements.
        +
        Returns:
        +
        The sequence sort.
        +
        +
      • +
      + + + +
        +
      • +

        mkAbstractSort

        +
        public Sort mkAbstractSort​(SortKind kind)
        +
        Create an abstract sort. An abstract sort represents a sort for a given + kind whose parameters and arguments are unspecified. + + The SortKind k must be the kind of a sort that can be abstracted, + i.e., a sort that has indices or argument sorts. For example, + SortKind.ARRAY_SORT and SortKind.BITVECTOR_SORT can be + passed as the SortKind k to this method, while + SortKind.INTEGER_SORT and SortKind.STRING_SORT cannot.
        +
        +
        Parameters:
        +
        kind - The kind of the abstract sort
        +
        Returns:
        +
        The abstract sort.
        +
        Note:
        +
        Providing the kind SortKind.ABSTRACT_SORT as an + argument to this method returns the (fully) unspecified sort, + often denoted ?., Providing a kind k that has no indices and a fixed arity + of argument sorts will return the sort of SortKind k + whose arguments are the unspecified sort. For example, + mkAbstractSort(ARRAY_SORT) will return the sort + (ARRAY_SORT ? ?) instead of the abstract sort whose + abstract kind is SortKind.ABSTRACT_SORT., This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        mkUninterpretedSort

        +
        public Sort mkUninterpretedSort​(java.lang.String symbol)
        +
        Create an uninterpreted sort.
        +
        +
        Parameters:
        +
        symbol - The name of the sort.
        +
        Returns:
        +
        The uninterpreted sort.
        +
        +
      • +
      + + + +
        +
      • +

        mkUninterpretedSort

        +
        public Sort mkUninterpretedSort()
        +
        Create an uninterpreted sort.
        +
        +
        Returns:
        +
        The uninterpreted sort.
        +
        +
      • +
      + + + +
        +
      • +

        mkUnresolvedDatatypeSort

        +
        public Sort mkUnresolvedDatatypeSort​(java.lang.String symbol,
        +                                     int arity)
        +                              throws CVC5ApiException
        +
        Create an unresolved datatype sort. + + This is for creating yet unresolved sort placeholders for mutually + recursive parametric datatypes.
        +
        +
        Parameters:
        +
        symbol - The symbol of the sort.
        +
        arity - The number of sort parameters of the sort.
        +
        Returns:
        +
        The unresolved sort.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        mkUnresolvedDatatypeSort

        +
        public Sort mkUnresolvedDatatypeSort​(java.lang.String symbol)
        +                              throws CVC5ApiException
        +
        Create an unresolved datatype sort. + + This is for creating yet unresolved sort placeholders for mutually + recursive datatypes without sort parameters.
        +
        +
        Parameters:
        +
        symbol - The symbol of the sort.
        +
        Returns:
        +
        The unresolved sort.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        mkUninterpretedSortConstructorSort

        +
        public Sort mkUninterpretedSortConstructorSort​(int arity,
        +                                               java.lang.String symbol)
        +                                        throws CVC5ApiException
        +
        Create a sort constructor sort. + + An uninterpreted sort constructor is an uninterpreted sort with + arity > 0.
        +
        +
        Parameters:
        +
        arity - The arity of the sort (must be > 0)
        +
        symbol - The symbol of the sort.
        +
        Returns:
        +
        The sort constructor sort.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        mkUninterpretedSortConstructorSort

        +
        public Sort mkUninterpretedSortConstructorSort​(int arity)
        +                                        throws CVC5ApiException
        +
        Create a sort constructor sort. + + An uninterpreted sort constructor is an uninterpreted sort with + arity > 0.
        +
        +
        Parameters:
        +
        arity - The arity of the sort (must be > 0)
        +
        Returns:
        +
        The sort constructor sort.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        mkTupleSort

        +
        public Sort mkTupleSort​(Sort[] sorts)
        +
        Create a tuple sort.
        +
        +
        Parameters:
        +
        sorts - Of the elements of the tuple.
        +
        Returns:
        +
        The tuple sort.
        +
        +
      • +
      + + + +
        +
      • +

        mkNullableSort

        +
        public Sort mkNullableSort​(Sort sort)
        +
        Create a nullable sort.
        +
        +
        Parameters:
        +
        sort - The sort of the element of the nullable.
        +
        Returns:
        +
        The nullable sort.
        +
        +
      • +
      + + + +
        +
      • +

        mkTerm

        +
        public Term mkTerm​(Kind kind)
        +
        Create 0-ary term of given kind.
        +
        +
        Parameters:
        +
        kind - The kind of the term.
        +
        Returns:
        +
        The Term.
        +
        +
      • +
      + + + +
        +
      • +

        mkTerm

        +
        public Term mkTerm​(Kind kind,
        +                   Term child)
        +
        Create a unary term of given kind.
        +
        +
        Parameters:
        +
        kind - The kind of the term.
        +
        child - The child of the term.
        +
        Returns:
        +
        The Term.
        +
        +
      • +
      + + + +
        +
      • +

        mkTerm

        +
        public Term mkTerm​(Kind kind,
        +                   Term child1,
        +                   Term child2)
        +
        Create binary term of given kind.
        +
        +
        Parameters:
        +
        kind - The kind of the term.
        +
        child1 - The first child of the term.
        +
        child2 - The second child of the term.
        +
        Returns:
        +
        The Term.
        +
        +
      • +
      + + + +
        +
      • +

        mkTerm

        +
        public Term mkTerm​(Kind kind,
        +                   Term child1,
        +                   Term child2,
        +                   Term child3)
        +
        Create ternary term of given kind.
        +
        +
        Parameters:
        +
        kind - The kind of the term.
        +
        child1 - The first child of the term.
        +
        child2 - The second child of the term.
        +
        child3 - The third child of the term.
        +
        Returns:
        +
        The Term.
        +
        +
      • +
      + + + +
        +
      • +

        mkTerm

        +
        public Term mkTerm​(Kind kind,
        +                   Term[] children)
        +
        Create n-ary term of given kind.
        +
        +
        Parameters:
        +
        kind - The kind of the term.
        +
        children - The children of the term.
        +
        Returns:
        +
        The Term.
        +
        +
      • +
      + + + + + + + +
        +
      • +

        mkTerm

        +
        public Term mkTerm​(Op op,
        +                   Term child)
        +
        Create unary term of given kind from a given operator. + Create operators with mkOp(Kind), + mkOp(Kind, String), mkOp(Kind, int[]).
        +
        +
        Parameters:
        +
        op - The operator.
        +
        child - The child of the term.
        +
        Returns:
        +
        The Term.
        +
        +
      • +
      + + + +
        +
      • +

        mkTerm

        +
        public Term mkTerm​(Op op,
        +                   Term child1,
        +                   Term child2)
        +
        Create binary term of given kind from a given operator. + Create operators with mkOp(Kind), + mkOp(Kind, String), mkOp(Kind, int[]).
        +
        +
        Parameters:
        +
        op - The operator.
        +
        child1 - The first child of the term.
        +
        child2 - The second child of the term.
        +
        Returns:
        +
        The Term.
        +
        +
      • +
      + + + +
        +
      • +

        mkTerm

        +
        public Term mkTerm​(Op op,
        +                   Term child1,
        +                   Term child2,
        +                   Term child3)
        +
        Create ternary term of given kind from a given operator. + Create operators with mkOp(Kind), + mkOp(Kind, String), mkOp(Kind, int[]).
        +
        +
        Parameters:
        +
        op - The operator.
        +
        child1 - The first child of the term.
        +
        child2 - The second child of the term.
        +
        child3 - The third child of the term.
        +
        Returns:
        +
        The Term.
        +
        +
      • +
      + + + +
        +
      • +

        mkTerm

        +
        public Term mkTerm​(Op op,
        +                   Term[] children)
        +
        Create n-ary term of given kind from a given operator. + Create operators with mkOp(Kind), + mkOp(Kind, String), mkOp(Kind, int[]).
        +
        +
        Parameters:
        +
        op - The operator.
        +
        children - The children of the term.
        +
        Returns:
        +
        The Term.
        +
        +
      • +
      + + + +
        +
      • +

        mkTuple

        +
        public Term mkTuple​(Term[] terms)
        +
        Create a tuple term. + Terms are automatically converted if sorts are compatible.
        +
        +
        Parameters:
        +
        terms - The elements in the tuple.
        +
        Returns:
        +
        The tuple Term.
        +
        +
      • +
      + + + +
        +
      • +

        mkNullableSome

        +
        public Term mkNullableSome​(Term term)
        +
        Create a nullable some term.
        +
        +
        Parameters:
        +
        term - The element value.
        +
        Returns:
        +
        the Element value wrapped in some constructor.
        +
        +
      • +
      + + + +
        +
      • +

        mkNullableVal

        +
        public Term mkNullableVal​(Term term)
        +
        Create a selector for nullable term.
        +
        +
        Parameters:
        +
        term - A nullable term.
        +
        Returns:
        +
        The element value of the nullable term.
        +
        +
      • +
      + + + +
        +
      • +

        mkNullableIsNull

        +
        public Term mkNullableIsNull​(Term term)
        +
        Create a null tester for a nullable term.
        +
        +
        Parameters:
        +
        term - A nullable term.
        +
        Returns:
        +
        A tester whether term is null.
        +
        +
      • +
      + + + +
        +
      • +

        mkNullableIsSome

        +
        public Term mkNullableIsSome​(Term term)
        +
        Create a some tester for a nullable term.
        +
        +
        Parameters:
        +
        term - A nullable term.
        +
        Returns:
        +
        A tester whether term is some.
        +
        +
      • +
      + + + +
        +
      • +

        mkNullableNull

        +
        public Term mkNullableNull​(Sort sort)
        +
        Create a constant representing a null value of the given sort.
        +
        +
        Parameters:
        +
        sort - The sort of the Nullable element.
        +
        Returns:
        +
        The null constant.
        +
        +
      • +
      + + + +
        +
      • +

        mkNullableLift

        +
        public Term mkNullableLift​(Kind kind,
        +                           Term[] args)
        +
        Create a term that lifts kind to nullable terms. + Example: + If we have the term ((_ nullable.lift +) x y), + where x, y of type (Nullable Int), then + kind would be ADD, and args would be [x, y]. + This function would return + (nullable.lift (lambda ((a Int) (b Int)) (+ a b)) x y)
        +
        +
        Parameters:
        +
        kind - The lifted operator.
        +
        args - The arguments of the lifted operator.
        +
        Returns:
        +
        A term of Kind NULLABLE_LIFT where the first child + is a lambda expression, and the remaining children are + the original arguments.
        +
        +
      • +
      + + + +
        +
      • +

        mkOp

        +
        public Op mkOp​(Kind kind)
        +
        Create an operator for a builtin Kind + The Kind may not be the Kind for an indexed operator + (e.g., Kind.BITVECTOR_EXTRACT).
        +
        +
        Parameters:
        +
        kind - The kind to wrap.
        +
        Returns:
        +
        The operator.
        +
        Note:
        +
        In this case, the Op simply wraps the Kind. The Kind can be used + in mkTerm directly without creating an op first.
        +
        +
      • +
      + + + +
        +
      • +

        mkOp

        +
        public Op mkOp​(Kind kind,
        +               java.lang.String arg)
        +
        Create operator of kind: + + See enum Kind for a description of the parameters.
        +
        +
        Parameters:
        +
        kind - The kind of the operator.
        +
        arg - The string argument to this operator.
        +
        Returns:
        +
        The operator.
        +
        +
      • +
      + + + +
        +
      • +

        mkOp

        +
        public Op mkOp​(Kind kind,
        +               int arg)
        +        throws CVC5ApiException
        +
        Create operator of kind: +
          +
        • DIVISIBLE
        • +
        • BITVECTOR_REPEAT
        • +
        • BITVECTOR_ZERO_EXTEND
        • +
        • BITVECTOR_SIGN_EXTEND
        • +
        • BITVECTOR_ROTATE_LEFT
        • +
        • BITVECTOR_ROTATE_RIGHT
        • +
        • INT_TO_BITVECTOR
        • +
        • FLOATINGPOINT_TO_UBV
        • +
        • FLOATINGPOINT_TO_UBV_TOTAL
        • +
        • FLOATINGPOINT_TO_SBV
        • +
        • FLOATINGPOINT_TO_SBV_TOTAL
        • +
        • TUPLE_UPDATE
        • +
        + See enum Kind for a description of the parameters.
        +
        +
        Parameters:
        +
        kind - The kind of the operator.
        +
        arg - The unsigned int argument to this operator.
        +
        Returns:
        +
        The operator.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        mkOp

        +
        public Op mkOp​(Kind kind,
        +               int arg1,
        +               int arg2)
        +        throws CVC5ApiException
        +
        Create operator of Kind: +
          +
        • BITVECTOR_EXTRACT
        • +
        • FLOATINGPOINT_TO_FP_FROM_IEEE_BV
        • +
        • FLOATINGPOINT_TO_FP_FROM_FP
        • +
        • FLOATINGPOINT_TO_FP_FROM_REAL
        • +
        • FLOATINGPOINT_TO_FP_FROM_SBV
        • +
        • FLOATINGPOINT_TO_FP_FROM_UBV
        • +
        + See enum Kind for a description of the parameters.
        +
        +
        Parameters:
        +
        kind - The kind of the operator.
        +
        arg1 - The first unsigned int argument to this operator.
        +
        arg2 - The second unsigned int argument to this operator.
        +
        Returns:
        +
        The operator.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        mkOp

        +
        public Op mkOp​(Kind kind,
        +               int[] args)
        +        throws CVC5ApiException
        +
        Create operator of Kind: +
          +
        • TUPLE_PROJECT
        • +
        + See enum Kind for a description of the parameters.
        +
        +
        Parameters:
        +
        kind - The kind of the operator.
        +
        args - The arguments (indices) of the operator.
        +
        Returns:
        +
        The operator.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        mkTrue

        +
        public Term mkTrue()
        +
        Create a Boolean true constant.
        +
        +
        Returns:
        +
        The true constant.
        +
        +
      • +
      + + + +
        +
      • +

        mkFalse

        +
        public Term mkFalse()
        +
        Create a Boolean false constant.
        +
        +
        Returns:
        +
        The false constant.
        +
        +
      • +
      + + + +
        +
      • +

        mkBoolean

        +
        public Term mkBoolean​(boolean val)
        +
        Create a Boolean constant.
        +
        +
        Parameters:
        +
        val - The value of the constant.
        +
        Returns:
        +
        The Boolean constant.
        +
        +
      • +
      + + + +
        +
      • +

        mkPi

        +
        public Term mkPi()
        +
        Create a constant representing the number Pi.
        +
        +
        Returns:
        +
        A constant representing Pi.
        +
        +
      • +
      + + + +
        +
      • +

        mkInteger

        +
        public Term mkInteger​(java.lang.String s)
        +               throws CVC5ApiException
        +
        Create an integer constant from a string.
        +
        +
        Parameters:
        +
        s - The string representation of the constant, may represent an. + integer (e.g., "123").
        +
        Returns:
        +
        A constant of sort Integer assuming s represents an + integer).
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        mkInteger

        +
        public Term mkInteger​(long val)
        +
        Create an integer constant from a C++ int.
        +
        +
        Parameters:
        +
        val - The value of the constant.
        +
        Returns:
        +
        A constant of sort Integer.
        +
        +
      • +
      + + + +
        +
      • +

        mkReal

        +
        public Term mkReal​(java.lang.String s)
        +            throws CVC5ApiException
        +
        Create a real constant from a string.
        +
        +
        Parameters:
        +
        s - The string representation of the constant, may represent an. + integer (e.g., "123") or real constant (e.g., "12.34" or + "12/34").
        +
        Returns:
        +
        A constant of sort Real.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        mkReal

        +
        public Term mkReal​(long val)
        +
        Create a real constant from an integer.
        +
        +
        Parameters:
        +
        val - The value of the constant.
        +
        Returns:
        +
        A constant of sort Integer.
        +
        +
      • +
      + + + +
        +
      • +

        mkReal

        +
        public Term mkReal​(long num,
        +                   long den)
        +
        Create a real constant from a rational.
        +
        +
        Parameters:
        +
        num - The value of the numerator.
        +
        den - The value of the denominator.
        +
        Returns:
        +
        A constant of sort Real.
        +
        +
      • +
      + + + +
        +
      • +

        mkRegexpNone

        +
        public Term mkRegexpNone()
        +
        Create a regular expression none (re.none) term.
        +
        +
        Returns:
        +
        The none term.
        +
        +
      • +
      + + + +
        +
      • +

        mkRegexpAll

        +
        public Term mkRegexpAll()
        +
        Create a regular expression all (re.all) term.
        +
        +
        Returns:
        +
        The all term.
        +
        +
      • +
      + + + +
        +
      • +

        mkRegexpAllchar

        +
        public Term mkRegexpAllchar()
        +
        Create a regular expression allchar (re.allchar) term.
        +
        +
        Returns:
        +
        The allchar term.
        +
        +
      • +
      + + + +
        +
      • +

        mkEmptySet

        +
        public Term mkEmptySet​(Sort sort)
        +
        Create a constant representing an empty set of the given sort.
        +
        +
        Parameters:
        +
        sort - The sort of the set elements.
        +
        Returns:
        +
        The empty set constant.
        +
        +
      • +
      + + + +
        +
      • +

        mkEmptyBag

        +
        public Term mkEmptyBag​(Sort sort)
        +
        Create a constant representing an empty bag of the given sort.
        +
        +
        Parameters:
        +
        sort - The sort of the bag elements.
        +
        Returns:
        +
        The empty bag constant.
        +
        +
      • +
      + + + +
        +
      • +

        mkSepEmp

        +
        public Term mkSepEmp()
        +
        Create a separation logic empty term.
        +
        +
        Returns:
        +
        The separation logic empty term.
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        mkSepNil

        +
        public Term mkSepNil​(Sort sort)
        +
        Create a separation logic nil term.
        +
        +
        Parameters:
        +
        sort - The sort of the nil term.
        +
        Returns:
        +
        The separation logic nil term.
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        mkString

        +
        public Term mkString​(java.lang.String s)
        +
        Create a String constant.
        +
        +
        Parameters:
        +
        s - The string this constant represents.
        +
        Returns:
        +
        The String constant.
        +
        +
      • +
      + + + +
        +
      • +

        mkString

        +
        public Term mkString​(java.lang.String s,
        +                     boolean useEscSequences)
        +
        Create a String constant.
        +
        +
        Parameters:
        +
        s - The string this constant represents.
        +
        useEscSequences - Determines whether escape sequences in s + should be converted to the corresponding unicode + character.
        +
        Returns:
        +
        The String constant.
        +
        +
      • +
      + + + +
        +
      • +

        mkString

        +
        public Term mkString​(int[] s)
        +              throws CVC5ApiException
        +
        Create a String constant.
        +
        +
        Parameters:
        +
        s - A list of unsigned (unicode) values this constant represents + as string.
        +
        Returns:
        +
        The String constant.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        mkEmptySequence

        +
        public Term mkEmptySequence​(Sort sort)
        +
        Create an empty sequence of the given element sort.
        +
        +
        Parameters:
        +
        sort - The element sort of the sequence.
        +
        Returns:
        +
        The empty sequence with given element sort.
        +
        +
      • +
      + + + +
        +
      • +

        mkUniverseSet

        +
        public Term mkUniverseSet​(Sort sort)
        +
        Create a universe set of the given sort.
        +
        +
        Parameters:
        +
        sort - The sort of the set elements.
        +
        Returns:
        +
        The universe set constant.
        +
        +
      • +
      + + + +
        +
      • +

        mkBitVector

        +
        public Term mkBitVector​(int size)
        +                 throws CVC5ApiException
        +
        Create a bit-vector constant of given size and value = 0.
        +
        +
        Parameters:
        +
        size - The bit-width of the bit-vector sort.
        +
        Returns:
        +
        The bit-vector constant.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        mkBitVector

        +
        public Term mkBitVector​(int size,
        +                        long val)
        +                 throws CVC5ApiException
        +
        Create a bit-vector constant of given size and value.
        +
        +
        Parameters:
        +
        size - The bit-width of the bit-vector sort.
        +
        val - The value of the constant.
        +
        Returns:
        +
        The bit-vector constant.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        Note:
        +
        The given value must fit into a bit-vector of the given size.
        +
        +
      • +
      + + + +
        +
      • +

        mkBitVector

        +
        public Term mkBitVector​(int size,
        +                        java.lang.String s,
        +                        int base)
        +                 throws CVC5ApiException
        +
        Create a bit-vector constant of a given bit-width from a given string of + base 2, 10 or 16.
        +
        +
        Parameters:
        +
        size - The bit-width of the constant.
        +
        s - The string representation of the constant.
        +
        base - The base of the string representation (2, 10, or 16)
        +
        Returns:
        +
        The bit-vector constant.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        Note:
        +
        The given value must fit into a bit-vector of the given size.
        +
        +
      • +
      + + + +
        +
      • +

        mkFiniteFieldElem

        +
        public Term mkFiniteFieldElem​(java.lang.String val,
        +                              Sort sort,
        +                              int base)
        +                       throws CVC5ApiException
        +
        Create a finite field constant in a given field and for a given value.
        +
        +
        Parameters:
        +
        val - The value of the constant.
        +
        sort - The sort of the finite field.
        +
        base - The base of the string representation.
        +
        Returns:
        +
        The finite field constant.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        Note:
        +
        The given value must fit into a the given finite field.
        +
        +
      • +
      + + + +
        +
      • +

        mkConstArray

        +
        public Term mkConstArray​(Sort sort,
        +                         Term val)
        +
        Create a constant array with the provided constant value stored at + every index
        +
        +
        Parameters:
        +
        sort - The sort of the constant array (must be an array sort)
        +
        val - The constant value to store (must match the sort's element + sort).
        +
        Returns:
        +
        The constant array term.
        +
        +
      • +
      + + + +
        +
      • +

        mkFloatingPointPosInf

        +
        public Term mkFloatingPointPosInf​(int exp,
        +                                  int sig)
        +                           throws CVC5ApiException
        +
        Create a positive infinity floating-point constant (SMT-LIB: +oo).
        +
        +
        Parameters:
        +
        exp - Number of bits in the exponent.
        +
        sig - Number of bits in the significand.
        +
        Returns:
        +
        The floating-point constant.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        mkFloatingPointNegInf

        +
        public Term mkFloatingPointNegInf​(int exp,
        +                                  int sig)
        +                           throws CVC5ApiException
        +
        Create a negative infinity floating-point constant (SMT-LIB: -oo).
        +
        +
        Parameters:
        +
        exp - Number of bits in the exponent.
        +
        sig - Number of bits in the significand.
        +
        Returns:
        +
        The floating-point constant.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        mkFloatingPointNaN

        +
        public Term mkFloatingPointNaN​(int exp,
        +                               int sig)
        +                        throws CVC5ApiException
        +
        Create a not-a-number floating-point constant (SMT-LIB: NaN).
        +
        +
        Parameters:
        +
        exp - Number of bits in the exponent.
        +
        sig - Number of bits in the significand.
        +
        Returns:
        +
        The floating-point constant.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        mkFloatingPointPosZero

        +
        public Term mkFloatingPointPosZero​(int exp,
        +                                   int sig)
        +                            throws CVC5ApiException
        +
        Create a positive zero floating-point constant (SMT-LIB: +zero).
        +
        +
        Parameters:
        +
        exp - Number of bits in the exponent.
        +
        sig - Number of bits in the significand.
        +
        Returns:
        +
        The floating-point constant.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        mkFloatingPointNegZero

        +
        public Term mkFloatingPointNegZero​(int exp,
        +                                   int sig)
        +                            throws CVC5ApiException
        +
        Create a negative zero floating-point constant (SMT-LIB: -zero).
        +
        +
        Parameters:
        +
        exp - Number of bits in the exponent.
        +
        sig - Number of bits in the significand.
        +
        Returns:
        +
        The floating-point constant.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        mkRoundingMode

        +
        public Term mkRoundingMode​(RoundingMode rm)
        +
        Create a rounding mode constant.
        +
        +
        Parameters:
        +
        rm - The floating point rounding mode this constant represents.
        +
        Returns:
        +
        The rounding mode.
        +
        +
      • +
      + + + +
        +
      • +

        mkFloatingPoint

        +
        public Term mkFloatingPoint​(int exp,
        +                            int sig,
        +                            Term val)
        +                     throws CVC5ApiException
        +
        Create a floating-point value from a bit-vector given in IEEE-754 + format.
        +
        +
        Parameters:
        +
        exp - Size of the exponent.
        +
        sig - Size of the significand.
        +
        val - Value of the floating-point constant as a bit-vector term.
        +
        Returns:
        +
        The floating-point value.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        mkFloatingPoint

        +
        public Term mkFloatingPoint​(Term sign,
        +                            Term exp,
        +                            Term sig)
        +                     throws CVC5ApiException
        +
        Create a floating-point value from its three IEEE-754 bit-vector value + components (sign bit, exponent, significand).
        +
        +
        Parameters:
        +
        sign - The sign bit.
        +
        exp - The bit-vector representing the exponent.
        +
        sig - The bit-vector representing the significand.
        +
        Returns:
        +
        The floating-point value.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        +
      • +
      + + + +
        +
      • +

        mkCardinalityConstraint

        +
        public Term mkCardinalityConstraint​(Sort sort,
        +                                    int upperBound)
        +                             throws CVC5ApiException
        +
        Create a cardinality constraint for an uninterpreted sort.
        +
        +
        Parameters:
        +
        sort - The sort the cardinality constraint is for.
        +
        upperBound - The upper bound on the cardinality of the sort.
        +
        Returns:
        +
        The cardinality constraint.
        +
        Throws:
        +
        CVC5ApiException - on error
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        mkConst

        +
        public Term mkConst​(Sort sort,
        +                    java.lang.String symbol)
        +
        Create a free constant. + + SMT-LIB: + + ( declare-const <symbol> <sort> ) + ( declare-fun <symbol> ( ) <sort> ) +
        +
        +
        Parameters:
        +
        sort - The sort of the constant.
        +
        symbol - The name of the constant.
        +
        Returns:
        +
        The first-order constant.
        +
        +
      • +
      + + + +
        +
      • +

        mkConst

        +
        public Term mkConst​(Sort sort)
        +
        Create a free constant with a default symbol name.
        +
        +
        Parameters:
        +
        sort - The sort of the constant.
        +
        Returns:
        +
        The first-order constant.
        +
        +
      • +
      + + + +
        +
      • +

        mkVar

        +
        public Term mkVar​(Sort sort)
        +
        Create a bound variable to be used in a binder (i.e., a quantifier, a + lambda, or a witness binder).
        +
        +
        Parameters:
        +
        sort - The sort of the variable.
        +
        Returns:
        +
        The variable.
        +
        +
      • +
      + + + +
        +
      • +

        mkVar

        +
        public Term mkVar​(Sort sort,
        +                  java.lang.String symbol)
        +
        Create a bound variable to be used in a binder (i.e., a quantifier, a + lambda, or a witness binder).
        +
        +
        Parameters:
        +
        sort - The sort of the variable.
        +
        symbol - The name of the variable.
        +
        Returns:
        +
        The variable.
        +
        +
      • +
      + + + +
        +
      • +

        mkDatatypeConstructorDecl

        +
        public DatatypeConstructorDecl mkDatatypeConstructorDecl​(java.lang.String name)
        +
        Create a datatype constructor declaration.
        +
        +
        Parameters:
        +
        name - The name of the datatype constructor.
        +
        Returns:
        +
        The DatatypeConstructorDecl.
        +
        +
      • +
      + + + +
        +
      • +

        mkDatatypeDecl

        +
        public DatatypeDecl mkDatatypeDecl​(java.lang.String name)
        +
        Create a datatype declaration.
        +
        +
        Parameters:
        +
        name - The name of the datatype.
        +
        Returns:
        +
        The DatatypeDecl.
        +
        +
      • +
      + + + +
        +
      • +

        mkDatatypeDecl

        +
        public DatatypeDecl mkDatatypeDecl​(java.lang.String name,
        +                                   boolean isCoDatatype)
        +
        Create a datatype declaration.
        +
        +
        Parameters:
        +
        name - The name of the datatype.
        +
        isCoDatatype - True if a codatatype is to be constructed.
        +
        Returns:
        +
        The DatatypeDecl.
        +
        +
      • +
      + + + +
        +
      • +

        mkDatatypeDecl

        +
        public DatatypeDecl mkDatatypeDecl​(java.lang.String name,
        +                                   Sort[] params)
        +
        Create a datatype declaration. + + Create sorts parameter with Solver.mkParamSort(String).
        +
        +
        Parameters:
        +
        name - The name of the datatype.
        +
        params - A list of sort parameters.
        +
        Returns:
        +
        The DatatypeDecl.
        +
        Note:
        +
        This method is experimental and may change in future versions.
        +
        +
      • +
      + + + +
        +
      • +

        mkDatatypeDecl

        +
        public DatatypeDecl mkDatatypeDecl​(java.lang.String name,
        +                                   Sort[] params,
        +                                   boolean isCoDatatype)
        +
        Create a datatype declaration. + + Create sorts parameter with Solver.mkParamSort(String).
        +
        +
        Parameters:
        +
        name - The name of the datatype.
        +
        params - A list of sort parameters.
        +
        isCoDatatype - True if a codatatype is to be constructed.
        +
        Returns:
        +
        The DatatypeDecl.
        +
        +
      • +
      + + + +
        +
      • +

        getPointer

        +
        public long getPointer()
        +
      • +
      + + + +
        +
      • +

        deletePointer

        +
        public void deletePointer()
        +
      • +
      + + + +
        +
      • +

        toString

        +
        public java.lang.String toString()
        +
        +
        Overrides:
        +
        toString in class java.lang.Object
        +
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Triplet.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Triplet.html new file mode 100644 index 0000000000..d5bed2deb8 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Triplet.html @@ -0,0 +1,386 @@ + + + + + +Triplet + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Class Triplet<A,​B,​C>

+
+
+ +
+
    +
  • +
    +
    public class Triplet<A,​B,​C>
    +extends java.lang.Object
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Field Summary

      + + + + + + + + + + + + + + + + + + + + + + +
      Fields 
      Modifier and TypeFieldDescription
      Afirst 
      Bsecond 
      Cthird 
      +
    • +
    +
    + +
    +
      +
    • + + +

      Constructor Summary

      + + + + + + + + + + +
      Constructors 
      ConstructorDescription
      Triplet​(A first, + B second, + C third) 
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + +
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethodDescription
      booleanequals​(java.lang.Object object) 
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • +
      +
    • +
    +
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        first

        +
        public A first
        +
      • +
      + + + +
        +
      • +

        second

        +
        public B second
        +
      • +
      + + + +
        +
      • +

        third

        +
        public C third
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Constructor Detail

      + + + + + +
        +
      • +

        Triplet

        +
        public Triplet​(A first,
        +               B second,
        +               C third)
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        equals

        +
        public boolean equals​(java.lang.Object object)
        +
        +
        Overrides:
        +
        equals in class java.lang.Object
        +
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/UnknownExplanation.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/UnknownExplanation.html new file mode 100644 index 0000000000..371f148c5a --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/UnknownExplanation.html @@ -0,0 +1,547 @@ + + + + + +UnknownExplanation + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Enum UnknownExplanation

+
+
+ +
+
    +
  • +
    +
    All Implemented Interfaces:
    +
    java.io.Serializable, java.lang.Comparable<UnknownExplanation>
    +
    +
    +
    public enum UnknownExplanation
    +extends java.lang.Enum<UnknownExplanation>
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Enum Constant Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Enum Constants 
      Enum ConstantDescription
      INCOMPLETE +
      Incomplete theory solver.
      +
      INTERRUPTED +
      Solver was interrupted.
      +
      MEMOUT +
      Memory limit reached.
      +
      OTHER +
      Other reason.
      +
      REQUIRES_CHECK_AGAIN +
      Requires another satisfiability check
      +
      REQUIRES_FULL_CHECK +
      Full satisfiability check required (e.g., if only preprocessing was + performed).
      +
      RESOURCEOUT +
      Resource limit reached.
      +
      TIMEOUT +
      Time limit reached.
      +
      UNKNOWN_REASON +
      No specific reason given.
      +
      UNSUPPORTED +
      Unsupported feature encountered.
      +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and TypeMethodDescription
      static UnknownExplanationfromInt​(int value) 
      intgetValue() 
      static UnknownExplanationvalueOf​(java.lang.String name) +
      Returns the enum constant of this type with the specified name.
      +
      static UnknownExplanation[]values() +
      Returns an array containing the constants of this enum type, in +the order they are declared.
      +
      +
        +
      • + + +

        Methods inherited from class java.lang.Enum

        +clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
      • +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +getClass, notify, notifyAll, wait, wait, wait
      • +
      +
    • +
    +
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Enum Constant Detail

      + + + +
        +
      • +

        REQUIRES_FULL_CHECK

        +
        public static final UnknownExplanation REQUIRES_FULL_CHECK
        +
        Full satisfiability check required (e.g., if only preprocessing was + performed).
        +
      • +
      + + + +
        +
      • +

        INCOMPLETE

        +
        public static final UnknownExplanation INCOMPLETE
        +
        Incomplete theory solver.
        +
      • +
      + + + + + + + +
        +
      • +

        RESOURCEOUT

        +
        public static final UnknownExplanation RESOURCEOUT
        +
        Resource limit reached.
        +
      • +
      + + + + + + + +
        +
      • +

        INTERRUPTED

        +
        public static final UnknownExplanation INTERRUPTED
        +
        Solver was interrupted.
        +
      • +
      + + + +
        +
      • +

        UNSUPPORTED

        +
        public static final UnknownExplanation UNSUPPORTED
        +
        Unsupported feature encountered.
        +
      • +
      + + + + + + + +
        +
      • +

        REQUIRES_CHECK_AGAIN

        +
        public static final UnknownExplanation REQUIRES_CHECK_AGAIN
        +
        Requires another satisfiability check
        +
      • +
      + + + +
        +
      • +

        UNKNOWN_REASON

        +
        public static final UnknownExplanation UNKNOWN_REASON
        +
        No specific reason given.
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        values

        +
        public static UnknownExplanation[] values()
        +
        Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +
        +for (UnknownExplanation c : UnknownExplanation.values())
        +    System.out.println(c);
        +
        +
        +
        Returns:
        +
        an array containing the constants of this enum type, in the order they are declared
        +
        +
      • +
      + + + +
        +
      • +

        valueOf

        +
        public static UnknownExplanation valueOf​(java.lang.String name)
        +
        Returns the enum constant of this type with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)
        +
        +
        Parameters:
        +
        name - the name of the enum constant to be returned.
        +
        Returns:
        +
        the enum constant with the specified name
        +
        Throws:
        +
        java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
        +
        java.lang.NullPointerException - if the argument is null
        +
        +
      • +
      + + + + + + + +
        +
      • +

        getValue

        +
        public int getValue()
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Utils.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Utils.html new file mode 100644 index 0000000000..6d9a737f3a --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/Utils.html @@ -0,0 +1,692 @@ + + + + + +Utils + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Class Utils

+
+
+ +
+
    +
  • +
    +
    public class Utils
    +extends java.lang.Object
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Field Summary

      + + + + + + + + + + + + +
      Fields 
      Modifier and TypeFieldDescription
      static java.lang.StringLIBPATH_IN_JAR 
      +
    • +
    +
    + +
    +
      +
    • + + +

      Constructor Summary

      + + + + + + + + + + +
      Constructors 
      ConstructorDescription
      Utils() 
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      All Methods Static Methods Concrete Methods 
      Modifier and TypeMethodDescription
      static <K> Pair<K,​java.lang.Long>[]getPairs​(Pair<K,​? extends io.github.cvc5.AbstractPointer>[] abstractPointers) 
      static long[]getPointers​(io.github.cvc5.IPointer[] objects) 
      static long[][]getPointers​(io.github.cvc5.IPointer[][] objects) 
      static Proof[]getProofs​(long[] pointers) 
      static java.lang.StringgetRational​(Pair<java.math.BigInteger,​java.math.BigInteger> pair) +
      Convert a pair of BigIntegers to a rational string a/b
      +
      static Pair<java.math.BigInteger,​java.math.BigInteger>getRational​(java.lang.String rational) +
      Convert a rational string a/b to a pair of BigIntegers
      +
      static Sort[]getSorts​(long[] pointers) 
      static Term[]getTerms​(long[] pointers) 
      static voidloadLibraries() +
      Load cvc5 native libraries.
      +
      static voidloadLibraryFromJar​(java.nio.file.Path tempDir, + java.lang.String path, + java.lang.String filename) +
      Loads a native library from a specified path within a JAR file and loads it into the JVM.
      +
      static java.util.List<java.lang.String>readLibraryFilenames​(java.lang.String pathInJar) +
      Reads a text file from the specified path within the JAR file and returns a list of library + filenames.
      +
      static voidtransferTo​(java.io.InputStream inputStream, + java.io.FileOutputStream outputStream) +
      Transfers all bytes from the provided InputStream to the specified FileOutputStream.
      +
      static voidvalidateUnsigned​(int[] integers, + java.lang.String name) 
      static voidvalidateUnsigned​(int integer, + java.lang.String name) 
      static voidvalidateUnsigned​(long[] integers, + java.lang.String name) 
      static voidvalidateUnsigned​(long integer, + java.lang.String name) 
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • +
      +
    • +
    +
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        LIBPATH_IN_JAR

        +
        public static final java.lang.String LIBPATH_IN_JAR
        +
        +
        See Also:
        +
        Constant Field Values
        +
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        Utils

        +
        public Utils()
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        readLibraryFilenames

        +
        public static java.util.List<java.lang.String> readLibraryFilenames​(java.lang.String pathInJar)
        +                                                             throws java.io.IOException,
        +                                                                    java.lang.UnsatisfiedLinkError
        +
        Reads a text file from the specified path within the JAR file and returns a list of library + filenames.
        +
        +
        Parameters:
        +
        pathInJar - The path to the text file inside the JAR
        +
        Returns:
        +
        a list of filenames read from the file
        +
        Throws:
        +
        java.lang.UnsatisfiedLinkError - If the text file does not exist
        +
        java.io.IOException - If an I/O error occurs
        +
        +
      • +
      + + + +
        +
      • +

        transferTo

        +
        public static void transferTo​(java.io.InputStream inputStream,
        +                              java.io.FileOutputStream outputStream)
        +                       throws java.lang.Exception
        +
        Transfers all bytes from the provided InputStream to the specified FileOutputStream. + +

        Note: This method replicates the functionality of InputStream.transferTo(OutputStream), which was introduced in Java 9 (currently, the minimum + required Java version is 1.8)

        +
        +
        Parameters:
        +
        inputStream - The input stream from which data is read
        +
        outputStream - The output stream to which data is written
        +
        Throws:
        +
        java.lang.Exception - If an I/O error occurs during reading or writing
        +
        See Also:
        +
        InputStream.transferTo(OutputStream)
        +
        +
      • +
      + + + +
        +
      • +

        loadLibraryFromJar

        +
        public static void loadLibraryFromJar​(java.nio.file.Path tempDir,
        +                                      java.lang.String path,
        +                                      java.lang.String filename)
        +                               throws java.lang.Exception
        +
        Loads a native library from a specified path within a JAR file and loads it into the JVM.
        +
        +
        Parameters:
        +
        path - The path inside the JAR where the library is located (e.g., "/cvc5-libs").
        +
        filename - The name of the library file (e.g., "libcvc5.so").
        +
        Throws:
        +
        java.lang.Exception - If the library cannot be found, the filename lacks an extension, + or any I/O operation fails during extraction.
        +
        java.lang.UnsatisfiedLinkError - If the library cannot be located at the specified path.
        +
        +
      • +
      + + + +
        +
      • +

        loadLibraries

        +
        public static void loadLibraries()
        +
        Load cvc5 native libraries.
        +
      • +
      + + + +
        +
      • +

        getSorts

        +
        public static Sort[] getSorts​(long[] pointers)
        +
        +
        Parameters:
        +
        pointers - The array of pointers.
        +
        Returns:
        +
        Sorts array from array of Sort pointers.
        +
        +
      • +
      + + + +
        +
      • +

        getTerms

        +
        public static Term[] getTerms​(long[] pointers)
        +
        +
        Parameters:
        +
        pointers - The array of pointers.
        +
        Returns:
        +
        Terms array from array of Term pointers.
        +
        +
      • +
      + + + +
        +
      • +

        getProofs

        +
        public static Proof[] getProofs​(long[] pointers)
        +
        +
        Parameters:
        +
        pointers - The array of pointers.
        +
        Returns:
        +
        proofs array from array of pointers
        +
        +
      • +
      + + + +
        +
      • +

        getPointers

        +
        public static long[] getPointers​(io.github.cvc5.IPointer[] objects)
        +
        +
        Parameters:
        +
        objects - The one dimensional array of pointers.
        +
        Returns:
        +
        Pointers from one dimensional array.
        +
        +
      • +
      + + + +
        +
      • +

        getPointers

        +
        public static long[][] getPointers​(io.github.cvc5.IPointer[][] objects)
        +
        +
        Parameters:
        +
        objects - The two dimensional array of pointers.
        +
        Returns:
        +
        Pointers from two dimensional matrix.
        +
        +
      • +
      + + + +
        +
      • +

        validateUnsigned

        +
        public static void validateUnsigned​(int integer,
        +                                    java.lang.String name)
        +                             throws CVC5ApiException
        +
        +
        Throws:
        +
        CVC5ApiException
        +
        +
      • +
      + + + +
        +
      • +

        validateUnsigned

        +
        public static void validateUnsigned​(long integer,
        +                                    java.lang.String name)
        +                             throws CVC5ApiException
        +
        +
        Throws:
        +
        CVC5ApiException
        +
        +
      • +
      + + + +
        +
      • +

        validateUnsigned

        +
        public static void validateUnsigned​(int[] integers,
        +                                    java.lang.String name)
        +                             throws CVC5ApiException
        +
        +
        Throws:
        +
        CVC5ApiException
        +
        +
      • +
      + + + +
        +
      • +

        validateUnsigned

        +
        public static void validateUnsigned​(long[] integers,
        +                                    java.lang.String name)
        +                             throws CVC5ApiException
        +
        +
        Throws:
        +
        CVC5ApiException
        +
        +
      • +
      + + + +
        +
      • +

        getPairs

        +
        public static <K> Pair<K,​java.lang.Long>[] getPairs​(Pair<K,​? extends io.github.cvc5.AbstractPointer>[] abstractPointers)
        +
      • +
      + + + +
        +
      • +

        getRational

        +
        public static Pair<java.math.BigInteger,​java.math.BigInteger> getRational​(java.lang.String rational)
        +
        Convert a rational string a/b to a pair of BigIntegers
        +
        +
        Parameters:
        +
        rational - The rational string.
        +
        Returns:
        +
        The pair of big integers.
        +
        +
      • +
      + + + +
        +
      • +

        getRational

        +
        public static java.lang.String getRational​(Pair<java.math.BigInteger,​java.math.BigInteger> pair)
        +
        Convert a pair of BigIntegers to a rational string a/b
        +
        +
        Parameters:
        +
        pair - The pair of big integers.
        +
        Returns:
        +
        The rational string.
        +
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/modes/BlockModelsMode.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/modes/BlockModelsMode.html new file mode 100644 index 0000000000..7b3c3ea296 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/modes/BlockModelsMode.html @@ -0,0 +1,417 @@ + + + + + +BlockModelsMode + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Enum BlockModelsMode

+
+
+ +
+
    +
  • +
    +
    All Implemented Interfaces:
    +
    java.io.Serializable, java.lang.Comparable<BlockModelsMode>
    +
    +
    +
    public enum BlockModelsMode
    +extends java.lang.Enum<BlockModelsMode>
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Enum Constant Summary

      + + + + + + + + + + + + + + +
      Enum Constants 
      Enum ConstantDescription
      LITERALS +
      Block models based on the SAT skeleton.
      +
      VALUES +
      Block models based on the concrete model values for the free variables.
      +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and TypeMethodDescription
      static BlockModelsModefromInt​(int value) 
      intgetValue() 
      static BlockModelsModevalueOf​(java.lang.String name) +
      Returns the enum constant of this type with the specified name.
      +
      static BlockModelsMode[]values() +
      Returns an array containing the constants of this enum type, in +the order they are declared.
      +
      +
        +
      • + + +

        Methods inherited from class java.lang.Enum

        +clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
      • +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +getClass, notify, notifyAll, wait, wait, wait
      • +
      +
    • +
    +
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Enum Constant Detail

      + + + +
        +
      • +

        LITERALS

        +
        public static final BlockModelsMode LITERALS
        +
        Block models based on the SAT skeleton.
        +
      • +
      + + + +
        +
      • +

        VALUES

        +
        public static final BlockModelsMode VALUES
        +
        Block models based on the concrete model values for the free variables.
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        values

        +
        public static BlockModelsMode[] values()
        +
        Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +
        +for (BlockModelsMode c : BlockModelsMode.values())
        +    System.out.println(c);
        +
        +
        +
        Returns:
        +
        an array containing the constants of this enum type, in the order they are declared
        +
        +
      • +
      + + + +
        +
      • +

        valueOf

        +
        public static BlockModelsMode valueOf​(java.lang.String name)
        +
        Returns the enum constant of this type with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)
        +
        +
        Parameters:
        +
        name - the name of the enum constant to be returned.
        +
        Returns:
        +
        the enum constant with the specified name
        +
        Throws:
        +
        java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
        +
        java.lang.NullPointerException - if the argument is null
        +
        +
      • +
      + + + + + + + +
        +
      • +

        getValue

        +
        public int getValue()
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/modes/FindSynthTarget.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/modes/FindSynthTarget.html new file mode 100644 index 0000000000..660abee437 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/modes/FindSynthTarget.html @@ -0,0 +1,493 @@ + + + + + +FindSynthTarget + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Enum FindSynthTarget

+
+
+ +
+
    +
  • +
    +
    All Implemented Interfaces:
    +
    java.io.Serializable, java.lang.Comparable<FindSynthTarget>
    +
    +
    +
    public enum FindSynthTarget
    +extends java.lang.Enum<FindSynthTarget>
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Enum Constant Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Enum Constants 
      Enum ConstantDescription
      ENUM +
      Find the next term in the enumeration of the target grammar.
      +
      QUERY +
      Find a query over the given grammar.
      +
      REWRITE +
      Find a pair of terms (t,s) in the target grammar which are equivalent + but do not rewrite to the same term in the given rewriter + (--sygus-rewrite=MODE).
      +
      REWRITE_INPUT +
      Find a rewrite between pairs of terms (t,s) that are matchable with terms + in the input assertions where t and s are equivalent but do not rewrite + to the same term in the given rewriter (--sygus-rewrite=MODE).
      +
      REWRITE_UNSOUND +
      Find a term t in the target grammar which rewrites to a term s that is + not equivalent to it.
      +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and TypeMethodDescription
      static FindSynthTargetfromInt​(int value) 
      intgetValue() 
      static FindSynthTargetvalueOf​(java.lang.String name) +
      Returns the enum constant of this type with the specified name.
      +
      static FindSynthTarget[]values() +
      Returns an array containing the constants of this enum type, in +the order they are declared.
      +
      +
        +
      • + + +

        Methods inherited from class java.lang.Enum

        +clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
      • +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +getClass, notify, notifyAll, wait, wait, wait
      • +
      +
    • +
    +
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Enum Constant Detail

      + + + +
        +
      • +

        ENUM

        +
        public static final FindSynthTarget ENUM
        +
        Find the next term in the enumeration of the target grammar.
        +
      • +
      + + + +
        +
      • +

        REWRITE

        +
        public static final FindSynthTarget REWRITE
        +
        Find a pair of terms (t,s) in the target grammar which are equivalent + but do not rewrite to the same term in the given rewriter + (--sygus-rewrite=MODE). If so, the equality (= t s) is returned by + findSynth. + + This can be used to synthesize rewrite rules. Note if the rewriter is set + to none (--sygus-rewrite=none), this indicates a possible rewrite when + implementing a rewriter from scratch.
        +
      • +
      + + + +
        +
      • +

        REWRITE_UNSOUND

        +
        public static final FindSynthTarget REWRITE_UNSOUND
        +
        Find a term t in the target grammar which rewrites to a term s that is + not equivalent to it. If so, the equality (= t s) is returned by + findSynth. + + This can be used to test the correctness of the given rewriter. Any + returned rewrite indicates an unsoundness in the given rewriter.
        +
      • +
      + + + +
        +
      • +

        REWRITE_INPUT

        +
        public static final FindSynthTarget REWRITE_INPUT
        +
        Find a rewrite between pairs of terms (t,s) that are matchable with terms + in the input assertions where t and s are equivalent but do not rewrite + to the same term in the given rewriter (--sygus-rewrite=MODE). + + This can be used to synthesize rewrite rules that apply to the current + problem.
        +
      • +
      + + + +
        +
      • +

        QUERY

        +
        public static final FindSynthTarget QUERY
        +
        Find a query over the given grammar. If the given grammar generates terms + that are not Boolean, we consider equalities over terms from the given + grammar. + + The algorithm for determining which queries to generate is configured by + --sygus-query-gen=MODE. Queries that are internally solved can be + filtered by the option --sygus-query-gen-filter-solved.
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        values

        +
        public static FindSynthTarget[] values()
        +
        Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +
        +for (FindSynthTarget c : FindSynthTarget.values())
        +    System.out.println(c);
        +
        +
        +
        Returns:
        +
        an array containing the constants of this enum type, in the order they are declared
        +
        +
      • +
      + + + +
        +
      • +

        valueOf

        +
        public static FindSynthTarget valueOf​(java.lang.String name)
        +
        Returns the enum constant of this type with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)
        +
        +
        Parameters:
        +
        name - the name of the enum constant to be returned.
        +
        Returns:
        +
        the enum constant with the specified name
        +
        Throws:
        +
        java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
        +
        java.lang.NullPointerException - if the argument is null
        +
        +
      • +
      + + + + + + + +
        +
      • +

        getValue

        +
        public int getValue()
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/modes/InputLanguage.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/modes/InputLanguage.html new file mode 100644 index 0000000000..93f9789646 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/modes/InputLanguage.html @@ -0,0 +1,433 @@ + + + + + +InputLanguage + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Enum InputLanguage

+
+
+ +
+
    +
  • +
    +
    All Implemented Interfaces:
    +
    java.io.Serializable, java.lang.Comparable<InputLanguage>
    +
    +
    +
    public enum InputLanguage
    +extends java.lang.Enum<InputLanguage>
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Enum Constant Summary

      + + + + + + + + + + + + + + + + + + +
      Enum Constants 
      Enum ConstantDescription
      SMT_LIB_2_6 +
      The SMT-LIB version 2.6 language
      +
      SYGUS_2_1 +
      The SyGuS version 2.1 language.
      +
      UNKNOWN +
      No language given.
      +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and TypeMethodDescription
      static InputLanguagefromInt​(int value) 
      intgetValue() 
      static InputLanguagevalueOf​(java.lang.String name) +
      Returns the enum constant of this type with the specified name.
      +
      static InputLanguage[]values() +
      Returns an array containing the constants of this enum type, in +the order they are declared.
      +
      +
        +
      • + + +

        Methods inherited from class java.lang.Enum

        +clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
      • +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +getClass, notify, notifyAll, wait, wait, wait
      • +
      +
    • +
    +
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Enum Constant Detail

      + + + +
        +
      • +

        SMT_LIB_2_6

        +
        public static final InputLanguage SMT_LIB_2_6
        +
        The SMT-LIB version 2.6 language
        +
      • +
      + + + +
        +
      • +

        SYGUS_2_1

        +
        public static final InputLanguage SYGUS_2_1
        +
        The SyGuS version 2.1 language.
        +
      • +
      + + + +
        +
      • +

        UNKNOWN

        +
        public static final InputLanguage UNKNOWN
        +
        No language given.
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        values

        +
        public static InputLanguage[] values()
        +
        Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +
        +for (InputLanguage c : InputLanguage.values())
        +    System.out.println(c);
        +
        +
        +
        Returns:
        +
        an array containing the constants of this enum type, in the order they are declared
        +
        +
      • +
      + + + +
        +
      • +

        valueOf

        +
        public static InputLanguage valueOf​(java.lang.String name)
        +
        Returns the enum constant of this type with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)
        +
        +
        Parameters:
        +
        name - the name of the enum constant to be returned.
        +
        Returns:
        +
        the enum constant with the specified name
        +
        Throws:
        +
        java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
        +
        java.lang.NullPointerException - if the argument is null
        +
        +
      • +
      + + + + + + + +
        +
      • +

        getValue

        +
        public int getValue()
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/modes/LearnedLitType.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/modes/LearnedLitType.html new file mode 100644 index 0000000000..3bf9e01c59 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/modes/LearnedLitType.html @@ -0,0 +1,519 @@ + + + + + +LearnedLitType + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Enum LearnedLitType

+
+
+ +
+
    +
  • +
    +
    All Implemented Interfaces:
    +
    java.io.Serializable, java.lang.Comparable<LearnedLitType>
    +
    +
    +
    public enum LearnedLitType
    +extends java.lang.Enum<LearnedLitType>
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Enum Constant Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Enum Constants 
      Enum ConstantDescription
      CONSTANT_PROP +
      An internal literal that can be made into a constant propagation for an + input term.
      +
      INPUT +
      A literal from the preprocessed set of input formulas that does not + occur at top-level after preprocessing.
      +
      INTERNAL +
      Any internal literal that does not fall into the above categories.
      +
      PREPROCESS +
      A top-level literal (unit clause) from the preprocessed set of input + formulas.
      +
      PREPROCESS_SOLVED +
      An equality that was turned into a substitution during preprocessing.
      +
      SOLVABLE +
      An internal literal that is solvable for an input variable.
      +
      UNKNOWN +
      Special case for when produce-learned-literals is not set.
      +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and TypeMethodDescription
      static LearnedLitTypefromInt​(int value) 
      intgetValue() 
      static LearnedLitTypevalueOf​(java.lang.String name) +
      Returns the enum constant of this type with the specified name.
      +
      static LearnedLitType[]values() +
      Returns an array containing the constants of this enum type, in +the order they are declared.
      +
      +
        +
      • + + +

        Methods inherited from class java.lang.Enum

        +clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
      • +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +getClass, notify, notifyAll, wait, wait, wait
      • +
      +
    • +
    +
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Enum Constant Detail

      + + + +
        +
      • +

        PREPROCESS_SOLVED

        +
        public static final LearnedLitType PREPROCESS_SOLVED
        +
        An equality that was turned into a substitution during preprocessing. + + In particular, literals in this category are of the form (= x t) where + x does not occur in t.
        +
      • +
      + + + +
        +
      • +

        PREPROCESS

        +
        public static final LearnedLitType PREPROCESS
        +
        A top-level literal (unit clause) from the preprocessed set of input + formulas.
        +
      • +
      + + + +
        +
      • +

        INPUT

        +
        public static final LearnedLitType INPUT
        +
        A literal from the preprocessed set of input formulas that does not + occur at top-level after preprocessing. + + Typically), this is the most interesting category of literals to learn.
        +
      • +
      + + + +
        +
      • +

        SOLVABLE

        +
        public static final LearnedLitType SOLVABLE
        +
        An internal literal that is solvable for an input variable. + + In particular, literals in this category are of the form (= x t) where + x does not occur in t, the preprocessed set of input formulas contains the + term x, but not the literal (= x t). + + Note that solvable literals can be turned into substitutions during + preprocessing.
        +
      • +
      + + + +
        +
      • +

        CONSTANT_PROP

        +
        public static final LearnedLitType CONSTANT_PROP
        +
        An internal literal that can be made into a constant propagation for an + input term. + + In particular, literals in this category are of the form (= t c) where + c is a constant, the preprocessed set of input formulas contains the + term t, but not the literal (= t c).
        +
      • +
      + + + +
        +
      • +

        INTERNAL

        +
        public static final LearnedLitType INTERNAL
        +
        Any internal literal that does not fall into the above categories.
        +
      • +
      + + + +
        +
      • +

        UNKNOWN

        +
        public static final LearnedLitType UNKNOWN
        +
        Special case for when produce-learned-literals is not set.
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        values

        +
        public static LearnedLitType[] values()
        +
        Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +
        +for (LearnedLitType c : LearnedLitType.values())
        +    System.out.println(c);
        +
        +
        +
        Returns:
        +
        an array containing the constants of this enum type, in the order they are declared
        +
        +
      • +
      + + + +
        +
      • +

        valueOf

        +
        public static LearnedLitType valueOf​(java.lang.String name)
        +
        Returns the enum constant of this type with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)
        +
        +
        Parameters:
        +
        name - the name of the enum constant to be returned.
        +
        Returns:
        +
        the enum constant with the specified name
        +
        Throws:
        +
        java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
        +
        java.lang.NullPointerException - if the argument is null
        +
        +
      • +
      + + + + + + + +
        +
      • +

        getValue

        +
        public int getValue()
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/modes/ProofComponent.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/modes/ProofComponent.html new file mode 100644 index 0000000000..1aad5385c7 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/modes/ProofComponent.html @@ -0,0 +1,508 @@ + + + + + +ProofComponent + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Enum ProofComponent

+
+
+ +
+
    +
  • +
    +
    All Implemented Interfaces:
    +
    java.io.Serializable, java.lang.Comparable<ProofComponent>
    +
    +
    +
    public enum ProofComponent
    +extends java.lang.Enum<ProofComponent>
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Enum Constant Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Enum Constants 
      Enum ConstantDescription
      FULL +
      A proof of false whose free assumptions are a subset of the input formulas + F1), ...
      +
      PREPROCESS +
      Proofs of Gu1 ...
      +
      RAW_PREPROCESS +
      Proofs of G1 ...
      +
      SAT +
      A proof of false whose free assumptions are Gu1, ...
      +
      THEORY_LEMMAS +
      Proofs of L1 ...
      +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and TypeMethodDescription
      static ProofComponentfromInt​(int value) 
      intgetValue() 
      static ProofComponentvalueOf​(java.lang.String name) +
      Returns the enum constant of this type with the specified name.
      +
      static ProofComponent[]values() +
      Returns an array containing the constants of this enum type, in +the order they are declared.
      +
      +
        +
      • + + +

        Methods inherited from class java.lang.Enum

        +clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
      • +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +getClass, notify, notifyAll, wait, wait, wait
      • +
      +
    • +
    +
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Enum Constant Detail

      + + + +
        +
      • +

        RAW_PREPROCESS

        +
        public static final ProofComponent RAW_PREPROCESS
        +
        Proofs of G1 ... Gn whose free assumptions are a subset of + F1, ... Fm, where: +
          +
        • G1, ... Gn are the preprocessed input formulas, +
        • +
        • F1, ... Fm are the input formulas. + +
        + Note that G1 ... Gn may be arbitrary formulas, not necessarily clauses.
        +
      • +
      + + + +
        +
      • +

        PREPROCESS

        +
        public static final ProofComponent PREPROCESS
        +
        Proofs of Gu1 ... Gun whose free assumptions are Fu1, ... Fum, + where: +
          +
        • Gu1, ... Gun are clauses corresponding to input formulas used in the SAT +
        + proof, +
          +
        • Fu1, ... Fum is the subset of the input formulas that are used in the SAT +
        + proof (i.e. the unsat core). + + Note that Gu1 ... Gun are clauses that are added to the SAT solver before + its main search. + + Only valid immediately after an unsat response.
        +
      • +
      + + + +
        +
      • +

        SAT

        +
        public static final ProofComponent SAT
        +
        A proof of false whose free assumptions are Gu1, ... Gun, L1 ... Lk, + where: +
          +
        • Gu1, ... Gun, is a set of clauses corresponding to input formulas, +
        • +
        • L1, ..., Lk is a set of clauses corresponding to theory lemmas. + +
        + Only valid immediately after an unsat response.
        +
      • +
      + + + +
        +
      • +

        THEORY_LEMMAS

        +
        public static final ProofComponent THEORY_LEMMAS
        +
        Proofs of L1 ... Lk where: +
          +
        • L1, ..., Lk are clauses corresponding to theory lemmas used in the SAT +
        + proof. + + In contrast to proofs given for preprocess, L1 ... Lk are clauses that are + added to the SAT solver after its main search. + + Only valid immediately after an unsat response.
        +
      • +
      + + + +
        +
      • +

        FULL

        +
        public static final ProofComponent FULL
        +
        A proof of false whose free assumptions are a subset of the input formulas + F1), ... Fm. + + Only valid immediately after an unsat response.
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        values

        +
        public static ProofComponent[] values()
        +
        Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +
        +for (ProofComponent c : ProofComponent.values())
        +    System.out.println(c);
        +
        +
        +
        Returns:
        +
        an array containing the constants of this enum type, in the order they are declared
        +
        +
      • +
      + + + +
        +
      • +

        valueOf

        +
        public static ProofComponent valueOf​(java.lang.String name)
        +
        Returns the enum constant of this type with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)
        +
        +
        Parameters:
        +
        name - the name of the enum constant to be returned.
        +
        Returns:
        +
        the enum constant with the specified name
        +
        Throws:
        +
        java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
        +
        java.lang.NullPointerException - if the argument is null
        +
        +
      • +
      + + + + + + + +
        +
      • +

        getValue

        +
        public int getValue()
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/modes/ProofFormat.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/modes/ProofFormat.html new file mode 100644 index 0000000000..550edaba39 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/modes/ProofFormat.html @@ -0,0 +1,481 @@ + + + + + +ProofFormat + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Enum ProofFormat

+
+
+ +
+
    +
  • +
    +
    All Implemented Interfaces:
    +
    java.io.Serializable, java.lang.Comparable<ProofFormat>
    +
    +
    +
    public enum ProofFormat
    +extends java.lang.Enum<ProofFormat>
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Enum Constant Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Enum Constants 
      Enum ConstantDescription
      ALETHE +
      Output Alethe proof.
      +
      CPC +
      Output Cooperating Proof Calculus proof based on Eunoia signatures.
      +
      DEFAULT +
      Use the proof format mode set in the solver options.
      +
      DOT +
      Output DOT proof.
      +
      LFSC +
      Output LFSC proof.
      +
      NONE +
      Do not translate proof output.
      +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and TypeMethodDescription
      static ProofFormatfromInt​(int value) 
      intgetValue() 
      static ProofFormatvalueOf​(java.lang.String name) +
      Returns the enum constant of this type with the specified name.
      +
      static ProofFormat[]values() +
      Returns an array containing the constants of this enum type, in +the order they are declared.
      +
      +
        +
      • + + +

        Methods inherited from class java.lang.Enum

        +clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
      • +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +getClass, notify, notifyAll, wait, wait, wait
      • +
      +
    • +
    +
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Enum Constant Detail

      + + + +
        +
      • +

        NONE

        +
        public static final ProofFormat NONE
        +
        Do not translate proof output.
        +
      • +
      + + + +
        +
      • +

        DOT

        +
        public static final ProofFormat DOT
        +
        Output DOT proof.
        +
      • +
      + + + +
        +
      • +

        LFSC

        +
        public static final ProofFormat LFSC
        +
        Output LFSC proof.
        +
      • +
      + + + +
        +
      • +

        ALETHE

        +
        public static final ProofFormat ALETHE
        +
        Output Alethe proof.
        +
      • +
      + + + +
        +
      • +

        CPC

        +
        public static final ProofFormat CPC
        +
        Output Cooperating Proof Calculus proof based on Eunoia signatures.
        +
      • +
      + + + +
        +
      • +

        DEFAULT

        +
        public static final ProofFormat DEFAULT
        +
        Use the proof format mode set in the solver options.
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        values

        +
        public static ProofFormat[] values()
        +
        Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +
        +for (ProofFormat c : ProofFormat.values())
        +    System.out.println(c);
        +
        +
        +
        Returns:
        +
        an array containing the constants of this enum type, in the order they are declared
        +
        +
      • +
      + + + +
        +
      • +

        valueOf

        +
        public static ProofFormat valueOf​(java.lang.String name)
        +
        Returns the enum constant of this type with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)
        +
        +
        Parameters:
        +
        name - the name of the enum constant to be returned.
        +
        Returns:
        +
        the enum constant with the specified name
        +
        Throws:
        +
        java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
        +
        java.lang.NullPointerException - if the argument is null
        +
        +
      • +
      + + + + + + + +
        +
      • +

        getValue

        +
        public int getValue()
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/modes/package-summary.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/modes/package-summary.html new file mode 100644 index 0000000000..d799aca09f --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/modes/package-summary.html @@ -0,0 +1,186 @@ + + + + + +io.github.cvc5.modes + + + + + + + + + + + + + + +
+ +
+
+
+

Package io.github.cvc5.modes

+
+
+ +
+
+ + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/modes/package-tree.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/modes/package-tree.html new file mode 100644 index 0000000000..909a9fc8a0 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/modes/package-tree.html @@ -0,0 +1,172 @@ + + + + + +io.github.cvc5.modes Class Hierarchy + + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For Package io.github.cvc5.modes

+Package Hierarchies: + +
+
+
+

Enum Hierarchy

+ +
+
+
+ + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/package-summary.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/package-summary.html new file mode 100644 index 0000000000..7337731b93 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/package-summary.html @@ -0,0 +1,380 @@ + + + + + +io.github.cvc5 + + + + + + + + + + + + + + +
+ +
+
+
+

Package io.github.cvc5

+
+
+ +
+
+ + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/package-tree.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/package-tree.html new file mode 100644 index 0000000000..fc1dd6d61e --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/io/github/cvc5/package-tree.html @@ -0,0 +1,246 @@ + + + + + +io.github.cvc5 Class Hierarchy + + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For Package io.github.cvc5

+Package Hierarchies: + +
+
+
+

Class Hierarchy

+ +
+
+

Interface Hierarchy

+ +
+
+

Enum Hierarchy

+ +
+
+
+ + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/java.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/java.html new file mode 100644 index 0000000000..54d0519a51 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/java.html @@ -0,0 +1,249 @@ + + + + + + + + + + + + + Java API — cvc5 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Java API

+

The Java API of cvc5 mostly mirrors the C++ API and +supports operator overloading, iterators, and exceptions. +There are a few differences from the C++ API, such as using arbitrary-precision +integer pairs, specifically, pairs of Java BigInteger objects, to represent +rational numbers. +The quickstart guide gives a short introduction, +and more examples can be found here.

+

For most applications, the Solver class is the +main entry point to cvc5. +The class hierarchy of cvc5 package +provides more details on the individual classes.

+
+
+
+
+

Building cvc5 Java API

+
$ git clone https://github.com/cvc5/cvc5
+$ cd cvc5
+$ ./configure.sh production --java-bindings --auto-download --prefix=build/install
+$ cd build
+$ make
+$ make install
+
+$ ls install/lib
+  cmake  libcvc5jni.so  libcvc5parser.so  libcvc5parser.so.1  libcvc5.so
+  libpicpoly.a  libpicpolyxx.a  libpoly.so libpoly.so.0  libpoly.so.0.1.9
+  libpolyxx.so  libpolyxx.so.0  libpolyxx.so.0.1.9  objects-Production
+$ ls install/share/java/
+  cvc5-0.0.5-dev.jar  cvc5.jar
+
+# compile example QuickStart.java with cvc5 jar file
+$ javac -cp "install/share/java/cvc5.jar" ../examples/api/java/QuickStart.java -d .
+
+# run example QuickStart with cvc5 jar file and cvc5 shared libraries
+$ java -cp "install/share/java/cvc5.jar:." "-Djava.library.path=install/lib" QuickStart
+  expected: sat
+  result: sat
+  value for x: 1/6
+  value for y: 1/6
+  expected: unsat
+  result: unsat
+  unsat core size: 3
+  unsat core:
+  (< 0 a)
+  (< 0 b)
+  (< (+ a b) 1)
+
+
+
+
+
+

Javadoc API Documentation

+
+

Package io.github.cvc5

+
+
+
+
+
+

Package io.github.cvc5.modes

+
+
+
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/jquery-ui.overrides.css b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/jquery-ui.overrides.css new file mode 100644 index 0000000000..facf852c27 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/jquery-ui.overrides.css @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2020, 2022, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +.ui-state-active, +.ui-widget-content .ui-state-active, +.ui-widget-header .ui-state-active, +a.ui-button:active, +.ui-button:active, +.ui-button.ui-state-active:hover { + /* Overrides the color of selection used in jQuery UI */ + background: #F8981D; + border: 1px solid #F8981D; +} diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/jquery/external/jquery/jquery.js b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/jquery/external/jquery/jquery.js new file mode 100644 index 0000000000..50937333b9 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/jquery/external/jquery/jquery.js @@ -0,0 +1,10872 @@ +/*! + * jQuery JavaScript Library v3.5.1 + * https://jquery.com/ + * + * Includes Sizzle.js + * https://sizzlejs.com/ + * + * Copyright JS Foundation and other contributors + * Released under the MIT license + * https://jquery.org/license + * + * Date: 2020-05-04T22:49Z + */ +( function( global, factory ) { + + "use strict"; + + if ( typeof module === "object" && typeof module.exports === "object" ) { + + // For CommonJS and CommonJS-like environments where a proper `window` + // is present, execute the factory and get jQuery. + // For environments that do not have a `window` with a `document` + // (such as Node.js), expose a factory as module.exports. + // This accentuates the need for the creation of a real `window`. + // e.g. var jQuery = require("jquery")(window); + // See ticket #14549 for more info. + module.exports = global.document ? + factory( global, true ) : + function( w ) { + if ( !w.document ) { + throw new Error( "jQuery requires a window with a document" ); + } + return factory( w ); + }; + } else { + factory( global ); + } + +// Pass this if window is not defined yet +} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) { + +// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 +// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode +// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common +// enough that all such attempts are guarded in a try block. +"use strict"; + +var arr = []; + +var getProto = Object.getPrototypeOf; + +var slice = arr.slice; + +var flat = arr.flat ? function( array ) { + return arr.flat.call( array ); +} : function( array ) { + return arr.concat.apply( [], array ); +}; + + +var push = arr.push; + +var indexOf = arr.indexOf; + +var class2type = {}; + +var toString = class2type.toString; + +var hasOwn = class2type.hasOwnProperty; + +var fnToString = hasOwn.toString; + +var ObjectFunctionString = fnToString.call( Object ); + +var support = {}; + +var isFunction = function isFunction( obj ) { + + // Support: Chrome <=57, Firefox <=52 + // In some browsers, typeof returns "function" for HTML elements + // (i.e., `typeof document.createElement( "object" ) === "function"`). + // We don't want to classify *any* DOM node as a function. + return typeof obj === "function" && typeof obj.nodeType !== "number"; + }; + + +var isWindow = function isWindow( obj ) { + return obj != null && obj === obj.window; + }; + + +var document = window.document; + + + + var preservedScriptAttributes = { + type: true, + src: true, + nonce: true, + noModule: true + }; + + function DOMEval( code, node, doc ) { + doc = doc || document; + + var i, val, + script = doc.createElement( "script" ); + + script.text = code; + if ( node ) { + for ( i in preservedScriptAttributes ) { + + // Support: Firefox 64+, Edge 18+ + // Some browsers don't support the "nonce" property on scripts. + // On the other hand, just using `getAttribute` is not enough as + // the `nonce` attribute is reset to an empty string whenever it + // becomes browsing-context connected. + // See https://github.com/whatwg/html/issues/2369 + // See https://html.spec.whatwg.org/#nonce-attributes + // The `node.getAttribute` check was added for the sake of + // `jQuery.globalEval` so that it can fake a nonce-containing node + // via an object. + val = node[ i ] || node.getAttribute && node.getAttribute( i ); + if ( val ) { + script.setAttribute( i, val ); + } + } + } + doc.head.appendChild( script ).parentNode.removeChild( script ); + } + + +function toType( obj ) { + if ( obj == null ) { + return obj + ""; + } + + // Support: Android <=2.3 only (functionish RegExp) + return typeof obj === "object" || typeof obj === "function" ? + class2type[ toString.call( obj ) ] || "object" : + typeof obj; +} +/* global Symbol */ +// Defining this global in .eslintrc.json would create a danger of using the global +// unguarded in another place, it seems safer to define global only for this module + + + +var + version = "3.5.1", + + // Define a local copy of jQuery + jQuery = function( selector, context ) { + + // The jQuery object is actually just the init constructor 'enhanced' + // Need init if jQuery is called (just allow error to be thrown if not included) + return new jQuery.fn.init( selector, context ); + }; + +jQuery.fn = jQuery.prototype = { + + // The current version of jQuery being used + jquery: version, + + constructor: jQuery, + + // The default length of a jQuery object is 0 + length: 0, + + toArray: function() { + return slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + + // Return all the elements in a clean array + if ( num == null ) { + return slice.call( this ); + } + + // Return just the one element from the set + return num < 0 ? this[ num + this.length ] : this[ num ]; + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + each: function( callback ) { + return jQuery.each( this, callback ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map( this, function( elem, i ) { + return callback.call( elem, i, elem ); + } ) ); + }, + + slice: function() { + return this.pushStack( slice.apply( this, arguments ) ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + even: function() { + return this.pushStack( jQuery.grep( this, function( _elem, i ) { + return ( i + 1 ) % 2; + } ) ); + }, + + odd: function() { + return this.pushStack( jQuery.grep( this, function( _elem, i ) { + return i % 2; + } ) ); + }, + + eq: function( i ) { + var len = this.length, + j = +i + ( i < 0 ? len : 0 ); + return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); + }, + + end: function() { + return this.prevObject || this.constructor(); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: push, + sort: arr.sort, + splice: arr.splice +}; + +jQuery.extend = jQuery.fn.extend = function() { + var options, name, src, copy, copyIsArray, clone, + target = arguments[ 0 ] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + + // Skip the boolean and the target + target = arguments[ i ] || {}; + i++; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !isFunction( target ) ) { + target = {}; + } + + // Extend jQuery itself if only one argument is passed + if ( i === length ) { + target = this; + i--; + } + + for ( ; i < length; i++ ) { + + // Only deal with non-null/undefined values + if ( ( options = arguments[ i ] ) != null ) { + + // Extend the base object + for ( name in options ) { + copy = options[ name ]; + + // Prevent Object.prototype pollution + // Prevent never-ending loop + if ( name === "__proto__" || target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject( copy ) || + ( copyIsArray = Array.isArray( copy ) ) ) ) { + src = target[ name ]; + + // Ensure proper type for the source value + if ( copyIsArray && !Array.isArray( src ) ) { + clone = []; + } else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) { + clone = {}; + } else { + clone = src; + } + copyIsArray = false; + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend( { + + // Unique for each copy of jQuery on the page + expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), + + // Assume jQuery is ready without the ready module + isReady: true, + + error: function( msg ) { + throw new Error( msg ); + }, + + noop: function() {}, + + isPlainObject: function( obj ) { + var proto, Ctor; + + // Detect obvious negatives + // Use toString instead of jQuery.type to catch host objects + if ( !obj || toString.call( obj ) !== "[object Object]" ) { + return false; + } + + proto = getProto( obj ); + + // Objects with no prototype (e.g., `Object.create( null )`) are plain + if ( !proto ) { + return true; + } + + // Objects with prototype are plain iff they were constructed by a global Object function + Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; + return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; + }, + + isEmptyObject: function( obj ) { + var name; + + for ( name in obj ) { + return false; + } + return true; + }, + + // Evaluates a script in a provided context; falls back to the global one + // if not specified. + globalEval: function( code, options, doc ) { + DOMEval( code, { nonce: options && options.nonce }, doc ); + }, + + each: function( obj, callback ) { + var length, i = 0; + + if ( isArrayLike( obj ) ) { + length = obj.length; + for ( ; i < length; i++ ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } else { + for ( i in obj ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } + + return obj; + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArrayLike( Object( arr ) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + return arr == null ? -1 : indexOf.call( arr, elem, i ); + }, + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + merge: function( first, second ) { + var len = +second.length, + j = 0, + i = first.length; + + for ( ; j < len; j++ ) { + first[ i++ ] = second[ j ]; + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, invert ) { + var callbackInverse, + matches = [], + i = 0, + length = elems.length, + callbackExpect = !invert; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + callbackInverse = !callback( elems[ i ], i ); + if ( callbackInverse !== callbackExpect ) { + matches.push( elems[ i ] ); + } + } + + return matches; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var length, value, + i = 0, + ret = []; + + // Go through the array, translating each of the items to their new values + if ( isArrayLike( elems ) ) { + length = elems.length; + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + } + + // Flatten any nested arrays + return flat( ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // jQuery.support is not used in Core but other projects attach their + // properties to it so it needs to exist. + support: support +} ); + +if ( typeof Symbol === "function" ) { + jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; +} + +// Populate the class2type map +jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), +function( _i, name ) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +} ); + +function isArrayLike( obj ) { + + // Support: real iOS 8.2 only (not reproducible in simulator) + // `in` check used to prevent JIT error (gh-2145) + // hasOwn isn't used here due to false negatives + // regarding Nodelist length in IE + var length = !!obj && "length" in obj && obj.length, + type = toType( obj ); + + if ( isFunction( obj ) || isWindow( obj ) ) { + return false; + } + + return type === "array" || length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj; +} +var Sizzle = +/*! + * Sizzle CSS Selector Engine v2.3.5 + * https://sizzlejs.com/ + * + * Copyright JS Foundation and other contributors + * Released under the MIT license + * https://js.foundation/ + * + * Date: 2020-03-14 + */ +( function( window ) { +var i, + support, + Expr, + getText, + isXML, + tokenize, + compile, + select, + outermostContext, + sortInput, + hasDuplicate, + + // Local document vars + setDocument, + document, + docElem, + documentIsHTML, + rbuggyQSA, + rbuggyMatches, + matches, + contains, + + // Instance-specific data + expando = "sizzle" + 1 * new Date(), + preferredDoc = window.document, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + nonnativeSelectorCache = createCache(), + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + } + return 0; + }, + + // Instance methods + hasOwn = ( {} ).hasOwnProperty, + arr = [], + pop = arr.pop, + pushNative = arr.push, + push = arr.push, + slice = arr.slice, + + // Use a stripped-down indexOf as it's faster than native + // https://jsperf.com/thor-indexof-vs-for/5 + indexOf = function( list, elem ) { + var i = 0, + len = list.length; + for ( ; i < len; i++ ) { + if ( list[ i ] === elem ) { + return i; + } + } + return -1; + }, + + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|" + + "ismap|loop|multiple|open|readonly|required|scoped", + + // Regular expressions + + // http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + + // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram + identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace + + "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", + + // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors + attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + + + // Operator (capture 2) + "*([*^$|!~]?=)" + whitespace + + + // "Attribute values must be CSS identifiers [capture 5] + // or strings [capture 3 or capture 4]" + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + + whitespace + "*\\]", + + pseudos = ":(" + identifier + ")(?:\\((" + + + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: + // 1. quoted (capture 3; capture 4 or capture 5) + "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + + + // 2. simple (capture 6) + "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + + + // 3. anything else (capture 2) + ".*" + + ")\\)|)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rwhitespace = new RegExp( whitespace + "+", "g" ), + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + + whitespace + "+$", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + + "*" ), + rdescend = new RegExp( whitespace + "|>" ), + + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + "ID": new RegExp( "^#(" + identifier + ")" ), + "CLASS": new RegExp( "^\\.(" + identifier + ")" ), + "TAG": new RegExp( "^(" + identifier + "|[*])" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + + whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + + whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), + + // For use in libraries implementing .is() + // We use this for POS matching in `select` + "needsContext": new RegExp( "^" + whitespace + + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace + + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rhtml = /HTML$/i, + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + rnative = /^[^{]+\{\s*\[native \w/, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + + rsibling = /[+~]/, + + // CSS escapes + // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\([^\\r\\n\\f])", "g" ), + funescape = function( escape, nonHex ) { + var high = "0x" + escape.slice( 1 ) - 0x10000; + + return nonHex ? + + // Strip the backslash prefix from a non-hex escape sequence + nonHex : + + // Replace a hexadecimal escape sequence with the encoded Unicode code point + // Support: IE <=11+ + // For values outside the Basic Multilingual Plane (BMP), manually construct a + // surrogate pair + high < 0 ? + String.fromCharCode( high + 0x10000 ) : + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }, + + // CSS string/identifier serialization + // https://drafts.csswg.org/cssom/#common-serializing-idioms + rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, + fcssescape = function( ch, asCodePoint ) { + if ( asCodePoint ) { + + // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER + if ( ch === "\0" ) { + return "\uFFFD"; + } + + // Control characters and (dependent upon position) numbers get escaped as code points + return ch.slice( 0, -1 ) + "\\" + + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; + } + + // Other potentially-special ASCII characters get backslash-escaped + return "\\" + ch; + }, + + // Used for iframes + // See setDocument() + // Removing the function wrapper causes a "Permission Denied" + // error in IE + unloadHandler = function() { + setDocument(); + }, + + inDisabledFieldset = addCombinator( + function( elem ) { + return elem.disabled === true && elem.nodeName.toLowerCase() === "fieldset"; + }, + { dir: "parentNode", next: "legend" } + ); + +// Optimize for push.apply( _, NodeList ) +try { + push.apply( + ( arr = slice.call( preferredDoc.childNodes ) ), + preferredDoc.childNodes + ); + + // Support: Android<4.0 + // Detect silently failing push.apply + // eslint-disable-next-line no-unused-expressions + arr[ preferredDoc.childNodes.length ].nodeType; +} catch ( e ) { + push = { apply: arr.length ? + + // Leverage slice if possible + function( target, els ) { + pushNative.apply( target, slice.call( els ) ); + } : + + // Support: IE<9 + // Otherwise append directly + function( target, els ) { + var j = target.length, + i = 0; + + // Can't trust NodeList.length + while ( ( target[ j++ ] = els[ i++ ] ) ) {} + target.length = j - 1; + } + }; +} + +function Sizzle( selector, context, results, seed ) { + var m, i, elem, nid, match, groups, newSelector, + newContext = context && context.ownerDocument, + + // nodeType defaults to 9, since context defaults to document + nodeType = context ? context.nodeType : 9; + + results = results || []; + + // Return early from calls with invalid selector or context + if ( typeof selector !== "string" || !selector || + nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { + + return results; + } + + // Try to shortcut find operations (as opposed to filters) in HTML documents + if ( !seed ) { + setDocument( context ); + context = context || document; + + if ( documentIsHTML ) { + + // If the selector is sufficiently simple, try using a "get*By*" DOM method + // (excepting DocumentFragment context, where the methods don't exist) + if ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) { + + // ID selector + if ( ( m = match[ 1 ] ) ) { + + // Document context + if ( nodeType === 9 ) { + if ( ( elem = context.getElementById( m ) ) ) { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + + // Element context + } else { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( newContext && ( elem = newContext.getElementById( m ) ) && + contains( context, elem ) && + elem.id === m ) { + + results.push( elem ); + return results; + } + } + + // Type selector + } else if ( match[ 2 ] ) { + push.apply( results, context.getElementsByTagName( selector ) ); + return results; + + // Class selector + } else if ( ( m = match[ 3 ] ) && support.getElementsByClassName && + context.getElementsByClassName ) { + + push.apply( results, context.getElementsByClassName( m ) ); + return results; + } + } + + // Take advantage of querySelectorAll + if ( support.qsa && + !nonnativeSelectorCache[ selector + " " ] && + ( !rbuggyQSA || !rbuggyQSA.test( selector ) ) && + + // Support: IE 8 only + // Exclude object elements + ( nodeType !== 1 || context.nodeName.toLowerCase() !== "object" ) ) { + + newSelector = selector; + newContext = context; + + // qSA considers elements outside a scoping root when evaluating child or + // descendant combinators, which is not what we want. + // In such cases, we work around the behavior by prefixing every selector in the + // list with an ID selector referencing the scope context. + // The technique has to be used as well when a leading combinator is used + // as such selectors are not recognized by querySelectorAll. + // Thanks to Andrew Dupont for this technique. + if ( nodeType === 1 && + ( rdescend.test( selector ) || rcombinators.test( selector ) ) ) { + + // Expand context for sibling selectors + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || + context; + + // We can use :scope instead of the ID hack if the browser + // supports it & if we're not changing the context. + if ( newContext !== context || !support.scope ) { + + // Capture the context ID, setting it first if necessary + if ( ( nid = context.getAttribute( "id" ) ) ) { + nid = nid.replace( rcssescape, fcssescape ); + } else { + context.setAttribute( "id", ( nid = expando ) ); + } + } + + // Prefix every selector in the list + groups = tokenize( selector ); + i = groups.length; + while ( i-- ) { + groups[ i ] = ( nid ? "#" + nid : ":scope" ) + " " + + toSelector( groups[ i ] ); + } + newSelector = groups.join( "," ); + } + + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch ( qsaError ) { + nonnativeSelectorCache( selector, true ); + } finally { + if ( nid === expando ) { + context.removeAttribute( "id" ); + } + } + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed ); +} + +/** + * Create key-value caches of limited size + * @returns {function(string, object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var keys = []; + + function cache( key, value ) { + + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key + " " ) > Expr.cacheLength ) { + + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return ( cache[ key + " " ] = value ); + } + return cache; +} + +/** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created element and returns a boolean result + */ +function assert( fn ) { + var el = document.createElement( "fieldset" ); + + try { + return !!fn( el ); + } catch ( e ) { + return false; + } finally { + + // Remove from its parent by default + if ( el.parentNode ) { + el.parentNode.removeChild( el ); + } + + // release memory in IE + el = null; + } +} + +/** + * Adds the same handler for all of the specified attrs + * @param {String} attrs Pipe-separated list of attributes + * @param {Function} handler The method that will be applied + */ +function addHandle( attrs, handler ) { + var arr = attrs.split( "|" ), + i = arr.length; + + while ( i-- ) { + Expr.attrHandle[ arr[ i ] ] = handler; + } +} + +/** + * Checks document order of two siblings + * @param {Element} a + * @param {Element} b + * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b + */ +function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && a.nodeType === 1 && b.nodeType === 1 && + a.sourceIndex - b.sourceIndex; + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( ( cur = cur.nextSibling ) ) { + if ( cur === b ) { + return -1; + } + } + } + + return a ? 1 : -1; +} + +/** + * Returns a function to use in pseudos for input types + * @param {String} type + */ +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for buttons + * @param {String} type + */ +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return ( name === "input" || name === "button" ) && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for :enabled/:disabled + * @param {Boolean} disabled true for :disabled; false for :enabled + */ +function createDisabledPseudo( disabled ) { + + // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable + return function( elem ) { + + // Only certain elements can match :enabled or :disabled + // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled + // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled + if ( "form" in elem ) { + + // Check for inherited disabledness on relevant non-disabled elements: + // * listed form-associated elements in a disabled fieldset + // https://html.spec.whatwg.org/multipage/forms.html#category-listed + // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled + // * option elements in a disabled optgroup + // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled + // All such elements have a "form" property. + if ( elem.parentNode && elem.disabled === false ) { + + // Option elements defer to a parent optgroup if present + if ( "label" in elem ) { + if ( "label" in elem.parentNode ) { + return elem.parentNode.disabled === disabled; + } else { + return elem.disabled === disabled; + } + } + + // Support: IE 6 - 11 + // Use the isDisabled shortcut property to check for disabled fieldset ancestors + return elem.isDisabled === disabled || + + // Where there is no isDisabled, check manually + /* jshint -W018 */ + elem.isDisabled !== !disabled && + inDisabledFieldset( elem ) === disabled; + } + + return elem.disabled === disabled; + + // Try to winnow out elements that can't be disabled before trusting the disabled property. + // Some victims get caught in our net (label, legend, menu, track), but it shouldn't + // even exist on them, let alone have a boolean value. + } else if ( "label" in elem ) { + return elem.disabled === disabled; + } + + // Remaining elements are neither :enabled nor :disabled + return false; + }; +} + +/** + * Returns a function to use in pseudos for positionals + * @param {Function} fn + */ +function createPositionalPseudo( fn ) { + return markFunction( function( argument ) { + argument = +argument; + return markFunction( function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; + + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ ( j = matchIndexes[ i ] ) ] ) { + seed[ j ] = !( matches[ j ] = seed[ j ] ); + } + } + } ); + } ); +} + +/** + * Checks a node for validity as a Sizzle context + * @param {Element|Object=} context + * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value + */ +function testContext( context ) { + return context && typeof context.getElementsByTagName !== "undefined" && context; +} + +// Expose support vars for convenience +support = Sizzle.support = {}; + +/** + * Detects XML nodes + * @param {Element|Object} elem An element or a document + * @returns {Boolean} True iff elem is a non-HTML XML node + */ +isXML = Sizzle.isXML = function( elem ) { + var namespace = elem.namespaceURI, + docElem = ( elem.ownerDocument || elem ).documentElement; + + // Support: IE <=8 + // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes + // https://bugs.jquery.com/ticket/4833 + return !rhtml.test( namespace || docElem && docElem.nodeName || "HTML" ); +}; + +/** + * Sets document-related variables once based on the current document + * @param {Element|Object} [doc] An element or document object to use to set the document + * @returns {Object} Returns the current document + */ +setDocument = Sizzle.setDocument = function( node ) { + var hasCompare, subWindow, + doc = node ? node.ownerDocument || node : preferredDoc; + + // Return early if doc is invalid or already selected + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) { + return document; + } + + // Update global variables + document = doc; + docElem = document.documentElement; + documentIsHTML = !isXML( document ); + + // Support: IE 9 - 11+, Edge 12 - 18+ + // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( preferredDoc != document && + ( subWindow = document.defaultView ) && subWindow.top !== subWindow ) { + + // Support: IE 11, Edge + if ( subWindow.addEventListener ) { + subWindow.addEventListener( "unload", unloadHandler, false ); + + // Support: IE 9 - 10 only + } else if ( subWindow.attachEvent ) { + subWindow.attachEvent( "onunload", unloadHandler ); + } + } + + // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only, + // Safari 4 - 5 only, Opera <=11.6 - 12.x only + // IE/Edge & older browsers don't support the :scope pseudo-class. + // Support: Safari 6.0 only + // Safari 6.0 supports :scope but it's an alias of :root there. + support.scope = assert( function( el ) { + docElem.appendChild( el ).appendChild( document.createElement( "div" ) ); + return typeof el.querySelectorAll !== "undefined" && + !el.querySelectorAll( ":scope fieldset div" ).length; + } ); + + /* Attributes + ---------------------------------------------------------------------- */ + + // Support: IE<8 + // Verify that getAttribute really returns attributes and not properties + // (excepting IE8 booleans) + support.attributes = assert( function( el ) { + el.className = "i"; + return !el.getAttribute( "className" ); + } ); + + /* getElement(s)By* + ---------------------------------------------------------------------- */ + + // Check if getElementsByTagName("*") returns only elements + support.getElementsByTagName = assert( function( el ) { + el.appendChild( document.createComment( "" ) ); + return !el.getElementsByTagName( "*" ).length; + } ); + + // Support: IE<9 + support.getElementsByClassName = rnative.test( document.getElementsByClassName ); + + // Support: IE<10 + // Check if getElementById returns elements by name + // The broken getElementById methods don't pick up programmatically-set names, + // so use a roundabout getElementsByName test + support.getById = assert( function( el ) { + docElem.appendChild( el ).id = expando; + return !document.getElementsByName || !document.getElementsByName( expando ).length; + } ); + + // ID filter and find + if ( support.getById ) { + Expr.filter[ "ID" ] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + return elem.getAttribute( "id" ) === attrId; + }; + }; + Expr.find[ "ID" ] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var elem = context.getElementById( id ); + return elem ? [ elem ] : []; + } + }; + } else { + Expr.filter[ "ID" ] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== "undefined" && + elem.getAttributeNode( "id" ); + return node && node.value === attrId; + }; + }; + + // Support: IE 6 - 7 only + // getElementById is not reliable as a find shortcut + Expr.find[ "ID" ] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var node, i, elems, + elem = context.getElementById( id ); + + if ( elem ) { + + // Verify the id attribute + node = elem.getAttributeNode( "id" ); + if ( node && node.value === id ) { + return [ elem ]; + } + + // Fall back on getElementsByName + elems = context.getElementsByName( id ); + i = 0; + while ( ( elem = elems[ i++ ] ) ) { + node = elem.getAttributeNode( "id" ); + if ( node && node.value === id ) { + return [ elem ]; + } + } + } + + return []; + } + }; + } + + // Tag + Expr.find[ "TAG" ] = support.getElementsByTagName ? + function( tag, context ) { + if ( typeof context.getElementsByTagName !== "undefined" ) { + return context.getElementsByTagName( tag ); + + // DocumentFragment nodes don't have gEBTN + } else if ( support.qsa ) { + return context.querySelectorAll( tag ); + } + } : + + function( tag, context ) { + var elem, + tmp = [], + i = 0, + + // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too + results = context.getElementsByTagName( tag ); + + // Filter out possible comments + if ( tag === "*" ) { + while ( ( elem = results[ i++ ] ) ) { + if ( elem.nodeType === 1 ) { + tmp.push( elem ); + } + } + + return tmp; + } + return results; + }; + + // Class + Expr.find[ "CLASS" ] = support.getElementsByClassName && function( className, context ) { + if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { + return context.getElementsByClassName( className ); + } + }; + + /* QSA/matchesSelector + ---------------------------------------------------------------------- */ + + // QSA and matchesSelector support + + // matchesSelector(:active) reports false when true (IE9/Opera 11.5) + rbuggyMatches = []; + + // qSa(:focus) reports false when true (Chrome 21) + // We allow this because of a bug in IE8/9 that throws an error + // whenever `document.activeElement` is accessed on an iframe + // So, we allow :focus to pass through QSA all the time to avoid the IE error + // See https://bugs.jquery.com/ticket/13378 + rbuggyQSA = []; + + if ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) { + + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert( function( el ) { + + var input; + + // Select is set to empty string on purpose + // This is to test IE's treatment of not explicitly + // setting a boolean content attribute, + // since its presence should be enough + // https://bugs.jquery.com/ticket/12359 + docElem.appendChild( el ).innerHTML = "" + + ""; + + // Support: IE8, Opera 11-12.16 + // Nothing should be selected when empty strings follow ^= or $= or *= + // The test attribute must be unknown in Opera but "safe" for WinRT + // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section + if ( el.querySelectorAll( "[msallowcapture^='']" ).length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); + } + + // Support: IE8 + // Boolean attributes and "value" are not treated correctly + if ( !el.querySelectorAll( "[selected]" ).length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); + } + + // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ + if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { + rbuggyQSA.push( "~=" ); + } + + // Support: IE 11+, Edge 15 - 18+ + // IE 11/Edge don't find elements on a `[name='']` query in some cases. + // Adding a temporary attribute to the document before the selection works + // around the issue. + // Interestingly, IE 10 & older don't seem to have the issue. + input = document.createElement( "input" ); + input.setAttribute( "name", "" ); + el.appendChild( input ); + if ( !el.querySelectorAll( "[name='']" ).length ) { + rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" + + whitespace + "*(?:''|\"\")" ); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here and will not see later tests + if ( !el.querySelectorAll( ":checked" ).length ) { + rbuggyQSA.push( ":checked" ); + } + + // Support: Safari 8+, iOS 8+ + // https://bugs.webkit.org/show_bug.cgi?id=136851 + // In-page `selector#id sibling-combinator selector` fails + if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { + rbuggyQSA.push( ".#.+[+~]" ); + } + + // Support: Firefox <=3.6 - 5 only + // Old Firefox doesn't throw on a badly-escaped identifier. + el.querySelectorAll( "\\\f" ); + rbuggyQSA.push( "[\\r\\n\\f]" ); + } ); + + assert( function( el ) { + el.innerHTML = "" + + ""; + + // Support: Windows 8 Native Apps + // The type and name attributes are restricted during .innerHTML assignment + var input = document.createElement( "input" ); + input.setAttribute( "type", "hidden" ); + el.appendChild( input ).setAttribute( "name", "D" ); + + // Support: IE8 + // Enforce case-sensitivity of name attribute + if ( el.querySelectorAll( "[name=d]" ).length ) { + rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); + } + + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here and will not see later tests + if ( el.querySelectorAll( ":enabled" ).length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Support: IE9-11+ + // IE's :disabled selector does not pick up the children of disabled fieldsets + docElem.appendChild( el ).disabled = true; + if ( el.querySelectorAll( ":disabled" ).length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Support: Opera 10 - 11 only + // Opera 10-11 does not throw on post-comma invalid pseudos + el.querySelectorAll( "*,:x" ); + rbuggyQSA.push( ",.*:" ); + } ); + } + + if ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches || + docElem.webkitMatchesSelector || + docElem.mozMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector ) ) ) ) { + + assert( function( el ) { + + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + support.disconnectedMatch = matches.call( el, "*" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( el, "[s!='']:x" ); + rbuggyMatches.push( "!=", pseudos ); + } ); + } + + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( "|" ) ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( "|" ) ); + + /* Contains + ---------------------------------------------------------------------- */ + hasCompare = rnative.test( docElem.compareDocumentPosition ); + + // Element contains another + // Purposefully self-exclusive + // As in, an element does not contain itself + contains = hasCompare || rnative.test( docElem.contains ) ? + function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && ( + adown.contains ? + adown.contains( bup ) : + a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 + ) ); + } : + function( a, b ) { + if ( b ) { + while ( ( b = b.parentNode ) ) { + if ( b === a ) { + return true; + } + } + } + return false; + }; + + /* Sorting + ---------------------------------------------------------------------- */ + + // Document order sorting + sortOrder = hasCompare ? + function( a, b ) { + + // Flag for duplicate removal + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + // Sort on method existence if only one input has compareDocumentPosition + var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; + if ( compare ) { + return compare; + } + + // Calculate position if both inputs belong to the same document + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + compare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ? + a.compareDocumentPosition( b ) : + + // Otherwise we know they are disconnected + 1; + + // Disconnected nodes + if ( compare & 1 || + ( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) { + + // Choose the first element that is related to our preferred document + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( a == document || a.ownerDocument == preferredDoc && + contains( preferredDoc, a ) ) { + return -1; + } + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( b == document || b.ownerDocument == preferredDoc && + contains( preferredDoc, b ) ) { + return 1; + } + + // Maintain original order + return sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + } + + return compare & 4 ? -1 : 1; + } : + function( a, b ) { + + // Exit early if the nodes are identical + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + var cur, + i = 0, + aup = a.parentNode, + bup = b.parentNode, + ap = [ a ], + bp = [ b ]; + + // Parentless nodes are either documents or disconnected + if ( !aup || !bup ) { + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + /* eslint-disable eqeqeq */ + return a == document ? -1 : + b == document ? 1 : + /* eslint-enable eqeqeq */ + aup ? -1 : + bup ? 1 : + sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + + // If the nodes are siblings, we can do a quick check + } else if ( aup === bup ) { + return siblingCheck( a, b ); + } + + // Otherwise we need full lists of their ancestors for comparison + cur = a; + while ( ( cur = cur.parentNode ) ) { + ap.unshift( cur ); + } + cur = b; + while ( ( cur = cur.parentNode ) ) { + bp.unshift( cur ); + } + + // Walk down the tree looking for a discrepancy + while ( ap[ i ] === bp[ i ] ) { + i++; + } + + return i ? + + // Do a sibling check if the nodes have a common ancestor + siblingCheck( ap[ i ], bp[ i ] ) : + + // Otherwise nodes in our document sort first + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + /* eslint-disable eqeqeq */ + ap[ i ] == preferredDoc ? -1 : + bp[ i ] == preferredDoc ? 1 : + /* eslint-enable eqeqeq */ + 0; + }; + + return document; +}; + +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { + setDocument( elem ); + + if ( support.matchesSelector && documentIsHTML && + !nonnativeSelectorCache[ expr + " " ] && + ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && + ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { + + try { + var ret = matches.call( elem, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || support.disconnectedMatch || + + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch ( e ) { + nonnativeSelectorCache( expr, true ); + } + } + + return Sizzle( expr, document, null, [ elem ] ).length > 0; +}; + +Sizzle.contains = function( context, elem ) { + + // Set document vars if needed + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( ( context.ownerDocument || context ) != document ) { + setDocument( context ); + } + return contains( context, elem ); +}; + +Sizzle.attr = function( elem, name ) { + + // Set document vars if needed + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( ( elem.ownerDocument || elem ) != document ) { + setDocument( elem ); + } + + var fn = Expr.attrHandle[ name.toLowerCase() ], + + // Don't get fooled by Object.prototype properties (jQuery #13807) + val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? + fn( elem, name, !documentIsHTML ) : + undefined; + + return val !== undefined ? + val : + support.attributes || !documentIsHTML ? + elem.getAttribute( name ) : + ( val = elem.getAttributeNode( name ) ) && val.specified ? + val.value : + null; +}; + +Sizzle.escape = function( sel ) { + return ( sel + "" ).replace( rcssescape, fcssescape ); +}; + +Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +/** + * Document sorting and removing duplicates + * @param {ArrayLike} results + */ +Sizzle.uniqueSort = function( results ) { + var elem, + duplicates = [], + j = 0, + i = 0; + + // Unless we *know* we can detect duplicates, assume their presence + hasDuplicate = !support.detectDuplicates; + sortInput = !support.sortStable && results.slice( 0 ); + results.sort( sortOrder ); + + if ( hasDuplicate ) { + while ( ( elem = results[ i++ ] ) ) { + if ( elem === results[ i ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + results.splice( duplicates[ j ], 1 ); + } + } + + // Clear input after sorting to release objects + // See https://github.com/jquery/sizzle/pull/225 + sortInput = null; + + return results; +}; + +/** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +getText = Sizzle.getText = function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( !nodeType ) { + + // If no nodeType, this is expected to be an array + while ( ( node = elem[ i++ ] ) ) { + + // Do not traverse comment nodes + ret += getText( node ); + } + } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + + // Use textContent for elements + // innerText usage removed for consistency of new lines (jQuery #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + + // Do not include comment or processing instruction nodes + + return ret; +}; + +Expr = Sizzle.selectors = { + + // Can be adjusted by the user + cacheLength: 50, + + createPseudo: markFunction, + + match: matchExpr, + + attrHandle: {}, + + find: {}, + + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, + + preFilter: { + "ATTR": function( match ) { + match[ 1 ] = match[ 1 ].replace( runescape, funescape ); + + // Move the given value to match[3] whether quoted or unquoted + match[ 3 ] = ( match[ 3 ] || match[ 4 ] || + match[ 5 ] || "" ).replace( runescape, funescape ); + + if ( match[ 2 ] === "~=" ) { + match[ 3 ] = " " + match[ 3 ] + " "; + } + + return match.slice( 0, 4 ); + }, + + "CHILD": function( match ) { + + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 what (child|of-type) + 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 4 xn-component of xn+y argument ([+-]?\d*n|) + 5 sign of xn-component + 6 x of xn-component + 7 sign of y-component + 8 y of y-component + */ + match[ 1 ] = match[ 1 ].toLowerCase(); + + if ( match[ 1 ].slice( 0, 3 ) === "nth" ) { + + // nth-* requires argument + if ( !match[ 3 ] ) { + Sizzle.error( match[ 0 ] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[ 4 ] = +( match[ 4 ] ? + match[ 5 ] + ( match[ 6 ] || 1 ) : + 2 * ( match[ 3 ] === "even" || match[ 3 ] === "odd" ) ); + match[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === "odd" ); + + // other types prohibit arguments + } else if ( match[ 3 ] ) { + Sizzle.error( match[ 0 ] ); + } + + return match; + }, + + "PSEUDO": function( match ) { + var excess, + unquoted = !match[ 6 ] && match[ 2 ]; + + if ( matchExpr[ "CHILD" ].test( match[ 0 ] ) ) { + return null; + } + + // Accept quoted arguments as-is + if ( match[ 3 ] ) { + match[ 2 ] = match[ 4 ] || match[ 5 ] || ""; + + // Strip excess characters from unquoted arguments + } else if ( unquoted && rpseudo.test( unquoted ) && + + // Get excess from tokenize (recursively) + ( excess = tokenize( unquoted, true ) ) && + + // advance to the next closing parenthesis + ( excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length ) ) { + + // excess is a negative index + match[ 0 ] = match[ 0 ].slice( 0, excess ); + match[ 2 ] = unquoted.slice( 0, excess ); + } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); + } + }, + + filter: { + + "TAG": function( nodeNameSelector ) { + var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); + return nodeNameSelector === "*" ? + function() { + return true; + } : + function( elem ) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + + "CLASS": function( className ) { + var pattern = classCache[ className + " " ]; + + return pattern || + ( pattern = new RegExp( "(^|" + whitespace + + ")" + className + "(" + whitespace + "|$)" ) ) && classCache( + className, function( elem ) { + return pattern.test( + typeof elem.className === "string" && elem.className || + typeof elem.getAttribute !== "undefined" && + elem.getAttribute( "class" ) || + "" + ); + } ); + }, + + "ATTR": function( name, operator, check ) { + return function( elem ) { + var result = Sizzle.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + /* eslint-disable max-len */ + + return operator === "=" ? result === check : + operator === "!=" ? result !== check : + operator === "^=" ? check && result.indexOf( check ) === 0 : + operator === "*=" ? check && result.indexOf( check ) > -1 : + operator === "$=" ? check && result.slice( -check.length ) === check : + operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : + operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : + false; + /* eslint-enable max-len */ + + }; + }, + + "CHILD": function( type, what, _argument, first, last ) { + var simple = type.slice( 0, 3 ) !== "nth", + forward = type.slice( -4 ) !== "last", + ofType = what === "of-type"; + + return first === 1 && last === 0 ? + + // Shortcut for :nth-*(n) + function( elem ) { + return !!elem.parentNode; + } : + + function( elem, _context, xml ) { + var cache, uniqueCache, outerCache, node, nodeIndex, start, + dir = simple !== forward ? "nextSibling" : "previousSibling", + parent = elem.parentNode, + name = ofType && elem.nodeName.toLowerCase(), + useCache = !xml && !ofType, + diff = false; + + if ( parent ) { + + // :(first|last|only)-(child|of-type) + if ( simple ) { + while ( dir ) { + node = elem; + while ( ( node = node[ dir ] ) ) { + if ( ofType ? + node.nodeName.toLowerCase() === name : + node.nodeType === 1 ) { + + return false; + } + } + + // Reverse direction for :only-* (if we haven't yet done so) + start = dir = type === "only" && !start && "nextSibling"; + } + return true; + } + + start = [ forward ? parent.firstChild : parent.lastChild ]; + + // non-xml :nth-child(...) stores cache data on `parent` + if ( forward && useCache ) { + + // Seek `elem` from a previously-cached index + + // ...in a gzip-friendly way + node = parent; + outerCache = node[ expando ] || ( node[ expando ] = {} ); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + ( outerCache[ node.uniqueID ] = {} ); + + cache = uniqueCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex && cache[ 2 ]; + node = nodeIndex && parent.childNodes[ nodeIndex ]; + + while ( ( node = ++nodeIndex && node && node[ dir ] || + + // Fallback to seeking `elem` from the start + ( diff = nodeIndex = 0 ) || start.pop() ) ) { + + // When found, cache indexes on `parent` and break + if ( node.nodeType === 1 && ++diff && node === elem ) { + uniqueCache[ type ] = [ dirruns, nodeIndex, diff ]; + break; + } + } + + } else { + + // Use previously-cached element index if available + if ( useCache ) { + + // ...in a gzip-friendly way + node = elem; + outerCache = node[ expando ] || ( node[ expando ] = {} ); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + ( outerCache[ node.uniqueID ] = {} ); + + cache = uniqueCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex; + } + + // xml :nth-child(...) + // or :nth-last-child(...) or :nth(-last)?-of-type(...) + if ( diff === false ) { + + // Use the same loop as above to seek `elem` from the start + while ( ( node = ++nodeIndex && node && node[ dir ] || + ( diff = nodeIndex = 0 ) || start.pop() ) ) { + + if ( ( ofType ? + node.nodeName.toLowerCase() === name : + node.nodeType === 1 ) && + ++diff ) { + + // Cache the index of each encountered element + if ( useCache ) { + outerCache = node[ expando ] || + ( node[ expando ] = {} ); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + ( outerCache[ node.uniqueID ] = {} ); + + uniqueCache[ type ] = [ dirruns, diff ]; + } + + if ( node === elem ) { + break; + } + } + } + } + } + + // Incorporate the offset, then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + } + }; + }, + + "PSEUDO": function( pseudo, argument ) { + + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + Sizzle.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as Sizzle does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction( function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf( seed, matched[ i ] ); + seed[ idx ] = !( matches[ idx ] = matched[ i ] ); + } + } ) : + function( elem ) { + return fn( elem, 0, args ); + }; + } + + return fn; + } + }, + + pseudos: { + + // Potentially complex pseudos + "not": markFunction( function( selector ) { + + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrim, "$1" ) ); + + return matcher[ expando ] ? + markFunction( function( seed, matches, _context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( ( elem = unmatched[ i ] ) ) { + seed[ i ] = !( matches[ i ] = elem ); + } + } + } ) : + function( elem, _context, xml ) { + input[ 0 ] = elem; + matcher( input, null, xml, results ); + + // Don't keep the element (issue #299) + input[ 0 ] = null; + return !results.pop(); + }; + } ), + + "has": markFunction( function( selector ) { + return function( elem ) { + return Sizzle( selector, elem ).length > 0; + }; + } ), + + "contains": markFunction( function( text ) { + text = text.replace( runescape, funescape ); + return function( elem ) { + return ( elem.textContent || getText( elem ) ).indexOf( text ) > -1; + }; + } ), + + // "Whether an element is represented by a :lang() selector + // is based solely on the element's language value + // being equal to the identifier C, + // or beginning with the identifier C immediately followed by "-". + // The matching of C against the element's language value is performed case-insensitively. + // The identifier C does not have to be a valid language name." + // http://www.w3.org/TR/selectors/#lang-pseudo + "lang": markFunction( function( lang ) { + + // lang value must be a valid identifier + if ( !ridentifier.test( lang || "" ) ) { + Sizzle.error( "unsupported lang: " + lang ); + } + lang = lang.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + var elemLang; + do { + if ( ( elemLang = documentIsHTML ? + elem.lang : + elem.getAttribute( "xml:lang" ) || elem.getAttribute( "lang" ) ) ) { + + elemLang = elemLang.toLowerCase(); + return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; + } + } while ( ( elem = elem.parentNode ) && elem.nodeType === 1 ); + return false; + }; + } ), + + // Miscellaneous + "target": function( elem ) { + var hash = window.location && window.location.hash; + return hash && hash.slice( 1 ) === elem.id; + }, + + "root": function( elem ) { + return elem === docElem; + }, + + "focus": function( elem ) { + return elem === document.activeElement && + ( !document.hasFocus || document.hasFocus() ) && + !!( elem.type || elem.href || ~elem.tabIndex ); + }, + + // Boolean properties + "enabled": createDisabledPseudo( false ), + "disabled": createDisabledPseudo( true ), + + "checked": function( elem ) { + + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return ( nodeName === "input" && !!elem.checked ) || + ( nodeName === "option" && !!elem.selected ); + }, + + "selected": function( elem ) { + + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + // eslint-disable-next-line no-unused-expressions + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + // Contents + "empty": function( elem ) { + + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), + // but not by others (comment: 8; processing instruction: 7; etc.) + // nodeType < 6 works because attributes (2) do not appear as children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + if ( elem.nodeType < 6 ) { + return false; + } + } + return true; + }, + + "parent": function( elem ) { + return !Expr.pseudos[ "empty" ]( elem ); + }, + + // Element/input types + "header": function( elem ) { + return rheader.test( elem.nodeName ); + }, + + "input": function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + "button": function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === "button" || name === "button"; + }, + + "text": function( elem ) { + var attr; + return elem.nodeName.toLowerCase() === "input" && + elem.type === "text" && + + // Support: IE<8 + // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" + ( ( attr = elem.getAttribute( "type" ) ) == null || + attr.toLowerCase() === "text" ); + }, + + // Position-in-collection + "first": createPositionalPseudo( function() { + return [ 0 ]; + } ), + + "last": createPositionalPseudo( function( _matchIndexes, length ) { + return [ length - 1 ]; + } ), + + "eq": createPositionalPseudo( function( _matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + } ), + + "even": createPositionalPseudo( function( matchIndexes, length ) { + var i = 0; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + } ), + + "odd": createPositionalPseudo( function( matchIndexes, length ) { + var i = 1; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + } ), + + "lt": createPositionalPseudo( function( matchIndexes, length, argument ) { + var i = argument < 0 ? + argument + length : + argument > length ? + length : + argument; + for ( ; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + } ), + + "gt": createPositionalPseudo( function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; ++i < length; ) { + matchIndexes.push( i ); + } + return matchIndexes; + } ) + } +}; + +Expr.pseudos[ "nth" ] = Expr.pseudos[ "eq" ]; + +// Add button/input type pseudos +for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { + Expr.pseudos[ i ] = createInputPseudo( i ); +} +for ( i in { submit: true, reset: true } ) { + Expr.pseudos[ i ] = createButtonPseudo( i ); +} + +// Easy API for creating new setFilters +function setFilters() {} +setFilters.prototype = Expr.filters = Expr.pseudos; +Expr.setFilters = new setFilters(); + +tokenize = Sizzle.tokenize = function( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || ( match = rcomma.exec( soFar ) ) ) { + if ( match ) { + + // Don't consume trailing commas as valid + soFar = soFar.slice( match[ 0 ].length ) || soFar; + } + groups.push( ( tokens = [] ) ); + } + + matched = false; + + // Combinators + if ( ( match = rcombinators.exec( soFar ) ) ) { + matched = match.shift(); + tokens.push( { + value: matched, + + // Cast descendant combinators to space + type: match[ 0 ].replace( rtrim, " " ) + } ); + soFar = soFar.slice( matched.length ); + } + + // Filters + for ( type in Expr.filter ) { + if ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] || + ( match = preFilters[ type ]( match ) ) ) ) { + matched = match.shift(); + tokens.push( { + value: matched, + type: type, + matches: match + } ); + soFar = soFar.slice( matched.length ); + } + } + + if ( !matched ) { + break; + } + } + + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + return parseOnly ? + soFar.length : + soFar ? + Sizzle.error( selector ) : + + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +}; + +function toSelector( tokens ) { + var i = 0, + len = tokens.length, + selector = ""; + for ( ; i < len; i++ ) { + selector += tokens[ i ].value; + } + return selector; +} + +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + skip = combinator.next, + key = skip || dir, + checkNonElements = base && key === "parentNode", + doneName = done++; + + return combinator.first ? + + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( ( elem = elem[ dir ] ) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + return matcher( elem, context, xml ); + } + } + return false; + } : + + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + var oldCache, uniqueCache, outerCache, + newCache = [ dirruns, doneName ]; + + // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching + if ( xml ) { + while ( ( elem = elem[ dir ] ) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + if ( matcher( elem, context, xml ) ) { + return true; + } + } + } + } else { + while ( ( elem = elem[ dir ] ) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + outerCache = elem[ expando ] || ( elem[ expando ] = {} ); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ elem.uniqueID ] || + ( outerCache[ elem.uniqueID ] = {} ); + + if ( skip && skip === elem.nodeName.toLowerCase() ) { + elem = elem[ dir ] || elem; + } else if ( ( oldCache = uniqueCache[ key ] ) && + oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { + + // Assign to newCache so results back-propagate to previous elements + return ( newCache[ 2 ] = oldCache[ 2 ] ); + } else { + + // Reuse newcache so results back-propagate to previous elements + uniqueCache[ key ] = newCache; + + // A match means we're done; a fail means we have to keep checking + if ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) { + return true; + } + } + } + } + } + return false; + }; +} + +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[ i ]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[ 0 ]; +} + +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[ i ], results ); + } + return results; +} + +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( ( elem = unmatched[ i ] ) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } + } + + return newUnmatched; +} + +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction( function( seed, results, context, xml ) { + var temp, i, elem, + preMap = [], + postMap = [], + preexisting = results.length, + + // Get initial elements from seed or context + elems = seed || multipleContexts( + selector || "*", + context.nodeType ? [ context ] : context, + [] + ), + + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems, + + matcherOut = matcher ? + + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, + postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + + // ...intermediate processing is necessary + [] : + + // ...otherwise use results directly + results : + matcherIn; + + // Find primary matches + if ( matcher ) { + matcher( matcherIn, matcherOut, context, xml ); + } + + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); + + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( ( elem = temp[ i ] ) ) { + matcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem ); + } + } + } + + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( ( elem = matcherOut[ i ] ) ) { + + // Restore matcherIn since elem is not yet a final match + temp.push( ( matcherIn[ i ] = elem ) ); + } + } + postFinder( null, ( matcherOut = [] ), temp, xml ); + } + + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( ( elem = matcherOut[ i ] ) && + ( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) { + + seed[ temp ] = !( results[ temp ] = elem ); + } + } + } + + // Add elements to results, through postFinder if defined + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + } ); +} + +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[ 0 ].type ], + implicitRelative = leadingRelative || Expr.relative[ " " ], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + ( checkContext = context ).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + + // Avoid hanging onto element (issue #299) + checkContext = null; + return ret; + } ]; + + for ( ; i < len; i++ ) { + if ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) { + matchers = [ addCombinator( elementMatcher( matchers ), matcher ) ]; + } else { + matcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[ j ].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && toSelector( + + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens + .slice( 0, i - 1 ) + .concat( { value: tokens[ i - 2 ].type === " " ? "*" : "" } ) + ).replace( rtrim, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ), + j < len && toSelector( tokens ) + ); + } + matchers.push( matcher ); + } + } + + return elementMatcher( matchers ); +} + +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + var bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, outermost ) { + var elem, j, matcher, + matchedCount = 0, + i = "0", + unmatched = seed && [], + setMatched = [], + contextBackup = outermostContext, + + // We must always have either seed elements or outermost context + elems = seed || byElement && Expr.find[ "TAG" ]( "*", outermost ), + + // Use integer dirruns iff this is the outermost matcher + dirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ), + len = elems.length; + + if ( outermost ) { + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + outermostContext = context == document || context || outermost; + } + + // Add elements passing elementMatchers directly to results + // Support: IE<9, Safari + // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id + for ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) { + if ( byElement && elem ) { + j = 0; + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( !context && elem.ownerDocument != document ) { + setDocument( elem ); + xml = !documentIsHTML; + } + while ( ( matcher = elementMatchers[ j++ ] ) ) { + if ( matcher( elem, context || document, xml ) ) { + results.push( elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + } + } + + // Track unmatched elements for set filters + if ( bySet ) { + + // They will have gone through all possible matchers + if ( ( elem = !matcher && elem ) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } + + // `i` is now the count of elements visited above, and adding it to `matchedCount` + // makes the latter nonnegative. + matchedCount += i; + + // Apply set filters to unmatched elements + // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` + // equals `i`), unless we didn't visit _any_ elements in the above loop because we have + // no element matchers and no seed. + // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that + // case, which will result in a "00" `matchedCount` that differs from `i` but is also + // numerically zero. + if ( bySet && i !== matchedCount ) { + j = 0; + while ( ( matcher = setMatchers[ j++ ] ) ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !( unmatched[ i ] || setMatched[ i ] ) ) { + setMatched[ i ] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + Sizzle.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + return bySet ? + markFunction( superMatcher ) : + superMatcher; +} + +compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ selector + " " ]; + + if ( !cached ) { + + // Generate a function of recursive functions that can be used to check each element + if ( !match ) { + match = tokenize( selector ); + } + i = match.length; + while ( i-- ) { + cached = matcherFromTokens( match[ i ] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } + + // Cache the compiled function + cached = compilerCache( + selector, + matcherFromGroupMatchers( elementMatchers, setMatchers ) + ); + + // Save selector and tokenization + cached.selector = selector; + } + return cached; +}; + +/** + * A low-level selection function that works with Sizzle's compiled + * selector functions + * @param {String|Function} selector A selector or a pre-compiled + * selector function built with Sizzle.compile + * @param {Element} context + * @param {Array} [results] + * @param {Array} [seed] A set of elements to match against + */ +select = Sizzle.select = function( selector, context, results, seed ) { + var i, tokens, token, type, find, + compiled = typeof selector === "function" && selector, + match = !seed && tokenize( ( selector = compiled.selector || selector ) ); + + results = results || []; + + // Try to minimize operations if there is only one selector in the list and no seed + // (the latter of which guarantees us context) + if ( match.length === 1 ) { + + // Reduce context if the leading compound selector is an ID + tokens = match[ 0 ] = match[ 0 ].slice( 0 ); + if ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === "ID" && + context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) { + + context = ( Expr.find[ "ID" ]( token.matches[ 0 ] + .replace( runescape, funescape ), context ) || [] )[ 0 ]; + if ( !context ) { + return results; + + // Precompiled matchers will still verify ancestry, so step up a level + } else if ( compiled ) { + context = context.parentNode; + } + + selector = selector.slice( tokens.shift().value.length ); + } + + // Fetch a seed set for right-to-left matching + i = matchExpr[ "needsContext" ].test( selector ) ? 0 : tokens.length; + while ( i-- ) { + token = tokens[ i ]; + + // Abort if we hit a combinator + if ( Expr.relative[ ( type = token.type ) ] ) { + break; + } + if ( ( find = Expr.find[ type ] ) ) { + + // Search, expanding context for leading sibling combinators + if ( ( seed = find( + token.matches[ 0 ].replace( runescape, funescape ), + rsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) || + context + ) ) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && toSelector( tokens ); + if ( !selector ) { + push.apply( results, seed ); + return results; + } + + break; + } + } + } + } + + // Compile and execute a filtering function if one is not provided + // Provide `match` to avoid retokenization if we modified the selector above + ( compiled || compile( selector, match ) )( + seed, + context, + !documentIsHTML, + results, + !context || rsibling.test( selector ) && testContext( context.parentNode ) || context + ); + return results; +}; + +// One-time assignments + +// Sort stability +support.sortStable = expando.split( "" ).sort( sortOrder ).join( "" ) === expando; + +// Support: Chrome 14-35+ +// Always assume duplicates if they aren't passed to the comparison function +support.detectDuplicates = !!hasDuplicate; + +// Initialize against the default document +setDocument(); + +// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) +// Detached nodes confoundingly follow *each other* +support.sortDetached = assert( function( el ) { + + // Should return 1, but returns 4 (following) + return el.compareDocumentPosition( document.createElement( "fieldset" ) ) & 1; +} ); + +// Support: IE<8 +// Prevent attribute/property "interpolation" +// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !assert( function( el ) { + el.innerHTML = ""; + return el.firstChild.getAttribute( "href" ) === "#"; +} ) ) { + addHandle( "type|href|height|width", function( elem, name, isXML ) { + if ( !isXML ) { + return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); + } + } ); +} + +// Support: IE<9 +// Use defaultValue in place of getAttribute("value") +if ( !support.attributes || !assert( function( el ) { + el.innerHTML = ""; + el.firstChild.setAttribute( "value", "" ); + return el.firstChild.getAttribute( "value" ) === ""; +} ) ) { + addHandle( "value", function( elem, _name, isXML ) { + if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { + return elem.defaultValue; + } + } ); +} + +// Support: IE<9 +// Use getAttributeNode to fetch booleans when getAttribute lies +if ( !assert( function( el ) { + return el.getAttribute( "disabled" ) == null; +} ) ) { + addHandle( booleans, function( elem, name, isXML ) { + var val; + if ( !isXML ) { + return elem[ name ] === true ? name.toLowerCase() : + ( val = elem.getAttributeNode( name ) ) && val.specified ? + val.value : + null; + } + } ); +} + +return Sizzle; + +} )( window ); + + + +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; + +// Deprecated +jQuery.expr[ ":" ] = jQuery.expr.pseudos; +jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; +jQuery.escapeSelector = Sizzle.escape; + + + + +var dir = function( elem, dir, until ) { + var matched = [], + truncate = until !== undefined; + + while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { + if ( elem.nodeType === 1 ) { + if ( truncate && jQuery( elem ).is( until ) ) { + break; + } + matched.push( elem ); + } + } + return matched; +}; + + +var siblings = function( n, elem ) { + var matched = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + matched.push( n ); + } + } + + return matched; +}; + + +var rneedsContext = jQuery.expr.match.needsContext; + + + +function nodeName( elem, name ) { + + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + +}; +var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); + + + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, not ) { + if ( isFunction( qualifier ) ) { + return jQuery.grep( elements, function( elem, i ) { + return !!qualifier.call( elem, i, elem ) !== not; + } ); + } + + // Single element + if ( qualifier.nodeType ) { + return jQuery.grep( elements, function( elem ) { + return ( elem === qualifier ) !== not; + } ); + } + + // Arraylike of elements (jQuery, arguments, Array) + if ( typeof qualifier !== "string" ) { + return jQuery.grep( elements, function( elem ) { + return ( indexOf.call( qualifier, elem ) > -1 ) !== not; + } ); + } + + // Filtered directly for both simple and complex selectors + return jQuery.filter( qualifier, elements, not ); +} + +jQuery.filter = function( expr, elems, not ) { + var elem = elems[ 0 ]; + + if ( not ) { + expr = ":not(" + expr + ")"; + } + + if ( elems.length === 1 && elem.nodeType === 1 ) { + return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : []; + } + + return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { + return elem.nodeType === 1; + } ) ); +}; + +jQuery.fn.extend( { + find: function( selector ) { + var i, ret, + len = this.length, + self = this; + + if ( typeof selector !== "string" ) { + return this.pushStack( jQuery( selector ).filter( function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + } ) ); + } + + ret = this.pushStack( [] ); + + for ( i = 0; i < len; i++ ) { + jQuery.find( selector, self[ i ], ret ); + } + + return len > 1 ? jQuery.uniqueSort( ret ) : ret; + }, + filter: function( selector ) { + return this.pushStack( winnow( this, selector || [], false ) ); + }, + not: function( selector ) { + return this.pushStack( winnow( this, selector || [], true ) ); + }, + is: function( selector ) { + return !!winnow( + this, + + // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + typeof selector === "string" && rneedsContext.test( selector ) ? + jQuery( selector ) : + selector || [], + false + ).length; + } +} ); + + +// Initialize a jQuery object + + +// A central reference to the root jQuery(document) +var rootjQuery, + + // A simple way to check for HTML strings + // Prioritize #id over to avoid XSS via location.hash (#9521) + // Strict HTML recognition (#11290: must start with <) + // Shortcut simple #id case for speed + rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, + + init = jQuery.fn.init = function( selector, context, root ) { + var match, elem; + + // HANDLE: $(""), $(null), $(undefined), $(false) + if ( !selector ) { + return this; + } + + // Method init() accepts an alternate rootjQuery + // so migrate can support jQuery.sub (gh-2101) + root = root || rootjQuery; + + // Handle HTML strings + if ( typeof selector === "string" ) { + if ( selector[ 0 ] === "<" && + selector[ selector.length - 1 ] === ">" && + selector.length >= 3 ) { + + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = rquickExpr.exec( selector ); + } + + // Match html or make sure no context is specified for #id + if ( match && ( match[ 1 ] || !context ) ) { + + // HANDLE: $(html) -> $(array) + if ( match[ 1 ] ) { + context = context instanceof jQuery ? context[ 0 ] : context; + + // Option to run scripts is true for back-compat + // Intentionally let the error be thrown if parseHTML is not present + jQuery.merge( this, jQuery.parseHTML( + match[ 1 ], + context && context.nodeType ? context.ownerDocument || context : document, + true + ) ); + + // HANDLE: $(html, props) + if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) { + for ( match in context ) { + + // Properties of context are called as methods if possible + if ( isFunction( this[ match ] ) ) { + this[ match ]( context[ match ] ); + + // ...and otherwise set as attributes + } else { + this.attr( match, context[ match ] ); + } + } + } + + return this; + + // HANDLE: $(#id) + } else { + elem = document.getElementById( match[ 2 ] ); + + if ( elem ) { + + // Inject the element directly into the jQuery object + this[ 0 ] = elem; + this.length = 1; + } + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return ( context || root ).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(DOMElement) + } else if ( selector.nodeType ) { + this[ 0 ] = selector; + this.length = 1; + return this; + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( isFunction( selector ) ) { + return root.ready !== undefined ? + root.ready( selector ) : + + // Execute immediately if ready is not present + selector( jQuery ); + } + + return jQuery.makeArray( selector, this ); + }; + +// Give the init function the jQuery prototype for later instantiation +init.prototype = jQuery.fn; + +// Initialize central reference +rootjQuery = jQuery( document ); + + +var rparentsprev = /^(?:parents|prev(?:Until|All))/, + + // Methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.fn.extend( { + has: function( target ) { + var targets = jQuery( target, this ), + l = targets.length; + + return this.filter( function() { + var i = 0; + for ( ; i < l; i++ ) { + if ( jQuery.contains( this, targets[ i ] ) ) { + return true; + } + } + } ); + }, + + closest: function( selectors, context ) { + var cur, + i = 0, + l = this.length, + matched = [], + targets = typeof selectors !== "string" && jQuery( selectors ); + + // Positional selectors never match, since there's no _selection_ context + if ( !rneedsContext.test( selectors ) ) { + for ( ; i < l; i++ ) { + for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) { + + // Always skip document fragments + if ( cur.nodeType < 11 && ( targets ? + targets.index( cur ) > -1 : + + // Don't pass non-elements to Sizzle + cur.nodeType === 1 && + jQuery.find.matchesSelector( cur, selectors ) ) ) { + + matched.push( cur ); + break; + } + } + } + } + + return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched ); + }, + + // Determine the position of an element within the set + index: function( elem ) { + + // No argument, return index in parent + if ( !elem ) { + return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; + } + + // Index in selector + if ( typeof elem === "string" ) { + return indexOf.call( jQuery( elem ), this[ 0 ] ); + } + + // Locate the position of the desired element + return indexOf.call( this, + + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[ 0 ] : elem + ); + }, + + add: function( selector, context ) { + return this.pushStack( + jQuery.uniqueSort( + jQuery.merge( this.get(), jQuery( selector, context ) ) + ) + ); + }, + + addBack: function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter( selector ) + ); + } +} ); + +function sibling( cur, dir ) { + while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {} + return cur; +} + +jQuery.each( { + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, _i, until ) { + return dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return sibling( elem, "nextSibling" ); + }, + prev: function( elem ) { + return sibling( elem, "previousSibling" ); + }, + nextAll: function( elem ) { + return dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, _i, until ) { + return dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, _i, until ) { + return dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return siblings( ( elem.parentNode || {} ).firstChild, elem ); + }, + children: function( elem ) { + return siblings( elem.firstChild ); + }, + contents: function( elem ) { + if ( elem.contentDocument != null && + + // Support: IE 11+ + // elements with no `data` attribute has an object + // `contentDocument` with a `null` prototype. + getProto( elem.contentDocument ) ) { + + return elem.contentDocument; + } + + // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only + // Treat the template element as a regular one in browsers that + // don't support it. + if ( nodeName( elem, "template" ) ) { + elem = elem.content || elem; + } + + return jQuery.merge( [], elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var matched = jQuery.map( this, fn, until ); + + if ( name.slice( -5 ) !== "Until" ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + matched = jQuery.filter( selector, matched ); + } + + if ( this.length > 1 ) { + + // Remove duplicates + if ( !guaranteedUnique[ name ] ) { + jQuery.uniqueSort( matched ); + } + + // Reverse order for parents* and prev-derivatives + if ( rparentsprev.test( name ) ) { + matched.reverse(); + } + } + + return this.pushStack( matched ); + }; +} ); +var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g ); + + + +// Convert String-formatted options into Object-formatted ones +function createOptions( options ) { + var object = {}; + jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) { + object[ flag ] = true; + } ); + return object; +} + +/* + * Create a callback list using the following parameters: + * + * options: an optional list of space-separated options that will change how + * the callback list behaves or a more traditional option object + * + * By default a callback list will act like an event callback list and can be + * "fired" multiple times. + * + * Possible options: + * + * once: will ensure the callback list can only be fired once (like a Deferred) + * + * memory: will keep track of previous values and will call any callback added + * after the list has been fired right away with the latest "memorized" + * values (like a Deferred) + * + * unique: will ensure a callback can only be added once (no duplicate in the list) + * + * stopOnFalse: interrupt callings when a callback returns false + * + */ +jQuery.Callbacks = function( options ) { + + // Convert options from String-formatted to Object-formatted if needed + // (we check in cache first) + options = typeof options === "string" ? + createOptions( options ) : + jQuery.extend( {}, options ); + + var // Flag to know if list is currently firing + firing, + + // Last fire value for non-forgettable lists + memory, + + // Flag to know if list was already fired + fired, + + // Flag to prevent firing + locked, + + // Actual callback list + list = [], + + // Queue of execution data for repeatable lists + queue = [], + + // Index of currently firing callback (modified by add/remove as needed) + firingIndex = -1, + + // Fire callbacks + fire = function() { + + // Enforce single-firing + locked = locked || options.once; + + // Execute callbacks for all pending executions, + // respecting firingIndex overrides and runtime changes + fired = firing = true; + for ( ; queue.length; firingIndex = -1 ) { + memory = queue.shift(); + while ( ++firingIndex < list.length ) { + + // Run callback and check for early termination + if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false && + options.stopOnFalse ) { + + // Jump to end and forget the data so .add doesn't re-fire + firingIndex = list.length; + memory = false; + } + } + } + + // Forget the data if we're done with it + if ( !options.memory ) { + memory = false; + } + + firing = false; + + // Clean up if we're done firing for good + if ( locked ) { + + // Keep an empty list if we have data for future add calls + if ( memory ) { + list = []; + + // Otherwise, this object is spent + } else { + list = ""; + } + } + }, + + // Actual Callbacks object + self = { + + // Add a callback or a collection of callbacks to the list + add: function() { + if ( list ) { + + // If we have memory from a past run, we should fire after adding + if ( memory && !firing ) { + firingIndex = list.length - 1; + queue.push( memory ); + } + + ( function add( args ) { + jQuery.each( args, function( _, arg ) { + if ( isFunction( arg ) ) { + if ( !options.unique || !self.has( arg ) ) { + list.push( arg ); + } + } else if ( arg && arg.length && toType( arg ) !== "string" ) { + + // Inspect recursively + add( arg ); + } + } ); + } )( arguments ); + + if ( memory && !firing ) { + fire(); + } + } + return this; + }, + + // Remove a callback from the list + remove: function() { + jQuery.each( arguments, function( _, arg ) { + var index; + while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { + list.splice( index, 1 ); + + // Handle firing indexes + if ( index <= firingIndex ) { + firingIndex--; + } + } + } ); + return this; + }, + + // Check if a given callback is in the list. + // If no argument is given, return whether or not list has callbacks attached. + has: function( fn ) { + return fn ? + jQuery.inArray( fn, list ) > -1 : + list.length > 0; + }, + + // Remove all callbacks from the list + empty: function() { + if ( list ) { + list = []; + } + return this; + }, + + // Disable .fire and .add + // Abort any current/pending executions + // Clear all callbacks and values + disable: function() { + locked = queue = []; + list = memory = ""; + return this; + }, + disabled: function() { + return !list; + }, + + // Disable .fire + // Also disable .add unless we have memory (since it would have no effect) + // Abort any pending executions + lock: function() { + locked = queue = []; + if ( !memory && !firing ) { + list = memory = ""; + } + return this; + }, + locked: function() { + return !!locked; + }, + + // Call all callbacks with the given context and arguments + fireWith: function( context, args ) { + if ( !locked ) { + args = args || []; + args = [ context, args.slice ? args.slice() : args ]; + queue.push( args ); + if ( !firing ) { + fire(); + } + } + return this; + }, + + // Call all the callbacks with the given arguments + fire: function() { + self.fireWith( this, arguments ); + return this; + }, + + // To know if the callbacks have already been called at least once + fired: function() { + return !!fired; + } + }; + + return self; +}; + + +function Identity( v ) { + return v; +} +function Thrower( ex ) { + throw ex; +} + +function adoptValue( value, resolve, reject, noValue ) { + var method; + + try { + + // Check for promise aspect first to privilege synchronous behavior + if ( value && isFunction( ( method = value.promise ) ) ) { + method.call( value ).done( resolve ).fail( reject ); + + // Other thenables + } else if ( value && isFunction( ( method = value.then ) ) ) { + method.call( value, resolve, reject ); + + // Other non-thenables + } else { + + // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer: + // * false: [ value ].slice( 0 ) => resolve( value ) + // * true: [ value ].slice( 1 ) => resolve() + resolve.apply( undefined, [ value ].slice( noValue ) ); + } + + // For Promises/A+, convert exceptions into rejections + // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in + // Deferred#then to conditionally suppress rejection. + } catch ( value ) { + + // Support: Android 4.0 only + // Strict mode functions invoked without .call/.apply get global-object context + reject.apply( undefined, [ value ] ); + } +} + +jQuery.extend( { + + Deferred: function( func ) { + var tuples = [ + + // action, add listener, callbacks, + // ... .then handlers, argument index, [final state] + [ "notify", "progress", jQuery.Callbacks( "memory" ), + jQuery.Callbacks( "memory" ), 2 ], + [ "resolve", "done", jQuery.Callbacks( "once memory" ), + jQuery.Callbacks( "once memory" ), 0, "resolved" ], + [ "reject", "fail", jQuery.Callbacks( "once memory" ), + jQuery.Callbacks( "once memory" ), 1, "rejected" ] + ], + state = "pending", + promise = { + state: function() { + return state; + }, + always: function() { + deferred.done( arguments ).fail( arguments ); + return this; + }, + "catch": function( fn ) { + return promise.then( null, fn ); + }, + + // Keep pipe for back-compat + pipe: function( /* fnDone, fnFail, fnProgress */ ) { + var fns = arguments; + + return jQuery.Deferred( function( newDefer ) { + jQuery.each( tuples, function( _i, tuple ) { + + // Map tuples (progress, done, fail) to arguments (done, fail, progress) + var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; + + // deferred.progress(function() { bind to newDefer or newDefer.notify }) + // deferred.done(function() { bind to newDefer or newDefer.resolve }) + // deferred.fail(function() { bind to newDefer or newDefer.reject }) + deferred[ tuple[ 1 ] ]( function() { + var returned = fn && fn.apply( this, arguments ); + if ( returned && isFunction( returned.promise ) ) { + returned.promise() + .progress( newDefer.notify ) + .done( newDefer.resolve ) + .fail( newDefer.reject ); + } else { + newDefer[ tuple[ 0 ] + "With" ]( + this, + fn ? [ returned ] : arguments + ); + } + } ); + } ); + fns = null; + } ).promise(); + }, + then: function( onFulfilled, onRejected, onProgress ) { + var maxDepth = 0; + function resolve( depth, deferred, handler, special ) { + return function() { + var that = this, + args = arguments, + mightThrow = function() { + var returned, then; + + // Support: Promises/A+ section 2.3.3.3.3 + // https://promisesaplus.com/#point-59 + // Ignore double-resolution attempts + if ( depth < maxDepth ) { + return; + } + + returned = handler.apply( that, args ); + + // Support: Promises/A+ section 2.3.1 + // https://promisesaplus.com/#point-48 + if ( returned === deferred.promise() ) { + throw new TypeError( "Thenable self-resolution" ); + } + + // Support: Promises/A+ sections 2.3.3.1, 3.5 + // https://promisesaplus.com/#point-54 + // https://promisesaplus.com/#point-75 + // Retrieve `then` only once + then = returned && + + // Support: Promises/A+ section 2.3.4 + // https://promisesaplus.com/#point-64 + // Only check objects and functions for thenability + ( typeof returned === "object" || + typeof returned === "function" ) && + returned.then; + + // Handle a returned thenable + if ( isFunction( then ) ) { + + // Special processors (notify) just wait for resolution + if ( special ) { + then.call( + returned, + resolve( maxDepth, deferred, Identity, special ), + resolve( maxDepth, deferred, Thrower, special ) + ); + + // Normal processors (resolve) also hook into progress + } else { + + // ...and disregard older resolution values + maxDepth++; + + then.call( + returned, + resolve( maxDepth, deferred, Identity, special ), + resolve( maxDepth, deferred, Thrower, special ), + resolve( maxDepth, deferred, Identity, + deferred.notifyWith ) + ); + } + + // Handle all other returned values + } else { + + // Only substitute handlers pass on context + // and multiple values (non-spec behavior) + if ( handler !== Identity ) { + that = undefined; + args = [ returned ]; + } + + // Process the value(s) + // Default process is resolve + ( special || deferred.resolveWith )( that, args ); + } + }, + + // Only normal processors (resolve) catch and reject exceptions + process = special ? + mightThrow : + function() { + try { + mightThrow(); + } catch ( e ) { + + if ( jQuery.Deferred.exceptionHook ) { + jQuery.Deferred.exceptionHook( e, + process.stackTrace ); + } + + // Support: Promises/A+ section 2.3.3.3.4.1 + // https://promisesaplus.com/#point-61 + // Ignore post-resolution exceptions + if ( depth + 1 >= maxDepth ) { + + // Only substitute handlers pass on context + // and multiple values (non-spec behavior) + if ( handler !== Thrower ) { + that = undefined; + args = [ e ]; + } + + deferred.rejectWith( that, args ); + } + } + }; + + // Support: Promises/A+ section 2.3.3.3.1 + // https://promisesaplus.com/#point-57 + // Re-resolve promises immediately to dodge false rejection from + // subsequent errors + if ( depth ) { + process(); + } else { + + // Call an optional hook to record the stack, in case of exception + // since it's otherwise lost when execution goes async + if ( jQuery.Deferred.getStackHook ) { + process.stackTrace = jQuery.Deferred.getStackHook(); + } + window.setTimeout( process ); + } + }; + } + + return jQuery.Deferred( function( newDefer ) { + + // progress_handlers.add( ... ) + tuples[ 0 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onProgress ) ? + onProgress : + Identity, + newDefer.notifyWith + ) + ); + + // fulfilled_handlers.add( ... ) + tuples[ 1 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onFulfilled ) ? + onFulfilled : + Identity + ) + ); + + // rejected_handlers.add( ... ) + tuples[ 2 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onRejected ) ? + onRejected : + Thrower + ) + ); + } ).promise(); + }, + + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + return obj != null ? jQuery.extend( obj, promise ) : promise; + } + }, + deferred = {}; + + // Add list-specific methods + jQuery.each( tuples, function( i, tuple ) { + var list = tuple[ 2 ], + stateString = tuple[ 5 ]; + + // promise.progress = list.add + // promise.done = list.add + // promise.fail = list.add + promise[ tuple[ 1 ] ] = list.add; + + // Handle state + if ( stateString ) { + list.add( + function() { + + // state = "resolved" (i.e., fulfilled) + // state = "rejected" + state = stateString; + }, + + // rejected_callbacks.disable + // fulfilled_callbacks.disable + tuples[ 3 - i ][ 2 ].disable, + + // rejected_handlers.disable + // fulfilled_handlers.disable + tuples[ 3 - i ][ 3 ].disable, + + // progress_callbacks.lock + tuples[ 0 ][ 2 ].lock, + + // progress_handlers.lock + tuples[ 0 ][ 3 ].lock + ); + } + + // progress_handlers.fire + // fulfilled_handlers.fire + // rejected_handlers.fire + list.add( tuple[ 3 ].fire ); + + // deferred.notify = function() { deferred.notifyWith(...) } + // deferred.resolve = function() { deferred.resolveWith(...) } + // deferred.reject = function() { deferred.rejectWith(...) } + deferred[ tuple[ 0 ] ] = function() { + deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments ); + return this; + }; + + // deferred.notifyWith = list.fireWith + // deferred.resolveWith = list.fireWith + // deferred.rejectWith = list.fireWith + deferred[ tuple[ 0 ] + "With" ] = list.fireWith; + } ); + + // Make the deferred a promise + promise.promise( deferred ); + + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + + // All done! + return deferred; + }, + + // Deferred helper + when: function( singleValue ) { + var + + // count of uncompleted subordinates + remaining = arguments.length, + + // count of unprocessed arguments + i = remaining, + + // subordinate fulfillment data + resolveContexts = Array( i ), + resolveValues = slice.call( arguments ), + + // the master Deferred + master = jQuery.Deferred(), + + // subordinate callback factory + updateFunc = function( i ) { + return function( value ) { + resolveContexts[ i ] = this; + resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; + if ( !( --remaining ) ) { + master.resolveWith( resolveContexts, resolveValues ); + } + }; + }; + + // Single- and empty arguments are adopted like Promise.resolve + if ( remaining <= 1 ) { + adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject, + !remaining ); + + // Use .then() to unwrap secondary thenables (cf. gh-3000) + if ( master.state() === "pending" || + isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { + + return master.then(); + } + } + + // Multiple arguments are aggregated like Promise.all array elements + while ( i-- ) { + adoptValue( resolveValues[ i ], updateFunc( i ), master.reject ); + } + + return master.promise(); + } +} ); + + +// These usually indicate a programmer mistake during development, +// warn about them ASAP rather than swallowing them by default. +var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; + +jQuery.Deferred.exceptionHook = function( error, stack ) { + + // Support: IE 8 - 9 only + // Console exists when dev tools are open, which can happen at any time + if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) { + window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack ); + } +}; + + + + +jQuery.readyException = function( error ) { + window.setTimeout( function() { + throw error; + } ); +}; + + + + +// The deferred used on DOM ready +var readyList = jQuery.Deferred(); + +jQuery.fn.ready = function( fn ) { + + readyList + .then( fn ) + + // Wrap jQuery.readyException in a function so that the lookup + // happens at the time of error handling instead of callback + // registration. + .catch( function( error ) { + jQuery.readyException( error ); + } ); + + return this; +}; + +jQuery.extend( { + + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Handle when the DOM is ready + ready: function( wait ) { + + // Abort if there are pending holds or we're already ready + if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { + return; + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + } +} ); + +jQuery.ready.then = readyList.then; + +// The ready event handler and self cleanup method +function completed() { + document.removeEventListener( "DOMContentLoaded", completed ); + window.removeEventListener( "load", completed ); + jQuery.ready(); +} + +// Catch cases where $(document).ready() is called +// after the browser event has already occurred. +// Support: IE <=9 - 10 only +// Older IE sometimes signals "interactive" too soon +if ( document.readyState === "complete" || + ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) { + + // Handle it asynchronously to allow scripts the opportunity to delay ready + window.setTimeout( jQuery.ready ); + +} else { + + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", completed ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", completed ); +} + + + + +// Multifunctional method to get and set values of a collection +// The value/s can optionally be executed if it's a function +var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { + var i = 0, + len = elems.length, + bulk = key == null; + + // Sets many values + if ( toType( key ) === "object" ) { + chainable = true; + for ( i in key ) { + access( elems, fn, i, key[ i ], true, emptyGet, raw ); + } + + // Sets one value + } else if ( value !== undefined ) { + chainable = true; + + if ( !isFunction( value ) ) { + raw = true; + } + + if ( bulk ) { + + // Bulk operations run against the entire set + if ( raw ) { + fn.call( elems, value ); + fn = null; + + // ...except when executing function values + } else { + bulk = fn; + fn = function( elem, _key, value ) { + return bulk.call( jQuery( elem ), value ); + }; + } + } + + if ( fn ) { + for ( ; i < len; i++ ) { + fn( + elems[ i ], key, raw ? + value : + value.call( elems[ i ], i, fn( elems[ i ], key ) ) + ); + } + } + } + + if ( chainable ) { + return elems; + } + + // Gets + if ( bulk ) { + return fn.call( elems ); + } + + return len ? fn( elems[ 0 ], key ) : emptyGet; +}; + + +// Matches dashed string for camelizing +var rmsPrefix = /^-ms-/, + rdashAlpha = /-([a-z])/g; + +// Used by camelCase as callback to replace() +function fcamelCase( _all, letter ) { + return letter.toUpperCase(); +} + +// Convert dashed to camelCase; used by the css and data modules +// Support: IE <=9 - 11, Edge 12 - 15 +// Microsoft forgot to hump their vendor prefix (#9572) +function camelCase( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); +} +var acceptData = function( owner ) { + + // Accepts only: + // - Node + // - Node.ELEMENT_NODE + // - Node.DOCUMENT_NODE + // - Object + // - Any + return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); +}; + + + + +function Data() { + this.expando = jQuery.expando + Data.uid++; +} + +Data.uid = 1; + +Data.prototype = { + + cache: function( owner ) { + + // Check if the owner object already has a cache + var value = owner[ this.expando ]; + + // If not, create one + if ( !value ) { + value = {}; + + // We can accept data for non-element nodes in modern browsers, + // but we should not, see #8335. + // Always return an empty object. + if ( acceptData( owner ) ) { + + // If it is a node unlikely to be stringify-ed or looped over + // use plain assignment + if ( owner.nodeType ) { + owner[ this.expando ] = value; + + // Otherwise secure it in a non-enumerable property + // configurable must be true to allow the property to be + // deleted when data is removed + } else { + Object.defineProperty( owner, this.expando, { + value: value, + configurable: true + } ); + } + } + } + + return value; + }, + set: function( owner, data, value ) { + var prop, + cache = this.cache( owner ); + + // Handle: [ owner, key, value ] args + // Always use camelCase key (gh-2257) + if ( typeof data === "string" ) { + cache[ camelCase( data ) ] = value; + + // Handle: [ owner, { properties } ] args + } else { + + // Copy the properties one-by-one to the cache object + for ( prop in data ) { + cache[ camelCase( prop ) ] = data[ prop ]; + } + } + return cache; + }, + get: function( owner, key ) { + return key === undefined ? + this.cache( owner ) : + + // Always use camelCase key (gh-2257) + owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ]; + }, + access: function( owner, key, value ) { + + // In cases where either: + // + // 1. No key was specified + // 2. A string key was specified, but no value provided + // + // Take the "read" path and allow the get method to determine + // which value to return, respectively either: + // + // 1. The entire cache object + // 2. The data stored at the key + // + if ( key === undefined || + ( ( key && typeof key === "string" ) && value === undefined ) ) { + + return this.get( owner, key ); + } + + // When the key is not a string, or both a key and value + // are specified, set or extend (existing objects) with either: + // + // 1. An object of properties + // 2. A key and value + // + this.set( owner, key, value ); + + // Since the "set" path can have two possible entry points + // return the expected data based on which path was taken[*] + return value !== undefined ? value : key; + }, + remove: function( owner, key ) { + var i, + cache = owner[ this.expando ]; + + if ( cache === undefined ) { + return; + } + + if ( key !== undefined ) { + + // Support array or space separated string of keys + if ( Array.isArray( key ) ) { + + // If key is an array of keys... + // We always set camelCase keys, so remove that. + key = key.map( camelCase ); + } else { + key = camelCase( key ); + + // If a key with the spaces exists, use it. + // Otherwise, create an array by matching non-whitespace + key = key in cache ? + [ key ] : + ( key.match( rnothtmlwhite ) || [] ); + } + + i = key.length; + + while ( i-- ) { + delete cache[ key[ i ] ]; + } + } + + // Remove the expando if there's no more data + if ( key === undefined || jQuery.isEmptyObject( cache ) ) { + + // Support: Chrome <=35 - 45 + // Webkit & Blink performance suffers when deleting properties + // from DOM nodes, so set to undefined instead + // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted) + if ( owner.nodeType ) { + owner[ this.expando ] = undefined; + } else { + delete owner[ this.expando ]; + } + } + }, + hasData: function( owner ) { + var cache = owner[ this.expando ]; + return cache !== undefined && !jQuery.isEmptyObject( cache ); + } +}; +var dataPriv = new Data(); + +var dataUser = new Data(); + + + +// Implementation Summary +// +// 1. Enforce API surface and semantic compatibility with 1.9.x branch +// 2. Improve the module's maintainability by reducing the storage +// paths to a single mechanism. +// 3. Use the same single mechanism to support "private" and "user" data. +// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) +// 5. Avoid exposing implementation details on user objects (eg. expando properties) +// 6. Provide a clear path for implementation upgrade to WeakMap in 2014 + +var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, + rmultiDash = /[A-Z]/g; + +function getData( data ) { + if ( data === "true" ) { + return true; + } + + if ( data === "false" ) { + return false; + } + + if ( data === "null" ) { + return null; + } + + // Only convert to a number if it doesn't change the string + if ( data === +data + "" ) { + return +data; + } + + if ( rbrace.test( data ) ) { + return JSON.parse( data ); + } + + return data; +} + +function dataAttr( elem, key, data ) { + var name; + + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase(); + data = elem.getAttribute( name ); + + if ( typeof data === "string" ) { + try { + data = getData( data ); + } catch ( e ) {} + + // Make sure we set the data so it isn't changed later + dataUser.set( elem, key, data ); + } else { + data = undefined; + } + } + return data; +} + +jQuery.extend( { + hasData: function( elem ) { + return dataUser.hasData( elem ) || dataPriv.hasData( elem ); + }, + + data: function( elem, name, data ) { + return dataUser.access( elem, name, data ); + }, + + removeData: function( elem, name ) { + dataUser.remove( elem, name ); + }, + + // TODO: Now that all calls to _data and _removeData have been replaced + // with direct calls to dataPriv methods, these can be deprecated. + _data: function( elem, name, data ) { + return dataPriv.access( elem, name, data ); + }, + + _removeData: function( elem, name ) { + dataPriv.remove( elem, name ); + } +} ); + +jQuery.fn.extend( { + data: function( key, value ) { + var i, name, data, + elem = this[ 0 ], + attrs = elem && elem.attributes; + + // Gets all values + if ( key === undefined ) { + if ( this.length ) { + data = dataUser.get( elem ); + + if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) { + i = attrs.length; + while ( i-- ) { + + // Support: IE 11 only + // The attrs elements can be null (#14894) + if ( attrs[ i ] ) { + name = attrs[ i ].name; + if ( name.indexOf( "data-" ) === 0 ) { + name = camelCase( name.slice( 5 ) ); + dataAttr( elem, name, data[ name ] ); + } + } + } + dataPriv.set( elem, "hasDataAttrs", true ); + } + } + + return data; + } + + // Sets multiple values + if ( typeof key === "object" ) { + return this.each( function() { + dataUser.set( this, key ); + } ); + } + + return access( this, function( value ) { + var data; + + // The calling jQuery object (element matches) is not empty + // (and therefore has an element appears at this[ 0 ]) and the + // `value` parameter was not undefined. An empty jQuery object + // will result in `undefined` for elem = this[ 0 ] which will + // throw an exception if an attempt to read a data cache is made. + if ( elem && value === undefined ) { + + // Attempt to get data from the cache + // The key will always be camelCased in Data + data = dataUser.get( elem, key ); + if ( data !== undefined ) { + return data; + } + + // Attempt to "discover" the data in + // HTML5 custom data-* attrs + data = dataAttr( elem, key ); + if ( data !== undefined ) { + return data; + } + + // We tried really hard, but the data doesn't exist. + return; + } + + // Set the data... + this.each( function() { + + // We always store the camelCased key + dataUser.set( this, key, value ); + } ); + }, null, value, arguments.length > 1, null, true ); + }, + + removeData: function( key ) { + return this.each( function() { + dataUser.remove( this, key ); + } ); + } +} ); + + +jQuery.extend( { + queue: function( elem, type, data ) { + var queue; + + if ( elem ) { + type = ( type || "fx" ) + "queue"; + queue = dataPriv.get( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !queue || Array.isArray( data ) ) { + queue = dataPriv.access( elem, type, jQuery.makeArray( data ) ); + } else { + queue.push( data ); + } + } + return queue || []; + } + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + startLength = queue.length, + fn = queue.shift(), + hooks = jQuery._queueHooks( elem, type ), + next = function() { + jQuery.dequeue( elem, type ); + }; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + startLength--; + } + + if ( fn ) { + + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift( "inprogress" ); + } + + // Clear up the last queue stop function + delete hooks.stop; + fn.call( elem, next, hooks ); + } + + if ( !startLength && hooks ) { + hooks.empty.fire(); + } + }, + + // Not public - generate a queueHooks object, or return the current one + _queueHooks: function( elem, type ) { + var key = type + "queueHooks"; + return dataPriv.get( elem, key ) || dataPriv.access( elem, key, { + empty: jQuery.Callbacks( "once memory" ).add( function() { + dataPriv.remove( elem, [ type + "queue", key ] ); + } ) + } ); + } +} ); + +jQuery.fn.extend( { + queue: function( type, data ) { + var setter = 2; + + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + setter--; + } + + if ( arguments.length < setter ) { + return jQuery.queue( this[ 0 ], type ); + } + + return data === undefined ? + this : + this.each( function() { + var queue = jQuery.queue( this, type, data ); + + // Ensure a hooks for this queue + jQuery._queueHooks( this, type ); + + if ( type === "fx" && queue[ 0 ] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + } ); + }, + dequeue: function( type ) { + return this.each( function() { + jQuery.dequeue( this, type ); + } ); + }, + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + }, + + // Get a promise resolved when queues of a certain type + // are emptied (fx is the type by default) + promise: function( type, obj ) { + var tmp, + count = 1, + defer = jQuery.Deferred(), + elements = this, + i = this.length, + resolve = function() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + }; + + if ( typeof type !== "string" ) { + obj = type; + type = undefined; + } + type = type || "fx"; + + while ( i-- ) { + tmp = dataPriv.get( elements[ i ], type + "queueHooks" ); + if ( tmp && tmp.empty ) { + count++; + tmp.empty.add( resolve ); + } + } + resolve(); + return defer.promise( obj ); + } +} ); +var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; + +var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); + + +var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; + +var documentElement = document.documentElement; + + + + var isAttached = function( elem ) { + return jQuery.contains( elem.ownerDocument, elem ); + }, + composed = { composed: true }; + + // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only + // Check attachment across shadow DOM boundaries when possible (gh-3504) + // Support: iOS 10.0-10.2 only + // Early iOS 10 versions support `attachShadow` but not `getRootNode`, + // leading to errors. We need to check for `getRootNode`. + if ( documentElement.getRootNode ) { + isAttached = function( elem ) { + return jQuery.contains( elem.ownerDocument, elem ) || + elem.getRootNode( composed ) === elem.ownerDocument; + }; + } +var isHiddenWithinTree = function( elem, el ) { + + // isHiddenWithinTree might be called from jQuery#filter function; + // in that case, element will be second argument + elem = el || elem; + + // Inline style trumps all + return elem.style.display === "none" || + elem.style.display === "" && + + // Otherwise, check computed style + // Support: Firefox <=43 - 45 + // Disconnected elements can have computed display: none, so first confirm that elem is + // in the document. + isAttached( elem ) && + + jQuery.css( elem, "display" ) === "none"; + }; + + + +function adjustCSS( elem, prop, valueParts, tween ) { + var adjusted, scale, + maxIterations = 20, + currentValue = tween ? + function() { + return tween.cur(); + } : + function() { + return jQuery.css( elem, prop, "" ); + }, + initial = currentValue(), + unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), + + // Starting value computation is required for potential unit mismatches + initialInUnit = elem.nodeType && + ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && + rcssNum.exec( jQuery.css( elem, prop ) ); + + if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { + + // Support: Firefox <=54 + // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144) + initial = initial / 2; + + // Trust units reported by jQuery.css + unit = unit || initialInUnit[ 3 ]; + + // Iteratively approximate from a nonzero starting point + initialInUnit = +initial || 1; + + while ( maxIterations-- ) { + + // Evaluate and update our best guess (doubling guesses that zero out). + // Finish if the scale equals or crosses 1 (making the old*new product non-positive). + jQuery.style( elem, prop, initialInUnit + unit ); + if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) { + maxIterations = 0; + } + initialInUnit = initialInUnit / scale; + + } + + initialInUnit = initialInUnit * 2; + jQuery.style( elem, prop, initialInUnit + unit ); + + // Make sure we update the tween properties later on + valueParts = valueParts || []; + } + + if ( valueParts ) { + initialInUnit = +initialInUnit || +initial || 0; + + // Apply relative offset (+=/-=) if specified + adjusted = valueParts[ 1 ] ? + initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] : + +valueParts[ 2 ]; + if ( tween ) { + tween.unit = unit; + tween.start = initialInUnit; + tween.end = adjusted; + } + } + return adjusted; +} + + +var defaultDisplayMap = {}; + +function getDefaultDisplay( elem ) { + var temp, + doc = elem.ownerDocument, + nodeName = elem.nodeName, + display = defaultDisplayMap[ nodeName ]; + + if ( display ) { + return display; + } + + temp = doc.body.appendChild( doc.createElement( nodeName ) ); + display = jQuery.css( temp, "display" ); + + temp.parentNode.removeChild( temp ); + + if ( display === "none" ) { + display = "block"; + } + defaultDisplayMap[ nodeName ] = display; + + return display; +} + +function showHide( elements, show ) { + var display, elem, + values = [], + index = 0, + length = elements.length; + + // Determine new display value for elements that need to change + for ( ; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + + display = elem.style.display; + if ( show ) { + + // Since we force visibility upon cascade-hidden elements, an immediate (and slow) + // check is required in this first loop unless we have a nonempty display value (either + // inline or about-to-be-restored) + if ( display === "none" ) { + values[ index ] = dataPriv.get( elem, "display" ) || null; + if ( !values[ index ] ) { + elem.style.display = ""; + } + } + if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) { + values[ index ] = getDefaultDisplay( elem ); + } + } else { + if ( display !== "none" ) { + values[ index ] = "none"; + + // Remember what we're overwriting + dataPriv.set( elem, "display", display ); + } + } + } + + // Set the display of the elements in a second loop to avoid constant reflow + for ( index = 0; index < length; index++ ) { + if ( values[ index ] != null ) { + elements[ index ].style.display = values[ index ]; + } + } + + return elements; +} + +jQuery.fn.extend( { + show: function() { + return showHide( this, true ); + }, + hide: function() { + return showHide( this ); + }, + toggle: function( state ) { + if ( typeof state === "boolean" ) { + return state ? this.show() : this.hide(); + } + + return this.each( function() { + if ( isHiddenWithinTree( this ) ) { + jQuery( this ).show(); + } else { + jQuery( this ).hide(); + } + } ); + } +} ); +var rcheckableType = ( /^(?:checkbox|radio)$/i ); + +var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]*)/i ); + +var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i ); + + + +( function() { + var fragment = document.createDocumentFragment(), + div = fragment.appendChild( document.createElement( "div" ) ), + input = document.createElement( "input" ); + + // Support: Android 4.0 - 4.3 only + // Check state lost if the name is set (#11217) + // Support: Windows Web Apps (WWA) + // `name` and `type` must use .setAttribute for WWA (#14901) + input.setAttribute( "type", "radio" ); + input.setAttribute( "checked", "checked" ); + input.setAttribute( "name", "t" ); + + div.appendChild( input ); + + // Support: Android <=4.1 only + // Older WebKit doesn't clone checked state correctly in fragments + support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Support: IE <=11 only + // Make sure textarea (and checkbox) defaultValue is properly cloned + div.innerHTML = ""; + support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; + + // Support: IE <=9 only + // IE <=9 replaces "; + support.option = !!div.lastChild; +} )(); + + +// We have to close these tags to support XHTML (#13200) +var wrapMap = { + + // XHTML parsers do not magically insert elements in the + // same way that tag soup parsers do. So we cannot shorten + // this by omitting or other required elements. + thead: [ 1, "", "
" ], + col: [ 2, "", "
" ], + tr: [ 2, "", "
" ], + td: [ 3, "", "
" ], + + _default: [ 0, "", "" ] +}; + +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + +// Support: IE <=9 only +if ( !support.option ) { + wrapMap.optgroup = wrapMap.option = [ 1, "" ]; +} + + +function getAll( context, tag ) { + + // Support: IE <=9 - 11 only + // Use typeof to avoid zero-argument method invocation on host objects (#15151) + var ret; + + if ( typeof context.getElementsByTagName !== "undefined" ) { + ret = context.getElementsByTagName( tag || "*" ); + + } else if ( typeof context.querySelectorAll !== "undefined" ) { + ret = context.querySelectorAll( tag || "*" ); + + } else { + ret = []; + } + + if ( tag === undefined || tag && nodeName( context, tag ) ) { + return jQuery.merge( [ context ], ret ); + } + + return ret; +} + + +// Mark scripts as having already been evaluated +function setGlobalEval( elems, refElements ) { + var i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + dataPriv.set( + elems[ i ], + "globalEval", + !refElements || dataPriv.get( refElements[ i ], "globalEval" ) + ); + } +} + + +var rhtml = /<|&#?\w+;/; + +function buildFragment( elems, context, scripts, selection, ignored ) { + var elem, tmp, tag, wrap, attached, j, + fragment = context.createDocumentFragment(), + nodes = [], + i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + elem = elems[ i ]; + + if ( elem || elem === 0 ) { + + // Add nodes directly + if ( toType( elem ) === "object" ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); + + // Convert non-html into a text node + } else if ( !rhtml.test( elem ) ) { + nodes.push( context.createTextNode( elem ) ); + + // Convert html into DOM nodes + } else { + tmp = tmp || fragment.appendChild( context.createElement( "div" ) ); + + // Deserialize a standard representation + tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); + wrap = wrapMap[ tag ] || wrapMap._default; + tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ]; + + // Descend through wrappers to the right content + j = wrap[ 0 ]; + while ( j-- ) { + tmp = tmp.lastChild; + } + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, tmp.childNodes ); + + // Remember the top-level container + tmp = fragment.firstChild; + + // Ensure the created nodes are orphaned (#12392) + tmp.textContent = ""; + } + } + } + + // Remove wrapper from fragment + fragment.textContent = ""; + + i = 0; + while ( ( elem = nodes[ i++ ] ) ) { + + // Skip elements already in the context collection (trac-4087) + if ( selection && jQuery.inArray( elem, selection ) > -1 ) { + if ( ignored ) { + ignored.push( elem ); + } + continue; + } + + attached = isAttached( elem ); + + // Append to fragment + tmp = getAll( fragment.appendChild( elem ), "script" ); + + // Preserve script evaluation history + if ( attached ) { + setGlobalEval( tmp ); + } + + // Capture executables + if ( scripts ) { + j = 0; + while ( ( elem = tmp[ j++ ] ) ) { + if ( rscriptType.test( elem.type || "" ) ) { + scripts.push( elem ); + } + } + } + } + + return fragment; +} + + +var + rkeyEvent = /^key/, + rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, + rtypenamespace = /^([^.]*)(?:\.(.+)|)/; + +function returnTrue() { + return true; +} + +function returnFalse() { + return false; +} + +// Support: IE <=9 - 11+ +// focus() and blur() are asynchronous, except when they are no-op. +// So expect focus to be synchronous when the element is already active, +// and blur to be synchronous when the element is not already active. +// (focus and blur are always synchronous in other supported browsers, +// this just defines when we can count on it). +function expectSync( elem, type ) { + return ( elem === safeActiveElement() ) === ( type === "focus" ); +} + +// Support: IE <=9 only +// Accessing document.activeElement can throw unexpectedly +// https://bugs.jquery.com/ticket/13393 +function safeActiveElement() { + try { + return document.activeElement; + } catch ( err ) { } +} + +function on( elem, types, selector, data, fn, one ) { + var origFn, type; + + // Types can be a map of types/handlers + if ( typeof types === "object" ) { + + // ( types-Object, selector, data ) + if ( typeof selector !== "string" ) { + + // ( types-Object, data ) + data = data || selector; + selector = undefined; + } + for ( type in types ) { + on( elem, type, selector, data, types[ type ], one ); + } + return elem; + } + + if ( data == null && fn == null ) { + + // ( types, fn ) + fn = selector; + data = selector = undefined; + } else if ( fn == null ) { + if ( typeof selector === "string" ) { + + // ( types, selector, fn ) + fn = data; + data = undefined; + } else { + + // ( types, data, fn ) + fn = data; + data = selector; + selector = undefined; + } + } + if ( fn === false ) { + fn = returnFalse; + } else if ( !fn ) { + return elem; + } + + if ( one === 1 ) { + origFn = fn; + fn = function( event ) { + + // Can use an empty set, since event contains the info + jQuery().off( event ); + return origFn.apply( this, arguments ); + }; + + // Use same guid so caller can remove using origFn + fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); + } + return elem.each( function() { + jQuery.event.add( this, types, fn, data, selector ); + } ); +} + +/* + * Helper functions for managing events -- not part of the public interface. + * Props to Dean Edwards' addEvent library for many of the ideas. + */ +jQuery.event = { + + global: {}, + + add: function( elem, types, handler, data, selector ) { + + var handleObjIn, eventHandle, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.get( elem ); + + // Only attach events to objects that accept data + if ( !acceptData( elem ) ) { + return; + } + + // Caller can pass in an object of custom data in lieu of the handler + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + selector = handleObjIn.selector; + } + + // Ensure that invalid selectors throw exceptions at attach time + // Evaluate against documentElement in case elem is a non-element node (e.g., document) + if ( selector ) { + jQuery.find.matchesSelector( documentElement, selector ); + } + + // Make sure that the handler has a unique ID, used to find/remove it later + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure and main handler, if this is the first + if ( !( events = elemData.events ) ) { + events = elemData.events = Object.create( null ); + } + if ( !( eventHandle = elemData.handle ) ) { + eventHandle = elemData.handle = function( e ) { + + // Discard the second event of a jQuery.event.trigger() and + // when an event is called after a page has unloaded + return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ? + jQuery.event.dispatch.apply( elem, arguments ) : undefined; + }; + } + + // Handle multiple events separated by a space + types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // There *must* be a type, no attaching namespace-only handlers + if ( !type ) { + continue; + } + + // If event changes its type, use the special event handlers for the changed type + special = jQuery.event.special[ type ] || {}; + + // If selector defined, determine special event api type, otherwise given type + type = ( selector ? special.delegateType : special.bindType ) || type; + + // Update special based on newly reset type + special = jQuery.event.special[ type ] || {}; + + // handleObj is passed to all event handlers + handleObj = jQuery.extend( { + type: type, + origType: origType, + data: data, + handler: handler, + guid: handler.guid, + selector: selector, + needsContext: selector && jQuery.expr.match.needsContext.test( selector ), + namespace: namespaces.join( "." ) + }, handleObjIn ); + + // Init the event handler queue if we're the first + if ( !( handlers = events[ type ] ) ) { + handlers = events[ type ] = []; + handlers.delegateCount = 0; + + // Only use addEventListener if the special events handler returns false + if ( !special.setup || + special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add to the element's handler list, delegates in front + if ( selector ) { + handlers.splice( handlers.delegateCount++, 0, handleObj ); + } else { + handlers.push( handleObj ); + } + + // Keep track of which events have ever been used, for event optimization + jQuery.event.global[ type ] = true; + } + + }, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, selector, mappedTypes ) { + + var j, origCount, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.hasData( elem ) && dataPriv.get( elem ); + + if ( !elemData || !( events = elemData.events ) ) { + return; + } + + // Once for each type.namespace in types; type may be omitted + types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // Unbind all events (on this namespace, if provided) for the element + if ( !type ) { + for ( type in events ) { + jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); + } + continue; + } + + special = jQuery.event.special[ type ] || {}; + type = ( selector ? special.delegateType : special.bindType ) || type; + handlers = events[ type ] || []; + tmp = tmp[ 2 ] && + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ); + + // Remove matching events + origCount = j = handlers.length; + while ( j-- ) { + handleObj = handlers[ j ]; + + if ( ( mappedTypes || origType === handleObj.origType ) && + ( !handler || handler.guid === handleObj.guid ) && + ( !tmp || tmp.test( handleObj.namespace ) ) && + ( !selector || selector === handleObj.selector || + selector === "**" && handleObj.selector ) ) { + handlers.splice( j, 1 ); + + if ( handleObj.selector ) { + handlers.delegateCount--; + } + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + } + + // Remove generic event handler if we removed something and no more handlers exist + // (avoids potential for endless recursion during removal of special event handlers) + if ( origCount && !handlers.length ) { + if ( !special.teardown || + special.teardown.call( elem, namespaces, elemData.handle ) === false ) { + + jQuery.removeEvent( elem, type, elemData.handle ); + } + + delete events[ type ]; + } + } + + // Remove data and the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + dataPriv.remove( elem, "handle events" ); + } + }, + + dispatch: function( nativeEvent ) { + + var i, j, ret, matched, handleObj, handlerQueue, + args = new Array( arguments.length ), + + // Make a writable jQuery.Event from the native event object + event = jQuery.event.fix( nativeEvent ), + + handlers = ( + dataPriv.get( this, "events" ) || Object.create( null ) + )[ event.type ] || [], + special = jQuery.event.special[ event.type ] || {}; + + // Use the fix-ed jQuery.Event rather than the (read-only) native event + args[ 0 ] = event; + + for ( i = 1; i < arguments.length; i++ ) { + args[ i ] = arguments[ i ]; + } + + event.delegateTarget = this; + + // Call the preDispatch hook for the mapped type, and let it bail if desired + if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { + return; + } + + // Determine handlers + handlerQueue = jQuery.event.handlers.call( this, event, handlers ); + + // Run delegates first; they may want to stop propagation beneath us + i = 0; + while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) { + event.currentTarget = matched.elem; + + j = 0; + while ( ( handleObj = matched.handlers[ j++ ] ) && + !event.isImmediatePropagationStopped() ) { + + // If the event is namespaced, then each handler is only invoked if it is + // specially universal or its namespaces are a superset of the event's. + if ( !event.rnamespace || handleObj.namespace === false || + event.rnamespace.test( handleObj.namespace ) ) { + + event.handleObj = handleObj; + event.data = handleObj.data; + + ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle || + handleObj.handler ).apply( matched.elem, args ); + + if ( ret !== undefined ) { + if ( ( event.result = ret ) === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + } + } + } + + // Call the postDispatch hook for the mapped type + if ( special.postDispatch ) { + special.postDispatch.call( this, event ); + } + + return event.result; + }, + + handlers: function( event, handlers ) { + var i, handleObj, sel, matchedHandlers, matchedSelectors, + handlerQueue = [], + delegateCount = handlers.delegateCount, + cur = event.target; + + // Find delegate handlers + if ( delegateCount && + + // Support: IE <=9 + // Black-hole SVG instance trees (trac-13180) + cur.nodeType && + + // Support: Firefox <=42 + // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861) + // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click + // Support: IE 11 only + // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343) + !( event.type === "click" && event.button >= 1 ) ) { + + for ( ; cur !== this; cur = cur.parentNode || this ) { + + // Don't check non-elements (#13208) + // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) + if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) { + matchedHandlers = []; + matchedSelectors = {}; + for ( i = 0; i < delegateCount; i++ ) { + handleObj = handlers[ i ]; + + // Don't conflict with Object.prototype properties (#13203) + sel = handleObj.selector + " "; + + if ( matchedSelectors[ sel ] === undefined ) { + matchedSelectors[ sel ] = handleObj.needsContext ? + jQuery( sel, this ).index( cur ) > -1 : + jQuery.find( sel, this, null, [ cur ] ).length; + } + if ( matchedSelectors[ sel ] ) { + matchedHandlers.push( handleObj ); + } + } + if ( matchedHandlers.length ) { + handlerQueue.push( { elem: cur, handlers: matchedHandlers } ); + } + } + } + } + + // Add the remaining (directly-bound) handlers + cur = this; + if ( delegateCount < handlers.length ) { + handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } ); + } + + return handlerQueue; + }, + + addProp: function( name, hook ) { + Object.defineProperty( jQuery.Event.prototype, name, { + enumerable: true, + configurable: true, + + get: isFunction( hook ) ? + function() { + if ( this.originalEvent ) { + return hook( this.originalEvent ); + } + } : + function() { + if ( this.originalEvent ) { + return this.originalEvent[ name ]; + } + }, + + set: function( value ) { + Object.defineProperty( this, name, { + enumerable: true, + configurable: true, + writable: true, + value: value + } ); + } + } ); + }, + + fix: function( originalEvent ) { + return originalEvent[ jQuery.expando ] ? + originalEvent : + new jQuery.Event( originalEvent ); + }, + + special: { + load: { + + // Prevent triggered image.load events from bubbling to window.load + noBubble: true + }, + click: { + + // Utilize native event to ensure correct state for checkable inputs + setup: function( data ) { + + // For mutual compressibility with _default, replace `this` access with a local var. + // `|| data` is dead code meant only to preserve the variable through minification. + var el = this || data; + + // Claim the first handler + if ( rcheckableType.test( el.type ) && + el.click && nodeName( el, "input" ) ) { + + // dataPriv.set( el, "click", ... ) + leverageNative( el, "click", returnTrue ); + } + + // Return false to allow normal processing in the caller + return false; + }, + trigger: function( data ) { + + // For mutual compressibility with _default, replace `this` access with a local var. + // `|| data` is dead code meant only to preserve the variable through minification. + var el = this || data; + + // Force setup before triggering a click + if ( rcheckableType.test( el.type ) && + el.click && nodeName( el, "input" ) ) { + + leverageNative( el, "click" ); + } + + // Return non-false to allow normal event-path propagation + return true; + }, + + // For cross-browser consistency, suppress native .click() on links + // Also prevent it if we're currently inside a leveraged native-event stack + _default: function( event ) { + var target = event.target; + return rcheckableType.test( target.type ) && + target.click && nodeName( target, "input" ) && + dataPriv.get( target, "click" ) || + nodeName( target, "a" ); + } + }, + + beforeunload: { + postDispatch: function( event ) { + + // Support: Firefox 20+ + // Firefox doesn't alert if the returnValue field is not set. + if ( event.result !== undefined && event.originalEvent ) { + event.originalEvent.returnValue = event.result; + } + } + } + } +}; + +// Ensure the presence of an event listener that handles manually-triggered +// synthetic events by interrupting progress until reinvoked in response to +// *native* events that it fires directly, ensuring that state changes have +// already occurred before other listeners are invoked. +function leverageNative( el, type, expectSync ) { + + // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add + if ( !expectSync ) { + if ( dataPriv.get( el, type ) === undefined ) { + jQuery.event.add( el, type, returnTrue ); + } + return; + } + + // Register the controller as a special universal handler for all event namespaces + dataPriv.set( el, type, false ); + jQuery.event.add( el, type, { + namespace: false, + handler: function( event ) { + var notAsync, result, + saved = dataPriv.get( this, type ); + + if ( ( event.isTrigger & 1 ) && this[ type ] ) { + + // Interrupt processing of the outer synthetic .trigger()ed event + // Saved data should be false in such cases, but might be a leftover capture object + // from an async native handler (gh-4350) + if ( !saved.length ) { + + // Store arguments for use when handling the inner native event + // There will always be at least one argument (an event object), so this array + // will not be confused with a leftover capture object. + saved = slice.call( arguments ); + dataPriv.set( this, type, saved ); + + // Trigger the native event and capture its result + // Support: IE <=9 - 11+ + // focus() and blur() are asynchronous + notAsync = expectSync( this, type ); + this[ type ](); + result = dataPriv.get( this, type ); + if ( saved !== result || notAsync ) { + dataPriv.set( this, type, false ); + } else { + result = {}; + } + if ( saved !== result ) { + + // Cancel the outer synthetic event + event.stopImmediatePropagation(); + event.preventDefault(); + return result.value; + } + + // If this is an inner synthetic event for an event with a bubbling surrogate + // (focus or blur), assume that the surrogate already propagated from triggering the + // native event and prevent that from happening again here. + // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the + // bubbling surrogate propagates *after* the non-bubbling base), but that seems + // less bad than duplication. + } else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) { + event.stopPropagation(); + } + + // If this is a native event triggered above, everything is now in order + // Fire an inner synthetic event with the original arguments + } else if ( saved.length ) { + + // ...and capture the result + dataPriv.set( this, type, { + value: jQuery.event.trigger( + + // Support: IE <=9 - 11+ + // Extend with the prototype to reset the above stopImmediatePropagation() + jQuery.extend( saved[ 0 ], jQuery.Event.prototype ), + saved.slice( 1 ), + this + ) + } ); + + // Abort handling of the native event + event.stopImmediatePropagation(); + } + } + } ); +} + +jQuery.removeEvent = function( elem, type, handle ) { + + // This "if" is needed for plain objects + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle ); + } +}; + +jQuery.Event = function( src, props ) { + + // Allow instantiation without the 'new' keyword + if ( !( this instanceof jQuery.Event ) ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = src.defaultPrevented || + src.defaultPrevented === undefined && + + // Support: Android <=2.3 only + src.returnValue === false ? + returnTrue : + returnFalse; + + // Create target properties + // Support: Safari <=6 - 7 only + // Target should not be a text node (#504, #13143) + this.target = ( src.target && src.target.nodeType === 3 ) ? + src.target.parentNode : + src.target; + + this.currentTarget = src.currentTarget; + this.relatedTarget = src.relatedTarget; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || Date.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + constructor: jQuery.Event, + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse, + isSimulated: false, + + preventDefault: function() { + var e = this.originalEvent; + + this.isDefaultPrevented = returnTrue; + + if ( e && !this.isSimulated ) { + e.preventDefault(); + } + }, + stopPropagation: function() { + var e = this.originalEvent; + + this.isPropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopPropagation(); + } + }, + stopImmediatePropagation: function() { + var e = this.originalEvent; + + this.isImmediatePropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopImmediatePropagation(); + } + + this.stopPropagation(); + } +}; + +// Includes all common event props including KeyEvent and MouseEvent specific props +jQuery.each( { + altKey: true, + bubbles: true, + cancelable: true, + changedTouches: true, + ctrlKey: true, + detail: true, + eventPhase: true, + metaKey: true, + pageX: true, + pageY: true, + shiftKey: true, + view: true, + "char": true, + code: true, + charCode: true, + key: true, + keyCode: true, + button: true, + buttons: true, + clientX: true, + clientY: true, + offsetX: true, + offsetY: true, + pointerId: true, + pointerType: true, + screenX: true, + screenY: true, + targetTouches: true, + toElement: true, + touches: true, + + which: function( event ) { + var button = event.button; + + // Add which for key events + if ( event.which == null && rkeyEvent.test( event.type ) ) { + return event.charCode != null ? event.charCode : event.keyCode; + } + + // Add which for click: 1 === left; 2 === middle; 3 === right + if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) { + if ( button & 1 ) { + return 1; + } + + if ( button & 2 ) { + return 3; + } + + if ( button & 4 ) { + return 2; + } + + return 0; + } + + return event.which; + } +}, jQuery.event.addProp ); + +jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) { + jQuery.event.special[ type ] = { + + // Utilize native event if possible so blur/focus sequence is correct + setup: function() { + + // Claim the first handler + // dataPriv.set( this, "focus", ... ) + // dataPriv.set( this, "blur", ... ) + leverageNative( this, type, expectSync ); + + // Return false to allow normal processing in the caller + return false; + }, + trigger: function() { + + // Force setup before trigger + leverageNative( this, type ); + + // Return non-false to allow normal event-path propagation + return true; + }, + + delegateType: delegateType + }; +} ); + +// Create mouseenter/leave events using mouseover/out and event-time checks +// so that event delegation works in jQuery. +// Do the same for pointerenter/pointerleave and pointerover/pointerout +// +// Support: Safari 7 only +// Safari sends mouseenter too often; see: +// https://bugs.chromium.org/p/chromium/issues/detail?id=470258 +// for the description of the bug (it existed in older Chrome versions as well). +jQuery.each( { + mouseenter: "mouseover", + mouseleave: "mouseout", + pointerenter: "pointerover", + pointerleave: "pointerout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + delegateType: fix, + bindType: fix, + + handle: function( event ) { + var ret, + target = this, + related = event.relatedTarget, + handleObj = event.handleObj; + + // For mouseenter/leave call the handler if related is outside the target. + // NB: No relatedTarget if the mouse left/entered the browser window + if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) { + event.type = handleObj.origType; + ret = handleObj.handler.apply( this, arguments ); + event.type = fix; + } + return ret; + } + }; +} ); + +jQuery.fn.extend( { + + on: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn ); + }, + one: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn, 1 ); + }, + off: function( types, selector, fn ) { + var handleObj, type; + if ( types && types.preventDefault && types.handleObj ) { + + // ( event ) dispatched jQuery.Event + handleObj = types.handleObj; + jQuery( types.delegateTarget ).off( + handleObj.namespace ? + handleObj.origType + "." + handleObj.namespace : + handleObj.origType, + handleObj.selector, + handleObj.handler + ); + return this; + } + if ( typeof types === "object" ) { + + // ( types-object [, selector] ) + for ( type in types ) { + this.off( type, selector, types[ type ] ); + } + return this; + } + if ( selector === false || typeof selector === "function" ) { + + // ( types [, fn] ) + fn = selector; + selector = undefined; + } + if ( fn === false ) { + fn = returnFalse; + } + return this.each( function() { + jQuery.event.remove( this, types, fn, selector ); + } ); + } +} ); + + +var + + // Support: IE <=10 - 11, Edge 12 - 13 only + // In IE/Edge using regex groups here causes severe slowdowns. + // See https://connect.microsoft.com/IE/feedback/details/1736512/ + rnoInnerhtml = /\s*$/g; + +// Prefer a tbody over its parent table for containing new rows +function manipulationTarget( elem, content ) { + if ( nodeName( elem, "table" ) && + nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) { + + return jQuery( elem ).children( "tbody" )[ 0 ] || elem; + } + + return elem; +} + +// Replace/restore the type attribute of script elements for safe DOM manipulation +function disableScript( elem ) { + elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type; + return elem; +} +function restoreScript( elem ) { + if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) { + elem.type = elem.type.slice( 5 ); + } else { + elem.removeAttribute( "type" ); + } + + return elem; +} + +function cloneCopyEvent( src, dest ) { + var i, l, type, pdataOld, udataOld, udataCur, events; + + if ( dest.nodeType !== 1 ) { + return; + } + + // 1. Copy private data: events, handlers, etc. + if ( dataPriv.hasData( src ) ) { + pdataOld = dataPriv.get( src ); + events = pdataOld.events; + + if ( events ) { + dataPriv.remove( dest, "handle events" ); + + for ( type in events ) { + for ( i = 0, l = events[ type ].length; i < l; i++ ) { + jQuery.event.add( dest, type, events[ type ][ i ] ); + } + } + } + } + + // 2. Copy user data + if ( dataUser.hasData( src ) ) { + udataOld = dataUser.access( src ); + udataCur = jQuery.extend( {}, udataOld ); + + dataUser.set( dest, udataCur ); + } +} + +// Fix IE bugs, see support tests +function fixInput( src, dest ) { + var nodeName = dest.nodeName.toLowerCase(); + + // Fails to persist the checked state of a cloned checkbox or radio button. + if ( nodeName === "input" && rcheckableType.test( src.type ) ) { + dest.checked = src.checked; + + // Fails to return the selected option to the default selected state when cloning options + } else if ( nodeName === "input" || nodeName === "textarea" ) { + dest.defaultValue = src.defaultValue; + } +} + +function domManip( collection, args, callback, ignored ) { + + // Flatten any nested arrays + args = flat( args ); + + var fragment, first, scripts, hasScripts, node, doc, + i = 0, + l = collection.length, + iNoClone = l - 1, + value = args[ 0 ], + valueIsFunction = isFunction( value ); + + // We can't cloneNode fragments that contain checked, in WebKit + if ( valueIsFunction || + ( l > 1 && typeof value === "string" && + !support.checkClone && rchecked.test( value ) ) ) { + return collection.each( function( index ) { + var self = collection.eq( index ); + if ( valueIsFunction ) { + args[ 0 ] = value.call( this, index, self.html() ); + } + domManip( self, args, callback, ignored ); + } ); + } + + if ( l ) { + fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored ); + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; + } + + // Require either new content or an interest in ignored elements to invoke the callback + if ( first || ignored ) { + scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); + hasScripts = scripts.length; + + // Use the original fragment for the last item + // instead of the first because it can end up + // being emptied incorrectly in certain situations (#8070). + for ( ; i < l; i++ ) { + node = fragment; + + if ( i !== iNoClone ) { + node = jQuery.clone( node, true, true ); + + // Keep references to cloned scripts for later restoration + if ( hasScripts ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( scripts, getAll( node, "script" ) ); + } + } + + callback.call( collection[ i ], node, i ); + } + + if ( hasScripts ) { + doc = scripts[ scripts.length - 1 ].ownerDocument; + + // Reenable scripts + jQuery.map( scripts, restoreScript ); + + // Evaluate executable scripts on first document insertion + for ( i = 0; i < hasScripts; i++ ) { + node = scripts[ i ]; + if ( rscriptType.test( node.type || "" ) && + !dataPriv.access( node, "globalEval" ) && + jQuery.contains( doc, node ) ) { + + if ( node.src && ( node.type || "" ).toLowerCase() !== "module" ) { + + // Optional AJAX dependency, but won't run scripts if not present + if ( jQuery._evalUrl && !node.noModule ) { + jQuery._evalUrl( node.src, { + nonce: node.nonce || node.getAttribute( "nonce" ) + }, doc ); + } + } else { + DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc ); + } + } + } + } + } + } + + return collection; +} + +function remove( elem, selector, keepData ) { + var node, + nodes = selector ? jQuery.filter( selector, elem ) : elem, + i = 0; + + for ( ; ( node = nodes[ i ] ) != null; i++ ) { + if ( !keepData && node.nodeType === 1 ) { + jQuery.cleanData( getAll( node ) ); + } + + if ( node.parentNode ) { + if ( keepData && isAttached( node ) ) { + setGlobalEval( getAll( node, "script" ) ); + } + node.parentNode.removeChild( node ); + } + } + + return elem; +} + +jQuery.extend( { + htmlPrefilter: function( html ) { + return html; + }, + + clone: function( elem, dataAndEvents, deepDataAndEvents ) { + var i, l, srcElements, destElements, + clone = elem.cloneNode( true ), + inPage = isAttached( elem ); + + // Fix IE cloning issues + if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && + !jQuery.isXMLDoc( elem ) ) { + + // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2 + destElements = getAll( clone ); + srcElements = getAll( elem ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + fixInput( srcElements[ i ], destElements[ i ] ); + } + } + + // Copy the events from the original to the clone + if ( dataAndEvents ) { + if ( deepDataAndEvents ) { + srcElements = srcElements || getAll( elem ); + destElements = destElements || getAll( clone ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + cloneCopyEvent( srcElements[ i ], destElements[ i ] ); + } + } else { + cloneCopyEvent( elem, clone ); + } + } + + // Preserve script evaluation history + destElements = getAll( clone, "script" ); + if ( destElements.length > 0 ) { + setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); + } + + // Return the cloned set + return clone; + }, + + cleanData: function( elems ) { + var data, elem, type, + special = jQuery.event.special, + i = 0; + + for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) { + if ( acceptData( elem ) ) { + if ( ( data = elem[ dataPriv.expando ] ) ) { + if ( data.events ) { + for ( type in data.events ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); + + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } + } + } + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataPriv.expando ] = undefined; + } + if ( elem[ dataUser.expando ] ) { + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataUser.expando ] = undefined; + } + } + } + } +} ); + +jQuery.fn.extend( { + detach: function( selector ) { + return remove( this, selector, true ); + }, + + remove: function( selector ) { + return remove( this, selector ); + }, + + text: function( value ) { + return access( this, function( value ) { + return value === undefined ? + jQuery.text( this ) : + this.empty().each( function() { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + this.textContent = value; + } + } ); + }, null, value, arguments.length ); + }, + + append: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.appendChild( elem ); + } + } ); + }, + + prepend: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.insertBefore( elem, target.firstChild ); + } + } ); + }, + + before: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this ); + } + } ); + }, + + after: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + } + } ); + }, + + empty: function() { + var elem, + i = 0; + + for ( ; ( elem = this[ i ] ) != null; i++ ) { + if ( elem.nodeType === 1 ) { + + // Prevent memory leaks + jQuery.cleanData( getAll( elem, false ) ); + + // Remove any remaining nodes + elem.textContent = ""; + } + } + + return this; + }, + + clone: function( dataAndEvents, deepDataAndEvents ) { + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + + return this.map( function() { + return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); + } ); + }, + + html: function( value ) { + return access( this, function( value ) { + var elem = this[ 0 ] || {}, + i = 0, + l = this.length; + + if ( value === undefined && elem.nodeType === 1 ) { + return elem.innerHTML; + } + + // See if we can take a shortcut and just use innerHTML + if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { + + value = jQuery.htmlPrefilter( value ); + + try { + for ( ; i < l; i++ ) { + elem = this[ i ] || {}; + + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + elem.innerHTML = value; + } + } + + elem = 0; + + // If using innerHTML throws an exception, use the fallback method + } catch ( e ) {} + } + + if ( elem ) { + this.empty().append( value ); + } + }, null, value, arguments.length ); + }, + + replaceWith: function() { + var ignored = []; + + // Make the changes, replacing each non-ignored context element with the new content + return domManip( this, arguments, function( elem ) { + var parent = this.parentNode; + + if ( jQuery.inArray( this, ignored ) < 0 ) { + jQuery.cleanData( getAll( this ) ); + if ( parent ) { + parent.replaceChild( elem, this ); + } + } + + // Force callback invocation + }, ignored ); + } +} ); + +jQuery.each( { + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" +}, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var elems, + ret = [], + insert = jQuery( selector ), + last = insert.length - 1, + i = 0; + + for ( ; i <= last; i++ ) { + elems = i === last ? this : this.clone( true ); + jQuery( insert[ i ] )[ original ]( elems ); + + // Support: Android <=4.0 only, PhantomJS 1 only + // .get() because push.apply(_, arraylike) throws on ancient WebKit + push.apply( ret, elems.get() ); + } + + return this.pushStack( ret ); + }; +} ); +var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); + +var getStyles = function( elem ) { + + // Support: IE <=11 only, Firefox <=30 (#15098, #14150) + // IE throws on elements created in popups + // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" + var view = elem.ownerDocument.defaultView; + + if ( !view || !view.opener ) { + view = window; + } + + return view.getComputedStyle( elem ); + }; + +var swap = function( elem, options, callback ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.call( elem ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; +}; + + +var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); + + + +( function() { + + // Executing both pixelPosition & boxSizingReliable tests require only one layout + // so they're executed at the same time to save the second computation. + function computeStyleTests() { + + // This is a singleton, we need to execute it only once + if ( !div ) { + return; + } + + container.style.cssText = "position:absolute;left:-11111px;width:60px;" + + "margin-top:1px;padding:0;border:0"; + div.style.cssText = + "position:relative;display:block;box-sizing:border-box;overflow:scroll;" + + "margin:auto;border:1px;padding:1px;" + + "width:60%;top:1%"; + documentElement.appendChild( container ).appendChild( div ); + + var divStyle = window.getComputedStyle( div ); + pixelPositionVal = divStyle.top !== "1%"; + + // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 + reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12; + + // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3 + // Some styles come back with percentage values, even though they shouldn't + div.style.right = "60%"; + pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36; + + // Support: IE 9 - 11 only + // Detect misreporting of content dimensions for box-sizing:border-box elements + boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36; + + // Support: IE 9 only + // Detect overflow:scroll screwiness (gh-3699) + // Support: Chrome <=64 + // Don't get tricked when zoom affects offsetWidth (gh-4029) + div.style.position = "absolute"; + scrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12; + + documentElement.removeChild( container ); + + // Nullify the div so it wouldn't be stored in the memory and + // it will also be a sign that checks already performed + div = null; + } + + function roundPixelMeasures( measure ) { + return Math.round( parseFloat( measure ) ); + } + + var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal, + reliableTrDimensionsVal, reliableMarginLeftVal, + container = document.createElement( "div" ), + div = document.createElement( "div" ); + + // Finish early in limited (non-browser) environments + if ( !div.style ) { + return; + } + + // Support: IE <=9 - 11 only + // Style of cloned element affects source element cloned (#8908) + div.style.backgroundClip = "content-box"; + div.cloneNode( true ).style.backgroundClip = ""; + support.clearCloneStyle = div.style.backgroundClip === "content-box"; + + jQuery.extend( support, { + boxSizingReliable: function() { + computeStyleTests(); + return boxSizingReliableVal; + }, + pixelBoxStyles: function() { + computeStyleTests(); + return pixelBoxStylesVal; + }, + pixelPosition: function() { + computeStyleTests(); + return pixelPositionVal; + }, + reliableMarginLeft: function() { + computeStyleTests(); + return reliableMarginLeftVal; + }, + scrollboxSize: function() { + computeStyleTests(); + return scrollboxSizeVal; + }, + + // Support: IE 9 - 11+, Edge 15 - 18+ + // IE/Edge misreport `getComputedStyle` of table rows with width/height + // set in CSS while `offset*` properties report correct values. + // Behavior in IE 9 is more subtle than in newer versions & it passes + // some versions of this test; make sure not to make it pass there! + reliableTrDimensions: function() { + var table, tr, trChild, trStyle; + if ( reliableTrDimensionsVal == null ) { + table = document.createElement( "table" ); + tr = document.createElement( "tr" ); + trChild = document.createElement( "div" ); + + table.style.cssText = "position:absolute;left:-11111px"; + tr.style.height = "1px"; + trChild.style.height = "9px"; + + documentElement + .appendChild( table ) + .appendChild( tr ) + .appendChild( trChild ); + + trStyle = window.getComputedStyle( tr ); + reliableTrDimensionsVal = parseInt( trStyle.height ) > 3; + + documentElement.removeChild( table ); + } + return reliableTrDimensionsVal; + } + } ); +} )(); + + +function curCSS( elem, name, computed ) { + var width, minWidth, maxWidth, ret, + + // Support: Firefox 51+ + // Retrieving style before computed somehow + // fixes an issue with getting wrong values + // on detached elements + style = elem.style; + + computed = computed || getStyles( elem ); + + // getPropertyValue is needed for: + // .css('filter') (IE 9 only, #12537) + // .css('--customProperty) (#3144) + if ( computed ) { + ret = computed.getPropertyValue( name ) || computed[ name ]; + + if ( ret === "" && !isAttached( elem ) ) { + ret = jQuery.style( elem, name ); + } + + // A tribute to the "awesome hack by Dean Edwards" + // Android Browser returns percentage for some values, + // but width seems to be reliably pixels. + // This is against the CSSOM draft spec: + // https://drafts.csswg.org/cssom/#resolved-values + if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) { + + // Remember the original values + width = style.width; + minWidth = style.minWidth; + maxWidth = style.maxWidth; + + // Put in the new values to get a computed value out + style.minWidth = style.maxWidth = style.width = ret; + ret = computed.width; + + // Revert the changed values + style.width = width; + style.minWidth = minWidth; + style.maxWidth = maxWidth; + } + } + + return ret !== undefined ? + + // Support: IE <=9 - 11 only + // IE returns zIndex value as an integer. + ret + "" : + ret; +} + + +function addGetHookIf( conditionFn, hookFn ) { + + // Define the hook, we'll check on the first run if it's really needed. + return { + get: function() { + if ( conditionFn() ) { + + // Hook not needed (or it's not possible to use it due + // to missing dependency), remove it. + delete this.get; + return; + } + + // Hook needed; redefine it so that the support test is not executed again. + return ( this.get = hookFn ).apply( this, arguments ); + } + }; +} + + +var cssPrefixes = [ "Webkit", "Moz", "ms" ], + emptyStyle = document.createElement( "div" ).style, + vendorProps = {}; + +// Return a vendor-prefixed property or undefined +function vendorPropName( name ) { + + // Check for vendor prefixed names + var capName = name[ 0 ].toUpperCase() + name.slice( 1 ), + i = cssPrefixes.length; + + while ( i-- ) { + name = cssPrefixes[ i ] + capName; + if ( name in emptyStyle ) { + return name; + } + } +} + +// Return a potentially-mapped jQuery.cssProps or vendor prefixed property +function finalPropName( name ) { + var final = jQuery.cssProps[ name ] || vendorProps[ name ]; + + if ( final ) { + return final; + } + if ( name in emptyStyle ) { + return name; + } + return vendorProps[ name ] = vendorPropName( name ) || name; +} + + +var + + // Swappable if display is none or starts with table + // except "table", "table-cell", or "table-caption" + // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display + rdisplayswap = /^(none|table(?!-c[ea]).+)/, + rcustomProp = /^--/, + cssShow = { position: "absolute", visibility: "hidden", display: "block" }, + cssNormalTransform = { + letterSpacing: "0", + fontWeight: "400" + }; + +function setPositiveNumber( _elem, value, subtract ) { + + // Any relative (+/-) values have already been + // normalized at this point + var matches = rcssNum.exec( value ); + return matches ? + + // Guard against undefined "subtract", e.g., when used as in cssHooks + Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) : + value; +} + +function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) { + var i = dimension === "width" ? 1 : 0, + extra = 0, + delta = 0; + + // Adjustment may not be necessary + if ( box === ( isBorderBox ? "border" : "content" ) ) { + return 0; + } + + for ( ; i < 4; i += 2 ) { + + // Both box models exclude margin + if ( box === "margin" ) { + delta += jQuery.css( elem, box + cssExpand[ i ], true, styles ); + } + + // If we get here with a content-box, we're seeking "padding" or "border" or "margin" + if ( !isBorderBox ) { + + // Add padding + delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + + // For "border" or "margin", add border + if ( box !== "padding" ) { + delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + + // But still keep track of it otherwise + } else { + extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + + // If we get here with a border-box (content + padding + border), we're seeking "content" or + // "padding" or "margin" + } else { + + // For "content", subtract padding + if ( box === "content" ) { + delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + } + + // For "content" or "padding", subtract border + if ( box !== "margin" ) { + delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } + } + + // Account for positive content-box scroll gutter when requested by providing computedVal + if ( !isBorderBox && computedVal >= 0 ) { + + // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border + // Assuming integer scroll gutter, subtract the rest and round down + delta += Math.max( 0, Math.ceil( + elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - + computedVal - + delta - + extra - + 0.5 + + // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter + // Use an explicit zero to avoid NaN (gh-3964) + ) ) || 0; + } + + return delta; +} + +function getWidthOrHeight( elem, dimension, extra ) { + + // Start with computed style + var styles = getStyles( elem ), + + // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322). + // Fake content-box until we know it's needed to know the true value. + boxSizingNeeded = !support.boxSizingReliable() || extra, + isBorderBox = boxSizingNeeded && + jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + valueIsBorderBox = isBorderBox, + + val = curCSS( elem, dimension, styles ), + offsetProp = "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ); + + // Support: Firefox <=54 + // Return a confounding non-pixel value or feign ignorance, as appropriate. + if ( rnumnonpx.test( val ) ) { + if ( !extra ) { + return val; + } + val = "auto"; + } + + + // Support: IE 9 - 11 only + // Use offsetWidth/offsetHeight for when box sizing is unreliable. + // In those cases, the computed value can be trusted to be border-box. + if ( ( !support.boxSizingReliable() && isBorderBox || + + // Support: IE 10 - 11+, Edge 15 - 18+ + // IE/Edge misreport `getComputedStyle` of table rows with width/height + // set in CSS while `offset*` properties report correct values. + // Interestingly, in some cases IE 9 doesn't suffer from this issue. + !support.reliableTrDimensions() && nodeName( elem, "tr" ) || + + // Fall back to offsetWidth/offsetHeight when value is "auto" + // This happens for inline elements with no explicit setting (gh-3571) + val === "auto" || + + // Support: Android <=4.1 - 4.3 only + // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) + !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) && + + // Make sure the element is visible & connected + elem.getClientRects().length ) { + + isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; + + // Where available, offsetWidth/offsetHeight approximate border box dimensions. + // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the + // retrieved value as a content box dimension. + valueIsBorderBox = offsetProp in elem; + if ( valueIsBorderBox ) { + val = elem[ offsetProp ]; + } + } + + // Normalize "" and auto + val = parseFloat( val ) || 0; + + // Adjust for the element's box model + return ( val + + boxModelAdjustment( + elem, + dimension, + extra || ( isBorderBox ? "border" : "content" ), + valueIsBorderBox, + styles, + + // Provide the current computed size to request scroll gutter calculation (gh-3589) + val + ) + ) + "px"; +} + +jQuery.extend( { + + // Add in style property hooks for overriding the default + // behavior of getting and setting a style property + cssHooks: { + opacity: { + get: function( elem, computed ) { + if ( computed ) { + + // We should always get a number back from opacity + var ret = curCSS( elem, "opacity" ); + return ret === "" ? "1" : ret; + } + } + } + }, + + // Don't automatically add "px" to these possibly-unitless properties + cssNumber: { + "animationIterationCount": true, + "columnCount": true, + "fillOpacity": true, + "flexGrow": true, + "flexShrink": true, + "fontWeight": true, + "gridArea": true, + "gridColumn": true, + "gridColumnEnd": true, + "gridColumnStart": true, + "gridRow": true, + "gridRowEnd": true, + "gridRowStart": true, + "lineHeight": true, + "opacity": true, + "order": true, + "orphans": true, + "widows": true, + "zIndex": true, + "zoom": true + }, + + // Add in properties whose names you wish to fix before + // setting or getting the value + cssProps: {}, + + // Get and set the style property on a DOM Node + style: function( elem, name, value, extra ) { + + // Don't set styles on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { + return; + } + + // Make sure that we're working with the right name + var ret, type, hooks, + origName = camelCase( name ), + isCustomProp = rcustomProp.test( name ), + style = elem.style; + + // Make sure that we're working with the right name. We don't + // want to query the value if it is a CSS custom property + // since they are user-defined. + if ( !isCustomProp ) { + name = finalPropName( origName ); + } + + // Gets hook for the prefixed version, then unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // Check if we're setting a value + if ( value !== undefined ) { + type = typeof value; + + // Convert "+=" or "-=" to relative numbers (#7345) + if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) { + value = adjustCSS( elem, name, ret ); + + // Fixes bug #9237 + type = "number"; + } + + // Make sure that null and NaN values aren't set (#7116) + if ( value == null || value !== value ) { + return; + } + + // If a number was passed in, add the unit (except for certain CSS properties) + // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append + // "px" to a few hardcoded values. + if ( type === "number" && !isCustomProp ) { + value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); + } + + // background-* props affect original clone's values + if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { + style[ name ] = "inherit"; + } + + // If a hook was provided, use that value, otherwise just set the specified value + if ( !hooks || !( "set" in hooks ) || + ( value = hooks.set( elem, value, extra ) ) !== undefined ) { + + if ( isCustomProp ) { + style.setProperty( name, value ); + } else { + style[ name ] = value; + } + } + + } else { + + // If a hook was provided get the non-computed value from there + if ( hooks && "get" in hooks && + ( ret = hooks.get( elem, false, extra ) ) !== undefined ) { + + return ret; + } + + // Otherwise just get the value from the style object + return style[ name ]; + } + }, + + css: function( elem, name, extra, styles ) { + var val, num, hooks, + origName = camelCase( name ), + isCustomProp = rcustomProp.test( name ); + + // Make sure that we're working with the right name. We don't + // want to modify the value if it is a CSS custom property + // since they are user-defined. + if ( !isCustomProp ) { + name = finalPropName( origName ); + } + + // Try prefixed name followed by the unprefixed name + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // If a hook was provided get the computed value from there + if ( hooks && "get" in hooks ) { + val = hooks.get( elem, true, extra ); + } + + // Otherwise, if a way to get the computed value exists, use that + if ( val === undefined ) { + val = curCSS( elem, name, styles ); + } + + // Convert "normal" to computed value + if ( val === "normal" && name in cssNormalTransform ) { + val = cssNormalTransform[ name ]; + } + + // Make numeric if forced or a qualifier was provided and val looks numeric + if ( extra === "" || extra ) { + num = parseFloat( val ); + return extra === true || isFinite( num ) ? num || 0 : val; + } + + return val; + } +} ); + +jQuery.each( [ "height", "width" ], function( _i, dimension ) { + jQuery.cssHooks[ dimension ] = { + get: function( elem, computed, extra ) { + if ( computed ) { + + // Certain elements can have dimension info if we invisibly show them + // but it must have a current display style that would benefit + return rdisplayswap.test( jQuery.css( elem, "display" ) ) && + + // Support: Safari 8+ + // Table columns in Safari have non-zero offsetWidth & zero + // getBoundingClientRect().width unless display is changed. + // Support: IE <=11 only + // Running getBoundingClientRect on a disconnected node + // in IE throws an error. + ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? + swap( elem, cssShow, function() { + return getWidthOrHeight( elem, dimension, extra ); + } ) : + getWidthOrHeight( elem, dimension, extra ); + } + }, + + set: function( elem, value, extra ) { + var matches, + styles = getStyles( elem ), + + // Only read styles.position if the test has a chance to fail + // to avoid forcing a reflow. + scrollboxSizeBuggy = !support.scrollboxSize() && + styles.position === "absolute", + + // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991) + boxSizingNeeded = scrollboxSizeBuggy || extra, + isBorderBox = boxSizingNeeded && + jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + subtract = extra ? + boxModelAdjustment( + elem, + dimension, + extra, + isBorderBox, + styles + ) : + 0; + + // Account for unreliable border-box dimensions by comparing offset* to computed and + // faking a content-box to get border and padding (gh-3699) + if ( isBorderBox && scrollboxSizeBuggy ) { + subtract -= Math.ceil( + elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - + parseFloat( styles[ dimension ] ) - + boxModelAdjustment( elem, dimension, "border", false, styles ) - + 0.5 + ); + } + + // Convert to pixels if value adjustment is needed + if ( subtract && ( matches = rcssNum.exec( value ) ) && + ( matches[ 3 ] || "px" ) !== "px" ) { + + elem.style[ dimension ] = value; + value = jQuery.css( elem, dimension ); + } + + return setPositiveNumber( elem, value, subtract ); + } + }; +} ); + +jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, + function( elem, computed ) { + if ( computed ) { + return ( parseFloat( curCSS( elem, "marginLeft" ) ) || + elem.getBoundingClientRect().left - + swap( elem, { marginLeft: 0 }, function() { + return elem.getBoundingClientRect().left; + } ) + ) + "px"; + } + } +); + +// These hooks are used by animate to expand properties +jQuery.each( { + margin: "", + padding: "", + border: "Width" +}, function( prefix, suffix ) { + jQuery.cssHooks[ prefix + suffix ] = { + expand: function( value ) { + var i = 0, + expanded = {}, + + // Assumes a single number if not a string + parts = typeof value === "string" ? value.split( " " ) : [ value ]; + + for ( ; i < 4; i++ ) { + expanded[ prefix + cssExpand[ i ] + suffix ] = + parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; + } + + return expanded; + } + }; + + if ( prefix !== "margin" ) { + jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; + } +} ); + +jQuery.fn.extend( { + css: function( name, value ) { + return access( this, function( elem, name, value ) { + var styles, len, + map = {}, + i = 0; + + if ( Array.isArray( name ) ) { + styles = getStyles( elem ); + len = name.length; + + for ( ; i < len; i++ ) { + map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); + } + + return map; + } + + return value !== undefined ? + jQuery.style( elem, name, value ) : + jQuery.css( elem, name ); + }, name, value, arguments.length > 1 ); + } +} ); + + +function Tween( elem, options, prop, end, easing ) { + return new Tween.prototype.init( elem, options, prop, end, easing ); +} +jQuery.Tween = Tween; + +Tween.prototype = { + constructor: Tween, + init: function( elem, options, prop, end, easing, unit ) { + this.elem = elem; + this.prop = prop; + this.easing = easing || jQuery.easing._default; + this.options = options; + this.start = this.now = this.cur(); + this.end = end; + this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); + }, + cur: function() { + var hooks = Tween.propHooks[ this.prop ]; + + return hooks && hooks.get ? + hooks.get( this ) : + Tween.propHooks._default.get( this ); + }, + run: function( percent ) { + var eased, + hooks = Tween.propHooks[ this.prop ]; + + if ( this.options.duration ) { + this.pos = eased = jQuery.easing[ this.easing ]( + percent, this.options.duration * percent, 0, 1, this.options.duration + ); + } else { + this.pos = eased = percent; + } + this.now = ( this.end - this.start ) * eased + this.start; + + if ( this.options.step ) { + this.options.step.call( this.elem, this.now, this ); + } + + if ( hooks && hooks.set ) { + hooks.set( this ); + } else { + Tween.propHooks._default.set( this ); + } + return this; + } +}; + +Tween.prototype.init.prototype = Tween.prototype; + +Tween.propHooks = { + _default: { + get: function( tween ) { + var result; + + // Use a property on the element directly when it is not a DOM element, + // or when there is no matching style property that exists. + if ( tween.elem.nodeType !== 1 || + tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) { + return tween.elem[ tween.prop ]; + } + + // Passing an empty string as a 3rd parameter to .css will automatically + // attempt a parseFloat and fallback to a string if the parse fails. + // Simple values such as "10px" are parsed to Float; + // complex values such as "rotate(1rad)" are returned as-is. + result = jQuery.css( tween.elem, tween.prop, "" ); + + // Empty strings, null, undefined and "auto" are converted to 0. + return !result || result === "auto" ? 0 : result; + }, + set: function( tween ) { + + // Use step hook for back compat. + // Use cssHook if its there. + // Use .style if available and use plain properties where available. + if ( jQuery.fx.step[ tween.prop ] ) { + jQuery.fx.step[ tween.prop ]( tween ); + } else if ( tween.elem.nodeType === 1 && ( + jQuery.cssHooks[ tween.prop ] || + tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) { + jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); + } else { + tween.elem[ tween.prop ] = tween.now; + } + } + } +}; + +// Support: IE <=9 only +// Panic based approach to setting things on disconnected nodes +Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { + set: function( tween ) { + if ( tween.elem.nodeType && tween.elem.parentNode ) { + tween.elem[ tween.prop ] = tween.now; + } + } +}; + +jQuery.easing = { + linear: function( p ) { + return p; + }, + swing: function( p ) { + return 0.5 - Math.cos( p * Math.PI ) / 2; + }, + _default: "swing" +}; + +jQuery.fx = Tween.prototype.init; + +// Back compat <1.8 extension point +jQuery.fx.step = {}; + + + + +var + fxNow, inProgress, + rfxtypes = /^(?:toggle|show|hide)$/, + rrun = /queueHooks$/; + +function schedule() { + if ( inProgress ) { + if ( document.hidden === false && window.requestAnimationFrame ) { + window.requestAnimationFrame( schedule ); + } else { + window.setTimeout( schedule, jQuery.fx.interval ); + } + + jQuery.fx.tick(); + } +} + +// Animations created synchronously will run synchronously +function createFxNow() { + window.setTimeout( function() { + fxNow = undefined; + } ); + return ( fxNow = Date.now() ); +} + +// Generate parameters to create a standard animation +function genFx( type, includeWidth ) { + var which, + i = 0, + attrs = { height: type }; + + // If we include width, step value is 1 to do all cssExpand values, + // otherwise step value is 2 to skip over Left and Right + includeWidth = includeWidth ? 1 : 0; + for ( ; i < 4; i += 2 - includeWidth ) { + which = cssExpand[ i ]; + attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; + } + + if ( includeWidth ) { + attrs.opacity = attrs.width = type; + } + + return attrs; +} + +function createTween( value, prop, animation ) { + var tween, + collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ), + index = 0, + length = collection.length; + for ( ; index < length; index++ ) { + if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) { + + // We're done with this property + return tween; + } + } +} + +function defaultPrefilter( elem, props, opts ) { + var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display, + isBox = "width" in props || "height" in props, + anim = this, + orig = {}, + style = elem.style, + hidden = elem.nodeType && isHiddenWithinTree( elem ), + dataShow = dataPriv.get( elem, "fxshow" ); + + // Queue-skipping animations hijack the fx hooks + if ( !opts.queue ) { + hooks = jQuery._queueHooks( elem, "fx" ); + if ( hooks.unqueued == null ) { + hooks.unqueued = 0; + oldfire = hooks.empty.fire; + hooks.empty.fire = function() { + if ( !hooks.unqueued ) { + oldfire(); + } + }; + } + hooks.unqueued++; + + anim.always( function() { + + // Ensure the complete handler is called before this completes + anim.always( function() { + hooks.unqueued--; + if ( !jQuery.queue( elem, "fx" ).length ) { + hooks.empty.fire(); + } + } ); + } ); + } + + // Detect show/hide animations + for ( prop in props ) { + value = props[ prop ]; + if ( rfxtypes.test( value ) ) { + delete props[ prop ]; + toggle = toggle || value === "toggle"; + if ( value === ( hidden ? "hide" : "show" ) ) { + + // Pretend to be hidden if this is a "show" and + // there is still data from a stopped show/hide + if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { + hidden = true; + + // Ignore all other no-op show/hide data + } else { + continue; + } + } + orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); + } + } + + // Bail out if this is a no-op like .hide().hide() + propTween = !jQuery.isEmptyObject( props ); + if ( !propTween && jQuery.isEmptyObject( orig ) ) { + return; + } + + // Restrict "overflow" and "display" styles during box animations + if ( isBox && elem.nodeType === 1 ) { + + // Support: IE <=9 - 11, Edge 12 - 15 + // Record all 3 overflow attributes because IE does not infer the shorthand + // from identically-valued overflowX and overflowY and Edge just mirrors + // the overflowX value there. + opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; + + // Identify a display type, preferring old show/hide data over the CSS cascade + restoreDisplay = dataShow && dataShow.display; + if ( restoreDisplay == null ) { + restoreDisplay = dataPriv.get( elem, "display" ); + } + display = jQuery.css( elem, "display" ); + if ( display === "none" ) { + if ( restoreDisplay ) { + display = restoreDisplay; + } else { + + // Get nonempty value(s) by temporarily forcing visibility + showHide( [ elem ], true ); + restoreDisplay = elem.style.display || restoreDisplay; + display = jQuery.css( elem, "display" ); + showHide( [ elem ] ); + } + } + + // Animate inline elements as inline-block + if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) { + if ( jQuery.css( elem, "float" ) === "none" ) { + + // Restore the original display value at the end of pure show/hide animations + if ( !propTween ) { + anim.done( function() { + style.display = restoreDisplay; + } ); + if ( restoreDisplay == null ) { + display = style.display; + restoreDisplay = display === "none" ? "" : display; + } + } + style.display = "inline-block"; + } + } + } + + if ( opts.overflow ) { + style.overflow = "hidden"; + anim.always( function() { + style.overflow = opts.overflow[ 0 ]; + style.overflowX = opts.overflow[ 1 ]; + style.overflowY = opts.overflow[ 2 ]; + } ); + } + + // Implement show/hide animations + propTween = false; + for ( prop in orig ) { + + // General show/hide setup for this element animation + if ( !propTween ) { + if ( dataShow ) { + if ( "hidden" in dataShow ) { + hidden = dataShow.hidden; + } + } else { + dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } ); + } + + // Store hidden/visible for toggle so `.stop().toggle()` "reverses" + if ( toggle ) { + dataShow.hidden = !hidden; + } + + // Show elements before animating them + if ( hidden ) { + showHide( [ elem ], true ); + } + + /* eslint-disable no-loop-func */ + + anim.done( function() { + + /* eslint-enable no-loop-func */ + + // The final step of a "hide" animation is actually hiding the element + if ( !hidden ) { + showHide( [ elem ] ); + } + dataPriv.remove( elem, "fxshow" ); + for ( prop in orig ) { + jQuery.style( elem, prop, orig[ prop ] ); + } + } ); + } + + // Per-property setup + propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); + if ( !( prop in dataShow ) ) { + dataShow[ prop ] = propTween.start; + if ( hidden ) { + propTween.end = propTween.start; + propTween.start = 0; + } + } + } +} + +function propFilter( props, specialEasing ) { + var index, name, easing, value, hooks; + + // camelCase, specialEasing and expand cssHook pass + for ( index in props ) { + name = camelCase( index ); + easing = specialEasing[ name ]; + value = props[ index ]; + if ( Array.isArray( value ) ) { + easing = value[ 1 ]; + value = props[ index ] = value[ 0 ]; + } + + if ( index !== name ) { + props[ name ] = value; + delete props[ index ]; + } + + hooks = jQuery.cssHooks[ name ]; + if ( hooks && "expand" in hooks ) { + value = hooks.expand( value ); + delete props[ name ]; + + // Not quite $.extend, this won't overwrite existing keys. + // Reusing 'index' because we have the correct "name" + for ( index in value ) { + if ( !( index in props ) ) { + props[ index ] = value[ index ]; + specialEasing[ index ] = easing; + } + } + } else { + specialEasing[ name ] = easing; + } + } +} + +function Animation( elem, properties, options ) { + var result, + stopped, + index = 0, + length = Animation.prefilters.length, + deferred = jQuery.Deferred().always( function() { + + // Don't match elem in the :animated selector + delete tick.elem; + } ), + tick = function() { + if ( stopped ) { + return false; + } + var currentTime = fxNow || createFxNow(), + remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), + + // Support: Android 2.3 only + // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497) + temp = remaining / animation.duration || 0, + percent = 1 - temp, + index = 0, + length = animation.tweens.length; + + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( percent ); + } + + deferred.notifyWith( elem, [ animation, percent, remaining ] ); + + // If there's more to do, yield + if ( percent < 1 && length ) { + return remaining; + } + + // If this was an empty animation, synthesize a final progress notification + if ( !length ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + } + + // Resolve the animation and report its conclusion + deferred.resolveWith( elem, [ animation ] ); + return false; + }, + animation = deferred.promise( { + elem: elem, + props: jQuery.extend( {}, properties ), + opts: jQuery.extend( true, { + specialEasing: {}, + easing: jQuery.easing._default + }, options ), + originalProperties: properties, + originalOptions: options, + startTime: fxNow || createFxNow(), + duration: options.duration, + tweens: [], + createTween: function( prop, end ) { + var tween = jQuery.Tween( elem, animation.opts, prop, end, + animation.opts.specialEasing[ prop ] || animation.opts.easing ); + animation.tweens.push( tween ); + return tween; + }, + stop: function( gotoEnd ) { + var index = 0, + + // If we are going to the end, we want to run all the tweens + // otherwise we skip this part + length = gotoEnd ? animation.tweens.length : 0; + if ( stopped ) { + return this; + } + stopped = true; + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( 1 ); + } + + // Resolve when we played the last frame; otherwise, reject + if ( gotoEnd ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + deferred.resolveWith( elem, [ animation, gotoEnd ] ); + } else { + deferred.rejectWith( elem, [ animation, gotoEnd ] ); + } + return this; + } + } ), + props = animation.props; + + propFilter( props, animation.opts.specialEasing ); + + for ( ; index < length; index++ ) { + result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts ); + if ( result ) { + if ( isFunction( result.stop ) ) { + jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = + result.stop.bind( result ); + } + return result; + } + } + + jQuery.map( props, createTween, animation ); + + if ( isFunction( animation.opts.start ) ) { + animation.opts.start.call( elem, animation ); + } + + // Attach callbacks from options + animation + .progress( animation.opts.progress ) + .done( animation.opts.done, animation.opts.complete ) + .fail( animation.opts.fail ) + .always( animation.opts.always ); + + jQuery.fx.timer( + jQuery.extend( tick, { + elem: elem, + anim: animation, + queue: animation.opts.queue + } ) + ); + + return animation; +} + +jQuery.Animation = jQuery.extend( Animation, { + + tweeners: { + "*": [ function( prop, value ) { + var tween = this.createTween( prop, value ); + adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween ); + return tween; + } ] + }, + + tweener: function( props, callback ) { + if ( isFunction( props ) ) { + callback = props; + props = [ "*" ]; + } else { + props = props.match( rnothtmlwhite ); + } + + var prop, + index = 0, + length = props.length; + + for ( ; index < length; index++ ) { + prop = props[ index ]; + Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || []; + Animation.tweeners[ prop ].unshift( callback ); + } + }, + + prefilters: [ defaultPrefilter ], + + prefilter: function( callback, prepend ) { + if ( prepend ) { + Animation.prefilters.unshift( callback ); + } else { + Animation.prefilters.push( callback ); + } + } +} ); + +jQuery.speed = function( speed, easing, fn ) { + var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { + complete: fn || !fn && easing || + isFunction( speed ) && speed, + duration: speed, + easing: fn && easing || easing && !isFunction( easing ) && easing + }; + + // Go to the end state if fx are off + if ( jQuery.fx.off ) { + opt.duration = 0; + + } else { + if ( typeof opt.duration !== "number" ) { + if ( opt.duration in jQuery.fx.speeds ) { + opt.duration = jQuery.fx.speeds[ opt.duration ]; + + } else { + opt.duration = jQuery.fx.speeds._default; + } + } + } + + // Normalize opt.queue - true/undefined/null -> "fx" + if ( opt.queue == null || opt.queue === true ) { + opt.queue = "fx"; + } + + // Queueing + opt.old = opt.complete; + + opt.complete = function() { + if ( isFunction( opt.old ) ) { + opt.old.call( this ); + } + + if ( opt.queue ) { + jQuery.dequeue( this, opt.queue ); + } + }; + + return opt; +}; + +jQuery.fn.extend( { + fadeTo: function( speed, to, easing, callback ) { + + // Show any hidden elements after setting opacity to 0 + return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show() + + // Animate to the value specified + .end().animate( { opacity: to }, speed, easing, callback ); + }, + animate: function( prop, speed, easing, callback ) { + var empty = jQuery.isEmptyObject( prop ), + optall = jQuery.speed( speed, easing, callback ), + doAnimation = function() { + + // Operate on a copy of prop so per-property easing won't be lost + var anim = Animation( this, jQuery.extend( {}, prop ), optall ); + + // Empty animations, or finishing resolves immediately + if ( empty || dataPriv.get( this, "finish" ) ) { + anim.stop( true ); + } + }; + doAnimation.finish = doAnimation; + + return empty || optall.queue === false ? + this.each( doAnimation ) : + this.queue( optall.queue, doAnimation ); + }, + stop: function( type, clearQueue, gotoEnd ) { + var stopQueue = function( hooks ) { + var stop = hooks.stop; + delete hooks.stop; + stop( gotoEnd ); + }; + + if ( typeof type !== "string" ) { + gotoEnd = clearQueue; + clearQueue = type; + type = undefined; + } + if ( clearQueue ) { + this.queue( type || "fx", [] ); + } + + return this.each( function() { + var dequeue = true, + index = type != null && type + "queueHooks", + timers = jQuery.timers, + data = dataPriv.get( this ); + + if ( index ) { + if ( data[ index ] && data[ index ].stop ) { + stopQueue( data[ index ] ); + } + } else { + for ( index in data ) { + if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { + stopQueue( data[ index ] ); + } + } + } + + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && + ( type == null || timers[ index ].queue === type ) ) { + + timers[ index ].anim.stop( gotoEnd ); + dequeue = false; + timers.splice( index, 1 ); + } + } + + // Start the next in the queue if the last step wasn't forced. + // Timers currently will call their complete callbacks, which + // will dequeue but only if they were gotoEnd. + if ( dequeue || !gotoEnd ) { + jQuery.dequeue( this, type ); + } + } ); + }, + finish: function( type ) { + if ( type !== false ) { + type = type || "fx"; + } + return this.each( function() { + var index, + data = dataPriv.get( this ), + queue = data[ type + "queue" ], + hooks = data[ type + "queueHooks" ], + timers = jQuery.timers, + length = queue ? queue.length : 0; + + // Enable finishing flag on private data + data.finish = true; + + // Empty the queue first + jQuery.queue( this, type, [] ); + + if ( hooks && hooks.stop ) { + hooks.stop.call( this, true ); + } + + // Look for any active animations, and finish them + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && timers[ index ].queue === type ) { + timers[ index ].anim.stop( true ); + timers.splice( index, 1 ); + } + } + + // Look for any animations in the old queue and finish them + for ( index = 0; index < length; index++ ) { + if ( queue[ index ] && queue[ index ].finish ) { + queue[ index ].finish.call( this ); + } + } + + // Turn off finishing flag + delete data.finish; + } ); + } +} ); + +jQuery.each( [ "toggle", "show", "hide" ], function( _i, name ) { + var cssFn = jQuery.fn[ name ]; + jQuery.fn[ name ] = function( speed, easing, callback ) { + return speed == null || typeof speed === "boolean" ? + cssFn.apply( this, arguments ) : + this.animate( genFx( name, true ), speed, easing, callback ); + }; +} ); + +// Generate shortcuts for custom animations +jQuery.each( { + slideDown: genFx( "show" ), + slideUp: genFx( "hide" ), + slideToggle: genFx( "toggle" ), + fadeIn: { opacity: "show" }, + fadeOut: { opacity: "hide" }, + fadeToggle: { opacity: "toggle" } +}, function( name, props ) { + jQuery.fn[ name ] = function( speed, easing, callback ) { + return this.animate( props, speed, easing, callback ); + }; +} ); + +jQuery.timers = []; +jQuery.fx.tick = function() { + var timer, + i = 0, + timers = jQuery.timers; + + fxNow = Date.now(); + + for ( ; i < timers.length; i++ ) { + timer = timers[ i ]; + + // Run the timer and safely remove it when done (allowing for external removal) + if ( !timer() && timers[ i ] === timer ) { + timers.splice( i--, 1 ); + } + } + + if ( !timers.length ) { + jQuery.fx.stop(); + } + fxNow = undefined; +}; + +jQuery.fx.timer = function( timer ) { + jQuery.timers.push( timer ); + jQuery.fx.start(); +}; + +jQuery.fx.interval = 13; +jQuery.fx.start = function() { + if ( inProgress ) { + return; + } + + inProgress = true; + schedule(); +}; + +jQuery.fx.stop = function() { + inProgress = null; +}; + +jQuery.fx.speeds = { + slow: 600, + fast: 200, + + // Default speed + _default: 400 +}; + + +// Based off of the plugin by Clint Helfers, with permission. +// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/ +jQuery.fn.delay = function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; + type = type || "fx"; + + return this.queue( type, function( next, hooks ) { + var timeout = window.setTimeout( next, time ); + hooks.stop = function() { + window.clearTimeout( timeout ); + }; + } ); +}; + + +( function() { + var input = document.createElement( "input" ), + select = document.createElement( "select" ), + opt = select.appendChild( document.createElement( "option" ) ); + + input.type = "checkbox"; + + // Support: Android <=4.3 only + // Default value for a checkbox should be "on" + support.checkOn = input.value !== ""; + + // Support: IE <=11 only + // Must access selectedIndex to make default options select + support.optSelected = opt.selected; + + // Support: IE <=11 only + // An input loses its value after becoming a radio + input = document.createElement( "input" ); + input.value = "t"; + input.type = "radio"; + support.radioValue = input.value === "t"; +} )(); + + +var boolHook, + attrHandle = jQuery.expr.attrHandle; + +jQuery.fn.extend( { + attr: function( name, value ) { + return access( this, jQuery.attr, name, value, arguments.length > 1 ); + }, + + removeAttr: function( name ) { + return this.each( function() { + jQuery.removeAttr( this, name ); + } ); + } +} ); + +jQuery.extend( { + attr: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set attributes on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + // Fallback to prop when attributes are not supported + if ( typeof elem.getAttribute === "undefined" ) { + return jQuery.prop( elem, name, value ); + } + + // Attribute hooks are determined by the lowercase version + // Grab necessary hook if one is defined + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + hooks = jQuery.attrHooks[ name.toLowerCase() ] || + ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined ); + } + + if ( value !== undefined ) { + if ( value === null ) { + jQuery.removeAttr( elem, name ); + return; + } + + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + elem.setAttribute( name, value + "" ); + return value; + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + ret = jQuery.find.attr( elem, name ); + + // Non-existent attributes return null, we normalize to undefined + return ret == null ? undefined : ret; + }, + + attrHooks: { + type: { + set: function( elem, value ) { + if ( !support.radioValue && value === "radio" && + nodeName( elem, "input" ) ) { + var val = elem.value; + elem.setAttribute( "type", value ); + if ( val ) { + elem.value = val; + } + return value; + } + } + } + }, + + removeAttr: function( elem, value ) { + var name, + i = 0, + + // Attribute names can contain non-HTML whitespace characters + // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 + attrNames = value && value.match( rnothtmlwhite ); + + if ( attrNames && elem.nodeType === 1 ) { + while ( ( name = attrNames[ i++ ] ) ) { + elem.removeAttribute( name ); + } + } + } +} ); + +// Hooks for boolean attributes +boolHook = { + set: function( elem, value, name ) { + if ( value === false ) { + + // Remove boolean attributes when set to false + jQuery.removeAttr( elem, name ); + } else { + elem.setAttribute( name, name ); + } + return name; + } +}; + +jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, name ) { + var getter = attrHandle[ name ] || jQuery.find.attr; + + attrHandle[ name ] = function( elem, name, isXML ) { + var ret, handle, + lowercaseName = name.toLowerCase(); + + if ( !isXML ) { + + // Avoid an infinite loop by temporarily removing this function from the getter + handle = attrHandle[ lowercaseName ]; + attrHandle[ lowercaseName ] = ret; + ret = getter( elem, name, isXML ) != null ? + lowercaseName : + null; + attrHandle[ lowercaseName ] = handle; + } + return ret; + }; +} ); + + + + +var rfocusable = /^(?:input|select|textarea|button)$/i, + rclickable = /^(?:a|area)$/i; + +jQuery.fn.extend( { + prop: function( name, value ) { + return access( this, jQuery.prop, name, value, arguments.length > 1 ); + }, + + removeProp: function( name ) { + return this.each( function() { + delete this[ jQuery.propFix[ name ] || name ]; + } ); + } +} ); + +jQuery.extend( { + prop: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set properties on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + + // Fix name and attach hooks + name = jQuery.propFix[ name ] || name; + hooks = jQuery.propHooks[ name ]; + } + + if ( value !== undefined ) { + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + return ( elem[ name ] = value ); + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + return elem[ name ]; + }, + + propHooks: { + tabIndex: { + get: function( elem ) { + + // Support: IE <=9 - 11 only + // elem.tabIndex doesn't always return the + // correct value when it hasn't been explicitly set + // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ + // Use proper attribute retrieval(#12072) + var tabindex = jQuery.find.attr( elem, "tabindex" ); + + if ( tabindex ) { + return parseInt( tabindex, 10 ); + } + + if ( + rfocusable.test( elem.nodeName ) || + rclickable.test( elem.nodeName ) && + elem.href + ) { + return 0; + } + + return -1; + } + } + }, + + propFix: { + "for": "htmlFor", + "class": "className" + } +} ); + +// Support: IE <=11 only +// Accessing the selectedIndex property +// forces the browser to respect setting selected +// on the option +// The getter ensures a default option is selected +// when in an optgroup +// eslint rule "no-unused-expressions" is disabled for this code +// since it considers such accessions noop +if ( !support.optSelected ) { + jQuery.propHooks.selected = { + get: function( elem ) { + + /* eslint no-unused-expressions: "off" */ + + var parent = elem.parentNode; + if ( parent && parent.parentNode ) { + parent.parentNode.selectedIndex; + } + return null; + }, + set: function( elem ) { + + /* eslint no-unused-expressions: "off" */ + + var parent = elem.parentNode; + if ( parent ) { + parent.selectedIndex; + + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; + } + } + } + }; +} + +jQuery.each( [ + "tabIndex", + "readOnly", + "maxLength", + "cellSpacing", + "cellPadding", + "rowSpan", + "colSpan", + "useMap", + "frameBorder", + "contentEditable" +], function() { + jQuery.propFix[ this.toLowerCase() ] = this; +} ); + + + + + // Strip and collapse whitespace according to HTML spec + // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace + function stripAndCollapse( value ) { + var tokens = value.match( rnothtmlwhite ) || []; + return tokens.join( " " ); + } + + +function getClass( elem ) { + return elem.getAttribute && elem.getAttribute( "class" ) || ""; +} + +function classesToArray( value ) { + if ( Array.isArray( value ) ) { + return value; + } + if ( typeof value === "string" ) { + return value.match( rnothtmlwhite ) || []; + } + return []; +} + +jQuery.fn.extend( { + addClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + classes = classesToArray( value ); + + if ( classes.length ) { + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + j = 0; + while ( ( clazz = classes[ j++ ] ) ) { + if ( cur.indexOf( " " + clazz + " " ) < 0 ) { + cur += clazz + " "; + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + elem.setAttribute( "class", finalValue ); + } + } + } + } + + return this; + }, + + removeClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + if ( !arguments.length ) { + return this.attr( "class", "" ); + } + + classes = classesToArray( value ); + + if ( classes.length ) { + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + + // This expression is here for better compressibility (see addClass) + cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + j = 0; + while ( ( clazz = classes[ j++ ] ) ) { + + // Remove *all* instances + while ( cur.indexOf( " " + clazz + " " ) > -1 ) { + cur = cur.replace( " " + clazz + " ", " " ); + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + elem.setAttribute( "class", finalValue ); + } + } + } + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var type = typeof value, + isValidValue = type === "string" || Array.isArray( value ); + + if ( typeof stateVal === "boolean" && isValidValue ) { + return stateVal ? this.addClass( value ) : this.removeClass( value ); + } + + if ( isFunction( value ) ) { + return this.each( function( i ) { + jQuery( this ).toggleClass( + value.call( this, i, getClass( this ), stateVal ), + stateVal + ); + } ); + } + + return this.each( function() { + var className, i, self, classNames; + + if ( isValidValue ) { + + // Toggle individual class names + i = 0; + self = jQuery( this ); + classNames = classesToArray( value ); + + while ( ( className = classNames[ i++ ] ) ) { + + // Check each className given, space separated list + if ( self.hasClass( className ) ) { + self.removeClass( className ); + } else { + self.addClass( className ); + } + } + + // Toggle whole class name + } else if ( value === undefined || type === "boolean" ) { + className = getClass( this ); + if ( className ) { + + // Store className if set + dataPriv.set( this, "__className__", className ); + } + + // If the element has a class name or if we're passed `false`, + // then remove the whole classname (if there was one, the above saved it). + // Otherwise bring back whatever was previously saved (if anything), + // falling back to the empty string if nothing was stored. + if ( this.setAttribute ) { + this.setAttribute( "class", + className || value === false ? + "" : + dataPriv.get( this, "__className__" ) || "" + ); + } + } + } ); + }, + + hasClass: function( selector ) { + var className, elem, + i = 0; + + className = " " + selector + " "; + while ( ( elem = this[ i++ ] ) ) { + if ( elem.nodeType === 1 && + ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { + return true; + } + } + + return false; + } +} ); + + + + +var rreturn = /\r/g; + +jQuery.fn.extend( { + val: function( value ) { + var hooks, ret, valueIsFunction, + elem = this[ 0 ]; + + if ( !arguments.length ) { + if ( elem ) { + hooks = jQuery.valHooks[ elem.type ] || + jQuery.valHooks[ elem.nodeName.toLowerCase() ]; + + if ( hooks && + "get" in hooks && + ( ret = hooks.get( elem, "value" ) ) !== undefined + ) { + return ret; + } + + ret = elem.value; + + // Handle most common string cases + if ( typeof ret === "string" ) { + return ret.replace( rreturn, "" ); + } + + // Handle cases where value is null/undef or number + return ret == null ? "" : ret; + } + + return; + } + + valueIsFunction = isFunction( value ); + + return this.each( function( i ) { + var val; + + if ( this.nodeType !== 1 ) { + return; + } + + if ( valueIsFunction ) { + val = value.call( this, i, jQuery( this ).val() ); + } else { + val = value; + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + + } else if ( typeof val === "number" ) { + val += ""; + + } else if ( Array.isArray( val ) ) { + val = jQuery.map( val, function( value ) { + return value == null ? "" : value + ""; + } ); + } + + hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; + + // If set returns undefined, fall back to normal setting + if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) { + this.value = val; + } + } ); + } +} ); + +jQuery.extend( { + valHooks: { + option: { + get: function( elem ) { + + var val = jQuery.find.attr( elem, "value" ); + return val != null ? + val : + + // Support: IE <=10 - 11 only + // option.text throws exceptions (#14686, #14858) + // Strip and collapse whitespace + // https://html.spec.whatwg.org/#strip-and-collapse-whitespace + stripAndCollapse( jQuery.text( elem ) ); + } + }, + select: { + get: function( elem ) { + var value, option, i, + options = elem.options, + index = elem.selectedIndex, + one = elem.type === "select-one", + values = one ? null : [], + max = one ? index + 1 : options.length; + + if ( index < 0 ) { + i = max; + + } else { + i = one ? index : 0; + } + + // Loop through all the selected options + for ( ; i < max; i++ ) { + option = options[ i ]; + + // Support: IE <=9 only + // IE8-9 doesn't update selected after form reset (#2551) + if ( ( option.selected || i === index ) && + + // Don't return options that are disabled or in a disabled optgroup + !option.disabled && + ( !option.parentNode.disabled || + !nodeName( option.parentNode, "optgroup" ) ) ) { + + // Get the specific value for the option + value = jQuery( option ).val(); + + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); + } + } + + return values; + }, + + set: function( elem, value ) { + var optionSet, option, + options = elem.options, + values = jQuery.makeArray( value ), + i = options.length; + + while ( i-- ) { + option = options[ i ]; + + /* eslint-disable no-cond-assign */ + + if ( option.selected = + jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 + ) { + optionSet = true; + } + + /* eslint-enable no-cond-assign */ + } + + // Force browsers to behave consistently when non-matching value is set + if ( !optionSet ) { + elem.selectedIndex = -1; + } + return values; + } + } + } +} ); + +// Radios and checkboxes getter/setter +jQuery.each( [ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = { + set: function( elem, value ) { + if ( Array.isArray( value ) ) { + return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 ); + } + } + }; + if ( !support.checkOn ) { + jQuery.valHooks[ this ].get = function( elem ) { + return elem.getAttribute( "value" ) === null ? "on" : elem.value; + }; + } +} ); + + + + +// Return jQuery for attributes-only inclusion + + +support.focusin = "onfocusin" in window; + + +var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, + stopPropagationCallback = function( e ) { + e.stopPropagation(); + }; + +jQuery.extend( jQuery.event, { + + trigger: function( event, data, elem, onlyHandlers ) { + + var i, cur, tmp, bubbleType, ontype, handle, special, lastElement, + eventPath = [ elem || document ], + type = hasOwn.call( event, "type" ) ? event.type : event, + namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; + + cur = lastElement = tmp = elem = elem || document; + + // Don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // focus/blur morphs to focusin/out; ensure we're not firing them right now + if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { + return; + } + + if ( type.indexOf( "." ) > -1 ) { + + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split( "." ); + type = namespaces.shift(); + namespaces.sort(); + } + ontype = type.indexOf( ":" ) < 0 && "on" + type; + + // Caller can pass in a jQuery.Event object, Object, or just an event type string + event = event[ jQuery.expando ] ? + event : + new jQuery.Event( type, typeof event === "object" && event ); + + // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) + event.isTrigger = onlyHandlers ? 2 : 3; + event.namespace = namespaces.join( "." ); + event.rnamespace = event.namespace ? + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : + null; + + // Clean up the event in case it is being reused + event.result = undefined; + if ( !event.target ) { + event.target = elem; + } + + // Clone any incoming data and prepend the event, creating the handler arg list + data = data == null ? + [ event ] : + jQuery.makeArray( data, [ event ] ); + + // Allow special events to draw outside the lines + special = jQuery.event.special[ type ] || {}; + if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { + return; + } + + // Determine event propagation path in advance, per W3C events spec (#9951) + // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) + if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) { + + bubbleType = special.delegateType || type; + if ( !rfocusMorph.test( bubbleType + type ) ) { + cur = cur.parentNode; + } + for ( ; cur; cur = cur.parentNode ) { + eventPath.push( cur ); + tmp = cur; + } + + // Only add window if we got to document (e.g., not plain obj or detached DOM) + if ( tmp === ( elem.ownerDocument || document ) ) { + eventPath.push( tmp.defaultView || tmp.parentWindow || window ); + } + } + + // Fire handlers on the event path + i = 0; + while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) { + lastElement = cur; + event.type = i > 1 ? + bubbleType : + special.bindType || type; + + // jQuery handler + handle = ( + dataPriv.get( cur, "events" ) || Object.create( null ) + )[ event.type ] && + dataPriv.get( cur, "handle" ); + if ( handle ) { + handle.apply( cur, data ); + } + + // Native handler + handle = ontype && cur[ ontype ]; + if ( handle && handle.apply && acceptData( cur ) ) { + event.result = handle.apply( cur, data ); + if ( event.result === false ) { + event.preventDefault(); + } + } + } + event.type = type; + + // If nobody prevented the default action, do it now + if ( !onlyHandlers && !event.isDefaultPrevented() ) { + + if ( ( !special._default || + special._default.apply( eventPath.pop(), data ) === false ) && + acceptData( elem ) ) { + + // Call a native DOM method on the target with the same name as the event. + // Don't do default actions on window, that's where global variables be (#6170) + if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) { + + // Don't re-trigger an onFOO event when we call its FOO() method + tmp = elem[ ontype ]; + + if ( tmp ) { + elem[ ontype ] = null; + } + + // Prevent re-triggering of the same event, since we already bubbled it above + jQuery.event.triggered = type; + + if ( event.isPropagationStopped() ) { + lastElement.addEventListener( type, stopPropagationCallback ); + } + + elem[ type ](); + + if ( event.isPropagationStopped() ) { + lastElement.removeEventListener( type, stopPropagationCallback ); + } + + jQuery.event.triggered = undefined; + + if ( tmp ) { + elem[ ontype ] = tmp; + } + } + } + } + + return event.result; + }, + + // Piggyback on a donor event to simulate a different one + // Used only for `focus(in | out)` events + simulate: function( type, elem, event ) { + var e = jQuery.extend( + new jQuery.Event(), + event, + { + type: type, + isSimulated: true + } + ); + + jQuery.event.trigger( e, null, elem ); + } + +} ); + +jQuery.fn.extend( { + + trigger: function( type, data ) { + return this.each( function() { + jQuery.event.trigger( type, data, this ); + } ); + }, + triggerHandler: function( type, data ) { + var elem = this[ 0 ]; + if ( elem ) { + return jQuery.event.trigger( type, data, elem, true ); + } + } +} ); + + +// Support: Firefox <=44 +// Firefox doesn't have focus(in | out) events +// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 +// +// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1 +// focus(in | out) events fire after focus & blur events, +// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order +// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857 +if ( !support.focusin ) { + jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) { + + // Attach a single capturing handler on the document while someone wants focusin/focusout + var handler = function( event ) { + jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) ); + }; + + jQuery.event.special[ fix ] = { + setup: function() { + + // Handle: regular nodes (via `this.ownerDocument`), window + // (via `this.document`) & document (via `this`). + var doc = this.ownerDocument || this.document || this, + attaches = dataPriv.access( doc, fix ); + + if ( !attaches ) { + doc.addEventListener( orig, handler, true ); + } + dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); + }, + teardown: function() { + var doc = this.ownerDocument || this.document || this, + attaches = dataPriv.access( doc, fix ) - 1; + + if ( !attaches ) { + doc.removeEventListener( orig, handler, true ); + dataPriv.remove( doc, fix ); + + } else { + dataPriv.access( doc, fix, attaches ); + } + } + }; + } ); +} +var location = window.location; + +var nonce = { guid: Date.now() }; + +var rquery = ( /\?/ ); + + + +// Cross-browser xml parsing +jQuery.parseXML = function( data ) { + var xml; + if ( !data || typeof data !== "string" ) { + return null; + } + + // Support: IE 9 - 11 only + // IE throws on parseFromString with invalid input. + try { + xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); + } catch ( e ) { + xml = undefined; + } + + if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { + jQuery.error( "Invalid XML: " + data ); + } + return xml; +}; + + +var + rbracket = /\[\]$/, + rCRLF = /\r?\n/g, + rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, + rsubmittable = /^(?:input|select|textarea|keygen)/i; + +function buildParams( prefix, obj, traditional, add ) { + var name; + + if ( Array.isArray( obj ) ) { + + // Serialize array item. + jQuery.each( obj, function( i, v ) { + if ( traditional || rbracket.test( prefix ) ) { + + // Treat each array item as a scalar. + add( prefix, v ); + + } else { + + // Item is non-scalar (array or object), encode its numeric index. + buildParams( + prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]", + v, + traditional, + add + ); + } + } ); + + } else if ( !traditional && toType( obj ) === "object" ) { + + // Serialize object item. + for ( name in obj ) { + buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); + } + + } else { + + // Serialize scalar item. + add( prefix, obj ); + } +} + +// Serialize an array of form elements or a set of +// key/values into a query string +jQuery.param = function( a, traditional ) { + var prefix, + s = [], + add = function( key, valueOrFunction ) { + + // If value is a function, invoke it and use its return value + var value = isFunction( valueOrFunction ) ? + valueOrFunction() : + valueOrFunction; + + s[ s.length ] = encodeURIComponent( key ) + "=" + + encodeURIComponent( value == null ? "" : value ); + }; + + if ( a == null ) { + return ""; + } + + // If an array was passed in, assume that it is an array of form elements. + if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { + + // Serialize the form elements + jQuery.each( a, function() { + add( this.name, this.value ); + } ); + + } else { + + // If traditional, encode the "old" way (the way 1.3.2 or older + // did it), otherwise encode params recursively. + for ( prefix in a ) { + buildParams( prefix, a[ prefix ], traditional, add ); + } + } + + // Return the resulting serialization + return s.join( "&" ); +}; + +jQuery.fn.extend( { + serialize: function() { + return jQuery.param( this.serializeArray() ); + }, + serializeArray: function() { + return this.map( function() { + + // Can add propHook for "elements" to filter or add form elements + var elements = jQuery.prop( this, "elements" ); + return elements ? jQuery.makeArray( elements ) : this; + } ) + .filter( function() { + var type = this.type; + + // Use .is( ":disabled" ) so that fieldset[disabled] works + return this.name && !jQuery( this ).is( ":disabled" ) && + rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && + ( this.checked || !rcheckableType.test( type ) ); + } ) + .map( function( _i, elem ) { + var val = jQuery( this ).val(); + + if ( val == null ) { + return null; + } + + if ( Array.isArray( val ) ) { + return jQuery.map( val, function( val ) { + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ); + } + + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ).get(); + } +} ); + + +var + r20 = /%20/g, + rhash = /#.*$/, + rantiCache = /([?&])_=[^&]*/, + rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, + + // #7653, #8125, #8152: local protocol detection + rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, + rnoContent = /^(?:GET|HEAD)$/, + rprotocol = /^\/\//, + + /* Prefilters + * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) + * 2) These are called: + * - BEFORE asking for a transport + * - AFTER param serialization (s.data is a string if s.processData is true) + * 3) key is the dataType + * 4) the catchall symbol "*" can be used + * 5) execution will start with transport dataType and THEN continue down to "*" if needed + */ + prefilters = {}, + + /* Transports bindings + * 1) key is the dataType + * 2) the catchall symbol "*" can be used + * 3) selection will start with transport dataType and THEN go to "*" if needed + */ + transports = {}, + + // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression + allTypes = "*/".concat( "*" ), + + // Anchor tag for parsing the document origin + originAnchor = document.createElement( "a" ); + originAnchor.href = location.href; + +// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport +function addToPrefiltersOrTransports( structure ) { + + // dataTypeExpression is optional and defaults to "*" + return function( dataTypeExpression, func ) { + + if ( typeof dataTypeExpression !== "string" ) { + func = dataTypeExpression; + dataTypeExpression = "*"; + } + + var dataType, + i = 0, + dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || []; + + if ( isFunction( func ) ) { + + // For each dataType in the dataTypeExpression + while ( ( dataType = dataTypes[ i++ ] ) ) { + + // Prepend if requested + if ( dataType[ 0 ] === "+" ) { + dataType = dataType.slice( 1 ) || "*"; + ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); + + // Otherwise append + } else { + ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); + } + } + } + }; +} + +// Base inspection function for prefilters and transports +function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { + + var inspected = {}, + seekingTransport = ( structure === transports ); + + function inspect( dataType ) { + var selected; + inspected[ dataType ] = true; + jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { + var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); + if ( typeof dataTypeOrTransport === "string" && + !seekingTransport && !inspected[ dataTypeOrTransport ] ) { + + options.dataTypes.unshift( dataTypeOrTransport ); + inspect( dataTypeOrTransport ); + return false; + } else if ( seekingTransport ) { + return !( selected = dataTypeOrTransport ); + } + } ); + return selected; + } + + return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); +} + +// A special extend for ajax options +// that takes "flat" options (not to be deep extended) +// Fixes #9887 +function ajaxExtend( target, src ) { + var key, deep, + flatOptions = jQuery.ajaxSettings.flatOptions || {}; + + for ( key in src ) { + if ( src[ key ] !== undefined ) { + ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; + } + } + if ( deep ) { + jQuery.extend( true, target, deep ); + } + + return target; +} + +/* Handles responses to an ajax request: + * - finds the right dataType (mediates between content-type and expected dataType) + * - returns the corresponding response + */ +function ajaxHandleResponses( s, jqXHR, responses ) { + + var ct, type, finalDataType, firstDataType, + contents = s.contents, + dataTypes = s.dataTypes; + + // Remove auto dataType and get content-type in the process + while ( dataTypes[ 0 ] === "*" ) { + dataTypes.shift(); + if ( ct === undefined ) { + ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" ); + } + } + + // Check if we're dealing with a known content-type + if ( ct ) { + for ( type in contents ) { + if ( contents[ type ] && contents[ type ].test( ct ) ) { + dataTypes.unshift( type ); + break; + } + } + } + + // Check to see if we have a response for the expected dataType + if ( dataTypes[ 0 ] in responses ) { + finalDataType = dataTypes[ 0 ]; + } else { + + // Try convertible dataTypes + for ( type in responses ) { + if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) { + finalDataType = type; + break; + } + if ( !firstDataType ) { + firstDataType = type; + } + } + + // Or just use first one + finalDataType = finalDataType || firstDataType; + } + + // If we found a dataType + // We add the dataType to the list if needed + // and return the corresponding response + if ( finalDataType ) { + if ( finalDataType !== dataTypes[ 0 ] ) { + dataTypes.unshift( finalDataType ); + } + return responses[ finalDataType ]; + } +} + +/* Chain conversions given the request and the original response + * Also sets the responseXXX fields on the jqXHR instance + */ +function ajaxConvert( s, response, jqXHR, isSuccess ) { + var conv2, current, conv, tmp, prev, + converters = {}, + + // Work with a copy of dataTypes in case we need to modify it for conversion + dataTypes = s.dataTypes.slice(); + + // Create converters map with lowercased keys + if ( dataTypes[ 1 ] ) { + for ( conv in s.converters ) { + converters[ conv.toLowerCase() ] = s.converters[ conv ]; + } + } + + current = dataTypes.shift(); + + // Convert to each sequential dataType + while ( current ) { + + if ( s.responseFields[ current ] ) { + jqXHR[ s.responseFields[ current ] ] = response; + } + + // Apply the dataFilter if provided + if ( !prev && isSuccess && s.dataFilter ) { + response = s.dataFilter( response, s.dataType ); + } + + prev = current; + current = dataTypes.shift(); + + if ( current ) { + + // There's only work to do if current dataType is non-auto + if ( current === "*" ) { + + current = prev; + + // Convert response if prev dataType is non-auto and differs from current + } else if ( prev !== "*" && prev !== current ) { + + // Seek a direct converter + conv = converters[ prev + " " + current ] || converters[ "* " + current ]; + + // If none found, seek a pair + if ( !conv ) { + for ( conv2 in converters ) { + + // If conv2 outputs current + tmp = conv2.split( " " ); + if ( tmp[ 1 ] === current ) { + + // If prev can be converted to accepted input + conv = converters[ prev + " " + tmp[ 0 ] ] || + converters[ "* " + tmp[ 0 ] ]; + if ( conv ) { + + // Condense equivalence converters + if ( conv === true ) { + conv = converters[ conv2 ]; + + // Otherwise, insert the intermediate dataType + } else if ( converters[ conv2 ] !== true ) { + current = tmp[ 0 ]; + dataTypes.unshift( tmp[ 1 ] ); + } + break; + } + } + } + } + + // Apply converter (if not an equivalence) + if ( conv !== true ) { + + // Unless errors are allowed to bubble, catch and return them + if ( conv && s.throws ) { + response = conv( response ); + } else { + try { + response = conv( response ); + } catch ( e ) { + return { + state: "parsererror", + error: conv ? e : "No conversion from " + prev + " to " + current + }; + } + } + } + } + } + } + + return { state: "success", data: response }; +} + +jQuery.extend( { + + // Counter for holding the number of active queries + active: 0, + + // Last-Modified header cache for next request + lastModified: {}, + etag: {}, + + ajaxSettings: { + url: location.href, + type: "GET", + isLocal: rlocalProtocol.test( location.protocol ), + global: true, + processData: true, + async: true, + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + + /* + timeout: 0, + data: null, + dataType: null, + username: null, + password: null, + cache: null, + throws: false, + traditional: false, + headers: {}, + */ + + accepts: { + "*": allTypes, + text: "text/plain", + html: "text/html", + xml: "application/xml, text/xml", + json: "application/json, text/javascript" + }, + + contents: { + xml: /\bxml\b/, + html: /\bhtml/, + json: /\bjson\b/ + }, + + responseFields: { + xml: "responseXML", + text: "responseText", + json: "responseJSON" + }, + + // Data converters + // Keys separate source (or catchall "*") and destination types with a single space + converters: { + + // Convert anything to text + "* text": String, + + // Text to html (true = no transformation) + "text html": true, + + // Evaluate text as a json expression + "text json": JSON.parse, + + // Parse text as xml + "text xml": jQuery.parseXML + }, + + // For options that shouldn't be deep extended: + // you can add your own custom options here if + // and when you create one that shouldn't be + // deep extended (see ajaxExtend) + flatOptions: { + url: true, + context: true + } + }, + + // Creates a full fledged settings object into target + // with both ajaxSettings and settings fields. + // If target is omitted, writes into ajaxSettings. + ajaxSetup: function( target, settings ) { + return settings ? + + // Building a settings object + ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : + + // Extending ajaxSettings + ajaxExtend( jQuery.ajaxSettings, target ); + }, + + ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), + ajaxTransport: addToPrefiltersOrTransports( transports ), + + // Main method + ajax: function( url, options ) { + + // If url is an object, simulate pre-1.5 signature + if ( typeof url === "object" ) { + options = url; + url = undefined; + } + + // Force options to be an object + options = options || {}; + + var transport, + + // URL without anti-cache param + cacheURL, + + // Response headers + responseHeadersString, + responseHeaders, + + // timeout handle + timeoutTimer, + + // Url cleanup var + urlAnchor, + + // Request state (becomes false upon send and true upon completion) + completed, + + // To know if global events are to be dispatched + fireGlobals, + + // Loop variable + i, + + // uncached part of the url + uncached, + + // Create the final options object + s = jQuery.ajaxSetup( {}, options ), + + // Callbacks context + callbackContext = s.context || s, + + // Context for global events is callbackContext if it is a DOM node or jQuery collection + globalEventContext = s.context && + ( callbackContext.nodeType || callbackContext.jquery ) ? + jQuery( callbackContext ) : + jQuery.event, + + // Deferreds + deferred = jQuery.Deferred(), + completeDeferred = jQuery.Callbacks( "once memory" ), + + // Status-dependent callbacks + statusCode = s.statusCode || {}, + + // Headers (they are sent all at once) + requestHeaders = {}, + requestHeadersNames = {}, + + // Default abort message + strAbort = "canceled", + + // Fake xhr + jqXHR = { + readyState: 0, + + // Builds headers hashtable if needed + getResponseHeader: function( key ) { + var match; + if ( completed ) { + if ( !responseHeaders ) { + responseHeaders = {}; + while ( ( match = rheaders.exec( responseHeadersString ) ) ) { + responseHeaders[ match[ 1 ].toLowerCase() + " " ] = + ( responseHeaders[ match[ 1 ].toLowerCase() + " " ] || [] ) + .concat( match[ 2 ] ); + } + } + match = responseHeaders[ key.toLowerCase() + " " ]; + } + return match == null ? null : match.join( ", " ); + }, + + // Raw string + getAllResponseHeaders: function() { + return completed ? responseHeadersString : null; + }, + + // Caches the header + setRequestHeader: function( name, value ) { + if ( completed == null ) { + name = requestHeadersNames[ name.toLowerCase() ] = + requestHeadersNames[ name.toLowerCase() ] || name; + requestHeaders[ name ] = value; + } + return this; + }, + + // Overrides response content-type header + overrideMimeType: function( type ) { + if ( completed == null ) { + s.mimeType = type; + } + return this; + }, + + // Status-dependent callbacks + statusCode: function( map ) { + var code; + if ( map ) { + if ( completed ) { + + // Execute the appropriate callbacks + jqXHR.always( map[ jqXHR.status ] ); + } else { + + // Lazy-add the new callbacks in a way that preserves old ones + for ( code in map ) { + statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; + } + } + } + return this; + }, + + // Cancel the request + abort: function( statusText ) { + var finalText = statusText || strAbort; + if ( transport ) { + transport.abort( finalText ); + } + done( 0, finalText ); + return this; + } + }; + + // Attach deferreds + deferred.promise( jqXHR ); + + // Add protocol if not provided (prefilters might expect it) + // Handle falsy url in the settings object (#10093: consistency with old signature) + // We also use the url parameter if available + s.url = ( ( url || s.url || location.href ) + "" ) + .replace( rprotocol, location.protocol + "//" ); + + // Alias method option to type as per ticket #12004 + s.type = options.method || options.type || s.method || s.type; + + // Extract dataTypes list + s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ]; + + // A cross-domain request is in order when the origin doesn't match the current origin. + if ( s.crossDomain == null ) { + urlAnchor = document.createElement( "a" ); + + // Support: IE <=8 - 11, Edge 12 - 15 + // IE throws exception on accessing the href property if url is malformed, + // e.g. http://example.com:80x/ + try { + urlAnchor.href = s.url; + + // Support: IE <=8 - 11 only + // Anchor's host property isn't correctly set when s.url is relative + urlAnchor.href = urlAnchor.href; + s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== + urlAnchor.protocol + "//" + urlAnchor.host; + } catch ( e ) { + + // If there is an error parsing the URL, assume it is crossDomain, + // it can be rejected by the transport if it is invalid + s.crossDomain = true; + } + } + + // Convert data if not already a string + if ( s.data && s.processData && typeof s.data !== "string" ) { + s.data = jQuery.param( s.data, s.traditional ); + } + + // Apply prefilters + inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); + + // If request was aborted inside a prefilter, stop there + if ( completed ) { + return jqXHR; + } + + // We can fire global events as of now if asked to + // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) + fireGlobals = jQuery.event && s.global; + + // Watch for a new set of requests + if ( fireGlobals && jQuery.active++ === 0 ) { + jQuery.event.trigger( "ajaxStart" ); + } + + // Uppercase the type + s.type = s.type.toUpperCase(); + + // Determine if request has content + s.hasContent = !rnoContent.test( s.type ); + + // Save the URL in case we're toying with the If-Modified-Since + // and/or If-None-Match header later on + // Remove hash to simplify url manipulation + cacheURL = s.url.replace( rhash, "" ); + + // More options handling for requests with no content + if ( !s.hasContent ) { + + // Remember the hash so we can put it back + uncached = s.url.slice( cacheURL.length ); + + // If data is available and should be processed, append data to url + if ( s.data && ( s.processData || typeof s.data === "string" ) ) { + cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data; + + // #9682: remove data so that it's not used in an eventual retry + delete s.data; + } + + // Add or update anti-cache param if needed + if ( s.cache === false ) { + cacheURL = cacheURL.replace( rantiCache, "$1" ); + uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce.guid++ ) + + uncached; + } + + // Put hash and anti-cache on the URL that will be requested (gh-1732) + s.url = cacheURL + uncached; + + // Change '%20' to '+' if this is encoded form body content (gh-2658) + } else if ( s.data && s.processData && + ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) { + s.data = s.data.replace( r20, "+" ); + } + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + if ( jQuery.lastModified[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); + } + if ( jQuery.etag[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); + } + } + + // Set the correct header, if data is being sent + if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { + jqXHR.setRequestHeader( "Content-Type", s.contentType ); + } + + // Set the Accepts header for the server, depending on the dataType + jqXHR.setRequestHeader( + "Accept", + s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ? + s.accepts[ s.dataTypes[ 0 ] ] + + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : + s.accepts[ "*" ] + ); + + // Check for headers option + for ( i in s.headers ) { + jqXHR.setRequestHeader( i, s.headers[ i ] ); + } + + // Allow custom headers/mimetypes and early abort + if ( s.beforeSend && + ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) { + + // Abort if not done already and return + return jqXHR.abort(); + } + + // Aborting is no longer a cancellation + strAbort = "abort"; + + // Install callbacks on deferreds + completeDeferred.add( s.complete ); + jqXHR.done( s.success ); + jqXHR.fail( s.error ); + + // Get transport + transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); + + // If no transport, we auto-abort + if ( !transport ) { + done( -1, "No Transport" ); + } else { + jqXHR.readyState = 1; + + // Send global event + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); + } + + // If request was aborted inside ajaxSend, stop there + if ( completed ) { + return jqXHR; + } + + // Timeout + if ( s.async && s.timeout > 0 ) { + timeoutTimer = window.setTimeout( function() { + jqXHR.abort( "timeout" ); + }, s.timeout ); + } + + try { + completed = false; + transport.send( requestHeaders, done ); + } catch ( e ) { + + // Rethrow post-completion exceptions + if ( completed ) { + throw e; + } + + // Propagate others as results + done( -1, e ); + } + } + + // Callback for when everything is done + function done( status, nativeStatusText, responses, headers ) { + var isSuccess, success, error, response, modified, + statusText = nativeStatusText; + + // Ignore repeat invocations + if ( completed ) { + return; + } + + completed = true; + + // Clear timeout if it exists + if ( timeoutTimer ) { + window.clearTimeout( timeoutTimer ); + } + + // Dereference transport for early garbage collection + // (no matter how long the jqXHR object will be used) + transport = undefined; + + // Cache response headers + responseHeadersString = headers || ""; + + // Set readyState + jqXHR.readyState = status > 0 ? 4 : 0; + + // Determine if successful + isSuccess = status >= 200 && status < 300 || status === 304; + + // Get response data + if ( responses ) { + response = ajaxHandleResponses( s, jqXHR, responses ); + } + + // Use a noop converter for missing script + if ( !isSuccess && jQuery.inArray( "script", s.dataTypes ) > -1 ) { + s.converters[ "text script" ] = function() {}; + } + + // Convert no matter what (that way responseXXX fields are always set) + response = ajaxConvert( s, response, jqXHR, isSuccess ); + + // If successful, handle type chaining + if ( isSuccess ) { + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + modified = jqXHR.getResponseHeader( "Last-Modified" ); + if ( modified ) { + jQuery.lastModified[ cacheURL ] = modified; + } + modified = jqXHR.getResponseHeader( "etag" ); + if ( modified ) { + jQuery.etag[ cacheURL ] = modified; + } + } + + // if no content + if ( status === 204 || s.type === "HEAD" ) { + statusText = "nocontent"; + + // if not modified + } else if ( status === 304 ) { + statusText = "notmodified"; + + // If we have data, let's convert it + } else { + statusText = response.state; + success = response.data; + error = response.error; + isSuccess = !error; + } + } else { + + // Extract error from statusText and normalize for non-aborts + error = statusText; + if ( status || !statusText ) { + statusText = "error"; + if ( status < 0 ) { + status = 0; + } + } + } + + // Set data for the fake xhr object + jqXHR.status = status; + jqXHR.statusText = ( nativeStatusText || statusText ) + ""; + + // Success/Error + if ( isSuccess ) { + deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); + } else { + deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); + } + + // Status-dependent callbacks + jqXHR.statusCode( statusCode ); + statusCode = undefined; + + if ( fireGlobals ) { + globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", + [ jqXHR, s, isSuccess ? success : error ] ); + } + + // Complete + completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); + + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); + + // Handle the global AJAX counter + if ( !( --jQuery.active ) ) { + jQuery.event.trigger( "ajaxStop" ); + } + } + } + + return jqXHR; + }, + + getJSON: function( url, data, callback ) { + return jQuery.get( url, data, callback, "json" ); + }, + + getScript: function( url, callback ) { + return jQuery.get( url, undefined, callback, "script" ); + } +} ); + +jQuery.each( [ "get", "post" ], function( _i, method ) { + jQuery[ method ] = function( url, data, callback, type ) { + + // Shift arguments if data argument was omitted + if ( isFunction( data ) ) { + type = type || callback; + callback = data; + data = undefined; + } + + // The url can be an options object (which then must have .url) + return jQuery.ajax( jQuery.extend( { + url: url, + type: method, + dataType: type, + data: data, + success: callback + }, jQuery.isPlainObject( url ) && url ) ); + }; +} ); + +jQuery.ajaxPrefilter( function( s ) { + var i; + for ( i in s.headers ) { + if ( i.toLowerCase() === "content-type" ) { + s.contentType = s.headers[ i ] || ""; + } + } +} ); + + +jQuery._evalUrl = function( url, options, doc ) { + return jQuery.ajax( { + url: url, + + // Make this explicit, since user can override this through ajaxSetup (#11264) + type: "GET", + dataType: "script", + cache: true, + async: false, + global: false, + + // Only evaluate the response if it is successful (gh-4126) + // dataFilter is not invoked for failure responses, so using it instead + // of the default converter is kludgy but it works. + converters: { + "text script": function() {} + }, + dataFilter: function( response ) { + jQuery.globalEval( response, options, doc ); + } + } ); +}; + + +jQuery.fn.extend( { + wrapAll: function( html ) { + var wrap; + + if ( this[ 0 ] ) { + if ( isFunction( html ) ) { + html = html.call( this[ 0 ] ); + } + + // The elements to wrap the target around + wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); + + if ( this[ 0 ].parentNode ) { + wrap.insertBefore( this[ 0 ] ); + } + + wrap.map( function() { + var elem = this; + + while ( elem.firstElementChild ) { + elem = elem.firstElementChild; + } + + return elem; + } ).append( this ); + } + + return this; + }, + + wrapInner: function( html ) { + if ( isFunction( html ) ) { + return this.each( function( i ) { + jQuery( this ).wrapInner( html.call( this, i ) ); + } ); + } + + return this.each( function() { + var self = jQuery( this ), + contents = self.contents(); + + if ( contents.length ) { + contents.wrapAll( html ); + + } else { + self.append( html ); + } + } ); + }, + + wrap: function( html ) { + var htmlIsFunction = isFunction( html ); + + return this.each( function( i ) { + jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html ); + } ); + }, + + unwrap: function( selector ) { + this.parent( selector ).not( "body" ).each( function() { + jQuery( this ).replaceWith( this.childNodes ); + } ); + return this; + } +} ); + + +jQuery.expr.pseudos.hidden = function( elem ) { + return !jQuery.expr.pseudos.visible( elem ); +}; +jQuery.expr.pseudos.visible = function( elem ) { + return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length ); +}; + + + + +jQuery.ajaxSettings.xhr = function() { + try { + return new window.XMLHttpRequest(); + } catch ( e ) {} +}; + +var xhrSuccessStatus = { + + // File protocol always yields status code 0, assume 200 + 0: 200, + + // Support: IE <=9 only + // #1450: sometimes IE returns 1223 when it should be 204 + 1223: 204 + }, + xhrSupported = jQuery.ajaxSettings.xhr(); + +support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); +support.ajax = xhrSupported = !!xhrSupported; + +jQuery.ajaxTransport( function( options ) { + var callback, errorCallback; + + // Cross domain only allowed if supported through XMLHttpRequest + if ( support.cors || xhrSupported && !options.crossDomain ) { + return { + send: function( headers, complete ) { + var i, + xhr = options.xhr(); + + xhr.open( + options.type, + options.url, + options.async, + options.username, + options.password + ); + + // Apply custom fields if provided + if ( options.xhrFields ) { + for ( i in options.xhrFields ) { + xhr[ i ] = options.xhrFields[ i ]; + } + } + + // Override mime type if needed + if ( options.mimeType && xhr.overrideMimeType ) { + xhr.overrideMimeType( options.mimeType ); + } + + // X-Requested-With header + // For cross-domain requests, seeing as conditions for a preflight are + // akin to a jigsaw puzzle, we simply never set it to be sure. + // (it can always be set on a per-request basis or even using ajaxSetup) + // For same-domain requests, won't change header if already provided. + if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) { + headers[ "X-Requested-With" ] = "XMLHttpRequest"; + } + + // Set headers + for ( i in headers ) { + xhr.setRequestHeader( i, headers[ i ] ); + } + + // Callback + callback = function( type ) { + return function() { + if ( callback ) { + callback = errorCallback = xhr.onload = + xhr.onerror = xhr.onabort = xhr.ontimeout = + xhr.onreadystatechange = null; + + if ( type === "abort" ) { + xhr.abort(); + } else if ( type === "error" ) { + + // Support: IE <=9 only + // On a manual native abort, IE9 throws + // errors on any property access that is not readyState + if ( typeof xhr.status !== "number" ) { + complete( 0, "error" ); + } else { + complete( + + // File: protocol always yields status 0; see #8605, #14207 + xhr.status, + xhr.statusText + ); + } + } else { + complete( + xhrSuccessStatus[ xhr.status ] || xhr.status, + xhr.statusText, + + // Support: IE <=9 only + // IE9 has no XHR2 but throws on binary (trac-11426) + // For XHR2 non-text, let the caller handle it (gh-2498) + ( xhr.responseType || "text" ) !== "text" || + typeof xhr.responseText !== "string" ? + { binary: xhr.response } : + { text: xhr.responseText }, + xhr.getAllResponseHeaders() + ); + } + } + }; + }; + + // Listen to events + xhr.onload = callback(); + errorCallback = xhr.onerror = xhr.ontimeout = callback( "error" ); + + // Support: IE 9 only + // Use onreadystatechange to replace onabort + // to handle uncaught aborts + if ( xhr.onabort !== undefined ) { + xhr.onabort = errorCallback; + } else { + xhr.onreadystatechange = function() { + + // Check readyState before timeout as it changes + if ( xhr.readyState === 4 ) { + + // Allow onerror to be called first, + // but that will not handle a native abort + // Also, save errorCallback to a variable + // as xhr.onerror cannot be accessed + window.setTimeout( function() { + if ( callback ) { + errorCallback(); + } + } ); + } + }; + } + + // Create the abort callback + callback = callback( "abort" ); + + try { + + // Do send the request (this may raise an exception) + xhr.send( options.hasContent && options.data || null ); + } catch ( e ) { + + // #14683: Only rethrow if this hasn't been notified as an error yet + if ( callback ) { + throw e; + } + } + }, + + abort: function() { + if ( callback ) { + callback(); + } + } + }; + } +} ); + + + + +// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) +jQuery.ajaxPrefilter( function( s ) { + if ( s.crossDomain ) { + s.contents.script = false; + } +} ); + +// Install script dataType +jQuery.ajaxSetup( { + accepts: { + script: "text/javascript, application/javascript, " + + "application/ecmascript, application/x-ecmascript" + }, + contents: { + script: /\b(?:java|ecma)script\b/ + }, + converters: { + "text script": function( text ) { + jQuery.globalEval( text ); + return text; + } + } +} ); + +// Handle cache's special case and crossDomain +jQuery.ajaxPrefilter( "script", function( s ) { + if ( s.cache === undefined ) { + s.cache = false; + } + if ( s.crossDomain ) { + s.type = "GET"; + } +} ); + +// Bind script tag hack transport +jQuery.ajaxTransport( "script", function( s ) { + + // This transport only deals with cross domain or forced-by-attrs requests + if ( s.crossDomain || s.scriptAttrs ) { + var script, callback; + return { + send: function( _, complete ) { + script = jQuery( "\r\n"; + +// inject VBScript +document.write(IEBinaryToArray_ByteStr_Script); + +global.JSZipUtils._getBinaryFromXHR = function (xhr) { + var binary = xhr.responseBody; + var byteMapping = {}; + for ( var i = 0; i < 256; i++ ) { + for ( var j = 0; j < 256; j++ ) { + byteMapping[ String.fromCharCode( i + (j << 8) ) ] = + String.fromCharCode(i) + String.fromCharCode(j); + } + } + var rawBytes = IEBinaryToArray_ByteStr(binary); + var lastChr = IEBinaryToArray_ByteStr_Last(binary); + return rawBytes.replace(/[\s\S]/g, function( match ) { + return byteMapping[match]; + }) + lastChr; +}; + +// enforcing Stuk's coding style +// vim: set shiftwidth=4 softtabstop=4: + +},{}]},{},[1]) +; diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/jquery/jszip-utils/dist/jszip-utils-ie.min.js b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/jquery/jszip-utils/dist/jszip-utils-ie.min.js new file mode 100644 index 0000000000..93d8bc8ef2 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/jquery/jszip-utils/dist/jszip-utils-ie.min.js @@ -0,0 +1,10 @@ +/*! + +JSZipUtils - A collection of cross-browser utilities to go along with JSZip. + + +(c) 2014 Stuart Knightley, David Duponchel +Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip-utils/master/LICENSE.markdown. + +*/ +!function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};b[g][0].call(j.exports,function(a){var c=b[g][1][a];return e(c?c:a)},j,j.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g\r\n";document.write(b),a.JSZipUtils._getBinaryFromXHR=function(a){for(var b=a.responseBody,c={},d=0;256>d;d++)for(var e=0;256>e;e++)c[String.fromCharCode(d+(e<<8))]=String.fromCharCode(d)+String.fromCharCode(e);var f=IEBinaryToArray_ByteStr(b),g=IEBinaryToArray_ByteStr_Last(b);return f.replace(/[\s\S]/g,function(a){return c[a]})+g}},{}]},{},[1]); diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/jquery/jszip-utils/dist/jszip-utils.js b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/jquery/jszip-utils/dist/jszip-utils.js new file mode 100644 index 0000000000..775895ec92 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/jquery/jszip-utils/dist/jszip-utils.js @@ -0,0 +1,118 @@ +/*! + +JSZipUtils - A collection of cross-browser utilities to go along with JSZip. + + +(c) 2014 Stuart Knightley, David Duponchel +Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip-utils/master/LICENSE.markdown. + +*/ +!function(e){"object"==typeof exports?module.exports=e():"function"==typeof define&&define.amd?define(e):"undefined"!=typeof window?window.JSZipUtils=e():"undefined"!=typeof global?global.JSZipUtils=e():"undefined"!=typeof self&&(self.JSZipUtils=e())}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o + +(c) 2014 Stuart Knightley, David Duponchel +Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip-utils/master/LICENSE.markdown. + +*/ +!function(a){"object"==typeof exports?module.exports=a():"function"==typeof define&&define.amd?define(a):"undefined"!=typeof window?window.JSZipUtils=a():"undefined"!=typeof global?global.JSZipUtils=a():"undefined"!=typeof self&&(self.JSZipUtils=a())}(function(){return function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};b[g][0].call(j.exports,function(a){var c=b[g][1][a];return e(c?c:a)},j,j.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g + +(c) 2009-2016 Stuart Knightley +Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/master/LICENSE.markdown. + +JSZip uses the library pako released under the MIT license : +https://github.com/nodeca/pako/blob/master/LICENSE +*/ + +(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.JSZip = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o> 2; + enc2 = ((chr1 & 3) << 4) | (chr2 >> 4); + enc3 = remainingBytes > 1 ? (((chr2 & 15) << 2) | (chr3 >> 6)) : 64; + enc4 = remainingBytes > 2 ? (chr3 & 63) : 64; + + output.push(_keyStr.charAt(enc1) + _keyStr.charAt(enc2) + _keyStr.charAt(enc3) + _keyStr.charAt(enc4)); + + } + + return output.join(""); +}; + +// public method for decoding +exports.decode = function(input) { + var chr1, chr2, chr3; + var enc1, enc2, enc3, enc4; + var i = 0, resultIndex = 0; + + var dataUrlPrefix = "data:"; + + if (input.substr(0, dataUrlPrefix.length) === dataUrlPrefix) { + // This is a common error: people give a data url + // (data:image/png;base64,iVBOR...) with a {base64: true} and + // wonders why things don't work. + // We can detect that the string input looks like a data url but we + // *can't* be sure it is one: removing everything up to the comma would + // be too dangerous. + throw new Error("Invalid base64 input, it looks like a data url."); + } + + input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); + + var totalLength = input.length * 3 / 4; + if(input.charAt(input.length - 1) === _keyStr.charAt(64)) { + totalLength--; + } + if(input.charAt(input.length - 2) === _keyStr.charAt(64)) { + totalLength--; + } + if (totalLength % 1 !== 0) { + // totalLength is not an integer, the length does not match a valid + // base64 content. That can happen if: + // - the input is not a base64 content + // - the input is *almost* a base64 content, with a extra chars at the + // beginning or at the end + // - the input uses a base64 variant (base64url for example) + throw new Error("Invalid base64 input, bad content length."); + } + var output; + if (support.uint8array) { + output = new Uint8Array(totalLength|0); + } else { + output = new Array(totalLength|0); + } + + while (i < input.length) { + + enc1 = _keyStr.indexOf(input.charAt(i++)); + enc2 = _keyStr.indexOf(input.charAt(i++)); + enc3 = _keyStr.indexOf(input.charAt(i++)); + enc4 = _keyStr.indexOf(input.charAt(i++)); + + chr1 = (enc1 << 2) | (enc2 >> 4); + chr2 = ((enc2 & 15) << 4) | (enc3 >> 2); + chr3 = ((enc3 & 3) << 6) | enc4; + + output[resultIndex++] = chr1; + + if (enc3 !== 64) { + output[resultIndex++] = chr2; + } + if (enc4 !== 64) { + output[resultIndex++] = chr3; + } + + } + + return output; +}; + +},{"./support":30,"./utils":32}],2:[function(require,module,exports){ +'use strict'; + +var external = require("./external"); +var DataWorker = require('./stream/DataWorker'); +var Crc32Probe = require('./stream/Crc32Probe'); +var DataLengthProbe = require('./stream/DataLengthProbe'); + +/** + * Represent a compressed object, with everything needed to decompress it. + * @constructor + * @param {number} compressedSize the size of the data compressed. + * @param {number} uncompressedSize the size of the data after decompression. + * @param {number} crc32 the crc32 of the decompressed file. + * @param {object} compression the type of compression, see lib/compressions.js. + * @param {String|ArrayBuffer|Uint8Array|Buffer} data the compressed data. + */ +function CompressedObject(compressedSize, uncompressedSize, crc32, compression, data) { + this.compressedSize = compressedSize; + this.uncompressedSize = uncompressedSize; + this.crc32 = crc32; + this.compression = compression; + this.compressedContent = data; +} + +CompressedObject.prototype = { + /** + * Create a worker to get the uncompressed content. + * @return {GenericWorker} the worker. + */ + getContentWorker: function () { + var worker = new DataWorker(external.Promise.resolve(this.compressedContent)) + .pipe(this.compression.uncompressWorker()) + .pipe(new DataLengthProbe("data_length")); + + var that = this; + worker.on("end", function () { + if (this.streamInfo['data_length'] !== that.uncompressedSize) { + throw new Error("Bug : uncompressed data size mismatch"); + } + }); + return worker; + }, + /** + * Create a worker to get the compressed content. + * @return {GenericWorker} the worker. + */ + getCompressedWorker: function () { + return new DataWorker(external.Promise.resolve(this.compressedContent)) + .withStreamInfo("compressedSize", this.compressedSize) + .withStreamInfo("uncompressedSize", this.uncompressedSize) + .withStreamInfo("crc32", this.crc32) + .withStreamInfo("compression", this.compression) + ; + } +}; + +/** + * Chain the given worker with other workers to compress the content with the + * given compression. + * @param {GenericWorker} uncompressedWorker the worker to pipe. + * @param {Object} compression the compression object. + * @param {Object} compressionOptions the options to use when compressing. + * @return {GenericWorker} the new worker compressing the content. + */ +CompressedObject.createWorkerFrom = function (uncompressedWorker, compression, compressionOptions) { + return uncompressedWorker + .pipe(new Crc32Probe()) + .pipe(new DataLengthProbe("uncompressedSize")) + .pipe(compression.compressWorker(compressionOptions)) + .pipe(new DataLengthProbe("compressedSize")) + .withStreamInfo("compression", compression); +}; + +module.exports = CompressedObject; + +},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(require,module,exports){ +'use strict'; + +var GenericWorker = require("./stream/GenericWorker"); + +exports.STORE = { + magic: "\x00\x00", + compressWorker : function (compressionOptions) { + return new GenericWorker("STORE compression"); + }, + uncompressWorker : function () { + return new GenericWorker("STORE decompression"); + } +}; +exports.DEFLATE = require('./flate'); + +},{"./flate":7,"./stream/GenericWorker":28}],4:[function(require,module,exports){ +'use strict'; + +var utils = require('./utils'); + +/** + * The following functions come from pako, from pako/lib/zlib/crc32.js + * released under the MIT license, see pako https://github.com/nodeca/pako/ + */ + +// Use ordinary array, since untyped makes no boost here +function makeTable() { + var c, table = []; + + for(var n =0; n < 256; n++){ + c = n; + for(var k =0; k < 8; k++){ + c = ((c&1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1)); + } + table[n] = c; + } + + return table; +} + +// Create table on load. Just 255 signed longs. Not a problem. +var crcTable = makeTable(); + + +function crc32(crc, buf, len, pos) { + var t = crcTable, end = pos + len; + + crc = crc ^ (-1); + + for (var i = pos; i < end; i++ ) { + crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF]; + } + + return (crc ^ (-1)); // >>> 0; +} + +// That's all for the pako functions. + +/** + * Compute the crc32 of a string. + * This is almost the same as the function crc32, but for strings. Using the + * same function for the two use cases leads to horrible performances. + * @param {Number} crc the starting value of the crc. + * @param {String} str the string to use. + * @param {Number} len the length of the string. + * @param {Number} pos the starting position for the crc32 computation. + * @return {Number} the computed crc32. + */ +function crc32str(crc, str, len, pos) { + var t = crcTable, end = pos + len; + + crc = crc ^ (-1); + + for (var i = pos; i < end; i++ ) { + crc = (crc >>> 8) ^ t[(crc ^ str.charCodeAt(i)) & 0xFF]; + } + + return (crc ^ (-1)); // >>> 0; +} + +module.exports = function crc32wrapper(input, crc) { + if (typeof input === "undefined" || !input.length) { + return 0; + } + + var isArray = utils.getTypeOf(input) !== "string"; + + if(isArray) { + return crc32(crc|0, input, input.length, 0); + } else { + return crc32str(crc|0, input, input.length, 0); + } +}; + +},{"./utils":32}],5:[function(require,module,exports){ +'use strict'; +exports.base64 = false; +exports.binary = false; +exports.dir = false; +exports.createFolders = true; +exports.date = null; +exports.compression = null; +exports.compressionOptions = null; +exports.comment = null; +exports.unixPermissions = null; +exports.dosPermissions = null; + +},{}],6:[function(require,module,exports){ +/* global Promise */ +'use strict'; + +// load the global object first: +// - it should be better integrated in the system (unhandledRejection in node) +// - the environment may have a custom Promise implementation (see zone.js) +var ES6Promise = null; +if (typeof Promise !== "undefined") { + ES6Promise = Promise; +} else { + ES6Promise = require("lie"); +} + +/** + * Let the user use/change some implementations. + */ +module.exports = { + Promise: ES6Promise +}; + +},{"lie":37}],7:[function(require,module,exports){ +'use strict'; +var USE_TYPEDARRAY = (typeof Uint8Array !== 'undefined') && (typeof Uint16Array !== 'undefined') && (typeof Uint32Array !== 'undefined'); + +var pako = require("pako"); +var utils = require("./utils"); +var GenericWorker = require("./stream/GenericWorker"); + +var ARRAY_TYPE = USE_TYPEDARRAY ? "uint8array" : "array"; + +exports.magic = "\x08\x00"; + +/** + * Create a worker that uses pako to inflate/deflate. + * @constructor + * @param {String} action the name of the pako function to call : either "Deflate" or "Inflate". + * @param {Object} options the options to use when (de)compressing. + */ +function FlateWorker(action, options) { + GenericWorker.call(this, "FlateWorker/" + action); + + this._pako = null; + this._pakoAction = action; + this._pakoOptions = options; + // the `meta` object from the last chunk received + // this allow this worker to pass around metadata + this.meta = {}; +} + +utils.inherits(FlateWorker, GenericWorker); + +/** + * @see GenericWorker.processChunk + */ +FlateWorker.prototype.processChunk = function (chunk) { + this.meta = chunk.meta; + if (this._pako === null) { + this._createPako(); + } + this._pako.push(utils.transformTo(ARRAY_TYPE, chunk.data), false); +}; + +/** + * @see GenericWorker.flush + */ +FlateWorker.prototype.flush = function () { + GenericWorker.prototype.flush.call(this); + if (this._pako === null) { + this._createPako(); + } + this._pako.push([], true); +}; +/** + * @see GenericWorker.cleanUp + */ +FlateWorker.prototype.cleanUp = function () { + GenericWorker.prototype.cleanUp.call(this); + this._pako = null; +}; + +/** + * Create the _pako object. + * TODO: lazy-loading this object isn't the best solution but it's the + * quickest. The best solution is to lazy-load the worker list. See also the + * issue #446. + */ +FlateWorker.prototype._createPako = function () { + this._pako = new pako[this._pakoAction]({ + raw: true, + level: this._pakoOptions.level || -1 // default compression + }); + var self = this; + this._pako.onData = function(data) { + self.push({ + data : data, + meta : self.meta + }); + }; +}; + +exports.compressWorker = function (compressionOptions) { + return new FlateWorker("Deflate", compressionOptions); +}; +exports.uncompressWorker = function () { + return new FlateWorker("Inflate", {}); +}; + +},{"./stream/GenericWorker":28,"./utils":32,"pako":38}],8:[function(require,module,exports){ +'use strict'; + +var utils = require('../utils'); +var GenericWorker = require('../stream/GenericWorker'); +var utf8 = require('../utf8'); +var crc32 = require('../crc32'); +var signature = require('../signature'); + +/** + * Transform an integer into a string in hexadecimal. + * @private + * @param {number} dec the number to convert. + * @param {number} bytes the number of bytes to generate. + * @returns {string} the result. + */ +var decToHex = function(dec, bytes) { + var hex = "", i; + for (i = 0; i < bytes; i++) { + hex += String.fromCharCode(dec & 0xff); + dec = dec >>> 8; + } + return hex; +}; + +/** + * Generate the UNIX part of the external file attributes. + * @param {Object} unixPermissions the unix permissions or null. + * @param {Boolean} isDir true if the entry is a directory, false otherwise. + * @return {Number} a 32 bit integer. + * + * adapted from http://unix.stackexchange.com/questions/14705/the-zip-formats-external-file-attribute : + * + * TTTTsstrwxrwxrwx0000000000ADVSHR + * ^^^^____________________________ file type, see zipinfo.c (UNX_*) + * ^^^_________________________ setuid, setgid, sticky + * ^^^^^^^^^________________ permissions + * ^^^^^^^^^^______ not used ? + * ^^^^^^ DOS attribute bits : Archive, Directory, Volume label, System file, Hidden, Read only + */ +var generateUnixExternalFileAttr = function (unixPermissions, isDir) { + + var result = unixPermissions; + if (!unixPermissions) { + // I can't use octal values in strict mode, hence the hexa. + // 040775 => 0x41fd + // 0100664 => 0x81b4 + result = isDir ? 0x41fd : 0x81b4; + } + return (result & 0xFFFF) << 16; +}; + +/** + * Generate the DOS part of the external file attributes. + * @param {Object} dosPermissions the dos permissions or null. + * @param {Boolean} isDir true if the entry is a directory, false otherwise. + * @return {Number} a 32 bit integer. + * + * Bit 0 Read-Only + * Bit 1 Hidden + * Bit 2 System + * Bit 3 Volume Label + * Bit 4 Directory + * Bit 5 Archive + */ +var generateDosExternalFileAttr = function (dosPermissions, isDir) { + + // the dir flag is already set for compatibility + return (dosPermissions || 0) & 0x3F; +}; + +/** + * Generate the various parts used in the construction of the final zip file. + * @param {Object} streamInfo the hash with information about the compressed file. + * @param {Boolean} streamedContent is the content streamed ? + * @param {Boolean} streamingEnded is the stream finished ? + * @param {number} offset the current offset from the start of the zip file. + * @param {String} platform let's pretend we are this platform (change platform dependents fields) + * @param {Function} encodeFileName the function to encode the file name / comment. + * @return {Object} the zip parts. + */ +var generateZipParts = function(streamInfo, streamedContent, streamingEnded, offset, platform, encodeFileName) { + var file = streamInfo['file'], + compression = streamInfo['compression'], + useCustomEncoding = encodeFileName !== utf8.utf8encode, + encodedFileName = utils.transformTo("string", encodeFileName(file.name)), + utfEncodedFileName = utils.transformTo("string", utf8.utf8encode(file.name)), + comment = file.comment, + encodedComment = utils.transformTo("string", encodeFileName(comment)), + utfEncodedComment = utils.transformTo("string", utf8.utf8encode(comment)), + useUTF8ForFileName = utfEncodedFileName.length !== file.name.length, + useUTF8ForComment = utfEncodedComment.length !== comment.length, + dosTime, + dosDate, + extraFields = "", + unicodePathExtraField = "", + unicodeCommentExtraField = "", + dir = file.dir, + date = file.date; + + + var dataInfo = { + crc32 : 0, + compressedSize : 0, + uncompressedSize : 0 + }; + + // if the content is streamed, the sizes/crc32 are only available AFTER + // the end of the stream. + if (!streamedContent || streamingEnded) { + dataInfo.crc32 = streamInfo['crc32']; + dataInfo.compressedSize = streamInfo['compressedSize']; + dataInfo.uncompressedSize = streamInfo['uncompressedSize']; + } + + var bitflag = 0; + if (streamedContent) { + // Bit 3: the sizes/crc32 are set to zero in the local header. + // The correct values are put in the data descriptor immediately + // following the compressed data. + bitflag |= 0x0008; + } + if (!useCustomEncoding && (useUTF8ForFileName || useUTF8ForComment)) { + // Bit 11: Language encoding flag (EFS). + bitflag |= 0x0800; + } + + + var extFileAttr = 0; + var versionMadeBy = 0; + if (dir) { + // dos or unix, we set the dos dir flag + extFileAttr |= 0x00010; + } + if(platform === "UNIX") { + versionMadeBy = 0x031E; // UNIX, version 3.0 + extFileAttr |= generateUnixExternalFileAttr(file.unixPermissions, dir); + } else { // DOS or other, fallback to DOS + versionMadeBy = 0x0014; // DOS, version 2.0 + extFileAttr |= generateDosExternalFileAttr(file.dosPermissions, dir); + } + + // date + // @see http://www.delorie.com/djgpp/doc/rbinter/it/52/13.html + // @see http://www.delorie.com/djgpp/doc/rbinter/it/65/16.html + // @see http://www.delorie.com/djgpp/doc/rbinter/it/66/16.html + + dosTime = date.getUTCHours(); + dosTime = dosTime << 6; + dosTime = dosTime | date.getUTCMinutes(); + dosTime = dosTime << 5; + dosTime = dosTime | date.getUTCSeconds() / 2; + + dosDate = date.getUTCFullYear() - 1980; + dosDate = dosDate << 4; + dosDate = dosDate | (date.getUTCMonth() + 1); + dosDate = dosDate << 5; + dosDate = dosDate | date.getUTCDate(); + + if (useUTF8ForFileName) { + // set the unicode path extra field. unzip needs at least one extra + // field to correctly handle unicode path, so using the path is as good + // as any other information. This could improve the situation with + // other archive managers too. + // This field is usually used without the utf8 flag, with a non + // unicode path in the header (winrar, winzip). This helps (a bit) + // with the messy Windows' default compressed folders feature but + // breaks on p7zip which doesn't seek the unicode path extra field. + // So for now, UTF-8 everywhere ! + unicodePathExtraField = + // Version + decToHex(1, 1) + + // NameCRC32 + decToHex(crc32(encodedFileName), 4) + + // UnicodeName + utfEncodedFileName; + + extraFields += + // Info-ZIP Unicode Path Extra Field + "\x75\x70" + + // size + decToHex(unicodePathExtraField.length, 2) + + // content + unicodePathExtraField; + } + + if(useUTF8ForComment) { + + unicodeCommentExtraField = + // Version + decToHex(1, 1) + + // CommentCRC32 + decToHex(crc32(encodedComment), 4) + + // UnicodeName + utfEncodedComment; + + extraFields += + // Info-ZIP Unicode Path Extra Field + "\x75\x63" + + // size + decToHex(unicodeCommentExtraField.length, 2) + + // content + unicodeCommentExtraField; + } + + var header = ""; + + // version needed to extract + header += "\x0A\x00"; + // general purpose bit flag + header += decToHex(bitflag, 2); + // compression method + header += compression.magic; + // last mod file time + header += decToHex(dosTime, 2); + // last mod file date + header += decToHex(dosDate, 2); + // crc-32 + header += decToHex(dataInfo.crc32, 4); + // compressed size + header += decToHex(dataInfo.compressedSize, 4); + // uncompressed size + header += decToHex(dataInfo.uncompressedSize, 4); + // file name length + header += decToHex(encodedFileName.length, 2); + // extra field length + header += decToHex(extraFields.length, 2); + + + var fileRecord = signature.LOCAL_FILE_HEADER + header + encodedFileName + extraFields; + + var dirRecord = signature.CENTRAL_FILE_HEADER + + // version made by (00: DOS) + decToHex(versionMadeBy, 2) + + // file header (common to file and central directory) + header + + // file comment length + decToHex(encodedComment.length, 2) + + // disk number start + "\x00\x00" + + // internal file attributes TODO + "\x00\x00" + + // external file attributes + decToHex(extFileAttr, 4) + + // relative offset of local header + decToHex(offset, 4) + + // file name + encodedFileName + + // extra field + extraFields + + // file comment + encodedComment; + + return { + fileRecord: fileRecord, + dirRecord: dirRecord + }; +}; + +/** + * Generate the EOCD record. + * @param {Number} entriesCount the number of entries in the zip file. + * @param {Number} centralDirLength the length (in bytes) of the central dir. + * @param {Number} localDirLength the length (in bytes) of the local dir. + * @param {String} comment the zip file comment as a binary string. + * @param {Function} encodeFileName the function to encode the comment. + * @return {String} the EOCD record. + */ +var generateCentralDirectoryEnd = function (entriesCount, centralDirLength, localDirLength, comment, encodeFileName) { + var dirEnd = ""; + var encodedComment = utils.transformTo("string", encodeFileName(comment)); + + // end of central dir signature + dirEnd = signature.CENTRAL_DIRECTORY_END + + // number of this disk + "\x00\x00" + + // number of the disk with the start of the central directory + "\x00\x00" + + // total number of entries in the central directory on this disk + decToHex(entriesCount, 2) + + // total number of entries in the central directory + decToHex(entriesCount, 2) + + // size of the central directory 4 bytes + decToHex(centralDirLength, 4) + + // offset of start of central directory with respect to the starting disk number + decToHex(localDirLength, 4) + + // .ZIP file comment length + decToHex(encodedComment.length, 2) + + // .ZIP file comment + encodedComment; + + return dirEnd; +}; + +/** + * Generate data descriptors for a file entry. + * @param {Object} streamInfo the hash generated by a worker, containing information + * on the file entry. + * @return {String} the data descriptors. + */ +var generateDataDescriptors = function (streamInfo) { + var descriptor = ""; + descriptor = signature.DATA_DESCRIPTOR + + // crc-32 4 bytes + decToHex(streamInfo['crc32'], 4) + + // compressed size 4 bytes + decToHex(streamInfo['compressedSize'], 4) + + // uncompressed size 4 bytes + decToHex(streamInfo['uncompressedSize'], 4); + + return descriptor; +}; + + +/** + * A worker to concatenate other workers to create a zip file. + * @param {Boolean} streamFiles `true` to stream the content of the files, + * `false` to accumulate it. + * @param {String} comment the comment to use. + * @param {String} platform the platform to use, "UNIX" or "DOS". + * @param {Function} encodeFileName the function to encode file names and comments. + */ +function ZipFileWorker(streamFiles, comment, platform, encodeFileName) { + GenericWorker.call(this, "ZipFileWorker"); + // The number of bytes written so far. This doesn't count accumulated chunks. + this.bytesWritten = 0; + // The comment of the zip file + this.zipComment = comment; + // The platform "generating" the zip file. + this.zipPlatform = platform; + // the function to encode file names and comments. + this.encodeFileName = encodeFileName; + // Should we stream the content of the files ? + this.streamFiles = streamFiles; + // If `streamFiles` is false, we will need to accumulate the content of the + // files to calculate sizes / crc32 (and write them *before* the content). + // This boolean indicates if we are accumulating chunks (it will change a lot + // during the lifetime of this worker). + this.accumulate = false; + // The buffer receiving chunks when accumulating content. + this.contentBuffer = []; + // The list of generated directory records. + this.dirRecords = []; + // The offset (in bytes) from the beginning of the zip file for the current source. + this.currentSourceOffset = 0; + // The total number of entries in this zip file. + this.entriesCount = 0; + // the name of the file currently being added, null when handling the end of the zip file. + // Used for the emitted metadata. + this.currentFile = null; + + + + this._sources = []; +} +utils.inherits(ZipFileWorker, GenericWorker); + +/** + * @see GenericWorker.push + */ +ZipFileWorker.prototype.push = function (chunk) { + + var currentFilePercent = chunk.meta.percent || 0; + var entriesCount = this.entriesCount; + var remainingFiles = this._sources.length; + + if(this.accumulate) { + this.contentBuffer.push(chunk); + } else { + this.bytesWritten += chunk.data.length; + + GenericWorker.prototype.push.call(this, { + data : chunk.data, + meta : { + currentFile : this.currentFile, + percent : entriesCount ? (currentFilePercent + 100 * (entriesCount - remainingFiles - 1)) / entriesCount : 100 + } + }); + } +}; + +/** + * The worker started a new source (an other worker). + * @param {Object} streamInfo the streamInfo object from the new source. + */ +ZipFileWorker.prototype.openedSource = function (streamInfo) { + this.currentSourceOffset = this.bytesWritten; + this.currentFile = streamInfo['file'].name; + + var streamedContent = this.streamFiles && !streamInfo['file'].dir; + + // don't stream folders (because they don't have any content) + if(streamedContent) { + var record = generateZipParts(streamInfo, streamedContent, false, this.currentSourceOffset, this.zipPlatform, this.encodeFileName); + this.push({ + data : record.fileRecord, + meta : {percent:0} + }); + } else { + // we need to wait for the whole file before pushing anything + this.accumulate = true; + } +}; + +/** + * The worker finished a source (an other worker). + * @param {Object} streamInfo the streamInfo object from the finished source. + */ +ZipFileWorker.prototype.closedSource = function (streamInfo) { + this.accumulate = false; + var streamedContent = this.streamFiles && !streamInfo['file'].dir; + var record = generateZipParts(streamInfo, streamedContent, true, this.currentSourceOffset, this.zipPlatform, this.encodeFileName); + + this.dirRecords.push(record.dirRecord); + if(streamedContent) { + // after the streamed file, we put data descriptors + this.push({ + data : generateDataDescriptors(streamInfo), + meta : {percent:100} + }); + } else { + // the content wasn't streamed, we need to push everything now + // first the file record, then the content + this.push({ + data : record.fileRecord, + meta : {percent:0} + }); + while(this.contentBuffer.length) { + this.push(this.contentBuffer.shift()); + } + } + this.currentFile = null; +}; + +/** + * @see GenericWorker.flush + */ +ZipFileWorker.prototype.flush = function () { + + var localDirLength = this.bytesWritten; + for(var i = 0; i < this.dirRecords.length; i++) { + this.push({ + data : this.dirRecords[i], + meta : {percent:100} + }); + } + var centralDirLength = this.bytesWritten - localDirLength; + + var dirEnd = generateCentralDirectoryEnd(this.dirRecords.length, centralDirLength, localDirLength, this.zipComment, this.encodeFileName); + + this.push({ + data : dirEnd, + meta : {percent:100} + }); +}; + +/** + * Prepare the next source to be read. + */ +ZipFileWorker.prototype.prepareNextSource = function () { + this.previous = this._sources.shift(); + this.openedSource(this.previous.streamInfo); + if (this.isPaused) { + this.previous.pause(); + } else { + this.previous.resume(); + } +}; + +/** + * @see GenericWorker.registerPrevious + */ +ZipFileWorker.prototype.registerPrevious = function (previous) { + this._sources.push(previous); + var self = this; + + previous.on('data', function (chunk) { + self.processChunk(chunk); + }); + previous.on('end', function () { + self.closedSource(self.previous.streamInfo); + if(self._sources.length) { + self.prepareNextSource(); + } else { + self.end(); + } + }); + previous.on('error', function (e) { + self.error(e); + }); + return this; +}; + +/** + * @see GenericWorker.resume + */ +ZipFileWorker.prototype.resume = function () { + if(!GenericWorker.prototype.resume.call(this)) { + return false; + } + + if (!this.previous && this._sources.length) { + this.prepareNextSource(); + return true; + } + if (!this.previous && !this._sources.length && !this.generatedError) { + this.end(); + return true; + } +}; + +/** + * @see GenericWorker.error + */ +ZipFileWorker.prototype.error = function (e) { + var sources = this._sources; + if(!GenericWorker.prototype.error.call(this, e)) { + return false; + } + for(var i = 0; i < sources.length; i++) { + try { + sources[i].error(e); + } catch(e) { + // the `error` exploded, nothing to do + } + } + return true; +}; + +/** + * @see GenericWorker.lock + */ +ZipFileWorker.prototype.lock = function () { + GenericWorker.prototype.lock.call(this); + var sources = this._sources; + for(var i = 0; i < sources.length; i++) { + sources[i].lock(); + } +}; + +module.exports = ZipFileWorker; + +},{"../crc32":4,"../signature":23,"../stream/GenericWorker":28,"../utf8":31,"../utils":32}],9:[function(require,module,exports){ +'use strict'; + +var compressions = require('../compressions'); +var ZipFileWorker = require('./ZipFileWorker'); + +/** + * Find the compression to use. + * @param {String} fileCompression the compression defined at the file level, if any. + * @param {String} zipCompression the compression defined at the load() level. + * @return {Object} the compression object to use. + */ +var getCompression = function (fileCompression, zipCompression) { + + var compressionName = fileCompression || zipCompression; + var compression = compressions[compressionName]; + if (!compression) { + throw new Error(compressionName + " is not a valid compression method !"); + } + return compression; +}; + +/** + * Create a worker to generate a zip file. + * @param {JSZip} zip the JSZip instance at the right root level. + * @param {Object} options to generate the zip file. + * @param {String} comment the comment to use. + */ +exports.generateWorker = function (zip, options, comment) { + + var zipFileWorker = new ZipFileWorker(options.streamFiles, comment, options.platform, options.encodeFileName); + var entriesCount = 0; + try { + + zip.forEach(function (relativePath, file) { + entriesCount++; + var compression = getCompression(file.options.compression, options.compression); + var compressionOptions = file.options.compressionOptions || options.compressionOptions || {}; + var dir = file.dir, date = file.date; + + file._compressWorker(compression, compressionOptions) + .withStreamInfo("file", { + name : relativePath, + dir : dir, + date : date, + comment : file.comment || "", + unixPermissions : file.unixPermissions, + dosPermissions : file.dosPermissions + }) + .pipe(zipFileWorker); + }); + zipFileWorker.entriesCount = entriesCount; + } catch (e) { + zipFileWorker.error(e); + } + + return zipFileWorker; +}; + +},{"../compressions":3,"./ZipFileWorker":8}],10:[function(require,module,exports){ +'use strict'; + +/** + * Representation a of zip file in js + * @constructor + */ +function JSZip() { + // if this constructor is used without `new`, it adds `new` before itself: + if(!(this instanceof JSZip)) { + return new JSZip(); + } + + if(arguments.length) { + throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide."); + } + + // object containing the files : + // { + // "folder/" : {...}, + // "folder/data.txt" : {...} + // } + // NOTE: we use a null prototype because we do not + // want filenames like "toString" coming from a zip file + // to overwrite methods and attributes in a normal Object. + this.files = Object.create(null); + + this.comment = null; + + // Where we are in the hierarchy + this.root = ""; + this.clone = function() { + var newObj = new JSZip(); + for (var i in this) { + if (typeof this[i] !== "function") { + newObj[i] = this[i]; + } + } + return newObj; + }; +} +JSZip.prototype = require('./object'); +JSZip.prototype.loadAsync = require('./load'); +JSZip.support = require('./support'); +JSZip.defaults = require('./defaults'); + +// TODO find a better way to handle this version, +// a require('package.json').version doesn't work with webpack, see #327 +JSZip.version = "3.7.1"; + +JSZip.loadAsync = function (content, options) { + return new JSZip().loadAsync(content, options); +}; + +JSZip.external = require("./external"); +module.exports = JSZip; + +},{"./defaults":5,"./external":6,"./load":11,"./object":15,"./support":30}],11:[function(require,module,exports){ +'use strict'; +var utils = require('./utils'); +var external = require("./external"); +var utf8 = require('./utf8'); +var ZipEntries = require('./zipEntries'); +var Crc32Probe = require('./stream/Crc32Probe'); +var nodejsUtils = require("./nodejsUtils"); + +/** + * Check the CRC32 of an entry. + * @param {ZipEntry} zipEntry the zip entry to check. + * @return {Promise} the result. + */ +function checkEntryCRC32(zipEntry) { + return new external.Promise(function (resolve, reject) { + var worker = zipEntry.decompressed.getContentWorker().pipe(new Crc32Probe()); + worker.on("error", function (e) { + reject(e); + }) + .on("end", function () { + if (worker.streamInfo.crc32 !== zipEntry.decompressed.crc32) { + reject(new Error("Corrupted zip : CRC32 mismatch")); + } else { + resolve(); + } + }) + .resume(); + }); +} + +module.exports = function (data, options) { + var zip = this; + options = utils.extend(options || {}, { + base64: false, + checkCRC32: false, + optimizedBinaryString: false, + createFolders: false, + decodeFileName: utf8.utf8decode + }); + + if (nodejsUtils.isNode && nodejsUtils.isStream(data)) { + return external.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file.")); + } + + return utils.prepareContent("the loaded zip file", data, true, options.optimizedBinaryString, options.base64) + .then(function (data) { + var zipEntries = new ZipEntries(options); + zipEntries.load(data); + return zipEntries; + }).then(function checkCRC32(zipEntries) { + var promises = [external.Promise.resolve(zipEntries)]; + var files = zipEntries.files; + if (options.checkCRC32) { + for (var i = 0; i < files.length; i++) { + promises.push(checkEntryCRC32(files[i])); + } + } + return external.Promise.all(promises); + }).then(function addFiles(results) { + var zipEntries = results.shift(); + var files = zipEntries.files; + for (var i = 0; i < files.length; i++) { + var input = files[i]; + zip.file(input.fileNameStr, input.decompressed, { + binary: true, + optimizedBinaryString: true, + date: input.date, + dir: input.dir, + comment: input.fileCommentStr.length ? input.fileCommentStr : null, + unixPermissions: input.unixPermissions, + dosPermissions: input.dosPermissions, + createFolders: options.createFolders + }); + } + if (zipEntries.zipComment.length) { + zip.comment = zipEntries.zipComment; + } + + return zip; + }); +}; + +},{"./external":6,"./nodejsUtils":14,"./stream/Crc32Probe":25,"./utf8":31,"./utils":32,"./zipEntries":33}],12:[function(require,module,exports){ +"use strict"; + +var utils = require('../utils'); +var GenericWorker = require('../stream/GenericWorker'); + +/** + * A worker that use a nodejs stream as source. + * @constructor + * @param {String} filename the name of the file entry for this stream. + * @param {Readable} stream the nodejs stream. + */ +function NodejsStreamInputAdapter(filename, stream) { + GenericWorker.call(this, "Nodejs stream input adapter for " + filename); + this._upstreamEnded = false; + this._bindStream(stream); +} + +utils.inherits(NodejsStreamInputAdapter, GenericWorker); + +/** + * Prepare the stream and bind the callbacks on it. + * Do this ASAP on node 0.10 ! A lazy binding doesn't always work. + * @param {Stream} stream the nodejs stream to use. + */ +NodejsStreamInputAdapter.prototype._bindStream = function (stream) { + var self = this; + this._stream = stream; + stream.pause(); + stream + .on("data", function (chunk) { + self.push({ + data: chunk, + meta : { + percent : 0 + } + }); + }) + .on("error", function (e) { + if(self.isPaused) { + this.generatedError = e; + } else { + self.error(e); + } + }) + .on("end", function () { + if(self.isPaused) { + self._upstreamEnded = true; + } else { + self.end(); + } + }); +}; +NodejsStreamInputAdapter.prototype.pause = function () { + if(!GenericWorker.prototype.pause.call(this)) { + return false; + } + this._stream.pause(); + return true; +}; +NodejsStreamInputAdapter.prototype.resume = function () { + if(!GenericWorker.prototype.resume.call(this)) { + return false; + } + + if(this._upstreamEnded) { + this.end(); + } else { + this._stream.resume(); + } + + return true; +}; + +module.exports = NodejsStreamInputAdapter; + +},{"../stream/GenericWorker":28,"../utils":32}],13:[function(require,module,exports){ +'use strict'; + +var Readable = require('readable-stream').Readable; + +var utils = require('../utils'); +utils.inherits(NodejsStreamOutputAdapter, Readable); + +/** +* A nodejs stream using a worker as source. +* @see the SourceWrapper in http://nodejs.org/api/stream.html +* @constructor +* @param {StreamHelper} helper the helper wrapping the worker +* @param {Object} options the nodejs stream options +* @param {Function} updateCb the update callback. +*/ +function NodejsStreamOutputAdapter(helper, options, updateCb) { + Readable.call(this, options); + this._helper = helper; + + var self = this; + helper.on("data", function (data, meta) { + if (!self.push(data)) { + self._helper.pause(); + } + if(updateCb) { + updateCb(meta); + } + }) + .on("error", function(e) { + self.emit('error', e); + }) + .on("end", function () { + self.push(null); + }); +} + + +NodejsStreamOutputAdapter.prototype._read = function() { + this._helper.resume(); +}; + +module.exports = NodejsStreamOutputAdapter; + +},{"../utils":32,"readable-stream":16}],14:[function(require,module,exports){ +'use strict'; + +module.exports = { + /** + * True if this is running in Nodejs, will be undefined in a browser. + * In a browser, browserify won't include this file and the whole module + * will be resolved an empty object. + */ + isNode : typeof Buffer !== "undefined", + /** + * Create a new nodejs Buffer from an existing content. + * @param {Object} data the data to pass to the constructor. + * @param {String} encoding the encoding to use. + * @return {Buffer} a new Buffer. + */ + newBufferFrom: function(data, encoding) { + if (Buffer.from && Buffer.from !== Uint8Array.from) { + return Buffer.from(data, encoding); + } else { + if (typeof data === "number") { + // Safeguard for old Node.js versions. On newer versions, + // Buffer.from(number) / Buffer(number, encoding) already throw. + throw new Error("The \"data\" argument must not be a number"); + } + return new Buffer(data, encoding); + } + }, + /** + * Create a new nodejs Buffer with the specified size. + * @param {Integer} size the size of the buffer. + * @return {Buffer} a new Buffer. + */ + allocBuffer: function (size) { + if (Buffer.alloc) { + return Buffer.alloc(size); + } else { + var buf = new Buffer(size); + buf.fill(0); + return buf; + } + }, + /** + * Find out if an object is a Buffer. + * @param {Object} b the object to test. + * @return {Boolean} true if the object is a Buffer, false otherwise. + */ + isBuffer : function(b){ + return Buffer.isBuffer(b); + }, + + isStream : function (obj) { + return obj && + typeof obj.on === "function" && + typeof obj.pause === "function" && + typeof obj.resume === "function"; + } +}; + +},{}],15:[function(require,module,exports){ +'use strict'; +var utf8 = require('./utf8'); +var utils = require('./utils'); +var GenericWorker = require('./stream/GenericWorker'); +var StreamHelper = require('./stream/StreamHelper'); +var defaults = require('./defaults'); +var CompressedObject = require('./compressedObject'); +var ZipObject = require('./zipObject'); +var generate = require("./generate"); +var nodejsUtils = require("./nodejsUtils"); +var NodejsStreamInputAdapter = require("./nodejs/NodejsStreamInputAdapter"); + + +/** + * Add a file in the current folder. + * @private + * @param {string} name the name of the file + * @param {String|ArrayBuffer|Uint8Array|Buffer} data the data of the file + * @param {Object} originalOptions the options of the file + * @return {Object} the new file. + */ +var fileAdd = function(name, data, originalOptions) { + // be sure sub folders exist + var dataType = utils.getTypeOf(data), + parent; + + + /* + * Correct options. + */ + + var o = utils.extend(originalOptions || {}, defaults); + o.date = o.date || new Date(); + if (o.compression !== null) { + o.compression = o.compression.toUpperCase(); + } + + if (typeof o.unixPermissions === "string") { + o.unixPermissions = parseInt(o.unixPermissions, 8); + } + + // UNX_IFDIR 0040000 see zipinfo.c + if (o.unixPermissions && (o.unixPermissions & 0x4000)) { + o.dir = true; + } + // Bit 4 Directory + if (o.dosPermissions && (o.dosPermissions & 0x0010)) { + o.dir = true; + } + + if (o.dir) { + name = forceTrailingSlash(name); + } + if (o.createFolders && (parent = parentFolder(name))) { + folderAdd.call(this, parent, true); + } + + var isUnicodeString = dataType === "string" && o.binary === false && o.base64 === false; + if (!originalOptions || typeof originalOptions.binary === "undefined") { + o.binary = !isUnicodeString; + } + + + var isCompressedEmpty = (data instanceof CompressedObject) && data.uncompressedSize === 0; + + if (isCompressedEmpty || o.dir || !data || data.length === 0) { + o.base64 = false; + o.binary = true; + data = ""; + o.compression = "STORE"; + dataType = "string"; + } + + /* + * Convert content to fit. + */ + + var zipObjectContent = null; + if (data instanceof CompressedObject || data instanceof GenericWorker) { + zipObjectContent = data; + } else if (nodejsUtils.isNode && nodejsUtils.isStream(data)) { + zipObjectContent = new NodejsStreamInputAdapter(name, data); + } else { + zipObjectContent = utils.prepareContent(name, data, o.binary, o.optimizedBinaryString, o.base64); + } + + var object = new ZipObject(name, zipObjectContent, o); + this.files[name] = object; + /* + TODO: we can't throw an exception because we have async promises + (we can have a promise of a Date() for example) but returning a + promise is useless because file(name, data) returns the JSZip + object for chaining. Should we break that to allow the user + to catch the error ? + + return external.Promise.resolve(zipObjectContent) + .then(function () { + return object; + }); + */ +}; + +/** + * Find the parent folder of the path. + * @private + * @param {string} path the path to use + * @return {string} the parent folder, or "" + */ +var parentFolder = function (path) { + if (path.slice(-1) === '/') { + path = path.substring(0, path.length - 1); + } + var lastSlash = path.lastIndexOf('/'); + return (lastSlash > 0) ? path.substring(0, lastSlash) : ""; +}; + +/** + * Returns the path with a slash at the end. + * @private + * @param {String} path the path to check. + * @return {String} the path with a trailing slash. + */ +var forceTrailingSlash = function(path) { + // Check the name ends with a / + if (path.slice(-1) !== "/") { + path += "/"; // IE doesn't like substr(-1) + } + return path; +}; + +/** + * Add a (sub) folder in the current folder. + * @private + * @param {string} name the folder's name + * @param {boolean=} [createFolders] If true, automatically create sub + * folders. Defaults to false. + * @return {Object} the new folder. + */ +var folderAdd = function(name, createFolders) { + createFolders = (typeof createFolders !== 'undefined') ? createFolders : defaults.createFolders; + + name = forceTrailingSlash(name); + + // Does this folder already exist? + if (!this.files[name]) { + fileAdd.call(this, name, null, { + dir: true, + createFolders: createFolders + }); + } + return this.files[name]; +}; + +/** +* Cross-window, cross-Node-context regular expression detection +* @param {Object} object Anything +* @return {Boolean} true if the object is a regular expression, +* false otherwise +*/ +function isRegExp(object) { + return Object.prototype.toString.call(object) === "[object RegExp]"; +} + +// return the actual prototype of JSZip +var out = { + /** + * @see loadAsync + */ + load: function() { + throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide."); + }, + + + /** + * Call a callback function for each entry at this folder level. + * @param {Function} cb the callback function: + * function (relativePath, file) {...} + * It takes 2 arguments : the relative path and the file. + */ + forEach: function(cb) { + var filename, relativePath, file; + /* jshint ignore:start */ + // ignore warning about unwanted properties because this.files is a null prototype object + for (filename in this.files) { + file = this.files[filename]; + relativePath = filename.slice(this.root.length, filename.length); + if (relativePath && filename.slice(0, this.root.length) === this.root) { // the file is in the current root + cb(relativePath, file); // TODO reverse the parameters ? need to be clean AND consistent with the filter search fn... + } + } + /* jshint ignore:end */ + }, + + /** + * Filter nested files/folders with the specified function. + * @param {Function} search the predicate to use : + * function (relativePath, file) {...} + * It takes 2 arguments : the relative path and the file. + * @return {Array} An array of matching elements. + */ + filter: function(search) { + var result = []; + this.forEach(function (relativePath, entry) { + if (search(relativePath, entry)) { // the file matches the function + result.push(entry); + } + + }); + return result; + }, + + /** + * Add a file to the zip file, or search a file. + * @param {string|RegExp} name The name of the file to add (if data is defined), + * the name of the file to find (if no data) or a regex to match files. + * @param {String|ArrayBuffer|Uint8Array|Buffer} data The file data, either raw or base64 encoded + * @param {Object} o File options + * @return {JSZip|Object|Array} this JSZip object (when adding a file), + * a file (when searching by string) or an array of files (when searching by regex). + */ + file: function(name, data, o) { + if (arguments.length === 1) { + if (isRegExp(name)) { + var regexp = name; + return this.filter(function(relativePath, file) { + return !file.dir && regexp.test(relativePath); + }); + } + else { // text + var obj = this.files[this.root + name]; + if (obj && !obj.dir) { + return obj; + } else { + return null; + } + } + } + else { // more than one argument : we have data ! + name = this.root + name; + fileAdd.call(this, name, data, o); + } + return this; + }, + + /** + * Add a directory to the zip file, or search. + * @param {String|RegExp} arg The name of the directory to add, or a regex to search folders. + * @return {JSZip} an object with the new directory as the root, or an array containing matching folders. + */ + folder: function(arg) { + if (!arg) { + return this; + } + + if (isRegExp(arg)) { + return this.filter(function(relativePath, file) { + return file.dir && arg.test(relativePath); + }); + } + + // else, name is a new folder + var name = this.root + arg; + var newFolder = folderAdd.call(this, name); + + // Allow chaining by returning a new object with this folder as the root + var ret = this.clone(); + ret.root = newFolder.name; + return ret; + }, + + /** + * Delete a file, or a directory and all sub-files, from the zip + * @param {string} name the name of the file to delete + * @return {JSZip} this JSZip object + */ + remove: function(name) { + name = this.root + name; + var file = this.files[name]; + if (!file) { + // Look for any folders + if (name.slice(-1) !== "/") { + name += "/"; + } + file = this.files[name]; + } + + if (file && !file.dir) { + // file + delete this.files[name]; + } else { + // maybe a folder, delete recursively + var kids = this.filter(function(relativePath, file) { + return file.name.slice(0, name.length) === name; + }); + for (var i = 0; i < kids.length; i++) { + delete this.files[kids[i].name]; + } + } + + return this; + }, + + /** + * Generate the complete zip file + * @param {Object} options the options to generate the zip file : + * - compression, "STORE" by default. + * - type, "base64" by default. Values are : string, base64, uint8array, arraybuffer, blob. + * @return {String|Uint8Array|ArrayBuffer|Buffer|Blob} the zip file + */ + generate: function(options) { + throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide."); + }, + + /** + * Generate the complete zip file as an internal stream. + * @param {Object} options the options to generate the zip file : + * - compression, "STORE" by default. + * - type, "base64" by default. Values are : string, base64, uint8array, arraybuffer, blob. + * @return {StreamHelper} the streamed zip file. + */ + generateInternalStream: function(options) { + var worker, opts = {}; + try { + opts = utils.extend(options || {}, { + streamFiles: false, + compression: "STORE", + compressionOptions : null, + type: "", + platform: "DOS", + comment: null, + mimeType: 'application/zip', + encodeFileName: utf8.utf8encode + }); + + opts.type = opts.type.toLowerCase(); + opts.compression = opts.compression.toUpperCase(); + + // "binarystring" is preferred but the internals use "string". + if(opts.type === "binarystring") { + opts.type = "string"; + } + + if (!opts.type) { + throw new Error("No output type specified."); + } + + utils.checkSupport(opts.type); + + // accept nodejs `process.platform` + if( + opts.platform === 'darwin' || + opts.platform === 'freebsd' || + opts.platform === 'linux' || + opts.platform === 'sunos' + ) { + opts.platform = "UNIX"; + } + if (opts.platform === 'win32') { + opts.platform = "DOS"; + } + + var comment = opts.comment || this.comment || ""; + worker = generate.generateWorker(this, opts, comment); + } catch (e) { + worker = new GenericWorker("error"); + worker.error(e); + } + return new StreamHelper(worker, opts.type || "string", opts.mimeType); + }, + /** + * Generate the complete zip file asynchronously. + * @see generateInternalStream + */ + generateAsync: function(options, onUpdate) { + return this.generateInternalStream(options).accumulate(onUpdate); + }, + /** + * Generate the complete zip file asynchronously. + * @see generateInternalStream + */ + generateNodeStream: function(options, onUpdate) { + options = options || {}; + if (!options.type) { + options.type = "nodebuffer"; + } + return this.generateInternalStream(options).toNodejsStream(onUpdate); + } +}; +module.exports = out; + +},{"./compressedObject":2,"./defaults":5,"./generate":9,"./nodejs/NodejsStreamInputAdapter":12,"./nodejsUtils":14,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31,"./utils":32,"./zipObject":35}],16:[function(require,module,exports){ +/* + * This file is used by module bundlers (browserify/webpack/etc) when + * including a stream implementation. We use "readable-stream" to get a + * consistent behavior between nodejs versions but bundlers often have a shim + * for "stream". Using this shim greatly improve the compatibility and greatly + * reduce the final size of the bundle (only one stream implementation, not + * two). + */ +module.exports = require("stream"); + +},{"stream":undefined}],17:[function(require,module,exports){ +'use strict'; +var DataReader = require('./DataReader'); +var utils = require('../utils'); + +function ArrayReader(data) { + DataReader.call(this, data); + for(var i = 0; i < this.data.length; i++) { + data[i] = data[i] & 0xFF; + } +} +utils.inherits(ArrayReader, DataReader); +/** + * @see DataReader.byteAt + */ +ArrayReader.prototype.byteAt = function(i) { + return this.data[this.zero + i]; +}; +/** + * @see DataReader.lastIndexOfSignature + */ +ArrayReader.prototype.lastIndexOfSignature = function(sig) { + var sig0 = sig.charCodeAt(0), + sig1 = sig.charCodeAt(1), + sig2 = sig.charCodeAt(2), + sig3 = sig.charCodeAt(3); + for (var i = this.length - 4; i >= 0; --i) { + if (this.data[i] === sig0 && this.data[i + 1] === sig1 && this.data[i + 2] === sig2 && this.data[i + 3] === sig3) { + return i - this.zero; + } + } + + return -1; +}; +/** + * @see DataReader.readAndCheckSignature + */ +ArrayReader.prototype.readAndCheckSignature = function (sig) { + var sig0 = sig.charCodeAt(0), + sig1 = sig.charCodeAt(1), + sig2 = sig.charCodeAt(2), + sig3 = sig.charCodeAt(3), + data = this.readData(4); + return sig0 === data[0] && sig1 === data[1] && sig2 === data[2] && sig3 === data[3]; +}; +/** + * @see DataReader.readData + */ +ArrayReader.prototype.readData = function(size) { + this.checkOffset(size); + if(size === 0) { + return []; + } + var result = this.data.slice(this.zero + this.index, this.zero + this.index + size); + this.index += size; + return result; +}; +module.exports = ArrayReader; + +},{"../utils":32,"./DataReader":18}],18:[function(require,module,exports){ +'use strict'; +var utils = require('../utils'); + +function DataReader(data) { + this.data = data; // type : see implementation + this.length = data.length; + this.index = 0; + this.zero = 0; +} +DataReader.prototype = { + /** + * Check that the offset will not go too far. + * @param {string} offset the additional offset to check. + * @throws {Error} an Error if the offset is out of bounds. + */ + checkOffset: function(offset) { + this.checkIndex(this.index + offset); + }, + /** + * Check that the specified index will not be too far. + * @param {string} newIndex the index to check. + * @throws {Error} an Error if the index is out of bounds. + */ + checkIndex: function(newIndex) { + if (this.length < this.zero + newIndex || newIndex < 0) { + throw new Error("End of data reached (data length = " + this.length + ", asked index = " + (newIndex) + "). Corrupted zip ?"); + } + }, + /** + * Change the index. + * @param {number} newIndex The new index. + * @throws {Error} if the new index is out of the data. + */ + setIndex: function(newIndex) { + this.checkIndex(newIndex); + this.index = newIndex; + }, + /** + * Skip the next n bytes. + * @param {number} n the number of bytes to skip. + * @throws {Error} if the new index is out of the data. + */ + skip: function(n) { + this.setIndex(this.index + n); + }, + /** + * Get the byte at the specified index. + * @param {number} i the index to use. + * @return {number} a byte. + */ + byteAt: function(i) { + // see implementations + }, + /** + * Get the next number with a given byte size. + * @param {number} size the number of bytes to read. + * @return {number} the corresponding number. + */ + readInt: function(size) { + var result = 0, + i; + this.checkOffset(size); + for (i = this.index + size - 1; i >= this.index; i--) { + result = (result << 8) + this.byteAt(i); + } + this.index += size; + return result; + }, + /** + * Get the next string with a given byte size. + * @param {number} size the number of bytes to read. + * @return {string} the corresponding string. + */ + readString: function(size) { + return utils.transformTo("string", this.readData(size)); + }, + /** + * Get raw data without conversion, bytes. + * @param {number} size the number of bytes to read. + * @return {Object} the raw data, implementation specific. + */ + readData: function(size) { + // see implementations + }, + /** + * Find the last occurrence of a zip signature (4 bytes). + * @param {string} sig the signature to find. + * @return {number} the index of the last occurrence, -1 if not found. + */ + lastIndexOfSignature: function(sig) { + // see implementations + }, + /** + * Read the signature (4 bytes) at the current position and compare it with sig. + * @param {string} sig the expected signature + * @return {boolean} true if the signature matches, false otherwise. + */ + readAndCheckSignature: function(sig) { + // see implementations + }, + /** + * Get the next date. + * @return {Date} the date. + */ + readDate: function() { + var dostime = this.readInt(4); + return new Date(Date.UTC( + ((dostime >> 25) & 0x7f) + 1980, // year + ((dostime >> 21) & 0x0f) - 1, // month + (dostime >> 16) & 0x1f, // day + (dostime >> 11) & 0x1f, // hour + (dostime >> 5) & 0x3f, // minute + (dostime & 0x1f) << 1)); // second + } +}; +module.exports = DataReader; + +},{"../utils":32}],19:[function(require,module,exports){ +'use strict'; +var Uint8ArrayReader = require('./Uint8ArrayReader'); +var utils = require('../utils'); + +function NodeBufferReader(data) { + Uint8ArrayReader.call(this, data); +} +utils.inherits(NodeBufferReader, Uint8ArrayReader); + +/** + * @see DataReader.readData + */ +NodeBufferReader.prototype.readData = function(size) { + this.checkOffset(size); + var result = this.data.slice(this.zero + this.index, this.zero + this.index + size); + this.index += size; + return result; +}; +module.exports = NodeBufferReader; + +},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(require,module,exports){ +'use strict'; +var DataReader = require('./DataReader'); +var utils = require('../utils'); + +function StringReader(data) { + DataReader.call(this, data); +} +utils.inherits(StringReader, DataReader); +/** + * @see DataReader.byteAt + */ +StringReader.prototype.byteAt = function(i) { + return this.data.charCodeAt(this.zero + i); +}; +/** + * @see DataReader.lastIndexOfSignature + */ +StringReader.prototype.lastIndexOfSignature = function(sig) { + return this.data.lastIndexOf(sig) - this.zero; +}; +/** + * @see DataReader.readAndCheckSignature + */ +StringReader.prototype.readAndCheckSignature = function (sig) { + var data = this.readData(4); + return sig === data; +}; +/** + * @see DataReader.readData + */ +StringReader.prototype.readData = function(size) { + this.checkOffset(size); + // this will work because the constructor applied the "& 0xff" mask. + var result = this.data.slice(this.zero + this.index, this.zero + this.index + size); + this.index += size; + return result; +}; +module.exports = StringReader; + +},{"../utils":32,"./DataReader":18}],21:[function(require,module,exports){ +'use strict'; +var ArrayReader = require('./ArrayReader'); +var utils = require('../utils'); + +function Uint8ArrayReader(data) { + ArrayReader.call(this, data); +} +utils.inherits(Uint8ArrayReader, ArrayReader); +/** + * @see DataReader.readData + */ +Uint8ArrayReader.prototype.readData = function(size) { + this.checkOffset(size); + if(size === 0) { + // in IE10, when using subarray(idx, idx), we get the array [0x00] instead of []. + return new Uint8Array(0); + } + var result = this.data.subarray(this.zero + this.index, this.zero + this.index + size); + this.index += size; + return result; +}; +module.exports = Uint8ArrayReader; + +},{"../utils":32,"./ArrayReader":17}],22:[function(require,module,exports){ +'use strict'; + +var utils = require('../utils'); +var support = require('../support'); +var ArrayReader = require('./ArrayReader'); +var StringReader = require('./StringReader'); +var NodeBufferReader = require('./NodeBufferReader'); +var Uint8ArrayReader = require('./Uint8ArrayReader'); + +/** + * Create a reader adapted to the data. + * @param {String|ArrayBuffer|Uint8Array|Buffer} data the data to read. + * @return {DataReader} the data reader. + */ +module.exports = function (data) { + var type = utils.getTypeOf(data); + utils.checkSupport(type); + if (type === "string" && !support.uint8array) { + return new StringReader(data); + } + if (type === "nodebuffer") { + return new NodeBufferReader(data); + } + if (support.uint8array) { + return new Uint8ArrayReader(utils.transformTo("uint8array", data)); + } + return new ArrayReader(utils.transformTo("array", data)); +}; + +},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(require,module,exports){ +'use strict'; +exports.LOCAL_FILE_HEADER = "PK\x03\x04"; +exports.CENTRAL_FILE_HEADER = "PK\x01\x02"; +exports.CENTRAL_DIRECTORY_END = "PK\x05\x06"; +exports.ZIP64_CENTRAL_DIRECTORY_LOCATOR = "PK\x06\x07"; +exports.ZIP64_CENTRAL_DIRECTORY_END = "PK\x06\x06"; +exports.DATA_DESCRIPTOR = "PK\x07\x08"; + +},{}],24:[function(require,module,exports){ +'use strict'; + +var GenericWorker = require('./GenericWorker'); +var utils = require('../utils'); + +/** + * A worker which convert chunks to a specified type. + * @constructor + * @param {String} destType the destination type. + */ +function ConvertWorker(destType) { + GenericWorker.call(this, "ConvertWorker to " + destType); + this.destType = destType; +} +utils.inherits(ConvertWorker, GenericWorker); + +/** + * @see GenericWorker.processChunk + */ +ConvertWorker.prototype.processChunk = function (chunk) { + this.push({ + data : utils.transformTo(this.destType, chunk.data), + meta : chunk.meta + }); +}; +module.exports = ConvertWorker; + +},{"../utils":32,"./GenericWorker":28}],25:[function(require,module,exports){ +'use strict'; + +var GenericWorker = require('./GenericWorker'); +var crc32 = require('../crc32'); +var utils = require('../utils'); + +/** + * A worker which calculate the crc32 of the data flowing through. + * @constructor + */ +function Crc32Probe() { + GenericWorker.call(this, "Crc32Probe"); + this.withStreamInfo("crc32", 0); +} +utils.inherits(Crc32Probe, GenericWorker); + +/** + * @see GenericWorker.processChunk + */ +Crc32Probe.prototype.processChunk = function (chunk) { + this.streamInfo.crc32 = crc32(chunk.data, this.streamInfo.crc32 || 0); + this.push(chunk); +}; +module.exports = Crc32Probe; + +},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(require,module,exports){ +'use strict'; + +var utils = require('../utils'); +var GenericWorker = require('./GenericWorker'); + +/** + * A worker which calculate the total length of the data flowing through. + * @constructor + * @param {String} propName the name used to expose the length + */ +function DataLengthProbe(propName) { + GenericWorker.call(this, "DataLengthProbe for " + propName); + this.propName = propName; + this.withStreamInfo(propName, 0); +} +utils.inherits(DataLengthProbe, GenericWorker); + +/** + * @see GenericWorker.processChunk + */ +DataLengthProbe.prototype.processChunk = function (chunk) { + if(chunk) { + var length = this.streamInfo[this.propName] || 0; + this.streamInfo[this.propName] = length + chunk.data.length; + } + GenericWorker.prototype.processChunk.call(this, chunk); +}; +module.exports = DataLengthProbe; + + +},{"../utils":32,"./GenericWorker":28}],27:[function(require,module,exports){ +'use strict'; + +var utils = require('../utils'); +var GenericWorker = require('./GenericWorker'); + +// the size of the generated chunks +// TODO expose this as a public variable +var DEFAULT_BLOCK_SIZE = 16 * 1024; + +/** + * A worker that reads a content and emits chunks. + * @constructor + * @param {Promise} dataP the promise of the data to split + */ +function DataWorker(dataP) { + GenericWorker.call(this, "DataWorker"); + var self = this; + this.dataIsReady = false; + this.index = 0; + this.max = 0; + this.data = null; + this.type = ""; + + this._tickScheduled = false; + + dataP.then(function (data) { + self.dataIsReady = true; + self.data = data; + self.max = data && data.length || 0; + self.type = utils.getTypeOf(data); + if(!self.isPaused) { + self._tickAndRepeat(); + } + }, function (e) { + self.error(e); + }); +} + +utils.inherits(DataWorker, GenericWorker); + +/** + * @see GenericWorker.cleanUp + */ +DataWorker.prototype.cleanUp = function () { + GenericWorker.prototype.cleanUp.call(this); + this.data = null; +}; + +/** + * @see GenericWorker.resume + */ +DataWorker.prototype.resume = function () { + if(!GenericWorker.prototype.resume.call(this)) { + return false; + } + + if (!this._tickScheduled && this.dataIsReady) { + this._tickScheduled = true; + utils.delay(this._tickAndRepeat, [], this); + } + return true; +}; + +/** + * Trigger a tick a schedule an other call to this function. + */ +DataWorker.prototype._tickAndRepeat = function() { + this._tickScheduled = false; + if(this.isPaused || this.isFinished) { + return; + } + this._tick(); + if(!this.isFinished) { + utils.delay(this._tickAndRepeat, [], this); + this._tickScheduled = true; + } +}; + +/** + * Read and push a chunk. + */ +DataWorker.prototype._tick = function() { + + if(this.isPaused || this.isFinished) { + return false; + } + + var size = DEFAULT_BLOCK_SIZE; + var data = null, nextIndex = Math.min(this.max, this.index + size); + if (this.index >= this.max) { + // EOF + return this.end(); + } else { + switch(this.type) { + case "string": + data = this.data.substring(this.index, nextIndex); + break; + case "uint8array": + data = this.data.subarray(this.index, nextIndex); + break; + case "array": + case "nodebuffer": + data = this.data.slice(this.index, nextIndex); + break; + } + this.index = nextIndex; + return this.push({ + data : data, + meta : { + percent : this.max ? this.index / this.max * 100 : 0 + } + }); + } +}; + +module.exports = DataWorker; + +},{"../utils":32,"./GenericWorker":28}],28:[function(require,module,exports){ +'use strict'; + +/** + * A worker that does nothing but passing chunks to the next one. This is like + * a nodejs stream but with some differences. On the good side : + * - it works on IE 6-9 without any issue / polyfill + * - it weights less than the full dependencies bundled with browserify + * - it forwards errors (no need to declare an error handler EVERYWHERE) + * + * A chunk is an object with 2 attributes : `meta` and `data`. The former is an + * object containing anything (`percent` for example), see each worker for more + * details. The latter is the real data (String, Uint8Array, etc). + * + * @constructor + * @param {String} name the name of the stream (mainly used for debugging purposes) + */ +function GenericWorker(name) { + // the name of the worker + this.name = name || "default"; + // an object containing metadata about the workers chain + this.streamInfo = {}; + // an error which happened when the worker was paused + this.generatedError = null; + // an object containing metadata to be merged by this worker into the general metadata + this.extraStreamInfo = {}; + // true if the stream is paused (and should not do anything), false otherwise + this.isPaused = true; + // true if the stream is finished (and should not do anything), false otherwise + this.isFinished = false; + // true if the stream is locked to prevent further structure updates (pipe), false otherwise + this.isLocked = false; + // the event listeners + this._listeners = { + 'data':[], + 'end':[], + 'error':[] + }; + // the previous worker, if any + this.previous = null; +} + +GenericWorker.prototype = { + /** + * Push a chunk to the next workers. + * @param {Object} chunk the chunk to push + */ + push : function (chunk) { + this.emit("data", chunk); + }, + /** + * End the stream. + * @return {Boolean} true if this call ended the worker, false otherwise. + */ + end : function () { + if (this.isFinished) { + return false; + } + + this.flush(); + try { + this.emit("end"); + this.cleanUp(); + this.isFinished = true; + } catch (e) { + this.emit("error", e); + } + return true; + }, + /** + * End the stream with an error. + * @param {Error} e the error which caused the premature end. + * @return {Boolean} true if this call ended the worker with an error, false otherwise. + */ + error : function (e) { + if (this.isFinished) { + return false; + } + + if(this.isPaused) { + this.generatedError = e; + } else { + this.isFinished = true; + + this.emit("error", e); + + // in the workers chain exploded in the middle of the chain, + // the error event will go downward but we also need to notify + // workers upward that there has been an error. + if(this.previous) { + this.previous.error(e); + } + + this.cleanUp(); + } + return true; + }, + /** + * Add a callback on an event. + * @param {String} name the name of the event (data, end, error) + * @param {Function} listener the function to call when the event is triggered + * @return {GenericWorker} the current object for chainability + */ + on : function (name, listener) { + this._listeners[name].push(listener); + return this; + }, + /** + * Clean any references when a worker is ending. + */ + cleanUp : function () { + this.streamInfo = this.generatedError = this.extraStreamInfo = null; + this._listeners = []; + }, + /** + * Trigger an event. This will call registered callback with the provided arg. + * @param {String} name the name of the event (data, end, error) + * @param {Object} arg the argument to call the callback with. + */ + emit : function (name, arg) { + if (this._listeners[name]) { + for(var i = 0; i < this._listeners[name].length; i++) { + this._listeners[name][i].call(this, arg); + } + } + }, + /** + * Chain a worker with an other. + * @param {Worker} next the worker receiving events from the current one. + * @return {worker} the next worker for chainability + */ + pipe : function (next) { + return next.registerPrevious(this); + }, + /** + * Same as `pipe` in the other direction. + * Using an API with `pipe(next)` is very easy. + * Implementing the API with the point of view of the next one registering + * a source is easier, see the ZipFileWorker. + * @param {Worker} previous the previous worker, sending events to this one + * @return {Worker} the current worker for chainability + */ + registerPrevious : function (previous) { + if (this.isLocked) { + throw new Error("The stream '" + this + "' has already been used."); + } + + // sharing the streamInfo... + this.streamInfo = previous.streamInfo; + // ... and adding our own bits + this.mergeStreamInfo(); + this.previous = previous; + var self = this; + previous.on('data', function (chunk) { + self.processChunk(chunk); + }); + previous.on('end', function () { + self.end(); + }); + previous.on('error', function (e) { + self.error(e); + }); + return this; + }, + /** + * Pause the stream so it doesn't send events anymore. + * @return {Boolean} true if this call paused the worker, false otherwise. + */ + pause : function () { + if(this.isPaused || this.isFinished) { + return false; + } + this.isPaused = true; + + if(this.previous) { + this.previous.pause(); + } + return true; + }, + /** + * Resume a paused stream. + * @return {Boolean} true if this call resumed the worker, false otherwise. + */ + resume : function () { + if(!this.isPaused || this.isFinished) { + return false; + } + this.isPaused = false; + + // if true, the worker tried to resume but failed + var withError = false; + if(this.generatedError) { + this.error(this.generatedError); + withError = true; + } + if(this.previous) { + this.previous.resume(); + } + + return !withError; + }, + /** + * Flush any remaining bytes as the stream is ending. + */ + flush : function () {}, + /** + * Process a chunk. This is usually the method overridden. + * @param {Object} chunk the chunk to process. + */ + processChunk : function(chunk) { + this.push(chunk); + }, + /** + * Add a key/value to be added in the workers chain streamInfo once activated. + * @param {String} key the key to use + * @param {Object} value the associated value + * @return {Worker} the current worker for chainability + */ + withStreamInfo : function (key, value) { + this.extraStreamInfo[key] = value; + this.mergeStreamInfo(); + return this; + }, + /** + * Merge this worker's streamInfo into the chain's streamInfo. + */ + mergeStreamInfo : function () { + for(var key in this.extraStreamInfo) { + if (!this.extraStreamInfo.hasOwnProperty(key)) { + continue; + } + this.streamInfo[key] = this.extraStreamInfo[key]; + } + }, + + /** + * Lock the stream to prevent further updates on the workers chain. + * After calling this method, all calls to pipe will fail. + */ + lock: function () { + if (this.isLocked) { + throw new Error("The stream '" + this + "' has already been used."); + } + this.isLocked = true; + if (this.previous) { + this.previous.lock(); + } + }, + + /** + * + * Pretty print the workers chain. + */ + toString : function () { + var me = "Worker " + this.name; + if (this.previous) { + return this.previous + " -> " + me; + } else { + return me; + } + } +}; + +module.exports = GenericWorker; + +},{}],29:[function(require,module,exports){ +'use strict'; + +var utils = require('../utils'); +var ConvertWorker = require('./ConvertWorker'); +var GenericWorker = require('./GenericWorker'); +var base64 = require('../base64'); +var support = require("../support"); +var external = require("../external"); + +var NodejsStreamOutputAdapter = null; +if (support.nodestream) { + try { + NodejsStreamOutputAdapter = require('../nodejs/NodejsStreamOutputAdapter'); + } catch(e) {} +} + +/** + * Apply the final transformation of the data. If the user wants a Blob for + * example, it's easier to work with an U8intArray and finally do the + * ArrayBuffer/Blob conversion. + * @param {String} type the name of the final type + * @param {String|Uint8Array|Buffer} content the content to transform + * @param {String} mimeType the mime type of the content, if applicable. + * @return {String|Uint8Array|ArrayBuffer|Buffer|Blob} the content in the right format. + */ +function transformZipOutput(type, content, mimeType) { + switch(type) { + case "blob" : + return utils.newBlob(utils.transformTo("arraybuffer", content), mimeType); + case "base64" : + return base64.encode(content); + default : + return utils.transformTo(type, content); + } +} + +/** + * Concatenate an array of data of the given type. + * @param {String} type the type of the data in the given array. + * @param {Array} dataArray the array containing the data chunks to concatenate + * @return {String|Uint8Array|Buffer} the concatenated data + * @throws Error if the asked type is unsupported + */ +function concat (type, dataArray) { + var i, index = 0, res = null, totalLength = 0; + for(i = 0; i < dataArray.length; i++) { + totalLength += dataArray[i].length; + } + switch(type) { + case "string": + return dataArray.join(""); + case "array": + return Array.prototype.concat.apply([], dataArray); + case "uint8array": + res = new Uint8Array(totalLength); + for(i = 0; i < dataArray.length; i++) { + res.set(dataArray[i], index); + index += dataArray[i].length; + } + return res; + case "nodebuffer": + return Buffer.concat(dataArray); + default: + throw new Error("concat : unsupported type '" + type + "'"); + } +} + +/** + * Listen a StreamHelper, accumulate its content and concatenate it into a + * complete block. + * @param {StreamHelper} helper the helper to use. + * @param {Function} updateCallback a callback called on each update. Called + * with one arg : + * - the metadata linked to the update received. + * @return Promise the promise for the accumulation. + */ +function accumulate(helper, updateCallback) { + return new external.Promise(function (resolve, reject){ + var dataArray = []; + var chunkType = helper._internalType, + resultType = helper._outputType, + mimeType = helper._mimeType; + helper + .on('data', function (data, meta) { + dataArray.push(data); + if(updateCallback) { + updateCallback(meta); + } + }) + .on('error', function(err) { + dataArray = []; + reject(err); + }) + .on('end', function (){ + try { + var result = transformZipOutput(resultType, concat(chunkType, dataArray), mimeType); + resolve(result); + } catch (e) { + reject(e); + } + dataArray = []; + }) + .resume(); + }); +} + +/** + * An helper to easily use workers outside of JSZip. + * @constructor + * @param {Worker} worker the worker to wrap + * @param {String} outputType the type of data expected by the use + * @param {String} mimeType the mime type of the content, if applicable. + */ +function StreamHelper(worker, outputType, mimeType) { + var internalType = outputType; + switch(outputType) { + case "blob": + case "arraybuffer": + internalType = "uint8array"; + break; + case "base64": + internalType = "string"; + break; + } + + try { + // the type used internally + this._internalType = internalType; + // the type used to output results + this._outputType = outputType; + // the mime type + this._mimeType = mimeType; + utils.checkSupport(internalType); + this._worker = worker.pipe(new ConvertWorker(internalType)); + // the last workers can be rewired without issues but we need to + // prevent any updates on previous workers. + worker.lock(); + } catch(e) { + this._worker = new GenericWorker("error"); + this._worker.error(e); + } +} + +StreamHelper.prototype = { + /** + * Listen a StreamHelper, accumulate its content and concatenate it into a + * complete block. + * @param {Function} updateCb the update callback. + * @return Promise the promise for the accumulation. + */ + accumulate : function (updateCb) { + return accumulate(this, updateCb); + }, + /** + * Add a listener on an event triggered on a stream. + * @param {String} evt the name of the event + * @param {Function} fn the listener + * @return {StreamHelper} the current helper. + */ + on : function (evt, fn) { + var self = this; + + if(evt === "data") { + this._worker.on(evt, function (chunk) { + fn.call(self, chunk.data, chunk.meta); + }); + } else { + this._worker.on(evt, function () { + utils.delay(fn, arguments, self); + }); + } + return this; + }, + /** + * Resume the flow of chunks. + * @return {StreamHelper} the current helper. + */ + resume : function () { + utils.delay(this._worker.resume, [], this._worker); + return this; + }, + /** + * Pause the flow of chunks. + * @return {StreamHelper} the current helper. + */ + pause : function () { + this._worker.pause(); + return this; + }, + /** + * Return a nodejs stream for this helper. + * @param {Function} updateCb the update callback. + * @return {NodejsStreamOutputAdapter} the nodejs stream. + */ + toNodejsStream : function (updateCb) { + utils.checkSupport("nodestream"); + if (this._outputType !== "nodebuffer") { + // an object stream containing blob/arraybuffer/uint8array/string + // is strange and I don't know if it would be useful. + // I you find this comment and have a good usecase, please open a + // bug report ! + throw new Error(this._outputType + " is not supported by this method"); + } + + return new NodejsStreamOutputAdapter(this, { + objectMode : this._outputType !== "nodebuffer" + }, updateCb); + } +}; + + +module.exports = StreamHelper; + +},{"../base64":1,"../external":6,"../nodejs/NodejsStreamOutputAdapter":13,"../support":30,"../utils":32,"./ConvertWorker":24,"./GenericWorker":28}],30:[function(require,module,exports){ +'use strict'; + +exports.base64 = true; +exports.array = true; +exports.string = true; +exports.arraybuffer = typeof ArrayBuffer !== "undefined" && typeof Uint8Array !== "undefined"; +exports.nodebuffer = typeof Buffer !== "undefined"; +// contains true if JSZip can read/generate Uint8Array, false otherwise. +exports.uint8array = typeof Uint8Array !== "undefined"; + +if (typeof ArrayBuffer === "undefined") { + exports.blob = false; +} +else { + var buffer = new ArrayBuffer(0); + try { + exports.blob = new Blob([buffer], { + type: "application/zip" + }).size === 0; + } + catch (e) { + try { + var Builder = self.BlobBuilder || self.WebKitBlobBuilder || self.MozBlobBuilder || self.MSBlobBuilder; + var builder = new Builder(); + builder.append(buffer); + exports.blob = builder.getBlob('application/zip').size === 0; + } + catch (e) { + exports.blob = false; + } + } +} + +try { + exports.nodestream = !!require('readable-stream').Readable; +} catch(e) { + exports.nodestream = false; +} + +},{"readable-stream":16}],31:[function(require,module,exports){ +'use strict'; + +var utils = require('./utils'); +var support = require('./support'); +var nodejsUtils = require('./nodejsUtils'); +var GenericWorker = require('./stream/GenericWorker'); + +/** + * The following functions come from pako, from pako/lib/utils/strings + * released under the MIT license, see pako https://github.com/nodeca/pako/ + */ + +// Table with utf8 lengths (calculated by first byte of sequence) +// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS, +// because max possible codepoint is 0x10ffff +var _utf8len = new Array(256); +for (var i=0; i<256; i++) { + _utf8len[i] = (i >= 252 ? 6 : i >= 248 ? 5 : i >= 240 ? 4 : i >= 224 ? 3 : i >= 192 ? 2 : 1); +} +_utf8len[254]=_utf8len[254]=1; // Invalid sequence start + +// convert string to array (typed, when possible) +var string2buf = function (str) { + var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0; + + // count binary size + for (m_pos = 0; m_pos < str_len; m_pos++) { + c = str.charCodeAt(m_pos); + if ((c & 0xfc00) === 0xd800 && (m_pos+1 < str_len)) { + c2 = str.charCodeAt(m_pos+1); + if ((c2 & 0xfc00) === 0xdc00) { + c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00); + m_pos++; + } + } + buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4; + } + + // allocate buffer + if (support.uint8array) { + buf = new Uint8Array(buf_len); + } else { + buf = new Array(buf_len); + } + + // convert + for (i=0, m_pos = 0; i < buf_len; m_pos++) { + c = str.charCodeAt(m_pos); + if ((c & 0xfc00) === 0xd800 && (m_pos+1 < str_len)) { + c2 = str.charCodeAt(m_pos+1); + if ((c2 & 0xfc00) === 0xdc00) { + c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00); + m_pos++; + } + } + if (c < 0x80) { + /* one byte */ + buf[i++] = c; + } else if (c < 0x800) { + /* two bytes */ + buf[i++] = 0xC0 | (c >>> 6); + buf[i++] = 0x80 | (c & 0x3f); + } else if (c < 0x10000) { + /* three bytes */ + buf[i++] = 0xE0 | (c >>> 12); + buf[i++] = 0x80 | (c >>> 6 & 0x3f); + buf[i++] = 0x80 | (c & 0x3f); + } else { + /* four bytes */ + buf[i++] = 0xf0 | (c >>> 18); + buf[i++] = 0x80 | (c >>> 12 & 0x3f); + buf[i++] = 0x80 | (c >>> 6 & 0x3f); + buf[i++] = 0x80 | (c & 0x3f); + } + } + + return buf; +}; + +// Calculate max possible position in utf8 buffer, +// that will not break sequence. If that's not possible +// - (very small limits) return max size as is. +// +// buf[] - utf8 bytes array +// max - length limit (mandatory); +var utf8border = function(buf, max) { + var pos; + + max = max || buf.length; + if (max > buf.length) { max = buf.length; } + + // go back from last position, until start of sequence found + pos = max-1; + while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; } + + // Fuckup - very small and broken sequence, + // return max, because we should return something anyway. + if (pos < 0) { return max; } + + // If we came to start of buffer - that means vuffer is too small, + // return max too. + if (pos === 0) { return max; } + + return (pos + _utf8len[buf[pos]] > max) ? pos : max; +}; + +// convert array to string +var buf2string = function (buf) { + var str, i, out, c, c_len; + var len = buf.length; + + // Reserve max possible length (2 words per char) + // NB: by unknown reasons, Array is significantly faster for + // String.fromCharCode.apply than Uint16Array. + var utf16buf = new Array(len*2); + + for (out=0, i=0; i 4) { utf16buf[out++] = 0xfffd; i += c_len-1; continue; } + + // apply mask on first byte + c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07; + // join the rest + while (c_len > 1 && i < len) { + c = (c << 6) | (buf[i++] & 0x3f); + c_len--; + } + + // terminated by end of string? + if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; } + + if (c < 0x10000) { + utf16buf[out++] = c; + } else { + c -= 0x10000; + utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff); + utf16buf[out++] = 0xdc00 | (c & 0x3ff); + } + } + + // shrinkBuf(utf16buf, out) + if (utf16buf.length !== out) { + if(utf16buf.subarray) { + utf16buf = utf16buf.subarray(0, out); + } else { + utf16buf.length = out; + } + } + + // return String.fromCharCode.apply(null, utf16buf); + return utils.applyFromCharCode(utf16buf); +}; + + +// That's all for the pako functions. + + +/** + * Transform a javascript string into an array (typed if possible) of bytes, + * UTF-8 encoded. + * @param {String} str the string to encode + * @return {Array|Uint8Array|Buffer} the UTF-8 encoded string. + */ +exports.utf8encode = function utf8encode(str) { + if (support.nodebuffer) { + return nodejsUtils.newBufferFrom(str, "utf-8"); + } + + return string2buf(str); +}; + + +/** + * Transform a bytes array (or a representation) representing an UTF-8 encoded + * string into a javascript string. + * @param {Array|Uint8Array|Buffer} buf the data de decode + * @return {String} the decoded string. + */ +exports.utf8decode = function utf8decode(buf) { + if (support.nodebuffer) { + return utils.transformTo("nodebuffer", buf).toString("utf-8"); + } + + buf = utils.transformTo(support.uint8array ? "uint8array" : "array", buf); + + return buf2string(buf); +}; + +/** + * A worker to decode utf8 encoded binary chunks into string chunks. + * @constructor + */ +function Utf8DecodeWorker() { + GenericWorker.call(this, "utf-8 decode"); + // the last bytes if a chunk didn't end with a complete codepoint. + this.leftOver = null; +} +utils.inherits(Utf8DecodeWorker, GenericWorker); + +/** + * @see GenericWorker.processChunk + */ +Utf8DecodeWorker.prototype.processChunk = function (chunk) { + + var data = utils.transformTo(support.uint8array ? "uint8array" : "array", chunk.data); + + // 1st step, re-use what's left of the previous chunk + if (this.leftOver && this.leftOver.length) { + if(support.uint8array) { + var previousData = data; + data = new Uint8Array(previousData.length + this.leftOver.length); + data.set(this.leftOver, 0); + data.set(previousData, this.leftOver.length); + } else { + data = this.leftOver.concat(data); + } + this.leftOver = null; + } + + var nextBoundary = utf8border(data); + var usableData = data; + if (nextBoundary !== data.length) { + if (support.uint8array) { + usableData = data.subarray(0, nextBoundary); + this.leftOver = data.subarray(nextBoundary, data.length); + } else { + usableData = data.slice(0, nextBoundary); + this.leftOver = data.slice(nextBoundary, data.length); + } + } + + this.push({ + data : exports.utf8decode(usableData), + meta : chunk.meta + }); +}; + +/** + * @see GenericWorker.flush + */ +Utf8DecodeWorker.prototype.flush = function () { + if(this.leftOver && this.leftOver.length) { + this.push({ + data : exports.utf8decode(this.leftOver), + meta : {} + }); + this.leftOver = null; + } +}; +exports.Utf8DecodeWorker = Utf8DecodeWorker; + +/** + * A worker to endcode string chunks into utf8 encoded binary chunks. + * @constructor + */ +function Utf8EncodeWorker() { + GenericWorker.call(this, "utf-8 encode"); +} +utils.inherits(Utf8EncodeWorker, GenericWorker); + +/** + * @see GenericWorker.processChunk + */ +Utf8EncodeWorker.prototype.processChunk = function (chunk) { + this.push({ + data : exports.utf8encode(chunk.data), + meta : chunk.meta + }); +}; +exports.Utf8EncodeWorker = Utf8EncodeWorker; + +},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(require,module,exports){ +'use strict'; + +var support = require('./support'); +var base64 = require('./base64'); +var nodejsUtils = require('./nodejsUtils'); +var setImmediate = require('set-immediate-shim'); +var external = require("./external"); + + +/** + * Convert a string that pass as a "binary string": it should represent a byte + * array but may have > 255 char codes. Be sure to take only the first byte + * and returns the byte array. + * @param {String} str the string to transform. + * @return {Array|Uint8Array} the string in a binary format. + */ +function string2binary(str) { + var result = null; + if (support.uint8array) { + result = new Uint8Array(str.length); + } else { + result = new Array(str.length); + } + return stringToArrayLike(str, result); +} + +/** + * Create a new blob with the given content and the given type. + * @param {String|ArrayBuffer} part the content to put in the blob. DO NOT use + * an Uint8Array because the stock browser of android 4 won't accept it (it + * will be silently converted to a string, "[object Uint8Array]"). + * + * Use only ONE part to build the blob to avoid a memory leak in IE11 / Edge: + * when a large amount of Array is used to create the Blob, the amount of + * memory consumed is nearly 100 times the original data amount. + * + * @param {String} type the mime type of the blob. + * @return {Blob} the created blob. + */ +exports.newBlob = function(part, type) { + exports.checkSupport("blob"); + + try { + // Blob constructor + return new Blob([part], { + type: type + }); + } + catch (e) { + + try { + // deprecated, browser only, old way + var Builder = self.BlobBuilder || self.WebKitBlobBuilder || self.MozBlobBuilder || self.MSBlobBuilder; + var builder = new Builder(); + builder.append(part); + return builder.getBlob(type); + } + catch (e) { + + // well, fuck ?! + throw new Error("Bug : can't construct the Blob."); + } + } + + +}; +/** + * The identity function. + * @param {Object} input the input. + * @return {Object} the same input. + */ +function identity(input) { + return input; +} + +/** + * Fill in an array with a string. + * @param {String} str the string to use. + * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to fill in (will be mutated). + * @return {Array|ArrayBuffer|Uint8Array|Buffer} the updated array. + */ +function stringToArrayLike(str, array) { + for (var i = 0; i < str.length; ++i) { + array[i] = str.charCodeAt(i) & 0xFF; + } + return array; +} + +/** + * An helper for the function arrayLikeToString. + * This contains static information and functions that + * can be optimized by the browser JIT compiler. + */ +var arrayToStringHelper = { + /** + * Transform an array of int into a string, chunk by chunk. + * See the performances notes on arrayLikeToString. + * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to transform. + * @param {String} type the type of the array. + * @param {Integer} chunk the chunk size. + * @return {String} the resulting string. + * @throws Error if the chunk is too big for the stack. + */ + stringifyByChunk: function(array, type, chunk) { + var result = [], k = 0, len = array.length; + // shortcut + if (len <= chunk) { + return String.fromCharCode.apply(null, array); + } + while (k < len) { + if (type === "array" || type === "nodebuffer") { + result.push(String.fromCharCode.apply(null, array.slice(k, Math.min(k + chunk, len)))); + } + else { + result.push(String.fromCharCode.apply(null, array.subarray(k, Math.min(k + chunk, len)))); + } + k += chunk; + } + return result.join(""); + }, + /** + * Call String.fromCharCode on every item in the array. + * This is the naive implementation, which generate A LOT of intermediate string. + * This should be used when everything else fail. + * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to transform. + * @return {String} the result. + */ + stringifyByChar: function(array){ + var resultStr = ""; + for(var i = 0; i < array.length; i++) { + resultStr += String.fromCharCode(array[i]); + } + return resultStr; + }, + applyCanBeUsed : { + /** + * true if the browser accepts to use String.fromCharCode on Uint8Array + */ + uint8array : (function () { + try { + return support.uint8array && String.fromCharCode.apply(null, new Uint8Array(1)).length === 1; + } catch (e) { + return false; + } + })(), + /** + * true if the browser accepts to use String.fromCharCode on nodejs Buffer. + */ + nodebuffer : (function () { + try { + return support.nodebuffer && String.fromCharCode.apply(null, nodejsUtils.allocBuffer(1)).length === 1; + } catch (e) { + return false; + } + })() + } +}; + +/** + * Transform an array-like object to a string. + * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to transform. + * @return {String} the result. + */ +function arrayLikeToString(array) { + // Performances notes : + // -------------------- + // String.fromCharCode.apply(null, array) is the fastest, see + // see http://jsperf.com/converting-a-uint8array-to-a-string/2 + // but the stack is limited (and we can get huge arrays !). + // + // result += String.fromCharCode(array[i]); generate too many strings ! + // + // This code is inspired by http://jsperf.com/arraybuffer-to-string-apply-performance/2 + // TODO : we now have workers that split the work. Do we still need that ? + var chunk = 65536, + type = exports.getTypeOf(array), + canUseApply = true; + if (type === "uint8array") { + canUseApply = arrayToStringHelper.applyCanBeUsed.uint8array; + } else if (type === "nodebuffer") { + canUseApply = arrayToStringHelper.applyCanBeUsed.nodebuffer; + } + + if (canUseApply) { + while (chunk > 1) { + try { + return arrayToStringHelper.stringifyByChunk(array, type, chunk); + } catch (e) { + chunk = Math.floor(chunk / 2); + } + } + } + + // no apply or chunk error : slow and painful algorithm + // default browser on android 4.* + return arrayToStringHelper.stringifyByChar(array); +} + +exports.applyFromCharCode = arrayLikeToString; + + +/** + * Copy the data from an array-like to an other array-like. + * @param {Array|ArrayBuffer|Uint8Array|Buffer} arrayFrom the origin array. + * @param {Array|ArrayBuffer|Uint8Array|Buffer} arrayTo the destination array which will be mutated. + * @return {Array|ArrayBuffer|Uint8Array|Buffer} the updated destination array. + */ +function arrayLikeToArrayLike(arrayFrom, arrayTo) { + for (var i = 0; i < arrayFrom.length; i++) { + arrayTo[i] = arrayFrom[i]; + } + return arrayTo; +} + +// a matrix containing functions to transform everything into everything. +var transform = {}; + +// string to ? +transform["string"] = { + "string": identity, + "array": function(input) { + return stringToArrayLike(input, new Array(input.length)); + }, + "arraybuffer": function(input) { + return transform["string"]["uint8array"](input).buffer; + }, + "uint8array": function(input) { + return stringToArrayLike(input, new Uint8Array(input.length)); + }, + "nodebuffer": function(input) { + return stringToArrayLike(input, nodejsUtils.allocBuffer(input.length)); + } +}; + +// array to ? +transform["array"] = { + "string": arrayLikeToString, + "array": identity, + "arraybuffer": function(input) { + return (new Uint8Array(input)).buffer; + }, + "uint8array": function(input) { + return new Uint8Array(input); + }, + "nodebuffer": function(input) { + return nodejsUtils.newBufferFrom(input); + } +}; + +// arraybuffer to ? +transform["arraybuffer"] = { + "string": function(input) { + return arrayLikeToString(new Uint8Array(input)); + }, + "array": function(input) { + return arrayLikeToArrayLike(new Uint8Array(input), new Array(input.byteLength)); + }, + "arraybuffer": identity, + "uint8array": function(input) { + return new Uint8Array(input); + }, + "nodebuffer": function(input) { + return nodejsUtils.newBufferFrom(new Uint8Array(input)); + } +}; + +// uint8array to ? +transform["uint8array"] = { + "string": arrayLikeToString, + "array": function(input) { + return arrayLikeToArrayLike(input, new Array(input.length)); + }, + "arraybuffer": function(input) { + return input.buffer; + }, + "uint8array": identity, + "nodebuffer": function(input) { + return nodejsUtils.newBufferFrom(input); + } +}; + +// nodebuffer to ? +transform["nodebuffer"] = { + "string": arrayLikeToString, + "array": function(input) { + return arrayLikeToArrayLike(input, new Array(input.length)); + }, + "arraybuffer": function(input) { + return transform["nodebuffer"]["uint8array"](input).buffer; + }, + "uint8array": function(input) { + return arrayLikeToArrayLike(input, new Uint8Array(input.length)); + }, + "nodebuffer": identity +}; + +/** + * Transform an input into any type. + * The supported output type are : string, array, uint8array, arraybuffer, nodebuffer. + * If no output type is specified, the unmodified input will be returned. + * @param {String} outputType the output type. + * @param {String|Array|ArrayBuffer|Uint8Array|Buffer} input the input to convert. + * @throws {Error} an Error if the browser doesn't support the requested output type. + */ +exports.transformTo = function(outputType, input) { + if (!input) { + // undefined, null, etc + // an empty string won't harm. + input = ""; + } + if (!outputType) { + return input; + } + exports.checkSupport(outputType); + var inputType = exports.getTypeOf(input); + var result = transform[inputType][outputType](input); + return result; +}; + +/** + * Return the type of the input. + * The type will be in a format valid for JSZip.utils.transformTo : string, array, uint8array, arraybuffer. + * @param {Object} input the input to identify. + * @return {String} the (lowercase) type of the input. + */ +exports.getTypeOf = function(input) { + if (typeof input === "string") { + return "string"; + } + if (Object.prototype.toString.call(input) === "[object Array]") { + return "array"; + } + if (support.nodebuffer && nodejsUtils.isBuffer(input)) { + return "nodebuffer"; + } + if (support.uint8array && input instanceof Uint8Array) { + return "uint8array"; + } + if (support.arraybuffer && input instanceof ArrayBuffer) { + return "arraybuffer"; + } +}; + +/** + * Throw an exception if the type is not supported. + * @param {String} type the type to check. + * @throws {Error} an Error if the browser doesn't support the requested type. + */ +exports.checkSupport = function(type) { + var supported = support[type.toLowerCase()]; + if (!supported) { + throw new Error(type + " is not supported by this platform"); + } +}; + +exports.MAX_VALUE_16BITS = 65535; +exports.MAX_VALUE_32BITS = -1; // well, "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF" is parsed as -1 + +/** + * Prettify a string read as binary. + * @param {string} str the string to prettify. + * @return {string} a pretty string. + */ +exports.pretty = function(str) { + var res = '', + code, i; + for (i = 0; i < (str || "").length; i++) { + code = str.charCodeAt(i); + res += '\\x' + (code < 16 ? "0" : "") + code.toString(16).toUpperCase(); + } + return res; +}; + +/** + * Defer the call of a function. + * @param {Function} callback the function to call asynchronously. + * @param {Array} args the arguments to give to the callback. + */ +exports.delay = function(callback, args, self) { + setImmediate(function () { + callback.apply(self || null, args || []); + }); +}; + +/** + * Extends a prototype with an other, without calling a constructor with + * side effects. Inspired by nodejs' `utils.inherits` + * @param {Function} ctor the constructor to augment + * @param {Function} superCtor the parent constructor to use + */ +exports.inherits = function (ctor, superCtor) { + var Obj = function() {}; + Obj.prototype = superCtor.prototype; + ctor.prototype = new Obj(); +}; + +/** + * Merge the objects passed as parameters into a new one. + * @private + * @param {...Object} var_args All objects to merge. + * @return {Object} a new object with the data of the others. + */ +exports.extend = function() { + var result = {}, i, attr; + for (i = 0; i < arguments.length; i++) { // arguments is not enumerable in some browsers + for (attr in arguments[i]) { + if (arguments[i].hasOwnProperty(attr) && typeof result[attr] === "undefined") { + result[attr] = arguments[i][attr]; + } + } + } + return result; +}; + +/** + * Transform arbitrary content into a Promise. + * @param {String} name a name for the content being processed. + * @param {Object} inputData the content to process. + * @param {Boolean} isBinary true if the content is not an unicode string + * @param {Boolean} isOptimizedBinaryString true if the string content only has one byte per character. + * @param {Boolean} isBase64 true if the string content is encoded with base64. + * @return {Promise} a promise in a format usable by JSZip. + */ +exports.prepareContent = function(name, inputData, isBinary, isOptimizedBinaryString, isBase64) { + + // if inputData is already a promise, this flatten it. + var promise = external.Promise.resolve(inputData).then(function(data) { + + + var isBlob = support.blob && (data instanceof Blob || ['[object File]', '[object Blob]'].indexOf(Object.prototype.toString.call(data)) !== -1); + + if (isBlob && typeof FileReader !== "undefined") { + return new external.Promise(function (resolve, reject) { + var reader = new FileReader(); + + reader.onload = function(e) { + resolve(e.target.result); + }; + reader.onerror = function(e) { + reject(e.target.error); + }; + reader.readAsArrayBuffer(data); + }); + } else { + return data; + } + }); + + return promise.then(function(data) { + var dataType = exports.getTypeOf(data); + + if (!dataType) { + return external.Promise.reject( + new Error("Can't read the data of '" + name + "'. Is it " + + "in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?") + ); + } + // special case : it's way easier to work with Uint8Array than with ArrayBuffer + if (dataType === "arraybuffer") { + data = exports.transformTo("uint8array", data); + } else if (dataType === "string") { + if (isBase64) { + data = base64.decode(data); + } + else if (isBinary) { + // optimizedBinaryString === true means that the file has already been filtered with a 0xFF mask + if (isOptimizedBinaryString !== true) { + // this is a string, not in a base64 format. + // Be sure that this is a correct "binary string" + data = string2binary(data); + } + } + } + return data; + }); +}; + +},{"./base64":1,"./external":6,"./nodejsUtils":14,"./support":30,"set-immediate-shim":54}],33:[function(require,module,exports){ +'use strict'; +var readerFor = require('./reader/readerFor'); +var utils = require('./utils'); +var sig = require('./signature'); +var ZipEntry = require('./zipEntry'); +var utf8 = require('./utf8'); +var support = require('./support'); +// class ZipEntries {{{ +/** + * All the entries in the zip file. + * @constructor + * @param {Object} loadOptions Options for loading the stream. + */ +function ZipEntries(loadOptions) { + this.files = []; + this.loadOptions = loadOptions; +} +ZipEntries.prototype = { + /** + * Check that the reader is on the specified signature. + * @param {string} expectedSignature the expected signature. + * @throws {Error} if it is an other signature. + */ + checkSignature: function(expectedSignature) { + if (!this.reader.readAndCheckSignature(expectedSignature)) { + this.reader.index -= 4; + var signature = this.reader.readString(4); + throw new Error("Corrupted zip or bug: unexpected signature " + "(" + utils.pretty(signature) + ", expected " + utils.pretty(expectedSignature) + ")"); + } + }, + /** + * Check if the given signature is at the given index. + * @param {number} askedIndex the index to check. + * @param {string} expectedSignature the signature to expect. + * @return {boolean} true if the signature is here, false otherwise. + */ + isSignature: function(askedIndex, expectedSignature) { + var currentIndex = this.reader.index; + this.reader.setIndex(askedIndex); + var signature = this.reader.readString(4); + var result = signature === expectedSignature; + this.reader.setIndex(currentIndex); + return result; + }, + /** + * Read the end of the central directory. + */ + readBlockEndOfCentral: function() { + this.diskNumber = this.reader.readInt(2); + this.diskWithCentralDirStart = this.reader.readInt(2); + this.centralDirRecordsOnThisDisk = this.reader.readInt(2); + this.centralDirRecords = this.reader.readInt(2); + this.centralDirSize = this.reader.readInt(4); + this.centralDirOffset = this.reader.readInt(4); + + this.zipCommentLength = this.reader.readInt(2); + // warning : the encoding depends of the system locale + // On a linux machine with LANG=en_US.utf8, this field is utf8 encoded. + // On a windows machine, this field is encoded with the localized windows code page. + var zipComment = this.reader.readData(this.zipCommentLength); + var decodeParamType = support.uint8array ? "uint8array" : "array"; + // To get consistent behavior with the generation part, we will assume that + // this is utf8 encoded unless specified otherwise. + var decodeContent = utils.transformTo(decodeParamType, zipComment); + this.zipComment = this.loadOptions.decodeFileName(decodeContent); + }, + /** + * Read the end of the Zip 64 central directory. + * Not merged with the method readEndOfCentral : + * The end of central can coexist with its Zip64 brother, + * I don't want to read the wrong number of bytes ! + */ + readBlockZip64EndOfCentral: function() { + this.zip64EndOfCentralSize = this.reader.readInt(8); + this.reader.skip(4); + // this.versionMadeBy = this.reader.readString(2); + // this.versionNeeded = this.reader.readInt(2); + this.diskNumber = this.reader.readInt(4); + this.diskWithCentralDirStart = this.reader.readInt(4); + this.centralDirRecordsOnThisDisk = this.reader.readInt(8); + this.centralDirRecords = this.reader.readInt(8); + this.centralDirSize = this.reader.readInt(8); + this.centralDirOffset = this.reader.readInt(8); + + this.zip64ExtensibleData = {}; + var extraDataSize = this.zip64EndOfCentralSize - 44, + index = 0, + extraFieldId, + extraFieldLength, + extraFieldValue; + while (index < extraDataSize) { + extraFieldId = this.reader.readInt(2); + extraFieldLength = this.reader.readInt(4); + extraFieldValue = this.reader.readData(extraFieldLength); + this.zip64ExtensibleData[extraFieldId] = { + id: extraFieldId, + length: extraFieldLength, + value: extraFieldValue + }; + } + }, + /** + * Read the end of the Zip 64 central directory locator. + */ + readBlockZip64EndOfCentralLocator: function() { + this.diskWithZip64CentralDirStart = this.reader.readInt(4); + this.relativeOffsetEndOfZip64CentralDir = this.reader.readInt(8); + this.disksCount = this.reader.readInt(4); + if (this.disksCount > 1) { + throw new Error("Multi-volumes zip are not supported"); + } + }, + /** + * Read the local files, based on the offset read in the central part. + */ + readLocalFiles: function() { + var i, file; + for (i = 0; i < this.files.length; i++) { + file = this.files[i]; + this.reader.setIndex(file.localHeaderOffset); + this.checkSignature(sig.LOCAL_FILE_HEADER); + file.readLocalPart(this.reader); + file.handleUTF8(); + file.processAttributes(); + } + }, + /** + * Read the central directory. + */ + readCentralDir: function() { + var file; + + this.reader.setIndex(this.centralDirOffset); + while (this.reader.readAndCheckSignature(sig.CENTRAL_FILE_HEADER)) { + file = new ZipEntry({ + zip64: this.zip64 + }, this.loadOptions); + file.readCentralPart(this.reader); + this.files.push(file); + } + + if (this.centralDirRecords !== this.files.length) { + if (this.centralDirRecords !== 0 && this.files.length === 0) { + // We expected some records but couldn't find ANY. + // This is really suspicious, as if something went wrong. + throw new Error("Corrupted zip or bug: expected " + this.centralDirRecords + " records in central dir, got " + this.files.length); + } else { + // We found some records but not all. + // Something is wrong but we got something for the user: no error here. + // console.warn("expected", this.centralDirRecords, "records in central dir, got", this.files.length); + } + } + }, + /** + * Read the end of central directory. + */ + readEndOfCentral: function() { + var offset = this.reader.lastIndexOfSignature(sig.CENTRAL_DIRECTORY_END); + if (offset < 0) { + // Check if the content is a truncated zip or complete garbage. + // A "LOCAL_FILE_HEADER" is not required at the beginning (auto + // extractible zip for example) but it can give a good hint. + // If an ajax request was used without responseType, we will also + // get unreadable data. + var isGarbage = !this.isSignature(0, sig.LOCAL_FILE_HEADER); + + if (isGarbage) { + throw new Error("Can't find end of central directory : is this a zip file ? " + + "If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html"); + } else { + throw new Error("Corrupted zip: can't find end of central directory"); + } + + } + this.reader.setIndex(offset); + var endOfCentralDirOffset = offset; + this.checkSignature(sig.CENTRAL_DIRECTORY_END); + this.readBlockEndOfCentral(); + + + /* extract from the zip spec : + 4) If one of the fields in the end of central directory + record is too small to hold required data, the field + should be set to -1 (0xFFFF or 0xFFFFFFFF) and the + ZIP64 format record should be created. + 5) The end of central directory record and the + Zip64 end of central directory locator record must + reside on the same disk when splitting or spanning + an archive. + */ + if (this.diskNumber === utils.MAX_VALUE_16BITS || this.diskWithCentralDirStart === utils.MAX_VALUE_16BITS || this.centralDirRecordsOnThisDisk === utils.MAX_VALUE_16BITS || this.centralDirRecords === utils.MAX_VALUE_16BITS || this.centralDirSize === utils.MAX_VALUE_32BITS || this.centralDirOffset === utils.MAX_VALUE_32BITS) { + this.zip64 = true; + + /* + Warning : the zip64 extension is supported, but ONLY if the 64bits integer read from + the zip file can fit into a 32bits integer. This cannot be solved : JavaScript represents + all numbers as 64-bit double precision IEEE 754 floating point numbers. + So, we have 53bits for integers and bitwise operations treat everything as 32bits. + see https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/Bitwise_Operators + and http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf section 8.5 + */ + + // should look for a zip64 EOCD locator + offset = this.reader.lastIndexOfSignature(sig.ZIP64_CENTRAL_DIRECTORY_LOCATOR); + if (offset < 0) { + throw new Error("Corrupted zip: can't find the ZIP64 end of central directory locator"); + } + this.reader.setIndex(offset); + this.checkSignature(sig.ZIP64_CENTRAL_DIRECTORY_LOCATOR); + this.readBlockZip64EndOfCentralLocator(); + + // now the zip64 EOCD record + if (!this.isSignature(this.relativeOffsetEndOfZip64CentralDir, sig.ZIP64_CENTRAL_DIRECTORY_END)) { + // console.warn("ZIP64 end of central directory not where expected."); + this.relativeOffsetEndOfZip64CentralDir = this.reader.lastIndexOfSignature(sig.ZIP64_CENTRAL_DIRECTORY_END); + if (this.relativeOffsetEndOfZip64CentralDir < 0) { + throw new Error("Corrupted zip: can't find the ZIP64 end of central directory"); + } + } + this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir); + this.checkSignature(sig.ZIP64_CENTRAL_DIRECTORY_END); + this.readBlockZip64EndOfCentral(); + } + + var expectedEndOfCentralDirOffset = this.centralDirOffset + this.centralDirSize; + if (this.zip64) { + expectedEndOfCentralDirOffset += 20; // end of central dir 64 locator + expectedEndOfCentralDirOffset += 12 /* should not include the leading 12 bytes */ + this.zip64EndOfCentralSize; + } + + var extraBytes = endOfCentralDirOffset - expectedEndOfCentralDirOffset; + + if (extraBytes > 0) { + // console.warn(extraBytes, "extra bytes at beginning or within zipfile"); + if (this.isSignature(endOfCentralDirOffset, sig.CENTRAL_FILE_HEADER)) { + // The offsets seem wrong, but we have something at the specified offset. + // So… we keep it. + } else { + // the offset is wrong, update the "zero" of the reader + // this happens if data has been prepended (crx files for example) + this.reader.zero = extraBytes; + } + } else if (extraBytes < 0) { + throw new Error("Corrupted zip: missing " + Math.abs(extraBytes) + " bytes."); + } + }, + prepareReader: function(data) { + this.reader = readerFor(data); + }, + /** + * Read a zip file and create ZipEntries. + * @param {String|ArrayBuffer|Uint8Array|Buffer} data the binary string representing a zip file. + */ + load: function(data) { + this.prepareReader(data); + this.readEndOfCentral(); + this.readCentralDir(); + this.readLocalFiles(); + } +}; +// }}} end of ZipEntries +module.exports = ZipEntries; + +},{"./reader/readerFor":22,"./signature":23,"./support":30,"./utf8":31,"./utils":32,"./zipEntry":34}],34:[function(require,module,exports){ +'use strict'; +var readerFor = require('./reader/readerFor'); +var utils = require('./utils'); +var CompressedObject = require('./compressedObject'); +var crc32fn = require('./crc32'); +var utf8 = require('./utf8'); +var compressions = require('./compressions'); +var support = require('./support'); + +var MADE_BY_DOS = 0x00; +var MADE_BY_UNIX = 0x03; + +/** + * Find a compression registered in JSZip. + * @param {string} compressionMethod the method magic to find. + * @return {Object|null} the JSZip compression object, null if none found. + */ +var findCompression = function(compressionMethod) { + for (var method in compressions) { + if (!compressions.hasOwnProperty(method)) { + continue; + } + if (compressions[method].magic === compressionMethod) { + return compressions[method]; + } + } + return null; +}; + +// class ZipEntry {{{ +/** + * An entry in the zip file. + * @constructor + * @param {Object} options Options of the current file. + * @param {Object} loadOptions Options for loading the stream. + */ +function ZipEntry(options, loadOptions) { + this.options = options; + this.loadOptions = loadOptions; +} +ZipEntry.prototype = { + /** + * say if the file is encrypted. + * @return {boolean} true if the file is encrypted, false otherwise. + */ + isEncrypted: function() { + // bit 1 is set + return (this.bitFlag & 0x0001) === 0x0001; + }, + /** + * say if the file has utf-8 filename/comment. + * @return {boolean} true if the filename/comment is in utf-8, false otherwise. + */ + useUTF8: function() { + // bit 11 is set + return (this.bitFlag & 0x0800) === 0x0800; + }, + /** + * Read the local part of a zip file and add the info in this object. + * @param {DataReader} reader the reader to use. + */ + readLocalPart: function(reader) { + var compression, localExtraFieldsLength; + + // we already know everything from the central dir ! + // If the central dir data are false, we are doomed. + // On the bright side, the local part is scary : zip64, data descriptors, both, etc. + // The less data we get here, the more reliable this should be. + // Let's skip the whole header and dash to the data ! + reader.skip(22); + // in some zip created on windows, the filename stored in the central dir contains \ instead of /. + // Strangely, the filename here is OK. + // I would love to treat these zip files as corrupted (see http://www.info-zip.org/FAQ.html#backslashes + // or APPNOTE#4.4.17.1, "All slashes MUST be forward slashes '/'") but there are a lot of bad zip generators... + // Search "unzip mismatching "local" filename continuing with "central" filename version" on + // the internet. + // + // I think I see the logic here : the central directory is used to display + // content and the local directory is used to extract the files. Mixing / and \ + // may be used to display \ to windows users and use / when extracting the files. + // Unfortunately, this lead also to some issues : http://seclists.org/fulldisclosure/2009/Sep/394 + this.fileNameLength = reader.readInt(2); + localExtraFieldsLength = reader.readInt(2); // can't be sure this will be the same as the central dir + // the fileName is stored as binary data, the handleUTF8 method will take care of the encoding. + this.fileName = reader.readData(this.fileNameLength); + reader.skip(localExtraFieldsLength); + + if (this.compressedSize === -1 || this.uncompressedSize === -1) { + throw new Error("Bug or corrupted zip : didn't get enough information from the central directory " + "(compressedSize === -1 || uncompressedSize === -1)"); + } + + compression = findCompression(this.compressionMethod); + if (compression === null) { // no compression found + throw new Error("Corrupted zip : compression " + utils.pretty(this.compressionMethod) + " unknown (inner file : " + utils.transformTo("string", this.fileName) + ")"); + } + this.decompressed = new CompressedObject(this.compressedSize, this.uncompressedSize, this.crc32, compression, reader.readData(this.compressedSize)); + }, + + /** + * Read the central part of a zip file and add the info in this object. + * @param {DataReader} reader the reader to use. + */ + readCentralPart: function(reader) { + this.versionMadeBy = reader.readInt(2); + reader.skip(2); + // this.versionNeeded = reader.readInt(2); + this.bitFlag = reader.readInt(2); + this.compressionMethod = reader.readString(2); + this.date = reader.readDate(); + this.crc32 = reader.readInt(4); + this.compressedSize = reader.readInt(4); + this.uncompressedSize = reader.readInt(4); + var fileNameLength = reader.readInt(2); + this.extraFieldsLength = reader.readInt(2); + this.fileCommentLength = reader.readInt(2); + this.diskNumberStart = reader.readInt(2); + this.internalFileAttributes = reader.readInt(2); + this.externalFileAttributes = reader.readInt(4); + this.localHeaderOffset = reader.readInt(4); + + if (this.isEncrypted()) { + throw new Error("Encrypted zip are not supported"); + } + + // will be read in the local part, see the comments there + reader.skip(fileNameLength); + this.readExtraFields(reader); + this.parseZIP64ExtraField(reader); + this.fileComment = reader.readData(this.fileCommentLength); + }, + + /** + * Parse the external file attributes and get the unix/dos permissions. + */ + processAttributes: function () { + this.unixPermissions = null; + this.dosPermissions = null; + var madeBy = this.versionMadeBy >> 8; + + // Check if we have the DOS directory flag set. + // We look for it in the DOS and UNIX permissions + // but some unknown platform could set it as a compatibility flag. + this.dir = this.externalFileAttributes & 0x0010 ? true : false; + + if(madeBy === MADE_BY_DOS) { + // first 6 bits (0 to 5) + this.dosPermissions = this.externalFileAttributes & 0x3F; + } + + if(madeBy === MADE_BY_UNIX) { + this.unixPermissions = (this.externalFileAttributes >> 16) & 0xFFFF; + // the octal permissions are in (this.unixPermissions & 0x01FF).toString(8); + } + + // fail safe : if the name ends with a / it probably means a folder + if (!this.dir && this.fileNameStr.slice(-1) === '/') { + this.dir = true; + } + }, + + /** + * Parse the ZIP64 extra field and merge the info in the current ZipEntry. + * @param {DataReader} reader the reader to use. + */ + parseZIP64ExtraField: function(reader) { + + if (!this.extraFields[0x0001]) { + return; + } + + // should be something, preparing the extra reader + var extraReader = readerFor(this.extraFields[0x0001].value); + + // I really hope that these 64bits integer can fit in 32 bits integer, because js + // won't let us have more. + if (this.uncompressedSize === utils.MAX_VALUE_32BITS) { + this.uncompressedSize = extraReader.readInt(8); + } + if (this.compressedSize === utils.MAX_VALUE_32BITS) { + this.compressedSize = extraReader.readInt(8); + } + if (this.localHeaderOffset === utils.MAX_VALUE_32BITS) { + this.localHeaderOffset = extraReader.readInt(8); + } + if (this.diskNumberStart === utils.MAX_VALUE_32BITS) { + this.diskNumberStart = extraReader.readInt(4); + } + }, + /** + * Read the central part of a zip file and add the info in this object. + * @param {DataReader} reader the reader to use. + */ + readExtraFields: function(reader) { + var end = reader.index + this.extraFieldsLength, + extraFieldId, + extraFieldLength, + extraFieldValue; + + if (!this.extraFields) { + this.extraFields = {}; + } + + while (reader.index + 4 < end) { + extraFieldId = reader.readInt(2); + extraFieldLength = reader.readInt(2); + extraFieldValue = reader.readData(extraFieldLength); + + this.extraFields[extraFieldId] = { + id: extraFieldId, + length: extraFieldLength, + value: extraFieldValue + }; + } + + reader.setIndex(end); + }, + /** + * Apply an UTF8 transformation if needed. + */ + handleUTF8: function() { + var decodeParamType = support.uint8array ? "uint8array" : "array"; + if (this.useUTF8()) { + this.fileNameStr = utf8.utf8decode(this.fileName); + this.fileCommentStr = utf8.utf8decode(this.fileComment); + } else { + var upath = this.findExtraFieldUnicodePath(); + if (upath !== null) { + this.fileNameStr = upath; + } else { + // ASCII text or unsupported code page + var fileNameByteArray = utils.transformTo(decodeParamType, this.fileName); + this.fileNameStr = this.loadOptions.decodeFileName(fileNameByteArray); + } + + var ucomment = this.findExtraFieldUnicodeComment(); + if (ucomment !== null) { + this.fileCommentStr = ucomment; + } else { + // ASCII text or unsupported code page + var commentByteArray = utils.transformTo(decodeParamType, this.fileComment); + this.fileCommentStr = this.loadOptions.decodeFileName(commentByteArray); + } + } + }, + + /** + * Find the unicode path declared in the extra field, if any. + * @return {String} the unicode path, null otherwise. + */ + findExtraFieldUnicodePath: function() { + var upathField = this.extraFields[0x7075]; + if (upathField) { + var extraReader = readerFor(upathField.value); + + // wrong version + if (extraReader.readInt(1) !== 1) { + return null; + } + + // the crc of the filename changed, this field is out of date. + if (crc32fn(this.fileName) !== extraReader.readInt(4)) { + return null; + } + + return utf8.utf8decode(extraReader.readData(upathField.length - 5)); + } + return null; + }, + + /** + * Find the unicode comment declared in the extra field, if any. + * @return {String} the unicode comment, null otherwise. + */ + findExtraFieldUnicodeComment: function() { + var ucommentField = this.extraFields[0x6375]; + if (ucommentField) { + var extraReader = readerFor(ucommentField.value); + + // wrong version + if (extraReader.readInt(1) !== 1) { + return null; + } + + // the crc of the comment changed, this field is out of date. + if (crc32fn(this.fileComment) !== extraReader.readInt(4)) { + return null; + } + + return utf8.utf8decode(extraReader.readData(ucommentField.length - 5)); + } + return null; + } +}; +module.exports = ZipEntry; + +},{"./compressedObject":2,"./compressions":3,"./crc32":4,"./reader/readerFor":22,"./support":30,"./utf8":31,"./utils":32}],35:[function(require,module,exports){ +'use strict'; + +var StreamHelper = require('./stream/StreamHelper'); +var DataWorker = require('./stream/DataWorker'); +var utf8 = require('./utf8'); +var CompressedObject = require('./compressedObject'); +var GenericWorker = require('./stream/GenericWorker'); + +/** + * A simple object representing a file in the zip file. + * @constructor + * @param {string} name the name of the file + * @param {String|ArrayBuffer|Uint8Array|Buffer} data the data + * @param {Object} options the options of the file + */ +var ZipObject = function(name, data, options) { + this.name = name; + this.dir = options.dir; + this.date = options.date; + this.comment = options.comment; + this.unixPermissions = options.unixPermissions; + this.dosPermissions = options.dosPermissions; + + this._data = data; + this._dataBinary = options.binary; + // keep only the compression + this.options = { + compression : options.compression, + compressionOptions : options.compressionOptions + }; +}; + +ZipObject.prototype = { + /** + * Create an internal stream for the content of this object. + * @param {String} type the type of each chunk. + * @return StreamHelper the stream. + */ + internalStream: function (type) { + var result = null, outputType = "string"; + try { + if (!type) { + throw new Error("No output type specified."); + } + outputType = type.toLowerCase(); + var askUnicodeString = outputType === "string" || outputType === "text"; + if (outputType === "binarystring" || outputType === "text") { + outputType = "string"; + } + result = this._decompressWorker(); + + var isUnicodeString = !this._dataBinary; + + if (isUnicodeString && !askUnicodeString) { + result = result.pipe(new utf8.Utf8EncodeWorker()); + } + if (!isUnicodeString && askUnicodeString) { + result = result.pipe(new utf8.Utf8DecodeWorker()); + } + } catch (e) { + result = new GenericWorker("error"); + result.error(e); + } + + return new StreamHelper(result, outputType, ""); + }, + + /** + * Prepare the content in the asked type. + * @param {String} type the type of the result. + * @param {Function} onUpdate a function to call on each internal update. + * @return Promise the promise of the result. + */ + async: function (type, onUpdate) { + return this.internalStream(type).accumulate(onUpdate); + }, + + /** + * Prepare the content as a nodejs stream. + * @param {String} type the type of each chunk. + * @param {Function} onUpdate a function to call on each internal update. + * @return Stream the stream. + */ + nodeStream: function (type, onUpdate) { + return this.internalStream(type || "nodebuffer").toNodejsStream(onUpdate); + }, + + /** + * Return a worker for the compressed content. + * @private + * @param {Object} compression the compression object to use. + * @param {Object} compressionOptions the options to use when compressing. + * @return Worker the worker. + */ + _compressWorker: function (compression, compressionOptions) { + if ( + this._data instanceof CompressedObject && + this._data.compression.magic === compression.magic + ) { + return this._data.getCompressedWorker(); + } else { + var result = this._decompressWorker(); + if(!this._dataBinary) { + result = result.pipe(new utf8.Utf8EncodeWorker()); + } + return CompressedObject.createWorkerFrom(result, compression, compressionOptions); + } + }, + /** + * Return a worker for the decompressed content. + * @private + * @return Worker the worker. + */ + _decompressWorker : function () { + if (this._data instanceof CompressedObject) { + return this._data.getContentWorker(); + } else if (this._data instanceof GenericWorker) { + return this._data; + } else { + return new DataWorker(this._data); + } + } +}; + +var removedMethods = ["asText", "asBinary", "asNodeBuffer", "asUint8Array", "asArrayBuffer"]; +var removedFn = function () { + throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide."); +}; + +for(var i = 0; i < removedMethods.length; i++) { + ZipObject.prototype[removedMethods[i]] = removedFn; +} +module.exports = ZipObject; + +},{"./compressedObject":2,"./stream/DataWorker":27,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31}],36:[function(require,module,exports){ +(function (global){ +'use strict'; +var Mutation = global.MutationObserver || global.WebKitMutationObserver; + +var scheduleDrain; + +{ + if (Mutation) { + var called = 0; + var observer = new Mutation(nextTick); + var element = global.document.createTextNode(''); + observer.observe(element, { + characterData: true + }); + scheduleDrain = function () { + element.data = (called = ++called % 2); + }; + } else if (!global.setImmediate && typeof global.MessageChannel !== 'undefined') { + var channel = new global.MessageChannel(); + channel.port1.onmessage = nextTick; + scheduleDrain = function () { + channel.port2.postMessage(0); + }; + } else if ('document' in global && 'onreadystatechange' in global.document.createElement('script')) { + scheduleDrain = function () { + + // Create a + + + + + +
+ +

index.html

+
+ + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/overview-tree.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/overview-tree.html new file mode 100644 index 0000000000..138fdfbfe6 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/overview-tree.html @@ -0,0 +1,253 @@ + + + + + +Class Hierarchy + + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For All Packages

+Package Hierarchies: + +
+
+
+

Class Hierarchy

+ +
+
+

Interface Hierarchy

+ +
+
+

Enum Hierarchy

+ +
+
+
+
+ +
+ + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/package-search-index.js b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/package-search-index.js new file mode 100644 index 0000000000..cbaec827a2 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/package-search-index.js @@ -0,0 +1 @@ +packageSearchIndex = [{"l":"All Packages","url":"allpackages-index.html"},{"l":"io.github.cvc5"},{"l":"io.github.cvc5.modes"}] \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/package-search-index.zip b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/package-search-index.zip new file mode 100644 index 0000000000..680ecfd3d9 Binary files /dev/null and b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/package-search-index.zip differ diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/quickstart.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/quickstart.html new file mode 100644 index 0000000000..cf71c8b053 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/quickstart.html @@ -0,0 +1,1070 @@ + + + + + + + + + + + + + Quickstart Guide — cvc5 documentation + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Quickstart Guide

+

First, create a cvc5 TermManager instance:

+
rmManager tm = new TermManager();
+
+
+

Then, create a cvc5 Solver +instance:

+
lver solver = new Solver(tm);
+
+
+

To produce models and unsat cores, we have to enable the following options.

+
solver.setOption("produce-models", "true");
+solver.setOption("produce-unsat-cores", "true");
+
+
+

Next we set the logic. +The simplest way to set a logic for the solver is to choose "ALL". +This enables all logics in the solver. +Alternatively, "QF_ALL" enables all logics without quantifiers. +To optimize the solver’s behavior for a more specific logic, +use the logic name, e.g. "QF_BV" or "QF_AUFBV".

+
solver.setLogic("ALL");
+
+
+

In the following, we will define real and integer constraints. +For this, we first query the solver for the corresponding sorts.

+
Sort realSort = tm.getRealSort();
+Sort intSort = tm.getIntegerSort();
+
+
+

Now, we create two constants x and y of sort Real, +and two constants a and b of sort Integer. +Notice that these are symbolic constants, not actual values.

+
Term x = tm.mkConst(realSort, "x");
+Term y = tm.mkConst(realSort, "y");
+Term a = tm.mkConst(intSort, "a");
+Term b = tm.mkConst(intSort, "b");
+
+
+

We define the following constraints regarding x and y:

+
+\[(0 < x) \wedge (0 < y) \wedge (x + y < 1) \wedge (x \leq y)\]
+

We construct the required terms and assert them as follows:

+
// Formally, constraints are also terms. Their sort is Boolean.
+// We will construct these constraints gradually,
+// by defining each of their components.
+// We start with the constant numerals 0 and 1:
+Term zero = tm.mkReal(0);
+Term one = tm.mkReal(1);
+
+// Next, we construct the term x + y
+Term xPlusY = tm.mkTerm(Kind.ADD, x, y);
+
+// Now we can define the constraints.
+// They use the operators +, <=, and <.
+// In the API, these are denoted by ADD, LEQ, and LT.
+// A list of available operators is available in:
+// src/api/cpp/cvc5_kind.h
+Term constraint1 = tm.mkTerm(Kind.LT, zero, x);
+Term constraint2 = tm.mkTerm(Kind.LT, zero, y);
+Term constraint3 = tm.mkTerm(Kind.LT, xPlusY, one);
+Term constraint4 = tm.mkTerm(Kind.LEQ, x, y);
+
+// Now we assert the constraints to the solver.
+solver.assertFormula(constraint1);
+solver.assertFormula(constraint2);
+solver.assertFormula(constraint3);
+solver.assertFormula(constraint4);
+
+
+

Now we check if the asserted formula is satisfiable, that is, we check if +there exist values of sort Real for x and y that satisfy all +the constraints.

+
Result r1 = solver.checkSat();
+
+
+

The result we get from this satisfiability check is either sat, unsat +or unknown. +It’s status can be queried via +Result.isSat, +Result.isUnsat and +Result.isSatUnknown. +Alternatively, it can also be printed.

+
System.out.println("expected: sat");
+System.out.println("result: " + r1);
+
+
+

This will print:

+
expected: sat
+result: sat
+
+
+

Now, we query the solver for the values for x and y that satisfy +the constraints.

+
Term xVal = solver.getValue(x);
+Term yVal = solver.getValue(y);
+
+
+

It is also possible to get values for terms that do not appear in the original +formula.

+
Term xMinusY = tm.mkTerm(Kind.SUB, x, y);
+Term xMinusYVal = solver.getValue(xMinusY);
+
+
+

We can convert these values to Java types.

+
Pair<BigInteger, BigInteger> xPair = xVal.getRealValue();
+Pair<BigInteger, BigInteger> yPair = yVal.getRealValue();
+Pair<BigInteger, BigInteger> xMinusYPair = xMinusYVal.getRealValue();
+
+System.out.println("value for x: " + xPair.first + "/" + xPair.second);
+System.out.println("value for y: " + yPair.first + "/" + yPair.second);
+System.out.println("value for x - y: " + xMinusYPair.first + "/" + xMinusYPair.second);
+
+
+

Another way to independently compute the value of x - y would be to +perform the (rational) arithmetic manually. +However, for more complex terms, it is easier to let the solver do the +evaluation.

+
Pair<BigInteger, BigInteger> xMinusYComputed =
+    new Pair<>(xPair.first.multiply(yPair.second).subtract(xPair.second.multiply(yPair.first)),
+        xPair.second.multiply(yPair.second));
+BigInteger g = xMinusYComputed.first.gcd(xMinusYComputed.second);
+xMinusYComputed = new Pair<>(xMinusYComputed.first.divide(g), xMinusYComputed.second.divide(g));
+if (xMinusYComputed.equals(xMinusYPair))
+{
+  System.out.println("computed correctly");
+}
+else
+{
+  System.out.println("computed incorrectly");
+}
+
+
+

This will print:

+
computed correctly
+
+
+

Next, we will check satisfiability of the same formula, +only this time over integer variables a and b. +For this, we first reset the assertions added to the solver.

+
solver.resetAssertions();
+
+
+

Next, we assert the same assertions as above, but with integers. +This time, we inline the construction of terms +in the assertion command.

+
solver.assertFormula(tm.mkTerm(Kind.LT, tm.mkInteger(0), a));
+solver.assertFormula(tm.mkTerm(Kind.LT, tm.mkInteger(0), b));
+solver.assertFormula(
+    tm.mkTerm(Kind.LT, tm.mkTerm(Kind.ADD, a, b), tm.mkInteger(1)));
+solver.assertFormula(tm.mkTerm(Kind.LEQ, a, b));
+
+
+

Now, we check whether the revised assertion is satisfiable.

+
Result r2 = solver.checkSat();
+
+// This time the formula is unsatisfiable
+System.out.println("expected: unsat");
+System.out.println("result: " + r2);
+
+
+

This time the asserted formula is unsatisfiable:

+
expected: unsat
+result: unsat
+
+
+

We can query the solver for an unsatisfiable core, that is, a subset +of the assertions that is already unsatisfiable.

+
List<Term> unsatCore = Arrays.asList(solver.getUnsatCore());
+System.out.println("unsat core size: " + unsatCore.size());
+System.out.println("unsat core: ");
+for (Term t : unsatCore)
+{
+  System.out.println(t);
+}
+
+
+

This will print:

+
unsat core size: 3
+unsat core:
+(< 0 a)
+(< 0 b)
+(< (+ a b) 1)
+
+
+
+

Example

+
+

examples/api/java/QuickStart.java

+
  1/******************************************************************************
+  2 * Top contributors (to current version):
+  3 *   Mudathir Mohamed, Aina Niemetz, Andres Noetzli
+  4 *
+  5 * This file is part of the cvc5 project.
+  6 *
+  7 * Copyright (c) 2009-2024 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 * A simple demonstration of the api capabilities of cvc5.
+ 14 *
+ 15 */
+ 16
+ 17import io.github.cvc5.*;
+ 18import java.math.BigInteger;
+ 19import java.util.ArrayList;
+ 20import java.util.Arrays;
+ 21import java.util.List;
+ 22
+ 23public class QuickStart
+ 24{
+ 25  public static void main(String args[]) throws CVC5ApiException
+ 26  {
+ 27    // Create a term manager
+ 28    //! [docs-java-quickstart-0 start]
+ 29    TermManager tm = new TermManager();
+ 30    //! [docs-java-quickstart-0 end]
+ 31    // Create a solver
+ 32    //! [docs-java-quickstart-1 start]
+ 33    Solver solver = new Solver(tm);
+ 34    //! [docs-java-quickstart-1 end]
+ 35    {
+ 36      // We will ask the solver to produce models and unsat cores,
+ 37      // hence these options should be turned on.
+ 38      //! [docs-java-quickstart-2 start]
+ 39      solver.setOption("produce-models", "true");
+ 40      solver.setOption("produce-unsat-cores", "true");
+ 41      //! [docs-java-quickstart-2 end]
+ 42
+ 43      // The simplest way to set a logic for the solver is to choose "ALL".
+ 44      // This enables all logics in the solver.
+ 45      // Alternatively, "QF_ALL" enables all logics without quantifiers.
+ 46      // To optimize the solver's behavior for a more specific logic,
+ 47      // use the logic name, e.g. "QF_BV" or "QF_AUFBV".
+ 48
+ 49      // Set the logic
+ 50      //! [docs-java-quickstart-3 start]
+ 51      solver.setLogic("ALL");
+ 52      //! [docs-java-quickstart-3 end]
+ 53
+ 54      // In this example, we will define constraints over reals and integers.
+ 55      // Hence, we first obtain the corresponding sorts.
+ 56      //! [docs-java-quickstart-4 start]
+ 57      Sort realSort = tm.getRealSort();
+ 58      Sort intSort = tm.getIntegerSort();
+ 59      //! [docs-java-quickstart-4 end]
+ 60
+ 61      // x and y will be real variables, while a and b will be integer variables.
+ 62      // Formally, their cpp type is Term,
+ 63      // and they are called "constants" in SMT jargon:
+ 64      //! [docs-java-quickstart-5 start]
+ 65      Term x = tm.mkConst(realSort, "x");
+ 66      Term y = tm.mkConst(realSort, "y");
+ 67      Term a = tm.mkConst(intSort, "a");
+ 68      Term b = tm.mkConst(intSort, "b");
+ 69      //! [docs-java-quickstart-5 end]
+ 70
+ 71      // Our constraints regarding x and y will be:
+ 72      //
+ 73      //   (1)  0 < x
+ 74      //   (2)  0 < y
+ 75      //   (3)  x + y < 1
+ 76      //   (4)  x <= y
+ 77      //
+ 78
+ 79      //! [docs-java-quickstart-6 start]
+ 80      // Formally, constraints are also terms. Their sort is Boolean.
+ 81      // We will construct these constraints gradually,
+ 82      // by defining each of their components.
+ 83      // We start with the constant numerals 0 and 1:
+ 84      Term zero = tm.mkReal(0);
+ 85      Term one = tm.mkReal(1);
+ 86
+ 87      // Next, we construct the term x + y
+ 88      Term xPlusY = tm.mkTerm(Kind.ADD, x, y);
+ 89
+ 90      // Now we can define the constraints.
+ 91      // They use the operators +, <=, and <.
+ 92      // In the API, these are denoted by ADD, LEQ, and LT.
+ 93      // A list of available operators is available in:
+ 94      // src/api/cpp/cvc5_kind.h
+ 95      Term constraint1 = tm.mkTerm(Kind.LT, zero, x);
+ 96      Term constraint2 = tm.mkTerm(Kind.LT, zero, y);
+ 97      Term constraint3 = tm.mkTerm(Kind.LT, xPlusY, one);
+ 98      Term constraint4 = tm.mkTerm(Kind.LEQ, x, y);
+ 99
+100      // Now we assert the constraints to the solver.
+101      solver.assertFormula(constraint1);
+102      solver.assertFormula(constraint2);
+103      solver.assertFormula(constraint3);
+104      solver.assertFormula(constraint4);
+105      //! [docs-java-quickstart-6 end]
+106
+107      // Check if the formula is satisfiable, that is,
+108      // are there real values for x and y that satisfy all the constraints?
+109      //! [docs-java-quickstart-7 start]
+110      Result r1 = solver.checkSat();
+111      //! [docs-java-quickstart-7 end]
+112
+113      // The result is either SAT, UNSAT, or UNKNOWN.
+114      // In this case, it is SAT.
+115      //! [docs-java-quickstart-8 start]
+116      System.out.println("expected: sat");
+117      System.out.println("result: " + r1);
+118      //! [docs-java-quickstart-8 end]
+119
+120      // We can get the values for x and y that satisfy the constraints.
+121      //! [docs-java-quickstart-9 start]
+122      Term xVal = solver.getValue(x);
+123      Term yVal = solver.getValue(y);
+124      //! [docs-java-quickstart-9 end]
+125
+126      // It is also possible to get values for compound terms,
+127      // even if those did not appear in the original formula.
+128      //! [docs-java-quickstart-10 start]
+129      Term xMinusY = tm.mkTerm(Kind.SUB, x, y);
+130      Term xMinusYVal = solver.getValue(xMinusY);
+131      //! [docs-java-quickstart-10 end]
+132
+133      // Further, we can convert the values to java types
+134      //! [docs-java-quickstart-11 start]
+135      Pair<BigInteger, BigInteger> xPair = xVal.getRealValue();
+136      Pair<BigInteger, BigInteger> yPair = yVal.getRealValue();
+137      Pair<BigInteger, BigInteger> xMinusYPair = xMinusYVal.getRealValue();
+138
+139      System.out.println("value for x: " + xPair.first + "/" + xPair.second);
+140      System.out.println("value for y: " + yPair.first + "/" + yPair.second);
+141      System.out.println("value for x - y: " + xMinusYPair.first + "/" + xMinusYPair.second);
+142      //! [docs-java-quickstart-11 end]
+143
+144      // Another way to independently compute the value of x - y would be
+145      // to perform the (rational) arithmetic manually.
+146      // However, for more complex terms,
+147      // it is easier to let the solver do the evaluation.
+148      //! [docs-java-quickstart-12 start]
+149      Pair<BigInteger, BigInteger> xMinusYComputed =
+150          new Pair<>(xPair.first.multiply(yPair.second).subtract(xPair.second.multiply(yPair.first)),
+151              xPair.second.multiply(yPair.second));
+152      BigInteger g = xMinusYComputed.first.gcd(xMinusYComputed.second);
+153      xMinusYComputed = new Pair<>(xMinusYComputed.first.divide(g), xMinusYComputed.second.divide(g));
+154      if (xMinusYComputed.equals(xMinusYPair))
+155      {
+156        System.out.println("computed correctly");
+157      }
+158      else
+159      {
+160        System.out.println("computed incorrectly");
+161      }
+162      //! [docs-java-quickstart-12 end]
+163
+164      // Next, we will check satisfiability of the same formula,
+165      // only this time over integer variables a and b.
+166
+167      // We start by resetting assertions added to the solver.
+168      //! [docs-java-quickstart-13 start]
+169      solver.resetAssertions();
+170      //! [docs-java-quickstart-13 end]
+171
+172      // Next, we assert the same assertions above with integers.
+173      // This time, we inline the construction of terms
+174      // to the assertion command.
+175      //! [docs-java-quickstart-14 start]
+176      solver.assertFormula(tm.mkTerm(Kind.LT, tm.mkInteger(0), a));
+177      solver.assertFormula(tm.mkTerm(Kind.LT, tm.mkInteger(0), b));
+178      solver.assertFormula(
+179          tm.mkTerm(Kind.LT, tm.mkTerm(Kind.ADD, a, b), tm.mkInteger(1)));
+180      solver.assertFormula(tm.mkTerm(Kind.LEQ, a, b));
+181      //! [docs-java-quickstart-14 end]
+182
+183      // We check whether the revised assertion is satisfiable.
+184      //! [docs-java-quickstart-15 start]
+185      Result r2 = solver.checkSat();
+186
+187      // This time the formula is unsatisfiable
+188      System.out.println("expected: unsat");
+189      System.out.println("result: " + r2);
+190      //! [docs-java-quickstart-15 end]
+191
+192      // We can query the solver for an unsatisfiable core, i.e., a subset
+193      // of the assertions that is already unsatisfiable.
+194      //! [docs-java-quickstart-16 start]
+195      List<Term> unsatCore = Arrays.asList(solver.getUnsatCore());
+196      System.out.println("unsat core size: " + unsatCore.size());
+197      System.out.println("unsat core: ");
+198      for (Term t : unsatCore)
+199      {
+200        System.out.println(t);
+201      }
+202      //! [docs-java-quickstart-16 end]
+203    }
+204    Context.deletePointers();
+205  }
+206}
+
+
+
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/resources/glass.png b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/resources/glass.png new file mode 100644 index 0000000000..a7f591f467 Binary files /dev/null and b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/resources/glass.png differ diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/resources/x.png b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/resources/x.png new file mode 100644 index 0000000000..30548a756e Binary files /dev/null and b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/resources/x.png differ diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/script.js b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/script.js new file mode 100644 index 0000000000..7dc93c48e3 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/script.js @@ -0,0 +1,149 @@ +/* + * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +var moduleSearchIndex; +var packageSearchIndex; +var typeSearchIndex; +var memberSearchIndex; +var tagSearchIndex; +function loadScripts(doc, tag) { + createElem(doc, tag, 'jquery/jszip/dist/jszip.js'); + createElem(doc, tag, 'jquery/jszip-utils/dist/jszip-utils.js'); + if (window.navigator.userAgent.indexOf('MSIE ') > 0 || window.navigator.userAgent.indexOf('Trident/') > 0 || + window.navigator.userAgent.indexOf('Edge/') > 0) { + createElem(doc, tag, 'jquery/jszip-utils/dist/jszip-utils-ie.js'); + } + createElem(doc, tag, 'search.js'); + + $.get(pathtoroot + "module-search-index.zip") + .done(function() { + JSZipUtils.getBinaryContent(pathtoroot + "module-search-index.zip", function(e, data) { + JSZip.loadAsync(data).then(function(zip){ + zip.file("module-search-index.json").async("text").then(function(content){ + moduleSearchIndex = JSON.parse(content); + }); + }); + }); + }); + $.get(pathtoroot + "package-search-index.zip") + .done(function() { + JSZipUtils.getBinaryContent(pathtoroot + "package-search-index.zip", function(e, data) { + JSZip.loadAsync(data).then(function(zip){ + zip.file("package-search-index.json").async("text").then(function(content){ + packageSearchIndex = JSON.parse(content); + }); + }); + }); + }); + $.get(pathtoroot + "type-search-index.zip") + .done(function() { + JSZipUtils.getBinaryContent(pathtoroot + "type-search-index.zip", function(e, data) { + JSZip.loadAsync(data).then(function(zip){ + zip.file("type-search-index.json").async("text").then(function(content){ + typeSearchIndex = JSON.parse(content); + }); + }); + }); + }); + $.get(pathtoroot + "member-search-index.zip") + .done(function() { + JSZipUtils.getBinaryContent(pathtoroot + "member-search-index.zip", function(e, data) { + JSZip.loadAsync(data).then(function(zip){ + zip.file("member-search-index.json").async("text").then(function(content){ + memberSearchIndex = JSON.parse(content); + }); + }); + }); + }); + $.get(pathtoroot + "tag-search-index.zip") + .done(function() { + JSZipUtils.getBinaryContent(pathtoroot + "tag-search-index.zip", function(e, data) { + JSZip.loadAsync(data).then(function(zip){ + zip.file("tag-search-index.json").async("text").then(function(content){ + tagSearchIndex = JSON.parse(content); + }); + }); + }); + }); + if (!moduleSearchIndex) { + createElem(doc, tag, 'module-search-index.js'); + } + if (!packageSearchIndex) { + createElem(doc, tag, 'package-search-index.js'); + } + if (!typeSearchIndex) { + createElem(doc, tag, 'type-search-index.js'); + } + if (!memberSearchIndex) { + createElem(doc, tag, 'member-search-index.js'); + } + if (!tagSearchIndex) { + createElem(doc, tag, 'tag-search-index.js'); + } + $(window).resize(function() { + $('.navPadding').css('padding-top', $('.fixedNav').css("height")); + }); +} + +function createElem(doc, tag, path) { + var script = doc.createElement(tag); + var scriptElement = doc.getElementsByTagName(tag)[0]; + script.src = pathtoroot + path; + scriptElement.parentNode.insertBefore(script, scriptElement); +} + +function show(type) { + count = 0; + for (var key in data) { + var row = document.getElementById(key); + if ((data[key] & type) !== 0) { + row.style.display = ''; + row.className = (count++ % 2) ? rowColor : altColor; + } + else + row.style.display = 'none'; + } + updateTabs(type); +} + +function updateTabs(type) { + for (var value in tabs) { + var sNode = document.getElementById(tabs[value][0]); + var spanNode = sNode.firstChild; + if (value == type) { + sNode.className = activeTableTab; + spanNode.innerHTML = tabs[value][1]; + } + else { + sNode.className = tableTab; + spanNode.innerHTML = "" + tabs[value][1] + ""; + } + } +} + +function updateModuleFrame(pFrame, cFrame) { + top.packageFrame.location = pFrame; + top.classFrame.location = cFrame; +} diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/search.js b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/search.js new file mode 100644 index 0000000000..8492271e71 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/search.js @@ -0,0 +1,326 @@ +/* + * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +var noResult = {l: "No results found"}; +var catModules = "Modules"; +var catPackages = "Packages"; +var catTypes = "Types"; +var catMembers = "Members"; +var catSearchTags = "SearchTags"; +var highlight = "$&"; +var camelCaseRegexp = ""; +var secondaryMatcher = ""; +function getHighlightedText(item) { + var ccMatcher = new RegExp(camelCaseRegexp); + var label = item.replace(ccMatcher, highlight); + if (label === item) { + label = item.replace(secondaryMatcher, highlight); + } + return label; +} +function getURLPrefix(ui) { + var urlPrefix=""; + if (useModuleDirectories) { + var slash = "/"; + if (ui.item.category === catModules) { + return ui.item.l + slash; + } else if (ui.item.category === catPackages && ui.item.m) { + return ui.item.m + slash; + } else if ((ui.item.category === catTypes && ui.item.p) || ui.item.category === catMembers) { + $.each(packageSearchIndex, function(index, item) { + if (item.m && ui.item.p == item.l) { + urlPrefix = item.m + slash; + } + }); + return urlPrefix; + } else { + return urlPrefix; + } + } + return urlPrefix; +} +var watermark = 'Search'; +$(function() { + $("#search").val(''); + $("#search").prop("disabled", false); + $("#reset").prop("disabled", false); + $("#search").val(watermark).addClass('watermark'); + $("#search").blur(function() { + if ($(this).val().length == 0) { + $(this).val(watermark).addClass('watermark'); + } + }); + $("#search").on('click keydown', function() { + if ($(this).val() == watermark) { + $(this).val('').removeClass('watermark'); + } + }); + $("#reset").click(function() { + $("#search").val(''); + $("#search").focus(); + }); + $("#search").focus(); + $("#search")[0].setSelectionRange(0, 0); +}); +$.widget("custom.catcomplete", $.ui.autocomplete, { + _create: function() { + this._super(); + this.widget().menu("option", "items", "> :not(.ui-autocomplete-category)"); + }, + _renderMenu: function(ul, items) { + var rMenu = this, + currentCategory = ""; + rMenu.menu.bindings = $(); + $.each(items, function(index, item) { + var li; + if (item.l !== noResult.l && item.category !== currentCategory) { + ul.append("
  • " + item.category + "
  • "); + currentCategory = item.category; + } + li = rMenu._renderItemData(ul, item); + if (item.category) { + li.attr("aria-label", item.category + " : " + item.l); + li.attr("class", "resultItem"); + } else { + li.attr("aria-label", item.l); + li.attr("class", "resultItem"); + } + }); + }, + _renderItem: function(ul, item) { + var label = ""; + if (item.category === catModules) { + label = getHighlightedText(item.l); + } else if (item.category === catPackages) { + label = (item.m) + ? getHighlightedText(item.m + "/" + item.l) + : getHighlightedText(item.l); + } else if (item.category === catTypes) { + label = (item.p) + ? getHighlightedText(item.p + "." + item.l) + : getHighlightedText(item.l); + } else if (item.category === catMembers) { + label = getHighlightedText(item.p + "." + (item.c + "." + item.l)); + } else if (item.category === catSearchTags) { + label = getHighlightedText(item.l); + } else { + label = item.l; + } + var li = $("
  • ").appendTo(ul); + var div = $("
    ").appendTo(li); + if (item.category === catSearchTags) { + if (item.d) { + div.html(label + " (" + item.h + ")
    " + + item.d + "
    "); + } else { + div.html(label + " (" + item.h + ")"); + } + } else { + div.html(label); + } + return li; + } +}); +$(function() { + $("#search").catcomplete({ + minLength: 1, + delay: 100, + source: function(request, response) { + var result = new Array(); + var presult = new Array(); + var tresult = new Array(); + var mresult = new Array(); + var tgresult = new Array(); + var secondaryresult = new Array(); + var displayCount = 0; + var exactMatcher = new RegExp("^" + $.ui.autocomplete.escapeRegex(request.term) + "$", "i"); + camelCaseRegexp = ($.ui.autocomplete.escapeRegex(request.term)).split(/(?=[A-Z])/).join("([a-z0-9_$]*?)"); + var camelCaseMatcher = new RegExp("^" + camelCaseRegexp); + secondaryMatcher = new RegExp($.ui.autocomplete.escapeRegex(request.term), "i"); + + // Return the nested innermost name from the specified object + function nestedName(e) { + return e.l.substring(e.l.lastIndexOf(".") + 1); + } + + function concatResults(a1, a2) { + a1 = a1.concat(a2); + a2.length = 0; + return a1; + } + + if (moduleSearchIndex) { + var mdleCount = 0; + $.each(moduleSearchIndex, function(index, item) { + item.category = catModules; + if (exactMatcher.test(item.l)) { + result.push(item); + mdleCount++; + } else if (camelCaseMatcher.test(item.l)) { + result.push(item); + } else if (secondaryMatcher.test(item.l)) { + secondaryresult.push(item); + } + }); + displayCount = mdleCount; + result = concatResults(result, secondaryresult); + } + if (packageSearchIndex) { + var pCount = 0; + var pkg = ""; + $.each(packageSearchIndex, function(index, item) { + item.category = catPackages; + pkg = (item.m) + ? (item.m + "/" + item.l) + : item.l; + if (exactMatcher.test(item.l)) { + presult.push(item); + pCount++; + } else if (camelCaseMatcher.test(pkg)) { + presult.push(item); + } else if (secondaryMatcher.test(pkg)) { + secondaryresult.push(item); + } + }); + result = result.concat(concatResults(presult, secondaryresult)); + displayCount = (pCount > displayCount) ? pCount : displayCount; + } + if (typeSearchIndex) { + var tCount = 0; + $.each(typeSearchIndex, function(index, item) { + item.category = catTypes; + var s = nestedName(item); + if (exactMatcher.test(s)) { + tresult.push(item); + tCount++; + } else if (camelCaseMatcher.test(s)) { + tresult.push(item); + } else if (secondaryMatcher.test(item.p + "." + item.l)) { + secondaryresult.push(item); + } + }); + result = result.concat(concatResults(tresult, secondaryresult)); + displayCount = (tCount > displayCount) ? tCount : displayCount; + } + if (memberSearchIndex) { + var mCount = 0; + $.each(memberSearchIndex, function(index, item) { + item.category = catMembers; + var s = nestedName(item); + if (exactMatcher.test(s)) { + mresult.push(item); + mCount++; + } else if (camelCaseMatcher.test(s)) { + mresult.push(item); + } else if (secondaryMatcher.test(item.c + "." + item.l)) { + secondaryresult.push(item); + } + }); + result = result.concat(concatResults(mresult, secondaryresult)); + displayCount = (mCount > displayCount) ? mCount : displayCount; + } + if (tagSearchIndex) { + var tgCount = 0; + $.each(tagSearchIndex, function(index, item) { + item.category = catSearchTags; + if (exactMatcher.test(item.l)) { + tgresult.push(item); + tgCount++; + } else if (secondaryMatcher.test(item.l)) { + secondaryresult.push(item); + } + }); + result = result.concat(concatResults(tgresult, secondaryresult)); + displayCount = (tgCount > displayCount) ? tgCount : displayCount; + } + displayCount = (displayCount > 500) ? displayCount : 500; + var counter = function() { + var count = {Modules: 0, Packages: 0, Types: 0, Members: 0, SearchTags: 0}; + var f = function(item) { + count[item.category] += 1; + return (count[item.category] <= displayCount); + }; + return f; + }(); + response(result.filter(counter)); + }, + response: function(event, ui) { + if (!ui.content.length) { + ui.content.push(noResult); + } else { + $("#search").empty(); + } + }, + autoFocus: true, + position: { + collision: "flip" + }, + select: function(event, ui) { + if (ui.item.l !== noResult.l) { + var url = getURLPrefix(ui); + if (ui.item.category === catModules) { + if (useModuleDirectories) { + url += "module-summary.html"; + } else { + url = ui.item.l + "-summary.html"; + } + } else if (ui.item.category === catPackages) { + if (ui.item.url) { + url = ui.item.url; + } else { + url += ui.item.l.replace(/\./g, '/') + "/package-summary.html"; + } + } else if (ui.item.category === catTypes) { + if (ui.item.url) { + url = ui.item.url; + } else if (ui.item.p === "") { + url += ui.item.l + ".html"; + } else { + url += ui.item.p.replace(/\./g, '/') + "/" + ui.item.l + ".html"; + } + } else if (ui.item.category === catMembers) { + if (ui.item.p === "") { + url += ui.item.c + ".html" + "#"; + } else { + url += ui.item.p.replace(/\./g, '/') + "/" + ui.item.c + ".html" + "#"; + } + if (ui.item.url) { + url += ui.item.url; + } else { + url += ui.item.l; + } + } else if (ui.item.category === catSearchTags) { + url += ui.item.u; + } + if (top !== window) { + parent.classFrame.location = pathtoroot + url; + } else { + window.location.href = pathtoroot + url; + } + $("#search").focus(); + } + } + }); +}); diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/serialized-form.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/serialized-form.html new file mode 100644 index 0000000000..d2a7f693ee --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/serialized-form.html @@ -0,0 +1,178 @@ + + + + + +Serialized Form + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    Serialized Form

    +
    +
    + +
    +
    +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/stylesheet.css b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/stylesheet.css new file mode 100644 index 0000000000..de945eda26 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/stylesheet.css @@ -0,0 +1,910 @@ +/* + * Javadoc style sheet + */ + +@import url('resources/fonts/dejavu.css'); + +/* + * Styles for individual HTML elements. + * + * These are styles that are specific to individual HTML elements. Changing them affects the style of a particular + * HTML element throughout the page. + */ + +body { + background-color:#ffffff; + color:#353833; + font-family:'DejaVu Sans', Arial, Helvetica, sans-serif; + font-size:14px; + margin:0; + padding:0; + height:100%; + width:100%; +} +iframe { + margin:0; + padding:0; + height:100%; + width:100%; + overflow-y:scroll; + border:none; +} +a:link, a:visited { + text-decoration:none; + color:#4A6782; +} +a[href]:hover, a[href]:focus { + text-decoration:none; + color:#bb7a2a; +} +a[name] { + color:#353833; +} +a[name]:before, a[name]:target, a[id]:before, a[id]:target { + content:""; + display:inline-block; + position:relative; + padding-top:129px; + margin-top:-129px; +} +pre { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; +} +h1 { + font-size:20px; +} +h2 { + font-size:18px; +} +h3 { + font-size:16px; + font-style:italic; +} +h4 { + font-size:13px; +} +h5 { + font-size:12px; +} +h6 { + font-size:11px; +} +ul { + list-style-type:disc; +} +code, tt { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + padding-top:4px; + margin-top:8px; + line-height:1.4em; +} +dt code { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + padding-top:4px; +} +table tr td dt code { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + vertical-align:top; + padding-top:4px; +} +sup { + font-size:8px; +} + +/* + * Styles for HTML generated by javadoc. + * + * These are style classes that are used by the standard doclet to generate HTML documentation. + */ + +/* + * Styles for document title and copyright. + */ +.clear { + clear:both; + height:0px; + overflow:hidden; +} +.aboutLanguage { + float:right; + padding:0px 21px; + font-size:11px; + z-index:200; + margin-top:-9px; +} +.legalCopy { + margin-left:.5em; +} +.bar a, .bar a:link, .bar a:visited, .bar a:active { + color:#FFFFFF; + text-decoration:none; +} +.bar a:hover, .bar a:focus { + color:#bb7a2a; +} +.tab { + background-color:#0066FF; + color:#ffffff; + padding:8px; + width:5em; + font-weight:bold; +} +/* + * Styles for navigation bar. + */ +.bar { + background-color:#4D7A97; + color:#FFFFFF; + padding:.8em .5em .4em .8em; + height:auto;/*height:1.8em;*/ + font-size:11px; + margin:0; +} +.navPadding { + padding-top: 107px; +} +.fixedNav { + position:fixed; + width:100%; + z-index:999; + background-color:#ffffff; +} +.topNav { + background-color:#4D7A97; + color:#FFFFFF; + float:left; + padding:0; + width:100%; + clear:right; + height:2.8em; + padding-top:10px; + overflow:hidden; + font-size:12px; +} +.bottomNav { + margin-top:10px; + background-color:#4D7A97; + color:#FFFFFF; + float:left; + padding:0; + width:100%; + clear:right; + height:2.8em; + padding-top:10px; + overflow:hidden; + font-size:12px; +} +.subNav { + background-color:#dee3e9; + float:left; + width:100%; + overflow:hidden; + font-size:12px; +} +.subNav div { + clear:left; + float:left; + padding:0 0 5px 6px; + text-transform:uppercase; +} +ul.navList, ul.subNavList { + float:left; + margin:0 25px 0 0; + padding:0; +} +ul.navList li{ + list-style:none; + float:left; + padding: 5px 6px; + text-transform:uppercase; +} +ul.navListSearch { + float:right; + margin:0 0 0 0; + padding:0; +} +ul.navListSearch li { + list-style:none; + float:right; + padding: 5px 6px; + text-transform:uppercase; +} +ul.navListSearch li label { + position:relative; + right:-16px; +} +ul.subNavList li { + list-style:none; + float:left; +} +.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited { + color:#FFFFFF; + text-decoration:none; + text-transform:uppercase; +} +.topNav a:hover, .bottomNav a:hover { + text-decoration:none; + color:#bb7a2a; + text-transform:uppercase; +} +.navBarCell1Rev { + background-color:#F8981D; + color:#253441; + margin: auto 5px; +} +.skipNav { + position:absolute; + top:auto; + left:-9999px; + overflow:hidden; +} +/* + * Styles for page header and footer. + */ +.header, .footer { + clear:both; + margin:0 20px; + padding:5px 0 0 0; +} +.indexNav { + position:relative; + font-size:12px; + background-color:#dee3e9; +} +.indexNav ul { + margin-top:0; + padding:5px; +} +.indexNav ul li { + display:inline; + list-style-type:none; + padding-right:10px; + text-transform:uppercase; +} +.indexNav h1 { + font-size:13px; +} +.title { + color:#2c4557; + margin:10px 0; +} +.subTitle { + margin:5px 0 0 0; +} +.header ul { + margin:0 0 15px 0; + padding:0; +} +.footer ul { + margin:20px 0 5px 0; +} +.header ul li, .footer ul li { + list-style:none; + font-size:13px; +} +/* + * Styles for headings. + */ +div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 { + background-color:#dee3e9; + border:1px solid #d0d9e0; + margin:0 0 6px -8px; + padding:7px 5px; +} +ul.blockList ul.blockList ul.blockList li.blockList h3 { + background-color:#dee3e9; + border:1px solid #d0d9e0; + margin:0 0 6px -8px; + padding:7px 5px; +} +ul.blockList ul.blockList li.blockList h3 { + padding:0; + margin:15px 0; +} +ul.blockList li.blockList h2 { + padding:0px 0 20px 0; +} +/* + * Styles for page layout containers. + */ +.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer, +.allClassesContainer, .allPackagesContainer { + clear:both; + padding:10px 20px; + position:relative; +} +.indexContainer { + margin:10px; + position:relative; + font-size:12px; +} +.indexContainer h2 { + font-size:13px; + padding:0 0 3px 0; +} +.indexContainer ul { + margin:0; + padding:0; +} +.indexContainer ul li { + list-style:none; + padding-top:2px; +} +.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt { + font-size:12px; + font-weight:bold; + margin:10px 0 0 0; + color:#4E4E4E; +} +.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd { + margin:5px 0 10px 0px; + font-size:14px; + font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; +} +.serializedFormContainer dl.nameValue dt { + margin-left:1px; + font-size:1.1em; + display:inline; + font-weight:bold; +} +.serializedFormContainer dl.nameValue dd { + margin:0 0 0 1px; + font-size:1.1em; + display:inline; +} +/* + * Styles for lists. + */ +li.circle { + list-style:circle; +} +ul.horizontal li { + display:inline; + font-size:0.9em; +} +ul.inheritance { + margin:0; + padding:0; +} +ul.inheritance li { + display:inline; + list-style:none; +} +ul.inheritance li ul.inheritance { + margin-left:15px; + padding-left:15px; + padding-top:1px; +} +ul.blockList, ul.blockListLast { + margin:10px 0 10px 0; + padding:0; +} +ul.blockList li.blockList, ul.blockListLast li.blockList { + list-style:none; + margin-bottom:15px; + line-height:1.4; +} +ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList { + padding:0px 20px 5px 10px; + border:1px solid #ededed; + background-color:#f8f8f8; +} +ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList { + padding:0 0 5px 8px; + background-color:#ffffff; + border:none; +} +ul.blockList ul.blockList ul.blockList ul.blockList li.blockList { + margin-left:0; + padding-left:0; + padding-bottom:15px; + border:none; +} +ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast { + list-style:none; + border-bottom:none; + padding-bottom:0; +} +table tr td dl, table tr td dl dt, table tr td dl dd { + margin-top:0; + margin-bottom:1px; +} +/* + * Styles for tables. + */ +.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary, +.requiresSummary, .packagesSummary, .providesSummary, .usesSummary { + width:100%; + border-spacing:0; + border-left:1px solid #EEE; + border-right:1px solid #EEE; + border-bottom:1px solid #EEE; +} +.overviewSummary, .memberSummary, .requiresSummary, .packagesSummary, .providesSummary, .usesSummary { + padding:0px; +} +.overviewSummary caption, .memberSummary caption, .typeSummary caption, +.useSummary caption, .constantsSummary caption, .deprecatedSummary caption, +.requiresSummary caption, .packagesSummary caption, .providesSummary caption, .usesSummary caption { + position:relative; + text-align:left; + background-repeat:no-repeat; + color:#253441; + font-weight:bold; + clear:none; + overflow:hidden; + padding:0px; + padding-top:10px; + padding-left:1px; + margin:0px; + white-space:pre; +} +.constantsSummary caption a:link, .constantsSummary caption a:visited, +.useSummary caption a:link, .useSummary caption a:visited { + color:#1f389c; +} +.overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link, +.deprecatedSummary caption a:link, +.requiresSummary caption a:link, .packagesSummary caption a:link, .providesSummary caption a:link, +.usesSummary caption a:link, +.overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover, +.useSummary caption a:hover, .constantsSummary caption a:hover, .deprecatedSummary caption a:hover, +.requiresSummary caption a:hover, .packagesSummary caption a:hover, .providesSummary caption a:hover, +.usesSummary caption a:hover, +.overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active, +.useSummary caption a:active, .constantsSummary caption a:active, .deprecatedSummary caption a:active, +.requiresSummary caption a:active, .packagesSummary caption a:active, .providesSummary caption a:active, +.usesSummary caption a:active, +.overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited, +.deprecatedSummary caption a:visited, +.requiresSummary caption a:visited, .packagesSummary caption a:visited, .providesSummary caption a:visited, +.usesSummary caption a:visited { + color:#FFFFFF; +} +.overviewSummary caption span, .memberSummary caption span, .typeSummary caption span, +.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span, +.requiresSummary caption span, .packagesSummary caption span, .providesSummary caption span, +.usesSummary caption span { + white-space:nowrap; + padding-top:5px; + padding-left:12px; + padding-right:12px; + padding-bottom:7px; + display:inline-block; + float:left; + background-color:#F8981D; + border: none; + height:16px; +} +.memberSummary caption span.activeTableTab span, .packagesSummary caption span.activeTableTab span, +.overviewSummary caption span.activeTableTab span, .typeSummary caption span.activeTableTab span { + white-space:nowrap; + padding-top:5px; + padding-left:12px; + padding-right:12px; + margin-right:3px; + display:inline-block; + float:left; + background-color:#F8981D; + height:16px; +} +.memberSummary caption span.tableTab span, .packagesSummary caption span.tableTab span, +.overviewSummary caption span.tableTab span, .typeSummary caption span.tableTab span { + white-space:nowrap; + padding-top:5px; + padding-left:12px; + padding-right:12px; + margin-right:3px; + display:inline-block; + float:left; + background-color:#4D7A97; + height:16px; +} +.memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab, +.packagesSummary caption span.tableTab, .packagesSummary caption span.activeTableTab, +.overviewSummary caption span.tableTab, .overviewSummary caption span.activeTableTab, +.typeSummary caption span.tableTab, .typeSummary caption span.activeTableTab { + padding-top:0px; + padding-left:0px; + padding-right:0px; + background-image:none; + float:none; + display:inline; +} +.overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd, +.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd, +.requiresSummary .tabEnd, .packagesSummary .tabEnd, .providesSummary .tabEnd, .usesSummary .tabEnd { + display:none; + width:5px; + position:relative; + float:left; + background-color:#F8981D; +} +.memberSummary .activeTableTab .tabEnd, .packagesSummary .activeTableTab .tabEnd, +.overviewSummary .activeTableTab .tabEnd, .typeSummary .activeTableTab .tabEnd { + display:none; + width:5px; + margin-right:3px; + position:relative; + float:left; + background-color:#F8981D; +} +.memberSummary .tableTab .tabEnd, .packagesSummary .tableTab .tabEnd, +.overviewSummary .tableTab .tabEnd, .typeSummary .tableTab .tabEnd { + display:none; + width:5px; + margin-right:3px; + position:relative; + background-color:#4D7A97; + float:left; +} +.rowColor th, .altColor th { + font-weight:normal; +} +.overviewSummary td, .memberSummary td, .typeSummary td, +.useSummary td, .constantsSummary td, .deprecatedSummary td, +.requiresSummary td, .packagesSummary td, .providesSummary td, .usesSummary td { + text-align:left; + padding:0px 0px 12px 10px; +} +th.colFirst, th.colSecond, th.colLast, th.colConstructorName, th.colDeprecatedItemName, .useSummary th, +.constantsSummary th, .packagesSummary th, td.colFirst, td.colSecond, td.colLast, .useSummary td, +.constantsSummary td { + vertical-align:top; + padding-right:0px; + padding-top:8px; + padding-bottom:3px; +} +th.colFirst, th.colSecond, th.colLast, th.colConstructorName, th.colDeprecatedItemName, .constantsSummary th, +.packagesSummary th { + background:#dee3e9; + text-align:left; + padding:8px 3px 3px 7px; +} +td.colFirst, th.colFirst { + font-size:13px; +} +td.colSecond, th.colSecond, td.colLast, th.colConstructorName, th.colDeprecatedItemName, th.colLast { + font-size:13px; +} +.constantsSummary th, .packagesSummary th { + font-size:13px; +} +.providesSummary th.colFirst, .providesSummary th.colLast, .providesSummary td.colFirst, +.providesSummary td.colLast { + white-space:normal; + font-size:13px; +} +.overviewSummary td.colFirst, .overviewSummary th.colFirst, +.requiresSummary td.colFirst, .requiresSummary th.colFirst, +.packagesSummary td.colFirst, .packagesSummary td.colSecond, .packagesSummary th.colFirst, .packagesSummary th, +.usesSummary td.colFirst, .usesSummary th.colFirst, +.providesSummary td.colFirst, .providesSummary th.colFirst, +.memberSummary td.colFirst, .memberSummary th.colFirst, +.memberSummary td.colSecond, .memberSummary th.colSecond, .memberSummary th.colConstructorName, +.typeSummary td.colFirst, .typeSummary th.colFirst { + vertical-align:top; +} +.packagesSummary th.colLast, .packagesSummary td.colLast { + white-space:normal; +} +td.colFirst a:link, td.colFirst a:visited, +td.colSecond a:link, td.colSecond a:visited, +th.colFirst a:link, th.colFirst a:visited, +th.colSecond a:link, th.colSecond a:visited, +th.colConstructorName a:link, th.colConstructorName a:visited, +th.colDeprecatedItemName a:link, th.colDeprecatedItemName a:visited, +.constantValuesContainer td a:link, .constantValuesContainer td a:visited, +.allClassesContainer td a:link, .allClassesContainer td a:visited, +.allPackagesContainer td a:link, .allPackagesContainer td a:visited { + font-weight:bold; +} +.tableSubHeadingColor { + background-color:#EEEEFF; +} +.altColor, .altColor th { + background-color:#FFFFFF; +} +.rowColor, .rowColor th { + background-color:#EEEEEF; +} +/* + * Styles for contents. + */ +.description pre { + margin-top:0; +} +.deprecatedContent { + margin:0; + padding:10px 0; +} +.docSummary { + padding:0; +} +ul.blockList ul.blockList ul.blockList li.blockList h3 { + font-style:normal; +} +div.block { + font-size:14px; + font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; +} +td.colLast div { + padding-top:0px; +} +td.colLast a { + padding-bottom:3px; +} +/* + * Styles for formatting effect. + */ +.sourceLineNo { + color:green; + padding:0 30px 0 0; +} +h1.hidden { + visibility:hidden; + overflow:hidden; + font-size:10px; +} +.block { + display:block; + margin:3px 10px 2px 0px; + color:#474747; +} +.deprecatedLabel, .descfrmTypeLabel, .implementationLabel, .memberNameLabel, .memberNameLink, +.moduleLabelInPackage, .moduleLabelInType, .overrideSpecifyLabel, .packageLabelInType, +.packageHierarchyLabel, .paramLabel, .returnLabel, .seeLabel, .simpleTagLabel, +.throwsLabel, .typeNameLabel, .typeNameLink, .searchTagLink { + font-weight:bold; +} +.deprecationComment, .emphasizedPhrase, .interfaceName { + font-style:italic; +} +.deprecationBlock { + font-size:14px; + font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; + border-style:solid; + border-width:thin; + border-radius:10px; + padding:10px; + margin-bottom:10px; + margin-right:10px; + display:inline-block; +} +div.block div.deprecationComment, div.block div.block span.emphasizedPhrase, +div.block div.block span.interfaceName { + font-style:normal; +} +div.contentContainer ul.blockList li.blockList h2 { + padding-bottom:0px; +} +/* + * Styles for IFRAME. + */ +.mainContainer { + margin:0 auto; + padding:0; + height:100%; + width:100%; + position:fixed; + top:0; + left:0; +} +.leftContainer { + height:100%; + position:fixed; + width:320px; +} +.leftTop { + position:relative; + float:left; + width:315px; + top:0; + left:0; + height:30%; + border-right:6px solid #ccc; + border-bottom:6px solid #ccc; +} +.leftBottom { + position:relative; + float:left; + width:315px; + bottom:0; + left:0; + height:70%; + border-right:6px solid #ccc; + border-top:1px solid #000; +} +.rightContainer { + position:absolute; + left:320px; + top:0; + bottom:0; + height:100%; + right:0; + border-left:1px solid #000; +} +.rightIframe { + margin:0; + padding:0; + height:100%; + right:30px; + width:100%; + overflow:visible; + margin-bottom:30px; +} +/* + * Styles specific to HTML5 elements. + */ +main, nav, header, footer, section { + display:block; +} +/* + * Styles for javadoc search. + */ +.ui-autocomplete-category { + font-weight:bold; + font-size:15px; + padding:7px 0 7px 3px; + background-color:#4D7A97; + color:#FFFFFF; +} +.resultItem { + font-size:13px; +} +.ui-autocomplete { + max-height:85%; + max-width:65%; + overflow-y:scroll; + overflow-x:scroll; + white-space:nowrap; + box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23); +} +ul.ui-autocomplete { + position:fixed; + z-index:999999; + background-color: #FFFFFF; +} +ul.ui-autocomplete li { + float:left; + clear:both; + width:100%; +} +.resultHighlight { + font-weight:bold; +} +.ui-autocomplete .result-item { + font-size: inherit; +} +#search { + background-image:url('resources/glass.png'); + background-size:13px; + background-repeat:no-repeat; + background-position:2px 3px; + padding-left:20px; + position:relative; + right:-18px; +} +#reset { + background-color: rgb(255,255,255); + background-image:url('resources/x.png'); + background-position:center; + background-repeat:no-repeat; + background-size:12px; + border:0 none; + width:16px; + height:17px; + position:relative; + left:-4px; + top:-4px; + font-size:0px; +} +.watermark { + color:#545454; +} +.searchTagDescResult { + font-style:italic; + font-size:11px; +} +.searchTagHolderResult { + font-style:italic; + font-size:12px; +} +.searchTagResult:before, .searchTagResult:target { + color:red; +} +.moduleGraph span { + display:none; + position:absolute; +} +.moduleGraph:hover span { + display:block; + margin: -100px 0 0 100px; + z-index: 1; +} +.methodSignature { + white-space:normal; +} + +/* + * Styles for user-provided tables. + * + * borderless: + * No borders, vertical margins, styled caption. + * This style is provided for use with existing doc comments. + * In general, borderless tables should not be used for layout purposes. + * + * plain: + * Plain borders around table and cells, vertical margins, styled caption. + * Best for small tables or for complex tables for tables with cells that span + * rows and columns, when the "striped" style does not work well. + * + * striped: + * Borders around the table and vertical borders between cells, striped rows, + * vertical margins, styled caption. + * Best for tables that have a header row, and a body containing a series of simple rows. + */ + +table.borderless, +table.plain, +table.striped { + margin-top: 10px; + margin-bottom: 10px; +} +table.borderless > caption, +table.plain > caption, +table.striped > caption { + font-weight: bold; + font-size: smaller; +} +table.borderless th, table.borderless td, +table.plain th, table.plain td, +table.striped th, table.striped td { + padding: 2px 5px; +} +table.borderless, +table.borderless > thead > tr > th, table.borderless > tbody > tr > th, table.borderless > tr > th, +table.borderless > thead > tr > td, table.borderless > tbody > tr > td, table.borderless > tr > td { + border: none; +} +table.borderless > thead > tr, table.borderless > tbody > tr, table.borderless > tr { + background-color: transparent; +} +table.plain { + border-collapse: collapse; + border: 1px solid black; +} +table.plain > thead > tr, table.plain > tbody tr, table.plain > tr { + background-color: transparent; +} +table.plain > thead > tr > th, table.plain > tbody > tr > th, table.plain > tr > th, +table.plain > thead > tr > td, table.plain > tbody > tr > td, table.plain > tr > td { + border: 1px solid black; +} +table.striped { + border-collapse: collapse; + border: 1px solid black; +} +table.striped > thead { + background-color: #E3E3E3; +} +table.striped > thead > tr > th, table.striped > thead > tr > td { + border: 1px solid black; +} +table.striped > tbody > tr:nth-child(even) { + background-color: #EEE +} +table.striped > tbody > tr:nth-child(odd) { + background-color: #FFF +} +table.striped > tbody > tr > th, table.striped > tbody > tr > td { + border-left: 1px solid black; + border-right: 1px solid black; +} +table.striped > tbody > tr > th { + font-weight: normal; +} diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/type-search-index.js b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/type-search-index.js new file mode 100644 index 0000000000..04d29963f6 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/type-search-index.js @@ -0,0 +1 @@ +typeSearchIndex = [{"p":"io.github.cvc5","l":"AbstractPlugin"},{"l":"All Classes","url":"allclasses-index.html"},{"p":"io.github.cvc5","l":"OptionInfo.BaseInfo"},{"p":"io.github.cvc5.modes","l":"BlockModelsMode"},{"p":"io.github.cvc5","l":"Command"},{"p":"io.github.cvc5","l":"Datatype.ConstIterator"},{"p":"io.github.cvc5","l":"DatatypeConstructor.ConstIterator"},{"p":"io.github.cvc5","l":"Statistics.ConstIterator"},{"p":"io.github.cvc5","l":"Term.ConstIterator"},{"p":"io.github.cvc5","l":"Context"},{"p":"io.github.cvc5","l":"CVC5ApiException"},{"p":"io.github.cvc5","l":"CVC5ApiOptionException"},{"p":"io.github.cvc5","l":"CVC5ApiRecoverableException"},{"p":"io.github.cvc5","l":"CVC5ParserException"},{"p":"io.github.cvc5","l":"Datatype"},{"p":"io.github.cvc5","l":"DatatypeConstructor"},{"p":"io.github.cvc5","l":"DatatypeConstructorDecl"},{"p":"io.github.cvc5","l":"DatatypeDecl"},{"p":"io.github.cvc5","l":"DatatypeSelector"},{"p":"io.github.cvc5.modes","l":"FindSynthTarget"},{"p":"io.github.cvc5","l":"Grammar"},{"p":"io.github.cvc5.modes","l":"InputLanguage"},{"p":"io.github.cvc5","l":"InputParser"},{"p":"io.github.cvc5","l":"IOracle"},{"p":"io.github.cvc5","l":"Kind"},{"p":"io.github.cvc5.modes","l":"LearnedLitType"},{"p":"io.github.cvc5","l":"OptionInfo.ModeInfo"},{"p":"io.github.cvc5","l":"OptionInfo.NumberInfo"},{"p":"io.github.cvc5","l":"Op"},{"p":"io.github.cvc5","l":"OptionInfo"},{"p":"io.github.cvc5","l":"Pair"},{"p":"io.github.cvc5","l":"Proof"},{"p":"io.github.cvc5.modes","l":"ProofComponent"},{"p":"io.github.cvc5.modes","l":"ProofFormat"},{"p":"io.github.cvc5","l":"ProofRewriteRule"},{"p":"io.github.cvc5","l":"ProofRule"},{"p":"io.github.cvc5","l":"Result"},{"p":"io.github.cvc5","l":"RoundingMode"},{"p":"io.github.cvc5","l":"SkolemId"},{"p":"io.github.cvc5","l":"Solver"},{"p":"io.github.cvc5","l":"Sort"},{"p":"io.github.cvc5","l":"SortKind"},{"p":"io.github.cvc5","l":"Stat"},{"p":"io.github.cvc5","l":"Statistics"},{"p":"io.github.cvc5","l":"SymbolManager"},{"p":"io.github.cvc5","l":"SynthResult"},{"p":"io.github.cvc5","l":"Term"},{"p":"io.github.cvc5","l":"TermManager"},{"p":"io.github.cvc5","l":"Triplet"},{"p":"io.github.cvc5","l":"UnknownExplanation"},{"p":"io.github.cvc5","l":"Utils"},{"p":"io.github.cvc5","l":"OptionInfo.ValueInfo"},{"p":"io.github.cvc5","l":"OptionInfo.VoidInfo"}] \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/type-search-index.zip b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/type-search-index.zip new file mode 100644 index 0000000000..b88e1419d9 Binary files /dev/null and b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/java/type-search-index.zip differ diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/command.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/command.html new file mode 100644 index 0000000000..2282c62d99 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/command.html @@ -0,0 +1,238 @@ + + + + + + + + + + + + + Command — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Command

    +

    Encapsulation of a command. +Commands are constructed by the input parser and can be invoked on +the solver and symbol manager.

    +
    +
    +
    +class cvc5.Command
    +

    Encapsulation of a command.

    +

    Commands are constructed by the input parser and can be invoked on +the solver and symbol manager.

    +

    Wrapper class for the C++ class cvc5::parser::Command.

    +
    +
    +getCommandName()
    +

    Get the name for this command, e.g. “assert”.

    +
    +
    Returns:
    +

    The name of this command.

    +
    +
    +
    + +
    +
    +invoke()
    +

    Invoke the command on the solver and symbol manager, and returns the result.

    +
    +
    Parameters:
    +
      +
    • solver – The solver to invoke the command on.

    • +
    • sm – The symbol manager to invoke the command on.

    • +
    +
    +
    Returns:
    +

    A string representation of the result.

    +
    +
    +
    + +
    +
    +isNull()
    +
    +
    Returns:
    +

    True if this command is null.

    +
    +
    +
    + +
    +
    +toString()
    +
    +
    Returns:
    +

    A string representation of this result.

    +
    +
    +
    + +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/datatype.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/datatype.html new file mode 100644 index 0000000000..58a8bf9bb5 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/datatype.html @@ -0,0 +1,355 @@ + + + + + + + + + + + + + Datatype — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Datatype

    +

    This class represents a datatype. A cvc5.Datatype is encapsulated +by a datatype Sort and can be retrieved from a +datatype sort via cvc5.Sort.getDatatype(). +Datatypes are specified by a cvc5.DatatypeDecl via +cvc5.TermManager.mkDatatypeDecl() when constructing a datatype +sort.

    +
    +
    +
    +class cvc5.Datatype
    +

    A cvc5 datatype.

    +

    Wrapper class for the C++ class cvc5::Datatype.

    +
    +
    +__getitem__()
    +

    Get the datatype constructor with the given index, where index can +be either a numeric id starting with zero, or the name of the +constructor. In the latter case, this is a linear search through the +constructors, so in case of multiple, similarly-named constructors, +the first is returned.

    +
    +
    Parameters:
    +

    index – The id or name of the datatype constructor.

    +
    +
    Returns:
    +

    The matching datatype constructor.

    +
    +
    +
    + +
    +
    +__iter__()
    +

    Iterate over all constructors.

    +
    + +
    +
    +getConstructor()
    +
    +
    Parameters:
    +

    name – The name of the constructor.

    +
    +
    Returns:
    +

    A constructor by name.

    +
    +
    +
    + +
    +
    +getName()
    +
    +
    Returns:
    +

    The name of the datatype.

    +
    +
    +
    + +
    +
    +getNumConstructors()
    +
    +
    Returns:
    +

    The number of constructors in this datatype.

    +
    +
    +
    + +
    +
    +getParameters()
    +
    +
    Returns:
    +

    The parameters of this datatype, if it is parametric. An +exception is thrown if this datatype is not parametric.

    +
    +
    +
    + +
    +
    +getSelector()
    +
    +
    Parameters:
    +

    name – The name of the selector..

    +
    +
    Returns:
    +

    A selector by name.

    +
    +
    +
    + +
    +
    +isCodatatype()
    +
    +
    Returns:
    +

    True if this datatype corresponds to a co-datatype.

    +
    +
    +
    + +
    +
    +isFinite()
    +
    +
    Returns:
    +

    True if this datatype is finite.

    +
    +
    +
    + +
    +
    +isNull()
    +
    +
    Returns:
    +

    True if this Datatype is a null object.

    +
    +
    +
    + +
    +
    +isParametric()
    +
    +

    Warning

    +

    This function is experimental and may change in future +versions.

    +
    +
    +
    Returns:
    +

    True if this datatype is parametric.

    +
    +
    +
    + +
    +
    +isRecord()
    +
    +

    Warning

    +

    This function is experimental and may change in future +versions.

    +
    +
    +
    Returns:
    +

    True if this datatype corresponds to a record.

    +
    +
    +
    + +
    +
    +isTuple()
    +
    +
    Returns:
    +

    True if this datatype corresponds to a tuple.

    +
    +
    +
    + +
    +
    +isWellFounded()
    +

    Determine if this datatype is well-founded.

    +

    If this datatype is not a codatatype, this returns false if there +are no values of this datatype that are of finite size.

    +
    +
    Returns:
    +

    True if this datatype is well-founded

    +
    +
    +
    + +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/datatypeconstructor.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/datatypeconstructor.html new file mode 100644 index 0000000000..a3b9aad267 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/datatypeconstructor.html @@ -0,0 +1,343 @@ + + + + + + + + + + + + + DatatypeConstructor — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    DatatypeConstructor

    +

    This class represents a datatype constructor. Datatype constructors are +specified by a cvc5.DatatypeConstructorDecl via +cvc5.TermManager.mkDatatypeConstructorDecl() when constructing a +datatype sort and can be retrieved from a cvc5.Datatype via +cvc5.Datatype.getConstructor().

    +
    +
    +
    +class cvc5.DatatypeConstructor
    +

    A cvc5 datatype constructor.

    +

    Wrapper class for cvc5::DatatypeConstructor.

    +
    +
    +__getitem__()
    +

    Get the datatype selector with the given index, where index can be +either a numeric id starting with zero, or the name of the selector. +In the latter case, this is a linear search through the selectors, +so in case of multiple, similarly-named selectors, the first is +returned.

    +
    +
    Parameters:
    +

    index – The id or name of the datatype selector.

    +
    +
    Returns:
    +

    The matching datatype selector.

    +
    +
    +
    + +
    +
    +__iter__()
    +

    Iterate over all datatype selectors.

    +
    + +
    +
    +getInstantiatedTerm()
    +

    Get the constructor term of this datatype constructor whose +return type is retSort. This function is intended to be used on +constructors of parametric datatypes and can be seen as returning +the constructor term that has been explicitly cast to the given +sort.

    +

    This function is required for constructors of parametric datatypes +whose return type cannot be determined by type inference. For +example, given:

    +
    (declare-datatype List
    +    (par (T) ((nil) (cons (head T) (tail (List T))))))
    +
    +
    +

    The type of nil terms must be provided by the user. In SMT version +2.6, this is done via the syntax for qualified identifiers:

    +
    (as nil (List Int))
    +
    +
    +

    This function is equivalent of applying the above, where this +DatatypeConstructor is the one corresponding to nil, and retSort is +(List Int).

    +
    +

    Note

    +

    The returned constructor term t is used to construct the +above (nullary) application of nil with +TermManager.mkTerm(APPLY_CONSTRUCTOR, t).

    +
    +
    +

    Warning

    +

    This function is experimental and may change in future +versions.

    +
    +
    +
    Parameters:
    +

    retSort – The desired return sort of the constructor.

    +
    +
    Returns:
    +

    The constructor term.

    +
    +
    +
    + +
    +
    +getName()
    +
    +
    Returns:
    +

    The name of the constructor.

    +
    +
    +
    + +
    +
    +getNumSelectors()
    +
    +
    Returns:
    +

    The number of selecters (so far) of this Datatype +constructor.

    +
    +
    +
    + +
    +
    +getSelector()
    +
    +
    Parameters:
    +

    name – The name of the datatype selector.

    +
    +
    Returns:
    +

    The first datatype selector with the given name.

    +
    +
    +
    + +
    +
    +getTerm()
    +

    Get the constructor term of this datatype constructor.

    +

    Datatype constructors are a special class of function-like terms +whose sort is datatype constructor +(Sort.isDatatypeConstructor()). All datatype +constructors, including nullary ones, should be used as the first +argument to Terms whose kind is +APPLY_CONSTRUCTOR. +For example, the nil list can be constructed via +TermManager.mkTerm(APPLY_CONSTRUCTOR, [nil]), where nil is the +Term returned by this method.

    +
    +

    Note

    +

    This function should not be used for parametric datatypes. +Instead, use the method +DatatypeConstructor.getInstantiatedTerm() below.

    +
    +
    +
    Returns:
    +

    The constructor term.

    +
    +
    +
    + +
    +
    +getTesterTerm()
    +

    Get the tester term of this datatype constructor.

    +

    Similar to constructors, testers are a class of function-like terms +of tester sort (Sort.isDatatypeTester()), and should +be used as the first argument of Terms of kind +Kind.APPLY_TESTER.

    +
    +
    Returns:
    +

    The tester term for this constructor.

    +
    +
    +
    + +
    +
    +isNull()
    +
    +
    Returns:
    +

    True if this DatatypeConstructor is a null object.

    +
    +
    +
    + +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/datatypeconstructordecl.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/datatypeconstructordecl.html new file mode 100644 index 0000000000..3878dd5cf2 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/datatypeconstructordecl.html @@ -0,0 +1,248 @@ + + + + + + + + + + + + + DatatypeConstructorDecl — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    DatatypeConstructorDecl

    +

    This class encapsulates a datatype constructor declaration. +A DatatypeConstructorDecl +is constructed via cvc5.Solver.mkDatatypeConstructorDecl(). +This is not yet a datatype constructor itself, +but the representation of the specification for creating a datatype constructor +of a datatype Sort via +cvc5.Solver.mkDatatypeSort() and +cvc5.Solver.mkDatatypeSorts().

    +
    +
    +
    +class cvc5.DatatypeConstructorDecl
    +

    A cvc5 datatype constructor declaration. A datatype constructor +declaration is a specification used for creating a datatype constructor.

    +

    Wrapper class for cvc5::DatatypeConstructorDecl.

    +
    +
    +addSelector()
    +

    Add datatype selector declaration.

    +
    +
    Parameters:
    +
      +
    • name – The name of the datatype selector declaration to add.

    • +
    • sort – The codomain sort of the datatype selector declaration +to add.

    • +
    +
    +
    +
    + +
    +
    +addSelectorSelf()
    +

    Add datatype selector declaration whose codomain sort is the +datatype itself.

    +
    +
    Parameters:
    +

    name – The name of the datatype selector declaration to add.

    +
    +
    +
    + +
    +
    +addSelectorUnresolved()
    +

    Add datatype selector declaration whose codomain sort is an +unresolved datatype with the given name.

    +
    +
    Parameters:
    +
      +
    • name – The name of the datatype selector declaration to add.

    • +
    • unresDataypeName – The name of the unresolved datatype. The +codomain of the selector will be the +resolved datatype with the given name.

    • +
    +
    +
    +
    + +
    +
    +isNull()
    +
    +
    Returns:
    +

    True if this DatatypeConstructorDecl is a null object.

    +
    +
    +
    + +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/datatypedecl.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/datatypedecl.html new file mode 100644 index 0000000000..7aebb812b7 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/datatypedecl.html @@ -0,0 +1,261 @@ + + + + + + + + + + + + + DatatypeDecl — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    DatatypeDecl

    +

    This class encapsulates a datatype declaration. A datatype declaration is +constructed via cvc5.Solver.mkDatatypeDecl(). This is not a +datatype itself, but the representation of the +specification for creating a datatype Sort via +cvc5.Solver.mkDatatypeSort() and +cvc5.Solver.mkDatatypeSorts().

    +
    +
    +
    +class cvc5.DatatypeDecl
    +

    A cvc5 datatype declaration. A datatype declaration is not itself a +datatype (see Datatype), but a specification for creating a +datatype sort.

    +

    The interface for a datatype declaration coincides with the syntax for +the SMT-LIB 2.6 command declare-datatype, or a single datatype within +the declare-datatypes command.

    +

    Datatype sorts can be constructed from DatatypeDecl using +the methods:

    +
    +
    +

    Wrapper class for cvc5::DatatypeDecl.

    +
    +
    +addConstructor()
    +

    Add a datatype constructor declaration.

    +
    +
    Parameters:
    +

    ctor – The datatype constructor declaration to add.

    +
    +
    +
    + +
    +
    +getName()
    +
    +
    Returns:
    +

    The name of this datatype declaration.

    +
    +
    +
    + +
    +
    +getNumConstructors()
    +
    +
    Returns:
    +

    The number of constructors (so far) for this datatype +declaration.

    +
    +
    +
    + +
    +
    +isNull()
    +
    +
    Returns:
    +

    True if this DatatypeDecl is a null object.

    +
    +
    +
    + +
    +
    +isParametric()
    +
    +

    Warning

    +

    This function is experimental and may change in future +versions.

    +
    +
    +
    Returns:
    +

    True if this datatype declaration is parametric.

    +
    +
    +
    + +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/datatypeselector.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/datatypeselector.html new file mode 100644 index 0000000000..ec15c46da0 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/datatypeselector.html @@ -0,0 +1,252 @@ + + + + + + + + + + + + + DatatypeSelector — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    DatatypeSelector

    +

    This class represents a datatype selector. Datatype selectors are +specified via cvc5.DatatypeConstructorDecl.addSelector(), +cvc5.DatatypeConstructorDecl.addSelectorSelf() +and cvc5.DatatypeConstructorDecl.addSelectorUnresolved() +when constructing a datatype sort and can be retrieved from a +cvc5.DatatypeConstructor via +cvc5.DatatypeConstructor.getSelector().

    +
    +
    +
    +class cvc5.DatatypeSelector
    +

    A cvc5 datatype selector.

    +

    Wrapper class for cvc5::DatatypeSelector.

    +
    +
    +getCodomainSort()
    +
    +
    Returns:
    +

    The codomain sort of this selector.

    +
    +
    +
    + +
    +
    +getName()
    +
    +
    Returns:
    +

    The name of this datatype selector.

    +
    +
    +
    + +
    +
    +getTerm()
    +

    Get the selector term of this datatype selector.

    +

    Selector terms are a class of function-like terms of selector +sort (Sort.isDatatypeSelector()), and should be used as +the first argument of Terms of kind +APPLY_SELECTOR.

    +
    +
    Returns:
    +

    The selector term of this datatype selector.

    +
    +
    +
    + +
    +
    +getUpdaterTerm()
    +

    Get the updater term of this datatype selector.

    +

    Similar to selectors, updater terms are a class of function-like +terms of updater Sort (Sort.isDatatypeUpdater()), and +should be used as the first argument of Terms of kind +APPLY_UPDATER.

    +
    +
    Returns:
    +

    The updater term of this datatype selector.

    +
    +
    +
    + +
    +
    +isNull()
    +
    +
    Returns:
    +

    True if this DatatypeSelector is a null object.

    +
    +
    +
    + +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/grammar.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/grammar.html new file mode 100644 index 0000000000..bd8bf5fd1b --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/grammar.html @@ -0,0 +1,247 @@ + + + + + + + + + + + + + Grammar — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Grammar

    +

    This class encapsulates a SyGuS grammar. It is created via +cvc5.Solver.mkGrammar() and allows to define a context-free +grammar of terms, according to the definition of grammars in the SyGuS IF 2.1 +standard.

    +
    +
    +
    +class cvc5.Grammar
    +

    A Sygus Grammar. This class can be used to define a context-free grammar +of terms. Its interface coincides with the definition of grammars +(GrammarDef) in the SyGuS IF 2.1 standard.

    +

    Wrapper class for cvc5::Grammar.

    +
    +
    +addAnyConstant()
    +

    Allow ntSymbol to be an arbitrary constant.

    +
    +
    Parameters:
    +

    ntSymbol – The non-terminal allowed to be constant.

    +
    +
    +
    + +
    +
    +addAnyVariable()
    +

    Allow ntSymbol to be any input variable to corresponding +synth-fun/synth-inv with the same sort as ntSymbol.

    +
    +
    Parameters:
    +

    ntSymbol – The non-terminal allowed to be any input variable.

    +
    +
    +
    + +
    +
    +addRule()
    +

    Add rule to the set of rules corresponding to ntSymbol.

    +
    +
    Parameters:
    +
      +
    • ntSymbol – The non-terminal to which the rule is added.

    • +
    • rule – The rule to add.

    • +
    +
    +
    +
    + +
    +
    +addRules()
    +

    Add ntSymbol to the set of rules corresponding to ntSymbol.

    +
    +
    Parameters:
    +
      +
    • ntSymbol – The non-terminal to which the rules are added.

    • +
    • rules – The rules to add.

    • +
    +
    +
    +
    + +
    +
    +isNull()
    +
    + +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/inputparser.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/inputparser.html new file mode 100644 index 0000000000..6e3d1a530f --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/inputparser.html @@ -0,0 +1,306 @@ + + + + + + + + + + + + + InputParser — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    InputParser

    +

    This class is the main interface for retrieving commands and expressions from an +input.

    +
    +
    +
    +class cvc5.InputParser
    +

    This class is the main interface for retrieving commands and expressions +from an input using a parser.

    +

    After construction, it is expected that an input is first set via e.g. +setFileInput(), setStringInput(), or +setIncrementalStringInput() and appendIncrementalStringInput(). +Then, the methods nextCommand() and +nextExpression() can be invoked to parse the input.

    +

    The input parser interacts with a symbol manager, which determines which +symbols are defined in the current context, based on the background logic +and user-defined symbols. If no symbol manager is provided, then the +input parser will construct (an initially empty) one.

    +

    If provided, the symbol manager must have a logic that is compatible +with the provided solver. That is, if both the solver and symbol +manager have their logics set (SymbolManager.isLogicSet() and +Solver.isLogicSet()), then their logics must be the same.

    +

    Upon setting an input source, if either the solver (resp. symbol +manager) has its logic set, then the symbol manager (resp. solver) is set to +use that logic, if its logic is not already set.

    +

    Wrapper class for the C++ class cvc5::parser::InputParser.

    +
    +
    +appendIncrementalStringInput()
    +

    Append string to the input being parsed by this parser. Should be +called after calling setIncrementalStringInput.

    +
    +
    Parameters:
    +

    input – The input string.

    +
    +
    +
    + +
    +
    +done()
    +

    Is this parser done reading input?

    +
    + +
    +
    +getSolver()
    +
    +
    Returns:
    +

    The underlying solver of this input parser.

    +
    +
    +
    + +
    +
    +getSymbolManager()
    +
    +
    Returns:
    +

    The underlying symbol manager of this input parser.

    +
    +
    +
    + +
    +
    +nextCommand()
    +

    Parse and return the next command. Will initialize the logic to “ALL” +or the forced logic if no logic is set prior to this point and a command +is read that requires initializing the logic.

    +
    +
    Returns:
    +

    The parsed command. This is the null command if no command was read.

    +
    +
    +
    + +
    +
    +nextTerm()
    +

    Parse and return the next term. Requires setting the logic prior +to this point.

    +
    + +
    +
    +setFileInput()
    +

    Set the input for the given file.

    +
    +
    Parameters:
    +
      +
    • lang – The input language (e.g. InputLanguage.SMT_LIB_2_6).

    • +
    • filename – The input filename.

    • +
    +
    +
    +
    + +
    +
    +setIncrementalStringInput()
    +

    Set that we will be feeding strings to this parser via +appendIncrementalStringInput

    +
    +
    Parameters:
    +
      +
    • lang – The input language (e.g. InputLanguage.SMT_LIB_2_6).

    • +
    • name – The name of the stream, for use in error messages.

    • +
    +
    +
    +
    + +
    +
    +setStringInput()
    +

    Set the input to the given concrete string

    +
    +
    Parameters:
    +
      +
    • lang – The input language (e.g. InputLanguage.SMT_LIB_2_6).

    • +
    • input – The input string.

    • +
    • name – The name of the stream, for use in error messages.

    • +
    +
    +
    +
    + +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/kind.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/kind.html new file mode 100644 index 0000000000..93802a5484 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/kind.html @@ -0,0 +1,7391 @@ + + + + + + + + + + + + + Kind — cvc5 documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Kind

    +

    Every Term has an associated kind, represented +as enum class :py:enum:`cvc5.Kind`. +This kind distinguishes if the Term is a value, constant, variable or operator, +and what kind of each. +For example, a bit-vector value has kind +CONST_BITVECTOR, +a free constant symbol has kind +CONSTANT, +an equality over terms of any sort has kind +EQUAL, and a universally +quantified formula has kind FORALL.

    +

    The kinds below directly correspond to the enum values of the C++ +Kind enum.

    +
    +
    +
    +
    +class cvc5.Kind(value)
    +

    The Kind enum

    +
    +
    +ABS
    +

    Absolute value.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of Sort Int or Real

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +ADD
    +

    Arithmetic addition.

    +
      +
    • Arity: n > 1

      +
        +
      • 1..n: Terms of Sort Int or Real (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +AND
    +

    Logical conjunction.

    +
      +
    • Arity: n > 1

      +
        +
      • 1..n: Terms of Sort Bool

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +APPLY_CONSTRUCTOR
    +

    Datatype constructor application.

    +
      +
    • Arity: n > 0

      +
        +
      • 1: DatatypeConstructor Term (see DatatypeConstructor.getTerm())

      • +
      • 2..n: Terms of the Sorts of the selectors of the constructor (the arguments to the constructor)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +APPLY_SELECTOR
    +

    Datatype selector application.

    + +
    +

    Note

    +

    Undefined if misapplied.

    +
    +
    + +
    +
    +APPLY_TESTER
    +

    Datatype tester application.

    + +
    + +
    +
    +APPLY_UF
    +

    Application of an uninterpreted function.

    +
      +
    • Arity: n > 1

      +
        +
      • 1: Function Term

      • +
      • 2..n: Function argument instantiation Terms of any first-class Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +APPLY_UPDATER
    +

    Datatype update application.

    +
      +
    • Arity: 3

      +
        +
      • 1: Datatype updater Term (see DatatypeSelector.getUpdaterTerm())

      • +
      • 2: Term of Datatype Sort (DatatypeSelector of the updater must belong to a constructor of this Datatype Sort)

      • +
      • 3: Term of the codomain Sort of the selector (the Term to update the field of the datatype term with)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    +

    Note

    +

    Does not change the datatype argument if misapplied.

    +
    +
    + +
    +
    +ARCCOSECANT
    +

    Arc cosecant function.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of Sort Real

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +ARCCOSINE
    +

    Arc cosine function.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of Sort Real

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +ARCCOTANGENT
    +

    Arc cotangent function.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of Sort Real

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +ARCSECANT
    +

    Arc secant function.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of Sort Real

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +ARCSINE
    +

    Arc sine function.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of Sort Real

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +ARCTANGENT
    +

    Arc tangent function.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of Sort Real

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BAG_CARD
    +

    Bag cardinality.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of bag Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    +

    Warning

    +

    This kind is experimental and may be changed or removed in +future versions.

    +
    +
    + +
    +
    +BAG_CHOOSE
    +

    Bag choose.

    +

    Select an element from a given bag.

    +

    For a bag \(A = \{(x,n)\}\) where \(n\) is the multiplicity, then +the term (choose \(A\)) is equivalent to the term \(x\). For an +empty bag, then it is an arbitrary value. For a bag that contains distinct +elements, it will deterministically return an element in \(A\).

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of bag Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    +

    Warning

    +

    This kind is experimental and may be changed or removed in +future versions.

    +
    +
    + +
    +
    +BAG_COUNT
    +

    Bag element multiplicity.

    + +
    + +
    +
    +BAG_DIFFERENCE_REMOVE
    +

    Bag difference remove.

    +

    Removes shared elements in the two bags.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of bag Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BAG_DIFFERENCE_SUBTRACT
    +

    Bag difference subtract.

    +

    Subtracts multiplicities of the second from the first.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of bag Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BAG_EMPTY
    +

    Empty bag.

    + +
    + +
    +
    +BAG_FILTER
    +

    Bag filter.

    +

    This operator filters the elements of a bag. +(bag.filter \(p \; B\)) takes a predicate \(p\) of Sort +\((\rightarrow T \; Bool)\) as a first argument, and a bag \(B\) +of Sort (Bag \(T\)) as a second argument, and returns a subbag of Sort +(Bag \(T\)) that includes all elements of \(B\) that satisfy +\(p\) with the same multiplicity.

    +
      +
    • Arity: 2

      +
        +
      • 1: Term of function Sort \((\rightarrow T \; Bool)\)

      • +
      • 2: Term of bag Sort (Bag \(T\))

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    +
    +

    Warning

    +

    This kind is experimental and may be changed or removed in +future versions.

    +
    +
    + +
    +
    +BAG_FOLD
    +

    Bag fold.

    +

    This operator combines elements of a bag into a single value. +(bag.fold \(f \; t \; B\)) folds the elements of bag \(B\) +starting with Term \(t\) and using the combining function \(f\).

    +
      +
    • Arity: 2

      +
        +
      • 1: Term of function Sort \((\rightarrow S_1 \; S_2 \; S_2)\)

      • +
      • 2: Term of Sort \(S_2\) (the initial value)

      • +
      • 3: Term of bag Sort (Bag \(S_1\))

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    +
    +

    Warning

    +

    This kind is experimental and may be changed or removed in +future versions.

    +
    +
    + +
    +
    +BAG_INTER_MIN
    +

    Bag intersection (min).

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of bag Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BAG_MAKE
    +

    Bag make.

    +

    Construct a bag with the given element and given multiplicity.

    +
      +
    • Arity: 2

      +
        +
      • 1: Term of any Sort (the bag element)

      • +
      • 2: Term of Sort Int (the multiplicity of the element)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BAG_MAP
    +

    Bag map.

    +

    This operator applies the first argument, a function of +Sort \((\rightarrow S_1 \; S_2)\), to every element of the second +argument, a set of Sort (Bag \(S_1\)), and returns a set of Sort +(Bag \(S_2\)).

    +
      +
    • Arity: 2

      +
        +
      • 1: Term of function Sort \((\rightarrow S_1 \; S_2)\)

      • +
      • 2: Term of bag Sort (Bag \(S_1\))

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    +

    Warning

    +

    This kind is experimental and may be changed or removed in +future versions.

    +
    +
    + +
    +
    +BAG_MEMBER
    +

    Bag membership predicate.

    +
      +
    • Arity: 2

      +
        +
      • 1: Term of any Sort (must match the element Sort of the given bag Term)

      • +
      • 2: Terms of bag Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BAG_PARTITION
    +

    Bag partition.

    +

    This operator partitions of a bag of elements into disjoint bags. +(bag.partition \(r \; B\)) partitions the elements of bag \(B\) +of type \((Bag \; E)\) based on the equivalence relations \(r\) of +type \((\rightarrow \; E \; E \; Bool)\). +It returns a bag of bags of type \((Bag \; (Bag \; E))\).

    +
      +
    • Arity: 2

      +
        +
      • 1: Term of function Sort \((\rightarrow \; E \; E \; Bool)\)

      • +
      • 2: Term of bag Sort (Bag \(E\))

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    +
    +

    Warning

    +

    This kind is experimental and may be changed or removed in +future versions.

    +
    +
    + +
    +
    +BAG_SETOF
    +

    Bag setof.

    +

    Eliminate duplicates in a given bag. The returned bag contains exactly the +same elements in the given bag, but with multiplicity one.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of bag Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    +

    Warning

    +

    This kind is experimental and may be changed or removed in +future versions.

    +
    +
    + +
    +
    +BAG_SUBBAG
    +

    Bag inclusion predicate.

    +

    Determine if multiplicities of the first bag are less than or equal to +multiplicities of the second bag.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of bag Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BAG_UNION_DISJOINT
    +

    Bag disjoint union (sum).

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of bag Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BAG_UNION_MAX
    +

    Bag max union.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of bag Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BITVECTOR_ADD
    +

    Addition of two or more bit-vectors.

    +
      +
    • Arity: n > 1

      +
        +
      • 1..n: Terms of bit-vector Sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BITVECTOR_AND
    +

    Bit-wise and.

    +
      +
    • Arity: n > 1

      +
        +
      • 1..n: Terms of bit-vector Sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BITVECTOR_ASHR
    +

    Bit-vector arithmetic shift right.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of bit-vector Sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BITVECTOR_BIT
    +

    Retrieves the bit at the given index from a bit-vector as a Bool term.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of bit-vector Sort

      • +
      +
    • +
    • Indices: 1

      +
        +
      • 1: The bit index

      • +
      +
    • +
    +
    +

    Note

    +

    May be returned as the result of an API call, but terms of this +kind may not be created explicitly via the API and may not +appear in assertions.

    +
    +
    + +
    +
    +BITVECTOR_COMP
    +

    Equality comparison (returns bit-vector of size 1).

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of bit-vector Sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BITVECTOR_CONCAT
    +

    Concatenation of two or more bit-vectors.

    +
      +
    • Arity: n > 1

      +
        +
      • 1..n: Terms of bit-vector Sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BITVECTOR_EXTRACT
    +

    Bit-vector extract.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of bit-vector Sort

      • +
      +
    • +
    • Indices: 2

      +
        +
      • 1: The upper bit index.

      • +
      • 2: The lower bit index.

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BITVECTOR_FROM_BOOLS
    +

    Converts a list of Bool terms to a bit-vector.

    +
      +
    • Arity: n > 0

      +
        +
      • 1..n: Terms of Sort Bool

      • +
      +
    • +
    +
    +

    Note

    +

    May be returned as the result of an API call, but terms of this +kind may not be created explicitly via the API and may not +appear in assertions.

    +
    +
    + +
    +
    +BITVECTOR_ITE
    +

    Bit-vector if-then-else.

    +

    Same semantics as regular ITE, but condition is bit-vector of size 1.

    +
      +
    • Arity: 3

      +
        +
      • 1: Term of bit-vector Sort of size 1

      • +
      • 1..3: Terms of bit-vector sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BITVECTOR_LSHR
    +

    Bit-vector logical shift right.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of bit-vector Sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BITVECTOR_MULT
    +

    Multiplication of two or more bit-vectors.

    +
      +
    • Arity: n > 1

      +
        +
      • 1..n: Terms of bit-vector Sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BITVECTOR_NAND
    +

    Bit-wise nand.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of bit-vector Sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BITVECTOR_NEG
    +

    Negation of a bit-vector (two’s complement).

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of bit-vector Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BITVECTOR_NEGO
    +

    Bit-vector negation overflow detection.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of bit-vector Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BITVECTOR_NOR
    +

    Bit-wise nor.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of bit-vector Sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BITVECTOR_NOT
    +

    Bit-wise negation.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of bit-vector Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BITVECTOR_OR
    +

    Bit-wise or.

    +
      +
    • Arity: n > 1

      +
        +
      • 1..n: Terms of bit-vector Sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BITVECTOR_REDAND
    +

    Bit-vector redand.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of bit-vector Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BITVECTOR_REDOR
    +

    Bit-vector redor.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of bit-vector Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BITVECTOR_REPEAT
    +

    Bit-vector repeat.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of bit-vector Sort

      • +
      +
    • +
    • Indices: 1

      +
        +
      • 1: The number of times to repeat the given term.

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BITVECTOR_ROTATE_LEFT
    +

    Bit-vector rotate left.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of bit-vector Sort

      • +
      +
    • +
    • Indices: 1

      +
        +
      • 1: The number of bits to rotate the given term left.

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BITVECTOR_ROTATE_RIGHT
    +

    Bit-vector rotate right.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of bit-vector Sort

      • +
      +
    • +
    • Indices: 1

      +
        +
      • 1: The number of bits to rotate the given term right.

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BITVECTOR_SADDO
    +

    Bit-vector signed addition overflow detection.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of bit-vector Sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BITVECTOR_SDIV
    +

    Signed bit-vector division.

    +

    Two’s complement signed division of two bit-vectors. If the divisor is +zero and the dividend is positive, the result is all ones. If the divisor +is zero and the dividend is negative, the result is one.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of bit-vector Sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BITVECTOR_SDIVO
    +

    Bit-vector signed division overflow detection.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of bit-vector Sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BITVECTOR_SGE
    +

    Bit-vector signed greater than or equal.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of bit-vector Sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BITVECTOR_SGT
    +

    Bit-vector signed greater than.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of bit-vector Sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BITVECTOR_SHL
    +

    Bit-vector shift left.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of bit-vector Sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BITVECTOR_SIGN_EXTEND
    +

    Bit-vector sign extension.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of bit-vector Sort

      • +
      +
    • +
    • Indices: 1

      +
        +
      • 1: The number of bits (of the value of the sign bit) to extend the given term with.

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BITVECTOR_SLE
    +

    Bit-vector signed less than or equal.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of bit-vector Sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BITVECTOR_SLT
    +

    Bit-vector signed less than.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of bit-vector Sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BITVECTOR_SLTBV
    +

    Bit-vector signed less than returning a bit-vector of size 1.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of bit-vector Sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BITVECTOR_SMOD
    +

    Signed bit-vector remainder (sign follows divisor).

    +

    Two’s complement signed remainder where the sign follows the divisor. If +the modulus is zero, the result is the dividend.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of bit-vector Sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BITVECTOR_SMULO
    +

    Bit-vector signed multiplication overflow detection.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of bit-vector Sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BITVECTOR_SREM
    +

    Signed bit-vector remainder (sign follows dividend).

    +

    Two’s complement signed remainder of two bit-vectors where the sign +follows the dividend. If the modulus is zero, the result is the dividend.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of bit-vector Sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BITVECTOR_SSUBO
    +

    Bit-vector signed subtraction overflow detection.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of bit-vector Sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BITVECTOR_SUB
    +

    Subtraction of two bit-vectors.

    +
      +
    • Arity: n > 1

      +
        +
      • 1..n: Terms of bit-vector Sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BITVECTOR_TO_NAT
    +

    Bit-vector conversion to (non-negative) integer.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of bit-vector Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BITVECTOR_UADDO
    +

    Bit-vector unsigned addition overflow detection.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of bit-vector Sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BITVECTOR_UDIV
    +

    Unsigned bit-vector division.

    +

    Truncates towards 0. If the divisor is zero, the result is all ones.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of bit-vector Sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BITVECTOR_UGE
    +

    Bit-vector unsigned greater than or equal.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of bit-vector Sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BITVECTOR_UGT
    +

    Bit-vector unsigned greater than.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of bit-vector Sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BITVECTOR_ULE
    +

    Bit-vector unsigned less than or equal.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of bit-vector Sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BITVECTOR_ULT
    +

    Bit-vector unsigned less than.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of bit-vector Sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BITVECTOR_ULTBV
    +

    Bit-vector unsigned less than returning a bit-vector of size 1.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of bit-vector Sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BITVECTOR_UMULO
    +

    Bit-vector unsigned multiplication overflow detection.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of bit-vector Sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BITVECTOR_UREM
    +

    Unsigned bit-vector remainder.

    +

    Remainder from unsigned bit-vector division. If the modulus is zero, the +result is the dividend.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of bit-vector Sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BITVECTOR_USUBO
    +

    Bit-vector unsigned subtraction overflow detection.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of bit-vector Sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BITVECTOR_XNOR
    +

    Bit-wise xnor, left associative.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of bit-vector Sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BITVECTOR_XOR
    +

    Bit-wise xor.

    +
      +
    • Arity: n > 1

      +
        +
      • 1..n: Terms of bit-vector Sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +BITVECTOR_ZERO_EXTEND
    +

    Bit-vector zero extension.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of bit-vector Sort

      • +
      +
    • +
    • Indices: 1

      +
        +
      • 1: The number of zeroes to extend the given term with.

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +CARDINALITY_CONSTRAINT
    +

    Cardinality constraint on uninterpreted sort.

    +

    Interpreted as a predicate that is true when the cardinality of +uinterpreted Sort \(S\) is less than or equal to an upper bound.

    + +
    +

    Warning

    +

    This kind is experimental and may be changed or removed in +future versions.

    +
    +
    + +
    +
    +CONSTANT
    +

    Free constant symbol.

    + +
    +

    Note

    +

    Not permitted in bindings (e.g., FORALL, +EXISTS).

    +
    +
    + +
    +
    +CONST_ARRAY
    +

    Constant array.

    +
      +
    • Arity: 2

      +
        +
      • 1: Term of array Sort

      • +
      • 2: Term of array element Sort (value)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +CONST_BITVECTOR
    +

    Fixed-size bit-vector constant.

    + +
    + +
    +
    +CONST_BOOLEAN
    +

    Boolean constant.

    + +
    + +
    +
    +CONST_FINITE_FIELD
    +

    Finite field constant.

    + +
    + +
    +
    +CONST_FLOATINGPOINT
    +

    Floating-point constant, created from IEEE-754 bit-vector representation +of the floating-point value.

    + +
    + +
    +
    +CONST_INTEGER
    +

    Arbitrary-precision integer constant.

    + +
    + +
    +
    +CONST_RATIONAL
    +

    Arbitrary-precision rational constant.

    + +
    + +
    +
    +CONST_ROUNDINGMODE
    +

    RoundingMode constant.

    + +
    + +
    +
    +CONST_SEQUENCE
    +

    Constant sequence.

    +

    A constant sequence is a term that is equivalent to:

    +
    (seq.++ (seq.unit c1) ... (seq.unit cn))
    +
    +
    +

    where \(n \leq 0\) and \(c_1, ..., c_n\) are constants of some +sort. The elements can be extracted with Term.getSequenceValue().

    + +
    + +
    +
    +CONST_STRING
    +

    Constant string.

    + +
    + +
    +
    +COSECANT
    +

    Cosecant function.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of Sort Real

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +COSINE
    +

    Cosine function.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of Sort Real

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +COTANGENT
    +

    Cotangent function.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of Sort Real

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +DISTINCT
    +

    Disequality.

    +
      +
    • Arity: n > 1

      +
        +
      • 1..n: Terms of the same Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +DIVISIBLE
    +

    Operator for the divisibility-by-\(k\) predicate.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of Sort Int

      • +
      +
    • +
    • Indices: 1

      +
        +
      • 1: The integer \(k\) to divide by.

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +DIVISION
    +

    Real division, division by 0 undefined, left associative.

    +
      +
    • Arity: n > 1

      +
        +
      • 1..n: Terms of Sort Real

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +DIVISION_TOTAL
    +

    Real division, division by 0 defined to be 0, left associative.

    +
      +
    • Arity: n > 1

      +
        +
      • 1..n: Terms of Sort Real

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    +

    Warning

    +

    This kind is experimental and may be changed or removed in +future versions.

    +
    +
    + +
    +
    +EQUAL
    +

    Equality, chainable.

    +
      +
    • Arity: n > 1

      +
        +
      • 1..n: Terms of the same Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +EQ_RANGE
    +

    Equality over arrays \(a\) and \(b\) over a given range +\([i,j]\), i.e.,

    +
    +\[\forall k . i \leq k \leq j \Rightarrow a[k] = b[k]\]
    +
      +
    • Arity: 4

      +
        +
      • 1: Term of array Sort (first array)

      • +
      • 2: Term of array Sort (second array)

      • +
      • 3: Term of array index Sort (lower bound of range, inclusive)

      • +
      • 4: Term of array index Sort (upper bound of range, inclusive)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    +

    Warning

    +

    This kind is experimental and may be changed or removed in +future versions.

    +
    +
    +

    Note

    +

    We currently support the creation of array equalities over index +Sorts bit-vector, floating-point, Int and Real. +Requires to enable option +arrays-exp.

    +
    +
    + +
    +
    +EXISTS
    +

    Existentially quantified formula.

    + +
    + +
    +
    +EXPONENTIAL
    +

    Exponential function.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of Sort Real

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +FINITE_FIELD_ADD
    +

    Addition of two or more finite field elements.

    +
      +
    • Arity: n > 1

      +
        +
      • 1..n: Terms of finite field Sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +FINITE_FIELD_BITSUM
    +

    Bitsum of two or more finite field elements: x + 2y + 4z + …

    +
      +
    • Arity: n > 1

      +
        +
      • 1..n: Terms of finite field Sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    +
    + +
    +
    +FINITE_FIELD_MULT
    +

    Multiplication of two or more finite field elements.

    +
      +
    • Arity: n > 1

      +
        +
      • 1..n: Terms of finite field Sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +FINITE_FIELD_NEG
    +

    Negation of a finite field element (additive inverse).

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of finite field Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +FLOATINGPOINT_ABS
    +

    Floating-point absolute value.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of floating-point Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +FLOATINGPOINT_ADD
    +

    Floating-point addition.

    +
      +
    • Arity: 3

      +
        +
      • 1: Term of Sort RoundingMode

      • +
      • 2..3: Terms of floating-point Sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +FLOATINGPOINT_DIV
    +

    Floating-point division.

    +
      +
    • Arity: 3

      +
        +
      • 1: Term of Sort RoundingMode

      • +
      • 2..3: Terms of floating-point Sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +FLOATINGPOINT_EQ
    +

    Floating-point equality.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of floating-point Sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +FLOATINGPOINT_FMA
    +

    Floating-point fused multiply and add.

    +
      +
    • Arity: 4

      +
        +
      • 1: Term of Sort RoundingMode

      • +
      • 2..4: Terms of floating-point Sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +FLOATINGPOINT_FP
    +

    Create floating-point literal from bit-vector triple.

    +
      +
    • Arity: 3

      +
        +
      • 1: Term of bit-vector Sort of size 1 (sign bit)

      • +
      • 2: Term of bit-vector Sort of exponent size (exponent)

      • +
      • 3: Term of bit-vector Sort of significand size - 1 (significand without hidden bit)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +FLOATINGPOINT_GEQ
    +

    Floating-point greater than or equal.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of floating-point Sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +FLOATINGPOINT_GT
    +

    Floating-point greater than.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of floating-point Sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +FLOATINGPOINT_IS_INF
    +

    Floating-point is infinite tester.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of floating-point Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +FLOATINGPOINT_IS_NAN
    +

    Floating-point is NaN tester.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of floating-point Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +FLOATINGPOINT_IS_NEG
    +

    Floating-point is negative tester.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of floating-point Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +FLOATINGPOINT_IS_NORMAL
    +

    Floating-point is normal tester.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of floating-point Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +FLOATINGPOINT_IS_POS
    +

    Floating-point is positive tester.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of floating-point Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +FLOATINGPOINT_IS_SUBNORMAL
    +

    Floating-point is sub-normal tester.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of floating-point Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +FLOATINGPOINT_IS_ZERO
    +

    Floating-point is zero tester.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of floating-point Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +FLOATINGPOINT_LEQ
    +

    Floating-point less than or equal.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of floating-point Sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +FLOATINGPOINT_LT
    +

    Floating-point less than.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of floating-point Sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +FLOATINGPOINT_MAX
    +

    Floating-point maximum.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of floating-point Sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +FLOATINGPOINT_MIN
    +

    Floating-point minimum.

    +
      +
    • Arity: 2

      +
        +
      • 1: Term of Sort RoundingMode

      • +
      • 2: Term of floating-point Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +FLOATINGPOINT_MULT
    +

    Floating-point multiply.

    +
      +
    • Arity: 3

      +
        +
      • 1: Term of Sort RoundingMode

      • +
      • 2..3: Terms of floating-point Sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +FLOATINGPOINT_NEG
    +

    Floating-point negation.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of floating-point Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +FLOATINGPOINT_REM
    +

    Floating-point remainder.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of floating-point Sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +FLOATINGPOINT_RTI
    +

    Floating-point round to integral.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of floating-point Sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +FLOATINGPOINT_SQRT
    +

    Floating-point square root.

    +
      +
    • Arity: 2

      +
        +
      • 1: Term of Sort RoundingMode

      • +
      • 2: Term of floating-point Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +FLOATINGPOINT_SUB
    +

    Floating-point sutraction.

    +
      +
    • Arity: 3

      +
        +
      • 1: Term of Sort RoundingMode

      • +
      • 2..3: Terms of floating-point Sort (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +FLOATINGPOINT_TO_FP_FROM_FP
    +

    Conversion to floating-point from floating-point.

    +
      +
    • Arity: 2

      +
        +
      • 1: Term of Sort RoundingMode

      • +
      • 2: Term of floating-point Sort

      • +
      +
    • +
    • Indices: 2

      +
        +
      • 1: The exponent size

      • +
      • 2: The significand size

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +FLOATINGPOINT_TO_FP_FROM_IEEE_BV
    +

    Conversion to floating-point from IEEE-754 bit-vector.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of bit-vector Sort

      • +
      +
    • +
    • Indices: 2

      +
        +
      • 1: The exponent size

      • +
      • 2: The significand size

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +FLOATINGPOINT_TO_FP_FROM_REAL
    +

    Conversion to floating-point from Real.

    +
      +
    • Arity: 2

      +
        +
      • 1: Term of Sort RoundingMode

      • +
      • 2: Term of Sort Real

      • +
      +
    • +
    • Indices: 2

      +
        +
      • 1: The exponent size

      • +
      • 2: The significand size

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +FLOATINGPOINT_TO_FP_FROM_SBV
    +

    Conversion to floating-point from signed bit-vector.

    +
      +
    • Arity: 2

      +
        +
      • 1: Term of Sort RoundingMode

      • +
      • 2: Term of bit-vector Sort

      • +
      +
    • +
    • Indices: 2

      +
        +
      • 1: The exponent size

      • +
      • 2: The significand size

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +FLOATINGPOINT_TO_FP_FROM_UBV
    +

    Conversion to floating-point from unsigned bit-vector.

    +
      +
    • Arity: 2

      +
        +
      • 1: Term of Sort RoundingMode

      • +
      • 2: Term of bit-vector Sort

      • +
      +
    • +
    • Indices: 2

      +
        +
      • 1: The exponent size

      • +
      • 2: The significand size

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +FLOATINGPOINT_TO_REAL
    +

    Conversion to Real from floating-point.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of Sort Real

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +FLOATINGPOINT_TO_SBV
    +

    Conversion to signed bit-vector from floating-point.

    +
      +
    • Arity: 2

      +
        +
      • 1: Term of Sort RoundingMode

      • +
      • 2: Term of floating-point Sort

      • +
      +
    • +
    • Indices: 1

      +
        +
      • 1: The size of the bit-vector to convert to.

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +FLOATINGPOINT_TO_UBV
    +

    Conversion to unsigned bit-vector from floating-point.

    +
      +
    • Arity: 2

      +
        +
      • 1: Term of Sort RoundingMode

      • +
      • 2: Term of floating-point Sort

      • +
      +
    • +
    • Indices: 1

      +
        +
      • 1: The size of the bit-vector to convert to.

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +FORALL
    +

    Universally quantified formula.

    + +
    + +
    +
    +GEQ
    +

    Greater than or equal, chainable.

    +
      +
    • Arity: n > 1

      +
        +
      • 1..n: Terms of Sort Int or Real (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +GT
    +

    Greater than, chainable.

    +
      +
    • Arity: n > 1

      +
        +
      • 1..n: Terms of Sort Int or Real (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +HO_APPLY
    +

    Higher-order applicative encoding of function application, left +associative.

    +
      +
    • Arity: n = 2

      +
        +
      • 1: Function Term

      • +
      • 2: Argument Term of the domain Sort of the function

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +IAND
    +

    Integer and.

    +

    Operator for bit-wise AND over integers, parameterized by a (positive) +bit-width \(k\).

    +
    ((_ iand k) i_1 i_2)
    +
    +
    +

    is equivalent to

    +
    ((_ iand k) i_1 i_2)
    +(bv2int (bvand ((_ int2bv k) i_1) ((_ int2bv k) i_2)))
    +
    +
    +

    for all integers i_1, i_2.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of Sort Int

      • +
      +
    • +
    • Indices: 1

      +
        +
      • 1: Bit-width \(k\)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +IMPLIES
    +

    Logical implication.

    +
      +
    • Arity: n > 1

      +
        +
      • 1..n: Terms of Sort Bool

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +INST_ADD_TO_POOL
    +

    A instantantiation-add-to-pool annotation.

    +

    An instantantiation-add-to-pool annotation indicates that when a quantified +formula is instantiated, the instantiated version of a term should be +added to the given pool.

    +

    For example, consider a quantified formula:

    +
    (FORALL (VARIABLE_LIST x) F
    +        (INST_PATTERN_LIST (INST_ADD_TO_POOL (ADD x 1) p)))
    +
    +
    +

    where assume that \(x\) has type Int. When this quantified formula is +instantiated with, e.g., the term \(t\), the term (ADD t 1) is +added to pool \(p\).

    +
      +
    • Arity: 2

      +
        +
      • 1: The Term whose free variables are bound by the quantified formula.

      • +
      • 2: The pool to add to, whose Sort should be a set of elements that match the Sort of the first argument.

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    +

    Warning

    +

    This kind is experimental and may be changed or removed in +future versions.

    +
    +
    +

    Note

    +

    Should only be used as a child of +INST_PATTERN_LIST.

    +
    +
    + +
    +
    +INST_ATTRIBUTE
    +

    Instantiation attribute.

    +

    Specifies a custom property for a quantified formula given by a +term that is ascribed a user attribute.

    +
      +
    • Arity: n > 0

      +
        +
      • 1: Term of Kind CONST_STRING (the keyword of the attribute)

      • +
      • 2...n: Terms representing the values of the attribute

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    +

    Note

    +

    Should only be used as a child of +INST_PATTERN_LIST.

    +
    +
    + +
    +
    +INST_NO_PATTERN
    +

    Instantiation no-pattern.

    +

    Specifies a (list of) terms that should not be used as a pattern for +quantifier instantiation.

    +
      +
    • Arity: n > 0

      +
        +
      • 1..n: Terms of any Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    +

    Note

    +

    Should only be used as a child of +INST_PATTERN_LIST.

    +
    +
    + +
    +
    +INST_PATTERN
    +

    Instantiation pattern.

    +

    Specifies a (list of) terms to be used as a pattern for quantifier +instantiation.

    +
      +
    • Arity: n > 0

      +
        +
      • 1..n: Terms of any Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    +

    Note

    +

    Should only be used as a child of +INST_PATTERN_LIST.

    +
    +
    + +
    +
    +INST_PATTERN_LIST
    +

    A list of instantiation patterns, attributes or annotations.

    + +
    + +
    +
    +INST_POOL
    +

    Instantiation pool annotation.

    +

    Specifies an annotation for pool based instantiation.

    +
    +
    In detail, pool symbols can be declared via the method
    +
    +
    +

    A pool symbol represents a set of terms of a given sort. An instantiation +pool annotation should either: +(1) have child sets matching the types of the quantified formula, +(2) have a child set of tuple type whose component types match the types +of the quantified formula.

    +

    For an example of (1), for a quantified formula:

    +
    (FORALL (VARIABLE_LIST x y) F (INST_PATTERN_LIST (INST_POOL p q)))
    +
    +
    +

    if \(x\) and \(y\) have Sorts \(S_1\) and \(S_2\), then +pool symbols \(p\) and \(q\) should have Sorts (Set \(S_1\)) +and (Set \(S_2\)), respectively. This annotation specifies that the +quantified formula above should be instantiated with the product of all +terms that occur in the sets \(p\) and \(q\).

    +

    Alternatively, as an example of (2), for a quantified formula:

    +
    (FORALL (VARIABLE_LIST x y) F (INST_PATTERN_LIST (INST_POOL s)))
    +
    +
    +

    \(s\) should have Sort (Set (Tuple \(S_1\) \(S_2\))). This +annotation specifies that the quantified formula above should be +instantiated with the pairs of values in \(s\).

    +
      +
    • Arity: n > 0

      +
        +
      • 1..n: Terms that comprise the pools, which are one-to-one with the variables of the quantified formula to be instantiated

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    +

    Warning

    +

    This kind is experimental and may be changed or removed in +future versions.

    +
    +
    +

    Note

    +

    Should only be used as a child of +INST_PATTERN_LIST.

    +
    +
    + +
    +
    +INTERNAL_KIND
    +

    Internal kind.

    +

    This kind serves as an abstraction for internal kinds that are not exposed +via the API but may appear in terms returned by API functions, e.g., +when querying the simplified form of a term.

    +
    +

    Note

    +

    Should never be created via the API.

    +
    +
    + +
    +
    +INTS_DIVISION
    +

    Integer division, division by 0 undefined, left associative.

    +
      +
    • Arity: n > 1

      +
        +
      • 1..n: Terms of Sort Int

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +INTS_DIVISION_TOTAL
    +

    Integer division, division by 0 defined to be 0, left associative.

    +
      +
    • Arity: n > 1

      +
        +
      • 1..n: Terms of Sort Int

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    +

    Warning

    +

    This kind is experimental and may be changed or removed in +future versions.

    +
    +
    + +
    +
    +INTS_MODULUS
    +

    Integer modulus, modulus by 0 undefined.

    +
      +
    • Arity: 2

      +
        +
      • 1: Term of Sort Int

      • +
      • 2: Term of Sort Int

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +INTS_MODULUS_TOTAL
    +

    Integer modulus, t modulus by 0 defined to be t.

    +
      +
    • Arity: 2

      +
        +
      • 1: Term of Sort Int

      • +
      • 2: Term of Sort Int

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    +

    Warning

    +

    This kind is experimental and may be changed or removed in +future versions.

    +
    +
    + +
    +
    +INT_TO_BITVECTOR
    +

    Conversion from Int to bit-vector.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of Sort Int

      • +
      +
    • +
    • Indices: 1

      +
        +
      • 1: The size of the bit-vector to convert to.

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +IS_INTEGER
    +

    Is-integer predicate.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of Sort Int or Real

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +ITE
    +

    If-then-else.

    +
      +
    • Arity: 3

      +
        +
      • 1: Term of Sort Bool

      • +
      • 2: The ‘then’ term, Term of any Sort

      • +
      • 3: The ‘else’ term, Term of the same sort as second argument

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +LAMBDA
    +

    Lambda expression.

    + +
    + +
    +
    +LAST_KIND
    +

    Marks the upper-bound of this enumeration.

    +
    + +
    +
    +LEQ
    +

    Less than or equal, chainable.

    +
      +
    • Arity: n > 1

      +
        +
      • 1..n: Terms of Sort Int or Real (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +LT
    +

    Less than, chainable.

    +
      +
    • Arity: n > 1

      +
        +
      • 1..n: Terms of Sort Int or Real (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +MATCH
    +

    Match expression.

    +

    This kind is primarily used in the parser to support the +SMT-LIBv2 match expression.

    +

    For example, the SMT-LIBv2 syntax for the following match term

    +
    (match l (((cons h t) h) (nil 0)))
    +
    +
    +

    is represented by the AST

    +
    (MATCH l
    +    (MATCH_BIND_CASE (VARIABLE_LIST h t) (cons h t) h)
    +    (MATCH_CASE nil 0))
    +
    +
    +

    Terms of kind MATCH_CASE are constant case expressions, +which are used for nullary constructors. Kind +MATCH_BIND_CASE is used for constructors with selectors +and variable match patterns. If not all constructors are covered, at least +one catch-all variable pattern must be included.

    + +
    + +
    +
    +MATCH_BIND_CASE
    +

    Match case with binders, for constructors with selectors and variable +patterns.

    +

    A (non-constant) case expression to be used within a match expression.

    +
      +
    • Arity: 3

      +
        +
      • For variable patterns:

        +
          +
        • 1: Term of kind VARIABLE_LIST (containing the free variable of the case)

        • +
        • 2: Term of kind VARIABLE (the pattern expression, the free variable of the case)

        • +
        • 3: Term of any Sort (the term the pattern evaluates to)

        • +
        +
      • +
      • For constructors with selectors:

        +
          +
        • 1: Term of kind VARIABLE_LIST (containing the free variable of the case)

        • +
        • 2: Term of kind APPLY_CONSTRUCTOR (the pattern expression, applying the set of variables to the constructor)

        • +
        • 3: Term of any Sort (the term the match term evaluates to)

        • +
        +
      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +MATCH_CASE
    +

    Match case for nullary constructors.

    +

    A (constant) case expression to be used within a match expression.

    +
      +
    • Arity: 2

      +
        +
      • 1: Term of kind APPLY_CONSTRUCTOR (the pattern to match against)

      • +
      • 2: Term of any Sort (the term the match term evaluates to)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +MULT
    +

    Arithmetic multiplication.

    +
      +
    • Arity: n > 1

      +
        +
      • 1..n: Terms of Sort Int or Real (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +NEG
    +

    Arithmetic negation.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of Sort Int or Real

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +NOT
    +

    Logical negation.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of Sort Bool

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +NULLABLE_LIFT
    +

    Lifting operator for nullable terms. +This operator lifts a built-in operator or a user-defined function +to nullable terms. +For built-in kinds use mkNullableLift. +For user-defined functions use mkTerm.

    + +
    + +
    +
    +NULL_TERM
    +

    Null kind.

    +

    The kind of a null term (Term.Term()).

    +
    +

    Note

    +

    May not be explicitly created via API functions other than +Term.Term().

    +
    +
    + +
    +
    +OR
    +

    Logical disjunction.

    +
      +
    • Arity: n > 1

      +
        +
      • 1..n: Terms of Sort Bool

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +PI
    +

    Pi constant.

    + +
    +

    Note

    +

    PI is considered a special symbol of Sort +Real, but is not a Real value, i.e., +Term.isRealValue() will return false.

    +
    +
    + +
    +
    +POW
    +

    Arithmetic power.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Term of Sort Int or Real (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +POW2
    +

    Power of two.

    +

    Operator for raising 2 to a non-negative integer power.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of Sort Int

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +REGEXP_ALL
    +

    Regular expression all.

    + +
    + +
    +
    +REGEXP_ALLCHAR
    +

    Regular expression all characters.

    + +
    + +
    +
    +REGEXP_COMPLEMENT
    +

    Regular expression complement.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of Sort RegLan

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +REGEXP_CONCAT
    +

    Regular expression concatenation.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of Sort RegLan

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +REGEXP_DIFF
    +

    Regular expression difference.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of Sort RegLan

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +REGEXP_INTER
    +

    Regular expression intersection.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of Sort RegLan

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +REGEXP_LOOP
    +

    Regular expression loop.

    +

    Regular expression loop from lower bound to upper bound number of +repetitions.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of Sort RegLan

      • +
      +
    • +
    • Indices: 1

      +
        +
      • 1: The lower bound

      • +
      • 2: The upper bound

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +REGEXP_NONE
    +

    Regular expression none.

    + +
    + +
    +
    +REGEXP_OPT
    +

    Regular expression ?.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of Sort RegLan

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +REGEXP_PLUS
    +

    Regular expression +.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of Sort RegLan

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +REGEXP_RANGE
    +

    Regular expression range.

    +
      +
    • Arity: 2

      +
        +
      • 1: Term of Sort String (lower bound character for the range)

      • +
      • 2: Term of Sort String (upper bound character for the range)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +REGEXP_REPEAT
    +

    Operator for regular expression repeat.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of Sort RegLan

      • +
      +
    • +
    • Indices: 1

      +
        +
      • 1: The number of repetitions

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +REGEXP_STAR
    +

    Regular expression *.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of Sort RegLan

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +REGEXP_UNION
    +

    Regular expression union.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of Sort RegLan

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +RELATION_AGGREGATE
    +

    Relation aggregate operator has the form +\(((\_ \; rel.aggr \; n_1 ... n_k) \; f \; i \; A)\) +where \(n_1, ..., n_k\) are natural numbers, +\(f\) is a function of type +\((\rightarrow (Tuple \; T_1 \; ... \; T_j)\; T \; T)\), +\(i\) has the type \(T\), +and \(A\) has type \((Relation \; T_1 \; ... \; T_j)\). +The returned type is \((Set \; T)\).

    +

    This operator aggregates elements in A that have the same tuple projection +with indices n_1, …, n_k using the combining function \(f\), +and initial value \(i\).

    +
      +
    • Arity: 3

      +
        +
      • 1: Term of sort \((\rightarrow (Tuple \; T_1 \; ... \; T_j)\; T \; T)\)

      • +
      • 2: Term of Sort \(T\)

      • +
      • 3: Term of relation sort \(Relation T_1 ... T_j\)

      • +
      +
    • +
    • Indices: n +- 1..n: Indices of the projection

    • +
    • Create Term of this Kind with: +- Solver.mkTerm()

    • +
    • Create Op of this kind with: +- Solver.mkOp()

    • +
    +
    +

    Warning

    +

    This kind is experimental and may be changed or removed in +future versions.

    +
    +
    + +
    +
    +RELATION_GROUP
    +

    Relation group

    +

    \(((\_ \; rel.group \; n_1 \; \dots \; n_k) \; A)\) partitions tuples +of relation \(A\) such that tuples that have the same projection +with indices \(n_1 \; \dots \; n_k\) are in the same part. +It returns a set of relations of type \((Set \; T)\) where +\(T\) is the type of \(A\).

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of relation sort

      • +
      +
    • +
    • Indices: n

      +
        +
      • 1..n: Indices of the projection

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    +
    +

    Warning

    +

    This kind is experimental and may be changed or removed in +future versions.

    +
    +
    + +
    +
    +RELATION_IDEN
    +

    Relation identity.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of relation Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    +

    Warning

    +

    This kind is experimental and may be changed or removed in +future versions.

    +
    +
    + +
    +
    +RELATION_JOIN
    +

    Relation join.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of relation Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +RELATION_JOIN_IMAGE
    +

    Relation join image.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of relation Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    +

    Warning

    +

    This kind is experimental and may be changed or removed in +future versions.

    +
    +
    + +
    +
    +RELATION_PRODUCT
    +

    Relation cartesian product.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of relation Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +RELATION_PROJECT
    +

    Relation projection operator extends tuple projection operator to sets.

    +
      +
    • Arity: 1 +- 1: Term of relation Sort

    • +
    • Indices: n +- 1..n: Indices of the projection

    • +
    • Create Term of this Kind with: +- Solver.mkTerm()

    • +
    • Create Op of this kind with: +- Solver.mkOp()

    • +
    +
    +

    Warning

    +

    This kind is experimental and may be changed or removed in +future versions.

    +
    +
    + +
    +
    +RELATION_TABLE_JOIN
    +
    +
    Table join operator for relations has the form

    \(((\_ \; rel.table\_join \; m_1 \; n_1 \; \dots \; m_k \; n_k) \; A \; B)\) +where \(m_1 \; n_1 \; \dots \; m_k \; n_k\) are natural numbers, +and \(A, B\) are relations. +This operator filters the product of two sets based on the equality of +projected tuples using indices \(m_1, \dots, m_k\) in relation \(A\), +and indices \(n_1, \dots, n_k\) in relation \(B\).

    +
    +
    +
      +
    • Arity: 2

      +
        +
      • 1: Term of relation Sort

      • +
      • 2: Term of relation Sort

      • +
      +
    • +
    • Indices: n +- 1..n: Indices of the projection

    • +
    • Create Term of this Kind with: +- Solver.mkTerm()

    • +
    • Create Op of this kind with: +- Solver.mkOp()

    • +
    +
    +

    Warning

    +

    This kind is experimental and may be changed or removed in +future versions.

    +
    +
    + +
    +
    +RELATION_TCLOSURE
    +

    Relation transitive closure.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of relation Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +RELATION_TRANSPOSE
    +

    Relation transpose.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of relation Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +SECANT
    +

    Secant function.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of Sort Real

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +SELECT
    +

    Array select.

    +
      +
    • Arity: 2

      +
        +
      • 1: Term of array Sort

      • +
      • 2: Term of array index Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +SEP_EMP
    +

    Separation logic empty heap.

    + +
    +

    Warning

    +

    This kind is experimental and may be changed or removed in +future versions.

    +
    +
    + +
    +
    +SEP_NIL
    +

    Separation logic nil.

    + +
    +

    Warning

    +

    This kind is experimental and may be changed or removed in +future versions.

    +
    +
    + +
    +
    +SEP_PTO
    +

    Separation logic points-to relation.

    +
      +
    • Arity: 2

      +
        +
      • 1: Term denoting the location of the points-to constraint

      • +
      • 2: Term denoting the data of the points-to constraint

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    +

    Warning

    +

    This kind is experimental and may be changed or removed in +future versions.

    +
    +
    + +
    +
    +SEP_STAR
    +

    Separation logic star.

    +
      +
    • Arity: n > 1

      +
        +
      • +
        1..n: Terms of sort Bool (the child constraints that hold in

        disjoint (separated) heaps)

        +
        +
        +
      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    +

    Warning

    +

    This kind is experimental and may be changed or removed in +future versions.

    +
    +
    + +
    +
    +SEP_WAND
    +

    Separation logic magic wand.

    +
      +
    • Arity: 2

      +
        +
      • 1: Terms of Sort Bool (the antecendant of the magic wand constraint)

      • +
      • +
        2: Terms of Sort Bool (conclusion of the magic wand constraint,

        which is asserted to hold in all heaps that are disjoint +extensions of the antecedent)

        +
        +
        +
      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    +

    Warning

    +

    This kind is experimental and may be changed or removed in +future versions.

    +
    +
    + +
    +
    +SEQ_AT
    +

    Sequence element at.

    +

    Returns the element at index \(i\) from a sequence \(s\). If the index +is negative or the index is greater or equal to the length of the +sequence, the result is the empty sequence. Otherwise the result is a +sequence of length 1.

    +
      +
    • Arity: 2

      +
        +
      • 1: Term of sequence Sort

      • +
      • 2: Term of Sort Int (index \(i\))

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +SEQ_CONCAT
    +

    Sequence concat.

    +
      +
    • Arity: n > 1

      +
        +
      • 1..n: Terms of sequence Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +SEQ_CONTAINS
    +

    Sequence contains.

    +

    Checks whether a sequence \(s_1\) contains another sequence +\(s_2\). If \(s_2\) is empty, the result is always true.

    +
      +
    • Arity: 2

      +
        +
      • 1: Term of sequence Sort (\(s_1\))

      • +
      • 2: Term of sequence Sort (\(s_2\))

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +SEQ_EXTRACT
    +

    Sequence extract.

    +

    Extracts a subsequence, starting at index \(i\) and of length \(l\), +from a sequence \(s\). If the start index is negative, the start index +is greater than the length of the sequence, or the length is negative, the +result is the empty sequence.

    +
      +
    • Arity: 3

      +
        +
      • 1: Term of sequence Sort

      • +
      • 2: Term of Sort Int (index \(i\))

      • +
      • 3: Term of Sort Int (length \(l\))

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +SEQ_INDEXOF
    +

    Sequence index-of.

    +

    Returns the index of a subsequence \(s_2\) in a sequence \(s_1\) +starting at index \(i\). If the index is negative or greater than the +length of sequence \(s_1\) or the subsequence \(s_2\) does not +appear in sequence \(s_1\) after index \(i\), the result is -1.

    +
      +
    • Arity: 3

      +
        +
      • 1: Term of sequence Sort (\(s_1\))

      • +
      • 2: Term of sequence Sort (\(s_2\))

      • +
      • 3: Term of Sort Int (\(i\))

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +SEQ_LENGTH
    +

    Sequence length.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of sequence Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +SEQ_NTH
    +

    Sequence nth.

    +

    Corresponds to the nth element of a sequence.

    +
      +
    • Arity: 2

      +
        +
      • 1: Term of sequence Sort

      • +
      • 2: Term of Sort Int (\(n\))

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +SEQ_PREFIX
    +

    Sequence prefix-of.

    +

    Checks whether a sequence \(s_1\) is a prefix of sequence \(s_2\). +If sequence \(s_1\) is empty, this operator returns true.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of sequence Sort (\(s_1\))

      • +
      • 2: Term of sequence Sort (\(s_2\))

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +SEQ_REPLACE
    +

    Sequence replace.

    +

    Replaces the first occurrence of a sequence \(s_2\) in a +sequence \(s_1\) with sequence \(s_3\). If \(s_2\) does not +appear in \(s_1\), \(s_1\) is returned unmodified.

    +
      +
    • Arity: 3

      +
        +
      • 1: Term of sequence Sort (\(s_1\))

      • +
      • 2: Term of sequence Sort (\(s_2\))

      • +
      • 3: Term of sequence Sort (\(s_3\))

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +SEQ_REPLACE_ALL
    +

    Sequence replace all.

    +

    Replaces all occurrences of a sequence \(s_2\) in a sequence +\(s_1\) with sequence \(s_3\). If \(s_2\) does not appear in +\(s_1\), sequence \(s_1\) is returned unmodified.

    +
      +
    • Arity: 3

      +
        +
      • 1: Term of sequence Sort (\(s_1\))

      • +
      • 2: Term of sequence Sort (\(s_2\))

      • +
      • 3: Term of sequence Sort (\(s_3\))

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +SEQ_REV
    +

    Sequence reverse.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of sequence Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +SEQ_SUFFIX
    +

    Sequence suffix-of.

    +

    Checks whether a sequence \(s_1\) is a suffix of sequence \(s_2\). +If sequence \(s_1\) is empty, this operator returns true.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of sequence Sort (\(s_1\))

      • +
      • 2: Term of sequence Sort (\(s_2\))

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +SEQ_UNIT
    +

    Sequence unit.

    +

    Corresponds to a sequence of length one with the given term.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of any Sort (the element term)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +SEQ_UPDATE
    +

    Sequence update.

    +

    Updates a sequence \(s\) by replacing its context starting at an index +with string \(t\). If the start index is negative, the start index is +greater than the length of the sequence, the result is \(s\). +Otherwise, the length of the original sequence is preserved.

    +
      +
    • Arity: 3

      +
        +
      • 1: Term of sequence Sort

      • +
      • 2: Term of Sort Int (index \(i\))

      • +
      • 3: Term of sequence Sort (replacement sequence \(t\))

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +SET_ALL
    +

    Set all.

    +

    This operator checks whether all elements of a set satisfy a predicate. +(set.all \(p \; A\)) takes a predicate \(p\) of Sort +\((\rightarrow T \; Bool)\) as a first argument, and a set \(A\) +of Sort (Set \(T\)) as a second argument, and returns true iff all +elements of \(A\) satisfy predicate \(p\).

    +
      +
    • Arity: 2

      +
        +
      • 1: Term of function Sort \((\rightarrow T \; Bool)\)

      • +
      • 2: Term of bag Sort (Set \(T\))

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    +
    +

    Warning

    +

    This kind is experimental and may be changed or removed in +future versions.

    +
    +
    + +
    +
    +SET_CARD
    +

    Set cardinality.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of set Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +SET_CHOOSE
    +

    Set choose.

    +

    Select an element from a given set. For a set \(A = \{x\}\), the term +(set.choose \(A\)) is equivalent to the term \(x_1\). For an empty +set, it is an arbitrary value. For a set with cardinality > 1, it will +deterministically return an element in \(A\).

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of set Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    +

    Warning

    +

    This kind is experimental and may be changed or removed in +future versions.

    +
    +
    + +
    +
    +SET_COMPLEMENT
    +

    Set complement with respect to finite universe.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of set Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +SET_COMPREHENSION
    +

    Set comprehension

    +

    A set comprehension is specified by a variable list \(x_1 ... x_n\), +a predicate \(P[x_1...x_n]\), and a term \(t[x_1...x_n]\). A +comprehension \(C\) with the above form has members given by the +following semantics:

    +
    +\[\forall y. ( \exists x_1...x_n. P[x_1...x_n] \wedge t[x_1...x_n] = y ) +\Leftrightarrow (set.member \; y \; C)\]
    +

    where \(y\) ranges over the element Sort of the (set) Sort of the +comprehension. If \(t[x_1..x_n]\) is not provided, it is equivalent +to \(y\) in the above formula.

    +
      +
    • Arity: 3

      +
        +
      • 1: Term of Kind VARIABLE_LIST

      • +
      • 2: Term of sort Bool (the predicate of the comprehension)

      • +
      • 3: (optional) Term denoting the generator for the comprehension

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    +

    Warning

    +

    This kind is experimental and may be changed or removed in +future versions.

    +
    +
    + +
    +
    +SET_EMPTY
    +

    Empty set.

    + +
    + +
    +
    +SET_FILTER
    +

    Set filter.

    +

    This operator filters the elements of a set. +(set.filter \(p \; A\)) takes a predicate \(p\) of Sort +\((\rightarrow T \; Bool)\) as a first argument, and a set \(A\) +of Sort (Set \(T\)) as a second argument, and returns a subset of Sort +(Set \(T\)) that includes all elements of \(A\) that satisfy +\(p\).

    +
      +
    • Arity: 2

      +
        +
      • 1: Term of function Sort \((\rightarrow T \; Bool)\)

      • +
      • 2: Term of bag Sort (Set \(T\))

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    +
    +

    Warning

    +

    This kind is experimental and may be changed or removed in +future versions.

    +
    +
    + +
    +
    +SET_FOLD
    +

    Set fold.

    +

    This operator combines elements of a set into a single value. +(set.fold \(f \; t \; A\)) folds the elements of set \(A\) +starting with Term \(t\) and using the combining function \(f\).

    +
      +
    • Arity: 2

      +
        +
      • 1: Term of function Sort \((\rightarrow S_1 \; S_2 \; S_2)\)

      • +
      • 2: Term of Sort \(S_2\) (the initial value)

      • +
      • 3: Term of bag Sort (Set \(S_1\))

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    +
    +

    Warning

    +

    This kind is experimental and may be changed or removed in +future versions.

    +
    +
    + +
    +
    +SET_INSERT
    +

    The set obtained by inserting elements;

    +
      +
    • Arity: n > 0

      +
        +
      • 1..n-1: Terms of any Sort (must match the element sort of the given set Term)

      • +
      • n: Term of set Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +SET_INTER
    +

    Set intersection.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of set Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +SET_IS_EMPTY
    +

    Set is empty tester.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of set Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    +

    Warning

    +

    This kind is experimental and may be changed or removed in +future versions.

    +
    +
    + +
    +
    +SET_IS_SINGLETON
    +

    Set is singleton tester.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of set Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    +

    Warning

    +

    This kind is experimental and may be changed or removed in +future versions.

    +
    +
    + +
    +
    +SET_MAP
    +

    Set map.

    +

    This operator applies the first argument, a function of +Sort \((\rightarrow S_1 \; S_2)\), to every element of the second +argument, a set of Sort (Set \(S_1\)), and returns a set of Sort +(Set \(S_2\)).

    +
      +
    • Arity: 2

      +
        +
      • 1: Term of function Sort \((\rightarrow S_1 \; S_2)\)

      • +
      • 2: Term of set Sort (Set \(S_1\))

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    +

    Warning

    +

    This kind is experimental and may be changed or removed in +future versions.

    +
    +
    + +
    +
    +SET_MEMBER
    +

    Set membership predicate.

    +

    Determines if the given set element is a member of the second set.

    +
      +
    • Arity: 2

      +
        +
      • 1: Term of any Sort (must match the element Sort of the given set Term)

      • +
      • 2: Term of set Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +SET_MINUS
    +

    Set subtraction.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of set Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +SET_SINGLETON
    +

    Singleton set.

    +

    Construct a singleton set from an element given as a parameter. +The returned set has the same Sort as the element.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of any Sort (the set element)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +SET_SOME
    +

    Set some.

    +

    This operator checks whether at least one element of a set satisfies a predicate. +(set.some \(p \; A\)) takes a predicate \(p\) of Sort +\((\rightarrow T \; Bool)\) as a first argument, and a set \(A\) +of Sort (Set \(T\)) as a second argument, and returns true iff at least +one element of \(A\) satisfies predicate \(p\).

    +
      +
    • Arity: 2

      +
        +
      • 1: Term of function Sort \((\rightarrow T \; Bool)\)

      • +
      • 2: Term of bag Sort (Set \(T\))

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    +
    +

    Warning

    +

    This kind is experimental and may be changed or removed in +future versions.

    +
    +
    + +
    +
    +SET_SUBSET
    +

    Subset predicate.

    +

    Determines if the first set is a subset of the second set.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of set Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +SET_UNION
    +

    Set union.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of set Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +SET_UNIVERSE
    +

    Finite universe set.

    +

    All set variables must be interpreted as subsets of it.

    + +
    +

    Note

    +

    SET_UNIVERSE is considered a special symbol of +the theory of sets and is not considered as a set value, i.e., +Term.isSetValue() will return false.

    +
    +
    + +
    +
    +SEXPR
    +

    Symbolic expression.

    +
      +
    • Arity: n > 0

      +
        +
      • 1..n: Terms with same sorts

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    +

    Warning

    +

    This kind is experimental and may be changed or removed in +future versions.

    +
    +
    + +
    +
    +SINE
    +

    Sine function.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of Sort Real

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +SKOLEM
    +

    A Skolem.

    +
    +

    Note

    +

    Represents an internally generated term. Information on the

    +
    +

    skolem is available via the calls Solver::getSkolemId and +Solver::getSkolemIndices.

    +
    + +
    +
    +SKOLEM_ADD_TO_POOL
    +

    A skolemization-add-to-pool annotation.

    +

    An skolemization-add-to-pool annotation indicates that when a quantified +formula is skolemized, the skolemized version of a term should be added to +the given pool.

    +

    For example, consider a quantified formula:

    +
    (FORALL (VARIABLE_LIST x) F
    +        (INST_PATTERN_LIST (SKOLEM_ADD_TO_POOL (ADD x 1) p)))
    +
    +
    +

    where assume that \(x\) has type Int. When this quantified formula is +skolemized, e.g., with \(k\) of type Int, then the term (ADD k 1) +is added to the pool \(p\).

    +
      +
    • Arity: 2

      +
        +
      • 1: The Term whose free variables are bound by the quantified formula.

      • +
      • 2: The pool to add to, whose Sort should be a set of elements that match the Sort of the first argument.

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    +

    Warning

    +

    This kind is experimental and may be changed or removed in +future versions.

    +
    +
    +

    Note

    +

    Should only be used as a child of +INST_PATTERN_LIST.

    +
    +
    + +
    +
    +SQRT
    +

    Square root.

    +

    If the argument x is non-negative, then this returns a non-negative value +y such that y * y = x.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of Sort Real

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +STORE
    +

    Array store.

    +
      +
    • Arity: 3

      +
        +
      • 1: Term of array Sort

      • +
      • 2: Term of array index Sort

      • +
      • 3: Term of array element Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +STRING_CHARAT
    +

    String character at.

    +

    Returns the character at index \(i\) from a string \(s\). If the +index is negative or the index is greater than the length of the string, +the result is the empty string. Otherwise the result is a string of +length 1.

    +
      +
    • Arity: 2

      +
        +
      • 1: Term of Sort String (string \(s\))

      • +
      • 2: Term of Sort Int (index \(i\))

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +STRING_CONCAT
    +

    String concat.

    +
      +
    • Arity: n > 1

      +
        +
      • 1..n: Terms of Sort String

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +STRING_CONTAINS
    +

    String contains.

    +

    Determines whether a string \(s_1\) contains another string +\(s_2\). If \(s_2\) is empty, the result is always true.

    +
      +
    • Arity: 2

      +
        +
      • 1: Term of Sort String (the string \(s_1\))

      • +
      • 2: Term of Sort String (the string \(s_2\))

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +STRING_FROM_CODE
    +

    String from code.

    +

    Returns a string containing a single character whose code point matches +the argument to this function, or the empty string if the argument is +out-of-bounds.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of Sort Int

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +STRING_FROM_INT
    +

    Conversion from Int to String.

    +

    If the integer is negative this operator returns the empty string.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of Sort Int

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +STRING_INDEXOF
    +

    String index-of.

    +

    Returns the index of a substring \(s_2\) in a string \(s_1\) +starting at index \(i\). If the index is negative or greater than the +length of string \(s_1\) or the substring \(s_2\) does not appear +in string \(s_1\) after index \(i\), the result is -1.

    +
      +
    • Arity: 2

      +
        +
      • 1: Term of Sort String (substring \(s_1\))

      • +
      • 2: Term of Sort String (substring \(s_2\))

      • +
      • 3: Term of Sort Int (index \(i\))

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +STRING_INDEXOF_RE
    +

    String index-of regular expression match.

    +

    Returns the first match of a regular expression \(r\) in a +string \(s\). If the index is negative or greater than the length of +string \(s_1\), or \(r\) does not match a substring in \(s\) +after index \(i\), the result is -1.

    +
      +
    • Arity: 3

      +
        +
      • 1: Term of Sort String (string \(s\))

      • +
      • 2: Term of Sort RegLan (regular expression \(r\))

      • +
      • 3: Term of Sort Int (index \(i\))

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +STRING_IN_REGEXP
    +

    String membership.

    +
      +
    • Arity: 2

      +
        +
      • 1: Term of Sort String

      • +
      • 2: Term of Sort RegLan

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +STRING_IS_DIGIT
    +

    String is-digit.

    +

    Returns true if given string is a digit (it is one of "0", …, +"9").

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of Sort String

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +STRING_LENGTH
    +

    String length.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of Sort String

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +STRING_LEQ
    +

    String less than or equal.

    +

    Returns true if string \(s_1\) is less than or equal to \(s_2\) +based on a lexiographic ordering over code points.

    +
      +
    • Arity: 2

      +
        +
      • 1: Term of Sort String (\(s_1\))

      • +
      • 2: Term of Sort String (\(s_2\))

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +STRING_LT
    +

    String less than.

    +

    Returns true if string \(s_1\) is (strictly) less than \(s_2\) +based on a lexiographic ordering over code points.

    +
      +
    • Arity: 2

      +
        +
      • 1: Term of Sort String (\(s_1\))

      • +
      • 2: Term of Sort String (\(s_2\))

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +STRING_PREFIX
    +

    String prefix-of.

    +

    Determines whether a string \(s_1\) is a prefix of string \(s_2\). +If string s1 is empty, this operator returns true.

    +
      +
    • Arity: 2

      +
        +
      • 1: Term of Sort String (\(s_1\))

      • +
      • 2: Term of Sort String (\(s_2\))

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +STRING_REPLACE
    +

    String replace.

    +

    Replaces a string \(s_2\) in a string \(s_1\) with string +\(s_3\). If \(s_2\) does not appear in \(s_1\), \(s_1\) is +returned unmodified.

    +
      +
    • Arity: 3

      +
        +
      • 1: Term of Sort String (string \(s_1\))

      • +
      • 2: Term of Sort String (string \(s_2\))

      • +
      • 3: Term of Sort String (string \(s_3\))

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +STRING_REPLACE_ALL
    +

    String replace all.

    +

    Replaces all occurrences of a string \(s_2\) in a string \(s_1\) +with string \(s_3\). If \(s_2\) does not appear in \(s_1\), +\(s_1\) is returned unmodified.

    +
      +
    • Arity: 3

      +
        +
      • 1: Term of Sort String (\(s_1\))

      • +
      • 2: Term of Sort String (\(s_2\))

      • +
      • 3: Term of Sort String (\(s_3\))

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +STRING_REPLACE_RE
    +

    String replace regular expression match.

    +

    Replaces the first match of a regular expression \(r\) in +string \(s_1\) with string \(s_2\). If \(r\) does not match a +substring of \(s_1\), \(s_1\) is returned unmodified.

    +
      +
    • Arity: 3

      +
        +
      • 1: Term of Sort String (\(s_1\))

      • +
      • 2: Term of Sort RegLan

      • +
      • 3: Term of Sort String (\(s_2\))

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +STRING_REPLACE_RE_ALL
    +

    String replace all regular expression matches.

    +

    Replaces all matches of a regular expression \(r\) in string +\(s_1\) with string \(s_2\). If \(r\) does not match a +substring of \(s_1\), string \(s_1\) is returned unmodified.

    +
      +
    • Arity: 3

      +
        +
      • 1: Term of Sort String (\(s_1\))

      • +
      • 2: Term of Sort RegLan

      • +
      • 3: Term of Sort String (\(s_2\))

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +STRING_REV
    +

    String reverse.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of Sort String

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +STRING_SUBSTR
    +

    String substring.

    +

    Extracts a substring, starting at index \(i\) and of length \(l\), +from a string \(s\). If the start index is negative, the start index +is greater than the length of the string, or the length is negative, the +result is the empty string.

    +
      +
    • Arity: 3

      +
        +
      • 1: Term of Sort String

      • +
      • 2: Term of Sort Int (index \(i\))

      • +
      • 3: Term of Sort Int (length \(l\))

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +STRING_SUFFIX
    +

    String suffix-of.

    +

    Determines whether a string \(s_1\) is a suffix of the second string. +If string \(s_1\) is empty, this operator returns true.

    +
      +
    • Arity: 2

      +
        +
      • 1: Term of Sort String (\(s_1\))

      • +
      • 2: Term of Sort String (\(s_2\))

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +STRING_TO_CODE
    +

    String to code.

    +

    Returns the code point of a string if it has length one, or returns -1 +otherwise.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of Sort String

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +STRING_TO_INT
    +

    String to integer (total function).

    +

    If the string does not contain an integer or the integer is negative, the +operator returns -1.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of Sort Int

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +STRING_TO_LOWER
    +

    String to lower case.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of Sort String

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +STRING_TO_REGEXP
    +

    Conversion from string to regexp.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of Sort String

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +STRING_TO_UPPER
    +

    String to upper case.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of Sort String

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +STRING_UPDATE
    +

    String update.

    +

    Updates a string \(s\) by replacing its context starting at an index +with string \(t\). If the start index is negative, the start index is +greater than the length of the string, the result is \(s\). Otherwise, +the length of the original string is preserved.

    +
      +
    • Arity: 3

      +
        +
      • 1: Term of Sort String

      • +
      • 2: Term of Sort Int (index \(i\))

      • +
      • 3: Term of Sort Strong (replacement string \(t\))

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +SUB
    +

    Arithmetic subtraction, left associative.

    +
      +
    • Arity: n > 1

      +
        +
      • 1..n: Terms of Sort Int or Real (sorts must match)

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +TABLE_AGGREGATE
    +

    Table aggregate operator has the form +\(((\_ \; table.aggr \; n_1 ... n_k) \; f \; i \; A)\) +where \(n_1, ..., n_k\) are natural numbers, +\(f\) is a function of type +\((\rightarrow (Tuple \; T_1 \; ... \; T_j)\; T \; T)\), +\(i\) has the type \(T\), +and \(A\) has type \((Table \; T_1 \; ... \; T_j)\). +The returned type is \((Bag \; T)\).

    +

    This operator aggregates elements in A that have the same tuple projection +with indices n_1, …, n_k using the combining function \(f\), +and initial value \(i\).

    +
      +
    • Arity: 3

      +
        +
      • 1: Term of sort \((\rightarrow (Tuple \; T_1 \; ... \; T_j)\; T \; T)\)

      • +
      • 2: Term of Sort \(T\)

      • +
      • 3: Term of table sort \(Table T_1 ... T_j\)

      • +
      +
    • +
    • Indices: n +- 1..n: Indices of the projection

    • +
    • Create Term of this Kind with: +- Solver.mkTerm()

    • +
    • Create Op of this kind with: +- Solver.mkOp()

    • +
    +
    +

    Warning

    +

    This kind is experimental and may be changed or removed in +future versions.

    +
    +
    + +
    +
    +TABLE_GROUP
    +

    Table group

    +

    \(((\_ \; table.group \; n_1 \; \dots \; n_k) \; A)\) partitions tuples +of table \(A\) such that tuples that have the same projection +with indices \(n_1 \; \dots \; n_k\) are in the same part. +It returns a bag of tables of type \((Bag \; T)\) where +\(T\) is the type of \(A\).

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of table sort

      • +
      +
    • +
    • Indices: n

      +
        +
      • 1..n: Indices of the projection

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    +
    +

    Warning

    +

    This kind is experimental and may be changed or removed in +future versions.

    +
    +
    + +
    +
    +TABLE_JOIN
    +
    +
    Table join operator has the form

    \(((\_ \; table.join \; m_1 \; n_1 \; \dots \; m_k \; n_k) \; A \; B)\) +where \(m_1 \; n_1 \; \dots \; m_k \; n_k\) are natural numbers, +and \(A, B\) are tables. +This operator filters the product of two bags based on the equality of +projected tuples using indices \(m_1, \dots, m_k\) in table \(A\), +and indices \(n_1, \dots, n_k\) in table \(B\).

    +
    +
    +
      +
    • Arity: 2

      +
        +
      • 1: Term of table Sort

      • +
      • 2: Term of table Sort

      • +
      +
    • +
    • Indices: n +- 1..n: Indices of the projection

    • +
    • Create Term of this Kind with: +- Solver.mkTerm()

    • +
    • Create Op of this kind with: +- Solver.mkOp()

    • +
    +
    +

    Warning

    +

    This kind is experimental and may be changed or removed in +future versions.

    +
    +
    + +
    +
    +TABLE_PRODUCT
    +

    Table cross product.

    +
      +
    • Arity: 2

      +
        +
      • 1..2: Terms of table Sort

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    +

    Warning

    +

    This kind is experimental and may be changed or removed in +future versions.

    +
    +
    + +
    +
    +TABLE_PROJECT
    +

    Table projection operator extends tuple projection operator to tables.

    +
      +
    • Arity: 1 +- 1: Term of table Sort

    • +
    • Indices: n +- 1..n: Indices of the projection

    • +
    • Create Term of this Kind with: +- Solver.mkTerm()

    • +
    • Create Op of this kind with: +- Solver.mkOp()

    • +
    +
    +

    Warning

    +

    This kind is experimental and may be changed or removed in +future versions.

    +
    +
    + +
    +
    +TANGENT
    +

    Tangent function.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of Sort Real

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +TO_INTEGER
    +

    Convert Term of sort Int or Real to Int via the floor function.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of Sort Int or Real

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +TO_REAL
    +

    Convert Term of Sort Int or Real to Real.

    +
      +
    • Arity: 1

      +
        +
      • 1: Term of Sort Int or Real

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +TUPLE_PROJECT
    +

    Tuple projection.

    +

    This operator takes a tuple as an argument and returns a tuple obtained by +concatenating components of its argument at the provided indices.

    +

    For example,

    +
    ((_ tuple.project 1 2 2 3 1) (tuple 10 20 30 40))
    +
    +
    +

    yields

    +
    (tuple 20 30 30 40 20)
    +
    +
    +
      +
    • Arity: 1

      +
        +
      • 1: Term of tuple Sort

      • +
      +
    • +
    • Indices: n

      +
        +
      • 1..n: The tuple indices to project

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    +
    +UNDEFINED_KIND
    +

    Undefined kind.

    +
    +

    Note

    +

    Should never be exposed or created via the API.

    +
    +
    + +
    +
    +UNINTERPRETED_SORT_VALUE
    +

    The value of an uninterpreted constant.

    +
    +

    Note

    +

    May be returned as the result of an API call, but terms of this +kind may not be created explicitly via the API and may not +appear in assertions.

    +
    +
    + +
    +
    +VARIABLE
    +

    (Bound) variable.

    + +
    +

    Note

    +

    Only permitted in bindings and in lambda and quantifier bodies.

    +
    +
    + +
    +
    +VARIABLE_LIST
    +

    Variable list.

    +

    A list of variables (used to bind variables under a quantifier)

    + +
    + +
    +
    +WITNESS
    +

    Witness.

    +

    The syntax of a witness term is similar to a quantified formula except that +only one variable is allowed. +For example, the term

    +
    (witness ((x S)) F)
    +
    +
    +

    returns an element \(x\) of Sort \(S\) and asserts formula +\(F\).

    +

    The witness operator behaves like the description operator +(see https: +no \(x\) that satisfies \(F\). But if such \(x\) exists, the +witness operator does not enforce the following axiom which ensures +uniqueness up to logical equivalence:

    +
    +\[\forall x. F \equiv G \Rightarrow witness~x. F = witness~x. G\]
    +

    For example, if there are two elements of Sort \(S\) that satisfy +formula \(F\), then the following formula is satisfiable:

    +
    (distinct
    +   (witness ((x Int)) F)
    +   (witness ((x Int)) F))
    +
    +
    + +
    +

    Note

    +

    This kind is primarily used internally, but may be returned in +models (e.g., for arithmetic terms in non-linear queries). However, +it is not supported by the parser. Moreover, the user of the API +should be cautious when using this operator. In general, all witness +terms (witness ((x Int)) F) should be such that (exists ((x Int)) +F) is a valid formula. If this is not the case, then the semantics +in formulas that use witness terms may be unintuitive. For example, +the following formula is unsatisfiable: +(or (= (witness ((x Int)) false) 0) (not (= (witness ((x Int)) +false) 0)), whereas notice that (or (= z 0) (not (= z 0))) is +true for any \(z\).

    +
    +
    + +
    +
    +XOR
    +

    Logical exclusive disjunction, left associative.

    +
      +
    • Arity: n > 1

      +
        +
      • 1..n: Terms of Sort Bool

      • +
      +
    • +
    • Create Term of this Kind with:

      + +
    • +
    • Create Op of this kind with:

      + +
    • +
    +
    + +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/modes.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/modes.html new file mode 100644 index 0000000000..4e891f4bc1 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/modes.html @@ -0,0 +1,368 @@ + + + + + + + + + + + + + Modes — cvc5 documentation + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    +
      +
    • + +
    • +
    • +
    +
    +
    +
    +
    + +
    +

    Modes

    +

    Some API functions require a configuration mode argument, e.g., +cvc5.Solver.blockModel(). +The following enums define such configuration modes.

    +
    +
    +
    +class cvc5.BlockModelsMode(value)
    +

    The BlockModelsMode enum

    +
    +
    +LITERALS
    +

    Block models based on the SAT skeleton.

    +
    + +
    +
    +VALUES
    +

    Block models based on the concrete model values for the free variables.

    +
    + +
    + +
    +
    +
    +class cvc5.LearnedLitType(value)
    +

    The LearnedLitType enum

    +
    +
    +CONSTANT_PROP
    +

    An internal literal that can be made into a constant propagation for an +input term.

    +

    In particular, literals in this category are of the form (= t c) where +c is a constant, the preprocessed set of input formulas contains the +term t, but not the literal (= t c).

    +
    + +
    +
    +INPUT
    +

    A literal from the preprocessed set of input formulas that does not +occur at top-level after preprocessing.

    +

    Typically), this is the most interesting category of literals to learn.

    +
    + +
    +
    +INTERNAL
    +

    Any internal literal that does not fall into the above categories.

    +
    + +
    +
    +PREPROCESS
    +

    A top-level literal (unit clause) from the preprocessed set of input +formulas.

    +
    + +
    +
    +PREPROCESS_SOLVED
    +

    An equality that was turned into a substitution during preprocessing.

    +

    In particular, literals in this category are of the form (= x t) where +x does not occur in t.

    +
    + +
    +
    +SOLVABLE
    +

    An internal literal that is solvable for an input variable.

    +

    In particular, literals in this category are of the form (= x t) where +x does not occur in t, the preprocessed set of input formulas contains the +term x, but not the literal (= x t).

    +

    Note that solvable literals can be turned into substitutions during +preprocessing.

    +
    + +
    +
    +UNKNOWN
    +

    Special case for when produce-learned-literals is not set.

    +
    + +
    + +
    +
    +
    +class cvc5.ProofComponent(value)
    +

    The ProofComponent enum

    +
    +
    +FULL
    +

    A proof of false whose free assumptions are a subset of the input formulas +F1), … Fm.

    +

    Only valid immediately after an unsat response.

    +
    + +
    +
    +PREPROCESS
    +

    Proofs of Gu1 … Gun whose free assumptions are Fu1, … Fum, +where: +- Gu1, … Gun are clauses corresponding to input formulas used in the SAT +proof, +- Fu1, … Fum is the subset of the input formulas that are used in the SAT +proof (i.e. the unsat core).

    +

    Note that Gu1 … Gun are clauses that are added to the SAT solver before +its main search.

    +

    Only valid immediately after an unsat response.

    +
    + +
    +
    +RAW_PREPROCESS
    +

    Proofs of G1 … Gn whose free assumptions are a subset of +F1, … Fm, where: +- G1, … Gn are the preprocessed input formulas, +- F1, … Fm are the input formulas.

    +

    Note that G1 … Gn may be arbitrary formulas, not necessarily clauses.

    +
    + +
    +
    +SAT
    +

    A proof of false whose free assumptions are Gu1, … Gun, L1 … Lk, +where: +- Gu1, … Gun, is a set of clauses corresponding to input formulas, +- L1, …, Lk is a set of clauses corresponding to theory lemmas.

    +

    Only valid immediately after an unsat response.

    +
    + +
    +
    +THEORY_LEMMAS
    +

    Proofs of L1 … Lk where: +- L1, …, Lk are clauses corresponding to theory lemmas used in the SAT +proof.

    +

    In contrast to proofs given for preprocess, L1 … Lk are clauses that are +added to the SAT solver after its main search.

    +

    Only valid immediately after an unsat response.

    +
    + +
    + +
    +
    +
    +class cvc5.ProofFormat(value)
    +

    The ProofFormat enum

    +
    +
    +ALETHE
    +

    Output Alethe proof.

    +
    + +
    +
    +CPC
    +

    Output Cooperating Proof Calculus proof based on Eunoia signatures.

    +
    + +
    +
    +DEFAULT
    +

    Use the proof format mode set in the solver options.

    +
    + +
    +
    +DOT
    +

    Output DOT proof.

    +
    + +
    +
    +LFSC
    +

    Output LFSC proof.

    +
    + +
    +
    +NONE
    +

    Do not translate proof output.

    +
    + +
    + +
    +
    +
    +class cvc5.FindSynthTarget(value)
    +

    The FindSynthTarget enum

    +
    +
    +ENUM
    +

    Find the next term in the enumeration of the target grammar.

    +
    + +
    +
    +QUERY
    +

    Find a query over the given grammar. If the given grammar generates terms +that are not Boolean, we consider equalities over terms from the given +grammar.

    +

    The algorithm for determining which queries to generate is configured by +–sygus-query-gen=MODE. Queries that are internally solved can be +filtered by the option –sygus-query-gen-filter-solved.

    +
    + +
    +
    +REWRITE
    +

    Find a pair of terms (t,s) in the target grammar which are equivalent +but do not rewrite to the same term in the given rewriter +(–sygus-rewrite=MODE). If so, the equality (= t s) is returned by +findSynth.

    +

    This can be used to synthesize rewrite rules. Note if the rewriter is set +to none (–sygus-rewrite=none), this indicates a possible rewrite when +implementing a rewriter from scratch.

    +
    + +
    +
    +REWRITE_INPUT
    +

    Find a rewrite between pairs of terms (t,s) that are matchable with terms +in the input assertions where t and s are equivalent but do not rewrite +to the same term in the given rewriter (–sygus-rewrite=MODE).

    +

    This can be used to synthesize rewrite rules that apply to the current +problem.

    +
    + +
    +
    +REWRITE_UNSOUND
    +

    Find a term t in the target grammar which rewrites to a term s that is +not equivalent to it. If so, the equality (= t s) is returned by +findSynth.

    +

    This can be used to test the correctness of the given rewriter. Any +returned rewrite indicates an unsoundness in the given rewriter.

    +
    + +
    + +
    + + +
    +
    +
    + +
    + +
    +

    © Copyright 2024, the authors of cvc5.

    +
    + + Built with Sphinx using a + theme + provided by Read the Docs. + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/op.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/op.html new file mode 100644 index 0000000000..f8ca5b169a --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/op.html @@ -0,0 +1,254 @@ + + + + + + + + + + + + + Op — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Op

    +

    This class encapsulates a cvc5 operator. A cvc5.Op is a term that +represents an operator, instantiated with the parameters it requires (if any).

    +

    A cvc5.Term of operator kind that does not require additional +parameters, e.g., cvc5.Kind.ADD, is usually constructed via +cvc5.Solver.mkTerm(Kind kind, const std.vector<Term>& children). +Alternatively, any cvc5.Term can be constructed via first +instantiating a corresponding cvc5.Op, even if the operator does +not require additional parameters. +Terms with operators that require additional parameters, e.g., +cvc5.Kind.BITVECTOR_EXTRACT, must be created via +cvc5.TermManager.mkOp() and cvc5.TermManager.mkTerm().

    +
    +
    +
    +class cvc5.Op
    +

    A cvc5 operator.

    +

    An operator is a term that represents certain operators, +instantiated with its required parameters, e.g., +a term of kind +BITVECTOR_EXTRACT.

    +

    Wrapper class for cvc5::Op.

    +
    +
    +__getitem__()
    +

    Get the index at position i.

    +
    +
    Parameters:
    +

    i – The position of the index to return.

    +
    +
    Returns:
    +

    The index at position i.

    +
    +
    +
    + +
    +
    +getKind()
    +
    +
    Returns:
    +

    The kind of this operator.

    +
    +
    +
    + +
    +
    +getNumIndices()
    +
    +
    Returns:
    +

    The number of indices of this op.

    +
    +
    +
    + +
    +
    +isIndexed()
    +
    +
    Returns:
    +

    True iff this operator is indexed.

    +
    +
    +
    + +
    +
    +isNull()
    +
    +
    Returns:
    +

    True iff this operator is a null term.

    +
    +
    +
    + +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/plugin.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/plugin.html new file mode 100644 index 0000000000..7814c79e08 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/plugin.html @@ -0,0 +1,240 @@ + + + + + + + + + + + + + Plugin — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Plugin

    +

    This class encapsulates a user-specified solver plugin. +It is configured via cvc5.Solver.addPlugin().

    +
    +
    +
    +class Plugin
    +

    A cvc5 plugin.

    +
    +

    Public Functions

    +
    +
    +Plugin(TermManager &tm)
    +
    + +
    +
    +virtual ~Plugin() = default
    +
    + +
    +
    +virtual std::vector<Term> check()
    +

    Call to check, return vector of lemmas to add to the SAT solver. This method is called periodically, roughly at every SAT decision.

    +
    +
    Returns:
    +

    The vector of lemmas to add to the SAT solver.

    +
    +
    +
    + +
    +
    +virtual void notifySatClause(const Term &clause)
    +

    Notify SAT clause, called when clause is learned by the SAT solver.

    +
    +
    Parameters:
    +

    clause – The learned clause.

    +
    +
    +
    + +
    +
    +virtual void notifyTheoryLemma(const Term &lemma)
    +

    Notify theory lemma, called when lemma is sent by a theory solver.

    +
    +
    Parameters:
    +

    lemma – The theory lemma.

    +
    +
    +
    + +
    +
    +virtual std::string getName() = 0
    +

    Get the name of the plugin (for debugging).

    +
    +
    Returns:
    +

    The name of the plugin.

    +
    +
    +
    + +
    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/proof.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/proof.html new file mode 100644 index 0000000000..f687ebfdb7 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/proof.html @@ -0,0 +1,243 @@ + + + + + + + + + + + + + Proof — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Proof

    +

    This class encapsulates a cvc5 proof object, which can be retrieved via +function cvc5.Solver.getProof() after a +cvc5.Solver.checkSat() query returns an unsat result.

    +
    +
    +
    +class cvc5.Proof
    +

    A cvc5 proof. Proofs are trees and every proof object corresponds to the +root step of a proof. The branches of the root step are the premises of +the step.

    +

    Wrapper class for cvc5::Proof.

    +
    +
    +getArguments()
    +
    +
    Returns:
    +

    The arguments of the root step of the proof as a vector of terms. +Some of those terms might be strings.

    +
    +
    +
    + +
    +
    +getChildren()
    +
    +
    Returns:
    +

    The premises of the root step of the proof.

    +
    +
    +
    + +
    +
    +getResult()
    +
    +
    Returns:
    +

    The conclusion of the root step of the proof.

    +
    +
    +
    + +
    +
    +getRewriteRule()
    +
    +
    Returns:
    +

    The proof rewrite rule used by the root step of the proof. +Raises an exception if getRule() does not return +DSL_REWRITE or THEORY_REWRITE.

    +
    +
    +
    + +
    +
    +getRule()
    +
    +
    Returns:
    +

    The proof rule used by the root step of the proof.

    +
    +
    +
    + +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/proofrule.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/proofrule.html new file mode 100644 index 0000000000..77dc7ced97 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/proofrule.html @@ -0,0 +1,6300 @@ + + + + + + + + + + + + + ProofRule and ProofRewriteRule — cvc5 documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    ProofRule and ProofRewriteRule

    +

    Enum ProofRule captures the reasoning steps +performed by the SAT solver, the theory solvers and the preprocessor. It +represents the inference rules used to derive conclusions within a proof.

    +

    Enum ProofRewriteRule pertains to +rewrites performed on terms. These identifiers are arguments of the proof rules +THEORY_REWRITE and +DSL_REWRITE.

    +
    +
    +
    +class cvc5.ProofRule(value)
    +

    The ProofRule enum

    +
    +
    +ACI_NORM
    +

    verbatim embed:rst:leading-asterisk +Builtin theory – associative/commutative/idempotency/identity normalization

    +
    +\[\inferrule{- \mid t = s}{t = s}\]
    +

    where \(\texttt{expr::isACNorm(t, s)} = \top\). For details, see +expr/nary_term_util.h. +This method normalizes currently based on two kinds of operators: +(1) those that are associative, commutative, idempotent, and have an +identity element (examples are or, and, bvand), +(2) those that are associative and have an identity element (examples +are str.++, re.++). +endverbatim

    +
    + +
    +
    +ALETHE_RULE
    +

    verbatim embed:rst:leading-asterisk +External – Alethe

    +

    Place holder for Alethe rules.

    +
    +\[\inferrule{P_1, \dots, P_n\mid \texttt{id}, Q, Q', A_1,\dots, A_m}{Q}\]
    +

    Note that the premises and arguments are arbitrary. It’s expected that +\(\texttt{id}\) refer to a proof rule in the external Alethe calculus, +and that \(Q'\) be the representation of Q to be printed by the Alethe +printer. +endverbatim

    +
    + +
    +
    +ALPHA_EQUIV
    +

    verbatim embed:rst:leading-asterisk +Quantifiers – Alpha equivalence

    +
    +\[\inferruleSC{-\mid F, (y_1 \ldots y_n), (z_1,\dots, z_n)} +{F = F\{y_1\mapsto z_1,\dots,y_n\mapsto z_n\}} +{if $y_1,\dots,y_n, z_1,\dots,z_n$ are unique bound variables}\]
    +

    Notice that this rule is correct only when \(z_1,\dots,z_n\) are not +contained in \(FV(F) \setminus \{ y_1,\dots, y_n \}\), where +\(FV(\varphi)\) are the free variables of \(\varphi\). The internal +quantifiers proof checker does not currently check that this is the case. +endverbatim

    +
    + +
    +
    +AND_ELIM
    +

    verbatim embed:rst:leading-asterisk +Boolean – And elimination

    +
    +\[\inferrule{(F_1 \land \dots \land F_n) \mid i}{F_i}\]
    +

    endverbatim

    +
    + +
    +
    +AND_INTRO
    +

    verbatim embed:rst:leading-asterisk +Boolean – And introduction

    +
    +\[\inferrule{F_1 \dots F_n \mid -}{(F_1 \land \dots \land F_n)}\]
    +

    endverbatim

    +
    + +
    +
    +ARITH_MULT_ABS_COMPARISON
    +

    verbatim embed:rst:leading-asterisk +Arithmetic – Non-linear multiply absolute value comparison

    +
    +\[\inferrule{F_1 \dots F_n \mid -}{F}\]
    +

    where \(F\) is of the form +\(\left| t_1 \cdot t_n \right| \diamond \left| s_1 \cdot s_n \right|\). +If \(\diamond\) is \(=\), then each \(F_i\) is +\(\left| t_i \right| = \left| s_i \right|\).

    +

    If \(\diamond\) is \(>\), then +each \(F_i\) is either \(\left| t_i \right| > \left| s_i \right|\) or +\(\left| t_i \right| = \left| s_i \right| \land \left| t_i \right| \neq 0\), +and \(F_1\) is of the former form.

    +

    endverbatim

    +
    + +
    +
    +ARITH_MULT_NEG
    +

    verbatim embed:rst:leading-asterisk +Arithmetic – Multiplication with negative factor

    +
    +\[\inferrule{- \mid m, l \diamond r}{(m < 0 \land l \diamond r) \rightarrow m \cdot l \diamond_{inv} m \cdot r}\]
    +

    where \(\diamond\) is a relation symbol and \(\diamond_{inv}\) the +inverted relation symbol. +endverbatim

    +
    + +
    +
    +ARITH_MULT_POS
    +

    verbatim embed:rst:leading-asterisk +Arithmetic – Multiplication with positive factor

    +
    +\[\inferrule{- \mid m, l \diamond r}{(m > 0 \land l \diamond r) \rightarrow m \cdot l \diamond m \cdot r}\]
    +

    where \(\diamond\) is a relation symbol. +endverbatim

    +
    + +
    +
    +ARITH_MULT_SIGN
    +

    verbatim embed:rst:leading-asterisk +Arithmetic – Sign inference

    +
    +\[\inferrule{- \mid f_1 \dots f_k, m}{(f_1 \land \dots \land f_k) \rightarrow m \diamond 0}\]
    +

    where \(f_1 \dots f_k\) are variables compared to zero (less, greater +or not equal), \(m\) is a monomial from these variables and +\(\diamond\) is the comparison (less or equal) that results from the +signs of the variables. All variables with even exponent in \(m\) +should be given as not equal to zero while all variables with odd exponent +in \(m\) should be given as less or greater than zero. +endverbatim

    +
    + +
    +
    +ARITH_MULT_TANGENT
    +

    verbatim embed:rst:leading-asterisk +Arithmetic – Multiplication tangent plane

    +
    +\[ \begin{align}\begin{aligned}\inferruleSC{- \mid x, y, a, b, \sigma}{(t \leq tplane) = ((x \leq a \land y \geq b) \lor (x \geq a \land y \leq b))}{if $\sigma = \bot$}\\\inferruleSC{- \mid x, y, a, b, \sigma}{(t \geq tplane) = ((x \leq a \land y \leq b) \lor (x \geq a \land y \geq b))}{if $\sigma = \top$}\end{aligned}\end{align} \]
    +

    where \(x,y\) are real terms (variables or extended terms), +\(t = x \cdot y\), \(a,b\) are real +constants, \(\sigma \in \{ \top, \bot\}\) and \(tplane := b \cdot x + a \cdot y - a \cdot b\) is the tangent plane of \(x \cdot y\) at \((a,b)\). +endverbatim

    +
    + +
    +
    +ARITH_POLY_NORM
    +

    verbatim embed:rst:leading-asterisk +Arithmetic – Polynomial normalization

    +
    +\[\inferrule{- \mid t = s}{t = s}\]
    +

    where \(\texttt{arith::PolyNorm::isArithPolyNorm(t, s)} = \top\). This +method normalizes polynomials \(s\) and \(t\) over arithmetic or +bitvectors. +endverbatim

    +
    + +
    +
    +ARITH_POLY_NORM_REL
    +

    verbatim embed:rst:leading-asterisk +Arithmetic – Polynomial normalization for relations

    +
    +\[\inferrule{c_x \cdot (x_1 - x_2) = c_y \cdot (y_1 - y_2) \mid \diamond} + {(x_1 \diamond x_2) = (y_1 \diamond y_2)}\]
    +

    where \(\diamond \in \{<, \leq, =, \geq, >\}\) for arithmetic and +\(\diamond \in \{=\}\) for bitvectors. \(c_x\) and \(c_y\) are +scaling factors. For \(<, \leq, \geq, >\), the scaling factors have the +same sign. For bitvectors, they are set to \(1\).

    +

    If \(c_x\) has type \(Real\) and \(x_1, x_2\) are of type +\(Int\), then \((x_1 - x_2)\) is wrapped in an application of +to_real, similarly for \((y_1 - y_2)\). +endverbatim

    +
    + +
    +
    +ARITH_REDUCTION
    +

    verbatim embed:rst:leading-asterisk +Arithmetic – Reduction

    +
    +\[\inferrule{- \mid t}{F}\]
    +

    where \(t\) is an application of an extended arithmetic operator (e.g. +division, modulus, cosine, sqrt, is_int, to_int) and \(F\) is the +reduction predicate for \(t\). In other words, \(F\) is a +predicate that is used to reduce reasoning about \(t\) to reasoning +about the core operators of arithmetic.

    +

    In detail, \(F\) is implemented by +\(\texttt{arith::OperatorElim::getAxiomFor(t)}\), see +theory/arith/operator_elim.h. +endverbatim

    +
    + +
    +
    +ARITH_SUM_UB
    +

    verbatim embed:rst:leading-asterisk +Arithmetic – Sum upper bounds

    +
    +\[\inferrule{P_1 \dots P_n \mid -}{L \diamond R}\]
    +

    where \(P_i\) has the form \(L_i \diamond_i R_i\) and +\(\diamond_i \in \{<, \leq, =\}\). Furthermore \(\diamond = <\) if +\(\diamond_i = <\) for any \(i\) and \(\diamond = \leq\) +otherwise, \(L = L_1 + \cdots + L_n\) and \(R = R_1 + \cdots + R_n\). +endverbatim

    +
    + +
    +
    +ARITH_TRANS_EXP_APPROX_ABOVE_NEG
    +

    verbatim embed:rst:leading-asterisk +Arithmetic – Transcendentals – Exp is approximated from above for +negative values

    +
    +\[\inferrule{- \mid d,t,l,u}{(t \geq l \land t \leq u) \rightarrow exp(t) +\leq \texttt{secant}(\exp, l, u, t)}\]
    +

    where \(d\) is an even positive number, \(t\) an arithmetic term +and \(l,u\) are lower and upper bounds on \(t\). Let \(p\) be +the \(d\)’th taylor polynomial at zero (also called the Maclaurin +series) of the exponential function. \(\texttt{secant}(\exp, l, u, t)\) +denotes the secant of \(p\) from \((l, \exp(l))\) to \((u, +\exp(u))\) evaluated at \(t\), calculated as follows:

    +
    +\[\frac{p(l) - p(u)}{l - u} \cdot (t - l) + p(l)\]
    +

    The lemma states that if \(t\) is between \(l\) and \(u\), then +\(\exp(t\) is below the secant of \(p\) from \(l\) to +\(u\). endverbatim

    +
    + +
    +
    +ARITH_TRANS_EXP_APPROX_ABOVE_POS
    +

    verbatim embed:rst:leading-asterisk +Arithmetic – Transcendentals – Exp is approximated from above for +positive values

    +
    +\[\inferrule{- \mid d,t,l,u}{(t \geq l \land t \leq u) \rightarrow exp(t) +\leq \texttt{secant-pos}(\exp, l, u, t)}\]
    +

    where \(d\) is an even positive number, \(t\) an arithmetic term +and \(l,u\) are lower and upper bounds on \(t\). Let \(p^*\) be +a modification of the \(d\)’th taylor polynomial at zero (also called +the Maclaurin series) of the exponential function as follows where +\(p(d-1)\) is the regular Maclaurin series of degree \(d-1\):

    +
    +\[p^* := p(d-1) \cdot \frac{1 + t^n}{n!}\]
    +

    \(\texttt{secant-pos}(\exp, l, u, t)\) denotes the secant of \(p\) +from \((l, \exp(l))\) to \((u, \exp(u))\) evaluated at \(t\), +calculated as follows:

    +
    +\[\frac{p(l) - p(u)}{l - u} \cdot (t - l) + p(l)\]
    +

    The lemma states that if \(t\) is between \(l\) and \(u\), then +\(\exp(t\) is below the secant of \(p\) from \(l\) to +\(u\). endverbatim

    +
    + +
    +
    +ARITH_TRANS_EXP_APPROX_BELOW
    +

    verbatim embed:rst:leading-asterisk +Arithmetic – Transcendentals – Exp is approximated from below

    +
    +\[\inferrule{- \mid d,c,t}{t \geq c \rightarrow exp(t) \geq \texttt{maclaurin}(\exp, d, c)}\]
    +

    where \(d\) is an odd positive number, \(t\) an arithmetic term and +\(\texttt{maclaurin}(\exp, d, c)\) is the \(d\)’th taylor +polynomial at zero (also called the Maclaurin series) of the exponential +function evaluated at \(c\). The Maclaurin series for the exponential +function is the following:

    +
    +\[\exp(x) = \sum_{n=0}^{\infty} \frac{x^n}{n!}\]
    +

    endverbatim

    +
    + +
    +
    +ARITH_TRANS_EXP_NEG
    +

    verbatim embed:rst:leading-asterisk +Arithmetic – Transcendentals – Exp at negative values

    +
    +\[\inferrule{- \mid t}{(t < 0) \leftrightarrow (\exp(t) < 1)}\]
    +

    endverbatim

    +
    + +
    +
    +ARITH_TRANS_EXP_POSITIVITY
    +

    verbatim embed:rst:leading-asterisk +Arithmetic – Transcendentals – Exp is always positive

    +
    +\[\inferrule{- \mid t}{\exp(t) > 0}\]
    +

    endverbatim

    +
    + +
    +
    +ARITH_TRANS_EXP_SUPER_LIN
    +

    verbatim embed:rst:leading-asterisk +Arithmetic – Transcendentals – Exp grows super-linearly for positive +values

    +
    +\[\inferrule{- \mid t}{t \leq 0 \lor \exp(t) > t+1}\]
    +

    endverbatim

    +
    + +
    +
    +ARITH_TRANS_EXP_ZERO
    +

    verbatim embed:rst:leading-asterisk +Arithmetic – Transcendentals – Exp at zero

    +
    +\[\inferrule{- \mid t}{(t=0) \leftrightarrow (\exp(t) = 1)}\]
    +

    endverbatim

    +
    + +
    +
    +ARITH_TRANS_PI
    +

    verbatim embed:rst:leading-asterisk +Arithmetic – Transcendentals – Assert bounds on Pi

    +
    +\[\inferrule{- \mid l, u}{\texttt{real.pi} \geq l \land \texttt{real.pi} +\leq u}\]
    +

    where \(l,u\) are valid lower and upper bounds on \(\pi\). +endverbatim

    +
    + +
    +
    +ARITH_TRANS_SINE_APPROX_ABOVE_NEG
    +

    verbatim embed:rst:leading-asterisk +Arithmetic – Transcendentals – Sine is approximated from above for +negative values

    +
    +\[\inferrule{- \mid d,t,lb,ub,l,u}{(t \geq lb land t \leq ub) \rightarrow +\sin(t) \leq \texttt{secant}(\sin, l, u, t)}\]
    +

    where \(d\) is an even positive number, \(t\) an arithmetic term, +\(lb,ub\) are symbolic lower and upper bounds on \(t\) (possibly +containing \(\pi\)) and \(l,u\) the evaluated lower and upper +bounds on \(t\). Let \(p\) be the \(d\)’th taylor polynomial at +zero (also called the Maclaurin series) of the sine function. +\(\texttt{secant}(\sin, l, u, t)\) denotes the secant of \(p\) from +\((l, \sin(l))\) to \((u, \sin(u))\) evaluated at \(t\), +calculated as follows:

    +
    +\[\frac{p(l) - p(u)}{l - u} \cdot (t - l) + p(l)\]
    +

    The lemma states that if \(t\) is between \(l\) and \(u\), then +\(\sin(t)\) is below the secant of \(p\) from \(l\) to +\(u\). endverbatim

    +
    + +
    +
    +ARITH_TRANS_SINE_APPROX_ABOVE_POS
    +

    verbatim embed:rst:leading-asterisk +Arithmetic – Transcendentals – Sine is approximated from above for +positive values

    +
    +\[\inferrule{- \mid d,t,c,lb,ub}{(t \geq lb land t \leq ub) \rightarrow +\sin(t) \leq \texttt{upper}(\sin, c)}\]
    +

    where \(d\) is an even positive number, \(t\) an arithmetic term, +\(c\) an arithmetic constant and \(lb,ub\) are symbolic lower and +upper bounds on \(t\) (possibly containing \(\pi\)). Let \(p\) +be the \(d\)’th taylor polynomial at zero (also called the Maclaurin +series) of the sine function. \(\texttt{upper}(\sin, c)\) denotes the +upper bound on \(\sin(c)\) given by \(p\) and \(lb,up\) such +that \(\sin(t)\) is the maximum of the sine function on +\((lb,ub)\). endverbatim

    +
    + +
    +
    +ARITH_TRANS_SINE_APPROX_BELOW_NEG
    +

    verbatim embed:rst:leading-asterisk +Arithmetic – Transcendentals – Sine is approximated from below for +negative values

    +
    +\[\inferrule{- \mid d,t,c,lb,ub}{(t \geq lb land t \leq ub) \rightarrow +\sin(t) \geq \texttt{lower}(\sin, c)}\]
    +

    where \(d\) is an even positive number, \(t\) an arithmetic term, +\(c\) an arithmetic constant and \(lb,ub\) are symbolic lower and +upper bounds on \(t\) (possibly containing \(\pi\)). Let \(p\) +be the \(d\)’th taylor polynomial at zero (also called the Maclaurin +series) of the sine function. \(\texttt{lower}(\sin, c)\) denotes the +lower bound on \(\sin(c)\) given by \(p\) and \(lb,up\) such +that \(\sin(t)\) is the minimum of the sine function on +\((lb,ub)\). endverbatim

    +
    + +
    +
    +ARITH_TRANS_SINE_APPROX_BELOW_POS
    +

    verbatim embed:rst:leading-asterisk +Arithmetic – Transcendentals – Sine is approximated from below for +positive values

    +
    +\[\inferrule{- \mid d,t,lb,ub,l,u}{(t \geq lb land t \leq ub) \rightarrow +\sin(t) \geq \texttt{secant}(\sin, l, u, t)}\]
    +

    where \(d\) is an even positive number, \(t\) an arithmetic term, +\(lb,ub\) are symbolic lower and upper bounds on \(t\) (possibly +containing \(\pi\)) and \(l,u\) the evaluated lower and upper +bounds on \(t\). Let \(p\) be the \(d\)’th taylor polynomial at +zero (also called the Maclaurin series) of the sine function. +\(\texttt{secant}(\sin, l, u, t)\) denotes the secant of \(p\) from +\((l, \sin(l))\) to \((u, \sin(u))\) evaluated at \(t\), +calculated as follows:

    +
    +\[\frac{p(l) - p(u)}{l - u} \cdot (t - l) + p(l)\]
    +

    The lemma states that if \(t\) is between \(l\) and \(u\), then +\(\sin(t)\) is above the secant of \(p\) from \(l\) to +\(u\). endverbatim

    +
    + +
    +
    +ARITH_TRANS_SINE_BOUNDS
    +

    verbatim embed:rst:leading-asterisk +Arithmetic – Transcendentals – Sine is always between -1 and 1

    +
    +\[\inferrule{- \mid t}{\sin(t) \leq 1 \land \sin(t) \geq -1}\]
    +

    endverbatim

    +
    + +
    +
    +ARITH_TRANS_SINE_SHIFT
    +

    verbatim embed:rst:leading-asterisk +Arithmetic – Transcendentals – Sine is shifted to -pi…pi

    +
    +\[\inferrule{- \mid x}{-\pi \leq y \leq \pi \land \sin(y) = \sin(x) +\land (\ite{-\pi \leq x \leq \pi}{x = y}{x = y + 2 \pi s})}\]
    +

    where \(x\) is the argument to sine, \(y\) is a new real skolem +that is \(x\) shifted into \(-\pi \dots \pi\) and \(s\) is a +new integer skolem that is the number of phases \(y\) is shifted. +In particular, \(y\) is the +TRANSCENDENTAL_PURIFY_ARG +skolem for \(\sin(x)\) and \(s\) is the +TRANSCENDENTAL_SINE_PHASE_SHIFT +skolem for \(x\). +endverbatim

    +
    + +
    +
    +ARITH_TRANS_SINE_SYMMETRY
    +

    verbatim embed:rst:leading-asterisk +Arithmetic – Transcendentals – Sine is symmetric with respect to +negation of the argument

    +
    +\[\inferrule{- \mid t}{\sin(t) - \sin(-t) = 0}\]
    +

    endverbatim

    +
    + +
    +
    +ARITH_TRANS_SINE_TANGENT_PI
    +

    verbatim embed:rst:leading-asterisk +Arithmetic – Transcendentals – Sine is bounded by the tangents at -pi +and pi

    +
    +\[\inferrule{- \mid t}{(t > -\pi \rightarrow \sin(t) > -\pi - t) \land (t < +\pi \rightarrow \sin(t) < \pi - t)} \endverbatim\]
    +
    + +
    +
    +ARITH_TRANS_SINE_TANGENT_ZERO
    +

    verbatim embed:rst:leading-asterisk +Arithmetic – Transcendentals – Sine is bounded by the tangent at zero

    +
    +\[\inferrule{- \mid t}{(t > 0 \rightarrow \sin(t) < t) \land (t < 0 +\rightarrow \sin(t) > t)} \endverbatim\]
    +
    + +
    +
    +ARITH_TRICHOTOMY
    +

    verbatim embed:rst:leading-asterisk +Arithmetic – Trichotomy of the reals

    +
    +\[\inferrule{A, B \mid -}{C}\]
    +

    where \(\neg A, \neg B, C\) are \(x < c, x = c, x > c\) in some order. +Note that \(\neg\) here denotes arithmetic negation, i.e., flipping \(\geq\) to \(<\) etc. +endverbatim

    +
    + +
    +
    +ARRAYS_EXT
    +

    verbatim embed:rst:leading-asterisk +Arrays – Arrays extensionality

    +
    +\[\inferrule{a \neq b\mid -} +{\mathit{select}(a,k)\neq\mathit{select}(b,k)}\]
    +

    where \(k\) is the \(\texttt{ARRAY_DEQ_DIFF}\) skolem for (a, b). +endverbatim

    +
    + +
    +
    +ARRAYS_READ_OVER_WRITE
    +

    verbatim embed:rst:leading-asterisk +Arrays – Read over write

    +
    +\[\inferrule{i_1 \neq i_2\mid \mathit{select}(\mathit{store}(a,i_1,e),i_2)} +{\mathit{select}(\mathit{store}(a,i_1,e),i_2) = \mathit{select}(a,i_2)}\]
    +

    endverbatim

    +
    + +
    +
    +ARRAYS_READ_OVER_WRITE_1
    +

    verbatim embed:rst:leading-asterisk +Arrays – Read over write 1

    +
    +\[\inferrule{-\mid \mathit{select}(\mathit{store}(a,i,e),i)} +{\mathit{select}(\mathit{store}(a,i,e),i)=e}\]
    +

    endverbatim

    +
    + +
    +
    +ARRAYS_READ_OVER_WRITE_CONTRA
    +

    verbatim embed:rst:leading-asterisk +Arrays – Read over write, contrapositive

    +
    +\[\inferrule{\mathit{select}(\mathit{store}(a,i_2,e),i_1) \neq +\mathit{select}(a,i_1)\mid -}{i_1=i_2}\]
    +

    endverbatim

    +
    + +
    +
    +ASSUME
    +

    verbatim embed:rst:leading-asterisk +Assumption (a leaf)

    +
    +\[\inferrule{- \mid F}{F}\]
    +

    This rule has special status, in that an application of assume is an +open leaf in a proof that is not (yet) justified. An assume leaf is +analogous to a free variable in a term, where we say “F is a free +assumption in proof P” if it contains an application of F that is not +bound by SCOPE (see below). +endverbatim

    +
    + +
    +
    +BV_BITBLAST_STEP
    +

    verbatim embed:rst:leading-asterisk +Bit-vectors – Bitblast bit-vector constant, variable, and terms

    +

    For constant and variables:

    +
    +\[\inferrule{-\mid t}{t = \texttt{bitblast}(t)}\]
    +

    For terms:

    +
    +\[\inferrule{-\mid k(\texttt{bitblast}(t_1),\dots,\texttt{bitblast}(t_n))} +{k(\texttt{bitblast}(t_1),\dots,\texttt{bitblast}(t_n)) = +\texttt{bitblast}(t)}\]
    +

    where \(t\) is \(k(t_1,\dots,t_n)\). +endverbatim

    +
    + +
    +
    +BV_EAGER_ATOM
    +

    verbatim embed:rst:leading-asterisk +Bit-vectors – Bit-vector eager atom

    +
    +\[\inferrule{-\mid F}{F = F[0]}\]
    +

    where \(F\) is of kind BITVECTOR_EAGER_ATOM. +endverbatim

    +
    + +
    +
    +CHAIN_RESOLUTION
    +

    verbatim embed:rst:leading-asterisk +Boolean – N-ary Resolution

    +
    +\[\inferrule{C_1 \dots C_n \mid (pol_1 \dots pol_{n-1}), (L_1 \dots L_{n-1})}{C}\]
    +

    where

    +
      +
    • let \(C_1 \dots C_n\) be nodes viewed as clauses, as defined above

    • +
    • let \(C_1 \diamond_{L,pol} C_2\) represent the resolution of +\(C_1\) with \(C_2\) with pivot \(L\) and polarity +\(pol\), as defined above

    • +
    • let \(C_1' = C_1\),

    • +
    • for each \(i > 1\), let \(C_i' = C_{i-1} \diamond_{L_{i-1}, pol_{i-1}} C_i'\)

    • +
    +

    Note the list of polarities and pivots are provided as s-expressions.

    +

    The result of the chain resolution is \(C = C_n'\) +endverbatim

    +
    + +
    +
    +CNF_AND_NEG
    +

    verbatim embed:rst:leading-asterisk +Boolean – CNF – And Negative

    +
    +\[\inferrule{- \mid (F_1 \land \dots \land F_n)}{(F_1 \land \dots \land +F_n) \lor \neg F_1 \lor \dots \lor \neg F_n}\]
    +

    endverbatim

    +
    + +
    +
    +CNF_AND_POS
    +

    verbatim embed:rst:leading-asterisk +Boolean – CNF – And Positive

    +
    +\[\inferrule{- \mid (F_1 \land \dots \land F_n), i}{\neg (F_1 \land \dots +\land F_n) \lor F_i}\]
    +

    endverbatim

    +
    + +
    +
    +CNF_EQUIV_NEG1
    +

    verbatim embed:rst:leading-asterisk +Boolean – CNF – Equiv Negative 1

    +
    +\[\inferrule{- \mid F_1 = F_2}{(F_1 = F_2) \lor F_1 \lor F_2}\]
    +

    endverbatim

    +
    + +
    +
    +CNF_EQUIV_NEG2
    +

    verbatim embed:rst:leading-asterisk +Boolean – CNF – Equiv Negative 2

    +
    +\[\inferrule{- \mid F_1 = F_2}{(F_1 = F_2) \lor \neg F_1 \lor \neg F_2}\]
    +

    endverbatim

    +
    + +
    +
    +CNF_EQUIV_POS1
    +

    verbatim embed:rst:leading-asterisk +Boolean – CNF – Equiv Positive 1

    +
    +\[\inferrule{- \mid F_1 = F_2}{F_1 \neq F_2 \lor \neg F_1 \lor F_2}\]
    +

    endverbatim

    +
    + +
    +
    +CNF_EQUIV_POS2
    +

    verbatim embed:rst:leading-asterisk +Boolean – CNF – Equiv Positive 2

    +
    +\[\inferrule{- \mid F_1 = F_2}{F_1 \neq F_2 \lor F_1 \lor \neg F_2}\]
    +

    endverbatim

    +
    + +
    +
    +CNF_IMPLIES_NEG1
    +

    verbatim embed:rst:leading-asterisk +Boolean – CNF – Implies Negative 1

    +
    +\[\inferrule{- \mid F_1 \rightarrow F_2}{(F_1 \rightarrow F_2) \lor F_1}\]
    +

    endverbatim

    +
    + +
    +
    +CNF_IMPLIES_NEG2
    +

    verbatim embed:rst:leading-asterisk +Boolean – CNF – Implies Negative 2

    +
    +\[\inferrule{- \mid F_1 \rightarrow F_2}{(F_1 \rightarrow F_2) \lor \neg F_2}\]
    +

    endverbatim

    +
    + +
    +
    +CNF_IMPLIES_POS
    +

    verbatim embed:rst:leading-asterisk +Boolean – CNF – Implies Positive

    +
    +\[\inferrule{- \mid F_1 \rightarrow F_2}{\neg(F_1 \rightarrow F_2) \lor \neg F_1 +\lor F_2}\]
    +

    endverbatim

    +
    + +
    +
    +CNF_ITE_NEG1
    +

    verbatim embed:rst:leading-asterisk +Boolean – CNF – ITE Negative 1

    +
    +\[\inferrule{- \mid (\ite{C}{F_1}{F_2})}{(\ite{C}{F_1}{F_2}) \lor \neg C +\lor \neg F_1}\]
    +

    endverbatim

    +
    + +
    +
    +CNF_ITE_NEG2
    +

    verbatim embed:rst:leading-asterisk +Boolean – CNF – ITE Negative 2

    +
    +\[\inferrule{- \mid (\ite{C}{F_1}{F_2})}{(\ite{C}{F_1}{F_2}) \lor C \lor +\neg F_2}\]
    +

    endverbatim

    +
    + +
    +
    +CNF_ITE_NEG3
    +

    verbatim embed:rst:leading-asterisk +Boolean – CNF – ITE Negative 3

    +
    +\[\inferrule{- \mid (\ite{C}{F_1}{F_2})}{(\ite{C}{F_1}{F_2}) \lor \neg F_1 +\lor \neg F_2}\]
    +

    endverbatim

    +
    + +
    +
    +CNF_ITE_POS1
    +

    verbatim embed:rst:leading-asterisk +Boolean – CNF – ITE Positive 1

    +
    +\[\inferrule{- \mid (\ite{C}{F_1}{F_2})}{\neg(\ite{C}{F_1}{F_2}) \lor \neg +C \lor F_1}\]
    +

    endverbatim

    +
    + +
    +
    +CNF_ITE_POS2
    +

    verbatim embed:rst:leading-asterisk +Boolean – CNF – ITE Positive 2

    +
    +\[\inferrule{- \mid (\ite{C}{F_1}{F_2})}{\neg(\ite{C}{F_1}{F_2}) \lor C +\lor F_2}\]
    +

    endverbatim

    +
    + +
    +
    +CNF_ITE_POS3
    +

    verbatim embed:rst:leading-asterisk +Boolean – CNF – ITE Positive 3

    +
    +\[\inferrule{- \mid (\ite{C}{F_1}{F_2})}{\neg(\ite{C}{F_1}{F_2}) \lor F_1 +\lor F_2}\]
    +

    endverbatim

    +
    + +
    +
    +CNF_OR_NEG
    +

    verbatim embed:rst:leading-asterisk +Boolean – CNF – Or Negative

    +
    +\[\inferrule{- \mid (F_1 \lor \dots \lor F_n), i}{(F_1 \lor \dots \lor F_n) +\lor \neg F_i}\]
    +

    endverbatim

    +
    + +
    +
    +CNF_OR_POS
    +

    verbatim embed:rst:leading-asterisk +Boolean – CNF – Or Positive

    +
    +\[\inferrule{- \mid (F_1 \lor \dots \lor F_n)}{\neg(F_1 \lor \dots \lor +F_n) \lor F_1 \lor \dots \lor F_n}\]
    +

    endverbatim

    +
    + +
    +
    +CNF_XOR_NEG1
    +

    verbatim embed:rst:leading-asterisk +Boolean – CNF – XOR Negative 1

    +
    +\[\inferrule{- \mid F_1 \xor F_2}{(F_1 \xor F_2) \lor \neg F_1 \lor F_2}\]
    +

    endverbatim

    +
    + +
    +
    +CNF_XOR_NEG2
    +

    verbatim embed:rst:leading-asterisk +Boolean – CNF – XOR Negative 2

    +
    +\[\inferrule{- \mid F_1 \xor F_2}{(F_1 \xor F_2) \lor F_1 \lor \neg F_2}\]
    +

    endverbatim

    +
    + +
    +
    +CNF_XOR_POS1
    +

    verbatim embed:rst:leading-asterisk +Boolean – CNF – XOR Positive 1

    +
    +\[\inferrule{- \mid F_1 \xor F_2}{\neg(F_1 \xor F_2) \lor F_1 \lor F_2}\]
    +

    endverbatim

    +
    + +
    +
    +CNF_XOR_POS2
    +

    verbatim embed:rst:leading-asterisk +Boolean – CNF – XOR Positive 2

    +
    +\[\inferrule{- \mid F_1 \xor F_2}{\neg(F_1 \xor F_2) \lor \neg F_1 \lor +\neg F_2}\]
    +

    endverbatim

    +
    + +
    +
    +CONCAT_CONFLICT
    +

    verbatim embed:rst:leading-asterisk +Strings – Core rules – Concatenation conflict

    +
    +\[\inferrule{(c_1\cdot t) = (c_2 \cdot s)\mid b}{\bot}\]
    +

    where \(b\) indicates if the direction is reversed, \(c_1,\,c_2\) +are constants such that \(\texttt{Word::splitConstant}(c_1,c_2, +\mathit{index},b)\) is null, in other words, neither is a prefix of the +other. Note it may be the case that one side of the equality denotes the +empty string.

    +

    This rule is used exclusively for strings.

    +

    endverbatim

    +
    + +
    +
    +CONCAT_CONFLICT_DEQ
    +

    verbatim embed:rst:leading-asterisk +Strings – Core rules – Concatenation conflict for disequal characters

    +
    +\[\inferrule{(t_1\cdot t) = (s_1 \cdot s), t_1 \neq s_1 \mid b}{\bot}\]
    +

    where \(t_1\) and \(s_1\) are constants of length one, or otherwise one side +of the equality is the empty sequence and \(t_1\) or \(s_1\) corresponding to +that side is the empty sequence.

    +

    This rule is used exclusively for sequences.

    +

    endverbatim

    +
    + +
    +
    +CONCAT_CPROP
    +

    verbatim embed:rst:leading-asterisk +Strings – Core rules – Concatenation constant propagation

    +
    +\[\inferrule{(t_1\cdot w_1\cdot t_2) = (w_2 \cdot s),\, +\mathit{len}(t_1) \neq 0\mid \bot}{(t_1 = t_3\cdot r)}\]
    +

    where \(w_1,\,w_2\) are words, \(t_3\) is +\(\mathit{pre}(w_2,p)\), \(p\) is +\(\texttt{Word::overlap}(\mathit{suf}(w_2,1), w_1)\), and \(r\) is +the purification skolem for +\(\mathit{suf}(t_1,\mathit{len}(w_3))\). Note that +\(\mathit{suf}(w_2,p)\) is the largest suffix of +\(\mathit{suf}(w_2,1)\) that can contain a prefix of \(w_1\); since +\(t_1\) is non-empty, \(w_3\) must therefore be contained in +\(t_1\).

    +

    Alternatively for the reverse:

    +
    +\[\inferrule{(t_1\cdot w_1\cdot t_2) = (s \cdot w_2),\, +\mathit{len}(t_2) \neq 0\mid \top}{(t_2 = r\cdot t_3)}\]
    +

    where \(w_1,\,w_2\) are words, \(t_3\) is +\(\mathit{substr}(w_2, \mathit{len}(w_2) - p, p)\), \(p\) is +\(\texttt{Word::roverlap}(\mathit{pre}(w_2, \mathit{len}(w_2) - 1), +w_1)\), and \(r\) is the purification skolem for +\(\mathit{pre}(t_2,\mathit{len}(t_2) - \mathit{len}(w_3))\). Note that +\(\mathit{pre}(w_2, \mathit{len}(w_2) - p)\) is the largest prefix of +\(\mathit{pre}(w_2, \mathit{len}(w_2) - 1)\) that can contain a suffix +of \(w_1\); since \(t_2\) is non-empty, \(w_3\) must therefore +be contained in \(t_2\). +endverbatim

    +
    + +
    +
    +CONCAT_CSPLIT
    +

    verbatim embed:rst:leading-asterisk +Strings – Core rules – Concatenation split for constants

    +
    +\[\inferrule{(t_1\cdot t_2) = (c \cdot s_2),\, +\mathit{len}(t_1) \neq 0\mid \bot}{(t_1 = c\cdot r)}\]
    +

    where \(r\) is the purification skolem for \(\mathit{suf}(t_1,1)\).

    +

    Alternatively for the reverse:

    +
    +\[\inferrule{(t_1\cdot t_2) = (s_1 \cdot c),\, +\mathit{len}(t_2) \neq 0\mid \top}{(t_2 = r\cdot c)}\]
    +

    where \(r\) is the purification skolem for +\(\mathit{pre}(t_2,\mathit{len}(t_2) - 1)\). +endverbatim

    +
    + +
    +
    +CONCAT_EQ
    +

    verbatim embed:rst:leading-asterisk +Strings – Core rules – Concatenation equality

    +
    +\[\inferrule{(t_1\cdot\ldots \cdot t_n \cdot t) = (t_1 \cdot\ldots +\cdot t_n\cdot s)\mid b}{t = s}\]
    +

    where \(\cdot\) stands for string concatenation and \(b\) indicates +if the direction is reversed.

    +

    Notice that \(t\) or \(s\) may be empty, in which case they are +implicit in the concatenation above. For example, if the premise is +\(x\cdot z = x\), then this rule, with argument \(\bot\), concludes +\(z = \epsilon\).

    +

    Also note that constants are split, such that for \((\mathsf{'abc'} +\cdot x) = (\mathsf{'a'} \cdot y)\), this rule, with argument \(\bot\), +concludes \((\mathsf{'bc'} \cdot x) = y\). This splitting is done only +for constants such that Word::splitConstant returns non-null. +endverbatim

    +
    + +
    +
    +CONCAT_LPROP
    +

    verbatim embed:rst:leading-asterisk +Strings – Core rules – Concatenation length propagation

    +
    +\[\inferrule{(t_1\cdot t_2) = (s_1 \cdot s_2),\, +\mathit{len}(t_1) > \mathit{len}(s_1)\mid \bot}{(t_1 = s_1\cdot r)}\]
    +

    where \(r\) is the purification Skolem for +\(\mathit{ite}( +\mathit{len}(t_1) >= \mathit{len}(s_1), +\mathit{suf}(t_1,\mathit{len}(s_1)), +\mathit{suf}(s_1,\mathit{len}(t_1)))\).

    +

    Alternatively for the reverse:

    +
    +\[\inferrule{(t_1\cdot t_2) = (s_1 \cdot s_2),\, +\mathit{len}(t_2) > \mathit{len}(s_2)\mid \top}{(t_2 = r \cdot s_2)}\]
    +

    where \(r\) is the purification Skolem for +\(\mathit{ite}( +\mathit{len}(t_2) >= \mathit{len}(s_2), +\mathit{pre}(t_2,\mathit{len}(t_2) - \mathit{len}(s_2)), +\mathit{pre}(s_2,\mathit{len}(s_2) - \mathit{len}(t_2)))\) +endverbatim

    +
    + +
    +
    +CONCAT_SPLIT
    +

    verbatim embed:rst:leading-asterisk +Strings – Core rules – Concatenation split

    +
    +\[\inferruleSC{(t_1\cdot t_2) = (s_1 \cdot s_2),\, +\mathit{len}(t_1) \neq \mathit{len}(s_1)\mid b}{((t_1 = s_1\cdot r) +\vee (s_1 = t_1\cdot r)) \wedge r \neq \epsilon \wedge \mathit{len}(r)>0}{if $b=\bot$}\]
    +

    where \(r\) is the purification skolem for +\(\mathit{ite}( +\mathit{len}(t_1) >= \mathit{len}(s_1), +\mathit{suf}(t_1,\mathit{len}(s_1)), +\mathit{suf}(s_1,\mathit{len}(t_1)))\) +and \(\epsilon\) is the empty string (or sequence).

    +
    +\[\inferruleSC{(t_1\cdot t_2) = (s_1 \cdot s_2),\, +\mathit{len}(t_2) \neq \mathit{len}(s_2)\mid b}{((t_2 = r \cdot s_2) +\vee (s_2 = r \cdot t_2)) \wedge r \neq \epsilon \wedge \mathit{len}(r)>0}{if $b=\top$}\]
    +

    where \(r\) is the purification Skolem for +\(\mathit{ite}( +\mathit{len}(t_2) >= \mathit{len}(s_2), +\mathit{pre}(t_2,\mathit{len}(t_2) - \mathit{len}(s_2)), +\mathit{pre}(s_2,\mathit{len}(s_2) - \mathit{len}(t_2)))\) +and \(\epsilon\) is the empty string (or sequence).

    +

    Above, \(\mathit{suf}(x,n)\) is shorthand for +\(\mathit{substr}(x,n, \mathit{len}(x) - n)\) and +\(\mathit{pre}(x,n)\) is shorthand for \(\mathit{substr}(x,0,n)\). +endverbatim

    +
    + +
    +
    +CONCAT_UNIFY
    +

    verbatim embed:rst:leading-asterisk +Strings – Core rules – Concatenation unification

    +
    +\[\inferrule{(t_1\cdot t_2) = (s_1 \cdot s_2),\, \mathit{len}(t_1) = +\mathit{len}(s_1)\mid \bot}{t_1 = s_1}\]
    +

    Alternatively for the reverse:

    +
    +\[\inferrule{(t_1\cdot t_2) = (s_1 \cdot s_2),\, \mathit{len}(t_2) = +\mathit{len}(s_2)\mid \top}{t_2 = s_2}\]
    +

    endverbatim

    +
    + +
    +
    +CONG
    +

    verbatim embed:rst:leading-asterisk +Equality – Congruence

    +
    +\[\inferrule{t_1=s_1,\dots,t_n=s_n\mid k, f?}{k(f?, t_1,\dots, t_n) = +k(f?, s_1,\dots, s_n)}\]
    +

    where \(k\) is the application kind. Notice that \(f\) must be +provided iff \(k\) is a parameterized kind, e.g. +cvc5::Kind::APPLY_UF. The actual node for +\(k\) is constructible via ProofRuleChecker::mkKindNode. +If \(k\) is a binder kind (e.g. cvc5::Kind::FORALL) then \(f\) +is a term of kind cvc5::Kind::VARIABLE_LIST +denoting the variables bound by both sides of the conclusion. +This rule is used for kinds that have a fixed arity, such as +cvc5::Kind::ITE, cvc5::Kind::EQUAL, and so on. It is also used for +cvc5::Kind::APPLY_UF where \(f\) must be provided. +It is not used for equality between +cvc5::Kind::HO_APPLY terms, which should +use the HO_CONG proof rule. +endverbatim

    +
    + +
    +
    +CONTRA
    +

    verbatim embed:rst:leading-asterisk +Boolean – Contradiction

    +
    +\[\inferrule{F, \neg F \mid -}{\bot}\]
    +

    endverbatim

    +
    + +
    +
    +DRAT_REFUTATION
    +

    verbatim embed:rst:leading-asterisk +DRAT Refutation

    +
    +\[\inferrule{F_1 \dots F_n \mid D, P}{\bot}\]
    +

    where \(F_1 \dots F_n\) correspond to the clauses in the +DIMACS file given by filename D and P is a filename of a file storing +a DRAT proof. endverbatim

    +
    + +
    +
    +DSL_REWRITE
    +

    verbatim embed:rst:leading-asterisk +Builtin theory – DSL rewrite

    +
    +\[\inferrule{F_1 \dots F_n \mid id t_1 \dots t_n}{F}\]
    +

    where id is a ProofRewriteRule whose definition in the +RARE DSL is \(\forall x_1 \dots x_n. (G_1 \wedge G_n) \Rightarrow G\) +where for \(i=1, \dots n\), we have that \(F_i = \sigma(G_i)\) +and \(F = \sigma(G)\) where \(\sigma\) is the substitution +\(\{x_1\mapsto t_1,\dots,x_n\mapsto t_n\}\).

    +

    Notice that the application of the substitution takes into account the +possible list semantics of variables \(x_1 \ldots x_n\). If +\(x_i\) is a variable with list semantics, then \(t_i\) denotes a +list of terms. The substitution implemented by +\(\texttt{expr::narySubstitute}\) (for details, see +expr/nary_term_util.h) which replaces each \(x_i\) with the +list \(t_i\) in its place. +endverbatim

    +
    + +
    +
    +DT_CLASH
    +

    verbatim embed:rst:leading-asterisk +Datatypes – Clash

    +
    +\[\inferruleSC{\mathit{is}_{C_i}(t), \mathit{is}_{C_j}(t)\mid -}{\bot} +{if $i\neq j$}\]
    +

    endverbatim

    +
    + +
    +
    +DT_SPLIT
    +

    verbatim embed:rst:leading-asterisk +Datatypes – Split

    +
    +\[\inferrule{-\mid t}{\mathit{is}_{C_1}(t)\vee\cdots\vee\mathit{is}_{C_n}(t)}\]
    +

    where \(C_1,\dots,C_n\) are all the constructors of the type of \(t\). +endverbatim

    +
    + +
    +
    +ENCODE_EQ_INTRO
    +

    verbatim embed:rst:leading-asterisk +Builtin theory – Encode equality introduction

    +
    +\[\inferrule{- \mid t}{t=t'}\]
    +

    where \(t\) and \(t'\) are equivalent up to their encoding in an +external proof format.

    +

    More specifically, it is the case that +\(\texttt{RewriteDbNodeConverter::postConvert}(t) = t;\). +This conversion method for instance may drop user patterns from quantified +formulas or change the representation of \(t\) in a way that is a +no-op in external proof formats.

    +

    Note this rule can be treated as a +REFL when appropriate in +external proof formats. +endverbatim

    +
    + +
    +
    +EQUIV_ELIM1
    +

    verbatim embed:rst:leading-asterisk +Boolean – Equivalence elimination version 1

    +
    +\[\inferrule{F_1 = F_2 \mid -}{\neg F_1 \lor F_2}\]
    +

    endverbatim

    +
    + +
    +
    +EQUIV_ELIM2
    +

    verbatim embed:rst:leading-asterisk +Boolean – Equivalence elimination version 2

    +
    +\[\inferrule{F_1 = F_2 \mid -}{F_1 \lor \neg F_2}\]
    +

    endverbatim

    +
    + +
    +
    +EQ_RESOLVE
    +

    verbatim embed:rst:leading-asterisk +Boolean – Equality resolution

    +
    +\[\inferrule{F_1, (F_1 = F_2) \mid -}{F_2}\]
    +

    Note this can optionally be seen as a macro for +EQUIV_ELIM1 + +RESOLUTION. +endverbatim

    +
    + +
    +
    +EVALUATE
    +

    verbatim embed:rst:leading-asterisk +Builtin theory – Evaluate

    +
    +\[\inferrule{- \mid t}{t = \texttt{evaluate}(t)}\]
    +

    where \(\texttt{evaluate}\) is implemented by calling the method +\(\texttt{Evalutor::evaluate}\) in theory/evaluator.h with an +empty substitution. +Note this is equivalent to: (REWRITE t MethodId::RW_EVALUATE). +endverbatim

    +
    + +
    +
    +FACTORING
    +

    verbatim embed:rst:leading-asterisk +Boolean – Factoring

    +
    +\[\inferrule{C_1 \mid -}{C_2}\]
    +

    where \(C_2\) is the clause \(C_1\), but every occurrence of a literal +after its first occurrence is omitted. +endverbatim

    +
    + +
    +
    +FALSE_ELIM
    +

    verbatim embed:rst:leading-asterisk +Equality – False elim

    +
    +\[\inferrule{F=\bot\mid -}{\neg F}\]
    +

    endverbatim

    +
    + +
    +
    +FALSE_INTRO
    +

    verbatim embed:rst:leading-asterisk +Equality – False intro

    +
    +\[\inferrule{\neg F\mid -}{F = \bot}\]
    +

    endverbatim

    +
    + +
    +
    +HO_APP_ENCODE
    +

    verbatim embed:rst:leading-asterisk +Equality – Higher-order application encoding

    +
    +\[\inferrule{-\mid t}{t=t'}\]
    +

    where t’ is the higher-order application that is equivalent to t, +as implemented by uf::TheoryUfRewriter::getHoApplyForApplyUf. +For details see theory/uf/theory_uf_rewriter.h

    +

    For example, this rule concludes \(f(x,y) = @( @(f,x), y)\), where +\(@\) is the HO_APPLY kind.

    +

    Note this rule can be treated as a +REFL when appropriate in +external proof formats.

    +
    +

    endverbatim

    +
    +
    + +
    +
    +HO_CONG
    +

    verbatim embed:rst:leading-asterisk +Equality – Higher-order congruence

    +
    +\[\inferrule{f=g, t_1=s_1,\dots,t_n=s_n\mid k}{k(f, t_1,\dots, t_n) = +k(g, s_1,\dots, s_n)}\]
    +

    Notice that this rule is only used when the application kind \(k\) is +either cvc5::Kind::APPLY_UF or cvc5::Kind::HO_APPLY. +endverbatim

    +
    + +
    +
    +IMPLIES_ELIM
    +

    verbatim embed:rst:leading-asterisk +Boolean – Implication elimination

    +
    +\[\inferrule{F_1 \rightarrow F_2 \mid -}{\neg F_1 \lor F_2}\]
    +

    endverbatim

    +
    + +
    +
    +INSTANTIATE
    +

    verbatim embed:rst:leading-asterisk +Quantifiers – Instantiation

    +
    +\[\inferrule{\forall x_1\dots x_n.\> F\mid (t_1 \dots t_n), (id\, (t)?)?} +{F\{x_1\mapsto t_1,\dots,x_n\mapsto t_n\}}\]
    +

    The list of terms to instantiate \((t_1 \dots t_n)\) is provided as +an s-expression as the first argument. The optional argument \(id\) +indicates the inference id that caused the instantiation. The term +\(t\) indicates an additional term (e.g. the trigger) associated with +the instantiation, which depends on the id. If the id has prefix +QUANTIFIERS_INST_E_MATCHING, then \(t\) is the trigger that +generated the instantiation. +endverbatim

    +
    + +
    +
    +INT_TIGHT_LB
    +

    verbatim embed:rst:leading-asterisk +Arithmetic – Tighten strict integer lower bounds

    +
    +\[\inferrule{i > c \mid -}{i \geq \lceil c \rceil}\]
    +

    where \(i\) has integer type. +endverbatim

    +
    + +
    +
    +INT_TIGHT_UB
    +

    verbatim embed:rst:leading-asterisk +Arithmetic – Tighten strict integer upper bounds

    +
    +\[\inferrule{i < c \mid -}{i \leq \lfloor c \rfloor}\]
    +

    where \(i\) has integer type. +endverbatim

    +
    + +
    +
    +ITE_ELIM1
    +

    verbatim embed:rst:leading-asterisk +Boolean – ITE elimination version 1

    +
    +\[\inferrule{(\ite{C}{F_1}{F_2}) \mid -}{\neg C \lor F_1}\]
    +

    endverbatim

    +
    + +
    +
    +ITE_ELIM2
    +

    verbatim embed:rst:leading-asterisk +Boolean – ITE elimination version 2

    +
    +\[\inferrule{(\ite{C}{F_1}{F_2}) \mid -}{C \lor F_2}\]
    +

    endverbatim

    +
    + +
    +
    +ITE_EQ
    +

    verbatim embed:rst:leading-asterisk +Processing rules – If-then-else equivalence

    +
    +\[\inferrule{- \mid \ite{C}{t_1}{t_2}}{\ite{C}{((\ite{C}{t_1}{t_2}) = t_1)}{((\ite{C}{t_1}{t_2}) = t_2)}}\]
    +

    endverbatim

    +
    + +
    +
    +LFSC_RULE
    +

    verbatim embed:rst:leading-asterisk +External – LFSC

    +

    Place holder for LFSC rules.

    +
    +\[\inferrule{P_1, \dots, P_n\mid \texttt{id}, Q, A_1,\dots, A_m}{Q}\]
    +

    Note that the premises and arguments are arbitrary. It’s expected that +\(\texttt{id}\) refer to a proof rule in the external LFSC calculus. +endverbatim

    +
    + +
    +
    +MACRO_ARITH_SCALE_SUM_UB
    +

    verbatim embed:rst:leading-asterisk +Arithmetic – Adding inequalities

    +

    An arithmetic literal is a term of the form \(p \diamond c\) where +\(\diamond \in \{ <, \leq, =, \geq, > \}\), \(p\) a +polynomial and \(c\) a rational constant.

    +
    +\[\inferrule{l_1 \dots l_n \mid k_1 \dots k_n}{t_1 \diamond t_2}\]
    +

    where \(k_i \in \mathbb{R}, k_i \neq 0\), \(\diamond\) is the +fusion of the \(\diamond_i\) (flipping each if its \(k_i\) is +negative) such that \(\diamond_i \in \{ <, \leq \}\) (this implies that +lower bounds have negative \(k_i\) and upper bounds have positive +\(k_i\)), \(t_1\) is the sum of the scaled polynomials and +\(t_2\) is the sum of the scaled constants:

    +
    +\[ \begin{align}\begin{aligned}t_1 \colon= k_1 \cdot p_1 + \cdots + k_n \cdot p_n\\t_2 \colon= k_1 \cdot c_1 + \cdots + k_n \cdot c_n\end{aligned}\end{align} \]
    +

    endverbatim

    +
    + +
    +
    +MACRO_BV_BITBLAST
    +

    verbatim embed:rst:leading-asterisk +Bit-vectors – (Macro) Bitblast

    +
    +\[\inferrule{-\mid t}{t = \texttt{bitblast}(t)}\]
    +

    where \(\texttt{bitblast}\) represents the result of the bit-blasted term as +a bit-vector consisting of the output bits of the bit-blasted circuit +representation of the term. Terms are bit-blasted according to the +strategies defined in theory/bv/bitblast/bitblast_strategies_template.h. +endverbatim

    +
    + +
    +
    +MACRO_RESOLUTION
    +

    verbatim embed:rst:leading-asterisk +Boolean – N-ary Resolution + Factoring + Reordering

    +
    +\[\inferrule{C_1 \dots C_n \mid C, pol_1,L_1 \dots pol_{n-1},L_{n-1}}{C}\]
    +

    where

    +
      +
    • let \(C_1 \dots C_n\) be nodes viewed as clauses, as defined in +RESOLUTION

    • +
    • let \(C_1 \diamond_{L,\mathit{pol}} C_2\) represent the resolution of +\(C_1\) with \(C_2\) with pivot \(L\) and polarity +\(pol\), as defined in +RESOLUTION

    • +
    • let \(C_1'\) be equal, in its set representation, to \(C_1\),

    • +
    • for each \(i > 1\), let \(C_i'\) be equal, in its set +representation, to \(C_{i-1} \diamond_{L_{i-1},\mathit{pol}_{i-1}} +C_i'\)

    • +
    +

    The result of the chain resolution is \(C\), which is equal, in its set +representation, to \(C_n'\) +endverbatim

    +
    + +
    +
    +MACRO_RESOLUTION_TRUST
    +

    verbatim embed:rst:leading-asterisk +Boolean – N-ary Resolution + Factoring + Reordering unchecked

    +

    Same as +MACRO_RESOLUTION, but +not checked by the internal proof checker. +endverbatim

    +
    + +
    +
    +MACRO_REWRITE
    +

    verbatim embed:rst:leading-asterisk +Builtin theory – Rewrite

    +
    +\[\inferrule{- \mid t, idr}{t = \texttt{rewrite}_{idr}(t)}\]
    +

    where \(idr\) is a MethodId identifier, which determines the kind of +rewriter to apply, e.g. Rewriter::rewrite. endverbatim

    +
    + +
    +
    +MACRO_SR_EQ_INTRO
    +

    verbatim embed:rst:leading-asterisk +Builtin theory – Substitution + Rewriting equality introduction

    +

    In this rule, we provide a term \(t\) and conclude that it is equal to +its rewritten form under a (proven) substitution.

    +
    +\[\inferrule{F_1 \dots F_n \mid t, (ids (ida (idr)?)?)?}{t = +\texttt{rewrite}_{idr}(t \circ \sigma_{ids, ida}(F_n) \circ \cdots \circ +\sigma_{ids, ida}(F_1))}\]
    +

    In other words, from the point of view of Skolem forms, this rule +transforms \(t\) to \(t'\) by standard substitution + rewriting.

    +

    The arguments \(ids\), \(ida\) and \(idr\) are optional and +specify the identifier of the substitution, the substitution application +and rewriter respectively to be used. For details, see +theory/builtin/proof_checker.h. endverbatim

    +
    + +
    +
    +MACRO_SR_PRED_ELIM
    +

    verbatim embed:rst:leading-asterisk +Builtin theory – Substitution + Rewriting predicate elimination

    +
    +\[\inferrule{F, F_1 \dots F_n \mid (ids (ida +(idr)?)?)?}{\texttt{rewrite}_{idr}(F \circ \sigma_{ids, ida}(F_n) \circ +\cdots \circ \sigma_{ids, ida}(F_1))}\]
    +

    where \(ids\) and \(idr\) are method identifiers.

    +

    We rewrite only on the Skolem form of \(F\), similar to +MACRO_SR_EQ_INTRO. +endverbatim

    +
    + +
    +
    +MACRO_SR_PRED_INTRO
    +

    verbatim embed:rst:leading-asterisk +Builtin theory – Substitution + Rewriting predicate introduction

    +

    In this rule, we provide a formula \(F\) and conclude it, under the +condition that it rewrites to true under a proven substitution.

    +
    +\[\inferrule{F_1 \dots F_n \mid F, (ids (ida (idr)?)?)?}{F}\]
    +

    where \(\texttt{rewrite}_{idr}(F \circ \sigma_{ids, ida}(F_n) \circ +\cdots \circ \sigma_{ids, ida}(F_1)) = \top\) and \(ids\) and +\(idr\) are method identifiers.

    +

    More generally, this rule also holds when +\(\texttt{Rewriter::rewrite}(\texttt{toOriginal}(F')) = \top\) +where \(F'\) is the result of the left hand side of the equality above. +Here, notice that we apply rewriting on the original form of \(F'\), +meaning that this rule may conclude an \(F\) whose Skolem form is +justified by the definition of its (fresh) Skolem variables. For example, +this rule may justify the conclusion \(k = t\) where \(k\) is the +purification Skolem for \(t\), e.g. where the original form of +\(k\) is \(t\).

    +

    Furthermore, notice that the rewriting and substitution is applied only +within the side condition, meaning the rewritten form of the original form +of \(F\) does not escape this rule. +endverbatim

    +
    + +
    +
    +MACRO_SR_PRED_TRANSFORM
    +

    verbatim embed:rst:leading-asterisk +Builtin theory – Substitution + Rewriting predicate elimination

    +
    +\[\inferrule{F, F_1 \dots F_n \mid G, (ids (ida (idr)?)?)?}{G}\]
    +

    where

    +
    +\[\begin{split}\texttt{rewrite}_{idr}(F \circ \sigma_{ids, ida}(F_n) \circ\cdots \circ \sigma_{ids, ida}(F_1)) =\\ \texttt{rewrite}_{idr}(G \circ \sigma_{ids, ida}(F_n) \circ \cdots \circ \sigma_{ids, ida}(F_1))\end{split}\]
    +

    More generally, this rule also holds when: +\(\texttt{Rewriter::rewrite}(\texttt{toOriginal}(F')) = \texttt{Rewriter::rewrite}(\texttt{toOriginal}(G'))\) +where \(F'\) and \(G'\) are the result of each side of the equation +above. Here, original forms are used in a similar manner to +MACRO_SR_PRED_INTRO +above. endverbatim

    +
    + +
    +
    +MACRO_STRING_INFERENCE
    +

    verbatim embed:rst:leading-asterisk +Strings – (Macro) String inference

    +
    +\[\inferrule{?\mid F,\mathit{id},\mathit{isRev},\mathit{exp}}{F}\]
    +

    used to bookkeep an inference that has not yet been converted via +\(\texttt{strings::InferProofCons::convert}\). +endverbatim

    +
    + +
    +
    +MODUS_PONENS
    +

    verbatim embed:rst:leading-asterisk +Boolean – Modus Ponens

    +
    +\[\inferrule{F_1, (F_1 \rightarrow F_2) \mid -}{F_2}\]
    +

    Note this can optionally be seen as a macro for +IMPLIES_ELIM + +RESOLUTION. +endverbatim

    +
    + +
    +
    +NARY_CONG
    +

    verbatim embed:rst:leading-asterisk +Equality – N-ary Congruence

    +
    +\[\inferrule{t_1=s_1,\dots,t_n=s_n\mid k}{k(t_1,\dots, t_n) = +k(s_1,\dots, s_n)}\]
    +

    where \(k\) is the application kind. The actual node for \(k\) is +constructible via ProofRuleChecker::mkKindNode. This rule is used for +kinds that have variadic arity, such as cvc5::Kind::AND, +cvc5::Kind::PLUS and so on. +endverbatim

    +
    + +
    +
    +NOT_AND
    +

    verbatim embed:rst:leading-asterisk +Boolean – De Morgan – Not And

    +
    +\[\inferrule{\neg(F_1 \land \dots \land F_n) \mid -}{\neg F_1 \lor \dots +\lor \neg F_n}\]
    +

    endverbatim

    +
    + +
    +
    +NOT_EQUIV_ELIM1
    +

    verbatim embed:rst:leading-asterisk +Boolean – Not Equivalence elimination version 1

    +
    +\[\inferrule{F_1 \neq F_2 \mid -}{F_1 \lor F_2}\]
    +

    endverbatim

    +
    + +
    +
    +NOT_EQUIV_ELIM2
    +

    verbatim embed:rst:leading-asterisk +Boolean – Not Equivalence elimination version 2

    +
    +\[\inferrule{F_1 \neq F_2 \mid -}{\neg F_1 \lor \neg F_2}\]
    +

    endverbatim

    +
    + +
    +
    +NOT_IMPLIES_ELIM1
    +

    verbatim embed:rst:leading-asterisk +Boolean – Not Implication elimination version 1

    +
    +\[\inferrule{\neg(F_1 \rightarrow F_2) \mid -}{F_1}\]
    +

    endverbatim

    +
    + +
    +
    +NOT_IMPLIES_ELIM2
    +

    verbatim embed:rst:leading-asterisk +Boolean – Not Implication elimination version 2

    +
    +\[\inferrule{\neg(F_1 \rightarrow F_2) \mid -}{\neg F_2}\]
    +

    endverbatim

    +
    + +
    +
    +NOT_ITE_ELIM1
    +

    verbatim embed:rst:leading-asterisk +Boolean – Not ITE elimination version 1

    +
    +\[\inferrule{\neg(\ite{C}{F_1}{F_2}) \mid -}{\neg C \lor \neg F_1}\]
    +

    endverbatim

    +
    + +
    +
    +NOT_ITE_ELIM2
    +

    verbatim embed:rst:leading-asterisk +Boolean – Not ITE elimination version 2

    +
    +\[\inferrule{\neg(\ite{C}{F_1}{F_2}) \mid -}{C \lor \neg F_2}\]
    +

    endverbatim

    +
    + +
    +
    +NOT_NOT_ELIM
    +

    verbatim embed:rst:leading-asterisk +Boolean – Double negation elimination

    +
    +\[\inferrule{\neg (\neg F) \mid -}{F}\]
    +

    endverbatim

    +
    + +
    +
    +NOT_OR_ELIM
    +

    verbatim embed:rst:leading-asterisk +Boolean – Not Or elimination

    +
    +\[\inferrule{\neg(F_1 \lor \dots \lor F_n) \mid i}{\neg F_i}\]
    +

    endverbatim

    +
    + +
    +
    +NOT_XOR_ELIM1
    +

    verbatim embed:rst:leading-asterisk +Boolean – Not XOR elimination version 1

    +
    +\[\inferrule{\neg(F_1 \xor F_2) \mid -}{F_1 \lor \neg F_2}\]
    +

    endverbatim

    +
    + +
    +
    +NOT_XOR_ELIM2
    +

    verbatim embed:rst:leading-asterisk +Boolean – Not XOR elimination version 2

    +
    +\[\inferrule{\neg(F_1 \xor F_2) \mid -}{\neg F_1 \lor F_2}\]
    +

    endverbatim

    +
    + +
    +
    +QUANT_VAR_REORDERING
    +

    verbatim embed:rst:leading-asterisk +Quantifiers – Variable reordering

    +
    +\[\inferrule{-\mid (\forall X.\> F) = (\forall Y.\> F)} +{(\forall X.\> F) = (\forall Y.\> F)}\]
    +

    where \(Y\) is a reordering of \(X\).

    +

    endverbatim

    +
    + +
    +
    +REFL
    +

    verbatim embed:rst:leading-asterisk +Equality – Reflexivity

    +
    +\[\inferrule{-\mid t}{t = t}\]
    +

    endverbatim

    +
    + +
    +
    +REORDERING
    +

    verbatim embed:rst:leading-asterisk +Boolean – Reordering

    +
    +\[\inferrule{C_1 \mid C_2}{C_2}\]
    +

    where +the multiset representations of \(C_1\) and \(C_2\) are the same. +endverbatim

    +
    + +
    +
    +RESOLUTION
    +

    verbatim embed:rst:leading-asterisk +Boolean – Resolution

    +
    +\[\inferrule{C_1, C_2 \mid pol, L}{C}\]
    +

    where

    +
      +
    • \(C_1\) and \(C_2\) are nodes viewed as clauses, i.e., either an +OR node with each children viewed as a literal or a node viewed as a +literal. Note that an OR node could also be a literal.

    • +
    • \(pol\) is either true or false, representing the polarity of the +pivot on the first clause

    • +
    • \(L\) is the pivot of the resolution, which occurs as is (resp. under +a NOT) in \(C_1\) and negatively (as is) in \(C_2\) if +\(pol = \top\) (\(pol = \bot\)).

    • +
    +

    \(C\) is a clause resulting from collecting all the literals in +\(C_1\), minus the first occurrence of the pivot or its negation, and +\(C_2\), minus the first occurrence of the pivot or its negation, +according to the policy above. If the resulting clause has a single +literal, that literal itself is the result; if it has no literals, then the +result is false; otherwise it’s an OR node of the resulting literals.

    +

    Note that it may be the case that the pivot does not occur in the +clauses. In this case the rule is not unsound, but it does not correspond +to resolution but rather to a weakening of the clause that did not have a +literal eliminated. +endverbatim

    +
    + +
    +
    +RE_INTER
    +

    verbatim embed:rst:leading-asterisk +Strings – Regular expressions – Intersection

    +
    +\[\inferrule{t\in R_1,\,t\in R_2\mid -}{t\in \mathit{re.inter}(R_1,R_2)}\]
    +

    endverbatim

    +
    + +
    +
    +RE_UNFOLD_NEG
    +

    verbatim embed:rst:leading-asterisk +Strings – Regular expressions – Negative Unfold

    +
    +\[\inferrule{t \not \in \mathit{re}.\text{*}(R) \mid -}{t \neq \ \epsilon \ \wedge \forall L. L \leq 0 \vee \mathit{str.len}(t) < L \vee \mathit{pre}(t, L) \not \in R \vee \mathit{suf}(t, L) \not \in \mathit{re}.\text{*}(R)}\]
    +

    Or alternatively for regular expression concatenation:

    +
    +\[\inferrule{t \not \in \mathit{re}.\text{++}(R_1, \ldots, R_n)\mid -}{\forall L. L < 0 \vee \mathit{str.len}(t) < L \vee \mathit{pre}(t, L) \not \in R_1 \vee \mathit{suf}(t, L) \not \in \mathit{re}.\text{++}(R_2, \ldots, R_n)}\]
    +

    Note that in either case the varaible \(L\) has type \(Int\) and +name “@var.str_index”.

    +

    endverbatim

    +
    + +
    +
    +RE_UNFOLD_NEG_CONCAT_FIXED
    +

    verbatim embed:rst:leading-asterisk +Strings – Regular expressions – Unfold negative concatenation, fixed

    +
    +\[ \inferrule{t\not\in \mathit{re}.\text{re.++}(r_1, \ldots, r_n) \mid \bot}{ +\mathit{pre}(t, L) \not \in r_1 \vee \mathit{suf}(t, L) \not \in \mathit{re}.\text{re.++}(r_2, \ldots, r_n)}\]
    +

    where \(r_1\) has fixed length \(L\).

    +

    or alternatively for the reverse:

    +
    +\[\inferrule{t \not \in \mathit{re}.\text{re.++}(r_1, \ldots, r_n) \mid \top}{ +\mathit{suf}(t, str.len(t) - L) \not \in r_n \vee +\mathit{pre}(t, str.len(t) - L) \not \in \mathit{re}.\text{re.++}(r_1, \ldots, r_{n-1})}\]
    +

    where \(r_n\) has fixed length \(L\).

    +

    endverbatim

    +
    + +
    +
    +RE_UNFOLD_POS
    +

    verbatim embed:rst:leading-asterisk +Strings – Regular expressions – Positive Unfold

    +
    +\[\inferrule{t\in R\mid -}{F}\]
    +

    where \(F\) corresponds to the one-step unfolding of the premise. +This is implemented by \(\texttt{RegExpOpr::reduceRegExpPos}(t\in R)\). +endverbatim

    +
    + +
    +
    +SAT_EXTERNAL_PROVE
    +

    verbatim embed:rst:leading-asterisk +SAT external prove Refutation

    +
    +\[\inferrule{F_1 \dots F_n \mid D}{\bot}\]
    +

    where \(F_1 \dots F_n\) correspond to the input clauses in the +DIMACS file D. endverbatim

    +
    + +
    +
    +SAT_REFUTATION
    +

    verbatim embed:rst:leading-asterisk +SAT Refutation for assumption-based unsat cores

    +
    +\[\inferrule{F_1 \dots F_n \mid -}{\bot}\]
    +

    where \(F_1 \dots F_n\) correspond to the unsat core determined by the +SAT solver. endverbatim

    +
    + +
    +
    +SCOPE
    +

    verbatim embed:rst:leading-asterisk +Scope (a binder for assumptions)

    +
    +\[\inferruleSC{F \mid F_1 \dots F_n}{(F_1 \land \dots \land F_n) +\Rightarrow F}{if $F\neq\bot$} \textrm{ or } \inferruleSC{F \mid F_1 +\dots F_n}{\neg (F_1 \land \dots \land F_n)}{if $F=\bot$}\]
    +

    This rule has a dual purpose with +ASSUME. It is a way to close +assumptions in a proof. We require that \(F_1 \dots F_n\) are free +assumptions in P and say that \(F_1 \dots F_n\) are not free in +(SCOPE P). In other words, they are bound by this application. For +example, the proof node: +(SCOPE (ASSUME F) :args F) +has the conclusion \(F \Rightarrow F\) and has no free assumptions. +More generally, a proof with no free assumptions always concludes a valid +formula. endverbatim

    +
    + +
    +
    +SETS_EXT
    +

    verbatim embed:rst:leading-asterisk +Sets – Sets extensionality

    +
    +\[\inferrule{a \neq b\mid -} +{\mathit{set.member}(k,a)\neq\mathit{set.member}(k,b)}\]
    +

    where \(k\) is the \(\texttt{SETS_DEQ_DIFF}\) skolem for (a, b). +endverbatim

    +
    + +
    +
    +SETS_FILTER_DOWN
    +

    verbatim embed:rst:leading-asterisk +Sets – Sets filter down

    +
    +\[\inferrule{\mathit{set.member}(x,\mathit{set.filter}(P, a))\mid -} +{\mathit{set.member}(x,a) \wedge P(x)}\]
    +

    endverbatim

    +
    + +
    +
    +SETS_FILTER_UP
    +

    verbatim embed:rst:leading-asterisk +Sets – Sets filter up

    +
    +\[\inferrule{\mathit{set.member}(x,a)\mid P} +{\mathit{set.member}(x, \mathit{set.filter}(P, a)) = P(x)}\]
    +

    endverbatim

    +
    + +
    +
    +SETS_SINGLETON_INJ
    +

    verbatim embed:rst:leading-asterisk +Sets – Singleton injectivity

    +
    +\[\inferrule{\mathit{set.singleton}(t) = \mathit{set.singleton}(s)\mid -}{t=s}\]
    +

    endverbatim

    +
    + +
    +
    +SKOLEMIZE
    +

    verbatim embed:rst:leading-asterisk +Quantifiers – Skolemization

    +
    +\[\inferrule{\neg (\forall x_1\dots x_n.\> F)\mid -}{\neg F\sigma}\]
    +

    where \(\sigma\) maps \(x_1,\dots,x_n\) to their representative +skolems, which are skolems \(k_1,\dots,k_n\). For each \(k_i\), +its skolem identifier is QUANTIFIERS_SKOLEMIZE, +and its indices are \((\forall x_1\dots x_n.\> F)\) and \(x_i\). +endverbatim

    +
    + +
    +
    +SKOLEM_INTRO
    +

    verbatim embed:rst:leading-asterisk +Quantifiers – Skolem introduction

    +
    +\[\inferrule{-\mid k}{k = t}\]
    +

    where \(t\) is the unpurified form of skolem \(k\). +endverbatim

    +
    + +
    +
    +SPLIT
    +

    verbatim embed:rst:leading-asterisk +Boolean – Split

    +
    +\[\inferrule{- \mid F}{F \lor \neg F}\]
    +

    endverbatim

    +
    + +
    +
    +STRING_CODE_INJ
    +

    verbatim embed:rst:leading-asterisk +Strings – Code points

    +
    +\[\inferrule{-\mid t,s}{\mathit{to\_code}(t) = -1 \vee \mathit{to\_code}(t) \neq +\mathit{to\_code}(s) \vee t = s}\]
    +

    endverbatim

    +
    + +
    +
    +STRING_DECOMPOSE
    +

    verbatim embed:rst:leading-asterisk +Strings – Core rules – String decomposition

    +
    +\[\inferrule{\mathit{len}(t) \geq n\mid \bot}{t = w_1\cdot w_2 \wedge +\mathit{len}(w_1) = n}\]
    +

    where \(w_1\) is the purification skolem for \(\mathit{pre}(t,n)\) +and \(w_2\) is the purification skolem for \(\mathit{suf}(t,n)\). +Or alternatively for the reverse:

    +
    +\[\inferrule{\mathit{len}(t) \geq n\mid \top}{t = w_1\cdot w_2 \wedge +\mathit{len}(w_2) = n}\]
    +

    where \(w_1\) is the purification skolem for \(\mathit{pre}(t,n)\) and +\(w_2\) is the purification skolem for \(\mathit{suf}(t,n)\). +endverbatim

    +
    + +
    +
    +STRING_EAGER_REDUCTION
    +

    verbatim embed:rst:leading-asterisk +Strings – Extended functions – Eager reduction

    +
    +\[\inferrule{-\mid t}{R}\]
    +

    where \(R\) is \(\texttt{TermRegistry::eagerReduce}(t)\). +For details, see theory/strings/term_registry.h. +endverbatim

    +
    + +
    +
    +STRING_EXT
    +

    verbatim embed:rst:leading-asterisk +Strings – Extensionality

    +
    +\[\inferrule{s \neq t\mid -} +{\mathit{seq.len}(s) \neq \mathit{seq.len}(t) \vee (\mathit{seq.nth}(s,k)\neq\mathit{set.nth}(t,k) \wedge 0 \leq k \wedge k < \mathit{seq.len}(s))}\]
    +

    where \(s,t\) are terms of sequence type, \(k\) is the +\(\texttt{STRINGS_DEQ_DIFF}\) skolem for \(s,t\). Alternatively, +if \(s,t\) are terms of string type, we use +\(\mathit{seq.substr}(s,k,1)\) instead of \(\mathit{seq.nth}(s,k)\) +and similarly for \(t\).

    +

    endverbatim

    +
    + +
    +
    +STRING_LENGTH_NON_EMPTY
    +

    verbatim embed:rst:leading-asterisk +Strings – Core rules – Length non-empty

    +
    +\[\inferrule{t\neq \epsilon\mid -}{\mathit{len}(t) \neq 0}\]
    +

    endverbatim

    +
    + +
    +
    +STRING_LENGTH_POS
    +

    verbatim embed:rst:leading-asterisk +Strings – Core rules – Length positive

    +
    +\[\inferrule{-\mid t}{(\mathit{len}(t) = 0\wedge t= \epsilon)\vee \mathit{len}(t) +> 0}\]
    +

    endverbatim

    +
    + +
    +
    +STRING_REDUCTION
    +

    verbatim embed:rst:leading-asterisk +Strings – Extended functions – Reduction

    +
    +\[\inferrule{-\mid t}{R\wedge t = w}\]
    +

    where \(w\) is \(\texttt{StringsPreprocess::reduce}(t, R, +\dots)\). For details, see +theory/strings/theory_strings_preprocess.h. +In other words, \(R\) is the reduction predicate for extended +term \(t\), and \(w\) is the purification skolem for \(t\).

    +

    Notice that the free variables of \(R\) are \(w\) and the free +variables of \(t\). +endverbatim

    +
    + +
    +
    +STRING_SEQ_UNIT_INJ
    +

    verbatim embed:rst:leading-asterisk +Strings – Sequence unit

    +
    +\[\inferrule{\mathit{unit}(x) = \mathit{unit}(y)\mid -}{x = y}\]
    +

    Also applies to the case where \(\mathit{unit}(y)\) is a constant +sequence of length one. +endverbatim

    +
    + +
    +
    +SUBS
    +

    verbatim embed:rst:leading-asterisk +Builtin theory – Substitution

    +
    +\[\inferrule{F_1 \dots F_n \mid t, ids?}{t = t \circ \sigma_{ids}(F_n) +\circ \cdots \circ \sigma_{ids}(F_1)}\]
    +

    where \(\sigma_{ids}(F_i)\) are substitutions, which notice are applied +in reverse order. Notice that \(ids\) is a MethodId identifier, which +determines how to convert the formulas \(F_1 \dots F_n\) into +substitutions. It is an optional argument, where by default the premises +are equalities of the form (= x y) and converted into substitutions +\(x\mapsto y\). endverbatim

    +
    + +
    +
    +SYMM
    +

    verbatim embed:rst:leading-asterisk +Equality – Symmetry

    +
    +\[\inferrule{t_1 = t_2\mid -}{t_2 = t_1}\]
    +

    or

    +
    +\[\inferrule{t_1 \neq t_2\mid -}{t_2 \neq t_1}\]
    +

    endverbatim

    +
    + +
    +
    +THEORY_REWRITE
    +

    verbatim embed:rst:leading-asterisk +Other theory rewrite rules

    +
    +\[\inferrule{- \mid id, t = t'}{t = t'}\]
    +

    where id is the ProofRewriteRule of the theory rewrite +rule which transforms \(t\) to \(t'\).

    +

    In contrast to DSL_REWRITE, theory rewrite rules used by +this proof rule are not necessarily expressible in RARE. Each rule that can +be used in this proof rule are documented explicitly in cases within the +ProofRewriteRule enum. +endverbatim

    +
    + +
    +
    +TRANS
    +

    verbatim embed:rst:leading-asterisk +Equality – Transitivity

    +
    +\[\inferrule{t_1=t_2,\dots,t_{n-1}=t_n\mid -}{t_1 = t_n}\]
    +

    endverbatim

    +
    + +
    +
    +TRUE_ELIM
    +

    verbatim embed:rst:leading-asterisk +Equality – True elim

    +
    +\[\inferrule{F=\top\mid -}{F}\]
    +

    endverbatim

    +
    + +
    +
    +TRUE_INTRO
    +

    verbatim embed:rst:leading-asterisk +Equality – True intro

    +
    +\[\inferrule{F\mid -}{F = \top}\]
    +

    endverbatim

    +
    + +
    +
    +TRUST
    +

    verbatim embed:rst:leading-asterisk +Trusted rule

    +
    +\[\inferrule{F_1 \dots F_n \mid tid, F, ...}{F}\]
    +

    where \(tid\) is an identifier and \(F\) is a formula. This rule +is used when a formal justification of an inference step cannot be provided. +The formulas \(F_1 \dots F_n\) refer to a set of formulas that +entail \(F\), which may or may not be provided. +endverbatim

    +
    + +
    +
    +TRUST_THEORY_REWRITE
    +

    verbatim embed:rst:leading-asterisk +Trusted rules – Theory rewrite

    +
    +\[\inferrule{- \mid F, tid, rid}{F}\]
    +

    where \(F\) is an equality of the form \(t = t'\) where \(t'\) +is obtained by applying the kind of rewriting given by the method +identifier \(rid\), which is one of: +RW_REWRITE_THEORY_PRE, RW_REWRITE_THEORY_POST, +RW_REWRITE_EQ_EXT. Notice that the checker for this rule does not +replay the rewrite to ensure correctness, since theory rewriter methods are +not static. For example, the quantifiers rewriter involves constructing new +bound variables that are not guaranteed to be consistent on each call. +endverbatim

    +
    + +
    +
    +UNKNOWN
    +

    verbatim embed:rst:leading-asterisk +External – Alethe

    +

    Place holder for Alethe rules.

    +
    +\[\inferrule{P_1, \dots, P_n\mid \texttt{id}, Q, Q', A_1,\dots, A_m}{Q}\]
    +

    Note that the premises and arguments are arbitrary. It’s expected that +\(\texttt{id}\) refer to a proof rule in the external Alethe calculus, +and that \(Q'\) be the representation of Q to be printed by the Alethe +printer. +endverbatim

    +
    + +
    +
    +XOR_ELIM1
    +

    verbatim embed:rst:leading-asterisk +Boolean – XOR elimination version 1

    +
    +\[\inferrule{F_1 \xor F_2 \mid -}{F_1 \lor F_2}\]
    +

    endverbatim

    +
    + +
    +
    +XOR_ELIM2
    +

    verbatim embed:rst:leading-asterisk +Boolean – XOR elimination version 2

    +
    +\[\inferrule{F_1 \xor F_2 \mid -}{\neg F_1 \lor \neg F_2}\]
    +

    endverbatim

    +
    + +
    + +
    +
    +
    +class cvc5.ProofRewriteRule(value)
    +

    The ProofRewriteRule enum

    +
    +
    +ARITH_ABS_ELIM_INT
    +

    Auto-generated from RARE rule arith-abs-elim-int

    +
    + +
    +
    +ARITH_ABS_ELIM_REAL
    +

    Auto-generated from RARE rule arith-abs-elim-real

    +
    + +
    +
    +ARITH_ABS_EQ
    +

    Auto-generated from RARE rule arith-abs-eq

    +
    + +
    +
    +ARITH_ABS_INT_GT
    +

    Auto-generated from RARE rule arith-abs-int-gt

    +
    + +
    +
    +ARITH_ABS_REAL_GT
    +

    Auto-generated from RARE rule arith-abs-real-gt

    +
    + +
    +
    +ARITH_COSECENT_ELIM
    +

    Auto-generated from RARE rule arith-cosecent-elim

    +
    + +
    +
    +ARITH_COSINE_ELIM
    +

    Auto-generated from RARE rule arith-cosine-elim

    +
    + +
    +
    +ARITH_COTANGENT_ELIM
    +

    Auto-generated from RARE rule arith-cotangent-elim

    +
    + +
    +
    +ARITH_DIV_ELIM_TO_REAL1
    +

    Auto-generated from RARE rule arith-div-elim-to-real1

    +
    + +
    +
    +ARITH_DIV_ELIM_TO_REAL2
    +

    Auto-generated from RARE rule arith-div-elim-to-real2

    +
    + +
    +
    +ARITH_DIV_TOTAL_INT
    +

    Auto-generated from RARE rule arith-div-total-int

    +
    + +
    +
    +ARITH_DIV_TOTAL_REAL
    +

    Auto-generated from RARE rule arith-div-total-real

    +
    + +
    +
    +ARITH_DIV_TOTAL_ZERO_INT
    +

    Auto-generated from RARE rule arith-div-total-zero-int

    +
    + +
    +
    +ARITH_DIV_TOTAL_ZERO_REAL
    +

    Auto-generated from RARE rule arith-div-total-zero-real

    +
    + +
    +
    +ARITH_ELIM_GT
    +

    Auto-generated from RARE rule arith-elim-gt

    +
    + +
    +
    +ARITH_ELIM_INT_GT
    +

    Auto-generated from RARE rule arith-elim-int-gt

    +
    + +
    +
    +ARITH_ELIM_INT_LT
    +

    Auto-generated from RARE rule arith-elim-int-lt

    +
    + +
    +
    +ARITH_ELIM_LEQ
    +

    Auto-generated from RARE rule arith-elim-leq

    +
    + +
    +
    +ARITH_ELIM_LT
    +

    Auto-generated from RARE rule arith-elim-lt

    +
    + +
    +
    +ARITH_EQ_ELIM_INT
    +

    Auto-generated from RARE rule arith-eq-elim-int

    +
    + +
    +
    +ARITH_EQ_ELIM_REAL
    +

    Auto-generated from RARE rule arith-eq-elim-real

    +
    + +
    +
    +ARITH_GEQ_NORM1_INT
    +

    Auto-generated from RARE rule arith-geq-norm1-int

    +
    + +
    +
    +ARITH_GEQ_NORM1_REAL
    +

    Auto-generated from RARE rule arith-geq-norm1-real

    +
    + +
    +
    +ARITH_GEQ_NORM2
    +

    Auto-generated from RARE rule arith-geq-norm2

    +
    + +
    +
    +ARITH_GEQ_TIGHTEN
    +

    Auto-generated from RARE rule arith-geq-tighten

    +
    + +
    +
    +ARITH_INT_DIV_TOTAL
    +

    Auto-generated from RARE rule arith-int-div-total

    +
    + +
    +
    +ARITH_INT_DIV_TOTAL_ONE
    +

    Auto-generated from RARE rule arith-int-div-total-one

    +
    + +
    +
    +ARITH_INT_DIV_TOTAL_ZERO
    +

    Auto-generated from RARE rule arith-int-div-total-zero

    +
    + +
    +
    +ARITH_INT_MOD_TOTAL
    +

    Auto-generated from RARE rule arith-int-mod-total

    +
    + +
    +
    +ARITH_INT_MOD_TOTAL_ONE
    +

    Auto-generated from RARE rule arith-int-mod-total-one

    +
    + +
    +
    +ARITH_INT_MOD_TOTAL_ZERO
    +

    Auto-generated from RARE rule arith-int-mod-total-zero

    +
    + +
    +
    +ARITH_LEQ_NORM
    +

    Auto-generated from RARE rule arith-leq-norm

    +
    + +
    +
    +ARITH_MULT_DIST
    +

    Auto-generated from RARE rule arith-mult-dist

    +
    + +
    +
    +ARITH_MULT_FLATTEN
    +

    Auto-generated from RARE rule arith-mult-flatten

    +
    + +
    +
    +ARITH_MUL_ONE
    +

    Auto-generated from RARE rule arith-mul-one

    +
    + +
    +
    +ARITH_MUL_ZERO
    +

    Auto-generated from RARE rule arith-mul-zero

    +
    + +
    +
    +ARITH_PI_NOT_INT
    +

    Auto-generated from RARE rule arith-pi-not-int

    +
    + +
    +
    +ARITH_PLUS_FLATTEN
    +

    Auto-generated from RARE rule arith-plus-flatten

    +
    + +
    +
    +ARITH_POW_ELIM
    +

    verbatim embed:rst:leading-asterisk +Arithmetic – power elimination

    +
    +\[(x ^ c) = (x \cdot \ldots \cdot x)\]
    +

    where \(c\) is a non-negative integer.

    +

    endverbatim

    +
    + +
    +
    +ARITH_REFL_GEQ
    +

    Auto-generated from RARE rule arith-refl-geq

    +
    + +
    +
    +ARITH_REFL_GT
    +

    Auto-generated from RARE rule arith-refl-gt

    +
    + +
    +
    +ARITH_REFL_LEQ
    +

    Auto-generated from RARE rule arith-refl-leq

    +
    + +
    +
    +ARITH_REFL_LT
    +

    Auto-generated from RARE rule arith-refl-lt

    +
    + +
    +
    +ARITH_SECENT_ELIM
    +

    Auto-generated from RARE rule arith-secent-elim

    +
    + +
    +
    +ARITH_SINE_PI2
    +

    Auto-generated from RARE rule arith-sine-pi2

    +
    + +
    +
    +ARITH_SINE_ZERO
    +

    Auto-generated from RARE rule arith-sine-zero

    +
    + +
    +
    +ARITH_STRING_PRED_ENTAIL
    +

    verbatim embed:rst:leading-asterisk +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.

    +

    endverbatim

    +
    + +
    +
    +ARITH_STRING_PRED_SAFE_APPROX
    +

    verbatim embed:rst:leading-asterisk +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”.

    +

    endverbatim

    +
    + +
    +
    +ARITH_TANGENT_ELIM
    +

    Auto-generated from RARE rule arith-tangent-elim

    +
    + +
    +
    +ARITH_TO_INT_ELIM_TO_REAL
    +

    Auto-generated from RARE rule arith-to-int-elim-to-real

    +
    + +
    +
    +ARITH_TO_REAL_ELIM
    +

    Auto-generated from RARE rule arith-to-real-elim

    +
    + +
    +
    +ARRAYS_EQ_RANGE_EXPAND
    +

    verbatim embed:rst:leading-asterisk +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)\]
    +

    endverbatim

    +
    + +
    +
    +ARRAYS_SELECT_CONST
    +

    verbatim embed:rst:leading-asterisk +Arrays – Constant array select

    +
    +\[(select A x) = c\]
    +

    where \(A\) is a constant array storing element \(c\).

    +

    endverbatim

    +
    + +
    +
    +ARRAY_READ_OVER_WRITE
    +

    Auto-generated from RARE rule array-read-over-write

    +
    + +
    +
    +ARRAY_READ_OVER_WRITE2
    +

    Auto-generated from RARE rule array-read-over-write2

    +
    + +
    +
    +ARRAY_READ_OVER_WRITE_SPLIT
    +

    Auto-generated from RARE rule array-read-over-write-split

    +
    + +
    +
    +ARRAY_STORE_OVERWRITE
    +

    Auto-generated from RARE rule array-store-overwrite

    +
    + +
    +
    +ARRAY_STORE_SELF
    +

    Auto-generated from RARE rule array-store-self

    +
    + +
    +
    +BETA_REDUCE
    +

    verbatim embed:rst:leading-asterisk +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 Node::substitute. +endverbatim

    +
    + +
    +
    +BOOL_AND_CONF
    +

    Auto-generated from RARE rule bool-and-conf

    +
    + +
    +
    +BOOL_AND_CONF2
    +

    Auto-generated from RARE rule bool-and-conf2

    +
    + +
    +
    +BOOL_AND_DE_MORGAN
    +

    Auto-generated from RARE rule bool-and-de-morgan

    +
    + +
    +
    +BOOL_AND_FALSE
    +

    Auto-generated from RARE rule bool-and-false

    +
    + +
    +
    +BOOL_AND_FLATTEN
    +

    Auto-generated from RARE rule bool-and-flatten

    +
    + +
    +
    +BOOL_DOUBLE_NOT_ELIM
    +

    Auto-generated from RARE rule bool-double-not-elim

    +
    + +
    +
    +BOOL_EQ_FALSE
    +

    Auto-generated from RARE rule bool-eq-false

    +
    + +
    +
    +BOOL_EQ_NREFL
    +

    Auto-generated from RARE rule bool-eq-nrefl

    +
    + +
    +
    +BOOL_EQ_TRUE
    +

    Auto-generated from RARE rule bool-eq-true

    +
    + +
    +
    +BOOL_IMPLIES_DE_MORGAN
    +

    Auto-generated from RARE rule bool-implies-de-morgan

    +
    + +
    +
    +BOOL_IMPL_ELIM
    +

    Auto-generated from RARE rule bool-impl-elim

    +
    + +
    +
    +BOOL_IMPL_FALSE1
    +

    Auto-generated from RARE rule bool-impl-false1

    +
    + +
    +
    +BOOL_IMPL_FALSE2
    +

    Auto-generated from RARE rule bool-impl-false2

    +
    + +
    +
    +BOOL_IMPL_TRUE1
    +

    Auto-generated from RARE rule bool-impl-true1

    +
    + +
    +
    +BOOL_IMPL_TRUE2
    +

    Auto-generated from RARE rule bool-impl-true2

    +
    + +
    +
    +BOOL_NOT_EQ_ELIM1
    +

    Auto-generated from RARE rule bool-not-eq-elim1

    +
    + +
    +
    +BOOL_NOT_EQ_ELIM2
    +

    Auto-generated from RARE rule bool-not-eq-elim2

    +
    + +
    +
    +BOOL_NOT_FALSE
    +

    Auto-generated from RARE rule bool-not-false

    +
    + +
    +
    +BOOL_NOT_ITE_ELIM
    +

    Auto-generated from RARE rule bool-not-ite-elim

    +
    + +
    +
    +BOOL_NOT_TRUE
    +

    Auto-generated from RARE rule bool-not-true

    +
    + +
    +
    +BOOL_NOT_XOR_ELIM
    +

    Auto-generated from RARE rule bool-not-xor-elim

    +
    + +
    +
    +BOOL_OR_AND_DISTRIB
    +

    Auto-generated from RARE rule bool-or-and-distrib

    +
    + +
    +
    +BOOL_OR_DE_MORGAN
    +

    Auto-generated from RARE rule bool-or-de-morgan

    +
    + +
    +
    +BOOL_OR_FLATTEN
    +

    Auto-generated from RARE rule bool-or-flatten

    +
    + +
    +
    +BOOL_OR_TAUT
    +

    Auto-generated from RARE rule bool-or-taut

    +
    + +
    +
    +BOOL_OR_TAUT2
    +

    Auto-generated from RARE rule bool-or-taut2

    +
    + +
    +
    +BOOL_OR_TRUE
    +

    Auto-generated from RARE rule bool-or-true

    +
    + +
    +
    +BOOL_XOR_COMM
    +

    Auto-generated from RARE rule bool-xor-comm

    +
    + +
    +
    +BOOL_XOR_ELIM
    +

    Auto-generated from RARE rule bool-xor-elim

    +
    + +
    +
    +BOOL_XOR_FALSE
    +

    Auto-generated from RARE rule bool-xor-false

    +
    + +
    +
    +BOOL_XOR_NREFL
    +

    Auto-generated from RARE rule bool-xor-nrefl

    +
    + +
    +
    +BOOL_XOR_REFL
    +

    Auto-generated from RARE rule bool-xor-refl

    +
    + +
    +
    +BOOL_XOR_TRUE
    +

    Auto-generated from RARE rule bool-xor-true

    +
    + +
    +
    +BV_ADD_COMBINE_LIKE_TERMS
    +

    verbatim embed:rst:leading-asterisk +Bitvectors – Combine like terms during addition by counting terms +endverbatim

    +
    + +
    +
    +BV_ADD_TWO
    +

    Auto-generated from RARE rule bv-add-two

    +
    + +
    +
    +BV_ADD_ZERO
    +

    Auto-generated from RARE rule bv-add-zero

    +
    + +
    +
    +BV_AND_CONCAT_PULLUP
    +

    Auto-generated from RARE rule bv-and-concat-pullup

    +
    + +
    +
    +BV_AND_FLATTEN
    +

    Auto-generated from RARE rule bv-and-flatten

    +
    + +
    +
    +BV_AND_ONE
    +

    Auto-generated from RARE rule bv-and-one

    +
    + +
    +
    +BV_AND_SIMPLIFY_1
    +

    Auto-generated from RARE rule bv-and-simplify-1

    +
    + +
    +
    +BV_AND_SIMPLIFY_2
    +

    Auto-generated from RARE rule bv-and-simplify-2

    +
    + +
    +
    +BV_AND_ZERO
    +

    Auto-generated from RARE rule bv-and-zero

    +
    + +
    +
    +BV_ASHR_BY_CONST_0
    +

    Auto-generated from RARE rule bv-ashr-by-const-0

    +
    + +
    +
    +BV_ASHR_BY_CONST_1
    +

    Auto-generated from RARE rule bv-ashr-by-const-1

    +
    + +
    +
    +BV_ASHR_BY_CONST_2
    +

    Auto-generated from RARE rule bv-ashr-by-const-2

    +
    + +
    +
    +BV_ASHR_ZERO
    +

    Auto-generated from RARE rule bv-ashr-zero

    +
    + +
    +
    +BV_BITWISE_IDEMP_1
    +

    Auto-generated from RARE rule bv-bitwise-idemp-1

    +
    + +
    +
    +BV_BITWISE_IDEMP_2
    +

    Auto-generated from RARE rule bv-bitwise-idemp-2

    +
    + +
    +
    +BV_BITWISE_NOT_AND
    +

    Auto-generated from RARE rule bv-bitwise-not-and

    +
    + +
    +
    +BV_BITWISE_NOT_OR
    +

    Auto-generated from RARE rule bv-bitwise-not-or

    +
    + +
    +
    +BV_BITWISE_SLICING
    +

    verbatim embed:rst:leading-asterisk +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 endverbatim

    +
    + +
    +
    +BV_COMMUTATIVE_ADD
    +

    Auto-generated from RARE rule bv-commutative-add

    +
    + +
    +
    +BV_COMMUTATIVE_AND
    +

    Auto-generated from RARE rule bv-commutative-and

    +
    + +
    +
    +BV_COMMUTATIVE_MUL
    +

    Auto-generated from RARE rule bv-commutative-mul

    +
    + +
    +
    +BV_COMMUTATIVE_OR
    +

    Auto-generated from RARE rule bv-commutative-or

    +
    + +
    +
    +BV_COMMUTATIVE_XOR
    +

    Auto-generated from RARE rule bv-commutative-xor

    +
    + +
    +
    +BV_COMP_ELIMINATE
    +

    Auto-generated from RARE rule bv-comp-eliminate

    +
    + +
    +
    +BV_CONCAT_EXTRACT_MERGE
    +

    Auto-generated from RARE rule bv-concat-extract-merge

    +
    + +
    +
    +BV_CONCAT_FLATTEN
    +

    Auto-generated from RARE rule bv-concat-flatten

    +
    + +
    +
    +BV_CONCAT_MERGE_CONST
    +

    Auto-generated from RARE rule bv-concat-merge-const

    +
    + +
    +
    +BV_CONCAT_TO_MULT
    +

    Auto-generated from RARE rule bv-concat-to-mult

    +
    + +
    +
    +BV_EQ_EXTRACT_ELIM1
    +

    Auto-generated from RARE rule bv-eq-extract-elim1

    +
    + +
    +
    +BV_EQ_EXTRACT_ELIM2
    +

    Auto-generated from RARE rule bv-eq-extract-elim2

    +
    + +
    +
    +BV_EQ_EXTRACT_ELIM3
    +

    Auto-generated from RARE rule bv-eq-extract-elim3

    +
    + +
    +
    +BV_EXTRACT_BITWISE_AND
    +

    Auto-generated from RARE rule bv-extract-bitwise-and

    +
    + +
    +
    +BV_EXTRACT_BITWISE_OR
    +

    Auto-generated from RARE rule bv-extract-bitwise-or

    +
    + +
    +
    +BV_EXTRACT_BITWISE_XOR
    +

    Auto-generated from RARE rule bv-extract-bitwise-xor

    +
    + +
    +
    +BV_EXTRACT_CONCAT_1
    +

    Auto-generated from RARE rule bv-extract-concat-1

    +
    + +
    +
    +BV_EXTRACT_CONCAT_2
    +

    Auto-generated from RARE rule bv-extract-concat-2

    +
    + +
    +
    +BV_EXTRACT_CONCAT_3
    +

    Auto-generated from RARE rule bv-extract-concat-3

    +
    + +
    +
    +BV_EXTRACT_CONCAT_4
    +

    Auto-generated from RARE rule bv-extract-concat-4

    +
    + +
    +
    +BV_EXTRACT_EXTRACT
    +

    Auto-generated from RARE rule bv-extract-extract

    +
    + +
    +
    +BV_EXTRACT_MULT_LEADING_BIT
    +

    Auto-generated from RARE rule bv-extract-mult-leading-bit

    +
    + +
    +
    +BV_EXTRACT_NOT
    +

    Auto-generated from RARE rule bv-extract-not

    +
    + +
    +
    +BV_EXTRACT_SIGN_EXTEND_1
    +

    Auto-generated from RARE rule bv-extract-sign-extend-1

    +
    + +
    +
    +BV_EXTRACT_SIGN_EXTEND_2
    +

    Auto-generated from RARE rule bv-extract-sign-extend-2

    +
    + +
    +
    +BV_EXTRACT_SIGN_EXTEND_3
    +

    Auto-generated from RARE rule bv-extract-sign-extend-3

    +
    + +
    +
    +BV_EXTRACT_WHOLE
    +

    Auto-generated from RARE rule bv-extract-whole

    +
    + +
    +
    +BV_ITE_CONST_CHILDREN_1
    +

    Auto-generated from RARE rule bv-ite-const-children-1

    +
    + +
    +
    +BV_ITE_CONST_CHILDREN_2
    +

    Auto-generated from RARE rule bv-ite-const-children-2

    +
    + +
    +
    +BV_ITE_EQUAL_CHILDREN
    +

    Auto-generated from RARE rule bv-ite-equal-children

    +
    + +
    +
    +BV_ITE_EQUAL_COND_1
    +

    Auto-generated from RARE rule bv-ite-equal-cond-1

    +
    + +
    +
    +BV_ITE_EQUAL_COND_2
    +

    Auto-generated from RARE rule bv-ite-equal-cond-2

    +
    + +
    +
    +BV_ITE_EQUAL_COND_3
    +

    Auto-generated from RARE rule bv-ite-equal-cond-3

    +
    + +
    +
    +BV_ITE_MERGE_ELSE_ELSE
    +

    Auto-generated from RARE rule bv-ite-merge-else-else

    +
    + +
    +
    +BV_ITE_MERGE_ELSE_IF
    +

    Auto-generated from RARE rule bv-ite-merge-else-if

    +
    + +
    +
    +BV_ITE_MERGE_THEN_ELSE
    +

    Auto-generated from RARE rule bv-ite-merge-then-else

    +
    + +
    +
    +BV_ITE_MERGE_THEN_IF
    +

    Auto-generated from RARE rule bv-ite-merge-then-if

    +
    + +
    +
    +BV_LSHR_BY_CONST_0
    +

    Auto-generated from RARE rule bv-lshr-by-const-0

    +
    + +
    +
    +BV_LSHR_BY_CONST_1
    +

    Auto-generated from RARE rule bv-lshr-by-const-1

    +
    + +
    +
    +BV_LSHR_BY_CONST_2
    +

    Auto-generated from RARE rule bv-lshr-by-const-2

    +
    + +
    +
    +BV_LSHR_ZERO
    +

    Auto-generated from RARE rule bv-lshr-zero

    +
    + +
    +
    +BV_LT_SELF
    +

    Auto-generated from RARE rule bv-lt-self

    +
    + +
    +
    +BV_MERGE_SIGN_EXTEND_1
    +

    Auto-generated from RARE rule bv-merge-sign-extend-1

    +
    + +
    +
    +BV_MERGE_SIGN_EXTEND_2
    +

    Auto-generated from RARE rule bv-merge-sign-extend-2

    +
    + +
    +
    +BV_MERGE_SIGN_EXTEND_3
    +

    Auto-generated from RARE rule bv-merge-sign-extend-3

    +
    + +
    +
    +BV_MULT_DISTRIB_1
    +

    Auto-generated from RARE rule bv-mult-distrib-1

    +
    + +
    +
    +BV_MULT_DISTRIB_2
    +

    Auto-generated from RARE rule bv-mult-distrib-2

    +
    + +
    +
    +BV_MULT_DISTRIB_CONST_ADD
    +

    Auto-generated from RARE rule bv-mult-distrib-const-add

    +
    + +
    +
    +BV_MULT_DISTRIB_CONST_NEG
    +

    Auto-generated from RARE rule bv-mult-distrib-const-neg

    +
    + +
    +
    +BV_MULT_DISTRIB_CONST_SUB
    +

    Auto-generated from RARE rule bv-mult-distrib-const-sub

    +
    + +
    +
    +BV_MULT_POW2_1
    +

    Auto-generated from RARE rule bv-mult-pow2-1

    +
    + +
    +
    +BV_MULT_POW2_2
    +

    Auto-generated from RARE rule bv-mult-pow2-2

    +
    + +
    +
    +BV_MULT_POW2_2B
    +

    Auto-generated from RARE rule bv-mult-pow2-2b

    +
    + +
    +
    +BV_MULT_SIMPLIFY
    +

    verbatim embed:rst:leading-asterisk +Bitvectors – Extract negations from multiplicands

    +
    +\[bvmul(bvneg(a),\ b,\ c) = bvneg(bvmul(a,\ b,\ c))\]
    +

    endverbatim

    +
    + +
    +
    +BV_MULT_SLT_MULT_1
    +

    Auto-generated from RARE rule bv-mult-slt-mult-1

    +
    + +
    +
    +BV_MULT_SLT_MULT_2
    +

    Auto-generated from RARE rule bv-mult-slt-mult-2

    +
    + +
    +
    +BV_MUL_FLATTEN
    +

    Auto-generated from RARE rule bv-mul-flatten

    +
    + +
    +
    +BV_MUL_ONE
    +

    Auto-generated from RARE rule bv-mul-one

    +
    + +
    +
    +BV_MUL_ZERO
    +

    Auto-generated from RARE rule bv-mul-zero

    +
    + +
    +
    +BV_NAND_ELIMINATE
    +

    Auto-generated from RARE rule bv-nand-eliminate

    +
    + +
    +
    +BV_NEG_ADD
    +

    Auto-generated from RARE rule bv-neg-add

    +
    + +
    +
    +BV_NEG_IDEMP
    +

    Auto-generated from RARE rule bv-neg-idemp

    +
    + +
    +
    +BV_NEG_MULT
    +

    Auto-generated from RARE rule bv-neg-mult

    +
    + +
    +
    +BV_NEG_SUB
    +

    Auto-generated from RARE rule bv-neg-sub

    +
    + +
    +
    +BV_NOR_ELIMINATE
    +

    Auto-generated from RARE rule bv-nor-eliminate

    +
    + +
    +
    +BV_NOT_IDEMP
    +

    Auto-generated from RARE rule bv-not-idemp

    +
    + +
    +
    +BV_NOT_NEQ
    +

    Auto-generated from RARE rule bv-not-neq

    +
    + +
    +
    +BV_NOT_SLE
    +

    Auto-generated from RARE rule bv-not-sle

    +
    + +
    +
    +BV_NOT_ULE
    +

    Auto-generated from RARE rule bv-not-ule

    +
    + +
    +
    +BV_NOT_ULT
    +

    Auto-generated from RARE rule bv-not-ult

    +
    + +
    +
    +BV_NOT_XOR
    +

    Auto-generated from RARE rule bv-not-xor

    +
    + +
    +
    +BV_OR_CONCAT_PULLUP
    +

    Auto-generated from RARE rule bv-or-concat-pullup

    +
    + +
    +
    +BV_OR_FLATTEN
    +

    Auto-generated from RARE rule bv-or-flatten

    +
    + +
    +
    +BV_OR_ONE
    +

    Auto-generated from RARE rule bv-or-one

    +
    + +
    +
    +BV_OR_SIMPLIFY_1
    +

    Auto-generated from RARE rule bv-or-simplify-1

    +
    + +
    +
    +BV_OR_SIMPLIFY_2
    +

    Auto-generated from RARE rule bv-or-simplify-2

    +
    + +
    +
    +BV_OR_ZERO
    +

    Auto-generated from RARE rule bv-or-zero

    +
    + +
    +
    +BV_REDAND_ELIMINATE
    +

    Auto-generated from RARE rule bv-redand-eliminate

    +
    + +
    +
    +BV_REDOR_ELIMINATE
    +

    Auto-generated from RARE rule bv-redor-eliminate

    +
    + +
    +
    +BV_REPEAT_ELIM
    +

    verbatim embed:rst:leading-asterisk +Bitvectors – Extract continuous substrings of bitvectors

    +
    +\[repeat(n,\ t) = concat(t ... t)\]
    +

    where \(t\) is repeated \(n\) times. +endverbatim

    +
    + +
    +
    +BV_ROTATE_LEFT_ELIMINATE_1
    +

    Auto-generated from RARE rule bv-rotate-left-eliminate-1

    +
    + +
    +
    +BV_ROTATE_LEFT_ELIMINATE_2
    +

    Auto-generated from RARE rule bv-rotate-left-eliminate-2

    +
    + +
    +
    +BV_ROTATE_RIGHT_ELIMINATE_1
    +

    Auto-generated from RARE rule bv-rotate-right-eliminate-1

    +
    + +
    +
    +BV_ROTATE_RIGHT_ELIMINATE_2
    +

    Auto-generated from RARE rule bv-rotate-right-eliminate-2

    +
    + +
    +
    +BV_SADDO_ELIMINATE
    +

    Auto-generated from RARE rule bv-saddo-eliminate

    +
    + +
    +
    +BV_SDIVO_ELIMINATE
    +

    Auto-generated from RARE rule bv-sdivo-eliminate

    +
    + +
    +
    +BV_SDIV_ELIMINATE
    +

    Auto-generated from RARE rule bv-sdiv-eliminate

    +
    + +
    +
    +BV_SDIV_ELIMINATE_FEWER_BITWISE_OPS
    +

    Auto-generated from RARE rule bv-sdiv-eliminate-fewer-bitwise-ops

    +
    + +
    +
    +BV_SGE_ELIMINATE
    +

    Auto-generated from RARE rule bv-sge-eliminate

    +
    + +
    +
    +BV_SGT_ELIMINATE
    +

    Auto-generated from RARE rule bv-sgt-eliminate

    +
    + +
    +
    +BV_SHL_BY_CONST_0
    +

    Auto-generated from RARE rule bv-shl-by-const-0

    +
    + +
    +
    +BV_SHL_BY_CONST_1
    +

    Auto-generated from RARE rule bv-shl-by-const-1

    +
    + +
    +
    +BV_SHL_BY_CONST_2
    +

    Auto-generated from RARE rule bv-shl-by-const-2

    +
    + +
    +
    +BV_SHL_ZERO
    +

    Auto-generated from RARE rule bv-shl-zero

    +
    + +
    +
    +BV_SIGN_EXTEND_ELIMINATE
    +

    Auto-generated from RARE rule bv-sign-extend-eliminate

    +
    + +
    +
    +BV_SIGN_EXTEND_ELIMINATE_0
    +

    Auto-generated from RARE rule bv-sign-extend-eliminate-0

    +
    + +
    +
    +BV_SIGN_EXTEND_EQ_CONST_1
    +

    Auto-generated from RARE rule bv-sign-extend-eq-const-1

    +
    + +
    +
    +BV_SIGN_EXTEND_EQ_CONST_2
    +

    Auto-generated from RARE rule bv-sign-extend-eq-const-2

    +
    + +
    +
    +BV_SIGN_EXTEND_ULT_CONST_1
    +

    Auto-generated from RARE rule bv-sign-extend-ult-const-1

    +
    + +
    +
    +BV_SIGN_EXTEND_ULT_CONST_2
    +

    Auto-generated from RARE rule bv-sign-extend-ult-const-2

    +
    + +
    +
    +BV_SIGN_EXTEND_ULT_CONST_3
    +

    Auto-generated from RARE rule bv-sign-extend-ult-const-3

    +
    + +
    +
    +BV_SIGN_EXTEND_ULT_CONST_4
    +

    Auto-generated from RARE rule bv-sign-extend-ult-const-4

    +
    + +
    +
    +BV_SLE_ELIMINATE
    +

    Auto-generated from RARE rule bv-sle-eliminate

    +
    + +
    +
    +BV_SLE_SELF
    +

    Auto-generated from RARE rule bv-sle-self

    +
    + +
    +
    +BV_SLT_ELIMINATE
    +

    Auto-generated from RARE rule bv-slt-eliminate

    +
    + +
    +
    +BV_SLT_ZERO
    +

    Auto-generated from RARE rule bv-slt-zero

    +
    + +
    +
    +BV_SMOD_ELIMINATE
    +

    Auto-generated from RARE rule bv-smod-eliminate

    +
    + +
    +
    +BV_SMOD_ELIMINATE_FEWER_BITWISE_OPS
    +

    Auto-generated from RARE rule bv-smod-eliminate-fewer-bitwise-ops

    +
    + +
    +
    +BV_SMULO_ELIMINATE
    +

    verbatim embed:rst:leading-asterisk +Bitvectors – Unsigned multiplication overflow detection elimination

    +

    See M.Gok, M.J. Schulte, P.I. Balzola, “Efficient integer multiplication +overflow detection circuits”, 2001. +http: +endverbatim

    +
    + +
    +
    +BV_SREM_ELIMINATE
    +

    Auto-generated from RARE rule bv-srem-eliminate

    +
    + +
    +
    +BV_SREM_ELIMINATE_FEWER_BITWISE_OPS
    +

    Auto-generated from RARE rule bv-srem-eliminate-fewer-bitwise-ops

    +
    + +
    +
    +BV_SSUBO_ELIMINATE
    +

    Auto-generated from RARE rule bv-ssubo-eliminate

    +
    + +
    +
    +BV_SUB_ELIMINATE
    +

    Auto-generated from RARE rule bv-sub-eliminate

    +
    + +
    +
    +BV_TO_NAT_ELIM
    +

    verbatim embed:rst:leading-asterisk +UF – Bitvector to natural elimination

    +
    +\[\texttt{bv2nat}(t) = t_1 + \ldots + t_n\]
    +

    where for \(i=1, \ldots, n\), \(t_i\) is +\(\texttt{ite}(x[i-1, i-1] = 1, 2^i, 0)\).

    +

    endverbatim

    +
    + +
    +
    +BV_UADDO_ELIMINATE
    +

    Auto-generated from RARE rule bv-uaddo-eliminate

    +
    + +
    +
    +BV_UDIV_ONE
    +

    Auto-generated from RARE rule bv-udiv-one

    +
    + +
    +
    +BV_UDIV_POW2_NOT_ONE
    +

    Auto-generated from RARE rule bv-udiv-pow2-not-one

    +
    + +
    +
    +BV_UDIV_ZERO
    +

    Auto-generated from RARE rule bv-udiv-zero

    +
    + +
    +
    +BV_UGE_ELIMINATE
    +

    Auto-generated from RARE rule bv-uge-eliminate

    +
    + +
    +
    +BV_UGT_ELIMINATE
    +

    Auto-generated from RARE rule bv-ugt-eliminate

    +
    + +
    +
    +BV_UGT_UREM
    +

    Auto-generated from RARE rule bv-ugt-urem

    +
    + +
    +
    +BV_ULE_ELIMINATE
    +

    Auto-generated from RARE rule bv-ule-eliminate

    +
    + +
    +
    +BV_ULE_MAX
    +

    Auto-generated from RARE rule bv-ule-max

    +
    + +
    +
    +BV_ULE_SELF
    +

    Auto-generated from RARE rule bv-ule-self

    +
    + +
    +
    +BV_ULE_ZERO
    +

    Auto-generated from RARE rule bv-ule-zero

    +
    + +
    +
    +BV_ULT_ADD_ONE
    +

    Auto-generated from RARE rule bv-ult-add-one

    +
    + +
    +
    +BV_ULT_ONE
    +

    Auto-generated from RARE rule bv-ult-one

    +
    + +
    +
    +BV_ULT_ONES
    +

    Auto-generated from RARE rule bv-ult-ones

    +
    + +
    +
    +BV_ULT_SELF
    +

    Auto-generated from RARE rule bv-ult-self

    +
    + +
    +
    +BV_ULT_ZERO_1
    +

    Auto-generated from RARE rule bv-ult-zero-1

    +
    + +
    +
    +BV_ULT_ZERO_2
    +

    Auto-generated from RARE rule bv-ult-zero-2

    +
    + +
    +
    +BV_UMULO_ELIMINATE
    +

    verbatim embed:rst:leading-asterisk +Bitvectors – Unsigned multiplication overflow detection elimination

    +

    See M.Gok, M.J. Schulte, P.I. Balzola, “Efficient integer multiplication +overflow detection circuits”, 2001. +http: +endverbatim

    +
    + +
    +
    +BV_UREM_ONE
    +

    Auto-generated from RARE rule bv-urem-one

    +
    + +
    +
    +BV_UREM_POW2_NOT_ONE
    +

    Auto-generated from RARE rule bv-urem-pow2-not-one

    +
    + +
    +
    +BV_UREM_SELF
    +

    Auto-generated from RARE rule bv-urem-self

    +
    + +
    +
    +BV_USUBO_ELIMINATE
    +

    Auto-generated from RARE rule bv-usubo-eliminate

    +
    + +
    +
    +BV_XNOR_ELIMINATE
    +

    Auto-generated from RARE rule bv-xnor-eliminate

    +
    + +
    +
    +BV_XOR_CONCAT_PULLUP
    +

    Auto-generated from RARE rule bv-xor-concat-pullup

    +
    + +
    +
    +BV_XOR_DUPLICATE
    +

    Auto-generated from RARE rule bv-xor-duplicate

    +
    + +
    +
    +BV_XOR_FLATTEN
    +

    Auto-generated from RARE rule bv-xor-flatten

    +
    + +
    +
    +BV_XOR_NOT
    +

    Auto-generated from RARE rule bv-xor-not

    +
    + +
    +
    +BV_XOR_ONES
    +

    Auto-generated from RARE rule bv-xor-ones

    +
    + +
    +
    +BV_XOR_SIMPLIFY_1
    +

    Auto-generated from RARE rule bv-xor-simplify-1

    +
    + +
    +
    +BV_XOR_SIMPLIFY_2
    +

    Auto-generated from RARE rule bv-xor-simplify-2

    +
    + +
    +
    +BV_XOR_SIMPLIFY_3
    +

    Auto-generated from RARE rule bv-xor-simplify-3

    +
    + +
    +
    +BV_XOR_ZERO
    +

    Auto-generated from RARE rule bv-xor-zero

    +
    + +
    +
    +BV_ZERO_EXTEND_ELIMINATE
    +

    Auto-generated from RARE rule bv-zero-extend-eliminate

    +
    + +
    +
    +BV_ZERO_EXTEND_ELIMINATE_0
    +

    Auto-generated from RARE rule bv-zero-extend-eliminate-0

    +
    + +
    +
    +BV_ZERO_EXTEND_EQ_CONST_1
    +

    Auto-generated from RARE rule bv-zero-extend-eq-const-1

    +
    + +
    +
    +BV_ZERO_EXTEND_EQ_CONST_2
    +

    Auto-generated from RARE rule bv-zero-extend-eq-const-2

    +
    + +
    +
    +BV_ZERO_ULE
    +

    Auto-generated from RARE rule bv-zero-ule

    +
    + +
    +
    +DISTINCT_BINARY_ELIM
    +

    Auto-generated from RARE rule distinct-binary-elim

    +
    + +
    +
    +DISTINCT_CARD_CONFLICT
    +

    verbatim embed:rst:leading-asterisk +Builtin – Distinct cardinality conflict

    +
    +\[\texttt{distinct}(t_1, \ldots, tn) = \bot\]
    +

    where \(n\) is greater than the cardinality of the type of +\(t_1, \ldots, t_n\).

    +

    endverbatim

    +
    + +
    +
    +DISTINCT_ELIM
    +

    verbatim embed:rst:leading-asterisk +Builtin – Distinct elimination

    +
    +\[\texttt{distinct}(t_1, t_2) = \neg (t_1 = t2)\]
    +

    if \(n = 2\), or

    +
    +\[\texttt{distinct}(t_1, \ldots, tn) = \bigwedge_{i=1}^n \bigwedge_{j=i+1}^n t_i \neq t_j\]
    +

    if \(n > 2\)

    +

    endverbatim

    +
    + +
    +
    +DT_COLLAPSE_SELECTOR
    +

    verbatim embed:rst:leading-asterisk +Datatypes – collapse selector

    +
    +\[s_i(c(t_1, \ldots, t_n)) = t_i\]
    +

    where \(s_i\) is the \(i^{th}\) selector for constructor \(c\).

    +

    endverbatim

    +
    + +
    +
    +DT_COLLAPSE_TESTER
    +

    verbatim embed:rst:leading-asterisk +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.

    +

    endverbatim

    +
    + +
    +
    +DT_COLLAPSE_TESTER_SINGLETON
    +

    verbatim embed:rst:leading-asterisk +Datatypes – collapse tester

    +
    +\[\mathit{is}_c(t) = true\]
    +

    where \(c\) is the only constructor of its associated datatype.

    +

    endverbatim

    +
    + +
    +
    +DT_COLLAPSE_UPDATER
    +

    verbatim embed:rst:leading-asterisk +Datatypes – collapse tester

    +
    +\[u_{c,i}(c(t_1, \ldots, t_i, \ldots, t_n), s) = c(t_1, \ldots, s, \ldots, t_n)\]
    +

    or alternatively

    +
    +\[u_{c,i}(d(t_1, \ldots, t_n), s) = d(t_1, \ldots, t_n)\]
    +

    where \(c\) and \(d\) are distinct constructors.

    +

    endverbatim

    +
    + +
    +
    +DT_CONS_EQ
    +

    verbatim embed:rst:leading-asterisk +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.

    +

    endverbatim

    +
    + +
    +
    +DT_CYCLE
    +

    verbatim embed:rst:leading-asterisk +Datatypes – cycle

    +
    +\[(x = t[x]) = \bot\]
    +

    where all terms on the path to \(x\) in \(t[x]\) are applications +of constructors, and this path is non-empty.

    +

    endverbatim

    +
    + +
    +
    +DT_INST
    +

    verbatim embed:rst:leading-asterisk +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\). +endverbatim

    +
    + +
    +
    +DT_MATCH_ELIM
    +

    verbatim embed:rst:leading-asterisk +Datatypes – match elimination

    +
    +\[\texttt{match}(t ((p_1 c_1) \ldots (p_n c_n))) = \texttt{ite}(F_1, r_1, \texttt{ite}( \ldots, r_n))\]
    +

    where for \(i=1, \ldots, n\), \(F_1\) is a formula that holds iff +\(t\) matches \(p_i\) and \(r_i\) is the result of a +substitution on \(c_i\) based on this match.

    +

    endverbatim

    +
    + +
    +
    +DT_UPDATER_ELIM
    +

    verbatim embed:rst:leading-asterisk +Datatypes - updater elimination

    +
    +\[u_{c,i}(t, s) = ite(\mathit{is}_c(t), c(s_0(t), \ldots, s, \ldots s_n(t)), t)\]
    +

    where \(s_i\) is the \(i^{th}\) selector for constructor \(c\).

    +

    endverbatim

    +
    + +
    +
    +EQ_COND_DEQ
    +

    Auto-generated from RARE rule eq-cond-deq

    +
    + +
    +
    +EQ_ITE_LIFT
    +

    Auto-generated from RARE rule eq-ite-lift

    +
    + +
    +
    +EQ_REFL
    +

    Auto-generated from RARE rule eq-refl

    +
    + +
    +
    +EQ_SYMM
    +

    Auto-generated from RARE rule eq-symm

    +
    + +
    +
    +EXISTS_ELIM
    +

    verbatim embed:rst:leading-asterisk +Quantifiers – Exists elimination

    +
    +\[\exists x_1\dots x_n.\> F = \neg \forall x_1\dots x_n.\> \neg F\]
    +

    endverbatim

    +
    + +
    +
    +INT_TO_BV_ELIM
    +

    verbatim embed:rst:leading-asterisk +UF – Integer to bitvector elimination

    +
    +\[\texttt{int2bv}_n(t) = (bvconcat t_1 \ldots t_n)\]
    +

    where for \(i=1, \ldots, n\), \(t_i\) is +\(\texttt{ite}(\texttt{mod}(t,2^n) \geq 2^{n-1}, 1, 0)\).

    +

    endverbatim

    +
    + +
    +
    +ITE_ELSE_FALSE
    +

    Auto-generated from RARE rule ite-else-false

    +
    + +
    +
    +ITE_ELSE_LOOKAHEAD
    +

    Auto-generated from RARE rule ite-else-lookahead

    +
    + +
    +
    +ITE_ELSE_LOOKAHEAD_NOT_SELF
    +

    Auto-generated from RARE rule ite-else-lookahead-not-self

    +
    + +
    +
    +ITE_ELSE_LOOKAHEAD_SELF
    +

    Auto-generated from RARE rule ite-else-lookahead-self

    +
    + +
    +
    +ITE_ELSE_NEG_LOOKAHEAD
    +

    Auto-generated from RARE rule ite-else-neg-lookahead

    +
    + +
    +
    +ITE_ELSE_TRUE
    +

    Auto-generated from RARE rule ite-else-true

    +
    + +
    +
    +ITE_EQ_BRANCH
    +

    Auto-generated from RARE rule ite-eq-branch

    +
    + +
    +
    +ITE_EXPAND
    +

    Auto-generated from RARE rule ite-expand

    +
    + +
    +
    +ITE_FALSE_COND
    +

    Auto-generated from RARE rule ite-false-cond

    +
    + +
    +
    +ITE_NEG_BRANCH
    +

    Auto-generated from RARE rule ite-neg-branch

    +
    + +
    +
    +ITE_NOT_COND
    +

    Auto-generated from RARE rule ite-not-cond

    +
    + +
    +
    +ITE_THEN_FALSE
    +

    Auto-generated from RARE rule ite-then-false

    +
    + +
    +
    +ITE_THEN_LOOKAHEAD
    +

    Auto-generated from RARE rule ite-then-lookahead

    +
    + +
    +
    +ITE_THEN_LOOKAHEAD_NOT_SELF
    +

    Auto-generated from RARE rule ite-then-lookahead-not-self

    +
    + +
    +
    +ITE_THEN_LOOKAHEAD_SELF
    +

    Auto-generated from RARE rule ite-then-lookahead-self

    +
    + +
    +
    +ITE_THEN_NEG_LOOKAHEAD
    +

    Auto-generated from RARE rule ite-then-neg-lookahead

    +
    + +
    +
    +ITE_THEN_TRUE
    +

    Auto-generated from RARE rule ite-then-true

    +
    + +
    +
    +ITE_TRUE_COND
    +

    Auto-generated from RARE rule ite-true-cond

    +
    + +
    +
    +LAMBDA_ELIM
    +

    verbatim embed:rst:leading-asterisk +Equality – Lambda elimination

    +
    +\[(\lambda x_1 \ldots x_n.\> f(x_1 \ldots x_n)) = f\]
    +

    endverbatim

    +
    + +
    +
    +MACRO_ARITH_STRING_PRED_ENTAIL
    +

    verbatim embed:rst:leading-asterisk +Arithmetic – strings predicate entailment

    +
    +\[(= s t) = c\]
    +
    +\[(>= s t) = c\]
    +

    where \(c\) is a Boolean constant. +This macro is elaborated by applications of EVALUATE, +ARITH_POLY_NORM, +ARITH_STRING_PRED_ENTAIL, +ARITH_STRING_PRED_SAFE_APPROX, +as well as other rewrites for normalizing arithmetic predicates.

    +

    endverbatim

    +
    + +
    +
    +MACRO_ARRAYS_DISTINCT_ARRAYS
    +

    verbatim embed:rst:leading-asterisk +Arrays – Macro distinct arrays

    +
    +\[(A = B) = \bot\]
    +

    where \(A\) and \(B\) are distinct array values, that is, +the Node::isConst method returns true for both.

    +

    endverbatim

    +
    + +
    +
    +MACRO_ARRAYS_NORMALIZE_CONSTANT
    +

    verbatim embed:rst:leading-asterisk +Arrays – Macro normalize constant

    +
    +\[A = B\]
    +

    where \(B\) is the result of normalizing the array value \(A\) +into a canonical form, using the internal method +TheoryArraysRewriter::normalizeConstant.

    +

    endverbatim

    +
    + +
    +
    +MACRO_BOOL_NNF_NORM
    +

    verbatim embed:rst:leading-asterisk +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.

    +

    endverbatim

    +
    + +
    +
    +MACRO_QUANT_MERGE_PRENEX
    +

    verbatim embed:rst:leading-asterisk +Quantifiers – Macro merge prenex

    +
    +\[\forall X_1.\> \ldots \forall X_n.\> F = \forall X.\> F\]
    +

    where \(X_1 \ldots X_n\) are lists of variables and \(X\) is the +result of removing duplicates from \(X_1 \ldots X_n\).

    +

    endverbatim

    +
    + +
    +
    +MACRO_QUANT_MINISCOPE
    +

    verbatim embed:rst:leading-asterisk +Quantifiers – Macro miniscoping

    +
    +\[\forall X.\> F_1 \wedge \cdots \wedge F_n = +G_1 \wedge \cdots \wedge G_n\]
    +

    where each \(G_i\) is semantically equivalent to +\(\forall X.\> F_i\), or alternatively

    +
    +\[\forall X.\> \ite{C}{F_1}{F_2} = \ite{C}{G_1}{G_2}\]
    +

    where \(C\) does not have any free variable in \(X\).

    +

    endverbatim

    +
    + +
    +
    +MACRO_QUANT_PARTITION_CONNECTED_FV
    +

    verbatim embed:rst:leading-asterisk +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\). +endverbatim

    +
    + +
    +
    +MACRO_QUANT_PRENEX
    +

    verbatim embed:rst:leading-asterisk +Quantifiers – Macro prenex

    +
    +\[(\forall X.\> F_1 \vee \cdots \vee (\forall Y.\> F_i) \vee \cdots \vee F_n) = (\forall X Z.\> F_1 \vee \cdots \vee F_i\{ Y \mapsto Z \} \vee \cdots \vee F_n)\]
    +

    endverbatim

    +
    + +
    +
    +MACRO_QUANT_REWRITE_BODY
    +

    verbatim embed:rst:leading-asterisk +Quantifiers – Macro quantifiers rewrite body

    +
    +\[\forall X.\> F = \forall X.\> G\]
    +

    where \(G\) is semantically equivalent to \(F\).

    +

    endverbatim

    +
    + +
    +
    +MACRO_QUANT_VAR_ELIM_EQ
    +

    verbatim embed:rst:leading-asterisk +Quantifiers – Macro variable elimination equality

    +
    +\[\forall x Y.\> F = \forall Y.\> F \{ x \mapsto t \}\]
    +

    where \(\neg F\) entails \(x = t\).

    +

    endverbatim

    +
    + +
    +
    +MACRO_QUANT_VAR_ELIM_INEQ
    +

    verbatim embed:rst:leading-asterisk +Quantifiers – Macro variable elimination inequality

    +
    +\[\forall x Y.\> F = \forall Y.\> G\]
    +

    where \(G\) is the result of replacing all literals containing +\(x\) with a constant. This is applied only when all such literals +are lower (resp. upper) bounds for \(x\).

    +

    endverbatim

    +
    + +
    +
    +MACRO_SUBSTR_STRIP_SYM_LENGTH
    +

    verbatim embed:rst:leading-asterisk +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\).

    +

    endverbatim

    +
    + +
    +
    +NONE
    +

    verbatim embed:rst:leading-asterisk +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 proof rule +and the THEORY_REWRITE +proof rule. +endverbatim

    +
    + +
    +
    +QUANT_DT_SPLIT
    +

    verbatim embed:rst:leading-asterisk +Quantifiers – Datatypes Split

    +
    +\[(\forall x Y.\> F) = (\forall X_1 Y. F_1) \vee \cdots \vee (\forall X_n Y. F_n)\]
    +

    where \(x\) is of a datatype type with constructors +\(C_1, \ldots, C_n\), where for each \(i = 1, \ldots, n\), +\(F_i\) is \(F \{ x \mapsto C_i(X_i) \}\).

    +

    endverbatim

    +
    + +
    +
    +QUANT_MERGE_PRENEX
    +

    verbatim embed:rst:leading-asterisk +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.

    +

    endverbatim

    +
    + +
    +
    +QUANT_MINISCOPE_AND
    +

    verbatim embed:rst:leading-asterisk +Quantifiers – Miniscoping and

    +
    +\[\forall X.\> F_1 \wedge \ldots \wedge F_n = +(\forall X.\> F_1) \wedge \ldots \wedge (\forall X.\> F_n)\]
    +

    endverbatim

    +
    + +
    +
    +QUANT_MINISCOPE_ITE
    +

    verbatim embed:rst:leading-asterisk +Quantifiers – Miniscoping ite

    +
    +\[\forall X.\> \ite{C}{F_1}{F_2} = \ite{C}{\forall X.\> F_1}{\forall X.\> F_2}\]
    +

    where \(C\) does not have any free variable in \(X\).

    +

    endverbatim

    +
    + +
    +
    +QUANT_MINISCOPE_OR
    +

    verbatim embed:rst:leading-asterisk +Quantifiers – Miniscoping or

    +
    +\[\forall X.\> F_1 \vee \ldots \vee F_n = (\forall X_1.\> F_1) \vee \ldots \vee (\forall X_n.\> F_n)\]
    +

    where \(X = X_1 \ldots X_n\), and the right hand side does not have any +free variable in \(X\).

    +

    endverbatim

    +
    + +
    +
    +QUANT_UNUSED_VARS
    +

    verbatim embed:rst:leading-asterisk +Quantifiers – Unused variables

    +
    +\[\forall X.\> F = \forall X_1.\> F\]
    +

    where \(X_1\) is the subset of \(X\) that appear free in \(F\) +and \(X_1\) does not contain duplicate variables.

    +

    endverbatim

    +
    + +
    +
    +QUANT_VAR_ELIM_EQ
    +

    verbatim embed:rst:leading-asterisk +Quantifiers – Macro variable elimination equality

    +
    +\[(\forall x.\> x \neq t \vee F) = F \{ x \mapsto t \}\]
    +

    or alternatively

    +
    +\[(\forall x.\> x \neq t) = \bot\]
    +

    endverbatim

    +
    + +
    +
    +RE_ALL_ELIM
    +

    Auto-generated from RARE rule re-all-elim

    +
    + +
    +
    +RE_CONCAT_EMP
    +

    Auto-generated from RARE rule re-concat-emp

    +
    + +
    +
    +RE_CONCAT_FLATTEN
    +

    Auto-generated from RARE rule re-concat-flatten

    +
    + +
    +
    +RE_CONCAT_MERGE
    +

    Auto-generated from RARE rule re-concat-merge

    +
    + +
    +
    +RE_CONCAT_NONE
    +

    Auto-generated from RARE rule re-concat-none

    +
    + +
    +
    +RE_CONCAT_STAR_REPEAT
    +

    Auto-generated from RARE rule re-concat-star-repeat

    +
    + +
    +
    +RE_CONCAT_STAR_SWAP
    +

    Auto-generated from RARE rule re-concat-star-swap

    +
    + +
    +
    +RE_DIFF_ELIM
    +

    Auto-generated from RARE rule re-diff-elim

    +
    + +
    +
    +RE_INTER_ALL
    +

    Auto-generated from RARE rule re-inter-all

    +
    + +
    +
    +RE_INTER_CSTRING
    +

    Auto-generated from RARE rule re-inter-cstring

    +
    + +
    +
    +RE_INTER_CSTRING_NEG
    +

    Auto-generated from RARE rule re-inter-cstring-neg

    +
    + +
    +
    +RE_INTER_DUP
    +

    Auto-generated from RARE rule re-inter-dup

    +
    + +
    +
    +RE_INTER_FLATTEN
    +

    Auto-generated from RARE rule re-inter-flatten

    +
    + +
    +
    +RE_INTER_NONE
    +

    Auto-generated from RARE rule re-inter-none

    +
    + +
    +
    +RE_INTER_UNION_INCLUSION
    +

    verbatim embed:rst:leading-asterisk +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.

    +

    endverbatim

    +
    + +
    +
    +RE_IN_COMP
    +

    Auto-generated from RARE rule re-in-comp

    +
    + +
    +
    +RE_IN_CSTRING
    +

    Auto-generated from RARE rule re-in-cstring

    +
    + +
    +
    +RE_IN_EMPTY
    +

    Auto-generated from RARE rule re-in-empty

    +
    + +
    +
    +RE_IN_SIGMA
    +

    Auto-generated from RARE rule re-in-sigma

    +
    + +
    +
    +RE_IN_SIGMA_STAR
    +

    Auto-generated from RARE rule re-in-sigma-star

    +
    + +
    +
    +RE_LOOP_ELIM
    +

    verbatim embed:rst:leading-asterisk +Strings – regular expression loop elimination

    +
    +\[re.loop_{l,u}(R) = re.union(R^l, \ldots, R^u)\]
    +

    where \(u \geq l\).

    +

    endverbatim

    +
    + +
    +
    +RE_LOOP_NEG
    +

    Auto-generated from RARE rule re-loop-neg

    +
    + +
    +
    +RE_OPT_ELIM
    +

    Auto-generated from RARE rule re-opt-elim

    +
    + +
    +
    +RE_STAR_NONE
    +

    Auto-generated from RARE rule re-star-none

    +
    + +
    +
    +RE_UNION_ALL
    +

    Auto-generated from RARE rule re-union-all

    +
    + +
    +
    +RE_UNION_DUP
    +

    Auto-generated from RARE rule re-union-dup

    +
    + +
    +
    +RE_UNION_FLATTEN
    +

    Auto-generated from RARE rule re-union-flatten

    +
    + +
    +
    +RE_UNION_NONE
    +

    Auto-generated from RARE rule re-union-none

    +
    + +
    +
    +SEQ_LEN_EMPTY
    +

    Auto-generated from RARE rule seq-len-empty

    +
    + +
    +
    +SEQ_LEN_REV
    +

    Auto-generated from RARE rule seq-len-rev

    +
    + +
    +
    +SEQ_LEN_UNIT
    +

    Auto-generated from RARE rule seq-len-unit

    +
    + +
    +
    +SEQ_NTH_UNIT
    +

    Auto-generated from RARE rule seq-nth-unit

    +
    + +
    +
    +SEQ_REV_CONCAT
    +

    Auto-generated from RARE rule seq-rev-concat

    +
    + +
    +
    +SEQ_REV_REV
    +

    Auto-generated from RARE rule seq-rev-rev

    +
    + +
    +
    +SEQ_REV_UNIT
    +

    Auto-generated from RARE rule seq-rev-unit

    +
    + +
    +
    +SETS_CARD_EMP
    +

    Auto-generated from RARE rule sets-card-emp

    +
    + +
    +
    +SETS_CARD_MINUS
    +

    Auto-generated from RARE rule sets-card-minus

    +
    + +
    +
    +SETS_CARD_SINGLETON
    +

    Auto-generated from RARE rule sets-card-singleton

    +
    + +
    +
    +SETS_CARD_UNION
    +

    Auto-generated from RARE rule sets-card-union

    +
    + +
    +
    +SETS_CHOOSE_SINGLETON
    +

    Auto-generated from RARE rule sets-choose-singleton

    +
    + +
    +
    +SETS_EQ_SINGLETON_EMP
    +

    Auto-generated from RARE rule sets-eq-singleton-emp

    +
    + +
    +
    +SETS_INSERT_ELIM
    +

    verbatim embed:rst:leading-asterisk +Sets – sets insert elimination

    +
    +\[\mathit{sets.insert}(t_1, \ldots, t_n, S) = \texttt{set.union}(\texttt{sets.singleton}(t_1), \ldots, \texttt{sets.singleton}(t_n), S)\]
    +

    endverbatim

    +
    + +
    +
    +SETS_INTER_COMM
    +

    Auto-generated from RARE rule sets-inter-comm

    +
    + +
    +
    +SETS_INTER_EMP1
    +

    Auto-generated from RARE rule sets-inter-emp1

    +
    + +
    +
    +SETS_INTER_EMP2
    +

    Auto-generated from RARE rule sets-inter-emp2

    +
    + +
    +
    +SETS_INTER_MEMBER
    +

    Auto-generated from RARE rule sets-inter-member

    +
    + +
    +
    +SETS_IS_EMPTY_ELIM
    +

    Auto-generated from RARE rule sets-is-empty-elim

    +
    + +
    +
    +SETS_IS_EMPTY_EVAL
    +

    verbatim embed:rst:leading-asterisk +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.

    +

    endverbatim

    +
    + +
    +
    +SETS_MEMBER_EMP
    +

    Auto-generated from RARE rule sets-member-emp

    +
    + +
    +
    +SETS_MEMBER_SINGLETON
    +

    Auto-generated from RARE rule sets-member-singleton

    +
    + +
    +
    +SETS_MINUS_EMP1
    +

    Auto-generated from RARE rule sets-minus-emp1

    +
    + +
    +
    +SETS_MINUS_EMP2
    +

    Auto-generated from RARE rule sets-minus-emp2

    +
    + +
    +
    +SETS_MINUS_MEMBER
    +

    Auto-generated from RARE rule sets-minus-member

    +
    + +
    +
    +SETS_MINUS_SELF
    +

    Auto-generated from RARE rule sets-minus-self

    +
    + +
    +
    +SETS_SUBSET_ELIM
    +

    Auto-generated from RARE rule sets-subset-elim

    +
    + +
    +
    +SETS_UNION_COMM
    +

    Auto-generated from RARE rule sets-union-comm

    +
    + +
    +
    +SETS_UNION_EMP1
    +

    Auto-generated from RARE rule sets-union-emp1

    +
    + +
    +
    +SETS_UNION_EMP2
    +

    Auto-generated from RARE rule sets-union-emp2

    +
    + +
    +
    +SETS_UNION_MEMBER
    +

    Auto-generated from RARE rule sets-union-member

    +
    + +
    +
    +STR_AT_ELIM
    +

    Auto-generated from RARE rule str-at-elim

    +
    + +
    +
    +STR_CONCAT_CLASH
    +

    Auto-generated from RARE rule str-concat-clash

    +
    + +
    +
    +STR_CONCAT_CLASH2
    +

    Auto-generated from RARE rule str-concat-clash2

    +
    + +
    +
    +STR_CONCAT_CLASH2_REV
    +

    Auto-generated from RARE rule str-concat-clash2-rev

    +
    + +
    +
    +STR_CONCAT_CLASH_CHAR
    +

    Auto-generated from RARE rule str-concat-clash-char

    +
    + +
    +
    +STR_CONCAT_CLASH_CHAR_REV
    +

    Auto-generated from RARE rule str-concat-clash-char-rev

    +
    + +
    +
    +STR_CONCAT_CLASH_REV
    +

    Auto-generated from RARE rule str-concat-clash-rev

    +
    + +
    +
    +STR_CONCAT_FLATTEN
    +

    Auto-generated from RARE rule str-concat-flatten

    +
    + +
    +
    +STR_CONCAT_FLATTEN_EQ
    +

    Auto-generated from RARE rule str-concat-flatten-eq

    +
    + +
    +
    +STR_CONCAT_FLATTEN_EQ_REV
    +

    Auto-generated from RARE rule str-concat-flatten-eq-rev

    +
    + +
    +
    +STR_CONCAT_UNIFY
    +

    Auto-generated from RARE rule str-concat-unify

    +
    + +
    +
    +STR_CONCAT_UNIFY_BASE
    +

    Auto-generated from RARE rule str-concat-unify-base

    +
    + +
    +
    +STR_CONCAT_UNIFY_BASE_REV
    +

    Auto-generated from RARE rule str-concat-unify-base-rev

    +
    + +
    +
    +STR_CONCAT_UNIFY_REV
    +

    Auto-generated from RARE rule str-concat-unify-rev

    +
    + +
    +
    +STR_CONTAINS_CONCAT_FIND
    +

    Auto-generated from RARE rule str-contains-concat-find

    +
    + +
    +
    +STR_CONTAINS_EMP
    +

    Auto-generated from RARE rule str-contains-emp

    +
    + +
    +
    +STR_CONTAINS_IS_EMP
    +

    Auto-generated from RARE rule str-contains-is-emp

    +
    + +
    +
    +STR_CONTAINS_LEQ_LEN_EQ
    +

    Auto-generated from RARE rule str-contains-leq-len-eq

    +
    + +
    +
    +STR_CONTAINS_LT_LEN
    +

    Auto-generated from RARE rule str-contains-lt-len

    +
    + +
    +
    +STR_CONTAINS_REFL
    +

    Auto-generated from RARE rule str-contains-refl

    +
    + +
    +
    +STR_CONTAINS_SPLIT_CHAR
    +

    Auto-generated from RARE rule str-contains-split-char

    +
    + +
    +
    +STR_EQ_CTN_FALSE
    +

    Auto-generated from RARE rule str-eq-ctn-false

    +
    + +
    +
    +STR_EQ_CTN_FULL_FALSE1
    +

    Auto-generated from RARE rule str-eq-ctn-full-false1

    +
    + +
    +
    +STR_EQ_CTN_FULL_FALSE2
    +

    Auto-generated from RARE rule str-eq-ctn-full-false2

    +
    + +
    +
    +STR_INDEXOF_CONTAINS_PRE
    +

    Auto-generated from RARE rule str-indexof-contains-pre

    +
    + +
    +
    +STR_INDEXOF_NO_CONTAINS
    +

    Auto-generated from RARE rule str-indexof-no-contains

    +
    + +
    +
    +STR_INDEXOF_RE_NONE
    +

    Auto-generated from RARE rule str-indexof-re-none

    +
    + +
    +
    +STR_INDEXOF_SELF
    +

    Auto-generated from RARE rule str-indexof-self

    +
    + +
    +
    +STR_IN_RE_CONCAT_STAR_CHAR
    +

    verbatim embed:rst:leading-asterisk +Strings – string in regular expression concatenation star character

    +
    +\[\begin{split}\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))\end{split}\]
    +

    where all strings in \(R\) have length one.

    +

    endverbatim

    +
    + +
    +
    +STR_IN_RE_CONSUME
    +

    verbatim embed:rst:leading-asterisk +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\).

    +

    endverbatim

    +
    + +
    +
    +STR_IN_RE_CONTAINS
    +

    Auto-generated from RARE rule str-in-re-contains

    +
    + +
    +
    +STR_IN_RE_EVAL
    +

    verbatim embed:rst:leading-asterisk +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.

    +

    endverbatim

    +
    + +
    +
    +STR_IN_RE_INTER_ELIM
    +

    Auto-generated from RARE rule str-in-re-inter-elim

    +
    + +
    +
    +STR_IN_RE_RANGE_ELIM
    +

    Auto-generated from RARE rule str-in-re-range-elim

    +
    + +
    +
    +STR_IN_RE_REQ_UNFOLD
    +

    Auto-generated from RARE rule str-in-re-req-unfold

    +
    + +
    +
    +STR_IN_RE_REQ_UNFOLD_REV
    +

    Auto-generated from RARE rule str-in-re-req-unfold-rev

    +
    + +
    +
    +STR_IN_RE_SIGMA
    +

    verbatim embed:rst:leading-asterisk +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)\]
    +

    endverbatim

    +
    + +
    +
    +STR_IN_RE_SIGMA_STAR
    +

    verbatim embed:rst:leading-asterisk +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{++}\).

    +

    endverbatim

    +
    + +
    +
    +STR_IN_RE_SKIP_UNFOLD
    +

    Auto-generated from RARE rule str-in-re-skip-unfold

    +
    + +
    +
    +STR_IN_RE_SKIP_UNFOLD_REV
    +

    Auto-generated from RARE rule str-in-re-skip-unfold-rev

    +
    + +
    +
    +STR_IN_RE_STRIP_CHAR
    +

    Auto-generated from RARE rule str-in-re-strip-char

    +
    + +
    +
    +STR_IN_RE_STRIP_CHAR_REV
    +

    Auto-generated from RARE rule str-in-re-strip-char-rev

    +
    + +
    +
    +STR_IN_RE_STRIP_CHAR_S_SINGLE
    +

    Auto-generated from RARE rule str-in-re-strip-char-s-single

    +
    + +
    +
    +STR_IN_RE_STRIP_CHAR_S_SINGLE_REV
    +

    Auto-generated from RARE rule str-in-re-strip-char-s-single-rev

    +
    + +
    +
    +STR_IN_RE_STRIP_PREFIX
    +

    Auto-generated from RARE rule str-in-re-strip-prefix

    +
    + +
    +
    +STR_IN_RE_STRIP_PREFIX_BASE
    +

    Auto-generated from RARE rule str-in-re-strip-prefix-base

    +
    + +
    +
    +STR_IN_RE_STRIP_PREFIX_BASE_NEG
    +

    Auto-generated from RARE rule str-in-re-strip-prefix-base-neg

    +
    + +
    +
    +STR_IN_RE_STRIP_PREFIX_BASE_NEG_REV
    +

    Auto-generated from RARE rule str-in-re-strip-prefix-base-neg-rev

    +
    + +
    +
    +STR_IN_RE_STRIP_PREFIX_BASE_REV
    +

    Auto-generated from RARE rule str-in-re-strip-prefix-base-rev

    +
    + +
    +
    +STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE
    +

    Auto-generated from RARE rule str-in-re-strip-prefix-base-s-single

    +
    + +
    +
    +STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG
    +

    Auto-generated from RARE rule str-in-re-strip-prefix-base-s-single-neg

    +
    + +
    +
    +STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG_REV
    +

    Auto-generated from RARE rule str-in-re-strip-prefix-base-s-single-neg-rev

    +
    + +
    +
    +STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_REV
    +

    Auto-generated from RARE rule str-in-re-strip-prefix-base-s-single-rev

    +
    + +
    +
    +STR_IN_RE_STRIP_PREFIX_NEG
    +

    Auto-generated from RARE rule str-in-re-strip-prefix-neg

    +
    + +
    +
    +STR_IN_RE_STRIP_PREFIX_NEG_REV
    +

    Auto-generated from RARE rule str-in-re-strip-prefix-neg-rev

    +
    + +
    +
    +STR_IN_RE_STRIP_PREFIX_REV
    +

    Auto-generated from RARE rule str-in-re-strip-prefix-rev

    +
    + +
    +
    +STR_IN_RE_STRIP_PREFIX_SRS_SINGLE
    +

    Auto-generated from RARE rule str-in-re-strip-prefix-srs-single

    +
    + +
    +
    +STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG
    +

    Auto-generated from RARE rule str-in-re-strip-prefix-srs-single-neg

    +
    + +
    +
    +STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG_REV
    +

    Auto-generated from RARE rule str-in-re-strip-prefix-srs-single-neg-rev

    +
    + +
    +
    +STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_REV
    +

    Auto-generated from RARE rule str-in-re-strip-prefix-srs-single-rev

    +
    + +
    +
    +STR_IN_RE_STRIP_PREFIX_SR_SINGLE
    +

    Auto-generated from RARE rule str-in-re-strip-prefix-sr-single

    +
    + +
    +
    +STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG
    +

    Auto-generated from RARE rule str-in-re-strip-prefix-sr-single-neg

    +
    + +
    +
    +STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG_REV
    +

    Auto-generated from RARE rule str-in-re-strip-prefix-sr-single-neg-rev

    +
    + +
    +
    +STR_IN_RE_STRIP_PREFIX_SR_SINGLE_REV
    +

    Auto-generated from RARE rule str-in-re-strip-prefix-sr-single-rev

    +
    + +
    +
    +STR_IN_RE_STRIP_PREFIX_S_SINGLE
    +

    Auto-generated from RARE rule str-in-re-strip-prefix-s-single

    +
    + +
    +
    +STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG
    +

    Auto-generated from RARE rule str-in-re-strip-prefix-s-single-neg

    +
    + +
    +
    +STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG_REV
    +

    Auto-generated from RARE rule str-in-re-strip-prefix-s-single-neg-rev

    +
    + +
    +
    +STR_IN_RE_STRIP_PREFIX_S_SINGLE_REV
    +

    Auto-generated from RARE rule str-in-re-strip-prefix-s-single-rev

    +
    + +
    +
    +STR_IN_RE_TEST_UNFOLD
    +

    Auto-generated from RARE rule str-in-re-test-unfold

    +
    + +
    +
    +STR_IN_RE_TEST_UNFOLD_REV
    +

    Auto-generated from RARE rule str-in-re-test-unfold-rev

    +
    + +
    +
    +STR_IN_RE_UNION_ELIM
    +

    Auto-generated from RARE rule str-in-re-union-elim

    +
    + +
    +
    +STR_LEN_CONCAT_REC
    +

    Auto-generated from RARE rule str-len-concat-rec

    +
    + +
    +
    +STR_LEN_REPLACE_INV
    +

    Auto-generated from RARE rule str-len-replace-inv

    +
    + +
    +
    +STR_LEN_SUBSTR_IN_RANGE
    +

    Auto-generated from RARE rule str-len-substr-in-range

    +
    + +
    +
    +STR_LEN_SUBSTR_UB1
    +

    Auto-generated from RARE rule str-len-substr-ub1

    +
    + +
    +
    +STR_LEN_SUBSTR_UB2
    +

    Auto-generated from RARE rule str-len-substr-ub2

    +
    + +
    +
    +STR_LEN_UPDATE_INV
    +

    Auto-generated from RARE rule str-len-update-inv

    +
    + +
    +
    +STR_LEQ_CONCAT_FALSE
    +

    Auto-generated from RARE rule str-leq-concat-false

    +
    + +
    +
    +STR_LEQ_CONCAT_TRUE
    +

    Auto-generated from RARE rule str-leq-concat-true

    +
    + +
    +
    +STR_LEQ_EMPTY
    +

    Auto-generated from RARE rule str-leq-empty

    +
    + +
    +
    +STR_LEQ_EMPTY_EQ
    +

    Auto-generated from RARE rule str-leq-empty-eq

    +
    + +
    +
    +STR_LT_ELIM
    +

    Auto-generated from RARE rule str-lt-elim

    +
    + +
    +
    +STR_PREFIXOF_ELIM
    +

    Auto-generated from RARE rule str-prefixof-elim

    +
    + +
    +
    +STR_PREFIXOF_ONE
    +

    Auto-generated from RARE rule str-prefixof-one

    +
    + +
    +
    +STR_REPLACE_ALL_NO_CONTAINS
    +

    Auto-generated from RARE rule str-replace-all-no-contains

    +
    + +
    +
    +STR_REPLACE_CONTAINS_PRE
    +

    Auto-generated from RARE rule str-replace-contains-pre

    +
    + +
    +
    +STR_REPLACE_EMPTY
    +

    Auto-generated from RARE rule str-replace-empty

    +
    + +
    +
    +STR_REPLACE_NO_CONTAINS
    +

    Auto-generated from RARE rule str-replace-no-contains

    +
    + +
    +
    +STR_REPLACE_PREFIX
    +

    Auto-generated from RARE rule str-replace-prefix

    +
    + +
    +
    +STR_REPLACE_RE_ALL_NONE
    +

    Auto-generated from RARE rule str-replace-re-all-none

    +
    + +
    +
    +STR_REPLACE_RE_NONE
    +

    Auto-generated from RARE rule str-replace-re-none

    +
    + +
    +
    +STR_REPLACE_SELF
    +

    Auto-generated from RARE rule str-replace-self

    +
    + +
    +
    +STR_SUBSTR_COMBINE1
    +

    Auto-generated from RARE rule str-substr-combine1

    +
    + +
    +
    +STR_SUBSTR_COMBINE2
    +

    Auto-generated from RARE rule str-substr-combine2

    +
    + +
    +
    +STR_SUBSTR_COMBINE3
    +

    Auto-generated from RARE rule str-substr-combine3

    +
    + +
    +
    +STR_SUBSTR_COMBINE4
    +

    Auto-generated from RARE rule str-substr-combine4

    +
    + +
    +
    +STR_SUBSTR_CONCAT1
    +

    Auto-generated from RARE rule str-substr-concat1

    +
    + +
    +
    +STR_SUBSTR_CONCAT2
    +

    Auto-generated from RARE rule str-substr-concat2

    +
    + +
    +
    +STR_SUBSTR_EMPTY_RANGE
    +

    Auto-generated from RARE rule str-substr-empty-range

    +
    + +
    +
    +STR_SUBSTR_EMPTY_START
    +

    Auto-generated from RARE rule str-substr-empty-start

    +
    + +
    +
    +STR_SUBSTR_EMPTY_START_NEG
    +

    Auto-generated from RARE rule str-substr-empty-start-neg

    +
    + +
    +
    +STR_SUBSTR_EMPTY_STR
    +

    Auto-generated from RARE rule str-substr-empty-str

    +
    + +
    +
    +STR_SUBSTR_EQ_EMPTY
    +

    Auto-generated from RARE rule str-substr-eq-empty

    +
    + +
    +
    +STR_SUBSTR_FULL
    +

    Auto-generated from RARE rule str-substr-full

    +
    + +
    +
    +STR_SUBSTR_FULL_EQ
    +

    Auto-generated from RARE rule str-substr-full-eq

    +
    + +
    +
    +STR_SUBSTR_LEN_INCLUDE
    +

    Auto-generated from RARE rule str-substr-len-include

    +
    + +
    +
    +STR_SUBSTR_LEN_INCLUDE_PRE
    +

    Auto-generated from RARE rule str-substr-len-include-pre

    +
    + +
    +
    +STR_SUBSTR_LEN_SKIP
    +

    Auto-generated from RARE rule str-substr-len-skip

    +
    + +
    +
    +STR_SUFFIXOF_ELIM
    +

    Auto-generated from RARE rule str-suffixof-elim

    +
    + +
    +
    +STR_SUFFIXOF_ONE
    +

    Auto-generated from RARE rule str-suffixof-one

    +
    + +
    +
    +STR_TO_INT_CONCAT_NEG_ONE
    +

    Auto-generated from RARE rule str-to-int-concat-neg-one

    +
    + +
    +
    +STR_TO_LOWER_CONCAT
    +

    Auto-generated from RARE rule str-to-lower-concat

    +
    + +
    +
    +STR_TO_LOWER_FROM_INT
    +

    Auto-generated from RARE rule str-to-lower-from-int

    +
    + +
    +
    +STR_TO_LOWER_LEN
    +

    Auto-generated from RARE rule str-to-lower-len

    +
    + +
    +
    +STR_TO_LOWER_UPPER
    +

    Auto-generated from RARE rule str-to-lower-upper

    +
    + +
    +
    +STR_TO_UPPER_CONCAT
    +

    Auto-generated from RARE rule str-to-upper-concat

    +
    + +
    +
    +STR_TO_UPPER_FROM_INT
    +

    Auto-generated from RARE rule str-to-upper-from-int

    +
    + +
    +
    +STR_TO_UPPER_LEN
    +

    Auto-generated from RARE rule str-to-upper-len

    +
    + +
    +
    +STR_TO_UPPER_LOWER
    +

    Auto-generated from RARE rule str-to-upper-lower

    +
    + +
    +
    +UF_BV2NAT_GEQ_ELIM
    +

    Auto-generated from RARE rule uf-bv2nat-geq-elim

    +
    + +
    +
    +UF_BV2NAT_INT2BV
    +

    Auto-generated from RARE rule uf-bv2nat-int2bv

    +
    + +
    +
    +UF_BV2NAT_INT2BV_EXTEND
    +

    Auto-generated from RARE rule uf-bv2nat-int2bv-extend

    +
    + +
    +
    +UF_BV2NAT_INT2BV_EXTRACT
    +

    Auto-generated from RARE rule uf-bv2nat-int2bv-extract

    +
    + +
    +
    +UF_INT2BV_BV2NAT
    +

    Auto-generated from RARE rule uf-int2bv-bv2nat

    +
    + +
    +
    +UF_INT2BV_BVULE_EQUIV
    +

    Auto-generated from RARE rule uf-int2bv-bvule-equiv

    +
    + +
    +
    +UF_INT2BV_BVULT_EQUIV
    +

    Auto-generated from RARE rule uf-int2bv-bvult-equiv

    +
    + +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/python.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/python.html new file mode 100644 index 0000000000..e9a3eedd70 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/python.html @@ -0,0 +1,220 @@ + + + + + + + + + + + + + Base Python API — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Base Python API

    +

    This is the base Python API. +It is implemented on top of the C++ API and mirrors the C++ API.

    +

    For a higher-level, more pythonic programming experience, cvc5 provides the +pythonic API.

    +
    +
    +
    +
    +

    Classes

    + +
    +
    +

    Enums

    + +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/quickstart.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/quickstart.html new file mode 100644 index 0000000000..d91787f7ce --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/quickstart.html @@ -0,0 +1,1095 @@ + + + + + + + + + + + + + Quickstart Guide — cvc5 documentation + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Quickstart Guide

    +

    First, create a cvc5 term manager instance:

    +
    tm = cvc5.TermManager()
    +
    +
    +

    Then, create a cvc5 solver instance:

    +
    solver = cvc5.Solver(tm)
    +
    +
    +

    We will ask the solver to produce models and unsat cores in the following, +and for this we have to enable the following options.

    +
    solver.setOption("produce-models", "true")
    +solver.setOption("produce-unsat-cores", "true")
    +
    +
    +

    Next we set the logic. +The simplest way to set a logic for the solver is to choose "ALL". +This enables all logics in the solver. +Alternatively, "QF_ALL" enables all logics without quantifiers. +To optimize the solver’s behavior for a more specific logic, +use the logic name, e.g. "QF_BV" or "QF_AUFBV".

    +
    solver.setLogic("ALL")
    +
    +
    +

    In the following, we will define constraints of reals and integers. +For this, we first query the solver for the corresponding sorts.

    +
    realSort = tm.getRealSort()
    +intSort = tm.getIntegerSort()
    +
    +
    +

    Now, we create two constants x and y of sort Real, +and two constants a and b of sort Integer. +Notice that these are symbolic constants, but not actual values.

    +
    x = tm.mkConst(realSort, "x")
    +y = tm.mkConst(realSort, "y")
    +a = tm.mkConst(intSort, "a")
    +b = tm.mkConst(intSort, "b")
    +
    +
    +

    We define the following constraints regarding x and y:

    +
    +\[(0 < x) \wedge (0 < y) \wedge (x + y < 1) \wedge (x \leq y)\]
    +

    We construct the required terms and assert them as follows:

    +
    # Formally, constraints are also terms. Their sort is Boolean.
    +# We will construct these constraints gradually,
    +# by defining each of their components.
    +# We start with the constant numerals 0 and 1:
    +zero = tm.mkReal(0)
    +one = tm.mkReal(1)
    +
    +# Next, we construct the term x + y
    +xPlusY = tm.mkTerm(Kind.ADD, x, y)
    +
    +# Now we can define the constraints.
    +# They use the operators +, <=, and <.
    +# In the API, these are denoted by Plus, Leq, and Lt.
    +constraint1 = tm.mkTerm(Kind.LT, zero, x)
    +constraint2 = tm.mkTerm(Kind.LT, zero, y)
    +constraint3 = tm.mkTerm(Kind.LT, xPlusY, one)
    +constraint4 = tm.mkTerm(Kind.LEQ, x, y)
    +
    +# Now we assert the constraints to the solver.
    +solver.assertFormula(constraint1)
    +solver.assertFormula(constraint2)
    +solver.assertFormula(constraint3)
    +solver.assertFormula(constraint4)
    +
    +
    +

    Now we check if the asserted formula is satisfiable, that is, we check if +there exist values of sort Real for x and y that satisfy all +the constraints.

    +
    r1 = solver.checkSat()
    +
    +
    +

    The result we get from this satisfiability check is either sat, unsat +or unknown. +It’s status can be queried via isSat, isUnsat and isSatUnknown functions. +Alternatively, it can also be printed.

    +
    print("expected: sat")
    +print("result: ", r1)
    +
    +
    +

    This will print:

    +
    expected: sat
    +result: sat
    +
    +
    +

    Now, we query the solver for the values for x and y that satisfy +the constraints.

    +
    xVal = solver.getValue(x)
    +yVal = solver.getValue(y)
    +
    +
    +

    It is also possible to get values for terms that do not appear in the original +formula.

    +
    xMinusY = tm.mkTerm(Kind.SUB, x, y)
    +xMinusYVal = solver.getValue(xMinusY)
    +
    +
    +

    We can retrieve the Python representation of these values as follows.

    +
    xPy = xVal.getRealValue()
    +yPy = yVal.getRealValue()
    +xMinusYPy = xMinusYVal.getRealValue()
    +
    +print("value for x: ", xPy)
    +print("value for y: ", yPy)
    +print("value for x - y: ", xMinusYPy)
    +
    +
    +

    This will print the following:

    +
    value for x: 1/6
    +value for y: 1/6
    +value for x - y: 0
    +
    +
    +

    Another way to independently compute the value of x - y would be to +use the Python minus operator instead of asking the solver. +However, for more complex terms, it is easier to let the solver do the +evaluation.

    +
    xMinusYComputed = xPy - yPy
    +if xMinusYComputed == xMinusYPy:
    +  print("computed correctly")
    +else:
    +  print("computed incorrectly")
    +
    +
    +

    This will print:

    +
    computed correctly
    +
    +
    +

    Further, we can convert these values to strings:

    +
    xStr = str(xPy)
    +yStr = str(yPy)
    +xMinusYStr = str(xMinusYPy)
    +
    +
    +

    Next, we will check satisfiability of the same formula, +only this time over integer variables a and b. +For this, we first reset the assertions added to the solver.

    +
    solver.resetAssertions()
    +
    +
    +

    Next, we assert the same assertions as above, but with integers. +This time, we inline the construction of terms +to the assertion command.

    +
    solver.assertFormula(tm.mkTerm(Kind.LT, tm.mkInteger(0), a))
    +solver.assertFormula(tm.mkTerm(Kind.LT, tm.mkInteger(0), b))
    +solver.assertFormula(
    +    tm.mkTerm(
    +        Kind.LT, tm.mkTerm(Kind.ADD, a, b), tm.mkInteger(1)))
    +solver.assertFormula(tm.mkTerm(Kind.LEQ, a, b))
    +
    +
    +

    Now, we check whether the revised assertion is satisfiable.

    +
    r2 = solver.checkSat()
    +
    +
    +
    print("expected: unsat")
    +print("result:", r2)
    +
    +
    +

    This time the asserted formula is unsatisfiable:

    +
    expected: unsat
    +result: unsat
    +
    +
    +

    We can query the solver for an unsatisfiable core, that is, a subset +of the assertions that is already unsatisfiable.

    +
    unsatCore = solver.getUnsatCore()
    +print("unsat core size:", len(unsatCore))
    +print("unsat core:", unsatCore)
    +
    +
    +

    This will print:

    +
    unsat core size: 3
    +unsat core: [(< 0 a), (< 0 b), (< (+ a b) 1)]
    +
    +
    +
    +

    Example

    +
    +

    examples/api/python/quickstart.py

    +
      1#!/usr/bin/env python
    +  2###############################################################################
    +  3# Top contributors (to current version):
    +  4#   Yoni Zohar, Aina Niemetz, Alex Ozdemir
    +  5#
    +  6# This file is part of the cvc5 project.
    +  7#
    +  8# Copyright (c) 2009-2024 by the authors listed in the file AUTHORS
    +  9# in the top-level source directory and their institutional affiliations.
    + 10# All rights reserved.  See the file COPYING in the top-level source
    + 11# directory for licensing information.
    + 12# #############################################################################
    + 13#
    + 14# A simple demonstration of the api capabilities of cvc5, adapted from quickstart.cpp
    + 15##
    + 16
    + 17import cvc5
    + 18from cvc5 import Kind
    + 19
    + 20if __name__ == "__main__":
    + 21  # Create a term manager
    + 22  #! [docs-python-quickstart-0 start]
    + 23  tm = cvc5.TermManager()
    + 24  #! [docs-python-quickstart-0 end]
    + 25  # Create a solver
    + 26  #! [docs-python-quickstart-1 start]
    + 27  solver = cvc5.Solver(tm)
    + 28  #! [docs-python-quickstart-1 end]
    + 29
    + 30  # We will ask the solver to produce models and unsat cores,
    + 31  # hence these options should be turned on.
    + 32  #! [docs-python-quickstart-2 start]
    + 33  solver.setOption("produce-models", "true")
    + 34  solver.setOption("produce-unsat-cores", "true")
    + 35  #! [docs-python-quickstart-2 end]
    + 36
    + 37  # The simplest way to set a logic for the solver is to choose "ALL".
    + 38  # This enables all logics in the solver.
    + 39  # Alternatively, "QF_ALL" enables all logics without quantifiers.
    + 40  # To optimize the solver's behavior for a more specific logic,
    + 41  # use the logic name, e.g. "QF_BV" or "QF_AUFBV".
    + 42
    + 43  # Set the logic
    + 44  #! [docs-python-quickstart-3 start]
    + 45  solver.setLogic("ALL")
    + 46  #! [docs-python-quickstart-3 end]
    + 47
    + 48  # In this example, we will define constraints over reals and integers.
    + 49  # Hence, we first obtain the corresponding sorts.
    + 50  #! [docs-python-quickstart-4 start]
    + 51  realSort = tm.getRealSort()
    + 52  intSort = tm.getIntegerSort()
    + 53  #! [docs-python-quickstart-4 end]
    + 54
    + 55  # x and y will be real variables, while a and b will be integer variables.
    + 56  # Formally, their python type is Term,
    + 57  # and they are called "constants" in SMT jargon:
    + 58  #! [docs-python-quickstart-5 start]
    + 59  x = tm.mkConst(realSort, "x")
    + 60  y = tm.mkConst(realSort, "y")
    + 61  a = tm.mkConst(intSort, "a")
    + 62  b = tm.mkConst(intSort, "b")
    + 63  #! [docs-python-quickstart-5 end]
    + 64
    + 65  # Our constraints regarding x and y will be:
    + 66  #
    + 67  #   (1)  0 < x
    + 68  #   (2)  0 < y
    + 69  #   (3)  x + y < 1
    + 70  #   (4)  x <= y
    + 71  #
    + 72
    + 73  #! [docs-python-quickstart-6 start]
    + 74  # Formally, constraints are also terms. Their sort is Boolean.
    + 75  # We will construct these constraints gradually,
    + 76  # by defining each of their components.
    + 77  # We start with the constant numerals 0 and 1:
    + 78  zero = tm.mkReal(0)
    + 79  one = tm.mkReal(1)
    + 80
    + 81  # Next, we construct the term x + y
    + 82  xPlusY = tm.mkTerm(Kind.ADD, x, y)
    + 83
    + 84  # Now we can define the constraints.
    + 85  # They use the operators +, <=, and <.
    + 86  # In the API, these are denoted by Plus, Leq, and Lt.
    + 87  constraint1 = tm.mkTerm(Kind.LT, zero, x)
    + 88  constraint2 = tm.mkTerm(Kind.LT, zero, y)
    + 89  constraint3 = tm.mkTerm(Kind.LT, xPlusY, one)
    + 90  constraint4 = tm.mkTerm(Kind.LEQ, x, y)
    + 91
    + 92  # Now we assert the constraints to the solver.
    + 93  solver.assertFormula(constraint1)
    + 94  solver.assertFormula(constraint2)
    + 95  solver.assertFormula(constraint3)
    + 96  solver.assertFormula(constraint4)
    + 97  #! [docs-python-quickstart-6 end]
    + 98
    + 99  # Check if the formula is satisfiable, that is,
    +100  # are there real values for x and y that satisfy all the constraints?
    +101  #! [docs-python-quickstart-7 start]
    +102  r1 = solver.checkSat()
    +103  #! [docs-python-quickstart-7 end]
    +104
    +105  # The result is either SAT, UNSAT, or UNKNOWN.
    +106  # In this case, it is SAT.
    +107  #! [docs-python-quickstart-8 start]
    +108  print("expected: sat")
    +109  print("result: ", r1)
    +110  #! [docs-python-quickstart-8 end]
    +111
    +112  # We can get the values for x and y that satisfy the constraints.
    +113  #! [docs-python-quickstart-9 start]
    +114  xVal = solver.getValue(x)
    +115  yVal = solver.getValue(y)
    +116  #! [docs-python-quickstart-9 end]
    +117
    +118  # It is also possible to get values for compound terms,
    +119  # even if those did not appear in the original formula.
    +120  #! [docs-python-quickstart-10 start]
    +121  xMinusY = tm.mkTerm(Kind.SUB, x, y)
    +122  xMinusYVal = solver.getValue(xMinusY)
    +123  #! [docs-python-quickstart-10 end]
    +124
    +125  # We can now obtain the values as python values
    +126  #! [docs-python-quickstart-11 start]
    +127  xPy = xVal.getRealValue()
    +128  yPy = yVal.getRealValue()
    +129  xMinusYPy = xMinusYVal.getRealValue()
    +130
    +131  print("value for x: ", xPy)
    +132  print("value for y: ", yPy)
    +133  print("value for x - y: ", xMinusYPy)
    +134  #! [docs-python-quickstart-11 end]
    +135
    +136  # Another way to independently compute the value of x - y would be
    +137  # to use the python minus operator instead of asking the solver.
    +138  # However, for more complex terms,
    +139  # it is easier to let the solver do the evaluation.
    +140  #! [docs-python-quickstart-12 start]
    +141  xMinusYComputed = xPy - yPy
    +142  if xMinusYComputed == xMinusYPy:
    +143    print("computed correctly")
    +144  else:
    +145    print("computed incorrectly")
    +146  #! [docs-python-quickstart-12 end]
    +147
    +148  # Further, we can convert the values to strings
    +149  #! [docs-python-quickstart-13 start]
    +150  xStr = str(xPy)
    +151  yStr = str(yPy)
    +152  xMinusYStr = str(xMinusYPy)
    +153  #! [docs-python-quickstart-13 end]
    +154
    +155  # Next, we will check satisfiability of the same formula,
    +156  # only this time over integer variables a and b.
    +157
    +158  # We start by resetting assertions added to the solver.
    +159  #! [docs-python-quickstart-14 start]
    +160  solver.resetAssertions()
    +161  #! [docs-python-quickstart-14 end]
    +162
    +163  # Next, we assert the same assertions above with integers.
    +164  # This time, we inline the construction of terms
    +165  # to the assertion command.
    +166  #! [docs-python-quickstart-15 start]
    +167  solver.assertFormula(tm.mkTerm(Kind.LT, tm.mkInteger(0), a))
    +168  solver.assertFormula(tm.mkTerm(Kind.LT, tm.mkInteger(0), b))
    +169  solver.assertFormula(
    +170      tm.mkTerm(
    +171          Kind.LT, tm.mkTerm(Kind.ADD, a, b), tm.mkInteger(1)))
    +172  solver.assertFormula(tm.mkTerm(Kind.LEQ, a, b))
    +173  #! [docs-python-quickstart-15 end]
    +174
    +175  # We check whether the revised assertion is satisfiable.
    +176  #! [docs-python-quickstart-16 start]
    +177  r2 = solver.checkSat()
    +178  #! [docs-python-quickstart-16 end]
    +179
    +180  # This time the formula is unsatisfiable
    +181  #! [docs-python-quickstart-17 start]
    +182  print("expected: unsat")
    +183  print("result:", r2)
    +184  #! [docs-python-quickstart-17 end]
    +185
    +186  # We can query the solver for an unsatisfiable core, i.e., a subset
    +187  # of the assertions that is already unsatisfiable.
    +188  #! [docs-python-quickstart-18 start]
    +189  unsatCore = solver.getUnsatCore()
    +190  print("unsat core size:", len(unsatCore))
    +191  print("unsat core:", unsatCore)
    +192  #! [docs-python-quickstart-18 end]
    +
    +
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/result.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/result.html new file mode 100644 index 0000000000..a2b537896e --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/result.html @@ -0,0 +1,248 @@ + + + + + + + + + + + + + Result — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Result

    +

    This class represents a cvc5.Solver result.

    +

    A cvc5.Result encapsulates a 3-valued solver result (sat, unsat, +unknown). Explanations for unknown results are represented as enum +cvc5.UnknownExplanation and can be queried via +cvc5.Result.getUnknownExplanation().

    +
    +
    +
    +class cvc5.Result
    +

    Encapsulation of a three-valued solver result, with explanations.

    +

    Wrapper class for cvc5::Result.

    +
    +
    +getUnknownExplanation()
    +
    +
    Returns:
    +

    An explanation for an unknown query result.

    +
    +
    +
    + +
    +
    +isNull()
    +
    +
    Returns:
    +

    True if Result is empty, i.e., a nullary Result, and not +an actual result returned from a +Solver.checkSat() (and friends) query.

    +
    +
    +
    + +
    +
    +isSat()
    +
    +
    Returns:
    +

    True if query was a satisfiable +Solver.checkSat() or +Solver.checkSatAssuming() query.

    +
    +
    +
    + +
    +
    +isUnknown()
    +
    +
    Returns:
    +

    True if query was a Solver.checkSat() or +Solver.checkSatAssuming() query and cvc5 was +not able to determine (un)satisfiability.

    +
    +
    +
    + +
    +
    +isUnsat()
    +
    +
    Returns:
    +

    True if query was an usatisfiable +Solver.checkSat() or +Solver.checkSatAssuming() query.

    +
    +
    +
    + +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/roundingmode.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/roundingmode.html new file mode 100644 index 0000000000..2c06125c22 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/roundingmode.html @@ -0,0 +1,227 @@ + + + + + + + + + + + + + RoundingMode — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    RoundingMode

    +

    This enum represents a floating-point rounding mode.

    +
    +
    +
    +class cvc5.RoundingMode(value)
    +

    The RoundingMode enum

    +
    +
    +ROUND_NEAREST_TIES_TO_AWAY
    +

    Round to the nearest number away from zero.

    +

    If the two nearest floating-point numbers bracketing an unrepresentable +infinitely precise result are equally near), the one with larger magnitude +will be selected.

    +
    + +
    +
    +ROUND_NEAREST_TIES_TO_EVEN
    +

    Round to the nearest even number.

    +

    If the two nearest floating-point numbers bracketing an unrepresentable +infinitely precise result are equally near, the one with an even least +significant digit will be delivered.

    +
    + +
    +
    +ROUND_TOWARD_NEGATIVE
    +

    Round towards negative infinity (-oo).

    +

    The result shall be the format’s floating-point number (possibly -oo) +closest to and no less than the infinitely precise result.

    +
    + +
    +
    +ROUND_TOWARD_POSITIVE
    +

    Round towards positive infinity (SMT-LIB: +oo).

    +

    The result shall be the format’s floating-point number (possibly +oo) +closest to and no less than the infinitely precise result.

    +
    + +
    +
    +ROUND_TOWARD_ZERO
    +

    Round towards zero.

    +

    The result shall be the format’s floating-point number closest to and no +greater in magnitude than the infinitely precise result.

    +
    + +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/solver.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/solver.html new file mode 100644 index 0000000000..c6d8ee393c --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/solver.html @@ -0,0 +1,2966 @@ + + + + + + + + + + + + + Solver — cvc5 documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Solver

    +

    This class represents a cvc5 solver instance.

    +

    Terms, Sorts and +Ops are not tied to a cvc5.Solver +but associated with a cvc5.TermManager instance, which can be +shared between solver instances.

    +

    Solver options are configured via cvc5.Solver.setOption() +and queried via cvc5.Solver.getOption() +(for more information on configuration options, see Options).

    +
    +
    +
    +class cvc5.Solver
    +

    A cvc5 solver.

    +

    Wrapper class for cvc5::Solver.

    +
    +
    +addPlugin()
    +

    Add plugin to this solver. Its callbacks will be called throughout the +lifetime of this solver.

    +
    +
    Parameters:
    +

    p – The plugin to add to this solver.

    +
    +
    +
    + +
    +
    +addSygusAssume()
    +

    Add a formula to the set of Sygus assumptions.

    +

    SyGuS v2:

    +
    ( assume <term> )
    +
    +
    +
    +
    Parameters:
    +

    term – The formuula to add as an assumption.

    +
    +
    +
    + +
    +
    +addSygusConstraint()
    +

    Add a formula to the set of SyGuS constraints.

    +

    SyGuS v2:

    +
    ( constraint <term> )
    +
    +
    +
    +
    Parameters:
    +

    term – The formula to add as a constraint.

    +
    +
    +
    + +
    +
    +addSygusInvConstraint()
    +

    Add a set of SyGuS constraints to the current state that correspond +to an invariant synthesis problem.

    +

    SyGuS v2:

    +
    ( inv-constraint <inv> <pre> <trans> <post> )
    +
    +
    +
    +
    Parameters:
    +
      +
    • inv – The function-to-synthesize.

    • +
    • pre – The pre-condition.

    • +
    • trans – The transition relation.

    • +
    • post – The post-condition.

    • +
    +
    +
    +
    + +
    +
    +assertFormula()
    +

    Assert a formula

    +

    SMT-LIB:

    +
    ( assert <term> )
    +
    +
    +
    +
    Parameters:
    +

    term – The formula to assert.

    +
    +
    +
    + +
    +
    +blockModel()
    +

    Block the current model. Can be called only if immediately preceded +by a SAT or INVALID query.

    +

    SMT-LIB:

    +
    (block-model)
    +
    +
    +

    Requires enabling option +produce-models +to a mode other than none.

    +
    +

    Warning

    +

    This function is experimental and may change in future +versions.

    +
    +
    +
    Parameters:
    +

    mode – The mode to use for blocking

    +
    +
    +
    + +
    +
    +blockModelValues()
    +

    Block the current model values of (at least) the values in terms. +Can be called only if immediately preceded by a SAT query.

    +

    SMT-LIB:

    +
    (block-model-values ( <terms>+ ))
    +
    +
    +

    Requires enabling option +produce-models.

    +
    +

    Warning

    +

    This function is experimental and may change in future +versions.

    +
    +
    + +
    +
    +checkSat()
    +

    Check satisfiability.

    +

    SMT-LIB:

    +
    ( check-sat )
    +
    +
    +
    +
    Returns:
    +

    The result of the satisfiability check.

    +
    +
    +
    + +
    +
    +checkSatAssuming()
    +

    Check satisfiability assuming the given formula.

    +

    SMT-LIB:

    +
    ( check-sat-assuming ( <prop_literal> ) )
    +
    +
    +
    +
    Parameters:
    +

    assumptions – The formulas to assume.

    +
    +
    Returns:
    +

    The result of the satisfiability check.

    +
    +
    +
    + +
    +
    +checkSynth()
    +

    Try to find a solution for the synthesis conjecture corresponding +to the current list of functions-to-synthesize, universal variables +and constraints.

    +

    SyGuS v2:

    +
    ( check-synth )
    +
    +
    +
    +
    Returns:
    +

    The result of the check, which is “solution” if the check +found a solution in which case solutions are available via +getSynthSolutions, “no solution” if it was determined +there is no solution, or “unknown” otherwise.

    +
    +
    +
    + +
    +
    +checkSynthNext()
    +

    Try to find a next solution for the synthesis conjecture +corresponding to the current list of functions-to-synthesize, +universal variables and constraints. Must be called immediately +after a successful call to check-synth or check-synth-next. +Requires incremental mode.

    +

    SyGuS v2:

    +
    ( check-synth )
    +
    +
    +
    +
    Returns:
    +

    The result of the check, which is “solution” if the check +found a solution in which case solutions are available via +getSynthSolutions, “no solution” if it was determined +there is no solution, or “unknown” otherwise.

    +
    +
    +
    + +
    +
    +declareDatatype()
    +

    Create datatype sort.

    +

    SMT-LIB:

    +
    ( declare-datatype <symbol> <datatype_decl> )
    +
    +
    +
    +
    Parameters:
    +
      +
    • symbol – The name of the datatype sort.

    • +
    • ctors – The constructor declarations of the datatype sort.

    • +
    +
    +
    Returns:
    +

    The datatype sort.

    +
    +
    +
    + +
    +
    +declareFun()
    +

    Declare n-ary function symbol.

    +

    SMT-LIB:

    +
    ( declare-fun <symbol> ( <sort>* ) <sort> )
    +
    +
    +
    +
    Parameters:
    +
      +
    • symbol – The name of the function.

    • +
    • sorts – The sorts of the parameters to this function.

    • +
    • sort – The sort of the return value of this function.

    • +
    • fresh – If true, then this method always returns a new Term. +Otherwise, this method will always return the +same Term for each call with the given sorts and +symbol where fresh is false.

    • +
    +
    +
    Returns:
    +

    The function.

    +
    +
    +
    + +
    +
    +declarePool()
    +

    Declare a symbolic pool of terms with the given initial value.

    +

    SMT-LIB:

    +
    ( declare-pool <symbol> <sort> ( <term>* ) )
    +
    +
    +
    +

    Warning

    +

    This function is experimental and may change in future +versions.

    +
    +
    +
    Parameters:
    +
      +
    • symbol – The name of the pool.

    • +
    • sort – The sort of the elements of the pool.

    • +
    • initValue – The initial value of the pool.

    • +
    +
    +
    +
    + +
    +
    +declareSepHeap()
    +

    When using separation logic, this sets the location sort and the +datatype sort to the given ones. This function should be invoked +exactly once, before any separation logic constraints are provided.

    +
    +

    Warning

    +

    This function is experimental and may change in future +versions.

    +
    +
    +
    Parameters:
    +
      +
    • locSort – The location sort of the heap.

    • +
    • dataSort – The data sort of the heap.

    • +
    +
    +
    +
    + +
    +
    +declareSort()
    +

    Declare uninterpreted sort.

    +

    SMT-LIB:

    +
    ( declare-sort <symbol> <numeral> )
    +
    +
    +
    +

    Note

    +

    This corresponds to Solver.mkUninterpretedSort() if +arity = 0, and to +Solver.mkUninterpretedSortConstructorSort() if +arity > 0.

    +
    +
    +
    Parameters:
    +
      +
    • symbol – The name of the sort.

    • +
    • arity – The arity of the sort.

    • +
    • fresh – If true, then this method always returns a new Sort. +Otherwise, this method will always return the same +Sort for each call with the given arity and symbol +where fresh is false.

    • +
    +
    +
    Returns:
    +

    The sort.

    +
    +
    +
    + +
    +
    +declareSygusVar()
    +

    Append symbol to the current list of universal variables.

    +

    SyGuS v2:

    +
    ( declare-var <symbol> <sort> )
    +
    +
    +
    +
    Parameters:
    +
      +
    • sort – The sort of the universal variable.

    • +
    • symbol – The name of the universal variable.

    • +
    +
    +
    Returns:
    +

    The universal variable.

    +
    +
    +
    + +
    +
    +defineFun()
    +

    Define n-ary function.

    +

    SMT-LIB:

    +
    ( define-fun <function_def> )
    +
    +
    +
    +
    Parameters:
    +
      +
    • symbol – The name of the function.

    • +
    • bound_vars – The parameters to this function.

    • +
    • sort – The sort of the return value of this function.

    • +
    • term – The function body.

    • +
    • glbl – Determines whether this definition is global (i.e. +persists when popping the context).

    • +
    +
    +
    Returns:
    +

    The function.

    +
    +
    +
    + +
    +
    +defineFunRec()
    +

    Define recursive functions.

    +

    Supports the following arguments:

    +
      +
    • Term defineFunRec(str symbol, List[Term] bound_vars, Sort sort, Term term, bool glbl)

    • +
    • Term defineFunRec(Term fun, List[Term] bound_vars, Term term, bool glbl)

    • +
    +

    SMT-LIB:

    +
    ( define-funs-rec ( <function_decl>^n ) ( <term>^n ) )
    +
    +
    +

    Create elements of parameter funs with mkConst().

    +
    +
    Parameters:
    +
      +
    • funs – The sorted functions.

    • +
    • bound_vars – The list of parameters to the functions.

    • +
    • terms – The list of function bodies of the functions.

    • +
    • global – Determines whether this definition is global (i.e. +persists when popping the context).

    • +
    +
    +
    Returns:
    +

    The function.

    +
    +
    +
    + +
    +
    +defineFunsRec()
    +

    Define recursive functions.

    +

    SMT-LIB:

    +
    ( define-funs-rec ( <function_decl>^n ) ( <term>^n ) )
    +
    +
    +

    Create elements of parameter funs with mkConst().

    +
    +
    Parameters:
    +
      +
    • funs – The sorted functions.

    • +
    • bound_vars – The list of parameters to the functions.

    • +
    • terms – The list of function bodies of the functions.

    • +
    • glb – Determines whether this definition is global (i.e. +persists when popping the context).

    • +
    +
    +
    +
    + +
    +
    +findSynth()
    +

    Find a target term of interest using sygus enumeration with a +provided grammar.

    +

    SyGuS v2:

    +
    ( find-synth :target G)
    +
    +
    +
    +
    Parameters:
    +
      +
    • fst – The identifier specifying what kind of term to find.

    • +
    • grammar – The grammar for the term.

    • +
    +
    +
    Returns:
    +

    The result of the find, which is the null term if this +call failed.

    +
    +
    +
    + +
    +
    +findSynthNext()
    +

    Try to find a next solution for the synthesis conjecture +corresponding to the current list of functions-to-synthesize, +universal variables and constraints. Must be called immediately +after a successful call to check-synth or check-synth-next. +Requires incremental mode.

    +

    SyGuS v2:

    +
    ( find-synth-next )
    +
    +
    +
    +
    Returns:
    +

    The result of the find, which is the null term if this +call failed.

    +
    +
    +
    + +
    +
    +getAbduct()
    +

    Get an abduct.

    +

    SMT-LIB:

    +
    ( get-abduct <conj> )
    +( get-abduct <conj> <grammar> )
    +
    +
    +

    Requires to enable option +produce-abducts.

    +
    +

    Warning

    +

    This function is experimental and may change in future +versions.

    +
    +
    +
    Parameters:
    +
      +
    • conj – The conjecture term.

    • +
    • grammar – A grammar for the abduct.

    • +
    +
    +
    Returns:
    +

    The abduct. +See cvc5::Solver::getAbduct() for details.

    +
    +
    +
    + +
    +
    +getAbductNext()
    +

    Get the next abduct.

    +

    Can only be called immediately after a successful call to +Solver.getAbduct() or +Solver.getAbductNext(). +Is guaranteed to produce a syntactically different abduct wrt the +last returned abduct if successful.

    +

    SMT-LIB:

    +
    ( get-abduct-next )
    +
    +
    +

    Requires to enable incremental mode, and +option produce-abducts.

    +
    +

    Warning

    +

    This function is experimental and may change in future +versions.

    +
    +
    +
    Parameters:
    +

    output – The term where the result will be stored.

    +
    +
    Returns:
    +

    True iff an abduct was found.

    +
    +
    +
    + +
    +
    +getAssertions()
    +

    Get the list of asserted formulas.

    +

    SMT-LIB:

    +
    ( get-assertions )
    +
    +
    +
    +
    Returns:
    +

    The list of asserted formulas.

    +
    +
    +
    + +
    +
    +getBooleanSort()
    +

    Get the Boolean sort. +:return: Sort Boolean. +.. warning:: This function is deprecated and will be removed in a

    +
    +

    future release.

    +
    +
    + +
    +
    +getDifficulty()
    +

    Get a difficulty estimate for an asserted formula. This function is +intended to be called immediately after any response to a +Solver.checkSat() call.

    +
    +

    Warning

    +

    This function is experimental and may change in future +versions.

    +
    +
    +
    Returns:
    +

    A map from (a subset of) the input assertions to a real +value that is an estimate of how difficult each assertion +was to solver. Unmentioned assertions can be assumed to +have zero difficulty.

    +
    +
    +
    + +
    +
    +getInfo()
    +

    Get info from the solver.

    +

    SMT-LIB:

    +
    ( get-info <info_flag> )
    +
    +
    +
    +
    Parameters:
    +

    flag – The info flag.

    +
    +
    Returns:
    +

    The info.

    +
    +
    +
    + +
    +
    +getInstantiations()
    +

    Return a string that contains information about all instantiations +made by the quantifiers module.

    +
    +

    Warning

    +

    This function is experimental and may change in future +versions.

    +
    +
    + +
    +
    +getIntegerSort()
    +

    Get the integer sort. +:return: Sort Integer. +.. warning:: This function is deprecated and will be removed in a

    +
    +

    future release.

    +
    +
    + +
    +
    +getInterpolant()
    +

    Get an interpolant. +Assuming that \(A \rightarrow B\) is valid, +this function +determines a term \(I\) +over the shared variables of +\(A\) and \(B\), +optionally with respect to a +a given grammar, such that \(A \rightarrow I\) and +\(I \rightarrow B\) are valid, if such a term exits. +\(A\) is the current set of assertions and \(B\) is the +conjecture, given as conj.

    +

    SMT-LIB:

    +
    ( get-interpolant <symbol> <conj> )
    +( get-interpolant <symbol> <conj> <grammar> )
    +
    +
    +
    +

    Note

    +

    In SMT-LIB, <symbol> assigns a symbol to the +interpolant.

    +
    +
    +

    Note

    +

    Requires option +produce-interpolants +to be set to a mode different from none.

    +
    +
    +

    Warning

    +

    This function is experimental and may change in future +versions.

    +
    +
    +
    Parameters:
    +
      +
    • conj – The conjecture term.

    • +
    • grammar – A grammar for the interpolant.

    • +
    +
    +
    Returns:
    +

    The interpolant, if such a term exists.

    +
    +
    +
    + +
    +
    +getInterpolantNext()
    +

    Get the next interpolant.

    +

    Can only be called immediately after a successful call to +Solver.getInterpolant() or +Solver.getInterpolantNext(). +Is guaranteed to produce a syntactically different interpolant wrt +the last returned interpolant if successful.

    +

    SMT-LIB:

    +
    ( get-interpolant-next )
    +
    +
    +

    Requires to enable incremental mode, and option +produce-interpolants to be +set to a mode different from none.

    +
    +

    Warning

    +

    This function is experimental and may change in future +versions.

    +
    +
    +
    Parameters:
    +

    output – The term where the result will be stored.

    +
    +
    Returns:
    +

    True iff an interpolant was found.

    +
    +
    +
    + +
    +
    +getLearnedLiterals()
    +

    Get a list of literals that are entailed by the current set of assertions

    +

    SMT-LIB:

    +
    ( get-learned-literals )
    +
    +
    +
    +

    Warning

    +

    This function is experimental and may change in future +versions.

    +
    +
    +
    Parameters:
    +

    type – The type of learned literals to return

    +
    +
    Returns:
    +

    The list of literals.

    +
    +
    +
    + +
    +
    +getLogic()
    +

    Get the logic set the solver.

    +
    +

    Note

    +

    Asserts isLogicSet().

    +
    +
    +
    Returns:
    +

    The logic used by the solver.

    +
    +
    +
    + +
    +
    +getModel()
    +

    Get the model

    +

    SMT-LIB:

    +
    (get-model)
    +
    +
    +

    Requires to enable option +produce-models.

    +
    +

    Warning

    +

    This function is experimental and may change in future +versions.

    +
    +
    +
    Parameters:
    +
      +
    • sorts – The list of uninterpreted sorts that should be +printed in the model.

    • +
    • vars – The list of free constants that should be printed in +the model. A subset of these may be printed based on +Solver.isModelCoreSymbol().

    • +
    +
    +
    Returns:
    +

    A string representing the model.

    +
    +
    +
    + +
    +
    +getModelDomainElements()
    +

    Get the domain elements of uninterpreted sort s in the current +model. The current model interprets s as the finite sort whose +domain elements are given in the return value of this method.

    +
    +
    Parameters:
    +

    s – The uninterpreted sort in question.

    +
    +
    Returns:
    +

    The domain elements of s in the current model.

    +
    +
    +
    + +
    +
    +getNumIndicesForSkolemId()
    +

    Get the number of indices for a skolem id.

    +
    +
    Parameters:
    +

    id – The skolem id.

    +
    +
    Returns:
    +

    The number of indice for a skolem with the given id.

    +
    +
    +
    + +
    +
    +getOption()
    +

    Get the value of a given option.

    +

    SMT-LIB:

    +
    ( get-option <keyword> )
    +
    +
    +
    +
    Parameters:
    +

    option – The option for which the value is queried.

    +
    +
    Returns:
    +

    A string representation of the option value.

    +
    +
    +
    + +
    +
    +getOptionInfo()
    +

    Get some information about the given option. +Returns the information provided by the C++ +OptionInfo as a dictionary.

    +
    +
    Returns:
    +

    Information about the given option.

    +
    +
    +
    + +
    +
    +getOptionNames()
    +
    +

    Get all option names that can be used with +Solver.setOption(), Solver.getOption() +and Solver.getOptionInfo().

    +
    +
    +
    Returns:
    +

    All option names.

    +
    +
    +
    + +
    +
    +getProof()
    +

    Get a proof associated with the most recent call to checkSat.

    +

    SMT-LIB:

    +
    (get-proof :c)
    +
    +
    +

    Requires to enable option +produce-proofs.

    +
    +

    Warning

    +

    This function is experimental and may change in future +versions.

    +
    +
    +
    Parameters:
    +

    c – The component of the proof to return.

    +
    +
    Returns:
    +

    A vector of proof nodes.

    +
    +
    +
    + +
    +
    +getQuantifierElimination()
    +

    Do quantifier elimination.

    +

    SMT-LIB:

    +
    ( get-qe <q> )
    +
    +
    +

    Requires a logic that supports quantifier elimination. +Currently, the only logics supported by quantifier elimination +are LRA and LIA.

    +
    +

    Warning

    +

    This function is experimental and may change in future +versions.

    +
    +
    +
    Parameters:
    +

    q – A quantified formula of the form +\(Q\bar{x_1}\dots Q\bar{x}_n. P( x_1 \dots x_i, y_1 \dots y_j)\) +where +\(Q\bar{x}\) is a set of quantified variables of the +form \(Q x_1...x_k\) and +\(P( x_1...x_i, y_1...y_j )\) is a quantifier-free +formula

    +
    +
    Returns:
    +

    A formula \(\phi\) such that, given the current set +of formulas \(A\) asserted to this solver:

    +
      +
    • \((A \wedge q)\) \((A \wedge \phi)\) are +equivalent

    • +
    • \(\phi\) is quantifier-free formula containing only +free variables in \(y_1...y_n\).

    • +
    +

    +
    +
    +
    + +
    +
    +getQuantifierEliminationDisjunct()
    +
    +

    Do partial quantifier elimination, which can be used for +incrementally computing the result of a quantifier elimination.

    +

    SMT-LIB:

    +
    ( get-qe-disjunct <q> )
    +
    +
    +

    Requires a logic that supports quantifier elimination. +Currently, the only logics supported by quantifier elimination +are LRA and LIA.

    +
    +
    +

    Warning

    +
    +
    This function is experimental and may change in future

    versions.

    +
    +
    +
    +
    param q:
    +

    A quantified formula of the form +\(Q\bar{x_1} ... Q\bar{x_n}. P( x_1...x_i, y_1...y_j)\) +where \(Q\bar{x}\) is a set of quantified variables of +the form \(Q x_1...x_k\) and +\(P( x_1...x_i, y_1...y_j )\) is a quantifier-free formula.

    +
    +
    return:
    +

    A formula \(\phi\) such that, given the current set +of formulas \(A\) asserted to this solver:

    +
      +
    • \((A \wedge q \implies A \wedge \phi)\) if \(Q\) +is \(\forall\), and +\((A \wedge \phi \implies A \wedge q)\) if +\(Q\) is \(\exists\)

    • +
    • \(\phi\) is quantifier-free formula containing only +free variables in \(y_1...y_n\)

    • +
    • If \(Q\) is \(\exists\), let \((A \wedge Q_n)\) +be the formula +\((A \wedge \neg (\phi \wedge Q_1) \wedge ... \wedge \neg (\phi \wedge Q_n))\) +where for each \(i = 1...n\), formula +\((\phi \wedge Q_i)\) is the result of calling +getQuantifierEliminationDisjunct() +for \(q\) with the set of assertions +\((A \wedge Q_{i-1})\). +Similarly, if \(Q\) is \(\forall\), then let +\((A \wedge Q_n)\) be +\((A \wedge (\phi \wedge Q_1) \wedge ... \wedge (\phi \wedge Q_n))\) +where \((\phi \wedge Q_i)\) is the same as above. +In either case, we have that \((\phi \wedge Q_j)\) +will eventually be true or false, for some finite \(j\).

    • +
    +
    +
    +
    +
    + +
    +
    +getRealSort()
    +

    Get the real sort. +:return: Sort Real. +.. warning:: This function is deprecated and will be removed in a

    +
    +

    future release.

    +
    +
    + +
    +
    +getRegExpSort()
    +

    Get the regular expression sort. +:return: The sort of regular expressions. +.. warning:: This function is deprecated and will be removed in a

    +
    +

    future release.

    +
    +
    + +
    +
    +getRoundingModeSort()
    +

    Get the rounding mode sort. +:return: Sort RoundingMode. +.. warning:: This function is deprecated and will be removed in a

    +
    +

    future release.

    +
    +
    + +
    +
    +getStatistics()
    +

    Return a snapshot of the current state of the statistic values of +this solver. The returned object is completely decoupled from the +solver and will not change when the solver is used again.

    +
    + +
    +
    +getStringSort()
    +
    +
    Returns:
    +

    Sort String.

    +
    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +getSygusAssumptions()
    +

    Get the list of sygus assumptions. +:return: The list of sygus assumptions.

    +
    + +
    +
    +getSygusConstraints()
    +

    Get the list of sygus constraints. +:return: The list of sygus constraints.

    +
    + +
    +
    +getSynthSolution()
    +

    Get the synthesis solution of the given term. This function should be +called immediately after the solver answers unsat for sygus input.

    +
    +
    Parameters:
    +

    term – The term for which the synthesis solution is queried.

    +
    +
    Returns:
    +

    The synthesis solution of the given term.

    +
    +
    +
    + +
    +
    +getSynthSolutions()
    +

    Get the synthesis solutions of the given terms. This function should +be called immediately after the solver answers unsat for sygus +input.

    +
    +
    Parameters:
    +

    terms – The terms for which the synthesis solutions is +queried.

    +
    +
    Returns:
    +

    The synthesis solutions of the given terms.

    +
    +
    +
    + +
    +
    +getTermManager()
    +

    Get the associated term manager instance. +:return: The term manager instance.

    +
    + +
    +
    +getTimeoutCore()
    +

    Get a timeout core, which computes a subset of the current +assertions that cause a timeout. Note it does not require being +proceeded by a call to checkSat.

    +
    (get-timeout-core)
    +
    +
    +
    +

    Warning

    +

    This function is experimental and may change in future +versions.

    +
    +
    +
    Returns:
    +

    The result of the timeout core computation. This is a pair

    +
    +
    +

    containing a result and a list of formulas. If the result is unknown +and the reason is timeout, then the list of formulas correspond to a +subset of the current assertions that cause a timeout in the +specified time +timeout-core-timeout. +If the result is unsat, then the list of formulas correspond to an +unsat core for the current assertions. Otherwise, the result is sat, +indicating that the current assertions are satisfiable, and +the list of formulas is empty.

    +

    This function may make multiple checks for satisfiability internally, +each limited by the timeout value given by +timeout-core-timeout.

    +
    + +
    +
    +getTimeoutCoreAssuming()
    +

    Get a timeout core, which computes a subset of the given assumptions +that cause a timeout when added to the current assertions. Note it +does not require being proceeded by a call to checkSat.

    +
    (get-timeout-core)
    +
    +
    +
    +

    Warning

    +

    This function is experimental and may change in future +versions.

    +
    +
    +
    Parameters:
    +

    assumptions – The formulas to assume.

    +
    +
    Returns:
    +

    The result of the timeout core computation. This is a pair +containing a result and a list of formulas. If the result is unknown +and the reason is timeout, then the list of formulas correspond to a +subset of assumptions that cause a timeout when added to the current +assertions in the specified time

    +
    +
    +
    +
    timeout-core-timeout.

    If the result is unsat, then the list of formulas plus the current +assertions correspond to an unsat core for the current assertions. +Otherwise, the result is sat, indicating that the given assumptions plus +the current assertions are satisfiable, and the list of formulas is empty.

    +
    +
    +

    This function may make multiple checks for satisfiability internally, +each limited by the timeout value given by +timeout-core-timeout.

    +
    + +
    +
    +getUnsatAssumptions()
    +

    Get the set of unsat (“failed”) assumptions.

    +

    SMT-LIB:

    +
    ( get-unsat-assumptions )
    +
    +
    +

    Requires to enable option produce-unsat-assumptions.

    +
    +
    Returns:
    +

    The set of unsat assumptions.

    +
    +
    +
    + +
    +
    +getUnsatCore()
    +

    Get the unsatisfiable core.

    +

    SMT-LIB:

    +
    (get-unsat-core)
    +
    +
    +

    Requires to enable option produce-unsat-cores.

    +
    +

    Note

    +

    In contrast to SMT-LIB, the API does not distinguish between +named and unnamed assertions when producing an unsatisfiable +core. Additionally, the API allows this option to be called after +a check with assumptions. A subset of those assumptions may be +included in the unsatisfiable core returned by this method.

    +
    +
    +
    Returns:
    +

    A set of terms representing the unsatisfiable core.

    +
    +
    +
    + +
    +
    +getUnsatCoreLemmas()
    +

    Get the lemmas used to derive unsatisfiability.

    +

    SMT-LIB:

    +
    (get-unsat-core-lemmas)
    +
    +
    +

    Requires the SAT proof unsat core mode, so to enable option +unsat-core-mode=sat-proof.

    +
    +

    Warning

    +

    This function is experimental and may change in +future versions.

    +
    +
    +
    Returns:
    +

    A set of terms representing the lemmas used to derive

    +
    +
    +

    unsatisfiability.

    +
    + +
    +
    +getValue()
    +

    Get the value of the given term or list of terms in the current +model.

    +

    SMT-LIB:

    +
    ( get-value ( <term>* ) )
    +
    +
    +
    +
    Parameters:
    +

    term_or_list – The term or list of terms for which the value +is queried.

    +
    +
    Returns:
    +

    The value or list of values of the given term or list of +terms.

    +
    +
    +
    + +
    +
    +getValueSepHeap()
    +

    When using separation logic, obtain the term for the heap.

    +
    +

    Warning

    +

    This function is experimental and may change in future +versions.

    +
    +
    +
    Returns:
    +

    The term for the heap.

    +
    +
    +
    + +
    +
    +getValueSepNil()
    +

    When using separation logic, obtain the term for nil.

    +
    +

    Warning

    +

    This function is experimental and may change in future +versions.

    +
    +
    +
    Returns:
    +

    The term for nil.

    +
    +
    +
    + +
    +
    +getVersion()
    +

    Return a string representation of the version of this solver.

    +
    + +
    +
    +isLogicSet()
    +

    Is logic set? Returns whether we called setLogic yet for this +solver.

    +
    +
    Returns:
    +

    whether we called setLogic yet for this solver.

    +
    +
    +
    + +
    +
    +isModelCoreSymbol()
    +

    This returns False if the model value of free constant v was not +essential for showing the satisfiability of the last call to +checkSat using the current model. This function will only return +false (for any v) if the model-cores option has been set.

    +
    +

    Warning

    +

    This function is experimental and may change in future +versions.

    +
    +
    +
    Parameters:
    +

    v – The term in question.

    +
    +
    Returns:
    +

    True if v is a model core symbol.

    +
    +
    +
    + +
    +
    +mkAbstractSort()
    +

    Create an abstract sort. An abstract sort represents a sort for a +given kind whose parameters and arguments are unspecified.

    +

    Parameter kind must be the kind of a sort that can be +abstracted, i.e., a sort that has indices or argument sorts. For +example, ARRAY_SORT and +BITVECTOR_SORT can be passed as the +to this function, while +INTEGER_SORT and +STRING_SORT cannot.

    +

    Providing the kind ABSTRACT_SORT +as an argument to this method returns the (fully) unspecified sort, +denoted ?.

    +

    Providing a kind of sort that has no indices and a fixed arity of +argument sorts will return the sort of kind whose arguments are +the unspecified sort. For example, mkAbstractSort(ARRAY_SORT) will +return the sort (ARRAY_SORT ? ?) instead of the abstract sort whose +abstract kind is py:obj:ARRAY_SORT <Kind.ARRAY_SORT>.

    +
    +
    Parameters:
    +

    k – The kind of the abstract sort

    +
    +
    Returns:
    +

    The abstract sort.

    +
    +
    +
    +

    Warning

    +

    This function is experimental and may change in future +versions.

    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkArraySort()
    +

    Create an array sort.

    +
    +
    Parameters:
    +
      +
    • indexSort – The array index sort.

    • +
    • elemSort – The array element sort.

    • +
    +
    +
    Returns:
    +

    The array sort.

    +
    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkBagSort()
    +

    Create a bag sort.

    +
    +
    Parameters:
    +

    elemSort – The sort of the bag elements.

    +
    +
    Returns:
    +

    The bag sort.

    +
    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkBitVector()
    +

    Create bit-vector value.

    +

    Supports the following arguments:

    +
      +
    • Term mkBitVector(int size, int val=0)

    • +
    • Term mkBitVector(int size, string val, int base)

    • +
    +
    +
    Parameters:
    +
      +
    • size – The bit-width.

    • +
    • val – An integer representating the value, in the first form. +In the second form, a string representing the value.

    • +
    • base – The base of the string representation (second form +only).

    • +
    +
    +
    Returns:
    +

    A Term representing a bit-vector value.

    +
    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkBitVectorSort()
    +

    Create a bit-vector sort.

    +
    +
    Parameters:
    +

    size – The bit-width of the bit-vector sort

    +
    +
    Returns:
    +

    The bit-vector sort

    +
    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkBoolean()
    +

    Create a Boolean constant.

    +
    +
    Parameters:
    +

    val – The value of the constant.

    +
    +
    Returns:
    +

    The Boolean constant.

    +
    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkCardinalityConstraint()
    +

    Create cardinality constraint.

    +
    +

    Warning

    +

    This function is experimental and may change in future +versions.

    +
    +
    +
    Parameters:
    +
      +
    • sort – Sort of the constraint.

    • +
    • index – The upper bound for the cardinality of the sort.

    • +
    +
    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkConst()
    +

    Create (first-order) constant (0-arity function symbol).

    +

    SMT-LIB:

    +
    ( declare-const <symbol> <sort> )
    +( declare-fun <symbol> ( ) <sort> )
    +
    +
    +
    +
    Parameters:
    +
      +
    • sort – The sort of the constant.

    • +
    • symbol – The name of the constant. If None, a default symbol +is used.

    • +
    +
    +
    Returns:
    +

    The first-order constant.

    +
    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkConstArray()
    +

    Create a constant array with the provided constant value stored at +every index

    +
    +
    Parameters:
    +
      +
    • sort – The sort of the constant array (must be an array sort).

    • +
    • val – The constant value to store (must match the sort’s +element sort).

    • +
    +
    +
    Returns:
    +

    The constant array term.

    +
    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkDatatypeConstructorDecl()
    +

    Create datatype constructor declaration.

    +
    +
    Parameters:
    +

    name – The name of the constructor.

    +
    +
    Returns:
    +

    The datatype constructor declaration.

    +
    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkDatatypeDecl()
    +

    Create a datatype declaration.

    +
    +
    Parameters:
    +
      +
    • name – The name of the datatype.

    • +
    • isCoDatatype – True if a codatatype is to be constructed.

    • +
    +
    +
    Returns:
    +

    The datatype declaration.

    +
    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkDatatypeSort()
    +

    Create a datatype sort.

    +
    +
    Parameters:
    +

    dtypedecl – The datatype declaration from which the sort is +created.

    +
    +
    Returns:
    +

    The datatype sort.

    +
    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkDatatypeSorts()
    +

    Create a vector of datatype sorts using unresolved sorts. The names +of the datatype declarations in dtypedecls must be distinct.

    +

    When constructing datatypes, unresolved sorts are replaced by the +datatype sort constructed for the datatype declaration it is +associated with.

    +
    +
    Parameters:
    +

    dtypedecls – The datatype declarations from which the sort is +created.

    +
    +
    Returns:
    +

    The datatype sorts.

    +
    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkEmptyBag()
    +

    Create a constant representing an empty bag of the given sort.

    +
    +
    Parameters:
    +

    sort – The sort of the bag elements.

    +
    +
    Returns:
    +

    The empty bag constant.

    +
    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkEmptySequence()
    +

    Create an empty sequence of the given element sort.

    +
    +
    Parameters:
    +

    sort – The element sort of the sequence.

    +
    +
    Returns:
    +

    The empty sequence with given element sort.

    +
    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkEmptySet()
    +

    Create a constant representing an empty set of the given sort.

    +
    +
    Parameters:
    +

    sort – The sort of the set elements.

    +
    +
    Returns:
    +

    The empty set constant.

    +
    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkFalse()
    +

    Create a Boolean false constant.

    +
    +
    Returns:
    +

    The false constant.

    +
    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkFiniteFieldElem()
    +

    Create finite field value.

    +

    Supports the following arguments:

    +
      +
    • Term mkFiniteFieldElem(int value, Sort sort)

    • +
    • Term mkFiniteFieldElem(string value, Sort sort)

    • +
    • Term mkFiniteFieldElem(string value, Sort sort, int base)

    • +
    +
    +
    Parameters:
    +
      +
    • value – The value of the element’s integer representation. +An integer or string of base 10 if the base is not +explicitly given, and else a string in the given base.

    • +
    • sort – The field to create the element in.

    • +
    • base – The base of the string representation of value.

    • +
    +
    +
    Returns:
    +

    A Term representing a finite field value.

    +
    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkFiniteFieldSort()
    +

    Create a finite field sort.

    +

    Supports the following arguments:

    +
      +
    • Sort mkFiniteFieldSort(int size)

    • +
    • Sort mkFiniteFieldSort(string size)

    • +
    • Sort mkFiniteFieldSort(string size, int base)

    • +
    +
    +
    Parameters:
    +
      +
    • size – The size of the field. Must be a prime-power. +An integer or string of base 10 if the base is not +explicitly given, and else a string in the given base.

    • +
    • base – The base of the string representation of size.

    • +
    +
    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkFloatingPoint()
    +

    Create a floating-point value from a bit-vector given in IEEE-754 +format, or from its three IEEE-754 bit-vector value components +(sign bit, exponent, significand). Arguments must be either given +as (int, int, Term) or (Term, Term, Term).

    +

    :param arg0 The size of the exponent or the sign bit. +:param arg1 The size of the signifcand or the bit-vector

    +
    +

    representing the exponent.

    +
    +
    +
    Parameters:
    +

    arg2 – The value of the floating-point constant as a +bit-vector term or the bit-vector representing the +significand.

    +
    +
    +

    :return The floating-point value. +.. warning:: This function is deprecated and will be removed in a

    +
    +

    future release.

    +
    +
    + +
    +
    +mkFloatingPointNaN()
    +

    Create a not-a-number (NaN) floating-point constant.

    +
    +
    Parameters:
    +
      +
    • exp – Number of bits in the exponent.

    • +
    • sig – Number of bits in the significand.

    • +
    +
    +
    Returns:
    +

    The floating-point constant.

    +
    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkFloatingPointNegInf()
    +

    Create a negative infinity floating-point constant.

    +
    +
    Parameters:
    +
      +
    • exp – Number of bits in the exponent.

    • +
    • sig – Number of bits in the significand.

    • +
    +
    +
    Returns:
    +

    The floating-point constant.

    +
    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkFloatingPointNegZero()
    +

    Create a negative zero (+0.0) floating-point constant.

    +
    +
    Parameters:
    +
      +
    • exp – Number of bits in the exponent.

    • +
    • sig – Number of bits in the significand.

    • +
    +
    +
    Returns:
    +

    The floating-point constant.

    +
    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkFloatingPointPosInf()
    +

    Create a positive infinity floating-point constant.

    +
    +
    Parameters:
    +
      +
    • exp – Number of bits in the exponent.

    • +
    • sig – Number of bits in the significand.

    • +
    +
    +
    Returns:
    +

    The floating-point constant.

    +
    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkFloatingPointPosZero()
    +

    Create a positive zero (+0.0) floating-point constant.

    +
    +
    Parameters:
    +
      +
    • exp – Number of bits in the exponent.

    • +
    • sig – Number of bits in the significand.

    • +
    +
    +
    Returns:
    +

    The floating-point constant.

    +
    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkFloatingPointSort()
    +

    Create a floating-point sort.

    +
    +
    Parameters:
    +
      +
    • exp – The bit-width of the exponent of the floating-point +sort.

    • +
    • sig – The bit-width of the significand of the floating-point +sort.

    • +
    +
    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkFunctionSort()
    +

    Create function sort.

    +
    +
    Parameters:
    +
      +
    • sorts – The sort of the function arguments.

    • +
    • codomain – The sort of the function return value.

    • +
    +
    +
    Returns:
    +

    The function sort.

    +
    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkGrammar()
    +

    Create a SyGuS grammar. The first non-terminal is treated as the +starting non-terminal, so the order of non-terminals matters.

    +
    +
    Parameters:
    +
      +
    • boundVars – The parameters to corresponding +synth-fun/synth-inv.

    • +
    • ntSymbols – The pre-declaration of the non-terminal symbols.

    • +
    +
    +
    Returns:
    +

    The grammar.

    +
    +
    +
    + +
    +
    +mkInteger()
    +

    Create an integer constant.

    +
    +
    Parameters:
    +

    val – Representation of the constant: either a string or +integer.

    +
    +
    Returns:
    +

    A constant of sort Integer.

    +
    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkNullableIsNull()
    +

    Create a null tester for a nullable term.

    +
    +
    Parameters:
    +

    term – A nullable term.

    +
    +
    Returns:
    +

    A tester whether term is null.

    +
    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkNullableIsSome()
    +

    Create a some tester for a nullable term.

    +
    +
    Parameters:
    +

    term – A nullable term.

    +
    +
    Returns:
    +

    A tester whether term is some.

    +
    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkNullableLift()
    +

    Create a term that lifts kind to nullable terms. +Example: +If we have the term ((_ nullable.lift +) x y), +where x, y of type (Nullable Int), then +kind would be ADD, and args would be [x, y]. +This function would return +(nullable.lift (lambda ((a Int) (b Int)) (+ a b)) x y)

    +
    +
    Parameters:
    +
      +
    • kind – The lifted operator.

    • +
    • args – The arguments of the lifted operator.

    • +
    +
    +
    Returns:
    +

    A term of Kind NULLABLE_LIFT where the first child +is a lambda expression, and the remaining children are +the original arguments.

    +
    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkNullableNull()
    +

    Create a constant representing an null of the given sort.

    +
    +
    Parameters:
    +

    term – The sort of the Nullable element.

    +
    +
    Returns:
    +

    The null constant.

    +
    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkNullableSome()
    +

    Create a nullable some term.

    +
    +
    Parameters:
    +

    term – The elements value.

    +
    +
    Returns:
    +

    The element value wrapped in some constructor.

    +
    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkNullableSort()
    +

    Create a nullable sort.

    +
    +
    Parameters:
    +

    elemSort – The sort of the element of the nullable.

    +
    +
    Returns:
    +

    The nullable sort.

    +
    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkNullableVal()
    +

    Create a selector for nullable term.

    +
    +
    Parameters:
    +

    term – A nullable term.

    +
    +
    Returns:
    +

    The element value of the nullable term.

    +
    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkOp()
    +

    Create operator.

    +

    Supports the following arguments:

    +
      +
    • Op mkOp(Kind kind)

    • +
    • Op mkOp(Kind kind, const string& arg)

    • +
    • Op mkOp(Kind kind, uint32_t arg0, ...)

    • +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkParamSort()
    +

    Create a sort parameter.

    +
    +
    Parameters:
    +

    symbol – The name of the sort.

    +
    +
    Returns:
    +

    The sort parameter.

    +
    +
    +
    +

    Warning

    +

    This function is experimental and may change in future +versions.

    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkPi()
    +

    Create a constant representing the number Pi.

    +
    +
    Returns:
    +

    A constant representing PI.

    +
    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkPredicateSort()
    +

    Create a predicate sort.

    +
    +
    Parameters:
    +

    sorts – The list of sorts of the predicate.

    +
    +
    Returns:
    +

    The predicate sort.

    +
    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkReal()
    +

    Create a real constant from a numerator and an optional denominator.

    +

    First converts the arguments to a temporary string, either +"<numerator>" or "<numerator>/<denominator>". This temporary +string is forwarded to cvc5::Solver::mkReal() and should +thus represent an integer, a decimal number or a fraction.

    +
    +
    Parameters:
    +
      +
    • numerator – The numerator.

    • +
    • denominator – The denominator, or None.

    • +
    +
    +
    Returns:
    +

    A real term with literal value.

    +
    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkRecordSort()
    +

    Create a record sort

    +
    +

    Warning

    +

    This function is experimental and may change in future +versions.

    +
    +
    +
    Parameters:
    +

    fields – The list of fields of the record.

    +
    +
    Returns:
    +

    The record sort.

    +
    +
    Note:
    +

    This function is deprecated and will be removed in a future +release.

    +
    +
    +
    +

    Warning

    +

    This function is experimental and may change in future +versions.

    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkRegexpAll()
    +

    Create a regular expression all (re.all) term.

    +
    +
    Returns:
    +

    The all term.

    +
    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkRegexpAllchar()
    +

    Create a regular expression allchar (re.allchar) term.

    +
    +
    Returns:
    +

    The allchar term.

    +
    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkRegexpNone()
    +

    Create a regular expression none (re.none) term.

    +
    +
    Returns:
    +

    The none term.

    +
    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkRoundingMode()
    +

    Create a roundingmode constant.

    +
    +
    Parameters:
    +

    rm – The floating point rounding mode this constant +represents.

    +
    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkSepEmp()
    +

    Create a separation logic empty term.

    +
    +
    Returns:
    +

    The separation logic empty term.

    +
    +
    +
    +

    Warning

    +

    This function is experimental and may change in future +versions.

    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkSepNil()
    +

    Create a separation logic nil term.

    +
    +
    Parameters:
    +

    sort – The sort of the nil term.

    +
    +
    Returns:
    +

    The separation logic nil term.

    +
    +
    +
    +

    Warning

    +

    This function is experimental and may change in future +versions.

    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkSequenceSort()
    +

    Create a sequence sort.

    +
    +
    Parameters:
    +

    elemSort – The sort of the sequence elements

    +
    +
    Returns:
    +

    The sequence sort.

    +
    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkSetSort()
    +

    Create a set sort.

    +
    +
    Parameters:
    +

    elemSort – The sort of the set elements.

    +
    +
    Returns:
    +

    The set sort.

    +
    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkSkolem()
    +

    Create a skolem.

    +
    +
    Parameters:
    +
      +
    • id – The skolem id.

    • +
    • indices – The indices for the skolem.

    • +
    +
    +
    Returns:
    +

    The skolem with the given id and indices.

    +
    +
    +
    + +
    +
    +mkString()
    +

    Create a String constant from a str which may contain SMT-LIB +compatible escape sequences like \u1234 to encode unicode +characters.

    +
    +
    Parameters:
    +
      +
    • s – The string this constant represents.

    • +
    • useEscSequences – Determines whether escape sequences in s +should be converted to the corresponding +unicode character

    • +
    +
    +
    Returns:
    +

    The String constant.

    +
    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkTerm()
    +

    Create a term.

    +

    Supports the following arguments:

    +
      +
    • Term mkTerm(Kind kind)

    • +
    • Term mkTerm(Op op)

    • +
    • Term mkTerm(Kind kind, *args)

    • +
    • Term mkTerm(Op op, *args)

    • +
    +

    where *args is a comma-separated list of terms.

    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkTrue()
    +

    Create a Boolean true constant.

    +
    +
    Returns:
    +

    The true constant.

    +
    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkTuple()
    +

    Create a tuple term. Terms are automatically converted if sorts are +compatible.

    +
    +
    Parameters:
    +

    terms – The elements in the tuple.

    +
    +
    Returns:
    +

    The tuple Term.

    +
    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkTupleSort()
    +

    Create a tuple sort.

    +
    +
    Parameters:
    +

    sorts – Of the elements of the tuple.

    +
    +
    Returns:
    +

    The tuple sort.

    +
    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkUninterpretedSort()
    +

    Create an uninterpreted sort.

    +
    +
    Parameters:
    +

    symbol – The name of the sort.

    +
    +
    Returns:
    +

    The uninterpreted sort.

    +
    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkUninterpretedSortConstructorSort()
    +

    Create a sort constructor sort.

    +

    An uninterpreted sort constructor is an uninterpreted sort with +arity > 0.

    +
    +
    Parameters:
    +
      +
    • symbol – The symbol of the sort.

    • +
    • arity – The arity of the sort (must be > 0).

    • +
    +
    +
    Returns:
    +

    The sort constructor sort.

    +
    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkUniverseSet()
    +

    Create a universe set of the given sort.

    +
    +
    Parameters:
    +

    sort – The sort of the set elements

    +
    +
    Returns:
    +

    The universe set constant

    +
    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkUnresolvedDatatypeSort()
    +

    Create an unresolved datatype sort.

    +

    This is for creating yet unresolved sort placeholders for mutually +recursive datatypes.

    +
    +
    Parameters:
    +
      +
    • symbol – The name of the sort.

    • +
    • arity – The number of sort parameters of the sort.

    • +
    +
    +
    Returns:
    +

    The unresolved sort.

    +
    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +mkVar()
    +

    Create a bound variable to be used in a binder (i.e. a quantifier, +a lambda, or a witness binder).

    +
    +
    Parameters:
    +
      +
    • sort – The sort of the variable.

    • +
    • symbol – The name of the variable.

    • +
    +
    +
    Returns:
    +

    The variable.

    +
    +
    +
    +

    Warning

    +

    This function is deprecated and will be removed in a +future release.

    +
    +
    + +
    +
    +pop()
    +

    Pop nscopes level(s) from the assertion stack.

    +

    SMT-LIB:

    +
    ( pop <numeral> )
    +
    +
    +
    +
    Parameters:
    +

    nscopes – The number of levels to pop.

    +
    +
    +
    + +
    +
    +proofToString()
    +

    Prints proof into a string with a selected proof format mode. +Other aspects of printing are taken from the solver options.

    +
    +

    Warning

    +

    This function is experimental and may change in +future versions.

    +
    +
    +
    Parameters:
    +
      +
    • proof – A proof, usually obtained from +getProof().

    • +
    • format – The proof format used to print the proof. Must be +“None” if the proof is not a full proof.

    • +
    • assertionNames – Mapping between assertions and names, if +they were given by the user. This is used +by the Alethe proof format.

    • +
    +
    +
    Returns:
    +

    The proof printed in the current format.

    +
    +
    +
    + +
    +
    +push()
    +

    Push nscopes level(s) to the assertion stack.

    +

    SMT-LIB:

    +
    ( push <numeral> )
    +
    +
    +
    +
    Parameters:
    +

    nscopes – The number of levels to push.

    +
    +
    +
    + +
    +
    +resetAssertions()
    +

    Remove all assertions.

    +

    SMT-LIB:

    +
    ( reset-assertions )
    +
    +
    +
    + +
    +
    +setInfo()
    +

    Set info.

    +

    SMT-LIB:

    +
    ( set-info <attribute> )
    +
    +
    +
    +
    Parameters:
    +
      +
    • keyword – The info flag.

    • +
    • value – The value of the info flag.

    • +
    +
    +
    +
    + +
    +
    +setLogic()
    +

    Set logic.

    +

    SMT-LIB:

    +
    ( set-logic <symbol> )
    +
    +
    +
    +
    Parameters:
    +

    logic – The logic to set.

    +
    +
    +
    + +
    +
    +setOption()
    +

    Set option.

    +

    SMT-LIB:

    +
    ( set-option <option> )
    +
    +
    +
    +
    Parameters:
    +
      +
    • option – The option name.

    • +
    • value – The option value.

    • +
    +
    +
    +
    + +
    +
    +simplify()
    +

    Simplify a term or formula based on rewriting and (optionally) +applying substitutions for solved variables.

    +

    If applySubs is true, then for example, if (= x 0) was asserted to +this solver, this method may replace occurrences of x with 0.

    +
    +

    Warning

    +

    This function is experimental and may change in future +versions.

    +
    +
    +
    Parameters:
    +
      +
    • t – The term to simplify.

    • +
    • applySubs – Whether to apply substitutions for solved +variables.

    • +
    +
    +
    Returns:
    +

    The simplified term.

    +
    +
    +
    + +
    +
    +synthFun()
    +

    Synthesize n-ary function following specified syntactic constraints.

    +

    SyGuS v2:

    +
    ( synth-fun <symbol> ( <boundVars>* ) <sort> <g> )
    +
    +
    +
    +
    Parameters:
    +
      +
    • symbol – The name of the function.

    • +
    • boundVars – The parameters to this function.

    • +
    • sort – The sort of the return value of this function.

    • +
    • grammar – The syntactic constraints.

    • +
    +
    +
    Returns:
    +

    The function.

    +
    +
    +
    + +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/sort.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/sort.html new file mode 100644 index 0000000000..cdb3c65d86 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/sort.html @@ -0,0 +1,933 @@ + + + + + + + + + + + + + Sort — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Sort

    +

    The Sort class represents the sort of a +Term. +Its kind is represented as enum class cvc5.SortKind.

    +

    A Sort can be hashed (using +std.hash<cvc5.Sort>) and represented as a string +(using cvc5.Sort.__str__()).

    +

    Class cvc5.Sort only provides the default constructor +to create a null Sort. Class TermManager +provides factory functions for all other sorts, e.g., +cvc5.TermManager.getBooleanSort() for the Boolean sort and +cvc5.TermManager.mkBitVectorSort() for bit-vector +sorts.

    +

    Sorts are defined as standardized in the SMT-LIB standard for standardized +theories. Additionally, we introduce the following sorts for non-standardized +theories:

    + +
    +
    +
    +class cvc5.Sort
    +

    The sort of a cvc5 term.

    +

    Wrapper class for cvc5::Sort.

    +
    +
    +getAbstractedKind()
    +
    +
    Returns:
    +

    The sort kind of an abstract sort, which denotes the kind

    +
    +
    +

    of sorts that this abstract sort denotes.

    +
    +

    Warning

    +

    This function is experimental and may change in future +versions.

    +
    +
    + +
    +
    +getArrayElementSort()
    +
    +
    Returns:
    +

    The array element sort of an array sort.

    +
    +
    +
    + +
    +
    +getArrayIndexSort()
    +
    +
    Returns:
    +

    The array index sort of an array sort.

    +
    +
    +
    + +
    +
    +getBagElementSort()
    +
    +
    Returns:
    +

    The element sort of a bag sort.

    +
    +
    +
    + +
    +
    +getBitVectorSize()
    +
    +
    Returns:
    +

    The bit-width of the bit-vector sort.

    +
    +
    +
    + +
    +
    +getDatatype()
    +
    +
    Returns:
    +

    The underlying datatype of a datatype sort

    +
    +
    +
    + +
    +
    +getDatatypeArity()
    +
    +
    Returns:
    +

    The arity of a datatype sort.

    +
    +
    +
    + +
    +
    +getDatatypeConstructorArity()
    +
    +
    Returns:
    +

    The arity of a datatype constructor sort.

    +
    +
    +
    + +
    +
    +getDatatypeConstructorCodomainSort()
    +
    +
    Returns:
    +

    The codomain sort of a datatype constructor sort.

    +
    +
    +
    + +
    +
    +getDatatypeConstructorDomainSorts()
    +
    +
    Returns:
    +

    The domain sorts of a datatype constructor sort.

    +
    +
    +
    + +
    +
    +getDatatypeSelectorCodomainSort()
    +
    +
    Returns:
    +

    The codomain sort of a datatype selector sort.

    +
    +
    +
    + +
    +
    +getDatatypeSelectorDomainSort()
    +
    +
    Returns:
    +

    The domain sort of a datatype selector sort.

    +
    +
    +
    + +
    +
    +getDatatypeTesterCodomainSort()
    +
    +
    Returns:
    +

    the codomain sort of a datatype tester sort, which is the +Boolean sort

    +
    +
    +
    + +
    +
    +getDatatypeTesterDomainSort()
    +
    +
    Returns:
    +

    The domain sort of a datatype tester sort.

    +
    +
    +
    + +
    +
    +getFiniteFieldSize()
    +
    +
    Returns:
    +

    The size of the finite field sort.

    +
    +
    +
    + +
    +
    +getFloatingPointExponentSize()
    +
    +
    Returns:
    +

    The bit-width of the exponent of the floating-point sort.

    +
    +
    +
    + +
    +
    +getFloatingPointSignificandSize()
    +
    +
    Returns:
    +

    The width of the significand of the floating-point sort.

    +
    +
    +
    + +
    +
    +getFunctionArity()
    +
    +
    Returns:
    +

    The arity of a function sort.

    +
    +
    +
    + +
    +
    +getFunctionCodomainSort()
    +
    +
    Returns:
    +

    The codomain sort of a function sort.

    +
    +
    +
    + +
    +
    +getFunctionDomainSorts()
    +
    +
    Returns:
    +

    The domain sorts of a function sort.

    +
    +
    +
    + +
    +
    +getInstantiatedParameters()
    +

    Get the sorts used to instantiate the sort parameters of a +parametric sort (parametric datatype or uninterpreted sort +constructor sort, see instantiate()).

    +
    +
    Returns:
    +

    The sorts used to instantiate the sort parameters of a +parametric sort

    +
    +
    +
    + +
    +
    +getKind()
    +
    +

    Warning

    +

    This function is experimental and may change in future +versions.

    +
    +
    +
    Returns:
    +

    The SortKind of this sort.

    +
    +
    +
    + +
    +
    +getNullableElementSort()
    +
    +
    Returns:
    +

    The element sort of a nullable sort.

    +
    +
    +
    + +
    +
    +getSequenceElementSort()
    +
    +
    Returns:
    +

    The element sort of a sequence sort.

    +
    +
    +
    + +
    +
    +getSetElementSort()
    +
    +
    Returns:
    +

    The element sort of a set sort.

    +
    +
    +
    + +
    +
    +getSymbol()
    +
    +

    Note

    +

    Asserts hasSymbol().

    +
    +
    +
    Returns:
    +

    The raw symbol of the sort.

    +
    +
    +
    + +
    +
    +getTupleLength()
    +
    +
    Returns:
    +

    The length of a tuple sort.

    +
    +
    +
    + +
    +
    +getTupleSorts()
    +
    +
    Returns:
    +

    The element sorts of a tuple sort.

    +
    +
    +
    + +
    +
    +getUninterpretedSortConstructor()
    +

    Get the associated uninterpreted sort constructor of an +instantiated uninterpreted sort.

    +
    +
    Returns:
    +

    The uninterpreted sort constructor sort

    +
    +
    +
    + +
    +
    +getUninterpretedSortConstructorArity()
    +
    +
    Returns:
    +

    The arity of a sort constructor sort.

    +
    +
    +
    + +
    +
    +hasSymbol()
    +
    +
    Returns:
    +

    True iff this sort has a symbol.

    +
    +
    +
    + +
    +
    +instantiate()
    +

    Instantiate a parameterized datatype sort or uninterpreted sort +constructor sort.

    +

    Create sorts parameter with TermManager.mkParamSort()

    +
    +

    Warning

    +

    This function is experimental and may change in future +versions.

    +
    +
    +
    Parameters:
    +

    params – The list of sort parameters to instantiate with

    +
    +
    Returns:
    +

    The instantiated sort

    +
    +
    +
    + +
    +
    +isAbstract()
    +

    Determine if this is an abstract sort.

    +
    +
    Returns:
    +

    True if the sort is an abstract sort.

    +
    +
    +
    +

    Warning

    +

    This function is experimental and may change in future +versions.

    +
    +
    + +
    +
    +isArray()
    +

    Determine if this is an array sort.

    +
    +
    Returns:
    +

    True if the sort is an array sort.

    +
    +
    +
    + +
    +
    +isBag()
    +

    Determine if this is a bag sort.

    +
    +
    Returns:
    +

    True if the sort is a bag sort.

    +
    +
    +
    + +
    +
    +isBitVector()
    +

    Determine if this is a bit-vector sort (SMT-LIB: (_ BitVec i)).

    +
    +
    Returns:
    +

    True if the sort is a bit-vector sort.

    +
    +
    +
    + +
    +
    +isBoolean()
    +

    Determine if this is the Boolean sort (SMT-LIB: Bool).

    +
    +
    Returns:
    +

    True if the sort is the Boolean sort.

    +
    +
    +
    + +
    +
    +isDatatype()
    +

    Determine if this is a datatype sort.

    +
    +
    Returns:
    +

    True if the sort is a datatype sort.

    +
    +
    +
    + +
    +
    +isDatatypeConstructor()
    +

    Determine if this is a datatype constructor sort.

    +
    +
    Returns:
    +

    True if the sort is a datatype constructor sort.

    +
    +
    +
    + +
    +
    +isDatatypeSelector()
    +

    Determine if this is a datatype selector sort.

    +
    +
    Returns:
    +

    True if the sort is a datatype selector sort.

    +
    +
    +
    + +
    +
    +isDatatypeTester()
    +

    Determine if this is a tester sort.

    +
    +
    Returns:
    +

    True if the sort is a selector sort.

    +
    +
    +
    + +
    +
    +isDatatypeUpdater()
    +

    Determine if this is a datatype updater sort.

    +
    +
    Returns:
    +

    True if the sort is a datatype updater sort.

    +
    +
    +
    + +
    +
    +isFiniteField()
    +

    Determine if this is a finite field sort.

    +
    +
    Returns:
    +

    True if the sort is an array sort.

    +
    +
    +
    + +
    +
    +isFloatingPoint()
    +

    Determine if this is a floatingpoint sort +(SMT-LIB: (_ FloatingPoint eb sb)).

    +
    +
    Returns:
    +

    True if the sort is a bit-vector sort.

    +
    +
    +
    + +
    +
    +isFunction()
    +

    Determine if this is a function sort.

    +
    +
    Returns:
    +

    True if the sort is a function sort.

    +
    +
    +
    + +
    +
    +isInstantiated()
    +

    Determine if this is an instantiated (parametric datatype or +uninterpreted sort constructor) sort.

    +

    An instantiated sort is a sort that has been constructed from +instantiating a sort parameters with sort arguments +(see instantiate()).

    +
    +
    Returns:
    +

    True if this is an instantiated sort.

    +
    +
    +
    + +
    +
    +isInteger()
    +

    Determine if this is the integer sort (SMT-LIB: Int).

    +
    +
    Returns:
    +

    True if the sort is the integer sort.

    +
    +
    +
    + +
    +
    +isNull()
    +
    +
    Returns:
    +

    True if this Sort is a null sort.

    +
    +
    +
    + +
    +
    +isNullable()
    +

    Determine if this is a nullable sort.

    +
    +
    Returns:
    +

    True if the sort is a nullable sort.

    +
    +
    +
    + +
    +
    +isPredicate()
    +

    Determine if this is a predicate sort.

    +

    A predicate sort is a function sort that maps to the Boolean sort. +All predicate sorts are also function sorts.

    +
    +
    Returns:
    +

    True if the sort is a predicate sort.

    +
    +
    +
    + +
    +
    +isReal()
    +

    Determine if this is the real sort (SMT-LIB: Real).

    +
    +
    Returns:
    +

    True if the sort is the real sort.

    +
    +
    +
    + +
    +
    +isRecord()
    +

    Determine if this is a record sort.

    +
    +

    Warning

    +

    This function is experimental and may change in future +versions.

    +
    +
    +
    Returns:
    +

    True if the sort is a record sort.

    +
    +
    +
    + +
    +
    +isRegExp()
    +

    Determine if this is the regular expression sort (SMT-LIB: +RegLan).

    +
    +
    Returns:
    +

    True if the sort is the regexp sort.

    +
    +
    +
    + +
    +
    +isRoundingMode()
    +

    Determine if this is the rounding mode sort (SMT-LIB: +RoundingMode).

    +
    +
    Returns:
    +

    True if the sort is the rounding mode sort.

    +
    +
    +
    + +
    +
    +isSequence()
    +

    Determine if this is a sequence sort.

    +
    +
    Returns:
    +

    True if the sort is a sequence sort.

    +
    +
    +
    + +
    +
    +isSet()
    +

    Determine if this is a set sort.

    +
    +
    Returns:
    +

    True if the sort is a set sort.

    +
    +
    +
    + +
    +
    +isString()
    +

    Determine if this is the string sort (SMT-LIB: String).

    +
    +
    Returns:
    +

    True if the sort is the string sort.

    +
    +
    +
    + +
    +
    +isTuple()
    +

    Determine if this is a tuple sort.

    +
    +
    Returns:
    +

    True if the sort is a tuple sort.

    +
    +
    +
    + +
    +
    +isUninterpretedSort()
    +

    Determine if this is a sort uninterpreted.

    +
    +
    Returns:
    +

    True if the sort is uninterpreted.

    +
    +
    +
    + +
    +
    +isUninterpretedSortConstructor()
    +

    Determine if this is a sort constructor kind.

    +

    An uninterpreted sort constructor is an uninterpreted sort with +arity > 0.

    +
    +
    Returns:
    +

    True if this a sort constructor kind.

    +
    +
    +
    + +
    +
    +substitute()
    +

    Substitution of Sorts.

    +

    Note that this replacement is applied during a pre-order traversal +and only once to the sort. It is not run until fix point. In the +case that sort_or_list_1 contains duplicates, the replacement +earliest in the list takes priority.

    +

    For example, +(Array A B) .substitute([A, C], [(Array C D), (Array A B)]) +will return (Array (Array C D) B).

    +
    +

    Warning

    +

    This function is experimental and may change in future +versions.

    +
    +
    +
    Parameters:
    +
      +
    • sort_or_list_1 – The subsort or subsorts to be substituted +within this sort.

    • +
    • sort_or_list_2 – The sort or list of sorts replacing the +substituted subsort.

    • +
    +
    +
    +
    + +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/sortkind.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/sortkind.html new file mode 100644 index 0000000000..893c8f6a46 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/sortkind.html @@ -0,0 +1,483 @@ + + + + + + + + + + + + + SortKind — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    SortKind

    +

    Every Sort has an associated kind, represented +as enum cvc5.SortKind.

    +
    +
    +
    +class cvc5.SortKind(value)
    +

    The SortKind enum

    +
    +
    +ABSTRACT_SORT
    +

    An abstract sort.

    +

    An abstract sort represents a sort whose parameters or argument sorts are +unspecified. For example, mkAbstractSort(BITVECTOR_SORT) returns a +sort that represents the sort of bit-vectors whose bit-width is +unspecified.

    + +
    + +
    +
    +ARRAY_SORT
    +

    An array sort, whose argument sorts are the index and element sorts of the +array.

    + +
    + +
    +
    +BAG_SORT
    +

    A bag sort, whose argument sort is the element sort of the bag.

    + +
    + +
    +
    +BITVECTOR_SORT
    +

    A bit-vector sort, parameterized by an integer denoting its bit-width.

    + +
    + +
    +
    +BOOLEAN_SORT
    +

    The Boolean sort.

    + +
    + +
    +
    +DATATYPE_SORT
    +

    A datatype sort.

    + +
    + +
    +
    +FINITE_FIELD_SORT
    +

    A finite field sort, parameterized by a size.

    + +
    + +
    +
    +FLOATINGPOINT_SORT
    +

    A floating-point sort, parameterized by two integers denoting its +exponent and significand bit-widths.

    + +
    + +
    +
    +FUNCTION_SORT
    +

    A function sort with given domain sorts and codomain sort.

    + +
    + +
    +
    +INTEGER_SORT
    +

    The integer sort.

    + +
    + +
    +
    +INTERNAL_SORT_KIND
    +

    Internal kind.

    +

    This kind serves as an abstraction for internal kinds that are not exposed +via the API but may appear in terms returned by API functions, e.g., +when querying the simplified form of a term.

    +
    +

    Note

    +

    Should never be created via the API.

    +
    +
    + +
    +
    +LAST_SORT_KIND
    +

    Marks the upper-bound of this enumeration.

    +
    + +
    +
    +NULLABLE_SORT
    +

    A nullable sort, whose argument sort denotes the sort of the direct child +of the nullable.

    + +
    + +
    +
    +NULL_SORT
    +

    Null kind.

    +

    The kind of a null sort (Sort::Sort()).

    +
    +

    Note

    +

    May not be explicitly created via API functions other than +Sort::Sort().

    +
    +
    + +
    +
    +REAL_SORT
    +

    The real sort.

    + +
    + +
    +
    +REGLAN_SORT
    +

    The regular language sort.

    + +
    + +
    +
    +ROUNDINGMODE_SORT
    +

    The rounding mode sort.

    + +
    + +
    +
    +SEQUENCE_SORT
    +

    A sequence sort, whose argument sort is the element sort of the sequence.

    + +
    + +
    +
    +SET_SORT
    +

    A set sort, whose argument sort is the element sort of the set.

    + +
    + +
    +
    +STRING_SORT
    +

    The string sort.

    + +
    + +
    +
    +TUPLE_SORT
    +

    A tuple sort, whose argument sorts denote the sorts of the direct children +of the tuple.

    + +
    + +
    +
    +UNDEFINED_SORT_KIND
    +

    Undefined kind.

    +
    +

    Note

    +

    Should never be exposed or created via the API.

    +
    +
    + +
    +
    +UNINTERPRETED_SORT
    +

    An uninterpreted sort.

    + +
    + +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/statistics.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/statistics.html new file mode 100644 index 0000000000..eb0dedb304 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/statistics.html @@ -0,0 +1,239 @@ + + + + + + + + + + + + + Statistics — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Statistics

    +

    See Statistics for general information on statistics in cvc5.

    +

    Class cvc5.Statistics represents a mapping from statistic names +to statistic values

    +

    By default, iterating over a Statistics +object shows all statistics, including internal and unchanged ones. +The inclusion of internal and defaulted statistics can be configured via +Boolean parameters internal and defaulted of function +cvc5.Statistics.get().

    +
    +
    +
    +class cvc5.Statistics
    +

    The cvc5 Statistics.

    +

    Wrapper class for cvc5::Statistics.

    +

    Obtain a single statistic value using stats["name"] and a +dictionary with, configurably all (including internal and unchanged) +statistics using Statistics.get().

    +

    Iterate over all (including internal and unchanged) statistics via (the +standard iterable functions) __iter__() and __next__().

    +
    +
    +__getitem__()
    +

    Get the statistics information for the statistic called name.

    +
    +
    Parameters:
    +

    name – The name of the statistic to get.

    +
    +
    +
    + +
    +
    +__iter__()
    +

    Iterate over all statistics (including internal and unchanged +statistics).

    +
    + +
    +
    +__next__()
    +

    Get next statistic as a pair [name, <dict: name -> value>].

    +
    + +
    +
    +get()
    +

    Get all statistics as a dictionary.

    +
    +
    Parameters:
    +
      +
    • internal – True to also inclue internal statistics.

    • +
    • defaulted – True to also include unchanged statistics.

    • +
    +
    +
    Returns:
    +

    A dictionary with all available statistics.

    +
    +
    +
    + +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/symbolmanager.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/symbolmanager.html new file mode 100644 index 0000000000..1a6f4d2f0f --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/symbolmanager.html @@ -0,0 +1,255 @@ + + + + + + + + + + + + + SymbolManager — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    SymbolManager

    +

    This class manages a symbol table and other meta-information pertaining to +SMT-LIB v2 inputs (e.g., named assertions, declared functions, etc.).

    +
    +
    +
    +class cvc5.SymbolManager
    +

    Symbol manager. Internally, this class manages a symbol table and other +meta-information pertaining to SMT2 file inputs (e.g. named assertions, +declared functions, etc.).

    +

    A symbol manager can be modified by invoking commands, see Command.invoke().

    +

    A symbol manager can be provided when constructing an InputParser, in which +case that InputParser has symbols of this symbol manager preloaded.

    +

    The symbol manager’s interface is otherwise not publicly available.

    +

    Wrapper class for the C++ class cvc5::parser::SymbolManager.

    +
    +
    +getDeclaredSorts()
    +

    Get the list of sorts that have been declared via declare-sort. +These are the sorts that are printed in response to a +get-model command.

    +
    +
    Returns:
    +

    The declared sorts.

    +
    +
    +
    + +
    +
    +getDeclaredTerms()
    +

    Get the list of terms that have been declared via declare-fun and +declare-const. These are the terms that are printed in response to a +get-model command.

    +
    +
    Returns:
    +

    The declared terms.

    +
    +
    +
    + +
    +
    +getLogic()
    +
    +

    Note

    +

    Asserts isLogicSet().

    +
    +
    +
    Returns:
    +

    The logic used by this symbol manager.

    +
    +
    +
    + +
    +
    +getNamedTerms()
    +

    Get a mapping from terms to names that have been given to them via +the :named attribute.

    +
    +
    Returns:
    +

    A map of the named terms to their names.

    +
    +
    +
    + +
    +
    +isLogicSet()
    +
    +
    Returns:
    +

    True if the logic of this symbol manager has been set.

    +
    +
    +
    + +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/synthresult.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/synthresult.html new file mode 100644 index 0000000000..bcdde8542a --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/synthresult.html @@ -0,0 +1,237 @@ + + + + + + + + + + + + + SynthResult — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    SynthResult

    +

    This class represents a cvc5.Solver SyGus synthesis result.

    +
    +
    +
    +class cvc5.SynthResult
    +

    Encapsulation of a solver synth result.

    +

    This is the return value of the API methods:

    +
    +
    +

    which we call synthesis queries. This class indicates whether the +synthesis query has a solution, has no solution, or is unknown.

    +
    +
    +hasNoSolution()
    +
    +
    Returns:
    +

    True if the synthesis query has no solution. +In this case, it was determined that there was no solution.

    +
    +
    +
    + +
    +
    +hasSolution()
    +
    +
    Returns:
    +

    True if the synthesis query has a solution.

    +
    +
    +
    + +
    +
    +isNull()
    +
    +
    Returns:
    +

    True if SynthResult is null, i.e., not a SynthResult +returned from a synthesis query.

    +
    +
    +
    + +
    +
    +isUnknown()
    +
    +
    Returns:
    +

    True if the result of the synthesis query could not be +determined.

    +
    +
    +
    + +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/term.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/term.html new file mode 100644 index 0000000000..a2f3cf6575 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/term.html @@ -0,0 +1,1039 @@ + + + + + + + + + + + + + Term — cvc5 documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Term

    +

    The Term class represents an arbitrary expression +of any of the supported sorts. The list of all supported kinds of terms is +given by the Kind enum. +The Term class provides functions for general +inspection (e.g., comparison, retrieving the kind and sort, accessing +sub-terms), +but also functions for retrieving constant values for the supported theories +(i.e., is<Type>Value() and get<Type>Value(), which returns the +constant values in the best type Python offers).

    +

    The TermManager class provides factory functions +to create terms, e.g., +TermManager.mkTerm() for generic terms +and TermManager.mk<Type>() for constants, variables and values of a +given type.

    +
    +
    +
    +class cvc5.Term
    +

    A cvc5 Term.

    +

    Wrapper class for cvc5::Term.

    +
    +
    +__getitem__()
    +

    Get the child term at a given index.

    +
    +
    Parameters:
    +

    index – The index of the child term to return.

    +
    +
    Returns:
    +

    The child term with the given index.

    +
    +
    +
    + +
    +
    +__iter__()
    +

    Iterate over all child terms.

    +
    + +
    +
    +andTerm()
    +

    Boolean and.

    +
    +
    Parameters:
    +

    t – A Boolean term.

    +
    +
    Returns:
    +

    The conjunction of this term and the given term.

    +
    +
    +
    + +
    +
    +eqTerm()
    +

    Equality

    +
    +
    Parameters:
    +

    t – A Boolean term.

    +
    +
    Returns:
    +

    The Boolean equivalence of this term and the given term.

    +
    +
    +
    + +
    +
    +getBitVectorValue()
    +
    +

    Note

    +

    Asserts isBitVectorValue().

    +
    +

    Supported bases are 2 (bit string), 10 (decimal string) or 16 +(hexdecimal string).

    +
    +
    Returns:
    +

    The representation of a bit-vector value in string +representation.

    +
    +
    +
    + +
    +
    +getBooleanValue()
    +
    +

    Note

    +

    Asserts isBooleanValue()

    +
    +
    +
    Returns:
    +

    The representation of a Boolean value as a native Boolean +value.

    +
    +
    +
    + +
    +
    +getCardinalityConstraint()
    +
    +

    Note

    +

    Asserts isCardinalityConstraint().

    +
    +
    +
    Returns:
    +

    The sort the cardinality constraint is for and its upper +bound.

    +
    +
    +
    +

    Warning

    +

    This function is experimental and may change in future +versions.

    +
    +
    + +
    +
    +getConstArrayBase()
    +
    +

    Note

    +

    Asserts isConstArray().

    +
    +
    +
    Returns:
    +

    The base (element stored at all indicies) of this constant +array.

    +
    +
    +
    + +
    +
    +getFiniteFieldValue()
    +
    +

    Note

    +

    Asserts isFiniteFieldValue().

    +
    +
    +

    Note

    +

    Uses the integer representative of smallest absolute value.

    +
    +
    +
    Returns:
    +

    The representation of a finite field value as an integer.

    +
    +
    +
    + +
    +
    +getFloatingPointValue()
    +
    +

    Note

    +

    Asserts isFloatingPointValue().

    +
    +
    +
    Returns:
    +

    The representation of a floating-point value as a tuple of +the exponent width, the significand width and a bit-vector +value.

    +
    +
    +
    + +
    +
    +getId()
    +
    +
    Returns:
    +

    The id of this term.

    +
    +
    +
    + +
    +
    +getIntegerValue()
    +
    +

    Note

    +

    Asserts isIntegerValue().

    +
    +
    +
    Returns:
    +

    The integer term as a native python integer.

    +
    +
    +
    + +
    +
    +getKind()
    +
    +
    Returns:
    +

    The Kind of this term.

    +
    +
    +
    + +
    +
    +getNumChildren()
    +
    +
    Returns:
    +

    The number of children of this term.

    +
    +
    +
    + +
    +
    +getOp()
    +
    +
    Returns:
    +

    The Op used to create this Term.

    +
    +
    +
    +

    Note

    +

    This is safe to call when hasOp() returns True.

    +
    +
    + +
    +
    +getRealAlgebraicNumberDefiningPolynomial()
    +
    +
    +

    Note

    +

    Asserts isRealAlgebraicNumber().

    +
    +
    +
    +
    Parameters:
    +

    v – The variable over which to express the polynomial

    +
    +
    Returns:
    +

    The defining polynomial for the real algebraic number, expressed in +terms of the given variable.

    +
    +
    +
    + +
    +
    +getRealAlgebraicNumberLowerBound()
    +
    +
    +

    Note

    +

    Asserts isRealAlgebraicNumber().

    +
    +
    +
    +
    Returns:
    +

    The lower bound for the value of the real algebraic number.

    +
    +
    +
    + +
    +
    +getRealAlgebraicNumberUpperBound()
    +
    +
    +

    Note

    +

    Asserts isRealAlgebraicNumber().

    +
    +
    +
    +
    Returns:
    +

    The upper bound for the value of the real algebraic number.

    +
    +
    +
    + +
    +
    +getRealOrIntegerValueSign()
    +

    Get integer or real value sign. Must be called on integer or real +values, or otherwise an exception is thrown.

    +
    +
    Returns:
    +

    0 if this term is zero, -1 if this term is a negative real +or integer value, 1 if this term is a positive real or +integer value.

    +
    +
    +
    + +
    +
    +getRealValue()
    +
    +

    Note

    +

    Asserts isRealValue().

    +
    +
    +
    Returns:
    +

    The representation of a rational value as a python Fraction.

    +
    +
    +
    + +
    +
    +getRoundingModeValue()
    +
    +

    Note

    +

    Asserts isRoundingModeValue().

    +
    +
    +
    Returns:
    +

    The floating-point rounding mode value held by the term.

    +
    +
    +
    + +
    +
    +getSequenceValue()
    +
    +

    Note

    +

    Asserts isSequenceValue().

    +
    +
    +

    Note

    +

    It is usually necessary for sequences to call +Solver.simplify() to turn a sequence that is +constructed by, e.g., concatenation of unit sequences, into a +sequence value.

    +
    +
    +
    Returns:
    +

    The representation of a sequence value as a vector of +terms.

    +
    +
    +
    + +
    +
    +getSetValue()
    +
    +

    Note

    +

    Asserts isSetValue().

    +
    +
    +
    Returns:
    +

    The representation of a set value as a set of terms.

    +
    +
    +
    + +
    +
    +getSkolemId()
    +

    Get skolem identifier of this term. +.. note:: Asserts isSkolem(). +.. warning:: This function is experimental and may change in future

    +
    +

    versions.

    +
    +
    +
    Returns:
    +

    The skolem identifier of this term.

    +
    +
    +
    + +
    +
    +getSkolemIndices()
    +
    +
    +

    Note

    +

    Asserts isSkolem().

    +
    +
    +

    Warning

    +

    This function is experimental and may change in future +versions.

    +
    +
    +
    +
    Returns:
    +

    The skolem indices of this term. This is list of terms that +the skolem function is indexed by. For example, the array diff +skolem SkolemId.ARRAY_DEQ_DIFF is indexed by two arrays.

    +
    +
    +
    + +
    +
    +getSort()
    +
    +
    Returns:
    +

    The Sort of this term.

    +
    +
    +
    + +
    +
    +getStringValue()
    +
    +

    Note

    +

    Asserts isStringValue().

    +
    +
    +

    Note

    +

    This function is not to be confused with __str__() +which returns the term in some string representation, whatever +data it may hold.

    +
    +
    +
    Returns:
    +

    The string term as a native string value.

    +
    +
    +
    + +
    +
    +getSymbol()
    +

    ..note:: Asserts hasSymbol().

    +
    +
    Returns:
    +

    The raw symbol of the term.

    +
    +
    +
    + +
    +
    +getTupleValue()
    +
    +

    Note

    +

    Asserts isTupleValue().

    +
    +
    +
    Returns:
    +

    The representation of a tuple value as a vector of terms.

    +
    +
    +
    + +
    +
    +getUninterpretedSortValue()
    +
    +

    Note

    +

    Asserts isUninterpretedSortValue().

    +
    +
    +
    Returns:
    +

    The representation of an uninterpreted value as a pair of +its sort and its index.

    +
    +
    +
    + +
    +
    +hasOp()
    +
    +
    Returns:
    +

    True iff this term has an operator.

    +
    +
    +
    + +
    +
    +hasSymbol()
    +
    +
    Returns:
    +

    True iff this term has a symbol.

    +
    +
    +
    + +
    +
    +impTerm()
    +

    Boolean Implication.

    +
    +
    Parameters:
    +

    t – A Boolean term.

    +
    +
    Returns:
    +

    The implication of this term and the given term.

    +
    +
    +
    + +
    +
    +isBitVectorValue()
    +
    +
    Returns:
    +

    True iff this term is a bit-vector value.

    +
    +
    +
    + +
    +
    +isBooleanValue()
    +
    +
    Returns:
    +

    True iff this term is a Boolean value.

    +
    +
    +
    + +
    +
    +isCardinalityConstraint()
    +
    +
    Returns:
    +

    True if the term is a cardinality constraint.

    +
    +
    +
    +

    Warning

    +

    This function is experimental and may change in future +versions.

    +
    +
    + +
    +
    +isConstArray()
    +
    +
    Returns:
    +

    True iff this term is a constant array.

    +
    +
    +
    + +
    +
    +isFiniteFieldValue()
    +
    +
    Returns:
    +

    True iff this term is a finite field value.

    +
    +
    +
    + +
    +
    +isFloatingPointNaN()
    +
    +
    Returns:
    +

    True iff the term is the floating-point value for not a +number.

    +
    +
    +
    + +
    +
    +isFloatingPointNegInf()
    +
    +
    Returns:
    +

    True iff the term is the floating-point value for negative +infinity.

    +
    +
    +
    + +
    +
    +isFloatingPointNegZero()
    +
    +
    Returns:
    +

    True iff the term is the floating-point value for negative +zero.

    +
    +
    +
    + +
    +
    +isFloatingPointPosInf()
    +
    +
    Returns:
    +

    True iff the term is the floating-point value for positive +infinity.

    +
    +
    +
    + +
    +
    +isFloatingPointPosZero()
    +
    +
    Returns:
    +

    True iff the term is the floating-point value for positive +zero.

    +
    +
    +
    + +
    +
    +isFloatingPointValue()
    +
    +
    Returns:
    +

    True iff this term is a floating-point value.

    +
    +
    +
    + +
    +
    +isIntegerValue()
    +
    +
    Returns:
    +

    True iff this term is an integer value.

    +
    +
    +
    + +
    +
    +isNull()
    +
    +
    Returns:
    +

    True iff this term is a null term.

    +
    +
    +
    + +
    +
    +isRealAlgebraicNumber()
    +
    +
    Returns:
    +

    True if the term is a real algebraic number.

    +
    +
    +
    +

    Warning

    +

    This function is experimental and may change in future +versions.

    +
    +
    + +
    +
    +isRealValue()
    +
    +
    Returns:
    +

    True iff this term is a rational value.

    +
    +
    +
    +

    Note

    +

    A term of kind PI is not considered +to be a real value.

    +
    +
    + +
    +
    +isRoundingModeValue()
    +
    +
    Returns:
    +

    True if the term is a floating-point rounding mode +value.

    +
    +
    +
    + +
    +
    +isSequenceValue()
    +
    +
    Returns:
    +

    True iff this term is a sequence value.

    +
    +
    +
    + +
    +
    +isSetValue()
    +

    A term is a set value if it is considered to be a (canonical) +constant set value. A canonical set value is one whose AST is:

    +
    (set.union
    +    (set.singleton c1) ...
    +    (set.union (set.singleton c_{n-1}) (set.singleton c_n))))
    +
    +
    +

    where \(c_1 \dots c_n\) are values ordered by id such that +\(c_1 > \cdots > c_n\).

    +
    +

    Note

    +

    A universe set term +(kind SET_UNIVERSE) +is not considered to be a set value.

    +
    +
    +
    Returns:
    +

    True if the term is a set value.

    +
    +
    +
    + +
    +
    +isSkolem()
    +
    +
    Returns:
    +

    True if the term is a skolem.

    +
    +
    +
    +

    Warning

    +

    This function is experimental and may change in future +versions.

    +
    +
    + +
    +
    +isStringValue()
    +
    +
    Returns:
    +

    True iff this term is a string value.

    +
    +
    +
    + +
    +
    +isTupleValue()
    +
    +
    Returns:
    +

    True iff this term is a tuple value.

    +
    +
    +
    + +
    +
    +isUninterpretedSortValue()
    +
    +
    Returns:
    +

    True iff this term is a value from an uninterpreted sort.

    +
    +
    +
    + +
    +
    +iteTerm()
    +

    If-then-else with this term as the Boolean condition.

    +
    +
    Parameters:
    +
      +
    • then_t – The then term.

    • +
    • else_t – The else term.

    • +
    +
    +
    Returns:
    +

    The if-then-else term with this term as the Boolean +condition.

    +
    +
    +
    + +
    +
    +notTerm()
    +

    Boolean negation.

    +
    +
    Returns:
    +

    The Boolean negation of this term.

    +
    +
    +
    + +
    +
    +orTerm()
    +

    Boolean or.

    +
    +
    Parameters:
    +

    t – A Boolean term.

    +
    +
    Returns:
    +

    The disjunction of this term and the given term.

    +
    +
    +
    + +
    +
    +substitute()
    +
    +
    Returns:
    +

    The result of simultaneously replacing the term(s) stored +in term_or_list_1 by the term(s) stored in +term_or_list_2 in this term.

    +
    +
    +
    +

    Note

    +

    This replacement is applied during a pre-order traversal and +only once to the term. It is not run until fix point. In the +case that terms contains duplicates, the replacement earliest +in the list takes priority. For example, calling substitute on +f(x,y) with

    +
    term_or_list_1 = [ x, z ], term_or_list_2 = [ g(z), w ]
    +
    +
    +

    results in the term f(g(z),y).

    +
    +
    + +
    +
    +toPythonObj()
    +

    Converts a constant value Term to a Python object.

    +

    Currently supports:

    +
      +
    • Boolean: Returns a Python bool

    • +
    • Int : Returns a Python int

    • +
    • Real : Returns a Python Fraction

    • +
    • BV : Returns a Python int (treats BV as unsigned)

    • +
    • FF : Returns a Python int (gives the FF integer representative of smallest absolute value)

    • +
    • String : Returns a Python Unicode string

    • +
    • Array : Returns a Python dict mapping indices to values. The constant base is returned as the default value.

    • +
    +
    + +
    +
    +xorTerm()
    +

    Boolean exclusive or.

    +
    +
    Parameters:
    +

    t – A Boolean term.

    +
    +
    Returns:
    +

    The exclusive disjunction of this term and the given term.

    +
    +
    +
    + +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/termmanager.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/termmanager.html new file mode 100644 index 0000000000..f818124b28 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/termmanager.html @@ -0,0 +1,1283 @@ + + + + + + + + + + + + + TermManager — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    TermManager

    +

    This class represents a cvc5 term manager instance.

    +

    Terms, Sorts and +Ops are not tied to a cvc5.Solver +but associated with a cvc5.TermManager instance, which can be +shared between solver instances (and thus allows sharing of terms and sorts +between solver instances). +Term kinds are defined via enum class cvc5.Kind, and +sort kinds via enum class cvc5.SortKind.

    +
    +
    +
    +class cvc5.TermManager
    +

    A cvc5 term manager.

    +

    Wrapper class for cvc5::TermManager.

    +
    +
    +getBooleanSort()
    +
    +
    Returns:
    +

    Sort Boolean.

    +
    +
    +
    + +
    +
    +getIntegerSort()
    +
    +
    Returns:
    +

    Sort Integer.

    +
    +
    +
    + +
    +
    +getNumIndicesForSkolemId()
    +

    Get the number of indices for a skolem id.

    +
    +

    Warning

    +

    This function is experimental and may change in future +versions.

    +
    +
    +
    Parameters:
    +

    id – The skolem id.

    +
    +
    Returns:
    +

    The number of indice for a skolem with the given id.

    +
    +
    +
    + +
    +
    +getRealSort()
    +
    +
    Returns:
    +

    Sort Real.

    +
    +
    +
    + +
    +
    +getRegExpSort()
    +
    +
    Returns:
    +

    The sort of regular expressions.

    +
    +
    +
    + +
    +
    +getRoundingModeSort()
    +
    +
    Returns:
    +

    Sort RoundingMode.

    +
    +
    +
    + +
    +
    +getStatistics()
    +

    Get a snapshot of the current state of the statistic values of +this term manager.

    +

    Term manager statistics are independent from any solver instance. +The returned object is completely decoupled from the term manager +and will not change when the solver is used again.

    +
    +
    Returns:
    +

    A snapshot of the current state of the statistic values.

    +
    +
    +
    + +
    +
    +getStringSort()
    +
    +
    Returns:
    +

    Sort String.

    +
    +
    +
    + +
    +
    +mkAbstractSort()
    +

    Create an abstract sort. An abstract sort represents a sort for a +given kind whose parameters and arguments are unspecified.

    +

    Given kind must be the kind of a sort that can be abstracted, +i.e., a sort that has indices or argument sorts. For example, +ARRAY_SORT +and BITVECTOR_SORT can be +passed as the kind k to this method, while +INTEGER_SORT and +STRING_SORT cannot.

    +

    Providing the kind ABSTRACT_SORT +as an argument to this method returns the (fully) unspecified sort, +denoted ?.

    +

    Providing a kind of sort that has no indices and a fixed arity of +argument sorts will return the sort of kind kind whose +arguments are the unspecified sort. For example, +mkAbstractSort(ARRAY_SORT) will return the sort +(ARRAY_SORT ? ?) instead of the abstract sort whose abstract +kind is py:obj:ARRAY_SORT <Kind.ARRAY_SORT>.

    +
    +
    Parameters:
    +

    k – The kind of the abstract sort

    +
    +
    Returns:
    +

    The abstract sort.

    +
    +
    +
    +

    Warning

    +

    This function is experimental and may change in future +versions.

    +
    +
    + +
    +
    +mkArraySort()
    +

    Create an array sort.

    +
    +
    Parameters:
    +
      +
    • indexSort – The array index sort.

    • +
    • elemSort – The array element sort.

    • +
    +
    +
    Returns:
    +

    The array sort.

    +
    +
    +
    + +
    +
    +mkBagSort()
    +

    Create a bag sort.

    +
    +
    Parameters:
    +

    elemSort – The sort of the bag elements.

    +
    +
    Returns:
    +

    The bag sort.

    +
    +
    +
    + +
    +
    +mkBitVector()
    +

    Create bit-vector value.

    +

    Supports the following arguments:

    +
      +
    • Term mkBitVector(int size, int val=0)

    • +
    • Term mkBitVector(int size, string val, int base)

    • +
    +
    +
    Parameters:
    +
      +
    • size – The bit-width.

    • +
    • val – An integer representating the value, in the first form. +In the second form, a string representing the value.

    • +
    • base – The base of the string representation (second form +only).

    • +
    +
    +
    Returns:
    +

    A Term representing a bit-vector value.

    +
    +
    +
    + +
    +
    +mkBitVectorSort()
    +

    Create a bit-vector sort.

    +
    +
    Parameters:
    +

    size – The bit-width of the bit-vector sort

    +
    +
    Returns:
    +

    The bit-vector sort

    +
    +
    +
    + +
    +
    +mkBoolean()
    +

    Create a Boolean constant.

    +
    +
    Returns:
    +

    The Boolean constant.

    +
    +
    Parameters:
    +

    val – The value of the constant.

    +
    +
    +
    + +
    +
    +mkCardinalityConstraint()
    +

    Create cardinality constraint.

    +
    +

    Warning

    +

    This function is experimental and may change in future +versions.

    +
    +
    +
    Parameters:
    +
      +
    • sort – Sort of the constraint.

    • +
    • index – The upper bound for the cardinality of the sort.

    • +
    +
    +
    +
    + +
    +
    +mkConst()
    +

    Create (first-order) constant (0-arity function symbol).

    +

    SMT-LIB:

    +
    ( declare-const <symbol> <sort> )
    +( declare-fun <symbol> ( ) <sort> )
    +
    +
    +
    +
    Parameters:
    +
      +
    • sort – The sort of the constant.

    • +
    • symbol – The name of the constant. If None, a default symbol +is used.

    • +
    +
    +
    Returns:
    +

    The first-order constant.

    +
    +
    +
    + +
    +
    +mkConstArray()
    +

    Create a constant array with the provided constant value stored at +every index

    +
    +
    Parameters:
    +
      +
    • sort – The sort of the constant array (must be an array sort).

    • +
    • val – The constant value to store (must match the sort’s +element sort).

    • +
    +
    +
    Returns:
    +

    The constant array term.

    +
    +
    +
    + +
    +
    +mkDatatypeConstructorDecl()
    +

    Create datatype constructor declaration.

    +
    +
    Parameters:
    +

    name – The name of the constructor.

    +
    +
    Returns:
    +

    The datatype constructor declaration.

    +
    +
    +
    + +
    +
    +mkDatatypeDecl()
    +

    Create a datatype declaration.

    +
    +
    Parameters:
    +
      +
    • name – The name of the datatype.

    • +
    • isCoDatatype – True if a codatatype is to be constructed.

    • +
    +
    +
    Returns:
    +

    The datatype declaration.

    +
    +
    +
    + +
    +
    +mkDatatypeSort()
    +

    Create a datatype sort.

    +
    +
    Parameters:
    +

    dtypedecl – The datatype declaration from which the sort is +created.

    +
    +
    Returns:
    +

    The datatype sort.

    +
    +
    +
    + +
    +
    +mkDatatypeSorts()
    +

    Create a vector of datatype sorts using unresolved sorts. The names +of the datatype declarations in dtypedecls must be distinct.

    +

    When constructing datatypes, unresolved sorts are replaced by the +datatype sort constructed for the datatype declaration it is +associated with.

    +
    +
    Parameters:
    +

    dtypedecls – The datatype declarations from which the sort is +created.

    +
    +
    Returns:
    +

    The datatype sorts.

    +
    +
    +
    + +
    +
    +mkEmptyBag()
    +

    Create a constant representing an empty bag of the given sort.

    +
    +
    Parameters:
    +

    sort – The sort of the bag elements.

    +
    +
    Returns:
    +

    The empty bag constant.

    +
    +
    +
    + +
    +
    +mkEmptySequence()
    +

    Create an empty sequence of the given element sort.

    +
    +
    Parameters:
    +

    sort – The element sort of the sequence.

    +
    +
    Returns:
    +

    The empty sequence with given element sort.

    +
    +
    +
    + +
    +
    +mkEmptySet()
    +

    Create a constant representing an empty set of the given sort.

    +
    +
    Parameters:
    +

    sort – The sort of the set elements.

    +
    +
    Returns:
    +

    The empty set constant.

    +
    +
    +
    + +
    +
    +mkFalse()
    +

    Create a Boolean false constant.

    +
    +
    Returns:
    +

    The false constant.

    +
    +
    +
    + +
    +
    +mkFiniteFieldElem()
    +

    Create finite field value.

    +

    Supports the following arguments:

    +
      +
    • Term mkFiniteFieldElem(int value, Sort sort)

    • +
    • Term mkFiniteFieldElem(string value, Sort sort)

    • +
    • Term mkFiniteFieldElem(string value, Sort sort, int base)

    • +
    +
    +
    Parameters:
    +
      +
    • value – The value of the element’s integer representation. +An integer or string of base 10 if the base is not +explicitly given, and else a string in the given base.

    • +
    • sort – The field to create the element in.

    • +
    • base – The base of the string representation of value.

    • +
    +
    +
    Returns:
    +

    A Term representing a finite field value.

    +
    +
    +
    + +
    +
    +mkFiniteFieldSort()
    +

    Create a finite field sort.

    +

    Supports the following arguments:

    +
      +
    • Sort mkFiniteFieldSort(int size)

    • +
    • Sort mkFiniteFieldSort(string size)

    • +
    • Sort mkFiniteFieldSort(string size, int base)

    • +
    +
    +
    Parameters:
    +
      +
    • size – The size of the field. Must be a prime-power. +An integer or string of base 10 if the base is not +explicitly given, and else a string in the given base.

    • +
    • base – The base of the string representation of size.

    • +
    +
    +
    +
    + +
    +
    +mkFloatingPoint()
    +

    Create a floating-point value from a bit-vector given in IEEE-754 +format, or from its three IEEE-754 bit-vector value components +(sign bit, exponent, significand). Arguments must be either given +as (int, int, Term) or (Term, Term, Term).

    +

    :param arg0 The size of the exponent or the sign bit. +:param arg1 The size of the signifcand or the bit-vector

    +
    +

    representing the exponent.

    +
    +
    +
    Parameters:
    +

    arg2 – The value of the floating-point constant as a +bit-vector term or the bit-vector representing the +significand.

    +
    +
    +

    :return The floating-point value.

    +
    + +
    +
    +mkFloatingPointNaN()
    +

    Create a not-a-number (NaN) floating-point constant.

    +
    +
    Parameters:
    +
      +
    • exp – Number of bits in the exponent.

    • +
    • sig – Number of bits in the significand.

    • +
    +
    +
    Returns:
    +

    The floating-point constant.

    +
    +
    +
    + +
    +
    +mkFloatingPointNegInf()
    +

    Create a negative infinity floating-point constant.

    +
    +
    Parameters:
    +
      +
    • exp – Number of bits in the exponent.

    • +
    • sig – Number of bits in the significand.

    • +
    +
    +
    Returns:
    +

    The floating-point constant.

    +
    +
    +
    + +
    +
    +mkFloatingPointNegZero()
    +

    Create a negative zero (+0.0) floating-point constant.

    +
    +
    Parameters:
    +
      +
    • exp – Number of bits in the exponent.

    • +
    • sig – Number of bits in the significand.

    • +
    +
    +
    Returns:
    +

    The floating-point constant.

    +
    +
    +
    + +
    +
    +mkFloatingPointPosInf()
    +

    Create a positive infinity floating-point constant.

    +
    +
    Parameters:
    +
      +
    • exp – Number of bits in the exponent.

    • +
    • sig – Number of bits in the significand.

    • +
    +
    +
    Returns:
    +

    The floating-point constant.

    +
    +
    +
    + +
    +
    +mkFloatingPointPosZero()
    +

    Create a positive zero (+0.0) floating-point constant.

    +
    +
    Parameters:
    +
      +
    • exp – Number of bits in the exponent.

    • +
    • sig – Number of bits in the significand.

    • +
    +
    +
    Returns:
    +

    The floating-point constant.

    +
    +
    +
    + +
    +
    +mkFloatingPointSort()
    +

    Create a floating-point sort.

    +
    +
    Parameters:
    +
      +
    • exp – The bit-width of the exponent of the floating-point +sort.

    • +
    • sig – The bit-width of the significand of the floating-point +sort.

    • +
    +
    +
    +
    + +
    +
    +mkFunctionSort()
    +

    Create function sort.

    +
    +
    Parameters:
    +
      +
    • sorts – The sort of the function arguments.

    • +
    • codomain – The sort of the function return value.

    • +
    +
    +
    Returns:
    +

    The function sort.

    +
    +
    +
    + +
    +
    +mkInteger()
    +

    Create an integer constant.

    +
    +
    Parameters:
    +

    val – Representation of the constant: either a string or +integer.

    +
    +
    Returns:
    +

    A constant of sort Integer.

    +
    +
    +
    + +
    +
    +mkNullableIsNull()
    +

    Create a null tester for a nullable term.

    +
    +
    Parameters:
    +

    term – A nullable term.

    +
    +
    Returns:
    +

    A tester whether term is null.

    +
    +
    +
    + +
    +
    +mkNullableIsSome()
    +

    Create a some tester for a nullable term.

    +
    +
    Parameters:
    +

    term – A nullable term.

    +
    +
    Returns:
    +

    A tester whether term is some.

    +
    +
    +
    + +
    +
    +mkNullableLift()
    +

    Create a term that lifts kind to nullable terms. +Example: +If we have the term ((_ nullable.lift +) x y), +where x, y of type (Nullable Int), then +kind would be ADD, and args would be [x, y]. +This function would return +(nullable.lift (lambda ((a Int) (b Int)) (+ a b)) x y)

    +
    +
    Parameters:
    +
      +
    • kind – The lifted operator.

    • +
    • args – The arguments of the lifted operator.

    • +
    +
    +
    Returns:
    +

    A term of Kind NULLABLE_LIFT where the first child +is a lambda expression, and the remaining children are +the original arguments.

    +
    +
    +
    + +
    +
    +mkNullableNull()
    +

    Create a constant representing an null of the given sort.

    +
    +
    Parameters:
    +

    term – The sort of the Nullable element.

    +
    +
    Returns:
    +

    The null constant.

    +
    +
    +
    + +
    +
    +mkNullableSome()
    +

    Create a nullable some term.

    +
    +
    Parameters:
    +

    term – The elements value.

    +
    +
    Returns:
    +

    The element value wrapped in some constructor.

    +
    +
    +
    + +
    +
    +mkNullableSort()
    +

    Create a nullable sort.

    +
    +
    Parameters:
    +

    elemSort – The sort of the element of the nullable.

    +
    +
    Returns:
    +

    The nullable sort.

    +
    +
    +
    + +
    +
    +mkNullableVal()
    +

    Create a selector for nullable term.

    +
    +
    Parameters:
    +

    term – A nullable term.

    +
    +
    Returns:
    +

    The element value of the nullable term.

    +
    +
    +
    + +
    +
    +mkOp()
    +

    Create operator.

    +

    Supports the following arguments:

    +
      +
    • Op mkOp(Kind kind)

    • +
    • Op mkOp(Kind kind, const string& arg)

    • +
    • Op mkOp(Kind kind, uint32_t arg0, ...)

    • +
    +
    + +
    +
    +mkParamSort()
    +

    Create a sort parameter.

    +
    +

    Warning

    +

    This function is experimental and may change in future +versions.

    +
    +
    +
    Parameters:
    +

    symbol – The name of the sort.

    +
    +
    Returns:
    +

    The sort parameter.

    +
    +
    +
    + +
    +
    +mkPi()
    +

    Create a constant representing the number Pi.

    +
    +
    Returns:
    +

    A constant representing PI.

    +
    +
    +
    + +
    +
    +mkPredicateSort()
    +

    Create a predicate sort.

    +
    +
    Parameters:
    +

    sorts – The list of sorts of the predicate.

    +
    +
    Returns:
    +

    The predicate sort.

    +
    +
    +
    + +
    +
    +mkReal()
    +

    Create a real constant from a numerator and an optional denominator.

    +

    First converts the arguments to a temporary string, either +"<numerator>" or "<numerator>/<denominator>". This temporary +string is forwarded to cvc5::Solver::mkReal() and should +thus represent an integer, a decimal number or a fraction.

    +
    +
    Parameters:
    +
      +
    • numerator – The numerator.

    • +
    • denominator – The denominator, or None.

    • +
    +
    +
    Returns:
    +

    A real term with literal value.

    +
    +
    +
    + +
    +
    +mkRecordSort()
    +

    Create a record sort

    +
    +

    Warning

    +

    This function is experimental and may change in future +versions.

    +
    +
    +
    Parameters:
    +

    fields – The list of fields of the record.

    +
    +
    Returns:
    +

    The record sort.

    +
    +
    +
    + +
    +
    +mkRegexpAll()
    +

    Create a regular expression all (re.all) term.

    +
    +
    Returns:
    +

    The all term.

    +
    +
    +
    + +
    +
    +mkRegexpAllchar()
    +

    Create a regular expression allchar (re.allchar) term.

    +
    +
    Returns:
    +

    The allchar term.

    +
    +
    +
    + +
    +
    +mkRegexpNone()
    +

    Create a regular expression none (re.none) term.

    +
    +
    Returns:
    +

    The none term.

    +
    +
    +
    + +
    +
    +mkRoundingMode()
    +

    Create a roundingmode constant.

    +
    +
    Parameters:
    +

    rm – The floating point rounding mode this constant +represents.

    +
    +
    +
    + +
    +
    +mkSepEmp()
    +

    Create a separation logic empty term.

    +
    +

    Warning

    +

    This function is experimental and may change in future +versions.

    +
    +
    +
    Returns:
    +

    The separation logic empty term.

    +
    +
    +
    + +
    +
    +mkSepNil()
    +

    Create a separation logic nil term.

    +
    +

    Warning

    +

    This function is experimental and may change in future +versions.

    +
    +
    +
    Parameters:
    +

    sort – The sort of the nil term.

    +
    +
    Returns:
    +

    The separation logic nil term.

    +
    +
    +
    + +
    +
    +mkSequenceSort()
    +

    Create a sequence sort.

    +
    +
    Parameters:
    +

    elemSort – The sort of the sequence elements

    +
    +
    Returns:
    +

    The sequence sort.

    +
    +
    +
    + +
    +
    +mkSetSort()
    +

    Create a set sort.

    +
    +
    Parameters:
    +

    elemSort – The sort of the set elements.

    +
    +
    Returns:
    +

    The set sort.

    +
    +
    +
    + +
    +
    +mkSkolem()
    +

    Create a skolem.

    +
    +

    Warning

    +

    This function is experimental and may change in future +versions.

    +
    +
    +
    Parameters:
    +
      +
    • id – The skolem id.

    • +
    • indices – The indices for the skolem.

    • +
    +
    +
    Returns:
    +

    The skolem with the given id and indices.

    +
    +
    +
    + +
    +
    +mkString()
    +

    Create a String constant from a str which may contain SMT-LIB +compatible escape sequences like \u1234 to encode unicode +characters.

    +
    +
    Parameters:
    +
      +
    • s – The string this constant represents.

    • +
    • useEscSequences – Determines whether escape sequences in s +should be converted to the corresponding +unicode character

    • +
    +
    +
    Returns:
    +

    The String constant.

    +
    +
    +
    + +
    +
    +mkTerm()
    +

    Create a term.

    +

    Supports the following arguments:

    +
      +
    • Term mkTerm(Kind kind)

    • +
    • Term mkTerm(Op op)

    • +
    • Term mkTerm(Kind kind, *args)

    • +
    • Term mkTerm(Op op, *args)

    • +
    +

    where *args is a comma-separated list of terms.

    +
    + +
    +
    +mkTrue()
    +

    Create a Boolean true constant.

    +
    +
    Returns:
    +

    The true constant.

    +
    +
    +
    + +
    +
    +mkTuple()
    +

    Create a tuple term. Terms are automatically converted if sorts are +compatible.

    +
    +
    Parameters:
    +

    terms – The elements in the tuple.

    +
    +
    Returns:
    +

    The tuple Term.

    +
    +
    +
    + +
    +
    +mkTupleSort()
    +

    Create a tuple sort.

    +
    +
    Parameters:
    +

    sorts – Of the elements of the tuple.

    +
    +
    Returns:
    +

    The tuple sort.

    +
    +
    +
    + +
    +
    +mkUninterpretedSort()
    +

    Create an uninterpreted sort.

    +
    +
    Parameters:
    +

    symbol – The name of the sort.

    +
    +
    Returns:
    +

    The uninterpreted sort.

    +
    +
    +
    + +
    +
    +mkUninterpretedSortConstructorSort()
    +

    Create a sort constructor sort.

    +

    An uninterpreted sort constructor is an uninterpreted sort with +arity > 0.

    +
    +
    Parameters:
    +
      +
    • symbol – The symbol of the sort.

    • +
    • arity – The arity of the sort (must be > 0).

    • +
    +
    +
    Returns:
    +

    The sort constructor sort.

    +
    +
    +
    + +
    +
    +mkUniverseSet()
    +

    Create a universe set of the given sort.

    +
    +
    Parameters:
    +

    sort – The sort of the set elements

    +
    +
    Returns:
    +

    The universe set constant

    +
    +
    +
    + +
    +
    +mkUnresolvedDatatypeSort()
    +

    Create an unresolved datatype sort.

    +

    This is for creating yet unresolved sort placeholders for mutually +recursive datatypes.

    +
    +
    Parameters:
    +
      +
    • symbol – The name of the sort.

    • +
    • arity – The number of sort parameters of the sort.

    • +
    +
    +
    Returns:
    +

    The unresolved sort.

    +
    +
    +
    + +
    +
    +mkVar()
    +

    Create a bound variable to be used in a binder (i.e. a quantifier, +a lambda, or a witness binder).

    +
    +
    Parameters:
    +
      +
    • sort – The sort of the variable.

    • +
    • symbol – The name of the variable.

    • +
    +
    +
    Returns:
    +

    The variable.

    +
    +
    +
    + +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/unknownexplanation.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/unknownexplanation.html new file mode 100644 index 0000000000..5cebfa7dd9 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/base/unknownexplanation.html @@ -0,0 +1,247 @@ + + + + + + + + + + + + + UnknownExplanation — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    UnknownExplanation

    +

    This enum represents the explanation for an unknown solver result +(see Result).

    +
    +
    +
    +class cvc5.UnknownExplanation(value)
    +

    The UnknownExplanation enum

    +
    +
    +INCOMPLETE
    +

    Incomplete theory solver.

    +
    + +
    +
    +INTERRUPTED
    +

    Solver was interrupted.

    +
    + +
    +
    +MEMOUT
    +

    Memory limit reached.

    +
    + +
    +
    +OTHER
    +

    Other reason.

    +
    + +
    +
    +REQUIRES_CHECK_AGAIN
    +

    Requires another satisfiability check

    +
    + +
    +
    +REQUIRES_FULL_CHECK
    +

    Full satisfiability check required (e.g., if only preprocessing was +performed).

    +
    + +
    +
    +RESOURCEOUT
    +

    Resource limit reached.

    +
    + +
    +
    +TIMEOUT
    +

    Time limit reached.

    +
    + +
    +
    +UNKNOWN_REASON
    +

    No specific reason given.

    +
    + +
    +
    +UNSUPPORTED
    +

    Unsupported feature encountered.

    +
    + +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/python.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/python.html new file mode 100644 index 0000000000..add6514e04 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/python.html @@ -0,0 +1,197 @@ + + + + + + + + + + + + + Python API — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Python API

    +

    cvc5 offers two separate APIs for Python users. +The base Python API is an almost exact copy of the +C++ API. +Alternatively, the pythonic API is a more pythonic +API that aims to be fully compatible with Z3s Python API while adding +functionality that Z3 does not support.

    + +
    +

    Which Python API should I use?

    +

    If you are a new user, or already have an application that uses Z3’s python +API, use the pythonic API. +If you would like a more feature-complete—yet verbose—python API, with the +ability to do almost everything that the cpp API allows, use the base +Python API.

    +

    You can compare examples using the two APIs by visiting the examples page.

    +
    +
    +

    Installation (from PyPi)

    +

    The base and pythonic Python API can be installed via pip as follows:

    +
    pip install cvc5
    +
    +
    +
    +
    +

    Installation (from source)

    +

    The base and pythonic Python API can also be installed from source following +these steps:

    +
    git clone https://github.com/cvc5/cvc5.git
    +cd cvc5
    +./configure.sh --python-bindings --auto-download
    +cd build
    +make # add -jN for parallel build using N threads
    +make install
    +
    +
    +

    The last step installs both the cvc5 binary and the Python bindings. +If you want to install only the Python bindings, run the following +command instead of make install:

    +
    cmake --install . --component python-api
    +
    +
    +

    For Windows, the steps above must be executed on a MINGW64 environment +(see the installation instructions).

    +

    Finally, you can make sure that it works by running:

    +
    python3
    +import cvc5
    +
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/pythonic/arith.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/pythonic/arith.html new file mode 100644 index 0000000000..f1dea498e0 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/pythonic/arith.html @@ -0,0 +1,1654 @@ + + + + + + + + + + + + + Arithmetic — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Arithmetic

    +
    +

    Basic Arithmetic Term Builders

    +
    +
    +cvc5.pythonic.Int(name, ctx=None)
    +

    Return an integer constant named name. If ctx=None, then the global context is used.

    +
    >>> x = Int('x')
    +>>> is_int(x)
    +True
    +>>> is_int(x + 1)
    +True
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Real(name, ctx=None)
    +

    Return a real constant named name. If ctx=None, then the global context is used.

    +
    >>> x = Real('x')
    +>>> is_real(x)
    +True
    +>>> is_real(x + 1)
    +True
    +
    +
    +
    + +
    +
    +cvc5.pythonic.IntVal(val, ctx=None)
    +

    Return an SMT integer value. If ctx=None, then the global context is used.

    +
    >>> IntVal(1)
    +1
    +>>> IntVal("100")
    +100
    +
    +
    +
    + +
    +
    +cvc5.pythonic.RealVal(val, ctx=None)
    +

    Return an SMT real value.

    +

    val may be a Python int, long, float or string representing a number in decimal or rational notation. +If ctx=None, then the global context is used.

    +
    >>> RealVal(1)
    +1
    +>>> RealVal(1).sort()
    +Real
    +>>> RealVal("3/5")
    +3/5
    +>>> RealVal("1.5")
    +3/2
    +
    +
    +
    + +
    +
    +cvc5.pythonic.RatVal(a, b, ctx=None)
    +

    Return an SMT rational a/b.

    +

    If ctx=None, then the global context is used.

    +
    >>> RatVal(3,5)
    +3/5
    +>>> RatVal(3,5).sort()
    +Real
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Q(a, b, ctx=None)
    +

    Return an SMT rational a/b.

    +

    If ctx=None, then the global context is used.

    +
    >>> Q(3,5)
    +3/5
    +>>> Q(3,5).sort()
    +Real
    +>>> Q(4,8)
    +1/2
    +
    +
    +
    + +
    +
    +cvc5.pythonic.IntSort(ctx=None)
    +

    Return the integer sort in the given context. If ctx=None, then the global context is used.

    +
    >>> IntSort()
    +Int
    +>>> x = Const('x', IntSort())
    +>>> is_int(x)
    +True
    +>>> x.sort() == IntSort()
    +True
    +>>> x.sort() == BoolSort()
    +False
    +
    +
    +
    + +
    +
    +cvc5.pythonic.RealSort(ctx=None)
    +

    Return the real sort in the given context. If ctx=None, then the global context is used.

    +
    >>> RealSort()
    +Real
    +>>> x = Const('x', RealSort())
    +>>> is_real(x)
    +True
    +>>> is_int(x)
    +False
    +>>> x.sort() == RealSort()
    +True
    +
    +
    +
    + +
    +
    +cvc5.pythonic.FreshInt(prefix='x', ctx=None)
    +

    Return a fresh integer constant in the given context using the given prefix.

    +
    >>> x = FreshInt()
    +>>> y = FreshInt()
    +>>> eq(x, y)
    +False
    +>>> x.sort()
    +Int
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Ints(names, ctx=None)
    +

    Return a tuple of Integer constants.

    +
    >>> x, y, z = Ints('x y z')
    +>>> Sum(x, y, z)
    +x + y + z
    +
    +
    +
    + +
    +
    +cvc5.pythonic.IntVector(prefix, sz, ctx=None)
    +

    Return a list of integer constants of size sz.

    +
    >>> X = IntVector('x', 3)
    +>>> X
    +[x__0, x__1, x__2]
    +>>> Sum(X)
    +x__0 + x__1 + x__2
    +
    +
    +
    + +
    +
    +cvc5.pythonic.FreshReal(prefix='b', ctx=None)
    +

    Return a fresh real constant in the given context using the given prefix.

    +
    >>> x = FreshReal()
    +>>> y = FreshReal()
    +>>> eq(x, y)
    +False
    +>>> x.sort()
    +Real
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Reals(names, ctx=None)
    +

    Return a tuple of real constants.

    +
    >>> x, y, z = Reals('x y z')
    +>>> Sum(x, y, z)
    +x + y + z
    +>>> Sum(x, y, z).sort()
    +Real
    +
    +
    +
    + +
    +
    +cvc5.pythonic.RealVector(prefix, sz, ctx=None)
    +

    Return a list of real constants of size sz.

    +
    >>> X = RealVector('x', 3)
    +>>> X
    +[x__0, x__1, x__2]
    +>>> Sum(X)
    +x__0 + x__1 + x__2
    +>>> Sum(X).sort()
    +Real
    +
    +
    +
    + +
    +
    +

    Arithmetic Overloads

    +

    See the following operator overloads for building arithmetic terms. These terms +can also be built with builder functions listed below.

    +
    +
    addition (+)

    cvc5.pythonic.ArithRef.__add__()

    +
    +
    subtraction (-)

    cvc5.pythonic.ArithRef.__sub__()

    +
    +
    multiplication (*)

    cvc5.pythonic.ArithRef.__mul__()

    +
    +
    division (/)

    cvc5.pythonic.ArithRef.__div__()

    +
    +
    power (**)

    cvc5.pythonic.ArithRef.__pow__()

    +
    +
    negation (-)

    cvc5.pythonic.ArithRef.__neg__()

    +
    +
    greater than (>)

    cvc5.pythonic.ArithRef.__gt__()

    +
    +
    less than (<)

    cvc5.pythonic.ArithRef.__lt__()

    +
    +
    greater than or equal to (>=)

    cvc5.pythonic.ArithRef.__ge__()

    +
    +
    less than or equal to (<=)

    cvc5.pythonic.ArithRef.__le__()

    +
    +
    equal (==)

    cvc5.pythonic.ExprRef.__eq__()

    +
    +
    not equal (!=)

    cvc5.pythonic.ExprRef.__ne__()

    +
    +
    +
    +
    +cvc5.pythonic.Add(*args)
    +

    Create an SMT addition.

    +

    See also the __add__ overload (+ operator) for arithmetic SMT expressions.

    +
    >>> x, y = Ints('x y')
    +>>> Add(x, x, y)
    +x + x + y
    +>>> Add(x, x, y, main_ctx())
    +x + x + y
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Mult(*args)
    +

    Create an SMT multiplication.

    +

    See also the __mul__ overload (* operator) for arithmetic SMT expressions.

    +
    >>> x, y = Ints('x y')
    +>>> Mult(x, x, y)
    +x*x*y
    +>>> Mult(x, x, y, main_ctx())
    +x*x*y
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Sub(a, b)
    +

    Create an SMT subtraction.

    +

    See also the __sub__ overload (- operator) for arithmetic SMT expressions.

    +
    >>> x, y = Ints('x y')
    +>>> Sub(x, y)
    +x - y
    +
    +
    +
    + +
    +
    +cvc5.pythonic.UMinus(a)
    +

    Create an SMT unary negation.

    +

    Deprecated. Kept for compatiblity with Z3. See “Neg”.

    +

    See also the __neg__ overload (unary - operator) for arithmetic SMT expressions.

    +
    >>> x = Int('x')
    +>>> UMinus(x)
    +-x
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Div(a, b)
    +

    Create an SMT division.

    +

    See also the __div__ overload (/ operator) for arithmetic SMT expressions.

    +
    >>> x, y = Ints('x y')
    +>>> a, b = Reals('x y')
    +>>> Div(x, y).sexpr()
    +'(div x y)'
    +>>> Div(a, y).sexpr()
    +'(/ x (to_real y))'
    +>>> Div(a, b).sexpr()
    +'(/ x y)'
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Pow(a, b)
    +

    Create an SMT power.

    +

    See also the __pow__ overload for arithmetic SMT expressions.

    +
    >>> x = Int('x')
    +>>> Pow(x, 3)
    +x**3
    +
    +
    +
    + +
    +
    +cvc5.pythonic.IntsModulus(a, b)
    +

    Create an SMT integer modulus.

    +

    See also the __mod__ overload (% operator) for arithmetic SMT expressions.

    +
    >>> x, y = Ints('x y')
    +>>> IntsModulus(x, y)
    +x%y
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Leq(a, b)
    +

    Create an SMT less-than-or-equal-to.

    +

    See also the __le__ overload (<= operator) for arithmetic SMT expressions.

    +
    >>> x, y = Ints('x y')
    +>>> Leq(x, y)
    +x <= y
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Geq(a, b)
    +

    Create an SMT greater-than-or-equal-to.

    +

    See also the __ge__ overload (>= operator) for arithmetic SMT expressions.

    +
    >>> x, y = Ints('x y')
    +>>> Geq(x, y)
    +x >= y
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Lt(a, b)
    +

    Create an SMT less-than.

    +

    See also the __lt__ overload (< operator) for arithmetic SMT expressions.

    +
    >>> x, y = Ints('x y')
    +>>> Lt(x, y)
    +x < y
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Gt(a, b)
    +

    Create an SMT greater-than.

    +

    See also the __gt__ overload (> operator) for arithmetic SMT expressions.

    +
    >>> x, y = Ints('x y')
    +>>> Gt(x, y)
    +x > y
    +
    +
    +
    + +
    +
    +

    Other Arithmetic Operators

    +
    +
    +cvc5.pythonic.ToReal(a)
    +

    Return the SMT expression ToReal(a).

    +
    >>> x = Int('x')
    +>>> x.sort()
    +Int
    +>>> n = ToReal(x)
    +>>> n
    +ToReal(x)
    +>>> n.sort()
    +Real
    +
    +
    +
    + +
    +
    +cvc5.pythonic.ToInt(a)
    +

    Return the SMT expression ToInt(a).

    +
    >>> x = Real('x')
    +>>> x.sort()
    +Real
    +>>> n = ToInt(x)
    +>>> n
    +ToInt(x)
    +>>> n.sort()
    +Int
    +
    +
    +
    + +
    +
    +cvc5.pythonic.IsInt(a)
    +

    Return the SMT predicate IsInt(a).

    +
    >>> x = Real('x')
    +>>> IsInt(x + "1/2")
    +IsInt(x + 1/2)
    +>>> solve(IsInt(x + "1/2"), x > 0, x < 1)
    +[x = 1/2]
    +>>> solve(IsInt(x + "1/2"), x > 0, x < 1, x != "1/2")
    +no solution
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Sqrt(a, ctx=None)
    +

    Return an SMT expression which represents the square root of a.

    +

    Can also operate on python builtins of arithemtic type.

    +
    >>> x = Real('x')
    +>>> Sqrt(x)
    +x**(1/2)
    +>>> Sqrt(4)
    +4**(1/2)
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Cbrt(a, ctx=None)
    +

    Return an SMT expression which represents the cubic root of a.

    +

    Can also operate on python builtins of arithemtic type.

    +
    >>> x = Real('x')
    +>>> Cbrt(x)
    +x**(1/3)
    +>>> Cbrt(4)
    +4**(1/3)
    +
    +
    +
    + +
    +
    +

    Transcendentals

    +
    +
    +cvc5.pythonic.Pi(ctx=None)
    +

    Create the constant pi

    +
    >>> Pi()
    +Pi
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Exponential(x)
    +

    Create an exponential function

    +
    >>> x = Real('x')
    +>>> solve(Exponential(x) == 1)
    +[x = 0]
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Sine(x)
    +

    Create a sine function

    +
    >>> x = Real('x')
    +>>> i = Int('i')
    +>>> prove(Sine(x) < 2)
    +proved
    +>>> prove(Sine(i) < 2)
    +proved
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Cosine(x)
    +

    Create a cosine function

    +
    >>> x = Real('x')
    +>>> i = Int('i')
    +>>> prove(Cosine(x) < 2)
    +proved
    +>>> prove(Cosine(i) < 2)
    +proved
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Tangent(x)
    +

    Create a tangent function

    +
    >>> Tangent(Real('x'))
    +Tangent(x)
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Arcsine(x)
    +

    Create an arcsine function

    +
    >>> Arcsine(Real('x'))
    +Arcsine(x)
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Arccosine(x)
    +

    Create an arccosine function

    +
    >>> Arccosine(Real('x'))
    +Arccosine(x)
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Arctangent(x)
    +

    Create an arctangent function

    +
    >>> Arctangent(Real('x'))
    +Arctangent(x)
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Secant(x)
    +

    Create a secant function

    +
    >>> Secant(Real('x'))
    +Secant(x)
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Cosecant(x)
    +

    Create a cosecant function

    +
    >>> Cosecant(Real('x'))
    +Cosecant(x)
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Cotangent(x)
    +

    Create a cotangent function

    +
    >>> Cotangent(Real('x'))
    +Cotangent(x)
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Arcsecant(x)
    +

    Create an arcsecant function

    +
    >>> Arcsecant(Real('x'))
    +Arcsecant(x)
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Arccosecant(x)
    +

    Create an arccosecant function

    +
    >>> Arccosecant(Real('x'))
    +Arccosecant(x)
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Arccotangent(x)
    +

    Create an arccotangent function

    +
    >>> Arccotangent(Real('x'))
    +Arccotangent(x)
    +
    +
    +
    + +
    +
    +

    Testers

    +
    +
    +cvc5.pythonic.is_arith(a)
    +

    Return True if a is an arithmetical expression.

    +
    >>> x = Int('x')
    +>>> is_arith(x)
    +True
    +>>> is_arith(x + 1)
    +True
    +>>> is_arith(1)
    +False
    +>>> is_arith(IntVal(1))
    +True
    +>>> y = Real('y')
    +>>> is_arith(y)
    +True
    +>>> is_arith(y + 1)
    +True
    +
    +
    +
    + +
    +
    +cvc5.pythonic.is_int(a)
    +

    Return True if a is an integer expression.

    +
    >>> x = Int('x')
    +>>> is_int(x + 1)
    +True
    +>>> is_int(1)
    +False
    +>>> is_int(IntVal(1))
    +True
    +>>> y = Real('y')
    +>>> is_int(y)
    +False
    +>>> is_int(y + 1)
    +False
    +
    +
    +
    + +
    +
    +cvc5.pythonic.is_real(a)
    +

    Return True if a is a real expression.

    +
    >>> x = Int('x')
    +>>> is_real(x + 1)
    +False
    +>>> y = Real('y')
    +>>> is_real(y)
    +True
    +>>> is_real(y + 1)
    +True
    +>>> is_real(1)
    +False
    +>>> is_real(RealVal(1))
    +True
    +
    +
    +
    + +
    +
    +cvc5.pythonic.is_int_value(a)
    +

    Return True if a is an integer value of sort Int.

    +
    >>> is_int_value(IntVal(1))
    +True
    +>>> is_int_value(1)
    +False
    +>>> is_int_value(Int('x'))
    +False
    +>>> n = Int('x') + 1
    +>>> n
    +x + 1
    +>>> n.arg(1)
    +1
    +>>> is_int_value(n.arg(1))
    +True
    +>>> is_int_value(RealVal("1/3"))
    +False
    +>>> is_int_value(RealVal(1))
    +False
    +
    +
    +
    + +
    +
    +cvc5.pythonic.is_rational_value(a)
    +

    Return True if a is rational value of sort Real.

    +
    >>> is_rational_value(RealVal(1))
    +True
    +>>> is_rational_value(RealVal("3/5"))
    +True
    +>>> is_rational_value(IntVal(1))
    +False
    +>>> is_rational_value(1)
    +False
    +>>> n = Real('x') + 1
    +>>> n.arg(1)
    +1
    +>>> is_rational_value(n.arg(1))
    +True
    +>>> is_rational_value(Real('x'))
    +False
    +
    +
    +
    + +
    +
    +cvc5.pythonic.is_arith_sort(s)
    +

    Return True if s is an arithmetical sort (type).

    +
    >>> is_arith_sort(IntSort())
    +True
    +>>> is_arith_sort(RealSort())
    +True
    +>>> is_arith_sort(BoolSort())
    +False
    +>>> n = Int('x') + 1
    +>>> is_arith_sort(n.sort())
    +True
    +
    +
    +
    + +
    +
    +cvc5.pythonic.is_add(a)
    +

    Return True if a is an expression of the form b + c.

    +
    >>> x, y = Ints('x y')
    +>>> is_add(x + y)
    +True
    +>>> is_add(x - y)
    +False
    +
    +
    +
    + +
    +
    +cvc5.pythonic.is_mul(a)
    +

    Return True if a is an expression of the form b * c.

    +
    >>> x, y = Ints('x y')
    +>>> is_mul(x * y)
    +True
    +>>> is_mul(x - y)
    +False
    +
    +
    +
    + +
    +
    +cvc5.pythonic.is_sub(a)
    +

    Return True if a is an expression of the form b - c.

    +
    >>> x, y = Ints('x y')
    +>>> is_sub(x - y)
    +True
    +>>> is_sub(x + y)
    +False
    +
    +
    +
    + +
    +
    +cvc5.pythonic.is_div(a)
    +

    Return True if a is a rational division term (i.e. b / c).

    +

    Note: this returns false for integer division. See is_idiv.

    +
    >>> x, y = Reals('x y')
    +>>> is_div(x / y)
    +True
    +>>> is_div(x + y)
    +False
    +>>> x, y = Ints('x y')
    +>>> is_div(x / y)
    +False
    +>>> is_idiv(x / y)
    +True
    +
    +
    +
    + +
    +
    +cvc5.pythonic.is_idiv(a)
    +

    Return True if a is an expression of the form b div c.

    +
    >>> x, y = Ints('x y')
    +>>> is_idiv(x / y)
    +True
    +>>> is_idiv(x + y)
    +False
    +
    +
    +
    + +
    +
    +cvc5.pythonic.is_mod(a)
    +

    Return True if a is an expression of the form b % c.

    +
    >>> x, y = Ints('x y')
    +>>> is_mod(x % y)
    +True
    +>>> is_mod(x + y)
    +False
    +
    +
    +
    + +
    +
    +cvc5.pythonic.is_le(a)
    +

    Return True if a is an expression of the form b <= c.

    +
    >>> x, y = Ints('x y')
    +>>> is_le(x <= y)
    +True
    +>>> is_le(x < y)
    +False
    +
    +
    +
    + +
    +
    +cvc5.pythonic.is_lt(a)
    +

    Return True if a is an expression of the form b < c.

    +
    >>> x, y = Ints('x y')
    +>>> is_lt(x < y)
    +True
    +>>> is_lt(x == y)
    +False
    +
    +
    +
    + +
    +
    +cvc5.pythonic.is_ge(a)
    +

    Return True if a is an expression of the form b >= c.

    +
    >>> x, y = Ints('x y')
    +>>> is_ge(x >= y)
    +True
    +>>> is_ge(x == y)
    +False
    +
    +
    +
    + +
    +
    +cvc5.pythonic.is_gt(a)
    +

    Return True if a is an expression of the form b > c.

    +
    >>> x, y = Ints('x y')
    +>>> is_gt(x > y)
    +True
    +>>> is_gt(x == y)
    +False
    +
    +
    +
    + +
    +
    +cvc5.pythonic.is_is_int(a)
    +

    Return True if a is an expression of the form IsInt(b).

    +
    >>> x = Real('x')
    +>>> is_is_int(IsInt(x))
    +True
    +>>> is_is_int(x)
    +False
    +
    +
    +
    + +
    +
    +cvc5.pythonic.is_to_real(a)
    +

    Return True if a is an expression of the form ToReal(b).

    +
    >>> x = Int('x')
    +>>> n = ToReal(x)
    +>>> n
    +ToReal(x)
    +>>> is_to_real(n)
    +True
    +>>> is_to_real(x)
    +False
    +
    +
    +
    + +
    +
    +cvc5.pythonic.is_to_int(a)
    +

    Return True if a is an expression of the form ToInt(b).

    +
    >>> x = Real('x')
    +>>> n = ToInt(x)
    +>>> n
    +ToInt(x)
    +>>> is_to_int(n)
    +True
    +>>> is_to_int(x)
    +False
    +
    +
    +
    + +
    +
    +

    Classes (with overloads)

    +
    +
    +class cvc5.pythonic.ArithSortRef(ast, ctx=None)
    +

    Real and Integer sorts.

    +
    +
    +cast(val)
    +

    Try to cast val as an Integer or Real.

    +
    >>> IntSort().cast(10)
    +10
    +>>> is_int(IntSort().cast(10))
    +True
    +>>> is_int(10)
    +False
    +>>> RealSort().cast(10)
    +10
    +>>> is_real(RealSort().cast(10))
    +True
    +>>> IntSort().cast(Bool('x'))
    +If(x, 1, 0)
    +>>> RealSort().cast(Bool('x'))
    +ToReal(If(x, 1, 0))
    +>>> try:
    +...   IntSort().cast(RealVal("1.1"))
    +... except SMTException as ex:
    +...   print("failed")
    +failed
    +
    +
    +
    + +
    +
    +is_int()
    +

    Return True if self is of the sort Integer.

    +
    >>> x = Int('x')
    +>>> x.is_int()
    +True
    +>>> (x + 1).is_int()
    +True
    +>>> x = Real('x')
    +>>> x.is_int()
    +False
    +
    +
    +
    + +
    +
    +is_real()
    +

    Return True if self is of the sort Real.

    +
    >>> x = Real('x')
    +>>> x.is_real()
    +True
    +>>> (x + 1).is_real()
    +True
    +>>> x = Int('x')
    +>>> x.is_real()
    +False
    +
    +
    +
    + +
    +
    +subsort(other)
    +

    Return True if self is a subsort of other.

    +
    + +
    + +
    +
    +class cvc5.pythonic.ArithRef(ast, ctx=None, reverse_children=False)
    +

    Integer and Real expressions.

    +
    +
    +__add__(other)
    +

    Create the SMT expression self + other.

    +
    >>> x = Int('x')
    +>>> y = Int('y')
    +>>> x + y
    +x + y
    +>>> (x + y).sort()
    +Int
    +
    +
    +
    + +
    +
    +__div__(other)
    +

    Create the SMT expression other/self.

    +
    >>> x = Int('x')
    +>>> y = Int('y')
    +>>> x/y
    +x/y
    +>>> (x/y).sort()
    +Int
    +>>> (x/y).sexpr()
    +'(div x y)'
    +>>> x = Real('x')
    +>>> y = Real('y')
    +>>> x/y
    +x/y
    +>>> (x/y).sort()
    +Real
    +>>> (x/y).sexpr()
    +'(/ x y)'
    +
    +
    +
    + +
    +
    +__ge__(other)
    +

    Create the SMT expression other >= self.

    +
    >>> x, y = Ints('x y')
    +>>> x >= y
    +x >= y
    +>>> y = Real('y')
    +>>> x >= y
    +ToReal(x) >= y
    +
    +
    +
    + +
    +
    +__gt__(other)
    +

    Create the SMT expression other > self.

    +
    >>> x, y = Ints('x y')
    +>>> x > y
    +x > y
    +>>> y = Real('y')
    +>>> x > y
    +ToReal(x) > y
    +
    +
    +
    + +
    +
    +__le__(other)
    +

    Create the SMT expression other <= self.

    +
    >>> x, y = Ints('x y')
    +>>> x <= y
    +x <= y
    +>>> y = Real('y')
    +>>> x <= y
    +ToReal(x) <= y
    +
    +
    +
    + +
    +
    +__lt__(other)
    +

    Create the SMT expression other < self.

    +
    >>> x, y = Ints('x y')
    +>>> x < y
    +x < y
    +>>> y = Real('y')
    +>>> x < y
    +ToReal(x) < y
    +
    +
    +
    + +
    +
    +__mod__(other)
    +

    Create the SMT expression other%self.

    +
    >>> x = Int('x')
    +>>> y = Int('y')
    +>>> x % y
    +x%y
    +
    +
    +
    + +
    +
    +__mul__(other)
    +

    Create the SMT expression self * other.

    +
    >>> x = Real('x')
    +>>> y = Real('y')
    +>>> x * y
    +x*y
    +>>> (x * y).sort()
    +Real
    +>>> x * BoolVal(True)
    +If(True, x, 0)
    +
    +
    +
    + +
    +
    +__neg__()
    +

    Return an expression representing -self.

    +
    >>> x = Int('x')
    +>>> -x
    +-x
    +
    +
    +
    + +
    +
    +__pos__()
    +

    Return self.

    +
    >>> x = Int('x')
    +>>> +x
    +x
    +
    +
    +
    + +
    +
    +__pow__(other)
    +

    Create the SMT expression self**other (** is the power operator).

    +
    >>> x = Real('x')
    +>>> x**3
    +x**3
    +>>> (x**3).sort()
    +Real
    +>>> solve([x ** 2 == x, x > 0])
    +[x = 1]
    +
    +
    +
    + +
    +
    +__radd__(other)
    +

    Create the SMT expression other + self.

    +
    >>> x = Int('x')
    +>>> 10 + x
    +10 + x
    +
    +
    +
    + +
    +
    +__rdiv__(other)
    +

    Create the SMT expression other/self.

    +
    >>> x = Int('x')
    +>>> 10/x
    +10/x
    +>>> (10/x).sexpr()
    +'(div 10 x)'
    +>>> x = Real('x')
    +>>> 10/x
    +10/x
    +>>> (10/x).sexpr()
    +'(/ 10.0 x)'
    +
    +
    +
    + +
    +
    +__rmod__(other)
    +

    Create the SMT expression other%self.

    +
    >>> x = Int('x')
    +>>> 10 % x
    +10%x
    +
    +
    +
    + +
    +
    +__rmul__(other)
    +

    Create the SMT expression other * self.

    +
    >>> x = Real('x')
    +>>> 10 * x
    +10*x
    +
    +
    +
    + +
    +
    +__rpow__(other)
    +

    Create the SMT expression other**self (** is the power operator).

    +
    >>> x = Real('x')
    +>>> 2**x
    +2**x
    +>>> (2**x).sort()
    +Real
    +
    +
    +
    + +
    +
    +__rsub__(other)
    +

    Create the SMT expression other - self.

    +
    >>> x = Int('x')
    +>>> 10 - x
    +10 - x
    +
    +
    +
    + +
    +
    +__rtruediv__(other)
    +

    Create the SMT expression other/self.

    +
    + +
    +
    +__sub__(other)
    +

    Create the SMT expression self - other.

    +
    >>> x = Int('x')
    +>>> y = Int('y')
    +>>> x - y
    +x - y
    +>>> (x - y).sort()
    +Int
    +
    +
    +
    + +
    +
    +__truediv__(other)
    +

    Create the SMT expression other/self.

    +
    + +
    +
    +is_int()
    +

    Return True if self is an integer expression.

    +
    >>> x = Int('x')
    +>>> x.is_int()
    +True
    +>>> (x + 1).is_int()
    +True
    +>>> y = Real('y')
    +>>> (x + y).is_int()
    +False
    +
    +
    +
    + +
    +
    +is_real()
    +

    Return True if self is an real expression.

    +
    >>> x = Real('x')
    +>>> x.is_real()
    +True
    +>>> (x + 1).is_real()
    +True
    +
    +
    +
    + +
    +
    +sort()
    +

    Return the sort (type) of the arithmetical expression self.

    +
    >>> Int('x').sort()
    +Int
    +>>> (Real('x') + 1).sort()
    +Real
    +
    +
    +
    + +
    + +
    +
    +class cvc5.pythonic.IntNumRef(ast, ctx=None, reverse_children=False)
    +

    Integer values.

    +
    +
    +as_binary_string()
    +

    Return an SMT integer numeral as a Python binary string. +>>> v = IntVal(10) +>>> v.as_binary_string() +‘1010’

    +
    + +
    +
    +as_long()
    +

    Return an SMT integer numeral as a Python long (bignum) numeral.

    +
    >>> v = IntVal(1)
    +>>> v + 1
    +1 + 1
    +>>> v.as_long() + 1
    +2
    +
    +
    +
    + +
    +
    +as_string()
    +

    Return an SMT integer numeral as a Python string. +>>> v = IntVal(100) +>>> v.as_string() +‘100’

    +
    + +
    + +
    +
    +class cvc5.pythonic.RatNumRef(ast, ctx=None, reverse_children=False)
    +

    Rational values.

    +
    +
    +as_decimal(prec)
    +

    Return an SMT rational value as a string in decimal notation using at most prec decimal places.

    +
    >>> v = RealVal("1/5")
    +>>> v.as_decimal(3)
    +'0.2'
    +>>> v = RealVal("1/3")
    +>>> v.as_decimal(3)
    +'0.333'
    +
    +
    +
    + +
    +
    +as_fraction()
    +

    Return an SMT rational as a Python Fraction object.

    +
    >>> v = RealVal("1/5")
    +>>> v.as_fraction()
    +Fraction(1, 5)
    +
    +
    +
    + +
    +
    +as_long()
    +

    Is this arithmetic value an integer? +>>> RealVal(“2/1”).as_long() +2 +>>> try: +… RealVal(“2/3”).as_long() +… except SMTException as e: +… print(“failed: %s” % e) +failed: Expected integer fraction

    +
    + +
    +
    +as_string()
    +

    Return an SMT rational numeral as a Python string.

    +
    >>> v = Q(3,6)
    +>>> v.as_string()
    +'1/2'
    +
    +
    +
    + +
    +
    +denominator()
    +

    Return the denominator of an SMT rational numeral.

    +
    >>> is_rational_value(Q(3,5))
    +True
    +>>> n = Q(3,5)
    +>>> n.denominator()
    +5
    +
    +
    +
    + +
    +
    +denominator_as_long()
    +

    Return the denominator as a Python long.

    +
    >>> v = RealVal("1/3")
    +>>> v
    +1/3
    +>>> v.denominator_as_long()
    +3
    +
    +
    +
    + +
    +
    +is_int()
    +

    Return True if self is an integer expression.

    +
    >>> x = Int('x')
    +>>> x.is_int()
    +True
    +>>> (x + 1).is_int()
    +True
    +>>> y = Real('y')
    +>>> (x + y).is_int()
    +False
    +
    +
    +
    + +
    +
    +is_int_value()
    +

    Is this arithmetic value an integer? +>>> RealVal(“2/1”).is_int_value() +True +>>> RealVal(“2/3”).is_int_value() +False

    +
    + +
    +
    +is_real()
    +

    Return True if self is an real expression.

    +
    >>> x = Real('x')
    +>>> x.is_real()
    +True
    +>>> (x + 1).is_real()
    +True
    +
    +
    +
    + +
    +
    +numerator()
    +

    Return the numerator of an SMT rational numeral.

    +
    >>> is_rational_value(RealVal("3/5"))
    +True
    +>>> n = RealVal("3/5")
    +>>> n.numerator()
    +3
    +>>> is_rational_value(Q(3,5))
    +True
    +>>> Q(3,5).numerator()
    +3
    +
    +
    +
    + +
    +
    +numerator_as_long()
    +

    Return the numerator as a Python long.

    +
    >>> v = RealVal(10000000000)
    +>>> v
    +10000000000
    +>>> v + 1
    +10000000000 + 1
    +>>> v.numerator_as_long() + 1 == 10000000001
    +True
    +
    +
    +
    + +
    + +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/pythonic/array.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/pythonic/array.html new file mode 100644 index 0000000000..b0ece58b0b --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/pythonic/array.html @@ -0,0 +1,504 @@ + + + + + + + + + + + + + Arrays — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Arrays

    +
    +

    Basic Array Term Builders

    +
    +
    +cvc5.pythonic.Array(name, dom, rng)
    +

    Return an array constant named name with the given domain and range sorts.

    +
    >>> a = Array('a', IntSort(), IntSort())
    +>>> a.sort()
    +Array(Int, Int)
    +>>> a[0]
    +a[0]
    +
    +
    +
    + +
    +
    +cvc5.pythonic.ConstArray(dom, v)
    +

    Return an SMT constant array expression.

    +
    >>> a = ConstArray(IntSort(), 10)
    +>>> a
    +ConstArray(Int, 10)
    +>>> a.sort()
    +Array(Int, Int)
    +>>> i = Int('i')
    +>>> a[i]
    +ConstArray(Int, 10)[i]
    +>>> simplify(a[i])
    +10
    +
    +
    +
    + +
    +
    +cvc5.pythonic.K(dom, v)
    +

    Return an SMT constant array expression. An alias for ConstArray.

    +
    >>> a = K(IntSort(), 10)
    +>>> a
    +ConstArray(Int, 10)
    +>>> a.sort()
    +Array(Int, Int)
    +>>> i = Int('i')
    +>>> a[i]
    +ConstArray(Int, 10)[i]
    +>>> simplify(a[i])
    +10
    +
    +
    +
    + +
    +
    +cvc5.pythonic.ArraySort(*sig)
    +

    Return the SMT array sort with the given domain and range sorts.

    +
    >>> A = ArraySort(IntSort(), BoolSort())
    +>>> A
    +Array(Int, Bool)
    +>>> A.domain()
    +Int
    +>>> A.range()
    +Bool
    +>>> AA = ArraySort(IntSort(), A)
    +>>> AA
    +Array(Int, Array(Int, Bool))
    +>>> try:
    +...  ArraySort(IntSort(), IntSort(), BoolSort())
    +... except SMTException as e:
    +...  print("failed: %s" % e)
    +failed: Unimplemented: multi-domain array
    +
    +
    +
    + +
    +
    +

    Array Operators

    +
    +
    +cvc5.pythonic.Select(a, i)
    +

    Return an SMT select array expression.

    +
    >>> a = Array('a', IntSort(), IntSort())
    +>>> i = Int('i')
    +>>> Select(a, i)
    +a[i]
    +>>> eq(Select(a, i), a[i])
    +True
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Store(a, i, v)
    +

    Return an SMT store array expression.

    +
    >>> a    = Array('a', IntSort(), IntSort())
    +>>> i, v = Ints('i v')
    +>>> s    = Store(a, i, v)
    +>>> s.sort()
    +Array(Int, Int)
    +>>> prove(s[i] == v)
    +proved
    +>>> j    = Int('j')
    +>>> prove(Implies(i != j, s[j] == a[j]))
    +proved
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Update(a, i, v)
    +

    Return an SMT store array expression. An alias for Store.

    +
    >>> a    = Array('a', IntSort(), IntSort())
    +>>> i, v = Ints('i v')
    +>>> s    = Update(a, i, v)
    +>>> s.sort()
    +Array(Int, Int)
    +>>> prove(s[i] == v)
    +proved
    +>>> j    = Int('j')
    +>>> prove(Implies(i != j, s[j] == a[j]))
    +proved
    +
    +
    +
    + +

    See the following operator overloads for building other kinds of array +terms:

    + +
    +
    +

    Testers

    +
    +
    +cvc5.pythonic.is_array_sort(a)
    +

    Is this an array sort?

    +
    >>> is_array_sort(ArraySort(BoolSort(), BoolSort()))
    +True
    +>>> is_array_sort(BoolSort())
    +False
    +
    +
    +
    + +
    +
    +cvc5.pythonic.is_array(a)
    +

    Return True if a is an SMT array expression.

    +
    >>> a = Array('a', IntSort(), IntSort())
    +>>> is_array(a)
    +True
    +>>> is_array(Store(a, 0, 1))
    +True
    +>>> is_array(a[0])
    +False
    +
    +
    +
    + +
    +
    +cvc5.pythonic.is_const_array(a)
    +

    Return True if a is an SMT constant array.

    +
    >>> a = ConstArray(IntSort(), 10)
    +>>> is_const_array(a)
    +True
    +>>> a = Array('a', IntSort(), IntSort())
    +>>> is_const_array(a)
    +False
    +
    +
    +
    + +
    +
    +cvc5.pythonic.is_K(a)
    +

    Return True if a is an SMT constant array. +An alias for is_const_array.

    +
    >>> a = ConstArray(IntSort(), 10)
    +>>> is_K(a)
    +True
    +>>> a = Array('a', IntSort(), IntSort())
    +>>> is_K(a)
    +False
    +
    +
    +
    + +
    +
    +cvc5.pythonic.is_select(a)
    +

    Return True if a is an SMT array select application.

    +
    >>> a = Array('a', IntSort(), IntSort())
    +>>> is_select(a)
    +False
    +>>> i = Int('i')
    +>>> is_select(a[i])
    +True
    +
    +
    +
    + +
    +
    +cvc5.pythonic.is_store(a)
    +

    Return True if a is an SMT array store application.

    +
    >>> a = Array('a', IntSort(), IntSort())
    +>>> is_store(a)
    +False
    +>>> is_store(Store(a, 0, 1))
    +True
    +
    +
    +
    + +
    +
    +cvc5.pythonic.is_update(a)
    +

    Return True if a is an SMT array store application. +An alias for is_store.

    +
    >>> a = Array('a', IntSort(), IntSort())
    +>>> is_update(a)
    +False
    +>>> is_update(Update(a, 0, 1))
    +True
    +
    +
    +
    + +
    +
    +

    Classes (with overloads)

    +
    +
    +class cvc5.pythonic.ArraySortRef(ast, ctx=None)
    +

    Array sorts.

    +
    +
    +domain()
    +

    Return the domain of the array sort self.

    +
    >>> A = ArraySort(IntSort(), BoolSort())
    +>>> A.domain()
    +Int
    +
    +
    +
    + +
    +
    +range()
    +

    Return the range of the array sort self.

    +
    >>> A = ArraySort(IntSort(), BoolSort())
    +>>> A.range()
    +Bool
    +
    +
    +
    + +
    + +
    +
    +class cvc5.pythonic.ArrayRef(ast, ctx=None, reverse_children=False)
    +

    Array expressions.

    +
    +
    +__getitem__(arg)
    +

    Return the SMT expression self[arg].

    +
    >>> a = Array('a', IntSort(), BoolSort())
    +>>> i = Int('i')
    +>>> a[i]
    +a[i]
    +>>> a[i].sexpr()
    +'(select a i)'
    +
    +
    +
    + +
    +
    +arg(idx)
    +

    Get the “argument” (base element) of this constant array.

    +
    >>> b = ConstArray(IntSort(), 1)
    +>>> b.arg(0)
    +1
    +
    +
    +
    + +
    +
    +default()
    +

    Get the constant element of this (constant) array +>>> b = ConstArray(IntSort(), 1) +>>> b.default() +1

    +
    + +
    +
    +domain()
    +

    Shorthand for self.sort().domain().

    +
    >>> a = Array('a', IntSort(), BoolSort())
    +>>> a.domain()
    +Int
    +
    +
    +
    + +
    +
    +range()
    +

    Shorthand for self.sort().range().

    +
    >>> a = Array('a', IntSort(), BoolSort())
    +>>> a.range()
    +Bool
    +
    +
    +
    + +
    +
    +sort()
    +

    Return the array sort of the array expression self.

    +
    >>> a = Array('a', IntSort(), BoolSort())
    +>>> a.sort()
    +Array(Int, Bool)
    +
    +
    +
    + +
    + +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/pythonic/bitvec.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/pythonic/bitvec.html new file mode 100644 index 0000000000..d3b4fc954f --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/pythonic/bitvec.html @@ -0,0 +1,1382 @@ + + + + + + + + + + + + + Bit-Vectors — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Bit-Vectors

    +
    +

    Basic Bit-Vector Term Builders

    +
    +
    +cvc5.pythonic.BitVec(name, bv, ctx=None)
    +

    Return a bit-vector constant named name. bv may be the number of bits of a bit-vector sort. +If ctx=None, then the global context is used.

    +
    >>> x  = BitVec('x', 16)
    +>>> is_bv(x)
    +True
    +>>> x.size()
    +16
    +>>> x.sort()
    +BitVec(16)
    +>>> word = BitVecSort(16)
    +>>> x2 = BitVec('x', word)
    +>>> eq(x, x2)
    +True
    +
    +
    +
    + +
    +
    +cvc5.pythonic.BitVecVal(val, bv, ctx=None)
    +

    Return a bit-vector value with the given number of bits. If ctx=None, then the global context is used. +The second argument can be a number of bits (integer) or a bit-vector sort.

    +
    >>> v = BitVecVal(10, 32)
    +>>> v
    +10
    +>>> print("0x%.8x" % v.as_long())
    +0x0000000a
    +>>> s = BitVecSort(3)
    +>>> u = BitVecVal(10, s)
    +>>> u
    +2
    +
    +
    +
    + +
    +
    +cvc5.pythonic.BitVecSort(sz, ctx=None)
    +

    Return an SMT bit-vector sort of the given size. If ctx=None, then the global context is used.

    +
    >>> Byte = BitVecSort(8)
    +>>> Word = BitVecSort(16)
    +>>> Byte
    +BitVec(8)
    +>>> x = Const('x', Byte)
    +>>> eq(x, BitVec('x', 8))
    +True
    +
    +
    +
    + +
    +
    +cvc5.pythonic.BitVecs(names, bv, ctx=None)
    +

    Return a tuple of bit-vector constants of size bv.

    +
    >>> x, y, z = BitVecs('x y z', 16)
    +>>> x.size()
    +16
    +>>> x.sort()
    +BitVec(16)
    +>>> Sum(x, y, z)
    +x + y + z
    +>>> Product(x, y, z)
    +x*y*z
    +
    +
    +
    + +
    +
    +

    Bit-Vector Overloads

    +

    See the following operator overloads for building bit-vector terms. +Each kind of term can also be built with a builder function below.

    + +
    +
    +

    Bit-Vector Term Builders

    +
    +
    +cvc5.pythonic.BV2Int(a, is_signed=False)
    +

    Return the SMT expression BV2Int(a).

    +
    >>> b = BitVec('b', 3)
    +>>> BV2Int(b).sort()
    +Int
    +>>> x = Int('x')
    +>>> x > BV2Int(b)
    +x > BV2Int(b)
    +>>> x > BV2Int(b, is_signed=False)
    +x > BV2Int(b)
    +>>> x > BV2Int(b, is_signed=True)
    +x > If(b < 0, BV2Int(b) - 8, BV2Int(b))
    +>>> solve(x > BV2Int(b), b == 1, x < 3)
    +[b = 1, x = 2]
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Int2BV(a, num_bits)
    +

    Return the SMT expression Int2BV(a, num_bits). +It is a bit-vector of width num_bits and represents the +modulo of a by 2^num_bits

    +
    >>> x = Int('x')
    +>>> bv_x = Int2BV(x, 2)
    +>>> bv_x_plus_4 = Int2BV(x + 4, 2)
    +>>> solve([bv_x != bv_x_plus_4])
    +no solution
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Concat(*args)
    +

    Create an SMT bit-vector, string, sequence or regular expression concatenation expression.

    +
    >>> v = BitVecVal(1, 4)
    +>>> Concat(v, v+1, v)
    +Concat(1, 1 + 1, 1)
    +>>> evaluate(Concat(v, v+1, v))
    +289
    +>>> print("%.3x" % simplify(Concat(v, v+1, v)).as_long())
    +121
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Extract(high, low, a)
    +

    Create an SMT bit-vector extraction expression, or create a string extraction expression.

    +
    >>> x = BitVec('x', 8)
    +>>> Extract(6, 2, x)
    +Extract(6, 2, x)
    +>>> Extract(6, 2, x).sort()
    +BitVec(5)
    +
    +
    +
    + +
    +
    +cvc5.pythonic.ULE(a, b)
    +

    Create the SMT expression (unsigned) other <= self.

    +

    Use the operator <= for signed less than or equal to.

    +
    >>> x, y = BitVecs('x y', 32)
    +>>> ULE(x, y)
    +ULE(x, y)
    +>>> (x <= y).sexpr()
    +'(bvsle x y)'
    +>>> ULE(x, y).sexpr()
    +'(bvule x y)'
    +
    +
    +
    + +
    +
    +cvc5.pythonic.ULT(a, b)
    +

    Create the SMT expression (unsigned) other < self.

    +

    Use the operator < for signed less than.

    +
    >>> x, y = BitVecs('x y', 32)
    +>>> ULT(x, y)
    +ULT(x, y)
    +>>> (x < y).sexpr()
    +'(bvslt x y)'
    +>>> ULT(x, y).sexpr()
    +'(bvult x y)'
    +
    +
    +
    + +
    +
    +cvc5.pythonic.UGE(a, b)
    +

    Create the SMT expression (unsigned) other >= self.

    +

    Use the operator >= for signed greater than or equal to.

    +
    >>> x, y = BitVecs('x y', 32)
    +>>> UGE(x, y)
    +UGE(x, y)
    +>>> (x >= y).sexpr()
    +'(bvsge x y)'
    +>>> UGE(x, y).sexpr()
    +'(bvuge x y)'
    +
    +
    +
    + +
    +
    +cvc5.pythonic.UGT(a, b)
    +

    Create the SMT expression (unsigned) other > self.

    +

    Use the operator > for signed greater than.

    +
    >>> x, y = BitVecs('x y', 32)
    +>>> UGT(x, y)
    +UGT(x, y)
    +>>> (x > y).sexpr()
    +'(bvsgt x y)'
    +>>> UGT(x, y).sexpr()
    +'(bvugt x y)'
    +
    +
    +
    + +
    +
    +cvc5.pythonic.SLE(a, b)
    +

    Create the SMT expression (signed) other <= self.

    +

    See also the __le__ overload (<= operator) for BitVecRef

    +
    >>> x, y = BitVecs('x y', 32)
    +>>> SLE(x, y).sexpr()
    +'(bvsle x y)'
    +
    +
    +
    + +
    +
    +cvc5.pythonic.SLT(a, b)
    +

    Create the SMT expression (signed) other < self.

    +

    See also the __lt__ overload (< operator) for BitVecRef

    +
    >>> x, y = BitVecs('x y', 32)
    +>>> SLT(x, y).sexpr()
    +'(bvslt x y)'
    +
    +
    +
    + +
    +
    +cvc5.pythonic.SGE(a, b)
    +

    Create the SMT expression (signed) other >= self.

    +

    See also the __ge__ overload (>= operator) for BitVecRef

    +
    >>> x, y = BitVecs('x y', 32)
    +>>> SGE(x, y).sexpr()
    +'(bvsge x y)'
    +
    +
    +
    + +
    +
    +cvc5.pythonic.SGT(a, b)
    +

    Create the SMT expression (signed) other > self.

    +

    See also the __gt__ overload (> operator) for BitVecRef

    +
    >>> x, y = BitVecs('x y', 32)
    +>>> SGT(x, y).sexpr()
    +'(bvsgt x y)'
    +
    +
    +
    + +
    +
    +cvc5.pythonic.UDiv(a, b)
    +

    Create the SMT expression (unsigned) division self / other.

    +

    Use the operator / for signed division.

    +
    >>> x = BitVec('x', 32)
    +>>> y = BitVec('y', 32)
    +>>> UDiv(x, y)
    +UDiv(x, y)
    +>>> UDiv(x, y).sort()
    +BitVec(32)
    +>>> (x / y).sexpr()
    +'(bvsdiv x y)'
    +>>> UDiv(x, y).sexpr()
    +'(bvudiv x y)'
    +
    +
    +
    + +
    +
    +cvc5.pythonic.URem(a, b)
    +

    Create the SMT expression (unsigned) remainder self % other.

    +

    Use the operator % for signed modulus, and SRem() for signed remainder.

    +
    >>> x = BitVec('x', 32)
    +>>> y = BitVec('y', 32)
    +>>> URem(x, y)
    +URem(x, y)
    +>>> URem(x, y).sort()
    +BitVec(32)
    +>>> (x % y).sexpr()
    +'(bvsmod x y)'
    +>>> URem(x, y).sexpr()
    +'(bvurem x y)'
    +
    +
    +
    + +
    +
    +cvc5.pythonic.SDiv(a, b)
    +

    Create an SMT signed division expression.

    +

    See also the __div__ overload (/ operator) for BitVecRef.

    +
    >>> x = BitVec('x', 32)
    +>>> y = BitVec('y', 32)
    +>>> SDiv(x, y)
    +x/y
    +
    +
    +
    + +
    +
    +cvc5.pythonic.SMod(a, b)
    +

    Create an SMT expression for the signed modulus self % other.

    +

    See also the __mod__ overload (% operator) for BitVecRef.

    +
    >>> x = BitVec('x', 32)
    +>>> y = BitVec('y', 32)
    +>>> SMod(x, y)
    +x%y
    +
    +
    +
    + +
    +
    +cvc5.pythonic.SRem(a, b)
    +

    Create the SMT expression signed remainder.

    +

    Use the operator % for signed modulus, and URem() for unsigned remainder.

    +
    >>> x = BitVec('x', 32)
    +>>> y = BitVec('y', 32)
    +>>> SRem(x, y)
    +SRem(x, y)
    +>>> SRem(x, y).sort()
    +BitVec(32)
    +>>> (x % y).sexpr()
    +'(bvsmod x y)'
    +>>> SRem(x, y).sexpr()
    +'(bvsrem x y)'
    +
    +
    +
    + +
    +
    +cvc5.pythonic.LShR(a, b)
    +

    Create the SMT expression logical right shift.

    +

    Use the operator >> for the arithmetical right shift.

    +
    >>> x, y = BitVecs('x y', 32)
    +>>> LShR(x, y)
    +LShR(x, y)
    +>>> (x >> y).sexpr()
    +'(bvashr x y)'
    +>>> LShR(x, y).sexpr()
    +'(bvlshr x y)'
    +>>> BitVecVal(4, 3)
    +4
    +>>> BitVecVal(4, 3).as_signed_long()
    +-4
    +>>> simplify(BitVecVal(4, 3) >> 1).as_signed_long()
    +-2
    +>>> simplify(BitVecVal(4, 3) >> 1)
    +6
    +>>> simplify(LShR(BitVecVal(4, 3), 1))
    +2
    +>>> simplify(BitVecVal(2, 3) >> 1)
    +1
    +>>> simplify(LShR(BitVecVal(2, 3), 1))
    +1
    +
    +
    +
    + +
    +
    +cvc5.pythonic.RotateLeft(a, b)
    +

    Return an expression representing a rotated to the left b times.

    +
    >>> a, b = BitVecs('a b', 16)
    +>>> RotateLeft(a, 10)
    +RotateLeft(a, 10)
    +>>> simplify(RotateLeft(a, 0))
    +a
    +>>> simplify(RotateLeft(a, 16))
    +a
    +
    +
    +
    + +
    +
    +cvc5.pythonic.RotateRight(a, b)
    +

    Return an expression representing a rotated to the right b times.

    +
    >>> a, b = BitVecs('a b', 16)
    +>>> RotateRight(a, 10)
    +RotateRight(a, 10)
    +>>> simplify(RotateRight(a, 0))
    +a
    +>>> simplify(RotateRight(a, 16))
    +a
    +
    +
    +
    + +
    +
    +cvc5.pythonic.SignExt(n, a)
    +

    Return a bit-vector expression with n extra sign-bits.

    +
    >>> x = BitVec('x', 16)
    +>>> n = SignExt(8, x)
    +>>> n.size()
    +24
    +>>> n
    +SignExt(8, x)
    +>>> n.sort()
    +BitVec(24)
    +>>> v0 = BitVecVal(2, 2)
    +>>> v0
    +2
    +>>> v0.size()
    +2
    +>>> v  = simplify(SignExt(6, v0))
    +>>> v
    +254
    +>>> v.size()
    +8
    +>>> print("%.x" % v.as_long())
    +fe
    +
    +
    +
    + +
    +
    +cvc5.pythonic.ZeroExt(n, a)
    +

    Return a bit-vector expression with n extra zero-bits.

    +
    >>> x = BitVec('x', 16)
    +>>> n = ZeroExt(8, x)
    +>>> n.size()
    +24
    +>>> n
    +ZeroExt(8, x)
    +>>> n.sort()
    +BitVec(24)
    +>>> v0 = BitVecVal(2, 2)
    +>>> v0
    +2
    +>>> v0.size()
    +2
    +>>> v  = simplify(ZeroExt(6, v0))
    +>>> v
    +2
    +>>> v.size()
    +8
    +
    +
    +
    + +
    +
    +cvc5.pythonic.RepeatBitVec(n, a)
    +

    Return an expression representing n copies of a.

    +
    >>> x = BitVec('x', 8)
    +>>> n = RepeatBitVec(4, x)
    +>>> n
    +RepeatBitVec(4, x)
    +>>> n.size()
    +32
    +>>> v0 = BitVecVal(10, 4)
    +>>> print("%.x" % v0.as_long())
    +a
    +>>> v = simplify(RepeatBitVec(4, v0))
    +>>> v.size()
    +16
    +>>> print("%.x" % v.as_long())
    +aaaa
    +
    +
    +
    + +
    +
    +cvc5.pythonic.BVRedAnd(a)
    +

    Return the reduction-and expression of a.

    +
    >>> x = BitVec('x', 4)
    +>>> solve([BVRedAnd(x), BVRedOr(~x)])
    +no solution
    +
    +
    +
    + +
    +
    +cvc5.pythonic.BVRedOr(a)
    +

    Return the reduction-or expression of a.

    +
    >>> x = BitVec('x', 4)
    +>>> solve([BVRedAnd(x), BVRedOr(~x)])
    +no solution
    +
    +
    +
    + +
    +
    +cvc5.pythonic.BVAdd(*args)
    +

    Create a sum of bit-vectors.

    +

    See also the __add__ overload (+ operator) for BitVecRef.

    +
    >>> x, y, z = BitVecs('x y z', 32)
    +>>> BVAdd(x, y, z)
    +x + y + z
    +
    +
    +
    + +
    +
    +cvc5.pythonic.BVMult(*args)
    +

    Create a product of bit-vectors.

    +

    See also the __mul__ overload (* operator) for BitVecRef.

    +
    >>> x, y, z = BitVecs('x y z', 32)
    +>>> BVMult(x, y, z)
    +x*y*z
    +
    +
    +
    + +
    +
    +cvc5.pythonic.BVSub(a, b)
    +

    Create a difference of bit-vectors.

    +

    See also the __sub__ overload (- operator) for BitVecRef.

    +
    >>> x, y = BitVecs('x y', 32)
    +>>> BVSub(x, y)
    +x - y
    +
    +
    +
    + +
    +
    +cvc5.pythonic.BVOr(*args)
    +

    Create a bit-wise disjunction of bit-vectors.

    +

    See also the __or__ overload (| operator) for BitVecRef.

    +
    >>> x, y, z = BitVecs('x y z', 32)
    +>>> BVOr(x, y, z)
    +x | y | z
    +
    +
    +
    + +
    +
    +cvc5.pythonic.BVAnd(*args)
    +

    Create a bit-wise conjunction of bit-vectors.

    +

    See also the __and__ overload (& operator) for BitVecRef.

    +
    >>> x, y, z = BitVecs('x y z', 32)
    +>>> BVAnd(x, y, z)
    +x & y & z
    +
    +
    +
    + +
    +
    +cvc5.pythonic.BVXor(*args)
    +

    Create a bit-wise exclusive disjunction of bit-vectors.

    +

    See also the __xor__ overload (^ operator) for BitVecRef.

    +
    >>> x, y, z = BitVecs('x y z', 32)
    +>>> BVXor(x, y, z)
    +x ^ y ^ z
    +
    +
    +
    + +
    +
    +cvc5.pythonic.BVNeg(a)
    +

    Create a negation (two’s complement) of a bit-vector

    +

    See also the __neg__ overload (unary - operator) for BitVecRef.

    +
    >>> x = BitVec('x', 32)
    +>>> BVNeg(x)
    +-x
    +
    +
    +
    + +
    +
    +cvc5.pythonic.BVNot(a)
    +

    Create a bitwise not of a bit-vector

    +

    See also the __invert__ overload (unary ~ operator) for BitVecRef.

    +
    >>> x = BitVec('x', 32)
    +>>> BVNot(x)
    +~x
    +
    +
    +
    + +
    +
    +

    Testers

    +
    +
    +cvc5.pythonic.is_bv_sort(s)
    +

    Return True if s is an SMT bit-vector sort.

    +
    >>> is_bv_sort(BitVecSort(32))
    +True
    +>>> is_bv_sort(IntSort())
    +False
    +
    +
    +
    + +
    +
    +cvc5.pythonic.is_bv(a)
    +

    Return True if a is an SMT bit-vector expression.

    +
    >>> b = BitVec('b', 32)
    +>>> is_bv(b)
    +True
    +>>> is_bv(b + 10)
    +True
    +>>> is_bv(Int('x'))
    +False
    +
    +
    +
    + +
    +
    +cvc5.pythonic.is_bv_value(a)
    +

    Return True if a is an SMT bit-vector numeral value.

    +
    >>> b = BitVec('b', 32)
    +>>> is_bv_value(b)
    +False
    +>>> b = BitVecVal(10, 32)
    +>>> b
    +10
    +>>> is_bv_value(b)
    +True
    +
    +
    +
    + +
    +
    +

    Classes (with overloads)

    +
    +
    +class cvc5.pythonic.BitVecSortRef(ast, ctx=None)
    +

    Bit-vector sort.

    +
    +
    +cast(val)
    +

    Try to cast val as a Bit-Vector.

    +
    >>> b = BitVecSort(32)
    +>>> b.cast(10)
    +10
    +>>> b.cast(10).sexpr()
    +'#b00000000000000000000000000001010'
    +
    +
    +
    + +
    +
    +size()
    +

    Return the size (number of bits) of the bit-vector sort self.

    +
    >>> b = BitVecSort(32)
    +>>> b.size()
    +32
    +
    +
    +
    + +
    +
    +subsort(other)
    +

    Return True if self is a subsort of other.

    +
    >>> IntSort().subsort(RealSort())
    +True
    +>>> BoolSort().subsort(RealSort())
    +True
    +>>> SetSort(BitVecSort(2)).subsort(SetSort(IntSort()))
    +False
    +
    +
    +
    + +
    + +
    +
    +class cvc5.pythonic.BitVecRef(ast, ctx=None, reverse_children=False)
    +

    Bit-vector expressions.

    +
    +
    +__add__(other)
    +

    Create the SMT expression self + other.

    +
    >>> x = BitVec('x', 32)
    +>>> y = BitVec('y', 32)
    +>>> x + y
    +x + y
    +>>> (x + y).sort()
    +BitVec(32)
    +
    +
    +
    + +
    +
    +__and__(other)
    +

    Create the SMT expression bitwise-and self & other.

    +
    >>> x = BitVec('x', 32)
    +>>> y = BitVec('y', 32)
    +>>> x & y
    +x & y
    +>>> (x & y).sort()
    +BitVec(32)
    +
    +
    +
    + +
    +
    +__div__(other)
    +

    Create the SMT expression (signed) division self / other.

    +

    Use the function UDiv() for unsigned division.

    +
    >>> x = BitVec('x', 32)
    +>>> y = BitVec('y', 32)
    +>>> x / y
    +x/y
    +>>> (x / y).sort()
    +BitVec(32)
    +>>> (x / y).sexpr()
    +'(bvsdiv x y)'
    +>>> UDiv(x, y).sexpr()
    +'(bvudiv x y)'
    +
    +
    +
    + +
    +
    +__ge__(other)
    +

    Create the SMT expression (signed) other >= self.

    +

    Use the function UGE() for unsigned greater than or equal to.

    +
    >>> x, y = BitVecs('x y', 32)
    +>>> x >= y
    +x >= y
    +>>> (x >= y).sexpr()
    +'(bvsge x y)'
    +>>> UGE(x, y).sexpr()
    +'(bvuge x y)'
    +
    +
    +
    + +
    +
    +__gt__(other)
    +

    Create the SMT expression (signed) other > self.

    +

    Use the function UGT() for unsigned greater than.

    +
    >>> x, y = BitVecs('x y', 32)
    +>>> x > y
    +x > y
    +>>> (x > y).sexpr()
    +'(bvsgt x y)'
    +>>> UGT(x, y).sexpr()
    +'(bvugt x y)'
    +
    +
    +
    + +
    +
    +__invert__()
    +

    Create the SMT expression bitwise-not ~self.

    +
    >>> x = BitVec('x', 32)
    +>>> ~x
    +~x
    +>>> solve([~(~x) != x])
    +no solution
    +
    +
    +
    + +
    +
    +__le__(other)
    +

    Create the SMT expression (signed) other <= self.

    +

    Use the function ULE() for unsigned less than or equal to.

    +
    >>> x, y = BitVecs('x y', 32)
    +>>> x <= y
    +x <= y
    +>>> (x <= y).sexpr()
    +'(bvsle x y)'
    +>>> ULE(x, y).sexpr()
    +'(bvule x y)'
    +
    +
    +
    + +
    +
    +__lshift__(other)
    +

    Create the SMT expression left shift self << other

    +
    >>> x, y = BitVecs('x y', 32)
    +>>> x << y
    +x << y
    +>>> (x << y).sexpr()
    +'(bvshl x y)'
    +>>> evaluate(BitVecVal(2, 3) << 1)
    +4
    +
    +
    +
    + +
    +
    +__lt__(other)
    +

    Create the SMT expression (signed) other < self.

    +

    Use the function ULT() for unsigned less than.

    +
    >>> x, y = BitVecs('x y', 32)
    +>>> x < y
    +x < y
    +>>> (x < y).sexpr()
    +'(bvslt x y)'
    +>>> ULT(x, y).sexpr()
    +'(bvult x y)'
    +
    +
    +
    + +
    +
    +__mod__(other)
    +

    Create the SMT expression (signed) mod self % other.

    +

    Use the function URem() for unsigned remainder, and SRem() for signed remainder.

    +
    >>> x = BitVec('x', 32)
    +>>> y = BitVec('y', 32)
    +>>> x % y
    +x%y
    +>>> (x % y).sort()
    +BitVec(32)
    +>>> (x % y).sexpr()
    +'(bvsmod x y)'
    +>>> URem(x, y).sexpr()
    +'(bvurem x y)'
    +>>> SRem(x, y).sexpr()
    +'(bvsrem x y)'
    +
    +
    +
    + +
    +
    +__mul__(other)
    +

    Create the SMT expression self * other.

    +
    >>> x = BitVec('x', 32)
    +>>> y = BitVec('y', 32)
    +>>> x * y
    +x*y
    +>>> (x * y).sort()
    +BitVec(32)
    +
    +
    +
    + +
    +
    +__neg__()
    +

    Return an expression representing -self.

    +
    >>> x = BitVec('x', 32)
    +>>> -x
    +-x
    +>>> solve([-(-x) != x])
    +no solution
    +
    +
    +
    + +
    +
    +__or__(other)
    +

    Create the SMT expression bitwise-or self | other.

    +
    >>> x = BitVec('x', 32)
    +>>> y = BitVec('y', 32)
    +>>> x | y
    +x | y
    +>>> (x | y).sort()
    +BitVec(32)
    +
    +
    +
    + +
    +
    +__pos__()
    +

    Return self.

    +
    >>> x = BitVec('x', 32)
    +>>> +x
    +x
    +
    +
    +
    + +
    +
    +__radd__(other)
    +

    Create the SMT expression other + self.

    +
    >>> x = BitVec('x', 32)
    +>>> 10 + x
    +10 + x
    +
    +
    +
    + +
    +
    +__rand__(other)
    +

    Create the SMT expression bitwise-or other & self.

    +
    >>> x = BitVec('x', 32)
    +>>> 10 & x
    +10 & x
    +
    +
    +
    + +
    +
    +__rdiv__(other)
    +

    Create the SMT expression (signed) division other / self.

    +

    Use the function UDiv() for unsigned division.

    +
    >>> x = BitVec('x', 32)
    +>>> 10 / x
    +10/x
    +>>> (10 / x).sexpr()
    +'(bvsdiv #b00000000000000000000000000001010 x)'
    +>>> UDiv(10, x).sexpr()
    +'(bvudiv #b00000000000000000000000000001010 x)'
    +
    +
    +
    + +
    +
    +__rlshift__(other)
    +

    Create the SMT expression left shift other << self.

    +

    Use the function LShR() for the right logical shift

    +
    >>> x = BitVec('x', 32)
    +>>> 10 << x
    +10 << x
    +>>> (10 << x).sexpr()
    +'(bvshl #b00000000000000000000000000001010 x)'
    +
    +
    +
    + +
    +
    +__rmod__(other)
    +

    Create the SMT expression (signed) mod other % self.

    +

    Use the function URem() for unsigned remainder, and SRem() for signed remainder.

    +
    >>> x = BitVec('x', 32)
    +>>> 10 % x
    +10%x
    +>>> (10 % x).sexpr()
    +'(bvsmod #b00000000000000000000000000001010 x)'
    +>>> URem(10, x).sexpr()
    +'(bvurem #b00000000000000000000000000001010 x)'
    +>>> SRem(10, x).sexpr()
    +'(bvsrem #b00000000000000000000000000001010 x)'
    +
    +
    +
    + +
    +
    +__rmul__(other)
    +

    Create the SMT expression other * self.

    +
    >>> x = BitVec('x', 32)
    +>>> 10 * x
    +10*x
    +
    +
    +
    + +
    +
    +__ror__(other)
    +

    Create the SMT expression bitwise-or other | self.

    +
    >>> x = BitVec('x', 32)
    +>>> 10 | x
    +10 | x
    +
    +
    +
    + +
    +
    +__rrshift__(other)
    +

    Create the SMT expression (arithmetical) right shift other >> self.

    +

    Use the function LShR() for the right logical shift

    +
    >>> x = BitVec('x', 32)
    +>>> 10 >> x
    +10 >> x
    +>>> (10 >> x).sexpr()
    +'(bvashr #b00000000000000000000000000001010 x)'
    +
    +
    +
    + +
    +
    +__rshift__(other)
    +

    Create the SMT expression (arithmetical) right shift self >> other

    +

    Use the function LShR() for the right logical shift

    +
    >>> x, y = BitVecs('x y', 32)
    +>>> x >> y
    +x >> y
    +>>> (x >> y).sexpr()
    +'(bvashr x y)'
    +>>> LShR(x, y).sexpr()
    +'(bvlshr x y)'
    +>>> BitVecVal(4, 3)
    +4
    +>>> BitVecVal(4, 3).as_signed_long()
    +-4
    +>>> evaluate(BitVecVal(4, 3) >> 1).as_signed_long()
    +-2
    +>>> evaluate(BitVecVal(4, 3) >> 1)
    +6
    +>>> evaluate(LShR(BitVecVal(4, 3), 1))
    +2
    +>>> evaluate(BitVecVal(2, 3) >> 1)
    +1
    +>>> evaluate(LShR(BitVecVal(2, 3), 1))
    +1
    +
    +
    +
    + +
    +
    +__rsub__(other)
    +

    Create the SMT expression other - self.

    +
    >>> x = BitVec('x', 32)
    +>>> 10 - x
    +10 - x
    +
    +
    +
    + +
    +
    +__rtruediv__(other)
    +

    Create the SMT expression (signed) division other / self.

    +
    + +
    +
    +__rxor__(other)
    +

    Create the SMT expression bitwise-xor other ^ self.

    +
    >>> x = BitVec('x', 32)
    +>>> 10 ^ x
    +10 ^ x
    +
    +
    +
    + +
    +
    +__sub__(other)
    +

    Create the SMT expression self - other.

    +
    >>> x = BitVec('x', 32)
    +>>> y = BitVec('y', 32)
    +>>> x - y
    +x - y
    +>>> (x - y).sort()
    +BitVec(32)
    +
    +
    +
    + +
    +
    +__truediv__(other)
    +

    Create the SMT expression (signed) division self / other.

    +
    + +
    +
    +__xor__(other)
    +

    Create the SMT expression bitwise-xor self ^ other.

    +
    >>> x = BitVec('x', 32)
    +>>> y = BitVec('y', 32)
    +>>> x ^ y
    +x ^ y
    +>>> (x ^ y).sort()
    +BitVec(32)
    +
    +
    +
    + +
    +
    +size()
    +

    Return the number of bits of the bit-vector expression self.

    +
    >>> x = BitVec('x', 32)
    +>>> (x + 1).size()
    +32
    +>>> Concat(x, x).size()
    +64
    +
    +
    +
    + +
    +
    +sort()
    +

    Return the sort of the bit-vector expression self.

    +
    >>> x = BitVec('x', 32)
    +>>> x.sort()
    +BitVec(32)
    +>>> x.sort() == BitVecSort(32)
    +True
    +
    +
    +
    + +
    + +
    +
    +class cvc5.pythonic.BitVecNumRef(ast, ctx=None, reverse_children=False)
    +

    Bit-vector values.

    +
    +
    +as_long()
    +

    Return an SMT bit-vector numeral as a Python long (bignum) numeral.

    +
    >>> v = BitVecVal(0xbadc0de, 32)
    +>>> v
    +195936478
    +>>> print("0x%.8x" % v.as_long())
    +0x0badc0de
    +
    +
    +
    + +
    +
    +as_signed_long()
    +

    Return an SMT bit-vector numeral as a Python long (bignum) numeral. +The most significant bit is assumed to be the sign.

    +
    >>> BitVecVal(4, 3).as_signed_long()
    +-4
    +>>> BitVecVal(7, 3).as_signed_long()
    +-1
    +>>> BitVecVal(3, 3).as_signed_long()
    +3
    +>>> BitVecVal(2**32 - 1, 32).as_signed_long()
    +-1
    +>>> BitVecVal(2**64 - 1, 64).as_signed_long()
    +-1
    +
    +
    +
    + +
    + +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/pythonic/boolean.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/pythonic/boolean.html new file mode 100644 index 0000000000..eed39dea38 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/pythonic/boolean.html @@ -0,0 +1,1256 @@ + + + + + + + + + + + + + Core & Booleans — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Core & Booleans

    +
    +

    Basic Boolean Term Builders

    +
    +
    +cvc5.pythonic.Bool(name, ctx=None)
    +

    Return a Boolean constant named name. If ctx=None, then the global context is used.

    +
    >>> p = Bool('p')
    +>>> q = Bool('q')
    +>>> And(p, q)
    +And(p, q)
    +
    +
    +
    + +
    +
    +cvc5.pythonic.BoolVal(val, ctx=None)
    +

    Return the Boolean value True or False. If ctx=None, then the +global context is used.

    +
    >>> BoolVal(True)
    +True
    +>>> is_true(BoolVal(True))
    +True
    +>>> is_true(True)
    +False
    +>>> is_false(BoolVal(False))
    +True
    +
    +
    +
    + +
    +
    +cvc5.pythonic.BoolSort(ctx=None)
    +

    Return the Boolean SMT sort. If ctx=None, then the global context is used.

    +
    >>> BoolSort()
    +Bool
    +>>> p = Const('p', BoolSort())
    +>>> is_bool(p)
    +True
    +>>> r = Function('r', IntSort(), IntSort(), BoolSort())
    +>>> r(0, 1)
    +r(0, 1)
    +>>> is_bool(r(0, 1))
    +True
    +
    +
    +
    + +
    +
    +cvc5.pythonic.FreshBool(prefix='b', ctx=None)
    +

    Return a fresh Boolean constant in the given context using the given prefix.

    +

    If ctx=None, then the global context is used.

    +
    >>> b1 = FreshBool()
    +>>> b2 = FreshBool()
    +>>> eq(b1, b2)
    +False
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Bools(names, ctx=None)
    +

    Return a tuple of Boolean constants.

    +

    names is a single string containing all names separated by blank spaces. +If ctx=None, then the global context is used.

    +
    >>> p, q, r = Bools('p q r')
    +>>> And(p, Or(q, r))
    +And(p, Or(q, r))
    +
    +
    +
    + +
    +
    +cvc5.pythonic.BoolVector(prefix, sz, ctx=None)
    +

    Return a list of Boolean constants of size sz.

    +

    The constants are named using the given prefix. +If ctx=None, then the global context is used.

    +
    >>> P = BoolVector('p', 3)
    +>>> P
    +[p__0, p__1, p__2]
    +>>> And(P)
    +And(p__0, p__1, p__2)
    +
    +
    +
    + +
    +
    +

    Basic Generic Term Builders

    +
    +
    +cvc5.pythonic.Const(name, sort)
    +

    Create a constant of the given sort.

    +
    >>> Const('x', IntSort())
    +x
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Consts(names, sort)
    +

    Create several constants of the given sort.

    +

    names is a string containing the names of all constants to be created. +Blank spaces separate the names of different constants.

    +
    >>> x, y, z = Consts('x y z', IntSort())
    +>>> x + y + z
    +x + y + z
    +
    +
    +
    + +
    +
    +cvc5.pythonic.FreshConst(sort, prefix='c')
    +

    Create a fresh constant of a specified sort

    +
    >>> x = FreshConst(BoolSort(), prefix="test")
    +>>> y = FreshConst(BoolSort(), prefix="test")
    +>>> x.eq(y)
    +False
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Function(name, *sig)
    +

    Create a new SMT uninterpreted function with the given sorts.

    +
    >>> f = Function('f', IntSort(), IntSort())
    +>>> f(f(0))
    +f(f(0))
    +
    +
    +
    + +
    +
    +cvc5.pythonic.FreshFunction(*sig)
    +

    Create a new fresh SMT uninterpreted function with the given sorts.

    +
    >>> f = FreshFunction(IntSort(), IntSort())
    +>>> x = Int('x')
    +>>> solve([f(x) != f(x)])
    +no solution
    +
    +
    +
    + +
    +
    +

    Boolean Operators

    +
    +
    +cvc5.pythonic.And(*args)
    +

    Create an SMT and-expression or and-probe.

    +
    >>> p, q, r = Bools('p q r')
    +>>> And(p, q, r)
    +And(p, q, r)
    +>>> And(p, q, r, main_ctx())
    +And(p, q, r)
    +>>> P = BoolVector('p', 5)
    +>>> And(P)
    +And(p__0, p__1, p__2, p__3, p__4)
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Or(*args)
    +

    Create an SMT or-expression or or-probe.

    +
    >>> p, q, r = Bools('p q r')
    +>>> Or(p, q, r)
    +Or(p, q, r)
    +>>> Or(p, q, r, main_ctx())
    +Or(p, q, r)
    +>>> P = BoolVector('p', 5)
    +>>> Or(P)
    +Or(p__0, p__1, p__2, p__3, p__4)
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Not(a, ctx=None)
    +

    Create an SMT not expression or probe.

    +
    >>> p = Bool('p')
    +>>> Not(Not(p))
    +Not(Not(p))
    +
    +
    +
    + +
    +
    +cvc5.pythonic.mk_not(a)
    +

    Negate a boolean expression. +Strips a negation if one is already present

    +
    >>> x = Bool('x')
    +>>> mk_not(x)
    +Not(x)
    +>>> mk_not(mk_not(x))
    +x
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Implies(a, b, ctx=None)
    +

    Create an SMT implies expression.

    +
    >>> p, q = Bools('p q')
    +>>> Implies(p, q)
    +Implies(p, q)
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Xor(a, b, ctx=None)
    +

    Create an SMT Xor expression.

    +
    >>> p, q = Bools('p q')
    +>>> Xor(p, q)
    +Xor(p, q)
    +
    +
    +
    + +
    +
    +

    Generic Operators

    +
    +
    +cvc5.pythonic.If(a, b, c, ctx=None)
    +

    Create an SMT if-then-else expression.

    +
    >>> x = Int('x')
    +>>> y = Int('y')
    +>>> max = If(x > y, x, y)
    +>>> max
    +If(x > y, x, y)
    +>>> If(True, 1, 0, main_ctx())
    +If(True, 1, 0)
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Distinct(*args)
    +

    Create an SMT distinct expression.

    +
    >>> x = Int('x')
    +>>> y = Int('y')
    +>>> Distinct(x, y)
    +x != y
    +>>> z = Int('z')
    +>>> Distinct(x, y, z)
    +Distinct(x, y, z)
    +
    +
    +
    + +
    +

    Equality

    +

    See +cvc5.pythonic.ExprRef.__eq__() +and +cvc5.pythonic.ExprRef.__ne__() +for building equality and disequality terms.

    +
    +
    +
    +

    Testers

    +
    +
    +cvc5.pythonic.is_bool(a)
    +

    Return True if a is an SMT Boolean expression.

    +
    >>> p = Bool('p')
    +>>> is_bool(p)
    +True
    +>>> q = Bool('q')
    +>>> is_bool(And(p, q))
    +True
    +>>> x = Real('x')
    +>>> is_bool(x)
    +False
    +>>> is_bool(x == 0)
    +True
    +
    +
    +
    + +
    +
    +cvc5.pythonic.is_bool_value(a)
    +

    Return True if a is an integer value of sort Int.

    +
    >>> is_bool_value(IntVal(1))
    +False
    +>>> is_bool_value(Bool('x'))
    +False
    +>>> is_bool_value(BoolVal(False))
    +True
    +
    +
    +
    + +
    +
    +cvc5.pythonic.is_true(a)
    +

    Return True if a is the SMT true expression.

    +
    >>> p = Bool('p')
    +>>> is_true(p)
    +False
    +>>> x = Real('x')
    +>>> is_true(x == 0)
    +False
    +>>> # True is a Python Boolean expression
    +>>> is_true(True)
    +False
    +
    +
    +
    + +
    +
    +cvc5.pythonic.is_false(a)
    +

    Return True if a is the SMT false expression.

    +
    >>> p = Bool('p')
    +>>> is_false(p)
    +False
    +>>> is_false(False)
    +False
    +>>> is_false(BoolVal(False))
    +True
    +
    +
    +
    + +
    +
    +cvc5.pythonic.is_and(a)
    +

    Return True if a is an SMT and expression.

    +
    >>> p, q = Bools('p q')
    +>>> is_and(And(p, q))
    +True
    +>>> is_and(Or(p, q))
    +False
    +
    +
    +
    + +
    +
    +cvc5.pythonic.is_or(a)
    +

    Return True if a is an SMT or expression.

    +
    >>> p, q = Bools('p q')
    +>>> is_or(Or(p, q))
    +True
    +>>> is_or(And(p, q))
    +False
    +
    +
    +
    + +
    +
    +cvc5.pythonic.is_implies(a)
    +

    Return True if a is an SMT implication expression.

    +
    >>> p, q = Bools('p q')
    +>>> is_implies(Implies(p, q))
    +True
    +>>> is_implies(And(p, q))
    +False
    +
    +
    +
    + +
    +
    +cvc5.pythonic.is_not(a)
    +

    Return True if a is an SMT not expression.

    +
    >>> p = Bool('p')
    +>>> is_not(p)
    +False
    +>>> is_not(Not(p))
    +True
    +
    +
    +
    + +
    +
    +cvc5.pythonic.is_eq(a)
    +

    Return True if a is an SMT equality expression.

    +
    >>> x, y = Ints('x y')
    +>>> is_eq(x == y)
    +True
    +
    +
    +
    + +
    +
    +cvc5.pythonic.is_distinct(a)
    +

    Return True if a is an SMT distinct expression.

    +
    >>> x, y, z = Ints('x y z')
    +>>> is_distinct(x == y)
    +False
    +>>> is_distinct(Distinct(x, y, z))
    +True
    +
    +
    +
    + +
    +
    +cvc5.pythonic.is_const(a)
    +

    Return True if a is SMT constant/variable expression.

    +
    +
    These include:
      +
    • concrete (i.e. literal, or non-symbolic) values

    • +
    • declared constants

    • +
    +
    +
    These do not include:
      +
    • bound variables

    • +
    • quantified formulae

    • +
    • applied operators

    • +
    +
    +
    +
    >>> a = Int('a')
    +>>> is_const(a)
    +True
    +>>> is_const(a + 1)
    +False
    +>>> is_const(1)
    +False
    +>>> is_const(IntVal(1))
    +True
    +>>> x = Int('x')
    +
    +
    +
    + +
    +
    +cvc5.pythonic.is_func_decl(a)
    +

    Return True if a is an SMT function declaration.

    +
    >>> f = Function('f', IntSort(), IntSort())
    +>>> is_func_decl(f)
    +True
    +>>> x = Real('x')
    +>>> is_func_decl(x)
    +False
    +
    +
    +
    + +
    +
    +

    Classes (with overloads)

    +
    +
    +class cvc5.pythonic.ExprRef(ast, ctx=None, reverse_children=False)
    +

    Constraints, formulas and terms are expressions.

    +
    +
    +__bool__()
    +

    Convert this expression to a python boolean.

    +

    Produces +* the appropriate value for a BoolVal. +* whether structural equality holds for an EQ-node

    +
    >>> bool(BoolVal(True))
    +True
    +>>> bool(BoolVal(False))
    +False
    +>>> bool(BoolVal(False) == BoolVal(False))
    +True
    +>>> try:
    +...   bool(Int('y'))
    +... except SMTException as ex:
    +...   print("failed: %s" % ex)
    +failed: Symbolic expressions cannot be cast to concrete Boolean values.
    +
    +
    +
    + +
    +
    +__eq__(other)
    +

    Return an SMT expression that represents the constraint self == other.

    +

    If other is None, then this method simply returns False.

    +
    >>> a = Int('a')
    +>>> b = Int('b')
    +>>> a == b
    +a == b
    +>>> a is None
    +False
    +>>> a == None
    +False
    +
    +
    +
    + +
    +
    +__hash__()
    +

    Hash code.

    +
    + +
    +
    +__init__(ast, ctx=None, reverse_children=False)
    +
    + +
    +
    +__ne__(other)
    +

    Return an SMT expression that represents the constraint self != other.

    +

    If other is None, then this method simply returns True.

    +
    >>> a = Int('a')
    +>>> b = Int('b')
    +>>> a != b
    +a != b
    +>>> a is not None
    +True
    +>>> a != None
    +True
    +
    +
    +
    + +
    +
    +__nonzero__()
    +

    Convert this expression to a python boolean. See __bool__.

    +
    >>> (BoolVal(False) == BoolVal(False)).__nonzero__()
    +True
    +
    +
    +
    + +
    +
    +__repr__()
    +

    Return repr(self).

    +
    + +
    +
    +__str__()
    +

    Return str(self).

    +
    + +
    +
    +__weakref__
    +

    list of weak references to the object (if defined)

    +
    + +
    +
    +arg(idx)
    +

    Return argument idx of the application self.

    +

    This method assumes that self is a function application with at least +idx+1 arguments.

    +
    >>> a = Int('a')
    +>>> b = Int('b')
    +>>> f = Function('f', IntSort(), IntSort(), IntSort(), IntSort())
    +>>> t = f(a, b, 0)
    +>>> t.arg(0)
    +a
    +>>> t.arg(1)
    +b
    +>>> t.arg(2)
    +0
    +
    +
    +
    + +
    +
    +as_ast()
    +

    Return a pointer to the underlying Term object.

    +
    + +
    +
    +children()
    +

    Return a list containing the children of the given expression

    +
    >>> a = Int('a')
    +>>> b = Int('b')
    +>>> f = Function('f', IntSort(), IntSort(), IntSort(), IntSort())
    +>>> t = f(a, b, 0)
    +>>> t.children()
    +[a, b, 0]
    +
    +
    +
    + +
    +
    +decl()
    +

    Return the SMT function declaration associated with an SMT application.

    +
    >>> f = Function('f', IntSort(), IntSort())
    +>>> a = Int('a')
    +>>> t = f(a)
    +>>> eq(t.decl(), f)
    +True
    +>>> try:
    +...   Int('y').decl()
    +... except SMTException as ex:
    +...   print("failed: %s" % ex)
    +failed: Declarations for non-function applications
    +
    +
    +
    + +
    +
    +eq(other)
    +

    Return True if self and other are structurally identical.

    +
    >>> x = Int('x')
    +>>> n1 = x + 1
    +>>> n2 = 1 + x
    +>>> n1.eq(n2)
    +False
    +
    +
    +
    + +
    +
    +get_id()
    +

    Return unique identifier for object. +It can be used for hash-tables and maps.

    +
    >>> BoolVal(True).get_id() == BoolVal(True).get_id()
    +True
    +
    +
    +
    + +
    +
    +hash()
    +

    Return a hashcode for the self.

    +
    >>> n1 = Int('x') + 1
    +>>> n2 = Int('x') + 1
    +>>> n1.hash() == n2.hash()
    +True
    +
    +
    +
    + +
    +
    +is_int()
    +

    Return True if self is of the sort Integer.

    +
    >>> x = Int('x')
    +>>> x.is_int()
    +True
    +>>> (x + 1).is_int()
    +True
    +>>> x = Real('x')
    +>>> x.is_int()
    +False
    +>>> Set('x', IntSort()).is_int()
    +False
    +
    +
    +
    + +
    +
    +kind()
    +

    Return the Kind of this term

    +
    >>> f = Function('f', IntSort(), IntSort())
    +>>> a = Int('a')
    +>>> t = f(a)
    +>>> t.kind() == Kind.APPLY_UF
    +True
    +
    +
    +
    + +
    +
    +num_args()
    +

    Return the number of arguments of an SMT application.

    +
    >>> a = Int('a')
    +>>> b = Int('b')
    +>>> (a + b).num_args()
    +2
    +>>> f = Function('f', IntSort(), IntSort(), IntSort(), IntSort())
    +>>> t = f(a, b, 0)
    +>>> t.num_args()
    +3
    +
    +
    +
    + +
    +
    +sexpr()
    +

    Return a string representing the AST node in s-expression notation.

    +
    >>> x = Int('x')
    +>>> ((x + 1)*x).sexpr()
    +'(* (+ x 1) x)'
    +
    +
    +
    + +
    +
    +sort()
    +

    Return the sort of expression self.

    +
    >>> x = Int('x')
    +>>> (x + 1).sort()
    +Int
    +>>> y = Real('y')
    +>>> (x + y).sort()
    +Real
    +
    +
    +
    + +
    + +
    +
    +class cvc5.pythonic.SortRef(ast, ctx=None)
    +

    A Sort is essentially a type. Every term has a sort

    +
    +
    +__eq__(other)
    +

    Return self==value.

    +
    + +
    +
    +__hash__()
    +

    Hash code.

    +
    + +
    +
    +__init__(ast, ctx=None)
    +
    + +
    +
    +__ne__(other)
    +

    Return True if self and other are not the same SMT sort.

    +
    >>> p = Bool('p')
    +>>> p.sort() != BoolSort()
    +False
    +>>> p.sort() != IntSort()
    +True
    +
    +
    +
    + +
    +
    +__repr__()
    +

    A pretty-printed representation of this sort.

    +
    >>> repr(IntSort())
    +'Int'
    +
    +
    +
    + +
    +
    +__str__()
    +

    A pretty-printed representation of this sort.

    +
    >>> str(IntSort())
    +'Int'
    +
    +
    +
    + +
    +
    +__weakref__
    +

    list of weak references to the object (if defined)

    +
    + +
    +
    +as_ast()
    +

    Return a pointer to the underlying Sort object.

    +
    + +
    +
    +cast(val)
    +

    Try to cast val as an element of sort self.

    +

    This method is used in SMT to convert Python objects such as integers, +floats, longs and strings into SMT expressions.

    +
    >>> x = Int('x')
    +>>> RealSort().cast(x)
    +ToReal(x)
    +
    +
    +
    + +
    +
    +eq(other)
    +

    Return True if self and other are structurally identical.

    +
    >>> x = Int('x')
    +>>> n1 = x + 1
    +>>> n2 = 1 + x
    +>>> n1.eq(n2)
    +False
    +>>> n1.eq(x + 1)
    +True
    +
    +
    +
    + +
    +
    +hash()
    +

    Return a hashcode for the self.

    +
    >>> n1 = IntSort()
    +>>> n2 = RealSort()
    +>>> n1.hash() == n2.hash()
    +False
    +
    +
    +
    + +
    +
    +is_int()
    +

    Subclasses override

    +
    >>> SetSort(IntSort()).is_int()
    +False
    +
    +
    +
    + +
    +
    +name()
    +

    Return the name (string) of sort self.

    +
    >>> BoolSort().name()
    +'Bool'
    +>>> ArraySort(IntSort(), IntSort()).name()
    +'(Array Int Int)'
    +
    +
    +
    + +
    +
    +sexpr()
    +

    Return a string representing the AST node in s-expression notation.

    +
    >>> IntSort().sexpr()
    +'Int'
    +
    +
    +
    + +
    +
    +subsort(other)
    +

    Return True if self is a subsort of other.

    +
    >>> IntSort().subsort(RealSort())
    +True
    +>>> BoolSort().subsort(RealSort())
    +True
    +>>> SetSort(BitVecSort(2)).subsort(SetSort(IntSort()))
    +False
    +
    +
    +
    + +
    + +
    +
    +class cvc5.pythonic.BoolRef(ast, ctx=None, reverse_children=False)
    +

    All Boolean expressions are instances of this class.

    +
    +
    +__mul__(other)
    +

    Create the SMT expression self * other.

    +
    >>> x = Real("x")
    +>>> BoolVal(True) * x
    +If(True, x, 0)
    +
    +
    +
    + +
    +
    +__rmul__(other)
    +
    >>> x = Real("x")
    +>>> x * BoolVal(True)
    +If(True, x, 0)
    +
    +
    +
    + +
    +
    +sort()
    +

    Return the sort of expression self.

    +
    >>> x = Int('x')
    +>>> (x + 1).sort()
    +Int
    +>>> y = Real('y')
    +>>> (x + y).sort()
    +Real
    +
    +
    +
    + +
    + +
    +
    +class cvc5.pythonic.BoolSortRef(ast, ctx=None)
    +

    Boolean sort.

    +
    +
    +cast(val)
    +

    Try to cast val as a Boolean.

    +
    >>> x = BoolSort().cast(True)
    +>>> x
    +True
    +>>> is_expr(x)
    +True
    +>>> is_expr(True)
    +False
    +>>> x.sort()
    +Bool
    +>>> try:
    +...   BoolSort().cast(Int('y'))
    +... except SMTException as ex:
    +...   print("failed")
    +failed
    +>>> try:
    +...   BoolSort().cast(1)
    +... except SMTException as ex:
    +...   print("failed")
    +failed
    +
    +
    +
    + +
    +
    +is_bool()
    +

    Return True if self is of the sort Boolean.

    +
    >>> x = BoolSort()
    +>>> x.is_bool()
    +True
    +
    +
    +
    + +
    +
    +is_int()
    +

    Return True if self is of the sort Integer.

    +
    >>> x = IntSort()
    +>>> x.is_int()
    +True
    +>>> x = RealSort()
    +>>> x.is_int()
    +False
    +>>> x = BoolSort()
    +>>> x.is_int()
    +True
    +
    +
    +
    + +
    +
    +subsort(other)
    +

    Return True if self is a subsort of other.

    +
    >>> IntSort().subsort(RealSort())
    +True
    +>>> BoolSort().subsort(RealSort())
    +True
    +>>> SetSort(BitVecSort(2)).subsort(SetSort(IntSort()))
    +False
    +
    +
    +
    + +
    + +
    +
    +class cvc5.pythonic.FuncDeclRef(ast, ctx=None, reverse_children=False)
    +

    Function declaration. +Every constant and function have an associated declaration.

    +

    The declaration assigns a name, a sort (i.e., type), and for function +the sort (i.e., type) of each of its arguments. Note that, in SMT, +a constant is a function with 0 arguments.

    +
    +
    +__call__(*args)
    +

    Create an SMT application expression using the function self, +and the given arguments.

    +

    The arguments must be SMT expressions. This method assumes that +the sorts of the elements in args match the sorts of the +domain. Limited coercion is supported. For example, if +args[0] is a Python integer, and the function expects a SMT +integer, then the argument is automatically converted into a +SMT integer.

    +
    >>> f = Function('f', IntSort(), RealSort(), BoolSort())
    +>>> x = Int('x')
    +>>> y = Real('y')
    +>>> f(x, y)
    +f(x, y)
    +>>> f(x, x)
    +f(x, ToReal(x))
    +
    +
    +
    + +
    +
    +arity()
    +

    Return the number of arguments of a function declaration. +If self is a constant, then self.arity() is 0.

    +
    >>> f = Function('f', IntSort(), RealSort(), BoolSort())
    +>>> f.arity()
    +2
    +
    +
    +
    + +
    +
    +domain(i)
    +

    Return the sort of the argument i of a function declaration. +This method assumes that 0 <= i < self.arity().

    +
    >>> f = Function('f', IntSort(), RealSort(), BoolSort())
    +>>> f.domain(0)
    +Int
    +>>> f.domain(1)
    +Real
    +
    +
    +
    + +
    +
    +name()
    +

    Return the name of the function declaration self.

    +
    >>> f = Function('f', IntSort(), IntSort())
    +>>> f.name()
    +'f'
    +>>> isinstance(f.name(), str)
    +True
    +
    +
    +
    + +
    +
    +range()
    +

    Return the sort of the range of a function declaration. +For constants, this is the sort of the constant.

    +
    >>> f = Function('f', IntSort(), RealSort(), BoolSort())
    +>>> f.range()
    +Bool
    +
    +
    +
    + +
    + +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/pythonic/dt.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/pythonic/dt.html new file mode 100644 index 0000000000..9c3833b1fa --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/pythonic/dt.html @@ -0,0 +1,681 @@ + + + + + + + + + + + + + Datatypes — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Datatypes

    +
    +

    Overview

    +

    To manipulate instances of a datatype, one must first declare the datatype itself. +Declaration happens in three phases. Let’s consider declaring a cons-list of +integers.

    +

    First, we initialize the datatype with its name

    +
    >>> IntList = Datatype('IntList')
    +
    +
    +

    Second, we declare constructors for the datatype, giving the constructor name +and field names and sorts. Here is the empty list constructor:

    +
    >>> IntList.declare('nil', ())
    +
    +
    +

    Here is the cons constructor:

    +
    >>> IntList.declare('cons', ('val', IntSort()), ('tail', IntList))
    +
    +
    +

    Third, after all constructors are declared, we can create the datatype, +finishing its declaration.

    +
    >>> IntList = IntList.create()
    +
    +
    +

    Now, one has access to a number of tools for interacting with integer lists.

    +
      +
    • IntList.nil refers to the SMT term that is an empty list, +and IntList.cons refers to the cons constructor.

    • +
    • IntList.is_nil and IntList.is_cons are testors (a.k.a., +recognizers) for those constructors.

    • +
    • IntList.val and IntList.tail are selectors (a.k.a. accessors) +for the cons constructor.

    • +
    +

    If constructor, accessor, or selector names are ambiguous (e.g., if different +constructors have selectors of the same name), then see the methods on +cvc5.pythonic.DatatypeSortRef to unambiguously access a specific +function.

    +

    To create mutually recursive datatypes, see +cvc5.pythonic.CreateDatatypes().

    +

    To create a codataype (e.g., a possibly infinite stream of integers), pass the +isCoDatatype=True argument to the cvc5.pythonic.Datatype +constructor.

    +
    >>> IntStream = Datatype('IntStream', isCoDatatype=True)
    +
    +
    +
    +
    +

    Declaration Utilities

    +
    +
    +cvc5.pythonic.CreateDatatypes(*ds)
    +

    Create mutually recursive SMT datatypes using 1 or more Datatype helper objects. +In the following example we define a Tree-List using two mutually recursive datatypes.

    +
    >>> TreeList = Datatype('TreeList')
    +>>> Tree     = Datatype('Tree')
    +>>> # Tree has two constructors: leaf and node
    +>>> Tree.declare('leaf', ('val', IntSort()))
    +>>> # a node contains a list of trees
    +>>> Tree.declare('node', ('children', TreeList))
    +>>> TreeList.declare('nil')
    +>>> TreeList.declare('cons', ('car', Tree), ('cdr', TreeList))
    +>>> Tree, TreeList = CreateDatatypes(Tree, TreeList)
    +>>> Tree.val(Tree.leaf(10))
    +val(leaf(10))
    +>>> simplify(Tree.val(Tree.leaf(10)))
    +10
    +>>> l1 = TreeList.cons(Tree.leaf(10), TreeList.cons(Tree.leaf(20), TreeList.nil))
    +>>> n1 = Tree.node(TreeList.cons(Tree.leaf(10), TreeList.cons(Tree.leaf(20), TreeList.nil)))
    +>>> n1
    +node(cons(leaf(10), cons(leaf(20), nil)))
    +>>> n2 = Tree.node(TreeList.cons(n1, TreeList.nil))
    +>>> simplify(n2 == n1)
    +False
    +>>> simplify(TreeList.car(Tree.children(n2)) == n1)
    +True
    +
    +
    +
    + +
    +
    +cvc5.pythonic.TupleSort(name, sorts, ctx=None)
    +

    Create a named tuple sort base on a set of underlying sorts

    +

    Returns the tuple datatype, its constructor, and a list of accessors, in order.

    +
    >>> pair, mk_pair, (first, second) = TupleSort("pair", [IntSort(), BoolSort()])
    +>>> b = Bool('b')
    +>>> i = Int('i')
    +>>> p = mk_pair(i, b)
    +>>> p
    +pair(i, b)
    +>>> solve([b != second(p)])
    +no solution
    +
    +
    +
    + +
    +
    +cvc5.pythonic.DisjointSum(name, sorts, ctx=None)
    +

    Create a named tagged union sort base on a set of underlying sorts.

    +

    See this page <https://en.wikipedia.org/wiki/Tagged_union> for +information about tagged unions.

    +

    Returns the created datatype and a tuple of (injector, extractor) pairs for +the different variants.

    +
    >>> sum, ((inject0, extract0), (inject1, extract1)) = DisjointSum("+", [IntSort(), BoolSort()])
    +>>> b = Bool('b')
    +>>> i, j = Ints('i j')
    +>>> solve([inject0(i) == inject1(b)])
    +no solution
    +>>> solve([inject0(i) == inject0(j), extract0(inject0(i)) == 5])
    +[i = 5, j = 5]
    +
    +
    +
    + +
    +
    +

    Classes

    +
    +
    +class cvc5.pythonic.Datatype(name, ctx=None, isCoDatatype=False)
    +

    Helper class for declaring datatypes.

    +
    >>> List = Datatype('List')
    +>>> List.declare('cons', ('car', IntSort()), ('cdr', List))
    +>>> List.declare('nil')
    +>>> List = List.create()
    +>>> # List is now a declaration
    +>>> List.nil
    +nil
    +>>> List.cons(10, List.nil)
    +cons(10, nil)
    +>>> List.cons(10, List.nil).sort()
    +List
    +>>> cons = List.cons
    +>>> nil  = List.nil
    +>>> car  = List.car
    +>>> cdr  = List.cdr
    +>>> n = cons(1, cons(0, nil))
    +>>> n
    +cons(1, cons(0, nil))
    +>>> simplify(cdr(n))
    +cons(0, nil)
    +>>> simplify(car(n))
    +1
    +
    +
    +
    +
    +__init__(name, ctx=None, isCoDatatype=False)
    +
    + +
    +
    +__repr__()
    +

    Return repr(self).

    +
    + +
    +
    +__weakref__
    +

    list of weak references to the object (if defined)

    +
    + +
    +
    +create()
    +

    Create an SMT datatype based on the constructors declared using the method declare(). +The function CreateDatatypes() must be used to define mutually recursive datatypes.

    +
    >>> List = Datatype('List')
    +>>> List.declare('cons', ('car', IntSort()), ('cdr', List))
    +>>> List.declare('nil')
    +>>> List = List.create()
    +>>> List.nil
    +nil
    +>>> List.cons(10, List.nil)
    +cons(10, nil)
    +>>> Stream = Datatype('Stream', isCoDatatype=True)
    +>>> Stream.declare('cons', ('car', IntSort()), ('cdr', Stream))
    +>>> Stream.declare('nil')
    +>>> Stream = Stream.create()
    +>>> a = Const('a', Stream)
    +>>> b = Const('b', Stream)
    +>>> s = Solver()
    +>>> s += a == Stream.cons(0, a)
    +>>> s.check()
    +sat
    +>>> s = Solver()
    +>>> s += a == Stream.cons(0, a)
    +>>> s += b == Stream.cons(0, b)
    +>>> s += a != b
    +>>> s.check()
    +unsat
    +
    +
    +
    + +
    +
    +declare(name, *args)
    +

    Declare constructor named name with the given accessors args. +Each accessor is a pair (name, sort), where name is a string and sort an SMT sort +or a reference to the datatypes being declared. +In the following example List.declare(‘cons’, (‘car’, IntSort()), (‘cdr’, List)) +declares the constructor named cons that builds a new List using an integer and a List. +It also declares the accessors car and cdr. The accessor car extracts the integer +of a cons cell, and cdr the list of a cons cell. After all constructors were declared, +we use the method create() to create the actual datatype in SMT.

    +
    >>> List = Datatype('List')
    +>>> List.declare('cons', ('car', IntSort()), ('cdr', List))
    +>>> List.declare('nil')
    +>>> List = List.create()
    +
    +
    +
    + +
    + +
    +
    +class cvc5.pythonic.DatatypeSortRef(ast, ctx=None)
    +

    Datatype sorts.

    +
    +
    +__init__(ast, ctx=None)
    +
    + +
    +
    +accessor(i, j)
    +

    In SMT, each constructor has 0 or more accessor. +The number of accessors is equal to the arity of the constructor.

    +
    >>> List = Datatype('List')
    +>>> List.declare('cons', ('car', IntSort()), ('cdr', List))
    +>>> List.declare('nil')
    +>>> List = List.create()
    +>>> List.num_constructors()
    +2
    +>>> List.constructor(0)
    +cons
    +>>> num_accs = List.constructor(0).arity()
    +>>> num_accs
    +2
    +>>> List.accessor(0, 0)
    +car
    +>>> List.accessor(0, 1)
    +cdr
    +>>> List.constructor(1)
    +nil
    +>>> num_accs = List.constructor(1).arity()
    +>>> num_accs
    +0
    +
    +
    +
    + +
    +
    +constructor(idx)
    +

    Return a constructor of the datatype self.

    +
    >>> List = Datatype('List')
    +>>> List.declare('cons', ('car', IntSort()), ('cdr', List))
    +>>> List.declare('nil')
    +>>> List = List.create()
    +>>> # List is now a declaration
    +>>> List.num_constructors()
    +2
    +>>> List.constructor(0)
    +cons
    +>>> List.constructor(1)
    +nil
    +
    +
    +
    + +
    +
    +num_constructors()
    +

    Return the number of constructors in the given datatype.

    +
    >>> List = Datatype('List')
    +>>> List.declare('cons', ('car', IntSort()), ('cdr', List))
    +>>> List.declare('nil')
    +>>> List = List.create()
    +>>> # List is now a declaration
    +>>> List.num_constructors()
    +2
    +
    +
    +
    + +
    +
    +recognizer(idx)
    +

    In SMT, each constructor has an associated recognizer predicate. +If the constructor is named name, then the recognizer is_name.

    +
    >>> List = Datatype('List')
    +>>> List.declare('cons', ('car', IntSort()), ('cdr', List))
    +>>> List.declare('nil')
    +>>> List = List.create()
    +>>> # List is now a SMT declaration
    +>>> List.num_constructors()
    +2
    +>>> List.recognizer(0)
    +is_cons
    +>>> List.recognizer(1)
    +is_nil
    +>>> simplify(List.is_nil(List.cons(10, List.nil)))
    +False
    +>>> simplify(List.is_cons(List.cons(10, List.nil)))
    +True
    +>>> l = Const('l', List)
    +>>> simplify(List.is_cons(l))
    +is_cons(l)
    +
    +
    +
    + +
    + +
    +
    +class cvc5.pythonic.DatatypeConstructorRef(datatype, ctx=None, r=False)
    +
    +
    +__call__(*args)
    +

    Apply this constructor.

    +
    >>> List = Datatype('List')
    +>>> List.declare('cons', ('car', IntSort()), ('cdr', List))
    +>>> List.declare('nil')
    +>>> List = List.create()
    +>>> List.num_constructors()
    +2
    +>>> List.constructor(0)(1, List.nil)
    +cons(1, nil)
    +
    +
    +

    The arguments must be SMT expressions. This method assumes that +the sorts of the elements in args match the sorts of the +domain. Limited coercion is supported. For example, if +args[0] is a Python integer, and the function expects a SMT +integer, then the argument is automatically converted into a +SMT integer.

    +
    + +
    +
    +__init__(datatype, ctx=None, r=False)
    +
    + +
    +
    +arity()
    +

    Return the number of arguments of a constructor.

    +

    The number of accessors is equal to the arity of the constructor.

    +
    >>> List = Datatype('List')
    +>>> List.declare('cons', ('car', IntSort()), ('cdr', List))
    +>>> List.declare('nil')
    +>>> List = List.create()
    +>>> List.num_constructors()
    +2
    +>>> List.constructor(0).arity()
    +2
    +
    +
    +
    + +
    +
    +domain(i)
    +

    Return the sort of the argument i of a constructor. +This method assumes that 0 <= i < self.arity().

    +
    >>> List = Datatype('List')
    +>>> List.declare('cons', ('car', IntSort()), ('cdr', List))
    +>>> List.declare('nil')
    +>>> List = List.create()
    +>>> List.num_constructors()
    +2
    +>>> List.constructor(0).domain(0)
    +Int
    +
    +
    +
    + +
    +
    +range()
    +

    Return the sort of the range of a function declaration. +For constants, this is the sort of the constant.

    +
    >>> List = Datatype('List')
    +>>> List.declare('cons', ('car', IntSort()), ('cdr', List))
    +>>> List.declare('nil')
    +>>> List = List.create()
    +>>> List.num_constructors()
    +2
    +>>> List.constructor(0).range()
    +List
    +
    +
    +
    + +
    + +
    +
    +class cvc5.pythonic.DatatypeSelectorRef(datatype, ctx=None, r=False)
    +
    +
    +__call__(*args)
    +

    Apply this selector.

    +
    >>> List = Datatype('List')
    +>>> List.declare('cons', ('car', IntSort()), ('cdr', List))
    +>>> List.declare('nil')
    +>>> List = List.create()
    +>>> l = List.cons(1, List.nil)
    +>>> solve([1 != List.car(l)])
    +no solution
    +
    +
    +

    The arguments must be SMT expressions. This method assumes that +the sorts of the elements in args match the sorts of the +domain. Limited coercion is supported. For example, if +args[0] is a Python integer, and the function expects a SMT +integer, then the argument is automatically converted into a +SMT integer.

    +
    + +
    +
    +__init__(datatype, ctx=None, r=False)
    +
    + +
    +
    +arity()
    +

    Return the number of arguments of a selector (always 1).

    +
    + +
    +
    +domain(i)
    +

    Return the sort of the argument i of a selector. +This method assumes that 0 <= i < self.arity().

    +
    + +
    +
    +range()
    +

    Return the sort of the range of a function declaration. +For constants, this is the sort of the constant.

    +
    + +
    + +
    +
    +class cvc5.pythonic.DatatypeRecognizerRef(constructor, ctx=None, r=False)
    +
    +
    +__call__(*args)
    +

    Apply this tester (a.k.a., recognizer).

    +
    >>> List = Datatype('List')
    +>>> List.declare('cons', ('car', IntSort()), ('cdr', List))
    +>>> List.declare('nil')
    +>>> List = List.create()
    +>>> l = List.cons(1, List.nil)
    +>>> solve([List.is_nil(l)])
    +no solution
    +
    +
    +

    The arguments must be SMT expressions. This method assumes that +the sorts of the elements in args match the sorts of the +domain. Limited coercion is supported. For example, if +args[0] is a Python integer, and the function expects a SMT +integer, then the argument is automatically converted into a +SMT integer.

    +
    + +
    +
    +__init__(constructor, ctx=None, r=False)
    +
    + +
    +
    +arity()
    +

    Return the number of arguments of a selector (always 1).

    +
    + +
    +
    +domain(i)
    +

    Return the sort of the argument i of a selector. +This method assumes that 0 <= i < self.arity().

    +
    + +
    +
    +range()
    +

    Return the sort of the range of a function declaration. +For constants, this is the sort of the constant.

    +
    + +
    + +
    +
    +class cvc5.pythonic.DatatypeRef(ast, ctx=None, reverse_children=False)
    +

    Datatype expressions.

    +
    +
    +sort()
    +

    Return the datatype sort of the datatype expression self.

    +
    + +
    + +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/pythonic/finite_field.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/pythonic/finite_field.html new file mode 100644 index 0000000000..11c818f0ae --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/pythonic/finite_field.html @@ -0,0 +1,550 @@ + + + + + + + + + + + + + Finite Fields — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Finite Fields

    +
    +

    Basic FiniteField Term Builders

    +
    +
    +cvc5.pythonic.FiniteFieldElem(name, ff, ctx=None)
    +

    Return a finite field constant named name. ff may be the number of bits of a finite field sort. +If ctx=None, then the global context is used.

    +
    >>> x  = FiniteFieldElem('x', 17)
    +>>> is_ff(x)
    +True
    +>>> x.size()
    +17
    +>>> x.sort()
    +FiniteField(17)
    +>>> word = FiniteFieldSort(17)
    +>>> x2 = FiniteFieldElem('x', word)
    +>>> eq(x, x2)
    +True
    +
    +
    +
    + +
    +
    +cvc5.pythonic.FiniteFieldVal(val, ff, ctx=None)
    +

    Return a finite field value with the given number of bits. If ctx=None, then the global context is used. +The second argument can be a number of bits (integer) or a finite field sort.

    +
    >>> v = FiniteFieldVal(10, 29)
    +>>> v
    +10
    +>>> print("0x%.8x" % v.as_long())
    +0x0000000a
    +>>> s = FiniteFieldSort(3)
    +>>> u = FiniteFieldVal(10, s)
    +>>> u
    +1
    +
    +
    +
    + +
    +
    +cvc5.pythonic.FiniteFieldSort(sz, ctx=None)
    +

    Return an SMT finite field sort of the given size. If ctx=None, then the global context is used.

    +
    >>> f7 = FiniteFieldSort(7)
    +>>> f7
    +FiniteField(7)
    +>>> x = Const('x', f7)
    +>>> eq(x, FiniteFieldElem('x', 7))
    +True
    +
    +
    +
    + +
    +
    +cvc5.pythonic.FiniteFieldElems(names, ff, ctx=None)
    +

    Return a tuple of finite field constants of size ff.

    +
    >>> x, y, z = FiniteFieldElems('x y z', 17)
    +>>> x.size()
    +17
    +>>> x.sort()
    +FiniteField(17)
    +>>> Sum(x, y, z)
    +x + y + z
    +>>> Product(x, y, z)
    +x*y*z
    +
    +
    +
    + +
    +
    +

    Arithmetic Overloads

    +

    See the following operator overloads for building finite field terms. These +terms can also be built with builder functions listed below.

    +
    +
    addition (+)

    cvc5.pythonic.FiniteFieldRef.__add__()

    +
    +
    subtraction (-)

    cvc5.pythonic.FiniteFieldRef.__sub__()

    +
    +
    negation (-)

    cvc5.pythonic.FiniteFieldRef.__neg__()

    +
    +
    multiplication (*)

    cvc5.pythonic.FiniteFieldRef.__mul__()

    +
    +
    equality (==)

    cvc5.pythonic.ExprRef.__eq__()

    +
    +
    +
    +
    +cvc5.pythonic.FFAdd(*args)
    +

    Create a sum of finite fields.

    +

    See also the __add__ overload (+ operator) for FiniteFieldRef.

    +
    >>> x, y, z = FiniteFieldElems('x y z', 29)
    +>>> FFAdd(x, y, z)
    +x + y + z
    +
    +
    +
    + +
    +
    +cvc5.pythonic.FFSub(a, b)
    +

    Create a difference of finite fields.

    +

    See also the __sub__ overload (- operator) for FiniteFieldRef.

    +
    >>> x, y = FiniteFieldElems('x y', 29)
    +>>> FFSub(x, y)
    +x + -y
    +
    +
    +
    + +
    +
    +cvc5.pythonic.FFNeg(a)
    +

    Create a negation of a finite field elemetn

    +

    See also the __neg__ overload (unary - operator) for FiniteFieldRef.

    +
    >>> x = FiniteFieldElem('x', 29)
    +>>> FFNeg(x)
    +-x
    +
    +
    +
    + +
    +
    +cvc5.pythonic.FFMult(*args)
    +

    Create a product of finite fields.

    +

    See also the __mul__ overload (* operator) for FiniteFieldRef.

    +
    >>> x, y, z = FiniteFieldElems('x y z', 29)
    +>>> FFMult(x, y, z)
    +x*y*z
    +
    +
    +
    + +
    +
    +

    Testers

    +
    +
    +cvc5.pythonic.is_ff_sort(s)
    +

    Return True if s is an SMT finite field sort.

    +
    >>> is_ff_sort(FiniteFieldSort(29))
    +True
    +>>> is_ff_sort(IntSort())
    +False
    +
    +
    +
    + +
    +
    +cvc5.pythonic.is_ff(a)
    +

    Return True if a is an SMT finite field expression.

    +
    >>> b = FiniteFieldElem('b', 29)
    +>>> is_ff(b)
    +True
    +>>> is_ff(b + 10)
    +True
    +>>> is_ff(Int('x'))
    +False
    +
    +
    +
    + +
    +
    +cvc5.pythonic.is_ff_value(a)
    +

    Return True if a is an SMT finite field numeral value.

    +
    >>> b = FiniteFieldElem('b', 29)
    +>>> is_ff_value(b)
    +False
    +>>> b = FiniteFieldVal(10, 29)
    +>>> b
    +10
    +>>> is_ff_value(b)
    +True
    +
    +
    +
    + +
    +
    +

    Classes (with overloads)

    +
    +
    +class cvc5.pythonic.FiniteFieldSortRef(ast, ctx=None)
    +

    Bit-vector sort.

    +
    +
    +cast(val)
    +

    Try to cast val as a finite field

    +
    >>> b = FiniteFieldSort(31)
    +>>> b.cast(10)
    +10
    +>>> b.cast(10).sexpr()
    +'#f10m31'
    +
    +
    +
    + +
    +
    +size()
    +

    Return the size (number of elements) of the finite field sort self.

    +
    >>> b = FiniteFieldSort(17)
    +>>> b.size()
    +17
    +
    +
    +
    + +
    + +
    +
    +class cvc5.pythonic.FiniteFieldRef(ast, ctx=None, reverse_children=False)
    +

    Bit-vector expressions.

    +
    +
    +__add__(other)
    +

    Create the SMT expression self + other.

    +
    >>> x = FiniteFieldElem('x', 29)
    +>>> y = FiniteFieldElem('y', 29)
    +>>> x + y
    +x + y
    +>>> (x + y).sort()
    +FiniteField(29)
    +
    +
    +
    + +
    +
    +__mul__(other)
    +

    Create the SMT expression self * other.

    +
    >>> x = FiniteFieldElem('x', 29)
    +>>> y = FiniteFieldElem('y', 29)
    +>>> x * y
    +x*y
    +>>> (x * y).sort()
    +FiniteField(29)
    +
    +
    +
    + +
    +
    +__neg__()
    +

    Return an expression representing -self.

    +
    >>> x = FiniteFieldElem('x', 29)
    +>>> -x
    +-x
    +>>> solve([-(-x) != x])
    +no solution
    +
    +
    +
    + +
    +
    +__pos__()
    +

    Return self.

    +
    >>> x = FiniteFieldElem('x', 29)
    +>>> +x
    +x
    +
    +
    +
    + +
    +
    +__radd__(other)
    +

    Create the SMT expression other + self.

    +
    >>> x = FiniteFieldElem('x', 29)
    +>>> 10 + x
    +10 + x
    +
    +
    +
    + +
    +
    +__rmul__(other)
    +

    Create the SMT expression other * self.

    +
    >>> x = FiniteFieldElem('x', 29)
    +>>> 10 * x
    +10*x
    +
    +
    +
    + +
    +
    +__rsub__(other)
    +

    Create the SMT expression other - self.

    +
    >>> x = FiniteFieldElem('x', 29)
    +>>> 10 - x
    +10 + -x
    +>>> 10 + -x
    +10 + -x
    +
    +
    +
    + +
    +
    +__sub__(other)
    +

    Create the SMT expression self - other.

    +
    >>> x = FiniteFieldElem('x', 29)
    +>>> y = FiniteFieldElem('y', 29)
    +>>> x - y
    +x + -y
    +>>> (x - y).sort()
    +FiniteField(29)
    +
    +
    +
    + +
    +
    +size()
    +

    Return the number of bits of the finite field expression self.

    +
    >>> x = FiniteFieldElem('x', 29)
    +>>> (x + 1).size()
    +29
    +
    +
    +
    + +
    +
    +sort()
    +

    Return the sort of the finite field expression self.

    +
    >>> x = FiniteFieldElem('x', 29)
    +>>> x.sort()
    +FiniteField(29)
    +>>> x.sort() == FiniteFieldSort(29)
    +True
    +
    +
    +
    + +
    + +
    +
    +class cvc5.pythonic.FiniteFieldNumRef(ast, ctx=None, reverse_children=False)
    +

    Bit-vector values.

    +
    +
    +as_long()
    +

    Return an SMT finite field numeral as a positive Python long (bignum) numeral.

    +
    >>> v = FiniteFieldVal(28, 29)
    +>>> v
    +-1
    +>>> v.as_long()
    +28
    +
    +
    +
    + +
    +
    +as_signed_long()
    +

    Return an SMT finite field numeral as a Python long (bignum) numeral.

    +

    Returns the numeral of minimum absolute value, so the additive inverse of 1 is “-1”.

    +
    >>> FiniteFieldVal(4, 3).as_signed_long()
    +1
    +>>> FiniteFieldVal(7, 3).as_signed_long()
    +1
    +>>> FiniteFieldVal(3, 3).as_signed_long()
    +0
    +>>> FiniteFieldVal(28, 29).as_signed_long()
    +-1
    +
    +
    +
    + +
    + +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/pythonic/fp.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/pythonic/fp.html new file mode 100644 index 0000000000..dfba5ddfce --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/pythonic/fp.html @@ -0,0 +1,1512 @@ + + + + + + + + + + + + + Floating Point — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Floating Point

    +
    +

    Basic FP Term Builders

    +
    +
    +cvc5.pythonic.FP(name, fpsort, ctx=None)
    +

    Return a floating-point constant named name. +fpsort is the floating-point sort. +If ctx=None, then the global context is used.

    +
    >>> x  = FP('x', FPSort(8, 24))
    +>>> is_fp(x)
    +True
    +>>> x.ebits()
    +8
    +>>> x.sort()
    +FPSort(8, 24)
    +>>> word = FPSort(8, 24)
    +>>> x2 = FP('x', word)
    +>>> eq(x, x2)
    +True
    +
    +
    +
    + +
    +
    +cvc5.pythonic.FPs(names, fpsort, ctx=None)
    +

    Return an array of floating-point constants.

    +
    >>> x, y, z = FPs('x y z', FPSort(8, 24))
    +>>> x.sort()
    +FPSort(8, 24)
    +>>> x.sbits()
    +24
    +>>> x.ebits()
    +8
    +>>> fpMul(RNE(), fpAdd(RNE(), x, y), z)
    +fpMul(RNE(), fpAdd(RNE(), x, y), z)
    +
    +
    +
    + +
    +
    +cvc5.pythonic.FPVal(val, exp=None, fps=None, ctx=None)
    +

    Return a floating-point value of value val and sort fps. +If ctx=None, then the global context is used.

    +
    >>> v = FPVal(20.0, FPSort(8, 24))
    +>>> v
    +1.25*(2**4)
    +>>> print("0x%.8x" % v.exponent_as_long())
    +0x00000004
    +>>> v = FPVal(2.25, FPSort(8, 24))
    +>>> v
    +1.125*(2**1)
    +>>> v = FPVal(-2.25, FPSort(8, 24))
    +>>> v
    +-1.125*(2**1)
    +>>> FPVal(-0.0, FPSort(8, 24))
    +-0.0
    +>>> FPVal(0.0, FPSort(8, 24))
    ++0.0
    +>>> FPVal(+0.0, FPSort(8, 24))
    ++0.0
    +
    +
    +
    + +
    +
    +cvc5.pythonic.fpNaN(s)
    +

    Create a SMT floating-point NaN term.

    +
    >>> s = FPSort(8, 24)
    +>>> set_fpa_pretty(True)
    +>>> fpNaN(s)
    +NaN
    +>>> pb = get_fpa_pretty()
    +>>> set_fpa_pretty(False)
    +>>> fpNaN(s)
    +fpNaN(FPSort(8, 24))
    +>>> set_fpa_pretty(pb)
    +
    +
    +
    + +
    +
    +cvc5.pythonic.fpPlusInfinity(s)
    +

    Create a SMT floating-point +oo term.

    +
    >>> s = FPSort(8, 24)
    +>>> pb = get_fpa_pretty()
    +>>> set_fpa_pretty(True)
    +>>> fpPlusInfinity(s)
    ++oo
    +>>> set_fpa_pretty(False)
    +>>> fpPlusInfinity(s)
    +fpPlusInfinity(FPSort(8, 24))
    +>>> set_fpa_pretty(pb)
    +
    +
    +
    + +
    +
    +cvc5.pythonic.fpMinusInfinity(s)
    +

    Create a SMT floating-point -oo term.

    +
    + +
    +
    +cvc5.pythonic.fpInfinity(s, negative)
    +

    Create a SMT floating-point +oo or -oo term.

    +
    + +
    +
    +cvc5.pythonic.fpPlusZero(s)
    +

    Create a SMT floating-point +0.0 term.

    +
    + +
    +
    +cvc5.pythonic.fpMinusZero(s)
    +

    Create a SMT floating-point -0.0 term.

    +
    + +
    +
    +cvc5.pythonic.fpZero(s, negative)
    +

    Create a SMT floating-point +0.0 or -0.0 term.

    +
    + +
    +
    +cvc5.pythonic.FPSort(ebits, sbits, ctx=None)
    +

    Return a SMT floating-point sort of the given sizes. If ctx=None, then the global context is used.

    +
    >>> Single = FPSort(8, 24)
    +>>> Double = FPSort(11, 53)
    +>>> Single
    +FPSort(8, 24)
    +>>> x = Const('x', Single)
    +>>> eq(x, FP('x', FPSort(8, 24)))
    +True
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Float16(ctx=None)
    +

    Floating-point 16-bit (half) sort.

    +
    + +
    +
    +cvc5.pythonic.FloatHalf(ctx=None)
    +

    Floating-point 16-bit (half) sort.

    +
    + +
    +
    +cvc5.pythonic.Float32(ctx=None)
    +

    Floating-point 32-bit (single) sort.

    +
    + +
    +
    +cvc5.pythonic.FloatSingle(ctx=None)
    +

    Floating-point 32-bit (single) sort.

    +
    + +
    +
    +cvc5.pythonic.Float64(ctx=None)
    +

    Floating-point 64-bit (double) sort.

    +
    + +
    +
    +cvc5.pythonic.FloatDouble(ctx=None)
    +

    Floating-point 64-bit (double) sort.

    +
    + +
    +
    +cvc5.pythonic.Float128(ctx=None)
    +

    Floating-point 128-bit (quadruple) sort.

    +
    + +
    +
    +cvc5.pythonic.FloatQuadruple(ctx=None)
    +

    Floating-point 128-bit (quadruple) sort.

    +
    + +
    +
    +

    FP Operators

    +

    See the following operator overloads for building basic floating-point terms:

    + +
    +
    +cvc5.pythonic.fpAbs(a, ctx=None)
    +

    Create a SMT floating-point absolute value expression.

    +
    >>> s = FPSort(8, 24)
    +>>> rm = RNE()
    +>>> x = FPVal(1.0, s)
    +>>> fpAbs(x)
    +fpAbs(1)
    +>>> y = FPVal(-20.0, s)
    +>>> y
    +-1.25*(2**4)
    +>>> fpAbs(y)
    +fpAbs(-1.25*(2**4))
    +>>> fpAbs(-1.25*(2**4))
    +fpAbs(-1.25*(2**4))
    +>>> fpAbs(x).sort()
    +FPSort(8, 24)
    +
    +
    +
    + +
    +
    +cvc5.pythonic.fpNeg(a, ctx=None)
    +

    Create a SMT floating-point addition expression.

    +
    >>> s = FPSort(8, 24)
    +>>> rm = RNE()
    +>>> x = FP('x', s)
    +>>> fpNeg(x)
    +-x
    +>>> fpNeg(x).sort()
    +FPSort(8, 24)
    +
    +
    +
    + +
    +
    +cvc5.pythonic.fpAdd(rm, a, b, ctx=None)
    +

    Create a SMT floating-point addition expression.

    +
    >>> s = FPSort(8, 24)
    +>>> rm = RNE()
    +>>> x = FP('x', s)
    +>>> y = FP('y', s)
    +>>> fpAdd(rm, x, y)
    +fpAdd(RNE(), x, y)
    +>>> fpAdd(RTZ(), x, y) # default rounding mode is RTZ
    +x + y
    +>>> fpAdd(rm, x, y).sort()
    +FPSort(8, 24)
    +
    +
    +
    + +
    +
    +cvc5.pythonic.fpSub(rm, a, b, ctx=None)
    +

    Create a SMT floating-point subtraction expression.

    +
    >>> s = FPSort(8, 24)
    +>>> rm = RNE()
    +>>> x = FP('x', s)
    +>>> y = FP('y', s)
    +>>> fpSub(rm, x, y)
    +fpSub(RNE(), x, y)
    +>>> fpSub(rm, x, y).sort()
    +FPSort(8, 24)
    +
    +
    +
    + +
    +
    +cvc5.pythonic.fpMul(rm, a, b, ctx=None)
    +

    Create a SMT floating-point multiplication expression.

    +
    >>> s = FPSort(8, 24)
    +>>> rm = RNE()
    +>>> x = FP('x', s)
    +>>> y = FP('y', s)
    +>>> fpMul(rm, x, y)
    +fpMul(RNE(), x, y)
    +>>> fpMul(rm, x, y).sort()
    +FPSort(8, 24)
    +
    +
    +
    + +
    +
    +cvc5.pythonic.fpDiv(rm, a, b, ctx=None)
    +

    Create a SMT floating-point division expression.

    +
    >>> s = FPSort(8, 24)
    +>>> rm = RNE()
    +>>> x = FP('x', s)
    +>>> y = FP('y', s)
    +>>> fpDiv(rm, x, y)
    +fpDiv(RNE(), x, y)
    +>>> fpDiv(rm, x, y).sort()
    +FPSort(8, 24)
    +
    +
    +
    + +
    +
    +cvc5.pythonic.fpRem(a, b, ctx=None)
    +

    Create a SMT floating-point remainder expression.

    +
    >>> s = FPSort(8, 24)
    +>>> x = FP('x', s)
    +>>> y = FP('y', s)
    +>>> fpRem(x, y)
    +fpRem(x, y)
    +>>> fpRem(x, y).sort()
    +FPSort(8, 24)
    +
    +
    +
    + +
    +
    +cvc5.pythonic.fpMin(a, b, ctx=None)
    +

    Create a SMT floating-point minimum expression.

    +
    >>> s = FPSort(8, 24)
    +>>> rm = RNE()
    +>>> x = FP('x', s)
    +>>> y = FP('y', s)
    +>>> fpMin(x, y)
    +fpMin(x, y)
    +>>> fpMin(x, y).sort()
    +FPSort(8, 24)
    +
    +
    +
    + +
    +
    +cvc5.pythonic.fpMax(a, b, ctx=None)
    +

    Create a SMT floating-point maximum expression.

    +
    >>> s = FPSort(8, 24)
    +>>> rm = RNE()
    +>>> x = FP('x', s)
    +>>> y = FP('y', s)
    +>>> fpMax(x, y)
    +fpMax(x, y)
    +>>> fpMax(x, y).sort()
    +FPSort(8, 24)
    +
    +
    +
    + +
    +
    +cvc5.pythonic.fpFMA(rm, a, b, c, ctx=None)
    +

    Create a SMT floating-point fused multiply-add expression.

    +
    + +
    +
    +cvc5.pythonic.fpSqrt(rm, a, ctx=None)
    +

    Create a SMT floating-point square root expression.

    +
    + +
    +
    +cvc5.pythonic.fpRoundToIntegral(rm, a, ctx=None)
    +

    Create a SMT floating-point roundToIntegral expression.

    +
    + +
    +
    +cvc5.pythonic.fpIsNaN(a, ctx=None)
    +

    Create a SMT floating-point isNaN expression.

    +
    >>> s = FPSort(8, 24)
    +>>> x = FP('x', s)
    +>>> y = FP('y', s)
    +>>> fpIsNaN(x)
    +fpIsNaN(x)
    +
    +
    +
    + +
    +
    +cvc5.pythonic.fpIsInf(a, ctx=None)
    +

    Create a SMT floating-point isInfinite expression.

    +
    >>> s = FPSort(8, 24)
    +>>> x = FP('x', s)
    +>>> fpIsInf(x)
    +fpIsInf(x)
    +
    +
    +
    + +
    +
    +cvc5.pythonic.fpIsZero(a, ctx=None)
    +

    Create a SMT floating-point isZero expression.

    +
    + +
    +
    +cvc5.pythonic.fpIsNormal(a, ctx=None)
    +

    Create a SMT floating-point isNormal expression.

    +
    + +
    +
    +cvc5.pythonic.fpIsSubnormal(a, ctx=None)
    +

    Create a SMT floating-point isSubnormal expression.

    +
    + +
    +
    +cvc5.pythonic.fpIsNegative(a, ctx=None)
    +

    Create a SMT floating-point isNegative expression.

    +
    + +
    +
    +cvc5.pythonic.fpIsPositive(a, ctx=None)
    +

    Create a SMT floating-point isPositive expression.

    +
    + +
    +
    +cvc5.pythonic.fpLT(a, b, ctx=None)
    +

    Create the SMT floating-point expression other < self.

    +
    >>> x, y = FPs('x y', FPSort(8, 24))
    +>>> fpLT(x, y)
    +x < y
    +>>> (x < y).sexpr()
    +'(fp.lt x y)'
    +
    +
    +
    + +
    +
    +cvc5.pythonic.fpLEQ(a, b, ctx=None)
    +

    Create the SMT floating-point expression other <= self.

    +
    >>> x, y = FPs('x y', FPSort(8, 24))
    +>>> fpLEQ(x, y)
    +x <= y
    +>>> (x <= y).sexpr()
    +'(fp.leq x y)'
    +
    +
    +
    + +
    +
    +cvc5.pythonic.fpGT(a, b, ctx=None)
    +

    Create the SMT floating-point expression other > self.

    +
    >>> x, y = FPs('x y', FPSort(8, 24))
    +>>> fpGT(x, y)
    +x > y
    +>>> (x > y).sexpr()
    +'(fp.gt x y)'
    +
    +
    +
    + +
    +
    +cvc5.pythonic.fpGEQ(a, b, ctx=None)
    +

    Create the SMT floating-point expression other >= self.

    +
    >>> x, y = FPs('x y', FPSort(8, 24))
    +>>> fpGEQ(x, y)
    +x >= y
    +>>> (x >= y).sexpr()
    +'(fp.geq x y)'
    +
    +
    +
    + +
    +
    +cvc5.pythonic.fpEQ(a, b, ctx=None)
    +

    Create the SMT floating-point expression fpEQ(other, self).

    +
    >>> x, y = FPs('x y', FPSort(8, 24))
    +>>> fpEQ(x, y)
    +fpEQ(x, y)
    +>>> fpEQ(x, y).sexpr()
    +'(fp.eq x y)'
    +
    +
    +
    + +
    +
    +cvc5.pythonic.fpNEQ(a, b, ctx=None)
    +

    Create the SMT floating-point expression Not(fpEQ(other, self)).

    +
    >>> x, y = FPs('x y', FPSort(8, 24))
    +>>> fpNEQ(x, y)
    +Not(fpEQ(x, y))
    +>>> (x != y).sexpr()
    +'(distinct x y)'
    +
    +
    +
    + +
    +
    +cvc5.pythonic.fpFP(sgn, exp, sig, ctx=None)
    +

    Create the SMT floating-point value fpFP(sgn, sig, exp) from the three bit-vectors sgn, sig, and exp.

    +
    >>> s = FPSort(8, 24)
    +>>> x = fpFP(BitVecVal(1, 1), BitVecVal(2**7-1, 8), BitVecVal(2**22, 23))
    +>>> print(x)
    +fpToFP(Concat(1, 127, 4194304))
    +>>> xv = FPVal(-1.5, s)
    +>>> print(xv)
    +-1.5
    +>>> slvr = Solver()
    +>>> slvr.add(fpEQ(x, xv))
    +>>> slvr.check()
    +sat
    +>>> xv = FPVal(+1.5, s)
    +>>> print(xv)
    +1.5
    +>>> slvr = Solver()
    +>>> slvr.add(fpEQ(x, xv))
    +>>> slvr.check()
    +unsat
    +
    +
    +
    + +
    +
    +cvc5.pythonic.fpToFP(a1, a2=None, a3=None, ctx=None)
    +

    Create a SMT floating-point conversion expression from other term sorts +to floating-point.

    +

    From a floating-point term with different precision:

    +
    >>> x = FPVal(1.0, Float32())
    +>>> x_db = fpToFP(RNE(), x, Float64())
    +>>> x_db.sort()
    +FPSort(11, 53)
    +
    +
    +

    From a real term:

    +
    >>> x_r = RealVal(1.5)
    +>>> simplify(fpToFP(RNE(), x_r, Float32()))
    +1.5
    +
    +
    +

    From a signed bit-vector term:

    +
    >>> x_signed = BitVecVal(-5, BitVecSort(32))
    +>>> simplify(fpToFP(RNE(), x_signed, Float32()))
    +-1.25*(2**2)
    +
    +
    +
    + +
    +
    +cvc5.pythonic.fpBVToFP(v, sort, ctx=None)
    +

    Create a SMT floating-point conversion expression that represents the +conversion from a bit-vector term to a floating-point term.

    +
    >>> x_bv = BitVecVal(0x3F800000, 32)
    +>>> x_fp = fpBVToFP(x_bv, Float32())
    +>>> x_fp
    +fpToFP(1065353216)
    +>>> simplify(x_fp)
    +1
    +
    +
    +
    + +
    +
    +cvc5.pythonic.fpFPToFP(rm, v, sort, ctx=None)
    +

    Create a SMT floating-point conversion expression that represents the +conversion from a floating-point term to a floating-point term of different precision.

    +
    >>> x_sgl = FPVal(1.0, Float32())
    +>>> x_dbl = fpFPToFP(RNE(), x_sgl, Float64())
    +>>> x_dbl
    +fpToFP(RNE(), 1)
    +>>> simplify(x_dbl)
    +1
    +>>> x_dbl.sort()
    +FPSort(11, 53)
    +
    +
    +
    + +
    +
    +cvc5.pythonic.fpRealToFP(rm, v, sort, ctx=None)
    +

    Create a SMT floating-point conversion expression that represents the +conversion from a real term to a floating-point term.

    +
    >>> x_r = RealVal(1.5)
    +>>> x_fp = fpRealToFP(RNE(), x_r, Float32())
    +>>> x_fp
    +fpToFP(RNE(), 3/2)
    +>>> simplify(x_fp)
    +1.5
    +
    +
    +
    + +
    +
    +cvc5.pythonic.fpSignedToFP(rm, v, sort, ctx=None)
    +

    Create a SMT floating-point conversion expression that represents the +conversion from a signed bit-vector term (encoding an integer) to a floating-point term.

    +
    >>> x_signed = BitVecVal(-5, BitVecSort(32))
    +>>> x_fp = fpSignedToFP(RNE(), x_signed, Float32())
    +>>> x_fp
    +fpToFP(RNE(), 4294967291)
    +>>> simplify(x_fp)
    +-1.25*(2**2)
    +
    +
    +
    + +
    +
    +cvc5.pythonic.fpUnsignedToFP(rm, v, sort, ctx=None)
    +

    Create a SMT floating-point conversion expression that represents the +conversion from an unsigned bit-vector term (encoding an integer) to a floating-point term.

    +
    >>> x_signed = BitVecVal(-5, BitVecSort(32))
    +>>> x_fp = fpUnsignedToFP(RNE(), x_signed, Float32())
    +>>> x_fp
    +fpToFP(RNE(), 4294967291)
    +>>> simplify(x_fp)
    +1*(2**32)
    +
    +
    +
    + +
    +
    +cvc5.pythonic.fpToFPUnsigned(rm, x, s, ctx=None)
    +

    Create a SMT floating-point conversion expression, from unsigned bit-vector to floating-point expression.

    +
    + +
    +
    +cvc5.pythonic.fpToSBV(rm, x, s, ctx=None)
    +

    Create a SMT floating-point conversion expression, from floating-point expression to signed bit-vector.

    +
    >>> x = FP('x', FPSort(8, 24))
    +>>> y = fpToSBV(RTZ(), x, BitVecSort(32))
    +>>> print(is_fp(x))
    +True
    +>>> print(is_bv(y))
    +True
    +>>> print(is_fp(y))
    +False
    +>>> print(is_bv(x))
    +False
    +
    +
    +
    + +
    +
    +cvc5.pythonic.fpToUBV(rm, x, s, ctx=None)
    +

    Create a SMT floating-point conversion expression, from floating-point expression to unsigned bit-vector.

    +
    >>> x = FP('x', FPSort(8, 24))
    +>>> y = fpToUBV(RTZ(), x, BitVecSort(32))
    +>>> print(is_fp(x))
    +True
    +>>> print(is_bv(y))
    +True
    +>>> print(is_fp(y))
    +False
    +>>> print(is_bv(x))
    +False
    +
    +
    +
    + +
    +
    +cvc5.pythonic.fpToReal(x, ctx=None)
    +

    Create a SMT floating-point conversion expression, from floating-point expression to real.

    +
    >>> x = FP('x', FPSort(8, 24))
    +>>> y = fpToReal(x)
    +>>> print(is_fp(x))
    +True
    +>>> print(is_real(y))
    +True
    +>>> print(is_fp(y))
    +False
    +>>> print(is_real(x))
    +False
    +
    +
    +
    + +
    +
    +

    Testers

    +
    +
    +cvc5.pythonic.is_fp_sort(s)
    +

    Return True if s is a SMT floating-point sort.

    +
    >>> is_fp_sort(FPSort(8, 24))
    +True
    +>>> is_fp_sort(IntSort())
    +False
    +
    +
    +
    + +
    +
    +cvc5.pythonic.is_fp(a)
    +

    Return True if a is a SMT floating-point expression.

    +
    >>> b = FP('b', FPSort(8, 24))
    +>>> is_fp(b)
    +True
    +>>> is_fp(b + 1.0)
    +True
    +>>> is_fp(Int('x'))
    +False
    +
    +
    +
    + +
    +
    +cvc5.pythonic.is_fp_value(a)
    +

    Return True if a is a SMT floating-point numeral value.

    +
    >>> b = FP('b', FPSort(8, 24))
    +>>> is_fp_value(b)
    +False
    +>>> b = FPVal(1.0, FPSort(8, 24))
    +>>> b
    +1
    +>>> is_fp_value(b)
    +True
    +
    +
    +
    + +
    +
    +cvc5.pythonic.is_fprm_sort(s)
    +

    Return True if s is a SMT floating-point rounding mode sort.

    +
    >>> is_fprm_sort(FPSort(8, 24))
    +False
    +>>> is_fprm_sort(RNE().sort())
    +True
    +
    +
    +
    + +
    +
    +cvc5.pythonic.is_fprm(a)
    +

    Return True if a is a SMT floating-point rounding mode expression.

    +
    >>> rm = RNE()
    +>>> is_fprm(rm)
    +True
    +>>> rm = 1.0
    +>>> is_fprm(rm)
    +False
    +
    +
    +
    + +
    +
    +cvc5.pythonic.is_fprm_value(a)
    +

    Return True if a is a SMT floating-point rounding mode numeral value.

    +
    + +
    +
    +

    FP Rounding Modes

    +
    +
    +cvc5.pythonic.RoundNearestTiesToEven(ctx=None)
    +

    Round to nearest, with ties broken towards even.

    +

    See Section 4.2 of the IEEE standard <https://doi.org/10.1109/IEEESTD.2019.8766229> +or wikipedia <https://en.wikipedia.org/wiki/Floating-point_arithmetic#Rounding_modes> +for details on rounding modes.

    +
    >>> x, y = FPs('x y', FPSort(8, 24))
    +>>> fpMul(RoundNearestTiesToEven(), x, y)
    +fpMul(RNE(), x, y)
    +
    +
    +
    + +
    +
    +cvc5.pythonic.RNE(ctx=None)
    +

    Round to nearest, with ties broken towards even.

    +

    See Section 4.2 of the IEEE standard <https://doi.org/10.1109/IEEESTD.2019.8766229> +or wikipedia <https://en.wikipedia.org/wiki/Floating-point_arithmetic#Rounding_modes> +for details on rounding modes.

    +
    >>> x, y = FPs('x y', FPSort(8, 24))
    +>>> fpMul(RNE(), x, y)
    +fpMul(RNE(), x, y)
    +
    +
    +
    + +
    +
    +cvc5.pythonic.RoundNearestTiesToAway(ctx=None)
    +

    Round to nearest, with ties broken away from zero.

    +

    See Section 4.2 of the IEEE standard <https://doi.org/10.1109/IEEESTD.2019.8766229> +or wikipedia <https://en.wikipedia.org/wiki/Floating-point_arithmetic#Rounding_modes> +for details on rounding modes.

    +
    >>> x, y = FPs('x y', FPSort(8, 24))
    +>>> fpMul(RoundNearestTiesToAway(), x, y)
    +fpMul(RNA(), x, y)
    +
    +
    +
    + +
    +
    +cvc5.pythonic.RNA(ctx=None)
    +

    Round to nearest, with ties broken away from zero.

    +

    See Section 4.2 of the IEEE standard <https://doi.org/10.1109/IEEESTD.2019.8766229> +or wikipedia <https://en.wikipedia.org/wiki/Floating-point_arithmetic#Rounding_modes> +for details on rounding modes.

    +
    >>> x, y = FPs('x y', FPSort(8, 24))
    +>>> fpMul(RNA(), x, y)
    +fpMul(RNA(), x, y)
    +
    +
    +
    + +
    +
    +cvc5.pythonic.RoundTowardPositive(ctx=None)
    +

    Round towards more positive values.

    +

    See Section 4.2 of the IEEE standard <https://doi.org/10.1109/IEEESTD.2019.8766229> +or wikipedia <https://en.wikipedia.org/wiki/Floating-point_arithmetic#Rounding_modes> +for details on rounding modes.

    +
    >>> x, y = FPs('x y', FPSort(8, 24))
    +>>> fpMul(RoundTowardPositive(), x, y)
    +fpMul(RTP(), x, y)
    +
    +
    +
    + +
    +
    +cvc5.pythonic.RTP(ctx=None)
    +

    Round towards more positive values.

    +

    See Section 4.2 of the IEEE standard <https://doi.org/10.1109/IEEESTD.2019.8766229> +or wikipedia <https://en.wikipedia.org/wiki/Floating-point_arithmetic#Rounding_modes> +for details on rounding modes.

    +
    >>> x, y = FPs('x y', FPSort(8, 24))
    +>>> fpMul(RTP(), x, y)
    +fpMul(RTP(), x, y)
    +
    +
    +
    + +
    +
    +cvc5.pythonic.RoundTowardNegative(ctx=None)
    +

    Round towards more negative values.

    +

    See Section 4.2 of the IEEE standard <https://doi.org/10.1109/IEEESTD.2019.8766229> +or wikipedia <https://en.wikipedia.org/wiki/Floating-point_arithmetic#Rounding_modes> +for details on rounding modes.

    +
    >>> x, y = FPs('x y', FPSort(8, 24))
    +>>> fpMul(RoundTowardNegative(), x, y)
    +fpMul(RTN(), x, y)
    +
    +
    +
    + +
    +
    +cvc5.pythonic.RTN(ctx=None)
    +

    Round towards more negative values.

    +

    See Section 4.2 of the IEEE standard <https://doi.org/10.1109/IEEESTD.2019.8766229> +or wikipedia <https://en.wikipedia.org/wiki/Floating-point_arithmetic#Rounding_modes> +for details on rounding modes.

    +
    >>> x, y = FPs('x y', FPSort(8, 24))
    +>>> fpMul(RTN(), x, y)
    +fpMul(RTN(), x, y)
    +
    +
    +
    + +
    +
    +cvc5.pythonic.RoundTowardZero(ctx=None)
    +

    Round towards zero.

    +

    See Section 4.2 of the IEEE standard <https://doi.org/10.1109/IEEESTD.2019.8766229> +or wikipedia <https://en.wikipedia.org/wiki/Floating-point_arithmetic#Rounding_modes> +for details on rounding modes.

    +
    >>> x, y = FPs('x y', FPSort(8, 24))
    +>>> fpMul(RoundTowardZero(), x, y)
    +x * y
    +
    +
    +
    + +
    +
    +cvc5.pythonic.RTZ(ctx=None)
    +

    Round towards zero.

    +

    See Section 4.2 of the IEEE standard <https://doi.org/10.1109/IEEESTD.2019.8766229> +or wikipedia <https://en.wikipedia.org/wiki/Floating-point_arithmetic#Rounding_modes> +for details on rounding modes.

    +
    >>> x, y = FPs('x y', FPSort(8, 24))
    +>>> fpMul(RTZ(), x, y)
    +x * y
    +
    +
    +
    + +
    +
    +cvc5.pythonic.get_default_rounding_mode(ctx=None)
    +

    Retrieves the global default rounding mode.

    +
    + +
    +
    +cvc5.pythonic.set_default_rounding_mode(rm, ctx=None)
    +

    Set the default rounding mode

    +
    >>> x, y = FPs('x y', Float32())
    +>>> set_default_rounding_mode(RTN())
    +>>> sum1 = x + y
    +>>> set_default_rounding_mode(RTP())
    +>>> sum2 = x + y
    +>>> print((sum1 == sum2).sexpr())
    +(= (fp.add roundTowardNegative x y) (fp.add roundTowardPositive x y))
    +>>> s = SolverFor("QF_FP")
    +>>> s += sum1 != sum2
    +>>> s.check()
    +sat
    +>>> m = s.model()
    +>>> assert str(m[sum1]) != str(m[sum2])
    +
    +
    +

    Note the the FP term builders can take an explicit rounding mode.

    +
    + +
    +
    +cvc5.pythonic.get_default_fp_sort(ctx=None)
    +
    + +
    +
    +cvc5.pythonic.set_default_fp_sort(ebits, sbits, ctx=None)
    +
    + +
    +
    +

    Classes (with overloads)

    +
    +
    +class cvc5.pythonic.FPSortRef(ast, ctx=None)
    +

    Floating-point sort.

    +
    +
    +cast(val)
    +

    Try to cast val as a floating-point expression. +>>> b = FPSort(8, 24) +>>> b.cast(1.0) +1 +>>> b.cast(1.0).sexpr() +‘(fp #b0 #b01111111 #b00000000000000000000000)’

    +
    + +
    +
    +ebits()
    +

    Retrieves the number of bits reserved for the exponent in the FloatingPoint sort self. +>>> b = FPSort(8, 24) +>>> b.ebits() +8

    +
    + +
    +
    +sbits()
    +

    Retrieves the number of bits reserved for the significand in the FloatingPoint sort self. +>>> b = FPSort(8, 24) +>>> b.sbits() +24

    +
    + +
    + +
    +
    +class cvc5.pythonic.FPRef(ast, ctx=None, reverse_children=False)
    +

    Floating-point expressions.

    +
    +
    +__add__(other)
    +

    Create the SMT expression self + other.

    +
    >>> x = FP('x', FPSort(8, 24))
    +>>> y = FP('y', FPSort(8, 24))
    +>>> x + y
    +x + y
    +>>> (x + y).sort()
    +FPSort(8, 24)
    +
    +
    +
    + +
    +
    +__div__(other)
    +

    Create the SMT expression self / other.

    +
    >>> x = FP('x', FPSort(8, 24))
    +>>> y = FP('y', FPSort(8, 24))
    +>>> x / y
    +x / y
    +>>> (x / y).sort()
    +FPSort(8, 24)
    +>>> 10 / y
    +1.25*(2**3) / y
    +
    +
    +
    + +
    +
    +__ge__(other)
    +

    Return self>=value.

    +
    + +
    +
    +__gt__(other)
    +

    Return self>value.

    +
    + +
    +
    +__le__(other)
    +

    Return self<=value.

    +
    + +
    +
    +__lt__(other)
    +

    Return self<value.

    +
    + +
    +
    +__mod__(other)
    +

    Create the SMT expression mod self % other.

    +
    + +
    +
    +__mul__(other)
    +

    Create the SMT expression self * other.

    +
    >>> x = FP('x', FPSort(8, 24))
    +>>> y = FP('y', FPSort(8, 24))
    +>>> x * y
    +x * y
    +>>> (x * y).sort()
    +FPSort(8, 24)
    +>>> 10 * y
    +1.25*(2**3) * y
    +
    +
    +
    + +
    +
    +__neg__()
    +

    Create the SMT expression -self.

    +
    >>> x = FP('x', Float32())
    +>>> -x
    +-x
    +
    +
    +
    + +
    +
    +__pos__()
    +

    Create the SMT expression +self.

    +
    + +
    +
    +__radd__(other)
    +

    Create the SMT expression other + self.

    +
    >>> x = FP('x', FPSort(8, 24))
    +>>> 10 + x
    +1.25*(2**3) + x
    +
    +
    +
    + +
    +
    +__rdiv__(other)
    +

    Create the SMT expression other / self.

    +
    >>> x = FP('x', FPSort(8, 24))
    +>>> y = FP('y', FPSort(8, 24))
    +>>> x / y
    +x / y
    +>>> x / 10
    +x / 1.25*(2**3)
    +
    +
    +
    + +
    +
    +__rmod__(other)
    +

    Create the SMT expression mod other % self.

    +
    + +
    +
    +__rmul__(other)
    +

    Create the SMT expression other * self.

    +
    >>> x = FP('x', FPSort(8, 24))
    +>>> y = FP('y', FPSort(8, 24))
    +>>> x * y
    +x * y
    +>>> x * 10
    +x * 1.25*(2**3)
    +
    +
    +
    + +
    +
    +__rsub__(other)
    +

    Create the SMT expression other - self.

    +
    >>> x = FP('x', FPSort(8, 24))
    +>>> 10 - x
    +1.25*(2**3) - x
    +
    +
    +
    + +
    +
    +__rtruediv__(other)
    +

    Create the SMT expression division other / self.

    +
    + +
    +
    +__sub__(other)
    +

    Create the SMT expression self - other.

    +
    >>> x = FP('x', FPSort(8, 24))
    +>>> y = FP('y', FPSort(8, 24))
    +>>> x - y
    +x - y
    +>>> (x - y).sort()
    +FPSort(8, 24)
    +
    +
    +
    + +
    +
    +__truediv__(other)
    +

    Create the SMT expression division self / other.

    +
    + +
    +
    +as_string()
    +

    Return a SMT floating point expression as a Python string.

    +
    + +
    +
    +ebits()
    +

    Retrieves the number of bits reserved for the exponent in the FloatingPoint expression self. +>>> b = FPSort(8, 24) +>>> b.ebits() +8

    +
    + +
    +
    +sbits()
    +

    Retrieves the number of bits reserved for the exponent in the FloatingPoint expression self. +>>> b = FPSort(8, 24) +>>> b.sbits() +24

    +
    + +
    +
    +sort()
    +

    Return the sort of the floating-point expression self.

    +
    >>> x = FP('1.0', FPSort(8, 24))
    +>>> x.sort()
    +FPSort(8, 24)
    +>>> x.sort() == FPSort(8, 24)
    +True
    +
    +
    +
    + +
    + +
    +
    +class cvc5.pythonic.FPNumRef(ast, ctx=None, reverse_children=False)
    +
    +
    +as_string()
    +

    The string representation of the numeral.

    +
    >>> x = FPVal(20, FPSort(8, 24))
    +>>> print(x.as_string())
    +1.25*(2**4)
    +
    +
    +
    + +
    +
    +exponent(biased=True)
    +

    The exponent of the numeral.

    +
    >>> x = FPVal(2.5, FPSort(8, 24))
    +>>> x.exponent()
    +1
    +
    +
    +
    + +
    +
    +exponent_as_long()
    +

    The exponent of the numeral as a long.

    +
    >>> x = FPVal(2.5, FPSort(8, 24))
    +>>> x.exponent_as_long()
    +1
    +
    +
    +
    + +
    +
    +isInf()
    +

    Indicates whether the numeral is +oo or -oo.

    +
    + +
    +
    +isNaN()
    +

    Indicates whether the numeral is a NaN.

    +
    + +
    +
    +isNegative()
    +

    Indicates whether the numeral is negative.

    +
    + +
    +
    +isNormal()
    +

    Indicates whether the numeral is normal.

    +
    + +
    +
    +isPositive()
    +

    Indicates whether the numeral is positive.

    +
    + +
    +
    +isSubnormal()
    +

    Indicates whether the numeral is subnormal.

    +
    + +
    +
    +isZero()
    +

    Indicates whether the numeral is +zero or -zero.

    +
    + +
    +
    +sign()
    +

    The sign of the numeral.

    +
    >>> x = FPVal(+1.0, FPSort(8, 24))
    +>>> x.sign()
    +False
    +>>> x = FPVal(-1.0, FPSort(8, 24))
    +>>> x.sign()
    +True
    +
    +
    +
    + +
    +
    +significand()
    +

    The significand of the numeral, as a double

    +
    >>> x = FPVal(2.5, FPSort(8, 24))
    +>>> x.significand()
    +1.25
    +
    +
    +
    + +
    +
    +significand_as_long()
    +

    The significand of the numeral as a long.

    +

    This is missing the 1

    +
    >>> x = FPVal(2.5, FPSort(8, 24))
    +>>> x.significand_as_long()
    +2097152
    +
    +
    +
    + +
    + +
    +
    +class cvc5.pythonic.FPRMRef(ast, ctx=None, reverse_children=False)
    +

    Floating-point rounding mode expressions

    +
    +
    +as_string()
    +

    Return a SMT floating point expression as a Python string.

    +
    + +
    + +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/pythonic/internals.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/pythonic/internals.html new file mode 100644 index 0000000000..d70e322776 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/pythonic/internals.html @@ -0,0 +1,262 @@ + + + + + + + + + + + + + Internals — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Internals

    +
    +

    Testers

    +
    +
    +cvc5.pythonic.is_expr(a)
    +

    Return True if a is an SMT expression.

    +
    >>> a = Int('a')
    +>>> is_expr(a)
    +True
    +>>> is_expr(a + 1)
    +True
    +>>> is_expr(IntSort())
    +False
    +>>> is_expr(1)
    +False
    +>>> is_expr(IntVal(1))
    +True
    +>>> x = Int('x')
    +
    +
    +
    + +
    +
    +cvc5.pythonic.is_sort(s)
    +

    Return True if s is an SMT sort.

    +
    >>> is_sort(IntSort())
    +True
    +>>> is_sort(Int('x'))
    +False
    +>>> is_expr(Int('x'))
    +True
    +
    +
    +
    + +
    +
    +cvc5.pythonic.is_app(a)
    +

    Return True if a is an SMT function application.

    +

    Note that, constants are function applications with 0 arguments.

    +
    >>> a = Int('a')
    +>>> is_app(a)
    +True
    +>>> is_app(a + 1)
    +True
    +>>> is_app(IntSort())
    +False
    +>>> is_app(1)
    +False
    +>>> is_app(IntVal(1))
    +True
    +>>> x = Int('x')
    +
    +
    +
    + +
    +
    +cvc5.pythonic.is_app_of(a, k)
    +

    Return True if a is an application of the given kind k.

    +
    >>> x = Int('x')
    +>>> n = x + 1
    +>>> is_app_of(n, Kind.ADD)
    +True
    +>>> is_app_of(n, Kind.MULT)
    +False
    +
    +
    +
    + +
    +
    +

    Exceptions

    +
    +
    +class cvc5.pythonic.SMTException(value)
    +
    +
    +__init__(value)
    +
    + +
    +
    +__str__()
    +

    Return str(self).

    +
    + +
    +
    +__weakref__
    +

    list of weak references to the object (if defined)

    +
    + +
    + +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/pythonic/pythonic.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/pythonic/pythonic.html new file mode 100644 index 0000000000..6db56d5b36 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/pythonic/pythonic.html @@ -0,0 +1,278 @@ + + + + + + + + + + + + + Pythonic API — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Pythonic API

    +

    This API is missing some features from cvc5 and Z3Py.

    +

    It does not (currently) support these cvc5 features:

    +
      +
    • The theory of bags

    • +
    • unsatisfiable cores

    • +
    • syntax-guided synthesis (SyGuS)

    • +
    +

    It does not (currently) support the following features of Z3Py:

    +
      +
    • Patterns for quantifier instantiation

    • +
    • Pseudo-boolean counting constraints: AtMost, AtLeast, …

    • +
    • Special relation classes: PartialOrder, LinearOrder, …

    • +
    • HTML integration

    • +
    • Hooks for user-defined propagation and probing

    • +
    • Fixedpoint API

    • +
    • Finite domains

    • +
    • SMT2 file parsing

    • +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/pythonic/quant.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/pythonic/quant.html new file mode 100644 index 0000000000..25e0794bf2 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/pythonic/quant.html @@ -0,0 +1,387 @@ + + + + + + + + + + + + + Quantifiers — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Quantifiers

    +
    +

    Builders

    +
    +
    +cvc5.pythonic.ForAll(vs, body)
    +

    Create a forall formula.

    +
    >>> f = Function('f', IntSort(), IntSort(), IntSort())
    +>>> x = Int('x')
    +>>> y = Int('y')
    +>>> ForAll([x, y], f(x, y) >= x)
    +ForAll([x, y], f(x, y) >= x)
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Exists(vs, body)
    +

    Create a exists formula.

    +
    >>> f = Function('f', IntSort(), IntSort(), IntSort())
    +>>> x = Int('x')
    +>>> y = Int('y')
    +>>> q = Exists([x, y], f(x, y) >= x)
    +>>> q
    +Exists([x, y], f(x, y) >= x)
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Lambda(vs, body)
    +

    Create a lambda expression.

    +
    >>> f = Function('f', IntSort(), IntSort(), IntSort())
    +>>> mem0 = Array('mem0', IntSort(), IntSort())
    +>>> lo, hi, e, i = Ints('lo hi e i')
    +>>> mem1 = Lambda([i], If(And(lo <= i, i <= hi), e, mem0[i]))
    +>>> mem1
    +Lambda(i, If(And(lo <= i, i <= hi), e, mem0[i]))
    +
    +
    +
    + +
    +
    +

    Testers

    +
    +
    +cvc5.pythonic.is_var(a)
    +

    Return True if a is bound variable.

    +
    >>> x = Int('x')
    +>>> is_var(x)
    +False
    +>>> is_const(x)
    +True
    +>>> is_var(BoolSort())
    +False
    +
    +
    +
    + +
    +
    +cvc5.pythonic.is_quantifier(a)
    +

    Return True if a is an SMT quantifier, including lambda expressions.

    +
    >>> f = Function('f', IntSort(), IntSort())
    +>>> x = Int('x')
    +>>> q = ForAll(x, f(x) == 0)
    +>>> p = Lambda(x, f(x) == 0)
    +>>> is_quantifier(q)
    +True
    +>>> is_quantifier(p)
    +True
    +>>> is_quantifier(f(x))
    +False
    +
    +
    +
    + +
    +
    +

    Classes

    +
    +
    +class cvc5.pythonic.QuantifierRef(ast, ctx=None, reverse_children=False)
    +

    Universally and Existentially quantified formulas.

    +
    +
    +as_ast()
    +

    Return a pointer to the underlying Term object.

    +
    + +
    +
    +body()
    +

    Return the expression being quantified.

    +
    >>> f = Function('f', IntSort(), IntSort())
    +>>> x = Int('x')
    +>>> q = ForAll(x, f(x) == 0)
    +>>> q.body()
    +f(x) == 0
    +
    +
    +
    + +
    +
    +children()
    +

    Return a list containing a single element self.body()

    +
    >>> f = Function('f', IntSort(), IntSort())
    +>>> x = Int('x')
    +>>> q = ForAll(x, f(x) == 0)
    +>>> q.children()
    +[f(x) == 0]
    +
    +
    +
    + +
    +
    +is_exists()
    +

    Return True if self is an existential quantifier.

    +
    >>> f = Function('f', IntSort(), IntSort())
    +>>> x = Int('x')
    +>>> q = ForAll(x, f(x) == 0)
    +>>> q.is_exists()
    +False
    +>>> q = Exists(x, f(x) != 0)
    +>>> q.is_exists()
    +True
    +
    +
    +
    + +
    +
    +is_forall()
    +

    Return True if self is a universal quantifier.

    +
    >>> f = Function('f', IntSort(), IntSort())
    +>>> x = Int('x')
    +>>> q = ForAll(x, f(x) == 0)
    +>>> q.is_forall()
    +True
    +>>> q = Exists(x, f(x) != 0)
    +>>> q.is_forall()
    +False
    +
    +
    +
    + +
    +
    +is_lambda()
    +

    Return True if self is a lambda expression.

    +
    >>> f = Function('f', IntSort(), IntSort())
    +>>> x = Int('x')
    +>>> q = Lambda(x, f(x))
    +>>> q.is_lambda()
    +True
    +>>> q = Exists(x, f(x) != 0)
    +>>> q.is_lambda()
    +False
    +
    +
    +
    + +
    +
    +num_vars()
    +

    Return the number of variables bounded by this quantifier.

    +
    >>> f = Function('f', IntSort(), IntSort(), IntSort())
    +>>> x = Int('x')
    +>>> y = Int('y')
    +>>> q = ForAll([x, y], f(x, y) >= x)
    +>>> q.num_vars()
    +2
    +
    +
    +
    + +
    +
    +sort()
    +

    Return the Boolean sort

    +
    + +
    +
    +var_name(idx)
    +

    Return a string representing a name used when displaying the quantifier.

    +
    >>> f = Function('f', IntSort(), IntSort(), IntSort())
    +>>> x = Int('x')
    +>>> y = Int('y')
    +>>> q = ForAll([x, y], f(x, y) >= x)
    +>>> q.var_name(0)
    +'x'
    +>>> q.var_name(1)
    +'y'
    +
    +
    +
    + +
    +
    +var_sort(idx)
    +

    Return the sort of a bound variable.

    +
    >>> f = Function('f', IntSort(), RealSort(), IntSort())
    +>>> x = Int('x')
    +>>> y = Real('y')
    +>>> q = ForAll([x, y], f(x, y) >= x)
    +>>> q.var_sort(0)
    +Int
    +>>> q.var_sort(1)
    +Real
    +
    +
    +
    + +
    + +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/pythonic/quickstart.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/pythonic/quickstart.html new file mode 100644 index 0000000000..3a8842482e --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/pythonic/quickstart.html @@ -0,0 +1,980 @@ + + + + + + + + + + + + + Quickstart Guide — cvc5 documentation + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Quickstart Guide

    +

    First, we create two constants x and y of sort Real, +and two constants a and b of sort Integer. +Notice that these are symbolic constants, but not actual values.

    +
    x, y = Reals('x y')
    +a, b = Ints('a b')
    +
    +
    +

    We define the following constraints regarding x and y:

    +
    +\[(0 < x) \wedge (0 < y) \wedge (x + y < 1) \wedge (x \leq y)\]
    +

    We check whether there is a solution to these constraints:

    +
    solve(0 < x, 0 < y, x + y < 1, x <= y)
    +
    +
    +

    In this case, there is, so we get output:

    +
    [x = 1/6, y = 1/6]
    +
    +
    +

    We can also get an explicit model (assignment) for the constraints.

    +
    s = Solver()
    +s.add(0 < x, 0 < y, x + y < 1, x <= y)
    +assert sat == s.check()
    +m = s.model()
    +
    +
    +

    With the model, we can evaluate variables and terms:

    +
    print('x:', m[x])
    +print('y:', m[y])
    +print('x - y:', m[x - y])
    +
    +
    +

    This will print:

    +
    x: 1/6
    +y: 1/6
    +x - y: 0
    +
    +
    +

    We can also get these values in other forms:

    +
    print('string x:', str(m[x]))
    +print('decimal x:', m[x].as_decimal(4))
    +print('fraction x:', m[x].as_fraction())
    +print('float x:', float(m[x].as_fraction()))
    +
    +
    +

    Next, we assert the same assertions as above, but with integers. +This time, there is no solution, so “no solution” is printed.

    +
    solve(0 < a, 0 < b, a + b < 1, a <= b)
    +
    +
    +
    +

    Example

    +
    +

    examples/api/python/quickstart.py

    +
      1#!/usr/bin/env python
    +  2###############################################################################
    +  3# Top contributors (to current version):
    +  4#   Yoni Zohar, Aina Niemetz, Alex Ozdemir
    +  5#
    +  6# This file is part of the cvc5 project.
    +  7#
    +  8# Copyright (c) 2009-2024 by the authors listed in the file AUTHORS
    +  9# in the top-level source directory and their institutional affiliations.
    + 10# All rights reserved.  See the file COPYING in the top-level source
    + 11# directory for licensing information.
    + 12# #############################################################################
    + 13#
    + 14# A simple demonstration of the api capabilities of cvc5, adapted from quickstart.cpp
    + 15##
    + 16
    + 17import cvc5
    + 18from cvc5 import Kind
    + 19
    + 20if __name__ == "__main__":
    + 21  # Create a term manager
    + 22  #! [docs-python-quickstart-0 start]
    + 23  tm = cvc5.TermManager()
    + 24  #! [docs-python-quickstart-0 end]
    + 25  # Create a solver
    + 26  #! [docs-python-quickstart-1 start]
    + 27  solver = cvc5.Solver(tm)
    + 28  #! [docs-python-quickstart-1 end]
    + 29
    + 30  # We will ask the solver to produce models and unsat cores,
    + 31  # hence these options should be turned on.
    + 32  #! [docs-python-quickstart-2 start]
    + 33  solver.setOption("produce-models", "true")
    + 34  solver.setOption("produce-unsat-cores", "true")
    + 35  #! [docs-python-quickstart-2 end]
    + 36
    + 37  # The simplest way to set a logic for the solver is to choose "ALL".
    + 38  # This enables all logics in the solver.
    + 39  # Alternatively, "QF_ALL" enables all logics without quantifiers.
    + 40  # To optimize the solver's behavior for a more specific logic,
    + 41  # use the logic name, e.g. "QF_BV" or "QF_AUFBV".
    + 42
    + 43  # Set the logic
    + 44  #! [docs-python-quickstart-3 start]
    + 45  solver.setLogic("ALL")
    + 46  #! [docs-python-quickstart-3 end]
    + 47
    + 48  # In this example, we will define constraints over reals and integers.
    + 49  # Hence, we first obtain the corresponding sorts.
    + 50  #! [docs-python-quickstart-4 start]
    + 51  realSort = tm.getRealSort()
    + 52  intSort = tm.getIntegerSort()
    + 53  #! [docs-python-quickstart-4 end]
    + 54
    + 55  # x and y will be real variables, while a and b will be integer variables.
    + 56  # Formally, their python type is Term,
    + 57  # and they are called "constants" in SMT jargon:
    + 58  #! [docs-python-quickstart-5 start]
    + 59  x = tm.mkConst(realSort, "x")
    + 60  y = tm.mkConst(realSort, "y")
    + 61  a = tm.mkConst(intSort, "a")
    + 62  b = tm.mkConst(intSort, "b")
    + 63  #! [docs-python-quickstart-5 end]
    + 64
    + 65  # Our constraints regarding x and y will be:
    + 66  #
    + 67  #   (1)  0 < x
    + 68  #   (2)  0 < y
    + 69  #   (3)  x + y < 1
    + 70  #   (4)  x <= y
    + 71  #
    + 72
    + 73  #! [docs-python-quickstart-6 start]
    + 74  # Formally, constraints are also terms. Their sort is Boolean.
    + 75  # We will construct these constraints gradually,
    + 76  # by defining each of their components.
    + 77  # We start with the constant numerals 0 and 1:
    + 78  zero = tm.mkReal(0)
    + 79  one = tm.mkReal(1)
    + 80
    + 81  # Next, we construct the term x + y
    + 82  xPlusY = tm.mkTerm(Kind.ADD, x, y)
    + 83
    + 84  # Now we can define the constraints.
    + 85  # They use the operators +, <=, and <.
    + 86  # In the API, these are denoted by Plus, Leq, and Lt.
    + 87  constraint1 = tm.mkTerm(Kind.LT, zero, x)
    + 88  constraint2 = tm.mkTerm(Kind.LT, zero, y)
    + 89  constraint3 = tm.mkTerm(Kind.LT, xPlusY, one)
    + 90  constraint4 = tm.mkTerm(Kind.LEQ, x, y)
    + 91
    + 92  # Now we assert the constraints to the solver.
    + 93  solver.assertFormula(constraint1)
    + 94  solver.assertFormula(constraint2)
    + 95  solver.assertFormula(constraint3)
    + 96  solver.assertFormula(constraint4)
    + 97  #! [docs-python-quickstart-6 end]
    + 98
    + 99  # Check if the formula is satisfiable, that is,
    +100  # are there real values for x and y that satisfy all the constraints?
    +101  #! [docs-python-quickstart-7 start]
    +102  r1 = solver.checkSat()
    +103  #! [docs-python-quickstart-7 end]
    +104
    +105  # The result is either SAT, UNSAT, or UNKNOWN.
    +106  # In this case, it is SAT.
    +107  #! [docs-python-quickstart-8 start]
    +108  print("expected: sat")
    +109  print("result: ", r1)
    +110  #! [docs-python-quickstart-8 end]
    +111
    +112  # We can get the values for x and y that satisfy the constraints.
    +113  #! [docs-python-quickstart-9 start]
    +114  xVal = solver.getValue(x)
    +115  yVal = solver.getValue(y)
    +116  #! [docs-python-quickstart-9 end]
    +117
    +118  # It is also possible to get values for compound terms,
    +119  # even if those did not appear in the original formula.
    +120  #! [docs-python-quickstart-10 start]
    +121  xMinusY = tm.mkTerm(Kind.SUB, x, y)
    +122  xMinusYVal = solver.getValue(xMinusY)
    +123  #! [docs-python-quickstart-10 end]
    +124
    +125  # We can now obtain the values as python values
    +126  #! [docs-python-quickstart-11 start]
    +127  xPy = xVal.getRealValue()
    +128  yPy = yVal.getRealValue()
    +129  xMinusYPy = xMinusYVal.getRealValue()
    +130
    +131  print("value for x: ", xPy)
    +132  print("value for y: ", yPy)
    +133  print("value for x - y: ", xMinusYPy)
    +134  #! [docs-python-quickstart-11 end]
    +135
    +136  # Another way to independently compute the value of x - y would be
    +137  # to use the python minus operator instead of asking the solver.
    +138  # However, for more complex terms,
    +139  # it is easier to let the solver do the evaluation.
    +140  #! [docs-python-quickstart-12 start]
    +141  xMinusYComputed = xPy - yPy
    +142  if xMinusYComputed == xMinusYPy:
    +143    print("computed correctly")
    +144  else:
    +145    print("computed incorrectly")
    +146  #! [docs-python-quickstart-12 end]
    +147
    +148  # Further, we can convert the values to strings
    +149  #! [docs-python-quickstart-13 start]
    +150  xStr = str(xPy)
    +151  yStr = str(yPy)
    +152  xMinusYStr = str(xMinusYPy)
    +153  #! [docs-python-quickstart-13 end]
    +154
    +155  # Next, we will check satisfiability of the same formula,
    +156  # only this time over integer variables a and b.
    +157
    +158  # We start by resetting assertions added to the solver.
    +159  #! [docs-python-quickstart-14 start]
    +160  solver.resetAssertions()
    +161  #! [docs-python-quickstart-14 end]
    +162
    +163  # Next, we assert the same assertions above with integers.
    +164  # This time, we inline the construction of terms
    +165  # to the assertion command.
    +166  #! [docs-python-quickstart-15 start]
    +167  solver.assertFormula(tm.mkTerm(Kind.LT, tm.mkInteger(0), a))
    +168  solver.assertFormula(tm.mkTerm(Kind.LT, tm.mkInteger(0), b))
    +169  solver.assertFormula(
    +170      tm.mkTerm(
    +171          Kind.LT, tm.mkTerm(Kind.ADD, a, b), tm.mkInteger(1)))
    +172  solver.assertFormula(tm.mkTerm(Kind.LEQ, a, b))
    +173  #! [docs-python-quickstart-15 end]
    +174
    +175  # We check whether the revised assertion is satisfiable.
    +176  #! [docs-python-quickstart-16 start]
    +177  r2 = solver.checkSat()
    +178  #! [docs-python-quickstart-16 end]
    +179
    +180  # This time the formula is unsatisfiable
    +181  #! [docs-python-quickstart-17 start]
    +182  print("expected: unsat")
    +183  print("result:", r2)
    +184  #! [docs-python-quickstart-17 end]
    +185
    +186  # We can query the solver for an unsatisfiable core, i.e., a subset
    +187  # of the assertions that is already unsatisfiable.
    +188  #! [docs-python-quickstart-18 start]
    +189  unsatCore = solver.getUnsatCore()
    +190  print("unsat core size:", len(unsatCore))
    +191  print("unsat core:", unsatCore)
    +192  #! [docs-python-quickstart-18 end]
    +
    +
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/pythonic/sequence.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/pythonic/sequence.html new file mode 100644 index 0000000000..7ab3e3c868 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/pythonic/sequence.html @@ -0,0 +1,358 @@ + + + + + + + + + + + + + Sequences — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Sequences

    +
    +

    Basic Sequence Term Builders

    +
    +
    +cvc5.pythonic.SeqSort(s)
    +

    Create a sequence sort over elements provided in the argument +>>> s = SeqSort(IntSort()) +>>> s == Unit(IntVal(1)).sort() +True

    +
    + +
    +
    +cvc5.pythonic.Unit(a)
    +

    Create a singleton sequence

    +
    >>> i = Unit(IntVal(1))
    +>>> i.sort()
    +(Seq Int)
    +
    +
    +
    + +
    +
    +

    Sequence Operators

    +
    +
    +cvc5.pythonic.Empty(s)
    +

    Create the empty sequence of the given sort

    +
    >>> e = Empty(StringSort())
    +>>> e2 = StringVal("")
    +>>> print(e.eq(e2))
    +True
    +>>> e3 = Empty(SeqSort(IntSort()))
    +>>> print(e3)
    +(as seq.empty (Seq Int))()
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Length(s, ctx=None)
    +

    obtain the length of a string or sequence s

    +
    >>> s = StringVal('s')
    +>>> l = Length(s)
    +>>> simplify(l)
    +1
    +
    +
    +
    + +
    +
    +cvc5.pythonic.SubSeq(s, offset, length)
    +

    Extract subsequence starting at offset

    +
    >>> seq = Concat(Unit(IntVal(1)),Unit(IntVal(2)))
    +>>> simplify(SubSeq(seq,1,1))
    +(seq.unit 2)()
    +>>> simplify(SubSeq(seq,1,0))
    +(as seq.empty (Seq Int))()
    +
    +
    +
    + +
    +
    +cvc5.pythonic.SeqUpdate(s, t, i)
    +

    Update a sequence s by replacing its content starting at index i with sequence t.

    +
    >>> lst = Unit(IntVal(1)) + Unit(IntVal(2)) + Unit(IntVal(3))
    +>>> simplify(lst)
    +(seq.++ (seq.unit 1) (seq.unit 2) (seq.unit 3))()
    +>>> simplify(SeqUpdate(lst,Unit(IntVal(4)),2))
    +(seq.++ (seq.unit 1) (seq.unit 2) (seq.unit 4))()
    +>>> simplify(SeqUpdate(lst,Unit(IntVal(1)),4))
    +(seq.++ (seq.unit 1) (seq.unit 2) (seq.unit 3))()
    +
    +
    +
    + +

    See the following operator overload for sequence terms:

    + +
    +
    +

    Classes (with overloads)

    +
    +
    +class cvc5.pythonic.SeqSortRef(ast, ctx=None)
    +
    +
    +elem_sort()
    +

    Get the element sort for this sequence

    +
    >>> SeqSort(IntSort()).elem_sort()
    +Int
    +>>> SeqSort(SeqSort(IntSort())).elem_sort()
    +(Seq Int)
    +
    +
    +
    + +
    +
    +is_string()
    +

    Determine if sort is a string

    +
    >>> s = StringSort()
    +>>> s.is_string()
    +True
    +>>> s = SeqSort(IntSort())
    +>>> s.is_string()
    +False
    +
    +
    +
    + +
    + +
    +
    +class cvc5.pythonic.SeqRef(ast, ctx=None, reverse_children=False)
    +

    Sequence Expressions

    +
    +
    +__add__(other)
    +

    Concatenation of two sequences.

    +
    >>> s,t = Consts('s t',SeqSort(RealSort()))
    +>>> s+t
    +Concat(s, t)
    +>>> (s+t).sort()
    +(Seq Real)
    +
    +
    +
    + +
    +
    +__getitem__(i)
    +

    Return the SMT expression self[arg]

    +
    >>> seq = Const('seq',SeqSort(IntSort()))
    +>>> seq[0]
    +seq [] 0
    +>>> seq[0].sort()
    +Int
    +
    +
    +
    + +
    +
    +as_string()
    +

    Return a string representation of sequence expression.

    +
    >>> s = Unit(IntVal(1)) + Unit(IntVal(2))
    +>>> s.as_string()
    +'(seq.++ (seq.unit 1) (seq.unit 2))'
    +>>> x = Unit(RealVal(1.5))
    +>>> print(x.as_string())
    +(seq.unit (/ 3 2))
    +
    +
    +
    + +
    +
    +at(i)
    +

    Return the sequence at index i

    +
    >>> seq = Const('seq',SeqSort(IntSort()))
    +>>> seq.at(0)
    +At(seq, 0)
    +>>> seq.at(0).sort()
    +(Seq Int)
    +
    +
    +
    + +
    +
    +is_string_value()
    +

    Return True if self is a string value

    +
    >>> s = String('s')
    +>>> s.is_string_value()
    +False
    +>>> t = StringVal('t')
    +>>> t.is_string_value()
    +True
    +
    +
    +
    + +
    + +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/pythonic/set.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/pythonic/set.html new file mode 100644 index 0000000000..26a4d9c6e4 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/pythonic/set.html @@ -0,0 +1,444 @@ + + + + + + + + + + + + + Sets — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Sets

    +
    +

    Basic Set Term Builders

    +
    +
    +cvc5.pythonic.SetSort(s)
    +

    Create a set sort over element sort s

    +
    + +
    +
    +cvc5.pythonic.Set(name, elem_sort)
    +

    Creates a symbolic set of elements

    +
    + +
    +
    +cvc5.pythonic.EmptySet(s)
    +

    Create the empty set

    +
    >>> EmptySet(IntSort())
    +Empty(Set(Int))
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Singleton(s)
    +

    The single element set of just e

    +
    >>> Singleton(IntVal(1))
    +Singleton(1)
    +
    +
    +
    + +
    +
    +cvc5.pythonic.FullSet(s)
    +

    Create the full set

    +
    >>> FullSet(IntSort())
    +Full(Set(Int))
    +
    +
    +
    + +
    +
    +

    Set Operators

    +
    +
    +cvc5.pythonic.SetUnion(*args)
    +

    Take the union of sets

    +
    >>> a = Const('a', SetSort(IntSort()))
    +>>> b = Const('b', SetSort(IntSort()))
    +>>> SetUnion(a, b)
    +SetUnion(a, b)
    +
    +
    +
    + +
    +
    +cvc5.pythonic.SetIntersect(*args)
    +

    Take the intersection of sets

    +
    >>> a = Const('a', SetSort(IntSort()))
    +>>> b = Const('b', SetSort(IntSort()))
    +>>> SetIntersect(a, b)
    +SetIntersect(a, b)
    +
    +
    +
    + +
    +
    +cvc5.pythonic.SetAdd(s, e)
    +

    Add element e to set s

    +
    >>> a = Const('a', SetSort(IntSort()))
    +>>> SetAdd(a, 1)
    +SetAdd(a, 1)
    +>>> SetAdd(a, 1).arg(0)
    +a
    +
    +
    +
    + +
    +
    +cvc5.pythonic.SetDel(s, e)
    +

    Remove element e to set s

    +
    >>> a = Const('a', SetSort(IntSort()))
    +>>> SetDel(a, 1)
    +SetDifference(a, Singleton(1))
    +
    +
    +
    + +
    +
    +cvc5.pythonic.SetComplement(s)
    +

    The complement of set s

    +
    >>> a = Const('a', SetSort(IntSort()))
    +>>> SetComplement(a)
    +SetComplement(a)
    +
    +
    +
    + +
    +
    +cvc5.pythonic.SetDifference(a, b)
    +

    The set difference of a and b

    +
    >>> a = Const('a', SetSort(IntSort()))
    +>>> b = Const('b', SetSort(IntSort()))
    +>>> SetDifference(a, b)
    +SetDifference(a, b)
    +
    +
    +
    + +
    +
    +cvc5.pythonic.SetMinus(a, b)
    +

    The set difference of a and b

    +
    >>> a = Const('a', SetSort(IntSort()))
    +>>> b = Const('b', SetSort(IntSort()))
    +>>> SetMinus(a, b)
    +SetDifference(a, b)
    +
    +
    +
    + +
    +
    +cvc5.pythonic.IsMember(e, s)
    +

    Check if e is a member of set s

    +
    >>> a = Const('a', SetSort(IntSort()))
    +>>> IsMember(1, a)
    +IsMember(1, a)
    +
    +
    +
    + +
    +
    +cvc5.pythonic.IsSubset(a, b)
    +

    Check if a is a subset of b

    +
    >>> a = Const('a', SetSort(IntSort()))
    +>>> b = Const('b', SetSort(IntSort()))
    +>>> IsSubset(a, b)
    +IsSubset(a, b)
    +
    +
    +
    + +

    See the following operator overload for set terms:

    + +
    +
    +

    Classes (with overloads)

    +
    +
    +class cvc5.pythonic.SetSortRef(ast, ctx=None)
    +

    Array sorts.

    +
    +
    +domain()
    +

    Return the domain of the set sort self.

    +
    >>> A = SetSort(IntSort())
    +>>> A.domain()
    +Int
    +
    +
    +
    + +
    +
    +range()
    +

    Return the “range” of the set sort self. +Included for compatibility with arrays.

    +
    >>> A = SetSort(IntSort())
    +>>> A.range()
    +Bool
    +
    +
    +
    + +
    + +
    +
    +class cvc5.pythonic.SetRef(ast, ctx=None, reverse_children=False)
    +

    Array expressions.

    +
    +
    +__and__(other)
    +

    Intersection

    +
    >>> a = Const('a', SetSort(IntSort()))
    +>>> b = Const('b', SetSort(IntSort()))
    +>>> a & b
    +SetIntersect(a, b)
    +
    +
    +
    + +
    +
    +__getitem__(arg)
    +

    Return the SMT expression self[arg]. +Included for compatibility with arrays.

    +
    >>> a = Set('a', IntSort())
    +>>> i = Int('i')
    +>>> a[i]
    +IsMember(i, a)
    +
    +
    +
    + +
    +
    +__or__(other)
    +

    Union

    +
    >>> a = Const('a', SetSort(IntSort()))
    +>>> b = Const('b', SetSort(IntSort()))
    +>>> a | b
    +SetUnion(a, b)
    +
    +
    +
    + +
    +
    +default()
    +

    Always returns false.

    +

    Included for compatibility with Arrays.

    +
    >>> Set('a', IntSort()).default()
    +False
    +
    +
    +
    + +
    +
    +domain()
    +

    Shorthand for self.sort().domain().

    +
    >>> a = Set('a', IntSort())
    +>>> a.domain()
    +Int
    +
    +
    +
    + +
    +
    +range()
    +

    Shorthand for self.sort().range(). +Included for compatibility with arrays.

    +
    >>> a = Set('a', IntSort())
    +>>> a.range()
    +Bool
    +
    +
    +
    + +
    +
    +sort()
    +

    Return the set sort of the set expression self.

    +
    >>> a = Set('a', IntSort())
    +>>> a.sort()
    +Set(Int)
    +
    +
    +
    + +
    + +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/pythonic/solver.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/pythonic/solver.html new file mode 100644 index 0000000000..314200c785 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/pythonic/solver.html @@ -0,0 +1,968 @@ + + + + + + + + + + + + + Solvers & Results — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Solvers & Results

    +
    +

    Simple Solving

    +
    +
    +cvc5.pythonic.solve(*args, **kwargs)
    +

    Solve the constraints *args.

    +

    This is a simple function for creating demonstrations. It creates a solver, +configure it using the options in kwargs, adds the constraints +in args, and invokes check.

    +
    >>> a = Int('a')
    +>>> solve(a > 0, a < 2)
    +[a = 1]
    +>>> solve(a > 0, a < 2, show=True)
    +Problem:
    +[a > 0, a < 2]
    +Solution:
    +[a = 1]
    +
    +
    +
    + +
    +
    +cvc5.pythonic.solve_using(s, *args, **kwargs)
    +

    Solve the constraints *args using solver s.

    +

    This is a simple function for creating demonstrations. +It is similar to solve, but it uses the given solver s. +It configures solver s using the options in kwargs, +adds the constraints in args, and invokes check.

    +
    >>> a = Int('a')
    +>>> s = Solver()
    +>>> solve_using(s, a > 0, a < 2)
    +[a = 1]
    +>>> solve_using(s, a != 1, show=True)
    +Problem:
    +[a > 0, a < 2, a != 1]
    +no solution
    +
    +
    +
    + +
    +
    +cvc5.pythonic.prove(claim, **keywords)
    +

    Try to prove the given claim.

    +

    This is a simple function for creating demonstrations. It tries to prove +claim by showing the negation is unsatisfiable.

    +
    >>> p, q = Bools('p q')
    +>>> prove(Not(And(p, q)) == Or(Not(p), Not(q)))
    +proved
    +>>> prove(p == True)
    +counterexample
    +[p = False]
    +>>> prove(p == True, show=True)
    +[Not(p == True)]
    +counterexample
    +[p = False]
    +
    +
    +
    + +
    +
    +cvc5.pythonic.is_tautology(taut)
    +

    Return whether these constraints hold for all assignments.

    +

    Prints nothing.

    +
    >>> p, q = Bools('p q')
    +>>> is_tautology(Not(And(p, q)) == Or(Not(p), Not(q)))
    +True
    +
    +
    +
    + +
    +
    +

    The Solver Class

    +
    +
    +cvc5.pythonic.SolverFor(logic, ctx=None, logFile=None)
    +

    Create a solver customized for the given logic.

    +

    The parameter logic is a string. It should be the name of an SMT-LIB +logic. +See https://smtlib.cs.uiowa.edu/ for the name of all available logics.

    +
    + +
    +
    +cvc5.pythonic.SimpleSolver(ctx=None, logFile=None)
    +

    Return a simple general purpose solver.

    +
    >>> s = SimpleSolver()
    +>>> x = Int('x')
    +>>> s.add(x > 0)
    +>>> s.check()
    +sat
    +
    +
    +
    + +
    +
    +class cvc5.pythonic.Solver(logic=None, ctx=None, logFile=None)
    +

    Solver API provides methods for implementing the main SMT 2.0 commands:

    +
      +
    • push,

    • +
    • pop,

    • +
    • check,

    • +
    • get-model,

    • +
    • etc.

    • +
    +
    +
    +__iadd__(fml)
    +

    Assert constraints into the solver.

    +
    >>> x = Int('x')
    +>>> s = Solver()
    +>>> s += x > 0
    +>>> s += x < 2
    +>>> s
    +[x > 0, x < 2]
    +
    +
    +
    + +
    +
    +__init__(logic=None, ctx=None, logFile=None)
    +
    + +
    +
    +__repr__()
    +

    Return a formatted string with all added constraints.

    +
    + +
    +
    +__weakref__
    +

    list of weak references to the object (if defined)

    +
    + +
    +
    +add(*args)
    +

    Assert constraints into the solver.

    +
    >>> x = Int('x')
    +>>> s = Solver()
    +>>> s.add(x > 0, x < 2)
    +>>> s
    +[x > 0, x < 2]
    +
    +
    +
    + +
    +
    +append(*args)
    +

    Assert constraints into the solver.

    +
    >>> x = Int('x')
    +>>> s = Solver()
    +>>> s.append(x > 0, x < 2)
    +>>> s
    +[x > 0, x < 2]
    +
    +
    +
    + +
    +
    +assert_exprs(*args)
    +

    Assert constraints into the solver.

    +
    >>> x = Int('x')
    +>>> s = Solver()
    +>>> s.assert_exprs(x > 0, x < 2)
    +>>> s
    +[x > 0, x < 2]
    +
    +
    +
    + +
    +
    +assertions()
    +

    Return an AST vector containing all added constraints.

    +
    >>> s = Solver()
    +>>> s.assertions()
    +[]
    +>>> a = Int('a')
    +>>> s.add(a > 0)
    +>>> s.add(a < 10)
    +>>> s.assertions()
    +[a > 0, a < 10]
    +
    +
    +
    + +
    +
    +check(*assumptions)
    +

    Check whether the assertions in the given solver plus the optional +assumptions are consistent or not.

    +
    >>> x = Int('x')
    +>>> s = Solver()
    +>>> s.check()
    +sat
    +>>> s.add(x > 0, x < 2)
    +>>> s.check()
    +sat
    +>>> s.model().eval(x)
    +1
    +>>> s.add(x < 1)
    +>>> s.check()
    +unsat
    +>>> s.resetAssertions()
    +
    +
    +
    + +
    +
    +getOption(name)
    +

    Get the current value of an option from the solver. The value is +returned as a string. For type-safe querying use getOptionInfo().

    +
    >>> s = Solver()
    +>>> s.setOption(incremental=True)
    +>>> s.getOption("incremental")
    +'true'
    +
    +
    +
    + +
    +
    +getOptionInfo(name)
    +

    Get the current value of an option from the solver. The value is +returned as a string. For type-safe querying use getOptionInfo().

    +
    >>> s = Solver()
    +>>> s.setOption(incremental=False)
    +>>> s.getOptionInfo("incremental")
    +{'name': 'incremental', 'aliases': [], 'setByUser': True, 'type': <class 'bool'>, 'current': False, 'default': True}
    +
    +
    +
    + +
    +
    +getOptionNames()
    +

    Get all option names that can be used with getOption(), +setOption() and getOptionInfo().

    +
    >>> s = Solver()
    +>>> s.getOptionNames()[:2]
    +['abstract-values', 'ackermann']
    +
    +
    +
    + +
    +
    +initFromLogic()
    +

    Create the base-API solver from the logic

    +
    + +
    +
    +insert(*args)
    +

    Assert constraints into the solver.

    +
    >>> x = Int('x')
    +>>> s = Solver()
    +>>> s.insert(x > 0, x < 2)
    +>>> s
    +[x > 0, x < 2]
    +
    +
    +
    + +
    +
    +model()
    +

    Return a model for the last check().

    +

    This function raises an exception if +a model is not available (e.g., last check() returned unsat).

    +
    >>> s = Solver()
    +>>> a = Int('a')
    +>>> s.add(a + 2 == 0)
    +>>> s.check()
    +sat
    +>>> s.model()
    +[a = -2]
    +
    +
    +
    + +
    +
    +num_scopes()
    +

    Return the current number of backtracking points.

    +
    >>> s = Solver()
    +>>> s.num_scopes()
    +0
    +>>> s.push()
    +>>> s.num_scopes()
    +1
    +>>> s.push()
    +>>> s.num_scopes()
    +2
    +>>> s.pop()
    +>>> s.num_scopes()
    +1
    +
    +
    +
    + +
    +
    +pop(num=1)
    +

    Backtrack num backtracking points.

    +
    >>> x = Int('x')
    +>>> s = Solver()
    +>>> s.add(x > 0)
    +>>> s
    +[x > 0]
    +>>> s.push()
    +>>> s.add(x < 1)
    +>>> s
    +[x > 0, x < 1]
    +>>> s.check()
    +unsat
    +>>> s.pop()
    +>>> s.check()
    +sat
    +>>> s
    +[x > 0]
    +
    +
    +
    + +
    +
    +proof()
    +

    Return a proof for the last check().

    +

    This function raises an exception if +a proof is not available (e.g., last check() does not return unsat).

    +
    >>> s = Solver()
    +>>> s.set('produce-proofs','true')
    +>>> a = Int('a')
    +>>> s.add(a + 2 == 0)
    +>>> s.check()
    +sat
    +>>> try:
    +...   s.proof()
    +... except RuntimeError:
    +...   print("failed to get proof (last `check()` must have returned unsat)")
    +failed to get proof (last `check()` must have returned unsat)
    +>>> s.add(a == 0)
    +>>> s.check()
    +unsat
    +>>> s.proof()
    +(SCOPE: Not(And(a + 2 == 0, a == 0)),
    + (SCOPE: Not(And(a + 2 == 0, a == 0)),
    +  [a + 2 == 0, a == 0],
    +  (EQ_RESOLVE: False,
    +   (ASSUME: a == 0, [a == 0]),
    +   (MACRO_SR_EQ_INTRO: (a == 0) == False,
    +    [a == 0, 7, 12],
    +    (EQ_RESOLVE: a == -2,
    +     (ASSUME: a + 2 == 0, [a + 2 == 0]),
    +     (MACRO_SR_EQ_INTRO: (a + 2 == 0) == (a == -2),
    +      [a + 2 == 0, 7, 12]))))))
    +
    +
    +
    + +
    +
    +push()
    +

    Create a backtracking point.

    +
    >>> x = Int('x')
    +>>> s = Solver()
    +>>> s.add(x > 0)
    +>>> s
    +[x > 0]
    +>>> s.push()
    +>>> s.add(x < 1)
    +>>> s
    +[x > 0, x < 1]
    +>>> s.check()
    +unsat
    +>>> s.pop()
    +>>> s.check()
    +sat
    +>>> s
    +[x > 0]
    +
    +
    +
    + +
    +
    +reason_unknown()
    +

    Return a string describing why the last check() returned unknown.

    +
    >>> x = Int('x')
    +>>> s = SimpleSolver()
    +
    +
    +
    + +
    +
    +reset()
    +

    Fully reset the solver. This actually destroys the solver object in +the context and recreates this. This invalidates all objects created +within this context and using them will most likely crash.

    +
    >>> s = Solver()
    +>>> x = Int('x')
    +>>> s.add(x > 0)
    +>>> s.check()
    +sat
    +>>> s.reset()
    +>>> s.setOption(incremental=True)
    +
    +
    +
    + +
    +
    +resetAssertions()
    +

    Remove all asserted constraints and backtracking points created +using push().

    +
    >>> x = Int('x')
    +>>> s = Solver()
    +>>> s.add(x > 0)
    +>>> s
    +[x > 0]
    +>>> s.resetAssertions()
    +>>> s
    +[]
    +
    +
    +
    + +
    +
    +set(*args, **kwargs)
    +

    Set an option on the solver. Wraps setOption().

    +
    >>> s = Solver()
    +>>> s.set(incremental=True)
    +>>> s.set('incremental', 'true')
    +
    +
    +
    + +
    +
    +setOption(name=None, value=None, **kwargs)
    +

    Set options on the solver. Options can either be set via the name +and value arguments in the form setOption('foo', 'bar'), or as +keyword arguments using the syntax setOption(foo='bar'). +The option value is passed as a string internally. Boolean values are +properly converted manually, all other types are convertes using +str().

    +
    >>> s = Solver()
    +>>> s.setOption('incremental', True)
    +>>> s.setOption(incremental='true')
    +
    +
    +
    + +
    +
    +sexpr()
    +

    Return a formatted string (in Lisp-like format) with all added +constraints. We say the string is in s-expression format.

    +
    >>> x = Int('x')
    +>>> s = Solver()
    +>>> s.add(x > 0)
    +>>> s.add(x < 2)
    +>>> r = s.sexpr()
    +
    +
    +
    + +
    +
    +statistics()
    +

    Return the statistics of this solver.

    +
    >>> c = Context()
    +>>> s = Solver(ctx=c)
    +>>> a = Int('a', c)
    +>>> s.add(a == 0)
    +>>> s.check()
    +sat
    +>>> stats = s.statistics()
    +>>> stats['cvc5::CONSTANT']
    +{'default': True, 'internal': False, 'value': {}}
    +>>> len(stats.get()) < 10
    +True
    +>>> len(stats.get(True, True)) > 30
    +True
    +
    +
    +
    + +
    +
    +unsat_core()
    +

    Return a subset (as a list of Bool expressions) of the +assertions and assumptions provided to the last check().

    +

    To enable this, set the option “produce-unsat-cores” to true.

    +
    >>> a,b,c = Bools('a b c')
    +>>> s = Solver()
    +>>> s.set('produce-unsat-cores','true')
    +>>> s.add(Or(a,b),Or(b,c),Not(c))
    +>>> s.check(a,b,c)
    +unsat
    +>>> core = s.unsat_core()
    +>>> a in core
    +False
    +>>> b in core
    +False
    +>>> c in core
    +True
    +>>> s.check(a,b)
    +sat
    +
    +
    +
    + +
    + +
    +
    +

    Results & Models

    +
    +
    +cvc5.pythonic.unsat
    +

    An UNSAT result.

    +
    + +
    +
    +cvc5.pythonic.sat
    +

    A SAT result.

    +
    + +
    +
    +cvc5.pythonic.unknown
    +

    The satisfiability could not be determined.

    +
    + +
    +
    +class cvc5.pythonic.CheckSatResult(r)
    +

    Represents the result of a satisfiability check: sat, unsat, unknown.

    +
    >>> s = Solver()
    +>>> s.check()
    +sat
    +>>> r = s.check()
    +>>> isinstance(r, CheckSatResult)
    +True
    +
    +
    +
    +
    +__eq__(other)
    +

    Return self==value.

    +
    + +
    +
    +__hash__ = None
    +
    + +
    +
    +__init__(r)
    +
    + +
    +
    +__ne__(other)
    +

    Return self!=value.

    +
    + +
    +
    +__repr__()
    +

    Return repr(self).

    +
    + +
    +
    +__weakref__
    +

    list of weak references to the object (if defined)

    +
    + +
    + +
    +
    +class cvc5.pythonic.ModelRef(solver)
    +

    Model/Solution of a satisfiability problem (aka system of constraints).

    +
    +
    +__getitem__(idx)
    +

    If idx is an integer, +then the declaration at position idx in the model self is returned. +If idx is a declaration, then the actual interpretation is returned.

    +

    The elements can be retrieved using position or the actual declaration.

    +
    >>> f = Function('f', IntSort(), IntSort())
    +>>> x = Int('x')
    +>>> s = Solver()
    +>>> s.add(x > 0, x < 2, f(x) == 0)
    +>>> s.check()
    +sat
    +>>> m = s.model()
    +>>> m.decls()
    +[f, x]
    +>>> len(m)
    +2
    +>>> m[0]
    +f
    +>>> m[1]
    +x
    +>>> m[x]
    +1
    +
    +
    +
    + +
    +
    +__init__(solver)
    +
    + +
    +
    +__len__()
    +

    Return the number of constant and function declarations in the model +self.

    +
    >>> f = Function('f', IntSort(), IntSort())
    +>>> x = Int('x')
    +>>> s = Solver()
    +>>> s.add(x > 0, f(x) != x)
    +>>> s.check()
    +sat
    +>>> m = s.model()
    +>>> len(m)
    +2
    +
    +
    +
    + +
    +
    +__repr__()
    +

    Return repr(self).

    +
    + +
    +
    +__weakref__
    +

    list of weak references to the object (if defined)

    +
    + +
    +
    +decls()
    +

    Return a list with all symbols that have an interpretation in the +model self.

    +
    >>> f = Function('f', IntSort(), IntSort())
    +>>> x = Int('x')
    +>>> s = Solver()
    +>>> s.add(x > 0, x < 2, f(x) == 0)
    +>>> s.check()
    +sat
    +>>> m = s.model()
    +>>> m.decls()
    +[f, x]
    +
    +
    +
    + +
    +
    +eval(t, model_completion=False)
    +

    Evaluate the expression t in the model self. If +model_completion is enabled, then a default interpretation is +automatically added for symbols that do not have an interpretation in +the model self.

    +
    >>> x = Int('x')
    +>>> s = Solver()
    +>>> s.add(x > 0, x < 2)
    +>>> s.check()
    +sat
    +>>> m = s.model()
    +>>> m.eval(x + 1)
    +2
    +>>> m.eval(x == 1)
    +True
    +
    +
    +
    + +
    +
    +evaluate(t, model_completion=False)
    +

    Alias for eval.

    +
    >>> x = Int('x')
    +>>> s = Solver()
    +>>> s.add(x > 0, x < 2)
    +>>> s.check()
    +sat
    +>>> m = s.model()
    +>>> m.evaluate(x + 1)
    +2
    +>>> m.evaluate(x == 1)
    +True
    +
    +
    +
    + +
    +
    +vars()
    +

    Returns the free constants in an assertion, as terms

    +
    + +
    + +
    +
    +

    Utilities

    +
    +
    +cvc5.pythonic.evaluate(t)
    +

    Evaluates the given term (assuming it is constant!)

    +
    + +
    +
    +cvc5.pythonic.simplify(a)
    +

    Simplify the expression a.

    +
    >>> x = Int('x')
    +>>> y = Int('y')
    +>>> simplify(x + 1 + y + x + 1)
    +2 + 2*x + y
    +
    +
    +
    + +
    +
    +cvc5.pythonic.substitute(t, *m)
    +

    Apply substitution m on t, m is a list of pairs of the form (from, to). +Every occurrence in t of from is replaced with to.

    +
    >>> x = Int('x')
    +>>> y = Int('y')
    +>>> f = Function('f', IntSort(), IntSort())
    +>>> substitute(f(x) + f(y), (f(x), IntVal(1)), (f(y), IntVal(1)))
    +1 + 1
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Sum(*args)
    +

    Create the sum of the SMT expressions.

    +
    >>> a, b, c = Ints('a b c')
    +>>> Sum(a, b, c)
    +a + b + c
    +>>> Sum([a, b, c])
    +a + b + c
    +>>> A = IntVector('a', 5)
    +>>> Sum(A)
    +a__0 + a__1 + a__2 + a__3 + a__4
    +>>> Sum()
    +0
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Product(*args)
    +

    Create the product of the SMT expressions.

    +
    >>> a, b, c = Ints('a b c')
    +>>> Product(a, b, c)
    +a*b*c
    +>>> Product([a, b, c])
    +a*b*c
    +>>> A = IntVector('a', 5)
    +>>> Product(A)
    +a__0*a__1*a__2*a__3*a__4
    +>>> Product()
    +1
    +
    +
    +
    + +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/pythonic/string.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/pythonic/string.html new file mode 100644 index 0000000000..b3c79734aa --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/api/python/pythonic/string.html @@ -0,0 +1,671 @@ + + + + + + + + + + + + + Strings — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Strings

    +
    +

    Basic String Term Builders

    +
    +
    +cvc5.pythonic.StringSort(ctx=None)
    +

    Return the string sort in the given context. If ctx=None, then the global context is used.

    +
    >>> StringSort()
    +String
    +>>> a = Const('a', StringSort())
    +>>> a.sort() == StringSort()
    +True
    +
    +
    +
    + +
    +
    +cvc5.pythonic.String(name, ctx=None)
    +

    Return a string constant named name. If ctx=None, then the global context is used.

    +
    >>> s = String('s')
    +>>> s.sort()
    +String
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Strings(names, ctx=None)
    +

    Return a tuple of string constants.

    +
    >>> x, y, z = Strings('x y z')
    +>>> Concat(x,y,z)
    ++(x, y, z)
    +>>> Concat(x,y,z).sort()
    +String
    +
    +
    +
    + +
    +
    +cvc5.pythonic.StringVal(val, ctx=None)
    +

    Return an SMT String value.

    +
    +
    val is a string value

    If ctx=None, then the global context is used.

    +
    +
    +
    >>> StringVal('hello')
    +"hello"
    +>>> StringVal('hello').sort()
    +String
    +
    +
    +
    + +
    +
    +

    String Operators

    +
    +
    +cvc5.pythonic.Length(s, ctx=None)
    +

    obtain the length of a string or sequence s

    +
    >>> s = StringVal('s')
    +>>> l = Length(s)
    +>>> simplify(l)
    +1
    +
    +
    +
    + +
    +
    +cvc5.pythonic.SubString(s, offset, length, ctx=None)
    +

    Extract substring starting at offset of size length

    +
    >>> simplify(SubString('hello',3,2))
    +"lo"
    +>>> simplify(SubString(StringVal('hello'),3,2))
    +"lo"
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Contains(a, b, ctx=None)
    +

    check if a contains b

    +
    >>> simplify(Contains('ab','a'))
    +True
    +>>> a,b,c = Strings("a b c")
    +>>> s = Contains(a+b+c,b)
    +>>> simplify(s)
    +True
    +
    +
    +
    + +
    +
    +cvc5.pythonic.PrefixOf(a, b, ctx=None)
    +

    check if a is a prefix of b

    +
    >>> s1 = PrefixOf("ab","abc")
    +>>> simplify(s1)
    +True
    +>>> s2 = PrefixOf("bc","abc")
    +>>> simplify(s2)
    +False
    +
    +
    +
    + +
    +
    +cvc5.pythonic.SuffixOf(a, b, ctx=None)
    +

    check if a is a suffix of b

    +
    >>> s1 = SuffixOf("ab","abc")
    +>>> simplify(s1)
    +False
    +>>> s2 = SuffixOf("bc","abc")
    +>>> simplify(s2)
    +True
    +
    +
    +
    + +
    +
    +cvc5.pythonic.IndexOf(s, substr, offset=None)
    +

    retrieves the index of substr in s starting at offset, if offset is missing retrieves the first occurence

    +
    >>> simplify(IndexOf("abcabc", "bc"))
    +1
    +>>> simplify(IndexOf("abcabc", "bc", 0))
    +1
    +>>> simplify(IndexOf("abcabc", "bc", 2))
    +4
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Replace(s, src, dst)
    +

    Replace the first occurence of src with dst in s

    +
    >>> simplify(Replace('hello','l','?'))
    +"he?lo"
    +>>> seq = Concat(Unit(IntVal(1)),Unit(IntVal(2)))
    +>>> seq
    +Concat(Unit(1), Unit(2))
    +>>> simplify(Replace(seq,Unit(IntVal(1)),Unit(IntVal(5))))
    +(seq.++ (seq.unit 5) (seq.unit 2))()
    +
    +
    +
    + +
    +
    +cvc5.pythonic.StrToInt(s)
    +

    Convert string expression to int

    +
    >>> a = StrToInt('1')
    +>>> simplify(a==1)
    +True
    +>>> b = StrToInt('123')
    +>>> simplify(b)
    +123
    +
    +
    +
    + +
    +
    +cvc5.pythonic.IntToStr(s)
    +

    Convert integer expression to string

    +
    >>> b = IntToStr(55)
    +>>> simplify(b)
    +"55"
    +>>> b = IntToStr(-5)
    +>>> simplify(b)
    +""
    +
    +
    +
    + +
    +
    +cvc5.pythonic.StrToCode(s)
    +

    Convert a unit length string to integer code

    +
    >>> simplify(StrToCode('a'))
    +97
    +>>> simplify(StrToCode('*'))
    +42
    +
    +
    +
    + +
    +
    +cvc5.pythonic.StrFromCode(c)
    +

    Convert code to a string

    +
    >>> a = StrFromCode(97)
    +>>> simplify(a == 'a')
    +True
    +
    +
    +
    + +

    See the following operator overload for string terms:

    + +
    +
    +

    Basic Regular Expression Term Builders

    +
    +
    +cvc5.pythonic.Re(s, ctx=None)
    +

    The regular expression that accepts the string s

    +
    >>> re = Re('a')
    +>>> simplify(InRe('a',re))
    +True
    +>>> simplify(InRe('b',re))
    +False
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Full(ctx=None)
    +

    Create the regular expression that accepts the universal language

    +
    >>> e = Full()
    +>>> print(e)
    +Full()
    +>>> s = String('s')
    +>>> simplify(InRe(s,e))
    +True
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Option(re)
    +

    Create the regular expression that optionally accepts the argument.

    +
    >>> re = Option(Re("a"))
    +>>> print(simplify(InRe("a", re)))
    +True
    +>>> print(simplify(InRe("", re)))
    +True
    +>>> print(simplify(InRe("aa", re)))
    +False
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Range(lo, hi, ctx=None)
    +

    Create the range regular expression over two sequences of length 1

    +
    >>> range = Range("a","z")
    +>>> print(simplify(InRe("b", range)))
    +True
    +>>> print(simplify(InRe("bb", range)))
    +False
    +
    +
    +
    + +
    +
    +cvc5.pythonic.AllChar()
    +

    Create a regular expression that accepts all single character strings

    +
    >>> re = AllChar()
    +>>> simplify(InRe('a',re))
    +True
    +>>> simplify(InRe('',re))
    +False
    +>>> simplify(InRe('ab',re))
    +False
    +
    +
    +
    + +
    +
    +

    Regular Expression Operators

    +
    +
    +cvc5.pythonic.InRe(s, re)
    +

    Create regular expression membership test

    +
    >>> re = Union(Re("a"),Re("b"))
    +>>> print (simplify(InRe("a", re)))
    +True
    +>>> print (simplify(InRe("b", re)))
    +True
    +>>> print (simplify(InRe("c", re)))
    +False
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Union(*args)
    +

    create union of regular expressions

    +
    >>> re = Union(Re("a"), Re("b"), Re("c"))
    +>>> simplify(InRe('a',re))
    +True
    +>>> print (simplify(InRe("d", re)))
    +False
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Intersect(*args)
    +

    Create intersection of regular expressions.

    +
    >>> re = Intersect(Re("a"), Re("b"), Re("c"))
    +>>> simplify(InRe('',re))
    +False
    +>>> re2 = Intersect(Star(Re("a")), Star(Re("b")), Star(Re("c")))
    +>>> simplify(InRe('',re2))
    +True
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Complement(re)
    +

    Create the complement regular expression.

    +
    >>> re = Re('a')
    +>>> comp_re = Complement(re)
    +>>> simplify(InRe('a',comp_re))
    +False
    +>>> simplify(InRe('aa',comp_re))
    +True
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Plus(re)
    +

    Create the regular expression accepting one or more repetitions of argument.

    +
    >>> re = Plus(Re("a"))
    +>>> print(simplify(InRe("aa", re)))
    +True
    +>>> print(simplify(InRe("ab", re)))
    +False
    +>>> print(simplify(InRe("", re)))
    +False
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Star(re)
    +

    Create the regular expression accepting zero or more repetitions of argument.

    +
    >>> re = Star(Re("a"))
    +>>> print(simplify(InRe("aa", re)))
    +True
    +>>> print(simplify(InRe("ab", re)))
    +False
    +>>> print(simplify(InRe("", re)))
    +True
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Loop(re, lo, hi=0)
    +

    Create the regular expression accepting between a lower and upper bound repetitions

    +
    >>> re = Loop(Re("a"), 1, 3)
    +>>> print(simplify(InRe("aa", re)))
    +True
    +>>> print(simplify(InRe("aaaa", re)))
    +False
    +>>> print(simplify(InRe("", re)))
    +False
    +
    +
    +
    + +
    +
    +cvc5.pythonic.Diff(a, b, ctx=None)
    +

    Create the difference regular expression

    +
    >>> r1 = Re('a')
    +>>> r2 = Re('a') + Re('b')
    +>>> simplify(InRe('a',Diff(r2,r1)))
    +False
    +>>> simplify(InRe('b',Diff(r2,r1)))
    +True
    +
    +
    +
    + +
    +
    +

    Classes (with overloads)

    +
    +
    +class cvc5.pythonic.StringSortRef(ast, ctx=None)
    +

    String sort.

    +
    +
    +cast(val)
    +

    Try to cast val as a String.

    +
    >>> string_sort = StringSort()
    +>>> string_sort.cast(10)
    +"10"
    +>>> string_sort.cast('hello')
    +"hello"
    +>>> string_sort.cast(10.5)
    +"10.5"
    +>>> string_sort.cast(RealVal(1.5))
    +"3/2"
    +>>> string_sort.cast(RealVal(1.5)).sort()
    +String
    +
    +
    +
    + +
    + +
    +
    +class cvc5.pythonic.StringRef(ast, ctx=None, reverse_children=False)
    +

    String expressions

    +
    +
    +__ge__(other)
    +

    Create the SMT expression other <= self based on a lexiographic ordering.

    +
    >>> s,t = Strings('s t')
    +>>> s >= t
    +t <= s
    +
    +
    +
    + +
    +
    +__getitem__(i)
    +

    Return string character at i

    +
    >>> StringVal("hello")[0]
    +At("hello", 0)
    +>>> simplify(StringVal("hello")[0])
    +"h"
    +
    +
    +
    + +
    +
    +__gt__(other)
    +

    Create the SMT expression other < self based on a lexiographic ordering.

    +
    >>> s,t = Strings('s t')
    +>>> s > t
    +t < s
    +
    +
    +
    + +
    +
    +__le__(other)
    +

    Create the SMT expression self <= other based on a lexiographic ordering.

    +
    >>> s,t = Strings('s t')
    +>>> s <= t
    +s <= t
    +
    +
    +
    + +
    +
    +__lt__(other)
    +

    Create the SMT expression self < other based on a lexiographic ordering.

    +
    >>> s,t = Strings('s t')
    +>>> s < t
    +s < t
    +
    +
    +
    + +
    +
    +at(i)
    +

    Return the sequence at index i

    +
    >>> seq = Const('seq',SeqSort(IntSort()))
    +>>> seq.at(0)
    +At(seq, 0)
    +>>> seq.at(0).sort()
    +(Seq Int)
    +
    +
    +
    + +
    + +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/binary/binary.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/binary/binary.html new file mode 100644 index 0000000000..5389d837c2 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/binary/binary.html @@ -0,0 +1,143 @@ + + + + + + + + + + + + + Binary Documentation — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    +
      +
    • + +
    • +
    • +
    +
    +
    +
    +
    + +
    +

    Binary Documentation

    +

    The easiest way to use cvc5 is usually to invoke the cvc5 binary via the command line. +The quickstart guide gives a short introduction on how to use cvc5 via the SMT-LIBv2 +interface.

    +

    The cvc5 binary supports the following input languages:

    + +

    Alternatively, cvc5 features several APIs for different programming languages.

    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/binary/quickstart.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/binary/quickstart.html new file mode 100644 index 0000000000..22d8d9069f --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/binary/quickstart.html @@ -0,0 +1,982 @@ + + + + + + + + + + + + + Quickstart Guide — cvc5 documentation + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Quickstart Guide

    +

    The primary input language for cvc5 is +SMT-LIB v2. +We give a short explanation of the SMT-LIB v2 quickstart +example here.

    +

    First, we set the logic. +The simplest way to set a logic for the solver is to choose “ALL”. +This enables all logics in the solver. +Alternatively, "QF_ALL" enables all logics without quantifiers. +To optimize the solver’s behavior for a more specific logic, +use the logic name, e.g. "QF_BV" or "QF_AUFBV".

    +
    (set-logic ALL)
    +
    +
    +

    We will ask the solver to produce models and unsat cores in the following, +and for this we have to enable the following options. +Furthermore, we enable incremental solving so that we can use the +(reset-assertions) command later on.

    +
    (set-option :produce-models true)
    +(set-option :incremental true)
    +; print unsat cores, include assertions in the unsat core that have not been named
    +(set-option :produce-unsat-cores true)
    +(set-option :print-cores-full true)
    +
    +
    +

    Now, we create two constants x and y of sort Real. +Notice that these are symbolic constants, but not actual values.

    +
    ; Declare real constants x,y
    +(declare-const x Real)
    +(declare-const y Real)
    +
    +
    +

    We define the following constraints regarding x and y:

    +
    +\[(0 < x) \wedge (0 < y) \wedge (x + y < 1) \wedge (x \leq y)\]
    +

    We assert them as follows. Notice that in SMT-LIB v2, terms are written in prefix notation, e.g., we write (+ x y) instead of (x + y).

    +
    ; Our constraints regarding x and y will be:
    +;
    +;   (1)  0 < x
    +;   (2)  0 < y
    +;   (3)  x + y < 1
    +;   (4)  x <= y
    +
    +(assert (< 0 x))
    +(assert (< 0 y))
    +(assert (< (+ x y) 1))
    +(assert (<= x y))
    +
    +
    +

    Now we check if the asserted formula is satisfiable, that is, we check if +there exist values of sort Real for x and y that satisfy all +the constraints.

    +
    (check-sat)
    +
    +
    +

    The result we get from this satisfiability check is either sat, unsat +or unknown, and it is printed to standard output. +In this case, it will print sat.

    +

    Now, we query the solver for the values for x and y that satisfy +the constraints. +It is also possible to get values for terms that do not appear in the original +formula.

    +
    (echo "Values of declared real constants and of compound terms built with them.")
    +(get-value (x y (- x y)))
    +
    +
    +

    This will print the values of x, y, and x-y, in a key-value format (<term> <value>) one after the other:

    +
    ((x (/ 1 6)) (y (/ 1 6)) ((- x y) 0.0))
    +
    +
    +

    Next, we will check satisfiability of the same formula, +only this time over integer variables a and b. +For this, we first reset the assertions added to the solver and declare fresh +integer variables a and b.

    +
    (echo "We will reset the solver with the (reset-assertions) command and check satisfiability of the same assertions but with the integers constants rather than with the real ones.")
    +(reset-assertions)
    +; Declare integer constants a,b
    +(declare-const a Int)
    +(declare-const b Int)
    +
    +
    +

    Next, we assert the same assertions as above, but with integers.

    +
    (assert (< 0 a))
    +(assert (< 0 b))
    +(assert (< (+ a b) 1))
    +(assert (<= a b))
    +
    +
    +

    Now, we check whether the revised query is satisfiable.

    +
    (check-sat)
    +
    +
    +

    This time the asserted formula is unsatisfiable and unsat is printed.

    +

    We can query the solver for an unsatisfiable core, that is, a subset +of the assertions that is already unsatisfiable.

    +
    (get-unsat-core)
    +
    +
    +

    This will print:

    +
    (
    +(< 0 a)
    +(< 0 b)
    +(< (+ a b) 1)
    +)
    +
    +
    +
    +

    Example

    +
    +

    examples/api/smtlib/quickstart.smt2

    +
     1;! [docs-smt2-quickstart-1 start]
    + 2(set-logic ALL)
    + 3;! [docs-smt2-quickstart-1 end]
    + 4;! [docs-smt2-quickstart-2 start]
    + 5(set-option :produce-models true)
    + 6(set-option :incremental true)
    + 7; print unsat cores, include assertions in the unsat core that have not been named
    + 8(set-option :produce-unsat-cores true)
    + 9(set-option :print-cores-full true)
    +10;! [docs-smt2-quickstart-2 end]
    +11
    +12;! [docs-smt2-quickstart-3 start]
    +13; Declare real constants x,y
    +14(declare-const x Real)
    +15(declare-const y Real)
    +16;! [docs-smt2-quickstart-3 end]
    +17
    +18;! [docs-smt2-quickstart-4 start]
    +19; Our constraints regarding x and y will be:
    +20;
    +21;   (1)  0 < x
    +22;   (2)  0 < y
    +23;   (3)  x + y < 1
    +24;   (4)  x <= y
    +25
    +26(assert (< 0 x))
    +27(assert (< 0 y))
    +28(assert (< (+ x y) 1))
    +29(assert (<= x y))
    +30;! [docs-smt2-quickstart-4 end]
    +31
    +32;! [docs-smt2-quickstart-5 start]
    +33(check-sat)
    +34;! [docs-smt2-quickstart-5 end]
    +35;! [docs-smt2-quickstart-6 start]
    +36(echo "Values of declared real constants and of compound terms built with them.")
    +37(get-value (x y (- x y)))
    +38;! [docs-smt2-quickstart-6 end]
    +39
    +40;! [docs-smt2-quickstart-7 start]
    +41(echo "We will reset the solver with the (reset-assertions) command and check satisfiability of the same assertions but with the integers constants rather than with the real ones.")
    +42(reset-assertions)
    +43; Declare integer constants a,b
    +44(declare-const a Int)
    +45(declare-const b Int)
    +46;! [docs-smt2-quickstart-7 end]
    +47;! [docs-smt2-quickstart-8 start]
    +48(assert (< 0 a))
    +49(assert (< 0 b))
    +50(assert (< (+ a b) 1))
    +51(assert (<= a b))
    +52;! [docs-smt2-quickstart-8 end]
    +53
    +54;! [docs-smt2-quickstart-9 start]
    +55(check-sat)
    +56;! [docs-smt2-quickstart-9 end]
    +57;! [docs-smt2-quickstart-10 start]
    +58(get-unsat-core)
    +59;! [docs-smt2-quickstart-10 end]
    +
    +
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/api.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/api.html new file mode 100644 index 0000000000..a9d6f9608d --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/api.html @@ -0,0 +1,378 @@ + + + + + + + + + + + API Documentation — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    +
      +
    • + + +
    • + +
    • +
    • +
    +
    +
    +
    +
    +
    +

    + API Documentation + +  + +

    +

    + Alternatively to using cvc5 + + + as a binary + + + , cvc5 can be +integrated at the back end of other tools via one of its rich and comprehensive +APIs. +

    +

    + The primary interface of cvc5 is its + + + C++ API + + + . +Its + + + C API + + + , + + + Java API + + + and + + + base Python API + + + implement a thin wrapper around +the C++ API. +In addition to the base Python API, cvc5 also provides a more + + + pythonic +Python API + + + at + + https://github.com/cvc5/cvc5_pythonic_api + + , +documented + + + here + + + . +

    + +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/c.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/c.html new file mode 100644 index 0000000000..157bbbaf59 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/c.html @@ -0,0 +1,1224 @@ + + + + + + + + + + + C API — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + C API + +  + +

    +

    + The C API of cvc5 is based on its + + + C++ API + + + and is + + feature complete + + , within the limits of the C language. +The + + + quickstart guide + + + gives a short introduction of how +to use cvc5 via its C API. +For most applications, the + + + + Cvc5 + + + + solver struct is the main +entry point to cvc5. +

    +

    + One of the key differences is the way + + how memory is managed + + . While users of +the C++ API can rely on memory being efficiently managed automatically, on the +C level, management to maintain a low overhead needs + + more manual +intervention + + . +

    +

    + The C API offers + + two modes + + of memory management: +

    +
      +
    1. +

      + Let cvc5 handle memory management without manual intervention. All memory +allocated by the C API via a term manager ( + + + + Cvc5TermManager + + + + ) or +solver ( + + + + Cvc5 + + + + ) instance will only be released when these +instances are deleted via + + + + cvc5_delete() + + + + and + + + cvc5_term_manager_delete() + + + . For example: +

      +
    2. +
    +
    +
    +
    Cvc5TermManager* tm = cvc5_term_manager_new();
    +Cvc5* cvc5 = cvc5_new(tm);
    +Cvc5Term a = cvc5_mk_const(tm, cvc5_get_integer_sort(tm), "a");
    +Cvc5Term two = cvc5_mk_integer_int64(tm, 2);
    +Cvc5Term args1[2] = {a, two};
    +cvc5_assert_formula(cvc5, cvc5_mk_term(tm, CVC5_KIND_EQUAL, 2, args1));
    +Cvc5Term b = cvc5_mk_const(tm, cvc5_get_integer_sort(tm), "b");
    +Cvc5Term args2[2] = {b, two};
    +cvc5_assert_formula(cvc5, cvc5_mk_term(tm, CVC5_KIND_DISTINCT, 2, args2));
    +cvc5_check_sat(cvc5);
    +cvc5_delete(cvc5);
    +cvc5_term_manager_delete(tm);
    +
    +
    +
    +
      +
    1. +

      + Introduce a more fine-grained, user-level memory management for objects +created via a term manager or solver via the corresponding + + + cvc5_*_copy() + + + and + + + cvc5_*_release() + + + functions. The copy functions increment the +reference counter of an object, the release functions decrement the +reference counter and free its allocated memory when the counter reaches 0. +For example: +

      +
    2. +
    +
    +
    +
    Cvc5TermManager* tm = cvc5_term_manager_new();
    +Cvc5* cvc5 = cvc5_new(tm);
    +Cvc5Term a = cvc5_mk_const(tm, cvc5_get_integer_sort(tm), "a");
    +Cvc5Term two = cvc5_mk_integer_int64(tm, 2);
    +Cvc5Term args1[2] = {a, two};
    +cvc5_assert_formula(cvc5, cvc5_mk_term(tm, CVC5_KIND_EQUAL, 2, args1));
    +// we can release 'a' here, not needed anymore
    +cvc5_term_release(a);
    +Cvc5Term b = cvc5_mk_const(tm, cvc5_get_integer_sort(tm), "b");
    +Cvc5Term args2[2] = {b, two};
    +cvc5_assert_formula(cvc5, cvc5_mk_term(tm, CVC5_KIND_DISTINCT, 2, args2));
    +cvc5_check_sat(cvc5);
    +cvc5_delete(cvc5);
    +cvc5_term_manager_delete(tm);
    +
    +
    +
    + +
    +
    +

    + Types + +  + +

    +

    + The following types are defined via typedefs but used as black boxes, their +internals are hidden. +

    + +
    +
    +

    + Structs + +  + +

    +

    + The following structs are fully exposed via the API. +

    + +
    +
    +

    + Enums + +  + +

    + +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/enums/cvc5kind.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/enums/cvc5kind.html new file mode 100644 index 0000000000..46e18a0e57 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/enums/cvc5kind.html @@ -0,0 +1,30082 @@ + + + + + + + + + + + Cvc5Kind — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Cvc5Kind + +  + +

    +

    + Every + + + + Cvc5Term + + + + has an associated kind, represented +as enum + + + + Cvc5Kind + + + + . +This kind distinguishes if the term is a value, constant, variable or operator, +and what kind of each. +For example, a bit-vector value has kind + + + + CVC5_KIND_CONST_BITVECTOR + + + + , a free constant symbol has kind + + + + CVC5_KIND_CONSTANT + + + + , +an equality over terms of any sort has kind + + + + CVC5_KIND_EQUAL + + + + , +and a universally quantified formula has kind + + + + CVC5_KIND_FORALL + + + + . +

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + enum + + + + + + + + Cvc5Kind + + + + +  + +
    +
    +
    +

    + The kind of a cvc5 Term. +

    +

    + + Values: + +

    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_INTERNAL_KIND + + + + +  + +
    +
    +
    +

    + Internal kind. +

    +

    + This kind serves as an abstraction for internal kinds that are not exposed via the API but may appear in terms returned by API functions, e.g., when querying the simplified form of a term. +

    +
    +

    + Note +

    +

    + Should never be created via the API. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_UNDEFINED_KIND + + + + +  + +
    +
    +
    +

    + Undefined kind. +

    +
    +

    + Note +

    +

    + Should never be exposed or created via the API. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_NULL_TERM + + + + +  + +
    +
    +
    +

    + Null kind. +

    +

    + The kind of a null term (Term::Term()). +

    +
    +

    + Note +

    +

    + May not be explicitly created via API functions other than + + + Term::Term() + + + . +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_UNINTERPRETED_SORT_VALUE + + + + +  + +
    +
    +
    +

    + The value of an uninterpreted constant. +

    +
    +

    + Note +

    +

    + May be returned as the result of an API call, but terms of this +kind may not be created explicitly via the API and may not +appear in assertions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_EQUAL + + + + +  + +
    +
    +
    +

    + Equality, chainable. +

    +

    +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of the same Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_DISTINCT + + + + +  + +
    +
    +
    +

    + Disequality. +

    +

    +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of the same Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_CONSTANT + + + + +  + +
    +
    +
    +

    + Free constant symbol. +

    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkConst(const Sort&, const std::string&) const +

        +
      • +
      • +

        + Solver::mkConst(const Sort&) const +

        +
      • +
      +
    • +
    +
    +

    + Note +

    +

    + Not permitted in bindings (e.g., + + + FORALL + + + , + + + EXISTS + + + ). +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_VARIABLE + + + + +  + +
    +
    +
    +

    + (Bound) variable. +

    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkVar(const Sort&, const std::string&) const +

        +
      • +
      +
    • +
    +
    +

    + Note +

    +

    + Only permitted in bindings and in lambda and quantifier bodies. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_SKOLEM + + + + +  + +
    +
    +
    +

    + A Skolem. +

    +

    +

    +

    + skolem is available via the calls + + Solver::getSkolemId + + and + + Solver::getSkolemIndices + + . +

    +
    +

    + Note +

    +

    + Represents an internally generated term. Information on the +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_SEXPR + + + + +  + +
    +
    +
    +

    + Symbolic expression. +

    +

    +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 0 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms with same sorts +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_LAMBDA + + + + +  + +
    +
    +
    +

    + Lambda expression. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of kind :cpp:enumerator: + + + VARIABLE_LIST + + +

        +
      • +
      • +

        + + + 2: + + + Term of any Sort (the body of the lambda) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_WITNESS + + + + +  + +
    +
    +
    +

    + Witness. +

    +

    + The syntax of a witness term is similar to a quantified formula except that only one variable is allowed. For example, the term +

    +

    +

    +
    +
    +
    (witness ((x S)) F)
    +
    +
    +
    +

    + returns an element + + \(x\) + + of Sort + + \(S\) + + and asserts formula + + \(F\) + + . +

    +

    + The witness operator behaves like the description operator +(see + + https://planetmath.org/hilbertsvarepsilonoperator + + ) if there is +no + + \(x\) + + that satisfies + + \(F\) + + . But if such + + \(x\) + + exists, the +witness operator does not enforce the following axiom which ensures +uniqueness up to logical equivalence: +

    +
    + \[\forall x. F \equiv G \Rightarrow witness~x. F = witness~x. G\] +
    +

    + For example, if there are two elements of Sort + + \(S\) + + that satisfy +formula + + \(F\) + + , then the following formula is satisfiable: +

    +
    +
    +
    (distinct
    +   (witness ((x Int)) F)
    +   (witness ((x Int)) F))
    +
    +
    +
    +

    +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of kind :cpp:enumerator: + + + VARIABLE_LIST + + +

        +
      • +
      • +

        + + + 2: + + + Term of Sort Bool (the body of the witness) +

        +
      • +
      • +

        + + + 3: + + + (optional) Term of kind :cpp:enumerator: + + + INST_PATTERN_LIST + + +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +

    + Note +

    +

    + This kind is primarily used internally, but may be returned in +models (e.g., for arithmetic terms in non-linear queries). However, +it is not supported by the parser. Moreover, the user of the API +should be cautious when using this operator. In general, all witness +terms + + + (witness + + + ((x + + + Int)) + + + F) + + + should be such that + + + (exists + + + ((x + + + Int)) + + + F) + + + is a valid formula. If this is not the case, then the semantics +in formulas that use witness terms may be unintuitive. For example, +the following formula is unsatisfiable: + + + (or + + + (= + + + (witness + + + ((x + + + Int)) + + + false) + + + 0) + + + (not + + + (= + + + (witness + + + ((x + + + Int)) + + + false) + + + 0)) + + + , whereas notice that + + + (or + + + (= + + + z + + + 0) + + + (not + + + (= + + + z + + + 0))) + + + is +true for any + + \(z\) + + . +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_CONST_BOOLEAN + + + + +  + +
    +
    +
    +

    + Boolean constant. +

    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTrue() const +

        +
      • +
      • +

        + Solver::mkFalse() const +

        +
      • +
      • +

        + Solver::mkBoolean(bool) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_NOT + + + + +  + +
    +
    +
    +

    + Logical negation. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort Bool +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_AND + + + + +  + +
    +
    +
    +

    + Logical conjunction. +

    +

    +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of Sort Bool +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_IMPLIES + + + + +  + +
    +
    +
    +

    + Logical implication. +

    +

    +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of Sort Bool +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_OR + + + + +  + +
    +
    +
    +

    + Logical disjunction. +

    +

    +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of Sort Bool +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_XOR + + + + +  + +
    +
    +
    +

    + Logical exclusive disjunction, left associative. +

    +

    +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of Sort Bool +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_ITE + + + + +  + +
    +
    +
    +

    + If-then-else. +

    +

    +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort Bool +

        +
      • +
      • +

        + + + 2: + + + The ‘then’ term, Term of any Sort +

        +
      • +
      • +

        + + + 3: + + + The ‘else’ term, Term of the same sort as second argument +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_APPLY_UF + + + + +  + +
    +
    +
    +

    + Application of an uninterpreted function. +

    +

    +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Function Term +

        +
      • +
      • +

        + + + 2..n: + + + Function argument instantiation Terms of any first-class Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_CARDINALITY_CONSTRAINT + + + + +  + +
    +
    +
    +

    + Cardinality constraint on uninterpreted sort. +

    +

    + Interpreted as a predicate that is true when the cardinality of +uinterpreted Sort + + \(S\) + + is less than or equal to an upper bound. +

    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkCardinalityConstraint(const Sort&, uint32_t) const +

        +
      • +
      +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_HO_APPLY + + + + +  + +
    +
    +
    +

    + Higher-order applicative encoding of function application, left associative. +

    +

    +

    +
      +
    • +

      + Arity: + + + n + + + = + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Function Term +

        +
      • +
      • +

        + + + 2: + + + Argument Term of the domain Sort of the function +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_ADD + + + + +  + +
    +
    +
    +

    + Arithmetic addition. +

    +

    +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of Sort Int or Real (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_MULT + + + + +  + +
    +
    +
    +

    + Arithmetic multiplication. +

    +

    +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of Sort Int or Real (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_IAND + + + + +  + +
    +
    +
    +

    + Integer and. +

    +

    +

    +

    + Operator for bit-wise + + + AND + + + over integers, parameterized by a (positive) +bit-width + + \(k\) + + . +

    +
    +
    +
    ((_ iand k) i_1 i_2)
    +
    +
    +
    +

    + is equivalent to +

    +
    +
    +
    ((_ iand k) i_1 i_2)
    +(bv2int (bvand ((_ int2bv k) i_1) ((_ int2bv k) i_2)))
    +
    +
    +
    +

    + for all integers + + + i_1 + + + , + + + i_2 + + + . +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of Sort Int +

        +
      • +
      +
    • +
    • +

      + Indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Bit-width + + \(k\) + +

        +
      • +
      +
    • +
    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_POW2 + + + + +  + +
    +
    +
    +

    + Power of two. +

    +

    + Operator for raising + + + 2 + + + to a non-negative integer power. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort Int +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_SUB + + + + +  + +
    +
    +
    +

    + Arithmetic subtraction, left associative. +

    +

    +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of Sort Int or Real (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_NEG + + + + +  + +
    +
    +
    +

    + Arithmetic negation. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort Int or Real +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_DIVISION + + + + +  + +
    +
    +
    +

    + Real division, division by 0 undefined, left associative. +

    +

    +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of Sort Real +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_DIVISION_TOTAL + + + + +  + +
    +
    +
    +

    + Real division, division by 0 defined to be 0, left associative. +

    +

    +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of Sort Real +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_INTS_DIVISION + + + + +  + +
    +
    +
    +

    + Integer division, division by 0 undefined, left associative. +

    +

    +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of Sort Int +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_INTS_DIVISION_TOTAL + + + + +  + +
    +
    +
    +

    + Integer division, division by 0 defined to be 0, left associative. +

    +

    +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of Sort Int +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_INTS_MODULUS + + + + +  + +
    +
    +
    +

    + Integer modulus, modulus by 0 undefined. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort Int +

        +
      • +
      • +

        + + + 2: + + + Term of Sort Int +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_INTS_MODULUS_TOTAL + + + + +  + +
    +
    +
    +

    + Integer modulus, t modulus by 0 defined to be t. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort Int +

        +
      • +
      • +

        + + + 2: + + + Term of Sort Int +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_ABS + + + + +  + +
    +
    +
    +

    + Absolute value. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort Int or Real +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_POW + + + + +  + +
    +
    +
    +

    + Arithmetic power. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Term of Sort Int or Real (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_EXPONENTIAL + + + + +  + +
    +
    +
    +

    + Exponential function. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort Real +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_SINE + + + + +  + +
    +
    +
    +

    + Sine function. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort Real +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_COSINE + + + + +  + +
    +
    +
    +

    + Cosine function. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort Real +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_TANGENT + + + + +  + +
    +
    +
    +

    + Tangent function. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort Real +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_COSECANT + + + + +  + +
    +
    +
    +

    + Cosecant function. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort Real +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_SECANT + + + + +  + +
    +
    +
    +

    + Secant function. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort Real +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_COTANGENT + + + + +  + +
    +
    +
    +

    + Cotangent function. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort Real +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_ARCSINE + + + + +  + +
    +
    +
    +

    + Arc sine function. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort Real +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_ARCCOSINE + + + + +  + +
    +
    +
    +

    + Arc cosine function. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort Real +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_ARCTANGENT + + + + +  + +
    +
    +
    +

    + Arc tangent function. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort Real +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_ARCCOSECANT + + + + +  + +
    +
    +
    +

    + Arc cosecant function. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort Real +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_ARCSECANT + + + + +  + +
    +
    +
    +

    + Arc secant function. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort Real +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_ARCCOTANGENT + + + + +  + +
    +
    +
    +

    + Arc cotangent function. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort Real +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_SQRT + + + + +  + +
    +
    +
    +

    + Square root. +

    +

    + If the argument + + + x + + + is non-negative, then this returns a non-negative value + + + y + + + such that + + + y + + + * + + + y + + + = + + + x + + + . +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort Real +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_DIVISIBLE + + + + +  + +
    +
    +
    +

    +

    +

    + Operator for the divisibility-by- + + \(k\) + + predicate. +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort Int +

        +
      • +
      +
    • +
    • +

      + Indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + The integer + + \(k\) + + to divide by. +

        +
      • +
      +
    • +
    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_CONST_RATIONAL + + + + +  + +
    +
    +
    +

    + Arbitrary-precision rational constant. +

    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkReal(const std::string&) const +

        +
      • +
      • +

        + Solver::mkReal(int64_t) const +

        +
      • +
      • +

        + Solver::mkReal(int64_t, int64_t) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_CONST_INTEGER + + + + +  + +
    +
    +
    +

    + Arbitrary-precision integer constant. +

    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkInteger(const std::string&) const +

        +
      • +
      • +

        + Solver::mkInteger(int64_t) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_LT + + + + +  + +
    +
    +
    +

    + Less than, chainable. +

    +

    +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of Sort Int or Real (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_LEQ + + + + +  + +
    +
    +
    +

    + Less than or equal, chainable. +

    +

    +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of Sort Int or Real (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_GT + + + + +  + +
    +
    +
    +

    + Greater than, chainable. +

    +

    +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of Sort Int or Real (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_GEQ + + + + +  + +
    +
    +
    +

    + Greater than or equal, chainable. +

    +

    +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of Sort Int or Real (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_IS_INTEGER + + + + +  + +
    +
    +
    +

    + Is-integer predicate. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort Int or Real +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_TO_INTEGER + + + + +  + +
    +
    +
    +

    + Convert Term of sort Int or Real to Int via the floor function. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort Int or Real +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_TO_REAL + + + + +  + +
    +
    +
    +

    + Convert Term of Sort Int or Real to Real. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort Int or Real +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_PI + + + + +  + +
    +
    +
    +

    + Pi constant. +

    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkPi() const +

        +
      • +
      +
    • +
    +
    +

    + Note +

    +

    + + + PI + + + is considered a special symbol of Sort +Real, but is not a Real value, i.e., + + + Term::isRealValue() + + + will return + + + false + + + . +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_CONST_BITVECTOR + + + + +  + +
    +
    +
    +

    + Fixed-size bit-vector constant. +

    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkBitVector(uint32_t, uint64_t) const +

        +
      • +
      • +

        + Solver::mkBitVector(uint32_t, const std::string&, uint32_t) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BITVECTOR_CONCAT + + + + +  + +
    +
    +
    +

    + Concatenation of two or more bit-vectors. +

    +

    +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of bit-vector Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BITVECTOR_AND + + + + +  + +
    +
    +
    +

    + Bit-wise and. +

    +

    +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of bit-vector Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BITVECTOR_OR + + + + +  + +
    +
    +
    +

    + Bit-wise or. +

    +

    +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of bit-vector Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BITVECTOR_XOR + + + + +  + +
    +
    +
    +

    + Bit-wise xor. +

    +

    +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of bit-vector Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BITVECTOR_NOT + + + + +  + +
    +
    +
    +

    + Bit-wise negation. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of bit-vector Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BITVECTOR_NAND + + + + +  + +
    +
    +
    +

    + Bit-wise nand. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of bit-vector Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BITVECTOR_NOR + + + + +  + +
    +
    +
    +

    + Bit-wise nor. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of bit-vector Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BITVECTOR_XNOR + + + + +  + +
    +
    +
    +

    + Bit-wise xnor, left associative. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of bit-vector Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BITVECTOR_COMP + + + + +  + +
    +
    +
    +

    + Equality comparison (returns bit-vector of size + + + 1 + + + ). +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of bit-vector Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BITVECTOR_MULT + + + + +  + +
    +
    +
    +

    + Multiplication of two or more bit-vectors. +

    +

    +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of bit-vector Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BITVECTOR_ADD + + + + +  + +
    +
    +
    +

    + Addition of two or more bit-vectors. +

    +

    +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of bit-vector Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BITVECTOR_SUB + + + + +  + +
    +
    +
    +

    + Subtraction of two bit-vectors. +

    +

    +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of bit-vector Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BITVECTOR_NEG + + + + +  + +
    +
    +
    +

    + Negation of a bit-vector (two’s complement). +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of bit-vector Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BITVECTOR_UDIV + + + + +  + +
    +
    +
    +

    + Unsigned bit-vector division. +

    +

    + Truncates towards + + + 0 + + + . If the divisor is zero, the result is all ones. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of bit-vector Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BITVECTOR_UREM + + + + +  + +
    +
    +
    +

    + Unsigned bit-vector remainder. +

    +

    + Remainder from unsigned bit-vector division. If the modulus is zero, the result is the dividend. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of bit-vector Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BITVECTOR_SDIV + + + + +  + +
    +
    +
    +

    + Signed bit-vector division. +

    +

    + Two’s complement signed division of two bit-vectors. If the divisor is zero and the dividend is positive, the result is all ones. If the divisor is zero and the dividend is negative, the result is one. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of bit-vector Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BITVECTOR_SREM + + + + +  + +
    +
    +
    +

    + Signed bit-vector remainder (sign follows dividend). +

    +

    + Two’s complement signed remainder of two bit-vectors where the sign follows the dividend. If the modulus is zero, the result is the dividend. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of bit-vector Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BITVECTOR_SMOD + + + + +  + +
    +
    +
    +

    + Signed bit-vector remainder (sign follows divisor). +

    +

    + Two’s complement signed remainder where the sign follows the divisor. If the modulus is zero, the result is the dividend. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of bit-vector Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BITVECTOR_SHL + + + + +  + +
    +
    +
    +

    + Bit-vector shift left. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of bit-vector Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BITVECTOR_LSHR + + + + +  + +
    +
    +
    +

    + Bit-vector logical shift right. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of bit-vector Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BITVECTOR_ASHR + + + + +  + +
    +
    +
    +

    + Bit-vector arithmetic shift right. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of bit-vector Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BITVECTOR_ULT + + + + +  + +
    +
    +
    +

    + Bit-vector unsigned less than. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of bit-vector Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BITVECTOR_ULE + + + + +  + +
    +
    +
    +

    + Bit-vector unsigned less than or equal. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of bit-vector Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BITVECTOR_UGT + + + + +  + +
    +
    +
    +

    + Bit-vector unsigned greater than. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of bit-vector Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BITVECTOR_UGE + + + + +  + +
    +
    +
    +

    + Bit-vector unsigned greater than or equal. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of bit-vector Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BITVECTOR_SLT + + + + +  + +
    +
    +
    +

    + Bit-vector signed less than. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of bit-vector Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BITVECTOR_SLE + + + + +  + +
    +
    +
    +

    + Bit-vector signed less than or equal. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of bit-vector Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BITVECTOR_SGT + + + + +  + +
    +
    +
    +

    + Bit-vector signed greater than. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of bit-vector Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BITVECTOR_SGE + + + + +  + +
    +
    +
    +

    + Bit-vector signed greater than or equal. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of bit-vector Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BITVECTOR_ULTBV + + + + +  + +
    +
    +
    +

    + Bit-vector unsigned less than returning a bit-vector of size 1. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of bit-vector Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BITVECTOR_SLTBV + + + + +  + +
    +
    +
    +

    + Bit-vector signed less than returning a bit-vector of size + + + 1 + + + . +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of bit-vector Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BITVECTOR_ITE + + + + +  + +
    +
    +
    +

    + Bit-vector if-then-else. +

    +

    + Same semantics as regular ITE, but condition is bit-vector of size + + + 1 + + + . +

    +

    +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of bit-vector Sort of size + + + 1 + + +

        +
      • +
      • +

        + + + 1..3: + + + Terms of bit-vector sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BITVECTOR_REDOR + + + + +  + +
    +
    +
    +

    + Bit-vector redor. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of bit-vector Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BITVECTOR_REDAND + + + + +  + +
    +
    +
    +

    + Bit-vector redand. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of bit-vector Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BITVECTOR_NEGO + + + + +  + +
    +
    +
    +

    + Bit-vector negation overflow detection. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of bit-vector Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BITVECTOR_UADDO + + + + +  + +
    +
    +
    +

    + Bit-vector unsigned addition overflow detection. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of bit-vector Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BITVECTOR_SADDO + + + + +  + +
    +
    +
    +

    + Bit-vector signed addition overflow detection. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of bit-vector Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BITVECTOR_UMULO + + + + +  + +
    +
    +
    +

    + Bit-vector unsigned multiplication overflow detection. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of bit-vector Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BITVECTOR_SMULO + + + + +  + +
    +
    +
    +

    + Bit-vector signed multiplication overflow detection. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of bit-vector Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BITVECTOR_USUBO + + + + +  + +
    +
    +
    +

    + Bit-vector unsigned subtraction overflow detection. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of bit-vector Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BITVECTOR_SSUBO + + + + +  + +
    +
    +
    +

    + Bit-vector signed subtraction overflow detection. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of bit-vector Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BITVECTOR_SDIVO + + + + +  + +
    +
    +
    +

    + Bit-vector signed division overflow detection. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of bit-vector Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BITVECTOR_EXTRACT + + + + +  + +
    +
    +
    +

    + Bit-vector extract. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of bit-vector Sort +

        +
      • +
      +
    • +
    • +

      + Indices: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + The upper bit index. +

        +
      • +
      • +

        + + + 2: + + + The lower bit index. +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BITVECTOR_REPEAT + + + + +  + +
    +
    +
    +

    + Bit-vector repeat. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of bit-vector Sort +

        +
      • +
      +
    • +
    • +

      + Indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + The number of times to repeat the given term. +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BITVECTOR_ZERO_EXTEND + + + + +  + +
    +
    +
    +

    + Bit-vector zero extension. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of bit-vector Sort +

        +
      • +
      +
    • +
    • +

      + Indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + The number of zeroes to extend the given term with. +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BITVECTOR_SIGN_EXTEND + + + + +  + +
    +
    +
    +

    + Bit-vector sign extension. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of bit-vector Sort +

        +
      • +
      +
    • +
    • +

      + Indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + The number of bits (of the value of the sign bit) to extend the given term with. +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BITVECTOR_ROTATE_LEFT + + + + +  + +
    +
    +
    +

    + Bit-vector rotate left. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of bit-vector Sort +

        +
      • +
      +
    • +
    • +

      + Indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + The number of bits to rotate the given term left. +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BITVECTOR_ROTATE_RIGHT + + + + +  + +
    +
    +
    +

    + Bit-vector rotate right. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of bit-vector Sort +

        +
      • +
      +
    • +
    • +

      + Indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + The number of bits to rotate the given term right. +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_INT_TO_BITVECTOR + + + + +  + +
    +
    +
    +

    + Conversion from Int to bit-vector. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort Int +

        +
      • +
      +
    • +
    • +

      + Indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + The size of the bit-vector to convert to. +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BITVECTOR_TO_NAT + + + + +  + +
    +
    +
    +

    + Bit-vector conversion to (non-negative) integer. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of bit-vector Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BITVECTOR_FROM_BOOLS + + + + +  + +
    +
    +
    +

    + Converts a list of Bool terms to a bit-vector. +

    +

    +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 0 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of Sort Bool +

        +
      • +
      +
    • +
    +
    +

    + Note +

    +

    + May be returned as the result of an API call, but terms of this +kind may not be created explicitly via the API and may not +appear in assertions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BITVECTOR_BIT + + + + +  + +
    +
    +
    +

    + Retrieves the bit at the given index from a bit-vector as a Bool term. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of bit-vector Sort +

        +
      • +
      +
    • +
    • +

      + Indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + The bit index +

        +
      • +
      +
    • +
    +
    +

    + Note +

    +

    + May be returned as the result of an API call, but terms of this +kind may not be created explicitly via the API and may not +appear in assertions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_CONST_FINITE_FIELD + + + + +  + +
    +
    +
    +

    + Finite field constant. +

    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkFiniteFieldElem(const std::string&, const Sort&, uint32_t base) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_FINITE_FIELD_NEG + + + + +  + +
    +
    +
    +

    + Negation of a finite field element (additive inverse). +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of finite field Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_FINITE_FIELD_ADD + + + + +  + +
    +
    +
    +

    + Addition of two or more finite field elements. +

    +

    +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of finite field Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_FINITE_FIELD_BITSUM + + + + +  + +
    +
    +
    +

    + Bitsum of two or more finite field elements: x + 2y + 4z + … +

    +

    +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of finite field Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_FINITE_FIELD_MULT + + + + +  + +
    +
    +
    +

    + Multiplication of two or more finite field elements. +

    +

    +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of finite field Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_CONST_FLOATINGPOINT + + + + +  + +
    +
    +
    +

    + Floating-point constant, created from IEEE-754 bit-vector representation of the floating-point value. +

    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkFloatingPoint(uint32_t, uint32_t, Term) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_CONST_ROUNDINGMODE + + + + +  + +
    +
    +
    +

    + RoundingMode constant. +

    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkRoundingMode(RoundingMode) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_FLOATINGPOINT_FP + + + + +  + +
    +
    +
    +

    + Create floating-point literal from bit-vector triple. +

    +

    +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of bit-vector Sort of size + + + 1 + + + (sign bit) +

        +
      • +
      • +

        + + + 2: + + + Term of bit-vector Sort of exponent size (exponent) +

        +
      • +
      • +

        + + + 3: + + + Term of bit-vector Sort of significand size - 1 (significand without hidden bit) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_FLOATINGPOINT_EQ + + + + +  + +
    +
    +
    +

    + Floating-point equality. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of floating-point Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_FLOATINGPOINT_ABS + + + + +  + +
    +
    +
    +

    + Floating-point absolute value. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of floating-point Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_FLOATINGPOINT_NEG + + + + +  + +
    +
    +
    +

    + Floating-point negation. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of floating-point Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_FLOATINGPOINT_ADD + + + + +  + +
    +
    +
    +

    + Floating-point addition. +

    +

    +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort RoundingMode +

        +
      • +
      • +

        + + + 2..3: + + + Terms of floating-point Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_FLOATINGPOINT_SUB + + + + +  + +
    +
    +
    +

    + Floating-point sutraction. +

    +

    +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort RoundingMode +

        +
      • +
      • +

        + + + 2..3: + + + Terms of floating-point Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_FLOATINGPOINT_MULT + + + + +  + +
    +
    +
    +

    + Floating-point multiply. +

    +

    +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort RoundingMode +

        +
      • +
      • +

        + + + 2..3: + + + Terms of floating-point Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_FLOATINGPOINT_DIV + + + + +  + +
    +
    +
    +

    + Floating-point division. +

    +

    +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort RoundingMode +

        +
      • +
      • +

        + + + 2..3: + + + Terms of floating-point Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_FLOATINGPOINT_FMA + + + + +  + +
    +
    +
    +

    + Floating-point fused multiply and add. +

    +

    +

    +
      +
    • +

      + Arity: + + + 4 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort RoundingMode +

        +
      • +
      • +

        + + + 2..4: + + + Terms of floating-point Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_FLOATINGPOINT_SQRT + + + + +  + +
    +
    +
    +

    + Floating-point square root. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort RoundingMode +

        +
      • +
      • +

        + + + 2: + + + Term of floating-point Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_FLOATINGPOINT_REM + + + + +  + +
    +
    +
    +

    + Floating-point remainder. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of floating-point Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_FLOATINGPOINT_RTI + + + + +  + +
    +
    +
    +

    + Floating-point round to integral. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of floating-point Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_FLOATINGPOINT_MIN + + + + +  + +
    +
    +
    +

    + Floating-point minimum. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort RoundingMode +

        +
      • +
      • +

        + + + 2: + + + Term of floating-point Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_FLOATINGPOINT_MAX + + + + +  + +
    +
    +
    +

    + Floating-point maximum. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of floating-point Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_FLOATINGPOINT_LEQ + + + + +  + +
    +
    +
    +

    + Floating-point less than or equal. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of floating-point Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_FLOATINGPOINT_LT + + + + +  + +
    +
    +
    +

    + Floating-point less than. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of floating-point Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_FLOATINGPOINT_GEQ + + + + +  + +
    +
    +
    +

    + Floating-point greater than or equal. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of floating-point Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_FLOATINGPOINT_GT + + + + +  + +
    +
    +
    +

    + Floating-point greater than. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of floating-point Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_FLOATINGPOINT_IS_NORMAL + + + + +  + +
    +
    +
    +

    + Floating-point is normal tester. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of floating-point Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_FLOATINGPOINT_IS_SUBNORMAL + + + + +  + +
    +
    +
    +

    + Floating-point is sub-normal tester. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of floating-point Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_FLOATINGPOINT_IS_ZERO + + + + +  + +
    +
    +
    +

    + Floating-point is zero tester. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of floating-point Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_FLOATINGPOINT_IS_INF + + + + +  + +
    +
    +
    +

    + Floating-point is infinite tester. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of floating-point Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_FLOATINGPOINT_IS_NAN + + + + +  + +
    +
    +
    +

    + Floating-point is NaN tester. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of floating-point Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_FLOATINGPOINT_IS_NEG + + + + +  + +
    +
    +
    +

    + Floating-point is negative tester. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of floating-point Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_FLOATINGPOINT_IS_POS + + + + +  + +
    +
    +
    +

    + Floating-point is positive tester. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of floating-point Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_IEEE_BV + + + + +  + +
    +
    +
    +

    + Conversion to floating-point from IEEE-754 bit-vector. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of bit-vector Sort +

        +
      • +
      +
    • +
    • +

      + Indices: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + The exponent size +

        +
      • +
      • +

        + + + 2: + + + The significand size +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_FP + + + + +  + +
    +
    +
    +

    + Conversion to floating-point from floating-point. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort RoundingMode +

        +
      • +
      • +

        + + + 2: + + + Term of floating-point Sort +

        +
      • +
      +
    • +
    • +

      + Indices: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + The exponent size +

        +
      • +
      • +

        + + + 2: + + + The significand size +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_REAL + + + + +  + +
    +
    +
    +

    + Conversion to floating-point from Real. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort RoundingMode +

        +
      • +
      • +

        + + + 2: + + + Term of Sort Real +

        +
      • +
      +
    • +
    • +

      + Indices: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + The exponent size +

        +
      • +
      • +

        + + + 2: + + + The significand size +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_SBV + + + + +  + +
    +
    +
    +

    + Conversion to floating-point from signed bit-vector. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort RoundingMode +

        +
      • +
      • +

        + + + 2: + + + Term of bit-vector Sort +

        +
      • +
      +
    • +
    • +

      + Indices: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + The exponent size +

        +
      • +
      • +

        + + + 2: + + + The significand size +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_UBV + + + + +  + +
    +
    +
    +

    + Conversion to floating-point from unsigned bit-vector. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort RoundingMode +

        +
      • +
      • +

        + + + 2: + + + Term of bit-vector Sort +

        +
      • +
      +
    • +
    • +

      + Indices: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + The exponent size +

        +
      • +
      • +

        + + + 2: + + + The significand size +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_FLOATINGPOINT_TO_UBV + + + + +  + +
    +
    +
    +

    + Conversion to unsigned bit-vector from floating-point. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort RoundingMode +

        +
      • +
      • +

        + + + 2: + + + Term of floating-point Sort +

        +
      • +
      +
    • +
    • +

      + Indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + The size of the bit-vector to convert to. +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_FLOATINGPOINT_TO_SBV + + + + +  + +
    +
    +
    +

    + Conversion to signed bit-vector from floating-point. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort RoundingMode +

        +
      • +
      • +

        + + + 2: + + + Term of floating-point Sort +

        +
      • +
      +
    • +
    • +

      + Indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + The size of the bit-vector to convert to. +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_FLOATINGPOINT_TO_REAL + + + + +  + +
    +
    +
    +

    + Conversion to Real from floating-point. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort Real +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_SELECT + + + + +  + +
    +
    +
    +

    + Array select. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of array Sort +

        +
      • +
      • +

        + + + 2: + + + Term of array index Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_STORE + + + + +  + +
    +
    +
    +

    + Array store. +

    +

    +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of array Sort +

        +
      • +
      • +

        + + + 2: + + + Term of array index Sort +

        +
      • +
      • +

        + + + 3: + + + Term of array element Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_CONST_ARRAY + + + + +  + +
    +
    +
    +

    + Constant array. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of array Sort +

        +
      • +
      • +

        + + + 2: + + + Term of array element Sort (value) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_EQ_RANGE + + + + +  + +
    +
    +
    +

    +

    +

    + Equality over arrays + + \(a\) + + and + + \(b\) + + over a given range + + \([i,j]\) + + , i.e., +

    +
    + \[\forall k . i \leq k \leq j \Rightarrow a[k] = b[k]\] +
    +

    +

    +
      +
    • +

      + Arity: + + + 4 + + +

      +
        +
      • +

        + + + 1: + + + Term of array Sort (first array) +

        +
      • +
      • +

        + + + 2: + + + Term of array Sort (second array) +

        +
      • +
      • +

        + + + 3: + + + Term of array index Sort (lower bound of range, inclusive) +

        +
      • +
      • +

        + + + 4: + + + Term of array index Sort (upper bound of range, inclusive) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +

    + Note +

    +

    + We currently support the creation of array equalities over index +Sorts bit-vector, floating-point, Int and Real. +Requires to enable option + + + arrays-exp + + + . +

    +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_APPLY_CONSTRUCTOR + + + + +  + +
    +
    +
    +

    + Datatype constructor application. +

    +

    +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 0 + + +

      +
        +
      • +

        + + + 1: + + + DatatypeConstructor Term (see DatatypeConstructor::getTerm() const) +

        +
      • +
      • +

        + + + 2..n: + + + Terms of the Sorts of the selectors of the constructor (the arguments to the constructor) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_APPLY_SELECTOR + + + + +  + +
    +
    +
    +

    + Datatype selector application. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + DatatypeSelector Term (see DatatypeSelector::getTerm() const) +

        +
      • +
      • +

        + + + 2: + + + Term of the codomain Sort of the selector +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +

    + Note +

    +

    + Undefined if misapplied. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_APPLY_TESTER + + + + +  + +
    +
    +
    +

    + Datatype tester application. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Datatype tester Term (see DatatypeConstructor::getTesterTerm() const) +

        +
      • +
      • +

        + + + 2: + + + Term of Datatype Sort (DatatypeConstructor must belong to this Datatype Sort) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_APPLY_UPDATER + + + + +  + +
    +
    +
    +

    + Datatype update application. +

    +

    +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Datatype updater Term (see DatatypeSelector::getUpdaterTerm() const) +

        +
      • +
      • +

        + + + 2: + + + Term of Datatype Sort (DatatypeSelector of the updater must belong to a constructor of this Datatype Sort) +

        +
      • +
      • +

        + + + 3: + + + Term of the codomain Sort of the selector (the Term to update the field of the datatype term with) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +

    + Note +

    +

    + Does not change the datatype argument if misapplied. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_MATCH + + + + +  + +
    +
    +
    +

    + Match expression. +

    +

    + This kind is primarily used in the parser to support the SMT-LIBv2 + + + match + + + expression. +

    +

    + For example, the SMT-LIBv2 syntax for the following match term +

    +

    +

    +
    +
    +
    (match l (((cons h t) h) (nil 0)))
    +
    +
    +
    +

    + is represented by the AST +

    +
    +
    +
    (MATCH l
    +    (MATCH_BIND_CASE (VARIABLE_LIST h t) (cons h t) h)
    +    (MATCH_CASE nil 0))
    +
    +
    +
    +

    + Terms of kind + + + MATCH_CASE + + + are constant case expressions, +which are used for nullary constructors. Kind + + + MATCH_BIND_CASE + + + is used for constructors with selectors +and variable match patterns. If not all constructors are covered, at least +one catch-all variable pattern must be included. +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of kind + + + MATCH_CASE + + + and + + + MATCH_BIND_CASE + + +

        +
      • +
      +
    • +
    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_MATCH_CASE + + + + +  + +
    +
    +
    +

    + Match case for nullary constructors. +

    +

    + A (constant) case expression to be used within a match expression. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of kind + + + APPLY_CONSTRUCTOR + + + (the pattern to match against) +

        +
      • +
      • +

        + + + 2: + + + Term of any Sort (the term the match term evaluates to) +

        +
      • +
      +
    • +
    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_MATCH_BIND_CASE + + + + +  + +
    +
    +
    +

    + Match case with binders, for constructors with selectors and variable patterns. +

    +

    + A (non-constant) case expression to be used within a match expression. +

    +

    +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + For variable patterns: +

        +
          +
        • +

          + + + 1: + + + Term of kind + + + VARIABLE_LIST + + + (containing the free variable of the case) +

          +
        • +
        • +

          + + + 2: + + + Term of kind + + + VARIABLE + + + (the pattern expression, the free variable of the case) +

          +
        • +
        • +

          + + + 3: + + + Term of any Sort (the term the pattern evaluates to) +

          +
        • +
        +
      • +
      • +

        + For constructors with selectors: +

        +
          +
        • +

          + + + 1: + + + Term of kind + + + VARIABLE_LIST + + + (containing the free variable of the case) +

          +
        • +
        • +

          + + + 2: + + + Term of kind + + + APPLY_CONSTRUCTOR + + + (the pattern expression, applying the set of variables to the constructor) +

          +
        • +
        • +

          + + + 3: + + + Term of any Sort (the term the match term evaluates to) +

          +
        • +
        +
      • +
      +
    • +
    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_TUPLE_PROJECT + + + + +  + +
    +
    +
    +

    + Tuple projection. +

    +

    + This operator takes a tuple as an argument and returns a tuple obtained by concatenating components of its argument at the provided indices. +

    +

    + For example, +

    +

    +

    +
    +
    +
    ((_ tuple.project 1 2 2 3 1) (tuple 10 20 30 40))
    +
    +
    +
    + yields +

    +

    +
    +
    +
    (tuple 20 30 30 40 20)
    +
    +
    +
    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of tuple Sort +

        +
      • +
      +
    • +
    • +

      + Indices: + + + n + + +

      +
        +
      • +

        + + + 1..n: + + + The tuple indices to project +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_NULLABLE_LIFT + + + + +  + +
    +
    +
    +

    + Lifting operator for nullable terms. This operator lifts a built-in operator or a user-defined function to nullable terms. For built-in kinds use mkNullableLift. For user-defined functions use mkTerm. +

    +

    +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
    • +
    • +

      + + + 1..n: + + + Terms of nullable sort +

      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkNullableLift(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_SEP_NIL + + + + +  + +
    +
    +
    +

    + Separation logic nil. +

    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkSepNil(const Sort&) const +

        +
      • +
      +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_SEP_EMP + + + + +  + +
    +
    +
    +

    + Separation logic empty heap. +

    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkSepEmp() const +

        +
      • +
      +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_SEP_PTO + + + + +  + +
    +
    +
    +

    + Separation logic points-to relation. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term denoting the location of the points-to constraint +

        +
      • +
      • +

        + + + 2: + + + Term denoting the data of the points-to constraint +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_SEP_STAR + + + + +  + +
    +
    +
    +

    + Separation logic star. +

    +

    +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of sort Bool (the child constraints that hold in disjoint (separated) heaps) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_SEP_WAND + + + + +  + +
    +
    +
    +

    + Separation logic magic wand. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Terms of Sort Bool (the antecendant of the magic wand constraint) +

        +
      • +
      • +

        + + + 2: + + + Terms of Sort Bool (conclusion of the magic wand constraint, which is asserted to hold in all heaps that are disjoint extensions of the antecedent) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_SET_EMPTY + + + + +  + +
    +
    +
    +

    + Empty set. +

    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkEmptySet(const Sort&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_SET_UNION + + + + +  + +
    +
    +
    +

    + Set union. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of set Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_SET_INTER + + + + +  + +
    +
    +
    +

    + Set intersection. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of set Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_SET_MINUS + + + + +  + +
    +
    +
    +

    + Set subtraction. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of set Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_SET_SUBSET + + + + +  + +
    +
    +
    +

    + Subset predicate. +

    +

    + Determines if the first set is a subset of the second set. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of set Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_SET_MEMBER + + + + +  + +
    +
    +
    +

    + Set membership predicate. +

    +

    + Determines if the given set element is a member of the second set. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of any Sort (must match the element Sort of the given set Term) +

        +
      • +
      • +

        + + + 2: + + + Term of set Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_SET_SINGLETON + + + + +  + +
    +
    +
    +

    + Singleton set. +

    +

    + Construct a singleton set from an element given as a parameter. The returned set has the same Sort as the element. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of any Sort (the set element) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_SET_INSERT + + + + +  + +
    +
    +
    +

    + The set obtained by inserting elements; +

    +

    +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 0 + + +

      +
        +
      • +

        + + + 1..n-1: + + + Terms of any Sort (must match the element sort of the given set Term) +

        +
      • +
      • +

        + + + n: + + + Term of set Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_SET_CARD + + + + +  + +
    +
    +
    +

    + Set cardinality. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of set Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_SET_COMPLEMENT + + + + +  + +
    +
    +
    +

    + Set complement with respect to finite universe. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of set Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_SET_UNIVERSE + + + + +  + +
    +
    +
    +

    + Finite universe set. +

    +

    + All set variables must be interpreted as subsets of it. +

    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkUniverseSet(const Sort&) const +

        +
      • +
      +
    • +
    +
    +

    + Note +

    +

    + + + SET_UNIVERSE + + + is considered a special symbol of +the theory of sets and is not considered as a set value, i.e., +Term::isSetValue() will return + + + false + + + . +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_SET_COMPREHENSION + + + + +  + +
    +
    +
    +

    + Set comprehension +

    +

    +

    +

    + A set comprehension is specified by a variable list + + \(x_1 ... x_n\) + + , +a predicate + + \(P[x_1...x_n]\) + + , and a term + + \(t[x_1...x_n]\) + + . A +comprehension + + \(C\) + + with the above form has members given by the +following semantics: +

    +
    + \[\forall y. ( \exists x_1...x_n. P[x_1...x_n] \wedge t[x_1...x_n] = y ) +\Leftrightarrow (set.member \; y \; C)\] +
    +

    + where + + \(y\) + + ranges over the element Sort of the (set) Sort of the +comprehension. If + + \(t[x_1..x_n]\) + + is not provided, it is equivalent +to + + \(y\) + + in the above formula. +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of Kind + + + VARIABLE_LIST + + +

        +
      • +
      • +

        + + + 2: + + + Term of sort Bool (the predicate of the comprehension) +

        +
      • +
      • +

        + + + 3: + + + (optional) Term denoting the generator for the comprehension +

        +
      • +
      +
    • +
    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_SET_CHOOSE + + + + +  + +
    +
    +
    +

    + Set choose. +

    +

    + Select an element from a given set. For a set + + \(A = \{x\}\) + + , the term +(set.choose + + \(A\) + + ) is equivalent to the term + + \(x_1\) + + . For an empty +set, it is an arbitrary value. For a set with cardinality > 1, it will +deterministically return an element in + + \(A\) + + . +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of set Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_SET_IS_EMPTY + + + + +  + +
    +
    +
    +

    + Set is empty tester. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of set Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_SET_IS_SINGLETON + + + + +  + +
    +
    +
    +

    + Set is singleton tester. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of set Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_SET_MAP + + + + +  + +
    +
    +
    +

    + Set map. +

    +

    +

    +

    + This operator applies the first argument, a function of +Sort + + \((\rightarrow S_1 \; S_2)\) + + , to every element of the second +argument, a set of Sort (Set + + \(S_1\) + + ), and returns a set of Sort +(Set + + \(S_2\) + + ). +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of function Sort + + \((\rightarrow S_1 \; S_2)\) + +

        +
      • +
      • +

        + + + 2: + + + Term of set Sort (Set + + \(S_1\) + + ) +

        +
      • +
      +
    • +
    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_SET_FILTER + + + + +  + +
    +
    +
    +

    + Set filter. +

    +

    +

    +

    + This operator filters the elements of a set. +(set.filter + + \(p \; A\) + + ) takes a predicate + + \(p\) + + of Sort + + \((\rightarrow T \; Bool)\) + + as a first argument, and a set + + \(A\) + + of Sort (Set + + \(T\) + + ) as a second argument, and returns a subset of Sort +(Set + + \(T\) + + ) that includes all elements of + + \(A\) + + that satisfy + + \(p\) + + . +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of function Sort + + \((\rightarrow T \; Bool)\) + +

        +
      • +
      • +

        + + + 2: + + + Term of bag Sort (Set + + \(T\) + + ) +

        +
      • +
      +
    • +
    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_SET_ALL + + + + +  + +
    +
    +
    +

    + Set all. +

    +

    +

    +

    + This operator checks whether all elements of a set satisfy a predicate. +(set.all + + \(p \; A\) + + ) takes a predicate + + \(p\) + + of Sort + + \((\rightarrow T \; Bool)\) + + as a first argument, and a set + + \(A\) + + of Sort (Set + + \(T\) + + ) as a second argument, and returns true iff all +elements of + + \(A\) + + satisfy predicate + + \(p\) + + . +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of function Sort + + \((\rightarrow T \; Bool)\) + +

        +
      • +
      • +

        + + + 2: + + + Term of bag Sort (Set + + \(T\) + + ) +

        +
      • +
      +
    • +
    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_SET_SOME + + + + +  + +
    +
    +
    +

    + Set some. +

    +

    +

    +

    + This operator checks whether at least one element of a set satisfies a predicate. +(set.some + + \(p \; A\) + + ) takes a predicate + + \(p\) + + of Sort + + \((\rightarrow T \; Bool)\) + + as a first argument, and a set + + \(A\) + + of Sort (Set + + \(T\) + + ) as a second argument, and returns true iff at least +one element of + + \(A\) + + satisfies predicate + + \(p\) + + . +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of function Sort + + \((\rightarrow T \; Bool)\) + +

        +
      • +
      • +

        + + + 2: + + + Term of bag Sort (Set + + \(T\) + + ) +

        +
      • +
      +
    • +
    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_SET_FOLD + + + + +  + +
    +
    +
    +

    + Set fold. +

    +

    +

    +

    + This operator combines elements of a set into a single value. +(set.fold + + \(f \; t \; A\) + + ) folds the elements of set + + \(A\) + + starting with Term + + \(t\) + + and using the combining function + + \(f\) + + . +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of function Sort + + \((\rightarrow S_1 \; S_2 \; S_2)\) + +

        +
      • +
      • +

        + + + 2: + + + Term of Sort + + \(S_2\) + + (the initial value) +

        +
      • +
      • +

        + + + 3: + + + Term of bag Sort (Set + + \(S_1\) + + ) +

        +
      • +
      +
    • +
    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_RELATION_JOIN + + + + +  + +
    +
    +
    +

    + Relation join. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of relation Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_RELATION_TABLE_JOIN + + + + +  + +
    +
    +
    +

    +

    +

    +

    +
    +
    +

    + Table join operator for relations has the form + + \(((\_ \; rel.table\_join \; m_1 \; n_1 \; \dots \; m_k \; n_k) \; A \; B)\) + + where + + \(m_1 \; n_1 \; \dots \; m_k \; n_k\) + + are natural numbers, +and + + \(A, B\) + + are relations. +This operator filters the product of two sets based on the equality of +projected tuples using indices + + \(m_1, \dots, m_k\) + + in relation + + \(A\) + + , +and indices + + \(n_1, \dots, n_k\) + + in relation + + \(B\) + + . +

    +
    +
    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of relation Sort +

        +
      • +
      • +

        + + + 2: + + + Term of relation Sort +

        +
      • +
      +
    • +
    • +

      + Indices: + + + n + + + - + + + 1..n: + + + Indices of the projection +

      +
    • +
    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_RELATION_PRODUCT + + + + +  + +
    +
    +
    +

    + Relation cartesian product. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of relation Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_RELATION_TRANSPOSE + + + + +  + +
    +
    +
    +

    + Relation transpose. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of relation Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_RELATION_TCLOSURE + + + + +  + +
    +
    +
    +

    + Relation transitive closure. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of relation Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_RELATION_JOIN_IMAGE + + + + +  + +
    +
    +
    +

    + Relation join image. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of relation Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_RELATION_IDEN + + + + +  + +
    +
    +
    +

    + Relation identity. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of relation Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_RELATION_GROUP + + + + +  + +
    +
    +
    +

    + Relation group +

    +

    +

    +

    + + \(((\_ \; rel.group \; n_1 \; \dots \; n_k) \; A)\) + + partitions tuples +of relation + + \(A\) + + such that tuples that have the same projection +with indices + + \(n_1 \; \dots \; n_k\) + + are in the same part. +It returns a set of relations of type + + \((Set \; T)\) + + where + + \(T\) + + is the type of + + \(A\) + + . +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of relation sort +

        +
      • +
      +
    • +
    • +

      + Indices: + + + n + + +

      +
        +
      • +

        + + + 1..n: + + + Indices of the projection +

        +
      • +
      +
    • +
    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_RELATION_AGGREGATE + + + + +  + +
    +
    +
    +

    +

    +

    +

    +

    + Relation aggregate operator has the form + + \(((\_ \; rel.aggr \; n_1 ... n_k) \; f \; i \; A)\) + + where + + \(n_1, ..., n_k\) + + are natural numbers, + + \(f\) + + is a function of type + + \((\rightarrow (Tuple \; T_1 \; ... \; T_j)\; T \; T)\) + + , + + \(i\) + + has the type + + \(T\) + + , +and + + \(A\) + + has type + + \((Relation \; T_1 \; ... \; T_j)\) + + . +The returned type is + + \((Set \; T)\) + + . +

    +

    + This operator aggregates elements in A that have the same tuple projection +with indices n_1, …, n_k using the combining function + + \(f\) + + , +and initial value + + \(i\) + + . +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of sort + + \((\rightarrow (Tuple \; T_1 \; ... \; T_j)\; T \; T)\) + +

        +
      • +
      • +

        + + + 2: + + + Term of Sort + + \(T\) + +

        +
      • +
      • +

        + + + 3: + + + Term of relation sort + + \(Relation T_1 ... T_j\) + +

        +
      • +
      +
    • +
    • +

      + Indices: + + + n + + + - + + + 1..n: + + + Indices of the projection +

      +
    • +
    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_RELATION_PROJECT + + + + +  + +
    +
    +
    +

    + Relation projection operator extends tuple projection operator to sets. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of relation Sort +

        +
      • +
      +
    • +
    • +

      + Indices: + + + n + + +

      +
        +
      • +

        + + + 1..n: + + + Indices of the projection +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +

        +

        +
      • +
      +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BAG_EMPTY + + + + +  + +
    +
    +
    +

    + Empty bag. +

    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkEmptyBag(const Sort&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BAG_UNION_MAX + + + + +  + +
    +
    +
    +

    + Bag max union. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of bag Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BAG_UNION_DISJOINT + + + + +  + +
    +
    +
    +

    + Bag disjoint union (sum). +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of bag Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BAG_INTER_MIN + + + + +  + +
    +
    +
    +

    + Bag intersection (min). +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of bag Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BAG_DIFFERENCE_SUBTRACT + + + + +  + +
    +
    +
    +

    + Bag difference subtract. +

    +

    + Subtracts multiplicities of the second from the first. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of bag Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BAG_DIFFERENCE_REMOVE + + + + +  + +
    +
    +
    +

    + Bag difference remove. +

    +

    + Removes shared elements in the two bags. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of bag Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BAG_SUBBAG + + + + +  + +
    +
    +
    +

    + Bag inclusion predicate. +

    +

    + Determine if multiplicities of the first bag are less than or equal to multiplicities of the second bag. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of bag Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BAG_COUNT + + + + +  + +
    +
    +
    +

    + Bag element multiplicity. +

    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const Term&, const Term&) const +

        +
      • +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BAG_MEMBER + + + + +  + +
    +
    +
    +

    + Bag membership predicate. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of any Sort (must match the element Sort of the given bag Term) +

        +
      • +
      • +

        + + + 2: + + + Terms of bag Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BAG_SETOF + + + + +  + +
    +
    +
    +

    + Bag setof. +

    +

    + Eliminate duplicates in a given bag. The returned bag contains exactly the same elements in the given bag, but with multiplicity one. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of bag Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BAG_MAKE + + + + +  + +
    +
    +
    +

    + Bag make. +

    +

    + Construct a bag with the given element and given multiplicity. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of any Sort (the bag element) +

        +
      • +
      • +

        + + + 2: + + + Term of Sort Int (the multiplicity of the element) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BAG_CARD + + + + +  + +
    +
    +
    +

    + Bag cardinality. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of bag Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BAG_CHOOSE + + + + +  + +
    +
    +
    +

    + Bag choose. +

    +

    + Select an element from a given bag. +

    +

    + For a bag + + \(A = \{(x,n)\}\) + + where + + \(n\) + + is the multiplicity, then +the term (choose + + \(A\) + + ) is equivalent to the term + + \(x\) + + . For an +empty bag, then it is an arbitrary value. For a bag that contains distinct +elements, it will deterministically return an element in + + \(A\) + + . +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of bag Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BAG_MAP + + + + +  + +
    +
    +
    +

    + Bag map. +

    +

    +

    +

    + This operator applies the first argument, a function of +Sort + + \((\rightarrow S_1 \; S_2)\) + + , to every element of the second +argument, a set of Sort (Bag + + \(S_1\) + + ), and returns a set of Sort +(Bag + + \(S_2\) + + ). +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of function Sort + + \((\rightarrow S_1 \; S_2)\) + +

        +
      • +
      • +

        + + + 2: + + + Term of bag Sort (Bag + + \(S_1\) + + ) +

        +
      • +
      +
    • +
    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BAG_FILTER + + + + +  + +
    +
    +
    +

    + Bag filter. +

    +

    +

    +

    + This operator filters the elements of a bag. +(bag.filter + + \(p \; B\) + + ) takes a predicate + + \(p\) + + of Sort + + \((\rightarrow T \; Bool)\) + + as a first argument, and a bag + + \(B\) + + of Sort (Bag + + \(T\) + + ) as a second argument, and returns a subbag of Sort +(Bag + + \(T\) + + ) that includes all elements of + + \(B\) + + that satisfy + + \(p\) + + with the same multiplicity. +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of function Sort + + \((\rightarrow T \; Bool)\) + +

        +
      • +
      • +

        + + + 2: + + + Term of bag Sort (Bag + + \(T\) + + ) +

        +
      • +
      +
    • +
    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BAG_FOLD + + + + +  + +
    +
    +
    +

    + Bag fold. +

    +

    +

    +

    + This operator combines elements of a bag into a single value. +(bag.fold + + \(f \; t \; B\) + + ) folds the elements of bag + + \(B\) + + starting with Term + + \(t\) + + and using the combining function + + \(f\) + + . +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of function Sort + + \((\rightarrow S_1 \; S_2 \; S_2)\) + +

        +
      • +
      • +

        + + + 2: + + + Term of Sort + + \(S_2\) + + (the initial value) +

        +
      • +
      • +

        + + + 3: + + + Term of bag Sort (Bag + + \(S_1\) + + ) +

        +
      • +
      +
    • +
    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_BAG_PARTITION + + + + +  + +
    +
    +
    +

    + Bag partition. +

    +

    +

    +

    + This operator partitions of a bag of elements into disjoint bags. +(bag.partition + + \(r \; B\) + + ) partitions the elements of bag + + \(B\) + + of type + + \((Bag \; E)\) + + based on the equivalence relations + + \(r\) + + of +type + + \((\rightarrow \; E \; E \; Bool)\) + + . +It returns a bag of bags of type + + \((Bag \; (Bag \; E))\) + + . +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of function Sort + + \((\rightarrow \; E \; E \; Bool)\) + +

        +
      • +
      • +

        + + + 2: + + + Term of bag Sort (Bag + + \(E\) + + ) +

        +
      • +
      +
    • +
    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_TABLE_PRODUCT + + + + +  + +
    +
    +
    +

    + Table cross product. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of table Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_TABLE_PROJECT + + + + +  + +
    +
    +
    +

    + Table projection operator extends tuple projection operator to tables. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of table Sort +

        +
      • +
      +
    • +
    • +

      + Indices: + + + n + + +

      +
        +
      • +

        + + + 1..n: + + + Indices of the projection +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +

        +

        +
      • +
      +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_TABLE_AGGREGATE + + + + +  + +
    +
    +
    +

    +

    +

    +

    +

    + Table aggregate operator has the form + + \(((\_ \; table.aggr \; n_1 ... n_k) \; f \; i \; A)\) + + where + + \(n_1, ..., n_k\) + + are natural numbers, + + \(f\) + + is a function of type + + \((\rightarrow (Tuple \; T_1 \; ... \; T_j)\; T \; T)\) + + , + + \(i\) + + has the type + + \(T\) + + , +and + + \(A\) + + has type + + \((Table \; T_1 \; ... \; T_j)\) + + . +The returned type is + + \((Bag \; T)\) + + . +

    +

    + This operator aggregates elements in A that have the same tuple projection +with indices n_1, …, n_k using the combining function + + \(f\) + + , +and initial value + + \(i\) + + . +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of sort + + \((\rightarrow (Tuple \; T_1 \; ... \; T_j)\; T \; T)\) + +

        +
      • +
      • +

        + + + 2: + + + Term of Sort + + \(T\) + +

        +
      • +
      • +

        + + + 3: + + + Term of table sort + + \(Table T_1 ... T_j\) + +

        +
      • +
      +
    • +
    • +

      + Indices: + + + n + + + - + + + 1..n: + + + Indices of the projection +

      +
    • +
    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_TABLE_JOIN + + + + +  + +
    +
    +
    +

    +

    +

    +

    +
    +
    +

    + Table join operator has the form + + \(((\_ \; table.join \; m_1 \; n_1 \; \dots \; m_k \; n_k) \; A \; B)\) + + where + + \(m_1 \; n_1 \; \dots \; m_k \; n_k\) + + are natural numbers, +and + + \(A, B\) + + are tables. +This operator filters the product of two bags based on the equality of +projected tuples using indices + + \(m_1, \dots, m_k\) + + in table + + \(A\) + + , +and indices + + \(n_1, \dots, n_k\) + + in table + + \(B\) + + . +

    +
    +
    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of table Sort +

        +
      • +
      • +

        + + + 2: + + + Term of table Sort +

        +
      • +
      +
    • +
    • +

      + Indices: + + + n + + + - + + + 1..n: + + + Indices of the projection +

      +
    • +
    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_TABLE_GROUP + + + + +  + +
    +
    +
    +

    + Table group +

    +

    +

    +

    + + \(((\_ \; table.group \; n_1 \; \dots \; n_k) \; A)\) + + partitions tuples +of table + + \(A\) + + such that tuples that have the same projection +with indices + + \(n_1 \; \dots \; n_k\) + + are in the same part. +It returns a bag of tables of type + + \((Bag \; T)\) + + where + + \(T\) + + is the type of + + \(A\) + + . +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of table sort +

        +
      • +
      +
    • +
    • +

      + Indices: + + + n + + +

      +
        +
      • +

        + + + 1..n: + + + Indices of the projection +

        +
      • +
      +
    • +
    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_STRING_CONCAT + + + + +  + +
    +
    +
    +

    + String concat. +

    +

    +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of Sort String +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_STRING_IN_REGEXP + + + + +  + +
    +
    +
    +

    + String membership. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String +

        +
      • +
      • +

        + + + 2: + + + Term of Sort RegLan +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_STRING_LENGTH + + + + +  + +
    +
    +
    +

    + String length. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_STRING_SUBSTR + + + + +  + +
    +
    +
    +

    + String substring. +

    +

    +

    +

    + Extracts a substring, starting at index + + \(i\) + + and of length + + \(l\) + + , +from a string + + \(s\) + + . If the start index is negative, the start index +is greater than the length of the string, or the length is negative, the +result is the empty string. +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String +

        +
      • +
      • +

        + + + 2: + + + Term of Sort Int (index + + \(i\) + + ) +

        +
      • +
      • +

        + + + 3: + + + Term of Sort Int (length + + \(l\) + + ) +

        +
      • +
      +
    • +
    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_STRING_UPDATE + + + + +  + +
    +
    +
    +

    + String update. +

    +

    +

    +

    + Updates a string + + \(s\) + + by replacing its context starting at an index +with string + + \(t\) + + . If the start index is negative, the start index is +greater than the length of the string, the result is + + \(s\) + + . Otherwise, +the length of the original string is preserved. +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String +

        +
      • +
      • +

        + + + 2: + + + Term of Sort Int (index + + \(i\) + + ) +

        +
      • +
      • +

        + + + 3: + + + Term of Sort Strong (replacement string + + \(t\) + + ) +

        +
      • +
      +
    • +
    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_STRING_CHARAT + + + + +  + +
    +
    +
    +

    + String character at. +

    +

    +

    +

    + Returns the character at index + + \(i\) + + from a string + + \(s\) + + . If the +index is negative or the index is greater than the length of the string, +the result is the empty string. Otherwise the result is a string of +length 1. +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String (string + + \(s\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of Sort Int (index + + \(i\) + + ) +

        +
      • +
      +
    • +
    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_STRING_CONTAINS + + + + +  + +
    +
    +
    +

    + String contains. +

    +

    +

    +

    + Determines whether a string + + \(s_1\) + + contains another string + + \(s_2\) + + . If + + \(s_2\) + + is empty, the result is always + + + true + + + . +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String (the string + + \(s_1\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of Sort String (the string + + \(s_2\) + + ) +

        +
      • +
      +
    • +
    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_STRING_INDEXOF + + + + +  + +
    +
    +
    +

    + String index-of. +

    +

    +

    +

    + Returns the index of a substring + + \(s_2\) + + in a string + + \(s_1\) + + starting at index + + \(i\) + + . If the index is negative or greater than the +length of string + + \(s_1\) + + or the substring + + \(s_2\) + + does not appear +in string + + \(s_1\) + + after index + + \(i\) + + , the result is -1. +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String (substring + + \(s_1\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of Sort String (substring + + \(s_2\) + + ) +

        +
      • +
      • +

        + + + 3: + + + Term of Sort Int (index + + \(i\) + + ) +

        +
      • +
      +
    • +
    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_STRING_INDEXOF_RE + + + + +  + +
    +
    +
    +

    + String index-of regular expression match. +

    +

    +

    +

    + Returns the first match of a regular expression + + \(r\) + + in a +string + + \(s\) + + . If the index is negative or greater than the length of +string + + \(s_1\) + + , or + + \(r\) + + does not match a substring in + + \(s\) + + after index + + \(i\) + + , the result is -1. +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String (string + + \(s\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of Sort RegLan (regular expression + + \(r\) + + ) +

        +
      • +
      • +

        + + + 3: + + + Term of Sort Int (index + + \(i\) + + ) +

        +
      • +
      +
    • +
    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_STRING_REPLACE + + + + +  + +
    +
    +
    +

    + String replace. +

    +

    +

    +

    + Replaces a string + + \(s_2\) + + in a string + + \(s_1\) + + with string + + \(s_3\) + + . If + + \(s_2\) + + does not appear in + + \(s_1\) + + , + + \(s_1\) + + is +returned unmodified. +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String (string + + \(s_1\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of Sort String (string + + \(s_2\) + + ) +

        +
      • +
      • +

        + + + 3: + + + Term of Sort String (string + + \(s_3\) + + ) +

        +
      • +
      +
    • +
    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_STRING_REPLACE_ALL + + + + +  + +
    +
    +
    +

    + String replace all. +

    +

    +

    +

    + Replaces all occurrences of a string + + \(s_2\) + + in a string + + \(s_1\) + + with string + + \(s_3\) + + . If + + \(s_2\) + + does not appear in + + \(s_1\) + + , + + \(s_1\) + + is returned unmodified. +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String ( + + \(s_1\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of Sort String ( + + \(s_2\) + + ) +

        +
      • +
      • +

        + + + 3: + + + Term of Sort String ( + + \(s_3\) + + ) +

        +
      • +
      +
    • +
    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_STRING_REPLACE_RE + + + + +  + +
    +
    +
    +

    + String replace regular expression match. +

    +

    +

    +

    + Replaces the first match of a regular expression + + \(r\) + + in +string + + \(s_1\) + + with string + + \(s_2\) + + . If + + \(r\) + + does not match a +substring of + + \(s_1\) + + , + + \(s_1\) + + is returned unmodified. +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String ( + + \(s_1\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of Sort RegLan +

        +
      • +
      • +

        + + + 3: + + + Term of Sort String ( + + \(s_2\) + + ) +

        +
      • +
      +
    • +
    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_STRING_REPLACE_RE_ALL + + + + +  + +
    +
    +
    +

    + String replace all regular expression matches. +

    +

    +

    +

    + Replaces all matches of a regular expression + + \(r\) + + in string + + \(s_1\) + + with string + + \(s_2\) + + . If + + \(r\) + + does not match a +substring of + + \(s_1\) + + , string + + \(s_1\) + + is returned unmodified. +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String ( + + \(s_1\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of Sort RegLan +

        +
      • +
      • +

        + + + 3: + + + Term of Sort String ( + + \(s_2\) + + ) +

        +
      • +
      +
    • +
    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_STRING_TO_LOWER + + + + +  + +
    +
    +
    +

    + String to lower case. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_STRING_TO_UPPER + + + + +  + +
    +
    +
    +

    + String to upper case. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_STRING_REV + + + + +  + +
    +
    +
    +

    + String reverse. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_STRING_TO_CODE + + + + +  + +
    +
    +
    +

    + String to code. +

    +

    + Returns the code point of a string if it has length one, or returns + + + -1 + + + otherwise. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_STRING_FROM_CODE + + + + +  + +
    +
    +
    +

    + String from code. +

    +

    + Returns a string containing a single character whose code point matches the argument to this function, or the empty string if the argument is out-of-bounds. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort Int +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_STRING_LT + + + + +  + +
    +
    +
    +

    + String less than. +

    +

    +

    +

    + Returns true if string + + \(s_1\) + + is (strictly) less than + + \(s_2\) + + based on a lexiographic ordering over code points. +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String ( + + \(s_1\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of Sort String ( + + \(s_2\) + + ) +

        +
      • +
      +
    • +
    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_STRING_LEQ + + + + +  + +
    +
    +
    +

    + String less than or equal. +

    +

    +

    +

    + Returns true if string + + \(s_1\) + + is less than or equal to + + \(s_2\) + + based on a lexiographic ordering over code points. +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String ( + + \(s_1\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of Sort String ( + + \(s_2\) + + ) +

        +
      • +
      +
    • +
    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_STRING_PREFIX + + + + +  + +
    +
    +
    +

    + String prefix-of. +

    +

    +

    +

    + Determines whether a string + + \(s_1\) + + is a prefix of string + + \(s_2\) + + . +If string s1 is empty, this operator returns + + + true + + + . +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String ( + + \(s_1\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of Sort String ( + + \(s_2\) + + ) +

        +
      • +
      +
    • +
    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_STRING_SUFFIX + + + + +  + +
    +
    +
    +

    + String suffix-of. +

    +

    +

    +

    + Determines whether a string + + \(s_1\) + + is a suffix of the second string. +If string + + \(s_1\) + + is empty, this operator returns + + + true + + + . +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String ( + + \(s_1\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of Sort String ( + + \(s_2\) + + ) +

        +
      • +
      +
    • +
    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_STRING_IS_DIGIT + + + + +  + +
    +
    +
    +

    + String is-digit. +

    +

    + Returns true if given string is a digit (it is one of + + + "0" + + + , …, + + + "9" + + + ). +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_STRING_FROM_INT + + + + +  + +
    +
    +
    +

    + Conversion from Int to String. +

    +

    + If the integer is negative this operator returns the empty string. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort Int +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_STRING_TO_INT + + + + +  + +
    +
    +
    +

    + String to integer (total function). +

    +

    + If the string does not contain an integer or the integer is negative, the operator returns + + + -1 + + + . +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort Int +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_CONST_STRING + + + + +  + +
    +
    +
    +

    + Constant string. +

    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkString(const std::string&, bool) const +

        +
      • +
      • +

        + Solver::mkString(const std::wstring&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_STRING_TO_REGEXP + + + + +  + +
    +
    +
    +

    + Conversion from string to regexp. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_REGEXP_CONCAT + + + + +  + +
    +
    +
    +

    + Regular expression concatenation. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of Sort RegLan +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_REGEXP_UNION + + + + +  + +
    +
    +
    +

    + Regular expression union. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of Sort RegLan +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_REGEXP_INTER + + + + +  + +
    +
    +
    +

    + Regular expression intersection. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of Sort RegLan +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_REGEXP_DIFF + + + + +  + +
    +
    +
    +

    + Regular expression difference. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of Sort RegLan +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_REGEXP_STAR + + + + +  + +
    +
    +
    +

    + Regular expression *. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort RegLan +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_REGEXP_PLUS + + + + +  + +
    +
    +
    +

    + Regular expression +. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort RegLan +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_REGEXP_OPT + + + + +  + +
    +
    +
    +

    + Regular expression ?. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort RegLan +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_REGEXP_RANGE + + + + +  + +
    +
    +
    +

    + Regular expression range. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String (lower bound character for the range) +

        +
      • +
      • +

        + + + 2: + + + Term of Sort String (upper bound character for the range) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_REGEXP_REPEAT + + + + +  + +
    +
    +
    +

    + Operator for regular expression repeat. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort RegLan +

        +
      • +
      +
    • +
    • +

      + Indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + The number of repetitions +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_REGEXP_LOOP + + + + +  + +
    +
    +
    +

    + Regular expression loop. +

    +

    + Regular expression loop from lower bound to upper bound number of repetitions. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort RegLan +

        +
      • +
      +
    • +
    • +

      + Indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + The lower bound +

        +
      • +
      • +

        + + + 2: + + + The upper bound +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_REGEXP_NONE + + + + +  + +
    +
    +
    +

    + Regular expression none. +

    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkRegexpNone() const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_REGEXP_ALL + + + + +  + +
    +
    +
    +

    + Regular expression all. +

    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkRegexpAll() const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_REGEXP_ALLCHAR + + + + +  + +
    +
    +
    +

    + Regular expression all characters. +

    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkRegexpAllchar() const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_REGEXP_COMPLEMENT + + + + +  + +
    +
    +
    +

    + Regular expression complement. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort RegLan +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_SEQ_CONCAT + + + + +  + +
    +
    +
    +

    + Sequence concat. +

    +

    +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of sequence Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_SEQ_LENGTH + + + + +  + +
    +
    +
    +

    + Sequence length. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of sequence Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_SEQ_EXTRACT + + + + +  + +
    +
    +
    +

    + Sequence extract. +

    +

    +

    +

    + Extracts a subsequence, starting at index + + \(i\) + + and of length + + \(l\) + + , +from a sequence + + \(s\) + + . If the start index is negative, the start index +is greater than the length of the sequence, or the length is negative, the +result is the empty sequence. +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of sequence Sort +

        +
      • +
      • +

        + + + 2: + + + Term of Sort Int (index + + \(i\) + + ) +

        +
      • +
      • +

        + + + 3: + + + Term of Sort Int (length + + \(l\) + + ) +

        +
      • +
      +
    • +
    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_SEQ_UPDATE + + + + +  + +
    +
    +
    +

    + Sequence update. +

    +

    +

    +

    + Updates a sequence + + \(s\) + + by replacing its context starting at an index +with string + + \(t\) + + . If the start index is negative, the start index is +greater than the length of the sequence, the result is + + \(s\) + + . +Otherwise, the length of the original sequence is preserved. +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of sequence Sort +

        +
      • +
      • +

        + + + 2: + + + Term of Sort Int (index + + \(i\) + + ) +

        +
      • +
      • +

        + + + 3: + + + Term of sequence Sort (replacement sequence + + \(t\) + + ) +

        +
      • +
      +
    • +
    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_SEQ_AT + + + + +  + +
    +
    +
    +

    + Sequence element at. +

    +

    +

    +

    + Returns the element at index + + \(i\) + + from a sequence + + \(s\) + + . If the index +is negative or the index is greater or equal to the length of the +sequence, the result is the empty sequence. Otherwise the result is a +sequence of length + + + 1 + + + . +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of sequence Sort +

        +
      • +
      • +

        + + + 2: + + + Term of Sort Int (index + + \(i\) + + ) +

        +
      • +
      +
    • +
    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_SEQ_CONTAINS + + + + +  + +
    +
    +
    +

    + Sequence contains. +

    +

    +

    +

    + Checks whether a sequence + + \(s_1\) + + contains another sequence + + \(s_2\) + + . If + + \(s_2\) + + is empty, the result is always + + + true + + + . +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of sequence Sort ( + + \(s_1\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of sequence Sort ( + + \(s_2\) + + ) +

        +
      • +
      +
    • +
    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_SEQ_INDEXOF + + + + +  + +
    +
    +
    +

    + Sequence index-of. +

    +

    +

    +

    + Returns the index of a subsequence + + \(s_2\) + + in a sequence + + \(s_1\) + + starting at index + + \(i\) + + . If the index is negative or greater than the +length of sequence + + \(s_1\) + + or the subsequence + + \(s_2\) + + does not +appear in sequence + + \(s_1\) + + after index + + \(i\) + + , the result is -1. +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of sequence Sort ( + + \(s_1\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of sequence Sort ( + + \(s_2\) + + ) +

        +
      • +
      • +

        + + + 3: + + + Term of Sort Int ( + + \(i\) + + ) +

        +
      • +
      +
    • +
    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_SEQ_REPLACE + + + + +  + +
    +
    +
    +

    + Sequence replace. +

    +

    +

    +

    + Replaces the first occurrence of a sequence + + \(s_2\) + + in a +sequence + + \(s_1\) + + with sequence + + \(s_3\) + + . If + + \(s_2\) + + does not +appear in + + \(s_1\) + + , + + \(s_1\) + + is returned unmodified. +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of sequence Sort ( + + \(s_1\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of sequence Sort ( + + \(s_2\) + + ) +

        +
      • +
      • +

        + + + 3: + + + Term of sequence Sort ( + + \(s_3\) + + ) +

        +
      • +
      +
    • +
    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_SEQ_REPLACE_ALL + + + + +  + +
    +
    +
    +

    + Sequence replace all. +

    +

    +

    +

    + Replaces all occurrences of a sequence + + \(s_2\) + + in a sequence + + \(s_1\) + + with sequence + + \(s_3\) + + . If + + \(s_2\) + + does not appear in + + \(s_1\) + + , sequence + + \(s_1\) + + is returned unmodified. +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of sequence Sort ( + + \(s_1\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of sequence Sort ( + + \(s_2\) + + ) +

        +
      • +
      • +

        + + + 3: + + + Term of sequence Sort ( + + \(s_3\) + + ) +

        +
      • +
      +
    • +
    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_SEQ_REV + + + + +  + +
    +
    +
    +

    + Sequence reverse. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of sequence Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_SEQ_PREFIX + + + + +  + +
    +
    +
    +

    + Sequence prefix-of. +

    +

    +

    +

    + Checks whether a sequence + + \(s_1\) + + is a prefix of sequence + + \(s_2\) + + . +If sequence + + \(s_1\) + + is empty, this operator returns + + + true + + + . +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of sequence Sort ( + + \(s_1\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of sequence Sort ( + + \(s_2\) + + ) +

        +
      • +
      +
    • +
    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_SEQ_SUFFIX + + + + +  + +
    +
    +
    +

    + Sequence suffix-of. +

    +

    +

    +

    + Checks whether a sequence + + \(s_1\) + + is a suffix of sequence + + \(s_2\) + + . +If sequence + + \(s_1\) + + is empty, this operator returns + + + true + + + . +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of sequence Sort ( + + \(s_1\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of sequence Sort ( + + \(s_2\) + + ) +

        +
      • +
      +
    • +
    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_CONST_SEQUENCE + + + + +  + +
    +
    +
    +

    + Constant sequence. +

    +

    + A constant sequence is a term that is equivalent to: +

    +

    +

    +
    +
    +
    (seq.++ (seq.unit c1) ... (seq.unit cn))
    +
    +
    +
    +

    + where + + \(n \leq 0\) + + and + + \(c_1, ..., c_n\) + + are constants of some +sort. The elements can be extracted with Term::getSequenceValue(). +

    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkEmptySequence(const Sort&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_SEQ_UNIT + + + + +  + +
    +
    +
    +

    + Sequence unit. +

    +

    + Corresponds to a sequence of length one with the given term. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of any Sort (the element term) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_SEQ_NTH + + + + +  + +
    +
    +
    +

    + Sequence nth. +

    +

    + Corresponds to the nth element of a sequence. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of sequence Sort +

        +
      • +
      • +

        + + + 2: + + + Term of Sort Int ( + + \(n\) + + ) +

        +
      • +
      +
    • +
    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_FORALL + + + + +  + +
    +
    +
    +

    + Universally quantified formula. +

    +

    +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of Kind + + + VARIABLE_LIST + + +

        +
      • +
      • +

        + + + 2: + + + Term of Sort Bool (the quantifier body) +

        +
      • +
      • +

        + + + 3: + + + (optional) Term of Kind + + + INST_PATTERN + + +

        +
      • +
      +
    • +
    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_EXISTS + + + + +  + +
    +
    +
    +

    + Existentially quantified formula. +

    +

    +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of Kind + + + VARIABLE_LIST + + +

        +
      • +
      • +

        + + + 2: + + + Term of Sort Bool (the quantifier body) +

        +
      • +
      • +

        + + + 3: + + + (optional) Term of Kind + + + INST_PATTERN + + +

        +
      • +
      +
    • +
    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_VARIABLE_LIST + + + + +  + +
    +
    +
    +

    + Variable list. +

    +

    + A list of variables (used to bind variables under a quantifier) +

    +

    +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 0 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of Kind + + + VARIABLE + + +

        +
      • +
      +
    • +
    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_INST_PATTERN + + + + +  + +
    +
    +
    +

    + Instantiation pattern. +

    +

    + Specifies a (list of) terms to be used as a pattern for quantifier instantiation. +

    +

    +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 0 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of any Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +

    + Note +

    +

    + Should only be used as a child of + + + INST_PATTERN_LIST + + + . +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_INST_NO_PATTERN + + + + +  + +
    +
    +
    +

    + Instantiation no-pattern. +

    +

    + Specifies a (list of) terms that should not be used as a pattern for quantifier instantiation. +

    +

    +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 0 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of any Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +

    + Note +

    +

    + Should only be used as a child of + + + INST_PATTERN_LIST + + + . +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_INST_POOL + + + + +  + +
    +
    +
    +

    + Instantiation pool annotation. +

    +

    + Specifies an annotation for pool based instantiation. +

    +

    + In detail, pool symbols can be declared via the method +

    +
      +
    • +

      + Solver::declarePool(const std::string&, const Sort&, const std::vector<Term>&) const +

      +
    • +
    +

    + A pool symbol represents a set of terms of a given sort. An instantiation pool annotation should either: (1) have child sets matching the types of the quantified formula, (2) have a child set of tuple type whose component types match the types of the quantified formula. +

    +

    + For an example of (1), for a quantified formula: +

    +

    +

    +
    +
    +
    (FORALL (VARIABLE_LIST x y) F (INST_PATTERN_LIST (INST_POOL p q)))
    +
    +
    +
    +

    + if + + \(x\) + + and + + \(y\) + + have Sorts + + \(S_1\) + + and + + \(S_2\) + + , then +pool symbols + + \(p\) + + and + + \(q\) + + should have Sorts (Set + + \(S_1\) + + ) +and (Set + + \(S_2\) + + ), respectively. This annotation specifies that the +quantified formula above should be instantiated with the product of all +terms that occur in the sets + + \(p\) + + and + + \(q\) + + . +

    +

    + Alternatively, as an example of (2), for a quantified formula: +

    +

    +

    +
    +
    +
    (FORALL (VARIABLE_LIST x y) F (INST_PATTERN_LIST (INST_POOL s)))
    +
    +
    +
    +

    + + \(s\) + + should have Sort (Set (Tuple + + \(S_1\) + + + \(S_2\) + + )). This +annotation specifies that the quantified formula above should be +instantiated with the pairs of values in + + \(s\) + + . +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 0 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms that comprise the pools, which are one-to-one with the variables of the quantified formula to be instantiated +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +

    + Note +

    +

    + Should only be used as a child of + + + INST_PATTERN_LIST + + + . +

    +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_INST_ADD_TO_POOL + + + + +  + +
    +
    +
    +

    + A instantantiation-add-to-pool annotation. +

    +

    + An instantantiation-add-to-pool annotation indicates that when a quantified formula is instantiated, the instantiated version of a term should be added to the given pool. +

    +

    + For example, consider a quantified formula: +

    +

    +

    +
    +
    +
    (FORALL (VARIABLE_LIST x) F
    +        (INST_PATTERN_LIST (INST_ADD_TO_POOL (ADD x 1) p)))
    +
    +
    +
    +

    + where assume that + + \(x\) + + has type Int. When this quantified formula is +instantiated with, e.g., the term + + \(t\) + + , the term + + + (ADD + + + t + + + 1) + + + is +added to pool + + \(p\) + + . +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + The Term whose free variables are bound by the quantified formula. +

        +
      • +
      • +

        + + + 2: + + + The pool to add to, whose Sort should be a set of elements that match the Sort of the first argument. +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +

    + Note +

    +

    + Should only be used as a child of + + + INST_PATTERN_LIST + + + . +

    +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_SKOLEM_ADD_TO_POOL + + + + +  + +
    +
    +
    +

    + A skolemization-add-to-pool annotation. +

    +

    + An skolemization-add-to-pool annotation indicates that when a quantified formula is skolemized, the skolemized version of a term should be added to the given pool. +

    +

    + For example, consider a quantified formula: +

    +

    +

    +
    +
    +
    (FORALL (VARIABLE_LIST x) F
    +        (INST_PATTERN_LIST (SKOLEM_ADD_TO_POOL (ADD x 1) p)))
    +
    +
    +
    +

    + where assume that + + \(x\) + + has type Int. When this quantified formula is +skolemized, e.g., with + + \(k\) + + of type Int, then the term + + + (ADD + + + k + + + 1) + + + is added to the pool + + \(p\) + + . +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + The Term whose free variables are bound by the quantified formula. +

        +
      • +
      • +

        + + + 2: + + + The pool to add to, whose Sort should be a set of elements that match the Sort of the first argument. +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +

    + Note +

    +

    + Should only be used as a child of + + + INST_PATTERN_LIST + + + . +

    +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_INST_ATTRIBUTE + + + + +  + +
    +
    +
    +

    + Instantiation attribute. +

    +

    + Specifies a custom property for a quantified formula given by a term that is ascribed a user attribute. +

    +

    +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 0 + + +

      +
        +
      • +

        + + + 1: + + + Term of Kind :cpp:enumerator: + + + CONST_STRING + + + (the keyword of the attribute) +

        +
      • +
      • +

        + + + 2...n: + + + Terms representing the values of the attribute +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +

    + Note +

    +

    + Should only be used as a child of + + + INST_PATTERN_LIST + + + . +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_INST_PATTERN_LIST + + + + +  + +
    +
    +
    +

    + A list of instantiation patterns, attributes or annotations. +

    +

    +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of Kind + + + INST_PATTERN + + + , + + + INST_NO_PATTERN + + + , + + + INST_POOL + + + , + + + INST_ADD_TO_POOL + + + , + + + SKOLEM_ADD_TO_POOL + + + , + + + INST_ATTRIBUTE + + +

        +
      • +
      +
    • +
    +

    +

    +
      +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_KIND_LAST_KIND + + + + +  + +
    +
    +
    +

    + Marks the upper-bound of this enumeration. +

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + + cvc5_kind_to_string + + + + + ( + + + + + Cvc5Kind + + + + + + + + kind + + + + ) + + +  + +
    +
    +
    +

    + Get a string representation of a Cvc5Kind. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + kind + + – The kind. +

    +
    +
    + Returns + + : + +
    +
    +

    + The string representation. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + size_t + + + + + + + + cvc5_kind_hash + + + + + ( + + + + + Cvc5Kind + + + + + + + + kind + + + + ) + + +  + +
    +
    +
    +

    + Hash function for Cvc5Kinds. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + kind + + – The kind. +

    +
    +
    + Returns + + : + +
    +
    +

    + The hash value. +

    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/enums/cvc5proofrule.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/enums/cvc5proofrule.html new file mode 100644 index 0000000000..4dbe837987 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/enums/cvc5proofrule.html @@ -0,0 +1,27780 @@ + + + + + + + + + + + Cvc5ProofRule and Cvc5ProofRewriteRule — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Cvc5ProofRule and Cvc5ProofRewriteRule + +  + +

    +

    + Enum + + + + Cvc5ProofRule + + + + captures the reasoning steps performed by the +SAT solver, the theory solvers and the preprocessor. It represents the +inference rules used to derive conclusions within a proof. +

    +

    + Enum + + + + Cvc5ProofRewriteRule + + + + pertains to rewrites performed on terms. +These identifiers are arguments of the proof rules + + + + CVC5_PROOF_RULE_THEORY_REWRITE + + + + and + + + + CVC5_PROOF_RULE_DSL_REWRITE + + + + . +

    +
    +
    +
    + + + + + + + + + enum + + + + + + + + Cvc5ProofRule + + + + +  + +
    +
    +
    +

    +

    +

    + An enumeration for proof rules. This enumeration is analogous to Kind for +Node objects. +

    +

    + All proof rules are given as inference rules, presented in the following +form: +

    +
    + \[\texttt{RULENAME}: +\inferruleSC{\varphi_1 \dots \varphi_n \mid t_1 \dots t_m}{\psi}{if $C$}\] +
    +

    + where we call + + \(\varphi_i\) + + its premises or children, + + \(t_i\) + + its +arguments, + + \(\psi\) + + its conclusion, and + + \(C\) + + its side condition. +Alternatively, we can write the application of a proof rule as + + + (RULENAME + + + F1 + + + ... + + + Fn + + + :args + + + t1 + + + ... + + + tm) + + + , omitting the conclusion +(since it can be uniquely determined from premises and arguments). +Note that premises are sometimes given as proofs, i.e., application of +proof rules, instead of formulas. This abuses the notation to see proof +rule applications and their conclusions interchangeably. +

    +

    + Conceptually, the following proof rules form a calculus whose target +user is the Node-level theory solvers. This means that the rules below +are designed to reason about, among other things, common operations on Node +objects like Rewriter::rewrite or Node::substitute. It is intended to be +translated or printed in other formats. +

    +

    + The following ProofRule values include core rules and those categorized by +theory, including the theory of equality. +

    +

    + The “core rules” include two distinguished rules which have special status: +(1) + + + + ASSUME + + + + , which represents an +open leaf in a proof; and +(2) + + + + SCOPE + + + + , which encloses a scope +(a subproof) with a set of scoped assumptions. +The core rules additionally correspond to generic operations that are done +internally on nodes, e.g., calling + + Rewriter::rewrite() + + . +

    +

    + Rules with prefix + + + MACRO_ + + + are those that can be defined in terms of other +rules. These exist for convenience and can be replaced by their definition +in post-processing. +

    +

    + + Values: + +

    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_ASSUME + + + + +  + +
    +
    +
    +

    +

    +

    + + Assumption (a leaf) + +

    +
    + \[\inferrule{- \mid F}{F}\] +
    +

    + This rule has special status, in that an application of assume is an +open leaf in a proof that is not (yet) justified. An assume leaf is +analogous to a free variable in a term, where we say “F is a free +assumption in proof P” if it contains an application of F that is not +bound by + + + + SCOPE + + + + (see below). +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_SCOPE + + + + +  + +
    +
    +
    +

    +

    +

    + + Scope (a binder for assumptions) + +

    +
    + \[\inferruleSC{F \mid F_1 \dots F_n}{(F_1 \land \dots \land F_n) +\Rightarrow F}{if $F\neq\bot$} \textrm{ or } \inferruleSC{F \mid F_1 +\dots F_n}{\neg (F_1 \land \dots \land F_n)}{if $F=\bot$}\] +
    +

    + This rule has a dual purpose with + + + + ASSUME + + + + . It is a way to close +assumptions in a proof. We require that + + \(F_1 \dots F_n\) + + are free +assumptions in P and say that + + \(F_1 \dots F_n\) + + are not free in + + + (SCOPE + + + P) + + + . In other words, they are bound by this application. For +example, the proof node: + + + (SCOPE + + + (ASSUME + + + F) + + + :args + + + F) + + + has the conclusion + + \(F \Rightarrow F\) + + and has no free assumptions. +More generally, a proof with no free assumptions always concludes a valid +formula. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_SUBS + + + + +  + +
    +
    +
    +

    +

    +

    + + Builtin theory – Substitution + +

    +
    + \[\inferrule{F_1 \dots F_n \mid t, ids?}{t = t \circ \sigma_{ids}(F_n) +\circ \cdots \circ \sigma_{ids}(F_1)}\] +
    +

    + where + + \(\sigma_{ids}(F_i)\) + + are substitutions, which notice are applied +in reverse order. Notice that + + \(ids\) + + is a MethodId identifier, which +determines how to convert the formulas + + \(F_1 \dots F_n\) + + into +substitutions. It is an optional argument, where by default the premises +are equalities of the form + + (= x y) + + and converted into substitutions + + \(x\mapsto y\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_MACRO_REWRITE + + + + +  + +
    +
    +
    +

    +

    +

    + + Builtin theory – Rewrite + +

    +
    + \[\inferrule{- \mid t, idr}{t = \texttt{rewrite}_{idr}(t)}\] +
    +

    + where + + \(idr\) + + is a MethodId identifier, which determines the kind of +rewriter to apply, e.g. Rewriter::rewrite. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_EVALUATE + + + + +  + +
    +
    +
    +

    +

    +

    + + Builtin theory – Evaluate + +

    +
    + \[\inferrule{- \mid t}{t = \texttt{evaluate}(t)}\] +
    +

    + where + + \(\texttt{evaluate}\) + + is implemented by calling the method + + \(\texttt{Evalutor::evaluate}\) + + in + + theory/evaluator.h + + with an +empty substitution. +Note this is equivalent to: + + + (REWRITE + + + t + + + MethodId::RW_EVALUATE) + + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_ACI_NORM + + + + +  + +
    +
    +
    +

    +

    +

    + + Builtin theory – associative/commutative/idempotency/identity normalization + +

    +
    + \[\inferrule{- \mid t = s}{t = s}\] +
    +

    + where + + \(\texttt{expr::isACNorm(t, s)} = \top\) + + . For details, see + + expr/nary_term_util.h + + . +This method normalizes currently based on two kinds of operators: +(1) those that are associative, commutative, idempotent, and have an +identity element (examples are or, and, bvand), +(2) those that are associative and have an identity element (examples +are str.++, re.++). +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_MACRO_SR_EQ_INTRO + + + + +  + +
    +
    +
    +

    +

    +

    + + Builtin theory – Substitution + Rewriting equality introduction + +

    +

    + In this rule, we provide a term + + \(t\) + + and conclude that it is equal to +its rewritten form under a (proven) substitution. +

    +
    + \[\inferrule{F_1 \dots F_n \mid t, (ids (ida (idr)?)?)?}{t = +\texttt{rewrite}_{idr}(t \circ \sigma_{ids, ida}(F_n) \circ \cdots \circ +\sigma_{ids, ida}(F_1))}\] +
    +

    + In other words, from the point of view of Skolem forms, this rule +transforms + + \(t\) + + to + + \(t'\) + + by standard substitution + rewriting. +

    +

    + The arguments + + \(ids\) + + , + + \(ida\) + + and + + \(idr\) + + are optional and +specify the identifier of the substitution, the substitution application +and rewriter respectively to be used. For details, see + + theory/builtin/proof_checker.h + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_MACRO_SR_PRED_INTRO + + + + +  + +
    +
    +
    +

    +

    +

    + + Builtin theory – Substitution + Rewriting predicate introduction + +

    +

    + In this rule, we provide a formula + + \(F\) + + and conclude it, under the +condition that it rewrites to true under a proven substitution. +

    +
    + \[\inferrule{F_1 \dots F_n \mid F, (ids (ida (idr)?)?)?}{F}\] +
    +

    + where + + \(\texttt{rewrite}_{idr}(F \circ \sigma_{ids, ida}(F_n) \circ +\cdots \circ \sigma_{ids, ida}(F_1)) = \top\) + + and + + \(ids\) + + and + + \(idr\) + + are method identifiers. +

    +

    + More generally, this rule also holds when + + \(\texttt{Rewriter::rewrite}(\texttt{toOriginal}(F')) = \top\) + + where + + \(F'\) + + is the result of the left hand side of the equality above. +Here, notice that we apply rewriting on the original form of + + \(F'\) + + , +meaning that this rule may conclude an + + \(F\) + + whose Skolem form is +justified by the definition of its (fresh) Skolem variables. For example, +this rule may justify the conclusion + + \(k = t\) + + where + + \(k\) + + is the +purification Skolem for + + \(t\) + + , e.g. where the original form of + + \(k\) + + is + + \(t\) + + . +

    +

    + Furthermore, notice that the rewriting and substitution is applied only +within the side condition, meaning the rewritten form of the original form +of + + \(F\) + + does not escape this rule. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_MACRO_SR_PRED_ELIM + + + + +  + +
    +
    +
    +

    +

    +

    + + Builtin theory – Substitution + Rewriting predicate elimination + +

    +
    + \[\inferrule{F, F_1 \dots F_n \mid (ids (ida +(idr)?)?)?}{\texttt{rewrite}_{idr}(F \circ \sigma_{ids, ida}(F_n) \circ +\cdots \circ \sigma_{ids, ida}(F_1))}\] +
    +

    + where + + \(ids\) + + and + + \(idr\) + + are method identifiers. +

    +

    + We rewrite only on the Skolem form of + + \(F\) + + , similar to + + + + MACRO_SR_EQ_INTRO + + + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_MACRO_SR_PRED_TRANSFORM + + + + +  + +
    +
    +
    +

    +

    +

    + + Builtin theory – Substitution + Rewriting predicate elimination + +

    +
    + \[\inferrule{F, F_1 \dots F_n \mid G, (ids (ida (idr)?)?)?}{G}\] +
    +

    + where +

    +
    + \[\begin{split}\texttt{rewrite}_{idr}(F \circ \sigma_{ids, ida}(F_n) \circ\cdots \circ \sigma_{ids, ida}(F_1)) =\\ \texttt{rewrite}_{idr}(G \circ \sigma_{ids, ida}(F_n) \circ \cdots \circ \sigma_{ids, ida}(F_1))\end{split}\] +
    +

    + More generally, this rule also holds when: + + \(\texttt{Rewriter::rewrite}(\texttt{toOriginal}(F')) = \texttt{Rewriter::rewrite}(\texttt{toOriginal}(G'))\) + + where + + \(F'\) + + and + + \(G'\) + + are the result of each side of the equation +above. Here, original forms are used in a similar manner to + + + + MACRO_SR_PRED_INTRO + + + + above. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_ENCODE_EQ_INTRO + + + + +  + +
    +
    +
    +

    +

    +

    + + Builtin theory – Encode equality introduction + +

    +
    + \[\inferrule{- \mid t}{t=t'}\] +
    +

    + where + + \(t\) + + and + + \(t'\) + + are equivalent up to their encoding in an +external proof format. +

    +

    + More specifically, it is the case that + + \(\texttt{RewriteDbNodeConverter::postConvert}(t) = t;\) + + . +This conversion method for instance may drop user patterns from quantified +formulas or change the representation of + + \(t\) + + in a way that is a +no-op in external proof formats. +

    +

    + Note this rule can be treated as a + + + + REFL + + + + when appropriate in +external proof formats. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_DSL_REWRITE + + + + +  + +
    +
    +
    +

    +

    +

    + + Builtin theory – DSL rewrite + +

    +
    + \[\inferrule{F_1 \dots F_n \mid id t_1 \dots t_n}{F}\] +
    +

    + where + + id + + is a + + + ProofRewriteRule + + + whose definition in the +RARE DSL is + + \(\forall x_1 \dots x_n. (G_1 \wedge G_n) \Rightarrow G\) + + where for + + \(i=1, \dots n\) + + , we have that + + \(F_i = \sigma(G_i)\) + + and + + \(F = \sigma(G)\) + + where + + \(\sigma\) + + is the substitution + + \(\{x_1\mapsto t_1,\dots,x_n\mapsto t_n\}\) + + . +

    +

    + Notice that the application of the substitution takes into account the +possible list semantics of variables + + \(x_1 \ldots x_n\) + + . If + + \(x_i\) + + is a variable with list semantics, then + + \(t_i\) + + denotes a +list of terms. The substitution implemented by + + \(\texttt{expr::narySubstitute}\) + + (for details, see + + expr/nary_term_util.h + + ) which replaces each + + \(x_i\) + + with the +list + + \(t_i\) + + in its place. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_THEORY_REWRITE + + + + +  + +
    +
    +
    +

    +

    +

    + + Other theory rewrite rules + +

    +
    + \[\inferrule{- \mid id, t = t'}{t = t'}\] +
    +

    + where + + id + + is the + + + ProofRewriteRule + + + of the theory rewrite +rule which transforms + + \(t\) + + to + + \(t'\) + + . +

    +

    + In contrast to + + + DSL_REWRITE + + + , theory rewrite rules used by +this proof rule are not necessarily expressible in RARE. Each rule that can +be used in this proof rule are documented explicitly in cases within the + + + ProofRewriteRule + + + enum. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_ITE_EQ + + + + +  + +
    +
    +
    +

    +

    +

    + + Processing rules – If-then-else equivalence + +

    +
    + \[\inferrule{- \mid \ite{C}{t_1}{t_2}}{\ite{C}{((\ite{C}{t_1}{t_2}) = t_1)}{((\ite{C}{t_1}{t_2}) = t_2)}}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_TRUST + + + + +  + +
    +
    +
    +

    +

    +

    + + Trusted rule + +

    +
    + \[\inferrule{F_1 \dots F_n \mid tid, F, ...}{F}\] +
    +

    + where + + \(tid\) + + is an identifier and + + \(F\) + + is a formula. This rule +is used when a formal justification of an inference step cannot be provided. +The formulas + + \(F_1 \dots F_n\) + + refer to a set of formulas that +entail + + \(F\) + + , which may or may not be provided. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_TRUST_THEORY_REWRITE + + + + +  + +
    +
    +
    +

    +

    +

    + + Trusted rules – Theory rewrite + +

    +
    + \[\inferrule{- \mid F, tid, rid}{F}\] +
    +

    + where + + \(F\) + + is an equality of the form + + \(t = t'\) + + where + + \(t'\) + + is obtained by applying the kind of rewriting given by the method +identifier + + \(rid\) + + , which is one of: + + + RW_REWRITE_THEORY_PRE + + + , + + + RW_REWRITE_THEORY_POST + + + , + + + RW_REWRITE_EQ_EXT + + + . Notice that the checker for this rule does not +replay the rewrite to ensure correctness, since theory rewriter methods are +not static. For example, the quantifiers rewriter involves constructing new +bound variables that are not guaranteed to be consistent on each call. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_SAT_REFUTATION + + + + +  + +
    +
    +
    +

    +

    +

    + + SAT Refutation for assumption-based unsat cores + +

    +
    + \[\inferrule{F_1 \dots F_n \mid -}{\bot}\] +
    +

    + where + + \(F_1 \dots F_n\) + + correspond to the unsat core determined by the +SAT solver. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_DRAT_REFUTATION + + + + +  + +
    +
    +
    +

    +

    +

    + + DRAT Refutation + +

    +
    + \[\inferrule{F_1 \dots F_n \mid D, P}{\bot}\] +
    +

    + where + + \(F_1 \dots F_n\) + + correspond to the clauses in the +DIMACS file given by filename + + D + + and + + P + + is a filename of a file storing +a DRAT proof. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_SAT_EXTERNAL_PROVE + + + + +  + +
    +
    +
    +

    +

    +

    + + SAT external prove Refutation + +

    +
    + \[\inferrule{F_1 \dots F_n \mid D}{\bot}\] +
    +

    + where + + \(F_1 \dots F_n\) + + correspond to the input clauses in the +DIMACS file + + D + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_RESOLUTION + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – Resolution + +

    +
    + \[\inferrule{C_1, C_2 \mid pol, L}{C}\] +
    +

    + where +

    +
      +
    • +

      + + \(C_1\) + + and + + \(C_2\) + + are nodes viewed as clauses, i.e., either an + + + OR + + + node with each children viewed as a literal or a node viewed as a +literal. Note that an + + + OR + + + node could also be a literal. +

      +
    • +
    • +

      + + \(pol\) + + is either true or false, representing the polarity of the +pivot on the first clause +

      +
    • +
    • +

      + + \(L\) + + is the pivot of the resolution, which occurs as is (resp. under +a + + + NOT + + + ) in + + \(C_1\) + + and negatively (as is) in + + \(C_2\) + + if + + \(pol = \top\) + + ( + + \(pol = \bot\) + + ). +

      +
    • +
    +

    + + \(C\) + + is a clause resulting from collecting all the literals in + + \(C_1\) + + , minus the first occurrence of the pivot or its negation, and + + \(C_2\) + + , minus the first occurrence of the pivot or its negation, +according to the policy above. If the resulting clause has a single +literal, that literal itself is the result; if it has no literals, then the +result is false; otherwise it’s an + + + OR + + + node of the resulting literals. +

    +

    + Note that it may be the case that the pivot does not occur in the +clauses. In this case the rule is not unsound, but it does not correspond +to resolution but rather to a weakening of the clause that did not have a +literal eliminated. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_CHAIN_RESOLUTION + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – N-ary Resolution + +

    +
    + \[\inferrule{C_1 \dots C_n \mid (pol_1 \dots pol_{n-1}), (L_1 \dots L_{n-1})}{C}\] +
    +

    + where +

    +
      +
    • +

      + let + + \(C_1 \dots C_n\) + + be nodes viewed as clauses, as defined above +

      +
    • +
    • +

      + let + + \(C_1 \diamond_{L,pol} C_2\) + + represent the resolution of + + \(C_1\) + + with + + \(C_2\) + + with pivot + + \(L\) + + and polarity + + \(pol\) + + , as defined above +

      +
    • +
    • +

      + let + + \(C_1' = C_1\) + + , +

      +
    • +
    • +

      + for each + + \(i > 1\) + + , let + + \(C_i' = C_{i-1} \diamond_{L_{i-1}, pol_{i-1}} C_i'\) + +

      +
    • +
    +

    + Note the list of polarities and pivots are provided as s-expressions. +

    +

    + The result of the chain resolution is + + \(C = C_n'\) + +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_FACTORING + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – Factoring + +

    +
    + \[\inferrule{C_1 \mid -}{C_2}\] +
    +

    + where + + \(C_2\) + + is the clause + + \(C_1\) + + , but every occurrence of a literal +after its first occurrence is omitted. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_REORDERING + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – Reordering + +

    +
    + \[\inferrule{C_1 \mid C_2}{C_2}\] +
    +

    + where +the multiset representations of + + \(C_1\) + + and + + \(C_2\) + + are the same. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_MACRO_RESOLUTION + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – N-ary Resolution + Factoring + Reordering + +

    +
    + \[\inferrule{C_1 \dots C_n \mid C, pol_1,L_1 \dots pol_{n-1},L_{n-1}}{C}\] +
    +

    + where +

    +
      +
    • +

      + let + + \(C_1 \dots C_n\) + + be nodes viewed as clauses, as defined in + + + + RESOLUTION + + + +

      +
    • +
    • +

      + let + + \(C_1 \diamond_{L,\mathit{pol}} C_2\) + + represent the resolution of + + \(C_1\) + + with + + \(C_2\) + + with pivot + + \(L\) + + and polarity + + \(pol\) + + , as defined in + + + + RESOLUTION + + + +

      +
    • +
    • +

      + let + + \(C_1'\) + + be equal, in its set representation, to + + \(C_1\) + + , +

      +
    • +
    • +

      + for each + + \(i > 1\) + + , let + + \(C_i'\) + + be equal, in its set +representation, to + + \(C_{i-1} \diamond_{L_{i-1},\mathit{pol}_{i-1}} +C_i'\) + +

      +
    • +
    +

    + The result of the chain resolution is + + \(C\) + + , which is equal, in its set +representation, to + + \(C_n'\) + +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_MACRO_RESOLUTION_TRUST + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – N-ary Resolution + Factoring + Reordering unchecked + +

    +

    + Same as + + + + MACRO_RESOLUTION + + + + , but +not checked by the internal proof checker. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_SPLIT + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – Split + +

    +
    + \[\inferrule{- \mid F}{F \lor \neg F}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_EQ_RESOLVE + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – Equality resolution + +

    +
    + \[\inferrule{F_1, (F_1 = F_2) \mid -}{F_2}\] +
    +

    + Note this can optionally be seen as a macro for + + + + EQUIV_ELIM1 + + + + + + + + + RESOLUTION + + + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_MODUS_PONENS + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – Modus Ponens + +

    +
    + \[\inferrule{F_1, (F_1 \rightarrow F_2) \mid -}{F_2}\] +
    +

    + Note this can optionally be seen as a macro for + + + + IMPLIES_ELIM + + + + + + + + + RESOLUTION + + + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_NOT_NOT_ELIM + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – Double negation elimination + +

    +
    + \[\inferrule{\neg (\neg F) \mid -}{F}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_CONTRA + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – Contradiction + +

    +
    + \[\inferrule{F, \neg F \mid -}{\bot}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_AND_ELIM + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – And elimination + +

    +
    + \[\inferrule{(F_1 \land \dots \land F_n) \mid i}{F_i}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_AND_INTRO + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – And introduction + +

    +
    + \[\inferrule{F_1 \dots F_n \mid -}{(F_1 \land \dots \land F_n)}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_NOT_OR_ELIM + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – Not Or elimination + +

    +
    + \[\inferrule{\neg(F_1 \lor \dots \lor F_n) \mid i}{\neg F_i}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_IMPLIES_ELIM + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – Implication elimination + +

    +
    + \[\inferrule{F_1 \rightarrow F_2 \mid -}{\neg F_1 \lor F_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_NOT_IMPLIES_ELIM1 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – Not Implication elimination version 1 + +

    +
    + \[\inferrule{\neg(F_1 \rightarrow F_2) \mid -}{F_1}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_NOT_IMPLIES_ELIM2 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – Not Implication elimination version 2 + +

    +
    + \[\inferrule{\neg(F_1 \rightarrow F_2) \mid -}{\neg F_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_EQUIV_ELIM1 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – Equivalence elimination version 1 + +

    +
    + \[\inferrule{F_1 = F_2 \mid -}{\neg F_1 \lor F_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_EQUIV_ELIM2 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – Equivalence elimination version 2 + +

    +
    + \[\inferrule{F_1 = F_2 \mid -}{F_1 \lor \neg F_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_NOT_EQUIV_ELIM1 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – Not Equivalence elimination version 1 + +

    +
    + \[\inferrule{F_1 \neq F_2 \mid -}{F_1 \lor F_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_NOT_EQUIV_ELIM2 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – Not Equivalence elimination version 2 + +

    +
    + \[\inferrule{F_1 \neq F_2 \mid -}{\neg F_1 \lor \neg F_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_XOR_ELIM1 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – XOR elimination version 1 + +

    +
    + \[\inferrule{F_1 \xor F_2 \mid -}{F_1 \lor F_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_XOR_ELIM2 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – XOR elimination version 2 + +

    +
    + \[\inferrule{F_1 \xor F_2 \mid -}{\neg F_1 \lor \neg F_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_NOT_XOR_ELIM1 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – Not XOR elimination version 1 + +

    +
    + \[\inferrule{\neg(F_1 \xor F_2) \mid -}{F_1 \lor \neg F_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_NOT_XOR_ELIM2 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – Not XOR elimination version 2 + +

    +
    + \[\inferrule{\neg(F_1 \xor F_2) \mid -}{\neg F_1 \lor F_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_ITE_ELIM1 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – ITE elimination version 1 + +

    +
    + \[\inferrule{(\ite{C}{F_1}{F_2}) \mid -}{\neg C \lor F_1}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_ITE_ELIM2 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – ITE elimination version 2 + +

    +
    + \[\inferrule{(\ite{C}{F_1}{F_2}) \mid -}{C \lor F_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_NOT_ITE_ELIM1 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – Not ITE elimination version 1 + +

    +
    + \[\inferrule{\neg(\ite{C}{F_1}{F_2}) \mid -}{\neg C \lor \neg F_1}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_NOT_ITE_ELIM2 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – Not ITE elimination version 2 + +

    +
    + \[\inferrule{\neg(\ite{C}{F_1}{F_2}) \mid -}{C \lor \neg F_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_NOT_AND + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – De Morgan – Not And + +

    +
    + \[\inferrule{\neg(F_1 \land \dots \land F_n) \mid -}{\neg F_1 \lor \dots +\lor \neg F_n}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_CNF_AND_POS + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – CNF – And Positive + +

    +
    + \[\inferrule{- \mid (F_1 \land \dots \land F_n), i}{\neg (F_1 \land \dots +\land F_n) \lor F_i}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_CNF_AND_NEG + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – CNF – And Negative + +

    +
    + \[\inferrule{- \mid (F_1 \land \dots \land F_n)}{(F_1 \land \dots \land +F_n) \lor \neg F_1 \lor \dots \lor \neg F_n}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_CNF_OR_POS + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – CNF – Or Positive + +

    +
    + \[\inferrule{- \mid (F_1 \lor \dots \lor F_n)}{\neg(F_1 \lor \dots \lor +F_n) \lor F_1 \lor \dots \lor F_n}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_CNF_OR_NEG + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – CNF – Or Negative + +

    +
    + \[\inferrule{- \mid (F_1 \lor \dots \lor F_n), i}{(F_1 \lor \dots \lor F_n) +\lor \neg F_i}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_CNF_IMPLIES_POS + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – CNF – Implies Positive + +

    +
    + \[\inferrule{- \mid F_1 \rightarrow F_2}{\neg(F_1 \rightarrow F_2) \lor \neg F_1 +\lor F_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_CNF_IMPLIES_NEG1 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – CNF – Implies Negative 1 + +

    +
    + \[\inferrule{- \mid F_1 \rightarrow F_2}{(F_1 \rightarrow F_2) \lor F_1}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_CNF_IMPLIES_NEG2 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – CNF – Implies Negative 2 + +

    +
    + \[\inferrule{- \mid F_1 \rightarrow F_2}{(F_1 \rightarrow F_2) \lor \neg F_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_CNF_EQUIV_POS1 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – CNF – Equiv Positive 1 + +

    +
    + \[\inferrule{- \mid F_1 = F_2}{F_1 \neq F_2 \lor \neg F_1 \lor F_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_CNF_EQUIV_POS2 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – CNF – Equiv Positive 2 + +

    +
    + \[\inferrule{- \mid F_1 = F_2}{F_1 \neq F_2 \lor F_1 \lor \neg F_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_CNF_EQUIV_NEG1 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – CNF – Equiv Negative 1 + +

    +
    + \[\inferrule{- \mid F_1 = F_2}{(F_1 = F_2) \lor F_1 \lor F_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_CNF_EQUIV_NEG2 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – CNF – Equiv Negative 2 + +

    +
    + \[\inferrule{- \mid F_1 = F_2}{(F_1 = F_2) \lor \neg F_1 \lor \neg F_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_CNF_XOR_POS1 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – CNF – XOR Positive 1 + +

    +
    + \[\inferrule{- \mid F_1 \xor F_2}{\neg(F_1 \xor F_2) \lor F_1 \lor F_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_CNF_XOR_POS2 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – CNF – XOR Positive 2 + +

    +
    + \[\inferrule{- \mid F_1 \xor F_2}{\neg(F_1 \xor F_2) \lor \neg F_1 \lor +\neg F_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_CNF_XOR_NEG1 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – CNF – XOR Negative 1 + +

    +
    + \[\inferrule{- \mid F_1 \xor F_2}{(F_1 \xor F_2) \lor \neg F_1 \lor F_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_CNF_XOR_NEG2 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – CNF – XOR Negative 2 + +

    +
    + \[\inferrule{- \mid F_1 \xor F_2}{(F_1 \xor F_2) \lor F_1 \lor \neg F_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_CNF_ITE_POS1 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – CNF – ITE Positive 1 + +

    +
    + \[\inferrule{- \mid (\ite{C}{F_1}{F_2})}{\neg(\ite{C}{F_1}{F_2}) \lor \neg +C \lor F_1}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_CNF_ITE_POS2 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – CNF – ITE Positive 2 + +

    +
    + \[\inferrule{- \mid (\ite{C}{F_1}{F_2})}{\neg(\ite{C}{F_1}{F_2}) \lor C +\lor F_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_CNF_ITE_POS3 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – CNF – ITE Positive 3 + +

    +
    + \[\inferrule{- \mid (\ite{C}{F_1}{F_2})}{\neg(\ite{C}{F_1}{F_2}) \lor F_1 +\lor F_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_CNF_ITE_NEG1 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – CNF – ITE Negative 1 + +

    +
    + \[\inferrule{- \mid (\ite{C}{F_1}{F_2})}{(\ite{C}{F_1}{F_2}) \lor \neg C +\lor \neg F_1}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_CNF_ITE_NEG2 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – CNF – ITE Negative 2 + +

    +
    + \[\inferrule{- \mid (\ite{C}{F_1}{F_2})}{(\ite{C}{F_1}{F_2}) \lor C \lor +\neg F_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_CNF_ITE_NEG3 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – CNF – ITE Negative 3 + +

    +
    + \[\inferrule{- \mid (\ite{C}{F_1}{F_2})}{(\ite{C}{F_1}{F_2}) \lor \neg F_1 +\lor \neg F_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_REFL + + + + +  + +
    +
    +
    +

    +

    +

    + + Equality – Reflexivity + +

    +
    + \[\inferrule{-\mid t}{t = t}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_SYMM + + + + +  + +
    +
    +
    +

    +

    +

    + + Equality – Symmetry + +

    +
    + \[\inferrule{t_1 = t_2\mid -}{t_2 = t_1}\] +
    +

    + or +

    +
    + \[\inferrule{t_1 \neq t_2\mid -}{t_2 \neq t_1}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_TRANS + + + + +  + +
    +
    +
    +

    +

    +

    + + Equality – Transitivity + +

    +
    + \[\inferrule{t_1=t_2,\dots,t_{n-1}=t_n\mid -}{t_1 = t_n}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_CONG + + + + +  + +
    +
    +
    +

    +

    +

    + + Equality – Congruence + +

    +
    + \[\inferrule{t_1=s_1,\dots,t_n=s_n\mid k, f?}{k(f?, t_1,\dots, t_n) = +k(f?, s_1,\dots, s_n)}\] +
    +

    + where + + \(k\) + + is the application kind. Notice that + + \(f\) + + must be +provided iff + + \(k\) + + is a parameterized kind, e.g. + + cvc5::Kind::APPLY_UF + + . The actual node for + + \(k\) + + is constructible via + + + ProofRuleChecker::mkKindNode + + + . +If + + \(k\) + + is a binder kind (e.g. + + + cvc5::Kind::FORALL + + + ) then + + \(f\) + + is a term of kind + + + cvc5::Kind::VARIABLE_LIST + + + denoting the variables bound by both sides of the conclusion. +This rule is used for kinds that have a fixed arity, such as + + + cvc5::Kind::ITE + + + , + + + cvc5::Kind::EQUAL + + + , and so on. It is also used for + + + cvc5::Kind::APPLY_UF + + + where + + \(f\) + + must be provided. +It is not used for equality between + + + cvc5::Kind::HO_APPLY + + + terms, which should +use the + + + + HO_CONG + + + + proof rule. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_NARY_CONG + + + + +  + +
    +
    +
    +

    +

    +

    + + Equality – N-ary Congruence + +

    +
    + \[\inferrule{t_1=s_1,\dots,t_n=s_n\mid k}{k(t_1,\dots, t_n) = +k(s_1,\dots, s_n)}\] +
    +

    + where + + \(k\) + + is the application kind. The actual node for + + \(k\) + + is +constructible via + + + ProofRuleChecker::mkKindNode + + + . This rule is used for +kinds that have variadic arity, such as + + + cvc5::Kind::AND + + + , + + + cvc5::Kind::PLUS + + + and so on. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_TRUE_INTRO + + + + +  + +
    +
    +
    +

    +

    +

    + + Equality – True intro + +

    +
    + \[\inferrule{F\mid -}{F = \top}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_TRUE_ELIM + + + + +  + +
    +
    +
    +

    +

    +

    + + Equality – True elim + +

    +
    + \[\inferrule{F=\top\mid -}{F}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_FALSE_INTRO + + + + +  + +
    +
    +
    +

    +

    +

    + + Equality – False intro + +

    +
    + \[\inferrule{\neg F\mid -}{F = \bot}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_FALSE_ELIM + + + + +  + +
    +
    +
    +

    +

    +

    + + Equality – False elim + +

    +
    + \[\inferrule{F=\bot\mid -}{\neg F}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_HO_APP_ENCODE + + + + +  + +
    +
    +
    +

    +

    +

    + + Equality – Higher-order application encoding + +

    +
    + \[\inferrule{-\mid t}{t=t'}\] +
    +

    + where + + t’ + + is the higher-order application that is equivalent to + + t + + , +as implemented by + + + uf::TheoryUfRewriter::getHoApplyForApplyUf + + + . +For details see + + theory/uf/theory_uf_rewriter.h + +

    +

    + For example, this rule concludes + + \(f(x,y) = @( @(f,x), y)\) + + , where + + \(@\) + + is the + + + HO_APPLY + + + kind. +

    +

    + Note this rule can be treated as a + + + + REFL + + + + when appropriate in +external proof formats. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_HO_CONG + + + + +  + +
    +
    +
    +

    +

    +

    + + Equality – Higher-order congruence + +

    +
    + \[\inferrule{f=g, t_1=s_1,\dots,t_n=s_n\mid k}{k(f, t_1,\dots, t_n) = +k(g, s_1,\dots, s_n)}\] +
    +

    + Notice that this rule is only used when the application kind + + \(k\) + + is +either + + cvc5::Kind::APPLY_UF + + or + + cvc5::Kind::HO_APPLY + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_ARRAYS_READ_OVER_WRITE + + + + +  + +
    +
    +
    +

    +

    +

    + + Arrays – Read over write + +

    +
    + \[\inferrule{i_1 \neq i_2\mid \mathit{select}(\mathit{store}(a,i_1,e),i_2)} +{\mathit{select}(\mathit{store}(a,i_1,e),i_2) = \mathit{select}(a,i_2)}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_ARRAYS_READ_OVER_WRITE_CONTRA + + + + +  + +
    +
    +
    +

    +

    +

    + + Arrays – Read over write, contrapositive + +

    +
    + \[\inferrule{\mathit{select}(\mathit{store}(a,i_2,e),i_1) \neq +\mathit{select}(a,i_1)\mid -}{i_1=i_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_ARRAYS_READ_OVER_WRITE_1 + + + + +  + +
    +
    +
    +

    +

    +

    + + Arrays – Read over write 1 + +

    +
    + \[\inferrule{-\mid \mathit{select}(\mathit{store}(a,i,e),i)} +{\mathit{select}(\mathit{store}(a,i,e),i)=e}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_ARRAYS_EXT + + + + +  + +
    +
    +
    +

    +

    +

    + + Arrays – Arrays extensionality + +

    +
    + \[\inferrule{a \neq b\mid -} +{\mathit{select}(a,k)\neq\mathit{select}(b,k)}\] +
    +

    + where + + \(k\) + + is the + + \(\texttt{ARRAY_DEQ_DIFF}\) + + skolem for + + (a, b) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_MACRO_BV_BITBLAST + + + + +  + +
    +
    +
    +

    +

    +

    + + Bit-vectors – (Macro) Bitblast + +

    +
    + \[\inferrule{-\mid t}{t = \texttt{bitblast}(t)}\] +
    +

    + where + + \(\texttt{bitblast}\) + + represents the result of the bit-blasted term as +a bit-vector consisting of the output bits of the bit-blasted circuit +representation of the term. Terms are bit-blasted according to the +strategies defined in + + theory/bv/bitblast/bitblast_strategies_template.h + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_BV_BITBLAST_STEP + + + + +  + +
    +
    +
    +

    +

    +

    + + Bit-vectors – Bitblast bit-vector constant, variable, and terms + +

    +

    + For constant and variables: +

    +
    + \[\inferrule{-\mid t}{t = \texttt{bitblast}(t)}\] +
    +

    + For terms: +

    +
    + \[\inferrule{-\mid k(\texttt{bitblast}(t_1),\dots,\texttt{bitblast}(t_n))} +{k(\texttt{bitblast}(t_1),\dots,\texttt{bitblast}(t_n)) = +\texttt{bitblast}(t)}\] +
    +

    + where + + \(t\) + + is + + \(k(t_1,\dots,t_n)\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_BV_EAGER_ATOM + + + + +  + +
    +
    +
    +

    +

    +

    + + Bit-vectors – Bit-vector eager atom + +

    +
    + \[\inferrule{-\mid F}{F = F[0]}\] +
    +

    + where + + \(F\) + + is of kind + + + BITVECTOR_EAGER_ATOM + + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_DT_SPLIT + + + + +  + +
    +
    +
    +

    +

    +

    + + Datatypes – Split + +

    +
    + \[\inferrule{-\mid t}{\mathit{is}_{C_1}(t)\vee\cdots\vee\mathit{is}_{C_n}(t)}\] +
    +

    + where + + \(C_1,\dots,C_n\) + + are all the constructors of the type of + + \(t\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_DT_CLASH + + + + +  + +
    +
    +
    +

    +

    +

    + + Datatypes – Clash + +

    +
    + \[\inferruleSC{\mathit{is}_{C_i}(t), \mathit{is}_{C_j}(t)\mid -}{\bot} +{if $i\neq j$}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_SKOLEM_INTRO + + + + +  + +
    +
    +
    +

    +

    +

    + + Quantifiers – Skolem introduction + +

    +
    + \[\inferrule{-\mid k}{k = t}\] +
    +

    + where + + \(t\) + + is the unpurified form of skolem + + \(k\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_SKOLEMIZE + + + + +  + +
    +
    +
    +

    +

    +

    + + Quantifiers – Skolemization + +

    +
    + \[\inferrule{\neg (\forall x_1\dots x_n.\> F)\mid -}{\neg F\sigma}\] +
    +

    + where + + \(\sigma\) + + maps + + \(x_1,\dots,x_n\) + + to their representative +skolems, which are skolems + + \(k_1,\dots,k_n\) + + . For each + + \(k_i\) + + , +its skolem identifier is + + + + QUANTIFIERS_SKOLEMIZE + + + + , +and its indices are + + \((\forall x_1\dots x_n.\> F)\) + + and + + \(x_i\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_INSTANTIATE + + + + +  + +
    +
    +
    +

    +

    +

    + + Quantifiers – Instantiation + +

    +
    + \[\inferrule{\forall x_1\dots x_n.\> F\mid (t_1 \dots t_n), (id\, (t)?)?} +{F\{x_1\mapsto t_1,\dots,x_n\mapsto t_n\}}\] +
    +

    + The list of terms to instantiate + + \((t_1 \dots t_n)\) + + is provided as +an s-expression as the first argument. The optional argument + + \(id\) + + indicates the inference id that caused the instantiation. The term + + \(t\) + + indicates an additional term (e.g. the trigger) associated with +the instantiation, which depends on the id. If the id has prefix + + + QUANTIFIERS_INST_E_MATCHING + + + , then + + \(t\) + + is the trigger that +generated the instantiation. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_ALPHA_EQUIV + + + + +  + +
    +
    +
    +

    +

    +

    + + Quantifiers – Alpha equivalence + +

    +
    + \[\inferruleSC{-\mid F, (y_1 \ldots y_n), (z_1,\dots, z_n)} +{F = F\{y_1\mapsto z_1,\dots,y_n\mapsto z_n\}} +{if $y_1,\dots,y_n, z_1,\dots,z_n$ are unique bound variables}\] +
    +

    + Notice that this rule is correct only when + + \(z_1,\dots,z_n\) + + are not +contained in + + \(FV(F) \setminus \{ y_1,\dots, y_n \}\) + + , where + + \(FV(\varphi)\) + + are the free variables of + + \(\varphi\) + + . The internal +quantifiers proof checker does not currently check that this is the case. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_QUANT_VAR_REORDERING + + + + +  + +
    +
    +
    +

    +

    +

    + + Quantifiers – Variable reordering + +

    +
    + \[\inferrule{-\mid (\forall X.\> F) = (\forall Y.\> F)} +{(\forall X.\> F) = (\forall Y.\> F)}\] +
    +

    + where + + \(Y\) + + is a reordering of + + \(X\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_SETS_SINGLETON_INJ + + + + +  + +
    +
    +
    +

    +

    +

    + + Sets – Singleton injectivity + +

    +
    + \[\inferrule{\mathit{set.singleton}(t) = \mathit{set.singleton}(s)\mid -}{t=s}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_SETS_EXT + + + + +  + +
    +
    +
    +

    +

    +

    + + Sets – Sets extensionality + +

    +
    + \[\inferrule{a \neq b\mid -} +{\mathit{set.member}(k,a)\neq\mathit{set.member}(k,b)}\] +
    +

    + where + + \(k\) + + is the + + \(\texttt{SETS_DEQ_DIFF}\) + + skolem for + + (a, b) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_SETS_FILTER_UP + + + + +  + +
    +
    +
    +

    +

    +

    + + Sets – Sets filter up + +

    +
    + \[\inferrule{\mathit{set.member}(x,a)\mid P} +{\mathit{set.member}(x, \mathit{set.filter}(P, a)) = P(x)}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_SETS_FILTER_DOWN + + + + +  + +
    +
    +
    +

    +

    +

    + + Sets – Sets filter down + +

    +
    + \[\inferrule{\mathit{set.member}(x,\mathit{set.filter}(P, a))\mid -} +{\mathit{set.member}(x,a) \wedge P(x)}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_CONCAT_EQ + + + + +  + +
    +
    +
    +

    +

    +

    + + Strings – Core rules – Concatenation equality + +

    +
    + \[\inferrule{(t_1\cdot\ldots \cdot t_n \cdot t) = (t_1 \cdot\ldots +\cdot t_n\cdot s)\mid b}{t = s}\] +
    +

    + where + + \(\cdot\) + + stands for string concatenation and + + \(b\) + + indicates +if the direction is reversed. +

    +

    + Notice that + + \(t\) + + or + + \(s\) + + may be empty, in which case they are +implicit in the concatenation above. For example, if the premise is + + \(x\cdot z = x\) + + , then this rule, with argument + + \(\bot\) + + , concludes + + \(z = \epsilon\) + + . +

    +

    + Also note that constants are split, such that for + + \((\mathsf{'abc'} +\cdot x) = (\mathsf{'a'} \cdot y)\) + + , this rule, with argument + + \(\bot\) + + , +concludes + + \((\mathsf{'bc'} \cdot x) = y\) + + . This splitting is done only +for constants such that + + + Word::splitConstant + + + returns non-null. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_CONCAT_UNIFY + + + + +  + +
    +
    +
    +

    +

    +

    + + Strings – Core rules – Concatenation unification + +

    +
    + \[\inferrule{(t_1\cdot t_2) = (s_1 \cdot s_2),\, \mathit{len}(t_1) = +\mathit{len}(s_1)\mid \bot}{t_1 = s_1}\] +
    +

    + Alternatively for the reverse: +

    +
    + \[\inferrule{(t_1\cdot t_2) = (s_1 \cdot s_2),\, \mathit{len}(t_2) = +\mathit{len}(s_2)\mid \top}{t_2 = s_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_CONCAT_CONFLICT + + + + +  + +
    +
    +
    +

    +

    +

    + + Strings – Core rules – Concatenation conflict + +

    +
    + \[\inferrule{(c_1\cdot t) = (c_2 \cdot s)\mid b}{\bot}\] +
    +

    + where + + \(b\) + + indicates if the direction is reversed, + + \(c_1,\,c_2\) + + are constants such that + + \(\texttt{Word::splitConstant}(c_1,c_2, +\mathit{index},b)\) + + is null, in other words, neither is a prefix of the +other. Note it may be the case that one side of the equality denotes the +empty string. +

    +

    + This rule is used exclusively for strings. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_CONCAT_CONFLICT_DEQ + + + + +  + +
    +
    +
    +

    +

    +

    + + Strings – Core rules – Concatenation conflict for disequal characters + +

    +
    + \[\inferrule{(t_1\cdot t) = (s_1 \cdot s), t_1 \neq s_1 \mid b}{\bot}\] +
    +

    + where + + \(t_1\) + + and + + \(s_1\) + + are constants of length one, or otherwise one side +of the equality is the empty sequence and + + \(t_1\) + + or + + \(s_1\) + + corresponding to +that side is the empty sequence. +

    +

    + This rule is used exclusively for sequences. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_CONCAT_SPLIT + + + + +  + +
    +
    +
    +

    +

    +

    + + Strings – Core rules – Concatenation split + +

    +
    + \[\inferruleSC{(t_1\cdot t_2) = (s_1 \cdot s_2),\, +\mathit{len}(t_1) \neq \mathit{len}(s_1)\mid b}{((t_1 = s_1\cdot r) +\vee (s_1 = t_1\cdot r)) \wedge r \neq \epsilon \wedge \mathit{len}(r)>0}{if $b=\bot$}\] +
    +

    + where + + \(r\) + + is the purification skolem for + + \(\mathit{ite}( +\mathit{len}(t_1) >= \mathit{len}(s_1), +\mathit{suf}(t_1,\mathit{len}(s_1)), +\mathit{suf}(s_1,\mathit{len}(t_1)))\) + + and + + \(\epsilon\) + + is the empty string (or sequence). +

    +
    + \[\inferruleSC{(t_1\cdot t_2) = (s_1 \cdot s_2),\, +\mathit{len}(t_2) \neq \mathit{len}(s_2)\mid b}{((t_2 = r \cdot s_2) +\vee (s_2 = r \cdot t_2)) \wedge r \neq \epsilon \wedge \mathit{len}(r)>0}{if $b=\top$}\] +
    +

    + where + + \(r\) + + is the purification Skolem for + + \(\mathit{ite}( +\mathit{len}(t_2) >= \mathit{len}(s_2), +\mathit{pre}(t_2,\mathit{len}(t_2) - \mathit{len}(s_2)), +\mathit{pre}(s_2,\mathit{len}(s_2) - \mathit{len}(t_2)))\) + + and + + \(\epsilon\) + + is the empty string (or sequence). +

    +

    + Above, + + \(\mathit{suf}(x,n)\) + + is shorthand for + + \(\mathit{substr}(x,n, \mathit{len}(x) - n)\) + + and + + \(\mathit{pre}(x,n)\) + + is shorthand for + + \(\mathit{substr}(x,0,n)\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_CONCAT_CSPLIT + + + + +  + +
    +
    +
    +

    +

    +

    + + Strings – Core rules – Concatenation split for constants + +

    +
    + \[\inferrule{(t_1\cdot t_2) = (c \cdot s_2),\, +\mathit{len}(t_1) \neq 0\mid \bot}{(t_1 = c\cdot r)}\] +
    +

    + where + + \(r\) + + is the purification skolem for + + \(\mathit{suf}(t_1,1)\) + + . +

    +

    + Alternatively for the reverse: +

    +
    + \[\inferrule{(t_1\cdot t_2) = (s_1 \cdot c),\, +\mathit{len}(t_2) \neq 0\mid \top}{(t_2 = r\cdot c)}\] +
    +

    + where + + \(r\) + + is the purification skolem for + + \(\mathit{pre}(t_2,\mathit{len}(t_2) - 1)\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_CONCAT_LPROP + + + + +  + +
    +
    +
    +

    +

    +

    + + Strings – Core rules – Concatenation length propagation + +

    +
    + \[\inferrule{(t_1\cdot t_2) = (s_1 \cdot s_2),\, +\mathit{len}(t_1) > \mathit{len}(s_1)\mid \bot}{(t_1 = s_1\cdot r)}\] +
    +

    + where + + \(r\) + + is the purification Skolem for + + \(\mathit{ite}( +\mathit{len}(t_1) >= \mathit{len}(s_1), +\mathit{suf}(t_1,\mathit{len}(s_1)), +\mathit{suf}(s_1,\mathit{len}(t_1)))\) + + . +

    +

    + Alternatively for the reverse: +

    +
    + \[\inferrule{(t_1\cdot t_2) = (s_1 \cdot s_2),\, +\mathit{len}(t_2) > \mathit{len}(s_2)\mid \top}{(t_2 = r \cdot s_2)}\] +
    +

    + where + + \(r\) + + is the purification Skolem for + + \(\mathit{ite}( +\mathit{len}(t_2) >= \mathit{len}(s_2), +\mathit{pre}(t_2,\mathit{len}(t_2) - \mathit{len}(s_2)), +\mathit{pre}(s_2,\mathit{len}(s_2) - \mathit{len}(t_2)))\) + +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_CONCAT_CPROP + + + + +  + +
    +
    +
    +

    +

    +

    + + Strings – Core rules – Concatenation constant propagation + +

    +
    + \[\inferrule{(t_1\cdot w_1\cdot t_2) = (w_2 \cdot s),\, +\mathit{len}(t_1) \neq 0\mid \bot}{(t_1 = t_3\cdot r)}\] +
    +

    + where + + \(w_1,\,w_2\) + + are words, + + \(t_3\) + + is + + \(\mathit{pre}(w_2,p)\) + + , + + \(p\) + + is + + \(\texttt{Word::overlap}(\mathit{suf}(w_2,1), w_1)\) + + , and + + \(r\) + + is +the purification skolem for + + \(\mathit{suf}(t_1,\mathit{len}(w_3))\) + + . Note that + + \(\mathit{suf}(w_2,p)\) + + is the largest suffix of + + \(\mathit{suf}(w_2,1)\) + + that can contain a prefix of + + \(w_1\) + + ; since + + \(t_1\) + + is non-empty, + + \(w_3\) + + must therefore be contained in + + \(t_1\) + + . +

    +

    + Alternatively for the reverse: +

    +
    + \[\inferrule{(t_1\cdot w_1\cdot t_2) = (s \cdot w_2),\, +\mathit{len}(t_2) \neq 0\mid \top}{(t_2 = r\cdot t_3)}\] +
    +

    + where + + \(w_1,\,w_2\) + + are words, + + \(t_3\) + + is + + \(\mathit{substr}(w_2, \mathit{len}(w_2) - p, p)\) + + , + + \(p\) + + is + + \(\texttt{Word::roverlap}(\mathit{pre}(w_2, \mathit{len}(w_2) - 1), +w_1)\) + + , and + + \(r\) + + is the purification skolem for + + \(\mathit{pre}(t_2,\mathit{len}(t_2) - \mathit{len}(w_3))\) + + . Note that + + \(\mathit{pre}(w_2, \mathit{len}(w_2) - p)\) + + is the largest prefix of + + \(\mathit{pre}(w_2, \mathit{len}(w_2) - 1)\) + + that can contain a suffix +of + + \(w_1\) + + ; since + + \(t_2\) + + is non-empty, + + \(w_3\) + + must therefore +be contained in + + \(t_2\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_STRING_DECOMPOSE + + + + +  + +
    +
    +
    +

    +

    +

    + + Strings – Core rules – String decomposition + +

    +
    + \[\inferrule{\mathit{len}(t) \geq n\mid \bot}{t = w_1\cdot w_2 \wedge +\mathit{len}(w_1) = n}\] +
    +

    + where + + \(w_1\) + + is the purification skolem for + + \(\mathit{pre}(t,n)\) + + and + + \(w_2\) + + is the purification skolem for + + \(\mathit{suf}(t,n)\) + + . +Or alternatively for the reverse: +

    +
    + \[\inferrule{\mathit{len}(t) \geq n\mid \top}{t = w_1\cdot w_2 \wedge +\mathit{len}(w_2) = n}\] +
    +

    + where + + \(w_1\) + + is the purification skolem for + + \(\mathit{pre}(t,n)\) + + and + + \(w_2\) + + is the purification skolem for + + \(\mathit{suf}(t,n)\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_STRING_LENGTH_POS + + + + +  + +
    +
    +
    +

    +

    +

    + + Strings – Core rules – Length positive + +

    +
    + \[\inferrule{-\mid t}{(\mathit{len}(t) = 0\wedge t= \epsilon)\vee \mathit{len}(t) +> 0}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_STRING_LENGTH_NON_EMPTY + + + + +  + +
    +
    +
    +

    +

    +

    + + Strings – Core rules – Length non-empty + +

    +
    + \[\inferrule{t\neq \epsilon\mid -}{\mathit{len}(t) \neq 0}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_STRING_REDUCTION + + + + +  + +
    +
    +
    +

    +

    +

    + + Strings – Extended functions – Reduction + +

    +
    + \[\inferrule{-\mid t}{R\wedge t = w}\] +
    +

    + where + + \(w\) + + is + + \(\texttt{StringsPreprocess::reduce}(t, R, +\dots)\) + + . For details, see + + theory/strings/theory_strings_preprocess.h + + . +In other words, + + \(R\) + + is the reduction predicate for extended +term + + \(t\) + + , and + + \(w\) + + is the purification skolem for + + \(t\) + + . +

    +

    + Notice that the free variables of + + \(R\) + + are + + \(w\) + + and the free +variables of + + \(t\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_STRING_EAGER_REDUCTION + + + + +  + +
    +
    +
    +

    +

    +

    + + Strings – Extended functions – Eager reduction + +

    +
    + \[\inferrule{-\mid t}{R}\] +
    +

    + where + + \(R\) + + is + + \(\texttt{TermRegistry::eagerReduce}(t)\) + + . +For details, see + + theory/strings/term_registry.h + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_RE_INTER + + + + +  + +
    +
    +
    +

    +

    +

    + + Strings – Regular expressions – Intersection + +

    +
    + \[\inferrule{t\in R_1,\,t\in R_2\mid -}{t\in \mathit{re.inter}(R_1,R_2)}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_RE_UNFOLD_POS + + + + +  + +
    +
    +
    +

    +

    +

    + + Strings – Regular expressions – Positive Unfold + +

    +
    + \[\inferrule{t\in R\mid -}{F}\] +
    +

    + where + + \(F\) + + corresponds to the one-step unfolding of the premise. +This is implemented by + + \(\texttt{RegExpOpr::reduceRegExpPos}(t\in R)\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_RE_UNFOLD_NEG + + + + +  + +
    +
    +
    +

    +

    +

    + + Strings – Regular expressions – Negative Unfold + +

    +
    + \[\inferrule{t \not \in \mathit{re}.\text{*}(R) \mid -}{t \neq \ \epsilon \ \wedge \forall L. L \leq 0 \vee \mathit{str.len}(t) < L \vee \mathit{pre}(t, L) \not \in R \vee \mathit{suf}(t, L) \not \in \mathit{re}.\text{*}(R)}\] +
    +

    + Or alternatively for regular expression concatenation: +

    +
    + \[\inferrule{t \not \in \mathit{re}.\text{++}(R_1, \ldots, R_n)\mid -}{\forall L. L < 0 \vee \mathit{str.len}(t) < L \vee \mathit{pre}(t, L) \not \in R_1 \vee \mathit{suf}(t, L) \not \in \mathit{re}.\text{++}(R_2, \ldots, R_n)}\] +
    +

    + Note that in either case the varaible + + \(L\) + + has type + + \(Int\) + + and +name + + “@var.str_index” + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_RE_UNFOLD_NEG_CONCAT_FIXED + + + + +  + +
    +
    +
    +

    +

    +

    + + Strings – Regular expressions – Unfold negative concatenation, fixed + +

    +
    + \[ \inferrule{t\not\in \mathit{re}.\text{re.++}(r_1, \ldots, r_n) \mid \bot}{ +\mathit{pre}(t, L) \not \in r_1 \vee \mathit{suf}(t, L) \not \in \mathit{re}.\text{re.++}(r_2, \ldots, r_n)}\] +
    +

    + where + + \(r_1\) + + has fixed length + + \(L\) + + . +

    +

    + or alternatively for the reverse: +

    +
    + \[\inferrule{t \not \in \mathit{re}.\text{re.++}(r_1, \ldots, r_n) \mid \top}{ +\mathit{suf}(t, str.len(t) - L) \not \in r_n \vee +\mathit{pre}(t, str.len(t) - L) \not \in \mathit{re}.\text{re.++}(r_1, \ldots, r_{n-1})}\] +
    +

    + where + + \(r_n\) + + has fixed length + + \(L\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_STRING_CODE_INJ + + + + +  + +
    +
    +
    +

    +

    +

    + + Strings – Code points + +

    +
    + \[\inferrule{-\mid t,s}{\mathit{to\_code}(t) = -1 \vee \mathit{to\_code}(t) \neq +\mathit{to\_code}(s) \vee t = s}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_STRING_SEQ_UNIT_INJ + + + + +  + +
    +
    +
    +

    +

    +

    + + Strings – Sequence unit + +

    +
    + \[\inferrule{\mathit{unit}(x) = \mathit{unit}(y)\mid -}{x = y}\] +
    +

    + Also applies to the case where + + \(\mathit{unit}(y)\) + + is a constant +sequence of length one. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_STRING_EXT + + + + +  + +
    +
    +
    +

    +

    +

    + + Strings – Extensionality + +

    +
    + \[\inferrule{s \neq t\mid -} +{\mathit{seq.len}(s) \neq \mathit{seq.len}(t) \vee (\mathit{seq.nth}(s,k)\neq\mathit{set.nth}(t,k) \wedge 0 \leq k \wedge k < \mathit{seq.len}(s))}\] +
    +

    + where + + \(s,t\) + + are terms of sequence type, + + \(k\) + + is the + + \(\texttt{STRINGS_DEQ_DIFF}\) + + skolem for + + \(s,t\) + + . Alternatively, +if + + \(s,t\) + + are terms of string type, we use + + \(\mathit{seq.substr}(s,k,1)\) + + instead of + + \(\mathit{seq.nth}(s,k)\) + + and similarly for + + \(t\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_MACRO_STRING_INFERENCE + + + + +  + +
    +
    +
    +

    +

    +

    + + Strings – (Macro) String inference + +

    +
    + \[\inferrule{?\mid F,\mathit{id},\mathit{isRev},\mathit{exp}}{F}\] +
    +

    + used to bookkeep an inference that has not yet been converted via + + \(\texttt{strings::InferProofCons::convert}\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_MACRO_ARITH_SCALE_SUM_UB + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Adding inequalities + +

    +

    + An arithmetic literal is a term of the form + + \(p \diamond c\) + + where + + \(\diamond \in \{ <, \leq, =, \geq, > \}\) + + , + + \(p\) + + a +polynomial and + + \(c\) + + a rational constant. +

    +
    + \[\inferrule{l_1 \dots l_n \mid k_1 \dots k_n}{t_1 \diamond t_2}\] +
    +

    + where + + \(k_i \in \mathbb{R}, k_i \neq 0\) + + , + + \(\diamond\) + + is the +fusion of the + + \(\diamond_i\) + + (flipping each if its + + \(k_i\) + + is +negative) such that + + \(\diamond_i \in \{ <, \leq \}\) + + (this implies that +lower bounds have negative + + \(k_i\) + + and upper bounds have positive + + \(k_i\) + + ), + + \(t_1\) + + is the sum of the scaled polynomials and + + \(t_2\) + + is the sum of the scaled constants: +

    +
    + \[ \begin{align}\begin{aligned}t_1 \colon= k_1 \cdot p_1 + \cdots + k_n \cdot p_n\\t_2 \colon= k_1 \cdot c_1 + \cdots + k_n \cdot c_n\end{aligned}\end{align} \] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_ARITH_MULT_ABS_COMPARISON + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Non-linear multiply absolute value comparison + +

    +
    + \[\inferrule{F_1 \dots F_n \mid -}{F}\] +
    +

    + where + + \(F\) + + is of the form + + \(\left| t_1 \cdot t_n \right| \diamond \left| s_1 \cdot s_n \right|\) + + . +If + + \(\diamond\) + + is + + \(=\) + + , then each + + \(F_i\) + + is + + \(\left| t_i \right| = \left| s_i \right|\) + + . +

    +

    + If + + \(\diamond\) + + is + + \(>\) + + , then +each + + \(F_i\) + + is either + + \(\left| t_i \right| > \left| s_i \right|\) + + or + + \(\left| t_i \right| = \left| s_i \right| \land \left| t_i \right| \neq 0\) + + , +and + + \(F_1\) + + is of the former form. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_ARITH_SUM_UB + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Sum upper bounds + +

    +
    + \[\inferrule{P_1 \dots P_n \mid -}{L \diamond R}\] +
    +

    + where + + \(P_i\) + + has the form + + \(L_i \diamond_i R_i\) + + and + + \(\diamond_i \in \{<, \leq, =\}\) + + . Furthermore + + \(\diamond = <\) + + if + + \(\diamond_i = <\) + + for any + + \(i\) + + and + + \(\diamond = \leq\) + + otherwise, + + \(L = L_1 + \cdots + L_n\) + + and + + \(R = R_1 + \cdots + R_n\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_INT_TIGHT_UB + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Tighten strict integer upper bounds + +

    +
    + \[\inferrule{i < c \mid -}{i \leq \lfloor c \rfloor}\] +
    +

    + where + + \(i\) + + has integer type. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_INT_TIGHT_LB + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Tighten strict integer lower bounds + +

    +
    + \[\inferrule{i > c \mid -}{i \geq \lceil c \rceil}\] +
    +

    + where + + \(i\) + + has integer type. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_ARITH_TRICHOTOMY + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Trichotomy of the reals + +

    +
    + \[\inferrule{A, B \mid -}{C}\] +
    +

    + where + + \(\neg A, \neg B, C\) + + are + + \(x < c, x = c, x > c\) + + in some order. +Note that + + \(\neg\) + + here denotes arithmetic negation, i.e., flipping + + \(\geq\) + + to + + \(<\) + + etc. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_ARITH_REDUCTION + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Reduction + +

    +
    + \[\inferrule{- \mid t}{F}\] +
    +

    + where + + \(t\) + + is an application of an extended arithmetic operator (e.g. +division, modulus, cosine, sqrt, is_int, to_int) and + + \(F\) + + is the +reduction predicate for + + \(t\) + + . In other words, + + \(F\) + + is a +predicate that is used to reduce reasoning about + + \(t\) + + to reasoning +about the core operators of arithmetic. +

    +

    + In detail, + + \(F\) + + is implemented by + + \(\texttt{arith::OperatorElim::getAxiomFor(t)}\) + + , see + + theory/arith/operator_elim.h + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_ARITH_POLY_NORM + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Polynomial normalization + +

    +
    + \[\inferrule{- \mid t = s}{t = s}\] +
    +

    + where + + \(\texttt{arith::PolyNorm::isArithPolyNorm(t, s)} = \top\) + + . This +method normalizes polynomials + + \(s\) + + and + + \(t\) + + over arithmetic or +bitvectors. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_ARITH_POLY_NORM_REL + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Polynomial normalization for relations + +

    +
    + \[\inferrule{c_x \cdot (x_1 - x_2) = c_y \cdot (y_1 - y_2) \mid \diamond} + {(x_1 \diamond x_2) = (y_1 \diamond y_2)}\] +
    +

    + where + + \(\diamond \in \{<, \leq, =, \geq, >\}\) + + for arithmetic and + + \(\diamond \in \{=\}\) + + for bitvectors. + + \(c_x\) + + and + + \(c_y\) + + are +scaling factors. For + + \(<, \leq, \geq, >\) + + , the scaling factors have the +same sign. For bitvectors, they are set to + + \(1\) + + . +

    +

    + If + + \(c_x\) + + has type + + \(Real\) + + and + + \(x_1, x_2\) + + are of type + + \(Int\) + + , then + + \((x_1 - x_2)\) + + is wrapped in an application of + + to_real + + , similarly for + + \((y_1 - y_2)\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_ARITH_MULT_SIGN + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Sign inference + +

    +
    + \[\inferrule{- \mid f_1 \dots f_k, m}{(f_1 \land \dots \land f_k) \rightarrow m \diamond 0}\] +
    +

    + where + + \(f_1 \dots f_k\) + + are variables compared to zero (less, greater +or not equal), + + \(m\) + + is a monomial from these variables and + + \(\diamond\) + + is the comparison (less or equal) that results from the +signs of the variables. All variables with even exponent in + + \(m\) + + should be given as not equal to zero while all variables with odd exponent +in + + \(m\) + + should be given as less or greater than zero. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_ARITH_MULT_POS + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Multiplication with positive factor + +

    +
    + \[\inferrule{- \mid m, l \diamond r}{(m > 0 \land l \diamond r) \rightarrow m \cdot l \diamond m \cdot r}\] +
    +

    + where + + \(\diamond\) + + is a relation symbol. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_ARITH_MULT_NEG + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Multiplication with negative factor + +

    +
    + \[\inferrule{- \mid m, l \diamond r}{(m < 0 \land l \diamond r) \rightarrow m \cdot l \diamond_{inv} m \cdot r}\] +
    +

    + where + + \(\diamond\) + + is a relation symbol and + + \(\diamond_{inv}\) + + the +inverted relation symbol. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_ARITH_MULT_TANGENT + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Multiplication tangent plane + +

    +
    + \[ \begin{align}\begin{aligned}\inferruleSC{- \mid x, y, a, b, \sigma}{(t \leq tplane) = ((x \leq a \land y \geq b) \lor (x \geq a \land y \leq b))}{if $\sigma = \bot$}\\\inferruleSC{- \mid x, y, a, b, \sigma}{(t \geq tplane) = ((x \leq a \land y \leq b) \lor (x \geq a \land y \geq b))}{if $\sigma = \top$}\end{aligned}\end{align} \] +
    +

    + where + + \(x,y\) + + are real terms (variables or extended terms), + + \(t = x \cdot y\) + + , + + \(a,b\) + + are real +constants, + + \(\sigma \in \{ \top, \bot\}\) + + and + + \(tplane := b \cdot x + a \cdot y - a \cdot b\) + + is the tangent plane of + + \(x \cdot y\) + + at + + \((a,b)\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_ARITH_TRANS_PI + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Transcendentals – Assert bounds on Pi + +

    +
    + \[\inferrule{- \mid l, u}{\texttt{real.pi} \geq l \land \texttt{real.pi} +\leq u}\] +
    +

    + where + + \(l,u\) + + are valid lower and upper bounds on + + \(\pi\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_ARITH_TRANS_EXP_NEG + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Transcendentals – Exp at negative values + +

    +
    + \[\inferrule{- \mid t}{(t < 0) \leftrightarrow (\exp(t) < 1)}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_ARITH_TRANS_EXP_POSITIVITY + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Transcendentals – Exp is always positive + +

    +
    + \[\inferrule{- \mid t}{\exp(t) > 0}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_ARITH_TRANS_EXP_SUPER_LIN + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Transcendentals – Exp grows super-linearly for positive +values + +

    +
    + \[\inferrule{- \mid t}{t \leq 0 \lor \exp(t) > t+1}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_ARITH_TRANS_EXP_ZERO + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Transcendentals – Exp at zero + +

    +
    + \[\inferrule{- \mid t}{(t=0) \leftrightarrow (\exp(t) = 1)}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_ARITH_TRANS_EXP_APPROX_ABOVE_NEG + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Transcendentals – Exp is approximated from above for +negative values + +

    +
    + \[\inferrule{- \mid d,t,l,u}{(t \geq l \land t \leq u) \rightarrow exp(t) +\leq \texttt{secant}(\exp, l, u, t)}\] +
    +

    + where + + \(d\) + + is an even positive number, + + \(t\) + + an arithmetic term +and + + \(l,u\) + + are lower and upper bounds on + + \(t\) + + . Let + + \(p\) + + be +the + + \(d\) + + ’th taylor polynomial at zero (also called the Maclaurin +series) of the exponential function. + + \(\texttt{secant}(\exp, l, u, t)\) + + denotes the secant of + + \(p\) + + from + + \((l, \exp(l))\) + + to + + \((u, +\exp(u))\) + + evaluated at + + \(t\) + + , calculated as follows: +

    +
    + \[\frac{p(l) - p(u)}{l - u} \cdot (t - l) + p(l)\] +
    +

    + The lemma states that if + + \(t\) + + is between + + \(l\) + + and + + \(u\) + + , then + + \(\exp(t\) + + is below the secant of + + \(p\) + + from + + \(l\) + + to + + \(u\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_ARITH_TRANS_EXP_APPROX_ABOVE_POS + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Transcendentals – Exp is approximated from above for +positive values + +

    +
    + \[\inferrule{- \mid d,t,l,u}{(t \geq l \land t \leq u) \rightarrow exp(t) +\leq \texttt{secant-pos}(\exp, l, u, t)}\] +
    +

    + where + + \(d\) + + is an even positive number, + + \(t\) + + an arithmetic term +and + + \(l,u\) + + are lower and upper bounds on + + \(t\) + + . Let + + \(p^*\) + + be +a modification of the + + \(d\) + + ’th taylor polynomial at zero (also called +the Maclaurin series) of the exponential function as follows where + + \(p(d-1)\) + + is the regular Maclaurin series of degree + + \(d-1\) + + : +

    +
    + \[p^* := p(d-1) \cdot \frac{1 + t^n}{n!}\] +
    +

    + + \(\texttt{secant-pos}(\exp, l, u, t)\) + + denotes the secant of + + \(p\) + + from + + \((l, \exp(l))\) + + to + + \((u, \exp(u))\) + + evaluated at + + \(t\) + + , +calculated as follows: +

    +
    + \[\frac{p(l) - p(u)}{l - u} \cdot (t - l) + p(l)\] +
    +

    + The lemma states that if + + \(t\) + + is between + + \(l\) + + and + + \(u\) + + , then + + \(\exp(t\) + + is below the secant of + + \(p\) + + from + + \(l\) + + to + + \(u\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_ARITH_TRANS_EXP_APPROX_BELOW + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Transcendentals – Exp is approximated from below + +

    +
    + \[\inferrule{- \mid d,c,t}{t \geq c \rightarrow exp(t) \geq \texttt{maclaurin}(\exp, d, c)}\] +
    +

    + where + + \(d\) + + is an odd positive number, + + \(t\) + + an arithmetic term and + + \(\texttt{maclaurin}(\exp, d, c)\) + + is the + + \(d\) + + ’th taylor +polynomial at zero (also called the Maclaurin series) of the exponential +function evaluated at + + \(c\) + + . The Maclaurin series for the exponential +function is the following: +

    +
    + \[\exp(x) = \sum_{n=0}^{\infty} \frac{x^n}{n!}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_ARITH_TRANS_SINE_BOUNDS + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Transcendentals – Sine is always between -1 and 1 + +

    +
    + \[\inferrule{- \mid t}{\sin(t) \leq 1 \land \sin(t) \geq -1}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_ARITH_TRANS_SINE_SHIFT + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Transcendentals – Sine is shifted to -pi…pi + +

    +
    + \[\inferrule{- \mid x}{-\pi \leq y \leq \pi \land \sin(y) = \sin(x) +\land (\ite{-\pi \leq x \leq \pi}{x = y}{x = y + 2 \pi s})}\] +
    +

    + where + + \(x\) + + is the argument to sine, + + \(y\) + + is a new real skolem +that is + + \(x\) + + shifted into + + \(-\pi \dots \pi\) + + and + + \(s\) + + is a +new integer skolem that is the number of phases + + \(y\) + + is shifted. +In particular, + + \(y\) + + is the + + + + TRANSCENDENTAL_PURIFY_ARG + + + + skolem for + + \(\sin(x)\) + + and + + \(s\) + + is the + + + + TRANSCENDENTAL_SINE_PHASE_SHIFT + + + + skolem for + + \(x\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_ARITH_TRANS_SINE_SYMMETRY + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Transcendentals – Sine is symmetric with respect to +negation of the argument + +

    +
    + \[\inferrule{- \mid t}{\sin(t) - \sin(-t) = 0}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_ARITH_TRANS_SINE_TANGENT_ZERO + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Transcendentals – Sine is bounded by the tangent at zero + +

    +
    + \[\inferrule{- \mid t}{(t > 0 \rightarrow \sin(t) < t) \land (t < 0 +\rightarrow \sin(t) > t)} \] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_ARITH_TRANS_SINE_TANGENT_PI + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Transcendentals – Sine is bounded by the tangents at -pi +and pi + +

    +
    + \[\inferrule{- \mid t}{(t > -\pi \rightarrow \sin(t) > -\pi - t) \land (t < +\pi \rightarrow \sin(t) < \pi - t)} \] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_ARITH_TRANS_SINE_APPROX_ABOVE_NEG + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Transcendentals – Sine is approximated from above for +negative values + +

    +
    + \[\inferrule{- \mid d,t,lb,ub,l,u}{(t \geq lb land t \leq ub) \rightarrow +\sin(t) \leq \texttt{secant}(\sin, l, u, t)}\] +
    +

    + where + + \(d\) + + is an even positive number, + + \(t\) + + an arithmetic term, + + \(lb,ub\) + + are symbolic lower and upper bounds on + + \(t\) + + (possibly +containing + + \(\pi\) + + ) and + + \(l,u\) + + the evaluated lower and upper +bounds on + + \(t\) + + . Let + + \(p\) + + be the + + \(d\) + + ’th taylor polynomial at +zero (also called the Maclaurin series) of the sine function. + + \(\texttt{secant}(\sin, l, u, t)\) + + denotes the secant of + + \(p\) + + from + + \((l, \sin(l))\) + + to + + \((u, \sin(u))\) + + evaluated at + + \(t\) + + , +calculated as follows: +

    +
    + \[\frac{p(l) - p(u)}{l - u} \cdot (t - l) + p(l)\] +
    +

    + The lemma states that if + + \(t\) + + is between + + \(l\) + + and + + \(u\) + + , then + + \(\sin(t)\) + + is below the secant of + + \(p\) + + from + + \(l\) + + to + + \(u\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_ARITH_TRANS_SINE_APPROX_ABOVE_POS + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Transcendentals – Sine is approximated from above for +positive values + +

    +
    + \[\inferrule{- \mid d,t,c,lb,ub}{(t \geq lb land t \leq ub) \rightarrow +\sin(t) \leq \texttt{upper}(\sin, c)}\] +
    +

    + where + + \(d\) + + is an even positive number, + + \(t\) + + an arithmetic term, + + \(c\) + + an arithmetic constant and + + \(lb,ub\) + + are symbolic lower and +upper bounds on + + \(t\) + + (possibly containing + + \(\pi\) + + ). Let + + \(p\) + + be the + + \(d\) + + ’th taylor polynomial at zero (also called the Maclaurin +series) of the sine function. + + \(\texttt{upper}(\sin, c)\) + + denotes the +upper bound on + + \(\sin(c)\) + + given by + + \(p\) + + and + + \(lb,up\) + + such +that + + \(\sin(t)\) + + is the maximum of the sine function on + + \((lb,ub)\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_ARITH_TRANS_SINE_APPROX_BELOW_NEG + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Transcendentals – Sine is approximated from below for +negative values + +

    +
    + \[\inferrule{- \mid d,t,c,lb,ub}{(t \geq lb land t \leq ub) \rightarrow +\sin(t) \geq \texttt{lower}(\sin, c)}\] +
    +

    + where + + \(d\) + + is an even positive number, + + \(t\) + + an arithmetic term, + + \(c\) + + an arithmetic constant and + + \(lb,ub\) + + are symbolic lower and +upper bounds on + + \(t\) + + (possibly containing + + \(\pi\) + + ). Let + + \(p\) + + be the + + \(d\) + + ’th taylor polynomial at zero (also called the Maclaurin +series) of the sine function. + + \(\texttt{lower}(\sin, c)\) + + denotes the +lower bound on + + \(\sin(c)\) + + given by + + \(p\) + + and + + \(lb,up\) + + such +that + + \(\sin(t)\) + + is the minimum of the sine function on + + \((lb,ub)\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_ARITH_TRANS_SINE_APPROX_BELOW_POS + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Transcendentals – Sine is approximated from below for +positive values + +

    +
    + \[\inferrule{- \mid d,t,lb,ub,l,u}{(t \geq lb land t \leq ub) \rightarrow +\sin(t) \geq \texttt{secant}(\sin, l, u, t)}\] +
    +

    + where + + \(d\) + + is an even positive number, + + \(t\) + + an arithmetic term, + + \(lb,ub\) + + are symbolic lower and upper bounds on + + \(t\) + + (possibly +containing + + \(\pi\) + + ) and + + \(l,u\) + + the evaluated lower and upper +bounds on + + \(t\) + + . Let + + \(p\) + + be the + + \(d\) + + ’th taylor polynomial at +zero (also called the Maclaurin series) of the sine function. + + \(\texttt{secant}(\sin, l, u, t)\) + + denotes the secant of + + \(p\) + + from + + \((l, \sin(l))\) + + to + + \((u, \sin(u))\) + + evaluated at + + \(t\) + + , +calculated as follows: +

    +
    + \[\frac{p(l) - p(u)}{l - u} \cdot (t - l) + p(l)\] +
    +

    + The lemma states that if + + \(t\) + + is between + + \(l\) + + and + + \(u\) + + , then + + \(\sin(t)\) + + is above the secant of + + \(p\) + + from + + \(l\) + + to + + \(u\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_LFSC_RULE + + + + +  + +
    +
    +
    +

    +

    +

    + + External – LFSC + +

    +

    + Place holder for LFSC rules. +

    +
    + \[\inferrule{P_1, \dots, P_n\mid \texttt{id}, Q, A_1,\dots, A_m}{Q}\] +
    +

    + Note that the premises and arguments are arbitrary. It’s expected that + + \(\texttt{id}\) + + refer to a proof rule in the external LFSC calculus. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_ALETHE_RULE + + + + +  + +
    +
    +
    +

    +

    +

    + + External – Alethe + +

    +

    + Place holder for Alethe rules. +

    +
    + \[\inferrule{P_1, \dots, P_n\mid \texttt{id}, Q, Q', A_1,\dots, A_m}{Q}\] +
    +

    + Note that the premises and arguments are arbitrary. It’s expected that + + \(\texttt{id}\) + + refer to a proof rule in the external Alethe calculus, +and that + + \(Q'\) + + be the representation of Q to be printed by the Alethe +printer. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_UNKNOWN + + + + +  + +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_RULE_LAST + + + + +  + +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + + cvc5_proof_rule_to_string + + + + + ( + + + + + Cvc5ProofRule + + + + + + + + rule + + + + ) + + +  + +
    +
    +
    +

    + Get a string representation of a Cvc5ProofRule. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + rule + + – The proof rule. +

    +
    +
    + Returns + + : + +
    +
    +

    + The string representation. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + size_t + + + + + + + + cvc5_proof_rule_hash + + + + + ( + + + + + Cvc5ProofRule + + + + + + + + rule + + + + ) + + +  + +
    +
    +
    +

    + Hash function for Cvc5ProofRule. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + rule + + – The proof rule. +

    +
    +
    + Returns + + : + +
    +
    +

    + The hash value. +

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + enum + + + + + + + + Cvc5ProofRewriteRule + + + + +  + +
    +
    +
    +

    + 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 + + + + proof rule +and the + + + + THEORY_REWRITE + + + + proof rule. +

    +

    + + Values: + +

    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_NONE + + + + +  + +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_DISTINCT_ELIM + + + + +  + +
    +
    +
    +

    +

    +

    + + Builtin – Distinct elimination + +

    +
    + \[\texttt{distinct}(t_1, t_2) = \neg (t_1 = t2)\] +
    +

    + if + + \(n = 2\) + + , or +

    +
    + \[\texttt{distinct}(t_1, \ldots, tn) = \bigwedge_{i=1}^n \bigwedge_{j=i+1}^n t_i \neq t_j\] +
    +

    + if + + \(n > 2\) + +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_DISTINCT_CARD_CONFLICT + + + + +  + +
    +
    +
    +

    +

    +

    + + Builtin – Distinct cardinality conflict + +

    +
    + \[\texttt{distinct}(t_1, \ldots, tn) = \bot\] +
    +

    + where + + \(n\) + + is greater than the cardinality of the type of + + \(t_1, \ldots, t_n\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_TO_NAT_ELIM + + + + +  + +
    +
    +
    +

    +

    +

    + + UF – Bitvector to natural elimination + +

    +
    + \[\texttt{bv2nat}(t) = t_1 + \ldots + t_n\] +
    +

    + where for + + \(i=1, \ldots, n\) + + , + + \(t_i\) + + is + + \(\texttt{ite}(x[i-1, i-1] = 1, 2^i, 0)\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_INT_TO_BV_ELIM + + + + +  + +
    +
    +
    +

    +

    +

    + + UF – Integer to bitvector elimination + +

    +
    + \[\texttt{int2bv}_n(t) = (bvconcat t_1 \ldots t_n)\] +
    +

    + where for + + \(i=1, \ldots, n\) + + , + + \(t_i\) + + is + + \(\texttt{ite}(\texttt{mod}(t,2^n) \geq 2^{n-1}, 1, 0)\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_MACRO_BOOL_NNF_NORM + + + + +  + +
    +
    +
    +

    +

    +

    + + 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. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_MACRO_ARITH_STRING_PRED_ENTAIL + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – strings predicate entailment + +

    +
    + \[(= s t) = c\] +
    +
    + \[(>= s t) = c\] +
    +

    + where + + \(c\) + + is a Boolean constant. +This macro is elaborated by applications of + + + + EVALUATE + + + + , + + + + ARITH_POLY_NORM + + + + , + + + + ARITH_STRING_PRED_ENTAIL + + + + , + + + + ARITH_STRING_PRED_SAFE_APPROX + + + + , +as well as other rewrites for normalizing arithmetic predicates. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARITH_STRING_PRED_ENTAIL + + + + +  + +
    +
    +
    +

    +

    +

    + + 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. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARITH_STRING_PRED_SAFE_APPROX + + + + +  + +
    +
    +
    +

    +

    +

    + + 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”. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARITH_POW_ELIM + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – power elimination + +

    +
    + \[(x ^ c) = (x \cdot \ldots \cdot x)\] +
    +

    + where + + \(c\) + + is a non-negative integer. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BETA_REDUCE + + + + +  + +
    +
    +
    +

    +

    +

    + + 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 + + + Node::substitute + + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_LAMBDA_ELIM + + + + +  + +
    +
    +
    +

    +

    +

    + + Equality – Lambda elimination + +

    +
    + \[(\lambda x_1 \ldots x_n.\> f(x_1 \ldots x_n)) = f\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARRAYS_SELECT_CONST + + + + +  + +
    +
    +
    +

    +

    +

    + + Arrays – Constant array select + +

    +
    + \[(select A x) = c\] +
    +

    + where + + \(A\) + + is a constant array storing element + + \(c\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_MACRO_ARRAYS_DISTINCT_ARRAYS + + + + +  + +
    +
    +
    +

    +

    +

    + + Arrays – Macro distinct arrays + +

    +
    + \[(A = B) = \bot\] +
    +

    + where + + \(A\) + + and + + \(B\) + + are distinct array values, that is, +the Node::isConst method returns true for both. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_MACRO_ARRAYS_NORMALIZE_CONSTANT + + + + +  + +
    +
    +
    +

    +

    +

    + + Arrays – Macro normalize constant + +

    +
    + \[A = B\] +
    +

    + where + + \(B\) + + is the result of normalizing the array value + + \(A\) + + into a canonical form, using the internal method +TheoryArraysRewriter::normalizeConstant. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARRAYS_EQ_RANGE_EXPAND + + + + +  + +
    +
    +
    +

    +

    +

    + + 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)\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_EXISTS_ELIM + + + + +  + +
    +
    +
    +

    +

    +

    + + Quantifiers – Exists elimination + +

    +
    + \[\exists x_1\dots x_n.\> F = \neg \forall x_1\dots x_n.\> \neg F\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_QUANT_UNUSED_VARS + + + + +  + +
    +
    +
    +

    +

    +

    + + Quantifiers – Unused variables + +

    +
    + \[\forall X.\> F = \forall X_1.\> F\] +
    +

    + where + + \(X_1\) + + is the subset of + + \(X\) + + that appear free in + + \(F\) + + and + + \(X_1\) + + does not contain duplicate variables. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_MERGE_PRENEX + + + + +  + +
    +
    +
    +

    +

    +

    + + Quantifiers – Macro merge prenex + +

    +
    + \[\forall X_1.\> \ldots \forall X_n.\> F = \forall X.\> F\] +
    +

    + where + + \(X_1 \ldots X_n\) + + are lists of variables and + + \(X\) + + is the +result of removing duplicates from + + \(X_1 \ldots X_n\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_QUANT_MERGE_PRENEX + + + + +  + +
    +
    +
    +

    +

    +

    + + 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. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_PRENEX + + + + +  + +
    +
    +
    +

    +

    +

    + + Quantifiers – Macro prenex + +

    +
    + \[(\forall X.\> F_1 \vee \cdots \vee (\forall Y.\> F_i) \vee \cdots \vee F_n) = (\forall X Z.\> F_1 \vee \cdots \vee F_i\{ Y \mapsto Z \} \vee \cdots \vee F_n)\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_MINISCOPE + + + + +  + +
    +
    +
    +

    +

    +

    + + Quantifiers – Macro miniscoping + +

    +
    + \[\forall X.\> F_1 \wedge \cdots \wedge F_n = +G_1 \wedge \cdots \wedge G_n\] +
    +

    + where each + + \(G_i\) + + is semantically equivalent to + + \(\forall X.\> F_i\) + + , or alternatively +

    +
    + \[\forall X.\> \ite{C}{F_1}{F_2} = \ite{C}{G_1}{G_2}\] +
    +

    + where + + \(C\) + + does not have any free variable in + + \(X\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_QUANT_MINISCOPE_AND + + + + +  + +
    +
    +
    +

    +

    +

    + + Quantifiers – Miniscoping and + +

    +
    + \[\forall X.\> F_1 \wedge \ldots \wedge F_n = +(\forall X.\> F_1) \wedge \ldots \wedge (\forall X.\> F_n)\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_QUANT_MINISCOPE_OR + + + + +  + +
    +
    +
    +

    +

    +

    + + Quantifiers – Miniscoping or + +

    +
    + \[\forall X.\> F_1 \vee \ldots \vee F_n = (\forall X_1.\> F_1) \vee \ldots \vee (\forall X_n.\> F_n)\] +
    +

    + where + + \(X = X_1 \ldots X_n\) + + , and the right hand side does not have any +free variable in + + \(X\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_QUANT_MINISCOPE_ITE + + + + +  + +
    +
    +
    +

    +

    +

    + + Quantifiers – Miniscoping ite + +

    +
    + \[\forall X.\> \ite{C}{F_1}{F_2} = \ite{C}{\forall X.\> F_1}{\forall X.\> F_2}\] +
    +

    + where + + \(C\) + + does not have any free variable in + + \(X\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_QUANT_DT_SPLIT + + + + +  + +
    +
    +
    +

    +

    +

    + + Quantifiers – Datatypes Split + +

    +
    + \[(\forall x Y.\> F) = (\forall X_1 Y. F_1) \vee \cdots \vee (\forall X_n Y. F_n)\] +
    +

    + where + + \(x\) + + is of a datatype type with constructors + + \(C_1, \ldots, C_n\) + + , where for each + + \(i = 1, \ldots, n\) + + , + + \(F_i\) + + is + + \(F \{ x \mapsto C_i(X_i) \}\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_PARTITION_CONNECTED_FV + + + + +  + +
    +
    +
    +

    +

    +

    + + 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\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_VAR_ELIM_EQ + + + + +  + +
    +
    +
    +

    +

    +

    + + Quantifiers – Macro variable elimination equality + +

    +
    + \[\forall x Y.\> F = \forall Y.\> F \{ x \mapsto t \}\] +
    +

    + where + + \(\neg F\) + + entails + + \(x = t\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_QUANT_VAR_ELIM_EQ + + + + +  + +
    +
    +
    +

    +

    +

    + + Quantifiers – Macro variable elimination equality + +

    +
    + \[(\forall x.\> x \neq t \vee F) = F \{ x \mapsto t \}\] +
    +

    + or alternatively +

    +
    + \[(\forall x.\> x \neq t) = \bot\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_VAR_ELIM_INEQ + + + + +  + +
    +
    +
    +

    +

    +

    + + Quantifiers – Macro variable elimination inequality + +

    +
    + \[\forall x Y.\> F = \forall Y.\> G\] +
    +

    + where + + \(G\) + + is the result of replacing all literals containing + + \(x\) + + with a constant. This is applied only when all such literals +are lower (resp. upper) bounds for + + \(x\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_REWRITE_BODY + + + + +  + +
    +
    +
    +

    +

    +

    + + Quantifiers – Macro quantifiers rewrite body + +

    +
    + \[\forall X.\> F = \forall X.\> G\] +
    +

    + where + + \(G\) + + is semantically equivalent to + + \(F\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_DT_INST + + + + +  + +
    +
    +
    +

    +

    +

    + + 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\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_DT_COLLAPSE_SELECTOR + + + + +  + +
    +
    +
    +

    +

    +

    + + Datatypes – collapse selector + +

    +
    + \[s_i(c(t_1, \ldots, t_n)) = t_i\] +
    +

    + where + + \(s_i\) + + is the + + \(i^{th}\) + + selector for constructor + + \(c\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_DT_COLLAPSE_TESTER + + + + +  + +
    +
    +
    +

    +

    +

    + + 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. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_DT_COLLAPSE_TESTER_SINGLETON + + + + +  + +
    +
    +
    +

    +

    +

    + + Datatypes – collapse tester + +

    +
    + \[\mathit{is}_c(t) = true\] +
    +

    + where + + \(c\) + + is the only constructor of its associated datatype. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_DT_CONS_EQ + + + + +  + +
    +
    +
    +

    +

    +

    + + 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. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_DT_CYCLE + + + + +  + +
    +
    +
    +

    +

    +

    + + Datatypes – cycle + +

    +
    + \[(x = t[x]) = \bot\] +
    +

    + where all terms on the path to + + \(x\) + + in + + \(t[x]\) + + are applications +of constructors, and this path is non-empty. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_DT_COLLAPSE_UPDATER + + + + +  + +
    +
    +
    +

    +

    +

    + + Datatypes – collapse tester + +

    +
    + \[u_{c,i}(c(t_1, \ldots, t_i, \ldots, t_n), s) = c(t_1, \ldots, s, \ldots, t_n)\] +
    +

    + or alternatively +

    +
    + \[u_{c,i}(d(t_1, \ldots, t_n), s) = d(t_1, \ldots, t_n)\] +
    +

    + where + + \(c\) + + and + + \(d\) + + are distinct constructors. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_DT_UPDATER_ELIM + + + + +  + +
    +
    +
    +

    +

    +

    + + Datatypes - updater elimination + +

    +
    + \[u_{c,i}(t, s) = ite(\mathit{is}_c(t), c(s_0(t), \ldots, s, \ldots s_n(t)), t)\] +
    +

    + where + + \(s_i\) + + is the + + \(i^{th}\) + + selector for constructor + + \(c\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_DT_MATCH_ELIM + + + + +  + +
    +
    +
    +

    +

    +

    + + Datatypes – match elimination + +

    +
    + \[\texttt{match}(t ((p_1 c_1) \ldots (p_n c_n))) = \texttt{ite}(F_1, r_1, \texttt{ite}( \ldots, r_n))\] +
    +

    + where for + + \(i=1, \ldots, n\) + + , + + \(F_1\) + + is a formula that holds iff + + \(t\) + + matches + + \(p_i\) + + and + + \(r_i\) + + is the result of a +substitution on + + \(c_i\) + + based on this match. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_UMULO_ELIMINATE + + + + +  + +
    +
    +
    +

    +

    +

    + + Bitvectors – Unsigned multiplication overflow detection elimination + +

    +

    + See M.Gok, M.J. Schulte, P.I. Balzola, “Efficient integer multiplication +overflow detection circuits”, 2001. + + http://ieeexplore.ieee.org/document/987767 + +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_SMULO_ELIMINATE + + + + +  + +
    +
    +
    +

    +

    +

    + + Bitvectors – Unsigned multiplication overflow detection elimination + +

    +

    + See M.Gok, M.J. Schulte, P.I. Balzola, “Efficient integer multiplication +overflow detection circuits”, 2001. + + http://ieeexplore.ieee.org/document/987767 + +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_ADD_COMBINE_LIKE_TERMS + + + + +  + +
    +
    +
    +

    + + Bitvectors – Combine like terms during addition by counting terms + +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_MULT_SIMPLIFY + + + + +  + +
    +
    +
    +

    +

    +

    + + Bitvectors – Extract negations from multiplicands + +

    +
    + \[bvmul(bvneg(a),\ b,\ c) = bvneg(bvmul(a,\ b,\ c))\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_BITWISE_SLICING + + + + +  + +
    +
    +
    +

    +

    +

    + + 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 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_REPEAT_ELIM + + + + +  + +
    +
    +
    +

    +

    +

    + + Bitvectors – Extract continuous substrings of bitvectors + +

    +
    + \[repeat(n,\ t) = concat(t ... t)\] +
    +

    + where + + \(t\) + + is repeated + + \(n\) + + times. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_RE_LOOP_ELIM + + + + +  + +
    +
    +
    +

    +

    +

    + + Strings – regular expression loop elimination + +

    +
    + \[re.loop_{l,u}(R) = re.union(R^l, \ldots, R^u)\] +
    +

    + where + + \(u \geq l\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_RE_INTER_UNION_INCLUSION + + + + +  + +
    +
    +
    +

    +

    +

    + + 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 + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_IN_RE_EVAL + + + + +  + +
    +
    +
    +

    +

    +

    + + 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. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_IN_RE_CONSUME + + + + +  + +
    +
    +
    +

    +

    +

    + + 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\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_IN_RE_CONCAT_STAR_CHAR + + + + +  + +
    +
    +
    +

    +

    +

    + + Strings – string in regular expression concatenation star character + +

    +
    + \[\begin{split}\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))\end{split}\] +
    +

    + where all strings in + + \(R\) + + have length one. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_IN_RE_SIGMA + + + + +  + +
    +
    +
    +

    +

    +

    + + 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)\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_IN_RE_SIGMA_STAR + + + + +  + +
    +
    +
    +

    +

    +

    + + 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{++}\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_MACRO_SUBSTR_STRIP_SYM_LENGTH + + + + +  + +
    +
    +
    +

    +

    +

    + + 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\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_SETS_IS_EMPTY_EVAL + + + + +  + +
    +
    +
    +

    +

    +

    + + 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. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_SETS_INSERT_ELIM + + + + +  + +
    +
    +
    +

    +

    +

    + + Sets – sets insert elimination + +

    +
    + \[\mathit{sets.insert}(t_1, \ldots, t_n, S) = \texttt{set.union}(\texttt{sets.singleton}(t_1), \ldots, \texttt{sets.singleton}(t_n), S)\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARITH_MUL_ONE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-mul-one +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARITH_MUL_ZERO + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-mul-zero +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARITH_DIV_TOTAL_REAL + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-div-total-real +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARITH_DIV_TOTAL_INT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-div-total-int +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARITH_DIV_TOTAL_ZERO_REAL + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-div-total-zero-real +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARITH_DIV_TOTAL_ZERO_INT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-div-total-zero-int +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARITH_INT_DIV_TOTAL + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-int-div-total +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARITH_INT_DIV_TOTAL_ONE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-int-div-total-one +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARITH_INT_DIV_TOTAL_ZERO + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-int-div-total-zero +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARITH_INT_MOD_TOTAL + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-int-mod-total +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARITH_INT_MOD_TOTAL_ONE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-int-mod-total-one +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARITH_INT_MOD_TOTAL_ZERO + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-int-mod-total-zero +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_GT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-elim-gt +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_LT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-elim-lt +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_INT_GT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-elim-int-gt +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_INT_LT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-elim-int-lt +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_LEQ + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-elim-leq +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARITH_LEQ_NORM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-leq-norm +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARITH_GEQ_TIGHTEN + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-geq-tighten +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARITH_GEQ_NORM1_INT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-geq-norm1-int +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARITH_GEQ_NORM1_REAL + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-geq-norm1-real +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARITH_GEQ_NORM2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-geq-norm2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARITH_REFL_LEQ + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-refl-leq +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARITH_REFL_LT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-refl-lt +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARITH_REFL_GEQ + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-refl-geq +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARITH_REFL_GT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-refl-gt +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARITH_EQ_ELIM_REAL + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-eq-elim-real +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARITH_EQ_ELIM_INT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-eq-elim-int +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARITH_PLUS_FLATTEN + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-plus-flatten +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARITH_MULT_FLATTEN + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-mult-flatten +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARITH_MULT_DIST + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-mult-dist +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARITH_ABS_ELIM_INT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-abs-elim-int +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARITH_ABS_ELIM_REAL + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-abs-elim-real +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARITH_TO_REAL_ELIM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-to-real-elim +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARITH_TO_INT_ELIM_TO_REAL + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-to-int-elim-to-real +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARITH_DIV_ELIM_TO_REAL1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-div-elim-to-real1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARITH_DIV_ELIM_TO_REAL2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-div-elim-to-real2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARITH_SINE_ZERO + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-sine-zero +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARITH_SINE_PI2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-sine-pi2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARITH_COSINE_ELIM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-cosine-elim +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARITH_TANGENT_ELIM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-tangent-elim +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARITH_SECENT_ELIM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-secent-elim +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARITH_COSECENT_ELIM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-cosecent-elim +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARITH_COTANGENT_ELIM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-cotangent-elim +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARITH_PI_NOT_INT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-pi-not-int +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARITH_ABS_EQ + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-abs-eq +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARITH_ABS_INT_GT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-abs-int-gt +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARITH_ABS_REAL_GT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-abs-real-gt +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARRAY_READ_OVER_WRITE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule array-read-over-write +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARRAY_READ_OVER_WRITE2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule array-read-over-write2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARRAY_STORE_OVERWRITE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule array-store-overwrite +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARRAY_STORE_SELF + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule array-store-self +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ARRAY_READ_OVER_WRITE_SPLIT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule array-read-over-write-split +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BOOL_DOUBLE_NOT_ELIM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-double-not-elim +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BOOL_NOT_TRUE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-not-true +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BOOL_NOT_FALSE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-not-false +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BOOL_EQ_TRUE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-eq-true +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BOOL_EQ_FALSE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-eq-false +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BOOL_EQ_NREFL + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-eq-nrefl +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_FALSE1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-impl-false1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_FALSE2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-impl-false2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_TRUE1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-impl-true1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_TRUE2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-impl-true2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_ELIM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-impl-elim +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BOOL_OR_TRUE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-or-true +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BOOL_OR_FLATTEN + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-or-flatten +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BOOL_AND_FALSE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-and-false +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BOOL_AND_FLATTEN + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-and-flatten +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BOOL_AND_CONF + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-and-conf +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BOOL_AND_CONF2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-and-conf2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BOOL_OR_TAUT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-or-taut +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BOOL_OR_TAUT2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-or-taut2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BOOL_OR_DE_MORGAN + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-or-de-morgan +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BOOL_IMPLIES_DE_MORGAN + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-implies-de-morgan +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BOOL_AND_DE_MORGAN + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-and-de-morgan +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BOOL_OR_AND_DISTRIB + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-or-and-distrib +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BOOL_XOR_REFL + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-xor-refl +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BOOL_XOR_NREFL + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-xor-nrefl +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BOOL_XOR_FALSE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-xor-false +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BOOL_XOR_TRUE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-xor-true +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BOOL_XOR_COMM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-xor-comm +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BOOL_XOR_ELIM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-xor-elim +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BOOL_NOT_XOR_ELIM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-not-xor-elim +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BOOL_NOT_EQ_ELIM1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-not-eq-elim1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BOOL_NOT_EQ_ELIM2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-not-eq-elim2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ITE_NEG_BRANCH + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule ite-neg-branch +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ITE_THEN_TRUE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule ite-then-true +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ITE_ELSE_FALSE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule ite-else-false +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ITE_THEN_FALSE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule ite-then-false +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ITE_ELSE_TRUE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule ite-else-true +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ITE_THEN_LOOKAHEAD_SELF + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule ite-then-lookahead-self +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ITE_ELSE_LOOKAHEAD_SELF + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule ite-else-lookahead-self +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ITE_THEN_LOOKAHEAD_NOT_SELF + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule ite-then-lookahead-not-self +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ITE_ELSE_LOOKAHEAD_NOT_SELF + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule ite-else-lookahead-not-self +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ITE_EXPAND + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule ite-expand +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BOOL_NOT_ITE_ELIM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-not-ite-elim +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ITE_TRUE_COND + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule ite-true-cond +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ITE_FALSE_COND + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule ite-false-cond +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ITE_NOT_COND + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule ite-not-cond +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ITE_EQ_BRANCH + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule ite-eq-branch +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ITE_THEN_LOOKAHEAD + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule ite-then-lookahead +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ITE_ELSE_LOOKAHEAD + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule ite-else-lookahead +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ITE_THEN_NEG_LOOKAHEAD + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule ite-then-neg-lookahead +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_ITE_ELSE_NEG_LOOKAHEAD + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule ite-else-neg-lookahead +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_CONCAT_FLATTEN + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-concat-flatten +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_CONCAT_EXTRACT_MERGE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-concat-extract-merge +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_EXTRACT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-extract-extract +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_WHOLE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-extract-whole +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_CONCAT_1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-extract-concat-1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_CONCAT_2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-extract-concat-2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_CONCAT_3 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-extract-concat-3 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_CONCAT_4 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-extract-concat-4 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_EQ_EXTRACT_ELIM1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-eq-extract-elim1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_EQ_EXTRACT_ELIM2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-eq-extract-elim2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_EQ_EXTRACT_ELIM3 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-eq-extract-elim3 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_BITWISE_AND + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-extract-bitwise-and +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_BITWISE_OR + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-extract-bitwise-or +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_BITWISE_XOR + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-extract-bitwise-xor +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_NOT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-extract-not +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_SIGN_EXTEND_1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-extract-sign-extend-1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_SIGN_EXTEND_2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-extract-sign-extend-2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_SIGN_EXTEND_3 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-extract-sign-extend-3 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_NEG_MULT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-neg-mult +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_NEG_ADD + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-neg-add +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_CONST_NEG + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-mult-distrib-const-neg +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_CONST_ADD + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-mult-distrib-const-add +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_CONST_SUB + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-mult-distrib-const-sub +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-mult-distrib-1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-mult-distrib-2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_NOT_XOR + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-not-xor +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_AND_SIMPLIFY_1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-and-simplify-1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_AND_SIMPLIFY_2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-and-simplify-2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_OR_SIMPLIFY_1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-or-simplify-1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_OR_SIMPLIFY_2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-or-simplify-2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_XOR_SIMPLIFY_1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-xor-simplify-1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_XOR_SIMPLIFY_2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-xor-simplify-2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_XOR_SIMPLIFY_3 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-xor-simplify-3 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_ULT_ADD_ONE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ult-add-one +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_CONCAT_TO_MULT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-concat-to-mult +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_MULT_SLT_MULT_1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-mult-slt-mult-1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_MULT_SLT_MULT_2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-mult-slt-mult-2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_AND + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-commutative-and +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_OR + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-commutative-or +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_XOR + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-commutative-xor +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_MUL + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-commutative-mul +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_OR_ZERO + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-or-zero +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_MUL_ONE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-mul-one +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_MUL_ZERO + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-mul-zero +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_ADD_ZERO + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-add-zero +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_ADD_TWO + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-add-two +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_ZERO_EXTEND_ELIMINATE_0 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-zero-extend-eliminate-0 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ELIMINATE_0 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-sign-extend-eliminate-0 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_NOT_NEQ + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-not-neq +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_ULT_ONES + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ult-ones +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_OR_FLATTEN + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-or-flatten +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_XOR_FLATTEN + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-xor-flatten +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_AND_FLATTEN + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-and-flatten +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_MUL_FLATTEN + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-mul-flatten +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_CONCAT_MERGE_CONST + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-concat-merge-const +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_ADD + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-commutative-add +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_NEG_SUB + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-neg-sub +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_NEG_IDEMP + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-neg-idemp +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_SUB_ELIMINATE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-sub-eliminate +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_UGT_ELIMINATE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ugt-eliminate +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_UGE_ELIMINATE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-uge-eliminate +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_SGT_ELIMINATE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-sgt-eliminate +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_SGE_ELIMINATE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-sge-eliminate +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_SLT_ELIMINATE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-slt-eliminate +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_SLE_ELIMINATE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-sle-eliminate +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_REDOR_ELIMINATE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-redor-eliminate +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_REDAND_ELIMINATE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-redand-eliminate +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_ULE_ELIMINATE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ule-eliminate +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_COMP_ELIMINATE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-comp-eliminate +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_ROTATE_LEFT_ELIMINATE_1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-rotate-left-eliminate-1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_ROTATE_LEFT_ELIMINATE_2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-rotate-left-eliminate-2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_ROTATE_RIGHT_ELIMINATE_1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-rotate-right-eliminate-1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_ROTATE_RIGHT_ELIMINATE_2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-rotate-right-eliminate-2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_NAND_ELIMINATE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-nand-eliminate +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_NOR_ELIMINATE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-nor-eliminate +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_XNOR_ELIMINATE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-xnor-eliminate +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_SDIV_ELIMINATE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-sdiv-eliminate +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_SDIV_ELIMINATE_FEWER_BITWISE_OPS + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-sdiv-eliminate-fewer-bitwise-ops +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_ZERO_EXTEND_ELIMINATE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-zero-extend-eliminate +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ELIMINATE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-sign-extend-eliminate +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_UADDO_ELIMINATE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-uaddo-eliminate +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_SADDO_ELIMINATE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-saddo-eliminate +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_SDIVO_ELIMINATE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-sdivo-eliminate +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_SMOD_ELIMINATE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-smod-eliminate +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_SMOD_ELIMINATE_FEWER_BITWISE_OPS + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-smod-eliminate-fewer-bitwise-ops +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_SREM_ELIMINATE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-srem-eliminate +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_SREM_ELIMINATE_FEWER_BITWISE_OPS + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-srem-eliminate-fewer-bitwise-ops +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_USUBO_ELIMINATE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-usubo-eliminate +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_SSUBO_ELIMINATE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ssubo-eliminate +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_ITE_EQUAL_CHILDREN + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ite-equal-children +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_ITE_CONST_CHILDREN_1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ite-const-children-1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_ITE_CONST_CHILDREN_2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ite-const-children-2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_ITE_EQUAL_COND_1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ite-equal-cond-1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_ITE_EQUAL_COND_2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ite-equal-cond-2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_ITE_EQUAL_COND_3 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ite-equal-cond-3 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_ITE_MERGE_THEN_IF + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ite-merge-then-if +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_ITE_MERGE_ELSE_IF + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ite-merge-else-if +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_ITE_MERGE_THEN_ELSE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ite-merge-then-else +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_ITE_MERGE_ELSE_ELSE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ite-merge-else-else +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_SHL_BY_CONST_0 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-shl-by-const-0 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_SHL_BY_CONST_1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-shl-by-const-1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_SHL_BY_CONST_2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-shl-by-const-2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_LSHR_BY_CONST_0 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-lshr-by-const-0 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_LSHR_BY_CONST_1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-lshr-by-const-1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_LSHR_BY_CONST_2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-lshr-by-const-2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_ASHR_BY_CONST_0 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ashr-by-const-0 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_ASHR_BY_CONST_1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ashr-by-const-1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_ASHR_BY_CONST_2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ashr-by-const-2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_AND_CONCAT_PULLUP + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-and-concat-pullup +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_OR_CONCAT_PULLUP + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-or-concat-pullup +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_XOR_CONCAT_PULLUP + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-xor-concat-pullup +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_BITWISE_IDEMP_1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-bitwise-idemp-1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_BITWISE_IDEMP_2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-bitwise-idemp-2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_AND_ZERO + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-and-zero +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_AND_ONE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-and-one +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_OR_ONE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-or-one +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_XOR_DUPLICATE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-xor-duplicate +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_XOR_ONES + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-xor-ones +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_XOR_ZERO + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-xor-zero +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_BITWISE_NOT_AND + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-bitwise-not-and +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_BITWISE_NOT_OR + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-bitwise-not-or +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_XOR_NOT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-xor-not +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_NOT_IDEMP + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-not-idemp +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_ULT_ZERO_1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ult-zero-1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_ULT_ZERO_2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ult-zero-2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_ULT_SELF + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ult-self +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_LT_SELF + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-lt-self +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_ULE_SELF + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ule-self +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_ULE_ZERO + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ule-zero +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_ZERO_ULE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-zero-ule +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_SLE_SELF + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-sle-self +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_ULE_MAX + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ule-max +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_NOT_ULT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-not-ult +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_NOT_ULE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-not-ule +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_NOT_SLE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-not-sle +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_MULT_POW2_1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-mult-pow2-1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_MULT_POW2_2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-mult-pow2-2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_MULT_POW2_2B + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-mult-pow2-2b +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_MULT_LEADING_BIT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-extract-mult-leading-bit +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_UDIV_POW2_NOT_ONE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-udiv-pow2-not-one +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_UDIV_ZERO + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-udiv-zero +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_UDIV_ONE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-udiv-one +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_UREM_POW2_NOT_ONE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-urem-pow2-not-one +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_UREM_ONE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-urem-one +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_UREM_SELF + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-urem-self +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_SHL_ZERO + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-shl-zero +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_LSHR_ZERO + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-lshr-zero +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_ASHR_ZERO + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ashr-zero +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_UGT_UREM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ugt-urem +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_ULT_ONE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ult-one +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_SLT_ZERO + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-slt-zero +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_MERGE_SIGN_EXTEND_1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-merge-sign-extend-1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_MERGE_SIGN_EXTEND_2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-merge-sign-extend-2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_MERGE_SIGN_EXTEND_3 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-merge-sign-extend-3 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_EQ_CONST_1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-sign-extend-eq-const-1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_EQ_CONST_2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-sign-extend-eq-const-2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_ZERO_EXTEND_EQ_CONST_1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-zero-extend-eq-const-1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_ZERO_EXTEND_EQ_CONST_2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-zero-extend-eq-const-2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ULT_CONST_1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-sign-extend-ult-const-1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ULT_CONST_2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-sign-extend-ult-const-2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ULT_CONST_3 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-sign-extend-ult-const-3 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ULT_CONST_4 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-sign-extend-ult-const-4 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_SETS_EQ_SINGLETON_EMP + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule sets-eq-singleton-emp +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_SETS_MEMBER_SINGLETON + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule sets-member-singleton +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_SETS_MEMBER_EMP + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule sets-member-emp +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_SETS_SUBSET_ELIM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule sets-subset-elim +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_SETS_UNION_COMM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule sets-union-comm +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_SETS_INTER_COMM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule sets-inter-comm +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_SETS_INTER_EMP1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule sets-inter-emp1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_SETS_INTER_EMP2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule sets-inter-emp2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_SETS_MINUS_EMP1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule sets-minus-emp1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_SETS_MINUS_EMP2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule sets-minus-emp2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_SETS_UNION_EMP1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule sets-union-emp1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_SETS_UNION_EMP2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule sets-union-emp2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_SETS_INTER_MEMBER + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule sets-inter-member +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_SETS_MINUS_MEMBER + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule sets-minus-member +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_SETS_UNION_MEMBER + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule sets-union-member +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_SETS_CHOOSE_SINGLETON + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule sets-choose-singleton +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_SETS_CARD_SINGLETON + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule sets-card-singleton +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_SETS_CARD_UNION + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule sets-card-union +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_SETS_CARD_MINUS + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule sets-card-minus +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_SETS_CARD_EMP + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule sets-card-emp +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_SETS_MINUS_SELF + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule sets-minus-self +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_SETS_IS_EMPTY_ELIM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule sets-is-empty-elim +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_EQ_CTN_FALSE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-eq-ctn-false +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_EQ_CTN_FULL_FALSE1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-eq-ctn-full-false1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_EQ_CTN_FULL_FALSE2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-eq-ctn-full-false2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_CONCAT_FLATTEN + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-concat-flatten +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_CONCAT_FLATTEN_EQ + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-concat-flatten-eq +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_CONCAT_FLATTEN_EQ_REV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-concat-flatten-eq-rev +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EMPTY_STR + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-substr-empty-str +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EMPTY_RANGE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-substr-empty-range +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EMPTY_START + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-substr-empty-start +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EMPTY_START_NEG + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-substr-empty-start-neg +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EQ_EMPTY + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-substr-eq-empty +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_LEN_REPLACE_INV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-len-replace-inv +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_LEN_UPDATE_INV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-len-update-inv +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_LEN_SUBSTR_IN_RANGE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-len-substr-in-range +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_LEN_SUBSTR_UB1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-len-substr-ub1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_LEN_SUBSTR_UB2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-len-substr-ub2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-concat-clash +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH_REV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-concat-clash-rev +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-concat-clash2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH2_REV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-concat-clash2-rev +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_CONCAT_UNIFY + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-concat-unify +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_CONCAT_UNIFY_REV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-concat-unify-rev +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_CONCAT_UNIFY_BASE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-concat-unify-base +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_CONCAT_UNIFY_BASE_REV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-concat-unify-base-rev +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH_CHAR + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-concat-clash-char +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH_CHAR_REV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-concat-clash-char-rev +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_PREFIXOF_ELIM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-prefixof-elim +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_SUFFIXOF_ELIM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-suffixof-elim +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_PREFIXOF_ONE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-prefixof-one +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_SUFFIXOF_ONE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-suffixof-one +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_COMBINE1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-substr-combine1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_COMBINE2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-substr-combine2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_COMBINE3 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-substr-combine3 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_COMBINE4 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-substr-combine4 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_CONCAT1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-substr-concat1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_CONCAT2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-substr-concat2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_FULL + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-substr-full +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_FULL_EQ + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-substr-full-eq +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_REFL + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-contains-refl +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_CONCAT_FIND + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-contains-concat-find +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_SPLIT_CHAR + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-contains-split-char +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_LT_LEN + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-contains-lt-len +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_LEQ_LEN_EQ + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-contains-leq-len-eq +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_EMP + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-contains-emp +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_IS_EMP + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-contains-is-emp +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_AT_ELIM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-at-elim +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_REPLACE_SELF + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-replace-self +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_REPLACE_PREFIX + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-replace-prefix +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_REPLACE_NO_CONTAINS + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-replace-no-contains +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_REPLACE_EMPTY + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-replace-empty +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_REPLACE_CONTAINS_PRE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-replace-contains-pre +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_REPLACE_ALL_NO_CONTAINS + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-replace-all-no-contains +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_REPLACE_RE_NONE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-replace-re-none +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_REPLACE_RE_ALL_NONE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-replace-re-all-none +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_LEN_CONCAT_REC + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-len-concat-rec +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_INDEXOF_SELF + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-indexof-self +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_INDEXOF_NO_CONTAINS + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-indexof-no-contains +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_INDEXOF_CONTAINS_PRE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-indexof-contains-pre +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_INDEXOF_RE_NONE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-indexof-re-none +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_TO_LOWER_CONCAT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-to-lower-concat +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_TO_UPPER_CONCAT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-to-upper-concat +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_TO_LOWER_UPPER + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-to-lower-upper +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_TO_UPPER_LOWER + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-to-upper-lower +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_TO_LOWER_LEN + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-to-lower-len +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_TO_UPPER_LEN + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-to-upper-len +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_TO_LOWER_FROM_INT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-to-lower-from-int +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_TO_UPPER_FROM_INT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-to-upper-from-int +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_TO_INT_CONCAT_NEG_ONE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-to-int-concat-neg-one +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_LEQ_EMPTY + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-leq-empty +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_LEQ_EMPTY_EQ + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-leq-empty-eq +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_LEQ_CONCAT_FALSE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-leq-concat-false +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_LEQ_CONCAT_TRUE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-leq-concat-true +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_LT_ELIM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-lt-elim +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_RE_ALL_ELIM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule re-all-elim +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_RE_OPT_ELIM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule re-opt-elim +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_RE_DIFF_ELIM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule re-diff-elim +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_RE_CONCAT_EMP + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule re-concat-emp +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_RE_CONCAT_NONE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule re-concat-none +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_RE_CONCAT_FLATTEN + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule re-concat-flatten +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_RE_CONCAT_STAR_SWAP + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule re-concat-star-swap +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_RE_CONCAT_STAR_REPEAT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule re-concat-star-repeat +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_RE_CONCAT_MERGE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule re-concat-merge +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_RE_UNION_ALL + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule re-union-all +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_RE_UNION_NONE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule re-union-none +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_RE_UNION_FLATTEN + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule re-union-flatten +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_RE_UNION_DUP + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule re-union-dup +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_RE_INTER_ALL + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule re-inter-all +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_RE_INTER_NONE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule re-inter-none +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_RE_INTER_FLATTEN + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule re-inter-flatten +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_RE_INTER_DUP + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule re-inter-dup +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_RE_STAR_NONE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule re-star-none +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_RE_LOOP_NEG + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule re-loop-neg +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_RE_INTER_CSTRING + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule re-inter-cstring +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_RE_INTER_CSTRING_NEG + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule re-inter-cstring-neg +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_LEN_INCLUDE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-substr-len-include +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_LEN_INCLUDE_PRE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-substr-len-include-pre +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_LEN_SKIP + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-substr-len-skip +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_SEQ_LEN_REV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule seq-len-rev +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_SEQ_REV_REV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule seq-rev-rev +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_SEQ_REV_CONCAT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule seq-rev-concat +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_SEQ_LEN_UNIT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule seq-len-unit +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_SEQ_NTH_UNIT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule seq-nth-unit +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_SEQ_REV_UNIT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule seq-rev-unit +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_SEQ_LEN_EMPTY + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule seq-len-empty +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_RE_IN_EMPTY + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule re-in-empty +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_RE_IN_SIGMA + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule re-in-sigma +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_RE_IN_SIGMA_STAR + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule re-in-sigma-star +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_RE_IN_CSTRING + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule re-in-cstring +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_RE_IN_COMP + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule re-in-comp +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_IN_RE_UNION_ELIM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-union-elim +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_IN_RE_INTER_ELIM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-inter-elim +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_IN_RE_RANGE_ELIM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-range-elim +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_IN_RE_CONTAINS + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-contains +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_NEG + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-neg +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SR_SINGLE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-sr-single +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-sr-single-neg +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SRS_SINGLE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-srs-single +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-srs-single-neg +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_S_SINGLE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-s-single +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-s-single-neg +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-base +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_NEG + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-base-neg +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-base-s-single +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-base-s-single-neg +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_CHAR + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-char +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_CHAR_S_SINGLE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-char-s-single +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_REV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-rev +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_NEG_REV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-neg-rev +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SR_SINGLE_REV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-sr-single-rev +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG_REV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-sr-single-neg-rev +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_REV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-srs-single-rev +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG_REV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-srs-single-neg-rev +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_S_SINGLE_REV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-s-single-rev +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG_REV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-s-single-neg-rev +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_REV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-base-rev +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_NEG_REV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-base-neg-rev +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_REV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-base-s-single-rev +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG_REV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-base-s-single-neg-rev +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_CHAR_REV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-char-rev +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_CHAR_S_SINGLE_REV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-char-s-single-rev +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_IN_RE_REQ_UNFOLD + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-req-unfold +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_IN_RE_REQ_UNFOLD_REV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-req-unfold-rev +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_IN_RE_SKIP_UNFOLD + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-skip-unfold +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_IN_RE_SKIP_UNFOLD_REV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-skip-unfold-rev +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_IN_RE_TEST_UNFOLD + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-test-unfold +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_STR_IN_RE_TEST_UNFOLD_REV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-test-unfold-rev +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_EQ_REFL + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule eq-refl +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_EQ_SYMM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule eq-symm +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_EQ_COND_DEQ + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule eq-cond-deq +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_EQ_ITE_LIFT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule eq-ite-lift +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_DISTINCT_BINARY_ELIM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule distinct-binary-elim +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_UF_BV2NAT_INT2BV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule uf-bv2nat-int2bv +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_UF_BV2NAT_INT2BV_EXTEND + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule uf-bv2nat-int2bv-extend +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_UF_BV2NAT_INT2BV_EXTRACT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule uf-bv2nat-int2bv-extract +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_UF_INT2BV_BV2NAT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule uf-int2bv-bv2nat +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_UF_BV2NAT_GEQ_ELIM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule uf-bv2nat-geq-elim +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_UF_INT2BV_BVULT_EQUIV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule uf-int2bv-bvult-equiv +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_UF_INT2BV_BVULE_EQUIV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule uf-int2bv-bvule-equiv +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_REWRITE_RULE_LAST + + + + +  + +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + + cvc5_proof_rewrite_rule_to_string + + + + + ( + + + + + Cvc5ProofRewriteRule + + + + + + + + rule + + + + ) + + +  + +
    +
    +
    +

    + Get a string representation of a Cvc5ProofRewriteRule. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + rule + + – The proof rewrite rule. +

    +
    +
    + Returns + + : + +
    +
    +

    + The string representation. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + size_t + + + + + + + + cvc5_proof_rewrite_rule_hash + + + + + ( + + + + + Cvc5ProofRewriteRule + + + + + + + + rule + + + + ) + + +  + +
    +
    +
    +

    + Hash function for Cvc5ProofRewriteRule. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + rule + + – The proof rewrite rule. +

    +
    +
    + Returns + + : + +
    +
    +

    + The hash value. +

    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/enums/cvc5roundingmode.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/enums/cvc5roundingmode.html new file mode 100644 index 0000000000..a12ca21a15 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/enums/cvc5roundingmode.html @@ -0,0 +1,851 @@ + + + + + + + + + + + Cvc5RoundingMode — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Cvc5RoundingMode + +  + +

    +

    + This enum represents a floating-point rounding mode. +

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + enum + + + + + + + + Cvc5RoundingMode + + + + +  + +
    +
    +
    +

    + Rounding modes for floating-point numbers. +

    +

    + For many floating-point operations, infinitely precise results may not be representable with the number of available bits. Thus, the results are rounded in a certain way to one of the representable floating-point numbers. +

    +

    + These rounding modes directly follow the SMT-LIB theory for floating-point +arithmetic, which in turn is based on IEEE Standard 754 + + [ + + IEE19 + + ] + + . +The rounding modes are specified in Sections 4.3.1 and 4.3.2 of the IEEE +Standard 754. +

    +

    + + Values: + +

    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_RM_ROUND_NEAREST_TIES_TO_EVEN + + + + +  + +
    +
    +
    +

    + Round to the nearest even number. +

    +

    + If the two nearest floating-point numbers bracketing an unrepresentable infinitely precise result are equally near, the one with an even least significant digit will be delivered. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_RM_ROUND_TOWARD_POSITIVE + + + + +  + +
    +
    +
    +

    + Round towards positive infinity (SMT-LIB: + + + +oo + + + ). +

    +

    + The result shall be the format’s floating-point number (possibly + + + +oo + + + ) closest to and no less than the infinitely precise result. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_RM_ROUND_TOWARD_NEGATIVE + + + + +  + +
    +
    +
    +

    + Round towards negative infinity ( + + + -oo + + + ). +

    +

    + The result shall be the format’s floating-point number (possibly + + + -oo + + + ) closest to and no less than the infinitely precise result. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_RM_ROUND_TOWARD_ZERO + + + + +  + +
    +
    +
    +

    + Round towards zero. +

    +

    + The result shall be the format’s floating-point number closest to and no greater in magnitude than the infinitely precise result. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_RM_ROUND_NEAREST_TIES_TO_AWAY + + + + +  + +
    +
    +
    +

    + Round to the nearest number away from zero. +

    +

    + If the two nearest floating-point numbers bracketing an unrepresentable infinitely precise result are equally near), the one with larger magnitude will be selected. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_RM_LAST + + + + +  + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + + cvc5_rm_to_string + + + + + ( + + + + + Cvc5RoundingMode + + + + + + + + rm + + + + ) + + +  + +
    +
    +
    +

    + Get a string representation of a Cvc5RoundingMode. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + rm + + – The rounding mode. +

    +
    +
    + Returns + + : + +
    +
    +

    + The string representation. +

    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/enums/cvc5sortkind.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/enums/cvc5sortkind.html new file mode 100644 index 0000000000..5ec93bc9b4 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/enums/cvc5sortkind.html @@ -0,0 +1,1812 @@ + + + + + + + + + + + Cvc5SortKind — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Cvc5SortKind + +  + +

    +

    + Every + + + + Cvc5Sort + + + + has an associated kind, represented +as enum + + + + Cvc5SortKind + + + + . +

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + enum + + + + + + + + Cvc5SortKind + + + + +  + +
    +
    +
    +

    + The kind of a cvc5 Sort. +

    +

    + + Values: + +

    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_SORT_KIND_INTERNAL_SORT_KIND + + + + +  + +
    +
    +
    +

    + Internal kind. +

    +

    + This kind serves as an abstraction for internal kinds that are not exposed via the API but may appear in terms returned by API functions, e.g., when querying the simplified form of a term. +

    +
    +

    + Note +

    +

    + Should never be created via the API. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_SORT_KIND_UNDEFINED_SORT_KIND + + + + +  + +
    +
    +
    +

    + Undefined kind. +

    +
    +

    + Note +

    +

    + Should never be exposed or created via the API. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_SORT_KIND_NULL_SORT + + + + +  + +
    +
    +
    +

    + Null kind. +

    +

    + The kind of a null sort (Sort::Sort()). +

    +
    +

    + Note +

    +

    + May not be explicitly created via API functions other than + + + Sort::Sort() + + + . +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_SORT_KIND_ABSTRACT_SORT + + + + +  + +
    +
    +
    +

    + An abstract sort. +

    +

    + An abstract sort represents a sort whose parameters or argument sorts are unspecified. For example, + + + mkAbstractSort(BITVECTOR_SORT) + + + returns a sort that represents the sort of bit-vectors whose bit-width is unspecified. +

    +

    +

    +
      +
    • +

      + Create Sort of this Kind with: +

      +
        +
      • +

        + Solver::mkAbstractSort(SortKind) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_SORT_KIND_ARRAY_SORT + + + + +  + +
    +
    +
    +

    + An array sort, whose argument sorts are the index and element sorts of the array. +

    +

    +

    +
      +
    • +

      + Create Sort of this Kind with: +

      +
        +
      • +

        + Solver::mkArraySort(Sort, Sort) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_SORT_KIND_BAG_SORT + + + + +  + +
    +
    +
    +

    + A bag sort, whose argument sort is the element sort of the bag. +

    +

    +

    +
      +
    • +

      + Create Sort of this Kind with: +

      +
        +
      • +

        + Solver::mkBagSort(Sort) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_SORT_KIND_BOOLEAN_SORT + + + + +  + +
    +
    +
    +

    + The Boolean sort. +

    +

    +

    +
      +
    • +

      + Create Sort of this Kind with: +

      +
        +
      • +

        + Solver::getBooleanSort() const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_SORT_KIND_BITVECTOR_SORT + + + + +  + +
    +
    +
    +

    + A bit-vector sort, parameterized by an integer denoting its bit-width. +

    +

    +

    +
      +
    • +

      + Create Sort of this Kind with: +

      +
        +
      • +

        + Solver::mkBitVectorSort(uint32_t) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_SORT_KIND_DATATYPE_SORT + + + + +  + +
    +
    +
    +

    + A datatype sort. +

    +

    +

    +
      +
    • +

      + Create Sort of this Kind with: +

      +
        +
      • +

        + Solver::mkDatatypeSort(DatatypeDecl) +

        +
      • +
      • +

        + Solver::mkDatatypeSorts(const std::vector<DatatypeDecl>&) +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_SORT_KIND_FINITE_FIELD_SORT + + + + +  + +
    +
    +
    +

    + A finite field sort, parameterized by a size. +

    +

    +

    +
      +
    • +

      + Create Sort of this Kind with: +

      +
        +
      • +

        + Solver::mkFiniteFieldSort(const std::string&, uint32_t base) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_SORT_KIND_FLOATINGPOINT_SORT + + + + +  + +
    +
    +
    +

    + A floating-point sort, parameterized by two integers denoting its exponent and significand bit-widths. +

    +

    +

    +
      +
    • +

      + Create Sort of this Kind with: +

      +
        +
      • +

        + Solver::mkFloatingPointSort(uint32_t, uint32_t) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_SORT_KIND_FUNCTION_SORT + + + + +  + +
    +
    +
    +

    + A function sort with given domain sorts and codomain sort. +

    +

    +

    +
      +
    • +

      + Create Sort of this Kind with: +

      +
        +
      • +

        + Solver::mkFunctionSort(const std::vector<Sort>&, Sort) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_SORT_KIND_INTEGER_SORT + + + + +  + +
    +
    +
    +

    + The integer sort. +

    +

    +

    +
      +
    • +

      + Create Sort of this Kind with: +

      +
        +
      • +

        + Solver::getIntegerSort() const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_SORT_KIND_REAL_SORT + + + + +  + +
    +
    +
    +

    + The real sort. +

    +

    +

    +
      +
    • +

      + Create Sort of this Kind with: +

      +
        +
      • +

        + Solver::getRealSort() const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_SORT_KIND_REGLAN_SORT + + + + +  + +
    +
    +
    +

    + The regular language sort. +

    +

    +

    +
      +
    • +

      + Create Sort of this Kind with: +

      +
        +
      • +

        + Solver::getRegExpSort() const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_SORT_KIND_ROUNDINGMODE_SORT + + + + +  + +
    +
    +
    +

    + The rounding mode sort. +

    +

    +

    +
      +
    • +

      + Create Sort of this Kind with: +

      +
        +
      • +

        + Solver::getRoundingModeSort() const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_SORT_KIND_SEQUENCE_SORT + + + + +  + +
    +
    +
    +

    + A sequence sort, whose argument sort is the element sort of the sequence. +

    +

    +

    +
      +
    • +

      + Create Sort of this Kind with: +

      +
        +
      • +

        + Solver::mkSequenceSort(Sort) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_SORT_KIND_SET_SORT + + + + +  + +
    +
    +
    +

    + A set sort, whose argument sort is the element sort of the set. +

    +

    +

    +
      +
    • +

      + Create Sort of this Kind with: +

      +
        +
      • +

        + Solver::mkSetSort(Sort) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_SORT_KIND_STRING_SORT + + + + +  + +
    +
    +
    +

    + The string sort. +

    +

    +

    +
      +
    • +

      + Create Sort of this Kind with: +

      +
        +
      • +

        + Solver::getStringSort() const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_SORT_KIND_TUPLE_SORT + + + + +  + +
    +
    +
    +

    + A tuple sort, whose argument sorts denote the sorts of the direct children of the tuple. +

    +

    +

    +
      +
    • +

      + Create Sort of this Kind with: +

      +
        +
      • +

        + Solver::mkTupleSort(const std::vector<Sort>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_SORT_KIND_NULLABLE_SORT + + + + +  + +
    +
    +
    +

    + A nullable sort, whose argument sort denotes the sort of the direct child of the nullable. +

    +

    +

    +
      +
    • +

      + Create Sort of this Kind with: +

      +
        +
      • +

        + Solver::mkNullableSort(const Sort&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_SORT_KIND_UNINTERPRETED_SORT + + + + +  + +
    +
    +
    +

    + An uninterpreted sort. +

    +

    +

    +
      +
    • +

      + Create Sort of this Kind with: +

      +
        +
      • +

        + Solver::mkUninterpretedSort(const std::optional<std::string>&) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_SORT_KIND_LAST_SORT_KIND + + + + +  + +
    +
    +
    +

    + Marks the upper-bound of this enumeration. +

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + + cvc5_sort_kind_to_string + + + + + ( + + + + + Cvc5SortKind + + + + + + + + kind + + + + ) + + +  + +
    +
    +
    +

    + Get a string representation of a Cvc5SortKind. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + kind + + – The sort kind. +

    +
    +
    + Returns + + : + +
    +
    +

    + The string representation. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + size_t + + + + + + + + cvc5_sort_kind_hash + + + + + ( + + + + + Cvc5SortKind + + + + + + + + kind + + + + ) + + +  + +
    +
    +
    +

    + Hash function for Cvc5SortKinds. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + kind + + – The kind. +

    +
    +
    + Returns + + : + +
    +
    +

    + The hash value. +

    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/enums/cvc5unknownexplanation.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/enums/cvc5unknownexplanation.html new file mode 100644 index 0000000000..09b0f4659b --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/enums/cvc5unknownexplanation.html @@ -0,0 +1,967 @@ + + + + + + + + + + + Cvc5UnknownExplanation — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Cvc5UnknownExplanation + +  + +

    +

    + This enum class represents the explanation for an unknown solver result +(see + + + Cvc5Result + + + ). +

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + enum + + + + + + + + Cvc5UnknownExplanation + + + + +  + +
    +
    +
    +

    + The different reasons for returning an “unknown” result. +

    +

    + + Values: + +

    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_UNKNOWN_EXPLANATION_REQUIRES_FULL_CHECK + + + + +  + +
    +
    +
    +

    + Full satisfiability check required (e.g., if only preprocessing was performed). +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_UNKNOWN_EXPLANATION_INCOMPLETE + + + + +  + +
    +
    +
    +

    + Incomplete theory solver. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_UNKNOWN_EXPLANATION_TIMEOUT + + + + +  + +
    +
    +
    +

    + Time limit reached. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_UNKNOWN_EXPLANATION_RESOURCEOUT + + + + +  + +
    +
    +
    +

    + Resource limit reached. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_UNKNOWN_EXPLANATION_MEMOUT + + + + +  + +
    +
    +
    +

    + Memory limit reached. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_UNKNOWN_EXPLANATION_INTERRUPTED + + + + +  + +
    +
    +
    +

    + Solver was interrupted. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_UNKNOWN_EXPLANATION_UNSUPPORTED + + + + +  + +
    +
    +
    +

    + Unsupported feature encountered. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_UNKNOWN_EXPLANATION_OTHER + + + + +  + +
    +
    +
    +

    + Other reason. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_UNKNOWN_EXPLANATION_REQUIRES_CHECK_AGAIN + + + + +  + +
    +
    +
    +

    + Requires another satisfiability check +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_UNKNOWN_EXPLANATION_UNKNOWN_REASON + + + + +  + +
    +
    +
    +

    + No specific reason given. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_UNKNOWN_EXPLANATION_LAST + + + + +  + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + + cvc5_unknown_explanation_to_string + + + + + ( + + + + + Cvc5UnknownExplanation + + + + + + + + exp + + + + ) + + +  + +
    +
    +
    +

    + Get a string representation of a Cvc5UnknownExplanation. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + exp + + – The unknown explanation. +

    +
    +
    + Returns + + : + +
    +
    +

    + The string representation. +

    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/enums/modes.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/enums/modes.html new file mode 100644 index 0000000000..faa4b5d5d1 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/enums/modes.html @@ -0,0 +1,2215 @@ + + + + + + + + + + + Modes — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Modes + +  + +

    +

    + Some API functions require a configuration mode argument, e.g., + + + + cvc5_block_model() + + + + . +The following enum classes define such configuration modes. +

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + enum + + + + + + + + Cvc5BlockModelsMode + + + + +  + +
    +
    +
    +

    + Mode for blocking models. +

    +

    + Specifies how models are blocked in Solver::blockModel and Solver::blockModelValues. +

    +

    + + Values: + +

    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_BLOCK_MODELS_MODE_LITERALS + + + + +  + +
    +
    +
    +

    + Block models based on the SAT skeleton. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_BLOCK_MODELS_MODE_VALUES + + + + +  + +
    +
    +
    +

    + Block models based on the concrete model values for the free variables. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_BLOCK_MODELS_MODE_LAST + + + + +  + +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + + cvc5_modes_block_models_mode_to_string + + + + + ( + + + + + Cvc5BlockModelsMode + + + + + + + + mode + + + + ) + + +  + +
    +
    +
    +

    + Get a string representation of a Cvc5BlockModelsMode. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + mode + + – The mode. +

    +
    +
    + Returns + + : + +
    +
    +

    + The string representation. +

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + enum + + + + + + + + Cvc5LearnedLitType + + + + +  + +
    +
    +
    +

    + Types of learned literals. +

    +

    + Specifies categories of literals learned for the method Solver::getLearnedLiterals. +

    +

    + Note that a literal may conceptually belong to multiple categories. We classify literals based on the first criteria in this list that they meet. +

    +

    + + Values: + +

    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_LEARNED_LIT_TYPE_PREPROCESS_SOLVED + + + + +  + +
    +
    +
    +

    + An equality that was turned into a substitution during preprocessing. +

    +

    + In particular, literals in this category are of the form (= x t) where x does not occur in t. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_LEARNED_LIT_TYPE_PREPROCESS + + + + +  + +
    +
    +
    +

    + A top-level literal (unit clause) from the preprocessed set of input formulas. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_LEARNED_LIT_TYPE_INPUT + + + + +  + +
    +
    +
    +

    + A literal from the preprocessed set of input formulas that does not occur at top-level after preprocessing. +

    +

    + Typically), this is the most interesting category of literals to learn. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_LEARNED_LIT_TYPE_SOLVABLE + + + + +  + +
    +
    +
    +

    + An internal literal that is solvable for an input variable. +

    +

    + In particular, literals in this category are of the form (= x t) where x does not occur in t, the preprocessed set of input formulas contains the term x, but not the literal (= x t). +

    +

    + Note that solvable literals can be turned into substitutions during preprocessing. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_LEARNED_LIT_TYPE_CONSTANT_PROP + + + + +  + +
    +
    +
    +

    + An internal literal that can be made into a constant propagation for an input term. +

    +

    + In particular, literals in this category are of the form (= t c) where c is a constant, the preprocessed set of input formulas contains the term t, but not the literal (= t c). +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_LEARNED_LIT_TYPE_INTERNAL + + + + +  + +
    +
    +
    +

    + Any internal literal that does not fall into the above categories. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_LEARNED_LIT_TYPE_UNKNOWN + + + + +  + +
    +
    +
    +

    + Special case for when produce-learned-literals is not set. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_LEARNED_LIT_TYPE_LAST + + + + +  + +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + + cvc5_modes_learned_lit_type_to_string + + + + + ( + + + + + Cvc5LearnedLitType + + + + + + + + type + + + + ) + + +  + +
    +
    +
    +

    + Get a string representation of a Cvc5LearnedLitType. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + type + + – The learned literal type. +

    +
    +
    + Returns + + : + +
    +
    +

    + The string representation. +

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + enum + + + + + + + + Cvc5ProofComponent + + + + +  + +
    +
    +
    +

    + Components to include in a proof. +

    +

    + + Values: + +

    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_COMPONENT_RAW_PREPROCESS + + + + +  + +
    +
    +
    +

    + Proofs of G1 … Gn whose free assumptions are a subset of F1, … Fm, where: +

    +
      +
    • +

      + G1, … Gn are the preprocessed input formulas, +

      +
    • +
    • +

      + F1, … Fm are the input formulas. +

      +
    • +
    +

    + Note that G1 … Gn may be arbitrary formulas, not necessarily clauses. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_COMPONENT_PREPROCESS + + + + +  + +
    +
    +
    +

    + Proofs of Gu1 … Gun whose free assumptions are Fu1, … Fum, where: +

    +
      +
    • +

      + Gu1, … Gun are clauses corresponding to input formulas used in the SAT proof, +

      +
    • +
    • +

      + Fu1, … Fum is the subset of the input formulas that are used in the SAT proof (i.e. the unsat core). +

      +
    • +
    +

    + Note that Gu1 … Gun are clauses that are added to the SAT solver before its main search. +

    +

    + Only valid immediately after an unsat response. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_COMPONENT_SAT + + + + +  + +
    +
    +
    +

    + A proof of false whose free assumptions are Gu1, … Gun, L1 … Lk, where: +

    +
      +
    • +

      + Gu1, … Gun, is a set of clauses corresponding to input formulas, +

      +
    • +
    • +

      + L1, …, Lk is a set of clauses corresponding to theory lemmas. +

      +
    • +
    +

    + Only valid immediately after an unsat response. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_COMPONENT_THEORY_LEMMAS + + + + +  + +
    +
    +
    +

    + Proofs of L1 … Lk where: +

    +
      +
    • +

      + L1, …, Lk are clauses corresponding to theory lemmas used in the SAT proof. +

      +
    • +
    +

    + In contrast to proofs given for preprocess, L1 … Lk are clauses that are added to the SAT solver after its main search. +

    +

    + Only valid immediately after an unsat response. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_COMPONENT_FULL + + + + +  + +
    +
    +
    +

    + A proof of false whose free assumptions are a subset of the input formulas F1), … Fm. +

    +

    + Only valid immediately after an unsat response. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_COMPONENT_LAST + + + + +  + +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + + cvc5_modes_proof_component_to_string + + + + + ( + + + + + Cvc5ProofComponent + + + + + + + + pc + + + + ) + + +  + +
    +
    +
    +

    + Get a string representation of a Cvc5ProofComponent. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + pc + + – The proof component. +

    +
    +
    + Returns + + : + +
    +
    +

    + The string representation. +

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + enum + + + + + + + + Cvc5ProofFormat + + + + +  + +
    +
    +
    +

    + Proof format used for proof printing. +

    +

    + + Values: + +

    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_FORMAT_NONE + + + + +  + +
    +
    +
    +

    + Do not translate proof output. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_FORMAT_DOT + + + + +  + +
    +
    +
    +

    + Output DOT proof. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_FORMAT_LFSC + + + + +  + +
    +
    +
    +

    + Output LFSC proof. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_FORMAT_ALETHE + + + + +  + +
    +
    +
    +

    + Output Alethe proof. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_FORMAT_CPC + + + + +  + +
    +
    +
    +

    + Output Cooperating Proof Calculus proof based on Eunoia signatures. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_FORMAT_DEFAULT + + + + +  + +
    +
    +
    +

    + Use the proof format mode set in the solver options. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_PROOF_FORMAT_LAST + + + + +  + +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + + cvc5_modes_proof_format_to_string + + + + + ( + + + + + Cvc5ProofFormat + + + + + + + + format + + + + ) + + +  + +
    +
    +
    +

    + Get a string representation of a Cvc5ProofFormat. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + format + + – The proof format. +

    +
    +
    + Returns + + : + +
    +
    +

    + The string representation. +

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + enum + + + + + + + + Cvc5FindSynthTarget + + + + +  + +
    +
    +
    +

    + Find synthesis targets, used as an argument to Solver::findSynth. These specify various kinds of terms that can be found by this method. +

    +

    + + Values: + +

    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_FIND_SYNTH_TARGET_ENUM + + + + +  + +
    +
    +
    +

    + Find the next term in the enumeration of the target grammar. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_FIND_SYNTH_TARGET_REWRITE + + + + +  + +
    +
    +
    +

    + Find a pair of terms (t,s) in the target grammar which are equivalent but do not rewrite to the same term in the given rewriter (&#8212;sygus-rewrite=MODE). If so, the equality (= t s) is returned by findSynth. +

    +

    + This can be used to synthesize rewrite rules. Note if the rewriter is set to none (&#8212;sygus-rewrite=none), this indicates a possible rewrite when implementing a rewriter from scratch. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_FIND_SYNTH_TARGET_REWRITE_UNSOUND + + + + +  + +
    +
    +
    +

    + Find a term t in the target grammar which rewrites to a term s that is not equivalent to it. If so, the equality (= t s) is returned by findSynth. +

    +

    + This can be used to test the correctness of the given rewriter. Any returned rewrite indicates an unsoundness in the given rewriter. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_FIND_SYNTH_TARGET_REWRITE_INPUT + + + + +  + +
    +
    +
    +

    + Find a rewrite between pairs of terms (t,s) that are matchable with terms in the input assertions where t and s are equivalent but do not rewrite to the same term in the given rewriter (&#8212;sygus-rewrite=MODE). +

    +

    + This can be used to synthesize rewrite rules that apply to the current problem. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_FIND_SYNTH_TARGET_QUERY + + + + +  + +
    +
    +
    +

    + Find a query over the given grammar. If the given grammar generates terms that are not Boolean, we consider equalities over terms from the given grammar. +

    +

    + The algorithm for determining which queries to generate is configured by &#8212;sygus-query-gen=MODE. Queries that are internally solved can be filtered by the option &#8212;sygus-query-gen-filter-solved. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_FIND_SYNTH_TARGET_LAST + + + + +  + +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + + cvc5_modes_find_synth_target_to_string + + + + + ( + + + + + Cvc5FindSynthTarget + + + + + + + + target + + + + ) + + +  + +
    +
    +
    +

    + Get a string representation of a Cvc5FindSynthTarget. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + target + + – The synthesis find target. +

    +
    +
    + Returns + + : + +
    +
    +

    + The string representation. +

    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/quickstart.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/quickstart.html new file mode 100644 index 0000000000..a5ec40437a --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/quickstart.html @@ -0,0 +1,2108 @@ + + + + + + + + + + + Quickstart Guide — cvc5 documentation + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Quickstart Guide + +  + +

    +

    + First, create a cvc5 + + + + Cvc5TermManager + + + + instance: +

    +
    +
    +
    Cvc5TermManager* tm = cvc5_term_manager_new();
    +
    +
    +
    +

    + Then, create a + + + + Cvc5 + + + + solver instance: +

    +
    +
    +
    Cvc5* slv = cvc5_new(tm);
    +
    +
    +
    +

    + We will ask the solver to produce models and unsat cores in the following, +and for this we have to enable the following options. +

    +
    +
    +
    cvc5_set_option(slv, "produce-models", "true");
    +cvc5_set_option(slv, "produce-unsat-cores", "true");
    +
    +
    +
    +

    + Next we set the logic. +The simplest way to set a logic for the solver is to choose “ALL”. +This enables all logics in the solver. +Alternatively, + + + "QF_ALL" + + + enables all logics without quantifiers. +To optimize the solver’s behavior for a more specific logic, +use the logic name, e.g. + + + "QF_BV" + + + or + + + "QF_AUFBV" + + + . +

    +
    +
    +
    cvc5_set_logic(slv, "ALL");
    +
    +
    +
    +

    + In the following, we will define constraints of reals and integers. +For this, we first query the solver for the corresponding sorts. +

    +
    +
    +
    Cvc5Sort real_sort = cvc5_get_real_sort(tm);
    +Cvc5Sort int_sort = cvc5_get_integer_sort(tm);
    +
    +
    +
    +

    + Now, we create two constants + + + x + + + and + + + y + + + of sort + + + Real + + + , +and two constants + + + a + + + and + + + b + + + of sort + + + Integer + + + . +Notice that these are + + symbolic + + constants, but not actual values. +

    +
    +
    +
    Cvc5Term x = cvc5_mk_const(tm, real_sort, "x");
    +Cvc5Term y = cvc5_mk_const(tm, real_sort, "y");
    +Cvc5Term a = cvc5_mk_const(tm, int_sort, "a");
    +Cvc5Term b = cvc5_mk_const(tm, int_sort, "b");
    +
    +
    +
    +

    + We define the following constraints regarding + + + x + + + and + + + y + + + : +

    +
    + \[(0 < x) \wedge (0 < y) \wedge (x + y < 1) \wedge (x \leq y)\] +
    +

    + We construct the required terms and assert them as follows: +

    +
    +
    +
    // Formally, constraints are also terms. Their sort is Boolean.
    +// We will construct these constraints gradually,
    +// by defining each of their components.
    +// We start with the constant numerals 0 and 1:
    +Cvc5Term zero = cvc5_mk_real_int64(tm, 0);
    +Cvc5Term one = cvc5_mk_real_int64(tm, 1);
    +
    +// Next, we construct the term x + y
    +Cvc5Term args2[2] = {x, y};
    +Cvc5Term x_plus_y = cvc5_mk_term(tm, CVC5_KIND_ADD, 2, args2);
    +
    +// Now we can define the constraints.
    +// They use the operators +, <=, and <.
    +// In the API, these are denoted by ADD, LEQ, and LT.
    +// A list of available operators is available in:
    +// src/api/cpp/cvc5_kind.h
    +args2[0] = zero;
    +args2[1] = x;
    +Cvc5Term constraint1 = cvc5_mk_term(tm, CVC5_KIND_LT, 2, args2);
    +args2[1] = y;
    +Cvc5Term constraint2 = cvc5_mk_term(tm, CVC5_KIND_LT, 2, args2);
    +args2[0] = x_plus_y;
    +args2[1] = one;
    +Cvc5Term constraint3 = cvc5_mk_term(tm, CVC5_KIND_LT, 2, args2);
    +args2[0] = x;
    +args2[1] = y;
    +Cvc5Term constraint4 = cvc5_mk_term(tm, CVC5_KIND_LEQ, 2, args2);
    +
    +// Now we assert the constraints to the solver.
    +cvc5_assert_formula(slv, constraint1);
    +cvc5_assert_formula(slv, constraint2);
    +cvc5_assert_formula(slv, constraint3);
    +cvc5_assert_formula(slv, constraint4);
    +
    +
    +
    +

    + Now we check if the asserted formula is satisfiable, that is, we check if +there exist values of sort + + + Real + + + for + + + x + + + and + + + y + + + that satisfy all +the constraints. +

    +
    +
    +
    Cvc5Result r = cvc5_check_sat(slv);
    +
    +
    +
    +

    + The result we get from this satisfiability check is either + + + sat + + + , + + + unsat + + + or + + + unknown + + + . +It’s status can be queried via + + + + cvc5_result_is_sat() + + + + , + + + + cvc5_result_is_unsat() + + + + and + + + + cvc5_result_is_unknown() + + + + . +Alternatively, it can also be printed. +

    +
    +
    +
    printf("expected: sat\n");
    +printf("result: %s\n", cvc5_result_to_string(r));
    +
    +
    +
    +

    + This will print: +

    +
    +
    +
    expected: sat
    +result: sat
    +
    +
    +
    +

    + Now, we query the solver for the values for + + + x + + + and + + + y + + + that satisfy +the constraints. +

    +
    +
    +
    Cvc5Term x_val = cvc5_get_value(slv, x);
    +Cvc5Term y_val = cvc5_get_value(slv, y);
    +
    +
    +
    +

    + It is also possible to get values for terms that do not appear in the original +formula. +

    +
    +
    +
    args2[0] = x;
    +args2[1] = y;
    +Cvc5Term x_minus_y = cvc5_mk_term(tm, CVC5_KIND_SUB, 2, args2);
    +Cvc5Term x_minus_y_val = cvc5_get_value(slv, x_minus_y);
    +
    +
    +
    +

    + We can retrieve the string representation of these values as follows. +

    +
    +
    +
    // Note: The const char* returned by cvc5_term_get_real_value is only valid
    +//       until the next call to this function.
    +char* x_str = strdup(cvc5_term_get_real_value(x_val));
    +char* y_str = strdup(cvc5_term_get_real_value(y_val));
    +char* x_minus_y_str = strdup(cvc5_term_get_real_value(x_minus_y_val));
    +
    +printf("value for x: %s\n", x_str);
    +printf("value for y: %s\n", y_str);
    +printf("value for x - y: %s\n", x_minus_y_str);
    +
    +free(y_str);
    +free(x_str);
    +free(x_minus_y_str);
    +
    +// Alternatively, you can directly print the value strings without
    +// copying them first:
    +printf("value for x: %s\n", cvc5_term_get_real_value(x_val));
    +printf("value for y: %s\n", cvc5_term_get_real_value(y_val));
    +printf("value for x - y: %s\n", cvc5_term_get_real_value(x_minus_y_val));
    +
    +
    +
    +

    + This will print the following: +

    +
    +
    +
    value for x: 1/6
    +value for y: 1/6
    +value for x - y: 0.0
    +
    +
    +
    +

    + We can convert these values to C++ types. +

    +
    +
    +
    // Further, we can convert the values to cpp types
    +int64_t x_num;
    +uint64_t x_den;
    +cvc5_term_get_real64_value(x_val, &x_num, &x_den);
    +int64_t y_num;
    +uint64_t y_den;
    +cvc5_term_get_real64_value(y_val, &y_num, &y_den);
    +int64_t x_minus_y_num;
    +uint64_t x_minus_y_den;
    +cvc5_term_get_real64_value(x_minus_y_val, &x_minus_y_num, &x_minus_y_den);
    +
    +printf("value for x: %" PRId64 "/%" PRIu64 "\n", x_num, x_den);
    +printf("value for y: %" PRId64 "/%" PRIu64 "\n", y_num, y_den);
    +printf("value for x - y: %" PRId64 "/%" PRIu64 "\n", x_minus_y_num, x_minus_y_den);
    +
    +
    +
    +

    + Another way to independently compute the value of + + + x + + + - + + + y + + + would be to +perform the (rational) arithmetic manually. +However, for more complex terms, it is easier to let the solver do the +evaluation. +

    +
    +
    +
    int64_t x_minus_y_num_computed = x_num * y_den - x_den * y_num;
    +uint64_t x_minus_y_den_computed = x_den * y_den;
    +uint64_t g = gcd(x_minus_y_num_computed, x_minus_y_den_computed);
    +x_minus_y_num_computed = x_minus_y_num_computed / g;
    +x_minus_y_den_computed = x_minus_y_den_computed / g;
    +if (x_minus_y_num_computed == x_minus_y_num
    +    && x_minus_y_den_computed == x_minus_y_den)
    +{
    +  printf("computed correctly\n");
    +}
    +else
    +{
    +  printf("computed incorrectly\n");
    +}
    +
    +
    +
    +

    + This will print: +

    +
    +
    +
    computed correctly
    +
    +
    +
    +

    + Next, we will check satisfiability of the same formula, +only this time over integer variables + + + a + + + and + + + b + + + . +For this, we first reset the assertions added to the solver. +

    +
    +
    +
    cvc5_reset_assertions(slv);
    +
    +
    +
    +

    + Next, we assert the same assertions as above, but with integers. +This time, we inline the construction of terms +to the assertion command. +

    +
    +
    +
    args2[0] = cvc5_mk_integer_int64(tm, 0);
    +args2[1] = a;
    +cvc5_assert_formula(slv, cvc5_mk_term(tm, CVC5_KIND_LT, 2, args2));
    +args2[1] = b;
    +cvc5_assert_formula(slv, cvc5_mk_term(tm, CVC5_KIND_LT, 2, args2));
    +args2[0] = a;
    +args2[1] = b;
    +Cvc5Term add = cvc5_mk_term(tm, CVC5_KIND_ADD, 2, args2);
    +args2[0] = add;
    +args2[1] = cvc5_mk_integer_int64(tm, 1);
    +cvc5_assert_formula(slv, cvc5_mk_term(tm, CVC5_KIND_LT, 2, args2));
    +args2[0] = a;
    +args2[1] = b;
    +cvc5_assert_formula(slv, cvc5_mk_term(tm, CVC5_KIND_LEQ, 2, args2));
    +
    +
    +
    +

    + Now, we check whether the revised assertion is satisfiable. +

    +
    +
    +
    cvc5_result_release(r);  // optional, not needed anymore so we can release
    +r = cvc5_check_sat(slv);
    +
    +
    +
    +
    +
    +
    printf("expected: unsat\n");
    +printf("result: %s\n", cvc5_result_to_string(r));
    +
    +
    +
    +

    + This time the asserted formula is unsatisfiable: +

    +
    +
    +
    expected: unsat
    +result: unsat
    +
    +
    +
    +

    + We can query the solver for an unsatisfiable core, that is, a subset +of the assertions that is already unsatisfiable. +

    +
    +
    +
    size_t size;
    +const Cvc5Term* unsat_core = cvc5_get_unsat_core(slv, &size);
    +printf("unsat core size: %lu\n", size);
    +printf("unsat core: \n");
    +for (size_t i = 0; i < size; i++)
    +{
    +  printf("%s\n", cvc5_term_to_string(unsat_core[i]));
    +}
    +
    +
    +
    +

    + This will print: +

    +
    +
    +
    unsat core size: 3
    +unsat core:
    +(< 0 a)
    +(< 0 b)
    +(< (+ a b) 1)
    +
    +
    +
    +
    +

    + Example + +  + +

    +
    +
    + + + + + + +
    +
    +

    + + examples/api/cpp/quickstart.cpp + +

    +
    +
    +
      1/******************************************************************************
    +  2 * Top contributors (to current version):
    +  3 *   Yoni Zohar, Aina Niemetz, Gereon Kremer
    +  4 *
    +  5 * This file is part of the cvc5 project.
    +  6 *
    +  7 * Copyright (c) 2009-2024 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 * A simple demonstration of the API capabilities of cvc5.
    + 14 *
    + 15 */
    + 16
    + 17#include <cvc5/cvc5.h>
    + 18
    + 19#include <iostream>
    + 20#include <numeric>
    + 21
    + 22using namespace cvc5;
    + 23
    + 24int main()
    + 25{
    + 26  // Create a term manager
    + 27  //! [docs-cpp-quickstart-0 start]
    + 28  TermManager tm;
    + 29  //! [docs-cpp-quickstart-0 end]
    + 30  // Create a solver
    + 31  //! [docs-cpp-quickstart-1 start]
    + 32  Solver solver(tm);
    + 33  //! [docs-cpp-quickstart-1 end]
    + 34
    + 35  // We will ask the solver to produce models and unsat cores,
    + 36  // hence these options should be turned on.
    + 37  //! [docs-cpp-quickstart-2 start]
    + 38  solver.setOption("produce-models", "true");
    + 39  solver.setOption("produce-unsat-cores", "true");
    + 40  //! [docs-cpp-quickstart-2 end]
    + 41
    + 42  // The simplest way to set a logic for the solver is to choose "ALL".
    + 43  // This enables all logics in the solver.
    + 44  // Alternatively, "QF_ALL" enables all logics without quantifiers.
    + 45  // To optimize the solver's behavior for a more specific logic,
    + 46  // use the logic name, e.g. "QF_BV" or "QF_AUFBV".
    + 47
    + 48  // Set the logic
    + 49  //! [docs-cpp-quickstart-3 start]
    + 50  solver.setLogic("ALL");
    + 51  //! [docs-cpp-quickstart-3 end]
    + 52
    + 53  // In this example, we will define constraints over reals and integers.
    + 54  // Hence, we first obtain the corresponding sorts.
    + 55  //! [docs-cpp-quickstart-4 start]
    + 56  Sort realSort = tm.getRealSort();
    + 57  Sort intSort = tm.getIntegerSort();
    + 58  //! [docs-cpp-quickstart-4 end]
    + 59
    + 60  // x and y will be real variables, while a and b will be integer variables.
    + 61  // Formally, their cpp type is Term,
    + 62  // and they are called "constants" in SMT jargon:
    + 63  //! [docs-cpp-quickstart-5 start]
    + 64  Term x = tm.mkConst(realSort, "x");
    + 65  Term y = tm.mkConst(realSort, "y");
    + 66  Term a = tm.mkConst(intSort, "a");
    + 67  Term b = tm.mkConst(intSort, "b");
    + 68  //! [docs-cpp-quickstart-5 end]
    + 69
    + 70  // Our constraints regarding x and y will be:
    + 71  //
    + 72  //   (1)  0 < x
    + 73  //   (2)  0 < y
    + 74  //   (3)  x + y < 1
    + 75  //   (4)  x <= y
    + 76  //
    + 77
    + 78  //! [docs-cpp-quickstart-6 start]
    + 79  // Formally, constraints are also terms. Their sort is Boolean.
    + 80  // We will construct these constraints gradually,
    + 81  // by defining each of their components.
    + 82  // We start with the constant numerals 0 and 1:
    + 83  Term zero = tm.mkReal(0);
    + 84  Term one = tm.mkReal(1);
    + 85
    + 86  // Next, we construct the term x + y
    + 87  Term xPlusY = tm.mkTerm(Kind::ADD, {x, y});
    + 88
    + 89  // Now we can define the constraints.
    + 90  // They use the operators +, <=, and <.
    + 91  // In the API, these are denoted by ADD, LEQ, and LT.
    + 92  // A list of available operators is available in:
    + 93  // src/api/cpp/cvc5_kind.h
    + 94  Term constraint1 = tm.mkTerm(Kind::LT, {zero, x});
    + 95  Term constraint2 = tm.mkTerm(Kind::LT, {zero, y});
    + 96  Term constraint3 = tm.mkTerm(Kind::LT, {xPlusY, one});
    + 97  Term constraint4 = tm.mkTerm(Kind::LEQ, {x, y});
    + 98
    + 99  // Now we assert the constraints to the solver.
    +100  solver.assertFormula(constraint1);
    +101  solver.assertFormula(constraint2);
    +102  solver.assertFormula(constraint3);
    +103  solver.assertFormula(constraint4);
    +104  //! [docs-cpp-quickstart-6 end]
    +105
    +106  // Check if the formula is satisfiable, that is,
    +107  // are there real values for x and y that satisfy all the constraints?
    +108  //! [docs-cpp-quickstart-7 start]
    +109  Result r1 = solver.checkSat();
    +110  //! [docs-cpp-quickstart-7 end]
    +111
    +112  // The result is either SAT, UNSAT, or UNKNOWN.
    +113  // In this case, it is SAT.
    +114  //! [docs-cpp-quickstart-8 start]
    +115  std::cout << "expected: sat" << std::endl;
    +116  std::cout << "result: " << r1 << std::endl;
    +117  //! [docs-cpp-quickstart-8 end]
    +118
    +119  // We can get the values for x and y that satisfy the constraints.
    +120  //! [docs-cpp-quickstart-9 start]
    +121  Term xVal = solver.getValue(x);
    +122  Term yVal = solver.getValue(y);
    +123  //! [docs-cpp-quickstart-9 end]
    +124
    +125  // It is also possible to get values for compound terms,
    +126  // even if those did not appear in the original formula.
    +127  //! [docs-cpp-quickstart-10 start]
    +128  Term xMinusY = tm.mkTerm(Kind::SUB, {x, y});
    +129  Term xMinusYVal = solver.getValue(xMinusY);
    +130  //! [docs-cpp-quickstart-10 end]
    +131
    +132  // We can now obtain the string representations of the values.
    +133  //! [docs-cpp-quickstart-11 start]
    +134  std::string xStr = xVal.getRealValue();
    +135  std::string yStr = yVal.getRealValue();
    +136  std::string xMinusYStr = xMinusYVal.getRealValue();
    +137
    +138  std::cout << "value for x: " << xStr << std::endl;
    +139  std::cout << "value for y: " << yStr << std::endl;
    +140  std::cout << "value for x - y: " << xMinusYStr << std::endl;
    +141  //! [docs-cpp-quickstart-11 end]
    +142
    +143  //! [docs-cpp-quickstart-12 start]
    +144  // Further, we can convert the values to cpp types
    +145  std::pair<int64_t, uint64_t> xPair = xVal.getReal64Value();
    +146  std::pair<int64_t, uint64_t> yPair = yVal.getReal64Value();
    +147  std::pair<int64_t, uint64_t> xMinusYPair = xMinusYVal.getReal64Value();
    +148
    +149  std::cout << "value for x: " << xPair.first << "/" << xPair.second
    +150            << std::endl;
    +151  std::cout << "value for y: " << yPair.first << "/" << yPair.second
    +152            << std::endl;
    +153  std::cout << "value for x - y: " << xMinusYPair.first << "/"
    +154            << xMinusYPair.second << std::endl;
    +155  //! [docs-cpp-quickstart-12 end]
    +156
    +157  // Another way to independently compute the value of x - y would be
    +158  // to perform the (rational) arithmetic manually.
    +159  // However, for more complex terms,
    +160  // it is easier to let the solver do the evaluation.
    +161  //! [docs-cpp-quickstart-13 start]
    +162  std::pair<int64_t, uint64_t> xMinusYComputed = {
    +163    xPair.first * yPair.second - xPair.second * yPair.first,
    +164    xPair.second * yPair.second
    +165  };
    +166  uint64_t g = std::gcd(xMinusYComputed.first, xMinusYComputed.second);
    +167  xMinusYComputed = { xMinusYComputed.first / g, xMinusYComputed.second / g };
    +168  if (xMinusYComputed == xMinusYPair)
    +169  {
    +170    std::cout << "computed correctly" << std::endl;
    +171  }
    +172  else
    +173  {
    +174    std::cout << "computed incorrectly" << std::endl;
    +175  }
    +176  //! [docs-cpp-quickstart-13 end]
    +177
    +178  // Next, we will check satisfiability of the same formula,
    +179  // only this time over integer variables a and b.
    +180
    +181  // We start by resetting assertions added to the solver.
    +182  //! [docs-cpp-quickstart-14 start]
    +183  solver.resetAssertions();
    +184  //! [docs-cpp-quickstart-14 end]
    +185
    +186  // Next, we assert the same assertions above with integers.
    +187  // This time, we inline the construction of terms
    +188  // to the assertion command.
    +189  //! [docs-cpp-quickstart-15 start]
    +190  solver.assertFormula(tm.mkTerm(Kind::LT, {tm.mkInteger(0), a}));
    +191  solver.assertFormula(tm.mkTerm(Kind::LT, {tm.mkInteger(0), b}));
    +192  solver.assertFormula(
    +193      tm.mkTerm(Kind::LT, {tm.mkTerm(Kind::ADD, {a, b}), tm.mkInteger(1)}));
    +194  solver.assertFormula(tm.mkTerm(Kind::LEQ, {a, b}));
    +195  //! [docs-cpp-quickstart-15 end]
    +196
    +197  // We check whether the revised assertion is satisfiable.
    +198  //! [docs-cpp-quickstart-16 start]
    +199  Result r2 = solver.checkSat();
    +200  //! [docs-cpp-quickstart-16 end]
    +201
    +202  // This time the formula is unsatisfiable
    +203  //! [docs-cpp-quickstart-17 start]
    +204  std::cout << "expected: unsat" << std::endl;
    +205  std::cout << "result: " << r2 << std::endl;
    +206  //! [docs-cpp-quickstart-17 end]
    +207
    +208  // We can query the solver for an unsatisfiable core, i.e., a subset
    +209  // of the assertions that is already unsatisfiable.
    +210  //! [docs-cpp-quickstart-18 start]
    +211  std::vector<Term> unsatCore = solver.getUnsatCore();
    +212  std::cout << "unsat core size: " << unsatCore.size() << std::endl;
    +213  std::cout << "unsat core: " << std::endl;
    +214  for (const Term& t : unsatCore)
    +215  {
    +216    std::cout << t << std::endl;
    +217  }
    +218  //! [docs-cpp-quickstart-18 end]
    +219
    +220  return 0;
    +221}
    +
    +
    +
    +
    + + + + + +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/structs/cvc5optioninfo.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/structs/cvc5optioninfo.html new file mode 100644 index 0000000000..d47086ecc5 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/structs/cvc5optioninfo.html @@ -0,0 +1,2526 @@ + + + + + + + + + + + Cvc5OptionInfo — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Cvc5OptionInfo + +  + +

    +

    + This struct encapsulates all the information associated with a configuration +option. It can be retrieved via + + + + cvc5_get_option_info() + + + + and allows to query any configuration information associated with an option. +

    +

    + The kind of an option info object is defined as enum + + + + Cvc5OptionInfoKind + + + + . Encapsulated values can be queried depending on +the kind. +

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + enum + + + + + + + + Cvc5OptionInfoKind + + + + +  + +
    +
    +
    +

    + + Values: + +

    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_OPTION_INFO_VOID + + + + +  + +
    +
    +
    +

    + The empty option info, does not hold value information. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_OPTION_INFO_BOOL + + + + +  + +
    +
    +
    +

    + Information for option with boolean option value. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_OPTION_INFO_STR + + + + +  + +
    +
    +
    +

    + Information for option with string option value. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_OPTION_INFO_INT64 + + + + +  + +
    +
    +
    +

    + Information for option with int64 option value. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_OPTION_INFO_UINT64 + + + + +  + +
    +
    +
    +

    + Information for option with uint64 option value. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_OPTION_INFO_DOUBLE + + + + +  + +
    +
    +
    +

    + Information for option with double value. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CVC5_OPTION_INFO_MODES + + + + +  + +
    +
    +
    +

    + Information for option with option modes. +

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + typedef + + + + + + + struct + + + + + + + + Cvc5OptionInfo + + + + + + + + + Cvc5OptionInfo + + + + +  + +
    +
    +
    +

    + A cvc5 option info. +

    +
    +
    +
    +
    + + + + + struct + + + + + + + + Cvc5OptionInfo + + + +
    +
    +
    +

    +

    +

    + Holds information about a specific option, including its name, its +aliases, whether the option was explicitly set by the user, and information +concerning its value. +It can be obtained via + + + + cvc5_get_option_info() + + + + and allows for a +more detailed inspection of options than + + + + cvc5_get_option() + + + + . +Union member + + + info + + + holds any of the following alternatives: +

    +
      +
    • +

      + Neither of the following if the option holds no value (or the value has no +native type). In that case, the kind of the option will be denoted as +#CVC5_OPTION_INFO_VOID. +

      +
    • +
    • +

      + Struct + + + BoolInfo + + + if the option is of type + + + bool + + + . It holds the current +value and the default value of the option. Option kind is denoted as +#CVC5_OPTION_INFO_BOOL. +

      +
    • +
    • +

      + Struct + + + StringInfo + + + if the option is of type + + + const + + + char* + + + . It holds +the current value and the default value of the option. Option kind is +denoted as #CVC5_OPTION_INFO_STR. +

      +
    • +
    • +

      + Struct + + + IntInfo + + + if the option is of type + + + int64_t + + + . It holds the +current, default, minimum and maximum value of the option. Option kind is +denoted as #CVC5_OPTION_INFO_INT64. +

      +
    • +
    • +

      + Struct + + + UIntInfo + + + if the option is of type + + + uint64_t + + + . It holds the +current, default, minimum and maximum value of the option. Option kind is +denoted as #CVC5_OPTION_INFO_UINT64. +

      +
    • +
    • +

      + Struct + + + DoubleInfo + + + if the option is of type + + + double + + + . It holds the +current, default, minimum and maximum value of the option. Option kind is +denoted as #CVC5_OPTION_INFO_DOUBLE. +

      +
    • +
    • +

      + Struct + + + ModeInfo + + + if the option has modes. It holds the current and +default valuesof the option, as well as a list of valid modes. Option kind +is denoted as #CVC5_OPTION_INFO_MODES. +

      +
    • +
    +
    +

    + Public Members +

    +
    +
    + + + + + + + + + + + + Cvc5OptionInfoKind + + + + + + + + + kind + + + + +  + +
    +
    +
    +

    + The kind of the option info. +

    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + + name + + + + +  + +
    +
    +
    +

    + The option name +

    +
    +
    +
    +
    + + + + + + + + + + + size_t + + + + + + + + num_aliases + + + + +  + +
    +
    +
    +

    + The number of option name aliases +

    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + * + + + + + + aliases + + + + +  + +
    +
    +
    +

    + The option name aliases +

    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + is_set_by_user + + + + +  + +
    +
    +
    +

    + True if the option was explicitly set by the user +

    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + is_expert + + + + +  + +
    +
    +
    +

    + True if the option is an expert option +

    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + is_regular + + + + +  + +
    +
    +
    +

    + True if the option is a regular option +

    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + * + + + + + + d_cpp_info + + + + +  + +
    +
    +
    +

    + The associated C++ info. For internal use, only. +

    +
    +
    +
    +
    +
    + + + + + + + + + + + struct + + + + + + + + BoolInfo + + + + +  + +
    +
    +
    +

    + Information for boolean option values. +

    +
    +

    + Public Members +

    +
    +
    + + + + + + + + + + + bool + + + + + + + + dflt + + + + +  + +
    +
    +
    +

    + The default value. +

    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cur + + + + +  + +
    +
    +
    +

    + The current value. +

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + struct + + + + + + + + DoubleInfo + + + + +  + +
    +
    +
    +

    + Information for double values. +

    +
    +

    + Public Members +

    +
    +
    + + + + + + + + + + + double + + + + + + + + dflt + + + + +  + +
    +
    +
    +

    + The default value. +

    +
    +
    +
    +
    + + + + + + + + + + + double + + + + + + + + cur + + + + +  + +
    +
    +
    +

    + The current value. +

    +
    +
    +
    +
    + + + + + + + + + + + double + + + + + + + + min + + + + +  + +
    +
    +
    +

    + The minimum value. +

    +
    +
    +
    +
    + + + + + + + + + + + double + + + + + + + + max + + + + +  + +
    +
    +
    +

    + The maximum value. +

    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + has_min + + + + +  + +
    +
    +
    +

    + True if option has a minimum value. +

    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + has_max + + + + +  + +
    +
    +
    +

    + True if option has a maximum value. +

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + struct + + + + + + + + IntInfo + + + + +  + +
    +
    +
    +

    + Information for int64 values. +

    +
    +

    + Public Members +

    +
    +
    + + + + + + + + + + + int64_t + + + + + + + + dflt + + + + +  + +
    +
    +
    +

    + The default value. +

    +
    +
    +
    +
    + + + + + + + + + + + int64_t + + + + + + + + cur + + + + +  + +
    +
    +
    +

    + The current value. +

    +
    +
    +
    +
    + + + + + + + + + + + int64_t + + + + + + + + min + + + + +  + +
    +
    +
    +

    + The minimum value. +

    +
    +
    +
    +
    + + + + + + + + + + + int64_t + + + + + + + + max + + + + +  + +
    +
    +
    +

    + The maximum value. +

    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + has_min + + + + +  + +
    +
    +
    +

    + True if option has a minimum value. +

    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + has_max + + + + +  + +
    +
    +
    +

    + True if option has a maximum value. +

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + struct + + + + + + + + ModeInfo + + + + +  + +
    +
    +
    +

    + Information for mode option values. +

    +
    +

    + Public Members +

    +
    +
    + + + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + + dflt + + + + +  + +
    +
    +
    +

    + The default value. +

    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + + cur + + + + +  + +
    +
    +
    +

    + The current value. +

    +
    +
    +
    +
    + + + + + + + + + + + size_t + + + + + + + + num_modes + + + + +  + +
    +
    +
    +

    + The number of possible modes. +

    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + * + + + + + + modes + + + + +  + +
    +
    +
    +

    + The possible modes. +

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + struct + + + + + + + + StringInfo + + + + +  + +
    +
    +
    +

    + Information for string option values. +

    +
    +

    + Public Members +

    +
    +
    + + + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + + dflt + + + + +  + +
    +
    +
    +

    + The default value. +

    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + + cur + + + + +  + +
    +
    +
    +

    + The current value. +

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + struct + + + + + + + + UIntInfo + + + + +  + +
    +
    +
    +

    + Information for uint64 values. +

    +
    +

    + Public Members +

    +
    +
    + + + + + + + + + + + uint64_t + + + + + + + + dflt + + + + +  + +
    +
    +
    +

    + The default value. +

    +
    +
    +
    +
    + + + + + + + + + + + uint64_t + + + + + + + + cur + + + + +  + +
    +
    +
    +

    + The current value. +

    +
    +
    +
    +
    + + + + + + + + + + + uint64_t + + + + + + + + min + + + + +  + +
    +
    +
    +

    + The minimum value. +

    +
    +
    +
    +
    + + + + + + + + + + + uint64_t + + + + + + + + max + + + + +  + +
    +
    +
    +

    + The maximum value. +

    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + has_min + + + + +  + +
    +
    +
    +

    + True if option has a minimum value. +

    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + has_max + + + + +  + +
    +
    +
    +

    + True if option has a maximum value. +

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    + Warning +

    +

    + doxygengroup: Cannot find group “c_cvc5optioninfo” in doxygen xml output for project “cvc5_c” from directory: /home/runner/work/cvc5/cvc5/build-shared/docs/api/c/doxygen/xml +

    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/structs/cvc5plugin.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/structs/cvc5plugin.html new file mode 100644 index 0000000000..bdc859da6c --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/structs/cvc5plugin.html @@ -0,0 +1,1222 @@ + + + + + + + + + + + Cvc5Plugin — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Cvc5Plugin + +  + +

    +

    + This structs encapsulates a user-specified solver plugin. +It is configured via + + + + cvc5_add_plugin() + + + + . +

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + typedef + + + + + + + struct + + + + + + + + Cvc5Plugin + + + + + + + + + Cvc5Plugin + + + + +  + +
    +
    +
    +
    +
    +
    +
    + + + + + struct + + + + + + + + Cvc5Plugin + + + +
    +
    +
    +

    + A cvc5 plugin. +

    +
    +

    + Public Members +

    +
    +
    + + + + + + + + + const + + + + + + + + Cvc5Term + + + + + + + + * + + + + + ( + + + + + * + + + + + + check + + + + + + ) + + + + + ( + + + + + size_t + + + + + + + * + + + + + size + + + + + , + + + + + + + void + + + + + + + * + + + + + state + + + + + ) + + + +  + +
    +
    +
    +

    + Call to check, return list of lemmas to add to the SAT solver. This method is called periodically, roughly at every SAT decision. +

    +
    +

    + Note +

    +

    + This function pointer may be NULL to use the default implementation. +

    +
    +
    +
    + Param size + + : + +
    +
    +

    + The size of the returned array of lemmas. +

    +
    +
    + Param state + + : + +
    +
    +

    + The state data for the function, may be NULL. +

    +
    +
    + Return + + : + +
    +
    +

    + The vector of lemmas to add to the SAT solver. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + void + + + + + + + ( + + + + + * + + + + + + notify_sat_clause + + + + + + ) + + + + + ( + + + + + const + + + + + + + + Cvc5Term + + + + + + + + clause + + + + + , + + + + + + + void + + + + + + + * + + + + + state + + + + + ) + + + +  + +
    +
    +
    +

    + Notify SAT clause, called when + + + clause + + + is learned by the SAT solver. +

    +
    +

    + Note +

    +

    + This function pointer may be NULL to use the default implementation. +

    +
    +
    +
    + Param clause + + : + +
    +
    +

    + The learned clause. +

    +
    +
    + Param state + + : + +
    +
    +

    + The state data for the function, may be NULL. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + void + + + + + + + ( + + + + + * + + + + + + notify_theory_lemma + + + + + + ) + + + + + ( + + + + + const + + + + + + + + Cvc5Term + + + + + + + + lemma + + + + + , + + + + + + + void + + + + + + + * + + + + + state + + + + + ) + + + +  + +
    +
    +
    +

    + Notify theory lemma, called when + + + lemma + + + is sent by a theory solver. +

    +
    +

    + Note +

    +

    + This function pointer may be NULL to use the default implementation. +

    +
    +
    +
    + Param lemma + + : + +
    +
    +

    + The theory lemma. +

    +
    +
    + Param state + + : + +
    +
    +

    + The state data for the function, may be NULL. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + ( + + + + + * + + + + + + get_name + + + + + + ) + + + + + ( + + + + + ) + + + +  + +
    +
    +
    +

    + Get the name of the plugin (for debugging). +

    +
    +

    + Note +

    +

    + This function pointer may NOT be NULL. +

    +
    +
    +
    + Return + + : + +
    +
    +

    + The name of the plugin. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + * + + + + + + d_check_state + + + + +  + +
    +
    +
    +

    + The state to pass into + + + check + + + . +

    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + * + + + + + + d_notify_sat_clause_state + + + + +  + +
    +
    +
    +

    + The state to pass into + + + notify_sat_clause + + + . +

    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + * + + + + + + d_notify_theory_lemma_state + + + + +  + +
    +
    +
    +

    + The state to pass into + + + notify_theory_lemma + + + . +

    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5.html new file mode 100644 index 0000000000..93419db712 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5.html @@ -0,0 +1,13897 @@ + + + + + + + + + + + Cvc5 — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Cvc5 + +  + +

    +

    + This struct represents a cvc5 solver instance. +

    +

    + + + + Terms + + + + , + + + + sorts + + + + and + + + + operators + + + + are not tied to a + + + + Cvc5 + + + + instance +but associated with a + + + + Cvc5TermManager + + + + instance, which can be +shared between solver instances. +

    +

    + Solver options are configured via + + + + cvc5_set_option() + + + + and queried via + + + + cvc5_get_option() + + + + (for more information on configuration options, see + + + Options + + + ). +Information about a specific option can be retrieved via + + + + cvc5_get_option_info() + + + + (see + + + Cvc5OptionInfo + + + ). +

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + typedef + + + + + + + struct + + + + + + + + Cvc5 + + + + + + + + + Cvc5 + + + + +  + +
    +
    +
    +

    + A cvc5 solver. +

    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5 + + + + + + + + * + + + + + + cvc5_new + + + + + ( + + + + + Cvc5TermManager + + + + + + + + * + + + + + tm + + + + ) + + +  + +
    +
    +
    +

    + Construct a new instance of a cvc5 solver. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + tm + + – The associated term manager instance. +

    +
    +
    + Returns + + : + +
    +
    +

    + The cvc5 solver instance. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + cvc5_delete + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + + ) + + +  + +
    +
    +
    +

    + Delete a cvc5 solver instance. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + cvc5 + + – The solver instance. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5TermManager + + + + + + + + * + + + + + + cvc5_get_tm + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + + ) + + +  + +
    +
    +
    +

    + Get the associated term manager of a cvc5 solver instance. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + cvc5 + + – The solver instance. +

    +
    +
    + Returns + + : + +
    +
    +

    + The term manager. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Sort + + + + + + + + + cvc5_declare_dt + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + const + + + + + + + char + + + + + + + * + + + + + symbol + + + , + + + size_t + + + + + + + size + + + , + + + const + + + + + + + + Cvc5DatatypeConstructorDecl + + + + + + + + ctors + + + + + [ + + + + + ] + + + + ) + + +  + +
    +
    +
    +

    + Create datatype sort. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (declare-datatype <symbol> <datatype_decl>)
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + symbol + + – The name of the datatype sort. +

      +
    • +
    • +

      + + size + + – The number of constructor declarations of the datatype sort. +

      +
    • +
    • +

      + + ctors + + – The constructor declarations. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The datatype sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Term + + + + + + + + + cvc5_declare_fun + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + const + + + + + + + char + + + + + + + * + + + + + symbol + + + , + + + size_t + + + + + + + size + + + , + + + const + + + + + + + + Cvc5Sort + + + + + + + + sorts + + + + + [ + + + + + ] + + + , + + + + Cvc5Sort + + + + + + + + sort + + + , + + + bool + + + + + + + fresh + + + + ) + + +  + +
    +
    +
    +

    + Declare n-ary function symbol. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (declare-fun <symbol> ( <sort>* ) <sort>)
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + symbol + + – The name of the function. +

      +
    • +
    • +

      + + size + + – The number of domain sorts of the function. +

      +
    • +
    • +

      + + sorts + + – The domain sorts of the function. +

      +
    • +
    • +

      + + sort + + – The codomain sort of the function. +

      +
    • +
    • +

      + + fresh + + – If true, then this method always returns a new Term. Otherwise, this method will always return the same Term for each call with the given sorts and symbol where fresh is false. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The function. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Sort + + + + + + + + + cvc5_declare_sort + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + const + + + + + + + char + + + + + + + * + + + + + symbol + + + , + + + uint32_t + + + + + + + arity + + + , + + + bool + + + + + + + fresh + + + + ) + + +  + +
    +
    +
    +

    + Declare uninterpreted sort. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (declare-sort <symbol> <numeral>)
    +
    +
    +
    +
    +

    + Note +

    +

    + This corresponds to + + + cvc5_mk_uninterpreted_sort() + + + if arity = 0, and to + + + cvc5_mk_uninterpreted_sort_constructor_sort() + + + if arity > 0. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + symbol + + – The name of the sort. +

      +
    • +
    • +

      + + arity + + – The arity of the sort. +

      +
    • +
    • +

      + + fresh + + – If true, then this method always returns a new Sort. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Term + + + + + + + + + cvc5_define_fun + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + const + + + + + + + char + + + + + + + * + + + + + symbol + + + , + + + size_t + + + + + + + size + + + , + + + const + + + + + + + + Cvc5Term + + + + + + + + vars + + + + + [ + + + + + ] + + + , + + + const + + + + + + + + Cvc5Sort + + + + + + + + sort + + + , + + + const + + + + + + + + Cvc5Term + + + + + + + + term + + + , + + + bool + + + + + + + global + + + + ) + + +  + +
    +
    +
    +

    + Define n-ary function. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (define-fun <function_def>)
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The cvc5 solver instance. +

      +
    • +
    • +

      + + symbol + + – The name of the function. +

      +
    • +
    • +

      + + size + + – The number of parameters of the function. +

      +
    • +
    • +

      + + vars + + – The parameters. +

      +
    • +
    • +

      + + sort + + – The sort of the return value of this function. +

      +
    • +
    • +

      + + term + + – The function body. +

      +
    • +
    • +

      + + global + + – Determines whether this definition is global (i.e., persists when popping the context). +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The function. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Term + + + + + + + + + cvc5_define_fun_rec + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + const + + + + + + + char + + + + + + + * + + + + + symbol + + + , + + + size_t + + + + + + + size + + + , + + + const + + + + + + + + Cvc5Term + + + + + + + + vars + + + + + [ + + + + + ] + + + , + + + const + + + + + + + + Cvc5Sort + + + + + + + + sort + + + , + + + const + + + + + + + + Cvc5Term + + + + + + + + term + + + , + + + bool + + + + + + + global + + + + ) + + +  + +
    +
    +
    +

    + Define recursive function. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (define-fun-rec <function_def>)
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The cvc5 solver instance. +

      +
    • +
    • +

      + + symbol + + – The name of the function. +

      +
    • +
    • +

      + + size + + – The number of parameters of the function. +

      +
    • +
    • +

      + + vars + + – The parameters to this function. +

      +
    • +
    • +

      + + sort + + – The sort of the return value of this function. +

      +
    • +
    • +

      + + term + + – The function body. +

      +
    • +
    • +

      + + global + + – Determines whether this definition is global (i.e., persists when popping the context). +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The function. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Term + + + + + + + + + cvc5_define_fun_rec_from_const + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + + Cvc5Term + + + + + + + + fun + + + , + + + size_t + + + + + + + size + + + , + + + const + + + + + + + + Cvc5Term + + + + + + + + vars + + + + + [ + + + + + ] + + + , + + + const + + + + + + + + Cvc5Term + + + + + + + + term + + + , + + + bool + + + + + + + global + + + + ) + + +  + +
    +
    +
    +

    + Define recursive function. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (define-fun-rec <function_def>)
    +
    +
    +
    +

    + Create parameter + + + fun + + + with mkConst(). +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The cvc5 solver instance. +

      +
    • +
    • +

      + + fun + + – The sorted function. +

      +
    • +
    • +

      + + size + + – The number of parameters of the function. +

      +
    • +
    • +

      + + vars + + – The parameters to this function. +

      +
    • +
    • +

      + + term + + – The function body. +

      +
    • +
    • +

      + + global + + – Determines whether this definition is global (i.e., persists when popping the context). +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The function. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + cvc5_define_funs_rec + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + size_t + + + + + + + nfuns + + + , + + + const + + + + + + + + Cvc5Term + + + + + + + + funs + + + + + [ + + + + + ] + + + , + + + size_t + + + + + + + nvars + + + + + [ + + + + + ] + + + , + + + const + + + + + + + + Cvc5Term + + + + + + + + * + + + + + vars + + + + + [ + + + + + ] + + + , + + + const + + + + + + + + Cvc5Term + + + + + + + + terms + + + + + [ + + + + + ] + + + , + + + bool + + + + + + + global + + + + ) + + +  + +
    +
    +
    +

    + Define recursive functions. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (define-funs-rec
    +    ( <function_decl>_1 ... <function_decl>_n )
    +    ( <term>_1 ... <term>_n )
    +)
    +
    +
    +
    +

    + Create elements of parameter + + + funs + + + with + + + cvc5_mk_const() + + + . +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The cvc5 solver instance. +

      +
    • +
    • +

      + + nfuns + + – The number of sorted functions. +

      +
    • +
    • +

      + + funs + + – The sorted functions. +

      +
    • +
    • +

      + + nvars + + – The numbers of parameters for each function. +

      +
    • +
    • +

      + + vars + + – The list of parameters to the functions. +

      +
    • +
    • +

      + + terms + + – The list of function bodies of the functions. +

      +
    • +
    • +

      + + global + + – Determines whether this definition is global (i.e., persists when popping the context). +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Term + + + + + + + + + cvc5_simplify + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + + Cvc5Term + + + + + + + + term + + + , + + + bool + + + + + + + apply_subs + + + + ) + + +  + +
    +
    +
    +

    + Simplify a formula without doing “much” work. +

    +

    + Does not involve the SAT Engine in the simplification, but uses the current definitions, and assertions. It also involves theory normalization. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + term + + – The formula to simplify. +

      +
    • +
    • +

      + + apply_subs + + – True to apply substitutions for solved variables. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The simplified formula. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + cvc5_assert_formula + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Assert a formula. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (assert <term>)
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + term + + – The formula to assert. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Result + + + + + + + + + cvc5_check_sat + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + + ) + + +  + +
    +
    +
    +

    + Check satisfiability. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (check-sat)
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + cvc5 + + – The solver instance. +

    +
    +
    + Returns + + : + +
    +
    +

    + The result of the satisfiability check. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Result + + + + + + + + + cvc5_check_sat_assuming + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + size_t + + + + + + + size + + + , + + + const + + + + + + + + Cvc5Term + + + + + + + + assumptions + + + + + [ + + + + + ] + + + + ) + + +  + +
    +
    +
    +

    + Check satisfiability assuming the given formulas. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (check-sat-assuming ( <prop_literal>+ ))
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + size + + – The number of assumptions. +

      +
    • +
    • +

      + + assumptions + + – The formulas to assume. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The result of the satisfiability check. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + + Cvc5Term + + + + + + + + * + + + + + + cvc5_get_assertions + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + size_t + + + + + + + * + + + + + size + + + + ) + + +  + +
    +
    +
    +

    + Get the list of asserted formulas. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (get-assertions)
    +
    +
    +
    +
    +

    + Note +

    +

    + The returned Cvc5Term array pointer is only valid until the next call to this function. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + size + + – The size of the resulting assertions array. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The list of asserted formulas. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + + cvc5_get_info + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + const + + + + + + + char + + + + + + + * + + + + + flag + + + + ) + + +  + +
    +
    +
    +

    + Get info from the solver. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (get-info <info_flag>)
    +
    +
    +
    +
    +

    + Note +

    +

    + The returned char* pointer is only valid until the next call to this function. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + cvc5 + + – The solver instance. +

    +
    +
    + Returns + + : + +
    +
    +

    + The info. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + + cvc5_get_option + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + const + + + + + + + char + + + + + + + * + + + + + option + + + + ) + + +  + +
    +
    +
    +

    + Get the value of a given option. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (get-option <keyword>)
    +
    +
    +
    +
    +

    + Note +

    +

    + The returned char* pointer is only valid until the next call to this function. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + option + + – The option for which the value is queried. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + A string representation of the option value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + * + + + + + + cvc5_get_option_names + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + size_t + + + + + + + * + + + + + size + + + + ) + + +  + +
    +
    +
    +

    + Get all option names that can be used with + + + + + cvc5_set_option() + + + + + , + + + + + cvc5_get_option() + + + + + and + + + + + cvc5_get_option_info() + + + + + . +

    +
    +

    + Note +

    +

    + The returned char* pointer is only valid until the next call to this function. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + size + + – The size of the resulting option names array. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + All option names. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + cvc5_get_option_info + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + const + + + + + + + char + + + + + + + * + + + + + option + + + , + + + + Cvc5OptionInfo + + + + + + + + * + + + + + info + + + + ) + + +  + +
    +
    +
    +

    + Get some information about a given option. See struct + + + Cvc5OptionInfo + + + for more details on which information is available. +

    +
    +

    + Note +

    +

    + The returned + + + Cvc5OptionInfo + + + data is only valid until the next call to this function. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + option + + – The option for which the info is queried. +

      +
    • +
    • +

      + + info + + – The output parameter for the queried info. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + + Cvc5Term + + + + + + + + * + + + + + + cvc5_get_unsat_assumptions + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + size_t + + + + + + + * + + + + + size + + + + ) + + +  + +
    +
    +
    +

    + Get the set of unsat (“failed”) assumptions. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (get-unsat-assumptions)
    +
    +
    +
    +

    + Requires to enable option + + + produce-unsat-assumptions + + + . +

    +
    +

    + Note +

    +

    + The returned Cvc5Term array pointer is only valid until the next call to this function. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + size + + – The number of the resulting unsat assumptions. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The set of unsat assumptions. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + + Cvc5Term + + + + + + + + * + + + + + + cvc5_get_unsat_core + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + size_t + + + + + + + * + + + + + size + + + + ) + + +  + +
    +
    +
    +

    + Get the unsatisfiable core. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (get-unsat-core)
    +
    +
    +
    +

    + Requires to enable option + + + produce-unsat-cores + + + . +

    +
    +

    + Note +

    +

    + In contrast to SMT-LIB, cvc5’s API does not distinguish between named +and unnamed assertions when producing an unsatisfiable core. +Additionally, the API allows this option to be called after a check with +assumptions. A subset of those assumptions may be included in the +unsatisfiable core returned by this function. +

    +
    +
    +

    + Note +

    +

    + The returned Cvc5Term array pointer is only valid until the next call to this function. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + size + + – The size of the resulting unsat core. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + A set of terms representing the unsatisfiable core. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + + Cvc5Term + + + + + + + + * + + + + + + cvc5_get_unsat_core_lemmas + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + size_t + + + + + + + * + + + + + size + + + + ) + + +  + +
    +
    +
    +

    + Get the lemmas used to derive unsatisfiability. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (get-unsat-core-lemmas)
    +
    +
    +
    +

    + Requires the SAT proof unsat core mode, so to enable option + + unsat-core-mode=sat-proof + + . +

    +
    +

    + Note +

    +

    + The returned Cvc5Term array pointer is only valid until the next call to this function. +

    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + size + + – The size of the resulting unsat core. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + A set of terms representing the lemmas used to derive unsatisfiability. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + cvc5_get_difficulty + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + size_t + + + + + + + * + + + + + size + + + , + + + + Cvc5Term + + + + + + + + * + + + + + inputs + + + + + [ + + + + + ] + + + , + + + + Cvc5Term + + + + + + + + * + + + + + values + + + + + [ + + + + + ] + + + + ) + + +  + +
    +
    +
    +

    + Get a difficulty estimate for an asserted formula. This function is intended to be called immediately after any response to a checkSat. +

    +
    +

    + Note +

    +

    + The resulting mapping from + + + inputs + + + (which is a subset of the inputs) to real + + + values + + + is an estimate of how difficult each assertion was to solve. Unmentioned assertions can be assumed to have zero difficulty. +

    +
    +
    +

    + Note +

    +

    + The resulting + + + inputs + + + and + + + values + + + array pointers are only valid until the next call to this function. +

    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + size + + – The resulting size of + + + inputs + + + and + + + values + + + . +

      +
    • +
    • +

      + + inputs + + – The resulting inputs that are mapped to the resulting + + + values + + + . +

      +
    • +
    • +

      + + values + + – The resulting real values. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + + Cvc5Term + + + + + + + + * + + + + + + cvc5_get_timeout_core + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + + Cvc5Result + + + + + + + + * + + + + + result + + + , + + + size_t + + + + + + + * + + + + + size + + + + ) + + +  + +
    +
    +
    +

    + Get a timeout core. +

    +

    +

    +

    + This function computes a subset of the current assertions that cause a +timeout. It may make multiple checks for satisfiability internally, each +limited by the timeout value given by + + + timeout-core-timeout + + + . +

    +

    + If the result is unknown and the reason is timeout, then the list of +formulas correspond to a subset of the current assertions that cause a +timeout in the specified time + + + timeout-core-timeout + + + . If the result is unsat, then the list of +formulas correspond to an unsat core for the current assertions. Otherwise, +the result is sat, indicating that the current assertions are satisfiable, +and the returned set of assertions is empty. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (get-timeout-core)
    +
    +
    +
    +
    +

    + Note +

    +

    + This command does not require being preceeded by a call to + + + + + cvc5_check_sat() + + + + + . +

    +
    +
    +

    + Note +

    +

    + The resulting + + + result + + + and term array pointer are only valid until the next call to this function. +

    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + result + + – The resulting result. +

      +
    • +
    • +

      + + size + + – The resulting size of the timeout core. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The list of assertions determined to be the timeout core. The resulting result is stored in + + + result + + + . +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + + Cvc5Term + + + + + + + + * + + + + + + cvc5_get_timeout_core_assuming + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + size_t + + + + + + + size + + + , + + + const + + + + + + + + Cvc5Term + + + + + + + + assumptions + + + + + [ + + + + + ] + + + , + + + + Cvc5Result + + + + + + + + * + + + + + result + + + , + + + size_t + + + + + + + * + + + + + rsize + + + + ) + + +  + +
    +
    +
    +

    + Get a timeout core of the given assumptions. +

    +

    + This function computes a subset of the given assumptions that cause a timeout when added to the current assertions. +

    +

    + If the result is unknown and the reason is timeout, then the set of +assumptions corresponds to a subset of the given assumptions that cause a +timeout when added to the current assertions in the specified time + + + timeout-core-timeout + + + . If the result +is unsat, then the set of assumptions together with the current assertions +correspond to an unsat core for the current assertions. Otherwise, the +result is sat, indicating that the given assumptions plus the current +assertions are satisfiable, and the returned set of assumptions is empty. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (get-timeout-core (<assert>*))
    +
    +
    +
    +
    +

    + Note +

    +

    + This command does not require being preceeded by a call to + + + + + cvc5_check_sat() + + + + + . +

    +
    +
    +

    + Note +

    +

    + The resulting + + + result + + + and term array pointer are only valid until the next call to this function. +

    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + size + + – The number of assumptions. +

      +
    • +
    • +

      + + assumptions + + – The (non-empty) set of formulas to assume. +

      +
    • +
    • +

      + + result + + – The resulting result. +

      +
    • +
    • +

      + + rsize + + – The resulting size of the timeout core. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The list of assumptions determined to be the timeout core. The resulting result is stored in + + + result + + + . +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + + Cvc5Proof + + + + + + + + * + + + + + + cvc5_get_proof + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + + Cvc5ProofComponent + + + + + + + + c + + + , + + + size_t + + + + + + + * + + + + + size + + + + ) + + +  + +
    +
    +
    +

    + Get a proof associated with the most recent call to checkSat. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (get-proof :c)
    +
    +
    +
    +

    + Requires to enable option + + + produce-proofs + + + . +The string representation depends on the value of option + + + produce-proofs + + + . +

    +
    +

    + Note +

    +

    + The returned Cvc5Proof array pointer is only valid until the next call to this function. +

    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + c + + – The component of the proof to return +

      +
    • +
    • +

      + + size + + – The size of the resulting array of proofs. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + An array of proofs. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + + Cvc5Term + + + + + + + + * + + + + + + cvc5_get_learned_literals + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + + Cvc5LearnedLitType + + + + + + + + type + + + , + + + size_t + + + + + + + * + + + + + size + + + + ) + + +  + +
    +
    +
    +

    + Get a list of learned literals that are entailed by the current set of assertions. +

    +
    +

    + Note +

    +

    + The resulting Cvc5Term array pointer is only valid until the next call to this function. +

    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + type + + – The type of learned literalsjto return +

      +
    • +
    • +

      + + size + + – The size of the resulting list of literals. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + A list of literals that were learned at top-level. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Term + + + + + + + + + cvc5_get_value + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Get the value of the given term in the current model. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (get-value ( <term> ))
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + term + + – The term for which the value is queried. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The value of the given term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + + Cvc5Term + + + + + + + + * + + + + + + cvc5_get_values + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + size_t + + + + + + + size + + + , + + + const + + + + + + + + Cvc5Term + + + + + + + + terms + + + + + [ + + + + + ] + + + , + + + size_t + + + + + + + * + + + + + rsize + + + + ) + + +  + +
    +
    +
    +

    + Get the values of the given terms in the current model. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (get-value ( <term>* ))
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + size + + – The number of terms for which the value is queried. +

      +
    • +
    • +

      + + terms + + – The terms. +

      +
    • +
    • +

      + + rsize + + – The resulting size of the timeout core. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The values of the given terms. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + + Cvc5Term + + + + + + + + * + + + + + + cvc5_get_model_domain_elements + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + + Cvc5Sort + + + + + + + + sort + + + , + + + size_t + + + + + + + * + + + + + size + + + + ) + + +  + +
    +
    +
    +

    + Get the domain elements of uninterpreted sort s in the current model. The current model interprets s as the finite sort whose domain elements are given in the return value of this function. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + sort + + – The uninterpreted sort in question. +

      +
    • +
    • +

      + + size + + – The size of the resulting domain elements array. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The domain elements of s in the current model. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_is_model_core_symbol + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + + Cvc5Term + + + + + + + + v + + + + ) + + +  + +
    +
    +
    +

    + Determine if the model value of the given free constant was essential for showing satisfiability of the last + + + + + cvc5_check_sat() + + + + + query based on the current model. +

    +

    + For any free constant + + + v + + + , this will only return false if + + + + model-cores* + + + + has been set to true. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + v + + – The term in question. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + True if + + + v + + + was essential and is thus a model core symbol. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + + cvc5_get_model + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + size_t + + + + + + + nsorts + + + , + + + const + + + + + + + + Cvc5Sort + + + + + + + + sorts + + + + + [ + + + + + ] + + + , + + + size_t + + + + + + + nconsts + + + , + + + const + + + + + + + + Cvc5Term + + + + + + + + consts + + + + + [ + + + + + ] + + + + ) + + +  + +
    +
    +
    +

    + Get the model +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (get-model)
    +
    +
    +
    +

    + Requires to enable option + + + produce-models + + + . +

    +
    +

    + Note +

    +

    + The returned char* pointer is only valid until the next call to this function. +

    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + nsorts + + – The number of uninterpreted sorts that should be printed in the model. +

      +
    • +
    • +

      + + sorts + + – The list of uninterpreted sorts. +

      +
    • +
    • +

      + + nconsts + + – The size of the list of free constants that should be printed in the model. +

      +
    • +
    • +

      + + consts + + – The list of free constants that should be printed in the model. A subset of these may be printed based on isModelCoreSymbol(). +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + A string representing the model. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Term + + + + + + + + + cvc5_get_quantifier_elimination + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + + Cvc5Term + + + + + + + + q + + + + ) + + +  + +
    +
    +
    +

    + Do quantifier elimination. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (get-qe <q>)
    +
    +
    +
    +
    +

    + Note +

    +

    + Quantifier Elimination is is only complete for logics such as LRA, LIA and BV. +

    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + q + + – A quantified formula of the form + + \(Q\bar{x}_1... Q\bar{x}_n. P( x_1...x_i, y_1...y_j)\) + + where + + \(Q\bar{x}\) + + is a set of quantified variables of the form + + \(Q x_1...x_k\) + + and + + \(P( x_1...x_i, y_1...y_j )\) + + is a quantifier-free formula +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + A formula + + \(\phi\) + + such that, given the current set of formulas + + \(A\) + + asserted to this solver: +

    +
      +
    • +

      + + \((A \wedge q)\) + + and + + \((A \wedge \phi)\) + + are equivalent +

      +
    • +
    • +

      + + \(\phi\) + + is quantifier-free formula containing only free variables in + + \(y_1...y_n\) + + . +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Term + + + + + + + + + cvc5_get_quantifier_elimination_disjunct + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + + Cvc5Term + + + + + + + + q + + + + ) + + +  + +
    +
    +
    +

    + Do partial quantifier elimination, which can be used for incrementally computing the result of a quantifier elimination. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (get-qe-disjunct <q>)
    +
    +
    +
    +
    +

    + Note +

    +

    + Quantifier Elimination is is only complete for logics such as LRA, LIA and BV. +

    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + q + + – A quantified formula of the form + + \(Q\bar{x}_1... Q\bar{x}_n. P( x_1...x_i, y_1...y_j)\) + + where + + \(Q\bar{x}\) + + is a set of quantified variables of the form + + \(Q x_1...x_k\) + + and + + \(P( x_1...x_i, y_1...y_j )\) + + is a quantifier-free formula +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + A formula + + \(\phi\) + + such that, given the current set of formulas + + \(A\) + + asserted to this solver: +

    +
      +
    • +

      + + \((A \wedge q \implies A \wedge \phi)\) + + if + + \(Q\) + + is + + \(\forall\) + + , and + + \((A \wedge \phi \implies A \wedge q)\) + + if + + \(Q\) + + is + + \(\exists\) + +

      +
    • +
    • +

      + + \(\phi\) + + is quantifier-free formula containing only free variables in + + \(y_1...y_n\) + +

      +
    • +
    • +

      + If + + \(Q\) + + is + + \(\exists\) + + , let + + \((A \wedge Q_n)\) + + be the formula + + \((A \wedge \neg (\phi \wedge Q_1) \wedge ... \wedge \neg (\phi \wedge Q_n))\) + + where for each + + \(i = 1...n\) + + , formula + + \((\phi \wedge Q_i)\) + + is the result of calling + + + cvc5_get_quantifier_elimination_disjunct() + + + for + + \(q\) + + with the set of assertions + + \((A \wedge Q_{i-1})\) + + . Similarly, if + + \(Q\) + + is + + \(\forall\) + + , then let + + \((A \wedge Q_n)\) + + be + + \((A \wedge (\phi \wedge Q_1) \wedge ... \wedge (\phi \wedge Q_n))\) + + where + + \((\phi \wedge Q_i)\) + + is the same as above. In either case, we have that + + \((\phi \wedge Q_j)\) + + will eventually be true or false, for some finite j. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + cvc5_declare_sep_heap + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + + Cvc5Sort + + + + + + + + loc + + + , + + + + Cvc5Sort + + + + + + + + data + + + + ) + + +  + +
    +
    +
    +

    + When using separation logic, this sets the location sort and the datatype sort to the given ones. This function should be invoked exactly once, before any separation logic constraints are provided. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + loc + + – The location sort of the heap. +

      +
    • +
    • +

      + + data + + – The data sort of the heap. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Term + + + + + + + + + cvc5_get_value_sep_heap + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + + ) + + +  + +
    +
    +
    +

    + When using separation logic, obtain the term for the heap. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + cvc5 + + – The solver instance. +

    +
    +
    + Returns + + : + +
    +
    +

    + The term for the heap. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Term + + + + + + + + + cvc5_get_value_sep_nil + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + + ) + + +  + +
    +
    +
    +

    + When using separation logic, obtain the term for nil. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + cvc5 + + – The solver instance. +

    +
    +
    + Returns + + : + +
    +
    +

    + The term for nil. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Term + + + + + + + + + cvc5_declare_pool + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + const + + + + + + + char + + + + + + + * + + + + + symbol + + + , + + + + Cvc5Sort + + + + + + + + sort + + + , + + + size_t + + + + + + + size + + + , + + + const + + + + + + + + Cvc5Term + + + + + + + + init_value + + + + + [ + + + + + ] + + + + ) + + +  + +
    +
    +
    +

    + Declare a symbolic pool of terms with the given initial value. +

    +

    + For details on how pools are used to specify instructions for quantifier instantiation, see documentation for the #INST_POOL kind. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (declare-pool <symbol> <sort> ( <term>* ))
    +
    +
    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + symbol + + – The name of the pool. +

      +
    • +
    • +

      + + sort + + – The sort of the elements of the pool. +

      +
    • +
    • +

      + + size + + – The number of initial values of the pool. +

      +
    • +
    • +

      + + init_value + + – The initial value of the pool. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The pool symbol. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + Cvc5Term + + + + + + + + + cvc5_declare_oracle_fun + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + const + + + + + + + char + + + + + + + * + + + + + symbol + + + , + + + size_t + + + + + + + size + + + , + + + const + + + + + + + + Cvc5Sort + + + + + + + + sorts + + + + + [ + + + + + ] + + + , + + + + Cvc5Sort + + + + + + + + sort + + + , + + + void + + + + + + + * + + + + + state + + + , + + + + Cvc5Term + + + + + + + + ( + + + + + * + + + + + fun + + + + + ) + + + + + ( + + + + + size_t + + + + + , + + + + + + + const + + + + + + + + Cvc5Term + + + + + + * + + + + + , + + + + + + + void + + + + + * + + + + + ) + + + + ) + + +  + +
    +
    +
    +

    + Declare an oracle function with reference to an implementation. +

    +

    + Oracle functions have a different semantics with respect to ordinary declared functions. In particular, for an input to be satisfiable, its oracle functions are implicitly universally quantified. +

    +

    + This function is used in part for implementing this command: +

    +

    +

    +

    + (declare-oracle-fun <sym> (<sort>*) <sort> <sym>) +

    +

    + In particular, the above command is implemented by constructing a function over terms that wraps a call to binary sym via a text interface. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + symbol + + – The name of the oracle +

      +
    • +
    • +

      + + size + + – The number of domain sorts of the oracle function. +

      +
    • +
    • +

      + + sorts + + – The domain sorts. +

      +
    • +
    • +

      + + sort + + – The sort of the return value of this function. +

      +
    • +
    • +

      + + state + + – The state data for the oracle function, may be NULL. +

      +
    • +
    • +

      + + fun + + – The function that implements the oracle function, taking a an array of term arguments and its size and a void pointer to optionally capture any state data the function may need. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The oracle function. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + cvc5_add_plugin + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + + Cvc5Plugin + + + + + + + + * + + + + + plugin + + + + ) + + +  + +
    +
    +
    +

    + Add plugin to this solver. Its callbacks will be called throughout the lifetime of this solver. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + plugin + + – The plugin to add to this solver. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Term + + + + + + + + + cvc5_get_interpolant + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + + Cvc5Term + + + + + + + + conj + + + + ) + + +  + +
    +
    +
    +

    + Get an interpolant. +

    +

    + Given that + + \(A \rightarrow B\) + + is valid, this function determines a term + + \(I\) + + over the shared variables of + + \(A\) + + and + + \(B\) + + , such that + + \(A \rightarrow I\) + + and + + \(I \rightarrow B\) + + are valid, if such a term exits. + + \(A\) + + is the current set of assertions and + + \(B\) + + is the conjecture, given as + + + conj + + + . +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (get-interpolant <symbol> <conj>)
    +
    +
    +
    +
    +

    + Note +

    +

    + In SMT-LIB, + + <symbol> + + assigns a symbol to the interpolant. +

    +
    +
    +

    + Note +

    +

    + Requires option + + + produce-interpolants + + + to +be set to a mode different from + + none + + . +

    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + conj + + – The conjecture term. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The interpolant, if an interpolant exists, else the null term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Term + + + + + + + + + cvc5_get_interpolant_with_grammar + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + + Cvc5Term + + + + + + + + conj + + + , + + + + Cvc5Grammar + + + + + + + + grammar + + + + ) + + +  + +
    +
    +
    +

    + Get an interpolant +

    +

    + Given that + + \(A \rightarrow B\) + + is valid, this function determines a term + + \(I\) + + over the shared variables of + + \(A\) + + and + + \(B\) + + , with respect to a given grammar, such that + + \(A \rightarrow I\) + + and + + \(I \rightarrow B\) + + are valid, if such a term exits. + + \(A\) + + is the current set of assertions and + + \(B\) + + is the conjecture, given as + + + conj + + + . +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (get-interpolant <symbol> <conj> <grammar>)
    +
    +
    +
    +
    +

    + Note +

    +

    + In SMT-LIB, + + <symbol> + + assigns a symbol to the interpolant. +

    +
    +
    +

    + Note +

    +

    + Requires option + + + produce-interpolants + + + to +be set to a mode different from + + none + + . +

    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + conj + + – The conjecture term. +

      +
    • +
    • +

      + + grammar + + – The grammar for the interpolant I. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The interpolant, if an interpolant exists, else the null term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Term + + + + + + + + + cvc5_get_interpolant_next + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + + ) + + +  + +
    +
    +
    +

    + Get the next interpolant. Can only be called immediately after a successful call to get-interpolant or get-interpolant-next. Is guaranteed to produce a syntactically different interpolant wrt the last returned interpolant if successful. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (get-interpolant-next)
    +
    +
    +
    +

    + Requires to enable incremental mode, and option + + + produce-interpolants + + + to be set to +a mode different from + + none + + . +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + cvc5 + + – The solver instance. +

    +
    +
    + Returns + + : + +
    +
    +

    + A Term + + \(I\) + + such that + + \(A \rightarrow I\) + + and + + \(I \rightarrow B\) + + are valid, where + + \(A\) + + is the current set of assertions and + + \(B\) + + is given in the input by + + + conj + + + , or the null term if such a term cannot be found. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Term + + + + + + + + + cvc5_get_abduct + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + + Cvc5Term + + + + + + + + conj + + + + ) + + +  + +
    +
    +
    +

    + Get an abduct. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (get-abduct <conj>)
    +
    +
    +
    +

    + Requires to enable option + + + produce-abducts + + + . +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + conj + + – The conjecture term. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + A term + + \(C\) + + such that + + \((A \wedge C)\) + + is satisfiable, and + + \((A \wedge \neg B \wedge C)\) + + is unsatisfiable, where + + \(A\) + + is the current set of assertions and + + \(B\) + + is given in the input by + + + conj + + + , or the null term if such a term cannot be found. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Term + + + + + + + + + cvc5_get_abduct_with_grammar + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + + Cvc5Term + + + + + + + + conj + + + , + + + + Cvc5Grammar + + + + + + + + grammar + + + + ) + + +  + +
    +
    +
    +

    + Get an abduct. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (get-abduct <conj> <grammar>)
    +
    +
    +
    +

    + Requires to enable option + + + produce-abducts + + + . +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + conj + + – The conjecture term. +

      +
    • +
    • +

      + + grammar + + – The grammar for the abduct + + \(C\) + +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + A term C such that + + \((A \wedge C)\) + + is satisfiable, and + + \((A \wedge \neg B \wedge C)\) + + is unsatisfiable, where + + \(A\) + + is the current set of assertions and + + \(B\) + + is given in the input by + + + conj + + + , or the null term if such a term cannot be found. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Term + + + + + + + + + cvc5_get_abduct_next + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + + ) + + +  + +
    +
    +
    +

    + Get the next abduct. Can only be called immediately after a successful call to get-abduct or get-abduct-next. Is guaranteed to produce a syntactically different abduct wrt the last returned abduct if successful. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (get-abduct-next)
    +
    +
    +
    +

    + Requires to enable incremental mode, and option + + + produce-abducts + + + . +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + cvc5 + + – The solver instance. +

    +
    +
    + Returns + + : + +
    +
    +

    + A term C such that + + \((A \wedge C)\) + + is satisfiable, and + + \((A \wedge \neg B \wedge C)\) + + is unsatisfiable, where + + \(A\) + + is the current set of assertions and + + \(B\) + + is given in the input by the last call to getAbduct(), or the null term if such a term cannot be found. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + cvc5_block_model + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + + Cvc5BlockModelsMode + + + + + + + + mode + + + + ) + + +  + +
    +
    +
    +

    + Block the current model. Can be called only if immediately preceded by a SAT or INVALID query. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (block-model)
    +
    +
    +
    +

    + Requires enabling option + + + produce-models + + + . +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + mode + + – The mode to use for blocking. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + cvc5_block_model_values + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + size_t + + + + + + + size + + + , + + + const + + + + + + + + Cvc5Term + + + + + + + + terms + + + + + [ + + + + + ] + + + + ) + + +  + +
    +
    +
    +

    + Block the current model values of (at least) the values in terms. Can be called only if immediately preceded by a SAT query. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (block-model-values ( <terms>+ ))
    +
    +
    +
    +

    + Requires enabling option + + + produce-models + + + . +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + size + + – The number of values to block. +

      +
    • +
    • +

      + + terms + + – The values to block. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + + cvc5_get_instantiations + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + + ) + + +  + +
    +
    +
    +
    +

    + Note +

    +

    + The returned char* pointer is only valid until the next call to this function. +

    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + cvc5 + + – The solver instance. +

    +
    +
    + Returns + + : + +
    +
    +

    + A string that contains information about all instantiations made by the quantifiers module. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + cvc5_push + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + uint32_t + + + + + + + nscopes + + + + ) + + +  + +
    +
    +
    +

    + Push (a) level(s) to the assertion stack. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (push <numeral>)
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + nscopes + + – The number of levels to push. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + cvc5_pop + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + uint32_t + + + + + + + nscopes + + + + ) + + +  + +
    +
    +
    +

    + Pop (a) level(s) from the assertion stack. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (pop <numeral>)
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + nscopes + + – The number of levels to pop. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + cvc5_reset_assertions + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + + ) + + +  + +
    +
    +
    +

    + Remove all assertions. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (reset-assertions)
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + cvc5 + + – The solver instance. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + cvc5_set_info + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + const + + + + + + + char + + + + + + + * + + + + + keyword + + + , + + + const + + + + + + + char + + + + + + + * + + + + + value + + + + ) + + +  + +
    +
    +
    +

    + Set info. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (set-info <attribute>)
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + keyword + + – The info flag. +

      +
    • +
    • +

      + + value + + – The value of the info flag. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + cvc5_set_logic + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + const + + + + + + + char + + + + + + + * + + + + + logic + + + + ) + + +  + +
    +
    +
    +

    + Set logic. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (set-logic <symbol>)
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + logic + + – The logic to set. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_is_logic_set + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + + ) + + +  + +
    +
    +
    +

    + Determine if + + + + + cvc5_set_logic() + + + + + has been called. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if + + + setLogic() + + + has already been called for the given solver instance. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + + cvc5_get_logic + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + + ) + + +  + +
    +
    +
    +

    + Get the logic set the solver. +

    +
    +

    + Note +

    +

    + Asserts `cvc5_is_logic_set()1. +

    +
    +
    +

    + Note +

    +

    + The returned char* pointer is only valid until the next call to this function. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The logic used by the solver. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + cvc5_set_option + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + const + + + + + + + char + + + + + + + * + + + + + option + + + , + + + const + + + + + + + char + + + + + + + * + + + + + value + + + + ) + + +  + +
    +
    +
    +

    + Set option. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (set-option :<option> <value>)
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + option + + – The option name. +

      +
    • +
    • +

      + + value + + – The option value. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Term + + + + + + + + + cvc5_declare_sygus_var + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + const + + + + + + + char + + + + + + + * + + + + + symbol + + + , + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Append + + + symbol + + + to the current list of universal variables. +

    +

    + SyGuS v2: +

    +

    +

    +
    +
    +
    (declare-var <symbol> <sort>)
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + sort + + – The sort of the universal variable. +

      +
    • +
    • +

      + + symbol + + – The name of the universal variable. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The universal variable. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Grammar + + + + + + + + + cvc5_mk_grammar + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + size_t + + + + + + + nbound_vars + + + , + + + const + + + + + + + + Cvc5Term + + + + + + + + bound_vars + + + + + [ + + + + + ] + + + , + + + size_t + + + + + + + nsymbols + + + , + + + const + + + + + + + + Cvc5Term + + + + + + + + symbols + + + + + [ + + + + + ] + + + + ) + + +  + +
    +
    +
    +

    + Create a Sygus grammar. The first non-terminal is treated as the starting non-terminal, so the order of non-terminals matters. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + nbound_vars + + – The number of bound variabls. +

      +
    • +
    • +

      + + bound_vars + + – The parameters to corresponding synth-fun/synth-inv. +

      +
    • +
    • +

      + + nsymbols + + – The number of symbols. +

      +
    • +
    • +

      + + symbols + + – The pre-declaration of the non-terminal symbols. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The grammar. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Term + + + + + + + + + cvc5_synth_fun + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + const + + + + + + + char + + + + + + + * + + + + + symbol + + + , + + + size_t + + + + + + + size + + + , + + + const + + + + + + + + Cvc5Term + + + + + + + + bound_vars + + + + + [ + + + + + ] + + + , + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Synthesize n-ary function. +

    +

    + SyGuS v2: +

    +

    +

    +
    +
    +
    (synth-fun <symbol> ( <boundVars>* ) <sort>)
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + symbol + + – The name of the function. +

      +
    • +
    • +

      + + size + + – The number of parameters. +

      +
    • +
    • +

      + + bound_vars + + – The parameters to this function. +

      +
    • +
    • +

      + + sort + + – The sort of the return value of this function. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The function. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Term + + + + + + + + + cvc5_synth_fun_with_grammar + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + const + + + + + + + char + + + + + + + * + + + + + symbol + + + , + + + size_t + + + + + + + size + + + , + + + const + + + + + + + + Cvc5Term + + + + + + + + bound_vars + + + + + [ + + + + + ] + + + , + + + + Cvc5Sort + + + + + + + + sort + + + , + + + + Cvc5Grammar + + + + + + + + grammar + + + + ) + + +  + +
    +
    +
    +

    + Synthesize n-ary function following specified syntactic constraints. +

    +

    + SyGuS v2: +

    +

    +

    +
    +
    +
    (synth-fun <symbol> ( <boundVars>* ) <sort> <grammar>)
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + symbol + + – The name of the function. +

      +
    • +
    • +

      + + size + + – The number of parameters. +

      +
    • +
    • +

      + + boundVars + + – The parameters to this function. +

      +
    • +
    • +

      + + sort + + – The sort of the return value of this function. +

      +
    • +
    • +

      + + grammar + + – The syntactic constraints. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The function. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + cvc5_add_sygus_constraint + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Add a forumla to the set of Sygus constraints. +

    +

    + SyGuS v2: +

    +

    +

    +
    +
    +
    (constraint <term>)
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + term + + – The formula to add as a constraint. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + + Cvc5Term + + + + + + + + * + + + + + + cvc5_get_sygus_constraints + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + size_t + + + + + + + * + + + + + size + + + + ) + + +  + +
    +
    +
    +

    + Get the list of sygus constraints. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + size + + – The size of the resulting list of sygus constraints. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The list of sygus constraints. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + cvc5_add_sygus_assume + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Add a forumla to the set of Sygus assumptions. +

    +

    + SyGuS v2: +

    +

    +

    +
    +
    +
    (assume <term>)
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + term + + – The formula to add as an assumption. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + + Cvc5Term + + + + + + + + * + + + + + + cvc5_get_sygus_assumptions + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + size_t + + + + + + + * + + + + + size + + + + ) + + +  + +
    +
    +
    +

    + Get the list of sygus assumptions. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + size + + – The size of the resulting list of sygus assumptions. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The list of sygus assumptions. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + cvc5_add_sygus_inv_constraint + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + + Cvc5Term + + + + + + + + inv + + + , + + + + Cvc5Term + + + + + + + + pre + + + , + + + + Cvc5Term + + + + + + + + trans + + + , + + + + Cvc5Term + + + + + + + + post + + + + ) + + +  + +
    +
    +
    +

    + Add a set of Sygus constraints to the current state that correspond to an invariant synthesis problem. +

    +

    + SyGuS v2: +

    +

    +

    +
    +
    +
    (inv-constraint <inv> <pre> <trans> <post>)
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + inv + + – The function-to-synthesize. +

      +
    • +
    • +

      + + pre + + – The pre-condition. +

      +
    • +
    • +

      + + trans + + – The transition relation. +

      +
    • +
    • +

      + + post + + – The post-condition. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5SynthResult + + + + + + + + + cvc5_check_synth + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + + ) + + +  + +
    +
    +
    +

    + Try to find a solution for the synthesis conjecture corresponding to the current list of functions-to-synthesize, universal variables and constraints. +

    +

    + SyGuS v2: +

    +

    +

    +
    +
    +
    (check-synth)
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + cvc5 + + – The solver instance. +

    +
    +
    + Returns + + : + +
    +
    +

    + The result of the check, which is “solution” if the check found a solution in which case solutions are available via getSynthSolutions, “no solution” if it was determined there is no solution, or “unknown” otherwise. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5SynthResult + + + + + + + + + cvc5_check_synth_next + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + + ) + + +  + +
    +
    +
    +

    + Try to find a next solution for the synthesis conjecture corresponding to the current list of functions-to-synthesize, universal variables and constraints. Must be called immediately after a successful call to check-synth or check-synth-next. +

    +

    + SyGuS v2: +

    +

    +

    +
    +
    +
    (check-synth-next)
    +
    +
    +
    +
    +

    + Note +

    +

    + Requires incremental mode. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + cvc5 + + – The solver instance. +

    +
    +
    + Returns + + : + +
    +
    +

    + The result of the check, which is “solution” if the check found a solution in which case solutions are available via getSynthSolutions, “no solution” if it was determined there is no solution, or “unknown” otherwise. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Term + + + + + + + + + cvc5_get_synth_solution + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Get the synthesis solution of the given term. This function should be called immediately after the solver answers unsat for sygus input. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + term + + – The term for which the synthesis solution is queried. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The synthesis solution of the given term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + + Cvc5Term + + + + + + + + * + + + + + + cvc5_get_synth_solutions + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + size_t + + + + + + + size + + + , + + + const + + + + + + + + Cvc5Term + + + + + + + + terms + + + + + [ + + + + + ] + + + + ) + + +  + +
    +
    +
    +

    + Get the synthesis solutions of the given terms. This function should be called immediately after the solver answers unsat for sygus input. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + size + + – The size of the terms array. +

      +
    • +
    • +

      + + terms + + – The terms for which the synthesis solutions is queried. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The synthesis solutions of the given terms. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Term + + + + + + + + + cvc5_find_synth + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + + Cvc5FindSynthTarget + + + + + + + + target + + + + ) + + +  + +
    +
    +
    +

    + Find a target term of interest using sygus enumeration, with no provided grammar. +

    +

    + The solver will infer which grammar to use in this call, which by default will be the grammars specified by the function(s)-to-synthesize in the current context. +

    +

    + SyGuS v2: +

    +

    +

    +
    +
    +
    (find-synth :target)
    +
    +
    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + target + + – The identifier specifying what kind of term to find +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The result of the find, which is the null term if this call failed. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Term + + + + + + + + + cvc5_find_synth_with_grammar + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + + Cvc5FindSynthTarget + + + + + + + + target + + + , + + + + Cvc5Grammar + + + + + + + + grammar + + + + ) + + +  + +
    +
    +
    +

    + Find a target term of interest using sygus enumeration with a provided grammar. +

    +

    + SyGuS v2: +

    +

    +

    +
    +
    +
    (find-synth :target G)
    +
    +
    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + target + + – The identifier specifying what kind of term to find +

      +
    • +
    • +

      + + grammar + + – The grammar for the term +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The result of the find, which is the null term if this call failed. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Term + + + + + + + + + cvc5_find_synth_next + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + + ) + + +  + +
    +
    +
    +

    + Try to find a next target term of interest using sygus enumeration. Must be called immediately after a successful call to find-synth or find-synth-next. +

    +

    + SyGuS v2: +

    +

    +

    +
    +
    +
    (find-synth-next)
    +
    +
    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + cvc5 + + – The solver instance. +

    +
    +
    + Returns + + : + +
    +
    +

    + The result of the find, which is the null term if this call failed. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Statistics + + + + + + + + + cvc5_get_statistics + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + + ) + + +  + +
    +
    +
    +

    + Get a snapshot of the current state of the statistic values of this solver. The returned object is completely decoupled from the solver and will not change when the solver is used again. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + cvc5 + + – The solver instance. +

    +
    +
    + Returns + + : + +
    +
    +

    + A snapshot of the current state of the statistic values. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + cvc5_print_stats_safe + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + int + + + + + + + fd + + + + ) + + +  + +
    +
    +
    +

    + Print the statistics to the given file descriptor, suitable for usage in signal handlers. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + fd + + – The file descriptor. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_is_output_on + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + const + + + + + + + char + + + + + + + * + + + + + tag + + + + ) + + +  + +
    +
    +
    +

    + Determines if the output stream for the given tag is enabled. Tags can be enabled with the + + + output + + + option (and + + + -o + + + <tag> + + + on the command line). +

    +
    +

    + Note +

    +

    + Requires that a valid tag is given. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + cvc5 + + – The solver instance. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the given tag is enabled. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + cvc5_get_output + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + const + + + + + + + char + + + + + + + * + + + + + tag + + + , + + + const + + + + + + + char + + + + + + + * + + + + + filename + + + + ) + + +  + +
    +
    +
    +

    + Configure a file to write the output for a given tag. +

    +

    + Tags can be enabled with the + + + output + + + option (and + + + -o + + + <tag> + + + on the command line). Requires that the given tag is valid. +

    +
    +

    + Note +

    +

    + Close file + + + filename + + + before reading via + + + + + cvc5_close_output() + + + + + . +

    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + tag + + – The output tag. +

      +
    • +
    • +

      + + filename + + – The file to write the output to. Use + + + <stdout> + + + to configure to write to stdout. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + cvc5_close_output + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + const + + + + + + + char + + + + + + + * + + + + + filename + + + + ) + + +  + +
    +
    +
    +

    + Close output file configured for an output tag via + + + + + cvc5_get_output() + + + + + . +

    +
    +

    + Note +

    +

    + This is required before reading the file. +

    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + filename + + – The file to close. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + + cvc5_get_version + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + + ) + + +  + +
    +
    +
    +

    + Get a string representation of the version of this solver. +

    +
    +

    + Note +

    +

    + The returned char* pointer is only valid until the next call to this function. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + cvc5 + + – The solver instance. +

    +
    +
    + Returns + + : + +
    +
    +

    + The version string. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + + cvc5_proof_to_string + + + + + ( + + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + + Cvc5Proof + + + + + + + + proof + + + , + + + + Cvc5ProofFormat + + + + + + + + format + + + , + + + size_t + + + + + + + size + + + , + + + const + + + + + + + + Cvc5Term + + + + + + + + assertions + + + + + [ + + + + + ] + + + , + + + const + + + + + + + char + + + + + + + * + + + + + names + + + + + [ + + + + + ] + + + + ) + + +  + +
    +
    +
    +

    + Prints a proof as a string in a selected proof format mode. Other aspects of printing are taken from the solver options. +

    +
    +

    + Note +

    +

    + The returned char* pointer is only valid until the next call to this function. +

    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cvc5 + + – The solver instance. +

      +
    • +
    • +

      + + proof + + – A proof, usually obtained from Solver::getProof(). +

      +
    • +
    • +

      + + format + + – The proof format used to print the proof. Must be + + + modes::ProofFormat::NONE + + + if the proof is from a component other than + + + modes::ProofComponent::FULL + + + . +

      +
    • +
    • +

      + + size + + – The number of assertions to names mappings given. +

      +
    • +
    • +

      + + assertions + + – The list of assertions that are mapped to + + + assertions_names + + + . May be NULL if + + + assertions_size + + + is 0. +

      +
    • +
    • +

      + + names + + – The names of the + + + assertions + + + (1:1 mapping). May by NULL if + + + assertions + + + is NULL. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The string representation of the proof in the given format. +

    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5command.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5command.html new file mode 100644 index 0000000000..977b5a5b40 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5command.html @@ -0,0 +1,909 @@ + + + + + + + + + + + Cvc5Command — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Cvc5Command + +  + +

    +

    + Encapsulation of a command. +Commands are constructed by the + + + + input + + + parser + + + + and +can be invoked on the + + + + solver + + + + and + + + + symbol + + + manager + + + + . +

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + typedef + + + + + + + struct + + + + + + + cvc5_cmd_t + + + + + + + * + + + + + + Cvc5Command + + + + +  + +
    +
    +
    +

    + Encapsulation of a command. +

    +

    + Commands are constructed by the input parser and can be invoked on the solver and symbol manager. +

    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + + cvc5_cmd_invoke + + + + + ( + + + + + Cvc5Command + + + + + + + + cmd + + + , + + + + Cvc5 + + + + + + + + * + + + + + cvc5 + + + , + + + + Cvc5SymbolManager + + + + + + + + * + + + + + sm + + + + ) + + +  + +
    +
    +
    +

    + Invoke a given command on the solver and symbol manager sm and return any resulting output as a string. +

    +
    +

    + Note +

    +

    + The returned char* pointer is only valid until the next call to this function. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cmd + + – The command to invoke. +

      +
    • +
    • +

      + + solver + + – The solver to invoke the command on. +

      +
    • +
    • +

      + + sm + + – The symbol manager to invoke the command on. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The output of invoking the command. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + + cvc5_cmd_to_string + + + + + ( + + + + const + + + + + + + + Cvc5Command + + + + + + + + cmd + + + + ) + + +  + +
    +
    +
    +

    + Get a string representation of this command. +

    +
    +

    + Note +

    +

    + The returned char* pointer is only valid until the next call to this function. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The string representation. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + + cvc5_cmd_get_name + + + + + ( + + + + const + + + + + + + + Cvc5Command + + + + + + + + cmd + + + + ) + + +  + +
    +
    +
    +

    + Get the name for a given command, e.g., “assert”. +

    +
    +

    + Note +

    +

    + The returned char* pointer is only valid until the next call to this function. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The name of the command. +

    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5datatype.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5datatype.html new file mode 100644 index 0000000000..14a08d4a56 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5datatype.html @@ -0,0 +1,2229 @@ + + + + + + + + + + + Cvc5Datatype — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Cvc5Datatype + +  + +

    +

    + This struct represents a datatype. A + + + + Cvc5Datatype + + + + is encapsulated +by a datatype + + + + sort + + + + and can be retrieved from a +datatype sort via + + + + cvc5_sort_get_datatype() + + + + . +Datatypes are specified by a + + + + Cvc5DatatypeDecl + + + + via + + + cvc5_mk_dt_decl() + + + when constructing a datatype sort. +

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + typedef + + + + + + + struct + + + + + + + cvc5_dt_t + + + + + + + * + + + + + + Cvc5Datatype + + + + +  + +
    +
    +
    +

    + A cvc5 datatype. +

    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Datatype + + + + + + + + + cvc5_dt_copy + + + + + ( + + + + + Cvc5Datatype + + + + + + + + dt + + + + ) + + +  + +
    +
    +
    +

    + Make copy of datatype, increases reference counter of + + + dt + + + . +

    +
    +

    + Note +

    +

    + This step is optional and allows users to manage resources in a more fine-grained manner. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + dt + + – The datatype to copy. +

    +
    +
    + Returns + + : + +
    +
    +

    + The same datatype with its reference count increased by one. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + cvc5_dt_release + + + + + ( + + + + + Cvc5Datatype + + + + + + + + dt + + + + ) + + +  + +
    +
    +
    +

    + Release copy of datatype, decrements reference counter of + + + dt + + + . +

    +
    +

    + Note +

    +

    + This step is optional and allows users to release resources in a more fine-grained manner. Further, any API function that returns a Cvc5Datatype returns a copy that is owned by the callee of the function and thus, can be released. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + dt + + – The datatype to release. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_dt_is_equal + + + + + ( + + + + + Cvc5Datatype + + + + + + + + a + + + , + + + + Cvc5Datatype + + + + + + + + b + + + + ) + + +  + +
    +
    +
    +

    + Compare two datatypes for structural equality. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + a + + – The first datatype. +

      +
    • +
    • +

      + + b + + – The second datatype. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + True if the datatypes are equal. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5DatatypeConstructor + + + + + + + + + cvc5_dt_get_constructor + + + + + ( + + + + + Cvc5Datatype + + + + + + + + dt + + + , + + + size_t + + + + + + + idx + + + + ) + + +  + +
    +
    +
    +

    + Get the datatype constructor of a given datatype at a given index. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + dt + + – The datatype. +

      +
    • +
    • +

      + + idx + + – The index of the datatype constructor to return. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The datatype constructor with the given index. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5DatatypeConstructor + + + + + + + + + cvc5_dt_get_constructor_by_name + + + + + ( + + + + + Cvc5Datatype + + + + + + + + dt + + + , + + + const + + + + + + + char + + + + + + + * + + + + + name + + + + ) + + +  + +
    +
    +
    +

    + Get the datatype constructor of a given datatype with the given name. +

    +
    +

    + Note +

    +

    + This is a linear search through the constructors, so in case of multiple, similarly-named constructors, the first is returned. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + dt + + – The datatype. +

      +
    • +
    • +

      + + name + + – The name of the datatype constructor. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The datatype constructor with the given name. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5DatatypeSelector + + + + + + + + + cvc5_dt_get_selector + + + + + ( + + + + + Cvc5Datatype + + + + + + + + dt + + + , + + + const + + + + + + + char + + + + + + + * + + + + + name + + + + ) + + +  + +
    +
    +
    +

    + Get the datatype selector of a given datatype with the given name. +

    +
    +

    + Note +

    +

    + This is a linear search through the constructors and their selectors, so in case of multiple, similarly-named selectors, the first is returned. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + dt + + – The datatype. +

      +
    • +
    • +

      + + name + + – The name of the datatype selector. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The datatype selector with the given name. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + + cvc5_dt_get_name + + + + + ( + + + + + Cvc5Datatype + + + + + + + + dt + + + + ) + + +  + +
    +
    +
    +

    + Get the name of a given datatype. +

    +
    +

    + Note +

    +

    + The returned char* pointer is only valid until the next call to this function. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + dt + + – The datatype. +

    +
    +
    + Returns + + : + +
    +
    +

    + The name. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + size_t + + + + + + + + cvc5_dt_get_num_constructors + + + + + ( + + + + + Cvc5Datatype + + + + + + + + dt + + + + ) + + +  + +
    +
    +
    +

    + Get the number of constructors of a given datatype. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + dt + + – The datatype. +

    +
    +
    + Returns + + : + +
    +
    +

    + The number of constructors. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + + Cvc5Sort + + + + + + + + * + + + + + + cvc5_dt_get_parameters + + + + + ( + + + + + Cvc5Datatype + + + + + + + + dt + + + , + + + size_t + + + + + + + * + + + + + size + + + + ) + + +  + +
    +
    +
    +

    + Get the parameters of a given datatype, if it is parametric. +

    +
    +

    + Note +

    +

    + Asserts that this datatype is parametric. +

    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + dt + + – The datatype. +

      +
    • +
    • +

      + + size + + – The size of the resulting array. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The parameters of this datatype. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_dt_is_parametric + + + + + ( + + + + + Cvc5Datatype + + + + + + + + dt + + + + ) + + +  + +
    +
    +
    +

    + Determine if a given datatype is parametric. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + dt + + – The datatype. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the datatype is parametric. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_dt_is_codatatype + + + + + ( + + + + + Cvc5Datatype + + + + + + + + dt + + + + ) + + +  + +
    +
    +
    +

    + Determine if a given datatype corresponds to a co-datatype. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + dt + + – The datatype. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the datatype corresponds to a co-datatype. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_dt_is_tuple + + + + + ( + + + + + Cvc5Datatype + + + + + + + + dt + + + + ) + + +  + +
    +
    +
    +

    + Determine if a given datatype corresponds to a tuple. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + dt + + – The datatype. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this datatype corresponds to a tuple. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_dt_is_record + + + + + ( + + + + + Cvc5Datatype + + + + + + + + dt + + + + ) + + +  + +
    +
    +
    +

    + Determine if a given datatype corresponds to a record. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + dt + + – The datatype. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the datatype corresponds to a record. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_dt_is_finite + + + + + ( + + + + + Cvc5Datatype + + + + + + + + dt + + + + ) + + +  + +
    +
    +
    +

    + Determine if a given datatype is finite. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + dt + + – The datatype. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the datatype is finite. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_dt_is_well_founded + + + + + ( + + + + + Cvc5Datatype + + + + + + + + dt + + + + ) + + +  + +
    +
    +
    +

    + Determine if a given datatype is well-founded. +

    +

    + If the datatype is not a codatatype, this returns false if there are no values of the datatype that are of finite size. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + dt + + – The datatype. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the datatype is well-founded. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + + cvc5_dt_to_string + + + + + ( + + + + + Cvc5Datatype + + + + + + + + dt + + + + ) + + +  + +
    +
    +
    +

    + Get a string representation of a given datatype. +

    +
    +

    + Note +

    +

    + The returned char* pointer is only valid until the next call to this function. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The string representation. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + size_t + + + + + + + + cvc5_dt_hash + + + + + ( + + + + + Cvc5Datatype + + + + + + + + dt + + + + ) + + +  + +
    +
    +
    +

    + Compute the hash value of a datatype. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The datatype. +

    +
    +
    + Returns + + : + +
    +
    +

    + The hash value of the datatype. +

    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5datatypeconstructor.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5datatypeconstructor.html new file mode 100644 index 0000000000..cdd09ec60f --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5datatypeconstructor.html @@ -0,0 +1,1881 @@ + + + + + + + + + + + Cvc5DatatypeConstructor — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Cvc5DatatypeConstructor + +  + +

    +

    + This struct represents a datatype constructor. Datatype constructors are +specified by a + + + + datatype + + + constructor + + + declaration + + + + via + + cvc5_mk_dt_cons_decl() + + when +constructing a datatype sort and can be retrieved from a + + + + Cvc5Datatype + + + + via + + + + cvc5_dt_get_constructor() + + + + . +

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + typedef + + + + + + + struct + + + + + + + cvc5_dt_cons_t + + + + + + + * + + + + + + Cvc5DatatypeConstructor + + + + +  + +
    +
    +
    +

    + A cvc5 datatype constructor. +

    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5DatatypeConstructor + + + + + + + + + cvc5_dt_cons_copy + + + + + ( + + + + + Cvc5DatatypeConstructor + + + + + + + + cons + + + + ) + + +  + +
    +
    +
    +

    + Make copy of datatype constructor, increases reference counter of + + + cons + + + . +

    +
    +

    + Note +

    +

    + This step is optional and allows users to manage resources in a more fine-grained manner. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + cons + + – The datatype constructor to copy. +

    +
    +
    + Returns + + : + +
    +
    +

    + The same datatype constructor with its reference count increased by one. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + cvc5_dt_cons_release + + + + + ( + + + + + Cvc5DatatypeConstructor + + + + + + + + cons + + + + ) + + +  + +
    +
    +
    +

    + Release copy of datatype constructor, decrements reference counter of + + + cons + + + . +

    +
    +

    + Note +

    +

    + This step is optional and allows users to release resources in a more fine-grained manner. Further, any API function that returns a Cvc5DatatypeConstructor returns a copy that is owned by the callee of the function and thus, can be released. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + cons + + – The datatype constructor to release. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_dt_cons_is_equal + + + + + ( + + + + + Cvc5DatatypeConstructor + + + + + + + + a + + + , + + + + Cvc5DatatypeConstructor + + + + + + + + b + + + + ) + + +  + +
    +
    +
    +

    + Compare two datatype constructors for structural equality. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + a + + – The first datatype constructor. +

      +
    • +
    • +

      + + b + + – The second datatype constructor. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + True if the datatype constructors are equal. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + + cvc5_dt_cons_get_name + + + + + ( + + + + + Cvc5DatatypeConstructor + + + + + + + + cons + + + + ) + + +  + +
    +
    +
    +

    + Get the name of a given datatype constructor. +

    +
    +

    + Note +

    +

    + The returned char* pointer is only valid until the next call to this function. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + cons + + – The datatype constructor. +

    +
    +
    + Returns + + : + +
    +
    +

    + The name. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Term + + + + + + + + + cvc5_dt_cons_get_term + + + + + ( + + + + + Cvc5DatatypeConstructor + + + + + + + + cons + + + + ) + + +  + +
    +
    +
    +

    + Get the constructor term of a given datatype constructor. +

    +

    + Datatype constructors are a special class of function-like terms whose sort is datatype constructor ( + + + cvc5_sort_is_dt_constructor() + + + ). All datatype constructors, including nullary ones, should be used as the first argument to Terms whose kind is + + + CVC5_KIND_APPLY_CONSTRUCTOR + + + . For example, the nil list can be constructed by + + + cvc5_mk_term(CVC5_KIND_APPLY_CONSTRUCTOR, + + + {t}) + + + , where + + + t + + + is the term returned by this function. +

    +
    +

    + Note +

    +

    + This function should not be used for parametric datatypes. Instead, use the function + + + cvc5_dt_cons_get_instantiated_term() + + + below. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + cons + + – The datatype constructor. +

    +
    +
    + Returns + + : + +
    +
    +

    + The constructor term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Term + + + + + + + + + cvc5_dt_cons_get_instantiated_term + + + + + ( + + + + + Cvc5DatatypeConstructor + + + + + + + + cons + + + , + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Get the constructor term of this datatype constructor whose return type is + + + sort + + + . +

    +

    + This function is intended to be used on constructors of parametric datatypes and can be seen as returning the constructor term that has been explicitly cast to the given sort. +

    +

    + This function is required for constructors of parametric datatypes whose return type cannot be determined by type inference. For example, given: +

    +

    +

    +
    +
    +
    (declare-datatype List
    +    (par (T) ((nil) (cons (head T) (tail (List T))))))
    +
    +
    +
    +

    + The type of nil terms must be provided by the user. In SMT version 2.6, this is done via the syntax for qualified identifiers: +

    +

    +

    +
    +
    +
    (as nil (List Int))
    +
    +
    +
    +

    + This function is equivalent of applying the above, where the datatype constructor is the one corresponding to + + + nil + + + , and + + + sort + + + is + + + (List + + + Int) + + + . +

    +
    +

    + Note +

    +

    + The returned constructor term + + + t + + + is used to construct the above (nullary) application of + + + nil + + + with + + + cvc5_mk_term(CVC5_KIND_APPLY_CONSTRUCTOR, + + + {t}) + + + . +

    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cons + + – The datatype constructor. +

      +
    • +
    • +

      + + sort + + – The desired return sort of the constructor. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The constructor term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Term + + + + + + + + + cvc5_dt_cons_get_tester_term + + + + + ( + + + + + Cvc5DatatypeConstructor + + + + + + + + cons + + + + ) + + +  + +
    +
    +
    +

    + Get the tester term of a given datatype constructor. +

    +

    + Similar to constructors, testers are a class of function-like terms of tester sort ( + + + cvc5_sort_is_dt_constructor() + + + ) which should be used as the first argument of Terms of kind + + + CVC5_KIND_APPLY_TESTER + + + . +

    +
    +
    + Parameters + + : + +
    +
    +

    + + cons + + – The datatype constructor. +

    +
    +
    + Returns + + : + +
    +
    +

    + The tester term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + size_t + + + + + + + + cvc5_dt_cons_get_num_selectors + + + + + ( + + + + + Cvc5DatatypeConstructor + + + + + + + + cons + + + + ) + + +  + +
    +
    +
    +

    + Get the number of selectors of a given datatype constructor. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + cons + + – The datatype constructor. +

    +
    +
    + Returns + + : + +
    +
    +

    + The number of selectors. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5DatatypeSelector + + + + + + + + + cvc5_dt_cons_get_selector + + + + + ( + + + + + Cvc5DatatypeConstructor + + + + + + + + cons + + + , + + + size_t + + + + + + + index + + + + ) + + +  + +
    +
    +
    +

    + Get the selector at index + + + i + + + of a given datatype constructor. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + cons + + – The datatype constructor. +

    +
    +
    + Returns + + : + +
    +
    +

    + The i^th DatatypeSelector. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5DatatypeSelector + + + + + + + + + cvc5_dt_cons_get_selector_by_name + + + + + ( + + + + + Cvc5DatatypeConstructor + + + + + + + + cons + + + , + + + const + + + + + + + char + + + + + + + * + + + + + name + + + + ) + + +  + +
    +
    +
    +

    + Get the datatype selector with the given name. +

    +
    +

    + Note +

    +

    + This is a linear search through the selectors, so in case of multiple, similarly-named selectors, the first is returned. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + cons + + – The datatype constructor. +

      +
    • +
    • +

      + + name + + – The name of the datatype selector. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The first datatype selector with the given name. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + + cvc5_dt_cons_to_string + + + + + ( + + + + + Cvc5DatatypeConstructor + + + + + + + + cons + + + + ) + + +  + +
    +
    +
    +

    + Get a string representation of a given datatype constructor. +

    +
    +

    + Note +

    +

    + The returned char* pointer is only valid until the next call to this function. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + cons + + – The datatype constructor. +

    +
    +
    + Returns + + : + +
    +
    +

    + The string representation. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + size_t + + + + + + + + cvc5_dt_cons_hash + + + + + ( + + + + + Cvc5DatatypeConstructor + + + + + + + + cons + + + + ) + + +  + +
    +
    +
    +

    + Compute the hash value of a datatype constructor. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The datatype constructor. +

    +
    +
    + Returns + + : + +
    +
    +

    + The hash value of the datatype constructor. +

    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5datatypeconstructordecl.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5datatypeconstructordecl.html new file mode 100644 index 0000000000..cd214434ae --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5datatypeconstructordecl.html @@ -0,0 +1,573 @@ + + + + + + + + + + + Cvc5DatatypeConstructorDecl — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Cvc5DatatypeConstructorDecl + +  + +

    +

    + This struct encapsulates a datatype constructor declaration. +A + + + + Cvc5DatatypeConstructorDecl + + + + is constructed via + + + cvc5_mk_dt_cons_decl() + + + . +This is not yet a datatype constructor + + + datatype constructor itself + + + , but the representation of the specification +for creating a datatype constructor of a datatype + + + + sort + + + + via + + + cvc5_mk_dt_sort() + + + and + + + cvc5_mk_dt_sorts() + + + . +

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + typedef + + + + + + + struct + + + + + + + cvc5_dt_cons_decl_t + + + + + + + * + + + + + + Cvc5DatatypeConstructorDecl + + + + +  + +
    +
    +
    +

    + A cvc5 datatype constructor declaration. A datatype constructor declaration is a specification used for creating a datatype constructor. +

    +
    +
    +
    +
    +

    + Warning +

    +

    + doxygengroup: Cannot find group “c_cvc5dtconsdecl” in doxygen xml output for project “cvc5_c” from directory: /home/runner/work/cvc5/cvc5/build-shared/docs/api/c/doxygen/xml +

    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5datatypedecl.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5datatypedecl.html new file mode 100644 index 0000000000..bb8d96046c --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5datatypedecl.html @@ -0,0 +1,1524 @@ + + + + + + + + + + + Cvc5DatatypeDecl — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Cvc5DatatypeDecl + +  + +

    +

    + This struct encapsulates a datatype declaration. A + + + + Cvc5DatatypeDecl + + + + is constructed via + + + cvc5_mk_dt_decl() + + + . +This is not a + + + datatype + + + itself, but the representation of +the specification for creating a datatype + + + + sort + + + + via + + + cvc5_mk_dt_sort() + + + and + + + cvc5_mk_dt_sorts() + + + . +

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + typedef + + + + + + + struct + + + + + + + cvc5_dt_decl_t + + + + + + + * + + + + + + Cvc5DatatypeDecl + + + + +  + +
    +
    +
    +

    + A cvc5 datatype declaration. A datatype declaration is not itself a datatype (see Datatype), but a specification for creating a datatype sort. +

    +

    + The interface for a datatype declaration coincides with the syntax for the SMT-LIB 2.6 command + + + declare-datatype + + + , or a single datatype within the + + + declare-datatypes + + + command. +

    +

    + Datatype sorts can be constructed from a Cvc5DatatypeDecl using: +

    +
      +
    • +

      + cvc5_mk_datatype_sort() +

      +
    • +
    • +

      + cvc5_mk_datatype_sorts() +

      +
    • +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5DatatypeDecl + + + + + + + + + cvc5_dt_decl_copy + + + + + ( + + + + + Cvc5DatatypeDecl + + + + + + + + decl + + + + ) + + +  + +
    +
    +
    +

    + Make copy of datatype declaration, increases reference counter of + + + decl + + + . +

    +
    +

    + Note +

    +

    + This step is optional and allows users to manage resources in a more fine-grained manner. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + decl + + – The datatype declaration to copy. +

    +
    +
    + Returns + + : + +
    +
    +

    + The same datatype declarationwith its reference count increased by one. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + cvc5_dt_decl_release + + + + + ( + + + + + Cvc5DatatypeDecl + + + + + + + + decl + + + + ) + + +  + +
    +
    +
    +

    + Release copy of datatype declaration, decrements reference counter of + + + decl + + + . +

    +
    +

    + Note +

    +

    + This step is optional and allows users to release resources in a more fine-grained manner. Further, any API function that returns a Cvc5DatatypeDecl returns a copy that is owned by the callee of the function and thus, can be released. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + decl + + – The datatype declaration to release. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_dt_decl_is_equal + + + + + ( + + + + + Cvc5DatatypeDecl + + + + + + + + a + + + , + + + + Cvc5DatatypeDecl + + + + + + + + b + + + + ) + + +  + +
    +
    +
    +

    + Compare two datatype declarations for structural equality. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + a + + – The first datatype declaration. +

      +
    • +
    • +

      + + b + + – The second datatype declaration. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + True if the datatype declarations are equal. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + cvc5_dt_decl_add_constructor + + + + + ( + + + + + Cvc5DatatypeDecl + + + + + + + + decl + + + , + + + + Cvc5DatatypeConstructorDecl + + + + + + + + ctor + + + + ) + + +  + +
    +
    +
    +

    + Add datatype constructor declaration. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + decl + + – The datatype declaration. +

      +
    • +
    • +

      + + ctor + + – The datatype constructor declaration to add. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + size_t + + + + + + + + cvc5_dt_decl_get_num_constructors + + + + + ( + + + + + Cvc5DatatypeDecl + + + + + + + + decl + + + + ) + + +  + +
    +
    +
    +

    + Get the number of constructors for a given Datatype declaration. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + decl + + – The datatype declaration. +

    +
    +
    + Returns + + : + +
    +
    +

    + The number of constructors. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_dt_decl_is_parametric + + + + + ( + + + + + Cvc5DatatypeDecl + + + + + + + + decl + + + + ) + + +  + +
    +
    +
    +

    + Determine if a given Datatype declaration is parametric. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + decl + + – The datatype declaration. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the datatype declaration is parametric. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_dt_decl_is_resolved + + + + + ( + + + + + Cvc5DatatypeDecl + + + + + + + + decl + + + + ) + + +  + +
    +
    +
    +

    + Determine if a given datatype declaration is resolved (has already been used to declare a datatype). +

    +
    +
    + Parameters + + : + +
    +
    +

    + + decl + + – The datatype declaration. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the datatype declaration is resolved. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + + cvc5_dt_decl_to_string + + + + + ( + + + + + Cvc5DatatypeDecl + + + + + + + + decl + + + + ) + + +  + +
    +
    +
    +

    + Get a string representation of a given datatype declaration. +

    +
    +

    + Note +

    +

    + The returned char* pointer is only valid until the next call to this function. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + decl + + – The datatype declaration. +

    +
    +
    + Returns + + : + +
    +
    +

    + A string representation of the datatype declaration. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + + cvc5_dt_decl_get_name + + + + + ( + + + + + Cvc5DatatypeDecl + + + + + + + + decl + + + + ) + + +  + +
    +
    +
    +

    + Get the name of a given datatype declaration. +

    +
    +

    + Note +

    +

    + The returned char* pointer is only valid until the next call to this function. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + decl + + – The datatype declaration. +

    +
    +
    + Returns + + : + +
    +
    +

    + The name of the datatype declaration. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + size_t + + + + + + + + cvc5_dt_decl_hash + + + + + ( + + + + + Cvc5DatatypeDecl + + + + + + + + decl + + + + ) + + +  + +
    +
    +
    +

    + Compute the hash value of a datatype declaration. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The datatype declaration. +

    +
    +
    + Returns + + : + +
    +
    +

    + The hash value of the datatype declaration. +

    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5datatypeselector.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5datatypeselector.html new file mode 100644 index 0000000000..f9e79f1f38 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5datatypeselector.html @@ -0,0 +1,1425 @@ + + + + + + + + + + + Cvc5DatatypeSelector — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Cvc5DatatypeSelector + +  + +

    +

    + This struct represents a datatype selector. A + + + + Cvc5DatatypeSelector + + + + is specified via + + + cvc5_dt_cons_decl_add_selector() + + + , + + + cvc5_dt_cons_decl_add_selector_self() + + + and + + + cvc5_dt_cons_decl_add_selector_unresolved() + + + , +when constructing a datatype sort and can be retrieved from a + + + + Cvc5DatatypeConstructor + + + + via + + + + cvc5_dt_cons_get_selector() + + + + . +

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + typedef + + + + + + + struct + + + + + + + cvc5_dt_sel_t + + + + + + + * + + + + + + Cvc5DatatypeSelector + + + + +  + +
    +
    +
    +

    + A cvc5 datatype selector. +

    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5DatatypeSelector + + + + + + + + + cvc5_dt_sel_copy + + + + + ( + + + + + Cvc5DatatypeSelector + + + + + + + + sel + + + + ) + + +  + +
    +
    +
    +

    + Make copy of datatype selector, increases reference counter of + + + sel + + + . +

    +
    +

    + Note +

    +

    + This step is optional and allows users to manage resources in a more fine-grained manner. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + sel + + – The datatype selector to copy. +

    +
    +
    + Returns + + : + +
    +
    +

    + The same datatype selector with its reference count increased by one. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + cvc5_dt_sel_release + + + + + ( + + + + + Cvc5DatatypeSelector + + + + + + + + sel + + + + ) + + +  + +
    +
    +
    +

    + Release copy of datatype selector, decrements reference counter of + + + sel + + + . +

    +
    +

    + Note +

    +

    + This step is optional and allows users to release resources in a more fine-grained manner. Further, any API function that returns a Cvc5DatatypeSelector returns a copy that is owned by the callee of the function and thus, can be released. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + sel + + – The datatype selector to release. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_dt_sel_is_equal + + + + + ( + + + + + Cvc5DatatypeSelector + + + + + + + + a + + + , + + + + Cvc5DatatypeSelector + + + + + + + + b + + + + ) + + +  + +
    +
    +
    +

    + Compare two datatype selectors for structural equality. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + a + + – The first datatype selector. +

      +
    • +
    • +

      + + b + + – The second datatype selector. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + True if the datatype selectors are equal. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + + cvc5_dt_sel_get_name + + + + + ( + + + + + Cvc5DatatypeSelector + + + + + + + + sel + + + + ) + + +  + +
    +
    +
    +

    + Get the name of a given datatype selector. +

    +
    +

    + Note +

    +

    + The returned char* pointer is only valid until the next call to this function. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + sel + + – The datatype selector. +

    +
    +
    + Returns + + : + +
    +
    +

    + The name of the Datatype selector. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Term + + + + + + + + + cvc5_dt_sel_get_term + + + + + ( + + + + + Cvc5DatatypeSelector + + + + + + + + sel + + + + ) + + +  + +
    +
    +
    +

    + Get the selector term of a given datatype selector. +

    +

    + Selector terms are a class of function-like terms of selector sort ( + + + cvc5_sort_is_dt_selector() + + + ), and should be used as the first argument of Terms of kind + + + CVC5_KIND_APPLY_SELECTOR + + + . +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sel + + – The datatype selector. +

    +
    +
    + Returns + + : + +
    +
    +

    + The selector term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Term + + + + + + + + + cvc5_dt_sel_get_updater_term + + + + + ( + + + + + Cvc5DatatypeSelector + + + + + + + + sel + + + + ) + + +  + +
    +
    +
    +

    + Get the updater term of a given datatype selector. +

    +

    + Similar to selectors, updater terms are a class of function-like terms of updater Sort ( + + + cvc5_sort_is_dt_updater() + + + ), and should be used as the first argument of Terms of kind + + + CVC5_KIND_APPLY_UPDATER + + + . +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sel + + – The datatype selector. +

    +
    +
    + Returns + + : + +
    +
    +

    + The updater term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Sort + + + + + + + + + cvc5_dt_sel_get_codomain_sort + + + + + ( + + + + + Cvc5DatatypeSelector + + + + + + + + sel + + + + ) + + +  + +
    +
    +
    +

    + Get the codomain sort of a given datatype selector. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sel + + – The datatype selector. +

    +
    +
    + Returns + + : + +
    +
    +

    + The codomain sort of the selector. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + + cvc5_dt_sel_to_string + + + + + ( + + + + + Cvc5DatatypeSelector + + + + + + + + sel + + + + ) + + +  + +
    +
    +
    +

    + Get the string representation of a given datatype selector. +

    +
    +

    + Note +

    +

    + The returned char* pointer is only valid until the next call to this function. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + sel + + – The datatype selector. +

    +
    +
    + Returns + + : + +
    +
    +

    + The string representation. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + size_t + + + + + + + + cvc5_dt_sel_hash + + + + + ( + + + + + Cvc5DatatypeSelector + + + + + + + + sel + + + + ) + + +  + +
    +
    +
    +

    + Compute the hash value of a datatype selector. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The datatype selector. +

    +
    +
    + Returns + + : + +
    +
    +

    + The hash value of the datatype selector. +

    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5grammar.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5grammar.html new file mode 100644 index 0000000000..4fe97c7f97 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5grammar.html @@ -0,0 +1,1647 @@ + + + + + + + + + + + Cvc5Grammar — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Cvc5Grammar + +  + +

    +

    + This struct encapsulates a SyGuS grammar. It is created via + + + + cvc5_mk_grammar() + + + + and allows to define a context-free grammar of +terms, according to the definition of grammars in the SyGuS IF 2.1 standard. +

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + typedef + + + + + + + struct + + + + + + + cvc5_grammar_t + + + + + + + * + + + + + + Cvc5Grammar + + + + +  + +
    +
    +
    +

    + A Sygus Grammar. This can be used to define a context-free grammar of terms. Its interface coincides with the definition of grammars ( + + + GrammarDef + + + ) in the SyGuS IF 2.1 standard. +

    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + cvc5_grammar_add_rule + + + + + ( + + + + + Cvc5Grammar + + + + + + + + grammar + + + , + + + + Cvc5Term + + + + + + + + symbol + + + , + + + + Cvc5Term + + + + + + + + rule + + + + ) + + +  + +
    +
    +
    +

    + Add + + + rule + + + to the set of rules corresponding to + + + symbol + + + of a given grammar. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + grammar + + – The grammar. +

      +
    • +
    • +

      + + symbol + + – The non-terminal to which the rule is added. +

      +
    • +
    • +

      + + rule + + – The rule to add. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + cvc5_grammar_add_rules + + + + + ( + + + + + Cvc5Grammar + + + + + + + + grammar + + + , + + + + Cvc5Term + + + + + + + + symbol + + + , + + + size_t + + + + + + + size + + + , + + + const + + + + + + + + Cvc5Term + + + + + + + + rules + + + + + [ + + + + + ] + + + + ) + + +  + +
    +
    +
    +

    + Add + + + rules + + + to the set of rules corresponding to + + + symbol + + + of a given grammar. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + grammar + + – The grammar. +

      +
    • +
    • +

      + + symbol + + – The non-terminal to which the rules are added. +

      +
    • +
    • +

      + + size + + – The number of rules to add. +

      +
    • +
    • +

      + + rules + + – The rules to add. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + cvc5_grammar_add_any_constant + + + + + ( + + + + + Cvc5Grammar + + + + + + + + grammar + + + , + + + + Cvc5Term + + + + + + + + symbol + + + + ) + + +  + +
    +
    +
    +

    + Allow + + + symbol + + + to be an arbitrary constant of a given grammar. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + grammar + + – The grammar. +

      +
    • +
    • +

      + + symbol + + – The non-terminal allowed to be any constant. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + cvc5_grammar_add_any_variable + + + + + ( + + + + + Cvc5Grammar + + + + + + + + grammar + + + , + + + + Cvc5Term + + + + + + + + symbol + + + + ) + + +  + +
    +
    +
    +

    + Allow + + + symbol + + + to be any input variable of a given grammar to corresponding synth-fun/synth-inv with the same sort as + + + symbol + + + . +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + grammar + + – The grammar. +

      +
    • +
    • +

      + + symbol + + – The non-terminal allowed to be any input variable. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + + cvc5_grammar_to_string + + + + + ( + + + + const + + + + + + + + Cvc5Grammar + + + + + + + + grammar + + + + ) + + +  + +
    +
    +
    +

    + Get a string representation of a given grammar. +

    +
    +

    + Note +

    +

    + The returned char* pointer is only valid until the next call to this function. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + grammar + + – The grammar. +

    +
    +
    + Returns + + : + +
    +
    +

    + A string representation of the grammar. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_grammar_is_equal + + + + + ( + + + + + Cvc5Grammar + + + + + + + + a + + + , + + + + Cvc5Grammar + + + + + + + + b + + + + ) + + +  + +
    +
    +
    +

    + Compare two grammars for referential equality. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + a + + – The first grammar. +

      +
    • +
    • +

      + + b + + – The second grammar. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + True if both grammar pointers point to the same internal grammar object. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_grammar_is_disequal + + + + + ( + + + + + Cvc5Grammar + + + + + + + + a + + + , + + + + Cvc5Grammar + + + + + + + + b + + + + ) + + +  + +
    +
    +
    +

    + Compare two grammars for referential disequality. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + a + + – The first grammar. +

      +
    • +
    • +

      + + b + + – The second grammar. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + True if both grammar pointers point to different internal grammar objects. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + size_t + + + + + + + + cvc5_grammar_hash + + + + + ( + + + + + Cvc5Grammar + + + + + + + + grammar + + + + ) + + +  + +
    +
    +
    +

    + Compute the hash value of a grammar. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + grammar + + – The grammar. +

    +
    +
    + Returns + + : + +
    +
    +

    + The hash value of the grammar. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Grammar + + + + + + + + + cvc5_grammar_copy + + + + + ( + + + + + Cvc5Grammar + + + + + + + + grammar + + + + ) + + +  + +
    +
    +
    +

    + Make copy of grammar, increases reference counter of + + + grammar + + + . +

    +
    +

    + Note +

    +

    + This step is optional and allows users to manage resources in a more fine-grained manner. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + grammar + + – The grammar to copy. +

    +
    +
    + Returns + + : + +
    +
    +

    + The same grammar with its reference count increased by one. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + cvc5_grammar_release + + + + + ( + + + + + Cvc5Grammar + + + + + + + + grammar + + + + ) + + +  + +
    +
    +
    +

    + Release copy of grammar, decrements reference counter of + + + grammar + + + . +

    +
    +

    + Note +

    +

    + This step is optional and allows users to release resources in a more fine-grained manner. Further, any API function that returns a copy that is owned by the callee of the function and thus, can be released. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + grammar + + – The grammar to release. +

    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5inputparser.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5inputparser.html new file mode 100644 index 0000000000..23085328a8 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5inputparser.html @@ -0,0 +1,607 @@ + + + + + + + + + + + Cvc5InputParser — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Cvc5InputParser + +  + +

    +

    + This struct is the main interface for retrieving + + + + commands + + + + and + + + + expressions + + + + from an input. +

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + typedef + + + + + + + struct + + + + + + + + Cvc5InputParser + + + + + + + + + Cvc5InputParser + + + + +  + +
    +
    +
    +

    + This struct is the main interface for retrieving commands and expressions from an input using a parser. +

    +

    + After construction, it is expected that an input is first configure via, e.g., + + + cvc5_parser_set_file_input() + + + , + + + cvc5_parser_set_str_input() + + + or + + + cvc5_parser_set_inc_str_input() + + + and + + + cvc5_parser_append_inc_str_input() + + + . Then, functions + + + cvc5_parser_next_command() + + + and + + + cvc5_parser_next_term() + + + can be invoked to parse the input. +

    +

    + The input parser interacts with a symbol manager, which determines which symbols are defined in the current context, based on the background logic and user-defined symbols. If no symbol manager is provided, then the input parser will construct (an initially empty) one. +

    +

    + If provided, the symbol manager must have a logic that is compatible with the provided solver. That is, if both the solver and symbol manager have their logics set ( + + + cvc5_sm_is_logic_set() + + + and + + + + + cvc5_is_logic_set() + + + + + ), then their logics must be the same. +

    +

    + Upon setting an input source, if either the solver (resp. symbol manager) has its logic set, then the symbol manager (resp. solver) is set to use that logic, if its logic is not already set. +

    +
    +
    +
    +
    +

    + Warning +

    +

    + doxygengroup: Cannot find group “c_cvc5inputparser” in doxygen xml output for project “cvc5_c” from directory: /home/runner/work/cvc5/cvc5/build-shared/docs/api/c/doxygen/xml +

    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5op.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5op.html new file mode 100644 index 0000000000..c108463b73 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5op.html @@ -0,0 +1,1591 @@ + + + + + + + + + + + Cvc5Op — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Cvc5Op + +  + +

    +

    + The + + + + Cvc5Op + + + + struct represents a cvc5 operator, instantiated with +the parameters it requires (if any). +

    +

    + A + + + + Cvc5Term + + + + of operator kind that does not require additional +parameters, e.g., + + + + CVC5_KIND_ADD + + + + , is usually constructed via + + + Cvc5Term + + + cvc5_mk_term(Cvc5TermManager* + + + tm, + + + Cvc5Kind + + + kind, + + + size_t + + + size, + + + const + + + Cvc5Term + + + args[])() + + + . +Alternatively, any + + + + Cvc5Term + + + + can be constructed via first +instantiating a corresponding + + + + Cvc5Op + + + + , even if the operator does +not require additional parameters. +Terms with operators that require additional parameters, e.g., + + + + CVC5_KIND_BITVECTOR_EXTRACT + + + + , must be created via + + + + cvc5_mk_op() + + + + (or + + + + cvc5_mk_op_from_str() + + + + ) and + + + cvc5_mk_term_from_op() + + + . +

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + typedef + + + + + + + struct + + + + + + + cvc5_op_t + + + + + + + * + + + + + + Cvc5Op + + + + +  + +
    +
    +
    +

    + A cvc5 operator. +

    +

    + An operator is a term that represents certain operators, instantiated with its required parameters, e.g., a Term of kind + + + CVC5_KIND_BITVECTOR_EXTRACT + + + . +

    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Op + + + + + + + + + cvc5_op_copy + + + + + ( + + + + + Cvc5Op + + + + + + + + op + + + + ) + + +  + +
    +
    +
    +

    + Make copy of operator, increases reference counter of + + + op + + + . +

    +
    +

    + Note +

    +

    + This step is optional and allows users to manage resources in a more fine-grained manner. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + op + + – The op to copy. +

    +
    +
    + Returns + + : + +
    +
    +

    + The same op with its reference count increased by one. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + cvc5_op_release + + + + + ( + + + + + Cvc5Op + + + + + + + + op + + + + ) + + +  + +
    +
    +
    +

    + Release copy of operator, decrements reference counter of + + + op + + + . +

    +
    +

    + Note +

    +

    + This step is optional and allows users to release resources in a more fine-grained manner. Further, any API function that returns a Cvc5Op returns a copy that is owned by the callee of the function and thus, can be released. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + op + + – The op to release. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_op_is_equal + + + + + ( + + + + + Cvc5Op + + + + + + + + a + + + , + + + + Cvc5Op + + + + + + + + b + + + + ) + + +  + +
    +
    +
    +

    + Compare two operators for syntactic equality. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + a + + – The first operator. +

      +
    • +
    • +

      + + b + + – The second operator. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + True if both operators are syntactically identical. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_op_is_disequal + + + + + ( + + + + + Cvc5Op + + + + + + + + a + + + , + + + + Cvc5Op + + + + + + + + b + + + + ) + + +  + +
    +
    +
    +

    + Compare two operators for syntactic disequality. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + a + + – The first operator. +

      +
    • +
    • +

      + + b + + – The second operator. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + True if both operators are syntactically disequal. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Kind + + + + + + + + + cvc5_op_get_kind + + + + + ( + + + + + Cvc5Op + + + + + + + + op + + + + ) + + +  + +
    +
    +
    +

    + Get the kind of a given operator. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + op + + – The operator. +

    +
    +
    + Returns + + : + +
    +
    +

    + The kind of the operator. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_op_is_indexed + + + + + ( + + + + + Cvc5Op + + + + + + + + op + + + + ) + + +  + +
    +
    +
    +

    + Determine if a given operator is indexed. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + op + + – The operator. +

    +
    +
    + Returns + + : + +
    +
    +

    + True iff the operator is indexed. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + size_t + + + + + + + + cvc5_op_get_num_indices + + + + + ( + + + + + Cvc5Op + + + + + + + + op + + + + ) + + +  + +
    +
    +
    +

    + Get the number of indices of a given operator. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + op + + – The operator. +

    +
    +
    + Returns + + : + +
    +
    +

    + The number of indices of the operator. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Term + + + + + + + + + cvc5_op_get_index + + + + + ( + + + + + Cvc5Op + + + + + + + + op + + + , + + + size_t + + + + + + + i + + + + ) + + +  + +
    +
    +
    +

    + Get the index at position + + + i + + + of an indexed operator. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + op + + – The operator. +

      +
    • +
    • +

      + + i + + – The position of the index to return. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The index at position i. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + + cvc5_op_to_string + + + + + ( + + + + + Cvc5Op + + + + + + + + op + + + + ) + + +  + +
    +
    +
    +

    + Get a string representation of a given operator. +

    +
    +

    + Note +

    +

    + The returned char* pointer is only valid until the next call to this function. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + op + + – The operator. +

    +
    +
    + Returns + + : + +
    +
    +

    + A string representation of the operator. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + size_t + + + + + + + + cvc5_op_hash + + + + + ( + + + + + Cvc5Op + + + + + + + + op + + + + ) + + +  + +
    +
    +
    +

    + Compute the hash value of an operator. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + op + + – The operator. +

    +
    +
    + Returns + + : + +
    +
    +

    + The hash value of the operator. +

    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5proof.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5proof.html new file mode 100644 index 0000000000..9ea27b8684 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5proof.html @@ -0,0 +1,1549 @@ + + + + + + + + + + + Cvc5Proof — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Cvc5Proof + +  + +

    +

    + This struct encapsulates a cvc5 proof object, which can be retrieved via +function + + + + cvc5_get_proof() + + + + after a + + + + cvc5_check_sat() + + + + query returns an + + unsat + + result. +

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + typedef + + + + + + + struct + + + + + + + cvc5_proof_t + + + + + + + * + + + + + + Cvc5Proof + + + + +  + +
    +
    +
    +

    + A cvc5 proof. +

    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5ProofRule + + + + + + + + + cvc5_proof_get_rule + + + + + ( + + + + + Cvc5Proof + + + + + + + + proof + + + + ) + + +  + +
    +
    +
    +

    + Get the proof rule used by the root step of a given proof. +

    +
    +
    + Returns + + : + +
    +
    +

    + The proof rule. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5ProofRewriteRule + + + + + + + + + cvc5_proof_get_rewrite_rule + + + + + ( + + + + + Cvc5Proof + + + + + + + + proof + + + + ) + + +  + +
    +
    +
    +

    + Get the proof rewrite rule used by the root step of the proof. +

    +

    + Requires that + + + + + cvc5_proof_get_rule() + + + + + does not return + + + CVC5_PROOF_RULE_DSL_REWRITE + + + or + + + CVC5_PROOF_RULE_THEORY_REWRITE + + + . +

    +
    +
    + Parameters + + : + +
    +
    +

    + + proof + + – The proof. +

    +
    +
    + Returns + + : + +
    +
    +

    + The proof rewrite rule. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Term + + + + + + + + + cvc5_proof_get_result + + + + + ( + + + + + Cvc5Proof + + + + + + + + proof + + + + ) + + +  + +
    +
    +
    +

    + Get the conclusion of the root step of a given proof. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + proof + + – The proof. +

    +
    +
    + Returns + + : + +
    +
    +

    + The conclusion term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + + Cvc5Proof + + + + + + + + * + + + + + + cvc5_proof_get_children + + + + + ( + + + + + Cvc5Proof + + + + + + + + proof + + + , + + + size_t + + + + + + + * + + + + + size + + + + ) + + +  + +
    +
    +
    +

    + Get the premises of the root step of a given proof. +

    +
    +

    + Note +

    +

    + The returned Cvc5Proof array pointer is only valid until the next call to this function. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + proof + + – The proof. +

      +
    • +
    • +

      + + size + + – Output parameter to store the number of resulting premise proofs. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The premise proofs. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + + Cvc5Term + + + + + + + + * + + + + + + cvc5_proof_get_arguments + + + + + ( + + + + + Cvc5Proof + + + + + + + + proof + + + , + + + size_t + + + + + + + * + + + + + size + + + + ) + + +  + +
    +
    +
    +

    + Get the arguments of the root step of a given proof. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + proof + + – The proof. +

      +
    • +
    • +

      + + size + + – Output parameter to store the number of resulting argument terms. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The argument terms. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_proof_is_equal + + + + + ( + + + + + Cvc5Proof + + + + + + + + a + + + , + + + + Cvc5Proof + + + + + + + + b + + + + ) + + +  + +
    +
    +
    +

    + Compare two proofs for referential equality. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + a + + – The first proof. +

      +
    • +
    • +

      + + b + + – The second proof. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + True if both proof pointers point to the same internal proof object. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_proof_is_disequal + + + + + ( + + + + + Cvc5Proof + + + + + + + + a + + + , + + + + Cvc5Proof + + + + + + + + b + + + + ) + + +  + +
    +
    +
    +

    + Compare two proofs for referential disequality. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + a + + – The first proof. +

      +
    • +
    • +

      + + b + + – The second proof. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + True if both proof pointers point to different internal proof objects. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + size_t + + + + + + + + cvc5_proof_hash + + + + + ( + + + + + Cvc5Proof + + + + + + + + proof + + + + ) + + +  + +
    +
    +
    +

    + Compute the hash value of a proof. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + proof + + – The proof. +

    +
    +
    + Returns + + : + +
    +
    +

    + The hash value of the proof. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Proof + + + + + + + + + cvc5_proof_copy + + + + + ( + + + + + Cvc5Proof + + + + + + + + proof + + + + ) + + +  + +
    +
    +
    +

    + Make copy of proof, increases reference counter of + + + proof + + + . +

    +
    +

    + Note +

    +

    + This step is optional and allows users to manage resources in a more fine-grained manner. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + proof + + – The proof to copy. +

    +
    +
    + Returns + + : + +
    +
    +

    + The same proof with its reference count increased by one. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + cvc5_proof_release + + + + + ( + + + + + Cvc5Proof + + + + + + + + proof + + + + ) + + +  + +
    +
    +
    +

    + Release copy of proof, decrements reference counter of + + + proof + + + . +

    +
    +

    + Note +

    +

    + This step is optional and allows users to release resources in a more fine-grained manner. Further, any API function that returns a copy that is owned by the callee of the function and thus, can be released. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + proof + + – The proof to release. +

    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5result.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5result.html new file mode 100644 index 0000000000..c6ffbb91ec --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5result.html @@ -0,0 +1,1677 @@ + + + + + + + + + + + Cvc5Result — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Cvc5Result + +  + +

    +

    + This class represents a + + + + Cvc5 + + + + result. +

    +

    + A + + + + Cvc5Result + + + + encapsulates a 3-valued solver result (sat, unsat, +unknown). Explanations for unknown results are represented as enum class + + + + Cvc5UnknownExplanation + + + + and can be queried via + + + + cvc5_result_get_unknown_explanation() + + + + . +

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + typedef + + + + + + + struct + + + + + + + cvc5_result_t + + + + + + + * + + + + + + Cvc5Result + + + + +  + +
    +
    +
    +

    + Encapsulation of a three-valued solver result, with explanations. +

    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Result + + + + + + + + + cvc5_result_copy + + + + + ( + + + + + Cvc5Result + + + + + + + + result + + + + ) + + +  + +
    +
    +
    +

    + Make copy of result, increases reference counter of + + + result + + + . +

    +
    +

    + Note +

    +

    + This step is optional and allows users to manage resources in a more fine-grained manner. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + result + + – The result to copy. +

    +
    +
    + Returns + + : + +
    +
    +

    + The same result with its reference count increased by one. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + cvc5_result_release + + + + + ( + + + + + Cvc5Result + + + + + + + + result + + + + ) + + +  + +
    +
    +
    +

    + Release copy of result, decrements reference counter of + + + result + + + . +

    +
    +

    + Note +

    +

    + This step is optional and allows users to release resources in a more fine-grained manner. Further, any API function that returns a copy that is owned by the callee of the function and thus, can be released. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + result + + – The result to release. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_result_is_null + + + + + ( + + + + const + + + + + + + + Cvc5Result + + + + + + + + result + + + + ) + + +  + +
    +
    +
    +

    + Determine if a given result is empty (a nullary result) and not an actual result returned from a + + + + + cvc5_check_sat() + + + + + (and friends) query. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + result + + – The result. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the given result is a nullary result. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_result_is_sat + + + + + ( + + + + const + + + + + + + + Cvc5Result + + + + + + + + result + + + + ) + + +  + +
    +
    +
    +

    + Determine if given result is from a satisfiable + + + + + cvc5_check_sat() + + + + + or cvc5_check_sat_ssuming() query. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + result + + – The result. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if result is from a satisfiable query. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_result_is_unsat + + + + + ( + + + + const + + + + + + + + Cvc5Result + + + + + + + + result + + + + ) + + +  + +
    +
    +
    +

    + Determine if given result is from an unsatisfiable + + + + + cvc5_check_sat() + + + + + or + + + cvc5_check_sat_assuming() + + + query. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + result + + – The result. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if result is from an unsatisfiable query. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_result_is_unknown + + + + + ( + + + + const + + + + + + + + Cvc5Result + + + + + + + + result + + + + ) + + +  + +
    +
    +
    +

    + Determine if given result is from a + + + + + cvc5_check_sat() + + + + + or + + + cvc5_check_sat_assuming() + + + query and cvc5 was not able to determine (un)satisfiability. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + result + + – The result. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if result is from a query where cvc5 was not able to determine (un)satisfiability. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_result_is_equal + + + + + ( + + + + const + + + + + + + + Cvc5Result + + + + + + + + a + + + , + + + const + + + + + + + + Cvc5Result + + + + + + + + b + + + + ) + + +  + +
    +
    +
    +

    + Determine equality of two results. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + a + + – The first result to compare to for equality. +

      +
    • +
    • +

      + + b + + – The second result to compare to for equality. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + True if the results are equal. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_result_is_disequal + + + + + ( + + + + const + + + + + + + + Cvc5Result + + + + + + + + a + + + , + + + const + + + + + + + + Cvc5Result + + + + + + + + b + + + + ) + + +  + +
    +
    +
    +

    + Operator overloading for disequality of two results. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + a + + – The first result to compare to for disequality. +

      +
    • +
    • +

      + + b + + – The second result to compare to for disequality. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + True if the results are disequal. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5UnknownExplanation + + + + + + + + + cvc5_result_get_unknown_explanation + + + + + ( + + + + const + + + + + + + + Cvc5Result + + + + + + + + result + + + + ) + + +  + +
    +
    +
    +

    + Get the explanation for an unknown result. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + result + + – The result. +

    +
    +
    + Returns + + : + +
    +
    +

    + An explanation for an unknown query result. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + + cvc5_result_to_string + + + + + ( + + + + const + + + + + + + + Cvc5Result + + + + + + + + result + + + + ) + + +  + +
    +
    +
    +

    + Get the string representation of a given result. +

    +
    +

    + Note +

    +

    + The returned char* pointer is only valid until the next call to this function. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + result + + – The result. +

    +
    +
    + Returns + + : + +
    +
    +

    + The string representation. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + size_t + + + + + + + + cvc5_result_hash + + + + + ( + + + + + Cvc5Result + + + + + + + + result + + + + ) + + +  + +
    +
    +
    +

    + Compute the hash value of a result. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + result + + – The result. +

    +
    +
    + Returns + + : + +
    +
    +

    + The hash value of the result. +

    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5sort.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5sort.html new file mode 100644 index 0000000000..27eba53a2c --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5sort.html @@ -0,0 +1,7131 @@ + + + + + + + + + + + Cvc5Sort — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Cvc5Sort + +  + +

    +

    + The + + + + Cvc5Sort + + + + struct represents the sort of a + + + + Cvc5Term + + + + . +Its kind is represented as enum + + + + Cvc5SortKind + + + + . +

    +

    + A + + + + Cvc5Sort + + + + can be hashed (using + + + + cvc5_sort_hash() + + + + ) +represented as a string (via + + + + cvc5_sort_to_string() + + + + ). +

    +

    + + + + Cvc5Sort + + + + instances are created via factory functions associated +with a + + + + Cvc5TermManager + + + + instance, e.g., + + + cvc5_get_boolean_sort() + + + for the Boolean sort and + + + cvc5_mk_bv_sort() + + + for bit-vector sorts. +

    +

    + Sorts are defined as standardized in the SMT-LIB standard for standardized +theories. Additionally, we introduce the following sorts for non-standardized +theories: +

    + +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + typedef + + + + + + + struct + + + + + + + cvc5_sort_t + + + + + + + * + + + + + + Cvc5Sort + + + + +  + +
    +
    +
    +

    + The sort of a cvc5 term. +

    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Sort + + + + + + + + + cvc5_sort_copy + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Make copy of sort, increases reference counter of + + + sort + + + . +

    +
    +

    + Note +

    +

    + This step is optional and allows users to manage resources in a more fine-grained manner. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort to copy. +

    +
    +
    + Returns + + : + +
    +
    +

    + The same sort with its reference count increased by one. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + cvc5_sort_release + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Release copy of sort, decrements reference counter of + + + sort + + + . +

    +
    +

    + Note +

    +

    + This step is optional and allows users to release resources in a more fine-grained manner. Further, any API function that returns a Cvc5Sort returns a copy that is owned by the callee of the function and thus, can be released. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort to release. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_sort_is_equal + + + + + ( + + + + + Cvc5Sort + + + + + + + + a + + + , + + + + Cvc5Sort + + + + + + + + b + + + + ) + + +  + +
    +
    +
    +

    + Compare two sorts for structural equality. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + a + + – The first sort. +

      +
    • +
    • +

      + + b + + – The second sort. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + True if the sorts are equal. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_sort_is_disequal + + + + + ( + + + + + Cvc5Sort + + + + + + + + a + + + , + + + + Cvc5Sort + + + + + + + + b + + + + ) + + +  + +
    +
    +
    +

    + Compare two sorts for structural disequality. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + a + + – The first sort. +

      +
    • +
    • +

      + + b + + – The second sort. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + True if the sorts are not equal. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + int64_t + + + + + + + + cvc5_sort_compare + + + + + ( + + + + + Cvc5Sort + + + + + + + + a + + + , + + + + Cvc5Sort + + + + + + + + b + + + + ) + + +  + +
    +
    +
    +

    + Compare two sorts for ordering. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + a + + – The first sort. +

      +
    • +
    • +

      + + b + + – The second sort. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + An integer value indicating the ordering: 0 if both sorts are equal, + + + -1 + + + if + + + a + + + < + + + b + + + , and + + + 1 + + + if + + + b + + + > + + + a + + + . +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5SortKind + + + + + + + + + cvc5_sort_get_kind + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Get the kind of the given sort. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + The kind of the sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_sort_has_symbol + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Determine if the given sort has a symbol (a name). +

    +

    + For example, uninterpreted sorts and uninterpreted sort constructors have symbols. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the sort has a symbol. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + + cvc5_sort_get_symbol + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Get the symbol of this Sort. +

    +

    + The symbol of this sort is the string that was provided when constructing it via cvc5_mk_uninterpreted_sort(), cvc5_mk_unresolved_sort(), or cvc5_mk_uninterpreted_sort_constructor_sort(). +

    +
    +

    + Note +

    +

    + Asserts + + + cvc5_sort_has_symbol() + + + . +

    +
    +
    +

    + Note +

    +

    + The returned char* pointer is only valid until the next call to this function. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + The raw symbol of the sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_sort_is_boolean + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Determine if given sort is the Boolean sort (SMT-LIB: + + + Bool + + + ). +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if given sort is the Boolean sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_sort_is_integer + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Determine if given sort is the integer sort (SMT-LIB: + + + Int + + + ). +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if given sort is the integer sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_sort_is_real + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Determine if given sort is the real sort (SMT-LIB: + + + Real + + + ). +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if given sort is the real sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_sort_is_string + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Determine if given sort is the string sort (SMT-LIB: + + + String + + + ). +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if given sort is the string sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_sort_is_regexp + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Determine if given sort is the regular expression sort (SMT-LIB: + + + RegLan + + + ). +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if given sort is the regular expression sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_sort_is_rm + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Determine if given sort is the rounding mode sort (SMT-LIB: + + + Cvc5RoundingMode + + + ). +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if given sort is the rounding mode sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_sort_is_bv + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Determine if given sort is a bit-vector sort (SMT-LIB: + + + (_ + + + BitVec + + + i) + + + ). +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if given sort is a bit-vector sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_sort_is_fp + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Determine if given sort is a floatingpoint sort (SMT-LIB: + + + (_ + + + FloatingPoint + + + eb + + + sb) + + + ). +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if given sort is a floating-point sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_sort_is_dt + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Determine if given sort is a datatype sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if given sort is a datatype sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_sort_is_dt_constructor + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Determine if given sort is a datatype constructor sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if given sort is a datatype constructor sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_sort_is_dt_selector + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Determine if given sort is a datatype selector sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if given sort is a datatype selector sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_sort_is_dt_tester + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Determine if given sort is a datatype tester sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if given sort is a datatype tester sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_sort_is_dt_updater + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Determine if given sort is a datatype updater sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if given sort is a datatype updater sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_sort_is_fun + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Determine if given sort is a function sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if given sort is a function sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_sort_is_predicate + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Determine if given sort is a predicate sort. +

    +

    + A predicate sort is a function sort that maps to the Boolean sort. All predicate sorts are also function sorts. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if given sort is a predicate sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_sort_is_tuple + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Determine if given sort is a tuple sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if given sort is a tuple sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_sort_is_nullable + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Determine if given sort is a nullable sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if given sort is a nullable sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_sort_is_record + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Determine if given sort is a record sort. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the sort is a record sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_sort_is_array + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Determine if given sort is an array sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the sort is an array sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_sort_is_ff + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Determine if given sort is a finite field sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the sort is a finite field sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_sort_is_set + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Determine if given sort is a Set sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the sort is a Set sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_sort_is_bag + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Determine if given sort is a Bag sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the sort is a Bag sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_sort_is_sequence + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Determine if given sort is a Sequence sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the sort is a Sequence sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_sort_is_abstract + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Determine if given sort is an abstract sort. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the sort is a abstract sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_sort_is_uninterpreted_sort + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Determine if given sort is an uninterpreted sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if given sort is an uninterpreted sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_sort_is_uninterpreted_sort_constructor + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Determine if given sort is an uninterpreted sort constructor. +

    +

    + An uninterpreted sort constructor has arity > 0 and can be instantiated to construct uninterpreted sorts with given sort parameters. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if given sort is of sort constructor kind. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_sort_is_instantiated + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Determine if given sort is an instantiated (parametric datatype or uninterpreted sort constructor) sort. +

    +

    + An instantiated sort is a sort that has been constructed from instantiating a sort with sort arguments (see + + + cvc5_sort_instantiate() + + + . +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if given sort is an instantiated sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Sort + + + + + + + + + cvc5_sort_get_uninterpreted_sort_constructor + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Get the associated uninterpreted sort constructor of an instantiated uninterpreted sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + The uninterpreted sort constructor sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Datatype + + + + + + + + + cvc5_sort_get_datatype + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Get the underlying datatype of a datatype sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + The underlying datatype of a datatype sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Sort + + + + + + + + + cvc5_sort_instantiate + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + , + + + size_t + + + + + + + size + + + , + + + const + + + + + + + + Cvc5Sort + + + + + + + + params + + + + + [ + + + + + ] + + + + ) + + +  + +
    +
    +
    +

    + Instantiate a parameterized datatype sort or uninterpreted sort constructor sort. +

    +

    + Create sort parameters with cvc5_mk_param_sort(). +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + sort + + – The sort to instantiate. +

      +
    • +
    • +

      + + size + + – The number of sort parameters to instantiate with. +

      +
    • +
    • +

      + + params + + – The list of sort parameters to instantiate with. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The instantiated sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + + Cvc5Sort + + + + + + + + * + + + + + + cvc5_sort_get_instantiated_parameters + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + , + + + size_t + + + + + + + * + + + + + size + + + + ) + + +  + +
    +
    +
    +

    + Get the sorts used to instantiate the sort parameters of a given parametric sort (parametric datatype or uninterpreted sort constructor sort, see + + + cvc5_sort_instantiate() + + + ; +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + sort + + – The sort. +

      +
    • +
    • +

      + + size + + – The size of the resulting array of sorts. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The sorts used to instantiate the sort parameters of a parametric sort +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Sort + + + + + + + + + cvc5_sort_substitute + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + , + + + + Cvc5Sort + + + + + + + + s + + + , + + + + Cvc5Sort + + + + + + + + replacement + + + + ) + + +  + +
    +
    +
    +

    + Substitution of Sorts. +

    +

    + Note that this replacement is applied during a pre-order traversal and only once to the sort. It is not run until fix point. +

    +

    + For example, + + + (Array + + + A + + + B).substitute({A, + + + C}, + + + {(Array + + + C + + + D), + + + (Array + + + A + + + B)}) + + + will return + + + (Array + + + (Array + + + C + + + D) + + + B) + + + . +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + sort + + – The sort. +

      +
    • +
    • +

      + + s + + – The subsort to be substituted within the given sort. +

      +
    • +
    • +

      + + replacement + + – The sort replacing the substituted subsort. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Sort + + + + + + + + + cvc5_sort_substitute_sorts + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + , + + + size_t + + + + + + + size + + + , + + + const + + + + + + + + Cvc5Sort + + + + + + + + sorts + + + + + [ + + + + + ] + + + , + + + const + + + + + + + + Cvc5Sort + + + + + + + + replacements + + + + + [ + + + + + ] + + + + ) + + +  + +
    +
    +
    +

    + Simultaneous substitution of Sorts. +

    +

    + Note that this replacement is applied during a pre-order traversal and only once to the sort. It is not run until fix point. In the case that sorts contains duplicates, the replacement earliest in the vector takes priority. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + sort + + – The sort. +

      +
    • +
    • +

      + + sorts + + – The subsorts to be substituted within the given sort. +

      +
    • +
    • +

      + + replacements + + – The sort replacing the substituted subsorts. +

      +
    • +
    • +

      + + size + + – The size of + + + sorts + + + and + + + replacements + + + . +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + + cvc5_sort_to_string + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Get a string representation of a given sort. +

    +
    +

    + Note +

    +

    + The returned char* pointer is only valid until the next call to this function. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + A string representation of the given sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + size_t + + + + + + + + cvc5_sort_hash + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Compute the hash value of a sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + The hash value of the sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + size_t + + + + + + + + cvc5_sort_dt_constructor_get_arity + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Get the arity of a datatype constructor sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + The arity of a datatype constructor sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + + Cvc5Sort + + + + + + + + * + + + + + + cvc5_sort_dt_constructor_get_domain + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + , + + + size_t + + + + + + + * + + + + + size + + + + ) + + +  + +
    +
    +
    +

    + Get the domain sorts of a datatype constructor sort. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + sort + + – The sort. +

      +
    • +
    • +

      + + size + + – The size of the resulting array of domain sorts. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The domain sorts of a datatype constructor sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Sort + + + + + + + + + cvc5_sort_dt_constructor_get_codomain + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Get the codomain sort of a datatype constructor sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + The codomain sort of a constructor sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Sort + + + + + + + + + cvc5_sort_dt_selector_get_domain + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Get the domain sort of a given datatype selector sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + The domain sort of a datatype selector sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Sort + + + + + + + + + cvc5_sort_dt_selector_get_codomain + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Get the codomain sort of a given datatype selector sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + The codomain sort of a datatype selector sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Sort + + + + + + + + + cvc5_sort_dt_tester_get_domain + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Get the domain sort of a given datatype tester sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + The domain sort of a datatype tester sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Sort + + + + + + + + + cvc5_sort_dt_tester_get_codomain + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Get the codomain dort of a given datatype tester sort (the Boolean sort). +

    +
    +

    + Note +

    +

    + We mainly need this for the symbol table, which doesn’t have access to the solver object. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + The codomain sort of a datatype tester sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + size_t + + + + + + + + cvc5_sort_fun_get_arity + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Get the aritye of a given function sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + The arity of a function sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + + Cvc5Sort + + + + + + + + * + + + + + + cvc5_sort_fun_get_domain + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + , + + + size_t + + + + + + + * + + + + + size + + + + ) + + +  + +
    +
    +
    +

    + Get the domain of a given function sort. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + sort + + – The sort. +

      +
    • +
    • +

      + + size + + – The size of the resulting array of domain sorts. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The domain sorts of a function sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Sort + + + + + + + + + cvc5_sort_fun_get_codomain + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Get the codomain of a given function sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + The codomain sort of a function sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Sort + + + + + + + + + cvc5_sort_array_get_index_sort + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Get the index sort of a given array sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + The array index sort of an array sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Sort + + + + + + + + + cvc5_sort_array_get_element_sort + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Get the element sort of a given array sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + The array element sort of an array sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Sort + + + + + + + + + cvc5_sort_set_get_element_sort + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Get the element sort of a given set sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + The element sort of a set sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Sort + + + + + + + + + cvc5_sort_bag_get_element_sort + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Get the element sort of a given bag sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + The element sort of a bag sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Sort + + + + + + + + + cvc5_sort_sequence_get_element_sort + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Get the element sort of a sequence sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + The element sort of a sequence sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5SortKind + + + + + + + + + cvc5_sort_abstract_get_kind + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Get the kind of an abstract sort, which denotes the sort kinds that the abstract sort denotes. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + The kind of an abstract sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + size_t + + + + + + + + cvc5_sort_uninterpreted_sort_constructor_get_arity + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Get the arity of an uninterpreted sort constructor sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + The arity of an uninterpreted sort constructor sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + uint32_t + + + + + + + + cvc5_sort_bv_get_size + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Get the size of a bit-vector sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + The bit-width of the bit-vector sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + + cvc5_sort_ff_get_size + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Get the size of a finite field sort. +

    +
    +

    + Note +

    +

    + The returned char* pointer is only valid until the next call to this function. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + The size of the finite field sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + uint32_t + + + + + + + + cvc5_sort_fp_get_exp_size + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Get the exponent size of a floating-point sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + The bit-width of the exponent of the floating-point sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + uint32_t + + + + + + + + cvc5_sort_fp_get_sig_size + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Get the significand size of a floating-point sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + The width of the significand of the floating-point sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + size_t + + + + + + + + cvc5_sort_dt_get_arity + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Get the arity of a datatype sort, which is the number of type parameters if the datatype is parametric, or 0 otherwise. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + The arity of a datatype sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + size_t + + + + + + + + cvc5_sort_tuple_get_length + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Get the length of a tuple sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + The length of a tuple sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + + Cvc5Sort + + + + + + + + * + + + + + + cvc5_sort_tuple_get_element_sorts + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + , + + + size_t + + + + + + + * + + + + + size + + + + ) + + +  + +
    +
    +
    +

    + Get the element sorts of a tuple sort. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + sort + + – The sort. +

      +
    • +
    • +

      + + size + + – The size of the resulting array of tuple element sorts. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The element sorts of a tuple sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Sort + + + + + + + + + cvc5_sort_nullable_get_element_sort + + + + + ( + + + + + Cvc5Sort + + + + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Get the element sort of a nullable sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + The element sort of a nullable sort. +

    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5statistics.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5statistics.html new file mode 100644 index 0000000000..bf13b9da13 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5statistics.html @@ -0,0 +1,1742 @@ + + + + + + + + + + + Cvc5Statistics — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Cvc5Statistics + +  + +

    +

    + See + + + Statistics + + + for general information on statistics in cvc5. +

    +

    + Struct + + + + cvc5::Statistics + + + + represents a mapping from statistic names +to statistic values, which are represented by struct + + + + Cvc5Stat + + + + . A + + + + Cvc5Stat + + + + may hold values of different +types ( + + + bool + + + , + + + int64_t + + + , + + + uint64_t + + + , + + + double + + + , + + + const + + + char* + + + and +histograms) and can be inspected by identifying the type via functions + + + cvc5_stat_is_<type> + + + and obtaining +the actual value via functions + + + cvc5_stat_get_<type> + + + . +Histograms are represented as a paar of arrays ( + + + const + + + char** + + + keys[] + + + and + + + uint64_t* + + + values[] + + + ) where the key is the string representation of one +enumeration value and the value is the frequency of this particular value. +

    +

    + A statistics iterator can be initialized via + + + cvc5_stats_iter_init() + + + , +which allows to configure the visbility of internal and unchanged statistic +entries. Iteration over statistics entries is then provided via functions + + + cvc5_stats_iter_has_next() + + + and + + + cvc5_stats_iter_next() + + + . +

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + typedef + + + + + + + struct + + + + + + + cvc5_stat_t + + + + + + + * + + + + + + Cvc5Stat + + + + +  + +
    +
    +
    +

    + A cvc5 statistic. +

    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_stat_is_internal + + + + + ( + + + + + Cvc5Stat + + + + + + + + stat + + + + ) + + +  + +
    +
    +
    +

    + Determine if a given statistic is intended for internal use only. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + stat + + – The statistic. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this is an internal statistic. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_stat_is_default + + + + + ( + + + + + Cvc5Stat + + + + + + + + stat + + + + ) + + +  + +
    +
    +
    +

    + Determine if a given statistics statistic holds the default value. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + stat + + – The statistic. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this is a defaulted statistic. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_stat_is_int + + + + + ( + + + + + Cvc5Stat + + + + + + + + stat + + + + ) + + +  + +
    +
    +
    +

    + Determine if a given statistic holds an integer value. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + stat + + – The statistic. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this value is an integer. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + int64_t + + + + + + + + cvc5_stat_get_int + + + + + ( + + + + + Cvc5Stat + + + + + + + + stat + + + + ) + + +  + +
    +
    +
    +

    + Get the value of an integer statistic. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + stat + + – The statistic. +

    +
    +
    + Returns + + : + +
    +
    +

    + The integer value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_stat_is_double + + + + + ( + + + + + Cvc5Stat + + + + + + + + stat + + + + ) + + +  + +
    +
    +
    +

    + Determine if a given statistic holds a double value. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + stat + + – The statistic. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this value is a double. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + double + + + + + + + + cvc5_stat_get_double + + + + + ( + + + + + Cvc5Stat + + + + + + + + stat + + + + ) + + +  + +
    +
    +
    +

    + Get the value of a double statistic. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + stat + + – The statistic. +

    +
    +
    + Returns + + : + +
    +
    +

    + The double value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_stat_is_string + + + + + ( + + + + + Cvc5Stat + + + + + + + + stat + + + + ) + + +  + +
    +
    +
    +

    + Determine if a given statistic holds a string value. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + stat + + – The statistic. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this value is a string. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + + cvc5_stat_get_string + + + + + ( + + + + + Cvc5Stat + + + + + + + + stat + + + + ) + + +  + +
    +
    +
    +

    + Get value of a string statistic. +

    +
    +

    + Note +

    +

    + The returned char pointer is only valid until the next call to this function. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + stat + + – The statistic. +

    +
    +
    + Returns + + : + +
    +
    +

    + The string value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_stat_is_histogram + + + + + ( + + + + + Cvc5Stat + + + + + + + + stat + + + + ) + + +  + +
    +
    +
    +

    + Determine if a given statistic holds a histogram. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + stat + + – The statistic. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this value is a histogram. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + cvc5_stat_get_histogram + + + + + ( + + + + + Cvc5Stat + + + + + + + + stat + + + , + + + const + + + + + + + char + + + + + + + * + + + + + * + + + + + keys + + + + + [ + + + + + ] + + + , + + + uint64_t + + + + + + + * + + + + + values + + + + + [ + + + + + ] + + + , + + + size_t + + + + + + + * + + + + + size + + + + ) + + +  + +
    +
    +
    +

    + Get the value of a histogram statistic. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + stat + + – The statistic. +

    +
    +
    + Returns + + : + +
    +
    +

    + The histogram value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + + cvc5_stat_to_string + + + + + ( + + + + + Cvc5Stat + + + + + + + + stat + + + + ) + + +  + +
    +
    +
    +

    + Get a string representation of a given statistic. +

    +
    +

    + Note +

    +

    + The returned char* pointer is only valid until the next call to this function. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + stat + + – The statistic. +

    +
    +
    + Returns + + : + +
    +
    +

    + The string representation. +

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + typedef + + + + + + + struct + + + + + + + cvc5_stats_t + + + + + + + * + + + + + + Cvc5Statistics + + + + +  + +
    +
    +
    +

    + A cvc5 statistics instance. +

    +
    +
    +
    +
    +

    + Warning +

    +

    + doxygengroup: Cannot find group “c_cvc5statistics” in doxygen xml output for project “cvc5_c” from directory: /home/runner/work/cvc5/cvc5/build-shared/docs/api/c/doxygen/xml +

    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5symbolmanager.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5symbolmanager.html new file mode 100644 index 0000000000..33b5c32dc1 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5symbolmanager.html @@ -0,0 +1,547 @@ + + + + + + + + + + + Cvc5SymbolManager — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Cvc5SymbolManager + +  + +

    +

    + This class manages a symbol table and other meta-information pertaining to +SMT-LIB v2 inputs (e.g., named assertions, declared functions, etc.). +

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + typedef + + + + + + + struct + + + + + + + + Cvc5SymbolManager + + + + + + + + + Cvc5SymbolManager + + + + +  + +
    +
    +
    +

    + Symbol manager. Internally, the symbol manager manages a symbol table and other meta-information pertaining to SMT2 file inputs (e.g. named assertions, declared functions, etc.). +

    +

    + A symbol manager can be modified by invoking commands, see + + + + + cvc5_cmd_invoke() + + + + + . +

    +

    + A symbol manager can be provided when constructing a Cvc5InputParser, in which case that input parser has symbols of this symbol manager preloaded. +

    +

    + The symbol manager’s interface is otherwise not publicly available. +

    +
    +
    +
    +
    +

    + Warning +

    +

    + doxygengroup: Cannot find group “c_cvc5symbolmanager” in doxygen xml output for project “cvc5_c” from directory: /home/runner/work/cvc5/cvc5/build-shared/docs/api/c/doxygen/xml +

    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5synthresult.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5synthresult.html new file mode 100644 index 0000000000..4664ee7185 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5synthresult.html @@ -0,0 +1,564 @@ + + + + + + + + + + + Cvc5SynthResult — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Cvc5SynthResult + +  + +

    +

    + This struct represents a + + + + Cvc5 + + + + SyGus synthesis result. +

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + typedef + + + + + + + struct + + + + + + + cvc5_synth_result_t + + + + + + + * + + + + + + Cvc5SynthResult + + + + +  + +
    +
    +
    +

    + Encapsulation of a solver synth result. +

    +

    + This is the return value of the API functions: +

    + +

    + which we call “synthesis queries”. This class indicates whether the synthesis query has a solution, has no solution, or is unknown. +

    +
    +
    +
    +
    +

    + Warning +

    +

    + doxygengroup: Cannot find group “c_cvc5synthresult” in doxygen xml output for project “cvc5_c” from directory: /home/runner/work/cvc5/cvc5/build-shared/docs/api/c/doxygen/xml +

    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5term.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5term.html new file mode 100644 index 0000000000..19e6a80193 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5term.html @@ -0,0 +1,8164 @@ + + + + + + + + + + + Cvc5Term — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Cvc5Term + +  + +

    +

    + The + + + + Cvc5Term + + + + struct represents an arbitrary expression +of any of the supported sorts. The list of all supported kinds of terms is +given by the + + + + Cvc5Kind + + + + enum. +The + + + + Cvc5Term + + + + struct provides functions for general inspection +(e.g., comparison, retrieving the kind and sort, accessing sub-terms), +but also functions for retrieving constant values for the supported theories +(i.e., + + + cvc5_term_is_*_value() + + + and + + + cvc5_term_get_*_value() + + + , +which returns the constant values in the best type standard C++ offers). +

    +

    + Additionally, a + + + :cpp:tyep:`Cvc5Term` + + + can be hashed (using + + + + cvc5_term_hash() + + + + ) and represented as string +(via + + + + cvc5_term_to_string() + + + + ). +

    +

    + + + + Cvc5Term + + + + instances are created via factory functions associated +with a + + + + Cvc5TermManager + + + + instance, e.g., + + + cvc5_mk_term() + + + for generic terms of a specific kind and + + + cvc5_mk_<type>() + + + for constants, variables and values of a given type. +

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + typedef + + + + + + + struct + + + + + + + cvc5_term_t + + + + + + + * + + + + + + Cvc5Term + + + + +  + +
    +
    +
    +

    + A cvc5 term. +

    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Term + + + + + + + + + cvc5_term_copy + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Make copy of term, increases reference counter of + + + term + + + . +

    +
    +

    + Note +

    +

    + This step is optional and allows users to manage resources in a more fine-grained manner. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The term to copy. +

    +
    +
    + Returns + + : + +
    +
    +

    + The same term with its reference count increased by one. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + cvc5_term_release + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Release copy of term, decrements reference counter of + + + term + + + . +

    +
    +

    + Note +

    +

    + This step is optional and allows users to release resources in a more fine-grained manner. Further, any API function that returns a copy that is owned by the callee of the function and thus, can be released. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The term to release. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_term_is_equal + + + + + ( + + + + + Cvc5Term + + + + + + + + a + + + , + + + + Cvc5Term + + + + + + + + b + + + + ) + + +  + +
    +
    +
    +

    + Compare two terms for syntactic equality. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + a + + – The first term. +

      +
    • +
    • +

      + + b + + – The second term. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + True if both term are syntactically identical. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_term_is_disequal + + + + + ( + + + + + Cvc5Term + + + + + + + + a + + + , + + + + Cvc5Term + + + + + + + + b + + + + ) + + +  + +
    +
    +
    +

    + Compare two terms for syntactic disequality. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + a + + – The first term. +

      +
    • +
    • +

      + + b + + – The second term. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + True if both term are syntactically disequal. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + int64_t + + + + + + + + cvc5_term_compare + + + + + ( + + + + + Cvc5Term + + + + + + + + a + + + , + + + + Cvc5Term + + + + + + + + b + + + + ) + + +  + +
    +
    +
    +

    + Compare two terms for ordering. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + a + + – The first term. +

      +
    • +
    • +

      + + b + + – The second term. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + An integer value indicating the ordering: 0 if both terms are equal, + + + -1 + + + if + + + a + + + < + + + b + + + , and + + + 1 + + + if + + + b + + + > + + + a + + + . +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + size_t + + + + + + + + cvc5_term_get_num_children + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Get the number of children of a given term. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The term. +

    +
    +
    + Returns + + : + +
    +
    +

    + The number of children of this term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Term + + + + + + + + + cvc5_term_get_child + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + , + + + size_t + + + + + + + index + + + + ) + + +  + +
    +
    +
    +

    + Get the child term of a given term at a given index. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + term + + – The term. +

      +
    • +
    • +

      + + index + + – The index of the child. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The child term at the given index. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + uint64_t + + + + + + + + cvc5_term_get_id + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Get the id of a given term. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The term. +

    +
    +
    + Returns + + : + +
    +
    +

    + The id of the term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Kind + + + + + + + + + cvc5_term_get_kind + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Get the kind of a given term. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The term. +

    +
    +
    + Returns + + : + +
    +
    +

    + The kind of the term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Sort + + + + + + + + + cvc5_term_get_sort + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Get the sort of a given term. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The term. +

    +
    +
    + Returns + + : + +
    +
    +

    + The sort of the term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Term + + + + + + + + + cvc5_term_substitute_term + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + , + + + + Cvc5Term + + + + + + + + t + + + , + + + + Cvc5Term + + + + + + + + replacement + + + + ) + + +  + +
    +
    +
    +

    + Replace a given term + + + t + + + with term + + + replacement + + + in a given term. +

    +
    +

    + Note +

    +

    + This replacement is applied during a pre-order traversal and only once (it is not run until fixed point). +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + term + + – The term. +

      +
    • +
    • +

      + + t + + – The term to replace. +

      +
    • +
    • +

      + + replacement + + – The term to replace it with. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The result of replacing + + + term + + + with + + + replacement + + + in the term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Term + + + + + + + + + cvc5_term_substitute_terms + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + , + + + size_t + + + + + + + size + + + , + + + const + + + + + + + + Cvc5Term + + + + + + + + terms + + + + + [ + + + + + ] + + + , + + + const + + + + + + + + Cvc5Term + + + + + + + + replacements + + + + + [ + + + + + ] + + + + ) + + +  + +
    +
    +
    +

    + Simultaneously replace given terms + + + terms + + + with terms + + + replacements + + + in a given term. +

    +

    + In the case that + + + terms + + + contains duplicates, the replacement earliest in the vector takes priority. For example, calling substitute on + + + f(x,y) + + + with + + + terms + + + = + + + { + + + x, + + + z + + + } + + + , + + + replacements + + + = + + + { + + + g(z), + + + w + + + } + + + results in the term + + + f(g(z),y) + + + . +

    +
    +

    + Note +

    +

    + Requires that + + + terms + + + and + + + replacements + + + are of equal size (they are interpreted as 1 : 1 mapping). +

    +
    +
    +

    + Note +

    +

    + This replacement is applied during a pre-order traversal and only once (it is not run until fixed point). +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + term + + – The term. +

      +
    • +
    • +

      + + size + + – The size of + + + terms + + + and + + + replacements + + + . +

      +
    • +
    • +

      + + terms + + – The terms to replace. +

      +
    • +
    • +

      + + replacements + + – The replacement terms. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The result of simultaneously replacing + + + terms + + + with + + + replacements + + + in the given term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_term_has_op + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Determine if a given term has an operator. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The term. +

    +
    +
    + Returns + + : + +
    +
    +

    + True iff the term has an operator. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Op + + + + + + + + + cvc5_term_get_op + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Get the operator of a term with an operator. +

    +
    +

    + Note +

    +

    + Requires that the term has an operator (see + + + cvc5_term_has_op() + + + ). +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The term. +

    +
    +
    + Returns + + : + +
    +
    +

    + The Op used to create the term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_term_has_symbol + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Determine if a given term has a symbol (a name). +

    +

    + For example, free constants and variables have symbols. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The term. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the term has a symbol. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + + cvc5_term_get_symbol + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Get the symbol of a given term with a symbol. +

    +

    + The symbol of the term is the string that was provided when constructing it via cvc5_mk_const() or cvc5_mk_var(). +

    +
    +

    + Note +

    +

    + Requires that the term has a symbol (see + + + cvc5_term_has_symbol() + + + ). +

    +
    +
    +

    + Note +

    +

    + The returned char* pointer is only valid until the next call to this function. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The term. +

    +
    +
    + Returns + + : + +
    +
    +

    + The raw symbol of the term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + + cvc5_term_to_string + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Get a string representation of a given term. +

    +
    +

    + Note +

    +

    + The returned char* pointer is only valid until the next call to this function. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The term. +

    +
    +
    + Returns + + : + +
    +
    +

    + A string representation of the term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + int32_t + + + + + + + + cvc5_term_get_real_or_integer_value_sign + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Get the sign of a given integer or real value. +

    +
    +

    + Note +

    +

    + Requires that given term is an integer or real value. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The value term. +

    +
    +
    + Returns + + : + +
    +
    +

    + 0 if the term is zero, -1 if the term is a negative real or integer value, 1 if the term is a positive real or integer value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_term_is_int32_value + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Determine if a given term is an int32 value. +

    +
    +

    + Note +

    +

    + This will return true for integer constants and real constants that have integer value. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The term. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is an integer value that fits within int32_t. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + int32_t + + + + + + + + cvc5_term_get_int32_value + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Get the + + + int32_t + + + representation of a given integral value. +

    +
    +

    + Note +

    +

    + Requires that the term is an int32 value (see + + + cvc5_term_is_int32_value() + + + ). +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The term. +

    +
    +
    + Returns + + : + +
    +
    +

    + The given term as + + + int32_t + + + value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_term_is_uint32_value + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Determine if a given term is an uint32 value. +

    +
    +

    + Note +

    +

    + This will return true for integer constants and real constants that have integral value. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is an integral value and fits within uint32_t. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + uint32_t + + + + + + + + cvc5_term_get_uint32_value + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Get the + + + uint32_t + + + representation of a given integral value. +

    +
    +

    + Note +

    +

    + Requires that the term is an uint32 value (see + + + cvc5_term_is_uint32_value() + + + ). +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The term. +

    +
    +
    + Returns + + : + +
    +
    +

    + The term as + + + uint32_t + + + value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_term_is_int64_value + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Determine if a given term is an int64 value. +

    +
    +

    + Note +

    +

    + This will return true for integer constants and real constants that have integral value. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The term. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is an integral value that fits within int64_t. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + int64_t + + + + + + + + cvc5_term_get_int64_value + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Get the + + + int64_t + + + representation of a given integral value. +

    +
    +

    + Note +

    +

    + Requires that the term is an int64 value (see + + + cvc5_term_is_int64_value() + + + ). +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The term. +

    +
    +
    + Returns + + : + +
    +
    +

    + The term as + + + int64_t + + + value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_term_is_uint64_value + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Determine if a given term is an uint64 value. +

    +
    +

    + Note +

    +

    + This will return true for integer constants and real constants that have integral value. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The term. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is an integral value that fits within uint64_t. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + uint64_t + + + + + + + + cvc5_term_get_uint64_value + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Get the + + + uint64_t + + + representation of a given integral value. +

    +
    +

    + Note +

    +

    + Requires that the term is an uint64 value (see + + + cvc5_term_is_uint64_value() + + + ). +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The term. +

    +
    +
    + Returns + + : + +
    +
    +

    + The term as + + + uint64_t + + + value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_term_is_integer_value + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Determine if a given term is an integral value. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The term. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is an integer constant or a real constant that has an integral value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + + cvc5_term_get_integer_value + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Get a string representation of a given integral value. +

    +
    +

    + Note +

    +

    + Requires that the term is an integral value (see + + + cvc5_term_is_integer_value() + + + ). +

    +
    +
    +

    + Note +

    +

    + The returned char* pointer is only valid until the next call to this function. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The term. +

    +
    +
    + Returns + + : + +
    +
    +

    + The integral term in (decimal) string representation. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_term_is_string_value + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Determine if a given term is a string value. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The term. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is a string value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + wchar_t + + + + + + + * + + + + + + cvc5_term_get_string_value + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Get the native string representation of a string value. +

    +
    +

    + Note +

    +

    + Requires that the term is a string value (see + + + cvc5_term_is_string_value() + + + ). +

    +
    +
    +

    + Note +

    +

    + This is not to be confused with + + + cvc5_term_to_string() + + + , which returns some string representation of the term, whatever data it may hold. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The term. +

    +
    +
    + Returns + + : + +
    +
    +

    + The string term as a native string value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_term_is_real32_value + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Determine if a given term is a rational value whose numerator fits into an int32 value and its denominator fits into a uint32 value. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The term. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is a rational and its numerator and denominator fit into 32 bit integer values. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + cvc5_term_get_real32_value + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + , + + + int32_t + + + + + + + * + + + + + num + + + , + + + uint32_t + + + + + + + * + + + + + den + + + + ) + + +  + +
    +
    +
    +

    + Get the 32 bit integer representations of the numerator and denominator of a rational value. +

    +
    +

    + Note +

    +

    + Requires that the term is a rational value and its numerator and denominator fit into 32 bit integer values (see + + + cvc5_term_is_real32_value() + + + ). +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + term + + – The term. +

      +
    • +
    • +

      + + num + + – The resulting int32_t representation of the numerator. +

      +
    • +
    • +

      + + den + + – The resulting uint32_t representation of the denominator. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_term_is_real64_value + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Determine if a given term is a rational value whose numerator fits into an int64 value and its denominator fits into a uint64 value. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The term. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is a rational value whose numerator and denominator fit within int64_t and uint64_t, respectively. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + cvc5_term_get_real64_value + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + , + + + int64_t + + + + + + + * + + + + + num + + + , + + + uint64_t + + + + + + + * + + + + + den + + + + ) + + +  + +
    +
    +
    +

    + Get the 64 bit integer representations of the numerator and denominator of a rational value. +

    +
    +

    + Note +

    +

    + Requires that the term is a rational value and its numerator and denominator fit into 64 bit integer values (see + + + cvc5_term_is_real64_value() + + + ). +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + term + + – The term. +

      +
    • +
    • +

      + + num + + – The resulting int64_t representation of the numerator. +

      +
    • +
    • +

      + + den + + – The resulting uint64_t representation of the denominator. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_term_is_real_value + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Determine if a given term is a rational value. +

    +
    +

    + Note +

    +

    + A term of kind PI is not considered to be a real value. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The term. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is a rational value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + + cvc5_term_get_real_value + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Get a string representation of a given rational value. +

    +
    +

    + Note +

    +

    + Requires that the term is a rational value (see + + + cvc5_term_is_real_value() + + + ). +

    +
    +
    +

    + Note +

    +

    + The returned char* pointer is only valid until the next call to this function. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The term. +

    +
    +
    + Returns + + : + +
    +
    +

    + The representation of a rational value as a (rational) string. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_term_is_const_array + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Determine if a given term is a constant array. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The term. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is a constant array. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Term + + + + + + + + + cvc5_term_get_const_array_base + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Determine the base (element stored at all indices) of a constant array. +

    +
    +

    + Note +

    +

    + Requires that the term is a constant array (see isConstArray()). +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The term. +

    +
    +
    + Returns + + : + +
    +
    +

    + The base term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_term_is_boolean_value + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Determine if a given term is a Boolean value. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The term. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is a Boolean value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_term_get_boolean_value + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Get the value of a Boolean term as a native Boolean value. +

    +
    +

    + Note +

    +

    + Asserts + + + cvc5_term_is_boolean_value() + + + . +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The term. +

    +
    +
    + Returns + + : + +
    +
    +

    + The representation of a Boolean value as a native Boolean value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_term_is_bv_value + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Determine if a given term is a bit-vector value. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The term. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is a bit-vector value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + + cvc5_term_get_bv_value + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + , + + + uint32_t + + + + + + + base + + + + ) + + +  + +
    +
    +
    +

    + Get the string representation of a bit-vector value. +

    +
    +

    + Note +

    +

    + Asserts + + + cvc5_term_is_bv_value() + + + . +

    +
    +
    +

    + Note +

    +

    + The returned char* pointer is only valid until the next call to this function. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + term + + – The term. +

      +
    • +
    • +

      + + base + + – + + + 2 + + + for binary, + + + 10 + + + for decimal, and + + + 16 + + + for hexadecimal. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The string representation of a bit-vector value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_term_is_ff_value + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Determine if a given term is a finite field value. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The term. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is a finite field value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + + cvc5_term_get_ff_value + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Get the string representation of a finite field value (base 10). +

    +
    +

    + Note +

    +

    + Asserts + + + cvc5_term_is_ff_value() + + + . +

    +
    +
    +

    + Note +

    +

    + Uses the integer representative of smallest absolute value. +

    +
    +
    +

    + Note +

    +

    + The returned char* pointer is only valid until the next call to this function. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The term. +

    +
    +
    + Returns + + : + +
    +
    +

    + The string representation of the integer representation of the finite field value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_term_is_uninterpreted_sort_value + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Determine if a given term is an uninterpreted sort value. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The term. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is an abstract value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + char + + + + + + + * + + + + + + cvc5_term_get_uninterpreted_sort_value + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Get a string representation of an uninterpreted sort value. +

    +
    +

    + Note +

    +

    + Asserts + + + cvc5_term_is_uninterpreted_sort_value() + + + . +

    +
    +
    +

    + Note +

    +

    + The returned char* pointer is only valid until the next call to this function. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The term. +

    +
    +
    + Returns + + : + +
    +
    +

    + The representation of an uninterpreted sort value as a string. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_term_is_tuple_value + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Determine if a given term is a tuple value. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The term. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is a tuple value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + + Cvc5Term + + + + + + + + * + + + + + + cvc5_term_get_tuple_value + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + , + + + size_t + + + + + + + * + + + + + size + + + + ) + + +  + +
    +
    +
    +

    + Get a tuple value as an array of terms. +

    +
    +

    + Note +

    +

    + Asserts + + + cvc5_term_is_tuple_value() + + + . +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + term + + – The term. +

      +
    • +
    • +

      + + size + + – The size of the resulting array. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The representation of a tuple value as an array of terms. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_term_is_rm_value + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Determine if a given term is a floating-point rounding mode value. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The term. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is a rounding mode value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5RoundingMode + + + + + + + + + cvc5_term_get_rm_value + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Get the Cvc5RoundingMode value of a given rounding-mode value term. +

    +
    +

    + Note +

    +

    + Asserts cvc5_term_is_rounding_mode_value(). +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The term. +

    +
    +
    + Returns + + : + +
    +
    +

    + The floating-point rounding mode value of the term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_term_is_fp_pos_zero + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Determine if a given term is a floating-point positive zero value (+zero). +

    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The term. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is the floating-point value for positive zero. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_term_is_fp_neg_zero + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Determine if a given term is a floating-point negative zero value (-zero). +

    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The term. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is the floating-point value for negative zero. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_term_is_fp_pos_inf + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Determine if a given term is a floating-point positive infinity value (+oo). +

    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The term. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is the floating-point value for positive. infinity. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_term_is_fp_neg_inf + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Determine if a given term is a floating-point negative infinity value (-oo). +

    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The term. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is the floating-point value for negative. infinity. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_term_is_fp_nan + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Determine if a given term is a floating-point NaN value. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The term. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is the floating-point value for not a number. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_term_is_fp_value + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Determine if a given term is a floating-point value. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The term. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is a floating-point value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + cvc5_term_get_fp_value + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + , + + + uint32_t + + + + + + + * + + + + + ew + + + , + + + uint32_t + + + + + + + * + + + + + sw + + + , + + + + Cvc5Term + + + + + + + + * + + + + + val + + + + ) + + +  + +
    +
    +
    +

    + Get the representation of a floating-point value as its exponent width, significand width and a bit-vector value term. +

    +
    +

    + Note +

    +

    + Asserts + + + cvc5_term_is_fp_value() + + + . +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + term + + – The term. +

      +
    • +
    • +

      + + ew + + – The resulting exponent width. +

      +
    • +
    • +

      + + sw + + – The resulting significand width. +

      +
    • +
    • +

      + + val + + – The resulting bit-vector value term. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_term_is_set_value + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Determine if a given term is a set value. +

    +

    + A term is a set value if it is considered to be a (canonical) constant set value. A canonical set value is one whose AST is: +

    +

    +

    +
    +
    +
    (union (singleton c1) ... (union (singleton c_{n-1}) (singleton c_n))))
    +
    +
    +
    +

    + where + + \(c_1 ... c_n\) + + are values ordered by id such that + + \(c_1 > ... > c_n\) + + . +

    +
    +

    + Note +

    +

    + A universe set term (kind + + + CVC5_KIND_SET_UNIVERSE + + + ) is not considered to be a set value. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The term. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is a set value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + + Cvc5Term + + + + + + + + * + + + + + + cvc5_term_get_set_value + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + , + + + size_t + + + + + + + * + + + + + size + + + + ) + + +  + +
    +
    +
    +

    + Get a set value as an array of terms. +

    +
    +

    + Note +

    +

    + Asserts + + + cvc5_term_is_set_value() + + + . +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + term + + – The term. +

      +
    • +
    • +

      + + size + + – The size of the resulting array. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The representation of a set value as an array of terms. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_term_is_sequence_value + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Determine if a given term is a sequence value. +

    +

    + A term is a sequence value if it has kind #CONST_SEQUENCE. In contrast to values for the set sort (as described in isSetValue()), a sequence value is represented as a Term with no children. +

    +

    + Semantically, a sequence value is a concatenation of unit sequences whose elements are themselves values. For example: +

    +

    +

    +
    +
    +
    (seq.++ (seq.unit 0) (seq.unit 1))
    +
    +
    +
    +

    + The above term has two representations in Term. One is as the sequence concatenation term: +

    +

    +

    +
    +
    +
    (SEQ_CONCAT (SEQ_UNIT 0) (SEQ_UNIT 1))
    +
    +
    +
    +

    + where 0 and 1 are the terms corresponding to the integer constants 0 and 1. +

    +

    + Alternatively, the above term is represented as the constant sequence value: +

    +

    +

    +
    +
    +
    CONST_SEQUENCE_{0,1}
    +
    +
    +
    +

    + where calling getSequenceValue() on the latter returns the vector + + + {0, + + + 1} + + + . +

    +

    + The former term is not a sequence value, but the latter term is. +

    +

    + Constant sequences cannot be constructed directly via the API. They are returned in response to API calls such + + + cvc5_get_value() + + + and + + + cvc5_simplify() + + + . +

    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The term. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is a sequence value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + + Cvc5Term + + + + + + + + * + + + + + + cvc5_term_get_sequence_value + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + , + + + size_t + + + + + + + * + + + + + size + + + + ) + + +  + +
    +
    +
    +

    + Get a sequence value as an array of terms. +

    +
    +

    + Note +

    +

    + Asserts + + + cvc5_term_is_sequence_value() + + + . +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + term + + – The term. +

      +
    • +
    • +

      + + size + + – The size of the resulting array. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The representation of a sequence value as a vector of terms. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_term_is_cardinality_constraint + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Determine if a given term is a cardinality constraint. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The term. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is a cardinality constraint. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + cvc5_term_get_cardinality_constraint + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + , + + + + Cvc5Sort + + + + + + + + * + + + + + sort + + + , + + + uint32_t + + + + + + + * + + + + + upper + + + + ) + + +  + +
    +
    +
    +

    + Get a cardinality constraint as a pair of its sort and upper bound. +

    +
    +

    + Note +

    +

    + Asserts + + + cvc5_term_is_cardinality_constraint() + + + . +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + term + + – The term. +

      +
    • +
    • +

      + + sort + + – The resulting sort. +

      +
    • +
    • +

      + + upper + + – The resulting upper bound. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The sort the cardinality constraint is for and its upper bound. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_term_is_real_algebraic_number + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Determine if a given term is a real algebraic number. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The term. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is a real algebraic number. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Term + + + + + + + + + cvc5_term_get_real_algebraic_number_defining_polynomial + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + , + + + + Cvc5Term + + + + + + + + v + + + + ) + + +  + +
    +
    +
    +

    + Get the defining polynomial for a real algebraic number term, expressed in terms of the given variable. +

    +
    +

    + Note +

    +

    + Asserts + + + cvc5_term_is_real_algebraic_number() + + + . +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + term + + – The real algebraic number term. +

      +
    • +
    • +

      + + v + + – The variable over which to express the polynomial. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The defining polynomial. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Term + + + + + + + + + cvc5_term_get_real_algebraic_number_lower_bound + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Get the lower bound for a real algebraic number value. +

    +
    +

    + Note +

    +

    + Asserts + + + cvc5_term_is_real_algebraic_number() + + + . +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The real algebraic number value. +

    +
    +
    + Returns + + : + +
    +
    +

    + The lower bound. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Term + + + + + + + + + cvc5_term_get_real_algebraic_number_upper_bound + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Get the upper bound for a real algebraic number value. +

    +
    +

    + Note +

    +

    + Asserts + + + cvc5_term_is_real_algebraic_number() + + + . +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The real algebraic number value. +

    +
    +
    + Returns + + : + +
    +
    +

    + The upper bound. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + cvc5_term_is_skolem + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Is the given term a skolem? +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The skolem. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is a skolem function. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + Cvc5SkolemId + + + + + + + + cvc5_term_get_skolem_id + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Get skolem identifier of a term. +

    +
    +

    + Note +

    +

    + Asserts isSkolem(). +

    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The skolem. +

    +
    +
    + Returns + + : + +
    +
    +

    + The skolem identifier of the term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + + Cvc5Term + + + + + + + + * + + + + + + cvc5_term_get_skolem_indices + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + , + + + size_t + + + + + + + * + + + + + size + + + + ) + + +  + +
    +
    +
    +

    + Get the skolem indices of a term. +

    +
    +

    + Note +

    +

    + Asserts isSkolem(). +

    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + term + + – The skolem. +

      +
    • +
    • +

      + + size + + – The size of the resulting array. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The skolem indices of the term. This is list of terms that the skolem function is indexed by. For example, the array diff skolem + + + Cvc5SkolemId::ARRAY_DEQ_DIFF + + + is indexed by two arrays. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + size_t + + + + + + + + cvc5_term_hash + + + + + ( + + + + + Cvc5Term + + + + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Compute the hash value of a term. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The term. +

    +
    +
    + Returns + + : + +
    +
    +

    + The hash value of the term. +

    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5termmanager.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5termmanager.html new file mode 100644 index 0000000000..b343a459a9 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/c/types/cvc5termmanager.html @@ -0,0 +1,1215 @@ + + + + + + + + + + + Cvc5TermManager — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Cvc5TermManager + +  + +

    +

    + This struct represents a cvc5 term manager instance. +

    +

    + + + + Terms + + + + , + + + + Sorts + + + + and + + + + Ops + + + + are not tied to a + + + + Cvc5 + + + + but associated with a + + + + Cvc5TermManager + + + + instance, which can be +shared between solver instances (and thus allows sharing of terms and sorts +between solver instances). +

    +

    + Term kinds are defined via enum + + + Cvc5Kind + + + , and sort +kinds via enum + + + Cvc5SortKind + + + . +

    +

    + Solver options are configured via + + + + cvc5_set_option() + + + + and queried via + + + + cvc5_get_option() + + + + (for more information on configuration options, see + + + Options + + + ). +Information about a specific option can be retrieved via + + + + cvc5_get_option_info() + + + + (see + + + Cvc5OptionInfo + + + ). +

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + typedef + + + + + + + struct + + + + + + + + Cvc5TermManager + + + + + + + + + Cvc5TermManager + + + + +  + +
    +
    +
    +

    + A cvc5 term (and sort) manager. +

    +
    +
    +
    +
    +

    + Warning +

    +

    + doxygengroup: Cannot find group “c_cvc5termmanager” in doxygen xml output for project “cvc5_c” from directory: /home/runner/work/cvc5/cvc5/build-shared/docs/api/c/doxygen/xml +

    +
    +
    +
    +

    + Sort Creation + +  + +

    +
    +

    + Warning +

    +

    + doxygengroup: Cannot find group “c_sort_creation” in doxygen xml output for project “cvc5_c” from directory: /home/runner/work/cvc5/cvc5/build-shared/docs/api/c/doxygen/xml +

    +
    +
    +
    +
    +

    + Operator Creation + +  + +

    +
    +
    + + + + + + + + + + + + Cvc5Op + + + + + + + + + cvc5_mk_op + + + + + ( + + + + + Cvc5TermManager + + + + + + + + * + + + + + tm + + + , + + + + Cvc5Kind + + + + + + + + kind + + + , + + + size_t + + + + + + + size + + + , + + + const + + + + + + + uint32_t + + + + + + + idxs + + + + + [ + + + + + ] + + + + ) + + +  + +
    +
    +
    +

    + Create operator of Kind: +

    + +

    + See + + + Cvc5Kind + + + for a description of the parameters. +

    +
    +

    + Note +

    +

    + If + + + idxs + + + is empty, the Cvc5Op simply wraps the Cvc5Kind. The Cvc5Kind can be used in cvc5_mk_term directly without creating a Cvc5Op first. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + tm + + – The term manager instance. +

      +
    • +
    • +

      + + kind + + – The kind of the operator. +

      +
    • +
    • +

      + + size + + – The number of indices of the operator. +

      +
    • +
    • +

      + + idxs + + – The indices. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Cvc5Op + + + + + + + + + cvc5_mk_op_from_str + + + + + ( + + + + + Cvc5TermManager + + + + + + + + * + + + + + tm + + + , + + + + Cvc5Kind + + + + + + + + kind + + + , + + + const + + + + + + + char + + + + + + + * + + + + + arg + + + + ) + + +  + +
    +
    +
    +

    + Create operator of kind: +

    + +

    + See CKind for a description of the parameters. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + tm + + – The term manager instance. +

      +
    • +
    • +

      + + kind + + – The kind of the operator. +

      +
    • +
    • +

      + + arg + + – The string argument to this operator. +

      +
    • +
    +
    +
    +
    +
    +
    +
    +
    +

    + Term Creation + +  + +

    +
    +

    + Warning +

    +

    + doxygengroup: Cannot find group “c_term_creation” in doxygen xml output for project “cvc5_c” from directory: /home/runner/work/cvc5/cvc5/build-shared/docs/api/c/doxygen/xml +

    +
    +
    +
    +
    +

    + Datatype Declaration Creation + +  + +

    +
    +

    + Warning +

    +

    + doxygengroup: Cannot find group “c_dt_decl_creation” in doxygen xml output for project “cvc5_c” from directory: /home/runner/work/cvc5/cvc5/build-shared/docs/api/c/doxygen/xml +

    +
    +
    +
    +
    +

    + Datatype Constructor Declaration Creation + +  + +

    +
    +

    + Warning +

    +

    + doxygengroup: Cannot find group “c_dt_cons_decl_creation” in doxygen xml output for project “cvc5_c” from directory: /home/runner/work/cvc5/cvc5/build-shared/docs/api/c/doxygen/xml +

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/command.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/command.html new file mode 100644 index 0000000000..9c9873e602 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/command.html @@ -0,0 +1,984 @@ + + + + + + + + + + + Command — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Command + +  + +

    +

    + Encapsulation of a command. +Commands are constructed by the + + + + input + + + parser + + + + and can be invoked on +the + + + + solver + + + + and + + + + symbol + + + manager + + + + . +

    +
    +
    +
    + + + + + + + + + + + class + + + + + + + + Command + + + + +  + +
    +
    +
    +

    + Encapsulation of a command. +

    +

    + Commands are constructed by the input parser and can be invoked on the solver and symbol manager. +

    +
    +

    + Public Functions +

    +
    +
    + + + + + + + + + + + + Command + + + + + ( + + + ) + + +  + +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + invoke + + + + + ( + + + + cvc5 + + + + + :: + + + + + + Solver + + + + + + + + * + + + + + solver + + + , + + + parser + + + + + :: + + + + + + SymbolManager + + + + + + + + * + + + + + sm + + + , + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + out + + + + ) + + +  + +
    +
    +
    +

    + Invoke the command on the solver and symbol manager sm, prints the result to output stream out. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + solver + + – The solver to invoke the command on. +

      +
    • +
    • +

      + + sm + + – The symbol manager to invoke the command on. +

      +
    • +
    • +

      + + out + + – The output stream to write the result of the command on. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + string + + + + + + + + toString + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get a string representation of this command. +

    +
    +
    + Returns + + : + +
    +
    +

    + The string representation. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + string + + + + + + + + getCommandName + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the name for this command, e.g., “assert”. +

    +
    +
    + Returns + + : + +
    +
    +

    + The name of this command. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isNull + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this command is null. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this command is null. +

    +
    +
    +
    +
    +
    +
    +

    + Friends +

    +
    +
    + + + friend + + + class + + + + main::CommandExecutor + +
    +
    +
    +
    + + + friend + + + class + + + + internal::InteractiveShell + +
    +
    +
    +
    + + + friend + + + class + + + + main::ExecutionContext + +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/datatype.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/datatype.html new file mode 100644 index 0000000000..0bd51dee45 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/datatype.html @@ -0,0 +1,3221 @@ + + + + + + + + + + + Datatype — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Datatype + +  + +

    +

    + This class represents a datatype. A + + + + cvc5::Datatype + + + + is encapsulated +by a datatype + + + + Sort + + + + and can be retrieved from a +datatype sort via + + + + cvc5::Sort::getDatatype() + + + + . +Datatypes are specified by a + + + + cvc5::DatatypeDecl + + + + via + + + + cvc5::TermManager::mkDatatypeDecl() + + + + when constructing a datatype +sort. +

    +
    + +
    +
    +
    + + + + + + + + + + + class + + + + + + + + Datatype + + + + +  + +
    +
    +
    +

    + A cvc5 datatype. +

    +
    +

    + Public Functions +

    +
    +
    + + + + + + + + + + + + Datatype + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Constructor. +

    +
    +
    +
    +
    + + + + + + + + + + + + ~Datatype + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Destructor. +

    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + operator + + + + + == + + + + + ( + + + + const + + + + + + + + Datatype + + + + + + + + & + + + + + dt + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Equality operator. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + dt + + – The datatype to compare to for equality. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the datatypes are equal. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + DatatypeConstructor + + + + + + + + + operator + + + + + [] + + + + + ( + + + + size_t + + + + + + + idx + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the datatype constructor at a given index. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + idx + + – The index of the datatype constructor to return. +

    +
    +
    + Returns + + : + +
    +
    +

    + The datatype constructor with the given index. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + DatatypeConstructor + + + + + + + + + operator + + + + + [] + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + name + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the datatype constructor with the given name. +

    +
    +

    + Note +

    +

    + This is a linear search through the constructors, so in case of multiple, similarly-named constructors, the first is returned. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + name + + – The name of the datatype constructor. +

    +
    +
    + Returns + + : + +
    +
    +

    + The datatype constructor with the given name. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + DatatypeConstructor + + + + + + + + + getConstructor + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + name + + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + DatatypeSelector + + + + + + + + + getSelector + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + name + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the datatype selector with the given name. +

    +
    +

    + Note +

    +

    + This is a linear search through the constructors and their selectors, so in case of multiple, similarly-named selectors, the first is returned. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + name + + – The name of the datatype selector. +

    +
    +
    + Returns + + : + +
    +
    +

    + The datatype selector with the given name. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + string + + + + + + + + getName + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the name of this datatype. +

    +
    +
    + Returns + + : + +
    +
    +

    + The name. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + size_t + + + + + + + + getNumConstructors + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the number of constructors of this datatype. +

    +
    +
    + Returns + + : + +
    +
    +

    + The number of constructors. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Sort + + + + + + > + + + + + + + + getParameters + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the parameters of this datatype, if it is parametric. +

    +
    +

    + Note +

    +

    + Asserts that this datatype is parametric. +

    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The parameters of this datatype. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isParametric + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this datatype is parametric. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + True if this datatype is parametric. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isCodatatype + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this datatype corresponds to a co-datatype. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this datatype corresponds to a co-datatype. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isTuple + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this datatype corresponds to a tuple. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this datatype corresponds to a tuple. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isRecord + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this datatype corresponds to a record. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + True if this datatype corresponds to a record. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isFinite + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if a given datatype is finite. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this datatype is finite. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isWellFounded + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this datatype is well-founded. +

    +

    + If this datatype is not a codatatype, this returns false if there are no values of this datatype that are of finite size. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this datatype is well-founded. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isNull + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True if this + + + Datatype + + + is a null object. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + string + + + + + + + + toString + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + A string representation of this datatype. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + const_iterator + + + + + + + + + begin + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + An iterator to the first constructor of this datatype. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + const_iterator + + + + + + + + + end + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + An iterator to one-off-the-last constructor of this datatype. +

    +
    +
    +
    +
    +
    +
    +

    + Friends +

    +
    +
    + + + friend + + + struct + + + + std::hash< + + + Datatype + + + > + +
    +
    +
    +
    +
    + + + + + + + + + + + class + + + + + + + + const_iterator + + + + +  + +
    +
    +
    +

    + Iterator for the constructors of a datatype. +

    +
    +

    + Public Types +

    +
    +
    + + + + + + + + + using + + + + + + + + iterator_category + + + + + + + + = + + + + + + + std + + + + + :: + + + + + forward_iterator_tag + + + +  + +
    +
    +
    +

    + Iterator tag +

    +
    +
    +
    +
    + + + + + + + + + using + + + + + + + + value_type + + + + + + + + = + + + + + + + + Datatype + + + + +  + +
    +
    +
    +

    + The type of the item +

    +
    +
    +
    +
    + + + + + + + + + using + + + + + + + + pointer + + + + + + + + = + + + + + + + const + + + + + + + + Datatype + + + + + + * + + + +  + +
    +
    +
    +

    + The pointer type of the item +

    +
    +
    +
    +
    + + + + + + + + + using + + + + + + + + reference + + + + + + + + = + + + + + + + const + + + + + + + + Datatype + + + + + + & + + + +  + +
    +
    +
    +

    + The reference type of the item +

    +
    +
    +
    +
    + + + + + + + + + using + + + + + + + + difference_type + + + + + + + + = + + + + + + + std + + + + + :: + + + + + ptrdiff_t + + + +  + +
    +
    +
    +

    + The type returned when two iterators are subtracted +

    +
    +
    +
    +
    +

    + Public Functions +

    +
    +
    + + + + + + + + + + + + const_iterator + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Nullary constructor (required for Cython). +

    +
    +
    +
    +
    + + + + + + + + + + + + const_iterator + + + + + + + + & + + + + + + operator + + + + + = + + + + + ( + + + + const + + + + + + + + const_iterator + + + + + + + + & + + + + + it + + + + ) + + +  + +
    +
    +
    +

    + Assignment operator. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + it + + – The iterator to assign to. +

    +
    +
    + Returns + + : + +
    +
    +

    + The reference to the iterator after assignment. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + operator + + + + + == + + + + + ( + + + + const + + + + + + + + const_iterator + + + + + + + + & + + + + + it + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Equality operator. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + it + + – The iterator to compare to for equality. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the iterators are equal. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + operator + + + + + != + + + + + ( + + + + const + + + + + + + + const_iterator + + + + + + + + & + + + + + it + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Disequality operator. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + it + + – The iterator to compare to for disequality. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the iterators are disequal. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + const_iterator + + + + + + + + & + + + + + + operator + + + + + ++ + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Increment operator (prefix). +

    +
    +
    + Returns + + : + +
    +
    +

    + A reference to the iterator after incrementing by one. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + const_iterator + + + + + + + + + operator + + + + + ++ + + + + + ( + + + + int + + + + ) + + +  + +
    +
    +
    +

    + Increment operator (postfix). +

    +
    +
    + Returns + + : + +
    +
    +

    + A reference to the iterator after incrementing by one. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + + DatatypeConstructor + + + + + + + + & + + + + + + operator + + + + + * + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Dereference operator. +

    +
    +
    + Returns + + : + +
    +
    +

    + A reference to the constructor this iterator points to. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + + DatatypeConstructor + + + + + + + + * + + + + + + operator + + + + + -> + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Dereference operator. +

    +
    +
    + Returns + + : + +
    +
    +

    + A pointer to the constructor this iterator points to. +

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + + cvc5 + + + + + :: + + + + + + + operator + + + + + << + + + + + ( + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + out + + + , + + + const + + + + + + + + Datatype + + + + + + + + & + + + + + dtype + + + + ) + + +  + +
    +
    +
    +

    + Serialize a datatype to given stream. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + out + + – The output stream. +

      +
    • +
    • +

      + + dtype + + – The datatype to be serialized to given stream. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The output stream. +

    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/datatypeconstructor.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/datatypeconstructor.html new file mode 100644 index 0000000000..b3b4cf7b83 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/datatypeconstructor.html @@ -0,0 +1,3050 @@ + + + + + + + + + + + DatatypeConstructor — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + DatatypeConstructor + +  + +

    +

    + This class represents a datatype constructor. Datatype constructors are +specified by a + + + + cvc5::DatatypeConstructorDecl + + + + via + + + + cvc5::TermManager::mkDatatypeConstructorDecl() + + + + when constructing a +datatype sort and can be retrieved from a + + + + cvc5::Datatype + + + + via + + + + cvc5::Datatype::getConstructor() + + + + . +

    +
    + +
    +
    +
    + + + + + + + + + + + class + + + + + + + + DatatypeConstructor + + + + +  + +
    +
    +
    +

    + A cvc5 datatype constructor. +

    +
    +

    + Public Functions +

    +
    +
    + + + + + + + + + + + + DatatypeConstructor + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Constructor. +

    +
    +
    +
    +
    + + + + + + + + + + + + ~DatatypeConstructor + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Destructor. +

    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + operator + + + + + == + + + + + ( + + + + const + + + + + + + + DatatypeConstructor + + + + + + + + & + + + + + cons + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Equality operator. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + cons + + – The datatype constructor to compare to for equality. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the datatype constructors are equal. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + string + + + + + + + + getName + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the name of this datatype constructor. +

    +
    +
    + Returns + + : + +
    +
    +

    + The name. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + getTerm + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the constructor term of this datatype constructor. +

    +

    + + + Datatype + + + constructors are a special class of function-like terms whose sort is datatype constructor ( + + + Sort::isDatatypeConstructor() + + + ). All datatype constructors, including nullary ones, should be used as the first argument to Terms whose kind is #APPLY_CONSTRUCTOR. For example, the nil list can be constructed by + + + + + Solver::mkTerm + + + + + ( + + + + + Kind::APPLY_CONSTRUCTOR + + + + + , + + + {t}) + + + , where + + + t + + + is the term returned by this function. +

    +
    +

    + Note +

    +

    + This function should not be used for parametric datatypes. Instead, use the function + + + DatatypeConstructor::getInstantiatedTerm() + + + below. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The constructor term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + getInstantiatedTerm + + + + + ( + + + + const + + + + + + + + Sort + + + + + + + + & + + + + + retSort + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the constructor term of this datatype constructor whose return type is + + + retSort + + + . +

    +

    + This function is intended to be used on constructors of parametric datatypes and can be seen as returning the constructor term that has been explicitly cast to the given sort. +

    +

    + This function is required for constructors of parametric datatypes whose return type cannot be determined by type inference. For example, given: +

    +

    +

    +
    +
    +
    (declare-datatype List
    +    (par (T) ((nil) (cons (head T) (tail (List T))))))
    +
    +
    +
    +

    + The type of nil terms must be provided by the user. In SMT version 2.6, this is done via the syntax for qualified identifiers: +

    +

    +

    +
    +
    +
    (as nil (List Int))
    +
    +
    +
    +

    + This function is equivalent of applying the above, where this + + + DatatypeConstructor + + + is the one corresponding to + + + nil + + + , and + + + retSort + + + is + + + (List + + + Int) + + + . +

    +
    +

    + Note +

    +

    + The returned constructor term + + + t + + + is used to construct the above (nullary) application of + + + nil + + + with + + + + + Solver::mkTerm + + + + + ( + + + + + Kind::APPLY_CONSTRUCTOR + + + + + , + + + {t}) + + + . +

    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + retSort + + – The desired return sort of the constructor. +

    +
    +
    + Returns + + : + +
    +
    +

    + The constructor term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + getTesterTerm + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the tester term of this datatype constructor. +

    +

    + Similar to constructors, testers are a class of function-like terms of tester sort ( + + + Sort::isDatatypeConstructor() + + + ) which should be used as the first argument of Terms of kind #APPLY_TESTER. +

    +
    +
    + Returns + + : + +
    +
    +

    + The tester term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + size_t + + + + + + + + getNumSelectors + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The number of selectors (so far) of this + + + Datatype + + + constructor. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + DatatypeSelector + + + + + + + + + operator + + + + + [] + + + + + ( + + + + size_t + + + + + + + index + + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The i^th + + + DatatypeSelector + + + . +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + DatatypeSelector + + + + + + + + + operator + + + + + [] + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + name + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the datatype selector with the given name. +

    +
    +

    + Note +

    +

    + This is a linear search through the selectors, so in case of multiple, similarly-named selectors, the first is returned. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + name + + – The name of the datatype selector. +

    +
    +
    + Returns + + : + +
    +
    +

    + The first datatype selector with the given name. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + DatatypeSelector + + + + + + + + + getSelector + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + name + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the datatype selector with the given name. +

    +
    +

    + Note +

    +

    + This is a linear search through the selectors, so in case of multiple, similarly-named selectors, the first is returned. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + name + + – The name of the datatype selector. +

    +
    +
    + Returns + + : + +
    +
    +

    + The first datatype selector with the given name. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isNull + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True if this + + + DatatypeConstructor + + + is a null object. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + string + + + + + + + + toString + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get a string representation of this datatype constructor. +

    +
    +
    + Returns + + : + +
    +
    +

    + The string representation. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + const_iterator + + + + + + + + + begin + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + An iterator to the first selector of this constructor. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + const_iterator + + + + + + + + + end + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + An iterator to one-off-the-last selector of this constructor. +

    +
    +
    +
    +
    +
    +
    +

    + Friends +

    +
    +
    + + + friend + + + struct + + + + std::hash< + + + DatatypeConstructor + + + > + +
    +
    +
    +
    +
    + + + + + + + + + + + class + + + + + + + + const_iterator + + + + +  + +
    +
    +
    +

    + Iterator for the selectors of a datatype constructor. +

    +
    +

    + Public Types +

    +
    +
    + + + + + + + + + using + + + + + + + + iterator_category + + + + + + + + = + + + + + + + std + + + + + :: + + + + + forward_iterator_tag + + + +  + +
    +
    +
    +

    + Iterator tag +

    +
    +
    +
    +
    + + + + + + + + + using + + + + + + + + value_type + + + + + + + + = + + + + + + + + DatatypeConstructor + + + + +  + +
    +
    +
    +

    + The type of the item +

    +
    +
    +
    +
    + + + + + + + + + using + + + + + + + + pointer + + + + + + + + = + + + + + + + const + + + + + + + + DatatypeConstructor + + + + + + * + + + +  + +
    +
    +
    +

    + The pointer type of the item +

    +
    +
    +
    +
    + + + + + + + + + using + + + + + + + + reference + + + + + + + + = + + + + + + + const + + + + + + + + DatatypeConstructor + + + + + + & + + + +  + +
    +
    +
    +

    + The reference type of the item +

    +
    +
    +
    +
    + + + + + + + + + using + + + + + + + + difference_type + + + + + + + + = + + + + + + + std + + + + + :: + + + + + ptrdiff_t + + + +  + +
    +
    +
    +

    + The type returned when two iterators are subtracted +

    +
    +
    +
    +
    +

    + Public Functions +

    +
    +
    + + + + + + + + + + + + const_iterator + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Nullary constructor (required for Cython). +

    +
    +
    +
    +
    + + + + + + + + + + + + const_iterator + + + + + + + + & + + + + + + operator + + + + + = + + + + + ( + + + + const + + + + + + + + const_iterator + + + + + + + + & + + + + + it + + + + ) + + +  + +
    +
    +
    +

    + Assignment operator. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + it + + – The iterator to assign to. +

    +
    +
    + Returns + + : + +
    +
    +

    + The reference to the iterator after assignment. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + operator + + + + + == + + + + + ( + + + + const + + + + + + + + const_iterator + + + + + + + + & + + + + + it + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Equality operator. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + it + + – The iterator to compare to for equality. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the iterators are equal. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + operator + + + + + != + + + + + ( + + + + const + + + + + + + + const_iterator + + + + + + + + & + + + + + it + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Disequality operator. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + it + + – The iterator to compare to for disequality. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the iterators are disequal. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + const_iterator + + + + + + + + & + + + + + + operator + + + + + ++ + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Increment operator (prefix). +

    +
    +
    + Returns + + : + +
    +
    +

    + A reference to the iterator after incrementing by one. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + const_iterator + + + + + + + + + operator + + + + + ++ + + + + + ( + + + + int + + + + ) + + +  + +
    +
    +
    +

    + Increment operator (postfix). +

    +
    +
    + Returns + + : + +
    +
    +

    + A reference to the iterator after incrementing by one. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + + DatatypeSelector + + + + + + + + & + + + + + + operator + + + + + * + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Dereference operator. +

    +
    +
    + Returns + + : + +
    +
    +

    + A reference to the selector this iterator points to. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + + DatatypeSelector + + + + + + + + * + + + + + + operator + + + + + -> + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Dereference operator. +

    +
    +
    + Returns + + : + +
    +
    +

    + A pointer to the selector this iterator points to. +

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + + cvc5 + + + + + :: + + + + + + + operator + + + + + << + + + + + ( + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + out + + + , + + + const + + + + + + + + DatatypeConstructor + + + + + + + + & + + + + + ctor + + + + ) + + +  + +
    +
    +
    +

    + Serialize a datatype constructor to given stream. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + out + + – The output stream. +

      +
    • +
    • +

      + + ctor + + – The datatype constructor to be serialized to given stream. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The output stream. +

    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/datatypeconstructordecl.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/datatypeconstructordecl.html new file mode 100644 index 0000000000..df2edd7052 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/datatypeconstructordecl.html @@ -0,0 +1,1673 @@ + + + + + + + + + + + DatatypeConstructorDecl — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + DatatypeConstructorDecl + +  + +

    +

    + This class encapsulates a datatype constructor declaration. +A + + + + DatatypeConstructorDecl + + + + is constructed via + + + + cvc5::Solver::mkDatatypeConstructorDecl() + + + + . +This is not yet a + + + datatype constructor itself + + + , +but the representation of the specification for creating a datatype constructor +of a datatype + + + + Sort + + + + via + + + + cvc5::Solver::mkDatatypeSort() + + + + and + + + + cvc5::Solver::mkDatatypeSorts() + + + + . +

    +
    + +
    +
    +
    + + + + + + + + + + + class + + + + + + + + DatatypeConstructorDecl + + + + +  + +
    +
    +
    +

    + A cvc5 datatype constructor declaration. A datatype constructor declaration is a specification used for creating a datatype constructor. +

    +
    +

    + Public Functions +

    +
    +
    + + + + + + + + + + + + DatatypeConstructorDecl + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Constructor. +

    +
    +
    +
    +
    + + + + + + + + + + + + ~DatatypeConstructorDecl + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Destructor. +

    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + operator + + + + + == + + + + + ( + + + + const + + + + + + + + DatatypeConstructorDecl + + + + + + + + & + + + + + decl + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Equality operator. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + decl + + – The datatype constructor declaration to compare to for equality. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the datatype constructor declarations are equal. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + addSelector + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + name + + + , + + + const + + + + + + + + Sort + + + + + + + + & + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Add datatype selector declaration. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + name + + – The name of the datatype selector declaration to add. +

      +
    • +
    • +

      + + sort + + – The codomain sort of the datatype selector declaration to add. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + addSelectorSelf + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + name + + + + ) + + +  + +
    +
    +
    +

    + Add datatype selector declaration whose codomain type is the datatype itself. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + name + + – The name of the datatype selector declaration to add. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + addSelectorUnresolved + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + name + + + , + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + unresDataypeName + + + + ) + + +  + +
    +
    +
    +

    + Add datatype selector declaration whose codomain sort is an unresolved datatype with the given name. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + name + + – The name of the datatype selector declaration to add. +

      +
    • +
    • +

      + + unresDataypeName + + – The name of the unresolved datatype. The codomain of the selector will be the resolved datatype with the given name. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isNull + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True if this + + + DatatypeConstructorDecl + + + is a null declaration. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + string + + + + + + + + toString + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + A string representation of this datatype constructor declaration. +

    +
    +
    +
    +
    +
    +
    +

    + Friends +

    +
    +
    + + + friend + + + struct + + + + std::hash< + + + DatatypeConstructorDecl + + + > + +
    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + + cvc5 + + + + + :: + + + + + + + operator + + + + + << + + + + + ( + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + out + + + , + + + const + + + + + + + + DatatypeConstructorDecl + + + + + + + + & + + + + + ctordecl + + + + ) + + +  + +
    +
    +
    +

    + Serialize a datatype constructor declaration to given stream. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + out + + – The output stream. +

      +
    • +
    • +

      + + ctordecl + + – The datatype constructor declaration to be serialized. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The output stream. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + + cvc5 + + + + + :: + + + + + + + operator + + + + + << + + + + + ( + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + out + + + , + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + DatatypeConstructorDecl + + + + + + > + + + + + + + & + + + + + vector + + + + ) + + +  + +
    +
    +
    +

    + Serialize a vector of datatype constructor declarations to given stream. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + out + + – The output stream. +

      +
    • +
    • +

      + + vector + + – The vector of datatype constructor declarations to be. serialized to the given stream +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The output stream. +

    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/datatypedecl.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/datatypedecl.html new file mode 100644 index 0000000000..521207a169 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/datatypedecl.html @@ -0,0 +1,1502 @@ + + + + + + + + + + + DatatypeDecl — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + DatatypeDecl + +  + +

    +

    + This class encapsulates a datatype declaration. A datatype declaration is +constructed via + + + + cvc5::Solver::mkDatatypeDecl() + + + + . This is not a + + + datatype itself + + + , but the representation of the +specification for creating a datatype + + + + Sort + + + + via + + + + cvc5::Solver::mkDatatypeSort() + + + + and + + + + cvc5::Solver::mkDatatypeSorts() + + + + . +

    +
    + +
    +
    +
    + + + + + + + + + + + class + + + + + + + + DatatypeDecl + + + + +  + +
    +
    +
    +

    + A cvc5 datatype declaration. A datatype declaration is not itself a datatype (see + + + Datatype + + + ), but a specification for creating a datatype sort. +

    +

    + The interface for a datatype declaration coincides with the syntax for the SMT-LIB 2.6 command + + + declare-datatype + + + , or a single datatype within the + + + declare-datatypes + + + command. +

    +

    + + + Datatype + + + sorts can be constructed from a + + + DatatypeDecl + + + using: +

    + +
    +

    + Public Functions +

    +
    +
    + + + + + + + + + + + + DatatypeDecl + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Constructor. +

    +
    +
    +
    +
    + + + + + + + + + + + + ~DatatypeDecl + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Destructor. +

    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + operator + + + + + == + + + + + ( + + + + const + + + + + + + + DatatypeDecl + + + + + + + + & + + + + + decl + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Equality operator. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + decl + + – The datatype declaration to compare to for equality. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the datatype declarations are equal. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + addConstructor + + + + + ( + + + + const + + + + + + + + DatatypeConstructorDecl + + + + + + + + & + + + + + ctor + + + + ) + + +  + +
    +
    +
    +

    + Add datatype constructor declaration. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + ctor + + – The datatype constructor declaration to add. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + size_t + + + + + + + + getNumConstructors + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the number of constructors (so far) for this + + + Datatype + + + declaration. +

    +
    +
    + Returns + + : + +
    +
    +

    + The number of constructors. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isParametric + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this + + + Datatype + + + declaration is parametric. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + True if this datatype declaration is parametric. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isResolved + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this datatype declaration is resolved (has already been used to declare a datatype). +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this datatype declaration is resolved. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isNull + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this datatype declaration is nullary. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this + + + DatatypeDecl + + + is a null object. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + string + + + + + + + + toString + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get a string representation of this datatype declaration. +

    +
    +
    + Returns + + : + +
    +
    +

    + A string representation. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + string + + + + + + + + getName + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the name of this datatype declaration. +

    +
    +
    + Returns + + : + +
    +
    +

    + The name. +

    +
    +
    +
    +
    +
    +
    +

    + Friends +

    +
    +
    + + + friend + + + struct + + + + std::hash< + + + DatatypeDecl + + + > + +
    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + + cvc5 + + + + + :: + + + + + + + operator + + + + + << + + + + + ( + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + out + + + , + + + const + + + + + + + + DatatypeDecl + + + + + + + + & + + + + + dtdecl + + + + ) + + +  + +
    +
    +
    +

    + Serialize a datatype declaration to given stream. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + out + + – The output stream. +

      +
    • +
    • +

      + + dtdecl + + – The datatype declaration to be serialized to the given stream. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The output stream. +

    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/datatypeselector.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/datatypeselector.html new file mode 100644 index 0000000000..63c3c1ad45 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/datatypeselector.html @@ -0,0 +1,1378 @@ + + + + + + + + + + + DatatypeSelector — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + DatatypeSelector + +  + +

    +

    + This class represents a datatype selector. Datatype selectors are +specified via + + + + cvc5::DatatypeConstructorDecl::addSelector() + + + + , + + + + cvc5::DatatypeConstructorDecl::addSelectorSelf() + + + + and + + + + cvc5::DatatypeConstructorDecl::addSelectorUnresolved() + + + + when constructing a datatype sort and can be retrieved from a + + + + cvc5::DatatypeConstructor + + + + via + + + + cvc5::DatatypeConstructor::getSelector() + + + + . +

    +
    + +
    +
    +
    + + + + + + + + + + + class + + + + + + + + DatatypeSelector + + + + +  + +
    +
    +
    +

    + A cvc5 datatype selector. +

    +
    +

    + Public Functions +

    +
    +
    + + + + + + + + + + + + DatatypeSelector + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Constructor. +

    +
    +
    +
    +
    + + + + + + + + + + + + ~DatatypeSelector + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Destructor. +

    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + operator + + + + + == + + + + + ( + + + + const + + + + + + + + DatatypeSelector + + + + + + + + & + + + + + sel + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Equality operator. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sel + + – The datatype selector to compare to for equality. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the datatype selectors are equal. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + string + + + + + + + + getName + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the name of this datatype selector. +

    +
    +
    + Returns + + : + +
    +
    +

    + The name of this + + + Datatype + + + selector. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + getTerm + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the selector term of this datatype selector. +

    +

    + Selector terms are a class of function-like terms of selector sort ( + + + Sort::isDatatypeSelector() + + + ), and should be used as the first argument of Terms of kind #APPLY_SELECTOR. +

    +
    +
    + Returns + + : + +
    +
    +

    + The selector term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + getUpdaterTerm + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the updater term of this datatype selector. +

    +

    + Similar to selectors, updater terms are a class of function-like terms of updater + + + Sort + + + ( + + + Sort::isDatatypeUpdater() + + + ), and should be used as the first argument of Terms of kind #APPLY_UPDATER. +

    +
    +
    + Returns + + : + +
    +
    +

    + The updater term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + getCodomainSort + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the codomain sort of this selector. +

    +
    +
    + Returns + + : + +
    +
    +

    + The codomain sort of this selector. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isNull + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True if this + + + DatatypeSelector + + + is a null object. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + string + + + + + + + + toString + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the string representation of this datatype selector. +

    +
    +
    + Returns + + : + +
    +
    +

    + The string representation. +

    +
    +
    +
    +
    +
    +
    +

    + Friends +

    +
    +
    + + + friend + + + struct + + + + std::hash< + + + DatatypeSelector + + + > + +
    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + + cvc5 + + + + + :: + + + + + + + operator + + + + + << + + + + + ( + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + out + + + , + + + const + + + + + + + + DatatypeSelector + + + + + + + + & + + + + + stor + + + + ) + + +  + +
    +
    +
    +

    + Serialize a datatype selector to given stream. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + out + + – The output stream. +

      +
    • +
    • +

      + + stor + + – The datatype selector to be serialized to given stream. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The output stream. +

    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/driveroptions.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/driveroptions.html new file mode 100644 index 0000000000..37de801cb6 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/driveroptions.html @@ -0,0 +1,725 @@ + + + + + + + + + + + DriverOptions — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + DriverOptions + +  + +

    +
    +
    + + + + + + + + + + + class + + + + + + + + DriverOptions + + + + +  + +
    +
    +
    +

    + This class provides type-safe access to a few options that frontends are +likely to use, but can not be not be communicated appropriately via the +regular + + + + Solver::getOption() + + + + or + + + + Solver::getOptionInfo() + + + + functions. This includes, e.g., the input and output streams that can be +configured via + + + err + + + , + + + in + + + and + + + out + + + . This class does not store the options itself, +but only acts as a wrapper to the solver object. It can thus no longer be +used after the solver object has been destroyed. +

    +
    +

    + Public Functions +

    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + istream + + + + + + + & + + + + + + in + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Access the solver’s input stream +

    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + + err + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Access the solver’s error output stream +

    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + + out + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Access the solver’s output stream +

    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/grammar.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/grammar.html new file mode 100644 index 0000000000..3f5b608174 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/grammar.html @@ -0,0 +1,1667 @@ + + + + + + + + + + + Grammar — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Grammar + +  + +

    +

    + This class encapsulates a SyGuS grammar. It is created via + + + + cvc5::Solver::mkGrammar() + + + + and allows to define a context-free +grammar of terms, according to the definition of grammars in the SyGuS IF 2.1 +standard. +

    +
    + +
    +
    +
    + + + + + + + + + + + class + + + + + + + + Grammar + + + + +  + +
    +
    +
    +

    + A Sygus + + + Grammar + + + . This class can be used to define a context-free grammar of terms. Its interface coincides with the definition of grammars ( + + + GrammarDef + + + ) in the SyGuS IF 2.1 standard. +

    +
    +

    + Public Functions +

    +
    +
    + + + + + + + + + + + + Grammar + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Nullary constructor. Needed for the Cython API. +

    +
    +
    +
    +
    + + + + + + + + + + + + ~Grammar + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Destructor for bookeeping. +

    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isNull + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this is the null grammar ( + + + Grammar::Grammar() + + + ). +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this grammar is the null grammar. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + operator + + + + + == + + + + + ( + + + + const + + + + + + + + Grammar + + + + + + + + & + + + + + grammar + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Operator overloading for referential equality of two grammars. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + grammar + + – The grammarto compare to for equality. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if both grammars point to the same internal grammar object. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + operator + + + + + != + + + + + ( + + + + const + + + + + + + + Grammar + + + + + + + + & + + + + + grammar + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Referential disequality operator. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + grammar + + – The grammar to compare to for disequality. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if both grammars point to different internal grammar objects. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + addRule + + + + + ( + + + + const + + + + + + + + Term + + + + + + + + & + + + + + ntSymbol + + + , + + + const + + + + + + + + Term + + + + + + + + & + + + + + rule + + + + ) + + +  + +
    +
    +
    +

    + Add + + + rule + + + to the set of rules corresponding to + + + ntSymbol + + + . +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + ntSymbol + + – The non-terminal to which the rule is added. +

      +
    • +
    • +

      + + rule + + – The rule to add. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + addRules + + + + + ( + + + + const + + + + + + + + Term + + + + + + + + & + + + + + ntSymbol + + + , + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Term + + + + + + > + + + + + + + & + + + + + rules + + + + ) + + +  + +
    +
    +
    +

    + Add + + + rules + + + to the set of rules corresponding to + + + ntSymbol + + + . +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + ntSymbol + + – The non-terminal to which the rules are added. +

      +
    • +
    • +

      + + rules + + – The rules to add. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + addAnyConstant + + + + + ( + + + + const + + + + + + + + Term + + + + + + + + & + + + + + ntSymbol + + + + ) + + +  + +
    +
    +
    +

    + Allow + + + ntSymbol + + + to be an arbitrary constant. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + ntSymbol + + – The non-terminal allowed to be any constant. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + addAnyVariable + + + + + ( + + + + const + + + + + + + + Term + + + + + + + + & + + + + + ntSymbol + + + + ) + + +  + +
    +
    +
    +

    + Allow + + + ntSymbol + + + to be any input variable to corresponding synth-fun/synth-inv with the same sort as + + + ntSymbol + + + . +

    +
    +
    + Parameters + + : + +
    +
    +

    + + ntSymbol + + – The non-terminal allowed to be any input variable. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + string + + + + + + + + toString + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + A string representation of this grammar. +

    +
    +
    +
    +
    +
    +
    +

    + Friends +

    +
    +
    + + + friend + + + class + + + + parser::Cmd + +
    +
    +
    +
    + + + friend + + + struct + + + + std::hash< + + + Grammar + + + > + +
    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + + cvc5 + + + + + :: + + + + + + + operator + + + + + << + + + + + ( + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + out + + + , + + + const + + + + + + + + Grammar + + + + + + + + & + + + + + grammar + + + + ) + + +  + +
    +
    +
    +

    + Serialize a grammar to given stream. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + out + + – The output stream. +

      +
    • +
    • +

      + + grammar + + – The grammar to be serialized to the given output stream. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The output stream. +

    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/inputparser.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/inputparser.html new file mode 100644 index 0000000000..d83e862f79 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/inputparser.html @@ -0,0 +1,1801 @@ + + + + + + + + + + + InputParser — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + InputParser + +  + +

    +

    + This class is the main interface for retrieving + + + + commands + + + + and + + + + expressions + + + + from an +input. +

    +
    +
    +
    + + + + + + + + + + + class + + + + + + + + InputParser + + + + +  + +
    +
    +
    +

    + This class is the main interface for retrieving commands and expressions from an input using a parser. +

    +

    + After construction, it is expected that an input is first configured via, e.g., + + + + + InputParser::setFileInput() + + + + + , + + + + + InputParser::setStreamInput() + + + + + , + + + + + InputParser::setStringInput() + + + + + or + + + + + InputParser::setIncrementalStringInput() + + + + + and + + + + + InputParser::appendIncrementalStringInput() + + + + + . Then, functions + + + + + InputParser::nextCommand() + + + + + and + + + InputParser::nextExpression() + + + can be invoked to parse the input. +

    +

    + The input parser interacts with a symbol manager, which determines which symbols are defined in the current context, based on the background logic and user-defined symbols. If no symbol manager is provided, then the input parser will construct (an initially empty) one. +

    +

    + If provided, the symbol manager must have a logic that is compatible with the provided solver. That is, if both the solver and symbol manager have their logics set ( + + + + + SymbolManager::isLogicSet() + + + + + and + + + + + Solver::isLogicSet() + + + + + ), then their logics must be the same. +

    +

    + Upon setting an input source, if either the solver (resp. symbol manager) has its logic set, then the symbol manager (resp. solver) is set to use that logic, if its logic is not already set. +

    +
    +

    + Public Functions +

    +
    +
    + + + + + + + + + + + + InputParser + + + + + ( + + + + + Solver + + + + + + + + * + + + + + solver + + + , + + + + SymbolManager + + + + + + + + * + + + + + sm + + + + ) + + +  + +
    +
    +
    +

    + Construct an input parser +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + solver + + – The solver (e.g. for constructing terms and sorts) +

      +
    • +
    • +

      + + sm + + – The symbol manager, which contains a symbol table that maps symbols to terms and sorts. Must have a logic that is compatible with the solver. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + InputParser + + + + + ( + + + + + Solver + + + + + + + + * + + + + + solver + + + + ) + + +  + +
    +
    +
    +

    + Construct an input parser with an initially empty symbol manager. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + solver + + – The solver (e.g. for constructing terms and sorts) +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Solver + + + + + + + + * + + + + + + getSolver + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Get the associated solver instance of this input parser. +

    +
    +
    + Returns + + : + +
    +
    +

    + The solver instance. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + SymbolManager + + + + + + + + * + + + + + + getSymbolManager + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Get the associated symbol manager of this input parser. +

    +
    +
    + Returns + + : + +
    +
    +

    + The associated symbol manager. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + setFileInput + + + + + ( + + + + modes + + + + + :: + + + + + InputLanguage + + + + + + + lang + + + , + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + filename + + + + ) + + +  + +
    +
    +
    +

    + Configure given file as input. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + lang + + – The input language (e.g., + + + modes::InputLanguage::SMT_LIB_2_6 + + + ). +

      +
    • +
    • +

      + + filename + + – The name of the file to configure. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + setStreamInput + + + + + ( + + + + modes + + + + + :: + + + + + InputLanguage + + + + + + + lang + + + , + + + std + + + + + :: + + + + + istream + + + + + + + & + + + + + input + + + , + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + name + + + + ) + + +  + +
    +
    +
    +

    + Configure given stream as input. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + lang + + – The input language. +

      +
    • +
    • +

      + + input + + – The input stream. +

      +
    • +
    • +

      + + name + + – The name of the stream, for use in error messages. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + setStringInput + + + + + ( + + + + modes + + + + + :: + + + + + InputLanguage + + + + + + + lang + + + , + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + input + + + , + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + name + + + + ) + + +  + +
    +
    +
    +

    + Configure a given concrete input string as the input to this parser. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + lang + + – The input language of the input string. +

      +
    • +
    • +

      + + input + + – The input string. +

      +
    • +
    • +

      + + name + + – The name to use as input stream name for error messages. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + setIncrementalStringInput + + + + + ( + + + + modes + + + + + :: + + + + + InputLanguage + + + + + + + lang + + + , + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + name + + + + ) + + +  + +
    +
    +
    +

    + Configure that we will be feeding strings to this parser via + + + + + appendIncrementalStringInput() + + + + + below. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + lang + + – the input language +

      +
    • +
    • +

      + + name + + – the name of the stream, for use in error messages +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + appendIncrementalStringInput + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + input + + + + ) + + +  + +
    +
    +
    +

    + Append string to the input being parsed by this parser. Should be called after calling + + + + + setIncrementalStringInput() + + + + + . +

    +
    +
    + Parameters + + : + +
    +
    +

    + + input + + – The input string +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Command + + + + + + + + + nextCommand + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Parse and return the next command. Will initialize the logic to “ALL” or the forced logic if no logic is set prior to this point and a command is read that requires initializing the logic. +

    +
    +
    + Returns + + : + +
    +
    +

    + The parsed command. This is the null command if no command was read. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + nextTerm + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Parse and return the next term. Requires setting the logic prior to this point. +

    +
    +
    + Returns + + : + +
    +
    +

    + The parsed term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + done + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Is this parser done reading input? +

    +
    +
    + Returns + + : + +
    +
    +

    + True if parser is done reading input. +

    +
    +
    +
    +
    +
    +
    +

    + Friends +

    +
    +
    + + + friend + + + class + + + + internal::InteractiveShell + +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/op.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/op.html new file mode 100644 index 0000000000..d443f82d4c --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/op.html @@ -0,0 +1,1698 @@ + + + + + + + + + + + Op — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Op + +  + +

    +

    + This class encapsulates a cvc5 operator. A + + + + cvc5::Op + + + + is a term that +represents an operator, instantiated with the parameters it requires (if any). +

    +

    + A + + + + cvc5::Term + + + + of operator kind that does not require additional +parameters, e.g., + + + + cvc5::Kind::ADD + + + + , is usually constructed via + + + + cvc5::Solver::mkTerm(Kind + + + kind, + + + const + + + std::vector<Term>& + + + children) + + + + . +Alternatively, any + + + + cvc5::Term + + + + can be constructed via first +instantiating a corresponding + + + + cvc5::Op + + + + , even if the operator does +not require additional parameters. +Terms with operators that require additional parameters, e.g., + + + + cvc5::Kind::BITVECTOR_EXTRACT + + + + , must be created via + + + + cvc5::TermManager::mkOp() + + + + and + + + + cvc5::TermManager::mkTerm(const + + + Op& + + + op, + + + const + + + std::vector<Term>& + + + children) + + + + . +

    +
    + +
    +
    +
    + + + + + + + + + + + class + + + + + + + + Op + + + + +  + +
    +
    +
    +

    + A cvc5 operator. +

    +

    + An operator is a term that represents certain operators, instantiated with its required parameters, e.g., a + + + Term + + + of kind #BITVECTOR_EXTRACT. +

    +
    +

    + Public Functions +

    +
    +
    + + + + + + + + + + + + Op + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Constructor. +

    +
    +
    +
    +
    + + + + + + + + + + + + ~Op + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Destructor. +

    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + operator + + + + + == + + + + + ( + + + + const + + + + + + + + Op + + + + + + + + & + + + + + t + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Syntactic equality operator. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + t + + – The operator to compare to for equality. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if both operators are syntactically identical. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + operator + + + + + != + + + + + ( + + + + const + + + + + + + + Op + + + + + + + + & + + + + + t + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Syntactic disequality operator. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + t + + – The operator to compare to for disequality. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if operators differ syntactically. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Kind + + + + + + + + + getKind + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the kind of this operator. +

    +
    +
    + Returns + + : + +
    +
    +

    + The kind of this operator. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isNull + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this operator is nullary. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this operator is a nullary operator. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isIndexed + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this operator is indexed. +

    +
    +
    + Returns + + : + +
    +
    +

    + True iff this operator is indexed. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + size_t + + + + + + + + getNumIndices + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the number of indices of this operator. +

    +
    +
    + Returns + + : + +
    +
    +

    + The number of indices of this operator. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + operator + + + + + [] + + + + + ( + + + + size_t + + + + + + + i + + + + ) + + +  + +
    +
    +
    +

    + Get the index at position + + + i + + + of an indexed operator. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + i + + – The position of the index to return. +

    +
    +
    + Returns + + : + +
    +
    +

    + The index at position i. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + string + + + + + + + + toString + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the string representation of this operator. +

    +
    +
    + Returns + + : + +
    +
    +

    + A string representation of this operator. +

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + + cvc5 + + + + + :: + + + + + + + operator + + + + + << + + + + + ( + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + out + + + , + + + const + + + + + + + + Op + + + + + + + + & + + + + + op + + + + ) + + +  + +
    +
    +
    +

    + Serialize an operator to given stream. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + out + + – The output stream. +

      +
    • +
    • +

      + + op + + – The operator to be serialized to the given output stream. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The output stream. +

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + template + + + + + < + + + + + > + + +
    + + + + + struct + + + + + + + + hash + + + + + + < + + + + + cvc5 + + + + + :: + + + + + + Op + + + + + + > + + + +  + +
    +
    +
    +

    + Hash function for Ops. +

    +
    +

    + Public Functions +

    +
    +
    + + + + + + + + + + + size_t + + + + + + + + operator + + + + + () + + + + + ( + + + + const + + + + + + + cvc5 + + + + + :: + + + + + + Op + + + + + + + + & + + + + + op + + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/optioninfo.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/optioninfo.html new file mode 100644 index 0000000000..4529739340 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/optioninfo.html @@ -0,0 +1,2671 @@ + + + + + + + + + + + OptionInfo — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + OptionInfo + +  + +

    +

    + This class encapsulates all the information associated with a configuration +option. It can be retrieved via + + + + cvc5::Solver::getOptionInfo() + + + + and allows to query any configuration information associated with an option. +

    +
    + +
    +
    +
    + + + + + + + + + + + struct + + + + + + + + OptionInfo + + + + +  + +
    +
    +
    +

    +

    +

    + Holds information about a specific option, including its name, its +aliases, whether the option was explicitly set by the user, and information +concerning its value. It can be obtained via + + + + Solver::getOptionInfo() + + + + and +allows for a more detailed inspection of options than + + + + Solver::getOption() + + + + . The + + + + valueInfo + + + + member holds any of the +following alternatives: +

    +
      +
    • +

      + + + + VoidInfo + + + + if the option holds no +value (or the value has no native type) +

      +
    • +
    • +

      + + + + ValueInfo + + + + if the option is of +type + + + bool + + + or + + + std::string + + + , holds the current value and the default +value. +

      +
    • +
    • +

      + + + + NumberInfo + + + + if the option is of +type + + + int64_t + + + , + + + uint64_t + + + or + + + double + + + , holds the current and default +value, as well as the minimum and maximum. +

      +
    • +
    • +

      + + + + ModeInfo + + + + if the option is a mode +option, holds the current and default values, as well as a list of valid +modes. +

      +
    • +
    +

    + Additionally, this class provides convenience functions to obtain the +current value of an option in a type-safe manner using + + + + boolValue() + + + + , + + + + stringValue() + + + + , + + + + intValue() + + + + , + + + + uintValue() + + + + and + + + + doubleValue() + + + + . They assert that the option has the +respective type and return the current value. +

    +

    + If the option has a special type that is not covered by the above +alternatives, the + + + + valueInfo + + + + holds +a + + + + VoidInfo + + + + . Some options, that are +expected to be used by frontends (e.g., input and output streams) can also +be accessed using + + + + Solver::getDriverOptions() + + + + . +

    +
    +

    + Public Types +

    +
    +
    + + + + + + + + + using + + + + + + + + OptionInfoVariant + + + + + + + + = + + + + + + + std + + + + + :: + + + + + variant + + + + + < + + + + + + VoidInfo + + + + + + , + + + + + + + + ValueInfo + + + + + + < + + + + + bool + + + + + > + + + + + , + + + + + + + + ValueInfo + + + + + + < + + + + + std + + + + + :: + + + + + string + + + + + > + + + + + , + + + + + + + + NumberInfo + + + + + + < + + + + + int64_t + + + + + > + + + + + , + + + + + + + + NumberInfo + + + + + + < + + + + + uint64_t + + + + + > + + + + + , + + + + + + + + NumberInfo + + + + + + < + + + + + double + + + + + > + + + + + , + + + + + + + + ModeInfo + + + + + + > + + + +  + +
    +
    +
    +

    + Possible types for + + + valueInfo + + + . +

    +
    +
    +
    +
    +

    + Public Functions +

    +
    +
    + + + + + + + + + + + bool + + + + + + + + boolValue + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the current value as a + + + bool + + + . +

    +
    +

    + Note +

    +

    + Asserts that + + + valueInfo + + + holds a + + + bool + + + . +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The current value as a + + + bool + + + . +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + string + + + + + + + + stringValue + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the current value as a + + + std::string + + + . +

    +
    +

    + Note +

    +

    + Asserts that + + + valueInfo + + + holds a + + + std::string + + + . +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The current value as a + + + std::string + + + . +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + int64_t + + + + + + + + intValue + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the current value as an + + + int64_t + + + . +

    +
    +

    + Note +

    +

    + Asserts that + + + valueInfo + + + holds an + + + int64_t + + + . +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The current value as a + + + int64_t + + + . +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + uint64_t + + + + + + + + uintValue + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the current value as a + + + uint64_t + + + . +

    +
    +

    + Note +

    +

    + Asserts that + + + valueInfo + + + holds a + + + uint64_t + + + . +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The current value as a + + + uint64_t + + + . +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + double + + + + + + + + doubleValue + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Obtain the current value as a + + + double + + + . +

    +
    +

    + Note +

    +

    + Asserts that + + + valueInfo + + + holds a + + + double + + + . +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The current value as a + + + double + + + . +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + string + + + + + + + + toString + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get a string representation of an option info. +

    +
    +
    + Returns + + : + +
    +
    +

    + The string representation. +

    +
    +
    +
    +
    +
    +
    +

    + Public Members +

    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + string + + + + + + + + name + + + + +  + +
    +
    +
    +

    + The option name +

    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + std + + + + + :: + + + + + string + + + + + > + + + + + + + + aliases + + + + +  + +
    +
    +
    +

    + The option name aliases +

    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + setByUser + + + + +  + +
    +
    +
    +

    + Whether the option was explicitly set by the user +

    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isExpert + + + + +  + +
    +
    +
    +

    + Whether this is an expert option +

    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isRegular + + + + +  + +
    +
    +
    +

    + Whether this is a regular option +

    +
    +
    +
    +
    + + + + + + + + + + + + OptionInfoVariant + + + + + + + + + valueInfo + + + + +  + +
    +
    +
    +

    + The option value information +

    +
    +
    +
    +
    +
    + + + + + + + + + + + struct + + + + + + + + ModeInfo + + + + +  + +
    +
    +
    +

    + Information for mode option values. +

    +
    +

    + Public Members +

    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + string + + + + + + + + defaultValue + + + + +  + +
    +
    +
    +

    + The default value. +

    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + string + + + + + + + + currentValue + + + + +  + +
    +
    +
    +

    + The current value. +

    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + std + + + + + :: + + + + + string + + + + + > + + + + + + + + modes + + + + +  + +
    +
    +
    +

    + The possible modes. +

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + template + + + + + < + + + + + typename + + + + + + + + T + + + + + + > + + +
    + + + + + struct + + + + + + + + NumberInfo + + + + +  + +
    +
    +
    +

    + Information for numeric values. + + + T + + + can be + + + int64_t + + + , + + + uint64_t + + + or + + + double + + + . +

    +
    +

    + Public Members +

    +
    +
    + + + + + + + + + + + + T + + + + + + + + + defaultValue + + + + +  + +
    +
    +
    +

    + The default value. +

    +
    +
    +
    +
    + + + + + + + + + + + + T + + + + + + + + + currentValue + + + + +  + +
    +
    +
    +

    + The current value. +

    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + optional + + + + + < + + + + + + T + + + + + + > + + + + + + + + minimum + + + + +  + +
    +
    +
    +

    + The optional minimum value. +

    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + optional + + + + + < + + + + + + T + + + + + + > + + + + + + + + maximum + + + + +  + +
    +
    +
    +

    + The optional maximum value. +

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + template + + + + + < + + + + + typename + + + + + + + + T + + + + + + > + + +
    + + + + + struct + + + + + + + + ValueInfo + + + + +  + +
    +
    +
    +

    + Basic information for option values. + + + T + + + can be + + + bool + + + or + + + std::string + + + . +

    +
    +

    + Public Members +

    +
    +
    + + + + + + + + + + + + T + + + + + + + + + defaultValue + + + + +  + +
    +
    +
    +

    + The default value. +

    +
    +
    +
    +
    + + + + + + + + + + + + T + + + + + + + + + currentValue + + + + +  + +
    +
    +
    +

    + The current value. +

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + struct + + + + + + + + VoidInfo + + + + +  + +
    +
    +
    +

    + Has no value information. +

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + + cvc5 + + + + + :: + + + + + + + operator + + + + + << + + + + + ( + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + os + + + , + + + const + + + + + + + + OptionInfo + + + + + + + + & + + + + + oi + + + + ) + + +  + +
    +
    +
    +

    + Print an + + + + + OptionInfo + + + + + object to an output stream. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + os + + – The output stream. +

      +
    • +
    • +

      + + oi + + – The option info. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The output stream. +

    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/plugin.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/plugin.html new file mode 100644 index 0000000000..1ef46a1ddb --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/plugin.html @@ -0,0 +1,977 @@ + + + + + + + + + + + Plugin — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Plugin + +  + +

    +

    + This class encapsulates a user-specified solver plugin. +It is configured via + + + + cvc5::Solver::addPlugin() + + + + . +

    +
    +
    +
    + + + + + + + + + + + class + + + + + + + + Plugin + + + + +  + +
    +
    +
    +

    + A cvc5 plugin. +

    +
    +

    + Public Functions +

    +
    +
    + + + + + + + + + + + + Plugin + + + + + ( + + + + + TermManager + + + + + + + + & + + + + + tm + + + + ) + + +  + +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + virtual + + + + + + + + ~Plugin + + + + + ( + + + ) + + + + + + = + + + + + + + default + + + +  + +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + virtual + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Term + + + + + + > + + + + + + + + check + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Call to check, return vector of lemmas to add to the SAT solver. This method is called periodically, roughly at every SAT decision. +

    +
    +
    + Returns + + : + +
    +
    +

    + The vector of lemmas to add to the SAT solver. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + virtual + + + + + + + void + + + + + + + + notifySatClause + + + + + ( + + + + const + + + + + + + + Term + + + + + + + + & + + + + + clause + + + + ) + + +  + +
    +
    +
    +

    + Notify SAT clause, called when + + + clause + + + is learned by the SAT solver. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + clause + + – The learned clause. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + virtual + + + + + + + void + + + + + + + + notifyTheoryLemma + + + + + ( + + + + const + + + + + + + + Term + + + + + + + + & + + + + + lemma + + + + ) + + +  + +
    +
    +
    +

    + Notify theory lemma, called when + + + lemma + + + is sent by a theory solver. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + lemma + + – The theory lemma. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + virtual + + + + + + + std + + + + + :: + + + + + string + + + + + + + + getName + + + + + ( + + + ) + + + + + + = + + + + + + + 0 + + + +  + +
    +
    +
    +

    + Get the name of the plugin (for debugging). +

    +
    +
    + Returns + + : + +
    +
    +

    + The name of the plugin. +

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/proof.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/proof.html new file mode 100644 index 0000000000..6ab048e875 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/proof.html @@ -0,0 +1,1480 @@ + + + + + + + + + + + Proof — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Proof + +  + +

    +

    + This class encapsulates a cvc5 proof object, which can be retrieved via +function + + + + cvc5::Solver::getProof() + + + + after a + + + + cvc5::Solver::checkSat() + + + + query returns an + + unsat + + result. +

    +
    + +
    +
    +
    + + + + + + + + + + + class + + + + + + + + Proof + + + + +  + +
    +
    +
    +

    + A cvc5 proof. Proofs are trees and every proof object corresponds to the root step of a proof. The branches of the root step are the premises of the step. +

    +
    +

    + Public Functions +

    +
    +
    + + + + + + + + + + + + Proof + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Nullary constructor. Needed for the Cython API. +

    +
    +
    +
    +
    + + + + + + + + + + + + ~Proof + + + + + ( + + + ) + + +  + +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isNull + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this is the null proof ( + + + Proof::Proof() + + + ). +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this grammar is the null proof. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + ProofRule + + + + + + + + + getRule + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the proof rule used by the root step of the proof. +

    +
    +
    + Returns + + : + +
    +
    +

    + The proof rule. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + ProofRewriteRule + + + + + + + + + getRewriteRule + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the proof rewrite rule used by the root step of the proof. +

    +

    + Requires that + + + + + getRule() + + + + + does not return #DSL_REWRITE or #THEORY_REWRITE. +

    +
    +
    + Returns + + : + +
    +
    +

    + The proof rewrite rule. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + getResult + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The conclusion of the root step of the proof. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Proof + + + + + + > + + + + + + + + getChildren + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The premises of the root step of the proof. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Term + + + + + + > + + + + + + + + getArguments + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The arguments of the root step of the proof as a vector of terms. Some of those terms might be strings. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + operator + + + + + == + + + + + ( + + + + const + + + + + + + + Proof + + + + + + + + & + + + + + p + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Operator overloading for referential equality of two proofs. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + p + + – The proof to compare to for equality. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if both proofs point to the same internal proof object. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + operator + + + + + != + + + + + ( + + + + const + + + + + + + + Proof + + + + + + + + & + + + + + p + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Referential disequality operator. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + p + + – The proof to compare to for disequality. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if both proofs point to different internal proof objects. +

    +
    +
    +
    +
    +
    +
    +

    + Friends +

    +
    +
    + + + friend + + + struct + + + + std::hash< + + + Proof + + + > + +
    +
    +
    +
    +
    +
    +
    +
    + + + + + + + template + + + + + < + + + + + > + + +
    + + + + + struct + + + + + + + + hash + + + + + + < + + + + + cvc5 + + + + + :: + + + + + + Proof + + + + + + > + + + +  + +
    +
    +
    +

    + Hash function for proofs. +

    +
    +

    + Public Functions +

    +
    +
    + + + + + + + + + + + size_t + + + + + + + + operator + + + + + () + + + + + ( + + + + const + + + + + + + cvc5 + + + + + :: + + + + + + Proof + + + + + + + + & + + + + + p + + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/result.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/result.html new file mode 100644 index 0000000000..acbaaa73e6 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/result.html @@ -0,0 +1,1387 @@ + + + + + + + + + + + Result — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Result + +  + +

    +

    + This class represents a + + + + cvc5::Solver + + + + result. +

    +

    + A + + + + cvc5::Result + + + + encapsulates a 3-valued solver result (sat, unsat, +unknown). Explanations for unknown results are represented as enum class + + + + cvc5::UnknownExplanation + + + + and can be queried via + + + + cvc5::Result::getUnknownExplanation() + + + + . +

    +
    + +
    +
    +
    + + + + + + + + + + + class + + + + + + + + Result + + + + +  + +
    +
    +
    +

    + Encapsulation of a three-valued solver result, with explanations. +

    +
    +

    + Public Functions +

    +
    +
    + + + + + + + + + + + + Result + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Constructor. +

    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isNull + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this + + + Result + + + is a nullary + + + Result + + + . +

    +
    +
    + Returns + + : + +
    +
    +

    + True if + + + Result + + + is empty (a nullary + + + Result + + + ) and not an actual result returned from a checkSat() (and friends) query. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isSat + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True if this result is from a satisfiable checkSat() or checkSatAssuming() query. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isUnsat + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True if this result is from an unsatisfiable checkSat() or checkSatAssuming() query. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isUnknown + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True if result is from a checkSat() or checkSatAssuming() query and cvc5 was not able to determine (un)satisfiability. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + operator + + + + + == + + + + + ( + + + + const + + + + + + + + Result + + + + + + + + & + + + + + r + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Operator overloading for equality of two results. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + r + + – The result to compare to for equality. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the results are equal. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + operator + + + + + != + + + + + ( + + + + const + + + + + + + + Result + + + + + + + + & + + + + + r + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Operator overloading for disequality of two results. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + r + + – The result to compare to for disequality. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the results are disequal. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + UnknownExplanation + + + + + + + + + getUnknownExplanation + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + An explanation for an unknown query result. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + string + + + + + + + + toString + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + A string representation of this result. +

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + + cvc5 + + + + + :: + + + + + + + operator + + + + + << + + + + + ( + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + out + + + , + + + const + + + + + + + + Result + + + + + + + + & + + + + + r + + + + ) + + +  + +
    +
    +
    +

    + Serialize a + + + Result + + + to given stream. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + out + + – The output stream. +

      +
    • +
    • +

      + + r + + – The result to be serialized to the given output stream. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The output stream. +

    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/solver.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/solver.html new file mode 100644 index 0000000000..8e69dc1ffd --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/solver.html @@ -0,0 +1,23257 @@ + + + + + + + + + + + Solver — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Solver + +  + +

    +

    + This class represents a cvc5 solver instance. +

    +

    + + + + Terms + + + + , + + + + Sorts + + + + and + + + + Ops + + + + are not tied to a + + + + cvc5::Solver + + + + but associated with a + + + + cvc5::TermManager + + + + instance, which can be +shared between solver instances. +

    +

    + Solver options are configured via + + + + cvc5::Solver::setOption() + + + + and queried via + + + + cvc5::Solver::getOption() + + + + (for more information on configuration options, see + + + Options + + + ). +Information about a specific option can be retrieved via + + + cvc5::getOptionInfo() + + + (see + + + OptionInfo + + + ). +

    +
    +
    +
    + + + + + + + + + + + class + + + + + + + + Solver + + + + +  + +
    +
    +
    +

    + A cvc5 solver. +

    +
    +

    + Public Functions +

    +
    +
    + + + + + + + + + + + + Solver + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Constructor. +

    +
    +

    + Warning +

    +

    + This constructor is deprecated and replaced by + + + + + Solver::Solver(TermManager&) + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The + + + Solver + + + . +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Solver + + + + + ( + + + + + TermManager + + + + + + + + & + + + + + tm + + + + ) + + +  + +
    +
    +
    +

    + Constructor. +

    +

    + Constructs solver instance from a given term manager instance. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + tm + + – The associated term manager. +

    +
    +
    + Returns + + : + +
    +
    +

    + The + + + Solver + + + . +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + ~Solver + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Destructor. +

    +
    +
    +
    +
    + + + + + + + + + + + + Solver + + + + + ( + + + + const + + + + + + + + Solver + + + + + + & + + + + ) + + + + + + = + + + + + + + delete + + + +  + +
    +
    +
    +

    + Disallow copy/assignment. +

    +
    +
    +
    +
    + + + + + + + + + + + + Solver + + + + + + + + & + + + + + + operator + + + + + = + + + + + ( + + + + const + + + + + + + + Solver + + + + + + & + + + + ) + + + + + + = + + + + + + + delete + + + +  + +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + getBooleanSort + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the Boolean sort. +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::getBooleanSort() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + + + Sort + + + Boolean. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + getIntegerSort + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the Integer sort. +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::getIntegerSort() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + + + Sort + + + Integer. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + getRealSort + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the Real sort. +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::getRealSort() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + + + Sort + + + Real. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + getRegExpSort + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the regular expression sort. +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::getRegExpSort() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + + + Sort + + + RegExp. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + getRoundingModeSort + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the rounding mode sort. +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::getRoundingModeSort() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + + + Sort + + + RoundingMode. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + getStringSort + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the string sort. +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::getStringSort() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + + + Sort + + + String. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + mkArraySort + + + + + ( + + + + const + + + + + + + + Sort + + + + + + + + & + + + + + indexSort + + + , + + + const + + + + + + + + Sort + + + + + + + + & + + + + + elemSort + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create an array sort. +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkArraySort() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + indexSort + + – The array index sort. +

      +
    • +
    • +

      + + elemSort + + – The array element sort. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The array sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + mkBitVectorSort + + + + + ( + + + + uint32_t + + + + + + + size + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a bit-vector sort. +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkBitVectorSort() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + size + + – The bit-width of the bit-vector sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + The bit-vector sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + mkFloatingPointSort + + + + + ( + + + + uint32_t + + + + + + + exp + + + , + + + uint32_t + + + + + + + sig + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a floating-point sort. +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkFloatingPointSort() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + exp + + – The bit-width of the exponent of the floating-point sort. +

      +
    • +
    • +

      + + sig + + – The bit-width of the significand of the floating-point sort. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + mkFiniteFieldSort + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + size + + + , + + + uint32_t + + + + + + + base + + + + + + + = + + + + + + + 10 + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a finite-field sort from a given string of base n. +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkFiniteFieldSort() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + size + + – The modulus of the field. Must be prime. +

      +
    • +
    • +

      + + base + + – The base of the string representation of + + + size + + + . +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The finite-field sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + mkDatatypeSort + + + + + ( + + + + const + + + + + + + + DatatypeDecl + + + + + + + + & + + + + + dtypedecl + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a datatype sort. +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkDatatypeSort() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + dtypedecl + + – The datatype declaration from which the sort is created. +

    +
    +
    + Returns + + : + +
    +
    +

    + The datatype sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Sort + + + + + + > + + + + + + + + mkDatatypeSorts + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + DatatypeDecl + + + + + + > + + + + + + + & + + + + + dtypedecls + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a vector of datatype sorts. +

    +
    +

    + Note +

    +

    + The names of the datatype declarations must be distinct. +

    +
    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkDatatypeSorts() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + dtypedecls + + – The datatype declarations from which the sort is created. +

    +
    +
    + Returns + + : + +
    +
    +

    + The datatype sorts. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + mkFunctionSort + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Sort + + + + + + > + + + + + + + & + + + + + sorts + + + , + + + const + + + + + + + + Sort + + + + + + + + & + + + + + codomain + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create function sort. +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkFunctionSort() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + sorts + + – The sort of the function arguments. +

      +
    • +
    • +

      + + codomain + + – The sort of the function return value. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The function sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + mkParamSort + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + optional + + + + + < + + + + + std + + + + + :: + + + + + string + + + + + > + + + + + + + & + + + + + symbol + + + + + + + = + + + + + + + std + + + + + :: + + + + + nullopt + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a sort parameter. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkParamSort() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + symbol + + – The name of the sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + The sort parameter. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + mkPredicateSort + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Sort + + + + + + > + + + + + + + & + + + + + sorts + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a predicate sort. +

    +

    + This is equivalent to calling + + + mkFunctionSort() + + + with the Boolean sort as the codomain. +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkPredicateSort() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + sorts + + – The list of sorts of the predicate. +

    +
    +
    + Returns + + : + +
    +
    +

    + The predicate sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + mkRecordSort + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + std + + + + + :: + + + + + pair + + + + + < + + + + + std + + + + + :: + + + + + string + + + + + , + + + + + + + + Sort + + + + + + > + + + + + > + + + + + + + & + + + + + fields + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a record sort +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkRecordSort() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + fields + + – The list of fields of the record. +

    +
    +
    + Returns + + : + +
    +
    +

    + The record sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + mkSetSort + + + + + ( + + + + const + + + + + + + + Sort + + + + + + + + & + + + + + elemSort + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a set sort. +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkSetSort() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + elemSort + + – The sort of the set elements. +

    +
    +
    + Returns + + : + +
    +
    +

    + The set sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + mkBagSort + + + + + ( + + + + const + + + + + + + + Sort + + + + + + + + & + + + + + elemSort + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a bag sort. +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkBagSort() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + elemSort + + – The sort of the bag elements. +

    +
    +
    + Returns + + : + +
    +
    +

    + The bag sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + mkSequenceSort + + + + + ( + + + + const + + + + + + + + Sort + + + + + + + + & + + + + + elemSort + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a sequence sort. +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkSequenceSort() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + elemSort + + – The sort of the sequence elements. +

    +
    +
    + Returns + + : + +
    +
    +

    + The sequence sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + mkAbstractSort + + + + + ( + + + + + SortKind + + + + + + + + k + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create an abstract sort. An abstract sort represents a sort for a given kind whose parameters and arguments are unspecified. +

    +

    + The kind + + + k + + + must be the kind of a sort that can be abstracted, i.e., a sort that has indices or argument sorts. For example, #ARRAY_SORT and #BITVECTOR_SORT can be passed as the kind + + + k + + + to this function, while #INTEGER_SORT and #STRING_SORT cannot. +

    +
    +

    + Note +

    +

    + Providing the kind #ABSTRACT_SORT as an argument to this function returns the (fully) unspecified sort, denoted + + + ? + + + . +

    +
    +
    +

    + Note +

    +

    + Providing a kind + + + k + + + that has no indices and a fixed arity of argument sorts will return the sort of kind + + + k + + + whose arguments are the unspecified sort. For example, + + + mkAbstractSort(SortKind::ARRAY_SORT) + + + will return the sort + + + (ARRAY_SORT + + + ? + + + ?) + + + instead of the abstract sort whose abstract kind is #ARRAY_SORT. +

    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkAbstractSort() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + k + + – The kind of the abstract sort +

    +
    +
    + Returns + + : + +
    +
    +

    + The abstract sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + mkUninterpretedSort + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + optional + + + + + < + + + + + std + + + + + :: + + + + + string + + + + + > + + + + + + + & + + + + + symbol + + + + + + + = + + + + + + + std + + + + + :: + + + + + nullopt + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create an uninterpreted sort. +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkUninterpretedSort() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + symbol + + – The name of the sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + The uninterpreted sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + mkUnresolvedDatatypeSort + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + symbol + + + , + + + size_t + + + + + + + arity + + + + + + + = + + + + + + + 0 + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create an unresolved datatype sort. +

    +

    + This is for creating yet unresolved sort placeholders for mutually recursive parametric datatypes. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkUnresolvedDatatypeSort() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + symbol + + – The symbol of the sort. +

      +
    • +
    • +

      + + arity + + – The number of sort parameters of the sort. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The unresolved sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + mkUninterpretedSortConstructorSort + + + + + ( + + + + size_t + + + + + + + arity + + + , + + + const + + + + + + + std + + + + + :: + + + + + optional + + + + + < + + + + + std + + + + + :: + + + + + string + + + + + > + + + + + + + & + + + + + symbol + + + + + + + = + + + + + + + std + + + + + :: + + + + + nullopt + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create an uninterpreted sort constructor sort. +

    +

    + An uninterpreted sort constructor is an uninterpreted sort with arity > 0. +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + TermManager::mkUninterpretedSortConstructorerSort() + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + symbol + + – The symbol of the sort. +

      +
    • +
    • +

      + + arity + + – The arity of the sort (must be > 0) +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The uninterpreted sort constructor sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + mkTupleSort + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Sort + + + + + + > + + + + + + + & + + + + + sorts + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a tuple sort. +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkTupleSort() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + sorts + + – The sorts of the elements of the tuple. +

    +
    +
    + Returns + + : + +
    +
    +

    + The tuple sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + mkNullableSort + + + + + ( + + + + const + + + + + + + + Sort + + + + + + + + & + + + + + sort + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a nullable sort. +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkNullableSort() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort of the element of the nullable. +

    +
    +
    + Returns + + : + +
    +
    +

    + The nullable sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkTerm + + + + + ( + + + + + Kind + + + + + + + + kind + + + , + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Term + + + + + + > + + + + + + + & + + + + + children + + + + + + + = + + + + + + + { + + + + + } + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create n-ary term of given kind. +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkTerm() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + kind + + – The kind of the term. +

      +
    • +
    • +

      + + children + + – The children of the term. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The + + + Term + + +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkTerm + + + + + ( + + + + const + + + + + + + + Op + + + + + + + + & + + + + + op + + + , + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Term + + + + + + > + + + + + + + & + + + + + children + + + + + + + = + + + + + + + { + + + + + } + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create n-ary term of given kind from a given operator. Create operators with + + + mkOp() + + + . +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkTerm() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + op + + – The operator. +

      +
    • +
    • +

      + + children + + – The children of the term. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The + + + Term + + + . +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkTuple + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Term + + + + + + > + + + + + + + & + + + + + terms + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a tuple term. +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkTuple() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + terms + + – The elements in the tuple. +

    +
    +
    + Returns + + : + +
    +
    +

    + The tuple + + + Term + + + . +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkNullableSome + + + + + ( + + + + const + + + + + + + + Term + + + + + + + + & + + + + + term + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a nullable some term. +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkNullableSome() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The element value. +

    +
    +
    + Returns + + : + +
    +
    +

    + the Element value wrapped in some constructor. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkNullableVal + + + + + ( + + + + const + + + + + + + + Term + + + + + + + + & + + + + + term + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a selector for nullable term. +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkNullableVal() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – A nullable term. +

    +
    +
    + Returns + + : + +
    +
    +

    + The element value of the nullable term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkNullableIsNull + + + + + ( + + + + const + + + + + + + + Term + + + + + + + + & + + + + + term + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a null tester for a nullable term. +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + TermManager::mkNullableisNull() + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – A nullable term. +

    +
    +
    + Returns + + : + +
    +
    +

    + A tester whether term is null. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkNullableIsSome + + + + + ( + + + + const + + + + + + + + Term + + + + + + + + & + + + + + term + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a some tester for a nullable term. +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + TermManager::mkNullableisSome() + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – A nullable term. +

    +
    +
    + Returns + + : + +
    +
    +

    + A tester whether term is some. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkNullableNull + + + + + ( + + + + const + + + + + + + + Sort + + + + + + + + & + + + + + sort + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a constant representing an null of the given sort. +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkNullableNull() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort of the Nullable element. +

    +
    +
    + Returns + + : + +
    +
    +

    + The null constant. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkNullableLift + + + + + ( + + + + + Kind + + + + + + + + kind + + + , + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Term + + + + + + > + + + + + + + & + + + + + args + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a term that lifts kind to nullable terms. Example: If we have the term ((_ nullable.lift +) x y), where x, y of type (Nullable Int), then kind would be ADD, and args would be [x, y]. This function would return (nullable.lift (lambda ((a Int) (b Int)) (+ a b)) x y) +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkNullableLift() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + kind + + – The lifted operator. +

      +
    • +
    • +

      + + args + + – The arguments of the lifted operator. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + A term of Kind NULLABLE_LIFT where the first child is a lambda expression, and the remaining children are the original arguments. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Op + + + + + + + + + mkOp + + + + + ( + + + + + Kind + + + + + + + + kind + + + , + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + uint32_t + + + + + > + + + + + + + & + + + + + args + + + + + + + = + + + + + + + { + + + + + } + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create operator of Kind: +

    +
      +
    • +

      + #BITVECTOR_EXTRACT +

      +
    • +
    • +

      + #BITVECTOR_REPEAT +

      +
    • +
    • +

      + #BITVECTOR_ROTATE_LEFT +

      +
    • +
    • +

      + #BITVECTOR_ROTATE_RIGHT +

      +
    • +
    • +

      + #BITVECTOR_SIGN_EXTEND +

      +
    • +
    • +

      + #BITVECTOR_ZERO_EXTEND +

      +
    • +
    • +

      + #DIVISIBLE +

      +
    • +
    • +

      + #FLOATINGPOINT_TO_FP_FROM_FP +

      +
    • +
    • +

      + #FLOATINGPOINT_TO_FP_FROM_IEEE_BV +

      +
    • +
    • +

      + #FLOATINGPOINT_TO_FP_FROM_REAL +

      +
    • +
    • +

      + #FLOATINGPOINT_TO_FP_FROM_SBV +

      +
    • +
    • +

      + #FLOATINGPOINT_TO_FP_FROM_UBV +

      +
    • +
    • +

      + #FLOATINGPOINT_TO_SBV +

      +
    • +
    • +

      + #FLOATINGPOINT_TO_UBV +

      +
    • +
    • +

      + #INT_TO_BITVECTOR +

      +
    • +
    • +

      + #TUPLE_PROJECT +

      +
    • +
    +

    + See + + + cvc5::Kind + + + for a description of the parameters. +

    +
    +

    + Note +

    +

    + If + + + args + + + is empty, the + + + Op + + + simply wraps the + + + cvc5::Kind + + + . The Kind can be used in + + + Solver::mkTerm + + + directly without creating an + + + Op + + + first. +

    +
    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkOp() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + kind + + – The kind of the operator. +

      +
    • +
    • +

      + + args + + – The arguments (indices) of the operator. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Op + + + + + + + + + mkOp + + + + + ( + + + + + Kind + + + + + + + + kind + + + , + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + arg + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create operator of kind: +

    +
      +
    • +

      + #DIVISIBLE (to support arbitrary precision integers) See + + + cvc5::Kind + + + for a description of the parameters. +

      +
    • +
    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkOp() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + kind + + – The kind of the operator. +

      +
    • +
    • +

      + + arg + + – The string argument to this operator. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkTrue + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a Boolean true constant. +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkTrue() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The true constant. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkFalse + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a Boolean false constant. +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkFalse() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The false constant. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkBoolean + + + + + ( + + + + bool + + + + + + + val + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a Boolean constant. +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkBoolean() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + val + + – The value of the constant. +

    +
    +
    + Returns + + : + +
    +
    +

    + The Boolean constant. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkPi + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a constant representing the number Pi. +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkPi() + + + + + . It will be removed in a future release. +

    +
    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkPi() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + A constant representing Pi. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkInteger + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + s + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create an integer constant from a string. +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkInteger() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + s + + – The string representation of the constant, may represent an integer (e.g., “123”). +

    +
    +
    + Returns + + : + +
    +
    +

    + A constant of sort Integer assuming + + + s + + + represents an integer) +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkInteger + + + + + ( + + + + int64_t + + + + + + + val + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create an integer constant from a c++ int. +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkInteger() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + val + + – The value of the constant. +

    +
    +
    + Returns + + : + +
    +
    +

    + A constant of sort Integer. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkReal + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + s + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a real constant from a string. +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkReal() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + s + + – The string representation of the constant, may represent an integer (e.g., “123”) or real constant (e.g., “12.34” or “12/34”). +

    +
    +
    + Returns + + : + +
    +
    +

    + A constant of sort Real. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkReal + + + + + ( + + + + int64_t + + + + + + + val + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a real constant from an integer. +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkReal() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + val + + – The value of the constant. +

    +
    +
    + Returns + + : + +
    +
    +

    + A constant of sort Real. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkReal + + + + + ( + + + + int64_t + + + + + + + num + + + , + + + int64_t + + + + + + + den + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a real constant from a rational. +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkReal() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + num + + – The value of the numerator. +

      +
    • +
    • +

      + + den + + – The value of the denominator. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + A constant of sort Real. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkRegexpAll + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a regular expression all (re.all) term. +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + TermManager::mkRegExpAll() + + + . It will be removed in a future release. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The all term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkRegexpAllchar + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a regular expression allchar (re.allchar) term. +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + TermManager::mkRegExpAllChar() + + + . It will be removed in a future release. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The allchar term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkRegexpNone + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a regular expression none (re.none) term. +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + TermManager::mkRegExpNone() + + + . It will be removed in a future release. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The none term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkEmptySet + + + + + ( + + + + const + + + + + + + + Sort + + + + + + + + & + + + + + sort + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a constant representing an empty set of the given sort. +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkEmptySet() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort of the set elements. +

    +
    +
    + Returns + + : + +
    +
    +

    + The empty set constant. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkEmptyBag + + + + + ( + + + + const + + + + + + + + Sort + + + + + + + + & + + + + + sort + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a constant representing an empty bag of the given sort. +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkEmptyBag() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort of the bag elements. +

    +
    +
    + Returns + + : + +
    +
    +

    + The empty bag constant. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkSepEmp + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a separation logic empty term. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkSepEmp() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The separation logic empty term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkSepNil + + + + + ( + + + + const + + + + + + + + Sort + + + + + + + + & + + + + + sort + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a separation logic nil term. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkSepNil() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort of the nil term. +

    +
    +
    + Returns + + : + +
    +
    +

    + The separation logic nil term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkString + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + s + + + , + + + bool + + + + + + + useEscSequences + + + + + + + = + + + + + + + false + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a String constant from a + + + std::string + + + which may contain SMT-LIB compatible escape sequences like + + + \u1234 + + + to encode unicode characters. +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkString() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + s + + – The string this constant represents. +

      +
    • +
    • +

      + + useEscSequences + + – Determines whether escape sequences in + + + s + + + should. be converted to the corresponding unicode character +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The String constant. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkString + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + wstring + + + + + + + & + + + + + s + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a String constant from a + + + std::wstring + + + . This function does not support escape sequences as + + + std::wstring + + + already supports unicode characters. +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkString() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + s + + – The string this constant represents. +

    +
    +
    + Returns + + : + +
    +
    +

    + The String constant. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkEmptySequence + + + + + ( + + + + const + + + + + + + + Sort + + + + + + + + & + + + + + sort + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create an empty sequence of the given element sort. +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkEmptySequence() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The element sort of the sequence. +

    +
    +
    + Returns + + : + +
    +
    +

    + The empty sequence with given element sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkUniverseSet + + + + + ( + + + + const + + + + + + + + Sort + + + + + + + + & + + + + + sort + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a universe set of the given sort. +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkUniverseSet() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort of the set elements. +

    +
    +
    + Returns + + : + +
    +
    +

    + The universe set constant. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkBitVector + + + + + ( + + + + uint32_t + + + + + + + size + + + , + + + uint64_t + + + + + + + val + + + + + + + = + + + + + + + 0 + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a bit-vector constant of given size and value. +

    +
    +

    + Note +

    +

    + The given value must fit into a bit-vector of the given size. +

    +
    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkBitVector() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + size + + – The bit-width of the bit-vector sort. +

      +
    • +
    • +

      + + val + + – The value of the constant. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The bit-vector constant. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkBitVector + + + + + ( + + + + uint32_t + + + + + + + size + + + , + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + s + + + , + + + uint32_t + + + + + + + base + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a bit-vector constant of a given bit-width from a given string of base 2, 10 or 16. +

    +
    +

    + Note +

    +

    + The given value must fit into a bit-vector of the given size. +

    +
    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkBitVector() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + size + + – The bit-width of the constant. +

      +
    • +
    • +

      + + s + + – The string representation of the constant. +

      +
    • +
    • +

      + + base + + – The base of the string representation ( + + + 2 + + + for binary, + + + 10 + + + for decimal, and + + + 16 + + + for hexadecimal). +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The bit-vector constant. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkFiniteFieldElem + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + value + + + , + + + const + + + + + + + + Sort + + + + + + + + & + + + + + sort + + + , + + + uint32_t + + + + + + + base + + + + + + + = + + + + + + + 10 + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a finite field constant in a given field from a given string of base n. +

    +

    + If + + + size + + + is the field size, the constant needs not be in the range [0,size). If it is outside this range, it will be reduced modulo size before being constructed. +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkFiniteFieldElem() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + value + + – The string representation of the constant. +

      +
    • +
    • +

      + + sort + + – The field sort. +

      +
    • +
    • +

      + + base + + – The base of the string representation of + + + value + + + . +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkConstArray + + + + + ( + + + + const + + + + + + + + Sort + + + + + + + + & + + + + + sort + + + , + + + const + + + + + + + + Term + + + + + + + + & + + + + + val + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a constant array with the provided constant value stored at every index. +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkConstArray() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + sort + + – The sort of the constant array (must be an array sort). +

      +
    • +
    • +

      + + val + + – The constant value to store (must match the sort’s element sort). +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The constant array term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkFloatingPointPosInf + + + + + ( + + + + uint32_t + + + + + + + exp + + + , + + + uint32_t + + + + + + + sig + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a positive infinity floating-point constant (SMT-LIB: + + + +oo + + + ). +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkFloatingPointPosInf() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + exp + + – Number of bits in the exponent. +

      +
    • +
    • +

      + + sig + + – Number of bits in the significand. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The floating-point constant. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkFloatingPointNegInf + + + + + ( + + + + uint32_t + + + + + + + exp + + + , + + + uint32_t + + + + + + + sig + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a negative infinity floating-point constant (SMT-LIB: + + + -oo + + + ). +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkFloatingPointNegInf() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + exp + + – Number of bits in the exponent. +

      +
    • +
    • +

      + + sig + + – Number of bits in the significand. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The floating-point constant. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkFloatingPointNaN + + + + + ( + + + + uint32_t + + + + + + + exp + + + , + + + uint32_t + + + + + + + sig + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a not-a-number floating-point constant (SMT-LIB: + + + NaN + + + ). +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkFloatingPointNaN() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + exp + + – Number of bits in the exponent. +

      +
    • +
    • +

      + + sig + + – Number of bits in the significand. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The floating-point constant. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkFloatingPointPosZero + + + + + ( + + + + uint32_t + + + + + + + exp + + + , + + + uint32_t + + + + + + + sig + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a positive zero floating-point constant (SMT-LIB: +zero). +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkFloatingPointPosZero() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + exp + + – Number of bits in the exponent. +

      +
    • +
    • +

      + + sig + + – Number of bits in the significand. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The floating-point constant. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkFloatingPointNegZero + + + + + ( + + + + uint32_t + + + + + + + exp + + + , + + + uint32_t + + + + + + + sig + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a negative zero floating-point constant (SMT-LIB: -zero). +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkFloatingPointNegZero() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + exp + + – Number of bits in the exponent. +

      +
    • +
    • +

      + + sig + + – Number of bits in the significand. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The floating-point constant. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkRoundingMode + + + + + ( + + + + + RoundingMode + + + + + + + + rm + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a rounding mode value. +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkRoundingMode() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + rm + + – The floating point rounding mode this constant represents. +

    +
    +
    + Returns + + : + +
    +
    +

    + The rounding mode value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkFloatingPoint + + + + + ( + + + + uint32_t + + + + + + + exp + + + , + + + uint32_t + + + + + + + sig + + + , + + + const + + + + + + + + Term + + + + + + + + & + + + + + val + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a floating-point value from a bit-vector given in IEEE-754 format. +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkFloatingPoint() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + exp + + – Size of the exponent. +

      +
    • +
    • +

      + + sig + + – Size of the significand. +

      +
    • +
    • +

      + + val + + – Value of the floating-point constant as a bit-vector term. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The floating-point value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkFloatingPoint + + + + + ( + + + + const + + + + + + + + Term + + + + + + + + & + + + + + sign + + + , + + + const + + + + + + + + Term + + + + + + + + & + + + + + exp + + + , + + + const + + + + + + + + Term + + + + + + + + & + + + + + sig + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a floating-point value from its three IEEE-754 bit-vector value components (sign bit, exponent, significand). +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkFloatingPoint() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + sign + + – The sign bit. +

      +
    • +
    • +

      + + exp + + – The bit-vector representing the exponent. +

      +
    • +
    • +

      + + sig + + – The bit-vector representing the significand. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The floating-point value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkCardinalityConstraint + + + + + ( + + + + const + + + + + + + + Sort + + + + + + + + & + + + + + sort + + + , + + + uint32_t + + + + + + + upperBound + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a cardinality constraint for an uninterpreted sort. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkCardinalityConstraint() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + sort + + – The sort the cardinality constraint is for. +

      +
    • +
    • +

      + + upperBound + + – The upper bound on the cardinality of the sort. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The cardinality constraint. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkConst + + + + + ( + + + + const + + + + + + + + Sort + + + + + + + + & + + + + + sort + + + , + + + const + + + + + + + std + + + + + :: + + + + + optional + + + + + < + + + + + std + + + + + :: + + + + + string + + + + + > + + + + + + + & + + + + + symbol + + + + + + + = + + + + + + + std + + + + + :: + + + + + nullopt + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a free constant. +

    +

    + Note that the returned term is always fresh, even if the same arguments were provided on a previous call to + + + mkConst() + + + . +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (declare-const <symbol> <sort>)
    +(declare-fun <symbol> () <sort>)
    +
    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkConst() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + sort + + – The sort of the constant. +

      +
    • +
    • +

      + + symbol + + – The name of the constant (optional). +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The constant. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkVar + + + + + ( + + + + const + + + + + + + + Sort + + + + + + + + & + + + + + sort + + + , + + + const + + + + + + + std + + + + + :: + + + + + optional + + + + + < + + + + + std + + + + + :: + + + + + string + + + + + > + + + + + + + & + + + + + symbol + + + + + + + = + + + + + + + std + + + + + :: + + + + + nullopt + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a bound variable to be used in a binder (i.e., a quantifier, a lambda, or a witness binder). +

    +

    + Note that the returned term is always fresh, even if the same arguments were provided on a previous call to mkConst. +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkVar() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + sort + + – The sort of the variable. +

      +
    • +
    • +

      + + symbol + + – The name of the variable (optional). +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The variable. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + DatatypeConstructorDecl + + + + + + + + + mkDatatypeConstructorDecl + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + name + + + + ) + + +  + +
    +
    +
    +

    + Create a datatype constructor declaration. +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkDatatypeConstructorDecl() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + name + + – The name of the datatype constructor. +

    +
    +
    + Returns + + : + +
    +
    +

    + The + + + DatatypeConstructorDecl + + + . +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + DatatypeDecl + + + + + + + + + mkDatatypeDecl + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + name + + + , + + + bool + + + + + + + isCoDatatype + + + + + + + = + + + + + + + false + + + + ) + + +  + +
    +
    +
    +

    + Create a datatype declaration. +

    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkDatatypeDecl() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + name + + – The name of the datatype. +

      +
    • +
    • +

      + + isCoDatatype + + – True if a codatatype is to be constructed. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The + + + DatatypeDecl + + + . +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + DatatypeDecl + + + + + + + + + mkDatatypeDecl + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + name + + + , + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Sort + + + + + + > + + + + + + + & + + + + + params + + + , + + + bool + + + + + + + isCoDatatype + + + + + + + = + + + + + + + false + + + + ) + + +  + +
    +
    +
    +

    + Create a datatype declaration. Create sorts parameter with + + + Solver::mkParamSort() + + + . +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +

    + Warning +

    +

    + This function is deprecated and replaced by + + + + + TermManager::mkDatatypeDecl() + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + name + + – The name of the datatype. +

      +
    • +
    • +

      + + params + + – A list of sort parameters. +

      +
    • +
    • +

      + + isCoDatatype + + – True if a codatatype is to be constructed. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The + + + DatatypeDecl + + + . +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + simplify + + + + + ( + + + + const + + + + + + + + Term + + + + + + + + & + + + + + t + + + , + + + bool + + + + + + + applySubs + + + + + + + = + + + + + + + false + + + + ) + + +  + +
    +
    +
    +

    + Simplify a term or formula based on rewriting and (optionally) applying substitutions for solved variables. +

    +

    + If applySubs is true, then for example, if + + + (= + + + x + + + 0) + + + was asserted to this solver, this method may replace occurrences of + + + x + + + with + + + 0 + + + . +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + t + + – The term to simplify. +

      +
    • +
    • +

      + + applySubs + + – True to apply substitutions for solved variables. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The simplified term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + assertFormula + + + + + ( + + + + const + + + + + + + + Term + + + + + + + + & + + + + + term + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Assert a formula. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (assert <term>)
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The formula to assert. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Result + + + + + + + + + checkSat + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Check satisfiability. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (check-sat)
    +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The result of the satisfiability check. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Result + + + + + + + + + checkSatAssuming + + + + + ( + + + + const + + + + + + + + Term + + + + + + + + & + + + + + assumption + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Check satisfiability assuming the given formula. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (check-sat-assuming ( <prop_literal> ))
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + assumption + + – The formula to assume. +

    +
    +
    + Returns + + : + +
    +
    +

    + The result of the satisfiability check. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Result + + + + + + + + + checkSatAssuming + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Term + + + + + + > + + + + + + + & + + + + + assumptions + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Check satisfiability assuming the given formulas. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (check-sat-assuming ( <prop_literal>+ ))
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + assumptions + + – The formulas to assume. +

    +
    +
    + Returns + + : + +
    +
    +

    + The result of the satisfiability check. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + declareDatatype + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + symbol + + + , + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + DatatypeConstructorDecl + + + + + + > + + + + + + + & + + + + + ctors + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create datatype sort. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (declare-datatype <symbol> <datatype_decl>)
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + symbol + + – The name of the datatype sort. +

      +
    • +
    • +

      + + ctors + + – The constructor declarations of the datatype sort. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The datatype sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + declareFun + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + symbol + + + , + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Sort + + + + + + > + + + + + + + & + + + + + sorts + + + , + + + const + + + + + + + + Sort + + + + + + + + & + + + + + sort + + + , + + + bool + + + + + + + fresh + + + + + + + = + + + + + + + true + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Declare n-ary function symbol. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (declare-fun <symbol> ( <sort>* ) <sort>)
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + symbol + + – The name of the function. +

      +
    • +
    • +

      + + sorts + + – The sorts of the parameters to this function. +

      +
    • +
    • +

      + + sort + + – The sort of the return value of this function. +

      +
    • +
    • +

      + + fresh + + – If true, then this method always returns a new + + + Term + + + . Otherwise, this method will always return the same + + + Term + + + for each call with the given sorts and symbol where fresh is false. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The function. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + declareSort + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + symbol + + + , + + + uint32_t + + + + + + + arity + + + , + + + bool + + + + + + + fresh + + + + + + + = + + + + + + + true + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Declare uninterpreted sort. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (declare-sort <symbol> <numeral>)
    +
    +
    +
    +
    +

    + Note +

    +

    + This corresponds to mkUninterpretedSort(const std::optional<std::string>&) if arity = 0, and to mkUninterpretedSortConstructorSort(size_t arity, const std::optional<std::string>&) if arity > 0. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + symbol + + – The name of the sort. +

      +
    • +
    • +

      + + arity + + – The arity of the sort. +

      +
    • +
    • +

      + + fresh + + – If true, then this method always returns a new + + + Sort + + + . Otherwise, this method will always return the same + + + Sort + + + for each call with the given arity and symbol where fresh is false. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + defineFun + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + symbol + + + , + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Term + + + + + + > + + + + + + + & + + + + + bound_vars + + + , + + + const + + + + + + + + Sort + + + + + + + + & + + + + + sort + + + , + + + const + + + + + + + + Term + + + + + + + + & + + + + + term + + + , + + + bool + + + + + + + global + + + + + + + = + + + + + + + false + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Define n-ary function. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (define-fun <function_def>)
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + symbol + + – The name of the function. +

      +
    • +
    • +

      + + bound_vars + + – The parameters to this function. +

      +
    • +
    • +

      + + sort + + – The sort of the return value of this function. +

      +
    • +
    • +

      + + term + + – The function body. +

      +
    • +
    • +

      + + global + + – Determines whether this definition is global (i.e., persists when popping the context). +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The function. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + defineFunRec + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + symbol + + + , + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Term + + + + + + > + + + + + + + & + + + + + bound_vars + + + , + + + const + + + + + + + + Sort + + + + + + + + & + + + + + sort + + + , + + + const + + + + + + + + Term + + + + + + + + & + + + + + term + + + , + + + bool + + + + + + + global + + + + + + + = + + + + + + + false + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Define recursive function. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (define-fun-rec <function_def>)
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + symbol + + – The name of the function. +

      +
    • +
    • +

      + + bound_vars + + – The parameters to this function. +

      +
    • +
    • +

      + + sort + + – The sort of the return value of this function. +

      +
    • +
    • +

      + + term + + – The function body. +

      +
    • +
    • +

      + + global + + – Determines whether this definition is global (i.e., persists when popping the context). +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The function. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + defineFunRec + + + + + ( + + + + const + + + + + + + + Term + + + + + + + + & + + + + + fun + + + , + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Term + + + + + + > + + + + + + + & + + + + + bound_vars + + + , + + + const + + + + + + + + Term + + + + + + + + & + + + + + term + + + , + + + bool + + + + + + + global + + + + + + + = + + + + + + + false + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Define recursive function. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (define-fun-rec <function_def>)
    +
    +
    +
    +

    + Create parameter + + + fun + + + with + + + TermManager::mkConst() + + + . +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + fun + + – The sorted function. +

      +
    • +
    • +

      + + bound_vars + + – The parameters to this function. +

      +
    • +
    • +

      + + term + + – The function body. +

      +
    • +
    • +

      + + global + + – Determines whether this definition is global (i.e., persists when popping the context). +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The function. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + defineFunsRec + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Term + + + + + + > + + + + + + + & + + + + + funs + + + , + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Term + + + + + + > + + + + + > + + + + + + + & + + + + + bound_vars + + + , + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Term + + + + + + > + + + + + + + & + + + + + terms + + + , + + + bool + + + + + + + global + + + + + + + = + + + + + + + false + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Define recursive functions. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (define-funs-rec
    +    ( <function_decl>_1 ... <function_decl>_n )
    +    ( <term>_1 ... <term>_n )
    +)
    +
    +
    +
    +

    + Create elements of parameter + + + funs + + + with + + + + + TermManager::mkConst() + + + + + . +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + funs + + – The sorted functions. +

      +
    • +
    • +

      + + bound_vars + + – The list of parameters to the functions. +

      +
    • +
    • +

      + + terms + + – The list of function bodies of the functions. +

      +
    • +
    • +

      + + global + + – Determines whether this definition is global (i.e., persists when popping the context). +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Term + + + + + + > + + + + + + + + getAssertions + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the list of asserted formulas. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (get-assertions)
    +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The list of asserted formulas. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + string + + + + + + + + getInfo + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + flag + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get info from the solver. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (get-info <info_flag>)
    +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The info. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + string + + + + + + + + getOption + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + option + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the value of a given option. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (get-option <keyword>)
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + option + + – The option for which the value is queried. +

    +
    +
    + Returns + + : + +
    +
    +

    + A string representation of the option value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + std + + + + + :: + + + + + string + + + + + > + + + + + + + + getOptionNames + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get all option names that can be used with + + + setOption() + + + , + + + getOption() + + + and + + + getOptionInfo() + + + . +

    +
    +
    + Returns + + : + +
    +
    +

    + All option names. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + OptionInfo + + + + + + + + + getOptionInfo + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + option + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get some information about the given option. +

    +

    + Check the + + + OptionInfo + + + class for more details on which information is available. +

    +
    +
    + Returns + + : + +
    +
    +

    + Information about the given option. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + DriverOptions + + + + + + + + + getDriverOptions + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the driver options, which provide access to options that can not be communicated properly via + + + getOption() + + + and + + + getOptionInfo() + + + . +

    +
    +
    + Returns + + : + +
    +
    +

    + A + + + DriverOptions + + + object. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Term + + + + + + > + + + + + + + + getUnsatAssumptions + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the set of unsat (“failed”) assumptions. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (get-unsat-assumptions)
    +
    +
    +
    +

    + Requires to enable option + + + produce-unsat-assumptions + + + . +

    +
    +
    + Returns + + : + +
    +
    +

    + The set of unsat assumptions. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Term + + + + + + > + + + + + + + + getUnsatCore + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the unsatisfiable core. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (get-unsat-core)
    +
    +
    +
    +

    + Requires to enable option + + + produce-unsat-cores + + + . +

    +
    +

    + Note +

    +

    + In contrast to SMT-LIB, cvc5’s API does not distinguish between named +and unnamed assertions when producing an unsatisfiable core. +Additionally, the API allows this option to be called after a check with +assumptions. A subset of those assumptions may be included in the +unsatisfiable core returned by this function. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + A set of terms representing the unsatisfiable core. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Term + + + + + + > + + + + + + + + getUnsatCoreLemmas + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the lemmas used to derive unsatisfiability. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (get-unsat-core-lemmas)
    +
    +
    +
    +

    + Requires the SAT proof unsat core mode, so to enable option + + + unsat-cores-mode=sat-proof + + + . +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + A set of terms representing the lemmas used to derive unsatisfiability. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + map + + + + + < + + + + + + Term + + + + + + , + + + + + + + + Term + + + + + + > + + + + + + + + getDifficulty + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get a difficulty estimate for an asserted formula. This function is intended to be called immediately after any response to a checkSat. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + A map from (a subset of) the input assertions to a real value that. is an estimate of how difficult each assertion was to solve. Unmentioned assertions can be assumed to have zero difficulty. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + pair + + + + + < + + + + + + Result + + + + + + , + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Term + + + + + + > + + + + + > + + + + + + + + getTimeoutCore + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get a timeout core. +

    +

    +

    +

    + This function computes a subset of the current assertions that cause a +timeout. It may make multiple checks for satisfiability internally, each +limited by the timeout value given by + + + timeout-core-timeout + + + . +

    +

    + If the result is unknown and the reason is timeout, then returned the set +of assertions corresponds to a subset of the current assertions that cause +a timeout in the specified time + + + timeout-core-timeout + + + . If the result is unsat, then the list +of formulas correspond to an unsat core for the current assertions. +Otherwise, the result is sat, indicating that the current assertions are +satisfiable, and the returned set of assertions is empty. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (get-timeout-core)
    +
    +
    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The result of the timeout core computation. This is a pair containing a result and a set of assertions. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + pair + + + + + < + + + + + + Result + + + + + + , + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Term + + + + + + > + + + + + > + + + + + + + + getTimeoutCoreAssuming + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Term + + + + + + > + + + + + + + & + + + + + assumptions + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get a timeout core of the given assumptions. +

    +

    + This function computes a subset of the given assumptions that cause a timeout when added to the current assertions. +

    +

    + If the result is unknown and the reason is timeout, then the set of +assumptions corresponds to a subset of the given assumptions that cause a +timeout when added to the current assertions in the specified time + + + timeout-core-timeout + + + . If the +result is unsat, then the set of assumptions together with the current +assertions correspond to an unsat core for the current assertions. +Otherwise, the result is sat, indicating that the given assumptions plus +the current assertions are satisfiable, and the returned set of +assumptions is empty. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (get-timeout-core (<assert>*))
    +
    +
    +
    +
    +

    + Note +

    +

    + This command does not require being preceeded by a call to + + + + + checkSat() + + + + + . +

    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + assumptions + + – The (non-empty) set of formulas to assume. +

    +
    +
    + Returns + + : + +
    +
    +

    + The result of the timeout core computation. This is a pair containing a result and a set of assumptions. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Proof + + + + + + > + + + + + + + + getProof + + + + + ( + + + + modes + + + + + :: + + + + + + ProofComponent + + + + + + + + c + + + + + + + = + + + + + + + modes + + + + + :: + + + + + + ProofComponent + + + + + + :: + + + + + + FULL + + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get a proof associated with the most recent call to checkSat. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (get-proof :c)
    +
    +
    +
    +

    + Requires to enable option + + + produce-proofs + + + . +The string representation depends on the value of option + + + produce-proofs + + + . +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + c + + – The component of the proof to return +

    +
    +
    + Returns + + : + +
    +
    +

    + A vector of proofs. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + string + + + + + + + + proofToString + + + + + ( + + + + + Proof + + + + + + + + proof + + + , + + + modes + + + + + :: + + + + + + ProofFormat + + + + + + + + format + + + + + + + = + + + + + + + modes + + + + + :: + + + + + + ProofFormat + + + + + + :: + + + + + + DEFAULT + + + + , + + + const + + + + + + + std + + + + + :: + + + + + map + + + + + < + + + + + cvc5 + + + + + :: + + + + + + Term + + + + + + , + + + + + + + std + + + + + :: + + + + + string + + + + + > + + + + + + + & + + + + + assertionNames + + + + + + + = + + + + + + + std + + + + + :: + + + + + map + + + + + < + + + + + cvc5 + + + + + :: + + + + + + Term + + + + + + , + + + + + + + std + + + + + :: + + + + + string + + + + + > + + + + + ( + + + + + ) + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Prints a proof as a string in a selected proof format mode. Other aspects of printing are taken from the solver options. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    + +
    +
    + Returns + + : + +
    +
    +

    + The string representation of the proof in the given format. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Term + + + + + + > + + + + + + + + getLearnedLiterals + + + + + ( + + + + modes + + + + + :: + + + + + + LearnedLitType + + + + + + + + t + + + + + + + = + + + + + + + modes + + + + + :: + + + + + + LearnedLitType + + + + + + :: + + + + + + INPUT + + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get a list of learned literals that are entailed by the current set of assertions. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + t + + – The type of learned literals to return +

    +
    +
    + Returns + + : + +
    +
    +

    + A list of literals that were learned at top-level. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + getValue + + + + + ( + + + + const + + + + + + + + Term + + + + + + + + & + + + + + term + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the value of the given term in the current model. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (get-value ( <term> ))
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The term for which the value is queried. +

    +
    +
    + Returns + + : + +
    +
    +

    + The value of the given term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Term + + + + + + > + + + + + + + + getValue + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Term + + + + + + > + + + + + + + & + + + + + terms + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the values of the given terms in the current model. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (get-value ( <term>* ))
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + terms + + – The terms for which the value is queried. +

    +
    +
    + Returns + + : + +
    +
    +

    + The values of the given terms. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Term + + + + + + > + + + + + + + + getModelDomainElements + + + + + ( + + + + const + + + + + + + + Sort + + + + + + + + & + + + + + s + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the domain elements of uninterpreted sort s in the current model. The current model interprets s as the finite sort whose domain elements are given in the return value of this function. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + s + + – The uninterpreted sort in question. +

    +
    +
    + Returns + + : + +
    +
    +

    + The domain elements of s in the current model. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isModelCoreSymbol + + + + + ( + + + + const + + + + + + + + Term + + + + + + + + & + + + + + v + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if the model value of the given free constant was essential for showing satisfiability of the last + + + + + checkSat() + + + + + query based on the current model. +

    +

    + For any free constant + + + v + + + , this will only return false if + + + + model-cores* + + + + has been set to true. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + v + + – The term in question. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if + + + v + + + is a model core symbol. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + string + + + + + + + + getModel + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Sort + + + + + + > + + + + + + + & + + + + + sorts + + + , + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Term + + + + + + > + + + + + + + & + + + + + consts + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the model +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (get-model)
    +
    +
    +
    +

    + Requires to enable option + + + produce-models + + + . +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + sorts + + – The list of uninterpreted sorts that should be printed in the model. +

      +
    • +
    • +

      + + consts + + – The list of free constants that should be printed in the model. A subset of these may be printed based on + + + isModelCoreSymbol() + + + . +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + A string representing the model. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + getQuantifierElimination + + + + + ( + + + + const + + + + + + + + Term + + + + + + + + & + + + + + q + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Do quantifier elimination. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (get-qe <q>)
    +
    +
    +
    +
    +

    + Note +

    +

    + Quantifier Elimination is is only complete for logics such as LRA, LIA and BV. +

    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + q + + – A quantified formula of the form + + \(Q\bar{x}_1... Q\bar{x}_n. P( x_1...x_i, y_1...y_j)\) + + where + + \(Q\bar{x}\) + + is a set of quantified variables of the form + + \(Q x_1...x_k\) + + and + + \(P( x_1...x_i, y_1...y_j )\) + + is a quantifier-free formula +

    +
    +
    + Returns + + : + +
    +
    +

    + A formula + + \(\phi\) + + such that, given the current set of formulas + + \(A\) + + asserted to this solver: +

    +
      +
    • +

      + + \((A \wedge q)\) + + and + + \((A \wedge \phi)\) + + are equivalent +

      +
    • +
    • +

      + + \(\phi\) + + is quantifier-free formula containing only free variables in + + \(y_1...y_n\) + + . +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + getQuantifierEliminationDisjunct + + + + + ( + + + + const + + + + + + + + Term + + + + + + + + & + + + + + q + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Do partial quantifier elimination, which can be used for incrementally computing the result of a quantifier elimination. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (get-qe-disjunct <q>)
    +
    +
    +
    +
    +

    + Note +

    +

    + Quantifier Elimination is is only complete for logics such as LRA, LIA and BV. +

    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + q + + – A quantified formula of the form + + \(Q\bar{x}_1... Q\bar{x}_n. P( x_1...x_i, y_1...y_j)\) + + where + + \(Q\bar{x}\) + + is a set of quantified variables of the form + + \(Q x_1...x_k\) + + and + + \(P( x_1...x_i, y_1...y_j )\) + + is a quantifier-free formula +

    +
    +
    + Returns + + : + +
    +
    +

    + A formula + + \(\phi\) + + such that, given the current set of formulas + + \(A\) + + asserted to this solver: +

    +
      +
    • +

      + + \((A \wedge q \implies A \wedge \phi)\) + + if + + \(Q\) + + is + + \(\forall\) + + , and + + \((A \wedge \phi \implies A \wedge q)\) + + if + + \(Q\) + + is + + \(\exists\) + +

      +
    • +
    • +

      + + \(\phi\) + + is quantifier-free formula containing only free variables in + + \(y_1...y_n\) + +

      +
    • +
    • +

      + If + + \(Q\) + + is + + \(\exists\) + + , let + + \((A \wedge Q_n)\) + + be the formula + + \((A \wedge \neg (\phi \wedge Q_1) \wedge ... \wedge \neg (\phi \wedge Q_n))\) + + where for each + + \(i = 1...n\) + + , formula + + \((\phi \wedge Q_i)\) + + is the result of calling + + + Solver::getQuantifierEliminationDisjunct() + + + for + + \(q\) + + with the set of assertions + + \((A \wedge Q_{i-1})\) + + . Similarly, if + + \(Q\) + + is + + \(\forall\) + + , then let + + \((A \wedge Q_n)\) + + be + + \((A \wedge (\phi \wedge Q_1) \wedge ... \wedge (\phi \wedge Q_n))\) + + where + + \((\phi \wedge Q_i)\) + + is the same as above. In either case, we have that + + \((\phi \wedge Q_j)\) + + will eventually be true or false, for some finite j. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + declareSepHeap + + + + + ( + + + + const + + + + + + + + Sort + + + + + + + + & + + + + + locSort + + + , + + + const + + + + + + + + Sort + + + + + + + + & + + + + + dataSort + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + When using separation logic, this sets the location sort and the datatype sort to the given ones. This function should be invoked exactly once, before any separation logic constraints are provided. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + locSort + + – The location sort of the heap. +

      +
    • +
    • +

      + + dataSort + + – The data sort of the heap. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + getValueSepHeap + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + When using separation logic, obtain the term for the heap. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The term for the heap. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + getValueSepNil + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + When using separation logic, obtain the term for nil. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The term for nil. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + declarePool + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + symbol + + + , + + + const + + + + + + + + Sort + + + + + + + + & + + + + + sort + + + , + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Term + + + + + + > + + + + + + + & + + + + + initValue + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Declare a symbolic pool of terms with the given initial value. +

    +

    + For details on how pools are used to specify instructions for quantifier instantiation, see documentation for the #INST_POOL kind. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (declare-pool <symbol> <sort> ( <term>* ))
    +
    +
    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + symbol + + – The name of the pool. +

      +
    • +
    • +

      + + sort + + – The sort of the elements of the pool. +

      +
    • +
    • +

      + + initValue + + – The initial value of the pool. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The pool symbol. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + Term + + + + + + + + + declareOracleFun + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + symbol + + + , + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Sort + + + + + + > + + + + + + + & + + + + + sorts + + + , + + + const + + + + + + + + Sort + + + + + + + + & + + + + + sort + + + , + + + std + + + + + :: + + + + + function + + + + + < + + + + + + Term + + + + + + ( + + + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Term + + + + + + > + + + + + & + + + + + ) + + + + + > + + + + + + + fn + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Declare an oracle function with reference to an implementation. +

    +

    + Oracle functions have a different semantics with respect to ordinary declared functions. In particular, for an input to be satisfiable, its oracle functions are implicitly universally quantified. +

    +

    + This function is used in part for implementing this command: +

    +

    +

    +

    + (declare-oracle-fun <sym> (<sort>*) <sort> <sym>) +

    +

    + In particular, the above command is implemented by constructing a function over terms that wraps a call to binary sym via a text interface. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + symbol + + – The name of the oracle +

      +
    • +
    • +

      + + sorts + + – The sorts of the parameters to this function +

      +
    • +
    • +

      + + sort + + – The sort of the return value of this function +

      +
    • +
    • +

      + + fn + + – The function that implements the oracle function. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The oracle function +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + addPlugin + + + + + ( + + + + + Plugin + + + + + + + + & + + + + + p + + + + ) + + +  + +
    +
    +
    +

    + Add plugin to this solver. Its callbacks will be called throughout the lifetime of this solver. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + p + + – The plugin to add to this solver. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + pop + + + + + ( + + + + uint32_t + + + + + + + nscopes + + + + + + + = + + + + + + + 1 + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Pop (a) level(s) from the assertion stack. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (pop <numeral>)
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + nscopes + + – The number of levels to pop. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + getInterpolant + + + + + ( + + + + const + + + + + + + + Term + + + + + + + + & + + + + + conj + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get an interpolant. +

    +

    + Given that + + \(A\rightarrow B\) + + is valid, this function determines a term + + \(I\) + + over the shared variables of + + \(A\) + + and + + \(B\) + + , such that + + \(A \rightarrow I\) + + and + + \(I \rightarrow B\) + + are valid. + + \(A\) + + is the current set of assertions and + + \(B\) + + is the conjecture, given as + + + conj + + + . +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (get-interpolant <symbol> <conj>)
    +
    +
    +
    +
    +

    + Note +

    +

    + In SMT-LIB, + + <symbol> + + assigns a symbol to the interpolant. +

    +
    +
    +

    + Note +

    +

    + Requires option + + + produce-interpolants + + + to +be set to a mode different from + + none + + . +

    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + conj + + – The conjecture term. +

    +
    +
    + Returns + + : + +
    +
    +

    + The interpolant, if an interpolant exists, else the null term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + getInterpolant + + + + + ( + + + + const + + + + + + + + Term + + + + + + + + & + + + + + conj + + + , + + + + Grammar + + + + + + + + & + + + + + grammar + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get an interpolant. +

    +

    + Given that + + \(A\rightarrow B\) + + is valid, this function determines a term + + \(I\) + + over the shared variables of + + \(A\) + + and + + \(B\) + + , such that + + \(A \rightarrow I\) + + and + + \(I \rightarrow B\) + + are valid. + + \(I\) + + is constructed from the given grammar. + + \(A\) + + is the current set of assertions and + + \(B\) + + is the conjecture, given as + + + conj + + + . +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (get-interpolant <symbol> <conj> <grammar>)
    +
    +
    +
    +
    +

    + Note +

    +

    + In SMT-LIB, + + <symbol> + + assigns a symbol to the interpolant. +

    +
    +
    +

    + Note +

    +

    + Requires option + + + produce-interpolants + + + to +be set to a mode different from + + none + + . +

    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + conj + + – The conjecture term. +

      +
    • +
    • +

      + + grammar + + – The grammar for the interpolant I. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The interpolant, if an interpolant exists, else the null term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + getInterpolantNext + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the next interpolant. Can only be called immediately after a successful call to get-interpolant or get-interpolant-next. Is guaranteed to produce a syntactically different interpolant wrt the last returned interpolant if successful. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (get-interpolant-next)
    +
    +
    +
    +

    + Requires to enable incremental mode, and option + + + produce-interpolants + + + to be set to +a mode different from + + none + + . +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + A + + + Term + + + + \(I\) + + such that + + \(A \rightarrow I\) + + and + + \(I \rightarrow B\) + + are valid, where + + \(A\) + + is the current set of assertions and + + \(B\) + + is given in the input by + + + conj + + + , or the null term if such a term cannot be found. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + getAbduct + + + + + ( + + + + const + + + + + + + + Term + + + + + + + + & + + + + + conj + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get an abduct. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (get-abduct <conj>)
    +
    +
    +
    +

    + Requires to enable option + + + produce-abducts + + + . +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + conj + + – The conjecture term. +

    +
    +
    + Returns + + : + +
    +
    +

    + A term + + \(C\) + + such that + + \((A \wedge C)\) + + is satisfiable, and + + \((A \wedge \neg B \wedge C)\) + + is unsatisfiable, where + + \(A\) + + is the current set of assertions and + + \(B\) + + is given in the input by + + + conj + + + , or the null term if such a term cannot be found. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + getAbduct + + + + + ( + + + + const + + + + + + + + Term + + + + + + + + & + + + + + conj + + + , + + + + Grammar + + + + + + + + & + + + + + grammar + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get an abduct. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (get-abduct <conj> <grammar>)
    +
    +
    +
    +

    + Requires to enable option + + + produce-abducts + + + . +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + conj + + – The conjecture term. +

      +
    • +
    • +

      + + grammar + + – The grammar for the abduct + + \(C\) + +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + A term C such that + + \((A \wedge C)\) + + is satisfiable, and + + \((A \wedge \neg B \wedge C)\) + + is unsatisfiable, where + + \(A\) + + is the current set of assertions and + + \(B\) + + is given in the input by + + + conj + + + , or the null term if such a term cannot be found. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + getAbductNext + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the next abduct. Can only be called immediately after a successful call to get-abduct or get-abduct-next. Is guaranteed to produce a syntactically different abduct wrt the last returned abduct if successful. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (get-abduct-next)
    +
    +
    +
    +

    + Requires to enable incremental mode, and option + + + produce-abducts + + + . +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + A term C such that + + \((A \wedge C)\) + + is satisfiable, and + + \((A \wedge \neg B \wedge C)\) + + is unsatisfiable, where + + \(A\) + + is the current set of assertions and + + \(B\) + + is given in the input by the last call to + + + getAbduct() + + + , or the null term if such a term cannot be found. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + blockModel + + + + + ( + + + + modes + + + + + :: + + + + + + BlockModelsMode + + + + + + + + mode + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Block the current model. Can be called only if immediately preceded by a SAT or INVALID query. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (block-model)
    +
    +
    +
    +

    + Requires enabling option + + + produce-models + + + . +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + mode + + – The mode to use for blocking. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + blockModelValues + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Term + + + + + + > + + + + + + + & + + + + + terms + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Block the current model values of (at least) the values in terms. Can be called only if immediately preceded by a SAT query. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (block-model-values ( <terms>+ ))
    +
    +
    +
    +

    + Requires enabling option + + + produce-models + + + . +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + terms + + – The model values to block. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + string + + + + + + + + getInstantiations + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + A string that contains information about all instantiations made by the quantifiers module. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + push + + + + + ( + + + + uint32_t + + + + + + + nscopes + + + + + + + = + + + + + + + 1 + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Push (a) level(s) to the assertion stack. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (push <numeral>)
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + nscopes + + – The number of levels to push. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + resetAssertions + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Remove all assertions. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (reset-assertions)
    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + setInfo + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + keyword + + + , + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + value + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Set info. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (set-info <attribute>)
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + keyword + + – The info flag. +

      +
    • +
    • +

      + + value + + – The value of the info flag. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + setLogic + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + logic + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Set logic. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (set-logic <symbol>)
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + logic + + – The logic to set. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isLogicSet + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if + + + + + setLogic() + + + + + has been called. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if + + + + + setLogic() + + + + + has already been called for this solver instance. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + string + + + + + + + + getLogic + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the logic set the solver. +

    +
    +

    + Note +

    +

    + Asserts + + + isLogicSet() + + + . +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The logic used by the solver. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + setOption + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + option + + + , + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + value + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Set option. +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (set-option :<option> <value>)
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + option + + – The option name. +

      +
    • +
    • +

      + + value + + – The option value. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + declareSygusVar + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + symbol + + + , + + + const + + + + + + + + Sort + + + + + + + + & + + + + + sort + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Append + + + symbol + + + to the current list of universal variables. +

    +

    + SyGuS v2: +

    +

    +

    +
    +
    +
    (declare-var <symbol> <sort>)
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + sort + + – The sort of the universal variable. +

      +
    • +
    • +

      + + symbol + + – The name of the universal variable. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The universal variable. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Grammar + + + + + + + + + mkGrammar + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Term + + + + + + > + + + + + + + & + + + + + boundVars + + + , + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Term + + + + + + > + + + + + + + & + + + + + ntSymbols + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Create a Sygus grammar. The first non-terminal is treated as the starting non-terminal, so the order of non-terminals matters. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + boundVars + + – The parameters to corresponding synth-fun/synth-inv. +

      +
    • +
    • +

      + + ntSymbols + + – The pre-declaration of the non-terminal symbols. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The grammar. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + synthFun + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + symbol + + + , + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Term + + + + + + > + + + + + + + & + + + + + boundVars + + + , + + + const + + + + + + + + Sort + + + + + + + + & + + + + + sort + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Synthesize n-ary function. +

    +

    + SyGuS v2: +

    +

    +

    +
    +
    +
    (synth-fun <symbol> ( <boundVars>* ) <sort>)
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + symbol + + – The name of the function. +

      +
    • +
    • +

      + + boundVars + + – The parameters to this function. +

      +
    • +
    • +

      + + sort + + – The sort of the return value of this function. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The function. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + synthFun + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + symbol + + + , + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Term + + + + + + > + + + + + + + & + + + + + boundVars + + + , + + + + Sort + + + + + + + + sort + + + , + + + + Grammar + + + + + + + + & + + + + + grammar + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Synthesize n-ary function following specified syntactic constraints. +

    +

    + SyGuS v2: +

    +

    +

    +
    +
    +
    (synth-fun <symbol> ( <boundVars>* ) <sort> <grammar>)
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + symbol + + – The name of the function. +

      +
    • +
    • +

      + + boundVars + + – The parameters to this function. +

      +
    • +
    • +

      + + sort + + – The sort of the return value of this function. +

      +
    • +
    • +

      + + grammar + + – The syntactic constraints. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The function. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + addSygusConstraint + + + + + ( + + + + const + + + + + + + + Term + + + + + + + + & + + + + + term + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Add a forumla to the set of Sygus constraints. +

    +

    + SyGuS v2: +

    +

    +

    +
    +
    +
    (constraint <term>)
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The formula to add as a constraint. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Term + + + + + + > + + + + + + + + getSygusConstraints + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the list of sygus constraints. +

    +
    +
    + Returns + + : + +
    +
    +

    + The list of sygus constraints. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + addSygusAssume + + + + + ( + + + + const + + + + + + + + Term + + + + + + + + & + + + + + term + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Add a forumla to the set of Sygus assumptions. +

    +

    + SyGuS v2: +

    +

    +

    +
    +
    +
    (assume <term>)
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The formula to add as an assumption. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Term + + + + + + > + + + + + + + + getSygusAssumptions + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the list of sygus assumptions. +

    +
    +
    + Returns + + : + +
    +
    +

    + The list of sygus assumptions. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + addSygusInvConstraint + + + + + ( + + + + const + + + + + + + + Term + + + + + + + + & + + + + + inv + + + , + + + const + + + + + + + + Term + + + + + + + + & + + + + + pre + + + , + + + const + + + + + + + + Term + + + + + + + + & + + + + + trans + + + , + + + const + + + + + + + + Term + + + + + + + + & + + + + + post + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Add a set of Sygus constraints to the current state that correspond to an invariant synthesis problem. +

    +

    + SyGuS v2: +

    +

    +

    +
    +
    +
    (inv-constraint <inv> <pre> <trans> <post>)
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + inv + + – The function-to-synthesize. +

      +
    • +
    • +

      + + pre + + – The pre-condition. +

      +
    • +
    • +

      + + trans + + – The transition relation. +

      +
    • +
    • +

      + + post + + – The post-condition. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + SynthResult + + + + + + + + + checkSynth + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Try to find a solution for the synthesis conjecture corresponding to the current list of functions-to-synthesize, universal variables and constraints. +

    +

    + SyGuS v2: +

    +

    +

    +
    +
    +
    (check-synth)
    +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The result of the check, which is “solution” if the check found a solution in which case solutions are available via getSynthSolutions, “no solution” if it was determined there is no solution, or “unknown” otherwise. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + SynthResult + + + + + + + + + checkSynthNext + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Try to find a next solution for the synthesis conjecture corresponding to the current list of functions-to-synthesize, universal variables and constraints. Must be called immediately after a successful call to check-synth or check-synth-next. Requires incremental mode. +

    +

    + SyGuS v2: +

    +

    +

    +
    +
    +
    (check-synth-next)
    +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The result of the check, which is “solution” if the check found a solution in which case solutions are available via getSynthSolutions, “no solution” if it was determined there is no solution, or “unknown” otherwise. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + getSynthSolution + + + + + ( + + + + const + + + + + + + + Term + + + + + + + + & + + + + + term + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the synthesis solution of the given term. This function should be called immediately after the solver answers unsat for sygus input. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The term for which the synthesis solution is queried. +

    +
    +
    + Returns + + : + +
    +
    +

    + The synthesis solution of the given term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Term + + + + + + > + + + + + + + + getSynthSolutions + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Term + + + + + + > + + + + + + + & + + + + + terms + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the synthesis solutions of the given terms. This function should be called immediately after the solver answers unsat for sygus input. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + terms + + – The terms for which the synthesis solutions is queried. +

    +
    +
    + Returns + + : + +
    +
    +

    + The synthesis solutions of the given terms. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + findSynth + + + + + ( + + + + modes + + + + + :: + + + + + + FindSynthTarget + + + + + + + + fst + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Find a target term of interest using sygus enumeration, with no provided grammar. +

    +

    + The solver will infer which grammar to use in this call, which by default will be the grammars specified by the function(s)-to-synthesize in the current context. +

    +

    + SyGuS v2: +

    +

    +

    +
    +
    +
    (find-synth :target)
    +
    +
    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + fst + + – The identifier specifying what kind of term to find +

    +
    +
    + Returns + + : + +
    +
    +

    + The result of the find, which is the null term if this call failed. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + findSynth + + + + + ( + + + + modes + + + + + :: + + + + + + FindSynthTarget + + + + + + + + fst + + + , + + + + Grammar + + + + + + + + & + + + + + grammar + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Find a target term of interest using sygus enumeration with a provided grammar. +

    +

    + SyGuS v2: +

    +

    +

    +
    +
    +
    (find-synth :target G)
    +
    +
    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + fst + + – The identifier specifying what kind of term to find +

      +
    • +
    • +

      + + grammar + + – The grammar for the term +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The result of the find, which is the null term if this call failed. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + findSynthNext + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Try to find a next target term of interest using sygus enumeration. Must be called immediately after a successful call to find-synth or find-synth-next. +

    +

    + SyGuS v2: +

    +

    +

    +
    +
    +
    (find-synth-next)
    +
    +
    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The result of the find, which is the null term if this call failed. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Statistics + + + + + + + + + getStatistics + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get a snapshot of the current state of the statistic values of this solver. The returned object is completely decoupled from the solver and will not change when the solver is used again. +

    +
    +
    + Returns + + : + +
    +
    +

    + A snapshot of the current state of the statistic values. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + printStatisticsSafe + + + + + ( + + + + int + + + + + + + fd + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Print the statistics to the given file descriptor, suitable for usage in signal handlers. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + fd + + – The file descriptor. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isOutputOn + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + tag + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determines if the output stream for the given tag is enabled. Tags can be enabled with the + + + output + + + option (and + + + -o + + + <tag> + + + on the command line). +

    +

    + Requires that a valid tag is given. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the given tag is enabled. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + + getOutput + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + tag + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get an output stream for the given tag. +

    +

    + Tags can be enabled with the + + + output + + + option (and + + + -o + + + <tag> + + + on the command line). Raises an exception when an invalid tag is given. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + tag + + – The output tag. +

    +
    +
    + Returns + + : + +
    +
    +

    + The output stream. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + string + + + + + + + + getVersion + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get a string representation of the version of this solver. +

    +
    +
    + Returns + + : + +
    +
    +

    + The version string. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + TermManager + + + + + + + + & + + + + + + getTermManager + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the associated term manager instance. +

    +
    +
    + Returns + + : + +
    +
    +

    + The term manager. +

    +
    +
    +
    +
    +
    +
    +

    + Friends +

    +
    +
    + + + friend + + + class + + + + parser::Cmd + +
    +
    +
    +
    + + + friend + + + class + + + + main::CommandExecutor + +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/sort.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/sort.html new file mode 100644 index 0000000000..04792368bd --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/sort.html @@ -0,0 +1,6384 @@ + + + + + + + + + + + Sort — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Sort + +  + +

    +

    + The + + + + Sort + + + + class represents the sort of a + + + + Term + + + + . +Its kind is represented as enum class + + + + cvc5::SortKind + + + + . +

    +

    + A + + + + Sort + + + + can be hashed (using + + + + std::hash<cvc5::Sort> + + + + ) and serialized to an output stream +(using function + + + + std::ostream& + + + cvc5::operator<< + + + (std::ostream& + + + out, + + + const + + + Sort& + + + s) + + + + ). +

    +

    + Class + + + + cvc5::Sort + + + + only provides the default constructor +to create a null Sort. Class + + + + TermManager + + + + provides factory functions for all other sorts, e.g., + + + + cvc5::TermManager::getBooleanSort() + + + + for the Boolean sort and + + + + cvc5::TermManager::mkBitVectorSort() + + + + for bit-vector +sorts. +

    +

    + Sorts are defined as standardized in the SMT-LIB standard for standardized +theories. Additionally, we introduce the following sorts for non-standardized +theories: +

    + +
    + +
    +
    +
    + + + + + + + + + + + class + + + + + + + + Sort + + + + +  + +
    +
    +
    +

    + The sort of a cvc5 term. +

    +
    +

    + Public Functions +

    +
    +
    + + + + + + + + + + + + Sort + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Constructor. +

    +
    +
    +
    +
    + + + + + + + + + + + + ~Sort + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Destructor. +

    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + operator + + + + + == + + + + + ( + + + + const + + + + + + + + Sort + + + + + + + + & + + + + + s + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Comparison for structural equality. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + s + + – The sort to compare to. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the sorts are equal. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + operator + + + + + != + + + + + ( + + + + const + + + + + + + + Sort + + + + + + + + & + + + + + s + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Comparison for structural disequality. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + s + + – The sort to compare to. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the sorts are not equal. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + operator + + + + + < + + + + + ( + + + + const + + + + + + + + Sort + + + + + + + + & + + + + + s + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Comparison for ordering on sorts. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + s + + – The sort to compare to. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this sort is less than s. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + operator + + + + + > + + + + + ( + + + + const + + + + + + + + Sort + + + + + + + + & + + + + + s + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Comparison for ordering on sorts. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + s + + – The sort to compare to. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this sort is greater than s. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + operator + + + + + <= + + + + + ( + + + + const + + + + + + + + Sort + + + + + + + + & + + + + + s + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Comparison for ordering on sorts. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + s + + – The sort to compare to. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this sort is less than or equal to s. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + operator + + + + + >= + + + + + ( + + + + const + + + + + + + + Sort + + + + + + + + & + + + + + s + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Comparison for ordering on sorts. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + s + + – The sort to compare to. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this sort is greater than or equal to s. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + SortKind + + + + + + + + + getKind + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the kind of this sort. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The kind of the sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + hasSymbol + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this sort has a symbol (a name). +

    +

    + For example, uninterpreted sorts and uninterpreted sort constructors have symbols. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the sort has a symbol. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + string + + + + + + + + getSymbol + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the symbol of this + + + Sort + + + . +

    +

    + The symbol of this sort is the string that was provided when constructing it via Solver::mkUninterpretedSort(const std::string&) const, Solver::mkUnresolvedSort(const std::string&, size_t) const, or Solver::mkUninterpretedSortConstructorSort(const std::string&, size_t). +

    +
    +

    + Note +

    +

    + Asserts + + + hasSymbol() + + + . +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The raw symbol of the sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isNull + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this is the null sort ( + + + Sort::Sort() + + + ). +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this + + + Sort + + + is the null sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isBoolean + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this is the Boolean sort (SMT-LIB: + + + Bool + + + ). +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this sort is the Boolean sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isInteger + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this is the integer sort (SMT-LIB: + + + Int + + + ). +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this sort is the integer sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isReal + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this is the real sort (SMT-LIB: + + + Real + + + ). +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this sort is the real sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isString + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this is the string sort (SMT-LIB: + + + String + + + ). +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this sort is the string sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isRegExp + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this is the regular expression sort (SMT-LIB: + + + RegLan + + + ). +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this sort is the regular expression sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isRoundingMode + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this is the rounding mode sort (SMT-LIB: + + + RoundingMode + + + ). +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this sort is the rounding mode sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isBitVector + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this is a bit-vector sort (SMT-LIB: + + + (_ + + + BitVec + + + i) + + + ). +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this sort is a bit-vector sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isFloatingPoint + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this is a floatingpoint sort (SMT-LIB: + + + (_ + + + FloatingPoint + + + eb + + + sb) + + + ). +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this sort is a floating-point sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isDatatype + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this is a datatype sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this sort is a datatype sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isDatatypeConstructor + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this is a datatype constructor sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this sort is a datatype constructor sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isDatatypeSelector + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this is a datatype selector sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this sort is a datatype selector sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isDatatypeTester + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this is a datatype tester sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this sort is a datatype tester sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isDatatypeUpdater + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this is a datatype updater sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this sort is a datatype updater sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isFunction + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this is a function sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this sort is a function sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isPredicate + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this is a predicate sort. +

    +

    + A predicate sort is a function sort that maps to the Boolean sort. All predicate sorts are also function sorts. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this sort is a predicate sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isTuple + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this is a tuple sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this sort is a tuple sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isNullable + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this is a nullable sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the sort is a nullable sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isRecord + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this is a record sort. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + True if the sort is a record sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isArray + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this is an array sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the sort is an array sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isFiniteField + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this is a finite field sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the sort is a finite field sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isSet + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this is a Set sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the sort is a Set sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isBag + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this is a Bag sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the sort is a Bag sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isSequence + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this is a Sequence sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the sort is a Sequence sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isAbstract + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this is an abstract sort. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + True if the sort is a abstract sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isUninterpretedSort + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this is an uninterpreted sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this is an uninterpreted sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isUninterpretedSortConstructor + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this is an uninterpreted sort constructor. +

    +

    + An uninterpreted sort constructor has arity > 0 and can be instantiated to construct uninterpreted sorts with given sort parameters. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this is of sort constructor kind. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isInstantiated + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this is an instantiated (parametric datatype or uninterpreted sort constructor) sort. +

    +

    + An instantiated sort is a sort that has been constructed from instantiating a sort with sort arguments (see + + + Sort::instantiate(const std::vector<Sort>&) const + + + )). +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this is an instantiated sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + getUninterpretedSortConstructor + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the associated uninterpreted sort constructor of an instantiated uninterpreted sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + The uninterpreted sort constructor sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Datatype + + + + + + + + + getDatatype + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The underlying datatype of a datatype sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + instantiate + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Sort + + + + + + > + + + + + + + & + + + + + params + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Instantiate a parameterized datatype sort or uninterpreted sort constructor sort. +

    +

    + Create sort parameters with + + + Solver::mkParamSort() + + + . +

    +
    +
    + Parameters + + : + +
    +
    +

    + + params + + – The list of sort parameters to instantiate with. +

    +
    +
    + Returns + + : + +
    +
    +

    + The instantiated sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Sort + + + + + + > + + + + + + + + getInstantiatedParameters + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the sorts used to instantiate the sort parameters of a parametric sort (parametric datatype or uninterpreted sort constructor sort, see Sort::instantiate(const std::vector<Sort>& const)). +

    +
    +
    + Returns + + : + +
    +
    +

    + The sorts used to instantiate the sort parameters of a parametric sort +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + substitute + + + + + ( + + + + const + + + + + + + + Sort + + + + + + + + & + + + + + sort + + + , + + + const + + + + + + + + Sort + + + + + + + + & + + + + + replacement + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Substitution of Sorts. +

    +

    + Note that this replacement is applied during a pre-order traversal and only once to the sort. It is not run until fix point. +

    +

    + For example, + + + (Array + + + A + + + B).substitute({A, + + + C}, + + + {(Array + + + C + + + D), + + + (Array + + + A + + + B)}) + + + will return + + + (Array + + + (Array + + + C + + + D) + + + B) + + + . +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + sort + + – The subsort to be substituted within this sort. +

      +
    • +
    • +

      + + replacement + + – The sort replacing the substituted subsort. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + substitute + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Sort + + + + + + > + + + + + + + & + + + + + sorts + + + , + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Sort + + + + + + > + + + + + + + & + + + + + replacements + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Simultaneous substitution of Sorts. +

    +

    + Note that this replacement is applied during a pre-order traversal and only once to the sort. It is not run until fix point. In the case that sorts contains duplicates, the replacement earliest in the vector takes priority. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + sorts + + – The subsorts to be substituted within this sort. +

      +
    • +
    • +

      + + replacements + + – The sort replacing the substituted subsorts. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + toStream + + + + + ( + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + out + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Output a string representation of this sort to a given stream. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + out + + – The output stream. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + string + + + + + + + + toString + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + A string representation of this sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + size_t + + + + + + + + getDatatypeConstructorArity + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The arity of a datatype constructor sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Sort + + + + + + > + + + + + + + + getDatatypeConstructorDomainSorts + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The domain sorts of a datatype constructor sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + getDatatypeConstructorCodomainSort + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The codomain sort of a constructor sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + getDatatypeSelectorDomainSort + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The domain sort of a datatype selector sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + getDatatypeSelectorCodomainSort + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The codomain sort of a datatype selector sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + getDatatypeTesterDomainSort + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The domain sort of a datatype tester sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + getDatatypeTesterCodomainSort + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +

    + Note +

    +

    + We mainly need this for the symbol table, which doesn’t have access to the solver object. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The codomain sort of a datatype tester sort, which is the Boolean sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + size_t + + + + + + + + getFunctionArity + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The arity of a function sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Sort + + + + + + > + + + + + + + + getFunctionDomainSorts + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The domain sorts of a function sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + getFunctionCodomainSort + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The codomain sort of a function sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + getArrayIndexSort + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The array index sort of an array sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + getArrayElementSort + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The array element sort of an array sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + getSetElementSort + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The element sort of a set sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + getBagElementSort + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The element sort of a bag sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + getSequenceElementSort + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The element sort of a sequence sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + SortKind + + + + + + + + + getAbstractedKind + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The sort kind of an abstract sort, which denotes the kind of sorts that this abstract sort denotes. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + size_t + + + + + + + + getUninterpretedSortConstructorArity + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The arity of an uninterpreted sort constructor sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + uint32_t + + + + + + + + getBitVectorSize + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The bit-width of the bit-vector sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + string + + + + + + + + getFiniteFieldSize + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The size of the finite field sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + uint32_t + + + + + + + + getFloatingPointExponentSize + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The bit-width of the exponent of the floating-point sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + uint32_t + + + + + + + + getFloatingPointSignificandSize + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The width of the significand of the floating-point sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + size_t + + + + + + + + getDatatypeArity + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the arity of a datatype sort, which is the number of type parameters if the datatype is parametric, or 0 otherwise. +

    +
    +
    + Returns + + : + +
    +
    +

    + The arity of a datatype sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + size_t + + + + + + + + getTupleLength + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The length of a tuple sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Sort + + + + + + > + + + + + + + + getTupleSorts + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The element sorts of a tuple sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + getNullableElementSort + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The element sort of a nullable sort. +

    +
    +
    +
    +
    +
    +
    +

    + Friends +

    +
    +
    + + + friend + + + class + + + + parser::Cmd + +
    +
    +
    +
    + + + friend + + + struct + + + + std::hash< + + + Sort + + + > + +
    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + + cvc5 + + + + + :: + + + + + + + operator + + + + + << + + + + + ( + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + out + + + , + + + const + + + + + + + + Sort + + + + + + + + & + + + + + s + + + + ) + + +  + +
    +
    +
    +

    + Serialize a sort to given stream. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + out + + – The output stream. +

      +
    • +
    • +

      + + s + + – The sort to be serialized to the given output stream. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The output stream. +

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + template + + + + + < + + + + + > + + +
    + + + + + struct + + + + + + + + hash + + + + + + < + + + + + cvc5 + + + + + :: + + + + + + Sort + + + + + + > + + + +  + +
    +
    +
    +

    + Hash function for Sorts. +

    +
    +

    + Public Functions +

    +
    +
    + + + + + + + + + + + size_t + + + + + + + + operator + + + + + () + + + + + ( + + + + const + + + + + + + cvc5 + + + + + :: + + + + + + Sort + + + + + + + + & + + + + + s + + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/statistics.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/statistics.html new file mode 100644 index 0000000000..300e214625 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/statistics.html @@ -0,0 +1,2702 @@ + + + + + + + + + + + Statistics — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Statistics + +  + +

    +

    + See + + + Statistics + + + for general information on statistics in cvc5. +

    +

    + Class + + + + cvc5::Statistics + + + + represents a mapping from statistic names +(as + + + std::string + + + ) to statistic values, which are represented by class + + + + cvc5::Stat + + + + . A + + + + cvc5::Stat + + + + may hold values of different +types ( + + + int64_t + + + , + + + double + + + , + + + std::string + + + and histograms) and can be +inspected by identifying the type +( + + + + Stat::isInt() + + + + , + + + + Stat::isDouble() + + + + , etc) and obtaining +the actual value ( + + + + Stat::getInt() + + + + , + + + + Stat::getDouble() + + + + , etc). Histograms +are represented as + + + std::map<std::string, + + + uint64_t> + + + where the key is the +string representation of one enumeration value +and the value is the frequency of this particular value. +

    +

    + By default, iterating over a + + + + Statistics + + + + object shows all statistics, including internal and unchanged ones. +The inclusion of internal and defaulted statistics can be configured via +Boolean parameters + + + internal + + + and + + + defaulted + + + of function + + + + Statistics::begin() + + + + . +

    +
    + +
    +
    +
    + + + + + + + + + + + class + + + + + + + + Statistics + + + + +  + +
    +
    +
    +

    +

    +

    + Represents a snapshot of the solver statistics. See + + + Statistics + + + for +how statistics can be used. +

    +

    + Statistics can be queried from the Solver via + + + + Solver::getStatistics() + + + + , and +from the TermManager via + + + + TermManager::getStatistics() + + + + . An statistics instance obtained from +either call is independent of the + + + + Solver + + + + (and +its associated :cpp:class: + + + ` + + + TermManager <cvc5::TermManager>`object: it will +not change when new terms are created or the solver’s internal statistics +do. It will also not be invalidated if the solver/term manageris destroyed. +

    +

    + Iterating over this class (via + + + + begin() + + + + and + + + + end() + + + + ) +shows only public statistics that have been changed. By passing appropriate +flags to + + + + begin() + + + + , statistics that are +internal, defaulted, or both, can be included as well. A single statistic +value is represented as + + + + Stat + + + + . +

    +
    +

    + Public Functions +

    +
    +
    + + + + + + + + + + + const + + + + + + + + Stat + + + + + + + + & + + + + + + get + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + name + + + + ) + + +  + +
    +
    +
    +

    + Retrieve the statistic with the given name. +

    +
    +

    + Note +

    +

    + Asserts that a statistic with the given name actually exists and throws a + + + CVC5ApiRecoverableException + + + if it does not. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + name + + – The name of the statistic. +

    +
    +
    + Returns + + : + +
    +
    +

    + The statistic with the given name. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + iterator + + + + + + + + begin + + + + + ( + + + + bool + + + + + + + internal + + + + + + + = + + + + + + + true + + + , + + + bool + + + + + + + defaulted + + + + + + + = + + + + + + + true + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Begin iteration over the statistics values. By default, only entries that are public and have been set are visible while the others are skipped. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + internal + + – If set to true, internal statistics are shown as well. +

      +
    • +
    • +

      + + defaulted + + – If set to true, defaulted statistics are shown as well. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + iterator + + + + + + + + end + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + End iteration +

    +
    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + + cvc5 + + + + + :: + + + + + + + operator + + + + + << + + + + + ( + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + out + + + , + + + const + + + + + + + + Statistics + + + + + + + + & + + + + + stats + + + + ) + + +  + +
    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + class + + + + + + + + Stat + + + + +  + +
    +
    +
    +

    + Represents a snapshot of a single statistic value. See + + + Statistics + + + for +how statistics can be used. +A value can be of type + + + int64_t + + + , + + + double + + + , + + + std::string + + + or a +histogram +( + + + std::map<std::string, + + + uint64_t> + + + ). +The value type can be queried (using + + + isInt() + + + , + + + isDouble() + + + , etc.) and +the stored value can be accessed (using + + + getInt() + + + , + + + getDouble() + + + , etc.). +It is possible to query whether this statistic is an internal statistic by + + + + isInternal() + + + + and whether its value is +the default value by + + + + isDefault() + + + + . +

    +
    +

    + Public Types +

    +
    +
    + + + + + + + + + using + + + + + + + + HistogramData + + + + + + + + = + + + + + + + std + + + + + :: + + + + + map + + + + + < + + + + + std + + + + + :: + + + + + string + + + + + , + + + + + + + uint64_t + + + + + > + + + +  + +
    +
    +
    +

    + Representation of a histogram: maps names to frequencies. +

    +
    +
    +
    +
    +

    + Public Functions +

    +
    +
    + + + + + + + + + + + + Stat + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Create an empty statistics object. On such an object all + + + isX() + + + return false and all + + + getX() + + + throw an API exception. It solely exists because it makes implementing bindings for other languages much easier. +

    +
    +
    +
    +
    + + + + + + + + + + + + Stat + + + + + ( + + + + const + + + + + + + + Stat + + + + + + + + & + + + + + s + + + + ) + + +  + +
    +
    +
    +

    + Copy constructor +

    +
    +
    +
    +
    + + + + + + + + + + + + ~Stat + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Destructor +

    +
    +
    +
    +
    + + + + + + + + + + + + Stat + + + + + + + + & + + + + + + operator + + + + + = + + + + + ( + + + + const + + + + + + + + Stat + + + + + + + + & + + + + + s + + + + ) + + +  + +
    +
    +
    +

    + Copy assignment +

    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isInternal + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this statistic is intended for internal use only. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this is an internal statistic. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isDefault + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this statistic holds the default value. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this is a defaulted statistic. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isInt + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this statistic holds an integer value. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this value is an integer. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + int64_t + + + + + + + + getInt + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the value of an integer statistic. +

    +
    +
    + Returns + + : + +
    +
    +

    + The integer value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isDouble + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this statistic holds a double value. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this value is a double. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + double + + + + + + + + getDouble + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the value of a double statistic. +

    +
    +
    + Returns + + : + +
    +
    +

    + The double value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isString + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this statistic holds a string value. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this value is a string. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + + getString + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the value of a string statistic. +

    +
    +
    + Returns + + : + +
    +
    +

    + The string value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isHistogram + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this statistics holds a histogram. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this value is a histogram. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + + HistogramData + + + + + + + + & + + + + + + getHistogram + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the value of a histogram statistic. +

    +
    +
    + Returns + + : + +
    +
    +

    + The histogram value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + string + + + + + + + + toString + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get a string represenation of this statistic. +

    +
    +
    + Returns + + : + +
    +
    +

    + The string represenation. +

    +
    +
    +
    +
    +
    +
    +

    + Friends +

    +
    +
    + + + friend + + + class + + + + Statistics + +
    +
    +
    +
    + + + + + + + + + + + friend + + + + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + + operator + + + + + << + + + + + ( + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + os + + + , + + + const + + + + + + + + Stat + + + + + + + + & + + + + + sv + + + + ) + + +  + +
    +
    +
    +

    + Print a + + + + + Stat + + + + + object to an + + + std::ostream + + + . +

    +
    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + + cvc5 + + + + + :: + + + + + + + operator + + + + + << + + + + + ( + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + os + + + , + + + const + + + + + + + + Stat + + + + + + + + & + + + + + stat + + + + ) + + +  + +
    +
    +
    +

    + Print a + + + + + Stat + + + + + object to an + + + std::ostream + + + . +

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/symbolmanager.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/symbolmanager.html new file mode 100644 index 0000000000..a5c5e51a7d --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/symbolmanager.html @@ -0,0 +1,1248 @@ + + + + + + + + + + + SymbolManager — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + SymbolManager + +  + +

    +

    + This class manages a symbol table and other meta-information pertaining to +SMT-LIB v2 inputs (e.g., named assertions, declared functions, etc.). +

    +
    +
    +
    + + + + + + + + + + + class + + + + + + + + SymbolManager + + + + +  + +
    +
    +
    +

    + Symbol manager. Internally, this class manages a symbol table and other meta-information pertaining to SMT2 file inputs (e.g. named assertions, declared functions, etc.). +

    +

    + A symbol manager can be modified by invoking commands, see + + + Command::invoke + + + . +

    +

    + A symbol manager can be provided when constructing an + + + InputParser + + + , in which case that + + + InputParser + + + has symbols of this symbol manager preloaded. +

    +

    + The symbol manager’s interface is otherwise not publicly available. +

    +
    +

    + Public Functions +

    +
    +
    + + + + + + + + + + + + SymbolManager + + + + + ( + + + + cvc5 + + + + + :: + + + + + + TermManager + + + + + + + + & + + + + + tm + + + + ) + + +  + +
    +
    +
    +

    + Constructor. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + tm + + – The associated term manager instance. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + SymbolManager + + + + + ( + + + + cvc5 + + + + + :: + + + + + + Solver + + + + + + + + * + + + + + slv + + + + ) + + +  + +
    +
    +
    +

    + Constructor. +

    +
    +

    + Warning +

    +

    + This constructor is deprecated and replaced by + + + + + SymbolManager::SymbolManager(TermManager&) + + + + + . It will be removed in a future release. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + slv + + – The solver instance. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + ~SymbolManager + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Destructor. +

    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isLogicSet + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if the logic of this symbol manager has been set. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the logic has been set. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + + getLogic + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the logic configured for this symbol manager. +

    +
    +

    + Note +

    +

    + Asserts + + + isLogicSet() + + + . +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The configured logic. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Sort + + + + + + > + + + + + + + + getDeclaredSorts + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the list of sorts that have been declared via + + + declare-sort + + + commands. These are the sorts that are printed as part of a response to a + + + get-model + + + command. +

    +
    +
    + Returns + + : + +
    +
    +

    + The declared sorts. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Term + + + + + + > + + + + + + + + getDeclaredTerms + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the list of terms that have been declared via + + + declare-fun + + + and + + + declare-const + + + . These are the terms that are printed in response to a + + + get-model + + + command. +

    +
    +
    + Returns + + : + +
    +
    +

    + The declared terms. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + map + + + + + < + + + + + + Term + + + + + + , + + + + + + + std + + + + + :: + + + + + string + + + + + > + + + + + + + + getNamedTerms + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get a mapping from terms to names that have been given to them via the :named attribute. +

    +
    +
    + Returns + + : + +
    +
    +

    + A map of the named terms to their names. +

    +
    +
    +
    +
    +
    +
    +

    + Friends +

    +
    +
    + + + friend + + + class + + + + internal::InteractiveShell + +
    +
    +
    +
    + + + friend + + + class + + + + main::CommandExecutor + +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/synthresult.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/synthresult.html new file mode 100644 index 0000000000..3a170b08e2 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/synthresult.html @@ -0,0 +1,1313 @@ + + + + + + + + + + + SynthResult — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + SynthResult + +  + +

    +

    + This class represents a + + + + cvc5::Solver + + + + SyGus synthesis result. +

    +
    + +
    +
    +
    + + + + + + + + + + + class + + + + + + + + SynthResult + + + + +  + +
    +
    +
    +

    + Encapsulation of a solver synth result. +

    +

    + This is the return value of the API functions: +

    + +

    + which we call “synthesis queries”. This class indicates whether the synthesis query has a solution, has no solution, or is unknown. +

    +
    +

    + Public Functions +

    +
    +
    + + + + + + + + + + + + SynthResult + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Constructor. +

    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isNull + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if a given synthesis result is empty (a nullary result) and not an actual result returned from a synthesis query. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if + + + SynthResult + + + is null, i.e., not a + + + SynthResult + + + returned from a synthesis query. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + hasSolution + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True if the synthesis query has a solution. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + hasNoSolution + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True if the synthesis query has no solution. In this case, it was determined that there was no solution. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isUnknown + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True if the result of the synthesis query could not be determined. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + operator + + + + + == + + + + + ( + + + + const + + + + + + + + SynthResult + + + + + + + + & + + + + + r + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Operator overloading for equality of two synthesis results. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + r + + – The synthesis result to compare to for equality. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the synthesis results are equal. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + operator + + + + + != + + + + + ( + + + + const + + + + + + + + SynthResult + + + + + + + + & + + + + + r + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Operator overloading for disequality of two synthesis results. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + r + + – The synthesis result to compare to for disequality. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the synthesis results are disequal. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + string + + + + + + + + toString + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + A string representation of this synthesis result. +

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + + cvc5 + + + + + :: + + + + + + + operator + + + + + << + + + + + ( + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + out + + + , + + + const + + + + + + + + SynthResult + + + + + + + + & + + + + + r + + + + ) + + +  + +
    +
    +
    +

    + Serialize a + + + SynthResult + + + to given stream. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + out + + – The output stream. +

      +
    • +
    • +

      + + r + + – The result to be serialized to the given output stream. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The output stream. +

    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/term.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/term.html new file mode 100644 index 0000000000..87d042b074 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/term.html @@ -0,0 +1,10568 @@ + + + + + + + + + + + Term — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Term + +  + +

    +

    + The + + + + Term + + + + class represents an arbitrary expression +of any of the supported sorts. The list of all supported kinds of terms is +given by the + + + + Kind + + + + enum. +The + + + + Term + + + + class provides functions for general +inspection (e.g., comparison, retrieving the kind and sort, accessing +sub-terms), +but also functions for retrieving constant values for the supported theories +(i.e., + + + is<Type>Value() + + + and + + + get<Type>Value() + + + , which returns the +constant values in the best type standard C++ offers). +

    +

    + Additionally, a + + + + Term + + + + can be hashed (using + + + + std::hash<cvc5::Term> + + + + ) and given to output streams, including +terms within standard containers like + + + std::map + + + , + + + std::set + + + , or + + + std::vector + + + . +

    +

    + The + + + + Term + + + + only offers the default constructor to +create a null term. Instead, the + + + + TermManager + + + + class provides factory functions to create terms, e.g., + + + + TermManager::mkTerm() + + + + for generic +terms and + + + TermManager::mk<Type>() + + + for constants, variables and values +of a given type. +

    +
    + +
    +
    +
    + + + + + + + + + + + class + + + + + + + + Term + + + + +  + +
    +
    +
    +

    + A cvc5 + + + Term + + + . +

    +
    +

    + Public Functions +

    +
    +
    + + + + + + + + + + + + Term + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Constructor for a null term. +

    +
    +
    +
    +
    + + + + + + + + + + + + ~Term + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Destructor. +

    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + operator + + + + + == + + + + + ( + + + + const + + + + + + + + Term + + + + + + + + & + + + + + t + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Syntactic equality operator. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + t + + – The term to compare to for equality. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the terms are equal. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + operator + + + + + != + + + + + ( + + + + const + + + + + + + + Term + + + + + + + + & + + + + + t + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Syntactic disequality operator. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + t + + – The term to compare to for disequality. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if terms are disequal. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + operator + + + + + < + + + + + ( + + + + const + + + + + + + + Term + + + + + + + + & + + + + + t + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Comparison for ordering on terms by their id. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + t + + – The term to compare to. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this term is less than t. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + operator + + + + + > + + + + + ( + + + + const + + + + + + + + Term + + + + + + + + & + + + + + t + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Comparison for ordering on terms by their id. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + t + + – The term to compare to. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this term is greater than t. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + operator + + + + + <= + + + + + ( + + + + const + + + + + + + + Term + + + + + + + + & + + + + + t + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Comparison for ordering on terms by their id. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + t + + – The term to compare to. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this term is less than or equal to t. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + operator + + + + + >= + + + + + ( + + + + const + + + + + + + + Term + + + + + + + + & + + + + + t + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Comparison for ordering on terms by their id. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + t + + – The term to compare to. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this term is greater than or equal to t. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + size_t + + + + + + + + getNumChildren + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the number of children of this term. +

    +
    +
    + Returns + + : + +
    +
    +

    + The number of children of this term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + operator + + + + + [] + + + + + ( + + + + size_t + + + + + + + index + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the child term of this term at a given index. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + index + + – The index of the child. +

    +
    +
    + Returns + + : + +
    +
    +

    + The child term at the given index. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + uint64_t + + + + + + + + getId + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the id of this term. +

    +
    +
    + Returns + + : + +
    +
    +

    + The id of this term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Kind + + + + + + + + + getKind + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the kind of this term. +

    +
    +
    + Returns + + : + +
    +
    +

    + The kind of this term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + getSort + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the sort of this term. +

    +
    +
    + Returns + + : + +
    +
    +

    + The sort of this term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + substitute + + + + + ( + + + + const + + + + + + + + Term + + + + + + + + & + + + + + term + + + , + + + const + + + + + + + + Term + + + + + + + + & + + + + + replacement + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Replace + + + term + + + with + + + replacement + + + in this term. +

    +
    +

    + Note +

    +

    + This replacement is applied during a pre-order traversal and only once (it is not run until fixed point). +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + term + + – The term to replace. +

      +
    • +
    • +

      + + replacement + + – The term to replace it with. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The result of replacing + + + term + + + with + + + replacement + + + in this term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + substitute + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Term + + + + + + > + + + + + + + & + + + + + terms + + + , + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Term + + + + + + > + + + + + + + & + + + + + replacements + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Simultaneously replace + + + terms + + + with + + + replacements + + + in this term. +

    +

    + In the case that + + + terms + + + contains duplicates, the replacement earliest in the vector takes priority. For example, calling substitute on + + + f(x,y) + + + with + + + terms + + + = + + + { + + + x, + + + z + + + } + + + , + + + replacements + + + = + + + { + + + g(z), + + + w + + + } + + + results in the term + + + f(g(z),y) + + + . +

    +
    +

    + Note +

    +

    + Requires that + + + terms + + + and + + + replacements + + + are of equal size (they are interpreted as 1 : 1 mapping). +

    +
    +
    +

    + Note +

    +

    + This replacement is applied during a pre-order traversal and only once (it is not run until fixed point). +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + terms + + – The terms to replace. +

      +
    • +
    • +

      + + replacements + + – The replacement terms. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The result of simultaneously replacing + + + terms + + + with + + + replacements + + + in this term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + hasOp + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this term has an operator. +

    +
    +
    + Returns + + : + +
    +
    +

    + True iff this term has an operator. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Op + + + + + + + + + getOp + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the operator of a term with an operator. +

    +
    +

    + Note +

    +

    + Requires that this term has an operator (see + + + hasOp() + + + ). +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The + + + Op + + + used to create this term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + hasSymbol + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this term has a symbol (a name). +

    +

    + For example, free constants and variables have symbols. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the term has a symbol. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + string + + + + + + + + getSymbol + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the symbol of this + + + Term + + + . +

    +

    + The symbol of the term is the string that was provided when constructing it via + + + TermManager::mkConst() + + + or + + + TermManager::mkVar() + + + . +

    +
    +

    + Note +

    +

    + Requires that this term has a symbol (see + + + hasSymbol() + + + ). +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The raw symbol of the term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isNull + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this term is nullary. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this + + + Term + + + is a null term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + notTerm + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Boolean negation. +

    +
    +
    + Returns + + : + +
    +
    +

    + The Boolean negation of this term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + andTerm + + + + + ( + + + + const + + + + + + + + Term + + + + + + + + & + + + + + t + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Boolean and. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + t + + – A Boolean term. +

    +
    +
    + Returns + + : + +
    +
    +

    + The conjunction of this term and the given term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + orTerm + + + + + ( + + + + const + + + + + + + + Term + + + + + + + + & + + + + + t + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Boolean or. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + t + + – A Boolean term. +

    +
    +
    + Returns + + : + +
    +
    +

    + The disjunction of this term and the given term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + xorTerm + + + + + ( + + + + const + + + + + + + + Term + + + + + + + + & + + + + + t + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Boolean exclusive or. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + t + + – A Boolean term. +

    +
    +
    + Returns + + : + +
    +
    +

    + The exclusive disjunction of this term and the given term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + eqTerm + + + + + ( + + + + const + + + + + + + + Term + + + + + + + + & + + + + + t + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Equality. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + t + + – A Boolean term. +

    +
    +
    + Returns + + : + +
    +
    +

    + A Boolean term representing equivalence of this term and the given term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + impTerm + + + + + ( + + + + const + + + + + + + + Term + + + + + + + + & + + + + + t + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Boolean implication. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + t + + – A Boolean term. +

    +
    +
    + Returns + + : + +
    +
    +

    + The implication of this term and the given term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + iteTerm + + + + + ( + + + + const + + + + + + + + Term + + + + + + + + & + + + + + t + + + , + + + const + + + + + + + + Term + + + + + + + + & + + + + + e + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + If-then-else with this term as the Boolean condition. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + t + + – The ‘then’ term. +

      +
    • +
    • +

      + + e + + – The ‘else’ term. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The if-then-else term with this term as the Boolean condition. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + string + + + + + + + + toString + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + A string representation of this term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + const_iterator + + + + + + + + + begin + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + An iterator to the first child of this + + + Term + + + . +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + const_iterator + + + + + + + + + end + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + An iterator to one-off-the-last child of this + + + Term + + + . +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + int32_t + + + + + + + + getRealOrIntegerValueSign + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the sign of an integer or real value. +

    +
    +

    + Note +

    +

    + Requires that this term is an integer or real value. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + 0 if this term is zero, -1 if this term is a negative real or integer value, 1 if this term is a positive real or integer value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isInt32Value + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this term is an int32 value. +

    +
    +

    + Note +

    +

    + This will return true for integer constants and real constants that have integer value. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is an integral value that fits within int32_t. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + int32_t + + + + + + + + getInt32Value + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the + + + int32_t + + + representation of this integral value. +

    +
    +

    + Note +

    +

    + Requires that this term is an int32 value (see + + + isInt32Value() + + + ). +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + This integral value as + + + int32_t + + + value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isUInt32Value + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this term is a uint32 value. +

    +
    +

    + Note +

    +

    + This will return true for integer constants and real constants that have integral value. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is an integral value and fits within uint32_t. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + uint32_t + + + + + + + + getUInt32Value + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the + + + uint32_t + + + representation of this integral value. +

    +
    +

    + Note +

    +

    + Requires that this term is a uint32 value (see + + + isUInt32Value() + + + ). +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + This integral value as a + + + uint32_t + + + . +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isInt64Value + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this term is an int64 value. +

    +
    +

    + Note +

    +

    + This will return true for integer constants and real constants that have integral value. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is an integral value and fits within int64_t. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + int64_t + + + + + + + + getInt64Value + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the + + + int64_t + + + representation of this integral value. +

    +
    +

    + Note +

    +

    + Requires that this term is an int64 value (see + + + isInt64Value() + + + ). +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + This integral value as a + + + int64_t + + + . +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isUInt64Value + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this term is a uint64 value. +

    +
    +

    + Note +

    +

    + This will return true for integer constants and real constants that have integral value. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is an integral value that fits within uint64_t. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + uint64_t + + + + + + + + getUInt64Value + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the + + + uint64_t + + + representation of this integral value. +

    +
    +

    + Note +

    +

    + Requires that this term is an uint64 value (see + + + isUInt64Value() + + + ). +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + This integral value as a + + + uint64_t + + + . +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isIntegerValue + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this term is an integral value. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is an integer constant or a real constant that has an integral value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + string + + + + + + + + getIntegerValue + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get a string representation of this integral value. +

    +
    +

    + Note +

    +

    + Requires that this term is an integral value (see + + + isIntegerValue() + + + ). +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The integral term in (decimal) string representation. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isStringValue + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this term is a string value. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is a string value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + wstring + + + + + + + + getStringValue + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the native string representation of a string value. +

    +
    +

    + Note +

    +

    + Requires that this term is a string value (see + + + isStringValue() + + + ). +

    +
    +
    +

    + Note +

    +

    + This is not to be confused with + + + toString() + + + , which returns some string representation of the term, whatever data it may hold. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The string term as a native string value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isReal32Value + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this term is a rational value whose numerator fits into an int32 value and its denominator fits into a uint32 value. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is a rational and its numerator and denominator fit into 32 bit integer values. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + pair + + + + + < + + + + + int32_t + + + + + , + + + + + + + uint32_t + + + + + > + + + + + + + + getReal32Value + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the 32 bit integer representations of the numerator and denominator of a rational value. +

    +
    +

    + Note +

    +

    + Requires that this term is a rational value and its numerator and denominator fit into 32 bit integer values (see + + + isReal32Value() + + + ). +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The representation of a rational value as a pair of its numerator and denominator as integer values. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isReal64Value + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this term is a rational value whose numerator fits into an int64 value and its denominator fits into a uint64 value. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is a rational value whose numerator and denominator fit within int64_t and uint64_t, respectively. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + pair + + + + + < + + + + + int64_t + + + + + , + + + + + + + uint64_t + + + + + > + + + + + + + + getReal64Value + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the 64 bit integer representations of the numerator and denominator of a rational value. +

    +
    +

    + Note +

    +

    + Requires that this term is a rational value and its numerator and denominator fit into 64 bit integer values (see + + + isReal64Value() + + + ). +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The representation of a rational value as a pair of its numerator and denominator. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isRealValue + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this term is a rational value. +

    +
    +

    + Note +

    +

    + A term of kind PI is not considered to be a real value. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is a rational value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + string + + + + + + + + getRealValue + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get a string representation of this rational value. +

    +
    +

    + Note +

    +

    + Requires that this term is a rational value (see + + + isRealValue() + + + ). +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The representation of a rational value as a (rational) string. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isConstArray + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this term is a constant array. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is a constant array. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + getConstArrayBase + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine the base (element stored at all indices) of a constant array. +

    +
    +

    + Note +

    +

    + Requires that this term is a constant array (see + + + isConstArray() + + + ). +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The base term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isBooleanValue + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this term is a Boolean value. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is a Boolean value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + getBooleanValue + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the value of a Boolean term as a native Boolean value. +

    +
    +

    + Note +

    +

    + Asserts + + + isBooleanValue() + + + . +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The representation of a Boolean value as a native Boolean value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isBitVectorValue + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this term is a bit-vector value. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is a bit-vector value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + string + + + + + + + + getBitVectorValue + + + + + ( + + + + uint32_t + + + + + + + base + + + + + + + = + + + + + + + 2 + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the string representation of a bit-vector value. +

    +
    +

    + Note +

    +

    + Asserts + + + isBitVectorValue() + + + . +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + base + + – + + + 2 + + + for binary, + + + 10 + + + for decimal, and + + + 16 + + + for hexadecimal. +

    +
    +
    + Returns + + : + +
    +
    +

    + The string representation of a bit-vector value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isFiniteFieldValue + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this term is a finite field value. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is a finite field value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + string + + + + + + + + getFiniteFieldValue + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the string representation of a finite field value (base 10). +

    +
    +

    + Note +

    +

    + Asserts + + + isFiniteFieldValue() + + + . +

    +
    +
    +

    + Note +

    +

    + Uses the integer representative of smallest absolute value. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The string representation of the integer representation of this finite field value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isUninterpretedSortValue + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this term is an uninterpreted sort value. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is an abstract value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + string + + + + + + + + getUninterpretedSortValue + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get a string representation of an uninterpreted sort value. +

    +
    +

    + Note +

    +

    + Asserts + + + isUninterpretedSortValue() + + + . +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The representation of an uninterpreted sort value as a string. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isTupleValue + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this term is a tuple value. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is a tuple value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Term + + + + + + > + + + + + + + + getTupleValue + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get a tuple value as a vector of terms. +

    +
    +

    + Note +

    +

    + Asserts + + + isTupleValue() + + + . +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The representation of a tuple value as a vector of terms. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isRoundingModeValue + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this term is a floating-point rounding mode value. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is a rounding mode value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + RoundingMode + + + + + + + + + getRoundingModeValue + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the RoundingMode value of a given rounding-mode value term. +

    +
    +

    + Note +

    +

    + Asserts + + + isRoundingModeValue() + + + . +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The floating-point rounding mode value of the term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isFloatingPointPosZero + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this term is a floating-point positive zero value (+zero). +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is the floating-point value for positive zero. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isFloatingPointNegZero + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this term is a floating-point negative zero value (-zero). +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is the floating-point value for negative zero. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isFloatingPointPosInf + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this term is a floating-point positive infinity value (+oo). +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is the floating-point value for positive. infinity. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isFloatingPointNegInf + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this term is a floating-point negative infinity value (-oo). +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is the floating-point value for negative. infinity. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isFloatingPointNaN + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if a given term is a floating-point NaN value. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is the floating-point value for not a number. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isFloatingPointValue + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if a given term is a floating-point value. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is a floating-point value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + tuple + + + + + < + + + + + uint32_t + + + + + , + + + + + + + uint32_t + + + + + , + + + + + + + + Term + + + + + + > + + + + + + + + getFloatingPointValue + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the representation of a floating-point value as a tuple of its exponent width, significand width and a bit-vector value term. +

    +
    +

    + Note +

    +

    + Asserts + + + isFloatingPointValue() + + + . +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The floating-point value representation. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isSetValue + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this term is a set value. +

    +

    + A term is a set value if it is considered to be a (canonical) constant set value. A canonical set value is one whose AST is: +

    +

    +

    +
    +
    +
    (union (singleton c1) ... (union (singleton c_{n-1}) (singleton c_n))))
    +
    +
    +
    +

    + where + + \(c_1 ... c_n\) + + are values ordered by id such that + + \(c_1 > ... > c_n\) + + (see + + + Term::operator>(const Term&) const + + + ). +

    +
    +

    + Note +

    +

    + A universe set term (kind + + + SET_UNIVERSE + + + ) is not considered to be a set value. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is a set value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + set + + + + + < + + + + + + Term + + + + + + > + + + + + + + + getSetValue + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get a set value as a set of terms. +

    +
    +

    + Note +

    +

    + Asserts + + + isSetValue() + + + . +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The representation of a set value as a set of terms. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isSequenceValue + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this term is a sequence value. +

    +

    + A term is a sequence value if it has kind #CONST_SEQUENCE. In contrast to values for the set sort (as described in + + + isSetValue() + + + ), a sequence value is represented as a + + + Term + + + with no children. +

    +

    + Semantically, a sequence value is a concatenation of unit sequences whose elements are themselves values. For example: +

    +

    +

    +
    +
    +
    (seq.++ (seq.unit 0) (seq.unit 1))
    +
    +
    +
    +

    + The above term has two representations in + + + Term + + + . One is as the sequence concatenation term: +

    +

    +

    +
    +
    +
    (SEQ_CONCAT (SEQ_UNIT 0) (SEQ_UNIT 1))
    +
    +
    +
    +

    + where 0 and 1 are the terms corresponding to the integer constants 0 and 1. +

    +

    + Alternatively, the above term is represented as the constant sequence value: +

    +

    +

    +
    +
    +
    CONST_SEQUENCE_{0,1}
    +
    +
    +
    +

    + where calling + + + getSequenceValue() + + + on the latter returns the vector + + + {0, + + + 1} + + + . +

    +

    + The former term is not a sequence value, but the latter term is. +

    +

    + Constant sequences cannot be constructed directly via the API. They are returned in response to API calls such + + + Solver::getValue() + + + and + + + Solver::simplify() + + + . +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is a sequence value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Term + + + + + + > + + + + + + + + getSequenceValue + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get a sequence value as a vector of terms. +

    +
    +

    + Note +

    +

    + Asserts + + + isSequenceValue() + + + . +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The representation of a sequence value as a vector of terms. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isCardinalityConstraint + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this term is a cardinality constraint. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is a cardinality constraint. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + pair + + + + + < + + + + + + Sort + + + + + + , + + + + + + + uint32_t + + + + + > + + + + + + + + getCardinalityConstraint + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get a cardinality constraint as a pair of its sort and upper bound. +

    +
    +

    + Note +

    +

    + Asserts + + + isCardinalityConstraint() + + + . +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The sort the cardinality constraint is for and its upper bound. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isRealAlgebraicNumber + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Determine if this term is a real algebraic number. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is a real algebraic number. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + getRealAlgebraicNumberDefiningPolynomial + + + + + ( + + + + const + + + + + + + + Term + + + + + + + + & + + + + + v + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the defining polynomial for a real algebraic number term, expressed in terms of the given variable. +

    +
    +

    + Note +

    +

    + Asserts + + + isRealAlgebraicNumber() + + + . +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + v + + – The variable over which to express the polynomial. +

    +
    +
    + Returns + + : + +
    +
    +

    + The defining polynomial. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + getRealAlgebraicNumberLowerBound + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the lower bound for a real algebraic number value. +

    +
    +

    + Note +

    +

    + Asserts + + + isRealAlgebraicNumber() + + + . +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The lower bound. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + getRealAlgebraicNumberUpperBound + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the upper bound for a real algebraic number value. +

    +
    +

    + Note +

    +

    + Asserts + + + isRealAlgebraicNumber() + + + . +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The upper bound. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + isSkolem + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Is this term a skolem? +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + True if this term is a skolem function. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + SkolemId + + + + + + + + + getSkolemId + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get skolem identifier of this term. +

    +
    +

    + Note +

    +

    + Asserts + + + isSkolem() + + + . +

    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The skolem identifier of this term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Term + + + + + + > + + + + + + + + getSkolemIndices + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get the skolem indices of this term. +

    +
    +

    + Note +

    +

    + Asserts + + + isSkolem() + + + . +

    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The skolem indices of this term. This is list of terms that the skolem function is indexed by. For example, the array diff skolem + + + + + SkolemId::ARRAY_DEQ_DIFF + + + + + is indexed by two arrays. +

    +
    +
    +
    +
    +
    +
    +

    + Friends +

    +
    +
    + + + friend + + + class + + + + parser::Cmd + +
    +
    +
    +
    + + + friend + + + struct + + + + std::hash< + + + Term + + + > + +
    +
    +
    +
    +
    + + + + + + + + + + + class + + + + + + + + const_iterator + + + + +  + +
    +
    +
    +

    + Iterator for the children of a + + + Term + + + . +

    +
    +

    + Note +

    +

    + This treats uninterpreted functions as + + + Term + + + just like any other term for example, the term + + + f(x, + + + y) + + + will have Kind + + + APPLY_UF + + + and three children: + + + f + + + , + + + x + + + , and + + + y + + +

    +
    +
    +

    + Public Types +

    +
    +
    + + + + + + + + + using + + + + + + + + iterator_category + + + + + + + + = + + + + + + + std + + + + + :: + + + + + forward_iterator_tag + + + +  + +
    +
    +
    +

    + Iterator tag +

    +
    +
    +
    +
    + + + + + + + + + using + + + + + + + + value_type + + + + + + + + = + + + + + + + + Term + + + + +  + +
    +
    +
    +

    + The type of the item +

    +
    +
    +
    +
    + + + + + + + + + using + + + + + + + + pointer + + + + + + + + = + + + + + + + const + + + + + + + + Term + + + + + + * + + + +  + +
    +
    +
    +

    + The pointer type of the item +

    +
    +
    +
    +
    + + + + + + + + + using + + + + + + + + reference + + + + + + + + = + + + + + + + const + + + + + + + + Term + + + + + + & + + + +  + +
    +
    +
    +

    + The reference type of the item +

    +
    +
    +
    +
    + + + + + + + + + using + + + + + + + + difference_type + + + + + + + + = + + + + + + + std + + + + + :: + + + + + ptrdiff_t + + + +  + +
    +
    +
    +

    + The type returned when two iterators are subtracted +

    +
    +
    +
    +
    +

    + Public Functions +

    +
    +
    + + + + + + + + + + + + const_iterator + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Null Constructor. +

    +
    +
    +
    +
    + + + + + + + + + + + + const_iterator + + + + + ( + + + + + TermManager + + + + + + + + * + + + + + tm + + + , + + + const + + + + + + + std + + + + + :: + + + + + shared_ptr + + + + + < + + + + + internal + + + + + :: + + + + + Node + + + + + > + + + + + + + & + + + + + e + + + , + + + uint32_t + + + + + + + p + + + + ) + + +  + +
    +
    +
    +

    + Constructor +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + tm + + – The associated term manager. +

      +
    • +
    • +

      + + e + + – A + + + std::shared + + + pointer + + + to the node that we’re iterating over. +

      +
    • +
    • +

      + + p + + – The position of the iterator (e.g. which child it’s on). +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + const_iterator + + + + + ( + + + + const + + + + + + + + const_iterator + + + + + + + + & + + + + + it + + + + ) + + +  + +
    +
    +
    +

    + Copy constructor. +

    +
    +
    +
    +
    + + + + + + + + + + + + const_iterator + + + + + + + + & + + + + + + operator + + + + + = + + + + + ( + + + + const + + + + + + + + const_iterator + + + + + + + + & + + + + + it + + + + ) + + +  + +
    +
    +
    +

    + Assignment operator. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + it + + – The iterator to assign to. +

    +
    +
    + Returns + + : + +
    +
    +

    + The reference to the iterator after assignment. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + operator + + + + + == + + + + + ( + + + + const + + + + + + + + const_iterator + + + + + + + + & + + + + + it + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Equality operator. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + it + + – The iterator to compare to for equality. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the iterators are equal. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + bool + + + + + + + + operator + + + + + != + + + + + ( + + + + const + + + + + + + + const_iterator + + + + + + + + & + + + + + it + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Disequality operator. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + it + + – The iterator to compare to for disequality. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the iterators are disequal. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + const_iterator + + + + + + + + & + + + + + + operator + + + + + ++ + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Increment operator (prefix). +

    +
    +
    + Returns + + : + +
    +
    +

    + A reference to the iterator after incrementing by one. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + const_iterator + + + + + + + + + operator + + + + + ++ + + + + + ( + + + + int + + + + ) + + +  + +
    +
    +
    +

    + Increment operator (postfix). +

    +
    +
    + Returns + + : + +
    +
    +

    + A reference to the iterator after incrementing by one. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + operator + + + + + * + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Dereference operator. +

    +
    +
    + Returns + + : + +
    +
    +

    + The term this iterator points to. +

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + + cvc5 + + + + + :: + + + + + + + operator + + + + + << + + + + + ( + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + out + + + , + + + const + + + + + + + + Term + + + + + + + + & + + + + + t + + + + ) + + +  + +
    +
    +
    +

    + Serialize a term to given stream. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + out + + – The output stream. +

      +
    • +
    • +

      + + t + + – The term to be serialized to the given output stream. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The output stream. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + + cvc5 + + + + + :: + + + + + + + operator + + + + + << + + + + + ( + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + out + + + , + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Term + + + + + + > + + + + + + + & + + + + + vector + + + + ) + + +  + +
    +
    +
    +

    + Serialize a vector of terms to given stream. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + out + + – The output stream. +

      +
    • +
    • +

      + + vector + + – The vector of terms to be serialized to the given stream. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The output stream. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + + cvc5 + + + + + :: + + + + + + + operator + + + + + << + + + + + ( + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + out + + + , + + + const + + + + + + + std + + + + + :: + + + + + set + + + + + < + + + + + + Term + + + + + + > + + + + + + + & + + + + + set + + + + ) + + +  + +
    +
    +
    +

    + Serialize a set of terms to the given stream. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + out + + – The output stream. +

      +
    • +
    • +

      + + set + + – The set of terms to be serialized to the given stream. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The output stream. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + + cvc5 + + + + + :: + + + + + + + operator + + + + + << + + + + + ( + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + out + + + , + + + const + + + + + + + std + + + + + :: + + + + + unordered_set + + + + + < + + + + + + Term + + + + + + > + + + + + + + & + + + + + unordered_set + + + + ) + + +  + +
    +
    +
    +

    + Serialize an unordered_set of terms to the given stream. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + out + + – The output stream. +

      +
    • +
    • +

      + + unordered_set + + – The set of terms to be serialized to the given stream. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The output stream. +

    +
    +
    +
    +
    +
    +
    + + + + + + + template + + + + + < + + + + + typename + + + + + + + + V + + + + + + > + + +
    + + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + + cvc5 + + + + + :: + + + + + + + operator + + + + + << + + + + + ( + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + out + + + , + + + const + + + + + + + std + + + + + :: + + + + + map + + + + + < + + + + + + Term + + + + + + , + + + + + + + + V + + + + + + > + + + + + + + & + + + + + map + + + + ) + + +  + +
    +
    +
    +

    + Serialize a map of terms to the given stream. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + out + + – The output stream. +

      +
    • +
    • +

      + + map + + – The map of terms to be serialized to the given stream. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The output stream. +

    +
    +
    +
    +
    +
    +
    + + + + + + + template + + + + + < + + + + + typename + + + + + + + + V + + + + + + > + + +
    + + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + + cvc5 + + + + + :: + + + + + + + operator + + + + + << + + + + + ( + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + out + + + , + + + const + + + + + + + std + + + + + :: + + + + + unordered_map + + + + + < + + + + + + Term + + + + + + , + + + + + + + + V + + + + + + > + + + + + + + & + + + + + unordered_map + + + + ) + + +  + +
    +
    +
    +

    + Serialize an unordered_map of terms to the given stream. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + out + + – The output stream. +

      +
    • +
    • +

      + + unordered_map + + – The map of terms to be serialized to the given stream. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The output stream. +

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + template + + + + + < + + + + + > + + +
    + + + + + struct + + + + + + + + hash + + + + + + < + + + + + cvc5 + + + + + :: + + + + + + Term + + + + + + > + + + +  + +
    +
    +
    +

    + Hash function for Terms. +

    +
    +

    + Public Functions +

    +
    +
    + + + + + + + + + + + size_t + + + + + + + + operator + + + + + () + + + + + ( + + + + const + + + + + + + cvc5 + + + + + :: + + + + + + Term + + + + + + + + & + + + + + t + + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/termmanager.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/termmanager.html new file mode 100644 index 0000000000..de9e8c7b04 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/classes/termmanager.html @@ -0,0 +1,9788 @@ + + + + + + + + + + + TermManager — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + TermManager + +  + +

    +

    + This class represents a cvc5 term manager instance. +

    +

    + + + + Terms + + + + , + + + + Sorts + + + + and + + + + Ops + + + + are not tied to a + + + + cvc5::Solver + + + + but associated with a + + + + cvc5::TermManager + + + + instance, which can be +shared between solver instances (and thus allows sharing of terms and sorts +between solver instances). +Term kinds are defined via enum class + + + cvc5::Kind + + + , and +sort kinds via enum class + + + cvc5::SortKind + + + . +

    +
    +
    +
    + + + + + + + + + + + class + + + + + + + + TermManager + + + + +  + +
    +
    +
    +

    + A cvc5 term manager. +

    +
    +

    + Public Functions +

    +
    +
    + + + + + + + + + + + + TermManager + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Constructor. +

    +
    +
    +
    +
    + + + + + + + + + + + + ~TermManager + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Destructor. +

    +
    +
    +
    +
    + + + + + + + + + + + + Statistics + + + + + + + + + getStatistics + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Get a snapshot of the current state of the statistic values of this term manager. +

    +

    + + + Term + + + manager statistics are independent from any solver instance. The returned object is completely decoupled from the term manager and will not change when the solver is used again. +

    +
    +
    + Returns + + : + +
    +
    +

    + A snapshot of the current state of the statistic values. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + void + + + + + + + + printStatisticsSafe + + + + + ( + + + + int + + + + + + + fd + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Print the statistics to the given file descriptor, suitable for usage in signal handlers. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + fd + + – The file descriptor. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + getBooleanSort + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Get the Boolean sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + + + Sort + + + + + Bool + + + . +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + getIntegerSort + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Get the Integer sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + + + Sort + + + + + Int + + + . +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + getRealSort + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Get the Real sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + + + Sort + + + + + Real + + + . +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + getRegExpSort + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Get the regular expression sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + + + Sort + + + + + RegExp + + + . +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + getRoundingModeSort + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Get the rounding mode sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + + + Sort + + + + + RoundingMode + + + . +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + getStringSort + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Get the string sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + + + Sort + + + + + String + + + . +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + mkArraySort + + + + + ( + + + + const + + + + + + + + Sort + + + + + + + + & + + + + + indexSort + + + , + + + const + + + + + + + + Sort + + + + + + + + & + + + + + elemSort + + + + ) + + +  + +
    +
    +
    +

    + Create an array sort. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + indexSort + + – The array index sort. +

      +
    • +
    • +

      + + elemSort + + – The array element sort. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The array sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + mkBitVectorSort + + + + + ( + + + + uint32_t + + + + + + + size + + + + ) + + +  + +
    +
    +
    +

    + Create a bit-vector sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + size + + – The bit-width of the bit-vector sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + The bit-vector sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + mkFloatingPointSort + + + + + ( + + + + uint32_t + + + + + + + exp + + + , + + + uint32_t + + + + + + + sig + + + + ) + + +  + +
    +
    +
    +

    + Create a floating-point sort. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + exp + + – The bit-width of the exponent of the floating-point sort. +

      +
    • +
    • +

      + + sig + + – The bit-width of the significand of the floating-point sort. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The floating-point sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + mkFiniteFieldSort + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + size + + + , + + + uint32_t + + + + + + + base + + + + + + + = + + + + + + + 10 + + + + ) + + +  + +
    +
    +
    +

    + Create a finite-field sort from a given string of base n. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + size + + – The modulus of the field. Must be prime. +

      +
    • +
    • +

      + + base + + – The base of the string representation of + + + size + + + . +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The finite-field sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + mkDatatypeSort + + + + + ( + + + + const + + + + + + + + DatatypeDecl + + + + + + + + & + + + + + dtypedecl + + + + ) + + +  + +
    +
    +
    +

    + Create a datatype sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + dtypedecl + + – The datatype declaration from which the sort is created. +

    +
    +
    + Returns + + : + +
    +
    +

    + The datatype sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Sort + + + + + + > + + + + + + + + mkDatatypeSorts + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + DatatypeDecl + + + + + + > + + + + + + + & + + + + + dtypedecls + + + + ) + + +  + +
    +
    +
    +

    + Create a vector of datatype sorts. +

    +
    +

    + Note +

    +

    + The names of the datatype declarations must be distinct. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + dtypedecls + + – The datatype declarations from which the sort is created. +

    +
    +
    + Returns + + : + +
    +
    +

    + The datatype sorts. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + mkFunctionSort + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Sort + + + + + + > + + + + + + + & + + + + + sorts + + + , + + + const + + + + + + + + Sort + + + + + + + + & + + + + + codomain + + + + ) + + +  + +
    +
    +
    +

    + Create function sort. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + sorts + + – The sort of the function arguments. +

      +
    • +
    • +

      + + codomain + + – The sort of the function return value. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The function sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkSkolem + + + + + ( + + + + + SkolemId + + + + + + + + id + + + , + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Term + + + + + + > + + + + + + + & + + + + + indices + + + + ) + + +  + +
    +
    +
    +

    + Create a skolem. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + id + + – The skolem identifier. +

      +
    • +
    • +

      + + indices + + – The indices of the skolem. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The skolem. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + size_t + + + + + + + + getNumIndicesForSkolemId + + + + + ( + + + + + SkolemId + + + + + + + + id + + + + ) + + +  + +
    +
    +
    +

    + Get the number of indices for a skolem id. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + id + + – The skolem id. +

    +
    +
    + Returns + + : + +
    +
    +

    + The number of indices for the skolem id. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + mkParamSort + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + optional + + + + + < + + + + + std + + + + + :: + + + + + string + + + + + > + + + + + + + & + + + + + symbol + + + + + + + = + + + + + + + std + + + + + :: + + + + + nullopt + + + + ) + + +  + +
    +
    +
    +

    + Create a sort parameter. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + symbol + + – The name of the sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + The sort parameter. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + mkPredicateSort + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Sort + + + + + + > + + + + + + + & + + + + + sorts + + + + ) + + +  + +
    +
    +
    +

    + Create a predicate sort. +

    +

    + This is equivalent to calling + + + mkFunctionSort() + + + with the Boolean sort as the codomain. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sorts + + – The list of sorts of the predicate. +

    +
    +
    + Returns + + : + +
    +
    +

    + The predicate sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + mkRecordSort + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + std + + + + + :: + + + + + pair + + + + + < + + + + + std + + + + + :: + + + + + string + + + + + , + + + + + + + + Sort + + + + + + > + + + + + > + + + + + + + & + + + + + fields + + + + ) + + +  + +
    +
    +
    +

    + Create a record sort +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + fields + + – The list of fields of the record. +

    +
    +
    + Returns + + : + +
    +
    +

    + The record sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + mkSetSort + + + + + ( + + + + const + + + + + + + + Sort + + + + + + + + & + + + + + elemSort + + + + ) + + +  + +
    +
    +
    +

    + Create a set sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + elemSort + + – The sort of the set elements. +

    +
    +
    + Returns + + : + +
    +
    +

    + The set sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + mkBagSort + + + + + ( + + + + const + + + + + + + + Sort + + + + + + + + & + + + + + elemSort + + + + ) + + +  + +
    +
    +
    +

    + Create a bag sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + elemSort + + – The sort of the bag elements. +

    +
    +
    + Returns + + : + +
    +
    +

    + The bag sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + mkSequenceSort + + + + + ( + + + + const + + + + + + + + Sort + + + + + + + + & + + + + + elemSort + + + + ) + + +  + +
    +
    +
    +

    + Create a sequence sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + elemSort + + – The sort of the sequence elements. +

    +
    +
    + Returns + + : + +
    +
    +

    + The sequence sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + mkAbstractSort + + + + + ( + + + + + SortKind + + + + + + + + k + + + + ) + + +  + +
    +
    +
    +

    + Create an abstract sort. An abstract sort represents a sort for a given kind whose parameters and arguments are unspecified. +

    +

    + The kind + + + k + + + must be the kind of a sort that can be abstracted, i.e., a sort that has indices or argument sorts. For example, #ARRAY_SORT and #BITVECTOR_SORT can be passed as the kind + + + k + + + to this function, while #INTEGER_SORT and #STRING_SORT cannot. +

    +
    +

    + Note +

    +

    + Providing the kind #ABSTRACT_SORT as an argument to this function returns the (fully) unspecified sort, denoted + + + ? + + + . +

    +
    +
    +

    + Note +

    +

    + Providing a kind + + + k + + + that has no indices and a fixed arity of argument sorts will return the sort of kind + + + k + + + whose arguments are the unspecified sort. For example, + + + mkAbstractSort(SortKind::ARRAY_SORT) + + + will return the sort + + + (ARRAY_SORT + + + ? + + + ?) + + + instead of the abstract sort whose abstract kind is #ARRAY_SORT. +

    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + k + + – The kind of the abstract sort +

    +
    +
    + Returns + + : + +
    +
    +

    + The abstract sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + mkUninterpretedSort + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + optional + + + + + < + + + + + std + + + + + :: + + + + + string + + + + + > + + + + + + + & + + + + + symbol + + + + + + + = + + + + + + + std + + + + + :: + + + + + nullopt + + + + ) + + +  + +
    +
    +
    +

    + Create an uninterpreted sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + symbol + + – The name of the sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + The uninterpreted sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + mkUnresolvedDatatypeSort + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + symbol + + + , + + + size_t + + + + + + + arity + + + + + + + = + + + + + + + 0 + + + + ) + + +  + +
    +
    +
    +

    + Create an unresolved datatype sort. +

    +

    + This is for creating yet unresolved sort placeholders for mutually recursive parametric datatypes. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + symbol + + – The symbol of the sort. +

      +
    • +
    • +

      + + arity + + – The number of sort parameters of the sort. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The unresolved sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + mkUninterpretedSortConstructorSort + + + + + ( + + + + size_t + + + + + + + arity + + + , + + + const + + + + + + + std + + + + + :: + + + + + optional + + + + + < + + + + + std + + + + + :: + + + + + string + + + + + > + + + + + + + & + + + + + symbol + + + + + + + = + + + + + + + std + + + + + :: + + + + + nullopt + + + + ) + + +  + +
    +
    +
    +

    + Create an uninterpreted sort constructor sort. +

    +

    + An uninterpreted sort constructor is an uninterpreted sort with arity > 0. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + symbol + + – The symbol of the sort. +

      +
    • +
    • +

      + + arity + + – The arity of the sort (must be > 0) +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The uninterpreted sort constructor sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + mkTupleSort + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Sort + + + + + + > + + + + + + + & + + + + + sorts + + + + ) + + +  + +
    +
    +
    +

    + Create a tuple sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sorts + + – The sorts of the elements of the tuple. +

    +
    +
    + Returns + + : + +
    +
    +

    + The tuple sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Sort + + + + + + + + + mkNullableSort + + + + + ( + + + + const + + + + + + + + Sort + + + + + + + + & + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Create a nullable sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort of the element of the nullable. +

    +
    +
    + Returns + + : + +
    +
    +

    + The nullable sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Op + + + + + + + + + mkOp + + + + + ( + + + + + Kind + + + + + + + + kind + + + , + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + uint32_t + + + + + > + + + + + + + & + + + + + args + + + + + + + = + + + + + + + { + + + + + } + + + + ) + + +  + +
    +
    +
    +

    + Create operator of Kind: +

    +
      +
    • +

      + #BITVECTOR_EXTRACT +

      +
    • +
    • +

      + #BITVECTOR_REPEAT +

      +
    • +
    • +

      + #BITVECTOR_ROTATE_LEFT +

      +
    • +
    • +

      + #BITVECTOR_ROTATE_RIGHT +

      +
    • +
    • +

      + #BITVECTOR_SIGN_EXTEND +

      +
    • +
    • +

      + #BITVECTOR_ZERO_EXTEND +

      +
    • +
    • +

      + #DIVISIBLE +

      +
    • +
    • +

      + #FLOATINGPOINT_TO_FP_FROM_FP +

      +
    • +
    • +

      + #FLOATINGPOINT_TO_FP_FROM_IEEE_BV +

      +
    • +
    • +

      + #FLOATINGPOINT_TO_FP_FROM_REAL +

      +
    • +
    • +

      + #FLOATINGPOINT_TO_FP_FROM_SBV +

      +
    • +
    • +

      + #FLOATINGPOINT_TO_FP_FROM_UBV +

      +
    • +
    • +

      + #FLOATINGPOINT_TO_SBV +

      +
    • +
    • +

      + #FLOATINGPOINT_TO_UBV +

      +
    • +
    • +

      + #INT_TO_BITVECTOR +

      +
    • +
    • +

      + #TUPLE_PROJECT +

      +
    • +
    +

    + See + + + cvc5::Kind + + + for a description of the parameters. +

    +
    +

    + Note +

    +

    + If + + + args + + + is empty, the + + + Op + + + simply wraps the + + + cvc5::Kind + + + . The Kind can be used in + + + Solver::mkTerm + + + directly without creating an + + + Op + + + first. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + kind + + – The kind of the operator. +

      +
    • +
    • +

      + + args + + – The arguments (indices) of the operator. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Op + + + + + + + + + mkOp + + + + + ( + + + + + Kind + + + + + + + + kind + + + , + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + arg + + + + ) + + +  + +
    +
    +
    +

    + Create operator of kind: +

    +
      +
    • +

      + #DIVISIBLE (to support arbitrary precision integers) See + + + cvc5::Kind + + + for a description of the parameters. +

      +
    • +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + kind + + – The kind of the operator. +

      +
    • +
    • +

      + + arg + + – The string argument to this operator. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkTerm + + + + + ( + + + + + Kind + + + + + + + + kind + + + , + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Term + + + + + + > + + + + + + + & + + + + + children + + + + + + + = + + + + + + + { + + + + + } + + + + ) + + +  + +
    +
    +
    +

    + Create n-ary term of given kind. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + kind + + – The kind of the term. +

      +
    • +
    • +

      + + children + + – The children of the term. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkTerm + + + + + ( + + + + const + + + + + + + + Op + + + + + + + + & + + + + + op + + + , + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Term + + + + + + > + + + + + + + & + + + + + children + + + + + + + = + + + + + + + { + + + + + } + + + + ) + + +  + +
    +
    +
    +

    + Create n-ary term of given kind from a given operator. +

    +

    + Create operators with + + + mkOp() + + + . +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + op + + – The operator. +

      +
    • +
    • +

      + + children + + – The children of the term. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The + + + Term + + + . +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkTrue + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Create a Boolean true constant. +

    +
    +
    + Returns + + : + +
    +
    +

    + The + + + true + + + constant. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkFalse + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Create a Boolean false constant. +

    +
    +
    + Returns + + : + +
    +
    +

    + The + + + false + + + constant. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkBoolean + + + + + ( + + + + bool + + + + + + + val + + + + ) + + +  + +
    +
    +
    +

    + Create a Boolean constant. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + val + + – The value of the constant. +

    +
    +
    + Returns + + : + +
    +
    +

    + The Boolean constant. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkPi + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Create a constant representing the number Pi. +

    +
    +
    + Returns + + : + +
    +
    +

    + A constant representing Pi. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkInteger + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + s + + + + ) + + +  + +
    +
    +
    +

    + Create an integer constant from a string. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + s + + – The string representation of the constant, may represent an integer (e.g., “123”). +

    +
    +
    + Returns + + : + +
    +
    +

    + A constant of sort Integer assuming + + + s + + + represents an integer) +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkInteger + + + + + ( + + + + int64_t + + + + + + + val + + + + ) + + +  + +
    +
    +
    +

    + Create an integer constant from a c++ int. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + val + + – The value of the constant. +

    +
    +
    + Returns + + : + +
    +
    +

    + A constant of sort Integer. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkReal + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + s + + + + ) + + +  + +
    +
    +
    +

    + Create a real constant from a string. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + s + + – The string representation of the constant, may represent an integer (e.g., “123”) or real constant (e.g., “12.34” or “12/34”). +

    +
    +
    + Returns + + : + +
    +
    +

    + A constant of sort Real. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkReal + + + + + ( + + + + int64_t + + + + + + + val + + + + ) + + +  + +
    +
    +
    +

    + Create a real constant from an integer. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + val + + – The value of the constant. +

    +
    +
    + Returns + + : + +
    +
    +

    + A constant of sort Integer. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkReal + + + + + ( + + + + int64_t + + + + + + + num + + + , + + + int64_t + + + + + + + den + + + + ) + + +  + +
    +
    +
    +

    + Create a real constant from a rational. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + num + + – The value of the numerator. +

      +
    • +
    • +

      + + den + + – The value of the denominator. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + A constant of sort Real. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkRegexpAll + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Create a regular expression all (re.all) term. +

    +
    +
    + Returns + + : + +
    +
    +

    + The all term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkRegexpAllchar + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Create a regular expression allchar (re.allchar) term. +

    +
    +
    + Returns + + : + +
    +
    +

    + The allchar term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkRegexpNone + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Create a regular expression none (re.none) term. +

    +
    +
    + Returns + + : + +
    +
    +

    + The none term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkEmptySet + + + + + ( + + + + const + + + + + + + + Sort + + + + + + + + & + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Create a constant representing an empty set of the given sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort of the set elements. +

    +
    +
    + Returns + + : + +
    +
    +

    + The empty set constant. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkEmptyBag + + + + + ( + + + + const + + + + + + + + Sort + + + + + + + + & + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Create a constant representing an empty bag of the given sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort of the bag elements. +

    +
    +
    + Returns + + : + +
    +
    +

    + The empty bag constant. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkSepEmp + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Create a separation logic empty term. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The separation logic empty term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkSepNil + + + + + ( + + + + const + + + + + + + + Sort + + + + + + + + & + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Create a separation logic nil term. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort of the nil term. +

    +
    +
    + Returns + + : + +
    +
    +

    + The separation logic nil term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkString + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + s + + + , + + + bool + + + + + + + useEscSequences + + + + + + + = + + + + + + + false + + + + ) + + +  + +
    +
    +
    +

    + Create a String constant from a + + + std::string + + + which may contain SMT-LIB compatible escape sequences like + + + \u1234 + + + to encode unicode characters. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + s + + – The string this constant represents. +

      +
    • +
    • +

      + + useEscSequences + + – Determines whether escape sequences in + + + s + + + should be converted to the corresponding unicode character. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The String constant. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkString + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + wstring + + + + + + + & + + + + + s + + + + ) + + +  + +
    +
    +
    +

    + Create a String constant from a + + + std::wstring + + + . +

    +

    + This function does not support escape sequences as + + + std::wstring + + + already supports unicode characters. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + s + + – The string this constant represents. +

    +
    +
    + Returns + + : + +
    +
    +

    + The String constant. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkEmptySequence + + + + + ( + + + + const + + + + + + + + Sort + + + + + + + + & + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Create an empty sequence of the given element sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The element sort of the sequence. +

    +
    +
    + Returns + + : + +
    +
    +

    + The empty sequence with given element sort. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkUniverseSet + + + + + ( + + + + const + + + + + + + + Sort + + + + + + + + & + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Create a universe set of the given sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort of the set elements. +

    +
    +
    + Returns + + : + +
    +
    +

    + The universe set constant. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkBitVector + + + + + ( + + + + uint32_t + + + + + + + size + + + , + + + uint64_t + + + + + + + val + + + + + + + = + + + + + + + 0 + + + + ) + + +  + +
    +
    +
    +

    + Create a bit-vector constant of given size and value. +

    +
    +

    + Note +

    +

    + The given value must fit into a bit-vector of the given size. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + size + + – The bit-width of the bit-vector sort. +

      +
    • +
    • +

      + + val + + – The value of the constant. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The bit-vector constant. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkBitVector + + + + + ( + + + + uint32_t + + + + + + + size + + + , + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + s + + + , + + + uint32_t + + + + + + + base + + + + ) + + +  + +
    +
    +
    +

    + Create a bit-vector constant of a given bit-width from a given string of base 2, 10 or 16. +

    +
    +

    + Note +

    +

    + The given value must fit into a bit-vector of the given size. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + size + + – The bit-width of the constant. +

      +
    • +
    • +

      + + s + + – The string representation of the constant. +

      +
    • +
    • +

      + + base + + – The base of the string representation ( + + + 2 + + + for binary, + + + 10 + + + for decimal, and + + + 16 + + + for hexadecimal). +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The bit-vector constant. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkFiniteFieldElem + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + value + + + , + + + const + + + + + + + + Sort + + + + + + + + & + + + + + sort + + + , + + + uint32_t + + + + + + + base + + + + + + + = + + + + + + + 10 + + + + ) + + +  + +
    +
    +
    +

    + Create a finite field constant in a given field from a given string of base n. +

    +

    + If + + + size + + + is the field size, the constant needs not be in the range [0,size). If it is outside this range, it will be reduced modulo size before being constructed. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + value + + – The string representation of the constant. +

      +
    • +
    • +

      + + sort + + – The field sort. +

      +
    • +
    • +

      + + base + + – The base of the string representation of + + + value + + + . +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkConstArray + + + + + ( + + + + const + + + + + + + + Sort + + + + + + + + & + + + + + sort + + + , + + + const + + + + + + + + Term + + + + + + + + & + + + + + val + + + + ) + + +  + +
    +
    +
    +

    + Create a constant array with the provided constant value stored at every index. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + sort + + – The sort of the constant array (must be an array sort). +

      +
    • +
    • +

      + + val + + – The constant value to store (must match the sort’s element sort). +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The constant array term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkFloatingPointPosInf + + + + + ( + + + + uint32_t + + + + + + + exp + + + , + + + uint32_t + + + + + + + sig + + + + ) + + +  + +
    +
    +
    +

    + Create a positive infinity floating-point constant (SMT-LIB: + + + +oo + + + ). +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + exp + + – Number of bits in the exponent. +

      +
    • +
    • +

      + + sig + + – Number of bits in the significand. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The floating-point constant. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkFloatingPointNegInf + + + + + ( + + + + uint32_t + + + + + + + exp + + + , + + + uint32_t + + + + + + + sig + + + + ) + + +  + +
    +
    +
    +

    + Create a negative infinity floating-point constant (SMT-LIB: + + + -oo + + + ). +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + exp + + – Number of bits in the exponent. +

      +
    • +
    • +

      + + sig + + – Number of bits in the significand. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The floating-point constant. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkFloatingPointNaN + + + + + ( + + + + uint32_t + + + + + + + exp + + + , + + + uint32_t + + + + + + + sig + + + + ) + + +  + +
    +
    +
    +

    + Create a not-a-number floating-point constant (SMT-LIB: + + + NaN + + + ). +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + exp + + – Number of bits in the exponent. +

      +
    • +
    • +

      + + sig + + – Number of bits in the significand. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The floating-point constant. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkFloatingPointPosZero + + + + + ( + + + + uint32_t + + + + + + + exp + + + , + + + uint32_t + + + + + + + sig + + + + ) + + +  + +
    +
    +
    +

    + Create a positive zero floating-point constant (SMT-LIB: +zero). +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + exp + + – Number of bits in the exponent. +

      +
    • +
    • +

      + + sig + + – Number of bits in the significand. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The floating-point constant. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkFloatingPointNegZero + + + + + ( + + + + uint32_t + + + + + + + exp + + + , + + + uint32_t + + + + + + + sig + + + + ) + + +  + +
    +
    +
    +

    + Create a negative zero floating-point constant (SMT-LIB: -zero). +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + exp + + – Number of bits in the exponent. +

      +
    • +
    • +

      + + sig + + – Number of bits in the significand. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The floating-point constant. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkRoundingMode + + + + + ( + + + + + RoundingMode + + + + + + + + rm + + + + ) + + +  + +
    +
    +
    +

    + Create a rounding mode value. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + rm + + – The floating point rounding mode this constant represents. +

    +
    +
    + Returns + + : + +
    +
    +

    + The rounding mode value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkFloatingPoint + + + + + ( + + + + uint32_t + + + + + + + exp + + + , + + + uint32_t + + + + + + + sig + + + , + + + const + + + + + + + + Term + + + + + + + + & + + + + + val + + + + ) + + +  + +
    +
    +
    +

    + Create a floating-point value from a bit-vector given in IEEE-754 format. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + exp + + – Size of the exponent. +

      +
    • +
    • +

      + + sig + + – Size of the significand. +

      +
    • +
    • +

      + + val + + – Value of the floating-point constant as a bit-vector term. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The floating-point value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkFloatingPoint + + + + + ( + + + + const + + + + + + + + Term + + + + + + + + & + + + + + sign + + + , + + + const + + + + + + + + Term + + + + + + + + & + + + + + exp + + + , + + + const + + + + + + + + Term + + + + + + + + & + + + + + sig + + + + ) + + +  + +
    +
    +
    +

    + Create a floating-point value from its three IEEE-754 bit-vector value components (sign bit, exponent, significand). +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + sign + + – The sign bit. +

      +
    • +
    • +

      + + exp + + – The bit-vector representing the exponent. +

      +
    • +
    • +

      + + sig + + – The bit-vector representing the significand. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The floating-point value. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkCardinalityConstraint + + + + + ( + + + + const + + + + + + + + Sort + + + + + + + + & + + + + + sort + + + , + + + uint32_t + + + + + + + upperBound + + + + ) + + +  + +
    +
    +
    +

    + Create a cardinality constraint for an uninterpreted sort. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + sort + + – The sort the cardinality constraint is for. +

      +
    • +
    • +

      + + upperBound + + – The upper bound on the cardinality of the sort. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The cardinality constraint. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkTuple + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Term + + + + + + > + + + + + + + & + + + + + terms + + + + ) + + +  + +
    +
    +
    +

    + Create a tuple term. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + terms + + – The elements in the tuple. +

    +
    +
    + Returns + + : + +
    +
    +

    + The tuple + + + Term + + + . +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkNullableSome + + + + + ( + + + + const + + + + + + + + Term + + + + + + + + & + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Create a nullable some term. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The element value. +

    +
    +
    + Returns + + : + +
    +
    +

    + the Element value wrapped in some constructor. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkNullableVal + + + + + ( + + + + const + + + + + + + + Term + + + + + + + + & + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Create a selector for nullable term. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – A nullable term. +

    +
    +
    + Returns + + : + +
    +
    +

    + The element value of the nullable term. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkNullableIsNull + + + + + ( + + + + const + + + + + + + + Term + + + + + + + + & + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Create a null tester for a nullable term. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – A nullable term. +

    +
    +
    + Returns + + : + +
    +
    +

    + A tester whether term is null. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkNullableIsSome + + + + + ( + + + + const + + + + + + + + Term + + + + + + + + & + + + + + term + + + + ) + + +  + +
    +
    +
    +

    + Create a some tester for a nullable term. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – A nullable term. +

    +
    +
    + Returns + + : + +
    +
    +

    + A tester whether term is some. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkNullableNull + + + + + ( + + + + const + + + + + + + + Sort + + + + + + + + & + + + + + sort + + + + ) + + +  + +
    +
    +
    +

    + Create a constant representing an null of the given sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort of the Nullable element. +

    +
    +
    + Returns + + : + +
    +
    +

    + The null constant. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkNullableLift + + + + + ( + + + + + Kind + + + + + + + + kind + + + , + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Term + + + + + + > + + + + + + + & + + + + + args + + + + ) + + +  + +
    +
    +
    +

    + Create a term that lifts kind to nullable terms. +

    +

    + Example: If we have the term ((_ nullable.lift +) x y), where x, y of type (Nullable Int), then kind would be ADD, and args would be [x, y]. This function would return (nullable.lift (lambda ((a Int) (b Int)) (+ a b)) x y) +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + kind + + – The lifted operator. +

      +
    • +
    • +

      + + args + + – The arguments of the lifted operator. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + A term of Kind NULLABLE_LIFT where the first child is a lambda expression, and the remaining children are the original arguments. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkConst + + + + + ( + + + + const + + + + + + + + Sort + + + + + + + + & + + + + + sort + + + , + + + const + + + + + + + std + + + + + :: + + + + + optional + + + + + < + + + + + std + + + + + :: + + + + + string + + + + + > + + + + + + + & + + + + + symbol + + + + + + + = + + + + + + + std + + + + + :: + + + + + nullopt + + + + ) + + +  + +
    +
    +
    +

    + Create a free constant. +

    +

    + Note that the returned term is always fresh, even if the same arguments were provided on a previous call to + + + mkConst() + + + . +

    +

    + SMT-LIB: +

    +

    +

    +
    +
    +
    (declare-const <symbol> <sort>)
    +(declare-fun <symbol> () <sort>)
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + sort + + – The sort of the constant. +

      +
    • +
    • +

      + + symbol + + – The name of the constant (optional). +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The constant. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + Term + + + + + + + + + mkVar + + + + + ( + + + + const + + + + + + + + Sort + + + + + + + + & + + + + + sort + + + , + + + const + + + + + + + std + + + + + :: + + + + + optional + + + + + < + + + + + std + + + + + :: + + + + + string + + + + + > + + + + + + + & + + + + + symbol + + + + + + + = + + + + + + + std + + + + + :: + + + + + nullopt + + + + ) + + +  + +
    +
    +
    +

    + Create a bound variable to be used in a binder (i.e., a quantifier, a lambda, or a witness binder). +

    +
    +

    + Note +

    +

    + The returned term is always fresh, even if the same arguments were provided on a previous call to + + + mkConst() + + + . +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + sort + + – The sort of the variable. +

      +
    • +
    • +

      + + symbol + + – The name of the variable (optional). +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The variable. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + DatatypeConstructorDecl + + + + + + + + + mkDatatypeConstructorDecl + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + name + + + + ) + + +  + +
    +
    +
    +

    + Create a datatype constructor declaration. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + name + + – The name of the datatype constructor. +

    +
    +
    + Returns + + : + +
    +
    +

    + The + + + DatatypeConstructorDecl + + + . +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + DatatypeDecl + + + + + + + + + mkDatatypeDecl + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + name + + + , + + + bool + + + + + + + isCoDatatype + + + + + + + = + + + + + + + false + + + + ) + + +  + +
    +
    +
    +

    + Create a datatype declaration. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + name + + – The name of the datatype. +

      +
    • +
    • +

      + + isCoDatatype + + – True if a codatatype is to be constructed. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The + + + DatatypeDecl + + + . +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + DatatypeDecl + + + + + + + + + mkDatatypeDecl + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + name + + + , + + + const + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Sort + + + + + + > + + + + + + + & + + + + + params + + + , + + + bool + + + + + + + isCoDatatype + + + + + + + = + + + + + + + false + + + + ) + + +  + +
    +
    +
    +

    + Create a datatype declaration. +

    +

    + Create sorts parameter with + + + Solver::mkParamSort() + + + . +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + name + + – The name of the datatype. +

      +
    • +
    • +

      + + params + + – A list of sort parameters. +

      +
    • +
    • +

      + + isCoDatatype + + – True if a codatatype is to be constructed. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The + + + DatatypeDecl + + + . +

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/cpp.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/cpp.html new file mode 100644 index 0000000000..bc735e7c12 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/cpp.html @@ -0,0 +1,1165 @@ + + + + + + + + + + + C++ API — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + C++ API + +  + +

    +

    + The C++ API is the primary interface for cvc5 and exposes the full +functionality of cvc5. +

    +

    + The + + + quickstart guide + + + gives a short introduction, while the +following class hierarchy of the + + + cvc5 + + + namespace provides more details on +the individual classes. +For most applications, the + + + + Solver + + + + class is the main +entry point to cvc5. +

    + +
    +

    + Class hierarchy + +  + +

    +
    +
    + + + namespace + + + cvc5 + + + { + + +
    +
    + +
    +
    + + + namespace + + + modes + + + { + + +
    +
    + +
    +
    +

    + + + } + + +

    +
    +
    + + + namespace + + + parser + + + { + + +
    +
    + +
    +
    +

    + + + } + + +

    +

    + + + } + + +

    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/enums/kind.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/enums/kind.html new file mode 100644 index 0000000000..2f4fbf16b4 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/enums/kind.html @@ -0,0 +1,39126 @@ + + + + + + + + + + + Kind — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Kind + +  + +

    +

    + Every + + + + Term + + + + has an associated kind, represented +as enum class + + + + cvc5::Kind + + + + . +This kind distinguishes if the Term is a value, constant, variable or operator, +and what kind of each. +For example, a bit-vector value has kind + + + + CONST_BITVECTOR + + + + , +a free constant symbol has kind + + + + CONSTANT + + + + , +an equality over terms of any sort has kind + + + + EQUAL + + + + , and a universally +quantified formula has kind + + + + FORALL + + + + . +

    +
    + +
    +
    +
    + + + + + + + + + enum + + + + + + + class + + + + + + + + cvc5 + + + + + :: + + + + + + + Kind + + + + +  + +
    +
    +
    +

    + The kind of a cvc5 + + + Term + + + . +

    +

    + + Values: + +

    +
    +
    + + + + + + + + + enumerator + + + + + + + + INTERNAL_KIND + + + + +  + +
    +
    +
    +

    + Internal kind. +

    +

    + This kind serves as an abstraction for internal kinds that are not exposed via the API but may appear in terms returned by API functions, e.g., when querying the simplified form of a term. +

    +
    +

    + Note +

    +

    + Should never be created via the API. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + UNDEFINED_KIND + + + + +  + +
    +
    +
    +

    + Undefined kind. +

    +
    +

    + Note +

    +

    + Should never be exposed or created via the API. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + NULL_TERM + + + + +  + +
    +
    +
    +

    + Null kind. +

    +

    + The kind of a null term ( + + + Term::Term() + + + ). +

    +
    +

    + Note +

    +

    + May not be explicitly created via API functions other than + + + + Term::Term() + + + + . +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + UNINTERPRETED_SORT_VALUE + + + + +  + +
    +
    +
    +

    + The value of an uninterpreted constant. +

    +
    +

    + Note +

    +

    + May be returned as the result of an API call, but terms of this +kind may not be created explicitly via the API and may not +appear in assertions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + EQUAL + + + + +  + +
    +
    +
    +

    + Equality, chainable. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + DISTINCT + + + + +  + +
    +
    +
    +

    + Disequality. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CONSTANT + + + + +  + +
    +
    +
    +

    + Free constant symbol. +

    +

    +

    +
      +
    • +

      + Create + + + Term + + + of this Kind with: +

      +
        +
      • +

        + Solver::mkConst(const Sort&, const std::string&) const +

        +
      • +
      • +

        + Solver::mkConst(const Sort&) const +

        +
      • +
      +
    • +
    +
    +

    + Note +

    +

    + Not permitted in bindings (e.g., + + + + FORALL + + + + , + + + + EXISTS + + + + ). +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + VARIABLE + + + + +  + +
    +
    +
    +

    + (Bound) variable. +

    +

    +

    +
      +
    • +

      + Create + + + Term + + + of this Kind with: +

      +
        +
      • +

        + Solver::mkVar(const Sort&, const std::string&) const +

        +
      • +
      +
    • +
    +
    +

    + Note +

    +

    + Only permitted in bindings and in lambda and quantifier bodies. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SKOLEM + + + + +  + +
    +
    +
    +

    + A Skolem. +

    +

    +

    +

    + skolem is available via the calls + + Solver::getSkolemId + + and + + Solver::getSkolemIndices + + . +

    +
    +

    + Note +

    +

    + Represents an internally generated term. Information on the +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SEXPR + + + + +  + +
    +
    +
    +

    + Symbolic expression. +

    +

    +

    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + LAMBDA + + + + +  + +
    +
    +
    +

    + Lambda expression. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + WITNESS + + + + +  + +
    +
    +
    +

    + Witness. +

    +

    + The syntax of a witness term is similar to a quantified formula except that only one variable is allowed. For example, the term +

    +

    +

    +
    +
    +
    (witness ((x S)) F)
    +
    +
    +
    +

    + returns an element + + \(x\) + + of Sort + + \(S\) + + and asserts formula + + \(F\) + + . +

    +

    + The witness operator behaves like the description operator +(see + + https://planetmath.org/hilbertsvarepsilonoperator + + ) if there is +no + + \(x\) + + that satisfies + + \(F\) + + . But if such + + \(x\) + + exists, the +witness operator does not enforce the following axiom which ensures +uniqueness up to logical equivalence: +

    +
    + \[\forall x. F \equiv G \Rightarrow witness~x. F = witness~x. G\] +
    +

    + For example, if there are two elements of Sort + + \(S\) + + that satisfy +formula + + \(F\) + + , then the following formula is satisfiable: +

    +
    +
    +
    (distinct
    +   (witness ((x Int)) F)
    +   (witness ((x Int)) F))
    +
    +
    +
    +

    +

    + +
    +

    + Note +

    +

    + This kind is primarily used internally, but may be returned in +models (e.g., for arithmetic terms in non-linear queries). However, +it is not supported by the parser. Moreover, the user of the API +should be cautious when using this operator. In general, all witness +terms + + + (witness + + + ((x + + + Int)) + + + F) + + + should be such that + + + (exists + + + ((x + + + Int)) + + + F) + + + is a valid formula. If this is not the case, then the semantics +in formulas that use witness terms may be unintuitive. For example, +the following formula is unsatisfiable: + + + (or + + + (= + + + (witness + + + ((x + + + Int)) + + + false) + + + 0) + + + (not + + + (= + + + (witness + + + ((x + + + Int)) + + + false) + + + 0)) + + + , whereas notice that + + + (or + + + (= + + + z + + + 0) + + + (not + + + (= + + + z + + + 0))) + + + is +true for any + + \(z\) + + . +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CONST_BOOLEAN + + + + +  + +
    +
    +
    +

    + Boolean constant. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + NOT + + + + +  + +
    +
    +
    +

    + Logical negation. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + AND + + + + +  + +
    +
    +
    +

    + Logical conjunction. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + IMPLIES + + + + +  + +
    +
    +
    +

    + Logical implication. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + OR + + + + +  + +
    +
    +
    +

    + Logical disjunction. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + XOR + + + + +  + +
    +
    +
    +

    + Logical exclusive disjunction, left associative. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ITE + + + + +  + +
    +
    +
    +

    + If-then-else. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + APPLY_UF + + + + +  + +
    +
    +
    +

    + Application of an uninterpreted function. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CARDINALITY_CONSTRAINT + + + + +  + +
    +
    +
    +

    + Cardinality constraint on uninterpreted sort. +

    +

    + Interpreted as a predicate that is true when the cardinality of +uinterpreted Sort + + \(S\) + + is less than or equal to an upper bound. +

    +

    +

    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + HO_APPLY + + + + +  + +
    +
    +
    +

    + Higher-order applicative encoding of function application, left associative. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ADD + + + + +  + +
    +
    +
    +

    + Arithmetic addition. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + MULT + + + + +  + +
    +
    +
    +

    + Arithmetic multiplication. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + IAND + + + + +  + +
    +
    +
    +

    + Integer and. +

    +

    +

    +

    + Operator for bit-wise + + + AND + + + over integers, parameterized by a (positive) +bit-width + + \(k\) + + . +

    +
    +
    +
    ((_ iand k) i_1 i_2)
    +
    +
    +
    +

    + is equivalent to +

    +
    +
    +
    ((_ iand k) i_1 i_2)
    +(bv2int (bvand ((_ int2bv k) i_1) ((_ int2bv k) i_2)))
    +
    +
    +
    +

    + for all integers + + + i_1 + + + , + + + i_2 + + + . +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of Sort Int +

        +
      • +
      +
    • +
    • +

      + Indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Bit-width + + \(k\) + +

        +
      • +
      +
    • +
    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + POW2 + + + + +  + +
    +
    +
    +

    + Power of two. +

    +

    + Operator for raising + + + 2 + + + to a non-negative integer power. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SUB + + + + +  + +
    +
    +
    +

    + Arithmetic subtraction, left associative. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + NEG + + + + +  + +
    +
    +
    +

    + Arithmetic negation. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + DIVISION + + + + +  + +
    +
    +
    +

    + Real division, division by 0 undefined, left associative. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + DIVISION_TOTAL + + + + +  + +
    +
    +
    +

    + Real division, division by 0 defined to be 0, left associative. +

    +

    +

    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + INTS_DIVISION + + + + +  + +
    +
    +
    +

    + Integer division, division by 0 undefined, left associative. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + INTS_DIVISION_TOTAL + + + + +  + +
    +
    +
    +

    + Integer division, division by 0 defined to be 0, left associative. +

    +

    +

    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + INTS_MODULUS + + + + +  + +
    +
    +
    +

    + Integer modulus, modulus by 0 undefined. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + INTS_MODULUS_TOTAL + + + + +  + +
    +
    +
    +

    + Integer modulus, t modulus by 0 defined to be t. +

    +

    +

    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ABS + + + + +  + +
    +
    +
    +

    + Absolute value. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + POW + + + + +  + +
    +
    +
    +

    + Arithmetic power. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + EXPONENTIAL + + + + +  + +
    +
    +
    +

    + Exponential function. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SINE + + + + +  + +
    +
    +
    +

    + Sine function. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + COSINE + + + + +  + +
    +
    +
    +

    + Cosine function. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + TANGENT + + + + +  + +
    +
    +
    +

    + Tangent function. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + COSECANT + + + + +  + +
    +
    +
    +

    + Cosecant function. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SECANT + + + + +  + +
    +
    +
    +

    + Secant function. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + COTANGENT + + + + +  + +
    +
    +
    +

    + Cotangent function. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARCSINE + + + + +  + +
    +
    +
    +

    + Arc sine function. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARCCOSINE + + + + +  + +
    +
    +
    +

    + Arc cosine function. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARCTANGENT + + + + +  + +
    +
    +
    +

    + Arc tangent function. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARCCOSECANT + + + + +  + +
    +
    +
    +

    + Arc cosecant function. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARCSECANT + + + + +  + +
    +
    +
    +

    + Arc secant function. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARCCOTANGENT + + + + +  + +
    +
    +
    +

    + Arc cotangent function. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SQRT + + + + +  + +
    +
    +
    +

    + Square root. +

    +

    + If the argument + + + x + + + is non-negative, then this returns a non-negative value + + + y + + + such that + + + y + + + * + + + y + + + = + + + x + + + . +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + DIVISIBLE + + + + +  + +
    +
    +
    +

    +

    +

    + Operator for the divisibility-by- + + \(k\) + + predicate. +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort Int +

        +
      • +
      +
    • +
    • +

      + Indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + The integer + + \(k\) + + to divide by. +

        +
      • +
      +
    • +
    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CONST_RATIONAL + + + + +  + +
    +
    +
    +

    + Arbitrary-precision rational constant. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CONST_INTEGER + + + + +  + +
    +
    +
    +

    + Arbitrary-precision integer constant. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + LT + + + + +  + +
    +
    +
    +

    + Less than, chainable. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + LEQ + + + + +  + +
    +
    +
    +

    + Less than or equal, chainable. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + GT + + + + +  + +
    +
    +
    +

    + Greater than, chainable. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + GEQ + + + + +  + +
    +
    +
    +

    + Greater than or equal, chainable. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + IS_INTEGER + + + + +  + +
    +
    +
    +

    + Is-integer predicate. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + TO_INTEGER + + + + +  + +
    +
    +
    +

    + Convert + + + Term + + + of sort Int or Real to Int via the floor function. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + TO_REAL + + + + +  + +
    +
    +
    +

    + Convert + + + Term + + + of + + + Sort + + + Int or Real to Real. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + PI + + + + +  + +
    +
    +
    +

    + Pi constant. +

    +

    +

    + +
    +

    + Note +

    +

    + + + + PI + + + + is considered a special symbol of Sort +Real, but is not a Real value, i.e., + + + + Term::isRealValue() + + + + will return + + + false + + + . +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CONST_BITVECTOR + + + + +  + +
    +
    +
    +

    + Fixed-size bit-vector constant. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BITVECTOR_CONCAT + + + + +  + +
    +
    +
    +

    + Concatenation of two or more bit-vectors. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BITVECTOR_AND + + + + +  + +
    +
    +
    +

    + Bit-wise and. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BITVECTOR_OR + + + + +  + +
    +
    +
    +

    + Bit-wise or. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BITVECTOR_XOR + + + + +  + +
    +
    +
    +

    + Bit-wise xor. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BITVECTOR_NOT + + + + +  + +
    +
    +
    +

    + Bit-wise negation. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BITVECTOR_NAND + + + + +  + +
    +
    +
    +

    + Bit-wise nand. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BITVECTOR_NOR + + + + +  + +
    +
    +
    +

    + Bit-wise nor. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BITVECTOR_XNOR + + + + +  + +
    +
    +
    +

    + Bit-wise xnor, left associative. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BITVECTOR_COMP + + + + +  + +
    +
    +
    +

    + Equality comparison (returns bit-vector of size + + + 1 + + + ). +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BITVECTOR_MULT + + + + +  + +
    +
    +
    +

    + Multiplication of two or more bit-vectors. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BITVECTOR_ADD + + + + +  + +
    +
    +
    +

    + Addition of two or more bit-vectors. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BITVECTOR_SUB + + + + +  + +
    +
    +
    +

    + Subtraction of two bit-vectors. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BITVECTOR_NEG + + + + +  + +
    +
    +
    +

    + Negation of a bit-vector (two’s complement). +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BITVECTOR_UDIV + + + + +  + +
    +
    +
    +

    + Unsigned bit-vector division. +

    +

    + Truncates towards + + + 0 + + + . If the divisor is zero, the result is all ones. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BITVECTOR_UREM + + + + +  + +
    +
    +
    +

    + Unsigned bit-vector remainder. +

    +

    + Remainder from unsigned bit-vector division. If the modulus is zero, the result is the dividend. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BITVECTOR_SDIV + + + + +  + +
    +
    +
    +

    + Signed bit-vector division. +

    +

    + Two’s complement signed division of two bit-vectors. If the divisor is zero and the dividend is positive, the result is all ones. If the divisor is zero and the dividend is negative, the result is one. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BITVECTOR_SREM + + + + +  + +
    +
    +
    +

    + Signed bit-vector remainder (sign follows dividend). +

    +

    + Two’s complement signed remainder of two bit-vectors where the sign follows the dividend. If the modulus is zero, the result is the dividend. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BITVECTOR_SMOD + + + + +  + +
    +
    +
    +

    + Signed bit-vector remainder (sign follows divisor). +

    +

    + Two’s complement signed remainder where the sign follows the divisor. If the modulus is zero, the result is the dividend. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BITVECTOR_SHL + + + + +  + +
    +
    +
    +

    + Bit-vector shift left. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BITVECTOR_LSHR + + + + +  + +
    +
    +
    +

    + Bit-vector logical shift right. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BITVECTOR_ASHR + + + + +  + +
    +
    +
    +

    + Bit-vector arithmetic shift right. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BITVECTOR_ULT + + + + +  + +
    +
    +
    +

    + Bit-vector unsigned less than. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BITVECTOR_ULE + + + + +  + +
    +
    +
    +

    + Bit-vector unsigned less than or equal. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BITVECTOR_UGT + + + + +  + +
    +
    +
    +

    + Bit-vector unsigned greater than. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BITVECTOR_UGE + + + + +  + +
    +
    +
    +

    + Bit-vector unsigned greater than or equal. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BITVECTOR_SLT + + + + +  + +
    +
    +
    +

    + Bit-vector signed less than. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BITVECTOR_SLE + + + + +  + +
    +
    +
    +

    + Bit-vector signed less than or equal. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BITVECTOR_SGT + + + + +  + +
    +
    +
    +

    + Bit-vector signed greater than. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BITVECTOR_SGE + + + + +  + +
    +
    +
    +

    + Bit-vector signed greater than or equal. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BITVECTOR_ULTBV + + + + +  + +
    +
    +
    +

    + Bit-vector unsigned less than returning a bit-vector of size 1. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BITVECTOR_SLTBV + + + + +  + +
    +
    +
    +

    + Bit-vector signed less than returning a bit-vector of size + + + 1 + + + . +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BITVECTOR_ITE + + + + +  + +
    +
    +
    +

    + Bit-vector if-then-else. +

    +

    + Same semantics as regular ITE, but condition is bit-vector of size + + + 1 + + + . +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BITVECTOR_REDOR + + + + +  + +
    +
    +
    +

    + Bit-vector redor. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BITVECTOR_REDAND + + + + +  + +
    +
    +
    +

    + Bit-vector redand. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BITVECTOR_NEGO + + + + +  + +
    +
    +
    +

    + Bit-vector negation overflow detection. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BITVECTOR_UADDO + + + + +  + +
    +
    +
    +

    + Bit-vector unsigned addition overflow detection. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BITVECTOR_SADDO + + + + +  + +
    +
    +
    +

    + Bit-vector signed addition overflow detection. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BITVECTOR_UMULO + + + + +  + +
    +
    +
    +

    + Bit-vector unsigned multiplication overflow detection. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BITVECTOR_SMULO + + + + +  + +
    +
    +
    +

    + Bit-vector signed multiplication overflow detection. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BITVECTOR_USUBO + + + + +  + +
    +
    +
    +

    + Bit-vector unsigned subtraction overflow detection. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BITVECTOR_SSUBO + + + + +  + +
    +
    +
    +

    + Bit-vector signed subtraction overflow detection. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BITVECTOR_SDIVO + + + + +  + +
    +
    +
    +

    + Bit-vector signed division overflow detection. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BITVECTOR_EXTRACT + + + + +  + +
    +
    +
    +

    + Bit-vector extract. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BITVECTOR_REPEAT + + + + +  + +
    +
    +
    +

    + Bit-vector repeat. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BITVECTOR_ZERO_EXTEND + + + + +  + +
    +
    +
    +

    + Bit-vector zero extension. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BITVECTOR_SIGN_EXTEND + + + + +  + +
    +
    +
    +

    + Bit-vector sign extension. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BITVECTOR_ROTATE_LEFT + + + + +  + +
    +
    +
    +

    + Bit-vector rotate left. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BITVECTOR_ROTATE_RIGHT + + + + +  + +
    +
    +
    +

    + Bit-vector rotate right. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + INT_TO_BITVECTOR + + + + +  + +
    +
    +
    +

    + Conversion from Int to bit-vector. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BITVECTOR_TO_NAT + + + + +  + +
    +
    +
    +

    + Bit-vector conversion to (non-negative) integer. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BITVECTOR_FROM_BOOLS + + + + +  + +
    +
    +
    +

    + Converts a list of Bool terms to a bit-vector. +

    +

    +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 0 + + +

      + +
    • +
    +
    +

    + Note +

    +

    + May be returned as the result of an API call, but terms of this +kind may not be created explicitly via the API and may not +appear in assertions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BITVECTOR_BIT + + + + +  + +
    +
    +
    +

    + Retrieves the bit at the given index from a bit-vector as a Bool term. +

    +

    +

    +
      +
    • +

      + Arity: + + + 1 + + +

      + +
    • +
    • +

      + Indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + The bit index +

        +
      • +
      +
    • +
    +
    +

    + Note +

    +

    + May be returned as the result of an API call, but terms of this +kind may not be created explicitly via the API and may not +appear in assertions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CONST_FINITE_FIELD + + + + +  + +
    +
    +
    +

    + Finite field constant. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + FINITE_FIELD_NEG + + + + +  + +
    +
    +
    +

    + Negation of a finite field element (additive inverse). +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + FINITE_FIELD_ADD + + + + +  + +
    +
    +
    +

    + Addition of two or more finite field elements. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + FINITE_FIELD_BITSUM + + + + +  + +
    +
    +
    +

    + Bitsum of two or more finite field elements: x + 2y + 4z + … +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + FINITE_FIELD_MULT + + + + +  + +
    +
    +
    +

    + Multiplication of two or more finite field elements. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CONST_FLOATINGPOINT + + + + +  + +
    +
    +
    +

    + Floating-point constant, created from IEEE-754 bit-vector representation of the floating-point value. +

    +

    +

    +
      +
    • +

      + Create + + + Term + + + of this Kind with: +

      +
        +
      • +

        + Solver::mkFloatingPoint(uint32_t, uint32_t, Term) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CONST_ROUNDINGMODE + + + + +  + +
    +
    +
    +

    + RoundingMode constant. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + FLOATINGPOINT_FP + + + + +  + +
    +
    +
    +

    + Create floating-point literal from bit-vector triple. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + FLOATINGPOINT_EQ + + + + +  + +
    +
    +
    +

    + Floating-point equality. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + FLOATINGPOINT_ABS + + + + +  + +
    +
    +
    +

    + Floating-point absolute value. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + FLOATINGPOINT_NEG + + + + +  + +
    +
    +
    +

    + Floating-point negation. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + FLOATINGPOINT_ADD + + + + +  + +
    +
    +
    +

    + Floating-point addition. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + FLOATINGPOINT_SUB + + + + +  + +
    +
    +
    +

    + Floating-point sutraction. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + FLOATINGPOINT_MULT + + + + +  + +
    +
    +
    +

    + Floating-point multiply. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + FLOATINGPOINT_DIV + + + + +  + +
    +
    +
    +

    + Floating-point division. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + FLOATINGPOINT_FMA + + + + +  + +
    +
    +
    +

    + Floating-point fused multiply and add. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + FLOATINGPOINT_SQRT + + + + +  + +
    +
    +
    +

    + Floating-point square root. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + FLOATINGPOINT_REM + + + + +  + +
    +
    +
    +

    + Floating-point remainder. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + FLOATINGPOINT_RTI + + + + +  + +
    +
    +
    +

    + Floating-point round to integral. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + FLOATINGPOINT_MIN + + + + +  + +
    +
    +
    +

    + Floating-point minimum. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + FLOATINGPOINT_MAX + + + + +  + +
    +
    +
    +

    + Floating-point maximum. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + FLOATINGPOINT_LEQ + + + + +  + +
    +
    +
    +

    + Floating-point less than or equal. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + FLOATINGPOINT_LT + + + + +  + +
    +
    +
    +

    + Floating-point less than. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + FLOATINGPOINT_GEQ + + + + +  + +
    +
    +
    +

    + Floating-point greater than or equal. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + FLOATINGPOINT_GT + + + + +  + +
    +
    +
    +

    + Floating-point greater than. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + FLOATINGPOINT_IS_NORMAL + + + + +  + +
    +
    +
    +

    + Floating-point is normal tester. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + FLOATINGPOINT_IS_SUBNORMAL + + + + +  + +
    +
    +
    +

    + Floating-point is sub-normal tester. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + FLOATINGPOINT_IS_ZERO + + + + +  + +
    +
    +
    +

    + Floating-point is zero tester. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + FLOATINGPOINT_IS_INF + + + + +  + +
    +
    +
    +

    + Floating-point is infinite tester. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + FLOATINGPOINT_IS_NAN + + + + +  + +
    +
    +
    +

    + Floating-point is NaN tester. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + FLOATINGPOINT_IS_NEG + + + + +  + +
    +
    +
    +

    + Floating-point is negative tester. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + FLOATINGPOINT_IS_POS + + + + +  + +
    +
    +
    +

    + Floating-point is positive tester. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + FLOATINGPOINT_TO_FP_FROM_IEEE_BV + + + + +  + +
    +
    +
    +

    + Conversion to floating-point from IEEE-754 bit-vector. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + FLOATINGPOINT_TO_FP_FROM_FP + + + + +  + +
    +
    +
    +

    + Conversion to floating-point from floating-point. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + FLOATINGPOINT_TO_FP_FROM_REAL + + + + +  + +
    +
    +
    +

    + Conversion to floating-point from Real. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + FLOATINGPOINT_TO_FP_FROM_SBV + + + + +  + +
    +
    +
    +

    + Conversion to floating-point from signed bit-vector. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + FLOATINGPOINT_TO_FP_FROM_UBV + + + + +  + +
    +
    +
    +

    + Conversion to floating-point from unsigned bit-vector. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + FLOATINGPOINT_TO_UBV + + + + +  + +
    +
    +
    +

    + Conversion to unsigned bit-vector from floating-point. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + FLOATINGPOINT_TO_SBV + + + + +  + +
    +
    +
    +

    + Conversion to signed bit-vector from floating-point. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + FLOATINGPOINT_TO_REAL + + + + +  + +
    +
    +
    +

    + Conversion to Real from floating-point. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SELECT + + + + +  + +
    +
    +
    +

    + Array select. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STORE + + + + +  + +
    +
    +
    +

    + Array store. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CONST_ARRAY + + + + +  + +
    +
    +
    +

    + Constant array. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + EQ_RANGE + + + + +  + +
    +
    +
    +

    +

    +

    + Equality over arrays + + \(a\) + + and + + \(b\) + + over a given range + + \([i,j]\) + + , i.e., +

    +
    + \[\forall k . i \leq k \leq j \Rightarrow a[k] = b[k]\] +
    +

    +

    + +
    +

    + Note +

    +

    + We currently support the creation of array equalities over index +Sorts bit-vector, floating-point, Int and Real. +Requires to enable option + + + arrays-exp + + + . +

    +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + APPLY_CONSTRUCTOR + + + + +  + +
    +
    +
    +

    + + + Datatype + + + constructor application. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + APPLY_SELECTOR + + + + +  + +
    +
    +
    +

    + + + Datatype + + + selector application. +

    +

    +

    + +
    +

    + Note +

    +

    + Undefined if misapplied. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + APPLY_TESTER + + + + +  + +
    +
    +
    +

    + + + Datatype + + + tester application. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + APPLY_UPDATER + + + + +  + +
    +
    +
    +

    + + + Datatype + + + update application. +

    +

    +

    + +
    +

    + Note +

    +

    + Does not change the datatype argument if misapplied. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + MATCH + + + + +  + +
    +
    +
    +

    + Match expression. +

    +

    + This kind is primarily used in the parser to support the SMT-LIBv2 + + + match + + + expression. +

    +

    + For example, the SMT-LIBv2 syntax for the following match term +

    +

    +

    +
    +
    +
    (match l (((cons h t) h) (nil 0)))
    +
    +
    +
    +

    + is represented by the AST +

    +
    +
    +
    (MATCH l
    +    (MATCH_BIND_CASE (VARIABLE_LIST h t) (cons h t) h)
    +    (MATCH_CASE nil 0))
    +
    +
    +
    +

    + Terms of kind + + + + MATCH_CASE + + + + are constant case expressions, +which are used for nullary constructors. Kind + + + + MATCH_BIND_CASE + + + + is used for constructors with selectors +and variable match patterns. If not all constructors are covered, at least +one catch-all variable pattern must be included. +

    + +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + MATCH_CASE + + + + +  + +
    +
    +
    +

    + Match case for nullary constructors. +

    +

    + A (constant) case expression to be used within a match expression. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of kind + + + + APPLY_CONSTRUCTOR + + + + (the pattern to match against) +

        +
      • +
      • +

        + + + 2: + + + Term of any Sort (the term the match term evaluates to) +

        +
      • +
      +
    • +
    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + MATCH_BIND_CASE + + + + +  + +
    +
    +
    +

    + Match case with binders, for constructors with selectors and variable patterns. +

    +

    + A (non-constant) case expression to be used within a match expression. +

    +

    +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + For variable patterns: +

        +
          +
        • +

          + + + 1: + + + Term of kind + + + + VARIABLE_LIST + + + + (containing the free variable of the case) +

          +
        • +
        • +

          + + + 2: + + + Term of kind + + + + VARIABLE + + + + (the pattern expression, the free variable of the case) +

          +
        • +
        • +

          + + + 3: + + + Term of any Sort (the term the pattern evaluates to) +

          +
        • +
        +
      • +
      • +

        + For constructors with selectors: +

        +
          +
        • +

          + + + 1: + + + Term of kind + + + + VARIABLE_LIST + + + + (containing the free variable of the case) +

          +
        • +
        • +

          + + + 2: + + + Term of kind + + + + APPLY_CONSTRUCTOR + + + + (the pattern expression, applying the set of variables to the constructor) +

          +
        • +
        • +

          + + + 3: + + + Term of any Sort (the term the match term evaluates to) +

          +
        • +
        +
      • +
      +
    • +
    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + TUPLE_PROJECT + + + + +  + +
    +
    +
    +

    + Tuple projection. +

    +

    + This operator takes a tuple as an argument and returns a tuple obtained by concatenating components of its argument at the provided indices. +

    +

    + For example, +

    +

    +

    +
    +
    +
    ((_ tuple.project 1 2 2 3 1) (tuple 10 20 30 40))
    +
    +
    +
    + yields +

    +

    +
    +
    +
    (tuple 20 30 30 40 20)
    +
    +
    +
    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + NULLABLE_LIFT + + + + +  + +
    +
    +
    +

    + Lifting operator for nullable terms. This operator lifts a built-in operator or a user-defined function to nullable terms. For built-in kinds use mkNullableLift. For user-defined functions use mkTerm. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SEP_NIL + + + + +  + +
    +
    +
    +

    + Separation logic nil. +

    +

    +

    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SEP_EMP + + + + +  + +
    +
    +
    +

    + Separation logic empty heap. +

    +

    +

    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SEP_PTO + + + + +  + +
    +
    +
    +

    + Separation logic points-to relation. +

    +

    +

    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SEP_STAR + + + + +  + +
    +
    +
    +

    + Separation logic star. +

    +

    +

    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SEP_WAND + + + + +  + +
    +
    +
    +

    + Separation logic magic wand. +

    +

    +

    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SET_EMPTY + + + + +  + +
    +
    +
    +

    + Empty set. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SET_UNION + + + + +  + +
    +
    +
    +

    + Set union. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SET_INTER + + + + +  + +
    +
    +
    +

    + Set intersection. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SET_MINUS + + + + +  + +
    +
    +
    +

    + Set subtraction. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SET_SUBSET + + + + +  + +
    +
    +
    +

    + Subset predicate. +

    +

    + Determines if the first set is a subset of the second set. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SET_MEMBER + + + + +  + +
    +
    +
    +

    + Set membership predicate. +

    +

    + Determines if the given set element is a member of the second set. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SET_SINGLETON + + + + +  + +
    +
    +
    +

    + Singleton set. +

    +

    + Construct a singleton set from an element given as a parameter. The returned set has the same + + + Sort + + + as the element. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SET_INSERT + + + + +  + +
    +
    +
    +

    + The set obtained by inserting elements; +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SET_CARD + + + + +  + +
    +
    +
    +

    + Set cardinality. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SET_COMPLEMENT + + + + +  + +
    +
    +
    +

    + Set complement with respect to finite universe. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SET_UNIVERSE + + + + +  + +
    +
    +
    +

    + Finite universe set. +

    +

    + All set variables must be interpreted as subsets of it. +

    +

    +

    + +
    +

    + Note +

    +

    + + + + SET_UNIVERSE + + + + is considered a special symbol of +the theory of sets and is not considered as a set value, i.e., +Term::isSetValue() will return + + + false + + + . +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SET_COMPREHENSION + + + + +  + +
    +
    +
    +

    + Set comprehension +

    +

    +

    +

    + A set comprehension is specified by a variable list + + \(x_1 ... x_n\) + + , +a predicate + + \(P[x_1...x_n]\) + + , and a term + + \(t[x_1...x_n]\) + + . A +comprehension + + \(C\) + + with the above form has members given by the +following semantics: +

    +
    + \[\forall y. ( \exists x_1...x_n. P[x_1...x_n] \wedge t[x_1...x_n] = y ) +\Leftrightarrow (set.member \; y \; C)\] +
    +

    + where + + \(y\) + + ranges over the element Sort of the (set) Sort of the +comprehension. If + + \(t[x_1..x_n]\) + + is not provided, it is equivalent +to + + \(y\) + + in the above formula. +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of Kind + + + + VARIABLE_LIST + + + +

        +
      • +
      • +

        + + + 2: + + + Term of sort Bool (the predicate of the comprehension) +

        +
      • +
      • +

        + + + 3: + + + (optional) Term denoting the generator for the comprehension +

        +
      • +
      +
    • +
    +

    +

    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SET_CHOOSE + + + + +  + +
    +
    +
    +

    + Set choose. +

    +

    + Select an element from a given set. For a set + + \(A = \{x\}\) + + , the term +(set.choose + + \(A\) + + ) is equivalent to the term + + \(x_1\) + + . For an empty +set, it is an arbitrary value. For a set with cardinality > 1, it will +deterministically return an element in + + \(A\) + + . +

    +

    +

    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SET_IS_EMPTY + + + + +  + +
    +
    +
    +

    + Set is empty tester. +

    +

    +

    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SET_IS_SINGLETON + + + + +  + +
    +
    +
    +

    + Set is singleton tester. +

    +

    +

    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SET_MAP + + + + +  + +
    +
    +
    +

    + Set map. +

    +

    +

    +

    + This operator applies the first argument, a function of +Sort + + \((\rightarrow S_1 \; S_2)\) + + , to every element of the second +argument, a set of Sort (Set + + \(S_1\) + + ), and returns a set of Sort +(Set + + \(S_2\) + + ). +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of function Sort + + \((\rightarrow S_1 \; S_2)\) + +

        +
      • +
      • +

        + + + 2: + + + Term of set Sort (Set + + \(S_1\) + + ) +

        +
      • +
      +
    • +
    +

    +

    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SET_FILTER + + + + +  + +
    +
    +
    +

    + Set filter. +

    +

    +

    +

    + This operator filters the elements of a set. +(set.filter + + \(p \; A\) + + ) takes a predicate + + \(p\) + + of Sort + + \((\rightarrow T \; Bool)\) + + as a first argument, and a set + + \(A\) + + of Sort (Set + + \(T\) + + ) as a second argument, and returns a subset of Sort +(Set + + \(T\) + + ) that includes all elements of + + \(A\) + + that satisfy + + \(p\) + + . +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of function Sort + + \((\rightarrow T \; Bool)\) + +

        +
      • +
      • +

        + + + 2: + + + Term of bag Sort (Set + + \(T\) + + ) +

        +
      • +
      +
    • +
    +

    +

    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SET_ALL + + + + +  + +
    +
    +
    +

    + Set all. +

    +

    +

    +

    + This operator checks whether all elements of a set satisfy a predicate. +(set.all + + \(p \; A\) + + ) takes a predicate + + \(p\) + + of Sort + + \((\rightarrow T \; Bool)\) + + as a first argument, and a set + + \(A\) + + of Sort (Set + + \(T\) + + ) as a second argument, and returns true iff all +elements of + + \(A\) + + satisfy predicate + + \(p\) + + . +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of function Sort + + \((\rightarrow T \; Bool)\) + +

        +
      • +
      • +

        + + + 2: + + + Term of bag Sort (Set + + \(T\) + + ) +

        +
      • +
      +
    • +
    +

    +

    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SET_SOME + + + + +  + +
    +
    +
    +

    + Set some. +

    +

    +

    +

    + This operator checks whether at least one element of a set satisfies a predicate. +(set.some + + \(p \; A\) + + ) takes a predicate + + \(p\) + + of Sort + + \((\rightarrow T \; Bool)\) + + as a first argument, and a set + + \(A\) + + of Sort (Set + + \(T\) + + ) as a second argument, and returns true iff at least +one element of + + \(A\) + + satisfies predicate + + \(p\) + + . +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of function Sort + + \((\rightarrow T \; Bool)\) + +

        +
      • +
      • +

        + + + 2: + + + Term of bag Sort (Set + + \(T\) + + ) +

        +
      • +
      +
    • +
    +

    +

    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SET_FOLD + + + + +  + +
    +
    +
    +

    + Set fold. +

    +

    +

    +

    + This operator combines elements of a set into a single value. +(set.fold + + \(f \; t \; A\) + + ) folds the elements of set + + \(A\) + + starting with Term + + \(t\) + + and using the combining function + + \(f\) + + . +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of function Sort + + \((\rightarrow S_1 \; S_2 \; S_2)\) + +

        +
      • +
      • +

        + + + 2: + + + Term of Sort + + \(S_2\) + + (the initial value) +

        +
      • +
      • +

        + + + 3: + + + Term of bag Sort (Set + + \(S_1\) + + ) +

        +
      • +
      +
    • +
    +

    +

    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + RELATION_JOIN + + + + +  + +
    +
    +
    +

    + Relation join. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + RELATION_TABLE_JOIN + + + + +  + +
    +
    +
    +

    +

    +

    +

    +
    +
    +

    + Table join operator for relations has the form + + \(((\_ \; rel.table\_join \; m_1 \; n_1 \; \dots \; m_k \; n_k) \; A \; B)\) + + where + + \(m_1 \; n_1 \; \dots \; m_k \; n_k\) + + are natural numbers, +and + + \(A, B\) + + are relations. +This operator filters the product of two sets based on the equality of +projected tuples using indices + + \(m_1, \dots, m_k\) + + in relation + + \(A\) + + , +and indices + + \(n_1, \dots, n_k\) + + in relation + + \(B\) + + . +

    +
    +
    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of relation Sort +

        +
      • +
      • +

        + + + 2: + + + Term of relation Sort +

        +
      • +
      +
    • +
    • +

      + Indices: + + + n + + + - + + + 1..n: + + + Indices of the projection +

      +
    • +
    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + RELATION_PRODUCT + + + + +  + +
    +
    +
    +

    + Relation cartesian product. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + RELATION_TRANSPOSE + + + + +  + +
    +
    +
    +

    + Relation transpose. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + RELATION_TCLOSURE + + + + +  + +
    +
    +
    +

    + Relation transitive closure. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + RELATION_JOIN_IMAGE + + + + +  + +
    +
    +
    +

    + Relation join image. +

    +

    +

    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + RELATION_IDEN + + + + +  + +
    +
    +
    +

    + Relation identity. +

    +

    +

    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + RELATION_GROUP + + + + +  + +
    +
    +
    +

    + Relation group +

    +

    +

    +

    + + \(((\_ \; rel.group \; n_1 \; \dots \; n_k) \; A)\) + + partitions tuples +of relation + + \(A\) + + such that tuples that have the same projection +with indices + + \(n_1 \; \dots \; n_k\) + + are in the same part. +It returns a set of relations of type + + \((Set \; T)\) + + where + + \(T\) + + is the type of + + \(A\) + + . +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of relation sort +

        +
      • +
      +
    • +
    • +

      + Indices: + + + n + + +

      +
        +
      • +

        + + + 1..n: + + + Indices of the projection +

        +
      • +
      +
    • +
    +

    +

    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + RELATION_AGGREGATE + + + + +  + +
    +
    +
    +

    +

    +

    +

    +

    + Relation aggregate operator has the form + + \(((\_ \; rel.aggr \; n_1 ... n_k) \; f \; i \; A)\) + + where + + \(n_1, ..., n_k\) + + are natural numbers, + + \(f\) + + is a function of type + + \((\rightarrow (Tuple \; T_1 \; ... \; T_j)\; T \; T)\) + + , + + \(i\) + + has the type + + \(T\) + + , +and + + \(A\) + + has type + + \((Relation \; T_1 \; ... \; T_j)\) + + . +The returned type is + + \((Set \; T)\) + + . +

    +

    + This operator aggregates elements in A that have the same tuple projection +with indices n_1, …, n_k using the combining function + + \(f\) + + , +and initial value + + \(i\) + + . +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of sort + + \((\rightarrow (Tuple \; T_1 \; ... \; T_j)\; T \; T)\) + +

        +
      • +
      • +

        + + + 2: + + + Term of Sort + + \(T\) + +

        +
      • +
      • +

        + + + 3: + + + Term of relation sort + + \(Relation T_1 ... T_j\) + +

        +
      • +
      +
    • +
    • +

      + Indices: + + + n + + + - + + + 1..n: + + + Indices of the projection +

      +
    • +
    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + RELATION_PROJECT + + + + +  + +
    +
    +
    +

    + Relation projection operator extends tuple projection operator to sets. +

    +

    +

    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BAG_EMPTY + + + + +  + +
    +
    +
    +

    + Empty bag. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BAG_UNION_MAX + + + + +  + +
    +
    +
    +

    + Bag max union. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BAG_UNION_DISJOINT + + + + +  + +
    +
    +
    +

    + Bag disjoint union (sum). +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BAG_INTER_MIN + + + + +  + +
    +
    +
    +

    + Bag intersection (min). +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BAG_DIFFERENCE_SUBTRACT + + + + +  + +
    +
    +
    +

    + Bag difference subtract. +

    +

    + Subtracts multiplicities of the second from the first. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BAG_DIFFERENCE_REMOVE + + + + +  + +
    +
    +
    +

    + Bag difference remove. +

    +

    + Removes shared elements in the two bags. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BAG_SUBBAG + + + + +  + +
    +
    +
    +

    + Bag inclusion predicate. +

    +

    + Determine if multiplicities of the first bag are less than or equal to multiplicities of the second bag. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BAG_COUNT + + + + +  + +
    +
    +
    +

    + Bag element multiplicity. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BAG_MEMBER + + + + +  + +
    +
    +
    +

    + Bag membership predicate. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BAG_SETOF + + + + +  + +
    +
    +
    +

    + Bag setof. +

    +

    + Eliminate duplicates in a given bag. The returned bag contains exactly the same elements in the given bag, but with multiplicity one. +

    +

    +

    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BAG_MAKE + + + + +  + +
    +
    +
    +

    + Bag make. +

    +

    + Construct a bag with the given element and given multiplicity. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BAG_CARD + + + + +  + +
    +
    +
    +

    + Bag cardinality. +

    +

    +

    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BAG_CHOOSE + + + + +  + +
    +
    +
    +

    + Bag choose. +

    +

    + Select an element from a given bag. +

    +

    + For a bag + + \(A = \{(x,n)\}\) + + where + + \(n\) + + is the multiplicity, then +the term (choose + + \(A\) + + ) is equivalent to the term + + \(x\) + + . For an +empty bag, then it is an arbitrary value. For a bag that contains distinct +elements, it will deterministically return an element in + + \(A\) + + . +

    +

    +

    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BAG_MAP + + + + +  + +
    +
    +
    +

    + Bag map. +

    +

    +

    +

    + This operator applies the first argument, a function of +Sort + + \((\rightarrow S_1 \; S_2)\) + + , to every element of the second +argument, a set of Sort (Bag + + \(S_1\) + + ), and returns a set of Sort +(Bag + + \(S_2\) + + ). +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of function Sort + + \((\rightarrow S_1 \; S_2)\) + +

        +
      • +
      • +

        + + + 2: + + + Term of bag Sort (Bag + + \(S_1\) + + ) +

        +
      • +
      +
    • +
    +

    +

    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BAG_FILTER + + + + +  + +
    +
    +
    +

    + Bag filter. +

    +

    +

    +

    + This operator filters the elements of a bag. +(bag.filter + + \(p \; B\) + + ) takes a predicate + + \(p\) + + of Sort + + \((\rightarrow T \; Bool)\) + + as a first argument, and a bag + + \(B\) + + of Sort (Bag + + \(T\) + + ) as a second argument, and returns a subbag of Sort +(Bag + + \(T\) + + ) that includes all elements of + + \(B\) + + that satisfy + + \(p\) + + with the same multiplicity. +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of function Sort + + \((\rightarrow T \; Bool)\) + +

        +
      • +
      • +

        + + + 2: + + + Term of bag Sort (Bag + + \(T\) + + ) +

        +
      • +
      +
    • +
    +

    +

    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BAG_FOLD + + + + +  + +
    +
    +
    +

    + Bag fold. +

    +

    +

    +

    + This operator combines elements of a bag into a single value. +(bag.fold + + \(f \; t \; B\) + + ) folds the elements of bag + + \(B\) + + starting with Term + + \(t\) + + and using the combining function + + \(f\) + + . +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of function Sort + + \((\rightarrow S_1 \; S_2 \; S_2)\) + +

        +
      • +
      • +

        + + + 2: + + + Term of Sort + + \(S_2\) + + (the initial value) +

        +
      • +
      • +

        + + + 3: + + + Term of bag Sort (Bag + + \(S_1\) + + ) +

        +
      • +
      +
    • +
    +

    +

    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BAG_PARTITION + + + + +  + +
    +
    +
    +

    + Bag partition. +

    +

    +

    +

    + This operator partitions of a bag of elements into disjoint bags. +(bag.partition + + \(r \; B\) + + ) partitions the elements of bag + + \(B\) + + of type + + \((Bag \; E)\) + + based on the equivalence relations + + \(r\) + + of +type + + \((\rightarrow \; E \; E \; Bool)\) + + . +It returns a bag of bags of type + + \((Bag \; (Bag \; E))\) + + . +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of function Sort + + \((\rightarrow \; E \; E \; Bool)\) + +

        +
      • +
      • +

        + + + 2: + + + Term of bag Sort (Bag + + \(E\) + + ) +

        +
      • +
      +
    • +
    +

    +

    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + TABLE_PRODUCT + + + + +  + +
    +
    +
    +

    + Table cross product. +

    +

    +

    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + TABLE_PROJECT + + + + +  + +
    +
    +
    +

    + Table projection operator extends tuple projection operator to tables. +

    +

    +

    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + TABLE_AGGREGATE + + + + +  + +
    +
    +
    +

    +

    +

    +

    +

    + Table aggregate operator has the form + + \(((\_ \; table.aggr \; n_1 ... n_k) \; f \; i \; A)\) + + where + + \(n_1, ..., n_k\) + + are natural numbers, + + \(f\) + + is a function of type + + \((\rightarrow (Tuple \; T_1 \; ... \; T_j)\; T \; T)\) + + , + + \(i\) + + has the type + + \(T\) + + , +and + + \(A\) + + has type + + \((Table \; T_1 \; ... \; T_j)\) + + . +The returned type is + + \((Bag \; T)\) + + . +

    +

    + This operator aggregates elements in A that have the same tuple projection +with indices n_1, …, n_k using the combining function + + \(f\) + + , +and initial value + + \(i\) + + . +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of sort + + \((\rightarrow (Tuple \; T_1 \; ... \; T_j)\; T \; T)\) + +

        +
      • +
      • +

        + + + 2: + + + Term of Sort + + \(T\) + +

        +
      • +
      • +

        + + + 3: + + + Term of table sort + + \(Table T_1 ... T_j\) + +

        +
      • +
      +
    • +
    • +

      + Indices: + + + n + + + - + + + 1..n: + + + Indices of the projection +

      +
    • +
    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + TABLE_JOIN + + + + +  + +
    +
    +
    +

    +

    +

    +

    +
    +
    +

    + Table join operator has the form + + \(((\_ \; table.join \; m_1 \; n_1 \; \dots \; m_k \; n_k) \; A \; B)\) + + where + + \(m_1 \; n_1 \; \dots \; m_k \; n_k\) + + are natural numbers, +and + + \(A, B\) + + are tables. +This operator filters the product of two bags based on the equality of +projected tuples using indices + + \(m_1, \dots, m_k\) + + in table + + \(A\) + + , +and indices + + \(n_1, \dots, n_k\) + + in table + + \(B\) + + . +

    +
    +
    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of table Sort +

        +
      • +
      • +

        + + + 2: + + + Term of table Sort +

        +
      • +
      +
    • +
    • +

      + Indices: + + + n + + + - + + + 1..n: + + + Indices of the projection +

      +
    • +
    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + TABLE_GROUP + + + + +  + +
    +
    +
    +

    + Table group +

    +

    +

    +

    + + \(((\_ \; table.group \; n_1 \; \dots \; n_k) \; A)\) + + partitions tuples +of table + + \(A\) + + such that tuples that have the same projection +with indices + + \(n_1 \; \dots \; n_k\) + + are in the same part. +It returns a bag of tables of type + + \((Bag \; T)\) + + where + + \(T\) + + is the type of + + \(A\) + + . +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of table sort +

        +
      • +
      +
    • +
    • +

      + Indices: + + + n + + +

      +
        +
      • +

        + + + 1..n: + + + Indices of the projection +

        +
      • +
      +
    • +
    +

    +

    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STRING_CONCAT + + + + +  + +
    +
    +
    +

    + String concat. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STRING_IN_REGEXP + + + + +  + +
    +
    +
    +

    + String membership. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STRING_LENGTH + + + + +  + +
    +
    +
    +

    + String length. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STRING_SUBSTR + + + + +  + +
    +
    +
    +

    + String substring. +

    +

    +

    +

    + Extracts a substring, starting at index + + \(i\) + + and of length + + \(l\) + + , +from a string + + \(s\) + + . If the start index is negative, the start index +is greater than the length of the string, or the length is negative, the +result is the empty string. +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String +

        +
      • +
      • +

        + + + 2: + + + Term of Sort Int (index + + \(i\) + + ) +

        +
      • +
      • +

        + + + 3: + + + Term of Sort Int (length + + \(l\) + + ) +

        +
      • +
      +
    • +
    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STRING_UPDATE + + + + +  + +
    +
    +
    +

    + String update. +

    +

    +

    +

    + Updates a string + + \(s\) + + by replacing its context starting at an index +with string + + \(t\) + + . If the start index is negative, the start index is +greater than the length of the string, the result is + + \(s\) + + . Otherwise, +the length of the original string is preserved. +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String +

        +
      • +
      • +

        + + + 2: + + + Term of Sort Int (index + + \(i\) + + ) +

        +
      • +
      • +

        + + + 3: + + + Term of Sort Strong (replacement string + + \(t\) + + ) +

        +
      • +
      +
    • +
    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STRING_CHARAT + + + + +  + +
    +
    +
    +

    + String character at. +

    +

    +

    +

    + Returns the character at index + + \(i\) + + from a string + + \(s\) + + . If the +index is negative or the index is greater than the length of the string, +the result is the empty string. Otherwise the result is a string of +length 1. +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String (string + + \(s\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of Sort Int (index + + \(i\) + + ) +

        +
      • +
      +
    • +
    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STRING_CONTAINS + + + + +  + +
    +
    +
    +

    + String contains. +

    +

    +

    +

    + Determines whether a string + + \(s_1\) + + contains another string + + \(s_2\) + + . If + + \(s_2\) + + is empty, the result is always + + + true + + + . +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String (the string + + \(s_1\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of Sort String (the string + + \(s_2\) + + ) +

        +
      • +
      +
    • +
    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STRING_INDEXOF + + + + +  + +
    +
    +
    +

    + String index-of. +

    +

    +

    +

    + Returns the index of a substring + + \(s_2\) + + in a string + + \(s_1\) + + starting at index + + \(i\) + + . If the index is negative or greater than the +length of string + + \(s_1\) + + or the substring + + \(s_2\) + + does not appear +in string + + \(s_1\) + + after index + + \(i\) + + , the result is -1. +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String (substring + + \(s_1\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of Sort String (substring + + \(s_2\) + + ) +

        +
      • +
      • +

        + + + 3: + + + Term of Sort Int (index + + \(i\) + + ) +

        +
      • +
      +
    • +
    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STRING_INDEXOF_RE + + + + +  + +
    +
    +
    +

    + String index-of regular expression match. +

    +

    +

    +

    + Returns the first match of a regular expression + + \(r\) + + in a +string + + \(s\) + + . If the index is negative or greater than the length of +string + + \(s_1\) + + , or + + \(r\) + + does not match a substring in + + \(s\) + + after index + + \(i\) + + , the result is -1. +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String (string + + \(s\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of Sort RegLan (regular expression + + \(r\) + + ) +

        +
      • +
      • +

        + + + 3: + + + Term of Sort Int (index + + \(i\) + + ) +

        +
      • +
      +
    • +
    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STRING_REPLACE + + + + +  + +
    +
    +
    +

    + String replace. +

    +

    +

    +

    + Replaces a string + + \(s_2\) + + in a string + + \(s_1\) + + with string + + \(s_3\) + + . If + + \(s_2\) + + does not appear in + + \(s_1\) + + , + + \(s_1\) + + is +returned unmodified. +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String (string + + \(s_1\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of Sort String (string + + \(s_2\) + + ) +

        +
      • +
      • +

        + + + 3: + + + Term of Sort String (string + + \(s_3\) + + ) +

        +
      • +
      +
    • +
    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STRING_REPLACE_ALL + + + + +  + +
    +
    +
    +

    + String replace all. +

    +

    +

    +

    + Replaces all occurrences of a string + + \(s_2\) + + in a string + + \(s_1\) + + with string + + \(s_3\) + + . If + + \(s_2\) + + does not appear in + + \(s_1\) + + , + + \(s_1\) + + is returned unmodified. +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String ( + + \(s_1\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of Sort String ( + + \(s_2\) + + ) +

        +
      • +
      • +

        + + + 3: + + + Term of Sort String ( + + \(s_3\) + + ) +

        +
      • +
      +
    • +
    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STRING_REPLACE_RE + + + + +  + +
    +
    +
    +

    + String replace regular expression match. +

    +

    +

    +

    + Replaces the first match of a regular expression + + \(r\) + + in +string + + \(s_1\) + + with string + + \(s_2\) + + . If + + \(r\) + + does not match a +substring of + + \(s_1\) + + , + + \(s_1\) + + is returned unmodified. +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String ( + + \(s_1\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of Sort RegLan +

        +
      • +
      • +

        + + + 3: + + + Term of Sort String ( + + \(s_2\) + + ) +

        +
      • +
      +
    • +
    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STRING_REPLACE_RE_ALL + + + + +  + +
    +
    +
    +

    + String replace all regular expression matches. +

    +

    +

    +

    + Replaces all matches of a regular expression + + \(r\) + + in string + + \(s_1\) + + with string + + \(s_2\) + + . If + + \(r\) + + does not match a +substring of + + \(s_1\) + + , string + + \(s_1\) + + is returned unmodified. +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String ( + + \(s_1\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of Sort RegLan +

        +
      • +
      • +

        + + + 3: + + + Term of Sort String ( + + \(s_2\) + + ) +

        +
      • +
      +
    • +
    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STRING_TO_LOWER + + + + +  + +
    +
    +
    +

    + String to lower case. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STRING_TO_UPPER + + + + +  + +
    +
    +
    +

    + String to upper case. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STRING_REV + + + + +  + +
    +
    +
    +

    + String reverse. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STRING_TO_CODE + + + + +  + +
    +
    +
    +

    + String to code. +

    +

    + Returns the code point of a string if it has length one, or returns + + + -1 + + + otherwise. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STRING_FROM_CODE + + + + +  + +
    +
    +
    +

    + String from code. +

    +

    + Returns a string containing a single character whose code point matches the argument to this function, or the empty string if the argument is out-of-bounds. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STRING_LT + + + + +  + +
    +
    +
    +

    + String less than. +

    +

    +

    +

    + Returns true if string + + \(s_1\) + + is (strictly) less than + + \(s_2\) + + based on a lexiographic ordering over code points. +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String ( + + \(s_1\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of Sort String ( + + \(s_2\) + + ) +

        +
      • +
      +
    • +
    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STRING_LEQ + + + + +  + +
    +
    +
    +

    + String less than or equal. +

    +

    +

    +

    + Returns true if string + + \(s_1\) + + is less than or equal to + + \(s_2\) + + based on a lexiographic ordering over code points. +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String ( + + \(s_1\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of Sort String ( + + \(s_2\) + + ) +

        +
      • +
      +
    • +
    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STRING_PREFIX + + + + +  + +
    +
    +
    +

    + String prefix-of. +

    +

    +

    +

    + Determines whether a string + + \(s_1\) + + is a prefix of string + + \(s_2\) + + . +If string s1 is empty, this operator returns + + + true + + + . +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String ( + + \(s_1\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of Sort String ( + + \(s_2\) + + ) +

        +
      • +
      +
    • +
    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STRING_SUFFIX + + + + +  + +
    +
    +
    +

    + String suffix-of. +

    +

    +

    +

    + Determines whether a string + + \(s_1\) + + is a suffix of the second string. +If string + + \(s_1\) + + is empty, this operator returns + + + true + + + . +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String ( + + \(s_1\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of Sort String ( + + \(s_2\) + + ) +

        +
      • +
      +
    • +
    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STRING_IS_DIGIT + + + + +  + +
    +
    +
    +

    + String is-digit. +

    +

    + Returns true if given string is a digit (it is one of + + + "0" + + + , …, + + + "9" + + + ). +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STRING_FROM_INT + + + + +  + +
    +
    +
    +

    + Conversion from Int to String. +

    +

    + If the integer is negative this operator returns the empty string. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STRING_TO_INT + + + + +  + +
    +
    +
    +

    + String to integer (total function). +

    +

    + If the string does not contain an integer or the integer is negative, the operator returns + + + -1 + + + . +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CONST_STRING + + + + +  + +
    +
    +
    +

    + Constant string. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STRING_TO_REGEXP + + + + +  + +
    +
    +
    +

    + Conversion from string to regexp. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + REGEXP_CONCAT + + + + +  + +
    +
    +
    +

    + Regular expression concatenation. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + REGEXP_UNION + + + + +  + +
    +
    +
    +

    + Regular expression union. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + REGEXP_INTER + + + + +  + +
    +
    +
    +

    + Regular expression intersection. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + REGEXP_DIFF + + + + +  + +
    +
    +
    +

    + Regular expression difference. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + REGEXP_STAR + + + + +  + +
    +
    +
    +

    + Regular expression *. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + REGEXP_PLUS + + + + +  + +
    +
    +
    +

    + Regular expression +. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + REGEXP_OPT + + + + +  + +
    +
    +
    +

    + Regular expression ?. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + REGEXP_RANGE + + + + +  + +
    +
    +
    +

    + Regular expression range. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + REGEXP_REPEAT + + + + +  + +
    +
    +
    +

    + Operator for regular expression repeat. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + REGEXP_LOOP + + + + +  + +
    +
    +
    +

    + Regular expression loop. +

    +

    + Regular expression loop from lower bound to upper bound number of repetitions. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + REGEXP_NONE + + + + +  + +
    +
    +
    +

    + Regular expression none. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + REGEXP_ALL + + + + +  + +
    +
    +
    +

    + Regular expression all. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + REGEXP_ALLCHAR + + + + +  + +
    +
    +
    +

    + Regular expression all characters. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + REGEXP_COMPLEMENT + + + + +  + +
    +
    +
    +

    + Regular expression complement. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SEQ_CONCAT + + + + +  + +
    +
    +
    +

    + Sequence concat. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SEQ_LENGTH + + + + +  + +
    +
    +
    +

    + Sequence length. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SEQ_EXTRACT + + + + +  + +
    +
    +
    +

    + Sequence extract. +

    +

    +

    +

    + Extracts a subsequence, starting at index + + \(i\) + + and of length + + \(l\) + + , +from a sequence + + \(s\) + + . If the start index is negative, the start index +is greater than the length of the sequence, or the length is negative, the +result is the empty sequence. +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of sequence Sort +

        +
      • +
      • +

        + + + 2: + + + Term of Sort Int (index + + \(i\) + + ) +

        +
      • +
      • +

        + + + 3: + + + Term of Sort Int (length + + \(l\) + + ) +

        +
      • +
      +
    • +
    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SEQ_UPDATE + + + + +  + +
    +
    +
    +

    + Sequence update. +

    +

    +

    +

    + Updates a sequence + + \(s\) + + by replacing its context starting at an index +with string + + \(t\) + + . If the start index is negative, the start index is +greater than the length of the sequence, the result is + + \(s\) + + . +Otherwise, the length of the original sequence is preserved. +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of sequence Sort +

        +
      • +
      • +

        + + + 2: + + + Term of Sort Int (index + + \(i\) + + ) +

        +
      • +
      • +

        + + + 3: + + + Term of sequence Sort (replacement sequence + + \(t\) + + ) +

        +
      • +
      +
    • +
    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SEQ_AT + + + + +  + +
    +
    +
    +

    + Sequence element at. +

    +

    +

    +

    + Returns the element at index + + \(i\) + + from a sequence + + \(s\) + + . If the index +is negative or the index is greater or equal to the length of the +sequence, the result is the empty sequence. Otherwise the result is a +sequence of length + + + 1 + + + . +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of sequence Sort +

        +
      • +
      • +

        + + + 2: + + + Term of Sort Int (index + + \(i\) + + ) +

        +
      • +
      +
    • +
    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SEQ_CONTAINS + + + + +  + +
    +
    +
    +

    + Sequence contains. +

    +

    +

    +

    + Checks whether a sequence + + \(s_1\) + + contains another sequence + + \(s_2\) + + . If + + \(s_2\) + + is empty, the result is always + + + true + + + . +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of sequence Sort ( + + \(s_1\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of sequence Sort ( + + \(s_2\) + + ) +

        +
      • +
      +
    • +
    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SEQ_INDEXOF + + + + +  + +
    +
    +
    +

    + Sequence index-of. +

    +

    +

    +

    + Returns the index of a subsequence + + \(s_2\) + + in a sequence + + \(s_1\) + + starting at index + + \(i\) + + . If the index is negative or greater than the +length of sequence + + \(s_1\) + + or the subsequence + + \(s_2\) + + does not +appear in sequence + + \(s_1\) + + after index + + \(i\) + + , the result is -1. +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of sequence Sort ( + + \(s_1\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of sequence Sort ( + + \(s_2\) + + ) +

        +
      • +
      • +

        + + + 3: + + + Term of Sort Int ( + + \(i\) + + ) +

        +
      • +
      +
    • +
    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SEQ_REPLACE + + + + +  + +
    +
    +
    +

    + Sequence replace. +

    +

    +

    +

    + Replaces the first occurrence of a sequence + + \(s_2\) + + in a +sequence + + \(s_1\) + + with sequence + + \(s_3\) + + . If + + \(s_2\) + + does not +appear in + + \(s_1\) + + , + + \(s_1\) + + is returned unmodified. +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of sequence Sort ( + + \(s_1\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of sequence Sort ( + + \(s_2\) + + ) +

        +
      • +
      • +

        + + + 3: + + + Term of sequence Sort ( + + \(s_3\) + + ) +

        +
      • +
      +
    • +
    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SEQ_REPLACE_ALL + + + + +  + +
    +
    +
    +

    + Sequence replace all. +

    +

    +

    +

    + Replaces all occurrences of a sequence + + \(s_2\) + + in a sequence + + \(s_1\) + + with sequence + + \(s_3\) + + . If + + \(s_2\) + + does not appear in + + \(s_1\) + + , sequence + + \(s_1\) + + is returned unmodified. +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of sequence Sort ( + + \(s_1\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of sequence Sort ( + + \(s_2\) + + ) +

        +
      • +
      • +

        + + + 3: + + + Term of sequence Sort ( + + \(s_3\) + + ) +

        +
      • +
      +
    • +
    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SEQ_REV + + + + +  + +
    +
    +
    +

    + Sequence reverse. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SEQ_PREFIX + + + + +  + +
    +
    +
    +

    + Sequence prefix-of. +

    +

    +

    +

    + Checks whether a sequence + + \(s_1\) + + is a prefix of sequence + + \(s_2\) + + . +If sequence + + \(s_1\) + + is empty, this operator returns + + + true + + + . +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of sequence Sort ( + + \(s_1\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of sequence Sort ( + + \(s_2\) + + ) +

        +
      • +
      +
    • +
    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SEQ_SUFFIX + + + + +  + +
    +
    +
    +

    + Sequence suffix-of. +

    +

    +

    +

    + Checks whether a sequence + + \(s_1\) + + is a suffix of sequence + + \(s_2\) + + . +If sequence + + \(s_1\) + + is empty, this operator returns + + + true + + + . +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of sequence Sort ( + + \(s_1\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of sequence Sort ( + + \(s_2\) + + ) +

        +
      • +
      +
    • +
    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CONST_SEQUENCE + + + + +  + +
    +
    +
    +

    + Constant sequence. +

    +

    + A constant sequence is a term that is equivalent to: +

    +

    +

    +
    +
    +
    (seq.++ (seq.unit c1) ... (seq.unit cn))
    +
    +
    +
    +

    + where + + \(n \leq 0\) + + and + + \(c_1, ..., c_n\) + + are constants of some +sort. The elements can be extracted with Term::getSequenceValue(). +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SEQ_UNIT + + + + +  + +
    +
    +
    +

    + Sequence unit. +

    +

    + Corresponds to a sequence of length one with the given term. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SEQ_NTH + + + + +  + +
    +
    +
    +

    + Sequence nth. +

    +

    + Corresponds to the nth element of a sequence. +

    +

    +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of sequence Sort +

        +
      • +
      • +

        + + + 2: + + + Term of Sort Int ( + + \(n\) + + ) +

        +
      • +
      +
    • +
    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + FORALL + + + + +  + +
    +
    +
    +

    + Universally quantified formula. +

    +

    +

    + +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + EXISTS + + + + +  + +
    +
    +
    +

    + Existentially quantified formula. +

    +

    +

    + +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + VARIABLE_LIST + + + + +  + +
    +
    +
    +

    + Variable list. +

    +

    + A list of variables (used to bind variables under a quantifier) +

    +

    +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 0 + + +

      + +
    • +
    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + INST_PATTERN + + + + +  + +
    +
    +
    +

    + Instantiation pattern. +

    +

    + Specifies a (list of) terms to be used as a pattern for quantifier instantiation. +

    +

    +

    + +
    +

    + Note +

    +

    + Should only be used as a child of + + + + INST_PATTERN_LIST + + + + . +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + INST_NO_PATTERN + + + + +  + +
    +
    +
    +

    + Instantiation no-pattern. +

    +

    + Specifies a (list of) terms that should not be used as a pattern for quantifier instantiation. +

    +

    +

    + +
    +

    + Note +

    +

    + Should only be used as a child of + + + + INST_PATTERN_LIST + + + + . +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + INST_POOL + + + + +  + +
    +
    +
    +

    + Instantiation pool annotation. +

    +

    + Specifies an annotation for pool based instantiation. +

    +

    + In detail, pool symbols can be declared via the method +

    + +

    + A pool symbol represents a set of terms of a given sort. An instantiation pool annotation should either: (1) have child sets matching the types of the quantified formula, (2) have a child set of tuple type whose component types match the types of the quantified formula. +

    +

    + For an example of (1), for a quantified formula: +

    +

    +

    +
    +
    +
    (FORALL (VARIABLE_LIST x y) F (INST_PATTERN_LIST (INST_POOL p q)))
    +
    +
    +
    +

    + if + + \(x\) + + and + + \(y\) + + have Sorts + + \(S_1\) + + and + + \(S_2\) + + , then +pool symbols + + \(p\) + + and + + \(q\) + + should have Sorts (Set + + \(S_1\) + + ) +and (Set + + \(S_2\) + + ), respectively. This annotation specifies that the +quantified formula above should be instantiated with the product of all +terms that occur in the sets + + \(p\) + + and + + \(q\) + + . +

    +

    + Alternatively, as an example of (2), for a quantified formula: +

    +

    +

    +
    +
    +
    (FORALL (VARIABLE_LIST x y) F (INST_PATTERN_LIST (INST_POOL s)))
    +
    +
    +
    +

    + + \(s\) + + should have Sort (Set (Tuple + + \(S_1\) + + + \(S_2\) + + )). This +annotation specifies that the quantified formula above should be +instantiated with the pairs of values in + + \(s\) + + . +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 0 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms that comprise the pools, which are one-to-one with the variables of the quantified formula to be instantiated +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      +
        +
      • +

        + Solver::mkTerm(Kind, const std::vector<Term>&) const +

        +
      • +
      • +

        + Solver::mkTerm(const Op&, const std::vector<Term>&) const +

        +
      • +
      +
    • +
    • +

      + Create Op of this kind with: +

      +
        +
      • +

        + Solver::mkOp(Kind, const std::vector<uint32_t>&) const +

        +
      • +
      +
    • +
    +
    +

    + Note +

    +

    + Should only be used as a child of + + + + INST_PATTERN_LIST + + + + . +

    +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + INST_ADD_TO_POOL + + + + +  + +
    +
    +
    +

    + A instantantiation-add-to-pool annotation. +

    +

    + An instantantiation-add-to-pool annotation indicates that when a quantified formula is instantiated, the instantiated version of a term should be added to the given pool. +

    +

    + For example, consider a quantified formula: +

    +

    +

    +
    +
    +
    (FORALL (VARIABLE_LIST x) F
    +        (INST_PATTERN_LIST (INST_ADD_TO_POOL (ADD x 1) p)))
    +
    +
    +
    +

    + where assume that + + \(x\) + + has type Int. When this quantified formula is +instantiated with, e.g., the term + + \(t\) + + , the term + + + (ADD + + + t + + + 1) + + + is +added to pool + + \(p\) + + . +

    +

    +

    + +
    +

    + Note +

    +

    + Should only be used as a child of + + + + INST_PATTERN_LIST + + + + . +

    +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SKOLEM_ADD_TO_POOL + + + + +  + +
    +
    +
    +

    + A skolemization-add-to-pool annotation. +

    +

    + An skolemization-add-to-pool annotation indicates that when a quantified formula is skolemized, the skolemized version of a term should be added to the given pool. +

    +

    + For example, consider a quantified formula: +

    +

    +

    +
    +
    +
    (FORALL (VARIABLE_LIST x) F
    +        (INST_PATTERN_LIST (SKOLEM_ADD_TO_POOL (ADD x 1) p)))
    +
    +
    +
    +

    + where assume that + + \(x\) + + has type Int. When this quantified formula is +skolemized, e.g., with + + \(k\) + + of type Int, then the term + + + (ADD + + + k + + + 1) + + + is added to the pool + + \(p\) + + . +

    +

    +

    + +
    +

    + Note +

    +

    + Should only be used as a child of + + + + INST_PATTERN_LIST + + + + . +

    +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + INST_ATTRIBUTE + + + + +  + +
    +
    +
    +

    + Instantiation attribute. +

    +

    + Specifies a custom property for a quantified formula given by a term that is ascribed a user attribute. +

    +

    +

    + +
    +

    + Note +

    +

    + Should only be used as a child of + + + + INST_PATTERN_LIST + + + + . +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + INST_PATTERN_LIST + + + + +  + +
    +
    +
    +

    + A list of instantiation patterns, attributes or annotations. +

    +

    +

    + +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + LAST_KIND + + + + +  + +
    +
    +
    +

    + Marks the upper-bound of this enumeration. +

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + + cvc5 + + + + + :: + + + + + + + operator + + + + + << + + + + + ( + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + out + + + , + + + + Kind + + + + + + + + kind + + + + ) + + +  + +
    +
    +
    +

    + Serialize a kind to given stream. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + out + + – The output stream. +

      +
    • +
    • +

      + + kind + + – The kind to be serialized to the given output stream. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The output stream. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + string + + + + + + + + std + + + + + :: + + + + + + + to_string + + + + + ( + + + + cvc5 + + + + + :: + + + + + + Kind + + + + + + + + kind + + + + ) + + +  + +
    +
    +
    +

    + Get the string representation of a given kind. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + kind + + – The kind +

    +
    +
    + Returns + + : + +
    +
    +

    + The string representation. +

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + template + + + + + < + + + + + > + + +
    + + + + + struct + + + + + + + + hash + + + + + + < + + + + + cvc5 + + + + + :: + + + + + + Kind + + + + + + > + + + +  + +
    +
    +
    +

    + Hash function for Kinds. +

    +
    +

    + Public Functions +

    +
    +
    + + + + + + + + + + + size_t + + + + + + + + operator + + + + + () + + + + + ( + + + + cvc5 + + + + + :: + + + + + + Kind + + + + + + + + kind + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Hashes a Kind to a size_t. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + kind + + – The kind. +

    +
    +
    + Returns + + : + +
    +
    +

    + The hash value. +

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/enums/modes.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/enums/modes.html new file mode 100644 index 0000000000..787dd3c074 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/enums/modes.html @@ -0,0 +1,3337 @@ + + + + + + + + + + + Modes — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Modes + +  + +

    +

    + Some API functions require a configuration mode argument, e.g., + + + + cvc5::Solver::blockModel() + + + + . +The following enum classes define such configuration modes. +

    +
    + +
    +
    +
    + + + + + + + + + enum + + + + + + + class + + + + + + + + cvc5 + + + + + :: + + + + + modes + + + + + :: + + + + + + + BlockModelsMode + + + + +  + +
    +
    +
    +

    + Mode for blocking models. +

    +

    + Specifies how models are blocked in + + + Solver::blockModel + + + and + + + Solver::blockModelValues + + + . +

    +

    + + Values: + +

    +
    +
    + + + + + + + + + enumerator + + + + + + + + LITERALS + + + + +  + +
    +
    +
    +

    + Block models based on the SAT skeleton. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + VALUES + + + + +  + +
    +
    +
    +

    + Block models based on the concrete model values for the free variables. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + + cvc5 + + + + + :: + + + + + modes + + + + + :: + + + + + + + operator + + + + + << + + + + + ( + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + out + + + , + + + + BlockModelsMode + + + + + + + + mode + + + + ) + + +  + +
    +
    +
    +

    + Serialize a BlockModelsMode to given stream. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + out + + – The output stream +

      +
    • +
    • +

      + + mode + + – The mode. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The output stream +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + string + + + + + + + + std + + + + + :: + + + + + + + to_string + + + + + ( + + + + cvc5 + + + + + :: + + + + + modes + + + + + :: + + + + + + BlockModelsMode + + + + + + + + mode + + + + ) + + +  + +
    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + enum + + + + + + + class + + + + + + + + cvc5 + + + + + :: + + + + + modes + + + + + :: + + + + + + + LearnedLitType + + + + +  + +
    +
    +
    +

    + Types of learned literals. +

    +

    + Specifies categories of literals learned for the method + + + Solver::getLearnedLiterals + + + . +

    +

    + Note that a literal may conceptually belong to multiple categories. We classify literals based on the first criteria in this list that they meet. +

    +

    + + Values: + +

    +
    +
    + + + + + + + + + enumerator + + + + + + + + PREPROCESS_SOLVED + + + + +  + +
    +
    +
    +

    + An equality that was turned into a substitution during preprocessing. +

    +

    + In particular, literals in this category are of the form (= x t) where x does not occur in t. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + PREPROCESS + + + + +  + +
    +
    +
    +

    + A top-level literal (unit clause) from the preprocessed set of input formulas. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + INPUT + + + + +  + +
    +
    +
    +

    + A literal from the preprocessed set of input formulas that does not occur at top-level after preprocessing. +

    +

    + Typically), this is the most interesting category of literals to learn. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SOLVABLE + + + + +  + +
    +
    +
    +

    + An internal literal that is solvable for an input variable. +

    +

    + In particular, literals in this category are of the form (= x t) where x does not occur in t, the preprocessed set of input formulas contains the term x, but not the literal (= x t). +

    +

    + Note that solvable literals can be turned into substitutions during preprocessing. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CONSTANT_PROP + + + + +  + +
    +
    +
    +

    + An internal literal that can be made into a constant propagation for an input term. +

    +

    + In particular, literals in this category are of the form (= t c) where c is a constant, the preprocessed set of input formulas contains the term t, but not the literal (= t c). +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + INTERNAL + + + + +  + +
    +
    +
    +

    + Any internal literal that does not fall into the above categories. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + UNKNOWN + + + + +  + +
    +
    +
    +

    + Special case for when produce-learned-literals is not set. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + + cvc5 + + + + + :: + + + + + modes + + + + + :: + + + + + + + operator + + + + + << + + + + + ( + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + out + + + , + + + + LearnedLitType + + + + + + + + type + + + + ) + + +  + +
    +
    +
    +

    + Serialize a LearnedLitType to given stream. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + out + + – The output stream +

      +
    • +
    • +

      + + type + + – The learned literal type. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The output stream +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + string + + + + + + + + std + + + + + :: + + + + + + + to_string + + + + + ( + + + + cvc5 + + + + + :: + + + + + modes + + + + + :: + + + + + + LearnedLitType + + + + + + + + type + + + + ) + + +  + +
    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + enum + + + + + + + class + + + + + + + + cvc5 + + + + + :: + + + + + modes + + + + + :: + + + + + + + ProofComponent + + + + +  + +
    +
    +
    +

    + Components to include in a proof. +

    +

    + + Values: + +

    +
    +
    + + + + + + + + + enumerator + + + + + + + + RAW_PREPROCESS + + + + +  + +
    +
    +
    +

    + Proofs of G1 … Gn whose free assumptions are a subset of F1, … Fm, where: +

    +
      +
    • +

      + G1, … Gn are the preprocessed input formulas, +

      +
    • +
    • +

      + F1, … Fm are the input formulas. +

      +
    • +
    +

    + Note that G1 … Gn may be arbitrary formulas, not necessarily clauses. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + PREPROCESS + + + + +  + +
    +
    +
    +

    + Proofs of Gu1 … Gun whose free assumptions are Fu1, … Fum, where: +

    +
      +
    • +

      + Gu1, … Gun are clauses corresponding to input formulas used in the SAT proof, +

      +
    • +
    • +

      + Fu1, … Fum is the subset of the input formulas that are used in the SAT proof (i.e. the unsat core). +

      +
    • +
    +

    + Note that Gu1 … Gun are clauses that are added to the SAT solver before its main search. +

    +

    + Only valid immediately after an unsat response. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SAT + + + + +  + +
    +
    +
    +

    + A proof of false whose free assumptions are Gu1, … Gun, L1 … Lk, where: +

    +
      +
    • +

      + Gu1, … Gun, is a set of clauses corresponding to input formulas, +

      +
    • +
    • +

      + L1, …, Lk is a set of clauses corresponding to theory lemmas. +

      +
    • +
    +

    + Only valid immediately after an unsat response. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + THEORY_LEMMAS + + + + +  + +
    +
    +
    +

    + Proofs of L1 … Lk where: +

    +
      +
    • +

      + L1, …, Lk are clauses corresponding to theory lemmas used in the SAT proof. +

      +
    • +
    +

    + In contrast to proofs given for preprocess, L1 … Lk are clauses that are added to the SAT solver after its main search. +

    +

    + Only valid immediately after an unsat response. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + FULL + + + + +  + +
    +
    +
    +

    + A proof of false whose free assumptions are a subset of the input formulas F1), … Fm. +

    +

    + Only valid immediately after an unsat response. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + + cvc5 + + + + + :: + + + + + modes + + + + + :: + + + + + + + operator + + + + + << + + + + + ( + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + out + + + , + + + + ProofComponent + + + + + + + + pc + + + + ) + + +  + +
    +
    +
    +

    + Serialize a ProofComponent to given stream. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + out + + – The output stream +

      +
    • +
    • +

      + + pc + + – The proof component. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The output stream +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + string + + + + + + + + std + + + + + :: + + + + + + + to_string + + + + + ( + + + + cvc5 + + + + + :: + + + + + modes + + + + + :: + + + + + + ProofComponent + + + + + + + + pc + + + + ) + + +  + +
    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + enum + + + + + + + class + + + + + + + + cvc5 + + + + + :: + + + + + modes + + + + + :: + + + + + + + ProofFormat + + + + +  + +
    +
    +
    +

    + + + Proof + + + format used for proof printing. +

    +

    + + Values: + +

    +
    +
    + + + + + + + + + enumerator + + + + + + + + NONE + + + + +  + +
    +
    +
    +

    + Do not translate proof output. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + DOT + + + + +  + +
    +
    +
    +

    + Output DOT proof. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + LFSC + + + + +  + +
    +
    +
    +

    + Output LFSC proof. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ALETHE + + + + +  + +
    +
    +
    +

    + Output Alethe proof. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CPC + + + + +  + +
    +
    +
    +

    + Output Cooperating + + + Proof + + + Calculus proof based on Eunoia signatures. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + DEFAULT + + + + +  + +
    +
    +
    +

    + Use the proof format mode set in the solver options. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + + cvc5 + + + + + :: + + + + + modes + + + + + :: + + + + + + + operator + + + + + << + + + + + ( + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + out + + + , + + + + ProofFormat + + + + + + + + format + + + + ) + + +  + +
    +
    +
    +

    + Serialize a FindSynthTarget to given stream. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + out + + – The output stream +

      +
    • +
    • +

      + + format + + – The proof format. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The output stream +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + string + + + + + + + + std + + + + + :: + + + + + + + to_string + + + + + ( + + + + cvc5 + + + + + :: + + + + + modes + + + + + :: + + + + + + ProofFormat + + + + + + + + format + + + + ) + + +  + +
    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + enum + + + + + + + class + + + + + + + + cvc5 + + + + + :: + + + + + modes + + + + + :: + + + + + + + FindSynthTarget + + + + +  + +
    +
    +
    +

    + Find synthesis targets, used as an argument to + + + Solver::findSynth + + + . These specify various kinds of terms that can be found by this method. +

    +

    + + Values: + +

    +
    +
    + + + + + + + + + enumerator + + + + + + + + ENUM + + + + +  + +
    +
    +
    +

    + Find the next term in the enumeration of the target grammar. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + REWRITE + + + + +  + +
    +
    +
    +

    + Find a pair of terms (t,s) in the target grammar which are equivalent but do not rewrite to the same term in the given rewriter (&#8212;sygus-rewrite=MODE). If so, the equality (= t s) is returned by findSynth. +

    +

    + This can be used to synthesize rewrite rules. Note if the rewriter is set to none (&#8212;sygus-rewrite=none), this indicates a possible rewrite when implementing a rewriter from scratch. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + REWRITE_UNSOUND + + + + +  + +
    +
    +
    +

    + Find a term t in the target grammar which rewrites to a term s that is not equivalent to it. If so, the equality (= t s) is returned by findSynth. +

    +

    + This can be used to test the correctness of the given rewriter. Any returned rewrite indicates an unsoundness in the given rewriter. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + REWRITE_INPUT + + + + +  + +
    +
    +
    +

    + Find a rewrite between pairs of terms (t,s) that are matchable with terms in the input assertions where t and s are equivalent but do not rewrite to the same term in the given rewriter (&#8212;sygus-rewrite=MODE). +

    +

    + This can be used to synthesize rewrite rules that apply to the current problem. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + QUERY + + + + +  + +
    +
    +
    +

    + Find a query over the given grammar. If the given grammar generates terms that are not Boolean, we consider equalities over terms from the given grammar. +

    +

    + The algorithm for determining which queries to generate is configured by &#8212;sygus-query-gen=MODE. Queries that are internally solved can be filtered by the option &#8212;sygus-query-gen-filter-solved. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + + cvc5 + + + + + :: + + + + + modes + + + + + :: + + + + + + + operator + + + + + << + + + + + ( + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + out + + + , + + + + FindSynthTarget + + + + + + + + target + + + + ) + + +  + +
    +
    +
    +

    + Serialize a FindSynthTarget to given stream. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + out + + – The output stream +

      +
    • +
    • +

      + + target + + – The synthesis find target. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The output stream +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + string + + + + + + + + std + + + + + :: + + + + + + + to_string + + + + + ( + + + + cvc5 + + + + + :: + + + + + modes + + + + + :: + + + + + + FindSynthTarget + + + + + + + + target + + + + ) + + +  + +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/enums/proofrule.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/enums/proofrule.html new file mode 100644 index 0000000000..8ad4c78b4b --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/enums/proofrule.html @@ -0,0 +1,28455 @@ + + + + + + + + + + + ProofRule and ProofRewriteRule — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + ProofRule and ProofRewriteRule + +  + +

    +

    + Enum class + + + + ProofRule + + + + captures the reasoning steps +performed by the SAT solver, the theory solvers and the preprocessor. It +represents the inference rules used to derive conclusions within a proof. +

    +

    + Enum class + + + + ProofRewriteRule + + + + pertains to +rewrites performed on terms. These identifiers are arguments of the proof rules + + + + THEORY_REWRITE + + + + and + + + + DSL_REWRITE + + + + . +

    +
    + +
    +
    +
    + + + + + + + + + enum + + + + + + + class + + + + + + + + cvc5 + + + + + :: + + + + + + + ProofRule + + + + +  + +
    +
    +
    +

    +

    +

    + An enumeration for proof rules. This enumeration is analogous to Kind for +Node objects. +

    +

    + All proof rules are given as inference rules, presented in the following +form: +

    +
    + \[\texttt{RULENAME}: +\inferruleSC{\varphi_1 \dots \varphi_n \mid t_1 \dots t_m}{\psi}{if $C$}\] +
    +

    + where we call + + \(\varphi_i\) + + its premises or children, + + \(t_i\) + + its +arguments, + + \(\psi\) + + its conclusion, and + + \(C\) + + its side condition. +Alternatively, we can write the application of a proof rule as + + + (RULENAME + + + F1 + + + ... + + + Fn + + + :args + + + t1 + + + ... + + + tm) + + + , omitting the conclusion +(since it can be uniquely determined from premises and arguments). +Note that premises are sometimes given as proofs, i.e., application of +proof rules, instead of formulas. This abuses the notation to see proof +rule applications and their conclusions interchangeably. +

    +

    + Conceptually, the following proof rules form a calculus whose target +user is the Node-level theory solvers. This means that the rules below +are designed to reason about, among other things, common operations on Node +objects like Rewriter::rewrite or Node::substitute. It is intended to be +translated or printed in other formats. +

    +

    + The following ProofRule values include core rules and those categorized by +theory, including the theory of equality. +

    +

    + The “core rules” include two distinguished rules which have special status: +(1) + + + + ASSUME + + + + , which represents an +open leaf in a proof; and +(2) + + + + SCOPE + + + + , which encloses a scope +(a subproof) with a set of scoped assumptions. +The core rules additionally correspond to generic operations that are done +internally on nodes, e.g., calling + + Rewriter::rewrite() + + . +

    +

    + Rules with prefix + + + MACRO_ + + + are those that can be defined in terms of other +rules. These exist for convenience and can be replaced by their definition +in post-processing. +

    +

    + + Values: + +

    +
    +
    + + + + + + + + + enumerator + + + + + + + + ASSUME + + + + +  + +
    +
    +
    +

    +

    +

    + + Assumption (a leaf) + +

    +
    + \[\inferrule{- \mid F}{F}\] +
    +

    + This rule has special status, in that an application of assume is an +open leaf in a proof that is not (yet) justified. An assume leaf is +analogous to a free variable in a term, where we say “F is a free +assumption in proof P” if it contains an application of F that is not +bound by + + + + SCOPE + + + + (see below). +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SCOPE + + + + +  + +
    +
    +
    +

    +

    +

    + + Scope (a binder for assumptions) + +

    +
    + \[\inferruleSC{F \mid F_1 \dots F_n}{(F_1 \land \dots \land F_n) +\Rightarrow F}{if $F\neq\bot$} \textrm{ or } \inferruleSC{F \mid F_1 +\dots F_n}{\neg (F_1 \land \dots \land F_n)}{if $F=\bot$}\] +
    +

    + This rule has a dual purpose with + + + + ASSUME + + + + . It is a way to close +assumptions in a proof. We require that + + \(F_1 \dots F_n\) + + are free +assumptions in P and say that + + \(F_1 \dots F_n\) + + are not free in + + + (SCOPE + + + P) + + + . In other words, they are bound by this application. For +example, the proof node: + + + (SCOPE + + + (ASSUME + + + F) + + + :args + + + F) + + + has the conclusion + + \(F \Rightarrow F\) + + and has no free assumptions. +More generally, a proof with no free assumptions always concludes a valid +formula. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SUBS + + + + +  + +
    +
    +
    +

    +

    +

    + + Builtin theory – Substitution + +

    +
    + \[\inferrule{F_1 \dots F_n \mid t, ids?}{t = t \circ \sigma_{ids}(F_n) +\circ \cdots \circ \sigma_{ids}(F_1)}\] +
    +

    + where + + \(\sigma_{ids}(F_i)\) + + are substitutions, which notice are applied +in reverse order. Notice that + + \(ids\) + + is a MethodId identifier, which +determines how to convert the formulas + + \(F_1 \dots F_n\) + + into +substitutions. It is an optional argument, where by default the premises +are equalities of the form + + (= x y) + + and converted into substitutions + + \(x\mapsto y\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + MACRO_REWRITE + + + + +  + +
    +
    +
    +

    +

    +

    + + Builtin theory – Rewrite + +

    +
    + \[\inferrule{- \mid t, idr}{t = \texttt{rewrite}_{idr}(t)}\] +
    +

    + where + + \(idr\) + + is a MethodId identifier, which determines the kind of +rewriter to apply, e.g. Rewriter::rewrite. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + EVALUATE + + + + +  + +
    +
    +
    +

    +

    +

    + + Builtin theory – Evaluate + +

    +
    + \[\inferrule{- \mid t}{t = \texttt{evaluate}(t)}\] +
    +

    + where + + \(\texttt{evaluate}\) + + is implemented by calling the method + + \(\texttt{Evalutor::evaluate}\) + + in + + theory/evaluator.h + + with an +empty substitution. +Note this is equivalent to: + + + (REWRITE + + + t + + + MethodId::RW_EVALUATE) + + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ACI_NORM + + + + +  + +
    +
    +
    +

    +

    +

    + + Builtin theory – associative/commutative/idempotency/identity normalization + +

    +
    + \[\inferrule{- \mid t = s}{t = s}\] +
    +

    + where + + \(\texttt{expr::isACNorm(t, s)} = \top\) + + . For details, see + + expr/nary_term_util.h + + . +This method normalizes currently based on two kinds of operators: +(1) those that are associative, commutative, idempotent, and have an +identity element (examples are or, and, bvand), +(2) those that are associative and have an identity element (examples +are str.++, re.++). +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + MACRO_SR_EQ_INTRO + + + + +  + +
    +
    +
    +

    +

    +

    + + Builtin theory – Substitution + Rewriting equality introduction + +

    +

    + In this rule, we provide a term + + \(t\) + + and conclude that it is equal to +its rewritten form under a (proven) substitution. +

    +
    + \[\inferrule{F_1 \dots F_n \mid t, (ids (ida (idr)?)?)?}{t = +\texttt{rewrite}_{idr}(t \circ \sigma_{ids, ida}(F_n) \circ \cdots \circ +\sigma_{ids, ida}(F_1))}\] +
    +

    + In other words, from the point of view of Skolem forms, this rule +transforms + + \(t\) + + to + + \(t'\) + + by standard substitution + rewriting. +

    +

    + The arguments + + \(ids\) + + , + + \(ida\) + + and + + \(idr\) + + are optional and +specify the identifier of the substitution, the substitution application +and rewriter respectively to be used. For details, see + + theory/builtin/proof_checker.h + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + MACRO_SR_PRED_INTRO + + + + +  + +
    +
    +
    +

    +

    +

    + + Builtin theory – Substitution + Rewriting predicate introduction + +

    +

    + In this rule, we provide a formula + + \(F\) + + and conclude it, under the +condition that it rewrites to true under a proven substitution. +

    +
    + \[\inferrule{F_1 \dots F_n \mid F, (ids (ida (idr)?)?)?}{F}\] +
    +

    + where + + \(\texttt{rewrite}_{idr}(F \circ \sigma_{ids, ida}(F_n) \circ +\cdots \circ \sigma_{ids, ida}(F_1)) = \top\) + + and + + \(ids\) + + and + + \(idr\) + + are method identifiers. +

    +

    + More generally, this rule also holds when + + \(\texttt{Rewriter::rewrite}(\texttt{toOriginal}(F')) = \top\) + + where + + \(F'\) + + is the result of the left hand side of the equality above. +Here, notice that we apply rewriting on the original form of + + \(F'\) + + , +meaning that this rule may conclude an + + \(F\) + + whose Skolem form is +justified by the definition of its (fresh) Skolem variables. For example, +this rule may justify the conclusion + + \(k = t\) + + where + + \(k\) + + is the +purification Skolem for + + \(t\) + + , e.g. where the original form of + + \(k\) + + is + + \(t\) + + . +

    +

    + Furthermore, notice that the rewriting and substitution is applied only +within the side condition, meaning the rewritten form of the original form +of + + \(F\) + + does not escape this rule. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + MACRO_SR_PRED_ELIM + + + + +  + +
    +
    +
    +

    +

    +

    + + Builtin theory – Substitution + Rewriting predicate elimination + +

    +
    + \[\inferrule{F, F_1 \dots F_n \mid (ids (ida +(idr)?)?)?}{\texttt{rewrite}_{idr}(F \circ \sigma_{ids, ida}(F_n) \circ +\cdots \circ \sigma_{ids, ida}(F_1))}\] +
    +

    + where + + \(ids\) + + and + + \(idr\) + + are method identifiers. +

    +

    + We rewrite only on the Skolem form of + + \(F\) + + , similar to + + + + MACRO_SR_EQ_INTRO + + + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + MACRO_SR_PRED_TRANSFORM + + + + +  + +
    +
    +
    +

    +

    +

    + + Builtin theory – Substitution + Rewriting predicate elimination + +

    +
    + \[\inferrule{F, F_1 \dots F_n \mid G, (ids (ida (idr)?)?)?}{G}\] +
    +

    + where +

    +
    + \[\begin{split}\texttt{rewrite}_{idr}(F \circ \sigma_{ids, ida}(F_n) \circ\cdots \circ \sigma_{ids, ida}(F_1)) =\\ \texttt{rewrite}_{idr}(G \circ \sigma_{ids, ida}(F_n) \circ \cdots \circ \sigma_{ids, ida}(F_1))\end{split}\] +
    +

    + More generally, this rule also holds when: + + \(\texttt{Rewriter::rewrite}(\texttt{toOriginal}(F')) = \texttt{Rewriter::rewrite}(\texttt{toOriginal}(G'))\) + + where + + \(F'\) + + and + + \(G'\) + + are the result of each side of the equation +above. Here, original forms are used in a similar manner to + + + + MACRO_SR_PRED_INTRO + + + + above. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ENCODE_EQ_INTRO + + + + +  + +
    +
    +
    +

    +

    +

    + + Builtin theory – Encode equality introduction + +

    +
    + \[\inferrule{- \mid t}{t=t'}\] +
    +

    + where + + \(t\) + + and + + \(t'\) + + are equivalent up to their encoding in an +external proof format. +

    +

    + More specifically, it is the case that + + \(\texttt{RewriteDbNodeConverter::postConvert}(t) = t;\) + + . +This conversion method for instance may drop user patterns from quantified +formulas or change the representation of + + \(t\) + + in a way that is a +no-op in external proof formats. +

    +

    + Note this rule can be treated as a + + + + REFL + + + + when appropriate in +external proof formats. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + DSL_REWRITE + + + + +  + +
    +
    +
    +

    +

    +

    + + Builtin theory – DSL rewrite + +

    +
    + \[\inferrule{F_1 \dots F_n \mid id t_1 \dots t_n}{F}\] +
    +

    + where + + id + + is a + + + + ProofRewriteRule + + + + whose definition in the +RARE DSL is + + \(\forall x_1 \dots x_n. (G_1 \wedge G_n) \Rightarrow G\) + + where for + + \(i=1, \dots n\) + + , we have that + + \(F_i = \sigma(G_i)\) + + and + + \(F = \sigma(G)\) + + where + + \(\sigma\) + + is the substitution + + \(\{x_1\mapsto t_1,\dots,x_n\mapsto t_n\}\) + + . +

    +

    + Notice that the application of the substitution takes into account the +possible list semantics of variables + + \(x_1 \ldots x_n\) + + . If + + \(x_i\) + + is a variable with list semantics, then + + \(t_i\) + + denotes a +list of terms. The substitution implemented by + + \(\texttt{expr::narySubstitute}\) + + (for details, see + + expr/nary_term_util.h + + ) which replaces each + + \(x_i\) + + with the +list + + \(t_i\) + + in its place. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + THEORY_REWRITE + + + + +  + +
    +
    +
    +

    +

    +

    + + Other theory rewrite rules + +

    +
    + \[\inferrule{- \mid id, t = t'}{t = t'}\] +
    +

    + where + + id + + is the + + + + ProofRewriteRule + + + + of the theory rewrite +rule which transforms + + \(t\) + + to + + \(t'\) + + . +

    +

    + In contrast to + + + + DSL_REWRITE + + + + , theory rewrite rules used by +this proof rule are not necessarily expressible in RARE. Each rule that can +be used in this proof rule are documented explicitly in cases within the + + + + ProofRewriteRule + + + + enum. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ITE_EQ + + + + +  + +
    +
    +
    +

    +

    +

    + + Processing rules – If-then-else equivalence + +

    +
    + \[\inferrule{- \mid \ite{C}{t_1}{t_2}}{\ite{C}{((\ite{C}{t_1}{t_2}) = t_1)}{((\ite{C}{t_1}{t_2}) = t_2)}}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + TRUST + + + + +  + +
    +
    +
    +

    +

    +

    + + Trusted rule + +

    +
    + \[\inferrule{F_1 \dots F_n \mid tid, F, ...}{F}\] +
    +

    + where + + \(tid\) + + is an identifier and + + \(F\) + + is a formula. This rule +is used when a formal justification of an inference step cannot be provided. +The formulas + + \(F_1 \dots F_n\) + + refer to a set of formulas that +entail + + \(F\) + + , which may or may not be provided. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + TRUST_THEORY_REWRITE + + + + +  + +
    +
    +
    +

    +

    +

    + + Trusted rules – Theory rewrite + +

    +
    + \[\inferrule{- \mid F, tid, rid}{F}\] +
    +

    + where + + \(F\) + + is an equality of the form + + \(t = t'\) + + where + + \(t'\) + + is obtained by applying the kind of rewriting given by the method +identifier + + \(rid\) + + , which is one of: + + + RW_REWRITE_THEORY_PRE + + + , + + + RW_REWRITE_THEORY_POST + + + , + + + RW_REWRITE_EQ_EXT + + + . Notice that the checker for this rule does not +replay the rewrite to ensure correctness, since theory rewriter methods are +not static. For example, the quantifiers rewriter involves constructing new +bound variables that are not guaranteed to be consistent on each call. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SAT_REFUTATION + + + + +  + +
    +
    +
    +

    +

    +

    + + SAT Refutation for assumption-based unsat cores + +

    +
    + \[\inferrule{F_1 \dots F_n \mid -}{\bot}\] +
    +

    + where + + \(F_1 \dots F_n\) + + correspond to the unsat core determined by the +SAT solver. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + DRAT_REFUTATION + + + + +  + +
    +
    +
    +

    +

    +

    + + DRAT Refutation + +

    +
    + \[\inferrule{F_1 \dots F_n \mid D, P}{\bot}\] +
    +

    + where + + \(F_1 \dots F_n\) + + correspond to the clauses in the +DIMACS file given by filename + + D + + and + + P + + is a filename of a file storing +a DRAT proof. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SAT_EXTERNAL_PROVE + + + + +  + +
    +
    +
    +

    +

    +

    + + SAT external prove Refutation + +

    +
    + \[\inferrule{F_1 \dots F_n \mid D}{\bot}\] +
    +

    + where + + \(F_1 \dots F_n\) + + correspond to the input clauses in the +DIMACS file + + D + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + RESOLUTION + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – Resolution + +

    +
    + \[\inferrule{C_1, C_2 \mid pol, L}{C}\] +
    +

    + where +

    +
      +
    • +

      + + \(C_1\) + + and + + \(C_2\) + + are nodes viewed as clauses, i.e., either an + + + OR + + + node with each children viewed as a literal or a node viewed as a +literal. Note that an + + + OR + + + node could also be a literal. +

      +
    • +
    • +

      + + \(pol\) + + is either true or false, representing the polarity of the +pivot on the first clause +

      +
    • +
    • +

      + + \(L\) + + is the pivot of the resolution, which occurs as is (resp. under +a + + + NOT + + + ) in + + \(C_1\) + + and negatively (as is) in + + \(C_2\) + + if + + \(pol = \top\) + + ( + + \(pol = \bot\) + + ). +

      +
    • +
    +

    + + \(C\) + + is a clause resulting from collecting all the literals in + + \(C_1\) + + , minus the first occurrence of the pivot or its negation, and + + \(C_2\) + + , minus the first occurrence of the pivot or its negation, +according to the policy above. If the resulting clause has a single +literal, that literal itself is the result; if it has no literals, then the +result is false; otherwise it’s an + + + OR + + + node of the resulting literals. +

    +

    + Note that it may be the case that the pivot does not occur in the +clauses. In this case the rule is not unsound, but it does not correspond +to resolution but rather to a weakening of the clause that did not have a +literal eliminated. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CHAIN_RESOLUTION + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – N-ary Resolution + +

    +
    + \[\inferrule{C_1 \dots C_n \mid (pol_1 \dots pol_{n-1}), (L_1 \dots L_{n-1})}{C}\] +
    +

    + where +

    +
      +
    • +

      + let + + \(C_1 \dots C_n\) + + be nodes viewed as clauses, as defined above +

      +
    • +
    • +

      + let + + \(C_1 \diamond_{L,pol} C_2\) + + represent the resolution of + + \(C_1\) + + with + + \(C_2\) + + with pivot + + \(L\) + + and polarity + + \(pol\) + + , as defined above +

      +
    • +
    • +

      + let + + \(C_1' = C_1\) + + , +

      +
    • +
    • +

      + for each + + \(i > 1\) + + , let + + \(C_i' = C_{i-1} \diamond_{L_{i-1}, pol_{i-1}} C_i'\) + +

      +
    • +
    +

    + Note the list of polarities and pivots are provided as s-expressions. +

    +

    + The result of the chain resolution is + + \(C = C_n'\) + +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + FACTORING + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – Factoring + +

    +
    + \[\inferrule{C_1 \mid -}{C_2}\] +
    +

    + where + + \(C_2\) + + is the clause + + \(C_1\) + + , but every occurrence of a literal +after its first occurrence is omitted. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + REORDERING + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – Reordering + +

    +
    + \[\inferrule{C_1 \mid C_2}{C_2}\] +
    +

    + where +the multiset representations of + + \(C_1\) + + and + + \(C_2\) + + are the same. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + MACRO_RESOLUTION + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – N-ary Resolution + Factoring + Reordering + +

    +
    + \[\inferrule{C_1 \dots C_n \mid C, pol_1,L_1 \dots pol_{n-1},L_{n-1}}{C}\] +
    +

    + where +

    +
      +
    • +

      + let + + \(C_1 \dots C_n\) + + be nodes viewed as clauses, as defined in + + + + RESOLUTION + + + +

      +
    • +
    • +

      + let + + \(C_1 \diamond_{L,\mathit{pol}} C_2\) + + represent the resolution of + + \(C_1\) + + with + + \(C_2\) + + with pivot + + \(L\) + + and polarity + + \(pol\) + + , as defined in + + + + RESOLUTION + + + +

      +
    • +
    • +

      + let + + \(C_1'\) + + be equal, in its set representation, to + + \(C_1\) + + , +

      +
    • +
    • +

      + for each + + \(i > 1\) + + , let + + \(C_i'\) + + be equal, in its set +representation, to + + \(C_{i-1} \diamond_{L_{i-1},\mathit{pol}_{i-1}} +C_i'\) + +

      +
    • +
    +

    + The result of the chain resolution is + + \(C\) + + , which is equal, in its set +representation, to + + \(C_n'\) + +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + MACRO_RESOLUTION_TRUST + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – N-ary Resolution + Factoring + Reordering unchecked + +

    +

    + Same as + + + + MACRO_RESOLUTION + + + + , but +not checked by the internal proof checker. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SPLIT + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – Split + +

    +
    + \[\inferrule{- \mid F}{F \lor \neg F}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + EQ_RESOLVE + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – Equality resolution + +

    +
    + \[\inferrule{F_1, (F_1 = F_2) \mid -}{F_2}\] +
    +

    + Note this can optionally be seen as a macro for + + + + EQUIV_ELIM1 + + + + + + + + + RESOLUTION + + + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + MODUS_PONENS + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – Modus Ponens + +

    +
    + \[\inferrule{F_1, (F_1 \rightarrow F_2) \mid -}{F_2}\] +
    +

    + Note this can optionally be seen as a macro for + + + + IMPLIES_ELIM + + + + + + + + + RESOLUTION + + + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + NOT_NOT_ELIM + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – Double negation elimination + +

    +
    + \[\inferrule{\neg (\neg F) \mid -}{F}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CONTRA + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – Contradiction + +

    +
    + \[\inferrule{F, \neg F \mid -}{\bot}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + AND_ELIM + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – And elimination + +

    +
    + \[\inferrule{(F_1 \land \dots \land F_n) \mid i}{F_i}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + AND_INTRO + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – And introduction + +

    +
    + \[\inferrule{F_1 \dots F_n \mid -}{(F_1 \land \dots \land F_n)}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + NOT_OR_ELIM + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – Not Or elimination + +

    +
    + \[\inferrule{\neg(F_1 \lor \dots \lor F_n) \mid i}{\neg F_i}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + IMPLIES_ELIM + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – Implication elimination + +

    +
    + \[\inferrule{F_1 \rightarrow F_2 \mid -}{\neg F_1 \lor F_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + NOT_IMPLIES_ELIM1 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – Not Implication elimination version 1 + +

    +
    + \[\inferrule{\neg(F_1 \rightarrow F_2) \mid -}{F_1}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + NOT_IMPLIES_ELIM2 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – Not Implication elimination version 2 + +

    +
    + \[\inferrule{\neg(F_1 \rightarrow F_2) \mid -}{\neg F_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + EQUIV_ELIM1 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – Equivalence elimination version 1 + +

    +
    + \[\inferrule{F_1 = F_2 \mid -}{\neg F_1 \lor F_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + EQUIV_ELIM2 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – Equivalence elimination version 2 + +

    +
    + \[\inferrule{F_1 = F_2 \mid -}{F_1 \lor \neg F_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + NOT_EQUIV_ELIM1 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – Not Equivalence elimination version 1 + +

    +
    + \[\inferrule{F_1 \neq F_2 \mid -}{F_1 \lor F_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + NOT_EQUIV_ELIM2 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – Not Equivalence elimination version 2 + +

    +
    + \[\inferrule{F_1 \neq F_2 \mid -}{\neg F_1 \lor \neg F_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + XOR_ELIM1 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – XOR elimination version 1 + +

    +
    + \[\inferrule{F_1 \xor F_2 \mid -}{F_1 \lor F_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + XOR_ELIM2 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – XOR elimination version 2 + +

    +
    + \[\inferrule{F_1 \xor F_2 \mid -}{\neg F_1 \lor \neg F_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + NOT_XOR_ELIM1 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – Not XOR elimination version 1 + +

    +
    + \[\inferrule{\neg(F_1 \xor F_2) \mid -}{F_1 \lor \neg F_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + NOT_XOR_ELIM2 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – Not XOR elimination version 2 + +

    +
    + \[\inferrule{\neg(F_1 \xor F_2) \mid -}{\neg F_1 \lor F_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ITE_ELIM1 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – ITE elimination version 1 + +

    +
    + \[\inferrule{(\ite{C}{F_1}{F_2}) \mid -}{\neg C \lor F_1}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ITE_ELIM2 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – ITE elimination version 2 + +

    +
    + \[\inferrule{(\ite{C}{F_1}{F_2}) \mid -}{C \lor F_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + NOT_ITE_ELIM1 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – Not ITE elimination version 1 + +

    +
    + \[\inferrule{\neg(\ite{C}{F_1}{F_2}) \mid -}{\neg C \lor \neg F_1}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + NOT_ITE_ELIM2 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – Not ITE elimination version 2 + +

    +
    + \[\inferrule{\neg(\ite{C}{F_1}{F_2}) \mid -}{C \lor \neg F_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + NOT_AND + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – De Morgan – Not And + +

    +
    + \[\inferrule{\neg(F_1 \land \dots \land F_n) \mid -}{\neg F_1 \lor \dots +\lor \neg F_n}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CNF_AND_POS + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – CNF – And Positive + +

    +
    + \[\inferrule{- \mid (F_1 \land \dots \land F_n), i}{\neg (F_1 \land \dots +\land F_n) \lor F_i}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CNF_AND_NEG + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – CNF – And Negative + +

    +
    + \[\inferrule{- \mid (F_1 \land \dots \land F_n)}{(F_1 \land \dots \land +F_n) \lor \neg F_1 \lor \dots \lor \neg F_n}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CNF_OR_POS + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – CNF – Or Positive + +

    +
    + \[\inferrule{- \mid (F_1 \lor \dots \lor F_n)}{\neg(F_1 \lor \dots \lor +F_n) \lor F_1 \lor \dots \lor F_n}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CNF_OR_NEG + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – CNF – Or Negative + +

    +
    + \[\inferrule{- \mid (F_1 \lor \dots \lor F_n), i}{(F_1 \lor \dots \lor F_n) +\lor \neg F_i}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CNF_IMPLIES_POS + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – CNF – Implies Positive + +

    +
    + \[\inferrule{- \mid F_1 \rightarrow F_2}{\neg(F_1 \rightarrow F_2) \lor \neg F_1 +\lor F_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CNF_IMPLIES_NEG1 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – CNF – Implies Negative 1 + +

    +
    + \[\inferrule{- \mid F_1 \rightarrow F_2}{(F_1 \rightarrow F_2) \lor F_1}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CNF_IMPLIES_NEG2 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – CNF – Implies Negative 2 + +

    +
    + \[\inferrule{- \mid F_1 \rightarrow F_2}{(F_1 \rightarrow F_2) \lor \neg F_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CNF_EQUIV_POS1 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – CNF – Equiv Positive 1 + +

    +
    + \[\inferrule{- \mid F_1 = F_2}{F_1 \neq F_2 \lor \neg F_1 \lor F_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CNF_EQUIV_POS2 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – CNF – Equiv Positive 2 + +

    +
    + \[\inferrule{- \mid F_1 = F_2}{F_1 \neq F_2 \lor F_1 \lor \neg F_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CNF_EQUIV_NEG1 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – CNF – Equiv Negative 1 + +

    +
    + \[\inferrule{- \mid F_1 = F_2}{(F_1 = F_2) \lor F_1 \lor F_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CNF_EQUIV_NEG2 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – CNF – Equiv Negative 2 + +

    +
    + \[\inferrule{- \mid F_1 = F_2}{(F_1 = F_2) \lor \neg F_1 \lor \neg F_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CNF_XOR_POS1 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – CNF – XOR Positive 1 + +

    +
    + \[\inferrule{- \mid F_1 \xor F_2}{\neg(F_1 \xor F_2) \lor F_1 \lor F_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CNF_XOR_POS2 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – CNF – XOR Positive 2 + +

    +
    + \[\inferrule{- \mid F_1 \xor F_2}{\neg(F_1 \xor F_2) \lor \neg F_1 \lor +\neg F_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CNF_XOR_NEG1 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – CNF – XOR Negative 1 + +

    +
    + \[\inferrule{- \mid F_1 \xor F_2}{(F_1 \xor F_2) \lor \neg F_1 \lor F_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CNF_XOR_NEG2 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – CNF – XOR Negative 2 + +

    +
    + \[\inferrule{- \mid F_1 \xor F_2}{(F_1 \xor F_2) \lor F_1 \lor \neg F_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CNF_ITE_POS1 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – CNF – ITE Positive 1 + +

    +
    + \[\inferrule{- \mid (\ite{C}{F_1}{F_2})}{\neg(\ite{C}{F_1}{F_2}) \lor \neg +C \lor F_1}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CNF_ITE_POS2 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – CNF – ITE Positive 2 + +

    +
    + \[\inferrule{- \mid (\ite{C}{F_1}{F_2})}{\neg(\ite{C}{F_1}{F_2}) \lor C +\lor F_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CNF_ITE_POS3 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – CNF – ITE Positive 3 + +

    +
    + \[\inferrule{- \mid (\ite{C}{F_1}{F_2})}{\neg(\ite{C}{F_1}{F_2}) \lor F_1 +\lor F_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CNF_ITE_NEG1 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – CNF – ITE Negative 1 + +

    +
    + \[\inferrule{- \mid (\ite{C}{F_1}{F_2})}{(\ite{C}{F_1}{F_2}) \lor \neg C +\lor \neg F_1}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CNF_ITE_NEG2 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – CNF – ITE Negative 2 + +

    +
    + \[\inferrule{- \mid (\ite{C}{F_1}{F_2})}{(\ite{C}{F_1}{F_2}) \lor C \lor +\neg F_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CNF_ITE_NEG3 + + + + +  + +
    +
    +
    +

    +

    +

    + + Boolean – CNF – ITE Negative 3 + +

    +
    + \[\inferrule{- \mid (\ite{C}{F_1}{F_2})}{(\ite{C}{F_1}{F_2}) \lor \neg F_1 +\lor \neg F_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + REFL + + + + +  + +
    +
    +
    +

    +

    +

    + + Equality – Reflexivity + +

    +
    + \[\inferrule{-\mid t}{t = t}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SYMM + + + + +  + +
    +
    +
    +

    +

    +

    + + Equality – Symmetry + +

    +
    + \[\inferrule{t_1 = t_2\mid -}{t_2 = t_1}\] +
    +

    + or +

    +
    + \[\inferrule{t_1 \neq t_2\mid -}{t_2 \neq t_1}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + TRANS + + + + +  + +
    +
    +
    +

    +

    +

    + + Equality – Transitivity + +

    +
    + \[\inferrule{t_1=t_2,\dots,t_{n-1}=t_n\mid -}{t_1 = t_n}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CONG + + + + +  + +
    +
    +
    +

    +

    +

    + + Equality – Congruence + +

    +
    + \[\inferrule{t_1=s_1,\dots,t_n=s_n\mid k, f?}{k(f?, t_1,\dots, t_n) = +k(f?, s_1,\dots, s_n)}\] +
    +

    + where + + \(k\) + + is the application kind. Notice that + + \(f\) + + must be +provided iff + + \(k\) + + is a parameterized kind, e.g. + + cvc5::Kind::APPLY_UF + + . The actual node for + + \(k\) + + is constructible via + + + ProofRuleChecker::mkKindNode + + + . +If + + \(k\) + + is a binder kind (e.g. + + + cvc5::Kind::FORALL + + + ) then + + \(f\) + + is a term of kind + + + cvc5::Kind::VARIABLE_LIST + + + denoting the variables bound by both sides of the conclusion. +This rule is used for kinds that have a fixed arity, such as + + + cvc5::Kind::ITE + + + , + + + cvc5::Kind::EQUAL + + + , and so on. It is also used for + + + cvc5::Kind::APPLY_UF + + + where + + \(f\) + + must be provided. +It is not used for equality between + + + cvc5::Kind::HO_APPLY + + + terms, which should +use the + + + + HO_CONG + + + + proof rule. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + NARY_CONG + + + + +  + +
    +
    +
    +

    +

    +

    + + Equality – N-ary Congruence + +

    +
    + \[\inferrule{t_1=s_1,\dots,t_n=s_n\mid k}{k(t_1,\dots, t_n) = +k(s_1,\dots, s_n)}\] +
    +

    + where + + \(k\) + + is the application kind. The actual node for + + \(k\) + + is +constructible via + + + ProofRuleChecker::mkKindNode + + + . This rule is used for +kinds that have variadic arity, such as + + + cvc5::Kind::AND + + + , + + + cvc5::Kind::PLUS + + + and so on. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + TRUE_INTRO + + + + +  + +
    +
    +
    +

    +

    +

    + + Equality – True intro + +

    +
    + \[\inferrule{F\mid -}{F = \top}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + TRUE_ELIM + + + + +  + +
    +
    +
    +

    +

    +

    + + Equality – True elim + +

    +
    + \[\inferrule{F=\top\mid -}{F}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + FALSE_INTRO + + + + +  + +
    +
    +
    +

    +

    +

    + + Equality – False intro + +

    +
    + \[\inferrule{\neg F\mid -}{F = \bot}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + FALSE_ELIM + + + + +  + +
    +
    +
    +

    +

    +

    + + Equality – False elim + +

    +
    + \[\inferrule{F=\bot\mid -}{\neg F}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + HO_APP_ENCODE + + + + +  + +
    +
    +
    +

    +

    +

    + + Equality – Higher-order application encoding + +

    +
    + \[\inferrule{-\mid t}{t=t'}\] +
    +

    + where + + t’ + + is the higher-order application that is equivalent to + + t + + , +as implemented by + + + uf::TheoryUfRewriter::getHoApplyForApplyUf + + + . +For details see + + theory/uf/theory_uf_rewriter.h + +

    +

    + For example, this rule concludes + + \(f(x,y) = @( @(f,x), y)\) + + , where + + \(@\) + + is the + + + HO_APPLY + + + kind. +

    +

    + Note this rule can be treated as a + + + + REFL + + + + when appropriate in +external proof formats. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + HO_CONG + + + + +  + +
    +
    +
    +

    +

    +

    + + Equality – Higher-order congruence + +

    +
    + \[\inferrule{f=g, t_1=s_1,\dots,t_n=s_n\mid k}{k(f, t_1,\dots, t_n) = +k(g, s_1,\dots, s_n)}\] +
    +

    + Notice that this rule is only used when the application kind + + \(k\) + + is +either + + cvc5::Kind::APPLY_UF + + or + + cvc5::Kind::HO_APPLY + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARRAYS_READ_OVER_WRITE + + + + +  + +
    +
    +
    +

    +

    +

    + + Arrays – Read over write + +

    +
    + \[\inferrule{i_1 \neq i_2\mid \mathit{select}(\mathit{store}(a,i_1,e),i_2)} +{\mathit{select}(\mathit{store}(a,i_1,e),i_2) = \mathit{select}(a,i_2)}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARRAYS_READ_OVER_WRITE_CONTRA + + + + +  + +
    +
    +
    +

    +

    +

    + + Arrays – Read over write, contrapositive + +

    +
    + \[\inferrule{\mathit{select}(\mathit{store}(a,i_2,e),i_1) \neq +\mathit{select}(a,i_1)\mid -}{i_1=i_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARRAYS_READ_OVER_WRITE_1 + + + + +  + +
    +
    +
    +

    +

    +

    + + Arrays – Read over write 1 + +

    +
    + \[\inferrule{-\mid \mathit{select}(\mathit{store}(a,i,e),i)} +{\mathit{select}(\mathit{store}(a,i,e),i)=e}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARRAYS_EXT + + + + +  + +
    +
    +
    +

    +

    +

    + + Arrays – Arrays extensionality + +

    +
    + \[\inferrule{a \neq b\mid -} +{\mathit{select}(a,k)\neq\mathit{select}(b,k)}\] +
    +

    + where + + \(k\) + + is the + + \(\texttt{ARRAY_DEQ_DIFF}\) + + skolem for + + (a, b) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + MACRO_BV_BITBLAST + + + + +  + +
    +
    +
    +

    +

    +

    + + Bit-vectors – (Macro) Bitblast + +

    +
    + \[\inferrule{-\mid t}{t = \texttt{bitblast}(t)}\] +
    +

    + where + + \(\texttt{bitblast}\) + + represents the result of the bit-blasted term as +a bit-vector consisting of the output bits of the bit-blasted circuit +representation of the term. Terms are bit-blasted according to the +strategies defined in + + theory/bv/bitblast/bitblast_strategies_template.h + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_BITBLAST_STEP + + + + +  + +
    +
    +
    +

    +

    +

    + + Bit-vectors – Bitblast bit-vector constant, variable, and terms + +

    +

    + For constant and variables: +

    +
    + \[\inferrule{-\mid t}{t = \texttt{bitblast}(t)}\] +
    +

    + For terms: +

    +
    + \[\inferrule{-\mid k(\texttt{bitblast}(t_1),\dots,\texttt{bitblast}(t_n))} +{k(\texttt{bitblast}(t_1),\dots,\texttt{bitblast}(t_n)) = +\texttt{bitblast}(t)}\] +
    +

    + where + + \(t\) + + is + + \(k(t_1,\dots,t_n)\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_EAGER_ATOM + + + + +  + +
    +
    +
    +

    +

    +

    + + Bit-vectors – Bit-vector eager atom + +

    +
    + \[\inferrule{-\mid F}{F = F[0]}\] +
    +

    + where + + \(F\) + + is of kind + + + BITVECTOR_EAGER_ATOM + + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + DT_SPLIT + + + + +  + +
    +
    +
    +

    +

    +

    + + Datatypes – Split + +

    +
    + \[\inferrule{-\mid t}{\mathit{is}_{C_1}(t)\vee\cdots\vee\mathit{is}_{C_n}(t)}\] +
    +

    + where + + \(C_1,\dots,C_n\) + + are all the constructors of the type of + + \(t\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + DT_CLASH + + + + +  + +
    +
    +
    +

    +

    +

    + + Datatypes – Clash + +

    +
    + \[\inferruleSC{\mathit{is}_{C_i}(t), \mathit{is}_{C_j}(t)\mid -}{\bot} +{if $i\neq j$}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SKOLEM_INTRO + + + + +  + +
    +
    +
    +

    +

    +

    + + Quantifiers – Skolem introduction + +

    +
    + \[\inferrule{-\mid k}{k = t}\] +
    +

    + where + + \(t\) + + is the unpurified form of skolem + + \(k\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SKOLEMIZE + + + + +  + +
    +
    +
    +

    +

    +

    + + Quantifiers – Skolemization + +

    +
    + \[\inferrule{\neg (\forall x_1\dots x_n.\> F)\mid -}{\neg F\sigma}\] +
    +

    + where + + \(\sigma\) + + maps + + \(x_1,\dots,x_n\) + + to their representative +skolems, which are skolems + + \(k_1,\dots,k_n\) + + . For each + + \(k_i\) + + , +its skolem identifier is + + + + QUANTIFIERS_SKOLEMIZE + + + + , +and its indices are + + \((\forall x_1\dots x_n.\> F)\) + + and + + \(x_i\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + INSTANTIATE + + + + +  + +
    +
    +
    +

    +

    +

    + + Quantifiers – Instantiation + +

    +
    + \[\inferrule{\forall x_1\dots x_n.\> F\mid (t_1 \dots t_n), (id\, (t)?)?} +{F\{x_1\mapsto t_1,\dots,x_n\mapsto t_n\}}\] +
    +

    + The list of terms to instantiate + + \((t_1 \dots t_n)\) + + is provided as +an s-expression as the first argument. The optional argument + + \(id\) + + indicates the inference id that caused the instantiation. The term + + \(t\) + + indicates an additional term (e.g. the trigger) associated with +the instantiation, which depends on the id. If the id has prefix + + + QUANTIFIERS_INST_E_MATCHING + + + , then + + \(t\) + + is the trigger that +generated the instantiation. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ALPHA_EQUIV + + + + +  + +
    +
    +
    +

    +

    +

    + + Quantifiers – Alpha equivalence + +

    +
    + \[\inferruleSC{-\mid F, (y_1 \ldots y_n), (z_1,\dots, z_n)} +{F = F\{y_1\mapsto z_1,\dots,y_n\mapsto z_n\}} +{if $y_1,\dots,y_n, z_1,\dots,z_n$ are unique bound variables}\] +
    +

    + Notice that this rule is correct only when + + \(z_1,\dots,z_n\) + + are not +contained in + + \(FV(F) \setminus \{ y_1,\dots, y_n \}\) + + , where + + \(FV(\varphi)\) + + are the free variables of + + \(\varphi\) + + . The internal +quantifiers proof checker does not currently check that this is the case. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + QUANT_VAR_REORDERING + + + + +  + +
    +
    +
    +

    +

    +

    + + Quantifiers – Variable reordering + +

    +
    + \[\inferrule{-\mid (\forall X.\> F) = (\forall Y.\> F)} +{(\forall X.\> F) = (\forall Y.\> F)}\] +
    +

    + where + + \(Y\) + + is a reordering of + + \(X\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SETS_SINGLETON_INJ + + + + +  + +
    +
    +
    +

    +

    +

    + + Sets – Singleton injectivity + +

    +
    + \[\inferrule{\mathit{set.singleton}(t) = \mathit{set.singleton}(s)\mid -}{t=s}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SETS_EXT + + + + +  + +
    +
    +
    +

    +

    +

    + + Sets – Sets extensionality + +

    +
    + \[\inferrule{a \neq b\mid -} +{\mathit{set.member}(k,a)\neq\mathit{set.member}(k,b)}\] +
    +

    + where + + \(k\) + + is the + + \(\texttt{SETS_DEQ_DIFF}\) + + skolem for + + (a, b) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SETS_FILTER_UP + + + + +  + +
    +
    +
    +

    +

    +

    + + Sets – Sets filter up + +

    +
    + \[\inferrule{\mathit{set.member}(x,a)\mid P} +{\mathit{set.member}(x, \mathit{set.filter}(P, a)) = P(x)}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SETS_FILTER_DOWN + + + + +  + +
    +
    +
    +

    +

    +

    + + Sets – Sets filter down + +

    +
    + \[\inferrule{\mathit{set.member}(x,\mathit{set.filter}(P, a))\mid -} +{\mathit{set.member}(x,a) \wedge P(x)}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CONCAT_EQ + + + + +  + +
    +
    +
    +

    +

    +

    + + Strings – Core rules – Concatenation equality + +

    +
    + \[\inferrule{(t_1\cdot\ldots \cdot t_n \cdot t) = (t_1 \cdot\ldots +\cdot t_n\cdot s)\mid b}{t = s}\] +
    +

    + where + + \(\cdot\) + + stands for string concatenation and + + \(b\) + + indicates +if the direction is reversed. +

    +

    + Notice that + + \(t\) + + or + + \(s\) + + may be empty, in which case they are +implicit in the concatenation above. For example, if the premise is + + \(x\cdot z = x\) + + , then this rule, with argument + + \(\bot\) + + , concludes + + \(z = \epsilon\) + + . +

    +

    + Also note that constants are split, such that for + + \((\mathsf{'abc'} +\cdot x) = (\mathsf{'a'} \cdot y)\) + + , this rule, with argument + + \(\bot\) + + , +concludes + + \((\mathsf{'bc'} \cdot x) = y\) + + . This splitting is done only +for constants such that + + + Word::splitConstant + + + returns non-null. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CONCAT_UNIFY + + + + +  + +
    +
    +
    +

    +

    +

    + + Strings – Core rules – Concatenation unification + +

    +
    + \[\inferrule{(t_1\cdot t_2) = (s_1 \cdot s_2),\, \mathit{len}(t_1) = +\mathit{len}(s_1)\mid \bot}{t_1 = s_1}\] +
    +

    + Alternatively for the reverse: +

    +
    + \[\inferrule{(t_1\cdot t_2) = (s_1 \cdot s_2),\, \mathit{len}(t_2) = +\mathit{len}(s_2)\mid \top}{t_2 = s_2}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CONCAT_CONFLICT + + + + +  + +
    +
    +
    +

    +

    +

    + + Strings – Core rules – Concatenation conflict + +

    +
    + \[\inferrule{(c_1\cdot t) = (c_2 \cdot s)\mid b}{\bot}\] +
    +

    + where + + \(b\) + + indicates if the direction is reversed, + + \(c_1,\,c_2\) + + are constants such that + + \(\texttt{Word::splitConstant}(c_1,c_2, +\mathit{index},b)\) + + is null, in other words, neither is a prefix of the +other. Note it may be the case that one side of the equality denotes the +empty string. +

    +

    + This rule is used exclusively for strings. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CONCAT_CONFLICT_DEQ + + + + +  + +
    +
    +
    +

    +

    +

    + + Strings – Core rules – Concatenation conflict for disequal characters + +

    +
    + \[\inferrule{(t_1\cdot t) = (s_1 \cdot s), t_1 \neq s_1 \mid b}{\bot}\] +
    +

    + where + + \(t_1\) + + and + + \(s_1\) + + are constants of length one, or otherwise one side +of the equality is the empty sequence and + + \(t_1\) + + or + + \(s_1\) + + corresponding to +that side is the empty sequence. +

    +

    + This rule is used exclusively for sequences. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CONCAT_SPLIT + + + + +  + +
    +
    +
    +

    +

    +

    + + Strings – Core rules – Concatenation split + +

    +
    + \[\inferruleSC{(t_1\cdot t_2) = (s_1 \cdot s_2),\, +\mathit{len}(t_1) \neq \mathit{len}(s_1)\mid b}{((t_1 = s_1\cdot r) +\vee (s_1 = t_1\cdot r)) \wedge r \neq \epsilon \wedge \mathit{len}(r)>0}{if $b=\bot$}\] +
    +

    + where + + \(r\) + + is the purification skolem for + + \(\mathit{ite}( +\mathit{len}(t_1) >= \mathit{len}(s_1), +\mathit{suf}(t_1,\mathit{len}(s_1)), +\mathit{suf}(s_1,\mathit{len}(t_1)))\) + + and + + \(\epsilon\) + + is the empty string (or sequence). +

    +
    + \[\inferruleSC{(t_1\cdot t_2) = (s_1 \cdot s_2),\, +\mathit{len}(t_2) \neq \mathit{len}(s_2)\mid b}{((t_2 = r \cdot s_2) +\vee (s_2 = r \cdot t_2)) \wedge r \neq \epsilon \wedge \mathit{len}(r)>0}{if $b=\top$}\] +
    +

    + where + + \(r\) + + is the purification Skolem for + + \(\mathit{ite}( +\mathit{len}(t_2) >= \mathit{len}(s_2), +\mathit{pre}(t_2,\mathit{len}(t_2) - \mathit{len}(s_2)), +\mathit{pre}(s_2,\mathit{len}(s_2) - \mathit{len}(t_2)))\) + + and + + \(\epsilon\) + + is the empty string (or sequence). +

    +

    + Above, + + \(\mathit{suf}(x,n)\) + + is shorthand for + + \(\mathit{substr}(x,n, \mathit{len}(x) - n)\) + + and + + \(\mathit{pre}(x,n)\) + + is shorthand for + + \(\mathit{substr}(x,0,n)\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CONCAT_CSPLIT + + + + +  + +
    +
    +
    +

    +

    +

    + + Strings – Core rules – Concatenation split for constants + +

    +
    + \[\inferrule{(t_1\cdot t_2) = (c \cdot s_2),\, +\mathit{len}(t_1) \neq 0\mid \bot}{(t_1 = c\cdot r)}\] +
    +

    + where + + \(r\) + + is the purification skolem for + + \(\mathit{suf}(t_1,1)\) + + . +

    +

    + Alternatively for the reverse: +

    +
    + \[\inferrule{(t_1\cdot t_2) = (s_1 \cdot c),\, +\mathit{len}(t_2) \neq 0\mid \top}{(t_2 = r\cdot c)}\] +
    +

    + where + + \(r\) + + is the purification skolem for + + \(\mathit{pre}(t_2,\mathit{len}(t_2) - 1)\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CONCAT_LPROP + + + + +  + +
    +
    +
    +

    +

    +

    + + Strings – Core rules – Concatenation length propagation + +

    +
    + \[\inferrule{(t_1\cdot t_2) = (s_1 \cdot s_2),\, +\mathit{len}(t_1) > \mathit{len}(s_1)\mid \bot}{(t_1 = s_1\cdot r)}\] +
    +

    + where + + \(r\) + + is the purification Skolem for + + \(\mathit{ite}( +\mathit{len}(t_1) >= \mathit{len}(s_1), +\mathit{suf}(t_1,\mathit{len}(s_1)), +\mathit{suf}(s_1,\mathit{len}(t_1)))\) + + . +

    +

    + Alternatively for the reverse: +

    +
    + \[\inferrule{(t_1\cdot t_2) = (s_1 \cdot s_2),\, +\mathit{len}(t_2) > \mathit{len}(s_2)\mid \top}{(t_2 = r \cdot s_2)}\] +
    +

    + where + + \(r\) + + is the purification Skolem for + + \(\mathit{ite}( +\mathit{len}(t_2) >= \mathit{len}(s_2), +\mathit{pre}(t_2,\mathit{len}(t_2) - \mathit{len}(s_2)), +\mathit{pre}(s_2,\mathit{len}(s_2) - \mathit{len}(t_2)))\) + +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + CONCAT_CPROP + + + + +  + +
    +
    +
    +

    +

    +

    + + Strings – Core rules – Concatenation constant propagation + +

    +
    + \[\inferrule{(t_1\cdot w_1\cdot t_2) = (w_2 \cdot s),\, +\mathit{len}(t_1) \neq 0\mid \bot}{(t_1 = t_3\cdot r)}\] +
    +

    + where + + \(w_1,\,w_2\) + + are words, + + \(t_3\) + + is + + \(\mathit{pre}(w_2,p)\) + + , + + \(p\) + + is + + \(\texttt{Word::overlap}(\mathit{suf}(w_2,1), w_1)\) + + , and + + \(r\) + + is +the purification skolem for + + \(\mathit{suf}(t_1,\mathit{len}(w_3))\) + + . Note that + + \(\mathit{suf}(w_2,p)\) + + is the largest suffix of + + \(\mathit{suf}(w_2,1)\) + + that can contain a prefix of + + \(w_1\) + + ; since + + \(t_1\) + + is non-empty, + + \(w_3\) + + must therefore be contained in + + \(t_1\) + + . +

    +

    + Alternatively for the reverse: +

    +
    + \[\inferrule{(t_1\cdot w_1\cdot t_2) = (s \cdot w_2),\, +\mathit{len}(t_2) \neq 0\mid \top}{(t_2 = r\cdot t_3)}\] +
    +

    + where + + \(w_1,\,w_2\) + + are words, + + \(t_3\) + + is + + \(\mathit{substr}(w_2, \mathit{len}(w_2) - p, p)\) + + , + + \(p\) + + is + + \(\texttt{Word::roverlap}(\mathit{pre}(w_2, \mathit{len}(w_2) - 1), +w_1)\) + + , and + + \(r\) + + is the purification skolem for + + \(\mathit{pre}(t_2,\mathit{len}(t_2) - \mathit{len}(w_3))\) + + . Note that + + \(\mathit{pre}(w_2, \mathit{len}(w_2) - p)\) + + is the largest prefix of + + \(\mathit{pre}(w_2, \mathit{len}(w_2) - 1)\) + + that can contain a suffix +of + + \(w_1\) + + ; since + + \(t_2\) + + is non-empty, + + \(w_3\) + + must therefore +be contained in + + \(t_2\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STRING_DECOMPOSE + + + + +  + +
    +
    +
    +

    +

    +

    + + Strings – Core rules – String decomposition + +

    +
    + \[\inferrule{\mathit{len}(t) \geq n\mid \bot}{t = w_1\cdot w_2 \wedge +\mathit{len}(w_1) = n}\] +
    +

    + where + + \(w_1\) + + is the purification skolem for + + \(\mathit{pre}(t,n)\) + + and + + \(w_2\) + + is the purification skolem for + + \(\mathit{suf}(t,n)\) + + . +Or alternatively for the reverse: +

    +
    + \[\inferrule{\mathit{len}(t) \geq n\mid \top}{t = w_1\cdot w_2 \wedge +\mathit{len}(w_2) = n}\] +
    +

    + where + + \(w_1\) + + is the purification skolem for + + \(\mathit{pre}(t,n)\) + + and + + \(w_2\) + + is the purification skolem for + + \(\mathit{suf}(t,n)\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STRING_LENGTH_POS + + + + +  + +
    +
    +
    +

    +

    +

    + + Strings – Core rules – Length positive + +

    +
    + \[\inferrule{-\mid t}{(\mathit{len}(t) = 0\wedge t= \epsilon)\vee \mathit{len}(t) +> 0}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STRING_LENGTH_NON_EMPTY + + + + +  + +
    +
    +
    +

    +

    +

    + + Strings – Core rules – Length non-empty + +

    +
    + \[\inferrule{t\neq \epsilon\mid -}{\mathit{len}(t) \neq 0}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STRING_REDUCTION + + + + +  + +
    +
    +
    +

    +

    +

    + + Strings – Extended functions – Reduction + +

    +
    + \[\inferrule{-\mid t}{R\wedge t = w}\] +
    +

    + where + + \(w\) + + is + + \(\texttt{StringsPreprocess::reduce}(t, R, +\dots)\) + + . For details, see + + theory/strings/theory_strings_preprocess.h + + . +In other words, + + \(R\) + + is the reduction predicate for extended +term + + \(t\) + + , and + + \(w\) + + is the purification skolem for + + \(t\) + + . +

    +

    + Notice that the free variables of + + \(R\) + + are + + \(w\) + + and the free +variables of + + \(t\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STRING_EAGER_REDUCTION + + + + +  + +
    +
    +
    +

    +

    +

    + + Strings – Extended functions – Eager reduction + +

    +
    + \[\inferrule{-\mid t}{R}\] +
    +

    + where + + \(R\) + + is + + \(\texttt{TermRegistry::eagerReduce}(t)\) + + . +For details, see + + theory/strings/term_registry.h + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + RE_INTER + + + + +  + +
    +
    +
    +

    +

    +

    + + Strings – Regular expressions – Intersection + +

    +
    + \[\inferrule{t\in R_1,\,t\in R_2\mid -}{t\in \mathit{re.inter}(R_1,R_2)}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + RE_UNFOLD_POS + + + + +  + +
    +
    +
    +

    +

    +

    + + Strings – Regular expressions – Positive Unfold + +

    +
    + \[\inferrule{t\in R\mid -}{F}\] +
    +

    + where + + \(F\) + + corresponds to the one-step unfolding of the premise. +This is implemented by + + \(\texttt{RegExpOpr::reduceRegExpPos}(t\in R)\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + RE_UNFOLD_NEG + + + + +  + +
    +
    +
    +

    +

    +

    + + Strings – Regular expressions – Negative Unfold + +

    +
    + \[\inferrule{t \not \in \mathit{re}.\text{*}(R) \mid -}{t \neq \ \epsilon \ \wedge \forall L. L \leq 0 \vee \mathit{str.len}(t) < L \vee \mathit{pre}(t, L) \not \in R \vee \mathit{suf}(t, L) \not \in \mathit{re}.\text{*}(R)}\] +
    +

    + Or alternatively for regular expression concatenation: +

    +
    + \[\inferrule{t \not \in \mathit{re}.\text{++}(R_1, \ldots, R_n)\mid -}{\forall L. L < 0 \vee \mathit{str.len}(t) < L \vee \mathit{pre}(t, L) \not \in R_1 \vee \mathit{suf}(t, L) \not \in \mathit{re}.\text{++}(R_2, \ldots, R_n)}\] +
    +

    + Note that in either case the varaible + + \(L\) + + has type + + \(Int\) + + and +name + + “@var.str_index” + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + RE_UNFOLD_NEG_CONCAT_FIXED + + + + +  + +
    +
    +
    +

    +

    +

    + + Strings – Regular expressions – Unfold negative concatenation, fixed + +

    +
    + \[ \inferrule{t\not\in \mathit{re}.\text{re.++}(r_1, \ldots, r_n) \mid \bot}{ +\mathit{pre}(t, L) \not \in r_1 \vee \mathit{suf}(t, L) \not \in \mathit{re}.\text{re.++}(r_2, \ldots, r_n)}\] +
    +

    + where + + \(r_1\) + + has fixed length + + \(L\) + + . +

    +

    + or alternatively for the reverse: +

    +
    + \[\inferrule{t \not \in \mathit{re}.\text{re.++}(r_1, \ldots, r_n) \mid \top}{ +\mathit{suf}(t, str.len(t) - L) \not \in r_n \vee +\mathit{pre}(t, str.len(t) - L) \not \in \mathit{re}.\text{re.++}(r_1, \ldots, r_{n-1})}\] +
    +

    + where + + \(r_n\) + + has fixed length + + \(L\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STRING_CODE_INJ + + + + +  + +
    +
    +
    +

    +

    +

    + + Strings – Code points + +

    +
    + \[\inferrule{-\mid t,s}{\mathit{to\_code}(t) = -1 \vee \mathit{to\_code}(t) \neq +\mathit{to\_code}(s) \vee t = s}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STRING_SEQ_UNIT_INJ + + + + +  + +
    +
    +
    +

    +

    +

    + + Strings – Sequence unit + +

    +
    + \[\inferrule{\mathit{unit}(x) = \mathit{unit}(y)\mid -}{x = y}\] +
    +

    + Also applies to the case where + + \(\mathit{unit}(y)\) + + is a constant +sequence of length one. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STRING_EXT + + + + +  + +
    +
    +
    +

    +

    +

    + + Strings – Extensionality + +

    +
    + \[\inferrule{s \neq t\mid -} +{\mathit{seq.len}(s) \neq \mathit{seq.len}(t) \vee (\mathit{seq.nth}(s,k)\neq\mathit{set.nth}(t,k) \wedge 0 \leq k \wedge k < \mathit{seq.len}(s))}\] +
    +

    + where + + \(s,t\) + + are terms of sequence type, + + \(k\) + + is the + + \(\texttt{STRINGS_DEQ_DIFF}\) + + skolem for + + \(s,t\) + + . Alternatively, +if + + \(s,t\) + + are terms of string type, we use + + \(\mathit{seq.substr}(s,k,1)\) + + instead of + + \(\mathit{seq.nth}(s,k)\) + + and similarly for + + \(t\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + MACRO_STRING_INFERENCE + + + + +  + +
    +
    +
    +

    +

    +

    + + Strings – (Macro) String inference + +

    +
    + \[\inferrule{?\mid F,\mathit{id},\mathit{isRev},\mathit{exp}}{F}\] +
    +

    + used to bookkeep an inference that has not yet been converted via + + \(\texttt{strings::InferProofCons::convert}\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + MACRO_ARITH_SCALE_SUM_UB + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Adding inequalities + +

    +

    + An arithmetic literal is a term of the form + + \(p \diamond c\) + + where + + \(\diamond \in \{ <, \leq, =, \geq, > \}\) + + , + + \(p\) + + a +polynomial and + + \(c\) + + a rational constant. +

    +
    + \[\inferrule{l_1 \dots l_n \mid k_1 \dots k_n}{t_1 \diamond t_2}\] +
    +

    + where + + \(k_i \in \mathbb{R}, k_i \neq 0\) + + , + + \(\diamond\) + + is the +fusion of the + + \(\diamond_i\) + + (flipping each if its + + \(k_i\) + + is +negative) such that + + \(\diamond_i \in \{ <, \leq \}\) + + (this implies that +lower bounds have negative + + \(k_i\) + + and upper bounds have positive + + \(k_i\) + + ), + + \(t_1\) + + is the sum of the scaled polynomials and + + \(t_2\) + + is the sum of the scaled constants: +

    +
    + \[ \begin{align}\begin{aligned}t_1 \colon= k_1 \cdot p_1 + \cdots + k_n \cdot p_n\\t_2 \colon= k_1 \cdot c_1 + \cdots + k_n \cdot c_n\end{aligned}\end{align} \] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_MULT_ABS_COMPARISON + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Non-linear multiply absolute value comparison + +

    +
    + \[\inferrule{F_1 \dots F_n \mid -}{F}\] +
    +

    + where + + \(F\) + + is of the form + + \(\left| t_1 \cdot t_n \right| \diamond \left| s_1 \cdot s_n \right|\) + + . +If + + \(\diamond\) + + is + + \(=\) + + , then each + + \(F_i\) + + is + + \(\left| t_i \right| = \left| s_i \right|\) + + . +

    +

    + If + + \(\diamond\) + + is + + \(>\) + + , then +each + + \(F_i\) + + is either + + \(\left| t_i \right| > \left| s_i \right|\) + + or + + \(\left| t_i \right| = \left| s_i \right| \land \left| t_i \right| \neq 0\) + + , +and + + \(F_1\) + + is of the former form. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_SUM_UB + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Sum upper bounds + +

    +
    + \[\inferrule{P_1 \dots P_n \mid -}{L \diamond R}\] +
    +

    + where + + \(P_i\) + + has the form + + \(L_i \diamond_i R_i\) + + and + + \(\diamond_i \in \{<, \leq, =\}\) + + . Furthermore + + \(\diamond = <\) + + if + + \(\diamond_i = <\) + + for any + + \(i\) + + and + + \(\diamond = \leq\) + + otherwise, + + \(L = L_1 + \cdots + L_n\) + + and + + \(R = R_1 + \cdots + R_n\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + INT_TIGHT_UB + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Tighten strict integer upper bounds + +

    +
    + \[\inferrule{i < c \mid -}{i \leq \lfloor c \rfloor}\] +
    +

    + where + + \(i\) + + has integer type. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + INT_TIGHT_LB + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Tighten strict integer lower bounds + +

    +
    + \[\inferrule{i > c \mid -}{i \geq \lceil c \rceil}\] +
    +

    + where + + \(i\) + + has integer type. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_TRICHOTOMY + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Trichotomy of the reals + +

    +
    + \[\inferrule{A, B \mid -}{C}\] +
    +

    + where + + \(\neg A, \neg B, C\) + + are + + \(x < c, x = c, x > c\) + + in some order. +Note that + + \(\neg\) + + here denotes arithmetic negation, i.e., flipping + + \(\geq\) + + to + + \(<\) + + etc. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_REDUCTION + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Reduction + +

    +
    + \[\inferrule{- \mid t}{F}\] +
    +

    + where + + \(t\) + + is an application of an extended arithmetic operator (e.g. +division, modulus, cosine, sqrt, is_int, to_int) and + + \(F\) + + is the +reduction predicate for + + \(t\) + + . In other words, + + \(F\) + + is a +predicate that is used to reduce reasoning about + + \(t\) + + to reasoning +about the core operators of arithmetic. +

    +

    + In detail, + + \(F\) + + is implemented by + + \(\texttt{arith::OperatorElim::getAxiomFor(t)}\) + + , see + + theory/arith/operator_elim.h + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_POLY_NORM + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Polynomial normalization + +

    +
    + \[\inferrule{- \mid t = s}{t = s}\] +
    +

    + where + + \(\texttt{arith::PolyNorm::isArithPolyNorm(t, s)} = \top\) + + . This +method normalizes polynomials + + \(s\) + + and + + \(t\) + + over arithmetic or +bitvectors. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_POLY_NORM_REL + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Polynomial normalization for relations + +

    +
    + \[\inferrule{c_x \cdot (x_1 - x_2) = c_y \cdot (y_1 - y_2) \mid \diamond} + {(x_1 \diamond x_2) = (y_1 \diamond y_2)}\] +
    +

    + where + + \(\diamond \in \{<, \leq, =, \geq, >\}\) + + for arithmetic and + + \(\diamond \in \{=\}\) + + for bitvectors. + + \(c_x\) + + and + + \(c_y\) + + are +scaling factors. For + + \(<, \leq, \geq, >\) + + , the scaling factors have the +same sign. For bitvectors, they are set to + + \(1\) + + . +

    +

    + If + + \(c_x\) + + has type + + \(Real\) + + and + + \(x_1, x_2\) + + are of type + + \(Int\) + + , then + + \((x_1 - x_2)\) + + is wrapped in an application of + + to_real + + , similarly for + + \((y_1 - y_2)\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_MULT_SIGN + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Sign inference + +

    +
    + \[\inferrule{- \mid f_1 \dots f_k, m}{(f_1 \land \dots \land f_k) \rightarrow m \diamond 0}\] +
    +

    + where + + \(f_1 \dots f_k\) + + are variables compared to zero (less, greater +or not equal), + + \(m\) + + is a monomial from these variables and + + \(\diamond\) + + is the comparison (less or equal) that results from the +signs of the variables. All variables with even exponent in + + \(m\) + + should be given as not equal to zero while all variables with odd exponent +in + + \(m\) + + should be given as less or greater than zero. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_MULT_POS + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Multiplication with positive factor + +

    +
    + \[\inferrule{- \mid m, l \diamond r}{(m > 0 \land l \diamond r) \rightarrow m \cdot l \diamond m \cdot r}\] +
    +

    + where + + \(\diamond\) + + is a relation symbol. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_MULT_NEG + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Multiplication with negative factor + +

    +
    + \[\inferrule{- \mid m, l \diamond r}{(m < 0 \land l \diamond r) \rightarrow m \cdot l \diamond_{inv} m \cdot r}\] +
    +

    + where + + \(\diamond\) + + is a relation symbol and + + \(\diamond_{inv}\) + + the +inverted relation symbol. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_MULT_TANGENT + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Multiplication tangent plane + +

    +
    + \[ \begin{align}\begin{aligned}\inferruleSC{- \mid x, y, a, b, \sigma}{(t \leq tplane) = ((x \leq a \land y \geq b) \lor (x \geq a \land y \leq b))}{if $\sigma = \bot$}\\\inferruleSC{- \mid x, y, a, b, \sigma}{(t \geq tplane) = ((x \leq a \land y \leq b) \lor (x \geq a \land y \geq b))}{if $\sigma = \top$}\end{aligned}\end{align} \] +
    +

    + where + + \(x,y\) + + are real terms (variables or extended terms), + + \(t = x \cdot y\) + + , + + \(a,b\) + + are real +constants, + + \(\sigma \in \{ \top, \bot\}\) + + and + + \(tplane := b \cdot x + a \cdot y - a \cdot b\) + + is the tangent plane of + + \(x \cdot y\) + + at + + \((a,b)\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_TRANS_PI + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Transcendentals – Assert bounds on Pi + +

    +
    + \[\inferrule{- \mid l, u}{\texttt{real.pi} \geq l \land \texttt{real.pi} +\leq u}\] +
    +

    + where + + \(l,u\) + + are valid lower and upper bounds on + + \(\pi\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_TRANS_EXP_NEG + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Transcendentals – Exp at negative values + +

    +
    + \[\inferrule{- \mid t}{(t < 0) \leftrightarrow (\exp(t) < 1)}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_TRANS_EXP_POSITIVITY + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Transcendentals – Exp is always positive + +

    +
    + \[\inferrule{- \mid t}{\exp(t) > 0}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_TRANS_EXP_SUPER_LIN + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Transcendentals – Exp grows super-linearly for positive +values + +

    +
    + \[\inferrule{- \mid t}{t \leq 0 \lor \exp(t) > t+1}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_TRANS_EXP_ZERO + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Transcendentals – Exp at zero + +

    +
    + \[\inferrule{- \mid t}{(t=0) \leftrightarrow (\exp(t) = 1)}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_TRANS_EXP_APPROX_ABOVE_NEG + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Transcendentals – Exp is approximated from above for +negative values + +

    +
    + \[\inferrule{- \mid d,t,l,u}{(t \geq l \land t \leq u) \rightarrow exp(t) +\leq \texttt{secant}(\exp, l, u, t)}\] +
    +

    + where + + \(d\) + + is an even positive number, + + \(t\) + + an arithmetic term +and + + \(l,u\) + + are lower and upper bounds on + + \(t\) + + . Let + + \(p\) + + be +the + + \(d\) + + ’th taylor polynomial at zero (also called the Maclaurin +series) of the exponential function. + + \(\texttt{secant}(\exp, l, u, t)\) + + denotes the secant of + + \(p\) + + from + + \((l, \exp(l))\) + + to + + \((u, +\exp(u))\) + + evaluated at + + \(t\) + + , calculated as follows: +

    +
    + \[\frac{p(l) - p(u)}{l - u} \cdot (t - l) + p(l)\] +
    +

    + The lemma states that if + + \(t\) + + is between + + \(l\) + + and + + \(u\) + + , then + + \(\exp(t\) + + is below the secant of + + \(p\) + + from + + \(l\) + + to + + \(u\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_TRANS_EXP_APPROX_ABOVE_POS + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Transcendentals – Exp is approximated from above for +positive values + +

    +
    + \[\inferrule{- \mid d,t,l,u}{(t \geq l \land t \leq u) \rightarrow exp(t) +\leq \texttt{secant-pos}(\exp, l, u, t)}\] +
    +

    + where + + \(d\) + + is an even positive number, + + \(t\) + + an arithmetic term +and + + \(l,u\) + + are lower and upper bounds on + + \(t\) + + . Let + + \(p^*\) + + be +a modification of the + + \(d\) + + ’th taylor polynomial at zero (also called +the Maclaurin series) of the exponential function as follows where + + \(p(d-1)\) + + is the regular Maclaurin series of degree + + \(d-1\) + + : +

    +
    + \[p^* := p(d-1) \cdot \frac{1 + t^n}{n!}\] +
    +

    + + \(\texttt{secant-pos}(\exp, l, u, t)\) + + denotes the secant of + + \(p\) + + from + + \((l, \exp(l))\) + + to + + \((u, \exp(u))\) + + evaluated at + + \(t\) + + , +calculated as follows: +

    +
    + \[\frac{p(l) - p(u)}{l - u} \cdot (t - l) + p(l)\] +
    +

    + The lemma states that if + + \(t\) + + is between + + \(l\) + + and + + \(u\) + + , then + + \(\exp(t\) + + is below the secant of + + \(p\) + + from + + \(l\) + + to + + \(u\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_TRANS_EXP_APPROX_BELOW + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Transcendentals – Exp is approximated from below + +

    +
    + \[\inferrule{- \mid d,c,t}{t \geq c \rightarrow exp(t) \geq \texttt{maclaurin}(\exp, d, c)}\] +
    +

    + where + + \(d\) + + is an odd positive number, + + \(t\) + + an arithmetic term and + + \(\texttt{maclaurin}(\exp, d, c)\) + + is the + + \(d\) + + ’th taylor +polynomial at zero (also called the Maclaurin series) of the exponential +function evaluated at + + \(c\) + + . The Maclaurin series for the exponential +function is the following: +

    +
    + \[\exp(x) = \sum_{n=0}^{\infty} \frac{x^n}{n!}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_TRANS_SINE_BOUNDS + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Transcendentals – Sine is always between -1 and 1 + +

    +
    + \[\inferrule{- \mid t}{\sin(t) \leq 1 \land \sin(t) \geq -1}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_TRANS_SINE_SHIFT + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Transcendentals – Sine is shifted to -pi…pi + +

    +
    + \[\inferrule{- \mid x}{-\pi \leq y \leq \pi \land \sin(y) = \sin(x) +\land (\ite{-\pi \leq x \leq \pi}{x = y}{x = y + 2 \pi s})}\] +
    +

    + where + + \(x\) + + is the argument to sine, + + \(y\) + + is a new real skolem +that is + + \(x\) + + shifted into + + \(-\pi \dots \pi\) + + and + + \(s\) + + is a +new integer skolem that is the number of phases + + \(y\) + + is shifted. +In particular, + + \(y\) + + is the + + + + TRANSCENDENTAL_PURIFY_ARG + + + + skolem for + + \(\sin(x)\) + + and + + \(s\) + + is the + + + + TRANSCENDENTAL_SINE_PHASE_SHIFT + + + + skolem for + + \(x\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_TRANS_SINE_SYMMETRY + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Transcendentals – Sine is symmetric with respect to +negation of the argument + +

    +
    + \[\inferrule{- \mid t}{\sin(t) - \sin(-t) = 0}\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_TRANS_SINE_TANGENT_ZERO + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Transcendentals – Sine is bounded by the tangent at zero + +

    +
    + \[\inferrule{- \mid t}{(t > 0 \rightarrow \sin(t) < t) \land (t < 0 +\rightarrow \sin(t) > t)} \] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_TRANS_SINE_TANGENT_PI + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Transcendentals – Sine is bounded by the tangents at -pi +and pi + +

    +
    + \[\inferrule{- \mid t}{(t > -\pi \rightarrow \sin(t) > -\pi - t) \land (t < +\pi \rightarrow \sin(t) < \pi - t)} \] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_TRANS_SINE_APPROX_ABOVE_NEG + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Transcendentals – Sine is approximated from above for +negative values + +

    +
    + \[\inferrule{- \mid d,t,lb,ub,l,u}{(t \geq lb land t \leq ub) \rightarrow +\sin(t) \leq \texttt{secant}(\sin, l, u, t)}\] +
    +

    + where + + \(d\) + + is an even positive number, + + \(t\) + + an arithmetic term, + + \(lb,ub\) + + are symbolic lower and upper bounds on + + \(t\) + + (possibly +containing + + \(\pi\) + + ) and + + \(l,u\) + + the evaluated lower and upper +bounds on + + \(t\) + + . Let + + \(p\) + + be the + + \(d\) + + ’th taylor polynomial at +zero (also called the Maclaurin series) of the sine function. + + \(\texttt{secant}(\sin, l, u, t)\) + + denotes the secant of + + \(p\) + + from + + \((l, \sin(l))\) + + to + + \((u, \sin(u))\) + + evaluated at + + \(t\) + + , +calculated as follows: +

    +
    + \[\frac{p(l) - p(u)}{l - u} \cdot (t - l) + p(l)\] +
    +

    + The lemma states that if + + \(t\) + + is between + + \(l\) + + and + + \(u\) + + , then + + \(\sin(t)\) + + is below the secant of + + \(p\) + + from + + \(l\) + + to + + \(u\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_TRANS_SINE_APPROX_ABOVE_POS + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Transcendentals – Sine is approximated from above for +positive values + +

    +
    + \[\inferrule{- \mid d,t,c,lb,ub}{(t \geq lb land t \leq ub) \rightarrow +\sin(t) \leq \texttt{upper}(\sin, c)}\] +
    +

    + where + + \(d\) + + is an even positive number, + + \(t\) + + an arithmetic term, + + \(c\) + + an arithmetic constant and + + \(lb,ub\) + + are symbolic lower and +upper bounds on + + \(t\) + + (possibly containing + + \(\pi\) + + ). Let + + \(p\) + + be the + + \(d\) + + ’th taylor polynomial at zero (also called the Maclaurin +series) of the sine function. + + \(\texttt{upper}(\sin, c)\) + + denotes the +upper bound on + + \(\sin(c)\) + + given by + + \(p\) + + and + + \(lb,up\) + + such +that + + \(\sin(t)\) + + is the maximum of the sine function on + + \((lb,ub)\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_TRANS_SINE_APPROX_BELOW_NEG + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Transcendentals – Sine is approximated from below for +negative values + +

    +
    + \[\inferrule{- \mid d,t,c,lb,ub}{(t \geq lb land t \leq ub) \rightarrow +\sin(t) \geq \texttt{lower}(\sin, c)}\] +
    +

    + where + + \(d\) + + is an even positive number, + + \(t\) + + an arithmetic term, + + \(c\) + + an arithmetic constant and + + \(lb,ub\) + + are symbolic lower and +upper bounds on + + \(t\) + + (possibly containing + + \(\pi\) + + ). Let + + \(p\) + + be the + + \(d\) + + ’th taylor polynomial at zero (also called the Maclaurin +series) of the sine function. + + \(\texttt{lower}(\sin, c)\) + + denotes the +lower bound on + + \(\sin(c)\) + + given by + + \(p\) + + and + + \(lb,up\) + + such +that + + \(\sin(t)\) + + is the minimum of the sine function on + + \((lb,ub)\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_TRANS_SINE_APPROX_BELOW_POS + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – Transcendentals – Sine is approximated from below for +positive values + +

    +
    + \[\inferrule{- \mid d,t,lb,ub,l,u}{(t \geq lb land t \leq ub) \rightarrow +\sin(t) \geq \texttt{secant}(\sin, l, u, t)}\] +
    +

    + where + + \(d\) + + is an even positive number, + + \(t\) + + an arithmetic term, + + \(lb,ub\) + + are symbolic lower and upper bounds on + + \(t\) + + (possibly +containing + + \(\pi\) + + ) and + + \(l,u\) + + the evaluated lower and upper +bounds on + + \(t\) + + . Let + + \(p\) + + be the + + \(d\) + + ’th taylor polynomial at +zero (also called the Maclaurin series) of the sine function. + + \(\texttt{secant}(\sin, l, u, t)\) + + denotes the secant of + + \(p\) + + from + + \((l, \sin(l))\) + + to + + \((u, \sin(u))\) + + evaluated at + + \(t\) + + , +calculated as follows: +

    +
    + \[\frac{p(l) - p(u)}{l - u} \cdot (t - l) + p(l)\] +
    +

    + The lemma states that if + + \(t\) + + is between + + \(l\) + + and + + \(u\) + + , then + + \(\sin(t)\) + + is above the secant of + + \(p\) + + from + + \(l\) + + to + + \(u\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + LFSC_RULE + + + + +  + +
    +
    +
    +

    +

    +

    + + External – LFSC + +

    +

    + Place holder for LFSC rules. +

    +
    + \[\inferrule{P_1, \dots, P_n\mid \texttt{id}, Q, A_1,\dots, A_m}{Q}\] +
    +

    + Note that the premises and arguments are arbitrary. It’s expected that + + \(\texttt{id}\) + + refer to a proof rule in the external LFSC calculus. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ALETHE_RULE + + + + +  + +
    +
    +
    +

    +

    +

    + + External – Alethe + +

    +

    + Place holder for Alethe rules. +

    +
    + \[\inferrule{P_1, \dots, P_n\mid \texttt{id}, Q, Q', A_1,\dots, A_m}{Q}\] +
    +

    + Note that the premises and arguments are arbitrary. It’s expected that + + \(\texttt{id}\) + + refer to a proof rule in the external Alethe calculus, +and that + + \(Q'\) + + be the representation of Q to be printed by the Alethe +printer. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + UNKNOWN + + + + +  + +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + + cvc5 + + + + + :: + + + + + + + operator + + + + + << + + + + + ( + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + out + + + , + + + + ProofRule + + + + + + + + rule + + + + ) + + +  + +
    +
    +
    +

    + Writes a proof rule name to a stream. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + out + + – The stream to write to +

      +
    • +
    • +

      + + rule + + – The proof rule to write to the stream +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The stream +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + string + + + + + + + + std + + + + + :: + + + + + + + to_string + + + + + ( + + + + cvc5 + + + + + :: + + + + + + ProofRule + + + + + + + + rule + + + + ) + + +  + +
    +
    +
    +

    + Converts a proof rule to a string. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + rule + + – The proof rule +

    +
    +
    + Returns + + : + +
    +
    +

    + The name of the proof rule +

    +
    +
    +
    +
    +
    +
    + + + + + + + template + + + + + < + + + + + > + + +
    + + + + + struct + + + + + + + + hash + + + + + + < + + + + + cvc5 + + + + + :: + + + + + + ProofRule + + + + + + > + + + +  + +
    +
    +
    +

    + Hash function for ProofRules. +

    +
    +

    + Public Functions +

    +
    +
    + + + + + + + + + + + size_t + + + + + + + + operator + + + + + () + + + + + ( + + + + cvc5 + + + + + :: + + + + + + ProofRule + + + + + + + + rule + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Hashes a ProofRule to a size_t. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + rule + + – The proof rule. +

    +
    +
    + Returns + + : + +
    +
    +

    + The hash value. +

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + enum + + + + + + + class + + + + + + + + cvc5 + + + + + :: + + + + + + + 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 + + + + proof rule +and the + + + + THEORY_REWRITE + + + + proof rule. +

    +

    + + Values: + +

    +
    +
    + + + + + + + + + enumerator + + + + + + + + NONE + + + + +  + +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + DISTINCT_ELIM + + + + +  + +
    +
    +
    +

    +

    +

    + + Builtin – Distinct elimination + +

    +
    + \[\texttt{distinct}(t_1, t_2) = \neg (t_1 = t2)\] +
    +

    + if + + \(n = 2\) + + , or +

    +
    + \[\texttt{distinct}(t_1, \ldots, tn) = \bigwedge_{i=1}^n \bigwedge_{j=i+1}^n t_i \neq t_j\] +
    +

    + if + + \(n > 2\) + +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + DISTINCT_CARD_CONFLICT + + + + +  + +
    +
    +
    +

    +

    +

    + + Builtin – Distinct cardinality conflict + +

    +
    + \[\texttt{distinct}(t_1, \ldots, tn) = \bot\] +
    +

    + where + + \(n\) + + is greater than the cardinality of the type of + + \(t_1, \ldots, t_n\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_TO_NAT_ELIM + + + + +  + +
    +
    +
    +

    +

    +

    + + UF – Bitvector to natural elimination + +

    +
    + \[\texttt{bv2nat}(t) = t_1 + \ldots + t_n\] +
    +

    + where for + + \(i=1, \ldots, n\) + + , + + \(t_i\) + + is + + \(\texttt{ite}(x[i-1, i-1] = 1, 2^i, 0)\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + INT_TO_BV_ELIM + + + + +  + +
    +
    +
    +

    +

    +

    + + UF – Integer to bitvector elimination + +

    +
    + \[\texttt{int2bv}_n(t) = (bvconcat t_1 \ldots t_n)\] +
    +

    + where for + + \(i=1, \ldots, n\) + + , + + \(t_i\) + + is + + \(\texttt{ite}(\texttt{mod}(t,2^n) \geq 2^{n-1}, 1, 0)\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + MACRO_BOOL_NNF_NORM + + + + +  + +
    +
    +
    +

    +

    +

    + + 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. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + MACRO_ARITH_STRING_PRED_ENTAIL + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – strings predicate entailment + +

    +
    + \[(= s t) = c\] +
    +
    + \[(>= s t) = c\] +
    +

    + where + + \(c\) + + is a Boolean constant. +This macro is elaborated by applications of + + + + EVALUATE + + + + , + + + + ARITH_POLY_NORM + + + + , + + + + ARITH_STRING_PRED_ENTAIL + + + + , + + + + ARITH_STRING_PRED_SAFE_APPROX + + + + , +as well as other rewrites for normalizing arithmetic predicates. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_STRING_PRED_ENTAIL + + + + +  + +
    +
    +
    +

    +

    +

    + + 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. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_STRING_PRED_SAFE_APPROX + + + + +  + +
    +
    +
    +

    +

    +

    + + 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”. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_POW_ELIM + + + + +  + +
    +
    +
    +

    +

    +

    + + Arithmetic – power elimination + +

    +
    + \[(x ^ c) = (x \cdot \ldots \cdot x)\] +
    +

    + where + + \(c\) + + is a non-negative integer. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BETA_REDUCE + + + + +  + +
    +
    +
    +

    +

    +

    + + 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 + + + Node::substitute + + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + LAMBDA_ELIM + + + + +  + +
    +
    +
    +

    +

    +

    + + Equality – Lambda elimination + +

    +
    + \[(\lambda x_1 \ldots x_n.\> f(x_1 \ldots x_n)) = f\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARRAYS_SELECT_CONST + + + + +  + +
    +
    +
    +

    +

    +

    + + Arrays – Constant array select + +

    +
    + \[(select A x) = c\] +
    +

    + where + + \(A\) + + is a constant array storing element + + \(c\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + MACRO_ARRAYS_DISTINCT_ARRAYS + + + + +  + +
    +
    +
    +

    +

    +

    + + Arrays – Macro distinct arrays + +

    +
    + \[(A = B) = \bot\] +
    +

    + where + + \(A\) + + and + + \(B\) + + are distinct array values, that is, +the Node::isConst method returns true for both. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + MACRO_ARRAYS_NORMALIZE_CONSTANT + + + + +  + +
    +
    +
    +

    +

    +

    + + Arrays – Macro normalize constant + +

    +
    + \[A = B\] +
    +

    + where + + \(B\) + + is the result of normalizing the array value + + \(A\) + + into a canonical form, using the internal method +TheoryArraysRewriter::normalizeConstant. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARRAYS_EQ_RANGE_EXPAND + + + + +  + +
    +
    +
    +

    +

    +

    + + 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)\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + EXISTS_ELIM + + + + +  + +
    +
    +
    +

    +

    +

    + + Quantifiers – Exists elimination + +

    +
    + \[\exists x_1\dots x_n.\> F = \neg \forall x_1\dots x_n.\> \neg F\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + QUANT_UNUSED_VARS + + + + +  + +
    +
    +
    +

    +

    +

    + + Quantifiers – Unused variables + +

    +
    + \[\forall X.\> F = \forall X_1.\> F\] +
    +

    + where + + \(X_1\) + + is the subset of + + \(X\) + + that appear free in + + \(F\) + + and + + \(X_1\) + + does not contain duplicate variables. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + MACRO_QUANT_MERGE_PRENEX + + + + +  + +
    +
    +
    +

    +

    +

    + + Quantifiers – Macro merge prenex + +

    +
    + \[\forall X_1.\> \ldots \forall X_n.\> F = \forall X.\> F\] +
    +

    + where + + \(X_1 \ldots X_n\) + + are lists of variables and + + \(X\) + + is the +result of removing duplicates from + + \(X_1 \ldots X_n\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + QUANT_MERGE_PRENEX + + + + +  + +
    +
    +
    +

    +

    +

    + + 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. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + MACRO_QUANT_PRENEX + + + + +  + +
    +
    +
    +

    +

    +

    + + Quantifiers – Macro prenex + +

    +
    + \[(\forall X.\> F_1 \vee \cdots \vee (\forall Y.\> F_i) \vee \cdots \vee F_n) = (\forall X Z.\> F_1 \vee \cdots \vee F_i\{ Y \mapsto Z \} \vee \cdots \vee F_n)\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + MACRO_QUANT_MINISCOPE + + + + +  + +
    +
    +
    +

    +

    +

    + + Quantifiers – Macro miniscoping + +

    +
    + \[\forall X.\> F_1 \wedge \cdots \wedge F_n = +G_1 \wedge \cdots \wedge G_n\] +
    +

    + where each + + \(G_i\) + + is semantically equivalent to + + \(\forall X.\> F_i\) + + , or alternatively +

    +
    + \[\forall X.\> \ite{C}{F_1}{F_2} = \ite{C}{G_1}{G_2}\] +
    +

    + where + + \(C\) + + does not have any free variable in + + \(X\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + QUANT_MINISCOPE_AND + + + + +  + +
    +
    +
    +

    +

    +

    + + Quantifiers – Miniscoping and + +

    +
    + \[\forall X.\> F_1 \wedge \ldots \wedge F_n = +(\forall X.\> F_1) \wedge \ldots \wedge (\forall X.\> F_n)\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + QUANT_MINISCOPE_OR + + + + +  + +
    +
    +
    +

    +

    +

    + + Quantifiers – Miniscoping or + +

    +
    + \[\forall X.\> F_1 \vee \ldots \vee F_n = (\forall X_1.\> F_1) \vee \ldots \vee (\forall X_n.\> F_n)\] +
    +

    + where + + \(X = X_1 \ldots X_n\) + + , and the right hand side does not have any +free variable in + + \(X\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + QUANT_MINISCOPE_ITE + + + + +  + +
    +
    +
    +

    +

    +

    + + Quantifiers – Miniscoping ite + +

    +
    + \[\forall X.\> \ite{C}{F_1}{F_2} = \ite{C}{\forall X.\> F_1}{\forall X.\> F_2}\] +
    +

    + where + + \(C\) + + does not have any free variable in + + \(X\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + QUANT_DT_SPLIT + + + + +  + +
    +
    +
    +

    +

    +

    + + Quantifiers – Datatypes Split + +

    +
    + \[(\forall x Y.\> F) = (\forall X_1 Y. F_1) \vee \cdots \vee (\forall X_n Y. F_n)\] +
    +

    + where + + \(x\) + + is of a datatype type with constructors + + \(C_1, \ldots, C_n\) + + , where for each + + \(i = 1, \ldots, n\) + + , + + \(F_i\) + + is + + \(F \{ x \mapsto C_i(X_i) \}\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + MACRO_QUANT_PARTITION_CONNECTED_FV + + + + +  + +
    +
    +
    +

    +

    +

    + + 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\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + MACRO_QUANT_VAR_ELIM_EQ + + + + +  + +
    +
    +
    +

    +

    +

    + + Quantifiers – Macro variable elimination equality + +

    +
    + \[\forall x Y.\> F = \forall Y.\> F \{ x \mapsto t \}\] +
    +

    + where + + \(\neg F\) + + entails + + \(x = t\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + QUANT_VAR_ELIM_EQ + + + + +  + +
    +
    +
    +

    +

    +

    + + Quantifiers – Macro variable elimination equality + +

    +
    + \[(\forall x.\> x \neq t \vee F) = F \{ x \mapsto t \}\] +
    +

    + or alternatively +

    +
    + \[(\forall x.\> x \neq t) = \bot\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + MACRO_QUANT_VAR_ELIM_INEQ + + + + +  + +
    +
    +
    +

    +

    +

    + + Quantifiers – Macro variable elimination inequality + +

    +
    + \[\forall x Y.\> F = \forall Y.\> G\] +
    +

    + where + + \(G\) + + is the result of replacing all literals containing + + \(x\) + + with a constant. This is applied only when all such literals +are lower (resp. upper) bounds for + + \(x\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + MACRO_QUANT_REWRITE_BODY + + + + +  + +
    +
    +
    +

    +

    +

    + + Quantifiers – Macro quantifiers rewrite body + +

    +
    + \[\forall X.\> F = \forall X.\> G\] +
    +

    + where + + \(G\) + + is semantically equivalent to + + \(F\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + DT_INST + + + + +  + +
    +
    +
    +

    +

    +

    + + 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\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + DT_COLLAPSE_SELECTOR + + + + +  + +
    +
    +
    +

    +

    +

    + + Datatypes – collapse selector + +

    +
    + \[s_i(c(t_1, \ldots, t_n)) = t_i\] +
    +

    + where + + \(s_i\) + + is the + + \(i^{th}\) + + selector for constructor + + \(c\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + DT_COLLAPSE_TESTER + + + + +  + +
    +
    +
    +

    +

    +

    + + 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. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + DT_COLLAPSE_TESTER_SINGLETON + + + + +  + +
    +
    +
    +

    +

    +

    + + Datatypes – collapse tester + +

    +
    + \[\mathit{is}_c(t) = true\] +
    +

    + where + + \(c\) + + is the only constructor of its associated datatype. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + DT_CONS_EQ + + + + +  + +
    +
    +
    +

    +

    +

    + + 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. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + DT_CYCLE + + + + +  + +
    +
    +
    +

    +

    +

    + + Datatypes – cycle + +

    +
    + \[(x = t[x]) = \bot\] +
    +

    + where all terms on the path to + + \(x\) + + in + + \(t[x]\) + + are applications +of constructors, and this path is non-empty. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + DT_COLLAPSE_UPDATER + + + + +  + +
    +
    +
    +

    +

    +

    + + Datatypes – collapse tester + +

    +
    + \[u_{c,i}(c(t_1, \ldots, t_i, \ldots, t_n), s) = c(t_1, \ldots, s, \ldots, t_n)\] +
    +

    + or alternatively +

    +
    + \[u_{c,i}(d(t_1, \ldots, t_n), s) = d(t_1, \ldots, t_n)\] +
    +

    + where + + \(c\) + + and + + \(d\) + + are distinct constructors. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + DT_UPDATER_ELIM + + + + +  + +
    +
    +
    +

    +

    +

    + + Datatypes - updater elimination + +

    +
    + \[u_{c,i}(t, s) = ite(\mathit{is}_c(t), c(s_0(t), \ldots, s, \ldots s_n(t)), t)\] +
    +

    + where + + \(s_i\) + + is the + + \(i^{th}\) + + selector for constructor + + \(c\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + DT_MATCH_ELIM + + + + +  + +
    +
    +
    +

    +

    +

    + + Datatypes – match elimination + +

    +
    + \[\texttt{match}(t ((p_1 c_1) \ldots (p_n c_n))) = \texttt{ite}(F_1, r_1, \texttt{ite}( \ldots, r_n))\] +
    +

    + where for + + \(i=1, \ldots, n\) + + , + + \(F_1\) + + is a formula that holds iff + + \(t\) + + matches + + \(p_i\) + + and + + \(r_i\) + + is the result of a +substitution on + + \(c_i\) + + based on this match. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_UMULO_ELIMINATE + + + + +  + +
    +
    +
    +

    +

    +

    + + Bitvectors – Unsigned multiplication overflow detection elimination + +

    +

    + See M.Gok, M.J. Schulte, P.I. Balzola, “Efficient integer multiplication +overflow detection circuits”, 2001. + + http://ieeexplore.ieee.org/document/987767 + +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_SMULO_ELIMINATE + + + + +  + +
    +
    +
    +

    +

    +

    + + Bitvectors – Unsigned multiplication overflow detection elimination + +

    +

    + See M.Gok, M.J. Schulte, P.I. Balzola, “Efficient integer multiplication +overflow detection circuits”, 2001. + + http://ieeexplore.ieee.org/document/987767 + +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_ADD_COMBINE_LIKE_TERMS + + + + +  + +
    +
    +
    +

    + + Bitvectors – Combine like terms during addition by counting terms + +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_MULT_SIMPLIFY + + + + +  + +
    +
    +
    +

    +

    +

    + + Bitvectors – Extract negations from multiplicands + +

    +
    + \[bvmul(bvneg(a),\ b,\ c) = bvneg(bvmul(a,\ b,\ c))\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_BITWISE_SLICING + + + + +  + +
    +
    +
    +

    +

    +

    + + 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 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_REPEAT_ELIM + + + + +  + +
    +
    +
    +

    +

    +

    + + Bitvectors – Extract continuous substrings of bitvectors + +

    +
    + \[repeat(n,\ t) = concat(t ... t)\] +
    +

    + where + + \(t\) + + is repeated + + \(n\) + + times. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + RE_LOOP_ELIM + + + + +  + +
    +
    +
    +

    +

    +

    + + Strings – regular expression loop elimination + +

    +
    + \[re.loop_{l,u}(R) = re.union(R^l, \ldots, R^u)\] +
    +

    + where + + \(u \geq l\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + RE_INTER_UNION_INCLUSION + + + + +  + +
    +
    +
    +

    +

    +

    + + 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 + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_IN_RE_EVAL + + + + +  + +
    +
    +
    +

    +

    +

    + + 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. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_IN_RE_CONSUME + + + + +  + +
    +
    +
    +

    +

    +

    + + 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\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_IN_RE_CONCAT_STAR_CHAR + + + + +  + +
    +
    +
    +

    +

    +

    + + Strings – string in regular expression concatenation star character + +

    +
    + \[\begin{split}\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))\end{split}\] +
    +

    + where all strings in + + \(R\) + + have length one. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_IN_RE_SIGMA + + + + +  + +
    +
    +
    +

    +

    +

    + + 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)\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_IN_RE_SIGMA_STAR + + + + +  + +
    +
    +
    +

    +

    +

    + + 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{++}\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + MACRO_SUBSTR_STRIP_SYM_LENGTH + + + + +  + +
    +
    +
    +

    +

    +

    + + 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\) + + . +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SETS_IS_EMPTY_EVAL + + + + +  + +
    +
    +
    +

    +

    +

    + + 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. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SETS_INSERT_ELIM + + + + +  + +
    +
    +
    +

    +

    +

    + + Sets – sets insert elimination + +

    +
    + \[\mathit{sets.insert}(t_1, \ldots, t_n, S) = \texttt{set.union}(\texttt{sets.singleton}(t_1), \ldots, \texttt{sets.singleton}(t_n), S)\] +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_MUL_ONE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-mul-one +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_MUL_ZERO + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-mul-zero +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_DIV_TOTAL_REAL + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-div-total-real +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_DIV_TOTAL_INT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-div-total-int +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_DIV_TOTAL_ZERO_REAL + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-div-total-zero-real +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_DIV_TOTAL_ZERO_INT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-div-total-zero-int +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_INT_DIV_TOTAL + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-int-div-total +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_INT_DIV_TOTAL_ONE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-int-div-total-one +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_INT_DIV_TOTAL_ZERO + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-int-div-total-zero +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_INT_MOD_TOTAL + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-int-mod-total +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_INT_MOD_TOTAL_ONE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-int-mod-total-one +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_INT_MOD_TOTAL_ZERO + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-int-mod-total-zero +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_ELIM_GT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-elim-gt +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_ELIM_LT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-elim-lt +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_ELIM_INT_GT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-elim-int-gt +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_ELIM_INT_LT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-elim-int-lt +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_ELIM_LEQ + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-elim-leq +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_LEQ_NORM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-leq-norm +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_GEQ_TIGHTEN + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-geq-tighten +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_GEQ_NORM1_INT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-geq-norm1-int +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_GEQ_NORM1_REAL + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-geq-norm1-real +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_GEQ_NORM2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-geq-norm2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_REFL_LEQ + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-refl-leq +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_REFL_LT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-refl-lt +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_REFL_GEQ + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-refl-geq +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_REFL_GT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-refl-gt +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_EQ_ELIM_REAL + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-eq-elim-real +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_EQ_ELIM_INT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-eq-elim-int +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_PLUS_FLATTEN + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-plus-flatten +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_MULT_FLATTEN + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-mult-flatten +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_MULT_DIST + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-mult-dist +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_ABS_ELIM_INT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-abs-elim-int +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_ABS_ELIM_REAL + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-abs-elim-real +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_TO_REAL_ELIM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-to-real-elim +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_TO_INT_ELIM_TO_REAL + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-to-int-elim-to-real +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_DIV_ELIM_TO_REAL1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-div-elim-to-real1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_DIV_ELIM_TO_REAL2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-div-elim-to-real2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_SINE_ZERO + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-sine-zero +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_SINE_PI2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-sine-pi2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_COSINE_ELIM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-cosine-elim +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_TANGENT_ELIM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-tangent-elim +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_SECENT_ELIM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-secent-elim +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_COSECENT_ELIM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-cosecent-elim +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_COTANGENT_ELIM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-cotangent-elim +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_PI_NOT_INT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-pi-not-int +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_ABS_EQ + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-abs-eq +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_ABS_INT_GT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-abs-int-gt +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_ABS_REAL_GT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule arith-abs-real-gt +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARRAY_READ_OVER_WRITE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule array-read-over-write +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARRAY_READ_OVER_WRITE2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule array-read-over-write2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARRAY_STORE_OVERWRITE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule array-store-overwrite +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARRAY_STORE_SELF + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule array-store-self +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARRAY_READ_OVER_WRITE_SPLIT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule array-read-over-write-split +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BOOL_DOUBLE_NOT_ELIM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-double-not-elim +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BOOL_NOT_TRUE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-not-true +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BOOL_NOT_FALSE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-not-false +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BOOL_EQ_TRUE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-eq-true +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BOOL_EQ_FALSE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-eq-false +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BOOL_EQ_NREFL + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-eq-nrefl +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BOOL_IMPL_FALSE1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-impl-false1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BOOL_IMPL_FALSE2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-impl-false2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BOOL_IMPL_TRUE1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-impl-true1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BOOL_IMPL_TRUE2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-impl-true2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BOOL_IMPL_ELIM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-impl-elim +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BOOL_OR_TRUE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-or-true +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BOOL_OR_FLATTEN + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-or-flatten +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BOOL_AND_FALSE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-and-false +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BOOL_AND_FLATTEN + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-and-flatten +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BOOL_AND_CONF + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-and-conf +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BOOL_AND_CONF2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-and-conf2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BOOL_OR_TAUT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-or-taut +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BOOL_OR_TAUT2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-or-taut2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BOOL_OR_DE_MORGAN + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-or-de-morgan +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BOOL_IMPLIES_DE_MORGAN + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-implies-de-morgan +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BOOL_AND_DE_MORGAN + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-and-de-morgan +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BOOL_OR_AND_DISTRIB + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-or-and-distrib +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BOOL_XOR_REFL + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-xor-refl +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BOOL_XOR_NREFL + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-xor-nrefl +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BOOL_XOR_FALSE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-xor-false +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BOOL_XOR_TRUE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-xor-true +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BOOL_XOR_COMM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-xor-comm +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BOOL_XOR_ELIM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-xor-elim +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BOOL_NOT_XOR_ELIM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-not-xor-elim +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BOOL_NOT_EQ_ELIM1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-not-eq-elim1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BOOL_NOT_EQ_ELIM2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-not-eq-elim2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ITE_NEG_BRANCH + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule ite-neg-branch +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ITE_THEN_TRUE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule ite-then-true +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ITE_ELSE_FALSE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule ite-else-false +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ITE_THEN_FALSE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule ite-then-false +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ITE_ELSE_TRUE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule ite-else-true +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ITE_THEN_LOOKAHEAD_SELF + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule ite-then-lookahead-self +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ITE_ELSE_LOOKAHEAD_SELF + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule ite-else-lookahead-self +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ITE_THEN_LOOKAHEAD_NOT_SELF + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule ite-then-lookahead-not-self +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ITE_ELSE_LOOKAHEAD_NOT_SELF + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule ite-else-lookahead-not-self +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ITE_EXPAND + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule ite-expand +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BOOL_NOT_ITE_ELIM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bool-not-ite-elim +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ITE_TRUE_COND + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule ite-true-cond +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ITE_FALSE_COND + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule ite-false-cond +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ITE_NOT_COND + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule ite-not-cond +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ITE_EQ_BRANCH + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule ite-eq-branch +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ITE_THEN_LOOKAHEAD + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule ite-then-lookahead +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ITE_ELSE_LOOKAHEAD + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule ite-else-lookahead +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ITE_THEN_NEG_LOOKAHEAD + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule ite-then-neg-lookahead +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ITE_ELSE_NEG_LOOKAHEAD + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule ite-else-neg-lookahead +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_CONCAT_FLATTEN + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-concat-flatten +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_CONCAT_EXTRACT_MERGE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-concat-extract-merge +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_EXTRACT_EXTRACT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-extract-extract +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_EXTRACT_WHOLE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-extract-whole +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_EXTRACT_CONCAT_1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-extract-concat-1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_EXTRACT_CONCAT_2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-extract-concat-2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_EXTRACT_CONCAT_3 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-extract-concat-3 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_EXTRACT_CONCAT_4 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-extract-concat-4 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_EQ_EXTRACT_ELIM1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-eq-extract-elim1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_EQ_EXTRACT_ELIM2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-eq-extract-elim2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_EQ_EXTRACT_ELIM3 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-eq-extract-elim3 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_EXTRACT_BITWISE_AND + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-extract-bitwise-and +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_EXTRACT_BITWISE_OR + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-extract-bitwise-or +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_EXTRACT_BITWISE_XOR + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-extract-bitwise-xor +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_EXTRACT_NOT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-extract-not +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_EXTRACT_SIGN_EXTEND_1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-extract-sign-extend-1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_EXTRACT_SIGN_EXTEND_2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-extract-sign-extend-2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_EXTRACT_SIGN_EXTEND_3 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-extract-sign-extend-3 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_NEG_MULT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-neg-mult +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_NEG_ADD + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-neg-add +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_MULT_DISTRIB_CONST_NEG + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-mult-distrib-const-neg +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_MULT_DISTRIB_CONST_ADD + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-mult-distrib-const-add +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_MULT_DISTRIB_CONST_SUB + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-mult-distrib-const-sub +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_MULT_DISTRIB_1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-mult-distrib-1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_MULT_DISTRIB_2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-mult-distrib-2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_NOT_XOR + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-not-xor +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_AND_SIMPLIFY_1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-and-simplify-1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_AND_SIMPLIFY_2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-and-simplify-2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_OR_SIMPLIFY_1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-or-simplify-1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_OR_SIMPLIFY_2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-or-simplify-2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_XOR_SIMPLIFY_1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-xor-simplify-1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_XOR_SIMPLIFY_2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-xor-simplify-2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_XOR_SIMPLIFY_3 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-xor-simplify-3 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_ULT_ADD_ONE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ult-add-one +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_CONCAT_TO_MULT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-concat-to-mult +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_MULT_SLT_MULT_1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-mult-slt-mult-1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_MULT_SLT_MULT_2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-mult-slt-mult-2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_COMMUTATIVE_AND + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-commutative-and +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_COMMUTATIVE_OR + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-commutative-or +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_COMMUTATIVE_XOR + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-commutative-xor +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_COMMUTATIVE_MUL + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-commutative-mul +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_OR_ZERO + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-or-zero +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_MUL_ONE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-mul-one +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_MUL_ZERO + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-mul-zero +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_ADD_ZERO + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-add-zero +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_ADD_TWO + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-add-two +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_ZERO_EXTEND_ELIMINATE_0 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-zero-extend-eliminate-0 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_SIGN_EXTEND_ELIMINATE_0 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-sign-extend-eliminate-0 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_NOT_NEQ + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-not-neq +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_ULT_ONES + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ult-ones +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_OR_FLATTEN + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-or-flatten +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_XOR_FLATTEN + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-xor-flatten +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_AND_FLATTEN + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-and-flatten +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_MUL_FLATTEN + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-mul-flatten +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_CONCAT_MERGE_CONST + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-concat-merge-const +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_COMMUTATIVE_ADD + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-commutative-add +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_NEG_SUB + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-neg-sub +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_NEG_IDEMP + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-neg-idemp +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_SUB_ELIMINATE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-sub-eliminate +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_UGT_ELIMINATE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ugt-eliminate +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_UGE_ELIMINATE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-uge-eliminate +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_SGT_ELIMINATE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-sgt-eliminate +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_SGE_ELIMINATE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-sge-eliminate +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_SLT_ELIMINATE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-slt-eliminate +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_SLE_ELIMINATE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-sle-eliminate +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_REDOR_ELIMINATE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-redor-eliminate +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_REDAND_ELIMINATE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-redand-eliminate +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_ULE_ELIMINATE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ule-eliminate +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_COMP_ELIMINATE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-comp-eliminate +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_ROTATE_LEFT_ELIMINATE_1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-rotate-left-eliminate-1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_ROTATE_LEFT_ELIMINATE_2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-rotate-left-eliminate-2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_ROTATE_RIGHT_ELIMINATE_1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-rotate-right-eliminate-1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_ROTATE_RIGHT_ELIMINATE_2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-rotate-right-eliminate-2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_NAND_ELIMINATE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-nand-eliminate +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_NOR_ELIMINATE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-nor-eliminate +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_XNOR_ELIMINATE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-xnor-eliminate +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_SDIV_ELIMINATE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-sdiv-eliminate +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_SDIV_ELIMINATE_FEWER_BITWISE_OPS + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-sdiv-eliminate-fewer-bitwise-ops +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_ZERO_EXTEND_ELIMINATE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-zero-extend-eliminate +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_SIGN_EXTEND_ELIMINATE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-sign-extend-eliminate +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_UADDO_ELIMINATE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-uaddo-eliminate +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_SADDO_ELIMINATE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-saddo-eliminate +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_SDIVO_ELIMINATE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-sdivo-eliminate +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_SMOD_ELIMINATE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-smod-eliminate +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_SMOD_ELIMINATE_FEWER_BITWISE_OPS + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-smod-eliminate-fewer-bitwise-ops +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_SREM_ELIMINATE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-srem-eliminate +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_SREM_ELIMINATE_FEWER_BITWISE_OPS + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-srem-eliminate-fewer-bitwise-ops +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_USUBO_ELIMINATE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-usubo-eliminate +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_SSUBO_ELIMINATE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ssubo-eliminate +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_ITE_EQUAL_CHILDREN + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ite-equal-children +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_ITE_CONST_CHILDREN_1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ite-const-children-1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_ITE_CONST_CHILDREN_2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ite-const-children-2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_ITE_EQUAL_COND_1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ite-equal-cond-1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_ITE_EQUAL_COND_2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ite-equal-cond-2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_ITE_EQUAL_COND_3 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ite-equal-cond-3 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_ITE_MERGE_THEN_IF + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ite-merge-then-if +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_ITE_MERGE_ELSE_IF + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ite-merge-else-if +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_ITE_MERGE_THEN_ELSE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ite-merge-then-else +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_ITE_MERGE_ELSE_ELSE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ite-merge-else-else +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_SHL_BY_CONST_0 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-shl-by-const-0 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_SHL_BY_CONST_1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-shl-by-const-1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_SHL_BY_CONST_2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-shl-by-const-2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_LSHR_BY_CONST_0 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-lshr-by-const-0 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_LSHR_BY_CONST_1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-lshr-by-const-1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_LSHR_BY_CONST_2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-lshr-by-const-2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_ASHR_BY_CONST_0 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ashr-by-const-0 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_ASHR_BY_CONST_1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ashr-by-const-1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_ASHR_BY_CONST_2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ashr-by-const-2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_AND_CONCAT_PULLUP + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-and-concat-pullup +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_OR_CONCAT_PULLUP + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-or-concat-pullup +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_XOR_CONCAT_PULLUP + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-xor-concat-pullup +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_BITWISE_IDEMP_1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-bitwise-idemp-1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_BITWISE_IDEMP_2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-bitwise-idemp-2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_AND_ZERO + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-and-zero +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_AND_ONE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-and-one +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_OR_ONE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-or-one +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_XOR_DUPLICATE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-xor-duplicate +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_XOR_ONES + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-xor-ones +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_XOR_ZERO + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-xor-zero +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_BITWISE_NOT_AND + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-bitwise-not-and +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_BITWISE_NOT_OR + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-bitwise-not-or +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_XOR_NOT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-xor-not +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_NOT_IDEMP + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-not-idemp +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_ULT_ZERO_1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ult-zero-1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_ULT_ZERO_2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ult-zero-2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_ULT_SELF + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ult-self +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_LT_SELF + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-lt-self +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_ULE_SELF + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ule-self +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_ULE_ZERO + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ule-zero +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_ZERO_ULE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-zero-ule +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_SLE_SELF + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-sle-self +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_ULE_MAX + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ule-max +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_NOT_ULT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-not-ult +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_NOT_ULE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-not-ule +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_NOT_SLE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-not-sle +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_MULT_POW2_1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-mult-pow2-1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_MULT_POW2_2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-mult-pow2-2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_MULT_POW2_2B + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-mult-pow2-2b +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_EXTRACT_MULT_LEADING_BIT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-extract-mult-leading-bit +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_UDIV_POW2_NOT_ONE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-udiv-pow2-not-one +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_UDIV_ZERO + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-udiv-zero +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_UDIV_ONE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-udiv-one +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_UREM_POW2_NOT_ONE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-urem-pow2-not-one +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_UREM_ONE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-urem-one +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_UREM_SELF + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-urem-self +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_SHL_ZERO + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-shl-zero +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_LSHR_ZERO + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-lshr-zero +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_ASHR_ZERO + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ashr-zero +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_UGT_UREM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ugt-urem +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_ULT_ONE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-ult-one +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_SLT_ZERO + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-slt-zero +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_MERGE_SIGN_EXTEND_1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-merge-sign-extend-1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_MERGE_SIGN_EXTEND_2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-merge-sign-extend-2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_MERGE_SIGN_EXTEND_3 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-merge-sign-extend-3 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_SIGN_EXTEND_EQ_CONST_1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-sign-extend-eq-const-1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_SIGN_EXTEND_EQ_CONST_2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-sign-extend-eq-const-2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_ZERO_EXTEND_EQ_CONST_1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-zero-extend-eq-const-1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_ZERO_EXTEND_EQ_CONST_2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-zero-extend-eq-const-2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_SIGN_EXTEND_ULT_CONST_1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-sign-extend-ult-const-1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_SIGN_EXTEND_ULT_CONST_2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-sign-extend-ult-const-2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_SIGN_EXTEND_ULT_CONST_3 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-sign-extend-ult-const-3 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_SIGN_EXTEND_ULT_CONST_4 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule bv-sign-extend-ult-const-4 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SETS_EQ_SINGLETON_EMP + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule sets-eq-singleton-emp +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SETS_MEMBER_SINGLETON + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule sets-member-singleton +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SETS_MEMBER_EMP + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule sets-member-emp +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SETS_SUBSET_ELIM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule sets-subset-elim +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SETS_UNION_COMM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule sets-union-comm +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SETS_INTER_COMM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule sets-inter-comm +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SETS_INTER_EMP1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule sets-inter-emp1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SETS_INTER_EMP2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule sets-inter-emp2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SETS_MINUS_EMP1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule sets-minus-emp1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SETS_MINUS_EMP2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule sets-minus-emp2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SETS_UNION_EMP1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule sets-union-emp1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SETS_UNION_EMP2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule sets-union-emp2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SETS_INTER_MEMBER + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule sets-inter-member +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SETS_MINUS_MEMBER + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule sets-minus-member +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SETS_UNION_MEMBER + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule sets-union-member +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SETS_CHOOSE_SINGLETON + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule sets-choose-singleton +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SETS_CARD_SINGLETON + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule sets-card-singleton +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SETS_CARD_UNION + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule sets-card-union +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SETS_CARD_MINUS + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule sets-card-minus +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SETS_CARD_EMP + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule sets-card-emp +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SETS_MINUS_SELF + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule sets-minus-self +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SETS_IS_EMPTY_ELIM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule sets-is-empty-elim +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_EQ_CTN_FALSE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-eq-ctn-false +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_EQ_CTN_FULL_FALSE1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-eq-ctn-full-false1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_EQ_CTN_FULL_FALSE2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-eq-ctn-full-false2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_CONCAT_FLATTEN + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-concat-flatten +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_CONCAT_FLATTEN_EQ + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-concat-flatten-eq +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_CONCAT_FLATTEN_EQ_REV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-concat-flatten-eq-rev +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_SUBSTR_EMPTY_STR + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-substr-empty-str +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_SUBSTR_EMPTY_RANGE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-substr-empty-range +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_SUBSTR_EMPTY_START + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-substr-empty-start +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_SUBSTR_EMPTY_START_NEG + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-substr-empty-start-neg +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_SUBSTR_EQ_EMPTY + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-substr-eq-empty +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_LEN_REPLACE_INV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-len-replace-inv +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_LEN_UPDATE_INV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-len-update-inv +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_LEN_SUBSTR_IN_RANGE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-len-substr-in-range +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_LEN_SUBSTR_UB1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-len-substr-ub1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_LEN_SUBSTR_UB2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-len-substr-ub2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_CONCAT_CLASH + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-concat-clash +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_CONCAT_CLASH_REV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-concat-clash-rev +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_CONCAT_CLASH2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-concat-clash2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_CONCAT_CLASH2_REV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-concat-clash2-rev +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_CONCAT_UNIFY + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-concat-unify +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_CONCAT_UNIFY_REV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-concat-unify-rev +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_CONCAT_UNIFY_BASE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-concat-unify-base +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_CONCAT_UNIFY_BASE_REV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-concat-unify-base-rev +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_CONCAT_CLASH_CHAR + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-concat-clash-char +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_CONCAT_CLASH_CHAR_REV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-concat-clash-char-rev +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_PREFIXOF_ELIM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-prefixof-elim +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_SUFFIXOF_ELIM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-suffixof-elim +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_PREFIXOF_ONE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-prefixof-one +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_SUFFIXOF_ONE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-suffixof-one +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_SUBSTR_COMBINE1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-substr-combine1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_SUBSTR_COMBINE2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-substr-combine2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_SUBSTR_COMBINE3 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-substr-combine3 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_SUBSTR_COMBINE4 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-substr-combine4 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_SUBSTR_CONCAT1 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-substr-concat1 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_SUBSTR_CONCAT2 + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-substr-concat2 +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_SUBSTR_FULL + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-substr-full +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_SUBSTR_FULL_EQ + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-substr-full-eq +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_CONTAINS_REFL + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-contains-refl +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_CONTAINS_CONCAT_FIND + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-contains-concat-find +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_CONTAINS_SPLIT_CHAR + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-contains-split-char +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_CONTAINS_LT_LEN + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-contains-lt-len +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_CONTAINS_LEQ_LEN_EQ + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-contains-leq-len-eq +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_CONTAINS_EMP + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-contains-emp +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_CONTAINS_IS_EMP + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-contains-is-emp +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_AT_ELIM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-at-elim +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_REPLACE_SELF + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-replace-self +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_REPLACE_PREFIX + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-replace-prefix +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_REPLACE_NO_CONTAINS + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-replace-no-contains +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_REPLACE_EMPTY + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-replace-empty +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_REPLACE_CONTAINS_PRE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-replace-contains-pre +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_REPLACE_ALL_NO_CONTAINS + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-replace-all-no-contains +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_REPLACE_RE_NONE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-replace-re-none +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_REPLACE_RE_ALL_NONE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-replace-re-all-none +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_LEN_CONCAT_REC + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-len-concat-rec +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_INDEXOF_SELF + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-indexof-self +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_INDEXOF_NO_CONTAINS + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-indexof-no-contains +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_INDEXOF_CONTAINS_PRE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-indexof-contains-pre +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_INDEXOF_RE_NONE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-indexof-re-none +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_TO_LOWER_CONCAT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-to-lower-concat +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_TO_UPPER_CONCAT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-to-upper-concat +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_TO_LOWER_UPPER + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-to-lower-upper +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_TO_UPPER_LOWER + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-to-upper-lower +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_TO_LOWER_LEN + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-to-lower-len +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_TO_UPPER_LEN + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-to-upper-len +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_TO_LOWER_FROM_INT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-to-lower-from-int +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_TO_UPPER_FROM_INT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-to-upper-from-int +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_TO_INT_CONCAT_NEG_ONE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-to-int-concat-neg-one +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_LEQ_EMPTY + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-leq-empty +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_LEQ_EMPTY_EQ + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-leq-empty-eq +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_LEQ_CONCAT_FALSE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-leq-concat-false +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_LEQ_CONCAT_TRUE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-leq-concat-true +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_LT_ELIM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-lt-elim +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + RE_ALL_ELIM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule re-all-elim +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + RE_OPT_ELIM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule re-opt-elim +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + RE_DIFF_ELIM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule re-diff-elim +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + RE_CONCAT_EMP + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule re-concat-emp +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + RE_CONCAT_NONE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule re-concat-none +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + RE_CONCAT_FLATTEN + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule re-concat-flatten +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + RE_CONCAT_STAR_SWAP + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule re-concat-star-swap +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + RE_CONCAT_STAR_REPEAT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule re-concat-star-repeat +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + RE_CONCAT_MERGE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule re-concat-merge +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + RE_UNION_ALL + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule re-union-all +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + RE_UNION_NONE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule re-union-none +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + RE_UNION_FLATTEN + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule re-union-flatten +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + RE_UNION_DUP + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule re-union-dup +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + RE_INTER_ALL + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule re-inter-all +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + RE_INTER_NONE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule re-inter-none +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + RE_INTER_FLATTEN + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule re-inter-flatten +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + RE_INTER_DUP + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule re-inter-dup +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + RE_STAR_NONE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule re-star-none +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + RE_LOOP_NEG + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule re-loop-neg +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + RE_INTER_CSTRING + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule re-inter-cstring +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + RE_INTER_CSTRING_NEG + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule re-inter-cstring-neg +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_SUBSTR_LEN_INCLUDE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-substr-len-include +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_SUBSTR_LEN_INCLUDE_PRE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-substr-len-include-pre +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_SUBSTR_LEN_SKIP + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-substr-len-skip +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SEQ_LEN_REV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule seq-len-rev +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SEQ_REV_REV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule seq-rev-rev +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SEQ_REV_CONCAT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule seq-rev-concat +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SEQ_LEN_UNIT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule seq-len-unit +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SEQ_NTH_UNIT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule seq-nth-unit +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SEQ_REV_UNIT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule seq-rev-unit +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SEQ_LEN_EMPTY + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule seq-len-empty +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + RE_IN_EMPTY + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule re-in-empty +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + RE_IN_SIGMA + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule re-in-sigma +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + RE_IN_SIGMA_STAR + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule re-in-sigma-star +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + RE_IN_CSTRING + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule re-in-cstring +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + RE_IN_COMP + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule re-in-comp +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_IN_RE_UNION_ELIM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-union-elim +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_IN_RE_INTER_ELIM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-inter-elim +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_IN_RE_RANGE_ELIM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-range-elim +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_IN_RE_CONTAINS + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-contains +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_IN_RE_STRIP_PREFIX + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_IN_RE_STRIP_PREFIX_NEG + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-neg +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_IN_RE_STRIP_PREFIX_SR_SINGLE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-sr-single +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-sr-single-neg +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_IN_RE_STRIP_PREFIX_SRS_SINGLE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-srs-single +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-srs-single-neg +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_IN_RE_STRIP_PREFIX_S_SINGLE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-s-single +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-s-single-neg +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_IN_RE_STRIP_PREFIX_BASE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-base +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_IN_RE_STRIP_PREFIX_BASE_NEG + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-base-neg +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-base-s-single +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-base-s-single-neg +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_IN_RE_STRIP_CHAR + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-char +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_IN_RE_STRIP_CHAR_S_SINGLE + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-char-s-single +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_IN_RE_STRIP_PREFIX_REV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-rev +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_IN_RE_STRIP_PREFIX_NEG_REV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-neg-rev +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_IN_RE_STRIP_PREFIX_SR_SINGLE_REV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-sr-single-rev +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG_REV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-sr-single-neg-rev +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_REV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-srs-single-rev +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG_REV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-srs-single-neg-rev +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_IN_RE_STRIP_PREFIX_S_SINGLE_REV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-s-single-rev +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG_REV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-s-single-neg-rev +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_IN_RE_STRIP_PREFIX_BASE_REV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-base-rev +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_IN_RE_STRIP_PREFIX_BASE_NEG_REV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-base-neg-rev +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_REV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-base-s-single-rev +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG_REV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-base-s-single-neg-rev +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_IN_RE_STRIP_CHAR_REV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-char-rev +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_IN_RE_STRIP_CHAR_S_SINGLE_REV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-char-s-single-rev +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_IN_RE_REQ_UNFOLD + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-req-unfold +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_IN_RE_REQ_UNFOLD_REV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-req-unfold-rev +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_IN_RE_SKIP_UNFOLD + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-skip-unfold +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_IN_RE_SKIP_UNFOLD_REV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-skip-unfold-rev +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_IN_RE_TEST_UNFOLD + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-test-unfold +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STR_IN_RE_TEST_UNFOLD_REV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule str-in-re-test-unfold-rev +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + EQ_REFL + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule eq-refl +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + EQ_SYMM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule eq-symm +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + EQ_COND_DEQ + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule eq-cond-deq +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + EQ_ITE_LIFT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule eq-ite-lift +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + DISTINCT_BINARY_ELIM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule distinct-binary-elim +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + UF_BV2NAT_INT2BV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule uf-bv2nat-int2bv +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + UF_BV2NAT_INT2BV_EXTEND + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule uf-bv2nat-int2bv-extend +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + UF_BV2NAT_INT2BV_EXTRACT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule uf-bv2nat-int2bv-extract +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + UF_INT2BV_BV2NAT + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule uf-int2bv-bv2nat +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + UF_BV2NAT_GEQ_ELIM + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule uf-bv2nat-geq-elim +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + UF_INT2BV_BVULT_EQUIV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule uf-int2bv-bvult-equiv +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + UF_INT2BV_BVULE_EQUIV + + + + +  + +
    +
    +
    +

    + Auto-generated from RARE rule uf-int2bv-bvule-equiv +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + + cvc5 + + + + + :: + + + + + + + operator + + + + + << + + + + + ( + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + out + + + , + + + + ProofRewriteRule + + + + + + + + rule + + + + ) + + +  + +
    +
    +
    +

    + Writes a proof rewrite rule name to a stream. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + out + + – The stream to write to +

      +
    • +
    • +

      + + rule + + – The proof rewrite rule to write to the stream +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The stream +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + string + + + + + + + + std + + + + + :: + + + + + + + to_string + + + + + ( + + + + cvc5 + + + + + :: + + + + + + ProofRewriteRule + + + + + + + + rule + + + + ) + + +  + +
    +
    +
    +

    + Converts a proof rewrite rule to a string. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + rule + + – The proof rewrite rule +

    +
    +
    + Returns + + : + +
    +
    +

    + The name of the proof rewrite rule +

    +
    +
    +
    +
    +
    +
    + + + + + + + template + + + + + < + + + + + > + + +
    + + + + + struct + + + + + + + + hash + + + + + + < + + + + + cvc5 + + + + + :: + + + + + + ProofRewriteRule + + + + + + > + + + +  + +
    +
    +
    +

    + Hash function for ProofRewriteRules. +

    +
    +

    + Public Functions +

    +
    +
    + + + + + + + + + + + size_t + + + + + + + + operator + + + + + () + + + + + ( + + + + cvc5 + + + + + :: + + + + + + ProofRewriteRule + + + + + + + + rule + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Hashes a ProofRewriteRule to a size_t. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + rule + + – The proof rewrite rule. +

    +
    +
    + Returns + + : + +
    +
    +

    + The hash value. +

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/enums/roundingmode.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/enums/roundingmode.html new file mode 100644 index 0000000000..ec664a5ebc --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/enums/roundingmode.html @@ -0,0 +1,1036 @@ + + + + + + + + + + + RoundingMode — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + RoundingMode + +  + +

    +

    + This enum class represents a floating-point rounding mode. +

    +
    + +
    +
    +
    + + + + + + + + + enum + + + + + + + class + + + + + + + + cvc5 + + + + + :: + + + + + + + RoundingMode + + + + +  + +
    +
    +
    +

    + Rounding modes for floating-point numbers. +

    +

    + For many floating-point operations, infinitely precise results may not be representable with the number of available bits. Thus, the results are rounded in a certain way to one of the representable floating-point numbers. +

    +

    + These rounding modes directly follow the SMT-LIB theory for floating-point +arithmetic, which in turn is based on IEEE Standard 754 + + [ + + IEE19 + + ] + + . +The rounding modes are specified in Sections 4.3.1 and 4.3.2 of the IEEE +Standard 754. +

    +

    + + Values: + +

    +
    +
    + + + + + + + + + enumerator + + + + + + + + ROUND_NEAREST_TIES_TO_EVEN + + + + +  + +
    +
    +
    +

    + Round to the nearest even number. +

    +

    + If the two nearest floating-point numbers bracketing an unrepresentable infinitely precise result are equally near, the one with an even least significant digit will be delivered. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ROUND_TOWARD_POSITIVE + + + + +  + +
    +
    +
    +

    + Round towards positive infinity (SMT-LIB: + + + +oo + + + ). +

    +

    + The result shall be the format’s floating-point number (possibly + + + +oo + + + ) closest to and no less than the infinitely precise result. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ROUND_TOWARD_NEGATIVE + + + + +  + +
    +
    +
    +

    + Round towards negative infinity ( + + + -oo + + + ). +

    +

    + The result shall be the format’s floating-point number (possibly + + + -oo + + + ) closest to and no less than the infinitely precise result. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ROUND_TOWARD_ZERO + + + + +  + +
    +
    +
    +

    + Round towards zero. +

    +

    + The result shall be the format’s floating-point number closest to and no greater in magnitude than the infinitely precise result. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ROUND_NEAREST_TIES_TO_AWAY + + + + +  + +
    +
    +
    +

    + Round to the nearest number away from zero. +

    +

    + If the two nearest floating-point numbers bracketing an unrepresentable infinitely precise result are equally near), the one with larger magnitude will be selected. +

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + + cvc5 + + + + + :: + + + + + + + operator + + + + + << + + + + + ( + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + out + + + , + + + + RoundingMode + + + + + + + + rm + + + + ) + + +  + +
    +
    +
    +

    + Serialize a RoundingMode to given stream. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + out + + – The output stream +

      +
    • +
    • +

      + + rm + + – The rounding mode to be serialized to the given output stream +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The output stream +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + string + + + + + + + + std + + + + + :: + + + + + + + to_string + + + + + ( + + + + cvc5 + + + + + :: + + + + + + RoundingMode + + + + + + + + rm + + + + ) + + +  + +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/enums/sortkind.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/enums/sortkind.html new file mode 100644 index 0000000000..6d45cc960e --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/enums/sortkind.html @@ -0,0 +1,2352 @@ + + + + + + + + + + + SortKind — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + SortKind + +  + +

    +

    + Every + + + + Sort + + + + has an associated kind, represented +as enum class + + + + cvc5::SortKind + + + + . +

    +
    + +
    +
    +
    + + + + + + + + + enum + + + + + + + class + + + + + + + + cvc5 + + + + + :: + + + + + + + SortKind + + + + +  + +
    +
    +
    +

    + The kind of a cvc5 + + + Sort + + + . +

    +

    + + Values: + +

    +
    +
    + + + + + + + + + enumerator + + + + + + + + INTERNAL_SORT_KIND + + + + +  + +
    +
    +
    +

    + Internal kind. +

    +

    + This kind serves as an abstraction for internal kinds that are not exposed via the API but may appear in terms returned by API functions, e.g., when querying the simplified form of a term. +

    +
    +

    + Note +

    +

    + Should never be created via the API. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + UNDEFINED_SORT_KIND + + + + +  + +
    +
    +
    +

    + Undefined kind. +

    +
    +

    + Note +

    +

    + Should never be exposed or created via the API. +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + NULL_SORT + + + + +  + +
    +
    +
    +

    + Null kind. +

    +

    + The kind of a null sort ( + + + Sort::Sort() + + + ). +

    +
    +

    + Note +

    +

    + May not be explicitly created via API functions other than + + + + Sort::Sort() + + + + . +

    +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ABSTRACT_SORT + + + + +  + +
    +
    +
    +

    + An abstract sort. +

    +

    + An abstract sort represents a sort whose parameters or argument sorts are unspecified. For example, + + + mkAbstractSort(BITVECTOR_SORT) + + + returns a sort that represents the sort of bit-vectors whose bit-width is unspecified. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARRAY_SORT + + + + +  + +
    +
    +
    +

    + An array sort, whose argument sorts are the index and element sorts of the array. +

    +

    +

    +
      +
    • +

      + Create + + + Sort + + + of this Kind with: +

      +
        +
      • +

        + Solver::mkArraySort(Sort, Sort) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BAG_SORT + + + + +  + +
    +
    +
    +

    + A bag sort, whose argument sort is the element sort of the bag. +

    +

    +

    +
      +
    • +

      + Create + + + Sort + + + of this Kind with: +

      +
        +
      • +

        + Solver::mkBagSort(Sort) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BOOLEAN_SORT + + + + +  + +
    +
    +
    +

    + The Boolean sort. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BITVECTOR_SORT + + + + +  + +
    +
    +
    +

    + A bit-vector sort, parameterized by an integer denoting its bit-width. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + DATATYPE_SORT + + + + +  + +
    +
    +
    +

    + A datatype sort. +

    +

    +

    +
      +
    • +

      + Create + + + Sort + + + of this Kind with: +

      +
        +
      • +

        + Solver::mkDatatypeSort(DatatypeDecl) +

        +
      • +
      • +

        + Solver::mkDatatypeSorts(const std::vector<DatatypeDecl>&) +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + FINITE_FIELD_SORT + + + + +  + +
    +
    +
    +

    + A finite field sort, parameterized by a size. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + FLOATINGPOINT_SORT + + + + +  + +
    +
    +
    +

    + A floating-point sort, parameterized by two integers denoting its exponent and significand bit-widths. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + FUNCTION_SORT + + + + +  + +
    +
    +
    +

    + A function sort with given domain sorts and codomain sort. +

    +

    +

    +
      +
    • +

      + Create + + + Sort + + + of this Kind with: +

      +
        +
      • +

        + Solver::mkFunctionSort(const std::vector<Sort>&, Sort) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + INTEGER_SORT + + + + +  + +
    +
    +
    +

    + The integer sort. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + REAL_SORT + + + + +  + +
    +
    +
    +

    + The real sort. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + REGLAN_SORT + + + + +  + +
    +
    +
    +

    + The regular language sort. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ROUNDINGMODE_SORT + + + + +  + +
    +
    +
    +

    + The rounding mode sort. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SEQUENCE_SORT + + + + +  + +
    +
    +
    +

    + A sequence sort, whose argument sort is the element sort of the sequence. +

    +

    +

    +
      +
    • +

      + Create + + + Sort + + + of this Kind with: +

      +
        +
      • +

        + Solver::mkSequenceSort(Sort) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SET_SORT + + + + +  + +
    +
    +
    +

    + A set sort, whose argument sort is the element sort of the set. +

    +

    +

    +
      +
    • +

      + Create + + + Sort + + + of this Kind with: +

      +
        +
      • +

        + Solver::mkSetSort(Sort) const +

        +
      • +
      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STRING_SORT + + + + +  + +
    +
    +
    +

    + The string sort. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + TUPLE_SORT + + + + +  + +
    +
    +
    +

    + A tuple sort, whose argument sorts denote the sorts of the direct children of the tuple. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + NULLABLE_SORT + + + + +  + +
    +
    +
    +

    + A nullable sort, whose argument sort denotes the sort of the direct child of the nullable. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + UNINTERPRETED_SORT + + + + +  + +
    +
    +
    +

    + An uninterpreted sort. +

    +

    +

    + +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + LAST_SORT_KIND + + + + +  + +
    +
    +
    +

    + Marks the upper-bound of this enumeration. +

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + + cvc5 + + + + + :: + + + + + + + operator + + + + + << + + + + + ( + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + out + + + , + + + + SortKind + + + + + + + + k + + + + ) + + +  + +
    +
    +
    +

    + Serialize a kind to given stream. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + out + + – the output stream +

      +
    • +
    • +

      + + k + + – the sort kind to be serialized to the given output stream +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + the output stream +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + string + + + + + + + + std + + + + + :: + + + + + + + to_string + + + + + ( + + + + cvc5 + + + + + :: + + + + + + SortKind + + + + + + + + k + + + + ) + + +  + +
    +
    +
    +

    + Get the string representation of a given kind. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + k + + – the sort kind +

    +
    +
    + Returns + + : + +
    +
    +

    + the string representation of kind k +

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + template + + + + + < + + + + + > + + +
    + + + + + struct + + + + + + + + hash + + + + + + < + + + + + cvc5 + + + + + :: + + + + + + SortKind + + + + + + > + + + +  + +
    +
    +
    +

    + Hash function for SortKinds. +

    +
    +

    + Public Functions +

    +
    +
    + + + + + + + + + + + size_t + + + + + + + + operator + + + + + () + + + + + ( + + + + cvc5 + + + + + :: + + + + + + SortKind + + + + + + + + kind + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Hashes a SortKind to a size_t. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + kind + + – The kind. +

    +
    +
    + Returns + + : + +
    +
    +

    + The hash value. +

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/enums/unknownexplanation.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/enums/unknownexplanation.html new file mode 100644 index 0000000000..1150f20212 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/enums/unknownexplanation.html @@ -0,0 +1,1157 @@ + + + + + + + + + + + UnknownExplanation — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + UnknownExplanation + +  + +

    +

    + This enum class represents the explanation for an unknown solver result +(see + + + Result + + + ). +

    +
    + +
    +
    +
    + + + + + + + + + enum + + + + + + + class + + + + + + + + cvc5 + + + + + :: + + + + + + + UnknownExplanation + + + + +  + +
    +
    +
    +

    + The different reasons for returning an “unknown” result. +

    +

    + + Values: + +

    +
    +
    + + + + + + + + + enumerator + + + + + + + + REQUIRES_FULL_CHECK + + + + +  + +
    +
    +
    +

    + Full satisfiability check required (e.g., if only preprocessing was performed). +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + INCOMPLETE + + + + +  + +
    +
    +
    +

    + Incomplete theory solver. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + TIMEOUT + + + + +  + +
    +
    +
    +

    + Time limit reached. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + RESOURCEOUT + + + + +  + +
    +
    +
    +

    + Resource limit reached. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + MEMOUT + + + + +  + +
    +
    +
    +

    + Memory limit reached. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + INTERRUPTED + + + + +  + +
    +
    +
    +

    + + + Solver + + + was interrupted. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + UNSUPPORTED + + + + +  + +
    +
    +
    +

    + Unsupported feature encountered. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + OTHER + + + + +  + +
    +
    +
    +

    + Other reason. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + REQUIRES_CHECK_AGAIN + + + + +  + +
    +
    +
    +

    + Requires another satisfiability check +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + UNKNOWN_REASON + + + + +  + +
    +
    +
    +

    + No specific reason given. +

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + + cvc5 + + + + + :: + + + + + + + operator + + + + + << + + + + + ( + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + out + + + , + + + + UnknownExplanation + + + + + + + + e + + + + ) + + +  + +
    +
    +
    +

    + Serialize an UnknownExplanation to given stream. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + out + + – The output stream +

      +
    • +
    • +

      + + e + + – The explanation to be serialized to the given output stream +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The output stream +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + string + + + + + + + + std + + + + + :: + + + + + + + to_string + + + + + ( + + + + cvc5 + + + + + :: + + + + + + UnknownExplanation + + + + + + + + exp + + + + ) + + +  + +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/exceptions/exceptions.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/exceptions/exceptions.html new file mode 100644 index 0000000000..654a659db9 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/exceptions/exceptions.html @@ -0,0 +1,2082 @@ + + + + + + + + + + + Exceptions — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Exceptions + +  + +

    +

    + The cvc5 API communicates certain errors using exceptions. We broadly +distinguish two types of exceptions: + + + + CVC5ApiException + + + + and + + + + CVC5ApiRecoverableException + + + + (which is derived from + + + + CVC5ApiException + + + + ). +

    +

    + If any method fails with a + + + + CVC5ApiRecoverableException + + + + , the solver behaves as if the failing +method was not called. The solver can still be used safely. +

    +

    + If, however, a method fails with a + + + + CVC5ApiException + + + + , the associated object may be in an unsafe state +and it should no longer be used. +

    +

    + If the + + + + cvc5::parser::InputParser + + + + encounters an error, it will +throw a + + + + cvc5::parser::ParserException + + + + . +If thrown, API objects can still be used +

    +
    +
    + + + + + + + + + + + class + + + + + + + + CVC5ApiException + + + + + + + + : + + + + + + + public + + + + + + + exception + + + +  + +
    +
    +
    +

    + Base class for all API exceptions. If thrown, all API objects may be in an unsafe state. +

    +

    + Subclassed by + + + cvc5::CVC5ApiRecoverableException + + + , + + + cvc5::parser::ParserException + + +

    +
    +

    + Public Functions +

    +
    +
    + + + + + + + + + + + inline + + + + + + + + CVC5ApiException + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + str + + + + ) + + +  + +
    +
    +
    +

    + Construct with message from a string. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + str + + – The error message. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + inline + + + + + + + + CVC5ApiException + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + stringstream + + + + + + + & + + + + + stream + + + + ) + + +  + +
    +
    +
    +

    + Construct with message from a string stream. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + stream + + – The error message. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + inline + + + + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + + getMessage + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Retrieve the message from this exception. +

    +
    +
    + Returns + + : + +
    +
    +

    + The error message. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + inline + + + + + + + const + + + + + + + char + + + + + + + * + + + + + + what + + + + + ( + + + ) + + + + + + const + + + + + + + noexcept + + + + + + + override + + + +  + +
    +
    +
    +

    + Retrieve the message as a C-style array. +

    +
    +
    + Returns + + : + +
    +
    +

    + The error message. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + inline + + + + + + + virtual + + + + + + + void + + + + + + + + toStream + + + + + ( + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + os + + + + ) + + + + + + const + + + +  + +
    +
    +
    +

    + Printing: feel free to redefine + + + toStream() + + + . When overridden in a derived class, it’s recommended that this method print the type of exception before the actual message. +

    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + class + + + + + + + + CVC5ApiRecoverableException + + + + + + + + : + + + + + + + public + + + + + + + cvc5 + + + + + :: + + + + + + CVC5ApiException + + + + +  + +
    +
    +
    +

    + A recoverable API exception. If thrown, API objects can still be used. +

    +

    + Subclassed by cvc5::CVC5ApiOptionException, cvc5::CVC5ApiUnsupportedException +

    +
    +

    + Public Functions +

    +
    +
    + + + + + + + + + + + inline + + + + + + + + CVC5ApiRecoverableException + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + str + + + + ) + + +  + +
    +
    +
    +

    + Construct with message from a string. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + str + + – The error message. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + inline + + + + + + + + CVC5ApiRecoverableException + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + stringstream + + + + + + + & + + + + + stream + + + + ) + + +  + +
    +
    +
    +

    + Construct with message from a string stream. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + stream + + – The error message. +

    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + class + + + + + + + + ParserException + + + + + + + + : + + + + + + + public + + + + + + + cvc5 + + + + + :: + + + + + + CVC5ApiException + + + + +  + +
    +
    +
    +

    + Base class for all Parser exceptions. If thrown, API objects can still be used +

    +

    + Subclassed by cvc5::parser::ParserEndOfFileException +

    +
    +

    + Public Functions +

    +
    +
    + + + + + + + + + + + + ParserException + + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Default constructor +

    +
    +
    +
    +
    + + + + + + + + + + + + ParserException + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + msg + + + + ) + + +  + +
    +
    +
    +

    + Construct with message from a string. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + msg + + – The error message. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + ParserException + + + + + ( + + + + const + + + + + + + char + + + + + + + * + + + + + msg + + + + ) + + +  + +
    +
    +
    +

    + Construct with message from a C string. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + msg + + – The error message. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + ParserException + + + + + ( + + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + msg + + + , + + + const + + + + + + + std + + + + + :: + + + + + string + + + + + + + & + + + + + filename + + + , + + + unsigned + + + + + + + long + + + + + + + line + + + , + + + unsigned + + + + + + + long + + + + + + + column + + + + ) + + +  + +
    +
    +
    +

    + Construct with message from a string. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + msg + + – The error message. +

      +
    • +
    • +

      + + filename + + – name of the file. +

      +
    • +
    • +

      + + line + + – The error line number. +

      +
    • +
    • +

      + + column + + – The error column number. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + virtual + + + + + + + void + + + + + + + + toStream + + + + + ( + + + + std + + + + + :: + + + + + ostream + + + + + + + & + + + + + os + + + + ) + + + + + + const + + + + + + + override + + + +  + +
    +
    +
    +

    + Print error to output stream. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + os + + – The output stream to write the error on. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + std + + + + + :: + + + + + string + + + + + + + + getFilename + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The file name. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + unsigned + + + + + + + long + + + + + + + + getLine + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The line number of the parsing error. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + unsigned + + + + + + + long + + + + + + + + getColumn + + + + + ( + + + ) + + + + + + const + + + +  + +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The column number of the parsing error. +

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/quickstart.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/quickstart.html new file mode 100644 index 0000000000..cd9aaa9b60 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/cpp/quickstart.html @@ -0,0 +1,1778 @@ + + + + + + + + + + + Quickstart Guide — cvc5 documentation + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Quickstart Guide + +  + +

    +

    + First, create a cvc5 + + + + TermManager + + + + instance: +

    +
    +
    +
    TermManager tm;
    +
    +
    +
    +

    + Then, create a cvc5 + + + + Solver + + + + instance: +

    +
    +
    +
    Solver solver(tm);
    +
    +
    +
    +

    + We will ask the solver to produce models and unsat cores in the following, +and for this we have to enable the following options. +

    +
    +
    +
    solver.setOption("produce-models", "true");
    +solver.setOption("produce-unsat-cores", "true");
    +
    +
    +
    +

    + Next we set the logic. +The simplest way to set a logic for the solver is to choose “ALL”. +This enables all logics in the solver. +Alternatively, + + + "QF_ALL" + + + enables all logics without quantifiers. +To optimize the solver’s behavior for a more specific logic, +use the logic name, e.g. + + + "QF_BV" + + + or + + + "QF_AUFBV" + + + . +

    +
    +
    +
    solver.setLogic("ALL");
    +
    +
    +
    +

    + In the following, we will define constraints of reals and integers. +For this, we first query the solver for the corresponding sorts. +

    +
    +
    +
    Sort realSort = tm.getRealSort();
    +Sort intSort = tm.getIntegerSort();
    +
    +
    +
    +

    + Now, we create two constants + + + x + + + and + + + y + + + of sort + + + Real + + + , +and two constants + + + a + + + and + + + b + + + of sort + + + Integer + + + . +Notice that these are + + symbolic + + constants, but not actual values. +

    +
    +
    +
    Term x = tm.mkConst(realSort, "x");
    +Term y = tm.mkConst(realSort, "y");
    +Term a = tm.mkConst(intSort, "a");
    +Term b = tm.mkConst(intSort, "b");
    +
    +
    +
    +

    + We define the following constraints regarding + + + x + + + and + + + y + + + : +

    +
    + \[(0 < x) \wedge (0 < y) \wedge (x + y < 1) \wedge (x \leq y)\] +
    +

    + We construct the required terms and assert them as follows: +

    +
    +
    +
    // Formally, constraints are also terms. Their sort is Boolean.
    +// We will construct these constraints gradually,
    +// by defining each of their components.
    +// We start with the constant numerals 0 and 1:
    +Term zero = tm.mkReal(0);
    +Term one = tm.mkReal(1);
    +
    +// Next, we construct the term x + y
    +Term xPlusY = tm.mkTerm(Kind::ADD, {x, y});
    +
    +// Now we can define the constraints.
    +// They use the operators +, <=, and <.
    +// In the API, these are denoted by ADD, LEQ, and LT.
    +// A list of available operators is available in:
    +// src/api/cpp/cvc5_kind.h
    +Term constraint1 = tm.mkTerm(Kind::LT, {zero, x});
    +Term constraint2 = tm.mkTerm(Kind::LT, {zero, y});
    +Term constraint3 = tm.mkTerm(Kind::LT, {xPlusY, one});
    +Term constraint4 = tm.mkTerm(Kind::LEQ, {x, y});
    +
    +// Now we assert the constraints to the solver.
    +solver.assertFormula(constraint1);
    +solver.assertFormula(constraint2);
    +solver.assertFormula(constraint3);
    +solver.assertFormula(constraint4);
    +
    +
    +
    +

    + Now we check if the asserted formula is satisfiable, that is, we check if +there exist values of sort + + + Real + + + for + + + x + + + and + + + y + + + that satisfy all +the constraints. +

    +
    +
    +
    Result r1 = solver.checkSat();
    +
    +
    +
    +

    + The result we get from this satisfiability check is either + + + sat + + + , + + + unsat + + + or + + + unknown + + + . +It’s status can be queried via + + + + cvc5::Result::isSat() + + + + , + + + + cvc5::Result::isUnsat() + + + + and + + + cvc5::Result::isSatUnknown() + + + . +Alternatively, it can also be printed. +

    +
    +
    +
    std::cout << "expected: sat" << std::endl;
    +std::cout << "result: " << r1 << std::endl;
    +
    +
    +
    +

    + This will print: +

    +
    +
    +
    expected: sat
    +result: sat
    +
    +
    +
    +

    + Now, we query the solver for the values for + + + x + + + and + + + y + + + that satisfy +the constraints. +

    +
    +
    +
    Term xVal = solver.getValue(x);
    +Term yVal = solver.getValue(y);
    +
    +
    +
    +

    + It is also possible to get values for terms that do not appear in the original +formula. +

    +
    +
    +
    Term xMinusY = tm.mkTerm(Kind::SUB, {x, y});
    +Term xMinusYVal = solver.getValue(xMinusY);
    +
    +
    +
    +

    + We can retrieve the string representation of these values as follows. +

    +
    +
    +
    std::string xStr = xVal.getRealValue();
    +std::string yStr = yVal.getRealValue();
    +std::string xMinusYStr = xMinusYVal.getRealValue();
    +
    +std::cout << "value for x: " << xStr << std::endl;
    +std::cout << "value for y: " << yStr << std::endl;
    +std::cout << "value for x - y: " << xMinusYStr << std::endl;
    +
    +
    +
    +

    + This will print the following: +

    +
    +
    +
    value for x: 1/6
    +value for y: 1/6
    +value for x - y: 0.0
    +
    +
    +
    +

    + We can convert these values to C++ types. +

    +
    +
    +
    // Further, we can convert the values to cpp types
    +std::pair<int64_t, uint64_t> xPair = xVal.getReal64Value();
    +std::pair<int64_t, uint64_t> yPair = yVal.getReal64Value();
    +std::pair<int64_t, uint64_t> xMinusYPair = xMinusYVal.getReal64Value();
    +
    +std::cout << "value for x: " << xPair.first << "/" << xPair.second
    +          << std::endl;
    +std::cout << "value for y: " << yPair.first << "/" << yPair.second
    +          << std::endl;
    +std::cout << "value for x - y: " << xMinusYPair.first << "/"
    +          << xMinusYPair.second << std::endl;
    +
    +
    +
    +

    + Another way to independently compute the value of + + + x + + + - + + + y + + + would be to +perform the (rational) arithmetic manually. +However, for more complex terms, it is easier to let the solver do the +evaluation. +

    +
    +
    +
    std::pair<int64_t, uint64_t> xMinusYComputed = {
    +  xPair.first * yPair.second - xPair.second * yPair.first,
    +  xPair.second * yPair.second
    +};
    +uint64_t g = std::gcd(xMinusYComputed.first, xMinusYComputed.second);
    +xMinusYComputed = { xMinusYComputed.first / g, xMinusYComputed.second / g };
    +if (xMinusYComputed == xMinusYPair)
    +{
    +  std::cout << "computed correctly" << std::endl;
    +}
    +else
    +{
    +  std::cout << "computed incorrectly" << std::endl;
    +}
    +
    +
    +
    +

    + This will print: +

    +
    +
    +
    computed correctly
    +
    +
    +
    +

    + Next, we will check satisfiability of the same formula, +only this time over integer variables + + + a + + + and + + + b + + + . +For this, we first reset the assertions added to the solver. +

    +
    +
    +
    solver.resetAssertions();
    +
    +
    +
    +

    + Next, we assert the same assertions as above, but with integers. +This time, we inline the construction of terms +to the assertion command. +

    +
    +
    +
    solver.assertFormula(tm.mkTerm(Kind::LT, {tm.mkInteger(0), a}));
    +solver.assertFormula(tm.mkTerm(Kind::LT, {tm.mkInteger(0), b}));
    +solver.assertFormula(
    +    tm.mkTerm(Kind::LT, {tm.mkTerm(Kind::ADD, {a, b}), tm.mkInteger(1)}));
    +solver.assertFormula(tm.mkTerm(Kind::LEQ, {a, b}));
    +
    +
    +
    +

    + Now, we check whether the revised assertion is satisfiable. +

    +
    +
    +
    Result r2 = solver.checkSat();
    +
    +
    +
    +
    +
    +
    std::cout << "expected: unsat" << std::endl;
    +std::cout << "result: " << r2 << std::endl;
    +
    +
    +
    +

    + This time the asserted formula is unsatisfiable: +

    +
    +
    +
    expected: unsat
    +result: unsat
    +
    +
    +
    +

    + We can query the solver for an unsatisfiable core, that is, a subset +of the assertions that is already unsatisfiable. +

    +
    +
    +
    std::vector<Term> unsatCore = solver.getUnsatCore();
    +std::cout << "unsat core size: " << unsatCore.size() << std::endl;
    +std::cout << "unsat core: " << std::endl;
    +for (const Term& t : unsatCore)
    +{
    +  std::cout << t << std::endl;
    +}
    +
    +
    +
    +

    + This will print: +

    +
    +
    +
    unsat core size: 3
    +unsat core:
    +(< 0 a)
    +(< 0 b)
    +(< (+ a b) 1)
    +
    +
    +
    +
    +

    + Example + +  + +

    +
    +
    + + + + + +
    +
    +

    + + examples/api/cpp/quickstart.cpp + +

    +
    +
    +
      1/******************************************************************************
    +  2 * Top contributors (to current version):
    +  3 *   Yoni Zohar, Aina Niemetz, Gereon Kremer
    +  4 *
    +  5 * This file is part of the cvc5 project.
    +  6 *
    +  7 * Copyright (c) 2009-2024 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 * A simple demonstration of the API capabilities of cvc5.
    + 14 *
    + 15 */
    + 16
    + 17#include <cvc5/cvc5.h>
    + 18
    + 19#include <iostream>
    + 20#include <numeric>
    + 21
    + 22using namespace cvc5;
    + 23
    + 24int main()
    + 25{
    + 26  // Create a term manager
    + 27  //! [docs-cpp-quickstart-0 start]
    + 28  TermManager tm;
    + 29  //! [docs-cpp-quickstart-0 end]
    + 30  // Create a solver
    + 31  //! [docs-cpp-quickstart-1 start]
    + 32  Solver solver(tm);
    + 33  //! [docs-cpp-quickstart-1 end]
    + 34
    + 35  // We will ask the solver to produce models and unsat cores,
    + 36  // hence these options should be turned on.
    + 37  //! [docs-cpp-quickstart-2 start]
    + 38  solver.setOption("produce-models", "true");
    + 39  solver.setOption("produce-unsat-cores", "true");
    + 40  //! [docs-cpp-quickstart-2 end]
    + 41
    + 42  // The simplest way to set a logic for the solver is to choose "ALL".
    + 43  // This enables all logics in the solver.
    + 44  // Alternatively, "QF_ALL" enables all logics without quantifiers.
    + 45  // To optimize the solver's behavior for a more specific logic,
    + 46  // use the logic name, e.g. "QF_BV" or "QF_AUFBV".
    + 47
    + 48  // Set the logic
    + 49  //! [docs-cpp-quickstart-3 start]
    + 50  solver.setLogic("ALL");
    + 51  //! [docs-cpp-quickstart-3 end]
    + 52
    + 53  // In this example, we will define constraints over reals and integers.
    + 54  // Hence, we first obtain the corresponding sorts.
    + 55  //! [docs-cpp-quickstart-4 start]
    + 56  Sort realSort = tm.getRealSort();
    + 57  Sort intSort = tm.getIntegerSort();
    + 58  //! [docs-cpp-quickstart-4 end]
    + 59
    + 60  // x and y will be real variables, while a and b will be integer variables.
    + 61  // Formally, their cpp type is Term,
    + 62  // and they are called "constants" in SMT jargon:
    + 63  //! [docs-cpp-quickstart-5 start]
    + 64  Term x = tm.mkConst(realSort, "x");
    + 65  Term y = tm.mkConst(realSort, "y");
    + 66  Term a = tm.mkConst(intSort, "a");
    + 67  Term b = tm.mkConst(intSort, "b");
    + 68  //! [docs-cpp-quickstart-5 end]
    + 69
    + 70  // Our constraints regarding x and y will be:
    + 71  //
    + 72  //   (1)  0 < x
    + 73  //   (2)  0 < y
    + 74  //   (3)  x + y < 1
    + 75  //   (4)  x <= y
    + 76  //
    + 77
    + 78  //! [docs-cpp-quickstart-6 start]
    + 79  // Formally, constraints are also terms. Their sort is Boolean.
    + 80  // We will construct these constraints gradually,
    + 81  // by defining each of their components.
    + 82  // We start with the constant numerals 0 and 1:
    + 83  Term zero = tm.mkReal(0);
    + 84  Term one = tm.mkReal(1);
    + 85
    + 86  // Next, we construct the term x + y
    + 87  Term xPlusY = tm.mkTerm(Kind::ADD, {x, y});
    + 88
    + 89  // Now we can define the constraints.
    + 90  // They use the operators +, <=, and <.
    + 91  // In the API, these are denoted by ADD, LEQ, and LT.
    + 92  // A list of available operators is available in:
    + 93  // src/api/cpp/cvc5_kind.h
    + 94  Term constraint1 = tm.mkTerm(Kind::LT, {zero, x});
    + 95  Term constraint2 = tm.mkTerm(Kind::LT, {zero, y});
    + 96  Term constraint3 = tm.mkTerm(Kind::LT, {xPlusY, one});
    + 97  Term constraint4 = tm.mkTerm(Kind::LEQ, {x, y});
    + 98
    + 99  // Now we assert the constraints to the solver.
    +100  solver.assertFormula(constraint1);
    +101  solver.assertFormula(constraint2);
    +102  solver.assertFormula(constraint3);
    +103  solver.assertFormula(constraint4);
    +104  //! [docs-cpp-quickstart-6 end]
    +105
    +106  // Check if the formula is satisfiable, that is,
    +107  // are there real values for x and y that satisfy all the constraints?
    +108  //! [docs-cpp-quickstart-7 start]
    +109  Result r1 = solver.checkSat();
    +110  //! [docs-cpp-quickstart-7 end]
    +111
    +112  // The result is either SAT, UNSAT, or UNKNOWN.
    +113  // In this case, it is SAT.
    +114  //! [docs-cpp-quickstart-8 start]
    +115  std::cout << "expected: sat" << std::endl;
    +116  std::cout << "result: " << r1 << std::endl;
    +117  //! [docs-cpp-quickstart-8 end]
    +118
    +119  // We can get the values for x and y that satisfy the constraints.
    +120  //! [docs-cpp-quickstart-9 start]
    +121  Term xVal = solver.getValue(x);
    +122  Term yVal = solver.getValue(y);
    +123  //! [docs-cpp-quickstart-9 end]
    +124
    +125  // It is also possible to get values for compound terms,
    +126  // even if those did not appear in the original formula.
    +127  //! [docs-cpp-quickstart-10 start]
    +128  Term xMinusY = tm.mkTerm(Kind::SUB, {x, y});
    +129  Term xMinusYVal = solver.getValue(xMinusY);
    +130  //! [docs-cpp-quickstart-10 end]
    +131
    +132  // We can now obtain the string representations of the values.
    +133  //! [docs-cpp-quickstart-11 start]
    +134  std::string xStr = xVal.getRealValue();
    +135  std::string yStr = yVal.getRealValue();
    +136  std::string xMinusYStr = xMinusYVal.getRealValue();
    +137
    +138  std::cout << "value for x: " << xStr << std::endl;
    +139  std::cout << "value for y: " << yStr << std::endl;
    +140  std::cout << "value for x - y: " << xMinusYStr << std::endl;
    +141  //! [docs-cpp-quickstart-11 end]
    +142
    +143  //! [docs-cpp-quickstart-12 start]
    +144  // Further, we can convert the values to cpp types
    +145  std::pair<int64_t, uint64_t> xPair = xVal.getReal64Value();
    +146  std::pair<int64_t, uint64_t> yPair = yVal.getReal64Value();
    +147  std::pair<int64_t, uint64_t> xMinusYPair = xMinusYVal.getReal64Value();
    +148
    +149  std::cout << "value for x: " << xPair.first << "/" << xPair.second
    +150            << std::endl;
    +151  std::cout << "value for y: " << yPair.first << "/" << yPair.second
    +152            << std::endl;
    +153  std::cout << "value for x - y: " << xMinusYPair.first << "/"
    +154            << xMinusYPair.second << std::endl;
    +155  //! [docs-cpp-quickstart-12 end]
    +156
    +157  // Another way to independently compute the value of x - y would be
    +158  // to perform the (rational) arithmetic manually.
    +159  // However, for more complex terms,
    +160  // it is easier to let the solver do the evaluation.
    +161  //! [docs-cpp-quickstart-13 start]
    +162  std::pair<int64_t, uint64_t> xMinusYComputed = {
    +163    xPair.first * yPair.second - xPair.second * yPair.first,
    +164    xPair.second * yPair.second
    +165  };
    +166  uint64_t g = std::gcd(xMinusYComputed.first, xMinusYComputed.second);
    +167  xMinusYComputed = { xMinusYComputed.first / g, xMinusYComputed.second / g };
    +168  if (xMinusYComputed == xMinusYPair)
    +169  {
    +170    std::cout << "computed correctly" << std::endl;
    +171  }
    +172  else
    +173  {
    +174    std::cout << "computed incorrectly" << std::endl;
    +175  }
    +176  //! [docs-cpp-quickstart-13 end]
    +177
    +178  // Next, we will check satisfiability of the same formula,
    +179  // only this time over integer variables a and b.
    +180
    +181  // We start by resetting assertions added to the solver.
    +182  //! [docs-cpp-quickstart-14 start]
    +183  solver.resetAssertions();
    +184  //! [docs-cpp-quickstart-14 end]
    +185
    +186  // Next, we assert the same assertions above with integers.
    +187  // This time, we inline the construction of terms
    +188  // to the assertion command.
    +189  //! [docs-cpp-quickstart-15 start]
    +190  solver.assertFormula(tm.mkTerm(Kind::LT, {tm.mkInteger(0), a}));
    +191  solver.assertFormula(tm.mkTerm(Kind::LT, {tm.mkInteger(0), b}));
    +192  solver.assertFormula(
    +193      tm.mkTerm(Kind::LT, {tm.mkTerm(Kind::ADD, {a, b}), tm.mkInteger(1)}));
    +194  solver.assertFormula(tm.mkTerm(Kind::LEQ, {a, b}));
    +195  //! [docs-cpp-quickstart-15 end]
    +196
    +197  // We check whether the revised assertion is satisfiable.
    +198  //! [docs-cpp-quickstart-16 start]
    +199  Result r2 = solver.checkSat();
    +200  //! [docs-cpp-quickstart-16 end]
    +201
    +202  // This time the formula is unsatisfiable
    +203  //! [docs-cpp-quickstart-17 start]
    +204  std::cout << "expected: unsat" << std::endl;
    +205  std::cout << "result: " << r2 << std::endl;
    +206  //! [docs-cpp-quickstart-17 end]
    +207
    +208  // We can query the solver for an unsatisfiable core, i.e., a subset
    +209  // of the assertions that is already unsatisfiable.
    +210  //! [docs-cpp-quickstart-18 start]
    +211  std::vector<Term> unsatCore = solver.getUnsatCore();
    +212  std::cout << "unsat core size: " << unsatCore.size() << std::endl;
    +213  std::cout << "unsat core: " << std::endl;
    +214  for (const Term& t : unsatCore)
    +215  {
    +216    std::cout << t << std::endl;
    +217  }
    +218  //! [docs-cpp-quickstart-18 end]
    +219
    +220  return 0;
    +221}
    +
    +
    +
    +
    + + + + +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/allclasses-index.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/allclasses-index.html new file mode 100644 index 0000000000..45991887f0 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/allclasses-index.html @@ -0,0 +1,375 @@ + + + + + +All Classes + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    All Classes

    +
    +
    + +
    +
    +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/allclasses.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/allclasses.html new file mode 100644 index 0000000000..227972524e --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/allclasses.html @@ -0,0 +1,72 @@ + + + + + +All Classes + + + + + + + + + + + + +
    +

    All Classes

    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/allpackages-index.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/allpackages-index.html new file mode 100644 index 0000000000..f744d015e8 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/allpackages-index.html @@ -0,0 +1,170 @@ + + + + + +All Packages + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    All Packages

    +
    +
    + +
    +
    +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/constant-values.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/constant-values.html new file mode 100644 index 0000000000..aebb1bce84 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/constant-values.html @@ -0,0 +1,181 @@ + + + + + +Constant Field Values + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    Constant Field Values

    +
    +

    Contents

    + +
    +
    +
    + + +
    +

    io.github.*

    +
      +
    • + + + + + + + + + + + + + + +
      io.github.cvc5.Utils 
      Modifier and TypeConstant FieldValue
      + +public static final java.lang.StringLIBPATH_IN_JAR"/cvc5-libs"
      +
    • +
    +
    +
    +
    +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/deprecated-list.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/deprecated-list.html new file mode 100644 index 0000000000..efc9336a4b --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/deprecated-list.html @@ -0,0 +1,721 @@ + + + + + +Deprecated List + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    Deprecated API

    +

    Contents

    + +
    +
    + + + + + + + +
    +
    +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/element-list b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/element-list new file mode 100644 index 0000000000..ead6914ff6 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/element-list @@ -0,0 +1,2 @@ +io.github.cvc5 +io.github.cvc5.modes diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/help-doc.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/help-doc.html new file mode 100644 index 0000000000..f7754957a7 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/help-doc.html @@ -0,0 +1,274 @@ + + + + + +API Help + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    How This API Document Is Organized

    +
    This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.
    +
    +
    +
      +
    • +
      +

      Overview

      +

      The Overview page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.

      +
      +
    • +
    • +
      +

      Package

      +

      Each package has a page that contains a list of its classes and interfaces, with a summary for each. These pages may contain six categories:

      +
        +
      • Interfaces
      • +
      • Classes
      • +
      • Enums
      • +
      • Exceptions
      • +
      • Errors
      • +
      • Annotation Types
      • +
      +
      +
    • +
    • +
      +

      Class or Interface

      +

      Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:

      +
        +
      • Class Inheritance Diagram
      • +
      • Direct Subclasses
      • +
      • All Known Subinterfaces
      • +
      • All Known Implementing Classes
      • +
      • Class or Interface Declaration
      • +
      • Class or Interface Description
      • +
      +
      +
        +
      • Nested Class Summary
      • +
      • Field Summary
      • +
      • Property Summary
      • +
      • Constructor Summary
      • +
      • Method Summary
      • +
      +
      +
        +
      • Field Detail
      • +
      • Property Detail
      • +
      • Constructor Detail
      • +
      • Method Detail
      • +
      +

      Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.

      +
      +
    • +
    • +
      +

      Annotation Type

      +

      Each annotation type has its own separate page with the following sections:

      +
        +
      • Annotation Type Declaration
      • +
      • Annotation Type Description
      • +
      • Required Element Summary
      • +
      • Optional Element Summary
      • +
      • Element Detail
      • +
      +
      +
    • +
    • +
      +

      Enum

      +

      Each enum has its own separate page with the following sections:

      +
        +
      • Enum Declaration
      • +
      • Enum Description
      • +
      • Enum Constant Summary
      • +
      • Enum Constant Detail
      • +
      +
      +
    • +
    • +
      +

      Tree (Class Hierarchy)

      +

      There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. Classes are organized by inheritance structure starting with java.lang.Object. Interfaces do not inherit from java.lang.Object.

      +
        +
      • When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.
      • +
      • When viewing a particular package, class or interface page, clicking on "Tree" displays the hierarchy for only that package.
      • +
      +
      +
    • +
    • +
      +

      Deprecated API

      +

      The Deprecated API page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.

      +
      +
    • +
    • +
      +

      Index

      +

      The Index contains an alphabetic index of all classes, interfaces, constructors, methods, and fields, as well as lists of all packages and all classes.

      +
      +
    • +
    • +
      +

      All Classes

      +

      The All Classes link shows all classes and interfaces except non-static nested types.

      +
      +
    • +
    • +
      +

      Serialized Form

      +

      Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.

      +
      +
    • +
    • +
      +

      Constant Field Values

      +

      The Constant Field Values page lists the static final fields and their values.

      +
      +
    • +
    • +
      +

      Search

      +

      You can search for definitions of modules, packages, types, fields, methods and other terms defined in the API, using some or all of the name. "Camel-case" abbreviations are supported: for example, "InpStr" will find "InputStream" and "InputStreamReader".

      +
      +
    • +
    +
    +This help file applies to API documentation generated by the standard doclet.
    +
    +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/index-all.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/index-all.html new file mode 100644 index 0000000000..00b872dbd6 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/index-all.html @@ -0,0 +1,9016 @@ + + + + + +Index + + + + + + + + + + + + + + +
    + +
    +
    +
    A B C D E F G H I K L M N O P Q R S T U V W X 
    All Classes All Packages + + +

    A

    +
    +
    ABS - io.github.cvc5.Kind
    +
    +
    Absolute value.
    +
    +
    ABSTRACT_SORT - io.github.cvc5.SortKind
    +
    +
    An abstract sort.
    +
    +
    AbstractPlugin - Class in io.github.cvc5
    +
     
    +
    AbstractPlugin(TermManager) - Constructor for class io.github.cvc5.AbstractPlugin
    +
    +
    Create plugin instance.
    +
    +
    ACI_NORM - io.github.cvc5.ProofRule
    +
    +
    Builtin theory – associative/commutative/idempotency/identity normalization + + \[ + \inferrule{- \mid t = s}{t = s} + \] + where \(\texttt{expr::isACNorm(t, s)} = \top\).
    +
    +
    ADD - io.github.cvc5.Kind
    +
    +
    Arithmetic addition.
    +
    +
    addAnyConstant(Term) - Method in class io.github.cvc5.Grammar
    +
    +
    Allow ntSymbol to be an arbitrary constant.
    +
    +
    addAnyVariable(Term) - Method in class io.github.cvc5.Grammar
    +
    +
    Allow ntSymbol to be any input variable to corresponding + synth-fun or synth-inv with the same sort as + ntSymbol.
    +
    +
    addConstructor(DatatypeConstructorDecl) - Method in class io.github.cvc5.DatatypeDecl
    +
    +
    Add datatype constructor declaration.
    +
    +
    addPlugin(AbstractPlugin) - Method in class io.github.cvc5.Solver
    +
    +
    Add plugin to this solver.
    +
    +
    addRule(Term, Term) - Method in class io.github.cvc5.Grammar
    +
    +
    Add rule to the set of rules corresponding to ntSymbol.
    +
    +
    addRules(long, long, long[]) - Method in class io.github.cvc5.Grammar
    +
     
    +
    addRules(Term, Term[]) - Method in class io.github.cvc5.Grammar
    +
    +
    Add rules to the set of rules corresponding to ntSymbol.
    +
    +
    addSelector(String, Sort) - Method in class io.github.cvc5.DatatypeConstructorDecl
    +
    +
    Add datatype selector declaration.
    +
    +
    addSelectorSelf(String) - Method in class io.github.cvc5.DatatypeConstructorDecl
    +
    +
    Add datatype selector declaration whose codomain type is the datatype + itself.
    +
    +
    addSelectorUnresolved(String, String) - Method in class io.github.cvc5.DatatypeConstructorDecl
    +
    +
    Add datatype selector declaration whose codomain sort is an unresolved + datatype with the given name.
    +
    +
    addSygusAssume(Term) - Method in class io.github.cvc5.Solver
    +
    +
    Add a forumla to the set of Sygus assumptions.
    +
    +
    addSygusConstraint(Term) - Method in class io.github.cvc5.Solver
    +
    +
    Add a forumla to the set of Sygus constraints.
    +
    +
    addSygusInvConstraint(Term, Term, Term, Term) - Method in class io.github.cvc5.Solver
    +
    +
    Add a set of Sygus constraints to the current state that correspond to an + invariant synthesis problem.
    +
    +
    ALETHE - io.github.cvc5.modes.ProofFormat
    +
    +
    Output Alethe proof.
    +
    +
    ALETHE_RULE - io.github.cvc5.ProofRule
    +
    +
    External – Alethe + + Place holder for Alethe rules.
    +
    +
    ALPHA_EQUIV - io.github.cvc5.ProofRule
    +
    +
    Quantifiers – Alpha equivalence + + \[ + + \inferruleSC{-\mid F, (y_1 \ldots y_n), (z_1,\dots, z_n)} + {F = F\{y_1\mapsto z_1,\dots,y_n\mapsto z_n\}} + {if $y_1,\dots,y_n, z_1,\dots,z_n$ are unique bound variables} + \] + Notice that this rule is correct only when \(z_1,\dots,z_n\) are not + contained in \(FV(F) \setminus \{ y_1,\dots, y_n \}\), where + \(FV(\varphi)\) are the free variables of \(\varphi\).
    +
    +
    AND - io.github.cvc5.Kind
    +
    +
    Logical conjunction.
    +
    +
    AND_ELIM - io.github.cvc5.ProofRule
    +
    +
    Boolean – And elimination + + \[ + \inferrule{(F_1 \land \dots \land F_n) \mid i}{F_i} + \]
    +
    +
    AND_INTRO - io.github.cvc5.ProofRule
    +
    +
    Boolean – And introduction + + \[ + \inferrule{F_1 \dots F_n \mid -}{(F_1 \land \dots \land F_n)} + \]
    +
    +
    andTerm(Term) - Method in class io.github.cvc5.Term
    +
    +
    Boolean and.
    +
    +
    appendIncrementalStringInput(String) - Method in class io.github.cvc5.InputParser
    +
    +
    Append string to the input being parsed by this parser.
    +
    +
    apply(Term[]) - Method in interface io.github.cvc5.IOracle
    +
     
    +
    APPLY_CONSTRUCTOR - io.github.cvc5.Kind
    +
    +
    Datatype constructor application.
    +
    +
    APPLY_SELECTOR - io.github.cvc5.Kind
    +
    +
    Datatype selector application.
    +
    +
    APPLY_TESTER - io.github.cvc5.Kind
    +
    +
    Datatype tester application.
    +
    +
    APPLY_UF - io.github.cvc5.Kind
    +
    +
    Application of an uninterpreted function.
    +
    +
    APPLY_UPDATER - io.github.cvc5.Kind
    +
    +
    Datatype update application.
    +
    +
    ARCCOSECANT - io.github.cvc5.Kind
    +
    +
    Arc cosecant function.
    +
    +
    ARCCOSINE - io.github.cvc5.Kind
    +
    +
    Arc cosine function.
    +
    +
    ARCCOTANGENT - io.github.cvc5.Kind
    +
    +
    Arc cotangent function.
    +
    +
    ARCSECANT - io.github.cvc5.Kind
    +
    +
    Arc secant function.
    +
    +
    ARCSINE - io.github.cvc5.Kind
    +
    +
    Arc sine function.
    +
    +
    ARCTANGENT - io.github.cvc5.Kind
    +
    +
    Arc tangent function.
    +
    +
    ARITH_ABS_ELIM_INT - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule arith-abs-elim-int
    +
    +
    ARITH_ABS_ELIM_REAL - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule arith-abs-elim-real
    +
    +
    ARITH_ABS_EQ - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule arith-abs-eq
    +
    +
    ARITH_ABS_INT_GT - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule arith-abs-int-gt
    +
    +
    ARITH_ABS_REAL_GT - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule arith-abs-real-gt
    +
    +
    ARITH_COSECENT_ELIM - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule arith-cosecent-elim
    +
    +
    ARITH_COSINE_ELIM - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule arith-cosine-elim
    +
    +
    ARITH_COTANGENT_ELIM - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule arith-cotangent-elim
    +
    +
    ARITH_DIV_ELIM_TO_REAL1 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule arith-div-elim-to-real1
    +
    +
    ARITH_DIV_ELIM_TO_REAL2 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule arith-div-elim-to-real2
    +
    +
    ARITH_DIV_TOTAL_INT - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule arith-div-total-int
    +
    +
    ARITH_DIV_TOTAL_REAL - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule arith-div-total-real
    +
    +
    ARITH_DIV_TOTAL_ZERO_INT - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule arith-div-total-zero-int
    +
    +
    ARITH_DIV_TOTAL_ZERO_REAL - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule arith-div-total-zero-real
    +
    +
    ARITH_ELIM_GT - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule arith-elim-gt
    +
    +
    ARITH_ELIM_INT_GT - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule arith-elim-int-gt
    +
    +
    ARITH_ELIM_INT_LT - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule arith-elim-int-lt
    +
    +
    ARITH_ELIM_LEQ - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule arith-elim-leq
    +
    +
    ARITH_ELIM_LT - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule arith-elim-lt
    +
    +
    ARITH_EQ_ELIM_INT - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule arith-eq-elim-int
    +
    +
    ARITH_EQ_ELIM_REAL - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule arith-eq-elim-real
    +
    +
    ARITH_GEQ_NORM1_INT - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule arith-geq-norm1-int
    +
    +
    ARITH_GEQ_NORM1_REAL - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule arith-geq-norm1-real
    +
    +
    ARITH_GEQ_NORM2 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule arith-geq-norm2
    +
    +
    ARITH_GEQ_TIGHTEN - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule arith-geq-tighten
    +
    +
    ARITH_INT_DIV_TOTAL - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule arith-int-div-total
    +
    +
    ARITH_INT_DIV_TOTAL_ONE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule arith-int-div-total-one
    +
    +
    ARITH_INT_DIV_TOTAL_ZERO - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule arith-int-div-total-zero
    +
    +
    ARITH_INT_MOD_TOTAL - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule arith-int-mod-total
    +
    +
    ARITH_INT_MOD_TOTAL_ONE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule arith-int-mod-total-one
    +
    +
    ARITH_INT_MOD_TOTAL_ZERO - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule arith-int-mod-total-zero
    +
    +
    ARITH_LEQ_NORM - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule arith-leq-norm
    +
    +
    ARITH_MUL_ONE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule arith-mul-one
    +
    +
    ARITH_MUL_ZERO - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule arith-mul-zero
    +
    +
    ARITH_MULT_ABS_COMPARISON - io.github.cvc5.ProofRule
    +
    +
    Arithmetic – Non-linear multiply absolute value comparison + + \[ + \inferrule{F_1 \dots F_n \mid -}{F} + \] + where \(F\) is of the form + \(\left| t_1 \cdot t_n \right| \diamond \left| s_1 \cdot s_n \right|\).
    +
    +
    ARITH_MULT_DIST - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule arith-mult-dist
    +
    +
    ARITH_MULT_FLATTEN - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule arith-mult-flatten
    +
    +
    ARITH_MULT_NEG - io.github.cvc5.ProofRule
    +
    +
    Arithmetic – Multiplication with negative factor + + \[ + \inferrule{- \mid m, l \diamond r}{(m < 0 \land l \diamond r) \rightarrow m \cdot l \diamond_{inv} m \cdot r} + \] + where \(\diamond\) is a relation symbol and \(\diamond_{inv}\) the + inverted relation symbol.
    +
    +
    ARITH_MULT_POS - io.github.cvc5.ProofRule
    +
    +
    Arithmetic – Multiplication with positive factor + + \[ + \inferrule{- \mid m, l \diamond r}{(m > 0 \land l \diamond r) \rightarrow m \cdot l \diamond m \cdot r} + \] + where \(\diamond\) is a relation symbol.
    +
    +
    ARITH_MULT_SIGN - io.github.cvc5.ProofRule
    +
    +
    Arithmetic – Sign inference + + \[ + \inferrule{- \mid f_1 \dots f_k, m}{(f_1 \land \dots \land f_k) \rightarrow m \diamond 0} + \] + where \(f_1 \dots f_k\) are variables compared to zero (less, greater + or not equal), \(m\) is a monomial from these variables and + \(\diamond\) is the comparison (less or equal) that results from the + signs of the variables.
    +
    +
    ARITH_MULT_TANGENT - io.github.cvc5.ProofRule
    +
    +
    Arithmetic – Multiplication tangent plane + + \[ + \inferruleSC{- \mid x, y, a, b, \sigma}{(t \leq tplane) = ((x \leq a \land y \geq b) \lor (x \geq a \land y \leq b))}{if $\sigma = \bot$} + + \inferruleSC{- \mid x, y, a, b, \sigma}{(t \geq tplane) = ((x \leq a \land y \leq b) \lor (x \geq a \land y \geq b))}{if $\sigma = \top$} + \] + where \(x,y\) are real terms (variables or extended terms), + \(t = x \cdot y\), \(a,b\) are real + constants, \(\sigma \in \{ \top, \bot\}\) and \(tplane := b \cdot x + a \cdot y - a \cdot b\) is the tangent plane of \(x \cdot y\) at \((a,b)\).
    +
    +
    ARITH_PI_NOT_INT - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule arith-pi-not-int
    +
    +
    ARITH_PLUS_FLATTEN - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule arith-plus-flatten
    +
    +
    ARITH_POLY_NORM - io.github.cvc5.ProofRule
    +
    +
    Arithmetic – Polynomial normalization + + \[ + \inferrule{- \mid t = s}{t = s} + \] + where \(\texttt{arith::PolyNorm::isArithPolyNorm(t, s)} = \top\).
    +
    +
    ARITH_POLY_NORM_REL - io.github.cvc5.ProofRule
    +
    +
    Arithmetic – Polynomial normalization for relations + + ..
    +
    +
    ARITH_POW_ELIM - io.github.cvc5.ProofRewriteRule
    +
    +
    Arithmetic – power elimination + + \[ + (x ^ c) = (x \cdot \ldots \cdot x) + \] + where \(c\) is a non-negative integer.
    +
    +
    ARITH_REDUCTION - io.github.cvc5.ProofRule
    +
    +
    Arithmetic – Reduction + + \[ + \inferrule{- \mid t}{F} + \] + where \(t\) is an application of an extended arithmetic operator (e.g.
    +
    +
    ARITH_REFL_GEQ - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule arith-refl-geq
    +
    +
    ARITH_REFL_GT - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule arith-refl-gt
    +
    +
    ARITH_REFL_LEQ - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule arith-refl-leq
    +
    +
    ARITH_REFL_LT - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule arith-refl-lt
    +
    +
    ARITH_SECENT_ELIM - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule arith-secent-elim
    +
    +
    ARITH_SINE_PI2 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule arith-sine-pi2
    +
    +
    ARITH_SINE_ZERO - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule arith-sine-zero
    +
    +
    ARITH_STRING_PRED_ENTAIL - io.github.cvc5.ProofRewriteRule
    +
    +
    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_SAFE_APPROX - io.github.cvc5.ProofRewriteRule
    +
    +
    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)\).
    +
    +
    ARITH_SUM_UB - io.github.cvc5.ProofRule
    +
    +
    Arithmetic – Sum upper bounds + + \[ + \inferrule{P_1 \dots P_n \mid -}{L \diamond R} + \] + where \(P_i\) has the form \(L_i \diamond_i R_i\) and + \(\diamond_i \in \{<, \leq, =\}\).
    +
    +
    ARITH_TANGENT_ELIM - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule arith-tangent-elim
    +
    +
    ARITH_TO_INT_ELIM_TO_REAL - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule arith-to-int-elim-to-real
    +
    +
    ARITH_TO_REAL_ELIM - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule arith-to-real-elim
    +
    +
    ARITH_TRANS_EXP_APPROX_ABOVE_NEG - io.github.cvc5.ProofRule
    +
    +
    Arithmetic – Transcendentals – Exp is approximated from above for + negative values + + \[ + \inferrule{- \mid d,t,l,u}{(t \geq l \land t \leq u) \rightarrow exp(t) + \leq \texttt{secant}(\exp, l, u, t)} + \] + where \(d\) is an even positive number, \(t\) an arithmetic term + and \(l,u\) are lower and upper bounds on \(t\).
    +
    +
    ARITH_TRANS_EXP_APPROX_ABOVE_POS - io.github.cvc5.ProofRule
    +
    +
    Arithmetic – Transcendentals – Exp is approximated from above for + positive values + + \[ + \inferrule{- \mid d,t,l,u}{(t \geq l \land t \leq u) \rightarrow exp(t) + \leq \texttt{secant-pos}(\exp, l, u, t)} + \] + where \(d\) is an even positive number, \(t\) an arithmetic term + and \(l,u\) are lower and upper bounds on \(t\).
    +
    +
    ARITH_TRANS_EXP_APPROX_BELOW - io.github.cvc5.ProofRule
    +
    +
    Arithmetic – Transcendentals – Exp is approximated from below + + \[ + \inferrule{- \mid d,c,t}{t \geq c \rightarrow exp(t) \geq \texttt{maclaurin}(\exp, d, c)} + \] + where \(d\) is an odd positive number, \(t\) an arithmetic term and + \(\texttt{maclaurin}(\exp, d, c)\) is the \(d\)'th taylor + polynomial at zero (also called the Maclaurin series) of the exponential + function evaluated at \(c\).
    +
    +
    ARITH_TRANS_EXP_NEG - io.github.cvc5.ProofRule
    +
    +
    Arithmetic – Transcendentals – Exp at negative values + + \[ + \inferrule{- \mid t}{(t < 0) \leftrightarrow (\exp(t) < 1)} + \]
    +
    +
    ARITH_TRANS_EXP_POSITIVITY - io.github.cvc5.ProofRule
    +
    +
    Arithmetic – Transcendentals – Exp is always positive + + \[ + \inferrule{- \mid t}{\exp(t) > 0} + \]
    +
    +
    ARITH_TRANS_EXP_SUPER_LIN - io.github.cvc5.ProofRule
    +
    +
    Arithmetic – Transcendentals – Exp grows super-linearly for positive + values + + \[ + \inferrule{- \mid t}{t \leq 0 \lor \exp(t) > t+1} + \]
    +
    +
    ARITH_TRANS_EXP_ZERO - io.github.cvc5.ProofRule
    +
    +
    Arithmetic – Transcendentals – Exp at zero + + \[ + \inferrule{- \mid t}{(t=0) \leftrightarrow (\exp(t) = 1)} + \]
    +
    +
    ARITH_TRANS_PI - io.github.cvc5.ProofRule
    +
    +
    Arithmetic – Transcendentals – Assert bounds on Pi + + \[ + \inferrule{- \mid l, u}{\texttt{real.pi} \geq l \land \texttt{real.pi} + \leq u} + \] + where \(l,u\) are valid lower and upper bounds on \(\pi\).
    +
    +
    ARITH_TRANS_SINE_APPROX_ABOVE_NEG - io.github.cvc5.ProofRule
    +
    +
    Arithmetic – Transcendentals – Sine is approximated from above for + negative values + + \[ + \inferrule{- \mid d,t,lb,ub,l,u}{(t \geq lb land t \leq ub) \rightarrow + \sin(t) \leq \texttt{secant}(\sin, l, u, t)} + \] + where \(d\) is an even positive number, \(t\) an arithmetic term, + \(lb,ub\) are symbolic lower and upper bounds on \(t\) (possibly + containing \(\pi\)) and \(l,u\) the evaluated lower and upper + bounds on \(t\).
    +
    +
    ARITH_TRANS_SINE_APPROX_ABOVE_POS - io.github.cvc5.ProofRule
    +
    +
    Arithmetic – Transcendentals – Sine is approximated from above for + positive values + + \[ + \inferrule{- \mid d,t,c,lb,ub}{(t \geq lb land t \leq ub) \rightarrow + \sin(t) \leq \texttt{upper}(\sin, c)} + \] + where \(d\) is an even positive number, \(t\) an arithmetic term, + \(c\) an arithmetic constant and \(lb,ub\) are symbolic lower and + upper bounds on \(t\) (possibly containing \(\pi\)).
    +
    +
    ARITH_TRANS_SINE_APPROX_BELOW_NEG - io.github.cvc5.ProofRule
    +
    +
    Arithmetic – Transcendentals – Sine is approximated from below for + negative values + + \[ + \inferrule{- \mid d,t,c,lb,ub}{(t \geq lb land t \leq ub) \rightarrow + \sin(t) \geq \texttt{lower}(\sin, c)} + \] + where \(d\) is an even positive number, \(t\) an arithmetic term, + \(c\) an arithmetic constant and \(lb,ub\) are symbolic lower and + upper bounds on \(t\) (possibly containing \(\pi\)).
    +
    +
    ARITH_TRANS_SINE_APPROX_BELOW_POS - io.github.cvc5.ProofRule
    +
    +
    Arithmetic – Transcendentals – Sine is approximated from below for + positive values + + \[ + \inferrule{- \mid d,t,lb,ub,l,u}{(t \geq lb land t \leq ub) \rightarrow + \sin(t) \geq \texttt{secant}(\sin, l, u, t)} + \] + where \(d\) is an even positive number, \(t\) an arithmetic term, + \(lb,ub\) are symbolic lower and upper bounds on \(t\) (possibly + containing \(\pi\)) and \(l,u\) the evaluated lower and upper + bounds on \(t\).
    +
    +
    ARITH_TRANS_SINE_BOUNDS - io.github.cvc5.ProofRule
    +
    +
    Arithmetic – Transcendentals – Sine is always between -1 and 1 + + \[ + \inferrule{- \mid t}{\sin(t) \leq 1 \land \sin(t) \geq -1} + \]
    +
    +
    ARITH_TRANS_SINE_SHIFT - io.github.cvc5.ProofRule
    +
    +
    Arithmetic – Transcendentals – Sine is shifted to -pi...pi + + \[ + \inferrule{- \mid x}{-\pi \leq y \leq \pi \land \sin(y) = \sin(x) + \land (\ite{-\pi \leq x \leq \pi}{x = y}{x = y + 2 \pi s})} + \] + where \(x\) is the argument to sine, \(y\) is a new real skolem + that is \(x\) shifted into \(-\pi \dots \pi\) and \(s\) is a + new integer skolem that is the number of phases \(y\) is shifted.
    +
    +
    ARITH_TRANS_SINE_SYMMETRY - io.github.cvc5.ProofRule
    +
    +
    Arithmetic – Transcendentals – Sine is symmetric with respect to + negation of the argument + + \[ + \inferrule{- \mid t}{\sin(t) - \sin(-t) = 0} + \]
    +
    +
    ARITH_TRANS_SINE_TANGENT_PI - io.github.cvc5.ProofRule
    +
    +
    Arithmetic – Transcendentals – Sine is bounded by the tangents at -pi + and pi + + ..
    +
    +
    ARITH_TRANS_SINE_TANGENT_ZERO - io.github.cvc5.ProofRule
    +
    +
    Arithmetic – Transcendentals – Sine is bounded by the tangent at zero + + ..
    +
    +
    ARITH_TRICHOTOMY - io.github.cvc5.ProofRule
    +
    +
    Arithmetic – Trichotomy of the reals + + \[ + \inferrule{A, B \mid -}{C} + \] + where \(\neg A, \neg B, C\) are \(x < c, x = c, x > c\) in some order.
    +
    +
    ARITH_VTS_DELTA - io.github.cvc5.SkolemId
    +
    +
    Used to reason about virtual term substitution.
    +
    +
    ARITH_VTS_DELTA_FREE - io.github.cvc5.SkolemId
    +
    +
    Used to reason about virtual term substitution.
    +
    +
    ARITH_VTS_INFINITY - io.github.cvc5.SkolemId
    +
    +
    Used to reason about virtual term substitution.
    +
    +
    ARITH_VTS_INFINITY_FREE - io.github.cvc5.SkolemId
    +
    +
    Used to reason about virtual term substitution.
    +
    +
    ARRAY_DEQ_DIFF - io.github.cvc5.SkolemId
    +
    +
    The array diff skolem, which is the witness k for the inference + (=> (not (= A B)) (not (= (select A k) (select B k)))).
    +
    +
    ARRAY_READ_OVER_WRITE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule array-read-over-write
    +
    +
    ARRAY_READ_OVER_WRITE_SPLIT - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule array-read-over-write-split
    +
    +
    ARRAY_READ_OVER_WRITE2 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule array-read-over-write2
    +
    +
    ARRAY_SORT - io.github.cvc5.SortKind
    +
    +
    An array sort, whose argument sorts are the index and element sorts of the + array.
    +
    +
    ARRAY_STORE_OVERWRITE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule array-store-overwrite
    +
    +
    ARRAY_STORE_SELF - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule array-store-self
    +
    +
    ARRAYS_EQ_RANGE_EXPAND - io.github.cvc5.ProofRewriteRule
    +
    +
    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_EXT - io.github.cvc5.ProofRule
    +
    +
    Arrays – Arrays extensionality + + \[ + + \inferrule{a \neq b\mid -} + {\mathit{select}(a,k)\neq\mathit{select}(b,k)} + \] + where \(k\) is the \(\texttt{ARRAY_DEQ_DIFF}\) skolem for `(a, b)`.
    +
    +
    ARRAYS_READ_OVER_WRITE - io.github.cvc5.ProofRule
    +
    +
    Arrays – Read over write + + \[ + + \inferrule{i_1 \neq i_2\mid \mathit{select}(\mathit{store}(a,i_1,e),i_2)} + {\mathit{select}(\mathit{store}(a,i_1,e),i_2) = \mathit{select}(a,i_2)} + \]
    +
    +
    ARRAYS_READ_OVER_WRITE_1 - io.github.cvc5.ProofRule
    +
    +
    Arrays – Read over write 1 + + \[ + + \inferrule{-\mid \mathit{select}(\mathit{store}(a,i,e),i)} + {\mathit{select}(\mathit{store}(a,i,e),i)=e} + \]
    +
    +
    ARRAYS_READ_OVER_WRITE_CONTRA - io.github.cvc5.ProofRule
    +
    +
    Arrays – Read over write, contrapositive + + \[ + + \inferrule{\mathit{select}(\mathit{store}(a,i_2,e),i_1) \neq + \mathit{select}(a,i_1)\mid -}{i_1=i_2} + \]
    +
    +
    ARRAYS_SELECT_CONST - io.github.cvc5.ProofRewriteRule
    +
    +
    Arrays – Constant array select + + \[ + (select A x) = c + \] + where \(A\) is a constant array storing element \(c\).
    +
    +
    assertFormula(Term) - Method in class io.github.cvc5.Solver
    +
    +
    Assert a formula.
    +
    +
    ASSUME - io.github.cvc5.ProofRule
    +
    +
    Assumption (a leaf) + + \[ + + \inferrule{- \mid F}{F} + \] + This rule has special status, in that an application of assume is an + open leaf in a proof that is not (yet) justified.
    +
    +
    + + + +

    B

    +
    +
    BAG_CARD - io.github.cvc5.Kind
    +
    +
    Bag cardinality.
    +
    +
    BAG_CHOOSE - io.github.cvc5.Kind
    +
    +
    Bag choose.
    +
    +
    BAG_COUNT - io.github.cvc5.Kind
    +
    +
    Bag element multiplicity.
    +
    +
    BAG_DIFFERENCE_REMOVE - io.github.cvc5.Kind
    +
    +
    Bag difference remove.
    +
    +
    BAG_DIFFERENCE_SUBTRACT - io.github.cvc5.Kind
    +
    +
    Bag difference subtract.
    +
    +
    BAG_EMPTY - io.github.cvc5.Kind
    +
    +
    Empty bag.
    +
    +
    BAG_FILTER - io.github.cvc5.Kind
    +
    +
    Bag filter.
    +
    +
    BAG_FOLD - io.github.cvc5.Kind
    +
    +
    Bag fold.
    +
    +
    BAG_INTER_MIN - io.github.cvc5.Kind
    +
    +
    Bag intersection (min).
    +
    +
    BAG_MAKE - io.github.cvc5.Kind
    +
    +
    Bag make.
    +
    +
    BAG_MAP - io.github.cvc5.Kind
    +
    +
    Bag map.
    +
    +
    BAG_MEMBER - io.github.cvc5.Kind
    +
    +
    Bag membership predicate.
    +
    +
    BAG_PARTITION - io.github.cvc5.Kind
    +
    +
    Bag partition.
    +
    +
    BAG_SETOF - io.github.cvc5.Kind
    +
    +
    Bag setof.
    +
    +
    BAG_SORT - io.github.cvc5.SortKind
    +
    +
    A bag sort, whose argument sort is the element sort of the bag.
    +
    +
    BAG_SUBBAG - io.github.cvc5.Kind
    +
    +
    Bag inclusion predicate.
    +
    +
    BAG_UNION_DISJOINT - io.github.cvc5.Kind
    +
    +
    Bag disjoint union (sum).
    +
    +
    BAG_UNION_MAX - io.github.cvc5.Kind
    +
    +
    Bag max union.
    +
    +
    BAGS_CARD_COMBINE - io.github.cvc5.SkolemId
    +
    +
    An uninterpreted function for bag.card operator: + To compute (bag.card A), we need a function that + counts multiplicities of distinct elements.
    +
    +
    BAGS_CHOOSE - io.github.cvc5.SkolemId
    +
    +
    An interpreted function uf for bag.choose operator: + (bag.choose A) is replaced by (uf A) along with the inference + that (>= (bag.count (uf A) A) 1) when A is non-empty.
    +
    +
    BAGS_DEQ_DIFF - io.github.cvc5.SkolemId
    +
    +
    The bag diff skolem, which is the witness k for the inference + (=> (not (= A B)) (not (= (bag.count k A) (bag.count k B)))).
    +
    +
    BAGS_DISTINCT_ELEMENTS - io.github.cvc5.SkolemId
    +
    +
    An uninterpreted function for distinct elements of a bag A, which returns + the n^th distinct element of the bag.
    +
    +
    BAGS_DISTINCT_ELEMENTS_SIZE - io.github.cvc5.SkolemId
    +
    +
    A skolem variable for the size of the distinct elements of a bag A.
    +
    +
    BAGS_DISTINCT_ELEMENTS_UNION_DISJOINT - io.github.cvc5.SkolemId
    +
    +
    An uninterpreted function for the union of distinct elements + in a bag (Bag T).
    +
    +
    BAGS_FOLD_CARD - io.github.cvc5.SkolemId
    +
    +
    An uninterpreted function for bag.fold operator: + To compute (bag.fold f t A), we need to guess the cardinality n of + bag A using a skolem function with BAGS_FOLD_CARD id.
    +
    +
    BAGS_FOLD_COMBINE - io.github.cvc5.SkolemId
    +
    +
    An uninterpreted function for bag.fold operator: + To compute (bag.fold f t A), we need a function that + accumulates intermidiate values.
    +
    +
    BAGS_FOLD_ELEMENTS - io.github.cvc5.SkolemId
    +
    +
    An uninterpreted function for bag.fold operator: + To compute (bag.fold f t A), we need a function for + elements of A.
    +
    +
    BAGS_FOLD_UNION_DISJOINT - io.github.cvc5.SkolemId
    +
    +
    An uninterpreted function for bag.fold operator: + To compute (bag.fold f t A), we need a function for + elements of A which is given by elements defined in + BAGS_FOLD_ELEMENTS.
    +
    +
    BAGS_MAP_INDEX - io.github.cvc5.SkolemId
    +
    +
    A skolem variable for the index that is unique per terms + (bag.map f A), y, e where: + f: (-> E T), + A: (Bag E), + y: T, + e: E + + + Number of skolem indices: 5 + + 1: a map term of the form (bag.map f A).
    +
    +
    BAGS_MAP_PREIMAGE_INJECTIVE - io.github.cvc5.SkolemId
    +
    +
    A skolem for the preimage of an element y in (bag.map f A) such that + (= (f x) y) where f: (-> E T) is an injective function.
    +
    +
    BAGS_MAP_SUM - io.github.cvc5.SkolemId
    +
    +
    An uninterpreted function for bag.map operator: + If bag A is {uf(1), ..., uf(n)} (see BAGS_DISTINCT_ELEMENTS}, + then the multiplicity of an element y in a bag (bag.map f A) is sum(n), + where sum: (-> Int Int) is a skolem function such that: + sum(0) = 0 + sum(i) = sum (i-1) + (bag.count (uf i) A) + + + Number of skolem indices: 3 + + 1: the function f of type (-> E T).
    +
    +
    BaseInfo() - Constructor for class io.github.cvc5.OptionInfo.BaseInfo
    +
     
    +
    BETA_REDUCE - io.github.cvc5.ProofRewriteRule
    +
    +
    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 Node.substitute.
    +
    +
    BITVECTOR_ADD - io.github.cvc5.Kind
    +
    +
    Addition of two or more bit-vectors.
    +
    +
    BITVECTOR_AND - io.github.cvc5.Kind
    +
    +
    Bit-wise and.
    +
    +
    BITVECTOR_ASHR - io.github.cvc5.Kind
    +
    +
    Bit-vector arithmetic shift right.
    +
    +
    BITVECTOR_BIT - io.github.cvc5.Kind
    +
    +
    Retrieves the bit at the given index from a bit-vector as a Bool term.
    +
    +
    BITVECTOR_COMP - io.github.cvc5.Kind
    +
    +
    Equality comparison (returns bit-vector of size 1).
    +
    +
    BITVECTOR_CONCAT - io.github.cvc5.Kind
    +
    +
    Concatenation of two or more bit-vectors.
    +
    +
    BITVECTOR_EXTRACT - io.github.cvc5.Kind
    +
    +
    Bit-vector extract.
    +
    +
    BITVECTOR_FROM_BOOLS - io.github.cvc5.Kind
    +
    +
    Converts a list of Bool terms to a bit-vector.
    +
    +
    BITVECTOR_ITE - io.github.cvc5.Kind
    +
    +
    Bit-vector if-then-else.
    +
    +
    BITVECTOR_LSHR - io.github.cvc5.Kind
    +
    +
    Bit-vector logical shift right.
    +
    +
    BITVECTOR_MULT - io.github.cvc5.Kind
    +
    +
    Multiplication of two or more bit-vectors.
    +
    +
    BITVECTOR_NAND - io.github.cvc5.Kind
    +
    +
    Bit-wise nand.
    +
    +
    BITVECTOR_NEG - io.github.cvc5.Kind
    +
    +
    Negation of a bit-vector (two's complement).
    +
    +
    BITVECTOR_NEGO - io.github.cvc5.Kind
    +
    +
    Bit-vector negation overflow detection.
    +
    +
    BITVECTOR_NOR - io.github.cvc5.Kind
    +
    +
    Bit-wise nor.
    +
    +
    BITVECTOR_NOT - io.github.cvc5.Kind
    +
    +
    Bit-wise negation.
    +
    +
    BITVECTOR_OR - io.github.cvc5.Kind
    +
    +
    Bit-wise or.
    +
    +
    BITVECTOR_REDAND - io.github.cvc5.Kind
    +
    +
    Bit-vector redand.
    +
    +
    BITVECTOR_REDOR - io.github.cvc5.Kind
    +
    +
    Bit-vector redor.
    +
    +
    BITVECTOR_REPEAT - io.github.cvc5.Kind
    +
    +
    Bit-vector repeat.
    +
    +
    BITVECTOR_ROTATE_LEFT - io.github.cvc5.Kind
    +
    +
    Bit-vector rotate left.
    +
    +
    BITVECTOR_ROTATE_RIGHT - io.github.cvc5.Kind
    +
    +
    Bit-vector rotate right.
    +
    +
    BITVECTOR_SADDO - io.github.cvc5.Kind
    +
    +
    Bit-vector signed addition overflow detection.
    +
    +
    BITVECTOR_SDIV - io.github.cvc5.Kind
    +
    +
    Signed bit-vector division.
    +
    +
    BITVECTOR_SDIVO - io.github.cvc5.Kind
    +
    +
    Bit-vector signed division overflow detection.
    +
    +
    BITVECTOR_SGE - io.github.cvc5.Kind
    +
    +
    Bit-vector signed greater than or equal.
    +
    +
    BITVECTOR_SGT - io.github.cvc5.Kind
    +
    +
    Bit-vector signed greater than.
    +
    +
    BITVECTOR_SHL - io.github.cvc5.Kind
    +
    +
    Bit-vector shift left.
    +
    +
    BITVECTOR_SIGN_EXTEND - io.github.cvc5.Kind
    +
    +
    Bit-vector sign extension.
    +
    +
    BITVECTOR_SLE - io.github.cvc5.Kind
    +
    +
    Bit-vector signed less than or equal.
    +
    +
    BITVECTOR_SLT - io.github.cvc5.Kind
    +
    +
    Bit-vector signed less than.
    +
    +
    BITVECTOR_SLTBV - io.github.cvc5.Kind
    +
    +
    Bit-vector signed less than returning a bit-vector of size 1.
    +
    +
    BITVECTOR_SMOD - io.github.cvc5.Kind
    +
    +
    Signed bit-vector remainder (sign follows divisor).
    +
    +
    BITVECTOR_SMULO - io.github.cvc5.Kind
    +
    +
    Bit-vector signed multiplication overflow detection.
    +
    +
    BITVECTOR_SORT - io.github.cvc5.SortKind
    +
    +
    A bit-vector sort, parameterized by an integer denoting its bit-width.
    +
    +
    BITVECTOR_SREM - io.github.cvc5.Kind
    +
    +
    Signed bit-vector remainder (sign follows dividend).
    +
    +
    BITVECTOR_SSUBO - io.github.cvc5.Kind
    +
    +
    Bit-vector signed subtraction overflow detection.
    +
    +
    BITVECTOR_SUB - io.github.cvc5.Kind
    +
    +
    Subtraction of two bit-vectors.
    +
    +
    BITVECTOR_TO_NAT - io.github.cvc5.Kind
    +
    +
    Bit-vector conversion to (non-negative) integer.
    +
    +
    BITVECTOR_UADDO - io.github.cvc5.Kind
    +
    +
    Bit-vector unsigned addition overflow detection.
    +
    +
    BITVECTOR_UDIV - io.github.cvc5.Kind
    +
    +
    Unsigned bit-vector division.
    +
    +
    BITVECTOR_UGE - io.github.cvc5.Kind
    +
    +
    Bit-vector unsigned greater than or equal.
    +
    +
    BITVECTOR_UGT - io.github.cvc5.Kind
    +
    +
    Bit-vector unsigned greater than.
    +
    +
    BITVECTOR_ULE - io.github.cvc5.Kind
    +
    +
    Bit-vector unsigned less than or equal.
    +
    +
    BITVECTOR_ULT - io.github.cvc5.Kind
    +
    +
    Bit-vector unsigned less than.
    +
    +
    BITVECTOR_ULTBV - io.github.cvc5.Kind
    +
    +
    Bit-vector unsigned less than returning a bit-vector of size 1.
    +
    +
    BITVECTOR_UMULO - io.github.cvc5.Kind
    +
    +
    Bit-vector unsigned multiplication overflow detection.
    +
    +
    BITVECTOR_UREM - io.github.cvc5.Kind
    +
    +
    Unsigned bit-vector remainder.
    +
    +
    BITVECTOR_USUBO - io.github.cvc5.Kind
    +
    +
    Bit-vector unsigned subtraction overflow detection.
    +
    +
    BITVECTOR_XNOR - io.github.cvc5.Kind
    +
    +
    Bit-wise xnor, left associative.
    +
    +
    BITVECTOR_XOR - io.github.cvc5.Kind
    +
    +
    Bit-wise xor.
    +
    +
    BITVECTOR_ZERO_EXTEND - io.github.cvc5.Kind
    +
    +
    Bit-vector zero extension.
    +
    +
    blockModel(BlockModelsMode) - Method in class io.github.cvc5.Solver
    +
    +
    Block the current model.
    +
    +
    BlockModelsMode - Enum in io.github.cvc5.modes
    +
     
    +
    blockModelValues(Term[]) - Method in class io.github.cvc5.Solver
    +
    +
    Block the current model values of (at least) the values in terms.
    +
    +
    BOOL_AND_CONF - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule boolean-and-conf
    +
    +
    BOOL_AND_CONF2 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule boolean-and-conf2
    +
    +
    BOOL_AND_DE_MORGAN - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule boolean-and-de-morgan
    +
    +
    BOOL_AND_FALSE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule boolean-and-false
    +
    +
    BOOL_AND_FLATTEN - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule boolean-and-flatten
    +
    +
    BOOL_DOUBLE_NOT_ELIM - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule boolean-double-not-elim
    +
    +
    BOOL_EQ_FALSE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule boolean-eq-false
    +
    +
    BOOL_EQ_NREFL - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule boolean-eq-nrefl
    +
    +
    BOOL_EQ_TRUE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule boolean-eq-true
    +
    +
    BOOL_IMPL_ELIM - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule boolean-impl-elim
    +
    +
    BOOL_IMPL_FALSE1 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule boolean-impl-false1
    +
    +
    BOOL_IMPL_FALSE2 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule boolean-impl-false2
    +
    +
    BOOL_IMPL_TRUE1 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule boolean-impl-true1
    +
    +
    BOOL_IMPL_TRUE2 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule boolean-impl-true2
    +
    +
    BOOL_IMPLIES_DE_MORGAN - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule boolean-implies-de-morgan
    +
    +
    BOOL_NOT_EQ_ELIM1 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule boolean-not-eq-elim1
    +
    +
    BOOL_NOT_EQ_ELIM2 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule boolean-not-eq-elim2
    +
    +
    BOOL_NOT_FALSE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule boolean-not-false
    +
    +
    BOOL_NOT_ITE_ELIM - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule boolean-not-ite-elim
    +
    +
    BOOL_NOT_TRUE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule boolean-not-true
    +
    +
    BOOL_NOT_XOR_ELIM - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule boolean-not-xor-elim
    +
    +
    BOOL_OR_AND_DISTRIB - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule boolean-or-and-distrib
    +
    +
    BOOL_OR_DE_MORGAN - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule boolean-or-de-morgan
    +
    +
    BOOL_OR_FLATTEN - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule boolean-or-flatten
    +
    +
    BOOL_OR_TAUT - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule boolean-or-taut
    +
    +
    BOOL_OR_TAUT2 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule boolean-or-taut2
    +
    +
    BOOL_OR_TRUE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule boolean-or-true
    +
    +
    BOOL_XOR_COMM - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule boolean-xor-comm
    +
    +
    BOOL_XOR_ELIM - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule boolean-xor-elim
    +
    +
    BOOL_XOR_FALSE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule boolean-xor-false
    +
    +
    BOOL_XOR_NREFL - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule boolean-xor-nrefl
    +
    +
    BOOL_XOR_REFL - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule boolean-xor-refl
    +
    +
    BOOL_XOR_TRUE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule boolean-xor-true
    +
    +
    BOOLEAN_SORT - io.github.cvc5.SortKind
    +
    +
    The Boolean sort.
    +
    +
    booleanValue() - Method in class io.github.cvc5.OptionInfo
    +
    +
    Obtain the current value as a Boolean.
    +
    +
    BV_ADD_COMBINE_LIKE_TERMS - io.github.cvc5.ProofRewriteRule
    +
    +
    Bitvectors – Combine like terms during addition by counting terms
    +
    +
    BV_ADD_TWO - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-add-two
    +
    +
    BV_ADD_ZERO - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-add-zero
    +
    +
    BV_AND_CONCAT_PULLUP - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-and-concat-pullup
    +
    +
    BV_AND_FLATTEN - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-and-flatten
    +
    +
    BV_AND_ONE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-and-one
    +
    +
    BV_AND_SIMPLIFY_1 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-and-simplify-1
    +
    +
    BV_AND_SIMPLIFY_2 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-and-simplify-2
    +
    +
    BV_AND_ZERO - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-and-zero
    +
    +
    BV_ASHR_BY_CONST_0 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-ashr-by--0
    +
    +
    BV_ASHR_BY_CONST_1 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-ashr-by--1
    +
    +
    BV_ASHR_BY_CONST_2 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-ashr-by--2
    +
    +
    BV_ASHR_ZERO - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-ashr-zero
    +
    +
    BV_BITBLAST_STEP - io.github.cvc5.ProofRule
    +
    +
    Bit-vectors – Bitblast bit-vector constant, variable, and terms + + For constant and variables: + + \[ + + \inferrule{-\mid t}{t = \texttt{bitblast}(t)} + \] + For terms: + + \[ + + \inferrule{-\mid k(\texttt{bitblast}(t_1),\dots,\texttt{bitblast}(t_n))} + {k(\texttt{bitblast}(t_1),\dots,\texttt{bitblast}(t_n)) = + \texttt{bitblast}(t)} + \] + where \(t\) is \(k(t_1,\dots,t_n)\).
    +
    +
    BV_BITWISE_IDEMP_1 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-bitwise-idemp-1
    +
    +
    BV_BITWISE_IDEMP_2 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-bitwise-idemp-2
    +
    +
    BV_BITWISE_NOT_AND - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-bitwise-not-and
    +
    +
    BV_BITWISE_NOT_OR - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-bitwise-not-or
    +
    +
    BV_BITWISE_SLICING - io.github.cvc5.ProofRewriteRule
    +
    +
    Bitvectors – Extract continuous substrings of bitvectors + + \[ + bvand(a,\ c) = concat(bvand(a[i_0:j_0],\ c_0) ...
    +
    +
    BV_COMMUTATIVE_ADD - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-commutative-add
    +
    +
    BV_COMMUTATIVE_AND - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-commutative-and
    +
    +
    BV_COMMUTATIVE_MUL - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-commutative-mul
    +
    +
    BV_COMMUTATIVE_OR - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-commutative-or
    +
    +
    BV_COMMUTATIVE_XOR - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-commutative-xor
    +
    +
    BV_COMP_ELIMINATE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-comp-eliminate
    +
    +
    BV_CONCAT_EXTRACT_MERGE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-concat-extract-merge
    +
    +
    BV_CONCAT_FLATTEN - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-concat-flatten
    +
    +
    BV_CONCAT_MERGE_CONST - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-concat-merge-
    +
    +
    BV_CONCAT_TO_MULT - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-concat-to-mult
    +
    +
    BV_EAGER_ATOM - io.github.cvc5.ProofRule
    +
    +
    Bit-vectors – Bit-vector eager atom + + \[ + + \inferrule{-\mid F}{F = F[0]} + \] + where \(F\) is of kind BITVECTOR_EAGER_ATOM.
    +
    +
    BV_EMPTY - io.github.cvc5.SkolemId
    +
    +
    The empty bitvector.
    +
    +
    BV_EQ_EXTRACT_ELIM1 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-eq-extract-elim1
    +
    +
    BV_EQ_EXTRACT_ELIM2 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-eq-extract-elim2
    +
    +
    BV_EQ_EXTRACT_ELIM3 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-eq-extract-elim3
    +
    +
    BV_EXTRACT_BITWISE_AND - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-extract-bitwise-and
    +
    +
    BV_EXTRACT_BITWISE_OR - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-extract-bitwise-or
    +
    +
    BV_EXTRACT_BITWISE_XOR - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-extract-bitwise-xor
    +
    +
    BV_EXTRACT_CONCAT_1 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-extract-concat-1
    +
    +
    BV_EXTRACT_CONCAT_2 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-extract-concat-2
    +
    +
    BV_EXTRACT_CONCAT_3 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-extract-concat-3
    +
    +
    BV_EXTRACT_CONCAT_4 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-extract-concat-4
    +
    +
    BV_EXTRACT_EXTRACT - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-extract-extract
    +
    +
    BV_EXTRACT_MULT_LEADING_BIT - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-extract-mult-leading-bit
    +
    +
    BV_EXTRACT_NOT - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-extract-not
    +
    +
    BV_EXTRACT_SIGN_EXTEND_1 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-extract-sign-extend-1
    +
    +
    BV_EXTRACT_SIGN_EXTEND_2 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-extract-sign-extend-2
    +
    +
    BV_EXTRACT_SIGN_EXTEND_3 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-extract-sign-extend-3
    +
    +
    BV_EXTRACT_WHOLE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-extract-whole
    +
    +
    BV_ITE_CONST_CHILDREN_1 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-ite--children-1
    +
    +
    BV_ITE_CONST_CHILDREN_2 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-ite--children-2
    +
    +
    BV_ITE_EQUAL_CHILDREN - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-ite-equal-children
    +
    +
    BV_ITE_EQUAL_COND_1 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-ite-equal-cond-1
    +
    +
    BV_ITE_EQUAL_COND_2 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-ite-equal-cond-2
    +
    +
    BV_ITE_EQUAL_COND_3 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-ite-equal-cond-3
    +
    +
    BV_ITE_MERGE_ELSE_ELSE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-ite-merge-else-else
    +
    +
    BV_ITE_MERGE_ELSE_IF - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-ite-merge-else-if
    +
    +
    BV_ITE_MERGE_THEN_ELSE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-ite-merge-then-else
    +
    +
    BV_ITE_MERGE_THEN_IF - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-ite-merge-then-if
    +
    +
    BV_LSHR_BY_CONST_0 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-lshr-by--0
    +
    +
    BV_LSHR_BY_CONST_1 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-lshr-by--1
    +
    +
    BV_LSHR_BY_CONST_2 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-lshr-by--2
    +
    +
    BV_LSHR_ZERO - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-lshr-zero
    +
    +
    BV_LT_SELF - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-lt-self
    +
    +
    BV_MERGE_SIGN_EXTEND_1 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-merge-sign-extend-1
    +
    +
    BV_MERGE_SIGN_EXTEND_2 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-merge-sign-extend-2
    +
    +
    BV_MERGE_SIGN_EXTEND_3 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-merge-sign-extend-3
    +
    +
    BV_MUL_FLATTEN - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-mul-flatten
    +
    +
    BV_MUL_ONE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-mul-one
    +
    +
    BV_MUL_ZERO - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-mul-zero
    +
    +
    BV_MULT_DISTRIB_1 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-mult-distrib-1
    +
    +
    BV_MULT_DISTRIB_2 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-mult-distrib-2
    +
    +
    BV_MULT_DISTRIB_CONST_ADD - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-mult-distrib--add
    +
    +
    BV_MULT_DISTRIB_CONST_NEG - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-mult-distrib--neg
    +
    +
    BV_MULT_DISTRIB_CONST_SUB - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-mult-distrib--sub
    +
    +
    BV_MULT_POW2_1 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-mult-pow2-1
    +
    +
    BV_MULT_POW2_2 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-mult-pow2-2
    +
    +
    BV_MULT_POW2_2B - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-mult-pow2-2b
    +
    +
    BV_MULT_SIMPLIFY - io.github.cvc5.ProofRewriteRule
    +
    +
    Bitvectors – Extract negations from multiplicands + + \[ + bvmul(bvneg(a),\ b,\ c) = bvneg(bvmul(a,\ b,\ c)) + \]
    +
    +
    BV_MULT_SLT_MULT_1 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-mult-slt-mult-1
    +
    +
    BV_MULT_SLT_MULT_2 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-mult-slt-mult-2
    +
    +
    BV_NAND_ELIMINATE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-nand-eliminate
    +
    +
    BV_NEG_ADD - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-neg-add
    +
    +
    BV_NEG_IDEMP - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-neg-idemp
    +
    +
    BV_NEG_MULT - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-neg-mult
    +
    +
    BV_NEG_SUB - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-neg-sub
    +
    +
    BV_NOR_ELIMINATE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-nor-eliminate
    +
    +
    BV_NOT_IDEMP - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-not-idemp
    +
    +
    BV_NOT_NEQ - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-not-neq
    +
    +
    BV_NOT_SLE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-not-sle
    +
    +
    BV_NOT_ULE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-not-ule
    +
    +
    BV_NOT_ULT - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-not-ult
    +
    +
    BV_NOT_XOR - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-not-xor
    +
    +
    BV_OR_CONCAT_PULLUP - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-or-concat-pullup
    +
    +
    BV_OR_FLATTEN - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-or-flatten
    +
    +
    BV_OR_ONE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-or-one
    +
    +
    BV_OR_SIMPLIFY_1 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-or-simplify-1
    +
    +
    BV_OR_SIMPLIFY_2 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-or-simplify-2
    +
    +
    BV_OR_ZERO - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-or-zero
    +
    +
    BV_REDAND_ELIMINATE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-redand-eliminate
    +
    +
    BV_REDOR_ELIMINATE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-redor-eliminate
    +
    +
    BV_REPEAT_ELIM - io.github.cvc5.ProofRewriteRule
    +
    +
    Bitvectors – Extract continuous substrings of bitvectors + + \[ + repeat(n,\ t) = concat(t ...
    +
    +
    BV_ROTATE_LEFT_ELIMINATE_1 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-rotate-left-eliminate-1
    +
    +
    BV_ROTATE_LEFT_ELIMINATE_2 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-rotate-left-eliminate-2
    +
    +
    BV_ROTATE_RIGHT_ELIMINATE_1 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-rotate-right-eliminate-1
    +
    +
    BV_ROTATE_RIGHT_ELIMINATE_2 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-rotate-right-eliminate-2
    +
    +
    BV_SADDO_ELIMINATE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-saddo-eliminate
    +
    +
    BV_SDIV_ELIMINATE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-sdiv-eliminate
    +
    +
    BV_SDIV_ELIMINATE_FEWER_BITWISE_OPS - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-sdiv-eliminate-fewer-bitwise-ops
    +
    +
    BV_SDIVO_ELIMINATE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-sdivo-eliminate
    +
    +
    BV_SGE_ELIMINATE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-sge-eliminate
    +
    +
    BV_SGT_ELIMINATE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-sgt-eliminate
    +
    +
    BV_SHL_BY_CONST_0 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-shl-by--0
    +
    +
    BV_SHL_BY_CONST_1 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-shl-by--1
    +
    +
    BV_SHL_BY_CONST_2 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-shl-by--2
    +
    +
    BV_SHL_ZERO - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-shl-zero
    +
    +
    BV_SIGN_EXTEND_ELIMINATE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-sign-extend-eliminate
    +
    +
    BV_SIGN_EXTEND_ELIMINATE_0 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-sign-extend-eliminate-0
    +
    +
    BV_SIGN_EXTEND_EQ_CONST_1 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-sign-extend-eq--1
    +
    +
    BV_SIGN_EXTEND_EQ_CONST_2 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-sign-extend-eq--2
    +
    +
    BV_SIGN_EXTEND_ULT_CONST_1 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-sign-extend-ult--1
    +
    +
    BV_SIGN_EXTEND_ULT_CONST_2 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-sign-extend-ult--2
    +
    +
    BV_SIGN_EXTEND_ULT_CONST_3 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-sign-extend-ult--3
    +
    +
    BV_SIGN_EXTEND_ULT_CONST_4 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-sign-extend-ult--4
    +
    +
    BV_SLE_ELIMINATE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-sle-eliminate
    +
    +
    BV_SLE_SELF - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-sle-self
    +
    +
    BV_SLT_ELIMINATE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-slt-eliminate
    +
    +
    BV_SLT_ZERO - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-slt-zero
    +
    +
    BV_SMOD_ELIMINATE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-smod-eliminate
    +
    +
    BV_SMOD_ELIMINATE_FEWER_BITWISE_OPS - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-smod-eliminate-fewer-bitwise-ops
    +
    +
    BV_SMULO_ELIMINATE - io.github.cvc5.ProofRewriteRule
    +
    +
    Bitvectors – Unsigned multiplication overflow detection elimination + + See M.Gok, M.J.
    +
    +
    BV_SREM_ELIMINATE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-srem-eliminate
    +
    +
    BV_SREM_ELIMINATE_FEWER_BITWISE_OPS - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-srem-eliminate-fewer-bitwise-ops
    +
    +
    BV_SSUBO_ELIMINATE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-ssubo-eliminate
    +
    +
    BV_SUB_ELIMINATE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-sub-eliminate
    +
    +
    BV_TO_INT_UF - io.github.cvc5.SkolemId
    +
    +
    A skolem function introduced by the int-blaster.
    +
    +
    BV_TO_NAT_ELIM - io.github.cvc5.ProofRewriteRule
    +
    +
    UF – Bitvector to natural elimination + + \[ + \texttt{bv2nat}(t) = t_1 + \ldots + t_n + \] + where for \(i=1, \ldots, n\), \(t_i\) is + \(\texttt{ite}(x[i-1, i-1] = 1, 2^i, 0)\).
    +
    +
    BV_UADDO_ELIMINATE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-uaddo-eliminate
    +
    +
    BV_UDIV_ONE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-udiv-one
    +
    +
    BV_UDIV_POW2_NOT_ONE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-udiv-pow2-not-one
    +
    +
    BV_UDIV_ZERO - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-udiv-zero
    +
    +
    BV_UGE_ELIMINATE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-uge-eliminate
    +
    +
    BV_UGT_ELIMINATE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-ugt-eliminate
    +
    +
    BV_UGT_UREM - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-ugt-urem
    +
    +
    BV_ULE_ELIMINATE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-ule-eliminate
    +
    +
    BV_ULE_MAX - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-ule-max
    +
    +
    BV_ULE_SELF - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-ule-self
    +
    +
    BV_ULE_ZERO - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-ule-zero
    +
    +
    BV_ULT_ADD_ONE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-ult-add-one
    +
    +
    BV_ULT_ONE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-ult-one
    +
    +
    BV_ULT_ONES - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-ult-ones
    +
    +
    BV_ULT_SELF - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-ult-self
    +
    +
    BV_ULT_ZERO_1 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-ult-zero-1
    +
    +
    BV_ULT_ZERO_2 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-ult-zero-2
    +
    +
    BV_UMULO_ELIMINATE - io.github.cvc5.ProofRewriteRule
    +
    +
    Bitvectors – Unsigned multiplication overflow detection elimination + + See M.Gok, M.J.
    +
    +
    BV_UREM_ONE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-urem-one
    +
    +
    BV_UREM_POW2_NOT_ONE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-urem-pow2-not-one
    +
    +
    BV_UREM_SELF - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-urem-self
    +
    +
    BV_USUBO_ELIMINATE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-usubo-eliminate
    +
    +
    BV_XNOR_ELIMINATE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-xnor-eliminate
    +
    +
    BV_XOR_CONCAT_PULLUP - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-xor-concat-pullup
    +
    +
    BV_XOR_DUPLICATE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-xor-duplicate
    +
    +
    BV_XOR_FLATTEN - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-xor-flatten
    +
    +
    BV_XOR_NOT - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-xor-not
    +
    +
    BV_XOR_ONES - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-xor-ones
    +
    +
    BV_XOR_SIMPLIFY_1 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-xor-simplify-1
    +
    +
    BV_XOR_SIMPLIFY_2 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-xor-simplify-2
    +
    +
    BV_XOR_SIMPLIFY_3 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-xor-simplify-3
    +
    +
    BV_XOR_ZERO - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-xor-zero
    +
    +
    BV_ZERO_EXTEND_ELIMINATE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-zero-extend-eliminate
    +
    +
    BV_ZERO_EXTEND_ELIMINATE_0 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-zero-extend-eliminate-0
    +
    +
    BV_ZERO_EXTEND_EQ_CONST_1 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-zero-extend-eq--1
    +
    +
    BV_ZERO_EXTEND_EQ_CONST_2 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-zero-extend-eq--2
    +
    +
    BV_ZERO_ULE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule bv-zero-ule
    +
    +
    + + + +

    C

    +
    +
    CARDINALITY_CONSTRAINT - io.github.cvc5.Kind
    +
    +
    Cardinality constraint on uninterpreted sort.
    +
    +
    CHAIN_RESOLUTION - io.github.cvc5.ProofRule
    +
    +
    Boolean – N-ary Resolution + + \[ + \inferrule{C_1 \dots C_n \mid (pol_1 \dots pol_{n-1}), (L_1 \dots L_{n-1})}{C} + \] + where + + + let \(C_1 \dots C_n\) be nodes viewed as clauses, as defined above + + let \(C_1 \diamond_{L,pol} C_2\) represent the resolution of + \(C_1\) with \(C_2\) with pivot \(L\) and polarity + \(pol\), as defined above + + let \(C_1' = C_1\), + + for each \(i > 1\), let \(C_i' = C_{i-1} \diamond_{L_{i-1}, pol_{i-1}} C_i'\) + + + Note the list of polarities and pivots are provided as s-expressions.
    +
    +
    check() - Method in class io.github.cvc5.AbstractPlugin
    +
    +
    Call to check, return vector of lemmas to add to the SAT solver.
    +
    +
    checkSat() - Method in class io.github.cvc5.Solver
    +
    +
    Check satisfiability.
    +
    +
    checkSatAssuming(Term) - Method in class io.github.cvc5.Solver
    +
    +
    Check satisfiability assuming the given formula.
    +
    +
    checkSatAssuming(Term[]) - Method in class io.github.cvc5.Solver
    +
    +
    Check satisfiability assuming the given formulas.
    +
    +
    checkSynth() - Method in class io.github.cvc5.Solver
    +
    +
    Try to find a solution for the synthesis conjecture corresponding to the + current list of functions-to-synthesize, universal variables and + constraints.
    +
    +
    checkSynthNext() - Method in class io.github.cvc5.Solver
    +
    +
    Try to find a next solution for the synthesis conjecture corresponding to + the current list of functions-to-synthesize, universal variables and + constraints.
    +
    +
    CNF_AND_NEG - io.github.cvc5.ProofRule
    +
    +
    Boolean – CNF – And Negative + + \[ + \inferrule{- \mid (F_1 \land \dots \land F_n)}{(F_1 \land \dots \land + F_n) \lor \neg F_1 \lor \dots \lor \neg F_n} + \]
    +
    +
    CNF_AND_POS - io.github.cvc5.ProofRule
    +
    +
    Boolean – CNF – And Positive + + \[ + \inferrule{- \mid (F_1 \land \dots \land F_n), i}{\neg (F_1 \land \dots + \land F_n) \lor F_i} + \]
    +
    +
    CNF_EQUIV_NEG1 - io.github.cvc5.ProofRule
    +
    +
    Boolean – CNF – Equiv Negative 1 + + \[ + \inferrule{- \mid F_1 = F_2}{(F_1 = F_2) \lor F_1 \lor F_2} + \]
    +
    +
    CNF_EQUIV_NEG2 - io.github.cvc5.ProofRule
    +
    +
    Boolean – CNF – Equiv Negative 2 + + \[ + \inferrule{- \mid F_1 = F_2}{(F_1 = F_2) \lor \neg F_1 \lor \neg F_2} + \]
    +
    +
    CNF_EQUIV_POS1 - io.github.cvc5.ProofRule
    +
    +
    Boolean – CNF – Equiv Positive 1 + + \[ + \inferrule{- \mid F_1 = F_2}{F_1 \neq F_2 \lor \neg F_1 \lor F_2} + \]
    +
    +
    CNF_EQUIV_POS2 - io.github.cvc5.ProofRule
    +
    +
    Boolean – CNF – Equiv Positive 2 + + \[ + \inferrule{- \mid F_1 = F_2}{F_1 \neq F_2 \lor F_1 \lor \neg F_2} + \]
    +
    +
    CNF_IMPLIES_NEG1 - io.github.cvc5.ProofRule
    +
    +
    Boolean – CNF – Implies Negative 1 + + \[ + \inferrule{- \mid F_1 \rightarrow F_2}{(F_1 \rightarrow F_2) \lor F_1} + \]
    +
    +
    CNF_IMPLIES_NEG2 - io.github.cvc5.ProofRule
    +
    +
    Boolean – CNF – Implies Negative 2 + + \[ + \inferrule{- \mid F_1 \rightarrow F_2}{(F_1 \rightarrow F_2) \lor \neg F_2} + \]
    +
    +
    CNF_IMPLIES_POS - io.github.cvc5.ProofRule
    +
    +
    Boolean – CNF – Implies Positive + + \[ + \inferrule{- \mid F_1 \rightarrow F_2}{\neg(F_1 \rightarrow F_2) \lor \neg F_1 + \lor F_2} + \]
    +
    +
    CNF_ITE_NEG1 - io.github.cvc5.ProofRule
    +
    +
    Boolean – CNF – ITE Negative 1 + + \[ + \inferrule{- \mid (\ite{C}{F_1}{F_2})}{(\ite{C}{F_1}{F_2}) \lor \neg C + \lor \neg F_1} + \]
    +
    +
    CNF_ITE_NEG2 - io.github.cvc5.ProofRule
    +
    +
    Boolean – CNF – ITE Negative 2 + + \[ + \inferrule{- \mid (\ite{C}{F_1}{F_2})}{(\ite{C}{F_1}{F_2}) \lor C \lor + \neg F_2} + \]
    +
    +
    CNF_ITE_NEG3 - io.github.cvc5.ProofRule
    +
    +
    Boolean – CNF – ITE Negative 3 + + \[ + \inferrule{- \mid (\ite{C}{F_1}{F_2})}{(\ite{C}{F_1}{F_2}) \lor \neg F_1 + \lor \neg F_2} + \]
    +
    +
    CNF_ITE_POS1 - io.github.cvc5.ProofRule
    +
    +
    Boolean – CNF – ITE Positive 1 + + \[ + \inferrule{- \mid (\ite{C}{F_1}{F_2})}{\neg(\ite{C}{F_1}{F_2}) \lor \neg + C \lor F_1} + \]
    +
    +
    CNF_ITE_POS2 - io.github.cvc5.ProofRule
    +
    +
    Boolean – CNF – ITE Positive 2 + + \[ + \inferrule{- \mid (\ite{C}{F_1}{F_2})}{\neg(\ite{C}{F_1}{F_2}) \lor C + \lor F_2} + \]
    +
    +
    CNF_ITE_POS3 - io.github.cvc5.ProofRule
    +
    +
    Boolean – CNF – ITE Positive 3 + + \[ + \inferrule{- \mid (\ite{C}{F_1}{F_2})}{\neg(\ite{C}{F_1}{F_2}) \lor F_1 + \lor F_2} + \]
    +
    +
    CNF_OR_NEG - io.github.cvc5.ProofRule
    +
    +
    Boolean – CNF – Or Negative + + \[ + \inferrule{- \mid (F_1 \lor \dots \lor F_n), i}{(F_1 \lor \dots \lor F_n) + \lor \neg F_i} + \]
    +
    +
    CNF_OR_POS - io.github.cvc5.ProofRule
    +
    +
    Boolean – CNF – Or Positive + + \[ + \inferrule{- \mid (F_1 \lor \dots \lor F_n)}{\neg(F_1 \lor \dots \lor + F_n) \lor F_1 \lor \dots \lor F_n} + \]
    +
    +
    CNF_XOR_NEG1 - io.github.cvc5.ProofRule
    +
    +
    Boolean – CNF – XOR Negative 1 + + \[ + \inferrule{- \mid F_1 \xor F_2}{(F_1 \xor F_2) \lor \neg F_1 \lor F_2} + \]
    +
    +
    CNF_XOR_NEG2 - io.github.cvc5.ProofRule
    +
    +
    Boolean – CNF – XOR Negative 2 + + \[ + \inferrule{- \mid F_1 \xor F_2}{(F_1 \xor F_2) \lor F_1 \lor \neg F_2} + \]
    +
    +
    CNF_XOR_POS1 - io.github.cvc5.ProofRule
    +
    +
    Boolean – CNF – XOR Positive 1 + + \[ + \inferrule{- \mid F_1 \xor F_2}{\neg(F_1 \xor F_2) \lor F_1 \lor F_2} + \]
    +
    +
    CNF_XOR_POS2 - io.github.cvc5.ProofRule
    +
    +
    Boolean – CNF – XOR Positive 2 + + \[ + \inferrule{- \mid F_1 \xor F_2}{\neg(F_1 \xor F_2) \lor \neg F_1 \lor + \neg F_2} + \]
    +
    +
    Command - Class in io.github.cvc5
    +
     
    +
    compareTo(Sort) - Method in class io.github.cvc5.Sort
    +
    +
    Comparison for ordering on sorts.
    +
    +
    compareTo(Term) - Method in class io.github.cvc5.Term
    +
    +
    Comparison for ordering on terms.
    +
    +
    CONCAT_CONFLICT - io.github.cvc5.ProofRule
    +
    +
    Strings – Core rules – Concatenation conflict + + \[ + + \inferrule{(c_1\cdot t) = (c_2 \cdot s)\mid b}{\bot} + \] + where \(b\) indicates if the direction is reversed, \(c_1,\,c_2\) + are constants such that \(\texttt{Word::splitConstant}(c_1,c_2, + \mathit{index},b)\) is null, in other words, neither is a prefix of the + other.
    +
    +
    CONCAT_CONFLICT_DEQ - io.github.cvc5.ProofRule
    +
    +
    Strings – Core rules – Concatenation conflict for disequal characters + + \[ + + \inferrule{(t_1\cdot t) = (s_1 \cdot s), t_1 \neq s_1 \mid b}{\bot} + \] + where \(t_1\) and \(s_1\) are constants of length one, or otherwise one side + of the equality is the empty sequence and \(t_1\) or \(s_1\) corresponding to + that side is the empty sequence.
    +
    +
    CONCAT_CPROP - io.github.cvc5.ProofRule
    +
    +
    Strings – Core rules – Concatenation constant propagation + + \[ + + \inferrule{(t_1\cdot w_1\cdot t_2) = (w_2 \cdot s),\, + \mathit{len}(t_1) \neq 0\mid \bot}{(t_1 = t_3\cdot r)} + \] + where \(w_1,\,w_2\) are words, \(t_3\) is + \(\mathit{pre}(w_2,p)\), \(p\) is + \(\texttt{Word::overlap}(\mathit{suf}(w_2,1), w_1)\), and \(r\) is + the purification skolem for + \(\mathit{suf}(t_1,\mathit{len}(w_3))\).
    +
    +
    CONCAT_CSPLIT - io.github.cvc5.ProofRule
    +
    +
    Strings – Core rules – Concatenation split for constants + + \[ + + \inferrule{(t_1\cdot t_2) = (c \cdot s_2),\, + \mathit{len}(t_1) \neq 0\mid \bot}{(t_1 = c\cdot r)} + \] + where \(r\) is the purification skolem for \(\mathit{suf}(t_1,1)\).
    +
    +
    CONCAT_EQ - io.github.cvc5.ProofRule
    +
    +
    Strings – Core rules – Concatenation equality + + \[ + + \inferrule{(t_1\cdot\ldots \cdot t_n \cdot t) = (t_1 \cdot\ldots + \cdot t_n\cdot s)\mid b}{t = s} + \] + where \(\cdot\) stands for string concatenation and \(b\) indicates + if the direction is reversed.
    +
    +
    CONCAT_LPROP - io.github.cvc5.ProofRule
    +
    +
    Strings – Core rules – Concatenation length propagation + + \[ + + \inferrule{(t_1\cdot t_2) = (s_1 \cdot s_2),\, + \mathit{len}(t_1) > \mathit{len}(s_1)\mid \bot}{(t_1 = s_1\cdot r)} + \] + where \(r\) is the purification Skolem for + \(\mathit{ite}( + \mathit{len}(t_1) >= \mathit{len}(s_1), + \mathit{suf}(t_1,\mathit{len}(s_1)), + \mathit{suf}(s_1,\mathit{len}(t_1)))\).
    +
    +
    CONCAT_SPLIT - io.github.cvc5.ProofRule
    +
    +
    Strings – Core rules – Concatenation split + + \[ + + \inferruleSC{(t_1\cdot t_2) = (s_1 \cdot s_2),\, + \mathit{len}(t_1) \neq \mathit{len}(s_1)\mid b}{((t_1 = s_1\cdot r) + \vee (s_1 = t_1\cdot r)) \wedge r \neq \epsilon \wedge \mathit{len}(r)>0}{if $b=\bot$} + \] + where \(r\) is the purification skolem for + \(\mathit{ite}( + \mathit{len}(t_1) >= \mathit{len}(s_1), + \mathit{suf}(t_1,\mathit{len}(s_1)), + \mathit{suf}(s_1,\mathit{len}(t_1)))\) + and \(\epsilon\) is the empty string (or sequence).
    +
    +
    CONCAT_UNIFY - io.github.cvc5.ProofRule
    +
    +
    Strings – Core rules – Concatenation unification + + \[ + + \inferrule{(t_1\cdot t_2) = (s_1 \cdot s_2),\, \mathit{len}(t_1) = + \mathit{len}(s_1)\mid \bot}{t_1 = s_1} + \] + Alternatively for the reverse: + + \[ + + \inferrule{(t_1\cdot t_2) = (s_1 \cdot s_2),\, \mathit{len}(t_2) = + \mathit{len}(s_2)\mid \top}{t_2 = s_2} + \]
    +
    +
    CONG - io.github.cvc5.ProofRule
    +
    +
    Equality – Congruence + + \[ + + \inferrule{t_1=s_1,\dots,t_n=s_n\mid k, f?}{k(f?, t_1,\dots, t_n) = + k(f?, s_1,\dots, s_n)} + \] + where \(k\) is the application kind.
    +
    +
    CONST_ARRAY - io.github.cvc5.Kind
    +
    +
    Constant array.
    +
    +
    CONST_BITVECTOR - io.github.cvc5.Kind
    +
    +
    Fixed-size bit-vector constant.
    +
    +
    CONST_BOOLEAN - io.github.cvc5.Kind
    +
    +
    Boolean constant.
    +
    +
    CONST_FINITE_FIELD - io.github.cvc5.Kind
    +
    +
    Finite field constant.
    +
    +
    CONST_FLOATINGPOINT - io.github.cvc5.Kind
    +
    +
    Floating-point constant, created from IEEE-754 bit-vector representation + of the floating-point value.
    +
    +
    CONST_INTEGER - io.github.cvc5.Kind
    +
    +
    Arbitrary-precision integer constant.
    +
    +
    CONST_RATIONAL - io.github.cvc5.Kind
    +
    +
    Arbitrary-precision rational constant.
    +
    +
    CONST_ROUNDINGMODE - io.github.cvc5.Kind
    +
    +
    RoundingMode constant.
    +
    +
    CONST_SEQUENCE - io.github.cvc5.Kind
    +
    +
    Constant sequence.
    +
    +
    CONST_STRING - io.github.cvc5.Kind
    +
    +
    Constant string.
    +
    +
    CONSTANT - io.github.cvc5.Kind
    +
    +
    Free constant symbol.
    +
    +
    CONSTANT_PROP - io.github.cvc5.modes.LearnedLitType
    +
    +
    An internal literal that can be made into a constant propagation for an + input term.
    +
    +
    ConstIterator() - Constructor for class io.github.cvc5.Datatype.ConstIterator
    +
     
    +
    ConstIterator() - Constructor for class io.github.cvc5.DatatypeConstructor.ConstIterator
    +
     
    +
    ConstIterator() - Constructor for class io.github.cvc5.Statistics.ConstIterator
    +
     
    +
    ConstIterator() - Constructor for class io.github.cvc5.Term.ConstIterator
    +
     
    +
    ConstIterator(boolean, boolean) - Constructor for class io.github.cvc5.Statistics.ConstIterator
    +
     
    +
    Context - Class in io.github.cvc5
    +
     
    +
    Context() - Constructor for class io.github.cvc5.Context
    +
     
    +
    CONTRA - io.github.cvc5.ProofRule
    +
    +
    Boolean – Contradiction + + \[ + \inferrule{F, \neg F \mid -}{\bot} + \]
    +
    +
    COSECANT - io.github.cvc5.Kind
    +
    +
    Cosecant function.
    +
    +
    COSINE - io.github.cvc5.Kind
    +
    +
    Cosine function.
    +
    +
    COTANGENT - io.github.cvc5.Kind
    +
    +
    Cotangent function.
    +
    +
    CPC - io.github.cvc5.modes.ProofFormat
    +
    +
    Output Cooperating Proof Calculus proof based on Eunoia signatures.
    +
    +
    CVC5ApiException - Exception in io.github.cvc5
    +
     
    +
    CVC5ApiException(String) - Constructor for exception io.github.cvc5.CVC5ApiException
    +
     
    +
    CVC5ApiOptionException - Exception in io.github.cvc5
    +
     
    +
    CVC5ApiOptionException(String) - Constructor for exception io.github.cvc5.CVC5ApiOptionException
    +
     
    +
    CVC5ApiRecoverableException - Exception in io.github.cvc5
    +
     
    +
    CVC5ApiRecoverableException(String) - Constructor for exception io.github.cvc5.CVC5ApiRecoverableException
    +
     
    +
    CVC5ParserException - Exception in io.github.cvc5
    +
     
    +
    CVC5ParserException(String) - Constructor for exception io.github.cvc5.CVC5ParserException
    +
     
    +
    + + + +

    D

    +
    +
    Datatype - Class in io.github.cvc5
    +
    +
    A cvc5 datatype.
    +
    +
    DATATYPE_SORT - io.github.cvc5.SortKind
    +
    +
    A datatype sort.
    +
    +
    Datatype.ConstIterator - Class in io.github.cvc5
    +
     
    +
    DatatypeConstructor - Class in io.github.cvc5
    +
    +
    A cvc5 datatype constructor.
    +
    +
    DatatypeConstructor.ConstIterator - Class in io.github.cvc5
    +
     
    +
    DatatypeConstructorDecl - Class in io.github.cvc5
    +
    +
    A cvc5 datatype constructor declaration.
    +
    +
    DatatypeDecl - Class in io.github.cvc5
    +
    +
    A cvc5 datatype declaration.
    +
    +
    DatatypeDecl() - Constructor for class io.github.cvc5.DatatypeDecl
    +
    +
    Null datatypeDecl
    +
    +
    DatatypeSelector - Class in io.github.cvc5
    +
    +
    A cvc5 datatype selector.
    +
    +
    declareDatatype(String, DatatypeConstructorDecl[]) - Method in class io.github.cvc5.Solver
    +
    +
    Create datatype sort.
    +
    +
    declareFun(String, Sort[], Sort) - Method in class io.github.cvc5.Solver
    +
    +
    Declare n-ary function symbol.
    +
    +
    declareFun(String, Sort[], Sort, boolean) - Method in class io.github.cvc5.Solver
    +
    +
    Declare n-ary function symbol.
    +
    +
    declareOracleFun(String, Sort[], Sort, IOracle) - Method in class io.github.cvc5.Solver
    +
    +
    Declare an oracle function with reference to an implementation.
    +
    +
    declarePool(String, Sort, Term[]) - Method in class io.github.cvc5.Solver
    +
    +
    Declare a symbolic pool of terms with the given initial value.
    +
    +
    declareSepHeap(Sort, Sort) - Method in class io.github.cvc5.Solver
    +
    +
    When using separation logic, this sets the location sort and the + datatype sort to the given ones.
    +
    +
    declareSort(String, int) - Method in class io.github.cvc5.Solver
    +
    +
    Declare uninterpreted sort.
    +
    +
    declareSort(String, int, boolean) - Method in class io.github.cvc5.Solver
    +
    +
    Declare uninterpreted sort.
    +
    +
    declareSygusVar(String, Sort) - Method in class io.github.cvc5.Solver
    +
    +
    Append symbol to the current list of universal variables.
    +
    +
    DEFAULT - io.github.cvc5.modes.ProofFormat
    +
    +
    Use the proof format mode set in the solver options.
    +
    +
    defineFun(String, Term[], Sort, Term) - Method in class io.github.cvc5.Solver
    +
    +
    Define n-ary function in the current context.
    +
    +
    defineFun(String, Term[], Sort, Term, boolean) - Method in class io.github.cvc5.Solver
    +
    +
    Define n-ary function.
    +
    +
    defineFunRec(Term, Term[], Term) - Method in class io.github.cvc5.Solver
    +
    +
    Define recursive function in the current context.
    +
    +
    defineFunRec(Term, Term[], Term, boolean) - Method in class io.github.cvc5.Solver
    +
    +
    Define recursive function.
    +
    +
    defineFunRec(String, Term[], Sort, Term) - Method in class io.github.cvc5.Solver
    +
    +
    Define recursive function in the current context.
    +
    +
    defineFunRec(String, Term[], Sort, Term, boolean) - Method in class io.github.cvc5.Solver
    +
    +
    Define recursive function.
    +
    +
    defineFunsRec(Term[], Term[][], Term[]) - Method in class io.github.cvc5.Solver
    +
    +
    Define recursive functions in the current context.
    +
    +
    defineFunsRec(Term[], Term[][], Term[], boolean) - Method in class io.github.cvc5.Solver
    +
    +
    Define recursive functions.
    +
    +
    deletePointer() - Method in class io.github.cvc5.Proof
    +
     
    +
    deletePointer(long) - Method in class io.github.cvc5.Command
    +
     
    +
    deletePointer(long) - Method in class io.github.cvc5.Datatype
    +
     
    +
    deletePointer(long) - Method in class io.github.cvc5.DatatypeConstructor
    +
     
    +
    deletePointer(long) - Method in class io.github.cvc5.DatatypeConstructorDecl
    +
     
    +
    deletePointer(long) - Method in class io.github.cvc5.DatatypeDecl
    +
     
    +
    deletePointer(long) - Method in class io.github.cvc5.DatatypeSelector
    +
     
    +
    deletePointer(long) - Method in class io.github.cvc5.Grammar
    +
     
    +
    deletePointer(long) - Method in class io.github.cvc5.InputParser
    +
     
    +
    deletePointer(long) - Method in class io.github.cvc5.Op
    +
     
    +
    deletePointer(long) - Method in class io.github.cvc5.OptionInfo
    +
     
    +
    deletePointer(long) - Method in class io.github.cvc5.Proof
    +
     
    +
    deletePointer(long) - Method in class io.github.cvc5.Result
    +
     
    +
    deletePointer(long) - Method in class io.github.cvc5.Solver
    +
     
    +
    deletePointer(long) - Method in class io.github.cvc5.Sort
    +
     
    +
    deletePointer(long) - Method in class io.github.cvc5.Stat
    +
     
    +
    deletePointer(long) - Method in class io.github.cvc5.Statistics
    +
     
    +
    deletePointer(long) - Method in class io.github.cvc5.SymbolManager
    +
     
    +
    deletePointer(long) - Method in class io.github.cvc5.SynthResult
    +
     
    +
    deletePointer(long) - Method in class io.github.cvc5.Term
    +
     
    +
    deletePointer(long) - Method in class io.github.cvc5.TermManager
    +
     
    +
    deletePointers() - Static method in class io.github.cvc5.Context
    +
    +
    Delete all cpp pointers for terms, sorts, etc
    +
    +
    DISTINCT - io.github.cvc5.Kind
    +
    +
    Disequality.
    +
    +
    DISTINCT_BINARY_ELIM - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule distinct-binary-elim
    +
    +
    DISTINCT_CARD_CONFLICT - io.github.cvc5.ProofRewriteRule
    +
    +
    Builtin – Distinct cardinality conflict + + \[ + \texttt{distinct}(t_1, \ldots, tn) = \bot + \] + where \(n\) is greater than the cardinality of the type of + \(t_1, \ldots, t_n\).
    +
    +
    DISTINCT_ELIM - io.github.cvc5.ProofRewriteRule
    +
    +
    Builtin – Distinct elimination + + \[ + \texttt{distinct}(t_1, t_2) = \neg (t_1 = t2) + \] + if \(n = 2\), or + + \[ + \texttt{distinct}(t_1, \ldots, tn) = \bigwedge_{i=1}^n \bigwedge_{j=i+1}^n t_i \neq t_j + \] + if \(n > 2\)
    +
    +
    DIV_BY_ZERO - io.github.cvc5.SkolemId
    +
    +
    The function for division by zero.
    +
    +
    DIVISIBLE - io.github.cvc5.Kind
    +
    +
    Operator for the divisibility-by-\(k\) predicate.
    +
    +
    DIVISION - io.github.cvc5.Kind
    +
    +
    Real division, division by 0 undefined, left associative.
    +
    +
    DIVISION_TOTAL - io.github.cvc5.Kind
    +
    +
    Real division, division by 0 defined to be 0, left associative.
    +
    +
    done() - Method in class io.github.cvc5.InputParser
    +
     
    +
    DOT - io.github.cvc5.modes.ProofFormat
    +
    +
    Output DOT proof.
    +
    +
    doubleValue() - Method in class io.github.cvc5.OptionInfo
    +
    +
    Obtain the current value as a double.
    +
    +
    DRAT_REFUTATION - io.github.cvc5.ProofRule
    +
    +
    DRAT Refutation + + \[ + \inferrule{F_1 \dots F_n \mid D, P}{\bot} + \] + where \(F_1 \dots F_n\) correspond to the clauses in the + DIMACS file given by filename `D` and `P` is a filename of a file storing + a DRAT proof.
    +
    +
    DSL_REWRITE - io.github.cvc5.ProofRule
    +
    +
    Builtin theory – DSL rewrite + + \[ + \inferrule{F_1 \dots F_n \mid id t_1 \dots t_n}{F} + \] + where `id` is a ProofRewriteRule whose definition in the + RARE DSL is \(\forall x_1 \dots x_n.
    +
    +
    DT_CLASH - io.github.cvc5.ProofRule
    +
    +
    Datatypes – Clash + + \[ + + \inferruleSC{\mathit{is}_{C_i}(t), \mathit{is}_{C_j}(t)\mid -}{\bot} + {if $i\neq j$} + \]
    +
    +
    DT_COLLAPSE_SELECTOR - io.github.cvc5.ProofRewriteRule
    +
    +
    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_TESTER - io.github.cvc5.ProofRewriteRule
    +
    +
    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_SINGLETON - io.github.cvc5.ProofRewriteRule
    +
    +
    Datatypes – collapse tester + + \[ + \mathit{is}_c(t) = true + \] + where \(c\) is the only constructor of its associated datatype.
    +
    +
    DT_COLLAPSE_UPDATER - io.github.cvc5.ProofRewriteRule
    +
    +
    Datatypes – collapse tester + + \[ + u_{c,i}(c(t_1, \ldots, t_i, \ldots, t_n), s) = c(t_1, \ldots, s, \ldots, t_n) + \] + or alternatively + + \[ + u_{c,i}(d(t_1, \ldots, t_n), s) = d(t_1, \ldots, t_n) + \] + where \(c\) and \(d\) are distinct constructors.
    +
    +
    DT_CONS_EQ - io.github.cvc5.ProofRewriteRule
    +
    +
    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_CYCLE - io.github.cvc5.ProofRewriteRule
    +
    +
    Datatypes – cycle + + \[ + (x = t[x]) = \bot + \] + where all terms on the path to \(x\) in \(t[x]\) are applications + of constructors, and this path is non-empty.
    +
    +
    DT_INST - io.github.cvc5.ProofRewriteRule
    +
    +
    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_MATCH_ELIM - io.github.cvc5.ProofRewriteRule
    +
    +
    Datatypes – match elimination + + \[ + \texttt{match}(t ((p_1 c_1) \ldots (p_n c_n))) = \texttt{ite}(F_1, r_1, \texttt{ite}( \ldots, r_n)) + \] + where for \(i=1, \ldots, n\), \(F_1\) is a formula that holds iff + \(t\) matches \(p_i\) and \(r_i\) is the result of a + substitution on \(c_i\) based on this match.
    +
    +
    DT_SPLIT - io.github.cvc5.ProofRule
    +
    +
    Datatypes – Split + + \[ + + \inferrule{-\mid t}{\mathit{is}_{C_1}(t)\vee\cdots\vee\mathit{is}_{C_n}(t)} + \] + where \(C_1,\dots,C_n\) are all the constructors of the type of \(t\).
    +
    +
    DT_UPDATER_ELIM - io.github.cvc5.ProofRewriteRule
    +
    +
    Datatypes - updater elimination + + \[ + u_{c,i}(t, s) = ite(\mathit{is}_c(t), c(s_0(t), \ldots, s, \ldots s_n(t)), t) + \] + where \(s_i\) is the \(i^{th}\) selector for constructor \(c\).
    +
    +
    + + + +

    E

    +
    +
    ENCODE_EQ_INTRO - io.github.cvc5.ProofRule
    +
    +
    Builtin theory – Encode equality introduction + + \[ + \inferrule{- \mid t}{t=t'} + \] + where \(t\) and \(t'\) are equivalent up to their encoding in an + external proof format.
    +
    +
    ENUM - io.github.cvc5.modes.FindSynthTarget
    +
    +
    Find the next term in the enumeration of the target grammar.
    +
    +
    EQ_COND_DEQ - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule eq-cond-deq
    +
    +
    EQ_ITE_LIFT - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule eq-ite-lift
    +
    +
    EQ_RANGE - io.github.cvc5.Kind
    +
    +
    Equality over arrays \(a\) and \(b\) over a given range + \([i,j]\), i.e., + + \[ + + \forall k .
    +
    +
    EQ_REFL - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule eq-refl
    +
    +
    EQ_RESOLVE - io.github.cvc5.ProofRule
    +
    +
    Boolean – Equality resolution + + \[ + \inferrule{F_1, (F_1 = F_2) \mid -}{F_2} + \] + Note this can optionally be seen as a macro for + EQUIV_ELIM1 <cvc5.ProofRule.EQUIV_ELIM1> + + RESOLUTION <cvc5.ProofRule.RESOLUTION>.
    +
    +
    EQ_SYMM - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule eq-symm
    +
    +
    eqTerm(Term) - Method in class io.github.cvc5.Term
    +
    +
    Equality.
    +
    +
    EQUAL - io.github.cvc5.Kind
    +
    +
    Equality, chainable.
    +
    +
    equals(Object) - Method in class io.github.cvc5.Datatype
    +
    +
    Syntactic equality operator.
    +
    +
    equals(Object) - Method in class io.github.cvc5.DatatypeConstructor
    +
    +
    Syntactic equality operator.
    +
    +
    equals(Object) - Method in class io.github.cvc5.DatatypeConstructorDecl
    +
    +
    Syntactic equality operator.
    +
    +
    equals(Object) - Method in class io.github.cvc5.DatatypeDecl
    +
    +
    Syntactic equality operator.
    +
    +
    equals(Object) - Method in class io.github.cvc5.DatatypeSelector
    +
    +
    Syntactic equality operator.
    +
    +
    equals(Object) - Method in class io.github.cvc5.Grammar
    +
    +
    Referential equality operator.
    +
    +
    equals(Object) - Method in class io.github.cvc5.Op
    +
    +
    Syntactic equality operator.
    +
    +
    equals(Object) - Method in class io.github.cvc5.Pair
    +
     
    +
    equals(Object) - Method in class io.github.cvc5.Proof
    +
    +
    Referential equality operator.
    +
    +
    equals(Object) - Method in class io.github.cvc5.Result
    +
    +
    Operator overloading for equality of two results.
    +
    +
    equals(Object) - Method in class io.github.cvc5.Solver
    +
     
    +
    equals(Object) - Method in class io.github.cvc5.Sort
    +
    +
    Comparison for structural equality.
    +
    +
    equals(Object) - Method in class io.github.cvc5.SymbolManager
    +
     
    +
    equals(Object) - Method in class io.github.cvc5.SynthResult
    +
    +
    Operator overloading for equality of two synthesis results.
    +
    +
    equals(Object) - Method in class io.github.cvc5.Term
    +
    +
    Syntactic equality operator.
    +
    +
    equals(Object) - Method in class io.github.cvc5.TermManager
    +
     
    +
    equals(Object) - Method in class io.github.cvc5.Triplet
    +
     
    +
    EQUIV_ELIM1 - io.github.cvc5.ProofRule
    +
    +
    Boolean – Equivalence elimination version 1 + + \[ + \inferrule{F_1 = F_2 \mid -}{\neg F_1 \lor F_2} + \]
    +
    +
    EQUIV_ELIM2 - io.github.cvc5.ProofRule
    +
    +
    Boolean – Equivalence elimination version 2 + + \[ + \inferrule{F_1 = F_2 \mid -}{F_1 \lor \neg F_2} + \]
    +
    +
    EVALUATE - io.github.cvc5.ProofRule
    +
    +
    Builtin theory – Evaluate + + \[ + \inferrule{- \mid t}{t = \texttt{evaluate}(t)} + \] + where \(\texttt{evaluate}\) is implemented by calling the method + \(\texttt{Evalutor::evaluate}\) in :cvc5src:`theory/evaluator.h` with an + empty substitution.
    +
    +
    EXISTS - io.github.cvc5.Kind
    +
    +
    Existentially quantified formula.
    +
    +
    EXISTS_ELIM - io.github.cvc5.ProofRewriteRule
    +
    +
    Quantifiers – Exists elimination + + \[ + \exists x_1\dots x_n.\> F = \neg \forall x_1\dots x_n.\> \neg F + \]
    +
    +
    EXPONENTIAL - io.github.cvc5.Kind
    +
    +
    Exponential function.
    +
    +
    + + + +

    F

    +
    +
    FACTORING - io.github.cvc5.ProofRule
    +
    +
    Boolean – Factoring + + \[ + \inferrule{C_1 \mid -}{C_2} + \] + where \(C_2\) is the clause \(C_1\), but every occurrence of a literal + after its first occurrence is omitted.
    +
    +
    FALSE_ELIM - io.github.cvc5.ProofRule
    +
    +
    Equality – False elim + + \[ + + \inferrule{F=\bot\mid -}{\neg F} + \]
    +
    +
    FALSE_INTRO - io.github.cvc5.ProofRule
    +
    +
    Equality – False intro + + \[ + + \inferrule{\neg F\mid -}{F = \bot} + \]
    +
    +
    findSynth(FindSynthTarget) - Method in class io.github.cvc5.Solver
    +
    +
    Find a target term of interest using sygus enumeration, with no provided + grammar.
    +
    +
    findSynth(FindSynthTarget, Grammar) - Method in class io.github.cvc5.Solver
    +
    +
    Find a target term of interest using sygus enumeration with a provided + grammar.
    +
    +
    findSynthNext() - Method in class io.github.cvc5.Solver
    +
    +
    Try to find a next target term of interest using sygus enumeration.
    +
    +
    FindSynthTarget - Enum in io.github.cvc5.modes
    +
     
    +
    FINITE_FIELD_ADD - io.github.cvc5.Kind
    +
    +
    Addition of two or more finite field elements.
    +
    +
    FINITE_FIELD_BITSUM - io.github.cvc5.Kind
    +
    +
    Bitsum of two or more finite field elements: x + 2y + 4z + ...
    +
    +
    FINITE_FIELD_MULT - io.github.cvc5.Kind
    +
    +
    Multiplication of two or more finite field elements.
    +
    +
    FINITE_FIELD_NEG - io.github.cvc5.Kind
    +
    +
    Negation of a finite field element (additive inverse).
    +
    +
    FINITE_FIELD_SORT - io.github.cvc5.SortKind
    +
    +
    A finite field sort, parameterized by a size.
    +
    +
    first - Variable in class io.github.cvc5.Pair
    +
     
    +
    first - Variable in class io.github.cvc5.Triplet
    +
     
    +
    FLOATINGPOINT_ABS - io.github.cvc5.Kind
    +
    +
    Floating-point absolute value.
    +
    +
    FLOATINGPOINT_ADD - io.github.cvc5.Kind
    +
    +
    Floating-point addition.
    +
    +
    FLOATINGPOINT_DIV - io.github.cvc5.Kind
    +
    +
    Floating-point division.
    +
    +
    FLOATINGPOINT_EQ - io.github.cvc5.Kind
    +
    +
    Floating-point equality.
    +
    +
    FLOATINGPOINT_FMA - io.github.cvc5.Kind
    +
    +
    Floating-point fused multiply and add.
    +
    +
    FLOATINGPOINT_FP - io.github.cvc5.Kind
    +
    +
    Create floating-point literal from bit-vector triple.
    +
    +
    FLOATINGPOINT_GEQ - io.github.cvc5.Kind
    +
    +
    Floating-point greater than or equal.
    +
    +
    FLOATINGPOINT_GT - io.github.cvc5.Kind
    +
    +
    Floating-point greater than.
    +
    +
    FLOATINGPOINT_IS_INF - io.github.cvc5.Kind
    +
    +
    Floating-point is infinite tester.
    +
    +
    FLOATINGPOINT_IS_NAN - io.github.cvc5.Kind
    +
    +
    Floating-point is NaN tester.
    +
    +
    FLOATINGPOINT_IS_NEG - io.github.cvc5.Kind
    +
    +
    Floating-point is negative tester.
    +
    +
    FLOATINGPOINT_IS_NORMAL - io.github.cvc5.Kind
    +
    +
    Floating-point is normal tester.
    +
    +
    FLOATINGPOINT_IS_POS - io.github.cvc5.Kind
    +
    +
    Floating-point is positive tester.
    +
    +
    FLOATINGPOINT_IS_SUBNORMAL - io.github.cvc5.Kind
    +
    +
    Floating-point is sub-normal tester.
    +
    +
    FLOATINGPOINT_IS_ZERO - io.github.cvc5.Kind
    +
    +
    Floating-point is zero tester.
    +
    +
    FLOATINGPOINT_LEQ - io.github.cvc5.Kind
    +
    +
    Floating-point less than or equal.
    +
    +
    FLOATINGPOINT_LT - io.github.cvc5.Kind
    +
    +
    Floating-point less than.
    +
    +
    FLOATINGPOINT_MAX - io.github.cvc5.Kind
    +
    +
    Floating-point maximum.
    +
    +
    FLOATINGPOINT_MIN - io.github.cvc5.Kind
    +
    +
    Floating-point minimum.
    +
    +
    FLOATINGPOINT_MULT - io.github.cvc5.Kind
    +
    +
    Floating-point multiply.
    +
    +
    FLOATINGPOINT_NEG - io.github.cvc5.Kind
    +
    +
    Floating-point negation.
    +
    +
    FLOATINGPOINT_REM - io.github.cvc5.Kind
    +
    +
    Floating-point remainder.
    +
    +
    FLOATINGPOINT_RTI - io.github.cvc5.Kind
    +
    +
    Floating-point round to integral.
    +
    +
    FLOATINGPOINT_SORT - io.github.cvc5.SortKind
    +
    +
    A floating-point sort, parameterized by two integers denoting its + exponent and significand bit-widths.
    +
    +
    FLOATINGPOINT_SQRT - io.github.cvc5.Kind
    +
    +
    Floating-point square root.
    +
    +
    FLOATINGPOINT_SUB - io.github.cvc5.Kind
    +
    +
    Floating-point sutraction.
    +
    +
    FLOATINGPOINT_TO_FP_FROM_FP - io.github.cvc5.Kind
    +
    +
    Conversion to floating-point from floating-point.
    +
    +
    FLOATINGPOINT_TO_FP_FROM_IEEE_BV - io.github.cvc5.Kind
    +
    +
    Conversion to floating-point from IEEE-754 bit-vector.
    +
    +
    FLOATINGPOINT_TO_FP_FROM_REAL - io.github.cvc5.Kind
    +
    +
    Conversion to floating-point from Real.
    +
    +
    FLOATINGPOINT_TO_FP_FROM_SBV - io.github.cvc5.Kind
    +
    +
    Conversion to floating-point from signed bit-vector.
    +
    +
    FLOATINGPOINT_TO_FP_FROM_UBV - io.github.cvc5.Kind
    +
    +
    Conversion to floating-point from unsigned bit-vector.
    +
    +
    FLOATINGPOINT_TO_REAL - io.github.cvc5.Kind
    +
    +
    Conversion to Real from floating-point.
    +
    +
    FLOATINGPOINT_TO_SBV - io.github.cvc5.Kind
    +
    +
    Conversion to signed bit-vector from floating-point.
    +
    +
    FLOATINGPOINT_TO_UBV - io.github.cvc5.Kind
    +
    +
    Conversion to unsigned bit-vector from floating-point.
    +
    +
    FORALL - io.github.cvc5.Kind
    +
    +
    Universally quantified formula.
    +
    +
    FP_MAX_ZERO - io.github.cvc5.SkolemId
    +
    +
    A skolem function that is unique per floating-point sort, introduced for + the undefined zero case of fp.max.
    +
    +
    FP_MIN_ZERO - io.github.cvc5.SkolemId
    +
    +
    A skolem function that is unique per floating-point sort, introduced for + the undefined zero case of fp.min.
    +
    +
    FP_TO_REAL - io.github.cvc5.SkolemId
    +
    +
    A skolem function introduced for the undefined of fp.to_real that is + unique per floating-point sort.
    +
    +
    FP_TO_SBV - io.github.cvc5.SkolemId
    +
    +
    A skolem function introduced for the undefined out-ouf-bounds case of + fp.to_sbv that is unique per floating-point sort and sort of the + arguments to the operator.
    +
    +
    FP_TO_UBV - io.github.cvc5.SkolemId
    +
    +
    A skolem function introduced for the undefined out-ouf-bounds case of + fp.to_ubv that is unique per floating-point sort and sort of the + arguments to the operator.
    +
    +
    fromInt(int) - Static method in enum io.github.cvc5.Kind
    +
     
    +
    fromInt(int) - Static method in enum io.github.cvc5.modes.BlockModelsMode
    +
     
    +
    fromInt(int) - Static method in enum io.github.cvc5.modes.FindSynthTarget
    +
     
    +
    fromInt(int) - Static method in enum io.github.cvc5.modes.InputLanguage
    +
     
    +
    fromInt(int) - Static method in enum io.github.cvc5.modes.LearnedLitType
    +
     
    +
    fromInt(int) - Static method in enum io.github.cvc5.modes.ProofComponent
    +
     
    +
    fromInt(int) - Static method in enum io.github.cvc5.modes.ProofFormat
    +
     
    +
    fromInt(int) - Static method in enum io.github.cvc5.ProofRewriteRule
    +
     
    +
    fromInt(int) - Static method in enum io.github.cvc5.ProofRule
    +
     
    +
    fromInt(int) - Static method in enum io.github.cvc5.RoundingMode
    +
     
    +
    fromInt(int) - Static method in enum io.github.cvc5.SkolemId
    +
     
    +
    fromInt(int) - Static method in enum io.github.cvc5.SortKind
    +
     
    +
    fromInt(int) - Static method in enum io.github.cvc5.UnknownExplanation
    +
     
    +
    FULL - io.github.cvc5.modes.ProofComponent
    +
    +
    A proof of false whose free assumptions are a subset of the input formulas + F1), ...
    +
    +
    FUNCTION_SORT - io.github.cvc5.SortKind
    +
    +
    A function sort with given domain sorts and codomain sort.
    +
    +
    + + + +

    G

    +
    +
    GEQ - io.github.cvc5.Kind
    +
    +
    Greater than or equal, chainable.
    +
    +
    get(int) - Method in class io.github.cvc5.Op
    +
    +
    Get the index at position i.
    +
    +
    get(String) - Method in class io.github.cvc5.Statistics
    +
    +
    Retrieve the statistic with the given name.
    +
    +
    getAbduct(Term) - Method in class io.github.cvc5.Solver
    +
    +
    Get an abduct.
    +
    +
    getAbduct(Term, Grammar) - Method in class io.github.cvc5.Solver
    +
    +
    Get an abduct.
    +
    +
    getAbductNext() - Method in class io.github.cvc5.Solver
    +
    +
    Get the next abduct.
    +
    +
    getAbstractedKind() - Method in class io.github.cvc5.Sort
    +
     
    +
    getAliases() - Method in class io.github.cvc5.OptionInfo
    +
     
    +
    getArguments() - Method in class io.github.cvc5.Proof
    +
     
    +
    getArrayElementSort() - Method in class io.github.cvc5.Sort
    +
     
    +
    getArrayIndexSort() - Method in class io.github.cvc5.Sort
    +
     
    +
    getAssertions() - Method in class io.github.cvc5.Solver
    +
    +
    Get the list of asserted formulas.
    +
    +
    getBagElementSort() - Method in class io.github.cvc5.Sort
    +
     
    +
    getBaseInfo() - Method in class io.github.cvc5.OptionInfo
    +
     
    +
    getBitVectorSize() - Method in class io.github.cvc5.Sort
    +
     
    +
    getBitVectorValue() - Method in class io.github.cvc5.Term
    +
    +
    Asserts isBitVectorValue().
    +
    +
    getBitVectorValue(int) - Method in class io.github.cvc5.Term
    +
    +
    Get the string representation of a bit-vector value.
    +
    +
    getBooleanSort() - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.getBooleanSort(). + It will be removed in a future release.
    +
    +
    +
    getBooleanSort() - Method in class io.github.cvc5.TermManager
    +
    +
    Get the Boolean sort.
    +
    +
    getBooleanValue() - Method in class io.github.cvc5.Term
    +
    +
    Asserts isBooleanValue().
    +
    +
    getCardinalityConstraint() - Method in class io.github.cvc5.Term
    +
    +
    Asserts isCardinalityConstraint().
    +
    +
    getChild(int) - Method in class io.github.cvc5.Term
    +
    +
    Get the child term at a given index.
    +
    +
    getChildren() - Method in class io.github.cvc5.Proof
    +
     
    +
    getCodomainSort() - Method in class io.github.cvc5.DatatypeSelector
    +
     
    +
    getCommandName() - Method in class io.github.cvc5.Command
    +
    +
    Get the name for this command, e.g.
    +
    +
    getConstArrayBase() - Method in class io.github.cvc5.Term
    +
    +
    Asserts isConstArray().
    +
    +
    getConstructor(int) - Method in class io.github.cvc5.Datatype
    +
    +
    Get the datatype constructor at a given index.
    +
    +
    getConstructor(String) - Method in class io.github.cvc5.Datatype
    +
    +
    Get the datatype constructor with the given name.
    +
    +
    getCurrentValue() - Method in class io.github.cvc5.OptionInfo.ValueInfo
    +
     
    +
    getDatatype() - Method in class io.github.cvc5.Sort
    +
     
    +
    getDatatypeArity() - Method in class io.github.cvc5.Sort
    +
     
    +
    getDatatypeConstructorArity() - Method in class io.github.cvc5.Sort
    +
     
    +
    getDatatypeConstructorCodomainSort() - Method in class io.github.cvc5.Sort
    +
     
    +
    getDatatypeConstructorDomainSorts() - Method in class io.github.cvc5.Sort
    +
     
    +
    getDatatypeSelectorCodomainSort() - Method in class io.github.cvc5.Sort
    +
     
    +
    getDatatypeSelectorDomainSort() - Method in class io.github.cvc5.Sort
    +
     
    +
    getDatatypeTesterCodomainSort() - Method in class io.github.cvc5.Sort
    +
     
    +
    getDatatypeTesterDomainSort() - Method in class io.github.cvc5.Sort
    +
     
    +
    getDeclaredSorts() - Method in class io.github.cvc5.SymbolManager
    +
    +
    Get the list of sorts that have been declared via `declare-sort` commands.
    +
    +
    getDeclaredTerms() - Method in class io.github.cvc5.SymbolManager
    +
    +
    Get the list of terms that have been declared via `declare-fun` and + `declare-const`.
    +
    +
    getDefaultValue() - Method in class io.github.cvc5.OptionInfo.ValueInfo
    +
     
    +
    getDifficulty() - Method in class io.github.cvc5.Solver
    +
    +
    Get a difficulty estimate for an asserted formula.
    +
    +
    getDouble() - Method in class io.github.cvc5.Stat
    +
    +
    Return the double value.
    +
    +
    getFiniteFieldSize() - Method in class io.github.cvc5.Sort
    +
     
    +
    getFiniteFieldValue() - Method in class io.github.cvc5.Term
    +
    +
    Get the string representation of a finite field value.
    +
    +
    getFloatingPointExponentSize() - Method in class io.github.cvc5.Sort
    +
     
    +
    getFloatingPointSignificandSize() - Method in class io.github.cvc5.Sort
    +
     
    +
    getFloatingPointValue() - Method in class io.github.cvc5.Term
    +
    +
    Asserts isFloatingPointValue().
    +
    +
    getFunctionArity() - Method in class io.github.cvc5.Sort
    +
     
    +
    getFunctionCodomainSort() - Method in class io.github.cvc5.Sort
    +
     
    +
    getFunctionDomainSorts() - Method in class io.github.cvc5.Sort
    +
     
    +
    getHistogram() - Method in class io.github.cvc5.Stat
    +
    +
    Return the histogram value.
    +
    +
    getId() - Method in class io.github.cvc5.Term
    +
     
    +
    getInfo(String) - Method in class io.github.cvc5.Solver
    +
    +
    Get info from the solver.
    +
    +
    getInstantiatedParameters() - Method in class io.github.cvc5.Sort
    +
    +
    Get the sorts used to instantiate the sort parameters of a parametric + sort (parametric datatype or uninterpreted sort constructor sort, + see Sort.instantiate(Sort[])).
    +
    +
    getInstantiatedTerm(Sort) - Method in class io.github.cvc5.DatatypeConstructor
    +
    +
    Get the constructor term of this datatype constructor whose return + type is retSort.
    +
    +
    getInstantiations() - Method in class io.github.cvc5.Solver
    +
    +
    Get a string that contains information about all instantiations made by + the quantifiers module.
    +
    +
    getInt() - Method in class io.github.cvc5.Stat
    +
    +
    Return the integer value.
    +
    +
    getIntegerSort() - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.getIntegerSort(). + It will be removed in a future release.
    +
    +
    +
    getIntegerSort() - Method in class io.github.cvc5.TermManager
    +
    +
    Get the integer sort.
    +
    +
    getIntegerSort(long) - Method in class io.github.cvc5.TermManager
    +
     
    +
    getIntegerValue() - Method in class io.github.cvc5.Term
    +
    +
    Asserts isIntegerValue().
    +
    +
    getInterpolant(Term) - Method in class io.github.cvc5.Solver
    +
    +
    Get an interpolant.
    +
    +
    getInterpolant(Term, Grammar) - Method in class io.github.cvc5.Solver
    +
    +
    Get an interpolant.
    +
    +
    getInterpolantNext() - Method in class io.github.cvc5.Solver
    +
    +
    Get the next interpolant.
    +
    +
    getKind() - Method in class io.github.cvc5.Op
    +
     
    +
    getKind() - Method in class io.github.cvc5.Sort
    +
     
    +
    getKind() - Method in class io.github.cvc5.Term
    +
     
    +
    getLearnedLiterals() - Method in class io.github.cvc5.Solver
    +
    +
    Get a list of input literals that are entailed by the current set of + assertions.
    +
    +
    getLearnedLiterals(LearnedLitType) - Method in class io.github.cvc5.Solver
    +
    +
    Get a list of literals that are entailed by the current set of assertions.
    +
    +
    getLogic() - Method in class io.github.cvc5.Solver
    +
    +
    Get the logic set the solver.
    +
    +
    getLogic() - Method in class io.github.cvc5.SymbolManager
    +
     
    +
    getMaximum() - Method in class io.github.cvc5.OptionInfo.NumberInfo
    +
     
    +
    getMinimum() - Method in class io.github.cvc5.OptionInfo.NumberInfo
    +
     
    +
    getModel(Sort[], Term[]) - Method in class io.github.cvc5.Solver
    +
    +
    Get the model + + SMT-LIB: + + ( get-model ) + + + Requires to enable option produce-models.
    +
    +
    getModelDomainElements(Sort) - Method in class io.github.cvc5.Solver
    +
    +
    Get the domain elements of uninterpreted sort s in the current model.
    +
    +
    getModes() - Method in class io.github.cvc5.OptionInfo.ModeInfo
    +
     
    +
    getName() - Method in class io.github.cvc5.AbstractPlugin
    +
    +
    Get the name of the plugin (for debugging).
    +
    +
    getName() - Method in class io.github.cvc5.Datatype
    +
     
    +
    getName() - Method in class io.github.cvc5.DatatypeConstructor
    +
     
    +
    getName() - Method in class io.github.cvc5.DatatypeDecl
    +
     
    +
    getName() - Method in class io.github.cvc5.DatatypeSelector
    +
     
    +
    getName() - Method in class io.github.cvc5.OptionInfo
    +
     
    +
    getNamedTerms() - Method in class io.github.cvc5.SymbolManager
    +
    +
    Get a mapping from terms to names that have been given to them via the + :named attribute.
    +
    +
    getNullableElementSort() - Method in class io.github.cvc5.Sort
    +
     
    +
    getNumChildren() - Method in class io.github.cvc5.Term
    +
     
    +
    getNumConstructors() - Method in class io.github.cvc5.Datatype
    +
     
    +
    getNumConstructors() - Method in class io.github.cvc5.DatatypeDecl
    +
    +
    Get the number of constructors (so far) for this Datatype declaration.
    +
    +
    getNumIndices() - Method in class io.github.cvc5.Op
    +
     
    +
    getNumIndicesForSkolemId(SkolemId) - Method in class io.github.cvc5.TermManager
    +
    +
    Get the number of indices for a given skolem id.
    +
    +
    getNumSelectors() - Method in class io.github.cvc5.DatatypeConstructor
    +
     
    +
    getOp() - Method in class io.github.cvc5.Term
    +
     
    +
    getOption(String) - Method in class io.github.cvc5.Solver
    +
    +
    Get the value of a given option.
    +
    +
    getOptionInfo(String) - Method in class io.github.cvc5.Solver
    +
    +
    Get some information about the given option.
    +
    +
    getOptionNames() - Method in class io.github.cvc5.Solver
    +
    +
    Get all option names that can be used with + Solver.setOption(String, String), + Solver.getOption(String) and + Solver.getOptionInfo(String).
    +
    +
    getPairs(Pair<K, ? extends AbstractPointer>[]) - Static method in class io.github.cvc5.Utils
    +
     
    +
    getParameters() - Method in class io.github.cvc5.Datatype
    +
     
    +
    getPointer() - Method in class io.github.cvc5.Proof
    +
     
    +
    getPointers(IPointer[]) - Static method in class io.github.cvc5.Utils
    +
     
    +
    getPointers(IPointer[][]) - Static method in class io.github.cvc5.Utils
    +
     
    +
    getProof() - Method in class io.github.cvc5.Solver
    +
    +
    Get refutation proof for the most recent call to checkSat.
    +
    +
    getProof(ProofComponent) - Method in class io.github.cvc5.Solver
    +
    +
    Get a proof associated with the most recent call to checkSat.
    +
    +
    getProofs(long[]) - Static method in class io.github.cvc5.Utils
    +
     
    +
    getQuantifierElimination(Term) - Method in class io.github.cvc5.Solver
    +
    +
    Do quantifier elimination.
    +
    +
    getQuantifierEliminationDisjunct(Term) - Method in class io.github.cvc5.Solver
    +
    +
    Do partial quantifier elimination, which can be used for incrementally + computing the result of a quantifier elimination.
    +
    +
    getRational(Pair<BigInteger, BigInteger>) - Static method in class io.github.cvc5.Utils
    +
    +
    Convert a pair of BigIntegers to a rational string a/b
    +
    +
    getRational(String) - Static method in class io.github.cvc5.Utils
    +
    +
    Convert a rational string a/b to a pair of BigIntegers
    +
    +
    getRealAlgebraicNumberDefiningPolynomial(Term) - Method in class io.github.cvc5.Term
    +
    +
    Asserts isRealAlgebraicNumber().
    +
    +
    getRealAlgebraicNumberLowerBound() - Method in class io.github.cvc5.Term
    +
    +
    Asserts isRealAlgebraicNumber().
    +
    +
    getRealAlgebraicNumberUpperBound() - Method in class io.github.cvc5.Term
    +
    +
    Asserts isRealAlgebraicNumber().
    +
    +
    getRealOrIntegerValueSign() - Method in class io.github.cvc5.Term
    +
    +
    Get integer or real value sign.
    +
    +
    getRealSort() - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.getRealSort(). + It will be removed in a future release.
    +
    +
    +
    getRealSort() - Method in class io.github.cvc5.TermManager
    +
    +
    Get the real sort.
    +
    +
    getRealValue() - Method in class io.github.cvc5.Term
    +
    +
    Asserts isRealValue().
    +
    +
    getRegExpSort() - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.getRegExpSort(). + It will be removed in a future release.
    +
    +
    +
    getRegExpSort() - Method in class io.github.cvc5.TermManager
    +
    +
    Get the regular expression sort.
    +
    +
    getResult() - Method in class io.github.cvc5.Proof
    +
     
    +
    getRewriteRule() - Method in class io.github.cvc5.Proof
    +
     
    +
    getRoundingModeSort() - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.getRoundingModeSort(). + It will be removed in a future release.
    +
    +
    +
    getRoundingModeSort() - Method in class io.github.cvc5.TermManager
    +
    +
    Get the floating-point rounding mode sort.
    +
    +
    getRoundingModeValue() - Method in class io.github.cvc5.Term
    +
    +
    Asserts isRoundingModeValue().
    +
    +
    getRule() - Method in class io.github.cvc5.Proof
    +
     
    +
    getSelector(int) - Method in class io.github.cvc5.DatatypeConstructor
    +
    +
    Get the DatatypeSelector at the given index
    +
    +
    getSelector(String) - Method in class io.github.cvc5.Datatype
    +
    +
    Get the datatype constructor with the given name.
    +
    +
    getSelector(String) - Method in class io.github.cvc5.DatatypeConstructor
    +
    +
    Get the datatype selector with the given name.
    +
    +
    getSequenceElementSort() - Method in class io.github.cvc5.Sort
    +
     
    +
    getSequenceValue() - Method in class io.github.cvc5.Term
    +
    +
    Asserts isSequenceValue().
    +
    +
    getSetByUser() - Method in class io.github.cvc5.OptionInfo
    +
     
    +
    getSetElementSort() - Method in class io.github.cvc5.Sort
    +
     
    +
    getSetValue() - Method in class io.github.cvc5.Term
    +
    +
    Asserts isSetValue().
    +
    +
    getSkolemId() - Method in class io.github.cvc5.Term
    +
    +
    Get skolem identifier of this term.
    +
    +
    getSkolemIndices() - Method in class io.github.cvc5.Term
    +
    +
    Get the skolem indices of this term.
    +
    +
    getSolver() - Method in class io.github.cvc5.InputParser
    +
     
    +
    getSort() - Method in class io.github.cvc5.Term
    +
     
    +
    getSorts(long[]) - Static method in class io.github.cvc5.Utils
    +
     
    +
    getStatistics() - Method in class io.github.cvc5.Solver
    +
    +
    Get a snapshot of the current state of the statistic values of this + solver.
    +
    +
    getStatistics() - Method in class io.github.cvc5.TermManager
    +
    +
    Get a snapshot of the current state of the statistic values of this + term manager.
    +
    +
    getString() - Method in class io.github.cvc5.Stat
    +
    +
    Return the string value.
    +
    +
    getStringSort() - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.getStringSort(). + It will be removed in a future release.
    +
    +
    +
    getStringSort() - Method in class io.github.cvc5.TermManager
    +
    +
    Get the string sort.
    +
    +
    getStringValue() - Method in class io.github.cvc5.Term
    +
     
    +
    getSygusAssumptions() - Method in class io.github.cvc5.Solver
    +
    +
    Get the list of sygus assumptions.
    +
    +
    getSygusConstraints() - Method in class io.github.cvc5.Solver
    +
    +
    Get the list of sygus constraints.
    +
    +
    getSymbol() - Method in class io.github.cvc5.Sort
    +
     
    +
    getSymbol() - Method in class io.github.cvc5.Term
    +
    +
    Asserts hasSymbol().
    +
    +
    getSymbolManager() - Method in class io.github.cvc5.InputParser
    +
     
    +
    getSynthSolution(Term) - Method in class io.github.cvc5.Solver
    +
    +
    Get the synthesis solution of the given term.
    +
    +
    getSynthSolutions(Term[]) - Method in class io.github.cvc5.Solver
    +
    +
    Get the synthesis solutions of the given terms.
    +
    +
    getTerm() - Method in class io.github.cvc5.DatatypeConstructor
    +
    +
    Get the constructor term of this datatype constructor.
    +
    +
    getTerm() - Method in class io.github.cvc5.DatatypeSelector
    +
    +
    Get the selector term of this datatype selector.
    +
    +
    getTermManager() - Method in class io.github.cvc5.AbstractPlugin
    +
    +
    Get the associated term manager instance
    +
    +
    getTermManager() - Method in class io.github.cvc5.Solver
    +
    +
    Get the associated term manager instance
    +
    +
    getTerms(long[]) - Static method in class io.github.cvc5.Utils
    +
     
    +
    getTesterTerm() - Method in class io.github.cvc5.DatatypeConstructor
    +
    +
    Get the tester term of this datatype constructor.
    +
    +
    getTimeoutCore() - Method in class io.github.cvc5.Solver
    +
    +
    Get a timeout core, which computes a subset of the current assertions that + cause a timeout.
    +
    +
    getTimeoutCoreAssuming(Term[]) - Method in class io.github.cvc5.Solver
    +
    +
    Get a timeout core, which computes a subset of the given assumptions that + cause a timeout when added to the current assertions.
    +
    +
    getTupleLength() - Method in class io.github.cvc5.Sort
    +
     
    +
    getTupleSorts() - Method in class io.github.cvc5.Sort
    +
     
    +
    getTupleValue() - Method in class io.github.cvc5.Term
    +
    +
    Asserts isTupleValue().
    +
    +
    getUninterpretedSortConstructor() - Method in class io.github.cvc5.Sort
    +
    +
    Get the associated uninterpreted sort constructor of an instantiated + uninterpreted sort.
    +
    +
    getUninterpretedSortConstructorArity() - Method in class io.github.cvc5.Sort
    +
     
    +
    getUninterpretedSortValue() - Method in class io.github.cvc5.Term
    +
    +
    Asserts isUninterpretedSortValue().
    +
    +
    getUnknownExplanation() - Method in class io.github.cvc5.Result
    +
    +
    Get an explanation for an unknown query result.
    +
    +
    getUnsatAssumptions() - Method in class io.github.cvc5.Solver
    +
    +
    Get the set of unsat ("failed") assumptions.
    +
    +
    getUnsatCore() - Method in class io.github.cvc5.Solver
    +
    +
    Get the unsatisfiable core.
    +
    +
    getUnsatCoreLemmas() - Method in class io.github.cvc5.Solver
    +
    +
    Get the lemmas used to derive unsatisfiability.
    +
    +
    getUpdaterTerm() - Method in class io.github.cvc5.DatatypeSelector
    +
    +
    Get the updater term of this datatype selector.
    +
    +
    getValue() - Method in enum io.github.cvc5.Kind
    +
     
    +
    getValue() - Method in enum io.github.cvc5.modes.BlockModelsMode
    +
     
    +
    getValue() - Method in enum io.github.cvc5.modes.FindSynthTarget
    +
     
    +
    getValue() - Method in enum io.github.cvc5.modes.InputLanguage
    +
     
    +
    getValue() - Method in enum io.github.cvc5.modes.LearnedLitType
    +
     
    +
    getValue() - Method in enum io.github.cvc5.modes.ProofComponent
    +
     
    +
    getValue() - Method in enum io.github.cvc5.modes.ProofFormat
    +
     
    +
    getValue() - Method in enum io.github.cvc5.ProofRewriteRule
    +
     
    +
    getValue() - Method in enum io.github.cvc5.ProofRule
    +
     
    +
    getValue() - Method in enum io.github.cvc5.RoundingMode
    +
     
    +
    getValue() - Method in enum io.github.cvc5.SkolemId
    +
     
    +
    getValue() - Method in enum io.github.cvc5.SortKind
    +
     
    +
    getValue() - Method in enum io.github.cvc5.UnknownExplanation
    +
     
    +
    getValue(Term) - Method in class io.github.cvc5.Solver
    +
    +
    Get the value of the given term in the current model.
    +
    +
    getValue(Term[]) - Method in class io.github.cvc5.Solver
    +
    +
    Get the values of the given terms in the current model.
    +
    +
    getValueSepHeap() - Method in class io.github.cvc5.Solver
    +
    +
    When using separation logic, obtain the term for the heap.
    +
    +
    getValueSepNil() - Method in class io.github.cvc5.Solver
    +
    +
    When using separation logic, obtain the term for nil.
    +
    +
    getVersion() - Method in class io.github.cvc5.Solver
    +
    +
    Get a string representation of the version of this solver.
    +
    +
    Grammar - Class in io.github.cvc5
    +
    +
    A Sygus Grammar.
    +
    +
    Grammar(Grammar) - Constructor for class io.github.cvc5.Grammar
    +
     
    +
    GROUND_TERM - io.github.cvc5.SkolemId
    +
    +
    An arbitrary ground term of a given sort.
    +
    +
    GT - io.github.cvc5.Kind
    +
    +
    Greater than, chainable.
    +
    +
    + + + +

    H

    +
    +
    hashCode() - Method in class io.github.cvc5.Datatype
    +
    +
    Get the hash value of a datatype.
    +
    +
    hashCode() - Method in class io.github.cvc5.DatatypeConstructor
    +
    +
    Get the hash value of a datatype constructor.
    +
    +
    hashCode() - Method in class io.github.cvc5.DatatypeConstructorDecl
    +
    +
    Get the hash value of a datatype constructor declaration.
    +
    +
    hashCode() - Method in class io.github.cvc5.DatatypeDecl
    +
    +
    Get the hash value of a datatype declaration.
    +
    +
    hashCode() - Method in class io.github.cvc5.DatatypeSelector
    +
    +
    Get the hash value of a datatype selector.
    +
    +
    hashCode() - Method in class io.github.cvc5.Grammar
    +
    +
    Get the hash value of a grammar.
    +
    +
    hashCode() - Method in class io.github.cvc5.Op
    +
    +
    Get the hash value of an operator.
    +
    +
    hashCode() - Method in class io.github.cvc5.Proof
    +
    +
    Get the hash value of a proof.
    +
    +
    hashCode() - Method in class io.github.cvc5.Result
    +
    +
    Get the hash value of a result.
    +
    +
    hashCode() - Method in class io.github.cvc5.Sort
    +
    +
    Get the hash value of a sort.
    +
    +
    hashCode() - Method in class io.github.cvc5.SynthResult
    +
    +
    Get the hash value of a synthesis result.
    +
    +
    hashCode() - Method in class io.github.cvc5.Term
    +
    +
    Get the hash value of a term.
    +
    +
    hasNext() - Method in class io.github.cvc5.Datatype.ConstIterator
    +
     
    +
    hasNext() - Method in class io.github.cvc5.DatatypeConstructor.ConstIterator
    +
     
    +
    hasNext() - Method in class io.github.cvc5.Statistics.ConstIterator
    +
     
    +
    hasNext() - Method in class io.github.cvc5.Term.ConstIterator
    +
     
    +
    hasNoSolution() - Method in class io.github.cvc5.SynthResult
    +
     
    +
    hasOp() - Method in class io.github.cvc5.Term
    +
     
    +
    hasSolution() - Method in class io.github.cvc5.SynthResult
    +
     
    +
    hasSymbol() - Method in class io.github.cvc5.Sort
    +
     
    +
    hasSymbol() - Method in class io.github.cvc5.Term
    +
     
    +
    HO_APP_ENCODE - io.github.cvc5.ProofRule
    +
    +
    Equality – Higher-order application encoding + + \[ + + \inferrule{-\mid t}{t=t'} + \] + where `t'` is the higher-order application that is equivalent to `t`, + as implemented by uf.TheoryUfRewriter.getHoApplyForApplyUf.
    +
    +
    HO_APPLY - io.github.cvc5.Kind
    +
    +
    Higher-order applicative encoding of function application, left + associative.
    +
    +
    HO_CONG - io.github.cvc5.ProofRule
    +
    +
    Equality – Higher-order congruence + + \[ + + \inferrule{f=g, t_1=s_1,\dots,t_n=s_n\mid k}{k(f, t_1,\dots, t_n) = + k(g, s_1,\dots, s_n)} + \] + Notice that this rule is only used when the application kind \(k\) is + either `cvc5.Kind.APPLY_UF` or `cvc5.Kind.HO_APPLY`.
    +
    +
    HO_DEQ_DIFF - io.github.cvc5.SkolemId
    +
    +
    The higher-roder diff skolem, which is the witness k for the inference + (=> (not (= A B)) (not (= (A k1 ... kn) (B k1 ... kn)))).
    +
    +
    + + + +

    I

    +
    +
    IAND - io.github.cvc5.Kind
    +
    +
    Integer and.
    +
    +
    IMPLIES - io.github.cvc5.Kind
    +
    +
    Logical implication.
    +
    +
    IMPLIES_ELIM - io.github.cvc5.ProofRule
    +
    +
    Boolean – Implication elimination + + \[ + \inferrule{F_1 \rightarrow F_2 \mid -}{\neg F_1 \lor F_2} + \]
    +
    +
    impTerm(Term) - Method in class io.github.cvc5.Term
    +
    +
    Boolean implication.
    +
    +
    INCOMPLETE - io.github.cvc5.UnknownExplanation
    +
    +
    Incomplete theory solver.
    +
    +
    INPUT - io.github.cvc5.modes.LearnedLitType
    +
    +
    A literal from the preprocessed set of input formulas that does not + occur at top-level after preprocessing.
    +
    +
    InputLanguage - Enum in io.github.cvc5.modes
    +
     
    +
    InputParser - Class in io.github.cvc5
    +
    +
    This class is the main interface for retrieving commands and expressions + from an input using a parser.
    +
    +
    InputParser(Solver) - Constructor for class io.github.cvc5.InputParser
    +
    +
    Construct an input parser with an initially empty symbol manager.
    +
    +
    InputParser(Solver, SymbolManager) - Constructor for class io.github.cvc5.InputParser
    +
    +
    Construct an input parser
    +
    +
    INST_ADD_TO_POOL - io.github.cvc5.Kind
    +
    +
    A instantantiation-add-to-pool annotation.
    +
    +
    INST_ATTRIBUTE - io.github.cvc5.Kind
    +
    +
    Instantiation attribute.
    +
    +
    INST_NO_PATTERN - io.github.cvc5.Kind
    +
    +
    Instantiation no-pattern.
    +
    +
    INST_PATTERN - io.github.cvc5.Kind
    +
    +
    Instantiation pattern.
    +
    +
    INST_PATTERN_LIST - io.github.cvc5.Kind
    +
    +
    A list of instantiation patterns, attributes or annotations.
    +
    +
    INST_POOL - io.github.cvc5.Kind
    +
    +
    Instantiation pool annotation.
    +
    +
    instantiate(Sort[]) - Method in class io.github.cvc5.Sort
    +
    +
    Instantiate a parameterized datatype sort or uninterpreted sort + constructor sort.
    +
    +
    INSTANTIATE - io.github.cvc5.ProofRule
    +
    +
    Quantifiers – Instantiation + + \[ + + \inferrule{\forall x_1\dots x_n.\> F\mid (t_1 \dots t_n), (id\, (t)?)?} + {F\{x_1\mapsto t_1,\dots,x_n\mapsto t_n\}} + \] + The list of terms to instantiate \((t_1 \dots t_n)\) is provided as + an s-expression as the first argument.
    +
    +
    INT_DIV_BY_ZERO - io.github.cvc5.SkolemId
    +
    +
    The function for integer division by zero.
    +
    +
    INT_TIGHT_LB - io.github.cvc5.ProofRule
    +
    +
    Arithmetic – Tighten strict integer lower bounds + + \[ + \inferrule{i > c \mid -}{i \geq \lceil c \rceil} + \] + where \(i\) has integer type.
    +
    +
    INT_TIGHT_UB - io.github.cvc5.ProofRule
    +
    +
    Arithmetic – Tighten strict integer upper bounds + + \[ + \inferrule{i < c \mid -}{i \leq \lfloor c \rfloor} + \] + where \(i\) has integer type.
    +
    +
    INT_TO_BITVECTOR - io.github.cvc5.Kind
    +
    +
    Conversion from Int to bit-vector.
    +
    +
    INT_TO_BV_ELIM - io.github.cvc5.ProofRewriteRule
    +
    +
    UF – Integer to bitvector elimination + + \[ + \texttt{int2bv}_n(t) = (bvconcat t_1 \ldots t_n) + \] + where for \(i=1, \ldots, n\), \(t_i\) is + \(\texttt{ite}(\texttt{mod}(t,2^n) \geq 2^{n-1}, 1, 0)\).
    +
    +
    INTEGER_SORT - io.github.cvc5.SortKind
    +
    +
    The integer sort.
    +
    +
    INTERNAL - io.github.cvc5.modes.LearnedLitType
    +
    +
    Any internal literal that does not fall into the above categories.
    +
    +
    INTERNAL - io.github.cvc5.SkolemId
    +
    +
    The identifier of the skolem is not exported.
    +
    +
    INTERNAL_KIND - io.github.cvc5.Kind
    +
    +
    Internal kind.
    +
    +
    INTERNAL_SORT_KIND - io.github.cvc5.SortKind
    +
    +
    Internal kind.
    +
    +
    INTERRUPTED - io.github.cvc5.UnknownExplanation
    +
    +
    Solver was interrupted.
    +
    +
    INTS_DIVISION - io.github.cvc5.Kind
    +
    +
    Integer division, division by 0 undefined, left associative.
    +
    +
    INTS_DIVISION_TOTAL - io.github.cvc5.Kind
    +
    +
    Integer division, division by 0 defined to be 0, left associative.
    +
    +
    INTS_MODULUS - io.github.cvc5.Kind
    +
    +
    Integer modulus, modulus by 0 undefined.
    +
    +
    INTS_MODULUS_TOTAL - io.github.cvc5.Kind
    +
    +
    Integer modulus, t modulus by 0 defined to be t.
    +
    +
    intValue() - Method in class io.github.cvc5.OptionInfo
    +
    +
    Obtain the current value as as int.
    +
    +
    invoke(Solver, SymbolManager) - Method in class io.github.cvc5.Command
    +
    +
    Invoke the command on the solver and symbol manager sm and return any + resulting output as a string.
    +
    +
    io.github.cvc5 - package io.github.cvc5
    +
     
    +
    io.github.cvc5.modes - package io.github.cvc5.modes
    +
     
    +
    IOracle - Interface in io.github.cvc5
    +
     
    +
    IS_INTEGER - io.github.cvc5.Kind
    +
    +
    Is-integer predicate.
    +
    +
    isAbstract() - Method in class io.github.cvc5.Sort
    +
    +
    Determine if this is an abstract sort.
    +
    +
    isArray() - Method in class io.github.cvc5.Sort
    +
    +
    Determine if this is an array sort.
    +
    +
    isBag() - Method in class io.github.cvc5.Sort
    +
    +
    Determine if this is a Bag sort.
    +
    +
    isBitVector() - Method in class io.github.cvc5.Sort
    +
    +
    Determine if this is a bit-vector sort (SMT-LIB: (_ BitVec i)).
    +
    +
    isBitVectorValue() - Method in class io.github.cvc5.Term
    +
     
    +
    isBoolean() - Method in class io.github.cvc5.Sort
    +
    +
    Determine if this is the Boolean sort (SMT-LIB: Bool).
    +
    +
    isBooleanValue() - Method in class io.github.cvc5.Term
    +
     
    +
    isCardinalityConstraint() - Method in class io.github.cvc5.Term
    +
     
    +
    isCodatatype() - Method in class io.github.cvc5.Datatype
    +
     
    +
    isConstArray() - Method in class io.github.cvc5.Term
    +
     
    +
    isDatatype() - Method in class io.github.cvc5.Sort
    +
    +
    Determine if this is a datatype sort.
    +
    +
    isDatatypeConstructor() - Method in class io.github.cvc5.Sort
    +
    +
    Determine if this is a datatype constructor sort.
    +
    +
    isDatatypeSelector() - Method in class io.github.cvc5.Sort
    +
    +
    Determine if this is a datatype selector sort.
    +
    +
    isDatatypeTester() - Method in class io.github.cvc5.Sort
    +
    +
    Determine if this is a datatype tester sort.
    +
    +
    isDatatypeUpdater() - Method in class io.github.cvc5.Sort
    +
    +
    Determine if this is a datatype updater sort.
    +
    +
    isDefault() - Method in class io.github.cvc5.Stat
    +
    +
    Does this value hold the default value?
    +
    +
    isDouble() - Method in class io.github.cvc5.Stat
    +
    +
    Is this value a double?
    +
    +
    isFinite() - Method in class io.github.cvc5.Datatype
    +
     
    +
    isFiniteField() - Method in class io.github.cvc5.Sort
    +
    +
    Determine if this is a finite field sort (SMT-LIB: (_ FiniteField i)).
    +
    +
    isFiniteFieldValue() - Method in class io.github.cvc5.Term
    +
     
    +
    isFloatingPoint() - Method in class io.github.cvc5.Sort
    +
    +
    Determine if this is a floatingpoint sort + (SMT-LIB: (_ FloatingPoint eb sb)).
    +
    +
    isFloatingPointNaN() - Method in class io.github.cvc5.Term
    +
     
    +
    isFloatingPointNegInf() - Method in class io.github.cvc5.Term
    +
     
    +
    isFloatingPointNegZero() - Method in class io.github.cvc5.Term
    +
     
    +
    isFloatingPointPosInf() - Method in class io.github.cvc5.Term
    +
     
    +
    isFloatingPointPosZero() - Method in class io.github.cvc5.Term
    +
     
    +
    isFloatingPointValue() - Method in class io.github.cvc5.Term
    +
     
    +
    isFunction() - Method in class io.github.cvc5.Sort
    +
    +
    Determine if this is a function sort.
    +
    +
    isHistogram() - Method in class io.github.cvc5.Stat
    +
    +
    Is this value a histogram?
    +
    +
    isIndexed() - Method in class io.github.cvc5.Op
    +
     
    +
    isInstantiated() - Method in class io.github.cvc5.Sort
    +
    +
    Determine if this is an instantiated (parametric datatype or uninterpreted + sort constructor) sort.
    +
    +
    isInt() - Method in class io.github.cvc5.Stat
    +
    +
    Is this value an integer?
    +
    +
    isInteger() - Method in class io.github.cvc5.Sort
    +
    +
    Determine if this is the integer sort (SMT-LIB: Int).
    +
    +
    isIntegerValue() - Method in class io.github.cvc5.Term
    +
     
    +
    isInternal() - Method in class io.github.cvc5.Stat
    +
    +
    Is this value intended for internal use only?
    +
    +
    isLogicSet() - Method in class io.github.cvc5.Solver
    +
    +
    Is logic set? Returns whether we called setLogic yet for this solver.
    +
    +
    isLogicSet() - Method in class io.github.cvc5.SymbolManager
    +
     
    +
    isModelCoreSymbol(Term) - Method in class io.github.cvc5.Solver
    +
    +
    This returns false if the model value of free constant v was not + essential for showing the satisfiability of the last call to + Solver.checkSat() using the current model.
    +
    +
    isNull() - Method in class io.github.cvc5.Command
    +
     
    +
    isNull() - Method in class io.github.cvc5.Datatype
    +
     
    +
    isNull() - Method in class io.github.cvc5.DatatypeConstructor
    +
     
    +
    isNull() - Method in class io.github.cvc5.DatatypeConstructorDecl
    +
     
    +
    isNull() - Method in class io.github.cvc5.DatatypeDecl
    +
     
    +
    isNull() - Method in class io.github.cvc5.DatatypeSelector
    +
     
    +
    isNull() - Method in class io.github.cvc5.Grammar
    +
    +
    Determine if this is the null grammar.
    +
    +
    isNull() - Method in class io.github.cvc5.Op
    +
     
    +
    isNull() - Method in class io.github.cvc5.Result
    +
     
    +
    isNull() - Method in class io.github.cvc5.Sort
    +
    +
    Determine if this is the null sort.
    +
    +
    isNull() - Method in class io.github.cvc5.SynthResult
    +
     
    +
    isNull() - Method in class io.github.cvc5.Term
    +
     
    +
    isNullable() - Method in class io.github.cvc5.Sort
    +
    +
    Determine if this a nullable sort.
    +
    +
    isParametric() - Method in class io.github.cvc5.Datatype
    +
     
    +
    isParametric() - Method in class io.github.cvc5.DatatypeDecl
    +
    +
    Determine if this datatype declaration is parametric.
    +
    +
    isPredicate() - Method in class io.github.cvc5.Sort
    +
    +
    Determine if this is a predicate sort.
    +
    +
    isReal() - Method in class io.github.cvc5.Sort
    +
    +
    Determine if this is the real sort (SMT-LIB: Real).
    +
    +
    isRealAlgebraicNumber() - Method in class io.github.cvc5.Term
    +
     
    +
    isRealValue() - Method in class io.github.cvc5.Term
    +
     
    +
    isRecord() - Method in class io.github.cvc5.Datatype
    +
     
    +
    isRecord() - Method in class io.github.cvc5.Sort
    +
    +
    Determine if this is a record sort.
    +
    +
    isRegExp() - Method in class io.github.cvc5.Sort
    +
    +
    Determine if this is the regular expression sort (SMT-LIB: RegLan).
    +
    +
    isRoundingMode() - Method in class io.github.cvc5.Sort
    +
    +
    Determine if this is the rounding mode sort (SMT-LIB: RoundingMode).
    +
    +
    isRoundingModeValue() - Method in class io.github.cvc5.Term
    +
     
    +
    isSat() - Method in class io.github.cvc5.Result
    +
     
    +
    isSequence() - Method in class io.github.cvc5.Sort
    +
    +
    Determine if this is a Sequence sort.
    +
    +
    isSequenceValue() - Method in class io.github.cvc5.Term
    +
     
    +
    isSet() - Method in class io.github.cvc5.Sort
    +
    +
    Determine if this is a Set sort.
    +
    +
    isSetValue() - Method in class io.github.cvc5.Term
    +
     
    +
    isSkolem() - Method in class io.github.cvc5.Term
    +
     
    +
    isString() - Method in class io.github.cvc5.Sort
    +
    +
    Determine if this is the string sort (SMT-LIB: String)..
    +
    +
    isString() - Method in class io.github.cvc5.Stat
    +
    +
    Is this value a string?
    +
    +
    isStringValue() - Method in class io.github.cvc5.Term
    +
     
    +
    isTuple() - Method in class io.github.cvc5.Datatype
    +
     
    +
    isTuple() - Method in class io.github.cvc5.Sort
    +
    +
    Determine if this a tuple sort.
    +
    +
    isTupleValue() - Method in class io.github.cvc5.Term
    +
     
    +
    isUninterpretedSort() - Method in class io.github.cvc5.Sort
    +
    +
    Determine if this is an uninterpreted sort.
    +
    +
    isUninterpretedSortConstructor() - Method in class io.github.cvc5.Sort
    +
    +
    Determine if this is an uninterpreted sort constructor.
    +
    +
    isUninterpretedSortValue() - Method in class io.github.cvc5.Term
    +
     
    +
    isUnknown() - Method in class io.github.cvc5.Result
    +
     
    +
    isUnknown() - Method in class io.github.cvc5.SynthResult
    +
     
    +
    isUnsat() - Method in class io.github.cvc5.Result
    +
     
    +
    isWellFounded() - Method in class io.github.cvc5.Datatype
    +
    +
    Is this datatype well-founded? If this datatype is not a codatatype, + this returns false if there are no values of this datatype that are of + finite size.
    +
    +
    ITE - io.github.cvc5.Kind
    +
    +
    If-then-else.
    +
    +
    ITE_ELIM1 - io.github.cvc5.ProofRule
    +
    +
    Boolean – ITE elimination version 1 + + \[ + \inferrule{(\ite{C}{F_1}{F_2}) \mid -}{\neg C \lor F_1} + \]
    +
    +
    ITE_ELIM2 - io.github.cvc5.ProofRule
    +
    +
    Boolean – ITE elimination version 2 + + \[ + \inferrule{(\ite{C}{F_1}{F_2}) \mid -}{C \lor F_2} + \]
    +
    +
    ITE_ELSE_FALSE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule ite-else-false
    +
    +
    ITE_ELSE_LOOKAHEAD - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule ite-else-lookahead
    +
    +
    ITE_ELSE_LOOKAHEAD_NOT_SELF - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule ite-else-lookahead-not-self
    +
    +
    ITE_ELSE_LOOKAHEAD_SELF - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule ite-else-lookahead-self
    +
    +
    ITE_ELSE_NEG_LOOKAHEAD - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule ite-else-neg-lookahead
    +
    +
    ITE_ELSE_TRUE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule ite-else-true
    +
    +
    ITE_EQ - io.github.cvc5.ProofRule
    +
    +
    Processing rules – If-then-else equivalence + + \[ + \inferrule{- \mid \ite{C}{t_1}{t_2}}{\ite{C}{((\ite{C}{t_1}{t_2}) = t_1)}{((\ite{C}{t_1}{t_2}) = t_2)}} + \]
    +
    +
    ITE_EQ_BRANCH - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule ite-eq-branch
    +
    +
    ITE_EXPAND - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule ite-expand
    +
    +
    ITE_FALSE_COND - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule ite-false-cond
    +
    +
    ITE_NEG_BRANCH - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule ite-neg-branch
    +
    +
    ITE_NOT_COND - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule ite-not-cond
    +
    +
    ITE_THEN_FALSE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule ite-then-false
    +
    +
    ITE_THEN_LOOKAHEAD - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule ite-then-lookahead
    +
    +
    ITE_THEN_LOOKAHEAD_NOT_SELF - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule ite-then-lookahead-not-self
    +
    +
    ITE_THEN_LOOKAHEAD_SELF - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule ite-then-lookahead-self
    +
    +
    ITE_THEN_NEG_LOOKAHEAD - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule ite-then-neg-lookahead
    +
    +
    ITE_THEN_TRUE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule ite-then-true
    +
    +
    ITE_TRUE_COND - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule ite-true-cond
    +
    +
    iterator() - Method in class io.github.cvc5.Datatype
    +
     
    +
    iterator() - Method in class io.github.cvc5.DatatypeConstructor
    +
     
    +
    iterator() - Method in class io.github.cvc5.Statistics
    +
     
    +
    iterator() - Method in class io.github.cvc5.Term
    +
     
    +
    iterator(boolean, boolean) - Method in class io.github.cvc5.Statistics
    +
     
    +
    iteTerm(Term, Term) - Method in class io.github.cvc5.Term
    +
    +
    If-then-else with this term as the Boolean condition.
    +
    +
    + + + +

    K

    +
    +
    Kind - Enum in io.github.cvc5
    +
     
    +
    + + + +

    L

    +
    +
    LAMBDA - io.github.cvc5.Kind
    +
    +
    Lambda expression.
    +
    +
    LAMBDA_ELIM - io.github.cvc5.ProofRewriteRule
    +
    +
    Equality – Lambda elimination + + \[ + (\lambda x_1 \ldots x_n.\> f(x_1 \ldots x_n)) = f + \]
    +
    +
    LAST_KIND - io.github.cvc5.Kind
    +
    +
    Marks the upper-bound of this enumeration.
    +
    +
    LAST_SORT_KIND - io.github.cvc5.SortKind
    +
    +
    Marks the upper-bound of this enumeration.
    +
    +
    LearnedLitType - Enum in io.github.cvc5.modes
    +
     
    +
    LEQ - io.github.cvc5.Kind
    +
    +
    Less than or equal, chainable.
    +
    +
    LFSC - io.github.cvc5.modes.ProofFormat
    +
    +
    Output LFSC proof.
    +
    +
    LFSC_RULE - io.github.cvc5.ProofRule
    +
    +
    External – LFSC + + Place holder for LFSC rules.
    +
    +
    LIBPATH_IN_JAR - Static variable in class io.github.cvc5.Utils
    +
     
    +
    LITERALS - io.github.cvc5.modes.BlockModelsMode
    +
    +
    Block models based on the SAT skeleton.
    +
    +
    loadLibraries() - Static method in class io.github.cvc5.Utils
    +
    +
    Load cvc5 native libraries.
    +
    +
    loadLibraryFromJar(Path, String, String) - Static method in class io.github.cvc5.Utils
    +
    +
    Loads a native library from a specified path within a JAR file and loads it into the JVM.
    +
    +
    LT - io.github.cvc5.Kind
    +
    +
    Less than, chainable.
    +
    +
    + + + +

    M

    +
    +
    MACRO_ARITH_SCALE_SUM_UB - io.github.cvc5.ProofRule
    +
    +
    Arithmetic – Adding inequalities + + An arithmetic literal is a term of the form \(p \diamond c\) where + \(\diamond \in \{ <, \leq, =, \geq, > \}\), \(p\) a + polynomial and \(c\) a rational constant.
    +
    +
    MACRO_ARITH_STRING_PRED_ENTAIL - io.github.cvc5.ProofRewriteRule
    +
    +
    Arithmetic – strings predicate entailment + + \[ + (= s t) = c + \] + \[ + (>= s t) = c + \] + where \(c\) is a Boolean constant.
    +
    +
    MACRO_ARRAYS_DISTINCT_ARRAYS - io.github.cvc5.ProofRewriteRule
    +
    +
    Arrays – Macro distinct arrays + + \[ + (A = B) = \bot + \] + where \(A\) and \(B\) are distinct array values, that is, + the Node.isConst method returns true for both.
    +
    +
    MACRO_ARRAYS_NORMALIZE_CONSTANT - io.github.cvc5.ProofRewriteRule
    +
    +
    Arrays – Macro normalize constant + + \[ + A = B + \] + where \(B\) is the result of normalizing the array value \(A\) + into a canonical form, using the internal method + TheoryArraysRewriter.normalizeConstant.
    +
    +
    MACRO_BOOL_NNF_NORM - io.github.cvc5.ProofRewriteRule
    +
    +
    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_BV_BITBLAST - io.github.cvc5.ProofRule
    +
    +
    Bit-vectors – (Macro) Bitblast + + \[ + + \inferrule{-\mid t}{t = \texttt{bitblast}(t)} + \] + where \(\texttt{bitblast}\) represents the result of the bit-blasted term as + a bit-vector consisting of the output bits of the bit-blasted circuit + representation of the term.
    +
    +
    MACRO_QUANT_MERGE_PRENEX - io.github.cvc5.ProofRewriteRule
    +
    +
    Quantifiers – Macro merge prenex + + \[ + \forall X_1.\> \ldots \forall X_n.\> F = \forall X.\> F + \] + where \(X_1 \ldots X_n\) are lists of variables and \(X\) is the + result of removing duplicates from \(X_1 \ldots X_n\).
    +
    +
    MACRO_QUANT_MINISCOPE - io.github.cvc5.ProofRewriteRule
    +
    +
    Quantifiers – Macro miniscoping + + \[ + \forall X.\> F_1 \wedge \cdots \wedge F_n = + G_1 \wedge \cdots \wedge G_n + \] + where each \(G_i\) is semantically equivalent to + \(\forall X.\> F_i\), or alternatively + + \[ + \forall X.\> \ite{C}{F_1}{F_2} = \ite{C}{G_1}{G_2} + \] + where \(C\) does not have any free variable in \(X\).
    +
    +
    MACRO_QUANT_PARTITION_CONNECTED_FV - io.github.cvc5.ProofRewriteRule
    +
    +
    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\).
    +
    +
    MACRO_QUANT_PRENEX - io.github.cvc5.ProofRewriteRule
    +
    +
    Quantifiers – Macro prenex + + \[ + (\forall X.\> F_1 \vee \cdots \vee (\forall Y.\> F_i) \vee \cdots \vee F_n) = (\forall X Z.\> F_1 \vee \cdots \vee F_i\{ Y \mapsto Z \} \vee \cdots \vee F_n) + \]
    +
    +
    MACRO_QUANT_REWRITE_BODY - io.github.cvc5.ProofRewriteRule
    +
    +
    Quantifiers – Macro quantifiers rewrite body + + \[ + \forall X.\> F = \forall X.\> G + \] + where \(G\) is semantically equivalent to \(F\).
    +
    +
    MACRO_QUANT_VAR_ELIM_EQ - io.github.cvc5.ProofRewriteRule
    +
    +
    Quantifiers – Macro variable elimination equality + + \[ + \forall x Y.\> F = \forall Y.\> F \{ x \mapsto t \} + \] + where \(\neg F\) entails \(x = t\).
    +
    +
    MACRO_QUANT_VAR_ELIM_INEQ - io.github.cvc5.ProofRewriteRule
    +
    +
    Quantifiers – Macro variable elimination inequality + + \[ + \forall x Y.\> F = \forall Y.\> G + \] + where \(G\) is the result of replacing all literals containing + \(x\) with a constant.
    +
    +
    MACRO_RESOLUTION - io.github.cvc5.ProofRule
    +
    +
    Boolean – N-ary Resolution + Factoring + Reordering + + \[ + \inferrule{C_1 \dots C_n \mid C, pol_1,L_1 \dots pol_{n-1},L_{n-1}}{C} + \] + where + + + let \(C_1 \dots C_n\) be nodes viewed as clauses, as defined in + RESOLUTION <cvc5.ProofRule.RESOLUTION> + + let \(C_1 \diamond_{L,\mathit{pol}} C_2\) represent the resolution of + \(C_1\) with \(C_2\) with pivot \(L\) and polarity + \(pol\), as defined in + RESOLUTION <cvc5.ProofRule.RESOLUTION> + + let \(C_1'\) be equal, in its set representation, to \(C_1\), + + for each \(i > 1\), let \(C_i'\) be equal, in its set + representation, to \(C_{i-1} \diamond_{L_{i-1},\mathit{pol}_{i-1}} + C_i'\) + + + The result of the chain resolution is \(C\), which is equal, in its set + representation, to \(C_n'\)
    +
    +
    MACRO_RESOLUTION_TRUST - io.github.cvc5.ProofRule
    +
    +
    Boolean – N-ary Resolution + Factoring + Reordering unchecked + + Same as + MACRO_RESOLUTION <cvc5.ProofRule.MACRO_RESOLUTION>, but + not checked by the internal proof checker.
    +
    +
    MACRO_REWRITE - io.github.cvc5.ProofRule
    +
    +
    Builtin theory – Rewrite + + \[ + \inferrule{- \mid t, idr}{t = \texttt{rewrite}_{idr}(t)} + \] + where \(idr\) is a MethodId identifier, which determines the kind of + rewriter to apply, e.g.
    +
    +
    MACRO_SR_EQ_INTRO - io.github.cvc5.ProofRule
    +
    +
    Builtin theory – Substitution + Rewriting equality introduction + + In this rule, we provide a term \(t\) and conclude that it is equal to + its rewritten form under a (proven) substitution.
    +
    +
    MACRO_SR_PRED_ELIM - io.github.cvc5.ProofRule
    +
    +
    Builtin theory – Substitution + Rewriting predicate elimination + + \[ + \inferrule{F, F_1 \dots F_n \mid (ids (ida + (idr)?)?)?}{\texttt{rewrite}_{idr}(F \circ \sigma_{ids, ida}(F_n) \circ + \cdots \circ \sigma_{ids, ida}(F_1))} + \] + where \(ids\) and \(idr\) are method identifiers.
    +
    +
    MACRO_SR_PRED_INTRO - io.github.cvc5.ProofRule
    +
    +
    Builtin theory – Substitution + Rewriting predicate introduction + + In this rule, we provide a formula \(F\) and conclude it, under the + condition that it rewrites to true under a proven substitution.
    +
    +
    MACRO_SR_PRED_TRANSFORM - io.github.cvc5.ProofRule
    +
    +
    Builtin theory – Substitution + Rewriting predicate elimination + + \[ + \inferrule{F, F_1 \dots F_n \mid G, (ids (ida (idr)?)?)?}{G} + \] + where + + \[ + \texttt{rewrite}_{idr}(F \circ \sigma_{ids, ida}(F_n) \circ\cdots \circ \sigma_{ids, ida}(F_1)) =\\ \texttt{rewrite}_{idr}(G \circ \sigma_{ids, ida}(F_n) \circ \cdots \circ \sigma_{ids, ida}(F_1)) + \] + More generally, this rule also holds when: + \(\texttt{Rewriter::rewrite}(\texttt{toOriginal}(F')) = \texttt{Rewriter::rewrite}(\texttt{toOriginal}(G'))\) + where \(F'\) and \(G'\) are the result of each side of the equation + above.
    +
    +
    MACRO_STRING_INFERENCE - io.github.cvc5.ProofRule
    +
    +
    Strings – (Macro) String inference + + \[ + + \inferrule{?\mid F,\mathit{id},\mathit{isRev},\mathit{exp}}{F} + \] + used to bookkeep an inference that has not yet been converted via + \(\texttt{strings::InferProofCons::convert}\).
    +
    +
    MACRO_SUBSTR_STRIP_SYM_LENGTH - io.github.cvc5.ProofRewriteRule
    +
    +
    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\).
    +
    +
    MATCH - io.github.cvc5.Kind
    +
    +
    Match expression.
    +
    +
    MATCH_BIND_CASE - io.github.cvc5.Kind
    +
    +
    Match case with binders, for constructors with selectors and variable + patterns.
    +
    +
    MATCH_CASE - io.github.cvc5.Kind
    +
    +
    Match case for nullary constructors.
    +
    +
    MEMOUT - io.github.cvc5.UnknownExplanation
    +
    +
    Memory limit reached.
    +
    +
    mkAbstractSort(SortKind) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkAbstractSort(SortKind). + It will be removed in a future release.
    +
    +
    +
    mkAbstractSort(SortKind) - Method in class io.github.cvc5.TermManager
    +
    +
    Create an abstract sort.
    +
    +
    mkArraySort(Sort, Sort) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkArraySort(Sort, Sort). + It will be removed in a future release.
    +
    +
    +
    mkArraySort(Sort, Sort) - Method in class io.github.cvc5.TermManager
    +
    +
    Create an array sort.
    +
    +
    mkBagSort(Sort) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkBagSort(Sort). + It will be removed in a future release.
    +
    +
    +
    mkBagSort(Sort) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a bag sort.
    +
    +
    mkBitVector(int) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkBitVector(int). + It will be removed in a future release.
    +
    +
    +
    mkBitVector(int) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a bit-vector constant of given size and value = 0.
    +
    +
    mkBitVector(int, long) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkBitVector(int, long). + It will be removed in a future release.
    +
    +
    +
    mkBitVector(int, long) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a bit-vector constant of given size and value.
    +
    +
    mkBitVector(int, String, int) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkBitVector(int, String, int). + It will be removed in a future release.
    +
    +
    +
    mkBitVector(int, String, int) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a bit-vector constant of a given bit-width from a given string of + base 2, 10 or 16.
    +
    +
    mkBitVectorSort(int) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkBitVectorSort(int). + It will be removed in a future release.
    +
    +
    +
    mkBitVectorSort(int) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a bit-vector sort.
    +
    +
    mkBoolean(boolean) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkBoolean(boolean). + It will be removed in a future release.
    +
    +
    +
    mkBoolean(boolean) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a Boolean constant.
    +
    +
    mkCardinalityConstraint(Sort, int) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkCardinalityConstraint(Sort, int). + It will be removed in a future release.
    +
    +
    +
    mkCardinalityConstraint(Sort, int) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a cardinality constraint for an uninterpreted sort.
    +
    +
    mkConst(Sort) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkConst(Sort). + It will be removed in a future release.
    +
    +
    +
    mkConst(Sort) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a free constant with a default symbol name.
    +
    +
    mkConst(Sort, String) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkConst(Sort, String). + It will be removed in a future release.
    +
    +
    +
    mkConst(Sort, String) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a free constant.
    +
    +
    mkConstArray(Sort, Term) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkConstArray(Sort, Term). + It will be removed in a future release.
    +
    +
    +
    mkConstArray(Sort, Term) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a constant array with the provided constant value stored at + every index
    +
    +
    mkDatatypeConstructorDecl(String) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkDatatypeConstructorDecl(String). + It will be removed in a future release.
    +
    +
    +
    mkDatatypeConstructorDecl(String) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a datatype constructor declaration.
    +
    +
    mkDatatypeDecl(String) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkDatatypeDecl(String). + It will be removed in a future release.
    +
    +
    +
    mkDatatypeDecl(String) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a datatype declaration.
    +
    +
    mkDatatypeDecl(String, boolean) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkDatatypeDecl(String, boolean). + It will be removed in a future release.
    +
    +
    +
    mkDatatypeDecl(String, boolean) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a datatype declaration.
    +
    +
    mkDatatypeDecl(String, Sort[]) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkDatatypeDecl(String, Sort[]). + It will be removed in a future release.
    +
    +
    +
    mkDatatypeDecl(String, Sort[]) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a datatype declaration.
    +
    +
    mkDatatypeDecl(String, Sort[], boolean) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkDatatypeDecl(String, Sort[]). + It will be removed in a future release.
    +
    +
    +
    mkDatatypeDecl(String, Sort[], boolean) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a datatype declaration.
    +
    +
    mkDatatypeSort(DatatypeDecl) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkDatatypeSort(DatatypeDecl). + It will be removed in a future release.
    +
    +
    +
    mkDatatypeSort(DatatypeDecl) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a datatype sort.
    +
    +
    mkDatatypeSorts(DatatypeDecl[]) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkDatatypeSorts(DatatypeDecl[]). + It will be removed in a future release.
    +
    +
    +
    mkDatatypeSorts(DatatypeDecl[]) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a vector of datatype sorts.
    +
    +
    mkEmptyBag(Sort) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkEmptyBag(Sort). + It will be removed in a future release.
    +
    +
    +
    mkEmptyBag(Sort) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a constant representing an empty bag of the given sort.
    +
    +
    mkEmptySequence(Sort) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkEmptySequence(Sort). + It will be removed in a future release.
    +
    +
    +
    mkEmptySequence(Sort) - Method in class io.github.cvc5.TermManager
    +
    +
    Create an empty sequence of the given element sort.
    +
    +
    mkEmptySet(Sort) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkEmptySet(Sort). + It will be removed in a future release.
    +
    +
    +
    mkEmptySet(Sort) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a constant representing an empty set of the given sort.
    +
    +
    mkFalse() - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkFalse(). + It will be removed in a future release.
    +
    +
    +
    mkFalse() - Method in class io.github.cvc5.TermManager
    +
    +
    Create a Boolean false constant.
    +
    +
    mkFiniteFieldElem(String, Sort, int) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkFiniteFieldElem(String, Sort, int). + It will be removed in a future release.
    +
    +
    +
    mkFiniteFieldElem(String, Sort, int) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a finite field constant in a given field and for a given value.
    +
    +
    mkFiniteFieldSort(String, int) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkFiniteFieldSort(String, int). + It will be removed in a future release.
    +
    +
    +
    mkFiniteFieldSort(String, int) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a finite field sort.
    +
    +
    mkFloatingPoint(int, int, Term) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkFloatingPoint(int, int, Term). + It will be removed in a future release.
    +
    +
    +
    mkFloatingPoint(int, int, Term) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a floating-point value from a bit-vector given in IEEE-754 + format.
    +
    +
    mkFloatingPoint(Term, Term, Term) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkFloatingPoint(Term, Term, Term). + It will be removed in a future release.
    +
    +
    +
    mkFloatingPoint(Term, Term, Term) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a floating-point value from its three IEEE-754 bit-vector value + components (sign bit, exponent, significand).
    +
    +
    mkFloatingPointNaN(int, int) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkFloatingPointNaN(int, int). + It will be removed in a future release.
    +
    +
    +
    mkFloatingPointNaN(int, int) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a not-a-number floating-point constant (SMT-LIB: NaN).
    +
    +
    mkFloatingPointNegInf(int, int) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkFloatingPointNegInf(int, int). + It will be removed in a future release.
    +
    +
    +
    mkFloatingPointNegInf(int, int) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a negative infinity floating-point constant (SMT-LIB: -oo).
    +
    +
    mkFloatingPointNegZero(int, int) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkFloatingPointNegZero(int, int). + It will be removed in a future release.
    +
    +
    +
    mkFloatingPointNegZero(int, int) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a negative zero floating-point constant (SMT-LIB: -zero).
    +
    +
    mkFloatingPointPosInf(int, int) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkFloatingPointPosInf(int, int). + It will be removed in a future release.
    +
    +
    +
    mkFloatingPointPosInf(int, int) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a positive infinity floating-point constant (SMT-LIB: +oo).
    +
    +
    mkFloatingPointPosZero(int, int) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkFloatingPointPosZero(int, int). + It will be removed in a future release.
    +
    +
    +
    mkFloatingPointPosZero(int, int) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a positive zero floating-point constant (SMT-LIB: +zero).
    +
    +
    mkFloatingPointSort(int, int) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkFloatingPointSort(int, int). + It will be removed in a future release.
    +
    +
    +
    mkFloatingPointSort(int, int) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a floating-point sort.
    +
    +
    mkFunctionSort(Sort[], Sort) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkFunctionSort(Sort[], Sort). + It will be removed in a future release.
    +
    +
    +
    mkFunctionSort(Sort[], Sort) - Method in class io.github.cvc5.TermManager
    +
    +
    Create function sort.
    +
    +
    mkFunctionSort(Sort, Sort) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkFunctionSort(Sort, Sort). + It will be removed in a future release.
    +
    +
    +
    mkFunctionSort(Sort, Sort) - Method in class io.github.cvc5.TermManager
    +
    +
    Create function sort.
    +
    +
    mkGrammar(Term[], Term[]) - Method in class io.github.cvc5.Solver
    +
    +
    Create a Sygus grammar.
    +
    +
    mkInteger(long) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkInteger(long). + It will be removed in a future release.
    +
    +
    +
    mkInteger(long) - Method in class io.github.cvc5.TermManager
    +
    +
    Create an integer constant from a C++ int.
    +
    +
    mkInteger(String) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkInteger(String). + It will be removed in a future release.
    +
    +
    +
    mkInteger(String) - Method in class io.github.cvc5.TermManager
    +
    +
    Create an integer constant from a string.
    +
    +
    mkNullableIsNull(Term) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkNullableIsNull(Term). + It will be removed in a future release.
    +
    +
    +
    mkNullableIsNull(Term) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a null tester for a nullable term.
    +
    +
    mkNullableIsSome(Term) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkNullableIsSome(Term). + It will be removed in a future release.
    +
    +
    +
    mkNullableIsSome(Term) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a some tester for a nullable term.
    +
    +
    mkNullableLift(Kind, Term[]) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkNullableLift(Kind, Term[]). + It will be removed in a future release.
    +
    +
    +
    mkNullableLift(Kind, Term[]) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a term that lifts kind to nullable terms.
    +
    +
    mkNullableNull(Sort) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkNullableNull(Sort). + It will be removed in a future release.
    +
    +
    +
    mkNullableNull(Sort) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a constant representing a null value of the given sort.
    +
    +
    mkNullableSome(Term) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkNullableSome(Term). + It will be removed in a future release.
    +
    +
    +
    mkNullableSome(Term) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a nullable some term.
    +
    +
    mkNullableSort(Sort) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkNullableSort(Sort). + It will be removed in a future release.
    +
    +
    +
    mkNullableSort(Sort) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a nullable sort.
    +
    +
    mkNullableVal(Term) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkNullableVal(Term). + It will be removed in a future release.
    +
    +
    +
    mkNullableVal(Term) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a selector for nullable term.
    +
    +
    mkOp(Kind) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkOp(Kind). + It will be removed in a future release.
    +
    +
    +
    mkOp(Kind) - Method in class io.github.cvc5.TermManager
    +
    +
    Create an operator for a builtin Kind + The Kind may not be the Kind for an indexed operator + (e.g., Kind.BITVECTOR_EXTRACT).
    +
    +
    mkOp(Kind, int) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkOp(Kind, int). + It will be removed in a future release.
    +
    +
    +
    mkOp(Kind, int) - Method in class io.github.cvc5.TermManager
    +
    +
    Create operator of kind: + + DIVISIBLE + BITVECTOR_REPEAT + BITVECTOR_ZERO_EXTEND + BITVECTOR_SIGN_EXTEND + BITVECTOR_ROTATE_LEFT + BITVECTOR_ROTATE_RIGHT + INT_TO_BITVECTOR + FLOATINGPOINT_TO_UBV + FLOATINGPOINT_TO_UBV_TOTAL + FLOATINGPOINT_TO_SBV + FLOATINGPOINT_TO_SBV_TOTAL + TUPLE_UPDATE + + See enum Kind for a description of the parameters.
    +
    +
    mkOp(Kind, int[]) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkOp(Kind, int[]). + It will be removed in a future release.
    +
    +
    +
    mkOp(Kind, int[]) - Method in class io.github.cvc5.TermManager
    +
    +
    Create operator of Kind: + + TUPLE_PROJECT + + See enum Kind for a description of the parameters.
    +
    +
    mkOp(Kind, int, int) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkOp(Kind, int, int). + It will be removed in a future release.
    +
    +
    +
    mkOp(Kind, int, int) - Method in class io.github.cvc5.TermManager
    +
    +
    Create operator of Kind: + + BITVECTOR_EXTRACT + FLOATINGPOINT_TO_FP_FROM_IEEE_BV + FLOATINGPOINT_TO_FP_FROM_FP + FLOATINGPOINT_TO_FP_FROM_REAL + FLOATINGPOINT_TO_FP_FROM_SBV + FLOATINGPOINT_TO_FP_FROM_UBV + + See enum Kind for a description of the parameters.
    +
    +
    mkOp(Kind, String) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkOp(Kind, String). + It will be removed in a future release.
    +
    +
    +
    mkOp(Kind, String) - Method in class io.github.cvc5.TermManager
    +
    +
    Create operator of kind: + + + Kind.DIVISIBLE (to support arbitrary precision integers) + + + See enum Kind for a description of the parameters.
    +
    +
    mkParamSort() - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkParamSort(). + It will be removed in a future release.
    +
    +
    +
    mkParamSort() - Method in class io.github.cvc5.TermManager
    +
    +
    Create a sort parameter.
    +
    +
    mkParamSort(String) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkParamSort(String). + It will be removed in a future release.
    +
    +
    +
    mkParamSort(String) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a sort parameter.
    +
    +
    mkPi() - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkPi(). + It will be removed in a future release.
    +
    +
    +
    mkPi() - Method in class io.github.cvc5.TermManager
    +
    +
    Create a constant representing the number Pi.
    +
    +
    mkPredicateSort(Sort[]) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkPredicateSort(Sort[]). + It will be removed in a future release.
    +
    +
    +
    mkPredicateSort(Sort[]) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a predicate sort.
    +
    +
    mkReal(long) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkReal(long). + It will be removed in a future release.
    +
    +
    +
    mkReal(long) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a real constant from an integer.
    +
    +
    mkReal(long, long) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkReal(long, long). + It will be removed in a future release.
    +
    +
    +
    mkReal(long, long) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a real constant from a rational.
    +
    +
    mkReal(String) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkReal(String). + It will be removed in a future release.
    +
    +
    +
    mkReal(String) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a real constant from a string.
    +
    +
    mkRecordSort(Pair<String, Sort>[]) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkRecordSort(Pair[]). + It will be removed in a future release.
    +
    +
    +
    mkRecordSort(Pair<String, Sort>[]) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a record sort
    +
    +
    mkRegexpAll() - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkRegexpAll(). + It will be removed in a future release.
    +
    +
    +
    mkRegexpAll() - Method in class io.github.cvc5.TermManager
    +
    +
    Create a regular expression all (re.all) term.
    +
    +
    mkRegexpAllchar() - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkRegexpAllchar(). + It will be removed in a future release.
    +
    +
    +
    mkRegexpAllchar() - Method in class io.github.cvc5.TermManager
    +
    +
    Create a regular expression allchar (re.allchar) term.
    +
    +
    mkRegexpNone() - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkRegexpNone(). + It will be removed in a future release.
    +
    +
    +
    mkRegexpNone() - Method in class io.github.cvc5.TermManager
    +
    +
    Create a regular expression none (re.none) term.
    +
    +
    mkRoundingMode(RoundingMode) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkRoundingMode(RoundingMode). + It will be removed in a future release.
    +
    +
    +
    mkRoundingMode(RoundingMode) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a rounding mode constant.
    +
    +
    mkSepEmp() - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkSepEmp(). + It will be removed in a future release.
    +
    +
    +
    mkSepEmp() - Method in class io.github.cvc5.TermManager
    +
    +
    Create a separation logic empty term.
    +
    +
    mkSepNil(Sort) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkSepNil(Sort). + It will be removed in a future release.
    +
    +
    +
    mkSepNil(Sort) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a separation logic nil term.
    +
    +
    mkSequenceSort(Sort) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkSequenceSort(Sort). + It will be removed in a future release.
    +
    +
    +
    mkSequenceSort(Sort) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a sequence sort.
    +
    +
    mkSetSort(Sort) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkSetSort(Sort). + It will be removed in a future release.
    +
    +
    +
    mkSetSort(Sort) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a set sort.
    +
    +
    mkSkolem(SkolemId, Term[]) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a skolem
    +
    +
    mkString(int[]) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkString(int[]). + It will be removed in a future release.
    +
    +
    +
    mkString(int[]) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a String constant.
    +
    +
    mkString(String) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkString(String). + It will be removed in a future release.
    +
    +
    +
    mkString(String) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a String constant.
    +
    +
    mkString(String, boolean) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkString(String, boolean). + It will be removed in a future release.
    +
    +
    +
    mkString(String, boolean) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a String constant.
    +
    +
    mkTerm(Kind) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkTerm(Kind). + It will be removed in a future release.
    +
    +
    +
    mkTerm(Kind) - Method in class io.github.cvc5.TermManager
    +
    +
    Create 0-ary term of given kind.
    +
    +
    mkTerm(Kind, Term) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkTerm(Kind, Term). + It will be removed in a future release.
    +
    +
    +
    mkTerm(Kind, Term) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a unary term of given kind.
    +
    +
    mkTerm(Kind, Term[]) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkTerm(Kind, Term[]). + It will be removed in a future release.
    +
    +
    +
    mkTerm(Kind, Term[]) - Method in class io.github.cvc5.TermManager
    +
    +
    Create n-ary term of given kind.
    +
    +
    mkTerm(Kind, Term, Term) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkTerm(Kind, Term, Term). + It will be removed in a future release.
    +
    +
    +
    mkTerm(Kind, Term, Term) - Method in class io.github.cvc5.TermManager
    +
    +
    Create binary term of given kind.
    +
    +
    mkTerm(Kind, Term, Term, Term) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkTerm(Kind, Term, Term, Term). + It will be removed in a future release.
    +
    +
    +
    mkTerm(Kind, Term, Term, Term) - Method in class io.github.cvc5.TermManager
    +
    +
    Create ternary term of given kind.
    +
    +
    mkTerm(Op) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkTerm(Op). + It will be removed in a future release.
    +
    +
    +
    mkTerm(Op) - Method in class io.github.cvc5.TermManager
    +
    +
    Create nullary term of given kind from a given operator.
    +
    +
    mkTerm(Op, Term) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkTerm(Op, Term). + It will be removed in a future release.
    +
    +
    +
    mkTerm(Op, Term) - Method in class io.github.cvc5.TermManager
    +
    +
    Create unary term of given kind from a given operator.
    +
    +
    mkTerm(Op, Term[]) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkTerm(Op, Term[]). + It will be removed in a future release.
    +
    +
    +
    mkTerm(Op, Term[]) - Method in class io.github.cvc5.TermManager
    +
    +
    Create n-ary term of given kind from a given operator.
    +
    +
    mkTerm(Op, Term, Term) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkTerm(Op, Term, Term). + It will be removed in a future release.
    +
    +
    +
    mkTerm(Op, Term, Term) - Method in class io.github.cvc5.TermManager
    +
    +
    Create binary term of given kind from a given operator.
    +
    +
    mkTerm(Op, Term, Term, Term) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkTerm(Op, Term, Term, Term). + It will be removed in a future release.
    +
    +
    +
    mkTerm(Op, Term, Term, Term) - Method in class io.github.cvc5.TermManager
    +
    +
    Create ternary term of given kind from a given operator.
    +
    +
    mkTrue() - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkTrue(). + It will be removed in a future release.
    +
    +
    +
    mkTrue() - Method in class io.github.cvc5.TermManager
    +
    +
    Create a Boolean true constant.
    +
    +
    mkTuple(Term[]) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkTuple(Term[]). + It will be removed in a future release.
    +
    +
    +
    mkTuple(Term[]) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a tuple term.
    +
    +
    mkTupleSort(Sort[]) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkTupleSort(Sort[]). + It will be removed in a future release.
    +
    +
    +
    mkTupleSort(Sort[]) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a tuple sort.
    +
    +
    mkUninterpretedSort() - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkUninterpretedSort(). + It will be removed in a future release.
    +
    +
    +
    mkUninterpretedSort() - Method in class io.github.cvc5.TermManager
    +
    +
    Create an uninterpreted sort.
    +
    +
    mkUninterpretedSort(String) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkUninterpretedSort(String). + It will be removed in a future release.
    +
    +
    +
    mkUninterpretedSort(String) - Method in class io.github.cvc5.TermManager
    +
    +
    Create an uninterpreted sort.
    +
    +
    mkUninterpretedSortConstructorSort(int) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkUninterpretedSortConstructorSort(int). + It will be removed in a future release.
    +
    +
    +
    mkUninterpretedSortConstructorSort(int) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a sort constructor sort.
    +
    +
    mkUninterpretedSortConstructorSort(int, String) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkUninterpretedSortConstructorSort(int, String). + It will be removed in a future release.
    +
    +
    +
    mkUninterpretedSortConstructorSort(int, String) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a sort constructor sort.
    +
    +
    mkUniverseSet(Sort) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkUniverseSet(Sort). + It will be removed in a future release.
    +
    +
    +
    mkUniverseSet(Sort) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a universe set of the given sort.
    +
    +
    mkUnresolvedDatatypeSort(String) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkUnresolvedDatatypeSort(String). + It will be removed in a future release.
    +
    +
    +
    mkUnresolvedDatatypeSort(String) - Method in class io.github.cvc5.TermManager
    +
    +
    Create an unresolved datatype sort.
    +
    +
    mkUnresolvedDatatypeSort(String, int) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkUnresolvedDatatypeSort(String, int). + It will be removed in a future release.
    +
    +
    +
    mkUnresolvedDatatypeSort(String, int) - Method in class io.github.cvc5.TermManager
    +
    +
    Create an unresolved datatype sort.
    +
    +
    mkVar(Sort) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkVar(Sort). + It will be removed in a future release.
    +
    +
    +
    mkVar(Sort) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a bound variable to be used in a binder (i.e., a quantifier, a + lambda, or a witness binder).
    +
    +
    mkVar(Sort, String) - Method in class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + TermManager.mkVar(Sort, String). + It will be removed in a future release.
    +
    +
    +
    mkVar(Sort, String) - Method in class io.github.cvc5.TermManager
    +
    +
    Create a bound variable to be used in a binder (i.e., a quantifier, a + lambda, or a witness binder).
    +
    +
    MOD_BY_ZERO - io.github.cvc5.SkolemId
    +
    +
    The function for integer modulus by zero.
    +
    +
    ModeInfo(String, String, String[]) - Constructor for class io.github.cvc5.OptionInfo.ModeInfo
    +
     
    +
    MODUS_PONENS - io.github.cvc5.ProofRule
    +
    +
    Boolean – Modus Ponens + + \[ + \inferrule{F_1, (F_1 \rightarrow F_2) \mid -}{F_2} + \] + Note this can optionally be seen as a macro for + IMPLIES_ELIM <cvc5.ProofRule.IMPLIES_ELIM> + + RESOLUTION <cvc5.ProofRule.RESOLUTION>.
    +
    +
    MULT - io.github.cvc5.Kind
    +
    +
    Arithmetic multiplication.
    +
    +
    + + + +

    N

    +
    +
    NARY_CONG - io.github.cvc5.ProofRule
    +
    +
    Equality – N-ary Congruence + + \[ + + \inferrule{t_1=s_1,\dots,t_n=s_n\mid k}{k(t_1,\dots, t_n) = + k(s_1,\dots, s_n)} + \] + where \(k\) is the application kind.
    +
    +
    NEG - io.github.cvc5.Kind
    +
    +
    Arithmetic negation.
    +
    +
    next() - Method in class io.github.cvc5.Datatype.ConstIterator
    +
     
    +
    next() - Method in class io.github.cvc5.DatatypeConstructor.ConstIterator
    +
     
    +
    next() - Method in class io.github.cvc5.Statistics.ConstIterator
    +
     
    +
    next() - Method in class io.github.cvc5.Term.ConstIterator
    +
     
    +
    nextCommand() - Method in class io.github.cvc5.InputParser
    +
    +
    Parse and return the next command.
    +
    +
    nextTerm() - Method in class io.github.cvc5.InputParser
    +
    +
    Parse and return the next term.
    +
    +
    NONE - io.github.cvc5.modes.ProofFormat
    +
    +
    Do not translate proof output.
    +
    +
    NONE - io.github.cvc5.ProofRewriteRule
    +
    +
    This enumeration represents the rewrite rules used in a rewrite proof.
    +
    +
    NONE - io.github.cvc5.SkolemId
    +
    +
    Indicates this is not a skolem.
    +
    +
    NOT - io.github.cvc5.Kind
    +
    +
    Logical negation.
    +
    +
    NOT_AND - io.github.cvc5.ProofRule
    +
    +
    Boolean – De Morgan – Not And + + \[ + \inferrule{\neg(F_1 \land \dots \land F_n) \mid -}{\neg F_1 \lor \dots + \lor \neg F_n} + \]
    +
    +
    NOT_EQUIV_ELIM1 - io.github.cvc5.ProofRule
    +
    +
    Boolean – Not Equivalence elimination version 1 + + \[ + \inferrule{F_1 \neq F_2 \mid -}{F_1 \lor F_2} + \]
    +
    +
    NOT_EQUIV_ELIM2 - io.github.cvc5.ProofRule
    +
    +
    Boolean – Not Equivalence elimination version 2 + + \[ + \inferrule{F_1 \neq F_2 \mid -}{\neg F_1 \lor \neg F_2} + \]
    +
    +
    NOT_IMPLIES_ELIM1 - io.github.cvc5.ProofRule
    +
    +
    Boolean – Not Implication elimination version 1 + + \[ + \inferrule{\neg(F_1 \rightarrow F_2) \mid -}{F_1} + \]
    +
    +
    NOT_IMPLIES_ELIM2 - io.github.cvc5.ProofRule
    +
    +
    Boolean – Not Implication elimination version 2 + + \[ + \inferrule{\neg(F_1 \rightarrow F_2) \mid -}{\neg F_2} + \]
    +
    +
    NOT_ITE_ELIM1 - io.github.cvc5.ProofRule
    +
    +
    Boolean – Not ITE elimination version 1 + + \[ + \inferrule{\neg(\ite{C}{F_1}{F_2}) \mid -}{\neg C \lor \neg F_1} + \]
    +
    +
    NOT_ITE_ELIM2 - io.github.cvc5.ProofRule
    +
    +
    Boolean – Not ITE elimination version 2 + + \[ + \inferrule{\neg(\ite{C}{F_1}{F_2}) \mid -}{C \lor \neg F_2} + \]
    +
    +
    NOT_NOT_ELIM - io.github.cvc5.ProofRule
    +
    +
    Boolean – Double negation elimination + + \[ + \inferrule{\neg (\neg F) \mid -}{F} + \]
    +
    +
    NOT_OR_ELIM - io.github.cvc5.ProofRule
    +
    +
    Boolean – Not Or elimination + + \[ + \inferrule{\neg(F_1 \lor \dots \lor F_n) \mid i}{\neg F_i} + \]
    +
    +
    NOT_XOR_ELIM1 - io.github.cvc5.ProofRule
    +
    +
    Boolean – Not XOR elimination version 1 + + \[ + \inferrule{\neg(F_1 \xor F_2) \mid -}{F_1 \lor \neg F_2} + \]
    +
    +
    NOT_XOR_ELIM2 - io.github.cvc5.ProofRule
    +
    +
    Boolean – Not XOR elimination version 2 + + \[ + \inferrule{\neg(F_1 \xor F_2) \mid -}{\neg F_1 \lor F_2} + \]
    +
    +
    notifySatClause(Term) - Method in class io.github.cvc5.AbstractPlugin
    +
    +
    Notify SAT clause, called when cl is a clause learned by the SAT solver.
    +
    +
    notifyTheoryLemma(Term) - Method in class io.github.cvc5.AbstractPlugin
    +
    +
    Notify theory lemma, called when lem is a theory lemma sent by a theory + solver.
    +
    +
    notTerm() - Method in class io.github.cvc5.Term
    +
    +
    Boolean negation.
    +
    +
    NULL_SORT - io.github.cvc5.SortKind
    +
    +
    Null kind.
    +
    +
    NULL_TERM - io.github.cvc5.Kind
    +
    +
    Null kind.
    +
    +
    NULLABLE_LIFT - io.github.cvc5.Kind
    +
    +
    Lifting operator for nullable terms.
    +
    +
    NULLABLE_SORT - io.github.cvc5.SortKind
    +
    +
    A nullable sort, whose argument sort denotes the sort of the direct child + of the nullable.
    +
    +
    NumberInfo(T, T, T, T) - Constructor for class io.github.cvc5.OptionInfo.NumberInfo
    +
     
    +
    + + + +

    O

    +
    +
    Op - Class in io.github.cvc5
    +
    +
    A cvc5 operator.
    +
    +
    Op() - Constructor for class io.github.cvc5.Op
    +
    +
    Null op
    +
    +
    OptionInfo - Class in io.github.cvc5
    +
    +
    Holds some description about a particular option, including its name, its + aliases, whether the option was explicitly set by the user, and information + concerning its value.
    +
    +
    OptionInfo.BaseInfo - Class in io.github.cvc5
    +
    +
    Abstract class for OptionInfo values
    +
    +
    OptionInfo.ModeInfo - Class in io.github.cvc5
    +
     
    +
    OptionInfo.NumberInfo<T> - Class in io.github.cvc5
    +
    +
    Default value, current value, minimum and maximum of a numeric value
    +
    +
    OptionInfo.ValueInfo<T> - Class in io.github.cvc5
    +
    +
    Has the current and the default value
    +
    +
    OptionInfo.VoidInfo - Class in io.github.cvc5
    +
    +
    Has no value information
    +
    +
    OR - io.github.cvc5.Kind
    +
    +
    Logical disjunction.
    +
    +
    orTerm(Term) - Method in class io.github.cvc5.Term
    +
    +
    Boolean or.
    +
    +
    OTHER - io.github.cvc5.UnknownExplanation
    +
    +
    Other reason.
    +
    +
    + + + +

    P

    +
    +
    Pair<K,​V> - Class in io.github.cvc5
    +
     
    +
    Pair(K, V) - Constructor for class io.github.cvc5.Pair
    +
     
    +
    PI - io.github.cvc5.Kind
    +
    +
    Pi constant.
    +
    +
    pointer - Variable in class io.github.cvc5.Proof
    +
     
    +
    pop() - Method in class io.github.cvc5.Solver
    +
    +
    Pop a level from the assertion stack.
    +
    +
    pop(int) - Method in class io.github.cvc5.Solver
    +
    +
    Pop (a) level(s) from the assertion stack.
    +
    +
    POW - io.github.cvc5.Kind
    +
    +
    Arithmetic power.
    +
    +
    POW2 - io.github.cvc5.Kind
    +
    +
    Power of two.
    +
    +
    PREPROCESS - io.github.cvc5.modes.LearnedLitType
    +
    +
    A top-level literal (unit clause) from the preprocessed set of input + formulas.
    +
    +
    PREPROCESS - io.github.cvc5.modes.ProofComponent
    +
    +
    Proofs of Gu1 ...
    +
    +
    PREPROCESS_SOLVED - io.github.cvc5.modes.LearnedLitType
    +
    +
    An equality that was turned into a substitution during preprocessing.
    +
    +
    Proof - Class in io.github.cvc5
    +
    +
    A cvc5 Proof.
    +
    +
    Proof() - Constructor for class io.github.cvc5.Proof
    +
    +
    Null proof
    +
    +
    ProofComponent - Enum in io.github.cvc5.modes
    +
     
    +
    ProofFormat - Enum in io.github.cvc5.modes
    +
     
    +
    ProofRewriteRule - Enum in io.github.cvc5
    +
     
    +
    ProofRule - Enum in io.github.cvc5
    +
     
    +
    proofToString(Proof) - Method in class io.github.cvc5.Solver
    +
    +
    Prints a proof into a string with a slected proof format mode.
    +
    +
    proofToString(Proof, ProofFormat) - Method in class io.github.cvc5.Solver
    +
    +
    Prints a proof into a string with a slected proof format mode.
    +
    +
    proofToString(Proof, ProofFormat, Map) - Method in class io.github.cvc5.Solver
    +
    +
    Prints a proof into a string with a slected proof format mode.
    +
    +
    PURIFY - io.github.cvc5.SkolemId
    +
    +
    The purification skolem for a term.
    +
    +
    push() - Method in class io.github.cvc5.Solver
    +
    +
    Push a level to the assertion stack.
    +
    +
    push(int) - Method in class io.github.cvc5.Solver
    +
    +
    Push (a) level(s) to the assertion stack.
    +
    +
    + + + +

    Q

    +
    +
    QUANT_DT_SPLIT - io.github.cvc5.ProofRewriteRule
    +
    +
    Quantifiers – Datatypes Split + + \[ + (\forall x Y.\> F) = (\forall X_1 Y.
    +
    +
    QUANT_MERGE_PRENEX - io.github.cvc5.ProofRewriteRule
    +
    +
    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_MINISCOPE_AND - io.github.cvc5.ProofRewriteRule
    +
    +
    Quantifiers – Miniscoping and + + \[ + \forall X.\> F_1 \wedge \ldots \wedge F_n = + (\forall X.\> F_1) \wedge \ldots \wedge (\forall X.\> F_n) + \]
    +
    +
    QUANT_MINISCOPE_ITE - io.github.cvc5.ProofRewriteRule
    +
    +
    Quantifiers – Miniscoping ite + + \[ + \forall X.\> \ite{C}{F_1}{F_2} = \ite{C}{\forall X.\> F_1}{\forall X.\> F_2} + \] + where \(C\) does not have any free variable in \(X\).
    +
    +
    QUANT_MINISCOPE_OR - io.github.cvc5.ProofRewriteRule
    +
    +
    Quantifiers – Miniscoping or + + \[ + \forall X.\> F_1 \vee \ldots \vee F_n = (\forall X_1.\> F_1) \vee \ldots \vee (\forall X_n.\> F_n) + \] + where \(X = X_1 \ldots X_n\), and the right hand side does not have any + free variable in \(X\).
    +
    +
    QUANT_UNUSED_VARS - io.github.cvc5.ProofRewriteRule
    +
    +
    Quantifiers – Unused variables + + \[ + \forall X.\> F = \forall X_1.\> F + \] + where \(X_1\) is the subset of \(X\) that appear free in \(F\) + and \(X_1\) does not contain duplicate variables.
    +
    +
    QUANT_VAR_ELIM_EQ - io.github.cvc5.ProofRewriteRule
    +
    +
    Quantifiers – Macro variable elimination equality + + ..
    +
    +
    QUANT_VAR_REORDERING - io.github.cvc5.ProofRule
    +
    +
    Quantifiers – Variable reordering + + \[ + + \inferrule{-\mid (\forall X.\> F) = (\forall Y.\> F)} + {(\forall X.\> F) = (\forall Y.\> F)} + \] + where \(Y\) is a reordering of \(X\).
    +
    +
    QUANTIFIERS_SKOLEMIZE - io.github.cvc5.SkolemId
    +
    +
    The n^th skolem for the negation of universally quantified formula Q.
    +
    +
    QUERY - io.github.cvc5.modes.FindSynthTarget
    +
    +
    Find a query over the given grammar.
    +
    +
    + + + +

    R

    +
    +
    RAW_PREPROCESS - io.github.cvc5.modes.ProofComponent
    +
    +
    Proofs of G1 ...
    +
    +
    RE_ALL_ELIM - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule re-all-elim
    +
    +
    RE_CONCAT_EMP - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule re-concat-emp
    +
    +
    RE_CONCAT_FLATTEN - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule re-concat-flatten
    +
    +
    RE_CONCAT_MERGE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule re-concat-merge
    +
    +
    RE_CONCAT_NONE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule re-concat-none
    +
    +
    RE_CONCAT_STAR_REPEAT - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule re-concat-star-repeat
    +
    +
    RE_CONCAT_STAR_SWAP - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule re-concat-star-swap
    +
    +
    RE_DIFF_ELIM - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule re-diff-elim
    +
    +
    RE_FIRST_MATCH - io.github.cvc5.SkolemId
    +
    +
    For string a and regular expression R, this skolem is the string that + the first, shortest match of R was matched to in a.
    +
    +
    RE_FIRST_MATCH_POST - io.github.cvc5.SkolemId
    +
    +
    For string a and regular expression R, this skolem is the remainder + of a after the first, shortest match of R in a.
    +
    +
    RE_FIRST_MATCH_PRE - io.github.cvc5.SkolemId
    +
    +
    The next three skolems are used to decompose the match of a regular + expression in string.
    +
    +
    RE_IN_COMP - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule re-in-comp
    +
    +
    RE_IN_CSTRING - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule re-in-cstring
    +
    +
    RE_IN_EMPTY - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule re-in-empty
    +
    +
    RE_IN_SIGMA - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule re-in-sigma
    +
    +
    RE_IN_SIGMA_STAR - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule re-in-sigma-star
    +
    +
    RE_INTER - io.github.cvc5.ProofRule
    +
    +
    Strings – Regular expressions – Intersection + + \[ + + \inferrule{t\in R_1,\,t\in R_2\mid -}{t\in \mathit{re.inter}(R_1,R_2)} + \]
    +
    +
    RE_INTER_ALL - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule re-inter-all
    +
    +
    RE_INTER_CSTRING - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule re-inter-cstring
    +
    +
    RE_INTER_CSTRING_NEG - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule re-inter-cstring-neg
    +
    +
    RE_INTER_DUP - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule re-inter-dup
    +
    +
    RE_INTER_FLATTEN - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule re-inter-flatten
    +
    +
    RE_INTER_NONE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule re-inter-none
    +
    +
    RE_INTER_UNION_INCLUSION - io.github.cvc5.ProofRewriteRule
    +
    +
    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`.
    +
    +
    RE_LOOP_ELIM - io.github.cvc5.ProofRewriteRule
    +
    +
    Strings – regular expression loop elimination + + \[ + re.loop_{l,u}(R) = re.union(R^l, \ldots, R^u) + \] + where \(u \geq l\).
    +
    +
    RE_LOOP_NEG - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule re-loop-neg
    +
    +
    RE_OPT_ELIM - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule re-opt-elim
    +
    +
    RE_STAR_NONE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule re-star-none
    +
    +
    RE_UNFOLD_NEG - io.github.cvc5.ProofRule
    +
    +
    Strings – Regular expressions – Negative Unfold + + \[ + + \inferrule{t \not \in \mathit{re}.\text{*}(R) \mid -}{t \neq \ \epsilon \ \wedge \forall L.
    +
    +
    RE_UNFOLD_NEG_CONCAT_FIXED - io.github.cvc5.ProofRule
    +
    +
    Strings – Regular expressions – Unfold negative concatenation, fixed + + ..
    +
    +
    RE_UNFOLD_POS - io.github.cvc5.ProofRule
    +
    +
    Strings – Regular expressions – Positive Unfold + + \[ + + \inferrule{t\in R\mid -}{F} + \] + where \(F\) corresponds to the one-step unfolding of the premise.
    +
    +
    RE_UNFOLD_POS_COMPONENT - io.github.cvc5.SkolemId
    +
    +
    Regular expression unfold component: if (str.in_re a R), where R is + (re.++ R0 ... Rn), then the RE_UNFOLD_POS_COMPONENT for indices + (a,R,i) is a string ki such that (= a (str.++ k0 ... kn)) and + (str.in_re k0 R0) for i = 0, ..., n.
    +
    +
    RE_UNION_ALL - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule re-union-all
    +
    +
    RE_UNION_DUP - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule re-union-dup
    +
    +
    RE_UNION_FLATTEN - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule re-union-flatten
    +
    +
    RE_UNION_NONE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule re-union-none
    +
    +
    readLibraryFilenames(String) - Static method in class io.github.cvc5.Utils
    +
    +
    Reads a text file from the specified path within the JAR file and returns a list of library + filenames.
    +
    +
    REAL_SORT - io.github.cvc5.SortKind
    +
    +
    The real sort.
    +
    +
    REFL - io.github.cvc5.ProofRule
    +
    +
    Equality – Reflexivity + + \[ + + \inferrule{-\mid t}{t = t} + \]
    +
    +
    REGEXP_ALL - io.github.cvc5.Kind
    +
    +
    Regular expression all.
    +
    +
    REGEXP_ALLCHAR - io.github.cvc5.Kind
    +
    +
    Regular expression all characters.
    +
    +
    REGEXP_COMPLEMENT - io.github.cvc5.Kind
    +
    +
    Regular expression complement.
    +
    +
    REGEXP_CONCAT - io.github.cvc5.Kind
    +
    +
    Regular expression concatenation.
    +
    +
    REGEXP_DIFF - io.github.cvc5.Kind
    +
    +
    Regular expression difference.
    +
    +
    REGEXP_INTER - io.github.cvc5.Kind
    +
    +
    Regular expression intersection.
    +
    +
    REGEXP_LOOP - io.github.cvc5.Kind
    +
    +
    Regular expression loop.
    +
    +
    REGEXP_NONE - io.github.cvc5.Kind
    +
    +
    Regular expression none.
    +
    +
    REGEXP_OPT - io.github.cvc5.Kind
    +
    +
    Regular expression ?.
    +
    +
    REGEXP_PLUS - io.github.cvc5.Kind
    +
    +
    Regular expression +.
    +
    +
    REGEXP_RANGE - io.github.cvc5.Kind
    +
    +
    Regular expression range.
    +
    +
    REGEXP_REPEAT - io.github.cvc5.Kind
    +
    +
    Operator for regular expression repeat.
    +
    +
    REGEXP_STAR - io.github.cvc5.Kind
    +
    +
    Regular expression \*.
    +
    +
    REGEXP_UNION - io.github.cvc5.Kind
    +
    +
    Regular expression union.
    +
    +
    REGLAN_SORT - io.github.cvc5.SortKind
    +
    +
    The regular language sort.
    +
    +
    RELATION_AGGREGATE - io.github.cvc5.Kind
    +
    +
    Relation aggregate operator has the form + \(((\_ \; rel.aggr \; n_1 ...
    +
    +
    RELATION_GROUP - io.github.cvc5.Kind
    +
    +
    Relation group + + + \(((\_ \; rel.group \; n_1 \; \dots \; n_k) \; A)\) partitions tuples + of relation \(A\) such that tuples that have the same projection + with indices \(n_1 \; \dots \; n_k\) are in the same part.
    +
    +
    RELATION_IDEN - io.github.cvc5.Kind
    +
    +
    Relation identity.
    +
    +
    RELATION_JOIN - io.github.cvc5.Kind
    +
    +
    Relation join.
    +
    +
    RELATION_JOIN_IMAGE - io.github.cvc5.Kind
    +
    +
    Relation join image.
    +
    +
    RELATION_PRODUCT - io.github.cvc5.Kind
    +
    +
    Relation cartesian product.
    +
    +
    RELATION_PROJECT - io.github.cvc5.Kind
    +
    +
    Relation projection operator extends tuple projection operator to sets.
    +
    +
    RELATION_TABLE_JOIN - io.github.cvc5.Kind
    +
    +
    Table join operator for relations has the form + \(((\_ \; rel.table\_join \; m_1 \; n_1 \; \dots \; m_k \; n_k) \; A \; B)\) + where \(m_1 \; n_1 \; \dots \; m_k \; n_k\) are natural numbers, + and \(A, B\) are relations.
    +
    +
    RELATION_TCLOSURE - io.github.cvc5.Kind
    +
    +
    Relation transitive closure.
    +
    +
    RELATION_TRANSPOSE - io.github.cvc5.Kind
    +
    +
    Relation transpose.
    +
    +
    RELATIONS_GROUP_PART - io.github.cvc5.SkolemId
    +
    +
    Given a group term ((_ rel.group n1 ... nk) A) of type + (Set (Relation T)) this skolem maps elements of A to their parts in the + resulting partition.
    +
    +
    RELATIONS_GROUP_PART_ELEMENT - io.github.cvc5.SkolemId
    +
    +
    Given a group term ((_ rel.group n1 ...
    +
    +
    REORDERING - io.github.cvc5.ProofRule
    +
    +
    Boolean – Reordering + + \[ + \inferrule{C_1 \mid C_2}{C_2} + \] + where + the multiset representations of \(C_1\) and \(C_2\) are the same.
    +
    +
    REQUIRES_CHECK_AGAIN - io.github.cvc5.UnknownExplanation
    +
    +
    Requires another satisfiability check
    +
    +
    REQUIRES_FULL_CHECK - io.github.cvc5.UnknownExplanation
    +
    +
    Full satisfiability check required (e.g., if only preprocessing was + performed).
    +
    +
    resetAssertions() - Method in class io.github.cvc5.Solver
    +
    +
    Remove all assertions.
    +
    +
    RESOLUTION - io.github.cvc5.ProofRule
    +
    +
    Boolean – Resolution + + \[ + \inferrule{C_1, C_2 \mid pol, L}{C} + \] + where + + + \(C_1\) and \(C_2\) are nodes viewed as clauses, i.e., either an + OR node with each children viewed as a literal or a node viewed as a + literal.
    +
    +
    RESOURCEOUT - io.github.cvc5.UnknownExplanation
    +
    +
    Resource limit reached.
    +
    +
    Result - Class in io.github.cvc5
    +
    +
    Encapsulation of a three-valued solver result, with explanations.
    +
    +
    Result() - Constructor for class io.github.cvc5.Result
    +
    +
    Null result
    +
    +
    REWRITE - io.github.cvc5.modes.FindSynthTarget
    +
    +
    Find a pair of terms (t,s) in the target grammar which are equivalent + but do not rewrite to the same term in the given rewriter + (--sygus-rewrite=MODE).
    +
    +
    REWRITE_INPUT - io.github.cvc5.modes.FindSynthTarget
    +
    +
    Find a rewrite between pairs of terms (t,s) that are matchable with terms + in the input assertions where t and s are equivalent but do not rewrite + to the same term in the given rewriter (--sygus-rewrite=MODE).
    +
    +
    REWRITE_UNSOUND - io.github.cvc5.modes.FindSynthTarget
    +
    +
    Find a term t in the target grammar which rewrites to a term s that is + not equivalent to it.
    +
    +
    ROUND_NEAREST_TIES_TO_AWAY - io.github.cvc5.RoundingMode
    +
    +
    Round to the nearest number away from zero.
    +
    +
    ROUND_NEAREST_TIES_TO_EVEN - io.github.cvc5.RoundingMode
    +
    +
    Round to the nearest even number.
    +
    +
    ROUND_TOWARD_NEGATIVE - io.github.cvc5.RoundingMode
    +
    +
    Round towards negative infinity (-oo).
    +
    +
    ROUND_TOWARD_POSITIVE - io.github.cvc5.RoundingMode
    +
    +
    Round towards positive infinity (SMT-LIB: +oo).
    +
    +
    ROUND_TOWARD_ZERO - io.github.cvc5.RoundingMode
    +
    +
    Round towards zero.
    +
    +
    RoundingMode - Enum in io.github.cvc5
    +
     
    +
    ROUNDINGMODE_SORT - io.github.cvc5.SortKind
    +
    +
    The rounding mode sort.
    +
    +
    + + + +

    S

    +
    +
    SAT - io.github.cvc5.modes.ProofComponent
    +
    +
    A proof of false whose free assumptions are Gu1, ...
    +
    +
    SAT_EXTERNAL_PROVE - io.github.cvc5.ProofRule
    +
    +
    SAT external prove Refutation + + \[ + \inferrule{F_1 \dots F_n \mid D}{\bot} + \] + where \(F_1 \dots F_n\) correspond to the input clauses in the + DIMACS file `D`.
    +
    +
    SAT_REFUTATION - io.github.cvc5.ProofRule
    +
    +
    SAT Refutation for assumption-based unsat cores + + \[ + \inferrule{F_1 \dots F_n \mid -}{\bot} + \] + where \(F_1 \dots F_n\) correspond to the unsat core determined by the + SAT solver.
    +
    +
    SCOPE - io.github.cvc5.ProofRule
    +
    +
    Scope (a binder for assumptions) + + \[ + + \inferruleSC{F \mid F_1 \dots F_n}{(F_1 \land \dots \land F_n) + \Rightarrow F}{if $F\neq\bot$} \textrm{ or } \inferruleSC{F \mid F_1 + \dots F_n}{\neg (F_1 \land \dots \land F_n)}{if $F=\bot$} + \] + This rule has a dual purpose with + ASSUME <cvc5.ProofRule.ASSUME>.
    +
    +
    SECANT - io.github.cvc5.Kind
    +
    +
    Secant function.
    +
    +
    second - Variable in class io.github.cvc5.Pair
    +
     
    +
    second - Variable in class io.github.cvc5.Triplet
    +
     
    +
    SELECT - io.github.cvc5.Kind
    +
    +
    Array select.
    +
    +
    SEP_EMP - io.github.cvc5.Kind
    +
    +
    Separation logic empty heap.
    +
    +
    SEP_NIL - io.github.cvc5.Kind
    +
    +
    Separation logic nil.
    +
    +
    SEP_PTO - io.github.cvc5.Kind
    +
    +
    Separation logic points-to relation.
    +
    +
    SEP_STAR - io.github.cvc5.Kind
    +
    +
    Separation logic star.
    +
    +
    SEP_WAND - io.github.cvc5.Kind
    +
    +
    Separation logic magic wand.
    +
    +
    SEQ_AT - io.github.cvc5.Kind
    +
    +
    Sequence element at.
    +
    +
    SEQ_CONCAT - io.github.cvc5.Kind
    +
    +
    Sequence concat.
    +
    +
    SEQ_CONTAINS - io.github.cvc5.Kind
    +
    +
    Sequence contains.
    +
    +
    SEQ_EXTRACT - io.github.cvc5.Kind
    +
    +
    Sequence extract.
    +
    +
    SEQ_INDEXOF - io.github.cvc5.Kind
    +
    +
    Sequence index-of.
    +
    +
    SEQ_LEN_EMPTY - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule seq-len-empty
    +
    +
    SEQ_LEN_REV - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule seq-len-rev
    +
    +
    SEQ_LEN_UNIT - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule seq-len-unit
    +
    +
    SEQ_LENGTH - io.github.cvc5.Kind
    +
    +
    Sequence length.
    +
    +
    SEQ_NTH - io.github.cvc5.Kind
    +
    +
    Sequence nth.
    +
    +
    SEQ_NTH_UNIT - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule seq-nth-unit
    +
    +
    SEQ_PREFIX - io.github.cvc5.Kind
    +
    +
    Sequence prefix-of.
    +
    +
    SEQ_REPLACE - io.github.cvc5.Kind
    +
    +
    Sequence replace.
    +
    +
    SEQ_REPLACE_ALL - io.github.cvc5.Kind
    +
    +
    Sequence replace all.
    +
    +
    SEQ_REV - io.github.cvc5.Kind
    +
    +
    Sequence reverse.
    +
    +
    SEQ_REV_CONCAT - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule seq-rev-concat
    +
    +
    SEQ_REV_REV - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule seq-rev-rev
    +
    +
    SEQ_REV_UNIT - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule seq-rev-unit
    +
    +
    SEQ_SUFFIX - io.github.cvc5.Kind
    +
    +
    Sequence suffix-of.
    +
    +
    SEQ_UNIT - io.github.cvc5.Kind
    +
    +
    Sequence unit.
    +
    +
    SEQ_UPDATE - io.github.cvc5.Kind
    +
    +
    Sequence update.
    +
    +
    SEQUENCE_SORT - io.github.cvc5.SortKind
    +
    +
    A sequence sort, whose argument sort is the element sort of the sequence.
    +
    +
    SET_ALL - io.github.cvc5.Kind
    +
    +
    Set all.
    +
    +
    SET_CARD - io.github.cvc5.Kind
    +
    +
    Set cardinality.
    +
    +
    SET_CHOOSE - io.github.cvc5.Kind
    +
    +
    Set choose.
    +
    +
    SET_COMPLEMENT - io.github.cvc5.Kind
    +
    +
    Set complement with respect to finite universe.
    +
    +
    SET_COMPREHENSION - io.github.cvc5.Kind
    +
    +
    Set comprehension + + + A set comprehension is specified by a variable list \(x_1 ...
    +
    +
    SET_EMPTY - io.github.cvc5.Kind
    +
    +
    Empty set.
    +
    +
    SET_FILTER - io.github.cvc5.Kind
    +
    +
    Set filter.
    +
    +
    SET_FOLD - io.github.cvc5.Kind
    +
    +
    Set fold.
    +
    +
    SET_INSERT - io.github.cvc5.Kind
    +
    +
    The set obtained by inserting elements; + + + Arity: n > 0 + + + 1..n-1: Terms of any Sort (must match the element sort of the given set Term) + + n: Term of set Sort + + + + Create Term of this Kind with: + + + Solver.mkTerm(Kind, Term[]) + + Solver.mkTerm(Op, Term[]) + + + + Create Op of this kind with: + + + Solver.mkOp(Kind, int[]) + +
    +
    +
    SET_INTER - io.github.cvc5.Kind
    +
    +
    Set intersection.
    +
    +
    SET_IS_EMPTY - io.github.cvc5.Kind
    +
    +
    Set is empty tester.
    +
    +
    SET_IS_SINGLETON - io.github.cvc5.Kind
    +
    +
    Set is singleton tester.
    +
    +
    SET_MAP - io.github.cvc5.Kind
    +
    +
    Set map.
    +
    +
    SET_MEMBER - io.github.cvc5.Kind
    +
    +
    Set membership predicate.
    +
    +
    SET_MINUS - io.github.cvc5.Kind
    +
    +
    Set subtraction.
    +
    +
    SET_SINGLETON - io.github.cvc5.Kind
    +
    +
    Singleton set.
    +
    +
    SET_SOME - io.github.cvc5.Kind
    +
    +
    Set some.
    +
    +
    SET_SORT - io.github.cvc5.SortKind
    +
    +
    A set sort, whose argument sort is the element sort of the set.
    +
    +
    SET_SUBSET - io.github.cvc5.Kind
    +
    +
    Subset predicate.
    +
    +
    SET_UNION - io.github.cvc5.Kind
    +
    +
    Set union.
    +
    +
    SET_UNIVERSE - io.github.cvc5.Kind
    +
    +
    Finite universe set.
    +
    +
    setFileInput(InputLanguage, String) - Method in class io.github.cvc5.InputParser
    +
    +
    Set the input for the given file.
    +
    +
    setIncrementalStringInput(InputLanguage, String) - Method in class io.github.cvc5.InputParser
    +
    +
    Set that we will be feeding strings to this parser via + appendIncrementalStringInput below.
    +
    +
    setInfo(String, String) - Method in class io.github.cvc5.Solver
    +
    +
    Set info.
    +
    +
    setLogic(String) - Method in class io.github.cvc5.Solver
    +
    +
    Set logic.
    +
    +
    setOption(String, String) - Method in class io.github.cvc5.Solver
    +
    +
    Set option.
    +
    +
    SETS_CARD_EMP - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule sets-card-emp
    +
    +
    SETS_CARD_MINUS - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule sets-card-minus
    +
    +
    SETS_CARD_SINGLETON - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule sets-card-singleton
    +
    +
    SETS_CARD_UNION - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule sets-card-union
    +
    +
    SETS_CHOOSE - io.github.cvc5.SkolemId
    +
    +
    An interpreted function for set.choose operator, where (set.choose A) + is expanded to (uf A) along with the inference + (set.member (uf A) A)) when A is non-empty, + where uf: (-> (Set E) E) is this skolem function, and E is the type of + elements of A.
    +
    +
    SETS_CHOOSE_SINGLETON - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule sets-choose-singleton
    +
    +
    SETS_DEQ_DIFF - io.github.cvc5.SkolemId
    +
    +
    The set diff skolem, which is the witness k for the inference + (=> (not (= A B)) (not (= (set.member k A) (set.member k B)))).
    +
    +
    SETS_EQ_SINGLETON_EMP - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule sets-eq-singleton-emp
    +
    +
    SETS_EXT - io.github.cvc5.ProofRule
    +
    +
    Sets – Sets extensionality + + \[ + + \inferrule{a \neq b\mid -} + {\mathit{set.member}(k,a)\neq\mathit{set.member}(k,b)} + \] + where \(k\) is the \(\texttt{SETS_DEQ_DIFF}\) skolem for `(a, b)`.
    +
    +
    SETS_FILTER_DOWN - io.github.cvc5.ProofRule
    +
    +
    Sets – Sets filter down + + \[ + + \inferrule{\mathit{set.member}(x,\mathit{set.filter}(P, a))\mid -} + {\mathit{set.member}(x,a) \wedge P(x)} + \]
    +
    +
    SETS_FILTER_UP - io.github.cvc5.ProofRule
    +
    +
    Sets – Sets filter up + + \[ + + \inferrule{\mathit{set.member}(x,a)\mid P} + {\mathit{set.member}(x, \mathit{set.filter}(P, a)) = P(x)} + \]
    +
    +
    SETS_FOLD_CARD - io.github.cvc5.SkolemId
    +
    +
    An uninterpreted function for set.fold operator: + To compute (set.fold f t A), we need to guess the cardinality n of + set A using a skolem function with SETS_FOLD_CARD id.
    +
    +
    SETS_FOLD_COMBINE - io.github.cvc5.SkolemId
    +
    +
    An uninterpreted function for set.fold operator: + To compute (set.fold f t A), we need a function that + accumulates intermidiate values.
    +
    +
    SETS_FOLD_ELEMENTS - io.github.cvc5.SkolemId
    +
    +
    An uninterpreted function for set.fold operator: + To compute (set.fold f t A), we need a function for + elements of A.
    +
    +
    SETS_FOLD_UNION - io.github.cvc5.SkolemId
    +
    +
    An uninterpreted function for set.fold operator: + To compute (set.fold f t A), we need a function for + elements of A which is given by elements defined in + SETS_FOLD_ELEMENTS.
    +
    +
    SETS_INSERT_ELIM - io.github.cvc5.ProofRewriteRule
    +
    +
    Sets – sets insert elimination + + \[ + \mathit{sets.insert}(t_1, \ldots, t_n, S) = \texttt{set.union}(\texttt{sets.singleton}(t_1), \ldots, \texttt{sets.singleton}(t_n), S) + \]
    +
    +
    SETS_INTER_COMM - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule sets-inter-comm
    +
    +
    SETS_INTER_EMP1 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule sets-inter-emp1
    +
    +
    SETS_INTER_EMP2 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule sets-inter-emp2
    +
    +
    SETS_INTER_MEMBER - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule sets-inter-member
    +
    +
    SETS_IS_EMPTY_ELIM - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule sets-is-empty-elim
    +
    +
    SETS_IS_EMPTY_EVAL - io.github.cvc5.ProofRewriteRule
    +
    +
    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_MAP_DOWN_ELEMENT - io.github.cvc5.SkolemId
    +
    +
    A skolem variable that is unique per terms (set.map f A), y which is an + element in (set.map f A).
    +
    +
    SETS_MEMBER_EMP - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule sets-member-emp
    +
    +
    SETS_MEMBER_SINGLETON - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule sets-member-singleton
    +
    +
    SETS_MINUS_EMP1 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule sets-minus-emp1
    +
    +
    SETS_MINUS_EMP2 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule sets-minus-emp2
    +
    +
    SETS_MINUS_MEMBER - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule sets-minus-member
    +
    +
    SETS_MINUS_SELF - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule sets-minus-self
    +
    +
    SETS_SINGLETON_INJ - io.github.cvc5.ProofRule
    +
    +
    Sets – Singleton injectivity + + \[ + + \inferrule{\mathit{set.singleton}(t) = \mathit{set.singleton}(s)\mid -}{t=s} + \]
    +
    +
    SETS_SUBSET_ELIM - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule sets-subset-elim
    +
    +
    SETS_UNION_COMM - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule sets-union-comm
    +
    +
    SETS_UNION_EMP1 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule sets-union-emp1
    +
    +
    SETS_UNION_EMP2 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule sets-union-emp2
    +
    +
    SETS_UNION_MEMBER - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule sets-union-member
    +
    +
    setStringInput(InputLanguage, String, String) - Method in class io.github.cvc5.InputParser
    +
    +
    Set the input to the given concrete input string.
    +
    +
    SEXPR - io.github.cvc5.Kind
    +
    +
    Symbolic expression.
    +
    +
    SHARED_SELECTOR - io.github.cvc5.SkolemId
    +
    +
    A shared datatype selector, see Reynolds et.
    +
    +
    simplify(Term) - Method in class io.github.cvc5.Solver
    +
    +
    Simplify a term or formula based on rewriting.
    +
    +
    simplify(Term, boolean) - Method in class io.github.cvc5.Solver
    +
    +
    Simplify a term or formula based on rewriting and (optionally) applying + substitutions for solved variables.
    +
    +
    SINE - io.github.cvc5.Kind
    +
    +
    Sine function.
    +
    +
    SKOLEM - io.github.cvc5.Kind
    +
    +
    A Skolem.
    +
    +
    SKOLEM_ADD_TO_POOL - io.github.cvc5.Kind
    +
    +
    A skolemization-add-to-pool annotation.
    +
    +
    SKOLEM_INTRO - io.github.cvc5.ProofRule
    +
    +
    Quantifiers – Skolem introduction + + \[ + + \inferrule{-\mid k}{k = t} + \] + where \(t\) is the unpurified form of skolem \(k\).
    +
    +
    SkolemId - Enum in io.github.cvc5
    +
     
    +
    SKOLEMIZE - io.github.cvc5.ProofRule
    +
    +
    Quantifiers – Skolemization + + \[ + + \inferrule{\neg (\forall x_1\dots x_n.\> F)\mid -}{\neg F\sigma} + \] + where \(\sigma\) maps \(x_1,\dots,x_n\) to their representative + skolems, which are skolems \(k_1,\dots,k_n\).
    +
    +
    SMT_LIB_2_6 - io.github.cvc5.modes.InputLanguage
    +
    +
    The SMT-LIB version 2.6 language
    +
    +
    SOLVABLE - io.github.cvc5.modes.LearnedLitType
    +
    +
    An internal literal that is solvable for an input variable.
    +
    +
    Solver - Class in io.github.cvc5
    +
    +
    A cvc5 solver.
    +
    +
    Solver() - Constructor for class io.github.cvc5.Solver
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + Solver(TermManager). + It will be removed in a future release.
    +
    +
    +
    Solver(TermManager) - Constructor for class io.github.cvc5.Solver
    +
    +
    Create solver instance.
    +
    +
    Sort - Class in io.github.cvc5
    +
    +
    The sort of a cvc5 term.
    +
    +
    Sort() - Constructor for class io.github.cvc5.Sort
    +
    +
    Null sort
    +
    +
    SortKind - Enum in io.github.cvc5
    +
     
    +
    SPLIT - io.github.cvc5.ProofRule
    +
    +
    Boolean – Split + + \[ + \inferrule{- \mid F}{F \lor \neg F} + \]
    +
    +
    SQRT - io.github.cvc5.Kind
    +
    +
    Square root.
    +
    +
    Stat - Class in io.github.cvc5
    +
    +
    Represents a snapshot of a single statistic value.
    +
    +
    Statistics - Class in io.github.cvc5
    +
     
    +
    Statistics.ConstIterator - Class in io.github.cvc5
    +
     
    +
    STORE - io.github.cvc5.Kind
    +
    +
    Array store.
    +
    +
    STR_AT_ELIM - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-at-elim
    +
    +
    STR_CONCAT_CLASH - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-concat-clash
    +
    +
    STR_CONCAT_CLASH_CHAR - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-concat-clash-char
    +
    +
    STR_CONCAT_CLASH_CHAR_REV - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-concat-clash-char-rev
    +
    +
    STR_CONCAT_CLASH_REV - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-concat-clash-rev
    +
    +
    STR_CONCAT_CLASH2 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-concat-clash2
    +
    +
    STR_CONCAT_CLASH2_REV - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-concat-clash2-rev
    +
    +
    STR_CONCAT_FLATTEN - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-concat-flatten
    +
    +
    STR_CONCAT_FLATTEN_EQ - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-concat-flatten-eq
    +
    +
    STR_CONCAT_FLATTEN_EQ_REV - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-concat-flatten-eq-rev
    +
    +
    STR_CONCAT_UNIFY - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-concat-unify
    +
    +
    STR_CONCAT_UNIFY_BASE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-concat-unify-base
    +
    +
    STR_CONCAT_UNIFY_BASE_REV - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-concat-unify-base-rev
    +
    +
    STR_CONCAT_UNIFY_REV - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-concat-unify-rev
    +
    +
    STR_CONTAINS_CONCAT_FIND - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-contains-concat-find
    +
    +
    STR_CONTAINS_EMP - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-contains-emp
    +
    +
    STR_CONTAINS_IS_EMP - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-contains-is-emp
    +
    +
    STR_CONTAINS_LEQ_LEN_EQ - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-contains-leq-len-eq
    +
    +
    STR_CONTAINS_LT_LEN - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-contains-lt-len
    +
    +
    STR_CONTAINS_REFL - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-contains-refl
    +
    +
    STR_CONTAINS_SPLIT_CHAR - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-contains-split-char
    +
    +
    STR_EQ_CTN_FALSE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-eq-ctn-false
    +
    +
    STR_EQ_CTN_FULL_FALSE1 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-eq-ctn-full-false1
    +
    +
    STR_EQ_CTN_FULL_FALSE2 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-eq-ctn-full-false2
    +
    +
    STR_IN_RE_CONCAT_STAR_CHAR - io.github.cvc5.ProofRewriteRule
    +
    +
    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_CONSUME - io.github.cvc5.ProofRewriteRule
    +
    +
    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_CONTAINS - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-in-re-contains
    +
    +
    STR_IN_RE_EVAL - io.github.cvc5.ProofRewriteRule
    +
    +
    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_INTER_ELIM - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-in-re-inter-elim
    +
    +
    STR_IN_RE_RANGE_ELIM - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-in-re-range-elim
    +
    +
    STR_IN_RE_REQ_UNFOLD - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-in-re-req-unfold
    +
    +
    STR_IN_RE_REQ_UNFOLD_REV - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-in-re-req-unfold-rev
    +
    +
    STR_IN_RE_SIGMA - io.github.cvc5.ProofRewriteRule
    +
    +
    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_STAR - io.github.cvc5.ProofRewriteRule
    +
    +
    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_SKIP_UNFOLD - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-in-re-skip-unfold
    +
    +
    STR_IN_RE_SKIP_UNFOLD_REV - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-in-re-skip-unfold-rev
    +
    +
    STR_IN_RE_STRIP_CHAR - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-in-re-strip-char
    +
    +
    STR_IN_RE_STRIP_CHAR_REV - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-in-re-strip-char-rev
    +
    +
    STR_IN_RE_STRIP_CHAR_S_SINGLE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-in-re-strip-char-s-single
    +
    +
    STR_IN_RE_STRIP_CHAR_S_SINGLE_REV - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-in-re-strip-char-s-single-rev
    +
    +
    STR_IN_RE_STRIP_PREFIX - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-in-re-strip-prefix
    +
    +
    STR_IN_RE_STRIP_PREFIX_BASE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-in-re-strip-prefix-base
    +
    +
    STR_IN_RE_STRIP_PREFIX_BASE_NEG - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-in-re-strip-prefix-base-neg
    +
    +
    STR_IN_RE_STRIP_PREFIX_BASE_NEG_REV - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-in-re-strip-prefix-base-neg-rev
    +
    +
    STR_IN_RE_STRIP_PREFIX_BASE_REV - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-in-re-strip-prefix-base-rev
    +
    +
    STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-in-re-strip-prefix-base-s-single
    +
    +
    STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-in-re-strip-prefix-base-s-single-neg
    +
    +
    STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG_REV - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-in-re-strip-prefix-base-s-single-neg-rev
    +
    +
    STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_REV - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-in-re-strip-prefix-base-s-single-rev
    +
    +
    STR_IN_RE_STRIP_PREFIX_NEG - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-in-re-strip-prefix-neg
    +
    +
    STR_IN_RE_STRIP_PREFIX_NEG_REV - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-in-re-strip-prefix-neg-rev
    +
    +
    STR_IN_RE_STRIP_PREFIX_REV - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-in-re-strip-prefix-rev
    +
    +
    STR_IN_RE_STRIP_PREFIX_S_SINGLE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-in-re-strip-prefix-s-single
    +
    +
    STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-in-re-strip-prefix-s-single-neg
    +
    +
    STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG_REV - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-in-re-strip-prefix-s-single-neg-rev
    +
    +
    STR_IN_RE_STRIP_PREFIX_S_SINGLE_REV - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-in-re-strip-prefix-s-single-rev
    +
    +
    STR_IN_RE_STRIP_PREFIX_SR_SINGLE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-in-re-strip-prefix-sr-single
    +
    +
    STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-in-re-strip-prefix-sr-single-neg
    +
    +
    STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG_REV - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-in-re-strip-prefix-sr-single-neg-rev
    +
    +
    STR_IN_RE_STRIP_PREFIX_SR_SINGLE_REV - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-in-re-strip-prefix-sr-single-rev
    +
    +
    STR_IN_RE_STRIP_PREFIX_SRS_SINGLE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-in-re-strip-prefix-srs-single
    +
    +
    STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-in-re-strip-prefix-srs-single-neg
    +
    +
    STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG_REV - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-in-re-strip-prefix-srs-single-neg-rev
    +
    +
    STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_REV - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-in-re-strip-prefix-srs-single-rev
    +
    +
    STR_IN_RE_TEST_UNFOLD - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-in-re-test-unfold
    +
    +
    STR_IN_RE_TEST_UNFOLD_REV - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-in-re-test-unfold-rev
    +
    +
    STR_IN_RE_UNION_ELIM - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-in-re-union-elim
    +
    +
    STR_INDEXOF_CONTAINS_PRE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-indexof-contains-pre
    +
    +
    STR_INDEXOF_NO_CONTAINS - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-indexof-no-contains
    +
    +
    STR_INDEXOF_RE_NONE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-indexof-re-none
    +
    +
    STR_INDEXOF_SELF - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-indexof-self
    +
    +
    STR_LEN_CONCAT_REC - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-len-concat-rec
    +
    +
    STR_LEN_REPLACE_INV - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-len-replace-inv
    +
    +
    STR_LEN_SUBSTR_IN_RANGE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-len-substr-in-range
    +
    +
    STR_LEN_SUBSTR_UB1 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-len-substr-ub1
    +
    +
    STR_LEN_SUBSTR_UB2 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-len-substr-ub2
    +
    +
    STR_LEN_UPDATE_INV - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-len-update-inv
    +
    +
    STR_LEQ_CONCAT_FALSE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-leq-concat-false
    +
    +
    STR_LEQ_CONCAT_TRUE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-leq-concat-true
    +
    +
    STR_LEQ_EMPTY - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-leq-empty
    +
    +
    STR_LEQ_EMPTY_EQ - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-leq-empty-eq
    +
    +
    STR_LT_ELIM - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-lt-elim
    +
    +
    STR_PREFIXOF_ELIM - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-prefixof-elim
    +
    +
    STR_PREFIXOF_ONE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-prefixof-one
    +
    +
    STR_REPLACE_ALL_NO_CONTAINS - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-replace-all-no-contains
    +
    +
    STR_REPLACE_CONTAINS_PRE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-replace-contains-pre
    +
    +
    STR_REPLACE_EMPTY - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-replace-empty
    +
    +
    STR_REPLACE_NO_CONTAINS - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-replace-no-contains
    +
    +
    STR_REPLACE_PREFIX - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-replace-prefix
    +
    +
    STR_REPLACE_RE_ALL_NONE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-replace-re-all-none
    +
    +
    STR_REPLACE_RE_NONE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-replace-re-none
    +
    +
    STR_REPLACE_SELF - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-replace-self
    +
    +
    STR_SUBSTR_COMBINE1 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-substr-combine1
    +
    +
    STR_SUBSTR_COMBINE2 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-substr-combine2
    +
    +
    STR_SUBSTR_COMBINE3 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-substr-combine3
    +
    +
    STR_SUBSTR_COMBINE4 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-substr-combine4
    +
    +
    STR_SUBSTR_CONCAT1 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-substr-concat1
    +
    +
    STR_SUBSTR_CONCAT2 - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-substr-concat2
    +
    +
    STR_SUBSTR_EMPTY_RANGE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-substr-empty-range
    +
    +
    STR_SUBSTR_EMPTY_START - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-substr-empty-start
    +
    +
    STR_SUBSTR_EMPTY_START_NEG - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-substr-empty-start-neg
    +
    +
    STR_SUBSTR_EMPTY_STR - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-substr-empty-str
    +
    +
    STR_SUBSTR_EQ_EMPTY - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-substr-eq-empty
    +
    +
    STR_SUBSTR_FULL - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-substr-full
    +
    +
    STR_SUBSTR_FULL_EQ - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-substr-full-eq
    +
    +
    STR_SUBSTR_LEN_INCLUDE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-substr-len-include
    +
    +
    STR_SUBSTR_LEN_INCLUDE_PRE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-substr-len-include-pre
    +
    +
    STR_SUBSTR_LEN_SKIP - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-substr-len-skip
    +
    +
    STR_SUFFIXOF_ELIM - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-suffixof-elim
    +
    +
    STR_SUFFIXOF_ONE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-suffixof-one
    +
    +
    STR_TO_INT_CONCAT_NEG_ONE - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-to-int-concat-neg-one
    +
    +
    STR_TO_LOWER_CONCAT - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-to-lower-concat
    +
    +
    STR_TO_LOWER_FROM_INT - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-to-lower-from-int
    +
    +
    STR_TO_LOWER_LEN - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-to-lower-len
    +
    +
    STR_TO_LOWER_UPPER - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-to-lower-upper
    +
    +
    STR_TO_UPPER_CONCAT - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-to-upper-concat
    +
    +
    STR_TO_UPPER_FROM_INT - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-to-upper-from-int
    +
    +
    STR_TO_UPPER_LEN - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-to-upper-len
    +
    +
    STR_TO_UPPER_LOWER - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule str-to-upper-lower
    +
    +
    STRING_CHARAT - io.github.cvc5.Kind
    +
    +
    String character at.
    +
    +
    STRING_CODE_INJ - io.github.cvc5.ProofRule
    +
    +
    Strings – Code points + + \[ + + \inferrule{-\mid t,s}{\mathit{to\_code}(t) = -1 \vee \mathit{to\_code}(t) \neq + \mathit{to\_code}(s) \vee t = s} + \]
    +
    +
    STRING_CONCAT - io.github.cvc5.Kind
    +
    +
    String concat.
    +
    +
    STRING_CONTAINS - io.github.cvc5.Kind
    +
    +
    String contains.
    +
    +
    STRING_DECOMPOSE - io.github.cvc5.ProofRule
    +
    +
    Strings – Core rules – String decomposition + + \[ + + \inferrule{\mathit{len}(t) \geq n\mid \bot}{t = w_1\cdot w_2 \wedge + \mathit{len}(w_1) = n} + \] + where \(w_1\) is the purification skolem for \(\mathit{pre}(t,n)\) + and \(w_2\) is the purification skolem for \(\mathit{suf}(t,n)\).
    +
    +
    STRING_EAGER_REDUCTION - io.github.cvc5.ProofRule
    +
    +
    Strings – Extended functions – Eager reduction + + \[ + + \inferrule{-\mid t}{R} + \] + where \(R\) is \(\texttt{TermRegistry::eagerReduce}(t)\).
    +
    +
    STRING_EXT - io.github.cvc5.ProofRule
    +
    +
    Strings – Extensionality + + \[ + + \inferrule{s \neq t\mid -} + {\mathit{seq.len}(s) \neq \mathit{seq.len}(t) \vee (\mathit{seq.nth}(s,k)\neq\mathit{set.nth}(t,k) \wedge 0 \leq k \wedge k < \mathit{seq.len}(s))} + \] + where \(s,t\) are terms of sequence type, \(k\) is the + \(\texttt{STRINGS_DEQ_DIFF}\) skolem for \(s,t\).
    +
    +
    STRING_FROM_CODE - io.github.cvc5.Kind
    +
    +
    String from code.
    +
    +
    STRING_FROM_INT - io.github.cvc5.Kind
    +
    +
    Conversion from Int to String.
    +
    +
    STRING_IN_REGEXP - io.github.cvc5.Kind
    +
    +
    String membership.
    +
    +
    STRING_INDEXOF - io.github.cvc5.Kind
    +
    +
    String index-of.
    +
    +
    STRING_INDEXOF_RE - io.github.cvc5.Kind
    +
    +
    String index-of regular expression match.
    +
    +
    STRING_IS_DIGIT - io.github.cvc5.Kind
    +
    +
    String is-digit.
    +
    +
    STRING_LENGTH - io.github.cvc5.Kind
    +
    +
    String length.
    +
    +
    STRING_LENGTH_NON_EMPTY - io.github.cvc5.ProofRule
    +
    +
    Strings – Core rules – Length non-empty + + \[ + + \inferrule{t\neq \epsilon\mid -}{\mathit{len}(t) \neq 0} + \]
    +
    +
    STRING_LENGTH_POS - io.github.cvc5.ProofRule
    +
    +
    Strings – Core rules – Length positive + + \[ + + \inferrule{-\mid t}{(\mathit{len}(t) = 0\wedge t= \epsilon)\vee \mathit{len}(t) + > 0} + \]
    +
    +
    STRING_LEQ - io.github.cvc5.Kind
    +
    +
    String less than or equal.
    +
    +
    STRING_LT - io.github.cvc5.Kind
    +
    +
    String less than.
    +
    +
    STRING_PREFIX - io.github.cvc5.Kind
    +
    +
    String prefix-of.
    +
    +
    STRING_REDUCTION - io.github.cvc5.ProofRule
    +
    +
    Strings – Extended functions – Reduction + + \[ + + \inferrule{-\mid t}{R\wedge t = w} + \] + where \(w\) is \(\texttt{StringsPreprocess::reduce}(t, R, + \dots)\).
    +
    +
    STRING_REPLACE - io.github.cvc5.Kind
    +
    +
    String replace.
    +
    +
    STRING_REPLACE_ALL - io.github.cvc5.Kind
    +
    +
    String replace all.
    +
    +
    STRING_REPLACE_RE - io.github.cvc5.Kind
    +
    +
    String replace regular expression match.
    +
    +
    STRING_REPLACE_RE_ALL - io.github.cvc5.Kind
    +
    +
    String replace all regular expression matches.
    +
    +
    STRING_REV - io.github.cvc5.Kind
    +
    +
    String reverse.
    +
    +
    STRING_SEQ_UNIT_INJ - io.github.cvc5.ProofRule
    +
    +
    Strings – Sequence unit + + \[ + + \inferrule{\mathit{unit}(x) = \mathit{unit}(y)\mid -}{x = y} + \] + Also applies to the case where \(\mathit{unit}(y)\) is a constant + sequence of length one.
    +
    +
    STRING_SORT - io.github.cvc5.SortKind
    +
    +
    The string sort.
    +
    +
    STRING_SUBSTR - io.github.cvc5.Kind
    +
    +
    String substring.
    +
    +
    STRING_SUFFIX - io.github.cvc5.Kind
    +
    +
    String suffix-of.
    +
    +
    STRING_TO_CODE - io.github.cvc5.Kind
    +
    +
    String to code.
    +
    +
    STRING_TO_INT - io.github.cvc5.Kind
    +
    +
    String to integer (total function).
    +
    +
    STRING_TO_LOWER - io.github.cvc5.Kind
    +
    +
    String to lower case.
    +
    +
    STRING_TO_REGEXP - io.github.cvc5.Kind
    +
    +
    Conversion from string to regexp.
    +
    +
    STRING_TO_UPPER - io.github.cvc5.Kind
    +
    +
    String to upper case.
    +
    +
    STRING_UPDATE - io.github.cvc5.Kind
    +
    +
    String update.
    +
    +
    STRINGS_DEQ_DIFF - io.github.cvc5.SkolemId
    +
    +
    Difference index for string disequalities, such that k is the witness for + the inference + (=> (not (= a b)) (not (= (substr a k 1) (substr b k 1)))) + where note that `k` may be out of bounds for at most of a,b.
    +
    +
    STRINGS_ITOS_RESULT - io.github.cvc5.SkolemId
    +
    +
    A function used to define intermediate results of str.from_int + applications.
    +
    +
    STRINGS_NUM_OCCUR - io.github.cvc5.SkolemId
    +
    +
    An integer corresponding to the number of times a string occurs in another + string.
    +
    +
    STRINGS_NUM_OCCUR_RE - io.github.cvc5.SkolemId
    +
    +
    Analogous to STRINGS_NUM_OCCUR, but for regular expressions.
    +
    +
    STRINGS_OCCUR_INDEX - io.github.cvc5.SkolemId
    +
    +
    A function k such that for x = 0...n, (k x) is the end + index of the x^th occurrence of a string b in string a, where n is the + number of occurrences of b in a, and (= (k 0) 0).
    +
    +
    STRINGS_OCCUR_INDEX_RE - io.github.cvc5.SkolemId
    +
    +
    Analogous to STRINGS_OCCUR_INDEX, but for regular expressions.
    +
    +
    STRINGS_OCCUR_LEN_RE - io.github.cvc5.SkolemId
    +
    +
    A function k where for x = 0...n, (k x) is the length of + the x^th occurrence of R in a (excluding matches of empty strings) where R + is a regular expression, n is the number of occurrences of R in a, and + (= (k 0) 0).
    +
    +
    STRINGS_REPLACE_ALL_RESULT - io.github.cvc5.SkolemId
    +
    +
    A function used to define intermediate results of str.replace_all and + str.replace_re_all applications.
    +
    +
    STRINGS_STOI_NON_DIGIT - io.github.cvc5.SkolemId
    +
    +
    A position containing a non-digit in a string, used when (str.to_int a) + is equal to -1.
    +
    +
    STRINGS_STOI_RESULT - io.github.cvc5.SkolemId
    +
    +
    A function used to define intermediate results of str.from_int + applications.
    +
    +
    stringValue() - Method in class io.github.cvc5.OptionInfo
    +
    +
    Obtain the current value as a string.
    +
    +
    SUB - io.github.cvc5.Kind
    +
    +
    Arithmetic subtraction, left associative.
    +
    +
    SUBS - io.github.cvc5.ProofRule
    +
    +
    Builtin theory – Substitution + + \[ + + \inferrule{F_1 \dots F_n \mid t, ids?}{t = t \circ \sigma_{ids}(F_n) + \circ \cdots \circ \sigma_{ids}(F_1)} + \] + where \(\sigma_{ids}(F_i)\) are substitutions, which notice are applied + in reverse order.
    +
    +
    substitute(Sort[], Sort[]) - Method in class io.github.cvc5.Sort
    +
    +
    Simultaneous substitution of Sorts.
    +
    +
    substitute(Sort, Sort) - Method in class io.github.cvc5.Sort
    +
    +
    Substitution of Sorts.
    +
    +
    substitute(Term[], Term[]) - Method in class io.github.cvc5.Term
    +
    +
    Simultaneously replace terms with replacements in this + term.
    +
    +
    substitute(Term, Term) - Method in class io.github.cvc5.Term
    +
    +
    Replace term with replacement in this term.
    +
    +
    SYGUS_2_1 - io.github.cvc5.modes.InputLanguage
    +
    +
    The SyGuS version 2.1 language.
    +
    +
    SymbolManager - Class in io.github.cvc5
    +
     
    +
    SymbolManager(Solver) - Constructor for class io.github.cvc5.SymbolManager
    +
    +
    Deprecated. +
    This function is deprecated and replaced by + Solver(TermManager). + It will be removed in a future release.
    +
    +
    +
    SymbolManager(TermManager) - Constructor for class io.github.cvc5.SymbolManager
    +
    +
    Create symbol manager instance.
    +
    +
    SYMM - io.github.cvc5.ProofRule
    +
    +
    Equality – Symmetry + + \[ + + \inferrule{t_1 = t_2\mid -}{t_2 = t_1} + \] + or + + \[ + + \inferrule{t_1 \neq t_2\mid -}{t_2 \neq t_1} + \]
    +
    +
    synthFun(String, Term[], Sort) - Method in class io.github.cvc5.Solver
    +
    +
    Synthesize n-ary function.
    +
    +
    synthFun(String, Term[], Sort, Grammar) - Method in class io.github.cvc5.Solver
    +
    +
    Synthesize n-ary function following specified syntactic constraints.
    +
    +
    SynthResult - Class in io.github.cvc5
    +
    +
    Encapsulation of a solver synth result.
    +
    +
    SynthResult() - Constructor for class io.github.cvc5.SynthResult
    +
    +
    Null synthResult
    +
    +
    + + + +

    T

    +
    +
    TABLE_AGGREGATE - io.github.cvc5.Kind
    +
    +
    Table aggregate operator has the form + \(((\_ \; table.aggr \; n_1 ...
    +
    +
    TABLE_GROUP - io.github.cvc5.Kind
    +
    +
    Table group + + + \(((\_ \; table.group \; n_1 \; \dots \; n_k) \; A)\) partitions tuples + of table \(A\) such that tuples that have the same projection + with indices \(n_1 \; \dots \; n_k\) are in the same part.
    +
    +
    TABLE_JOIN - io.github.cvc5.Kind
    +
    +
    Table join operator has the form + \(((\_ \; table.join \; m_1 \; n_1 \; \dots \; m_k \; n_k) \; A \; B)\) + where \(m_1 \; n_1 \; \dots \; m_k \; n_k\) are natural numbers, + and \(A, B\) are tables.
    +
    +
    TABLE_PRODUCT - io.github.cvc5.Kind
    +
    +
    Table cross product.
    +
    +
    TABLE_PROJECT - io.github.cvc5.Kind
    +
    +
    Table projection operator extends tuple projection operator to tables.
    +
    +
    TABLES_GROUP_PART - io.github.cvc5.SkolemId
    +
    +
    Given a group term ((_ table.group n1 ... nk) A) of type + (Bag (Table T)), this skolem maps elements of A to their parts in the + resulting partition.
    +
    +
    TABLES_GROUP_PART_ELEMENT - io.github.cvc5.SkolemId
    +
    +
    Given a group term ((_ table.group n1 ... nk) A) of type + (Bag (Table T)) and a part B of type (Table T), this function + returns a skolem element that is a member of B if B is not empty.
    +
    +
    TANGENT - io.github.cvc5.Kind
    +
    +
    Tangent function.
    +
    +
    Term - Class in io.github.cvc5
    +
    +
    A cvc5 Term.
    +
    +
    Term() - Constructor for class io.github.cvc5.Term
    +
    +
    Null term
    +
    +
    Term.ConstIterator - Class in io.github.cvc5
    +
     
    +
    termManager - Variable in class io.github.cvc5.AbstractPlugin
    +
     
    +
    TermManager - Class in io.github.cvc5
    +
    +
    A cvc5 term manager.
    +
    +
    TermManager() - Constructor for class io.github.cvc5.TermManager
    +
    +
    Create a term manager instance.
    +
    +
    THEORY_LEMMAS - io.github.cvc5.modes.ProofComponent
    +
    +
    Proofs of L1 ...
    +
    +
    THEORY_REWRITE - io.github.cvc5.ProofRule
    +
    +
    Other theory rewrite rules + + \[ + \inferrule{- \mid id, t = t'}{t = t'} + \] + where `id` is the ProofRewriteRule of the theory rewrite + rule which transforms \(t\) to \(t'\).
    +
    +
    third - Variable in class io.github.cvc5.Triplet
    +
     
    +
    TIMEOUT - io.github.cvc5.UnknownExplanation
    +
    +
    Time limit reached.
    +
    +
    TO_INTEGER - io.github.cvc5.Kind
    +
    +
    Convert Term of sort Int or Real to Int via the floor function.
    +
    +
    TO_REAL - io.github.cvc5.Kind
    +
    +
    Convert Term of Sort Int or Real to Real.
    +
    +
    toString() - Method in class io.github.cvc5.OptionInfo
    +
     
    +
    toString(long) - Method in class io.github.cvc5.Command
    +
     
    +
    toString(long) - Method in class io.github.cvc5.Datatype
    +
     
    +
    toString(long) - Method in class io.github.cvc5.DatatypeConstructor
    +
     
    +
    toString(long) - Method in class io.github.cvc5.DatatypeConstructorDecl
    +
     
    +
    toString(long) - Method in class io.github.cvc5.DatatypeDecl
    +
     
    +
    toString(long) - Method in class io.github.cvc5.DatatypeSelector
    +
     
    +
    toString(long) - Method in class io.github.cvc5.Grammar
    +
     
    +
    toString(long) - Method in class io.github.cvc5.InputParser
    +
     
    +
    toString(long) - Method in class io.github.cvc5.Op
    +
     
    +
    toString(long) - Method in class io.github.cvc5.OptionInfo
    +
     
    +
    toString(long) - Method in class io.github.cvc5.Result
    +
     
    +
    toString(long) - Method in class io.github.cvc5.Solver
    +
     
    +
    toString(long) - Method in class io.github.cvc5.Sort
    +
     
    +
    toString(long) - Method in class io.github.cvc5.Stat
    +
     
    +
    toString(long) - Method in class io.github.cvc5.Statistics
    +
     
    +
    toString(long) - Method in class io.github.cvc5.SymbolManager
    +
     
    +
    toString(long) - Method in class io.github.cvc5.SynthResult
    +
     
    +
    toString(long) - Method in class io.github.cvc5.Term
    +
     
    +
    toString(long) - Method in class io.github.cvc5.TermManager
    +
     
    +
    TRANS - io.github.cvc5.ProofRule
    +
    +
    Equality – Transitivity + + \[ + + \inferrule{t_1=t_2,\dots,t_{n-1}=t_n\mid -}{t_1 = t_n} + \]
    +
    +
    TRANSCENDENTAL_PURIFY - io.github.cvc5.SkolemId
    +
    +
    A function introduced to eliminate extended trancendental functions.
    +
    +
    TRANSCENDENTAL_PURIFY_ARG - io.github.cvc5.SkolemId
    +
    +
    Argument used to purify trancendental function app (f x).
    +
    +
    TRANSCENDENTAL_SINE_PHASE_SHIFT - io.github.cvc5.SkolemId
    +
    +
    Argument used to reason about the phase shift of arguments to sine.
    +
    +
    transferTo(InputStream, FileOutputStream) - Static method in class io.github.cvc5.Utils
    +
    +
    Transfers all bytes from the provided InputStream to the specified FileOutputStream.
    +
    +
    Triplet<A,​B,​C> - Class in io.github.cvc5
    +
     
    +
    Triplet(A, B, C) - Constructor for class io.github.cvc5.Triplet
    +
     
    +
    TRUE_ELIM - io.github.cvc5.ProofRule
    +
    +
    Equality – True elim + + \[ + + \inferrule{F=\top\mid -}{F} + \]
    +
    +
    TRUE_INTRO - io.github.cvc5.ProofRule
    +
    +
    Equality – True intro + + \[ + + \inferrule{F\mid -}{F = \top} + \]
    +
    +
    TRUST - io.github.cvc5.ProofRule
    +
    +
    Trusted rule + + \[ + \inferrule{F_1 \dots F_n \mid tid, F, ...}{F} + \] + where \(tid\) is an identifier and \(F\) is a formula.
    +
    +
    TRUST_THEORY_REWRITE - io.github.cvc5.ProofRule
    +
    +
    Trusted rules – Theory rewrite + + \[ + \inferrule{- \mid F, tid, rid}{F} + \] + where \(F\) is an equality of the form \(t = t'\) where \(t'\) + is obtained by applying the kind of rewriting given by the method + identifier \(rid\), which is one of: + RW_REWRITE_THEORY_PRE, RW_REWRITE_THEORY_POST, + RW_REWRITE_EQ_EXT.
    +
    +
    TUPLE_PROJECT - io.github.cvc5.Kind
    +
    +
    Tuple projection.
    +
    +
    TUPLE_SORT - io.github.cvc5.SortKind
    +
    +
    A tuple sort, whose argument sorts denote the sorts of the direct children + of the tuple.
    +
    +
    + + + +

    U

    +
    +
    UF_BV2NAT_GEQ_ELIM - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule uf-bv2nat-geq-elim
    +
    +
    UF_BV2NAT_INT2BV - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule uf-bv2nat-int2bv
    +
    +
    UF_BV2NAT_INT2BV_EXTEND - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule uf-bv2nat-int2bv-extend
    +
    +
    UF_BV2NAT_INT2BV_EXTRACT - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule uf-bv2nat-int2bv-extract
    +
    +
    UF_INT2BV_BV2NAT - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule uf-int2bv-bv2nat
    +
    +
    UF_INT2BV_BVULE_EQUIV - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule uf-int2bv-bvule-equiv
    +
    +
    UF_INT2BV_BVULT_EQUIV - io.github.cvc5.ProofRewriteRule
    +
    +
    Auto-generated from RARE rule uf-int2bv-bvult-equiv
    +
    +
    UNDEFINED_KIND - io.github.cvc5.Kind
    +
    +
    Undefined kind.
    +
    +
    UNDEFINED_SORT_KIND - io.github.cvc5.SortKind
    +
    +
    Undefined kind.
    +
    +
    UNINTERPRETED_SORT - io.github.cvc5.SortKind
    +
    +
    An uninterpreted sort.
    +
    +
    UNINTERPRETED_SORT_VALUE - io.github.cvc5.Kind
    +
    +
    The value of an uninterpreted constant.
    +
    +
    UNKNOWN - io.github.cvc5.modes.InputLanguage
    +
    +
    No language given.
    +
    +
    UNKNOWN - io.github.cvc5.modes.LearnedLitType
    +
    +
    Special case for when produce-learned-literals is not set.
    +
    +
    UNKNOWN - io.github.cvc5.ProofRule
    +
    +
    External – Alethe + + Place holder for Alethe rules.
    +
    +
    UNKNOWN_REASON - io.github.cvc5.UnknownExplanation
    +
    +
    No specific reason given.
    +
    +
    UnknownExplanation - Enum in io.github.cvc5
    +
     
    +
    UNSUPPORTED - io.github.cvc5.UnknownExplanation
    +
    +
    Unsupported feature encountered.
    +
    +
    Utils - Class in io.github.cvc5
    +
     
    +
    Utils() - Constructor for class io.github.cvc5.Utils
    +
     
    +
    + + + +

    V

    +
    +
    validateUnsigned(int[], String) - Static method in class io.github.cvc5.Utils
    +
     
    +
    validateUnsigned(int, String) - Static method in class io.github.cvc5.Utils
    +
     
    +
    validateUnsigned(long[], String) - Static method in class io.github.cvc5.Utils
    +
     
    +
    validateUnsigned(long, String) - Static method in class io.github.cvc5.Utils
    +
     
    +
    ValueInfo(T, T) - Constructor for class io.github.cvc5.OptionInfo.ValueInfo
    +
     
    +
    valueOf(String) - Static method in enum io.github.cvc5.Kind
    +
    +
    Returns the enum constant of this type with the specified name.
    +
    +
    valueOf(String) - Static method in enum io.github.cvc5.modes.BlockModelsMode
    +
    +
    Returns the enum constant of this type with the specified name.
    +
    +
    valueOf(String) - Static method in enum io.github.cvc5.modes.FindSynthTarget
    +
    +
    Returns the enum constant of this type with the specified name.
    +
    +
    valueOf(String) - Static method in enum io.github.cvc5.modes.InputLanguage
    +
    +
    Returns the enum constant of this type with the specified name.
    +
    +
    valueOf(String) - Static method in enum io.github.cvc5.modes.LearnedLitType
    +
    +
    Returns the enum constant of this type with the specified name.
    +
    +
    valueOf(String) - Static method in enum io.github.cvc5.modes.ProofComponent
    +
    +
    Returns the enum constant of this type with the specified name.
    +
    +
    valueOf(String) - Static method in enum io.github.cvc5.modes.ProofFormat
    +
    +
    Returns the enum constant of this type with the specified name.
    +
    +
    valueOf(String) - Static method in enum io.github.cvc5.ProofRewriteRule
    +
    +
    Returns the enum constant of this type with the specified name.
    +
    +
    valueOf(String) - Static method in enum io.github.cvc5.ProofRule
    +
    +
    Returns the enum constant of this type with the specified name.
    +
    +
    valueOf(String) - Static method in enum io.github.cvc5.RoundingMode
    +
    +
    Returns the enum constant of this type with the specified name.
    +
    +
    valueOf(String) - Static method in enum io.github.cvc5.SkolemId
    +
    +
    Returns the enum constant of this type with the specified name.
    +
    +
    valueOf(String) - Static method in enum io.github.cvc5.SortKind
    +
    +
    Returns the enum constant of this type with the specified name.
    +
    +
    valueOf(String) - Static method in enum io.github.cvc5.UnknownExplanation
    +
    +
    Returns the enum constant of this type with the specified name.
    +
    +
    values() - Static method in enum io.github.cvc5.Kind
    +
    +
    Returns an array containing the constants of this enum type, in +the order they are declared.
    +
    +
    values() - Static method in enum io.github.cvc5.modes.BlockModelsMode
    +
    +
    Returns an array containing the constants of this enum type, in +the order they are declared.
    +
    +
    values() - Static method in enum io.github.cvc5.modes.FindSynthTarget
    +
    +
    Returns an array containing the constants of this enum type, in +the order they are declared.
    +
    +
    values() - Static method in enum io.github.cvc5.modes.InputLanguage
    +
    +
    Returns an array containing the constants of this enum type, in +the order they are declared.
    +
    +
    values() - Static method in enum io.github.cvc5.modes.LearnedLitType
    +
    +
    Returns an array containing the constants of this enum type, in +the order they are declared.
    +
    +
    values() - Static method in enum io.github.cvc5.modes.ProofComponent
    +
    +
    Returns an array containing the constants of this enum type, in +the order they are declared.
    +
    +
    values() - Static method in enum io.github.cvc5.modes.ProofFormat
    +
    +
    Returns an array containing the constants of this enum type, in +the order they are declared.
    +
    +
    values() - Static method in enum io.github.cvc5.ProofRewriteRule
    +
    +
    Returns an array containing the constants of this enum type, in +the order they are declared.
    +
    +
    values() - Static method in enum io.github.cvc5.ProofRule
    +
    +
    Returns an array containing the constants of this enum type, in +the order they are declared.
    +
    +
    values() - Static method in enum io.github.cvc5.RoundingMode
    +
    +
    Returns an array containing the constants of this enum type, in +the order they are declared.
    +
    +
    values() - Static method in enum io.github.cvc5.SkolemId
    +
    +
    Returns an array containing the constants of this enum type, in +the order they are declared.
    +
    +
    values() - Static method in enum io.github.cvc5.SortKind
    +
    +
    Returns an array containing the constants of this enum type, in +the order they are declared.
    +
    +
    values() - Static method in enum io.github.cvc5.UnknownExplanation
    +
    +
    Returns an array containing the constants of this enum type, in +the order they are declared.
    +
    +
    VALUES - io.github.cvc5.modes.BlockModelsMode
    +
    +
    Block models based on the concrete model values for the free variables.
    +
    +
    VARIABLE - io.github.cvc5.Kind
    +
    +
    (Bound) variable.
    +
    +
    VARIABLE_LIST - io.github.cvc5.Kind
    +
    +
    Variable list.
    +
    +
    VoidInfo() - Constructor for class io.github.cvc5.OptionInfo.VoidInfo
    +
     
    +
    + + + +

    W

    +
    +
    WITNESS - io.github.cvc5.Kind
    +
    +
    Witness.
    +
    +
    + + + +

    X

    +
    +
    XOR - io.github.cvc5.Kind
    +
    +
    Logical exclusive disjunction, left associative.
    +
    +
    XOR_ELIM1 - io.github.cvc5.ProofRule
    +
    +
    Boolean – XOR elimination version 1 + + \[ + \inferrule{F_1 \xor F_2 \mid -}{F_1 \lor F_2} + \]
    +
    +
    XOR_ELIM2 - io.github.cvc5.ProofRule
    +
    +
    Boolean – XOR elimination version 2 + + \[ + \inferrule{F_1 \xor F_2 \mid -}{\neg F_1 \lor \neg F_2} + \]
    +
    +
    xorTerm(Term) - Method in class io.github.cvc5.Term
    +
    +
    Boolean exclusive or.
    +
    +
    +A B C D E F G H I K L M N O P Q R S T U V W X 
    All Classes All Packages
    +
    +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/index.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/index.html new file mode 100644 index 0000000000..4aae1391d7 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/index.html @@ -0,0 +1,163 @@ + + + + + +Overview + + + + + + + + + + + + + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + +
    Packages 
    PackageDescription
    io.github.cvc5 
    io.github.cvc5.modes 
    +
    +
    +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/AbstractPlugin.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/AbstractPlugin.html new file mode 100644 index 0000000000..078bb21164 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/AbstractPlugin.html @@ -0,0 +1,449 @@ + + + + + +AbstractPlugin + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Class AbstractPlugin

    +
    +
    +
      +
    • java.lang.Object
    • +
    • +
        +
      • io.github.cvc5.AbstractPlugin
      • +
      +
    • +
    +
    +
      +
    • +
      +
      public abstract class AbstractPlugin
      +extends java.lang.Object
      +
    • +
    +
    +
    +
      +
    • + +
      + +
      + +
      +
        +
      • + + +

        Constructor Summary

        + + + + + + + + + + +
        Constructors 
        ConstructorDescription
        AbstractPlugin​(TermManager tm) +
        Create plugin instance.
        +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Summary

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        All Methods Instance Methods Abstract Methods Concrete Methods 
        Modifier and TypeMethodDescription
        Term[]check() +
        Call to check, return vector of lemmas to add to the SAT solver.
        +
        abstract java.lang.StringgetName() +
        Get the name of the plugin (for debugging).
        +
        TermManagergetTermManager() +
        Get the associated term manager instance
        +
        voidnotifySatClause​(Term cl) +
        Notify SAT clause, called when cl is a clause learned by the SAT solver.
        +
        voidnotifyTheoryLemma​(Term lem) +
        Notify theory lemma, called when lem is a theory lemma sent by a theory + solver.
        +
        +
          +
        • + + +

          Methods inherited from class java.lang.Object

          +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
      +
    • + +
      + +
      + +
      +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          AbstractPlugin

          +
          public AbstractPlugin​(TermManager tm)
          +
          Create plugin instance.
          +
          +
          Parameters:
          +
          tm - The associated term manager.
          +
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          getTermManager

          +
          public TermManager getTermManager()
          +
          Get the associated term manager instance
          +
          +
          Returns:
          +
          The term manager.
          +
          +
        • +
        + + + +
          +
        • +

          check

          +
          public Term[] check()
          +
          Call to check, return vector of lemmas to add to the SAT solver. + This method is called periodically, roughly at every SAT decision.
          +
          +
          Returns:
          +
          The vector of lemmas to add to the SAT solver.
          +
          +
        • +
        + + + +
          +
        • +

          notifySatClause

          +
          public void notifySatClause​(Term cl)
          +
          Notify SAT clause, called when cl is a clause learned by the SAT solver.
          +
          +
          Parameters:
          +
          cl - The learned clause.
          +
          +
        • +
        + + + +
          +
        • +

          notifyTheoryLemma

          +
          public void notifyTheoryLemma​(Term lem)
          +
          Notify theory lemma, called when lem is a theory lemma sent by a theory + solver.
          +
          +
          Parameters:
          +
          lem - The theory lemma.
          +
          +
        • +
        + + + +
          +
        • +

          getName

          +
          public abstract java.lang.String getName()
          +
          Get the name of the plugin (for debugging).
          +
          +
          Returns:
          +
          The name of the plugin.
          +
          +
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
    + +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/CVC5ApiException.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/CVC5ApiException.html new file mode 100644 index 0000000000..8b24334f14 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/CVC5ApiException.html @@ -0,0 +1,297 @@ + + + + + +CVC5ApiException + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Class CVC5ApiException

    +
    +
    +
      +
    • java.lang.Object
    • +
    • +
        +
      • java.lang.Throwable
      • +
      • +
          +
        • java.lang.Exception
        • +
        • +
            +
          • io.github.cvc5.CVC5ApiException
          • +
          +
        • +
        +
      • +
      +
    • +
    +
    +
      +
    • +
      +
      All Implemented Interfaces:
      +
      java.io.Serializable
      +
      +
      +
      Direct Known Subclasses:
      +
      CVC5ApiRecoverableException
      +
      +
      +
      public class CVC5ApiException
      +extends java.lang.Exception
      +
      +
      See Also:
      +
      Serialized Form
      +
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Constructor Summary

        + + + + + + + + + + +
        Constructors 
        ConstructorDescription
        CVC5ApiException​(java.lang.String message) 
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Summary

        +
          +
        • + + +

          Methods inherited from class java.lang.Throwable

          +addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
        • +
        +
          +
        • + + +

          Methods inherited from class java.lang.Object

          +clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          CVC5ApiException

          +
          public CVC5ApiException​(java.lang.String message)
          +
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
    + +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/CVC5ApiOptionException.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/CVC5ApiOptionException.html new file mode 100644 index 0000000000..db68d62c7c --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/CVC5ApiOptionException.html @@ -0,0 +1,303 @@ + + + + + +CVC5ApiOptionException + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Class CVC5ApiOptionException

    +
    +
    + +
    + +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Constructor Summary

        + + + + + + + + + + +
        Constructors 
        ConstructorDescription
        CVC5ApiOptionException​(java.lang.String message) 
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Summary

        +
          +
        • + + +

          Methods inherited from class java.lang.Throwable

          +addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
        • +
        +
          +
        • + + +

          Methods inherited from class java.lang.Object

          +clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          CVC5ApiOptionException

          +
          public CVC5ApiOptionException​(java.lang.String message)
          +
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
    + +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/CVC5ApiRecoverableException.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/CVC5ApiRecoverableException.html new file mode 100644 index 0000000000..dc46860275 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/CVC5ApiRecoverableException.html @@ -0,0 +1,302 @@ + + + + + +CVC5ApiRecoverableException + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Class CVC5ApiRecoverableException

    +
    +
    +
      +
    • java.lang.Object
    • +
    • + +
    • +
    +
    + +
    +
    +
      +
    • + +
      + +
      + +
      +
        +
      • + + +

        Method Summary

        +
          +
        • + + +

          Methods inherited from class java.lang.Throwable

          +addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
        • +
        +
          +
        • + + +

          Methods inherited from class java.lang.Object

          +clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          CVC5ApiRecoverableException

          +
          public CVC5ApiRecoverableException​(java.lang.String message)
          +
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
    + +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/CVC5ParserException.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/CVC5ParserException.html new file mode 100644 index 0000000000..9f13a57b3c --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/CVC5ParserException.html @@ -0,0 +1,293 @@ + + + + + +CVC5ParserException + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Class CVC5ParserException

    +
    +
    +
      +
    • java.lang.Object
    • +
    • +
        +
      • java.lang.Throwable
      • +
      • +
          +
        • java.lang.Exception
        • +
        • +
            +
          • io.github.cvc5.CVC5ParserException
          • +
          +
        • +
        +
      • +
      +
    • +
    +
    +
      +
    • +
      +
      All Implemented Interfaces:
      +
      java.io.Serializable
      +
      +
      +
      public class CVC5ParserException
      +extends java.lang.Exception
      +
      +
      See Also:
      +
      Serialized Form
      +
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Constructor Summary

        + + + + + + + + + + +
        Constructors 
        ConstructorDescription
        CVC5ParserException​(java.lang.String message) 
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Summary

        +
          +
        • + + +

          Methods inherited from class java.lang.Throwable

          +addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
        • +
        +
          +
        • + + +

          Methods inherited from class java.lang.Object

          +clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          CVC5ParserException

          +
          public CVC5ParserException​(java.lang.String message)
          +
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
    + +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Command.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Command.html new file mode 100644 index 0000000000..a3f1ffb6aa --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Command.html @@ -0,0 +1,439 @@ + + + + + +Command + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Class Command

    +
    +
    +
      +
    • java.lang.Object
    • +
    • +
        +
      • io.github.cvc5.Command
      • +
      +
    • +
    +
    +
      +
    • +
      +
      public class Command
      +extends java.lang.Object
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Field Summary

        + + + + + + + + + + + + +
        Fields 
        Modifier and TypeFieldDescription
        protected longpointer 
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Summary

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        All Methods Instance Methods Concrete Methods 
        Modifier and TypeMethodDescription
        voiddeletePointer() 
        protected voiddeletePointer​(long pointer) 
        java.lang.StringgetCommandName() +
        Get the name for this command, e.g.
        +
        longgetPointer() 
        java.lang.Stringinvoke​(Solver solver, + SymbolManager symbolManager) +
        Invoke the command on the solver and symbol manager sm and return any + resulting output as a string.
        +
        booleanisNull() 
        java.lang.StringtoString() 
        protected java.lang.StringtoString​(long pointer) 
        +
          +
        • + + +

          Methods inherited from class java.lang.Object

          +clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Field Detail

        + + + +
          +
        • +

          pointer

          +
          protected long pointer
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          deletePointer

          +
          protected void deletePointer​(long pointer)
          +
        • +
        + + + +
          +
        • +

          invoke

          +
          public java.lang.String invoke​(Solver solver,
          +                               SymbolManager symbolManager)
          +
          Invoke the command on the solver and symbol manager sm and return any + resulting output as a string.
          +
          +
          Parameters:
          +
          solver - The solver to invoke the command on.
          +
          symbolManager - The symbol manager to invoke the command on.
          +
          Returns:
          +
          The output of invoking the command.
          +
          +
        • +
        + + + +
          +
        • +

          toString

          +
          protected java.lang.String toString​(long pointer)
          +
          +
          Returns:
          +
          A string representation of this result.
          +
          +
        • +
        + + + +
          +
        • +

          getCommandName

          +
          public java.lang.String getCommandName()
          +
          Get the name for this command, e.g. "assert".
          +
          +
          Returns:
          +
          The name of this command.
          +
          +
        • +
        + + + +
          +
        • +

          isNull

          +
          public boolean isNull()
          +
          +
          Returns:
          +
          True if this command is null.
          +
          +
        • +
        + + + +
          +
        • +

          getPointer

          +
          public long getPointer()
          +
        • +
        + + + +
          +
        • +

          deletePointer

          +
          public void deletePointer()
          +
        • +
        + + + +
          +
        • +

          toString

          +
          public java.lang.String toString()
          +
          +
          Overrides:
          +
          toString in class java.lang.Object
          +
          +
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
    + +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Context.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Context.html new file mode 100644 index 0000000000..5a89d2dcb3 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Context.html @@ -0,0 +1,309 @@ + + + + + +Context + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Class Context

    +
    +
    +
      +
    • java.lang.Object
    • +
    • +
        +
      • io.github.cvc5.Context
      • +
      +
    • +
    +
    +
      +
    • +
      +
      public class Context
      +extends java.lang.Object
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Constructor Summary

        + + + + + + + + + + +
        Constructors 
        ConstructorDescription
        Context() 
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Summary

        + + + + + + + + + + + + +
        All Methods Static Methods Concrete Methods 
        Modifier and TypeMethodDescription
        static voiddeletePointers() +
        Delete all cpp pointers for terms, sorts, etc
        +
        +
          +
        • + + +

          Methods inherited from class java.lang.Object

          +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          Context

          +
          public Context()
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          deletePointers

          +
          public static void deletePointers()
          +
          Delete all cpp pointers for terms, sorts, etc
          +
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
    + +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Datatype.ConstIterator.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Datatype.ConstIterator.html new file mode 100644 index 0000000000..2cf75eb601 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Datatype.ConstIterator.html @@ -0,0 +1,344 @@ + + + + + +Datatype.ConstIterator + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Class Datatype.ConstIterator

    +
    +
    +
      +
    • java.lang.Object
    • +
    • +
        +
      • io.github.cvc5.Datatype.ConstIterator
      • +
      +
    • +
    +
    + +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Constructor Summary

        + + + + + + + + + + +
        Constructors 
        ConstructorDescription
        ConstIterator() 
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Summary

        + + + + + + + + + + + + + + + + + +
        All Methods Instance Methods Concrete Methods 
        Modifier and TypeMethodDescription
        booleanhasNext() 
        DatatypeConstructornext() 
        +
          +
        • + + +

          Methods inherited from class java.lang.Object

          +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
        • +
        +
          +
        • + + +

          Methods inherited from interface java.util.Iterator

          +forEachRemaining, remove
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          ConstIterator

          +
          public ConstIterator()
          +
        • +
        +
      • +
      +
      + +
      + +
      +
    • +
    +
    +
    +
    + +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Datatype.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Datatype.html new file mode 100644 index 0000000000..5fc2bb4814 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Datatype.html @@ -0,0 +1,741 @@ + + + + + +Datatype + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Class Datatype

    +
    +
    +
      +
    • java.lang.Object
    • +
    • +
        +
      • io.github.cvc5.Datatype
      • +
      +
    • +
    +
    +
      +
    • +
      +
      All Implemented Interfaces:
      +
      java.lang.Iterable<DatatypeConstructor>
      +
      +
      +
      public class Datatype
      +extends java.lang.Object
      +implements java.lang.Iterable<DatatypeConstructor>
      +
      A cvc5 datatype.
      +
    • +
    +
    +
    + +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Field Detail

        + + + +
          +
        • +

          pointer

          +
          protected long pointer
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          deletePointer

          +
          protected void deletePointer​(long pointer)
          +
        • +
        + + + +
          +
        • +

          equals

          +
          public boolean equals​(java.lang.Object dt)
          +
          Syntactic equality operator.
          +
          +
          Overrides:
          +
          equals in class java.lang.Object
          +
          Parameters:
          +
          dt - The datatype to compare to for equality.
          +
          Returns:
          +
          True if the datatypes are equal.
          +
          +
        • +
        + + + +
          +
        • +

          getConstructor

          +
          public DatatypeConstructor getConstructor​(int idx)
          +
          Get the datatype constructor at a given index.
          +
          +
          Parameters:
          +
          idx - The index of the datatype constructor to return.
          +
          Returns:
          +
          The datatype constructor with the given index.
          +
          +
        • +
        + + + +
          +
        • +

          getConstructor

          +
          public DatatypeConstructor getConstructor​(java.lang.String name)
          +
          Get the datatype constructor with the given name. + This is a linear search through the constructors, so in case of multiple, + similarly-named constructors, the first is returned.
          +
          +
          Parameters:
          +
          name - The name of the datatype constructor.
          +
          Returns:
          +
          The datatype constructor with the given name.
          +
          +
        • +
        + + + +
          +
        • +

          getSelector

          +
          public DatatypeSelector getSelector​(java.lang.String name)
          +
          Get the datatype constructor with the given name. + This is a linear search through the constructors and their selectors, so + in case of multiple, similarly-named selectors, the first is returned.
          +
          +
          Parameters:
          +
          name - The name of the datatype selector.
          +
          Returns:
          +
          The datatype selector with the given name.
          +
          +
        • +
        + + + +
          +
        • +

          getName

          +
          public java.lang.String getName()
          +
          +
          Returns:
          +
          The name of this Datatype.
          +
          +
        • +
        + + + +
          +
        • +

          getNumConstructors

          +
          public int getNumConstructors()
          +
          +
          Returns:
          +
          The number of constructors for this Datatype.
          +
          +
        • +
        + + + +
          +
        • +

          getParameters

          +
          public Sort[] getParameters()
          +
          +
          Returns:
          +
          The parameters of this datatype, if it is parametric. An exception. + is thrown if this datatype is not parametric.
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          isParametric

          +
          public boolean isParametric()
          +
          +
          Returns:
          +
          True if this datatype is parametric.
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          isCodatatype

          +
          public boolean isCodatatype()
          +
          +
          Returns:
          +
          True if this datatype corresponds to a co-datatype
          +
          +
        • +
        + + + +
          +
        • +

          isTuple

          +
          public boolean isTuple()
          +
          +
          Returns:
          +
          True if this datatype corresponds to a tuple
          +
          +
        • +
        + + + +
          +
        • +

          isRecord

          +
          public boolean isRecord()
          +
          +
          Returns:
          +
          True if this datatype corresponds to a record.
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          isFinite

          +
          public boolean isFinite()
          +
          +
          Returns:
          +
          True if this datatype is finite
          +
          +
        • +
        + + + +
          +
        • +

          isWellFounded

          +
          public boolean isWellFounded()
          +
          Is this datatype well-founded? If this datatype is not a codatatype, + this returns false if there are no values of this datatype that are of + finite size.
          +
          +
          Returns:
          +
          True if this datatype is well-founded.
          +
          +
        • +
        + + + +
          +
        • +

          isNull

          +
          public boolean isNull()
          +
          +
          Returns:
          +
          True if this Datatype is a null object.
          +
          +
        • +
        + + + +
          +
        • +

          toString

          +
          protected java.lang.String toString​(long pointer)
          +
          +
          Returns:
          +
          A string representation of this datatype.
          +
          +
        • +
        + + + + + + + +
          +
        • +

          hashCode

          +
          public int hashCode()
          +
          Get the hash value of a datatype.
          +
          +
          Overrides:
          +
          hashCode in class java.lang.Object
          +
          Returns:
          +
          The hash value.
          +
          +
        • +
        + + + +
          +
        • +

          getPointer

          +
          public long getPointer()
          +
        • +
        + + + +
          +
        • +

          deletePointer

          +
          public void deletePointer()
          +
        • +
        + + + +
          +
        • +

          toString

          +
          public java.lang.String toString()
          +
          +
          Overrides:
          +
          toString in class java.lang.Object
          +
          +
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
    + +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/DatatypeConstructor.ConstIterator.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/DatatypeConstructor.ConstIterator.html new file mode 100644 index 0000000000..6d1b2a6fe7 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/DatatypeConstructor.ConstIterator.html @@ -0,0 +1,344 @@ + + + + + +DatatypeConstructor.ConstIterator + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Class DatatypeConstructor.ConstIterator

    +
    +
    +
      +
    • java.lang.Object
    • +
    • +
        +
      • io.github.cvc5.DatatypeConstructor.ConstIterator
      • +
      +
    • +
    +
    + +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Constructor Summary

        + + + + + + + + + + +
        Constructors 
        ConstructorDescription
        ConstIterator() 
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Summary

        + + + + + + + + + + + + + + + + + +
        All Methods Instance Methods Concrete Methods 
        Modifier and TypeMethodDescription
        booleanhasNext() 
        DatatypeSelectornext() 
        +
          +
        • + + +

          Methods inherited from class java.lang.Object

          +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
        • +
        +
          +
        • + + +

          Methods inherited from interface java.util.Iterator

          +forEachRemaining, remove
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          ConstIterator

          +
          public ConstIterator()
          +
        • +
        +
      • +
      +
      + +
      + +
      +
    • +
    +
    +
    +
    + +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/DatatypeConstructor.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/DatatypeConstructor.html new file mode 100644 index 0000000000..d561e1cdac --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/DatatypeConstructor.html @@ -0,0 +1,678 @@ + + + + + +DatatypeConstructor + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Class DatatypeConstructor

    +
    +
    +
      +
    • java.lang.Object
    • +
    • +
        +
      • io.github.cvc5.DatatypeConstructor
      • +
      +
    • +
    +
    +
      +
    • +
      +
      All Implemented Interfaces:
      +
      java.lang.Iterable<DatatypeSelector>
      +
      +
      +
      public class DatatypeConstructor
      +extends java.lang.Object
      +implements java.lang.Iterable<DatatypeSelector>
      +
      A cvc5 datatype constructor.
      +
    • +
    +
    +
    +
      +
    • + +
      + +
      + +
      +
        +
      • + + +

        Field Summary

        + + + + + + + + + + + + +
        Fields 
        Modifier and TypeFieldDescription
        protected longpointer 
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Summary

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        All Methods Instance Methods Concrete Methods 
        Modifier and TypeMethodDescription
        voiddeletePointer() 
        protected voiddeletePointer​(long pointer) 
        booleanequals​(java.lang.Object c) +
        Syntactic equality operator.
        +
        TermgetInstantiatedTerm​(Sort retSort) +
        Get the constructor term of this datatype constructor whose return + type is retSort.
        +
        java.lang.StringgetName() 
        intgetNumSelectors() 
        longgetPointer() 
        DatatypeSelectorgetSelector​(int index) +
        Get the DatatypeSelector at the given index
        +
        DatatypeSelectorgetSelector​(java.lang.String name) +
        Get the datatype selector with the given name.
        +
        TermgetTerm() +
        Get the constructor term of this datatype constructor.
        +
        TermgetTesterTerm() +
        Get the tester term of this datatype constructor.
        +
        inthashCode() +
        Get the hash value of a datatype constructor.
        +
        booleanisNull() 
        java.util.Iterator<DatatypeSelector>iterator() 
        java.lang.StringtoString() 
        protected java.lang.StringtoString​(long pointer) 
        +
          +
        • + + +

          Methods inherited from class java.lang.Object

          +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
        • +
        +
          +
        • + + +

          Methods inherited from interface java.lang.Iterable

          +forEach, spliterator
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Field Detail

        + + + +
          +
        • +

          pointer

          +
          protected long pointer
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          deletePointer

          +
          protected void deletePointer​(long pointer)
          +
        • +
        + + + +
          +
        • +

          equals

          +
          public boolean equals​(java.lang.Object c)
          +
          Syntactic equality operator.
          +
          +
          Overrides:
          +
          equals in class java.lang.Object
          +
          Parameters:
          +
          c - The datatype constructor to compare to for equality.
          +
          Returns:
          +
          True if the datatype constructors are equal.
          +
          +
        • +
        + + + +
          +
        • +

          getName

          +
          public java.lang.String getName()
          +
          +
          Returns:
          +
          The name of this Datatype constructor.
          +
          +
        • +
        + + + +
          +
        • +

          getTerm

          +
          public Term getTerm()
          +
          Get the constructor term of this datatype constructor. + + Datatype constructors are a special class of function-like terms whose sort + is datatype constructor (Sort.isDatatypeConstructor()). All + datatype constructors, including nullary ones, should be used as the + first argument to Terms whose kind is Kind.APPLY_CONSTRUCTOR. + For example, the nil list is represented by the term + (APPLY_CONSTRUCTOR nil), where nil is the term returned by + this method.
          +
          +
          Returns:
          +
          The constructor term.
          +
          Note:
          +
          This method should not be used for parametric datatypes. Instead, + use method + getInstantiatedTerm(Sort) below.
          +
          +
        • +
        + + + +
          +
        • +

          getInstantiatedTerm

          +
          public Term getInstantiatedTerm​(Sort retSort)
          +
          Get the constructor term of this datatype constructor whose return + type is retSort. + + This method is intended to be used on constructors of parametric datatypes + and can be seen as returning the constructor term that has been explicitly + cast to the given sort. + + This method is required for constructors of parametric datatypes whose + return type cannot be determined by type inference. For example, given: + (declare-datatype List (par (T) ((nil) (cons (head T) + (tail (List T)))))) + The type of nil terms need to be provided by the user. In SMT version 2.6, + this is done via the syntax for qualified identifiers: + (as nil (List Int)) + This method is equivalent of applying the above, where this + DatatypeConstructor is the one corresponding to nil, and + retSort is (List Int).
          +
          +
          Parameters:
          +
          retSort - The desired return sort of the constructor.
          +
          Returns:
          +
          The constructor term.
          +
          Note:
          +
          The returned constructor term t is used to construct the + above (nullary) application of nil with + Solver.mkTerm(APPLY_CONSTRUCTOR, new Term[] {t})., This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          getTesterTerm

          +
          public Term getTesterTerm()
          +
          Get the tester term of this datatype constructor. + + Similar to constructors, testers are a class of function-like terms of + tester sort (Sort.isDatatypeTester()), and should be used as the + first argument of Terms of kind Kind.APPLY_TESTER.
          +
          +
          Returns:
          +
          The tester term.
          +
          +
        • +
        + + + +
          +
        • +

          getNumSelectors

          +
          public int getNumSelectors()
          +
          +
          Returns:
          +
          The number of selectors (so far) of this Datatype constructor.
          +
          +
        • +
        + + + +
          +
        • +

          getSelector

          +
          public DatatypeSelector getSelector​(int index)
          +
          Get the DatatypeSelector at the given index
          +
          +
          Parameters:
          +
          index - The given index i.
          +
          Returns:
          +
          The i^th DatatypeSelector.
          +
          +
        • +
        + + + +
          +
        • +

          getSelector

          +
          public DatatypeSelector getSelector​(java.lang.String name)
          +
          Get the datatype selector with the given name. + This is a linear search through the selectors, so in case of + multiple, similarly-named selectors, the first is returned.
          +
          +
          Parameters:
          +
          name - The name of the datatype selector.
          +
          Returns:
          +
          The first datatype selector with the given name.
          +
          +
        • +
        + + + +
          +
        • +

          isNull

          +
          public boolean isNull()
          +
          +
          Returns:
          +
          True if this DatatypeConstructor is a null object.
          +
          +
        • +
        + + + +
          +
        • +

          toString

          +
          protected java.lang.String toString​(long pointer)
          +
          +
          Returns:
          +
          A string representation of this datatype constructor.
          +
          +
        • +
        + + + + + + + +
          +
        • +

          hashCode

          +
          public int hashCode()
          +
          Get the hash value of a datatype constructor.
          +
          +
          Overrides:
          +
          hashCode in class java.lang.Object
          +
          Returns:
          +
          The hash value.
          +
          +
        • +
        + + + +
          +
        • +

          getPointer

          +
          public long getPointer()
          +
        • +
        + + + +
          +
        • +

          deletePointer

          +
          public void deletePointer()
          +
        • +
        + + + +
          +
        • +

          toString

          +
          public java.lang.String toString()
          +
          +
          Overrides:
          +
          toString in class java.lang.Object
          +
          +
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
    + +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/DatatypeConstructorDecl.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/DatatypeConstructorDecl.html new file mode 100644 index 0000000000..9c654c0d14 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/DatatypeConstructorDecl.html @@ -0,0 +1,515 @@ + + + + + +DatatypeConstructorDecl + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Class DatatypeConstructorDecl

    +
    +
    +
      +
    • java.lang.Object
    • +
    • +
        +
      • io.github.cvc5.DatatypeConstructorDecl
      • +
      +
    • +
    +
    +
      +
    • +
      +
      public class DatatypeConstructorDecl
      +extends java.lang.Object
      +
      A cvc5 datatype constructor declaration. A datatype constructor declaration + is a specification used for creating a datatype constructor.
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Field Summary

        + + + + + + + + + + + + +
        Fields 
        Modifier and TypeFieldDescription
        protected longpointer 
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Summary

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        All Methods Instance Methods Concrete Methods 
        Modifier and TypeMethodDescription
        voidaddSelector​(java.lang.String name, + Sort sort) +
        Add datatype selector declaration.
        +
        voidaddSelectorSelf​(java.lang.String name) +
        Add datatype selector declaration whose codomain type is the datatype + itself.
        +
        voidaddSelectorUnresolved​(java.lang.String name, + java.lang.String unresDataypeName) +
        Add datatype selector declaration whose codomain sort is an unresolved + datatype with the given name.
        +
        voiddeletePointer() 
        protected voiddeletePointer​(long pointer) 
        booleanequals​(java.lang.Object d) +
        Syntactic equality operator.
        +
        longgetPointer() 
        inthashCode() +
        Get the hash value of a datatype constructor declaration.
        +
        booleanisNull() 
        java.lang.StringtoString() 
        protected java.lang.StringtoString​(long pointer) 
        +
          +
        • + + +

          Methods inherited from class java.lang.Object

          +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Field Detail

        + + + +
          +
        • +

          pointer

          +
          protected long pointer
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          deletePointer

          +
          protected void deletePointer​(long pointer)
          +
        • +
        + + + +
          +
        • +

          equals

          +
          public boolean equals​(java.lang.Object d)
          +
          Syntactic equality operator.
          +
          +
          Overrides:
          +
          equals in class java.lang.Object
          +
          Parameters:
          +
          d - The datatype constructor declaration to compare to for equality.
          +
          Returns:
          +
          True if the datatype constructor declarations are equal.
          +
          +
        • +
        + + + +
          +
        • +

          addSelector

          +
          public void addSelector​(java.lang.String name,
          +                        Sort sort)
          +
          Add datatype selector declaration.
          +
          +
          Parameters:
          +
          name - The name of the datatype selector declaration to add.
          +
          sort - The codomain sort of the datatype selector declaration to add.
          +
          +
        • +
        + + + +
          +
        • +

          addSelectorSelf

          +
          public void addSelectorSelf​(java.lang.String name)
          +
          Add datatype selector declaration whose codomain type is the datatype + itself.
          +
          +
          Parameters:
          +
          name - The name of the datatype selector declaration to add.
          +
          +
        • +
        + + + +
          +
        • +

          addSelectorUnresolved

          +
          public void addSelectorUnresolved​(java.lang.String name,
          +                                  java.lang.String unresDataypeName)
          +
          Add datatype selector declaration whose codomain sort is an unresolved + datatype with the given name.
          +
          +
          Parameters:
          +
          name - The name of the datatype selector declaration to add.
          +
          unresDataypeName - The name of the unresolved datatype. The codomain + of the selector will be the resolved datatype with + the given name.
          +
          +
        • +
        + + + +
          +
        • +

          isNull

          +
          public boolean isNull()
          +
          +
          Returns:
          +
          True If this DatatypeConstructorDecl is a null declaration.
          +
          +
        • +
        + + + +
          +
        • +

          toString

          +
          protected java.lang.String toString​(long pointer)
          +
          +
          Returns:
          +
          A String representation of this datatype constructor declaration
          +
          +
        • +
        + + + +
          +
        • +

          hashCode

          +
          public int hashCode()
          +
          Get the hash value of a datatype constructor declaration.
          +
          +
          Overrides:
          +
          hashCode in class java.lang.Object
          +
          Returns:
          +
          The hash value.
          +
          +
        • +
        + + + +
          +
        • +

          getPointer

          +
          public long getPointer()
          +
        • +
        + + + +
          +
        • +

          deletePointer

          +
          public void deletePointer()
          +
        • +
        + + + +
          +
        • +

          toString

          +
          public java.lang.String toString()
          +
          +
          Overrides:
          +
          toString in class java.lang.Object
          +
          +
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
    + +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/DatatypeDecl.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/DatatypeDecl.html new file mode 100644 index 0000000000..e43cb732c7 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/DatatypeDecl.html @@ -0,0 +1,574 @@ + + + + + +DatatypeDecl + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Class DatatypeDecl

    +
    +
    +
      +
    • java.lang.Object
    • +
    • +
        +
      • io.github.cvc5.DatatypeDecl
      • +
      +
    • +
    +
    +
      +
    • +
      +
      public class DatatypeDecl
      +extends java.lang.Object
      +
      A cvc5 datatype declaration. A datatype declaration is not itself a datatype + (see Datatype), but a specification for creating a datatype sort. + + The interface for a datatype declaration coincides with the syntax for the + SMT-LIB 2.6 command declare-datatype, or a single datatype within the + declare-datatypes command. + + Datatype sorts can be constructed from DatatypeDecl using the methods: + - Solver.mkDatatypeSort(DatatypeDecl) + - Solver.mkDatatypeSorts(DatatypeDecl[])
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Field Summary

        + + + + + + + + + + + + +
        Fields 
        Modifier and TypeFieldDescription
        protected longpointer 
        +
      • +
      +
      + +
      +
        +
      • + + +

        Constructor Summary

        + + + + + + + + + + +
        Constructors 
        ConstructorDescription
        DatatypeDecl() +
        Null datatypeDecl
        +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Summary

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        All Methods Instance Methods Concrete Methods 
        Modifier and TypeMethodDescription
        voidaddConstructor​(DatatypeConstructorDecl ctor) +
        Add datatype constructor declaration.
        +
        voiddeletePointer() 
        protected voiddeletePointer​(long pointer) 
        booleanequals​(java.lang.Object d) +
        Syntactic equality operator.
        +
        java.lang.StringgetName() 
        intgetNumConstructors() +
        Get the number of constructors (so far) for this Datatype declaration.
        +
        longgetPointer() 
        inthashCode() +
        Get the hash value of a datatype declaration.
        +
        booleanisNull() 
        booleanisParametric() +
        Determine if this datatype declaration is parametric.
        +
        java.lang.StringtoString() 
        protected java.lang.StringtoString​(long pointer) 
        +
          +
        • + + +

          Methods inherited from class java.lang.Object

          +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Field Detail

        + + + +
          +
        • +

          pointer

          +
          protected long pointer
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          DatatypeDecl

          +
          public DatatypeDecl()
          +
          Null datatypeDecl
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          deletePointer

          +
          protected void deletePointer​(long pointer)
          +
        • +
        + + + +
          +
        • +

          equals

          +
          public boolean equals​(java.lang.Object d)
          +
          Syntactic equality operator.
          +
          +
          Overrides:
          +
          equals in class java.lang.Object
          +
          Parameters:
          +
          d - The datatype declaration to compare to for equality.
          +
          Returns:
          +
          True if the datatype declarations are equal.
          +
          +
        • +
        + + + +
          +
        • +

          addConstructor

          +
          public void addConstructor​(DatatypeConstructorDecl ctor)
          +
          Add datatype constructor declaration.
          +
          +
          Parameters:
          +
          ctor - The datatype constructor declaration to add.
          +
          +
        • +
        + + + +
          +
        • +

          getNumConstructors

          +
          public int getNumConstructors()
          +
          Get the number of constructors (so far) for this Datatype declaration.
          +
          +
          Returns:
          +
          The number of constructors.
          +
          +
        • +
        + + + +
          +
        • +

          isParametric

          +
          public boolean isParametric()
          +
          Determine if this datatype declaration is parametric.
          +
          +
          Returns:
          +
          True if this DatatypeDecl is parametric.
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          isNull

          +
          public boolean isNull()
          +
          +
          Returns:
          +
          True if this DatatypeDecl is a null object.
          +
          +
        • +
        + + + +
          +
        • +

          toString

          +
          protected java.lang.String toString​(long pointer)
          +
          +
          Returns:
          +
          A string representation of this datatype declaration.
          +
          +
        • +
        + + + +
          +
        • +

          getName

          +
          public java.lang.String getName()
          +
          +
          Returns:
          +
          The name of this datatype declaration.
          +
          +
        • +
        + + + +
          +
        • +

          hashCode

          +
          public int hashCode()
          +
          Get the hash value of a datatype declaration.
          +
          +
          Overrides:
          +
          hashCode in class java.lang.Object
          +
          Returns:
          +
          The hash value.
          +
          +
        • +
        + + + +
          +
        • +

          getPointer

          +
          public long getPointer()
          +
        • +
        + + + +
          +
        • +

          deletePointer

          +
          public void deletePointer()
          +
        • +
        + + + +
          +
        • +

          toString

          +
          public java.lang.String toString()
          +
          +
          Overrides:
          +
          toString in class java.lang.Object
          +
          +
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
    + +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/DatatypeSelector.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/DatatypeSelector.html new file mode 100644 index 0000000000..c0fb6e5d0f --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/DatatypeSelector.html @@ -0,0 +1,525 @@ + + + + + +DatatypeSelector + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Class DatatypeSelector

    +
    +
    +
      +
    • java.lang.Object
    • +
    • +
        +
      • io.github.cvc5.DatatypeSelector
      • +
      +
    • +
    +
    +
      +
    • +
      +
      public class DatatypeSelector
      +extends java.lang.Object
      +
      A cvc5 datatype selector.
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Field Summary

        + + + + + + + + + + + + +
        Fields 
        Modifier and TypeFieldDescription
        protected longpointer 
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Summary

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        All Methods Instance Methods Concrete Methods 
        Modifier and TypeMethodDescription
        voiddeletePointer() 
        protected voiddeletePointer​(long pointer) 
        booleanequals​(java.lang.Object s) +
        Syntactic equality operator.
        +
        SortgetCodomainSort() 
        java.lang.StringgetName() 
        longgetPointer() 
        TermgetTerm() +
        Get the selector term of this datatype selector.
        +
        TermgetUpdaterTerm() +
        Get the updater term of this datatype selector.
        +
        inthashCode() +
        Get the hash value of a datatype selector.
        +
        booleanisNull() 
        java.lang.StringtoString() 
        protected java.lang.StringtoString​(long pointer) 
        +
          +
        • + + +

          Methods inherited from class java.lang.Object

          +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Field Detail

        + + + +
          +
        • +

          pointer

          +
          protected long pointer
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          deletePointer

          +
          protected void deletePointer​(long pointer)
          +
        • +
        + + + +
          +
        • +

          equals

          +
          public boolean equals​(java.lang.Object s)
          +
          Syntactic equality operator.
          +
          +
          Overrides:
          +
          equals in class java.lang.Object
          +
          Parameters:
          +
          s - The datatype selector to compare to for equality.
          +
          Returns:
          +
          True if the datatype selectors are equal.
          +
          +
        • +
        + + + +
          +
        • +

          getName

          +
          public java.lang.String getName()
          +
          +
          Returns:
          +
          The Name of this Datatype selector.
          +
          +
        • +
        + + + +
          +
        • +

          getTerm

          +
          public Term getTerm()
          +
          Get the selector term of this datatype selector. + + Selector terms are a class of function-like terms of selector + sort (Sort::isDatatypeSelector), and should be used as the first + argument of Terms of kind APPLY_SELECTOR.
          +
          +
          Returns:
          +
          The Selector term.
          +
          +
        • +
        + + + +
          +
        • +

          getUpdaterTerm

          +
          public Term getUpdaterTerm()
          +
          Get the updater term of this datatype selector. + + Similar to selectors, updater terms are a class of function-like terms of + updater Sort (Sort::isDatatypeUpdater), and should be used as the first + argument of Terms of kind APPLY_UPDATER.
          +
          +
          Returns:
          +
          The Updater term.
          +
          +
        • +
        + + + +
          +
        • +

          getCodomainSort

          +
          public Sort getCodomainSort()
          +
          +
          Returns:
          +
          The Codomain sort of this selector.
          +
          +
        • +
        + + + +
          +
        • +

          isNull

          +
          public boolean isNull()
          +
          +
          Returns:
          +
          True If this DatatypeSelector is a null object.
          +
          +
        • +
        + + + +
          +
        • +

          toString

          +
          protected java.lang.String toString​(long pointer)
          +
          +
          Returns:
          +
          A String representation of this datatype selector.
          +
          +
        • +
        + + + +
          +
        • +

          hashCode

          +
          public int hashCode()
          +
          Get the hash value of a datatype selector.
          +
          +
          Overrides:
          +
          hashCode in class java.lang.Object
          +
          Returns:
          +
          The hash value.
          +
          +
        • +
        + + + +
          +
        • +

          getPointer

          +
          public long getPointer()
          +
        • +
        + + + +
          +
        • +

          deletePointer

          +
          public void deletePointer()
          +
        • +
        + + + +
          +
        • +

          toString

          +
          public java.lang.String toString()
          +
          +
          Overrides:
          +
          toString in class java.lang.Object
          +
          +
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
    + +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Grammar.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Grammar.html new file mode 100644 index 0000000000..c76c4749f6 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Grammar.html @@ -0,0 +1,598 @@ + + + + + +Grammar + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Class Grammar

    +
    +
    +
      +
    • java.lang.Object
    • +
    • +
        +
      • io.github.cvc5.Grammar
      • +
      +
    • +
    +
    +
      +
    • +
      +
      public class Grammar
      +extends java.lang.Object
      +
      A Sygus Grammar. + + This class can be used to define a context-free grammar of terms. Its + interface coincides with the definition of grammars (GrammarDef) in + the SyGuS IF 2.1 standard.
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Field Summary

        + + + + + + + + + + + + +
        Fields 
        Modifier and TypeFieldDescription
        protected longpointer 
        +
      • +
      +
      + +
      +
        +
      • + + +

        Constructor Summary

        + + + + + + + + + + +
        Constructors 
        ConstructorDescription
        Grammar​(Grammar grammar) 
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Summary

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        All Methods Instance Methods Concrete Methods 
        Modifier and TypeMethodDescription
        voidaddAnyConstant​(Term ntSymbol) +
        Allow ntSymbol to be an arbitrary constant.
        +
        voidaddAnyVariable​(Term ntSymbol) +
        Allow ntSymbol to be any input variable to corresponding + synth-fun or synth-inv with the same sort as + ntSymbol.
        +
        voidaddRule​(Term ntSymbol, + Term rule) +
        Add rule to the set of rules corresponding to ntSymbol.
        +
        voidaddRules​(long pointer, + long ntSymbolPointer, + long[] rulePointers) 
        voidaddRules​(Term ntSymbol, + Term[] rules) +
        Add rules to the set of rules corresponding to ntSymbol.
        +
        voiddeletePointer() 
        protected voiddeletePointer​(long pointer) 
        booleanequals​(java.lang.Object g) +
        Referential equality operator.
        +
        longgetPointer() 
        inthashCode() +
        Get the hash value of a grammar.
        +
        booleanisNull() +
        Determine if this is the null grammar.
        +
        java.lang.StringtoString() 
        protected java.lang.StringtoString​(long pointer) 
        +
          +
        • + + +

          Methods inherited from class java.lang.Object

          +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Field Detail

        + + + +
          +
        • +

          pointer

          +
          protected long pointer
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          Grammar

          +
          public Grammar​(Grammar grammar)
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          deletePointer

          +
          protected void deletePointer​(long pointer)
          +
        • +
        + + + +
          +
        • +

          isNull

          +
          public boolean isNull()
          +
          Determine if this is the null grammar.
          +
          +
          Returns:
          +
          True if this Grammar is the null grammar.
          +
          +
        • +
        + + + +
          +
        • +

          equals

          +
          public boolean equals​(java.lang.Object g)
          +
          Referential equality operator.
          +
          +
          Overrides:
          +
          equals in class java.lang.Object
          +
          Parameters:
          +
          g - The grammar to compare to for equality.
          +
          Returns:
          +
          True if the gramamrs point to the same internal grammar object.
          +
          +
        • +
        + + + +
          +
        • +

          addRule

          +
          public void addRule​(Term ntSymbol,
          +                    Term rule)
          +
          Add rule to the set of rules corresponding to ntSymbol.
          +
          +
          Parameters:
          +
          ntSymbol - the non-terminal to which the rule is added.
          +
          rule - the rule to add.
          +
          +
        • +
        + + + +
          +
        • +

          addRules

          +
          public void addRules​(Term ntSymbol,
          +                     Term[] rules)
          +
          Add rules to the set of rules corresponding to ntSymbol.
          +
          +
          Parameters:
          +
          ntSymbol - the non-terminal to which the rules are added.
          +
          rules - the rules to add.
          +
          +
        • +
        + + + +
          +
        • +

          addRules

          +
          public void addRules​(long pointer,
          +                     long ntSymbolPointer,
          +                     long[] rulePointers)
          +
        • +
        + + + +
          +
        • +

          addAnyConstant

          +
          public void addAnyConstant​(Term ntSymbol)
          +
          Allow ntSymbol to be an arbitrary constant.
          +
          +
          Parameters:
          +
          ntSymbol - the non-terminal allowed to be any constant.
          +
          +
        • +
        + + + +
          +
        • +

          addAnyVariable

          +
          public void addAnyVariable​(Term ntSymbol)
          +
          Allow ntSymbol to be any input variable to corresponding + synth-fun or synth-inv with the same sort as + ntSymbol.
          +
          +
          Parameters:
          +
          ntSymbol - the non-terminal allowed to be any input constant.
          +
          +
        • +
        + + + +
          +
        • +

          toString

          +
          protected java.lang.String toString​(long pointer)
          +
          +
          Returns:
          +
          A String representation of this grammar.
          +
          +
        • +
        + + + +
          +
        • +

          hashCode

          +
          public int hashCode()
          +
          Get the hash value of a grammar.
          +
          +
          Overrides:
          +
          hashCode in class java.lang.Object
          +
          Returns:
          +
          The hash value.
          +
          +
        • +
        + + + +
          +
        • +

          getPointer

          +
          public long getPointer()
          +
        • +
        + + + +
          +
        • +

          deletePointer

          +
          public void deletePointer()
          +
        • +
        + + + +
          +
        • +

          toString

          +
          public java.lang.String toString()
          +
          +
          Overrides:
          +
          toString in class java.lang.Object
          +
          +
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
    + +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/IOracle.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/IOracle.html new file mode 100644 index 0000000000..6ca0d2ad1f --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/IOracle.html @@ -0,0 +1,260 @@ + + + + + +IOracle + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Interface IOracle

    +
    +
    +
    +
      +
    • +
      +
      Functional Interface:
      +
      This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
      +
      +
      +
      @FunctionalInterface
      +public interface IOracle
      +
    • +
    +
    +
    + +
    +
    + +
    +
    +
    + +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/InputParser.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/InputParser.html new file mode 100644 index 0000000000..cfcf64fbc0 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/InputParser.html @@ -0,0 +1,663 @@ + + + + + +InputParser + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Class InputParser

    +
    +
    +
      +
    • java.lang.Object
    • +
    • +
        +
      • io.github.cvc5.InputParser
      • +
      +
    • +
    +
    +
      +
    • +
      +
      public class InputParser
      +extends java.lang.Object
      +
      This class is the main interface for retrieving commands and expressions + from an input using a parser. + + After construction, it is expected that an input is first set via + setFileInput(InputLanguage, String), + setStringInput(InputLanguage, String, String), + or setIncrementalStringInput(InputLanguage, String) and + appendIncrementalStringInput(String). Then, the methods + nextCommand() and nextTerm() can be + invoked to parse the input. + + The input parser interacts with a symbol manager, which determines which + symbols are defined in the current context, based on the background logic + and user-defined symbols. If no symbol manager is provided, then the + input parser will construct (an initially empty) one. + + If provided, the symbol manager must have a logic that is compatible + with the provided solver. That is, if both the solver and symbol + manager have their logics set (SymbolManager.isLogicSet() and + Solver.isLogicSet(), then their logics must be the same. + + Upon setting an input source, if either the solver (resp. symbol + manager) has its logic set, then the symbol manager (resp. solver) is set to + use that logic, if its logic is not already set.
      +
    • +
    +
    +
    + +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Field Detail

        + + + +
          +
        • +

          pointer

          +
          protected long pointer
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          InputParser

          +
          public InputParser​(Solver solver,
          +                   SymbolManager sm)
          +
          Construct an input parser
          +
          +
          Parameters:
          +
          solver - The solver (e.g. for constructing terms and sorts)
          +
          sm - The symbol manager, which contains a symbol table that maps + symbols to terms and sorts. Must have a logic that is compatible + with the solver.
          +
          +
        • +
        + + + +
          +
        • +

          InputParser

          +
          public InputParser​(Solver solver)
          +
          Construct an input parser with an initially empty symbol manager.
          +
          +
          Parameters:
          +
          solver - The solver (e.g. for constructing terms and sorts).
          +
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          deletePointer

          +
          protected void deletePointer​(long pointer)
          +
        • +
        + + + +
          +
        • +

          toString

          +
          protected java.lang.String toString​(long pointer)
          +
        • +
        + + + +
          +
        • +

          getSolver

          +
          public Solver getSolver()
          +
          +
          Returns:
          +
          The underlying solver of this input parser
          +
          +
        • +
        + + + +
          +
        • +

          getSymbolManager

          +
          public SymbolManager getSymbolManager()
          +
          +
          Returns:
          +
          The underlying symbol manager of this input parser.
          +
          +
        • +
        + + + +
          +
        • +

          setFileInput

          +
          public void setFileInput​(InputLanguage lang,
          +                         java.lang.String fileName)
          +
          Set the input for the given file.
          +
          +
          Parameters:
          +
          lang - the input language (e.g. InputLanguage.SMT_LIB_2_6).
          +
          fileName - the input file name.
          +
          +
        • +
        + + + +
          +
        • +

          setStringInput

          +
          public void setStringInput​(InputLanguage lang,
          +                           java.lang.String input,
          +                           java.lang.String name)
          +
          Set the input to the given concrete input string.
          +
          +
          Parameters:
          +
          lang - The input language.
          +
          input - The input string.
          +
          name - The name of the stream, for use in error messages.
          +
          +
        • +
        + + + +
          +
        • +

          setIncrementalStringInput

          +
          public void setIncrementalStringInput​(InputLanguage lang,
          +                                      java.lang.String name)
          +
          Set that we will be feeding strings to this parser via + appendIncrementalStringInput below.
          +
          +
          Parameters:
          +
          lang - The input language.
          +
          name - The name of the stream, for use in error messages.
          +
          +
        • +
        + + + +
          +
        • +

          appendIncrementalStringInput

          +
          public void appendIncrementalStringInput​(java.lang.String input)
          +
          Append string to the input being parsed by this parser. Should be + called after calling setIncrementalStringInput.
          +
          +
          Parameters:
          +
          input - The input string.
          +
          +
        • +
        + + + +
          +
        • +

          nextCommand

          +
          public Command nextCommand()
          +
          Parse and return the next command. Will initialize the logic to "ALL" + or the forced logic if no logic is set prior to this point and a command + is read that requires initializing the logic.
          +
          +
          Returns:
          +
          The parsed command. This is the null command if no command was + read.
          +
          +
        • +
        + + + +
          +
        • +

          nextTerm

          +
          public Term nextTerm()
          +
          Parse and return the next term. Requires setting the logic prior + to this point.
          +
          +
          Returns:
          +
          The parsed term.
          +
          +
        • +
        + + + +
          +
        • +

          done

          +
          public boolean done()
          +
          +
          Returns:
          +
          True if this parser done reading input.
          +
          +
        • +
        + + + +
          +
        • +

          getPointer

          +
          public long getPointer()
          +
        • +
        + + + +
          +
        • +

          deletePointer

          +
          public void deletePointer()
          +
        • +
        + + + +
          +
        • +

          toString

          +
          public java.lang.String toString()
          +
          +
          Overrides:
          +
          toString in class java.lang.Object
          +
          +
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
    + +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Kind.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Kind.html new file mode 100644 index 0000000000..e0178c5cbd --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Kind.html @@ -0,0 +1,12870 @@ + + + + + +Kind + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Enum Kind

    +
    +
    +
      +
    • java.lang.Object
    • +
    • +
        +
      • java.lang.Enum<Kind>
      • +
      • +
          +
        • io.github.cvc5.Kind
        • +
        +
      • +
      +
    • +
    +
    +
      +
    • +
      +
      All Implemented Interfaces:
      +
      java.io.Serializable, java.lang.Comparable<Kind>
      +
      +
      +
      public enum Kind
      +extends java.lang.Enum<Kind>
      +
    • +
    +
    +
    + +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Enum Constant Detail

        + + + +
          +
        • +

          INTERNAL_KIND

          +
          public static final Kind INTERNAL_KIND
          +
          Internal kind. + + This kind serves as an abstraction for internal kinds that are not exposed + via the API but may appear in terms returned by API functions, e.g., + when querying the simplified form of a term.
          +
          +
          Note:
          +
          Should never be created via the API.
          +
          +
        • +
        + + + +
          +
        • +

          UNDEFINED_KIND

          +
          public static final Kind UNDEFINED_KIND
          +
          Undefined kind.
          +
          +
          Note:
          +
          Should never be exposed or created via the API.
          +
          +
        • +
        + + + +
          +
        • +

          NULL_TERM

          +
          public static final Kind NULL_TERM
          +
          Null kind. + + The kind of a null term (Term()).
          +
          +
          Note:
          +
          May not be explicitly created via API functions other than + Term().
          +
          +
        • +
        + + + +
          +
        • +

          UNINTERPRETED_SORT_VALUE

          +
          public static final Kind UNINTERPRETED_SORT_VALUE
          +
          The value of an uninterpreted constant.
          +
          +
          Note:
          +
          May be returned as the result of an API call, but terms of this + kind may not be created explicitly via the API and may not + appear in assertions.
          +
          +
        • +
        + + + + + + + + + + + + + + + +
          +
        • +

          VARIABLE

          +
          public static final Kind VARIABLE
          +
          (Bound) variable. + +
          +
          +
          Note:
          +
          Only permitted in bindings and in lambda and quantifier bodies.
          +
          +
        • +
        + + + +
          +
        • +

          SKOLEM

          +
          public static final Kind SKOLEM
          +
          A Skolem.
          +
          +
          Note:
          +
          Represents an internally generated term. Information on the + skolem is available via the calls `Solver.getSkolemId` and + `Solver.getSkolemIndices`.
          +
          +
        • +
        + + + + + + + + + + + +
          +
        • +

          WITNESS

          +
          public static final Kind WITNESS
          +
          Witness. + + The syntax of a witness term is similar to a quantified formula except that + only one variable is allowed. + For example, the term + + .. code. smtlib + + (witness ((x S)) F) + + returns an element \(x\) of Sort \(S\) and asserts formula + \(F\). + + The witness operator behaves like the description operator + (see https: + no \(x\) that satisfies \(F\). But if such \(x\) exists, the + witness operator does not enforce the following axiom which ensures + uniqueness up to logical equivalence: + + \[ + + \forall x. F \equiv G \Rightarrow witness~x. F = witness~x. G + \] + For example, if there are two elements of Sort \(S\) that satisfy + formula \(F\), then the following formula is satisfiable: + + .. code. smtlib + + (distinct + (witness ((x Int)) F) + (witness ((x Int)) F)) + + + +
          +
          +
          Note:
          +
          This kind is primarily used internally, but may be returned in + models (e.g., for arithmetic terms in non-linear queries). However, + it is not supported by the parser. Moreover, the user of the API + should be cautious when using this operator. In general, all witness + terms (witness ((x Int)) F) should be such that ``(exists ((x Int)) + F)`` is a valid formula. If this is not the case, then the semantics + in formulas that use witness terms may be unintuitive. For example, + the following formula is unsatisfiable: + ``(or (= (witness ((x Int)) false) 0) (not (= (witness ((x Int)) + false) 0)), whereas notice that (or (= z 0) (not (= z 0)))`` is + true for any \(z\).
          +
          +
        • +
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          +
        • +

          CARDINALITY_CONSTRAINT

          +
          public static final Kind CARDINALITY_CONSTRAINT
          +
          Cardinality constraint on uninterpreted sort. + + + Interpreted as a predicate that is true when the cardinality of + uinterpreted Sort \(S\) is less than or equal to an upper bound. + + +
          +
          +
          Note:
          +
          This kind is experimental and may be changed or removed in + future versions.
          +
          +
        • +
        + + + +
          +
        • +

          HO_APPLY

          +
          public static final Kind HO_APPLY
          +
          Higher-order applicative encoding of function application, left + associative. + +
          +
        • +
        + + + + + + + + + + + +
          +
        • +

          IAND

          +
          public static final Kind IAND
          +
          Integer and. + + + Operator for bit-wise AND over integers, parameterized by a (positive) + bit-width \(k\). + + .. code. smtlib + + ((_ iand k) i_1 i_2) + + is equivalent to + + .. code. smtlib + + ((_ iand k) i_1 i_2) + (bv2int (bvand ((_ int2bv k) i_1) ((_ int2bv k) i_2))) + + for all integers i_1, i_2. + +
          +
        • +
        + + + + + + + + + + + + + + + + + + + +
          +
        • +

          DIVISION_TOTAL

          +
          public static final Kind DIVISION_TOTAL
          +
          Real division, division by 0 defined to be 0, left associative. + +
          +
          +
          Note:
          +
          This kind is experimental and may be changed or removed in + future versions.
          +
          +
        • +
        + + + + + + + +
          +
        • +

          INTS_DIVISION_TOTAL

          +
          public static final Kind INTS_DIVISION_TOTAL
          +
          Integer division, division by 0 defined to be 0, left associative. + +
          +
          +
          Note:
          +
          This kind is experimental and may be changed or removed in + future versions.
          +
          +
        • +
        + + + + + + + +
          +
        • +

          INTS_MODULUS_TOTAL

          +
          public static final Kind INTS_MODULUS_TOTAL
          +
          Integer modulus, t modulus by 0 defined to be t. + +
          +
          +
          Note:
          +
          This kind is experimental and may be changed or removed in + future versions.
          +
          +
        • +
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          +
        • +

          DIVISIBLE

          +
          public static final Kind DIVISIBLE
          +
          Operator for the divisibility-by-\(k\) predicate. + +
          +
        • +
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          +
        • +

          PI

          +
          public static final Kind PI
          +
          Pi constant. + +
          +
          +
          Note:
          +
          PI is considered a special symbol of Sort + Real, but is not a Real value, i.e., + Term.isRealValue() will return false.
          +
          +
        • +
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          +
        • +

          BITVECTOR_UDIV

          +
          public static final Kind BITVECTOR_UDIV
          +
          Unsigned bit-vector division. + + Truncates towards 0. If the divisor is zero, the result is all ones. + +
          +
        • +
        + + + +
          +
        • +

          BITVECTOR_UREM

          +
          public static final Kind BITVECTOR_UREM
          +
          Unsigned bit-vector remainder. + + Remainder from unsigned bit-vector division. If the modulus is zero, the + result is the dividend. + +
          +
        • +
        + + + +
          +
        • +

          BITVECTOR_SDIV

          +
          public static final Kind BITVECTOR_SDIV
          +
          Signed bit-vector division. + + Two's complement signed division of two bit-vectors. If the divisor is + zero and the dividend is positive, the result is all ones. If the divisor + is zero and the dividend is negative, the result is one. + +
          +
        • +
        + + + +
          +
        • +

          BITVECTOR_SREM

          +
          public static final Kind BITVECTOR_SREM
          +
          Signed bit-vector remainder (sign follows dividend). + + Two's complement signed remainder of two bit-vectors where the sign + follows the dividend. If the modulus is zero, the result is the dividend. + +
          +
        • +
        + + + +
          +
        • +

          BITVECTOR_SMOD

          +
          public static final Kind BITVECTOR_SMOD
          +
          Signed bit-vector remainder (sign follows divisor). + + Two's complement signed remainder where the sign follows the divisor. If + the modulus is zero, the result is the dividend. + +
          +
        • +
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          +
        • +

          BITVECTOR_ITE

          +
          public static final Kind BITVECTOR_ITE
          +
          Bit-vector if-then-else. + + Same semantics as regular ITE, but condition is bit-vector of size 1. + +
          +
        • +
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          +
        • +

          BITVECTOR_EXTRACT

          +
          public static final Kind BITVECTOR_EXTRACT
          +
          Bit-vector extract. + +
            +
          • Arity: 1 + +
              +
            • 1: Term of bit-vector Sort + +
            +
          • +
          • Indices: 2 + +
              +
            • 1: The upper bit index. +
            • +
            • 2: The lower bit index. + +
            +
          • +
          • Create Term of this Kind with: + + +
          • +
          • Create Op of this kind with: + + +
          +
        • +
        + + + +
          +
        • +

          BITVECTOR_REPEAT

          +
          public static final Kind BITVECTOR_REPEAT
          +
          Bit-vector repeat. + +
            +
          • Arity: 1 + +
              +
            • 1: Term of bit-vector Sort + +
            +
          • +
          • Indices: 1 + +
              +
            • 1: The number of times to repeat the given term. + +
            +
          • +
          • Create Term of this Kind with: + + +
          • +
          • Create Op of this kind with: + + +
          +
        • +
        + + + +
          +
        • +

          BITVECTOR_ZERO_EXTEND

          +
          public static final Kind BITVECTOR_ZERO_EXTEND
          +
          Bit-vector zero extension. + +
            +
          • Arity: 1 + +
              +
            • 1: Term of bit-vector Sort + +
            +
          • +
          • Indices: 1 + +
              +
            • 1: The number of zeroes to extend the given term with. + +
            +
          • +
          • Create Term of this Kind with: + + +
          • +
          • Create Op of this kind with: + + +
          +
        • +
        + + + +
          +
        • +

          BITVECTOR_SIGN_EXTEND

          +
          public static final Kind BITVECTOR_SIGN_EXTEND
          +
          Bit-vector sign extension. + +
            +
          • Arity: 1 + +
              +
            • 1: Term of bit-vector Sort + +
            +
          • +
          • Indices: 1 + +
              +
            • 1: The number of bits (of the value of the sign bit) to extend the given term with. + +
            +
          • +
          • Create Term of this Kind with: + + +
          • +
          • Create Op of this kind with: + + +
          +
        • +
        + + + +
          +
        • +

          BITVECTOR_ROTATE_LEFT

          +
          public static final Kind BITVECTOR_ROTATE_LEFT
          +
          Bit-vector rotate left. + +
            +
          • Arity: 1 + +
              +
            • 1: Term of bit-vector Sort + +
            +
          • +
          • Indices: 1 + +
              +
            • 1: The number of bits to rotate the given term left. + +
            +
          • +
          • Create Term of this Kind with: + + +
          • +
          • Create Op of this kind with: + + +
          +
        • +
        + + + +
          +
        • +

          BITVECTOR_ROTATE_RIGHT

          +
          public static final Kind BITVECTOR_ROTATE_RIGHT
          +
          Bit-vector rotate right. + +
            +
          • Arity: 1 + +
              +
            • 1: Term of bit-vector Sort + +
            +
          • +
          • Indices: 1 + +
              +
            • 1: The number of bits to rotate the given term right. + +
            +
          • +
          • Create Term of this Kind with: + + +
          • +
          • Create Op of this kind with: + + +
          +
        • +
        + + + +
          +
        • +

          INT_TO_BITVECTOR

          +
          public static final Kind INT_TO_BITVECTOR
          +
          Conversion from Int to bit-vector. + +
            +
          • Arity: 1 + +
              +
            • 1: Term of Sort Int + +
            +
          • +
          • Indices: 1 + +
              +
            • 1: The size of the bit-vector to convert to. + +
            +
          • +
          • Create Term of this Kind with: + + +
          • +
          • Create Op of this kind with: + + +
          +
        • +
        + + + + + + + +
          +
        • +

          BITVECTOR_FROM_BOOLS

          +
          public static final Kind BITVECTOR_FROM_BOOLS
          +
          Converts a list of Bool terms to a bit-vector. + +
            +
          • Arity: n > 0 + +
              +
            • 1..n: Terms of Sort Bool + + +
            +
          +
          +
          Note:
          +
          May be returned as the result of an API call, but terms of this + kind may not be created explicitly via the API and may not + appear in assertions.
          +
          +
        • +
        + + + +
          +
        • +

          BITVECTOR_BIT

          +
          public static final Kind BITVECTOR_BIT
          +
          Retrieves the bit at the given index from a bit-vector as a Bool term. + +
            +
          • Arity: 1 + +
              +
            • 1: Term of bit-vector Sort + +
            +
          • +
          • Indices: 1 + +
              +
            • 1: The bit index + + +
            +
          +
          +
          Note:
          +
          May be returned as the result of an API call, but terms of this + kind may not be created explicitly via the API and may not + appear in assertions.
          +
          +
        • +
        + + + + + + + + + + + + + + + +
          +
        • +

          FINITE_FIELD_BITSUM

          +
          public static final Kind FINITE_FIELD_BITSUM
          +
          Bitsum of two or more finite field elements: x + 2y + 4z + ... + +
          +
        • +
        + + + + + + + +
          +
        • +

          CONST_FLOATINGPOINT

          +
          public static final Kind CONST_FLOATINGPOINT
          +
          Floating-point constant, created from IEEE-754 bit-vector representation + of the floating-point value. + +
          +
        • +
        + + + + + + + +
          +
        • +

          FLOATINGPOINT_FP

          +
          public static final Kind FLOATINGPOINT_FP
          +
          Create floating-point literal from bit-vector triple. + + +
            +
          • Arity: 3 + +
              +
            • 1: Term of bit-vector Sort of size `1` (sign bit) +
            • +
            • 2: Term of bit-vector Sort of exponent size (exponent) +
            • +
            • 3: Term of bit-vector Sort of significand size - 1 (significand without hidden bit) + +
            +
          • +
          • Create Term of this Kind with: + + +
          • +
          • Create Op of this kind with: + + +
          +
        • +
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          +
        • +

          FLOATINGPOINT_TO_FP_FROM_IEEE_BV

          +
          public static final Kind FLOATINGPOINT_TO_FP_FROM_IEEE_BV
          +
          Conversion to floating-point from IEEE-754 bit-vector. + +
            +
          • Arity: 1 + +
              +
            • 1: Term of bit-vector Sort + +
            +
          • +
          • Indices: 2 + +
              +
            • 1: The exponent size +
            • +
            • 2: The significand size + +
            +
          • +
          • Create Term of this Kind with: + + +
          • +
          • Create Op of this kind with: + + +
          +
        • +
        + + + +
          +
        • +

          FLOATINGPOINT_TO_FP_FROM_FP

          +
          public static final Kind FLOATINGPOINT_TO_FP_FROM_FP
          +
          Conversion to floating-point from floating-point. + +
            +
          • Arity: 2 + +
              +
            • 1: Term of Sort RoundingMode +
            • +
            • 2: Term of floating-point Sort + +
            +
          • +
          • Indices: 2 + +
              +
            • 1: The exponent size +
            • +
            • 2: The significand size + +
            +
          • +
          • Create Term of this Kind with: + + +
          • +
          • Create Op of this kind with: + + +
          +
        • +
        + + + +
          +
        • +

          FLOATINGPOINT_TO_FP_FROM_REAL

          +
          public static final Kind FLOATINGPOINT_TO_FP_FROM_REAL
          +
          Conversion to floating-point from Real. + +
            +
          • Arity: 2 + +
              +
            • 1: Term of Sort RoundingMode +
            • +
            • 2: Term of Sort Real + +
            +
          • +
          • Indices: 2 + +
              +
            • 1: The exponent size +
            • +
            • 2: The significand size + +
            +
          • +
          • Create Term of this Kind with: + + +
          • +
          • Create Op of this kind with: + + +
          +
        • +
        + + + +
          +
        • +

          FLOATINGPOINT_TO_FP_FROM_SBV

          +
          public static final Kind FLOATINGPOINT_TO_FP_FROM_SBV
          +
          Conversion to floating-point from signed bit-vector. + +
            +
          • Arity: 2 + +
              +
            • 1: Term of Sort RoundingMode +
            • +
            • 2: Term of bit-vector Sort + +
            +
          • +
          • Indices: 2 + +
              +
            • 1: The exponent size +
            • +
            • 2: The significand size + +
            +
          • +
          • Create Term of this Kind with: + + +
          • +
          • Create Op of this kind with: + + +
          +
        • +
        + + + +
          +
        • +

          FLOATINGPOINT_TO_FP_FROM_UBV

          +
          public static final Kind FLOATINGPOINT_TO_FP_FROM_UBV
          +
          Conversion to floating-point from unsigned bit-vector. + +
            +
          • Arity: 2 + +
              +
            • 1: Term of Sort RoundingMode +
            • +
            • 2: Term of bit-vector Sort + +
            +
          • +
          • Indices: 2 + +
              +
            • 1: The exponent size +
            • +
            • 2: The significand size + +
            +
          • +
          • Create Term of this Kind with: + + +
          • +
          • Create Op of this kind with: + + +
          +
        • +
        + + + +
          +
        • +

          FLOATINGPOINT_TO_UBV

          +
          public static final Kind FLOATINGPOINT_TO_UBV
          +
          Conversion to unsigned bit-vector from floating-point. + +
            +
          • Arity: 2 + +
              +
            • 1: Term of Sort RoundingMode +
            • +
            • 2: Term of floating-point Sort + +
            +
          • +
          • Indices: 1 + +
              +
            • 1: The size of the bit-vector to convert to. + +
            +
          • +
          • Create Term of this Kind with: + + +
          • +
          • Create Op of this kind with: + + +
          +
        • +
        + + + +
          +
        • +

          FLOATINGPOINT_TO_SBV

          +
          public static final Kind FLOATINGPOINT_TO_SBV
          +
          Conversion to signed bit-vector from floating-point. + +
            +
          • Arity: 2 + +
              +
            • 1: Term of Sort RoundingMode +
            • +
            • 2: Term of floating-point Sort + +
            +
          • +
          • Indices: 1 + +
              +
            • 1: The size of the bit-vector to convert to. + +
            +
          • +
          • Create Term of this Kind with: + + +
          • +
          • Create Op of this kind with: + + +
          +
        • +
        + + + + + + + + + + + + + + + + + + + +
          +
        • +

          EQ_RANGE

          +
          public static final Kind EQ_RANGE
          +
          Equality over arrays \(a\) and \(b\) over a given range + \([i,j]\), i.e., + + \[ + + \forall k . i \leq k \leq j \Rightarrow a[k] = b[k] + \] + + +
            +
          • Arity: 4 + +
              +
            • 1: Term of array Sort (first array) +
            • +
            • 2: Term of array Sort (second array) +
            • +
            • 3: Term of array index Sort (lower bound of range, inclusive) +
            • +
            • 4: Term of array index Sort (upper bound of range, inclusive) + +
            +
          • +
          • Create Term of this Kind with: + + +
          • +
          • Create Op of this kind with: + + +
          +
          +
          Note:
          +
          This kind is experimental and may be changed or removed in + future versions., We currently support the creation of array equalities over index + Sorts bit-vector, floating-point, Int and Real. + Requires to enable option + :ref:`arrays-exp<lbl-option-arrays-exp>`.
          +
          +
        • +
        + + + + + + + + + + + + + + + +
          +
        • +

          APPLY_UPDATER

          +
          public static final Kind APPLY_UPDATER
          +
          Datatype update application. + +
          +
          +
          Note:
          +
          Does not change the datatype argument if misapplied.
          +
          +
        • +
        + + + +
          +
        • +

          MATCH

          +
          public static final Kind MATCH
          +
          Match expression. + + This kind is primarily used in the parser to support the + SMT-LIBv2 match expression. + + For example, the SMT-LIBv2 syntax for the following match term + + .. code. smtlib + + (match l (((cons h t) h) (nil 0))) + + is represented by the AST + + .. code. lisp + + (MATCH l + (MATCH_BIND_CASE (VARIABLE_LIST h t) (cons h t) h) + (MATCH_CASE nil 0)) + + Terms of kind MATCH_CASE are constant case expressions, + which are used for nullary constructors. Kind + MATCH_BIND_CASE is used for constructors with selectors + and variable match patterns. If not all constructors are covered, at least + one catch-all variable pattern must be included. + +
          +
        • +
        + + + +
          +
        • +

          MATCH_CASE

          +
          public static final Kind MATCH_CASE
          +
          Match case for nullary constructors. + + A (constant) case expression to be used within a match expression. + + +
          +
        • +
        + + + +
          +
        • +

          MATCH_BIND_CASE

          +
          public static final Kind MATCH_BIND_CASE
          +
          Match case with binders, for constructors with selectors and variable + patterns. + + A (non-constant) case expression to be used within a match expression. + + +
            +
          • Arity: 3 + +
              +
            • For variable patterns: + +
                +
              • 1: Term of kind VARIABLE_LIST (containing the free variable of the case) +
              • +
              • 2: Term of kind VARIABLE (the pattern expression, the free variable of the case) +
              • +
              • 3: Term of any Sort (the term the pattern evaluates to) + +
              +
            +
          • +
          • For constructors with selectors: + +
              +
            • 1: Term of kind VARIABLE_LIST (containing the free variable of the case) +
            • +
            • 2: Term of kind APPLY_CONSTRUCTOR (the pattern expression, applying the set of variables to the constructor) +
            • +
            • 3: Term of any Sort (the term the match term evaluates to) + + +
            +
          • +
          • Create Term of this Kind with: + + +
          • +
          • Create Op of this kind with: + + +
          +
        • +
        + + + +
          +
        • +

          TUPLE_PROJECT

          +
          public static final Kind TUPLE_PROJECT
          +
          Tuple projection. + + This operator takes a tuple as an argument and returns a tuple obtained by + concatenating components of its argument at the provided indices. + + For example, + + .. code. smtlib + + ((_ tuple.project 1 2 2 3 1) (tuple 10 20 30 40)) + + yields + + .. code. smtlib + + (tuple 20 30 30 40 20) + + +
          +
        • +
        + + + +
          +
        • +

          NULLABLE_LIFT

          +
          public static final Kind NULLABLE_LIFT
          +
          Lifting operator for nullable terms. + This operator lifts a built-in operator or a user-defined function + to nullable terms. + For built-in kinds use mkNullableLift. + For user-defined functions use mkTerm. + +
          +
        • +
        + + + +
          +
        • +

          SEP_NIL

          +
          public static final Kind SEP_NIL
          +
          Separation logic nil. + +
          +
          +
          Note:
          +
          This kind is experimental and may be changed or removed in + future versions.
          +
          +
        • +
        + + + +
          +
        • +

          SEP_EMP

          +
          public static final Kind SEP_EMP
          +
          Separation logic empty heap. + +
          +
          +
          Note:
          +
          This kind is experimental and may be changed or removed in + future versions.
          +
          +
        • +
        + + + +
          +
        • +

          SEP_PTO

          +
          public static final Kind SEP_PTO
          +
          Separation logic points-to relation. + +
          +
          +
          Note:
          +
          This kind is experimental and may be changed or removed in + future versions.
          +
          +
        • +
        + + + +
          +
        • +

          SEP_STAR

          +
          public static final Kind SEP_STAR
          +
          Separation logic star. + +
          +
          +
          Note:
          +
          This kind is experimental and may be changed or removed in + future versions.
          +
          +
        • +
        + + + +
          +
        • +

          SEP_WAND

          +
          public static final Kind SEP_WAND
          +
          Separation logic magic wand. + +
            +
          • Arity: 2 + +
              +
            • 1: Terms of Sort Bool (the antecendant of the magic wand constraint) +
            • +
            • 2: Terms of Sort Bool (conclusion of the magic wand constraint, + which is asserted to hold in all heaps that are disjoint + extensions of the antecedent) + +
            +
          • +
          • Create Term of this Kind with: + + +
          • +
          • Create Op of this kind with: + + +
          +
          +
          Note:
          +
          This kind is experimental and may be changed or removed in + future versions.
          +
          +
        • +
        + + + +
          +
        • +

          SET_EMPTY

          +
          public static final Kind SET_EMPTY
          +
          Empty set. + +
          +
        • +
        + + + + + + + + + + + + + + + + + + + +
          +
        • +

          SET_MEMBER

          +
          public static final Kind SET_MEMBER
          +
          Set membership predicate. + + Determines if the given set element is a member of the second set. + +
          +
        • +
        + + + +
          +
        • +

          SET_SINGLETON

          +
          public static final Kind SET_SINGLETON
          +
          Singleton set. + + Construct a singleton set from an element given as a parameter. + The returned set has the same Sort as the element. + +
          +
        • +
        + + + + + + + + + + + + + + + +
          +
        • +

          SET_UNIVERSE

          +
          public static final Kind SET_UNIVERSE
          +
          Finite universe set. + + All set variables must be interpreted as subsets of it. + +
          +
          +
          Note:
          +
          SET_UNIVERSE is considered a special symbol of + the theory of sets and is not considered as a set value, i.e., + Term.isSetValue() will return false.
          +
          +
        • +
        + + + +
          +
        • +

          SET_COMPREHENSION

          +
          public static final Kind SET_COMPREHENSION
          +
          Set comprehension + + + A set comprehension is specified by a variable list \(x_1 ... x_n\), + a predicate \(P[x_1...x_n]\), and a term \(t[x_1...x_n]\). A + comprehension \(C\) with the above form has members given by the + following semantics: + + .. math. + + \forall y. ( \exists x_1...x_n. P[x_1...x_n] \wedge t[x_1...x_n] = y ) + \Leftrightarrow (set.member \; y \; C) + + where \(y\) ranges over the element Sort of the (set) Sort of the + comprehension. If \(t[x_1..x_n]\) is not provided, it is equivalent + to \(y\) in the above formula. + +
          +
          +
          Note:
          +
          This kind is experimental and may be changed or removed in + future versions.
          +
          +
        • +
        + + + +
          +
        • +

          SET_CHOOSE

          +
          public static final Kind SET_CHOOSE
          +
          Set choose. + + + Select an element from a given set. For a set \(A = \{x\}\), the term + (set.choose \(A\)) is equivalent to the term \(x_1\). For an empty + set, it is an arbitrary value. For a set with cardinality > 1, it will + deterministically return an element in \(A\). + + +
          +
          +
          Note:
          +
          This kind is experimental and may be changed or removed in + future versions.
          +
          +
        • +
        + + + + + + + +
          +
        • +

          SET_IS_SINGLETON

          +
          public static final Kind SET_IS_SINGLETON
          +
          Set is singleton tester. + +
          +
          +
          Note:
          +
          This kind is experimental and may be changed or removed in + future versions.
          +
          +
        • +
        + + + +
          +
        • +

          SET_MAP

          +
          public static final Kind SET_MAP
          +
          Set map. + + + This operator applies the first argument, a function of + Sort \((\rightarrow S_1 \; S_2)\), to every element of the second + argument, a set of Sort (Set \(S_1\)), and returns a set of Sort + (Set \(S_2\)). + +
          +
          +
          Note:
          +
          This kind is experimental and may be changed or removed in + future versions.
          +
          +
        • +
        + + + +
          +
        • +

          SET_FILTER

          +
          public static final Kind SET_FILTER
          +
          Set filter. + + + This operator filters the elements of a set. + (set.filter \(p \; A\)) takes a predicate \(p\) of Sort + \((\rightarrow T \; Bool)\) as a first argument, and a set \(A\) + of Sort (Set \(T\)) as a second argument, and returns a subset of Sort + (Set \(T\)) that includes all elements of \(A\) that satisfy + \(p\). + +
          +
          +
          Note:
          +
          This kind is experimental and may be changed or removed in + future versions.
          +
          +
        • +
        + + + +
          +
        • +

          SET_ALL

          +
          public static final Kind SET_ALL
          +
          Set all. + + + This operator checks whether all elements of a set satisfy a predicate. + (set.all \(p \; A\)) takes a predicate \(p\) of Sort + \((\rightarrow T \; Bool)\) as a first argument, and a set \(A\) + of Sort (Set \(T\)) as a second argument, and returns true iff all + elements of \(A\) satisfy predicate \(p\). + +
          +
          +
          Note:
          +
          This kind is experimental and may be changed or removed in + future versions.
          +
          +
        • +
        + + + +
          +
        • +

          SET_SOME

          +
          public static final Kind SET_SOME
          +
          Set some. + + + This operator checks whether at least one element of a set satisfies a predicate. + (set.some \(p \; A\)) takes a predicate \(p\) of Sort + \((\rightarrow T \; Bool)\) as a first argument, and a set \(A\) + of Sort (Set \(T\)) as a second argument, and returns true iff at least + one element of \(A\) satisfies predicate \(p\). + +
          +
          +
          Note:
          +
          This kind is experimental and may be changed or removed in + future versions.
          +
          +
        • +
        + + + +
          +
        • +

          SET_FOLD

          +
          public static final Kind SET_FOLD
          +
          Set fold. + + + This operator combines elements of a set into a single value. + (set.fold \(f \; t \; A\)) folds the elements of set \(A\) + starting with Term \(t\) and using the combining function \(f\). + +
            +
          • Arity: 2 + +
              +
            • 1: Term of function Sort \((\rightarrow S_1 \; S_2 \; S_2)\) +
            • +
            • 2: Term of Sort \(S_2\) (the initial value) +
            • +
            • 3: Term of bag Sort (Set \(S_1\)) + + +
            +
          • +
          • Create Term of this Kind with: + + +
          +
          +
          Note:
          +
          This kind is experimental and may be changed or removed in + future versions.
          +
          +
        • +
        + + + + + + + +
          +
        • +

          RELATION_TABLE_JOIN

          +
          public static final Kind RELATION_TABLE_JOIN
          +
          Table join operator for relations has the form + \(((\_ \; rel.table\_join \; m_1 \; n_1 \; \dots \; m_k \; n_k) \; A \; B)\) + where \(m_1 \; n_1 \; \dots \; m_k \; n_k\) are natural numbers, + and \(A, B\) are relations. + This operator filters the product of two sets based on the equality of + projected tuples using indices \(m_1, \dots, m_k\) in relation \(A\), + and indices \(n_1, \dots, n_k\) in relation \(B\). + +
            +
          • Arity: 2 + +
              +
            • 1: Term of relation Sort + +
            • +
            • 2: Term of relation Sort + +
            +
          • +
          • Indices: n +
              +
            • 1..n: Indices of the projection + + +
            +
          • +
          • Create Term of this Kind with: + +
          • +
          • Create Op of this kind with: + +
          +
          +
          Note:
          +
          This kind is experimental and may be changed or removed in + future versions.
          +
          +
        • +
        + + + + + + + + + + + + + + + +
          +
        • +

          RELATION_JOIN_IMAGE

          +
          public static final Kind RELATION_JOIN_IMAGE
          +
          Relation join image. + +
          +
          +
          Note:
          +
          This kind is experimental and may be changed or removed in + future versions.
          +
          +
        • +
        + + + + + + + +
          +
        • +

          RELATION_GROUP

          +
          public static final Kind RELATION_GROUP
          +
          Relation group + + + \(((\_ \; rel.group \; n_1 \; \dots \; n_k) \; A)\) partitions tuples + of relation \(A\) such that tuples that have the same projection + with indices \(n_1 \; \dots \; n_k\) are in the same part. + It returns a set of relations of type \((Set \; T)\) where + \(T\) is the type of \(A\). + +
          +
          +
          Note:
          +
          This kind is experimental and may be changed or removed in + future versions.
          +
          +
        • +
        + + + +
          +
        • +

          RELATION_AGGREGATE

          +
          public static final Kind RELATION_AGGREGATE
          +
          Relation aggregate operator has the form + \(((\_ \; rel.aggr \; n_1 ... n_k) \; f \; i \; A)\) + where \(n_1, ..., n_k\) are natural numbers, + \(f\) is a function of type + \((\rightarrow (Tuple \; T_1 \; ... \; T_j)\; T \; T)\), + \(i\) has the type \(T\), + and \(A\) has type \((Relation \; T_1 \; ... \; T_j)\). + The returned type is \((Set \; T)\). + + This operator aggregates elements in A that have the same tuple projection + with indices n_1, ..., n_k using the combining function \(f\), + and initial value \(i\). + +
            +
          • Arity: 3 + +
              +
            • 1: Term of sort \((\rightarrow (Tuple \; T_1 \; ... \; T_j)\; T \; T)\) +
            • +
            • 2: Term of Sort \(T\) +
            • +
            • 3: Term of relation sort \(Relation T_1 ... T_j\) + +
            +
          • +
          • Indices: n +
              +
            • 1..n: Indices of the projection + +
            +
          • +
          • Create Term of this Kind with: + +
          • +
          • Create Op of this kind with: + +
          +
          +
          Note:
          +
          This kind is experimental and may be changed or removed in + future versions.
          +
          +
        • +
        + + + +
          +
        • +

          RELATION_PROJECT

          +
          public static final Kind RELATION_PROJECT
          +
          Relation projection operator extends tuple projection operator to sets. + +
          +
          +
          Note:
          +
          This kind is experimental and may be changed or removed in + future versions.
          +
          +
        • +
        + + + +
          +
        • +

          BAG_EMPTY

          +
          public static final Kind BAG_EMPTY
          +
          Empty bag. + +
          +
        • +
        + + + + + + + + + + + + + + + + + + + + + + + +
          +
        • +

          BAG_SUBBAG

          +
          public static final Kind BAG_SUBBAG
          +
          Bag inclusion predicate. + + Determine if multiplicities of the first bag are less than or equal to + multiplicities of the second bag. + +
          +
        • +
        + + + + + + + + + + + +
          +
        • +

          BAG_SETOF

          +
          public static final Kind BAG_SETOF
          +
          Bag setof. + + Eliminate duplicates in a given bag. The returned bag contains exactly the + same elements in the given bag, but with multiplicity one. + +
          +
          +
          Note:
          +
          This kind is experimental and may be changed or removed in + future versions.
          +
          +
        • +
        + + + +
          +
        • +

          BAG_MAKE

          +
          public static final Kind BAG_MAKE
          +
          Bag make. + + Construct a bag with the given element and given multiplicity. + +
          +
        • +
        + + + + + + + +
          +
        • +

          BAG_CHOOSE

          +
          public static final Kind BAG_CHOOSE
          +
          Bag choose. + + Select an element from a given bag. + + + For a bag \(A = \{(x,n)\}\) where \(n\) is the multiplicity, then + the term (choose \(A\)) is equivalent to the term \(x\). For an + empty bag, then it is an arbitrary value. For a bag that contains distinct + elements, it will deterministically return an element in \(A\). + + +
          +
          +
          Note:
          +
          This kind is experimental and may be changed or removed in + future versions.
          +
          +
        • +
        + + + +
          +
        • +

          BAG_MAP

          +
          public static final Kind BAG_MAP
          +
          Bag map. + + + This operator applies the first argument, a function of + Sort \((\rightarrow S_1 \; S_2)\), to every element of the second + argument, a set of Sort (Bag \(S_1\)), and returns a set of Sort + (Bag \(S_2\)). + +
          +
          +
          Note:
          +
          This kind is experimental and may be changed or removed in + future versions.
          +
          +
        • +
        + + + +
          +
        • +

          BAG_FILTER

          +
          public static final Kind BAG_FILTER
          +
          Bag filter. + + + This operator filters the elements of a bag. + (bag.filter \(p \; B\)) takes a predicate \(p\) of Sort + \((\rightarrow T \; Bool)\) as a first argument, and a bag \(B\) + of Sort (Bag \(T\)) as a second argument, and returns a subbag of Sort + (Bag \(T\)) that includes all elements of \(B\) that satisfy + \(p\) with the same multiplicity. + +
          +
          +
          Note:
          +
          This kind is experimental and may be changed or removed in + future versions.
          +
          +
        • +
        + + + +
          +
        • +

          BAG_FOLD

          +
          public static final Kind BAG_FOLD
          +
          Bag fold. + + + This operator combines elements of a bag into a single value. + (bag.fold \(f \; t \; B\)) folds the elements of bag \(B\) + starting with Term \(t\) and using the combining function \(f\). + +
            +
          • Arity: 2 + +
              +
            • 1: Term of function Sort \((\rightarrow S_1 \; S_2 \; S_2)\) +
            • +
            • 2: Term of Sort \(S_2\) (the initial value) +
            • +
            • 3: Term of bag Sort (Bag \(S_1\)) + + +
            +
          • +
          • Create Term of this Kind with: + + +
          +
          +
          Note:
          +
          This kind is experimental and may be changed or removed in + future versions.
          +
          +
        • +
        + + + +
          +
        • +

          BAG_PARTITION

          +
          public static final Kind BAG_PARTITION
          +
          Bag partition. + + + This operator partitions of a bag of elements into disjoint bags. + (bag.partition \(r \; B\)) partitions the elements of bag \(B\) + of type \((Bag \; E)\) based on the equivalence relations \(r\) of + type \((\rightarrow \; E \; E \; Bool)\). + It returns a bag of bags of type \((Bag \; (Bag \; E))\). + +
          +
          +
          Note:
          +
          This kind is experimental and may be changed or removed in + future versions.
          +
          +
        • +
        + + + +
          +
        • +

          TABLE_PRODUCT

          +
          public static final Kind TABLE_PRODUCT
          +
          Table cross product. + +
          +
          +
          Note:
          +
          This kind is experimental and may be changed or removed in + future versions.
          +
          +
        • +
        + + + +
          +
        • +

          TABLE_PROJECT

          +
          public static final Kind TABLE_PROJECT
          +
          Table projection operator extends tuple projection operator to tables. + +
          +
          +
          Note:
          +
          This kind is experimental and may be changed or removed in + future versions.
          +
          +
        • +
        + + + +
          +
        • +

          TABLE_AGGREGATE

          +
          public static final Kind TABLE_AGGREGATE
          +
          Table aggregate operator has the form + \(((\_ \; table.aggr \; n_1 ... n_k) \; f \; i \; A)\) + where \(n_1, ..., n_k\) are natural numbers, + \(f\) is a function of type + \((\rightarrow (Tuple \; T_1 \; ... \; T_j)\; T \; T)\), + \(i\) has the type \(T\), + and \(A\) has type \((Table \; T_1 \; ... \; T_j)\). + The returned type is \((Bag \; T)\). + + This operator aggregates elements in A that have the same tuple projection + with indices n_1, ..., n_k using the combining function \(f\), + and initial value \(i\). + +
            +
          • Arity: 3 + +
              +
            • 1: Term of sort \((\rightarrow (Tuple \; T_1 \; ... \; T_j)\; T \; T)\) +
            • +
            • 2: Term of Sort \(T\) +
            • +
            • 3: Term of table sort \(Table T_1 ... T_j\) + +
            +
          • +
          • Indices: n +
              +
            • 1..n: Indices of the projection + +
            +
          • +
          • Create Term of this Kind with: + +
          • +
          • Create Op of this kind with: + +
          +
          +
          Note:
          +
          This kind is experimental and may be changed or removed in + future versions.
          +
          +
        • +
        + + + +
          +
        • +

          TABLE_JOIN

          +
          public static final Kind TABLE_JOIN
          +
          Table join operator has the form + \(((\_ \; table.join \; m_1 \; n_1 \; \dots \; m_k \; n_k) \; A \; B)\) + where \(m_1 \; n_1 \; \dots \; m_k \; n_k\) are natural numbers, + and \(A, B\) are tables. + This operator filters the product of two bags based on the equality of + projected tuples using indices \(m_1, \dots, m_k\) in table \(A\), + and indices \(n_1, \dots, n_k\) in table \(B\). + +
            +
          • Arity: 2 + +
              +
            • 1: Term of table Sort + +
            • +
            • 2: Term of table Sort + +
            +
          • +
          • Indices: n +
              +
            • 1..n: Indices of the projection + + +
            +
          • +
          • Create Term of this Kind with: + +
          • +
          • Create Op of this kind with: + +
          +
          +
          Note:
          +
          This kind is experimental and may be changed or removed in + future versions.
          +
          +
        • +
        + + + +
          +
        • +

          TABLE_GROUP

          +
          public static final Kind TABLE_GROUP
          +
          Table group + + + \(((\_ \; table.group \; n_1 \; \dots \; n_k) \; A)\) partitions tuples + of table \(A\) such that tuples that have the same projection + with indices \(n_1 \; \dots \; n_k\) are in the same part. + It returns a bag of tables of type \((Bag \; T)\) where + \(T\) is the type of \(A\). + +
          +
          +
          Note:
          +
          This kind is experimental and may be changed or removed in + future versions.
          +
          +
        • +
        + + + + + + + + + + + + + + + +
          +
        • +

          STRING_SUBSTR

          +
          public static final Kind STRING_SUBSTR
          +
          String substring. + + + Extracts a substring, starting at index \(i\) and of length \(l\), + from a string \(s\). If the start index is negative, the start index + is greater than the length of the string, or the length is negative, the + result is the empty string. + +
          +
        • +
        + + + +
          +
        • +

          STRING_UPDATE

          +
          public static final Kind STRING_UPDATE
          +
          String update. + + + Updates a string \(s\) by replacing its context starting at an index + with string \(t\). If the start index is negative, the start index is + greater than the length of the string, the result is \(s\). Otherwise, + the length of the original string is preserved. + +
          +
        • +
        + + + +
          +
        • +

          STRING_CHARAT

          +
          public static final Kind STRING_CHARAT
          +
          String character at. + + + Returns the character at index \(i\) from a string \(s\). If the + index is negative or the index is greater than the length of the string, + the result is the empty string. Otherwise the result is a string of + length 1. + +
          +
        • +
        + + + +
          +
        • +

          STRING_CONTAINS

          +
          public static final Kind STRING_CONTAINS
          +
          String contains. + + + Determines whether a string \(s_1\) contains another string + \(s_2\). If \(s_2\) is empty, the result is always true. + +
          +
        • +
        + + + +
          +
        • +

          STRING_INDEXOF

          +
          public static final Kind STRING_INDEXOF
          +
          String index-of. + + + Returns the index of a substring \(s_2\) in a string \(s_1\) + starting at index \(i\). If the index is negative or greater than the + length of string \(s_1\) or the substring \(s_2\) does not appear + in string \(s_1\) after index \(i\), the result is -1. + +
          +
        • +
        + + + +
          +
        • +

          STRING_INDEXOF_RE

          +
          public static final Kind STRING_INDEXOF_RE
          +
          String index-of regular expression match. + + + Returns the first match of a regular expression \(r\) in a + string \(s\). If the index is negative or greater than the length of + string \(s_1\), or \(r\) does not match a substring in \(s\) + after index \(i\), the result is -1. + +
          +
        • +
        + + + +
          +
        • +

          STRING_REPLACE

          +
          public static final Kind STRING_REPLACE
          +
          String replace. + + + Replaces a string \(s_2\) in a string \(s_1\) with string + \(s_3\). If \(s_2\) does not appear in \(s_1\), \(s_1\) is + returned unmodified. + +
          +
        • +
        + + + +
          +
        • +

          STRING_REPLACE_ALL

          +
          public static final Kind STRING_REPLACE_ALL
          +
          String replace all. + + + Replaces all occurrences of a string \(s_2\) in a string \(s_1\) + with string \(s_3\). If \(s_2\) does not appear in \(s_1\), + \(s_1\) is returned unmodified. + +
          +
        • +
        + + + +
          +
        • +

          STRING_REPLACE_RE

          +
          public static final Kind STRING_REPLACE_RE
          +
          String replace regular expression match. + + + Replaces the first match of a regular expression \(r\) in + string \(s_1\) with string \(s_2\). If \(r\) does not match a + substring of \(s_1\), \(s_1\) is returned unmodified. + +
          +
        • +
        + + + +
          +
        • +

          STRING_REPLACE_RE_ALL

          +
          public static final Kind STRING_REPLACE_RE_ALL
          +
          String replace all regular expression matches. + + + Replaces all matches of a regular expression \(r\) in string + \(s_1\) with string \(s_2\). If \(r\) does not match a + substring of \(s_1\), string \(s_1\) is returned unmodified. + +
          +
        • +
        + + + + + + + + + + + + + + + + + + + +
          +
        • +

          STRING_FROM_CODE

          +
          public static final Kind STRING_FROM_CODE
          +
          String from code. + + Returns a string containing a single character whose code point matches + the argument to this function, or the empty string if the argument is + out-of-bounds. + +
          +
        • +
        + + + +
          +
        • +

          STRING_LT

          +
          public static final Kind STRING_LT
          +
          String less than. + + + Returns true if string \(s_1\) is (strictly) less than \(s_2\) + based on a lexiographic ordering over code points. + +
          +
        • +
        + + + +
          +
        • +

          STRING_LEQ

          +
          public static final Kind STRING_LEQ
          +
          String less than or equal. + + + Returns true if string \(s_1\) is less than or equal to \(s_2\) + based on a lexiographic ordering over code points. + +
          +
        • +
        + + + +
          +
        • +

          STRING_PREFIX

          +
          public static final Kind STRING_PREFIX
          +
          String prefix-of. + + + Determines whether a string \(s_1\) is a prefix of string \(s_2\). + If string s1 is empty, this operator returns true. + +
          +
        • +
        + + + +
          +
        • +

          STRING_SUFFIX

          +
          public static final Kind STRING_SUFFIX
          +
          String suffix-of. + + + Determines whether a string \(s_1\) is a suffix of the second string. + If string \(s_1\) is empty, this operator returns true. + +
          +
        • +
        + + + + + + + + + + + +
          +
        • +

          STRING_TO_INT

          +
          public static final Kind STRING_TO_INT
          +
          String to integer (total function). + + If the string does not contain an integer or the integer is negative, the + operator returns `-1`. + +
          +
        • +
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          +
        • +

          REGEXP_RANGE

          +
          public static final Kind REGEXP_RANGE
          +
          Regular expression range. + +
          +
        • +
        + + + +
          +
        • +

          REGEXP_REPEAT

          +
          public static final Kind REGEXP_REPEAT
          +
          Operator for regular expression repeat. + +
          +
        • +
        + + + +
          +
        • +

          REGEXP_LOOP

          +
          public static final Kind REGEXP_LOOP
          +
          Regular expression loop. + + Regular expression loop from lower bound to upper bound number of + repetitions. + +
          +
        • +
        + + + +
          +
        • +

          REGEXP_NONE

          +
          public static final Kind REGEXP_NONE
          +
          Regular expression none. + +
          +
        • +
        + + + +
          +
        • +

          REGEXP_ALL

          +
          public static final Kind REGEXP_ALL
          +
          Regular expression all. + +
          +
        • +
        + + + +
          +
        • +

          REGEXP_ALLCHAR

          +
          public static final Kind REGEXP_ALLCHAR
          +
          Regular expression all characters. + +
          +
        • +
        + + + + + + + + + + + + + + + +
          +
        • +

          SEQ_EXTRACT

          +
          public static final Kind SEQ_EXTRACT
          +
          Sequence extract. + + + Extracts a subsequence, starting at index \(i\) and of length \(l\), + from a sequence \(s\). If the start index is negative, the start index + is greater than the length of the sequence, or the length is negative, the + result is the empty sequence. + +
          +
        • +
        + + + +
          +
        • +

          SEQ_UPDATE

          +
          public static final Kind SEQ_UPDATE
          +
          Sequence update. + + + Updates a sequence \(s\) by replacing its context starting at an index + with string \(t\). If the start index is negative, the start index is + greater than the length of the sequence, the result is \(s\). + Otherwise, the length of the original sequence is preserved. + +
          +
        • +
        + + + +
          +
        • +

          SEQ_AT

          +
          public static final Kind SEQ_AT
          +
          Sequence element at. + + + Returns the element at index \(i\) from a sequence \(s\). If the index + is negative or the index is greater or equal to the length of the + sequence, the result is the empty sequence. Otherwise the result is a + sequence of length 1. + +
          +
        • +
        + + + +
          +
        • +

          SEQ_CONTAINS

          +
          public static final Kind SEQ_CONTAINS
          +
          Sequence contains. + + + Checks whether a sequence \(s_1\) contains another sequence + \(s_2\). If \(s_2\) is empty, the result is always true. + +
          +
        • +
        + + + +
          +
        • +

          SEQ_INDEXOF

          +
          public static final Kind SEQ_INDEXOF
          +
          Sequence index-of. + + + Returns the index of a subsequence \(s_2\) in a sequence \(s_1\) + starting at index \(i\). If the index is negative or greater than the + length of sequence \(s_1\) or the subsequence \(s_2\) does not + appear in sequence \(s_1\) after index \(i\), the result is -1. + +
          +
        • +
        + + + +
          +
        • +

          SEQ_REPLACE

          +
          public static final Kind SEQ_REPLACE
          +
          Sequence replace. + + + Replaces the first occurrence of a sequence \(s_2\) in a + sequence \(s_1\) with sequence \(s_3\). If \(s_2\) does not + appear in \(s_1\), \(s_1\) is returned unmodified. + +
          +
        • +
        + + + +
          +
        • +

          SEQ_REPLACE_ALL

          +
          public static final Kind SEQ_REPLACE_ALL
          +
          Sequence replace all. + + + Replaces all occurrences of a sequence \(s_2\) in a sequence + \(s_1\) with sequence \(s_3\). If \(s_2\) does not appear in + \(s_1\), sequence \(s_1\) is returned unmodified. + +
          +
        • +
        + + + + + + + +
          +
        • +

          SEQ_PREFIX

          +
          public static final Kind SEQ_PREFIX
          +
          Sequence prefix-of. + + + Checks whether a sequence \(s_1\) is a prefix of sequence \(s_2\). + If sequence \(s_1\) is empty, this operator returns true. + +
          +
        • +
        + + + +
          +
        • +

          SEQ_SUFFIX

          +
          public static final Kind SEQ_SUFFIX
          +
          Sequence suffix-of. + + + Checks whether a sequence \(s_1\) is a suffix of sequence \(s_2\). + If sequence \(s_1\) is empty, this operator returns true. + +
          +
        • +
        + + + +
          +
        • +

          CONST_SEQUENCE

          +
          public static final Kind CONST_SEQUENCE
          +
          Constant sequence. + + A constant sequence is a term that is equivalent to: + + .. code. smtlib + + (seq.++ (seq.unit c1) ... (seq.unit cn)) + + where \(n \leq 0\) and \(c_1, ..., c_n\) are constants of some + sort. The elements can be extracted with Term.getSequenceValue(). + + +
          +
        • +
        + + + + + + + + + + + +
          +
        • +

          FORALL

          +
          public static final Kind FORALL
          +
          Universally quantified formula. + + +
          +
        • +
        + + + +
          +
        • +

          EXISTS

          +
          public static final Kind EXISTS
          +
          Existentially quantified formula. + + +
          +
        • +
        + + + + + + + +
          +
        • +

          INST_PATTERN

          +
          public static final Kind INST_PATTERN
          +
          Instantiation pattern. + + Specifies a (list of) terms to be used as a pattern for quantifier + instantiation. + +
          +
          +
          Note:
          +
          Should only be used as a child of + INST_PATTERN_LIST.
          +
          +
        • +
        + + + +
          +
        • +

          INST_NO_PATTERN

          +
          public static final Kind INST_NO_PATTERN
          +
          Instantiation no-pattern. + + Specifies a (list of) terms that should not be used as a pattern for + quantifier instantiation. + +
          +
          +
          Note:
          +
          Should only be used as a child of + INST_PATTERN_LIST.
          +
          +
        • +
        + + + +
          +
        • +

          INST_POOL

          +
          public static final Kind INST_POOL
          +
          Instantiation pool annotation. + + Specifies an annotation for pool based instantiation. + + In detail, pool symbols can be declared via the method + + A pool symbol represents a set of terms of a given sort. An instantiation + pool annotation should either: + (1) have child sets matching the types of the quantified formula, + (2) have a child set of tuple type whose component types match the types + of the quantified formula. + + For an example of (1), for a quantified formula: + + + .. code. lisp + + (FORALL (VARIABLE_LIST x y) F (INST_PATTERN_LIST (INST_POOL p q))) + + if \(x\) and \(y\) have Sorts \(S_1\) and \(S_2\), then + pool symbols \(p\) and \(q\) should have Sorts (Set \(S_1\)) + and (Set \(S_2\)), respectively. This annotation specifies that the + quantified formula above should be instantiated with the product of all + terms that occur in the sets \(p\) and \(q\). + + + Alternatively, as an example of (2), for a quantified formula: + + + .. code. lisp + + (FORALL (VARIABLE_LIST x y) F (INST_PATTERN_LIST (INST_POOL s))) + + \(s\) should have Sort (Set (Tuple \(S_1\) \(S_2\))). This + annotation specifies that the quantified formula above should be + instantiated with the pairs of values in \(s\). + +
          +
          +
          Note:
          +
          This kind is experimental and may be changed or removed in + future versions., Should only be used as a child of + INST_PATTERN_LIST.
          +
          +
        • +
        + + + +
          +
        • +

          INST_ADD_TO_POOL

          +
          public static final Kind INST_ADD_TO_POOL
          +
          A instantantiation-add-to-pool annotation. + + An instantantiation-add-to-pool annotation indicates that when a quantified + formula is instantiated, the instantiated version of a term should be + added to the given pool. + + For example, consider a quantified formula: + + + .. code. lisp + + (FORALL (VARIABLE_LIST x) F + (INST_PATTERN_LIST (INST_ADD_TO_POOL (ADD x 1) p))) + + where assume that \(x\) has type Int. When this quantified formula is + instantiated with, e.g., the term \(t\), the term (ADD t 1) is + added to pool \(p\). + + +
          +
          +
          Note:
          +
          This kind is experimental and may be changed or removed in + future versions., Should only be used as a child of + INST_PATTERN_LIST.
          +
          +
        • +
        + + + +
          +
        • +

          SKOLEM_ADD_TO_POOL

          +
          public static final Kind SKOLEM_ADD_TO_POOL
          +
          A skolemization-add-to-pool annotation. + + An skolemization-add-to-pool annotation indicates that when a quantified + formula is skolemized, the skolemized version of a term should be added to + the given pool. + + For example, consider a quantified formula: + + + .. code. lisp + + (FORALL (VARIABLE_LIST x) F + (INST_PATTERN_LIST (SKOLEM_ADD_TO_POOL (ADD x 1) p))) + + where assume that \(x\) has type Int. When this quantified formula is + skolemized, e.g., with \(k\) of type Int, then the term (ADD k 1) + is added to the pool \(p\). + + +
          +
          +
          Note:
          +
          This kind is experimental and may be changed or removed in + future versions., Should only be used as a child of + INST_PATTERN_LIST.
          +
          +
        • +
        + + + +
          +
        • +

          INST_ATTRIBUTE

          +
          public static final Kind INST_ATTRIBUTE
          +
          Instantiation attribute. + + Specifies a custom property for a quantified formula given by a + term that is ascribed a user attribute. + +
          +
          +
          Note:
          +
          Should only be used as a child of + INST_PATTERN_LIST.
          +
          +
        • +
        + + + +
          +
        • +

          INST_PATTERN_LIST

          +
          public static final Kind INST_PATTERN_LIST
          +
          A list of instantiation patterns, attributes or annotations. + + +
          +
        • +
        + + + +
          +
        • +

          LAST_KIND

          +
          public static final Kind LAST_KIND
          +
          Marks the upper-bound of this enumeration.
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          values

          +
          public static Kind[] values()
          +
          Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +
          +for (Kind c : Kind.values())
          +    System.out.println(c);
          +
          +
          +
          Returns:
          +
          an array containing the constants of this enum type, in the order they are declared
          +
          +
        • +
        + + + +
          +
        • +

          valueOf

          +
          public static Kind valueOf​(java.lang.String name)
          +
          Returns the enum constant of this type with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)
          +
          +
          Parameters:
          +
          name - the name of the enum constant to be returned.
          +
          Returns:
          +
          the enum constant with the specified name
          +
          Throws:
          +
          java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
          +
          java.lang.NullPointerException - if the argument is null
          +
          +
        • +
        + + + + + + + +
          +
        • +

          getValue

          +
          public int getValue()
          +
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
    + +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Op.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Op.html new file mode 100644 index 0000000000..17f5bb4872 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Op.html @@ -0,0 +1,566 @@ + + + + + +Op + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Class Op

    +
    +
    +
      +
    • java.lang.Object
    • +
    • +
        +
      • io.github.cvc5.Op
      • +
      +
    • +
    +
    +
      +
    • +
      +
      public class Op
      +extends java.lang.Object
      +
      A cvc5 operator. + + An operator is a term that represents certain operators, instantiated + with its required parameters, e.g., a Term of kind + Kind.BITVECTOR_EXTRACT.
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Field Summary

        + + + + + + + + + + + + +
        Fields 
        Modifier and TypeFieldDescription
        protected longpointer 
        +
      • +
      +
      + +
      +
        +
      • + + +

        Constructor Summary

        + + + + + + + + + + +
        Constructors 
        ConstructorDescription
        Op() +
        Null op
        +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Summary

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        All Methods Instance Methods Concrete Methods 
        Modifier and TypeMethodDescription
        voiddeletePointer() 
        protected voiddeletePointer​(long pointer) 
        booleanequals​(java.lang.Object t) +
        Syntactic equality operator.
        +
        Termget​(int i) +
        Get the index at position i.
        +
        KindgetKind() 
        intgetNumIndices() 
        longgetPointer() 
        inthashCode() +
        Get the hash value of an operator.
        +
        booleanisIndexed() 
        booleanisNull() 
        java.lang.StringtoString() 
        protected java.lang.StringtoString​(long pointer) 
        +
          +
        • + + +

          Methods inherited from class java.lang.Object

          +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Field Detail

        + + + +
          +
        • +

          pointer

          +
          protected long pointer
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          Op

          +
          public Op()
          +
          Null op
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          deletePointer

          +
          protected void deletePointer​(long pointer)
          +
        • +
        + + + +
          +
        • +

          equals

          +
          public boolean equals​(java.lang.Object t)
          +
          Syntactic equality operator.
          +
          +
          Overrides:
          +
          equals in class java.lang.Object
          +
          Parameters:
          +
          t - The operator to compare to for equality.
          +
          Returns:
          +
          True if the operators are syntactically identical.
          +
          +
        • +
        + + + +
          +
        • +

          getKind

          +
          public Kind getKind()
          +
          +
          Returns:
          +
          The kind of this operator.
          +
          +
        • +
        + + + +
          +
        • +

          isNull

          +
          public boolean isNull()
          +
          +
          Returns:
          +
          True if this operator is a null term.
          +
          +
        • +
        + + + +
          +
        • +

          isIndexed

          +
          public boolean isIndexed()
          +
          +
          Returns:
          +
          True iff this operator is indexed.
          +
          +
        • +
        + + + +
          +
        • +

          getNumIndices

          +
          public int getNumIndices()
          +
          +
          Returns:
          +
          The number of indices of this op.
          +
          +
        • +
        + + + +
          +
        • +

          get

          +
          public Term get​(int i)
          +         throws CVC5ApiException
          +
          Get the index at position i.
          +
          +
          Parameters:
          +
          i - The position of the index to return.
          +
          Returns:
          +
          The index at position i.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          toString

          +
          protected java.lang.String toString​(long pointer)
          +
          +
          Returns:
          +
          A string representation of this operator.
          +
          +
        • +
        + + + +
          +
        • +

          hashCode

          +
          public int hashCode()
          +
          Get the hash value of an operator.
          +
          +
          Overrides:
          +
          hashCode in class java.lang.Object
          +
          Returns:
          +
          The hash value.
          +
          +
        • +
        + + + +
          +
        • +

          getPointer

          +
          public long getPointer()
          +
        • +
        + + + +
          +
        • +

          deletePointer

          +
          public void deletePointer()
          +
        • +
        + + + +
          +
        • +

          toString

          +
          public java.lang.String toString()
          +
          +
          Overrides:
          +
          toString in class java.lang.Object
          +
          +
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
    + +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/OptionInfo.BaseInfo.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/OptionInfo.BaseInfo.html new file mode 100644 index 0000000000..d13c39d80e --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/OptionInfo.BaseInfo.html @@ -0,0 +1,277 @@ + + + + + +OptionInfo.BaseInfo + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Class OptionInfo.BaseInfo

    +
    +
    +
      +
    • java.lang.Object
    • +
    • +
        +
      • io.github.cvc5.OptionInfo.BaseInfo
      • +
      +
    • +
    +
    + +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Constructor Summary

        + + + + + + + + + + +
        Constructors 
        ConstructorDescription
        BaseInfo() 
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Summary

        +
          +
        • + + +

          Methods inherited from class java.lang.Object

          +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          BaseInfo

          +
          public BaseInfo()
          +
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
    + +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/OptionInfo.ModeInfo.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/OptionInfo.ModeInfo.html new file mode 100644 index 0000000000..becd389ef9 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/OptionInfo.ModeInfo.html @@ -0,0 +1,331 @@ + + + + + +OptionInfo.ModeInfo + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Class OptionInfo.ModeInfo

    +
    +
    + +
    + +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Constructor Summary

        + + + + + + + + + + +
        Constructors 
        ConstructorDescription
        ModeInfo​(java.lang.String defaultValue, + java.lang.String currentValue, + java.lang.String[] modes) 
        +
      • +
      +
      + +
      + +
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          ModeInfo

          +
          public ModeInfo​(java.lang.String defaultValue,
          +                java.lang.String currentValue,
          +                java.lang.String[] modes)
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          getModes

          +
          public java.lang.String[] getModes()
          +
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
    + +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/OptionInfo.NumberInfo.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/OptionInfo.NumberInfo.html new file mode 100644 index 0000000000..4e98f20e0d --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/OptionInfo.NumberInfo.html @@ -0,0 +1,350 @@ + + + + + +OptionInfo.NumberInfo + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Class OptionInfo.NumberInfo<T>

    +
    +
    + +
    +
      +
    • +
      +
      Enclosing class:
      +
      OptionInfo
      +
      +
      +
      public class OptionInfo.NumberInfo<T>
      +extends OptionInfo.ValueInfo<T>
      +
      Default value, current value, minimum and maximum of a numeric value
      +
    • +
    +
    +
    + +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Constructor Detail

        + + + + + +
          +
        • +

          NumberInfo

          +
          public NumberInfo​(T defaultValue,
          +                  T currentValue,
          +                  T minimum,
          +                  T maximum)
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          getMinimum

          +
          public T getMinimum()
          +
        • +
        + + + +
          +
        • +

          getMaximum

          +
          public T getMaximum()
          +
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
    + +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/OptionInfo.ValueInfo.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/OptionInfo.ValueInfo.html new file mode 100644 index 0000000000..c12c311082 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/OptionInfo.ValueInfo.html @@ -0,0 +1,338 @@ + + + + + +OptionInfo.ValueInfo + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Class OptionInfo.ValueInfo<T>

    +
    +
    + +
    + +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Constructor Summary

        + + + + + + + + + + +
        Constructors 
        ConstructorDescription
        ValueInfo​(T defaultValue, + T currentValue) 
        +
      • +
      +
      + +
      + +
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Constructor Detail

        + + + + + +
          +
        • +

          ValueInfo

          +
          public ValueInfo​(T defaultValue,
          +                 T currentValue)
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          getDefaultValue

          +
          public T getDefaultValue()
          +
        • +
        + + + +
          +
        • +

          getCurrentValue

          +
          public T getCurrentValue()
          +
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
    + +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/OptionInfo.VoidInfo.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/OptionInfo.VoidInfo.html new file mode 100644 index 0000000000..0b5ed2b62b --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/OptionInfo.VoidInfo.html @@ -0,0 +1,278 @@ + + + + + +OptionInfo.VoidInfo + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Class OptionInfo.VoidInfo

    +
    +
    + +
    + +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Constructor Summary

        + + + + + + + + + + +
        Constructors 
        ConstructorDescription
        VoidInfo() 
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Summary

        +
          +
        • + + +

          Methods inherited from class java.lang.Object

          +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          VoidInfo

          +
          public VoidInfo()
          +
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
    + +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/OptionInfo.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/OptionInfo.html new file mode 100644 index 0000000000..76b929d64c --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/OptionInfo.html @@ -0,0 +1,593 @@ + + + + + +OptionInfo + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Class OptionInfo

    +
    +
    +
      +
    • java.lang.Object
    • +
    • +
        +
      • io.github.cvc5.OptionInfo
      • +
      +
    • +
    +
    +
      +
    • +
      +
      public class OptionInfo
      +extends java.lang.Object
      +
      Holds some description about a particular option, including its name, its + aliases, whether the option was explicitly set by the user, and information + concerning its value. The valueInfo member holds any of the following + alternatives: +
        +
      • + OptionInfo.VoidInfo if the option holds no value (or the value + has no native type) +
      • +
      • + OptionInfo.ValueInfo if the option is of type boolean or String, + holds the current value and the default value. +
      • +
      • + OptionInfo.NumberInfo if the option is of type BigInteger or + double, holds the current and default value, as well as the minimum and + maximum. +
      • +
      • + OptionInfo.ModeInfo if the option is a mode option, holds the + current and default values, as well as a list of valid modes. +
      • +
      + + Additionally, this class provides convenience functions to obtain the + current value of an option in a type-safe manner using + booleanValue(), stringValue(), + intValue(), and doubleValue(). + They assert that the option has the respective type and return the current + value.
      +
    • +
    +
    +
    +
      +
    • + +
      + +
      + +
      +
        +
      • + + +

        Field Summary

        + + + + + + + + + + + + +
        Fields 
        Modifier and TypeFieldDescription
        protected longpointer 
        +
      • +
      +
      + +
      + +
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Field Detail

        + + + +
          +
        • +

          pointer

          +
          protected long pointer
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          deletePointer

          +
          protected void deletePointer​(long pointer)
          +
        • +
        + + + +
          +
        • +

          toString

          +
          public java.lang.String toString()
          +
        • +
        + + + +
          +
        • +

          toString

          +
          protected java.lang.String toString​(long pointer)
          +
          +
          Returns:
          +
          A string representation of this OptionInfo.
          +
          +
        • +
        + + + +
          +
        • +

          getName

          +
          public java.lang.String getName()
          +
        • +
        + + + +
          +
        • +

          getAliases

          +
          public java.lang.String[] getAliases()
          +
        • +
        + + + +
          +
        • +

          getSetByUser

          +
          public boolean getSetByUser()
          +
        • +
        + + + + + + + +
          +
        • +

          booleanValue

          +
          public boolean booleanValue()
          +
          Obtain the current value as a Boolean. + Asserts that valueInfo holds a Boolean.
          +
          +
          Returns:
          +
          The Boolean value.
          +
          +
        • +
        + + + +
          +
        • +

          stringValue

          +
          public java.lang.String stringValue()
          +
          Obtain the current value as a string. + Asserts that valueInfo holds a string.
          +
          +
          Returns:
          +
          The string value.
          +
          +
        • +
        + + + +
          +
        • +

          intValue

          +
          public java.math.BigInteger intValue()
          +
          Obtain the current value as as int. + Asserts that valueInfo holds an int.
          +
          +
          Returns:
          +
          The integer value.
          +
          +
        • +
        + + + +
          +
        • +

          doubleValue

          +
          public double doubleValue()
          +
          Obtain the current value as a double. + Asserts that valueInfo holds a double.
          +
          +
          Returns:
          +
          The double value.
          +
          +
        • +
        + + + +
          +
        • +

          getPointer

          +
          public long getPointer()
          +
        • +
        + + + +
          +
        • +

          deletePointer

          +
          public void deletePointer()
          +
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
    + +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Pair.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Pair.html new file mode 100644 index 0000000000..e727a013e8 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Pair.html @@ -0,0 +1,370 @@ + + + + + +Pair + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Class Pair<K,​V>

    +
    +
    +
      +
    • java.lang.Object
    • +
    • +
        +
      • io.github.cvc5.Pair<K,​V>
      • +
      +
    • +
    +
    +
      +
    • +
      +
      public class Pair<K,​V>
      +extends java.lang.Object
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Field Summary

        + + + + + + + + + + + + + + + + + +
        Fields 
        Modifier and TypeFieldDescription
        Kfirst 
        Vsecond 
        +
      • +
      +
      + +
      +
        +
      • + + +

        Constructor Summary

        + + + + + + + + + + +
        Constructors 
        ConstructorDescription
        Pair​(K first, + V second) 
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Summary

        + + + + + + + + + + + + +
        All Methods Instance Methods Concrete Methods 
        Modifier and TypeMethodDescription
        booleanequals​(java.lang.Object pair) 
        +
          +
        • + + +

          Methods inherited from class java.lang.Object

          +clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Field Detail

        + + + +
          +
        • +

          first

          +
          public K first
          +
        • +
        + + + +
          +
        • +

          second

          +
          public V second
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Constructor Detail

        + + + + + +
          +
        • +

          Pair

          +
          public Pair​(K first,
          +            V second)
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          equals

          +
          public boolean equals​(java.lang.Object pair)
          +
          +
          Overrides:
          +
          equals in class java.lang.Object
          +
          +
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
    + +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Proof.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Proof.html new file mode 100644 index 0000000000..785b0dc6e2 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Proof.html @@ -0,0 +1,526 @@ + + + + + +Proof + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Class Proof

    +
    +
    +
      +
    • java.lang.Object
    • +
    • +
        +
      • io.github.cvc5.Proof
      • +
      +
    • +
    +
    +
      +
    • +
      +
      public class Proof
      +extends java.lang.Object
      +
      A cvc5 Proof.
      +
    • +
    +
    +
    + +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Field Detail

        + + + +
          +
        • +

          pointer

          +
          protected long pointer
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          Proof

          +
          public Proof()
          +
          Null proof
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          deletePointer

          +
          public void deletePointer()
          +
        • +
        + + + +
          +
        • +

          deletePointer

          +
          protected void deletePointer​(long pointer)
          +
        • +
        + + + +
          +
        • +

          getPointer

          +
          public long getPointer()
          +
        • +
        + + + + + + + +
          +
        • +

          getRewriteRule

          +
          public ProofRewriteRule getRewriteRule()
          +                                throws CVC5ApiException
          +
          +
          Returns:
          +
          The proof rewrite rule used by the root step of the proof.
          +
          Throws:
          +
          CVC5ApiException - if `getRule()` does not return `DSL_REWRITE` + or `THEORY_REWRITE`.
          +
          +
        • +
        + + + +
          +
        • +

          getResult

          +
          public Term getResult()
          +
          +
          Returns:
          +
          The conclusion of the root step of the proof.
          +
          +
        • +
        + + + +
          +
        • +

          getChildren

          +
          public Proof[] getChildren()
          +
          +
          Returns:
          +
          The premises of the root step of the proof.
          +
          +
        • +
        + + + +
          +
        • +

          getArguments

          +
          public Term[] getArguments()
          +
          +
          Returns:
          +
          The arguments of the root step of the proof as a vector of terms. + Some of those terms might be strings.
          +
          +
        • +
        + + + +
          +
        • +

          equals

          +
          public boolean equals​(java.lang.Object p)
          +
          Referential equality operator.
          +
          +
          Overrides:
          +
          equals in class java.lang.Object
          +
          Parameters:
          +
          p - The proof to compare to for equality.
          +
          Returns:
          +
          True if the proofs point to the same internal proof object.
          +
          +
        • +
        + + + +
          +
        • +

          hashCode

          +
          public int hashCode()
          +
          Get the hash value of a proof.
          +
          +
          Overrides:
          +
          hashCode in class java.lang.Object
          +
          Returns:
          +
          The hash value.
          +
          +
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
    + +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/ProofRewriteRule.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/ProofRewriteRule.html new file mode 100644 index 0000000000..53e427fb76 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/ProofRewriteRule.html @@ -0,0 +1,9122 @@ + + + + + +ProofRewriteRule + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Enum ProofRewriteRule

    +
    +
    +
      +
    • java.lang.Object
    • +
    • + +
    • +
    +
    +
      +
    • +
      +
      All Implemented Interfaces:
      +
      java.io.Serializable, java.lang.Comparable<ProofRewriteRule>
      +
      +
      +
      public enum ProofRewriteRule
      +extends java.lang.Enum<ProofRewriteRule>
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Enum Constant Summary

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        Enum Constants 
        Enum ConstantDescription
        ARITH_ABS_ELIM_INT +
        Auto-generated from RARE rule arith-abs-elim-int
        +
        ARITH_ABS_ELIM_REAL +
        Auto-generated from RARE rule arith-abs-elim-real
        +
        ARITH_ABS_EQ +
        Auto-generated from RARE rule arith-abs-eq
        +
        ARITH_ABS_INT_GT +
        Auto-generated from RARE rule arith-abs-int-gt
        +
        ARITH_ABS_REAL_GT +
        Auto-generated from RARE rule arith-abs-real-gt
        +
        ARITH_COSECENT_ELIM +
        Auto-generated from RARE rule arith-cosecent-elim
        +
        ARITH_COSINE_ELIM +
        Auto-generated from RARE rule arith-cosine-elim
        +
        ARITH_COTANGENT_ELIM +
        Auto-generated from RARE rule arith-cotangent-elim
        +
        ARITH_DIV_ELIM_TO_REAL1 +
        Auto-generated from RARE rule arith-div-elim-to-real1
        +
        ARITH_DIV_ELIM_TO_REAL2 +
        Auto-generated from RARE rule arith-div-elim-to-real2
        +
        ARITH_DIV_TOTAL_INT +
        Auto-generated from RARE rule arith-div-total-int
        +
        ARITH_DIV_TOTAL_REAL +
        Auto-generated from RARE rule arith-div-total-real
        +
        ARITH_DIV_TOTAL_ZERO_INT +
        Auto-generated from RARE rule arith-div-total-zero-int
        +
        ARITH_DIV_TOTAL_ZERO_REAL +
        Auto-generated from RARE rule arith-div-total-zero-real
        +
        ARITH_ELIM_GT +
        Auto-generated from RARE rule arith-elim-gt
        +
        ARITH_ELIM_INT_GT +
        Auto-generated from RARE rule arith-elim-int-gt
        +
        ARITH_ELIM_INT_LT +
        Auto-generated from RARE rule arith-elim-int-lt
        +
        ARITH_ELIM_LEQ +
        Auto-generated from RARE rule arith-elim-leq
        +
        ARITH_ELIM_LT +
        Auto-generated from RARE rule arith-elim-lt
        +
        ARITH_EQ_ELIM_INT +
        Auto-generated from RARE rule arith-eq-elim-int
        +
        ARITH_EQ_ELIM_REAL +
        Auto-generated from RARE rule arith-eq-elim-real
        +
        ARITH_GEQ_NORM1_INT +
        Auto-generated from RARE rule arith-geq-norm1-int
        +
        ARITH_GEQ_NORM1_REAL +
        Auto-generated from RARE rule arith-geq-norm1-real
        +
        ARITH_GEQ_NORM2 +
        Auto-generated from RARE rule arith-geq-norm2
        +
        ARITH_GEQ_TIGHTEN +
        Auto-generated from RARE rule arith-geq-tighten
        +
        ARITH_INT_DIV_TOTAL +
        Auto-generated from RARE rule arith-int-div-total
        +
        ARITH_INT_DIV_TOTAL_ONE +
        Auto-generated from RARE rule arith-int-div-total-one
        +
        ARITH_INT_DIV_TOTAL_ZERO +
        Auto-generated from RARE rule arith-int-div-total-zero
        +
        ARITH_INT_MOD_TOTAL +
        Auto-generated from RARE rule arith-int-mod-total
        +
        ARITH_INT_MOD_TOTAL_ONE +
        Auto-generated from RARE rule arith-int-mod-total-one
        +
        ARITH_INT_MOD_TOTAL_ZERO +
        Auto-generated from RARE rule arith-int-mod-total-zero
        +
        ARITH_LEQ_NORM +
        Auto-generated from RARE rule arith-leq-norm
        +
        ARITH_MUL_ONE +
        Auto-generated from RARE rule arith-mul-one
        +
        ARITH_MUL_ZERO +
        Auto-generated from RARE rule arith-mul-zero
        +
        ARITH_MULT_DIST +
        Auto-generated from RARE rule arith-mult-dist
        +
        ARITH_MULT_FLATTEN +
        Auto-generated from RARE rule arith-mult-flatten
        +
        ARITH_PI_NOT_INT +
        Auto-generated from RARE rule arith-pi-not-int
        +
        ARITH_PLUS_FLATTEN +
        Auto-generated from RARE rule arith-plus-flatten
        +
        ARITH_POW_ELIM +
        Arithmetic – power elimination + + \[ + (x ^ c) = (x \cdot \ldots \cdot x) + \] + where \(c\) is a non-negative integer.
        +
        ARITH_REFL_GEQ +
        Auto-generated from RARE rule arith-refl-geq
        +
        ARITH_REFL_GT +
        Auto-generated from RARE rule arith-refl-gt
        +
        ARITH_REFL_LEQ +
        Auto-generated from RARE rule arith-refl-leq
        +
        ARITH_REFL_LT +
        Auto-generated from RARE rule arith-refl-lt
        +
        ARITH_SECENT_ELIM +
        Auto-generated from RARE rule arith-secent-elim
        +
        ARITH_SINE_PI2 +
        Auto-generated from RARE rule arith-sine-pi2
        +
        ARITH_SINE_ZERO +
        Auto-generated from RARE rule arith-sine-zero
        +
        ARITH_STRING_PRED_ENTAIL +
        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_SAFE_APPROX +
        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)\).
        +
        ARITH_TANGENT_ELIM +
        Auto-generated from RARE rule arith-tangent-elim
        +
        ARITH_TO_INT_ELIM_TO_REAL +
        Auto-generated from RARE rule arith-to-int-elim-to-real
        +
        ARITH_TO_REAL_ELIM +
        Auto-generated from RARE rule arith-to-real-elim
        +
        ARRAY_READ_OVER_WRITE +
        Auto-generated from RARE rule array-read-over-write
        +
        ARRAY_READ_OVER_WRITE_SPLIT +
        Auto-generated from RARE rule array-read-over-write-split
        +
        ARRAY_READ_OVER_WRITE2 +
        Auto-generated from RARE rule array-read-over-write2
        +
        ARRAY_STORE_OVERWRITE +
        Auto-generated from RARE rule array-store-overwrite
        +
        ARRAY_STORE_SELF +
        Auto-generated from RARE rule array-store-self
        +
        ARRAYS_EQ_RANGE_EXPAND +
        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_SELECT_CONST +
        Arrays – Constant array select + + \[ + (select A x) = c + \] + where \(A\) is a constant array storing element \(c\).
        +
        BETA_REDUCE +
        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 Node.substitute.
        +
        BOOL_AND_CONF +
        Auto-generated from RARE rule boolean-and-conf
        +
        BOOL_AND_CONF2 +
        Auto-generated from RARE rule boolean-and-conf2
        +
        BOOL_AND_DE_MORGAN +
        Auto-generated from RARE rule boolean-and-de-morgan
        +
        BOOL_AND_FALSE +
        Auto-generated from RARE rule boolean-and-false
        +
        BOOL_AND_FLATTEN +
        Auto-generated from RARE rule boolean-and-flatten
        +
        BOOL_DOUBLE_NOT_ELIM +
        Auto-generated from RARE rule boolean-double-not-elim
        +
        BOOL_EQ_FALSE +
        Auto-generated from RARE rule boolean-eq-false
        +
        BOOL_EQ_NREFL +
        Auto-generated from RARE rule boolean-eq-nrefl
        +
        BOOL_EQ_TRUE +
        Auto-generated from RARE rule boolean-eq-true
        +
        BOOL_IMPL_ELIM +
        Auto-generated from RARE rule boolean-impl-elim
        +
        BOOL_IMPL_FALSE1 +
        Auto-generated from RARE rule boolean-impl-false1
        +
        BOOL_IMPL_FALSE2 +
        Auto-generated from RARE rule boolean-impl-false2
        +
        BOOL_IMPL_TRUE1 +
        Auto-generated from RARE rule boolean-impl-true1
        +
        BOOL_IMPL_TRUE2 +
        Auto-generated from RARE rule boolean-impl-true2
        +
        BOOL_IMPLIES_DE_MORGAN +
        Auto-generated from RARE rule boolean-implies-de-morgan
        +
        BOOL_NOT_EQ_ELIM1 +
        Auto-generated from RARE rule boolean-not-eq-elim1
        +
        BOOL_NOT_EQ_ELIM2 +
        Auto-generated from RARE rule boolean-not-eq-elim2
        +
        BOOL_NOT_FALSE +
        Auto-generated from RARE rule boolean-not-false
        +
        BOOL_NOT_ITE_ELIM +
        Auto-generated from RARE rule boolean-not-ite-elim
        +
        BOOL_NOT_TRUE +
        Auto-generated from RARE rule boolean-not-true
        +
        BOOL_NOT_XOR_ELIM +
        Auto-generated from RARE rule boolean-not-xor-elim
        +
        BOOL_OR_AND_DISTRIB +
        Auto-generated from RARE rule boolean-or-and-distrib
        +
        BOOL_OR_DE_MORGAN +
        Auto-generated from RARE rule boolean-or-de-morgan
        +
        BOOL_OR_FLATTEN +
        Auto-generated from RARE rule boolean-or-flatten
        +
        BOOL_OR_TAUT +
        Auto-generated from RARE rule boolean-or-taut
        +
        BOOL_OR_TAUT2 +
        Auto-generated from RARE rule boolean-or-taut2
        +
        BOOL_OR_TRUE +
        Auto-generated from RARE rule boolean-or-true
        +
        BOOL_XOR_COMM +
        Auto-generated from RARE rule boolean-xor-comm
        +
        BOOL_XOR_ELIM +
        Auto-generated from RARE rule boolean-xor-elim
        +
        BOOL_XOR_FALSE +
        Auto-generated from RARE rule boolean-xor-false
        +
        BOOL_XOR_NREFL +
        Auto-generated from RARE rule boolean-xor-nrefl
        +
        BOOL_XOR_REFL +
        Auto-generated from RARE rule boolean-xor-refl
        +
        BOOL_XOR_TRUE +
        Auto-generated from RARE rule boolean-xor-true
        +
        BV_ADD_COMBINE_LIKE_TERMS +
        Bitvectors – Combine like terms during addition by counting terms
        +
        BV_ADD_TWO +
        Auto-generated from RARE rule bv-add-two
        +
        BV_ADD_ZERO +
        Auto-generated from RARE rule bv-add-zero
        +
        BV_AND_CONCAT_PULLUP +
        Auto-generated from RARE rule bv-and-concat-pullup
        +
        BV_AND_FLATTEN +
        Auto-generated from RARE rule bv-and-flatten
        +
        BV_AND_ONE +
        Auto-generated from RARE rule bv-and-one
        +
        BV_AND_SIMPLIFY_1 +
        Auto-generated from RARE rule bv-and-simplify-1
        +
        BV_AND_SIMPLIFY_2 +
        Auto-generated from RARE rule bv-and-simplify-2
        +
        BV_AND_ZERO +
        Auto-generated from RARE rule bv-and-zero
        +
        BV_ASHR_BY_CONST_0 +
        Auto-generated from RARE rule bv-ashr-by--0
        +
        BV_ASHR_BY_CONST_1 +
        Auto-generated from RARE rule bv-ashr-by--1
        +
        BV_ASHR_BY_CONST_2 +
        Auto-generated from RARE rule bv-ashr-by--2
        +
        BV_ASHR_ZERO +
        Auto-generated from RARE rule bv-ashr-zero
        +
        BV_BITWISE_IDEMP_1 +
        Auto-generated from RARE rule bv-bitwise-idemp-1
        +
        BV_BITWISE_IDEMP_2 +
        Auto-generated from RARE rule bv-bitwise-idemp-2
        +
        BV_BITWISE_NOT_AND +
        Auto-generated from RARE rule bv-bitwise-not-and
        +
        BV_BITWISE_NOT_OR +
        Auto-generated from RARE rule bv-bitwise-not-or
        +
        BV_BITWISE_SLICING +
        Bitvectors – Extract continuous substrings of bitvectors + + \[ + bvand(a,\ c) = concat(bvand(a[i_0:j_0],\ c_0) ...
        +
        BV_COMMUTATIVE_ADD +
        Auto-generated from RARE rule bv-commutative-add
        +
        BV_COMMUTATIVE_AND +
        Auto-generated from RARE rule bv-commutative-and
        +
        BV_COMMUTATIVE_MUL +
        Auto-generated from RARE rule bv-commutative-mul
        +
        BV_COMMUTATIVE_OR +
        Auto-generated from RARE rule bv-commutative-or
        +
        BV_COMMUTATIVE_XOR +
        Auto-generated from RARE rule bv-commutative-xor
        +
        BV_COMP_ELIMINATE +
        Auto-generated from RARE rule bv-comp-eliminate
        +
        BV_CONCAT_EXTRACT_MERGE +
        Auto-generated from RARE rule bv-concat-extract-merge
        +
        BV_CONCAT_FLATTEN +
        Auto-generated from RARE rule bv-concat-flatten
        +
        BV_CONCAT_MERGE_CONST +
        Auto-generated from RARE rule bv-concat-merge-
        +
        BV_CONCAT_TO_MULT +
        Auto-generated from RARE rule bv-concat-to-mult
        +
        BV_EQ_EXTRACT_ELIM1 +
        Auto-generated from RARE rule bv-eq-extract-elim1
        +
        BV_EQ_EXTRACT_ELIM2 +
        Auto-generated from RARE rule bv-eq-extract-elim2
        +
        BV_EQ_EXTRACT_ELIM3 +
        Auto-generated from RARE rule bv-eq-extract-elim3
        +
        BV_EXTRACT_BITWISE_AND +
        Auto-generated from RARE rule bv-extract-bitwise-and
        +
        BV_EXTRACT_BITWISE_OR +
        Auto-generated from RARE rule bv-extract-bitwise-or
        +
        BV_EXTRACT_BITWISE_XOR +
        Auto-generated from RARE rule bv-extract-bitwise-xor
        +
        BV_EXTRACT_CONCAT_1 +
        Auto-generated from RARE rule bv-extract-concat-1
        +
        BV_EXTRACT_CONCAT_2 +
        Auto-generated from RARE rule bv-extract-concat-2
        +
        BV_EXTRACT_CONCAT_3 +
        Auto-generated from RARE rule bv-extract-concat-3
        +
        BV_EXTRACT_CONCAT_4 +
        Auto-generated from RARE rule bv-extract-concat-4
        +
        BV_EXTRACT_EXTRACT +
        Auto-generated from RARE rule bv-extract-extract
        +
        BV_EXTRACT_MULT_LEADING_BIT +
        Auto-generated from RARE rule bv-extract-mult-leading-bit
        +
        BV_EXTRACT_NOT +
        Auto-generated from RARE rule bv-extract-not
        +
        BV_EXTRACT_SIGN_EXTEND_1 +
        Auto-generated from RARE rule bv-extract-sign-extend-1
        +
        BV_EXTRACT_SIGN_EXTEND_2 +
        Auto-generated from RARE rule bv-extract-sign-extend-2
        +
        BV_EXTRACT_SIGN_EXTEND_3 +
        Auto-generated from RARE rule bv-extract-sign-extend-3
        +
        BV_EXTRACT_WHOLE +
        Auto-generated from RARE rule bv-extract-whole
        +
        BV_ITE_CONST_CHILDREN_1 +
        Auto-generated from RARE rule bv-ite--children-1
        +
        BV_ITE_CONST_CHILDREN_2 +
        Auto-generated from RARE rule bv-ite--children-2
        +
        BV_ITE_EQUAL_CHILDREN +
        Auto-generated from RARE rule bv-ite-equal-children
        +
        BV_ITE_EQUAL_COND_1 +
        Auto-generated from RARE rule bv-ite-equal-cond-1
        +
        BV_ITE_EQUAL_COND_2 +
        Auto-generated from RARE rule bv-ite-equal-cond-2
        +
        BV_ITE_EQUAL_COND_3 +
        Auto-generated from RARE rule bv-ite-equal-cond-3
        +
        BV_ITE_MERGE_ELSE_ELSE +
        Auto-generated from RARE rule bv-ite-merge-else-else
        +
        BV_ITE_MERGE_ELSE_IF +
        Auto-generated from RARE rule bv-ite-merge-else-if
        +
        BV_ITE_MERGE_THEN_ELSE +
        Auto-generated from RARE rule bv-ite-merge-then-else
        +
        BV_ITE_MERGE_THEN_IF +
        Auto-generated from RARE rule bv-ite-merge-then-if
        +
        BV_LSHR_BY_CONST_0 +
        Auto-generated from RARE rule bv-lshr-by--0
        +
        BV_LSHR_BY_CONST_1 +
        Auto-generated from RARE rule bv-lshr-by--1
        +
        BV_LSHR_BY_CONST_2 +
        Auto-generated from RARE rule bv-lshr-by--2
        +
        BV_LSHR_ZERO +
        Auto-generated from RARE rule bv-lshr-zero
        +
        BV_LT_SELF +
        Auto-generated from RARE rule bv-lt-self
        +
        BV_MERGE_SIGN_EXTEND_1 +
        Auto-generated from RARE rule bv-merge-sign-extend-1
        +
        BV_MERGE_SIGN_EXTEND_2 +
        Auto-generated from RARE rule bv-merge-sign-extend-2
        +
        BV_MERGE_SIGN_EXTEND_3 +
        Auto-generated from RARE rule bv-merge-sign-extend-3
        +
        BV_MUL_FLATTEN +
        Auto-generated from RARE rule bv-mul-flatten
        +
        BV_MUL_ONE +
        Auto-generated from RARE rule bv-mul-one
        +
        BV_MUL_ZERO +
        Auto-generated from RARE rule bv-mul-zero
        +
        BV_MULT_DISTRIB_1 +
        Auto-generated from RARE rule bv-mult-distrib-1
        +
        BV_MULT_DISTRIB_2 +
        Auto-generated from RARE rule bv-mult-distrib-2
        +
        BV_MULT_DISTRIB_CONST_ADD +
        Auto-generated from RARE rule bv-mult-distrib--add
        +
        BV_MULT_DISTRIB_CONST_NEG +
        Auto-generated from RARE rule bv-mult-distrib--neg
        +
        BV_MULT_DISTRIB_CONST_SUB +
        Auto-generated from RARE rule bv-mult-distrib--sub
        +
        BV_MULT_POW2_1 +
        Auto-generated from RARE rule bv-mult-pow2-1
        +
        BV_MULT_POW2_2 +
        Auto-generated from RARE rule bv-mult-pow2-2
        +
        BV_MULT_POW2_2B +
        Auto-generated from RARE rule bv-mult-pow2-2b
        +
        BV_MULT_SIMPLIFY +
        Bitvectors – Extract negations from multiplicands + + \[ + bvmul(bvneg(a),\ b,\ c) = bvneg(bvmul(a,\ b,\ c)) + \]
        +
        BV_MULT_SLT_MULT_1 +
        Auto-generated from RARE rule bv-mult-slt-mult-1
        +
        BV_MULT_SLT_MULT_2 +
        Auto-generated from RARE rule bv-mult-slt-mult-2
        +
        BV_NAND_ELIMINATE +
        Auto-generated from RARE rule bv-nand-eliminate
        +
        BV_NEG_ADD +
        Auto-generated from RARE rule bv-neg-add
        +
        BV_NEG_IDEMP +
        Auto-generated from RARE rule bv-neg-idemp
        +
        BV_NEG_MULT +
        Auto-generated from RARE rule bv-neg-mult
        +
        BV_NEG_SUB +
        Auto-generated from RARE rule bv-neg-sub
        +
        BV_NOR_ELIMINATE +
        Auto-generated from RARE rule bv-nor-eliminate
        +
        BV_NOT_IDEMP +
        Auto-generated from RARE rule bv-not-idemp
        +
        BV_NOT_NEQ +
        Auto-generated from RARE rule bv-not-neq
        +
        BV_NOT_SLE +
        Auto-generated from RARE rule bv-not-sle
        +
        BV_NOT_ULE +
        Auto-generated from RARE rule bv-not-ule
        +
        BV_NOT_ULT +
        Auto-generated from RARE rule bv-not-ult
        +
        BV_NOT_XOR +
        Auto-generated from RARE rule bv-not-xor
        +
        BV_OR_CONCAT_PULLUP +
        Auto-generated from RARE rule bv-or-concat-pullup
        +
        BV_OR_FLATTEN +
        Auto-generated from RARE rule bv-or-flatten
        +
        BV_OR_ONE +
        Auto-generated from RARE rule bv-or-one
        +
        BV_OR_SIMPLIFY_1 +
        Auto-generated from RARE rule bv-or-simplify-1
        +
        BV_OR_SIMPLIFY_2 +
        Auto-generated from RARE rule bv-or-simplify-2
        +
        BV_OR_ZERO +
        Auto-generated from RARE rule bv-or-zero
        +
        BV_REDAND_ELIMINATE +
        Auto-generated from RARE rule bv-redand-eliminate
        +
        BV_REDOR_ELIMINATE +
        Auto-generated from RARE rule bv-redor-eliminate
        +
        BV_REPEAT_ELIM +
        Bitvectors – Extract continuous substrings of bitvectors + + \[ + repeat(n,\ t) = concat(t ...
        +
        BV_ROTATE_LEFT_ELIMINATE_1 +
        Auto-generated from RARE rule bv-rotate-left-eliminate-1
        +
        BV_ROTATE_LEFT_ELIMINATE_2 +
        Auto-generated from RARE rule bv-rotate-left-eliminate-2
        +
        BV_ROTATE_RIGHT_ELIMINATE_1 +
        Auto-generated from RARE rule bv-rotate-right-eliminate-1
        +
        BV_ROTATE_RIGHT_ELIMINATE_2 +
        Auto-generated from RARE rule bv-rotate-right-eliminate-2
        +
        BV_SADDO_ELIMINATE +
        Auto-generated from RARE rule bv-saddo-eliminate
        +
        BV_SDIV_ELIMINATE +
        Auto-generated from RARE rule bv-sdiv-eliminate
        +
        BV_SDIV_ELIMINATE_FEWER_BITWISE_OPS +
        Auto-generated from RARE rule bv-sdiv-eliminate-fewer-bitwise-ops
        +
        BV_SDIVO_ELIMINATE +
        Auto-generated from RARE rule bv-sdivo-eliminate
        +
        BV_SGE_ELIMINATE +
        Auto-generated from RARE rule bv-sge-eliminate
        +
        BV_SGT_ELIMINATE +
        Auto-generated from RARE rule bv-sgt-eliminate
        +
        BV_SHL_BY_CONST_0 +
        Auto-generated from RARE rule bv-shl-by--0
        +
        BV_SHL_BY_CONST_1 +
        Auto-generated from RARE rule bv-shl-by--1
        +
        BV_SHL_BY_CONST_2 +
        Auto-generated from RARE rule bv-shl-by--2
        +
        BV_SHL_ZERO +
        Auto-generated from RARE rule bv-shl-zero
        +
        BV_SIGN_EXTEND_ELIMINATE +
        Auto-generated from RARE rule bv-sign-extend-eliminate
        +
        BV_SIGN_EXTEND_ELIMINATE_0 +
        Auto-generated from RARE rule bv-sign-extend-eliminate-0
        +
        BV_SIGN_EXTEND_EQ_CONST_1 +
        Auto-generated from RARE rule bv-sign-extend-eq--1
        +
        BV_SIGN_EXTEND_EQ_CONST_2 +
        Auto-generated from RARE rule bv-sign-extend-eq--2
        +
        BV_SIGN_EXTEND_ULT_CONST_1 +
        Auto-generated from RARE rule bv-sign-extend-ult--1
        +
        BV_SIGN_EXTEND_ULT_CONST_2 +
        Auto-generated from RARE rule bv-sign-extend-ult--2
        +
        BV_SIGN_EXTEND_ULT_CONST_3 +
        Auto-generated from RARE rule bv-sign-extend-ult--3
        +
        BV_SIGN_EXTEND_ULT_CONST_4 +
        Auto-generated from RARE rule bv-sign-extend-ult--4
        +
        BV_SLE_ELIMINATE +
        Auto-generated from RARE rule bv-sle-eliminate
        +
        BV_SLE_SELF +
        Auto-generated from RARE rule bv-sle-self
        +
        BV_SLT_ELIMINATE +
        Auto-generated from RARE rule bv-slt-eliminate
        +
        BV_SLT_ZERO +
        Auto-generated from RARE rule bv-slt-zero
        +
        BV_SMOD_ELIMINATE +
        Auto-generated from RARE rule bv-smod-eliminate
        +
        BV_SMOD_ELIMINATE_FEWER_BITWISE_OPS +
        Auto-generated from RARE rule bv-smod-eliminate-fewer-bitwise-ops
        +
        BV_SMULO_ELIMINATE +
        Bitvectors – Unsigned multiplication overflow detection elimination + + See M.Gok, M.J.
        +
        BV_SREM_ELIMINATE +
        Auto-generated from RARE rule bv-srem-eliminate
        +
        BV_SREM_ELIMINATE_FEWER_BITWISE_OPS +
        Auto-generated from RARE rule bv-srem-eliminate-fewer-bitwise-ops
        +
        BV_SSUBO_ELIMINATE +
        Auto-generated from RARE rule bv-ssubo-eliminate
        +
        BV_SUB_ELIMINATE +
        Auto-generated from RARE rule bv-sub-eliminate
        +
        BV_TO_NAT_ELIM +
        UF – Bitvector to natural elimination + + \[ + \texttt{bv2nat}(t) = t_1 + \ldots + t_n + \] + where for \(i=1, \ldots, n\), \(t_i\) is + \(\texttt{ite}(x[i-1, i-1] = 1, 2^i, 0)\).
        +
        BV_UADDO_ELIMINATE +
        Auto-generated from RARE rule bv-uaddo-eliminate
        +
        BV_UDIV_ONE +
        Auto-generated from RARE rule bv-udiv-one
        +
        BV_UDIV_POW2_NOT_ONE +
        Auto-generated from RARE rule bv-udiv-pow2-not-one
        +
        BV_UDIV_ZERO +
        Auto-generated from RARE rule bv-udiv-zero
        +
        BV_UGE_ELIMINATE +
        Auto-generated from RARE rule bv-uge-eliminate
        +
        BV_UGT_ELIMINATE +
        Auto-generated from RARE rule bv-ugt-eliminate
        +
        BV_UGT_UREM +
        Auto-generated from RARE rule bv-ugt-urem
        +
        BV_ULE_ELIMINATE +
        Auto-generated from RARE rule bv-ule-eliminate
        +
        BV_ULE_MAX +
        Auto-generated from RARE rule bv-ule-max
        +
        BV_ULE_SELF +
        Auto-generated from RARE rule bv-ule-self
        +
        BV_ULE_ZERO +
        Auto-generated from RARE rule bv-ule-zero
        +
        BV_ULT_ADD_ONE +
        Auto-generated from RARE rule bv-ult-add-one
        +
        BV_ULT_ONE +
        Auto-generated from RARE rule bv-ult-one
        +
        BV_ULT_ONES +
        Auto-generated from RARE rule bv-ult-ones
        +
        BV_ULT_SELF +
        Auto-generated from RARE rule bv-ult-self
        +
        BV_ULT_ZERO_1 +
        Auto-generated from RARE rule bv-ult-zero-1
        +
        BV_ULT_ZERO_2 +
        Auto-generated from RARE rule bv-ult-zero-2
        +
        BV_UMULO_ELIMINATE +
        Bitvectors – Unsigned multiplication overflow detection elimination + + See M.Gok, M.J.
        +
        BV_UREM_ONE +
        Auto-generated from RARE rule bv-urem-one
        +
        BV_UREM_POW2_NOT_ONE +
        Auto-generated from RARE rule bv-urem-pow2-not-one
        +
        BV_UREM_SELF +
        Auto-generated from RARE rule bv-urem-self
        +
        BV_USUBO_ELIMINATE +
        Auto-generated from RARE rule bv-usubo-eliminate
        +
        BV_XNOR_ELIMINATE +
        Auto-generated from RARE rule bv-xnor-eliminate
        +
        BV_XOR_CONCAT_PULLUP +
        Auto-generated from RARE rule bv-xor-concat-pullup
        +
        BV_XOR_DUPLICATE +
        Auto-generated from RARE rule bv-xor-duplicate
        +
        BV_XOR_FLATTEN +
        Auto-generated from RARE rule bv-xor-flatten
        +
        BV_XOR_NOT +
        Auto-generated from RARE rule bv-xor-not
        +
        BV_XOR_ONES +
        Auto-generated from RARE rule bv-xor-ones
        +
        BV_XOR_SIMPLIFY_1 +
        Auto-generated from RARE rule bv-xor-simplify-1
        +
        BV_XOR_SIMPLIFY_2 +
        Auto-generated from RARE rule bv-xor-simplify-2
        +
        BV_XOR_SIMPLIFY_3 +
        Auto-generated from RARE rule bv-xor-simplify-3
        +
        BV_XOR_ZERO +
        Auto-generated from RARE rule bv-xor-zero
        +
        BV_ZERO_EXTEND_ELIMINATE +
        Auto-generated from RARE rule bv-zero-extend-eliminate
        +
        BV_ZERO_EXTEND_ELIMINATE_0 +
        Auto-generated from RARE rule bv-zero-extend-eliminate-0
        +
        BV_ZERO_EXTEND_EQ_CONST_1 +
        Auto-generated from RARE rule bv-zero-extend-eq--1
        +
        BV_ZERO_EXTEND_EQ_CONST_2 +
        Auto-generated from RARE rule bv-zero-extend-eq--2
        +
        BV_ZERO_ULE +
        Auto-generated from RARE rule bv-zero-ule
        +
        DISTINCT_BINARY_ELIM +
        Auto-generated from RARE rule distinct-binary-elim
        +
        DISTINCT_CARD_CONFLICT +
        Builtin – Distinct cardinality conflict + + \[ + \texttt{distinct}(t_1, \ldots, tn) = \bot + \] + where \(n\) is greater than the cardinality of the type of + \(t_1, \ldots, t_n\).
        +
        DISTINCT_ELIM +
        Builtin – Distinct elimination + + \[ + \texttt{distinct}(t_1, t_2) = \neg (t_1 = t2) + \] + if \(n = 2\), or + + \[ + \texttt{distinct}(t_1, \ldots, tn) = \bigwedge_{i=1}^n \bigwedge_{j=i+1}^n t_i \neq t_j + \] + if \(n > 2\)
        +
        DT_COLLAPSE_SELECTOR +
        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_TESTER +
        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_SINGLETON +
        Datatypes – collapse tester + + \[ + \mathit{is}_c(t) = true + \] + where \(c\) is the only constructor of its associated datatype.
        +
        DT_COLLAPSE_UPDATER +
        Datatypes – collapse tester + + \[ + u_{c,i}(c(t_1, \ldots, t_i, \ldots, t_n), s) = c(t_1, \ldots, s, \ldots, t_n) + \] + or alternatively + + \[ + u_{c,i}(d(t_1, \ldots, t_n), s) = d(t_1, \ldots, t_n) + \] + where \(c\) and \(d\) are distinct constructors.
        +
        DT_CONS_EQ +
        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_CYCLE +
        Datatypes – cycle + + \[ + (x = t[x]) = \bot + \] + where all terms on the path to \(x\) in \(t[x]\) are applications + of constructors, and this path is non-empty.
        +
        DT_INST +
        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_MATCH_ELIM +
        Datatypes – match elimination + + \[ + \texttt{match}(t ((p_1 c_1) \ldots (p_n c_n))) = \texttt{ite}(F_1, r_1, \texttt{ite}( \ldots, r_n)) + \] + where for \(i=1, \ldots, n\), \(F_1\) is a formula that holds iff + \(t\) matches \(p_i\) and \(r_i\) is the result of a + substitution on \(c_i\) based on this match.
        +
        DT_UPDATER_ELIM +
        Datatypes - updater elimination + + \[ + u_{c,i}(t, s) = ite(\mathit{is}_c(t), c(s_0(t), \ldots, s, \ldots s_n(t)), t) + \] + where \(s_i\) is the \(i^{th}\) selector for constructor \(c\).
        +
        EQ_COND_DEQ +
        Auto-generated from RARE rule eq-cond-deq
        +
        EQ_ITE_LIFT +
        Auto-generated from RARE rule eq-ite-lift
        +
        EQ_REFL +
        Auto-generated from RARE rule eq-refl
        +
        EQ_SYMM +
        Auto-generated from RARE rule eq-symm
        +
        EXISTS_ELIM +
        Quantifiers – Exists elimination + + \[ + \exists x_1\dots x_n.\> F = \neg \forall x_1\dots x_n.\> \neg F + \]
        +
        INT_TO_BV_ELIM +
        UF – Integer to bitvector elimination + + \[ + \texttt{int2bv}_n(t) = (bvconcat t_1 \ldots t_n) + \] + where for \(i=1, \ldots, n\), \(t_i\) is + \(\texttt{ite}(\texttt{mod}(t,2^n) \geq 2^{n-1}, 1, 0)\).
        +
        ITE_ELSE_FALSE +
        Auto-generated from RARE rule ite-else-false
        +
        ITE_ELSE_LOOKAHEAD +
        Auto-generated from RARE rule ite-else-lookahead
        +
        ITE_ELSE_LOOKAHEAD_NOT_SELF +
        Auto-generated from RARE rule ite-else-lookahead-not-self
        +
        ITE_ELSE_LOOKAHEAD_SELF +
        Auto-generated from RARE rule ite-else-lookahead-self
        +
        ITE_ELSE_NEG_LOOKAHEAD +
        Auto-generated from RARE rule ite-else-neg-lookahead
        +
        ITE_ELSE_TRUE +
        Auto-generated from RARE rule ite-else-true
        +
        ITE_EQ_BRANCH +
        Auto-generated from RARE rule ite-eq-branch
        +
        ITE_EXPAND +
        Auto-generated from RARE rule ite-expand
        +
        ITE_FALSE_COND +
        Auto-generated from RARE rule ite-false-cond
        +
        ITE_NEG_BRANCH +
        Auto-generated from RARE rule ite-neg-branch
        +
        ITE_NOT_COND +
        Auto-generated from RARE rule ite-not-cond
        +
        ITE_THEN_FALSE +
        Auto-generated from RARE rule ite-then-false
        +
        ITE_THEN_LOOKAHEAD +
        Auto-generated from RARE rule ite-then-lookahead
        +
        ITE_THEN_LOOKAHEAD_NOT_SELF +
        Auto-generated from RARE rule ite-then-lookahead-not-self
        +
        ITE_THEN_LOOKAHEAD_SELF +
        Auto-generated from RARE rule ite-then-lookahead-self
        +
        ITE_THEN_NEG_LOOKAHEAD +
        Auto-generated from RARE rule ite-then-neg-lookahead
        +
        ITE_THEN_TRUE +
        Auto-generated from RARE rule ite-then-true
        +
        ITE_TRUE_COND +
        Auto-generated from RARE rule ite-true-cond
        +
        LAMBDA_ELIM +
        Equality – Lambda elimination + + \[ + (\lambda x_1 \ldots x_n.\> f(x_1 \ldots x_n)) = f + \]
        +
        MACRO_ARITH_STRING_PRED_ENTAIL +
        Arithmetic – strings predicate entailment + + \[ + (= s t) = c + \] + \[ + (>= s t) = c + \] + where \(c\) is a Boolean constant.
        +
        MACRO_ARRAYS_DISTINCT_ARRAYS +
        Arrays – Macro distinct arrays + + \[ + (A = B) = \bot + \] + where \(A\) and \(B\) are distinct array values, that is, + the Node.isConst method returns true for both.
        +
        MACRO_ARRAYS_NORMALIZE_CONSTANT +
        Arrays – Macro normalize constant + + \[ + A = B + \] + where \(B\) is the result of normalizing the array value \(A\) + into a canonical form, using the internal method + TheoryArraysRewriter.normalizeConstant.
        +
        MACRO_BOOL_NNF_NORM +
        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_QUANT_MERGE_PRENEX +
        Quantifiers – Macro merge prenex + + \[ + \forall X_1.\> \ldots \forall X_n.\> F = \forall X.\> F + \] + where \(X_1 \ldots X_n\) are lists of variables and \(X\) is the + result of removing duplicates from \(X_1 \ldots X_n\).
        +
        MACRO_QUANT_MINISCOPE +
        Quantifiers – Macro miniscoping + + \[ + \forall X.\> F_1 \wedge \cdots \wedge F_n = + G_1 \wedge \cdots \wedge G_n + \] + where each \(G_i\) is semantically equivalent to + \(\forall X.\> F_i\), or alternatively + + \[ + \forall X.\> \ite{C}{F_1}{F_2} = \ite{C}{G_1}{G_2} + \] + where \(C\) does not have any free variable in \(X\).
        +
        MACRO_QUANT_PARTITION_CONNECTED_FV +
        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\).
        +
        MACRO_QUANT_PRENEX +
        Quantifiers – Macro prenex + + \[ + (\forall X.\> F_1 \vee \cdots \vee (\forall Y.\> F_i) \vee \cdots \vee F_n) = (\forall X Z.\> F_1 \vee \cdots \vee F_i\{ Y \mapsto Z \} \vee \cdots \vee F_n) + \]
        +
        MACRO_QUANT_REWRITE_BODY +
        Quantifiers – Macro quantifiers rewrite body + + \[ + \forall X.\> F = \forall X.\> G + \] + where \(G\) is semantically equivalent to \(F\).
        +
        MACRO_QUANT_VAR_ELIM_EQ +
        Quantifiers – Macro variable elimination equality + + \[ + \forall x Y.\> F = \forall Y.\> F \{ x \mapsto t \} + \] + where \(\neg F\) entails \(x = t\).
        +
        MACRO_QUANT_VAR_ELIM_INEQ +
        Quantifiers – Macro variable elimination inequality + + \[ + \forall x Y.\> F = \forall Y.\> G + \] + where \(G\) is the result of replacing all literals containing + \(x\) with a constant.
        +
        MACRO_SUBSTR_STRIP_SYM_LENGTH +
        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\).
        +
        NONE +
        This enumeration represents the rewrite rules used in a rewrite proof.
        +
        QUANT_DT_SPLIT +
        Quantifiers – Datatypes Split + + \[ + (\forall x Y.\> F) = (\forall X_1 Y.
        +
        QUANT_MERGE_PRENEX +
        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_MINISCOPE_AND +
        Quantifiers – Miniscoping and + + \[ + \forall X.\> F_1 \wedge \ldots \wedge F_n = + (\forall X.\> F_1) \wedge \ldots \wedge (\forall X.\> F_n) + \]
        +
        QUANT_MINISCOPE_ITE +
        Quantifiers – Miniscoping ite + + \[ + \forall X.\> \ite{C}{F_1}{F_2} = \ite{C}{\forall X.\> F_1}{\forall X.\> F_2} + \] + where \(C\) does not have any free variable in \(X\).
        +
        QUANT_MINISCOPE_OR +
        Quantifiers – Miniscoping or + + \[ + \forall X.\> F_1 \vee \ldots \vee F_n = (\forall X_1.\> F_1) \vee \ldots \vee (\forall X_n.\> F_n) + \] + where \(X = X_1 \ldots X_n\), and the right hand side does not have any + free variable in \(X\).
        +
        QUANT_UNUSED_VARS +
        Quantifiers – Unused variables + + \[ + \forall X.\> F = \forall X_1.\> F + \] + where \(X_1\) is the subset of \(X\) that appear free in \(F\) + and \(X_1\) does not contain duplicate variables.
        +
        QUANT_VAR_ELIM_EQ +
        Quantifiers – Macro variable elimination equality + + ..
        +
        RE_ALL_ELIM +
        Auto-generated from RARE rule re-all-elim
        +
        RE_CONCAT_EMP +
        Auto-generated from RARE rule re-concat-emp
        +
        RE_CONCAT_FLATTEN +
        Auto-generated from RARE rule re-concat-flatten
        +
        RE_CONCAT_MERGE +
        Auto-generated from RARE rule re-concat-merge
        +
        RE_CONCAT_NONE +
        Auto-generated from RARE rule re-concat-none
        +
        RE_CONCAT_STAR_REPEAT +
        Auto-generated from RARE rule re-concat-star-repeat
        +
        RE_CONCAT_STAR_SWAP +
        Auto-generated from RARE rule re-concat-star-swap
        +
        RE_DIFF_ELIM +
        Auto-generated from RARE rule re-diff-elim
        +
        RE_IN_COMP +
        Auto-generated from RARE rule re-in-comp
        +
        RE_IN_CSTRING +
        Auto-generated from RARE rule re-in-cstring
        +
        RE_IN_EMPTY +
        Auto-generated from RARE rule re-in-empty
        +
        RE_IN_SIGMA +
        Auto-generated from RARE rule re-in-sigma
        +
        RE_IN_SIGMA_STAR +
        Auto-generated from RARE rule re-in-sigma-star
        +
        RE_INTER_ALL +
        Auto-generated from RARE rule re-inter-all
        +
        RE_INTER_CSTRING +
        Auto-generated from RARE rule re-inter-cstring
        +
        RE_INTER_CSTRING_NEG +
        Auto-generated from RARE rule re-inter-cstring-neg
        +
        RE_INTER_DUP +
        Auto-generated from RARE rule re-inter-dup
        +
        RE_INTER_FLATTEN +
        Auto-generated from RARE rule re-inter-flatten
        +
        RE_INTER_NONE +
        Auto-generated from RARE rule re-inter-none
        +
        RE_INTER_UNION_INCLUSION +
        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`.
        +
        RE_LOOP_ELIM +
        Strings – regular expression loop elimination + + \[ + re.loop_{l,u}(R) = re.union(R^l, \ldots, R^u) + \] + where \(u \geq l\).
        +
        RE_LOOP_NEG +
        Auto-generated from RARE rule re-loop-neg
        +
        RE_OPT_ELIM +
        Auto-generated from RARE rule re-opt-elim
        +
        RE_STAR_NONE +
        Auto-generated from RARE rule re-star-none
        +
        RE_UNION_ALL +
        Auto-generated from RARE rule re-union-all
        +
        RE_UNION_DUP +
        Auto-generated from RARE rule re-union-dup
        +
        RE_UNION_FLATTEN +
        Auto-generated from RARE rule re-union-flatten
        +
        RE_UNION_NONE +
        Auto-generated from RARE rule re-union-none
        +
        SEQ_LEN_EMPTY +
        Auto-generated from RARE rule seq-len-empty
        +
        SEQ_LEN_REV +
        Auto-generated from RARE rule seq-len-rev
        +
        SEQ_LEN_UNIT +
        Auto-generated from RARE rule seq-len-unit
        +
        SEQ_NTH_UNIT +
        Auto-generated from RARE rule seq-nth-unit
        +
        SEQ_REV_CONCAT +
        Auto-generated from RARE rule seq-rev-concat
        +
        SEQ_REV_REV +
        Auto-generated from RARE rule seq-rev-rev
        +
        SEQ_REV_UNIT +
        Auto-generated from RARE rule seq-rev-unit
        +
        SETS_CARD_EMP +
        Auto-generated from RARE rule sets-card-emp
        +
        SETS_CARD_MINUS +
        Auto-generated from RARE rule sets-card-minus
        +
        SETS_CARD_SINGLETON +
        Auto-generated from RARE rule sets-card-singleton
        +
        SETS_CARD_UNION +
        Auto-generated from RARE rule sets-card-union
        +
        SETS_CHOOSE_SINGLETON +
        Auto-generated from RARE rule sets-choose-singleton
        +
        SETS_EQ_SINGLETON_EMP +
        Auto-generated from RARE rule sets-eq-singleton-emp
        +
        SETS_INSERT_ELIM +
        Sets – sets insert elimination + + \[ + \mathit{sets.insert}(t_1, \ldots, t_n, S) = \texttt{set.union}(\texttt{sets.singleton}(t_1), \ldots, \texttt{sets.singleton}(t_n), S) + \]
        +
        SETS_INTER_COMM +
        Auto-generated from RARE rule sets-inter-comm
        +
        SETS_INTER_EMP1 +
        Auto-generated from RARE rule sets-inter-emp1
        +
        SETS_INTER_EMP2 +
        Auto-generated from RARE rule sets-inter-emp2
        +
        SETS_INTER_MEMBER +
        Auto-generated from RARE rule sets-inter-member
        +
        SETS_IS_EMPTY_ELIM +
        Auto-generated from RARE rule sets-is-empty-elim
        +
        SETS_IS_EMPTY_EVAL +
        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_MEMBER_EMP +
        Auto-generated from RARE rule sets-member-emp
        +
        SETS_MEMBER_SINGLETON +
        Auto-generated from RARE rule sets-member-singleton
        +
        SETS_MINUS_EMP1 +
        Auto-generated from RARE rule sets-minus-emp1
        +
        SETS_MINUS_EMP2 +
        Auto-generated from RARE rule sets-minus-emp2
        +
        SETS_MINUS_MEMBER +
        Auto-generated from RARE rule sets-minus-member
        +
        SETS_MINUS_SELF +
        Auto-generated from RARE rule sets-minus-self
        +
        SETS_SUBSET_ELIM +
        Auto-generated from RARE rule sets-subset-elim
        +
        SETS_UNION_COMM +
        Auto-generated from RARE rule sets-union-comm
        +
        SETS_UNION_EMP1 +
        Auto-generated from RARE rule sets-union-emp1
        +
        SETS_UNION_EMP2 +
        Auto-generated from RARE rule sets-union-emp2
        +
        SETS_UNION_MEMBER +
        Auto-generated from RARE rule sets-union-member
        +
        STR_AT_ELIM +
        Auto-generated from RARE rule str-at-elim
        +
        STR_CONCAT_CLASH +
        Auto-generated from RARE rule str-concat-clash
        +
        STR_CONCAT_CLASH_CHAR +
        Auto-generated from RARE rule str-concat-clash-char
        +
        STR_CONCAT_CLASH_CHAR_REV +
        Auto-generated from RARE rule str-concat-clash-char-rev
        +
        STR_CONCAT_CLASH_REV +
        Auto-generated from RARE rule str-concat-clash-rev
        +
        STR_CONCAT_CLASH2 +
        Auto-generated from RARE rule str-concat-clash2
        +
        STR_CONCAT_CLASH2_REV +
        Auto-generated from RARE rule str-concat-clash2-rev
        +
        STR_CONCAT_FLATTEN +
        Auto-generated from RARE rule str-concat-flatten
        +
        STR_CONCAT_FLATTEN_EQ +
        Auto-generated from RARE rule str-concat-flatten-eq
        +
        STR_CONCAT_FLATTEN_EQ_REV +
        Auto-generated from RARE rule str-concat-flatten-eq-rev
        +
        STR_CONCAT_UNIFY +
        Auto-generated from RARE rule str-concat-unify
        +
        STR_CONCAT_UNIFY_BASE +
        Auto-generated from RARE rule str-concat-unify-base
        +
        STR_CONCAT_UNIFY_BASE_REV +
        Auto-generated from RARE rule str-concat-unify-base-rev
        +
        STR_CONCAT_UNIFY_REV +
        Auto-generated from RARE rule str-concat-unify-rev
        +
        STR_CONTAINS_CONCAT_FIND +
        Auto-generated from RARE rule str-contains-concat-find
        +
        STR_CONTAINS_EMP +
        Auto-generated from RARE rule str-contains-emp
        +
        STR_CONTAINS_IS_EMP +
        Auto-generated from RARE rule str-contains-is-emp
        +
        STR_CONTAINS_LEQ_LEN_EQ +
        Auto-generated from RARE rule str-contains-leq-len-eq
        +
        STR_CONTAINS_LT_LEN +
        Auto-generated from RARE rule str-contains-lt-len
        +
        STR_CONTAINS_REFL +
        Auto-generated from RARE rule str-contains-refl
        +
        STR_CONTAINS_SPLIT_CHAR +
        Auto-generated from RARE rule str-contains-split-char
        +
        STR_EQ_CTN_FALSE +
        Auto-generated from RARE rule str-eq-ctn-false
        +
        STR_EQ_CTN_FULL_FALSE1 +
        Auto-generated from RARE rule str-eq-ctn-full-false1
        +
        STR_EQ_CTN_FULL_FALSE2 +
        Auto-generated from RARE rule str-eq-ctn-full-false2
        +
        STR_IN_RE_CONCAT_STAR_CHAR +
        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_CONSUME +
        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_CONTAINS +
        Auto-generated from RARE rule str-in-re-contains
        +
        STR_IN_RE_EVAL +
        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_INTER_ELIM +
        Auto-generated from RARE rule str-in-re-inter-elim
        +
        STR_IN_RE_RANGE_ELIM +
        Auto-generated from RARE rule str-in-re-range-elim
        +
        STR_IN_RE_REQ_UNFOLD +
        Auto-generated from RARE rule str-in-re-req-unfold
        +
        STR_IN_RE_REQ_UNFOLD_REV +
        Auto-generated from RARE rule str-in-re-req-unfold-rev
        +
        STR_IN_RE_SIGMA +
        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_STAR +
        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_SKIP_UNFOLD +
        Auto-generated from RARE rule str-in-re-skip-unfold
        +
        STR_IN_RE_SKIP_UNFOLD_REV +
        Auto-generated from RARE rule str-in-re-skip-unfold-rev
        +
        STR_IN_RE_STRIP_CHAR +
        Auto-generated from RARE rule str-in-re-strip-char
        +
        STR_IN_RE_STRIP_CHAR_REV +
        Auto-generated from RARE rule str-in-re-strip-char-rev
        +
        STR_IN_RE_STRIP_CHAR_S_SINGLE +
        Auto-generated from RARE rule str-in-re-strip-char-s-single
        +
        STR_IN_RE_STRIP_CHAR_S_SINGLE_REV +
        Auto-generated from RARE rule str-in-re-strip-char-s-single-rev
        +
        STR_IN_RE_STRIP_PREFIX +
        Auto-generated from RARE rule str-in-re-strip-prefix
        +
        STR_IN_RE_STRIP_PREFIX_BASE +
        Auto-generated from RARE rule str-in-re-strip-prefix-base
        +
        STR_IN_RE_STRIP_PREFIX_BASE_NEG +
        Auto-generated from RARE rule str-in-re-strip-prefix-base-neg
        +
        STR_IN_RE_STRIP_PREFIX_BASE_NEG_REV +
        Auto-generated from RARE rule str-in-re-strip-prefix-base-neg-rev
        +
        STR_IN_RE_STRIP_PREFIX_BASE_REV +
        Auto-generated from RARE rule str-in-re-strip-prefix-base-rev
        +
        STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE +
        Auto-generated from RARE rule str-in-re-strip-prefix-base-s-single
        +
        STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG +
        Auto-generated from RARE rule str-in-re-strip-prefix-base-s-single-neg
        +
        STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG_REV +
        Auto-generated from RARE rule str-in-re-strip-prefix-base-s-single-neg-rev
        +
        STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_REV +
        Auto-generated from RARE rule str-in-re-strip-prefix-base-s-single-rev
        +
        STR_IN_RE_STRIP_PREFIX_NEG +
        Auto-generated from RARE rule str-in-re-strip-prefix-neg
        +
        STR_IN_RE_STRIP_PREFIX_NEG_REV +
        Auto-generated from RARE rule str-in-re-strip-prefix-neg-rev
        +
        STR_IN_RE_STRIP_PREFIX_REV +
        Auto-generated from RARE rule str-in-re-strip-prefix-rev
        +
        STR_IN_RE_STRIP_PREFIX_S_SINGLE +
        Auto-generated from RARE rule str-in-re-strip-prefix-s-single
        +
        STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG +
        Auto-generated from RARE rule str-in-re-strip-prefix-s-single-neg
        +
        STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG_REV +
        Auto-generated from RARE rule str-in-re-strip-prefix-s-single-neg-rev
        +
        STR_IN_RE_STRIP_PREFIX_S_SINGLE_REV +
        Auto-generated from RARE rule str-in-re-strip-prefix-s-single-rev
        +
        STR_IN_RE_STRIP_PREFIX_SR_SINGLE +
        Auto-generated from RARE rule str-in-re-strip-prefix-sr-single
        +
        STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG +
        Auto-generated from RARE rule str-in-re-strip-prefix-sr-single-neg
        +
        STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG_REV +
        Auto-generated from RARE rule str-in-re-strip-prefix-sr-single-neg-rev
        +
        STR_IN_RE_STRIP_PREFIX_SR_SINGLE_REV +
        Auto-generated from RARE rule str-in-re-strip-prefix-sr-single-rev
        +
        STR_IN_RE_STRIP_PREFIX_SRS_SINGLE +
        Auto-generated from RARE rule str-in-re-strip-prefix-srs-single
        +
        STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG +
        Auto-generated from RARE rule str-in-re-strip-prefix-srs-single-neg
        +
        STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG_REV +
        Auto-generated from RARE rule str-in-re-strip-prefix-srs-single-neg-rev
        +
        STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_REV +
        Auto-generated from RARE rule str-in-re-strip-prefix-srs-single-rev
        +
        STR_IN_RE_TEST_UNFOLD +
        Auto-generated from RARE rule str-in-re-test-unfold
        +
        STR_IN_RE_TEST_UNFOLD_REV +
        Auto-generated from RARE rule str-in-re-test-unfold-rev
        +
        STR_IN_RE_UNION_ELIM +
        Auto-generated from RARE rule str-in-re-union-elim
        +
        STR_INDEXOF_CONTAINS_PRE +
        Auto-generated from RARE rule str-indexof-contains-pre
        +
        STR_INDEXOF_NO_CONTAINS +
        Auto-generated from RARE rule str-indexof-no-contains
        +
        STR_INDEXOF_RE_NONE +
        Auto-generated from RARE rule str-indexof-re-none
        +
        STR_INDEXOF_SELF +
        Auto-generated from RARE rule str-indexof-self
        +
        STR_LEN_CONCAT_REC +
        Auto-generated from RARE rule str-len-concat-rec
        +
        STR_LEN_REPLACE_INV +
        Auto-generated from RARE rule str-len-replace-inv
        +
        STR_LEN_SUBSTR_IN_RANGE +
        Auto-generated from RARE rule str-len-substr-in-range
        +
        STR_LEN_SUBSTR_UB1 +
        Auto-generated from RARE rule str-len-substr-ub1
        +
        STR_LEN_SUBSTR_UB2 +
        Auto-generated from RARE rule str-len-substr-ub2
        +
        STR_LEN_UPDATE_INV +
        Auto-generated from RARE rule str-len-update-inv
        +
        STR_LEQ_CONCAT_FALSE +
        Auto-generated from RARE rule str-leq-concat-false
        +
        STR_LEQ_CONCAT_TRUE +
        Auto-generated from RARE rule str-leq-concat-true
        +
        STR_LEQ_EMPTY +
        Auto-generated from RARE rule str-leq-empty
        +
        STR_LEQ_EMPTY_EQ +
        Auto-generated from RARE rule str-leq-empty-eq
        +
        STR_LT_ELIM +
        Auto-generated from RARE rule str-lt-elim
        +
        STR_PREFIXOF_ELIM +
        Auto-generated from RARE rule str-prefixof-elim
        +
        STR_PREFIXOF_ONE +
        Auto-generated from RARE rule str-prefixof-one
        +
        STR_REPLACE_ALL_NO_CONTAINS +
        Auto-generated from RARE rule str-replace-all-no-contains
        +
        STR_REPLACE_CONTAINS_PRE +
        Auto-generated from RARE rule str-replace-contains-pre
        +
        STR_REPLACE_EMPTY +
        Auto-generated from RARE rule str-replace-empty
        +
        STR_REPLACE_NO_CONTAINS +
        Auto-generated from RARE rule str-replace-no-contains
        +
        STR_REPLACE_PREFIX +
        Auto-generated from RARE rule str-replace-prefix
        +
        STR_REPLACE_RE_ALL_NONE +
        Auto-generated from RARE rule str-replace-re-all-none
        +
        STR_REPLACE_RE_NONE +
        Auto-generated from RARE rule str-replace-re-none
        +
        STR_REPLACE_SELF +
        Auto-generated from RARE rule str-replace-self
        +
        STR_SUBSTR_COMBINE1 +
        Auto-generated from RARE rule str-substr-combine1
        +
        STR_SUBSTR_COMBINE2 +
        Auto-generated from RARE rule str-substr-combine2
        +
        STR_SUBSTR_COMBINE3 +
        Auto-generated from RARE rule str-substr-combine3
        +
        STR_SUBSTR_COMBINE4 +
        Auto-generated from RARE rule str-substr-combine4
        +
        STR_SUBSTR_CONCAT1 +
        Auto-generated from RARE rule str-substr-concat1
        +
        STR_SUBSTR_CONCAT2 +
        Auto-generated from RARE rule str-substr-concat2
        +
        STR_SUBSTR_EMPTY_RANGE +
        Auto-generated from RARE rule str-substr-empty-range
        +
        STR_SUBSTR_EMPTY_START +
        Auto-generated from RARE rule str-substr-empty-start
        +
        STR_SUBSTR_EMPTY_START_NEG +
        Auto-generated from RARE rule str-substr-empty-start-neg
        +
        STR_SUBSTR_EMPTY_STR +
        Auto-generated from RARE rule str-substr-empty-str
        +
        STR_SUBSTR_EQ_EMPTY +
        Auto-generated from RARE rule str-substr-eq-empty
        +
        STR_SUBSTR_FULL +
        Auto-generated from RARE rule str-substr-full
        +
        STR_SUBSTR_FULL_EQ +
        Auto-generated from RARE rule str-substr-full-eq
        +
        STR_SUBSTR_LEN_INCLUDE +
        Auto-generated from RARE rule str-substr-len-include
        +
        STR_SUBSTR_LEN_INCLUDE_PRE +
        Auto-generated from RARE rule str-substr-len-include-pre
        +
        STR_SUBSTR_LEN_SKIP +
        Auto-generated from RARE rule str-substr-len-skip
        +
        STR_SUFFIXOF_ELIM +
        Auto-generated from RARE rule str-suffixof-elim
        +
        STR_SUFFIXOF_ONE +
        Auto-generated from RARE rule str-suffixof-one
        +
        STR_TO_INT_CONCAT_NEG_ONE +
        Auto-generated from RARE rule str-to-int-concat-neg-one
        +
        STR_TO_LOWER_CONCAT +
        Auto-generated from RARE rule str-to-lower-concat
        +
        STR_TO_LOWER_FROM_INT +
        Auto-generated from RARE rule str-to-lower-from-int
        +
        STR_TO_LOWER_LEN +
        Auto-generated from RARE rule str-to-lower-len
        +
        STR_TO_LOWER_UPPER +
        Auto-generated from RARE rule str-to-lower-upper
        +
        STR_TO_UPPER_CONCAT +
        Auto-generated from RARE rule str-to-upper-concat
        +
        STR_TO_UPPER_FROM_INT +
        Auto-generated from RARE rule str-to-upper-from-int
        +
        STR_TO_UPPER_LEN +
        Auto-generated from RARE rule str-to-upper-len
        +
        STR_TO_UPPER_LOWER +
        Auto-generated from RARE rule str-to-upper-lower
        +
        UF_BV2NAT_GEQ_ELIM +
        Auto-generated from RARE rule uf-bv2nat-geq-elim
        +
        UF_BV2NAT_INT2BV +
        Auto-generated from RARE rule uf-bv2nat-int2bv
        +
        UF_BV2NAT_INT2BV_EXTEND +
        Auto-generated from RARE rule uf-bv2nat-int2bv-extend
        +
        UF_BV2NAT_INT2BV_EXTRACT +
        Auto-generated from RARE rule uf-bv2nat-int2bv-extract
        +
        UF_INT2BV_BV2NAT +
        Auto-generated from RARE rule uf-int2bv-bv2nat
        +
        UF_INT2BV_BVULE_EQUIV +
        Auto-generated from RARE rule uf-int2bv-bvule-equiv
        +
        UF_INT2BV_BVULT_EQUIV +
        Auto-generated from RARE rule uf-int2bv-bvult-equiv
        +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Summary

        + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        All Methods Static Methods Instance Methods Concrete Methods 
        Modifier and TypeMethodDescription
        static ProofRewriteRulefromInt​(int value) 
        intgetValue() 
        static ProofRewriteRulevalueOf​(java.lang.String name) +
        Returns the enum constant of this type with the specified name.
        +
        static ProofRewriteRule[]values() +
        Returns an array containing the constants of this enum type, in +the order they are declared.
        +
        +
          +
        • + + +

          Methods inherited from class java.lang.Enum

          +clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
        • +
        +
          +
        • + + +

          Methods inherited from class java.lang.Object

          +getClass, notify, notifyAll, wait, wait, wait
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Enum Constant Detail

        + + + +
          +
        • +

          NONE

          +
          public static final ProofRewriteRule NONE
          +
          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.ProofRule.DSL_REWRITE> proof rule + and the THEORY_REWRITE <cvc5.ProofRule.THEORY_REWRITE> + proof rule.
          +
        • +
        + + + +
          +
        • +

          DISTINCT_ELIM

          +
          public static final ProofRewriteRule DISTINCT_ELIM
          +
          Builtin – Distinct elimination + + \[ + \texttt{distinct}(t_1, t_2) = \neg (t_1 = t2) + \] + if \(n = 2\), or + + \[ + \texttt{distinct}(t_1, \ldots, tn) = \bigwedge_{i=1}^n \bigwedge_{j=i+1}^n t_i \neq t_j + \] + if \(n > 2\)
          +
        • +
        + + + +
          +
        • +

          DISTINCT_CARD_CONFLICT

          +
          public static final ProofRewriteRule DISTINCT_CARD_CONFLICT
          +
          Builtin – Distinct cardinality conflict + + \[ + \texttt{distinct}(t_1, \ldots, tn) = \bot + \] + where \(n\) is greater than the cardinality of the type of + \(t_1, \ldots, t_n\).
          +
        • +
        + + + +
          +
        • +

          BV_TO_NAT_ELIM

          +
          public static final ProofRewriteRule BV_TO_NAT_ELIM
          +
          UF – Bitvector to natural elimination + + \[ + \texttt{bv2nat}(t) = t_1 + \ldots + t_n + \] + where for \(i=1, \ldots, n\), \(t_i\) is + \(\texttt{ite}(x[i-1, i-1] = 1, 2^i, 0)\).
          +
        • +
        + + + +
          +
        • +

          INT_TO_BV_ELIM

          +
          public static final ProofRewriteRule INT_TO_BV_ELIM
          +
          UF – Integer to bitvector elimination + + \[ + \texttt{int2bv}_n(t) = (bvconcat t_1 \ldots t_n) + \] + where for \(i=1, \ldots, n\), \(t_i\) is + \(\texttt{ite}(\texttt{mod}(t,2^n) \geq 2^{n-1}, 1, 0)\).
          +
        • +
        + + + +
          +
        • +

          MACRO_BOOL_NNF_NORM

          +
          public static final ProofRewriteRule MACRO_BOOL_NNF_NORM
          +
          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_ARITH_STRING_PRED_ENTAIL

          +
          public static final ProofRewriteRule MACRO_ARITH_STRING_PRED_ENTAIL
          +
          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.ProofRule.EVALUATE>, + ARITH_POLY_NORM <cvc5.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.
          +
        • +
        + + + +
          +
        • +

          ARITH_STRING_PRED_ENTAIL

          +
          public static final ProofRewriteRule ARITH_STRING_PRED_ENTAIL
          +
          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_SAFE_APPROX

          +
          public static final ProofRewriteRule ARITH_STRING_PRED_SAFE_APPROX
          +
          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_POW_ELIM

          +
          public static final ProofRewriteRule ARITH_POW_ELIM
          +
          Arithmetic – power elimination + + \[ + (x ^ c) = (x \cdot \ldots \cdot x) + \] + where \(c\) is a non-negative integer.
          +
        • +
        + + + +
          +
        • +

          BETA_REDUCE

          +
          public static final ProofRewriteRule BETA_REDUCE
          +
          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 Node.substitute.
          +
        • +
        + + + +
          +
        • +

          LAMBDA_ELIM

          +
          public static final ProofRewriteRule LAMBDA_ELIM
          +
          Equality – Lambda elimination + + \[ + (\lambda x_1 \ldots x_n.\> f(x_1 \ldots x_n)) = f + \]
          +
        • +
        + + + +
          +
        • +

          ARRAYS_SELECT_CONST

          +
          public static final ProofRewriteRule ARRAYS_SELECT_CONST
          +
          Arrays – Constant array select + + \[ + (select A x) = c + \] + where \(A\) is a constant array storing element \(c\).
          +
        • +
        + + + +
          +
        • +

          MACRO_ARRAYS_DISTINCT_ARRAYS

          +
          public static final ProofRewriteRule MACRO_ARRAYS_DISTINCT_ARRAYS
          +
          Arrays – Macro distinct arrays + + \[ + (A = B) = \bot + \] + where \(A\) and \(B\) are distinct array values, that is, + the Node.isConst method returns true for both.
          +
        • +
        + + + +
          +
        • +

          MACRO_ARRAYS_NORMALIZE_CONSTANT

          +
          public static final ProofRewriteRule MACRO_ARRAYS_NORMALIZE_CONSTANT
          +
          Arrays – Macro normalize constant + + \[ + A = B + \] + where \(B\) is the result of normalizing the array value \(A\) + into a canonical form, using the internal method + TheoryArraysRewriter.normalizeConstant.
          +
        • +
        + + + +
          +
        • +

          ARRAYS_EQ_RANGE_EXPAND

          +
          public static final ProofRewriteRule ARRAYS_EQ_RANGE_EXPAND
          +
          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) + \]
          +
        • +
        + + + +
          +
        • +

          EXISTS_ELIM

          +
          public static final ProofRewriteRule EXISTS_ELIM
          +
          Quantifiers – Exists elimination + + \[ + \exists x_1\dots x_n.\> F = \neg \forall x_1\dots x_n.\> \neg F + \]
          +
        • +
        + + + +
          +
        • +

          QUANT_UNUSED_VARS

          +
          public static final ProofRewriteRule QUANT_UNUSED_VARS
          +
          Quantifiers – Unused variables + + \[ + \forall X.\> F = \forall X_1.\> F + \] + where \(X_1\) is the subset of \(X\) that appear free in \(F\) + and \(X_1\) does not contain duplicate variables.
          +
        • +
        + + + +
          +
        • +

          MACRO_QUANT_MERGE_PRENEX

          +
          public static final ProofRewriteRule MACRO_QUANT_MERGE_PRENEX
          +
          Quantifiers – Macro merge prenex + + \[ + \forall X_1.\> \ldots \forall X_n.\> F = \forall X.\> F + \] + where \(X_1 \ldots X_n\) are lists of variables and \(X\) is the + result of removing duplicates from \(X_1 \ldots X_n\).
          +
        • +
        + + + +
          +
        • +

          QUANT_MERGE_PRENEX

          +
          public static final ProofRewriteRule QUANT_MERGE_PRENEX
          +
          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.
          +
        • +
        + + + +
          +
        • +

          MACRO_QUANT_PRENEX

          +
          public static final ProofRewriteRule MACRO_QUANT_PRENEX
          +
          Quantifiers – Macro prenex + + \[ + (\forall X.\> F_1 \vee \cdots \vee (\forall Y.\> F_i) \vee \cdots \vee F_n) = (\forall X Z.\> F_1 \vee \cdots \vee F_i\{ Y \mapsto Z \} \vee \cdots \vee F_n) + \]
          +
        • +
        + + + +
          +
        • +

          MACRO_QUANT_MINISCOPE

          +
          public static final ProofRewriteRule MACRO_QUANT_MINISCOPE
          +
          Quantifiers – Macro miniscoping + + \[ + \forall X.\> F_1 \wedge \cdots \wedge F_n = + G_1 \wedge \cdots \wedge G_n + \] + where each \(G_i\) is semantically equivalent to + \(\forall X.\> F_i\), or alternatively + + \[ + \forall X.\> \ite{C}{F_1}{F_2} = \ite{C}{G_1}{G_2} + \] + where \(C\) does not have any free variable in \(X\).
          +
        • +
        + + + +
          +
        • +

          QUANT_MINISCOPE_AND

          +
          public static final ProofRewriteRule QUANT_MINISCOPE_AND
          +
          Quantifiers – Miniscoping and + + \[ + \forall X.\> F_1 \wedge \ldots \wedge F_n = + (\forall X.\> F_1) \wedge \ldots \wedge (\forall X.\> F_n) + \]
          +
        • +
        + + + +
          +
        • +

          QUANT_MINISCOPE_OR

          +
          public static final ProofRewriteRule QUANT_MINISCOPE_OR
          +
          Quantifiers – Miniscoping or + + \[ + \forall X.\> F_1 \vee \ldots \vee F_n = (\forall X_1.\> F_1) \vee \ldots \vee (\forall X_n.\> F_n) + \] + where \(X = X_1 \ldots X_n\), and the right hand side does not have any + free variable in \(X\).
          +
        • +
        + + + +
          +
        • +

          QUANT_MINISCOPE_ITE

          +
          public static final ProofRewriteRule QUANT_MINISCOPE_ITE
          +
          Quantifiers – Miniscoping ite + + \[ + \forall X.\> \ite{C}{F_1}{F_2} = \ite{C}{\forall X.\> F_1}{\forall X.\> F_2} + \] + where \(C\) does not have any free variable in \(X\).
          +
        • +
        + + + +
          +
        • +

          QUANT_DT_SPLIT

          +
          public static final ProofRewriteRule QUANT_DT_SPLIT
          +
          Quantifiers – Datatypes Split + + \[ + (\forall x Y.\> F) = (\forall X_1 Y. F_1) \vee \cdots \vee (\forall X_n Y. F_n) + \] + where \(x\) is of a datatype type with constructors + \(C_1, \ldots, C_n\), where for each \(i = 1, \ldots, n\), + \(F_i\) is \(F \{ x \mapsto C_i(X_i) \}\).
          +
        • +
        + + + +
          +
        • +

          MACRO_QUANT_PARTITION_CONNECTED_FV

          +
          public static final ProofRewriteRule MACRO_QUANT_PARTITION_CONNECTED_FV
          +
          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_VAR_ELIM_EQ

          +
          public static final ProofRewriteRule MACRO_QUANT_VAR_ELIM_EQ
          +
          Quantifiers – Macro variable elimination equality + + \[ + \forall x Y.\> F = \forall Y.\> F \{ x \mapsto t \} + \] + where \(\neg F\) entails \(x = t\).
          +
        • +
        + + + +
          +
        • +

          QUANT_VAR_ELIM_EQ

          +
          public static final ProofRewriteRule QUANT_VAR_ELIM_EQ
          +
          Quantifiers – Macro variable elimination equality + + .. math. + (\forall x.\> x \neq t \vee F) = F \{ x \mapsto t \} + + or alternatively + + .. math. + (\forall x.\> x \neq t) = \bot
          +
        • +
        + + + +
          +
        • +

          MACRO_QUANT_VAR_ELIM_INEQ

          +
          public static final ProofRewriteRule MACRO_QUANT_VAR_ELIM_INEQ
          +
          Quantifiers – Macro variable elimination inequality + + \[ + \forall x Y.\> F = \forall Y.\> G + \] + where \(G\) is the result of replacing all literals containing + \(x\) with a constant. This is applied only when all such literals + are lower (resp. upper) bounds for \(x\).
          +
        • +
        + + + +
          +
        • +

          MACRO_QUANT_REWRITE_BODY

          +
          public static final ProofRewriteRule MACRO_QUANT_REWRITE_BODY
          +
          Quantifiers – Macro quantifiers rewrite body + + \[ + \forall X.\> F = \forall X.\> G + \] + where \(G\) is semantically equivalent to \(F\).
          +
        • +
        + + + +
          +
        • +

          DT_INST

          +
          public static final ProofRewriteRule DT_INST
          +
          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_COLLAPSE_SELECTOR

          +
          public static final ProofRewriteRule DT_COLLAPSE_SELECTOR
          +
          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_TESTER

          +
          public static final ProofRewriteRule DT_COLLAPSE_TESTER
          +
          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_SINGLETON

          +
          public static final ProofRewriteRule DT_COLLAPSE_TESTER_SINGLETON
          +
          Datatypes – collapse tester + + \[ + \mathit{is}_c(t) = true + \] + where \(c\) is the only constructor of its associated datatype.
          +
        • +
        + + + +
          +
        • +

          DT_CONS_EQ

          +
          public static final ProofRewriteRule DT_CONS_EQ
          +
          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_CYCLE

          +
          public static final ProofRewriteRule DT_CYCLE
          +
          Datatypes – cycle + + \[ + (x = t[x]) = \bot + \] + where all terms on the path to \(x\) in \(t[x]\) are applications + of constructors, and this path is non-empty.
          +
        • +
        + + + +
          +
        • +

          DT_COLLAPSE_UPDATER

          +
          public static final ProofRewriteRule DT_COLLAPSE_UPDATER
          +
          Datatypes – collapse tester + + \[ + u_{c,i}(c(t_1, \ldots, t_i, \ldots, t_n), s) = c(t_1, \ldots, s, \ldots, t_n) + \] + or alternatively + + \[ + u_{c,i}(d(t_1, \ldots, t_n), s) = d(t_1, \ldots, t_n) + \] + where \(c\) and \(d\) are distinct constructors.
          +
        • +
        + + + +
          +
        • +

          DT_UPDATER_ELIM

          +
          public static final ProofRewriteRule DT_UPDATER_ELIM
          +
          Datatypes - updater elimination + + \[ + u_{c,i}(t, s) = ite(\mathit{is}_c(t), c(s_0(t), \ldots, s, \ldots s_n(t)), t) + \] + where \(s_i\) is the \(i^{th}\) selector for constructor \(c\).
          +
        • +
        + + + +
          +
        • +

          DT_MATCH_ELIM

          +
          public static final ProofRewriteRule DT_MATCH_ELIM
          +
          Datatypes – match elimination + + \[ + \texttt{match}(t ((p_1 c_1) \ldots (p_n c_n))) = \texttt{ite}(F_1, r_1, \texttt{ite}( \ldots, r_n)) + \] + where for \(i=1, \ldots, n\), \(F_1\) is a formula that holds iff + \(t\) matches \(p_i\) and \(r_i\) is the result of a + substitution on \(c_i\) based on this match.
          +
        • +
        + + + +
          +
        • +

          BV_UMULO_ELIMINATE

          +
          public static final ProofRewriteRule BV_UMULO_ELIMINATE
          +
          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

          +
          public static final ProofRewriteRule BV_SMULO_ELIMINATE
          +
          Bitvectors – Unsigned multiplication overflow detection elimination + + See M.Gok, M.J. Schulte, P.I. Balzola, "Efficient integer multiplication + overflow detection circuits", 2001. + http:
          +
        • +
        + + + +
          +
        • +

          BV_ADD_COMBINE_LIKE_TERMS

          +
          public static final ProofRewriteRule BV_ADD_COMBINE_LIKE_TERMS
          +
          Bitvectors – Combine like terms during addition by counting terms
          +
        • +
        + + + +
          +
        • +

          BV_MULT_SIMPLIFY

          +
          public static final ProofRewriteRule BV_MULT_SIMPLIFY
          +
          Bitvectors – Extract negations from multiplicands + + \[ + bvmul(bvneg(a),\ b,\ c) = bvneg(bvmul(a,\ b,\ c)) + \]
          +
        • +
        + + + +
          +
        • +

          BV_BITWISE_SLICING

          +
          public static final ProofRewriteRule BV_BITWISE_SLICING
          +
          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_REPEAT_ELIM

          +
          public static final ProofRewriteRule BV_REPEAT_ELIM
          +
          Bitvectors – Extract continuous substrings of bitvectors + + \[ + repeat(n,\ t) = concat(t ... t) + \] + where \(t\) is repeated \(n\) times.
          +
        • +
        + + + +
          +
        • +

          RE_LOOP_ELIM

          +
          public static final ProofRewriteRule RE_LOOP_ELIM
          +
          Strings – regular expression loop elimination + + \[ + re.loop_{l,u}(R) = re.union(R^l, \ldots, R^u) + \] + where \(u \geq l\).
          +
        • +
        + + + +
          +
        • +

          RE_INTER_UNION_INCLUSION

          +
          public static final ProofRewriteRule RE_INTER_UNION_INCLUSION
          +
          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`.
          +
        • +
        + + + +
          +
        • +

          STR_IN_RE_EVAL

          +
          public static final ProofRewriteRule STR_IN_RE_EVAL
          +
          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_CONSUME

          +
          public static final ProofRewriteRule STR_IN_RE_CONSUME
          +
          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_CONCAT_STAR_CHAR

          +
          public static final ProofRewriteRule STR_IN_RE_CONCAT_STAR_CHAR
          +
          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_SIGMA

          +
          public static final ProofRewriteRule STR_IN_RE_SIGMA
          +
          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_STAR

          +
          public static final ProofRewriteRule STR_IN_RE_SIGMA_STAR
          +
          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{++}\).
          +
        • +
        + + + +
          +
        • +

          MACRO_SUBSTR_STRIP_SYM_LENGTH

          +
          public static final ProofRewriteRule MACRO_SUBSTR_STRIP_SYM_LENGTH
          +
          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\).
          +
        • +
        + + + +
          +
        • +

          SETS_IS_EMPTY_EVAL

          +
          public static final ProofRewriteRule SETS_IS_EMPTY_EVAL
          +
          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_INSERT_ELIM

          +
          public static final ProofRewriteRule SETS_INSERT_ELIM
          +
          Sets – sets insert elimination + + \[ + \mathit{sets.insert}(t_1, \ldots, t_n, S) = \texttt{set.union}(\texttt{sets.singleton}(t_1), \ldots, \texttt{sets.singleton}(t_n), S) + \]
          +
        • +
        + + + +
          +
        • +

          ARITH_MUL_ONE

          +
          public static final ProofRewriteRule ARITH_MUL_ONE
          +
          Auto-generated from RARE rule arith-mul-one
          +
        • +
        + + + +
          +
        • +

          ARITH_MUL_ZERO

          +
          public static final ProofRewriteRule ARITH_MUL_ZERO
          +
          Auto-generated from RARE rule arith-mul-zero
          +
        • +
        + + + +
          +
        • +

          ARITH_DIV_TOTAL_REAL

          +
          public static final ProofRewriteRule ARITH_DIV_TOTAL_REAL
          +
          Auto-generated from RARE rule arith-div-total-real
          +
        • +
        + + + +
          +
        • +

          ARITH_DIV_TOTAL_INT

          +
          public static final ProofRewriteRule ARITH_DIV_TOTAL_INT
          +
          Auto-generated from RARE rule arith-div-total-int
          +
        • +
        + + + +
          +
        • +

          ARITH_DIV_TOTAL_ZERO_REAL

          +
          public static final ProofRewriteRule ARITH_DIV_TOTAL_ZERO_REAL
          +
          Auto-generated from RARE rule arith-div-total-zero-real
          +
        • +
        + + + +
          +
        • +

          ARITH_DIV_TOTAL_ZERO_INT

          +
          public static final ProofRewriteRule ARITH_DIV_TOTAL_ZERO_INT
          +
          Auto-generated from RARE rule arith-div-total-zero-int
          +
        • +
        + + + +
          +
        • +

          ARITH_INT_DIV_TOTAL

          +
          public static final ProofRewriteRule ARITH_INT_DIV_TOTAL
          +
          Auto-generated from RARE rule arith-int-div-total
          +
        • +
        + + + +
          +
        • +

          ARITH_INT_DIV_TOTAL_ONE

          +
          public static final ProofRewriteRule ARITH_INT_DIV_TOTAL_ONE
          +
          Auto-generated from RARE rule arith-int-div-total-one
          +
        • +
        + + + +
          +
        • +

          ARITH_INT_DIV_TOTAL_ZERO

          +
          public static final ProofRewriteRule ARITH_INT_DIV_TOTAL_ZERO
          +
          Auto-generated from RARE rule arith-int-div-total-zero
          +
        • +
        + + + +
          +
        • +

          ARITH_INT_MOD_TOTAL

          +
          public static final ProofRewriteRule ARITH_INT_MOD_TOTAL
          +
          Auto-generated from RARE rule arith-int-mod-total
          +
        • +
        + + + +
          +
        • +

          ARITH_INT_MOD_TOTAL_ONE

          +
          public static final ProofRewriteRule ARITH_INT_MOD_TOTAL_ONE
          +
          Auto-generated from RARE rule arith-int-mod-total-one
          +
        • +
        + + + +
          +
        • +

          ARITH_INT_MOD_TOTAL_ZERO

          +
          public static final ProofRewriteRule ARITH_INT_MOD_TOTAL_ZERO
          +
          Auto-generated from RARE rule arith-int-mod-total-zero
          +
        • +
        + + + +
          +
        • +

          ARITH_ELIM_GT

          +
          public static final ProofRewriteRule ARITH_ELIM_GT
          +
          Auto-generated from RARE rule arith-elim-gt
          +
        • +
        + + + +
          +
        • +

          ARITH_ELIM_LT

          +
          public static final ProofRewriteRule ARITH_ELIM_LT
          +
          Auto-generated from RARE rule arith-elim-lt
          +
        • +
        + + + +
          +
        • +

          ARITH_ELIM_INT_GT

          +
          public static final ProofRewriteRule ARITH_ELIM_INT_GT
          +
          Auto-generated from RARE rule arith-elim-int-gt
          +
        • +
        + + + +
          +
        • +

          ARITH_ELIM_INT_LT

          +
          public static final ProofRewriteRule ARITH_ELIM_INT_LT
          +
          Auto-generated from RARE rule arith-elim-int-lt
          +
        • +
        + + + +
          +
        • +

          ARITH_ELIM_LEQ

          +
          public static final ProofRewriteRule ARITH_ELIM_LEQ
          +
          Auto-generated from RARE rule arith-elim-leq
          +
        • +
        + + + +
          +
        • +

          ARITH_LEQ_NORM

          +
          public static final ProofRewriteRule ARITH_LEQ_NORM
          +
          Auto-generated from RARE rule arith-leq-norm
          +
        • +
        + + + +
          +
        • +

          ARITH_GEQ_TIGHTEN

          +
          public static final ProofRewriteRule ARITH_GEQ_TIGHTEN
          +
          Auto-generated from RARE rule arith-geq-tighten
          +
        • +
        + + + +
          +
        • +

          ARITH_GEQ_NORM1_INT

          +
          public static final ProofRewriteRule ARITH_GEQ_NORM1_INT
          +
          Auto-generated from RARE rule arith-geq-norm1-int
          +
        • +
        + + + +
          +
        • +

          ARITH_GEQ_NORM1_REAL

          +
          public static final ProofRewriteRule ARITH_GEQ_NORM1_REAL
          +
          Auto-generated from RARE rule arith-geq-norm1-real
          +
        • +
        + + + +
          +
        • +

          ARITH_GEQ_NORM2

          +
          public static final ProofRewriteRule ARITH_GEQ_NORM2
          +
          Auto-generated from RARE rule arith-geq-norm2
          +
        • +
        + + + +
          +
        • +

          ARITH_REFL_LEQ

          +
          public static final ProofRewriteRule ARITH_REFL_LEQ
          +
          Auto-generated from RARE rule arith-refl-leq
          +
        • +
        + + + +
          +
        • +

          ARITH_REFL_LT

          +
          public static final ProofRewriteRule ARITH_REFL_LT
          +
          Auto-generated from RARE rule arith-refl-lt
          +
        • +
        + + + +
          +
        • +

          ARITH_REFL_GEQ

          +
          public static final ProofRewriteRule ARITH_REFL_GEQ
          +
          Auto-generated from RARE rule arith-refl-geq
          +
        • +
        + + + +
          +
        • +

          ARITH_REFL_GT

          +
          public static final ProofRewriteRule ARITH_REFL_GT
          +
          Auto-generated from RARE rule arith-refl-gt
          +
        • +
        + + + +
          +
        • +

          ARITH_EQ_ELIM_REAL

          +
          public static final ProofRewriteRule ARITH_EQ_ELIM_REAL
          +
          Auto-generated from RARE rule arith-eq-elim-real
          +
        • +
        + + + +
          +
        • +

          ARITH_EQ_ELIM_INT

          +
          public static final ProofRewriteRule ARITH_EQ_ELIM_INT
          +
          Auto-generated from RARE rule arith-eq-elim-int
          +
        • +
        + + + +
          +
        • +

          ARITH_PLUS_FLATTEN

          +
          public static final ProofRewriteRule ARITH_PLUS_FLATTEN
          +
          Auto-generated from RARE rule arith-plus-flatten
          +
        • +
        + + + +
          +
        • +

          ARITH_MULT_FLATTEN

          +
          public static final ProofRewriteRule ARITH_MULT_FLATTEN
          +
          Auto-generated from RARE rule arith-mult-flatten
          +
        • +
        + + + +
          +
        • +

          ARITH_MULT_DIST

          +
          public static final ProofRewriteRule ARITH_MULT_DIST
          +
          Auto-generated from RARE rule arith-mult-dist
          +
        • +
        + + + +
          +
        • +

          ARITH_ABS_ELIM_INT

          +
          public static final ProofRewriteRule ARITH_ABS_ELIM_INT
          +
          Auto-generated from RARE rule arith-abs-elim-int
          +
        • +
        + + + +
          +
        • +

          ARITH_ABS_ELIM_REAL

          +
          public static final ProofRewriteRule ARITH_ABS_ELIM_REAL
          +
          Auto-generated from RARE rule arith-abs-elim-real
          +
        • +
        + + + +
          +
        • +

          ARITH_TO_REAL_ELIM

          +
          public static final ProofRewriteRule ARITH_TO_REAL_ELIM
          +
          Auto-generated from RARE rule arith-to-real-elim
          +
        • +
        + + + +
          +
        • +

          ARITH_TO_INT_ELIM_TO_REAL

          +
          public static final ProofRewriteRule ARITH_TO_INT_ELIM_TO_REAL
          +
          Auto-generated from RARE rule arith-to-int-elim-to-real
          +
        • +
        + + + +
          +
        • +

          ARITH_DIV_ELIM_TO_REAL1

          +
          public static final ProofRewriteRule ARITH_DIV_ELIM_TO_REAL1
          +
          Auto-generated from RARE rule arith-div-elim-to-real1
          +
        • +
        + + + +
          +
        • +

          ARITH_DIV_ELIM_TO_REAL2

          +
          public static final ProofRewriteRule ARITH_DIV_ELIM_TO_REAL2
          +
          Auto-generated from RARE rule arith-div-elim-to-real2
          +
        • +
        + + + +
          +
        • +

          ARITH_SINE_ZERO

          +
          public static final ProofRewriteRule ARITH_SINE_ZERO
          +
          Auto-generated from RARE rule arith-sine-zero
          +
        • +
        + + + +
          +
        • +

          ARITH_SINE_PI2

          +
          public static final ProofRewriteRule ARITH_SINE_PI2
          +
          Auto-generated from RARE rule arith-sine-pi2
          +
        • +
        + + + +
          +
        • +

          ARITH_COSINE_ELIM

          +
          public static final ProofRewriteRule ARITH_COSINE_ELIM
          +
          Auto-generated from RARE rule arith-cosine-elim
          +
        • +
        + + + +
          +
        • +

          ARITH_TANGENT_ELIM

          +
          public static final ProofRewriteRule ARITH_TANGENT_ELIM
          +
          Auto-generated from RARE rule arith-tangent-elim
          +
        • +
        + + + +
          +
        • +

          ARITH_SECENT_ELIM

          +
          public static final ProofRewriteRule ARITH_SECENT_ELIM
          +
          Auto-generated from RARE rule arith-secent-elim
          +
        • +
        + + + +
          +
        • +

          ARITH_COSECENT_ELIM

          +
          public static final ProofRewriteRule ARITH_COSECENT_ELIM
          +
          Auto-generated from RARE rule arith-cosecent-elim
          +
        • +
        + + + +
          +
        • +

          ARITH_COTANGENT_ELIM

          +
          public static final ProofRewriteRule ARITH_COTANGENT_ELIM
          +
          Auto-generated from RARE rule arith-cotangent-elim
          +
        • +
        + + + +
          +
        • +

          ARITH_PI_NOT_INT

          +
          public static final ProofRewriteRule ARITH_PI_NOT_INT
          +
          Auto-generated from RARE rule arith-pi-not-int
          +
        • +
        + + + +
          +
        • +

          ARITH_ABS_EQ

          +
          public static final ProofRewriteRule ARITH_ABS_EQ
          +
          Auto-generated from RARE rule arith-abs-eq
          +
        • +
        + + + +
          +
        • +

          ARITH_ABS_INT_GT

          +
          public static final ProofRewriteRule ARITH_ABS_INT_GT
          +
          Auto-generated from RARE rule arith-abs-int-gt
          +
        • +
        + + + +
          +
        • +

          ARITH_ABS_REAL_GT

          +
          public static final ProofRewriteRule ARITH_ABS_REAL_GT
          +
          Auto-generated from RARE rule arith-abs-real-gt
          +
        • +
        + + + +
          +
        • +

          ARRAY_READ_OVER_WRITE

          +
          public static final ProofRewriteRule ARRAY_READ_OVER_WRITE
          +
          Auto-generated from RARE rule array-read-over-write
          +
        • +
        + + + +
          +
        • +

          ARRAY_READ_OVER_WRITE2

          +
          public static final ProofRewriteRule ARRAY_READ_OVER_WRITE2
          +
          Auto-generated from RARE rule array-read-over-write2
          +
        • +
        + + + +
          +
        • +

          ARRAY_STORE_OVERWRITE

          +
          public static final ProofRewriteRule ARRAY_STORE_OVERWRITE
          +
          Auto-generated from RARE rule array-store-overwrite
          +
        • +
        + + + +
          +
        • +

          ARRAY_STORE_SELF

          +
          public static final ProofRewriteRule ARRAY_STORE_SELF
          +
          Auto-generated from RARE rule array-store-self
          +
        • +
        + + + +
          +
        • +

          ARRAY_READ_OVER_WRITE_SPLIT

          +
          public static final ProofRewriteRule ARRAY_READ_OVER_WRITE_SPLIT
          +
          Auto-generated from RARE rule array-read-over-write-split
          +
        • +
        + + + +
          +
        • +

          BOOL_DOUBLE_NOT_ELIM

          +
          public static final ProofRewriteRule BOOL_DOUBLE_NOT_ELIM
          +
          Auto-generated from RARE rule boolean-double-not-elim
          +
        • +
        + + + +
          +
        • +

          BOOL_NOT_TRUE

          +
          public static final ProofRewriteRule BOOL_NOT_TRUE
          +
          Auto-generated from RARE rule boolean-not-true
          +
        • +
        + + + +
          +
        • +

          BOOL_NOT_FALSE

          +
          public static final ProofRewriteRule BOOL_NOT_FALSE
          +
          Auto-generated from RARE rule boolean-not-false
          +
        • +
        + + + +
          +
        • +

          BOOL_EQ_TRUE

          +
          public static final ProofRewriteRule BOOL_EQ_TRUE
          +
          Auto-generated from RARE rule boolean-eq-true
          +
        • +
        + + + +
          +
        • +

          BOOL_EQ_FALSE

          +
          public static final ProofRewriteRule BOOL_EQ_FALSE
          +
          Auto-generated from RARE rule boolean-eq-false
          +
        • +
        + + + +
          +
        • +

          BOOL_EQ_NREFL

          +
          public static final ProofRewriteRule BOOL_EQ_NREFL
          +
          Auto-generated from RARE rule boolean-eq-nrefl
          +
        • +
        + + + +
          +
        • +

          BOOL_IMPL_FALSE1

          +
          public static final ProofRewriteRule BOOL_IMPL_FALSE1
          +
          Auto-generated from RARE rule boolean-impl-false1
          +
        • +
        + + + +
          +
        • +

          BOOL_IMPL_FALSE2

          +
          public static final ProofRewriteRule BOOL_IMPL_FALSE2
          +
          Auto-generated from RARE rule boolean-impl-false2
          +
        • +
        + + + +
          +
        • +

          BOOL_IMPL_TRUE1

          +
          public static final ProofRewriteRule BOOL_IMPL_TRUE1
          +
          Auto-generated from RARE rule boolean-impl-true1
          +
        • +
        + + + +
          +
        • +

          BOOL_IMPL_TRUE2

          +
          public static final ProofRewriteRule BOOL_IMPL_TRUE2
          +
          Auto-generated from RARE rule boolean-impl-true2
          +
        • +
        + + + +
          +
        • +

          BOOL_IMPL_ELIM

          +
          public static final ProofRewriteRule BOOL_IMPL_ELIM
          +
          Auto-generated from RARE rule boolean-impl-elim
          +
        • +
        + + + +
          +
        • +

          BOOL_OR_TRUE

          +
          public static final ProofRewriteRule BOOL_OR_TRUE
          +
          Auto-generated from RARE rule boolean-or-true
          +
        • +
        + + + +
          +
        • +

          BOOL_OR_FLATTEN

          +
          public static final ProofRewriteRule BOOL_OR_FLATTEN
          +
          Auto-generated from RARE rule boolean-or-flatten
          +
        • +
        + + + +
          +
        • +

          BOOL_AND_FALSE

          +
          public static final ProofRewriteRule BOOL_AND_FALSE
          +
          Auto-generated from RARE rule boolean-and-false
          +
        • +
        + + + +
          +
        • +

          BOOL_AND_FLATTEN

          +
          public static final ProofRewriteRule BOOL_AND_FLATTEN
          +
          Auto-generated from RARE rule boolean-and-flatten
          +
        • +
        + + + +
          +
        • +

          BOOL_AND_CONF

          +
          public static final ProofRewriteRule BOOL_AND_CONF
          +
          Auto-generated from RARE rule boolean-and-conf
          +
        • +
        + + + +
          +
        • +

          BOOL_AND_CONF2

          +
          public static final ProofRewriteRule BOOL_AND_CONF2
          +
          Auto-generated from RARE rule boolean-and-conf2
          +
        • +
        + + + +
          +
        • +

          BOOL_OR_TAUT

          +
          public static final ProofRewriteRule BOOL_OR_TAUT
          +
          Auto-generated from RARE rule boolean-or-taut
          +
        • +
        + + + +
          +
        • +

          BOOL_OR_TAUT2

          +
          public static final ProofRewriteRule BOOL_OR_TAUT2
          +
          Auto-generated from RARE rule boolean-or-taut2
          +
        • +
        + + + +
          +
        • +

          BOOL_OR_DE_MORGAN

          +
          public static final ProofRewriteRule BOOL_OR_DE_MORGAN
          +
          Auto-generated from RARE rule boolean-or-de-morgan
          +
        • +
        + + + +
          +
        • +

          BOOL_IMPLIES_DE_MORGAN

          +
          public static final ProofRewriteRule BOOL_IMPLIES_DE_MORGAN
          +
          Auto-generated from RARE rule boolean-implies-de-morgan
          +
        • +
        + + + +
          +
        • +

          BOOL_AND_DE_MORGAN

          +
          public static final ProofRewriteRule BOOL_AND_DE_MORGAN
          +
          Auto-generated from RARE rule boolean-and-de-morgan
          +
        • +
        + + + +
          +
        • +

          BOOL_OR_AND_DISTRIB

          +
          public static final ProofRewriteRule BOOL_OR_AND_DISTRIB
          +
          Auto-generated from RARE rule boolean-or-and-distrib
          +
        • +
        + + + +
          +
        • +

          BOOL_XOR_REFL

          +
          public static final ProofRewriteRule BOOL_XOR_REFL
          +
          Auto-generated from RARE rule boolean-xor-refl
          +
        • +
        + + + +
          +
        • +

          BOOL_XOR_NREFL

          +
          public static final ProofRewriteRule BOOL_XOR_NREFL
          +
          Auto-generated from RARE rule boolean-xor-nrefl
          +
        • +
        + + + +
          +
        • +

          BOOL_XOR_FALSE

          +
          public static final ProofRewriteRule BOOL_XOR_FALSE
          +
          Auto-generated from RARE rule boolean-xor-false
          +
        • +
        + + + +
          +
        • +

          BOOL_XOR_TRUE

          +
          public static final ProofRewriteRule BOOL_XOR_TRUE
          +
          Auto-generated from RARE rule boolean-xor-true
          +
        • +
        + + + +
          +
        • +

          BOOL_XOR_COMM

          +
          public static final ProofRewriteRule BOOL_XOR_COMM
          +
          Auto-generated from RARE rule boolean-xor-comm
          +
        • +
        + + + +
          +
        • +

          BOOL_XOR_ELIM

          +
          public static final ProofRewriteRule BOOL_XOR_ELIM
          +
          Auto-generated from RARE rule boolean-xor-elim
          +
        • +
        + + + +
          +
        • +

          BOOL_NOT_XOR_ELIM

          +
          public static final ProofRewriteRule BOOL_NOT_XOR_ELIM
          +
          Auto-generated from RARE rule boolean-not-xor-elim
          +
        • +
        + + + +
          +
        • +

          BOOL_NOT_EQ_ELIM1

          +
          public static final ProofRewriteRule BOOL_NOT_EQ_ELIM1
          +
          Auto-generated from RARE rule boolean-not-eq-elim1
          +
        • +
        + + + +
          +
        • +

          BOOL_NOT_EQ_ELIM2

          +
          public static final ProofRewriteRule BOOL_NOT_EQ_ELIM2
          +
          Auto-generated from RARE rule boolean-not-eq-elim2
          +
        • +
        + + + +
          +
        • +

          ITE_NEG_BRANCH

          +
          public static final ProofRewriteRule ITE_NEG_BRANCH
          +
          Auto-generated from RARE rule ite-neg-branch
          +
        • +
        + + + +
          +
        • +

          ITE_THEN_TRUE

          +
          public static final ProofRewriteRule ITE_THEN_TRUE
          +
          Auto-generated from RARE rule ite-then-true
          +
        • +
        + + + +
          +
        • +

          ITE_ELSE_FALSE

          +
          public static final ProofRewriteRule ITE_ELSE_FALSE
          +
          Auto-generated from RARE rule ite-else-false
          +
        • +
        + + + +
          +
        • +

          ITE_THEN_FALSE

          +
          public static final ProofRewriteRule ITE_THEN_FALSE
          +
          Auto-generated from RARE rule ite-then-false
          +
        • +
        + + + +
          +
        • +

          ITE_ELSE_TRUE

          +
          public static final ProofRewriteRule ITE_ELSE_TRUE
          +
          Auto-generated from RARE rule ite-else-true
          +
        • +
        + + + +
          +
        • +

          ITE_THEN_LOOKAHEAD_SELF

          +
          public static final ProofRewriteRule ITE_THEN_LOOKAHEAD_SELF
          +
          Auto-generated from RARE rule ite-then-lookahead-self
          +
        • +
        + + + +
          +
        • +

          ITE_ELSE_LOOKAHEAD_SELF

          +
          public static final ProofRewriteRule ITE_ELSE_LOOKAHEAD_SELF
          +
          Auto-generated from RARE rule ite-else-lookahead-self
          +
        • +
        + + + +
          +
        • +

          ITE_THEN_LOOKAHEAD_NOT_SELF

          +
          public static final ProofRewriteRule ITE_THEN_LOOKAHEAD_NOT_SELF
          +
          Auto-generated from RARE rule ite-then-lookahead-not-self
          +
        • +
        + + + +
          +
        • +

          ITE_ELSE_LOOKAHEAD_NOT_SELF

          +
          public static final ProofRewriteRule ITE_ELSE_LOOKAHEAD_NOT_SELF
          +
          Auto-generated from RARE rule ite-else-lookahead-not-self
          +
        • +
        + + + +
          +
        • +

          ITE_EXPAND

          +
          public static final ProofRewriteRule ITE_EXPAND
          +
          Auto-generated from RARE rule ite-expand
          +
        • +
        + + + +
          +
        • +

          BOOL_NOT_ITE_ELIM

          +
          public static final ProofRewriteRule BOOL_NOT_ITE_ELIM
          +
          Auto-generated from RARE rule boolean-not-ite-elim
          +
        • +
        + + + +
          +
        • +

          ITE_TRUE_COND

          +
          public static final ProofRewriteRule ITE_TRUE_COND
          +
          Auto-generated from RARE rule ite-true-cond
          +
        • +
        + + + +
          +
        • +

          ITE_FALSE_COND

          +
          public static final ProofRewriteRule ITE_FALSE_COND
          +
          Auto-generated from RARE rule ite-false-cond
          +
        • +
        + + + +
          +
        • +

          ITE_NOT_COND

          +
          public static final ProofRewriteRule ITE_NOT_COND
          +
          Auto-generated from RARE rule ite-not-cond
          +
        • +
        + + + +
          +
        • +

          ITE_EQ_BRANCH

          +
          public static final ProofRewriteRule ITE_EQ_BRANCH
          +
          Auto-generated from RARE rule ite-eq-branch
          +
        • +
        + + + +
          +
        • +

          ITE_THEN_LOOKAHEAD

          +
          public static final ProofRewriteRule ITE_THEN_LOOKAHEAD
          +
          Auto-generated from RARE rule ite-then-lookahead
          +
        • +
        + + + +
          +
        • +

          ITE_ELSE_LOOKAHEAD

          +
          public static final ProofRewriteRule ITE_ELSE_LOOKAHEAD
          +
          Auto-generated from RARE rule ite-else-lookahead
          +
        • +
        + + + +
          +
        • +

          ITE_THEN_NEG_LOOKAHEAD

          +
          public static final ProofRewriteRule ITE_THEN_NEG_LOOKAHEAD
          +
          Auto-generated from RARE rule ite-then-neg-lookahead
          +
        • +
        + + + +
          +
        • +

          ITE_ELSE_NEG_LOOKAHEAD

          +
          public static final ProofRewriteRule ITE_ELSE_NEG_LOOKAHEAD
          +
          Auto-generated from RARE rule ite-else-neg-lookahead
          +
        • +
        + + + +
          +
        • +

          BV_CONCAT_FLATTEN

          +
          public static final ProofRewriteRule BV_CONCAT_FLATTEN
          +
          Auto-generated from RARE rule bv-concat-flatten
          +
        • +
        + + + +
          +
        • +

          BV_CONCAT_EXTRACT_MERGE

          +
          public static final ProofRewriteRule BV_CONCAT_EXTRACT_MERGE
          +
          Auto-generated from RARE rule bv-concat-extract-merge
          +
        • +
        + + + +
          +
        • +

          BV_EXTRACT_EXTRACT

          +
          public static final ProofRewriteRule BV_EXTRACT_EXTRACT
          +
          Auto-generated from RARE rule bv-extract-extract
          +
        • +
        + + + +
          +
        • +

          BV_EXTRACT_WHOLE

          +
          public static final ProofRewriteRule BV_EXTRACT_WHOLE
          +
          Auto-generated from RARE rule bv-extract-whole
          +
        • +
        + + + +
          +
        • +

          BV_EXTRACT_CONCAT_1

          +
          public static final ProofRewriteRule BV_EXTRACT_CONCAT_1
          +
          Auto-generated from RARE rule bv-extract-concat-1
          +
        • +
        + + + +
          +
        • +

          BV_EXTRACT_CONCAT_2

          +
          public static final ProofRewriteRule BV_EXTRACT_CONCAT_2
          +
          Auto-generated from RARE rule bv-extract-concat-2
          +
        • +
        + + + +
          +
        • +

          BV_EXTRACT_CONCAT_3

          +
          public static final ProofRewriteRule BV_EXTRACT_CONCAT_3
          +
          Auto-generated from RARE rule bv-extract-concat-3
          +
        • +
        + + + +
          +
        • +

          BV_EXTRACT_CONCAT_4

          +
          public static final ProofRewriteRule BV_EXTRACT_CONCAT_4
          +
          Auto-generated from RARE rule bv-extract-concat-4
          +
        • +
        + + + +
          +
        • +

          BV_EQ_EXTRACT_ELIM1

          +
          public static final ProofRewriteRule BV_EQ_EXTRACT_ELIM1
          +
          Auto-generated from RARE rule bv-eq-extract-elim1
          +
        • +
        + + + +
          +
        • +

          BV_EQ_EXTRACT_ELIM2

          +
          public static final ProofRewriteRule BV_EQ_EXTRACT_ELIM2
          +
          Auto-generated from RARE rule bv-eq-extract-elim2
          +
        • +
        + + + +
          +
        • +

          BV_EQ_EXTRACT_ELIM3

          +
          public static final ProofRewriteRule BV_EQ_EXTRACT_ELIM3
          +
          Auto-generated from RARE rule bv-eq-extract-elim3
          +
        • +
        + + + +
          +
        • +

          BV_EXTRACT_BITWISE_AND

          +
          public static final ProofRewriteRule BV_EXTRACT_BITWISE_AND
          +
          Auto-generated from RARE rule bv-extract-bitwise-and
          +
        • +
        + + + +
          +
        • +

          BV_EXTRACT_BITWISE_OR

          +
          public static final ProofRewriteRule BV_EXTRACT_BITWISE_OR
          +
          Auto-generated from RARE rule bv-extract-bitwise-or
          +
        • +
        + + + +
          +
        • +

          BV_EXTRACT_BITWISE_XOR

          +
          public static final ProofRewriteRule BV_EXTRACT_BITWISE_XOR
          +
          Auto-generated from RARE rule bv-extract-bitwise-xor
          +
        • +
        + + + +
          +
        • +

          BV_EXTRACT_NOT

          +
          public static final ProofRewriteRule BV_EXTRACT_NOT
          +
          Auto-generated from RARE rule bv-extract-not
          +
        • +
        + + + +
          +
        • +

          BV_EXTRACT_SIGN_EXTEND_1

          +
          public static final ProofRewriteRule BV_EXTRACT_SIGN_EXTEND_1
          +
          Auto-generated from RARE rule bv-extract-sign-extend-1
          +
        • +
        + + + +
          +
        • +

          BV_EXTRACT_SIGN_EXTEND_2

          +
          public static final ProofRewriteRule BV_EXTRACT_SIGN_EXTEND_2
          +
          Auto-generated from RARE rule bv-extract-sign-extend-2
          +
        • +
        + + + +
          +
        • +

          BV_EXTRACT_SIGN_EXTEND_3

          +
          public static final ProofRewriteRule BV_EXTRACT_SIGN_EXTEND_3
          +
          Auto-generated from RARE rule bv-extract-sign-extend-3
          +
        • +
        + + + +
          +
        • +

          BV_NEG_MULT

          +
          public static final ProofRewriteRule BV_NEG_MULT
          +
          Auto-generated from RARE rule bv-neg-mult
          +
        • +
        + + + +
          +
        • +

          BV_NEG_ADD

          +
          public static final ProofRewriteRule BV_NEG_ADD
          +
          Auto-generated from RARE rule bv-neg-add
          +
        • +
        + + + +
          +
        • +

          BV_MULT_DISTRIB_CONST_NEG

          +
          public static final ProofRewriteRule BV_MULT_DISTRIB_CONST_NEG
          +
          Auto-generated from RARE rule bv-mult-distrib--neg
          +
        • +
        + + + +
          +
        • +

          BV_MULT_DISTRIB_CONST_ADD

          +
          public static final ProofRewriteRule BV_MULT_DISTRIB_CONST_ADD
          +
          Auto-generated from RARE rule bv-mult-distrib--add
          +
        • +
        + + + +
          +
        • +

          BV_MULT_DISTRIB_CONST_SUB

          +
          public static final ProofRewriteRule BV_MULT_DISTRIB_CONST_SUB
          +
          Auto-generated from RARE rule bv-mult-distrib--sub
          +
        • +
        + + + +
          +
        • +

          BV_MULT_DISTRIB_1

          +
          public static final ProofRewriteRule BV_MULT_DISTRIB_1
          +
          Auto-generated from RARE rule bv-mult-distrib-1
          +
        • +
        + + + +
          +
        • +

          BV_MULT_DISTRIB_2

          +
          public static final ProofRewriteRule BV_MULT_DISTRIB_2
          +
          Auto-generated from RARE rule bv-mult-distrib-2
          +
        • +
        + + + +
          +
        • +

          BV_NOT_XOR

          +
          public static final ProofRewriteRule BV_NOT_XOR
          +
          Auto-generated from RARE rule bv-not-xor
          +
        • +
        + + + +
          +
        • +

          BV_AND_SIMPLIFY_1

          +
          public static final ProofRewriteRule BV_AND_SIMPLIFY_1
          +
          Auto-generated from RARE rule bv-and-simplify-1
          +
        • +
        + + + +
          +
        • +

          BV_AND_SIMPLIFY_2

          +
          public static final ProofRewriteRule BV_AND_SIMPLIFY_2
          +
          Auto-generated from RARE rule bv-and-simplify-2
          +
        • +
        + + + +
          +
        • +

          BV_OR_SIMPLIFY_1

          +
          public static final ProofRewriteRule BV_OR_SIMPLIFY_1
          +
          Auto-generated from RARE rule bv-or-simplify-1
          +
        • +
        + + + +
          +
        • +

          BV_OR_SIMPLIFY_2

          +
          public static final ProofRewriteRule BV_OR_SIMPLIFY_2
          +
          Auto-generated from RARE rule bv-or-simplify-2
          +
        • +
        + + + +
          +
        • +

          BV_XOR_SIMPLIFY_1

          +
          public static final ProofRewriteRule BV_XOR_SIMPLIFY_1
          +
          Auto-generated from RARE rule bv-xor-simplify-1
          +
        • +
        + + + +
          +
        • +

          BV_XOR_SIMPLIFY_2

          +
          public static final ProofRewriteRule BV_XOR_SIMPLIFY_2
          +
          Auto-generated from RARE rule bv-xor-simplify-2
          +
        • +
        + + + +
          +
        • +

          BV_XOR_SIMPLIFY_3

          +
          public static final ProofRewriteRule BV_XOR_SIMPLIFY_3
          +
          Auto-generated from RARE rule bv-xor-simplify-3
          +
        • +
        + + + +
          +
        • +

          BV_ULT_ADD_ONE

          +
          public static final ProofRewriteRule BV_ULT_ADD_ONE
          +
          Auto-generated from RARE rule bv-ult-add-one
          +
        • +
        + + + +
          +
        • +

          BV_CONCAT_TO_MULT

          +
          public static final ProofRewriteRule BV_CONCAT_TO_MULT
          +
          Auto-generated from RARE rule bv-concat-to-mult
          +
        • +
        + + + +
          +
        • +

          BV_MULT_SLT_MULT_1

          +
          public static final ProofRewriteRule BV_MULT_SLT_MULT_1
          +
          Auto-generated from RARE rule bv-mult-slt-mult-1
          +
        • +
        + + + +
          +
        • +

          BV_MULT_SLT_MULT_2

          +
          public static final ProofRewriteRule BV_MULT_SLT_MULT_2
          +
          Auto-generated from RARE rule bv-mult-slt-mult-2
          +
        • +
        + + + +
          +
        • +

          BV_COMMUTATIVE_AND

          +
          public static final ProofRewriteRule BV_COMMUTATIVE_AND
          +
          Auto-generated from RARE rule bv-commutative-and
          +
        • +
        + + + +
          +
        • +

          BV_COMMUTATIVE_OR

          +
          public static final ProofRewriteRule BV_COMMUTATIVE_OR
          +
          Auto-generated from RARE rule bv-commutative-or
          +
        • +
        + + + +
          +
        • +

          BV_COMMUTATIVE_XOR

          +
          public static final ProofRewriteRule BV_COMMUTATIVE_XOR
          +
          Auto-generated from RARE rule bv-commutative-xor
          +
        • +
        + + + +
          +
        • +

          BV_COMMUTATIVE_MUL

          +
          public static final ProofRewriteRule BV_COMMUTATIVE_MUL
          +
          Auto-generated from RARE rule bv-commutative-mul
          +
        • +
        + + + +
          +
        • +

          BV_OR_ZERO

          +
          public static final ProofRewriteRule BV_OR_ZERO
          +
          Auto-generated from RARE rule bv-or-zero
          +
        • +
        + + + +
          +
        • +

          BV_MUL_ONE

          +
          public static final ProofRewriteRule BV_MUL_ONE
          +
          Auto-generated from RARE rule bv-mul-one
          +
        • +
        + + + +
          +
        • +

          BV_MUL_ZERO

          +
          public static final ProofRewriteRule BV_MUL_ZERO
          +
          Auto-generated from RARE rule bv-mul-zero
          +
        • +
        + + + +
          +
        • +

          BV_ADD_ZERO

          +
          public static final ProofRewriteRule BV_ADD_ZERO
          +
          Auto-generated from RARE rule bv-add-zero
          +
        • +
        + + + +
          +
        • +

          BV_ADD_TWO

          +
          public static final ProofRewriteRule BV_ADD_TWO
          +
          Auto-generated from RARE rule bv-add-two
          +
        • +
        + + + +
          +
        • +

          BV_ZERO_EXTEND_ELIMINATE_0

          +
          public static final ProofRewriteRule BV_ZERO_EXTEND_ELIMINATE_0
          +
          Auto-generated from RARE rule bv-zero-extend-eliminate-0
          +
        • +
        + + + +
          +
        • +

          BV_SIGN_EXTEND_ELIMINATE_0

          +
          public static final ProofRewriteRule BV_SIGN_EXTEND_ELIMINATE_0
          +
          Auto-generated from RARE rule bv-sign-extend-eliminate-0
          +
        • +
        + + + +
          +
        • +

          BV_NOT_NEQ

          +
          public static final ProofRewriteRule BV_NOT_NEQ
          +
          Auto-generated from RARE rule bv-not-neq
          +
        • +
        + + + +
          +
        • +

          BV_ULT_ONES

          +
          public static final ProofRewriteRule BV_ULT_ONES
          +
          Auto-generated from RARE rule bv-ult-ones
          +
        • +
        + + + +
          +
        • +

          BV_OR_FLATTEN

          +
          public static final ProofRewriteRule BV_OR_FLATTEN
          +
          Auto-generated from RARE rule bv-or-flatten
          +
        • +
        + + + +
          +
        • +

          BV_XOR_FLATTEN

          +
          public static final ProofRewriteRule BV_XOR_FLATTEN
          +
          Auto-generated from RARE rule bv-xor-flatten
          +
        • +
        + + + +
          +
        • +

          BV_AND_FLATTEN

          +
          public static final ProofRewriteRule BV_AND_FLATTEN
          +
          Auto-generated from RARE rule bv-and-flatten
          +
        • +
        + + + +
          +
        • +

          BV_MUL_FLATTEN

          +
          public static final ProofRewriteRule BV_MUL_FLATTEN
          +
          Auto-generated from RARE rule bv-mul-flatten
          +
        • +
        + + + +
          +
        • +

          BV_CONCAT_MERGE_CONST

          +
          public static final ProofRewriteRule BV_CONCAT_MERGE_CONST
          +
          Auto-generated from RARE rule bv-concat-merge-
          +
        • +
        + + + +
          +
        • +

          BV_COMMUTATIVE_ADD

          +
          public static final ProofRewriteRule BV_COMMUTATIVE_ADD
          +
          Auto-generated from RARE rule bv-commutative-add
          +
        • +
        + + + +
          +
        • +

          BV_NEG_SUB

          +
          public static final ProofRewriteRule BV_NEG_SUB
          +
          Auto-generated from RARE rule bv-neg-sub
          +
        • +
        + + + +
          +
        • +

          BV_NEG_IDEMP

          +
          public static final ProofRewriteRule BV_NEG_IDEMP
          +
          Auto-generated from RARE rule bv-neg-idemp
          +
        • +
        + + + +
          +
        • +

          BV_SUB_ELIMINATE

          +
          public static final ProofRewriteRule BV_SUB_ELIMINATE
          +
          Auto-generated from RARE rule bv-sub-eliminate
          +
        • +
        + + + +
          +
        • +

          BV_UGT_ELIMINATE

          +
          public static final ProofRewriteRule BV_UGT_ELIMINATE
          +
          Auto-generated from RARE rule bv-ugt-eliminate
          +
        • +
        + + + +
          +
        • +

          BV_UGE_ELIMINATE

          +
          public static final ProofRewriteRule BV_UGE_ELIMINATE
          +
          Auto-generated from RARE rule bv-uge-eliminate
          +
        • +
        + + + +
          +
        • +

          BV_SGT_ELIMINATE

          +
          public static final ProofRewriteRule BV_SGT_ELIMINATE
          +
          Auto-generated from RARE rule bv-sgt-eliminate
          +
        • +
        + + + +
          +
        • +

          BV_SGE_ELIMINATE

          +
          public static final ProofRewriteRule BV_SGE_ELIMINATE
          +
          Auto-generated from RARE rule bv-sge-eliminate
          +
        • +
        + + + +
          +
        • +

          BV_SLT_ELIMINATE

          +
          public static final ProofRewriteRule BV_SLT_ELIMINATE
          +
          Auto-generated from RARE rule bv-slt-eliminate
          +
        • +
        + + + +
          +
        • +

          BV_SLE_ELIMINATE

          +
          public static final ProofRewriteRule BV_SLE_ELIMINATE
          +
          Auto-generated from RARE rule bv-sle-eliminate
          +
        • +
        + + + +
          +
        • +

          BV_REDOR_ELIMINATE

          +
          public static final ProofRewriteRule BV_REDOR_ELIMINATE
          +
          Auto-generated from RARE rule bv-redor-eliminate
          +
        • +
        + + + +
          +
        • +

          BV_REDAND_ELIMINATE

          +
          public static final ProofRewriteRule BV_REDAND_ELIMINATE
          +
          Auto-generated from RARE rule bv-redand-eliminate
          +
        • +
        + + + +
          +
        • +

          BV_ULE_ELIMINATE

          +
          public static final ProofRewriteRule BV_ULE_ELIMINATE
          +
          Auto-generated from RARE rule bv-ule-eliminate
          +
        • +
        + + + +
          +
        • +

          BV_COMP_ELIMINATE

          +
          public static final ProofRewriteRule BV_COMP_ELIMINATE
          +
          Auto-generated from RARE rule bv-comp-eliminate
          +
        • +
        + + + +
          +
        • +

          BV_ROTATE_LEFT_ELIMINATE_1

          +
          public static final ProofRewriteRule BV_ROTATE_LEFT_ELIMINATE_1
          +
          Auto-generated from RARE rule bv-rotate-left-eliminate-1
          +
        • +
        + + + +
          +
        • +

          BV_ROTATE_LEFT_ELIMINATE_2

          +
          public static final ProofRewriteRule BV_ROTATE_LEFT_ELIMINATE_2
          +
          Auto-generated from RARE rule bv-rotate-left-eliminate-2
          +
        • +
        + + + +
          +
        • +

          BV_ROTATE_RIGHT_ELIMINATE_1

          +
          public static final ProofRewriteRule BV_ROTATE_RIGHT_ELIMINATE_1
          +
          Auto-generated from RARE rule bv-rotate-right-eliminate-1
          +
        • +
        + + + +
          +
        • +

          BV_ROTATE_RIGHT_ELIMINATE_2

          +
          public static final ProofRewriteRule BV_ROTATE_RIGHT_ELIMINATE_2
          +
          Auto-generated from RARE rule bv-rotate-right-eliminate-2
          +
        • +
        + + + +
          +
        • +

          BV_NAND_ELIMINATE

          +
          public static final ProofRewriteRule BV_NAND_ELIMINATE
          +
          Auto-generated from RARE rule bv-nand-eliminate
          +
        • +
        + + + +
          +
        • +

          BV_NOR_ELIMINATE

          +
          public static final ProofRewriteRule BV_NOR_ELIMINATE
          +
          Auto-generated from RARE rule bv-nor-eliminate
          +
        • +
        + + + +
          +
        • +

          BV_XNOR_ELIMINATE

          +
          public static final ProofRewriteRule BV_XNOR_ELIMINATE
          +
          Auto-generated from RARE rule bv-xnor-eliminate
          +
        • +
        + + + +
          +
        • +

          BV_SDIV_ELIMINATE

          +
          public static final ProofRewriteRule BV_SDIV_ELIMINATE
          +
          Auto-generated from RARE rule bv-sdiv-eliminate
          +
        • +
        + + + +
          +
        • +

          BV_SDIV_ELIMINATE_FEWER_BITWISE_OPS

          +
          public static final ProofRewriteRule BV_SDIV_ELIMINATE_FEWER_BITWISE_OPS
          +
          Auto-generated from RARE rule bv-sdiv-eliminate-fewer-bitwise-ops
          +
        • +
        + + + +
          +
        • +

          BV_ZERO_EXTEND_ELIMINATE

          +
          public static final ProofRewriteRule BV_ZERO_EXTEND_ELIMINATE
          +
          Auto-generated from RARE rule bv-zero-extend-eliminate
          +
        • +
        + + + +
          +
        • +

          BV_SIGN_EXTEND_ELIMINATE

          +
          public static final ProofRewriteRule BV_SIGN_EXTEND_ELIMINATE
          +
          Auto-generated from RARE rule bv-sign-extend-eliminate
          +
        • +
        + + + +
          +
        • +

          BV_UADDO_ELIMINATE

          +
          public static final ProofRewriteRule BV_UADDO_ELIMINATE
          +
          Auto-generated from RARE rule bv-uaddo-eliminate
          +
        • +
        + + + +
          +
        • +

          BV_SADDO_ELIMINATE

          +
          public static final ProofRewriteRule BV_SADDO_ELIMINATE
          +
          Auto-generated from RARE rule bv-saddo-eliminate
          +
        • +
        + + + +
          +
        • +

          BV_SDIVO_ELIMINATE

          +
          public static final ProofRewriteRule BV_SDIVO_ELIMINATE
          +
          Auto-generated from RARE rule bv-sdivo-eliminate
          +
        • +
        + + + +
          +
        • +

          BV_SMOD_ELIMINATE

          +
          public static final ProofRewriteRule BV_SMOD_ELIMINATE
          +
          Auto-generated from RARE rule bv-smod-eliminate
          +
        • +
        + + + +
          +
        • +

          BV_SMOD_ELIMINATE_FEWER_BITWISE_OPS

          +
          public static final ProofRewriteRule BV_SMOD_ELIMINATE_FEWER_BITWISE_OPS
          +
          Auto-generated from RARE rule bv-smod-eliminate-fewer-bitwise-ops
          +
        • +
        + + + +
          +
        • +

          BV_SREM_ELIMINATE

          +
          public static final ProofRewriteRule BV_SREM_ELIMINATE
          +
          Auto-generated from RARE rule bv-srem-eliminate
          +
        • +
        + + + +
          +
        • +

          BV_SREM_ELIMINATE_FEWER_BITWISE_OPS

          +
          public static final ProofRewriteRule BV_SREM_ELIMINATE_FEWER_BITWISE_OPS
          +
          Auto-generated from RARE rule bv-srem-eliminate-fewer-bitwise-ops
          +
        • +
        + + + +
          +
        • +

          BV_USUBO_ELIMINATE

          +
          public static final ProofRewriteRule BV_USUBO_ELIMINATE
          +
          Auto-generated from RARE rule bv-usubo-eliminate
          +
        • +
        + + + +
          +
        • +

          BV_SSUBO_ELIMINATE

          +
          public static final ProofRewriteRule BV_SSUBO_ELIMINATE
          +
          Auto-generated from RARE rule bv-ssubo-eliminate
          +
        • +
        + + + +
          +
        • +

          BV_ITE_EQUAL_CHILDREN

          +
          public static final ProofRewriteRule BV_ITE_EQUAL_CHILDREN
          +
          Auto-generated from RARE rule bv-ite-equal-children
          +
        • +
        + + + +
          +
        • +

          BV_ITE_CONST_CHILDREN_1

          +
          public static final ProofRewriteRule BV_ITE_CONST_CHILDREN_1
          +
          Auto-generated from RARE rule bv-ite--children-1
          +
        • +
        + + + +
          +
        • +

          BV_ITE_CONST_CHILDREN_2

          +
          public static final ProofRewriteRule BV_ITE_CONST_CHILDREN_2
          +
          Auto-generated from RARE rule bv-ite--children-2
          +
        • +
        + + + +
          +
        • +

          BV_ITE_EQUAL_COND_1

          +
          public static final ProofRewriteRule BV_ITE_EQUAL_COND_1
          +
          Auto-generated from RARE rule bv-ite-equal-cond-1
          +
        • +
        + + + +
          +
        • +

          BV_ITE_EQUAL_COND_2

          +
          public static final ProofRewriteRule BV_ITE_EQUAL_COND_2
          +
          Auto-generated from RARE rule bv-ite-equal-cond-2
          +
        • +
        + + + +
          +
        • +

          BV_ITE_EQUAL_COND_3

          +
          public static final ProofRewriteRule BV_ITE_EQUAL_COND_3
          +
          Auto-generated from RARE rule bv-ite-equal-cond-3
          +
        • +
        + + + +
          +
        • +

          BV_ITE_MERGE_THEN_IF

          +
          public static final ProofRewriteRule BV_ITE_MERGE_THEN_IF
          +
          Auto-generated from RARE rule bv-ite-merge-then-if
          +
        • +
        + + + +
          +
        • +

          BV_ITE_MERGE_ELSE_IF

          +
          public static final ProofRewriteRule BV_ITE_MERGE_ELSE_IF
          +
          Auto-generated from RARE rule bv-ite-merge-else-if
          +
        • +
        + + + +
          +
        • +

          BV_ITE_MERGE_THEN_ELSE

          +
          public static final ProofRewriteRule BV_ITE_MERGE_THEN_ELSE
          +
          Auto-generated from RARE rule bv-ite-merge-then-else
          +
        • +
        + + + +
          +
        • +

          BV_ITE_MERGE_ELSE_ELSE

          +
          public static final ProofRewriteRule BV_ITE_MERGE_ELSE_ELSE
          +
          Auto-generated from RARE rule bv-ite-merge-else-else
          +
        • +
        + + + +
          +
        • +

          BV_SHL_BY_CONST_0

          +
          public static final ProofRewriteRule BV_SHL_BY_CONST_0
          +
          Auto-generated from RARE rule bv-shl-by--0
          +
        • +
        + + + +
          +
        • +

          BV_SHL_BY_CONST_1

          +
          public static final ProofRewriteRule BV_SHL_BY_CONST_1
          +
          Auto-generated from RARE rule bv-shl-by--1
          +
        • +
        + + + +
          +
        • +

          BV_SHL_BY_CONST_2

          +
          public static final ProofRewriteRule BV_SHL_BY_CONST_2
          +
          Auto-generated from RARE rule bv-shl-by--2
          +
        • +
        + + + +
          +
        • +

          BV_LSHR_BY_CONST_0

          +
          public static final ProofRewriteRule BV_LSHR_BY_CONST_0
          +
          Auto-generated from RARE rule bv-lshr-by--0
          +
        • +
        + + + +
          +
        • +

          BV_LSHR_BY_CONST_1

          +
          public static final ProofRewriteRule BV_LSHR_BY_CONST_1
          +
          Auto-generated from RARE rule bv-lshr-by--1
          +
        • +
        + + + +
          +
        • +

          BV_LSHR_BY_CONST_2

          +
          public static final ProofRewriteRule BV_LSHR_BY_CONST_2
          +
          Auto-generated from RARE rule bv-lshr-by--2
          +
        • +
        + + + +
          +
        • +

          BV_ASHR_BY_CONST_0

          +
          public static final ProofRewriteRule BV_ASHR_BY_CONST_0
          +
          Auto-generated from RARE rule bv-ashr-by--0
          +
        • +
        + + + +
          +
        • +

          BV_ASHR_BY_CONST_1

          +
          public static final ProofRewriteRule BV_ASHR_BY_CONST_1
          +
          Auto-generated from RARE rule bv-ashr-by--1
          +
        • +
        + + + +
          +
        • +

          BV_ASHR_BY_CONST_2

          +
          public static final ProofRewriteRule BV_ASHR_BY_CONST_2
          +
          Auto-generated from RARE rule bv-ashr-by--2
          +
        • +
        + + + +
          +
        • +

          BV_AND_CONCAT_PULLUP

          +
          public static final ProofRewriteRule BV_AND_CONCAT_PULLUP
          +
          Auto-generated from RARE rule bv-and-concat-pullup
          +
        • +
        + + + +
          +
        • +

          BV_OR_CONCAT_PULLUP

          +
          public static final ProofRewriteRule BV_OR_CONCAT_PULLUP
          +
          Auto-generated from RARE rule bv-or-concat-pullup
          +
        • +
        + + + +
          +
        • +

          BV_XOR_CONCAT_PULLUP

          +
          public static final ProofRewriteRule BV_XOR_CONCAT_PULLUP
          +
          Auto-generated from RARE rule bv-xor-concat-pullup
          +
        • +
        + + + +
          +
        • +

          BV_BITWISE_IDEMP_1

          +
          public static final ProofRewriteRule BV_BITWISE_IDEMP_1
          +
          Auto-generated from RARE rule bv-bitwise-idemp-1
          +
        • +
        + + + +
          +
        • +

          BV_BITWISE_IDEMP_2

          +
          public static final ProofRewriteRule BV_BITWISE_IDEMP_2
          +
          Auto-generated from RARE rule bv-bitwise-idemp-2
          +
        • +
        + + + +
          +
        • +

          BV_AND_ZERO

          +
          public static final ProofRewriteRule BV_AND_ZERO
          +
          Auto-generated from RARE rule bv-and-zero
          +
        • +
        + + + +
          +
        • +

          BV_AND_ONE

          +
          public static final ProofRewriteRule BV_AND_ONE
          +
          Auto-generated from RARE rule bv-and-one
          +
        • +
        + + + +
          +
        • +

          BV_OR_ONE

          +
          public static final ProofRewriteRule BV_OR_ONE
          +
          Auto-generated from RARE rule bv-or-one
          +
        • +
        + + + +
          +
        • +

          BV_XOR_DUPLICATE

          +
          public static final ProofRewriteRule BV_XOR_DUPLICATE
          +
          Auto-generated from RARE rule bv-xor-duplicate
          +
        • +
        + + + +
          +
        • +

          BV_XOR_ONES

          +
          public static final ProofRewriteRule BV_XOR_ONES
          +
          Auto-generated from RARE rule bv-xor-ones
          +
        • +
        + + + +
          +
        • +

          BV_XOR_ZERO

          +
          public static final ProofRewriteRule BV_XOR_ZERO
          +
          Auto-generated from RARE rule bv-xor-zero
          +
        • +
        + + + +
          +
        • +

          BV_BITWISE_NOT_AND

          +
          public static final ProofRewriteRule BV_BITWISE_NOT_AND
          +
          Auto-generated from RARE rule bv-bitwise-not-and
          +
        • +
        + + + +
          +
        • +

          BV_BITWISE_NOT_OR

          +
          public static final ProofRewriteRule BV_BITWISE_NOT_OR
          +
          Auto-generated from RARE rule bv-bitwise-not-or
          +
        • +
        + + + +
          +
        • +

          BV_XOR_NOT

          +
          public static final ProofRewriteRule BV_XOR_NOT
          +
          Auto-generated from RARE rule bv-xor-not
          +
        • +
        + + + +
          +
        • +

          BV_NOT_IDEMP

          +
          public static final ProofRewriteRule BV_NOT_IDEMP
          +
          Auto-generated from RARE rule bv-not-idemp
          +
        • +
        + + + +
          +
        • +

          BV_ULT_ZERO_1

          +
          public static final ProofRewriteRule BV_ULT_ZERO_1
          +
          Auto-generated from RARE rule bv-ult-zero-1
          +
        • +
        + + + +
          +
        • +

          BV_ULT_ZERO_2

          +
          public static final ProofRewriteRule BV_ULT_ZERO_2
          +
          Auto-generated from RARE rule bv-ult-zero-2
          +
        • +
        + + + +
          +
        • +

          BV_ULT_SELF

          +
          public static final ProofRewriteRule BV_ULT_SELF
          +
          Auto-generated from RARE rule bv-ult-self
          +
        • +
        + + + +
          +
        • +

          BV_LT_SELF

          +
          public static final ProofRewriteRule BV_LT_SELF
          +
          Auto-generated from RARE rule bv-lt-self
          +
        • +
        + + + +
          +
        • +

          BV_ULE_SELF

          +
          public static final ProofRewriteRule BV_ULE_SELF
          +
          Auto-generated from RARE rule bv-ule-self
          +
        • +
        + + + +
          +
        • +

          BV_ULE_ZERO

          +
          public static final ProofRewriteRule BV_ULE_ZERO
          +
          Auto-generated from RARE rule bv-ule-zero
          +
        • +
        + + + +
          +
        • +

          BV_ZERO_ULE

          +
          public static final ProofRewriteRule BV_ZERO_ULE
          +
          Auto-generated from RARE rule bv-zero-ule
          +
        • +
        + + + +
          +
        • +

          BV_SLE_SELF

          +
          public static final ProofRewriteRule BV_SLE_SELF
          +
          Auto-generated from RARE rule bv-sle-self
          +
        • +
        + + + +
          +
        • +

          BV_ULE_MAX

          +
          public static final ProofRewriteRule BV_ULE_MAX
          +
          Auto-generated from RARE rule bv-ule-max
          +
        • +
        + + + +
          +
        • +

          BV_NOT_ULT

          +
          public static final ProofRewriteRule BV_NOT_ULT
          +
          Auto-generated from RARE rule bv-not-ult
          +
        • +
        + + + +
          +
        • +

          BV_NOT_ULE

          +
          public static final ProofRewriteRule BV_NOT_ULE
          +
          Auto-generated from RARE rule bv-not-ule
          +
        • +
        + + + +
          +
        • +

          BV_NOT_SLE

          +
          public static final ProofRewriteRule BV_NOT_SLE
          +
          Auto-generated from RARE rule bv-not-sle
          +
        • +
        + + + +
          +
        • +

          BV_MULT_POW2_1

          +
          public static final ProofRewriteRule BV_MULT_POW2_1
          +
          Auto-generated from RARE rule bv-mult-pow2-1
          +
        • +
        + + + +
          +
        • +

          BV_MULT_POW2_2

          +
          public static final ProofRewriteRule BV_MULT_POW2_2
          +
          Auto-generated from RARE rule bv-mult-pow2-2
          +
        • +
        + + + +
          +
        • +

          BV_MULT_POW2_2B

          +
          public static final ProofRewriteRule BV_MULT_POW2_2B
          +
          Auto-generated from RARE rule bv-mult-pow2-2b
          +
        • +
        + + + +
          +
        • +

          BV_EXTRACT_MULT_LEADING_BIT

          +
          public static final ProofRewriteRule BV_EXTRACT_MULT_LEADING_BIT
          +
          Auto-generated from RARE rule bv-extract-mult-leading-bit
          +
        • +
        + + + +
          +
        • +

          BV_UDIV_POW2_NOT_ONE

          +
          public static final ProofRewriteRule BV_UDIV_POW2_NOT_ONE
          +
          Auto-generated from RARE rule bv-udiv-pow2-not-one
          +
        • +
        + + + +
          +
        • +

          BV_UDIV_ZERO

          +
          public static final ProofRewriteRule BV_UDIV_ZERO
          +
          Auto-generated from RARE rule bv-udiv-zero
          +
        • +
        + + + +
          +
        • +

          BV_UDIV_ONE

          +
          public static final ProofRewriteRule BV_UDIV_ONE
          +
          Auto-generated from RARE rule bv-udiv-one
          +
        • +
        + + + +
          +
        • +

          BV_UREM_POW2_NOT_ONE

          +
          public static final ProofRewriteRule BV_UREM_POW2_NOT_ONE
          +
          Auto-generated from RARE rule bv-urem-pow2-not-one
          +
        • +
        + + + +
          +
        • +

          BV_UREM_ONE

          +
          public static final ProofRewriteRule BV_UREM_ONE
          +
          Auto-generated from RARE rule bv-urem-one
          +
        • +
        + + + +
          +
        • +

          BV_UREM_SELF

          +
          public static final ProofRewriteRule BV_UREM_SELF
          +
          Auto-generated from RARE rule bv-urem-self
          +
        • +
        + + + +
          +
        • +

          BV_SHL_ZERO

          +
          public static final ProofRewriteRule BV_SHL_ZERO
          +
          Auto-generated from RARE rule bv-shl-zero
          +
        • +
        + + + +
          +
        • +

          BV_LSHR_ZERO

          +
          public static final ProofRewriteRule BV_LSHR_ZERO
          +
          Auto-generated from RARE rule bv-lshr-zero
          +
        • +
        + + + +
          +
        • +

          BV_ASHR_ZERO

          +
          public static final ProofRewriteRule BV_ASHR_ZERO
          +
          Auto-generated from RARE rule bv-ashr-zero
          +
        • +
        + + + +
          +
        • +

          BV_UGT_UREM

          +
          public static final ProofRewriteRule BV_UGT_UREM
          +
          Auto-generated from RARE rule bv-ugt-urem
          +
        • +
        + + + +
          +
        • +

          BV_ULT_ONE

          +
          public static final ProofRewriteRule BV_ULT_ONE
          +
          Auto-generated from RARE rule bv-ult-one
          +
        • +
        + + + +
          +
        • +

          BV_SLT_ZERO

          +
          public static final ProofRewriteRule BV_SLT_ZERO
          +
          Auto-generated from RARE rule bv-slt-zero
          +
        • +
        + + + +
          +
        • +

          BV_MERGE_SIGN_EXTEND_1

          +
          public static final ProofRewriteRule BV_MERGE_SIGN_EXTEND_1
          +
          Auto-generated from RARE rule bv-merge-sign-extend-1
          +
        • +
        + + + +
          +
        • +

          BV_MERGE_SIGN_EXTEND_2

          +
          public static final ProofRewriteRule BV_MERGE_SIGN_EXTEND_2
          +
          Auto-generated from RARE rule bv-merge-sign-extend-2
          +
        • +
        + + + +
          +
        • +

          BV_MERGE_SIGN_EXTEND_3

          +
          public static final ProofRewriteRule BV_MERGE_SIGN_EXTEND_3
          +
          Auto-generated from RARE rule bv-merge-sign-extend-3
          +
        • +
        + + + +
          +
        • +

          BV_SIGN_EXTEND_EQ_CONST_1

          +
          public static final ProofRewriteRule BV_SIGN_EXTEND_EQ_CONST_1
          +
          Auto-generated from RARE rule bv-sign-extend-eq--1
          +
        • +
        + + + +
          +
        • +

          BV_SIGN_EXTEND_EQ_CONST_2

          +
          public static final ProofRewriteRule BV_SIGN_EXTEND_EQ_CONST_2
          +
          Auto-generated from RARE rule bv-sign-extend-eq--2
          +
        • +
        + + + +
          +
        • +

          BV_ZERO_EXTEND_EQ_CONST_1

          +
          public static final ProofRewriteRule BV_ZERO_EXTEND_EQ_CONST_1
          +
          Auto-generated from RARE rule bv-zero-extend-eq--1
          +
        • +
        + + + +
          +
        • +

          BV_ZERO_EXTEND_EQ_CONST_2

          +
          public static final ProofRewriteRule BV_ZERO_EXTEND_EQ_CONST_2
          +
          Auto-generated from RARE rule bv-zero-extend-eq--2
          +
        • +
        + + + +
          +
        • +

          BV_SIGN_EXTEND_ULT_CONST_1

          +
          public static final ProofRewriteRule BV_SIGN_EXTEND_ULT_CONST_1
          +
          Auto-generated from RARE rule bv-sign-extend-ult--1
          +
        • +
        + + + +
          +
        • +

          BV_SIGN_EXTEND_ULT_CONST_2

          +
          public static final ProofRewriteRule BV_SIGN_EXTEND_ULT_CONST_2
          +
          Auto-generated from RARE rule bv-sign-extend-ult--2
          +
        • +
        + + + +
          +
        • +

          BV_SIGN_EXTEND_ULT_CONST_3

          +
          public static final ProofRewriteRule BV_SIGN_EXTEND_ULT_CONST_3
          +
          Auto-generated from RARE rule bv-sign-extend-ult--3
          +
        • +
        + + + +
          +
        • +

          BV_SIGN_EXTEND_ULT_CONST_4

          +
          public static final ProofRewriteRule BV_SIGN_EXTEND_ULT_CONST_4
          +
          Auto-generated from RARE rule bv-sign-extend-ult--4
          +
        • +
        + + + +
          +
        • +

          SETS_EQ_SINGLETON_EMP

          +
          public static final ProofRewriteRule SETS_EQ_SINGLETON_EMP
          +
          Auto-generated from RARE rule sets-eq-singleton-emp
          +
        • +
        + + + +
          +
        • +

          SETS_MEMBER_SINGLETON

          +
          public static final ProofRewriteRule SETS_MEMBER_SINGLETON
          +
          Auto-generated from RARE rule sets-member-singleton
          +
        • +
        + + + +
          +
        • +

          SETS_MEMBER_EMP

          +
          public static final ProofRewriteRule SETS_MEMBER_EMP
          +
          Auto-generated from RARE rule sets-member-emp
          +
        • +
        + + + +
          +
        • +

          SETS_SUBSET_ELIM

          +
          public static final ProofRewriteRule SETS_SUBSET_ELIM
          +
          Auto-generated from RARE rule sets-subset-elim
          +
        • +
        + + + +
          +
        • +

          SETS_UNION_COMM

          +
          public static final ProofRewriteRule SETS_UNION_COMM
          +
          Auto-generated from RARE rule sets-union-comm
          +
        • +
        + + + +
          +
        • +

          SETS_INTER_COMM

          +
          public static final ProofRewriteRule SETS_INTER_COMM
          +
          Auto-generated from RARE rule sets-inter-comm
          +
        • +
        + + + +
          +
        • +

          SETS_INTER_EMP1

          +
          public static final ProofRewriteRule SETS_INTER_EMP1
          +
          Auto-generated from RARE rule sets-inter-emp1
          +
        • +
        + + + +
          +
        • +

          SETS_INTER_EMP2

          +
          public static final ProofRewriteRule SETS_INTER_EMP2
          +
          Auto-generated from RARE rule sets-inter-emp2
          +
        • +
        + + + +
          +
        • +

          SETS_MINUS_EMP1

          +
          public static final ProofRewriteRule SETS_MINUS_EMP1
          +
          Auto-generated from RARE rule sets-minus-emp1
          +
        • +
        + + + +
          +
        • +

          SETS_MINUS_EMP2

          +
          public static final ProofRewriteRule SETS_MINUS_EMP2
          +
          Auto-generated from RARE rule sets-minus-emp2
          +
        • +
        + + + +
          +
        • +

          SETS_UNION_EMP1

          +
          public static final ProofRewriteRule SETS_UNION_EMP1
          +
          Auto-generated from RARE rule sets-union-emp1
          +
        • +
        + + + +
          +
        • +

          SETS_UNION_EMP2

          +
          public static final ProofRewriteRule SETS_UNION_EMP2
          +
          Auto-generated from RARE rule sets-union-emp2
          +
        • +
        + + + +
          +
        • +

          SETS_INTER_MEMBER

          +
          public static final ProofRewriteRule SETS_INTER_MEMBER
          +
          Auto-generated from RARE rule sets-inter-member
          +
        • +
        + + + +
          +
        • +

          SETS_MINUS_MEMBER

          +
          public static final ProofRewriteRule SETS_MINUS_MEMBER
          +
          Auto-generated from RARE rule sets-minus-member
          +
        • +
        + + + +
          +
        • +

          SETS_UNION_MEMBER

          +
          public static final ProofRewriteRule SETS_UNION_MEMBER
          +
          Auto-generated from RARE rule sets-union-member
          +
        • +
        + + + +
          +
        • +

          SETS_CHOOSE_SINGLETON

          +
          public static final ProofRewriteRule SETS_CHOOSE_SINGLETON
          +
          Auto-generated from RARE rule sets-choose-singleton
          +
        • +
        + + + +
          +
        • +

          SETS_CARD_SINGLETON

          +
          public static final ProofRewriteRule SETS_CARD_SINGLETON
          +
          Auto-generated from RARE rule sets-card-singleton
          +
        • +
        + + + +
          +
        • +

          SETS_CARD_UNION

          +
          public static final ProofRewriteRule SETS_CARD_UNION
          +
          Auto-generated from RARE rule sets-card-union
          +
        • +
        + + + +
          +
        • +

          SETS_CARD_MINUS

          +
          public static final ProofRewriteRule SETS_CARD_MINUS
          +
          Auto-generated from RARE rule sets-card-minus
          +
        • +
        + + + +
          +
        • +

          SETS_CARD_EMP

          +
          public static final ProofRewriteRule SETS_CARD_EMP
          +
          Auto-generated from RARE rule sets-card-emp
          +
        • +
        + + + +
          +
        • +

          SETS_MINUS_SELF

          +
          public static final ProofRewriteRule SETS_MINUS_SELF
          +
          Auto-generated from RARE rule sets-minus-self
          +
        • +
        + + + +
          +
        • +

          SETS_IS_EMPTY_ELIM

          +
          public static final ProofRewriteRule SETS_IS_EMPTY_ELIM
          +
          Auto-generated from RARE rule sets-is-empty-elim
          +
        • +
        + + + +
          +
        • +

          STR_EQ_CTN_FALSE

          +
          public static final ProofRewriteRule STR_EQ_CTN_FALSE
          +
          Auto-generated from RARE rule str-eq-ctn-false
          +
        • +
        + + + +
          +
        • +

          STR_EQ_CTN_FULL_FALSE1

          +
          public static final ProofRewriteRule STR_EQ_CTN_FULL_FALSE1
          +
          Auto-generated from RARE rule str-eq-ctn-full-false1
          +
        • +
        + + + +
          +
        • +

          STR_EQ_CTN_FULL_FALSE2

          +
          public static final ProofRewriteRule STR_EQ_CTN_FULL_FALSE2
          +
          Auto-generated from RARE rule str-eq-ctn-full-false2
          +
        • +
        + + + +
          +
        • +

          STR_CONCAT_FLATTEN

          +
          public static final ProofRewriteRule STR_CONCAT_FLATTEN
          +
          Auto-generated from RARE rule str-concat-flatten
          +
        • +
        + + + +
          +
        • +

          STR_CONCAT_FLATTEN_EQ

          +
          public static final ProofRewriteRule STR_CONCAT_FLATTEN_EQ
          +
          Auto-generated from RARE rule str-concat-flatten-eq
          +
        • +
        + + + +
          +
        • +

          STR_CONCAT_FLATTEN_EQ_REV

          +
          public static final ProofRewriteRule STR_CONCAT_FLATTEN_EQ_REV
          +
          Auto-generated from RARE rule str-concat-flatten-eq-rev
          +
        • +
        + + + +
          +
        • +

          STR_SUBSTR_EMPTY_STR

          +
          public static final ProofRewriteRule STR_SUBSTR_EMPTY_STR
          +
          Auto-generated from RARE rule str-substr-empty-str
          +
        • +
        + + + +
          +
        • +

          STR_SUBSTR_EMPTY_RANGE

          +
          public static final ProofRewriteRule STR_SUBSTR_EMPTY_RANGE
          +
          Auto-generated from RARE rule str-substr-empty-range
          +
        • +
        + + + +
          +
        • +

          STR_SUBSTR_EMPTY_START

          +
          public static final ProofRewriteRule STR_SUBSTR_EMPTY_START
          +
          Auto-generated from RARE rule str-substr-empty-start
          +
        • +
        + + + +
          +
        • +

          STR_SUBSTR_EMPTY_START_NEG

          +
          public static final ProofRewriteRule STR_SUBSTR_EMPTY_START_NEG
          +
          Auto-generated from RARE rule str-substr-empty-start-neg
          +
        • +
        + + + +
          +
        • +

          STR_SUBSTR_EQ_EMPTY

          +
          public static final ProofRewriteRule STR_SUBSTR_EQ_EMPTY
          +
          Auto-generated from RARE rule str-substr-eq-empty
          +
        • +
        + + + +
          +
        • +

          STR_LEN_REPLACE_INV

          +
          public static final ProofRewriteRule STR_LEN_REPLACE_INV
          +
          Auto-generated from RARE rule str-len-replace-inv
          +
        • +
        + + + +
          +
        • +

          STR_LEN_UPDATE_INV

          +
          public static final ProofRewriteRule STR_LEN_UPDATE_INV
          +
          Auto-generated from RARE rule str-len-update-inv
          +
        • +
        + + + +
          +
        • +

          STR_LEN_SUBSTR_IN_RANGE

          +
          public static final ProofRewriteRule STR_LEN_SUBSTR_IN_RANGE
          +
          Auto-generated from RARE rule str-len-substr-in-range
          +
        • +
        + + + +
          +
        • +

          STR_LEN_SUBSTR_UB1

          +
          public static final ProofRewriteRule STR_LEN_SUBSTR_UB1
          +
          Auto-generated from RARE rule str-len-substr-ub1
          +
        • +
        + + + +
          +
        • +

          STR_LEN_SUBSTR_UB2

          +
          public static final ProofRewriteRule STR_LEN_SUBSTR_UB2
          +
          Auto-generated from RARE rule str-len-substr-ub2
          +
        • +
        + + + +
          +
        • +

          STR_CONCAT_CLASH

          +
          public static final ProofRewriteRule STR_CONCAT_CLASH
          +
          Auto-generated from RARE rule str-concat-clash
          +
        • +
        + + + +
          +
        • +

          STR_CONCAT_CLASH_REV

          +
          public static final ProofRewriteRule STR_CONCAT_CLASH_REV
          +
          Auto-generated from RARE rule str-concat-clash-rev
          +
        • +
        + + + +
          +
        • +

          STR_CONCAT_CLASH2

          +
          public static final ProofRewriteRule STR_CONCAT_CLASH2
          +
          Auto-generated from RARE rule str-concat-clash2
          +
        • +
        + + + +
          +
        • +

          STR_CONCAT_CLASH2_REV

          +
          public static final ProofRewriteRule STR_CONCAT_CLASH2_REV
          +
          Auto-generated from RARE rule str-concat-clash2-rev
          +
        • +
        + + + +
          +
        • +

          STR_CONCAT_UNIFY

          +
          public static final ProofRewriteRule STR_CONCAT_UNIFY
          +
          Auto-generated from RARE rule str-concat-unify
          +
        • +
        + + + +
          +
        • +

          STR_CONCAT_UNIFY_REV

          +
          public static final ProofRewriteRule STR_CONCAT_UNIFY_REV
          +
          Auto-generated from RARE rule str-concat-unify-rev
          +
        • +
        + + + +
          +
        • +

          STR_CONCAT_UNIFY_BASE

          +
          public static final ProofRewriteRule STR_CONCAT_UNIFY_BASE
          +
          Auto-generated from RARE rule str-concat-unify-base
          +
        • +
        + + + +
          +
        • +

          STR_CONCAT_UNIFY_BASE_REV

          +
          public static final ProofRewriteRule STR_CONCAT_UNIFY_BASE_REV
          +
          Auto-generated from RARE rule str-concat-unify-base-rev
          +
        • +
        + + + +
          +
        • +

          STR_CONCAT_CLASH_CHAR

          +
          public static final ProofRewriteRule STR_CONCAT_CLASH_CHAR
          +
          Auto-generated from RARE rule str-concat-clash-char
          +
        • +
        + + + +
          +
        • +

          STR_CONCAT_CLASH_CHAR_REV

          +
          public static final ProofRewriteRule STR_CONCAT_CLASH_CHAR_REV
          +
          Auto-generated from RARE rule str-concat-clash-char-rev
          +
        • +
        + + + +
          +
        • +

          STR_PREFIXOF_ELIM

          +
          public static final ProofRewriteRule STR_PREFIXOF_ELIM
          +
          Auto-generated from RARE rule str-prefixof-elim
          +
        • +
        + + + +
          +
        • +

          STR_SUFFIXOF_ELIM

          +
          public static final ProofRewriteRule STR_SUFFIXOF_ELIM
          +
          Auto-generated from RARE rule str-suffixof-elim
          +
        • +
        + + + +
          +
        • +

          STR_PREFIXOF_ONE

          +
          public static final ProofRewriteRule STR_PREFIXOF_ONE
          +
          Auto-generated from RARE rule str-prefixof-one
          +
        • +
        + + + +
          +
        • +

          STR_SUFFIXOF_ONE

          +
          public static final ProofRewriteRule STR_SUFFIXOF_ONE
          +
          Auto-generated from RARE rule str-suffixof-one
          +
        • +
        + + + +
          +
        • +

          STR_SUBSTR_COMBINE1

          +
          public static final ProofRewriteRule STR_SUBSTR_COMBINE1
          +
          Auto-generated from RARE rule str-substr-combine1
          +
        • +
        + + + +
          +
        • +

          STR_SUBSTR_COMBINE2

          +
          public static final ProofRewriteRule STR_SUBSTR_COMBINE2
          +
          Auto-generated from RARE rule str-substr-combine2
          +
        • +
        + + + +
          +
        • +

          STR_SUBSTR_COMBINE3

          +
          public static final ProofRewriteRule STR_SUBSTR_COMBINE3
          +
          Auto-generated from RARE rule str-substr-combine3
          +
        • +
        + + + +
          +
        • +

          STR_SUBSTR_COMBINE4

          +
          public static final ProofRewriteRule STR_SUBSTR_COMBINE4
          +
          Auto-generated from RARE rule str-substr-combine4
          +
        • +
        + + + +
          +
        • +

          STR_SUBSTR_CONCAT1

          +
          public static final ProofRewriteRule STR_SUBSTR_CONCAT1
          +
          Auto-generated from RARE rule str-substr-concat1
          +
        • +
        + + + +
          +
        • +

          STR_SUBSTR_CONCAT2

          +
          public static final ProofRewriteRule STR_SUBSTR_CONCAT2
          +
          Auto-generated from RARE rule str-substr-concat2
          +
        • +
        + + + +
          +
        • +

          STR_SUBSTR_FULL

          +
          public static final ProofRewriteRule STR_SUBSTR_FULL
          +
          Auto-generated from RARE rule str-substr-full
          +
        • +
        + + + +
          +
        • +

          STR_SUBSTR_FULL_EQ

          +
          public static final ProofRewriteRule STR_SUBSTR_FULL_EQ
          +
          Auto-generated from RARE rule str-substr-full-eq
          +
        • +
        + + + +
          +
        • +

          STR_CONTAINS_REFL

          +
          public static final ProofRewriteRule STR_CONTAINS_REFL
          +
          Auto-generated from RARE rule str-contains-refl
          +
        • +
        + + + +
          +
        • +

          STR_CONTAINS_CONCAT_FIND

          +
          public static final ProofRewriteRule STR_CONTAINS_CONCAT_FIND
          +
          Auto-generated from RARE rule str-contains-concat-find
          +
        • +
        + + + +
          +
        • +

          STR_CONTAINS_SPLIT_CHAR

          +
          public static final ProofRewriteRule STR_CONTAINS_SPLIT_CHAR
          +
          Auto-generated from RARE rule str-contains-split-char
          +
        • +
        + + + +
          +
        • +

          STR_CONTAINS_LT_LEN

          +
          public static final ProofRewriteRule STR_CONTAINS_LT_LEN
          +
          Auto-generated from RARE rule str-contains-lt-len
          +
        • +
        + + + +
          +
        • +

          STR_CONTAINS_LEQ_LEN_EQ

          +
          public static final ProofRewriteRule STR_CONTAINS_LEQ_LEN_EQ
          +
          Auto-generated from RARE rule str-contains-leq-len-eq
          +
        • +
        + + + +
          +
        • +

          STR_CONTAINS_EMP

          +
          public static final ProofRewriteRule STR_CONTAINS_EMP
          +
          Auto-generated from RARE rule str-contains-emp
          +
        • +
        + + + +
          +
        • +

          STR_CONTAINS_IS_EMP

          +
          public static final ProofRewriteRule STR_CONTAINS_IS_EMP
          +
          Auto-generated from RARE rule str-contains-is-emp
          +
        • +
        + + + +
          +
        • +

          STR_AT_ELIM

          +
          public static final ProofRewriteRule STR_AT_ELIM
          +
          Auto-generated from RARE rule str-at-elim
          +
        • +
        + + + +
          +
        • +

          STR_REPLACE_SELF

          +
          public static final ProofRewriteRule STR_REPLACE_SELF
          +
          Auto-generated from RARE rule str-replace-self
          +
        • +
        + + + +
          +
        • +

          STR_REPLACE_PREFIX

          +
          public static final ProofRewriteRule STR_REPLACE_PREFIX
          +
          Auto-generated from RARE rule str-replace-prefix
          +
        • +
        + + + +
          +
        • +

          STR_REPLACE_NO_CONTAINS

          +
          public static final ProofRewriteRule STR_REPLACE_NO_CONTAINS
          +
          Auto-generated from RARE rule str-replace-no-contains
          +
        • +
        + + + +
          +
        • +

          STR_REPLACE_EMPTY

          +
          public static final ProofRewriteRule STR_REPLACE_EMPTY
          +
          Auto-generated from RARE rule str-replace-empty
          +
        • +
        + + + +
          +
        • +

          STR_REPLACE_CONTAINS_PRE

          +
          public static final ProofRewriteRule STR_REPLACE_CONTAINS_PRE
          +
          Auto-generated from RARE rule str-replace-contains-pre
          +
        • +
        + + + +
          +
        • +

          STR_REPLACE_ALL_NO_CONTAINS

          +
          public static final ProofRewriteRule STR_REPLACE_ALL_NO_CONTAINS
          +
          Auto-generated from RARE rule str-replace-all-no-contains
          +
        • +
        + + + +
          +
        • +

          STR_REPLACE_RE_NONE

          +
          public static final ProofRewriteRule STR_REPLACE_RE_NONE
          +
          Auto-generated from RARE rule str-replace-re-none
          +
        • +
        + + + +
          +
        • +

          STR_REPLACE_RE_ALL_NONE

          +
          public static final ProofRewriteRule STR_REPLACE_RE_ALL_NONE
          +
          Auto-generated from RARE rule str-replace-re-all-none
          +
        • +
        + + + +
          +
        • +

          STR_LEN_CONCAT_REC

          +
          public static final ProofRewriteRule STR_LEN_CONCAT_REC
          +
          Auto-generated from RARE rule str-len-concat-rec
          +
        • +
        + + + +
          +
        • +

          STR_INDEXOF_SELF

          +
          public static final ProofRewriteRule STR_INDEXOF_SELF
          +
          Auto-generated from RARE rule str-indexof-self
          +
        • +
        + + + +
          +
        • +

          STR_INDEXOF_NO_CONTAINS

          +
          public static final ProofRewriteRule STR_INDEXOF_NO_CONTAINS
          +
          Auto-generated from RARE rule str-indexof-no-contains
          +
        • +
        + + + +
          +
        • +

          STR_INDEXOF_CONTAINS_PRE

          +
          public static final ProofRewriteRule STR_INDEXOF_CONTAINS_PRE
          +
          Auto-generated from RARE rule str-indexof-contains-pre
          +
        • +
        + + + +
          +
        • +

          STR_INDEXOF_RE_NONE

          +
          public static final ProofRewriteRule STR_INDEXOF_RE_NONE
          +
          Auto-generated from RARE rule str-indexof-re-none
          +
        • +
        + + + +
          +
        • +

          STR_TO_LOWER_CONCAT

          +
          public static final ProofRewriteRule STR_TO_LOWER_CONCAT
          +
          Auto-generated from RARE rule str-to-lower-concat
          +
        • +
        + + + +
          +
        • +

          STR_TO_UPPER_CONCAT

          +
          public static final ProofRewriteRule STR_TO_UPPER_CONCAT
          +
          Auto-generated from RARE rule str-to-upper-concat
          +
        • +
        + + + +
          +
        • +

          STR_TO_LOWER_UPPER

          +
          public static final ProofRewriteRule STR_TO_LOWER_UPPER
          +
          Auto-generated from RARE rule str-to-lower-upper
          +
        • +
        + + + +
          +
        • +

          STR_TO_UPPER_LOWER

          +
          public static final ProofRewriteRule STR_TO_UPPER_LOWER
          +
          Auto-generated from RARE rule str-to-upper-lower
          +
        • +
        + + + +
          +
        • +

          STR_TO_LOWER_LEN

          +
          public static final ProofRewriteRule STR_TO_LOWER_LEN
          +
          Auto-generated from RARE rule str-to-lower-len
          +
        • +
        + + + +
          +
        • +

          STR_TO_UPPER_LEN

          +
          public static final ProofRewriteRule STR_TO_UPPER_LEN
          +
          Auto-generated from RARE rule str-to-upper-len
          +
        • +
        + + + +
          +
        • +

          STR_TO_LOWER_FROM_INT

          +
          public static final ProofRewriteRule STR_TO_LOWER_FROM_INT
          +
          Auto-generated from RARE rule str-to-lower-from-int
          +
        • +
        + + + +
          +
        • +

          STR_TO_UPPER_FROM_INT

          +
          public static final ProofRewriteRule STR_TO_UPPER_FROM_INT
          +
          Auto-generated from RARE rule str-to-upper-from-int
          +
        • +
        + + + +
          +
        • +

          STR_TO_INT_CONCAT_NEG_ONE

          +
          public static final ProofRewriteRule STR_TO_INT_CONCAT_NEG_ONE
          +
          Auto-generated from RARE rule str-to-int-concat-neg-one
          +
        • +
        + + + +
          +
        • +

          STR_LEQ_EMPTY

          +
          public static final ProofRewriteRule STR_LEQ_EMPTY
          +
          Auto-generated from RARE rule str-leq-empty
          +
        • +
        + + + +
          +
        • +

          STR_LEQ_EMPTY_EQ

          +
          public static final ProofRewriteRule STR_LEQ_EMPTY_EQ
          +
          Auto-generated from RARE rule str-leq-empty-eq
          +
        • +
        + + + +
          +
        • +

          STR_LEQ_CONCAT_FALSE

          +
          public static final ProofRewriteRule STR_LEQ_CONCAT_FALSE
          +
          Auto-generated from RARE rule str-leq-concat-false
          +
        • +
        + + + +
          +
        • +

          STR_LEQ_CONCAT_TRUE

          +
          public static final ProofRewriteRule STR_LEQ_CONCAT_TRUE
          +
          Auto-generated from RARE rule str-leq-concat-true
          +
        • +
        + + + +
          +
        • +

          STR_LT_ELIM

          +
          public static final ProofRewriteRule STR_LT_ELIM
          +
          Auto-generated from RARE rule str-lt-elim
          +
        • +
        + + + +
          +
        • +

          RE_ALL_ELIM

          +
          public static final ProofRewriteRule RE_ALL_ELIM
          +
          Auto-generated from RARE rule re-all-elim
          +
        • +
        + + + +
          +
        • +

          RE_OPT_ELIM

          +
          public static final ProofRewriteRule RE_OPT_ELIM
          +
          Auto-generated from RARE rule re-opt-elim
          +
        • +
        + + + +
          +
        • +

          RE_DIFF_ELIM

          +
          public static final ProofRewriteRule RE_DIFF_ELIM
          +
          Auto-generated from RARE rule re-diff-elim
          +
        • +
        + + + +
          +
        • +

          RE_CONCAT_EMP

          +
          public static final ProofRewriteRule RE_CONCAT_EMP
          +
          Auto-generated from RARE rule re-concat-emp
          +
        • +
        + + + +
          +
        • +

          RE_CONCAT_NONE

          +
          public static final ProofRewriteRule RE_CONCAT_NONE
          +
          Auto-generated from RARE rule re-concat-none
          +
        • +
        + + + +
          +
        • +

          RE_CONCAT_FLATTEN

          +
          public static final ProofRewriteRule RE_CONCAT_FLATTEN
          +
          Auto-generated from RARE rule re-concat-flatten
          +
        • +
        + + + +
          +
        • +

          RE_CONCAT_STAR_SWAP

          +
          public static final ProofRewriteRule RE_CONCAT_STAR_SWAP
          +
          Auto-generated from RARE rule re-concat-star-swap
          +
        • +
        + + + +
          +
        • +

          RE_CONCAT_STAR_REPEAT

          +
          public static final ProofRewriteRule RE_CONCAT_STAR_REPEAT
          +
          Auto-generated from RARE rule re-concat-star-repeat
          +
        • +
        + + + +
          +
        • +

          RE_CONCAT_MERGE

          +
          public static final ProofRewriteRule RE_CONCAT_MERGE
          +
          Auto-generated from RARE rule re-concat-merge
          +
        • +
        + + + +
          +
        • +

          RE_UNION_ALL

          +
          public static final ProofRewriteRule RE_UNION_ALL
          +
          Auto-generated from RARE rule re-union-all
          +
        • +
        + + + +
          +
        • +

          RE_UNION_NONE

          +
          public static final ProofRewriteRule RE_UNION_NONE
          +
          Auto-generated from RARE rule re-union-none
          +
        • +
        + + + +
          +
        • +

          RE_UNION_FLATTEN

          +
          public static final ProofRewriteRule RE_UNION_FLATTEN
          +
          Auto-generated from RARE rule re-union-flatten
          +
        • +
        + + + +
          +
        • +

          RE_UNION_DUP

          +
          public static final ProofRewriteRule RE_UNION_DUP
          +
          Auto-generated from RARE rule re-union-dup
          +
        • +
        + + + +
          +
        • +

          RE_INTER_ALL

          +
          public static final ProofRewriteRule RE_INTER_ALL
          +
          Auto-generated from RARE rule re-inter-all
          +
        • +
        + + + +
          +
        • +

          RE_INTER_NONE

          +
          public static final ProofRewriteRule RE_INTER_NONE
          +
          Auto-generated from RARE rule re-inter-none
          +
        • +
        + + + +
          +
        • +

          RE_INTER_FLATTEN

          +
          public static final ProofRewriteRule RE_INTER_FLATTEN
          +
          Auto-generated from RARE rule re-inter-flatten
          +
        • +
        + + + +
          +
        • +

          RE_INTER_DUP

          +
          public static final ProofRewriteRule RE_INTER_DUP
          +
          Auto-generated from RARE rule re-inter-dup
          +
        • +
        + + + +
          +
        • +

          RE_STAR_NONE

          +
          public static final ProofRewriteRule RE_STAR_NONE
          +
          Auto-generated from RARE rule re-star-none
          +
        • +
        + + + +
          +
        • +

          RE_LOOP_NEG

          +
          public static final ProofRewriteRule RE_LOOP_NEG
          +
          Auto-generated from RARE rule re-loop-neg
          +
        • +
        + + + +
          +
        • +

          RE_INTER_CSTRING

          +
          public static final ProofRewriteRule RE_INTER_CSTRING
          +
          Auto-generated from RARE rule re-inter-cstring
          +
        • +
        + + + +
          +
        • +

          RE_INTER_CSTRING_NEG

          +
          public static final ProofRewriteRule RE_INTER_CSTRING_NEG
          +
          Auto-generated from RARE rule re-inter-cstring-neg
          +
        • +
        + + + +
          +
        • +

          STR_SUBSTR_LEN_INCLUDE

          +
          public static final ProofRewriteRule STR_SUBSTR_LEN_INCLUDE
          +
          Auto-generated from RARE rule str-substr-len-include
          +
        • +
        + + + +
          +
        • +

          STR_SUBSTR_LEN_INCLUDE_PRE

          +
          public static final ProofRewriteRule STR_SUBSTR_LEN_INCLUDE_PRE
          +
          Auto-generated from RARE rule str-substr-len-include-pre
          +
        • +
        + + + +
          +
        • +

          STR_SUBSTR_LEN_SKIP

          +
          public static final ProofRewriteRule STR_SUBSTR_LEN_SKIP
          +
          Auto-generated from RARE rule str-substr-len-skip
          +
        • +
        + + + +
          +
        • +

          SEQ_LEN_REV

          +
          public static final ProofRewriteRule SEQ_LEN_REV
          +
          Auto-generated from RARE rule seq-len-rev
          +
        • +
        + + + +
          +
        • +

          SEQ_REV_REV

          +
          public static final ProofRewriteRule SEQ_REV_REV
          +
          Auto-generated from RARE rule seq-rev-rev
          +
        • +
        + + + +
          +
        • +

          SEQ_REV_CONCAT

          +
          public static final ProofRewriteRule SEQ_REV_CONCAT
          +
          Auto-generated from RARE rule seq-rev-concat
          +
        • +
        + + + +
          +
        • +

          SEQ_LEN_UNIT

          +
          public static final ProofRewriteRule SEQ_LEN_UNIT
          +
          Auto-generated from RARE rule seq-len-unit
          +
        • +
        + + + +
          +
        • +

          SEQ_NTH_UNIT

          +
          public static final ProofRewriteRule SEQ_NTH_UNIT
          +
          Auto-generated from RARE rule seq-nth-unit
          +
        • +
        + + + +
          +
        • +

          SEQ_REV_UNIT

          +
          public static final ProofRewriteRule SEQ_REV_UNIT
          +
          Auto-generated from RARE rule seq-rev-unit
          +
        • +
        + + + +
          +
        • +

          SEQ_LEN_EMPTY

          +
          public static final ProofRewriteRule SEQ_LEN_EMPTY
          +
          Auto-generated from RARE rule seq-len-empty
          +
        • +
        + + + +
          +
        • +

          RE_IN_EMPTY

          +
          public static final ProofRewriteRule RE_IN_EMPTY
          +
          Auto-generated from RARE rule re-in-empty
          +
        • +
        + + + +
          +
        • +

          RE_IN_SIGMA

          +
          public static final ProofRewriteRule RE_IN_SIGMA
          +
          Auto-generated from RARE rule re-in-sigma
          +
        • +
        + + + +
          +
        • +

          RE_IN_SIGMA_STAR

          +
          public static final ProofRewriteRule RE_IN_SIGMA_STAR
          +
          Auto-generated from RARE rule re-in-sigma-star
          +
        • +
        + + + +
          +
        • +

          RE_IN_CSTRING

          +
          public static final ProofRewriteRule RE_IN_CSTRING
          +
          Auto-generated from RARE rule re-in-cstring
          +
        • +
        + + + +
          +
        • +

          RE_IN_COMP

          +
          public static final ProofRewriteRule RE_IN_COMP
          +
          Auto-generated from RARE rule re-in-comp
          +
        • +
        + + + +
          +
        • +

          STR_IN_RE_UNION_ELIM

          +
          public static final ProofRewriteRule STR_IN_RE_UNION_ELIM
          +
          Auto-generated from RARE rule str-in-re-union-elim
          +
        • +
        + + + +
          +
        • +

          STR_IN_RE_INTER_ELIM

          +
          public static final ProofRewriteRule STR_IN_RE_INTER_ELIM
          +
          Auto-generated from RARE rule str-in-re-inter-elim
          +
        • +
        + + + +
          +
        • +

          STR_IN_RE_RANGE_ELIM

          +
          public static final ProofRewriteRule STR_IN_RE_RANGE_ELIM
          +
          Auto-generated from RARE rule str-in-re-range-elim
          +
        • +
        + + + +
          +
        • +

          STR_IN_RE_CONTAINS

          +
          public static final ProofRewriteRule STR_IN_RE_CONTAINS
          +
          Auto-generated from RARE rule str-in-re-contains
          +
        • +
        + + + +
          +
        • +

          STR_IN_RE_STRIP_PREFIX

          +
          public static final ProofRewriteRule STR_IN_RE_STRIP_PREFIX
          +
          Auto-generated from RARE rule str-in-re-strip-prefix
          +
        • +
        + + + +
          +
        • +

          STR_IN_RE_STRIP_PREFIX_NEG

          +
          public static final ProofRewriteRule STR_IN_RE_STRIP_PREFIX_NEG
          +
          Auto-generated from RARE rule str-in-re-strip-prefix-neg
          +
        • +
        + + + +
          +
        • +

          STR_IN_RE_STRIP_PREFIX_SR_SINGLE

          +
          public static final ProofRewriteRule STR_IN_RE_STRIP_PREFIX_SR_SINGLE
          +
          Auto-generated from RARE rule str-in-re-strip-prefix-sr-single
          +
        • +
        + + + +
          +
        • +

          STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG

          +
          public static final ProofRewriteRule STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG
          +
          Auto-generated from RARE rule str-in-re-strip-prefix-sr-single-neg
          +
        • +
        + + + +
          +
        • +

          STR_IN_RE_STRIP_PREFIX_SRS_SINGLE

          +
          public static final ProofRewriteRule STR_IN_RE_STRIP_PREFIX_SRS_SINGLE
          +
          Auto-generated from RARE rule str-in-re-strip-prefix-srs-single
          +
        • +
        + + + +
          +
        • +

          STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG

          +
          public static final ProofRewriteRule STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG
          +
          Auto-generated from RARE rule str-in-re-strip-prefix-srs-single-neg
          +
        • +
        + + + +
          +
        • +

          STR_IN_RE_STRIP_PREFIX_S_SINGLE

          +
          public static final ProofRewriteRule STR_IN_RE_STRIP_PREFIX_S_SINGLE
          +
          Auto-generated from RARE rule str-in-re-strip-prefix-s-single
          +
        • +
        + + + +
          +
        • +

          STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG

          +
          public static final ProofRewriteRule STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG
          +
          Auto-generated from RARE rule str-in-re-strip-prefix-s-single-neg
          +
        • +
        + + + +
          +
        • +

          STR_IN_RE_STRIP_PREFIX_BASE

          +
          public static final ProofRewriteRule STR_IN_RE_STRIP_PREFIX_BASE
          +
          Auto-generated from RARE rule str-in-re-strip-prefix-base
          +
        • +
        + + + +
          +
        • +

          STR_IN_RE_STRIP_PREFIX_BASE_NEG

          +
          public static final ProofRewriteRule STR_IN_RE_STRIP_PREFIX_BASE_NEG
          +
          Auto-generated from RARE rule str-in-re-strip-prefix-base-neg
          +
        • +
        + + + +
          +
        • +

          STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE

          +
          public static final ProofRewriteRule STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE
          +
          Auto-generated from RARE rule str-in-re-strip-prefix-base-s-single
          +
        • +
        + + + +
          +
        • +

          STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG

          +
          public static final ProofRewriteRule STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG
          +
          Auto-generated from RARE rule str-in-re-strip-prefix-base-s-single-neg
          +
        • +
        + + + +
          +
        • +

          STR_IN_RE_STRIP_CHAR

          +
          public static final ProofRewriteRule STR_IN_RE_STRIP_CHAR
          +
          Auto-generated from RARE rule str-in-re-strip-char
          +
        • +
        + + + +
          +
        • +

          STR_IN_RE_STRIP_CHAR_S_SINGLE

          +
          public static final ProofRewriteRule STR_IN_RE_STRIP_CHAR_S_SINGLE
          +
          Auto-generated from RARE rule str-in-re-strip-char-s-single
          +
        • +
        + + + +
          +
        • +

          STR_IN_RE_STRIP_PREFIX_REV

          +
          public static final ProofRewriteRule STR_IN_RE_STRIP_PREFIX_REV
          +
          Auto-generated from RARE rule str-in-re-strip-prefix-rev
          +
        • +
        + + + +
          +
        • +

          STR_IN_RE_STRIP_PREFIX_NEG_REV

          +
          public static final ProofRewriteRule STR_IN_RE_STRIP_PREFIX_NEG_REV
          +
          Auto-generated from RARE rule str-in-re-strip-prefix-neg-rev
          +
        • +
        + + + +
          +
        • +

          STR_IN_RE_STRIP_PREFIX_SR_SINGLE_REV

          +
          public static final ProofRewriteRule STR_IN_RE_STRIP_PREFIX_SR_SINGLE_REV
          +
          Auto-generated from RARE rule str-in-re-strip-prefix-sr-single-rev
          +
        • +
        + + + +
          +
        • +

          STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG_REV

          +
          public static final ProofRewriteRule STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG_REV
          +
          Auto-generated from RARE rule str-in-re-strip-prefix-sr-single-neg-rev
          +
        • +
        + + + +
          +
        • +

          STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_REV

          +
          public static final ProofRewriteRule STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_REV
          +
          Auto-generated from RARE rule str-in-re-strip-prefix-srs-single-rev
          +
        • +
        + + + +
          +
        • +

          STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG_REV

          +
          public static final ProofRewriteRule STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG_REV
          +
          Auto-generated from RARE rule str-in-re-strip-prefix-srs-single-neg-rev
          +
        • +
        + + + +
          +
        • +

          STR_IN_RE_STRIP_PREFIX_S_SINGLE_REV

          +
          public static final ProofRewriteRule STR_IN_RE_STRIP_PREFIX_S_SINGLE_REV
          +
          Auto-generated from RARE rule str-in-re-strip-prefix-s-single-rev
          +
        • +
        + + + +
          +
        • +

          STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG_REV

          +
          public static final ProofRewriteRule STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG_REV
          +
          Auto-generated from RARE rule str-in-re-strip-prefix-s-single-neg-rev
          +
        • +
        + + + +
          +
        • +

          STR_IN_RE_STRIP_PREFIX_BASE_REV

          +
          public static final ProofRewriteRule STR_IN_RE_STRIP_PREFIX_BASE_REV
          +
          Auto-generated from RARE rule str-in-re-strip-prefix-base-rev
          +
        • +
        + + + +
          +
        • +

          STR_IN_RE_STRIP_PREFIX_BASE_NEG_REV

          +
          public static final ProofRewriteRule STR_IN_RE_STRIP_PREFIX_BASE_NEG_REV
          +
          Auto-generated from RARE rule str-in-re-strip-prefix-base-neg-rev
          +
        • +
        + + + +
          +
        • +

          STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_REV

          +
          public static final ProofRewriteRule STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_REV
          +
          Auto-generated from RARE rule str-in-re-strip-prefix-base-s-single-rev
          +
        • +
        + + + +
          +
        • +

          STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG_REV

          +
          public static final ProofRewriteRule STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG_REV
          +
          Auto-generated from RARE rule str-in-re-strip-prefix-base-s-single-neg-rev
          +
        • +
        + + + +
          +
        • +

          STR_IN_RE_STRIP_CHAR_REV

          +
          public static final ProofRewriteRule STR_IN_RE_STRIP_CHAR_REV
          +
          Auto-generated from RARE rule str-in-re-strip-char-rev
          +
        • +
        + + + +
          +
        • +

          STR_IN_RE_STRIP_CHAR_S_SINGLE_REV

          +
          public static final ProofRewriteRule STR_IN_RE_STRIP_CHAR_S_SINGLE_REV
          +
          Auto-generated from RARE rule str-in-re-strip-char-s-single-rev
          +
        • +
        + + + +
          +
        • +

          STR_IN_RE_REQ_UNFOLD

          +
          public static final ProofRewriteRule STR_IN_RE_REQ_UNFOLD
          +
          Auto-generated from RARE rule str-in-re-req-unfold
          +
        • +
        + + + +
          +
        • +

          STR_IN_RE_REQ_UNFOLD_REV

          +
          public static final ProofRewriteRule STR_IN_RE_REQ_UNFOLD_REV
          +
          Auto-generated from RARE rule str-in-re-req-unfold-rev
          +
        • +
        + + + +
          +
        • +

          STR_IN_RE_SKIP_UNFOLD

          +
          public static final ProofRewriteRule STR_IN_RE_SKIP_UNFOLD
          +
          Auto-generated from RARE rule str-in-re-skip-unfold
          +
        • +
        + + + +
          +
        • +

          STR_IN_RE_SKIP_UNFOLD_REV

          +
          public static final ProofRewriteRule STR_IN_RE_SKIP_UNFOLD_REV
          +
          Auto-generated from RARE rule str-in-re-skip-unfold-rev
          +
        • +
        + + + +
          +
        • +

          STR_IN_RE_TEST_UNFOLD

          +
          public static final ProofRewriteRule STR_IN_RE_TEST_UNFOLD
          +
          Auto-generated from RARE rule str-in-re-test-unfold
          +
        • +
        + + + +
          +
        • +

          STR_IN_RE_TEST_UNFOLD_REV

          +
          public static final ProofRewriteRule STR_IN_RE_TEST_UNFOLD_REV
          +
          Auto-generated from RARE rule str-in-re-test-unfold-rev
          +
        • +
        + + + +
          +
        • +

          EQ_REFL

          +
          public static final ProofRewriteRule EQ_REFL
          +
          Auto-generated from RARE rule eq-refl
          +
        • +
        + + + +
          +
        • +

          EQ_SYMM

          +
          public static final ProofRewriteRule EQ_SYMM
          +
          Auto-generated from RARE rule eq-symm
          +
        • +
        + + + +
          +
        • +

          EQ_COND_DEQ

          +
          public static final ProofRewriteRule EQ_COND_DEQ
          +
          Auto-generated from RARE rule eq-cond-deq
          +
        • +
        + + + +
          +
        • +

          EQ_ITE_LIFT

          +
          public static final ProofRewriteRule EQ_ITE_LIFT
          +
          Auto-generated from RARE rule eq-ite-lift
          +
        • +
        + + + +
          +
        • +

          DISTINCT_BINARY_ELIM

          +
          public static final ProofRewriteRule DISTINCT_BINARY_ELIM
          +
          Auto-generated from RARE rule distinct-binary-elim
          +
        • +
        + + + +
          +
        • +

          UF_BV2NAT_INT2BV

          +
          public static final ProofRewriteRule UF_BV2NAT_INT2BV
          +
          Auto-generated from RARE rule uf-bv2nat-int2bv
          +
        • +
        + + + +
          +
        • +

          UF_BV2NAT_INT2BV_EXTEND

          +
          public static final ProofRewriteRule UF_BV2NAT_INT2BV_EXTEND
          +
          Auto-generated from RARE rule uf-bv2nat-int2bv-extend
          +
        • +
        + + + +
          +
        • +

          UF_BV2NAT_INT2BV_EXTRACT

          +
          public static final ProofRewriteRule UF_BV2NAT_INT2BV_EXTRACT
          +
          Auto-generated from RARE rule uf-bv2nat-int2bv-extract
          +
        • +
        + + + +
          +
        • +

          UF_INT2BV_BV2NAT

          +
          public static final ProofRewriteRule UF_INT2BV_BV2NAT
          +
          Auto-generated from RARE rule uf-int2bv-bv2nat
          +
        • +
        + + + +
          +
        • +

          UF_BV2NAT_GEQ_ELIM

          +
          public static final ProofRewriteRule UF_BV2NAT_GEQ_ELIM
          +
          Auto-generated from RARE rule uf-bv2nat-geq-elim
          +
        • +
        + + + +
          +
        • +

          UF_INT2BV_BVULT_EQUIV

          +
          public static final ProofRewriteRule UF_INT2BV_BVULT_EQUIV
          +
          Auto-generated from RARE rule uf-int2bv-bvult-equiv
          +
        • +
        + + + +
          +
        • +

          UF_INT2BV_BVULE_EQUIV

          +
          public static final ProofRewriteRule UF_INT2BV_BVULE_EQUIV
          +
          Auto-generated from RARE rule uf-int2bv-bvule-equiv
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          values

          +
          public static ProofRewriteRule[] values()
          +
          Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +
          +for (ProofRewriteRule c : ProofRewriteRule.values())
          +    System.out.println(c);
          +
          +
          +
          Returns:
          +
          an array containing the constants of this enum type, in the order they are declared
          +
          +
        • +
        + + + +
          +
        • +

          valueOf

          +
          public static ProofRewriteRule valueOf​(java.lang.String name)
          +
          Returns the enum constant of this type with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)
          +
          +
          Parameters:
          +
          name - the name of the enum constant to be returned.
          +
          Returns:
          +
          the enum constant with the specified name
          +
          Throws:
          +
          java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
          +
          java.lang.NullPointerException - if the argument is null
          +
          +
        • +
        + + + + + + + +
          +
        • +

          getValue

          +
          public int getValue()
          +
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
    + +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/ProofRule.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/ProofRule.html new file mode 100644 index 0000000000..0c2e27930c --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/ProofRule.html @@ -0,0 +1,5108 @@ + + + + + +ProofRule + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Enum ProofRule

    +
    +
    +
      +
    • java.lang.Object
    • +
    • +
        +
      • java.lang.Enum<ProofRule>
      • +
      • +
          +
        • io.github.cvc5.ProofRule
        • +
        +
      • +
      +
    • +
    +
    +
      +
    • +
      +
      All Implemented Interfaces:
      +
      java.io.Serializable, java.lang.Comparable<ProofRule>
      +
      +
      +
      public enum ProofRule
      +extends java.lang.Enum<ProofRule>
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Enum Constant Summary

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        Enum Constants 
        Enum ConstantDescription
        ACI_NORM +
        Builtin theory – associative/commutative/idempotency/identity normalization + + \[ + \inferrule{- \mid t = s}{t = s} + \] + where \(\texttt{expr::isACNorm(t, s)} = \top\).
        +
        ALETHE_RULE +
        External – Alethe + + Place holder for Alethe rules.
        +
        ALPHA_EQUIV +
        Quantifiers – Alpha equivalence + + \[ + + \inferruleSC{-\mid F, (y_1 \ldots y_n), (z_1,\dots, z_n)} + {F = F\{y_1\mapsto z_1,\dots,y_n\mapsto z_n\}} + {if $y_1,\dots,y_n, z_1,\dots,z_n$ are unique bound variables} + \] + Notice that this rule is correct only when \(z_1,\dots,z_n\) are not + contained in \(FV(F) \setminus \{ y_1,\dots, y_n \}\), where + \(FV(\varphi)\) are the free variables of \(\varphi\).
        +
        AND_ELIM +
        Boolean – And elimination + + \[ + \inferrule{(F_1 \land \dots \land F_n) \mid i}{F_i} + \]
        +
        AND_INTRO +
        Boolean – And introduction + + \[ + \inferrule{F_1 \dots F_n \mid -}{(F_1 \land \dots \land F_n)} + \]
        +
        ARITH_MULT_ABS_COMPARISON +
        Arithmetic – Non-linear multiply absolute value comparison + + \[ + \inferrule{F_1 \dots F_n \mid -}{F} + \] + where \(F\) is of the form + \(\left| t_1 \cdot t_n \right| \diamond \left| s_1 \cdot s_n \right|\).
        +
        ARITH_MULT_NEG +
        Arithmetic – Multiplication with negative factor + + \[ + \inferrule{- \mid m, l \diamond r}{(m < 0 \land l \diamond r) \rightarrow m \cdot l \diamond_{inv} m \cdot r} + \] + where \(\diamond\) is a relation symbol and \(\diamond_{inv}\) the + inverted relation symbol.
        +
        ARITH_MULT_POS +
        Arithmetic – Multiplication with positive factor + + \[ + \inferrule{- \mid m, l \diamond r}{(m > 0 \land l \diamond r) \rightarrow m \cdot l \diamond m \cdot r} + \] + where \(\diamond\) is a relation symbol.
        +
        ARITH_MULT_SIGN +
        Arithmetic – Sign inference + + \[ + \inferrule{- \mid f_1 \dots f_k, m}{(f_1 \land \dots \land f_k) \rightarrow m \diamond 0} + \] + where \(f_1 \dots f_k\) are variables compared to zero (less, greater + or not equal), \(m\) is a monomial from these variables and + \(\diamond\) is the comparison (less or equal) that results from the + signs of the variables.
        +
        ARITH_MULT_TANGENT +
        Arithmetic – Multiplication tangent plane + + \[ + \inferruleSC{- \mid x, y, a, b, \sigma}{(t \leq tplane) = ((x \leq a \land y \geq b) \lor (x \geq a \land y \leq b))}{if $\sigma = \bot$} + + \inferruleSC{- \mid x, y, a, b, \sigma}{(t \geq tplane) = ((x \leq a \land y \leq b) \lor (x \geq a \land y \geq b))}{if $\sigma = \top$} + \] + where \(x,y\) are real terms (variables or extended terms), + \(t = x \cdot y\), \(a,b\) are real + constants, \(\sigma \in \{ \top, \bot\}\) and \(tplane := b \cdot x + a \cdot y - a \cdot b\) is the tangent plane of \(x \cdot y\) at \((a,b)\).
        +
        ARITH_POLY_NORM +
        Arithmetic – Polynomial normalization + + \[ + \inferrule{- \mid t = s}{t = s} + \] + where \(\texttt{arith::PolyNorm::isArithPolyNorm(t, s)} = \top\).
        +
        ARITH_POLY_NORM_REL +
        Arithmetic – Polynomial normalization for relations + + ..
        +
        ARITH_REDUCTION +
        Arithmetic – Reduction + + \[ + \inferrule{- \mid t}{F} + \] + where \(t\) is an application of an extended arithmetic operator (e.g.
        +
        ARITH_SUM_UB +
        Arithmetic – Sum upper bounds + + \[ + \inferrule{P_1 \dots P_n \mid -}{L \diamond R} + \] + where \(P_i\) has the form \(L_i \diamond_i R_i\) and + \(\diamond_i \in \{<, \leq, =\}\).
        +
        ARITH_TRANS_EXP_APPROX_ABOVE_NEG +
        Arithmetic – Transcendentals – Exp is approximated from above for + negative values + + \[ + \inferrule{- \mid d,t,l,u}{(t \geq l \land t \leq u) \rightarrow exp(t) + \leq \texttt{secant}(\exp, l, u, t)} + \] + where \(d\) is an even positive number, \(t\) an arithmetic term + and \(l,u\) are lower and upper bounds on \(t\).
        +
        ARITH_TRANS_EXP_APPROX_ABOVE_POS +
        Arithmetic – Transcendentals – Exp is approximated from above for + positive values + + \[ + \inferrule{- \mid d,t,l,u}{(t \geq l \land t \leq u) \rightarrow exp(t) + \leq \texttt{secant-pos}(\exp, l, u, t)} + \] + where \(d\) is an even positive number, \(t\) an arithmetic term + and \(l,u\) are lower and upper bounds on \(t\).
        +
        ARITH_TRANS_EXP_APPROX_BELOW +
        Arithmetic – Transcendentals – Exp is approximated from below + + \[ + \inferrule{- \mid d,c,t}{t \geq c \rightarrow exp(t) \geq \texttt{maclaurin}(\exp, d, c)} + \] + where \(d\) is an odd positive number, \(t\) an arithmetic term and + \(\texttt{maclaurin}(\exp, d, c)\) is the \(d\)'th taylor + polynomial at zero (also called the Maclaurin series) of the exponential + function evaluated at \(c\).
        +
        ARITH_TRANS_EXP_NEG +
        Arithmetic – Transcendentals – Exp at negative values + + \[ + \inferrule{- \mid t}{(t < 0) \leftrightarrow (\exp(t) < 1)} + \]
        +
        ARITH_TRANS_EXP_POSITIVITY +
        Arithmetic – Transcendentals – Exp is always positive + + \[ + \inferrule{- \mid t}{\exp(t) > 0} + \]
        +
        ARITH_TRANS_EXP_SUPER_LIN +
        Arithmetic – Transcendentals – Exp grows super-linearly for positive + values + + \[ + \inferrule{- \mid t}{t \leq 0 \lor \exp(t) > t+1} + \]
        +
        ARITH_TRANS_EXP_ZERO +
        Arithmetic – Transcendentals – Exp at zero + + \[ + \inferrule{- \mid t}{(t=0) \leftrightarrow (\exp(t) = 1)} + \]
        +
        ARITH_TRANS_PI +
        Arithmetic – Transcendentals – Assert bounds on Pi + + \[ + \inferrule{- \mid l, u}{\texttt{real.pi} \geq l \land \texttt{real.pi} + \leq u} + \] + where \(l,u\) are valid lower and upper bounds on \(\pi\).
        +
        ARITH_TRANS_SINE_APPROX_ABOVE_NEG +
        Arithmetic – Transcendentals – Sine is approximated from above for + negative values + + \[ + \inferrule{- \mid d,t,lb,ub,l,u}{(t \geq lb land t \leq ub) \rightarrow + \sin(t) \leq \texttt{secant}(\sin, l, u, t)} + \] + where \(d\) is an even positive number, \(t\) an arithmetic term, + \(lb,ub\) are symbolic lower and upper bounds on \(t\) (possibly + containing \(\pi\)) and \(l,u\) the evaluated lower and upper + bounds on \(t\).
        +
        ARITH_TRANS_SINE_APPROX_ABOVE_POS +
        Arithmetic – Transcendentals – Sine is approximated from above for + positive values + + \[ + \inferrule{- \mid d,t,c,lb,ub}{(t \geq lb land t \leq ub) \rightarrow + \sin(t) \leq \texttt{upper}(\sin, c)} + \] + where \(d\) is an even positive number, \(t\) an arithmetic term, + \(c\) an arithmetic constant and \(lb,ub\) are symbolic lower and + upper bounds on \(t\) (possibly containing \(\pi\)).
        +
        ARITH_TRANS_SINE_APPROX_BELOW_NEG +
        Arithmetic – Transcendentals – Sine is approximated from below for + negative values + + \[ + \inferrule{- \mid d,t,c,lb,ub}{(t \geq lb land t \leq ub) \rightarrow + \sin(t) \geq \texttt{lower}(\sin, c)} + \] + where \(d\) is an even positive number, \(t\) an arithmetic term, + \(c\) an arithmetic constant and \(lb,ub\) are symbolic lower and + upper bounds on \(t\) (possibly containing \(\pi\)).
        +
        ARITH_TRANS_SINE_APPROX_BELOW_POS +
        Arithmetic – Transcendentals – Sine is approximated from below for + positive values + + \[ + \inferrule{- \mid d,t,lb,ub,l,u}{(t \geq lb land t \leq ub) \rightarrow + \sin(t) \geq \texttt{secant}(\sin, l, u, t)} + \] + where \(d\) is an even positive number, \(t\) an arithmetic term, + \(lb,ub\) are symbolic lower and upper bounds on \(t\) (possibly + containing \(\pi\)) and \(l,u\) the evaluated lower and upper + bounds on \(t\).
        +
        ARITH_TRANS_SINE_BOUNDS +
        Arithmetic – Transcendentals – Sine is always between -1 and 1 + + \[ + \inferrule{- \mid t}{\sin(t) \leq 1 \land \sin(t) \geq -1} + \]
        +
        ARITH_TRANS_SINE_SHIFT +
        Arithmetic – Transcendentals – Sine is shifted to -pi...pi + + \[ + \inferrule{- \mid x}{-\pi \leq y \leq \pi \land \sin(y) = \sin(x) + \land (\ite{-\pi \leq x \leq \pi}{x = y}{x = y + 2 \pi s})} + \] + where \(x\) is the argument to sine, \(y\) is a new real skolem + that is \(x\) shifted into \(-\pi \dots \pi\) and \(s\) is a + new integer skolem that is the number of phases \(y\) is shifted.
        +
        ARITH_TRANS_SINE_SYMMETRY +
        Arithmetic – Transcendentals – Sine is symmetric with respect to + negation of the argument + + \[ + \inferrule{- \mid t}{\sin(t) - \sin(-t) = 0} + \]
        +
        ARITH_TRANS_SINE_TANGENT_PI +
        Arithmetic – Transcendentals – Sine is bounded by the tangents at -pi + and pi + + ..
        +
        ARITH_TRANS_SINE_TANGENT_ZERO +
        Arithmetic – Transcendentals – Sine is bounded by the tangent at zero + + ..
        +
        ARITH_TRICHOTOMY +
        Arithmetic – Trichotomy of the reals + + \[ + \inferrule{A, B \mid -}{C} + \] + where \(\neg A, \neg B, C\) are \(x < c, x = c, x > c\) in some order.
        +
        ARRAYS_EXT +
        Arrays – Arrays extensionality + + \[ + + \inferrule{a \neq b\mid -} + {\mathit{select}(a,k)\neq\mathit{select}(b,k)} + \] + where \(k\) is the \(\texttt{ARRAY_DEQ_DIFF}\) skolem for `(a, b)`.
        +
        ARRAYS_READ_OVER_WRITE +
        Arrays – Read over write + + \[ + + \inferrule{i_1 \neq i_2\mid \mathit{select}(\mathit{store}(a,i_1,e),i_2)} + {\mathit{select}(\mathit{store}(a,i_1,e),i_2) = \mathit{select}(a,i_2)} + \]
        +
        ARRAYS_READ_OVER_WRITE_1 +
        Arrays – Read over write 1 + + \[ + + \inferrule{-\mid \mathit{select}(\mathit{store}(a,i,e),i)} + {\mathit{select}(\mathit{store}(a,i,e),i)=e} + \]
        +
        ARRAYS_READ_OVER_WRITE_CONTRA +
        Arrays – Read over write, contrapositive + + \[ + + \inferrule{\mathit{select}(\mathit{store}(a,i_2,e),i_1) \neq + \mathit{select}(a,i_1)\mid -}{i_1=i_2} + \]
        +
        ASSUME +
        Assumption (a leaf) + + \[ + + \inferrule{- \mid F}{F} + \] + This rule has special status, in that an application of assume is an + open leaf in a proof that is not (yet) justified.
        +
        BV_BITBLAST_STEP +
        Bit-vectors – Bitblast bit-vector constant, variable, and terms + + For constant and variables: + + \[ + + \inferrule{-\mid t}{t = \texttt{bitblast}(t)} + \] + For terms: + + \[ + + \inferrule{-\mid k(\texttt{bitblast}(t_1),\dots,\texttt{bitblast}(t_n))} + {k(\texttt{bitblast}(t_1),\dots,\texttt{bitblast}(t_n)) = + \texttt{bitblast}(t)} + \] + where \(t\) is \(k(t_1,\dots,t_n)\).
        +
        BV_EAGER_ATOM +
        Bit-vectors – Bit-vector eager atom + + \[ + + \inferrule{-\mid F}{F = F[0]} + \] + where \(F\) is of kind BITVECTOR_EAGER_ATOM.
        +
        CHAIN_RESOLUTION +
        Boolean – N-ary Resolution + + \[ + \inferrule{C_1 \dots C_n \mid (pol_1 \dots pol_{n-1}), (L_1 \dots L_{n-1})}{C} + \] + where + + + let \(C_1 \dots C_n\) be nodes viewed as clauses, as defined above + + let \(C_1 \diamond_{L,pol} C_2\) represent the resolution of + \(C_1\) with \(C_2\) with pivot \(L\) and polarity + \(pol\), as defined above + + let \(C_1' = C_1\), + + for each \(i > 1\), let \(C_i' = C_{i-1} \diamond_{L_{i-1}, pol_{i-1}} C_i'\) + + + Note the list of polarities and pivots are provided as s-expressions.
        +
        CNF_AND_NEG +
        Boolean – CNF – And Negative + + \[ + \inferrule{- \mid (F_1 \land \dots \land F_n)}{(F_1 \land \dots \land + F_n) \lor \neg F_1 \lor \dots \lor \neg F_n} + \]
        +
        CNF_AND_POS +
        Boolean – CNF – And Positive + + \[ + \inferrule{- \mid (F_1 \land \dots \land F_n), i}{\neg (F_1 \land \dots + \land F_n) \lor F_i} + \]
        +
        CNF_EQUIV_NEG1 +
        Boolean – CNF – Equiv Negative 1 + + \[ + \inferrule{- \mid F_1 = F_2}{(F_1 = F_2) \lor F_1 \lor F_2} + \]
        +
        CNF_EQUIV_NEG2 +
        Boolean – CNF – Equiv Negative 2 + + \[ + \inferrule{- \mid F_1 = F_2}{(F_1 = F_2) \lor \neg F_1 \lor \neg F_2} + \]
        +
        CNF_EQUIV_POS1 +
        Boolean – CNF – Equiv Positive 1 + + \[ + \inferrule{- \mid F_1 = F_2}{F_1 \neq F_2 \lor \neg F_1 \lor F_2} + \]
        +
        CNF_EQUIV_POS2 +
        Boolean – CNF – Equiv Positive 2 + + \[ + \inferrule{- \mid F_1 = F_2}{F_1 \neq F_2 \lor F_1 \lor \neg F_2} + \]
        +
        CNF_IMPLIES_NEG1 +
        Boolean – CNF – Implies Negative 1 + + \[ + \inferrule{- \mid F_1 \rightarrow F_2}{(F_1 \rightarrow F_2) \lor F_1} + \]
        +
        CNF_IMPLIES_NEG2 +
        Boolean – CNF – Implies Negative 2 + + \[ + \inferrule{- \mid F_1 \rightarrow F_2}{(F_1 \rightarrow F_2) \lor \neg F_2} + \]
        +
        CNF_IMPLIES_POS +
        Boolean – CNF – Implies Positive + + \[ + \inferrule{- \mid F_1 \rightarrow F_2}{\neg(F_1 \rightarrow F_2) \lor \neg F_1 + \lor F_2} + \]
        +
        CNF_ITE_NEG1 +
        Boolean – CNF – ITE Negative 1 + + \[ + \inferrule{- \mid (\ite{C}{F_1}{F_2})}{(\ite{C}{F_1}{F_2}) \lor \neg C + \lor \neg F_1} + \]
        +
        CNF_ITE_NEG2 +
        Boolean – CNF – ITE Negative 2 + + \[ + \inferrule{- \mid (\ite{C}{F_1}{F_2})}{(\ite{C}{F_1}{F_2}) \lor C \lor + \neg F_2} + \]
        +
        CNF_ITE_NEG3 +
        Boolean – CNF – ITE Negative 3 + + \[ + \inferrule{- \mid (\ite{C}{F_1}{F_2})}{(\ite{C}{F_1}{F_2}) \lor \neg F_1 + \lor \neg F_2} + \]
        +
        CNF_ITE_POS1 +
        Boolean – CNF – ITE Positive 1 + + \[ + \inferrule{- \mid (\ite{C}{F_1}{F_2})}{\neg(\ite{C}{F_1}{F_2}) \lor \neg + C \lor F_1} + \]
        +
        CNF_ITE_POS2 +
        Boolean – CNF – ITE Positive 2 + + \[ + \inferrule{- \mid (\ite{C}{F_1}{F_2})}{\neg(\ite{C}{F_1}{F_2}) \lor C + \lor F_2} + \]
        +
        CNF_ITE_POS3 +
        Boolean – CNF – ITE Positive 3 + + \[ + \inferrule{- \mid (\ite{C}{F_1}{F_2})}{\neg(\ite{C}{F_1}{F_2}) \lor F_1 + \lor F_2} + \]
        +
        CNF_OR_NEG +
        Boolean – CNF – Or Negative + + \[ + \inferrule{- \mid (F_1 \lor \dots \lor F_n), i}{(F_1 \lor \dots \lor F_n) + \lor \neg F_i} + \]
        +
        CNF_OR_POS +
        Boolean – CNF – Or Positive + + \[ + \inferrule{- \mid (F_1 \lor \dots \lor F_n)}{\neg(F_1 \lor \dots \lor + F_n) \lor F_1 \lor \dots \lor F_n} + \]
        +
        CNF_XOR_NEG1 +
        Boolean – CNF – XOR Negative 1 + + \[ + \inferrule{- \mid F_1 \xor F_2}{(F_1 \xor F_2) \lor \neg F_1 \lor F_2} + \]
        +
        CNF_XOR_NEG2 +
        Boolean – CNF – XOR Negative 2 + + \[ + \inferrule{- \mid F_1 \xor F_2}{(F_1 \xor F_2) \lor F_1 \lor \neg F_2} + \]
        +
        CNF_XOR_POS1 +
        Boolean – CNF – XOR Positive 1 + + \[ + \inferrule{- \mid F_1 \xor F_2}{\neg(F_1 \xor F_2) \lor F_1 \lor F_2} + \]
        +
        CNF_XOR_POS2 +
        Boolean – CNF – XOR Positive 2 + + \[ + \inferrule{- \mid F_1 \xor F_2}{\neg(F_1 \xor F_2) \lor \neg F_1 \lor + \neg F_2} + \]
        +
        CONCAT_CONFLICT +
        Strings – Core rules – Concatenation conflict + + \[ + + \inferrule{(c_1\cdot t) = (c_2 \cdot s)\mid b}{\bot} + \] + where \(b\) indicates if the direction is reversed, \(c_1,\,c_2\) + are constants such that \(\texttt{Word::splitConstant}(c_1,c_2, + \mathit{index},b)\) is null, in other words, neither is a prefix of the + other.
        +
        CONCAT_CONFLICT_DEQ +
        Strings – Core rules – Concatenation conflict for disequal characters + + \[ + + \inferrule{(t_1\cdot t) = (s_1 \cdot s), t_1 \neq s_1 \mid b}{\bot} + \] + where \(t_1\) and \(s_1\) are constants of length one, or otherwise one side + of the equality is the empty sequence and \(t_1\) or \(s_1\) corresponding to + that side is the empty sequence.
        +
        CONCAT_CPROP +
        Strings – Core rules – Concatenation constant propagation + + \[ + + \inferrule{(t_1\cdot w_1\cdot t_2) = (w_2 \cdot s),\, + \mathit{len}(t_1) \neq 0\mid \bot}{(t_1 = t_3\cdot r)} + \] + where \(w_1,\,w_2\) are words, \(t_3\) is + \(\mathit{pre}(w_2,p)\), \(p\) is + \(\texttt{Word::overlap}(\mathit{suf}(w_2,1), w_1)\), and \(r\) is + the purification skolem for + \(\mathit{suf}(t_1,\mathit{len}(w_3))\).
        +
        CONCAT_CSPLIT +
        Strings – Core rules – Concatenation split for constants + + \[ + + \inferrule{(t_1\cdot t_2) = (c \cdot s_2),\, + \mathit{len}(t_1) \neq 0\mid \bot}{(t_1 = c\cdot r)} + \] + where \(r\) is the purification skolem for \(\mathit{suf}(t_1,1)\).
        +
        CONCAT_EQ +
        Strings – Core rules – Concatenation equality + + \[ + + \inferrule{(t_1\cdot\ldots \cdot t_n \cdot t) = (t_1 \cdot\ldots + \cdot t_n\cdot s)\mid b}{t = s} + \] + where \(\cdot\) stands for string concatenation and \(b\) indicates + if the direction is reversed.
        +
        CONCAT_LPROP +
        Strings – Core rules – Concatenation length propagation + + \[ + + \inferrule{(t_1\cdot t_2) = (s_1 \cdot s_2),\, + \mathit{len}(t_1) > \mathit{len}(s_1)\mid \bot}{(t_1 = s_1\cdot r)} + \] + where \(r\) is the purification Skolem for + \(\mathit{ite}( + \mathit{len}(t_1) >= \mathit{len}(s_1), + \mathit{suf}(t_1,\mathit{len}(s_1)), + \mathit{suf}(s_1,\mathit{len}(t_1)))\).
        +
        CONCAT_SPLIT +
        Strings – Core rules – Concatenation split + + \[ + + \inferruleSC{(t_1\cdot t_2) = (s_1 \cdot s_2),\, + \mathit{len}(t_1) \neq \mathit{len}(s_1)\mid b}{((t_1 = s_1\cdot r) + \vee (s_1 = t_1\cdot r)) \wedge r \neq \epsilon \wedge \mathit{len}(r)>0}{if $b=\bot$} + \] + where \(r\) is the purification skolem for + \(\mathit{ite}( + \mathit{len}(t_1) >= \mathit{len}(s_1), + \mathit{suf}(t_1,\mathit{len}(s_1)), + \mathit{suf}(s_1,\mathit{len}(t_1)))\) + and \(\epsilon\) is the empty string (or sequence).
        +
        CONCAT_UNIFY +
        Strings – Core rules – Concatenation unification + + \[ + + \inferrule{(t_1\cdot t_2) = (s_1 \cdot s_2),\, \mathit{len}(t_1) = + \mathit{len}(s_1)\mid \bot}{t_1 = s_1} + \] + Alternatively for the reverse: + + \[ + + \inferrule{(t_1\cdot t_2) = (s_1 \cdot s_2),\, \mathit{len}(t_2) = + \mathit{len}(s_2)\mid \top}{t_2 = s_2} + \]
        +
        CONG +
        Equality – Congruence + + \[ + + \inferrule{t_1=s_1,\dots,t_n=s_n\mid k, f?}{k(f?, t_1,\dots, t_n) = + k(f?, s_1,\dots, s_n)} + \] + where \(k\) is the application kind.
        +
        CONTRA +
        Boolean – Contradiction + + \[ + \inferrule{F, \neg F \mid -}{\bot} + \]
        +
        DRAT_REFUTATION +
        DRAT Refutation + + \[ + \inferrule{F_1 \dots F_n \mid D, P}{\bot} + \] + where \(F_1 \dots F_n\) correspond to the clauses in the + DIMACS file given by filename `D` and `P` is a filename of a file storing + a DRAT proof.
        +
        DSL_REWRITE +
        Builtin theory – DSL rewrite + + \[ + \inferrule{F_1 \dots F_n \mid id t_1 \dots t_n}{F} + \] + where `id` is a ProofRewriteRule whose definition in the + RARE DSL is \(\forall x_1 \dots x_n.
        +
        DT_CLASH +
        Datatypes – Clash + + \[ + + \inferruleSC{\mathit{is}_{C_i}(t), \mathit{is}_{C_j}(t)\mid -}{\bot} + {if $i\neq j$} + \]
        +
        DT_SPLIT +
        Datatypes – Split + + \[ + + \inferrule{-\mid t}{\mathit{is}_{C_1}(t)\vee\cdots\vee\mathit{is}_{C_n}(t)} + \] + where \(C_1,\dots,C_n\) are all the constructors of the type of \(t\).
        +
        ENCODE_EQ_INTRO +
        Builtin theory – Encode equality introduction + + \[ + \inferrule{- \mid t}{t=t'} + \] + where \(t\) and \(t'\) are equivalent up to their encoding in an + external proof format.
        +
        EQ_RESOLVE +
        Boolean – Equality resolution + + \[ + \inferrule{F_1, (F_1 = F_2) \mid -}{F_2} + \] + Note this can optionally be seen as a macro for + EQUIV_ELIM1 <cvc5.EQUIV_ELIM1> + + RESOLUTION <cvc5.RESOLUTION>.
        +
        EQUIV_ELIM1 +
        Boolean – Equivalence elimination version 1 + + \[ + \inferrule{F_1 = F_2 \mid -}{\neg F_1 \lor F_2} + \]
        +
        EQUIV_ELIM2 +
        Boolean – Equivalence elimination version 2 + + \[ + \inferrule{F_1 = F_2 \mid -}{F_1 \lor \neg F_2} + \]
        +
        EVALUATE +
        Builtin theory – Evaluate + + \[ + \inferrule{- \mid t}{t = \texttt{evaluate}(t)} + \] + where \(\texttt{evaluate}\) is implemented by calling the method + \(\texttt{Evalutor::evaluate}\) in :cvc5src:`theory/evaluator.h` with an + empty substitution.
        +
        FACTORING +
        Boolean – Factoring + + \[ + \inferrule{C_1 \mid -}{C_2} + \] + where \(C_2\) is the clause \(C_1\), but every occurrence of a literal + after its first occurrence is omitted.
        +
        FALSE_ELIM +
        Equality – False elim + + \[ + + \inferrule{F=\bot\mid -}{\neg F} + \]
        +
        FALSE_INTRO +
        Equality – False intro + + \[ + + \inferrule{\neg F\mid -}{F = \bot} + \]
        +
        HO_APP_ENCODE +
        Equality – Higher-order application encoding + + \[ + + \inferrule{-\mid t}{t=t'} + \] + where `t'` is the higher-order application that is equivalent to `t`, + as implemented by uf.TheoryUfRewriter.getHoApplyForApplyUf.
        +
        HO_CONG +
        Equality – Higher-order congruence + + \[ + + \inferrule{f=g, t_1=s_1,\dots,t_n=s_n\mid k}{k(f, t_1,\dots, t_n) = + k(g, s_1,\dots, s_n)} + \] + Notice that this rule is only used when the application kind \(k\) is + either `cvc5.Kind.APPLY_UF` or `cvc5.Kind.HO_APPLY`.
        +
        IMPLIES_ELIM +
        Boolean – Implication elimination + + \[ + \inferrule{F_1 \rightarrow F_2 \mid -}{\neg F_1 \lor F_2} + \]
        +
        INSTANTIATE +
        Quantifiers – Instantiation + + \[ + + \inferrule{\forall x_1\dots x_n.\> F\mid (t_1 \dots t_n), (id\, (t)?)?} + {F\{x_1\mapsto t_1,\dots,x_n\mapsto t_n\}} + \] + The list of terms to instantiate \((t_1 \dots t_n)\) is provided as + an s-expression as the first argument.
        +
        INT_TIGHT_LB +
        Arithmetic – Tighten strict integer lower bounds + + \[ + \inferrule{i > c \mid -}{i \geq \lceil c \rceil} + \] + where \(i\) has integer type.
        +
        INT_TIGHT_UB +
        Arithmetic – Tighten strict integer upper bounds + + \[ + \inferrule{i < c \mid -}{i \leq \lfloor c \rfloor} + \] + where \(i\) has integer type.
        +
        ITE_ELIM1 +
        Boolean – ITE elimination version 1 + + \[ + \inferrule{(\ite{C}{F_1}{F_2}) \mid -}{\neg C \lor F_1} + \]
        +
        ITE_ELIM2 +
        Boolean – ITE elimination version 2 + + \[ + \inferrule{(\ite{C}{F_1}{F_2}) \mid -}{C \lor F_2} + \]
        +
        ITE_EQ +
        Processing rules – If-then-else equivalence + + \[ + \inferrule{- \mid \ite{C}{t_1}{t_2}}{\ite{C}{((\ite{C}{t_1}{t_2}) = t_1)}{((\ite{C}{t_1}{t_2}) = t_2)}} + \]
        +
        LFSC_RULE +
        External – LFSC + + Place holder for LFSC rules.
        +
        MACRO_ARITH_SCALE_SUM_UB +
        Arithmetic – Adding inequalities + + An arithmetic literal is a term of the form \(p \diamond c\) where + \(\diamond \in \{ <, \leq, =, \geq, > \}\), \(p\) a + polynomial and \(c\) a rational constant.
        +
        MACRO_BV_BITBLAST +
        Bit-vectors – (Macro) Bitblast + + \[ + + \inferrule{-\mid t}{t = \texttt{bitblast}(t)} + \] + where \(\texttt{bitblast}\) represents the result of the bit-blasted term as + a bit-vector consisting of the output bits of the bit-blasted circuit + representation of the term.
        +
        MACRO_RESOLUTION +
        Boolean – N-ary Resolution + Factoring + Reordering + + \[ + \inferrule{C_1 \dots C_n \mid C, pol_1,L_1 \dots pol_{n-1},L_{n-1}}{C} + \] + where + + + let \(C_1 \dots C_n\) be nodes viewed as clauses, as defined in + RESOLUTION <cvc5.RESOLUTION> + + let \(C_1 \diamond_{L,\mathit{pol}} C_2\) represent the resolution of + \(C_1\) with \(C_2\) with pivot \(L\) and polarity + \(pol\), as defined in + RESOLUTION <cvc5.RESOLUTION> + + let \(C_1'\) be equal, in its set representation, to \(C_1\), + + for each \(i > 1\), let \(C_i'\) be equal, in its set + representation, to \(C_{i-1} \diamond_{L_{i-1},\mathit{pol}_{i-1}} + C_i'\) + + + The result of the chain resolution is \(C\), which is equal, in its set + representation, to \(C_n'\)
        +
        MACRO_RESOLUTION_TRUST +
        Boolean – N-ary Resolution + Factoring + Reordering unchecked + + Same as + MACRO_RESOLUTION <cvc5.MACRO_RESOLUTION>, but + not checked by the internal proof checker.
        +
        MACRO_REWRITE +
        Builtin theory – Rewrite + + \[ + \inferrule{- \mid t, idr}{t = \texttt{rewrite}_{idr}(t)} + \] + where \(idr\) is a MethodId identifier, which determines the kind of + rewriter to apply, e.g.
        +
        MACRO_SR_EQ_INTRO +
        Builtin theory – Substitution + Rewriting equality introduction + + In this rule, we provide a term \(t\) and conclude that it is equal to + its rewritten form under a (proven) substitution.
        +
        MACRO_SR_PRED_ELIM +
        Builtin theory – Substitution + Rewriting predicate elimination + + \[ + \inferrule{F, F_1 \dots F_n \mid (ids (ida + (idr)?)?)?}{\texttt{rewrite}_{idr}(F \circ \sigma_{ids, ida}(F_n) \circ + \cdots \circ \sigma_{ids, ida}(F_1))} + \] + where \(ids\) and \(idr\) are method identifiers.
        +
        MACRO_SR_PRED_INTRO +
        Builtin theory – Substitution + Rewriting predicate introduction + + In this rule, we provide a formula \(F\) and conclude it, under the + condition that it rewrites to true under a proven substitution.
        +
        MACRO_SR_PRED_TRANSFORM +
        Builtin theory – Substitution + Rewriting predicate elimination + + \[ + \inferrule{F, F_1 \dots F_n \mid G, (ids (ida (idr)?)?)?}{G} + \] + where + + \[ + \texttt{rewrite}_{idr}(F \circ \sigma_{ids, ida}(F_n) \circ\cdots \circ \sigma_{ids, ida}(F_1)) =\\ \texttt{rewrite}_{idr}(G \circ \sigma_{ids, ida}(F_n) \circ \cdots \circ \sigma_{ids, ida}(F_1)) + \] + More generally, this rule also holds when: + \(\texttt{Rewriter::rewrite}(\texttt{toOriginal}(F')) = \texttt{Rewriter::rewrite}(\texttt{toOriginal}(G'))\) + where \(F'\) and \(G'\) are the result of each side of the equation + above.
        +
        MACRO_STRING_INFERENCE +
        Strings – (Macro) String inference + + \[ + + \inferrule{?\mid F,\mathit{id},\mathit{isRev},\mathit{exp}}{F} + \] + used to bookkeep an inference that has not yet been converted via + \(\texttt{strings::InferProofCons::convert}\).
        +
        MODUS_PONENS +
        Boolean – Modus Ponens + + \[ + \inferrule{F_1, (F_1 \rightarrow F_2) \mid -}{F_2} + \] + Note this can optionally be seen as a macro for + IMPLIES_ELIM <cvc5.IMPLIES_ELIM> + + RESOLUTION <cvc5.RESOLUTION>.
        +
        NARY_CONG +
        Equality – N-ary Congruence + + \[ + + \inferrule{t_1=s_1,\dots,t_n=s_n\mid k}{k(t_1,\dots, t_n) = + k(s_1,\dots, s_n)} + \] + where \(k\) is the application kind.
        +
        NOT_AND +
        Boolean – De Morgan – Not And + + \[ + \inferrule{\neg(F_1 \land \dots \land F_n) \mid -}{\neg F_1 \lor \dots + \lor \neg F_n} + \]
        +
        NOT_EQUIV_ELIM1 +
        Boolean – Not Equivalence elimination version 1 + + \[ + \inferrule{F_1 \neq F_2 \mid -}{F_1 \lor F_2} + \]
        +
        NOT_EQUIV_ELIM2 +
        Boolean – Not Equivalence elimination version 2 + + \[ + \inferrule{F_1 \neq F_2 \mid -}{\neg F_1 \lor \neg F_2} + \]
        +
        NOT_IMPLIES_ELIM1 +
        Boolean – Not Implication elimination version 1 + + \[ + \inferrule{\neg(F_1 \rightarrow F_2) \mid -}{F_1} + \]
        +
        NOT_IMPLIES_ELIM2 +
        Boolean – Not Implication elimination version 2 + + \[ + \inferrule{\neg(F_1 \rightarrow F_2) \mid -}{\neg F_2} + \]
        +
        NOT_ITE_ELIM1 +
        Boolean – Not ITE elimination version 1 + + \[ + \inferrule{\neg(\ite{C}{F_1}{F_2}) \mid -}{\neg C \lor \neg F_1} + \]
        +
        NOT_ITE_ELIM2 +
        Boolean – Not ITE elimination version 2 + + \[ + \inferrule{\neg(\ite{C}{F_1}{F_2}) \mid -}{C \lor \neg F_2} + \]
        +
        NOT_NOT_ELIM +
        Boolean – Double negation elimination + + \[ + \inferrule{\neg (\neg F) \mid -}{F} + \]
        +
        NOT_OR_ELIM +
        Boolean – Not Or elimination + + \[ + \inferrule{\neg(F_1 \lor \dots \lor F_n) \mid i}{\neg F_i} + \]
        +
        NOT_XOR_ELIM1 +
        Boolean – Not XOR elimination version 1 + + \[ + \inferrule{\neg(F_1 \xor F_2) \mid -}{F_1 \lor \neg F_2} + \]
        +
        NOT_XOR_ELIM2 +
        Boolean – Not XOR elimination version 2 + + \[ + \inferrule{\neg(F_1 \xor F_2) \mid -}{\neg F_1 \lor F_2} + \]
        +
        QUANT_VAR_REORDERING +
        Quantifiers – Variable reordering + + \[ + + \inferrule{-\mid (\forall X.\> F) = (\forall Y.\> F)} + {(\forall X.\> F) = (\forall Y.\> F)} + \] + where \(Y\) is a reordering of \(X\).
        +
        RE_INTER +
        Strings – Regular expressions – Intersection + + \[ + + \inferrule{t\in R_1,\,t\in R_2\mid -}{t\in \mathit{re.inter}(R_1,R_2)} + \]
        +
        RE_UNFOLD_NEG +
        Strings – Regular expressions – Negative Unfold + + \[ + + \inferrule{t \not \in \mathit{re}.\text{*}(R) \mid -}{t \neq \ \epsilon \ \wedge \forall L.
        +
        RE_UNFOLD_NEG_CONCAT_FIXED +
        Strings – Regular expressions – Unfold negative concatenation, fixed + + ..
        +
        RE_UNFOLD_POS +
        Strings – Regular expressions – Positive Unfold + + \[ + + \inferrule{t\in R\mid -}{F} + \] + where \(F\) corresponds to the one-step unfolding of the premise.
        +
        REFL +
        Equality – Reflexivity + + \[ + + \inferrule{-\mid t}{t = t} + \]
        +
        REORDERING +
        Boolean – Reordering + + \[ + \inferrule{C_1 \mid C_2}{C_2} + \] + where + the multiset representations of \(C_1\) and \(C_2\) are the same.
        +
        RESOLUTION +
        Boolean – Resolution + + \[ + \inferrule{C_1, C_2 \mid pol, L}{C} + \] + where + + + \(C_1\) and \(C_2\) are nodes viewed as clauses, i.e., either an + OR node with each children viewed as a literal or a node viewed as a + literal.
        +
        SAT_EXTERNAL_PROVE +
        SAT external prove Refutation + + \[ + \inferrule{F_1 \dots F_n \mid D}{\bot} + \] + where \(F_1 \dots F_n\) correspond to the input clauses in the + DIMACS file `D`.
        +
        SAT_REFUTATION +
        SAT Refutation for assumption-based unsat cores + + \[ + \inferrule{F_1 \dots F_n \mid -}{\bot} + \] + where \(F_1 \dots F_n\) correspond to the unsat core determined by the + SAT solver.
        +
        SCOPE +
        Scope (a binder for assumptions) + + \[ + + \inferruleSC{F \mid F_1 \dots F_n}{(F_1 \land \dots \land F_n) + \Rightarrow F}{if $F\neq\bot$} \textrm{ or } \inferruleSC{F \mid F_1 + \dots F_n}{\neg (F_1 \land \dots \land F_n)}{if $F=\bot$} + \] + This rule has a dual purpose with + ASSUME <cvc5.ASSUME>.
        +
        SETS_EXT +
        Sets – Sets extensionality + + \[ + + \inferrule{a \neq b\mid -} + {\mathit{set.member}(k,a)\neq\mathit{set.member}(k,b)} + \] + where \(k\) is the \(\texttt{SETS_DEQ_DIFF}\) skolem for `(a, b)`.
        +
        SETS_FILTER_DOWN +
        Sets – Sets filter down + + \[ + + \inferrule{\mathit{set.member}(x,\mathit{set.filter}(P, a))\mid -} + {\mathit{set.member}(x,a) \wedge P(x)} + \]
        +
        SETS_FILTER_UP +
        Sets – Sets filter up + + \[ + + \inferrule{\mathit{set.member}(x,a)\mid P} + {\mathit{set.member}(x, \mathit{set.filter}(P, a)) = P(x)} + \]
        +
        SETS_SINGLETON_INJ +
        Sets – Singleton injectivity + + \[ + + \inferrule{\mathit{set.singleton}(t) = \mathit{set.singleton}(s)\mid -}{t=s} + \]
        +
        SKOLEM_INTRO +
        Quantifiers – Skolem introduction + + \[ + + \inferrule{-\mid k}{k = t} + \] + where \(t\) is the unpurified form of skolem \(k\).
        +
        SKOLEMIZE +
        Quantifiers – Skolemization + + \[ + + \inferrule{\neg (\forall x_1\dots x_n.\> F)\mid -}{\neg F\sigma} + \] + where \(\sigma\) maps \(x_1,\dots,x_n\) to their representative + skolems, which are skolems \(k_1,\dots,k_n\).
        +
        SPLIT +
        Boolean – Split + + \[ + \inferrule{- \mid F}{F \lor \neg F} + \]
        +
        STRING_CODE_INJ +
        Strings – Code points + + \[ + + \inferrule{-\mid t,s}{\mathit{to\_code}(t) = -1 \vee \mathit{to\_code}(t) \neq + \mathit{to\_code}(s) \vee t = s} + \]
        +
        STRING_DECOMPOSE +
        Strings – Core rules – String decomposition + + \[ + + \inferrule{\mathit{len}(t) \geq n\mid \bot}{t = w_1\cdot w_2 \wedge + \mathit{len}(w_1) = n} + \] + where \(w_1\) is the purification skolem for \(\mathit{pre}(t,n)\) + and \(w_2\) is the purification skolem for \(\mathit{suf}(t,n)\).
        +
        STRING_EAGER_REDUCTION +
        Strings – Extended functions – Eager reduction + + \[ + + \inferrule{-\mid t}{R} + \] + where \(R\) is \(\texttt{TermRegistry::eagerReduce}(t)\).
        +
        STRING_EXT +
        Strings – Extensionality + + \[ + + \inferrule{s \neq t\mid -} + {\mathit{seq.len}(s) \neq \mathit{seq.len}(t) \vee (\mathit{seq.nth}(s,k)\neq\mathit{set.nth}(t,k) \wedge 0 \leq k \wedge k < \mathit{seq.len}(s))} + \] + where \(s,t\) are terms of sequence type, \(k\) is the + \(\texttt{STRINGS_DEQ_DIFF}\) skolem for \(s,t\).
        +
        STRING_LENGTH_NON_EMPTY +
        Strings – Core rules – Length non-empty + + \[ + + \inferrule{t\neq \epsilon\mid -}{\mathit{len}(t) \neq 0} + \]
        +
        STRING_LENGTH_POS +
        Strings – Core rules – Length positive + + \[ + + \inferrule{-\mid t}{(\mathit{len}(t) = 0\wedge t= \epsilon)\vee \mathit{len}(t) + > 0} + \]
        +
        STRING_REDUCTION +
        Strings – Extended functions – Reduction + + \[ + + \inferrule{-\mid t}{R\wedge t = w} + \] + where \(w\) is \(\texttt{StringsPreprocess::reduce}(t, R, + \dots)\).
        +
        STRING_SEQ_UNIT_INJ +
        Strings – Sequence unit + + \[ + + \inferrule{\mathit{unit}(x) = \mathit{unit}(y)\mid -}{x = y} + \] + Also applies to the case where \(\mathit{unit}(y)\) is a constant + sequence of length one.
        +
        SUBS +
        Builtin theory – Substitution + + \[ + + \inferrule{F_1 \dots F_n \mid t, ids?}{t = t \circ \sigma_{ids}(F_n) + \circ \cdots \circ \sigma_{ids}(F_1)} + \] + where \(\sigma_{ids}(F_i)\) are substitutions, which notice are applied + in reverse order.
        +
        SYMM +
        Equality – Symmetry + + \[ + + \inferrule{t_1 = t_2\mid -}{t_2 = t_1} + \] + or + + \[ + + \inferrule{t_1 \neq t_2\mid -}{t_2 \neq t_1} + \]
        +
        THEORY_REWRITE +
        Other theory rewrite rules + + \[ + \inferrule{- \mid id, t = t'}{t = t'} + \] + where `id` is the ProofRewriteRule of the theory rewrite + rule which transforms \(t\) to \(t'\).
        +
        TRANS +
        Equality – Transitivity + + \[ + + \inferrule{t_1=t_2,\dots,t_{n-1}=t_n\mid -}{t_1 = t_n} + \]
        +
        TRUE_ELIM +
        Equality – True elim + + \[ + + \inferrule{F=\top\mid -}{F} + \]
        +
        TRUE_INTRO +
        Equality – True intro + + \[ + + \inferrule{F\mid -}{F = \top} + \]
        +
        TRUST +
        Trusted rule + + \[ + \inferrule{F_1 \dots F_n \mid tid, F, ...}{F} + \] + where \(tid\) is an identifier and \(F\) is a formula.
        +
        TRUST_THEORY_REWRITE +
        Trusted rules – Theory rewrite + + \[ + \inferrule{- \mid F, tid, rid}{F} + \] + where \(F\) is an equality of the form \(t = t'\) where \(t'\) + is obtained by applying the kind of rewriting given by the method + identifier \(rid\), which is one of: + RW_REWRITE_THEORY_PRE, RW_REWRITE_THEORY_POST, + RW_REWRITE_EQ_EXT.
        +
        UNKNOWN +
        External – Alethe + + Place holder for Alethe rules.
        +
        XOR_ELIM1 +
        Boolean – XOR elimination version 1 + + \[ + \inferrule{F_1 \xor F_2 \mid -}{F_1 \lor F_2} + \]
        +
        XOR_ELIM2 +
        Boolean – XOR elimination version 2 + + \[ + \inferrule{F_1 \xor F_2 \mid -}{\neg F_1 \lor \neg F_2} + \]
        +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Summary

        + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        All Methods Static Methods Instance Methods Concrete Methods 
        Modifier and TypeMethodDescription
        static ProofRulefromInt​(int value) 
        intgetValue() 
        static ProofRulevalueOf​(java.lang.String name) +
        Returns the enum constant of this type with the specified name.
        +
        static ProofRule[]values() +
        Returns an array containing the constants of this enum type, in +the order they are declared.
        +
        +
          +
        • + + +

          Methods inherited from class java.lang.Enum

          +clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
        • +
        +
          +
        • + + +

          Methods inherited from class java.lang.Object

          +getClass, notify, notifyAll, wait, wait, wait
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Enum Constant Detail

        + + + +
          +
        • +

          ASSUME

          +
          public static final ProofRule ASSUME
          +
          Assumption (a leaf) + + \[ + + \inferrule{- \mid F}{F} + \] + This rule has special status, in that an application of assume is an + open leaf in a proof that is not (yet) justified. An assume leaf is + analogous to a free variable in a term, where we say "F is a free + assumption in proof P" if it contains an application of F that is not + bound by SCOPE <cvc5.SCOPE> (see below).
          +
        • +
        + + + +
          +
        • +

          SCOPE

          +
          public static final ProofRule SCOPE
          +
          Scope (a binder for assumptions) + + \[ + + \inferruleSC{F \mid F_1 \dots F_n}{(F_1 \land \dots \land F_n) + \Rightarrow F}{if $F\neq\bot$} \textrm{ or } \inferruleSC{F \mid F_1 + \dots F_n}{\neg (F_1 \land \dots \land F_n)}{if $F=\bot$} + \] + This rule has a dual purpose with + ASSUME <cvc5.ASSUME>. It is a way to close + assumptions in a proof. We require that \(F_1 \dots F_n\) are free + assumptions in P and say that \(F_1 \dots F_n\) are not free in + (SCOPE P). In other words, they are bound by this application. For + example, the proof node: + (SCOPE (ASSUME F) :args F) + has the conclusion \(F \Rightarrow F\) and has no free assumptions. + More generally, a proof with no free assumptions always concludes a valid + formula.
          +
        • +
        + + + +
          +
        • +

          SUBS

          +
          public static final ProofRule SUBS
          +
          Builtin theory – Substitution + + \[ + + \inferrule{F_1 \dots F_n \mid t, ids?}{t = t \circ \sigma_{ids}(F_n) + \circ \cdots \circ \sigma_{ids}(F_1)} + \] + where \(\sigma_{ids}(F_i)\) are substitutions, which notice are applied + in reverse order. Notice that \(ids\) is a MethodId identifier, which + determines how to convert the formulas \(F_1 \dots F_n\) into + substitutions. It is an optional argument, where by default the premises + are equalities of the form `(= x y)` and converted into substitutions + \(x\mapsto y\).
          +
        • +
        + + + +
          +
        • +

          MACRO_REWRITE

          +
          public static final ProofRule MACRO_REWRITE
          +
          Builtin theory – Rewrite + + \[ + \inferrule{- \mid t, idr}{t = \texttt{rewrite}_{idr}(t)} + \] + where \(idr\) is a MethodId identifier, which determines the kind of + rewriter to apply, e.g. Rewriter.rewrite.
          +
        • +
        + + + +
          +
        • +

          EVALUATE

          +
          public static final ProofRule EVALUATE
          +
          Builtin theory – Evaluate + + \[ + \inferrule{- \mid t}{t = \texttt{evaluate}(t)} + \] + where \(\texttt{evaluate}\) is implemented by calling the method + \(\texttt{Evalutor::evaluate}\) in :cvc5src:`theory/evaluator.h` with an + empty substitution. + Note this is equivalent to: (REWRITE t {@link MethodId#RW_EVALUATE)}.
          +
        • +
        + + + +
          +
        • +

          ACI_NORM

          +
          public static final ProofRule ACI_NORM
          +
          Builtin theory – associative/commutative/idempotency/identity normalization + + \[ + \inferrule{- \mid t = s}{t = s} + \] + where \(\texttt{expr::isACNorm(t, s)} = \top\). For details, see + :cvc5src:`expr/nary_term_util.h`. + This method normalizes currently based on two kinds of operators: + (1) those that are associative, commutative, idempotent, and have an + identity element (examples are or, and, bvand), + (2) those that are associative and have an identity element (examples + are str.++, re.++).
          +
        • +
        + + + +
          +
        • +

          MACRO_SR_EQ_INTRO

          +
          public static final ProofRule MACRO_SR_EQ_INTRO
          +
          Builtin theory – Substitution + Rewriting equality introduction + + In this rule, we provide a term \(t\) and conclude that it is equal to + its rewritten form under a (proven) substitution. + + \[ + \inferrule{F_1 \dots F_n \mid t, (ids (ida (idr)?)?)?}{t = + \texttt{rewrite}_{idr}(t \circ \sigma_{ids, ida}(F_n) \circ \cdots \circ + \sigma_{ids, ida}(F_1))} + \] + In other words, from the point of view of Skolem forms, this rule + transforms \(t\) to \(t'\) by standard substitution + rewriting. + + The arguments \(ids\), \(ida\) and \(idr\) are optional and + specify the identifier of the substitution, the substitution application + and rewriter respectively to be used. For details, see + :cvc5src:`theory/builtin/proof_checker.h`.
          +
        • +
        + + + +
          +
        • +

          MACRO_SR_PRED_INTRO

          +
          public static final ProofRule MACRO_SR_PRED_INTRO
          +
          Builtin theory – Substitution + Rewriting predicate introduction + + In this rule, we provide a formula \(F\) and conclude it, under the + condition that it rewrites to true under a proven substitution. + + \[ + \inferrule{F_1 \dots F_n \mid F, (ids (ida (idr)?)?)?}{F} + \] + where \(\texttt{rewrite}_{idr}(F \circ \sigma_{ids, ida}(F_n) \circ + \cdots \circ \sigma_{ids, ida}(F_1)) = \top\) and \(ids\) and + \(idr\) are method identifiers. + + More generally, this rule also holds when + \(\texttt{Rewriter::rewrite}(\texttt{toOriginal}(F')) = \top\) + where \(F'\) is the result of the left hand side of the equality above. + Here, notice that we apply rewriting on the original form of \(F'\), + meaning that this rule may conclude an \(F\) whose Skolem form is + justified by the definition of its (fresh) Skolem variables. For example, + this rule may justify the conclusion \(k = t\) where \(k\) is the + purification Skolem for \(t\), e.g. where the original form of + \(k\) is \(t\). + + Furthermore, notice that the rewriting and substitution is applied only + within the side condition, meaning the rewritten form of the original form + of \(F\) does not escape this rule.
          +
        • +
        + + + +
          +
        • +

          MACRO_SR_PRED_ELIM

          +
          public static final ProofRule MACRO_SR_PRED_ELIM
          +
          Builtin theory – Substitution + Rewriting predicate elimination + + \[ + \inferrule{F, F_1 \dots F_n \mid (ids (ida + (idr)?)?)?}{\texttt{rewrite}_{idr}(F \circ \sigma_{ids, ida}(F_n) \circ + \cdots \circ \sigma_{ids, ida}(F_1))} + \] + where \(ids\) and \(idr\) are method identifiers. + + We rewrite only on the Skolem form of \(F\), similar to + MACRO_SR_EQ_INTRO <cvc5.MACRO_SR_EQ_INTRO>.
          +
        • +
        + + + +
          +
        • +

          MACRO_SR_PRED_TRANSFORM

          +
          public static final ProofRule MACRO_SR_PRED_TRANSFORM
          +
          Builtin theory – Substitution + Rewriting predicate elimination + + \[ + \inferrule{F, F_1 \dots F_n \mid G, (ids (ida (idr)?)?)?}{G} + \] + where + + \[ + \texttt{rewrite}_{idr}(F \circ \sigma_{ids, ida}(F_n) \circ\cdots \circ \sigma_{ids, ida}(F_1)) =\\ \texttt{rewrite}_{idr}(G \circ \sigma_{ids, ida}(F_n) \circ \cdots \circ \sigma_{ids, ida}(F_1)) + \] + More generally, this rule also holds when: + \(\texttt{Rewriter::rewrite}(\texttt{toOriginal}(F')) = \texttt{Rewriter::rewrite}(\texttt{toOriginal}(G'))\) + where \(F'\) and \(G'\) are the result of each side of the equation + above. Here, original forms are used in a similar manner to + MACRO_SR_PRED_INTRO <cvc5.MACRO_SR_PRED_INTRO> + above.
          +
        • +
        + + + +
          +
        • +

          ENCODE_EQ_INTRO

          +
          public static final ProofRule ENCODE_EQ_INTRO
          +
          Builtin theory – Encode equality introduction + + \[ + \inferrule{- \mid t}{t=t'} + \] + where \(t\) and \(t'\) are equivalent up to their encoding in an + external proof format. + + More specifically, it is the case that + \(\texttt{RewriteDbNodeConverter::postConvert}(t) = t;\). + This conversion method for instance may drop user patterns from quantified + formulas or change the representation of \(t\) in a way that is a + no-op in external proof formats. + + Note this rule can be treated as a + REFL <cvc5.REFL> when appropriate in + external proof formats.
          +
        • +
        + + + +
          +
        • +

          DSL_REWRITE

          +
          public static final ProofRule DSL_REWRITE
          +
          Builtin theory – DSL rewrite + + \[ + \inferrule{F_1 \dots F_n \mid id t_1 \dots t_n}{F} + \] + where `id` is a ProofRewriteRule whose definition in the + RARE DSL is \(\forall x_1 \dots x_n. (G_1 \wedge G_n) \Rightarrow G\) + where for \(i=1, \dots n\), we have that \(F_i = \sigma(G_i)\) + and \(F = \sigma(G)\) where \(\sigma\) is the substitution + \(\{x_1\mapsto t_1,\dots,x_n\mapsto t_n\}\). + + Notice that the application of the substitution takes into account the + possible list semantics of variables \(x_1 \ldots x_n\). If + \(x_i\) is a variable with list semantics, then \(t_i\) denotes a + list of terms. The substitution implemented by + \(\texttt{expr::narySubstitute}\) (for details, see + :cvc5src:`expr/nary_term_util.h`) which replaces each \(x_i\) with the + list \(t_i\) in its place.
          +
        • +
        + + + +
          +
        • +

          THEORY_REWRITE

          +
          public static final ProofRule THEORY_REWRITE
          +
          Other theory rewrite rules + + \[ + \inferrule{- \mid id, t = t'}{t = t'} + \] + where `id` is the ProofRewriteRule of the theory rewrite + rule which transforms \(t\) to \(t'\). + + In contrast to DSL_REWRITE, theory rewrite rules used by + this proof rule are not necessarily expressible in RARE. Each rule that can + be used in this proof rule are documented explicitly in cases within the + ProofRewriteRule enum.
          +
        • +
        + + + +
          +
        • +

          ITE_EQ

          +
          public static final ProofRule ITE_EQ
          +
          Processing rules – If-then-else equivalence + + \[ + \inferrule{- \mid \ite{C}{t_1}{t_2}}{\ite{C}{((\ite{C}{t_1}{t_2}) = t_1)}{((\ite{C}{t_1}{t_2}) = t_2)}} + \]
          +
        • +
        + + + +
          +
        • +

          TRUST

          +
          public static final ProofRule TRUST
          +
          Trusted rule + + \[ + \inferrule{F_1 \dots F_n \mid tid, F, ...}{F} + \] + where \(tid\) is an identifier and \(F\) is a formula. This rule + is used when a formal justification of an inference step cannot be provided. + The formulas \(F_1 \dots F_n\) refer to a set of formulas that + entail \(F\), which may or may not be provided.
          +
        • +
        + + + +
          +
        • +

          TRUST_THEORY_REWRITE

          +
          public static final ProofRule TRUST_THEORY_REWRITE
          +
          Trusted rules – Theory rewrite + + \[ + \inferrule{- \mid F, tid, rid}{F} + \] + where \(F\) is an equality of the form \(t = t'\) where \(t'\) + is obtained by applying the kind of rewriting given by the method + identifier \(rid\), which is one of: + RW_REWRITE_THEORY_PRE, RW_REWRITE_THEORY_POST, + RW_REWRITE_EQ_EXT. Notice that the checker for this rule does not + replay the rewrite to ensure correctness, since theory rewriter methods are + not static. For example, the quantifiers rewriter involves constructing new + bound variables that are not guaranteed to be consistent on each call.
          +
        • +
        + + + +
          +
        • +

          SAT_REFUTATION

          +
          public static final ProofRule SAT_REFUTATION
          +
          SAT Refutation for assumption-based unsat cores + + \[ + \inferrule{F_1 \dots F_n \mid -}{\bot} + \] + where \(F_1 \dots F_n\) correspond to the unsat core determined by the + SAT solver.
          +
        • +
        + + + +
          +
        • +

          DRAT_REFUTATION

          +
          public static final ProofRule DRAT_REFUTATION
          +
          DRAT Refutation + + \[ + \inferrule{F_1 \dots F_n \mid D, P}{\bot} + \] + where \(F_1 \dots F_n\) correspond to the clauses in the + DIMACS file given by filename `D` and `P` is a filename of a file storing + a DRAT proof.
          +
        • +
        + + + +
          +
        • +

          SAT_EXTERNAL_PROVE

          +
          public static final ProofRule SAT_EXTERNAL_PROVE
          +
          SAT external prove Refutation + + \[ + \inferrule{F_1 \dots F_n \mid D}{\bot} + \] + where \(F_1 \dots F_n\) correspond to the input clauses in the + DIMACS file `D`.
          +
        • +
        + + + +
          +
        • +

          RESOLUTION

          +
          public static final ProofRule RESOLUTION
          +
          Boolean – Resolution + + \[ + \inferrule{C_1, C_2 \mid pol, L}{C} + \] + where + +
            +
          • \(C_1\) and \(C_2\) are nodes viewed as clauses, i.e., either an + OR node with each children viewed as a literal or a node viewed as a + literal. Note that an OR node could also be a literal. +
          • +
          • \(pol\) is either true or false, representing the polarity of the + pivot on the first clause +
          • +
          • \(L\) is the pivot of the resolution, which occurs as is (resp. under + a NOT) in \(C_1\) and negatively (as is) in \(C_2\) if + \(pol = \top\) (\(pol = \bot\)). + +
          + \(C\) is a clause resulting from collecting all the literals in + \(C_1\), minus the first occurrence of the pivot or its negation, and + \(C_2\), minus the first occurrence of the pivot or its negation, + according to the policy above. If the resulting clause has a single + literal, that literal itself is the result; if it has no literals, then the + result is false; otherwise it's an OR node of the resulting literals. + + Note that it may be the case that the pivot does not occur in the + clauses. In this case the rule is not unsound, but it does not correspond + to resolution but rather to a weakening of the clause that did not have a + literal eliminated.
          +
        • +
        + + + +
          +
        • +

          CHAIN_RESOLUTION

          +
          public static final ProofRule CHAIN_RESOLUTION
          +
          Boolean – N-ary Resolution + + \[ + \inferrule{C_1 \dots C_n \mid (pol_1 \dots pol_{n-1}), (L_1 \dots L_{n-1})}{C} + \] + where + +
            +
          • let \(C_1 \dots C_n\) be nodes viewed as clauses, as defined above +
          • +
          • let \(C_1 \diamond_{L,pol} C_2\) represent the resolution of + \(C_1\) with \(C_2\) with pivot \(L\) and polarity + \(pol\), as defined above +
          • +
          • let \(C_1' = C_1\), +
          • +
          • for each \(i > 1\), let \(C_i' = C_{i-1} \diamond_{L_{i-1}, pol_{i-1}} C_i'\) + +
          + Note the list of polarities and pivots are provided as s-expressions. + + The result of the chain resolution is \(C = C_n'\)
          +
        • +
        + + + +
          +
        • +

          FACTORING

          +
          public static final ProofRule FACTORING
          +
          Boolean – Factoring + + \[ + \inferrule{C_1 \mid -}{C_2} + \] + where \(C_2\) is the clause \(C_1\), but every occurrence of a literal + after its first occurrence is omitted.
          +
        • +
        + + + +
          +
        • +

          REORDERING

          +
          public static final ProofRule REORDERING
          +
          Boolean – Reordering + + \[ + \inferrule{C_1 \mid C_2}{C_2} + \] + where + the multiset representations of \(C_1\) and \(C_2\) are the same.
          +
        • +
        + + + +
          +
        • +

          MACRO_RESOLUTION

          +
          public static final ProofRule MACRO_RESOLUTION
          +
          Boolean – N-ary Resolution + Factoring + Reordering + + \[ + \inferrule{C_1 \dots C_n \mid C, pol_1,L_1 \dots pol_{n-1},L_{n-1}}{C} + \] + where + +
            +
          • let \(C_1 \dots C_n\) be nodes viewed as clauses, as defined in + RESOLUTION <cvc5.RESOLUTION> +
          • +
          • let \(C_1 \diamond_{L,\mathit{pol}} C_2\) represent the resolution of + \(C_1\) with \(C_2\) with pivot \(L\) and polarity + \(pol\), as defined in + RESOLUTION <cvc5.RESOLUTION> +
          • +
          • let \(C_1'\) be equal, in its set representation, to \(C_1\), +
          • +
          • for each \(i > 1\), let \(C_i'\) be equal, in its set + representation, to \(C_{i-1} \diamond_{L_{i-1},\mathit{pol}_{i-1}} + C_i'\) + +
          + The result of the chain resolution is \(C\), which is equal, in its set + representation, to \(C_n'\)
          +
        • +
        + + + +
          +
        • +

          MACRO_RESOLUTION_TRUST

          +
          public static final ProofRule MACRO_RESOLUTION_TRUST
          +
          Boolean – N-ary Resolution + Factoring + Reordering unchecked + + Same as + MACRO_RESOLUTION <cvc5.MACRO_RESOLUTION>, but + not checked by the internal proof checker.
          +
        • +
        + + + +
          +
        • +

          SPLIT

          +
          public static final ProofRule SPLIT
          +
          Boolean – Split + + \[ + \inferrule{- \mid F}{F \lor \neg F} + \]
          +
        • +
        + + + +
          +
        • +

          EQ_RESOLVE

          +
          public static final ProofRule EQ_RESOLVE
          +
          Boolean – Equality resolution + + \[ + \inferrule{F_1, (F_1 = F_2) \mid -}{F_2} + \] + Note this can optionally be seen as a macro for + EQUIV_ELIM1 <cvc5.EQUIV_ELIM1> + + RESOLUTION <cvc5.RESOLUTION>.
          +
        • +
        + + + +
          +
        • +

          MODUS_PONENS

          +
          public static final ProofRule MODUS_PONENS
          +
          Boolean – Modus Ponens + + \[ + \inferrule{F_1, (F_1 \rightarrow F_2) \mid -}{F_2} + \] + Note this can optionally be seen as a macro for + IMPLIES_ELIM <cvc5.IMPLIES_ELIM> + + RESOLUTION <cvc5.RESOLUTION>.
          +
        • +
        + + + +
          +
        • +

          NOT_NOT_ELIM

          +
          public static final ProofRule NOT_NOT_ELIM
          +
          Boolean – Double negation elimination + + \[ + \inferrule{\neg (\neg F) \mid -}{F} + \]
          +
        • +
        + + + +
          +
        • +

          CONTRA

          +
          public static final ProofRule CONTRA
          +
          Boolean – Contradiction + + \[ + \inferrule{F, \neg F \mid -}{\bot} + \]
          +
        • +
        + + + +
          +
        • +

          AND_ELIM

          +
          public static final ProofRule AND_ELIM
          +
          Boolean – And elimination + + \[ + \inferrule{(F_1 \land \dots \land F_n) \mid i}{F_i} + \]
          +
        • +
        + + + +
          +
        • +

          AND_INTRO

          +
          public static final ProofRule AND_INTRO
          +
          Boolean – And introduction + + \[ + \inferrule{F_1 \dots F_n \mid -}{(F_1 \land \dots \land F_n)} + \]
          +
        • +
        + + + +
          +
        • +

          NOT_OR_ELIM

          +
          public static final ProofRule NOT_OR_ELIM
          +
          Boolean – Not Or elimination + + \[ + \inferrule{\neg(F_1 \lor \dots \lor F_n) \mid i}{\neg F_i} + \]
          +
        • +
        + + + +
          +
        • +

          IMPLIES_ELIM

          +
          public static final ProofRule IMPLIES_ELIM
          +
          Boolean – Implication elimination + + \[ + \inferrule{F_1 \rightarrow F_2 \mid -}{\neg F_1 \lor F_2} + \]
          +
        • +
        + + + +
          +
        • +

          NOT_IMPLIES_ELIM1

          +
          public static final ProofRule NOT_IMPLIES_ELIM1
          +
          Boolean – Not Implication elimination version 1 + + \[ + \inferrule{\neg(F_1 \rightarrow F_2) \mid -}{F_1} + \]
          +
        • +
        + + + +
          +
        • +

          NOT_IMPLIES_ELIM2

          +
          public static final ProofRule NOT_IMPLIES_ELIM2
          +
          Boolean – Not Implication elimination version 2 + + \[ + \inferrule{\neg(F_1 \rightarrow F_2) \mid -}{\neg F_2} + \]
          +
        • +
        + + + +
          +
        • +

          EQUIV_ELIM1

          +
          public static final ProofRule EQUIV_ELIM1
          +
          Boolean – Equivalence elimination version 1 + + \[ + \inferrule{F_1 = F_2 \mid -}{\neg F_1 \lor F_2} + \]
          +
        • +
        + + + +
          +
        • +

          EQUIV_ELIM2

          +
          public static final ProofRule EQUIV_ELIM2
          +
          Boolean – Equivalence elimination version 2 + + \[ + \inferrule{F_1 = F_2 \mid -}{F_1 \lor \neg F_2} + \]
          +
        • +
        + + + +
          +
        • +

          NOT_EQUIV_ELIM1

          +
          public static final ProofRule NOT_EQUIV_ELIM1
          +
          Boolean – Not Equivalence elimination version 1 + + \[ + \inferrule{F_1 \neq F_2 \mid -}{F_1 \lor F_2} + \]
          +
        • +
        + + + +
          +
        • +

          NOT_EQUIV_ELIM2

          +
          public static final ProofRule NOT_EQUIV_ELIM2
          +
          Boolean – Not Equivalence elimination version 2 + + \[ + \inferrule{F_1 \neq F_2 \mid -}{\neg F_1 \lor \neg F_2} + \]
          +
        • +
        + + + +
          +
        • +

          XOR_ELIM1

          +
          public static final ProofRule XOR_ELIM1
          +
          Boolean – XOR elimination version 1 + + \[ + \inferrule{F_1 \xor F_2 \mid -}{F_1 \lor F_2} + \]
          +
        • +
        + + + +
          +
        • +

          XOR_ELIM2

          +
          public static final ProofRule XOR_ELIM2
          +
          Boolean – XOR elimination version 2 + + \[ + \inferrule{F_1 \xor F_2 \mid -}{\neg F_1 \lor \neg F_2} + \]
          +
        • +
        + + + +
          +
        • +

          NOT_XOR_ELIM1

          +
          public static final ProofRule NOT_XOR_ELIM1
          +
          Boolean – Not XOR elimination version 1 + + \[ + \inferrule{\neg(F_1 \xor F_2) \mid -}{F_1 \lor \neg F_2} + \]
          +
        • +
        + + + +
          +
        • +

          NOT_XOR_ELIM2

          +
          public static final ProofRule NOT_XOR_ELIM2
          +
          Boolean – Not XOR elimination version 2 + + \[ + \inferrule{\neg(F_1 \xor F_2) \mid -}{\neg F_1 \lor F_2} + \]
          +
        • +
        + + + +
          +
        • +

          ITE_ELIM1

          +
          public static final ProofRule ITE_ELIM1
          +
          Boolean – ITE elimination version 1 + + \[ + \inferrule{(\ite{C}{F_1}{F_2}) \mid -}{\neg C \lor F_1} + \]
          +
        • +
        + + + +
          +
        • +

          ITE_ELIM2

          +
          public static final ProofRule ITE_ELIM2
          +
          Boolean – ITE elimination version 2 + + \[ + \inferrule{(\ite{C}{F_1}{F_2}) \mid -}{C \lor F_2} + \]
          +
        • +
        + + + +
          +
        • +

          NOT_ITE_ELIM1

          +
          public static final ProofRule NOT_ITE_ELIM1
          +
          Boolean – Not ITE elimination version 1 + + \[ + \inferrule{\neg(\ite{C}{F_1}{F_2}) \mid -}{\neg C \lor \neg F_1} + \]
          +
        • +
        + + + +
          +
        • +

          NOT_ITE_ELIM2

          +
          public static final ProofRule NOT_ITE_ELIM2
          +
          Boolean – Not ITE elimination version 2 + + \[ + \inferrule{\neg(\ite{C}{F_1}{F_2}) \mid -}{C \lor \neg F_2} + \]
          +
        • +
        + + + +
          +
        • +

          NOT_AND

          +
          public static final ProofRule NOT_AND
          +
          Boolean – De Morgan – Not And + + \[ + \inferrule{\neg(F_1 \land \dots \land F_n) \mid -}{\neg F_1 \lor \dots + \lor \neg F_n} + \]
          +
        • +
        + + + +
          +
        • +

          CNF_AND_POS

          +
          public static final ProofRule CNF_AND_POS
          +
          Boolean – CNF – And Positive + + \[ + \inferrule{- \mid (F_1 \land \dots \land F_n), i}{\neg (F_1 \land \dots + \land F_n) \lor F_i} + \]
          +
        • +
        + + + +
          +
        • +

          CNF_AND_NEG

          +
          public static final ProofRule CNF_AND_NEG
          +
          Boolean – CNF – And Negative + + \[ + \inferrule{- \mid (F_1 \land \dots \land F_n)}{(F_1 \land \dots \land + F_n) \lor \neg F_1 \lor \dots \lor \neg F_n} + \]
          +
        • +
        + + + +
          +
        • +

          CNF_OR_POS

          +
          public static final ProofRule CNF_OR_POS
          +
          Boolean – CNF – Or Positive + + \[ + \inferrule{- \mid (F_1 \lor \dots \lor F_n)}{\neg(F_1 \lor \dots \lor + F_n) \lor F_1 \lor \dots \lor F_n} + \]
          +
        • +
        + + + +
          +
        • +

          CNF_OR_NEG

          +
          public static final ProofRule CNF_OR_NEG
          +
          Boolean – CNF – Or Negative + + \[ + \inferrule{- \mid (F_1 \lor \dots \lor F_n), i}{(F_1 \lor \dots \lor F_n) + \lor \neg F_i} + \]
          +
        • +
        + + + +
          +
        • +

          CNF_IMPLIES_POS

          +
          public static final ProofRule CNF_IMPLIES_POS
          +
          Boolean – CNF – Implies Positive + + \[ + \inferrule{- \mid F_1 \rightarrow F_2}{\neg(F_1 \rightarrow F_2) \lor \neg F_1 + \lor F_2} + \]
          +
        • +
        + + + +
          +
        • +

          CNF_IMPLIES_NEG1

          +
          public static final ProofRule CNF_IMPLIES_NEG1
          +
          Boolean – CNF – Implies Negative 1 + + \[ + \inferrule{- \mid F_1 \rightarrow F_2}{(F_1 \rightarrow F_2) \lor F_1} + \]
          +
        • +
        + + + +
          +
        • +

          CNF_IMPLIES_NEG2

          +
          public static final ProofRule CNF_IMPLIES_NEG2
          +
          Boolean – CNF – Implies Negative 2 + + \[ + \inferrule{- \mid F_1 \rightarrow F_2}{(F_1 \rightarrow F_2) \lor \neg F_2} + \]
          +
        • +
        + + + +
          +
        • +

          CNF_EQUIV_POS1

          +
          public static final ProofRule CNF_EQUIV_POS1
          +
          Boolean – CNF – Equiv Positive 1 + + \[ + \inferrule{- \mid F_1 = F_2}{F_1 \neq F_2 \lor \neg F_1 \lor F_2} + \]
          +
        • +
        + + + +
          +
        • +

          CNF_EQUIV_POS2

          +
          public static final ProofRule CNF_EQUIV_POS2
          +
          Boolean – CNF – Equiv Positive 2 + + \[ + \inferrule{- \mid F_1 = F_2}{F_1 \neq F_2 \lor F_1 \lor \neg F_2} + \]
          +
        • +
        + + + +
          +
        • +

          CNF_EQUIV_NEG1

          +
          public static final ProofRule CNF_EQUIV_NEG1
          +
          Boolean – CNF – Equiv Negative 1 + + \[ + \inferrule{- \mid F_1 = F_2}{(F_1 = F_2) \lor F_1 \lor F_2} + \]
          +
        • +
        + + + +
          +
        • +

          CNF_EQUIV_NEG2

          +
          public static final ProofRule CNF_EQUIV_NEG2
          +
          Boolean – CNF – Equiv Negative 2 + + \[ + \inferrule{- \mid F_1 = F_2}{(F_1 = F_2) \lor \neg F_1 \lor \neg F_2} + \]
          +
        • +
        + + + +
          +
        • +

          CNF_XOR_POS1

          +
          public static final ProofRule CNF_XOR_POS1
          +
          Boolean – CNF – XOR Positive 1 + + \[ + \inferrule{- \mid F_1 \xor F_2}{\neg(F_1 \xor F_2) \lor F_1 \lor F_2} + \]
          +
        • +
        + + + +
          +
        • +

          CNF_XOR_POS2

          +
          public static final ProofRule CNF_XOR_POS2
          +
          Boolean – CNF – XOR Positive 2 + + \[ + \inferrule{- \mid F_1 \xor F_2}{\neg(F_1 \xor F_2) \lor \neg F_1 \lor + \neg F_2} + \]
          +
        • +
        + + + +
          +
        • +

          CNF_XOR_NEG1

          +
          public static final ProofRule CNF_XOR_NEG1
          +
          Boolean – CNF – XOR Negative 1 + + \[ + \inferrule{- \mid F_1 \xor F_2}{(F_1 \xor F_2) \lor \neg F_1 \lor F_2} + \]
          +
        • +
        + + + +
          +
        • +

          CNF_XOR_NEG2

          +
          public static final ProofRule CNF_XOR_NEG2
          +
          Boolean – CNF – XOR Negative 2 + + \[ + \inferrule{- \mid F_1 \xor F_2}{(F_1 \xor F_2) \lor F_1 \lor \neg F_2} + \]
          +
        • +
        + + + +
          +
        • +

          CNF_ITE_POS1

          +
          public static final ProofRule CNF_ITE_POS1
          +
          Boolean – CNF – ITE Positive 1 + + \[ + \inferrule{- \mid (\ite{C}{F_1}{F_2})}{\neg(\ite{C}{F_1}{F_2}) \lor \neg + C \lor F_1} + \]
          +
        • +
        + + + +
          +
        • +

          CNF_ITE_POS2

          +
          public static final ProofRule CNF_ITE_POS2
          +
          Boolean – CNF – ITE Positive 2 + + \[ + \inferrule{- \mid (\ite{C}{F_1}{F_2})}{\neg(\ite{C}{F_1}{F_2}) \lor C + \lor F_2} + \]
          +
        • +
        + + + +
          +
        • +

          CNF_ITE_POS3

          +
          public static final ProofRule CNF_ITE_POS3
          +
          Boolean – CNF – ITE Positive 3 + + \[ + \inferrule{- \mid (\ite{C}{F_1}{F_2})}{\neg(\ite{C}{F_1}{F_2}) \lor F_1 + \lor F_2} + \]
          +
        • +
        + + + +
          +
        • +

          CNF_ITE_NEG1

          +
          public static final ProofRule CNF_ITE_NEG1
          +
          Boolean – CNF – ITE Negative 1 + + \[ + \inferrule{- \mid (\ite{C}{F_1}{F_2})}{(\ite{C}{F_1}{F_2}) \lor \neg C + \lor \neg F_1} + \]
          +
        • +
        + + + +
          +
        • +

          CNF_ITE_NEG2

          +
          public static final ProofRule CNF_ITE_NEG2
          +
          Boolean – CNF – ITE Negative 2 + + \[ + \inferrule{- \mid (\ite{C}{F_1}{F_2})}{(\ite{C}{F_1}{F_2}) \lor C \lor + \neg F_2} + \]
          +
        • +
        + + + +
          +
        • +

          CNF_ITE_NEG3

          +
          public static final ProofRule CNF_ITE_NEG3
          +
          Boolean – CNF – ITE Negative 3 + + \[ + \inferrule{- \mid (\ite{C}{F_1}{F_2})}{(\ite{C}{F_1}{F_2}) \lor \neg F_1 + \lor \neg F_2} + \]
          +
        • +
        + + + +
          +
        • +

          REFL

          +
          public static final ProofRule REFL
          +
          Equality – Reflexivity + + \[ + + \inferrule{-\mid t}{t = t} + \]
          +
        • +
        + + + +
          +
        • +

          SYMM

          +
          public static final ProofRule SYMM
          +
          Equality – Symmetry + + \[ + + \inferrule{t_1 = t_2\mid -}{t_2 = t_1} + \] + or + + \[ + + \inferrule{t_1 \neq t_2\mid -}{t_2 \neq t_1} + \]
          +
        • +
        + + + +
          +
        • +

          TRANS

          +
          public static final ProofRule TRANS
          +
          Equality – Transitivity + + \[ + + \inferrule{t_1=t_2,\dots,t_{n-1}=t_n\mid -}{t_1 = t_n} + \]
          +
        • +
        + + + +
          +
        • +

          CONG

          +
          public static final ProofRule CONG
          +
          Equality – Congruence + + \[ + + \inferrule{t_1=s_1,\dots,t_n=s_n\mid k, f?}{k(f?, t_1,\dots, t_n) = + k(f?, s_1,\dots, s_n)} + \] + where \(k\) is the application kind. Notice that \(f\) must be + provided iff \(k\) is a parameterized kind, e.g. + `cvc5.Kind.APPLY_UF`. The actual node for + \(k\) is constructible via ProofRuleChecker.mkKindNode. + If \(k\) is a binder kind (e.g. cvc5.{@link Kind#FORALL}) then \(f\) + is a term of kind cvc5.Kind.VARIABLE_LIST + denoting the variables bound by both sides of the conclusion. + This rule is used for kinds that have a fixed arity, such as + cvc5.Kind.ITE, cvc5.Kind.EQUAL, and so on. It is also used for + cvc5.Kind.APPLY_UF where \(f\) must be provided. + It is not used for equality between + cvc5.Kind.HO_APPLY terms, which should + use the HO_CONG <cvc5.HO_CONG> proof rule.
          +
        • +
        + + + +
          +
        • +

          NARY_CONG

          +
          public static final ProofRule NARY_CONG
          +
          Equality – N-ary Congruence + + \[ + + \inferrule{t_1=s_1,\dots,t_n=s_n\mid k}{k(t_1,\dots, t_n) = + k(s_1,\dots, s_n)} + \] + where \(k\) is the application kind. The actual node for \(k\) is + constructible via ProofRuleChecker.mkKindNode. This rule is used for + kinds that have variadic arity, such as cvc5.Kind.AND, + cvc5.Kind.PLUS and so on.
          +
        • +
        + + + +
          +
        • +

          TRUE_INTRO

          +
          public static final ProofRule TRUE_INTRO
          +
          Equality – True intro + + \[ + + \inferrule{F\mid -}{F = \top} + \]
          +
        • +
        + + + +
          +
        • +

          TRUE_ELIM

          +
          public static final ProofRule TRUE_ELIM
          +
          Equality – True elim + + \[ + + \inferrule{F=\top\mid -}{F} + \]
          +
        • +
        + + + +
          +
        • +

          FALSE_INTRO

          +
          public static final ProofRule FALSE_INTRO
          +
          Equality – False intro + + \[ + + \inferrule{\neg F\mid -}{F = \bot} + \]
          +
        • +
        + + + +
          +
        • +

          FALSE_ELIM

          +
          public static final ProofRule FALSE_ELIM
          +
          Equality – False elim + + \[ + + \inferrule{F=\bot\mid -}{\neg F} + \]
          +
        • +
        + + + +
          +
        • +

          HO_APP_ENCODE

          +
          public static final ProofRule HO_APP_ENCODE
          +
          Equality – Higher-order application encoding + + \[ + + \inferrule{-\mid t}{t=t'} + \] + where `t'` is the higher-order application that is equivalent to `t`, + as implemented by uf.TheoryUfRewriter.getHoApplyForApplyUf. + For details see :cvc5src:`theory/uf/theory_uf_rewriter.h` + + For example, this rule concludes \(f(x,y) = @( @(f,x), y)\), where + \(@\) is the HO_APPLY kind. + + Note this rule can be treated as a + REFL <cvc5.REFL> when appropriate in + external proof formats.
          +
        • +
        + + + +
          +
        • +

          HO_CONG

          +
          public static final ProofRule HO_CONG
          +
          Equality – Higher-order congruence + + \[ + + \inferrule{f=g, t_1=s_1,\dots,t_n=s_n\mid k}{k(f, t_1,\dots, t_n) = + k(g, s_1,\dots, s_n)} + \] + Notice that this rule is only used when the application kind \(k\) is + either `cvc5.Kind.APPLY_UF` or `cvc5.Kind.HO_APPLY`.
          +
        • +
        + + + +
          +
        • +

          ARRAYS_READ_OVER_WRITE

          +
          public static final ProofRule ARRAYS_READ_OVER_WRITE
          +
          Arrays – Read over write + + \[ + + \inferrule{i_1 \neq i_2\mid \mathit{select}(\mathit{store}(a,i_1,e),i_2)} + {\mathit{select}(\mathit{store}(a,i_1,e),i_2) = \mathit{select}(a,i_2)} + \]
          +
        • +
        + + + +
          +
        • +

          ARRAYS_READ_OVER_WRITE_CONTRA

          +
          public static final ProofRule ARRAYS_READ_OVER_WRITE_CONTRA
          +
          Arrays – Read over write, contrapositive + + \[ + + \inferrule{\mathit{select}(\mathit{store}(a,i_2,e),i_1) \neq + \mathit{select}(a,i_1)\mid -}{i_1=i_2} + \]
          +
        • +
        + + + +
          +
        • +

          ARRAYS_READ_OVER_WRITE_1

          +
          public static final ProofRule ARRAYS_READ_OVER_WRITE_1
          +
          Arrays – Read over write 1 + + \[ + + \inferrule{-\mid \mathit{select}(\mathit{store}(a,i,e),i)} + {\mathit{select}(\mathit{store}(a,i,e),i)=e} + \]
          +
        • +
        + + + +
          +
        • +

          ARRAYS_EXT

          +
          public static final ProofRule ARRAYS_EXT
          +
          Arrays – Arrays extensionality + + \[ + + \inferrule{a \neq b\mid -} + {\mathit{select}(a,k)\neq\mathit{select}(b,k)} + \] + where \(k\) is the \(\texttt{ARRAY_DEQ_DIFF}\) skolem for `(a, b)`.
          +
        • +
        + + + +
          +
        • +

          MACRO_BV_BITBLAST

          +
          public static final ProofRule MACRO_BV_BITBLAST
          +
          Bit-vectors – (Macro) Bitblast + + \[ + + \inferrule{-\mid t}{t = \texttt{bitblast}(t)} + \] + where \(\texttt{bitblast}\) represents the result of the bit-blasted term as + a bit-vector consisting of the output bits of the bit-blasted circuit + representation of the term. Terms are bit-blasted according to the + strategies defined in :cvc5src:`theory/bv/bitblast/bitblast_strategies_template.h`.
          +
        • +
        + + + +
          +
        • +

          BV_BITBLAST_STEP

          +
          public static final ProofRule BV_BITBLAST_STEP
          +
          Bit-vectors – Bitblast bit-vector constant, variable, and terms + + For constant and variables: + + \[ + + \inferrule{-\mid t}{t = \texttt{bitblast}(t)} + \] + For terms: + + \[ + + \inferrule{-\mid k(\texttt{bitblast}(t_1),\dots,\texttt{bitblast}(t_n))} + {k(\texttt{bitblast}(t_1),\dots,\texttt{bitblast}(t_n)) = + \texttt{bitblast}(t)} + \] + where \(t\) is \(k(t_1,\dots,t_n)\).
          +
        • +
        + + + +
          +
        • +

          BV_EAGER_ATOM

          +
          public static final ProofRule BV_EAGER_ATOM
          +
          Bit-vectors – Bit-vector eager atom + + \[ + + \inferrule{-\mid F}{F = F[0]} + \] + where \(F\) is of kind BITVECTOR_EAGER_ATOM.
          +
        • +
        + + + +
          +
        • +

          DT_SPLIT

          +
          public static final ProofRule DT_SPLIT
          +
          Datatypes – Split + + \[ + + \inferrule{-\mid t}{\mathit{is}_{C_1}(t)\vee\cdots\vee\mathit{is}_{C_n}(t)} + \] + where \(C_1,\dots,C_n\) are all the constructors of the type of \(t\).
          +
        • +
        + + + +
          +
        • +

          DT_CLASH

          +
          public static final ProofRule DT_CLASH
          +
          Datatypes – Clash + + \[ + + \inferruleSC{\mathit{is}_{C_i}(t), \mathit{is}_{C_j}(t)\mid -}{\bot} + {if $i\neq j$} + \]
          +
        • +
        + + + +
          +
        • +

          SKOLEM_INTRO

          +
          public static final ProofRule SKOLEM_INTRO
          +
          Quantifiers – Skolem introduction + + \[ + + \inferrule{-\mid k}{k = t} + \] + where \(t\) is the unpurified form of skolem \(k\).
          +
        • +
        + + + +
          +
        • +

          SKOLEMIZE

          +
          public static final ProofRule SKOLEMIZE
          +
          Quantifiers – Skolemization + + \[ + + \inferrule{\neg (\forall x_1\dots x_n.\> F)\mid -}{\neg F\sigma} + \] + where \(\sigma\) maps \(x_1,\dots,x_n\) to their representative + skolems, which are skolems \(k_1,\dots,k_n\). For each \(k_i\), + its skolem identifier is QUANTIFIERS_SKOLEMIZE <cvc5.SkolemId.QUANTIFIERS_SKOLEMIZE>, + and its indices are \((\forall x_1\dots x_n.\> F)\) and \(x_i\).
          +
        • +
        + + + +
          +
        • +

          INSTANTIATE

          +
          public static final ProofRule INSTANTIATE
          +
          Quantifiers – Instantiation + + \[ + + \inferrule{\forall x_1\dots x_n.\> F\mid (t_1 \dots t_n), (id\, (t)?)?} + {F\{x_1\mapsto t_1,\dots,x_n\mapsto t_n\}} + \] + The list of terms to instantiate \((t_1 \dots t_n)\) is provided as + an s-expression as the first argument. The optional argument \(id\) + indicates the inference id that caused the instantiation. The term + \(t\) indicates an additional term (e.g. the trigger) associated with + the instantiation, which depends on the id. If the id has prefix + QUANTIFIERS_INST_E_MATCHING, then \(t\) is the trigger that + generated the instantiation.
          +
        • +
        + + + +
          +
        • +

          ALPHA_EQUIV

          +
          public static final ProofRule ALPHA_EQUIV
          +
          Quantifiers – Alpha equivalence + + \[ + + \inferruleSC{-\mid F, (y_1 \ldots y_n), (z_1,\dots, z_n)} + {F = F\{y_1\mapsto z_1,\dots,y_n\mapsto z_n\}} + {if $y_1,\dots,y_n, z_1,\dots,z_n$ are unique bound variables} + \] + Notice that this rule is correct only when \(z_1,\dots,z_n\) are not + contained in \(FV(F) \setminus \{ y_1,\dots, y_n \}\), where + \(FV(\varphi)\) are the free variables of \(\varphi\). The internal + quantifiers proof checker does not currently check that this is the case.
          +
        • +
        + + + +
          +
        • +

          QUANT_VAR_REORDERING

          +
          public static final ProofRule QUANT_VAR_REORDERING
          +
          Quantifiers – Variable reordering + + \[ + + \inferrule{-\mid (\forall X.\> F) = (\forall Y.\> F)} + {(\forall X.\> F) = (\forall Y.\> F)} + \] + where \(Y\) is a reordering of \(X\).
          +
        • +
        + + + +
          +
        • +

          SETS_SINGLETON_INJ

          +
          public static final ProofRule SETS_SINGLETON_INJ
          +
          Sets – Singleton injectivity + + \[ + + \inferrule{\mathit{set.singleton}(t) = \mathit{set.singleton}(s)\mid -}{t=s} + \]
          +
        • +
        + + + +
          +
        • +

          SETS_EXT

          +
          public static final ProofRule SETS_EXT
          +
          Sets – Sets extensionality + + \[ + + \inferrule{a \neq b\mid -} + {\mathit{set.member}(k,a)\neq\mathit{set.member}(k,b)} + \] + where \(k\) is the \(\texttt{SETS_DEQ_DIFF}\) skolem for `(a, b)`.
          +
        • +
        + + + +
          +
        • +

          SETS_FILTER_UP

          +
          public static final ProofRule SETS_FILTER_UP
          +
          Sets – Sets filter up + + \[ + + \inferrule{\mathit{set.member}(x,a)\mid P} + {\mathit{set.member}(x, \mathit{set.filter}(P, a)) = P(x)} + \]
          +
        • +
        + + + +
          +
        • +

          SETS_FILTER_DOWN

          +
          public static final ProofRule SETS_FILTER_DOWN
          +
          Sets – Sets filter down + + \[ + + \inferrule{\mathit{set.member}(x,\mathit{set.filter}(P, a))\mid -} + {\mathit{set.member}(x,a) \wedge P(x)} + \]
          +
        • +
        + + + +
          +
        • +

          CONCAT_EQ

          +
          public static final ProofRule CONCAT_EQ
          +
          Strings – Core rules – Concatenation equality + + \[ + + \inferrule{(t_1\cdot\ldots \cdot t_n \cdot t) = (t_1 \cdot\ldots + \cdot t_n\cdot s)\mid b}{t = s} + \] + where \(\cdot\) stands for string concatenation and \(b\) indicates + if the direction is reversed. + + Notice that \(t\) or \(s\) may be empty, in which case they are + implicit in the concatenation above. For example, if the premise is + \(x\cdot z = x\), then this rule, with argument \(\bot\), concludes + \(z = \epsilon\). + + Also note that constants are split, such that for \((\mathsf{'abc'} + \cdot x) = (\mathsf{'a'} \cdot y)\), this rule, with argument \(\bot\), + concludes \((\mathsf{'bc'} \cdot x) = y\). This splitting is done only + for constants such that Word.splitConstant returns non-null.
          +
        • +
        + + + +
          +
        • +

          CONCAT_UNIFY

          +
          public static final ProofRule CONCAT_UNIFY
          +
          Strings – Core rules – Concatenation unification + + \[ + + \inferrule{(t_1\cdot t_2) = (s_1 \cdot s_2),\, \mathit{len}(t_1) = + \mathit{len}(s_1)\mid \bot}{t_1 = s_1} + \] + Alternatively for the reverse: + + \[ + + \inferrule{(t_1\cdot t_2) = (s_1 \cdot s_2),\, \mathit{len}(t_2) = + \mathit{len}(s_2)\mid \top}{t_2 = s_2} + \]
          +
        • +
        + + + +
          +
        • +

          CONCAT_CONFLICT

          +
          public static final ProofRule CONCAT_CONFLICT
          +
          Strings – Core rules – Concatenation conflict + + \[ + + \inferrule{(c_1\cdot t) = (c_2 \cdot s)\mid b}{\bot} + \] + where \(b\) indicates if the direction is reversed, \(c_1,\,c_2\) + are constants such that \(\texttt{Word::splitConstant}(c_1,c_2, + \mathit{index},b)\) is null, in other words, neither is a prefix of the + other. Note it may be the case that one side of the equality denotes the + empty string. + + This rule is used exclusively for strings.
          +
        • +
        + + + +
          +
        • +

          CONCAT_CONFLICT_DEQ

          +
          public static final ProofRule CONCAT_CONFLICT_DEQ
          +
          Strings – Core rules – Concatenation conflict for disequal characters + + \[ + + \inferrule{(t_1\cdot t) = (s_1 \cdot s), t_1 \neq s_1 \mid b}{\bot} + \] + where \(t_1\) and \(s_1\) are constants of length one, or otherwise one side + of the equality is the empty sequence and \(t_1\) or \(s_1\) corresponding to + that side is the empty sequence. + + This rule is used exclusively for sequences.
          +
        • +
        + + + +
          +
        • +

          CONCAT_SPLIT

          +
          public static final ProofRule CONCAT_SPLIT
          +
          Strings – Core rules – Concatenation split + + \[ + + \inferruleSC{(t_1\cdot t_2) = (s_1 \cdot s_2),\, + \mathit{len}(t_1) \neq \mathit{len}(s_1)\mid b}{((t_1 = s_1\cdot r) + \vee (s_1 = t_1\cdot r)) \wedge r \neq \epsilon \wedge \mathit{len}(r)>0}{if $b=\bot$} + \] + where \(r\) is the purification skolem for + \(\mathit{ite}( + \mathit{len}(t_1) >= \mathit{len}(s_1), + \mathit{suf}(t_1,\mathit{len}(s_1)), + \mathit{suf}(s_1,\mathit{len}(t_1)))\) + and \(\epsilon\) is the empty string (or sequence). + + \[ + + \inferruleSC{(t_1\cdot t_2) = (s_1 \cdot s_2),\, + \mathit{len}(t_2) \neq \mathit{len}(s_2)\mid b}{((t_2 = r \cdot s_2) + \vee (s_2 = r \cdot t_2)) \wedge r \neq \epsilon \wedge \mathit{len}(r)>0}{if $b=\top$} + \] + where \(r\) is the purification Skolem for + \(\mathit{ite}( + \mathit{len}(t_2) >= \mathit{len}(s_2), + \mathit{pre}(t_2,\mathit{len}(t_2) - \mathit{len}(s_2)), + \mathit{pre}(s_2,\mathit{len}(s_2) - \mathit{len}(t_2)))\) + and \(\epsilon\) is the empty string (or sequence). + + Above, \(\mathit{suf}(x,n)\) is shorthand for + \(\mathit{substr}(x,n, \mathit{len}(x) - n)\) and + \(\mathit{pre}(x,n)\) is shorthand for \(\mathit{substr}(x,0,n)\).
          +
        • +
        + + + +
          +
        • +

          CONCAT_CSPLIT

          +
          public static final ProofRule CONCAT_CSPLIT
          +
          Strings – Core rules – Concatenation split for constants + + \[ + + \inferrule{(t_1\cdot t_2) = (c \cdot s_2),\, + \mathit{len}(t_1) \neq 0\mid \bot}{(t_1 = c\cdot r)} + \] + where \(r\) is the purification skolem for \(\mathit{suf}(t_1,1)\). + + Alternatively for the reverse: + + \[ + + \inferrule{(t_1\cdot t_2) = (s_1 \cdot c),\, + \mathit{len}(t_2) \neq 0\mid \top}{(t_2 = r\cdot c)} + \] + where \(r\) is the purification skolem for + \(\mathit{pre}(t_2,\mathit{len}(t_2) - 1)\).
          +
        • +
        + + + +
          +
        • +

          CONCAT_LPROP

          +
          public static final ProofRule CONCAT_LPROP
          +
          Strings – Core rules – Concatenation length propagation + + \[ + + \inferrule{(t_1\cdot t_2) = (s_1 \cdot s_2),\, + \mathit{len}(t_1) > \mathit{len}(s_1)\mid \bot}{(t_1 = s_1\cdot r)} + \] + where \(r\) is the purification Skolem for + \(\mathit{ite}( + \mathit{len}(t_1) >= \mathit{len}(s_1), + \mathit{suf}(t_1,\mathit{len}(s_1)), + \mathit{suf}(s_1,\mathit{len}(t_1)))\). + + Alternatively for the reverse: + + \[ + + \inferrule{(t_1\cdot t_2) = (s_1 \cdot s_2),\, + \mathit{len}(t_2) > \mathit{len}(s_2)\mid \top}{(t_2 = r \cdot s_2)} + \] + where \(r\) is the purification Skolem for + \(\mathit{ite}( + \mathit{len}(t_2) >= \mathit{len}(s_2), + \mathit{pre}(t_2,\mathit{len}(t_2) - \mathit{len}(s_2)), + \mathit{pre}(s_2,\mathit{len}(s_2) - \mathit{len}(t_2)))\)
          +
        • +
        + + + +
          +
        • +

          CONCAT_CPROP

          +
          public static final ProofRule CONCAT_CPROP
          +
          Strings – Core rules – Concatenation constant propagation + + \[ + + \inferrule{(t_1\cdot w_1\cdot t_2) = (w_2 \cdot s),\, + \mathit{len}(t_1) \neq 0\mid \bot}{(t_1 = t_3\cdot r)} + \] + where \(w_1,\,w_2\) are words, \(t_3\) is + \(\mathit{pre}(w_2,p)\), \(p\) is + \(\texttt{Word::overlap}(\mathit{suf}(w_2,1), w_1)\), and \(r\) is + the purification skolem for + \(\mathit{suf}(t_1,\mathit{len}(w_3))\). Note that + \(\mathit{suf}(w_2,p)\) is the largest suffix of + \(\mathit{suf}(w_2,1)\) that can contain a prefix of \(w_1\); since + \(t_1\) is non-empty, \(w_3\) must therefore be contained in + \(t_1\). + + Alternatively for the reverse: + + \[ + + \inferrule{(t_1\cdot w_1\cdot t_2) = (s \cdot w_2),\, + \mathit{len}(t_2) \neq 0\mid \top}{(t_2 = r\cdot t_3)} + \] + where \(w_1,\,w_2\) are words, \(t_3\) is + \(\mathit{substr}(w_2, \mathit{len}(w_2) - p, p)\), \(p\) is + \(\texttt{Word::roverlap}(\mathit{pre}(w_2, \mathit{len}(w_2) - 1), + w_1)\), and \(r\) is the purification skolem for + \(\mathit{pre}(t_2,\mathit{len}(t_2) - \mathit{len}(w_3))\). Note that + \(\mathit{pre}(w_2, \mathit{len}(w_2) - p)\) is the largest prefix of + \(\mathit{pre}(w_2, \mathit{len}(w_2) - 1)\) that can contain a suffix + of \(w_1\); since \(t_2\) is non-empty, \(w_3\) must therefore + be contained in \(t_2\).
          +
        • +
        + + + +
          +
        • +

          STRING_DECOMPOSE

          +
          public static final ProofRule STRING_DECOMPOSE
          +
          Strings – Core rules – String decomposition + + \[ + + \inferrule{\mathit{len}(t) \geq n\mid \bot}{t = w_1\cdot w_2 \wedge + \mathit{len}(w_1) = n} + \] + where \(w_1\) is the purification skolem for \(\mathit{pre}(t,n)\) + and \(w_2\) is the purification skolem for \(\mathit{suf}(t,n)\). + Or alternatively for the reverse: + + \[ + + \inferrule{\mathit{len}(t) \geq n\mid \top}{t = w_1\cdot w_2 \wedge + \mathit{len}(w_2) = n} + \] + where \(w_1\) is the purification skolem for \(\mathit{pre}(t,n)\) and + \(w_2\) is the purification skolem for \(\mathit{suf}(t,n)\).
          +
        • +
        + + + +
          +
        • +

          STRING_LENGTH_POS

          +
          public static final ProofRule STRING_LENGTH_POS
          +
          Strings – Core rules – Length positive + + \[ + + \inferrule{-\mid t}{(\mathit{len}(t) = 0\wedge t= \epsilon)\vee \mathit{len}(t) + > 0} + \]
          +
        • +
        + + + +
          +
        • +

          STRING_LENGTH_NON_EMPTY

          +
          public static final ProofRule STRING_LENGTH_NON_EMPTY
          +
          Strings – Core rules – Length non-empty + + \[ + + \inferrule{t\neq \epsilon\mid -}{\mathit{len}(t) \neq 0} + \]
          +
        • +
        + + + +
          +
        • +

          STRING_REDUCTION

          +
          public static final ProofRule STRING_REDUCTION
          +
          Strings – Extended functions – Reduction + + \[ + + \inferrule{-\mid t}{R\wedge t = w} + \] + where \(w\) is \(\texttt{StringsPreprocess::reduce}(t, R, + \dots)\). For details, see + :cvc5src:`theory/strings/theory_strings_preprocess.h`. + In other words, \(R\) is the reduction predicate for extended + term \(t\), and \(w\) is the purification skolem for \(t\). + + Notice that the free variables of \(R\) are \(w\) and the free + variables of \(t\).
          +
        • +
        + + + +
          +
        • +

          STRING_EAGER_REDUCTION

          +
          public static final ProofRule STRING_EAGER_REDUCTION
          +
          Strings – Extended functions – Eager reduction + + \[ + + \inferrule{-\mid t}{R} + \] + where \(R\) is \(\texttt{TermRegistry::eagerReduce}(t)\). + For details, see :cvc5src:`theory/strings/term_registry.h`.
          +
        • +
        + + + +
          +
        • +

          RE_INTER

          +
          public static final ProofRule RE_INTER
          +
          Strings – Regular expressions – Intersection + + \[ + + \inferrule{t\in R_1,\,t\in R_2\mid -}{t\in \mathit{re.inter}(R_1,R_2)} + \]
          +
        • +
        + + + +
          +
        • +

          RE_UNFOLD_POS

          +
          public static final ProofRule RE_UNFOLD_POS
          +
          Strings – Regular expressions – Positive Unfold + + \[ + + \inferrule{t\in R\mid -}{F} + \] + where \(F\) corresponds to the one-step unfolding of the premise. + This is implemented by \(\texttt{RegExpOpr::reduceRegExpPos}(t\in R)\).
          +
        • +
        + + + +
          +
        • +

          RE_UNFOLD_NEG

          +
          public static final ProofRule RE_UNFOLD_NEG
          +
          Strings – Regular expressions – Negative Unfold + + \[ + + \inferrule{t \not \in \mathit{re}.\text{*}(R) \mid -}{t \neq \ \epsilon \ \wedge \forall L. L \leq 0 \vee \mathit{str.len}(t) < L \vee \mathit{pre}(t, L) \not \in R \vee \mathit{suf}(t, L) \not \in \mathit{re}.\text{*}(R)} + \] + Or alternatively for regular expression concatenation: + + \[ + + \inferrule{t \not \in \mathit{re}.\text{++}(R_1, \ldots, R_n)\mid -}{\forall L. L < 0 \vee \mathit{str.len}(t) < L \vee \mathit{pre}(t, L) \not \in R_1 \vee \mathit{suf}(t, L) \not \in \mathit{re}.\text{++}(R_2, \ldots, R_n)} + \] + Note that in either case the varaible \(L\) has type \(Int\) and + name `"@var.str_index"`.
          +
        • +
        + + + +
          +
        • +

          RE_UNFOLD_NEG_CONCAT_FIXED

          +
          public static final ProofRule RE_UNFOLD_NEG_CONCAT_FIXED
          +
          Strings – Regular expressions – Unfold negative concatenation, fixed + + .. math. + + \inferrule{t\not\in \mathit{re}.\text{re.++}(r_1, \ldots, r_n) \mid \bot}{ + \mathit{pre}(t, L) \not \in r_1 \vee \mathit{suf}(t, L) \not \in \mathit{re}.\text{re.++}(r_2, \ldots, r_n)} + + where \(r_1\) has fixed length \(L\). + + or alternatively for the reverse: + + + \[ + + \inferrule{t \not \in \mathit{re}.\text{re.++}(r_1, \ldots, r_n) \mid \top}{ + \mathit{suf}(t, str.len(t) - L) \not \in r_n \vee + \mathit{pre}(t, str.len(t) - L) \not \in \mathit{re}.\text{re.++}(r_1, \ldots, r_{n-1})} + \] + where \(r_n\) has fixed length \(L\).
          +
        • +
        + + + +
          +
        • +

          STRING_CODE_INJ

          +
          public static final ProofRule STRING_CODE_INJ
          +
          Strings – Code points + + \[ + + \inferrule{-\mid t,s}{\mathit{to\_code}(t) = -1 \vee \mathit{to\_code}(t) \neq + \mathit{to\_code}(s) \vee t = s} + \]
          +
        • +
        + + + +
          +
        • +

          STRING_SEQ_UNIT_INJ

          +
          public static final ProofRule STRING_SEQ_UNIT_INJ
          +
          Strings – Sequence unit + + \[ + + \inferrule{\mathit{unit}(x) = \mathit{unit}(y)\mid -}{x = y} + \] + Also applies to the case where \(\mathit{unit}(y)\) is a constant + sequence of length one.
          +
        • +
        + + + +
          +
        • +

          STRING_EXT

          +
          public static final ProofRule STRING_EXT
          +
          Strings – Extensionality + + \[ + + \inferrule{s \neq t\mid -} + {\mathit{seq.len}(s) \neq \mathit{seq.len}(t) \vee (\mathit{seq.nth}(s,k)\neq\mathit{set.nth}(t,k) \wedge 0 \leq k \wedge k < \mathit{seq.len}(s))} + \] + where \(s,t\) are terms of sequence type, \(k\) is the + \(\texttt{STRINGS_DEQ_DIFF}\) skolem for \(s,t\). Alternatively, + if \(s,t\) are terms of string type, we use + \(\mathit{seq.substr}(s,k,1)\) instead of \(\mathit{seq.nth}(s,k)\) + and similarly for \(t\).
          +
        • +
        + + + +
          +
        • +

          MACRO_STRING_INFERENCE

          +
          public static final ProofRule MACRO_STRING_INFERENCE
          +
          Strings – (Macro) String inference + + \[ + + \inferrule{?\mid F,\mathit{id},\mathit{isRev},\mathit{exp}}{F} + \] + used to bookkeep an inference that has not yet been converted via + \(\texttt{strings::InferProofCons::convert}\).
          +
        • +
        + + + +
          +
        • +

          MACRO_ARITH_SCALE_SUM_UB

          +
          public static final ProofRule MACRO_ARITH_SCALE_SUM_UB
          +
          Arithmetic – Adding inequalities + + An arithmetic literal is a term of the form \(p \diamond c\) where + \(\diamond \in \{ <, \leq, =, \geq, > \}\), \(p\) a + polynomial and \(c\) a rational constant. + + \[ + \inferrule{l_1 \dots l_n \mid k_1 \dots k_n}{t_1 \diamond t_2} + \] + where \(k_i \in \mathbb{R}, k_i \neq 0\), \(\diamond\) is the + fusion of the \(\diamond_i\) (flipping each if its \(k_i\) is + negative) such that \(\diamond_i \in \{ <, \leq \}\) (this implies that + lower bounds have negative \(k_i\) and upper bounds have positive + \(k_i\)), \(t_1\) is the sum of the scaled polynomials and + \(t_2\) is the sum of the scaled constants: + + \[ + t_1 \colon= k_1 \cdot p_1 + \cdots + k_n \cdot p_n + + t_2 \colon= k_1 \cdot c_1 + \cdots + k_n \cdot c_n + \]
          +
        • +
        + + + +
          +
        • +

          ARITH_MULT_ABS_COMPARISON

          +
          public static final ProofRule ARITH_MULT_ABS_COMPARISON
          +
          Arithmetic – Non-linear multiply absolute value comparison + + \[ + \inferrule{F_1 \dots F_n \mid -}{F} + \] + where \(F\) is of the form + \(\left| t_1 \cdot t_n \right| \diamond \left| s_1 \cdot s_n \right|\). + If \(\diamond\) is \(=\), then each \(F_i\) is + \(\left| t_i \right| = \left| s_i \right|\). + + If \(\diamond\) is \(>\), then + each \(F_i\) is either \(\left| t_i \right| > \left| s_i \right|\) or + \(\left| t_i \right| = \left| s_i \right| \land \left| t_i \right| \neq 0\), + and \(F_1\) is of the former form.
          +
        • +
        + + + +
          +
        • +

          ARITH_SUM_UB

          +
          public static final ProofRule ARITH_SUM_UB
          +
          Arithmetic – Sum upper bounds + + \[ + \inferrule{P_1 \dots P_n \mid -}{L \diamond R} + \] + where \(P_i\) has the form \(L_i \diamond_i R_i\) and + \(\diamond_i \in \{<, \leq, =\}\). Furthermore \(\diamond = <\) if + \(\diamond_i = <\) for any \(i\) and \(\diamond = \leq\) + otherwise, \(L = L_1 + \cdots + L_n\) and \(R = R_1 + \cdots + R_n\).
          +
        • +
        + + + +
          +
        • +

          INT_TIGHT_UB

          +
          public static final ProofRule INT_TIGHT_UB
          +
          Arithmetic – Tighten strict integer upper bounds + + \[ + \inferrule{i < c \mid -}{i \leq \lfloor c \rfloor} + \] + where \(i\) has integer type.
          +
        • +
        + + + +
          +
        • +

          INT_TIGHT_LB

          +
          public static final ProofRule INT_TIGHT_LB
          +
          Arithmetic – Tighten strict integer lower bounds + + \[ + \inferrule{i > c \mid -}{i \geq \lceil c \rceil} + \] + where \(i\) has integer type.
          +
        • +
        + + + +
          +
        • +

          ARITH_TRICHOTOMY

          +
          public static final ProofRule ARITH_TRICHOTOMY
          +
          Arithmetic – Trichotomy of the reals + + \[ + \inferrule{A, B \mid -}{C} + \] + where \(\neg A, \neg B, C\) are \(x < c, x = c, x > c\) in some order. + Note that \(\neg\) here denotes arithmetic negation, i.e., flipping \(\geq\) to \(<\) etc.
          +
        • +
        + + + +
          +
        • +

          ARITH_REDUCTION

          +
          public static final ProofRule ARITH_REDUCTION
          +
          Arithmetic – Reduction + + \[ + \inferrule{- \mid t}{F} + \] + where \(t\) is an application of an extended arithmetic operator (e.g. + division, modulus, cosine, sqrt, is_int, to_int) and \(F\) is the + reduction predicate for \(t\). In other words, \(F\) is a + predicate that is used to reduce reasoning about \(t\) to reasoning + about the core operators of arithmetic. + + In detail, \(F\) is implemented by + \(\texttt{arith::OperatorElim::getAxiomFor(t)}\), see + :cvc5src:`theory/arith/operator_elim.h`.
          +
        • +
        + + + +
          +
        • +

          ARITH_POLY_NORM

          +
          public static final ProofRule ARITH_POLY_NORM
          +
          Arithmetic – Polynomial normalization + + \[ + \inferrule{- \mid t = s}{t = s} + \] + where \(\texttt{arith::PolyNorm::isArithPolyNorm(t, s)} = \top\). This + method normalizes polynomials \(s\) and \(t\) over arithmetic or + bitvectors.
          +
        • +
        + + + +
          +
        • +

          ARITH_POLY_NORM_REL

          +
          public static final ProofRule ARITH_POLY_NORM_REL
          +
          Arithmetic – Polynomial normalization for relations + + .. math. + \inferrule{c_x \cdot (x_1 - x_2) = c_y \cdot (y_1 - y_2) \mid \diamond} + {(x_1 \diamond x_2) = (y_1 \diamond y_2)} + + where \(\diamond \in \{<, \leq, =, \geq, >\}\) for arithmetic and + \(\diamond \in \{=\}\) for bitvectors. \(c_x\) and \(c_y\) are + scaling factors. For \(<, \leq, \geq, >\), the scaling factors have the + same sign. For bitvectors, they are set to \(1\). + + If \(c_x\) has type \(Real\) and \(x_1, x_2\) are of type + \(Int\), then \((x_1 - x_2)\) is wrapped in an application of + `to_real`, similarly for \((y_1 - y_2)\).
          +
        • +
        + + + +
          +
        • +

          ARITH_MULT_SIGN

          +
          public static final ProofRule ARITH_MULT_SIGN
          +
          Arithmetic – Sign inference + + \[ + \inferrule{- \mid f_1 \dots f_k, m}{(f_1 \land \dots \land f_k) \rightarrow m \diamond 0} + \] + where \(f_1 \dots f_k\) are variables compared to zero (less, greater + or not equal), \(m\) is a monomial from these variables and + \(\diamond\) is the comparison (less or equal) that results from the + signs of the variables. All variables with even exponent in \(m\) + should be given as not equal to zero while all variables with odd exponent + in \(m\) should be given as less or greater than zero.
          +
        • +
        + + + +
          +
        • +

          ARITH_MULT_POS

          +
          public static final ProofRule ARITH_MULT_POS
          +
          Arithmetic – Multiplication with positive factor + + \[ + \inferrule{- \mid m, l \diamond r}{(m > 0 \land l \diamond r) \rightarrow m \cdot l \diamond m \cdot r} + \] + where \(\diamond\) is a relation symbol.
          +
        • +
        + + + +
          +
        • +

          ARITH_MULT_NEG

          +
          public static final ProofRule ARITH_MULT_NEG
          +
          Arithmetic – Multiplication with negative factor + + \[ + \inferrule{- \mid m, l \diamond r}{(m < 0 \land l \diamond r) \rightarrow m \cdot l \diamond_{inv} m \cdot r} + \] + where \(\diamond\) is a relation symbol and \(\diamond_{inv}\) the + inverted relation symbol.
          +
        • +
        + + + +
          +
        • +

          ARITH_MULT_TANGENT

          +
          public static final ProofRule ARITH_MULT_TANGENT
          +
          Arithmetic – Multiplication tangent plane + + \[ + \inferruleSC{- \mid x, y, a, b, \sigma}{(t \leq tplane) = ((x \leq a \land y \geq b) \lor (x \geq a \land y \leq b))}{if $\sigma = \bot$} + + \inferruleSC{- \mid x, y, a, b, \sigma}{(t \geq tplane) = ((x \leq a \land y \leq b) \lor (x \geq a \land y \geq b))}{if $\sigma = \top$} + \] + where \(x,y\) are real terms (variables or extended terms), + \(t = x \cdot y\), \(a,b\) are real + constants, \(\sigma \in \{ \top, \bot\}\) and \(tplane := b \cdot x + a \cdot y - a \cdot b\) is the tangent plane of \(x \cdot y\) at \((a,b)\).
          +
        • +
        + + + +
          +
        • +

          ARITH_TRANS_PI

          +
          public static final ProofRule ARITH_TRANS_PI
          +
          Arithmetic – Transcendentals – Assert bounds on Pi + + \[ + \inferrule{- \mid l, u}{\texttt{real.pi} \geq l \land \texttt{real.pi} + \leq u} + \] + where \(l,u\) are valid lower and upper bounds on \(\pi\).
          +
        • +
        + + + +
          +
        • +

          ARITH_TRANS_EXP_NEG

          +
          public static final ProofRule ARITH_TRANS_EXP_NEG
          +
          Arithmetic – Transcendentals – Exp at negative values + + \[ + \inferrule{- \mid t}{(t < 0) \leftrightarrow (\exp(t) < 1)} + \]
          +
        • +
        + + + +
          +
        • +

          ARITH_TRANS_EXP_POSITIVITY

          +
          public static final ProofRule ARITH_TRANS_EXP_POSITIVITY
          +
          Arithmetic – Transcendentals – Exp is always positive + + \[ + \inferrule{- \mid t}{\exp(t) > 0} + \]
          +
        • +
        + + + +
          +
        • +

          ARITH_TRANS_EXP_SUPER_LIN

          +
          public static final ProofRule ARITH_TRANS_EXP_SUPER_LIN
          +
          Arithmetic – Transcendentals – Exp grows super-linearly for positive + values + + \[ + \inferrule{- \mid t}{t \leq 0 \lor \exp(t) > t+1} + \]
          +
        • +
        + + + +
          +
        • +

          ARITH_TRANS_EXP_ZERO

          +
          public static final ProofRule ARITH_TRANS_EXP_ZERO
          +
          Arithmetic – Transcendentals – Exp at zero + + \[ + \inferrule{- \mid t}{(t=0) \leftrightarrow (\exp(t) = 1)} + \]
          +
        • +
        + + + +
          +
        • +

          ARITH_TRANS_EXP_APPROX_ABOVE_NEG

          +
          public static final ProofRule ARITH_TRANS_EXP_APPROX_ABOVE_NEG
          +
          Arithmetic – Transcendentals – Exp is approximated from above for + negative values + + \[ + \inferrule{- \mid d,t,l,u}{(t \geq l \land t \leq u) \rightarrow exp(t) + \leq \texttt{secant}(\exp, l, u, t)} + \] + where \(d\) is an even positive number, \(t\) an arithmetic term + and \(l,u\) are lower and upper bounds on \(t\). Let \(p\) be + the \(d\)'th taylor polynomial at zero (also called the Maclaurin + series) of the exponential function. \(\texttt{secant}(\exp, l, u, t)\) + denotes the secant of \(p\) from \((l, \exp(l))\) to \((u, + \exp(u))\) evaluated at \(t\), calculated as follows: + + \[ + \frac{p(l) - p(u)}{l - u} \cdot (t - l) + p(l) + \] + The lemma states that if \(t\) is between \(l\) and \(u\), then + \(\exp(t\) is below the secant of \(p\) from \(l\) to + \(u\).
          +
        • +
        + + + +
          +
        • +

          ARITH_TRANS_EXP_APPROX_ABOVE_POS

          +
          public static final ProofRule ARITH_TRANS_EXP_APPROX_ABOVE_POS
          +
          Arithmetic – Transcendentals – Exp is approximated from above for + positive values + + \[ + \inferrule{- \mid d,t,l,u}{(t \geq l \land t \leq u) \rightarrow exp(t) + \leq \texttt{secant-pos}(\exp, l, u, t)} + \] + where \(d\) is an even positive number, \(t\) an arithmetic term + and \(l,u\) are lower and upper bounds on \(t\). Let \(p^*\) be + a modification of the \(d\)'th taylor polynomial at zero (also called + the Maclaurin series) of the exponential function as follows where + \(p(d-1)\) is the regular Maclaurin series of degree \(d-1\): + + \[ + p^* := p(d-1) \cdot \frac{1 + t^n}{n!} + \] + \(\texttt{secant-pos}(\exp, l, u, t)\) denotes the secant of \(p\) + from \((l, \exp(l))\) to \((u, \exp(u))\) evaluated at \(t\), + calculated as follows: + + \[ + \frac{p(l) - p(u)}{l - u} \cdot (t - l) + p(l) + \] + The lemma states that if \(t\) is between \(l\) and \(u\), then + \(\exp(t\) is below the secant of \(p\) from \(l\) to + \(u\).
          +
        • +
        + + + +
          +
        • +

          ARITH_TRANS_EXP_APPROX_BELOW

          +
          public static final ProofRule ARITH_TRANS_EXP_APPROX_BELOW
          +
          Arithmetic – Transcendentals – Exp is approximated from below + + \[ + \inferrule{- \mid d,c,t}{t \geq c \rightarrow exp(t) \geq \texttt{maclaurin}(\exp, d, c)} + \] + where \(d\) is an odd positive number, \(t\) an arithmetic term and + \(\texttt{maclaurin}(\exp, d, c)\) is the \(d\)'th taylor + polynomial at zero (also called the Maclaurin series) of the exponential + function evaluated at \(c\). The Maclaurin series for the exponential + function is the following: + + \[ + \exp(x) = \sum_{n=0}^{\infty} \frac{x^n}{n!} + \]
          +
        • +
        + + + +
          +
        • +

          ARITH_TRANS_SINE_BOUNDS

          +
          public static final ProofRule ARITH_TRANS_SINE_BOUNDS
          +
          Arithmetic – Transcendentals – Sine is always between -1 and 1 + + \[ + \inferrule{- \mid t}{\sin(t) \leq 1 \land \sin(t) \geq -1} + \]
          +
        • +
        + + + +
          +
        • +

          ARITH_TRANS_SINE_SHIFT

          +
          public static final ProofRule ARITH_TRANS_SINE_SHIFT
          +
          Arithmetic – Transcendentals – Sine is shifted to -pi...pi + + \[ + \inferrule{- \mid x}{-\pi \leq y \leq \pi \land \sin(y) = \sin(x) + \land (\ite{-\pi \leq x \leq \pi}{x = y}{x = y + 2 \pi s})} + \] + where \(x\) is the argument to sine, \(y\) is a new real skolem + that is \(x\) shifted into \(-\pi \dots \pi\) and \(s\) is a + new integer skolem that is the number of phases \(y\) is shifted. + In particular, \(y\) is the + TRANSCENDENTAL_PURIFY_ARG <cvc5.SkolemId.TRANSCENDENTAL_PURIFY_ARG> + skolem for \(\sin(x)\) and \(s\) is the + TRANSCENDENTAL_SINE_PHASE_SHIFT <cvc5.SkolemId.TRANSCENDENTAL_SINE_PHASE_SHIFT> + skolem for \(x\).
          +
        • +
        + + + +
          +
        • +

          ARITH_TRANS_SINE_SYMMETRY

          +
          public static final ProofRule ARITH_TRANS_SINE_SYMMETRY
          +
          Arithmetic – Transcendentals – Sine is symmetric with respect to + negation of the argument + + \[ + \inferrule{- \mid t}{\sin(t) - \sin(-t) = 0} + \]
          +
        • +
        + + + +
          +
        • +

          ARITH_TRANS_SINE_TANGENT_ZERO

          +
          public static final ProofRule ARITH_TRANS_SINE_TANGENT_ZERO
          +
          Arithmetic – Transcendentals – Sine is bounded by the tangent at zero + + .. math. + \inferrule{- \mid t}{(t > 0 \rightarrow \sin(t) < t) \land (t < 0 + \rightarrow \sin(t) > t)}
          +
        • +
        + + + +
          +
        • +

          ARITH_TRANS_SINE_TANGENT_PI

          +
          public static final ProofRule ARITH_TRANS_SINE_TANGENT_PI
          +
          Arithmetic – Transcendentals – Sine is bounded by the tangents at -pi + and pi + + .. math. + \inferrule{- \mid t}{(t > -\pi \rightarrow \sin(t) > -\pi - t) \land (t < + \pi \rightarrow \sin(t) < \pi - t)}
          +
        • +
        + + + +
          +
        • +

          ARITH_TRANS_SINE_APPROX_ABOVE_NEG

          +
          public static final ProofRule ARITH_TRANS_SINE_APPROX_ABOVE_NEG
          +
          Arithmetic – Transcendentals – Sine is approximated from above for + negative values + + \[ + \inferrule{- \mid d,t,lb,ub,l,u}{(t \geq lb land t \leq ub) \rightarrow + \sin(t) \leq \texttt{secant}(\sin, l, u, t)} + \] + where \(d\) is an even positive number, \(t\) an arithmetic term, + \(lb,ub\) are symbolic lower and upper bounds on \(t\) (possibly + containing \(\pi\)) and \(l,u\) the evaluated lower and upper + bounds on \(t\). Let \(p\) be the \(d\)'th taylor polynomial at + zero (also called the Maclaurin series) of the sine function. + \(\texttt{secant}(\sin, l, u, t)\) denotes the secant of \(p\) from + \((l, \sin(l))\) to \((u, \sin(u))\) evaluated at \(t\), + calculated as follows: + + \[ + \frac{p(l) - p(u)}{l - u} \cdot (t - l) + p(l) + \] + The lemma states that if \(t\) is between \(l\) and \(u\), then + \(\sin(t)\) is below the secant of \(p\) from \(l\) to + \(u\).
          +
        • +
        + + + +
          +
        • +

          ARITH_TRANS_SINE_APPROX_ABOVE_POS

          +
          public static final ProofRule ARITH_TRANS_SINE_APPROX_ABOVE_POS
          +
          Arithmetic – Transcendentals – Sine is approximated from above for + positive values + + \[ + \inferrule{- \mid d,t,c,lb,ub}{(t \geq lb land t \leq ub) \rightarrow + \sin(t) \leq \texttt{upper}(\sin, c)} + \] + where \(d\) is an even positive number, \(t\) an arithmetic term, + \(c\) an arithmetic constant and \(lb,ub\) are symbolic lower and + upper bounds on \(t\) (possibly containing \(\pi\)). Let \(p\) + be the \(d\)'th taylor polynomial at zero (also called the Maclaurin + series) of the sine function. \(\texttt{upper}(\sin, c)\) denotes the + upper bound on \(\sin(c)\) given by \(p\) and \(lb,up\) such + that \(\sin(t)\) is the maximum of the sine function on + \((lb,ub)\).
          +
        • +
        + + + +
          +
        • +

          ARITH_TRANS_SINE_APPROX_BELOW_NEG

          +
          public static final ProofRule ARITH_TRANS_SINE_APPROX_BELOW_NEG
          +
          Arithmetic – Transcendentals – Sine is approximated from below for + negative values + + \[ + \inferrule{- \mid d,t,c,lb,ub}{(t \geq lb land t \leq ub) \rightarrow + \sin(t) \geq \texttt{lower}(\sin, c)} + \] + where \(d\) is an even positive number, \(t\) an arithmetic term, + \(c\) an arithmetic constant and \(lb,ub\) are symbolic lower and + upper bounds on \(t\) (possibly containing \(\pi\)). Let \(p\) + be the \(d\)'th taylor polynomial at zero (also called the Maclaurin + series) of the sine function. \(\texttt{lower}(\sin, c)\) denotes the + lower bound on \(\sin(c)\) given by \(p\) and \(lb,up\) such + that \(\sin(t)\) is the minimum of the sine function on + \((lb,ub)\).
          +
        • +
        + + + +
          +
        • +

          ARITH_TRANS_SINE_APPROX_BELOW_POS

          +
          public static final ProofRule ARITH_TRANS_SINE_APPROX_BELOW_POS
          +
          Arithmetic – Transcendentals – Sine is approximated from below for + positive values + + \[ + \inferrule{- \mid d,t,lb,ub,l,u}{(t \geq lb land t \leq ub) \rightarrow + \sin(t) \geq \texttt{secant}(\sin, l, u, t)} + \] + where \(d\) is an even positive number, \(t\) an arithmetic term, + \(lb,ub\) are symbolic lower and upper bounds on \(t\) (possibly + containing \(\pi\)) and \(l,u\) the evaluated lower and upper + bounds on \(t\). Let \(p\) be the \(d\)'th taylor polynomial at + zero (also called the Maclaurin series) of the sine function. + \(\texttt{secant}(\sin, l, u, t)\) denotes the secant of \(p\) from + \((l, \sin(l))\) to \((u, \sin(u))\) evaluated at \(t\), + calculated as follows: + + \[ + \frac{p(l) - p(u)}{l - u} \cdot (t - l) + p(l) + \] + The lemma states that if \(t\) is between \(l\) and \(u\), then + \(\sin(t)\) is above the secant of \(p\) from \(l\) to + \(u\).
          +
        • +
        + + + +
          +
        • +

          LFSC_RULE

          +
          public static final ProofRule LFSC_RULE
          +
          External – LFSC + + Place holder for LFSC rules. + + \[ + \inferrule{P_1, \dots, P_n\mid \texttt{id}, Q, A_1,\dots, A_m}{Q} + \] + Note that the premises and arguments are arbitrary. It's expected that + \(\texttt{id}\) refer to a proof rule in the external LFSC calculus.
          +
        • +
        + + + +
          +
        • +

          ALETHE_RULE

          +
          public static final ProofRule ALETHE_RULE
          +
          External – Alethe + + Place holder for Alethe rules. + + \[ + \inferrule{P_1, \dots, P_n\mid \texttt{id}, Q, Q', A_1,\dots, A_m}{Q} + \] + Note that the premises and arguments are arbitrary. It's expected that + \(\texttt{id}\) refer to a proof rule in the external Alethe calculus, + and that \(Q'\) be the representation of Q to be printed by the Alethe + printer.
          +
        • +
        + + + +
          +
        • +

          UNKNOWN

          +
          public static final ProofRule UNKNOWN
          +
          External – Alethe + + Place holder for Alethe rules. + + \[ + \inferrule{P_1, \dots, P_n\mid \texttt{id}, Q, Q', A_1,\dots, A_m}{Q} + \] + Note that the premises and arguments are arbitrary. It's expected that + \(\texttt{id}\) refer to a proof rule in the external Alethe calculus, + and that \(Q'\) be the representation of Q to be printed by the Alethe + printer.
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          values

          +
          public static ProofRule[] values()
          +
          Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +
          +for (ProofRule c : ProofRule.values())
          +    System.out.println(c);
          +
          +
          +
          Returns:
          +
          an array containing the constants of this enum type, in the order they are declared
          +
          +
        • +
        + + + +
          +
        • +

          valueOf

          +
          public static ProofRule valueOf​(java.lang.String name)
          +
          Returns the enum constant of this type with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)
          +
          +
          Parameters:
          +
          name - the name of the enum constant to be returned.
          +
          Returns:
          +
          the enum constant with the specified name
          +
          Throws:
          +
          java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
          +
          java.lang.NullPointerException - if the argument is null
          +
          +
        • +
        + + + + + + + +
          +
        • +

          getValue

          +
          public int getValue()
          +
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
    + +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Result.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Result.html new file mode 100644 index 0000000000..7072bcf467 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Result.html @@ -0,0 +1,561 @@ + + + + + +Result + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Class Result

    +
    +
    +
      +
    • java.lang.Object
    • +
    • +
        +
      • io.github.cvc5.Result
      • +
      +
    • +
    +
    +
      +
    • +
      +
      public class Result
      +extends java.lang.Object
      +
      Encapsulation of a three-valued solver result, with explanations.
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Field Summary

        + + + + + + + + + + + + +
        Fields 
        Modifier and TypeFieldDescription
        protected longpointer 
        +
      • +
      +
      + +
      +
        +
      • + + +

        Constructor Summary

        + + + + + + + + + + +
        Constructors 
        ConstructorDescription
        Result() +
        Null result
        +
        +
      • +
      +
      + +
      + +
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Field Detail

        + + + +
          +
        • +

          pointer

          +
          protected long pointer
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          Result

          +
          public Result()
          +
          Null result
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          deletePointer

          +
          protected void deletePointer​(long pointer)
          +
        • +
        + + + +
          +
        • +

          isNull

          +
          public boolean isNull()
          +
          +
          Returns:
          +
          True if Result is empty, i.e., a nullary Result, and not an actual + result returned from a checkSat() (and friends) query.
          +
          +
        • +
        + + + +
          +
        • +

          isSat

          +
          public boolean isSat()
          +
          +
          Returns:
          +
          True if query was a satisfiable checkSat() or checkSatAssuming() + query.
          +
          +
        • +
        + + + +
          +
        • +

          isUnsat

          +
          public boolean isUnsat()
          +
          +
          Returns:
          +
          True if query was an unsatisfiable checkSat() or + checkSatAssuming() query.
          +
          +
        • +
        + + + +
          +
        • +

          isUnknown

          +
          public boolean isUnknown()
          +
          +
          Returns:
          +
          True if query was a checkSat() or checkSatAssuming() query and + cvc5 was not able to determine (un)satisfiability.
          +
          +
        • +
        + + + +
          +
        • +

          equals

          +
          public boolean equals​(java.lang.Object r)
          +
          Operator overloading for equality of two results.
          +
          +
          Overrides:
          +
          equals in class java.lang.Object
          +
          Parameters:
          +
          r - The result to compare to for equality.
          +
          Returns:
          +
          True if the results are equal.
          +
          +
        • +
        + + + +
          +
        • +

          getUnknownExplanation

          +
          public UnknownExplanation getUnknownExplanation()
          +
          Get an explanation for an unknown query result.
          +
          +
          Returns:
          +
          The explanation.
          +
          +
        • +
        + + + +
          +
        • +

          toString

          +
          protected java.lang.String toString​(long pointer)
          +
          +
          Returns:
          +
          A string representation of this result.
          +
          +
        • +
        + + + +
          +
        • +

          hashCode

          +
          public int hashCode()
          +
          Get the hash value of a result.
          +
          +
          Overrides:
          +
          hashCode in class java.lang.Object
          +
          Returns:
          +
          The hash value.
          +
          +
        • +
        + + + +
          +
        • +

          getPointer

          +
          public long getPointer()
          +
        • +
        + + + +
          +
        • +

          deletePointer

          +
          public void deletePointer()
          +
        • +
        + + + +
          +
        • +

          toString

          +
          public java.lang.String toString()
          +
          +
          Overrides:
          +
          toString in class java.lang.Object
          +
          +
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
    + +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/RoundingMode.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/RoundingMode.html new file mode 100644 index 0000000000..707e18829d --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/RoundingMode.html @@ -0,0 +1,482 @@ + + + + + +RoundingMode + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Enum RoundingMode

    +
    +
    +
      +
    • java.lang.Object
    • +
    • +
        +
      • java.lang.Enum<RoundingMode>
      • +
      • +
          +
        • io.github.cvc5.RoundingMode
        • +
        +
      • +
      +
    • +
    +
    +
      +
    • +
      +
      All Implemented Interfaces:
      +
      java.io.Serializable, java.lang.Comparable<RoundingMode>
      +
      +
      +
      public enum RoundingMode
      +extends java.lang.Enum<RoundingMode>
      +
    • +
    +
    +
    +
      +
    • + +
      + +
      + +
      +
        +
      • + + +

        Method Summary

        + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        All Methods Static Methods Instance Methods Concrete Methods 
        Modifier and TypeMethodDescription
        static RoundingModefromInt​(int value) 
        intgetValue() 
        static RoundingModevalueOf​(java.lang.String name) +
        Returns the enum constant of this type with the specified name.
        +
        static RoundingMode[]values() +
        Returns an array containing the constants of this enum type, in +the order they are declared.
        +
        +
          +
        • + + +

          Methods inherited from class java.lang.Enum

          +clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
        • +
        +
          +
        • + + +

          Methods inherited from class java.lang.Object

          +getClass, notify, notifyAll, wait, wait, wait
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Enum Constant Detail

        + + + +
          +
        • +

          ROUND_NEAREST_TIES_TO_EVEN

          +
          public static final RoundingMode ROUND_NEAREST_TIES_TO_EVEN
          +
          Round to the nearest even number. + + If the two nearest floating-point numbers bracketing an unrepresentable + infinitely precise result are equally near, the one with an even least + significant digit will be delivered.
          +
        • +
        + + + +
          +
        • +

          ROUND_TOWARD_POSITIVE

          +
          public static final RoundingMode ROUND_TOWARD_POSITIVE
          +
          Round towards positive infinity (SMT-LIB: +oo). + + The result shall be the format's floating-point number (possibly +oo) + closest to and no less than the infinitely precise result.
          +
        • +
        + + + +
          +
        • +

          ROUND_TOWARD_NEGATIVE

          +
          public static final RoundingMode ROUND_TOWARD_NEGATIVE
          +
          Round towards negative infinity (-oo). + + The result shall be the format's floating-point number (possibly -oo) + closest to and no less than the infinitely precise result.
          +
        • +
        + + + +
          +
        • +

          ROUND_TOWARD_ZERO

          +
          public static final RoundingMode ROUND_TOWARD_ZERO
          +
          Round towards zero. + + The result shall be the format's floating-point number closest to and no + greater in magnitude than the infinitely precise result.
          +
        • +
        + + + +
          +
        • +

          ROUND_NEAREST_TIES_TO_AWAY

          +
          public static final RoundingMode ROUND_NEAREST_TIES_TO_AWAY
          +
          Round to the nearest number away from zero. + + If the two nearest floating-point numbers bracketing an unrepresentable + infinitely precise result are equally near), the one with larger magnitude + will be selected.
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          values

          +
          public static RoundingMode[] values()
          +
          Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +
          +for (RoundingMode c : RoundingMode.values())
          +    System.out.println(c);
          +
          +
          +
          Returns:
          +
          an array containing the constants of this enum type, in the order they are declared
          +
          +
        • +
        + + + +
          +
        • +

          valueOf

          +
          public static RoundingMode valueOf​(java.lang.String name)
          +
          Returns the enum constant of this type with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)
          +
          +
          Parameters:
          +
          name - the name of the enum constant to be returned.
          +
          Returns:
          +
          the enum constant with the specified name
          +
          Throws:
          +
          java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
          +
          java.lang.NullPointerException - if the argument is null
          +
          +
        • +
        + + + + + + + +
          +
        • +

          getValue

          +
          public int getValue()
          +
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
    + +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/SkolemId.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/SkolemId.html new file mode 100644 index 0000000000..33dd23b00e --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/SkolemId.html @@ -0,0 +1,2272 @@ + + + + + +SkolemId + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Enum SkolemId

    +
    +
    +
      +
    • java.lang.Object
    • +
    • +
        +
      • java.lang.Enum<SkolemId>
      • +
      • +
          +
        • io.github.cvc5.SkolemId
        • +
        +
      • +
      +
    • +
    +
    +
      +
    • +
      +
      All Implemented Interfaces:
      +
      java.io.Serializable, java.lang.Comparable<SkolemId>
      +
      +
      +
      public enum SkolemId
      +extends java.lang.Enum<SkolemId>
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Enum Constant Summary

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        Enum Constants 
        Enum ConstantDescription
        ARITH_VTS_DELTA +
        Used to reason about virtual term substitution.
        +
        ARITH_VTS_DELTA_FREE +
        Used to reason about virtual term substitution.
        +
        ARITH_VTS_INFINITY +
        Used to reason about virtual term substitution.
        +
        ARITH_VTS_INFINITY_FREE +
        Used to reason about virtual term substitution.
        +
        ARRAY_DEQ_DIFF +
        The array diff skolem, which is the witness k for the inference + (=> (not (= A B)) (not (= (select A k) (select B k)))).
        +
        BAGS_CARD_COMBINE +
        An uninterpreted function for bag.card operator: + To compute (bag.card A), we need a function that + counts multiplicities of distinct elements.
        +
        BAGS_CHOOSE +
        An interpreted function uf for bag.choose operator: + (bag.choose A) is replaced by (uf A) along with the inference + that (>= (bag.count (uf A) A) 1) when A is non-empty.
        +
        BAGS_DEQ_DIFF +
        The bag diff skolem, which is the witness k for the inference + (=> (not (= A B)) (not (= (bag.count k A) (bag.count k B)))).
        +
        BAGS_DISTINCT_ELEMENTS +
        An uninterpreted function for distinct elements of a bag A, which returns + the n^th distinct element of the bag.
        +
        BAGS_DISTINCT_ELEMENTS_SIZE +
        A skolem variable for the size of the distinct elements of a bag A.
        +
        BAGS_DISTINCT_ELEMENTS_UNION_DISJOINT +
        An uninterpreted function for the union of distinct elements + in a bag (Bag T).
        +
        BAGS_FOLD_CARD +
        An uninterpreted function for bag.fold operator: + To compute (bag.fold f t A), we need to guess the cardinality n of + bag A using a skolem function with BAGS_FOLD_CARD id.
        +
        BAGS_FOLD_COMBINE +
        An uninterpreted function for bag.fold operator: + To compute (bag.fold f t A), we need a function that + accumulates intermidiate values.
        +
        BAGS_FOLD_ELEMENTS +
        An uninterpreted function for bag.fold operator: + To compute (bag.fold f t A), we need a function for + elements of A.
        +
        BAGS_FOLD_UNION_DISJOINT +
        An uninterpreted function for bag.fold operator: + To compute (bag.fold f t A), we need a function for + elements of A which is given by elements defined in + BAGS_FOLD_ELEMENTS.
        +
        BAGS_MAP_INDEX +
        A skolem variable for the index that is unique per terms + (bag.map f A), y, e where: + f: (-> E T), + A: (Bag E), + y: T, + e: E + + + Number of skolem indices: 5 + + 1: a map term of the form (bag.map f A).
        +
        BAGS_MAP_PREIMAGE_INJECTIVE +
        A skolem for the preimage of an element y in (bag.map f A) such that + (= (f x) y) where f: (-> E T) is an injective function.
        +
        BAGS_MAP_SUM +
        An uninterpreted function for bag.map operator: + If bag A is {uf(1), ..., uf(n)} (see BAGS_DISTINCT_ELEMENTS}, + then the multiplicity of an element y in a bag (bag.map f A) is sum(n), + where sum: (-> Int Int) is a skolem function such that: + sum(0) = 0 + sum(i) = sum (i-1) + (bag.count (uf i) A) + + + Number of skolem indices: 3 + + 1: the function f of type (-> E T).
        +
        BV_EMPTY +
        The empty bitvector.
        +
        BV_TO_INT_UF +
        A skolem function introduced by the int-blaster.
        +
        DIV_BY_ZERO +
        The function for division by zero.
        +
        FP_MAX_ZERO +
        A skolem function that is unique per floating-point sort, introduced for + the undefined zero case of fp.max.
        +
        FP_MIN_ZERO +
        A skolem function that is unique per floating-point sort, introduced for + the undefined zero case of fp.min.
        +
        FP_TO_REAL +
        A skolem function introduced for the undefined of fp.to_real that is + unique per floating-point sort.
        +
        FP_TO_SBV +
        A skolem function introduced for the undefined out-ouf-bounds case of + fp.to_sbv that is unique per floating-point sort and sort of the + arguments to the operator.
        +
        FP_TO_UBV +
        A skolem function introduced for the undefined out-ouf-bounds case of + fp.to_ubv that is unique per floating-point sort and sort of the + arguments to the operator.
        +
        GROUND_TERM +
        An arbitrary ground term of a given sort.
        +
        HO_DEQ_DIFF +
        The higher-roder diff skolem, which is the witness k for the inference + (=> (not (= A B)) (not (= (A k1 ... kn) (B k1 ... kn)))).
        +
        INT_DIV_BY_ZERO +
        The function for integer division by zero.
        +
        INTERNAL +
        The identifier of the skolem is not exported.
        +
        MOD_BY_ZERO +
        The function for integer modulus by zero.
        +
        NONE +
        Indicates this is not a skolem.
        +
        PURIFY +
        The purification skolem for a term.
        +
        QUANTIFIERS_SKOLEMIZE +
        The n^th skolem for the negation of universally quantified formula Q.
        +
        RE_FIRST_MATCH +
        For string a and regular expression R, this skolem is the string that + the first, shortest match of R was matched to in a.
        +
        RE_FIRST_MATCH_POST +
        For string a and regular expression R, this skolem is the remainder + of a after the first, shortest match of R in a.
        +
        RE_FIRST_MATCH_PRE +
        The next three skolems are used to decompose the match of a regular + expression in string.
        +
        RE_UNFOLD_POS_COMPONENT +
        Regular expression unfold component: if (str.in_re a R), where R is + (re.++ R0 ... Rn), then the RE_UNFOLD_POS_COMPONENT for indices + (a,R,i) is a string ki such that (= a (str.++ k0 ... kn)) and + (str.in_re k0 R0) for i = 0, ..., n.
        +
        RELATIONS_GROUP_PART +
        Given a group term ((_ rel.group n1 ... nk) A) of type + (Set (Relation T)) this skolem maps elements of A to their parts in the + resulting partition.
        +
        RELATIONS_GROUP_PART_ELEMENT +
        Given a group term ((_ rel.group n1 ...
        +
        SETS_CHOOSE +
        An interpreted function for set.choose operator, where (set.choose A) + is expanded to (uf A) along with the inference + (set.member (uf A) A)) when A is non-empty, + where uf: (-> (Set E) E) is this skolem function, and E is the type of + elements of A.
        +
        SETS_DEQ_DIFF +
        The set diff skolem, which is the witness k for the inference + (=> (not (= A B)) (not (= (set.member k A) (set.member k B)))).
        +
        SETS_FOLD_CARD +
        An uninterpreted function for set.fold operator: + To compute (set.fold f t A), we need to guess the cardinality n of + set A using a skolem function with SETS_FOLD_CARD id.
        +
        SETS_FOLD_COMBINE +
        An uninterpreted function for set.fold operator: + To compute (set.fold f t A), we need a function that + accumulates intermidiate values.
        +
        SETS_FOLD_ELEMENTS +
        An uninterpreted function for set.fold operator: + To compute (set.fold f t A), we need a function for + elements of A.
        +
        SETS_FOLD_UNION +
        An uninterpreted function for set.fold operator: + To compute (set.fold f t A), we need a function for + elements of A which is given by elements defined in + SETS_FOLD_ELEMENTS.
        +
        SETS_MAP_DOWN_ELEMENT +
        A skolem variable that is unique per terms (set.map f A), y which is an + element in (set.map f A).
        +
        SHARED_SELECTOR +
        A shared datatype selector, see Reynolds et.
        +
        STRINGS_DEQ_DIFF +
        Difference index for string disequalities, such that k is the witness for + the inference + (=> (not (= a b)) (not (= (substr a k 1) (substr b k 1)))) + where note that `k` may be out of bounds for at most of a,b.
        +
        STRINGS_ITOS_RESULT +
        A function used to define intermediate results of str.from_int + applications.
        +
        STRINGS_NUM_OCCUR +
        An integer corresponding to the number of times a string occurs in another + string.
        +
        STRINGS_NUM_OCCUR_RE +
        Analogous to STRINGS_NUM_OCCUR, but for regular expressions.
        +
        STRINGS_OCCUR_INDEX +
        A function k such that for x = 0...n, (k x) is the end + index of the x^th occurrence of a string b in string a, where n is the + number of occurrences of b in a, and (= (k 0) 0).
        +
        STRINGS_OCCUR_INDEX_RE +
        Analogous to STRINGS_OCCUR_INDEX, but for regular expressions.
        +
        STRINGS_OCCUR_LEN_RE +
        A function k where for x = 0...n, (k x) is the length of + the x^th occurrence of R in a (excluding matches of empty strings) where R + is a regular expression, n is the number of occurrences of R in a, and + (= (k 0) 0).
        +
        STRINGS_REPLACE_ALL_RESULT +
        A function used to define intermediate results of str.replace_all and + str.replace_re_all applications.
        +
        STRINGS_STOI_NON_DIGIT +
        A position containing a non-digit in a string, used when (str.to_int a) + is equal to -1.
        +
        STRINGS_STOI_RESULT +
        A function used to define intermediate results of str.from_int + applications.
        +
        TABLES_GROUP_PART +
        Given a group term ((_ table.group n1 ... nk) A) of type + (Bag (Table T)), this skolem maps elements of A to their parts in the + resulting partition.
        +
        TABLES_GROUP_PART_ELEMENT +
        Given a group term ((_ table.group n1 ... nk) A) of type + (Bag (Table T)) and a part B of type (Table T), this function + returns a skolem element that is a member of B if B is not empty.
        +
        TRANSCENDENTAL_PURIFY +
        A function introduced to eliminate extended trancendental functions.
        +
        TRANSCENDENTAL_PURIFY_ARG +
        Argument used to purify trancendental function app (f x).
        +
        TRANSCENDENTAL_SINE_PHASE_SHIFT +
        Argument used to reason about the phase shift of arguments to sine.
        +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Summary

        + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        All Methods Static Methods Instance Methods Concrete Methods 
        Modifier and TypeMethodDescription
        static SkolemIdfromInt​(int value) 
        intgetValue() 
        static SkolemIdvalueOf​(java.lang.String name) +
        Returns the enum constant of this type with the specified name.
        +
        static SkolemId[]values() +
        Returns an array containing the constants of this enum type, in +the order they are declared.
        +
        +
          +
        • + + +

          Methods inherited from class java.lang.Enum

          +clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
        • +
        +
          +
        • + + +

          Methods inherited from class java.lang.Object

          +getClass, notify, notifyAll, wait, wait, wait
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Enum Constant Detail

        + + + +
          +
        • +

          INTERNAL

          +
          public static final SkolemId INTERNAL
          +
          The identifier of the skolem is not exported. These skolems should not + appear in any user-level API calls.
          +
        • +
        + + + +
          +
        • +

          PURIFY

          +
          public static final SkolemId PURIFY
          +
          The purification skolem for a term. This is a variable that is semantically + equivalent to the indexed term t. + +
            +
          • Number of skolem indices: 1 +
              +
            • 1: The term t that this skolem purifies. +
            +
          • +
          • Sort: The sort of t. +
          +
        • +
        + + + +
          +
        • +

          GROUND_TERM

          +
          public static final SkolemId GROUND_TERM
          +
          An arbitrary ground term of a given sort. + +
            +
          • Number of skolem indices: 1 +
              +
            • 1: A term that represents the sort of the term. +
            +
          • +
          • Sort: The sort given by the index. +
          +
        • +
        + + + +
          +
        • +

          ARRAY_DEQ_DIFF

          +
          public static final SkolemId ARRAY_DEQ_DIFF
          +
          The array diff skolem, which is the witness k for the inference + (=> (not (= A B)) (not (= (select A k) (select B k)))). + +
            +
          • Number of skolem indices: 2 +
              +
            • 1: The first array of sort (Array T1 T2). +
            • +
            • 2: The second array of sort (Array T1 T2). +
            +
          • +
          • Sort: T1 +
          +
        • +
        + + + +
          +
        • +

          BV_EMPTY

          +
          public static final SkolemId BV_EMPTY
          +
          The empty bitvector. + +
            +
          • Number of skolem indices: 0 +
          • +
          • Type: (_ BitVec 0) +
          +
        • +
        + + + +
          +
        • +

          DIV_BY_ZERO

          +
          public static final SkolemId DIV_BY_ZERO
          +
          The function for division by zero. This is semantically equivalent to the + SMT-LIB term (lambda ((x Real)) (/ x 0.0)). + +
            +
          • Number of skolem indices: 0 +
          • +
          • Sort: (-> Real Real) +
          +
        • +
        + + + +
          +
        • +

          INT_DIV_BY_ZERO

          +
          public static final SkolemId INT_DIV_BY_ZERO
          +
          The function for integer division by zero. This is semantically equivalent + to the SMT-LIB term (lambda ((x Int)) (div x 0)). + +
            +
          • Number of skolem indices: 0 +
          • +
          • Sort: (-> Int Int) +
          +
        • +
        + + + +
          +
        • +

          MOD_BY_ZERO

          +
          public static final SkolemId MOD_BY_ZERO
          +
          The function for integer modulus by zero. This is semantically equivalent + to the SMT-LIB term (lambda ((x Int)) (mod x 0)). + +
            +
          • Number of skolem indices: 0 +
          • +
          • Sort: (-> Int Int) +
          +
        • +
        + + + +
          +
        • +

          TRANSCENDENTAL_PURIFY

          +
          public static final SkolemId TRANSCENDENTAL_PURIFY
          +
          A function introduced to eliminate extended trancendental functions. + Transcendental functions like sqrt, arccos, arcsin, etc. are replaced + during processing with uninterpreted functions that are unique to + each function. + +
            +
          • Number of skolem indices: 1 +
              +
            • 1: A lambda corresponding to the function, e.g., +
            +
          + `(lambda ((x Real)) (sqrt x))`. +
            +
          • Sort: (-> Real Real) +
          +
        • +
        + + + +
          +
        • +

          TRANSCENDENTAL_PURIFY_ARG

          +
          public static final SkolemId TRANSCENDENTAL_PURIFY_ARG
          +
          Argument used to purify trancendental function app (f x). + For (sin x), this is a variable that is assumed to be in phase with + x that is between -pi and pi. + +
            +
          • Number of skolem indices: 1 +
              +
            • 1: The application of a trancendental function. +
            +
          • +
          • Sort: Real +
          +
        • +
        + + + +
          +
        • +

          TRANSCENDENTAL_SINE_PHASE_SHIFT

          +
          public static final SkolemId TRANSCENDENTAL_SINE_PHASE_SHIFT
          +
          Argument used to reason about the phase shift of arguments to sine. + In particular, this is an integral rational indicating the number of times + \(2\pi\) is added to a real value between \(-\pi\) and \(\pi\) + to obtain the value of argument to sine. + +
            +
          • Number of skolem indices: 1 +
              +
            • 1: The argument to sine. +
            +
          • +
          • Sort: Real +
          +
        • +
        + + + +
          +
        • +

          ARITH_VTS_DELTA

          +
          public static final SkolemId ARITH_VTS_DELTA
          +
          Used to reason about virtual term substitution. This term represents + an infinitesimal. This skolem is expected to appear in instantiations + and immediately be rewritten via virtual term substitution. + +
            +
          • Number of skolem indices: 0 +
          • +
          • Sort: Real +
          +
        • +
        + + + +
          +
        • +

          ARITH_VTS_DELTA_FREE

          +
          public static final SkolemId ARITH_VTS_DELTA_FREE
          +
          Used to reason about virtual term substitution. This term represents + an infinitesimal. Unlike ARITH_VTS_DELTA, this skolem may appear in + lemmas. + +
            +
          • Number of skolem indices: 0 +
          • +
          • Sort: Real +
          +
        • +
        + + + +
          +
        • +

          ARITH_VTS_INFINITY

          +
          public static final SkolemId ARITH_VTS_INFINITY
          +
          Used to reason about virtual term substitution. This term represents + infinity. This skolem is expected to appear in instantiations + and immediately be rewritten via virtual term substitution. + +
            +
          • Number of skolem indices: 0 +
              +
            • 1: A term that represents an arithmetic sort (Int or Real). +
            +
          • +
          • Sort: The sort given by the index. +
          +
        • +
        + + + +
          +
        • +

          ARITH_VTS_INFINITY_FREE

          +
          public static final SkolemId ARITH_VTS_INFINITY_FREE
          +
          Used to reason about virtual term substitution. This term represents + infinity. Unlike ARITH_VTS_INFINITY, this skolem may appear in + lemmas. + +
            +
          • Number of skolem indices: 0 +
              +
            • 1: A term that represents an arithmetic sort (Int or Real). +
            +
          • +
          • Sort: The sort given by the index. +
          +
        • +
        + + + +
          +
        • +

          SHARED_SELECTOR

          +
          public static final SkolemId SHARED_SELECTOR
          +
          A shared datatype selector, see Reynolds et. al. "Datatypes with Shared + Selectors", IJCAR 2018. Represents a selector that can extract fields + of multiple constructors. + +
            +
          • Number of skolem indices: 3 +
              +
            • 1: A term that represents the datatype we are extracting from. +
            • +
            • 2: A term that represents the sort of field we are extracting. +
            • +
            • 3: An integer n such that this shared selector returns the n^th + subfield term of the given sort. +
            +
          • +
          • Sort: A selector sort whose domain is given by first index, + and whose codomain is the given by the second index. +
          +
        • +
        + + + +
          +
        • +

          HO_DEQ_DIFF

          +
          public static final SkolemId HO_DEQ_DIFF
          +
          The higher-roder diff skolem, which is the witness k for the inference + (=> (not (= A B)) (not (= (A k1 ... kn) (B k1 ... kn)))). + +
            +
          • Number of skolem indices: 2 +
              +
            • 1: The first function of sort (-> T1 ... Tn T). +
            • +
            • 2: The second function of sort (-> T1 ... Tn T). +
            • +
            • 3: The argument index i. +
            +
          • +
          • Sort: Ti +
          +
        • +
        + + + +
          +
        • +

          QUANTIFIERS_SKOLEMIZE

          +
          public static final SkolemId QUANTIFIERS_SKOLEMIZE
          +
          The n^th skolem for the negation of universally quantified formula Q. + +
            +
          • Number of skolem indices: 2 +
              +
            • 1: The quantified formula Q. +
            • +
            • 2: The index of the variable in the binder of Q to skolemize. +
            +
          • +
          • Sort: The type of the variable referenced by the second index. +
          +
        • +
        + + + +
          +
        • +

          STRINGS_NUM_OCCUR

          +
          public static final SkolemId STRINGS_NUM_OCCUR
          +
          An integer corresponding to the number of times a string occurs in another + string. This is used to reason about str.replace_all. + +
            +
          • Number of skolem indices: 2 +
              +
            • 1: The first string. +
            • +
            • 2: The second string. +
            +
          • +
          • Sort: Int +
          +
        • +
        + + + +
          +
        • +

          STRINGS_OCCUR_INDEX

          +
          public static final SkolemId STRINGS_OCCUR_INDEX
          +
          A function k such that for x = 0...n, (k x) is the end + index of the x^th occurrence of a string b in string a, where n is the + number of occurrences of b in a, and (= (k 0) 0). This is used to + reason about str.replace_all. + +
            +
          • Number of skolem indices: 2 +
              +
            • 1: The first string. +
            • +
            • 2: The second string. +
            +
          • +
          • Sort: (-> Int Int) +
          +
        • +
        + + + +
          +
        • +

          STRINGS_NUM_OCCUR_RE

          +
          public static final SkolemId STRINGS_NUM_OCCUR_RE
          +
          Analogous to STRINGS_NUM_OCCUR, but for regular expressions. + An integer corresponding to the number of times a regular expression can + be matched in a string. This is used to reason about str.replace_all_re. + +
            +
          • Number of skolem indices: 2 +
              +
            • 1: The string to match. +
            • +
            • 2: The regular expression to find. +
            +
          • +
          • Sort: Int +
          +
        • +
        + + + +
          +
        • +

          STRINGS_OCCUR_INDEX_RE

          +
          public static final SkolemId STRINGS_OCCUR_INDEX_RE
          +
          Analogous to STRINGS_OCCUR_INDEX, but for regular expressions. + A function k such that for x = 0...n, (k x) is the end + index of the x^th occurrence of a regular expression R in string a, where + n is the number of occurrences of R in a, and (= (k 0) 0). This is used + to reason about str.replace_all_re. + +
            +
          • Number of skolem indices: 2 +
              +
            • 1: The string to match. +
            • +
            • 2: The regular expression to find. +
            +
          • +
          • Sort: (-> Int Int) +
          +
        • +
        + + + +
          +
        • +

          STRINGS_OCCUR_LEN_RE

          +
          public static final SkolemId STRINGS_OCCUR_LEN_RE
          +
          A function k where for x = 0...n, (k x) is the length of + the x^th occurrence of R in a (excluding matches of empty strings) where R + is a regular expression, n is the number of occurrences of R in a, and + (= (k 0) 0). + +
            +
          • Number of skolem indices: 2 +
              +
            • 1: The string to match. +
            • +
            • 2: The regular expression to find. +
            +
          • +
          • Sort: (-> Int Int) +
          +
        • +
        + + + +
          +
        • +

          STRINGS_DEQ_DIFF

          +
          public static final SkolemId STRINGS_DEQ_DIFF
          +
          Difference index for string disequalities, such that k is the witness for + the inference + (=> (not (= a b)) (not (= (substr a k 1) (substr b k 1)))) + where note that `k` may be out of bounds for at most of a,b. + +
            +
          • Number of skolem indices: 2 +
              +
            • 1: The first string. +
            • +
            • 2: The second string. +
            +
          • +
          • Sort: Int +
          +
        • +
        + + + +
          +
        • +

          STRINGS_REPLACE_ALL_RESULT

          +
          public static final SkolemId STRINGS_REPLACE_ALL_RESULT
          +
          A function used to define intermediate results of str.replace_all and + str.replace_re_all applications. This denotes a function that denotes the + result of processing the string or sequence after processing the n^th + occurrence of string or match of the regular expression in the given + replace_all term. + +
            +
          • Number of skolem indices: 1 +
              +
            • 1: The application of replace_all or replace_all_re. +
            +
          • +
          • Sort: (-> Int S) where S is either String or (Seq T) for +
          + some T.
          +
        • +
        + + + +
          +
        • +

          STRINGS_ITOS_RESULT

          +
          public static final SkolemId STRINGS_ITOS_RESULT
          +
          A function used to define intermediate results of str.from_int + applications. This is a function k denoting the result + of processing the first n digits of the argument. + +
            +
          • Number of skolem indices: 1 +
              +
            • 1: The argument to str.from_int. +
            +
          • +
          • Sort: (-> Int Int) +
          +
        • +
        + + + +
          +
        • +

          STRINGS_STOI_RESULT

          +
          public static final SkolemId STRINGS_STOI_RESULT
          +
          A function used to define intermediate results of str.from_int + applications. This is a function k of type (-> Int String) denoting the + result of processing the first n characters of the argument. + +
            +
          • Number of skolem indices: 1 +
              +
            • 1: The argument to str.to_int. +
            +
          • +
          • Sort: (-> Int String) +
          +
        • +
        + + + +
          +
        • +

          STRINGS_STOI_NON_DIGIT

          +
          public static final SkolemId STRINGS_STOI_NON_DIGIT
          +
          A position containing a non-digit in a string, used when (str.to_int a) + is equal to -1. This is an integer that returns a position for which the + argument string is not a digit if one exists, or is unconstrained otherwise. + +
            +
          • Number of skolem indices: 1 +
              +
            • 1: The argument to str.to_int. +
            +
          • +
          • Sort: Int +
          +
        • +
        + + + +
          +
        • +

          RE_FIRST_MATCH_PRE

          +
          public static final SkolemId RE_FIRST_MATCH_PRE
          +
          The next three skolems are used to decompose the match of a regular + expression in string. + + For string a and regular expression R, this skolem is the prefix of + string a before the first, shortest match of R in a. Formally, if + (str.in_re a (re.++ (re.* re.allchar) R (re.* re.allchar))), then + there exists strings k_pre, k_match, k_post such that: + (= a (str.++ k_pre k_match k_post)) and + (= (len k_pre) (indexof_re a R 0)) and + ``(forall ((l Int)) (=> (< 0 l (len k_match)) + (not (str.in_re (substr k_match 0 l) R))))`` and + (str.in_re k_match R) + This skolem is k_pre, and the proceeding two skolems are k_match and + k_post. + +
            +
          • Number of skolem indices: 2 +
              +
            • 1: The string. +
            • +
            • 2: The regular expression to match. +
            +
          • +
          • Sort: String +
          +
        • +
        + + + +
          +
        • +

          RE_FIRST_MATCH

          +
          public static final SkolemId RE_FIRST_MATCH
          +
          For string a and regular expression R, this skolem is the string that + the first, shortest match of R was matched to in a. + +
            +
          • Number of skolem indices: 2 +
              +
            • 1: The string. +
            • +
            • 2: The regular expression to match. +
            +
          • +
          • Sort: String +
          +
        • +
        + + + +
          +
        • +

          RE_FIRST_MATCH_POST

          +
          public static final SkolemId RE_FIRST_MATCH_POST
          +
          For string a and regular expression R, this skolem is the remainder + of a after the first, shortest match of R in a. + +
            +
          • Number of skolem indices: 2 +
              +
            • 1: The string. +
            • +
            • 2: The regular expression to match. +
            +
          • +
          • Sort: String +
          +
        • +
        + + + +
          +
        • +

          RE_UNFOLD_POS_COMPONENT

          +
          public static final SkolemId RE_UNFOLD_POS_COMPONENT
          +
          Regular expression unfold component: if (str.in_re a R), where R is + (re.++ R0 ... Rn), then the RE_UNFOLD_POS_COMPONENT for indices + (a,R,i) is a string ki such that (= a (str.++ k0 ... kn)) and + (str.in_re k0 R0) for i = 0, ..., n. + +
            +
          • Number of skolem indices: 3 +
              +
            • 1: The string. +
            • +
            • 2: The regular expression. +
            • +
            • 3: The index of the skolem. +
            +
          • +
          • Sort: String +
          +
        • +
        + + + +
          +
        • +

          BAGS_CARD_COMBINE

          +
          public static final SkolemId BAGS_CARD_COMBINE
          +
          An uninterpreted function for bag.card operator: + To compute (bag.card A), we need a function that + counts multiplicities of distinct elements. We call this function + combine of type Int -> Int where: + combine(0) = 0. + combine(i) = m(elements(i), A) + combine(i-1) for 1 <= i <= n. + elements: a skolem function for (bag.fold f t A). + See BAGS_DISTINCT_ELEMENTS. + n: is the number of distinct elements in A. + +
            +
          • Number of skolem indices: 1 +
              +
            • 1: the bag argument A. +
            +
          • +
          • Sort: (-> Int Int) +
          +
        • +
        + + + +
          +
        • +

          BAGS_DISTINCT_ELEMENTS_UNION_DISJOINT

          +
          public static final SkolemId BAGS_DISTINCT_ELEMENTS_UNION_DISJOINT
          +
          An uninterpreted function for the union of distinct elements + in a bag (Bag T). To compute operators like bag.card, + we need a function for distinct elements in A of type (-> Int T) + (see BAGS_DISTINCT_ELEMENTS). + We also need to restrict the range [1, n] to only elements in the bag + as follows: + unionDisjoint(0) = bag.empty. + unionDisjoint(i) = disjoint union of {<elements(i), m(elements(i), A)>} + and unionDisjoint(i-1). + unionDisjoint(n) = A. + +
            +
          • Number of skolem indices: 1 +
              +
            • 1: the bag argument A of type (Bag T). +
            +
          • +
          • Sort: (-> Int (Bag T)) +
          +
        • +
        + + + +
          +
        • +

          BAGS_FOLD_CARD

          +
          public static final SkolemId BAGS_FOLD_CARD
          +
          An uninterpreted function for bag.fold operator: + To compute (bag.fold f t A), we need to guess the cardinality n of + bag A using a skolem function with BAGS_FOLD_CARD id. + +
            +
          • Number of skolem indices: 1 +
              +
            • 1: the bag argument A. +
            +
          • +
          • Sort: Int +
          +
        • +
        + + + +
          +
        • +

          BAGS_FOLD_COMBINE

          +
          public static final SkolemId BAGS_FOLD_COMBINE
          +
          An uninterpreted function for bag.fold operator: + To compute (bag.fold f t A), we need a function that + accumulates intermidiate values. We call this function + combine of type Int -> T2 where: + combine(0) = t + combine(i) = f(elements(i), combine(i - 1)) for 1 <= i <= n. + elements: a skolem function for (bag.fold f t A) + see BAGS_FOLD_ELEMENTS. + n: is the cardinality of A. + T2: is the type of initial value t. + +
            +
          • Number of skolem indices: 3 +
              +
            • 1: the function f of type (-> T1 T2). +
            • +
            • 2: the initial value t of type T2. +
            • +
            • 3: the bag argument A of type (Bag T1). +
            +
          • +
          • Sort: (-> Int T2) +
          +
        • +
        + + + +
          +
        • +

          BAGS_FOLD_ELEMENTS

          +
          public static final SkolemId BAGS_FOLD_ELEMENTS
          +
          An uninterpreted function for bag.fold operator: + To compute (bag.fold f t A), we need a function for + elements of A. We call this function + elements of type (-> Int T1) where T1 is the type of + elements of A. + If the cardinality of A is n, then + A is the disjoint union of {elements(i)} for 1 <= i <= n. + See BAGS_FOLD_UNION_DISJOINT. + +
            +
          • Number of skolem indices: 1 +
              +
            • 1: a bag argument A of type (Bag T1) +
            +
          • +
          • Sort: (-> Int T1) +
          +
        • +
        + + + +
          +
        • +

          BAGS_FOLD_UNION_DISJOINT

          +
          public static final SkolemId BAGS_FOLD_UNION_DISJOINT
          +
          An uninterpreted function for bag.fold operator: + To compute (bag.fold f t A), we need a function for + elements of A which is given by elements defined in + BAGS_FOLD_ELEMENTS. + We also need unionDisjoint: (-> Int (Bag T1)) to compute + the disjoint union such that: + unionDisjoint(0) = bag.empty. + unionDisjoint(i) = disjoint union of {elements(i)} and unionDisjoint (i-1). + unionDisjoint(n) = A. + +
            +
          • Number of skolem indices: 1 +
              +
            • 1: the bag argument A of type (Bag T1). +
            +
          • +
          • Sort: (-> Int (Bag T1)) +
          +
        • +
        + + + +
          +
        • +

          BAGS_CHOOSE

          +
          public static final SkolemId BAGS_CHOOSE
          +
          An interpreted function uf for bag.choose operator: + (bag.choose A) is replaced by (uf A) along with the inference + that (>= (bag.count (uf A) A) 1) when A is non-empty. + where T is the type of elements of A. + +
            +
          • Number of skolem indices: 1 +
              +
            • 1: the bag to chose from, of type (Bag T). +
            +
          • +
          • Sort: (-> (Bag T) T) +
          +
        • +
        + + + +
          +
        • +

          BAGS_DISTINCT_ELEMENTS

          +
          public static final SkolemId BAGS_DISTINCT_ELEMENTS
          +
          An uninterpreted function for distinct elements of a bag A, which returns + the n^th distinct element of the bag. + See BAGS_DISTINCT_ELEMENTS_UNION_DISJOINT. + +
            +
          • Number of skolem indices: 1 +
              +
            • 1: the bag argument A of type (Bag T). +
            +
          • +
          • Sort: (-> Int T) +
          +
        • +
        + + + +
          +
        • +

          BAGS_DISTINCT_ELEMENTS_SIZE

          +
          public static final SkolemId BAGS_DISTINCT_ELEMENTS_SIZE
          +
          A skolem variable for the size of the distinct elements of a bag A. + +
            +
          • Number of skolem indices: 1 +
              +
            • 1: the bag argument A. +
            +
          • +
          • Sort: Int +
          +
        • +
        + + + +
          +
        • +

          BAGS_MAP_PREIMAGE_INJECTIVE

          +
          public static final SkolemId BAGS_MAP_PREIMAGE_INJECTIVE
          +
          A skolem for the preimage of an element y in (bag.map f A) such that + (= (f x) y) where f: (-> E T) is an injective function. + +
            +
          • Number of skolem indices: 3 +
              +
            • 1: the function f of type (-> E T). +
            • +
            • 2: the bag argument A of (Bag E). +
            • +
            • 3: the element argument y type T. +
            +
          • +
          • Sort: E +
          +
        • +
        + + + +
          +
        • +

          BAGS_MAP_INDEX

          +
          public static final SkolemId BAGS_MAP_INDEX
          +
          A skolem variable for the index that is unique per terms + (bag.map f A), y, e where: + f: (-> E T), + A: (Bag E), + y: T, + e: E + +
            +
          • Number of skolem indices: 5 +
              +
            • 1: a map term of the form (bag.map f A). +
            • +
            • 2: a skolem function with id BAGS_DISTINCT_ELEMENTS. +
            • +
            • 3: a skolem function with id BAGS_DISTINCT_ELEMENTS_SIZE. +
            • +
            • 4: an element y of type T representing the mapped value. +
            • +
            • 5: an element x of type E. +
            +
          • +
          • Sort: Int +
          +
        • +
        + + + +
          +
        • +

          BAGS_MAP_SUM

          +
          public static final SkolemId BAGS_MAP_SUM
          +
          An uninterpreted function for bag.map operator: + If bag A is {uf(1), ..., uf(n)} (see BAGS_DISTINCT_ELEMENTS}, + then the multiplicity of an element y in a bag (bag.map f A) is sum(n), + where sum: (-> Int Int) is a skolem function such that: + sum(0) = 0 + sum(i) = sum (i-1) + (bag.count (uf i) A) + +
            +
          • Number of skolem indices: 3 +
              +
            • 1: the function f of type (-> E T). +
            • +
            • 2: the bag argument A of (Bag E). +
            • +
            • 3: the element argument e type E. +
            +
          • +
          • Sort: (-> Int Int) +
          +
        • +
        + + + +
          +
        • +

          BAGS_DEQ_DIFF

          +
          public static final SkolemId BAGS_DEQ_DIFF
          +
          The bag diff skolem, which is the witness k for the inference + (=> (not (= A B)) (not (= (bag.count k A) (bag.count k B)))). + +
            +
          • Number of skolem indices: 2 +
              +
            • 1: The first bag of type (Bag T). +
            • +
            • 2: The second bag of type (Bag T). +
            +
          • +
          • Sort: T +
          +
        • +
        + + + +
          +
        • +

          TABLES_GROUP_PART

          +
          public static final SkolemId TABLES_GROUP_PART
          +
          Given a group term ((_ table.group n1 ... nk) A) of type + (Bag (Table T)), this skolem maps elements of A to their parts in the + resulting partition. + +
            +
          • Number of skolem indices: 1 +
              +
            • 1: a group term of the form ((_ table.group n1 ... nk) A). +
            +
          • +
          • Sort: (-> T (Table T)) +
          +
        • +
        + + + +
          +
        • +

          TABLES_GROUP_PART_ELEMENT

          +
          public static final SkolemId TABLES_GROUP_PART_ELEMENT
          +
          Given a group term ((_ table.group n1 ... nk) A) of type + (Bag (Table T)) and a part B of type (Table T), this function + returns a skolem element that is a member of B if B is not empty. + +
            +
          • Number of skolem indices: 2 +
              +
            • 1: a group term of the form ((_ table.group n1 ... nk) A). +
            • +
            • 2: a table B of type (Table T). +
            +
          • +
          • Sort: T +
          +
        • +
        + + + +
          +
        • +

          RELATIONS_GROUP_PART

          +
          public static final SkolemId RELATIONS_GROUP_PART
          +
          Given a group term ((_ rel.group n1 ... nk) A) of type + (Set (Relation T)) this skolem maps elements of A to their parts in the + resulting partition. + +
            +
          • Number of skolem indices: 1 +
              +
            • 1: a relation of the form ((_ rel.group n1 ... nk) A). +
            +
          • +
          • Sort: (-> T (Relation T)) +
          +
        • +
        + + + +
          +
        • +

          RELATIONS_GROUP_PART_ELEMENT

          +
          public static final SkolemId RELATIONS_GROUP_PART_ELEMENT
          +
          Given a group term ((_ rel.group n1 ... nk) A) of type (Set (Relation T)) + and a part B of type (Relation T), this function returns a skolem element + that is a member of B if B is not empty. + +
            +
          • Number of skolem indices: 2 +
              +
            • 1: a group term of the form ((_ rel.group n1 ... nk) A). +
            • +
            • 2: a relation B of type (Relation T). +
            +
          • +
          • Sort: T +
          +
        • +
        + + + +
          +
        • +

          SETS_CHOOSE

          +
          public static final SkolemId SETS_CHOOSE
          +
          An interpreted function for set.choose operator, where (set.choose A) + is expanded to (uf A) along with the inference + (set.member (uf A) A)) when A is non-empty, + where uf: (-> (Set E) E) is this skolem function, and E is the type of + elements of A. + +
            +
          • Number of skolem indices: 1 +
              +
            • 1: a ground value for the type (Set E). +
            +
          • +
          • Sort: (-> (Set E) E) +
          +
        • +
        + + + +
          +
        • +

          SETS_DEQ_DIFF

          +
          public static final SkolemId SETS_DEQ_DIFF
          +
          The set diff skolem, which is the witness k for the inference + (=> (not (= A B)) (not (= (set.member k A) (set.member k B)))). + +
            +
          • Number of skolem indices: 2 +
              +
            • 1: The first set of type (Set E). +
            • +
            • 2: The second set of type (Set E). +
            +
          • +
          • Sort: E +
          +
        • +
        + + + +
          +
        • +

          SETS_FOLD_CARD

          +
          public static final SkolemId SETS_FOLD_CARD
          +
          An uninterpreted function for set.fold operator: + To compute (set.fold f t A), we need to guess the cardinality n of + set A using a skolem function with SETS_FOLD_CARD id. + +
            +
          • Number of skolem indices: 1 +
              +
            • 1: the set argument A. +
            +
          • +
          • Sort: Int +
          +
        • +
        + + + +
          +
        • +

          SETS_FOLD_COMBINE

          +
          public static final SkolemId SETS_FOLD_COMBINE
          +
          An uninterpreted function for set.fold operator: + To compute (set.fold f t A), we need a function that + accumulates intermidiate values. We call this function + combine of type Int -> T2 where: + combine(0) = t + combine(i) = f(elements(i), combine(i - 1)) for 1 <= i <= n + elements: a skolem function for (set.fold f t A) + see SETS_FOLD_ELEMENTS + n: is the cardinality of A + T2: is the type of initial value t + +
            +
          • Number of skolem indices: 3 +
              +
            • 1: the function f of type (-> T1 T2). +
            • +
            • 2: the initial value t of type T2. +
            • +
            • 3: the set argument A of type (Set T1). +
            +
          • +
          • Sort: (-> Int T2) +
          +
        • +
        + + + +
          +
        • +

          SETS_FOLD_ELEMENTS

          +
          public static final SkolemId SETS_FOLD_ELEMENTS
          +
          An uninterpreted function for set.fold operator: + To compute (set.fold f t A), we need a function for + elements of A. We call this function + elements of type (-> Int T) where T is the type of + elements of A. + If the cardinality of A is n, then + A is the union of {elements(i)} for 1 <= i <= n. + See SETS_FOLD_UNION_DISJOINT. + +
            +
          • Number of skolem indices: 1 +
              +
            • 1: a set argument A of type (Set T). +
            +
          • +
          • Sort: (-> Int T) +
          +
        • +
        + + + +
          +
        • +

          SETS_FOLD_UNION

          +
          public static final SkolemId SETS_FOLD_UNION
          +
          An uninterpreted function for set.fold operator: + To compute (set.fold f t A), we need a function for + elements of A which is given by elements defined in + SETS_FOLD_ELEMENTS. + We also need unionFn: (-> Int (Set E)) to compute + the union such that: + unionFn(0) = set.empty + unionFn(i) = union of {elements(i)} and unionFn (i-1) + unionFn(n) = A + +
            +
          • Number of skolem indices: 1 +
              +
            • 1: a set argument A of type (Set E). +
            +
          • +
          • Sort: (-> Int (Set E)) +
          +
        • +
        + + + +
          +
        • +

          SETS_MAP_DOWN_ELEMENT

          +
          public static final SkolemId SETS_MAP_DOWN_ELEMENT
          +
          A skolem variable that is unique per terms (set.map f A), y which is an + element in (set.map f A). The skolem is constrained to be an element in + A, and it is mapped to y by f. + +
            +
          • Number of skolem indices: 2 +
              +
            • 1: a map term of the form (set.map f A) where A of type (Set E) +
            • +
            • 2: the element argument y. +
            +
          • +
          • Sort: E +
          +
        • +
        + + + +
          +
        • +

          FP_MIN_ZERO

          +
          public static final SkolemId FP_MIN_ZERO
          +
          A skolem function that is unique per floating-point sort, introduced for + the undefined zero case of fp.min. + +
            +
          • Number of skolem indices: 1 +
              +
            • 1: The floating-point sort FP of the fp.min operator. +
            +
          • +
          • Sort: (-> FP FP (_ BitVec 1)) +
          +
        • +
        + + + +
          +
        • +

          FP_MAX_ZERO

          +
          public static final SkolemId FP_MAX_ZERO
          +
          A skolem function that is unique per floating-point sort, introduced for + the undefined zero case of fp.max. + +
            +
          • Number of skolem indices: 1 +
              +
            • 1: The floating-point sort FP of the fp.max operator. +
            +
          • +
          • Sort: (-> FP FP (_ BitVec 1)) +
          +
        • +
        + + + +
          +
        • +

          FP_TO_UBV

          +
          public static final SkolemId FP_TO_UBV
          +
          A skolem function introduced for the undefined out-ouf-bounds case of + fp.to_ubv that is unique per floating-point sort and sort of the + arguments to the operator. + +
            +
          • Number of skolem indices: 2 +
              +
            • 1: The floating-point sort FP of operand of fp.to_ubv. +
            • +
            • 2: The bit-vector sort BV to convert to. +
            +
          • +
          • Sort: (-> RoundingMode FP BV) +
          +
        • +
        + + + +
          +
        • +

          FP_TO_SBV

          +
          public static final SkolemId FP_TO_SBV
          +
          A skolem function introduced for the undefined out-ouf-bounds case of + fp.to_sbv that is unique per floating-point sort and sort of the + arguments to the operator. + +
            +
          • Number of skolem indices: 2 +
              +
            • 1: The floating-point sort FP of operand of fp.to_sbv. +
            • +
            • 2: The bit-vector sort BV to convert to. +
            +
          • +
          • Sort: (-> RoundingMode FP BV) +
          +
        • +
        + + + +
          +
        • +

          FP_TO_REAL

          +
          public static final SkolemId FP_TO_REAL
          +
          A skolem function introduced for the undefined of fp.to_real that is + unique per floating-point sort. + +
            +
          • Number of skolem indices: 1 +
              +
            • 1: The floating-point sort FP of the operand of fp.to_real. +
            +
          • +
          • Sort: (-> FP Real) +
          +
        • +
        + + + +
          +
        • +

          BV_TO_INT_UF

          +
          public static final SkolemId BV_TO_INT_UF
          +
          A skolem function introduced by the int-blaster. + Given a function f with argument and/or return types + that include bit-vectors, we get a function + that replaces them by integer types. + For example, if the original function is from + BV and Strings to Strings, the resulting + function is from Ints and Strings to Strings. +
            +
          • Number of skolem indices: 1 +
              +
            • 1: the original function f, with BV sorts. +
            +
          • +
          • Sort: `(-> T1' ... ( -> Tn' T')...)` Where + f has sort (->T1 ... (-> Tn T)...) and Ti' (T') is + `Int` if Ti (T) is `BV` and Ti' (T') is just Ti (T) + otherwise. +
          +
        • +
        + + + +
          +
        • +

          NONE

          +
          public static final SkolemId NONE
          +
          Indicates this is not a skolem.
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          values

          +
          public static SkolemId[] values()
          +
          Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +
          +for (SkolemId c : SkolemId.values())
          +    System.out.println(c);
          +
          +
          +
          Returns:
          +
          an array containing the constants of this enum type, in the order they are declared
          +
          +
        • +
        + + + +
          +
        • +

          valueOf

          +
          public static SkolemId valueOf​(java.lang.String name)
          +
          Returns the enum constant of this type with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)
          +
          +
          Parameters:
          +
          name - the name of the enum constant to be returned.
          +
          Returns:
          +
          the enum constant with the specified name
          +
          Throws:
          +
          java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
          +
          java.lang.NullPointerException - if the argument is null
          +
          +
        • +
        + + + + + + + +
          +
        • +

          getValue

          +
          public int getValue()
          +
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
    + +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Solver.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Solver.html new file mode 100644 index 0000000000..22eaba7928 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Solver.html @@ -0,0 +1,6639 @@ + + + + + +Solver + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Class Solver

    +
    +
    +
      +
    • java.lang.Object
    • +
    • +
        +
      • io.github.cvc5.Solver
      • +
      +
    • +
    +
    +
      +
    • +
      +
      public class Solver
      +extends java.lang.Object
      +
      A cvc5 solver.
      +
    • +
    +
    +
    + +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Field Detail

        + + + +
          +
        • +

          pointer

          +
          protected long pointer
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          Solver

          +
          @Deprecated
          +public Solver()
          +
          Deprecated. +
          This function is deprecated and replaced by + Solver(TermManager). + It will be removed in a future release.
          +
          +
          Create solver instance.
          +
        • +
        + + + +
          +
        • +

          Solver

          +
          public Solver​(TermManager d_tm)
          +
          Create solver instance.
          +
          +
          Parameters:
          +
          d_tm - The associated term manager.
          +
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          deletePointer

          +
          protected void deletePointer​(long pointer)
          +
        • +
        + + + +
          +
        • +

          toString

          +
          protected java.lang.String toString​(long pointer)
          +
        • +
        + + + +
          +
        • +

          equals

          +
          public boolean equals​(java.lang.Object s)
          +
          +
          Overrides:
          +
          equals in class java.lang.Object
          +
          +
        • +
        + + + +
          +
        • +

          getTermManager

          +
          public TermManager getTermManager()
          +
          Get the associated term manager instance
          +
          +
          Returns:
          +
          The term manager.
          +
          +
        • +
        + + + +
          +
        • +

          getBooleanSort

          +
          @Deprecated
          +public Sort getBooleanSort()
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.getBooleanSort(). + It will be removed in a future release.
          +
          +
          Get the Boolean sort.
          +
          +
          Returns:
          +
          Sort Boolean.
          +
          +
        • +
        + + + +
          +
        • +

          getIntegerSort

          +
          @Deprecated
          +public Sort getIntegerSort()
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.getIntegerSort(). + It will be removed in a future release.
          +
          +
          Get the integer sort.
          +
          +
          Returns:
          +
          Sort Integer.
          +
          +
        • +
        + + + +
          +
        • +

          getRealSort

          +
          @Deprecated
          +public Sort getRealSort()
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.getRealSort(). + It will be removed in a future release.
          +
          +
          Get the real sort.
          +
          +
          Returns:
          +
          Sort Real.
          +
          +
        • +
        + + + +
          +
        • +

          getRegExpSort

          +
          @Deprecated
          +public Sort getRegExpSort()
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.getRegExpSort(). + It will be removed in a future release.
          +
          +
          Get the regular expression sort.
          +
          +
          Returns:
          +
          Sort RegExp.
          +
          +
        • +
        + + + +
          +
        • +

          getRoundingModeSort

          +
          @Deprecated
          +public Sort getRoundingModeSort()
          +                         throws CVC5ApiException
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.getRoundingModeSort(). + It will be removed in a future release.
          +
          +
          Get the floating-point rounding mode sort.
          +
          +
          Returns:
          +
          Sort RoundingMode.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          getStringSort

          +
          @Deprecated
          +public Sort getStringSort()
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.getStringSort(). + It will be removed in a future release.
          +
          +
          Get the string sort.
          +
          +
          Returns:
          +
          Sort String.
          +
          +
        • +
        + + + +
          +
        • +

          mkArraySort

          +
          @Deprecated
          +public Sort mkArraySort​(Sort indexSort,
          +                        Sort elemSort)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkArraySort(Sort, Sort). + It will be removed in a future release.
          +
          +
          Create an array sort.
          +
          +
          Parameters:
          +
          indexSort - The array index sort.
          +
          elemSort - The array element sort.
          +
          Returns:
          +
          The array sort.
          +
          +
        • +
        + + + +
          +
        • +

          mkBitVectorSort

          +
          @Deprecated
          +public Sort mkBitVectorSort​(int size)
          +                     throws CVC5ApiException
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkBitVectorSort(int). + It will be removed in a future release.
          +
          +
          Create a bit-vector sort.
          +
          +
          Parameters:
          +
          size - The bit-width of the bit-vector sort.
          +
          Returns:
          +
          The bit-vector sort.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          mkFiniteFieldSort

          +
          @Deprecated
          +public Sort mkFiniteFieldSort​(java.lang.String size,
          +                              int base)
          +                       throws CVC5ApiException
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkFiniteFieldSort(String, int). + It will be removed in a future release.
          +
          +
          Create a finite field sort.
          +
          +
          Parameters:
          +
          size - The size of the finite field sort.
          +
          base - The base of the string representation.
          +
          Returns:
          +
          The finite field sort.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          mkFloatingPointSort

          +
          @Deprecated
          +public Sort mkFloatingPointSort​(int exp,
          +                                int sig)
          +                         throws CVC5ApiException
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkFloatingPointSort(int, int). + It will be removed in a future release.
          +
          +
          Create a floating-point sort.
          +
          +
          Parameters:
          +
          exp - The bit-width of the exponent of the floating-point sort.
          +
          sig - The bit-width of the significand of the floating-point sort.
          +
          Returns:
          +
          The floating-point sort.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          mkDatatypeSort

          +
          @Deprecated
          +public Sort mkDatatypeSort​(DatatypeDecl dtypedecl)
          +                    throws CVC5ApiException
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkDatatypeSort(DatatypeDecl). + It will be removed in a future release.
          +
          +
          Create a datatype sort.
          +
          +
          Parameters:
          +
          dtypedecl - The datatype declaration from which the sort is created.
          +
          Returns:
          +
          The datatype sort.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          mkDatatypeSorts

          +
          @Deprecated
          +public Sort[] mkDatatypeSorts​(DatatypeDecl[] dtypedecls)
          +                       throws CVC5ApiException
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkDatatypeSorts(DatatypeDecl[]). + It will be removed in a future release.
          +
          +
          Create a vector of datatype sorts. + + The names of the datatype declarations must be distinct.
          +
          +
          Parameters:
          +
          dtypedecls - The datatype declarations from which the sort is created.
          +
          Returns:
          +
          The datatype sorts.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          mkFunctionSort

          +
          @Deprecated
          +public Sort mkFunctionSort​(Sort domain,
          +                           Sort codomain)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkFunctionSort(Sort, Sort). + It will be removed in a future release.
          +
          +
          Create function sort.
          +
          +
          Parameters:
          +
          domain - The sort of the fuction argument.
          +
          codomain - The sort of the function return value.
          +
          Returns:
          +
          The function sort.
          +
          +
        • +
        + + + +
          +
        • +

          mkFunctionSort

          +
          @Deprecated
          +public Sort mkFunctionSort​(Sort[] sorts,
          +                           Sort codomain)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkFunctionSort(Sort[], Sort). + It will be removed in a future release.
          +
          +
          Create function sort.
          +
          +
          Parameters:
          +
          sorts - The sort of the function arguments.
          +
          codomain - The sort of the function return value.
          +
          Returns:
          +
          The function sort.
          +
          +
        • +
        + + + +
          +
        • +

          mkParamSort

          +
          @Deprecated
          +public Sort mkParamSort​(java.lang.String symbol)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkParamSort(String). + It will be removed in a future release.
          +
          +
          Create a sort parameter.
          +
          +
          Parameters:
          +
          symbol - The name of the sort.
          +
          Returns:
          +
          The sort parameter.
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          mkParamSort

          +
          @Deprecated
          +public Sort mkParamSort()
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkParamSort(). + It will be removed in a future release.
          +
          +
          Create a sort parameter.
          +
          +
          Returns:
          +
          The sort parameter.
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          mkPredicateSort

          +
          @Deprecated
          +public Sort mkPredicateSort​(Sort[] sorts)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkPredicateSort(Sort[]). + It will be removed in a future release.
          +
          +
          Create a predicate sort.
          +
          +
          Parameters:
          +
          sorts - The list of sorts of the predicate.
          +
          Returns:
          +
          The predicate sort.
          +
          +
        • +
        + + + +
          +
        • +

          mkRecordSort

          +
          @Deprecated
          +public Sort mkRecordSort​(Pair<java.lang.String,​Sort>[] fields)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkRecordSort(Pair[]). + It will be removed in a future release.
          +
          +
          Create a record sort
          +
          +
          Parameters:
          +
          fields - The list of fields of the record.
          +
          Returns:
          +
          The record sort.
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          mkSetSort

          +
          @Deprecated
          +public Sort mkSetSort​(Sort elemSort)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkSetSort(Sort). + It will be removed in a future release.
          +
          +
          Create a set sort.
          +
          +
          Parameters:
          +
          elemSort - The sort of the set elements.
          +
          Returns:
          +
          The set sort.
          +
          +
        • +
        + + + +
          +
        • +

          mkBagSort

          +
          @Deprecated
          +public Sort mkBagSort​(Sort elemSort)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkBagSort(Sort). + It will be removed in a future release.
          +
          +
          Create a bag sort.
          +
          +
          Parameters:
          +
          elemSort - The sort of the bag elements.
          +
          Returns:
          +
          The bag sort.
          +
          +
        • +
        + + + +
          +
        • +

          mkSequenceSort

          +
          @Deprecated
          +public Sort mkSequenceSort​(Sort elemSort)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkSequenceSort(Sort). + It will be removed in a future release.
          +
          +
          Create a sequence sort.
          +
          +
          Parameters:
          +
          elemSort - The sort of the sequence elements.
          +
          Returns:
          +
          The sequence sort.
          +
          +
        • +
        + + + +
          +
        • +

          mkAbstractSort

          +
          @Deprecated
          +public Sort mkAbstractSort​(SortKind kind)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkAbstractSort(SortKind). + It will be removed in a future release.
          +
          +
          Create an abstract sort. An abstract sort represents a sort for a given + kind whose parameters and arguments are unspecified. + + The SortKind k must be the kind of a sort that can be abstracted, + i.e., a sort that has indices or argument sorts. For example, + SortKind.ARRAY_SORT and SortKind.BITVECTOR_SORT can be + passed as the SortKind k to this method, while + SortKind.INTEGER_SORT and SortKind.STRING_SORT cannot.
          +
          +
          Parameters:
          +
          kind - The kind of the abstract sort
          +
          Returns:
          +
          The abstract sort.
          +
          Note:
          +
          Providing the kind SortKind.ABSTRACT_SORT as an + argument to this method returns the (fully) unspecified sort, + often denoted ?., Providing a kind k that has no indices and a fixed arity + of argument sorts will return the sort of SortKind k + whose arguments are the unspecified sort. For example, + mkAbstractSort(ARRAY_SORT) will return the sort + (ARRAY_SORT ? ?) instead of the abstract sort whose + abstract kind is SortKind.ABSTRACT_SORT., This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          mkUninterpretedSort

          +
          @Deprecated
          +public Sort mkUninterpretedSort​(java.lang.String symbol)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkUninterpretedSort(String). + It will be removed in a future release.
          +
          +
          Create an uninterpreted sort.
          +
          +
          Parameters:
          +
          symbol - The name of the sort.
          +
          Returns:
          +
          The uninterpreted sort.
          +
          +
        • +
        + + + +
          +
        • +

          mkUninterpretedSort

          +
          @Deprecated
          +public Sort mkUninterpretedSort()
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkUninterpretedSort(). + It will be removed in a future release.
          +
          +
          Create an uninterpreted sort.
          +
          +
          Returns:
          +
          The uninterpreted sort.
          +
          +
        • +
        + + + +
          +
        • +

          mkUnresolvedDatatypeSort

          +
          @Deprecated
          +public Sort mkUnresolvedDatatypeSort​(java.lang.String symbol,
          +                                     int arity)
          +                              throws CVC5ApiException
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkUnresolvedDatatypeSort(String, int). + It will be removed in a future release.
          +
          +
          Create an unresolved datatype sort. + + This is for creating yet unresolved sort placeholders for mutually + recursive parametric datatypes.
          +
          +
          Parameters:
          +
          symbol - The symbol of the sort.
          +
          arity - The number of sort parameters of the sort.
          +
          Returns:
          +
          The unresolved sort.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          mkUnresolvedDatatypeSort

          +
          @Deprecated
          +public Sort mkUnresolvedDatatypeSort​(java.lang.String symbol)
          +                              throws CVC5ApiException
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkUnresolvedDatatypeSort(String). + It will be removed in a future release.
          +
          +
          Create an unresolved datatype sort. + + This is for creating yet unresolved sort placeholders for mutually + recursive datatypes without sort parameters.
          +
          +
          Parameters:
          +
          symbol - The symbol of the sort.
          +
          Returns:
          +
          The unresolved sort.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          mkUninterpretedSortConstructorSort

          +
          @Deprecated
          +public Sort mkUninterpretedSortConstructorSort​(int arity,
          +                                               java.lang.String symbol)
          +                                        throws CVC5ApiException
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkUninterpretedSortConstructorSort(int, String). + It will be removed in a future release.
          +
          +
          Create a sort constructor sort. + + An uninterpreted sort constructor is an uninterpreted sort with + arity > 0.
          +
          +
          Parameters:
          +
          arity - The arity of the sort (must be > 0)
          +
          symbol - The symbol of the sort.
          +
          Returns:
          +
          The sort constructor sort.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          mkUninterpretedSortConstructorSort

          +
          @Deprecated
          +public Sort mkUninterpretedSortConstructorSort​(int arity)
          +                                        throws CVC5ApiException
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkUninterpretedSortConstructorSort(int). + It will be removed in a future release.
          +
          +
          Create a sort constructor sort. + + An uninterpreted sort constructor is an uninterpreted sort with + arity > 0.
          +
          +
          Parameters:
          +
          arity - The arity of the sort (must be > 0)
          +
          Returns:
          +
          The sort constructor sort.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          mkTupleSort

          +
          @Deprecated
          +public Sort mkTupleSort​(Sort[] sorts)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkTupleSort(Sort[]). + It will be removed in a future release.
          +
          +
          Create a tuple sort.
          +
          +
          Parameters:
          +
          sorts - Of the elements of the tuple.
          +
          Returns:
          +
          The tuple sort.
          +
          +
        • +
        + + + +
          +
        • +

          mkNullableSort

          +
          @Deprecated
          +public Sort mkNullableSort​(Sort sort)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkNullableSort(Sort). + It will be removed in a future release.
          +
          +
          Create a nullable sort.
          +
          +
          Parameters:
          +
          sort - The sort of the element of the nullable.
          +
          Returns:
          +
          The nullable sort.
          +
          +
        • +
        + + + +
          +
        • +

          mkTerm

          +
          @Deprecated
          +public Term mkTerm​(Kind kind)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkTerm(Kind). + It will be removed in a future release.
          +
          +
          Create 0-ary term of given kind.
          +
          +
          Parameters:
          +
          kind - The kind of the term.
          +
          Returns:
          +
          The Term.
          +
          +
        • +
        + + + +
          +
        • +

          mkTerm

          +
          @Deprecated
          +public Term mkTerm​(Kind kind,
          +                   Term child)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkTerm(Kind, Term). + It will be removed in a future release.
          +
          +
          Create a unary term of given kind.
          +
          +
          Parameters:
          +
          kind - The kind of the term.
          +
          child - The child of the term.
          +
          Returns:
          +
          The Term.
          +
          +
        • +
        + + + +
          +
        • +

          mkTerm

          +
          @Deprecated
          +public Term mkTerm​(Kind kind,
          +                   Term child1,
          +                   Term child2)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkTerm(Kind, Term, Term). + It will be removed in a future release.
          +
          +
          Create binary term of given kind.
          +
          +
          Parameters:
          +
          kind - The kind of the term.
          +
          child1 - The first child of the term.
          +
          child2 - The second child of the term.
          +
          Returns:
          +
          The Term.
          +
          +
        • +
        + + + +
          +
        • +

          mkTerm

          +
          @Deprecated
          +public Term mkTerm​(Kind kind,
          +                   Term child1,
          +                   Term child2,
          +                   Term child3)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkTerm(Kind, Term, Term, Term). + It will be removed in a future release.
          +
          +
          Create ternary term of given kind.
          +
          +
          Parameters:
          +
          kind - The kind of the term.
          +
          child1 - The first child of the term.
          +
          child2 - The second child of the term.
          +
          child3 - The third child of the term.
          +
          Returns:
          +
          The Term.
          +
          +
        • +
        + + + +
          +
        • +

          mkTerm

          +
          @Deprecated
          +public Term mkTerm​(Kind kind,
          +                   Term[] children)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkTerm(Kind, Term[]). + It will be removed in a future release.
          +
          +
          Create n-ary term of given kind.
          +
          +
          Parameters:
          +
          kind - The kind of the term.
          +
          children - The children of the term.
          +
          Returns:
          +
          The Term.
          +
          +
        • +
        + + + +
          +
        • +

          mkTerm

          +
          @Deprecated
          +public Term mkTerm​(Op op)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkTerm(Op). + It will be removed in a future release.
          +
          +
          Create nullary term of given kind from a given operator. + Create operators with mkOp().
          +
          +
          Parameters:
          +
          op - The operator.
          +
          Returns:
          +
          The Term.
          +
          +
        • +
        + + + +
          +
        • +

          mkTerm

          +
          @Deprecated
          +public Term mkTerm​(Op op,
          +                   Term child)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkTerm(Op, Term). + It will be removed in a future release.
          +
          +
          Create unary term of given kind from a given operator. + Create operators with mkOp().
          +
          +
          Parameters:
          +
          op - The operator.
          +
          child - The child of the term.
          +
          Returns:
          +
          The Term.
          +
          +
        • +
        + + + +
          +
        • +

          mkTerm

          +
          @Deprecated
          +public Term mkTerm​(Op op,
          +                   Term child1,
          +                   Term child2)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkTerm(Op, Term, Term). + It will be removed in a future release.
          +
          +
          Create binary term of given kind from a given operator. + Create operators with mkOp().
          +
          +
          Parameters:
          +
          op - The operator.
          +
          child1 - The first child of the term.
          +
          child2 - The second child of the term.
          +
          Returns:
          +
          The Term.
          +
          +
        • +
        + + + +
          +
        • +

          mkTerm

          +
          @Deprecated
          +public Term mkTerm​(Op op,
          +                   Term child1,
          +                   Term child2,
          +                   Term child3)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkTerm(Op, Term, Term, Term). + It will be removed in a future release.
          +
          +
          Create ternary term of given kind from a given operator. + Create operators with mkOp().
          +
          +
          Parameters:
          +
          op - The operator.
          +
          child1 - The first child of the term.
          +
          child2 - The second child of the term.
          +
          child3 - The third child of the term.
          +
          Returns:
          +
          The Term.
          +
          +
        • +
        + + + +
          +
        • +

          mkTerm

          +
          @Deprecated
          +public Term mkTerm​(Op op,
          +                   Term[] children)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkTerm(Op, Term[]). + It will be removed in a future release.
          +
          +
          Create n-ary term of given kind from a given operator. + Create operators with mkOp().
          +
          +
          Parameters:
          +
          op - The operator.
          +
          children - The children of the term.
          +
          Returns:
          +
          The Term.
          +
          +
        • +
        + + + +
          +
        • +

          mkTuple

          +
          @Deprecated
          +public Term mkTuple​(Term[] terms)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkTuple(Term[]). + It will be removed in a future release.
          +
          +
          Create a tuple term. Terms are automatically converted if sorts are + compatible.
          +
          +
          Parameters:
          +
          terms - The elements in the tuple.
          +
          Returns:
          +
          The tuple Term.
          +
          +
        • +
        + + + +
          +
        • +

          mkNullableSome

          +
          @Deprecated
          +public Term mkNullableSome​(Term term)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkNullableSome(Term). + It will be removed in a future release.
          +
          +
          Create a nullable some term.
          +
          +
          Parameters:
          +
          term - The element value.
          +
          Returns:
          +
          the Element value wrapped in some constructor.
          +
          +
        • +
        + + + +
          +
        • +

          mkNullableVal

          +
          @Deprecated
          +public Term mkNullableVal​(Term term)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkNullableVal(Term). + It will be removed in a future release.
          +
          +
          Create a selector for nullable term.
          +
          +
          Parameters:
          +
          term - A nullable term.
          +
          Returns:
          +
          The element value of the nullable term.
          +
          +
        • +
        + + + +
          +
        • +

          mkNullableIsNull

          +
          @Deprecated
          +public Term mkNullableIsNull​(Term term)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkNullableIsNull(Term). + It will be removed in a future release.
          +
          +
          Create a null tester for a nullable term.
          +
          +
          Parameters:
          +
          term - A nullable term.
          +
          Returns:
          +
          A tester whether term is null.
          +
          +
        • +
        + + + +
          +
        • +

          mkNullableIsSome

          +
          @Deprecated
          +public Term mkNullableIsSome​(Term term)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkNullableIsSome(Term). + It will be removed in a future release.
          +
          +
          Create a some tester for a nullable term.
          +
          +
          Parameters:
          +
          term - A nullable term.
          +
          Returns:
          +
          A tester whether term is some.
          +
          +
        • +
        + + + +
          +
        • +

          mkNullableNull

          +
          @Deprecated
          +public Term mkNullableNull​(Sort sort)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkNullableNull(Sort). + It will be removed in a future release.
          +
          +
          Create a constant representing a null value of the given sort.
          +
          +
          Parameters:
          +
          sort - The sort of the Nullable element.
          +
          Returns:
          +
          The null constant.
          +
          +
        • +
        + + + +
          +
        • +

          mkNullableLift

          +
          @Deprecated
          +public Term mkNullableLift​(Kind kind,
          +                           Term[] args)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkNullableLift(Kind, Term[]). + It will be removed in a future release.
          +
          +
          Create a term that lifts kind to nullable terms. + + Example: + If we have the term ((_ nullable.lift +) x y), + where x, y of type (Nullable Int), then + kind would be ADD, and args would be [x, y]. + This function would return + (nullable.lift (lambda ((a Int) (b Int)) (+ a b)) x y)
          +
          +
          Parameters:
          +
          kind - The lifted operator.
          +
          args - The arguments of the lifted operator.
          +
          Returns:
          +
          A term of Kind NULLABLE_LIFT where the first child + is a lambda expression, and the remaining children are + the original arguments.
          +
          +
        • +
        + + + +
          +
        • +

          mkOp

          +
          @Deprecated
          +public Op mkOp​(Kind kind)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkOp(Kind). + It will be removed in a future release.
          +
          +
          Create an operator for a builtin Kind + The Kind may not be the Kind for an indexed operator + (e.g., Kind.BITVECTOR_EXTRACT).
          +
          +
          Parameters:
          +
          kind - The kind to wrap.
          +
          Returns:
          +
          The operator.
          +
          Note:
          +
          In this case, the Op simply wraps the Kind. The Kind can be used + in mkTerm directly without creating an op first.
          +
          +
        • +
        + + + +
          +
        • +

          mkOp

          +
          @Deprecated
          +public Op mkOp​(Kind kind,
          +               java.lang.String arg)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkOp(Kind, String). + It will be removed in a future release.
          +
          +
          Create operator of kind: + + See enum Kind for a description of the parameters.
          +
          +
          Parameters:
          +
          kind - The kind of the operator.
          +
          arg - The string argument to this operator.
          +
          Returns:
          +
          The operator.
          +
          +
        • +
        + + + +
          +
        • +

          mkOp

          +
          @Deprecated
          +public Op mkOp​(Kind kind,
          +               int arg)
          +        throws CVC5ApiException
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkOp(Kind, int). + It will be removed in a future release.
          +
          +
          Create operator of kind: +
            +
          • DIVISIBLE
          • +
          • BITVECTOR_REPEAT
          • +
          • BITVECTOR_ZERO_EXTEND
          • +
          • BITVECTOR_SIGN_EXTEND
          • +
          • BITVECTOR_ROTATE_LEFT
          • +
          • BITVECTOR_ROTATE_RIGHT
          • +
          • INT_TO_BITVECTOR
          • +
          • FLOATINGPOINT_TO_UBV
          • +
          • FLOATINGPOINT_TO_UBV_TOTAL
          • +
          • FLOATINGPOINT_TO_SBV
          • +
          • FLOATINGPOINT_TO_SBV_TOTAL
          • +
          • TUPLE_UPDATE
          • +
          + See enum Kind for a description of the parameters.
          +
          +
          Parameters:
          +
          kind - The kind of the operator.
          +
          arg - The unsigned int argument to this operator.
          +
          Returns:
          +
          The operator.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          mkOp

          +
          @Deprecated
          +public Op mkOp​(Kind kind,
          +               int arg1,
          +               int arg2)
          +        throws CVC5ApiException
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkOp(Kind, int, int). + It will be removed in a future release.
          +
          +
          Create operator of Kind: +
            +
          • BITVECTOR_EXTRACT
          • +
          • FLOATINGPOINT_TO_FP_FROM_IEEE_BV
          • +
          • FLOATINGPOINT_TO_FP_FROM_FP
          • +
          • FLOATINGPOINT_TO_FP_FROM_REAL
          • +
          • FLOATINGPOINT_TO_FP_FROM_SBV
          • +
          • FLOATINGPOINT_TO_FP_FROM_UBV
          • +
          + See enum Kind for a description of the parameters.
          +
          +
          Parameters:
          +
          kind - The kind of the operator.
          +
          arg1 - The first unsigned int argument to this operator.
          +
          arg2 - The second unsigned int argument to this operator.
          +
          Returns:
          +
          The operator.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          mkOp

          +
          @Deprecated
          +public Op mkOp​(Kind kind,
          +               int[] args)
          +        throws CVC5ApiException
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkOp(Kind, int[]). + It will be removed in a future release.
          +
          +
          Create operator of Kind: +
            +
          • TUPLE_PROJECT
          • +
          + See enum Kind for a description of the parameters.
          +
          +
          Parameters:
          +
          kind - The kind of the operator.
          +
          args - The arguments (indices) of the operator.
          +
          Returns:
          +
          The operator.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          mkTrue

          +
          @Deprecated
          +public Term mkTrue()
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkTrue(). + It will be removed in a future release.
          +
          +
          Create a Boolean true constant.
          +
          +
          Returns:
          +
          The true constant.
          +
          +
        • +
        + + + +
          +
        • +

          mkFalse

          +
          @Deprecated
          +public Term mkFalse()
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkFalse(). + It will be removed in a future release.
          +
          +
          Create a Boolean false constant.
          +
          +
          Returns:
          +
          The false constant.
          +
          +
        • +
        + + + +
          +
        • +

          mkBoolean

          +
          @Deprecated
          +public Term mkBoolean​(boolean val)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkBoolean(boolean). + It will be removed in a future release.
          +
          +
          Create a Boolean constant.
          +
          +
          Parameters:
          +
          val - The value of the constant.
          +
          Returns:
          +
          The Boolean constant.
          +
          +
        • +
        + + + +
          +
        • +

          mkPi

          +
          @Deprecated
          +public Term mkPi()
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkPi(). + It will be removed in a future release.
          +
          +
          Create a constant representing the number Pi.
          +
          +
          Returns:
          +
          A constant representing Pi.
          +
          +
        • +
        + + + +
          +
        • +

          mkInteger

          +
          @Deprecated
          +public Term mkInteger​(java.lang.String s)
          +               throws CVC5ApiException
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkInteger(String). + It will be removed in a future release.
          +
          +
          Create an integer constant from a string.
          +
          +
          Parameters:
          +
          s - The string representation of the constant, may represent an. + integer (e.g., "123").
          +
          Returns:
          +
          A constant of sort Integer assuming s represents an + integer).
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          mkInteger

          +
          @Deprecated
          +public Term mkInteger​(long val)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkInteger(long). + It will be removed in a future release.
          +
          +
          Create an integer constant from a C++ int.
          +
          +
          Parameters:
          +
          val - The value of the constant.
          +
          Returns:
          +
          A constant of sort Integer.
          +
          +
        • +
        + + + +
          +
        • +

          mkReal

          +
          @Deprecated
          +public Term mkReal​(java.lang.String s)
          +            throws CVC5ApiException
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkReal(String). + It will be removed in a future release.
          +
          +
          Create a real constant from a string.
          +
          +
          Parameters:
          +
          s - The string representation of the constant, may represent an. + integer (e.g., "123") or real constant (e.g., "12.34" or + "12/34").
          +
          Returns:
          +
          A constant of sort Real.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          mkReal

          +
          @Deprecated
          +public Term mkReal​(long val)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkReal(long). + It will be removed in a future release.
          +
          +
          Create a real constant from an integer.
          +
          +
          Parameters:
          +
          val - The value of the constant.
          +
          Returns:
          +
          A constant of sort Integer.
          +
          +
        • +
        + + + +
          +
        • +

          mkReal

          +
          @Deprecated
          +public Term mkReal​(long num,
          +                   long den)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkReal(long, long). + It will be removed in a future release.
          +
          +
          Create a real constant from a rational.
          +
          +
          Parameters:
          +
          num - The value of the numerator.
          +
          den - The value of the denominator.
          +
          Returns:
          +
          A constant of sort Real.
          +
          +
        • +
        + + + +
          +
        • +

          mkRegexpNone

          +
          @Deprecated
          +public Term mkRegexpNone()
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkRegexpNone(). + It will be removed in a future release.
          +
          +
          Create a regular expression none (re.none) term.
          +
          +
          Returns:
          +
          The none term.
          +
          +
        • +
        + + + +
          +
        • +

          mkRegexpAll

          +
          @Deprecated
          +public Term mkRegexpAll()
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkRegexpAll(). + It will be removed in a future release.
          +
          +
          Create a regular expression all (re.all) term.
          +
          +
          Returns:
          +
          The all term.
          +
          +
        • +
        + + + +
          +
        • +

          mkRegexpAllchar

          +
          @Deprecated
          +public Term mkRegexpAllchar()
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkRegexpAllchar(). + It will be removed in a future release.
          +
          +
          Create a regular expression allchar (re.allchar) term.
          +
          +
          Returns:
          +
          The allchar term.
          +
          +
        • +
        + + + +
          +
        • +

          mkEmptySet

          +
          @Deprecated
          +public Term mkEmptySet​(Sort sort)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkEmptySet(Sort). + It will be removed in a future release.
          +
          +
          Create a constant representing an empty set of the given sort.
          +
          +
          Parameters:
          +
          sort - The sort of the set elements.
          +
          Returns:
          +
          The empty set constant.
          +
          +
        • +
        + + + +
          +
        • +

          mkEmptyBag

          +
          @Deprecated
          +public Term mkEmptyBag​(Sort sort)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkEmptyBag(Sort). + It will be removed in a future release.
          +
          +
          Create a constant representing an empty bag of the given sort.
          +
          +
          Parameters:
          +
          sort - The sort of the bag elements.
          +
          Returns:
          +
          The empty bag constant.
          +
          +
        • +
        + + + +
          +
        • +

          mkSepEmp

          +
          @Deprecated
          +public Term mkSepEmp()
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkSepEmp(). + It will be removed in a future release.
          +
          +
          Create a separation logic empty term.
          +
          +
          Returns:
          +
          The separation logic empty term.
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          mkSepNil

          +
          @Deprecated
          +public Term mkSepNil​(Sort sort)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkSepNil(Sort). + It will be removed in a future release.
          +
          +
          Create a separation logic nil term.
          +
          +
          Parameters:
          +
          sort - The sort of the nil term.
          +
          Returns:
          +
          The separation logic nil term.
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          mkString

          +
          @Deprecated
          +public Term mkString​(java.lang.String s)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkString(String). + It will be removed in a future release.
          +
          +
          Create a String constant.
          +
          +
          Parameters:
          +
          s - The string this constant represents.
          +
          Returns:
          +
          The String constant.
          +
          +
        • +
        + + + +
          +
        • +

          mkString

          +
          @Deprecated
          +public Term mkString​(java.lang.String s,
          +                     boolean useEscSequences)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkString(String, boolean). + It will be removed in a future release.
          +
          +
          Create a String constant.
          +
          +
          Parameters:
          +
          s - The string this constant represents.
          +
          useEscSequences - Determines whether escape sequences in s + should be converted to the corresponding unicode + character.
          +
          Returns:
          +
          The String constant.
          +
          +
        • +
        + + + +
          +
        • +

          mkString

          +
          @Deprecated
          +public Term mkString​(int[] s)
          +              throws CVC5ApiException
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkString(int[]). + It will be removed in a future release.
          +
          +
          Create a String constant.
          +
          +
          Parameters:
          +
          s - A list of unsigned (unicode) values this constant represents + as string.
          +
          Returns:
          +
          The String constant.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          mkEmptySequence

          +
          @Deprecated
          +public Term mkEmptySequence​(Sort sort)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkEmptySequence(Sort). + It will be removed in a future release.
          +
          +
          Create an empty sequence of the given element sort.
          +
          +
          Parameters:
          +
          sort - The element sort of the sequence.
          +
          Returns:
          +
          The empty sequence with given element sort.
          +
          +
        • +
        + + + +
          +
        • +

          mkUniverseSet

          +
          @Deprecated
          +public Term mkUniverseSet​(Sort sort)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkUniverseSet(Sort). + It will be removed in a future release.
          +
          +
          Create a universe set of the given sort.
          +
          +
          Parameters:
          +
          sort - The sort of the set elements.
          +
          Returns:
          +
          The universe set constant.
          +
          +
        • +
        + + + +
          +
        • +

          mkBitVector

          +
          @Deprecated
          +public Term mkBitVector​(int size)
          +                 throws CVC5ApiException
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkBitVector(int). + It will be removed in a future release.
          +
          +
          Create a bit-vector constant of given size and value = 0.
          +
          +
          Parameters:
          +
          size - The bit-width of the bit-vector sort.
          +
          Returns:
          +
          The bit-vector constant.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          mkBitVector

          +
          @Deprecated
          +public Term mkBitVector​(int size,
          +                        long val)
          +                 throws CVC5ApiException
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkBitVector(int, long). + It will be removed in a future release.
          +
          +
          Create a bit-vector constant of given size and value.
          +
          +
          Parameters:
          +
          size - The bit-width of the bit-vector sort.
          +
          val - The value of the constant.
          +
          Returns:
          +
          The bit-vector constant.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          Note:
          +
          The given value must fit into a bit-vector of the given size.
          +
          +
        • +
        + + + +
          +
        • +

          mkBitVector

          +
          @Deprecated
          +public Term mkBitVector​(int size,
          +                        java.lang.String s,
          +                        int base)
          +                 throws CVC5ApiException
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkBitVector(int, String, int). + It will be removed in a future release.
          +
          +
          Create a bit-vector constant of a given bit-width from a given string of + base 2, 10 or 16.
          +
          +
          Parameters:
          +
          size - The bit-width of the constant.
          +
          s - The string representation of the constant.
          +
          base - The base of the string representation (2, 10, or 16)
          +
          Returns:
          +
          The bit-vector constant.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          Note:
          +
          The given value must fit into a bit-vector of the given size.
          +
          +
        • +
        + + + +
          +
        • +

          mkFiniteFieldElem

          +
          @Deprecated
          +public Term mkFiniteFieldElem​(java.lang.String val,
          +                              Sort sort,
          +                              int base)
          +                       throws CVC5ApiException
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkFiniteFieldElem(String, Sort, int). + It will be removed in a future release.
          +
          +
          Create a finite field constant in a given field and for a given value.
          +
          +
          Parameters:
          +
          val - The value of the constant.
          +
          sort - The sort of the finite field.
          +
          base - The base of the string representation.
          +
          Returns:
          +
          The finite field constant.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          Note:
          +
          The given value must fit into a the given finite field.
          +
          +
        • +
        + + + +
          +
        • +

          mkConstArray

          +
          @Deprecated
          +public Term mkConstArray​(Sort sort,
          +                         Term val)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkConstArray(Sort, Term). + It will be removed in a future release.
          +
          +
          Create a constant array with the provided constant value stored at + every index
          +
          +
          Parameters:
          +
          sort - The sort of the constant array (must be an array sort)
          +
          val - The constant value to store (must match the sort's element + sort).
          +
          Returns:
          +
          The constant array term.
          +
          +
        • +
        + + + +
          +
        • +

          mkFloatingPointPosInf

          +
          @Deprecated
          +public Term mkFloatingPointPosInf​(int exp,
          +                                  int sig)
          +                           throws CVC5ApiException
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkFloatingPointPosInf(int, int). + It will be removed in a future release.
          +
          +
          Create a positive infinity floating-point constant (SMT-LIB: +oo).
          +
          +
          Parameters:
          +
          exp - Number of bits in the exponent.
          +
          sig - Number of bits in the significand.
          +
          Returns:
          +
          The floating-point constant.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          mkFloatingPointNegInf

          +
          @Deprecated
          +public Term mkFloatingPointNegInf​(int exp,
          +                                  int sig)
          +                           throws CVC5ApiException
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkFloatingPointNegInf(int, int). + It will be removed in a future release.
          +
          +
          Create a negative infinity floating-point constant (SMT-LIB: -oo).
          +
          +
          Parameters:
          +
          exp - Number of bits in the exponent.
          +
          sig - Number of bits in the significand.
          +
          Returns:
          +
          The floating-point constant.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          mkFloatingPointNaN

          +
          @Deprecated
          +public Term mkFloatingPointNaN​(int exp,
          +                               int sig)
          +                        throws CVC5ApiException
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkFloatingPointNaN(int, int). + It will be removed in a future release.
          +
          +
          Create a not-a-number floating-point constant (SMT-LIB: NaN).
          +
          +
          Parameters:
          +
          exp - Number of bits in the exponent.
          +
          sig - Number of bits in the significand.
          +
          Returns:
          +
          The floating-point constant.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          mkFloatingPointPosZero

          +
          @Deprecated
          +public Term mkFloatingPointPosZero​(int exp,
          +                                   int sig)
          +                            throws CVC5ApiException
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkFloatingPointPosZero(int, int). + It will be removed in a future release.
          +
          +
          Create a positive zero floating-point constant (SMT-LIB: +zero).
          +
          +
          Parameters:
          +
          exp - Number of bits in the exponent.
          +
          sig - Number of bits in the significand.
          +
          Returns:
          +
          The floating-point constant.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          mkFloatingPointNegZero

          +
          @Deprecated
          +public Term mkFloatingPointNegZero​(int exp,
          +                                   int sig)
          +                            throws CVC5ApiException
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkFloatingPointNegZero(int, int). + It will be removed in a future release.
          +
          +
          Create a negative zero floating-point constant (SMT-LIB: -zero).
          +
          +
          Parameters:
          +
          exp - Number of bits in the exponent.
          +
          sig - Number of bits in the significand.
          +
          Returns:
          +
          The floating-point constant.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          mkRoundingMode

          +
          @Deprecated
          +public Term mkRoundingMode​(RoundingMode rm)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkRoundingMode(RoundingMode). + It will be removed in a future release.
          +
          +
          Create a rounding mode constant.
          +
          +
          Parameters:
          +
          rm - The floating point rounding mode this constant represents.
          +
          Returns:
          +
          The rounding mode.
          +
          +
        • +
        + + + +
          +
        • +

          mkFloatingPoint

          +
          @Deprecated
          +public Term mkFloatingPoint​(int exp,
          +                            int sig,
          +                            Term val)
          +                     throws CVC5ApiException
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkFloatingPoint(int, int, Term). + It will be removed in a future release.
          +
          +
          Create a floating-point value from a bit-vector given in IEEE-754 + format.
          +
          +
          Parameters:
          +
          exp - Size of the exponent.
          +
          sig - Size of the significand.
          +
          val - Value of the floating-point constant as a bit-vector term.
          +
          Returns:
          +
          The floating-point value.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          mkFloatingPoint

          +
          @Deprecated
          +public Term mkFloatingPoint​(Term sign,
          +                            Term exp,
          +                            Term sig)
          +                     throws CVC5ApiException
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkFloatingPoint(Term, Term, Term). + It will be removed in a future release.
          +
          +
          Create a floating-point value from its three IEEE-754 bit-vector value + components (sign bit, exponent, significand).
          +
          +
          Parameters:
          +
          sign - The sign bit.
          +
          exp - The bit-vector representing the exponent.
          +
          sig - The bit-vector representing the significand.
          +
          Returns:
          +
          The floating-point value.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          mkCardinalityConstraint

          +
          @Deprecated
          +public Term mkCardinalityConstraint​(Sort sort,
          +                                    int upperBound)
          +                             throws CVC5ApiException
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkCardinalityConstraint(Sort, int). + It will be removed in a future release.
          +
          +
          Create a cardinality constraint for an uninterpreted sort.
          +
          +
          Parameters:
          +
          sort - The sort the cardinality constraint is for.
          +
          upperBound - The upper bound on the cardinality of the sort.
          +
          Returns:
          +
          The cardinality constraint.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          mkConst

          +
          @Deprecated
          +public Term mkConst​(Sort sort,
          +                    java.lang.String symbol)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkConst(Sort, String). + It will be removed in a future release.
          +
          +
          Create a free constant. + + SMT-LIB: + + ( declare-const <symbol> <sort> ) + ( declare-fun <symbol> ( ) <sort> ) +
          +
          +
          Parameters:
          +
          sort - The sort of the constant.
          +
          symbol - The name of the constant.
          +
          Returns:
          +
          The first-order constant.
          +
          +
        • +
        + + + +
          +
        • +

          mkConst

          +
          @Deprecated
          +public Term mkConst​(Sort sort)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkConst(Sort). + It will be removed in a future release.
          +
          +
          Create a free constant with a default symbol name.
          +
          +
          Parameters:
          +
          sort - The sort of the constant.
          +
          Returns:
          +
          The first-order constant.
          +
          +
        • +
        + + + +
          +
        • +

          mkVar

          +
          @Deprecated
          +public Term mkVar​(Sort sort)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkVar(Sort). + It will be removed in a future release.
          +
          +
          Create a bound variable to be used in a binder (i.e., a quantifier, a + lambda, or a witness binder).
          +
          +
          Parameters:
          +
          sort - The sort of the variable.
          +
          Returns:
          +
          The variable.
          +
          +
        • +
        + + + +
          +
        • +

          mkVar

          +
          @Deprecated
          +public Term mkVar​(Sort sort,
          +                  java.lang.String symbol)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkVar(Sort, String). + It will be removed in a future release.
          +
          +
          Create a bound variable to be used in a binder (i.e., a quantifier, a + lambda, or a witness binder).
          +
          +
          Parameters:
          +
          sort - The sort of the variable.
          +
          symbol - The name of the variable.
          +
          Returns:
          +
          The variable.
          +
          +
        • +
        + + + +
          +
        • +

          mkDatatypeConstructorDecl

          +
          @Deprecated
          +public DatatypeConstructorDecl mkDatatypeConstructorDecl​(java.lang.String name)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkDatatypeConstructorDecl(String). + It will be removed in a future release.
          +
          +
          Create a datatype constructor declaration.
          +
          +
          Parameters:
          +
          name - The name of the datatype constructor.
          +
          Returns:
          +
          The DatatypeConstructorDecl.
          +
          +
        • +
        + + + +
          +
        • +

          mkDatatypeDecl

          +
          @Deprecated
          +public DatatypeDecl mkDatatypeDecl​(java.lang.String name)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkDatatypeDecl(String). + It will be removed in a future release.
          +
          +
          Create a datatype declaration.
          +
          +
          Parameters:
          +
          name - The name of the datatype.
          +
          Returns:
          +
          The DatatypeDecl.
          +
          +
        • +
        + + + +
          +
        • +

          mkDatatypeDecl

          +
          @Deprecated
          +public DatatypeDecl mkDatatypeDecl​(java.lang.String name,
          +                                   boolean isCoDatatype)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkDatatypeDecl(String, boolean). + It will be removed in a future release.
          +
          +
          Create a datatype declaration.
          +
          +
          Parameters:
          +
          name - The name of the datatype.
          +
          isCoDatatype - True if a codatatype is to be constructed.
          +
          Returns:
          +
          The DatatypeDecl.
          +
          +
        • +
        + + + +
          +
        • +

          mkDatatypeDecl

          +
          @Deprecated
          +public DatatypeDecl mkDatatypeDecl​(java.lang.String name,
          +                                   Sort[] params)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkDatatypeDecl(String, Sort[]). + It will be removed in a future release.
          +
          +
          Create a datatype declaration. + + Create sorts parameter with mkParamSort(String).
          +
          +
          Parameters:
          +
          name - The name of the datatype.
          +
          params - A list of sort parameters.
          +
          Returns:
          +
          The DatatypeDecl.
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          mkDatatypeDecl

          +
          @Deprecated
          +public DatatypeDecl mkDatatypeDecl​(java.lang.String name,
          +                                   Sort[] params,
          +                                   boolean isCoDatatype)
          +
          Deprecated. +
          This function is deprecated and replaced by + TermManager.mkDatatypeDecl(String, Sort[]). + It will be removed in a future release.
          +
          +
          Create a datatype declaration. + + Create sorts parameter with mkParamSort(String).
          +
          +
          Parameters:
          +
          name - The name of the datatype.
          +
          params - A list of sort parameters.
          +
          isCoDatatype - True if a codatatype is to be constructed.
          +
          Returns:
          +
          The DatatypeDecl.
          +
          +
        • +
        + + + +
          +
        • +

          simplify

          +
          public Term simplify​(Term t)
          +
          Simplify a term or formula based on rewriting.
          +
          +
          Parameters:
          +
          t - The term to simplify.
          +
          Returns:
          +
          The simplified term.
          +
          Note:
          +
          This function is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          simplify

          +
          public Term simplify​(Term t,
          +                     boolean applySubs)
          +
          Simplify a term or formula based on rewriting and (optionally) applying + substitutions for solved variables. + + If applySubs is true, then for example, if `(= x 0)` was asserted to this + solver, this method may replace occurrences of `x` with `0`.
          +
          +
          Parameters:
          +
          t - The term to simplify.
          +
          applySubs - Whether to apply substitutions for solved variables.
          +
          Returns:
          +
          The simplified term.
          +
          Note:
          +
          This function is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          assertFormula

          +
          public void assertFormula​(Term term)
          +
          Assert a formula. + SMT-LIB: + + ( assert <term> ) +
          +
          +
          Parameters:
          +
          term - The formula to assert.
          +
          +
        • +
        + + + +
          +
        • +

          checkSat

          +
          public Result checkSat()
          +
          Check satisfiability. + + SMT-LIB: + + ( check-sat ) +
          +
          +
          Returns:
          +
          The result of the satisfiability check.
          +
          +
        • +
        + + + +
          +
        • +

          checkSatAssuming

          +
          public Result checkSatAssuming​(Term assumption)
          +
          Check satisfiability assuming the given formula. + + SMT-LIB: + + ( check-sat-assuming ( <prop_literal> ) ) +
          +
          +
          Parameters:
          +
          assumption - The formula to assume.
          +
          Returns:
          +
          The result of the satisfiability check.
          +
          +
        • +
        + + + +
          +
        • +

          checkSatAssuming

          +
          public Result checkSatAssuming​(Term[] assumptions)
          +
          Check satisfiability assuming the given formulas. + + SMT-LIB: + + ( check-sat-assuming ( <prop_literal>+ ) ) +
          +
          +
          Parameters:
          +
          assumptions - The formulas to assume.
          +
          Returns:
          +
          The result of the satisfiability check.
          +
          +
        • +
        + + + +
          +
        • +

          declareDatatype

          +
          public Sort declareDatatype​(java.lang.String symbol,
          +                            DatatypeConstructorDecl[] ctors)
          +
          Create datatype sort. + + SMT-LIB: + + ( declare-datatype <symbol> <datatype_decl> ) +
          +
          +
          Parameters:
          +
          symbol - The name of the datatype sort.
          +
          ctors - The constructor declarations of the datatype sort.
          +
          Returns:
          +
          The datatype sort.
          +
          +
        • +
        + + + +
          +
        • +

          declareFun

          +
          public Term declareFun​(java.lang.String symbol,
          +                       Sort[] sorts,
          +                       Sort sort)
          +
          Declare n-ary function symbol. + + SMT-LIB: + + ( declare-fun <symbol> ( <sort>* ) <sort> ) +
          +
          +
          Parameters:
          +
          symbol - The name of the function.
          +
          sorts - The sorts of the parameters to this function.
          +
          sort - The sort of the return value of this function.
          +
          Returns:
          +
          The function.
          +
          +
        • +
        + + + +
          +
        • +

          declareFun

          +
          public Term declareFun​(java.lang.String symbol,
          +                       Sort[] sorts,
          +                       Sort sort,
          +                       boolean fresh)
          +
          Declare n-ary function symbol. + + SMT-LIB: + + ( declare-fun <symbol> ( <sort>* ) <sort> ) +
          +
          +
          Parameters:
          +
          symbol - The name of the function.
          +
          sorts - The sorts of the parameters to this function.
          +
          sort - The sort of the return value of this function.
          +
          fresh - If true, then this method always returns a new Term. + Otherwise, this method will always return the same Term + for each call with the given sorts and symbol where fresh is false.
          +
          Returns:
          +
          The function.
          +
          +
        • +
        + + + +
          +
        • +

          declareSort

          +
          public Sort declareSort​(java.lang.String symbol,
          +                        int arity)
          +                 throws CVC5ApiException
          +
          Declare uninterpreted sort. + + SMT-LIB: + + ( declare-sort <symbol> <numeral> ) +
          +
          +
          Parameters:
          +
          symbol - The name of the sort.
          +
          arity - The arity of the sort.
          +
          Returns:
          +
          The sort.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          Note:
          +
          This corresponds to mkUninterpretedSort() const if arity = 0, and + to mkUninterpretedSortConstructorSort() const if arity > 0.
          +
          +
        • +
        + + + +
          +
        • +

          declareSort

          +
          public Sort declareSort​(java.lang.String symbol,
          +                        int arity,
          +                        boolean fresh)
          +                 throws CVC5ApiException
          +
          Declare uninterpreted sort. + + SMT-LIB: + + ( declare-sort <symbol> <numeral> ) +
          +
          +
          Parameters:
          +
          symbol - The name of the sort.
          +
          arity - The arity of the sort.
          +
          fresh - If true, then this method always returns a new Sort. + Otherwise, this method will always return the same Sort + for each call with the given arity and symbol where fresh is false.
          +
          Returns:
          +
          The sort.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          Note:
          +
          This corresponds to mkUninterpretedSort() const if arity = 0, and + to mkUninterpretedSortConstructorSort() const if arity > 0.
          +
          +
        • +
        + + + +
          +
        • +

          defineFun

          +
          public Term defineFun​(java.lang.String symbol,
          +                      Term[] boundVars,
          +                      Sort sort,
          +                      Term term)
          +
          Define n-ary function in the current context. + + SMT-LIB: + + ( define-fun <function_def> ) +
          +
          +
          Parameters:
          +
          symbol - The name of the function.
          +
          boundVars - The parameters to this function.
          +
          sort - The sort of the return value of this function.
          +
          term - The function body.
          +
          Returns:
          +
          The function.
          +
          +
        • +
        + + + +
          +
        • +

          defineFun

          +
          public Term defineFun​(java.lang.String symbol,
          +                      Term[] boundVars,
          +                      Sort sort,
          +                      Term term,
          +                      boolean global)
          +
          Define n-ary function. + + SMT-LIB: + + ( define-fun <function_def> ) +
          +
          +
          Parameters:
          +
          symbol - The name of the function.
          +
          boundVars - The parameters to this function.
          +
          sort - The sort of the return value of this function.
          +
          term - The function body.
          +
          global - Determines whether this definition is global (i.e., persists + when popping the context).
          +
          Returns:
          +
          The function.
          +
          +
        • +
        + + + +
          +
        • +

          defineFunRec

          +
          public Term defineFunRec​(java.lang.String symbol,
          +                         Term[] boundVars,
          +                         Sort sort,
          +                         Term term)
          +
          Define recursive function in the current context. + + SMT-LIB: + + ( define-fun-rec <function_def> ) +
          +
          +
          Parameters:
          +
          symbol - The name of the function.
          +
          boundVars - The parameters to this function.
          +
          sort - The sort of the return value of this function.
          +
          term - The function body.
          +
          Returns:
          +
          The function.
          +
          +
        • +
        + + + +
          +
        • +

          defineFunRec

          +
          public Term defineFunRec​(java.lang.String symbol,
          +                         Term[] boundVars,
          +                         Sort sort,
          +                         Term term,
          +                         boolean global)
          +
          Define recursive function. + + SMT-LIB: + + ( define-fun-rec <function_def> ) +
          +
          +
          Parameters:
          +
          symbol - The name of the function.
          +
          boundVars - The parameters to this function.
          +
          sort - The sort of the return value of this function.
          +
          term - The function body.
          +
          global - Determines whether this definition is global (i.e., persists + when popping the context).
          +
          Returns:
          +
          The function.
          +
          +
        • +
        + + + +
          +
        • +

          defineFunRec

          +
          public Term defineFunRec​(Term fun,
          +                         Term[] boundVars,
          +                         Term term)
          +
          Define recursive function in the current context. + + SMT-LIB: + + ( define-fun-rec <function_def> ) + + + Create parameter fun with mkConst(Sort).
          +
          +
          Parameters:
          +
          fun - The sorted function.
          +
          boundVars - The parameters to this function.
          +
          term - The function body.
          +
          Returns:
          +
          The function.
          +
          +
        • +
        + + + +
          +
        • +

          defineFunRec

          +
          public Term defineFunRec​(Term fun,
          +                         Term[] boundVars,
          +                         Term term,
          +                         boolean global)
          +
          Define recursive function. + + SMT-LIB: + + ( define-fun-rec <function_def> ) + + + Create parameter fun with mkConst(Sort).
          +
          +
          Parameters:
          +
          fun - The sorted function.
          +
          boundVars - The parameters to this function.
          +
          term - The function body.
          +
          global - Determines whether this definition is global (i.e., persists + when popping the context).
          +
          Returns:
          +
          The function.
          +
          +
        • +
        + + + +
          +
        • +

          defineFunsRec

          +
          public void defineFunsRec​(Term[] funs,
          +                          Term[][] boundVars,
          +                          Term[] terms)
          +
          Define recursive functions in the current context. + + SMT-LIB: + + ( define-funs-rec ( <function_decl>^{n+1} ) ( <term>^{n+1} ) ) + + + Create elements of parameter funs with + mkConst(Sort).
          +
          +
          Parameters:
          +
          funs - The sorted functions.
          +
          boundVars - The list of parameters to the functions.
          +
          terms - The list of function bodies of the functions.
          +
          +
        • +
        + + + +
          +
        • +

          defineFunsRec

          +
          public void defineFunsRec​(Term[] funs,
          +                          Term[][] boundVars,
          +                          Term[] terms,
          +                          boolean global)
          +
          Define recursive functions. + + SMT-LIB: + + ( define-funs-rec ( <function_decl>^{n+1} ) ( <term>^{n+1} ) ) + + + Create elements of parameter funs with + mkConst(Sort).
          +
          +
          Parameters:
          +
          funs - The sorted functions.
          +
          boundVars - The list of parameters to the functions.
          +
          terms - The list of function bodies of the functions.
          +
          global - Determines whether this definition is global (i.e., persists + when popping the context).
          +
          +
        • +
        + + + +
          +
        • +

          getLearnedLiterals

          +
          public Term[] getLearnedLiterals()
          +
          Get a list of input literals that are entailed by the current set of + assertions. + + SMT-LIB: + + ( get-learned-literals ) +
          +
          +
          Returns:
          +
          The list of learned literals.
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          getLearnedLiterals

          +
          public Term[] getLearnedLiterals​(LearnedLitType type)
          +
          Get a list of literals that are entailed by the current set of assertions. + + SMT-LIB: + + ( get-learned-literals :type ) +
          +
          +
          Parameters:
          +
          type - The type of learned literals to return
          +
          Returns:
          +
          The list of learned literals.
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          getAssertions

          +
          public Term[] getAssertions()
          +
          Get the list of asserted formulas. + + SMT-LIB: + + ( get-assertions ) +
          +
          +
          Returns:
          +
          The list of asserted formulas.
          +
          +
        • +
        + + + +
          +
        • +

          getInfo

          +
          public java.lang.String getInfo​(java.lang.String flag)
          +
          Get info from the solver. + SMT-LIB: ( get-info <info_flag> )
          +
          +
          Parameters:
          +
          flag - The get-info flag.
          +
          Returns:
          +
          The info.
          +
          +
        • +
        + + + +
          +
        • +

          getOption

          +
          public java.lang.String getOption​(java.lang.String option)
          +
          Get the value of a given option. + SMT-LIB: + + ( get-option <keyword> ) +
          +
          +
          Parameters:
          +
          option - The option for which the value is queried.
          +
          Returns:
          +
          A string representation of the option value.
          +
          +
        • +
        + + + + + + + +
          +
        • +

          getOptionInfo

          +
          public OptionInfo getOptionInfo​(java.lang.String option)
          +
          Get some information about the given option. + + Check the OptionInfo class for more details on which information + is available.
          +
          +
          Parameters:
          +
          option - The name of the option.
          +
          Returns:
          +
          Information about the given option.
          +
          +
        • +
        + + + +
          +
        • +

          getUnsatAssumptions

          +
          public Term[] getUnsatAssumptions()
          +
          Get the set of unsat ("failed") assumptions. + + SMT-LIB: + + ( get-unsat-assumptions ) + + + Requires to enable option produce-unsat-assumptions.
          +
          +
          Returns:
          +
          The set of unsat assumptions.
          +
          +
        • +
        + + + +
          +
        • +

          getUnsatCore

          +
          public Term[] getUnsatCore()
          +
          Get the unsatisfiable core. + SMT-LIB: + + (get-unsat-core) + + Requires to enable option produce-unsat-cores.
          +
          +
          Returns:
          +
          A set of terms representing the unsatisfiable core.
          +
          Note:
          +
          In contrast to SMT-LIB, cvc5's API does not distinguish between + named and unnamed assertions when producing an unsatisfiable + core. Additionally, the API allows this option to be called after + a check with assumptions. A subset of those assumptions may be + included in the unsatisfiable core returned by this method.
          +
          +
        • +
        + + + +
          +
        • +

          getUnsatCoreLemmas

          +
          public Term[] getUnsatCoreLemmas()
          +
          Get the lemmas used to derive unsatisfiability. + SMT-LIB: + + (get-unsat-core-lemmas) + + Requires the SAT proof unsat core mode, so to enable option unsat-core-mode=sat-proof
          +
          +
          Returns:
          +
          A set of terms representing the lemmas used to derive + unsatisfiability.
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          getDifficulty

          +
          public java.util.Map<Term,​Term> getDifficulty()
          +
          Get a difficulty estimate for an asserted formula. This method is + intended to be called immediately after any response to a checkSat.
          +
          +
          Returns:
          +
          A map from (a subset of) the input assertions to a real value that. + is an estimate of how difficult each assertion was to solve. Unmentioned + assertions can be assumed to have zero difficulty.
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          getTimeoutCore

          +
          public Pair<Result,​Term[]> getTimeoutCore()
          +
          Get a timeout core, which computes a subset of the current assertions that + cause a timeout. Note it does not require being proceeded by a call to + checkSat. + + SMT-LIB: + + (get-timeout-core) +
          +
          +
          Returns:
          +
          The result of the timeout core computation. This is a pair + containing a result and a list of formulas. If the result is unknown + and the reason is timeout, then the list of formulas correspond to a + subset of the current assertions that cause a timeout in the specified + time timeout-core-timeout. + If the result is unsat, then the list of formulas correspond to an + unsat core for the current assertions. Otherwise, the result is sat, + indicating that the current assertions are satisfiable, and + the list of formulas is empty. + + This method may make multiple checks for satisfiability internally, each + limited by the timeout value given by timeout-core-timeout.
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          getTimeoutCoreAssuming

          +
          public Pair<Result,​Term[]> getTimeoutCoreAssuming​(Term[] assumptions)
          +
          Get a timeout core, which computes a subset of the given assumptions that + cause a timeout when added to the current assertions. Note it does not + require being proceeded by a call to checkSat. + + SMT-LIB: + + (get-timeout-core) +
          +
          +
          Parameters:
          +
          assumptions - The formulas to assume.
          +
          Returns:
          +
          The result of the timeout core computation. This is a pair + containing a result and a list of formulas. If the result is unknown + and the reason is timeout, then the list of formulas correspond to a + subset of assumptions that cause a timeout when added to the current + assertions in the specified time timeout-core-timeout. + If the result is unsat, then the list of formulas plus the current + assertions correspond to an unsat core for the current assertions. + Otherwise, the result is sat, indicating that the given assumptions plus + the current assertions are satisfiable, and the list of formulas is empty. + + This method may make multiple checks for satisfiability internally, each + limited by the timeout value given by timeout-core-timeout.
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          getProof

          +
          public Proof[] getProof()
          +
          Get refutation proof for the most recent call to checkSat. + + SMT-LIB: + + ( get-proof ) + + + Requires to enable option produce-proofs.
          +
          +
          Returns:
          +
          A vector of proof nodes. This is equivalent to getProof + when c is FULL.
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          getProof

          +
          public Proof[] getProof​(ProofComponent c)
          +
          Get a proof associated with the most recent call to checkSat. + + SMT-LIB: + + ( get-proof :c) + + + Requires to enable option produce-proofs.
          +
          +
          Parameters:
          +
          c - The component of the proof to return
          +
          Returns:
          +
          A vector of proof nodes.
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          proofToString

          +
          public java.lang.String proofToString​(Proof proof)
          +
          Prints a proof into a string with a slected proof format mode. + Other aspects of printing are taken from the solver options.
          +
          +
          Parameters:
          +
          proof - A proof.
          +
          Returns:
          +
          The proof printed in the current format.
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          proofToString

          +
          public java.lang.String proofToString​(Proof proof,
          +                                      ProofFormat format)
          +
          Prints a proof into a string with a slected proof format mode. + Other aspects of printing are taken from the solver options.
          +
          +
          Parameters:
          +
          proof - A proof.
          +
          format - The proof format used to print the proof. Must be + `PROOF_FORMAT_NONE` if the proof is from a component other than + `PROOF_COMPONENT_FULL`.
          +
          Returns:
          +
          The proof printed in the current format.
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          proofToString

          +
          public java.lang.String proofToString​(Proof proof,
          +                                      ProofFormat format,
          +                                      java.util.Map assertionNames)
          +
          Prints a proof into a string with a slected proof format mode. + Other aspects of printing are taken from the solver options.
          +
          +
          Parameters:
          +
          proof - A proof.
          +
          format - The proof format used to print the proof. Must be + `PROOF_FORMAT_NONE` if the proof is from a component other than + `PROOF_COMPONENT_FULL`.
          +
          assertionNames - Mapping between assertions and names, if they were + given by the user. This is used by the Alethe proof format.
          +
          Returns:
          +
          The proof printed in the current format.
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          getValue

          +
          public Term getValue​(Term term)
          +
          Get the value of the given term in the current model. + + SMT-LIB: + + ( get-value ( <term> ) ) +
          +
          +
          Parameters:
          +
          term - The term for which the value is queried.
          +
          Returns:
          +
          The value of the given term.
          +
          +
        • +
        + + + +
          +
        • +

          getValue

          +
          public Term[] getValue​(Term[] terms)
          +
          Get the values of the given terms in the current model. + + SMT-LIB: + + ( get-value ( <term>+ ) ) +
          +
          +
          Parameters:
          +
          terms - The terms for which the value is queried.
          +
          Returns:
          +
          The values of the given terms.
          +
          +
        • +
        + + + +
          +
        • +

          getModelDomainElements

          +
          public Term[] getModelDomainElements​(Sort s)
          +
          Get the domain elements of uninterpreted sort s in the current model. + + The current model interprets s as the finite sort whose domain + elements are given in the return value of this method.
          +
          +
          Parameters:
          +
          s - The uninterpreted sort in question.
          +
          Returns:
          +
          The domain elements of s in the current model.
          +
          +
        • +
        + + + +
          +
        • +

          isModelCoreSymbol

          +
          public boolean isModelCoreSymbol​(Term v)
          +
          This returns false if the model value of free constant v was not + essential for showing the satisfiability of the last call to + checkSat() using the current model. This method will only + return false (for any v) if the option model-cores has + been set.
          +
          +
          Parameters:
          +
          v - The term in question.
          +
          Returns:
          +
          True if v is a model core symbol.
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          getModel

          +
          public java.lang.String getModel​(Sort[] sorts,
          +                                 Term[] vars)
          +
          Get the model + + SMT-LIB: + + ( get-model ) + + + Requires to enable option produce-models.
          +
          +
          Parameters:
          +
          sorts - The list of uninterpreted sorts that should be printed in the. + model.
          +
          vars - The list of free constants that should be printed in the. + model. A subset of these may be printed based on + isModelCoreSymbol(Term).
          +
          Returns:
          +
          A string representing the model.
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          getQuantifierElimination

          +
          public Term getQuantifierElimination​(Term q)
          +
          Do quantifier elimination. + + SMT-LIB: + + ( get-qe <q> ) + + + Quantifier Elimination is is only complete for logics such as LRA, + LIA and BV.
          +
          +
          Parameters:
          +
          q - A quantified formula of the form: + Q x1...xn. P( x1...xn, y1...yn ) + where P( x1...xn, y1...yn ) is a quantifier-free formula.
          +
          Returns:
          +
          A formula ret such that, given the current set of formulas + A asserted to this solver: + - ( A && q ) and ( A && ret ) are equivalent + - ret is quantifier-free formula containing only free + variables in y1...yn.
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          getQuantifierEliminationDisjunct

          +
          public Term getQuantifierEliminationDisjunct​(Term q)
          +
          Do partial quantifier elimination, which can be used for incrementally + computing the result of a quantifier elimination. + + SMT-LIB: + + ( get-qe-disjunct <q> ) + + + Quantifier Elimination is is only complete for logics such as LRA, + LIA and BV.
          +
          +
          Parameters:
          +
          q - A quantified formula of the form: + Q x1...xn. P( x1...xn, y1...yn ) + where P( x1...xn, y1...yn ) is a quantifier-free formula.
          +
          Returns:
          +
          A formula ret such that, given the current set of formulas A + asserted to this solver: + - (A ^ q) => (A ^ ret) if Q is forall or + (A ^ ret) => (A ^ q) if Q is exists, + - ret is quantifier-free formula containing only free variables + in y1...yn, + - If Q is exists, let A && Q_n be the formula + A && ~(ret && Q_1) && ... && ~(ret && Q_n) + where for each i=1,...n, formula ret && Q_i + is the result of calling + getQuantifierEliminationDisjunct(Term) + for q with the set of assertions + A && Q_{i-1}. Similarly, if Q is forall, then + let A && Q_n be + A && (ret && Q_1) && ... && (ret&& Q_n) + where ret && Q_i is the same as above. In either case, + we have that ret && Q_j will eventually be true or + false, for some finite j.
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          declareSepHeap

          +
          public void declareSepHeap​(Sort locSort,
          +                           Sort dataSort)
          +
          When using separation logic, this sets the location sort and the + datatype sort to the given ones. This method should be invoked exactly + once, before any separation logic constraints are provided.
          +
          +
          Parameters:
          +
          locSort - The location sort of the heap.
          +
          dataSort - The data sort of the heap.
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          getValueSepHeap

          +
          public Term getValueSepHeap()
          +
          When using separation logic, obtain the term for the heap.
          +
          +
          Returns:
          +
          The term for the heap.
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          getValueSepNil

          +
          public Term getValueSepNil()
          +
          When using separation logic, obtain the term for nil.
          +
          +
          Returns:
          +
          The term for nil.
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          declarePool

          +
          public Term declarePool​(java.lang.String symbol,
          +                        Sort sort,
          +                        Term[] initValue)
          +
          Declare a symbolic pool of terms with the given initial value. + + SMT-LIB: + + ( declare-pool <symbol> <sort> ( <term>* ) ) +
          +
          +
          Parameters:
          +
          symbol - The name of the pool.
          +
          sort - The sort of the elements of the pool.
          +
          initValue - The initial value of the pool.
          +
          Returns:
          +
          The pool.
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          declareOracleFun

          +
          public Term declareOracleFun​(java.lang.String symbol,
          +                             Sort[] sorts,
          +                             Sort sort,
          +                             IOracle oracle)
          +
          Declare an oracle function with reference to an implementation. + + Oracle functions have a different semantics with respect to ordinary + declared functions. In particular, for an input to be satisfiable, + its oracle functions are implicitly universally quantified. + + This method is used in part for implementing this command: + + + (declare-oracle-fun <sym> (<sort>*) <sort> <sym>) + + + + In particular, the above command is implemented by constructing a + function over terms that wraps a call to binary sym via a text interface.
          +
          +
          Parameters:
          +
          symbol - The name of the oracle
          +
          sorts - The sorts of the parameters to this function
          +
          sort - The sort of the return value of this function
          +
          oracle - An object that implements the oracle interface.
          +
          Returns:
          +
          The oracle function
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          addPlugin

          +
          public void addPlugin​(AbstractPlugin p)
          +
          Add plugin to this solver. Its callbacks will be called throughout the + lifetime of this solver.
          +
          +
          Parameters:
          +
          p - The plugin to add to this solver.
          +
          +
        • +
        + + + +
          +
        • +

          pop

          +
          public void pop()
          +         throws CVC5ApiException
          +
          Pop a level from the assertion stack. + + SMT-LIB: + + ( pop <numeral> ) +
          +
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          pop

          +
          public void pop​(int nscopes)
          +         throws CVC5ApiException
          +
          Pop (a) level(s) from the assertion stack. + + SMT-LIB: + + ( pop <numeral> ) +
          +
          +
          Parameters:
          +
          nscopes - The number of levels to pop.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          getInterpolant

          +
          public Term getInterpolant​(Term conj)
          +
          Get an interpolant. + +

          + Given that A->B is valid, + this function determines a term I + over the shared variables of A and + B, + such that A->I and I->B + are valid. A is the current set of + assertions and B is the conjecture, given as conj. +

          + + SMT-LIB: + + ( get-interpolant <symbol> <conj> ) +
          +
          +
          Parameters:
          +
          conj - The conjecture term.
          +
          Returns:
          +
          The interpolant, if an interpolant exists, else the null term.
          +
          Note:
          +
          In SMT-LIB, <symbol> assigns a symbol to the interpolant., Requires option produce-interpolants to be set to a mode + different from none., This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          getInterpolant

          +
          public Term getInterpolant​(Term conj,
          +                           Grammar grammar)
          +
          Get an interpolant. + +

          + Given that A->B is valid, + this function determines a term I, + over the shared variables of A and + B, + with respect to a given grammar, such + that A->I and I->B are valid, if such a term exits. + A is the current set of assertions and B is the + conjecture, given as conj. +

          + + SMT-LIB: + + ( get-interpolant <symbol> <conj> <g> ) +
          +
          +
          Parameters:
          +
          conj - The conjecture term.
          +
          grammar - The grammar for the interpolant I.
          +
          Returns:
          +
          The interpolant, if an interpolant exists, else the null term.
          +
          Note:
          +
          In SMT-LIB, <symbol> assigns a symbol to the interpolant., Requires option produce-interpolants to be set to a mode + different from none., This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          getInterpolantNext

          +
          public Term getInterpolantNext()
          +
          Get the next interpolant. + + Can only be called immediately after a successful call to + get-interpolant or get-interpolant-next. Is guaranteed to + produce a syntactically different interpolant wrt the last returned + interpolant if successful. + + SMT-LIB: + + (get-interpolant-next) + + + Requires to enable incremental mode, and option + produce-interpolants to be set to a mode different from + none.
          +
          +
          Returns:
          +
          A Term I such that A->I and I->B are valid, + where A is the current set of assertions and B + is given in the input by conj on the last call to getInterpolant, + or the null term if such a term cannot be found.
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          getAbduct

          +
          public Term getAbduct​(Term conj)
          +
          Get an abduct. + + SMT-LIB: + + ( get-abduct <conj> ) + + Requires enabling option produce-abducts.
          +
          +
          Parameters:
          +
          conj - The conjecture term.
          +
          Returns:
          +
          A term C such that A && C is satisfiable, and + A && ~B && C is unsatisfiable, where A is the + current set of assertions and B is given in the input by + conj, or the null term if such a term cannot be found.
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          getAbduct

          +
          public Term getAbduct​(Term conj,
          +                      Grammar grammar)
          +
          Get an abduct. + + SMT-LIB: + + ( get-abduct <conj> <g> ) + + + Requires enabling option produce-abducts.
          +
          +
          Parameters:
          +
          conj - The conjecture term.
          +
          grammar - The grammar for the abduct C.
          +
          Returns:
          +
          A term C such that A && C is satisfiable, and + A && ~B && C is unsatisfiable, where A is the + current set of assertions and B is given in the input by + conj, or the null term if such a term cannot be found.
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          getAbductNext

          +
          public Term getAbductNext()
          +
          Get the next abduct. Can only be called immediately after a successful + call to get-abduct or get-abduct-next. Is guaranteed to produce a + syntactically different abduct wrt the last returned abduct if successful. + SMT-LIB: + + ( get-abduct-next ) + + Requires enabling incremental mode and option produce-abducts.
          +
          +
          Returns:
          +
          A term C such that A^C is satisfiable, and A^~B^C is. + unsatisfiable, where A is the current set of assertions and B is + given in the input by conj in the last call to getAbduct, or the + null term if such a term cannot be found.
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          blockModel

          +
          public void blockModel​(BlockModelsMode mode)
          +
          Block the current model. + + Can be called only if immediately preceded by a SAT or INVALID query. + + SMT-LIB: + + ( block-model ) + + + Requires enabling option produce-models.
          +
          +
          Parameters:
          +
          mode - The mode to use for blocking.
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          blockModelValues

          +
          public void blockModelValues​(Term[] terms)
          +
          Block the current model values of (at least) the values in terms. + + Can be called only if immediately preceded by a SAT query. + + SMT-LIB: + + ( block-model-values ( <terms>+ ) ) + + + Requires enabling option produce-models.
          +
          +
          Parameters:
          +
          terms - The model values to block.
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          getInstantiations

          +
          public java.lang.String getInstantiations()
          +
          Get a string that contains information about all instantiations made by + the quantifiers module.
          +
          +
          Returns:
          +
          The string representing the information about all instantiations.
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          push

          +
          public void push()
          +          throws CVC5ApiException
          +
          Push a level to the assertion stack. + + SMT-LIB: + + ( push <numeral> ) +
          +
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          push

          +
          public void push​(int nscopes)
          +          throws CVC5ApiException
          +
          Push (a) level(s) to the assertion stack. + + SMT-LIB: + + ( push <numeral> ) +
          +
          +
          Parameters:
          +
          nscopes - The number of levels to push.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          resetAssertions

          +
          public void resetAssertions()
          +
          Remove all assertions. + + SMT-LIB: + + ( reset-assertions ) +
          +
        • +
        + + + +
          +
        • +

          setInfo

          +
          public void setInfo​(java.lang.String keyword,
          +                    java.lang.String value)
          +             throws CVC5ApiException
          +
          Set info. + + SMT-LIB: + + ( set-info <attribute> ) +
          +
          +
          Parameters:
          +
          keyword - The info flag.
          +
          value - The value of the info flag.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          setLogic

          +
          public void setLogic​(java.lang.String logic)
          +              throws CVC5ApiException
          +
          Set logic. + + SMT-LIB: + + ( set-logic <symbol> ) +
          +
          +
          Parameters:
          +
          logic - The logic to set.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          isLogicSet

          +
          public boolean isLogicSet()
          +
          Is logic set? Returns whether we called setLogic yet for this solver.
          +
          +
          Returns:
          +
          whether we called setLogic yet for this solver.
          +
          +
        • +
        + + + +
          +
        • +

          getLogic

          +
          public java.lang.String getLogic()
          +                          throws CVC5ApiException
          +
          Get the logic set the solver.
          +
          +
          Returns:
          +
          The logic used by the solver.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          Note:
          +
          Asserts isLogicSet().
          +
          +
        • +
        + + + +
          +
        • +

          setOption

          +
          public void setOption​(java.lang.String option,
          +                      java.lang.String value)
          +
          Set option. + + SMT-LIB: + + ( set-option <option> ) +
          +
          +
          Parameters:
          +
          option - The option name.
          +
          value - The option value.
          +
          +
        • +
        + + + +
          +
        • +

          declareSygusVar

          +
          public Term declareSygusVar​(java.lang.String symbol,
          +                            Sort sort)
          +
          Append symbol to the current list of universal variables. + + SyGuS v2: + + ( declare-var <symbol> <sort> ) +
          +
          +
          Parameters:
          +
          sort - The sort of the universal variable.
          +
          symbol - The name of the universal variable.
          +
          Returns:
          +
          The universal variable.
          +
          +
        • +
        + + + +
          +
        • +

          mkGrammar

          +
          public Grammar mkGrammar​(Term[] boundVars,
          +                         Term[] ntSymbols)
          +
          Create a Sygus grammar. + + The first non-terminal is treated as the starting non-terminal, so the + order of non-terminals matters.
          +
          +
          Parameters:
          +
          boundVars - The parameters to corresponding synth-fun/synth-inv.
          +
          ntSymbols - The pre-declaration of the non-terminal symbols.
          +
          Returns:
          +
          The grammar.
          +
          +
        • +
        + + + +
          +
        • +

          synthFun

          +
          public Term synthFun​(java.lang.String symbol,
          +                     Term[] boundVars,
          +                     Sort sort)
          +
          Synthesize n-ary function. + + SyGuS v2: + + ( synth-fun <symbol> ( <boundVars>* ) <sort> ) +
          +
          +
          Parameters:
          +
          symbol - The name of the function.
          +
          boundVars - The parameters to this function.
          +
          sort - The sort of the return value of this function.
          +
          Returns:
          +
          The function.
          +
          +
        • +
        + + + +
          +
        • +

          synthFun

          +
          public Term synthFun​(java.lang.String symbol,
          +                     Term[] boundVars,
          +                     Sort sort,
          +                     Grammar grammar)
          +
          Synthesize n-ary function following specified syntactic constraints. + + SyGuS v2: + + ( synth-fun <symbol> ( <boundVars>* ) <sort> <g> ) +
          +
          +
          Parameters:
          +
          symbol - The name of the function.
          +
          boundVars - The parameters to this function.
          +
          sort - The sort of the return value of this function.
          +
          grammar - The syntactic constraints.
          +
          Returns:
          +
          The function.
          +
          +
        • +
        + + + +
          +
        • +

          addSygusConstraint

          +
          public void addSygusConstraint​(Term term)
          +
          Add a forumla to the set of Sygus constraints. + + SyGuS v2: + + ( constraint <term> ) +
          +
          +
          Parameters:
          +
          term - The formula to add as a constraint.
          +
          +
        • +
        + + + +
          +
        • +

          getSygusConstraints

          +
          public Term[] getSygusConstraints()
          +
          Get the list of sygus constraints.
          +
          +
          Returns:
          +
          The list of sygus constraints.
          +
          +
        • +
        + + + +
          +
        • +

          addSygusAssume

          +
          public void addSygusAssume​(Term term)
          +
          Add a forumla to the set of Sygus assumptions. + + SyGuS v2: + + ( assume <term> ) +
          +
          +
          Parameters:
          +
          term - The formula to add as an assumption.
          +
          +
        • +
        + + + +
          +
        • +

          getSygusAssumptions

          +
          public Term[] getSygusAssumptions()
          +
          Get the list of sygus assumptions.
          +
          +
          Returns:
          +
          The list of sygus assumptions.
          +
          +
        • +
        + + + +
          +
        • +

          addSygusInvConstraint

          +
          public void addSygusInvConstraint​(Term inv,
          +                                  Term pre,
          +                                  Term trans,
          +                                  Term post)
          +
          Add a set of Sygus constraints to the current state that correspond to an + invariant synthesis problem. + + SyGuS v2: + + ( inv-constraint <inv> <pre> <trans> <post> ) +
          +
          +
          Parameters:
          +
          inv - The function-to-synthesize.
          +
          pre - The pre-condition.
          +
          trans - The transition relation.
          +
          post - The post-condition.
          +
          +
        • +
        + + + +
          +
        • +

          checkSynth

          +
          public SynthResult checkSynth()
          +
          Try to find a solution for the synthesis conjecture corresponding to the + current list of functions-to-synthesize, universal variables and + constraints. + + SyGuS v2: + + ( check-synth ) +
          +
          +
          Returns:
          +
          The result of the check, which is "solution" if the check found a. + solution in which case solutions are available via + getSynthSolutions, "no solution" if it was determined there is no + solution, or "unknown" otherwise.
          +
          +
        • +
        + + + +
          +
        • +

          checkSynthNext

          +
          public SynthResult checkSynthNext()
          +
          Try to find a next solution for the synthesis conjecture corresponding to + the current list of functions-to-synthesize, universal variables and + constraints. Must be called immediately after a successful call to + check-synth or check-synth-next.
          +
          +
          Returns:
          +
          The result of the check, which is "solution" if the check found a + solution in which case solutions are available via + getSynthSolutions, "no solution" if it was determined there is no + solution, or "unknown" otherwise.
          +
          Note:
          +
          Requires incremental mode. + + SyGuS v2: + + ( check-synth-next ) +
          +
          +
        • +
        + + + +
          +
        • +

          getSynthSolution

          +
          public Term getSynthSolution​(Term term)
          +
          Get the synthesis solution of the given term. + + This method should be called immediately after the solver answers unsat + for sygus input.
          +
          +
          Parameters:
          +
          term - The term for which the synthesis solution is queried.
          +
          Returns:
          +
          The synthesis solution of the given term.
          +
          +
        • +
        + + + +
          +
        • +

          getSynthSolutions

          +
          public Term[] getSynthSolutions​(Term[] terms)
          +
          Get the synthesis solutions of the given terms. + + This method should be called immediately after the solver answers unsat + for sygus input.
          +
          +
          Parameters:
          +
          terms - The terms for which the synthesis solutions is queried.
          +
          Returns:
          +
          The synthesis solutions of the given terms.
          +
          +
        • +
        + + + +
          +
        • +

          findSynth

          +
          public Term findSynth​(FindSynthTarget fst)
          +
          Find a target term of interest using sygus enumeration, with no provided + grammar. + + The solver will infer which grammar to use in this call, which by default + will be the grammars specified by the function(s)-to-synthesize in the + current context. + + SyGuS v2: + + (find-synth :target) +
          +
          +
          Parameters:
          +
          fst - The identifier specifying what kind of term to find
          +
          Returns:
          +
          The result of the find, which is the null term if this call failed.
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          findSynth

          +
          public Term findSynth​(FindSynthTarget fst,
          +                      Grammar grammar)
          +
          Find a target term of interest using sygus enumeration with a provided + grammar. + + SyGuS v2: + + (find-synth :target G) +
          +
          +
          Parameters:
          +
          fst - The identifier specifying what kind of term to find
          +
          grammar - The grammar for the term
          +
          Returns:
          +
          The result of the find, which is the null term if this call failed.
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          findSynthNext

          +
          public Term findSynthNext()
          +
          Try to find a next target term of interest using sygus enumeration. Must + be called immediately after a successful call to find-synth or + find-synth-next. + + SyGuS v2: + + (find-synth-next) +
          +
          +
          Returns:
          +
          The result of the find, which is the null term if this call failed.
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          getStatistics

          +
          public Statistics getStatistics()
          +
          Get a snapshot of the current state of the statistic values of this + solver. The returned object is completely decoupled from the solver and + will not change when the solver is used again.
          +
          +
          Returns:
          +
          A snapshot of the current state of the statistic values.
          +
          +
        • +
        + + + +
          +
        • +

          getVersion

          +
          public java.lang.String getVersion()
          +
          Get a string representation of the version of this solver.
          +
          +
          Returns:
          +
          The version string.
          +
          +
        • +
        + + + +
          +
        • +

          getPointer

          +
          public long getPointer()
          +
        • +
        + + + +
          +
        • +

          deletePointer

          +
          public void deletePointer()
          +
        • +
        + + + +
          +
        • +

          toString

          +
          public java.lang.String toString()
          +
          +
          Overrides:
          +
          toString in class java.lang.Object
          +
          +
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
    + +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Sort.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Sort.html new file mode 100644 index 0000000000..250f7a6eb7 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Sort.html @@ -0,0 +1,1783 @@ + + + + + +Sort + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Class Sort

    +
    +
    +
      +
    • java.lang.Object
    • +
    • +
        +
      • io.github.cvc5.Sort
      • +
      +
    • +
    +
    +
      +
    • +
      +
      All Implemented Interfaces:
      +
      java.lang.Comparable<Sort>
      +
      +
      +
      public class Sort
      +extends java.lang.Object
      +implements java.lang.Comparable<Sort>
      +
      The sort of a cvc5 term.
      +
    • +
    +
    +
    + +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Field Detail

        + + + +
          +
        • +

          pointer

          +
          protected long pointer
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          Sort

          +
          public Sort()
          +
          Null sort
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          deletePointer

          +
          protected void deletePointer​(long pointer)
          +
        • +
        + + + +
          +
        • +

          equals

          +
          public boolean equals​(java.lang.Object s)
          +
          Comparison for structural equality.
          +
          +
          Overrides:
          +
          equals in class java.lang.Object
          +
          Parameters:
          +
          s - The sort to compare to.
          +
          Returns:
          +
          True if the sorts are equal.
          +
          +
        • +
        + + + +
          +
        • +

          compareTo

          +
          public int compareTo​(Sort s)
          +
          Comparison for ordering on sorts.
          +
          +
          Specified by:
          +
          compareTo in interface java.lang.Comparable<Sort>
          +
          Parameters:
          +
          s - The sort to compare to.
          +
          Returns:
          +
          A negative integer, zero, or a positive integer as this sort + is less than, equal to, or greater than the specified sort.
          +
          +
        • +
        + + + +
          +
        • +

          getKind

          +
          public SortKind getKind()
          +                 throws CVC5ApiException
          +
          +
          Returns:
          +
          The kind of this sort.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          hasSymbol

          +
          public boolean hasSymbol()
          +
          +
          Returns:
          +
          True if the sort has a symbol.
          +
          +
        • +
        + + + +
          +
        • +

          getSymbol

          +
          public java.lang.String getSymbol()
          +
          +
          Returns:
          +
          The raw symbol of the symbol.
          +
          Note:
          +
          Asserts hasSymbol().
          +
          +
        • +
        + + + +
          +
        • +

          isNull

          +
          public boolean isNull()
          +
          Determine if this is the null sort.
          +
          +
          Returns:
          +
          True if this Sort is the null sort.
          +
          +
        • +
        + + + +
          +
        • +

          isBoolean

          +
          public boolean isBoolean()
          +
          Determine if this is the Boolean sort (SMT-LIB: Bool).
          +
          +
          Returns:
          +
          True if this sort is the Boolean sort.
          +
          +
        • +
        + + + +
          +
        • +

          isInteger

          +
          public boolean isInteger()
          +
          Determine if this is the integer sort (SMT-LIB: Int).
          +
          +
          Returns:
          +
          True if this sort is the integer sort.
          +
          +
        • +
        + + + +
          +
        • +

          isReal

          +
          public boolean isReal()
          +
          Determine if this is the real sort (SMT-LIB: Real).
          +
          +
          Returns:
          +
          True if this sort is the real sort.
          +
          +
        • +
        + + + +
          +
        • +

          isString

          +
          public boolean isString()
          +
          Determine if this is the string sort (SMT-LIB: String)..
          +
          +
          Returns:
          +
          True if this sort is the string sort.
          +
          +
        • +
        + + + +
          +
        • +

          isRegExp

          +
          public boolean isRegExp()
          +
          Determine if this is the regular expression sort (SMT-LIB: RegLan).
          +
          +
          Returns:
          +
          True if this sort is the regular expression sort.
          +
          +
        • +
        + + + +
          +
        • +

          isRoundingMode

          +
          public boolean isRoundingMode()
          +
          Determine if this is the rounding mode sort (SMT-LIB: RoundingMode).
          +
          +
          Returns:
          +
          True if this sort is the rounding mode sort.
          +
          +
        • +
        + + + +
          +
        • +

          isBitVector

          +
          public boolean isBitVector()
          +
          Determine if this is a bit-vector sort (SMT-LIB: (_ BitVec i)).
          +
          +
          Returns:
          +
          True if this sort is a bit-vector sort.
          +
          +
        • +
        + + + +
          +
        • +

          isFiniteField

          +
          public boolean isFiniteField()
          +
          Determine if this is a finite field sort (SMT-LIB: (_ FiniteField i)).
          +
          +
          Returns:
          +
          True if this sort is a finite field sort.
          +
          +
        • +
        + + + +
          +
        • +

          isFloatingPoint

          +
          public boolean isFloatingPoint()
          +
          Determine if this is a floatingpoint sort + (SMT-LIB: (_ FloatingPoint eb sb)).
          +
          +
          Returns:
          +
          True if this sort is a floating-point sort.
          +
          +
        • +
        + + + +
          +
        • +

          isDatatype

          +
          public boolean isDatatype()
          +
          Determine if this is a datatype sort.
          +
          +
          Returns:
          +
          True if this sort is a datatype sort.
          +
          +
        • +
        + + + +
          +
        • +

          isDatatypeConstructor

          +
          public boolean isDatatypeConstructor()
          +
          Determine if this is a datatype constructor sort.
          +
          +
          Returns:
          +
          True if this sort is a datatype constructor sort.
          +
          +
        • +
        + + + +
          +
        • +

          isDatatypeSelector

          +
          public boolean isDatatypeSelector()
          +
          Determine if this is a datatype selector sort.
          +
          +
          Returns:
          +
          True if this sort is a datatype selector sort.
          +
          +
        • +
        + + + +
          +
        • +

          isDatatypeTester

          +
          public boolean isDatatypeTester()
          +
          Determine if this is a datatype tester sort.
          +
          +
          Returns:
          +
          True if this sort is a datatype tester sort.
          +
          +
        • +
        + + + +
          +
        • +

          isDatatypeUpdater

          +
          public boolean isDatatypeUpdater()
          +
          Determine if this is a datatype updater sort.
          +
          +
          Returns:
          +
          True if this sort is a datatype updater sort.
          +
          +
        • +
        + + + +
          +
        • +

          isFunction

          +
          public boolean isFunction()
          +
          Determine if this is a function sort.
          +
          +
          Returns:
          +
          True if this sort is a function sort.
          +
          +
        • +
        + + + +
          +
        • +

          isPredicate

          +
          public boolean isPredicate()
          +
          Determine if this is a predicate sort. + + A predicate sort is a function sort that maps to the Boolean sort. All + predicate sorts are also function sorts.
          +
          +
          Returns:
          +
          True if this sort is a predicate sort.
          +
          +
        • +
        + + + +
          +
        • +

          isTuple

          +
          public boolean isTuple()
          +
          Determine if this a tuple sort.
          +
          +
          Returns:
          +
          True if this sort is a tuple sort.
          +
          +
        • +
        + + + +
          +
        • +

          isNullable

          +
          public boolean isNullable()
          +
          Determine if this a nullable sort.
          +
          +
          Returns:
          +
          True if this sort is a nullable sort.
          +
          +
        • +
        + + + +
          +
        • +

          isRecord

          +
          public boolean isRecord()
          +
          Determine if this is a record sort.
          +
          +
          Returns:
          +
          True if the sort is a record sort.
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          isArray

          +
          public boolean isArray()
          +
          Determine if this is an array sort.
          +
          +
          Returns:
          +
          True if the sort is an array sort.
          +
          +
        • +
        + + + +
          +
        • +

          isSet

          +
          public boolean isSet()
          +
          Determine if this is a Set sort.
          +
          +
          Returns:
          +
          True if the sort is a Set sort.
          +
          +
        • +
        + + + +
          +
        • +

          isBag

          +
          public boolean isBag()
          +
          Determine if this is a Bag sort.
          +
          +
          Returns:
          +
          True if the sort is a Bag sort.
          +
          +
        • +
        + + + +
          +
        • +

          isSequence

          +
          public boolean isSequence()
          +
          Determine if this is a Sequence sort.
          +
          +
          Returns:
          +
          True if the sort is a Sequence sort.
          +
          +
        • +
        + + + +
          +
        • +

          isAbstract

          +
          public boolean isAbstract()
          +
          Determine if this is an abstract sort.
          +
          +
          Returns:
          +
          True if the sort is a abstract sort.
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          isUninterpretedSort

          +
          public boolean isUninterpretedSort()
          +
          Determine if this is an uninterpreted sort.
          +
          +
          Returns:
          +
          True if this is an uninterpreted sort.
          +
          +
        • +
        + + + +
          +
        • +

          isUninterpretedSortConstructor

          +
          public boolean isUninterpretedSortConstructor()
          +
          Determine if this is an uninterpreted sort constructor. + + An uninterpreted sort constructor has arity > 0 and can be instantiated + to construct uninterpreted sorts with given sort parameters.
          +
          +
          Returns:
          +
          True if this is a sort constructor kind.
          +
          +
        • +
        + + + +
          +
        • +

          isInstantiated

          +
          public boolean isInstantiated()
          +
          Determine if this is an instantiated (parametric datatype or uninterpreted + sort constructor) sort. + + An instantiated sort is a sort that has been constructed from + instantiating a sort with sort arguments + (see instantiate(Sort[])).
          +
          +
          Returns:
          +
          True if this is an instantiated sort.
          +
          +
        • +
        + + + +
          +
        • +

          getUninterpretedSortConstructor

          +
          public Sort getUninterpretedSortConstructor()
          +
          Get the associated uninterpreted sort constructor of an instantiated + uninterpreted sort.
          +
          +
          Returns:
          +
          The uninterpreted sort constructor sort.
          +
          +
        • +
        + + + +
          +
        • +

          getDatatype

          +
          public Datatype getDatatype()
          +
          +
          Returns:
          +
          The underlying datatype of a datatype sort.
          +
          +
        • +
        + + + +
          +
        • +

          instantiate

          +
          public Sort instantiate​(Sort[] params)
          +
          Instantiate a parameterized datatype sort or uninterpreted sort + constructor sort. + + Create sorts parameter with Solver.mkParamSort(String)).
          +
          +
          Parameters:
          +
          params - The list of sort parameters to instantiate with.
          +
          Returns:
          +
          The instantiated sort.
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          getInstantiatedParameters

          +
          public Sort[] getInstantiatedParameters()
          +
          Get the sorts used to instantiate the sort parameters of a parametric + sort (parametric datatype or uninterpreted sort constructor sort, + see instantiate(Sort[])).
          +
          +
          Returns:
          +
          The sorts used to instantiate the sort parameters of a + parametric sort.
          +
          +
        • +
        + + + +
          +
        • +

          substitute

          +
          public Sort substitute​(Sort sort,
          +                       Sort replacement)
          +
          Substitution of Sorts.
          +
          +
          Parameters:
          +
          sort - The subsort to be substituted within this sort.
          +
          replacement - The sort replacing the substituted subsort.
          +
          Returns:
          +
          The sort yielded by substituting the replacement sort within the + given sort.
          +
          Note:
          +
          This replacement is applied during a pre-order traversal and + only once to the sort. It is not run until fix point., This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          substitute

          +
          public Sort substitute​(Sort[] sorts,
          +                       Sort[] replacements)
          +
          Simultaneous substitution of Sorts. + + Note that this replacement is applied during a pre-order traversal and + only once to the sort. It is not run until fix point. In the case that + sorts contains duplicates, the replacement earliest in the list takes + priority. + + For example, + (Array A B).substitute({A, C}, {(Array C D), (Array A B)}) will + return (Array (Array C D) B).
          +
          +
          Parameters:
          +
          sorts - The subsorts to be substituted within this sort.
          +
          replacements - The sort replacing the substituted subsorts.
          +
          Returns:
          +
          The sorts yielded by substituting the replacement sort within the + given sorts.
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          toString

          +
          protected java.lang.String toString​(long pointer)
          +
          +
          Returns:
          +
          A string representation of this sort.
          +
          +
        • +
        + + + +
          +
        • +

          getDatatypeConstructorArity

          +
          public int getDatatypeConstructorArity()
          +
          +
          Returns:
          +
          The arity of a datatype constructor sort.
          +
          +
        • +
        + + + +
          +
        • +

          getDatatypeConstructorDomainSorts

          +
          public Sort[] getDatatypeConstructorDomainSorts()
          +
          +
          Returns:
          +
          The domain sorts of a datatype constructor sort.
          +
          +
        • +
        + + + +
          +
        • +

          getDatatypeConstructorCodomainSort

          +
          public Sort getDatatypeConstructorCodomainSort()
          +
          +
          Returns:
          +
          The codomain sort of a datatype constructor sort.
          +
          +
        • +
        + + + +
          +
        • +

          getDatatypeSelectorDomainSort

          +
          public Sort getDatatypeSelectorDomainSort()
          +
          +
          Returns:
          +
          The domain sort of a datatype selector sort.
          +
          +
        • +
        + + + +
          +
        • +

          getDatatypeSelectorCodomainSort

          +
          public Sort getDatatypeSelectorCodomainSort()
          +
          +
          Returns:
          +
          The codomain sort of a datatype selector sort.
          +
          +
        • +
        + + + +
          +
        • +

          getDatatypeTesterDomainSort

          +
          public Sort getDatatypeTesterDomainSort()
          +
          +
          Returns:
          +
          The domain sort of a datatype tester sort.
          +
          +
        • +
        + + + +
          +
        • +

          getDatatypeTesterCodomainSort

          +
          public Sort getDatatypeTesterCodomainSort()
          +
          +
          Returns:
          +
          The codomain sort of a datatype tester sort, which is the Boolean + sort.
          +
          +
        • +
        + + + +
          +
        • +

          getFunctionArity

          +
          public int getFunctionArity()
          +
          +
          Returns:
          +
          The arity of a function sort.
          +
          +
        • +
        + + + +
          +
        • +

          getFunctionDomainSorts

          +
          public Sort[] getFunctionDomainSorts()
          +
          +
          Returns:
          +
          The domain sorts of a function sort.
          +
          +
        • +
        + + + +
          +
        • +

          getFunctionCodomainSort

          +
          public Sort getFunctionCodomainSort()
          +
          +
          Returns:
          +
          The codomain sort of a function sort.
          +
          +
        • +
        + + + +
          +
        • +

          getArrayIndexSort

          +
          public Sort getArrayIndexSort()
          +
          +
          Returns:
          +
          The array index sort of an array sort.
          +
          +
        • +
        + + + +
          +
        • +

          getArrayElementSort

          +
          public Sort getArrayElementSort()
          +
          +
          Returns:
          +
          The array element sort of an array element sort.
          +
          +
        • +
        + + + +
          +
        • +

          getSetElementSort

          +
          public Sort getSetElementSort()
          +
          +
          Returns:
          +
          The element sort of a set sort.
          +
          +
        • +
        + + + +
          +
        • +

          getBagElementSort

          +
          public Sort getBagElementSort()
          +
          +
          Returns:
          +
          The element sort of a bag sort.
          +
          +
        • +
        + + + +
          +
        • +

          getSequenceElementSort

          +
          public Sort getSequenceElementSort()
          +
          +
          Returns:
          +
          The element sort of a sequence sort.
          +
          +
        • +
        + + + +
          +
        • +

          getAbstractedKind

          +
          public SortKind getAbstractedKind()
          +                           throws CVC5ApiException
          +
          +
          Returns:
          +
          The sort kind of an abstract sort, which denotes the kind of + sorts that this abstract sort denotes.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          getUninterpretedSortConstructorArity

          +
          public int getUninterpretedSortConstructorArity()
          +
          +
          Returns:
          +
          The arity of an uninterpreted sort constructor sort.
          +
          +
        • +
        + + + +
          +
        • +

          getBitVectorSize

          +
          public int getBitVectorSize()
          +
          +
          Returns:
          +
          The bit-width of the bit-vector sort.
          +
          +
        • +
        + + + +
          +
        • +

          getFiniteFieldSize

          +
          public java.lang.String getFiniteFieldSize()
          +
          +
          Returns:
          +
          The bit-width of the bit-vector sort.
          +
          +
        • +
        + + + +
          +
        • +

          getFloatingPointExponentSize

          +
          public int getFloatingPointExponentSize()
          +
          +
          Returns:
          +
          The bit-width of the exponent of the floating-point sort.
          +
          +
        • +
        + + + +
          +
        • +

          getFloatingPointSignificandSize

          +
          public int getFloatingPointSignificandSize()
          +
          +
          Returns:
          +
          The width of the significand of the floating-point sort.
          +
          +
        • +
        + + + +
          +
        • +

          getDatatypeArity

          +
          public int getDatatypeArity()
          +
          +
          Returns:
          +
          The arity of a datatype sort.
          +
          +
        • +
        + + + +
          +
        • +

          getTupleLength

          +
          public int getTupleLength()
          +
          +
          Returns:
          +
          The length of a tuple sort.
          +
          +
        • +
        + + + +
          +
        • +

          getTupleSorts

          +
          public Sort[] getTupleSorts()
          +
          +
          Returns:
          +
          The element sorts of a tuple sort.
          +
          +
        • +
        + + + +
          +
        • +

          getNullableElementSort

          +
          public Sort getNullableElementSort()
          +
          +
          Returns:
          +
          The element sort of a nullable sort.
          +
          +
        • +
        + + + +
          +
        • +

          hashCode

          +
          public int hashCode()
          +
          Get the hash value of a sort.
          +
          +
          Overrides:
          +
          hashCode in class java.lang.Object
          +
          Returns:
          +
          The hash value.
          +
          +
        • +
        + + + +
          +
        • +

          getPointer

          +
          public long getPointer()
          +
        • +
        + + + +
          +
        • +

          deletePointer

          +
          public void deletePointer()
          +
        • +
        + + + +
          +
        • +

          toString

          +
          public java.lang.String toString()
          +
          +
          Overrides:
          +
          toString in class java.lang.Object
          +
          +
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
    + +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/SortKind.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/SortKind.html new file mode 100644 index 0000000000..03fff3d662 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/SortKind.html @@ -0,0 +1,939 @@ + + + + + +SortKind + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Enum SortKind

    +
    +
    +
      +
    • java.lang.Object
    • +
    • +
        +
      • java.lang.Enum<SortKind>
      • +
      • +
          +
        • io.github.cvc5.SortKind
        • +
        +
      • +
      +
    • +
    +
    +
      +
    • +
      +
      All Implemented Interfaces:
      +
      java.io.Serializable, java.lang.Comparable<SortKind>
      +
      +
      +
      public enum SortKind
      +extends java.lang.Enum<SortKind>
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Enum Constant Summary

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        Enum Constants 
        Enum ConstantDescription
        ABSTRACT_SORT +
        An abstract sort.
        +
        ARRAY_SORT +
        An array sort, whose argument sorts are the index and element sorts of the + array.
        +
        BAG_SORT +
        A bag sort, whose argument sort is the element sort of the bag.
        +
        BITVECTOR_SORT +
        A bit-vector sort, parameterized by an integer denoting its bit-width.
        +
        BOOLEAN_SORT +
        The Boolean sort.
        +
        DATATYPE_SORT +
        A datatype sort.
        +
        FINITE_FIELD_SORT +
        A finite field sort, parameterized by a size.
        +
        FLOATINGPOINT_SORT +
        A floating-point sort, parameterized by two integers denoting its + exponent and significand bit-widths.
        +
        FUNCTION_SORT +
        A function sort with given domain sorts and codomain sort.
        +
        INTEGER_SORT +
        The integer sort.
        +
        INTERNAL_SORT_KIND +
        Internal kind.
        +
        LAST_SORT_KIND +
        Marks the upper-bound of this enumeration.
        +
        NULL_SORT +
        Null kind.
        +
        NULLABLE_SORT +
        A nullable sort, whose argument sort denotes the sort of the direct child + of the nullable.
        +
        REAL_SORT +
        The real sort.
        +
        REGLAN_SORT +
        The regular language sort.
        +
        ROUNDINGMODE_SORT +
        The rounding mode sort.
        +
        SEQUENCE_SORT +
        A sequence sort, whose argument sort is the element sort of the sequence.
        +
        SET_SORT +
        A set sort, whose argument sort is the element sort of the set.
        +
        STRING_SORT +
        The string sort.
        +
        TUPLE_SORT +
        A tuple sort, whose argument sorts denote the sorts of the direct children + of the tuple.
        +
        UNDEFINED_SORT_KIND +
        Undefined kind.
        +
        UNINTERPRETED_SORT +
        An uninterpreted sort.
        +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Summary

        + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        All Methods Static Methods Instance Methods Concrete Methods 
        Modifier and TypeMethodDescription
        static SortKindfromInt​(int value) 
        intgetValue() 
        static SortKindvalueOf​(java.lang.String name) +
        Returns the enum constant of this type with the specified name.
        +
        static SortKind[]values() +
        Returns an array containing the constants of this enum type, in +the order they are declared.
        +
        +
          +
        • + + +

          Methods inherited from class java.lang.Enum

          +clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
        • +
        +
          +
        • + + +

          Methods inherited from class java.lang.Object

          +getClass, notify, notifyAll, wait, wait, wait
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Enum Constant Detail

        + + + +
          +
        • +

          INTERNAL_SORT_KIND

          +
          public static final SortKind INTERNAL_SORT_KIND
          +
          Internal kind. + + This kind serves as an abstraction for internal kinds that are not exposed + via the API but may appear in terms returned by API functions, e.g., + when querying the simplified form of a term.
          +
          +
          Note:
          +
          Should never be created via the API.
          +
          +
        • +
        + + + +
          +
        • +

          UNDEFINED_SORT_KIND

          +
          public static final SortKind UNDEFINED_SORT_KIND
          +
          Undefined kind.
          +
          +
          Note:
          +
          Should never be exposed or created via the API.
          +
          +
        • +
        + + + +
          +
        • +

          NULL_SORT

          +
          public static final SortKind NULL_SORT
          +
          Null kind. + + The kind of a null sort (Sort()).
          +
          +
          Note:
          +
          May not be explicitly created via API functions other than + Sort().
          +
          +
        • +
        + + + +
          +
        • +

          ABSTRACT_SORT

          +
          public static final SortKind ABSTRACT_SORT
          +
          An abstract sort. + + An abstract sort represents a sort whose parameters or argument sorts are + unspecified. For example, `mkAbstractSort(BITVECTOR_SORT)` returns a + sort that represents the sort of bit-vectors whose bit-width is + unspecified. + +
          +
        • +
        + + + +
          +
        • +

          ARRAY_SORT

          +
          public static final SortKind ARRAY_SORT
          +
          An array sort, whose argument sorts are the index and element sorts of the + array. + +
          +
        • +
        + + + +
          +
        • +

          BAG_SORT

          +
          public static final SortKind BAG_SORT
          +
          A bag sort, whose argument sort is the element sort of the bag. + +
          +
        • +
        + + + + + + + +
          +
        • +

          BITVECTOR_SORT

          +
          public static final SortKind BITVECTOR_SORT
          +
          A bit-vector sort, parameterized by an integer denoting its bit-width. + +
          +
        • +
        + + + + + + + + + + + +
          +
        • +

          FLOATINGPOINT_SORT

          +
          public static final SortKind FLOATINGPOINT_SORT
          +
          A floating-point sort, parameterized by two integers denoting its + exponent and significand bit-widths. + +
          +
        • +
        + + + + + + + + + + + +
          +
        • +

          REAL_SORT

          +
          public static final SortKind REAL_SORT
          +
          The real sort. + +
          +
        • +
        + + + +
          +
        • +

          REGLAN_SORT

          +
          public static final SortKind REGLAN_SORT
          +
          The regular language sort. + +
          +
        • +
        + + + + + + + +
          +
        • +

          SEQUENCE_SORT

          +
          public static final SortKind SEQUENCE_SORT
          +
          A sequence sort, whose argument sort is the element sort of the sequence. + +
          +
        • +
        + + + +
          +
        • +

          SET_SORT

          +
          public static final SortKind SET_SORT
          +
          A set sort, whose argument sort is the element sort of the set. + +
          +
        • +
        + + + +
          +
        • +

          STRING_SORT

          +
          public static final SortKind STRING_SORT
          +
          The string sort. + +
          +
        • +
        + + + +
          +
        • +

          TUPLE_SORT

          +
          public static final SortKind TUPLE_SORT
          +
          A tuple sort, whose argument sorts denote the sorts of the direct children + of the tuple. + +
          +
        • +
        + + + +
          +
        • +

          NULLABLE_SORT

          +
          public static final SortKind NULLABLE_SORT
          +
          A nullable sort, whose argument sort denotes the sort of the direct child + of the nullable. + +
          +
        • +
        + + + + + + + +
          +
        • +

          LAST_SORT_KIND

          +
          public static final SortKind LAST_SORT_KIND
          +
          Marks the upper-bound of this enumeration.
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          values

          +
          public static SortKind[] values()
          +
          Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +
          +for (SortKind c : SortKind.values())
          +    System.out.println(c);
          +
          +
          +
          Returns:
          +
          an array containing the constants of this enum type, in the order they are declared
          +
          +
        • +
        + + + +
          +
        • +

          valueOf

          +
          public static SortKind valueOf​(java.lang.String name)
          +
          Returns the enum constant of this type with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)
          +
          +
          Parameters:
          +
          name - the name of the enum constant to be returned.
          +
          Returns:
          +
          the enum constant with the specified name
          +
          Throws:
          +
          java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
          +
          java.lang.NullPointerException - if the argument is null
          +
          +
        • +
        + + + + + + + +
          +
        • +

          getValue

          +
          public int getValue()
          +
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
    + +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Stat.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Stat.html new file mode 100644 index 0000000000..549d70ac7b --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Stat.html @@ -0,0 +1,589 @@ + + + + + +Stat + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Class Stat

    +
    +
    +
      +
    • java.lang.Object
    • +
    • +
        +
      • io.github.cvc5.Stat
      • +
      +
    • +
    +
    +
      +
    • +
      +
      public class Stat
      +extends java.lang.Object
      +
      Represents a snapshot of a single statistic value. + A value can be of type long, double, String or a histogram + (Map<String, Long>). + The value type can be queried (using isInt(), isDouble(), etc.) and + the stored value can be accessed (using getInt(), getDouble(), etc.). + It is possible to query whether this statistic is an internal statistic by + isInternal() and whether its value is the default value by isDefault().
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Field Summary

        + + + + + + + + + + + + +
        Fields 
        Modifier and TypeFieldDescription
        protected longpointer 
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Summary

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        All Methods Instance Methods Concrete Methods 
        Modifier and TypeMethodDescription
        voiddeletePointer() 
        protected voiddeletePointer​(long pointer) 
        doublegetDouble() +
        Return the double value.
        +
        java.util.Map<java.lang.String,​java.lang.Long>getHistogram() +
        Return the histogram value.
        +
        longgetInt() +
        Return the integer value.
        +
        longgetPointer() 
        java.lang.StringgetString() +
        Return the string value.
        +
        booleanisDefault() +
        Does this value hold the default value?
        +
        booleanisDouble() +
        Is this value a double?
        +
        booleanisHistogram() +
        Is this value a histogram?
        +
        booleanisInt() +
        Is this value an integer?
        +
        booleanisInternal() +
        Is this value intended for internal use only?
        +
        booleanisString() +
        Is this value a string?
        +
        java.lang.StringtoString() 
        protected java.lang.StringtoString​(long pointer) 
        +
          +
        • + + +

          Methods inherited from class java.lang.Object

          +clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Field Detail

        + + + +
          +
        • +

          pointer

          +
          protected long pointer
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          deletePointer

          +
          protected void deletePointer​(long pointer)
          +
        • +
        + + + +
          +
        • +

          toString

          +
          protected java.lang.String toString​(long pointer)
          +
          +
          Returns:
          +
          A string representation of this Stat.
          +
          +
        • +
        + + + +
          +
        • +

          isInternal

          +
          public boolean isInternal()
          +
          Is this value intended for internal use only?
          +
          +
          Returns:
          +
          Whether this is an internal statistic.
          +
          +
        • +
        + + + +
          +
        • +

          isDefault

          +
          public boolean isDefault()
          +
          Does this value hold the default value?
          +
          +
          Returns:
          +
          Whether this is a defaulted statistic.
          +
          +
        • +
        + + + +
          +
        • +

          isInt

          +
          public boolean isInt()
          +
          Is this value an integer?
          +
          +
          Returns:
          +
          Whether the value is an integer.
          +
          +
        • +
        + + + +
          +
        • +

          getInt

          +
          public long getInt()
          +
          Return the integer value.
          +
          +
          Returns:
          +
          The integer value.
          +
          +
        • +
        + + + +
          +
        • +

          isDouble

          +
          public boolean isDouble()
          +
          Is this value a double?
          +
          +
          Returns:
          +
          Whether the value is a double.
          +
          +
        • +
        + + + +
          +
        • +

          getDouble

          +
          public double getDouble()
          +
          Return the double value.
          +
          +
          Returns:
          +
          The double value.
          +
          +
        • +
        + + + +
          +
        • +

          isString

          +
          public boolean isString()
          +
          Is this value a string?
          +
          +
          Returns:
          +
          Whether the value is a string.
          +
          +
        • +
        + + + +
          +
        • +

          getString

          +
          public java.lang.String getString()
          +
          Return the string value.
          +
          +
          Returns:
          +
          The string value.
          +
          +
        • +
        + + + +
          +
        • +

          isHistogram

          +
          public boolean isHistogram()
          +
          Is this value a histogram?
          +
          +
          Returns:
          +
          Whether the value is a histogram.
          +
          +
        • +
        + + + +
          +
        • +

          getHistogram

          +
          public java.util.Map<java.lang.String,​java.lang.Long> getHistogram()
          +
          Return the histogram value.
          +
          +
          Returns:
          +
          The histogram value.
          +
          +
        • +
        + + + +
          +
        • +

          getPointer

          +
          public long getPointer()
          +
        • +
        + + + +
          +
        • +

          deletePointer

          +
          public void deletePointer()
          +
        • +
        + + + +
          +
        • +

          toString

          +
          public java.lang.String toString()
          +
          +
          Overrides:
          +
          toString in class java.lang.Object
          +
          +
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
    + +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Statistics.ConstIterator.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Statistics.ConstIterator.html new file mode 100644 index 0000000000..1965689cd3 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Statistics.ConstIterator.html @@ -0,0 +1,359 @@ + + + + + +Statistics.ConstIterator + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Class Statistics.ConstIterator

    +
    +
    +
      +
    • java.lang.Object
    • +
    • +
        +
      • io.github.cvc5.Statistics.ConstIterator
      • +
      +
    • +
    +
    +
      +
    • +
      +
      All Implemented Interfaces:
      +
      java.util.Iterator<java.util.Map.Entry<java.lang.String,​Stat>>
      +
      +
      +
      Enclosing class:
      +
      Statistics
      +
      +
      +
      public class Statistics.ConstIterator
      +extends java.lang.Object
      +implements java.util.Iterator<java.util.Map.Entry<java.lang.String,​Stat>>
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Constructor Summary

        + + + + + + + + + + + + + + +
        Constructors 
        ConstructorDescription
        ConstIterator() 
        ConstIterator​(boolean internal, + boolean defaulted) 
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Summary

        + + + + + + + + + + + + + + + + + +
        All Methods Instance Methods Concrete Methods 
        Modifier and TypeMethodDescription
        booleanhasNext() 
        java.util.Map.Entry<java.lang.String,​Stat>next() 
        +
          +
        • + + +

          Methods inherited from class java.lang.Object

          +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
        • +
        +
          +
        • + + +

          Methods inherited from interface java.util.Iterator

          +forEachRemaining, remove
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          ConstIterator

          +
          public ConstIterator​(boolean internal,
          +                     boolean defaulted)
          +
        • +
        + + + +
          +
        • +

          ConstIterator

          +
          public ConstIterator()
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          hasNext

          +
          public boolean hasNext()
          +
          +
          Specified by:
          +
          hasNext in interface java.util.Iterator<java.util.Map.Entry<java.lang.String,​Stat>>
          +
          +
        • +
        + + + +
          +
        • +

          next

          +
          public java.util.Map.Entry<java.lang.String,​Stat> next()
          +
          +
          Specified by:
          +
          next in interface java.util.Iterator<java.util.Map.Entry<java.lang.String,​Stat>>
          +
          +
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
    + +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Statistics.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Statistics.html new file mode 100644 index 0000000000..bfe0e64dcf --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Statistics.html @@ -0,0 +1,466 @@ + + + + + +Statistics + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Class Statistics

    +
    +
    +
      +
    • java.lang.Object
    • +
    • +
        +
      • io.github.cvc5.Statistics
      • +
      +
    • +
    +
    +
      +
    • +
      +
      All Implemented Interfaces:
      +
      java.lang.Iterable<java.util.Map.Entry<java.lang.String,​Stat>>
      +
      +
      +
      public class Statistics
      +extends java.lang.Object
      +implements java.lang.Iterable<java.util.Map.Entry<java.lang.String,​Stat>>
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Nested Class Summary

        + + + + + + + + + + + + +
        Nested Classes 
        Modifier and TypeClassDescription
        class Statistics.ConstIterator 
        +
      • +
      +
      + +
      +
        +
      • + + +

        Field Summary

        + + + + + + + + + + + + +
        Fields 
        Modifier and TypeFieldDescription
        protected longpointer 
        +
      • +
      +
      + +
      + +
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Field Detail

        + + + +
          +
        • +

          pointer

          +
          protected long pointer
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          deletePointer

          +
          protected void deletePointer​(long pointer)
          +
        • +
        + + + +
          +
        • +

          toString

          +
          protected java.lang.String toString​(long pointer)
          +
          +
          Returns:
          +
          A string representation of this Statistics.
          +
          +
        • +
        + + + +
          +
        • +

          get

          +
          public Stat get​(java.lang.String name)
          +
          Retrieve the statistic with the given name. + Asserts that a statistic with the given name actually exists and throws + a CVC5ApiRecoverableException if it does not.
          +
          +
          Parameters:
          +
          name - Name of the statistic.
          +
          Returns:
          +
          The statistic with the given name.
          +
          +
        • +
        + + + + + + + +
          +
        • +

          iterator

          +
          public Statistics.ConstIterator iterator()
          +
          +
          Specified by:
          +
          iterator in interface java.lang.Iterable<java.util.Map.Entry<java.lang.String,​Stat>>
          +
          +
        • +
        + + + +
          +
        • +

          getPointer

          +
          public long getPointer()
          +
        • +
        + + + +
          +
        • +

          deletePointer

          +
          public void deletePointer()
          +
        • +
        + + + +
          +
        • +

          toString

          +
          public java.lang.String toString()
          +
          +
          Overrides:
          +
          toString in class java.lang.Object
          +
          +
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
    + +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/SymbolManager.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/SymbolManager.html new file mode 100644 index 0000000000..2e16ebf492 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/SymbolManager.html @@ -0,0 +1,570 @@ + + + + + +SymbolManager + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Class SymbolManager

    +
    +
    +
      +
    • java.lang.Object
    • +
    • +
        +
      • io.github.cvc5.SymbolManager
      • +
      +
    • +
    +
    +
      +
    • +
      +
      public class SymbolManager
      +extends java.lang.Object
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Field Summary

        + + + + + + + + + + + + +
        Fields 
        Modifier and TypeFieldDescription
        protected longpointer 
        +
      • +
      +
      + +
      + +
      + +
      +
        +
      • + + +

        Method Summary

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        All Methods Instance Methods Concrete Methods 
        Modifier and TypeMethodDescription
        voiddeletePointer() 
        protected voiddeletePointer​(long pointer) 
        booleanequals​(java.lang.Object s) 
        Sort[]getDeclaredSorts() +
        Get the list of sorts that have been declared via `declare-sort` commands.
        +
        Term[]getDeclaredTerms() +
        Get the list of terms that have been declared via `declare-fun` and + `declare-const`.
        +
        java.lang.StringgetLogic() 
        java.util.Map<Term,​java.lang.String>getNamedTerms() +
        Get a mapping from terms to names that have been given to them via the + :named attribute.
        +
        longgetPointer() 
        booleanisLogicSet() 
        java.lang.StringtoString() 
        protected java.lang.StringtoString​(long pointer) 
        +
          +
        • + + +

          Methods inherited from class java.lang.Object

          +clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Field Detail

        + + + +
          +
        • +

          pointer

          +
          protected long pointer
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          SymbolManager

          +
          public SymbolManager​(TermManager tm)
          +
          Create symbol manager instance.
          +
          +
          Parameters:
          +
          tm - The associated term manager.
          +
          +
        • +
        + + + +
          +
        • +

          SymbolManager

          +
          @Deprecated
          +public SymbolManager​(Solver solver)
          +
          Deprecated. +
          This function is deprecated and replaced by + Solver(TermManager). + It will be removed in a future release.
          +
          +
          Create symbol manager instance.
          +
          +
          Parameters:
          +
          solver - The associated solver.
          +
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          toString

          +
          protected java.lang.String toString​(long pointer)
          +
        • +
        + + + +
          +
        • +

          deletePointer

          +
          protected void deletePointer​(long pointer)
          +
        • +
        + + + +
          +
        • +

          equals

          +
          public boolean equals​(java.lang.Object s)
          +
          +
          Overrides:
          +
          equals in class java.lang.Object
          +
          +
        • +
        + + + +
          +
        • +

          isLogicSet

          +
          public boolean isLogicSet()
          +
          +
          Returns:
          +
          True if the logic of this symbol manager has been set.
          +
          +
        • +
        + + + +
          +
        • +

          getLogic

          +
          public java.lang.String getLogic()
          +
          +
          Returns:
          +
          The logic used by this symbol manager.
          +
          Note:
          +
          Asserts isLogicSet().
          +
          +
        • +
        + + + +
          +
        • +

          getDeclaredSorts

          +
          public Sort[] getDeclaredSorts()
          +
          Get the list of sorts that have been declared via `declare-sort` commands. + These are the sorts that are printed as part of a response to a + `get-model` command.
          +
          +
          Returns:
          +
          The declared sorts.
          +
          +
        • +
        + + + +
          +
        • +

          getDeclaredTerms

          +
          public Term[] getDeclaredTerms()
          +
          Get the list of terms that have been declared via `declare-fun` and + `declare-const`. These are the terms that are printed in response to a + `get-model` command.
          +
          +
          Returns:
          +
          The declared terms.
          +
          +
        • +
        + + + +
          +
        • +

          getNamedTerms

          +
          public java.util.Map<Term,​java.lang.String> getNamedTerms()
          +
          Get a mapping from terms to names that have been given to them via the + :named attribute.
          +
          +
          Returns:
          +
          A map of the named terms to their names.
          +
          +
        • +
        + + + +
          +
        • +

          getPointer

          +
          public long getPointer()
          +
        • +
        + + + +
          +
        • +

          deletePointer

          +
          public void deletePointer()
          +
        • +
        + + + +
          +
        • +

          toString

          +
          public java.lang.String toString()
          +
          +
          Overrides:
          +
          toString in class java.lang.Object
          +
          +
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
    + +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/SynthResult.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/SynthResult.html new file mode 100644 index 0000000000..92a31d0736 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/SynthResult.html @@ -0,0 +1,545 @@ + + + + + +SynthResult + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Class SynthResult

    +
    +
    +
      +
    • java.lang.Object
    • +
    • +
        +
      • io.github.cvc5.SynthResult
      • +
      +
    • +
    +
    +
      +
    • +
      +
      public class SynthResult
      +extends java.lang.Object
      +
      Encapsulation of a solver synth result. + + This is the return value of the API methods: + - Solver.checkSynth() + - Solver.checkSynthNext() + + which we call synthesis queries. This class indicates whether the + synthesis query has a solution, has no solution, or is unknown.
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Field Summary

        + + + + + + + + + + + + +
        Fields 
        Modifier and TypeFieldDescription
        protected longpointer 
        +
      • +
      +
      + +
      +
        +
      • + + +

        Constructor Summary

        + + + + + + + + + + +
        Constructors 
        ConstructorDescription
        SynthResult() +
        Null synthResult
        +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Summary

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        All Methods Instance Methods Concrete Methods 
        Modifier and TypeMethodDescription
        voiddeletePointer() 
        protected voiddeletePointer​(long pointer) 
        booleanequals​(java.lang.Object r) +
        Operator overloading for equality of two synthesis results.
        +
        longgetPointer() 
        inthashCode() +
        Get the hash value of a synthesis result.
        +
        booleanhasNoSolution() 
        booleanhasSolution() 
        booleanisNull() 
        booleanisUnknown() 
        java.lang.StringtoString() 
        protected java.lang.StringtoString​(long pointer) 
        +
          +
        • + + +

          Methods inherited from class java.lang.Object

          +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Field Detail

        + + + +
          +
        • +

          pointer

          +
          protected long pointer
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          SynthResult

          +
          public SynthResult()
          +
          Null synthResult
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          deletePointer

          +
          protected void deletePointer​(long pointer)
          +
        • +
        + + + +
          +
        • +

          equals

          +
          public boolean equals​(java.lang.Object r)
          +
          Operator overloading for equality of two synthesis results.
          +
          +
          Overrides:
          +
          equals in class java.lang.Object
          +
          Parameters:
          +
          r - The synthesis result to compare to for equality.
          +
          Returns:
          +
          True if the synthesis results are equal.
          +
          +
        • +
        + + + +
          +
        • +

          isNull

          +
          public boolean isNull()
          +
          +
          Returns:
          +
          True if SynthResult is empty, i.e., a nullary SynthResult, and not + an actual result returned from a synthesis query.
          +
          +
        • +
        + + + +
          +
        • +

          hasSolution

          +
          public boolean hasSolution()
          +
          +
          Returns:
          +
          True if the synthesis query has a solution.
          +
          +
        • +
        + + + +
          +
        • +

          hasNoSolution

          +
          public boolean hasNoSolution()
          +
          +
          Returns:
          +
          True if the synthesis query has no solution. In this case, it was + determined there was no solution.
          +
          +
        • +
        + + + +
          +
        • +

          isUnknown

          +
          public boolean isUnknown()
          +
          +
          Returns:
          +
          True if the result of the synthesis query could not be determined.
          +
          +
        • +
        + + + +
          +
        • +

          toString

          +
          protected java.lang.String toString​(long pointer)
          +
          +
          Returns:
          +
          A string representation of this result.
          +
          +
        • +
        + + + +
          +
        • +

          hashCode

          +
          public int hashCode()
          +
          Get the hash value of a synthesis result.
          +
          +
          Overrides:
          +
          hashCode in class java.lang.Object
          +
          Returns:
          +
          The hash value.
          +
          +
        • +
        + + + +
          +
        • +

          getPointer

          +
          public long getPointer()
          +
        • +
        + + + +
          +
        • +

          deletePointer

          +
          public void deletePointer()
          +
        • +
        + + + +
          +
        • +

          toString

          +
          public java.lang.String toString()
          +
          +
          Overrides:
          +
          toString in class java.lang.Object
          +
          +
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
    + +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Term.ConstIterator.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Term.ConstIterator.html new file mode 100644 index 0000000000..ec409212f0 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Term.ConstIterator.html @@ -0,0 +1,344 @@ + + + + + +Term.ConstIterator + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Class Term.ConstIterator

    +
    +
    +
      +
    • java.lang.Object
    • +
    • +
        +
      • io.github.cvc5.Term.ConstIterator
      • +
      +
    • +
    +
    +
      +
    • +
      +
      All Implemented Interfaces:
      +
      java.util.Iterator<Term>
      +
      +
      +
      Enclosing class:
      +
      Term
      +
      +
      +
      public class Term.ConstIterator
      +extends java.lang.Object
      +implements java.util.Iterator<Term>
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Constructor Summary

        + + + + + + + + + + +
        Constructors 
        ConstructorDescription
        ConstIterator() 
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Summary

        + + + + + + + + + + + + + + + + + +
        All Methods Instance Methods Concrete Methods 
        Modifier and TypeMethodDescription
        booleanhasNext() 
        Termnext() 
        +
          +
        • + + +

          Methods inherited from class java.lang.Object

          +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
        • +
        +
          +
        • + + +

          Methods inherited from interface java.util.Iterator

          +forEachRemaining, remove
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          ConstIterator

          +
          public ConstIterator()
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          hasNext

          +
          public boolean hasNext()
          +
          +
          Specified by:
          +
          hasNext in interface java.util.Iterator<Term>
          +
          +
        • +
        + + + +
          +
        • +

          next

          +
          public Term next()
          +
          +
          Specified by:
          +
          next in interface java.util.Iterator<Term>
          +
          +
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
    + +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Term.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Term.html new file mode 100644 index 0000000000..ba06778047 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Term.html @@ -0,0 +1,1843 @@ + + + + + +Term + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Class Term

    +
    +
    +
      +
    • java.lang.Object
    • +
    • +
        +
      • io.github.cvc5.Term
      • +
      +
    • +
    +
    +
      +
    • +
      +
      All Implemented Interfaces:
      +
      java.lang.Comparable<Term>, java.lang.Iterable<Term>
      +
      +
      +
      public class Term
      +extends java.lang.Object
      +implements java.lang.Comparable<Term>, java.lang.Iterable<Term>
      +
      A cvc5 Term.
      +
    • +
    +
    +
    + +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Field Detail

        + + + +
          +
        • +

          pointer

          +
          protected long pointer
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          Term

          +
          public Term()
          +
          Null term
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          deletePointer

          +
          protected void deletePointer​(long pointer)
          +
        • +
        + + + +
          +
        • +

          equals

          +
          public boolean equals​(java.lang.Object t)
          +
          Syntactic equality operator. + Return true if both terms are syntactically identical.
          +
          +
          Overrides:
          +
          equals in class java.lang.Object
          +
          Parameters:
          +
          t - The term to compare to for equality.
          +
          Returns:
          +
          True if the terms are equal.
          +
          +
        • +
        + + + +
          +
        • +

          compareTo

          +
          public int compareTo​(Term t)
          +
          Comparison for ordering on terms.
          +
          +
          Specified by:
          +
          compareTo in interface java.lang.Comparable<Term>
          +
          Parameters:
          +
          t - The term to compare to.
          +
          Returns:
          +
          A negative integer, zero, or a positive integer as this term. + is less than, equal to, or greater than the specified term.
          +
          +
        • +
        + + + +
          +
        • +

          getNumChildren

          +
          public int getNumChildren()
          +
          +
          Returns:
          +
          The number of children of this term.
          +
          +
        • +
        + + + +
          +
        • +

          getChild

          +
          public Term getChild​(int index)
          +              throws CVC5ApiException
          +
          Get the child term at a given index.
          +
          +
          Parameters:
          +
          index - The index of the child term to return.
          +
          Returns:
          +
          The child term with the given index.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          getId

          +
          public long getId()
          +
          +
          Returns:
          +
          The id of this term.
          +
          +
        • +
        + + + + + + + +
          +
        • +

          getSort

          +
          public Sort getSort()
          +
          +
          Returns:
          +
          The sort of this term.
          +
          +
        • +
        + + + +
          +
        • +

          substitute

          +
          public Term substitute​(Term term,
          +                       Term replacement)
          +
          Replace term with replacement in this term.
          +
          +
          Parameters:
          +
          term - The term to replace.
          +
          replacement - The term to replace it with.
          +
          Returns:
          +
          The result of replacing term with replacement in + this term.
          +
          Note:
          +
          This replacement is applied during a pre-order traversal and + only once (it is not run until fixed point).
          +
          +
        • +
        + + + +
          +
        • +

          substitute

          +
          public Term substitute​(Term[] terms,
          +                       Term[] replacements)
          +
          Simultaneously replace terms with replacements in this + term. + + In the case that terms contains duplicates, the replacement earliest in + the vector takes priority. For example, calling substitute on + f(x,y) with terms = { x, z }, + replacements = { g(z), w } results in the term + f(g(z),y).
          +
          +
          Parameters:
          +
          terms - The terms to replace.
          +
          replacements - The replacement terms.
          +
          Returns:
          +
          The result of simultaneously replacing terms with + replacements in this term.
          +
          Note:
          +
          This replacement is applied during a pre-order traversal and + only once (it is not run until fixed point).
          +
          +
        • +
        + + + +
          +
        • +

          hasOp

          +
          public boolean hasOp()
          +
          +
          Returns:
          +
          True iff this term has an operator.
          +
          +
        • +
        + + + +
          +
        • +

          getOp

          +
          public Op getOp()
          +
          +
          Returns:
          +
          The Op used to create this term.
          +
          Note:
          +
          This is safe to call when hasOp() returns true.
          +
          +
        • +
        + + + +
          +
        • +

          hasSymbol

          +
          public boolean hasSymbol()
          +
          +
          Returns:
          +
          True if the term has a symbol.
          +
          +
        • +
        + + + +
          +
        • +

          getSymbol

          +
          public java.lang.String getSymbol()
          +
          Asserts hasSymbol().
          +
          +
          Returns:
          +
          The raw symbol of the term.
          +
          +
        • +
        + + + +
          +
        • +

          isNull

          +
          public boolean isNull()
          +
          +
          Returns:
          +
          True if this Term is a null term.
          +
          +
        • +
        + + + +
          +
        • +

          notTerm

          +
          public Term notTerm()
          +
          Boolean negation.
          +
          +
          Returns:
          +
          The Boolean negation of this term.
          +
          +
        • +
        + + + +
          +
        • +

          andTerm

          +
          public Term andTerm​(Term t)
          +
          Boolean and.
          +
          +
          Parameters:
          +
          t - A Boolean term.
          +
          Returns:
          +
          The conjunction of this term and the given term.
          +
          +
        • +
        + + + +
          +
        • +

          orTerm

          +
          public Term orTerm​(Term t)
          +
          Boolean or.
          +
          +
          Parameters:
          +
          t - A Boolean term.
          +
          Returns:
          +
          The disjunction of this term and the given term.
          +
          +
        • +
        + + + +
          +
        • +

          xorTerm

          +
          public Term xorTerm​(Term t)
          +
          Boolean exclusive or.
          +
          +
          Parameters:
          +
          t - A Boolean term.
          +
          Returns:
          +
          The exclusive disjunction of this term and the given term.
          +
          +
        • +
        + + + +
          +
        • +

          eqTerm

          +
          public Term eqTerm​(Term t)
          +
          Equality.
          +
          +
          Parameters:
          +
          t - A Boolean term.
          +
          Returns:
          +
          The Boolean equivalence of this term and the given term.
          +
          +
        • +
        + + + +
          +
        • +

          impTerm

          +
          public Term impTerm​(Term t)
          +
          Boolean implication.
          +
          +
          Parameters:
          +
          t - A Boolean term.
          +
          Returns:
          +
          The implication of this term and the given term.
          +
          +
        • +
        + + + +
          +
        • +

          iteTerm

          +
          public Term iteTerm​(Term thenTerm,
          +                    Term elseTerm)
          +
          If-then-else with this term as the Boolean condition.
          +
          +
          Parameters:
          +
          thenTerm - The 'then' term.
          +
          elseTerm - The 'else' term.
          +
          Returns:
          +
          The if-then-else term with this term as the Boolean condition.
          +
          +
        • +
        + + + +
          +
        • +

          toString

          +
          protected java.lang.String toString​(long pointer)
          +
          +
          Returns:
          +
          A string representation of this term.
          +
          +
        • +
        + + + +
          +
        • +

          getRealOrIntegerValueSign

          +
          public int getRealOrIntegerValueSign()
          +
          Get integer or real value sign. Must be called on integer or real values, + or otherwise an exception is thrown.
          +
          +
          Returns:
          +
          0 if this term is zero, -1 if this term is a negative real or + integer value, 1 if this term is a positive real or integer value.
          +
          +
        • +
        + + + +
          +
        • +

          isIntegerValue

          +
          public boolean isIntegerValue()
          +
          +
          Returns:
          +
          True if the term is an integer value.
          +
          +
        • +
        + + + +
          +
        • +

          getIntegerValue

          +
          public java.math.BigInteger getIntegerValue()
          +
          Asserts isIntegerValue().
          +
          +
          Returns:
          +
          The integer represented by this term.
          +
          +
        • +
        + + + +
          +
        • +

          isStringValue

          +
          public boolean isStringValue()
          +
          +
          Returns:
          +
          True if the term is a string constant.
          +
          +
        • +
        + + + +
          +
        • +

          getStringValue

          +
          public java.lang.String getStringValue()
          +
          +
          Returns:
          +
          The stored string constant. + + Asserts isString().
          +
          Note:
          +
          This method is not to be confused with Object.toString()) + which returns the term in some string representation, whatever + data it may hold.
          +
          +
        • +
        + + + +
          +
        • +

          isRealValue

          +
          public boolean isRealValue()
          +
          +
          Returns:
          +
          True if the term is a rational value.
          +
          +
        • +
        + + + +
          +
        • +

          getRealValue

          +
          public Pair<java.math.BigInteger,​java.math.BigInteger> getRealValue()
          +
          Asserts isRealValue().
          +
          +
          Returns:
          +
          The representation of a rational value as a pair of its numerator. + and denominator.
          +
          +
        • +
        + + + +
          +
        • +

          isConstArray

          +
          public boolean isConstArray()
          +
          +
          Returns:
          +
          True if the term is a constant array.
          +
          +
        • +
        + + + +
          +
        • +

          getConstArrayBase

          +
          public Term getConstArrayBase()
          +
          Asserts isConstArray().
          +
          +
          Returns:
          +
          The base (element stored at all indices) of a constant array.
          +
          +
        • +
        + + + +
          +
        • +

          isBooleanValue

          +
          public boolean isBooleanValue()
          +
          +
          Returns:
          +
          True if the term is a Boolean value.
          +
          +
        • +
        + + + +
          +
        • +

          getBooleanValue

          +
          public boolean getBooleanValue()
          +
          Asserts isBooleanValue().
          +
          +
          Returns:
          +
          The representation of a Boolean value as a native Boolean value.
          +
          +
        • +
        + + + +
          +
        • +

          isBitVectorValue

          +
          public boolean isBitVectorValue()
          +
          +
          Returns:
          +
          True if the term is a bit-vector value.
          +
          +
        • +
        + + + +
          +
        • +

          getBitVectorValue

          +
          public java.lang.String getBitVectorValue()
          +                                   throws CVC5ApiException
          +
          Asserts isBitVectorValue().
          +
          +
          Returns:
          +
          The representation of a bit-vector value in bit string + representation.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          getBitVectorValue

          +
          public java.lang.String getBitVectorValue​(int base)
          +                                   throws CVC5ApiException
          +
          Get the string representation of a bit-vector value. + + Supported values for base are 2 (bit string), 10 + (decimal string) or 16 (hexadecimal string).
          +
          +
          Parameters:
          +
          base - 2 for binary, 10 for decimal, and 16 + for hexadecimal.
          +
          Returns:
          +
          The string representation of a bit-vector value.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          Note:
          +
          Asserts Term#isBitVectorValue().
          +
          +
        • +
        + + + +
          +
        • +

          isFiniteFieldValue

          +
          public boolean isFiniteFieldValue()
          +
          +
          Returns:
          +
          True if the term is a finite field value.
          +
          +
        • +
        + + + +
          +
        • +

          getFiniteFieldValue

          +
          public java.lang.String getFiniteFieldValue()
          +                                     throws CVC5ApiException
          +
          Get the string representation of a finite field value.
          +
          +
          Returns:
          +
          The string representation of a finite field value.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          Note:
          +
          Asserts Term#isFiniteFieldValue().
          +
          +
        • +
        + + + +
          +
        • +

          isUninterpretedSortValue

          +
          public boolean isUninterpretedSortValue()
          +
          +
          Returns:
          +
          True if the term is an uninterpreted sort value.
          +
          +
        • +
        + + + +
          +
        • +

          getUninterpretedSortValue

          +
          public java.lang.String getUninterpretedSortValue()
          +
          Asserts isUninterpretedSortValue().
          +
          +
          Returns:
          +
          The representation of an uninterpreted sort value as a string.
          +
          +
        • +
        + + + +
          +
        • +

          isRoundingModeValue

          +
          public boolean isRoundingModeValue()
          +
          +
          Returns:
          +
          True if the term is a floating-point rounding mode value.
          +
          +
        • +
        + + + +
          +
        • +

          getRoundingModeValue

          +
          public RoundingMode getRoundingModeValue()
          +                                  throws CVC5ApiException
          +
          Asserts isRoundingModeValue().
          +
          +
          Returns:
          +
          The floating-point rounding mode value held by the term.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          isTupleValue

          +
          public boolean isTupleValue()
          +
          +
          Returns:
          +
          True if the term is a tuple value.
          +
          +
        • +
        + + + +
          +
        • +

          getTupleValue

          +
          public Term[] getTupleValue()
          +
          Asserts isTupleValue().
          +
          +
          Returns:
          +
          The representation of a tuple value as a vector of terms.
          +
          +
        • +
        + + + +
          +
        • +

          isFloatingPointPosZero

          +
          public boolean isFloatingPointPosZero()
          +
          +
          Returns:
          +
          True if the term is the floating-point value for positive zero.
          +
          +
        • +
        + + + +
          +
        • +

          isFloatingPointNegZero

          +
          public boolean isFloatingPointNegZero()
          +
          +
          Returns:
          +
          True if the term is the floating-point value for negative zero.
          +
          +
        • +
        + + + +
          +
        • +

          isFloatingPointPosInf

          +
          public boolean isFloatingPointPosInf()
          +
          +
          Returns:
          +
          True if the term is the floating-point value for positive. + infinity.
          +
          +
        • +
        + + + +
          +
        • +

          isFloatingPointNegInf

          +
          public boolean isFloatingPointNegInf()
          +
          +
          Returns:
          +
          True if the term is the floating-point value for negative. + infinity.
          +
          +
        • +
        + + + +
          +
        • +

          isFloatingPointNaN

          +
          public boolean isFloatingPointNaN()
          +
          +
          Returns:
          +
          True if the term is the floating-point value for not a number.
          +
          +
        • +
        + + + +
          +
        • +

          isFloatingPointValue

          +
          public boolean isFloatingPointValue()
          +
          +
          Returns:
          +
          True if the term is a floating-point value.
          +
          +
        • +
        + + + +
          +
        • +

          getFloatingPointValue

          +
          public Triplet<java.lang.Long,​java.lang.Long,​Term> getFloatingPointValue()
          +
          Asserts isFloatingPointValue().
          +
          +
          Returns:
          +
          The representation of a floating-point value as a tuple of the. + exponent width, the significand width and a bit-vector value.
          +
          +
        • +
        + + + +
          +
        • +

          isSetValue

          +
          public boolean isSetValue()
          +
          +
          Returns:
          +
          True if the term is a set value.
          +
          +
        • +
        + + + +
          +
        • +

          getSetValue

          +
          public java.util.Set<Term> getSetValue()
          +
          Asserts isSetValue().
          +
          +
          Returns:
          +
          The representation of a set value as a set of terms.
          +
          +
        • +
        + + + +
          +
        • +

          isSequenceValue

          +
          public boolean isSequenceValue()
          +
          +
          Returns:
          +
          True if the term is a sequence value.
          +
          +
        • +
        + + + +
          +
        • +

          getSequenceValue

          +
          public Term[] getSequenceValue()
          +
          Asserts isSequenceValue().
          +
          +
          Returns:
          +
          The representation of a sequence value as a vector of terms.
          +
          Note:
          +
          It is usually necessary for sequences to call + Solver.simplify(Term) to turn a sequence that is + constructed by, e.g., concatenation of unit sequences, into a + sequence value.
          +
          +
        • +
        + + + +
          +
        • +

          isCardinalityConstraint

          +
          public boolean isCardinalityConstraint()
          +
          +
          Returns:
          +
          True if the term is a cardinality constraint.
          +
          +
        • +
        + + + +
          +
        • +

          getCardinalityConstraint

          +
          public Pair<Sort,​java.math.BigInteger> getCardinalityConstraint()
          +
          Asserts isCardinalityConstraint().
          +
          +
          Returns:
          +
          The sort the cardinality constraint is for and its upper bound.
          +
          +
        • +
        + + + +
          +
        • +

          isRealAlgebraicNumber

          +
          public boolean isRealAlgebraicNumber()
          +
          +
          Returns:
          +
          True if the term is a real algebraic number.
          +
          +
        • +
        + + + +
          +
        • +

          getRealAlgebraicNumberDefiningPolynomial

          +
          public Term getRealAlgebraicNumberDefiningPolynomial​(Term v)
          +
          Asserts isRealAlgebraicNumber().
          +
          +
          Parameters:
          +
          v - The variable over which to express the polynomial.
          +
          Returns:
          +
          The defining polynomial for the real algebraic number, expressed in terms of the given + variable.
          +
          +
        • +
        + + + +
          +
        • +

          getRealAlgebraicNumberLowerBound

          +
          public Term getRealAlgebraicNumberLowerBound()
          +
          Asserts isRealAlgebraicNumber().
          +
          +
          Returns:
          +
          The lower bound for the value of the real algebraic number.
          +
          +
        • +
        + + + +
          +
        • +

          getRealAlgebraicNumberUpperBound

          +
          public Term getRealAlgebraicNumberUpperBound()
          +
          Asserts isRealAlgebraicNumber().
          +
          +
          Returns:
          +
          The upper bound for the value of the real algebraic number.
          +
          +
        • +
        + + + +
          +
        • +

          isSkolem

          +
          public boolean isSkolem()
          +
          +
          Returns:
          +
          True if this term is a skolem function.
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          getSkolemId

          +
          public SkolemId getSkolemId()
          +                     throws CVC5ApiException
          +
          Get skolem identifier of this term.
          +
          +
          Returns:
          +
          The skolem identifier of this term.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          Note:
          +
          Asserts isSkolem()., This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          getSkolemIndices

          +
          public Term[] getSkolemIndices()
          +                        throws CVC5ApiException
          +
          Get the skolem indices of this term.
          +
          +
          Returns:
          +
          The skolem indices of this term. This a list of terms that the + skolem function is indexed by. For example, the array diff skolem + SkolemId.ARRAY_DEQ_DIFF is indexed by two arrays.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          Note:
          +
          Asserts isSkolem()., This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          iterator

          +
          public java.util.Iterator<Term> iterator()
          +
          +
          Specified by:
          +
          iterator in interface java.lang.Iterable<Term>
          +
          +
        • +
        + + + +
          +
        • +

          hashCode

          +
          public int hashCode()
          +
          Get the hash value of a term.
          +
          +
          Overrides:
          +
          hashCode in class java.lang.Object
          +
          Returns:
          +
          The hash value.
          +
          +
        • +
        + + + +
          +
        • +

          getPointer

          +
          public long getPointer()
          +
        • +
        + + + +
          +
        • +

          deletePointer

          +
          public void deletePointer()
          +
        • +
        + + + +
          +
        • +

          toString

          +
          public java.lang.String toString()
          +
          +
          Overrides:
          +
          toString in class java.lang.Object
          +
          +
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
    + +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/TermManager.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/TermManager.html new file mode 100644 index 0000000000..bbad080c79 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/TermManager.html @@ -0,0 +1,3113 @@ + + + + + +TermManager + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Class TermManager

    +
    +
    +
      +
    • java.lang.Object
    • +
    • +
        +
      • io.github.cvc5.TermManager
      • +
      +
    • +
    +
    +
      +
    • +
      +
      public class TermManager
      +extends java.lang.Object
      +
      A cvc5 term manager.
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Field Summary

        + + + + + + + + + + + + +
        Fields 
        Modifier and TypeFieldDescription
        protected longpointer 
        +
      • +
      +
      + +
      +
        +
      • + + +

        Constructor Summary

        + + + + + + + + + + +
        Constructors 
        ConstructorDescription
        TermManager() +
        Create a term manager instance.
        +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Summary

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        All Methods Instance Methods Concrete Methods 
        Modifier and TypeMethodDescription
        voiddeletePointer() 
        protected voiddeletePointer​(long pointer) 
        booleanequals​(java.lang.Object o) 
        SortgetBooleanSort() +
        Get the Boolean sort.
        +
        SortgetIntegerSort() +
        Get the integer sort.
        +
        longgetIntegerSort​(long pointer) 
        intgetNumIndicesForSkolemId​(SkolemId id) +
        Get the number of indices for a given skolem id.
        +
        longgetPointer() 
        SortgetRealSort() +
        Get the real sort.
        +
        SortgetRegExpSort() +
        Get the regular expression sort.
        +
        SortgetRoundingModeSort() +
        Get the floating-point rounding mode sort.
        +
        StatisticsgetStatistics() +
        Get a snapshot of the current state of the statistic values of this + term manager.
        +
        SortgetStringSort() +
        Get the string sort.
        +
        SortmkAbstractSort​(SortKind kind) +
        Create an abstract sort.
        +
        SortmkArraySort​(Sort indexSort, + Sort elemSort) +
        Create an array sort.
        +
        SortmkBagSort​(Sort elemSort) +
        Create a bag sort.
        +
        TermmkBitVector​(int size) +
        Create a bit-vector constant of given size and value = 0.
        +
        TermmkBitVector​(int size, + long val) +
        Create a bit-vector constant of given size and value.
        +
        TermmkBitVector​(int size, + java.lang.String s, + int base) +
        Create a bit-vector constant of a given bit-width from a given string of + base 2, 10 or 16.
        +
        SortmkBitVectorSort​(int size) +
        Create a bit-vector sort.
        +
        TermmkBoolean​(boolean val) +
        Create a Boolean constant.
        +
        TermmkCardinalityConstraint​(Sort sort, + int upperBound) +
        Create a cardinality constraint for an uninterpreted sort.
        +
        TermmkConst​(Sort sort) +
        Create a free constant with a default symbol name.
        +
        TermmkConst​(Sort sort, + java.lang.String symbol) +
        Create a free constant.
        +
        TermmkConstArray​(Sort sort, + Term val) +
        Create a constant array with the provided constant value stored at + every index
        +
        DatatypeConstructorDeclmkDatatypeConstructorDecl​(java.lang.String name) +
        Create a datatype constructor declaration.
        +
        DatatypeDeclmkDatatypeDecl​(java.lang.String name) +
        Create a datatype declaration.
        +
        DatatypeDeclmkDatatypeDecl​(java.lang.String name, + boolean isCoDatatype) +
        Create a datatype declaration.
        +
        DatatypeDeclmkDatatypeDecl​(java.lang.String name, + Sort[] params) +
        Create a datatype declaration.
        +
        DatatypeDeclmkDatatypeDecl​(java.lang.String name, + Sort[] params, + boolean isCoDatatype) +
        Create a datatype declaration.
        +
        SortmkDatatypeSort​(DatatypeDecl dtypedecl) +
        Create a datatype sort.
        +
        Sort[]mkDatatypeSorts​(DatatypeDecl[] dtypedecls) +
        Create a vector of datatype sorts.
        +
        TermmkEmptyBag​(Sort sort) +
        Create a constant representing an empty bag of the given sort.
        +
        TermmkEmptySequence​(Sort sort) +
        Create an empty sequence of the given element sort.
        +
        TermmkEmptySet​(Sort sort) +
        Create a constant representing an empty set of the given sort.
        +
        TermmkFalse() +
        Create a Boolean false constant.
        +
        TermmkFiniteFieldElem​(java.lang.String val, + Sort sort, + int base) +
        Create a finite field constant in a given field and for a given value.
        +
        SortmkFiniteFieldSort​(java.lang.String size, + int base) +
        Create a finite field sort.
        +
        TermmkFloatingPoint​(int exp, + int sig, + Term val) +
        Create a floating-point value from a bit-vector given in IEEE-754 + format.
        +
        TermmkFloatingPoint​(Term sign, + Term exp, + Term sig) +
        Create a floating-point value from its three IEEE-754 bit-vector value + components (sign bit, exponent, significand).
        +
        TermmkFloatingPointNaN​(int exp, + int sig) +
        Create a not-a-number floating-point constant (SMT-LIB: NaN).
        +
        TermmkFloatingPointNegInf​(int exp, + int sig) +
        Create a negative infinity floating-point constant (SMT-LIB: -oo).
        +
        TermmkFloatingPointNegZero​(int exp, + int sig) +
        Create a negative zero floating-point constant (SMT-LIB: -zero).
        +
        TermmkFloatingPointPosInf​(int exp, + int sig) +
        Create a positive infinity floating-point constant (SMT-LIB: +oo).
        +
        TermmkFloatingPointPosZero​(int exp, + int sig) +
        Create a positive zero floating-point constant (SMT-LIB: +zero).
        +
        SortmkFloatingPointSort​(int exp, + int sig) +
        Create a floating-point sort.
        +
        SortmkFunctionSort​(Sort[] sorts, + Sort codomain) +
        Create function sort.
        +
        SortmkFunctionSort​(Sort domain, + Sort codomain) +
        Create function sort.
        +
        TermmkInteger​(long val) +
        Create an integer constant from a C++ int.
        +
        TermmkInteger​(java.lang.String s) +
        Create an integer constant from a string.
        +
        TermmkNullableIsNull​(Term term) +
        Create a null tester for a nullable term.
        +
        TermmkNullableIsSome​(Term term) +
        Create a some tester for a nullable term.
        +
        TermmkNullableLift​(Kind kind, + Term[] args) +
        Create a term that lifts kind to nullable terms.
        +
        TermmkNullableNull​(Sort sort) +
        Create a constant representing a null value of the given sort.
        +
        TermmkNullableSome​(Term term) +
        Create a nullable some term.
        +
        SortmkNullableSort​(Sort sort) +
        Create a nullable sort.
        +
        TermmkNullableVal​(Term term) +
        Create a selector for nullable term.
        +
        OpmkOp​(Kind kind) +
        Create an operator for a builtin Kind + The Kind may not be the Kind for an indexed operator + (e.g., Kind.BITVECTOR_EXTRACT).
        +
        OpmkOp​(Kind kind, + int arg) +
        Create operator of kind: + + DIVISIBLE + BITVECTOR_REPEAT + BITVECTOR_ZERO_EXTEND + BITVECTOR_SIGN_EXTEND + BITVECTOR_ROTATE_LEFT + BITVECTOR_ROTATE_RIGHT + INT_TO_BITVECTOR + FLOATINGPOINT_TO_UBV + FLOATINGPOINT_TO_UBV_TOTAL + FLOATINGPOINT_TO_SBV + FLOATINGPOINT_TO_SBV_TOTAL + TUPLE_UPDATE + + See enum Kind for a description of the parameters.
        +
        OpmkOp​(Kind kind, + int[] args) +
        Create operator of Kind: + + TUPLE_PROJECT + + See enum Kind for a description of the parameters.
        +
        OpmkOp​(Kind kind, + int arg1, + int arg2) +
        Create operator of Kind: + + BITVECTOR_EXTRACT + FLOATINGPOINT_TO_FP_FROM_IEEE_BV + FLOATINGPOINT_TO_FP_FROM_FP + FLOATINGPOINT_TO_FP_FROM_REAL + FLOATINGPOINT_TO_FP_FROM_SBV + FLOATINGPOINT_TO_FP_FROM_UBV + + See enum Kind for a description of the parameters.
        +
        OpmkOp​(Kind kind, + java.lang.String arg) +
        Create operator of kind: + + + Kind.DIVISIBLE (to support arbitrary precision integers) + + + See enum Kind for a description of the parameters.
        +
        SortmkParamSort() +
        Create a sort parameter.
        +
        SortmkParamSort​(java.lang.String symbol) +
        Create a sort parameter.
        +
        TermmkPi() +
        Create a constant representing the number Pi.
        +
        SortmkPredicateSort​(Sort[] sorts) +
        Create a predicate sort.
        +
        TermmkReal​(long val) +
        Create a real constant from an integer.
        +
        TermmkReal​(long num, + long den) +
        Create a real constant from a rational.
        +
        TermmkReal​(java.lang.String s) +
        Create a real constant from a string.
        +
        SortmkRecordSort​(Pair<java.lang.String,​Sort>[] fields) +
        Create a record sort
        +
        TermmkRegexpAll() +
        Create a regular expression all (re.all) term.
        +
        TermmkRegexpAllchar() +
        Create a regular expression allchar (re.allchar) term.
        +
        TermmkRegexpNone() +
        Create a regular expression none (re.none) term.
        +
        TermmkRoundingMode​(RoundingMode rm) +
        Create a rounding mode constant.
        +
        TermmkSepEmp() +
        Create a separation logic empty term.
        +
        TermmkSepNil​(Sort sort) +
        Create a separation logic nil term.
        +
        SortmkSequenceSort​(Sort elemSort) +
        Create a sequence sort.
        +
        SortmkSetSort​(Sort elemSort) +
        Create a set sort.
        +
        TermmkSkolem​(SkolemId skolemId, + Term[] indices) +
        Create a skolem
        +
        TermmkString​(int[] s) +
        Create a String constant.
        +
        TermmkString​(java.lang.String s) +
        Create a String constant.
        +
        TermmkString​(java.lang.String s, + boolean useEscSequences) +
        Create a String constant.
        +
        TermmkTerm​(Kind kind) +
        Create 0-ary term of given kind.
        +
        TermmkTerm​(Kind kind, + Term child) +
        Create a unary term of given kind.
        +
        TermmkTerm​(Kind kind, + Term[] children) +
        Create n-ary term of given kind.
        +
        TermmkTerm​(Kind kind, + Term child1, + Term child2) +
        Create binary term of given kind.
        +
        TermmkTerm​(Kind kind, + Term child1, + Term child2, + Term child3) +
        Create ternary term of given kind.
        +
        TermmkTerm​(Op op) +
        Create nullary term of given kind from a given operator.
        +
        TermmkTerm​(Op op, + Term child) +
        Create unary term of given kind from a given operator.
        +
        TermmkTerm​(Op op, + Term[] children) +
        Create n-ary term of given kind from a given operator.
        +
        TermmkTerm​(Op op, + Term child1, + Term child2) +
        Create binary term of given kind from a given operator.
        +
        TermmkTerm​(Op op, + Term child1, + Term child2, + Term child3) +
        Create ternary term of given kind from a given operator.
        +
        TermmkTrue() +
        Create a Boolean true constant.
        +
        TermmkTuple​(Term[] terms) +
        Create a tuple term.
        +
        SortmkTupleSort​(Sort[] sorts) +
        Create a tuple sort.
        +
        SortmkUninterpretedSort() +
        Create an uninterpreted sort.
        +
        SortmkUninterpretedSort​(java.lang.String symbol) +
        Create an uninterpreted sort.
        +
        SortmkUninterpretedSortConstructorSort​(int arity) +
        Create a sort constructor sort.
        +
        SortmkUninterpretedSortConstructorSort​(int arity, + java.lang.String symbol) +
        Create a sort constructor sort.
        +
        TermmkUniverseSet​(Sort sort) +
        Create a universe set of the given sort.
        +
        SortmkUnresolvedDatatypeSort​(java.lang.String symbol) +
        Create an unresolved datatype sort.
        +
        SortmkUnresolvedDatatypeSort​(java.lang.String symbol, + int arity) +
        Create an unresolved datatype sort.
        +
        TermmkVar​(Sort sort) +
        Create a bound variable to be used in a binder (i.e., a quantifier, a + lambda, or a witness binder).
        +
        TermmkVar​(Sort sort, + java.lang.String symbol) +
        Create a bound variable to be used in a binder (i.e., a quantifier, a + lambda, or a witness binder).
        +
        java.lang.StringtoString() 
        protected java.lang.StringtoString​(long pointer) 
        +
          +
        • + + +

          Methods inherited from class java.lang.Object

          +clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Field Detail

        + + + +
          +
        • +

          pointer

          +
          protected long pointer
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          TermManager

          +
          public TermManager()
          +
          Create a term manager instance.
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          deletePointer

          +
          protected void deletePointer​(long pointer)
          +
        • +
        + + + +
          +
        • +

          toString

          +
          protected java.lang.String toString​(long pointer)
          +
        • +
        + + + +
          +
        • +

          equals

          +
          public boolean equals​(java.lang.Object o)
          +
          +
          Overrides:
          +
          equals in class java.lang.Object
          +
          +
        • +
        + + + +
          +
        • +

          getStatistics

          +
          public Statistics getStatistics()
          +
          Get a snapshot of the current state of the statistic values of this + term manager. + + Term manager statistics are independent from any solver instance. The + returned object is completely decoupled from the term manager and will + not change when the solver is used again.
          +
          +
          Returns:
          +
          A snapshot of the current state of the statistic values.
          +
          +
        • +
        + + + +
          +
        • +

          getBooleanSort

          +
          public Sort getBooleanSort()
          +
          Get the Boolean sort.
          +
          +
          Returns:
          +
          Sort Boolean.
          +
          +
        • +
        + + + +
          +
        • +

          getIntegerSort

          +
          public Sort getIntegerSort()
          +
          Get the integer sort.
          +
          +
          Returns:
          +
          Sort Integer.
          +
          +
        • +
        + + + +
          +
        • +

          getIntegerSort

          +
          public long getIntegerSort​(long pointer)
          +
        • +
        + + + +
          +
        • +

          getRealSort

          +
          public Sort getRealSort()
          +
          Get the real sort.
          +
          +
          Returns:
          +
          Sort Real.
          +
          +
        • +
        + + + +
          +
        • +

          getRegExpSort

          +
          public Sort getRegExpSort()
          +
          Get the regular expression sort.
          +
          +
          Returns:
          +
          Sort RegExp.
          +
          +
        • +
        + + + +
          +
        • +

          getRoundingModeSort

          +
          public Sort getRoundingModeSort()
          +                         throws CVC5ApiException
          +
          Get the floating-point rounding mode sort.
          +
          +
          Returns:
          +
          Sort RoundingMode.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          getStringSort

          +
          public Sort getStringSort()
          +
          Get the string sort.
          +
          +
          Returns:
          +
          Sort String.
          +
          +
        • +
        + + + +
          +
        • +

          mkArraySort

          +
          public Sort mkArraySort​(Sort indexSort,
          +                        Sort elemSort)
          +
          Create an array sort.
          +
          +
          Parameters:
          +
          indexSort - The array index sort.
          +
          elemSort - The array element sort.
          +
          Returns:
          +
          The array sort.
          +
          +
        • +
        + + + +
          +
        • +

          mkBitVectorSort

          +
          public Sort mkBitVectorSort​(int size)
          +                     throws CVC5ApiException
          +
          Create a bit-vector sort.
          +
          +
          Parameters:
          +
          size - The bit-width of the bit-vector sort.
          +
          Returns:
          +
          The bit-vector sort.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          mkFiniteFieldSort

          +
          public Sort mkFiniteFieldSort​(java.lang.String size,
          +                              int base)
          +                       throws CVC5ApiException
          +
          Create a finite field sort.
          +
          +
          Parameters:
          +
          size - The size of the finite field sort.
          +
          base - The base of the string representation.
          +
          Returns:
          +
          The finite field sort.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          mkFloatingPointSort

          +
          public Sort mkFloatingPointSort​(int exp,
          +                                int sig)
          +                         throws CVC5ApiException
          +
          Create a floating-point sort.
          +
          +
          Parameters:
          +
          exp - The bit-width of the exponent of the floating-point sort.
          +
          sig - The bit-width of the significand of the floating-point sort.
          +
          Returns:
          +
          The floating-point sort.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          mkDatatypeSort

          +
          public Sort mkDatatypeSort​(DatatypeDecl dtypedecl)
          +                    throws CVC5ApiException
          +
          Create a datatype sort.
          +
          +
          Parameters:
          +
          dtypedecl - The datatype declaration from which the sort is created.
          +
          Returns:
          +
          The datatype sort.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          mkDatatypeSorts

          +
          public Sort[] mkDatatypeSorts​(DatatypeDecl[] dtypedecls)
          +                       throws CVC5ApiException
          +
          Create a vector of datatype sorts. + + The names of the datatype declarations must be distinct.
          +
          +
          Parameters:
          +
          dtypedecls - The datatype declarations from which the sort is created.
          +
          Returns:
          +
          The datatype sorts.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          mkFunctionSort

          +
          public Sort mkFunctionSort​(Sort domain,
          +                           Sort codomain)
          +
          Create function sort.
          +
          +
          Parameters:
          +
          domain - The sort of the fuction argument.
          +
          codomain - The sort of the function return value.
          +
          Returns:
          +
          The function sort.
          +
          +
        • +
        + + + +
          +
        • +

          mkFunctionSort

          +
          public Sort mkFunctionSort​(Sort[] sorts,
          +                           Sort codomain)
          +
          Create function sort.
          +
          +
          Parameters:
          +
          sorts - The sort of the function arguments.
          +
          codomain - The sort of the function return value.
          +
          Returns:
          +
          The function sort.
          +
          +
        • +
        + + + +
          +
        • +

          mkParamSort

          +
          public Sort mkParamSort​(java.lang.String symbol)
          +
          Create a sort parameter.
          +
          +
          Parameters:
          +
          symbol - The name of the sort.
          +
          Returns:
          +
          The sort parameter.
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          mkParamSort

          +
          public Sort mkParamSort()
          +
          Create a sort parameter.
          +
          +
          Returns:
          +
          The sort parameter.
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          mkSkolem

          +
          public Term mkSkolem​(SkolemId skolemId,
          +                     Term[] indices)
          +
          Create a skolem
          +
          +
          Parameters:
          +
          skolemId - The id of the skolem.
          +
          indices - The indices of the skolem.
          +
          Returns:
          +
          The skolem.
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          getNumIndicesForSkolemId

          +
          public int getNumIndicesForSkolemId​(SkolemId id)
          +
          Get the number of indices for a given skolem id.
          +
          +
          Parameters:
          +
          id - The skolem id.
          +
          Returns:
          +
          The number of indices for the given skolem id.
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          mkPredicateSort

          +
          public Sort mkPredicateSort​(Sort[] sorts)
          +
          Create a predicate sort.
          +
          +
          Parameters:
          +
          sorts - The list of sorts of the predicate.
          +
          Returns:
          +
          The predicate sort.
          +
          +
        • +
        + + + +
          +
        • +

          mkRecordSort

          +
          public Sort mkRecordSort​(Pair<java.lang.String,​Sort>[] fields)
          +
          Create a record sort
          +
          +
          Parameters:
          +
          fields - The list of fields of the record.
          +
          Returns:
          +
          The record sort.
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          mkSetSort

          +
          public Sort mkSetSort​(Sort elemSort)
          +
          Create a set sort.
          +
          +
          Parameters:
          +
          elemSort - The sort of the set elements.
          +
          Returns:
          +
          The set sort.
          +
          +
        • +
        + + + +
          +
        • +

          mkBagSort

          +
          public Sort mkBagSort​(Sort elemSort)
          +
          Create a bag sort.
          +
          +
          Parameters:
          +
          elemSort - The sort of the bag elements.
          +
          Returns:
          +
          The bag sort.
          +
          +
        • +
        + + + +
          +
        • +

          mkSequenceSort

          +
          public Sort mkSequenceSort​(Sort elemSort)
          +
          Create a sequence sort.
          +
          +
          Parameters:
          +
          elemSort - The sort of the sequence elements.
          +
          Returns:
          +
          The sequence sort.
          +
          +
        • +
        + + + +
          +
        • +

          mkAbstractSort

          +
          public Sort mkAbstractSort​(SortKind kind)
          +
          Create an abstract sort. An abstract sort represents a sort for a given + kind whose parameters and arguments are unspecified. + + The SortKind k must be the kind of a sort that can be abstracted, + i.e., a sort that has indices or argument sorts. For example, + SortKind.ARRAY_SORT and SortKind.BITVECTOR_SORT can be + passed as the SortKind k to this method, while + SortKind.INTEGER_SORT and SortKind.STRING_SORT cannot.
          +
          +
          Parameters:
          +
          kind - The kind of the abstract sort
          +
          Returns:
          +
          The abstract sort.
          +
          Note:
          +
          Providing the kind SortKind.ABSTRACT_SORT as an + argument to this method returns the (fully) unspecified sort, + often denoted ?., Providing a kind k that has no indices and a fixed arity + of argument sorts will return the sort of SortKind k + whose arguments are the unspecified sort. For example, + mkAbstractSort(ARRAY_SORT) will return the sort + (ARRAY_SORT ? ?) instead of the abstract sort whose + abstract kind is SortKind.ABSTRACT_SORT., This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          mkUninterpretedSort

          +
          public Sort mkUninterpretedSort​(java.lang.String symbol)
          +
          Create an uninterpreted sort.
          +
          +
          Parameters:
          +
          symbol - The name of the sort.
          +
          Returns:
          +
          The uninterpreted sort.
          +
          +
        • +
        + + + +
          +
        • +

          mkUninterpretedSort

          +
          public Sort mkUninterpretedSort()
          +
          Create an uninterpreted sort.
          +
          +
          Returns:
          +
          The uninterpreted sort.
          +
          +
        • +
        + + + +
          +
        • +

          mkUnresolvedDatatypeSort

          +
          public Sort mkUnresolvedDatatypeSort​(java.lang.String symbol,
          +                                     int arity)
          +                              throws CVC5ApiException
          +
          Create an unresolved datatype sort. + + This is for creating yet unresolved sort placeholders for mutually + recursive parametric datatypes.
          +
          +
          Parameters:
          +
          symbol - The symbol of the sort.
          +
          arity - The number of sort parameters of the sort.
          +
          Returns:
          +
          The unresolved sort.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          mkUnresolvedDatatypeSort

          +
          public Sort mkUnresolvedDatatypeSort​(java.lang.String symbol)
          +                              throws CVC5ApiException
          +
          Create an unresolved datatype sort. + + This is for creating yet unresolved sort placeholders for mutually + recursive datatypes without sort parameters.
          +
          +
          Parameters:
          +
          symbol - The symbol of the sort.
          +
          Returns:
          +
          The unresolved sort.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          mkUninterpretedSortConstructorSort

          +
          public Sort mkUninterpretedSortConstructorSort​(int arity,
          +                                               java.lang.String symbol)
          +                                        throws CVC5ApiException
          +
          Create a sort constructor sort. + + An uninterpreted sort constructor is an uninterpreted sort with + arity > 0.
          +
          +
          Parameters:
          +
          arity - The arity of the sort (must be > 0)
          +
          symbol - The symbol of the sort.
          +
          Returns:
          +
          The sort constructor sort.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          mkUninterpretedSortConstructorSort

          +
          public Sort mkUninterpretedSortConstructorSort​(int arity)
          +                                        throws CVC5ApiException
          +
          Create a sort constructor sort. + + An uninterpreted sort constructor is an uninterpreted sort with + arity > 0.
          +
          +
          Parameters:
          +
          arity - The arity of the sort (must be > 0)
          +
          Returns:
          +
          The sort constructor sort.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          mkTupleSort

          +
          public Sort mkTupleSort​(Sort[] sorts)
          +
          Create a tuple sort.
          +
          +
          Parameters:
          +
          sorts - Of the elements of the tuple.
          +
          Returns:
          +
          The tuple sort.
          +
          +
        • +
        + + + +
          +
        • +

          mkNullableSort

          +
          public Sort mkNullableSort​(Sort sort)
          +
          Create a nullable sort.
          +
          +
          Parameters:
          +
          sort - The sort of the element of the nullable.
          +
          Returns:
          +
          The nullable sort.
          +
          +
        • +
        + + + +
          +
        • +

          mkTerm

          +
          public Term mkTerm​(Kind kind)
          +
          Create 0-ary term of given kind.
          +
          +
          Parameters:
          +
          kind - The kind of the term.
          +
          Returns:
          +
          The Term.
          +
          +
        • +
        + + + +
          +
        • +

          mkTerm

          +
          public Term mkTerm​(Kind kind,
          +                   Term child)
          +
          Create a unary term of given kind.
          +
          +
          Parameters:
          +
          kind - The kind of the term.
          +
          child - The child of the term.
          +
          Returns:
          +
          The Term.
          +
          +
        • +
        + + + +
          +
        • +

          mkTerm

          +
          public Term mkTerm​(Kind kind,
          +                   Term child1,
          +                   Term child2)
          +
          Create binary term of given kind.
          +
          +
          Parameters:
          +
          kind - The kind of the term.
          +
          child1 - The first child of the term.
          +
          child2 - The second child of the term.
          +
          Returns:
          +
          The Term.
          +
          +
        • +
        + + + +
          +
        • +

          mkTerm

          +
          public Term mkTerm​(Kind kind,
          +                   Term child1,
          +                   Term child2,
          +                   Term child3)
          +
          Create ternary term of given kind.
          +
          +
          Parameters:
          +
          kind - The kind of the term.
          +
          child1 - The first child of the term.
          +
          child2 - The second child of the term.
          +
          child3 - The third child of the term.
          +
          Returns:
          +
          The Term.
          +
          +
        • +
        + + + +
          +
        • +

          mkTerm

          +
          public Term mkTerm​(Kind kind,
          +                   Term[] children)
          +
          Create n-ary term of given kind.
          +
          +
          Parameters:
          +
          kind - The kind of the term.
          +
          children - The children of the term.
          +
          Returns:
          +
          The Term.
          +
          +
        • +
        + + + + + + + +
          +
        • +

          mkTerm

          +
          public Term mkTerm​(Op op,
          +                   Term child)
          +
          Create unary term of given kind from a given operator. + Create operators with mkOp(Kind), + mkOp(Kind, String), mkOp(Kind, int[]).
          +
          +
          Parameters:
          +
          op - The operator.
          +
          child - The child of the term.
          +
          Returns:
          +
          The Term.
          +
          +
        • +
        + + + +
          +
        • +

          mkTerm

          +
          public Term mkTerm​(Op op,
          +                   Term child1,
          +                   Term child2)
          +
          Create binary term of given kind from a given operator. + Create operators with mkOp(Kind), + mkOp(Kind, String), mkOp(Kind, int[]).
          +
          +
          Parameters:
          +
          op - The operator.
          +
          child1 - The first child of the term.
          +
          child2 - The second child of the term.
          +
          Returns:
          +
          The Term.
          +
          +
        • +
        + + + +
          +
        • +

          mkTerm

          +
          public Term mkTerm​(Op op,
          +                   Term child1,
          +                   Term child2,
          +                   Term child3)
          +
          Create ternary term of given kind from a given operator. + Create operators with mkOp(Kind), + mkOp(Kind, String), mkOp(Kind, int[]).
          +
          +
          Parameters:
          +
          op - The operator.
          +
          child1 - The first child of the term.
          +
          child2 - The second child of the term.
          +
          child3 - The third child of the term.
          +
          Returns:
          +
          The Term.
          +
          +
        • +
        + + + +
          +
        • +

          mkTerm

          +
          public Term mkTerm​(Op op,
          +                   Term[] children)
          +
          Create n-ary term of given kind from a given operator. + Create operators with mkOp(Kind), + mkOp(Kind, String), mkOp(Kind, int[]).
          +
          +
          Parameters:
          +
          op - The operator.
          +
          children - The children of the term.
          +
          Returns:
          +
          The Term.
          +
          +
        • +
        + + + +
          +
        • +

          mkTuple

          +
          public Term mkTuple​(Term[] terms)
          +
          Create a tuple term. + Terms are automatically converted if sorts are compatible.
          +
          +
          Parameters:
          +
          terms - The elements in the tuple.
          +
          Returns:
          +
          The tuple Term.
          +
          +
        • +
        + + + +
          +
        • +

          mkNullableSome

          +
          public Term mkNullableSome​(Term term)
          +
          Create a nullable some term.
          +
          +
          Parameters:
          +
          term - The element value.
          +
          Returns:
          +
          the Element value wrapped in some constructor.
          +
          +
        • +
        + + + +
          +
        • +

          mkNullableVal

          +
          public Term mkNullableVal​(Term term)
          +
          Create a selector for nullable term.
          +
          +
          Parameters:
          +
          term - A nullable term.
          +
          Returns:
          +
          The element value of the nullable term.
          +
          +
        • +
        + + + +
          +
        • +

          mkNullableIsNull

          +
          public Term mkNullableIsNull​(Term term)
          +
          Create a null tester for a nullable term.
          +
          +
          Parameters:
          +
          term - A nullable term.
          +
          Returns:
          +
          A tester whether term is null.
          +
          +
        • +
        + + + +
          +
        • +

          mkNullableIsSome

          +
          public Term mkNullableIsSome​(Term term)
          +
          Create a some tester for a nullable term.
          +
          +
          Parameters:
          +
          term - A nullable term.
          +
          Returns:
          +
          A tester whether term is some.
          +
          +
        • +
        + + + +
          +
        • +

          mkNullableNull

          +
          public Term mkNullableNull​(Sort sort)
          +
          Create a constant representing a null value of the given sort.
          +
          +
          Parameters:
          +
          sort - The sort of the Nullable element.
          +
          Returns:
          +
          The null constant.
          +
          +
        • +
        + + + +
          +
        • +

          mkNullableLift

          +
          public Term mkNullableLift​(Kind kind,
          +                           Term[] args)
          +
          Create a term that lifts kind to nullable terms. + Example: + If we have the term ((_ nullable.lift +) x y), + where x, y of type (Nullable Int), then + kind would be ADD, and args would be [x, y]. + This function would return + (nullable.lift (lambda ((a Int) (b Int)) (+ a b)) x y)
          +
          +
          Parameters:
          +
          kind - The lifted operator.
          +
          args - The arguments of the lifted operator.
          +
          Returns:
          +
          A term of Kind NULLABLE_LIFT where the first child + is a lambda expression, and the remaining children are + the original arguments.
          +
          +
        • +
        + + + +
          +
        • +

          mkOp

          +
          public Op mkOp​(Kind kind)
          +
          Create an operator for a builtin Kind + The Kind may not be the Kind for an indexed operator + (e.g., Kind.BITVECTOR_EXTRACT).
          +
          +
          Parameters:
          +
          kind - The kind to wrap.
          +
          Returns:
          +
          The operator.
          +
          Note:
          +
          In this case, the Op simply wraps the Kind. The Kind can be used + in mkTerm directly without creating an op first.
          +
          +
        • +
        + + + +
          +
        • +

          mkOp

          +
          public Op mkOp​(Kind kind,
          +               java.lang.String arg)
          +
          Create operator of kind: + + See enum Kind for a description of the parameters.
          +
          +
          Parameters:
          +
          kind - The kind of the operator.
          +
          arg - The string argument to this operator.
          +
          Returns:
          +
          The operator.
          +
          +
        • +
        + + + +
          +
        • +

          mkOp

          +
          public Op mkOp​(Kind kind,
          +               int arg)
          +        throws CVC5ApiException
          +
          Create operator of kind: +
            +
          • DIVISIBLE
          • +
          • BITVECTOR_REPEAT
          • +
          • BITVECTOR_ZERO_EXTEND
          • +
          • BITVECTOR_SIGN_EXTEND
          • +
          • BITVECTOR_ROTATE_LEFT
          • +
          • BITVECTOR_ROTATE_RIGHT
          • +
          • INT_TO_BITVECTOR
          • +
          • FLOATINGPOINT_TO_UBV
          • +
          • FLOATINGPOINT_TO_UBV_TOTAL
          • +
          • FLOATINGPOINT_TO_SBV
          • +
          • FLOATINGPOINT_TO_SBV_TOTAL
          • +
          • TUPLE_UPDATE
          • +
          + See enum Kind for a description of the parameters.
          +
          +
          Parameters:
          +
          kind - The kind of the operator.
          +
          arg - The unsigned int argument to this operator.
          +
          Returns:
          +
          The operator.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          mkOp

          +
          public Op mkOp​(Kind kind,
          +               int arg1,
          +               int arg2)
          +        throws CVC5ApiException
          +
          Create operator of Kind: +
            +
          • BITVECTOR_EXTRACT
          • +
          • FLOATINGPOINT_TO_FP_FROM_IEEE_BV
          • +
          • FLOATINGPOINT_TO_FP_FROM_FP
          • +
          • FLOATINGPOINT_TO_FP_FROM_REAL
          • +
          • FLOATINGPOINT_TO_FP_FROM_SBV
          • +
          • FLOATINGPOINT_TO_FP_FROM_UBV
          • +
          + See enum Kind for a description of the parameters.
          +
          +
          Parameters:
          +
          kind - The kind of the operator.
          +
          arg1 - The first unsigned int argument to this operator.
          +
          arg2 - The second unsigned int argument to this operator.
          +
          Returns:
          +
          The operator.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          mkOp

          +
          public Op mkOp​(Kind kind,
          +               int[] args)
          +        throws CVC5ApiException
          +
          Create operator of Kind: +
            +
          • TUPLE_PROJECT
          • +
          + See enum Kind for a description of the parameters.
          +
          +
          Parameters:
          +
          kind - The kind of the operator.
          +
          args - The arguments (indices) of the operator.
          +
          Returns:
          +
          The operator.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          mkTrue

          +
          public Term mkTrue()
          +
          Create a Boolean true constant.
          +
          +
          Returns:
          +
          The true constant.
          +
          +
        • +
        + + + +
          +
        • +

          mkFalse

          +
          public Term mkFalse()
          +
          Create a Boolean false constant.
          +
          +
          Returns:
          +
          The false constant.
          +
          +
        • +
        + + + +
          +
        • +

          mkBoolean

          +
          public Term mkBoolean​(boolean val)
          +
          Create a Boolean constant.
          +
          +
          Parameters:
          +
          val - The value of the constant.
          +
          Returns:
          +
          The Boolean constant.
          +
          +
        • +
        + + + +
          +
        • +

          mkPi

          +
          public Term mkPi()
          +
          Create a constant representing the number Pi.
          +
          +
          Returns:
          +
          A constant representing Pi.
          +
          +
        • +
        + + + +
          +
        • +

          mkInteger

          +
          public Term mkInteger​(java.lang.String s)
          +               throws CVC5ApiException
          +
          Create an integer constant from a string.
          +
          +
          Parameters:
          +
          s - The string representation of the constant, may represent an. + integer (e.g., "123").
          +
          Returns:
          +
          A constant of sort Integer assuming s represents an + integer).
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          mkInteger

          +
          public Term mkInteger​(long val)
          +
          Create an integer constant from a C++ int.
          +
          +
          Parameters:
          +
          val - The value of the constant.
          +
          Returns:
          +
          A constant of sort Integer.
          +
          +
        • +
        + + + +
          +
        • +

          mkReal

          +
          public Term mkReal​(java.lang.String s)
          +            throws CVC5ApiException
          +
          Create a real constant from a string.
          +
          +
          Parameters:
          +
          s - The string representation of the constant, may represent an. + integer (e.g., "123") or real constant (e.g., "12.34" or + "12/34").
          +
          Returns:
          +
          A constant of sort Real.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          mkReal

          +
          public Term mkReal​(long val)
          +
          Create a real constant from an integer.
          +
          +
          Parameters:
          +
          val - The value of the constant.
          +
          Returns:
          +
          A constant of sort Integer.
          +
          +
        • +
        + + + +
          +
        • +

          mkReal

          +
          public Term mkReal​(long num,
          +                   long den)
          +
          Create a real constant from a rational.
          +
          +
          Parameters:
          +
          num - The value of the numerator.
          +
          den - The value of the denominator.
          +
          Returns:
          +
          A constant of sort Real.
          +
          +
        • +
        + + + +
          +
        • +

          mkRegexpNone

          +
          public Term mkRegexpNone()
          +
          Create a regular expression none (re.none) term.
          +
          +
          Returns:
          +
          The none term.
          +
          +
        • +
        + + + +
          +
        • +

          mkRegexpAll

          +
          public Term mkRegexpAll()
          +
          Create a regular expression all (re.all) term.
          +
          +
          Returns:
          +
          The all term.
          +
          +
        • +
        + + + +
          +
        • +

          mkRegexpAllchar

          +
          public Term mkRegexpAllchar()
          +
          Create a regular expression allchar (re.allchar) term.
          +
          +
          Returns:
          +
          The allchar term.
          +
          +
        • +
        + + + +
          +
        • +

          mkEmptySet

          +
          public Term mkEmptySet​(Sort sort)
          +
          Create a constant representing an empty set of the given sort.
          +
          +
          Parameters:
          +
          sort - The sort of the set elements.
          +
          Returns:
          +
          The empty set constant.
          +
          +
        • +
        + + + +
          +
        • +

          mkEmptyBag

          +
          public Term mkEmptyBag​(Sort sort)
          +
          Create a constant representing an empty bag of the given sort.
          +
          +
          Parameters:
          +
          sort - The sort of the bag elements.
          +
          Returns:
          +
          The empty bag constant.
          +
          +
        • +
        + + + +
          +
        • +

          mkSepEmp

          +
          public Term mkSepEmp()
          +
          Create a separation logic empty term.
          +
          +
          Returns:
          +
          The separation logic empty term.
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          mkSepNil

          +
          public Term mkSepNil​(Sort sort)
          +
          Create a separation logic nil term.
          +
          +
          Parameters:
          +
          sort - The sort of the nil term.
          +
          Returns:
          +
          The separation logic nil term.
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          mkString

          +
          public Term mkString​(java.lang.String s)
          +
          Create a String constant.
          +
          +
          Parameters:
          +
          s - The string this constant represents.
          +
          Returns:
          +
          The String constant.
          +
          +
        • +
        + + + +
          +
        • +

          mkString

          +
          public Term mkString​(java.lang.String s,
          +                     boolean useEscSequences)
          +
          Create a String constant.
          +
          +
          Parameters:
          +
          s - The string this constant represents.
          +
          useEscSequences - Determines whether escape sequences in s + should be converted to the corresponding unicode + character.
          +
          Returns:
          +
          The String constant.
          +
          +
        • +
        + + + +
          +
        • +

          mkString

          +
          public Term mkString​(int[] s)
          +              throws CVC5ApiException
          +
          Create a String constant.
          +
          +
          Parameters:
          +
          s - A list of unsigned (unicode) values this constant represents + as string.
          +
          Returns:
          +
          The String constant.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          mkEmptySequence

          +
          public Term mkEmptySequence​(Sort sort)
          +
          Create an empty sequence of the given element sort.
          +
          +
          Parameters:
          +
          sort - The element sort of the sequence.
          +
          Returns:
          +
          The empty sequence with given element sort.
          +
          +
        • +
        + + + +
          +
        • +

          mkUniverseSet

          +
          public Term mkUniverseSet​(Sort sort)
          +
          Create a universe set of the given sort.
          +
          +
          Parameters:
          +
          sort - The sort of the set elements.
          +
          Returns:
          +
          The universe set constant.
          +
          +
        • +
        + + + +
          +
        • +

          mkBitVector

          +
          public Term mkBitVector​(int size)
          +                 throws CVC5ApiException
          +
          Create a bit-vector constant of given size and value = 0.
          +
          +
          Parameters:
          +
          size - The bit-width of the bit-vector sort.
          +
          Returns:
          +
          The bit-vector constant.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          mkBitVector

          +
          public Term mkBitVector​(int size,
          +                        long val)
          +                 throws CVC5ApiException
          +
          Create a bit-vector constant of given size and value.
          +
          +
          Parameters:
          +
          size - The bit-width of the bit-vector sort.
          +
          val - The value of the constant.
          +
          Returns:
          +
          The bit-vector constant.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          Note:
          +
          The given value must fit into a bit-vector of the given size.
          +
          +
        • +
        + + + +
          +
        • +

          mkBitVector

          +
          public Term mkBitVector​(int size,
          +                        java.lang.String s,
          +                        int base)
          +                 throws CVC5ApiException
          +
          Create a bit-vector constant of a given bit-width from a given string of + base 2, 10 or 16.
          +
          +
          Parameters:
          +
          size - The bit-width of the constant.
          +
          s - The string representation of the constant.
          +
          base - The base of the string representation (2, 10, or 16)
          +
          Returns:
          +
          The bit-vector constant.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          Note:
          +
          The given value must fit into a bit-vector of the given size.
          +
          +
        • +
        + + + +
          +
        • +

          mkFiniteFieldElem

          +
          public Term mkFiniteFieldElem​(java.lang.String val,
          +                              Sort sort,
          +                              int base)
          +                       throws CVC5ApiException
          +
          Create a finite field constant in a given field and for a given value.
          +
          +
          Parameters:
          +
          val - The value of the constant.
          +
          sort - The sort of the finite field.
          +
          base - The base of the string representation.
          +
          Returns:
          +
          The finite field constant.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          Note:
          +
          The given value must fit into a the given finite field.
          +
          +
        • +
        + + + +
          +
        • +

          mkConstArray

          +
          public Term mkConstArray​(Sort sort,
          +                         Term val)
          +
          Create a constant array with the provided constant value stored at + every index
          +
          +
          Parameters:
          +
          sort - The sort of the constant array (must be an array sort)
          +
          val - The constant value to store (must match the sort's element + sort).
          +
          Returns:
          +
          The constant array term.
          +
          +
        • +
        + + + +
          +
        • +

          mkFloatingPointPosInf

          +
          public Term mkFloatingPointPosInf​(int exp,
          +                                  int sig)
          +                           throws CVC5ApiException
          +
          Create a positive infinity floating-point constant (SMT-LIB: +oo).
          +
          +
          Parameters:
          +
          exp - Number of bits in the exponent.
          +
          sig - Number of bits in the significand.
          +
          Returns:
          +
          The floating-point constant.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          mkFloatingPointNegInf

          +
          public Term mkFloatingPointNegInf​(int exp,
          +                                  int sig)
          +                           throws CVC5ApiException
          +
          Create a negative infinity floating-point constant (SMT-LIB: -oo).
          +
          +
          Parameters:
          +
          exp - Number of bits in the exponent.
          +
          sig - Number of bits in the significand.
          +
          Returns:
          +
          The floating-point constant.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          mkFloatingPointNaN

          +
          public Term mkFloatingPointNaN​(int exp,
          +                               int sig)
          +                        throws CVC5ApiException
          +
          Create a not-a-number floating-point constant (SMT-LIB: NaN).
          +
          +
          Parameters:
          +
          exp - Number of bits in the exponent.
          +
          sig - Number of bits in the significand.
          +
          Returns:
          +
          The floating-point constant.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          mkFloatingPointPosZero

          +
          public Term mkFloatingPointPosZero​(int exp,
          +                                   int sig)
          +                            throws CVC5ApiException
          +
          Create a positive zero floating-point constant (SMT-LIB: +zero).
          +
          +
          Parameters:
          +
          exp - Number of bits in the exponent.
          +
          sig - Number of bits in the significand.
          +
          Returns:
          +
          The floating-point constant.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          mkFloatingPointNegZero

          +
          public Term mkFloatingPointNegZero​(int exp,
          +                                   int sig)
          +                            throws CVC5ApiException
          +
          Create a negative zero floating-point constant (SMT-LIB: -zero).
          +
          +
          Parameters:
          +
          exp - Number of bits in the exponent.
          +
          sig - Number of bits in the significand.
          +
          Returns:
          +
          The floating-point constant.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          mkRoundingMode

          +
          public Term mkRoundingMode​(RoundingMode rm)
          +
          Create a rounding mode constant.
          +
          +
          Parameters:
          +
          rm - The floating point rounding mode this constant represents.
          +
          Returns:
          +
          The rounding mode.
          +
          +
        • +
        + + + +
          +
        • +

          mkFloatingPoint

          +
          public Term mkFloatingPoint​(int exp,
          +                            int sig,
          +                            Term val)
          +                     throws CVC5ApiException
          +
          Create a floating-point value from a bit-vector given in IEEE-754 + format.
          +
          +
          Parameters:
          +
          exp - Size of the exponent.
          +
          sig - Size of the significand.
          +
          val - Value of the floating-point constant as a bit-vector term.
          +
          Returns:
          +
          The floating-point value.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          mkFloatingPoint

          +
          public Term mkFloatingPoint​(Term sign,
          +                            Term exp,
          +                            Term sig)
          +                     throws CVC5ApiException
          +
          Create a floating-point value from its three IEEE-754 bit-vector value + components (sign bit, exponent, significand).
          +
          +
          Parameters:
          +
          sign - The sign bit.
          +
          exp - The bit-vector representing the exponent.
          +
          sig - The bit-vector representing the significand.
          +
          Returns:
          +
          The floating-point value.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          +
        • +
        + + + +
          +
        • +

          mkCardinalityConstraint

          +
          public Term mkCardinalityConstraint​(Sort sort,
          +                                    int upperBound)
          +                             throws CVC5ApiException
          +
          Create a cardinality constraint for an uninterpreted sort.
          +
          +
          Parameters:
          +
          sort - The sort the cardinality constraint is for.
          +
          upperBound - The upper bound on the cardinality of the sort.
          +
          Returns:
          +
          The cardinality constraint.
          +
          Throws:
          +
          CVC5ApiException - on error
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          mkConst

          +
          public Term mkConst​(Sort sort,
          +                    java.lang.String symbol)
          +
          Create a free constant. + + SMT-LIB: + + ( declare-const <symbol> <sort> ) + ( declare-fun <symbol> ( ) <sort> ) +
          +
          +
          Parameters:
          +
          sort - The sort of the constant.
          +
          symbol - The name of the constant.
          +
          Returns:
          +
          The first-order constant.
          +
          +
        • +
        + + + +
          +
        • +

          mkConst

          +
          public Term mkConst​(Sort sort)
          +
          Create a free constant with a default symbol name.
          +
          +
          Parameters:
          +
          sort - The sort of the constant.
          +
          Returns:
          +
          The first-order constant.
          +
          +
        • +
        + + + +
          +
        • +

          mkVar

          +
          public Term mkVar​(Sort sort)
          +
          Create a bound variable to be used in a binder (i.e., a quantifier, a + lambda, or a witness binder).
          +
          +
          Parameters:
          +
          sort - The sort of the variable.
          +
          Returns:
          +
          The variable.
          +
          +
        • +
        + + + +
          +
        • +

          mkVar

          +
          public Term mkVar​(Sort sort,
          +                  java.lang.String symbol)
          +
          Create a bound variable to be used in a binder (i.e., a quantifier, a + lambda, or a witness binder).
          +
          +
          Parameters:
          +
          sort - The sort of the variable.
          +
          symbol - The name of the variable.
          +
          Returns:
          +
          The variable.
          +
          +
        • +
        + + + +
          +
        • +

          mkDatatypeConstructorDecl

          +
          public DatatypeConstructorDecl mkDatatypeConstructorDecl​(java.lang.String name)
          +
          Create a datatype constructor declaration.
          +
          +
          Parameters:
          +
          name - The name of the datatype constructor.
          +
          Returns:
          +
          The DatatypeConstructorDecl.
          +
          +
        • +
        + + + +
          +
        • +

          mkDatatypeDecl

          +
          public DatatypeDecl mkDatatypeDecl​(java.lang.String name)
          +
          Create a datatype declaration.
          +
          +
          Parameters:
          +
          name - The name of the datatype.
          +
          Returns:
          +
          The DatatypeDecl.
          +
          +
        • +
        + + + +
          +
        • +

          mkDatatypeDecl

          +
          public DatatypeDecl mkDatatypeDecl​(java.lang.String name,
          +                                   boolean isCoDatatype)
          +
          Create a datatype declaration.
          +
          +
          Parameters:
          +
          name - The name of the datatype.
          +
          isCoDatatype - True if a codatatype is to be constructed.
          +
          Returns:
          +
          The DatatypeDecl.
          +
          +
        • +
        + + + +
          +
        • +

          mkDatatypeDecl

          +
          public DatatypeDecl mkDatatypeDecl​(java.lang.String name,
          +                                   Sort[] params)
          +
          Create a datatype declaration. + + Create sorts parameter with Solver.mkParamSort(String).
          +
          +
          Parameters:
          +
          name - The name of the datatype.
          +
          params - A list of sort parameters.
          +
          Returns:
          +
          The DatatypeDecl.
          +
          Note:
          +
          This method is experimental and may change in future versions.
          +
          +
        • +
        + + + +
          +
        • +

          mkDatatypeDecl

          +
          public DatatypeDecl mkDatatypeDecl​(java.lang.String name,
          +                                   Sort[] params,
          +                                   boolean isCoDatatype)
          +
          Create a datatype declaration. + + Create sorts parameter with Solver.mkParamSort(String).
          +
          +
          Parameters:
          +
          name - The name of the datatype.
          +
          params - A list of sort parameters.
          +
          isCoDatatype - True if a codatatype is to be constructed.
          +
          Returns:
          +
          The DatatypeDecl.
          +
          +
        • +
        + + + +
          +
        • +

          getPointer

          +
          public long getPointer()
          +
        • +
        + + + +
          +
        • +

          deletePointer

          +
          public void deletePointer()
          +
        • +
        + + + +
          +
        • +

          toString

          +
          public java.lang.String toString()
          +
          +
          Overrides:
          +
          toString in class java.lang.Object
          +
          +
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
    + +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Triplet.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Triplet.html new file mode 100644 index 0000000000..d5bed2deb8 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Triplet.html @@ -0,0 +1,386 @@ + + + + + +Triplet + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Class Triplet<A,​B,​C>

    +
    +
    +
      +
    • java.lang.Object
    • +
    • +
        +
      • io.github.cvc5.Triplet<A,​B,​C>
      • +
      +
    • +
    +
    +
      +
    • +
      +
      public class Triplet<A,​B,​C>
      +extends java.lang.Object
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Field Summary

        + + + + + + + + + + + + + + + + + + + + + + +
        Fields 
        Modifier and TypeFieldDescription
        Afirst 
        Bsecond 
        Cthird 
        +
      • +
      +
      + +
      +
        +
      • + + +

        Constructor Summary

        + + + + + + + + + + +
        Constructors 
        ConstructorDescription
        Triplet​(A first, + B second, + C third) 
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Summary

        + + + + + + + + + + + + +
        All Methods Instance Methods Concrete Methods 
        Modifier and TypeMethodDescription
        booleanequals​(java.lang.Object object) 
        +
          +
        • + + +

          Methods inherited from class java.lang.Object

          +clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Field Detail

        + + + +
          +
        • +

          first

          +
          public A first
          +
        • +
        + + + +
          +
        • +

          second

          +
          public B second
          +
        • +
        + + + +
          +
        • +

          third

          +
          public C third
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Constructor Detail

        + + + + + +
          +
        • +

          Triplet

          +
          public Triplet​(A first,
          +               B second,
          +               C third)
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          equals

          +
          public boolean equals​(java.lang.Object object)
          +
          +
          Overrides:
          +
          equals in class java.lang.Object
          +
          +
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
    + +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/UnknownExplanation.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/UnknownExplanation.html new file mode 100644 index 0000000000..371f148c5a --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/UnknownExplanation.html @@ -0,0 +1,547 @@ + + + + + +UnknownExplanation + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Enum UnknownExplanation

    +
    +
    +
      +
    • java.lang.Object
    • +
    • + +
    • +
    +
    +
      +
    • +
      +
      All Implemented Interfaces:
      +
      java.io.Serializable, java.lang.Comparable<UnknownExplanation>
      +
      +
      +
      public enum UnknownExplanation
      +extends java.lang.Enum<UnknownExplanation>
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Enum Constant Summary

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        Enum Constants 
        Enum ConstantDescription
        INCOMPLETE +
        Incomplete theory solver.
        +
        INTERRUPTED +
        Solver was interrupted.
        +
        MEMOUT +
        Memory limit reached.
        +
        OTHER +
        Other reason.
        +
        REQUIRES_CHECK_AGAIN +
        Requires another satisfiability check
        +
        REQUIRES_FULL_CHECK +
        Full satisfiability check required (e.g., if only preprocessing was + performed).
        +
        RESOURCEOUT +
        Resource limit reached.
        +
        TIMEOUT +
        Time limit reached.
        +
        UNKNOWN_REASON +
        No specific reason given.
        +
        UNSUPPORTED +
        Unsupported feature encountered.
        +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Summary

        + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        All Methods Static Methods Instance Methods Concrete Methods 
        Modifier and TypeMethodDescription
        static UnknownExplanationfromInt​(int value) 
        intgetValue() 
        static UnknownExplanationvalueOf​(java.lang.String name) +
        Returns the enum constant of this type with the specified name.
        +
        static UnknownExplanation[]values() +
        Returns an array containing the constants of this enum type, in +the order they are declared.
        +
        +
          +
        • + + +

          Methods inherited from class java.lang.Enum

          +clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
        • +
        +
          +
        • + + +

          Methods inherited from class java.lang.Object

          +getClass, notify, notifyAll, wait, wait, wait
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Enum Constant Detail

        + + + +
          +
        • +

          REQUIRES_FULL_CHECK

          +
          public static final UnknownExplanation REQUIRES_FULL_CHECK
          +
          Full satisfiability check required (e.g., if only preprocessing was + performed).
          +
        • +
        + + + +
          +
        • +

          INCOMPLETE

          +
          public static final UnknownExplanation INCOMPLETE
          +
          Incomplete theory solver.
          +
        • +
        + + + + + + + +
          +
        • +

          RESOURCEOUT

          +
          public static final UnknownExplanation RESOURCEOUT
          +
          Resource limit reached.
          +
        • +
        + + + + + + + +
          +
        • +

          INTERRUPTED

          +
          public static final UnknownExplanation INTERRUPTED
          +
          Solver was interrupted.
          +
        • +
        + + + +
          +
        • +

          UNSUPPORTED

          +
          public static final UnknownExplanation UNSUPPORTED
          +
          Unsupported feature encountered.
          +
        • +
        + + + + + + + +
          +
        • +

          REQUIRES_CHECK_AGAIN

          +
          public static final UnknownExplanation REQUIRES_CHECK_AGAIN
          +
          Requires another satisfiability check
          +
        • +
        + + + +
          +
        • +

          UNKNOWN_REASON

          +
          public static final UnknownExplanation UNKNOWN_REASON
          +
          No specific reason given.
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          values

          +
          public static UnknownExplanation[] values()
          +
          Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +
          +for (UnknownExplanation c : UnknownExplanation.values())
          +    System.out.println(c);
          +
          +
          +
          Returns:
          +
          an array containing the constants of this enum type, in the order they are declared
          +
          +
        • +
        + + + +
          +
        • +

          valueOf

          +
          public static UnknownExplanation valueOf​(java.lang.String name)
          +
          Returns the enum constant of this type with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)
          +
          +
          Parameters:
          +
          name - the name of the enum constant to be returned.
          +
          Returns:
          +
          the enum constant with the specified name
          +
          Throws:
          +
          java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
          +
          java.lang.NullPointerException - if the argument is null
          +
          +
        • +
        + + + + + + + +
          +
        • +

          getValue

          +
          public int getValue()
          +
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
    + +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Utils.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Utils.html new file mode 100644 index 0000000000..6d9a737f3a --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/Utils.html @@ -0,0 +1,692 @@ + + + + + +Utils + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Class Utils

    +
    +
    +
      +
    • java.lang.Object
    • +
    • +
        +
      • io.github.cvc5.Utils
      • +
      +
    • +
    +
    +
      +
    • +
      +
      public class Utils
      +extends java.lang.Object
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Field Summary

        + + + + + + + + + + + + +
        Fields 
        Modifier and TypeFieldDescription
        static java.lang.StringLIBPATH_IN_JAR 
        +
      • +
      +
      + +
      +
        +
      • + + +

        Constructor Summary

        + + + + + + + + + + +
        Constructors 
        ConstructorDescription
        Utils() 
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Summary

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        All Methods Static Methods Concrete Methods 
        Modifier and TypeMethodDescription
        static <K> Pair<K,​java.lang.Long>[]getPairs​(Pair<K,​? extends io.github.cvc5.AbstractPointer>[] abstractPointers) 
        static long[]getPointers​(io.github.cvc5.IPointer[] objects) 
        static long[][]getPointers​(io.github.cvc5.IPointer[][] objects) 
        static Proof[]getProofs​(long[] pointers) 
        static java.lang.StringgetRational​(Pair<java.math.BigInteger,​java.math.BigInteger> pair) +
        Convert a pair of BigIntegers to a rational string a/b
        +
        static Pair<java.math.BigInteger,​java.math.BigInteger>getRational​(java.lang.String rational) +
        Convert a rational string a/b to a pair of BigIntegers
        +
        static Sort[]getSorts​(long[] pointers) 
        static Term[]getTerms​(long[] pointers) 
        static voidloadLibraries() +
        Load cvc5 native libraries.
        +
        static voidloadLibraryFromJar​(java.nio.file.Path tempDir, + java.lang.String path, + java.lang.String filename) +
        Loads a native library from a specified path within a JAR file and loads it into the JVM.
        +
        static java.util.List<java.lang.String>readLibraryFilenames​(java.lang.String pathInJar) +
        Reads a text file from the specified path within the JAR file and returns a list of library + filenames.
        +
        static voidtransferTo​(java.io.InputStream inputStream, + java.io.FileOutputStream outputStream) +
        Transfers all bytes from the provided InputStream to the specified FileOutputStream.
        +
        static voidvalidateUnsigned​(int[] integers, + java.lang.String name) 
        static voidvalidateUnsigned​(int integer, + java.lang.String name) 
        static voidvalidateUnsigned​(long[] integers, + java.lang.String name) 
        static voidvalidateUnsigned​(long integer, + java.lang.String name) 
        +
          +
        • + + +

          Methods inherited from class java.lang.Object

          +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Field Detail

        + + + +
          +
        • +

          LIBPATH_IN_JAR

          +
          public static final java.lang.String LIBPATH_IN_JAR
          +
          +
          See Also:
          +
          Constant Field Values
          +
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          Utils

          +
          public Utils()
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          readLibraryFilenames

          +
          public static java.util.List<java.lang.String> readLibraryFilenames​(java.lang.String pathInJar)
          +                                                             throws java.io.IOException,
          +                                                                    java.lang.UnsatisfiedLinkError
          +
          Reads a text file from the specified path within the JAR file and returns a list of library + filenames.
          +
          +
          Parameters:
          +
          pathInJar - The path to the text file inside the JAR
          +
          Returns:
          +
          a list of filenames read from the file
          +
          Throws:
          +
          java.lang.UnsatisfiedLinkError - If the text file does not exist
          +
          java.io.IOException - If an I/O error occurs
          +
          +
        • +
        + + + +
          +
        • +

          transferTo

          +
          public static void transferTo​(java.io.InputStream inputStream,
          +                              java.io.FileOutputStream outputStream)
          +                       throws java.lang.Exception
          +
          Transfers all bytes from the provided InputStream to the specified FileOutputStream. + +

          Note: This method replicates the functionality of InputStream.transferTo(OutputStream), which was introduced in Java 9 (currently, the minimum + required Java version is 1.8)

          +
          +
          Parameters:
          +
          inputStream - The input stream from which data is read
          +
          outputStream - The output stream to which data is written
          +
          Throws:
          +
          java.lang.Exception - If an I/O error occurs during reading or writing
          +
          See Also:
          +
          InputStream.transferTo(OutputStream)
          +
          +
        • +
        + + + +
          +
        • +

          loadLibraryFromJar

          +
          public static void loadLibraryFromJar​(java.nio.file.Path tempDir,
          +                                      java.lang.String path,
          +                                      java.lang.String filename)
          +                               throws java.lang.Exception
          +
          Loads a native library from a specified path within a JAR file and loads it into the JVM.
          +
          +
          Parameters:
          +
          path - The path inside the JAR where the library is located (e.g., "/cvc5-libs").
          +
          filename - The name of the library file (e.g., "libcvc5.so").
          +
          Throws:
          +
          java.lang.Exception - If the library cannot be found, the filename lacks an extension, + or any I/O operation fails during extraction.
          +
          java.lang.UnsatisfiedLinkError - If the library cannot be located at the specified path.
          +
          +
        • +
        + + + +
          +
        • +

          loadLibraries

          +
          public static void loadLibraries()
          +
          Load cvc5 native libraries.
          +
        • +
        + + + +
          +
        • +

          getSorts

          +
          public static Sort[] getSorts​(long[] pointers)
          +
          +
          Parameters:
          +
          pointers - The array of pointers.
          +
          Returns:
          +
          Sorts array from array of Sort pointers.
          +
          +
        • +
        + + + +
          +
        • +

          getTerms

          +
          public static Term[] getTerms​(long[] pointers)
          +
          +
          Parameters:
          +
          pointers - The array of pointers.
          +
          Returns:
          +
          Terms array from array of Term pointers.
          +
          +
        • +
        + + + +
          +
        • +

          getProofs

          +
          public static Proof[] getProofs​(long[] pointers)
          +
          +
          Parameters:
          +
          pointers - The array of pointers.
          +
          Returns:
          +
          proofs array from array of pointers
          +
          +
        • +
        + + + +
          +
        • +

          getPointers

          +
          public static long[] getPointers​(io.github.cvc5.IPointer[] objects)
          +
          +
          Parameters:
          +
          objects - The one dimensional array of pointers.
          +
          Returns:
          +
          Pointers from one dimensional array.
          +
          +
        • +
        + + + +
          +
        • +

          getPointers

          +
          public static long[][] getPointers​(io.github.cvc5.IPointer[][] objects)
          +
          +
          Parameters:
          +
          objects - The two dimensional array of pointers.
          +
          Returns:
          +
          Pointers from two dimensional matrix.
          +
          +
        • +
        + + + +
          +
        • +

          validateUnsigned

          +
          public static void validateUnsigned​(int integer,
          +                                    java.lang.String name)
          +                             throws CVC5ApiException
          +
          +
          Throws:
          +
          CVC5ApiException
          +
          +
        • +
        + + + +
          +
        • +

          validateUnsigned

          +
          public static void validateUnsigned​(long integer,
          +                                    java.lang.String name)
          +                             throws CVC5ApiException
          +
          +
          Throws:
          +
          CVC5ApiException
          +
          +
        • +
        + + + +
          +
        • +

          validateUnsigned

          +
          public static void validateUnsigned​(int[] integers,
          +                                    java.lang.String name)
          +                             throws CVC5ApiException
          +
          +
          Throws:
          +
          CVC5ApiException
          +
          +
        • +
        + + + +
          +
        • +

          validateUnsigned

          +
          public static void validateUnsigned​(long[] integers,
          +                                    java.lang.String name)
          +                             throws CVC5ApiException
          +
          +
          Throws:
          +
          CVC5ApiException
          +
          +
        • +
        + + + +
          +
        • +

          getPairs

          +
          public static <K> Pair<K,​java.lang.Long>[] getPairs​(Pair<K,​? extends io.github.cvc5.AbstractPointer>[] abstractPointers)
          +
        • +
        + + + +
          +
        • +

          getRational

          +
          public static Pair<java.math.BigInteger,​java.math.BigInteger> getRational​(java.lang.String rational)
          +
          Convert a rational string a/b to a pair of BigIntegers
          +
          +
          Parameters:
          +
          rational - The rational string.
          +
          Returns:
          +
          The pair of big integers.
          +
          +
        • +
        + + + +
          +
        • +

          getRational

          +
          public static java.lang.String getRational​(Pair<java.math.BigInteger,​java.math.BigInteger> pair)
          +
          Convert a pair of BigIntegers to a rational string a/b
          +
          +
          Parameters:
          +
          pair - The pair of big integers.
          +
          Returns:
          +
          The rational string.
          +
          +
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
    + +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/modes/BlockModelsMode.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/modes/BlockModelsMode.html new file mode 100644 index 0000000000..7b3c3ea296 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/modes/BlockModelsMode.html @@ -0,0 +1,417 @@ + + + + + +BlockModelsMode + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Enum BlockModelsMode

    +
    +
    +
      +
    • java.lang.Object
    • +
    • +
        +
      • java.lang.Enum<BlockModelsMode>
      • +
      • +
          +
        • io.github.cvc5.modes.BlockModelsMode
        • +
        +
      • +
      +
    • +
    +
    +
      +
    • +
      +
      All Implemented Interfaces:
      +
      java.io.Serializable, java.lang.Comparable<BlockModelsMode>
      +
      +
      +
      public enum BlockModelsMode
      +extends java.lang.Enum<BlockModelsMode>
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Enum Constant Summary

        + + + + + + + + + + + + + + +
        Enum Constants 
        Enum ConstantDescription
        LITERALS +
        Block models based on the SAT skeleton.
        +
        VALUES +
        Block models based on the concrete model values for the free variables.
        +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Summary

        + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        All Methods Static Methods Instance Methods Concrete Methods 
        Modifier and TypeMethodDescription
        static BlockModelsModefromInt​(int value) 
        intgetValue() 
        static BlockModelsModevalueOf​(java.lang.String name) +
        Returns the enum constant of this type with the specified name.
        +
        static BlockModelsMode[]values() +
        Returns an array containing the constants of this enum type, in +the order they are declared.
        +
        +
          +
        • + + +

          Methods inherited from class java.lang.Enum

          +clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
        • +
        +
          +
        • + + +

          Methods inherited from class java.lang.Object

          +getClass, notify, notifyAll, wait, wait, wait
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Enum Constant Detail

        + + + +
          +
        • +

          LITERALS

          +
          public static final BlockModelsMode LITERALS
          +
          Block models based on the SAT skeleton.
          +
        • +
        + + + +
          +
        • +

          VALUES

          +
          public static final BlockModelsMode VALUES
          +
          Block models based on the concrete model values for the free variables.
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          values

          +
          public static BlockModelsMode[] values()
          +
          Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +
          +for (BlockModelsMode c : BlockModelsMode.values())
          +    System.out.println(c);
          +
          +
          +
          Returns:
          +
          an array containing the constants of this enum type, in the order they are declared
          +
          +
        • +
        + + + +
          +
        • +

          valueOf

          +
          public static BlockModelsMode valueOf​(java.lang.String name)
          +
          Returns the enum constant of this type with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)
          +
          +
          Parameters:
          +
          name - the name of the enum constant to be returned.
          +
          Returns:
          +
          the enum constant with the specified name
          +
          Throws:
          +
          java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
          +
          java.lang.NullPointerException - if the argument is null
          +
          +
        • +
        + + + + + + + +
          +
        • +

          getValue

          +
          public int getValue()
          +
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
    + +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/modes/FindSynthTarget.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/modes/FindSynthTarget.html new file mode 100644 index 0000000000..660abee437 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/modes/FindSynthTarget.html @@ -0,0 +1,493 @@ + + + + + +FindSynthTarget + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Enum FindSynthTarget

    +
    +
    +
      +
    • java.lang.Object
    • +
    • +
        +
      • java.lang.Enum<FindSynthTarget>
      • +
      • +
          +
        • io.github.cvc5.modes.FindSynthTarget
        • +
        +
      • +
      +
    • +
    +
    +
      +
    • +
      +
      All Implemented Interfaces:
      +
      java.io.Serializable, java.lang.Comparable<FindSynthTarget>
      +
      +
      +
      public enum FindSynthTarget
      +extends java.lang.Enum<FindSynthTarget>
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Enum Constant Summary

        + + + + + + + + + + + + + + + + + + + + + + + + + + +
        Enum Constants 
        Enum ConstantDescription
        ENUM +
        Find the next term in the enumeration of the target grammar.
        +
        QUERY +
        Find a query over the given grammar.
        +
        REWRITE +
        Find a pair of terms (t,s) in the target grammar which are equivalent + but do not rewrite to the same term in the given rewriter + (--sygus-rewrite=MODE).
        +
        REWRITE_INPUT +
        Find a rewrite between pairs of terms (t,s) that are matchable with terms + in the input assertions where t and s are equivalent but do not rewrite + to the same term in the given rewriter (--sygus-rewrite=MODE).
        +
        REWRITE_UNSOUND +
        Find a term t in the target grammar which rewrites to a term s that is + not equivalent to it.
        +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Summary

        + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        All Methods Static Methods Instance Methods Concrete Methods 
        Modifier and TypeMethodDescription
        static FindSynthTargetfromInt​(int value) 
        intgetValue() 
        static FindSynthTargetvalueOf​(java.lang.String name) +
        Returns the enum constant of this type with the specified name.
        +
        static FindSynthTarget[]values() +
        Returns an array containing the constants of this enum type, in +the order they are declared.
        +
        +
          +
        • + + +

          Methods inherited from class java.lang.Enum

          +clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
        • +
        +
          +
        • + + +

          Methods inherited from class java.lang.Object

          +getClass, notify, notifyAll, wait, wait, wait
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Enum Constant Detail

        + + + +
          +
        • +

          ENUM

          +
          public static final FindSynthTarget ENUM
          +
          Find the next term in the enumeration of the target grammar.
          +
        • +
        + + + +
          +
        • +

          REWRITE

          +
          public static final FindSynthTarget REWRITE
          +
          Find a pair of terms (t,s) in the target grammar which are equivalent + but do not rewrite to the same term in the given rewriter + (--sygus-rewrite=MODE). If so, the equality (= t s) is returned by + findSynth. + + This can be used to synthesize rewrite rules. Note if the rewriter is set + to none (--sygus-rewrite=none), this indicates a possible rewrite when + implementing a rewriter from scratch.
          +
        • +
        + + + +
          +
        • +

          REWRITE_UNSOUND

          +
          public static final FindSynthTarget REWRITE_UNSOUND
          +
          Find a term t in the target grammar which rewrites to a term s that is + not equivalent to it. If so, the equality (= t s) is returned by + findSynth. + + This can be used to test the correctness of the given rewriter. Any + returned rewrite indicates an unsoundness in the given rewriter.
          +
        • +
        + + + +
          +
        • +

          REWRITE_INPUT

          +
          public static final FindSynthTarget REWRITE_INPUT
          +
          Find a rewrite between pairs of terms (t,s) that are matchable with terms + in the input assertions where t and s are equivalent but do not rewrite + to the same term in the given rewriter (--sygus-rewrite=MODE). + + This can be used to synthesize rewrite rules that apply to the current + problem.
          +
        • +
        + + + +
          +
        • +

          QUERY

          +
          public static final FindSynthTarget QUERY
          +
          Find a query over the given grammar. If the given grammar generates terms + that are not Boolean, we consider equalities over terms from the given + grammar. + + The algorithm for determining which queries to generate is configured by + --sygus-query-gen=MODE. Queries that are internally solved can be + filtered by the option --sygus-query-gen-filter-solved.
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          values

          +
          public static FindSynthTarget[] values()
          +
          Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +
          +for (FindSynthTarget c : FindSynthTarget.values())
          +    System.out.println(c);
          +
          +
          +
          Returns:
          +
          an array containing the constants of this enum type, in the order they are declared
          +
          +
        • +
        + + + +
          +
        • +

          valueOf

          +
          public static FindSynthTarget valueOf​(java.lang.String name)
          +
          Returns the enum constant of this type with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)
          +
          +
          Parameters:
          +
          name - the name of the enum constant to be returned.
          +
          Returns:
          +
          the enum constant with the specified name
          +
          Throws:
          +
          java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
          +
          java.lang.NullPointerException - if the argument is null
          +
          +
        • +
        + + + + + + + +
          +
        • +

          getValue

          +
          public int getValue()
          +
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
    + +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/modes/InputLanguage.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/modes/InputLanguage.html new file mode 100644 index 0000000000..93f9789646 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/modes/InputLanguage.html @@ -0,0 +1,433 @@ + + + + + +InputLanguage + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Enum InputLanguage

    +
    +
    +
      +
    • java.lang.Object
    • +
    • +
        +
      • java.lang.Enum<InputLanguage>
      • +
      • +
          +
        • io.github.cvc5.modes.InputLanguage
        • +
        +
      • +
      +
    • +
    +
    +
      +
    • +
      +
      All Implemented Interfaces:
      +
      java.io.Serializable, java.lang.Comparable<InputLanguage>
      +
      +
      +
      public enum InputLanguage
      +extends java.lang.Enum<InputLanguage>
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Enum Constant Summary

        + + + + + + + + + + + + + + + + + + +
        Enum Constants 
        Enum ConstantDescription
        SMT_LIB_2_6 +
        The SMT-LIB version 2.6 language
        +
        SYGUS_2_1 +
        The SyGuS version 2.1 language.
        +
        UNKNOWN +
        No language given.
        +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Summary

        + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        All Methods Static Methods Instance Methods Concrete Methods 
        Modifier and TypeMethodDescription
        static InputLanguagefromInt​(int value) 
        intgetValue() 
        static InputLanguagevalueOf​(java.lang.String name) +
        Returns the enum constant of this type with the specified name.
        +
        static InputLanguage[]values() +
        Returns an array containing the constants of this enum type, in +the order they are declared.
        +
        +
          +
        • + + +

          Methods inherited from class java.lang.Enum

          +clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
        • +
        +
          +
        • + + +

          Methods inherited from class java.lang.Object

          +getClass, notify, notifyAll, wait, wait, wait
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Enum Constant Detail

        + + + +
          +
        • +

          SMT_LIB_2_6

          +
          public static final InputLanguage SMT_LIB_2_6
          +
          The SMT-LIB version 2.6 language
          +
        • +
        + + + +
          +
        • +

          SYGUS_2_1

          +
          public static final InputLanguage SYGUS_2_1
          +
          The SyGuS version 2.1 language.
          +
        • +
        + + + +
          +
        • +

          UNKNOWN

          +
          public static final InputLanguage UNKNOWN
          +
          No language given.
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          values

          +
          public static InputLanguage[] values()
          +
          Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +
          +for (InputLanguage c : InputLanguage.values())
          +    System.out.println(c);
          +
          +
          +
          Returns:
          +
          an array containing the constants of this enum type, in the order they are declared
          +
          +
        • +
        + + + +
          +
        • +

          valueOf

          +
          public static InputLanguage valueOf​(java.lang.String name)
          +
          Returns the enum constant of this type with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)
          +
          +
          Parameters:
          +
          name - the name of the enum constant to be returned.
          +
          Returns:
          +
          the enum constant with the specified name
          +
          Throws:
          +
          java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
          +
          java.lang.NullPointerException - if the argument is null
          +
          +
        • +
        + + + + + + + +
          +
        • +

          getValue

          +
          public int getValue()
          +
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
    + +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/modes/LearnedLitType.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/modes/LearnedLitType.html new file mode 100644 index 0000000000..3bf9e01c59 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/modes/LearnedLitType.html @@ -0,0 +1,519 @@ + + + + + +LearnedLitType + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Enum LearnedLitType

    +
    +
    +
      +
    • java.lang.Object
    • +
    • +
        +
      • java.lang.Enum<LearnedLitType>
      • +
      • +
          +
        • io.github.cvc5.modes.LearnedLitType
        • +
        +
      • +
      +
    • +
    +
    +
      +
    • +
      +
      All Implemented Interfaces:
      +
      java.io.Serializable, java.lang.Comparable<LearnedLitType>
      +
      +
      +
      public enum LearnedLitType
      +extends java.lang.Enum<LearnedLitType>
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Enum Constant Summary

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        Enum Constants 
        Enum ConstantDescription
        CONSTANT_PROP +
        An internal literal that can be made into a constant propagation for an + input term.
        +
        INPUT +
        A literal from the preprocessed set of input formulas that does not + occur at top-level after preprocessing.
        +
        INTERNAL +
        Any internal literal that does not fall into the above categories.
        +
        PREPROCESS +
        A top-level literal (unit clause) from the preprocessed set of input + formulas.
        +
        PREPROCESS_SOLVED +
        An equality that was turned into a substitution during preprocessing.
        +
        SOLVABLE +
        An internal literal that is solvable for an input variable.
        +
        UNKNOWN +
        Special case for when produce-learned-literals is not set.
        +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Summary

        + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        All Methods Static Methods Instance Methods Concrete Methods 
        Modifier and TypeMethodDescription
        static LearnedLitTypefromInt​(int value) 
        intgetValue() 
        static LearnedLitTypevalueOf​(java.lang.String name) +
        Returns the enum constant of this type with the specified name.
        +
        static LearnedLitType[]values() +
        Returns an array containing the constants of this enum type, in +the order they are declared.
        +
        +
          +
        • + + +

          Methods inherited from class java.lang.Enum

          +clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
        • +
        +
          +
        • + + +

          Methods inherited from class java.lang.Object

          +getClass, notify, notifyAll, wait, wait, wait
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Enum Constant Detail

        + + + +
          +
        • +

          PREPROCESS_SOLVED

          +
          public static final LearnedLitType PREPROCESS_SOLVED
          +
          An equality that was turned into a substitution during preprocessing. + + In particular, literals in this category are of the form (= x t) where + x does not occur in t.
          +
        • +
        + + + +
          +
        • +

          PREPROCESS

          +
          public static final LearnedLitType PREPROCESS
          +
          A top-level literal (unit clause) from the preprocessed set of input + formulas.
          +
        • +
        + + + +
          +
        • +

          INPUT

          +
          public static final LearnedLitType INPUT
          +
          A literal from the preprocessed set of input formulas that does not + occur at top-level after preprocessing. + + Typically), this is the most interesting category of literals to learn.
          +
        • +
        + + + +
          +
        • +

          SOLVABLE

          +
          public static final LearnedLitType SOLVABLE
          +
          An internal literal that is solvable for an input variable. + + In particular, literals in this category are of the form (= x t) where + x does not occur in t, the preprocessed set of input formulas contains the + term x, but not the literal (= x t). + + Note that solvable literals can be turned into substitutions during + preprocessing.
          +
        • +
        + + + +
          +
        • +

          CONSTANT_PROP

          +
          public static final LearnedLitType CONSTANT_PROP
          +
          An internal literal that can be made into a constant propagation for an + input term. + + In particular, literals in this category are of the form (= t c) where + c is a constant, the preprocessed set of input formulas contains the + term t, but not the literal (= t c).
          +
        • +
        + + + +
          +
        • +

          INTERNAL

          +
          public static final LearnedLitType INTERNAL
          +
          Any internal literal that does not fall into the above categories.
          +
        • +
        + + + +
          +
        • +

          UNKNOWN

          +
          public static final LearnedLitType UNKNOWN
          +
          Special case for when produce-learned-literals is not set.
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          values

          +
          public static LearnedLitType[] values()
          +
          Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +
          +for (LearnedLitType c : LearnedLitType.values())
          +    System.out.println(c);
          +
          +
          +
          Returns:
          +
          an array containing the constants of this enum type, in the order they are declared
          +
          +
        • +
        + + + +
          +
        • +

          valueOf

          +
          public static LearnedLitType valueOf​(java.lang.String name)
          +
          Returns the enum constant of this type with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)
          +
          +
          Parameters:
          +
          name - the name of the enum constant to be returned.
          +
          Returns:
          +
          the enum constant with the specified name
          +
          Throws:
          +
          java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
          +
          java.lang.NullPointerException - if the argument is null
          +
          +
        • +
        + + + + + + + +
          +
        • +

          getValue

          +
          public int getValue()
          +
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
    + +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/modes/ProofComponent.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/modes/ProofComponent.html new file mode 100644 index 0000000000..1aad5385c7 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/modes/ProofComponent.html @@ -0,0 +1,508 @@ + + + + + +ProofComponent + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Enum ProofComponent

    +
    +
    +
      +
    • java.lang.Object
    • +
    • +
        +
      • java.lang.Enum<ProofComponent>
      • +
      • +
          +
        • io.github.cvc5.modes.ProofComponent
        • +
        +
      • +
      +
    • +
    +
    +
      +
    • +
      +
      All Implemented Interfaces:
      +
      java.io.Serializable, java.lang.Comparable<ProofComponent>
      +
      +
      +
      public enum ProofComponent
      +extends java.lang.Enum<ProofComponent>
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Enum Constant Summary

        + + + + + + + + + + + + + + + + + + + + + + + + + + +
        Enum Constants 
        Enum ConstantDescription
        FULL +
        A proof of false whose free assumptions are a subset of the input formulas + F1), ...
        +
        PREPROCESS +
        Proofs of Gu1 ...
        +
        RAW_PREPROCESS +
        Proofs of G1 ...
        +
        SAT +
        A proof of false whose free assumptions are Gu1, ...
        +
        THEORY_LEMMAS +
        Proofs of L1 ...
        +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Summary

        + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        All Methods Static Methods Instance Methods Concrete Methods 
        Modifier and TypeMethodDescription
        static ProofComponentfromInt​(int value) 
        intgetValue() 
        static ProofComponentvalueOf​(java.lang.String name) +
        Returns the enum constant of this type with the specified name.
        +
        static ProofComponent[]values() +
        Returns an array containing the constants of this enum type, in +the order they are declared.
        +
        +
          +
        • + + +

          Methods inherited from class java.lang.Enum

          +clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
        • +
        +
          +
        • + + +

          Methods inherited from class java.lang.Object

          +getClass, notify, notifyAll, wait, wait, wait
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Enum Constant Detail

        + + + +
          +
        • +

          RAW_PREPROCESS

          +
          public static final ProofComponent RAW_PREPROCESS
          +
          Proofs of G1 ... Gn whose free assumptions are a subset of + F1, ... Fm, where: +
            +
          • G1, ... Gn are the preprocessed input formulas, +
          • +
          • F1, ... Fm are the input formulas. + +
          + Note that G1 ... Gn may be arbitrary formulas, not necessarily clauses.
          +
        • +
        + + + +
          +
        • +

          PREPROCESS

          +
          public static final ProofComponent PREPROCESS
          +
          Proofs of Gu1 ... Gun whose free assumptions are Fu1, ... Fum, + where: +
            +
          • Gu1, ... Gun are clauses corresponding to input formulas used in the SAT +
          + proof, +
            +
          • Fu1, ... Fum is the subset of the input formulas that are used in the SAT +
          + proof (i.e. the unsat core). + + Note that Gu1 ... Gun are clauses that are added to the SAT solver before + its main search. + + Only valid immediately after an unsat response.
          +
        • +
        + + + +
          +
        • +

          SAT

          +
          public static final ProofComponent SAT
          +
          A proof of false whose free assumptions are Gu1, ... Gun, L1 ... Lk, + where: +
            +
          • Gu1, ... Gun, is a set of clauses corresponding to input formulas, +
          • +
          • L1, ..., Lk is a set of clauses corresponding to theory lemmas. + +
          + Only valid immediately after an unsat response.
          +
        • +
        + + + +
          +
        • +

          THEORY_LEMMAS

          +
          public static final ProofComponent THEORY_LEMMAS
          +
          Proofs of L1 ... Lk where: +
            +
          • L1, ..., Lk are clauses corresponding to theory lemmas used in the SAT +
          + proof. + + In contrast to proofs given for preprocess, L1 ... Lk are clauses that are + added to the SAT solver after its main search. + + Only valid immediately after an unsat response.
          +
        • +
        + + + +
          +
        • +

          FULL

          +
          public static final ProofComponent FULL
          +
          A proof of false whose free assumptions are a subset of the input formulas + F1), ... Fm. + + Only valid immediately after an unsat response.
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          values

          +
          public static ProofComponent[] values()
          +
          Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +
          +for (ProofComponent c : ProofComponent.values())
          +    System.out.println(c);
          +
          +
          +
          Returns:
          +
          an array containing the constants of this enum type, in the order they are declared
          +
          +
        • +
        + + + +
          +
        • +

          valueOf

          +
          public static ProofComponent valueOf​(java.lang.String name)
          +
          Returns the enum constant of this type with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)
          +
          +
          Parameters:
          +
          name - the name of the enum constant to be returned.
          +
          Returns:
          +
          the enum constant with the specified name
          +
          Throws:
          +
          java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
          +
          java.lang.NullPointerException - if the argument is null
          +
          +
        • +
        + + + + + + + +
          +
        • +

          getValue

          +
          public int getValue()
          +
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
    + +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/modes/ProofFormat.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/modes/ProofFormat.html new file mode 100644 index 0000000000..550edaba39 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/modes/ProofFormat.html @@ -0,0 +1,481 @@ + + + + + +ProofFormat + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Enum ProofFormat

    +
    +
    +
      +
    • java.lang.Object
    • +
    • +
        +
      • java.lang.Enum<ProofFormat>
      • +
      • +
          +
        • io.github.cvc5.modes.ProofFormat
        • +
        +
      • +
      +
    • +
    +
    +
      +
    • +
      +
      All Implemented Interfaces:
      +
      java.io.Serializable, java.lang.Comparable<ProofFormat>
      +
      +
      +
      public enum ProofFormat
      +extends java.lang.Enum<ProofFormat>
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Enum Constant Summary

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        Enum Constants 
        Enum ConstantDescription
        ALETHE +
        Output Alethe proof.
        +
        CPC +
        Output Cooperating Proof Calculus proof based on Eunoia signatures.
        +
        DEFAULT +
        Use the proof format mode set in the solver options.
        +
        DOT +
        Output DOT proof.
        +
        LFSC +
        Output LFSC proof.
        +
        NONE +
        Do not translate proof output.
        +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Summary

        + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        All Methods Static Methods Instance Methods Concrete Methods 
        Modifier and TypeMethodDescription
        static ProofFormatfromInt​(int value) 
        intgetValue() 
        static ProofFormatvalueOf​(java.lang.String name) +
        Returns the enum constant of this type with the specified name.
        +
        static ProofFormat[]values() +
        Returns an array containing the constants of this enum type, in +the order they are declared.
        +
        +
          +
        • + + +

          Methods inherited from class java.lang.Enum

          +clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
        • +
        +
          +
        • + + +

          Methods inherited from class java.lang.Object

          +getClass, notify, notifyAll, wait, wait, wait
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Enum Constant Detail

        + + + +
          +
        • +

          NONE

          +
          public static final ProofFormat NONE
          +
          Do not translate proof output.
          +
        • +
        + + + +
          +
        • +

          DOT

          +
          public static final ProofFormat DOT
          +
          Output DOT proof.
          +
        • +
        + + + +
          +
        • +

          LFSC

          +
          public static final ProofFormat LFSC
          +
          Output LFSC proof.
          +
        • +
        + + + +
          +
        • +

          ALETHE

          +
          public static final ProofFormat ALETHE
          +
          Output Alethe proof.
          +
        • +
        + + + +
          +
        • +

          CPC

          +
          public static final ProofFormat CPC
          +
          Output Cooperating Proof Calculus proof based on Eunoia signatures.
          +
        • +
        + + + +
          +
        • +

          DEFAULT

          +
          public static final ProofFormat DEFAULT
          +
          Use the proof format mode set in the solver options.
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          values

          +
          public static ProofFormat[] values()
          +
          Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +
          +for (ProofFormat c : ProofFormat.values())
          +    System.out.println(c);
          +
          +
          +
          Returns:
          +
          an array containing the constants of this enum type, in the order they are declared
          +
          +
        • +
        + + + +
          +
        • +

          valueOf

          +
          public static ProofFormat valueOf​(java.lang.String name)
          +
          Returns the enum constant of this type with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)
          +
          +
          Parameters:
          +
          name - the name of the enum constant to be returned.
          +
          Returns:
          +
          the enum constant with the specified name
          +
          Throws:
          +
          java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
          +
          java.lang.NullPointerException - if the argument is null
          +
          +
        • +
        + + + + + + + +
          +
        • +

          getValue

          +
          public int getValue()
          +
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
    + +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/modes/package-summary.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/modes/package-summary.html new file mode 100644 index 0000000000..d799aca09f --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/modes/package-summary.html @@ -0,0 +1,186 @@ + + + + + +io.github.cvc5.modes + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    Package io.github.cvc5.modes

    +
    +
    + +
    +
    +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/modes/package-tree.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/modes/package-tree.html new file mode 100644 index 0000000000..909a9fc8a0 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/modes/package-tree.html @@ -0,0 +1,172 @@ + + + + + +io.github.cvc5.modes Class Hierarchy + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    Hierarchy For Package io.github.cvc5.modes

    +Package Hierarchies: + +
    +
    +
    +

    Enum Hierarchy

    + +
    +
    +
    +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/package-summary.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/package-summary.html new file mode 100644 index 0000000000..7337731b93 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/package-summary.html @@ -0,0 +1,380 @@ + + + + + +io.github.cvc5 + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    Package io.github.cvc5

    +
    +
    + +
    +
    +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/package-tree.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/package-tree.html new file mode 100644 index 0000000000..fc1dd6d61e --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/io/github/cvc5/package-tree.html @@ -0,0 +1,246 @@ + + + + + +io.github.cvc5 Class Hierarchy + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    Hierarchy For Package io.github.cvc5

    +Package Hierarchies: + +
    +
    +
    +

    Class Hierarchy

    + +
    +
    +

    Interface Hierarchy

    + +
    +
    +

    Enum Hierarchy

    + +
    +
    +
    +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/java.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/java.html new file mode 100644 index 0000000000..a698484988 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/java.html @@ -0,0 +1,756 @@ + + + + + + + + + + + Java API — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Java API + +  + +

    +

    + The Java API of cvc5 mostly mirrors the + + + C++ API + + + and +supports operator overloading, iterators, and exceptions. +There are a few differences from the C++ API, such as using arbitrary-precision +integer pairs, specifically, pairs of Java + + BigInteger + + objects, to represent +rational numbers. +The + + + quickstart guide + + + gives a short introduction, +and more examples can be found + + here + + . +

    +

    + For most applications, the + + Solver + + class is the +main entry point to cvc5. +The class hierarchy of + + cvc5 package + + provides more details on the individual classes. +

    +
    +
    +
    +
    +

    + Building cvc5 Java API + +  + +

    +
    +
    +
    $ git clone https://github.com/cvc5/cvc5
    +$ cd cvc5
    +$ ./configure.sh production --java-bindings --auto-download --prefix=build/install
    +$ cd build
    +$ make
    +$ make install
    +
    +$ ls install/lib
    +  cmake  libcvc5jni.so  libcvc5parser.so  libcvc5parser.so.1  libcvc5.so
    +  libpicpoly.a  libpicpolyxx.a  libpoly.so libpoly.so.0  libpoly.so.0.1.9
    +  libpolyxx.so  libpolyxx.so.0  libpolyxx.so.0.1.9  objects-Production
    +$ ls install/share/java/
    +  cvc5-0.0.5-dev.jar  cvc5.jar
    +
    +# compile example QuickStart.java with cvc5 jar file
    +$ javac -cp "install/share/java/cvc5.jar" ../examples/api/java/QuickStart.java -d .
    +
    +# run example QuickStart with cvc5 jar file and cvc5 shared libraries
    +$ java -cp "install/share/java/cvc5.jar:." "-Djava.library.path=install/lib" QuickStart
    +  expected: sat
    +  result: sat
    +  value for x: 1/6
    +  value for y: 1/6
    +  expected: unsat
    +  result: unsat
    +  unsat core size: 3
    +  unsat core:
    +  (< 0 a)
    +  (< 0 b)
    +  (< (+ a b) 1)
    +
    +
    +
    +
    +
    +
    +

    + + Javadoc API Documentation + + +  + +

    +
    +

    + + Package io.github.cvc5 + + +  + +

    +
    +
    + +
    +
    +
    +
    +

    + + Package io.github.cvc5.modes + + +  + +

    +
    +
    + +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/jquery-ui.overrides.css b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/jquery-ui.overrides.css new file mode 100644 index 0000000000..facf852c27 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/jquery-ui.overrides.css @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2020, 2022, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +.ui-state-active, +.ui-widget-content .ui-state-active, +.ui-widget-header .ui-state-active, +a.ui-button:active, +.ui-button:active, +.ui-button.ui-state-active:hover { + /* Overrides the color of selection used in jQuery UI */ + background: #F8981D; + border: 1px solid #F8981D; +} diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/jquery/external/jquery/jquery.js b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/jquery/external/jquery/jquery.js new file mode 100644 index 0000000000..50937333b9 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/jquery/external/jquery/jquery.js @@ -0,0 +1,10872 @@ +/*! + * jQuery JavaScript Library v3.5.1 + * https://jquery.com/ + * + * Includes Sizzle.js + * https://sizzlejs.com/ + * + * Copyright JS Foundation and other contributors + * Released under the MIT license + * https://jquery.org/license + * + * Date: 2020-05-04T22:49Z + */ +( function( global, factory ) { + + "use strict"; + + if ( typeof module === "object" && typeof module.exports === "object" ) { + + // For CommonJS and CommonJS-like environments where a proper `window` + // is present, execute the factory and get jQuery. + // For environments that do not have a `window` with a `document` + // (such as Node.js), expose a factory as module.exports. + // This accentuates the need for the creation of a real `window`. + // e.g. var jQuery = require("jquery")(window); + // See ticket #14549 for more info. + module.exports = global.document ? + factory( global, true ) : + function( w ) { + if ( !w.document ) { + throw new Error( "jQuery requires a window with a document" ); + } + return factory( w ); + }; + } else { + factory( global ); + } + +// Pass this if window is not defined yet +} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) { + +// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 +// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode +// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common +// enough that all such attempts are guarded in a try block. +"use strict"; + +var arr = []; + +var getProto = Object.getPrototypeOf; + +var slice = arr.slice; + +var flat = arr.flat ? function( array ) { + return arr.flat.call( array ); +} : function( array ) { + return arr.concat.apply( [], array ); +}; + + +var push = arr.push; + +var indexOf = arr.indexOf; + +var class2type = {}; + +var toString = class2type.toString; + +var hasOwn = class2type.hasOwnProperty; + +var fnToString = hasOwn.toString; + +var ObjectFunctionString = fnToString.call( Object ); + +var support = {}; + +var isFunction = function isFunction( obj ) { + + // Support: Chrome <=57, Firefox <=52 + // In some browsers, typeof returns "function" for HTML elements + // (i.e., `typeof document.createElement( "object" ) === "function"`). + // We don't want to classify *any* DOM node as a function. + return typeof obj === "function" && typeof obj.nodeType !== "number"; + }; + + +var isWindow = function isWindow( obj ) { + return obj != null && obj === obj.window; + }; + + +var document = window.document; + + + + var preservedScriptAttributes = { + type: true, + src: true, + nonce: true, + noModule: true + }; + + function DOMEval( code, node, doc ) { + doc = doc || document; + + var i, val, + script = doc.createElement( "script" ); + + script.text = code; + if ( node ) { + for ( i in preservedScriptAttributes ) { + + // Support: Firefox 64+, Edge 18+ + // Some browsers don't support the "nonce" property on scripts. + // On the other hand, just using `getAttribute` is not enough as + // the `nonce` attribute is reset to an empty string whenever it + // becomes browsing-context connected. + // See https://github.com/whatwg/html/issues/2369 + // See https://html.spec.whatwg.org/#nonce-attributes + // The `node.getAttribute` check was added for the sake of + // `jQuery.globalEval` so that it can fake a nonce-containing node + // via an object. + val = node[ i ] || node.getAttribute && node.getAttribute( i ); + if ( val ) { + script.setAttribute( i, val ); + } + } + } + doc.head.appendChild( script ).parentNode.removeChild( script ); + } + + +function toType( obj ) { + if ( obj == null ) { + return obj + ""; + } + + // Support: Android <=2.3 only (functionish RegExp) + return typeof obj === "object" || typeof obj === "function" ? + class2type[ toString.call( obj ) ] || "object" : + typeof obj; +} +/* global Symbol */ +// Defining this global in .eslintrc.json would create a danger of using the global +// unguarded in another place, it seems safer to define global only for this module + + + +var + version = "3.5.1", + + // Define a local copy of jQuery + jQuery = function( selector, context ) { + + // The jQuery object is actually just the init constructor 'enhanced' + // Need init if jQuery is called (just allow error to be thrown if not included) + return new jQuery.fn.init( selector, context ); + }; + +jQuery.fn = jQuery.prototype = { + + // The current version of jQuery being used + jquery: version, + + constructor: jQuery, + + // The default length of a jQuery object is 0 + length: 0, + + toArray: function() { + return slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + + // Return all the elements in a clean array + if ( num == null ) { + return slice.call( this ); + } + + // Return just the one element from the set + return num < 0 ? this[ num + this.length ] : this[ num ]; + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + each: function( callback ) { + return jQuery.each( this, callback ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map( this, function( elem, i ) { + return callback.call( elem, i, elem ); + } ) ); + }, + + slice: function() { + return this.pushStack( slice.apply( this, arguments ) ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + even: function() { + return this.pushStack( jQuery.grep( this, function( _elem, i ) { + return ( i + 1 ) % 2; + } ) ); + }, + + odd: function() { + return this.pushStack( jQuery.grep( this, function( _elem, i ) { + return i % 2; + } ) ); + }, + + eq: function( i ) { + var len = this.length, + j = +i + ( i < 0 ? len : 0 ); + return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); + }, + + end: function() { + return this.prevObject || this.constructor(); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: push, + sort: arr.sort, + splice: arr.splice +}; + +jQuery.extend = jQuery.fn.extend = function() { + var options, name, src, copy, copyIsArray, clone, + target = arguments[ 0 ] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + + // Skip the boolean and the target + target = arguments[ i ] || {}; + i++; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !isFunction( target ) ) { + target = {}; + } + + // Extend jQuery itself if only one argument is passed + if ( i === length ) { + target = this; + i--; + } + + for ( ; i < length; i++ ) { + + // Only deal with non-null/undefined values + if ( ( options = arguments[ i ] ) != null ) { + + // Extend the base object + for ( name in options ) { + copy = options[ name ]; + + // Prevent Object.prototype pollution + // Prevent never-ending loop + if ( name === "__proto__" || target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject( copy ) || + ( copyIsArray = Array.isArray( copy ) ) ) ) { + src = target[ name ]; + + // Ensure proper type for the source value + if ( copyIsArray && !Array.isArray( src ) ) { + clone = []; + } else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) { + clone = {}; + } else { + clone = src; + } + copyIsArray = false; + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend( { + + // Unique for each copy of jQuery on the page + expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), + + // Assume jQuery is ready without the ready module + isReady: true, + + error: function( msg ) { + throw new Error( msg ); + }, + + noop: function() {}, + + isPlainObject: function( obj ) { + var proto, Ctor; + + // Detect obvious negatives + // Use toString instead of jQuery.type to catch host objects + if ( !obj || toString.call( obj ) !== "[object Object]" ) { + return false; + } + + proto = getProto( obj ); + + // Objects with no prototype (e.g., `Object.create( null )`) are plain + if ( !proto ) { + return true; + } + + // Objects with prototype are plain iff they were constructed by a global Object function + Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; + return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; + }, + + isEmptyObject: function( obj ) { + var name; + + for ( name in obj ) { + return false; + } + return true; + }, + + // Evaluates a script in a provided context; falls back to the global one + // if not specified. + globalEval: function( code, options, doc ) { + DOMEval( code, { nonce: options && options.nonce }, doc ); + }, + + each: function( obj, callback ) { + var length, i = 0; + + if ( isArrayLike( obj ) ) { + length = obj.length; + for ( ; i < length; i++ ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } else { + for ( i in obj ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } + + return obj; + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArrayLike( Object( arr ) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + return arr == null ? -1 : indexOf.call( arr, elem, i ); + }, + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + merge: function( first, second ) { + var len = +second.length, + j = 0, + i = first.length; + + for ( ; j < len; j++ ) { + first[ i++ ] = second[ j ]; + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, invert ) { + var callbackInverse, + matches = [], + i = 0, + length = elems.length, + callbackExpect = !invert; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + callbackInverse = !callback( elems[ i ], i ); + if ( callbackInverse !== callbackExpect ) { + matches.push( elems[ i ] ); + } + } + + return matches; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var length, value, + i = 0, + ret = []; + + // Go through the array, translating each of the items to their new values + if ( isArrayLike( elems ) ) { + length = elems.length; + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + } + + // Flatten any nested arrays + return flat( ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // jQuery.support is not used in Core but other projects attach their + // properties to it so it needs to exist. + support: support +} ); + +if ( typeof Symbol === "function" ) { + jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; +} + +// Populate the class2type map +jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), +function( _i, name ) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +} ); + +function isArrayLike( obj ) { + + // Support: real iOS 8.2 only (not reproducible in simulator) + // `in` check used to prevent JIT error (gh-2145) + // hasOwn isn't used here due to false negatives + // regarding Nodelist length in IE + var length = !!obj && "length" in obj && obj.length, + type = toType( obj ); + + if ( isFunction( obj ) || isWindow( obj ) ) { + return false; + } + + return type === "array" || length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj; +} +var Sizzle = +/*! + * Sizzle CSS Selector Engine v2.3.5 + * https://sizzlejs.com/ + * + * Copyright JS Foundation and other contributors + * Released under the MIT license + * https://js.foundation/ + * + * Date: 2020-03-14 + */ +( function( window ) { +var i, + support, + Expr, + getText, + isXML, + tokenize, + compile, + select, + outermostContext, + sortInput, + hasDuplicate, + + // Local document vars + setDocument, + document, + docElem, + documentIsHTML, + rbuggyQSA, + rbuggyMatches, + matches, + contains, + + // Instance-specific data + expando = "sizzle" + 1 * new Date(), + preferredDoc = window.document, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + nonnativeSelectorCache = createCache(), + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + } + return 0; + }, + + // Instance methods + hasOwn = ( {} ).hasOwnProperty, + arr = [], + pop = arr.pop, + pushNative = arr.push, + push = arr.push, + slice = arr.slice, + + // Use a stripped-down indexOf as it's faster than native + // https://jsperf.com/thor-indexof-vs-for/5 + indexOf = function( list, elem ) { + var i = 0, + len = list.length; + for ( ; i < len; i++ ) { + if ( list[ i ] === elem ) { + return i; + } + } + return -1; + }, + + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|" + + "ismap|loop|multiple|open|readonly|required|scoped", + + // Regular expressions + + // http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + + // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram + identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace + + "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", + + // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors + attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + + + // Operator (capture 2) + "*([*^$|!~]?=)" + whitespace + + + // "Attribute values must be CSS identifiers [capture 5] + // or strings [capture 3 or capture 4]" + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + + whitespace + "*\\]", + + pseudos = ":(" + identifier + ")(?:\\((" + + + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: + // 1. quoted (capture 3; capture 4 or capture 5) + "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + + + // 2. simple (capture 6) + "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + + + // 3. anything else (capture 2) + ".*" + + ")\\)|)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rwhitespace = new RegExp( whitespace + "+", "g" ), + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + + whitespace + "+$", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + + "*" ), + rdescend = new RegExp( whitespace + "|>" ), + + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + "ID": new RegExp( "^#(" + identifier + ")" ), + "CLASS": new RegExp( "^\\.(" + identifier + ")" ), + "TAG": new RegExp( "^(" + identifier + "|[*])" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + + whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + + whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), + + // For use in libraries implementing .is() + // We use this for POS matching in `select` + "needsContext": new RegExp( "^" + whitespace + + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace + + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rhtml = /HTML$/i, + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + rnative = /^[^{]+\{\s*\[native \w/, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + + rsibling = /[+~]/, + + // CSS escapes + // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\([^\\r\\n\\f])", "g" ), + funescape = function( escape, nonHex ) { + var high = "0x" + escape.slice( 1 ) - 0x10000; + + return nonHex ? + + // Strip the backslash prefix from a non-hex escape sequence + nonHex : + + // Replace a hexadecimal escape sequence with the encoded Unicode code point + // Support: IE <=11+ + // For values outside the Basic Multilingual Plane (BMP), manually construct a + // surrogate pair + high < 0 ? + String.fromCharCode( high + 0x10000 ) : + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }, + + // CSS string/identifier serialization + // https://drafts.csswg.org/cssom/#common-serializing-idioms + rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, + fcssescape = function( ch, asCodePoint ) { + if ( asCodePoint ) { + + // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER + if ( ch === "\0" ) { + return "\uFFFD"; + } + + // Control characters and (dependent upon position) numbers get escaped as code points + return ch.slice( 0, -1 ) + "\\" + + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; + } + + // Other potentially-special ASCII characters get backslash-escaped + return "\\" + ch; + }, + + // Used for iframes + // See setDocument() + // Removing the function wrapper causes a "Permission Denied" + // error in IE + unloadHandler = function() { + setDocument(); + }, + + inDisabledFieldset = addCombinator( + function( elem ) { + return elem.disabled === true && elem.nodeName.toLowerCase() === "fieldset"; + }, + { dir: "parentNode", next: "legend" } + ); + +// Optimize for push.apply( _, NodeList ) +try { + push.apply( + ( arr = slice.call( preferredDoc.childNodes ) ), + preferredDoc.childNodes + ); + + // Support: Android<4.0 + // Detect silently failing push.apply + // eslint-disable-next-line no-unused-expressions + arr[ preferredDoc.childNodes.length ].nodeType; +} catch ( e ) { + push = { apply: arr.length ? + + // Leverage slice if possible + function( target, els ) { + pushNative.apply( target, slice.call( els ) ); + } : + + // Support: IE<9 + // Otherwise append directly + function( target, els ) { + var j = target.length, + i = 0; + + // Can't trust NodeList.length + while ( ( target[ j++ ] = els[ i++ ] ) ) {} + target.length = j - 1; + } + }; +} + +function Sizzle( selector, context, results, seed ) { + var m, i, elem, nid, match, groups, newSelector, + newContext = context && context.ownerDocument, + + // nodeType defaults to 9, since context defaults to document + nodeType = context ? context.nodeType : 9; + + results = results || []; + + // Return early from calls with invalid selector or context + if ( typeof selector !== "string" || !selector || + nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { + + return results; + } + + // Try to shortcut find operations (as opposed to filters) in HTML documents + if ( !seed ) { + setDocument( context ); + context = context || document; + + if ( documentIsHTML ) { + + // If the selector is sufficiently simple, try using a "get*By*" DOM method + // (excepting DocumentFragment context, where the methods don't exist) + if ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) { + + // ID selector + if ( ( m = match[ 1 ] ) ) { + + // Document context + if ( nodeType === 9 ) { + if ( ( elem = context.getElementById( m ) ) ) { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + + // Element context + } else { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( newContext && ( elem = newContext.getElementById( m ) ) && + contains( context, elem ) && + elem.id === m ) { + + results.push( elem ); + return results; + } + } + + // Type selector + } else if ( match[ 2 ] ) { + push.apply( results, context.getElementsByTagName( selector ) ); + return results; + + // Class selector + } else if ( ( m = match[ 3 ] ) && support.getElementsByClassName && + context.getElementsByClassName ) { + + push.apply( results, context.getElementsByClassName( m ) ); + return results; + } + } + + // Take advantage of querySelectorAll + if ( support.qsa && + !nonnativeSelectorCache[ selector + " " ] && + ( !rbuggyQSA || !rbuggyQSA.test( selector ) ) && + + // Support: IE 8 only + // Exclude object elements + ( nodeType !== 1 || context.nodeName.toLowerCase() !== "object" ) ) { + + newSelector = selector; + newContext = context; + + // qSA considers elements outside a scoping root when evaluating child or + // descendant combinators, which is not what we want. + // In such cases, we work around the behavior by prefixing every selector in the + // list with an ID selector referencing the scope context. + // The technique has to be used as well when a leading combinator is used + // as such selectors are not recognized by querySelectorAll. + // Thanks to Andrew Dupont for this technique. + if ( nodeType === 1 && + ( rdescend.test( selector ) || rcombinators.test( selector ) ) ) { + + // Expand context for sibling selectors + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || + context; + + // We can use :scope instead of the ID hack if the browser + // supports it & if we're not changing the context. + if ( newContext !== context || !support.scope ) { + + // Capture the context ID, setting it first if necessary + if ( ( nid = context.getAttribute( "id" ) ) ) { + nid = nid.replace( rcssescape, fcssescape ); + } else { + context.setAttribute( "id", ( nid = expando ) ); + } + } + + // Prefix every selector in the list + groups = tokenize( selector ); + i = groups.length; + while ( i-- ) { + groups[ i ] = ( nid ? "#" + nid : ":scope" ) + " " + + toSelector( groups[ i ] ); + } + newSelector = groups.join( "," ); + } + + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch ( qsaError ) { + nonnativeSelectorCache( selector, true ); + } finally { + if ( nid === expando ) { + context.removeAttribute( "id" ); + } + } + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed ); +} + +/** + * Create key-value caches of limited size + * @returns {function(string, object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var keys = []; + + function cache( key, value ) { + + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key + " " ) > Expr.cacheLength ) { + + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return ( cache[ key + " " ] = value ); + } + return cache; +} + +/** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created element and returns a boolean result + */ +function assert( fn ) { + var el = document.createElement( "fieldset" ); + + try { + return !!fn( el ); + } catch ( e ) { + return false; + } finally { + + // Remove from its parent by default + if ( el.parentNode ) { + el.parentNode.removeChild( el ); + } + + // release memory in IE + el = null; + } +} + +/** + * Adds the same handler for all of the specified attrs + * @param {String} attrs Pipe-separated list of attributes + * @param {Function} handler The method that will be applied + */ +function addHandle( attrs, handler ) { + var arr = attrs.split( "|" ), + i = arr.length; + + while ( i-- ) { + Expr.attrHandle[ arr[ i ] ] = handler; + } +} + +/** + * Checks document order of two siblings + * @param {Element} a + * @param {Element} b + * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b + */ +function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && a.nodeType === 1 && b.nodeType === 1 && + a.sourceIndex - b.sourceIndex; + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( ( cur = cur.nextSibling ) ) { + if ( cur === b ) { + return -1; + } + } + } + + return a ? 1 : -1; +} + +/** + * Returns a function to use in pseudos for input types + * @param {String} type + */ +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for buttons + * @param {String} type + */ +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return ( name === "input" || name === "button" ) && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for :enabled/:disabled + * @param {Boolean} disabled true for :disabled; false for :enabled + */ +function createDisabledPseudo( disabled ) { + + // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable + return function( elem ) { + + // Only certain elements can match :enabled or :disabled + // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled + // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled + if ( "form" in elem ) { + + // Check for inherited disabledness on relevant non-disabled elements: + // * listed form-associated elements in a disabled fieldset + // https://html.spec.whatwg.org/multipage/forms.html#category-listed + // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled + // * option elements in a disabled optgroup + // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled + // All such elements have a "form" property. + if ( elem.parentNode && elem.disabled === false ) { + + // Option elements defer to a parent optgroup if present + if ( "label" in elem ) { + if ( "label" in elem.parentNode ) { + return elem.parentNode.disabled === disabled; + } else { + return elem.disabled === disabled; + } + } + + // Support: IE 6 - 11 + // Use the isDisabled shortcut property to check for disabled fieldset ancestors + return elem.isDisabled === disabled || + + // Where there is no isDisabled, check manually + /* jshint -W018 */ + elem.isDisabled !== !disabled && + inDisabledFieldset( elem ) === disabled; + } + + return elem.disabled === disabled; + + // Try to winnow out elements that can't be disabled before trusting the disabled property. + // Some victims get caught in our net (label, legend, menu, track), but it shouldn't + // even exist on them, let alone have a boolean value. + } else if ( "label" in elem ) { + return elem.disabled === disabled; + } + + // Remaining elements are neither :enabled nor :disabled + return false; + }; +} + +/** + * Returns a function to use in pseudos for positionals + * @param {Function} fn + */ +function createPositionalPseudo( fn ) { + return markFunction( function( argument ) { + argument = +argument; + return markFunction( function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; + + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ ( j = matchIndexes[ i ] ) ] ) { + seed[ j ] = !( matches[ j ] = seed[ j ] ); + } + } + } ); + } ); +} + +/** + * Checks a node for validity as a Sizzle context + * @param {Element|Object=} context + * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value + */ +function testContext( context ) { + return context && typeof context.getElementsByTagName !== "undefined" && context; +} + +// Expose support vars for convenience +support = Sizzle.support = {}; + +/** + * Detects XML nodes + * @param {Element|Object} elem An element or a document + * @returns {Boolean} True iff elem is a non-HTML XML node + */ +isXML = Sizzle.isXML = function( elem ) { + var namespace = elem.namespaceURI, + docElem = ( elem.ownerDocument || elem ).documentElement; + + // Support: IE <=8 + // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes + // https://bugs.jquery.com/ticket/4833 + return !rhtml.test( namespace || docElem && docElem.nodeName || "HTML" ); +}; + +/** + * Sets document-related variables once based on the current document + * @param {Element|Object} [doc] An element or document object to use to set the document + * @returns {Object} Returns the current document + */ +setDocument = Sizzle.setDocument = function( node ) { + var hasCompare, subWindow, + doc = node ? node.ownerDocument || node : preferredDoc; + + // Return early if doc is invalid or already selected + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) { + return document; + } + + // Update global variables + document = doc; + docElem = document.documentElement; + documentIsHTML = !isXML( document ); + + // Support: IE 9 - 11+, Edge 12 - 18+ + // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( preferredDoc != document && + ( subWindow = document.defaultView ) && subWindow.top !== subWindow ) { + + // Support: IE 11, Edge + if ( subWindow.addEventListener ) { + subWindow.addEventListener( "unload", unloadHandler, false ); + + // Support: IE 9 - 10 only + } else if ( subWindow.attachEvent ) { + subWindow.attachEvent( "onunload", unloadHandler ); + } + } + + // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only, + // Safari 4 - 5 only, Opera <=11.6 - 12.x only + // IE/Edge & older browsers don't support the :scope pseudo-class. + // Support: Safari 6.0 only + // Safari 6.0 supports :scope but it's an alias of :root there. + support.scope = assert( function( el ) { + docElem.appendChild( el ).appendChild( document.createElement( "div" ) ); + return typeof el.querySelectorAll !== "undefined" && + !el.querySelectorAll( ":scope fieldset div" ).length; + } ); + + /* Attributes + ---------------------------------------------------------------------- */ + + // Support: IE<8 + // Verify that getAttribute really returns attributes and not properties + // (excepting IE8 booleans) + support.attributes = assert( function( el ) { + el.className = "i"; + return !el.getAttribute( "className" ); + } ); + + /* getElement(s)By* + ---------------------------------------------------------------------- */ + + // Check if getElementsByTagName("*") returns only elements + support.getElementsByTagName = assert( function( el ) { + el.appendChild( document.createComment( "" ) ); + return !el.getElementsByTagName( "*" ).length; + } ); + + // Support: IE<9 + support.getElementsByClassName = rnative.test( document.getElementsByClassName ); + + // Support: IE<10 + // Check if getElementById returns elements by name + // The broken getElementById methods don't pick up programmatically-set names, + // so use a roundabout getElementsByName test + support.getById = assert( function( el ) { + docElem.appendChild( el ).id = expando; + return !document.getElementsByName || !document.getElementsByName( expando ).length; + } ); + + // ID filter and find + if ( support.getById ) { + Expr.filter[ "ID" ] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + return elem.getAttribute( "id" ) === attrId; + }; + }; + Expr.find[ "ID" ] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var elem = context.getElementById( id ); + return elem ? [ elem ] : []; + } + }; + } else { + Expr.filter[ "ID" ] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== "undefined" && + elem.getAttributeNode( "id" ); + return node && node.value === attrId; + }; + }; + + // Support: IE 6 - 7 only + // getElementById is not reliable as a find shortcut + Expr.find[ "ID" ] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var node, i, elems, + elem = context.getElementById( id ); + + if ( elem ) { + + // Verify the id attribute + node = elem.getAttributeNode( "id" ); + if ( node && node.value === id ) { + return [ elem ]; + } + + // Fall back on getElementsByName + elems = context.getElementsByName( id ); + i = 0; + while ( ( elem = elems[ i++ ] ) ) { + node = elem.getAttributeNode( "id" ); + if ( node && node.value === id ) { + return [ elem ]; + } + } + } + + return []; + } + }; + } + + // Tag + Expr.find[ "TAG" ] = support.getElementsByTagName ? + function( tag, context ) { + if ( typeof context.getElementsByTagName !== "undefined" ) { + return context.getElementsByTagName( tag ); + + // DocumentFragment nodes don't have gEBTN + } else if ( support.qsa ) { + return context.querySelectorAll( tag ); + } + } : + + function( tag, context ) { + var elem, + tmp = [], + i = 0, + + // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too + results = context.getElementsByTagName( tag ); + + // Filter out possible comments + if ( tag === "*" ) { + while ( ( elem = results[ i++ ] ) ) { + if ( elem.nodeType === 1 ) { + tmp.push( elem ); + } + } + + return tmp; + } + return results; + }; + + // Class + Expr.find[ "CLASS" ] = support.getElementsByClassName && function( className, context ) { + if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { + return context.getElementsByClassName( className ); + } + }; + + /* QSA/matchesSelector + ---------------------------------------------------------------------- */ + + // QSA and matchesSelector support + + // matchesSelector(:active) reports false when true (IE9/Opera 11.5) + rbuggyMatches = []; + + // qSa(:focus) reports false when true (Chrome 21) + // We allow this because of a bug in IE8/9 that throws an error + // whenever `document.activeElement` is accessed on an iframe + // So, we allow :focus to pass through QSA all the time to avoid the IE error + // See https://bugs.jquery.com/ticket/13378 + rbuggyQSA = []; + + if ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) { + + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert( function( el ) { + + var input; + + // Select is set to empty string on purpose + // This is to test IE's treatment of not explicitly + // setting a boolean content attribute, + // since its presence should be enough + // https://bugs.jquery.com/ticket/12359 + docElem.appendChild( el ).innerHTML = "" + + ""; + + // Support: IE8, Opera 11-12.16 + // Nothing should be selected when empty strings follow ^= or $= or *= + // The test attribute must be unknown in Opera but "safe" for WinRT + // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section + if ( el.querySelectorAll( "[msallowcapture^='']" ).length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); + } + + // Support: IE8 + // Boolean attributes and "value" are not treated correctly + if ( !el.querySelectorAll( "[selected]" ).length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); + } + + // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ + if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { + rbuggyQSA.push( "~=" ); + } + + // Support: IE 11+, Edge 15 - 18+ + // IE 11/Edge don't find elements on a `[name='']` query in some cases. + // Adding a temporary attribute to the document before the selection works + // around the issue. + // Interestingly, IE 10 & older don't seem to have the issue. + input = document.createElement( "input" ); + input.setAttribute( "name", "" ); + el.appendChild( input ); + if ( !el.querySelectorAll( "[name='']" ).length ) { + rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" + + whitespace + "*(?:''|\"\")" ); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here and will not see later tests + if ( !el.querySelectorAll( ":checked" ).length ) { + rbuggyQSA.push( ":checked" ); + } + + // Support: Safari 8+, iOS 8+ + // https://bugs.webkit.org/show_bug.cgi?id=136851 + // In-page `selector#id sibling-combinator selector` fails + if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { + rbuggyQSA.push( ".#.+[+~]" ); + } + + // Support: Firefox <=3.6 - 5 only + // Old Firefox doesn't throw on a badly-escaped identifier. + el.querySelectorAll( "\\\f" ); + rbuggyQSA.push( "[\\r\\n\\f]" ); + } ); + + assert( function( el ) { + el.innerHTML = "" + + ""; + + // Support: Windows 8 Native Apps + // The type and name attributes are restricted during .innerHTML assignment + var input = document.createElement( "input" ); + input.setAttribute( "type", "hidden" ); + el.appendChild( input ).setAttribute( "name", "D" ); + + // Support: IE8 + // Enforce case-sensitivity of name attribute + if ( el.querySelectorAll( "[name=d]" ).length ) { + rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); + } + + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here and will not see later tests + if ( el.querySelectorAll( ":enabled" ).length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Support: IE9-11+ + // IE's :disabled selector does not pick up the children of disabled fieldsets + docElem.appendChild( el ).disabled = true; + if ( el.querySelectorAll( ":disabled" ).length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Support: Opera 10 - 11 only + // Opera 10-11 does not throw on post-comma invalid pseudos + el.querySelectorAll( "*,:x" ); + rbuggyQSA.push( ",.*:" ); + } ); + } + + if ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches || + docElem.webkitMatchesSelector || + docElem.mozMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector ) ) ) ) { + + assert( function( el ) { + + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + support.disconnectedMatch = matches.call( el, "*" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( el, "[s!='']:x" ); + rbuggyMatches.push( "!=", pseudos ); + } ); + } + + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( "|" ) ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( "|" ) ); + + /* Contains + ---------------------------------------------------------------------- */ + hasCompare = rnative.test( docElem.compareDocumentPosition ); + + // Element contains another + // Purposefully self-exclusive + // As in, an element does not contain itself + contains = hasCompare || rnative.test( docElem.contains ) ? + function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && ( + adown.contains ? + adown.contains( bup ) : + a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 + ) ); + } : + function( a, b ) { + if ( b ) { + while ( ( b = b.parentNode ) ) { + if ( b === a ) { + return true; + } + } + } + return false; + }; + + /* Sorting + ---------------------------------------------------------------------- */ + + // Document order sorting + sortOrder = hasCompare ? + function( a, b ) { + + // Flag for duplicate removal + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + // Sort on method existence if only one input has compareDocumentPosition + var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; + if ( compare ) { + return compare; + } + + // Calculate position if both inputs belong to the same document + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + compare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ? + a.compareDocumentPosition( b ) : + + // Otherwise we know they are disconnected + 1; + + // Disconnected nodes + if ( compare & 1 || + ( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) { + + // Choose the first element that is related to our preferred document + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( a == document || a.ownerDocument == preferredDoc && + contains( preferredDoc, a ) ) { + return -1; + } + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( b == document || b.ownerDocument == preferredDoc && + contains( preferredDoc, b ) ) { + return 1; + } + + // Maintain original order + return sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + } + + return compare & 4 ? -1 : 1; + } : + function( a, b ) { + + // Exit early if the nodes are identical + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + var cur, + i = 0, + aup = a.parentNode, + bup = b.parentNode, + ap = [ a ], + bp = [ b ]; + + // Parentless nodes are either documents or disconnected + if ( !aup || !bup ) { + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + /* eslint-disable eqeqeq */ + return a == document ? -1 : + b == document ? 1 : + /* eslint-enable eqeqeq */ + aup ? -1 : + bup ? 1 : + sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + + // If the nodes are siblings, we can do a quick check + } else if ( aup === bup ) { + return siblingCheck( a, b ); + } + + // Otherwise we need full lists of their ancestors for comparison + cur = a; + while ( ( cur = cur.parentNode ) ) { + ap.unshift( cur ); + } + cur = b; + while ( ( cur = cur.parentNode ) ) { + bp.unshift( cur ); + } + + // Walk down the tree looking for a discrepancy + while ( ap[ i ] === bp[ i ] ) { + i++; + } + + return i ? + + // Do a sibling check if the nodes have a common ancestor + siblingCheck( ap[ i ], bp[ i ] ) : + + // Otherwise nodes in our document sort first + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + /* eslint-disable eqeqeq */ + ap[ i ] == preferredDoc ? -1 : + bp[ i ] == preferredDoc ? 1 : + /* eslint-enable eqeqeq */ + 0; + }; + + return document; +}; + +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { + setDocument( elem ); + + if ( support.matchesSelector && documentIsHTML && + !nonnativeSelectorCache[ expr + " " ] && + ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && + ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { + + try { + var ret = matches.call( elem, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || support.disconnectedMatch || + + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch ( e ) { + nonnativeSelectorCache( expr, true ); + } + } + + return Sizzle( expr, document, null, [ elem ] ).length > 0; +}; + +Sizzle.contains = function( context, elem ) { + + // Set document vars if needed + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( ( context.ownerDocument || context ) != document ) { + setDocument( context ); + } + return contains( context, elem ); +}; + +Sizzle.attr = function( elem, name ) { + + // Set document vars if needed + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( ( elem.ownerDocument || elem ) != document ) { + setDocument( elem ); + } + + var fn = Expr.attrHandle[ name.toLowerCase() ], + + // Don't get fooled by Object.prototype properties (jQuery #13807) + val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? + fn( elem, name, !documentIsHTML ) : + undefined; + + return val !== undefined ? + val : + support.attributes || !documentIsHTML ? + elem.getAttribute( name ) : + ( val = elem.getAttributeNode( name ) ) && val.specified ? + val.value : + null; +}; + +Sizzle.escape = function( sel ) { + return ( sel + "" ).replace( rcssescape, fcssescape ); +}; + +Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +/** + * Document sorting and removing duplicates + * @param {ArrayLike} results + */ +Sizzle.uniqueSort = function( results ) { + var elem, + duplicates = [], + j = 0, + i = 0; + + // Unless we *know* we can detect duplicates, assume their presence + hasDuplicate = !support.detectDuplicates; + sortInput = !support.sortStable && results.slice( 0 ); + results.sort( sortOrder ); + + if ( hasDuplicate ) { + while ( ( elem = results[ i++ ] ) ) { + if ( elem === results[ i ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + results.splice( duplicates[ j ], 1 ); + } + } + + // Clear input after sorting to release objects + // See https://github.com/jquery/sizzle/pull/225 + sortInput = null; + + return results; +}; + +/** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +getText = Sizzle.getText = function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( !nodeType ) { + + // If no nodeType, this is expected to be an array + while ( ( node = elem[ i++ ] ) ) { + + // Do not traverse comment nodes + ret += getText( node ); + } + } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + + // Use textContent for elements + // innerText usage removed for consistency of new lines (jQuery #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + + // Do not include comment or processing instruction nodes + + return ret; +}; + +Expr = Sizzle.selectors = { + + // Can be adjusted by the user + cacheLength: 50, + + createPseudo: markFunction, + + match: matchExpr, + + attrHandle: {}, + + find: {}, + + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, + + preFilter: { + "ATTR": function( match ) { + match[ 1 ] = match[ 1 ].replace( runescape, funescape ); + + // Move the given value to match[3] whether quoted or unquoted + match[ 3 ] = ( match[ 3 ] || match[ 4 ] || + match[ 5 ] || "" ).replace( runescape, funescape ); + + if ( match[ 2 ] === "~=" ) { + match[ 3 ] = " " + match[ 3 ] + " "; + } + + return match.slice( 0, 4 ); + }, + + "CHILD": function( match ) { + + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 what (child|of-type) + 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 4 xn-component of xn+y argument ([+-]?\d*n|) + 5 sign of xn-component + 6 x of xn-component + 7 sign of y-component + 8 y of y-component + */ + match[ 1 ] = match[ 1 ].toLowerCase(); + + if ( match[ 1 ].slice( 0, 3 ) === "nth" ) { + + // nth-* requires argument + if ( !match[ 3 ] ) { + Sizzle.error( match[ 0 ] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[ 4 ] = +( match[ 4 ] ? + match[ 5 ] + ( match[ 6 ] || 1 ) : + 2 * ( match[ 3 ] === "even" || match[ 3 ] === "odd" ) ); + match[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === "odd" ); + + // other types prohibit arguments + } else if ( match[ 3 ] ) { + Sizzle.error( match[ 0 ] ); + } + + return match; + }, + + "PSEUDO": function( match ) { + var excess, + unquoted = !match[ 6 ] && match[ 2 ]; + + if ( matchExpr[ "CHILD" ].test( match[ 0 ] ) ) { + return null; + } + + // Accept quoted arguments as-is + if ( match[ 3 ] ) { + match[ 2 ] = match[ 4 ] || match[ 5 ] || ""; + + // Strip excess characters from unquoted arguments + } else if ( unquoted && rpseudo.test( unquoted ) && + + // Get excess from tokenize (recursively) + ( excess = tokenize( unquoted, true ) ) && + + // advance to the next closing parenthesis + ( excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length ) ) { + + // excess is a negative index + match[ 0 ] = match[ 0 ].slice( 0, excess ); + match[ 2 ] = unquoted.slice( 0, excess ); + } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); + } + }, + + filter: { + + "TAG": function( nodeNameSelector ) { + var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); + return nodeNameSelector === "*" ? + function() { + return true; + } : + function( elem ) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + + "CLASS": function( className ) { + var pattern = classCache[ className + " " ]; + + return pattern || + ( pattern = new RegExp( "(^|" + whitespace + + ")" + className + "(" + whitespace + "|$)" ) ) && classCache( + className, function( elem ) { + return pattern.test( + typeof elem.className === "string" && elem.className || + typeof elem.getAttribute !== "undefined" && + elem.getAttribute( "class" ) || + "" + ); + } ); + }, + + "ATTR": function( name, operator, check ) { + return function( elem ) { + var result = Sizzle.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + /* eslint-disable max-len */ + + return operator === "=" ? result === check : + operator === "!=" ? result !== check : + operator === "^=" ? check && result.indexOf( check ) === 0 : + operator === "*=" ? check && result.indexOf( check ) > -1 : + operator === "$=" ? check && result.slice( -check.length ) === check : + operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : + operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : + false; + /* eslint-enable max-len */ + + }; + }, + + "CHILD": function( type, what, _argument, first, last ) { + var simple = type.slice( 0, 3 ) !== "nth", + forward = type.slice( -4 ) !== "last", + ofType = what === "of-type"; + + return first === 1 && last === 0 ? + + // Shortcut for :nth-*(n) + function( elem ) { + return !!elem.parentNode; + } : + + function( elem, _context, xml ) { + var cache, uniqueCache, outerCache, node, nodeIndex, start, + dir = simple !== forward ? "nextSibling" : "previousSibling", + parent = elem.parentNode, + name = ofType && elem.nodeName.toLowerCase(), + useCache = !xml && !ofType, + diff = false; + + if ( parent ) { + + // :(first|last|only)-(child|of-type) + if ( simple ) { + while ( dir ) { + node = elem; + while ( ( node = node[ dir ] ) ) { + if ( ofType ? + node.nodeName.toLowerCase() === name : + node.nodeType === 1 ) { + + return false; + } + } + + // Reverse direction for :only-* (if we haven't yet done so) + start = dir = type === "only" && !start && "nextSibling"; + } + return true; + } + + start = [ forward ? parent.firstChild : parent.lastChild ]; + + // non-xml :nth-child(...) stores cache data on `parent` + if ( forward && useCache ) { + + // Seek `elem` from a previously-cached index + + // ...in a gzip-friendly way + node = parent; + outerCache = node[ expando ] || ( node[ expando ] = {} ); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + ( outerCache[ node.uniqueID ] = {} ); + + cache = uniqueCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex && cache[ 2 ]; + node = nodeIndex && parent.childNodes[ nodeIndex ]; + + while ( ( node = ++nodeIndex && node && node[ dir ] || + + // Fallback to seeking `elem` from the start + ( diff = nodeIndex = 0 ) || start.pop() ) ) { + + // When found, cache indexes on `parent` and break + if ( node.nodeType === 1 && ++diff && node === elem ) { + uniqueCache[ type ] = [ dirruns, nodeIndex, diff ]; + break; + } + } + + } else { + + // Use previously-cached element index if available + if ( useCache ) { + + // ...in a gzip-friendly way + node = elem; + outerCache = node[ expando ] || ( node[ expando ] = {} ); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + ( outerCache[ node.uniqueID ] = {} ); + + cache = uniqueCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex; + } + + // xml :nth-child(...) + // or :nth-last-child(...) or :nth(-last)?-of-type(...) + if ( diff === false ) { + + // Use the same loop as above to seek `elem` from the start + while ( ( node = ++nodeIndex && node && node[ dir ] || + ( diff = nodeIndex = 0 ) || start.pop() ) ) { + + if ( ( ofType ? + node.nodeName.toLowerCase() === name : + node.nodeType === 1 ) && + ++diff ) { + + // Cache the index of each encountered element + if ( useCache ) { + outerCache = node[ expando ] || + ( node[ expando ] = {} ); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + ( outerCache[ node.uniqueID ] = {} ); + + uniqueCache[ type ] = [ dirruns, diff ]; + } + + if ( node === elem ) { + break; + } + } + } + } + } + + // Incorporate the offset, then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + } + }; + }, + + "PSEUDO": function( pseudo, argument ) { + + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + Sizzle.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as Sizzle does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction( function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf( seed, matched[ i ] ); + seed[ idx ] = !( matches[ idx ] = matched[ i ] ); + } + } ) : + function( elem ) { + return fn( elem, 0, args ); + }; + } + + return fn; + } + }, + + pseudos: { + + // Potentially complex pseudos + "not": markFunction( function( selector ) { + + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrim, "$1" ) ); + + return matcher[ expando ] ? + markFunction( function( seed, matches, _context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( ( elem = unmatched[ i ] ) ) { + seed[ i ] = !( matches[ i ] = elem ); + } + } + } ) : + function( elem, _context, xml ) { + input[ 0 ] = elem; + matcher( input, null, xml, results ); + + // Don't keep the element (issue #299) + input[ 0 ] = null; + return !results.pop(); + }; + } ), + + "has": markFunction( function( selector ) { + return function( elem ) { + return Sizzle( selector, elem ).length > 0; + }; + } ), + + "contains": markFunction( function( text ) { + text = text.replace( runescape, funescape ); + return function( elem ) { + return ( elem.textContent || getText( elem ) ).indexOf( text ) > -1; + }; + } ), + + // "Whether an element is represented by a :lang() selector + // is based solely on the element's language value + // being equal to the identifier C, + // or beginning with the identifier C immediately followed by "-". + // The matching of C against the element's language value is performed case-insensitively. + // The identifier C does not have to be a valid language name." + // http://www.w3.org/TR/selectors/#lang-pseudo + "lang": markFunction( function( lang ) { + + // lang value must be a valid identifier + if ( !ridentifier.test( lang || "" ) ) { + Sizzle.error( "unsupported lang: " + lang ); + } + lang = lang.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + var elemLang; + do { + if ( ( elemLang = documentIsHTML ? + elem.lang : + elem.getAttribute( "xml:lang" ) || elem.getAttribute( "lang" ) ) ) { + + elemLang = elemLang.toLowerCase(); + return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; + } + } while ( ( elem = elem.parentNode ) && elem.nodeType === 1 ); + return false; + }; + } ), + + // Miscellaneous + "target": function( elem ) { + var hash = window.location && window.location.hash; + return hash && hash.slice( 1 ) === elem.id; + }, + + "root": function( elem ) { + return elem === docElem; + }, + + "focus": function( elem ) { + return elem === document.activeElement && + ( !document.hasFocus || document.hasFocus() ) && + !!( elem.type || elem.href || ~elem.tabIndex ); + }, + + // Boolean properties + "enabled": createDisabledPseudo( false ), + "disabled": createDisabledPseudo( true ), + + "checked": function( elem ) { + + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return ( nodeName === "input" && !!elem.checked ) || + ( nodeName === "option" && !!elem.selected ); + }, + + "selected": function( elem ) { + + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + // eslint-disable-next-line no-unused-expressions + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + // Contents + "empty": function( elem ) { + + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), + // but not by others (comment: 8; processing instruction: 7; etc.) + // nodeType < 6 works because attributes (2) do not appear as children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + if ( elem.nodeType < 6 ) { + return false; + } + } + return true; + }, + + "parent": function( elem ) { + return !Expr.pseudos[ "empty" ]( elem ); + }, + + // Element/input types + "header": function( elem ) { + return rheader.test( elem.nodeName ); + }, + + "input": function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + "button": function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === "button" || name === "button"; + }, + + "text": function( elem ) { + var attr; + return elem.nodeName.toLowerCase() === "input" && + elem.type === "text" && + + // Support: IE<8 + // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" + ( ( attr = elem.getAttribute( "type" ) ) == null || + attr.toLowerCase() === "text" ); + }, + + // Position-in-collection + "first": createPositionalPseudo( function() { + return [ 0 ]; + } ), + + "last": createPositionalPseudo( function( _matchIndexes, length ) { + return [ length - 1 ]; + } ), + + "eq": createPositionalPseudo( function( _matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + } ), + + "even": createPositionalPseudo( function( matchIndexes, length ) { + var i = 0; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + } ), + + "odd": createPositionalPseudo( function( matchIndexes, length ) { + var i = 1; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + } ), + + "lt": createPositionalPseudo( function( matchIndexes, length, argument ) { + var i = argument < 0 ? + argument + length : + argument > length ? + length : + argument; + for ( ; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + } ), + + "gt": createPositionalPseudo( function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; ++i < length; ) { + matchIndexes.push( i ); + } + return matchIndexes; + } ) + } +}; + +Expr.pseudos[ "nth" ] = Expr.pseudos[ "eq" ]; + +// Add button/input type pseudos +for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { + Expr.pseudos[ i ] = createInputPseudo( i ); +} +for ( i in { submit: true, reset: true } ) { + Expr.pseudos[ i ] = createButtonPseudo( i ); +} + +// Easy API for creating new setFilters +function setFilters() {} +setFilters.prototype = Expr.filters = Expr.pseudos; +Expr.setFilters = new setFilters(); + +tokenize = Sizzle.tokenize = function( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || ( match = rcomma.exec( soFar ) ) ) { + if ( match ) { + + // Don't consume trailing commas as valid + soFar = soFar.slice( match[ 0 ].length ) || soFar; + } + groups.push( ( tokens = [] ) ); + } + + matched = false; + + // Combinators + if ( ( match = rcombinators.exec( soFar ) ) ) { + matched = match.shift(); + tokens.push( { + value: matched, + + // Cast descendant combinators to space + type: match[ 0 ].replace( rtrim, " " ) + } ); + soFar = soFar.slice( matched.length ); + } + + // Filters + for ( type in Expr.filter ) { + if ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] || + ( match = preFilters[ type ]( match ) ) ) ) { + matched = match.shift(); + tokens.push( { + value: matched, + type: type, + matches: match + } ); + soFar = soFar.slice( matched.length ); + } + } + + if ( !matched ) { + break; + } + } + + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + return parseOnly ? + soFar.length : + soFar ? + Sizzle.error( selector ) : + + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +}; + +function toSelector( tokens ) { + var i = 0, + len = tokens.length, + selector = ""; + for ( ; i < len; i++ ) { + selector += tokens[ i ].value; + } + return selector; +} + +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + skip = combinator.next, + key = skip || dir, + checkNonElements = base && key === "parentNode", + doneName = done++; + + return combinator.first ? + + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( ( elem = elem[ dir ] ) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + return matcher( elem, context, xml ); + } + } + return false; + } : + + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + var oldCache, uniqueCache, outerCache, + newCache = [ dirruns, doneName ]; + + // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching + if ( xml ) { + while ( ( elem = elem[ dir ] ) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + if ( matcher( elem, context, xml ) ) { + return true; + } + } + } + } else { + while ( ( elem = elem[ dir ] ) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + outerCache = elem[ expando ] || ( elem[ expando ] = {} ); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ elem.uniqueID ] || + ( outerCache[ elem.uniqueID ] = {} ); + + if ( skip && skip === elem.nodeName.toLowerCase() ) { + elem = elem[ dir ] || elem; + } else if ( ( oldCache = uniqueCache[ key ] ) && + oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { + + // Assign to newCache so results back-propagate to previous elements + return ( newCache[ 2 ] = oldCache[ 2 ] ); + } else { + + // Reuse newcache so results back-propagate to previous elements + uniqueCache[ key ] = newCache; + + // A match means we're done; a fail means we have to keep checking + if ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) { + return true; + } + } + } + } + } + return false; + }; +} + +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[ i ]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[ 0 ]; +} + +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[ i ], results ); + } + return results; +} + +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( ( elem = unmatched[ i ] ) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } + } + + return newUnmatched; +} + +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction( function( seed, results, context, xml ) { + var temp, i, elem, + preMap = [], + postMap = [], + preexisting = results.length, + + // Get initial elements from seed or context + elems = seed || multipleContexts( + selector || "*", + context.nodeType ? [ context ] : context, + [] + ), + + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems, + + matcherOut = matcher ? + + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, + postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + + // ...intermediate processing is necessary + [] : + + // ...otherwise use results directly + results : + matcherIn; + + // Find primary matches + if ( matcher ) { + matcher( matcherIn, matcherOut, context, xml ); + } + + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); + + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( ( elem = temp[ i ] ) ) { + matcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem ); + } + } + } + + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( ( elem = matcherOut[ i ] ) ) { + + // Restore matcherIn since elem is not yet a final match + temp.push( ( matcherIn[ i ] = elem ) ); + } + } + postFinder( null, ( matcherOut = [] ), temp, xml ); + } + + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( ( elem = matcherOut[ i ] ) && + ( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) { + + seed[ temp ] = !( results[ temp ] = elem ); + } + } + } + + // Add elements to results, through postFinder if defined + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + } ); +} + +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[ 0 ].type ], + implicitRelative = leadingRelative || Expr.relative[ " " ], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + ( checkContext = context ).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + + // Avoid hanging onto element (issue #299) + checkContext = null; + return ret; + } ]; + + for ( ; i < len; i++ ) { + if ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) { + matchers = [ addCombinator( elementMatcher( matchers ), matcher ) ]; + } else { + matcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[ j ].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && toSelector( + + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens + .slice( 0, i - 1 ) + .concat( { value: tokens[ i - 2 ].type === " " ? "*" : "" } ) + ).replace( rtrim, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ), + j < len && toSelector( tokens ) + ); + } + matchers.push( matcher ); + } + } + + return elementMatcher( matchers ); +} + +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + var bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, outermost ) { + var elem, j, matcher, + matchedCount = 0, + i = "0", + unmatched = seed && [], + setMatched = [], + contextBackup = outermostContext, + + // We must always have either seed elements or outermost context + elems = seed || byElement && Expr.find[ "TAG" ]( "*", outermost ), + + // Use integer dirruns iff this is the outermost matcher + dirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ), + len = elems.length; + + if ( outermost ) { + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + outermostContext = context == document || context || outermost; + } + + // Add elements passing elementMatchers directly to results + // Support: IE<9, Safari + // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id + for ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) { + if ( byElement && elem ) { + j = 0; + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( !context && elem.ownerDocument != document ) { + setDocument( elem ); + xml = !documentIsHTML; + } + while ( ( matcher = elementMatchers[ j++ ] ) ) { + if ( matcher( elem, context || document, xml ) ) { + results.push( elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + } + } + + // Track unmatched elements for set filters + if ( bySet ) { + + // They will have gone through all possible matchers + if ( ( elem = !matcher && elem ) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } + + // `i` is now the count of elements visited above, and adding it to `matchedCount` + // makes the latter nonnegative. + matchedCount += i; + + // Apply set filters to unmatched elements + // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` + // equals `i`), unless we didn't visit _any_ elements in the above loop because we have + // no element matchers and no seed. + // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that + // case, which will result in a "00" `matchedCount` that differs from `i` but is also + // numerically zero. + if ( bySet && i !== matchedCount ) { + j = 0; + while ( ( matcher = setMatchers[ j++ ] ) ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !( unmatched[ i ] || setMatched[ i ] ) ) { + setMatched[ i ] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + Sizzle.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + return bySet ? + markFunction( superMatcher ) : + superMatcher; +} + +compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ selector + " " ]; + + if ( !cached ) { + + // Generate a function of recursive functions that can be used to check each element + if ( !match ) { + match = tokenize( selector ); + } + i = match.length; + while ( i-- ) { + cached = matcherFromTokens( match[ i ] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } + + // Cache the compiled function + cached = compilerCache( + selector, + matcherFromGroupMatchers( elementMatchers, setMatchers ) + ); + + // Save selector and tokenization + cached.selector = selector; + } + return cached; +}; + +/** + * A low-level selection function that works with Sizzle's compiled + * selector functions + * @param {String|Function} selector A selector or a pre-compiled + * selector function built with Sizzle.compile + * @param {Element} context + * @param {Array} [results] + * @param {Array} [seed] A set of elements to match against + */ +select = Sizzle.select = function( selector, context, results, seed ) { + var i, tokens, token, type, find, + compiled = typeof selector === "function" && selector, + match = !seed && tokenize( ( selector = compiled.selector || selector ) ); + + results = results || []; + + // Try to minimize operations if there is only one selector in the list and no seed + // (the latter of which guarantees us context) + if ( match.length === 1 ) { + + // Reduce context if the leading compound selector is an ID + tokens = match[ 0 ] = match[ 0 ].slice( 0 ); + if ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === "ID" && + context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) { + + context = ( Expr.find[ "ID" ]( token.matches[ 0 ] + .replace( runescape, funescape ), context ) || [] )[ 0 ]; + if ( !context ) { + return results; + + // Precompiled matchers will still verify ancestry, so step up a level + } else if ( compiled ) { + context = context.parentNode; + } + + selector = selector.slice( tokens.shift().value.length ); + } + + // Fetch a seed set for right-to-left matching + i = matchExpr[ "needsContext" ].test( selector ) ? 0 : tokens.length; + while ( i-- ) { + token = tokens[ i ]; + + // Abort if we hit a combinator + if ( Expr.relative[ ( type = token.type ) ] ) { + break; + } + if ( ( find = Expr.find[ type ] ) ) { + + // Search, expanding context for leading sibling combinators + if ( ( seed = find( + token.matches[ 0 ].replace( runescape, funescape ), + rsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) || + context + ) ) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && toSelector( tokens ); + if ( !selector ) { + push.apply( results, seed ); + return results; + } + + break; + } + } + } + } + + // Compile and execute a filtering function if one is not provided + // Provide `match` to avoid retokenization if we modified the selector above + ( compiled || compile( selector, match ) )( + seed, + context, + !documentIsHTML, + results, + !context || rsibling.test( selector ) && testContext( context.parentNode ) || context + ); + return results; +}; + +// One-time assignments + +// Sort stability +support.sortStable = expando.split( "" ).sort( sortOrder ).join( "" ) === expando; + +// Support: Chrome 14-35+ +// Always assume duplicates if they aren't passed to the comparison function +support.detectDuplicates = !!hasDuplicate; + +// Initialize against the default document +setDocument(); + +// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) +// Detached nodes confoundingly follow *each other* +support.sortDetached = assert( function( el ) { + + // Should return 1, but returns 4 (following) + return el.compareDocumentPosition( document.createElement( "fieldset" ) ) & 1; +} ); + +// Support: IE<8 +// Prevent attribute/property "interpolation" +// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !assert( function( el ) { + el.innerHTML = ""; + return el.firstChild.getAttribute( "href" ) === "#"; +} ) ) { + addHandle( "type|href|height|width", function( elem, name, isXML ) { + if ( !isXML ) { + return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); + } + } ); +} + +// Support: IE<9 +// Use defaultValue in place of getAttribute("value") +if ( !support.attributes || !assert( function( el ) { + el.innerHTML = ""; + el.firstChild.setAttribute( "value", "" ); + return el.firstChild.getAttribute( "value" ) === ""; +} ) ) { + addHandle( "value", function( elem, _name, isXML ) { + if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { + return elem.defaultValue; + } + } ); +} + +// Support: IE<9 +// Use getAttributeNode to fetch booleans when getAttribute lies +if ( !assert( function( el ) { + return el.getAttribute( "disabled" ) == null; +} ) ) { + addHandle( booleans, function( elem, name, isXML ) { + var val; + if ( !isXML ) { + return elem[ name ] === true ? name.toLowerCase() : + ( val = elem.getAttributeNode( name ) ) && val.specified ? + val.value : + null; + } + } ); +} + +return Sizzle; + +} )( window ); + + + +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; + +// Deprecated +jQuery.expr[ ":" ] = jQuery.expr.pseudos; +jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; +jQuery.escapeSelector = Sizzle.escape; + + + + +var dir = function( elem, dir, until ) { + var matched = [], + truncate = until !== undefined; + + while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { + if ( elem.nodeType === 1 ) { + if ( truncate && jQuery( elem ).is( until ) ) { + break; + } + matched.push( elem ); + } + } + return matched; +}; + + +var siblings = function( n, elem ) { + var matched = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + matched.push( n ); + } + } + + return matched; +}; + + +var rneedsContext = jQuery.expr.match.needsContext; + + + +function nodeName( elem, name ) { + + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + +}; +var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); + + + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, not ) { + if ( isFunction( qualifier ) ) { + return jQuery.grep( elements, function( elem, i ) { + return !!qualifier.call( elem, i, elem ) !== not; + } ); + } + + // Single element + if ( qualifier.nodeType ) { + return jQuery.grep( elements, function( elem ) { + return ( elem === qualifier ) !== not; + } ); + } + + // Arraylike of elements (jQuery, arguments, Array) + if ( typeof qualifier !== "string" ) { + return jQuery.grep( elements, function( elem ) { + return ( indexOf.call( qualifier, elem ) > -1 ) !== not; + } ); + } + + // Filtered directly for both simple and complex selectors + return jQuery.filter( qualifier, elements, not ); +} + +jQuery.filter = function( expr, elems, not ) { + var elem = elems[ 0 ]; + + if ( not ) { + expr = ":not(" + expr + ")"; + } + + if ( elems.length === 1 && elem.nodeType === 1 ) { + return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : []; + } + + return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { + return elem.nodeType === 1; + } ) ); +}; + +jQuery.fn.extend( { + find: function( selector ) { + var i, ret, + len = this.length, + self = this; + + if ( typeof selector !== "string" ) { + return this.pushStack( jQuery( selector ).filter( function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + } ) ); + } + + ret = this.pushStack( [] ); + + for ( i = 0; i < len; i++ ) { + jQuery.find( selector, self[ i ], ret ); + } + + return len > 1 ? jQuery.uniqueSort( ret ) : ret; + }, + filter: function( selector ) { + return this.pushStack( winnow( this, selector || [], false ) ); + }, + not: function( selector ) { + return this.pushStack( winnow( this, selector || [], true ) ); + }, + is: function( selector ) { + return !!winnow( + this, + + // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + typeof selector === "string" && rneedsContext.test( selector ) ? + jQuery( selector ) : + selector || [], + false + ).length; + } +} ); + + +// Initialize a jQuery object + + +// A central reference to the root jQuery(document) +var rootjQuery, + + // A simple way to check for HTML strings + // Prioritize #id over to avoid XSS via location.hash (#9521) + // Strict HTML recognition (#11290: must start with <) + // Shortcut simple #id case for speed + rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, + + init = jQuery.fn.init = function( selector, context, root ) { + var match, elem; + + // HANDLE: $(""), $(null), $(undefined), $(false) + if ( !selector ) { + return this; + } + + // Method init() accepts an alternate rootjQuery + // so migrate can support jQuery.sub (gh-2101) + root = root || rootjQuery; + + // Handle HTML strings + if ( typeof selector === "string" ) { + if ( selector[ 0 ] === "<" && + selector[ selector.length - 1 ] === ">" && + selector.length >= 3 ) { + + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = rquickExpr.exec( selector ); + } + + // Match html or make sure no context is specified for #id + if ( match && ( match[ 1 ] || !context ) ) { + + // HANDLE: $(html) -> $(array) + if ( match[ 1 ] ) { + context = context instanceof jQuery ? context[ 0 ] : context; + + // Option to run scripts is true for back-compat + // Intentionally let the error be thrown if parseHTML is not present + jQuery.merge( this, jQuery.parseHTML( + match[ 1 ], + context && context.nodeType ? context.ownerDocument || context : document, + true + ) ); + + // HANDLE: $(html, props) + if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) { + for ( match in context ) { + + // Properties of context are called as methods if possible + if ( isFunction( this[ match ] ) ) { + this[ match ]( context[ match ] ); + + // ...and otherwise set as attributes + } else { + this.attr( match, context[ match ] ); + } + } + } + + return this; + + // HANDLE: $(#id) + } else { + elem = document.getElementById( match[ 2 ] ); + + if ( elem ) { + + // Inject the element directly into the jQuery object + this[ 0 ] = elem; + this.length = 1; + } + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return ( context || root ).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(DOMElement) + } else if ( selector.nodeType ) { + this[ 0 ] = selector; + this.length = 1; + return this; + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( isFunction( selector ) ) { + return root.ready !== undefined ? + root.ready( selector ) : + + // Execute immediately if ready is not present + selector( jQuery ); + } + + return jQuery.makeArray( selector, this ); + }; + +// Give the init function the jQuery prototype for later instantiation +init.prototype = jQuery.fn; + +// Initialize central reference +rootjQuery = jQuery( document ); + + +var rparentsprev = /^(?:parents|prev(?:Until|All))/, + + // Methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.fn.extend( { + has: function( target ) { + var targets = jQuery( target, this ), + l = targets.length; + + return this.filter( function() { + var i = 0; + for ( ; i < l; i++ ) { + if ( jQuery.contains( this, targets[ i ] ) ) { + return true; + } + } + } ); + }, + + closest: function( selectors, context ) { + var cur, + i = 0, + l = this.length, + matched = [], + targets = typeof selectors !== "string" && jQuery( selectors ); + + // Positional selectors never match, since there's no _selection_ context + if ( !rneedsContext.test( selectors ) ) { + for ( ; i < l; i++ ) { + for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) { + + // Always skip document fragments + if ( cur.nodeType < 11 && ( targets ? + targets.index( cur ) > -1 : + + // Don't pass non-elements to Sizzle + cur.nodeType === 1 && + jQuery.find.matchesSelector( cur, selectors ) ) ) { + + matched.push( cur ); + break; + } + } + } + } + + return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched ); + }, + + // Determine the position of an element within the set + index: function( elem ) { + + // No argument, return index in parent + if ( !elem ) { + return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; + } + + // Index in selector + if ( typeof elem === "string" ) { + return indexOf.call( jQuery( elem ), this[ 0 ] ); + } + + // Locate the position of the desired element + return indexOf.call( this, + + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[ 0 ] : elem + ); + }, + + add: function( selector, context ) { + return this.pushStack( + jQuery.uniqueSort( + jQuery.merge( this.get(), jQuery( selector, context ) ) + ) + ); + }, + + addBack: function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter( selector ) + ); + } +} ); + +function sibling( cur, dir ) { + while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {} + return cur; +} + +jQuery.each( { + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, _i, until ) { + return dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return sibling( elem, "nextSibling" ); + }, + prev: function( elem ) { + return sibling( elem, "previousSibling" ); + }, + nextAll: function( elem ) { + return dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, _i, until ) { + return dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, _i, until ) { + return dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return siblings( ( elem.parentNode || {} ).firstChild, elem ); + }, + children: function( elem ) { + return siblings( elem.firstChild ); + }, + contents: function( elem ) { + if ( elem.contentDocument != null && + + // Support: IE 11+ + // elements with no `data` attribute has an object + // `contentDocument` with a `null` prototype. + getProto( elem.contentDocument ) ) { + + return elem.contentDocument; + } + + // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only + // Treat the template element as a regular one in browsers that + // don't support it. + if ( nodeName( elem, "template" ) ) { + elem = elem.content || elem; + } + + return jQuery.merge( [], elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var matched = jQuery.map( this, fn, until ); + + if ( name.slice( -5 ) !== "Until" ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + matched = jQuery.filter( selector, matched ); + } + + if ( this.length > 1 ) { + + // Remove duplicates + if ( !guaranteedUnique[ name ] ) { + jQuery.uniqueSort( matched ); + } + + // Reverse order for parents* and prev-derivatives + if ( rparentsprev.test( name ) ) { + matched.reverse(); + } + } + + return this.pushStack( matched ); + }; +} ); +var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g ); + + + +// Convert String-formatted options into Object-formatted ones +function createOptions( options ) { + var object = {}; + jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) { + object[ flag ] = true; + } ); + return object; +} + +/* + * Create a callback list using the following parameters: + * + * options: an optional list of space-separated options that will change how + * the callback list behaves or a more traditional option object + * + * By default a callback list will act like an event callback list and can be + * "fired" multiple times. + * + * Possible options: + * + * once: will ensure the callback list can only be fired once (like a Deferred) + * + * memory: will keep track of previous values and will call any callback added + * after the list has been fired right away with the latest "memorized" + * values (like a Deferred) + * + * unique: will ensure a callback can only be added once (no duplicate in the list) + * + * stopOnFalse: interrupt callings when a callback returns false + * + */ +jQuery.Callbacks = function( options ) { + + // Convert options from String-formatted to Object-formatted if needed + // (we check in cache first) + options = typeof options === "string" ? + createOptions( options ) : + jQuery.extend( {}, options ); + + var // Flag to know if list is currently firing + firing, + + // Last fire value for non-forgettable lists + memory, + + // Flag to know if list was already fired + fired, + + // Flag to prevent firing + locked, + + // Actual callback list + list = [], + + // Queue of execution data for repeatable lists + queue = [], + + // Index of currently firing callback (modified by add/remove as needed) + firingIndex = -1, + + // Fire callbacks + fire = function() { + + // Enforce single-firing + locked = locked || options.once; + + // Execute callbacks for all pending executions, + // respecting firingIndex overrides and runtime changes + fired = firing = true; + for ( ; queue.length; firingIndex = -1 ) { + memory = queue.shift(); + while ( ++firingIndex < list.length ) { + + // Run callback and check for early termination + if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false && + options.stopOnFalse ) { + + // Jump to end and forget the data so .add doesn't re-fire + firingIndex = list.length; + memory = false; + } + } + } + + // Forget the data if we're done with it + if ( !options.memory ) { + memory = false; + } + + firing = false; + + // Clean up if we're done firing for good + if ( locked ) { + + // Keep an empty list if we have data for future add calls + if ( memory ) { + list = []; + + // Otherwise, this object is spent + } else { + list = ""; + } + } + }, + + // Actual Callbacks object + self = { + + // Add a callback or a collection of callbacks to the list + add: function() { + if ( list ) { + + // If we have memory from a past run, we should fire after adding + if ( memory && !firing ) { + firingIndex = list.length - 1; + queue.push( memory ); + } + + ( function add( args ) { + jQuery.each( args, function( _, arg ) { + if ( isFunction( arg ) ) { + if ( !options.unique || !self.has( arg ) ) { + list.push( arg ); + } + } else if ( arg && arg.length && toType( arg ) !== "string" ) { + + // Inspect recursively + add( arg ); + } + } ); + } )( arguments ); + + if ( memory && !firing ) { + fire(); + } + } + return this; + }, + + // Remove a callback from the list + remove: function() { + jQuery.each( arguments, function( _, arg ) { + var index; + while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { + list.splice( index, 1 ); + + // Handle firing indexes + if ( index <= firingIndex ) { + firingIndex--; + } + } + } ); + return this; + }, + + // Check if a given callback is in the list. + // If no argument is given, return whether or not list has callbacks attached. + has: function( fn ) { + return fn ? + jQuery.inArray( fn, list ) > -1 : + list.length > 0; + }, + + // Remove all callbacks from the list + empty: function() { + if ( list ) { + list = []; + } + return this; + }, + + // Disable .fire and .add + // Abort any current/pending executions + // Clear all callbacks and values + disable: function() { + locked = queue = []; + list = memory = ""; + return this; + }, + disabled: function() { + return !list; + }, + + // Disable .fire + // Also disable .add unless we have memory (since it would have no effect) + // Abort any pending executions + lock: function() { + locked = queue = []; + if ( !memory && !firing ) { + list = memory = ""; + } + return this; + }, + locked: function() { + return !!locked; + }, + + // Call all callbacks with the given context and arguments + fireWith: function( context, args ) { + if ( !locked ) { + args = args || []; + args = [ context, args.slice ? args.slice() : args ]; + queue.push( args ); + if ( !firing ) { + fire(); + } + } + return this; + }, + + // Call all the callbacks with the given arguments + fire: function() { + self.fireWith( this, arguments ); + return this; + }, + + // To know if the callbacks have already been called at least once + fired: function() { + return !!fired; + } + }; + + return self; +}; + + +function Identity( v ) { + return v; +} +function Thrower( ex ) { + throw ex; +} + +function adoptValue( value, resolve, reject, noValue ) { + var method; + + try { + + // Check for promise aspect first to privilege synchronous behavior + if ( value && isFunction( ( method = value.promise ) ) ) { + method.call( value ).done( resolve ).fail( reject ); + + // Other thenables + } else if ( value && isFunction( ( method = value.then ) ) ) { + method.call( value, resolve, reject ); + + // Other non-thenables + } else { + + // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer: + // * false: [ value ].slice( 0 ) => resolve( value ) + // * true: [ value ].slice( 1 ) => resolve() + resolve.apply( undefined, [ value ].slice( noValue ) ); + } + + // For Promises/A+, convert exceptions into rejections + // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in + // Deferred#then to conditionally suppress rejection. + } catch ( value ) { + + // Support: Android 4.0 only + // Strict mode functions invoked without .call/.apply get global-object context + reject.apply( undefined, [ value ] ); + } +} + +jQuery.extend( { + + Deferred: function( func ) { + var tuples = [ + + // action, add listener, callbacks, + // ... .then handlers, argument index, [final state] + [ "notify", "progress", jQuery.Callbacks( "memory" ), + jQuery.Callbacks( "memory" ), 2 ], + [ "resolve", "done", jQuery.Callbacks( "once memory" ), + jQuery.Callbacks( "once memory" ), 0, "resolved" ], + [ "reject", "fail", jQuery.Callbacks( "once memory" ), + jQuery.Callbacks( "once memory" ), 1, "rejected" ] + ], + state = "pending", + promise = { + state: function() { + return state; + }, + always: function() { + deferred.done( arguments ).fail( arguments ); + return this; + }, + "catch": function( fn ) { + return promise.then( null, fn ); + }, + + // Keep pipe for back-compat + pipe: function( /* fnDone, fnFail, fnProgress */ ) { + var fns = arguments; + + return jQuery.Deferred( function( newDefer ) { + jQuery.each( tuples, function( _i, tuple ) { + + // Map tuples (progress, done, fail) to arguments (done, fail, progress) + var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; + + // deferred.progress(function() { bind to newDefer or newDefer.notify }) + // deferred.done(function() { bind to newDefer or newDefer.resolve }) + // deferred.fail(function() { bind to newDefer or newDefer.reject }) + deferred[ tuple[ 1 ] ]( function() { + var returned = fn && fn.apply( this, arguments ); + if ( returned && isFunction( returned.promise ) ) { + returned.promise() + .progress( newDefer.notify ) + .done( newDefer.resolve ) + .fail( newDefer.reject ); + } else { + newDefer[ tuple[ 0 ] + "With" ]( + this, + fn ? [ returned ] : arguments + ); + } + } ); + } ); + fns = null; + } ).promise(); + }, + then: function( onFulfilled, onRejected, onProgress ) { + var maxDepth = 0; + function resolve( depth, deferred, handler, special ) { + return function() { + var that = this, + args = arguments, + mightThrow = function() { + var returned, then; + + // Support: Promises/A+ section 2.3.3.3.3 + // https://promisesaplus.com/#point-59 + // Ignore double-resolution attempts + if ( depth < maxDepth ) { + return; + } + + returned = handler.apply( that, args ); + + // Support: Promises/A+ section 2.3.1 + // https://promisesaplus.com/#point-48 + if ( returned === deferred.promise() ) { + throw new TypeError( "Thenable self-resolution" ); + } + + // Support: Promises/A+ sections 2.3.3.1, 3.5 + // https://promisesaplus.com/#point-54 + // https://promisesaplus.com/#point-75 + // Retrieve `then` only once + then = returned && + + // Support: Promises/A+ section 2.3.4 + // https://promisesaplus.com/#point-64 + // Only check objects and functions for thenability + ( typeof returned === "object" || + typeof returned === "function" ) && + returned.then; + + // Handle a returned thenable + if ( isFunction( then ) ) { + + // Special processors (notify) just wait for resolution + if ( special ) { + then.call( + returned, + resolve( maxDepth, deferred, Identity, special ), + resolve( maxDepth, deferred, Thrower, special ) + ); + + // Normal processors (resolve) also hook into progress + } else { + + // ...and disregard older resolution values + maxDepth++; + + then.call( + returned, + resolve( maxDepth, deferred, Identity, special ), + resolve( maxDepth, deferred, Thrower, special ), + resolve( maxDepth, deferred, Identity, + deferred.notifyWith ) + ); + } + + // Handle all other returned values + } else { + + // Only substitute handlers pass on context + // and multiple values (non-spec behavior) + if ( handler !== Identity ) { + that = undefined; + args = [ returned ]; + } + + // Process the value(s) + // Default process is resolve + ( special || deferred.resolveWith )( that, args ); + } + }, + + // Only normal processors (resolve) catch and reject exceptions + process = special ? + mightThrow : + function() { + try { + mightThrow(); + } catch ( e ) { + + if ( jQuery.Deferred.exceptionHook ) { + jQuery.Deferred.exceptionHook( e, + process.stackTrace ); + } + + // Support: Promises/A+ section 2.3.3.3.4.1 + // https://promisesaplus.com/#point-61 + // Ignore post-resolution exceptions + if ( depth + 1 >= maxDepth ) { + + // Only substitute handlers pass on context + // and multiple values (non-spec behavior) + if ( handler !== Thrower ) { + that = undefined; + args = [ e ]; + } + + deferred.rejectWith( that, args ); + } + } + }; + + // Support: Promises/A+ section 2.3.3.3.1 + // https://promisesaplus.com/#point-57 + // Re-resolve promises immediately to dodge false rejection from + // subsequent errors + if ( depth ) { + process(); + } else { + + // Call an optional hook to record the stack, in case of exception + // since it's otherwise lost when execution goes async + if ( jQuery.Deferred.getStackHook ) { + process.stackTrace = jQuery.Deferred.getStackHook(); + } + window.setTimeout( process ); + } + }; + } + + return jQuery.Deferred( function( newDefer ) { + + // progress_handlers.add( ... ) + tuples[ 0 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onProgress ) ? + onProgress : + Identity, + newDefer.notifyWith + ) + ); + + // fulfilled_handlers.add( ... ) + tuples[ 1 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onFulfilled ) ? + onFulfilled : + Identity + ) + ); + + // rejected_handlers.add( ... ) + tuples[ 2 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onRejected ) ? + onRejected : + Thrower + ) + ); + } ).promise(); + }, + + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + return obj != null ? jQuery.extend( obj, promise ) : promise; + } + }, + deferred = {}; + + // Add list-specific methods + jQuery.each( tuples, function( i, tuple ) { + var list = tuple[ 2 ], + stateString = tuple[ 5 ]; + + // promise.progress = list.add + // promise.done = list.add + // promise.fail = list.add + promise[ tuple[ 1 ] ] = list.add; + + // Handle state + if ( stateString ) { + list.add( + function() { + + // state = "resolved" (i.e., fulfilled) + // state = "rejected" + state = stateString; + }, + + // rejected_callbacks.disable + // fulfilled_callbacks.disable + tuples[ 3 - i ][ 2 ].disable, + + // rejected_handlers.disable + // fulfilled_handlers.disable + tuples[ 3 - i ][ 3 ].disable, + + // progress_callbacks.lock + tuples[ 0 ][ 2 ].lock, + + // progress_handlers.lock + tuples[ 0 ][ 3 ].lock + ); + } + + // progress_handlers.fire + // fulfilled_handlers.fire + // rejected_handlers.fire + list.add( tuple[ 3 ].fire ); + + // deferred.notify = function() { deferred.notifyWith(...) } + // deferred.resolve = function() { deferred.resolveWith(...) } + // deferred.reject = function() { deferred.rejectWith(...) } + deferred[ tuple[ 0 ] ] = function() { + deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments ); + return this; + }; + + // deferred.notifyWith = list.fireWith + // deferred.resolveWith = list.fireWith + // deferred.rejectWith = list.fireWith + deferred[ tuple[ 0 ] + "With" ] = list.fireWith; + } ); + + // Make the deferred a promise + promise.promise( deferred ); + + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + + // All done! + return deferred; + }, + + // Deferred helper + when: function( singleValue ) { + var + + // count of uncompleted subordinates + remaining = arguments.length, + + // count of unprocessed arguments + i = remaining, + + // subordinate fulfillment data + resolveContexts = Array( i ), + resolveValues = slice.call( arguments ), + + // the master Deferred + master = jQuery.Deferred(), + + // subordinate callback factory + updateFunc = function( i ) { + return function( value ) { + resolveContexts[ i ] = this; + resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; + if ( !( --remaining ) ) { + master.resolveWith( resolveContexts, resolveValues ); + } + }; + }; + + // Single- and empty arguments are adopted like Promise.resolve + if ( remaining <= 1 ) { + adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject, + !remaining ); + + // Use .then() to unwrap secondary thenables (cf. gh-3000) + if ( master.state() === "pending" || + isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { + + return master.then(); + } + } + + // Multiple arguments are aggregated like Promise.all array elements + while ( i-- ) { + adoptValue( resolveValues[ i ], updateFunc( i ), master.reject ); + } + + return master.promise(); + } +} ); + + +// These usually indicate a programmer mistake during development, +// warn about them ASAP rather than swallowing them by default. +var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; + +jQuery.Deferred.exceptionHook = function( error, stack ) { + + // Support: IE 8 - 9 only + // Console exists when dev tools are open, which can happen at any time + if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) { + window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack ); + } +}; + + + + +jQuery.readyException = function( error ) { + window.setTimeout( function() { + throw error; + } ); +}; + + + + +// The deferred used on DOM ready +var readyList = jQuery.Deferred(); + +jQuery.fn.ready = function( fn ) { + + readyList + .then( fn ) + + // Wrap jQuery.readyException in a function so that the lookup + // happens at the time of error handling instead of callback + // registration. + .catch( function( error ) { + jQuery.readyException( error ); + } ); + + return this; +}; + +jQuery.extend( { + + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Handle when the DOM is ready + ready: function( wait ) { + + // Abort if there are pending holds or we're already ready + if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { + return; + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + } +} ); + +jQuery.ready.then = readyList.then; + +// The ready event handler and self cleanup method +function completed() { + document.removeEventListener( "DOMContentLoaded", completed ); + window.removeEventListener( "load", completed ); + jQuery.ready(); +} + +// Catch cases where $(document).ready() is called +// after the browser event has already occurred. +// Support: IE <=9 - 10 only +// Older IE sometimes signals "interactive" too soon +if ( document.readyState === "complete" || + ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) { + + // Handle it asynchronously to allow scripts the opportunity to delay ready + window.setTimeout( jQuery.ready ); + +} else { + + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", completed ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", completed ); +} + + + + +// Multifunctional method to get and set values of a collection +// The value/s can optionally be executed if it's a function +var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { + var i = 0, + len = elems.length, + bulk = key == null; + + // Sets many values + if ( toType( key ) === "object" ) { + chainable = true; + for ( i in key ) { + access( elems, fn, i, key[ i ], true, emptyGet, raw ); + } + + // Sets one value + } else if ( value !== undefined ) { + chainable = true; + + if ( !isFunction( value ) ) { + raw = true; + } + + if ( bulk ) { + + // Bulk operations run against the entire set + if ( raw ) { + fn.call( elems, value ); + fn = null; + + // ...except when executing function values + } else { + bulk = fn; + fn = function( elem, _key, value ) { + return bulk.call( jQuery( elem ), value ); + }; + } + } + + if ( fn ) { + for ( ; i < len; i++ ) { + fn( + elems[ i ], key, raw ? + value : + value.call( elems[ i ], i, fn( elems[ i ], key ) ) + ); + } + } + } + + if ( chainable ) { + return elems; + } + + // Gets + if ( bulk ) { + return fn.call( elems ); + } + + return len ? fn( elems[ 0 ], key ) : emptyGet; +}; + + +// Matches dashed string for camelizing +var rmsPrefix = /^-ms-/, + rdashAlpha = /-([a-z])/g; + +// Used by camelCase as callback to replace() +function fcamelCase( _all, letter ) { + return letter.toUpperCase(); +} + +// Convert dashed to camelCase; used by the css and data modules +// Support: IE <=9 - 11, Edge 12 - 15 +// Microsoft forgot to hump their vendor prefix (#9572) +function camelCase( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); +} +var acceptData = function( owner ) { + + // Accepts only: + // - Node + // - Node.ELEMENT_NODE + // - Node.DOCUMENT_NODE + // - Object + // - Any + return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); +}; + + + + +function Data() { + this.expando = jQuery.expando + Data.uid++; +} + +Data.uid = 1; + +Data.prototype = { + + cache: function( owner ) { + + // Check if the owner object already has a cache + var value = owner[ this.expando ]; + + // If not, create one + if ( !value ) { + value = {}; + + // We can accept data for non-element nodes in modern browsers, + // but we should not, see #8335. + // Always return an empty object. + if ( acceptData( owner ) ) { + + // If it is a node unlikely to be stringify-ed or looped over + // use plain assignment + if ( owner.nodeType ) { + owner[ this.expando ] = value; + + // Otherwise secure it in a non-enumerable property + // configurable must be true to allow the property to be + // deleted when data is removed + } else { + Object.defineProperty( owner, this.expando, { + value: value, + configurable: true + } ); + } + } + } + + return value; + }, + set: function( owner, data, value ) { + var prop, + cache = this.cache( owner ); + + // Handle: [ owner, key, value ] args + // Always use camelCase key (gh-2257) + if ( typeof data === "string" ) { + cache[ camelCase( data ) ] = value; + + // Handle: [ owner, { properties } ] args + } else { + + // Copy the properties one-by-one to the cache object + for ( prop in data ) { + cache[ camelCase( prop ) ] = data[ prop ]; + } + } + return cache; + }, + get: function( owner, key ) { + return key === undefined ? + this.cache( owner ) : + + // Always use camelCase key (gh-2257) + owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ]; + }, + access: function( owner, key, value ) { + + // In cases where either: + // + // 1. No key was specified + // 2. A string key was specified, but no value provided + // + // Take the "read" path and allow the get method to determine + // which value to return, respectively either: + // + // 1. The entire cache object + // 2. The data stored at the key + // + if ( key === undefined || + ( ( key && typeof key === "string" ) && value === undefined ) ) { + + return this.get( owner, key ); + } + + // When the key is not a string, or both a key and value + // are specified, set or extend (existing objects) with either: + // + // 1. An object of properties + // 2. A key and value + // + this.set( owner, key, value ); + + // Since the "set" path can have two possible entry points + // return the expected data based on which path was taken[*] + return value !== undefined ? value : key; + }, + remove: function( owner, key ) { + var i, + cache = owner[ this.expando ]; + + if ( cache === undefined ) { + return; + } + + if ( key !== undefined ) { + + // Support array or space separated string of keys + if ( Array.isArray( key ) ) { + + // If key is an array of keys... + // We always set camelCase keys, so remove that. + key = key.map( camelCase ); + } else { + key = camelCase( key ); + + // If a key with the spaces exists, use it. + // Otherwise, create an array by matching non-whitespace + key = key in cache ? + [ key ] : + ( key.match( rnothtmlwhite ) || [] ); + } + + i = key.length; + + while ( i-- ) { + delete cache[ key[ i ] ]; + } + } + + // Remove the expando if there's no more data + if ( key === undefined || jQuery.isEmptyObject( cache ) ) { + + // Support: Chrome <=35 - 45 + // Webkit & Blink performance suffers when deleting properties + // from DOM nodes, so set to undefined instead + // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted) + if ( owner.nodeType ) { + owner[ this.expando ] = undefined; + } else { + delete owner[ this.expando ]; + } + } + }, + hasData: function( owner ) { + var cache = owner[ this.expando ]; + return cache !== undefined && !jQuery.isEmptyObject( cache ); + } +}; +var dataPriv = new Data(); + +var dataUser = new Data(); + + + +// Implementation Summary +// +// 1. Enforce API surface and semantic compatibility with 1.9.x branch +// 2. Improve the module's maintainability by reducing the storage +// paths to a single mechanism. +// 3. Use the same single mechanism to support "private" and "user" data. +// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) +// 5. Avoid exposing implementation details on user objects (eg. expando properties) +// 6. Provide a clear path for implementation upgrade to WeakMap in 2014 + +var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, + rmultiDash = /[A-Z]/g; + +function getData( data ) { + if ( data === "true" ) { + return true; + } + + if ( data === "false" ) { + return false; + } + + if ( data === "null" ) { + return null; + } + + // Only convert to a number if it doesn't change the string + if ( data === +data + "" ) { + return +data; + } + + if ( rbrace.test( data ) ) { + return JSON.parse( data ); + } + + return data; +} + +function dataAttr( elem, key, data ) { + var name; + + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase(); + data = elem.getAttribute( name ); + + if ( typeof data === "string" ) { + try { + data = getData( data ); + } catch ( e ) {} + + // Make sure we set the data so it isn't changed later + dataUser.set( elem, key, data ); + } else { + data = undefined; + } + } + return data; +} + +jQuery.extend( { + hasData: function( elem ) { + return dataUser.hasData( elem ) || dataPriv.hasData( elem ); + }, + + data: function( elem, name, data ) { + return dataUser.access( elem, name, data ); + }, + + removeData: function( elem, name ) { + dataUser.remove( elem, name ); + }, + + // TODO: Now that all calls to _data and _removeData have been replaced + // with direct calls to dataPriv methods, these can be deprecated. + _data: function( elem, name, data ) { + return dataPriv.access( elem, name, data ); + }, + + _removeData: function( elem, name ) { + dataPriv.remove( elem, name ); + } +} ); + +jQuery.fn.extend( { + data: function( key, value ) { + var i, name, data, + elem = this[ 0 ], + attrs = elem && elem.attributes; + + // Gets all values + if ( key === undefined ) { + if ( this.length ) { + data = dataUser.get( elem ); + + if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) { + i = attrs.length; + while ( i-- ) { + + // Support: IE 11 only + // The attrs elements can be null (#14894) + if ( attrs[ i ] ) { + name = attrs[ i ].name; + if ( name.indexOf( "data-" ) === 0 ) { + name = camelCase( name.slice( 5 ) ); + dataAttr( elem, name, data[ name ] ); + } + } + } + dataPriv.set( elem, "hasDataAttrs", true ); + } + } + + return data; + } + + // Sets multiple values + if ( typeof key === "object" ) { + return this.each( function() { + dataUser.set( this, key ); + } ); + } + + return access( this, function( value ) { + var data; + + // The calling jQuery object (element matches) is not empty + // (and therefore has an element appears at this[ 0 ]) and the + // `value` parameter was not undefined. An empty jQuery object + // will result in `undefined` for elem = this[ 0 ] which will + // throw an exception if an attempt to read a data cache is made. + if ( elem && value === undefined ) { + + // Attempt to get data from the cache + // The key will always be camelCased in Data + data = dataUser.get( elem, key ); + if ( data !== undefined ) { + return data; + } + + // Attempt to "discover" the data in + // HTML5 custom data-* attrs + data = dataAttr( elem, key ); + if ( data !== undefined ) { + return data; + } + + // We tried really hard, but the data doesn't exist. + return; + } + + // Set the data... + this.each( function() { + + // We always store the camelCased key + dataUser.set( this, key, value ); + } ); + }, null, value, arguments.length > 1, null, true ); + }, + + removeData: function( key ) { + return this.each( function() { + dataUser.remove( this, key ); + } ); + } +} ); + + +jQuery.extend( { + queue: function( elem, type, data ) { + var queue; + + if ( elem ) { + type = ( type || "fx" ) + "queue"; + queue = dataPriv.get( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !queue || Array.isArray( data ) ) { + queue = dataPriv.access( elem, type, jQuery.makeArray( data ) ); + } else { + queue.push( data ); + } + } + return queue || []; + } + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + startLength = queue.length, + fn = queue.shift(), + hooks = jQuery._queueHooks( elem, type ), + next = function() { + jQuery.dequeue( elem, type ); + }; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + startLength--; + } + + if ( fn ) { + + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift( "inprogress" ); + } + + // Clear up the last queue stop function + delete hooks.stop; + fn.call( elem, next, hooks ); + } + + if ( !startLength && hooks ) { + hooks.empty.fire(); + } + }, + + // Not public - generate a queueHooks object, or return the current one + _queueHooks: function( elem, type ) { + var key = type + "queueHooks"; + return dataPriv.get( elem, key ) || dataPriv.access( elem, key, { + empty: jQuery.Callbacks( "once memory" ).add( function() { + dataPriv.remove( elem, [ type + "queue", key ] ); + } ) + } ); + } +} ); + +jQuery.fn.extend( { + queue: function( type, data ) { + var setter = 2; + + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + setter--; + } + + if ( arguments.length < setter ) { + return jQuery.queue( this[ 0 ], type ); + } + + return data === undefined ? + this : + this.each( function() { + var queue = jQuery.queue( this, type, data ); + + // Ensure a hooks for this queue + jQuery._queueHooks( this, type ); + + if ( type === "fx" && queue[ 0 ] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + } ); + }, + dequeue: function( type ) { + return this.each( function() { + jQuery.dequeue( this, type ); + } ); + }, + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + }, + + // Get a promise resolved when queues of a certain type + // are emptied (fx is the type by default) + promise: function( type, obj ) { + var tmp, + count = 1, + defer = jQuery.Deferred(), + elements = this, + i = this.length, + resolve = function() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + }; + + if ( typeof type !== "string" ) { + obj = type; + type = undefined; + } + type = type || "fx"; + + while ( i-- ) { + tmp = dataPriv.get( elements[ i ], type + "queueHooks" ); + if ( tmp && tmp.empty ) { + count++; + tmp.empty.add( resolve ); + } + } + resolve(); + return defer.promise( obj ); + } +} ); +var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; + +var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); + + +var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; + +var documentElement = document.documentElement; + + + + var isAttached = function( elem ) { + return jQuery.contains( elem.ownerDocument, elem ); + }, + composed = { composed: true }; + + // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only + // Check attachment across shadow DOM boundaries when possible (gh-3504) + // Support: iOS 10.0-10.2 only + // Early iOS 10 versions support `attachShadow` but not `getRootNode`, + // leading to errors. We need to check for `getRootNode`. + if ( documentElement.getRootNode ) { + isAttached = function( elem ) { + return jQuery.contains( elem.ownerDocument, elem ) || + elem.getRootNode( composed ) === elem.ownerDocument; + }; + } +var isHiddenWithinTree = function( elem, el ) { + + // isHiddenWithinTree might be called from jQuery#filter function; + // in that case, element will be second argument + elem = el || elem; + + // Inline style trumps all + return elem.style.display === "none" || + elem.style.display === "" && + + // Otherwise, check computed style + // Support: Firefox <=43 - 45 + // Disconnected elements can have computed display: none, so first confirm that elem is + // in the document. + isAttached( elem ) && + + jQuery.css( elem, "display" ) === "none"; + }; + + + +function adjustCSS( elem, prop, valueParts, tween ) { + var adjusted, scale, + maxIterations = 20, + currentValue = tween ? + function() { + return tween.cur(); + } : + function() { + return jQuery.css( elem, prop, "" ); + }, + initial = currentValue(), + unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), + + // Starting value computation is required for potential unit mismatches + initialInUnit = elem.nodeType && + ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && + rcssNum.exec( jQuery.css( elem, prop ) ); + + if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { + + // Support: Firefox <=54 + // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144) + initial = initial / 2; + + // Trust units reported by jQuery.css + unit = unit || initialInUnit[ 3 ]; + + // Iteratively approximate from a nonzero starting point + initialInUnit = +initial || 1; + + while ( maxIterations-- ) { + + // Evaluate and update our best guess (doubling guesses that zero out). + // Finish if the scale equals or crosses 1 (making the old*new product non-positive). + jQuery.style( elem, prop, initialInUnit + unit ); + if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) { + maxIterations = 0; + } + initialInUnit = initialInUnit / scale; + + } + + initialInUnit = initialInUnit * 2; + jQuery.style( elem, prop, initialInUnit + unit ); + + // Make sure we update the tween properties later on + valueParts = valueParts || []; + } + + if ( valueParts ) { + initialInUnit = +initialInUnit || +initial || 0; + + // Apply relative offset (+=/-=) if specified + adjusted = valueParts[ 1 ] ? + initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] : + +valueParts[ 2 ]; + if ( tween ) { + tween.unit = unit; + tween.start = initialInUnit; + tween.end = adjusted; + } + } + return adjusted; +} + + +var defaultDisplayMap = {}; + +function getDefaultDisplay( elem ) { + var temp, + doc = elem.ownerDocument, + nodeName = elem.nodeName, + display = defaultDisplayMap[ nodeName ]; + + if ( display ) { + return display; + } + + temp = doc.body.appendChild( doc.createElement( nodeName ) ); + display = jQuery.css( temp, "display" ); + + temp.parentNode.removeChild( temp ); + + if ( display === "none" ) { + display = "block"; + } + defaultDisplayMap[ nodeName ] = display; + + return display; +} + +function showHide( elements, show ) { + var display, elem, + values = [], + index = 0, + length = elements.length; + + // Determine new display value for elements that need to change + for ( ; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + + display = elem.style.display; + if ( show ) { + + // Since we force visibility upon cascade-hidden elements, an immediate (and slow) + // check is required in this first loop unless we have a nonempty display value (either + // inline or about-to-be-restored) + if ( display === "none" ) { + values[ index ] = dataPriv.get( elem, "display" ) || null; + if ( !values[ index ] ) { + elem.style.display = ""; + } + } + if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) { + values[ index ] = getDefaultDisplay( elem ); + } + } else { + if ( display !== "none" ) { + values[ index ] = "none"; + + // Remember what we're overwriting + dataPriv.set( elem, "display", display ); + } + } + } + + // Set the display of the elements in a second loop to avoid constant reflow + for ( index = 0; index < length; index++ ) { + if ( values[ index ] != null ) { + elements[ index ].style.display = values[ index ]; + } + } + + return elements; +} + +jQuery.fn.extend( { + show: function() { + return showHide( this, true ); + }, + hide: function() { + return showHide( this ); + }, + toggle: function( state ) { + if ( typeof state === "boolean" ) { + return state ? this.show() : this.hide(); + } + + return this.each( function() { + if ( isHiddenWithinTree( this ) ) { + jQuery( this ).show(); + } else { + jQuery( this ).hide(); + } + } ); + } +} ); +var rcheckableType = ( /^(?:checkbox|radio)$/i ); + +var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]*)/i ); + +var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i ); + + + +( function() { + var fragment = document.createDocumentFragment(), + div = fragment.appendChild( document.createElement( "div" ) ), + input = document.createElement( "input" ); + + // Support: Android 4.0 - 4.3 only + // Check state lost if the name is set (#11217) + // Support: Windows Web Apps (WWA) + // `name` and `type` must use .setAttribute for WWA (#14901) + input.setAttribute( "type", "radio" ); + input.setAttribute( "checked", "checked" ); + input.setAttribute( "name", "t" ); + + div.appendChild( input ); + + // Support: Android <=4.1 only + // Older WebKit doesn't clone checked state correctly in fragments + support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Support: IE <=11 only + // Make sure textarea (and checkbox) defaultValue is properly cloned + div.innerHTML = ""; + support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; + + // Support: IE <=9 only + // IE <=9 replaces "; + support.option = !!div.lastChild; +} )(); + + +// We have to close these tags to support XHTML (#13200) +var wrapMap = { + + // XHTML parsers do not magically insert elements in the + // same way that tag soup parsers do. So we cannot shorten + // this by omitting or other required elements. + thead: [ 1, "", "
    " ], + col: [ 2, "", "
    " ], + tr: [ 2, "", "
    " ], + td: [ 3, "", "
    " ], + + _default: [ 0, "", "" ] +}; + +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + +// Support: IE <=9 only +if ( !support.option ) { + wrapMap.optgroup = wrapMap.option = [ 1, "" ]; +} + + +function getAll( context, tag ) { + + // Support: IE <=9 - 11 only + // Use typeof to avoid zero-argument method invocation on host objects (#15151) + var ret; + + if ( typeof context.getElementsByTagName !== "undefined" ) { + ret = context.getElementsByTagName( tag || "*" ); + + } else if ( typeof context.querySelectorAll !== "undefined" ) { + ret = context.querySelectorAll( tag || "*" ); + + } else { + ret = []; + } + + if ( tag === undefined || tag && nodeName( context, tag ) ) { + return jQuery.merge( [ context ], ret ); + } + + return ret; +} + + +// Mark scripts as having already been evaluated +function setGlobalEval( elems, refElements ) { + var i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + dataPriv.set( + elems[ i ], + "globalEval", + !refElements || dataPriv.get( refElements[ i ], "globalEval" ) + ); + } +} + + +var rhtml = /<|&#?\w+;/; + +function buildFragment( elems, context, scripts, selection, ignored ) { + var elem, tmp, tag, wrap, attached, j, + fragment = context.createDocumentFragment(), + nodes = [], + i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + elem = elems[ i ]; + + if ( elem || elem === 0 ) { + + // Add nodes directly + if ( toType( elem ) === "object" ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); + + // Convert non-html into a text node + } else if ( !rhtml.test( elem ) ) { + nodes.push( context.createTextNode( elem ) ); + + // Convert html into DOM nodes + } else { + tmp = tmp || fragment.appendChild( context.createElement( "div" ) ); + + // Deserialize a standard representation + tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); + wrap = wrapMap[ tag ] || wrapMap._default; + tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ]; + + // Descend through wrappers to the right content + j = wrap[ 0 ]; + while ( j-- ) { + tmp = tmp.lastChild; + } + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, tmp.childNodes ); + + // Remember the top-level container + tmp = fragment.firstChild; + + // Ensure the created nodes are orphaned (#12392) + tmp.textContent = ""; + } + } + } + + // Remove wrapper from fragment + fragment.textContent = ""; + + i = 0; + while ( ( elem = nodes[ i++ ] ) ) { + + // Skip elements already in the context collection (trac-4087) + if ( selection && jQuery.inArray( elem, selection ) > -1 ) { + if ( ignored ) { + ignored.push( elem ); + } + continue; + } + + attached = isAttached( elem ); + + // Append to fragment + tmp = getAll( fragment.appendChild( elem ), "script" ); + + // Preserve script evaluation history + if ( attached ) { + setGlobalEval( tmp ); + } + + // Capture executables + if ( scripts ) { + j = 0; + while ( ( elem = tmp[ j++ ] ) ) { + if ( rscriptType.test( elem.type || "" ) ) { + scripts.push( elem ); + } + } + } + } + + return fragment; +} + + +var + rkeyEvent = /^key/, + rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, + rtypenamespace = /^([^.]*)(?:\.(.+)|)/; + +function returnTrue() { + return true; +} + +function returnFalse() { + return false; +} + +// Support: IE <=9 - 11+ +// focus() and blur() are asynchronous, except when they are no-op. +// So expect focus to be synchronous when the element is already active, +// and blur to be synchronous when the element is not already active. +// (focus and blur are always synchronous in other supported browsers, +// this just defines when we can count on it). +function expectSync( elem, type ) { + return ( elem === safeActiveElement() ) === ( type === "focus" ); +} + +// Support: IE <=9 only +// Accessing document.activeElement can throw unexpectedly +// https://bugs.jquery.com/ticket/13393 +function safeActiveElement() { + try { + return document.activeElement; + } catch ( err ) { } +} + +function on( elem, types, selector, data, fn, one ) { + var origFn, type; + + // Types can be a map of types/handlers + if ( typeof types === "object" ) { + + // ( types-Object, selector, data ) + if ( typeof selector !== "string" ) { + + // ( types-Object, data ) + data = data || selector; + selector = undefined; + } + for ( type in types ) { + on( elem, type, selector, data, types[ type ], one ); + } + return elem; + } + + if ( data == null && fn == null ) { + + // ( types, fn ) + fn = selector; + data = selector = undefined; + } else if ( fn == null ) { + if ( typeof selector === "string" ) { + + // ( types, selector, fn ) + fn = data; + data = undefined; + } else { + + // ( types, data, fn ) + fn = data; + data = selector; + selector = undefined; + } + } + if ( fn === false ) { + fn = returnFalse; + } else if ( !fn ) { + return elem; + } + + if ( one === 1 ) { + origFn = fn; + fn = function( event ) { + + // Can use an empty set, since event contains the info + jQuery().off( event ); + return origFn.apply( this, arguments ); + }; + + // Use same guid so caller can remove using origFn + fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); + } + return elem.each( function() { + jQuery.event.add( this, types, fn, data, selector ); + } ); +} + +/* + * Helper functions for managing events -- not part of the public interface. + * Props to Dean Edwards' addEvent library for many of the ideas. + */ +jQuery.event = { + + global: {}, + + add: function( elem, types, handler, data, selector ) { + + var handleObjIn, eventHandle, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.get( elem ); + + // Only attach events to objects that accept data + if ( !acceptData( elem ) ) { + return; + } + + // Caller can pass in an object of custom data in lieu of the handler + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + selector = handleObjIn.selector; + } + + // Ensure that invalid selectors throw exceptions at attach time + // Evaluate against documentElement in case elem is a non-element node (e.g., document) + if ( selector ) { + jQuery.find.matchesSelector( documentElement, selector ); + } + + // Make sure that the handler has a unique ID, used to find/remove it later + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure and main handler, if this is the first + if ( !( events = elemData.events ) ) { + events = elemData.events = Object.create( null ); + } + if ( !( eventHandle = elemData.handle ) ) { + eventHandle = elemData.handle = function( e ) { + + // Discard the second event of a jQuery.event.trigger() and + // when an event is called after a page has unloaded + return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ? + jQuery.event.dispatch.apply( elem, arguments ) : undefined; + }; + } + + // Handle multiple events separated by a space + types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // There *must* be a type, no attaching namespace-only handlers + if ( !type ) { + continue; + } + + // If event changes its type, use the special event handlers for the changed type + special = jQuery.event.special[ type ] || {}; + + // If selector defined, determine special event api type, otherwise given type + type = ( selector ? special.delegateType : special.bindType ) || type; + + // Update special based on newly reset type + special = jQuery.event.special[ type ] || {}; + + // handleObj is passed to all event handlers + handleObj = jQuery.extend( { + type: type, + origType: origType, + data: data, + handler: handler, + guid: handler.guid, + selector: selector, + needsContext: selector && jQuery.expr.match.needsContext.test( selector ), + namespace: namespaces.join( "." ) + }, handleObjIn ); + + // Init the event handler queue if we're the first + if ( !( handlers = events[ type ] ) ) { + handlers = events[ type ] = []; + handlers.delegateCount = 0; + + // Only use addEventListener if the special events handler returns false + if ( !special.setup || + special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add to the element's handler list, delegates in front + if ( selector ) { + handlers.splice( handlers.delegateCount++, 0, handleObj ); + } else { + handlers.push( handleObj ); + } + + // Keep track of which events have ever been used, for event optimization + jQuery.event.global[ type ] = true; + } + + }, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, selector, mappedTypes ) { + + var j, origCount, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.hasData( elem ) && dataPriv.get( elem ); + + if ( !elemData || !( events = elemData.events ) ) { + return; + } + + // Once for each type.namespace in types; type may be omitted + types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // Unbind all events (on this namespace, if provided) for the element + if ( !type ) { + for ( type in events ) { + jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); + } + continue; + } + + special = jQuery.event.special[ type ] || {}; + type = ( selector ? special.delegateType : special.bindType ) || type; + handlers = events[ type ] || []; + tmp = tmp[ 2 ] && + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ); + + // Remove matching events + origCount = j = handlers.length; + while ( j-- ) { + handleObj = handlers[ j ]; + + if ( ( mappedTypes || origType === handleObj.origType ) && + ( !handler || handler.guid === handleObj.guid ) && + ( !tmp || tmp.test( handleObj.namespace ) ) && + ( !selector || selector === handleObj.selector || + selector === "**" && handleObj.selector ) ) { + handlers.splice( j, 1 ); + + if ( handleObj.selector ) { + handlers.delegateCount--; + } + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + } + + // Remove generic event handler if we removed something and no more handlers exist + // (avoids potential for endless recursion during removal of special event handlers) + if ( origCount && !handlers.length ) { + if ( !special.teardown || + special.teardown.call( elem, namespaces, elemData.handle ) === false ) { + + jQuery.removeEvent( elem, type, elemData.handle ); + } + + delete events[ type ]; + } + } + + // Remove data and the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + dataPriv.remove( elem, "handle events" ); + } + }, + + dispatch: function( nativeEvent ) { + + var i, j, ret, matched, handleObj, handlerQueue, + args = new Array( arguments.length ), + + // Make a writable jQuery.Event from the native event object + event = jQuery.event.fix( nativeEvent ), + + handlers = ( + dataPriv.get( this, "events" ) || Object.create( null ) + )[ event.type ] || [], + special = jQuery.event.special[ event.type ] || {}; + + // Use the fix-ed jQuery.Event rather than the (read-only) native event + args[ 0 ] = event; + + for ( i = 1; i < arguments.length; i++ ) { + args[ i ] = arguments[ i ]; + } + + event.delegateTarget = this; + + // Call the preDispatch hook for the mapped type, and let it bail if desired + if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { + return; + } + + // Determine handlers + handlerQueue = jQuery.event.handlers.call( this, event, handlers ); + + // Run delegates first; they may want to stop propagation beneath us + i = 0; + while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) { + event.currentTarget = matched.elem; + + j = 0; + while ( ( handleObj = matched.handlers[ j++ ] ) && + !event.isImmediatePropagationStopped() ) { + + // If the event is namespaced, then each handler is only invoked if it is + // specially universal or its namespaces are a superset of the event's. + if ( !event.rnamespace || handleObj.namespace === false || + event.rnamespace.test( handleObj.namespace ) ) { + + event.handleObj = handleObj; + event.data = handleObj.data; + + ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle || + handleObj.handler ).apply( matched.elem, args ); + + if ( ret !== undefined ) { + if ( ( event.result = ret ) === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + } + } + } + + // Call the postDispatch hook for the mapped type + if ( special.postDispatch ) { + special.postDispatch.call( this, event ); + } + + return event.result; + }, + + handlers: function( event, handlers ) { + var i, handleObj, sel, matchedHandlers, matchedSelectors, + handlerQueue = [], + delegateCount = handlers.delegateCount, + cur = event.target; + + // Find delegate handlers + if ( delegateCount && + + // Support: IE <=9 + // Black-hole SVG instance trees (trac-13180) + cur.nodeType && + + // Support: Firefox <=42 + // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861) + // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click + // Support: IE 11 only + // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343) + !( event.type === "click" && event.button >= 1 ) ) { + + for ( ; cur !== this; cur = cur.parentNode || this ) { + + // Don't check non-elements (#13208) + // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) + if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) { + matchedHandlers = []; + matchedSelectors = {}; + for ( i = 0; i < delegateCount; i++ ) { + handleObj = handlers[ i ]; + + // Don't conflict with Object.prototype properties (#13203) + sel = handleObj.selector + " "; + + if ( matchedSelectors[ sel ] === undefined ) { + matchedSelectors[ sel ] = handleObj.needsContext ? + jQuery( sel, this ).index( cur ) > -1 : + jQuery.find( sel, this, null, [ cur ] ).length; + } + if ( matchedSelectors[ sel ] ) { + matchedHandlers.push( handleObj ); + } + } + if ( matchedHandlers.length ) { + handlerQueue.push( { elem: cur, handlers: matchedHandlers } ); + } + } + } + } + + // Add the remaining (directly-bound) handlers + cur = this; + if ( delegateCount < handlers.length ) { + handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } ); + } + + return handlerQueue; + }, + + addProp: function( name, hook ) { + Object.defineProperty( jQuery.Event.prototype, name, { + enumerable: true, + configurable: true, + + get: isFunction( hook ) ? + function() { + if ( this.originalEvent ) { + return hook( this.originalEvent ); + } + } : + function() { + if ( this.originalEvent ) { + return this.originalEvent[ name ]; + } + }, + + set: function( value ) { + Object.defineProperty( this, name, { + enumerable: true, + configurable: true, + writable: true, + value: value + } ); + } + } ); + }, + + fix: function( originalEvent ) { + return originalEvent[ jQuery.expando ] ? + originalEvent : + new jQuery.Event( originalEvent ); + }, + + special: { + load: { + + // Prevent triggered image.load events from bubbling to window.load + noBubble: true + }, + click: { + + // Utilize native event to ensure correct state for checkable inputs + setup: function( data ) { + + // For mutual compressibility with _default, replace `this` access with a local var. + // `|| data` is dead code meant only to preserve the variable through minification. + var el = this || data; + + // Claim the first handler + if ( rcheckableType.test( el.type ) && + el.click && nodeName( el, "input" ) ) { + + // dataPriv.set( el, "click", ... ) + leverageNative( el, "click", returnTrue ); + } + + // Return false to allow normal processing in the caller + return false; + }, + trigger: function( data ) { + + // For mutual compressibility with _default, replace `this` access with a local var. + // `|| data` is dead code meant only to preserve the variable through minification. + var el = this || data; + + // Force setup before triggering a click + if ( rcheckableType.test( el.type ) && + el.click && nodeName( el, "input" ) ) { + + leverageNative( el, "click" ); + } + + // Return non-false to allow normal event-path propagation + return true; + }, + + // For cross-browser consistency, suppress native .click() on links + // Also prevent it if we're currently inside a leveraged native-event stack + _default: function( event ) { + var target = event.target; + return rcheckableType.test( target.type ) && + target.click && nodeName( target, "input" ) && + dataPriv.get( target, "click" ) || + nodeName( target, "a" ); + } + }, + + beforeunload: { + postDispatch: function( event ) { + + // Support: Firefox 20+ + // Firefox doesn't alert if the returnValue field is not set. + if ( event.result !== undefined && event.originalEvent ) { + event.originalEvent.returnValue = event.result; + } + } + } + } +}; + +// Ensure the presence of an event listener that handles manually-triggered +// synthetic events by interrupting progress until reinvoked in response to +// *native* events that it fires directly, ensuring that state changes have +// already occurred before other listeners are invoked. +function leverageNative( el, type, expectSync ) { + + // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add + if ( !expectSync ) { + if ( dataPriv.get( el, type ) === undefined ) { + jQuery.event.add( el, type, returnTrue ); + } + return; + } + + // Register the controller as a special universal handler for all event namespaces + dataPriv.set( el, type, false ); + jQuery.event.add( el, type, { + namespace: false, + handler: function( event ) { + var notAsync, result, + saved = dataPriv.get( this, type ); + + if ( ( event.isTrigger & 1 ) && this[ type ] ) { + + // Interrupt processing of the outer synthetic .trigger()ed event + // Saved data should be false in such cases, but might be a leftover capture object + // from an async native handler (gh-4350) + if ( !saved.length ) { + + // Store arguments for use when handling the inner native event + // There will always be at least one argument (an event object), so this array + // will not be confused with a leftover capture object. + saved = slice.call( arguments ); + dataPriv.set( this, type, saved ); + + // Trigger the native event and capture its result + // Support: IE <=9 - 11+ + // focus() and blur() are asynchronous + notAsync = expectSync( this, type ); + this[ type ](); + result = dataPriv.get( this, type ); + if ( saved !== result || notAsync ) { + dataPriv.set( this, type, false ); + } else { + result = {}; + } + if ( saved !== result ) { + + // Cancel the outer synthetic event + event.stopImmediatePropagation(); + event.preventDefault(); + return result.value; + } + + // If this is an inner synthetic event for an event with a bubbling surrogate + // (focus or blur), assume that the surrogate already propagated from triggering the + // native event and prevent that from happening again here. + // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the + // bubbling surrogate propagates *after* the non-bubbling base), but that seems + // less bad than duplication. + } else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) { + event.stopPropagation(); + } + + // If this is a native event triggered above, everything is now in order + // Fire an inner synthetic event with the original arguments + } else if ( saved.length ) { + + // ...and capture the result + dataPriv.set( this, type, { + value: jQuery.event.trigger( + + // Support: IE <=9 - 11+ + // Extend with the prototype to reset the above stopImmediatePropagation() + jQuery.extend( saved[ 0 ], jQuery.Event.prototype ), + saved.slice( 1 ), + this + ) + } ); + + // Abort handling of the native event + event.stopImmediatePropagation(); + } + } + } ); +} + +jQuery.removeEvent = function( elem, type, handle ) { + + // This "if" is needed for plain objects + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle ); + } +}; + +jQuery.Event = function( src, props ) { + + // Allow instantiation without the 'new' keyword + if ( !( this instanceof jQuery.Event ) ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = src.defaultPrevented || + src.defaultPrevented === undefined && + + // Support: Android <=2.3 only + src.returnValue === false ? + returnTrue : + returnFalse; + + // Create target properties + // Support: Safari <=6 - 7 only + // Target should not be a text node (#504, #13143) + this.target = ( src.target && src.target.nodeType === 3 ) ? + src.target.parentNode : + src.target; + + this.currentTarget = src.currentTarget; + this.relatedTarget = src.relatedTarget; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || Date.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + constructor: jQuery.Event, + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse, + isSimulated: false, + + preventDefault: function() { + var e = this.originalEvent; + + this.isDefaultPrevented = returnTrue; + + if ( e && !this.isSimulated ) { + e.preventDefault(); + } + }, + stopPropagation: function() { + var e = this.originalEvent; + + this.isPropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopPropagation(); + } + }, + stopImmediatePropagation: function() { + var e = this.originalEvent; + + this.isImmediatePropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopImmediatePropagation(); + } + + this.stopPropagation(); + } +}; + +// Includes all common event props including KeyEvent and MouseEvent specific props +jQuery.each( { + altKey: true, + bubbles: true, + cancelable: true, + changedTouches: true, + ctrlKey: true, + detail: true, + eventPhase: true, + metaKey: true, + pageX: true, + pageY: true, + shiftKey: true, + view: true, + "char": true, + code: true, + charCode: true, + key: true, + keyCode: true, + button: true, + buttons: true, + clientX: true, + clientY: true, + offsetX: true, + offsetY: true, + pointerId: true, + pointerType: true, + screenX: true, + screenY: true, + targetTouches: true, + toElement: true, + touches: true, + + which: function( event ) { + var button = event.button; + + // Add which for key events + if ( event.which == null && rkeyEvent.test( event.type ) ) { + return event.charCode != null ? event.charCode : event.keyCode; + } + + // Add which for click: 1 === left; 2 === middle; 3 === right + if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) { + if ( button & 1 ) { + return 1; + } + + if ( button & 2 ) { + return 3; + } + + if ( button & 4 ) { + return 2; + } + + return 0; + } + + return event.which; + } +}, jQuery.event.addProp ); + +jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) { + jQuery.event.special[ type ] = { + + // Utilize native event if possible so blur/focus sequence is correct + setup: function() { + + // Claim the first handler + // dataPriv.set( this, "focus", ... ) + // dataPriv.set( this, "blur", ... ) + leverageNative( this, type, expectSync ); + + // Return false to allow normal processing in the caller + return false; + }, + trigger: function() { + + // Force setup before trigger + leverageNative( this, type ); + + // Return non-false to allow normal event-path propagation + return true; + }, + + delegateType: delegateType + }; +} ); + +// Create mouseenter/leave events using mouseover/out and event-time checks +// so that event delegation works in jQuery. +// Do the same for pointerenter/pointerleave and pointerover/pointerout +// +// Support: Safari 7 only +// Safari sends mouseenter too often; see: +// https://bugs.chromium.org/p/chromium/issues/detail?id=470258 +// for the description of the bug (it existed in older Chrome versions as well). +jQuery.each( { + mouseenter: "mouseover", + mouseleave: "mouseout", + pointerenter: "pointerover", + pointerleave: "pointerout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + delegateType: fix, + bindType: fix, + + handle: function( event ) { + var ret, + target = this, + related = event.relatedTarget, + handleObj = event.handleObj; + + // For mouseenter/leave call the handler if related is outside the target. + // NB: No relatedTarget if the mouse left/entered the browser window + if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) { + event.type = handleObj.origType; + ret = handleObj.handler.apply( this, arguments ); + event.type = fix; + } + return ret; + } + }; +} ); + +jQuery.fn.extend( { + + on: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn ); + }, + one: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn, 1 ); + }, + off: function( types, selector, fn ) { + var handleObj, type; + if ( types && types.preventDefault && types.handleObj ) { + + // ( event ) dispatched jQuery.Event + handleObj = types.handleObj; + jQuery( types.delegateTarget ).off( + handleObj.namespace ? + handleObj.origType + "." + handleObj.namespace : + handleObj.origType, + handleObj.selector, + handleObj.handler + ); + return this; + } + if ( typeof types === "object" ) { + + // ( types-object [, selector] ) + for ( type in types ) { + this.off( type, selector, types[ type ] ); + } + return this; + } + if ( selector === false || typeof selector === "function" ) { + + // ( types [, fn] ) + fn = selector; + selector = undefined; + } + if ( fn === false ) { + fn = returnFalse; + } + return this.each( function() { + jQuery.event.remove( this, types, fn, selector ); + } ); + } +} ); + + +var + + // Support: IE <=10 - 11, Edge 12 - 13 only + // In IE/Edge using regex groups here causes severe slowdowns. + // See https://connect.microsoft.com/IE/feedback/details/1736512/ + rnoInnerhtml = /\s*$/g; + +// Prefer a tbody over its parent table for containing new rows +function manipulationTarget( elem, content ) { + if ( nodeName( elem, "table" ) && + nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) { + + return jQuery( elem ).children( "tbody" )[ 0 ] || elem; + } + + return elem; +} + +// Replace/restore the type attribute of script elements for safe DOM manipulation +function disableScript( elem ) { + elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type; + return elem; +} +function restoreScript( elem ) { + if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) { + elem.type = elem.type.slice( 5 ); + } else { + elem.removeAttribute( "type" ); + } + + return elem; +} + +function cloneCopyEvent( src, dest ) { + var i, l, type, pdataOld, udataOld, udataCur, events; + + if ( dest.nodeType !== 1 ) { + return; + } + + // 1. Copy private data: events, handlers, etc. + if ( dataPriv.hasData( src ) ) { + pdataOld = dataPriv.get( src ); + events = pdataOld.events; + + if ( events ) { + dataPriv.remove( dest, "handle events" ); + + for ( type in events ) { + for ( i = 0, l = events[ type ].length; i < l; i++ ) { + jQuery.event.add( dest, type, events[ type ][ i ] ); + } + } + } + } + + // 2. Copy user data + if ( dataUser.hasData( src ) ) { + udataOld = dataUser.access( src ); + udataCur = jQuery.extend( {}, udataOld ); + + dataUser.set( dest, udataCur ); + } +} + +// Fix IE bugs, see support tests +function fixInput( src, dest ) { + var nodeName = dest.nodeName.toLowerCase(); + + // Fails to persist the checked state of a cloned checkbox or radio button. + if ( nodeName === "input" && rcheckableType.test( src.type ) ) { + dest.checked = src.checked; + + // Fails to return the selected option to the default selected state when cloning options + } else if ( nodeName === "input" || nodeName === "textarea" ) { + dest.defaultValue = src.defaultValue; + } +} + +function domManip( collection, args, callback, ignored ) { + + // Flatten any nested arrays + args = flat( args ); + + var fragment, first, scripts, hasScripts, node, doc, + i = 0, + l = collection.length, + iNoClone = l - 1, + value = args[ 0 ], + valueIsFunction = isFunction( value ); + + // We can't cloneNode fragments that contain checked, in WebKit + if ( valueIsFunction || + ( l > 1 && typeof value === "string" && + !support.checkClone && rchecked.test( value ) ) ) { + return collection.each( function( index ) { + var self = collection.eq( index ); + if ( valueIsFunction ) { + args[ 0 ] = value.call( this, index, self.html() ); + } + domManip( self, args, callback, ignored ); + } ); + } + + if ( l ) { + fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored ); + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; + } + + // Require either new content or an interest in ignored elements to invoke the callback + if ( first || ignored ) { + scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); + hasScripts = scripts.length; + + // Use the original fragment for the last item + // instead of the first because it can end up + // being emptied incorrectly in certain situations (#8070). + for ( ; i < l; i++ ) { + node = fragment; + + if ( i !== iNoClone ) { + node = jQuery.clone( node, true, true ); + + // Keep references to cloned scripts for later restoration + if ( hasScripts ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( scripts, getAll( node, "script" ) ); + } + } + + callback.call( collection[ i ], node, i ); + } + + if ( hasScripts ) { + doc = scripts[ scripts.length - 1 ].ownerDocument; + + // Reenable scripts + jQuery.map( scripts, restoreScript ); + + // Evaluate executable scripts on first document insertion + for ( i = 0; i < hasScripts; i++ ) { + node = scripts[ i ]; + if ( rscriptType.test( node.type || "" ) && + !dataPriv.access( node, "globalEval" ) && + jQuery.contains( doc, node ) ) { + + if ( node.src && ( node.type || "" ).toLowerCase() !== "module" ) { + + // Optional AJAX dependency, but won't run scripts if not present + if ( jQuery._evalUrl && !node.noModule ) { + jQuery._evalUrl( node.src, { + nonce: node.nonce || node.getAttribute( "nonce" ) + }, doc ); + } + } else { + DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc ); + } + } + } + } + } + } + + return collection; +} + +function remove( elem, selector, keepData ) { + var node, + nodes = selector ? jQuery.filter( selector, elem ) : elem, + i = 0; + + for ( ; ( node = nodes[ i ] ) != null; i++ ) { + if ( !keepData && node.nodeType === 1 ) { + jQuery.cleanData( getAll( node ) ); + } + + if ( node.parentNode ) { + if ( keepData && isAttached( node ) ) { + setGlobalEval( getAll( node, "script" ) ); + } + node.parentNode.removeChild( node ); + } + } + + return elem; +} + +jQuery.extend( { + htmlPrefilter: function( html ) { + return html; + }, + + clone: function( elem, dataAndEvents, deepDataAndEvents ) { + var i, l, srcElements, destElements, + clone = elem.cloneNode( true ), + inPage = isAttached( elem ); + + // Fix IE cloning issues + if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && + !jQuery.isXMLDoc( elem ) ) { + + // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2 + destElements = getAll( clone ); + srcElements = getAll( elem ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + fixInput( srcElements[ i ], destElements[ i ] ); + } + } + + // Copy the events from the original to the clone + if ( dataAndEvents ) { + if ( deepDataAndEvents ) { + srcElements = srcElements || getAll( elem ); + destElements = destElements || getAll( clone ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + cloneCopyEvent( srcElements[ i ], destElements[ i ] ); + } + } else { + cloneCopyEvent( elem, clone ); + } + } + + // Preserve script evaluation history + destElements = getAll( clone, "script" ); + if ( destElements.length > 0 ) { + setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); + } + + // Return the cloned set + return clone; + }, + + cleanData: function( elems ) { + var data, elem, type, + special = jQuery.event.special, + i = 0; + + for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) { + if ( acceptData( elem ) ) { + if ( ( data = elem[ dataPriv.expando ] ) ) { + if ( data.events ) { + for ( type in data.events ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); + + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } + } + } + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataPriv.expando ] = undefined; + } + if ( elem[ dataUser.expando ] ) { + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataUser.expando ] = undefined; + } + } + } + } +} ); + +jQuery.fn.extend( { + detach: function( selector ) { + return remove( this, selector, true ); + }, + + remove: function( selector ) { + return remove( this, selector ); + }, + + text: function( value ) { + return access( this, function( value ) { + return value === undefined ? + jQuery.text( this ) : + this.empty().each( function() { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + this.textContent = value; + } + } ); + }, null, value, arguments.length ); + }, + + append: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.appendChild( elem ); + } + } ); + }, + + prepend: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.insertBefore( elem, target.firstChild ); + } + } ); + }, + + before: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this ); + } + } ); + }, + + after: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + } + } ); + }, + + empty: function() { + var elem, + i = 0; + + for ( ; ( elem = this[ i ] ) != null; i++ ) { + if ( elem.nodeType === 1 ) { + + // Prevent memory leaks + jQuery.cleanData( getAll( elem, false ) ); + + // Remove any remaining nodes + elem.textContent = ""; + } + } + + return this; + }, + + clone: function( dataAndEvents, deepDataAndEvents ) { + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + + return this.map( function() { + return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); + } ); + }, + + html: function( value ) { + return access( this, function( value ) { + var elem = this[ 0 ] || {}, + i = 0, + l = this.length; + + if ( value === undefined && elem.nodeType === 1 ) { + return elem.innerHTML; + } + + // See if we can take a shortcut and just use innerHTML + if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { + + value = jQuery.htmlPrefilter( value ); + + try { + for ( ; i < l; i++ ) { + elem = this[ i ] || {}; + + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + elem.innerHTML = value; + } + } + + elem = 0; + + // If using innerHTML throws an exception, use the fallback method + } catch ( e ) {} + } + + if ( elem ) { + this.empty().append( value ); + } + }, null, value, arguments.length ); + }, + + replaceWith: function() { + var ignored = []; + + // Make the changes, replacing each non-ignored context element with the new content + return domManip( this, arguments, function( elem ) { + var parent = this.parentNode; + + if ( jQuery.inArray( this, ignored ) < 0 ) { + jQuery.cleanData( getAll( this ) ); + if ( parent ) { + parent.replaceChild( elem, this ); + } + } + + // Force callback invocation + }, ignored ); + } +} ); + +jQuery.each( { + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" +}, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var elems, + ret = [], + insert = jQuery( selector ), + last = insert.length - 1, + i = 0; + + for ( ; i <= last; i++ ) { + elems = i === last ? this : this.clone( true ); + jQuery( insert[ i ] )[ original ]( elems ); + + // Support: Android <=4.0 only, PhantomJS 1 only + // .get() because push.apply(_, arraylike) throws on ancient WebKit + push.apply( ret, elems.get() ); + } + + return this.pushStack( ret ); + }; +} ); +var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); + +var getStyles = function( elem ) { + + // Support: IE <=11 only, Firefox <=30 (#15098, #14150) + // IE throws on elements created in popups + // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" + var view = elem.ownerDocument.defaultView; + + if ( !view || !view.opener ) { + view = window; + } + + return view.getComputedStyle( elem ); + }; + +var swap = function( elem, options, callback ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.call( elem ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; +}; + + +var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); + + + +( function() { + + // Executing both pixelPosition & boxSizingReliable tests require only one layout + // so they're executed at the same time to save the second computation. + function computeStyleTests() { + + // This is a singleton, we need to execute it only once + if ( !div ) { + return; + } + + container.style.cssText = "position:absolute;left:-11111px;width:60px;" + + "margin-top:1px;padding:0;border:0"; + div.style.cssText = + "position:relative;display:block;box-sizing:border-box;overflow:scroll;" + + "margin:auto;border:1px;padding:1px;" + + "width:60%;top:1%"; + documentElement.appendChild( container ).appendChild( div ); + + var divStyle = window.getComputedStyle( div ); + pixelPositionVal = divStyle.top !== "1%"; + + // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 + reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12; + + // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3 + // Some styles come back with percentage values, even though they shouldn't + div.style.right = "60%"; + pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36; + + // Support: IE 9 - 11 only + // Detect misreporting of content dimensions for box-sizing:border-box elements + boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36; + + // Support: IE 9 only + // Detect overflow:scroll screwiness (gh-3699) + // Support: Chrome <=64 + // Don't get tricked when zoom affects offsetWidth (gh-4029) + div.style.position = "absolute"; + scrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12; + + documentElement.removeChild( container ); + + // Nullify the div so it wouldn't be stored in the memory and + // it will also be a sign that checks already performed + div = null; + } + + function roundPixelMeasures( measure ) { + return Math.round( parseFloat( measure ) ); + } + + var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal, + reliableTrDimensionsVal, reliableMarginLeftVal, + container = document.createElement( "div" ), + div = document.createElement( "div" ); + + // Finish early in limited (non-browser) environments + if ( !div.style ) { + return; + } + + // Support: IE <=9 - 11 only + // Style of cloned element affects source element cloned (#8908) + div.style.backgroundClip = "content-box"; + div.cloneNode( true ).style.backgroundClip = ""; + support.clearCloneStyle = div.style.backgroundClip === "content-box"; + + jQuery.extend( support, { + boxSizingReliable: function() { + computeStyleTests(); + return boxSizingReliableVal; + }, + pixelBoxStyles: function() { + computeStyleTests(); + return pixelBoxStylesVal; + }, + pixelPosition: function() { + computeStyleTests(); + return pixelPositionVal; + }, + reliableMarginLeft: function() { + computeStyleTests(); + return reliableMarginLeftVal; + }, + scrollboxSize: function() { + computeStyleTests(); + return scrollboxSizeVal; + }, + + // Support: IE 9 - 11+, Edge 15 - 18+ + // IE/Edge misreport `getComputedStyle` of table rows with width/height + // set in CSS while `offset*` properties report correct values. + // Behavior in IE 9 is more subtle than in newer versions & it passes + // some versions of this test; make sure not to make it pass there! + reliableTrDimensions: function() { + var table, tr, trChild, trStyle; + if ( reliableTrDimensionsVal == null ) { + table = document.createElement( "table" ); + tr = document.createElement( "tr" ); + trChild = document.createElement( "div" ); + + table.style.cssText = "position:absolute;left:-11111px"; + tr.style.height = "1px"; + trChild.style.height = "9px"; + + documentElement + .appendChild( table ) + .appendChild( tr ) + .appendChild( trChild ); + + trStyle = window.getComputedStyle( tr ); + reliableTrDimensionsVal = parseInt( trStyle.height ) > 3; + + documentElement.removeChild( table ); + } + return reliableTrDimensionsVal; + } + } ); +} )(); + + +function curCSS( elem, name, computed ) { + var width, minWidth, maxWidth, ret, + + // Support: Firefox 51+ + // Retrieving style before computed somehow + // fixes an issue with getting wrong values + // on detached elements + style = elem.style; + + computed = computed || getStyles( elem ); + + // getPropertyValue is needed for: + // .css('filter') (IE 9 only, #12537) + // .css('--customProperty) (#3144) + if ( computed ) { + ret = computed.getPropertyValue( name ) || computed[ name ]; + + if ( ret === "" && !isAttached( elem ) ) { + ret = jQuery.style( elem, name ); + } + + // A tribute to the "awesome hack by Dean Edwards" + // Android Browser returns percentage for some values, + // but width seems to be reliably pixels. + // This is against the CSSOM draft spec: + // https://drafts.csswg.org/cssom/#resolved-values + if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) { + + // Remember the original values + width = style.width; + minWidth = style.minWidth; + maxWidth = style.maxWidth; + + // Put in the new values to get a computed value out + style.minWidth = style.maxWidth = style.width = ret; + ret = computed.width; + + // Revert the changed values + style.width = width; + style.minWidth = minWidth; + style.maxWidth = maxWidth; + } + } + + return ret !== undefined ? + + // Support: IE <=9 - 11 only + // IE returns zIndex value as an integer. + ret + "" : + ret; +} + + +function addGetHookIf( conditionFn, hookFn ) { + + // Define the hook, we'll check on the first run if it's really needed. + return { + get: function() { + if ( conditionFn() ) { + + // Hook not needed (or it's not possible to use it due + // to missing dependency), remove it. + delete this.get; + return; + } + + // Hook needed; redefine it so that the support test is not executed again. + return ( this.get = hookFn ).apply( this, arguments ); + } + }; +} + + +var cssPrefixes = [ "Webkit", "Moz", "ms" ], + emptyStyle = document.createElement( "div" ).style, + vendorProps = {}; + +// Return a vendor-prefixed property or undefined +function vendorPropName( name ) { + + // Check for vendor prefixed names + var capName = name[ 0 ].toUpperCase() + name.slice( 1 ), + i = cssPrefixes.length; + + while ( i-- ) { + name = cssPrefixes[ i ] + capName; + if ( name in emptyStyle ) { + return name; + } + } +} + +// Return a potentially-mapped jQuery.cssProps or vendor prefixed property +function finalPropName( name ) { + var final = jQuery.cssProps[ name ] || vendorProps[ name ]; + + if ( final ) { + return final; + } + if ( name in emptyStyle ) { + return name; + } + return vendorProps[ name ] = vendorPropName( name ) || name; +} + + +var + + // Swappable if display is none or starts with table + // except "table", "table-cell", or "table-caption" + // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display + rdisplayswap = /^(none|table(?!-c[ea]).+)/, + rcustomProp = /^--/, + cssShow = { position: "absolute", visibility: "hidden", display: "block" }, + cssNormalTransform = { + letterSpacing: "0", + fontWeight: "400" + }; + +function setPositiveNumber( _elem, value, subtract ) { + + // Any relative (+/-) values have already been + // normalized at this point + var matches = rcssNum.exec( value ); + return matches ? + + // Guard against undefined "subtract", e.g., when used as in cssHooks + Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) : + value; +} + +function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) { + var i = dimension === "width" ? 1 : 0, + extra = 0, + delta = 0; + + // Adjustment may not be necessary + if ( box === ( isBorderBox ? "border" : "content" ) ) { + return 0; + } + + for ( ; i < 4; i += 2 ) { + + // Both box models exclude margin + if ( box === "margin" ) { + delta += jQuery.css( elem, box + cssExpand[ i ], true, styles ); + } + + // If we get here with a content-box, we're seeking "padding" or "border" or "margin" + if ( !isBorderBox ) { + + // Add padding + delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + + // For "border" or "margin", add border + if ( box !== "padding" ) { + delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + + // But still keep track of it otherwise + } else { + extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + + // If we get here with a border-box (content + padding + border), we're seeking "content" or + // "padding" or "margin" + } else { + + // For "content", subtract padding + if ( box === "content" ) { + delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + } + + // For "content" or "padding", subtract border + if ( box !== "margin" ) { + delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } + } + + // Account for positive content-box scroll gutter when requested by providing computedVal + if ( !isBorderBox && computedVal >= 0 ) { + + // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border + // Assuming integer scroll gutter, subtract the rest and round down + delta += Math.max( 0, Math.ceil( + elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - + computedVal - + delta - + extra - + 0.5 + + // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter + // Use an explicit zero to avoid NaN (gh-3964) + ) ) || 0; + } + + return delta; +} + +function getWidthOrHeight( elem, dimension, extra ) { + + // Start with computed style + var styles = getStyles( elem ), + + // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322). + // Fake content-box until we know it's needed to know the true value. + boxSizingNeeded = !support.boxSizingReliable() || extra, + isBorderBox = boxSizingNeeded && + jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + valueIsBorderBox = isBorderBox, + + val = curCSS( elem, dimension, styles ), + offsetProp = "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ); + + // Support: Firefox <=54 + // Return a confounding non-pixel value or feign ignorance, as appropriate. + if ( rnumnonpx.test( val ) ) { + if ( !extra ) { + return val; + } + val = "auto"; + } + + + // Support: IE 9 - 11 only + // Use offsetWidth/offsetHeight for when box sizing is unreliable. + // In those cases, the computed value can be trusted to be border-box. + if ( ( !support.boxSizingReliable() && isBorderBox || + + // Support: IE 10 - 11+, Edge 15 - 18+ + // IE/Edge misreport `getComputedStyle` of table rows with width/height + // set in CSS while `offset*` properties report correct values. + // Interestingly, in some cases IE 9 doesn't suffer from this issue. + !support.reliableTrDimensions() && nodeName( elem, "tr" ) || + + // Fall back to offsetWidth/offsetHeight when value is "auto" + // This happens for inline elements with no explicit setting (gh-3571) + val === "auto" || + + // Support: Android <=4.1 - 4.3 only + // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) + !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) && + + // Make sure the element is visible & connected + elem.getClientRects().length ) { + + isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; + + // Where available, offsetWidth/offsetHeight approximate border box dimensions. + // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the + // retrieved value as a content box dimension. + valueIsBorderBox = offsetProp in elem; + if ( valueIsBorderBox ) { + val = elem[ offsetProp ]; + } + } + + // Normalize "" and auto + val = parseFloat( val ) || 0; + + // Adjust for the element's box model + return ( val + + boxModelAdjustment( + elem, + dimension, + extra || ( isBorderBox ? "border" : "content" ), + valueIsBorderBox, + styles, + + // Provide the current computed size to request scroll gutter calculation (gh-3589) + val + ) + ) + "px"; +} + +jQuery.extend( { + + // Add in style property hooks for overriding the default + // behavior of getting and setting a style property + cssHooks: { + opacity: { + get: function( elem, computed ) { + if ( computed ) { + + // We should always get a number back from opacity + var ret = curCSS( elem, "opacity" ); + return ret === "" ? "1" : ret; + } + } + } + }, + + // Don't automatically add "px" to these possibly-unitless properties + cssNumber: { + "animationIterationCount": true, + "columnCount": true, + "fillOpacity": true, + "flexGrow": true, + "flexShrink": true, + "fontWeight": true, + "gridArea": true, + "gridColumn": true, + "gridColumnEnd": true, + "gridColumnStart": true, + "gridRow": true, + "gridRowEnd": true, + "gridRowStart": true, + "lineHeight": true, + "opacity": true, + "order": true, + "orphans": true, + "widows": true, + "zIndex": true, + "zoom": true + }, + + // Add in properties whose names you wish to fix before + // setting or getting the value + cssProps: {}, + + // Get and set the style property on a DOM Node + style: function( elem, name, value, extra ) { + + // Don't set styles on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { + return; + } + + // Make sure that we're working with the right name + var ret, type, hooks, + origName = camelCase( name ), + isCustomProp = rcustomProp.test( name ), + style = elem.style; + + // Make sure that we're working with the right name. We don't + // want to query the value if it is a CSS custom property + // since they are user-defined. + if ( !isCustomProp ) { + name = finalPropName( origName ); + } + + // Gets hook for the prefixed version, then unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // Check if we're setting a value + if ( value !== undefined ) { + type = typeof value; + + // Convert "+=" or "-=" to relative numbers (#7345) + if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) { + value = adjustCSS( elem, name, ret ); + + // Fixes bug #9237 + type = "number"; + } + + // Make sure that null and NaN values aren't set (#7116) + if ( value == null || value !== value ) { + return; + } + + // If a number was passed in, add the unit (except for certain CSS properties) + // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append + // "px" to a few hardcoded values. + if ( type === "number" && !isCustomProp ) { + value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); + } + + // background-* props affect original clone's values + if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { + style[ name ] = "inherit"; + } + + // If a hook was provided, use that value, otherwise just set the specified value + if ( !hooks || !( "set" in hooks ) || + ( value = hooks.set( elem, value, extra ) ) !== undefined ) { + + if ( isCustomProp ) { + style.setProperty( name, value ); + } else { + style[ name ] = value; + } + } + + } else { + + // If a hook was provided get the non-computed value from there + if ( hooks && "get" in hooks && + ( ret = hooks.get( elem, false, extra ) ) !== undefined ) { + + return ret; + } + + // Otherwise just get the value from the style object + return style[ name ]; + } + }, + + css: function( elem, name, extra, styles ) { + var val, num, hooks, + origName = camelCase( name ), + isCustomProp = rcustomProp.test( name ); + + // Make sure that we're working with the right name. We don't + // want to modify the value if it is a CSS custom property + // since they are user-defined. + if ( !isCustomProp ) { + name = finalPropName( origName ); + } + + // Try prefixed name followed by the unprefixed name + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // If a hook was provided get the computed value from there + if ( hooks && "get" in hooks ) { + val = hooks.get( elem, true, extra ); + } + + // Otherwise, if a way to get the computed value exists, use that + if ( val === undefined ) { + val = curCSS( elem, name, styles ); + } + + // Convert "normal" to computed value + if ( val === "normal" && name in cssNormalTransform ) { + val = cssNormalTransform[ name ]; + } + + // Make numeric if forced or a qualifier was provided and val looks numeric + if ( extra === "" || extra ) { + num = parseFloat( val ); + return extra === true || isFinite( num ) ? num || 0 : val; + } + + return val; + } +} ); + +jQuery.each( [ "height", "width" ], function( _i, dimension ) { + jQuery.cssHooks[ dimension ] = { + get: function( elem, computed, extra ) { + if ( computed ) { + + // Certain elements can have dimension info if we invisibly show them + // but it must have a current display style that would benefit + return rdisplayswap.test( jQuery.css( elem, "display" ) ) && + + // Support: Safari 8+ + // Table columns in Safari have non-zero offsetWidth & zero + // getBoundingClientRect().width unless display is changed. + // Support: IE <=11 only + // Running getBoundingClientRect on a disconnected node + // in IE throws an error. + ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? + swap( elem, cssShow, function() { + return getWidthOrHeight( elem, dimension, extra ); + } ) : + getWidthOrHeight( elem, dimension, extra ); + } + }, + + set: function( elem, value, extra ) { + var matches, + styles = getStyles( elem ), + + // Only read styles.position if the test has a chance to fail + // to avoid forcing a reflow. + scrollboxSizeBuggy = !support.scrollboxSize() && + styles.position === "absolute", + + // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991) + boxSizingNeeded = scrollboxSizeBuggy || extra, + isBorderBox = boxSizingNeeded && + jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + subtract = extra ? + boxModelAdjustment( + elem, + dimension, + extra, + isBorderBox, + styles + ) : + 0; + + // Account for unreliable border-box dimensions by comparing offset* to computed and + // faking a content-box to get border and padding (gh-3699) + if ( isBorderBox && scrollboxSizeBuggy ) { + subtract -= Math.ceil( + elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - + parseFloat( styles[ dimension ] ) - + boxModelAdjustment( elem, dimension, "border", false, styles ) - + 0.5 + ); + } + + // Convert to pixels if value adjustment is needed + if ( subtract && ( matches = rcssNum.exec( value ) ) && + ( matches[ 3 ] || "px" ) !== "px" ) { + + elem.style[ dimension ] = value; + value = jQuery.css( elem, dimension ); + } + + return setPositiveNumber( elem, value, subtract ); + } + }; +} ); + +jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, + function( elem, computed ) { + if ( computed ) { + return ( parseFloat( curCSS( elem, "marginLeft" ) ) || + elem.getBoundingClientRect().left - + swap( elem, { marginLeft: 0 }, function() { + return elem.getBoundingClientRect().left; + } ) + ) + "px"; + } + } +); + +// These hooks are used by animate to expand properties +jQuery.each( { + margin: "", + padding: "", + border: "Width" +}, function( prefix, suffix ) { + jQuery.cssHooks[ prefix + suffix ] = { + expand: function( value ) { + var i = 0, + expanded = {}, + + // Assumes a single number if not a string + parts = typeof value === "string" ? value.split( " " ) : [ value ]; + + for ( ; i < 4; i++ ) { + expanded[ prefix + cssExpand[ i ] + suffix ] = + parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; + } + + return expanded; + } + }; + + if ( prefix !== "margin" ) { + jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; + } +} ); + +jQuery.fn.extend( { + css: function( name, value ) { + return access( this, function( elem, name, value ) { + var styles, len, + map = {}, + i = 0; + + if ( Array.isArray( name ) ) { + styles = getStyles( elem ); + len = name.length; + + for ( ; i < len; i++ ) { + map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); + } + + return map; + } + + return value !== undefined ? + jQuery.style( elem, name, value ) : + jQuery.css( elem, name ); + }, name, value, arguments.length > 1 ); + } +} ); + + +function Tween( elem, options, prop, end, easing ) { + return new Tween.prototype.init( elem, options, prop, end, easing ); +} +jQuery.Tween = Tween; + +Tween.prototype = { + constructor: Tween, + init: function( elem, options, prop, end, easing, unit ) { + this.elem = elem; + this.prop = prop; + this.easing = easing || jQuery.easing._default; + this.options = options; + this.start = this.now = this.cur(); + this.end = end; + this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); + }, + cur: function() { + var hooks = Tween.propHooks[ this.prop ]; + + return hooks && hooks.get ? + hooks.get( this ) : + Tween.propHooks._default.get( this ); + }, + run: function( percent ) { + var eased, + hooks = Tween.propHooks[ this.prop ]; + + if ( this.options.duration ) { + this.pos = eased = jQuery.easing[ this.easing ]( + percent, this.options.duration * percent, 0, 1, this.options.duration + ); + } else { + this.pos = eased = percent; + } + this.now = ( this.end - this.start ) * eased + this.start; + + if ( this.options.step ) { + this.options.step.call( this.elem, this.now, this ); + } + + if ( hooks && hooks.set ) { + hooks.set( this ); + } else { + Tween.propHooks._default.set( this ); + } + return this; + } +}; + +Tween.prototype.init.prototype = Tween.prototype; + +Tween.propHooks = { + _default: { + get: function( tween ) { + var result; + + // Use a property on the element directly when it is not a DOM element, + // or when there is no matching style property that exists. + if ( tween.elem.nodeType !== 1 || + tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) { + return tween.elem[ tween.prop ]; + } + + // Passing an empty string as a 3rd parameter to .css will automatically + // attempt a parseFloat and fallback to a string if the parse fails. + // Simple values such as "10px" are parsed to Float; + // complex values such as "rotate(1rad)" are returned as-is. + result = jQuery.css( tween.elem, tween.prop, "" ); + + // Empty strings, null, undefined and "auto" are converted to 0. + return !result || result === "auto" ? 0 : result; + }, + set: function( tween ) { + + // Use step hook for back compat. + // Use cssHook if its there. + // Use .style if available and use plain properties where available. + if ( jQuery.fx.step[ tween.prop ] ) { + jQuery.fx.step[ tween.prop ]( tween ); + } else if ( tween.elem.nodeType === 1 && ( + jQuery.cssHooks[ tween.prop ] || + tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) { + jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); + } else { + tween.elem[ tween.prop ] = tween.now; + } + } + } +}; + +// Support: IE <=9 only +// Panic based approach to setting things on disconnected nodes +Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { + set: function( tween ) { + if ( tween.elem.nodeType && tween.elem.parentNode ) { + tween.elem[ tween.prop ] = tween.now; + } + } +}; + +jQuery.easing = { + linear: function( p ) { + return p; + }, + swing: function( p ) { + return 0.5 - Math.cos( p * Math.PI ) / 2; + }, + _default: "swing" +}; + +jQuery.fx = Tween.prototype.init; + +// Back compat <1.8 extension point +jQuery.fx.step = {}; + + + + +var + fxNow, inProgress, + rfxtypes = /^(?:toggle|show|hide)$/, + rrun = /queueHooks$/; + +function schedule() { + if ( inProgress ) { + if ( document.hidden === false && window.requestAnimationFrame ) { + window.requestAnimationFrame( schedule ); + } else { + window.setTimeout( schedule, jQuery.fx.interval ); + } + + jQuery.fx.tick(); + } +} + +// Animations created synchronously will run synchronously +function createFxNow() { + window.setTimeout( function() { + fxNow = undefined; + } ); + return ( fxNow = Date.now() ); +} + +// Generate parameters to create a standard animation +function genFx( type, includeWidth ) { + var which, + i = 0, + attrs = { height: type }; + + // If we include width, step value is 1 to do all cssExpand values, + // otherwise step value is 2 to skip over Left and Right + includeWidth = includeWidth ? 1 : 0; + for ( ; i < 4; i += 2 - includeWidth ) { + which = cssExpand[ i ]; + attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; + } + + if ( includeWidth ) { + attrs.opacity = attrs.width = type; + } + + return attrs; +} + +function createTween( value, prop, animation ) { + var tween, + collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ), + index = 0, + length = collection.length; + for ( ; index < length; index++ ) { + if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) { + + // We're done with this property + return tween; + } + } +} + +function defaultPrefilter( elem, props, opts ) { + var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display, + isBox = "width" in props || "height" in props, + anim = this, + orig = {}, + style = elem.style, + hidden = elem.nodeType && isHiddenWithinTree( elem ), + dataShow = dataPriv.get( elem, "fxshow" ); + + // Queue-skipping animations hijack the fx hooks + if ( !opts.queue ) { + hooks = jQuery._queueHooks( elem, "fx" ); + if ( hooks.unqueued == null ) { + hooks.unqueued = 0; + oldfire = hooks.empty.fire; + hooks.empty.fire = function() { + if ( !hooks.unqueued ) { + oldfire(); + } + }; + } + hooks.unqueued++; + + anim.always( function() { + + // Ensure the complete handler is called before this completes + anim.always( function() { + hooks.unqueued--; + if ( !jQuery.queue( elem, "fx" ).length ) { + hooks.empty.fire(); + } + } ); + } ); + } + + // Detect show/hide animations + for ( prop in props ) { + value = props[ prop ]; + if ( rfxtypes.test( value ) ) { + delete props[ prop ]; + toggle = toggle || value === "toggle"; + if ( value === ( hidden ? "hide" : "show" ) ) { + + // Pretend to be hidden if this is a "show" and + // there is still data from a stopped show/hide + if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { + hidden = true; + + // Ignore all other no-op show/hide data + } else { + continue; + } + } + orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); + } + } + + // Bail out if this is a no-op like .hide().hide() + propTween = !jQuery.isEmptyObject( props ); + if ( !propTween && jQuery.isEmptyObject( orig ) ) { + return; + } + + // Restrict "overflow" and "display" styles during box animations + if ( isBox && elem.nodeType === 1 ) { + + // Support: IE <=9 - 11, Edge 12 - 15 + // Record all 3 overflow attributes because IE does not infer the shorthand + // from identically-valued overflowX and overflowY and Edge just mirrors + // the overflowX value there. + opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; + + // Identify a display type, preferring old show/hide data over the CSS cascade + restoreDisplay = dataShow && dataShow.display; + if ( restoreDisplay == null ) { + restoreDisplay = dataPriv.get( elem, "display" ); + } + display = jQuery.css( elem, "display" ); + if ( display === "none" ) { + if ( restoreDisplay ) { + display = restoreDisplay; + } else { + + // Get nonempty value(s) by temporarily forcing visibility + showHide( [ elem ], true ); + restoreDisplay = elem.style.display || restoreDisplay; + display = jQuery.css( elem, "display" ); + showHide( [ elem ] ); + } + } + + // Animate inline elements as inline-block + if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) { + if ( jQuery.css( elem, "float" ) === "none" ) { + + // Restore the original display value at the end of pure show/hide animations + if ( !propTween ) { + anim.done( function() { + style.display = restoreDisplay; + } ); + if ( restoreDisplay == null ) { + display = style.display; + restoreDisplay = display === "none" ? "" : display; + } + } + style.display = "inline-block"; + } + } + } + + if ( opts.overflow ) { + style.overflow = "hidden"; + anim.always( function() { + style.overflow = opts.overflow[ 0 ]; + style.overflowX = opts.overflow[ 1 ]; + style.overflowY = opts.overflow[ 2 ]; + } ); + } + + // Implement show/hide animations + propTween = false; + for ( prop in orig ) { + + // General show/hide setup for this element animation + if ( !propTween ) { + if ( dataShow ) { + if ( "hidden" in dataShow ) { + hidden = dataShow.hidden; + } + } else { + dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } ); + } + + // Store hidden/visible for toggle so `.stop().toggle()` "reverses" + if ( toggle ) { + dataShow.hidden = !hidden; + } + + // Show elements before animating them + if ( hidden ) { + showHide( [ elem ], true ); + } + + /* eslint-disable no-loop-func */ + + anim.done( function() { + + /* eslint-enable no-loop-func */ + + // The final step of a "hide" animation is actually hiding the element + if ( !hidden ) { + showHide( [ elem ] ); + } + dataPriv.remove( elem, "fxshow" ); + for ( prop in orig ) { + jQuery.style( elem, prop, orig[ prop ] ); + } + } ); + } + + // Per-property setup + propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); + if ( !( prop in dataShow ) ) { + dataShow[ prop ] = propTween.start; + if ( hidden ) { + propTween.end = propTween.start; + propTween.start = 0; + } + } + } +} + +function propFilter( props, specialEasing ) { + var index, name, easing, value, hooks; + + // camelCase, specialEasing and expand cssHook pass + for ( index in props ) { + name = camelCase( index ); + easing = specialEasing[ name ]; + value = props[ index ]; + if ( Array.isArray( value ) ) { + easing = value[ 1 ]; + value = props[ index ] = value[ 0 ]; + } + + if ( index !== name ) { + props[ name ] = value; + delete props[ index ]; + } + + hooks = jQuery.cssHooks[ name ]; + if ( hooks && "expand" in hooks ) { + value = hooks.expand( value ); + delete props[ name ]; + + // Not quite $.extend, this won't overwrite existing keys. + // Reusing 'index' because we have the correct "name" + for ( index in value ) { + if ( !( index in props ) ) { + props[ index ] = value[ index ]; + specialEasing[ index ] = easing; + } + } + } else { + specialEasing[ name ] = easing; + } + } +} + +function Animation( elem, properties, options ) { + var result, + stopped, + index = 0, + length = Animation.prefilters.length, + deferred = jQuery.Deferred().always( function() { + + // Don't match elem in the :animated selector + delete tick.elem; + } ), + tick = function() { + if ( stopped ) { + return false; + } + var currentTime = fxNow || createFxNow(), + remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), + + // Support: Android 2.3 only + // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497) + temp = remaining / animation.duration || 0, + percent = 1 - temp, + index = 0, + length = animation.tweens.length; + + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( percent ); + } + + deferred.notifyWith( elem, [ animation, percent, remaining ] ); + + // If there's more to do, yield + if ( percent < 1 && length ) { + return remaining; + } + + // If this was an empty animation, synthesize a final progress notification + if ( !length ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + } + + // Resolve the animation and report its conclusion + deferred.resolveWith( elem, [ animation ] ); + return false; + }, + animation = deferred.promise( { + elem: elem, + props: jQuery.extend( {}, properties ), + opts: jQuery.extend( true, { + specialEasing: {}, + easing: jQuery.easing._default + }, options ), + originalProperties: properties, + originalOptions: options, + startTime: fxNow || createFxNow(), + duration: options.duration, + tweens: [], + createTween: function( prop, end ) { + var tween = jQuery.Tween( elem, animation.opts, prop, end, + animation.opts.specialEasing[ prop ] || animation.opts.easing ); + animation.tweens.push( tween ); + return tween; + }, + stop: function( gotoEnd ) { + var index = 0, + + // If we are going to the end, we want to run all the tweens + // otherwise we skip this part + length = gotoEnd ? animation.tweens.length : 0; + if ( stopped ) { + return this; + } + stopped = true; + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( 1 ); + } + + // Resolve when we played the last frame; otherwise, reject + if ( gotoEnd ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + deferred.resolveWith( elem, [ animation, gotoEnd ] ); + } else { + deferred.rejectWith( elem, [ animation, gotoEnd ] ); + } + return this; + } + } ), + props = animation.props; + + propFilter( props, animation.opts.specialEasing ); + + for ( ; index < length; index++ ) { + result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts ); + if ( result ) { + if ( isFunction( result.stop ) ) { + jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = + result.stop.bind( result ); + } + return result; + } + } + + jQuery.map( props, createTween, animation ); + + if ( isFunction( animation.opts.start ) ) { + animation.opts.start.call( elem, animation ); + } + + // Attach callbacks from options + animation + .progress( animation.opts.progress ) + .done( animation.opts.done, animation.opts.complete ) + .fail( animation.opts.fail ) + .always( animation.opts.always ); + + jQuery.fx.timer( + jQuery.extend( tick, { + elem: elem, + anim: animation, + queue: animation.opts.queue + } ) + ); + + return animation; +} + +jQuery.Animation = jQuery.extend( Animation, { + + tweeners: { + "*": [ function( prop, value ) { + var tween = this.createTween( prop, value ); + adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween ); + return tween; + } ] + }, + + tweener: function( props, callback ) { + if ( isFunction( props ) ) { + callback = props; + props = [ "*" ]; + } else { + props = props.match( rnothtmlwhite ); + } + + var prop, + index = 0, + length = props.length; + + for ( ; index < length; index++ ) { + prop = props[ index ]; + Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || []; + Animation.tweeners[ prop ].unshift( callback ); + } + }, + + prefilters: [ defaultPrefilter ], + + prefilter: function( callback, prepend ) { + if ( prepend ) { + Animation.prefilters.unshift( callback ); + } else { + Animation.prefilters.push( callback ); + } + } +} ); + +jQuery.speed = function( speed, easing, fn ) { + var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { + complete: fn || !fn && easing || + isFunction( speed ) && speed, + duration: speed, + easing: fn && easing || easing && !isFunction( easing ) && easing + }; + + // Go to the end state if fx are off + if ( jQuery.fx.off ) { + opt.duration = 0; + + } else { + if ( typeof opt.duration !== "number" ) { + if ( opt.duration in jQuery.fx.speeds ) { + opt.duration = jQuery.fx.speeds[ opt.duration ]; + + } else { + opt.duration = jQuery.fx.speeds._default; + } + } + } + + // Normalize opt.queue - true/undefined/null -> "fx" + if ( opt.queue == null || opt.queue === true ) { + opt.queue = "fx"; + } + + // Queueing + opt.old = opt.complete; + + opt.complete = function() { + if ( isFunction( opt.old ) ) { + opt.old.call( this ); + } + + if ( opt.queue ) { + jQuery.dequeue( this, opt.queue ); + } + }; + + return opt; +}; + +jQuery.fn.extend( { + fadeTo: function( speed, to, easing, callback ) { + + // Show any hidden elements after setting opacity to 0 + return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show() + + // Animate to the value specified + .end().animate( { opacity: to }, speed, easing, callback ); + }, + animate: function( prop, speed, easing, callback ) { + var empty = jQuery.isEmptyObject( prop ), + optall = jQuery.speed( speed, easing, callback ), + doAnimation = function() { + + // Operate on a copy of prop so per-property easing won't be lost + var anim = Animation( this, jQuery.extend( {}, prop ), optall ); + + // Empty animations, or finishing resolves immediately + if ( empty || dataPriv.get( this, "finish" ) ) { + anim.stop( true ); + } + }; + doAnimation.finish = doAnimation; + + return empty || optall.queue === false ? + this.each( doAnimation ) : + this.queue( optall.queue, doAnimation ); + }, + stop: function( type, clearQueue, gotoEnd ) { + var stopQueue = function( hooks ) { + var stop = hooks.stop; + delete hooks.stop; + stop( gotoEnd ); + }; + + if ( typeof type !== "string" ) { + gotoEnd = clearQueue; + clearQueue = type; + type = undefined; + } + if ( clearQueue ) { + this.queue( type || "fx", [] ); + } + + return this.each( function() { + var dequeue = true, + index = type != null && type + "queueHooks", + timers = jQuery.timers, + data = dataPriv.get( this ); + + if ( index ) { + if ( data[ index ] && data[ index ].stop ) { + stopQueue( data[ index ] ); + } + } else { + for ( index in data ) { + if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { + stopQueue( data[ index ] ); + } + } + } + + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && + ( type == null || timers[ index ].queue === type ) ) { + + timers[ index ].anim.stop( gotoEnd ); + dequeue = false; + timers.splice( index, 1 ); + } + } + + // Start the next in the queue if the last step wasn't forced. + // Timers currently will call their complete callbacks, which + // will dequeue but only if they were gotoEnd. + if ( dequeue || !gotoEnd ) { + jQuery.dequeue( this, type ); + } + } ); + }, + finish: function( type ) { + if ( type !== false ) { + type = type || "fx"; + } + return this.each( function() { + var index, + data = dataPriv.get( this ), + queue = data[ type + "queue" ], + hooks = data[ type + "queueHooks" ], + timers = jQuery.timers, + length = queue ? queue.length : 0; + + // Enable finishing flag on private data + data.finish = true; + + // Empty the queue first + jQuery.queue( this, type, [] ); + + if ( hooks && hooks.stop ) { + hooks.stop.call( this, true ); + } + + // Look for any active animations, and finish them + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && timers[ index ].queue === type ) { + timers[ index ].anim.stop( true ); + timers.splice( index, 1 ); + } + } + + // Look for any animations in the old queue and finish them + for ( index = 0; index < length; index++ ) { + if ( queue[ index ] && queue[ index ].finish ) { + queue[ index ].finish.call( this ); + } + } + + // Turn off finishing flag + delete data.finish; + } ); + } +} ); + +jQuery.each( [ "toggle", "show", "hide" ], function( _i, name ) { + var cssFn = jQuery.fn[ name ]; + jQuery.fn[ name ] = function( speed, easing, callback ) { + return speed == null || typeof speed === "boolean" ? + cssFn.apply( this, arguments ) : + this.animate( genFx( name, true ), speed, easing, callback ); + }; +} ); + +// Generate shortcuts for custom animations +jQuery.each( { + slideDown: genFx( "show" ), + slideUp: genFx( "hide" ), + slideToggle: genFx( "toggle" ), + fadeIn: { opacity: "show" }, + fadeOut: { opacity: "hide" }, + fadeToggle: { opacity: "toggle" } +}, function( name, props ) { + jQuery.fn[ name ] = function( speed, easing, callback ) { + return this.animate( props, speed, easing, callback ); + }; +} ); + +jQuery.timers = []; +jQuery.fx.tick = function() { + var timer, + i = 0, + timers = jQuery.timers; + + fxNow = Date.now(); + + for ( ; i < timers.length; i++ ) { + timer = timers[ i ]; + + // Run the timer and safely remove it when done (allowing for external removal) + if ( !timer() && timers[ i ] === timer ) { + timers.splice( i--, 1 ); + } + } + + if ( !timers.length ) { + jQuery.fx.stop(); + } + fxNow = undefined; +}; + +jQuery.fx.timer = function( timer ) { + jQuery.timers.push( timer ); + jQuery.fx.start(); +}; + +jQuery.fx.interval = 13; +jQuery.fx.start = function() { + if ( inProgress ) { + return; + } + + inProgress = true; + schedule(); +}; + +jQuery.fx.stop = function() { + inProgress = null; +}; + +jQuery.fx.speeds = { + slow: 600, + fast: 200, + + // Default speed + _default: 400 +}; + + +// Based off of the plugin by Clint Helfers, with permission. +// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/ +jQuery.fn.delay = function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; + type = type || "fx"; + + return this.queue( type, function( next, hooks ) { + var timeout = window.setTimeout( next, time ); + hooks.stop = function() { + window.clearTimeout( timeout ); + }; + } ); +}; + + +( function() { + var input = document.createElement( "input" ), + select = document.createElement( "select" ), + opt = select.appendChild( document.createElement( "option" ) ); + + input.type = "checkbox"; + + // Support: Android <=4.3 only + // Default value for a checkbox should be "on" + support.checkOn = input.value !== ""; + + // Support: IE <=11 only + // Must access selectedIndex to make default options select + support.optSelected = opt.selected; + + // Support: IE <=11 only + // An input loses its value after becoming a radio + input = document.createElement( "input" ); + input.value = "t"; + input.type = "radio"; + support.radioValue = input.value === "t"; +} )(); + + +var boolHook, + attrHandle = jQuery.expr.attrHandle; + +jQuery.fn.extend( { + attr: function( name, value ) { + return access( this, jQuery.attr, name, value, arguments.length > 1 ); + }, + + removeAttr: function( name ) { + return this.each( function() { + jQuery.removeAttr( this, name ); + } ); + } +} ); + +jQuery.extend( { + attr: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set attributes on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + // Fallback to prop when attributes are not supported + if ( typeof elem.getAttribute === "undefined" ) { + return jQuery.prop( elem, name, value ); + } + + // Attribute hooks are determined by the lowercase version + // Grab necessary hook if one is defined + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + hooks = jQuery.attrHooks[ name.toLowerCase() ] || + ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined ); + } + + if ( value !== undefined ) { + if ( value === null ) { + jQuery.removeAttr( elem, name ); + return; + } + + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + elem.setAttribute( name, value + "" ); + return value; + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + ret = jQuery.find.attr( elem, name ); + + // Non-existent attributes return null, we normalize to undefined + return ret == null ? undefined : ret; + }, + + attrHooks: { + type: { + set: function( elem, value ) { + if ( !support.radioValue && value === "radio" && + nodeName( elem, "input" ) ) { + var val = elem.value; + elem.setAttribute( "type", value ); + if ( val ) { + elem.value = val; + } + return value; + } + } + } + }, + + removeAttr: function( elem, value ) { + var name, + i = 0, + + // Attribute names can contain non-HTML whitespace characters + // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 + attrNames = value && value.match( rnothtmlwhite ); + + if ( attrNames && elem.nodeType === 1 ) { + while ( ( name = attrNames[ i++ ] ) ) { + elem.removeAttribute( name ); + } + } + } +} ); + +// Hooks for boolean attributes +boolHook = { + set: function( elem, value, name ) { + if ( value === false ) { + + // Remove boolean attributes when set to false + jQuery.removeAttr( elem, name ); + } else { + elem.setAttribute( name, name ); + } + return name; + } +}; + +jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, name ) { + var getter = attrHandle[ name ] || jQuery.find.attr; + + attrHandle[ name ] = function( elem, name, isXML ) { + var ret, handle, + lowercaseName = name.toLowerCase(); + + if ( !isXML ) { + + // Avoid an infinite loop by temporarily removing this function from the getter + handle = attrHandle[ lowercaseName ]; + attrHandle[ lowercaseName ] = ret; + ret = getter( elem, name, isXML ) != null ? + lowercaseName : + null; + attrHandle[ lowercaseName ] = handle; + } + return ret; + }; +} ); + + + + +var rfocusable = /^(?:input|select|textarea|button)$/i, + rclickable = /^(?:a|area)$/i; + +jQuery.fn.extend( { + prop: function( name, value ) { + return access( this, jQuery.prop, name, value, arguments.length > 1 ); + }, + + removeProp: function( name ) { + return this.each( function() { + delete this[ jQuery.propFix[ name ] || name ]; + } ); + } +} ); + +jQuery.extend( { + prop: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set properties on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + + // Fix name and attach hooks + name = jQuery.propFix[ name ] || name; + hooks = jQuery.propHooks[ name ]; + } + + if ( value !== undefined ) { + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + return ( elem[ name ] = value ); + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + return elem[ name ]; + }, + + propHooks: { + tabIndex: { + get: function( elem ) { + + // Support: IE <=9 - 11 only + // elem.tabIndex doesn't always return the + // correct value when it hasn't been explicitly set + // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ + // Use proper attribute retrieval(#12072) + var tabindex = jQuery.find.attr( elem, "tabindex" ); + + if ( tabindex ) { + return parseInt( tabindex, 10 ); + } + + if ( + rfocusable.test( elem.nodeName ) || + rclickable.test( elem.nodeName ) && + elem.href + ) { + return 0; + } + + return -1; + } + } + }, + + propFix: { + "for": "htmlFor", + "class": "className" + } +} ); + +// Support: IE <=11 only +// Accessing the selectedIndex property +// forces the browser to respect setting selected +// on the option +// The getter ensures a default option is selected +// when in an optgroup +// eslint rule "no-unused-expressions" is disabled for this code +// since it considers such accessions noop +if ( !support.optSelected ) { + jQuery.propHooks.selected = { + get: function( elem ) { + + /* eslint no-unused-expressions: "off" */ + + var parent = elem.parentNode; + if ( parent && parent.parentNode ) { + parent.parentNode.selectedIndex; + } + return null; + }, + set: function( elem ) { + + /* eslint no-unused-expressions: "off" */ + + var parent = elem.parentNode; + if ( parent ) { + parent.selectedIndex; + + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; + } + } + } + }; +} + +jQuery.each( [ + "tabIndex", + "readOnly", + "maxLength", + "cellSpacing", + "cellPadding", + "rowSpan", + "colSpan", + "useMap", + "frameBorder", + "contentEditable" +], function() { + jQuery.propFix[ this.toLowerCase() ] = this; +} ); + + + + + // Strip and collapse whitespace according to HTML spec + // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace + function stripAndCollapse( value ) { + var tokens = value.match( rnothtmlwhite ) || []; + return tokens.join( " " ); + } + + +function getClass( elem ) { + return elem.getAttribute && elem.getAttribute( "class" ) || ""; +} + +function classesToArray( value ) { + if ( Array.isArray( value ) ) { + return value; + } + if ( typeof value === "string" ) { + return value.match( rnothtmlwhite ) || []; + } + return []; +} + +jQuery.fn.extend( { + addClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + classes = classesToArray( value ); + + if ( classes.length ) { + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + j = 0; + while ( ( clazz = classes[ j++ ] ) ) { + if ( cur.indexOf( " " + clazz + " " ) < 0 ) { + cur += clazz + " "; + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + elem.setAttribute( "class", finalValue ); + } + } + } + } + + return this; + }, + + removeClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + if ( !arguments.length ) { + return this.attr( "class", "" ); + } + + classes = classesToArray( value ); + + if ( classes.length ) { + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + + // This expression is here for better compressibility (see addClass) + cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + j = 0; + while ( ( clazz = classes[ j++ ] ) ) { + + // Remove *all* instances + while ( cur.indexOf( " " + clazz + " " ) > -1 ) { + cur = cur.replace( " " + clazz + " ", " " ); + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + elem.setAttribute( "class", finalValue ); + } + } + } + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var type = typeof value, + isValidValue = type === "string" || Array.isArray( value ); + + if ( typeof stateVal === "boolean" && isValidValue ) { + return stateVal ? this.addClass( value ) : this.removeClass( value ); + } + + if ( isFunction( value ) ) { + return this.each( function( i ) { + jQuery( this ).toggleClass( + value.call( this, i, getClass( this ), stateVal ), + stateVal + ); + } ); + } + + return this.each( function() { + var className, i, self, classNames; + + if ( isValidValue ) { + + // Toggle individual class names + i = 0; + self = jQuery( this ); + classNames = classesToArray( value ); + + while ( ( className = classNames[ i++ ] ) ) { + + // Check each className given, space separated list + if ( self.hasClass( className ) ) { + self.removeClass( className ); + } else { + self.addClass( className ); + } + } + + // Toggle whole class name + } else if ( value === undefined || type === "boolean" ) { + className = getClass( this ); + if ( className ) { + + // Store className if set + dataPriv.set( this, "__className__", className ); + } + + // If the element has a class name or if we're passed `false`, + // then remove the whole classname (if there was one, the above saved it). + // Otherwise bring back whatever was previously saved (if anything), + // falling back to the empty string if nothing was stored. + if ( this.setAttribute ) { + this.setAttribute( "class", + className || value === false ? + "" : + dataPriv.get( this, "__className__" ) || "" + ); + } + } + } ); + }, + + hasClass: function( selector ) { + var className, elem, + i = 0; + + className = " " + selector + " "; + while ( ( elem = this[ i++ ] ) ) { + if ( elem.nodeType === 1 && + ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { + return true; + } + } + + return false; + } +} ); + + + + +var rreturn = /\r/g; + +jQuery.fn.extend( { + val: function( value ) { + var hooks, ret, valueIsFunction, + elem = this[ 0 ]; + + if ( !arguments.length ) { + if ( elem ) { + hooks = jQuery.valHooks[ elem.type ] || + jQuery.valHooks[ elem.nodeName.toLowerCase() ]; + + if ( hooks && + "get" in hooks && + ( ret = hooks.get( elem, "value" ) ) !== undefined + ) { + return ret; + } + + ret = elem.value; + + // Handle most common string cases + if ( typeof ret === "string" ) { + return ret.replace( rreturn, "" ); + } + + // Handle cases where value is null/undef or number + return ret == null ? "" : ret; + } + + return; + } + + valueIsFunction = isFunction( value ); + + return this.each( function( i ) { + var val; + + if ( this.nodeType !== 1 ) { + return; + } + + if ( valueIsFunction ) { + val = value.call( this, i, jQuery( this ).val() ); + } else { + val = value; + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + + } else if ( typeof val === "number" ) { + val += ""; + + } else if ( Array.isArray( val ) ) { + val = jQuery.map( val, function( value ) { + return value == null ? "" : value + ""; + } ); + } + + hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; + + // If set returns undefined, fall back to normal setting + if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) { + this.value = val; + } + } ); + } +} ); + +jQuery.extend( { + valHooks: { + option: { + get: function( elem ) { + + var val = jQuery.find.attr( elem, "value" ); + return val != null ? + val : + + // Support: IE <=10 - 11 only + // option.text throws exceptions (#14686, #14858) + // Strip and collapse whitespace + // https://html.spec.whatwg.org/#strip-and-collapse-whitespace + stripAndCollapse( jQuery.text( elem ) ); + } + }, + select: { + get: function( elem ) { + var value, option, i, + options = elem.options, + index = elem.selectedIndex, + one = elem.type === "select-one", + values = one ? null : [], + max = one ? index + 1 : options.length; + + if ( index < 0 ) { + i = max; + + } else { + i = one ? index : 0; + } + + // Loop through all the selected options + for ( ; i < max; i++ ) { + option = options[ i ]; + + // Support: IE <=9 only + // IE8-9 doesn't update selected after form reset (#2551) + if ( ( option.selected || i === index ) && + + // Don't return options that are disabled or in a disabled optgroup + !option.disabled && + ( !option.parentNode.disabled || + !nodeName( option.parentNode, "optgroup" ) ) ) { + + // Get the specific value for the option + value = jQuery( option ).val(); + + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); + } + } + + return values; + }, + + set: function( elem, value ) { + var optionSet, option, + options = elem.options, + values = jQuery.makeArray( value ), + i = options.length; + + while ( i-- ) { + option = options[ i ]; + + /* eslint-disable no-cond-assign */ + + if ( option.selected = + jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 + ) { + optionSet = true; + } + + /* eslint-enable no-cond-assign */ + } + + // Force browsers to behave consistently when non-matching value is set + if ( !optionSet ) { + elem.selectedIndex = -1; + } + return values; + } + } + } +} ); + +// Radios and checkboxes getter/setter +jQuery.each( [ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = { + set: function( elem, value ) { + if ( Array.isArray( value ) ) { + return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 ); + } + } + }; + if ( !support.checkOn ) { + jQuery.valHooks[ this ].get = function( elem ) { + return elem.getAttribute( "value" ) === null ? "on" : elem.value; + }; + } +} ); + + + + +// Return jQuery for attributes-only inclusion + + +support.focusin = "onfocusin" in window; + + +var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, + stopPropagationCallback = function( e ) { + e.stopPropagation(); + }; + +jQuery.extend( jQuery.event, { + + trigger: function( event, data, elem, onlyHandlers ) { + + var i, cur, tmp, bubbleType, ontype, handle, special, lastElement, + eventPath = [ elem || document ], + type = hasOwn.call( event, "type" ) ? event.type : event, + namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; + + cur = lastElement = tmp = elem = elem || document; + + // Don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // focus/blur morphs to focusin/out; ensure we're not firing them right now + if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { + return; + } + + if ( type.indexOf( "." ) > -1 ) { + + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split( "." ); + type = namespaces.shift(); + namespaces.sort(); + } + ontype = type.indexOf( ":" ) < 0 && "on" + type; + + // Caller can pass in a jQuery.Event object, Object, or just an event type string + event = event[ jQuery.expando ] ? + event : + new jQuery.Event( type, typeof event === "object" && event ); + + // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) + event.isTrigger = onlyHandlers ? 2 : 3; + event.namespace = namespaces.join( "." ); + event.rnamespace = event.namespace ? + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : + null; + + // Clean up the event in case it is being reused + event.result = undefined; + if ( !event.target ) { + event.target = elem; + } + + // Clone any incoming data and prepend the event, creating the handler arg list + data = data == null ? + [ event ] : + jQuery.makeArray( data, [ event ] ); + + // Allow special events to draw outside the lines + special = jQuery.event.special[ type ] || {}; + if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { + return; + } + + // Determine event propagation path in advance, per W3C events spec (#9951) + // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) + if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) { + + bubbleType = special.delegateType || type; + if ( !rfocusMorph.test( bubbleType + type ) ) { + cur = cur.parentNode; + } + for ( ; cur; cur = cur.parentNode ) { + eventPath.push( cur ); + tmp = cur; + } + + // Only add window if we got to document (e.g., not plain obj or detached DOM) + if ( tmp === ( elem.ownerDocument || document ) ) { + eventPath.push( tmp.defaultView || tmp.parentWindow || window ); + } + } + + // Fire handlers on the event path + i = 0; + while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) { + lastElement = cur; + event.type = i > 1 ? + bubbleType : + special.bindType || type; + + // jQuery handler + handle = ( + dataPriv.get( cur, "events" ) || Object.create( null ) + )[ event.type ] && + dataPriv.get( cur, "handle" ); + if ( handle ) { + handle.apply( cur, data ); + } + + // Native handler + handle = ontype && cur[ ontype ]; + if ( handle && handle.apply && acceptData( cur ) ) { + event.result = handle.apply( cur, data ); + if ( event.result === false ) { + event.preventDefault(); + } + } + } + event.type = type; + + // If nobody prevented the default action, do it now + if ( !onlyHandlers && !event.isDefaultPrevented() ) { + + if ( ( !special._default || + special._default.apply( eventPath.pop(), data ) === false ) && + acceptData( elem ) ) { + + // Call a native DOM method on the target with the same name as the event. + // Don't do default actions on window, that's where global variables be (#6170) + if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) { + + // Don't re-trigger an onFOO event when we call its FOO() method + tmp = elem[ ontype ]; + + if ( tmp ) { + elem[ ontype ] = null; + } + + // Prevent re-triggering of the same event, since we already bubbled it above + jQuery.event.triggered = type; + + if ( event.isPropagationStopped() ) { + lastElement.addEventListener( type, stopPropagationCallback ); + } + + elem[ type ](); + + if ( event.isPropagationStopped() ) { + lastElement.removeEventListener( type, stopPropagationCallback ); + } + + jQuery.event.triggered = undefined; + + if ( tmp ) { + elem[ ontype ] = tmp; + } + } + } + } + + return event.result; + }, + + // Piggyback on a donor event to simulate a different one + // Used only for `focus(in | out)` events + simulate: function( type, elem, event ) { + var e = jQuery.extend( + new jQuery.Event(), + event, + { + type: type, + isSimulated: true + } + ); + + jQuery.event.trigger( e, null, elem ); + } + +} ); + +jQuery.fn.extend( { + + trigger: function( type, data ) { + return this.each( function() { + jQuery.event.trigger( type, data, this ); + } ); + }, + triggerHandler: function( type, data ) { + var elem = this[ 0 ]; + if ( elem ) { + return jQuery.event.trigger( type, data, elem, true ); + } + } +} ); + + +// Support: Firefox <=44 +// Firefox doesn't have focus(in | out) events +// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 +// +// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1 +// focus(in | out) events fire after focus & blur events, +// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order +// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857 +if ( !support.focusin ) { + jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) { + + // Attach a single capturing handler on the document while someone wants focusin/focusout + var handler = function( event ) { + jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) ); + }; + + jQuery.event.special[ fix ] = { + setup: function() { + + // Handle: regular nodes (via `this.ownerDocument`), window + // (via `this.document`) & document (via `this`). + var doc = this.ownerDocument || this.document || this, + attaches = dataPriv.access( doc, fix ); + + if ( !attaches ) { + doc.addEventListener( orig, handler, true ); + } + dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); + }, + teardown: function() { + var doc = this.ownerDocument || this.document || this, + attaches = dataPriv.access( doc, fix ) - 1; + + if ( !attaches ) { + doc.removeEventListener( orig, handler, true ); + dataPriv.remove( doc, fix ); + + } else { + dataPriv.access( doc, fix, attaches ); + } + } + }; + } ); +} +var location = window.location; + +var nonce = { guid: Date.now() }; + +var rquery = ( /\?/ ); + + + +// Cross-browser xml parsing +jQuery.parseXML = function( data ) { + var xml; + if ( !data || typeof data !== "string" ) { + return null; + } + + // Support: IE 9 - 11 only + // IE throws on parseFromString with invalid input. + try { + xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); + } catch ( e ) { + xml = undefined; + } + + if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { + jQuery.error( "Invalid XML: " + data ); + } + return xml; +}; + + +var + rbracket = /\[\]$/, + rCRLF = /\r?\n/g, + rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, + rsubmittable = /^(?:input|select|textarea|keygen)/i; + +function buildParams( prefix, obj, traditional, add ) { + var name; + + if ( Array.isArray( obj ) ) { + + // Serialize array item. + jQuery.each( obj, function( i, v ) { + if ( traditional || rbracket.test( prefix ) ) { + + // Treat each array item as a scalar. + add( prefix, v ); + + } else { + + // Item is non-scalar (array or object), encode its numeric index. + buildParams( + prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]", + v, + traditional, + add + ); + } + } ); + + } else if ( !traditional && toType( obj ) === "object" ) { + + // Serialize object item. + for ( name in obj ) { + buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); + } + + } else { + + // Serialize scalar item. + add( prefix, obj ); + } +} + +// Serialize an array of form elements or a set of +// key/values into a query string +jQuery.param = function( a, traditional ) { + var prefix, + s = [], + add = function( key, valueOrFunction ) { + + // If value is a function, invoke it and use its return value + var value = isFunction( valueOrFunction ) ? + valueOrFunction() : + valueOrFunction; + + s[ s.length ] = encodeURIComponent( key ) + "=" + + encodeURIComponent( value == null ? "" : value ); + }; + + if ( a == null ) { + return ""; + } + + // If an array was passed in, assume that it is an array of form elements. + if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { + + // Serialize the form elements + jQuery.each( a, function() { + add( this.name, this.value ); + } ); + + } else { + + // If traditional, encode the "old" way (the way 1.3.2 or older + // did it), otherwise encode params recursively. + for ( prefix in a ) { + buildParams( prefix, a[ prefix ], traditional, add ); + } + } + + // Return the resulting serialization + return s.join( "&" ); +}; + +jQuery.fn.extend( { + serialize: function() { + return jQuery.param( this.serializeArray() ); + }, + serializeArray: function() { + return this.map( function() { + + // Can add propHook for "elements" to filter or add form elements + var elements = jQuery.prop( this, "elements" ); + return elements ? jQuery.makeArray( elements ) : this; + } ) + .filter( function() { + var type = this.type; + + // Use .is( ":disabled" ) so that fieldset[disabled] works + return this.name && !jQuery( this ).is( ":disabled" ) && + rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && + ( this.checked || !rcheckableType.test( type ) ); + } ) + .map( function( _i, elem ) { + var val = jQuery( this ).val(); + + if ( val == null ) { + return null; + } + + if ( Array.isArray( val ) ) { + return jQuery.map( val, function( val ) { + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ); + } + + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ).get(); + } +} ); + + +var + r20 = /%20/g, + rhash = /#.*$/, + rantiCache = /([?&])_=[^&]*/, + rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, + + // #7653, #8125, #8152: local protocol detection + rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, + rnoContent = /^(?:GET|HEAD)$/, + rprotocol = /^\/\//, + + /* Prefilters + * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) + * 2) These are called: + * - BEFORE asking for a transport + * - AFTER param serialization (s.data is a string if s.processData is true) + * 3) key is the dataType + * 4) the catchall symbol "*" can be used + * 5) execution will start with transport dataType and THEN continue down to "*" if needed + */ + prefilters = {}, + + /* Transports bindings + * 1) key is the dataType + * 2) the catchall symbol "*" can be used + * 3) selection will start with transport dataType and THEN go to "*" if needed + */ + transports = {}, + + // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression + allTypes = "*/".concat( "*" ), + + // Anchor tag for parsing the document origin + originAnchor = document.createElement( "a" ); + originAnchor.href = location.href; + +// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport +function addToPrefiltersOrTransports( structure ) { + + // dataTypeExpression is optional and defaults to "*" + return function( dataTypeExpression, func ) { + + if ( typeof dataTypeExpression !== "string" ) { + func = dataTypeExpression; + dataTypeExpression = "*"; + } + + var dataType, + i = 0, + dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || []; + + if ( isFunction( func ) ) { + + // For each dataType in the dataTypeExpression + while ( ( dataType = dataTypes[ i++ ] ) ) { + + // Prepend if requested + if ( dataType[ 0 ] === "+" ) { + dataType = dataType.slice( 1 ) || "*"; + ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); + + // Otherwise append + } else { + ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); + } + } + } + }; +} + +// Base inspection function for prefilters and transports +function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { + + var inspected = {}, + seekingTransport = ( structure === transports ); + + function inspect( dataType ) { + var selected; + inspected[ dataType ] = true; + jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { + var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); + if ( typeof dataTypeOrTransport === "string" && + !seekingTransport && !inspected[ dataTypeOrTransport ] ) { + + options.dataTypes.unshift( dataTypeOrTransport ); + inspect( dataTypeOrTransport ); + return false; + } else if ( seekingTransport ) { + return !( selected = dataTypeOrTransport ); + } + } ); + return selected; + } + + return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); +} + +// A special extend for ajax options +// that takes "flat" options (not to be deep extended) +// Fixes #9887 +function ajaxExtend( target, src ) { + var key, deep, + flatOptions = jQuery.ajaxSettings.flatOptions || {}; + + for ( key in src ) { + if ( src[ key ] !== undefined ) { + ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; + } + } + if ( deep ) { + jQuery.extend( true, target, deep ); + } + + return target; +} + +/* Handles responses to an ajax request: + * - finds the right dataType (mediates between content-type and expected dataType) + * - returns the corresponding response + */ +function ajaxHandleResponses( s, jqXHR, responses ) { + + var ct, type, finalDataType, firstDataType, + contents = s.contents, + dataTypes = s.dataTypes; + + // Remove auto dataType and get content-type in the process + while ( dataTypes[ 0 ] === "*" ) { + dataTypes.shift(); + if ( ct === undefined ) { + ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" ); + } + } + + // Check if we're dealing with a known content-type + if ( ct ) { + for ( type in contents ) { + if ( contents[ type ] && contents[ type ].test( ct ) ) { + dataTypes.unshift( type ); + break; + } + } + } + + // Check to see if we have a response for the expected dataType + if ( dataTypes[ 0 ] in responses ) { + finalDataType = dataTypes[ 0 ]; + } else { + + // Try convertible dataTypes + for ( type in responses ) { + if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) { + finalDataType = type; + break; + } + if ( !firstDataType ) { + firstDataType = type; + } + } + + // Or just use first one + finalDataType = finalDataType || firstDataType; + } + + // If we found a dataType + // We add the dataType to the list if needed + // and return the corresponding response + if ( finalDataType ) { + if ( finalDataType !== dataTypes[ 0 ] ) { + dataTypes.unshift( finalDataType ); + } + return responses[ finalDataType ]; + } +} + +/* Chain conversions given the request and the original response + * Also sets the responseXXX fields on the jqXHR instance + */ +function ajaxConvert( s, response, jqXHR, isSuccess ) { + var conv2, current, conv, tmp, prev, + converters = {}, + + // Work with a copy of dataTypes in case we need to modify it for conversion + dataTypes = s.dataTypes.slice(); + + // Create converters map with lowercased keys + if ( dataTypes[ 1 ] ) { + for ( conv in s.converters ) { + converters[ conv.toLowerCase() ] = s.converters[ conv ]; + } + } + + current = dataTypes.shift(); + + // Convert to each sequential dataType + while ( current ) { + + if ( s.responseFields[ current ] ) { + jqXHR[ s.responseFields[ current ] ] = response; + } + + // Apply the dataFilter if provided + if ( !prev && isSuccess && s.dataFilter ) { + response = s.dataFilter( response, s.dataType ); + } + + prev = current; + current = dataTypes.shift(); + + if ( current ) { + + // There's only work to do if current dataType is non-auto + if ( current === "*" ) { + + current = prev; + + // Convert response if prev dataType is non-auto and differs from current + } else if ( prev !== "*" && prev !== current ) { + + // Seek a direct converter + conv = converters[ prev + " " + current ] || converters[ "* " + current ]; + + // If none found, seek a pair + if ( !conv ) { + for ( conv2 in converters ) { + + // If conv2 outputs current + tmp = conv2.split( " " ); + if ( tmp[ 1 ] === current ) { + + // If prev can be converted to accepted input + conv = converters[ prev + " " + tmp[ 0 ] ] || + converters[ "* " + tmp[ 0 ] ]; + if ( conv ) { + + // Condense equivalence converters + if ( conv === true ) { + conv = converters[ conv2 ]; + + // Otherwise, insert the intermediate dataType + } else if ( converters[ conv2 ] !== true ) { + current = tmp[ 0 ]; + dataTypes.unshift( tmp[ 1 ] ); + } + break; + } + } + } + } + + // Apply converter (if not an equivalence) + if ( conv !== true ) { + + // Unless errors are allowed to bubble, catch and return them + if ( conv && s.throws ) { + response = conv( response ); + } else { + try { + response = conv( response ); + } catch ( e ) { + return { + state: "parsererror", + error: conv ? e : "No conversion from " + prev + " to " + current + }; + } + } + } + } + } + } + + return { state: "success", data: response }; +} + +jQuery.extend( { + + // Counter for holding the number of active queries + active: 0, + + // Last-Modified header cache for next request + lastModified: {}, + etag: {}, + + ajaxSettings: { + url: location.href, + type: "GET", + isLocal: rlocalProtocol.test( location.protocol ), + global: true, + processData: true, + async: true, + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + + /* + timeout: 0, + data: null, + dataType: null, + username: null, + password: null, + cache: null, + throws: false, + traditional: false, + headers: {}, + */ + + accepts: { + "*": allTypes, + text: "text/plain", + html: "text/html", + xml: "application/xml, text/xml", + json: "application/json, text/javascript" + }, + + contents: { + xml: /\bxml\b/, + html: /\bhtml/, + json: /\bjson\b/ + }, + + responseFields: { + xml: "responseXML", + text: "responseText", + json: "responseJSON" + }, + + // Data converters + // Keys separate source (or catchall "*") and destination types with a single space + converters: { + + // Convert anything to text + "* text": String, + + // Text to html (true = no transformation) + "text html": true, + + // Evaluate text as a json expression + "text json": JSON.parse, + + // Parse text as xml + "text xml": jQuery.parseXML + }, + + // For options that shouldn't be deep extended: + // you can add your own custom options here if + // and when you create one that shouldn't be + // deep extended (see ajaxExtend) + flatOptions: { + url: true, + context: true + } + }, + + // Creates a full fledged settings object into target + // with both ajaxSettings and settings fields. + // If target is omitted, writes into ajaxSettings. + ajaxSetup: function( target, settings ) { + return settings ? + + // Building a settings object + ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : + + // Extending ajaxSettings + ajaxExtend( jQuery.ajaxSettings, target ); + }, + + ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), + ajaxTransport: addToPrefiltersOrTransports( transports ), + + // Main method + ajax: function( url, options ) { + + // If url is an object, simulate pre-1.5 signature + if ( typeof url === "object" ) { + options = url; + url = undefined; + } + + // Force options to be an object + options = options || {}; + + var transport, + + // URL without anti-cache param + cacheURL, + + // Response headers + responseHeadersString, + responseHeaders, + + // timeout handle + timeoutTimer, + + // Url cleanup var + urlAnchor, + + // Request state (becomes false upon send and true upon completion) + completed, + + // To know if global events are to be dispatched + fireGlobals, + + // Loop variable + i, + + // uncached part of the url + uncached, + + // Create the final options object + s = jQuery.ajaxSetup( {}, options ), + + // Callbacks context + callbackContext = s.context || s, + + // Context for global events is callbackContext if it is a DOM node or jQuery collection + globalEventContext = s.context && + ( callbackContext.nodeType || callbackContext.jquery ) ? + jQuery( callbackContext ) : + jQuery.event, + + // Deferreds + deferred = jQuery.Deferred(), + completeDeferred = jQuery.Callbacks( "once memory" ), + + // Status-dependent callbacks + statusCode = s.statusCode || {}, + + // Headers (they are sent all at once) + requestHeaders = {}, + requestHeadersNames = {}, + + // Default abort message + strAbort = "canceled", + + // Fake xhr + jqXHR = { + readyState: 0, + + // Builds headers hashtable if needed + getResponseHeader: function( key ) { + var match; + if ( completed ) { + if ( !responseHeaders ) { + responseHeaders = {}; + while ( ( match = rheaders.exec( responseHeadersString ) ) ) { + responseHeaders[ match[ 1 ].toLowerCase() + " " ] = + ( responseHeaders[ match[ 1 ].toLowerCase() + " " ] || [] ) + .concat( match[ 2 ] ); + } + } + match = responseHeaders[ key.toLowerCase() + " " ]; + } + return match == null ? null : match.join( ", " ); + }, + + // Raw string + getAllResponseHeaders: function() { + return completed ? responseHeadersString : null; + }, + + // Caches the header + setRequestHeader: function( name, value ) { + if ( completed == null ) { + name = requestHeadersNames[ name.toLowerCase() ] = + requestHeadersNames[ name.toLowerCase() ] || name; + requestHeaders[ name ] = value; + } + return this; + }, + + // Overrides response content-type header + overrideMimeType: function( type ) { + if ( completed == null ) { + s.mimeType = type; + } + return this; + }, + + // Status-dependent callbacks + statusCode: function( map ) { + var code; + if ( map ) { + if ( completed ) { + + // Execute the appropriate callbacks + jqXHR.always( map[ jqXHR.status ] ); + } else { + + // Lazy-add the new callbacks in a way that preserves old ones + for ( code in map ) { + statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; + } + } + } + return this; + }, + + // Cancel the request + abort: function( statusText ) { + var finalText = statusText || strAbort; + if ( transport ) { + transport.abort( finalText ); + } + done( 0, finalText ); + return this; + } + }; + + // Attach deferreds + deferred.promise( jqXHR ); + + // Add protocol if not provided (prefilters might expect it) + // Handle falsy url in the settings object (#10093: consistency with old signature) + // We also use the url parameter if available + s.url = ( ( url || s.url || location.href ) + "" ) + .replace( rprotocol, location.protocol + "//" ); + + // Alias method option to type as per ticket #12004 + s.type = options.method || options.type || s.method || s.type; + + // Extract dataTypes list + s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ]; + + // A cross-domain request is in order when the origin doesn't match the current origin. + if ( s.crossDomain == null ) { + urlAnchor = document.createElement( "a" ); + + // Support: IE <=8 - 11, Edge 12 - 15 + // IE throws exception on accessing the href property if url is malformed, + // e.g. http://example.com:80x/ + try { + urlAnchor.href = s.url; + + // Support: IE <=8 - 11 only + // Anchor's host property isn't correctly set when s.url is relative + urlAnchor.href = urlAnchor.href; + s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== + urlAnchor.protocol + "//" + urlAnchor.host; + } catch ( e ) { + + // If there is an error parsing the URL, assume it is crossDomain, + // it can be rejected by the transport if it is invalid + s.crossDomain = true; + } + } + + // Convert data if not already a string + if ( s.data && s.processData && typeof s.data !== "string" ) { + s.data = jQuery.param( s.data, s.traditional ); + } + + // Apply prefilters + inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); + + // If request was aborted inside a prefilter, stop there + if ( completed ) { + return jqXHR; + } + + // We can fire global events as of now if asked to + // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) + fireGlobals = jQuery.event && s.global; + + // Watch for a new set of requests + if ( fireGlobals && jQuery.active++ === 0 ) { + jQuery.event.trigger( "ajaxStart" ); + } + + // Uppercase the type + s.type = s.type.toUpperCase(); + + // Determine if request has content + s.hasContent = !rnoContent.test( s.type ); + + // Save the URL in case we're toying with the If-Modified-Since + // and/or If-None-Match header later on + // Remove hash to simplify url manipulation + cacheURL = s.url.replace( rhash, "" ); + + // More options handling for requests with no content + if ( !s.hasContent ) { + + // Remember the hash so we can put it back + uncached = s.url.slice( cacheURL.length ); + + // If data is available and should be processed, append data to url + if ( s.data && ( s.processData || typeof s.data === "string" ) ) { + cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data; + + // #9682: remove data so that it's not used in an eventual retry + delete s.data; + } + + // Add or update anti-cache param if needed + if ( s.cache === false ) { + cacheURL = cacheURL.replace( rantiCache, "$1" ); + uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce.guid++ ) + + uncached; + } + + // Put hash and anti-cache on the URL that will be requested (gh-1732) + s.url = cacheURL + uncached; + + // Change '%20' to '+' if this is encoded form body content (gh-2658) + } else if ( s.data && s.processData && + ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) { + s.data = s.data.replace( r20, "+" ); + } + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + if ( jQuery.lastModified[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); + } + if ( jQuery.etag[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); + } + } + + // Set the correct header, if data is being sent + if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { + jqXHR.setRequestHeader( "Content-Type", s.contentType ); + } + + // Set the Accepts header for the server, depending on the dataType + jqXHR.setRequestHeader( + "Accept", + s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ? + s.accepts[ s.dataTypes[ 0 ] ] + + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : + s.accepts[ "*" ] + ); + + // Check for headers option + for ( i in s.headers ) { + jqXHR.setRequestHeader( i, s.headers[ i ] ); + } + + // Allow custom headers/mimetypes and early abort + if ( s.beforeSend && + ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) { + + // Abort if not done already and return + return jqXHR.abort(); + } + + // Aborting is no longer a cancellation + strAbort = "abort"; + + // Install callbacks on deferreds + completeDeferred.add( s.complete ); + jqXHR.done( s.success ); + jqXHR.fail( s.error ); + + // Get transport + transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); + + // If no transport, we auto-abort + if ( !transport ) { + done( -1, "No Transport" ); + } else { + jqXHR.readyState = 1; + + // Send global event + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); + } + + // If request was aborted inside ajaxSend, stop there + if ( completed ) { + return jqXHR; + } + + // Timeout + if ( s.async && s.timeout > 0 ) { + timeoutTimer = window.setTimeout( function() { + jqXHR.abort( "timeout" ); + }, s.timeout ); + } + + try { + completed = false; + transport.send( requestHeaders, done ); + } catch ( e ) { + + // Rethrow post-completion exceptions + if ( completed ) { + throw e; + } + + // Propagate others as results + done( -1, e ); + } + } + + // Callback for when everything is done + function done( status, nativeStatusText, responses, headers ) { + var isSuccess, success, error, response, modified, + statusText = nativeStatusText; + + // Ignore repeat invocations + if ( completed ) { + return; + } + + completed = true; + + // Clear timeout if it exists + if ( timeoutTimer ) { + window.clearTimeout( timeoutTimer ); + } + + // Dereference transport for early garbage collection + // (no matter how long the jqXHR object will be used) + transport = undefined; + + // Cache response headers + responseHeadersString = headers || ""; + + // Set readyState + jqXHR.readyState = status > 0 ? 4 : 0; + + // Determine if successful + isSuccess = status >= 200 && status < 300 || status === 304; + + // Get response data + if ( responses ) { + response = ajaxHandleResponses( s, jqXHR, responses ); + } + + // Use a noop converter for missing script + if ( !isSuccess && jQuery.inArray( "script", s.dataTypes ) > -1 ) { + s.converters[ "text script" ] = function() {}; + } + + // Convert no matter what (that way responseXXX fields are always set) + response = ajaxConvert( s, response, jqXHR, isSuccess ); + + // If successful, handle type chaining + if ( isSuccess ) { + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + modified = jqXHR.getResponseHeader( "Last-Modified" ); + if ( modified ) { + jQuery.lastModified[ cacheURL ] = modified; + } + modified = jqXHR.getResponseHeader( "etag" ); + if ( modified ) { + jQuery.etag[ cacheURL ] = modified; + } + } + + // if no content + if ( status === 204 || s.type === "HEAD" ) { + statusText = "nocontent"; + + // if not modified + } else if ( status === 304 ) { + statusText = "notmodified"; + + // If we have data, let's convert it + } else { + statusText = response.state; + success = response.data; + error = response.error; + isSuccess = !error; + } + } else { + + // Extract error from statusText and normalize for non-aborts + error = statusText; + if ( status || !statusText ) { + statusText = "error"; + if ( status < 0 ) { + status = 0; + } + } + } + + // Set data for the fake xhr object + jqXHR.status = status; + jqXHR.statusText = ( nativeStatusText || statusText ) + ""; + + // Success/Error + if ( isSuccess ) { + deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); + } else { + deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); + } + + // Status-dependent callbacks + jqXHR.statusCode( statusCode ); + statusCode = undefined; + + if ( fireGlobals ) { + globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", + [ jqXHR, s, isSuccess ? success : error ] ); + } + + // Complete + completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); + + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); + + // Handle the global AJAX counter + if ( !( --jQuery.active ) ) { + jQuery.event.trigger( "ajaxStop" ); + } + } + } + + return jqXHR; + }, + + getJSON: function( url, data, callback ) { + return jQuery.get( url, data, callback, "json" ); + }, + + getScript: function( url, callback ) { + return jQuery.get( url, undefined, callback, "script" ); + } +} ); + +jQuery.each( [ "get", "post" ], function( _i, method ) { + jQuery[ method ] = function( url, data, callback, type ) { + + // Shift arguments if data argument was omitted + if ( isFunction( data ) ) { + type = type || callback; + callback = data; + data = undefined; + } + + // The url can be an options object (which then must have .url) + return jQuery.ajax( jQuery.extend( { + url: url, + type: method, + dataType: type, + data: data, + success: callback + }, jQuery.isPlainObject( url ) && url ) ); + }; +} ); + +jQuery.ajaxPrefilter( function( s ) { + var i; + for ( i in s.headers ) { + if ( i.toLowerCase() === "content-type" ) { + s.contentType = s.headers[ i ] || ""; + } + } +} ); + + +jQuery._evalUrl = function( url, options, doc ) { + return jQuery.ajax( { + url: url, + + // Make this explicit, since user can override this through ajaxSetup (#11264) + type: "GET", + dataType: "script", + cache: true, + async: false, + global: false, + + // Only evaluate the response if it is successful (gh-4126) + // dataFilter is not invoked for failure responses, so using it instead + // of the default converter is kludgy but it works. + converters: { + "text script": function() {} + }, + dataFilter: function( response ) { + jQuery.globalEval( response, options, doc ); + } + } ); +}; + + +jQuery.fn.extend( { + wrapAll: function( html ) { + var wrap; + + if ( this[ 0 ] ) { + if ( isFunction( html ) ) { + html = html.call( this[ 0 ] ); + } + + // The elements to wrap the target around + wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); + + if ( this[ 0 ].parentNode ) { + wrap.insertBefore( this[ 0 ] ); + } + + wrap.map( function() { + var elem = this; + + while ( elem.firstElementChild ) { + elem = elem.firstElementChild; + } + + return elem; + } ).append( this ); + } + + return this; + }, + + wrapInner: function( html ) { + if ( isFunction( html ) ) { + return this.each( function( i ) { + jQuery( this ).wrapInner( html.call( this, i ) ); + } ); + } + + return this.each( function() { + var self = jQuery( this ), + contents = self.contents(); + + if ( contents.length ) { + contents.wrapAll( html ); + + } else { + self.append( html ); + } + } ); + }, + + wrap: function( html ) { + var htmlIsFunction = isFunction( html ); + + return this.each( function( i ) { + jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html ); + } ); + }, + + unwrap: function( selector ) { + this.parent( selector ).not( "body" ).each( function() { + jQuery( this ).replaceWith( this.childNodes ); + } ); + return this; + } +} ); + + +jQuery.expr.pseudos.hidden = function( elem ) { + return !jQuery.expr.pseudos.visible( elem ); +}; +jQuery.expr.pseudos.visible = function( elem ) { + return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length ); +}; + + + + +jQuery.ajaxSettings.xhr = function() { + try { + return new window.XMLHttpRequest(); + } catch ( e ) {} +}; + +var xhrSuccessStatus = { + + // File protocol always yields status code 0, assume 200 + 0: 200, + + // Support: IE <=9 only + // #1450: sometimes IE returns 1223 when it should be 204 + 1223: 204 + }, + xhrSupported = jQuery.ajaxSettings.xhr(); + +support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); +support.ajax = xhrSupported = !!xhrSupported; + +jQuery.ajaxTransport( function( options ) { + var callback, errorCallback; + + // Cross domain only allowed if supported through XMLHttpRequest + if ( support.cors || xhrSupported && !options.crossDomain ) { + return { + send: function( headers, complete ) { + var i, + xhr = options.xhr(); + + xhr.open( + options.type, + options.url, + options.async, + options.username, + options.password + ); + + // Apply custom fields if provided + if ( options.xhrFields ) { + for ( i in options.xhrFields ) { + xhr[ i ] = options.xhrFields[ i ]; + } + } + + // Override mime type if needed + if ( options.mimeType && xhr.overrideMimeType ) { + xhr.overrideMimeType( options.mimeType ); + } + + // X-Requested-With header + // For cross-domain requests, seeing as conditions for a preflight are + // akin to a jigsaw puzzle, we simply never set it to be sure. + // (it can always be set on a per-request basis or even using ajaxSetup) + // For same-domain requests, won't change header if already provided. + if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) { + headers[ "X-Requested-With" ] = "XMLHttpRequest"; + } + + // Set headers + for ( i in headers ) { + xhr.setRequestHeader( i, headers[ i ] ); + } + + // Callback + callback = function( type ) { + return function() { + if ( callback ) { + callback = errorCallback = xhr.onload = + xhr.onerror = xhr.onabort = xhr.ontimeout = + xhr.onreadystatechange = null; + + if ( type === "abort" ) { + xhr.abort(); + } else if ( type === "error" ) { + + // Support: IE <=9 only + // On a manual native abort, IE9 throws + // errors on any property access that is not readyState + if ( typeof xhr.status !== "number" ) { + complete( 0, "error" ); + } else { + complete( + + // File: protocol always yields status 0; see #8605, #14207 + xhr.status, + xhr.statusText + ); + } + } else { + complete( + xhrSuccessStatus[ xhr.status ] || xhr.status, + xhr.statusText, + + // Support: IE <=9 only + // IE9 has no XHR2 but throws on binary (trac-11426) + // For XHR2 non-text, let the caller handle it (gh-2498) + ( xhr.responseType || "text" ) !== "text" || + typeof xhr.responseText !== "string" ? + { binary: xhr.response } : + { text: xhr.responseText }, + xhr.getAllResponseHeaders() + ); + } + } + }; + }; + + // Listen to events + xhr.onload = callback(); + errorCallback = xhr.onerror = xhr.ontimeout = callback( "error" ); + + // Support: IE 9 only + // Use onreadystatechange to replace onabort + // to handle uncaught aborts + if ( xhr.onabort !== undefined ) { + xhr.onabort = errorCallback; + } else { + xhr.onreadystatechange = function() { + + // Check readyState before timeout as it changes + if ( xhr.readyState === 4 ) { + + // Allow onerror to be called first, + // but that will not handle a native abort + // Also, save errorCallback to a variable + // as xhr.onerror cannot be accessed + window.setTimeout( function() { + if ( callback ) { + errorCallback(); + } + } ); + } + }; + } + + // Create the abort callback + callback = callback( "abort" ); + + try { + + // Do send the request (this may raise an exception) + xhr.send( options.hasContent && options.data || null ); + } catch ( e ) { + + // #14683: Only rethrow if this hasn't been notified as an error yet + if ( callback ) { + throw e; + } + } + }, + + abort: function() { + if ( callback ) { + callback(); + } + } + }; + } +} ); + + + + +// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) +jQuery.ajaxPrefilter( function( s ) { + if ( s.crossDomain ) { + s.contents.script = false; + } +} ); + +// Install script dataType +jQuery.ajaxSetup( { + accepts: { + script: "text/javascript, application/javascript, " + + "application/ecmascript, application/x-ecmascript" + }, + contents: { + script: /\b(?:java|ecma)script\b/ + }, + converters: { + "text script": function( text ) { + jQuery.globalEval( text ); + return text; + } + } +} ); + +// Handle cache's special case and crossDomain +jQuery.ajaxPrefilter( "script", function( s ) { + if ( s.cache === undefined ) { + s.cache = false; + } + if ( s.crossDomain ) { + s.type = "GET"; + } +} ); + +// Bind script tag hack transport +jQuery.ajaxTransport( "script", function( s ) { + + // This transport only deals with cross domain or forced-by-attrs requests + if ( s.crossDomain || s.scriptAttrs ) { + var script, callback; + return { + send: function( _, complete ) { + script = jQuery( "\r\n"; + +// inject VBScript +document.write(IEBinaryToArray_ByteStr_Script); + +global.JSZipUtils._getBinaryFromXHR = function (xhr) { + var binary = xhr.responseBody; + var byteMapping = {}; + for ( var i = 0; i < 256; i++ ) { + for ( var j = 0; j < 256; j++ ) { + byteMapping[ String.fromCharCode( i + (j << 8) ) ] = + String.fromCharCode(i) + String.fromCharCode(j); + } + } + var rawBytes = IEBinaryToArray_ByteStr(binary); + var lastChr = IEBinaryToArray_ByteStr_Last(binary); + return rawBytes.replace(/[\s\S]/g, function( match ) { + return byteMapping[match]; + }) + lastChr; +}; + +// enforcing Stuk's coding style +// vim: set shiftwidth=4 softtabstop=4: + +},{}]},{},[1]) +; diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/jquery/jszip-utils/dist/jszip-utils-ie.min.js b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/jquery/jszip-utils/dist/jszip-utils-ie.min.js new file mode 100644 index 0000000000..93d8bc8ef2 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/jquery/jszip-utils/dist/jszip-utils-ie.min.js @@ -0,0 +1,10 @@ +/*! + +JSZipUtils - A collection of cross-browser utilities to go along with JSZip. + + +(c) 2014 Stuart Knightley, David Duponchel +Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip-utils/master/LICENSE.markdown. + +*/ +!function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};b[g][0].call(j.exports,function(a){var c=b[g][1][a];return e(c?c:a)},j,j.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g\r\n";document.write(b),a.JSZipUtils._getBinaryFromXHR=function(a){for(var b=a.responseBody,c={},d=0;256>d;d++)for(var e=0;256>e;e++)c[String.fromCharCode(d+(e<<8))]=String.fromCharCode(d)+String.fromCharCode(e);var f=IEBinaryToArray_ByteStr(b),g=IEBinaryToArray_ByteStr_Last(b);return f.replace(/[\s\S]/g,function(a){return c[a]})+g}},{}]},{},[1]); diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/jquery/jszip-utils/dist/jszip-utils.js b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/jquery/jszip-utils/dist/jszip-utils.js new file mode 100644 index 0000000000..775895ec92 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/jquery/jszip-utils/dist/jszip-utils.js @@ -0,0 +1,118 @@ +/*! + +JSZipUtils - A collection of cross-browser utilities to go along with JSZip. + + +(c) 2014 Stuart Knightley, David Duponchel +Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip-utils/master/LICENSE.markdown. + +*/ +!function(e){"object"==typeof exports?module.exports=e():"function"==typeof define&&define.amd?define(e):"undefined"!=typeof window?window.JSZipUtils=e():"undefined"!=typeof global?global.JSZipUtils=e():"undefined"!=typeof self&&(self.JSZipUtils=e())}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o + +(c) 2014 Stuart Knightley, David Duponchel +Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip-utils/master/LICENSE.markdown. + +*/ +!function(a){"object"==typeof exports?module.exports=a():"function"==typeof define&&define.amd?define(a):"undefined"!=typeof window?window.JSZipUtils=a():"undefined"!=typeof global?global.JSZipUtils=a():"undefined"!=typeof self&&(self.JSZipUtils=a())}(function(){return function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};b[g][0].call(j.exports,function(a){var c=b[g][1][a];return e(c?c:a)},j,j.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g + +(c) 2009-2016 Stuart Knightley +Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/master/LICENSE.markdown. + +JSZip uses the library pako released under the MIT license : +https://github.com/nodeca/pako/blob/master/LICENSE +*/ + +(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.JSZip = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o> 2; + enc2 = ((chr1 & 3) << 4) | (chr2 >> 4); + enc3 = remainingBytes > 1 ? (((chr2 & 15) << 2) | (chr3 >> 6)) : 64; + enc4 = remainingBytes > 2 ? (chr3 & 63) : 64; + + output.push(_keyStr.charAt(enc1) + _keyStr.charAt(enc2) + _keyStr.charAt(enc3) + _keyStr.charAt(enc4)); + + } + + return output.join(""); +}; + +// public method for decoding +exports.decode = function(input) { + var chr1, chr2, chr3; + var enc1, enc2, enc3, enc4; + var i = 0, resultIndex = 0; + + var dataUrlPrefix = "data:"; + + if (input.substr(0, dataUrlPrefix.length) === dataUrlPrefix) { + // This is a common error: people give a data url + // (data:image/png;base64,iVBOR...) with a {base64: true} and + // wonders why things don't work. + // We can detect that the string input looks like a data url but we + // *can't* be sure it is one: removing everything up to the comma would + // be too dangerous. + throw new Error("Invalid base64 input, it looks like a data url."); + } + + input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); + + var totalLength = input.length * 3 / 4; + if(input.charAt(input.length - 1) === _keyStr.charAt(64)) { + totalLength--; + } + if(input.charAt(input.length - 2) === _keyStr.charAt(64)) { + totalLength--; + } + if (totalLength % 1 !== 0) { + // totalLength is not an integer, the length does not match a valid + // base64 content. That can happen if: + // - the input is not a base64 content + // - the input is *almost* a base64 content, with a extra chars at the + // beginning or at the end + // - the input uses a base64 variant (base64url for example) + throw new Error("Invalid base64 input, bad content length."); + } + var output; + if (support.uint8array) { + output = new Uint8Array(totalLength|0); + } else { + output = new Array(totalLength|0); + } + + while (i < input.length) { + + enc1 = _keyStr.indexOf(input.charAt(i++)); + enc2 = _keyStr.indexOf(input.charAt(i++)); + enc3 = _keyStr.indexOf(input.charAt(i++)); + enc4 = _keyStr.indexOf(input.charAt(i++)); + + chr1 = (enc1 << 2) | (enc2 >> 4); + chr2 = ((enc2 & 15) << 4) | (enc3 >> 2); + chr3 = ((enc3 & 3) << 6) | enc4; + + output[resultIndex++] = chr1; + + if (enc3 !== 64) { + output[resultIndex++] = chr2; + } + if (enc4 !== 64) { + output[resultIndex++] = chr3; + } + + } + + return output; +}; + +},{"./support":30,"./utils":32}],2:[function(require,module,exports){ +'use strict'; + +var external = require("./external"); +var DataWorker = require('./stream/DataWorker'); +var Crc32Probe = require('./stream/Crc32Probe'); +var DataLengthProbe = require('./stream/DataLengthProbe'); + +/** + * Represent a compressed object, with everything needed to decompress it. + * @constructor + * @param {number} compressedSize the size of the data compressed. + * @param {number} uncompressedSize the size of the data after decompression. + * @param {number} crc32 the crc32 of the decompressed file. + * @param {object} compression the type of compression, see lib/compressions.js. + * @param {String|ArrayBuffer|Uint8Array|Buffer} data the compressed data. + */ +function CompressedObject(compressedSize, uncompressedSize, crc32, compression, data) { + this.compressedSize = compressedSize; + this.uncompressedSize = uncompressedSize; + this.crc32 = crc32; + this.compression = compression; + this.compressedContent = data; +} + +CompressedObject.prototype = { + /** + * Create a worker to get the uncompressed content. + * @return {GenericWorker} the worker. + */ + getContentWorker: function () { + var worker = new DataWorker(external.Promise.resolve(this.compressedContent)) + .pipe(this.compression.uncompressWorker()) + .pipe(new DataLengthProbe("data_length")); + + var that = this; + worker.on("end", function () { + if (this.streamInfo['data_length'] !== that.uncompressedSize) { + throw new Error("Bug : uncompressed data size mismatch"); + } + }); + return worker; + }, + /** + * Create a worker to get the compressed content. + * @return {GenericWorker} the worker. + */ + getCompressedWorker: function () { + return new DataWorker(external.Promise.resolve(this.compressedContent)) + .withStreamInfo("compressedSize", this.compressedSize) + .withStreamInfo("uncompressedSize", this.uncompressedSize) + .withStreamInfo("crc32", this.crc32) + .withStreamInfo("compression", this.compression) + ; + } +}; + +/** + * Chain the given worker with other workers to compress the content with the + * given compression. + * @param {GenericWorker} uncompressedWorker the worker to pipe. + * @param {Object} compression the compression object. + * @param {Object} compressionOptions the options to use when compressing. + * @return {GenericWorker} the new worker compressing the content. + */ +CompressedObject.createWorkerFrom = function (uncompressedWorker, compression, compressionOptions) { + return uncompressedWorker + .pipe(new Crc32Probe()) + .pipe(new DataLengthProbe("uncompressedSize")) + .pipe(compression.compressWorker(compressionOptions)) + .pipe(new DataLengthProbe("compressedSize")) + .withStreamInfo("compression", compression); +}; + +module.exports = CompressedObject; + +},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(require,module,exports){ +'use strict'; + +var GenericWorker = require("./stream/GenericWorker"); + +exports.STORE = { + magic: "\x00\x00", + compressWorker : function (compressionOptions) { + return new GenericWorker("STORE compression"); + }, + uncompressWorker : function () { + return new GenericWorker("STORE decompression"); + } +}; +exports.DEFLATE = require('./flate'); + +},{"./flate":7,"./stream/GenericWorker":28}],4:[function(require,module,exports){ +'use strict'; + +var utils = require('./utils'); + +/** + * The following functions come from pako, from pako/lib/zlib/crc32.js + * released under the MIT license, see pako https://github.com/nodeca/pako/ + */ + +// Use ordinary array, since untyped makes no boost here +function makeTable() { + var c, table = []; + + for(var n =0; n < 256; n++){ + c = n; + for(var k =0; k < 8; k++){ + c = ((c&1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1)); + } + table[n] = c; + } + + return table; +} + +// Create table on load. Just 255 signed longs. Not a problem. +var crcTable = makeTable(); + + +function crc32(crc, buf, len, pos) { + var t = crcTable, end = pos + len; + + crc = crc ^ (-1); + + for (var i = pos; i < end; i++ ) { + crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF]; + } + + return (crc ^ (-1)); // >>> 0; +} + +// That's all for the pako functions. + +/** + * Compute the crc32 of a string. + * This is almost the same as the function crc32, but for strings. Using the + * same function for the two use cases leads to horrible performances. + * @param {Number} crc the starting value of the crc. + * @param {String} str the string to use. + * @param {Number} len the length of the string. + * @param {Number} pos the starting position for the crc32 computation. + * @return {Number} the computed crc32. + */ +function crc32str(crc, str, len, pos) { + var t = crcTable, end = pos + len; + + crc = crc ^ (-1); + + for (var i = pos; i < end; i++ ) { + crc = (crc >>> 8) ^ t[(crc ^ str.charCodeAt(i)) & 0xFF]; + } + + return (crc ^ (-1)); // >>> 0; +} + +module.exports = function crc32wrapper(input, crc) { + if (typeof input === "undefined" || !input.length) { + return 0; + } + + var isArray = utils.getTypeOf(input) !== "string"; + + if(isArray) { + return crc32(crc|0, input, input.length, 0); + } else { + return crc32str(crc|0, input, input.length, 0); + } +}; + +},{"./utils":32}],5:[function(require,module,exports){ +'use strict'; +exports.base64 = false; +exports.binary = false; +exports.dir = false; +exports.createFolders = true; +exports.date = null; +exports.compression = null; +exports.compressionOptions = null; +exports.comment = null; +exports.unixPermissions = null; +exports.dosPermissions = null; + +},{}],6:[function(require,module,exports){ +/* global Promise */ +'use strict'; + +// load the global object first: +// - it should be better integrated in the system (unhandledRejection in node) +// - the environment may have a custom Promise implementation (see zone.js) +var ES6Promise = null; +if (typeof Promise !== "undefined") { + ES6Promise = Promise; +} else { + ES6Promise = require("lie"); +} + +/** + * Let the user use/change some implementations. + */ +module.exports = { + Promise: ES6Promise +}; + +},{"lie":37}],7:[function(require,module,exports){ +'use strict'; +var USE_TYPEDARRAY = (typeof Uint8Array !== 'undefined') && (typeof Uint16Array !== 'undefined') && (typeof Uint32Array !== 'undefined'); + +var pako = require("pako"); +var utils = require("./utils"); +var GenericWorker = require("./stream/GenericWorker"); + +var ARRAY_TYPE = USE_TYPEDARRAY ? "uint8array" : "array"; + +exports.magic = "\x08\x00"; + +/** + * Create a worker that uses pako to inflate/deflate. + * @constructor + * @param {String} action the name of the pako function to call : either "Deflate" or "Inflate". + * @param {Object} options the options to use when (de)compressing. + */ +function FlateWorker(action, options) { + GenericWorker.call(this, "FlateWorker/" + action); + + this._pako = null; + this._pakoAction = action; + this._pakoOptions = options; + // the `meta` object from the last chunk received + // this allow this worker to pass around metadata + this.meta = {}; +} + +utils.inherits(FlateWorker, GenericWorker); + +/** + * @see GenericWorker.processChunk + */ +FlateWorker.prototype.processChunk = function (chunk) { + this.meta = chunk.meta; + if (this._pako === null) { + this._createPako(); + } + this._pako.push(utils.transformTo(ARRAY_TYPE, chunk.data), false); +}; + +/** + * @see GenericWorker.flush + */ +FlateWorker.prototype.flush = function () { + GenericWorker.prototype.flush.call(this); + if (this._pako === null) { + this._createPako(); + } + this._pako.push([], true); +}; +/** + * @see GenericWorker.cleanUp + */ +FlateWorker.prototype.cleanUp = function () { + GenericWorker.prototype.cleanUp.call(this); + this._pako = null; +}; + +/** + * Create the _pako object. + * TODO: lazy-loading this object isn't the best solution but it's the + * quickest. The best solution is to lazy-load the worker list. See also the + * issue #446. + */ +FlateWorker.prototype._createPako = function () { + this._pako = new pako[this._pakoAction]({ + raw: true, + level: this._pakoOptions.level || -1 // default compression + }); + var self = this; + this._pako.onData = function(data) { + self.push({ + data : data, + meta : self.meta + }); + }; +}; + +exports.compressWorker = function (compressionOptions) { + return new FlateWorker("Deflate", compressionOptions); +}; +exports.uncompressWorker = function () { + return new FlateWorker("Inflate", {}); +}; + +},{"./stream/GenericWorker":28,"./utils":32,"pako":38}],8:[function(require,module,exports){ +'use strict'; + +var utils = require('../utils'); +var GenericWorker = require('../stream/GenericWorker'); +var utf8 = require('../utf8'); +var crc32 = require('../crc32'); +var signature = require('../signature'); + +/** + * Transform an integer into a string in hexadecimal. + * @private + * @param {number} dec the number to convert. + * @param {number} bytes the number of bytes to generate. + * @returns {string} the result. + */ +var decToHex = function(dec, bytes) { + var hex = "", i; + for (i = 0; i < bytes; i++) { + hex += String.fromCharCode(dec & 0xff); + dec = dec >>> 8; + } + return hex; +}; + +/** + * Generate the UNIX part of the external file attributes. + * @param {Object} unixPermissions the unix permissions or null. + * @param {Boolean} isDir true if the entry is a directory, false otherwise. + * @return {Number} a 32 bit integer. + * + * adapted from http://unix.stackexchange.com/questions/14705/the-zip-formats-external-file-attribute : + * + * TTTTsstrwxrwxrwx0000000000ADVSHR + * ^^^^____________________________ file type, see zipinfo.c (UNX_*) + * ^^^_________________________ setuid, setgid, sticky + * ^^^^^^^^^________________ permissions + * ^^^^^^^^^^______ not used ? + * ^^^^^^ DOS attribute bits : Archive, Directory, Volume label, System file, Hidden, Read only + */ +var generateUnixExternalFileAttr = function (unixPermissions, isDir) { + + var result = unixPermissions; + if (!unixPermissions) { + // I can't use octal values in strict mode, hence the hexa. + // 040775 => 0x41fd + // 0100664 => 0x81b4 + result = isDir ? 0x41fd : 0x81b4; + } + return (result & 0xFFFF) << 16; +}; + +/** + * Generate the DOS part of the external file attributes. + * @param {Object} dosPermissions the dos permissions or null. + * @param {Boolean} isDir true if the entry is a directory, false otherwise. + * @return {Number} a 32 bit integer. + * + * Bit 0 Read-Only + * Bit 1 Hidden + * Bit 2 System + * Bit 3 Volume Label + * Bit 4 Directory + * Bit 5 Archive + */ +var generateDosExternalFileAttr = function (dosPermissions, isDir) { + + // the dir flag is already set for compatibility + return (dosPermissions || 0) & 0x3F; +}; + +/** + * Generate the various parts used in the construction of the final zip file. + * @param {Object} streamInfo the hash with information about the compressed file. + * @param {Boolean} streamedContent is the content streamed ? + * @param {Boolean} streamingEnded is the stream finished ? + * @param {number} offset the current offset from the start of the zip file. + * @param {String} platform let's pretend we are this platform (change platform dependents fields) + * @param {Function} encodeFileName the function to encode the file name / comment. + * @return {Object} the zip parts. + */ +var generateZipParts = function(streamInfo, streamedContent, streamingEnded, offset, platform, encodeFileName) { + var file = streamInfo['file'], + compression = streamInfo['compression'], + useCustomEncoding = encodeFileName !== utf8.utf8encode, + encodedFileName = utils.transformTo("string", encodeFileName(file.name)), + utfEncodedFileName = utils.transformTo("string", utf8.utf8encode(file.name)), + comment = file.comment, + encodedComment = utils.transformTo("string", encodeFileName(comment)), + utfEncodedComment = utils.transformTo("string", utf8.utf8encode(comment)), + useUTF8ForFileName = utfEncodedFileName.length !== file.name.length, + useUTF8ForComment = utfEncodedComment.length !== comment.length, + dosTime, + dosDate, + extraFields = "", + unicodePathExtraField = "", + unicodeCommentExtraField = "", + dir = file.dir, + date = file.date; + + + var dataInfo = { + crc32 : 0, + compressedSize : 0, + uncompressedSize : 0 + }; + + // if the content is streamed, the sizes/crc32 are only available AFTER + // the end of the stream. + if (!streamedContent || streamingEnded) { + dataInfo.crc32 = streamInfo['crc32']; + dataInfo.compressedSize = streamInfo['compressedSize']; + dataInfo.uncompressedSize = streamInfo['uncompressedSize']; + } + + var bitflag = 0; + if (streamedContent) { + // Bit 3: the sizes/crc32 are set to zero in the local header. + // The correct values are put in the data descriptor immediately + // following the compressed data. + bitflag |= 0x0008; + } + if (!useCustomEncoding && (useUTF8ForFileName || useUTF8ForComment)) { + // Bit 11: Language encoding flag (EFS). + bitflag |= 0x0800; + } + + + var extFileAttr = 0; + var versionMadeBy = 0; + if (dir) { + // dos or unix, we set the dos dir flag + extFileAttr |= 0x00010; + } + if(platform === "UNIX") { + versionMadeBy = 0x031E; // UNIX, version 3.0 + extFileAttr |= generateUnixExternalFileAttr(file.unixPermissions, dir); + } else { // DOS or other, fallback to DOS + versionMadeBy = 0x0014; // DOS, version 2.0 + extFileAttr |= generateDosExternalFileAttr(file.dosPermissions, dir); + } + + // date + // @see http://www.delorie.com/djgpp/doc/rbinter/it/52/13.html + // @see http://www.delorie.com/djgpp/doc/rbinter/it/65/16.html + // @see http://www.delorie.com/djgpp/doc/rbinter/it/66/16.html + + dosTime = date.getUTCHours(); + dosTime = dosTime << 6; + dosTime = dosTime | date.getUTCMinutes(); + dosTime = dosTime << 5; + dosTime = dosTime | date.getUTCSeconds() / 2; + + dosDate = date.getUTCFullYear() - 1980; + dosDate = dosDate << 4; + dosDate = dosDate | (date.getUTCMonth() + 1); + dosDate = dosDate << 5; + dosDate = dosDate | date.getUTCDate(); + + if (useUTF8ForFileName) { + // set the unicode path extra field. unzip needs at least one extra + // field to correctly handle unicode path, so using the path is as good + // as any other information. This could improve the situation with + // other archive managers too. + // This field is usually used without the utf8 flag, with a non + // unicode path in the header (winrar, winzip). This helps (a bit) + // with the messy Windows' default compressed folders feature but + // breaks on p7zip which doesn't seek the unicode path extra field. + // So for now, UTF-8 everywhere ! + unicodePathExtraField = + // Version + decToHex(1, 1) + + // NameCRC32 + decToHex(crc32(encodedFileName), 4) + + // UnicodeName + utfEncodedFileName; + + extraFields += + // Info-ZIP Unicode Path Extra Field + "\x75\x70" + + // size + decToHex(unicodePathExtraField.length, 2) + + // content + unicodePathExtraField; + } + + if(useUTF8ForComment) { + + unicodeCommentExtraField = + // Version + decToHex(1, 1) + + // CommentCRC32 + decToHex(crc32(encodedComment), 4) + + // UnicodeName + utfEncodedComment; + + extraFields += + // Info-ZIP Unicode Path Extra Field + "\x75\x63" + + // size + decToHex(unicodeCommentExtraField.length, 2) + + // content + unicodeCommentExtraField; + } + + var header = ""; + + // version needed to extract + header += "\x0A\x00"; + // general purpose bit flag + header += decToHex(bitflag, 2); + // compression method + header += compression.magic; + // last mod file time + header += decToHex(dosTime, 2); + // last mod file date + header += decToHex(dosDate, 2); + // crc-32 + header += decToHex(dataInfo.crc32, 4); + // compressed size + header += decToHex(dataInfo.compressedSize, 4); + // uncompressed size + header += decToHex(dataInfo.uncompressedSize, 4); + // file name length + header += decToHex(encodedFileName.length, 2); + // extra field length + header += decToHex(extraFields.length, 2); + + + var fileRecord = signature.LOCAL_FILE_HEADER + header + encodedFileName + extraFields; + + var dirRecord = signature.CENTRAL_FILE_HEADER + + // version made by (00: DOS) + decToHex(versionMadeBy, 2) + + // file header (common to file and central directory) + header + + // file comment length + decToHex(encodedComment.length, 2) + + // disk number start + "\x00\x00" + + // internal file attributes TODO + "\x00\x00" + + // external file attributes + decToHex(extFileAttr, 4) + + // relative offset of local header + decToHex(offset, 4) + + // file name + encodedFileName + + // extra field + extraFields + + // file comment + encodedComment; + + return { + fileRecord: fileRecord, + dirRecord: dirRecord + }; +}; + +/** + * Generate the EOCD record. + * @param {Number} entriesCount the number of entries in the zip file. + * @param {Number} centralDirLength the length (in bytes) of the central dir. + * @param {Number} localDirLength the length (in bytes) of the local dir. + * @param {String} comment the zip file comment as a binary string. + * @param {Function} encodeFileName the function to encode the comment. + * @return {String} the EOCD record. + */ +var generateCentralDirectoryEnd = function (entriesCount, centralDirLength, localDirLength, comment, encodeFileName) { + var dirEnd = ""; + var encodedComment = utils.transformTo("string", encodeFileName(comment)); + + // end of central dir signature + dirEnd = signature.CENTRAL_DIRECTORY_END + + // number of this disk + "\x00\x00" + + // number of the disk with the start of the central directory + "\x00\x00" + + // total number of entries in the central directory on this disk + decToHex(entriesCount, 2) + + // total number of entries in the central directory + decToHex(entriesCount, 2) + + // size of the central directory 4 bytes + decToHex(centralDirLength, 4) + + // offset of start of central directory with respect to the starting disk number + decToHex(localDirLength, 4) + + // .ZIP file comment length + decToHex(encodedComment.length, 2) + + // .ZIP file comment + encodedComment; + + return dirEnd; +}; + +/** + * Generate data descriptors for a file entry. + * @param {Object} streamInfo the hash generated by a worker, containing information + * on the file entry. + * @return {String} the data descriptors. + */ +var generateDataDescriptors = function (streamInfo) { + var descriptor = ""; + descriptor = signature.DATA_DESCRIPTOR + + // crc-32 4 bytes + decToHex(streamInfo['crc32'], 4) + + // compressed size 4 bytes + decToHex(streamInfo['compressedSize'], 4) + + // uncompressed size 4 bytes + decToHex(streamInfo['uncompressedSize'], 4); + + return descriptor; +}; + + +/** + * A worker to concatenate other workers to create a zip file. + * @param {Boolean} streamFiles `true` to stream the content of the files, + * `false` to accumulate it. + * @param {String} comment the comment to use. + * @param {String} platform the platform to use, "UNIX" or "DOS". + * @param {Function} encodeFileName the function to encode file names and comments. + */ +function ZipFileWorker(streamFiles, comment, platform, encodeFileName) { + GenericWorker.call(this, "ZipFileWorker"); + // The number of bytes written so far. This doesn't count accumulated chunks. + this.bytesWritten = 0; + // The comment of the zip file + this.zipComment = comment; + // The platform "generating" the zip file. + this.zipPlatform = platform; + // the function to encode file names and comments. + this.encodeFileName = encodeFileName; + // Should we stream the content of the files ? + this.streamFiles = streamFiles; + // If `streamFiles` is false, we will need to accumulate the content of the + // files to calculate sizes / crc32 (and write them *before* the content). + // This boolean indicates if we are accumulating chunks (it will change a lot + // during the lifetime of this worker). + this.accumulate = false; + // The buffer receiving chunks when accumulating content. + this.contentBuffer = []; + // The list of generated directory records. + this.dirRecords = []; + // The offset (in bytes) from the beginning of the zip file for the current source. + this.currentSourceOffset = 0; + // The total number of entries in this zip file. + this.entriesCount = 0; + // the name of the file currently being added, null when handling the end of the zip file. + // Used for the emitted metadata. + this.currentFile = null; + + + + this._sources = []; +} +utils.inherits(ZipFileWorker, GenericWorker); + +/** + * @see GenericWorker.push + */ +ZipFileWorker.prototype.push = function (chunk) { + + var currentFilePercent = chunk.meta.percent || 0; + var entriesCount = this.entriesCount; + var remainingFiles = this._sources.length; + + if(this.accumulate) { + this.contentBuffer.push(chunk); + } else { + this.bytesWritten += chunk.data.length; + + GenericWorker.prototype.push.call(this, { + data : chunk.data, + meta : { + currentFile : this.currentFile, + percent : entriesCount ? (currentFilePercent + 100 * (entriesCount - remainingFiles - 1)) / entriesCount : 100 + } + }); + } +}; + +/** + * The worker started a new source (an other worker). + * @param {Object} streamInfo the streamInfo object from the new source. + */ +ZipFileWorker.prototype.openedSource = function (streamInfo) { + this.currentSourceOffset = this.bytesWritten; + this.currentFile = streamInfo['file'].name; + + var streamedContent = this.streamFiles && !streamInfo['file'].dir; + + // don't stream folders (because they don't have any content) + if(streamedContent) { + var record = generateZipParts(streamInfo, streamedContent, false, this.currentSourceOffset, this.zipPlatform, this.encodeFileName); + this.push({ + data : record.fileRecord, + meta : {percent:0} + }); + } else { + // we need to wait for the whole file before pushing anything + this.accumulate = true; + } +}; + +/** + * The worker finished a source (an other worker). + * @param {Object} streamInfo the streamInfo object from the finished source. + */ +ZipFileWorker.prototype.closedSource = function (streamInfo) { + this.accumulate = false; + var streamedContent = this.streamFiles && !streamInfo['file'].dir; + var record = generateZipParts(streamInfo, streamedContent, true, this.currentSourceOffset, this.zipPlatform, this.encodeFileName); + + this.dirRecords.push(record.dirRecord); + if(streamedContent) { + // after the streamed file, we put data descriptors + this.push({ + data : generateDataDescriptors(streamInfo), + meta : {percent:100} + }); + } else { + // the content wasn't streamed, we need to push everything now + // first the file record, then the content + this.push({ + data : record.fileRecord, + meta : {percent:0} + }); + while(this.contentBuffer.length) { + this.push(this.contentBuffer.shift()); + } + } + this.currentFile = null; +}; + +/** + * @see GenericWorker.flush + */ +ZipFileWorker.prototype.flush = function () { + + var localDirLength = this.bytesWritten; + for(var i = 0; i < this.dirRecords.length; i++) { + this.push({ + data : this.dirRecords[i], + meta : {percent:100} + }); + } + var centralDirLength = this.bytesWritten - localDirLength; + + var dirEnd = generateCentralDirectoryEnd(this.dirRecords.length, centralDirLength, localDirLength, this.zipComment, this.encodeFileName); + + this.push({ + data : dirEnd, + meta : {percent:100} + }); +}; + +/** + * Prepare the next source to be read. + */ +ZipFileWorker.prototype.prepareNextSource = function () { + this.previous = this._sources.shift(); + this.openedSource(this.previous.streamInfo); + if (this.isPaused) { + this.previous.pause(); + } else { + this.previous.resume(); + } +}; + +/** + * @see GenericWorker.registerPrevious + */ +ZipFileWorker.prototype.registerPrevious = function (previous) { + this._sources.push(previous); + var self = this; + + previous.on('data', function (chunk) { + self.processChunk(chunk); + }); + previous.on('end', function () { + self.closedSource(self.previous.streamInfo); + if(self._sources.length) { + self.prepareNextSource(); + } else { + self.end(); + } + }); + previous.on('error', function (e) { + self.error(e); + }); + return this; +}; + +/** + * @see GenericWorker.resume + */ +ZipFileWorker.prototype.resume = function () { + if(!GenericWorker.prototype.resume.call(this)) { + return false; + } + + if (!this.previous && this._sources.length) { + this.prepareNextSource(); + return true; + } + if (!this.previous && !this._sources.length && !this.generatedError) { + this.end(); + return true; + } +}; + +/** + * @see GenericWorker.error + */ +ZipFileWorker.prototype.error = function (e) { + var sources = this._sources; + if(!GenericWorker.prototype.error.call(this, e)) { + return false; + } + for(var i = 0; i < sources.length; i++) { + try { + sources[i].error(e); + } catch(e) { + // the `error` exploded, nothing to do + } + } + return true; +}; + +/** + * @see GenericWorker.lock + */ +ZipFileWorker.prototype.lock = function () { + GenericWorker.prototype.lock.call(this); + var sources = this._sources; + for(var i = 0; i < sources.length; i++) { + sources[i].lock(); + } +}; + +module.exports = ZipFileWorker; + +},{"../crc32":4,"../signature":23,"../stream/GenericWorker":28,"../utf8":31,"../utils":32}],9:[function(require,module,exports){ +'use strict'; + +var compressions = require('../compressions'); +var ZipFileWorker = require('./ZipFileWorker'); + +/** + * Find the compression to use. + * @param {String} fileCompression the compression defined at the file level, if any. + * @param {String} zipCompression the compression defined at the load() level. + * @return {Object} the compression object to use. + */ +var getCompression = function (fileCompression, zipCompression) { + + var compressionName = fileCompression || zipCompression; + var compression = compressions[compressionName]; + if (!compression) { + throw new Error(compressionName + " is not a valid compression method !"); + } + return compression; +}; + +/** + * Create a worker to generate a zip file. + * @param {JSZip} zip the JSZip instance at the right root level. + * @param {Object} options to generate the zip file. + * @param {String} comment the comment to use. + */ +exports.generateWorker = function (zip, options, comment) { + + var zipFileWorker = new ZipFileWorker(options.streamFiles, comment, options.platform, options.encodeFileName); + var entriesCount = 0; + try { + + zip.forEach(function (relativePath, file) { + entriesCount++; + var compression = getCompression(file.options.compression, options.compression); + var compressionOptions = file.options.compressionOptions || options.compressionOptions || {}; + var dir = file.dir, date = file.date; + + file._compressWorker(compression, compressionOptions) + .withStreamInfo("file", { + name : relativePath, + dir : dir, + date : date, + comment : file.comment || "", + unixPermissions : file.unixPermissions, + dosPermissions : file.dosPermissions + }) + .pipe(zipFileWorker); + }); + zipFileWorker.entriesCount = entriesCount; + } catch (e) { + zipFileWorker.error(e); + } + + return zipFileWorker; +}; + +},{"../compressions":3,"./ZipFileWorker":8}],10:[function(require,module,exports){ +'use strict'; + +/** + * Representation a of zip file in js + * @constructor + */ +function JSZip() { + // if this constructor is used without `new`, it adds `new` before itself: + if(!(this instanceof JSZip)) { + return new JSZip(); + } + + if(arguments.length) { + throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide."); + } + + // object containing the files : + // { + // "folder/" : {...}, + // "folder/data.txt" : {...} + // } + // NOTE: we use a null prototype because we do not + // want filenames like "toString" coming from a zip file + // to overwrite methods and attributes in a normal Object. + this.files = Object.create(null); + + this.comment = null; + + // Where we are in the hierarchy + this.root = ""; + this.clone = function() { + var newObj = new JSZip(); + for (var i in this) { + if (typeof this[i] !== "function") { + newObj[i] = this[i]; + } + } + return newObj; + }; +} +JSZip.prototype = require('./object'); +JSZip.prototype.loadAsync = require('./load'); +JSZip.support = require('./support'); +JSZip.defaults = require('./defaults'); + +// TODO find a better way to handle this version, +// a require('package.json').version doesn't work with webpack, see #327 +JSZip.version = "3.7.1"; + +JSZip.loadAsync = function (content, options) { + return new JSZip().loadAsync(content, options); +}; + +JSZip.external = require("./external"); +module.exports = JSZip; + +},{"./defaults":5,"./external":6,"./load":11,"./object":15,"./support":30}],11:[function(require,module,exports){ +'use strict'; +var utils = require('./utils'); +var external = require("./external"); +var utf8 = require('./utf8'); +var ZipEntries = require('./zipEntries'); +var Crc32Probe = require('./stream/Crc32Probe'); +var nodejsUtils = require("./nodejsUtils"); + +/** + * Check the CRC32 of an entry. + * @param {ZipEntry} zipEntry the zip entry to check. + * @return {Promise} the result. + */ +function checkEntryCRC32(zipEntry) { + return new external.Promise(function (resolve, reject) { + var worker = zipEntry.decompressed.getContentWorker().pipe(new Crc32Probe()); + worker.on("error", function (e) { + reject(e); + }) + .on("end", function () { + if (worker.streamInfo.crc32 !== zipEntry.decompressed.crc32) { + reject(new Error("Corrupted zip : CRC32 mismatch")); + } else { + resolve(); + } + }) + .resume(); + }); +} + +module.exports = function (data, options) { + var zip = this; + options = utils.extend(options || {}, { + base64: false, + checkCRC32: false, + optimizedBinaryString: false, + createFolders: false, + decodeFileName: utf8.utf8decode + }); + + if (nodejsUtils.isNode && nodejsUtils.isStream(data)) { + return external.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file.")); + } + + return utils.prepareContent("the loaded zip file", data, true, options.optimizedBinaryString, options.base64) + .then(function (data) { + var zipEntries = new ZipEntries(options); + zipEntries.load(data); + return zipEntries; + }).then(function checkCRC32(zipEntries) { + var promises = [external.Promise.resolve(zipEntries)]; + var files = zipEntries.files; + if (options.checkCRC32) { + for (var i = 0; i < files.length; i++) { + promises.push(checkEntryCRC32(files[i])); + } + } + return external.Promise.all(promises); + }).then(function addFiles(results) { + var zipEntries = results.shift(); + var files = zipEntries.files; + for (var i = 0; i < files.length; i++) { + var input = files[i]; + zip.file(input.fileNameStr, input.decompressed, { + binary: true, + optimizedBinaryString: true, + date: input.date, + dir: input.dir, + comment: input.fileCommentStr.length ? input.fileCommentStr : null, + unixPermissions: input.unixPermissions, + dosPermissions: input.dosPermissions, + createFolders: options.createFolders + }); + } + if (zipEntries.zipComment.length) { + zip.comment = zipEntries.zipComment; + } + + return zip; + }); +}; + +},{"./external":6,"./nodejsUtils":14,"./stream/Crc32Probe":25,"./utf8":31,"./utils":32,"./zipEntries":33}],12:[function(require,module,exports){ +"use strict"; + +var utils = require('../utils'); +var GenericWorker = require('../stream/GenericWorker'); + +/** + * A worker that use a nodejs stream as source. + * @constructor + * @param {String} filename the name of the file entry for this stream. + * @param {Readable} stream the nodejs stream. + */ +function NodejsStreamInputAdapter(filename, stream) { + GenericWorker.call(this, "Nodejs stream input adapter for " + filename); + this._upstreamEnded = false; + this._bindStream(stream); +} + +utils.inherits(NodejsStreamInputAdapter, GenericWorker); + +/** + * Prepare the stream and bind the callbacks on it. + * Do this ASAP on node 0.10 ! A lazy binding doesn't always work. + * @param {Stream} stream the nodejs stream to use. + */ +NodejsStreamInputAdapter.prototype._bindStream = function (stream) { + var self = this; + this._stream = stream; + stream.pause(); + stream + .on("data", function (chunk) { + self.push({ + data: chunk, + meta : { + percent : 0 + } + }); + }) + .on("error", function (e) { + if(self.isPaused) { + this.generatedError = e; + } else { + self.error(e); + } + }) + .on("end", function () { + if(self.isPaused) { + self._upstreamEnded = true; + } else { + self.end(); + } + }); +}; +NodejsStreamInputAdapter.prototype.pause = function () { + if(!GenericWorker.prototype.pause.call(this)) { + return false; + } + this._stream.pause(); + return true; +}; +NodejsStreamInputAdapter.prototype.resume = function () { + if(!GenericWorker.prototype.resume.call(this)) { + return false; + } + + if(this._upstreamEnded) { + this.end(); + } else { + this._stream.resume(); + } + + return true; +}; + +module.exports = NodejsStreamInputAdapter; + +},{"../stream/GenericWorker":28,"../utils":32}],13:[function(require,module,exports){ +'use strict'; + +var Readable = require('readable-stream').Readable; + +var utils = require('../utils'); +utils.inherits(NodejsStreamOutputAdapter, Readable); + +/** +* A nodejs stream using a worker as source. +* @see the SourceWrapper in http://nodejs.org/api/stream.html +* @constructor +* @param {StreamHelper} helper the helper wrapping the worker +* @param {Object} options the nodejs stream options +* @param {Function} updateCb the update callback. +*/ +function NodejsStreamOutputAdapter(helper, options, updateCb) { + Readable.call(this, options); + this._helper = helper; + + var self = this; + helper.on("data", function (data, meta) { + if (!self.push(data)) { + self._helper.pause(); + } + if(updateCb) { + updateCb(meta); + } + }) + .on("error", function(e) { + self.emit('error', e); + }) + .on("end", function () { + self.push(null); + }); +} + + +NodejsStreamOutputAdapter.prototype._read = function() { + this._helper.resume(); +}; + +module.exports = NodejsStreamOutputAdapter; + +},{"../utils":32,"readable-stream":16}],14:[function(require,module,exports){ +'use strict'; + +module.exports = { + /** + * True if this is running in Nodejs, will be undefined in a browser. + * In a browser, browserify won't include this file and the whole module + * will be resolved an empty object. + */ + isNode : typeof Buffer !== "undefined", + /** + * Create a new nodejs Buffer from an existing content. + * @param {Object} data the data to pass to the constructor. + * @param {String} encoding the encoding to use. + * @return {Buffer} a new Buffer. + */ + newBufferFrom: function(data, encoding) { + if (Buffer.from && Buffer.from !== Uint8Array.from) { + return Buffer.from(data, encoding); + } else { + if (typeof data === "number") { + // Safeguard for old Node.js versions. On newer versions, + // Buffer.from(number) / Buffer(number, encoding) already throw. + throw new Error("The \"data\" argument must not be a number"); + } + return new Buffer(data, encoding); + } + }, + /** + * Create a new nodejs Buffer with the specified size. + * @param {Integer} size the size of the buffer. + * @return {Buffer} a new Buffer. + */ + allocBuffer: function (size) { + if (Buffer.alloc) { + return Buffer.alloc(size); + } else { + var buf = new Buffer(size); + buf.fill(0); + return buf; + } + }, + /** + * Find out if an object is a Buffer. + * @param {Object} b the object to test. + * @return {Boolean} true if the object is a Buffer, false otherwise. + */ + isBuffer : function(b){ + return Buffer.isBuffer(b); + }, + + isStream : function (obj) { + return obj && + typeof obj.on === "function" && + typeof obj.pause === "function" && + typeof obj.resume === "function"; + } +}; + +},{}],15:[function(require,module,exports){ +'use strict'; +var utf8 = require('./utf8'); +var utils = require('./utils'); +var GenericWorker = require('./stream/GenericWorker'); +var StreamHelper = require('./stream/StreamHelper'); +var defaults = require('./defaults'); +var CompressedObject = require('./compressedObject'); +var ZipObject = require('./zipObject'); +var generate = require("./generate"); +var nodejsUtils = require("./nodejsUtils"); +var NodejsStreamInputAdapter = require("./nodejs/NodejsStreamInputAdapter"); + + +/** + * Add a file in the current folder. + * @private + * @param {string} name the name of the file + * @param {String|ArrayBuffer|Uint8Array|Buffer} data the data of the file + * @param {Object} originalOptions the options of the file + * @return {Object} the new file. + */ +var fileAdd = function(name, data, originalOptions) { + // be sure sub folders exist + var dataType = utils.getTypeOf(data), + parent; + + + /* + * Correct options. + */ + + var o = utils.extend(originalOptions || {}, defaults); + o.date = o.date || new Date(); + if (o.compression !== null) { + o.compression = o.compression.toUpperCase(); + } + + if (typeof o.unixPermissions === "string") { + o.unixPermissions = parseInt(o.unixPermissions, 8); + } + + // UNX_IFDIR 0040000 see zipinfo.c + if (o.unixPermissions && (o.unixPermissions & 0x4000)) { + o.dir = true; + } + // Bit 4 Directory + if (o.dosPermissions && (o.dosPermissions & 0x0010)) { + o.dir = true; + } + + if (o.dir) { + name = forceTrailingSlash(name); + } + if (o.createFolders && (parent = parentFolder(name))) { + folderAdd.call(this, parent, true); + } + + var isUnicodeString = dataType === "string" && o.binary === false && o.base64 === false; + if (!originalOptions || typeof originalOptions.binary === "undefined") { + o.binary = !isUnicodeString; + } + + + var isCompressedEmpty = (data instanceof CompressedObject) && data.uncompressedSize === 0; + + if (isCompressedEmpty || o.dir || !data || data.length === 0) { + o.base64 = false; + o.binary = true; + data = ""; + o.compression = "STORE"; + dataType = "string"; + } + + /* + * Convert content to fit. + */ + + var zipObjectContent = null; + if (data instanceof CompressedObject || data instanceof GenericWorker) { + zipObjectContent = data; + } else if (nodejsUtils.isNode && nodejsUtils.isStream(data)) { + zipObjectContent = new NodejsStreamInputAdapter(name, data); + } else { + zipObjectContent = utils.prepareContent(name, data, o.binary, o.optimizedBinaryString, o.base64); + } + + var object = new ZipObject(name, zipObjectContent, o); + this.files[name] = object; + /* + TODO: we can't throw an exception because we have async promises + (we can have a promise of a Date() for example) but returning a + promise is useless because file(name, data) returns the JSZip + object for chaining. Should we break that to allow the user + to catch the error ? + + return external.Promise.resolve(zipObjectContent) + .then(function () { + return object; + }); + */ +}; + +/** + * Find the parent folder of the path. + * @private + * @param {string} path the path to use + * @return {string} the parent folder, or "" + */ +var parentFolder = function (path) { + if (path.slice(-1) === '/') { + path = path.substring(0, path.length - 1); + } + var lastSlash = path.lastIndexOf('/'); + return (lastSlash > 0) ? path.substring(0, lastSlash) : ""; +}; + +/** + * Returns the path with a slash at the end. + * @private + * @param {String} path the path to check. + * @return {String} the path with a trailing slash. + */ +var forceTrailingSlash = function(path) { + // Check the name ends with a / + if (path.slice(-1) !== "/") { + path += "/"; // IE doesn't like substr(-1) + } + return path; +}; + +/** + * Add a (sub) folder in the current folder. + * @private + * @param {string} name the folder's name + * @param {boolean=} [createFolders] If true, automatically create sub + * folders. Defaults to false. + * @return {Object} the new folder. + */ +var folderAdd = function(name, createFolders) { + createFolders = (typeof createFolders !== 'undefined') ? createFolders : defaults.createFolders; + + name = forceTrailingSlash(name); + + // Does this folder already exist? + if (!this.files[name]) { + fileAdd.call(this, name, null, { + dir: true, + createFolders: createFolders + }); + } + return this.files[name]; +}; + +/** +* Cross-window, cross-Node-context regular expression detection +* @param {Object} object Anything +* @return {Boolean} true if the object is a regular expression, +* false otherwise +*/ +function isRegExp(object) { + return Object.prototype.toString.call(object) === "[object RegExp]"; +} + +// return the actual prototype of JSZip +var out = { + /** + * @see loadAsync + */ + load: function() { + throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide."); + }, + + + /** + * Call a callback function for each entry at this folder level. + * @param {Function} cb the callback function: + * function (relativePath, file) {...} + * It takes 2 arguments : the relative path and the file. + */ + forEach: function(cb) { + var filename, relativePath, file; + /* jshint ignore:start */ + // ignore warning about unwanted properties because this.files is a null prototype object + for (filename in this.files) { + file = this.files[filename]; + relativePath = filename.slice(this.root.length, filename.length); + if (relativePath && filename.slice(0, this.root.length) === this.root) { // the file is in the current root + cb(relativePath, file); // TODO reverse the parameters ? need to be clean AND consistent with the filter search fn... + } + } + /* jshint ignore:end */ + }, + + /** + * Filter nested files/folders with the specified function. + * @param {Function} search the predicate to use : + * function (relativePath, file) {...} + * It takes 2 arguments : the relative path and the file. + * @return {Array} An array of matching elements. + */ + filter: function(search) { + var result = []; + this.forEach(function (relativePath, entry) { + if (search(relativePath, entry)) { // the file matches the function + result.push(entry); + } + + }); + return result; + }, + + /** + * Add a file to the zip file, or search a file. + * @param {string|RegExp} name The name of the file to add (if data is defined), + * the name of the file to find (if no data) or a regex to match files. + * @param {String|ArrayBuffer|Uint8Array|Buffer} data The file data, either raw or base64 encoded + * @param {Object} o File options + * @return {JSZip|Object|Array} this JSZip object (when adding a file), + * a file (when searching by string) or an array of files (when searching by regex). + */ + file: function(name, data, o) { + if (arguments.length === 1) { + if (isRegExp(name)) { + var regexp = name; + return this.filter(function(relativePath, file) { + return !file.dir && regexp.test(relativePath); + }); + } + else { // text + var obj = this.files[this.root + name]; + if (obj && !obj.dir) { + return obj; + } else { + return null; + } + } + } + else { // more than one argument : we have data ! + name = this.root + name; + fileAdd.call(this, name, data, o); + } + return this; + }, + + /** + * Add a directory to the zip file, or search. + * @param {String|RegExp} arg The name of the directory to add, or a regex to search folders. + * @return {JSZip} an object with the new directory as the root, or an array containing matching folders. + */ + folder: function(arg) { + if (!arg) { + return this; + } + + if (isRegExp(arg)) { + return this.filter(function(relativePath, file) { + return file.dir && arg.test(relativePath); + }); + } + + // else, name is a new folder + var name = this.root + arg; + var newFolder = folderAdd.call(this, name); + + // Allow chaining by returning a new object with this folder as the root + var ret = this.clone(); + ret.root = newFolder.name; + return ret; + }, + + /** + * Delete a file, or a directory and all sub-files, from the zip + * @param {string} name the name of the file to delete + * @return {JSZip} this JSZip object + */ + remove: function(name) { + name = this.root + name; + var file = this.files[name]; + if (!file) { + // Look for any folders + if (name.slice(-1) !== "/") { + name += "/"; + } + file = this.files[name]; + } + + if (file && !file.dir) { + // file + delete this.files[name]; + } else { + // maybe a folder, delete recursively + var kids = this.filter(function(relativePath, file) { + return file.name.slice(0, name.length) === name; + }); + for (var i = 0; i < kids.length; i++) { + delete this.files[kids[i].name]; + } + } + + return this; + }, + + /** + * Generate the complete zip file + * @param {Object} options the options to generate the zip file : + * - compression, "STORE" by default. + * - type, "base64" by default. Values are : string, base64, uint8array, arraybuffer, blob. + * @return {String|Uint8Array|ArrayBuffer|Buffer|Blob} the zip file + */ + generate: function(options) { + throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide."); + }, + + /** + * Generate the complete zip file as an internal stream. + * @param {Object} options the options to generate the zip file : + * - compression, "STORE" by default. + * - type, "base64" by default. Values are : string, base64, uint8array, arraybuffer, blob. + * @return {StreamHelper} the streamed zip file. + */ + generateInternalStream: function(options) { + var worker, opts = {}; + try { + opts = utils.extend(options || {}, { + streamFiles: false, + compression: "STORE", + compressionOptions : null, + type: "", + platform: "DOS", + comment: null, + mimeType: 'application/zip', + encodeFileName: utf8.utf8encode + }); + + opts.type = opts.type.toLowerCase(); + opts.compression = opts.compression.toUpperCase(); + + // "binarystring" is preferred but the internals use "string". + if(opts.type === "binarystring") { + opts.type = "string"; + } + + if (!opts.type) { + throw new Error("No output type specified."); + } + + utils.checkSupport(opts.type); + + // accept nodejs `process.platform` + if( + opts.platform === 'darwin' || + opts.platform === 'freebsd' || + opts.platform === 'linux' || + opts.platform === 'sunos' + ) { + opts.platform = "UNIX"; + } + if (opts.platform === 'win32') { + opts.platform = "DOS"; + } + + var comment = opts.comment || this.comment || ""; + worker = generate.generateWorker(this, opts, comment); + } catch (e) { + worker = new GenericWorker("error"); + worker.error(e); + } + return new StreamHelper(worker, opts.type || "string", opts.mimeType); + }, + /** + * Generate the complete zip file asynchronously. + * @see generateInternalStream + */ + generateAsync: function(options, onUpdate) { + return this.generateInternalStream(options).accumulate(onUpdate); + }, + /** + * Generate the complete zip file asynchronously. + * @see generateInternalStream + */ + generateNodeStream: function(options, onUpdate) { + options = options || {}; + if (!options.type) { + options.type = "nodebuffer"; + } + return this.generateInternalStream(options).toNodejsStream(onUpdate); + } +}; +module.exports = out; + +},{"./compressedObject":2,"./defaults":5,"./generate":9,"./nodejs/NodejsStreamInputAdapter":12,"./nodejsUtils":14,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31,"./utils":32,"./zipObject":35}],16:[function(require,module,exports){ +/* + * This file is used by module bundlers (browserify/webpack/etc) when + * including a stream implementation. We use "readable-stream" to get a + * consistent behavior between nodejs versions but bundlers often have a shim + * for "stream". Using this shim greatly improve the compatibility and greatly + * reduce the final size of the bundle (only one stream implementation, not + * two). + */ +module.exports = require("stream"); + +},{"stream":undefined}],17:[function(require,module,exports){ +'use strict'; +var DataReader = require('./DataReader'); +var utils = require('../utils'); + +function ArrayReader(data) { + DataReader.call(this, data); + for(var i = 0; i < this.data.length; i++) { + data[i] = data[i] & 0xFF; + } +} +utils.inherits(ArrayReader, DataReader); +/** + * @see DataReader.byteAt + */ +ArrayReader.prototype.byteAt = function(i) { + return this.data[this.zero + i]; +}; +/** + * @see DataReader.lastIndexOfSignature + */ +ArrayReader.prototype.lastIndexOfSignature = function(sig) { + var sig0 = sig.charCodeAt(0), + sig1 = sig.charCodeAt(1), + sig2 = sig.charCodeAt(2), + sig3 = sig.charCodeAt(3); + for (var i = this.length - 4; i >= 0; --i) { + if (this.data[i] === sig0 && this.data[i + 1] === sig1 && this.data[i + 2] === sig2 && this.data[i + 3] === sig3) { + return i - this.zero; + } + } + + return -1; +}; +/** + * @see DataReader.readAndCheckSignature + */ +ArrayReader.prototype.readAndCheckSignature = function (sig) { + var sig0 = sig.charCodeAt(0), + sig1 = sig.charCodeAt(1), + sig2 = sig.charCodeAt(2), + sig3 = sig.charCodeAt(3), + data = this.readData(4); + return sig0 === data[0] && sig1 === data[1] && sig2 === data[2] && sig3 === data[3]; +}; +/** + * @see DataReader.readData + */ +ArrayReader.prototype.readData = function(size) { + this.checkOffset(size); + if(size === 0) { + return []; + } + var result = this.data.slice(this.zero + this.index, this.zero + this.index + size); + this.index += size; + return result; +}; +module.exports = ArrayReader; + +},{"../utils":32,"./DataReader":18}],18:[function(require,module,exports){ +'use strict'; +var utils = require('../utils'); + +function DataReader(data) { + this.data = data; // type : see implementation + this.length = data.length; + this.index = 0; + this.zero = 0; +} +DataReader.prototype = { + /** + * Check that the offset will not go too far. + * @param {string} offset the additional offset to check. + * @throws {Error} an Error if the offset is out of bounds. + */ + checkOffset: function(offset) { + this.checkIndex(this.index + offset); + }, + /** + * Check that the specified index will not be too far. + * @param {string} newIndex the index to check. + * @throws {Error} an Error if the index is out of bounds. + */ + checkIndex: function(newIndex) { + if (this.length < this.zero + newIndex || newIndex < 0) { + throw new Error("End of data reached (data length = " + this.length + ", asked index = " + (newIndex) + "). Corrupted zip ?"); + } + }, + /** + * Change the index. + * @param {number} newIndex The new index. + * @throws {Error} if the new index is out of the data. + */ + setIndex: function(newIndex) { + this.checkIndex(newIndex); + this.index = newIndex; + }, + /** + * Skip the next n bytes. + * @param {number} n the number of bytes to skip. + * @throws {Error} if the new index is out of the data. + */ + skip: function(n) { + this.setIndex(this.index + n); + }, + /** + * Get the byte at the specified index. + * @param {number} i the index to use. + * @return {number} a byte. + */ + byteAt: function(i) { + // see implementations + }, + /** + * Get the next number with a given byte size. + * @param {number} size the number of bytes to read. + * @return {number} the corresponding number. + */ + readInt: function(size) { + var result = 0, + i; + this.checkOffset(size); + for (i = this.index + size - 1; i >= this.index; i--) { + result = (result << 8) + this.byteAt(i); + } + this.index += size; + return result; + }, + /** + * Get the next string with a given byte size. + * @param {number} size the number of bytes to read. + * @return {string} the corresponding string. + */ + readString: function(size) { + return utils.transformTo("string", this.readData(size)); + }, + /** + * Get raw data without conversion, bytes. + * @param {number} size the number of bytes to read. + * @return {Object} the raw data, implementation specific. + */ + readData: function(size) { + // see implementations + }, + /** + * Find the last occurrence of a zip signature (4 bytes). + * @param {string} sig the signature to find. + * @return {number} the index of the last occurrence, -1 if not found. + */ + lastIndexOfSignature: function(sig) { + // see implementations + }, + /** + * Read the signature (4 bytes) at the current position and compare it with sig. + * @param {string} sig the expected signature + * @return {boolean} true if the signature matches, false otherwise. + */ + readAndCheckSignature: function(sig) { + // see implementations + }, + /** + * Get the next date. + * @return {Date} the date. + */ + readDate: function() { + var dostime = this.readInt(4); + return new Date(Date.UTC( + ((dostime >> 25) & 0x7f) + 1980, // year + ((dostime >> 21) & 0x0f) - 1, // month + (dostime >> 16) & 0x1f, // day + (dostime >> 11) & 0x1f, // hour + (dostime >> 5) & 0x3f, // minute + (dostime & 0x1f) << 1)); // second + } +}; +module.exports = DataReader; + +},{"../utils":32}],19:[function(require,module,exports){ +'use strict'; +var Uint8ArrayReader = require('./Uint8ArrayReader'); +var utils = require('../utils'); + +function NodeBufferReader(data) { + Uint8ArrayReader.call(this, data); +} +utils.inherits(NodeBufferReader, Uint8ArrayReader); + +/** + * @see DataReader.readData + */ +NodeBufferReader.prototype.readData = function(size) { + this.checkOffset(size); + var result = this.data.slice(this.zero + this.index, this.zero + this.index + size); + this.index += size; + return result; +}; +module.exports = NodeBufferReader; + +},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(require,module,exports){ +'use strict'; +var DataReader = require('./DataReader'); +var utils = require('../utils'); + +function StringReader(data) { + DataReader.call(this, data); +} +utils.inherits(StringReader, DataReader); +/** + * @see DataReader.byteAt + */ +StringReader.prototype.byteAt = function(i) { + return this.data.charCodeAt(this.zero + i); +}; +/** + * @see DataReader.lastIndexOfSignature + */ +StringReader.prototype.lastIndexOfSignature = function(sig) { + return this.data.lastIndexOf(sig) - this.zero; +}; +/** + * @see DataReader.readAndCheckSignature + */ +StringReader.prototype.readAndCheckSignature = function (sig) { + var data = this.readData(4); + return sig === data; +}; +/** + * @see DataReader.readData + */ +StringReader.prototype.readData = function(size) { + this.checkOffset(size); + // this will work because the constructor applied the "& 0xff" mask. + var result = this.data.slice(this.zero + this.index, this.zero + this.index + size); + this.index += size; + return result; +}; +module.exports = StringReader; + +},{"../utils":32,"./DataReader":18}],21:[function(require,module,exports){ +'use strict'; +var ArrayReader = require('./ArrayReader'); +var utils = require('../utils'); + +function Uint8ArrayReader(data) { + ArrayReader.call(this, data); +} +utils.inherits(Uint8ArrayReader, ArrayReader); +/** + * @see DataReader.readData + */ +Uint8ArrayReader.prototype.readData = function(size) { + this.checkOffset(size); + if(size === 0) { + // in IE10, when using subarray(idx, idx), we get the array [0x00] instead of []. + return new Uint8Array(0); + } + var result = this.data.subarray(this.zero + this.index, this.zero + this.index + size); + this.index += size; + return result; +}; +module.exports = Uint8ArrayReader; + +},{"../utils":32,"./ArrayReader":17}],22:[function(require,module,exports){ +'use strict'; + +var utils = require('../utils'); +var support = require('../support'); +var ArrayReader = require('./ArrayReader'); +var StringReader = require('./StringReader'); +var NodeBufferReader = require('./NodeBufferReader'); +var Uint8ArrayReader = require('./Uint8ArrayReader'); + +/** + * Create a reader adapted to the data. + * @param {String|ArrayBuffer|Uint8Array|Buffer} data the data to read. + * @return {DataReader} the data reader. + */ +module.exports = function (data) { + var type = utils.getTypeOf(data); + utils.checkSupport(type); + if (type === "string" && !support.uint8array) { + return new StringReader(data); + } + if (type === "nodebuffer") { + return new NodeBufferReader(data); + } + if (support.uint8array) { + return new Uint8ArrayReader(utils.transformTo("uint8array", data)); + } + return new ArrayReader(utils.transformTo("array", data)); +}; + +},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(require,module,exports){ +'use strict'; +exports.LOCAL_FILE_HEADER = "PK\x03\x04"; +exports.CENTRAL_FILE_HEADER = "PK\x01\x02"; +exports.CENTRAL_DIRECTORY_END = "PK\x05\x06"; +exports.ZIP64_CENTRAL_DIRECTORY_LOCATOR = "PK\x06\x07"; +exports.ZIP64_CENTRAL_DIRECTORY_END = "PK\x06\x06"; +exports.DATA_DESCRIPTOR = "PK\x07\x08"; + +},{}],24:[function(require,module,exports){ +'use strict'; + +var GenericWorker = require('./GenericWorker'); +var utils = require('../utils'); + +/** + * A worker which convert chunks to a specified type. + * @constructor + * @param {String} destType the destination type. + */ +function ConvertWorker(destType) { + GenericWorker.call(this, "ConvertWorker to " + destType); + this.destType = destType; +} +utils.inherits(ConvertWorker, GenericWorker); + +/** + * @see GenericWorker.processChunk + */ +ConvertWorker.prototype.processChunk = function (chunk) { + this.push({ + data : utils.transformTo(this.destType, chunk.data), + meta : chunk.meta + }); +}; +module.exports = ConvertWorker; + +},{"../utils":32,"./GenericWorker":28}],25:[function(require,module,exports){ +'use strict'; + +var GenericWorker = require('./GenericWorker'); +var crc32 = require('../crc32'); +var utils = require('../utils'); + +/** + * A worker which calculate the crc32 of the data flowing through. + * @constructor + */ +function Crc32Probe() { + GenericWorker.call(this, "Crc32Probe"); + this.withStreamInfo("crc32", 0); +} +utils.inherits(Crc32Probe, GenericWorker); + +/** + * @see GenericWorker.processChunk + */ +Crc32Probe.prototype.processChunk = function (chunk) { + this.streamInfo.crc32 = crc32(chunk.data, this.streamInfo.crc32 || 0); + this.push(chunk); +}; +module.exports = Crc32Probe; + +},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(require,module,exports){ +'use strict'; + +var utils = require('../utils'); +var GenericWorker = require('./GenericWorker'); + +/** + * A worker which calculate the total length of the data flowing through. + * @constructor + * @param {String} propName the name used to expose the length + */ +function DataLengthProbe(propName) { + GenericWorker.call(this, "DataLengthProbe for " + propName); + this.propName = propName; + this.withStreamInfo(propName, 0); +} +utils.inherits(DataLengthProbe, GenericWorker); + +/** + * @see GenericWorker.processChunk + */ +DataLengthProbe.prototype.processChunk = function (chunk) { + if(chunk) { + var length = this.streamInfo[this.propName] || 0; + this.streamInfo[this.propName] = length + chunk.data.length; + } + GenericWorker.prototype.processChunk.call(this, chunk); +}; +module.exports = DataLengthProbe; + + +},{"../utils":32,"./GenericWorker":28}],27:[function(require,module,exports){ +'use strict'; + +var utils = require('../utils'); +var GenericWorker = require('./GenericWorker'); + +// the size of the generated chunks +// TODO expose this as a public variable +var DEFAULT_BLOCK_SIZE = 16 * 1024; + +/** + * A worker that reads a content and emits chunks. + * @constructor + * @param {Promise} dataP the promise of the data to split + */ +function DataWorker(dataP) { + GenericWorker.call(this, "DataWorker"); + var self = this; + this.dataIsReady = false; + this.index = 0; + this.max = 0; + this.data = null; + this.type = ""; + + this._tickScheduled = false; + + dataP.then(function (data) { + self.dataIsReady = true; + self.data = data; + self.max = data && data.length || 0; + self.type = utils.getTypeOf(data); + if(!self.isPaused) { + self._tickAndRepeat(); + } + }, function (e) { + self.error(e); + }); +} + +utils.inherits(DataWorker, GenericWorker); + +/** + * @see GenericWorker.cleanUp + */ +DataWorker.prototype.cleanUp = function () { + GenericWorker.prototype.cleanUp.call(this); + this.data = null; +}; + +/** + * @see GenericWorker.resume + */ +DataWorker.prototype.resume = function () { + if(!GenericWorker.prototype.resume.call(this)) { + return false; + } + + if (!this._tickScheduled && this.dataIsReady) { + this._tickScheduled = true; + utils.delay(this._tickAndRepeat, [], this); + } + return true; +}; + +/** + * Trigger a tick a schedule an other call to this function. + */ +DataWorker.prototype._tickAndRepeat = function() { + this._tickScheduled = false; + if(this.isPaused || this.isFinished) { + return; + } + this._tick(); + if(!this.isFinished) { + utils.delay(this._tickAndRepeat, [], this); + this._tickScheduled = true; + } +}; + +/** + * Read and push a chunk. + */ +DataWorker.prototype._tick = function() { + + if(this.isPaused || this.isFinished) { + return false; + } + + var size = DEFAULT_BLOCK_SIZE; + var data = null, nextIndex = Math.min(this.max, this.index + size); + if (this.index >= this.max) { + // EOF + return this.end(); + } else { + switch(this.type) { + case "string": + data = this.data.substring(this.index, nextIndex); + break; + case "uint8array": + data = this.data.subarray(this.index, nextIndex); + break; + case "array": + case "nodebuffer": + data = this.data.slice(this.index, nextIndex); + break; + } + this.index = nextIndex; + return this.push({ + data : data, + meta : { + percent : this.max ? this.index / this.max * 100 : 0 + } + }); + } +}; + +module.exports = DataWorker; + +},{"../utils":32,"./GenericWorker":28}],28:[function(require,module,exports){ +'use strict'; + +/** + * A worker that does nothing but passing chunks to the next one. This is like + * a nodejs stream but with some differences. On the good side : + * - it works on IE 6-9 without any issue / polyfill + * - it weights less than the full dependencies bundled with browserify + * - it forwards errors (no need to declare an error handler EVERYWHERE) + * + * A chunk is an object with 2 attributes : `meta` and `data`. The former is an + * object containing anything (`percent` for example), see each worker for more + * details. The latter is the real data (String, Uint8Array, etc). + * + * @constructor + * @param {String} name the name of the stream (mainly used for debugging purposes) + */ +function GenericWorker(name) { + // the name of the worker + this.name = name || "default"; + // an object containing metadata about the workers chain + this.streamInfo = {}; + // an error which happened when the worker was paused + this.generatedError = null; + // an object containing metadata to be merged by this worker into the general metadata + this.extraStreamInfo = {}; + // true if the stream is paused (and should not do anything), false otherwise + this.isPaused = true; + // true if the stream is finished (and should not do anything), false otherwise + this.isFinished = false; + // true if the stream is locked to prevent further structure updates (pipe), false otherwise + this.isLocked = false; + // the event listeners + this._listeners = { + 'data':[], + 'end':[], + 'error':[] + }; + // the previous worker, if any + this.previous = null; +} + +GenericWorker.prototype = { + /** + * Push a chunk to the next workers. + * @param {Object} chunk the chunk to push + */ + push : function (chunk) { + this.emit("data", chunk); + }, + /** + * End the stream. + * @return {Boolean} true if this call ended the worker, false otherwise. + */ + end : function () { + if (this.isFinished) { + return false; + } + + this.flush(); + try { + this.emit("end"); + this.cleanUp(); + this.isFinished = true; + } catch (e) { + this.emit("error", e); + } + return true; + }, + /** + * End the stream with an error. + * @param {Error} e the error which caused the premature end. + * @return {Boolean} true if this call ended the worker with an error, false otherwise. + */ + error : function (e) { + if (this.isFinished) { + return false; + } + + if(this.isPaused) { + this.generatedError = e; + } else { + this.isFinished = true; + + this.emit("error", e); + + // in the workers chain exploded in the middle of the chain, + // the error event will go downward but we also need to notify + // workers upward that there has been an error. + if(this.previous) { + this.previous.error(e); + } + + this.cleanUp(); + } + return true; + }, + /** + * Add a callback on an event. + * @param {String} name the name of the event (data, end, error) + * @param {Function} listener the function to call when the event is triggered + * @return {GenericWorker} the current object for chainability + */ + on : function (name, listener) { + this._listeners[name].push(listener); + return this; + }, + /** + * Clean any references when a worker is ending. + */ + cleanUp : function () { + this.streamInfo = this.generatedError = this.extraStreamInfo = null; + this._listeners = []; + }, + /** + * Trigger an event. This will call registered callback with the provided arg. + * @param {String} name the name of the event (data, end, error) + * @param {Object} arg the argument to call the callback with. + */ + emit : function (name, arg) { + if (this._listeners[name]) { + for(var i = 0; i < this._listeners[name].length; i++) { + this._listeners[name][i].call(this, arg); + } + } + }, + /** + * Chain a worker with an other. + * @param {Worker} next the worker receiving events from the current one. + * @return {worker} the next worker for chainability + */ + pipe : function (next) { + return next.registerPrevious(this); + }, + /** + * Same as `pipe` in the other direction. + * Using an API with `pipe(next)` is very easy. + * Implementing the API with the point of view of the next one registering + * a source is easier, see the ZipFileWorker. + * @param {Worker} previous the previous worker, sending events to this one + * @return {Worker} the current worker for chainability + */ + registerPrevious : function (previous) { + if (this.isLocked) { + throw new Error("The stream '" + this + "' has already been used."); + } + + // sharing the streamInfo... + this.streamInfo = previous.streamInfo; + // ... and adding our own bits + this.mergeStreamInfo(); + this.previous = previous; + var self = this; + previous.on('data', function (chunk) { + self.processChunk(chunk); + }); + previous.on('end', function () { + self.end(); + }); + previous.on('error', function (e) { + self.error(e); + }); + return this; + }, + /** + * Pause the stream so it doesn't send events anymore. + * @return {Boolean} true if this call paused the worker, false otherwise. + */ + pause : function () { + if(this.isPaused || this.isFinished) { + return false; + } + this.isPaused = true; + + if(this.previous) { + this.previous.pause(); + } + return true; + }, + /** + * Resume a paused stream. + * @return {Boolean} true if this call resumed the worker, false otherwise. + */ + resume : function () { + if(!this.isPaused || this.isFinished) { + return false; + } + this.isPaused = false; + + // if true, the worker tried to resume but failed + var withError = false; + if(this.generatedError) { + this.error(this.generatedError); + withError = true; + } + if(this.previous) { + this.previous.resume(); + } + + return !withError; + }, + /** + * Flush any remaining bytes as the stream is ending. + */ + flush : function () {}, + /** + * Process a chunk. This is usually the method overridden. + * @param {Object} chunk the chunk to process. + */ + processChunk : function(chunk) { + this.push(chunk); + }, + /** + * Add a key/value to be added in the workers chain streamInfo once activated. + * @param {String} key the key to use + * @param {Object} value the associated value + * @return {Worker} the current worker for chainability + */ + withStreamInfo : function (key, value) { + this.extraStreamInfo[key] = value; + this.mergeStreamInfo(); + return this; + }, + /** + * Merge this worker's streamInfo into the chain's streamInfo. + */ + mergeStreamInfo : function () { + for(var key in this.extraStreamInfo) { + if (!this.extraStreamInfo.hasOwnProperty(key)) { + continue; + } + this.streamInfo[key] = this.extraStreamInfo[key]; + } + }, + + /** + * Lock the stream to prevent further updates on the workers chain. + * After calling this method, all calls to pipe will fail. + */ + lock: function () { + if (this.isLocked) { + throw new Error("The stream '" + this + "' has already been used."); + } + this.isLocked = true; + if (this.previous) { + this.previous.lock(); + } + }, + + /** + * + * Pretty print the workers chain. + */ + toString : function () { + var me = "Worker " + this.name; + if (this.previous) { + return this.previous + " -> " + me; + } else { + return me; + } + } +}; + +module.exports = GenericWorker; + +},{}],29:[function(require,module,exports){ +'use strict'; + +var utils = require('../utils'); +var ConvertWorker = require('./ConvertWorker'); +var GenericWorker = require('./GenericWorker'); +var base64 = require('../base64'); +var support = require("../support"); +var external = require("../external"); + +var NodejsStreamOutputAdapter = null; +if (support.nodestream) { + try { + NodejsStreamOutputAdapter = require('../nodejs/NodejsStreamOutputAdapter'); + } catch(e) {} +} + +/** + * Apply the final transformation of the data. If the user wants a Blob for + * example, it's easier to work with an U8intArray and finally do the + * ArrayBuffer/Blob conversion. + * @param {String} type the name of the final type + * @param {String|Uint8Array|Buffer} content the content to transform + * @param {String} mimeType the mime type of the content, if applicable. + * @return {String|Uint8Array|ArrayBuffer|Buffer|Blob} the content in the right format. + */ +function transformZipOutput(type, content, mimeType) { + switch(type) { + case "blob" : + return utils.newBlob(utils.transformTo("arraybuffer", content), mimeType); + case "base64" : + return base64.encode(content); + default : + return utils.transformTo(type, content); + } +} + +/** + * Concatenate an array of data of the given type. + * @param {String} type the type of the data in the given array. + * @param {Array} dataArray the array containing the data chunks to concatenate + * @return {String|Uint8Array|Buffer} the concatenated data + * @throws Error if the asked type is unsupported + */ +function concat (type, dataArray) { + var i, index = 0, res = null, totalLength = 0; + for(i = 0; i < dataArray.length; i++) { + totalLength += dataArray[i].length; + } + switch(type) { + case "string": + return dataArray.join(""); + case "array": + return Array.prototype.concat.apply([], dataArray); + case "uint8array": + res = new Uint8Array(totalLength); + for(i = 0; i < dataArray.length; i++) { + res.set(dataArray[i], index); + index += dataArray[i].length; + } + return res; + case "nodebuffer": + return Buffer.concat(dataArray); + default: + throw new Error("concat : unsupported type '" + type + "'"); + } +} + +/** + * Listen a StreamHelper, accumulate its content and concatenate it into a + * complete block. + * @param {StreamHelper} helper the helper to use. + * @param {Function} updateCallback a callback called on each update. Called + * with one arg : + * - the metadata linked to the update received. + * @return Promise the promise for the accumulation. + */ +function accumulate(helper, updateCallback) { + return new external.Promise(function (resolve, reject){ + var dataArray = []; + var chunkType = helper._internalType, + resultType = helper._outputType, + mimeType = helper._mimeType; + helper + .on('data', function (data, meta) { + dataArray.push(data); + if(updateCallback) { + updateCallback(meta); + } + }) + .on('error', function(err) { + dataArray = []; + reject(err); + }) + .on('end', function (){ + try { + var result = transformZipOutput(resultType, concat(chunkType, dataArray), mimeType); + resolve(result); + } catch (e) { + reject(e); + } + dataArray = []; + }) + .resume(); + }); +} + +/** + * An helper to easily use workers outside of JSZip. + * @constructor + * @param {Worker} worker the worker to wrap + * @param {String} outputType the type of data expected by the use + * @param {String} mimeType the mime type of the content, if applicable. + */ +function StreamHelper(worker, outputType, mimeType) { + var internalType = outputType; + switch(outputType) { + case "blob": + case "arraybuffer": + internalType = "uint8array"; + break; + case "base64": + internalType = "string"; + break; + } + + try { + // the type used internally + this._internalType = internalType; + // the type used to output results + this._outputType = outputType; + // the mime type + this._mimeType = mimeType; + utils.checkSupport(internalType); + this._worker = worker.pipe(new ConvertWorker(internalType)); + // the last workers can be rewired without issues but we need to + // prevent any updates on previous workers. + worker.lock(); + } catch(e) { + this._worker = new GenericWorker("error"); + this._worker.error(e); + } +} + +StreamHelper.prototype = { + /** + * Listen a StreamHelper, accumulate its content and concatenate it into a + * complete block. + * @param {Function} updateCb the update callback. + * @return Promise the promise for the accumulation. + */ + accumulate : function (updateCb) { + return accumulate(this, updateCb); + }, + /** + * Add a listener on an event triggered on a stream. + * @param {String} evt the name of the event + * @param {Function} fn the listener + * @return {StreamHelper} the current helper. + */ + on : function (evt, fn) { + var self = this; + + if(evt === "data") { + this._worker.on(evt, function (chunk) { + fn.call(self, chunk.data, chunk.meta); + }); + } else { + this._worker.on(evt, function () { + utils.delay(fn, arguments, self); + }); + } + return this; + }, + /** + * Resume the flow of chunks. + * @return {StreamHelper} the current helper. + */ + resume : function () { + utils.delay(this._worker.resume, [], this._worker); + return this; + }, + /** + * Pause the flow of chunks. + * @return {StreamHelper} the current helper. + */ + pause : function () { + this._worker.pause(); + return this; + }, + /** + * Return a nodejs stream for this helper. + * @param {Function} updateCb the update callback. + * @return {NodejsStreamOutputAdapter} the nodejs stream. + */ + toNodejsStream : function (updateCb) { + utils.checkSupport("nodestream"); + if (this._outputType !== "nodebuffer") { + // an object stream containing blob/arraybuffer/uint8array/string + // is strange and I don't know if it would be useful. + // I you find this comment and have a good usecase, please open a + // bug report ! + throw new Error(this._outputType + " is not supported by this method"); + } + + return new NodejsStreamOutputAdapter(this, { + objectMode : this._outputType !== "nodebuffer" + }, updateCb); + } +}; + + +module.exports = StreamHelper; + +},{"../base64":1,"../external":6,"../nodejs/NodejsStreamOutputAdapter":13,"../support":30,"../utils":32,"./ConvertWorker":24,"./GenericWorker":28}],30:[function(require,module,exports){ +'use strict'; + +exports.base64 = true; +exports.array = true; +exports.string = true; +exports.arraybuffer = typeof ArrayBuffer !== "undefined" && typeof Uint8Array !== "undefined"; +exports.nodebuffer = typeof Buffer !== "undefined"; +// contains true if JSZip can read/generate Uint8Array, false otherwise. +exports.uint8array = typeof Uint8Array !== "undefined"; + +if (typeof ArrayBuffer === "undefined") { + exports.blob = false; +} +else { + var buffer = new ArrayBuffer(0); + try { + exports.blob = new Blob([buffer], { + type: "application/zip" + }).size === 0; + } + catch (e) { + try { + var Builder = self.BlobBuilder || self.WebKitBlobBuilder || self.MozBlobBuilder || self.MSBlobBuilder; + var builder = new Builder(); + builder.append(buffer); + exports.blob = builder.getBlob('application/zip').size === 0; + } + catch (e) { + exports.blob = false; + } + } +} + +try { + exports.nodestream = !!require('readable-stream').Readable; +} catch(e) { + exports.nodestream = false; +} + +},{"readable-stream":16}],31:[function(require,module,exports){ +'use strict'; + +var utils = require('./utils'); +var support = require('./support'); +var nodejsUtils = require('./nodejsUtils'); +var GenericWorker = require('./stream/GenericWorker'); + +/** + * The following functions come from pako, from pako/lib/utils/strings + * released under the MIT license, see pako https://github.com/nodeca/pako/ + */ + +// Table with utf8 lengths (calculated by first byte of sequence) +// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS, +// because max possible codepoint is 0x10ffff +var _utf8len = new Array(256); +for (var i=0; i<256; i++) { + _utf8len[i] = (i >= 252 ? 6 : i >= 248 ? 5 : i >= 240 ? 4 : i >= 224 ? 3 : i >= 192 ? 2 : 1); +} +_utf8len[254]=_utf8len[254]=1; // Invalid sequence start + +// convert string to array (typed, when possible) +var string2buf = function (str) { + var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0; + + // count binary size + for (m_pos = 0; m_pos < str_len; m_pos++) { + c = str.charCodeAt(m_pos); + if ((c & 0xfc00) === 0xd800 && (m_pos+1 < str_len)) { + c2 = str.charCodeAt(m_pos+1); + if ((c2 & 0xfc00) === 0xdc00) { + c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00); + m_pos++; + } + } + buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4; + } + + // allocate buffer + if (support.uint8array) { + buf = new Uint8Array(buf_len); + } else { + buf = new Array(buf_len); + } + + // convert + for (i=0, m_pos = 0; i < buf_len; m_pos++) { + c = str.charCodeAt(m_pos); + if ((c & 0xfc00) === 0xd800 && (m_pos+1 < str_len)) { + c2 = str.charCodeAt(m_pos+1); + if ((c2 & 0xfc00) === 0xdc00) { + c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00); + m_pos++; + } + } + if (c < 0x80) { + /* one byte */ + buf[i++] = c; + } else if (c < 0x800) { + /* two bytes */ + buf[i++] = 0xC0 | (c >>> 6); + buf[i++] = 0x80 | (c & 0x3f); + } else if (c < 0x10000) { + /* three bytes */ + buf[i++] = 0xE0 | (c >>> 12); + buf[i++] = 0x80 | (c >>> 6 & 0x3f); + buf[i++] = 0x80 | (c & 0x3f); + } else { + /* four bytes */ + buf[i++] = 0xf0 | (c >>> 18); + buf[i++] = 0x80 | (c >>> 12 & 0x3f); + buf[i++] = 0x80 | (c >>> 6 & 0x3f); + buf[i++] = 0x80 | (c & 0x3f); + } + } + + return buf; +}; + +// Calculate max possible position in utf8 buffer, +// that will not break sequence. If that's not possible +// - (very small limits) return max size as is. +// +// buf[] - utf8 bytes array +// max - length limit (mandatory); +var utf8border = function(buf, max) { + var pos; + + max = max || buf.length; + if (max > buf.length) { max = buf.length; } + + // go back from last position, until start of sequence found + pos = max-1; + while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; } + + // Fuckup - very small and broken sequence, + // return max, because we should return something anyway. + if (pos < 0) { return max; } + + // If we came to start of buffer - that means vuffer is too small, + // return max too. + if (pos === 0) { return max; } + + return (pos + _utf8len[buf[pos]] > max) ? pos : max; +}; + +// convert array to string +var buf2string = function (buf) { + var str, i, out, c, c_len; + var len = buf.length; + + // Reserve max possible length (2 words per char) + // NB: by unknown reasons, Array is significantly faster for + // String.fromCharCode.apply than Uint16Array. + var utf16buf = new Array(len*2); + + for (out=0, i=0; i 4) { utf16buf[out++] = 0xfffd; i += c_len-1; continue; } + + // apply mask on first byte + c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07; + // join the rest + while (c_len > 1 && i < len) { + c = (c << 6) | (buf[i++] & 0x3f); + c_len--; + } + + // terminated by end of string? + if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; } + + if (c < 0x10000) { + utf16buf[out++] = c; + } else { + c -= 0x10000; + utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff); + utf16buf[out++] = 0xdc00 | (c & 0x3ff); + } + } + + // shrinkBuf(utf16buf, out) + if (utf16buf.length !== out) { + if(utf16buf.subarray) { + utf16buf = utf16buf.subarray(0, out); + } else { + utf16buf.length = out; + } + } + + // return String.fromCharCode.apply(null, utf16buf); + return utils.applyFromCharCode(utf16buf); +}; + + +// That's all for the pako functions. + + +/** + * Transform a javascript string into an array (typed if possible) of bytes, + * UTF-8 encoded. + * @param {String} str the string to encode + * @return {Array|Uint8Array|Buffer} the UTF-8 encoded string. + */ +exports.utf8encode = function utf8encode(str) { + if (support.nodebuffer) { + return nodejsUtils.newBufferFrom(str, "utf-8"); + } + + return string2buf(str); +}; + + +/** + * Transform a bytes array (or a representation) representing an UTF-8 encoded + * string into a javascript string. + * @param {Array|Uint8Array|Buffer} buf the data de decode + * @return {String} the decoded string. + */ +exports.utf8decode = function utf8decode(buf) { + if (support.nodebuffer) { + return utils.transformTo("nodebuffer", buf).toString("utf-8"); + } + + buf = utils.transformTo(support.uint8array ? "uint8array" : "array", buf); + + return buf2string(buf); +}; + +/** + * A worker to decode utf8 encoded binary chunks into string chunks. + * @constructor + */ +function Utf8DecodeWorker() { + GenericWorker.call(this, "utf-8 decode"); + // the last bytes if a chunk didn't end with a complete codepoint. + this.leftOver = null; +} +utils.inherits(Utf8DecodeWorker, GenericWorker); + +/** + * @see GenericWorker.processChunk + */ +Utf8DecodeWorker.prototype.processChunk = function (chunk) { + + var data = utils.transformTo(support.uint8array ? "uint8array" : "array", chunk.data); + + // 1st step, re-use what's left of the previous chunk + if (this.leftOver && this.leftOver.length) { + if(support.uint8array) { + var previousData = data; + data = new Uint8Array(previousData.length + this.leftOver.length); + data.set(this.leftOver, 0); + data.set(previousData, this.leftOver.length); + } else { + data = this.leftOver.concat(data); + } + this.leftOver = null; + } + + var nextBoundary = utf8border(data); + var usableData = data; + if (nextBoundary !== data.length) { + if (support.uint8array) { + usableData = data.subarray(0, nextBoundary); + this.leftOver = data.subarray(nextBoundary, data.length); + } else { + usableData = data.slice(0, nextBoundary); + this.leftOver = data.slice(nextBoundary, data.length); + } + } + + this.push({ + data : exports.utf8decode(usableData), + meta : chunk.meta + }); +}; + +/** + * @see GenericWorker.flush + */ +Utf8DecodeWorker.prototype.flush = function () { + if(this.leftOver && this.leftOver.length) { + this.push({ + data : exports.utf8decode(this.leftOver), + meta : {} + }); + this.leftOver = null; + } +}; +exports.Utf8DecodeWorker = Utf8DecodeWorker; + +/** + * A worker to endcode string chunks into utf8 encoded binary chunks. + * @constructor + */ +function Utf8EncodeWorker() { + GenericWorker.call(this, "utf-8 encode"); +} +utils.inherits(Utf8EncodeWorker, GenericWorker); + +/** + * @see GenericWorker.processChunk + */ +Utf8EncodeWorker.prototype.processChunk = function (chunk) { + this.push({ + data : exports.utf8encode(chunk.data), + meta : chunk.meta + }); +}; +exports.Utf8EncodeWorker = Utf8EncodeWorker; + +},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(require,module,exports){ +'use strict'; + +var support = require('./support'); +var base64 = require('./base64'); +var nodejsUtils = require('./nodejsUtils'); +var setImmediate = require('set-immediate-shim'); +var external = require("./external"); + + +/** + * Convert a string that pass as a "binary string": it should represent a byte + * array but may have > 255 char codes. Be sure to take only the first byte + * and returns the byte array. + * @param {String} str the string to transform. + * @return {Array|Uint8Array} the string in a binary format. + */ +function string2binary(str) { + var result = null; + if (support.uint8array) { + result = new Uint8Array(str.length); + } else { + result = new Array(str.length); + } + return stringToArrayLike(str, result); +} + +/** + * Create a new blob with the given content and the given type. + * @param {String|ArrayBuffer} part the content to put in the blob. DO NOT use + * an Uint8Array because the stock browser of android 4 won't accept it (it + * will be silently converted to a string, "[object Uint8Array]"). + * + * Use only ONE part to build the blob to avoid a memory leak in IE11 / Edge: + * when a large amount of Array is used to create the Blob, the amount of + * memory consumed is nearly 100 times the original data amount. + * + * @param {String} type the mime type of the blob. + * @return {Blob} the created blob. + */ +exports.newBlob = function(part, type) { + exports.checkSupport("blob"); + + try { + // Blob constructor + return new Blob([part], { + type: type + }); + } + catch (e) { + + try { + // deprecated, browser only, old way + var Builder = self.BlobBuilder || self.WebKitBlobBuilder || self.MozBlobBuilder || self.MSBlobBuilder; + var builder = new Builder(); + builder.append(part); + return builder.getBlob(type); + } + catch (e) { + + // well, fuck ?! + throw new Error("Bug : can't construct the Blob."); + } + } + + +}; +/** + * The identity function. + * @param {Object} input the input. + * @return {Object} the same input. + */ +function identity(input) { + return input; +} + +/** + * Fill in an array with a string. + * @param {String} str the string to use. + * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to fill in (will be mutated). + * @return {Array|ArrayBuffer|Uint8Array|Buffer} the updated array. + */ +function stringToArrayLike(str, array) { + for (var i = 0; i < str.length; ++i) { + array[i] = str.charCodeAt(i) & 0xFF; + } + return array; +} + +/** + * An helper for the function arrayLikeToString. + * This contains static information and functions that + * can be optimized by the browser JIT compiler. + */ +var arrayToStringHelper = { + /** + * Transform an array of int into a string, chunk by chunk. + * See the performances notes on arrayLikeToString. + * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to transform. + * @param {String} type the type of the array. + * @param {Integer} chunk the chunk size. + * @return {String} the resulting string. + * @throws Error if the chunk is too big for the stack. + */ + stringifyByChunk: function(array, type, chunk) { + var result = [], k = 0, len = array.length; + // shortcut + if (len <= chunk) { + return String.fromCharCode.apply(null, array); + } + while (k < len) { + if (type === "array" || type === "nodebuffer") { + result.push(String.fromCharCode.apply(null, array.slice(k, Math.min(k + chunk, len)))); + } + else { + result.push(String.fromCharCode.apply(null, array.subarray(k, Math.min(k + chunk, len)))); + } + k += chunk; + } + return result.join(""); + }, + /** + * Call String.fromCharCode on every item in the array. + * This is the naive implementation, which generate A LOT of intermediate string. + * This should be used when everything else fail. + * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to transform. + * @return {String} the result. + */ + stringifyByChar: function(array){ + var resultStr = ""; + for(var i = 0; i < array.length; i++) { + resultStr += String.fromCharCode(array[i]); + } + return resultStr; + }, + applyCanBeUsed : { + /** + * true if the browser accepts to use String.fromCharCode on Uint8Array + */ + uint8array : (function () { + try { + return support.uint8array && String.fromCharCode.apply(null, new Uint8Array(1)).length === 1; + } catch (e) { + return false; + } + })(), + /** + * true if the browser accepts to use String.fromCharCode on nodejs Buffer. + */ + nodebuffer : (function () { + try { + return support.nodebuffer && String.fromCharCode.apply(null, nodejsUtils.allocBuffer(1)).length === 1; + } catch (e) { + return false; + } + })() + } +}; + +/** + * Transform an array-like object to a string. + * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to transform. + * @return {String} the result. + */ +function arrayLikeToString(array) { + // Performances notes : + // -------------------- + // String.fromCharCode.apply(null, array) is the fastest, see + // see http://jsperf.com/converting-a-uint8array-to-a-string/2 + // but the stack is limited (and we can get huge arrays !). + // + // result += String.fromCharCode(array[i]); generate too many strings ! + // + // This code is inspired by http://jsperf.com/arraybuffer-to-string-apply-performance/2 + // TODO : we now have workers that split the work. Do we still need that ? + var chunk = 65536, + type = exports.getTypeOf(array), + canUseApply = true; + if (type === "uint8array") { + canUseApply = arrayToStringHelper.applyCanBeUsed.uint8array; + } else if (type === "nodebuffer") { + canUseApply = arrayToStringHelper.applyCanBeUsed.nodebuffer; + } + + if (canUseApply) { + while (chunk > 1) { + try { + return arrayToStringHelper.stringifyByChunk(array, type, chunk); + } catch (e) { + chunk = Math.floor(chunk / 2); + } + } + } + + // no apply or chunk error : slow and painful algorithm + // default browser on android 4.* + return arrayToStringHelper.stringifyByChar(array); +} + +exports.applyFromCharCode = arrayLikeToString; + + +/** + * Copy the data from an array-like to an other array-like. + * @param {Array|ArrayBuffer|Uint8Array|Buffer} arrayFrom the origin array. + * @param {Array|ArrayBuffer|Uint8Array|Buffer} arrayTo the destination array which will be mutated. + * @return {Array|ArrayBuffer|Uint8Array|Buffer} the updated destination array. + */ +function arrayLikeToArrayLike(arrayFrom, arrayTo) { + for (var i = 0; i < arrayFrom.length; i++) { + arrayTo[i] = arrayFrom[i]; + } + return arrayTo; +} + +// a matrix containing functions to transform everything into everything. +var transform = {}; + +// string to ? +transform["string"] = { + "string": identity, + "array": function(input) { + return stringToArrayLike(input, new Array(input.length)); + }, + "arraybuffer": function(input) { + return transform["string"]["uint8array"](input).buffer; + }, + "uint8array": function(input) { + return stringToArrayLike(input, new Uint8Array(input.length)); + }, + "nodebuffer": function(input) { + return stringToArrayLike(input, nodejsUtils.allocBuffer(input.length)); + } +}; + +// array to ? +transform["array"] = { + "string": arrayLikeToString, + "array": identity, + "arraybuffer": function(input) { + return (new Uint8Array(input)).buffer; + }, + "uint8array": function(input) { + return new Uint8Array(input); + }, + "nodebuffer": function(input) { + return nodejsUtils.newBufferFrom(input); + } +}; + +// arraybuffer to ? +transform["arraybuffer"] = { + "string": function(input) { + return arrayLikeToString(new Uint8Array(input)); + }, + "array": function(input) { + return arrayLikeToArrayLike(new Uint8Array(input), new Array(input.byteLength)); + }, + "arraybuffer": identity, + "uint8array": function(input) { + return new Uint8Array(input); + }, + "nodebuffer": function(input) { + return nodejsUtils.newBufferFrom(new Uint8Array(input)); + } +}; + +// uint8array to ? +transform["uint8array"] = { + "string": arrayLikeToString, + "array": function(input) { + return arrayLikeToArrayLike(input, new Array(input.length)); + }, + "arraybuffer": function(input) { + return input.buffer; + }, + "uint8array": identity, + "nodebuffer": function(input) { + return nodejsUtils.newBufferFrom(input); + } +}; + +// nodebuffer to ? +transform["nodebuffer"] = { + "string": arrayLikeToString, + "array": function(input) { + return arrayLikeToArrayLike(input, new Array(input.length)); + }, + "arraybuffer": function(input) { + return transform["nodebuffer"]["uint8array"](input).buffer; + }, + "uint8array": function(input) { + return arrayLikeToArrayLike(input, new Uint8Array(input.length)); + }, + "nodebuffer": identity +}; + +/** + * Transform an input into any type. + * The supported output type are : string, array, uint8array, arraybuffer, nodebuffer. + * If no output type is specified, the unmodified input will be returned. + * @param {String} outputType the output type. + * @param {String|Array|ArrayBuffer|Uint8Array|Buffer} input the input to convert. + * @throws {Error} an Error if the browser doesn't support the requested output type. + */ +exports.transformTo = function(outputType, input) { + if (!input) { + // undefined, null, etc + // an empty string won't harm. + input = ""; + } + if (!outputType) { + return input; + } + exports.checkSupport(outputType); + var inputType = exports.getTypeOf(input); + var result = transform[inputType][outputType](input); + return result; +}; + +/** + * Return the type of the input. + * The type will be in a format valid for JSZip.utils.transformTo : string, array, uint8array, arraybuffer. + * @param {Object} input the input to identify. + * @return {String} the (lowercase) type of the input. + */ +exports.getTypeOf = function(input) { + if (typeof input === "string") { + return "string"; + } + if (Object.prototype.toString.call(input) === "[object Array]") { + return "array"; + } + if (support.nodebuffer && nodejsUtils.isBuffer(input)) { + return "nodebuffer"; + } + if (support.uint8array && input instanceof Uint8Array) { + return "uint8array"; + } + if (support.arraybuffer && input instanceof ArrayBuffer) { + return "arraybuffer"; + } +}; + +/** + * Throw an exception if the type is not supported. + * @param {String} type the type to check. + * @throws {Error} an Error if the browser doesn't support the requested type. + */ +exports.checkSupport = function(type) { + var supported = support[type.toLowerCase()]; + if (!supported) { + throw new Error(type + " is not supported by this platform"); + } +}; + +exports.MAX_VALUE_16BITS = 65535; +exports.MAX_VALUE_32BITS = -1; // well, "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF" is parsed as -1 + +/** + * Prettify a string read as binary. + * @param {string} str the string to prettify. + * @return {string} a pretty string. + */ +exports.pretty = function(str) { + var res = '', + code, i; + for (i = 0; i < (str || "").length; i++) { + code = str.charCodeAt(i); + res += '\\x' + (code < 16 ? "0" : "") + code.toString(16).toUpperCase(); + } + return res; +}; + +/** + * Defer the call of a function. + * @param {Function} callback the function to call asynchronously. + * @param {Array} args the arguments to give to the callback. + */ +exports.delay = function(callback, args, self) { + setImmediate(function () { + callback.apply(self || null, args || []); + }); +}; + +/** + * Extends a prototype with an other, without calling a constructor with + * side effects. Inspired by nodejs' `utils.inherits` + * @param {Function} ctor the constructor to augment + * @param {Function} superCtor the parent constructor to use + */ +exports.inherits = function (ctor, superCtor) { + var Obj = function() {}; + Obj.prototype = superCtor.prototype; + ctor.prototype = new Obj(); +}; + +/** + * Merge the objects passed as parameters into a new one. + * @private + * @param {...Object} var_args All objects to merge. + * @return {Object} a new object with the data of the others. + */ +exports.extend = function() { + var result = {}, i, attr; + for (i = 0; i < arguments.length; i++) { // arguments is not enumerable in some browsers + for (attr in arguments[i]) { + if (arguments[i].hasOwnProperty(attr) && typeof result[attr] === "undefined") { + result[attr] = arguments[i][attr]; + } + } + } + return result; +}; + +/** + * Transform arbitrary content into a Promise. + * @param {String} name a name for the content being processed. + * @param {Object} inputData the content to process. + * @param {Boolean} isBinary true if the content is not an unicode string + * @param {Boolean} isOptimizedBinaryString true if the string content only has one byte per character. + * @param {Boolean} isBase64 true if the string content is encoded with base64. + * @return {Promise} a promise in a format usable by JSZip. + */ +exports.prepareContent = function(name, inputData, isBinary, isOptimizedBinaryString, isBase64) { + + // if inputData is already a promise, this flatten it. + var promise = external.Promise.resolve(inputData).then(function(data) { + + + var isBlob = support.blob && (data instanceof Blob || ['[object File]', '[object Blob]'].indexOf(Object.prototype.toString.call(data)) !== -1); + + if (isBlob && typeof FileReader !== "undefined") { + return new external.Promise(function (resolve, reject) { + var reader = new FileReader(); + + reader.onload = function(e) { + resolve(e.target.result); + }; + reader.onerror = function(e) { + reject(e.target.error); + }; + reader.readAsArrayBuffer(data); + }); + } else { + return data; + } + }); + + return promise.then(function(data) { + var dataType = exports.getTypeOf(data); + + if (!dataType) { + return external.Promise.reject( + new Error("Can't read the data of '" + name + "'. Is it " + + "in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?") + ); + } + // special case : it's way easier to work with Uint8Array than with ArrayBuffer + if (dataType === "arraybuffer") { + data = exports.transformTo("uint8array", data); + } else if (dataType === "string") { + if (isBase64) { + data = base64.decode(data); + } + else if (isBinary) { + // optimizedBinaryString === true means that the file has already been filtered with a 0xFF mask + if (isOptimizedBinaryString !== true) { + // this is a string, not in a base64 format. + // Be sure that this is a correct "binary string" + data = string2binary(data); + } + } + } + return data; + }); +}; + +},{"./base64":1,"./external":6,"./nodejsUtils":14,"./support":30,"set-immediate-shim":54}],33:[function(require,module,exports){ +'use strict'; +var readerFor = require('./reader/readerFor'); +var utils = require('./utils'); +var sig = require('./signature'); +var ZipEntry = require('./zipEntry'); +var utf8 = require('./utf8'); +var support = require('./support'); +// class ZipEntries {{{ +/** + * All the entries in the zip file. + * @constructor + * @param {Object} loadOptions Options for loading the stream. + */ +function ZipEntries(loadOptions) { + this.files = []; + this.loadOptions = loadOptions; +} +ZipEntries.prototype = { + /** + * Check that the reader is on the specified signature. + * @param {string} expectedSignature the expected signature. + * @throws {Error} if it is an other signature. + */ + checkSignature: function(expectedSignature) { + if (!this.reader.readAndCheckSignature(expectedSignature)) { + this.reader.index -= 4; + var signature = this.reader.readString(4); + throw new Error("Corrupted zip or bug: unexpected signature " + "(" + utils.pretty(signature) + ", expected " + utils.pretty(expectedSignature) + ")"); + } + }, + /** + * Check if the given signature is at the given index. + * @param {number} askedIndex the index to check. + * @param {string} expectedSignature the signature to expect. + * @return {boolean} true if the signature is here, false otherwise. + */ + isSignature: function(askedIndex, expectedSignature) { + var currentIndex = this.reader.index; + this.reader.setIndex(askedIndex); + var signature = this.reader.readString(4); + var result = signature === expectedSignature; + this.reader.setIndex(currentIndex); + return result; + }, + /** + * Read the end of the central directory. + */ + readBlockEndOfCentral: function() { + this.diskNumber = this.reader.readInt(2); + this.diskWithCentralDirStart = this.reader.readInt(2); + this.centralDirRecordsOnThisDisk = this.reader.readInt(2); + this.centralDirRecords = this.reader.readInt(2); + this.centralDirSize = this.reader.readInt(4); + this.centralDirOffset = this.reader.readInt(4); + + this.zipCommentLength = this.reader.readInt(2); + // warning : the encoding depends of the system locale + // On a linux machine with LANG=en_US.utf8, this field is utf8 encoded. + // On a windows machine, this field is encoded with the localized windows code page. + var zipComment = this.reader.readData(this.zipCommentLength); + var decodeParamType = support.uint8array ? "uint8array" : "array"; + // To get consistent behavior with the generation part, we will assume that + // this is utf8 encoded unless specified otherwise. + var decodeContent = utils.transformTo(decodeParamType, zipComment); + this.zipComment = this.loadOptions.decodeFileName(decodeContent); + }, + /** + * Read the end of the Zip 64 central directory. + * Not merged with the method readEndOfCentral : + * The end of central can coexist with its Zip64 brother, + * I don't want to read the wrong number of bytes ! + */ + readBlockZip64EndOfCentral: function() { + this.zip64EndOfCentralSize = this.reader.readInt(8); + this.reader.skip(4); + // this.versionMadeBy = this.reader.readString(2); + // this.versionNeeded = this.reader.readInt(2); + this.diskNumber = this.reader.readInt(4); + this.diskWithCentralDirStart = this.reader.readInt(4); + this.centralDirRecordsOnThisDisk = this.reader.readInt(8); + this.centralDirRecords = this.reader.readInt(8); + this.centralDirSize = this.reader.readInt(8); + this.centralDirOffset = this.reader.readInt(8); + + this.zip64ExtensibleData = {}; + var extraDataSize = this.zip64EndOfCentralSize - 44, + index = 0, + extraFieldId, + extraFieldLength, + extraFieldValue; + while (index < extraDataSize) { + extraFieldId = this.reader.readInt(2); + extraFieldLength = this.reader.readInt(4); + extraFieldValue = this.reader.readData(extraFieldLength); + this.zip64ExtensibleData[extraFieldId] = { + id: extraFieldId, + length: extraFieldLength, + value: extraFieldValue + }; + } + }, + /** + * Read the end of the Zip 64 central directory locator. + */ + readBlockZip64EndOfCentralLocator: function() { + this.diskWithZip64CentralDirStart = this.reader.readInt(4); + this.relativeOffsetEndOfZip64CentralDir = this.reader.readInt(8); + this.disksCount = this.reader.readInt(4); + if (this.disksCount > 1) { + throw new Error("Multi-volumes zip are not supported"); + } + }, + /** + * Read the local files, based on the offset read in the central part. + */ + readLocalFiles: function() { + var i, file; + for (i = 0; i < this.files.length; i++) { + file = this.files[i]; + this.reader.setIndex(file.localHeaderOffset); + this.checkSignature(sig.LOCAL_FILE_HEADER); + file.readLocalPart(this.reader); + file.handleUTF8(); + file.processAttributes(); + } + }, + /** + * Read the central directory. + */ + readCentralDir: function() { + var file; + + this.reader.setIndex(this.centralDirOffset); + while (this.reader.readAndCheckSignature(sig.CENTRAL_FILE_HEADER)) { + file = new ZipEntry({ + zip64: this.zip64 + }, this.loadOptions); + file.readCentralPart(this.reader); + this.files.push(file); + } + + if (this.centralDirRecords !== this.files.length) { + if (this.centralDirRecords !== 0 && this.files.length === 0) { + // We expected some records but couldn't find ANY. + // This is really suspicious, as if something went wrong. + throw new Error("Corrupted zip or bug: expected " + this.centralDirRecords + " records in central dir, got " + this.files.length); + } else { + // We found some records but not all. + // Something is wrong but we got something for the user: no error here. + // console.warn("expected", this.centralDirRecords, "records in central dir, got", this.files.length); + } + } + }, + /** + * Read the end of central directory. + */ + readEndOfCentral: function() { + var offset = this.reader.lastIndexOfSignature(sig.CENTRAL_DIRECTORY_END); + if (offset < 0) { + // Check if the content is a truncated zip or complete garbage. + // A "LOCAL_FILE_HEADER" is not required at the beginning (auto + // extractible zip for example) but it can give a good hint. + // If an ajax request was used without responseType, we will also + // get unreadable data. + var isGarbage = !this.isSignature(0, sig.LOCAL_FILE_HEADER); + + if (isGarbage) { + throw new Error("Can't find end of central directory : is this a zip file ? " + + "If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html"); + } else { + throw new Error("Corrupted zip: can't find end of central directory"); + } + + } + this.reader.setIndex(offset); + var endOfCentralDirOffset = offset; + this.checkSignature(sig.CENTRAL_DIRECTORY_END); + this.readBlockEndOfCentral(); + + + /* extract from the zip spec : + 4) If one of the fields in the end of central directory + record is too small to hold required data, the field + should be set to -1 (0xFFFF or 0xFFFFFFFF) and the + ZIP64 format record should be created. + 5) The end of central directory record and the + Zip64 end of central directory locator record must + reside on the same disk when splitting or spanning + an archive. + */ + if (this.diskNumber === utils.MAX_VALUE_16BITS || this.diskWithCentralDirStart === utils.MAX_VALUE_16BITS || this.centralDirRecordsOnThisDisk === utils.MAX_VALUE_16BITS || this.centralDirRecords === utils.MAX_VALUE_16BITS || this.centralDirSize === utils.MAX_VALUE_32BITS || this.centralDirOffset === utils.MAX_VALUE_32BITS) { + this.zip64 = true; + + /* + Warning : the zip64 extension is supported, but ONLY if the 64bits integer read from + the zip file can fit into a 32bits integer. This cannot be solved : JavaScript represents + all numbers as 64-bit double precision IEEE 754 floating point numbers. + So, we have 53bits for integers and bitwise operations treat everything as 32bits. + see https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/Bitwise_Operators + and http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf section 8.5 + */ + + // should look for a zip64 EOCD locator + offset = this.reader.lastIndexOfSignature(sig.ZIP64_CENTRAL_DIRECTORY_LOCATOR); + if (offset < 0) { + throw new Error("Corrupted zip: can't find the ZIP64 end of central directory locator"); + } + this.reader.setIndex(offset); + this.checkSignature(sig.ZIP64_CENTRAL_DIRECTORY_LOCATOR); + this.readBlockZip64EndOfCentralLocator(); + + // now the zip64 EOCD record + if (!this.isSignature(this.relativeOffsetEndOfZip64CentralDir, sig.ZIP64_CENTRAL_DIRECTORY_END)) { + // console.warn("ZIP64 end of central directory not where expected."); + this.relativeOffsetEndOfZip64CentralDir = this.reader.lastIndexOfSignature(sig.ZIP64_CENTRAL_DIRECTORY_END); + if (this.relativeOffsetEndOfZip64CentralDir < 0) { + throw new Error("Corrupted zip: can't find the ZIP64 end of central directory"); + } + } + this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir); + this.checkSignature(sig.ZIP64_CENTRAL_DIRECTORY_END); + this.readBlockZip64EndOfCentral(); + } + + var expectedEndOfCentralDirOffset = this.centralDirOffset + this.centralDirSize; + if (this.zip64) { + expectedEndOfCentralDirOffset += 20; // end of central dir 64 locator + expectedEndOfCentralDirOffset += 12 /* should not include the leading 12 bytes */ + this.zip64EndOfCentralSize; + } + + var extraBytes = endOfCentralDirOffset - expectedEndOfCentralDirOffset; + + if (extraBytes > 0) { + // console.warn(extraBytes, "extra bytes at beginning or within zipfile"); + if (this.isSignature(endOfCentralDirOffset, sig.CENTRAL_FILE_HEADER)) { + // The offsets seem wrong, but we have something at the specified offset. + // So… we keep it. + } else { + // the offset is wrong, update the "zero" of the reader + // this happens if data has been prepended (crx files for example) + this.reader.zero = extraBytes; + } + } else if (extraBytes < 0) { + throw new Error("Corrupted zip: missing " + Math.abs(extraBytes) + " bytes."); + } + }, + prepareReader: function(data) { + this.reader = readerFor(data); + }, + /** + * Read a zip file and create ZipEntries. + * @param {String|ArrayBuffer|Uint8Array|Buffer} data the binary string representing a zip file. + */ + load: function(data) { + this.prepareReader(data); + this.readEndOfCentral(); + this.readCentralDir(); + this.readLocalFiles(); + } +}; +// }}} end of ZipEntries +module.exports = ZipEntries; + +},{"./reader/readerFor":22,"./signature":23,"./support":30,"./utf8":31,"./utils":32,"./zipEntry":34}],34:[function(require,module,exports){ +'use strict'; +var readerFor = require('./reader/readerFor'); +var utils = require('./utils'); +var CompressedObject = require('./compressedObject'); +var crc32fn = require('./crc32'); +var utf8 = require('./utf8'); +var compressions = require('./compressions'); +var support = require('./support'); + +var MADE_BY_DOS = 0x00; +var MADE_BY_UNIX = 0x03; + +/** + * Find a compression registered in JSZip. + * @param {string} compressionMethod the method magic to find. + * @return {Object|null} the JSZip compression object, null if none found. + */ +var findCompression = function(compressionMethod) { + for (var method in compressions) { + if (!compressions.hasOwnProperty(method)) { + continue; + } + if (compressions[method].magic === compressionMethod) { + return compressions[method]; + } + } + return null; +}; + +// class ZipEntry {{{ +/** + * An entry in the zip file. + * @constructor + * @param {Object} options Options of the current file. + * @param {Object} loadOptions Options for loading the stream. + */ +function ZipEntry(options, loadOptions) { + this.options = options; + this.loadOptions = loadOptions; +} +ZipEntry.prototype = { + /** + * say if the file is encrypted. + * @return {boolean} true if the file is encrypted, false otherwise. + */ + isEncrypted: function() { + // bit 1 is set + return (this.bitFlag & 0x0001) === 0x0001; + }, + /** + * say if the file has utf-8 filename/comment. + * @return {boolean} true if the filename/comment is in utf-8, false otherwise. + */ + useUTF8: function() { + // bit 11 is set + return (this.bitFlag & 0x0800) === 0x0800; + }, + /** + * Read the local part of a zip file and add the info in this object. + * @param {DataReader} reader the reader to use. + */ + readLocalPart: function(reader) { + var compression, localExtraFieldsLength; + + // we already know everything from the central dir ! + // If the central dir data are false, we are doomed. + // On the bright side, the local part is scary : zip64, data descriptors, both, etc. + // The less data we get here, the more reliable this should be. + // Let's skip the whole header and dash to the data ! + reader.skip(22); + // in some zip created on windows, the filename stored in the central dir contains \ instead of /. + // Strangely, the filename here is OK. + // I would love to treat these zip files as corrupted (see http://www.info-zip.org/FAQ.html#backslashes + // or APPNOTE#4.4.17.1, "All slashes MUST be forward slashes '/'") but there are a lot of bad zip generators... + // Search "unzip mismatching "local" filename continuing with "central" filename version" on + // the internet. + // + // I think I see the logic here : the central directory is used to display + // content and the local directory is used to extract the files. Mixing / and \ + // may be used to display \ to windows users and use / when extracting the files. + // Unfortunately, this lead also to some issues : http://seclists.org/fulldisclosure/2009/Sep/394 + this.fileNameLength = reader.readInt(2); + localExtraFieldsLength = reader.readInt(2); // can't be sure this will be the same as the central dir + // the fileName is stored as binary data, the handleUTF8 method will take care of the encoding. + this.fileName = reader.readData(this.fileNameLength); + reader.skip(localExtraFieldsLength); + + if (this.compressedSize === -1 || this.uncompressedSize === -1) { + throw new Error("Bug or corrupted zip : didn't get enough information from the central directory " + "(compressedSize === -1 || uncompressedSize === -1)"); + } + + compression = findCompression(this.compressionMethod); + if (compression === null) { // no compression found + throw new Error("Corrupted zip : compression " + utils.pretty(this.compressionMethod) + " unknown (inner file : " + utils.transformTo("string", this.fileName) + ")"); + } + this.decompressed = new CompressedObject(this.compressedSize, this.uncompressedSize, this.crc32, compression, reader.readData(this.compressedSize)); + }, + + /** + * Read the central part of a zip file and add the info in this object. + * @param {DataReader} reader the reader to use. + */ + readCentralPart: function(reader) { + this.versionMadeBy = reader.readInt(2); + reader.skip(2); + // this.versionNeeded = reader.readInt(2); + this.bitFlag = reader.readInt(2); + this.compressionMethod = reader.readString(2); + this.date = reader.readDate(); + this.crc32 = reader.readInt(4); + this.compressedSize = reader.readInt(4); + this.uncompressedSize = reader.readInt(4); + var fileNameLength = reader.readInt(2); + this.extraFieldsLength = reader.readInt(2); + this.fileCommentLength = reader.readInt(2); + this.diskNumberStart = reader.readInt(2); + this.internalFileAttributes = reader.readInt(2); + this.externalFileAttributes = reader.readInt(4); + this.localHeaderOffset = reader.readInt(4); + + if (this.isEncrypted()) { + throw new Error("Encrypted zip are not supported"); + } + + // will be read in the local part, see the comments there + reader.skip(fileNameLength); + this.readExtraFields(reader); + this.parseZIP64ExtraField(reader); + this.fileComment = reader.readData(this.fileCommentLength); + }, + + /** + * Parse the external file attributes and get the unix/dos permissions. + */ + processAttributes: function () { + this.unixPermissions = null; + this.dosPermissions = null; + var madeBy = this.versionMadeBy >> 8; + + // Check if we have the DOS directory flag set. + // We look for it in the DOS and UNIX permissions + // but some unknown platform could set it as a compatibility flag. + this.dir = this.externalFileAttributes & 0x0010 ? true : false; + + if(madeBy === MADE_BY_DOS) { + // first 6 bits (0 to 5) + this.dosPermissions = this.externalFileAttributes & 0x3F; + } + + if(madeBy === MADE_BY_UNIX) { + this.unixPermissions = (this.externalFileAttributes >> 16) & 0xFFFF; + // the octal permissions are in (this.unixPermissions & 0x01FF).toString(8); + } + + // fail safe : if the name ends with a / it probably means a folder + if (!this.dir && this.fileNameStr.slice(-1) === '/') { + this.dir = true; + } + }, + + /** + * Parse the ZIP64 extra field and merge the info in the current ZipEntry. + * @param {DataReader} reader the reader to use. + */ + parseZIP64ExtraField: function(reader) { + + if (!this.extraFields[0x0001]) { + return; + } + + // should be something, preparing the extra reader + var extraReader = readerFor(this.extraFields[0x0001].value); + + // I really hope that these 64bits integer can fit in 32 bits integer, because js + // won't let us have more. + if (this.uncompressedSize === utils.MAX_VALUE_32BITS) { + this.uncompressedSize = extraReader.readInt(8); + } + if (this.compressedSize === utils.MAX_VALUE_32BITS) { + this.compressedSize = extraReader.readInt(8); + } + if (this.localHeaderOffset === utils.MAX_VALUE_32BITS) { + this.localHeaderOffset = extraReader.readInt(8); + } + if (this.diskNumberStart === utils.MAX_VALUE_32BITS) { + this.diskNumberStart = extraReader.readInt(4); + } + }, + /** + * Read the central part of a zip file and add the info in this object. + * @param {DataReader} reader the reader to use. + */ + readExtraFields: function(reader) { + var end = reader.index + this.extraFieldsLength, + extraFieldId, + extraFieldLength, + extraFieldValue; + + if (!this.extraFields) { + this.extraFields = {}; + } + + while (reader.index + 4 < end) { + extraFieldId = reader.readInt(2); + extraFieldLength = reader.readInt(2); + extraFieldValue = reader.readData(extraFieldLength); + + this.extraFields[extraFieldId] = { + id: extraFieldId, + length: extraFieldLength, + value: extraFieldValue + }; + } + + reader.setIndex(end); + }, + /** + * Apply an UTF8 transformation if needed. + */ + handleUTF8: function() { + var decodeParamType = support.uint8array ? "uint8array" : "array"; + if (this.useUTF8()) { + this.fileNameStr = utf8.utf8decode(this.fileName); + this.fileCommentStr = utf8.utf8decode(this.fileComment); + } else { + var upath = this.findExtraFieldUnicodePath(); + if (upath !== null) { + this.fileNameStr = upath; + } else { + // ASCII text or unsupported code page + var fileNameByteArray = utils.transformTo(decodeParamType, this.fileName); + this.fileNameStr = this.loadOptions.decodeFileName(fileNameByteArray); + } + + var ucomment = this.findExtraFieldUnicodeComment(); + if (ucomment !== null) { + this.fileCommentStr = ucomment; + } else { + // ASCII text or unsupported code page + var commentByteArray = utils.transformTo(decodeParamType, this.fileComment); + this.fileCommentStr = this.loadOptions.decodeFileName(commentByteArray); + } + } + }, + + /** + * Find the unicode path declared in the extra field, if any. + * @return {String} the unicode path, null otherwise. + */ + findExtraFieldUnicodePath: function() { + var upathField = this.extraFields[0x7075]; + if (upathField) { + var extraReader = readerFor(upathField.value); + + // wrong version + if (extraReader.readInt(1) !== 1) { + return null; + } + + // the crc of the filename changed, this field is out of date. + if (crc32fn(this.fileName) !== extraReader.readInt(4)) { + return null; + } + + return utf8.utf8decode(extraReader.readData(upathField.length - 5)); + } + return null; + }, + + /** + * Find the unicode comment declared in the extra field, if any. + * @return {String} the unicode comment, null otherwise. + */ + findExtraFieldUnicodeComment: function() { + var ucommentField = this.extraFields[0x6375]; + if (ucommentField) { + var extraReader = readerFor(ucommentField.value); + + // wrong version + if (extraReader.readInt(1) !== 1) { + return null; + } + + // the crc of the comment changed, this field is out of date. + if (crc32fn(this.fileComment) !== extraReader.readInt(4)) { + return null; + } + + return utf8.utf8decode(extraReader.readData(ucommentField.length - 5)); + } + return null; + } +}; +module.exports = ZipEntry; + +},{"./compressedObject":2,"./compressions":3,"./crc32":4,"./reader/readerFor":22,"./support":30,"./utf8":31,"./utils":32}],35:[function(require,module,exports){ +'use strict'; + +var StreamHelper = require('./stream/StreamHelper'); +var DataWorker = require('./stream/DataWorker'); +var utf8 = require('./utf8'); +var CompressedObject = require('./compressedObject'); +var GenericWorker = require('./stream/GenericWorker'); + +/** + * A simple object representing a file in the zip file. + * @constructor + * @param {string} name the name of the file + * @param {String|ArrayBuffer|Uint8Array|Buffer} data the data + * @param {Object} options the options of the file + */ +var ZipObject = function(name, data, options) { + this.name = name; + this.dir = options.dir; + this.date = options.date; + this.comment = options.comment; + this.unixPermissions = options.unixPermissions; + this.dosPermissions = options.dosPermissions; + + this._data = data; + this._dataBinary = options.binary; + // keep only the compression + this.options = { + compression : options.compression, + compressionOptions : options.compressionOptions + }; +}; + +ZipObject.prototype = { + /** + * Create an internal stream for the content of this object. + * @param {String} type the type of each chunk. + * @return StreamHelper the stream. + */ + internalStream: function (type) { + var result = null, outputType = "string"; + try { + if (!type) { + throw new Error("No output type specified."); + } + outputType = type.toLowerCase(); + var askUnicodeString = outputType === "string" || outputType === "text"; + if (outputType === "binarystring" || outputType === "text") { + outputType = "string"; + } + result = this._decompressWorker(); + + var isUnicodeString = !this._dataBinary; + + if (isUnicodeString && !askUnicodeString) { + result = result.pipe(new utf8.Utf8EncodeWorker()); + } + if (!isUnicodeString && askUnicodeString) { + result = result.pipe(new utf8.Utf8DecodeWorker()); + } + } catch (e) { + result = new GenericWorker("error"); + result.error(e); + } + + return new StreamHelper(result, outputType, ""); + }, + + /** + * Prepare the content in the asked type. + * @param {String} type the type of the result. + * @param {Function} onUpdate a function to call on each internal update. + * @return Promise the promise of the result. + */ + async: function (type, onUpdate) { + return this.internalStream(type).accumulate(onUpdate); + }, + + /** + * Prepare the content as a nodejs stream. + * @param {String} type the type of each chunk. + * @param {Function} onUpdate a function to call on each internal update. + * @return Stream the stream. + */ + nodeStream: function (type, onUpdate) { + return this.internalStream(type || "nodebuffer").toNodejsStream(onUpdate); + }, + + /** + * Return a worker for the compressed content. + * @private + * @param {Object} compression the compression object to use. + * @param {Object} compressionOptions the options to use when compressing. + * @return Worker the worker. + */ + _compressWorker: function (compression, compressionOptions) { + if ( + this._data instanceof CompressedObject && + this._data.compression.magic === compression.magic + ) { + return this._data.getCompressedWorker(); + } else { + var result = this._decompressWorker(); + if(!this._dataBinary) { + result = result.pipe(new utf8.Utf8EncodeWorker()); + } + return CompressedObject.createWorkerFrom(result, compression, compressionOptions); + } + }, + /** + * Return a worker for the decompressed content. + * @private + * @return Worker the worker. + */ + _decompressWorker : function () { + if (this._data instanceof CompressedObject) { + return this._data.getContentWorker(); + } else if (this._data instanceof GenericWorker) { + return this._data; + } else { + return new DataWorker(this._data); + } + } +}; + +var removedMethods = ["asText", "asBinary", "asNodeBuffer", "asUint8Array", "asArrayBuffer"]; +var removedFn = function () { + throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide."); +}; + +for(var i = 0; i < removedMethods.length; i++) { + ZipObject.prototype[removedMethods[i]] = removedFn; +} +module.exports = ZipObject; + +},{"./compressedObject":2,"./stream/DataWorker":27,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31}],36:[function(require,module,exports){ +(function (global){ +'use strict'; +var Mutation = global.MutationObserver || global.WebKitMutationObserver; + +var scheduleDrain; + +{ + if (Mutation) { + var called = 0; + var observer = new Mutation(nextTick); + var element = global.document.createTextNode(''); + observer.observe(element, { + characterData: true + }); + scheduleDrain = function () { + element.data = (called = ++called % 2); + }; + } else if (!global.setImmediate && typeof global.MessageChannel !== 'undefined') { + var channel = new global.MessageChannel(); + channel.port1.onmessage = nextTick; + scheduleDrain = function () { + channel.port2.postMessage(0); + }; + } else if ('document' in global && 'onreadystatechange' in global.document.createElement('script')) { + scheduleDrain = function () { + + // Create a + + + + + +
    + +

    index.html

    +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/overview-tree.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/overview-tree.html new file mode 100644 index 0000000000..138fdfbfe6 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/overview-tree.html @@ -0,0 +1,253 @@ + + + + + +Class Hierarchy + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    Hierarchy For All Packages

    +Package Hierarchies: + +
    +
    +
    +

    Class Hierarchy

    + +
    +
    +

    Interface Hierarchy

    + +
    +
    +

    Enum Hierarchy

    + +
    +
    +
    +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/package-search-index.js b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/package-search-index.js new file mode 100644 index 0000000000..cbaec827a2 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/package-search-index.js @@ -0,0 +1 @@ +packageSearchIndex = [{"l":"All Packages","url":"allpackages-index.html"},{"l":"io.github.cvc5"},{"l":"io.github.cvc5.modes"}] \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/package-search-index.zip b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/package-search-index.zip new file mode 100644 index 0000000000..680ecfd3d9 Binary files /dev/null and b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/package-search-index.zip differ diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/quickstart.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/quickstart.html new file mode 100644 index 0000000000..9c8e2d6423 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/quickstart.html @@ -0,0 +1,1596 @@ + + + + + + + + + + + Quickstart Guide — cvc5 documentation + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Quickstart Guide + +  + +

    +

    + First, create a cvc5 + + TermManager + + instance: +

    +
    +
    +
    rmManager tm = new TermManager();
    +
    +
    +
    +

    + Then, create a cvc5 + + Solver + + instance: +

    +
    +
    +
    lver solver = new Solver(tm);
    +
    +
    +
    +

    + To produce models and unsat cores, we have to enable the following options. +

    +
    +
    +
    solver.setOption("produce-models", "true");
    +solver.setOption("produce-unsat-cores", "true");
    +
    +
    +
    +

    + Next we set the logic. +The simplest way to set a logic for the solver is to choose + + + "ALL" + + + . +This enables all logics in the solver. +Alternatively, + + + "QF_ALL" + + + enables all logics without quantifiers. +To optimize the solver’s behavior for a more specific logic, +use the logic name, e.g. + + + "QF_BV" + + + or + + + "QF_AUFBV" + + + . +

    +
    +
    +
    solver.setLogic("ALL");
    +
    +
    +
    +

    + In the following, we will define real and integer constraints. +For this, we first query the solver for the corresponding sorts. +

    +
    +
    +
    Sort realSort = tm.getRealSort();
    +Sort intSort = tm.getIntegerSort();
    +
    +
    +
    +

    + Now, we create two constants + + + x + + + and + + + y + + + of sort + + + Real + + + , +and two constants + + + a + + + and + + + b + + + of sort + + + Integer + + + . +Notice that these are + + symbolic + + constants, not actual values. +

    +
    +
    +
    Term x = tm.mkConst(realSort, "x");
    +Term y = tm.mkConst(realSort, "y");
    +Term a = tm.mkConst(intSort, "a");
    +Term b = tm.mkConst(intSort, "b");
    +
    +
    +
    +

    + We define the following constraints regarding + + + x + + + and + + + y + + + : +

    +
    + \[(0 < x) \wedge (0 < y) \wedge (x + y < 1) \wedge (x \leq y)\] +
    +

    + We construct the required terms and assert them as follows: +

    +
    +
    +
    // Formally, constraints are also terms. Their sort is Boolean.
    +// We will construct these constraints gradually,
    +// by defining each of their components.
    +// We start with the constant numerals 0 and 1:
    +Term zero = tm.mkReal(0);
    +Term one = tm.mkReal(1);
    +
    +// Next, we construct the term x + y
    +Term xPlusY = tm.mkTerm(Kind.ADD, x, y);
    +
    +// Now we can define the constraints.
    +// They use the operators +, <=, and <.
    +// In the API, these are denoted by ADD, LEQ, and LT.
    +// A list of available operators is available in:
    +// src/api/cpp/cvc5_kind.h
    +Term constraint1 = tm.mkTerm(Kind.LT, zero, x);
    +Term constraint2 = tm.mkTerm(Kind.LT, zero, y);
    +Term constraint3 = tm.mkTerm(Kind.LT, xPlusY, one);
    +Term constraint4 = tm.mkTerm(Kind.LEQ, x, y);
    +
    +// Now we assert the constraints to the solver.
    +solver.assertFormula(constraint1);
    +solver.assertFormula(constraint2);
    +solver.assertFormula(constraint3);
    +solver.assertFormula(constraint4);
    +
    +
    +
    +

    + Now we check if the asserted formula is satisfiable, that is, we check if +there exist values of sort + + + Real + + + for + + + x + + + and + + + y + + + that satisfy all +the constraints. +

    +
    +
    +
    Result r1 = solver.checkSat();
    +
    +
    +
    +

    + The result we get from this satisfiability check is either + + + sat + + + , + + + unsat + + + or + + + unknown + + + . +It’s status can be queried via + + Result.isSat + + , + + Result.isUnsat + + and + + Result.isSatUnknown + + . +Alternatively, it can also be printed. +

    +
    +
    +
    System.out.println("expected: sat");
    +System.out.println("result: " + r1);
    +
    +
    +
    +

    + This will print: +

    +
    +
    +
    expected: sat
    +result: sat
    +
    +
    +
    +

    + Now, we query the solver for the values for + + + x + + + and + + + y + + + that satisfy +the constraints. +

    +
    +
    +
    Term xVal = solver.getValue(x);
    +Term yVal = solver.getValue(y);
    +
    +
    +
    +

    + It is also possible to get values for terms that do not appear in the original +formula. +

    +
    +
    +
    Term xMinusY = tm.mkTerm(Kind.SUB, x, y);
    +Term xMinusYVal = solver.getValue(xMinusY);
    +
    +
    +
    +

    + We can convert these values to Java types. +

    +
    +
    +
    Pair<BigInteger, BigInteger> xPair = xVal.getRealValue();
    +Pair<BigInteger, BigInteger> yPair = yVal.getRealValue();
    +Pair<BigInteger, BigInteger> xMinusYPair = xMinusYVal.getRealValue();
    +
    +System.out.println("value for x: " + xPair.first + "/" + xPair.second);
    +System.out.println("value for y: " + yPair.first + "/" + yPair.second);
    +System.out.println("value for x - y: " + xMinusYPair.first + "/" + xMinusYPair.second);
    +
    +
    +
    +

    + Another way to independently compute the value of + + + x + + + - + + + y + + + would be to +perform the (rational) arithmetic manually. +However, for more complex terms, it is easier to let the solver do the +evaluation. +

    +
    +
    +
    Pair<BigInteger, BigInteger> xMinusYComputed =
    +    new Pair<>(xPair.first.multiply(yPair.second).subtract(xPair.second.multiply(yPair.first)),
    +        xPair.second.multiply(yPair.second));
    +BigInteger g = xMinusYComputed.first.gcd(xMinusYComputed.second);
    +xMinusYComputed = new Pair<>(xMinusYComputed.first.divide(g), xMinusYComputed.second.divide(g));
    +if (xMinusYComputed.equals(xMinusYPair))
    +{
    +  System.out.println("computed correctly");
    +}
    +else
    +{
    +  System.out.println("computed incorrectly");
    +}
    +
    +
    +
    +

    + This will print: +

    +
    +
    +
    computed correctly
    +
    +
    +
    +

    + Next, we will check satisfiability of the same formula, +only this time over integer variables + + + a + + + and + + + b + + + . +For this, we first reset the assertions added to the solver. +

    +
    +
    +
    solver.resetAssertions();
    +
    +
    +
    +

    + Next, we assert the same assertions as above, but with integers. +This time, we inline the construction of terms +in the assertion command. +

    +
    +
    +
    solver.assertFormula(tm.mkTerm(Kind.LT, tm.mkInteger(0), a));
    +solver.assertFormula(tm.mkTerm(Kind.LT, tm.mkInteger(0), b));
    +solver.assertFormula(
    +    tm.mkTerm(Kind.LT, tm.mkTerm(Kind.ADD, a, b), tm.mkInteger(1)));
    +solver.assertFormula(tm.mkTerm(Kind.LEQ, a, b));
    +
    +
    +
    +

    + Now, we check whether the revised assertion is satisfiable. +

    +
    +
    +
    Result r2 = solver.checkSat();
    +
    +// This time the formula is unsatisfiable
    +System.out.println("expected: unsat");
    +System.out.println("result: " + r2);
    +
    +
    +
    +

    + This time the asserted formula is unsatisfiable: +

    +
    +
    +
    expected: unsat
    +result: unsat
    +
    +
    +
    +

    + We can query the solver for an unsatisfiable core, that is, a subset +of the assertions that is already unsatisfiable. +

    +
    +
    +
    List<Term> unsatCore = Arrays.asList(solver.getUnsatCore());
    +System.out.println("unsat core size: " + unsatCore.size());
    +System.out.println("unsat core: ");
    +for (Term t : unsatCore)
    +{
    +  System.out.println(t);
    +}
    +
    +
    +
    +

    + This will print: +

    +
    +
    +
    unsat core size: 3
    +unsat core:
    +(< 0 a)
    +(< 0 b)
    +(< (+ a b) 1)
    +
    +
    +
    +
    +

    + Example + +  + +

    +
    +
    + + + + + +
    +
    +

    + + examples/api/java/QuickStart.java + +

    +
    +
    +
      1/******************************************************************************
    +  2 * Top contributors (to current version):
    +  3 *   Mudathir Mohamed, Aina Niemetz, Andres Noetzli
    +  4 *
    +  5 * This file is part of the cvc5 project.
    +  6 *
    +  7 * Copyright (c) 2009-2024 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 * A simple demonstration of the api capabilities of cvc5.
    + 14 *
    + 15 */
    + 16
    + 17import io.github.cvc5.*;
    + 18import java.math.BigInteger;
    + 19import java.util.ArrayList;
    + 20import java.util.Arrays;
    + 21import java.util.List;
    + 22
    + 23public class QuickStart
    + 24{
    + 25  public static void main(String args[]) throws CVC5ApiException
    + 26  {
    + 27    // Create a term manager
    + 28    //! [docs-java-quickstart-0 start]
    + 29    TermManager tm = new TermManager();
    + 30    //! [docs-java-quickstart-0 end]
    + 31    // Create a solver
    + 32    //! [docs-java-quickstart-1 start]
    + 33    Solver solver = new Solver(tm);
    + 34    //! [docs-java-quickstart-1 end]
    + 35    {
    + 36      // We will ask the solver to produce models and unsat cores,
    + 37      // hence these options should be turned on.
    + 38      //! [docs-java-quickstart-2 start]
    + 39      solver.setOption("produce-models", "true");
    + 40      solver.setOption("produce-unsat-cores", "true");
    + 41      //! [docs-java-quickstart-2 end]
    + 42
    + 43      // The simplest way to set a logic for the solver is to choose "ALL".
    + 44      // This enables all logics in the solver.
    + 45      // Alternatively, "QF_ALL" enables all logics without quantifiers.
    + 46      // To optimize the solver's behavior for a more specific logic,
    + 47      // use the logic name, e.g. "QF_BV" or "QF_AUFBV".
    + 48
    + 49      // Set the logic
    + 50      //! [docs-java-quickstart-3 start]
    + 51      solver.setLogic("ALL");
    + 52      //! [docs-java-quickstart-3 end]
    + 53
    + 54      // In this example, we will define constraints over reals and integers.
    + 55      // Hence, we first obtain the corresponding sorts.
    + 56      //! [docs-java-quickstart-4 start]
    + 57      Sort realSort = tm.getRealSort();
    + 58      Sort intSort = tm.getIntegerSort();
    + 59      //! [docs-java-quickstart-4 end]
    + 60
    + 61      // x and y will be real variables, while a and b will be integer variables.
    + 62      // Formally, their cpp type is Term,
    + 63      // and they are called "constants" in SMT jargon:
    + 64      //! [docs-java-quickstart-5 start]
    + 65      Term x = tm.mkConst(realSort, "x");
    + 66      Term y = tm.mkConst(realSort, "y");
    + 67      Term a = tm.mkConst(intSort, "a");
    + 68      Term b = tm.mkConst(intSort, "b");
    + 69      //! [docs-java-quickstart-5 end]
    + 70
    + 71      // Our constraints regarding x and y will be:
    + 72      //
    + 73      //   (1)  0 < x
    + 74      //   (2)  0 < y
    + 75      //   (3)  x + y < 1
    + 76      //   (4)  x <= y
    + 77      //
    + 78
    + 79      //! [docs-java-quickstart-6 start]
    + 80      // Formally, constraints are also terms. Their sort is Boolean.
    + 81      // We will construct these constraints gradually,
    + 82      // by defining each of their components.
    + 83      // We start with the constant numerals 0 and 1:
    + 84      Term zero = tm.mkReal(0);
    + 85      Term one = tm.mkReal(1);
    + 86
    + 87      // Next, we construct the term x + y
    + 88      Term xPlusY = tm.mkTerm(Kind.ADD, x, y);
    + 89
    + 90      // Now we can define the constraints.
    + 91      // They use the operators +, <=, and <.
    + 92      // In the API, these are denoted by ADD, LEQ, and LT.
    + 93      // A list of available operators is available in:
    + 94      // src/api/cpp/cvc5_kind.h
    + 95      Term constraint1 = tm.mkTerm(Kind.LT, zero, x);
    + 96      Term constraint2 = tm.mkTerm(Kind.LT, zero, y);
    + 97      Term constraint3 = tm.mkTerm(Kind.LT, xPlusY, one);
    + 98      Term constraint4 = tm.mkTerm(Kind.LEQ, x, y);
    + 99
    +100      // Now we assert the constraints to the solver.
    +101      solver.assertFormula(constraint1);
    +102      solver.assertFormula(constraint2);
    +103      solver.assertFormula(constraint3);
    +104      solver.assertFormula(constraint4);
    +105      //! [docs-java-quickstart-6 end]
    +106
    +107      // Check if the formula is satisfiable, that is,
    +108      // are there real values for x and y that satisfy all the constraints?
    +109      //! [docs-java-quickstart-7 start]
    +110      Result r1 = solver.checkSat();
    +111      //! [docs-java-quickstart-7 end]
    +112
    +113      // The result is either SAT, UNSAT, or UNKNOWN.
    +114      // In this case, it is SAT.
    +115      //! [docs-java-quickstart-8 start]
    +116      System.out.println("expected: sat");
    +117      System.out.println("result: " + r1);
    +118      //! [docs-java-quickstart-8 end]
    +119
    +120      // We can get the values for x and y that satisfy the constraints.
    +121      //! [docs-java-quickstart-9 start]
    +122      Term xVal = solver.getValue(x);
    +123      Term yVal = solver.getValue(y);
    +124      //! [docs-java-quickstart-9 end]
    +125
    +126      // It is also possible to get values for compound terms,
    +127      // even if those did not appear in the original formula.
    +128      //! [docs-java-quickstart-10 start]
    +129      Term xMinusY = tm.mkTerm(Kind.SUB, x, y);
    +130      Term xMinusYVal = solver.getValue(xMinusY);
    +131      //! [docs-java-quickstart-10 end]
    +132
    +133      // Further, we can convert the values to java types
    +134      //! [docs-java-quickstart-11 start]
    +135      Pair<BigInteger, BigInteger> xPair = xVal.getRealValue();
    +136      Pair<BigInteger, BigInteger> yPair = yVal.getRealValue();
    +137      Pair<BigInteger, BigInteger> xMinusYPair = xMinusYVal.getRealValue();
    +138
    +139      System.out.println("value for x: " + xPair.first + "/" + xPair.second);
    +140      System.out.println("value for y: " + yPair.first + "/" + yPair.second);
    +141      System.out.println("value for x - y: " + xMinusYPair.first + "/" + xMinusYPair.second);
    +142      //! [docs-java-quickstart-11 end]
    +143
    +144      // Another way to independently compute the value of x - y would be
    +145      // to perform the (rational) arithmetic manually.
    +146      // However, for more complex terms,
    +147      // it is easier to let the solver do the evaluation.
    +148      //! [docs-java-quickstart-12 start]
    +149      Pair<BigInteger, BigInteger> xMinusYComputed =
    +150          new Pair<>(xPair.first.multiply(yPair.second).subtract(xPair.second.multiply(yPair.first)),
    +151              xPair.second.multiply(yPair.second));
    +152      BigInteger g = xMinusYComputed.first.gcd(xMinusYComputed.second);
    +153      xMinusYComputed = new Pair<>(xMinusYComputed.first.divide(g), xMinusYComputed.second.divide(g));
    +154      if (xMinusYComputed.equals(xMinusYPair))
    +155      {
    +156        System.out.println("computed correctly");
    +157      }
    +158      else
    +159      {
    +160        System.out.println("computed incorrectly");
    +161      }
    +162      //! [docs-java-quickstart-12 end]
    +163
    +164      // Next, we will check satisfiability of the same formula,
    +165      // only this time over integer variables a and b.
    +166
    +167      // We start by resetting assertions added to the solver.
    +168      //! [docs-java-quickstart-13 start]
    +169      solver.resetAssertions();
    +170      //! [docs-java-quickstart-13 end]
    +171
    +172      // Next, we assert the same assertions above with integers.
    +173      // This time, we inline the construction of terms
    +174      // to the assertion command.
    +175      //! [docs-java-quickstart-14 start]
    +176      solver.assertFormula(tm.mkTerm(Kind.LT, tm.mkInteger(0), a));
    +177      solver.assertFormula(tm.mkTerm(Kind.LT, tm.mkInteger(0), b));
    +178      solver.assertFormula(
    +179          tm.mkTerm(Kind.LT, tm.mkTerm(Kind.ADD, a, b), tm.mkInteger(1)));
    +180      solver.assertFormula(tm.mkTerm(Kind.LEQ, a, b));
    +181      //! [docs-java-quickstart-14 end]
    +182
    +183      // We check whether the revised assertion is satisfiable.
    +184      //! [docs-java-quickstart-15 start]
    +185      Result r2 = solver.checkSat();
    +186
    +187      // This time the formula is unsatisfiable
    +188      System.out.println("expected: unsat");
    +189      System.out.println("result: " + r2);
    +190      //! [docs-java-quickstart-15 end]
    +191
    +192      // We can query the solver for an unsatisfiable core, i.e., a subset
    +193      // of the assertions that is already unsatisfiable.
    +194      //! [docs-java-quickstart-16 start]
    +195      List<Term> unsatCore = Arrays.asList(solver.getUnsatCore());
    +196      System.out.println("unsat core size: " + unsatCore.size());
    +197      System.out.println("unsat core: ");
    +198      for (Term t : unsatCore)
    +199      {
    +200        System.out.println(t);
    +201      }
    +202      //! [docs-java-quickstart-16 end]
    +203    }
    +204    Context.deletePointers();
    +205  }
    +206}
    +
    +
    +
    +
    + + + + +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/resources/glass.png b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/resources/glass.png new file mode 100644 index 0000000000..a7f591f467 Binary files /dev/null and b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/resources/glass.png differ diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/resources/x.png b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/resources/x.png new file mode 100644 index 0000000000..30548a756e Binary files /dev/null and b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/resources/x.png differ diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/script.js b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/script.js new file mode 100644 index 0000000000..7dc93c48e3 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/script.js @@ -0,0 +1,149 @@ +/* + * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +var moduleSearchIndex; +var packageSearchIndex; +var typeSearchIndex; +var memberSearchIndex; +var tagSearchIndex; +function loadScripts(doc, tag) { + createElem(doc, tag, 'jquery/jszip/dist/jszip.js'); + createElem(doc, tag, 'jquery/jszip-utils/dist/jszip-utils.js'); + if (window.navigator.userAgent.indexOf('MSIE ') > 0 || window.navigator.userAgent.indexOf('Trident/') > 0 || + window.navigator.userAgent.indexOf('Edge/') > 0) { + createElem(doc, tag, 'jquery/jszip-utils/dist/jszip-utils-ie.js'); + } + createElem(doc, tag, 'search.js'); + + $.get(pathtoroot + "module-search-index.zip") + .done(function() { + JSZipUtils.getBinaryContent(pathtoroot + "module-search-index.zip", function(e, data) { + JSZip.loadAsync(data).then(function(zip){ + zip.file("module-search-index.json").async("text").then(function(content){ + moduleSearchIndex = JSON.parse(content); + }); + }); + }); + }); + $.get(pathtoroot + "package-search-index.zip") + .done(function() { + JSZipUtils.getBinaryContent(pathtoroot + "package-search-index.zip", function(e, data) { + JSZip.loadAsync(data).then(function(zip){ + zip.file("package-search-index.json").async("text").then(function(content){ + packageSearchIndex = JSON.parse(content); + }); + }); + }); + }); + $.get(pathtoroot + "type-search-index.zip") + .done(function() { + JSZipUtils.getBinaryContent(pathtoroot + "type-search-index.zip", function(e, data) { + JSZip.loadAsync(data).then(function(zip){ + zip.file("type-search-index.json").async("text").then(function(content){ + typeSearchIndex = JSON.parse(content); + }); + }); + }); + }); + $.get(pathtoroot + "member-search-index.zip") + .done(function() { + JSZipUtils.getBinaryContent(pathtoroot + "member-search-index.zip", function(e, data) { + JSZip.loadAsync(data).then(function(zip){ + zip.file("member-search-index.json").async("text").then(function(content){ + memberSearchIndex = JSON.parse(content); + }); + }); + }); + }); + $.get(pathtoroot + "tag-search-index.zip") + .done(function() { + JSZipUtils.getBinaryContent(pathtoroot + "tag-search-index.zip", function(e, data) { + JSZip.loadAsync(data).then(function(zip){ + zip.file("tag-search-index.json").async("text").then(function(content){ + tagSearchIndex = JSON.parse(content); + }); + }); + }); + }); + if (!moduleSearchIndex) { + createElem(doc, tag, 'module-search-index.js'); + } + if (!packageSearchIndex) { + createElem(doc, tag, 'package-search-index.js'); + } + if (!typeSearchIndex) { + createElem(doc, tag, 'type-search-index.js'); + } + if (!memberSearchIndex) { + createElem(doc, tag, 'member-search-index.js'); + } + if (!tagSearchIndex) { + createElem(doc, tag, 'tag-search-index.js'); + } + $(window).resize(function() { + $('.navPadding').css('padding-top', $('.fixedNav').css("height")); + }); +} + +function createElem(doc, tag, path) { + var script = doc.createElement(tag); + var scriptElement = doc.getElementsByTagName(tag)[0]; + script.src = pathtoroot + path; + scriptElement.parentNode.insertBefore(script, scriptElement); +} + +function show(type) { + count = 0; + for (var key in data) { + var row = document.getElementById(key); + if ((data[key] & type) !== 0) { + row.style.display = ''; + row.className = (count++ % 2) ? rowColor : altColor; + } + else + row.style.display = 'none'; + } + updateTabs(type); +} + +function updateTabs(type) { + for (var value in tabs) { + var sNode = document.getElementById(tabs[value][0]); + var spanNode = sNode.firstChild; + if (value == type) { + sNode.className = activeTableTab; + spanNode.innerHTML = tabs[value][1]; + } + else { + sNode.className = tableTab; + spanNode.innerHTML = "" + tabs[value][1] + ""; + } + } +} + +function updateModuleFrame(pFrame, cFrame) { + top.packageFrame.location = pFrame; + top.classFrame.location = cFrame; +} diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/search.js b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/search.js new file mode 100644 index 0000000000..8492271e71 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/search.js @@ -0,0 +1,326 @@ +/* + * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +var noResult = {l: "No results found"}; +var catModules = "Modules"; +var catPackages = "Packages"; +var catTypes = "Types"; +var catMembers = "Members"; +var catSearchTags = "SearchTags"; +var highlight = "$&"; +var camelCaseRegexp = ""; +var secondaryMatcher = ""; +function getHighlightedText(item) { + var ccMatcher = new RegExp(camelCaseRegexp); + var label = item.replace(ccMatcher, highlight); + if (label === item) { + label = item.replace(secondaryMatcher, highlight); + } + return label; +} +function getURLPrefix(ui) { + var urlPrefix=""; + if (useModuleDirectories) { + var slash = "/"; + if (ui.item.category === catModules) { + return ui.item.l + slash; + } else if (ui.item.category === catPackages && ui.item.m) { + return ui.item.m + slash; + } else if ((ui.item.category === catTypes && ui.item.p) || ui.item.category === catMembers) { + $.each(packageSearchIndex, function(index, item) { + if (item.m && ui.item.p == item.l) { + urlPrefix = item.m + slash; + } + }); + return urlPrefix; + } else { + return urlPrefix; + } + } + return urlPrefix; +} +var watermark = 'Search'; +$(function() { + $("#search").val(''); + $("#search").prop("disabled", false); + $("#reset").prop("disabled", false); + $("#search").val(watermark).addClass('watermark'); + $("#search").blur(function() { + if ($(this).val().length == 0) { + $(this).val(watermark).addClass('watermark'); + } + }); + $("#search").on('click keydown', function() { + if ($(this).val() == watermark) { + $(this).val('').removeClass('watermark'); + } + }); + $("#reset").click(function() { + $("#search").val(''); + $("#search").focus(); + }); + $("#search").focus(); + $("#search")[0].setSelectionRange(0, 0); +}); +$.widget("custom.catcomplete", $.ui.autocomplete, { + _create: function() { + this._super(); + this.widget().menu("option", "items", "> :not(.ui-autocomplete-category)"); + }, + _renderMenu: function(ul, items) { + var rMenu = this, + currentCategory = ""; + rMenu.menu.bindings = $(); + $.each(items, function(index, item) { + var li; + if (item.l !== noResult.l && item.category !== currentCategory) { + ul.append("
  • " + item.category + "
  • "); + currentCategory = item.category; + } + li = rMenu._renderItemData(ul, item); + if (item.category) { + li.attr("aria-label", item.category + " : " + item.l); + li.attr("class", "resultItem"); + } else { + li.attr("aria-label", item.l); + li.attr("class", "resultItem"); + } + }); + }, + _renderItem: function(ul, item) { + var label = ""; + if (item.category === catModules) { + label = getHighlightedText(item.l); + } else if (item.category === catPackages) { + label = (item.m) + ? getHighlightedText(item.m + "/" + item.l) + : getHighlightedText(item.l); + } else if (item.category === catTypes) { + label = (item.p) + ? getHighlightedText(item.p + "." + item.l) + : getHighlightedText(item.l); + } else if (item.category === catMembers) { + label = getHighlightedText(item.p + "." + (item.c + "." + item.l)); + } else if (item.category === catSearchTags) { + label = getHighlightedText(item.l); + } else { + label = item.l; + } + var li = $("
  • ").appendTo(ul); + var div = $("
    ").appendTo(li); + if (item.category === catSearchTags) { + if (item.d) { + div.html(label + " (" + item.h + ")
    " + + item.d + "
    "); + } else { + div.html(label + " (" + item.h + ")"); + } + } else { + div.html(label); + } + return li; + } +}); +$(function() { + $("#search").catcomplete({ + minLength: 1, + delay: 100, + source: function(request, response) { + var result = new Array(); + var presult = new Array(); + var tresult = new Array(); + var mresult = new Array(); + var tgresult = new Array(); + var secondaryresult = new Array(); + var displayCount = 0; + var exactMatcher = new RegExp("^" + $.ui.autocomplete.escapeRegex(request.term) + "$", "i"); + camelCaseRegexp = ($.ui.autocomplete.escapeRegex(request.term)).split(/(?=[A-Z])/).join("([a-z0-9_$]*?)"); + var camelCaseMatcher = new RegExp("^" + camelCaseRegexp); + secondaryMatcher = new RegExp($.ui.autocomplete.escapeRegex(request.term), "i"); + + // Return the nested innermost name from the specified object + function nestedName(e) { + return e.l.substring(e.l.lastIndexOf(".") + 1); + } + + function concatResults(a1, a2) { + a1 = a1.concat(a2); + a2.length = 0; + return a1; + } + + if (moduleSearchIndex) { + var mdleCount = 0; + $.each(moduleSearchIndex, function(index, item) { + item.category = catModules; + if (exactMatcher.test(item.l)) { + result.push(item); + mdleCount++; + } else if (camelCaseMatcher.test(item.l)) { + result.push(item); + } else if (secondaryMatcher.test(item.l)) { + secondaryresult.push(item); + } + }); + displayCount = mdleCount; + result = concatResults(result, secondaryresult); + } + if (packageSearchIndex) { + var pCount = 0; + var pkg = ""; + $.each(packageSearchIndex, function(index, item) { + item.category = catPackages; + pkg = (item.m) + ? (item.m + "/" + item.l) + : item.l; + if (exactMatcher.test(item.l)) { + presult.push(item); + pCount++; + } else if (camelCaseMatcher.test(pkg)) { + presult.push(item); + } else if (secondaryMatcher.test(pkg)) { + secondaryresult.push(item); + } + }); + result = result.concat(concatResults(presult, secondaryresult)); + displayCount = (pCount > displayCount) ? pCount : displayCount; + } + if (typeSearchIndex) { + var tCount = 0; + $.each(typeSearchIndex, function(index, item) { + item.category = catTypes; + var s = nestedName(item); + if (exactMatcher.test(s)) { + tresult.push(item); + tCount++; + } else if (camelCaseMatcher.test(s)) { + tresult.push(item); + } else if (secondaryMatcher.test(item.p + "." + item.l)) { + secondaryresult.push(item); + } + }); + result = result.concat(concatResults(tresult, secondaryresult)); + displayCount = (tCount > displayCount) ? tCount : displayCount; + } + if (memberSearchIndex) { + var mCount = 0; + $.each(memberSearchIndex, function(index, item) { + item.category = catMembers; + var s = nestedName(item); + if (exactMatcher.test(s)) { + mresult.push(item); + mCount++; + } else if (camelCaseMatcher.test(s)) { + mresult.push(item); + } else if (secondaryMatcher.test(item.c + "." + item.l)) { + secondaryresult.push(item); + } + }); + result = result.concat(concatResults(mresult, secondaryresult)); + displayCount = (mCount > displayCount) ? mCount : displayCount; + } + if (tagSearchIndex) { + var tgCount = 0; + $.each(tagSearchIndex, function(index, item) { + item.category = catSearchTags; + if (exactMatcher.test(item.l)) { + tgresult.push(item); + tgCount++; + } else if (secondaryMatcher.test(item.l)) { + secondaryresult.push(item); + } + }); + result = result.concat(concatResults(tgresult, secondaryresult)); + displayCount = (tgCount > displayCount) ? tgCount : displayCount; + } + displayCount = (displayCount > 500) ? displayCount : 500; + var counter = function() { + var count = {Modules: 0, Packages: 0, Types: 0, Members: 0, SearchTags: 0}; + var f = function(item) { + count[item.category] += 1; + return (count[item.category] <= displayCount); + }; + return f; + }(); + response(result.filter(counter)); + }, + response: function(event, ui) { + if (!ui.content.length) { + ui.content.push(noResult); + } else { + $("#search").empty(); + } + }, + autoFocus: true, + position: { + collision: "flip" + }, + select: function(event, ui) { + if (ui.item.l !== noResult.l) { + var url = getURLPrefix(ui); + if (ui.item.category === catModules) { + if (useModuleDirectories) { + url += "module-summary.html"; + } else { + url = ui.item.l + "-summary.html"; + } + } else if (ui.item.category === catPackages) { + if (ui.item.url) { + url = ui.item.url; + } else { + url += ui.item.l.replace(/\./g, '/') + "/package-summary.html"; + } + } else if (ui.item.category === catTypes) { + if (ui.item.url) { + url = ui.item.url; + } else if (ui.item.p === "") { + url += ui.item.l + ".html"; + } else { + url += ui.item.p.replace(/\./g, '/') + "/" + ui.item.l + ".html"; + } + } else if (ui.item.category === catMembers) { + if (ui.item.p === "") { + url += ui.item.c + ".html" + "#"; + } else { + url += ui.item.p.replace(/\./g, '/') + "/" + ui.item.c + ".html" + "#"; + } + if (ui.item.url) { + url += ui.item.url; + } else { + url += ui.item.l; + } + } else if (ui.item.category === catSearchTags) { + url += ui.item.u; + } + if (top !== window) { + parent.classFrame.location = pathtoroot + url; + } else { + window.location.href = pathtoroot + url; + } + $("#search").focus(); + } + } + }); +}); diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/serialized-form.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/serialized-form.html new file mode 100644 index 0000000000..d2a7f693ee --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/serialized-form.html @@ -0,0 +1,178 @@ + + + + + +Serialized Form + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    Serialized Form

    +
    +
    + +
    +
    +
    + +
    + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/stylesheet.css b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/stylesheet.css new file mode 100644 index 0000000000..de945eda26 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/stylesheet.css @@ -0,0 +1,910 @@ +/* + * Javadoc style sheet + */ + +@import url('resources/fonts/dejavu.css'); + +/* + * Styles for individual HTML elements. + * + * These are styles that are specific to individual HTML elements. Changing them affects the style of a particular + * HTML element throughout the page. + */ + +body { + background-color:#ffffff; + color:#353833; + font-family:'DejaVu Sans', Arial, Helvetica, sans-serif; + font-size:14px; + margin:0; + padding:0; + height:100%; + width:100%; +} +iframe { + margin:0; + padding:0; + height:100%; + width:100%; + overflow-y:scroll; + border:none; +} +a:link, a:visited { + text-decoration:none; + color:#4A6782; +} +a[href]:hover, a[href]:focus { + text-decoration:none; + color:#bb7a2a; +} +a[name] { + color:#353833; +} +a[name]:before, a[name]:target, a[id]:before, a[id]:target { + content:""; + display:inline-block; + position:relative; + padding-top:129px; + margin-top:-129px; +} +pre { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; +} +h1 { + font-size:20px; +} +h2 { + font-size:18px; +} +h3 { + font-size:16px; + font-style:italic; +} +h4 { + font-size:13px; +} +h5 { + font-size:12px; +} +h6 { + font-size:11px; +} +ul { + list-style-type:disc; +} +code, tt { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + padding-top:4px; + margin-top:8px; + line-height:1.4em; +} +dt code { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + padding-top:4px; +} +table tr td dt code { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + vertical-align:top; + padding-top:4px; +} +sup { + font-size:8px; +} + +/* + * Styles for HTML generated by javadoc. + * + * These are style classes that are used by the standard doclet to generate HTML documentation. + */ + +/* + * Styles for document title and copyright. + */ +.clear { + clear:both; + height:0px; + overflow:hidden; +} +.aboutLanguage { + float:right; + padding:0px 21px; + font-size:11px; + z-index:200; + margin-top:-9px; +} +.legalCopy { + margin-left:.5em; +} +.bar a, .bar a:link, .bar a:visited, .bar a:active { + color:#FFFFFF; + text-decoration:none; +} +.bar a:hover, .bar a:focus { + color:#bb7a2a; +} +.tab { + background-color:#0066FF; + color:#ffffff; + padding:8px; + width:5em; + font-weight:bold; +} +/* + * Styles for navigation bar. + */ +.bar { + background-color:#4D7A97; + color:#FFFFFF; + padding:.8em .5em .4em .8em; + height:auto;/*height:1.8em;*/ + font-size:11px; + margin:0; +} +.navPadding { + padding-top: 107px; +} +.fixedNav { + position:fixed; + width:100%; + z-index:999; + background-color:#ffffff; +} +.topNav { + background-color:#4D7A97; + color:#FFFFFF; + float:left; + padding:0; + width:100%; + clear:right; + height:2.8em; + padding-top:10px; + overflow:hidden; + font-size:12px; +} +.bottomNav { + margin-top:10px; + background-color:#4D7A97; + color:#FFFFFF; + float:left; + padding:0; + width:100%; + clear:right; + height:2.8em; + padding-top:10px; + overflow:hidden; + font-size:12px; +} +.subNav { + background-color:#dee3e9; + float:left; + width:100%; + overflow:hidden; + font-size:12px; +} +.subNav div { + clear:left; + float:left; + padding:0 0 5px 6px; + text-transform:uppercase; +} +ul.navList, ul.subNavList { + float:left; + margin:0 25px 0 0; + padding:0; +} +ul.navList li{ + list-style:none; + float:left; + padding: 5px 6px; + text-transform:uppercase; +} +ul.navListSearch { + float:right; + margin:0 0 0 0; + padding:0; +} +ul.navListSearch li { + list-style:none; + float:right; + padding: 5px 6px; + text-transform:uppercase; +} +ul.navListSearch li label { + position:relative; + right:-16px; +} +ul.subNavList li { + list-style:none; + float:left; +} +.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited { + color:#FFFFFF; + text-decoration:none; + text-transform:uppercase; +} +.topNav a:hover, .bottomNav a:hover { + text-decoration:none; + color:#bb7a2a; + text-transform:uppercase; +} +.navBarCell1Rev { + background-color:#F8981D; + color:#253441; + margin: auto 5px; +} +.skipNav { + position:absolute; + top:auto; + left:-9999px; + overflow:hidden; +} +/* + * Styles for page header and footer. + */ +.header, .footer { + clear:both; + margin:0 20px; + padding:5px 0 0 0; +} +.indexNav { + position:relative; + font-size:12px; + background-color:#dee3e9; +} +.indexNav ul { + margin-top:0; + padding:5px; +} +.indexNav ul li { + display:inline; + list-style-type:none; + padding-right:10px; + text-transform:uppercase; +} +.indexNav h1 { + font-size:13px; +} +.title { + color:#2c4557; + margin:10px 0; +} +.subTitle { + margin:5px 0 0 0; +} +.header ul { + margin:0 0 15px 0; + padding:0; +} +.footer ul { + margin:20px 0 5px 0; +} +.header ul li, .footer ul li { + list-style:none; + font-size:13px; +} +/* + * Styles for headings. + */ +div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 { + background-color:#dee3e9; + border:1px solid #d0d9e0; + margin:0 0 6px -8px; + padding:7px 5px; +} +ul.blockList ul.blockList ul.blockList li.blockList h3 { + background-color:#dee3e9; + border:1px solid #d0d9e0; + margin:0 0 6px -8px; + padding:7px 5px; +} +ul.blockList ul.blockList li.blockList h3 { + padding:0; + margin:15px 0; +} +ul.blockList li.blockList h2 { + padding:0px 0 20px 0; +} +/* + * Styles for page layout containers. + */ +.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer, +.allClassesContainer, .allPackagesContainer { + clear:both; + padding:10px 20px; + position:relative; +} +.indexContainer { + margin:10px; + position:relative; + font-size:12px; +} +.indexContainer h2 { + font-size:13px; + padding:0 0 3px 0; +} +.indexContainer ul { + margin:0; + padding:0; +} +.indexContainer ul li { + list-style:none; + padding-top:2px; +} +.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt { + font-size:12px; + font-weight:bold; + margin:10px 0 0 0; + color:#4E4E4E; +} +.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd { + margin:5px 0 10px 0px; + font-size:14px; + font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; +} +.serializedFormContainer dl.nameValue dt { + margin-left:1px; + font-size:1.1em; + display:inline; + font-weight:bold; +} +.serializedFormContainer dl.nameValue dd { + margin:0 0 0 1px; + font-size:1.1em; + display:inline; +} +/* + * Styles for lists. + */ +li.circle { + list-style:circle; +} +ul.horizontal li { + display:inline; + font-size:0.9em; +} +ul.inheritance { + margin:0; + padding:0; +} +ul.inheritance li { + display:inline; + list-style:none; +} +ul.inheritance li ul.inheritance { + margin-left:15px; + padding-left:15px; + padding-top:1px; +} +ul.blockList, ul.blockListLast { + margin:10px 0 10px 0; + padding:0; +} +ul.blockList li.blockList, ul.blockListLast li.blockList { + list-style:none; + margin-bottom:15px; + line-height:1.4; +} +ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList { + padding:0px 20px 5px 10px; + border:1px solid #ededed; + background-color:#f8f8f8; +} +ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList { + padding:0 0 5px 8px; + background-color:#ffffff; + border:none; +} +ul.blockList ul.blockList ul.blockList ul.blockList li.blockList { + margin-left:0; + padding-left:0; + padding-bottom:15px; + border:none; +} +ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast { + list-style:none; + border-bottom:none; + padding-bottom:0; +} +table tr td dl, table tr td dl dt, table tr td dl dd { + margin-top:0; + margin-bottom:1px; +} +/* + * Styles for tables. + */ +.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary, +.requiresSummary, .packagesSummary, .providesSummary, .usesSummary { + width:100%; + border-spacing:0; + border-left:1px solid #EEE; + border-right:1px solid #EEE; + border-bottom:1px solid #EEE; +} +.overviewSummary, .memberSummary, .requiresSummary, .packagesSummary, .providesSummary, .usesSummary { + padding:0px; +} +.overviewSummary caption, .memberSummary caption, .typeSummary caption, +.useSummary caption, .constantsSummary caption, .deprecatedSummary caption, +.requiresSummary caption, .packagesSummary caption, .providesSummary caption, .usesSummary caption { + position:relative; + text-align:left; + background-repeat:no-repeat; + color:#253441; + font-weight:bold; + clear:none; + overflow:hidden; + padding:0px; + padding-top:10px; + padding-left:1px; + margin:0px; + white-space:pre; +} +.constantsSummary caption a:link, .constantsSummary caption a:visited, +.useSummary caption a:link, .useSummary caption a:visited { + color:#1f389c; +} +.overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link, +.deprecatedSummary caption a:link, +.requiresSummary caption a:link, .packagesSummary caption a:link, .providesSummary caption a:link, +.usesSummary caption a:link, +.overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover, +.useSummary caption a:hover, .constantsSummary caption a:hover, .deprecatedSummary caption a:hover, +.requiresSummary caption a:hover, .packagesSummary caption a:hover, .providesSummary caption a:hover, +.usesSummary caption a:hover, +.overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active, +.useSummary caption a:active, .constantsSummary caption a:active, .deprecatedSummary caption a:active, +.requiresSummary caption a:active, .packagesSummary caption a:active, .providesSummary caption a:active, +.usesSummary caption a:active, +.overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited, +.deprecatedSummary caption a:visited, +.requiresSummary caption a:visited, .packagesSummary caption a:visited, .providesSummary caption a:visited, +.usesSummary caption a:visited { + color:#FFFFFF; +} +.overviewSummary caption span, .memberSummary caption span, .typeSummary caption span, +.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span, +.requiresSummary caption span, .packagesSummary caption span, .providesSummary caption span, +.usesSummary caption span { + white-space:nowrap; + padding-top:5px; + padding-left:12px; + padding-right:12px; + padding-bottom:7px; + display:inline-block; + float:left; + background-color:#F8981D; + border: none; + height:16px; +} +.memberSummary caption span.activeTableTab span, .packagesSummary caption span.activeTableTab span, +.overviewSummary caption span.activeTableTab span, .typeSummary caption span.activeTableTab span { + white-space:nowrap; + padding-top:5px; + padding-left:12px; + padding-right:12px; + margin-right:3px; + display:inline-block; + float:left; + background-color:#F8981D; + height:16px; +} +.memberSummary caption span.tableTab span, .packagesSummary caption span.tableTab span, +.overviewSummary caption span.tableTab span, .typeSummary caption span.tableTab span { + white-space:nowrap; + padding-top:5px; + padding-left:12px; + padding-right:12px; + margin-right:3px; + display:inline-block; + float:left; + background-color:#4D7A97; + height:16px; +} +.memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab, +.packagesSummary caption span.tableTab, .packagesSummary caption span.activeTableTab, +.overviewSummary caption span.tableTab, .overviewSummary caption span.activeTableTab, +.typeSummary caption span.tableTab, .typeSummary caption span.activeTableTab { + padding-top:0px; + padding-left:0px; + padding-right:0px; + background-image:none; + float:none; + display:inline; +} +.overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd, +.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd, +.requiresSummary .tabEnd, .packagesSummary .tabEnd, .providesSummary .tabEnd, .usesSummary .tabEnd { + display:none; + width:5px; + position:relative; + float:left; + background-color:#F8981D; +} +.memberSummary .activeTableTab .tabEnd, .packagesSummary .activeTableTab .tabEnd, +.overviewSummary .activeTableTab .tabEnd, .typeSummary .activeTableTab .tabEnd { + display:none; + width:5px; + margin-right:3px; + position:relative; + float:left; + background-color:#F8981D; +} +.memberSummary .tableTab .tabEnd, .packagesSummary .tableTab .tabEnd, +.overviewSummary .tableTab .tabEnd, .typeSummary .tableTab .tabEnd { + display:none; + width:5px; + margin-right:3px; + position:relative; + background-color:#4D7A97; + float:left; +} +.rowColor th, .altColor th { + font-weight:normal; +} +.overviewSummary td, .memberSummary td, .typeSummary td, +.useSummary td, .constantsSummary td, .deprecatedSummary td, +.requiresSummary td, .packagesSummary td, .providesSummary td, .usesSummary td { + text-align:left; + padding:0px 0px 12px 10px; +} +th.colFirst, th.colSecond, th.colLast, th.colConstructorName, th.colDeprecatedItemName, .useSummary th, +.constantsSummary th, .packagesSummary th, td.colFirst, td.colSecond, td.colLast, .useSummary td, +.constantsSummary td { + vertical-align:top; + padding-right:0px; + padding-top:8px; + padding-bottom:3px; +} +th.colFirst, th.colSecond, th.colLast, th.colConstructorName, th.colDeprecatedItemName, .constantsSummary th, +.packagesSummary th { + background:#dee3e9; + text-align:left; + padding:8px 3px 3px 7px; +} +td.colFirst, th.colFirst { + font-size:13px; +} +td.colSecond, th.colSecond, td.colLast, th.colConstructorName, th.colDeprecatedItemName, th.colLast { + font-size:13px; +} +.constantsSummary th, .packagesSummary th { + font-size:13px; +} +.providesSummary th.colFirst, .providesSummary th.colLast, .providesSummary td.colFirst, +.providesSummary td.colLast { + white-space:normal; + font-size:13px; +} +.overviewSummary td.colFirst, .overviewSummary th.colFirst, +.requiresSummary td.colFirst, .requiresSummary th.colFirst, +.packagesSummary td.colFirst, .packagesSummary td.colSecond, .packagesSummary th.colFirst, .packagesSummary th, +.usesSummary td.colFirst, .usesSummary th.colFirst, +.providesSummary td.colFirst, .providesSummary th.colFirst, +.memberSummary td.colFirst, .memberSummary th.colFirst, +.memberSummary td.colSecond, .memberSummary th.colSecond, .memberSummary th.colConstructorName, +.typeSummary td.colFirst, .typeSummary th.colFirst { + vertical-align:top; +} +.packagesSummary th.colLast, .packagesSummary td.colLast { + white-space:normal; +} +td.colFirst a:link, td.colFirst a:visited, +td.colSecond a:link, td.colSecond a:visited, +th.colFirst a:link, th.colFirst a:visited, +th.colSecond a:link, th.colSecond a:visited, +th.colConstructorName a:link, th.colConstructorName a:visited, +th.colDeprecatedItemName a:link, th.colDeprecatedItemName a:visited, +.constantValuesContainer td a:link, .constantValuesContainer td a:visited, +.allClassesContainer td a:link, .allClassesContainer td a:visited, +.allPackagesContainer td a:link, .allPackagesContainer td a:visited { + font-weight:bold; +} +.tableSubHeadingColor { + background-color:#EEEEFF; +} +.altColor, .altColor th { + background-color:#FFFFFF; +} +.rowColor, .rowColor th { + background-color:#EEEEEF; +} +/* + * Styles for contents. + */ +.description pre { + margin-top:0; +} +.deprecatedContent { + margin:0; + padding:10px 0; +} +.docSummary { + padding:0; +} +ul.blockList ul.blockList ul.blockList li.blockList h3 { + font-style:normal; +} +div.block { + font-size:14px; + font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; +} +td.colLast div { + padding-top:0px; +} +td.colLast a { + padding-bottom:3px; +} +/* + * Styles for formatting effect. + */ +.sourceLineNo { + color:green; + padding:0 30px 0 0; +} +h1.hidden { + visibility:hidden; + overflow:hidden; + font-size:10px; +} +.block { + display:block; + margin:3px 10px 2px 0px; + color:#474747; +} +.deprecatedLabel, .descfrmTypeLabel, .implementationLabel, .memberNameLabel, .memberNameLink, +.moduleLabelInPackage, .moduleLabelInType, .overrideSpecifyLabel, .packageLabelInType, +.packageHierarchyLabel, .paramLabel, .returnLabel, .seeLabel, .simpleTagLabel, +.throwsLabel, .typeNameLabel, .typeNameLink, .searchTagLink { + font-weight:bold; +} +.deprecationComment, .emphasizedPhrase, .interfaceName { + font-style:italic; +} +.deprecationBlock { + font-size:14px; + font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; + border-style:solid; + border-width:thin; + border-radius:10px; + padding:10px; + margin-bottom:10px; + margin-right:10px; + display:inline-block; +} +div.block div.deprecationComment, div.block div.block span.emphasizedPhrase, +div.block div.block span.interfaceName { + font-style:normal; +} +div.contentContainer ul.blockList li.blockList h2 { + padding-bottom:0px; +} +/* + * Styles for IFRAME. + */ +.mainContainer { + margin:0 auto; + padding:0; + height:100%; + width:100%; + position:fixed; + top:0; + left:0; +} +.leftContainer { + height:100%; + position:fixed; + width:320px; +} +.leftTop { + position:relative; + float:left; + width:315px; + top:0; + left:0; + height:30%; + border-right:6px solid #ccc; + border-bottom:6px solid #ccc; +} +.leftBottom { + position:relative; + float:left; + width:315px; + bottom:0; + left:0; + height:70%; + border-right:6px solid #ccc; + border-top:1px solid #000; +} +.rightContainer { + position:absolute; + left:320px; + top:0; + bottom:0; + height:100%; + right:0; + border-left:1px solid #000; +} +.rightIframe { + margin:0; + padding:0; + height:100%; + right:30px; + width:100%; + overflow:visible; + margin-bottom:30px; +} +/* + * Styles specific to HTML5 elements. + */ +main, nav, header, footer, section { + display:block; +} +/* + * Styles for javadoc search. + */ +.ui-autocomplete-category { + font-weight:bold; + font-size:15px; + padding:7px 0 7px 3px; + background-color:#4D7A97; + color:#FFFFFF; +} +.resultItem { + font-size:13px; +} +.ui-autocomplete { + max-height:85%; + max-width:65%; + overflow-y:scroll; + overflow-x:scroll; + white-space:nowrap; + box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23); +} +ul.ui-autocomplete { + position:fixed; + z-index:999999; + background-color: #FFFFFF; +} +ul.ui-autocomplete li { + float:left; + clear:both; + width:100%; +} +.resultHighlight { + font-weight:bold; +} +.ui-autocomplete .result-item { + font-size: inherit; +} +#search { + background-image:url('resources/glass.png'); + background-size:13px; + background-repeat:no-repeat; + background-position:2px 3px; + padding-left:20px; + position:relative; + right:-18px; +} +#reset { + background-color: rgb(255,255,255); + background-image:url('resources/x.png'); + background-position:center; + background-repeat:no-repeat; + background-size:12px; + border:0 none; + width:16px; + height:17px; + position:relative; + left:-4px; + top:-4px; + font-size:0px; +} +.watermark { + color:#545454; +} +.searchTagDescResult { + font-style:italic; + font-size:11px; +} +.searchTagHolderResult { + font-style:italic; + font-size:12px; +} +.searchTagResult:before, .searchTagResult:target { + color:red; +} +.moduleGraph span { + display:none; + position:absolute; +} +.moduleGraph:hover span { + display:block; + margin: -100px 0 0 100px; + z-index: 1; +} +.methodSignature { + white-space:normal; +} + +/* + * Styles for user-provided tables. + * + * borderless: + * No borders, vertical margins, styled caption. + * This style is provided for use with existing doc comments. + * In general, borderless tables should not be used for layout purposes. + * + * plain: + * Plain borders around table and cells, vertical margins, styled caption. + * Best for small tables or for complex tables for tables with cells that span + * rows and columns, when the "striped" style does not work well. + * + * striped: + * Borders around the table and vertical borders between cells, striped rows, + * vertical margins, styled caption. + * Best for tables that have a header row, and a body containing a series of simple rows. + */ + +table.borderless, +table.plain, +table.striped { + margin-top: 10px; + margin-bottom: 10px; +} +table.borderless > caption, +table.plain > caption, +table.striped > caption { + font-weight: bold; + font-size: smaller; +} +table.borderless th, table.borderless td, +table.plain th, table.plain td, +table.striped th, table.striped td { + padding: 2px 5px; +} +table.borderless, +table.borderless > thead > tr > th, table.borderless > tbody > tr > th, table.borderless > tr > th, +table.borderless > thead > tr > td, table.borderless > tbody > tr > td, table.borderless > tr > td { + border: none; +} +table.borderless > thead > tr, table.borderless > tbody > tr, table.borderless > tr { + background-color: transparent; +} +table.plain { + border-collapse: collapse; + border: 1px solid black; +} +table.plain > thead > tr, table.plain > tbody tr, table.plain > tr { + background-color: transparent; +} +table.plain > thead > tr > th, table.plain > tbody > tr > th, table.plain > tr > th, +table.plain > thead > tr > td, table.plain > tbody > tr > td, table.plain > tr > td { + border: 1px solid black; +} +table.striped { + border-collapse: collapse; + border: 1px solid black; +} +table.striped > thead { + background-color: #E3E3E3; +} +table.striped > thead > tr > th, table.striped > thead > tr > td { + border: 1px solid black; +} +table.striped > tbody > tr:nth-child(even) { + background-color: #EEE +} +table.striped > tbody > tr:nth-child(odd) { + background-color: #FFF +} +table.striped > tbody > tr > th, table.striped > tbody > tr > td { + border-left: 1px solid black; + border-right: 1px solid black; +} +table.striped > tbody > tr > th { + font-weight: normal; +} diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/type-search-index.js b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/type-search-index.js new file mode 100644 index 0000000000..04d29963f6 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/type-search-index.js @@ -0,0 +1 @@ +typeSearchIndex = [{"p":"io.github.cvc5","l":"AbstractPlugin"},{"l":"All Classes","url":"allclasses-index.html"},{"p":"io.github.cvc5","l":"OptionInfo.BaseInfo"},{"p":"io.github.cvc5.modes","l":"BlockModelsMode"},{"p":"io.github.cvc5","l":"Command"},{"p":"io.github.cvc5","l":"Datatype.ConstIterator"},{"p":"io.github.cvc5","l":"DatatypeConstructor.ConstIterator"},{"p":"io.github.cvc5","l":"Statistics.ConstIterator"},{"p":"io.github.cvc5","l":"Term.ConstIterator"},{"p":"io.github.cvc5","l":"Context"},{"p":"io.github.cvc5","l":"CVC5ApiException"},{"p":"io.github.cvc5","l":"CVC5ApiOptionException"},{"p":"io.github.cvc5","l":"CVC5ApiRecoverableException"},{"p":"io.github.cvc5","l":"CVC5ParserException"},{"p":"io.github.cvc5","l":"Datatype"},{"p":"io.github.cvc5","l":"DatatypeConstructor"},{"p":"io.github.cvc5","l":"DatatypeConstructorDecl"},{"p":"io.github.cvc5","l":"DatatypeDecl"},{"p":"io.github.cvc5","l":"DatatypeSelector"},{"p":"io.github.cvc5.modes","l":"FindSynthTarget"},{"p":"io.github.cvc5","l":"Grammar"},{"p":"io.github.cvc5.modes","l":"InputLanguage"},{"p":"io.github.cvc5","l":"InputParser"},{"p":"io.github.cvc5","l":"IOracle"},{"p":"io.github.cvc5","l":"Kind"},{"p":"io.github.cvc5.modes","l":"LearnedLitType"},{"p":"io.github.cvc5","l":"OptionInfo.ModeInfo"},{"p":"io.github.cvc5","l":"OptionInfo.NumberInfo"},{"p":"io.github.cvc5","l":"Op"},{"p":"io.github.cvc5","l":"OptionInfo"},{"p":"io.github.cvc5","l":"Pair"},{"p":"io.github.cvc5","l":"Proof"},{"p":"io.github.cvc5.modes","l":"ProofComponent"},{"p":"io.github.cvc5.modes","l":"ProofFormat"},{"p":"io.github.cvc5","l":"ProofRewriteRule"},{"p":"io.github.cvc5","l":"ProofRule"},{"p":"io.github.cvc5","l":"Result"},{"p":"io.github.cvc5","l":"RoundingMode"},{"p":"io.github.cvc5","l":"SkolemId"},{"p":"io.github.cvc5","l":"Solver"},{"p":"io.github.cvc5","l":"Sort"},{"p":"io.github.cvc5","l":"SortKind"},{"p":"io.github.cvc5","l":"Stat"},{"p":"io.github.cvc5","l":"Statistics"},{"p":"io.github.cvc5","l":"SymbolManager"},{"p":"io.github.cvc5","l":"SynthResult"},{"p":"io.github.cvc5","l":"Term"},{"p":"io.github.cvc5","l":"TermManager"},{"p":"io.github.cvc5","l":"Triplet"},{"p":"io.github.cvc5","l":"UnknownExplanation"},{"p":"io.github.cvc5","l":"Utils"},{"p":"io.github.cvc5","l":"OptionInfo.ValueInfo"},{"p":"io.github.cvc5","l":"OptionInfo.VoidInfo"}] \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/type-search-index.zip b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/type-search-index.zip new file mode 100644 index 0000000000..b88e1419d9 Binary files /dev/null and b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/java/type-search-index.zip differ diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/command.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/command.html new file mode 100644 index 0000000000..cb8baaf809 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/command.html @@ -0,0 +1,729 @@ + + + + + + + + + + + Command — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Command + +  + +

    +

    + Encapsulation of a command. +Commands are constructed by the + + + + input + + + parser + + + + and can be invoked on +the + + + + solver + + + + and + + + + symbol + + + manager + + + + . +

    +
    +
    +
    + + + class + + + + + + + cvc5. + + + + + Command + + + +  + +
    +
    +

    + Encapsulation of a command. +

    +

    + Commands are constructed by the input parser and can be invoked on +the solver and symbol manager. +

    +

    + Wrapper class for the C++ class + + + + cvc5::parser::Command + + + + . +

    +
    +
    + + + getCommandName + + + + ( + + + ) + + +  + +
    +
    +

    + Get the name for this command, e.g. “assert”. +

    +
    +
    + Returns + + : + +
    +
    +

    + The name of this command. +

    +
    +
    +
    +
    +
    +
    + + + invoke + + + + ( + + + ) + + +  + +
    +
    +

    + Invoke the command on the solver and symbol manager, and returns the result. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + solver + + – The solver to invoke the command on. +

      +
    • +
    • +

      + + sm + + – The symbol manager to invoke the command on. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + A string representation of the result. +

    +
    +
    +
    +
    +
    +
    + + + isNull + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True if this command is null. +

    +
    +
    +
    +
    +
    +
    + + + toString + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + A string representation of this result. +

    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/datatype.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/datatype.html new file mode 100644 index 0000000000..3000dcb532 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/datatype.html @@ -0,0 +1,1100 @@ + + + + + + + + + + + Datatype — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Datatype + +  + +

    +

    + This class represents a datatype. A + + + + cvc5.Datatype + + + + is encapsulated +by a datatype + + + + Sort + + + + and can be retrieved from a +datatype sort via + + + + cvc5.Sort.getDatatype() + + + + . +Datatypes are specified by a + + + + cvc5.DatatypeDecl + + + + via + + + + cvc5.TermManager.mkDatatypeDecl() + + + + when constructing a datatype +sort. +

    +
    +
    +
    + + + class + + + + + + + cvc5. + + + + + Datatype + + + +  + +
    +
    +

    + A cvc5 datatype. +

    +

    + Wrapper class for the C++ class + + + + cvc5::Datatype + + + + . +

    +
    +
    + + + __getitem__ + + + + ( + + + ) + + +  + +
    +
    +

    + Get the datatype constructor with the given index, where index can +be either a numeric id starting with zero, or the name of the +constructor. In the latter case, this is a linear search through the +constructors, so in case of multiple, similarly-named constructors, +the first is returned. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + index + + – The id or name of the datatype constructor. +

    +
    +
    + Returns + + : + +
    +
    +

    + The matching datatype constructor. +

    +
    +
    +
    +
    +
    +
    + + + __iter__ + + + + ( + + + ) + + +  + +
    +
    +

    + Iterate over all constructors. +

    +
    +
    +
    +
    + + + getConstructor + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + name + + – The name of the constructor. +

    +
    +
    + Returns + + : + +
    +
    +

    + A constructor by name. +

    +
    +
    +
    +
    +
    +
    + + + getName + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The name of the datatype. +

    +
    +
    +
    +
    +
    +
    + + + getNumConstructors + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The number of constructors in this datatype. +

    +
    +
    +
    +
    +
    +
    + + + getParameters + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The parameters of this datatype, if it is parametric. An +exception is thrown if this datatype is not parametric. +

    +
    +
    +
    +
    +
    +
    + + + getSelector + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + name + + – The name of the selector.. +

    +
    +
    + Returns + + : + +
    +
    +

    + A selector by name. +

    +
    +
    +
    +
    +
    +
    + + + isCodatatype + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True if this datatype corresponds to a co-datatype. +

    +
    +
    +
    +
    +
    +
    + + + isFinite + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True if this datatype is finite. +

    +
    +
    +
    +
    +
    +
    + + + isNull + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True if this Datatype is a null object. +

    +
    +
    +
    +
    +
    +
    + + + isParametric + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future +versions. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + True if this datatype is parametric. +

    +
    +
    +
    +
    +
    +
    + + + isRecord + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future +versions. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + True if this datatype corresponds to a record. +

    +
    +
    +
    +
    +
    +
    + + + isTuple + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True if this datatype corresponds to a tuple. +

    +
    +
    +
    +
    +
    +
    + + + isWellFounded + + + + ( + + + ) + + +  + +
    +
    +

    + Determine if this datatype is well-founded. +

    +

    + If this datatype is not a codatatype, this returns false if there +are no values of this datatype that are of finite size. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this datatype is well-founded +

    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/datatypeconstructor.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/datatypeconstructor.html new file mode 100644 index 0000000000..1788be34ef --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/datatypeconstructor.html @@ -0,0 +1,1059 @@ + + + + + + + + + + + DatatypeConstructor — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + DatatypeConstructor + +  + +

    +

    + This class represents a datatype constructor. Datatype constructors are +specified by a + + + + cvc5.DatatypeConstructorDecl + + + + via + + + + cvc5.TermManager.mkDatatypeConstructorDecl() + + + + when constructing a +datatype sort and can be retrieved from a + + + + cvc5.Datatype + + + + via + + + + cvc5.Datatype.getConstructor() + + + + . +

    +
    +
    +
    + + + class + + + + + + + cvc5. + + + + + DatatypeConstructor + + + +  + +
    +
    +

    + A cvc5 datatype constructor. +

    +

    + Wrapper class for + + + + cvc5::DatatypeConstructor + + + + . +

    +
    +
    + + + __getitem__ + + + + ( + + + ) + + +  + +
    +
    +

    + Get the datatype selector with the given index, where index can be +either a numeric id starting with zero, or the name of the selector. +In the latter case, this is a linear search through the selectors, +so in case of multiple, similarly-named selectors, the first is +returned. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + index + + – The id or name of the datatype selector. +

    +
    +
    + Returns + + : + +
    +
    +

    + The matching datatype selector. +

    +
    +
    +
    +
    +
    +
    + + + __iter__ + + + + ( + + + ) + + +  + +
    +
    +

    + Iterate over all datatype selectors. +

    +
    +
    +
    +
    + + + getInstantiatedTerm + + + + ( + + + ) + + +  + +
    +
    +

    + Get the constructor term of this datatype constructor whose +return type is retSort. This function is intended to be used on +constructors of parametric datatypes and can be seen as returning +the constructor term that has been explicitly cast to the given +sort. +

    +

    + This function is required for constructors of parametric datatypes +whose return type cannot be determined by type inference. For +example, given: +

    +
    +
    +
    (declare-datatype List
    +    (par (T) ((nil) (cons (head T) (tail (List T))))))
    +
    +
    +
    +

    + The type of nil terms must be provided by the user. In SMT version +2.6, this is done via the syntax for qualified identifiers: +

    +
    +
    +
    (as nil (List Int))
    +
    +
    +
    +

    + This function is equivalent of applying the above, where this +DatatypeConstructor is the one corresponding to nil, and retSort is + + + (List + + + Int) + + + . +

    +
    +

    + Note +

    +

    + The returned constructor term + + + t + + + is used to construct the +above (nullary) application of + + + nil + + + with + + + TermManager.mkTerm(APPLY_CONSTRUCTOR, + + + t) + + + . +

    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future +versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + retSort + + – The desired return sort of the constructor. +

    +
    +
    + Returns + + : + +
    +
    +

    + The constructor term. +

    +
    +
    +
    +
    +
    +
    + + + getName + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The name of the constructor. +

    +
    +
    +
    +
    +
    +
    + + + getNumSelectors + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The number of selecters (so far) of this Datatype +constructor. +

    +
    +
    +
    +
    +
    +
    + + + getSelector + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + name + + – The name of the datatype selector. +

    +
    +
    + Returns + + : + +
    +
    +

    + The first datatype selector with the given name. +

    +
    +
    +
    +
    +
    +
    + + + getTerm + + + + ( + + + ) + + +  + +
    +
    +

    + Get the constructor term of this datatype constructor. +

    +

    + Datatype constructors are a special class of function-like terms +whose sort is datatype constructor +( + + + + Sort.isDatatypeConstructor() + + + + ). All datatype +constructors, including nullary ones, should be used as the first +argument to Terms whose kind is + + + + APPLY_CONSTRUCTOR + + + + . +For example, the nil list can be constructed via + + + TermManager.mkTerm(APPLY_CONSTRUCTOR, + + + [nil]) + + + , where nil is the +Term returned by this method. +

    +
    +

    + Note +

    +

    + This function should not be used for parametric datatypes. +Instead, use the method + + + + DatatypeConstructor.getInstantiatedTerm() + + + + below. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The constructor term. +

    +
    +
    +
    +
    +
    +
    + + + getTesterTerm + + + + ( + + + ) + + +  + +
    +
    +

    + Get the tester term of this datatype constructor. +

    +

    + Similar to constructors, testers are a class of function-like terms +of tester sort ( + + + + Sort.isDatatypeTester() + + + + ), and should +be used as the first argument of Terms of kind + + + + Kind.APPLY_TESTER + + + + . +

    +
    +
    + Returns + + : + +
    +
    +

    + The tester term for this constructor. +

    +
    +
    +
    +
    +
    +
    + + + isNull + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True if this DatatypeConstructor is a null object. +

    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/datatypeconstructordecl.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/datatypeconstructordecl.html new file mode 100644 index 0000000000..7843646212 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/datatypeconstructordecl.html @@ -0,0 +1,759 @@ + + + + + + + + + + + DatatypeConstructorDecl — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + DatatypeConstructorDecl + +  + +

    +

    + This class encapsulates a datatype constructor declaration. +A + + + + DatatypeConstructorDecl + + + + is constructed via + + + + cvc5.Solver.mkDatatypeConstructorDecl() + + + + . +This is not yet a + + + datatype constructor itself + + + , +but the representation of the specification for creating a datatype constructor +of a datatype + + + + Sort + + + + via + + + + cvc5.Solver.mkDatatypeSort() + + + + and + + + + cvc5.Solver.mkDatatypeSorts() + + + + . +

    +
    +
    +
    + + + class + + + + + + + cvc5. + + + + + DatatypeConstructorDecl + + + +  + +
    +
    +

    + A cvc5 datatype constructor declaration. A datatype constructor +declaration is a specification used for creating a datatype constructor. +

    +

    + Wrapper class for + + + + cvc5::DatatypeConstructorDecl + + + + . +

    +
    +
    + + + addSelector + + + + ( + + + ) + + +  + +
    +
    +

    + Add datatype selector declaration. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + name + + – The name of the datatype selector declaration to add. +

      +
    • +
    • +

      + + sort + + – The codomain sort of the datatype selector declaration +to add. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + addSelectorSelf + + + + ( + + + ) + + +  + +
    +
    +

    + Add datatype selector declaration whose codomain sort is the +datatype itself. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + name + + – The name of the datatype selector declaration to add. +

    +
    +
    +
    +
    +
    +
    + + + addSelectorUnresolved + + + + ( + + + ) + + +  + +
    +
    +

    + Add datatype selector declaration whose codomain sort is an +unresolved datatype with the given name. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + name + + – The name of the datatype selector declaration to add. +

      +
    • +
    • +

      + + unresDataypeName + + – The name of the unresolved datatype. The +codomain of the selector will be the +resolved datatype with the given name. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + isNull + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True if this DatatypeConstructorDecl is a null object. +

    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/datatypedecl.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/datatypedecl.html new file mode 100644 index 0000000000..11d40281b2 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/datatypedecl.html @@ -0,0 +1,813 @@ + + + + + + + + + + + DatatypeDecl — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + DatatypeDecl + +  + +

    +

    + This class encapsulates a datatype declaration. A datatype declaration is +constructed via + + + + cvc5.Solver.mkDatatypeDecl() + + + + . This is not a + + + datatype itself + + + , but the representation of the +specification for creating a datatype + + + + Sort + + + + via + + + + cvc5.Solver.mkDatatypeSort() + + + + and + + + + cvc5.Solver.mkDatatypeSorts() + + + + . +

    +
    +
    +
    + + + class + + + + + + + cvc5. + + + + + DatatypeDecl + + + +  + +
    +
    +

    + A cvc5 datatype declaration. A datatype declaration is not itself a +datatype (see + + + + Datatype + + + + ), but a specification for creating a +datatype sort. +

    +

    + The interface for a datatype declaration coincides with the syntax for +the SMT-LIB 2.6 command + + declare-datatype + + , or a single datatype within +the + + declare-datatypes + + command. +

    +

    + Datatype sorts can be constructed from + + + + DatatypeDecl + + + + using +the methods: +

    +
    + +
    +

    + Wrapper class for + + + + cvc5::DatatypeDecl + + + + . +

    +
    +
    + + + addConstructor + + + + ( + + + ) + + +  + +
    +
    +

    + Add a datatype constructor declaration. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + ctor + + – The datatype constructor declaration to add. +

    +
    +
    +
    +
    +
    +
    + + + getName + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The name of this datatype declaration. +

    +
    +
    +
    +
    +
    +
    + + + getNumConstructors + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The number of constructors (so far) for this datatype +declaration. +

    +
    +
    +
    +
    +
    +
    + + + isNull + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True if this DatatypeDecl is a null object. +

    +
    +
    +
    +
    +
    +
    + + + isParametric + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future +versions. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + True if this datatype declaration is parametric. +

    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/datatypeselector.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/datatypeselector.html new file mode 100644 index 0000000000..c1c2436fe0 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/datatypeselector.html @@ -0,0 +1,783 @@ + + + + + + + + + + + DatatypeSelector — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + DatatypeSelector + +  + +

    +

    + This class represents a datatype selector. Datatype selectors are +specified via + + + + cvc5.DatatypeConstructorDecl.addSelector() + + + + , + + + + cvc5.DatatypeConstructorDecl.addSelectorSelf() + + + + and + + + + cvc5.DatatypeConstructorDecl.addSelectorUnresolved() + + + + when constructing a datatype sort and can be retrieved from a + + + + cvc5.DatatypeConstructor + + + + via + + + + cvc5.DatatypeConstructor.getSelector() + + + + . +

    +
    +
    +
    + + + class + + + + + + + cvc5. + + + + + DatatypeSelector + + + +  + +
    +
    +

    + A cvc5 datatype selector. +

    +

    + Wrapper class for + + + + cvc5::DatatypeSelector + + + + . +

    +
    +
    + + + getCodomainSort + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The codomain sort of this selector. +

    +
    +
    +
    +
    +
    +
    + + + getName + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The name of this datatype selector. +

    +
    +
    +
    +
    +
    +
    + + + getTerm + + + + ( + + + ) + + +  + +
    +
    +

    + Get the selector term of this datatype selector. +

    +

    + Selector terms are a class of function-like terms of selector +sort ( + + + + Sort.isDatatypeSelector() + + + + ), and should be used as +the first argument of Terms of kind + + + + APPLY_SELECTOR + + + + . +

    +
    +
    + Returns + + : + +
    +
    +

    + The selector term of this datatype selector. +

    +
    +
    +
    +
    +
    +
    + + + getUpdaterTerm + + + + ( + + + ) + + +  + +
    +
    +

    + Get the updater term of this datatype selector. +

    +

    + Similar to selectors, updater terms are a class of function-like +terms of updater Sort ( + + + + Sort.isDatatypeUpdater() + + + + ), and +should be used as the first argument of Terms of kind + + + + APPLY_UPDATER + + + + . +

    +
    +
    + Returns + + : + +
    +
    +

    + The updater term of this datatype selector. +

    +
    +
    +
    +
    +
    +
    + + + isNull + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True if this DatatypeSelector is a null object. +

    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/grammar.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/grammar.html new file mode 100644 index 0000000000..bb39fe3ea4 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/grammar.html @@ -0,0 +1,790 @@ + + + + + + + + + + + Grammar — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Grammar + +  + +

    +

    + This class encapsulates a SyGuS grammar. It is created via + + + + cvc5.Solver.mkGrammar() + + + + and allows to define a context-free +grammar of terms, according to the definition of grammars in the SyGuS IF 2.1 +standard. +

    +
    +
    +
    + + + class + + + + + + + cvc5. + + + + + Grammar + + + +  + +
    +
    +

    + A Sygus Grammar. This class can be used to define a context-free grammar +of terms. Its interface coincides with the definition of grammars +( + + + GrammarDef + + + ) in the SyGuS IF 2.1 standard. +

    +

    + Wrapper class for + + + + cvc5::Grammar + + + + . +

    +
    +
    + + + addAnyConstant + + + + ( + + + ) + + +  + +
    +
    +

    + Allow + + + ntSymbol + + + to be an arbitrary constant. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + ntSymbol + + – The non-terminal allowed to be constant. +

    +
    +
    +
    +
    +
    +
    + + + addAnyVariable + + + + ( + + + ) + + +  + +
    +
    +

    + Allow + + + ntSymbol + + + to be any input variable to corresponding +synth-fun/synth-inv with the same sort as + + + ntSymbol + + + . +

    +
    +
    + Parameters + + : + +
    +
    +

    + + ntSymbol + + – The non-terminal allowed to be any input variable. +

    +
    +
    +
    +
    +
    +
    + + + addRule + + + + ( + + + ) + + +  + +
    +
    +

    + Add + + + rule + + + to the set of rules corresponding to + + + ntSymbol + + + . +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + ntSymbol + + – The non-terminal to which the rule is added. +

      +
    • +
    • +

      + + rule + + – The rule to add. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + addRules + + + + ( + + + ) + + +  + +
    +
    +

    + Add + + + ntSymbol + + + to the set of rules corresponding to + + + ntSymbol + + + . +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + ntSymbol + + – The non-terminal to which the rules are added. +

      +
    • +
    • +

      + + rules + + – The rules to add. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + isNull + + + + ( + + + ) + + +  + +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/inputparser.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/inputparser.html new file mode 100644 index 0000000000..56fbdcb96d --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/inputparser.html @@ -0,0 +1,982 @@ + + + + + + + + + + + InputParser — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + InputParser + +  + +

    +

    + This class is the main interface for retrieving + + + + commands + + + + and + + + + expressions + + + + from an +input. +

    +
    +
    +
    + + + class + + + + + + + cvc5. + + + + + InputParser + + + +  + +
    +
    +

    + This class is the main interface for retrieving commands and expressions +from an input using a parser. +

    +

    + After construction, it is expected that an input is first set via e.g. + + + + setFileInput() + + + + , + + + + setStringInput() + + + + , or + + + + setIncrementalStringInput() + + + + and + + + + appendIncrementalStringInput() + + + + . +Then, the methods + + + + nextCommand() + + + + and + + + nextExpression() + + + can be invoked to parse the input. +

    +

    + The input parser interacts with a symbol manager, which determines which +symbols are defined in the current context, based on the background logic +and user-defined symbols. If no symbol manager is provided, then the +input parser will construct (an initially empty) one. +

    +

    + If provided, the symbol manager must have a logic that is compatible +with the provided solver. That is, if both the solver and symbol +manager have their logics set ( + + + + SymbolManager.isLogicSet() + + + + and + + + + Solver.isLogicSet() + + + + ), then their logics must be the same. +

    +

    + Upon setting an input source, if either the solver (resp. symbol +manager) has its logic set, then the symbol manager (resp. solver) is set to +use that logic, if its logic is not already set. +

    +

    + Wrapper class for the C++ class + + + + cvc5::parser::InputParser + + + + . +

    +
    +
    + + + appendIncrementalStringInput + + + + ( + + + ) + + +  + +
    +
    +

    + Append string to the input being parsed by this parser. Should be +called after calling setIncrementalStringInput. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + input + + – The input string. +

    +
    +
    +
    +
    +
    +
    + + + done + + + + ( + + + ) + + +  + +
    +
    +

    + Is this parser done reading input? +

    +
    +
    +
    +
    + + + getSolver + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The underlying solver of this input parser. +

    +
    +
    +
    +
    +
    +
    + + + getSymbolManager + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The underlying symbol manager of this input parser. +

    +
    +
    +
    +
    +
    +
    + + + nextCommand + + + + ( + + + ) + + +  + +
    +
    +

    + Parse and return the next command. Will initialize the logic to “ALL” +or the forced logic if no logic is set prior to this point and a command +is read that requires initializing the logic. +

    +
    +
    + Returns + + : + +
    +
    +

    + The parsed command. This is the null command if no command was read. +

    +
    +
    +
    +
    +
    +
    + + + nextTerm + + + + ( + + + ) + + +  + +
    +
    +

    + Parse and return the next term. Requires setting the logic prior +to this point. +

    +
    +
    +
    +
    + + + setFileInput + + + + ( + + + ) + + +  + +
    +
    +

    + Set the input for the given file. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + lang + + – The input language (e.g. InputLanguage.SMT_LIB_2_6). +

      +
    • +
    • +

      + + filename + + – The input filename. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + setIncrementalStringInput + + + + ( + + + ) + + +  + +
    +
    +

    + Set that we will be feeding strings to this parser via +appendIncrementalStringInput +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + lang + + – The input language (e.g. InputLanguage.SMT_LIB_2_6). +

      +
    • +
    • +

      + + name + + – The name of the stream, for use in error messages. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + setStringInput + + + + ( + + + ) + + +  + +
    +
    +

    + Set the input to the given concrete string +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + lang + + – The input language (e.g. InputLanguage.SMT_LIB_2_6). +

      +
    • +
    • +

      + + input + + – The input string. +

      +
    • +
    • +

      + + name + + – The name of the stream, for use in error messages. +

      +
    • +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/kind.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/kind.html new file mode 100644 index 0000000000..57ebb54f86 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/kind.html @@ -0,0 +1,26584 @@ + + + + + + + + + + + Kind — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Kind + +  + +

    +

    + Every + + + + Term + + + + has an associated kind, represented +as enum class + + + :py:enum:`cvc5.Kind` + + + . +This kind distinguishes if the Term is a value, constant, variable or operator, +and what kind of each. +For example, a bit-vector value has kind + + + + CONST_BITVECTOR + + + + , +a free constant symbol has kind + + + + CONSTANT + + + + , +an equality over terms of any sort has kind + + + + EQUAL + + + + , and a universally +quantified formula has kind + + + + FORALL + + + + . +

    +

    + The kinds below directly correspond to the enum values of the C++ + + + + Kind + + + + enum. +

    +
    +
    +
    +
    + + + class + + + + + + + cvc5. + + + + + Kind + + + + ( + + + + + value + + + + + ) + + +  + +
    +
    +

    + The Kind enum +

    +
    +
    + + + ABS + + + +  + +
    +
    +

    + Absolute value. +

    + +
    +
    +
    +
    + + + ADD + + + +  + +
    +
    +

    + Arithmetic addition. +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of Sort Int or Real (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + AND + + + +  + +
    +
    +

    + Logical conjunction. +

    + +
    +
    +
    +
    + + + APPLY_CONSTRUCTOR + + + +  + +
    +
    +

    + Datatype constructor application. +

    + +
    +
    +
    +
    + + + APPLY_SELECTOR + + + +  + +
    +
    +

    + Datatype selector application. +

    + +
    +

    + Note +

    +

    + Undefined if misapplied. +

    +
    +
    +
    +
    +
    + + + APPLY_TESTER + + + +  + +
    +
    +

    + Datatype tester application. +

    + +
    +
    +
    +
    + + + APPLY_UF + + + +  + +
    +
    +

    + Application of an uninterpreted function. +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Function Term +

        +
      • +
      • +

        + + + 2..n: + + + Function argument instantiation Terms of any first-class Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + APPLY_UPDATER + + + +  + +
    +
    +

    + Datatype update application. +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Datatype updater Term (see + + + + DatatypeSelector.getUpdaterTerm() + + + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of Datatype Sort (DatatypeSelector of the updater must belong to a constructor of this Datatype Sort) +

        +
      • +
      • +

        + + + 3: + + + Term of the codomain Sort of the selector (the Term to update the field of the datatype term with) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +

    + Note +

    +

    + Does not change the datatype argument if misapplied. +

    +
    +
    +
    +
    +
    + + + ARCCOSECANT + + + +  + +
    +
    +

    + Arc cosecant function. +

    + +
    +
    +
    +
    + + + ARCCOSINE + + + +  + +
    +
    +

    + Arc cosine function. +

    + +
    +
    +
    +
    + + + ARCCOTANGENT + + + +  + +
    +
    +

    + Arc cotangent function. +

    + +
    +
    +
    +
    + + + ARCSECANT + + + +  + +
    +
    +

    + Arc secant function. +

    + +
    +
    +
    +
    + + + ARCSINE + + + +  + +
    +
    +

    + Arc sine function. +

    + +
    +
    +
    +
    + + + ARCTANGENT + + + +  + +
    +
    +

    + Arc tangent function. +

    + +
    +
    +
    +
    + + + BAG_CARD + + + +  + +
    +
    +

    + Bag cardinality. +

    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + BAG_CHOOSE + + + +  + +
    +
    +

    + Bag choose. +

    +

    + Select an element from a given bag. +

    +

    + For a bag + + \(A = \{(x,n)\}\) + + where + + \(n\) + + is the multiplicity, then +the term (choose + + \(A\) + + ) is equivalent to the term + + \(x\) + + . For an +empty bag, then it is an arbitrary value. For a bag that contains distinct +elements, it will deterministically return an element in + + \(A\) + + . +

    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + BAG_COUNT + + + +  + +
    +
    +

    + Bag element multiplicity. +

    + +
    +
    +
    +
    + + + BAG_DIFFERENCE_REMOVE + + + +  + +
    +
    +

    + Bag difference remove. +

    +

    + Removes shared elements in the two bags. +

    + +
    +
    +
    +
    + + + BAG_DIFFERENCE_SUBTRACT + + + +  + +
    +
    +

    + Bag difference subtract. +

    +

    + Subtracts multiplicities of the second from the first. +

    + +
    +
    +
    +
    + + + BAG_EMPTY + + + +  + +
    +
    +

    + Empty bag. +

    + +
    +
    +
    +
    + + + BAG_FILTER + + + +  + +
    +
    +

    + Bag filter. +

    +

    + This operator filters the elements of a bag. +(bag.filter + + \(p \; B\) + + ) takes a predicate + + \(p\) + + of Sort + + \((\rightarrow T \; Bool)\) + + as a first argument, and a bag + + \(B\) + + of Sort (Bag + + \(T\) + + ) as a second argument, and returns a subbag of Sort +(Bag + + \(T\) + + ) that includes all elements of + + \(B\) + + that satisfy + + \(p\) + + with the same multiplicity. +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of function Sort + + \((\rightarrow T \; Bool)\) + +

        +
      • +
      • +

        + + + 2: + + + Term of bag Sort (Bag + + \(T\) + + ) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + BAG_FOLD + + + +  + +
    +
    +

    + Bag fold. +

    +

    + This operator combines elements of a bag into a single value. +(bag.fold + + \(f \; t \; B\) + + ) folds the elements of bag + + \(B\) + + starting with Term + + \(t\) + + and using the combining function + + \(f\) + + . +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of function Sort + + \((\rightarrow S_1 \; S_2 \; S_2)\) + +

        +
      • +
      • +

        + + + 2: + + + Term of Sort + + \(S_2\) + + (the initial value) +

        +
      • +
      • +

        + + + 3: + + + Term of bag Sort (Bag + + \(S_1\) + + ) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + BAG_INTER_MIN + + + +  + +
    +
    +

    + Bag intersection (min). +

    + +
    +
    +
    +
    + + + BAG_MAKE + + + +  + +
    +
    +

    + Bag make. +

    +

    + Construct a bag with the given element and given multiplicity. +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of any Sort (the bag element) +

        +
      • +
      • +

        + + + 2: + + + Term of Sort Int (the multiplicity of the element) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + BAG_MAP + + + +  + +
    +
    +

    + Bag map. +

    +

    + This operator applies the first argument, a function of +Sort + + \((\rightarrow S_1 \; S_2)\) + + , to every element of the second +argument, a set of Sort (Bag + + \(S_1\) + + ), and returns a set of Sort +(Bag + + \(S_2\) + + ). +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of function Sort + + \((\rightarrow S_1 \; S_2)\) + +

        +
      • +
      • +

        + + + 2: + + + Term of bag Sort (Bag + + \(S_1\) + + ) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + BAG_MEMBER + + + +  + +
    +
    +

    + Bag membership predicate. +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of any Sort (must match the element Sort of the given bag Term) +

        +
      • +
      • +

        + + + 2: + + + Terms of bag Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + BAG_PARTITION + + + +  + +
    +
    +

    + Bag partition. +

    +

    + This operator partitions of a bag of elements into disjoint bags. +(bag.partition + + \(r \; B\) + + ) partitions the elements of bag + + \(B\) + + of type + + \((Bag \; E)\) + + based on the equivalence relations + + \(r\) + + of +type + + \((\rightarrow \; E \; E \; Bool)\) + + . +It returns a bag of bags of type + + \((Bag \; (Bag \; E))\) + + . +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of function Sort + + \((\rightarrow \; E \; E \; Bool)\) + +

        +
      • +
      • +

        + + + 2: + + + Term of bag Sort (Bag + + \(E\) + + ) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + BAG_SETOF + + + +  + +
    +
    +

    + Bag setof. +

    +

    + Eliminate duplicates in a given bag. The returned bag contains exactly the +same elements in the given bag, but with multiplicity one. +

    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + BAG_SUBBAG + + + +  + +
    +
    +

    + Bag inclusion predicate. +

    +

    + Determine if multiplicities of the first bag are less than or equal to +multiplicities of the second bag. +

    + +
    +
    +
    +
    + + + BAG_UNION_DISJOINT + + + +  + +
    +
    +

    + Bag disjoint union (sum). +

    + +
    +
    +
    +
    + + + BAG_UNION_MAX + + + +  + +
    +
    +

    + Bag max union. +

    + +
    +
    +
    +
    + + + BITVECTOR_ADD + + + +  + +
    +
    +

    + Addition of two or more bit-vectors. +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of bit-vector Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + BITVECTOR_AND + + + +  + +
    +
    +

    + Bit-wise and. +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of bit-vector Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + BITVECTOR_ASHR + + + +  + +
    +
    +

    + Bit-vector arithmetic shift right. +

    + +
    +
    +
    +
    + + + BITVECTOR_BIT + + + +  + +
    +
    +

    + Retrieves the bit at the given index from a bit-vector as a Bool term. +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of bit-vector Sort +

        +
      • +
      +
    • +
    • +

      + Indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + The bit index +

        +
      • +
      +
    • +
    +
    +

    + Note +

    +

    + May be returned as the result of an API call, but terms of this +kind may not be created explicitly via the API and may not +appear in assertions. +

    +
    +
    +
    +
    +
    + + + BITVECTOR_COMP + + + +  + +
    +
    +

    + Equality comparison (returns bit-vector of size + + + 1 + + + ). +

    + +
    +
    +
    +
    + + + BITVECTOR_CONCAT + + + +  + +
    +
    +

    + Concatenation of two or more bit-vectors. +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of bit-vector Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + BITVECTOR_EXTRACT + + + +  + +
    +
    +

    + Bit-vector extract. +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of bit-vector Sort +

        +
      • +
      +
    • +
    • +

      + Indices: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + The upper bit index. +

        +
      • +
      • +

        + + + 2: + + + The lower bit index. +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + BITVECTOR_FROM_BOOLS + + + +  + +
    +
    +

    + Converts a list of Bool terms to a bit-vector. +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 0 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of Sort Bool +

        +
      • +
      +
    • +
    +
    +

    + Note +

    +

    + May be returned as the result of an API call, but terms of this +kind may not be created explicitly via the API and may not +appear in assertions. +

    +
    +
    +
    +
    +
    + + + BITVECTOR_ITE + + + +  + +
    +
    +

    + Bit-vector if-then-else. +

    +

    + Same semantics as regular ITE, but condition is bit-vector of size + + + 1 + + + . +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of bit-vector Sort of size + + 1 + +

        +
      • +
      • +

        + + + 1..3: + + + Terms of bit-vector sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + BITVECTOR_LSHR + + + +  + +
    +
    +

    + Bit-vector logical shift right. +

    + +
    +
    +
    +
    + + + BITVECTOR_MULT + + + +  + +
    +
    +

    + Multiplication of two or more bit-vectors. +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of bit-vector Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + BITVECTOR_NAND + + + +  + +
    +
    +

    + Bit-wise nand. +

    + +
    +
    +
    +
    + + + BITVECTOR_NEG + + + +  + +
    +
    +

    + Negation of a bit-vector (two’s complement). +

    + +
    +
    +
    +
    + + + BITVECTOR_NEGO + + + +  + +
    +
    +

    + Bit-vector negation overflow detection. +

    + +
    +
    +
    +
    + + + BITVECTOR_NOR + + + +  + +
    +
    +

    + Bit-wise nor. +

    + +
    +
    +
    +
    + + + BITVECTOR_NOT + + + +  + +
    +
    +

    + Bit-wise negation. +

    + +
    +
    +
    +
    + + + BITVECTOR_OR + + + +  + +
    +
    +

    + Bit-wise or. +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of bit-vector Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + BITVECTOR_REDAND + + + +  + +
    +
    +

    + Bit-vector redand. +

    + +
    +
    +
    +
    + + + BITVECTOR_REDOR + + + +  + +
    +
    +

    + Bit-vector redor. +

    + +
    +
    +
    +
    + + + BITVECTOR_REPEAT + + + +  + +
    +
    +

    + Bit-vector repeat. +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of bit-vector Sort +

        +
      • +
      +
    • +
    • +

      + Indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + The number of times to repeat the given term. +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + BITVECTOR_ROTATE_LEFT + + + +  + +
    +
    +

    + Bit-vector rotate left. +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of bit-vector Sort +

        +
      • +
      +
    • +
    • +

      + Indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + The number of bits to rotate the given term left. +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + BITVECTOR_ROTATE_RIGHT + + + +  + +
    +
    +

    + Bit-vector rotate right. +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of bit-vector Sort +

        +
      • +
      +
    • +
    • +

      + Indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + The number of bits to rotate the given term right. +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + BITVECTOR_SADDO + + + +  + +
    +
    +

    + Bit-vector signed addition overflow detection. +

    + +
    +
    +
    +
    + + + BITVECTOR_SDIV + + + +  + +
    +
    +

    + Signed bit-vector division. +

    +

    + Two’s complement signed division of two bit-vectors. If the divisor is +zero and the dividend is positive, the result is all ones. If the divisor +is zero and the dividend is negative, the result is one. +

    + +
    +
    +
    +
    + + + BITVECTOR_SDIVO + + + +  + +
    +
    +

    + Bit-vector signed division overflow detection. +

    + +
    +
    +
    +
    + + + BITVECTOR_SGE + + + +  + +
    +
    +

    + Bit-vector signed greater than or equal. +

    + +
    +
    +
    +
    + + + BITVECTOR_SGT + + + +  + +
    +
    +

    + Bit-vector signed greater than. +

    + +
    +
    +
    +
    + + + BITVECTOR_SHL + + + +  + +
    +
    +

    + Bit-vector shift left. +

    + +
    +
    +
    +
    + + + BITVECTOR_SIGN_EXTEND + + + +  + +
    +
    +

    + Bit-vector sign extension. +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of bit-vector Sort +

        +
      • +
      +
    • +
    • +

      + Indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + The number of bits (of the value of the sign bit) to extend the given term with. +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + BITVECTOR_SLE + + + +  + +
    +
    +

    + Bit-vector signed less than or equal. +

    + +
    +
    +
    +
    + + + BITVECTOR_SLT + + + +  + +
    +
    +

    + Bit-vector signed less than. +

    + +
    +
    +
    +
    + + + BITVECTOR_SLTBV + + + +  + +
    +
    +

    + Bit-vector signed less than returning a bit-vector of size + + + 1 + + + . +

    + +
    +
    +
    +
    + + + BITVECTOR_SMOD + + + +  + +
    +
    +

    + Signed bit-vector remainder (sign follows divisor). +

    +

    + Two’s complement signed remainder where the sign follows the divisor. If +the modulus is zero, the result is the dividend. +

    + +
    +
    +
    +
    + + + BITVECTOR_SMULO + + + +  + +
    +
    +

    + Bit-vector signed multiplication overflow detection. +

    + +
    +
    +
    +
    + + + BITVECTOR_SREM + + + +  + +
    +
    +

    + Signed bit-vector remainder (sign follows dividend). +

    +

    + Two’s complement signed remainder of two bit-vectors where the sign +follows the dividend. If the modulus is zero, the result is the dividend. +

    + +
    +
    +
    +
    + + + BITVECTOR_SSUBO + + + +  + +
    +
    +

    + Bit-vector signed subtraction overflow detection. +

    + +
    +
    +
    +
    + + + BITVECTOR_SUB + + + +  + +
    +
    +

    + Subtraction of two bit-vectors. +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of bit-vector Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + BITVECTOR_TO_NAT + + + +  + +
    +
    +

    + Bit-vector conversion to (non-negative) integer. +

    + +
    +
    +
    +
    + + + BITVECTOR_UADDO + + + +  + +
    +
    +

    + Bit-vector unsigned addition overflow detection. +

    + +
    +
    +
    +
    + + + BITVECTOR_UDIV + + + +  + +
    +
    +

    + Unsigned bit-vector division. +

    +

    + Truncates towards + + + 0 + + + . If the divisor is zero, the result is all ones. +

    + +
    +
    +
    +
    + + + BITVECTOR_UGE + + + +  + +
    +
    +

    + Bit-vector unsigned greater than or equal. +

    + +
    +
    +
    +
    + + + BITVECTOR_UGT + + + +  + +
    +
    +

    + Bit-vector unsigned greater than. +

    + +
    +
    +
    +
    + + + BITVECTOR_ULE + + + +  + +
    +
    +

    + Bit-vector unsigned less than or equal. +

    + +
    +
    +
    +
    + + + BITVECTOR_ULT + + + +  + +
    +
    +

    + Bit-vector unsigned less than. +

    + +
    +
    +
    +
    + + + BITVECTOR_ULTBV + + + +  + +
    +
    +

    + Bit-vector unsigned less than returning a bit-vector of size 1. +

    + +
    +
    +
    +
    + + + BITVECTOR_UMULO + + + +  + +
    +
    +

    + Bit-vector unsigned multiplication overflow detection. +

    + +
    +
    +
    +
    + + + BITVECTOR_UREM + + + +  + +
    +
    +

    + Unsigned bit-vector remainder. +

    +

    + Remainder from unsigned bit-vector division. If the modulus is zero, the +result is the dividend. +

    + +
    +
    +
    +
    + + + BITVECTOR_USUBO + + + +  + +
    +
    +

    + Bit-vector unsigned subtraction overflow detection. +

    + +
    +
    +
    +
    + + + BITVECTOR_XNOR + + + +  + +
    +
    +

    + Bit-wise xnor, left associative. +

    + +
    +
    +
    +
    + + + BITVECTOR_XOR + + + +  + +
    +
    +

    + Bit-wise xor. +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of bit-vector Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + BITVECTOR_ZERO_EXTEND + + + +  + +
    +
    +

    + Bit-vector zero extension. +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of bit-vector Sort +

        +
      • +
      +
    • +
    • +

      + Indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + The number of zeroes to extend the given term with. +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + CARDINALITY_CONSTRAINT + + + +  + +
    +
    +

    + Cardinality constraint on uninterpreted sort. +

    +

    + Interpreted as a predicate that is true when the cardinality of +uinterpreted Sort + + \(S\) + + is less than or equal to an upper bound. +

    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + CONSTANT + + + +  + +
    +
    +

    + Free constant symbol. +

    + +
    +

    + Note +

    +

    + Not permitted in bindings (e.g., + + + + FORALL + + + + , + + + + EXISTS + + + + ). +

    +
    +
    +
    +
    +
    + + + CONST_ARRAY + + + +  + +
    +
    +

    + Constant array. +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of array Sort +

        +
      • +
      • +

        + + + 2: + + + Term of array element Sort (value) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + CONST_BITVECTOR + + + +  + +
    +
    +

    + Fixed-size bit-vector constant. +

    + +
    +
    +
    +
    + + + CONST_BOOLEAN + + + +  + +
    +
    +

    + Boolean constant. +

    + +
    +
    +
    +
    + + + CONST_FINITE_FIELD + + + +  + +
    +
    +

    + Finite field constant. +

    + +
    +
    +
    +
    + + + CONST_FLOATINGPOINT + + + +  + +
    +
    +

    + Floating-point constant, created from IEEE-754 bit-vector representation +of the floating-point value. +

    + +
    +
    +
    +
    + + + CONST_INTEGER + + + +  + +
    +
    +

    + Arbitrary-precision integer constant. +

    + +
    +
    +
    +
    + + + CONST_RATIONAL + + + +  + +
    +
    +

    + Arbitrary-precision rational constant. +

    + +
    +
    +
    +
    + + + CONST_ROUNDINGMODE + + + +  + +
    +
    +

    + RoundingMode constant. +

    + +
    +
    +
    +
    + + + CONST_SEQUENCE + + + +  + +
    +
    +

    + Constant sequence. +

    +

    + A constant sequence is a term that is equivalent to: +

    +
    +
    +
    (seq.++ (seq.unit c1) ... (seq.unit cn))
    +
    +
    +
    +

    + where + + \(n \leq 0\) + + and + + \(c_1, ..., c_n\) + + are constants of some +sort. The elements can be extracted with + + + + Term.getSequenceValue() + + + + . +

    + +
    +
    +
    +
    + + + CONST_STRING + + + +  + +
    +
    +

    + Constant string. +

    + +
    +
    +
    +
    + + + COSECANT + + + +  + +
    +
    +

    + Cosecant function. +

    + +
    +
    +
    +
    + + + COSINE + + + +  + +
    +
    +

    + Cosine function. +

    + +
    +
    +
    +
    + + + COTANGENT + + + +  + +
    +
    +

    + Cotangent function. +

    + +
    +
    +
    +
    + + + DISTINCT + + + +  + +
    +
    +

    + Disequality. +

    + +
    +
    +
    +
    + + + DIVISIBLE + + + +  + +
    +
    +

    + Operator for the divisibility-by- + + \(k\) + + predicate. +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort Int +

        +
      • +
      +
    • +
    • +

      + Indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + The integer + + \(k\) + + to divide by. +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + DIVISION + + + +  + +
    +
    +

    + Real division, division by 0 undefined, left associative. +

    + +
    +
    +
    +
    + + + DIVISION_TOTAL + + + +  + +
    +
    +

    + Real division, division by 0 defined to be 0, left associative. +

    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + EQUAL + + + +  + +
    +
    +

    + Equality, chainable. +

    + +
    +
    +
    +
    + + + EQ_RANGE + + + +  + +
    +
    +

    + Equality over arrays + + \(a\) + + and + + \(b\) + + over a given range + + \([i,j]\) + + , i.e., +

    +
    + \[\forall k . i \leq k \leq j \Rightarrow a[k] = b[k]\] +
    +
      +
    • +

      + Arity: + + + 4 + + +

      +
        +
      • +

        + + + 1: + + + Term of array Sort (first array) +

        +
      • +
      • +

        + + + 2: + + + Term of array Sort (second array) +

        +
      • +
      • +

        + + + 3: + + + Term of array index Sort (lower bound of range, inclusive) +

        +
      • +
      • +

        + + + 4: + + + Term of array index Sort (upper bound of range, inclusive) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +

    + Note +

    +

    + We currently support the creation of array equalities over index +Sorts bit-vector, floating-point, Int and Real. +Requires to enable option + + + arrays-exp + + + . +

    +
    +
    +
    +
    +
    + + + EXISTS + + + +  + +
    +
    +

    + Existentially quantified formula. +

    + +
    +
    +
    +
    + + + EXPONENTIAL + + + +  + +
    +
    +

    + Exponential function. +

    + +
    +
    +
    +
    + + + FINITE_FIELD_ADD + + + +  + +
    +
    +

    + Addition of two or more finite field elements. +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of finite field Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + FINITE_FIELD_BITSUM + + + +  + +
    +
    +

    + Bitsum of two or more finite field elements: x + 2y + 4z + … +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of finite field Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + FINITE_FIELD_MULT + + + +  + +
    +
    +

    + Multiplication of two or more finite field elements. +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of finite field Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + FINITE_FIELD_NEG + + + +  + +
    +
    +

    + Negation of a finite field element (additive inverse). +

    + +
    +
    +
    +
    + + + FLOATINGPOINT_ABS + + + +  + +
    +
    +

    + Floating-point absolute value. +

    + +
    +
    +
    +
    + + + FLOATINGPOINT_ADD + + + +  + +
    +
    +

    + Floating-point addition. +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort RoundingMode +

        +
      • +
      • +

        + + + 2..3: + + + Terms of floating-point Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + FLOATINGPOINT_DIV + + + +  + +
    +
    +

    + Floating-point division. +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort RoundingMode +

        +
      • +
      • +

        + + + 2..3: + + + Terms of floating-point Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + FLOATINGPOINT_EQ + + + +  + +
    +
    +

    + Floating-point equality. +

    + +
    +
    +
    +
    + + + FLOATINGPOINT_FMA + + + +  + +
    +
    +

    + Floating-point fused multiply and add. +

    +
      +
    • +

      + Arity: + + + 4 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort RoundingMode +

        +
      • +
      • +

        + + + 2..4: + + + Terms of floating-point Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + FLOATINGPOINT_FP + + + +  + +
    +
    +

    + Create floating-point literal from bit-vector triple. +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of bit-vector Sort of size + + 1 + + (sign bit) +

        +
      • +
      • +

        + + + 2: + + + Term of bit-vector Sort of exponent size (exponent) +

        +
      • +
      • +

        + + + 3: + + + Term of bit-vector Sort of significand size - 1 (significand without hidden bit) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + FLOATINGPOINT_GEQ + + + +  + +
    +
    +

    + Floating-point greater than or equal. +

    + +
    +
    +
    +
    + + + FLOATINGPOINT_GT + + + +  + +
    +
    +

    + Floating-point greater than. +

    + +
    +
    +
    +
    + + + FLOATINGPOINT_IS_INF + + + +  + +
    +
    +

    + Floating-point is infinite tester. +

    + +
    +
    +
    +
    + + + FLOATINGPOINT_IS_NAN + + + +  + +
    +
    +

    + Floating-point is NaN tester. +

    + +
    +
    +
    +
    + + + FLOATINGPOINT_IS_NEG + + + +  + +
    +
    +

    + Floating-point is negative tester. +

    + +
    +
    +
    +
    + + + FLOATINGPOINT_IS_NORMAL + + + +  + +
    +
    +

    + Floating-point is normal tester. +

    + +
    +
    +
    +
    + + + FLOATINGPOINT_IS_POS + + + +  + +
    +
    +

    + Floating-point is positive tester. +

    + +
    +
    +
    +
    + + + FLOATINGPOINT_IS_SUBNORMAL + + + +  + +
    +
    +

    + Floating-point is sub-normal tester. +

    + +
    +
    +
    +
    + + + FLOATINGPOINT_IS_ZERO + + + +  + +
    +
    +

    + Floating-point is zero tester. +

    + +
    +
    +
    +
    + + + FLOATINGPOINT_LEQ + + + +  + +
    +
    +

    + Floating-point less than or equal. +

    + +
    +
    +
    +
    + + + FLOATINGPOINT_LT + + + +  + +
    +
    +

    + Floating-point less than. +

    + +
    +
    +
    +
    + + + FLOATINGPOINT_MAX + + + +  + +
    +
    +

    + Floating-point maximum. +

    + +
    +
    +
    +
    + + + FLOATINGPOINT_MIN + + + +  + +
    +
    +

    + Floating-point minimum. +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort RoundingMode +

        +
      • +
      • +

        + + + 2: + + + Term of floating-point Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + FLOATINGPOINT_MULT + + + +  + +
    +
    +

    + Floating-point multiply. +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort RoundingMode +

        +
      • +
      • +

        + + + 2..3: + + + Terms of floating-point Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + FLOATINGPOINT_NEG + + + +  + +
    +
    +

    + Floating-point negation. +

    + +
    +
    +
    +
    + + + FLOATINGPOINT_REM + + + +  + +
    +
    +

    + Floating-point remainder. +

    + +
    +
    +
    +
    + + + FLOATINGPOINT_RTI + + + +  + +
    +
    +

    + Floating-point round to integral. +

    + +
    +
    +
    +
    + + + FLOATINGPOINT_SQRT + + + +  + +
    +
    +

    + Floating-point square root. +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort RoundingMode +

        +
      • +
      • +

        + + + 2: + + + Term of floating-point Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + FLOATINGPOINT_SUB + + + +  + +
    +
    +

    + Floating-point sutraction. +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort RoundingMode +

        +
      • +
      • +

        + + + 2..3: + + + Terms of floating-point Sort (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + FLOATINGPOINT_TO_FP_FROM_FP + + + +  + +
    +
    +

    + Conversion to floating-point from floating-point. +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort RoundingMode +

        +
      • +
      • +

        + + + 2: + + + Term of floating-point Sort +

        +
      • +
      +
    • +
    • +

      + Indices: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + The exponent size +

        +
      • +
      • +

        + + + 2: + + + The significand size +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + FLOATINGPOINT_TO_FP_FROM_IEEE_BV + + + +  + +
    +
    +

    + Conversion to floating-point from IEEE-754 bit-vector. +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of bit-vector Sort +

        +
      • +
      +
    • +
    • +

      + Indices: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + The exponent size +

        +
      • +
      • +

        + + + 2: + + + The significand size +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + FLOATINGPOINT_TO_FP_FROM_REAL + + + +  + +
    +
    +

    + Conversion to floating-point from Real. +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort RoundingMode +

        +
      • +
      • +

        + + + 2: + + + Term of Sort Real +

        +
      • +
      +
    • +
    • +

      + Indices: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + The exponent size +

        +
      • +
      • +

        + + + 2: + + + The significand size +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + FLOATINGPOINT_TO_FP_FROM_SBV + + + +  + +
    +
    +

    + Conversion to floating-point from signed bit-vector. +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort RoundingMode +

        +
      • +
      • +

        + + + 2: + + + Term of bit-vector Sort +

        +
      • +
      +
    • +
    • +

      + Indices: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + The exponent size +

        +
      • +
      • +

        + + + 2: + + + The significand size +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + FLOATINGPOINT_TO_FP_FROM_UBV + + + +  + +
    +
    +

    + Conversion to floating-point from unsigned bit-vector. +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort RoundingMode +

        +
      • +
      • +

        + + + 2: + + + Term of bit-vector Sort +

        +
      • +
      +
    • +
    • +

      + Indices: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + The exponent size +

        +
      • +
      • +

        + + + 2: + + + The significand size +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + FLOATINGPOINT_TO_REAL + + + +  + +
    +
    +

    + Conversion to Real from floating-point. +

    + +
    +
    +
    +
    + + + FLOATINGPOINT_TO_SBV + + + +  + +
    +
    +

    + Conversion to signed bit-vector from floating-point. +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort RoundingMode +

        +
      • +
      • +

        + + + 2: + + + Term of floating-point Sort +

        +
      • +
      +
    • +
    • +

      + Indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + The size of the bit-vector to convert to. +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + FLOATINGPOINT_TO_UBV + + + +  + +
    +
    +

    + Conversion to unsigned bit-vector from floating-point. +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort RoundingMode +

        +
      • +
      • +

        + + + 2: + + + Term of floating-point Sort +

        +
      • +
      +
    • +
    • +

      + Indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + The size of the bit-vector to convert to. +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + FORALL + + + +  + +
    +
    +

    + Universally quantified formula. +

    + +
    +
    +
    +
    + + + GEQ + + + +  + +
    +
    +

    + Greater than or equal, chainable. +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of Sort Int or Real (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + GT + + + +  + +
    +
    +

    + Greater than, chainable. +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of Sort Int or Real (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + HO_APPLY + + + +  + +
    +
    +

    + Higher-order applicative encoding of function application, left +associative. +

    +
      +
    • +

      + Arity: + + + n + + + = + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Function Term +

        +
      • +
      • +

        + + + 2: + + + Argument Term of the domain Sort of the function +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + IAND + + + +  + +
    +
    +

    + Integer and. +

    +

    + Operator for bit-wise + + + AND + + + over integers, parameterized by a (positive) +bit-width + + \(k\) + + . +

    +
    +
    +
    ((_ iand k) i_1 i_2)
    +
    +
    +
    +

    + is equivalent to +

    +
    +
    +
    ((_ iand k) i_1 i_2)
    +(bv2int (bvand ((_ int2bv k) i_1) ((_ int2bv k) i_2)))
    +
    +
    +
    +

    + for all integers + + + i_1 + + + , + + + i_2 + + + . +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1..2: + + + Terms of Sort Int +

        +
      • +
      +
    • +
    • +

      + Indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Bit-width + + \(k\) + +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + IMPLIES + + + +  + +
    +
    +

    + Logical implication. +

    + +
    +
    +
    +
    + + + INST_ADD_TO_POOL + + + +  + +
    +
    +

    + A instantantiation-add-to-pool annotation. +

    +

    + An instantantiation-add-to-pool annotation indicates that when a quantified +formula is instantiated, the instantiated version of a term should be +added to the given pool. +

    +

    + For example, consider a quantified formula: +

    +
    +
    +
    (FORALL (VARIABLE_LIST x) F
    +        (INST_PATTERN_LIST (INST_ADD_TO_POOL (ADD x 1) p)))
    +
    +
    +
    +

    + where assume that + + \(x\) + + has type Int. When this quantified formula is +instantiated with, e.g., the term + + \(t\) + + , the term + + + (ADD + + + t + + + 1) + + + is +added to pool + + \(p\) + + . +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + The Term whose free variables are bound by the quantified formula. +

        +
      • +
      • +

        + + + 2: + + + The pool to add to, whose Sort should be a set of elements that match the Sort of the first argument. +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +

    + Note +

    +

    + Should only be used as a child of + + + + INST_PATTERN_LIST + + + + . +

    +
    +
    +
    +
    +
    + + + INST_ATTRIBUTE + + + +  + +
    +
    +

    + Instantiation attribute. +

    +

    + Specifies a custom property for a quantified formula given by a +term that is ascribed a user attribute. +

    + +
    +

    + Note +

    +

    + Should only be used as a child of + + + + INST_PATTERN_LIST + + + + . +

    +
    +
    +
    +
    +
    + + + INST_NO_PATTERN + + + +  + +
    +
    +

    + Instantiation no-pattern. +

    +

    + Specifies a (list of) terms that should not be used as a pattern for +quantifier instantiation. +

    + +
    +

    + Note +

    +

    + Should only be used as a child of + + + + INST_PATTERN_LIST + + + + . +

    +
    +
    +
    +
    +
    + + + INST_PATTERN + + + +  + +
    +
    +

    + Instantiation pattern. +

    +

    + Specifies a (list of) terms to be used as a pattern for quantifier +instantiation. +

    + +
    +

    + Note +

    +

    + Should only be used as a child of + + + + INST_PATTERN_LIST + + + + . +

    +
    +
    +
    +
    +
    + + + INST_PATTERN_LIST + + + +  + +
    +
    +

    + A list of instantiation patterns, attributes or annotations. +

    + +
    +
    +
    +
    + + + INST_POOL + + + +  + +
    +
    +

    + Instantiation pool annotation. +

    +

    + Specifies an annotation for pool based instantiation. +

    +
    +
    + In detail, pool symbols can be declared via the method +
    +
    + +
    +
    +

    + A pool symbol represents a set of terms of a given sort. An instantiation +pool annotation should either: +(1) have child sets matching the types of the quantified formula, +(2) have a child set of tuple type whose component types match the types +of the quantified formula. +

    +

    + For an example of (1), for a quantified formula: +

    +
    +
    +
    (FORALL (VARIABLE_LIST x y) F (INST_PATTERN_LIST (INST_POOL p q)))
    +
    +
    +
    +

    + if + + \(x\) + + and + + \(y\) + + have Sorts + + \(S_1\) + + and + + \(S_2\) + + , then +pool symbols + + \(p\) + + and + + \(q\) + + should have Sorts (Set + + \(S_1\) + + ) +and (Set + + \(S_2\) + + ), respectively. This annotation specifies that the +quantified formula above should be instantiated with the product of all +terms that occur in the sets + + \(p\) + + and + + \(q\) + + . +

    +

    + Alternatively, as an example of (2), for a quantified formula: +

    +
    +
    +
    (FORALL (VARIABLE_LIST x y) F (INST_PATTERN_LIST (INST_POOL s)))
    +
    +
    +
    +

    + + \(s\) + + should have Sort (Set (Tuple + + \(S_1\) + + + \(S_2\) + + )). This +annotation specifies that the quantified formula above should be +instantiated with the pairs of values in + + \(s\) + + . +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 0 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms that comprise the pools, which are one-to-one with the variables of the quantified formula to be instantiated +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +

    + Note +

    +

    + Should only be used as a child of + + + + INST_PATTERN_LIST + + + + . +

    +
    +
    +
    +
    +
    + + + INTERNAL_KIND + + + +  + +
    +
    +

    + Internal kind. +

    +

    + This kind serves as an abstraction for internal kinds that are not exposed +via the API but may appear in terms returned by API functions, e.g., +when querying the simplified form of a term. +

    +
    +

    + Note +

    +

    + Should never be created via the API. +

    +
    +
    +
    +
    +
    + + + INTS_DIVISION + + + +  + +
    +
    +

    + Integer division, division by 0 undefined, left associative. +

    + +
    +
    +
    +
    + + + INTS_DIVISION_TOTAL + + + +  + +
    +
    +

    + Integer division, division by 0 defined to be 0, left associative. +

    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + INTS_MODULUS + + + +  + +
    +
    +

    + Integer modulus, modulus by 0 undefined. +

    + +
    +
    +
    +
    + + + INTS_MODULUS_TOTAL + + + +  + +
    +
    +

    + Integer modulus, t modulus by 0 defined to be t. +

    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + INT_TO_BITVECTOR + + + +  + +
    +
    +

    + Conversion from Int to bit-vector. +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort Int +

        +
      • +
      +
    • +
    • +

      + Indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + The size of the bit-vector to convert to. +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + IS_INTEGER + + + +  + +
    +
    +

    + Is-integer predicate. +

    + +
    +
    +
    +
    + + + ITE + + + +  + +
    +
    +

    + If-then-else. +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort Bool +

        +
      • +
      • +

        + + + 2: + + + The ‘then’ term, Term of any Sort +

        +
      • +
      • +

        + + + 3: + + + The ‘else’ term, Term of the same sort as second argument +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + LAMBDA + + + +  + +
    +
    +

    + Lambda expression. +

    + +
    +
    +
    +
    + + + LAST_KIND + + + +  + +
    +
    +

    + Marks the upper-bound of this enumeration. +

    +
    +
    +
    +
    + + + LEQ + + + +  + +
    +
    +

    + Less than or equal, chainable. +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of Sort Int or Real (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + LT + + + +  + +
    +
    +

    + Less than, chainable. +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of Sort Int or Real (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + MATCH + + + +  + +
    +
    +

    + Match expression. +

    +

    + This kind is primarily used in the parser to support the +SMT-LIBv2 + + + match + + + expression. +

    +

    + For example, the SMT-LIBv2 syntax for the following match term +

    +
    +
    +
    (match l (((cons h t) h) (nil 0)))
    +
    +
    +
    +

    + is represented by the AST +

    +
    +
    +
    (MATCH l
    +    (MATCH_BIND_CASE (VARIABLE_LIST h t) (cons h t) h)
    +    (MATCH_CASE nil 0))
    +
    +
    +
    +

    + Terms of kind + + + + MATCH_CASE + + + + are constant case expressions, +which are used for nullary constructors. Kind + + + + MATCH_BIND_CASE + + + + is used for constructors with selectors +and variable match patterns. If not all constructors are covered, at least +one catch-all variable pattern must be included. +

    + +
    +
    +
    +
    + + + MATCH_BIND_CASE + + + +  + +
    +
    +

    + Match case with binders, for constructors with selectors and variable +patterns. +

    +

    + A (non-constant) case expression to be used within a match expression. +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + For variable patterns: +

        +
          +
        • +

          + + + 1: + + + Term of kind + + + + VARIABLE_LIST + + + + (containing the free variable of the case) +

          +
        • +
        • +

          + + + 2: + + + Term of kind + + + + VARIABLE + + + + (the pattern expression, the free variable of the case) +

          +
        • +
        • +

          + + + 3: + + + Term of any Sort (the term the pattern evaluates to) +

          +
        • +
        +
      • +
      • +

        + For constructors with selectors: +

        +
          +
        • +

          + + + 1: + + + Term of kind + + + + VARIABLE_LIST + + + + (containing the free variable of the case) +

          +
        • +
        • +

          + + + 2: + + + Term of kind + + + + APPLY_CONSTRUCTOR + + + + (the pattern expression, applying the set of variables to the constructor) +

          +
        • +
        • +

          + + + 3: + + + Term of any Sort (the term the match term evaluates to) +

          +
        • +
        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + MATCH_CASE + + + +  + +
    +
    +

    + Match case for nullary constructors. +

    +

    + A (constant) case expression to be used within a match expression. +

    + +
    +
    +
    +
    + + + MULT + + + +  + +
    +
    +

    + Arithmetic multiplication. +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of Sort Int or Real (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + NEG + + + +  + +
    +
    +

    + Arithmetic negation. +

    + +
    +
    +
    +
    + + + NOT + + + +  + +
    +
    +

    + Logical negation. +

    + +
    +
    +
    +
    + + + NULLABLE_LIFT + + + +  + +
    +
    +

    + Lifting operator for nullable terms. +This operator lifts a built-in operator or a user-defined function +to nullable terms. +For built-in kinds use mkNullableLift. +For user-defined functions use mkTerm. +

    + +
    +
    +
    +
    + + + NULL_TERM + + + +  + +
    +
    +

    + Null kind. +

    +

    + The kind of a null term ( + + + Term.Term() + + + ). +

    +
    +

    + Note +

    +

    + May not be explicitly created via API functions other than + + + Term.Term() + + + . +

    +
    +
    +
    +
    +
    + + + OR + + + +  + +
    +
    +

    + Logical disjunction. +

    + +
    +
    +
    +
    + + + PI + + + +  + +
    +
    +

    + Pi constant. +

    + +
    +

    + Note +

    +

    + + + + PI + + + + is considered a special symbol of Sort +Real, but is not a Real value, i.e., + + + + Term.isRealValue() + + + + will return + + + false + + + . +

    +
    +
    +
    +
    +
    + + + POW + + + +  + +
    +
    +

    + Arithmetic power. +

    + +
    +
    +
    +
    + + + POW2 + + + +  + +
    +
    +

    + Power of two. +

    +

    + Operator for raising + + + 2 + + + to a non-negative integer power. +

    + +
    +
    +
    +
    + + + REGEXP_ALL + + + +  + +
    +
    +

    + Regular expression all. +

    + +
    +
    +
    +
    + + + REGEXP_ALLCHAR + + + +  + +
    +
    +

    + Regular expression all characters. +

    + +
    +
    +
    +
    + + + REGEXP_COMPLEMENT + + + +  + +
    +
    +

    + Regular expression complement. +

    + +
    +
    +
    +
    + + + REGEXP_CONCAT + + + +  + +
    +
    +

    + Regular expression concatenation. +

    + +
    +
    +
    +
    + + + REGEXP_DIFF + + + +  + +
    +
    +

    + Regular expression difference. +

    + +
    +
    +
    +
    + + + REGEXP_INTER + + + +  + +
    +
    +

    + Regular expression intersection. +

    + +
    +
    +
    +
    + + + REGEXP_LOOP + + + +  + +
    +
    +

    + Regular expression loop. +

    +

    + Regular expression loop from lower bound to upper bound number of +repetitions. +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort RegLan +

        +
      • +
      +
    • +
    • +

      + Indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + The lower bound +

        +
      • +
      • +

        + + + 2: + + + The upper bound +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + REGEXP_NONE + + + +  + +
    +
    +

    + Regular expression none. +

    + +
    +
    +
    +
    + + + REGEXP_OPT + + + +  + +
    +
    +

    + Regular expression ?. +

    + +
    +
    +
    +
    + + + REGEXP_PLUS + + + +  + +
    +
    +

    + Regular expression +. +

    + +
    +
    +
    +
    + + + REGEXP_RANGE + + + +  + +
    +
    +

    + Regular expression range. +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String (lower bound character for the range) +

        +
      • +
      • +

        + + + 2: + + + Term of Sort String (upper bound character for the range) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + REGEXP_REPEAT + + + +  + +
    +
    +

    + Operator for regular expression repeat. +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort RegLan +

        +
      • +
      +
    • +
    • +

      + Indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + The number of repetitions +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + REGEXP_STAR + + + +  + +
    +
    +

    + Regular expression *. +

    + +
    +
    +
    +
    + + + REGEXP_UNION + + + +  + +
    +
    +

    + Regular expression union. +

    + +
    +
    +
    +
    + + + RELATION_AGGREGATE + + + +  + +
    +
    +

    + Relation aggregate operator has the form + + \(((\_ \; rel.aggr \; n_1 ... n_k) \; f \; i \; A)\) + + where + + \(n_1, ..., n_k\) + + are natural numbers, + + \(f\) + + is a function of type + + \((\rightarrow (Tuple \; T_1 \; ... \; T_j)\; T \; T)\) + + , + + \(i\) + + has the type + + \(T\) + + , +and + + \(A\) + + has type + + \((Relation \; T_1 \; ... \; T_j)\) + + . +The returned type is + + \((Set \; T)\) + + . +

    +

    + This operator aggregates elements in A that have the same tuple projection +with indices n_1, …, n_k using the combining function + + \(f\) + + , +and initial value + + \(i\) + + . +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of sort + + \((\rightarrow (Tuple \; T_1 \; ... \; T_j)\; T \; T)\) + +

        +
      • +
      • +

        + + + 2: + + + Term of Sort + + \(T\) + +

        +
      • +
      • +

        + + + 3: + + + Term of relation sort + + \(Relation T_1 ... T_j\) + +

        +
      • +
      +
    • +
    • +

      + Indices: + + + n + + + - + + + 1..n: + + + Indices of the projection +

      +
    • +
    • +

      + Create Term of this Kind with: +- + + + + Solver.mkTerm() + + + +

      +
    • +
    • +

      + Create Op of this kind with: +- + + + + Solver.mkOp() + + + +

      +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + RELATION_GROUP + + + +  + +
    +
    +

    + Relation group +

    +

    + + \(((\_ \; rel.group \; n_1 \; \dots \; n_k) \; A)\) + + partitions tuples +of relation + + \(A\) + + such that tuples that have the same projection +with indices + + \(n_1 \; \dots \; n_k\) + + are in the same part. +It returns a set of relations of type + + \((Set \; T)\) + + where + + \(T\) + + is the type of + + \(A\) + + . +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of relation sort +

        +
      • +
      +
    • +
    • +

      + Indices: + + + n + + +

      +
        +
      • +

        + + + 1..n: + + + Indices of the projection +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + RELATION_IDEN + + + +  + +
    +
    +

    + Relation identity. +

    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + RELATION_JOIN + + + +  + +
    +
    +

    + Relation join. +

    + +
    +
    +
    +
    + + + RELATION_JOIN_IMAGE + + + +  + +
    +
    +

    + Relation join image. +

    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + RELATION_PRODUCT + + + +  + +
    +
    +

    + Relation cartesian product. +

    + +
    +
    +
    +
    + + + RELATION_PROJECT + + + +  + +
    +
    +

    + Relation projection operator extends tuple projection operator to sets. +

    +
      +
    • +

      + Arity: + + + 1 + + + - + + + 1: + + + Term of relation Sort +

      +
    • +
    • +

      + Indices: + + + n + + + - + + + 1..n: + + + Indices of the projection +

      +
    • +
    • +

      + Create Term of this Kind with: +- + + + + Solver.mkTerm() + + + +

      +
    • +
    • +

      + Create Op of this kind with: +- + + + + Solver.mkOp() + + + +

      +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + RELATION_TABLE_JOIN + + + +  + +
    +
    +
    +
    + Table join operator for relations has the form +
    +
    +

    + + \(((\_ \; rel.table\_join \; m_1 \; n_1 \; \dots \; m_k \; n_k) \; A \; B)\) + + where + + \(m_1 \; n_1 \; \dots \; m_k \; n_k\) + + are natural numbers, +and + + \(A, B\) + + are relations. +This operator filters the product of two sets based on the equality of +projected tuples using indices + + \(m_1, \dots, m_k\) + + in relation + + \(A\) + + , +and indices + + \(n_1, \dots, n_k\) + + in relation + + \(B\) + + . +

    +
    +
    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of relation Sort +

        +
      • +
      • +

        + + + 2: + + + Term of relation Sort +

        +
      • +
      +
    • +
    • +

      + Indices: + + + n + + + - + + + 1..n: + + + Indices of the projection +

      +
    • +
    • +

      + Create Term of this Kind with: +- + + + + Solver.mkTerm() + + + +

      +
    • +
    • +

      + Create Op of this kind with: +- + + + + Solver.mkOp() + + + +

      +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + RELATION_TCLOSURE + + + +  + +
    +
    +

    + Relation transitive closure. +

    + +
    +
    +
    +
    + + + RELATION_TRANSPOSE + + + +  + +
    +
    +

    + Relation transpose. +

    + +
    +
    +
    +
    + + + SECANT + + + +  + +
    +
    +

    + Secant function. +

    + +
    +
    +
    +
    + + + SELECT + + + +  + +
    +
    +

    + Array select. +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of array Sort +

        +
      • +
      • +

        + + + 2: + + + Term of array index Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + SEP_EMP + + + +  + +
    +
    +

    + Separation logic empty heap. +

    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + SEP_NIL + + + +  + +
    +
    +

    + Separation logic nil. +

    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + SEP_PTO + + + +  + +
    +
    +

    + Separation logic points-to relation. +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term denoting the location of the points-to constraint +

        +
      • +
      • +

        + + + 2: + + + Term denoting the data of the points-to constraint +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + SEP_STAR + + + +  + +
    +
    +

    + Separation logic star. +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
        +
      • +
        +
        + + + 1..n: + + + Terms of sort Bool (the child constraints that hold in +
        +
        +

        + disjoint (separated) heaps) +

        +
        +
        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + SEP_WAND + + + +  + +
    +
    +

    + Separation logic magic wand. +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Terms of Sort Bool (the antecendant of the magic wand constraint) +

        +
      • +
      • +
        +
        + + + 2: + + + Terms of Sort Bool (conclusion of the magic wand constraint, +
        +
        +

        + which is asserted to hold in all heaps that are disjoint +extensions of the antecedent) +

        +
        +
        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + SEQ_AT + + + +  + +
    +
    +

    + Sequence element at. +

    +

    + Returns the element at index + + \(i\) + + from a sequence + + \(s\) + + . If the index +is negative or the index is greater or equal to the length of the +sequence, the result is the empty sequence. Otherwise the result is a +sequence of length + + + 1 + + + . +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of sequence Sort +

        +
      • +
      • +

        + + + 2: + + + Term of Sort Int (index + + \(i\) + + ) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + SEQ_CONCAT + + + +  + +
    +
    +

    + Sequence concat. +

    + +
    +
    +
    +
    + + + SEQ_CONTAINS + + + +  + +
    +
    +

    + Sequence contains. +

    +

    + Checks whether a sequence + + \(s_1\) + + contains another sequence + + \(s_2\) + + . If + + \(s_2\) + + is empty, the result is always + + + true + + + . +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of sequence Sort ( + + \(s_1\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of sequence Sort ( + + \(s_2\) + + ) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + SEQ_EXTRACT + + + +  + +
    +
    +

    + Sequence extract. +

    +

    + Extracts a subsequence, starting at index + + \(i\) + + and of length + + \(l\) + + , +from a sequence + + \(s\) + + . If the start index is negative, the start index +is greater than the length of the sequence, or the length is negative, the +result is the empty sequence. +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of sequence Sort +

        +
      • +
      • +

        + + + 2: + + + Term of Sort Int (index + + \(i\) + + ) +

        +
      • +
      • +

        + + + 3: + + + Term of Sort Int (length + + \(l\) + + ) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + SEQ_INDEXOF + + + +  + +
    +
    +

    + Sequence index-of. +

    +

    + Returns the index of a subsequence + + \(s_2\) + + in a sequence + + \(s_1\) + + starting at index + + \(i\) + + . If the index is negative or greater than the +length of sequence + + \(s_1\) + + or the subsequence + + \(s_2\) + + does not +appear in sequence + + \(s_1\) + + after index + + \(i\) + + , the result is -1. +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of sequence Sort ( + + \(s_1\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of sequence Sort ( + + \(s_2\) + + ) +

        +
      • +
      • +

        + + + 3: + + + Term of Sort Int ( + + \(i\) + + ) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + SEQ_LENGTH + + + +  + +
    +
    +

    + Sequence length. +

    + +
    +
    +
    +
    + + + SEQ_NTH + + + +  + +
    +
    +

    + Sequence nth. +

    +

    + Corresponds to the nth element of a sequence. +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of sequence Sort +

        +
      • +
      • +

        + + + 2: + + + Term of Sort Int ( + + \(n\) + + ) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + SEQ_PREFIX + + + +  + +
    +
    +

    + Sequence prefix-of. +

    +

    + Checks whether a sequence + + \(s_1\) + + is a prefix of sequence + + \(s_2\) + + . +If sequence + + \(s_1\) + + is empty, this operator returns + + + true + + + . +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of sequence Sort ( + + \(s_1\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of sequence Sort ( + + \(s_2\) + + ) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + SEQ_REPLACE + + + +  + +
    +
    +

    + Sequence replace. +

    +

    + Replaces the first occurrence of a sequence + + \(s_2\) + + in a +sequence + + \(s_1\) + + with sequence + + \(s_3\) + + . If + + \(s_2\) + + does not +appear in + + \(s_1\) + + , + + \(s_1\) + + is returned unmodified. +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of sequence Sort ( + + \(s_1\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of sequence Sort ( + + \(s_2\) + + ) +

        +
      • +
      • +

        + + + 3: + + + Term of sequence Sort ( + + \(s_3\) + + ) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + SEQ_REPLACE_ALL + + + +  + +
    +
    +

    + Sequence replace all. +

    +

    + Replaces all occurrences of a sequence + + \(s_2\) + + in a sequence + + \(s_1\) + + with sequence + + \(s_3\) + + . If + + \(s_2\) + + does not appear in + + \(s_1\) + + , sequence + + \(s_1\) + + is returned unmodified. +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of sequence Sort ( + + \(s_1\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of sequence Sort ( + + \(s_2\) + + ) +

        +
      • +
      • +

        + + + 3: + + + Term of sequence Sort ( + + \(s_3\) + + ) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + SEQ_REV + + + +  + +
    +
    +

    + Sequence reverse. +

    + +
    +
    +
    +
    + + + SEQ_SUFFIX + + + +  + +
    +
    +

    + Sequence suffix-of. +

    +

    + Checks whether a sequence + + \(s_1\) + + is a suffix of sequence + + \(s_2\) + + . +If sequence + + \(s_1\) + + is empty, this operator returns + + + true + + + . +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of sequence Sort ( + + \(s_1\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of sequence Sort ( + + \(s_2\) + + ) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + SEQ_UNIT + + + +  + +
    +
    +

    + Sequence unit. +

    +

    + Corresponds to a sequence of length one with the given term. +

    + +
    +
    +
    +
    + + + SEQ_UPDATE + + + +  + +
    +
    +

    + Sequence update. +

    +

    + Updates a sequence + + \(s\) + + by replacing its context starting at an index +with string + + \(t\) + + . If the start index is negative, the start index is +greater than the length of the sequence, the result is + + \(s\) + + . +Otherwise, the length of the original sequence is preserved. +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of sequence Sort +

        +
      • +
      • +

        + + + 2: + + + Term of Sort Int (index + + \(i\) + + ) +

        +
      • +
      • +

        + + + 3: + + + Term of sequence Sort (replacement sequence + + \(t\) + + ) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + SET_ALL + + + +  + +
    +
    +

    + Set all. +

    +

    + This operator checks whether all elements of a set satisfy a predicate. +(set.all + + \(p \; A\) + + ) takes a predicate + + \(p\) + + of Sort + + \((\rightarrow T \; Bool)\) + + as a first argument, and a set + + \(A\) + + of Sort (Set + + \(T\) + + ) as a second argument, and returns true iff all +elements of + + \(A\) + + satisfy predicate + + \(p\) + + . +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of function Sort + + \((\rightarrow T \; Bool)\) + +

        +
      • +
      • +

        + + + 2: + + + Term of bag Sort (Set + + \(T\) + + ) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + SET_CARD + + + +  + +
    +
    +

    + Set cardinality. +

    + +
    +
    +
    +
    + + + SET_CHOOSE + + + +  + +
    +
    +

    + Set choose. +

    +

    + Select an element from a given set. For a set + + \(A = \{x\}\) + + , the term +(set.choose + + \(A\) + + ) is equivalent to the term + + \(x_1\) + + . For an empty +set, it is an arbitrary value. For a set with cardinality > 1, it will +deterministically return an element in + + \(A\) + + . +

    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + SET_COMPLEMENT + + + +  + +
    +
    +

    + Set complement with respect to finite universe. +

    + +
    +
    +
    +
    + + + SET_COMPREHENSION + + + +  + +
    +
    +

    + Set comprehension +

    +

    + A set comprehension is specified by a variable list + + \(x_1 ... x_n\) + + , +a predicate + + \(P[x_1...x_n]\) + + , and a term + + \(t[x_1...x_n]\) + + . A +comprehension + + \(C\) + + with the above form has members given by the +following semantics: +

    +
    + \[\forall y. ( \exists x_1...x_n. P[x_1...x_n] \wedge t[x_1...x_n] = y ) +\Leftrightarrow (set.member \; y \; C)\] +
    +

    + where + + \(y\) + + ranges over the element Sort of the (set) Sort of the +comprehension. If + + \(t[x_1..x_n]\) + + is not provided, it is equivalent +to + + \(y\) + + in the above formula. +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of Kind + + + + VARIABLE_LIST + + + +

        +
      • +
      • +

        + + + 2: + + + Term of sort Bool (the predicate of the comprehension) +

        +
      • +
      • +

        + + + 3: + + + (optional) Term denoting the generator for the comprehension +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + SET_EMPTY + + + +  + +
    +
    +

    + Empty set. +

    + +
    +
    +
    +
    + + + SET_FILTER + + + +  + +
    +
    +

    + Set filter. +

    +

    + This operator filters the elements of a set. +(set.filter + + \(p \; A\) + + ) takes a predicate + + \(p\) + + of Sort + + \((\rightarrow T \; Bool)\) + + as a first argument, and a set + + \(A\) + + of Sort (Set + + \(T\) + + ) as a second argument, and returns a subset of Sort +(Set + + \(T\) + + ) that includes all elements of + + \(A\) + + that satisfy + + \(p\) + + . +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of function Sort + + \((\rightarrow T \; Bool)\) + +

        +
      • +
      • +

        + + + 2: + + + Term of bag Sort (Set + + \(T\) + + ) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + SET_FOLD + + + +  + +
    +
    +

    + Set fold. +

    +

    + This operator combines elements of a set into a single value. +(set.fold + + \(f \; t \; A\) + + ) folds the elements of set + + \(A\) + + starting with Term + + \(t\) + + and using the combining function + + \(f\) + + . +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of function Sort + + \((\rightarrow S_1 \; S_2 \; S_2)\) + +

        +
      • +
      • +

        + + + 2: + + + Term of Sort + + \(S_2\) + + (the initial value) +

        +
      • +
      • +

        + + + 3: + + + Term of bag Sort (Set + + \(S_1\) + + ) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + SET_INSERT + + + +  + +
    +
    +

    + The set obtained by inserting elements; +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 0 + + +

      +
        +
      • +

        + + + 1..n-1: + + + Terms of any Sort (must match the element sort of the given set Term) +

        +
      • +
      • +

        + + + n: + + + Term of set Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + SET_INTER + + + +  + +
    +
    +

    + Set intersection. +

    + +
    +
    +
    +
    + + + SET_IS_EMPTY + + + +  + +
    +
    +

    + Set is empty tester. +

    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + SET_IS_SINGLETON + + + +  + +
    +
    +

    + Set is singleton tester. +

    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + SET_MAP + + + +  + +
    +
    +

    + Set map. +

    +

    + This operator applies the first argument, a function of +Sort + + \((\rightarrow S_1 \; S_2)\) + + , to every element of the second +argument, a set of Sort (Set + + \(S_1\) + + ), and returns a set of Sort +(Set + + \(S_2\) + + ). +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of function Sort + + \((\rightarrow S_1 \; S_2)\) + +

        +
      • +
      • +

        + + + 2: + + + Term of set Sort (Set + + \(S_1\) + + ) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + SET_MEMBER + + + +  + +
    +
    +

    + Set membership predicate. +

    +

    + Determines if the given set element is a member of the second set. +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of any Sort (must match the element Sort of the given set Term) +

        +
      • +
      • +

        + + + 2: + + + Term of set Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + SET_MINUS + + + +  + +
    +
    +

    + Set subtraction. +

    + +
    +
    +
    +
    + + + SET_SINGLETON + + + +  + +
    +
    +

    + Singleton set. +

    +

    + Construct a singleton set from an element given as a parameter. +The returned set has the same Sort as the element. +

    + +
    +
    +
    +
    + + + SET_SOME + + + +  + +
    +
    +

    + Set some. +

    +

    + This operator checks whether at least one element of a set satisfies a predicate. +(set.some + + \(p \; A\) + + ) takes a predicate + + \(p\) + + of Sort + + \((\rightarrow T \; Bool)\) + + as a first argument, and a set + + \(A\) + + of Sort (Set + + \(T\) + + ) as a second argument, and returns true iff at least +one element of + + \(A\) + + satisfies predicate + + \(p\) + + . +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of function Sort + + \((\rightarrow T \; Bool)\) + +

        +
      • +
      • +

        + + + 2: + + + Term of bag Sort (Set + + \(T\) + + ) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + SET_SUBSET + + + +  + +
    +
    +

    + Subset predicate. +

    +

    + Determines if the first set is a subset of the second set. +

    + +
    +
    +
    +
    + + + SET_UNION + + + +  + +
    +
    +

    + Set union. +

    + +
    +
    +
    +
    + + + SET_UNIVERSE + + + +  + +
    +
    +

    + Finite universe set. +

    +

    + All set variables must be interpreted as subsets of it. +

    + +
    +

    + Note +

    +

    + + + + SET_UNIVERSE + + + + is considered a special symbol of +the theory of sets and is not considered as a set value, i.e., + + + + Term.isSetValue() + + + + will return + + + false + + + . +

    +
    +
    +
    +
    +
    + + + SEXPR + + + +  + +
    +
    +

    + Symbolic expression. +

    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + SINE + + + +  + +
    +
    +

    + Sine function. +

    + +
    +
    +
    +
    + + + SKOLEM + + + +  + +
    +
    +

    + A Skolem. +

    +
    +

    + Note +

    +

    + Represents an internally generated term. Information on the +

    +
    +

    + skolem is available via the calls + + Solver::getSkolemId + + and + + Solver::getSkolemIndices + + . +

    +
    +
    +
    +
    + + + SKOLEM_ADD_TO_POOL + + + +  + +
    +
    +

    + A skolemization-add-to-pool annotation. +

    +

    + An skolemization-add-to-pool annotation indicates that when a quantified +formula is skolemized, the skolemized version of a term should be added to +the given pool. +

    +

    + For example, consider a quantified formula: +

    +
    +
    +
    (FORALL (VARIABLE_LIST x) F
    +        (INST_PATTERN_LIST (SKOLEM_ADD_TO_POOL (ADD x 1) p)))
    +
    +
    +
    +

    + where assume that + + \(x\) + + has type Int. When this quantified formula is +skolemized, e.g., with + + \(k\) + + of type Int, then the term + + + (ADD + + + k + + + 1) + + + is added to the pool + + \(p\) + + . +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + The Term whose free variables are bound by the quantified formula. +

        +
      • +
      • +

        + + + 2: + + + The pool to add to, whose Sort should be a set of elements that match the Sort of the first argument. +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +

    + Note +

    +

    + Should only be used as a child of + + + + INST_PATTERN_LIST + + + + . +

    +
    +
    +
    +
    +
    + + + SQRT + + + +  + +
    +
    +

    + Square root. +

    +

    + If the argument + + x + + is non-negative, then this returns a non-negative value + + y + + such that + + y * y = x + + . +

    + +
    +
    +
    +
    + + + STORE + + + +  + +
    +
    +

    + Array store. +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of array Sort +

        +
      • +
      • +

        + + + 2: + + + Term of array index Sort +

        +
      • +
      • +

        + + + 3: + + + Term of array element Sort +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + STRING_CHARAT + + + +  + +
    +
    +

    + String character at. +

    +

    + Returns the character at index + + \(i\) + + from a string + + \(s\) + + . If the +index is negative or the index is greater than the length of the string, +the result is the empty string. Otherwise the result is a string of +length 1. +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String (string + + \(s\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of Sort Int (index + + \(i\) + + ) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + STRING_CONCAT + + + +  + +
    +
    +

    + String concat. +

    + +
    +
    +
    +
    + + + STRING_CONTAINS + + + +  + +
    +
    +

    + String contains. +

    +

    + Determines whether a string + + \(s_1\) + + contains another string + + \(s_2\) + + . If + + \(s_2\) + + is empty, the result is always + + + true + + + . +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String (the string + + \(s_1\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of Sort String (the string + + \(s_2\) + + ) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + STRING_FROM_CODE + + + +  + +
    +
    +

    + String from code. +

    +

    + Returns a string containing a single character whose code point matches +the argument to this function, or the empty string if the argument is +out-of-bounds. +

    + +
    +
    +
    +
    + + + STRING_FROM_INT + + + +  + +
    +
    +

    + Conversion from Int to String. +

    +

    + If the integer is negative this operator returns the empty string. +

    + +
    +
    +
    +
    + + + STRING_INDEXOF + + + +  + +
    +
    +

    + String index-of. +

    +

    + Returns the index of a substring + + \(s_2\) + + in a string + + \(s_1\) + + starting at index + + \(i\) + + . If the index is negative or greater than the +length of string + + \(s_1\) + + or the substring + + \(s_2\) + + does not appear +in string + + \(s_1\) + + after index + + \(i\) + + , the result is -1. +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String (substring + + \(s_1\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of Sort String (substring + + \(s_2\) + + ) +

        +
      • +
      • +

        + + + 3: + + + Term of Sort Int (index + + \(i\) + + ) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + STRING_INDEXOF_RE + + + +  + +
    +
    +

    + String index-of regular expression match. +

    +

    + Returns the first match of a regular expression + + \(r\) + + in a +string + + \(s\) + + . If the index is negative or greater than the length of +string + + \(s_1\) + + , or + + \(r\) + + does not match a substring in + + \(s\) + + after index + + \(i\) + + , the result is -1. +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String (string + + \(s\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of Sort RegLan (regular expression + + \(r\) + + ) +

        +
      • +
      • +

        + + + 3: + + + Term of Sort Int (index + + \(i\) + + ) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + STRING_IN_REGEXP + + + +  + +
    +
    +

    + String membership. +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String +

        +
      • +
      • +

        + + + 2: + + + Term of Sort RegLan +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + STRING_IS_DIGIT + + + +  + +
    +
    +

    + String is-digit. +

    +

    + Returns true if given string is a digit (it is one of + + + "0" + + + , …, + + + "9" + + + ). +

    + +
    +
    +
    +
    + + + STRING_LENGTH + + + +  + +
    +
    +

    + String length. +

    + +
    +
    +
    +
    + + + STRING_LEQ + + + +  + +
    +
    +

    + String less than or equal. +

    +

    + Returns true if string + + \(s_1\) + + is less than or equal to + + \(s_2\) + + based on a lexiographic ordering over code points. +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String ( + + \(s_1\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of Sort String ( + + \(s_2\) + + ) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + STRING_LT + + + +  + +
    +
    +

    + String less than. +

    +

    + Returns true if string + + \(s_1\) + + is (strictly) less than + + \(s_2\) + + based on a lexiographic ordering over code points. +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String ( + + \(s_1\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of Sort String ( + + \(s_2\) + + ) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + STRING_PREFIX + + + +  + +
    +
    +

    + String prefix-of. +

    +

    + Determines whether a string + + \(s_1\) + + is a prefix of string + + \(s_2\) + + . +If string s1 is empty, this operator returns + + + true + + + . +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String ( + + \(s_1\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of Sort String ( + + \(s_2\) + + ) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + STRING_REPLACE + + + +  + +
    +
    +

    + String replace. +

    +

    + Replaces a string + + \(s_2\) + + in a string + + \(s_1\) + + with string + + \(s_3\) + + . If + + \(s_2\) + + does not appear in + + \(s_1\) + + , + + \(s_1\) + + is +returned unmodified. +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String (string + + \(s_1\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of Sort String (string + + \(s_2\) + + ) +

        +
      • +
      • +

        + + + 3: + + + Term of Sort String (string + + \(s_3\) + + ) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + STRING_REPLACE_ALL + + + +  + +
    +
    +

    + String replace all. +

    +

    + Replaces all occurrences of a string + + \(s_2\) + + in a string + + \(s_1\) + + with string + + \(s_3\) + + . If + + \(s_2\) + + does not appear in + + \(s_1\) + + , + + \(s_1\) + + is returned unmodified. +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String ( + + \(s_1\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of Sort String ( + + \(s_2\) + + ) +

        +
      • +
      • +

        + + + 3: + + + Term of Sort String ( + + \(s_3\) + + ) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + STRING_REPLACE_RE + + + +  + +
    +
    +

    + String replace regular expression match. +

    +

    + Replaces the first match of a regular expression + + \(r\) + + in +string + + \(s_1\) + + with string + + \(s_2\) + + . If + + \(r\) + + does not match a +substring of + + \(s_1\) + + , + + \(s_1\) + + is returned unmodified. +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String ( + + \(s_1\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of Sort RegLan +

        +
      • +
      • +

        + + + 3: + + + Term of Sort String ( + + \(s_2\) + + ) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + STRING_REPLACE_RE_ALL + + + +  + +
    +
    +

    + String replace all regular expression matches. +

    +

    + Replaces all matches of a regular expression + + \(r\) + + in string + + \(s_1\) + + with string + + \(s_2\) + + . If + + \(r\) + + does not match a +substring of + + \(s_1\) + + , string + + \(s_1\) + + is returned unmodified. +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String ( + + \(s_1\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of Sort RegLan +

        +
      • +
      • +

        + + + 3: + + + Term of Sort String ( + + \(s_2\) + + ) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + STRING_REV + + + +  + +
    +
    +

    + String reverse. +

    + +
    +
    +
    +
    + + + STRING_SUBSTR + + + +  + +
    +
    +

    + String substring. +

    +

    + Extracts a substring, starting at index + + \(i\) + + and of length + + \(l\) + + , +from a string + + \(s\) + + . If the start index is negative, the start index +is greater than the length of the string, or the length is negative, the +result is the empty string. +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String +

        +
      • +
      • +

        + + + 2: + + + Term of Sort Int (index + + \(i\) + + ) +

        +
      • +
      • +

        + + + 3: + + + Term of Sort Int (length + + \(l\) + + ) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + STRING_SUFFIX + + + +  + +
    +
    +

    + String suffix-of. +

    +

    + Determines whether a string + + \(s_1\) + + is a suffix of the second string. +If string + + \(s_1\) + + is empty, this operator returns + + + true + + + . +

    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String ( + + \(s_1\) + + ) +

        +
      • +
      • +

        + + + 2: + + + Term of Sort String ( + + \(s_2\) + + ) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + STRING_TO_CODE + + + +  + +
    +
    +

    + String to code. +

    +

    + Returns the code point of a string if it has length one, or returns + + -1 + + otherwise. +

    + +
    +
    +
    +
    + + + STRING_TO_INT + + + +  + +
    +
    +

    + String to integer (total function). +

    +

    + If the string does not contain an integer or the integer is negative, the +operator returns + + -1 + + . +

    + +
    +
    +
    +
    + + + STRING_TO_LOWER + + + +  + +
    +
    +

    + String to lower case. +

    + +
    +
    +
    +
    + + + STRING_TO_REGEXP + + + +  + +
    +
    +

    + Conversion from string to regexp. +

    + +
    +
    +
    +
    + + + STRING_TO_UPPER + + + +  + +
    +
    +

    + String to upper case. +

    + +
    +
    +
    +
    + + + STRING_UPDATE + + + +  + +
    +
    +

    + String update. +

    +

    + Updates a string + + \(s\) + + by replacing its context starting at an index +with string + + \(t\) + + . If the start index is negative, the start index is +greater than the length of the string, the result is + + \(s\) + + . Otherwise, +the length of the original string is preserved. +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of Sort String +

        +
      • +
      • +

        + + + 2: + + + Term of Sort Int (index + + \(i\) + + ) +

        +
      • +
      • +

        + + + 3: + + + Term of Sort Strong (replacement string + + \(t\) + + ) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + SUB + + + +  + +
    +
    +

    + Arithmetic subtraction, left associative. +

    +
      +
    • +

      + Arity: + + + n + + + > + + + 1 + + +

      +
        +
      • +

        + + + 1..n: + + + Terms of Sort Int or Real (sorts must match) +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + TABLE_AGGREGATE + + + +  + +
    +
    +

    + Table aggregate operator has the form + + \(((\_ \; table.aggr \; n_1 ... n_k) \; f \; i \; A)\) + + where + + \(n_1, ..., n_k\) + + are natural numbers, + + \(f\) + + is a function of type + + \((\rightarrow (Tuple \; T_1 \; ... \; T_j)\; T \; T)\) + + , + + \(i\) + + has the type + + \(T\) + + , +and + + \(A\) + + has type + + \((Table \; T_1 \; ... \; T_j)\) + + . +The returned type is + + \((Bag \; T)\) + + . +

    +

    + This operator aggregates elements in A that have the same tuple projection +with indices n_1, …, n_k using the combining function + + \(f\) + + , +and initial value + + \(i\) + + . +

    +
      +
    • +

      + Arity: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + Term of sort + + \((\rightarrow (Tuple \; T_1 \; ... \; T_j)\; T \; T)\) + +

        +
      • +
      • +

        + + + 2: + + + Term of Sort + + \(T\) + +

        +
      • +
      • +

        + + + 3: + + + Term of table sort + + \(Table T_1 ... T_j\) + +

        +
      • +
      +
    • +
    • +

      + Indices: + + + n + + + - + + + 1..n: + + + Indices of the projection +

      +
    • +
    • +

      + Create Term of this Kind with: +- + + + + Solver.mkTerm() + + + +

      +
    • +
    • +

      + Create Op of this kind with: +- + + + + Solver.mkOp() + + + +

      +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + TABLE_GROUP + + + +  + +
    +
    +

    + Table group +

    +

    + + \(((\_ \; table.group \; n_1 \; \dots \; n_k) \; A)\) + + partitions tuples +of table + + \(A\) + + such that tuples that have the same projection +with indices + + \(n_1 \; \dots \; n_k\) + + are in the same part. +It returns a bag of tables of type + + \((Bag \; T)\) + + where + + \(T\) + + is the type of + + \(A\) + + . +

    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of table sort +

        +
      • +
      +
    • +
    • +

      + Indices: + + + n + + +

      +
        +
      • +

        + + + 1..n: + + + Indices of the projection +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + TABLE_JOIN + + + +  + +
    +
    +
    +
    + Table join operator has the form +
    +
    +

    + + \(((\_ \; table.join \; m_1 \; n_1 \; \dots \; m_k \; n_k) \; A \; B)\) + + where + + \(m_1 \; n_1 \; \dots \; m_k \; n_k\) + + are natural numbers, +and + + \(A, B\) + + are tables. +This operator filters the product of two bags based on the equality of +projected tuples using indices + + \(m_1, \dots, m_k\) + + in table + + \(A\) + + , +and indices + + \(n_1, \dots, n_k\) + + in table + + \(B\) + + . +

    +
    +
    +
      +
    • +

      + Arity: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + Term of table Sort +

        +
      • +
      • +

        + + + 2: + + + Term of table Sort +

        +
      • +
      +
    • +
    • +

      + Indices: + + + n + + + - + + + 1..n: + + + Indices of the projection +

      +
    • +
    • +

      + Create Term of this Kind with: +- + + + + Solver.mkTerm() + + + +

      +
    • +
    • +

      + Create Op of this kind with: +- + + + + Solver.mkOp() + + + +

      +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + TABLE_PRODUCT + + + +  + +
    +
    +

    + Table cross product. +

    + +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + TABLE_PROJECT + + + +  + +
    +
    +

    + Table projection operator extends tuple projection operator to tables. +

    +
      +
    • +

      + Arity: + + + 1 + + + - + + + 1: + + + Term of table Sort +

      +
    • +
    • +

      + Indices: + + + n + + + - + + + 1..n: + + + Indices of the projection +

      +
    • +
    • +

      + Create Term of this Kind with: +- + + + + Solver.mkTerm() + + + +

      +
    • +
    • +

      + Create Op of this kind with: +- + + + + Solver.mkOp() + + + +

      +
    • +
    +
    +

    + Warning +

    +

    + This kind is experimental and may be changed or removed in +future versions. +

    +
    +
    +
    +
    +
    + + + TANGENT + + + +  + +
    +
    +

    + Tangent function. +

    + +
    +
    +
    +
    + + + TO_INTEGER + + + +  + +
    +
    +

    + Convert Term of sort Int or Real to Int via the floor function. +

    + +
    +
    +
    +
    + + + TO_REAL + + + +  + +
    +
    +

    + Convert Term of Sort Int or Real to Real. +

    + +
    +
    +
    +
    + + + TUPLE_PROJECT + + + +  + +
    +
    +

    + Tuple projection. +

    +

    + This operator takes a tuple as an argument and returns a tuple obtained by +concatenating components of its argument at the provided indices. +

    +

    + For example, +

    +
    +
    +
    ((_ tuple.project 1 2 2 3 1) (tuple 10 20 30 40))
    +
    +
    +
    +

    + yields +

    +
    +
    +
    (tuple 20 30 30 40 20)
    +
    +
    +
    +
      +
    • +

      + Arity: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + Term of tuple Sort +

        +
      • +
      +
    • +
    • +

      + Indices: + + + n + + +

      +
        +
      • +

        + + + 1..n: + + + The tuple indices to project +

        +
      • +
      +
    • +
    • +

      + Create Term of this Kind with: +

      + +
    • +
    • +

      + Create Op of this kind with: +

      + +
    • +
    +
    +
    +
    +
    + + + UNDEFINED_KIND + + + +  + +
    +
    +

    + Undefined kind. +

    +
    +

    + Note +

    +

    + Should never be exposed or created via the API. +

    +
    +
    +
    +
    +
    + + + UNINTERPRETED_SORT_VALUE + + + +  + +
    +
    +

    + The value of an uninterpreted constant. +

    +
    +

    + Note +

    +

    + May be returned as the result of an API call, but terms of this +kind may not be created explicitly via the API and may not +appear in assertions. +

    +
    +
    +
    +
    +
    + + + VARIABLE + + + +  + +
    +
    +

    + (Bound) variable. +

    + +
    +

    + Note +

    +

    + Only permitted in bindings and in lambda and quantifier bodies. +

    +
    +
    +
    +
    +
    + + + VARIABLE_LIST + + + +  + +
    +
    +

    + Variable list. +

    +

    + A list of variables (used to bind variables under a quantifier) +

    + +
    +
    +
    +
    + + + WITNESS + + + +  + +
    +
    +

    + Witness. +

    +

    + The syntax of a witness term is similar to a quantified formula except that +only one variable is allowed. +For example, the term +

    +
    +
    +
    (witness ((x S)) F)
    +
    +
    +
    +

    + returns an element + + \(x\) + + of Sort + + \(S\) + + and asserts formula + + \(F\) + + . +

    +

    + The witness operator behaves like the description operator +(see https: +no + + \(x\) + + that satisfies + + \(F\) + + . But if such + + \(x\) + + exists, the +witness operator does not enforce the following axiom which ensures +uniqueness up to logical equivalence: +

    +
    + \[\forall x. F \equiv G \Rightarrow witness~x. F = witness~x. G\] +
    +

    + For example, if there are two elements of Sort + + \(S\) + + that satisfy +formula + + \(F\) + + , then the following formula is satisfiable: +

    +
    +
    +
    (distinct
    +   (witness ((x Int)) F)
    +   (witness ((x Int)) F))
    +
    +
    +
    + +
    +

    + Note +

    +

    + This kind is primarily used internally, but may be returned in +models (e.g., for arithmetic terms in non-linear queries). However, +it is not supported by the parser. Moreover, the user of the API +should be cautious when using this operator. In general, all witness +terms + + + (witness + + + ((x + + + Int)) + + + F) + + + should be such that + + + (exists + + + ((x + + + Int)) + + + F) + + + is a valid formula. If this is not the case, then the semantics +in formulas that use witness terms may be unintuitive. For example, +the following formula is unsatisfiable: + + + (or + + + (= + + + (witness + + + ((x + + + Int)) + + + false) + + + 0) + + + (not + + + (= + + + (witness + + + ((x + + + Int)) + + + false) + + + 0)) + + + , whereas notice that + + + (or + + + (= + + + z + + + 0) + + + (not + + + (= + + + z + + + 0))) + + + is +true for any + + \(z\) + + . +

    +
    +
    +
    +
    +
    + + + XOR + + + +  + +
    +
    +

    + Logical exclusive disjunction, left associative. +

    + +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/modes.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/modes.html new file mode 100644 index 0000000000..a49afb9780 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/modes.html @@ -0,0 +1,999 @@ + + + + + + + + + + + Modes — cvc5 documentation + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    +
      +
    • + + +
    • + +
    • +
    • +
    +
    +
    +
    +
    +
    +

    + Modes + +  + +

    +

    + Some API functions require a configuration mode argument, e.g., + + + + cvc5.Solver.blockModel() + + + + . +The following enums define such configuration modes. +

    +
    +
    +
    + + + class + + + + + + + cvc5. + + + + + BlockModelsMode + + + + ( + + + + + value + + + + + ) + + +  + +
    +
    +

    + The BlockModelsMode enum +

    +
    +
    + + + LITERALS + + + +  + +
    +
    +

    + Block models based on the SAT skeleton. +

    +
    +
    +
    +
    + + + VALUES + + + +  + +
    +
    +

    + Block models based on the concrete model values for the free variables. +

    +
    +
    +
    +
    +
    +
    +
    + + + class + + + + + + + cvc5. + + + + + LearnedLitType + + + + ( + + + + + value + + + + + ) + + +  + +
    +
    +

    + The LearnedLitType enum +

    +
    +
    + + + CONSTANT_PROP + + + +  + +
    +
    +

    + An internal literal that can be made into a constant propagation for an +input term. +

    +

    + In particular, literals in this category are of the form (= t c) where +c is a constant, the preprocessed set of input formulas contains the +term t, but not the literal (= t c). +

    +
    +
    +
    +
    + + + INPUT + + + +  + +
    +
    +

    + A literal from the preprocessed set of input formulas that does not +occur at top-level after preprocessing. +

    +

    + Typically), this is the most interesting category of literals to learn. +

    +
    +
    +
    +
    + + + INTERNAL + + + +  + +
    +
    +

    + Any internal literal that does not fall into the above categories. +

    +
    +
    +
    +
    + + + PREPROCESS + + + +  + +
    +
    +

    + A top-level literal (unit clause) from the preprocessed set of input +formulas. +

    +
    +
    +
    +
    + + + PREPROCESS_SOLVED + + + +  + +
    +
    +

    + An equality that was turned into a substitution during preprocessing. +

    +

    + In particular, literals in this category are of the form (= x t) where +x does not occur in t. +

    +
    +
    +
    +
    + + + SOLVABLE + + + +  + +
    +
    +

    + An internal literal that is solvable for an input variable. +

    +

    + In particular, literals in this category are of the form (= x t) where +x does not occur in t, the preprocessed set of input formulas contains the +term x, but not the literal (= x t). +

    +

    + Note that solvable literals can be turned into substitutions during +preprocessing. +

    +
    +
    +
    +
    + + + UNKNOWN + + + +  + +
    +
    +

    + Special case for when produce-learned-literals is not set. +

    +
    +
    +
    +
    +
    +
    +
    + + + class + + + + + + + cvc5. + + + + + ProofComponent + + + + ( + + + + + value + + + + + ) + + +  + +
    +
    +

    + The ProofComponent enum +

    +
    +
    + + + FULL + + + +  + +
    +
    +

    + A proof of false whose free assumptions are a subset of the input formulas +F1), … Fm. +

    +

    + Only valid immediately after an unsat response. +

    +
    +
    +
    +
    + + + PREPROCESS + + + +  + +
    +
    +

    + Proofs of Gu1 … Gun whose free assumptions are Fu1, … Fum, +where: +- Gu1, … Gun are clauses corresponding to input formulas used in the SAT +proof, +- Fu1, … Fum is the subset of the input formulas that are used in the SAT +proof (i.e. the unsat core). +

    +

    + Note that Gu1 … Gun are clauses that are added to the SAT solver before +its main search. +

    +

    + Only valid immediately after an unsat response. +

    +
    +
    +
    +
    + + + RAW_PREPROCESS + + + +  + +
    +
    +

    + Proofs of G1 … Gn whose free assumptions are a subset of +F1, … Fm, where: +- G1, … Gn are the preprocessed input formulas, +- F1, … Fm are the input formulas. +

    +

    + Note that G1 … Gn may be arbitrary formulas, not necessarily clauses. +

    +
    +
    +
    +
    + + + SAT + + + +  + +
    +
    +

    + A proof of false whose free assumptions are Gu1, … Gun, L1 … Lk, +where: +- Gu1, … Gun, is a set of clauses corresponding to input formulas, +- L1, …, Lk is a set of clauses corresponding to theory lemmas. +

    +

    + Only valid immediately after an unsat response. +

    +
    +
    +
    +
    + + + THEORY_LEMMAS + + + +  + +
    +
    +

    + Proofs of L1 … Lk where: +- L1, …, Lk are clauses corresponding to theory lemmas used in the SAT +proof. +

    +

    + In contrast to proofs given for preprocess, L1 … Lk are clauses that are +added to the SAT solver after its main search. +

    +

    + Only valid immediately after an unsat response. +

    +
    +
    +
    +
    +
    +
    +
    + + + class + + + + + + + cvc5. + + + + + ProofFormat + + + + ( + + + + + value + + + + + ) + + +  + +
    +
    +

    + The ProofFormat enum +

    +
    +
    + + + ALETHE + + + +  + +
    +
    +

    + Output Alethe proof. +

    +
    +
    +
    +
    + + + CPC + + + +  + +
    +
    +

    + Output Cooperating Proof Calculus proof based on Eunoia signatures. +

    +
    +
    +
    +
    + + + DEFAULT + + + +  + +
    +
    +

    + Use the proof format mode set in the solver options. +

    +
    +
    +
    +
    + + + DOT + + + +  + +
    +
    +

    + Output DOT proof. +

    +
    +
    +
    +
    + + + LFSC + + + +  + +
    +
    +

    + Output LFSC proof. +

    +
    +
    +
    +
    + + + NONE + + + +  + +
    +
    +

    + Do not translate proof output. +

    +
    +
    +
    +
    +
    +
    +
    + + + class + + + + + + + cvc5. + + + + + FindSynthTarget + + + + ( + + + + + value + + + + + ) + + +  + +
    +
    +

    + The FindSynthTarget enum +

    +
    +
    + + + ENUM + + + +  + +
    +
    +

    + Find the next term in the enumeration of the target grammar. +

    +
    +
    +
    +
    + + + QUERY + + + +  + +
    +
    +

    + Find a query over the given grammar. If the given grammar generates terms +that are not Boolean, we consider equalities over terms from the given +grammar. +

    +

    + The algorithm for determining which queries to generate is configured by +–sygus-query-gen=MODE. Queries that are internally solved can be +filtered by the option –sygus-query-gen-filter-solved. +

    +
    +
    +
    +
    + + + REWRITE + + + +  + +
    +
    +

    + Find a pair of terms (t,s) in the target grammar which are equivalent +but do not rewrite to the same term in the given rewriter +(–sygus-rewrite=MODE). If so, the equality (= t s) is returned by +findSynth. +

    +

    + This can be used to synthesize rewrite rules. Note if the rewriter is set +to none (–sygus-rewrite=none), this indicates a possible rewrite when +implementing a rewriter from scratch. +

    +
    +
    +
    +
    + + + REWRITE_INPUT + + + +  + +
    +
    +

    + Find a rewrite between pairs of terms (t,s) that are matchable with terms +in the input assertions where t and s are equivalent but do not rewrite +to the same term in the given rewriter (–sygus-rewrite=MODE). +

    +

    + This can be used to synthesize rewrite rules that apply to the current +problem. +

    +
    +
    +
    +
    + + + REWRITE_UNSOUND + + + +  + +
    +
    +

    + Find a term t in the target grammar which rewrites to a term s that is +not equivalent to it. If so, the equality (= t s) is returned by +findSynth. +

    +

    + This can be used to test the correctness of the given rewriter. Any +returned rewrite indicates an unsoundness in the given rewriter. +

    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/op.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/op.html new file mode 100644 index 0000000000..544fce07f1 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/op.html @@ -0,0 +1,827 @@ + + + + + + + + + + + Op — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Op + +  + +

    +

    + This class encapsulates a cvc5 operator. A + + + + cvc5.Op + + + + is a term that +represents an operator, instantiated with the parameters it requires (if any). +

    +

    + A + + + + cvc5.Term + + + + of operator kind that does not require additional +parameters, e.g., + + + + cvc5.Kind.ADD + + + + , is usually constructed via + + + cvc5.Solver.mkTerm(Kind + + + kind, + + + const + + + std.vector<Term>& + + + children) + + + . +Alternatively, any + + + + cvc5.Term + + + + can be constructed via first +instantiating a corresponding + + + + cvc5.Op + + + + , even if the operator does +not require additional parameters. +Terms with operators that require additional parameters, e.g., + + + + cvc5.Kind.BITVECTOR_EXTRACT + + + + , must be created via + + + + cvc5.TermManager.mkOp() + + + + and + + + + cvc5.TermManager.mkTerm() + + + + . +

    +
    +
    +
    + + + class + + + + + + + cvc5. + + + + + Op + + + +  + +
    +
    +

    + A cvc5 operator. +

    +

    + An operator is a term that represents certain operators, +instantiated with its required parameters, e.g., +a term of kind + + + + BITVECTOR_EXTRACT + + + + . +

    +

    + Wrapper class for + + + + cvc5::Op + + + + . +

    +
    +
    + + + __getitem__ + + + + ( + + + ) + + +  + +
    +
    +

    + Get the index at position + + + i + + + . +

    +
    +
    + Parameters + + : + +
    +
    +

    + + i + + – The position of the index to return. +

    +
    +
    + Returns + + : + +
    +
    +

    + The index at position + + + i + + + . +

    +
    +
    +
    +
    +
    +
    + + + getKind + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The kind of this operator. +

    +
    +
    +
    +
    +
    +
    + + + getNumIndices + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The number of indices of this op. +

    +
    +
    +
    +
    +
    +
    + + + isIndexed + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True iff this operator is indexed. +

    +
    +
    +
    +
    +
    +
    + + + isNull + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True iff this operator is a null term. +

    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/plugin.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/plugin.html new file mode 100644 index 0000000000..65530eb674 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/plugin.html @@ -0,0 +1,973 @@ + + + + + + + + + + + Plugin — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Plugin + +  + +

    +

    + This class encapsulates a user-specified solver plugin. +It is configured via + + + + cvc5.Solver.addPlugin() + + + + . +

    +
    +
    +
    + + + + + + + + + + + class + + + + + + + + Plugin + + + +
    +
    +
    +

    + A cvc5 plugin. +

    +
    +

    + Public Functions +

    +
    +
    + + + + + + + + + + + + Plugin + + + + + ( + + + + + TermManager + + + + + + + + & + + + + + tm + + + + ) + +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + virtual + + + + + + + + ~Plugin + + + + + ( + + + ) + + + + + + = + + + + + + + default + + +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + virtual + + + + + + + std + + + + + :: + + + + + vector + + + + + < + + + + + + Term + + + + + + > + + + + + + + + check + + + + + ( + + + ) + +
    +
    +
    +

    + Call to check, return vector of lemmas to add to the SAT solver. This method is called periodically, roughly at every SAT decision. +

    +
    +
    + Returns + + : + +
    +
    +

    + The vector of lemmas to add to the SAT solver. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + virtual + + + + + + + void + + + + + + + + notifySatClause + + + + + ( + + + + const + + + + + + + + Term + + + + + + + + & + + + + + clause + + + + ) + +
    +
    +
    +

    + Notify SAT clause, called when + + + clause + + + is learned by the SAT solver. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + clause + + – The learned clause. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + virtual + + + + + + + void + + + + + + + + notifyTheoryLemma + + + + + ( + + + + const + + + + + + + + Term + + + + + + + + & + + + + + lemma + + + + ) + +
    +
    +
    +

    + Notify theory lemma, called when + + + lemma + + + is sent by a theory solver. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + lemma + + – The theory lemma. +

    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + virtual + + + + + + + std + + + + + :: + + + + + string + + + + + + + + getName + + + + + ( + + + ) + + + + + + = + + + + + + + 0 + + +
    +
    +
    +

    + Get the name of the plugin (for debugging). +

    +
    +
    + Returns + + : + +
    +
    +

    + The name of the plugin. +

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/proof.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/proof.html new file mode 100644 index 0000000000..15c5a1cb4d --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/proof.html @@ -0,0 +1,731 @@ + + + + + + + + + + + Proof — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Proof + +  + +

    +

    + This class encapsulates a cvc5 proof object, which can be retrieved via +function + + + + cvc5.Solver.getProof() + + + + after a + + + + cvc5.Solver.checkSat() + + + + query returns an + + unsat + + result. +

    +
    +
    +
    + + + class + + + + + + + cvc5. + + + + + Proof + + + +  + +
    +
    +

    + A cvc5 proof. Proofs are trees and every proof object corresponds to the +root step of a proof. The branches of the root step are the premises of +the step. +

    +

    + Wrapper class for + + + + cvc5::Proof + + + + . +

    +
    +
    + + + getArguments + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The arguments of the root step of the proof as a vector of terms. +Some of those terms might be strings. +

    +
    +
    +
    +
    +
    +
    + + + getChildren + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The premises of the root step of the proof. +

    +
    +
    +
    +
    +
    +
    + + + getResult + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The conclusion of the root step of the proof. +

    +
    +
    +
    +
    +
    +
    + + + getRewriteRule + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The proof rewrite rule used by the root step of the proof. +Raises an exception if + + getRule() + + does not return + + DSL_REWRITE + + or + + THEORY_REWRITE + + . +

    +
    +
    +
    +
    +
    +
    + + + getRule + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The proof rule used by the root step of the proof. +

    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/proofrule.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/proofrule.html new file mode 100644 index 0000000000..f2951936f4 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/proofrule.html @@ -0,0 +1,22923 @@ + + + + + + + + + + + ProofRule and ProofRewriteRule — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + ProofRule and ProofRewriteRule + +  + +

    +

    + Enum + + + + ProofRule + + + + captures the reasoning steps +performed by the SAT solver, the theory solvers and the preprocessor. It +represents the inference rules used to derive conclusions within a proof. +

    +

    + Enum + + + + ProofRewriteRule + + + + pertains to +rewrites performed on terms. These identifiers are arguments of the proof rules + + + + THEORY_REWRITE + + + + and + + + + DSL_REWRITE + + + + . +

    +
    +
    +
    + + + class + + + + + + + cvc5. + + + + + ProofRule + + + + ( + + + + + value + + + + + ) + + +  + +
    +
    +

    + The ProofRule enum +

    +
    +
    + + + ACI_NORM + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Builtin theory – associative/commutative/idempotency/identity normalization + +

    +
    + \[\inferrule{- \mid t = s}{t = s}\] +
    +

    + where + + \(\texttt{expr::isACNorm(t, s)} = \top\) + + . For details, see + + expr/nary_term_util.h + + . +This method normalizes currently based on two kinds of operators: +(1) those that are associative, commutative, idempotent, and have an +identity element (examples are or, and, bvand), +(2) those that are associative and have an identity element (examples +are str.++, re.++). +endverbatim +

    +
    +
    +
    +
    + + + ALETHE_RULE + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + External – Alethe + +

    +

    + Place holder for Alethe rules. +

    +
    + \[\inferrule{P_1, \dots, P_n\mid \texttt{id}, Q, Q', A_1,\dots, A_m}{Q}\] +
    +

    + Note that the premises and arguments are arbitrary. It’s expected that + + \(\texttt{id}\) + + refer to a proof rule in the external Alethe calculus, +and that + + \(Q'\) + + be the representation of Q to be printed by the Alethe +printer. +endverbatim +

    +
    +
    +
    +
    + + + ALPHA_EQUIV + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Quantifiers – Alpha equivalence + +

    +
    + \[\inferruleSC{-\mid F, (y_1 \ldots y_n), (z_1,\dots, z_n)} +{F = F\{y_1\mapsto z_1,\dots,y_n\mapsto z_n\}} +{if $y_1,\dots,y_n, z_1,\dots,z_n$ are unique bound variables}\] +
    +

    + Notice that this rule is correct only when + + \(z_1,\dots,z_n\) + + are not +contained in + + \(FV(F) \setminus \{ y_1,\dots, y_n \}\) + + , where + + \(FV(\varphi)\) + + are the free variables of + + \(\varphi\) + + . The internal +quantifiers proof checker does not currently check that this is the case. +endverbatim +

    +
    +
    +
    +
    + + + AND_ELIM + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Boolean – And elimination + +

    +
    + \[\inferrule{(F_1 \land \dots \land F_n) \mid i}{F_i}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + AND_INTRO + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Boolean – And introduction + +

    +
    + \[\inferrule{F_1 \dots F_n \mid -}{(F_1 \land \dots \land F_n)}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + ARITH_MULT_ABS_COMPARISON + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Arithmetic – Non-linear multiply absolute value comparison + +

    +
    + \[\inferrule{F_1 \dots F_n \mid -}{F}\] +
    +

    + where + + \(F\) + + is of the form + + \(\left| t_1 \cdot t_n \right| \diamond \left| s_1 \cdot s_n \right|\) + + . +If + + \(\diamond\) + + is + + \(=\) + + , then each + + \(F_i\) + + is + + \(\left| t_i \right| = \left| s_i \right|\) + + . +

    +

    + If + + \(\diamond\) + + is + + \(>\) + + , then +each + + \(F_i\) + + is either + + \(\left| t_i \right| > \left| s_i \right|\) + + or + + \(\left| t_i \right| = \left| s_i \right| \land \left| t_i \right| \neq 0\) + + , +and + + \(F_1\) + + is of the former form. +

    +

    + endverbatim +

    +
    +
    +
    +
    + + + ARITH_MULT_NEG + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Arithmetic – Multiplication with negative factor + +

    +
    + \[\inferrule{- \mid m, l \diamond r}{(m < 0 \land l \diamond r) \rightarrow m \cdot l \diamond_{inv} m \cdot r}\] +
    +

    + where + + \(\diamond\) + + is a relation symbol and + + \(\diamond_{inv}\) + + the +inverted relation symbol. +endverbatim +

    +
    +
    +
    +
    + + + ARITH_MULT_POS + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Arithmetic – Multiplication with positive factor + +

    +
    + \[\inferrule{- \mid m, l \diamond r}{(m > 0 \land l \diamond r) \rightarrow m \cdot l \diamond m \cdot r}\] +
    +

    + where + + \(\diamond\) + + is a relation symbol. +endverbatim +

    +
    +
    +
    +
    + + + ARITH_MULT_SIGN + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Arithmetic – Sign inference + +

    +
    + \[\inferrule{- \mid f_1 \dots f_k, m}{(f_1 \land \dots \land f_k) \rightarrow m \diamond 0}\] +
    +

    + where + + \(f_1 \dots f_k\) + + are variables compared to zero (less, greater +or not equal), + + \(m\) + + is a monomial from these variables and + + \(\diamond\) + + is the comparison (less or equal) that results from the +signs of the variables. All variables with even exponent in + + \(m\) + + should be given as not equal to zero while all variables with odd exponent +in + + \(m\) + + should be given as less or greater than zero. +endverbatim +

    +
    +
    +
    +
    + + + ARITH_MULT_TANGENT + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Arithmetic – Multiplication tangent plane + +

    +
    + \[ \begin{align}\begin{aligned}\inferruleSC{- \mid x, y, a, b, \sigma}{(t \leq tplane) = ((x \leq a \land y \geq b) \lor (x \geq a \land y \leq b))}{if $\sigma = \bot$}\\\inferruleSC{- \mid x, y, a, b, \sigma}{(t \geq tplane) = ((x \leq a \land y \leq b) \lor (x \geq a \land y \geq b))}{if $\sigma = \top$}\end{aligned}\end{align} \] +
    +

    + where + + \(x,y\) + + are real terms (variables or extended terms), + + \(t = x \cdot y\) + + , + + \(a,b\) + + are real +constants, + + \(\sigma \in \{ \top, \bot\}\) + + and + + \(tplane := b \cdot x + a \cdot y - a \cdot b\) + + is the tangent plane of + + \(x \cdot y\) + + at + + \((a,b)\) + + . +endverbatim +

    +
    +
    +
    +
    + + + ARITH_POLY_NORM + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Arithmetic – Polynomial normalization + +

    +
    + \[\inferrule{- \mid t = s}{t = s}\] +
    +

    + where + + \(\texttt{arith::PolyNorm::isArithPolyNorm(t, s)} = \top\) + + . This +method normalizes polynomials + + \(s\) + + and + + \(t\) + + over arithmetic or +bitvectors. +endverbatim +

    +
    +
    +
    +
    + + + ARITH_POLY_NORM_REL + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Arithmetic – Polynomial normalization for relations + +

    +
    + \[\inferrule{c_x \cdot (x_1 - x_2) = c_y \cdot (y_1 - y_2) \mid \diamond} + {(x_1 \diamond x_2) = (y_1 \diamond y_2)}\] +
    +

    + where + + \(\diamond \in \{<, \leq, =, \geq, >\}\) + + for arithmetic and + + \(\diamond \in \{=\}\) + + for bitvectors. + + \(c_x\) + + and + + \(c_y\) + + are +scaling factors. For + + \(<, \leq, \geq, >\) + + , the scaling factors have the +same sign. For bitvectors, they are set to + + \(1\) + + . +

    +

    + If + + \(c_x\) + + has type + + \(Real\) + + and + + \(x_1, x_2\) + + are of type + + \(Int\) + + , then + + \((x_1 - x_2)\) + + is wrapped in an application of + + to_real + + , similarly for + + \((y_1 - y_2)\) + + . +endverbatim +

    +
    +
    +
    +
    + + + ARITH_REDUCTION + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Arithmetic – Reduction + +

    +
    + \[\inferrule{- \mid t}{F}\] +
    +

    + where + + \(t\) + + is an application of an extended arithmetic operator (e.g. +division, modulus, cosine, sqrt, is_int, to_int) and + + \(F\) + + is the +reduction predicate for + + \(t\) + + . In other words, + + \(F\) + + is a +predicate that is used to reduce reasoning about + + \(t\) + + to reasoning +about the core operators of arithmetic. +

    +

    + In detail, + + \(F\) + + is implemented by + + \(\texttt{arith::OperatorElim::getAxiomFor(t)}\) + + , see + + theory/arith/operator_elim.h + + . +endverbatim +

    +
    +
    +
    +
    + + + ARITH_SUM_UB + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Arithmetic – Sum upper bounds + +

    +
    + \[\inferrule{P_1 \dots P_n \mid -}{L \diamond R}\] +
    +

    + where + + \(P_i\) + + has the form + + \(L_i \diamond_i R_i\) + + and + + \(\diamond_i \in \{<, \leq, =\}\) + + . Furthermore + + \(\diamond = <\) + + if + + \(\diamond_i = <\) + + for any + + \(i\) + + and + + \(\diamond = \leq\) + + otherwise, + + \(L = L_1 + \cdots + L_n\) + + and + + \(R = R_1 + \cdots + R_n\) + + . +endverbatim +

    +
    +
    +
    +
    + + + ARITH_TRANS_EXP_APPROX_ABOVE_NEG + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Arithmetic – Transcendentals – Exp is approximated from above for +negative values + +

    +
    + \[\inferrule{- \mid d,t,l,u}{(t \geq l \land t \leq u) \rightarrow exp(t) +\leq \texttt{secant}(\exp, l, u, t)}\] +
    +

    + where + + \(d\) + + is an even positive number, + + \(t\) + + an arithmetic term +and + + \(l,u\) + + are lower and upper bounds on + + \(t\) + + . Let + + \(p\) + + be +the + + \(d\) + + ’th taylor polynomial at zero (also called the Maclaurin +series) of the exponential function. + + \(\texttt{secant}(\exp, l, u, t)\) + + denotes the secant of + + \(p\) + + from + + \((l, \exp(l))\) + + to + + \((u, +\exp(u))\) + + evaluated at + + \(t\) + + , calculated as follows: +

    +
    + \[\frac{p(l) - p(u)}{l - u} \cdot (t - l) + p(l)\] +
    +

    + The lemma states that if + + \(t\) + + is between + + \(l\) + + and + + \(u\) + + , then + + \(\exp(t\) + + is below the secant of + + \(p\) + + from + + \(l\) + + to + + \(u\) + + . endverbatim +

    +
    +
    +
    +
    + + + ARITH_TRANS_EXP_APPROX_ABOVE_POS + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Arithmetic – Transcendentals – Exp is approximated from above for +positive values + +

    +
    + \[\inferrule{- \mid d,t,l,u}{(t \geq l \land t \leq u) \rightarrow exp(t) +\leq \texttt{secant-pos}(\exp, l, u, t)}\] +
    +

    + where + + \(d\) + + is an even positive number, + + \(t\) + + an arithmetic term +and + + \(l,u\) + + are lower and upper bounds on + + \(t\) + + . Let + + \(p^*\) + + be +a modification of the + + \(d\) + + ’th taylor polynomial at zero (also called +the Maclaurin series) of the exponential function as follows where + + \(p(d-1)\) + + is the regular Maclaurin series of degree + + \(d-1\) + + : +

    +
    + \[p^* := p(d-1) \cdot \frac{1 + t^n}{n!}\] +
    +

    + + \(\texttt{secant-pos}(\exp, l, u, t)\) + + denotes the secant of + + \(p\) + + from + + \((l, \exp(l))\) + + to + + \((u, \exp(u))\) + + evaluated at + + \(t\) + + , +calculated as follows: +

    +
    + \[\frac{p(l) - p(u)}{l - u} \cdot (t - l) + p(l)\] +
    +

    + The lemma states that if + + \(t\) + + is between + + \(l\) + + and + + \(u\) + + , then + + \(\exp(t\) + + is below the secant of + + \(p\) + + from + + \(l\) + + to + + \(u\) + + . endverbatim +

    +
    +
    +
    +
    + + + ARITH_TRANS_EXP_APPROX_BELOW + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Arithmetic – Transcendentals – Exp is approximated from below + +

    +
    + \[\inferrule{- \mid d,c,t}{t \geq c \rightarrow exp(t) \geq \texttt{maclaurin}(\exp, d, c)}\] +
    +

    + where + + \(d\) + + is an odd positive number, + + \(t\) + + an arithmetic term and + + \(\texttt{maclaurin}(\exp, d, c)\) + + is the + + \(d\) + + ’th taylor +polynomial at zero (also called the Maclaurin series) of the exponential +function evaluated at + + \(c\) + + . The Maclaurin series for the exponential +function is the following: +

    +
    + \[\exp(x) = \sum_{n=0}^{\infty} \frac{x^n}{n!}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + ARITH_TRANS_EXP_NEG + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Arithmetic – Transcendentals – Exp at negative values + +

    +
    + \[\inferrule{- \mid t}{(t < 0) \leftrightarrow (\exp(t) < 1)}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + ARITH_TRANS_EXP_POSITIVITY + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Arithmetic – Transcendentals – Exp is always positive + +

    +
    + \[\inferrule{- \mid t}{\exp(t) > 0}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + ARITH_TRANS_EXP_SUPER_LIN + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Arithmetic – Transcendentals – Exp grows super-linearly for positive +values + +

    +
    + \[\inferrule{- \mid t}{t \leq 0 \lor \exp(t) > t+1}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + ARITH_TRANS_EXP_ZERO + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Arithmetic – Transcendentals – Exp at zero + +

    +
    + \[\inferrule{- \mid t}{(t=0) \leftrightarrow (\exp(t) = 1)}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + ARITH_TRANS_PI + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Arithmetic – Transcendentals – Assert bounds on Pi + +

    +
    + \[\inferrule{- \mid l, u}{\texttt{real.pi} \geq l \land \texttt{real.pi} +\leq u}\] +
    +

    + where + + \(l,u\) + + are valid lower and upper bounds on + + \(\pi\) + + . +endverbatim +

    +
    +
    +
    +
    + + + ARITH_TRANS_SINE_APPROX_ABOVE_NEG + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Arithmetic – Transcendentals – Sine is approximated from above for +negative values + +

    +
    + \[\inferrule{- \mid d,t,lb,ub,l,u}{(t \geq lb land t \leq ub) \rightarrow +\sin(t) \leq \texttt{secant}(\sin, l, u, t)}\] +
    +

    + where + + \(d\) + + is an even positive number, + + \(t\) + + an arithmetic term, + + \(lb,ub\) + + are symbolic lower and upper bounds on + + \(t\) + + (possibly +containing + + \(\pi\) + + ) and + + \(l,u\) + + the evaluated lower and upper +bounds on + + \(t\) + + . Let + + \(p\) + + be the + + \(d\) + + ’th taylor polynomial at +zero (also called the Maclaurin series) of the sine function. + + \(\texttt{secant}(\sin, l, u, t)\) + + denotes the secant of + + \(p\) + + from + + \((l, \sin(l))\) + + to + + \((u, \sin(u))\) + + evaluated at + + \(t\) + + , +calculated as follows: +

    +
    + \[\frac{p(l) - p(u)}{l - u} \cdot (t - l) + p(l)\] +
    +

    + The lemma states that if + + \(t\) + + is between + + \(l\) + + and + + \(u\) + + , then + + \(\sin(t)\) + + is below the secant of + + \(p\) + + from + + \(l\) + + to + + \(u\) + + . endverbatim +

    +
    +
    +
    +
    + + + ARITH_TRANS_SINE_APPROX_ABOVE_POS + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Arithmetic – Transcendentals – Sine is approximated from above for +positive values + +

    +
    + \[\inferrule{- \mid d,t,c,lb,ub}{(t \geq lb land t \leq ub) \rightarrow +\sin(t) \leq \texttt{upper}(\sin, c)}\] +
    +

    + where + + \(d\) + + is an even positive number, + + \(t\) + + an arithmetic term, + + \(c\) + + an arithmetic constant and + + \(lb,ub\) + + are symbolic lower and +upper bounds on + + \(t\) + + (possibly containing + + \(\pi\) + + ). Let + + \(p\) + + be the + + \(d\) + + ’th taylor polynomial at zero (also called the Maclaurin +series) of the sine function. + + \(\texttt{upper}(\sin, c)\) + + denotes the +upper bound on + + \(\sin(c)\) + + given by + + \(p\) + + and + + \(lb,up\) + + such +that + + \(\sin(t)\) + + is the maximum of the sine function on + + \((lb,ub)\) + + . endverbatim +

    +
    +
    +
    +
    + + + ARITH_TRANS_SINE_APPROX_BELOW_NEG + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Arithmetic – Transcendentals – Sine is approximated from below for +negative values + +

    +
    + \[\inferrule{- \mid d,t,c,lb,ub}{(t \geq lb land t \leq ub) \rightarrow +\sin(t) \geq \texttt{lower}(\sin, c)}\] +
    +

    + where + + \(d\) + + is an even positive number, + + \(t\) + + an arithmetic term, + + \(c\) + + an arithmetic constant and + + \(lb,ub\) + + are symbolic lower and +upper bounds on + + \(t\) + + (possibly containing + + \(\pi\) + + ). Let + + \(p\) + + be the + + \(d\) + + ’th taylor polynomial at zero (also called the Maclaurin +series) of the sine function. + + \(\texttt{lower}(\sin, c)\) + + denotes the +lower bound on + + \(\sin(c)\) + + given by + + \(p\) + + and + + \(lb,up\) + + such +that + + \(\sin(t)\) + + is the minimum of the sine function on + + \((lb,ub)\) + + . endverbatim +

    +
    +
    +
    +
    + + + ARITH_TRANS_SINE_APPROX_BELOW_POS + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Arithmetic – Transcendentals – Sine is approximated from below for +positive values + +

    +
    + \[\inferrule{- \mid d,t,lb,ub,l,u}{(t \geq lb land t \leq ub) \rightarrow +\sin(t) \geq \texttt{secant}(\sin, l, u, t)}\] +
    +

    + where + + \(d\) + + is an even positive number, + + \(t\) + + an arithmetic term, + + \(lb,ub\) + + are symbolic lower and upper bounds on + + \(t\) + + (possibly +containing + + \(\pi\) + + ) and + + \(l,u\) + + the evaluated lower and upper +bounds on + + \(t\) + + . Let + + \(p\) + + be the + + \(d\) + + ’th taylor polynomial at +zero (also called the Maclaurin series) of the sine function. + + \(\texttt{secant}(\sin, l, u, t)\) + + denotes the secant of + + \(p\) + + from + + \((l, \sin(l))\) + + to + + \((u, \sin(u))\) + + evaluated at + + \(t\) + + , +calculated as follows: +

    +
    + \[\frac{p(l) - p(u)}{l - u} \cdot (t - l) + p(l)\] +
    +

    + The lemma states that if + + \(t\) + + is between + + \(l\) + + and + + \(u\) + + , then + + \(\sin(t)\) + + is above the secant of + + \(p\) + + from + + \(l\) + + to + + \(u\) + + . endverbatim +

    +
    +
    +
    +
    + + + ARITH_TRANS_SINE_BOUNDS + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Arithmetic – Transcendentals – Sine is always between -1 and 1 + +

    +
    + \[\inferrule{- \mid t}{\sin(t) \leq 1 \land \sin(t) \geq -1}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + ARITH_TRANS_SINE_SHIFT + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Arithmetic – Transcendentals – Sine is shifted to -pi…pi + +

    +
    + \[\inferrule{- \mid x}{-\pi \leq y \leq \pi \land \sin(y) = \sin(x) +\land (\ite{-\pi \leq x \leq \pi}{x = y}{x = y + 2 \pi s})}\] +
    +

    + where + + \(x\) + + is the argument to sine, + + \(y\) + + is a new real skolem +that is + + \(x\) + + shifted into + + \(-\pi \dots \pi\) + + and + + \(s\) + + is a +new integer skolem that is the number of phases + + \(y\) + + is shifted. +In particular, + + \(y\) + + is the + + + TRANSCENDENTAL_PURIFY_ARG + + + skolem for + + \(\sin(x)\) + + and + + \(s\) + + is the + + + TRANSCENDENTAL_SINE_PHASE_SHIFT + + + skolem for + + \(x\) + + . +endverbatim +

    +
    +
    +
    +
    + + + ARITH_TRANS_SINE_SYMMETRY + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Arithmetic – Transcendentals – Sine is symmetric with respect to +negation of the argument + +

    +
    + \[\inferrule{- \mid t}{\sin(t) - \sin(-t) = 0}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + ARITH_TRANS_SINE_TANGENT_PI + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Arithmetic – Transcendentals – Sine is bounded by the tangents at -pi +and pi + +

    +
    + \[\inferrule{- \mid t}{(t > -\pi \rightarrow \sin(t) > -\pi - t) \land (t < +\pi \rightarrow \sin(t) < \pi - t)} \endverbatim\] +
    +
    +
    +
    +
    + + + ARITH_TRANS_SINE_TANGENT_ZERO + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Arithmetic – Transcendentals – Sine is bounded by the tangent at zero + +

    +
    + \[\inferrule{- \mid t}{(t > 0 \rightarrow \sin(t) < t) \land (t < 0 +\rightarrow \sin(t) > t)} \endverbatim\] +
    +
    +
    +
    +
    + + + ARITH_TRICHOTOMY + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Arithmetic – Trichotomy of the reals + +

    +
    + \[\inferrule{A, B \mid -}{C}\] +
    +

    + where + + \(\neg A, \neg B, C\) + + are + + \(x < c, x = c, x > c\) + + in some order. +Note that + + \(\neg\) + + here denotes arithmetic negation, i.e., flipping + + \(\geq\) + + to + + \(<\) + + etc. +endverbatim +

    +
    +
    +
    +
    + + + ARRAYS_EXT + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Arrays – Arrays extensionality + +

    +
    + \[\inferrule{a \neq b\mid -} +{\mathit{select}(a,k)\neq\mathit{select}(b,k)}\] +
    +

    + where + + \(k\) + + is the + + \(\texttt{ARRAY_DEQ_DIFF}\) + + skolem for + + (a, b) + + . +endverbatim +

    +
    +
    +
    +
    + + + ARRAYS_READ_OVER_WRITE + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Arrays – Read over write + +

    +
    + \[\inferrule{i_1 \neq i_2\mid \mathit{select}(\mathit{store}(a,i_1,e),i_2)} +{\mathit{select}(\mathit{store}(a,i_1,e),i_2) = \mathit{select}(a,i_2)}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + ARRAYS_READ_OVER_WRITE_1 + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Arrays – Read over write 1 + +

    +
    + \[\inferrule{-\mid \mathit{select}(\mathit{store}(a,i,e),i)} +{\mathit{select}(\mathit{store}(a,i,e),i)=e}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + ARRAYS_READ_OVER_WRITE_CONTRA + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Arrays – Read over write, contrapositive + +

    +
    + \[\inferrule{\mathit{select}(\mathit{store}(a,i_2,e),i_1) \neq +\mathit{select}(a,i_1)\mid -}{i_1=i_2}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + ASSUME + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Assumption (a leaf) + +

    +
    + \[\inferrule{- \mid F}{F}\] +
    +

    + This rule has special status, in that an application of assume is an +open leaf in a proof that is not (yet) justified. An assume leaf is +analogous to a free variable in a term, where we say “F is a free +assumption in proof P” if it contains an application of F that is not +bound by + + + SCOPE + + + (see below). +endverbatim +

    +
    +
    +
    +
    + + + BV_BITBLAST_STEP + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Bit-vectors – Bitblast bit-vector constant, variable, and terms + +

    +

    + For constant and variables: +

    +
    + \[\inferrule{-\mid t}{t = \texttt{bitblast}(t)}\] +
    +

    + For terms: +

    +
    + \[\inferrule{-\mid k(\texttt{bitblast}(t_1),\dots,\texttt{bitblast}(t_n))} +{k(\texttt{bitblast}(t_1),\dots,\texttt{bitblast}(t_n)) = +\texttt{bitblast}(t)}\] +
    +

    + where + + \(t\) + + is + + \(k(t_1,\dots,t_n)\) + + . +endverbatim +

    +
    +
    +
    +
    + + + BV_EAGER_ATOM + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Bit-vectors – Bit-vector eager atom + +

    +
    + \[\inferrule{-\mid F}{F = F[0]}\] +
    +

    + where + + \(F\) + + is of kind + + + BITVECTOR_EAGER_ATOM + + + . +endverbatim +

    +
    +
    +
    +
    + + + CHAIN_RESOLUTION + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Boolean – N-ary Resolution + +

    +
    + \[\inferrule{C_1 \dots C_n \mid (pol_1 \dots pol_{n-1}), (L_1 \dots L_{n-1})}{C}\] +
    +

    + where +

    +
      +
    • +

      + let + + \(C_1 \dots C_n\) + + be nodes viewed as clauses, as defined above +

      +
    • +
    • +

      + let + + \(C_1 \diamond_{L,pol} C_2\) + + represent the resolution of + + \(C_1\) + + with + + \(C_2\) + + with pivot + + \(L\) + + and polarity + + \(pol\) + + , as defined above +

      +
    • +
    • +

      + let + + \(C_1' = C_1\) + + , +

      +
    • +
    • +

      + for each + + \(i > 1\) + + , let + + \(C_i' = C_{i-1} \diamond_{L_{i-1}, pol_{i-1}} C_i'\) + +

      +
    • +
    +

    + Note the list of polarities and pivots are provided as s-expressions. +

    +

    + The result of the chain resolution is + + \(C = C_n'\) + + endverbatim +

    +
    +
    +
    +
    + + + CNF_AND_NEG + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Boolean – CNF – And Negative + +

    +
    + \[\inferrule{- \mid (F_1 \land \dots \land F_n)}{(F_1 \land \dots \land +F_n) \lor \neg F_1 \lor \dots \lor \neg F_n}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + CNF_AND_POS + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Boolean – CNF – And Positive + +

    +
    + \[\inferrule{- \mid (F_1 \land \dots \land F_n), i}{\neg (F_1 \land \dots +\land F_n) \lor F_i}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + CNF_EQUIV_NEG1 + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Boolean – CNF – Equiv Negative 1 + +

    +
    + \[\inferrule{- \mid F_1 = F_2}{(F_1 = F_2) \lor F_1 \lor F_2}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + CNF_EQUIV_NEG2 + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Boolean – CNF – Equiv Negative 2 + +

    +
    + \[\inferrule{- \mid F_1 = F_2}{(F_1 = F_2) \lor \neg F_1 \lor \neg F_2}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + CNF_EQUIV_POS1 + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Boolean – CNF – Equiv Positive 1 + +

    +
    + \[\inferrule{- \mid F_1 = F_2}{F_1 \neq F_2 \lor \neg F_1 \lor F_2}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + CNF_EQUIV_POS2 + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Boolean – CNF – Equiv Positive 2 + +

    +
    + \[\inferrule{- \mid F_1 = F_2}{F_1 \neq F_2 \lor F_1 \lor \neg F_2}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + CNF_IMPLIES_NEG1 + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Boolean – CNF – Implies Negative 1 + +

    +
    + \[\inferrule{- \mid F_1 \rightarrow F_2}{(F_1 \rightarrow F_2) \lor F_1}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + CNF_IMPLIES_NEG2 + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Boolean – CNF – Implies Negative 2 + +

    +
    + \[\inferrule{- \mid F_1 \rightarrow F_2}{(F_1 \rightarrow F_2) \lor \neg F_2}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + CNF_IMPLIES_POS + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Boolean – CNF – Implies Positive + +

    +
    + \[\inferrule{- \mid F_1 \rightarrow F_2}{\neg(F_1 \rightarrow F_2) \lor \neg F_1 +\lor F_2}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + CNF_ITE_NEG1 + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Boolean – CNF – ITE Negative 1 + +

    +
    + \[\inferrule{- \mid (\ite{C}{F_1}{F_2})}{(\ite{C}{F_1}{F_2}) \lor \neg C +\lor \neg F_1}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + CNF_ITE_NEG2 + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Boolean – CNF – ITE Negative 2 + +

    +
    + \[\inferrule{- \mid (\ite{C}{F_1}{F_2})}{(\ite{C}{F_1}{F_2}) \lor C \lor +\neg F_2}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + CNF_ITE_NEG3 + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Boolean – CNF – ITE Negative 3 + +

    +
    + \[\inferrule{- \mid (\ite{C}{F_1}{F_2})}{(\ite{C}{F_1}{F_2}) \lor \neg F_1 +\lor \neg F_2}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + CNF_ITE_POS1 + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Boolean – CNF – ITE Positive 1 + +

    +
    + \[\inferrule{- \mid (\ite{C}{F_1}{F_2})}{\neg(\ite{C}{F_1}{F_2}) \lor \neg +C \lor F_1}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + CNF_ITE_POS2 + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Boolean – CNF – ITE Positive 2 + +

    +
    + \[\inferrule{- \mid (\ite{C}{F_1}{F_2})}{\neg(\ite{C}{F_1}{F_2}) \lor C +\lor F_2}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + CNF_ITE_POS3 + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Boolean – CNF – ITE Positive 3 + +

    +
    + \[\inferrule{- \mid (\ite{C}{F_1}{F_2})}{\neg(\ite{C}{F_1}{F_2}) \lor F_1 +\lor F_2}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + CNF_OR_NEG + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Boolean – CNF – Or Negative + +

    +
    + \[\inferrule{- \mid (F_1 \lor \dots \lor F_n), i}{(F_1 \lor \dots \lor F_n) +\lor \neg F_i}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + CNF_OR_POS + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Boolean – CNF – Or Positive + +

    +
    + \[\inferrule{- \mid (F_1 \lor \dots \lor F_n)}{\neg(F_1 \lor \dots \lor +F_n) \lor F_1 \lor \dots \lor F_n}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + CNF_XOR_NEG1 + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Boolean – CNF – XOR Negative 1 + +

    +
    + \[\inferrule{- \mid F_1 \xor F_2}{(F_1 \xor F_2) \lor \neg F_1 \lor F_2}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + CNF_XOR_NEG2 + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Boolean – CNF – XOR Negative 2 + +

    +
    + \[\inferrule{- \mid F_1 \xor F_2}{(F_1 \xor F_2) \lor F_1 \lor \neg F_2}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + CNF_XOR_POS1 + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Boolean – CNF – XOR Positive 1 + +

    +
    + \[\inferrule{- \mid F_1 \xor F_2}{\neg(F_1 \xor F_2) \lor F_1 \lor F_2}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + CNF_XOR_POS2 + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Boolean – CNF – XOR Positive 2 + +

    +
    + \[\inferrule{- \mid F_1 \xor F_2}{\neg(F_1 \xor F_2) \lor \neg F_1 \lor +\neg F_2}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + CONCAT_CONFLICT + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Strings – Core rules – Concatenation conflict + +

    +
    + \[\inferrule{(c_1\cdot t) = (c_2 \cdot s)\mid b}{\bot}\] +
    +

    + where + + \(b\) + + indicates if the direction is reversed, + + \(c_1,\,c_2\) + + are constants such that + + \(\texttt{Word::splitConstant}(c_1,c_2, +\mathit{index},b)\) + + is null, in other words, neither is a prefix of the +other. Note it may be the case that one side of the equality denotes the +empty string. +

    +

    + This rule is used exclusively for strings. +

    +

    + endverbatim +

    +
    +
    +
    +
    + + + CONCAT_CONFLICT_DEQ + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Strings – Core rules – Concatenation conflict for disequal characters + +

    +
    + \[\inferrule{(t_1\cdot t) = (s_1 \cdot s), t_1 \neq s_1 \mid b}{\bot}\] +
    +

    + where + + \(t_1\) + + and + + \(s_1\) + + are constants of length one, or otherwise one side +of the equality is the empty sequence and + + \(t_1\) + + or + + \(s_1\) + + corresponding to +that side is the empty sequence. +

    +

    + This rule is used exclusively for sequences. +

    +

    + endverbatim +

    +
    +
    +
    +
    + + + CONCAT_CPROP + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Strings – Core rules – Concatenation constant propagation + +

    +
    + \[\inferrule{(t_1\cdot w_1\cdot t_2) = (w_2 \cdot s),\, +\mathit{len}(t_1) \neq 0\mid \bot}{(t_1 = t_3\cdot r)}\] +
    +

    + where + + \(w_1,\,w_2\) + + are words, + + \(t_3\) + + is + + \(\mathit{pre}(w_2,p)\) + + , + + \(p\) + + is + + \(\texttt{Word::overlap}(\mathit{suf}(w_2,1), w_1)\) + + , and + + \(r\) + + is +the purification skolem for + + \(\mathit{suf}(t_1,\mathit{len}(w_3))\) + + . Note that + + \(\mathit{suf}(w_2,p)\) + + is the largest suffix of + + \(\mathit{suf}(w_2,1)\) + + that can contain a prefix of + + \(w_1\) + + ; since + + \(t_1\) + + is non-empty, + + \(w_3\) + + must therefore be contained in + + \(t_1\) + + . +

    +

    + Alternatively for the reverse: +

    +
    + \[\inferrule{(t_1\cdot w_1\cdot t_2) = (s \cdot w_2),\, +\mathit{len}(t_2) \neq 0\mid \top}{(t_2 = r\cdot t_3)}\] +
    +

    + where + + \(w_1,\,w_2\) + + are words, + + \(t_3\) + + is + + \(\mathit{substr}(w_2, \mathit{len}(w_2) - p, p)\) + + , + + \(p\) + + is + + \(\texttt{Word::roverlap}(\mathit{pre}(w_2, \mathit{len}(w_2) - 1), +w_1)\) + + , and + + \(r\) + + is the purification skolem for + + \(\mathit{pre}(t_2,\mathit{len}(t_2) - \mathit{len}(w_3))\) + + . Note that + + \(\mathit{pre}(w_2, \mathit{len}(w_2) - p)\) + + is the largest prefix of + + \(\mathit{pre}(w_2, \mathit{len}(w_2) - 1)\) + + that can contain a suffix +of + + \(w_1\) + + ; since + + \(t_2\) + + is non-empty, + + \(w_3\) + + must therefore +be contained in + + \(t_2\) + + . +endverbatim +

    +
    +
    +
    +
    + + + CONCAT_CSPLIT + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Strings – Core rules – Concatenation split for constants + +

    +
    + \[\inferrule{(t_1\cdot t_2) = (c \cdot s_2),\, +\mathit{len}(t_1) \neq 0\mid \bot}{(t_1 = c\cdot r)}\] +
    +

    + where + + \(r\) + + is the purification skolem for + + \(\mathit{suf}(t_1,1)\) + + . +

    +

    + Alternatively for the reverse: +

    +
    + \[\inferrule{(t_1\cdot t_2) = (s_1 \cdot c),\, +\mathit{len}(t_2) \neq 0\mid \top}{(t_2 = r\cdot c)}\] +
    +

    + where + + \(r\) + + is the purification skolem for + + \(\mathit{pre}(t_2,\mathit{len}(t_2) - 1)\) + + . +endverbatim +

    +
    +
    +
    +
    + + + CONCAT_EQ + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Strings – Core rules – Concatenation equality + +

    +
    + \[\inferrule{(t_1\cdot\ldots \cdot t_n \cdot t) = (t_1 \cdot\ldots +\cdot t_n\cdot s)\mid b}{t = s}\] +
    +

    + where + + \(\cdot\) + + stands for string concatenation and + + \(b\) + + indicates +if the direction is reversed. +

    +

    + Notice that + + \(t\) + + or + + \(s\) + + may be empty, in which case they are +implicit in the concatenation above. For example, if the premise is + + \(x\cdot z = x\) + + , then this rule, with argument + + \(\bot\) + + , concludes + + \(z = \epsilon\) + + . +

    +

    + Also note that constants are split, such that for + + \((\mathsf{'abc'} +\cdot x) = (\mathsf{'a'} \cdot y)\) + + , this rule, with argument + + \(\bot\) + + , +concludes + + \((\mathsf{'bc'} \cdot x) = y\) + + . This splitting is done only +for constants such that + + + Word::splitConstant + + + returns non-null. +endverbatim +

    +
    +
    +
    +
    + + + CONCAT_LPROP + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Strings – Core rules – Concatenation length propagation + +

    +
    + \[\inferrule{(t_1\cdot t_2) = (s_1 \cdot s_2),\, +\mathit{len}(t_1) > \mathit{len}(s_1)\mid \bot}{(t_1 = s_1\cdot r)}\] +
    +

    + where + + \(r\) + + is the purification Skolem for + + \(\mathit{ite}( +\mathit{len}(t_1) >= \mathit{len}(s_1), +\mathit{suf}(t_1,\mathit{len}(s_1)), +\mathit{suf}(s_1,\mathit{len}(t_1)))\) + + . +

    +

    + Alternatively for the reverse: +

    +
    + \[\inferrule{(t_1\cdot t_2) = (s_1 \cdot s_2),\, +\mathit{len}(t_2) > \mathit{len}(s_2)\mid \top}{(t_2 = r \cdot s_2)}\] +
    +

    + where + + \(r\) + + is the purification Skolem for + + \(\mathit{ite}( +\mathit{len}(t_2) >= \mathit{len}(s_2), +\mathit{pre}(t_2,\mathit{len}(t_2) - \mathit{len}(s_2)), +\mathit{pre}(s_2,\mathit{len}(s_2) - \mathit{len}(t_2)))\) + + endverbatim +

    +
    +
    +
    +
    + + + CONCAT_SPLIT + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Strings – Core rules – Concatenation split + +

    +
    + \[\inferruleSC{(t_1\cdot t_2) = (s_1 \cdot s_2),\, +\mathit{len}(t_1) \neq \mathit{len}(s_1)\mid b}{((t_1 = s_1\cdot r) +\vee (s_1 = t_1\cdot r)) \wedge r \neq \epsilon \wedge \mathit{len}(r)>0}{if $b=\bot$}\] +
    +

    + where + + \(r\) + + is the purification skolem for + + \(\mathit{ite}( +\mathit{len}(t_1) >= \mathit{len}(s_1), +\mathit{suf}(t_1,\mathit{len}(s_1)), +\mathit{suf}(s_1,\mathit{len}(t_1)))\) + + and + + \(\epsilon\) + + is the empty string (or sequence). +

    +
    + \[\inferruleSC{(t_1\cdot t_2) = (s_1 \cdot s_2),\, +\mathit{len}(t_2) \neq \mathit{len}(s_2)\mid b}{((t_2 = r \cdot s_2) +\vee (s_2 = r \cdot t_2)) \wedge r \neq \epsilon \wedge \mathit{len}(r)>0}{if $b=\top$}\] +
    +

    + where + + \(r\) + + is the purification Skolem for + + \(\mathit{ite}( +\mathit{len}(t_2) >= \mathit{len}(s_2), +\mathit{pre}(t_2,\mathit{len}(t_2) - \mathit{len}(s_2)), +\mathit{pre}(s_2,\mathit{len}(s_2) - \mathit{len}(t_2)))\) + + and + + \(\epsilon\) + + is the empty string (or sequence). +

    +

    + Above, + + \(\mathit{suf}(x,n)\) + + is shorthand for + + \(\mathit{substr}(x,n, \mathit{len}(x) - n)\) + + and + + \(\mathit{pre}(x,n)\) + + is shorthand for + + \(\mathit{substr}(x,0,n)\) + + . +endverbatim +

    +
    +
    +
    +
    + + + CONCAT_UNIFY + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Strings – Core rules – Concatenation unification + +

    +
    + \[\inferrule{(t_1\cdot t_2) = (s_1 \cdot s_2),\, \mathit{len}(t_1) = +\mathit{len}(s_1)\mid \bot}{t_1 = s_1}\] +
    +

    + Alternatively for the reverse: +

    +
    + \[\inferrule{(t_1\cdot t_2) = (s_1 \cdot s_2),\, \mathit{len}(t_2) = +\mathit{len}(s_2)\mid \top}{t_2 = s_2}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + CONG + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Equality – Congruence + +

    +
    + \[\inferrule{t_1=s_1,\dots,t_n=s_n\mid k, f?}{k(f?, t_1,\dots, t_n) = +k(f?, s_1,\dots, s_n)}\] +
    +

    + where + + \(k\) + + is the application kind. Notice that + + \(f\) + + must be +provided iff + + \(k\) + + is a parameterized kind, e.g. + + cvc5::Kind::APPLY_UF + + . The actual node for + + \(k\) + + is constructible via + + + ProofRuleChecker::mkKindNode + + + . +If + + \(k\) + + is a binder kind (e.g. + + + cvc5::Kind::FORALL + + + ) then + + \(f\) + + is a term of kind + + + cvc5::Kind::VARIABLE_LIST + + + denoting the variables bound by both sides of the conclusion. +This rule is used for kinds that have a fixed arity, such as + + + cvc5::Kind::ITE + + + , + + + cvc5::Kind::EQUAL + + + , and so on. It is also used for + + + cvc5::Kind::APPLY_UF + + + where + + \(f\) + + must be provided. +It is not used for equality between + + + cvc5::Kind::HO_APPLY + + + terms, which should +use the + + + HO_CONG + + + proof rule. +endverbatim +

    +
    +
    +
    +
    + + + CONTRA + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Boolean – Contradiction + +

    +
    + \[\inferrule{F, \neg F \mid -}{\bot}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + DRAT_REFUTATION + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + DRAT Refutation + +

    +
    + \[\inferrule{F_1 \dots F_n \mid D, P}{\bot}\] +
    +

    + where + + \(F_1 \dots F_n\) + + correspond to the clauses in the +DIMACS file given by filename + + D + + and + + P + + is a filename of a file storing +a DRAT proof. endverbatim +

    +
    +
    +
    +
    + + + DSL_REWRITE + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Builtin theory – DSL rewrite + +

    +
    + \[\inferrule{F_1 \dots F_n \mid id t_1 \dots t_n}{F}\] +
    +

    + where + + id + + is a + + + ProofRewriteRule + + + whose definition in the +RARE DSL is + + \(\forall x_1 \dots x_n. (G_1 \wedge G_n) \Rightarrow G\) + + where for + + \(i=1, \dots n\) + + , we have that + + \(F_i = \sigma(G_i)\) + + and + + \(F = \sigma(G)\) + + where + + \(\sigma\) + + is the substitution + + \(\{x_1\mapsto t_1,\dots,x_n\mapsto t_n\}\) + + . +

    +

    + Notice that the application of the substitution takes into account the +possible list semantics of variables + + \(x_1 \ldots x_n\) + + . If + + \(x_i\) + + is a variable with list semantics, then + + \(t_i\) + + denotes a +list of terms. The substitution implemented by + + \(\texttt{expr::narySubstitute}\) + + (for details, see + + expr/nary_term_util.h + + ) which replaces each + + \(x_i\) + + with the +list + + \(t_i\) + + in its place. +endverbatim +

    +
    +
    +
    +
    + + + DT_CLASH + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Datatypes – Clash + +

    +
    + \[\inferruleSC{\mathit{is}_{C_i}(t), \mathit{is}_{C_j}(t)\mid -}{\bot} +{if $i\neq j$}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + DT_SPLIT + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Datatypes – Split + +

    +
    + \[\inferrule{-\mid t}{\mathit{is}_{C_1}(t)\vee\cdots\vee\mathit{is}_{C_n}(t)}\] +
    +

    + where + + \(C_1,\dots,C_n\) + + are all the constructors of the type of + + \(t\) + + . +endverbatim +

    +
    +
    +
    +
    + + + ENCODE_EQ_INTRO + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Builtin theory – Encode equality introduction + +

    +
    + \[\inferrule{- \mid t}{t=t'}\] +
    +

    + where + + \(t\) + + and + + \(t'\) + + are equivalent up to their encoding in an +external proof format. +

    +

    + More specifically, it is the case that + + \(\texttt{RewriteDbNodeConverter::postConvert}(t) = t;\) + + . +This conversion method for instance may drop user patterns from quantified +formulas or change the representation of + + \(t\) + + in a way that is a +no-op in external proof formats. +

    +

    + Note this rule can be treated as a + + + REFL + + + when appropriate in +external proof formats. +endverbatim +

    +
    +
    +
    +
    + + + EQUIV_ELIM1 + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Boolean – Equivalence elimination version 1 + +

    +
    + \[\inferrule{F_1 = F_2 \mid -}{\neg F_1 \lor F_2}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + EQUIV_ELIM2 + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Boolean – Equivalence elimination version 2 + +

    +
    + \[\inferrule{F_1 = F_2 \mid -}{F_1 \lor \neg F_2}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + EQ_RESOLVE + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Boolean – Equality resolution + +

    +
    + \[\inferrule{F_1, (F_1 = F_2) \mid -}{F_2}\] +
    +

    + Note this can optionally be seen as a macro for + + + EQUIV_ELIM1 + + + + + + + RESOLUTION + + + . +endverbatim +

    +
    +
    +
    +
    + + + EVALUATE + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Builtin theory – Evaluate + +

    +
    + \[\inferrule{- \mid t}{t = \texttt{evaluate}(t)}\] +
    +

    + where + + \(\texttt{evaluate}\) + + is implemented by calling the method + + \(\texttt{Evalutor::evaluate}\) + + in + + theory/evaluator.h + + with an +empty substitution. +Note this is equivalent to: + + + (REWRITE + + + t + + + MethodId::RW_EVALUATE) + + + . +endverbatim +

    +
    +
    +
    +
    + + + FACTORING + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Boolean – Factoring + +

    +
    + \[\inferrule{C_1 \mid -}{C_2}\] +
    +

    + where + + \(C_2\) + + is the clause + + \(C_1\) + + , but every occurrence of a literal +after its first occurrence is omitted. +endverbatim +

    +
    +
    +
    +
    + + + FALSE_ELIM + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Equality – False elim + +

    +
    + \[\inferrule{F=\bot\mid -}{\neg F}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + FALSE_INTRO + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Equality – False intro + +

    +
    + \[\inferrule{\neg F\mid -}{F = \bot}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + HO_APP_ENCODE + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Equality – Higher-order application encoding + +

    +
    + \[\inferrule{-\mid t}{t=t'}\] +
    +

    + where + + t’ + + is the higher-order application that is equivalent to + + t + + , +as implemented by + + + uf::TheoryUfRewriter::getHoApplyForApplyUf + + + . +For details see + + theory/uf/theory_uf_rewriter.h + +

    +

    + For example, this rule concludes + + \(f(x,y) = @( @(f,x), y)\) + + , where + + \(@\) + + is the + + + HO_APPLY + + + kind. +

    +

    + Note this rule can be treated as a + + + REFL + + + when appropriate in +external proof formats. +

    +
    +
    +

    + endverbatim +

    +
    +
    +
    +
    +
    +
    + + + HO_CONG + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Equality – Higher-order congruence + +

    +
    + \[\inferrule{f=g, t_1=s_1,\dots,t_n=s_n\mid k}{k(f, t_1,\dots, t_n) = +k(g, s_1,\dots, s_n)}\] +
    +

    + Notice that this rule is only used when the application kind + + \(k\) + + is +either + + cvc5::Kind::APPLY_UF + + or + + cvc5::Kind::HO_APPLY + + . +endverbatim +

    +
    +
    +
    +
    + + + IMPLIES_ELIM + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Boolean – Implication elimination + +

    +
    + \[\inferrule{F_1 \rightarrow F_2 \mid -}{\neg F_1 \lor F_2}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + INSTANTIATE + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Quantifiers – Instantiation + +

    +
    + \[\inferrule{\forall x_1\dots x_n.\> F\mid (t_1 \dots t_n), (id\, (t)?)?} +{F\{x_1\mapsto t_1,\dots,x_n\mapsto t_n\}}\] +
    +

    + The list of terms to instantiate + + \((t_1 \dots t_n)\) + + is provided as +an s-expression as the first argument. The optional argument + + \(id\) + + indicates the inference id that caused the instantiation. The term + + \(t\) + + indicates an additional term (e.g. the trigger) associated with +the instantiation, which depends on the id. If the id has prefix + + + QUANTIFIERS_INST_E_MATCHING + + + , then + + \(t\) + + is the trigger that +generated the instantiation. +endverbatim +

    +
    +
    +
    +
    + + + INT_TIGHT_LB + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Arithmetic – Tighten strict integer lower bounds + +

    +
    + \[\inferrule{i > c \mid -}{i \geq \lceil c \rceil}\] +
    +

    + where + + \(i\) + + has integer type. +endverbatim +

    +
    +
    +
    +
    + + + INT_TIGHT_UB + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Arithmetic – Tighten strict integer upper bounds + +

    +
    + \[\inferrule{i < c \mid -}{i \leq \lfloor c \rfloor}\] +
    +

    + where + + \(i\) + + has integer type. +endverbatim +

    +
    +
    +
    +
    + + + ITE_ELIM1 + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Boolean – ITE elimination version 1 + +

    +
    + \[\inferrule{(\ite{C}{F_1}{F_2}) \mid -}{\neg C \lor F_1}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + ITE_ELIM2 + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Boolean – ITE elimination version 2 + +

    +
    + \[\inferrule{(\ite{C}{F_1}{F_2}) \mid -}{C \lor F_2}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + ITE_EQ + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Processing rules – If-then-else equivalence + +

    +
    + \[\inferrule{- \mid \ite{C}{t_1}{t_2}}{\ite{C}{((\ite{C}{t_1}{t_2}) = t_1)}{((\ite{C}{t_1}{t_2}) = t_2)}}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + LFSC_RULE + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + External – LFSC + +

    +

    + Place holder for LFSC rules. +

    +
    + \[\inferrule{P_1, \dots, P_n\mid \texttt{id}, Q, A_1,\dots, A_m}{Q}\] +
    +

    + Note that the premises and arguments are arbitrary. It’s expected that + + \(\texttt{id}\) + + refer to a proof rule in the external LFSC calculus. +endverbatim +

    +
    +
    +
    +
    + + + MACRO_ARITH_SCALE_SUM_UB + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Arithmetic – Adding inequalities + +

    +

    + An arithmetic literal is a term of the form + + \(p \diamond c\) + + where + + \(\diamond \in \{ <, \leq, =, \geq, > \}\) + + , + + \(p\) + + a +polynomial and + + \(c\) + + a rational constant. +

    +
    + \[\inferrule{l_1 \dots l_n \mid k_1 \dots k_n}{t_1 \diamond t_2}\] +
    +

    + where + + \(k_i \in \mathbb{R}, k_i \neq 0\) + + , + + \(\diamond\) + + is the +fusion of the + + \(\diamond_i\) + + (flipping each if its + + \(k_i\) + + is +negative) such that + + \(\diamond_i \in \{ <, \leq \}\) + + (this implies that +lower bounds have negative + + \(k_i\) + + and upper bounds have positive + + \(k_i\) + + ), + + \(t_1\) + + is the sum of the scaled polynomials and + + \(t_2\) + + is the sum of the scaled constants: +

    +
    + \[ \begin{align}\begin{aligned}t_1 \colon= k_1 \cdot p_1 + \cdots + k_n \cdot p_n\\t_2 \colon= k_1 \cdot c_1 + \cdots + k_n \cdot c_n\end{aligned}\end{align} \] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + MACRO_BV_BITBLAST + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Bit-vectors – (Macro) Bitblast + +

    +
    + \[\inferrule{-\mid t}{t = \texttt{bitblast}(t)}\] +
    +

    + where + + \(\texttt{bitblast}\) + + represents the result of the bit-blasted term as +a bit-vector consisting of the output bits of the bit-blasted circuit +representation of the term. Terms are bit-blasted according to the +strategies defined in + + theory/bv/bitblast/bitblast_strategies_template.h + + . +endverbatim +

    +
    +
    +
    +
    + + + MACRO_RESOLUTION + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Boolean – N-ary Resolution + Factoring + Reordering + +

    +
    + \[\inferrule{C_1 \dots C_n \mid C, pol_1,L_1 \dots pol_{n-1},L_{n-1}}{C}\] +
    +

    + where +

    +
      +
    • +

      + let + + \(C_1 \dots C_n\) + + be nodes viewed as clauses, as defined in + + + RESOLUTION + + +

      +
    • +
    • +

      + let + + \(C_1 \diamond_{L,\mathit{pol}} C_2\) + + represent the resolution of + + \(C_1\) + + with + + \(C_2\) + + with pivot + + \(L\) + + and polarity + + \(pol\) + + , as defined in + + + RESOLUTION + + +

      +
    • +
    • +

      + let + + \(C_1'\) + + be equal, in its set representation, to + + \(C_1\) + + , +

      +
    • +
    • +

      + for each + + \(i > 1\) + + , let + + \(C_i'\) + + be equal, in its set +representation, to + + \(C_{i-1} \diamond_{L_{i-1},\mathit{pol}_{i-1}} +C_i'\) + +

      +
    • +
    +

    + The result of the chain resolution is + + \(C\) + + , which is equal, in its set +representation, to + + \(C_n'\) + + endverbatim +

    +
    +
    +
    +
    + + + MACRO_RESOLUTION_TRUST + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Boolean – N-ary Resolution + Factoring + Reordering unchecked + +

    +

    + Same as + + + MACRO_RESOLUTION + + + , but +not checked by the internal proof checker. +endverbatim +

    +
    +
    +
    +
    + + + MACRO_REWRITE + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Builtin theory – Rewrite + +

    +
    + \[\inferrule{- \mid t, idr}{t = \texttt{rewrite}_{idr}(t)}\] +
    +

    + where + + \(idr\) + + is a MethodId identifier, which determines the kind of +rewriter to apply, e.g. Rewriter::rewrite. endverbatim +

    +
    +
    +
    +
    + + + MACRO_SR_EQ_INTRO + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Builtin theory – Substitution + Rewriting equality introduction + +

    +

    + In this rule, we provide a term + + \(t\) + + and conclude that it is equal to +its rewritten form under a (proven) substitution. +

    +
    + \[\inferrule{F_1 \dots F_n \mid t, (ids (ida (idr)?)?)?}{t = +\texttt{rewrite}_{idr}(t \circ \sigma_{ids, ida}(F_n) \circ \cdots \circ +\sigma_{ids, ida}(F_1))}\] +
    +

    + In other words, from the point of view of Skolem forms, this rule +transforms + + \(t\) + + to + + \(t'\) + + by standard substitution + rewriting. +

    +

    + The arguments + + \(ids\) + + , + + \(ida\) + + and + + \(idr\) + + are optional and +specify the identifier of the substitution, the substitution application +and rewriter respectively to be used. For details, see + + theory/builtin/proof_checker.h + + . endverbatim +

    +
    +
    +
    +
    + + + MACRO_SR_PRED_ELIM + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Builtin theory – Substitution + Rewriting predicate elimination + +

    +
    + \[\inferrule{F, F_1 \dots F_n \mid (ids (ida +(idr)?)?)?}{\texttt{rewrite}_{idr}(F \circ \sigma_{ids, ida}(F_n) \circ +\cdots \circ \sigma_{ids, ida}(F_1))}\] +
    +

    + where + + \(ids\) + + and + + \(idr\) + + are method identifiers. +

    +

    + We rewrite only on the Skolem form of + + \(F\) + + , similar to + + + MACRO_SR_EQ_INTRO + + + . +endverbatim +

    +
    +
    +
    +
    + + + MACRO_SR_PRED_INTRO + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Builtin theory – Substitution + Rewriting predicate introduction + +

    +

    + In this rule, we provide a formula + + \(F\) + + and conclude it, under the +condition that it rewrites to true under a proven substitution. +

    +
    + \[\inferrule{F_1 \dots F_n \mid F, (ids (ida (idr)?)?)?}{F}\] +
    +

    + where + + \(\texttt{rewrite}_{idr}(F \circ \sigma_{ids, ida}(F_n) \circ +\cdots \circ \sigma_{ids, ida}(F_1)) = \top\) + + and + + \(ids\) + + and + + \(idr\) + + are method identifiers. +

    +

    + More generally, this rule also holds when + + \(\texttt{Rewriter::rewrite}(\texttt{toOriginal}(F')) = \top\) + + where + + \(F'\) + + is the result of the left hand side of the equality above. +Here, notice that we apply rewriting on the original form of + + \(F'\) + + , +meaning that this rule may conclude an + + \(F\) + + whose Skolem form is +justified by the definition of its (fresh) Skolem variables. For example, +this rule may justify the conclusion + + \(k = t\) + + where + + \(k\) + + is the +purification Skolem for + + \(t\) + + , e.g. where the original form of + + \(k\) + + is + + \(t\) + + . +

    +

    + Furthermore, notice that the rewriting and substitution is applied only +within the side condition, meaning the rewritten form of the original form +of + + \(F\) + + does not escape this rule. +endverbatim +

    +
    +
    +
    +
    + + + MACRO_SR_PRED_TRANSFORM + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Builtin theory – Substitution + Rewriting predicate elimination + +

    +
    + \[\inferrule{F, F_1 \dots F_n \mid G, (ids (ida (idr)?)?)?}{G}\] +
    +

    + where +

    +
    + \[\begin{split}\texttt{rewrite}_{idr}(F \circ \sigma_{ids, ida}(F_n) \circ\cdots \circ \sigma_{ids, ida}(F_1)) =\\ \texttt{rewrite}_{idr}(G \circ \sigma_{ids, ida}(F_n) \circ \cdots \circ \sigma_{ids, ida}(F_1))\end{split}\] +
    +

    + More generally, this rule also holds when: + + \(\texttt{Rewriter::rewrite}(\texttt{toOriginal}(F')) = \texttt{Rewriter::rewrite}(\texttt{toOriginal}(G'))\) + + where + + \(F'\) + + and + + \(G'\) + + are the result of each side of the equation +above. Here, original forms are used in a similar manner to + + + MACRO_SR_PRED_INTRO + + + above. endverbatim +

    +
    +
    +
    +
    + + + MACRO_STRING_INFERENCE + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Strings – (Macro) String inference + +

    +
    + \[\inferrule{?\mid F,\mathit{id},\mathit{isRev},\mathit{exp}}{F}\] +
    +

    + used to bookkeep an inference that has not yet been converted via + + \(\texttt{strings::InferProofCons::convert}\) + + . +endverbatim +

    +
    +
    +
    +
    + + + MODUS_PONENS + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Boolean – Modus Ponens + +

    +
    + \[\inferrule{F_1, (F_1 \rightarrow F_2) \mid -}{F_2}\] +
    +

    + Note this can optionally be seen as a macro for + + + IMPLIES_ELIM + + + + + + + RESOLUTION + + + . +endverbatim +

    +
    +
    +
    +
    + + + NARY_CONG + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Equality – N-ary Congruence + +

    +
    + \[\inferrule{t_1=s_1,\dots,t_n=s_n\mid k}{k(t_1,\dots, t_n) = +k(s_1,\dots, s_n)}\] +
    +

    + where + + \(k\) + + is the application kind. The actual node for + + \(k\) + + is +constructible via + + + ProofRuleChecker::mkKindNode + + + . This rule is used for +kinds that have variadic arity, such as + + + cvc5::Kind::AND + + + , + + + cvc5::Kind::PLUS + + + and so on. +endverbatim +

    +
    +
    +
    +
    + + + NOT_AND + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Boolean – De Morgan – Not And + +

    +
    + \[\inferrule{\neg(F_1 \land \dots \land F_n) \mid -}{\neg F_1 \lor \dots +\lor \neg F_n}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + NOT_EQUIV_ELIM1 + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Boolean – Not Equivalence elimination version 1 + +

    +
    + \[\inferrule{F_1 \neq F_2 \mid -}{F_1 \lor F_2}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + NOT_EQUIV_ELIM2 + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Boolean – Not Equivalence elimination version 2 + +

    +
    + \[\inferrule{F_1 \neq F_2 \mid -}{\neg F_1 \lor \neg F_2}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + NOT_IMPLIES_ELIM1 + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Boolean – Not Implication elimination version 1 + +

    +
    + \[\inferrule{\neg(F_1 \rightarrow F_2) \mid -}{F_1}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + NOT_IMPLIES_ELIM2 + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Boolean – Not Implication elimination version 2 + +

    +
    + \[\inferrule{\neg(F_1 \rightarrow F_2) \mid -}{\neg F_2}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + NOT_ITE_ELIM1 + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Boolean – Not ITE elimination version 1 + +

    +
    + \[\inferrule{\neg(\ite{C}{F_1}{F_2}) \mid -}{\neg C \lor \neg F_1}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + NOT_ITE_ELIM2 + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Boolean – Not ITE elimination version 2 + +

    +
    + \[\inferrule{\neg(\ite{C}{F_1}{F_2}) \mid -}{C \lor \neg F_2}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + NOT_NOT_ELIM + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Boolean – Double negation elimination + +

    +
    + \[\inferrule{\neg (\neg F) \mid -}{F}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + NOT_OR_ELIM + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Boolean – Not Or elimination + +

    +
    + \[\inferrule{\neg(F_1 \lor \dots \lor F_n) \mid i}{\neg F_i}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + NOT_XOR_ELIM1 + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Boolean – Not XOR elimination version 1 + +

    +
    + \[\inferrule{\neg(F_1 \xor F_2) \mid -}{F_1 \lor \neg F_2}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + NOT_XOR_ELIM2 + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Boolean – Not XOR elimination version 2 + +

    +
    + \[\inferrule{\neg(F_1 \xor F_2) \mid -}{\neg F_1 \lor F_2}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + QUANT_VAR_REORDERING + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Quantifiers – Variable reordering + +

    +
    + \[\inferrule{-\mid (\forall X.\> F) = (\forall Y.\> F)} +{(\forall X.\> F) = (\forall Y.\> F)}\] +
    +

    + where + + \(Y\) + + is a reordering of + + \(X\) + + . +

    +

    + endverbatim +

    +
    +
    +
    +
    + + + REFL + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Equality – Reflexivity + +

    +
    + \[\inferrule{-\mid t}{t = t}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + REORDERING + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Boolean – Reordering + +

    +
    + \[\inferrule{C_1 \mid C_2}{C_2}\] +
    +

    + where +the multiset representations of + + \(C_1\) + + and + + \(C_2\) + + are the same. +endverbatim +

    +
    +
    +
    +
    + + + RESOLUTION + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Boolean – Resolution + +

    +
    + \[\inferrule{C_1, C_2 \mid pol, L}{C}\] +
    +

    + where +

    +
      +
    • +

      + + \(C_1\) + + and + + \(C_2\) + + are nodes viewed as clauses, i.e., either an + + + OR + + + node with each children viewed as a literal or a node viewed as a +literal. Note that an + + + OR + + + node could also be a literal. +

      +
    • +
    • +

      + + \(pol\) + + is either true or false, representing the polarity of the +pivot on the first clause +

      +
    • +
    • +

      + + \(L\) + + is the pivot of the resolution, which occurs as is (resp. under +a + + + NOT + + + ) in + + \(C_1\) + + and negatively (as is) in + + \(C_2\) + + if + + \(pol = \top\) + + ( + + \(pol = \bot\) + + ). +

      +
    • +
    +

    + + \(C\) + + is a clause resulting from collecting all the literals in + + \(C_1\) + + , minus the first occurrence of the pivot or its negation, and + + \(C_2\) + + , minus the first occurrence of the pivot or its negation, +according to the policy above. If the resulting clause has a single +literal, that literal itself is the result; if it has no literals, then the +result is false; otherwise it’s an + + + OR + + + node of the resulting literals. +

    +

    + Note that it may be the case that the pivot does not occur in the +clauses. In this case the rule is not unsound, but it does not correspond +to resolution but rather to a weakening of the clause that did not have a +literal eliminated. +endverbatim +

    +
    +
    +
    +
    + + + RE_INTER + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Strings – Regular expressions – Intersection + +

    +
    + \[\inferrule{t\in R_1,\,t\in R_2\mid -}{t\in \mathit{re.inter}(R_1,R_2)}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + RE_UNFOLD_NEG + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Strings – Regular expressions – Negative Unfold + +

    +
    + \[\inferrule{t \not \in \mathit{re}.\text{*}(R) \mid -}{t \neq \ \epsilon \ \wedge \forall L. L \leq 0 \vee \mathit{str.len}(t) < L \vee \mathit{pre}(t, L) \not \in R \vee \mathit{suf}(t, L) \not \in \mathit{re}.\text{*}(R)}\] +
    +

    + Or alternatively for regular expression concatenation: +

    +
    + \[\inferrule{t \not \in \mathit{re}.\text{++}(R_1, \ldots, R_n)\mid -}{\forall L. L < 0 \vee \mathit{str.len}(t) < L \vee \mathit{pre}(t, L) \not \in R_1 \vee \mathit{suf}(t, L) \not \in \mathit{re}.\text{++}(R_2, \ldots, R_n)}\] +
    +

    + Note that in either case the varaible + + \(L\) + + has type + + \(Int\) + + and +name + + “@var.str_index” + + . +

    +

    + endverbatim +

    +
    +
    +
    +
    + + + RE_UNFOLD_NEG_CONCAT_FIXED + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Strings – Regular expressions – Unfold negative concatenation, fixed + +

    +
    + \[ \inferrule{t\not\in \mathit{re}.\text{re.++}(r_1, \ldots, r_n) \mid \bot}{ +\mathit{pre}(t, L) \not \in r_1 \vee \mathit{suf}(t, L) \not \in \mathit{re}.\text{re.++}(r_2, \ldots, r_n)}\] +
    +

    + where + + \(r_1\) + + has fixed length + + \(L\) + + . +

    +

    + or alternatively for the reverse: +

    +
    + \[\inferrule{t \not \in \mathit{re}.\text{re.++}(r_1, \ldots, r_n) \mid \top}{ +\mathit{suf}(t, str.len(t) - L) \not \in r_n \vee +\mathit{pre}(t, str.len(t) - L) \not \in \mathit{re}.\text{re.++}(r_1, \ldots, r_{n-1})}\] +
    +

    + where + + \(r_n\) + + has fixed length + + \(L\) + + . +

    +

    + endverbatim +

    +
    +
    +
    +
    + + + RE_UNFOLD_POS + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Strings – Regular expressions – Positive Unfold + +

    +
    + \[\inferrule{t\in R\mid -}{F}\] +
    +

    + where + + \(F\) + + corresponds to the one-step unfolding of the premise. +This is implemented by + + \(\texttt{RegExpOpr::reduceRegExpPos}(t\in R)\) + + . +endverbatim +

    +
    +
    +
    +
    + + + SAT_EXTERNAL_PROVE + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + SAT external prove Refutation + +

    +
    + \[\inferrule{F_1 \dots F_n \mid D}{\bot}\] +
    +

    + where + + \(F_1 \dots F_n\) + + correspond to the input clauses in the +DIMACS file + + D + + . endverbatim +

    +
    +
    +
    +
    + + + SAT_REFUTATION + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + SAT Refutation for assumption-based unsat cores + +

    +
    + \[\inferrule{F_1 \dots F_n \mid -}{\bot}\] +
    +

    + where + + \(F_1 \dots F_n\) + + correspond to the unsat core determined by the +SAT solver. endverbatim +

    +
    +
    +
    +
    + + + SCOPE + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Scope (a binder for assumptions) + +

    +
    + \[\inferruleSC{F \mid F_1 \dots F_n}{(F_1 \land \dots \land F_n) +\Rightarrow F}{if $F\neq\bot$} \textrm{ or } \inferruleSC{F \mid F_1 +\dots F_n}{\neg (F_1 \land \dots \land F_n)}{if $F=\bot$}\] +
    +

    + This rule has a dual purpose with + + + ASSUME + + + . It is a way to close +assumptions in a proof. We require that + + \(F_1 \dots F_n\) + + are free +assumptions in P and say that + + \(F_1 \dots F_n\) + + are not free in + + + (SCOPE + + + P) + + + . In other words, they are bound by this application. For +example, the proof node: + + + (SCOPE + + + (ASSUME + + + F) + + + :args + + + F) + + + has the conclusion + + \(F \Rightarrow F\) + + and has no free assumptions. +More generally, a proof with no free assumptions always concludes a valid +formula. endverbatim +

    +
    +
    +
    +
    + + + SETS_EXT + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Sets – Sets extensionality + +

    +
    + \[\inferrule{a \neq b\mid -} +{\mathit{set.member}(k,a)\neq\mathit{set.member}(k,b)}\] +
    +

    + where + + \(k\) + + is the + + \(\texttt{SETS_DEQ_DIFF}\) + + skolem for + + (a, b) + + . +endverbatim +

    +
    +
    +
    +
    + + + SETS_FILTER_DOWN + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Sets – Sets filter down + +

    +
    + \[\inferrule{\mathit{set.member}(x,\mathit{set.filter}(P, a))\mid -} +{\mathit{set.member}(x,a) \wedge P(x)}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + SETS_FILTER_UP + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Sets – Sets filter up + +

    +
    + \[\inferrule{\mathit{set.member}(x,a)\mid P} +{\mathit{set.member}(x, \mathit{set.filter}(P, a)) = P(x)}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + SETS_SINGLETON_INJ + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Sets – Singleton injectivity + +

    +
    + \[\inferrule{\mathit{set.singleton}(t) = \mathit{set.singleton}(s)\mid -}{t=s}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + SKOLEMIZE + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Quantifiers – Skolemization + +

    +
    + \[\inferrule{\neg (\forall x_1\dots x_n.\> F)\mid -}{\neg F\sigma}\] +
    +

    + where + + \(\sigma\) + + maps + + \(x_1,\dots,x_n\) + + to their representative +skolems, which are skolems + + \(k_1,\dots,k_n\) + + . For each + + \(k_i\) + + , +its skolem identifier is + + + QUANTIFIERS_SKOLEMIZE + + + , +and its indices are + + \((\forall x_1\dots x_n.\> F)\) + + and + + \(x_i\) + + . +endverbatim +

    +
    +
    +
    +
    + + + SKOLEM_INTRO + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Quantifiers – Skolem introduction + +

    +
    + \[\inferrule{-\mid k}{k = t}\] +
    +

    + where + + \(t\) + + is the unpurified form of skolem + + \(k\) + + . +endverbatim +

    +
    +
    +
    +
    + + + SPLIT + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Boolean – Split + +

    +
    + \[\inferrule{- \mid F}{F \lor \neg F}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + STRING_CODE_INJ + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Strings – Code points + +

    +
    + \[\inferrule{-\mid t,s}{\mathit{to\_code}(t) = -1 \vee \mathit{to\_code}(t) \neq +\mathit{to\_code}(s) \vee t = s}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + STRING_DECOMPOSE + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Strings – Core rules – String decomposition + +

    +
    + \[\inferrule{\mathit{len}(t) \geq n\mid \bot}{t = w_1\cdot w_2 \wedge +\mathit{len}(w_1) = n}\] +
    +

    + where + + \(w_1\) + + is the purification skolem for + + \(\mathit{pre}(t,n)\) + + and + + \(w_2\) + + is the purification skolem for + + \(\mathit{suf}(t,n)\) + + . +Or alternatively for the reverse: +

    +
    + \[\inferrule{\mathit{len}(t) \geq n\mid \top}{t = w_1\cdot w_2 \wedge +\mathit{len}(w_2) = n}\] +
    +

    + where + + \(w_1\) + + is the purification skolem for + + \(\mathit{pre}(t,n)\) + + and + + \(w_2\) + + is the purification skolem for + + \(\mathit{suf}(t,n)\) + + . +endverbatim +

    +
    +
    +
    +
    + + + STRING_EAGER_REDUCTION + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Strings – Extended functions – Eager reduction + +

    +
    + \[\inferrule{-\mid t}{R}\] +
    +

    + where + + \(R\) + + is + + \(\texttt{TermRegistry::eagerReduce}(t)\) + + . +For details, see + + theory/strings/term_registry.h + + . +endverbatim +

    +
    +
    +
    +
    + + + STRING_EXT + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Strings – Extensionality + +

    +
    + \[\inferrule{s \neq t\mid -} +{\mathit{seq.len}(s) \neq \mathit{seq.len}(t) \vee (\mathit{seq.nth}(s,k)\neq\mathit{set.nth}(t,k) \wedge 0 \leq k \wedge k < \mathit{seq.len}(s))}\] +
    +

    + where + + \(s,t\) + + are terms of sequence type, + + \(k\) + + is the + + \(\texttt{STRINGS_DEQ_DIFF}\) + + skolem for + + \(s,t\) + + . Alternatively, +if + + \(s,t\) + + are terms of string type, we use + + \(\mathit{seq.substr}(s,k,1)\) + + instead of + + \(\mathit{seq.nth}(s,k)\) + + and similarly for + + \(t\) + + . +

    +

    + endverbatim +

    +
    +
    +
    +
    + + + STRING_LENGTH_NON_EMPTY + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Strings – Core rules – Length non-empty + +

    +
    + \[\inferrule{t\neq \epsilon\mid -}{\mathit{len}(t) \neq 0}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + STRING_LENGTH_POS + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Strings – Core rules – Length positive + +

    +
    + \[\inferrule{-\mid t}{(\mathit{len}(t) = 0\wedge t= \epsilon)\vee \mathit{len}(t) +> 0}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + STRING_REDUCTION + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Strings – Extended functions – Reduction + +

    +
    + \[\inferrule{-\mid t}{R\wedge t = w}\] +
    +

    + where + + \(w\) + + is + + \(\texttt{StringsPreprocess::reduce}(t, R, +\dots)\) + + . For details, see + + theory/strings/theory_strings_preprocess.h + + . +In other words, + + \(R\) + + is the reduction predicate for extended +term + + \(t\) + + , and + + \(w\) + + is the purification skolem for + + \(t\) + + . +

    +

    + Notice that the free variables of + + \(R\) + + are + + \(w\) + + and the free +variables of + + \(t\) + + . +endverbatim +

    +
    +
    +
    +
    + + + STRING_SEQ_UNIT_INJ + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Strings – Sequence unit + +

    +
    + \[\inferrule{\mathit{unit}(x) = \mathit{unit}(y)\mid -}{x = y}\] +
    +

    + Also applies to the case where + + \(\mathit{unit}(y)\) + + is a constant +sequence of length one. +endverbatim +

    +
    +
    +
    +
    + + + SUBS + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Builtin theory – Substitution + +

    +
    + \[\inferrule{F_1 \dots F_n \mid t, ids?}{t = t \circ \sigma_{ids}(F_n) +\circ \cdots \circ \sigma_{ids}(F_1)}\] +
    +

    + where + + \(\sigma_{ids}(F_i)\) + + are substitutions, which notice are applied +in reverse order. Notice that + + \(ids\) + + is a MethodId identifier, which +determines how to convert the formulas + + \(F_1 \dots F_n\) + + into +substitutions. It is an optional argument, where by default the premises +are equalities of the form + + (= x y) + + and converted into substitutions + + \(x\mapsto y\) + + . endverbatim +

    +
    +
    +
    +
    + + + SYMM + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Equality – Symmetry + +

    +
    + \[\inferrule{t_1 = t_2\mid -}{t_2 = t_1}\] +
    +

    + or +

    +
    + \[\inferrule{t_1 \neq t_2\mid -}{t_2 \neq t_1}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + THEORY_REWRITE + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Other theory rewrite rules + +

    +
    + \[\inferrule{- \mid id, t = t'}{t = t'}\] +
    +

    + where + + id + + is the + + + ProofRewriteRule + + + of the theory rewrite +rule which transforms + + \(t\) + + to + + \(t'\) + + . +

    +

    + In contrast to + + + + DSL_REWRITE + + + + , theory rewrite rules used by +this proof rule are not necessarily expressible in RARE. Each rule that can +be used in this proof rule are documented explicitly in cases within the + + + ProofRewriteRule + + + enum. +endverbatim +

    +
    +
    +
    +
    + + + TRANS + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Equality – Transitivity + +

    +
    + \[\inferrule{t_1=t_2,\dots,t_{n-1}=t_n\mid -}{t_1 = t_n}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + TRUE_ELIM + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Equality – True elim + +

    +
    + \[\inferrule{F=\top\mid -}{F}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + TRUE_INTRO + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Equality – True intro + +

    +
    + \[\inferrule{F\mid -}{F = \top}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + TRUST + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Trusted rule + +

    +
    + \[\inferrule{F_1 \dots F_n \mid tid, F, ...}{F}\] +
    +

    + where + + \(tid\) + + is an identifier and + + \(F\) + + is a formula. This rule +is used when a formal justification of an inference step cannot be provided. +The formulas + + \(F_1 \dots F_n\) + + refer to a set of formulas that +entail + + \(F\) + + , which may or may not be provided. +endverbatim +

    +
    +
    +
    +
    + + + TRUST_THEORY_REWRITE + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Trusted rules – Theory rewrite + +

    +
    + \[\inferrule{- \mid F, tid, rid}{F}\] +
    +

    + where + + \(F\) + + is an equality of the form + + \(t = t'\) + + where + + \(t'\) + + is obtained by applying the kind of rewriting given by the method +identifier + + \(rid\) + + , which is one of: + + + RW_REWRITE_THEORY_PRE + + + , + + + RW_REWRITE_THEORY_POST + + + , + + + RW_REWRITE_EQ_EXT + + + . Notice that the checker for this rule does not +replay the rewrite to ensure correctness, since theory rewriter methods are +not static. For example, the quantifiers rewriter involves constructing new +bound variables that are not guaranteed to be consistent on each call. +endverbatim +

    +
    +
    +
    +
    + + + UNKNOWN + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + External – Alethe + +

    +

    + Place holder for Alethe rules. +

    +
    + \[\inferrule{P_1, \dots, P_n\mid \texttt{id}, Q, Q', A_1,\dots, A_m}{Q}\] +
    +

    + Note that the premises and arguments are arbitrary. It’s expected that + + \(\texttt{id}\) + + refer to a proof rule in the external Alethe calculus, +and that + + \(Q'\) + + be the representation of Q to be printed by the Alethe +printer. +endverbatim +

    +
    +
    +
    +
    + + + XOR_ELIM1 + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Boolean – XOR elimination version 1 + +

    +
    + \[\inferrule{F_1 \xor F_2 \mid -}{F_1 \lor F_2}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + XOR_ELIM2 + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Boolean – XOR elimination version 2 + +

    +
    + \[\inferrule{F_1 \xor F_2 \mid -}{\neg F_1 \lor \neg F_2}\] +
    +

    + endverbatim +

    +
    +
    +
    +
    +
    +
    +
    + + + class + + + + + + + cvc5. + + + + + ProofRewriteRule + + + + ( + + + + + value + + + + + ) + + +  + +
    +
    +

    + The ProofRewriteRule enum +

    +
    +
    + + + ARITH_ABS_ELIM_INT + + + +  + +
    +
    +

    + Auto-generated from RARE rule arith-abs-elim-int +

    +
    +
    +
    +
    + + + ARITH_ABS_ELIM_REAL + + + +  + +
    +
    +

    + Auto-generated from RARE rule arith-abs-elim-real +

    +
    +
    +
    +
    + + + ARITH_ABS_EQ + + + +  + +
    +
    +

    + Auto-generated from RARE rule arith-abs-eq +

    +
    +
    +
    +
    + + + ARITH_ABS_INT_GT + + + +  + +
    +
    +

    + Auto-generated from RARE rule arith-abs-int-gt +

    +
    +
    +
    +
    + + + ARITH_ABS_REAL_GT + + + +  + +
    +
    +

    + Auto-generated from RARE rule arith-abs-real-gt +

    +
    +
    +
    +
    + + + ARITH_COSECENT_ELIM + + + +  + +
    +
    +

    + Auto-generated from RARE rule arith-cosecent-elim +

    +
    +
    +
    +
    + + + ARITH_COSINE_ELIM + + + +  + +
    +
    +

    + Auto-generated from RARE rule arith-cosine-elim +

    +
    +
    +
    +
    + + + ARITH_COTANGENT_ELIM + + + +  + +
    +
    +

    + Auto-generated from RARE rule arith-cotangent-elim +

    +
    +
    +
    +
    + + + ARITH_DIV_ELIM_TO_REAL1 + + + +  + +
    +
    +

    + Auto-generated from RARE rule arith-div-elim-to-real1 +

    +
    +
    +
    +
    + + + ARITH_DIV_ELIM_TO_REAL2 + + + +  + +
    +
    +

    + Auto-generated from RARE rule arith-div-elim-to-real2 +

    +
    +
    +
    +
    + + + ARITH_DIV_TOTAL_INT + + + +  + +
    +
    +

    + Auto-generated from RARE rule arith-div-total-int +

    +
    +
    +
    +
    + + + ARITH_DIV_TOTAL_REAL + + + +  + +
    +
    +

    + Auto-generated from RARE rule arith-div-total-real +

    +
    +
    +
    +
    + + + ARITH_DIV_TOTAL_ZERO_INT + + + +  + +
    +
    +

    + Auto-generated from RARE rule arith-div-total-zero-int +

    +
    +
    +
    +
    + + + ARITH_DIV_TOTAL_ZERO_REAL + + + +  + +
    +
    +

    + Auto-generated from RARE rule arith-div-total-zero-real +

    +
    +
    +
    +
    + + + ARITH_ELIM_GT + + + +  + +
    +
    +

    + Auto-generated from RARE rule arith-elim-gt +

    +
    +
    +
    +
    + + + ARITH_ELIM_INT_GT + + + +  + +
    +
    +

    + Auto-generated from RARE rule arith-elim-int-gt +

    +
    +
    +
    +
    + + + ARITH_ELIM_INT_LT + + + +  + +
    +
    +

    + Auto-generated from RARE rule arith-elim-int-lt +

    +
    +
    +
    +
    + + + ARITH_ELIM_LEQ + + + +  + +
    +
    +

    + Auto-generated from RARE rule arith-elim-leq +

    +
    +
    +
    +
    + + + ARITH_ELIM_LT + + + +  + +
    +
    +

    + Auto-generated from RARE rule arith-elim-lt +

    +
    +
    +
    +
    + + + ARITH_EQ_ELIM_INT + + + +  + +
    +
    +

    + Auto-generated from RARE rule arith-eq-elim-int +

    +
    +
    +
    +
    + + + ARITH_EQ_ELIM_REAL + + + +  + +
    +
    +

    + Auto-generated from RARE rule arith-eq-elim-real +

    +
    +
    +
    +
    + + + ARITH_GEQ_NORM1_INT + + + +  + +
    +
    +

    + Auto-generated from RARE rule arith-geq-norm1-int +

    +
    +
    +
    +
    + + + ARITH_GEQ_NORM1_REAL + + + +  + +
    +
    +

    + Auto-generated from RARE rule arith-geq-norm1-real +

    +
    +
    +
    +
    + + + ARITH_GEQ_NORM2 + + + +  + +
    +
    +

    + Auto-generated from RARE rule arith-geq-norm2 +

    +
    +
    +
    +
    + + + ARITH_GEQ_TIGHTEN + + + +  + +
    +
    +

    + Auto-generated from RARE rule arith-geq-tighten +

    +
    +
    +
    +
    + + + ARITH_INT_DIV_TOTAL + + + +  + +
    +
    +

    + Auto-generated from RARE rule arith-int-div-total +

    +
    +
    +
    +
    + + + ARITH_INT_DIV_TOTAL_ONE + + + +  + +
    +
    +

    + Auto-generated from RARE rule arith-int-div-total-one +

    +
    +
    +
    +
    + + + ARITH_INT_DIV_TOTAL_ZERO + + + +  + +
    +
    +

    + Auto-generated from RARE rule arith-int-div-total-zero +

    +
    +
    +
    +
    + + + ARITH_INT_MOD_TOTAL + + + +  + +
    +
    +

    + Auto-generated from RARE rule arith-int-mod-total +

    +
    +
    +
    +
    + + + ARITH_INT_MOD_TOTAL_ONE + + + +  + +
    +
    +

    + Auto-generated from RARE rule arith-int-mod-total-one +

    +
    +
    +
    +
    + + + ARITH_INT_MOD_TOTAL_ZERO + + + +  + +
    +
    +

    + Auto-generated from RARE rule arith-int-mod-total-zero +

    +
    +
    +
    +
    + + + ARITH_LEQ_NORM + + + +  + +
    +
    +

    + Auto-generated from RARE rule arith-leq-norm +

    +
    +
    +
    +
    + + + ARITH_MULT_DIST + + + +  + +
    +
    +

    + Auto-generated from RARE rule arith-mult-dist +

    +
    +
    +
    +
    + + + ARITH_MULT_FLATTEN + + + +  + +
    +
    +

    + Auto-generated from RARE rule arith-mult-flatten +

    +
    +
    +
    +
    + + + ARITH_MUL_ONE + + + +  + +
    +
    +

    + Auto-generated from RARE rule arith-mul-one +

    +
    +
    +
    +
    + + + ARITH_MUL_ZERO + + + +  + +
    +
    +

    + Auto-generated from RARE rule arith-mul-zero +

    +
    +
    +
    +
    + + + ARITH_PI_NOT_INT + + + +  + +
    +
    +

    + Auto-generated from RARE rule arith-pi-not-int +

    +
    +
    +
    +
    + + + ARITH_PLUS_FLATTEN + + + +  + +
    +
    +

    + Auto-generated from RARE rule arith-plus-flatten +

    +
    +
    +
    +
    + + + ARITH_POW_ELIM + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Arithmetic – power elimination + +

    +
    + \[(x ^ c) = (x \cdot \ldots \cdot x)\] +
    +

    + where + + \(c\) + + is a non-negative integer. +

    +

    + endverbatim +

    +
    +
    +
    +
    + + + ARITH_REFL_GEQ + + + +  + +
    +
    +

    + Auto-generated from RARE rule arith-refl-geq +

    +
    +
    +
    +
    + + + ARITH_REFL_GT + + + +  + +
    +
    +

    + Auto-generated from RARE rule arith-refl-gt +

    +
    +
    +
    +
    + + + ARITH_REFL_LEQ + + + +  + +
    +
    +

    + Auto-generated from RARE rule arith-refl-leq +

    +
    +
    +
    +
    + + + ARITH_REFL_LT + + + +  + +
    +
    +

    + Auto-generated from RARE rule arith-refl-lt +

    +
    +
    +
    +
    + + + ARITH_SECENT_ELIM + + + +  + +
    +
    +

    + Auto-generated from RARE rule arith-secent-elim +

    +
    +
    +
    +
    + + + ARITH_SINE_PI2 + + + +  + +
    +
    +

    + Auto-generated from RARE rule arith-sine-pi2 +

    +
    +
    +
    +
    + + + ARITH_SINE_ZERO + + + +  + +
    +
    +

    + Auto-generated from RARE rule arith-sine-zero +

    +
    +
    +
    +
    + + + ARITH_STRING_PRED_ENTAIL + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + 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. +

    +

    + endverbatim +

    +
    +
    +
    +
    + + + ARITH_STRING_PRED_SAFE_APPROX + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + 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”. +

    +

    + endverbatim +

    +
    +
    +
    +
    + + + ARITH_TANGENT_ELIM + + + +  + +
    +
    +

    + Auto-generated from RARE rule arith-tangent-elim +

    +
    +
    +
    +
    + + + ARITH_TO_INT_ELIM_TO_REAL + + + +  + +
    +
    +

    + Auto-generated from RARE rule arith-to-int-elim-to-real +

    +
    +
    +
    +
    + + + ARITH_TO_REAL_ELIM + + + +  + +
    +
    +

    + Auto-generated from RARE rule arith-to-real-elim +

    +
    +
    +
    +
    + + + ARRAYS_EQ_RANGE_EXPAND + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + 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)\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + ARRAYS_SELECT_CONST + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Arrays – Constant array select + +

    +
    + \[(select A x) = c\] +
    +

    + where + + \(A\) + + is a constant array storing element + + \(c\) + + . +

    +

    + endverbatim +

    +
    +
    +
    +
    + + + ARRAY_READ_OVER_WRITE + + + +  + +
    +
    +

    + Auto-generated from RARE rule array-read-over-write +

    +
    +
    +
    +
    + + + ARRAY_READ_OVER_WRITE2 + + + +  + +
    +
    +

    + Auto-generated from RARE rule array-read-over-write2 +

    +
    +
    +
    +
    + + + ARRAY_READ_OVER_WRITE_SPLIT + + + +  + +
    +
    +

    + Auto-generated from RARE rule array-read-over-write-split +

    +
    +
    +
    +
    + + + ARRAY_STORE_OVERWRITE + + + +  + +
    +
    +

    + Auto-generated from RARE rule array-store-overwrite +

    +
    +
    +
    +
    + + + ARRAY_STORE_SELF + + + +  + +
    +
    +

    + Auto-generated from RARE rule array-store-self +

    +
    +
    +
    +
    + + + BETA_REDUCE + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + 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 + + + Node::substitute + + + . +endverbatim +

    +
    +
    +
    +
    + + + BOOL_AND_CONF + + + +  + +
    +
    +

    + Auto-generated from RARE rule bool-and-conf +

    +
    +
    +
    +
    + + + BOOL_AND_CONF2 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bool-and-conf2 +

    +
    +
    +
    +
    + + + BOOL_AND_DE_MORGAN + + + +  + +
    +
    +

    + Auto-generated from RARE rule bool-and-de-morgan +

    +
    +
    +
    +
    + + + BOOL_AND_FALSE + + + +  + +
    +
    +

    + Auto-generated from RARE rule bool-and-false +

    +
    +
    +
    +
    + + + BOOL_AND_FLATTEN + + + +  + +
    +
    +

    + Auto-generated from RARE rule bool-and-flatten +

    +
    +
    +
    +
    + + + BOOL_DOUBLE_NOT_ELIM + + + +  + +
    +
    +

    + Auto-generated from RARE rule bool-double-not-elim +

    +
    +
    +
    +
    + + + BOOL_EQ_FALSE + + + +  + +
    +
    +

    + Auto-generated from RARE rule bool-eq-false +

    +
    +
    +
    +
    + + + BOOL_EQ_NREFL + + + +  + +
    +
    +

    + Auto-generated from RARE rule bool-eq-nrefl +

    +
    +
    +
    +
    + + + BOOL_EQ_TRUE + + + +  + +
    +
    +

    + Auto-generated from RARE rule bool-eq-true +

    +
    +
    +
    +
    + + + BOOL_IMPLIES_DE_MORGAN + + + +  + +
    +
    +

    + Auto-generated from RARE rule bool-implies-de-morgan +

    +
    +
    +
    +
    + + + BOOL_IMPL_ELIM + + + +  + +
    +
    +

    + Auto-generated from RARE rule bool-impl-elim +

    +
    +
    +
    +
    + + + BOOL_IMPL_FALSE1 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bool-impl-false1 +

    +
    +
    +
    +
    + + + BOOL_IMPL_FALSE2 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bool-impl-false2 +

    +
    +
    +
    +
    + + + BOOL_IMPL_TRUE1 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bool-impl-true1 +

    +
    +
    +
    +
    + + + BOOL_IMPL_TRUE2 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bool-impl-true2 +

    +
    +
    +
    +
    + + + BOOL_NOT_EQ_ELIM1 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bool-not-eq-elim1 +

    +
    +
    +
    +
    + + + BOOL_NOT_EQ_ELIM2 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bool-not-eq-elim2 +

    +
    +
    +
    +
    + + + BOOL_NOT_FALSE + + + +  + +
    +
    +

    + Auto-generated from RARE rule bool-not-false +

    +
    +
    +
    +
    + + + BOOL_NOT_ITE_ELIM + + + +  + +
    +
    +

    + Auto-generated from RARE rule bool-not-ite-elim +

    +
    +
    +
    +
    + + + BOOL_NOT_TRUE + + + +  + +
    +
    +

    + Auto-generated from RARE rule bool-not-true +

    +
    +
    +
    +
    + + + BOOL_NOT_XOR_ELIM + + + +  + +
    +
    +

    + Auto-generated from RARE rule bool-not-xor-elim +

    +
    +
    +
    +
    + + + BOOL_OR_AND_DISTRIB + + + +  + +
    +
    +

    + Auto-generated from RARE rule bool-or-and-distrib +

    +
    +
    +
    +
    + + + BOOL_OR_DE_MORGAN + + + +  + +
    +
    +

    + Auto-generated from RARE rule bool-or-de-morgan +

    +
    +
    +
    +
    + + + BOOL_OR_FLATTEN + + + +  + +
    +
    +

    + Auto-generated from RARE rule bool-or-flatten +

    +
    +
    +
    +
    + + + BOOL_OR_TAUT + + + +  + +
    +
    +

    + Auto-generated from RARE rule bool-or-taut +

    +
    +
    +
    +
    + + + BOOL_OR_TAUT2 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bool-or-taut2 +

    +
    +
    +
    +
    + + + BOOL_OR_TRUE + + + +  + +
    +
    +

    + Auto-generated from RARE rule bool-or-true +

    +
    +
    +
    +
    + + + BOOL_XOR_COMM + + + +  + +
    +
    +

    + Auto-generated from RARE rule bool-xor-comm +

    +
    +
    +
    +
    + + + BOOL_XOR_ELIM + + + +  + +
    +
    +

    + Auto-generated from RARE rule bool-xor-elim +

    +
    +
    +
    +
    + + + BOOL_XOR_FALSE + + + +  + +
    +
    +

    + Auto-generated from RARE rule bool-xor-false +

    +
    +
    +
    +
    + + + BOOL_XOR_NREFL + + + +  + +
    +
    +

    + Auto-generated from RARE rule bool-xor-nrefl +

    +
    +
    +
    +
    + + + BOOL_XOR_REFL + + + +  + +
    +
    +

    + Auto-generated from RARE rule bool-xor-refl +

    +
    +
    +
    +
    + + + BOOL_XOR_TRUE + + + +  + +
    +
    +

    + Auto-generated from RARE rule bool-xor-true +

    +
    +
    +
    +
    + + + BV_ADD_COMBINE_LIKE_TERMS + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Bitvectors – Combine like terms during addition by counting terms + + endverbatim +

    +
    +
    +
    +
    + + + BV_ADD_TWO + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-add-two +

    +
    +
    +
    +
    + + + BV_ADD_ZERO + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-add-zero +

    +
    +
    +
    +
    + + + BV_AND_CONCAT_PULLUP + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-and-concat-pullup +

    +
    +
    +
    +
    + + + BV_AND_FLATTEN + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-and-flatten +

    +
    +
    +
    +
    + + + BV_AND_ONE + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-and-one +

    +
    +
    +
    +
    + + + BV_AND_SIMPLIFY_1 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-and-simplify-1 +

    +
    +
    +
    +
    + + + BV_AND_SIMPLIFY_2 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-and-simplify-2 +

    +
    +
    +
    +
    + + + BV_AND_ZERO + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-and-zero +

    +
    +
    +
    +
    + + + BV_ASHR_BY_CONST_0 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-ashr-by-const-0 +

    +
    +
    +
    +
    + + + BV_ASHR_BY_CONST_1 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-ashr-by-const-1 +

    +
    +
    +
    +
    + + + BV_ASHR_BY_CONST_2 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-ashr-by-const-2 +

    +
    +
    +
    +
    + + + BV_ASHR_ZERO + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-ashr-zero +

    +
    +
    +
    +
    + + + BV_BITWISE_IDEMP_1 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-bitwise-idemp-1 +

    +
    +
    +
    +
    + + + BV_BITWISE_IDEMP_2 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-bitwise-idemp-2 +

    +
    +
    +
    +
    + + + BV_BITWISE_NOT_AND + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-bitwise-not-and +

    +
    +
    +
    +
    + + + BV_BITWISE_NOT_OR + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-bitwise-not-or +

    +
    +
    +
    +
    + + + BV_BITWISE_SLICING + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + 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 endverbatim +

    +
    +
    +
    +
    + + + BV_COMMUTATIVE_ADD + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-commutative-add +

    +
    +
    +
    +
    + + + BV_COMMUTATIVE_AND + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-commutative-and +

    +
    +
    +
    +
    + + + BV_COMMUTATIVE_MUL + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-commutative-mul +

    +
    +
    +
    +
    + + + BV_COMMUTATIVE_OR + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-commutative-or +

    +
    +
    +
    +
    + + + BV_COMMUTATIVE_XOR + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-commutative-xor +

    +
    +
    +
    +
    + + + BV_COMP_ELIMINATE + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-comp-eliminate +

    +
    +
    +
    +
    + + + BV_CONCAT_EXTRACT_MERGE + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-concat-extract-merge +

    +
    +
    +
    +
    + + + BV_CONCAT_FLATTEN + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-concat-flatten +

    +
    +
    +
    +
    + + + BV_CONCAT_MERGE_CONST + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-concat-merge-const +

    +
    +
    +
    +
    + + + BV_CONCAT_TO_MULT + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-concat-to-mult +

    +
    +
    +
    +
    + + + BV_EQ_EXTRACT_ELIM1 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-eq-extract-elim1 +

    +
    +
    +
    +
    + + + BV_EQ_EXTRACT_ELIM2 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-eq-extract-elim2 +

    +
    +
    +
    +
    + + + BV_EQ_EXTRACT_ELIM3 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-eq-extract-elim3 +

    +
    +
    +
    +
    + + + BV_EXTRACT_BITWISE_AND + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-extract-bitwise-and +

    +
    +
    +
    +
    + + + BV_EXTRACT_BITWISE_OR + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-extract-bitwise-or +

    +
    +
    +
    +
    + + + BV_EXTRACT_BITWISE_XOR + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-extract-bitwise-xor +

    +
    +
    +
    +
    + + + BV_EXTRACT_CONCAT_1 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-extract-concat-1 +

    +
    +
    +
    +
    + + + BV_EXTRACT_CONCAT_2 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-extract-concat-2 +

    +
    +
    +
    +
    + + + BV_EXTRACT_CONCAT_3 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-extract-concat-3 +

    +
    +
    +
    +
    + + + BV_EXTRACT_CONCAT_4 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-extract-concat-4 +

    +
    +
    +
    +
    + + + BV_EXTRACT_EXTRACT + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-extract-extract +

    +
    +
    +
    +
    + + + BV_EXTRACT_MULT_LEADING_BIT + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-extract-mult-leading-bit +

    +
    +
    +
    +
    + + + BV_EXTRACT_NOT + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-extract-not +

    +
    +
    +
    +
    + + + BV_EXTRACT_SIGN_EXTEND_1 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-extract-sign-extend-1 +

    +
    +
    +
    +
    + + + BV_EXTRACT_SIGN_EXTEND_2 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-extract-sign-extend-2 +

    +
    +
    +
    +
    + + + BV_EXTRACT_SIGN_EXTEND_3 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-extract-sign-extend-3 +

    +
    +
    +
    +
    + + + BV_EXTRACT_WHOLE + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-extract-whole +

    +
    +
    +
    +
    + + + BV_ITE_CONST_CHILDREN_1 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-ite-const-children-1 +

    +
    +
    +
    +
    + + + BV_ITE_CONST_CHILDREN_2 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-ite-const-children-2 +

    +
    +
    +
    +
    + + + BV_ITE_EQUAL_CHILDREN + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-ite-equal-children +

    +
    +
    +
    +
    + + + BV_ITE_EQUAL_COND_1 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-ite-equal-cond-1 +

    +
    +
    +
    +
    + + + BV_ITE_EQUAL_COND_2 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-ite-equal-cond-2 +

    +
    +
    +
    +
    + + + BV_ITE_EQUAL_COND_3 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-ite-equal-cond-3 +

    +
    +
    +
    +
    + + + BV_ITE_MERGE_ELSE_ELSE + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-ite-merge-else-else +

    +
    +
    +
    +
    + + + BV_ITE_MERGE_ELSE_IF + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-ite-merge-else-if +

    +
    +
    +
    +
    + + + BV_ITE_MERGE_THEN_ELSE + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-ite-merge-then-else +

    +
    +
    +
    +
    + + + BV_ITE_MERGE_THEN_IF + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-ite-merge-then-if +

    +
    +
    +
    +
    + + + BV_LSHR_BY_CONST_0 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-lshr-by-const-0 +

    +
    +
    +
    +
    + + + BV_LSHR_BY_CONST_1 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-lshr-by-const-1 +

    +
    +
    +
    +
    + + + BV_LSHR_BY_CONST_2 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-lshr-by-const-2 +

    +
    +
    +
    +
    + + + BV_LSHR_ZERO + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-lshr-zero +

    +
    +
    +
    +
    + + + BV_LT_SELF + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-lt-self +

    +
    +
    +
    +
    + + + BV_MERGE_SIGN_EXTEND_1 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-merge-sign-extend-1 +

    +
    +
    +
    +
    + + + BV_MERGE_SIGN_EXTEND_2 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-merge-sign-extend-2 +

    +
    +
    +
    +
    + + + BV_MERGE_SIGN_EXTEND_3 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-merge-sign-extend-3 +

    +
    +
    +
    +
    + + + BV_MULT_DISTRIB_1 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-mult-distrib-1 +

    +
    +
    +
    +
    + + + BV_MULT_DISTRIB_2 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-mult-distrib-2 +

    +
    +
    +
    +
    + + + BV_MULT_DISTRIB_CONST_ADD + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-mult-distrib-const-add +

    +
    +
    +
    +
    + + + BV_MULT_DISTRIB_CONST_NEG + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-mult-distrib-const-neg +

    +
    +
    +
    +
    + + + BV_MULT_DISTRIB_CONST_SUB + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-mult-distrib-const-sub +

    +
    +
    +
    +
    + + + BV_MULT_POW2_1 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-mult-pow2-1 +

    +
    +
    +
    +
    + + + BV_MULT_POW2_2 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-mult-pow2-2 +

    +
    +
    +
    +
    + + + BV_MULT_POW2_2B + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-mult-pow2-2b +

    +
    +
    +
    +
    + + + BV_MULT_SIMPLIFY + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Bitvectors – Extract negations from multiplicands + +

    +
    + \[bvmul(bvneg(a),\ b,\ c) = bvneg(bvmul(a,\ b,\ c))\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + BV_MULT_SLT_MULT_1 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-mult-slt-mult-1 +

    +
    +
    +
    +
    + + + BV_MULT_SLT_MULT_2 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-mult-slt-mult-2 +

    +
    +
    +
    +
    + + + BV_MUL_FLATTEN + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-mul-flatten +

    +
    +
    +
    +
    + + + BV_MUL_ONE + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-mul-one +

    +
    +
    +
    +
    + + + BV_MUL_ZERO + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-mul-zero +

    +
    +
    +
    +
    + + + BV_NAND_ELIMINATE + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-nand-eliminate +

    +
    +
    +
    +
    + + + BV_NEG_ADD + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-neg-add +

    +
    +
    +
    +
    + + + BV_NEG_IDEMP + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-neg-idemp +

    +
    +
    +
    +
    + + + BV_NEG_MULT + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-neg-mult +

    +
    +
    +
    +
    + + + BV_NEG_SUB + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-neg-sub +

    +
    +
    +
    +
    + + + BV_NOR_ELIMINATE + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-nor-eliminate +

    +
    +
    +
    +
    + + + BV_NOT_IDEMP + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-not-idemp +

    +
    +
    +
    +
    + + + BV_NOT_NEQ + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-not-neq +

    +
    +
    +
    +
    + + + BV_NOT_SLE + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-not-sle +

    +
    +
    +
    +
    + + + BV_NOT_ULE + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-not-ule +

    +
    +
    +
    +
    + + + BV_NOT_ULT + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-not-ult +

    +
    +
    +
    +
    + + + BV_NOT_XOR + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-not-xor +

    +
    +
    +
    +
    + + + BV_OR_CONCAT_PULLUP + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-or-concat-pullup +

    +
    +
    +
    +
    + + + BV_OR_FLATTEN + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-or-flatten +

    +
    +
    +
    +
    + + + BV_OR_ONE + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-or-one +

    +
    +
    +
    +
    + + + BV_OR_SIMPLIFY_1 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-or-simplify-1 +

    +
    +
    +
    +
    + + + BV_OR_SIMPLIFY_2 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-or-simplify-2 +

    +
    +
    +
    +
    + + + BV_OR_ZERO + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-or-zero +

    +
    +
    +
    +
    + + + BV_REDAND_ELIMINATE + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-redand-eliminate +

    +
    +
    +
    +
    + + + BV_REDOR_ELIMINATE + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-redor-eliminate +

    +
    +
    +
    +
    + + + BV_REPEAT_ELIM + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Bitvectors – Extract continuous substrings of bitvectors + +

    +
    + \[repeat(n,\ t) = concat(t ... t)\] +
    +

    + where + + \(t\) + + is repeated + + \(n\) + + times. +endverbatim +

    +
    +
    +
    +
    + + + BV_ROTATE_LEFT_ELIMINATE_1 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-rotate-left-eliminate-1 +

    +
    +
    +
    +
    + + + BV_ROTATE_LEFT_ELIMINATE_2 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-rotate-left-eliminate-2 +

    +
    +
    +
    +
    + + + BV_ROTATE_RIGHT_ELIMINATE_1 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-rotate-right-eliminate-1 +

    +
    +
    +
    +
    + + + BV_ROTATE_RIGHT_ELIMINATE_2 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-rotate-right-eliminate-2 +

    +
    +
    +
    +
    + + + BV_SADDO_ELIMINATE + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-saddo-eliminate +

    +
    +
    +
    +
    + + + BV_SDIVO_ELIMINATE + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-sdivo-eliminate +

    +
    +
    +
    +
    + + + BV_SDIV_ELIMINATE + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-sdiv-eliminate +

    +
    +
    +
    +
    + + + BV_SDIV_ELIMINATE_FEWER_BITWISE_OPS + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-sdiv-eliminate-fewer-bitwise-ops +

    +
    +
    +
    +
    + + + BV_SGE_ELIMINATE + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-sge-eliminate +

    +
    +
    +
    +
    + + + BV_SGT_ELIMINATE + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-sgt-eliminate +

    +
    +
    +
    +
    + + + BV_SHL_BY_CONST_0 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-shl-by-const-0 +

    +
    +
    +
    +
    + + + BV_SHL_BY_CONST_1 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-shl-by-const-1 +

    +
    +
    +
    +
    + + + BV_SHL_BY_CONST_2 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-shl-by-const-2 +

    +
    +
    +
    +
    + + + BV_SHL_ZERO + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-shl-zero +

    +
    +
    +
    +
    + + + BV_SIGN_EXTEND_ELIMINATE + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-sign-extend-eliminate +

    +
    +
    +
    +
    + + + BV_SIGN_EXTEND_ELIMINATE_0 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-sign-extend-eliminate-0 +

    +
    +
    +
    +
    + + + BV_SIGN_EXTEND_EQ_CONST_1 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-sign-extend-eq-const-1 +

    +
    +
    +
    +
    + + + BV_SIGN_EXTEND_EQ_CONST_2 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-sign-extend-eq-const-2 +

    +
    +
    +
    +
    + + + BV_SIGN_EXTEND_ULT_CONST_1 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-sign-extend-ult-const-1 +

    +
    +
    +
    +
    + + + BV_SIGN_EXTEND_ULT_CONST_2 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-sign-extend-ult-const-2 +

    +
    +
    +
    +
    + + + BV_SIGN_EXTEND_ULT_CONST_3 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-sign-extend-ult-const-3 +

    +
    +
    +
    +
    + + + BV_SIGN_EXTEND_ULT_CONST_4 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-sign-extend-ult-const-4 +

    +
    +
    +
    +
    + + + BV_SLE_ELIMINATE + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-sle-eliminate +

    +
    +
    +
    +
    + + + BV_SLE_SELF + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-sle-self +

    +
    +
    +
    +
    + + + BV_SLT_ELIMINATE + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-slt-eliminate +

    +
    +
    +
    +
    + + + BV_SLT_ZERO + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-slt-zero +

    +
    +
    +
    +
    + + + BV_SMOD_ELIMINATE + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-smod-eliminate +

    +
    +
    +
    +
    + + + BV_SMOD_ELIMINATE_FEWER_BITWISE_OPS + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-smod-eliminate-fewer-bitwise-ops +

    +
    +
    +
    +
    + + + BV_SMULO_ELIMINATE + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Bitvectors – Unsigned multiplication overflow detection elimination + +

    +

    + See M.Gok, M.J. Schulte, P.I. Balzola, “Efficient integer multiplication +overflow detection circuits”, 2001. +http: +endverbatim +

    +
    +
    +
    +
    + + + BV_SREM_ELIMINATE + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-srem-eliminate +

    +
    +
    +
    +
    + + + BV_SREM_ELIMINATE_FEWER_BITWISE_OPS + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-srem-eliminate-fewer-bitwise-ops +

    +
    +
    +
    +
    + + + BV_SSUBO_ELIMINATE + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-ssubo-eliminate +

    +
    +
    +
    +
    + + + BV_SUB_ELIMINATE + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-sub-eliminate +

    +
    +
    +
    +
    + + + BV_TO_NAT_ELIM + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + UF – Bitvector to natural elimination + +

    +
    + \[\texttt{bv2nat}(t) = t_1 + \ldots + t_n\] +
    +

    + where for + + \(i=1, \ldots, n\) + + , + + \(t_i\) + + is + + \(\texttt{ite}(x[i-1, i-1] = 1, 2^i, 0)\) + + . +

    +

    + endverbatim +

    +
    +
    +
    +
    + + + BV_UADDO_ELIMINATE + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-uaddo-eliminate +

    +
    +
    +
    +
    + + + BV_UDIV_ONE + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-udiv-one +

    +
    +
    +
    +
    + + + BV_UDIV_POW2_NOT_ONE + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-udiv-pow2-not-one +

    +
    +
    +
    +
    + + + BV_UDIV_ZERO + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-udiv-zero +

    +
    +
    +
    +
    + + + BV_UGE_ELIMINATE + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-uge-eliminate +

    +
    +
    +
    +
    + + + BV_UGT_ELIMINATE + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-ugt-eliminate +

    +
    +
    +
    +
    + + + BV_UGT_UREM + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-ugt-urem +

    +
    +
    +
    +
    + + + BV_ULE_ELIMINATE + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-ule-eliminate +

    +
    +
    +
    +
    + + + BV_ULE_MAX + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-ule-max +

    +
    +
    +
    +
    + + + BV_ULE_SELF + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-ule-self +

    +
    +
    +
    +
    + + + BV_ULE_ZERO + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-ule-zero +

    +
    +
    +
    +
    + + + BV_ULT_ADD_ONE + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-ult-add-one +

    +
    +
    +
    +
    + + + BV_ULT_ONE + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-ult-one +

    +
    +
    +
    +
    + + + BV_ULT_ONES + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-ult-ones +

    +
    +
    +
    +
    + + + BV_ULT_SELF + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-ult-self +

    +
    +
    +
    +
    + + + BV_ULT_ZERO_1 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-ult-zero-1 +

    +
    +
    +
    +
    + + + BV_ULT_ZERO_2 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-ult-zero-2 +

    +
    +
    +
    +
    + + + BV_UMULO_ELIMINATE + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Bitvectors – Unsigned multiplication overflow detection elimination + +

    +

    + See M.Gok, M.J. Schulte, P.I. Balzola, “Efficient integer multiplication +overflow detection circuits”, 2001. +http: +endverbatim +

    +
    +
    +
    +
    + + + BV_UREM_ONE + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-urem-one +

    +
    +
    +
    +
    + + + BV_UREM_POW2_NOT_ONE + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-urem-pow2-not-one +

    +
    +
    +
    +
    + + + BV_UREM_SELF + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-urem-self +

    +
    +
    +
    +
    + + + BV_USUBO_ELIMINATE + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-usubo-eliminate +

    +
    +
    +
    +
    + + + BV_XNOR_ELIMINATE + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-xnor-eliminate +

    +
    +
    +
    +
    + + + BV_XOR_CONCAT_PULLUP + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-xor-concat-pullup +

    +
    +
    +
    +
    + + + BV_XOR_DUPLICATE + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-xor-duplicate +

    +
    +
    +
    +
    + + + BV_XOR_FLATTEN + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-xor-flatten +

    +
    +
    +
    +
    + + + BV_XOR_NOT + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-xor-not +

    +
    +
    +
    +
    + + + BV_XOR_ONES + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-xor-ones +

    +
    +
    +
    +
    + + + BV_XOR_SIMPLIFY_1 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-xor-simplify-1 +

    +
    +
    +
    +
    + + + BV_XOR_SIMPLIFY_2 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-xor-simplify-2 +

    +
    +
    +
    +
    + + + BV_XOR_SIMPLIFY_3 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-xor-simplify-3 +

    +
    +
    +
    +
    + + + BV_XOR_ZERO + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-xor-zero +

    +
    +
    +
    +
    + + + BV_ZERO_EXTEND_ELIMINATE + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-zero-extend-eliminate +

    +
    +
    +
    +
    + + + BV_ZERO_EXTEND_ELIMINATE_0 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-zero-extend-eliminate-0 +

    +
    +
    +
    +
    + + + BV_ZERO_EXTEND_EQ_CONST_1 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-zero-extend-eq-const-1 +

    +
    +
    +
    +
    + + + BV_ZERO_EXTEND_EQ_CONST_2 + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-zero-extend-eq-const-2 +

    +
    +
    +
    +
    + + + BV_ZERO_ULE + + + +  + +
    +
    +

    + Auto-generated from RARE rule bv-zero-ule +

    +
    +
    +
    +
    + + + DISTINCT_BINARY_ELIM + + + +  + +
    +
    +

    + Auto-generated from RARE rule distinct-binary-elim +

    +
    +
    +
    +
    + + + DISTINCT_CARD_CONFLICT + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Builtin – Distinct cardinality conflict + +

    +
    + \[\texttt{distinct}(t_1, \ldots, tn) = \bot\] +
    +

    + where + + \(n\) + + is greater than the cardinality of the type of + + \(t_1, \ldots, t_n\) + + . +

    +

    + endverbatim +

    +
    +
    +
    +
    + + + DISTINCT_ELIM + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Builtin – Distinct elimination + +

    +
    + \[\texttt{distinct}(t_1, t_2) = \neg (t_1 = t2)\] +
    +

    + if + + \(n = 2\) + + , or +

    +
    + \[\texttt{distinct}(t_1, \ldots, tn) = \bigwedge_{i=1}^n \bigwedge_{j=i+1}^n t_i \neq t_j\] +
    +

    + if + + \(n > 2\) + +

    +

    + endverbatim +

    +
    +
    +
    +
    + + + DT_COLLAPSE_SELECTOR + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Datatypes – collapse selector + +

    +
    + \[s_i(c(t_1, \ldots, t_n)) = t_i\] +
    +

    + where + + \(s_i\) + + is the + + \(i^{th}\) + + selector for constructor + + \(c\) + + . +

    +

    + endverbatim +

    +
    +
    +
    +
    + + + DT_COLLAPSE_TESTER + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + 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. +

    +

    + endverbatim +

    +
    +
    +
    +
    + + + DT_COLLAPSE_TESTER_SINGLETON + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Datatypes – collapse tester + +

    +
    + \[\mathit{is}_c(t) = true\] +
    +

    + where + + \(c\) + + is the only constructor of its associated datatype. +

    +

    + endverbatim +

    +
    +
    +
    +
    + + + DT_COLLAPSE_UPDATER + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Datatypes – collapse tester + +

    +
    + \[u_{c,i}(c(t_1, \ldots, t_i, \ldots, t_n), s) = c(t_1, \ldots, s, \ldots, t_n)\] +
    +

    + or alternatively +

    +
    + \[u_{c,i}(d(t_1, \ldots, t_n), s) = d(t_1, \ldots, t_n)\] +
    +

    + where + + \(c\) + + and + + \(d\) + + are distinct constructors. +

    +

    + endverbatim +

    +
    +
    +
    +
    + + + DT_CONS_EQ + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + 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. +

    +

    + endverbatim +

    +
    +
    +
    +
    + + + DT_CYCLE + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Datatypes – cycle + +

    +
    + \[(x = t[x]) = \bot\] +
    +

    + where all terms on the path to + + \(x\) + + in + + \(t[x]\) + + are applications +of constructors, and this path is non-empty. +

    +

    + endverbatim +

    +
    +
    +
    +
    + + + DT_INST + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + 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\) + + . +endverbatim +

    +
    +
    +
    +
    + + + DT_MATCH_ELIM + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Datatypes – match elimination + +

    +
    + \[\texttt{match}(t ((p_1 c_1) \ldots (p_n c_n))) = \texttt{ite}(F_1, r_1, \texttt{ite}( \ldots, r_n))\] +
    +

    + where for + + \(i=1, \ldots, n\) + + , + + \(F_1\) + + is a formula that holds iff + + \(t\) + + matches + + \(p_i\) + + and + + \(r_i\) + + is the result of a +substitution on + + \(c_i\) + + based on this match. +

    +

    + endverbatim +

    +
    +
    +
    +
    + + + DT_UPDATER_ELIM + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Datatypes - updater elimination + +

    +
    + \[u_{c,i}(t, s) = ite(\mathit{is}_c(t), c(s_0(t), \ldots, s, \ldots s_n(t)), t)\] +
    +

    + where + + \(s_i\) + + is the + + \(i^{th}\) + + selector for constructor + + \(c\) + + . +

    +

    + endverbatim +

    +
    +
    +
    +
    + + + EQ_COND_DEQ + + + +  + +
    +
    +

    + Auto-generated from RARE rule eq-cond-deq +

    +
    +
    +
    +
    + + + EQ_ITE_LIFT + + + +  + +
    +
    +

    + Auto-generated from RARE rule eq-ite-lift +

    +
    +
    +
    +
    + + + EQ_REFL + + + +  + +
    +
    +

    + Auto-generated from RARE rule eq-refl +

    +
    +
    +
    +
    + + + EQ_SYMM + + + +  + +
    +
    +

    + Auto-generated from RARE rule eq-symm +

    +
    +
    +
    +
    + + + EXISTS_ELIM + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Quantifiers – Exists elimination + +

    +
    + \[\exists x_1\dots x_n.\> F = \neg \forall x_1\dots x_n.\> \neg F\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + INT_TO_BV_ELIM + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + UF – Integer to bitvector elimination + +

    +
    + \[\texttt{int2bv}_n(t) = (bvconcat t_1 \ldots t_n)\] +
    +

    + where for + + \(i=1, \ldots, n\) + + , + + \(t_i\) + + is + + \(\texttt{ite}(\texttt{mod}(t,2^n) \geq 2^{n-1}, 1, 0)\) + + . +

    +

    + endverbatim +

    +
    +
    +
    +
    + + + ITE_ELSE_FALSE + + + +  + +
    +
    +

    + Auto-generated from RARE rule ite-else-false +

    +
    +
    +
    +
    + + + ITE_ELSE_LOOKAHEAD + + + +  + +
    +
    +

    + Auto-generated from RARE rule ite-else-lookahead +

    +
    +
    +
    +
    + + + ITE_ELSE_LOOKAHEAD_NOT_SELF + + + +  + +
    +
    +

    + Auto-generated from RARE rule ite-else-lookahead-not-self +

    +
    +
    +
    +
    + + + ITE_ELSE_LOOKAHEAD_SELF + + + +  + +
    +
    +

    + Auto-generated from RARE rule ite-else-lookahead-self +

    +
    +
    +
    +
    + + + ITE_ELSE_NEG_LOOKAHEAD + + + +  + +
    +
    +

    + Auto-generated from RARE rule ite-else-neg-lookahead +

    +
    +
    +
    +
    + + + ITE_ELSE_TRUE + + + +  + +
    +
    +

    + Auto-generated from RARE rule ite-else-true +

    +
    +
    +
    +
    + + + ITE_EQ_BRANCH + + + +  + +
    +
    +

    + Auto-generated from RARE rule ite-eq-branch +

    +
    +
    +
    +
    + + + ITE_EXPAND + + + +  + +
    +
    +

    + Auto-generated from RARE rule ite-expand +

    +
    +
    +
    +
    + + + ITE_FALSE_COND + + + +  + +
    +
    +

    + Auto-generated from RARE rule ite-false-cond +

    +
    +
    +
    +
    + + + ITE_NEG_BRANCH + + + +  + +
    +
    +

    + Auto-generated from RARE rule ite-neg-branch +

    +
    +
    +
    +
    + + + ITE_NOT_COND + + + +  + +
    +
    +

    + Auto-generated from RARE rule ite-not-cond +

    +
    +
    +
    +
    + + + ITE_THEN_FALSE + + + +  + +
    +
    +

    + Auto-generated from RARE rule ite-then-false +

    +
    +
    +
    +
    + + + ITE_THEN_LOOKAHEAD + + + +  + +
    +
    +

    + Auto-generated from RARE rule ite-then-lookahead +

    +
    +
    +
    +
    + + + ITE_THEN_LOOKAHEAD_NOT_SELF + + + +  + +
    +
    +

    + Auto-generated from RARE rule ite-then-lookahead-not-self +

    +
    +
    +
    +
    + + + ITE_THEN_LOOKAHEAD_SELF + + + +  + +
    +
    +

    + Auto-generated from RARE rule ite-then-lookahead-self +

    +
    +
    +
    +
    + + + ITE_THEN_NEG_LOOKAHEAD + + + +  + +
    +
    +

    + Auto-generated from RARE rule ite-then-neg-lookahead +

    +
    +
    +
    +
    + + + ITE_THEN_TRUE + + + +  + +
    +
    +

    + Auto-generated from RARE rule ite-then-true +

    +
    +
    +
    +
    + + + ITE_TRUE_COND + + + +  + +
    +
    +

    + Auto-generated from RARE rule ite-true-cond +

    +
    +
    +
    +
    + + + LAMBDA_ELIM + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Equality – Lambda elimination + +

    +
    + \[(\lambda x_1 \ldots x_n.\> f(x_1 \ldots x_n)) = f\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + MACRO_ARITH_STRING_PRED_ENTAIL + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Arithmetic – strings predicate entailment + +

    +
    + \[(= s t) = c\] +
    +
    + \[(>= s t) = c\] +
    +

    + where + + \(c\) + + is a Boolean constant. +This macro is elaborated by applications of + + + EVALUATE + + + , + + + ARITH_POLY_NORM + + + , + + + ARITH_STRING_PRED_ENTAIL + + + , + + + ARITH_STRING_PRED_SAFE_APPROX + + + , +as well as other rewrites for normalizing arithmetic predicates. +

    +

    + endverbatim +

    +
    +
    +
    +
    + + + MACRO_ARRAYS_DISTINCT_ARRAYS + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Arrays – Macro distinct arrays + +

    +
    + \[(A = B) = \bot\] +
    +

    + where + + \(A\) + + and + + \(B\) + + are distinct array values, that is, +the Node::isConst method returns true for both. +

    +

    + endverbatim +

    +
    +
    +
    +
    + + + MACRO_ARRAYS_NORMALIZE_CONSTANT + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Arrays – Macro normalize constant + +

    +
    + \[A = B\] +
    +

    + where + + \(B\) + + is the result of normalizing the array value + + \(A\) + + into a canonical form, using the internal method +TheoryArraysRewriter::normalizeConstant. +

    +

    + endverbatim +

    +
    +
    +
    +
    + + + MACRO_BOOL_NNF_NORM + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + 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. +

    +

    + endverbatim +

    +
    +
    +
    +
    + + + MACRO_QUANT_MERGE_PRENEX + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Quantifiers – Macro merge prenex + +

    +
    + \[\forall X_1.\> \ldots \forall X_n.\> F = \forall X.\> F\] +
    +

    + where + + \(X_1 \ldots X_n\) + + are lists of variables and + + \(X\) + + is the +result of removing duplicates from + + \(X_1 \ldots X_n\) + + . +

    +

    + endverbatim +

    +
    +
    +
    +
    + + + MACRO_QUANT_MINISCOPE + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Quantifiers – Macro miniscoping + +

    +
    + \[\forall X.\> F_1 \wedge \cdots \wedge F_n = +G_1 \wedge \cdots \wedge G_n\] +
    +

    + where each + + \(G_i\) + + is semantically equivalent to + + \(\forall X.\> F_i\) + + , or alternatively +

    +
    + \[\forall X.\> \ite{C}{F_1}{F_2} = \ite{C}{G_1}{G_2}\] +
    +

    + where + + \(C\) + + does not have any free variable in + + \(X\) + + . +

    +

    + endverbatim +

    +
    +
    +
    +
    + + + MACRO_QUANT_PARTITION_CONNECTED_FV + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + 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\) + + . +endverbatim +

    +
    +
    +
    +
    + + + MACRO_QUANT_PRENEX + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Quantifiers – Macro prenex + +

    +
    + \[(\forall X.\> F_1 \vee \cdots \vee (\forall Y.\> F_i) \vee \cdots \vee F_n) = (\forall X Z.\> F_1 \vee \cdots \vee F_i\{ Y \mapsto Z \} \vee \cdots \vee F_n)\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + MACRO_QUANT_REWRITE_BODY + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Quantifiers – Macro quantifiers rewrite body + +

    +
    + \[\forall X.\> F = \forall X.\> G\] +
    +

    + where + + \(G\) + + is semantically equivalent to + + \(F\) + + . +

    +

    + endverbatim +

    +
    +
    +
    +
    + + + MACRO_QUANT_VAR_ELIM_EQ + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Quantifiers – Macro variable elimination equality + +

    +
    + \[\forall x Y.\> F = \forall Y.\> F \{ x \mapsto t \}\] +
    +

    + where + + \(\neg F\) + + entails + + \(x = t\) + + . +

    +

    + endverbatim +

    +
    +
    +
    +
    + + + MACRO_QUANT_VAR_ELIM_INEQ + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Quantifiers – Macro variable elimination inequality + +

    +
    + \[\forall x Y.\> F = \forall Y.\> G\] +
    +

    + where + + \(G\) + + is the result of replacing all literals containing + + \(x\) + + with a constant. This is applied only when all such literals +are lower (resp. upper) bounds for + + \(x\) + + . +

    +

    + endverbatim +

    +
    +
    +
    +
    + + + MACRO_SUBSTR_STRIP_SYM_LENGTH + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + 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\) + + . +

    +

    + endverbatim +

    +
    +
    +
    +
    + + + NONE + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk +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 + + + proof rule +and the + + + THEORY_REWRITE + + + proof rule. +endverbatim +

    +
    +
    +
    +
    + + + QUANT_DT_SPLIT + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Quantifiers – Datatypes Split + +

    +
    + \[(\forall x Y.\> F) = (\forall X_1 Y. F_1) \vee \cdots \vee (\forall X_n Y. F_n)\] +
    +

    + where + + \(x\) + + is of a datatype type with constructors + + \(C_1, \ldots, C_n\) + + , where for each + + \(i = 1, \ldots, n\) + + , + + \(F_i\) + + is + + \(F \{ x \mapsto C_i(X_i) \}\) + + . +

    +

    + endverbatim +

    +
    +
    +
    +
    + + + QUANT_MERGE_PRENEX + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + 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. +

    +

    + endverbatim +

    +
    +
    +
    +
    + + + QUANT_MINISCOPE_AND + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Quantifiers – Miniscoping and + +

    +
    + \[\forall X.\> F_1 \wedge \ldots \wedge F_n = +(\forall X.\> F_1) \wedge \ldots \wedge (\forall X.\> F_n)\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + QUANT_MINISCOPE_ITE + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Quantifiers – Miniscoping ite + +

    +
    + \[\forall X.\> \ite{C}{F_1}{F_2} = \ite{C}{\forall X.\> F_1}{\forall X.\> F_2}\] +
    +

    + where + + \(C\) + + does not have any free variable in + + \(X\) + + . +

    +

    + endverbatim +

    +
    +
    +
    +
    + + + QUANT_MINISCOPE_OR + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Quantifiers – Miniscoping or + +

    +
    + \[\forall X.\> F_1 \vee \ldots \vee F_n = (\forall X_1.\> F_1) \vee \ldots \vee (\forall X_n.\> F_n)\] +
    +

    + where + + \(X = X_1 \ldots X_n\) + + , and the right hand side does not have any +free variable in + + \(X\) + + . +

    +

    + endverbatim +

    +
    +
    +
    +
    + + + QUANT_UNUSED_VARS + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Quantifiers – Unused variables + +

    +
    + \[\forall X.\> F = \forall X_1.\> F\] +
    +

    + where + + \(X_1\) + + is the subset of + + \(X\) + + that appear free in + + \(F\) + + and + + \(X_1\) + + does not contain duplicate variables. +

    +

    + endverbatim +

    +
    +
    +
    +
    + + + QUANT_VAR_ELIM_EQ + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Quantifiers – Macro variable elimination equality + +

    +
    + \[(\forall x.\> x \neq t \vee F) = F \{ x \mapsto t \}\] +
    +

    + or alternatively +

    +
    + \[(\forall x.\> x \neq t) = \bot\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + RE_ALL_ELIM + + + +  + +
    +
    +

    + Auto-generated from RARE rule re-all-elim +

    +
    +
    +
    +
    + + + RE_CONCAT_EMP + + + +  + +
    +
    +

    + Auto-generated from RARE rule re-concat-emp +

    +
    +
    +
    +
    + + + RE_CONCAT_FLATTEN + + + +  + +
    +
    +

    + Auto-generated from RARE rule re-concat-flatten +

    +
    +
    +
    +
    + + + RE_CONCAT_MERGE + + + +  + +
    +
    +

    + Auto-generated from RARE rule re-concat-merge +

    +
    +
    +
    +
    + + + RE_CONCAT_NONE + + + +  + +
    +
    +

    + Auto-generated from RARE rule re-concat-none +

    +
    +
    +
    +
    + + + RE_CONCAT_STAR_REPEAT + + + +  + +
    +
    +

    + Auto-generated from RARE rule re-concat-star-repeat +

    +
    +
    +
    +
    + + + RE_CONCAT_STAR_SWAP + + + +  + +
    +
    +

    + Auto-generated from RARE rule re-concat-star-swap +

    +
    +
    +
    +
    + + + RE_DIFF_ELIM + + + +  + +
    +
    +

    + Auto-generated from RARE rule re-diff-elim +

    +
    +
    +
    +
    + + + RE_INTER_ALL + + + +  + +
    +
    +

    + Auto-generated from RARE rule re-inter-all +

    +
    +
    +
    +
    + + + RE_INTER_CSTRING + + + +  + +
    +
    +

    + Auto-generated from RARE rule re-inter-cstring +

    +
    +
    +
    +
    + + + RE_INTER_CSTRING_NEG + + + +  + +
    +
    +

    + Auto-generated from RARE rule re-inter-cstring-neg +

    +
    +
    +
    +
    + + + RE_INTER_DUP + + + +  + +
    +
    +

    + Auto-generated from RARE rule re-inter-dup +

    +
    +
    +
    +
    + + + RE_INTER_FLATTEN + + + +  + +
    +
    +

    + Auto-generated from RARE rule re-inter-flatten +

    +
    +
    +
    +
    + + + RE_INTER_NONE + + + +  + +
    +
    +

    + Auto-generated from RARE rule re-inter-none +

    +
    +
    +
    +
    + + + RE_INTER_UNION_INCLUSION + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + 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 + + . +

    +

    + endverbatim +

    +
    +
    +
    +
    + + + RE_IN_COMP + + + +  + +
    +
    +

    + Auto-generated from RARE rule re-in-comp +

    +
    +
    +
    +
    + + + RE_IN_CSTRING + + + +  + +
    +
    +

    + Auto-generated from RARE rule re-in-cstring +

    +
    +
    +
    +
    + + + RE_IN_EMPTY + + + +  + +
    +
    +

    + Auto-generated from RARE rule re-in-empty +

    +
    +
    +
    +
    + + + RE_IN_SIGMA + + + +  + +
    +
    +

    + Auto-generated from RARE rule re-in-sigma +

    +
    +
    +
    +
    + + + RE_IN_SIGMA_STAR + + + +  + +
    +
    +

    + Auto-generated from RARE rule re-in-sigma-star +

    +
    +
    +
    +
    + + + RE_LOOP_ELIM + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Strings – regular expression loop elimination + +

    +
    + \[re.loop_{l,u}(R) = re.union(R^l, \ldots, R^u)\] +
    +

    + where + + \(u \geq l\) + + . +

    +

    + endverbatim +

    +
    +
    +
    +
    + + + RE_LOOP_NEG + + + +  + +
    +
    +

    + Auto-generated from RARE rule re-loop-neg +

    +
    +
    +
    +
    + + + RE_OPT_ELIM + + + +  + +
    +
    +

    + Auto-generated from RARE rule re-opt-elim +

    +
    +
    +
    +
    + + + RE_STAR_NONE + + + +  + +
    +
    +

    + Auto-generated from RARE rule re-star-none +

    +
    +
    +
    +
    + + + RE_UNION_ALL + + + +  + +
    +
    +

    + Auto-generated from RARE rule re-union-all +

    +
    +
    +
    +
    + + + RE_UNION_DUP + + + +  + +
    +
    +

    + Auto-generated from RARE rule re-union-dup +

    +
    +
    +
    +
    + + + RE_UNION_FLATTEN + + + +  + +
    +
    +

    + Auto-generated from RARE rule re-union-flatten +

    +
    +
    +
    +
    + + + RE_UNION_NONE + + + +  + +
    +
    +

    + Auto-generated from RARE rule re-union-none +

    +
    +
    +
    +
    + + + SEQ_LEN_EMPTY + + + +  + +
    +
    +

    + Auto-generated from RARE rule seq-len-empty +

    +
    +
    +
    +
    + + + SEQ_LEN_REV + + + +  + +
    +
    +

    + Auto-generated from RARE rule seq-len-rev +

    +
    +
    +
    +
    + + + SEQ_LEN_UNIT + + + +  + +
    +
    +

    + Auto-generated from RARE rule seq-len-unit +

    +
    +
    +
    +
    + + + SEQ_NTH_UNIT + + + +  + +
    +
    +

    + Auto-generated from RARE rule seq-nth-unit +

    +
    +
    +
    +
    + + + SEQ_REV_CONCAT + + + +  + +
    +
    +

    + Auto-generated from RARE rule seq-rev-concat +

    +
    +
    +
    +
    + + + SEQ_REV_REV + + + +  + +
    +
    +

    + Auto-generated from RARE rule seq-rev-rev +

    +
    +
    +
    +
    + + + SEQ_REV_UNIT + + + +  + +
    +
    +

    + Auto-generated from RARE rule seq-rev-unit +

    +
    +
    +
    +
    + + + SETS_CARD_EMP + + + +  + +
    +
    +

    + Auto-generated from RARE rule sets-card-emp +

    +
    +
    +
    +
    + + + SETS_CARD_MINUS + + + +  + +
    +
    +

    + Auto-generated from RARE rule sets-card-minus +

    +
    +
    +
    +
    + + + SETS_CARD_SINGLETON + + + +  + +
    +
    +

    + Auto-generated from RARE rule sets-card-singleton +

    +
    +
    +
    +
    + + + SETS_CARD_UNION + + + +  + +
    +
    +

    + Auto-generated from RARE rule sets-card-union +

    +
    +
    +
    +
    + + + SETS_CHOOSE_SINGLETON + + + +  + +
    +
    +

    + Auto-generated from RARE rule sets-choose-singleton +

    +
    +
    +
    +
    + + + SETS_EQ_SINGLETON_EMP + + + +  + +
    +
    +

    + Auto-generated from RARE rule sets-eq-singleton-emp +

    +
    +
    +
    +
    + + + SETS_INSERT_ELIM + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Sets – sets insert elimination + +

    +
    + \[\mathit{sets.insert}(t_1, \ldots, t_n, S) = \texttt{set.union}(\texttt{sets.singleton}(t_1), \ldots, \texttt{sets.singleton}(t_n), S)\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + SETS_INTER_COMM + + + +  + +
    +
    +

    + Auto-generated from RARE rule sets-inter-comm +

    +
    +
    +
    +
    + + + SETS_INTER_EMP1 + + + +  + +
    +
    +

    + Auto-generated from RARE rule sets-inter-emp1 +

    +
    +
    +
    +
    + + + SETS_INTER_EMP2 + + + +  + +
    +
    +

    + Auto-generated from RARE rule sets-inter-emp2 +

    +
    +
    +
    +
    + + + SETS_INTER_MEMBER + + + +  + +
    +
    +

    + Auto-generated from RARE rule sets-inter-member +

    +
    +
    +
    +
    + + + SETS_IS_EMPTY_ELIM + + + +  + +
    +
    +

    + Auto-generated from RARE rule sets-is-empty-elim +

    +
    +
    +
    +
    + + + SETS_IS_EMPTY_EVAL + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + 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. +

    +

    + endverbatim +

    +
    +
    +
    +
    + + + SETS_MEMBER_EMP + + + +  + +
    +
    +

    + Auto-generated from RARE rule sets-member-emp +

    +
    +
    +
    +
    + + + SETS_MEMBER_SINGLETON + + + +  + +
    +
    +

    + Auto-generated from RARE rule sets-member-singleton +

    +
    +
    +
    +
    + + + SETS_MINUS_EMP1 + + + +  + +
    +
    +

    + Auto-generated from RARE rule sets-minus-emp1 +

    +
    +
    +
    +
    + + + SETS_MINUS_EMP2 + + + +  + +
    +
    +

    + Auto-generated from RARE rule sets-minus-emp2 +

    +
    +
    +
    +
    + + + SETS_MINUS_MEMBER + + + +  + +
    +
    +

    + Auto-generated from RARE rule sets-minus-member +

    +
    +
    +
    +
    + + + SETS_MINUS_SELF + + + +  + +
    +
    +

    + Auto-generated from RARE rule sets-minus-self +

    +
    +
    +
    +
    + + + SETS_SUBSET_ELIM + + + +  + +
    +
    +

    + Auto-generated from RARE rule sets-subset-elim +

    +
    +
    +
    +
    + + + SETS_UNION_COMM + + + +  + +
    +
    +

    + Auto-generated from RARE rule sets-union-comm +

    +
    +
    +
    +
    + + + SETS_UNION_EMP1 + + + +  + +
    +
    +

    + Auto-generated from RARE rule sets-union-emp1 +

    +
    +
    +
    +
    + + + SETS_UNION_EMP2 + + + +  + +
    +
    +

    + Auto-generated from RARE rule sets-union-emp2 +

    +
    +
    +
    +
    + + + SETS_UNION_MEMBER + + + +  + +
    +
    +

    + Auto-generated from RARE rule sets-union-member +

    +
    +
    +
    +
    + + + STR_AT_ELIM + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-at-elim +

    +
    +
    +
    +
    + + + STR_CONCAT_CLASH + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-concat-clash +

    +
    +
    +
    +
    + + + STR_CONCAT_CLASH2 + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-concat-clash2 +

    +
    +
    +
    +
    + + + STR_CONCAT_CLASH2_REV + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-concat-clash2-rev +

    +
    +
    +
    +
    + + + STR_CONCAT_CLASH_CHAR + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-concat-clash-char +

    +
    +
    +
    +
    + + + STR_CONCAT_CLASH_CHAR_REV + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-concat-clash-char-rev +

    +
    +
    +
    +
    + + + STR_CONCAT_CLASH_REV + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-concat-clash-rev +

    +
    +
    +
    +
    + + + STR_CONCAT_FLATTEN + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-concat-flatten +

    +
    +
    +
    +
    + + + STR_CONCAT_FLATTEN_EQ + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-concat-flatten-eq +

    +
    +
    +
    +
    + + + STR_CONCAT_FLATTEN_EQ_REV + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-concat-flatten-eq-rev +

    +
    +
    +
    +
    + + + STR_CONCAT_UNIFY + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-concat-unify +

    +
    +
    +
    +
    + + + STR_CONCAT_UNIFY_BASE + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-concat-unify-base +

    +
    +
    +
    +
    + + + STR_CONCAT_UNIFY_BASE_REV + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-concat-unify-base-rev +

    +
    +
    +
    +
    + + + STR_CONCAT_UNIFY_REV + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-concat-unify-rev +

    +
    +
    +
    +
    + + + STR_CONTAINS_CONCAT_FIND + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-contains-concat-find +

    +
    +
    +
    +
    + + + STR_CONTAINS_EMP + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-contains-emp +

    +
    +
    +
    +
    + + + STR_CONTAINS_IS_EMP + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-contains-is-emp +

    +
    +
    +
    +
    + + + STR_CONTAINS_LEQ_LEN_EQ + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-contains-leq-len-eq +

    +
    +
    +
    +
    + + + STR_CONTAINS_LT_LEN + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-contains-lt-len +

    +
    +
    +
    +
    + + + STR_CONTAINS_REFL + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-contains-refl +

    +
    +
    +
    +
    + + + STR_CONTAINS_SPLIT_CHAR + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-contains-split-char +

    +
    +
    +
    +
    + + + STR_EQ_CTN_FALSE + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-eq-ctn-false +

    +
    +
    +
    +
    + + + STR_EQ_CTN_FULL_FALSE1 + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-eq-ctn-full-false1 +

    +
    +
    +
    +
    + + + STR_EQ_CTN_FULL_FALSE2 + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-eq-ctn-full-false2 +

    +
    +
    +
    +
    + + + STR_INDEXOF_CONTAINS_PRE + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-indexof-contains-pre +

    +
    +
    +
    +
    + + + STR_INDEXOF_NO_CONTAINS + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-indexof-no-contains +

    +
    +
    +
    +
    + + + STR_INDEXOF_RE_NONE + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-indexof-re-none +

    +
    +
    +
    +
    + + + STR_INDEXOF_SELF + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-indexof-self +

    +
    +
    +
    +
    + + + STR_IN_RE_CONCAT_STAR_CHAR + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + Strings – string in regular expression concatenation star character + +

    +
    + \[\begin{split}\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))\end{split}\] +
    +

    + where all strings in + + \(R\) + + have length one. +

    +

    + endverbatim +

    +
    +
    +
    +
    + + + STR_IN_RE_CONSUME + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + 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\) + + . +

    +

    + endverbatim +

    +
    +
    +
    +
    + + + STR_IN_RE_CONTAINS + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-in-re-contains +

    +
    +
    +
    +
    + + + STR_IN_RE_EVAL + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + 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. +

    +

    + endverbatim +

    +
    +
    +
    +
    + + + STR_IN_RE_INTER_ELIM + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-in-re-inter-elim +

    +
    +
    +
    +
    + + + STR_IN_RE_RANGE_ELIM + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-in-re-range-elim +

    +
    +
    +
    +
    + + + STR_IN_RE_REQ_UNFOLD + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-in-re-req-unfold +

    +
    +
    +
    +
    + + + STR_IN_RE_REQ_UNFOLD_REV + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-in-re-req-unfold-rev +

    +
    +
    +
    +
    + + + STR_IN_RE_SIGMA + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + 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)\] +
    +

    + endverbatim +

    +
    +
    +
    +
    + + + STR_IN_RE_SIGMA_STAR + + + +  + +
    +
    +

    + verbatim embed:rst:leading-asterisk + + 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{++}\) + + . +

    +

    + endverbatim +

    +
    +
    +
    +
    + + + STR_IN_RE_SKIP_UNFOLD + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-in-re-skip-unfold +

    +
    +
    +
    +
    + + + STR_IN_RE_SKIP_UNFOLD_REV + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-in-re-skip-unfold-rev +

    +
    +
    +
    +
    + + + STR_IN_RE_STRIP_CHAR + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-char +

    +
    +
    +
    +
    + + + STR_IN_RE_STRIP_CHAR_REV + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-char-rev +

    +
    +
    +
    +
    + + + STR_IN_RE_STRIP_CHAR_S_SINGLE + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-char-s-single +

    +
    +
    +
    +
    + + + STR_IN_RE_STRIP_CHAR_S_SINGLE_REV + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-char-s-single-rev +

    +
    +
    +
    +
    + + + STR_IN_RE_STRIP_PREFIX + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix +

    +
    +
    +
    +
    + + + STR_IN_RE_STRIP_PREFIX_BASE + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-base +

    +
    +
    +
    +
    + + + STR_IN_RE_STRIP_PREFIX_BASE_NEG + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-base-neg +

    +
    +
    +
    +
    + + + STR_IN_RE_STRIP_PREFIX_BASE_NEG_REV + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-base-neg-rev +

    +
    +
    +
    +
    + + + STR_IN_RE_STRIP_PREFIX_BASE_REV + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-base-rev +

    +
    +
    +
    +
    + + + STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-base-s-single +

    +
    +
    +
    +
    + + + STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-base-s-single-neg +

    +
    +
    +
    +
    + + + STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG_REV + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-base-s-single-neg-rev +

    +
    +
    +
    +
    + + + STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_REV + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-base-s-single-rev +

    +
    +
    +
    +
    + + + STR_IN_RE_STRIP_PREFIX_NEG + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-neg +

    +
    +
    +
    +
    + + + STR_IN_RE_STRIP_PREFIX_NEG_REV + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-neg-rev +

    +
    +
    +
    +
    + + + STR_IN_RE_STRIP_PREFIX_REV + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-rev +

    +
    +
    +
    +
    + + + STR_IN_RE_STRIP_PREFIX_SRS_SINGLE + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-srs-single +

    +
    +
    +
    +
    + + + STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-srs-single-neg +

    +
    +
    +
    +
    + + + STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG_REV + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-srs-single-neg-rev +

    +
    +
    +
    +
    + + + STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_REV + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-srs-single-rev +

    +
    +
    +
    +
    + + + STR_IN_RE_STRIP_PREFIX_SR_SINGLE + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-sr-single +

    +
    +
    +
    +
    + + + STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-sr-single-neg +

    +
    +
    +
    +
    + + + STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG_REV + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-sr-single-neg-rev +

    +
    +
    +
    +
    + + + STR_IN_RE_STRIP_PREFIX_SR_SINGLE_REV + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-sr-single-rev +

    +
    +
    +
    +
    + + + STR_IN_RE_STRIP_PREFIX_S_SINGLE + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-s-single +

    +
    +
    +
    +
    + + + STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-s-single-neg +

    +
    +
    +
    +
    + + + STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG_REV + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-s-single-neg-rev +

    +
    +
    +
    +
    + + + STR_IN_RE_STRIP_PREFIX_S_SINGLE_REV + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-in-re-strip-prefix-s-single-rev +

    +
    +
    +
    +
    + + + STR_IN_RE_TEST_UNFOLD + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-in-re-test-unfold +

    +
    +
    +
    +
    + + + STR_IN_RE_TEST_UNFOLD_REV + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-in-re-test-unfold-rev +

    +
    +
    +
    +
    + + + STR_IN_RE_UNION_ELIM + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-in-re-union-elim +

    +
    +
    +
    +
    + + + STR_LEN_CONCAT_REC + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-len-concat-rec +

    +
    +
    +
    +
    + + + STR_LEN_REPLACE_INV + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-len-replace-inv +

    +
    +
    +
    +
    + + + STR_LEN_SUBSTR_IN_RANGE + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-len-substr-in-range +

    +
    +
    +
    +
    + + + STR_LEN_SUBSTR_UB1 + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-len-substr-ub1 +

    +
    +
    +
    +
    + + + STR_LEN_SUBSTR_UB2 + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-len-substr-ub2 +

    +
    +
    +
    +
    + + + STR_LEN_UPDATE_INV + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-len-update-inv +

    +
    +
    +
    +
    + + + STR_LEQ_CONCAT_FALSE + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-leq-concat-false +

    +
    +
    +
    +
    + + + STR_LEQ_CONCAT_TRUE + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-leq-concat-true +

    +
    +
    +
    +
    + + + STR_LEQ_EMPTY + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-leq-empty +

    +
    +
    +
    +
    + + + STR_LEQ_EMPTY_EQ + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-leq-empty-eq +

    +
    +
    +
    +
    + + + STR_LT_ELIM + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-lt-elim +

    +
    +
    +
    +
    + + + STR_PREFIXOF_ELIM + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-prefixof-elim +

    +
    +
    +
    +
    + + + STR_PREFIXOF_ONE + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-prefixof-one +

    +
    +
    +
    +
    + + + STR_REPLACE_ALL_NO_CONTAINS + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-replace-all-no-contains +

    +
    +
    +
    +
    + + + STR_REPLACE_CONTAINS_PRE + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-replace-contains-pre +

    +
    +
    +
    +
    + + + STR_REPLACE_EMPTY + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-replace-empty +

    +
    +
    +
    +
    + + + STR_REPLACE_NO_CONTAINS + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-replace-no-contains +

    +
    +
    +
    +
    + + + STR_REPLACE_PREFIX + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-replace-prefix +

    +
    +
    +
    +
    + + + STR_REPLACE_RE_ALL_NONE + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-replace-re-all-none +

    +
    +
    +
    +
    + + + STR_REPLACE_RE_NONE + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-replace-re-none +

    +
    +
    +
    +
    + + + STR_REPLACE_SELF + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-replace-self +

    +
    +
    +
    +
    + + + STR_SUBSTR_COMBINE1 + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-substr-combine1 +

    +
    +
    +
    +
    + + + STR_SUBSTR_COMBINE2 + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-substr-combine2 +

    +
    +
    +
    +
    + + + STR_SUBSTR_COMBINE3 + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-substr-combine3 +

    +
    +
    +
    +
    + + + STR_SUBSTR_COMBINE4 + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-substr-combine4 +

    +
    +
    +
    +
    + + + STR_SUBSTR_CONCAT1 + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-substr-concat1 +

    +
    +
    +
    +
    + + + STR_SUBSTR_CONCAT2 + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-substr-concat2 +

    +
    +
    +
    +
    + + + STR_SUBSTR_EMPTY_RANGE + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-substr-empty-range +

    +
    +
    +
    +
    + + + STR_SUBSTR_EMPTY_START + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-substr-empty-start +

    +
    +
    +
    +
    + + + STR_SUBSTR_EMPTY_START_NEG + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-substr-empty-start-neg +

    +
    +
    +
    +
    + + + STR_SUBSTR_EMPTY_STR + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-substr-empty-str +

    +
    +
    +
    +
    + + + STR_SUBSTR_EQ_EMPTY + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-substr-eq-empty +

    +
    +
    +
    +
    + + + STR_SUBSTR_FULL + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-substr-full +

    +
    +
    +
    +
    + + + STR_SUBSTR_FULL_EQ + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-substr-full-eq +

    +
    +
    +
    +
    + + + STR_SUBSTR_LEN_INCLUDE + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-substr-len-include +

    +
    +
    +
    +
    + + + STR_SUBSTR_LEN_INCLUDE_PRE + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-substr-len-include-pre +

    +
    +
    +
    +
    + + + STR_SUBSTR_LEN_SKIP + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-substr-len-skip +

    +
    +
    +
    +
    + + + STR_SUFFIXOF_ELIM + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-suffixof-elim +

    +
    +
    +
    +
    + + + STR_SUFFIXOF_ONE + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-suffixof-one +

    +
    +
    +
    +
    + + + STR_TO_INT_CONCAT_NEG_ONE + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-to-int-concat-neg-one +

    +
    +
    +
    +
    + + + STR_TO_LOWER_CONCAT + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-to-lower-concat +

    +
    +
    +
    +
    + + + STR_TO_LOWER_FROM_INT + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-to-lower-from-int +

    +
    +
    +
    +
    + + + STR_TO_LOWER_LEN + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-to-lower-len +

    +
    +
    +
    +
    + + + STR_TO_LOWER_UPPER + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-to-lower-upper +

    +
    +
    +
    +
    + + + STR_TO_UPPER_CONCAT + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-to-upper-concat +

    +
    +
    +
    +
    + + + STR_TO_UPPER_FROM_INT + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-to-upper-from-int +

    +
    +
    +
    +
    + + + STR_TO_UPPER_LEN + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-to-upper-len +

    +
    +
    +
    +
    + + + STR_TO_UPPER_LOWER + + + +  + +
    +
    +

    + Auto-generated from RARE rule str-to-upper-lower +

    +
    +
    +
    +
    + + + UF_BV2NAT_GEQ_ELIM + + + +  + +
    +
    +

    + Auto-generated from RARE rule uf-bv2nat-geq-elim +

    +
    +
    +
    +
    + + + UF_BV2NAT_INT2BV + + + +  + +
    +
    +

    + Auto-generated from RARE rule uf-bv2nat-int2bv +

    +
    +
    +
    +
    + + + UF_BV2NAT_INT2BV_EXTEND + + + +  + +
    +
    +

    + Auto-generated from RARE rule uf-bv2nat-int2bv-extend +

    +
    +
    +
    +
    + + + UF_BV2NAT_INT2BV_EXTRACT + + + +  + +
    +
    +

    + Auto-generated from RARE rule uf-bv2nat-int2bv-extract +

    +
    +
    +
    +
    + + + UF_INT2BV_BV2NAT + + + +  + +
    +
    +

    + Auto-generated from RARE rule uf-int2bv-bv2nat +

    +
    +
    +
    +
    + + + UF_INT2BV_BVULE_EQUIV + + + +  + +
    +
    +

    + Auto-generated from RARE rule uf-int2bv-bvule-equiv +

    +
    +
    +
    +
    + + + UF_INT2BV_BVULT_EQUIV + + + +  + +
    +
    +

    + Auto-generated from RARE rule uf-int2bv-bvult-equiv +

    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/python.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/python.html new file mode 100644 index 0000000000..e61c6d668d --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/python.html @@ -0,0 +1,765 @@ + + + + + + + + + + + Base Python API — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Base Python API + +  + +

    +

    + This is the base Python API. +It is implemented on top of the C++ API and mirrors the + + + C++ API + + + . +

    +

    + For a higher-level, more pythonic programming experience, cvc5 provides the + + + pythonic API + + + . +

    +
    +
    +
    +
    +

    + Classes + +  + +

    + +
    +
    +

    + Enums + +  + +

    + +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/quickstart.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/quickstart.html new file mode 100644 index 0000000000..a916d3d7aa --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/quickstart.html @@ -0,0 +1,1750 @@ + + + + + + + + + + + Quickstart Guide — cvc5 documentation + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Quickstart Guide + +  + +

    +

    + First, create a cvc5 term manager instance: +

    +
    +
    +
    tm = cvc5.TermManager()
    +
    +
    +
    +

    + Then, create a cvc5 solver instance: +

    +
    +
    +
    solver = cvc5.Solver(tm)
    +
    +
    +
    +

    + We will ask the solver to produce models and unsat cores in the following, +and for this we have to enable the following options. +

    +
    +
    +
    solver.setOption("produce-models", "true")
    +solver.setOption("produce-unsat-cores", "true")
    +
    +
    +
    +

    + Next we set the logic. +The simplest way to set a logic for the solver is to choose + + + "ALL" + + + . +This enables all logics in the solver. +Alternatively, + + + "QF_ALL" + + + enables all logics without quantifiers. +To optimize the solver’s behavior for a more specific logic, +use the logic name, e.g. + + + "QF_BV" + + + or + + + "QF_AUFBV" + + + . +

    +
    +
    +
    solver.setLogic("ALL")
    +
    +
    +
    +

    + In the following, we will define constraints of reals and integers. +For this, we first query the solver for the corresponding sorts. +

    +
    +
    +
    realSort = tm.getRealSort()
    +intSort = tm.getIntegerSort()
    +
    +
    +
    +

    + Now, we create two constants + + + x + + + and + + + y + + + of sort + + + Real + + + , +and two constants + + + a + + + and + + + b + + + of sort + + + Integer + + + . +Notice that these are + + symbolic + + constants, but not actual values. +

    +
    +
    +
    x = tm.mkConst(realSort, "x")
    +y = tm.mkConst(realSort, "y")
    +a = tm.mkConst(intSort, "a")
    +b = tm.mkConst(intSort, "b")
    +
    +
    +
    +

    + We define the following constraints regarding + + + x + + + and + + + y + + + : +

    +
    + \[(0 < x) \wedge (0 < y) \wedge (x + y < 1) \wedge (x \leq y)\] +
    +

    + We construct the required terms and assert them as follows: +

    +
    +
    +
    # Formally, constraints are also terms. Their sort is Boolean.
    +# We will construct these constraints gradually,
    +# by defining each of their components.
    +# We start with the constant numerals 0 and 1:
    +zero = tm.mkReal(0)
    +one = tm.mkReal(1)
    +
    +# Next, we construct the term x + y
    +xPlusY = tm.mkTerm(Kind.ADD, x, y)
    +
    +# Now we can define the constraints.
    +# They use the operators +, <=, and <.
    +# In the API, these are denoted by Plus, Leq, and Lt.
    +constraint1 = tm.mkTerm(Kind.LT, zero, x)
    +constraint2 = tm.mkTerm(Kind.LT, zero, y)
    +constraint3 = tm.mkTerm(Kind.LT, xPlusY, one)
    +constraint4 = tm.mkTerm(Kind.LEQ, x, y)
    +
    +# Now we assert the constraints to the solver.
    +solver.assertFormula(constraint1)
    +solver.assertFormula(constraint2)
    +solver.assertFormula(constraint3)
    +solver.assertFormula(constraint4)
    +
    +
    +
    +

    + Now we check if the asserted formula is satisfiable, that is, we check if +there exist values of sort + + + Real + + + for + + + x + + + and + + + y + + + that satisfy all +the constraints. +

    +
    +
    +
    r1 = solver.checkSat()
    +
    +
    +
    +

    + The result we get from this satisfiability check is either + + + sat + + + , + + + unsat + + + or + + + unknown + + + . +It’s status can be queried via + + isSat + + , + + isUnsat + + and + + isSatUnknown + + functions. +Alternatively, it can also be printed. +

    +
    +
    +
    print("expected: sat")
    +print("result: ", r1)
    +
    +
    +
    +

    + This will print: +

    +
    +
    +
    expected: sat
    +result: sat
    +
    +
    +
    +

    + Now, we query the solver for the values for + + + x + + + and + + + y + + + that satisfy +the constraints. +

    +
    +
    +
    xVal = solver.getValue(x)
    +yVal = solver.getValue(y)
    +
    +
    +
    +

    + It is also possible to get values for terms that do not appear in the original +formula. +

    +
    +
    +
    xMinusY = tm.mkTerm(Kind.SUB, x, y)
    +xMinusYVal = solver.getValue(xMinusY)
    +
    +
    +
    +

    + We can retrieve the Python representation of these values as follows. +

    +
    +
    +
    xPy = xVal.getRealValue()
    +yPy = yVal.getRealValue()
    +xMinusYPy = xMinusYVal.getRealValue()
    +
    +print("value for x: ", xPy)
    +print("value for y: ", yPy)
    +print("value for x - y: ", xMinusYPy)
    +
    +
    +
    +

    + This will print the following: +

    +
    +
    +
    value for x: 1/6
    +value for y: 1/6
    +value for x - y: 0
    +
    +
    +
    +

    + Another way to independently compute the value of + + + x + + + - + + + y + + + would be to +use the Python minus operator instead of asking the solver. +However, for more complex terms, it is easier to let the solver do the +evaluation. +

    +
    +
    +
    xMinusYComputed = xPy - yPy
    +if xMinusYComputed == xMinusYPy:
    +  print("computed correctly")
    +else:
    +  print("computed incorrectly")
    +
    +
    +
    +

    + This will print: +

    +
    +
    +
    computed correctly
    +
    +
    +
    +

    + Further, we can convert these values to strings: +

    +
    +
    +
    xStr = str(xPy)
    +yStr = str(yPy)
    +xMinusYStr = str(xMinusYPy)
    +
    +
    +
    +

    + Next, we will check satisfiability of the same formula, +only this time over integer variables + + + a + + + and + + + b + + + . +For this, we first reset the assertions added to the solver. +

    +
    +
    +
    solver.resetAssertions()
    +
    +
    +
    +

    + Next, we assert the same assertions as above, but with integers. +This time, we inline the construction of terms +to the assertion command. +

    +
    +
    +
    solver.assertFormula(tm.mkTerm(Kind.LT, tm.mkInteger(0), a))
    +solver.assertFormula(tm.mkTerm(Kind.LT, tm.mkInteger(0), b))
    +solver.assertFormula(
    +    tm.mkTerm(
    +        Kind.LT, tm.mkTerm(Kind.ADD, a, b), tm.mkInteger(1)))
    +solver.assertFormula(tm.mkTerm(Kind.LEQ, a, b))
    +
    +
    +
    +

    + Now, we check whether the revised assertion is satisfiable. +

    +
    +
    +
    r2 = solver.checkSat()
    +
    +
    +
    +
    +
    +
    print("expected: unsat")
    +print("result:", r2)
    +
    +
    +
    +

    + This time the asserted formula is unsatisfiable: +

    +
    +
    +
    expected: unsat
    +result: unsat
    +
    +
    +
    +

    + We can query the solver for an unsatisfiable core, that is, a subset +of the assertions that is already unsatisfiable. +

    +
    +
    +
    unsatCore = solver.getUnsatCore()
    +print("unsat core size:", len(unsatCore))
    +print("unsat core:", unsatCore)
    +
    +
    +
    +

    + This will print: +

    +
    +
    +
    unsat core size: 3
    +unsat core: [(< 0 a), (< 0 b), (< (+ a b) 1)]
    +
    +
    +
    +
    +

    + Example + +  + +

    +
    +
    + + + + + +
    +
    +

    + + examples/api/python/quickstart.py + +

    +
    +
    +
      1#!/usr/bin/env python
    +  2###############################################################################
    +  3# Top contributors (to current version):
    +  4#   Yoni Zohar, Aina Niemetz, Alex Ozdemir
    +  5#
    +  6# This file is part of the cvc5 project.
    +  7#
    +  8# Copyright (c) 2009-2024 by the authors listed in the file AUTHORS
    +  9# in the top-level source directory and their institutional affiliations.
    + 10# All rights reserved.  See the file COPYING in the top-level source
    + 11# directory for licensing information.
    + 12# #############################################################################
    + 13#
    + 14# A simple demonstration of the api capabilities of cvc5, adapted from quickstart.cpp
    + 15##
    + 16
    + 17import cvc5
    + 18from cvc5 import Kind
    + 19
    + 20if __name__ == "__main__":
    + 21  # Create a term manager
    + 22  #! [docs-python-quickstart-0 start]
    + 23  tm = cvc5.TermManager()
    + 24  #! [docs-python-quickstart-0 end]
    + 25  # Create a solver
    + 26  #! [docs-python-quickstart-1 start]
    + 27  solver = cvc5.Solver(tm)
    + 28  #! [docs-python-quickstart-1 end]
    + 29
    + 30  # We will ask the solver to produce models and unsat cores,
    + 31  # hence these options should be turned on.
    + 32  #! [docs-python-quickstart-2 start]
    + 33  solver.setOption("produce-models", "true")
    + 34  solver.setOption("produce-unsat-cores", "true")
    + 35  #! [docs-python-quickstart-2 end]
    + 36
    + 37  # The simplest way to set a logic for the solver is to choose "ALL".
    + 38  # This enables all logics in the solver.
    + 39  # Alternatively, "QF_ALL" enables all logics without quantifiers.
    + 40  # To optimize the solver's behavior for a more specific logic,
    + 41  # use the logic name, e.g. "QF_BV" or "QF_AUFBV".
    + 42
    + 43  # Set the logic
    + 44  #! [docs-python-quickstart-3 start]
    + 45  solver.setLogic("ALL")
    + 46  #! [docs-python-quickstart-3 end]
    + 47
    + 48  # In this example, we will define constraints over reals and integers.
    + 49  # Hence, we first obtain the corresponding sorts.
    + 50  #! [docs-python-quickstart-4 start]
    + 51  realSort = tm.getRealSort()
    + 52  intSort = tm.getIntegerSort()
    + 53  #! [docs-python-quickstart-4 end]
    + 54
    + 55  # x and y will be real variables, while a and b will be integer variables.
    + 56  # Formally, their python type is Term,
    + 57  # and they are called "constants" in SMT jargon:
    + 58  #! [docs-python-quickstart-5 start]
    + 59  x = tm.mkConst(realSort, "x")
    + 60  y = tm.mkConst(realSort, "y")
    + 61  a = tm.mkConst(intSort, "a")
    + 62  b = tm.mkConst(intSort, "b")
    + 63  #! [docs-python-quickstart-5 end]
    + 64
    + 65  # Our constraints regarding x and y will be:
    + 66  #
    + 67  #   (1)  0 < x
    + 68  #   (2)  0 < y
    + 69  #   (3)  x + y < 1
    + 70  #   (4)  x <= y
    + 71  #
    + 72
    + 73  #! [docs-python-quickstart-6 start]
    + 74  # Formally, constraints are also terms. Their sort is Boolean.
    + 75  # We will construct these constraints gradually,
    + 76  # by defining each of their components.
    + 77  # We start with the constant numerals 0 and 1:
    + 78  zero = tm.mkReal(0)
    + 79  one = tm.mkReal(1)
    + 80
    + 81  # Next, we construct the term x + y
    + 82  xPlusY = tm.mkTerm(Kind.ADD, x, y)
    + 83
    + 84  # Now we can define the constraints.
    + 85  # They use the operators +, <=, and <.
    + 86  # In the API, these are denoted by Plus, Leq, and Lt.
    + 87  constraint1 = tm.mkTerm(Kind.LT, zero, x)
    + 88  constraint2 = tm.mkTerm(Kind.LT, zero, y)
    + 89  constraint3 = tm.mkTerm(Kind.LT, xPlusY, one)
    + 90  constraint4 = tm.mkTerm(Kind.LEQ, x, y)
    + 91
    + 92  # Now we assert the constraints to the solver.
    + 93  solver.assertFormula(constraint1)
    + 94  solver.assertFormula(constraint2)
    + 95  solver.assertFormula(constraint3)
    + 96  solver.assertFormula(constraint4)
    + 97  #! [docs-python-quickstart-6 end]
    + 98
    + 99  # Check if the formula is satisfiable, that is,
    +100  # are there real values for x and y that satisfy all the constraints?
    +101  #! [docs-python-quickstart-7 start]
    +102  r1 = solver.checkSat()
    +103  #! [docs-python-quickstart-7 end]
    +104
    +105  # The result is either SAT, UNSAT, or UNKNOWN.
    +106  # In this case, it is SAT.
    +107  #! [docs-python-quickstart-8 start]
    +108  print("expected: sat")
    +109  print("result: ", r1)
    +110  #! [docs-python-quickstart-8 end]
    +111
    +112  # We can get the values for x and y that satisfy the constraints.
    +113  #! [docs-python-quickstart-9 start]
    +114  xVal = solver.getValue(x)
    +115  yVal = solver.getValue(y)
    +116  #! [docs-python-quickstart-9 end]
    +117
    +118  # It is also possible to get values for compound terms,
    +119  # even if those did not appear in the original formula.
    +120  #! [docs-python-quickstart-10 start]
    +121  xMinusY = tm.mkTerm(Kind.SUB, x, y)
    +122  xMinusYVal = solver.getValue(xMinusY)
    +123  #! [docs-python-quickstart-10 end]
    +124
    +125  # We can now obtain the values as python values
    +126  #! [docs-python-quickstart-11 start]
    +127  xPy = xVal.getRealValue()
    +128  yPy = yVal.getRealValue()
    +129  xMinusYPy = xMinusYVal.getRealValue()
    +130
    +131  print("value for x: ", xPy)
    +132  print("value for y: ", yPy)
    +133  print("value for x - y: ", xMinusYPy)
    +134  #! [docs-python-quickstart-11 end]
    +135
    +136  # Another way to independently compute the value of x - y would be
    +137  # to use the python minus operator instead of asking the solver.
    +138  # However, for more complex terms,
    +139  # it is easier to let the solver do the evaluation.
    +140  #! [docs-python-quickstart-12 start]
    +141  xMinusYComputed = xPy - yPy
    +142  if xMinusYComputed == xMinusYPy:
    +143    print("computed correctly")
    +144  else:
    +145    print("computed incorrectly")
    +146  #! [docs-python-quickstart-12 end]
    +147
    +148  # Further, we can convert the values to strings
    +149  #! [docs-python-quickstart-13 start]
    +150  xStr = str(xPy)
    +151  yStr = str(yPy)
    +152  xMinusYStr = str(xMinusYPy)
    +153  #! [docs-python-quickstart-13 end]
    +154
    +155  # Next, we will check satisfiability of the same formula,
    +156  # only this time over integer variables a and b.
    +157
    +158  # We start by resetting assertions added to the solver.
    +159  #! [docs-python-quickstart-14 start]
    +160  solver.resetAssertions()
    +161  #! [docs-python-quickstart-14 end]
    +162
    +163  # Next, we assert the same assertions above with integers.
    +164  # This time, we inline the construction of terms
    +165  # to the assertion command.
    +166  #! [docs-python-quickstart-15 start]
    +167  solver.assertFormula(tm.mkTerm(Kind.LT, tm.mkInteger(0), a))
    +168  solver.assertFormula(tm.mkTerm(Kind.LT, tm.mkInteger(0), b))
    +169  solver.assertFormula(
    +170      tm.mkTerm(
    +171          Kind.LT, tm.mkTerm(Kind.ADD, a, b), tm.mkInteger(1)))
    +172  solver.assertFormula(tm.mkTerm(Kind.LEQ, a, b))
    +173  #! [docs-python-quickstart-15 end]
    +174
    +175  # We check whether the revised assertion is satisfiable.
    +176  #! [docs-python-quickstart-16 start]
    +177  r2 = solver.checkSat()
    +178  #! [docs-python-quickstart-16 end]
    +179
    +180  # This time the formula is unsatisfiable
    +181  #! [docs-python-quickstart-17 start]
    +182  print("expected: unsat")
    +183  print("result:", r2)
    +184  #! [docs-python-quickstart-17 end]
    +185
    +186  # We can query the solver for an unsatisfiable core, i.e., a subset
    +187  # of the assertions that is already unsatisfiable.
    +188  #! [docs-python-quickstart-18 start]
    +189  unsatCore = solver.getUnsatCore()
    +190  print("unsat core size:", len(unsatCore))
    +191  print("unsat core:", unsatCore)
    +192  #! [docs-python-quickstart-18 end]
    +
    +
    +
    +
    + + + + +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/result.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/result.html new file mode 100644 index 0000000000..5752301ff9 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/result.html @@ -0,0 +1,788 @@ + + + + + + + + + + + Result — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Result + +  + +

    +

    + This class represents a + + + + cvc5.Solver + + + + result. +

    +

    + A + + + + cvc5.Result + + + + encapsulates a 3-valued solver result (sat, unsat, +unknown). Explanations for unknown results are represented as enum + + + + cvc5.UnknownExplanation + + + + and can be queried via + + + + cvc5.Result.getUnknownExplanation() + + + + . +

    +
    +
    +
    + + + class + + + + + + + cvc5. + + + + + Result + + + +  + +
    +
    +

    + Encapsulation of a three-valued solver result, with explanations. +

    +

    + Wrapper class for + + + + cvc5::Result + + + + . +

    +
    +
    + + + getUnknownExplanation + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + An explanation for an unknown query result. +

    +
    +
    +
    +
    +
    +
    + + + isNull + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True if Result is empty, i.e., a nullary Result, and not +an actual result returned from a + + + + Solver.checkSat() + + + + (and friends) query. +

    +
    +
    +
    +
    +
    +
    + + + isSat + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True if query was a satisfiable + + + + Solver.checkSat() + + + + or + + + + Solver.checkSatAssuming() + + + + query. +

    +
    +
    +
    +
    +
    +
    + + + isUnknown + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True if query was a + + + + Solver.checkSat() + + + + or + + + + Solver.checkSatAssuming() + + + + query and cvc5 was +not able to determine (un)satisfiability. +

    +
    +
    +
    +
    +
    +
    + + + isUnsat + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True if query was an usatisfiable + + + + Solver.checkSat() + + + + or + + + + Solver.checkSatAssuming() + + + + query. +

    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/roundingmode.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/roundingmode.html new file mode 100644 index 0000000000..31294af027 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/roundingmode.html @@ -0,0 +1,662 @@ + + + + + + + + + + + RoundingMode — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + RoundingMode + +  + +

    +

    + This enum represents a floating-point rounding mode. +

    +
    +
    +
    + + + class + + + + + + + cvc5. + + + + + RoundingMode + + + + ( + + + + + value + + + + + ) + + +  + +
    +
    +

    + The RoundingMode enum +

    +
    +
    + + + ROUND_NEAREST_TIES_TO_AWAY + + + +  + +
    +
    +

    + Round to the nearest number away from zero. +

    +

    + If the two nearest floating-point numbers bracketing an unrepresentable +infinitely precise result are equally near), the one with larger magnitude +will be selected. +

    +
    +
    +
    +
    + + + ROUND_NEAREST_TIES_TO_EVEN + + + +  + +
    +
    +

    + Round to the nearest even number. +

    +

    + If the two nearest floating-point numbers bracketing an unrepresentable +infinitely precise result are equally near, the one with an even least +significant digit will be delivered. +

    +
    +
    +
    +
    + + + ROUND_TOWARD_NEGATIVE + + + +  + +
    +
    +

    + Round towards negative infinity ( + + + -oo + + + ). +

    +

    + The result shall be the format’s floating-point number (possibly + + + -oo + + + ) +closest to and no less than the infinitely precise result. +

    +
    +
    +
    +
    + + + ROUND_TOWARD_POSITIVE + + + +  + +
    +
    +

    + Round towards positive infinity (SMT-LIB: + + + +oo + + + ). +

    +

    + The result shall be the format’s floating-point number (possibly + + + +oo + + + ) +closest to and no less than the infinitely precise result. +

    +
    +
    +
    +
    + + + ROUND_TOWARD_ZERO + + + +  + +
    +
    +

    + Round towards zero. +

    +

    + The result shall be the format’s floating-point number closest to and no +greater in magnitude than the infinitely precise result. +

    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/solver.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/solver.html new file mode 100644 index 0000000000..6a9a9969db --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/solver.html @@ -0,0 +1,9665 @@ + + + + + + + + + + + Solver — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Solver + +  + +

    +

    + This class represents a cvc5 solver instance. +

    +

    + + + + Terms + + + + , + + + + Sorts + + + + and + + + + Ops + + + + are not tied to a + + + + cvc5.Solver + + + + but associated with a + + + + cvc5.TermManager + + + + instance, which can be +shared between solver instances. +

    +

    + Solver options are configured via + + + + cvc5.Solver.setOption() + + + + and queried via + + + + cvc5.Solver.getOption() + + + + (for more information on configuration options, see + + + Options + + + ). +

    +
    +
    +
    + + + class + + + + + + + cvc5. + + + + + Solver + + + +  + +
    +
    +

    + A cvc5 solver. +

    +

    + Wrapper class for + + + + cvc5::Solver + + + + . +

    +
    +
    + + + addPlugin + + + + ( + + + ) + + +  + +
    +
    +

    + Add plugin to this solver. Its callbacks will be called throughout the +lifetime of this solver. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + p + + – The plugin to add to this solver. +

    +
    +
    +
    +
    +
    +
    + + + addSygusAssume + + + + ( + + + ) + + +  + +
    +
    +

    + Add a formula to the set of Sygus assumptions. +

    +

    + SyGuS v2: +

    +
    +
    +
    ( assume <term> )
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The formuula to add as an assumption. +

    +
    +
    +
    +
    +
    +
    + + + addSygusConstraint + + + + ( + + + ) + + +  + +
    +
    +

    + Add a formula to the set of SyGuS constraints. +

    +

    + SyGuS v2: +

    +
    +
    +
    ( constraint <term> )
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The formula to add as a constraint. +

    +
    +
    +
    +
    +
    +
    + + + addSygusInvConstraint + + + + ( + + + ) + + +  + +
    +
    +

    + Add a set of SyGuS constraints to the current state that correspond +to an invariant synthesis problem. +

    +

    + SyGuS v2: +

    +
    +
    +
    ( inv-constraint <inv> <pre> <trans> <post> )
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + inv + + – The function-to-synthesize. +

      +
    • +
    • +

      + + pre + + – The pre-condition. +

      +
    • +
    • +

      + + trans + + – The transition relation. +

      +
    • +
    • +

      + + post + + – The post-condition. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + assertFormula + + + + ( + + + ) + + +  + +
    +
    +

    + Assert a formula +

    +

    + SMT-LIB: +

    +
    +
    +
    ( assert <term> )
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The formula to assert. +

    +
    +
    +
    +
    +
    +
    + + + blockModel + + + + ( + + + ) + + +  + +
    +
    +

    + Block the current model. Can be called only if immediately preceded +by a SAT or INVALID query. +

    +

    + SMT-LIB: +

    +
    +
    +
    (block-model)
    +
    +
    +
    +

    + Requires enabling option + + + produce-models + + + to a mode other than + + + none + + + . +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future +versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + mode + + – The mode to use for blocking +

    +
    +
    +
    +
    +
    +
    + + + blockModelValues + + + + ( + + + ) + + +  + +
    +
    +

    + Block the current model values of (at least) the values in terms. +Can be called only if immediately preceded by a SAT query. +

    +

    + SMT-LIB: +

    +
    +
    +
    (block-model-values ( <terms>+ ))
    +
    +
    +
    +

    + Requires enabling option + + + produce-models + + + . +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future +versions. +

    +
    +
    +
    +
    +
    + + + checkSat + + + + ( + + + ) + + +  + +
    +
    +

    + Check satisfiability. +

    +

    + SMT-LIB: +

    +
    +
    +
    ( check-sat )
    +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The result of the satisfiability check. +

    +
    +
    +
    +
    +
    +
    + + + checkSatAssuming + + + + ( + + + ) + + +  + +
    +
    +

    + Check satisfiability assuming the given formula. +

    +

    + SMT-LIB: +

    +
    +
    +
    ( check-sat-assuming ( <prop_literal> ) )
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + assumptions + + – The formulas to assume. +

    +
    +
    + Returns + + : + +
    +
    +

    + The result of the satisfiability check. +

    +
    +
    +
    +
    +
    +
    + + + checkSynth + + + + ( + + + ) + + +  + +
    +
    +

    + Try to find a solution for the synthesis conjecture corresponding +to the current list of functions-to-synthesize, universal variables +and constraints. +

    +

    + SyGuS v2: +

    +
    +
    +
    ( check-synth )
    +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The result of the check, which is “solution” if the check +found a solution in which case solutions are available via +getSynthSolutions, “no solution” if it was determined +there is no solution, or “unknown” otherwise. +

    +
    +
    +
    +
    +
    +
    + + + checkSynthNext + + + + ( + + + ) + + +  + +
    +
    +

    + Try to find a next solution for the synthesis conjecture +corresponding to the current list of functions-to-synthesize, +universal variables and constraints. Must be called immediately +after a successful call to check-synth or check-synth-next. +Requires incremental mode. +

    +

    + SyGuS v2: +

    +
    +
    +
    ( check-synth )
    +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The result of the check, which is “solution” if the check +found a solution in which case solutions are available via +getSynthSolutions, “no solution” if it was determined +there is no solution, or “unknown” otherwise. +

    +
    +
    +
    +
    +
    +
    + + + declareDatatype + + + + ( + + + ) + + +  + +
    +
    +

    + Create datatype sort. +

    +

    + SMT-LIB: +

    +
    +
    +
    ( declare-datatype <symbol> <datatype_decl> )
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + symbol + + – The name of the datatype sort. +

      +
    • +
    • +

      + + ctors + + – The constructor declarations of the datatype sort. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The datatype sort. +

    +
    +
    +
    +
    +
    +
    + + + declareFun + + + + ( + + + ) + + +  + +
    +
    +

    + Declare n-ary function symbol. +

    +

    + SMT-LIB: +

    +
    +
    +
    ( declare-fun <symbol> ( <sort>* ) <sort> )
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + symbol + + – The name of the function. +

      +
    • +
    • +

      + + sorts + + – The sorts of the parameters to this function. +

      +
    • +
    • +

      + + sort + + – The sort of the return value of this function. +

      +
    • +
    • +

      + + fresh + + – If true, then this method always returns a new Term. +Otherwise, this method will always return the +same Term for each call with the given sorts and +symbol where fresh is false. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The function. +

    +
    +
    +
    +
    +
    +
    + + + declarePool + + + + ( + + + ) + + +  + +
    +
    +

    + Declare a symbolic pool of terms with the given initial value. +

    +

    + SMT-LIB: +

    +
    +
    +
    ( declare-pool <symbol> <sort> ( <term>* ) )
    +
    +
    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future +versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + symbol + + – The name of the pool. +

      +
    • +
    • +

      + + sort + + – The sort of the elements of the pool. +

      +
    • +
    • +

      + + initValue + + – The initial value of the pool. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + declareSepHeap + + + + ( + + + ) + + +  + +
    +
    +

    + When using separation logic, this sets the location sort and the +datatype sort to the given ones. This function should be invoked +exactly once, before any separation logic constraints are provided. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future +versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + locSort + + – The location sort of the heap. +

      +
    • +
    • +

      + + dataSort + + – The data sort of the heap. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + declareSort + + + + ( + + + ) + + +  + +
    +
    +

    + Declare uninterpreted sort. +

    +

    + SMT-LIB: +

    +
    +
    +
    ( declare-sort <symbol> <numeral> )
    +
    +
    +
    +
    +

    + Note +

    +

    + This corresponds to + + + + Solver.mkUninterpretedSort() + + + + if +arity = 0, and to + + + + Solver.mkUninterpretedSortConstructorSort() + + + + if +arity > 0. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + symbol + + – The name of the sort. +

      +
    • +
    • +

      + + arity + + – The arity of the sort. +

      +
    • +
    • +

      + + fresh + + – If true, then this method always returns a new Sort. +Otherwise, this method will always return the same +Sort for each call with the given arity and symbol +where fresh is false. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The sort. +

    +
    +
    +
    +
    +
    +
    + + + declareSygusVar + + + + ( + + + ) + + +  + +
    +
    +

    + Append symbol to the current list of universal variables. +

    +

    + SyGuS v2: +

    +
    +
    +
    ( declare-var <symbol> <sort> )
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + sort + + – The sort of the universal variable. +

      +
    • +
    • +

      + + symbol + + – The name of the universal variable. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The universal variable. +

    +
    +
    +
    +
    +
    +
    + + + defineFun + + + + ( + + + ) + + +  + +
    +
    +

    + Define n-ary function. +

    +

    + SMT-LIB: +

    +
    +
    +
    ( define-fun <function_def> )
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + symbol + + – The name of the function. +

      +
    • +
    • +

      + + bound_vars + + – The parameters to this function. +

      +
    • +
    • +

      + + sort + + – The sort of the return value of this function. +

      +
    • +
    • +

      + + term + + – The function body. +

      +
    • +
    • +

      + + glbl + + – Determines whether this definition is global (i.e. +persists when popping the context). +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The function. +

    +
    +
    +
    +
    +
    +
    + + + defineFunRec + + + + ( + + + ) + + +  + +
    +
    +

    + Define recursive functions. +

    +

    + Supports the following arguments: +

    +
      +
    • +

      + + + Term + + + defineFunRec(str + + + symbol, + + + List[Term] + + + bound_vars, + + + Sort + + + sort, + + + Term + + + term, + + + bool + + + glbl) + + +

      +
    • +
    • +

      + + + Term + + + defineFunRec(Term + + + fun, + + + List[Term] + + + bound_vars, + + + Term + + + term, + + + bool + + + glbl) + + +

      +
    • +
    +

    + SMT-LIB: +

    +
    +
    +
    ( define-funs-rec ( <function_decl>^n ) ( <term>^n ) )
    +
    +
    +
    +

    + Create elements of parameter + + + funs + + + with + + + + mkConst() + + + + . +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + funs + + – The sorted functions. +

      +
    • +
    • +

      + + bound_vars + + – The list of parameters to the functions. +

      +
    • +
    • +

      + + terms + + – The list of function bodies of the functions. +

      +
    • +
    • +

      + + global + + – Determines whether this definition is global (i.e. +persists when popping the context). +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The function. +

    +
    +
    +
    +
    +
    +
    + + + defineFunsRec + + + + ( + + + ) + + +  + +
    +
    +

    + Define recursive functions. +

    +

    + SMT-LIB: +

    +
    +
    +
    ( define-funs-rec ( <function_decl>^n ) ( <term>^n ) )
    +
    +
    +
    +

    + Create elements of parameter + + + funs + + + with + + + + mkConst() + + + + . +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + funs + + – The sorted functions. +

      +
    • +
    • +

      + + bound_vars + + – The list of parameters to the functions. +

      +
    • +
    • +

      + + terms + + – The list of function bodies of the functions. +

      +
    • +
    • +

      + + glb + + – Determines whether this definition is global (i.e. +persists when popping the context). +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + findSynth + + + + ( + + + ) + + +  + +
    +
    +

    + Find a target term of interest using sygus enumeration with a +provided grammar. +

    +

    + SyGuS v2: +

    +
    +
    +
    ( find-synth :target G)
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + fst + + – The identifier specifying what kind of term to find. +

      +
    • +
    • +

      + + grammar + + – The grammar for the term. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The result of the find, which is the null term if this +call failed. +

    +
    +
    +
    +
    +
    +
    + + + findSynthNext + + + + ( + + + ) + + +  + +
    +
    +

    + Try to find a next solution for the synthesis conjecture +corresponding to the current list of functions-to-synthesize, +universal variables and constraints. Must be called immediately +after a successful call to check-synth or check-synth-next. +Requires incremental mode. +

    +

    + SyGuS v2: +

    +
    +
    +
    ( find-synth-next )
    +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The result of the find, which is the null term if this +call failed. +

    +
    +
    +
    +
    +
    +
    + + + getAbduct + + + + ( + + + ) + + +  + +
    +
    +

    + Get an abduct. +

    +

    + SMT-LIB: +

    +
    +
    +
    ( get-abduct <conj> )
    +( get-abduct <conj> <grammar> )
    +
    +
    +
    +

    + Requires to enable option + + + produce-abducts + + + . +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future +versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + conj + + – The conjecture term. +

      +
    • +
    • +

      + + grammar + + – A grammar for the abduct. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The abduct. +See + + + + cvc5::Solver::getAbduct() + + + + for details. +

    +
    +
    +
    +
    +
    +
    + + + getAbductNext + + + + ( + + + ) + + +  + +
    +
    +

    + Get the next abduct. +

    +

    + Can only be called immediately after a successful call to + + + + Solver.getAbduct() + + + + or + + + + Solver.getAbductNext() + + + + . +Is guaranteed to produce a syntactically different abduct wrt the +last returned abduct if successful. +

    +

    + SMT-LIB: +

    +
    +
    +
    ( get-abduct-next )
    +
    +
    +
    +

    + Requires to enable incremental mode, and +option + + + produce-abducts + + + . +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future +versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + output + + – The term where the result will be stored. +

    +
    +
    + Returns + + : + +
    +
    +

    + True iff an abduct was found. +

    +
    +
    +
    +
    +
    +
    + + + getAssertions + + + + ( + + + ) + + +  + +
    +
    +

    + Get the list of asserted formulas. +

    +

    + SMT-LIB: +

    +
    +
    +
    ( get-assertions )
    +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The list of asserted formulas. +

    +
    +
    +
    +
    +
    +
    + + + getBooleanSort + + + + ( + + + ) + + +  + +
    +
    +

    + Get the Boolean sort. +:return: Sort Boolean. +.. warning:: This function is deprecated and will be removed in a +

    +
    +
    +

    + future release. +

    +
    +
    +
    +
    +
    +
    + + + getDifficulty + + + + ( + + + ) + + +  + +
    +
    +

    + Get a difficulty estimate for an asserted formula. This function is +intended to be called immediately after any response to a + + + + Solver.checkSat() + + + + call. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future +versions. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + A map from (a subset of) the input assertions to a real +value that is an estimate of how difficult each assertion +was to solver. Unmentioned assertions can be assumed to +have zero difficulty. +

    +
    +
    +
    +
    +
    +
    + + + getInfo + + + + ( + + + ) + + +  + +
    +
    +

    + Get info from the solver. +

    +

    + SMT-LIB: +

    +
    +
    +
    ( get-info <info_flag> )
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + flag + + – The info flag. +

    +
    +
    + Returns + + : + +
    +
    +

    + The info. +

    +
    +
    +
    +
    +
    +
    + + + getInstantiations + + + + ( + + + ) + + +  + +
    +
    +

    + Return a string that contains information about all instantiations +made by the quantifiers module. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future +versions. +

    +
    +
    +
    +
    +
    + + + getIntegerSort + + + + ( + + + ) + + +  + +
    +
    +

    + Get the integer sort. +:return: Sort Integer. +.. warning:: This function is deprecated and will be removed in a +

    +
    +
    +

    + future release. +

    +
    +
    +
    +
    +
    +
    + + + getInterpolant + + + + ( + + + ) + + +  + +
    +
    +

    + Get an interpolant. +Assuming that + + \(A \rightarrow B\) + + is valid, +this function +determines a term + + \(I\) + + over the shared variables of + + \(A\) + + and + + \(B\) + + , +optionally with respect to a +a given grammar, such that + + \(A \rightarrow I\) + + and + + \(I \rightarrow B\) + + are valid, if such a term exits. + + \(A\) + + is the current set of assertions and + + \(B\) + + is the +conjecture, given as + + + conj + + + . +

    +

    + SMT-LIB: +

    +
    +
    +
    ( get-interpolant <symbol> <conj> )
    +( get-interpolant <symbol> <conj> <grammar> )
    +
    +
    +
    +
    +

    + Note +

    +

    + In SMT-LIB, + + + <symbol> + + + assigns a symbol to the +interpolant. +

    +
    +
    +

    + Note +

    +

    + Requires option + + + produce-interpolants + + + to be set to a mode different from + + + none + + + . +

    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future +versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + conj + + – The conjecture term. +

      +
    • +
    • +

      + + grammar + + – A grammar for the interpolant. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The interpolant, if such a term exists. +

    +
    +
    +
    +
    +
    +
    + + + getInterpolantNext + + + + ( + + + ) + + +  + +
    +
    +

    + Get the next interpolant. +

    +

    + Can only be called immediately after a successful call to + + + + Solver.getInterpolant() + + + + or + + + + Solver.getInterpolantNext() + + + + . +Is guaranteed to produce a syntactically different interpolant wrt +the last returned interpolant if successful. +

    +

    + SMT-LIB: +

    +
    +
    +
    ( get-interpolant-next )
    +
    +
    +
    +

    + Requires to enable incremental mode, and option + + + produce-interpolants + + + to be +set to a mode different from + + + none + + + . +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future +versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + output + + – The term where the result will be stored. +

    +
    +
    + Returns + + : + +
    +
    +

    + True iff an interpolant was found. +

    +
    +
    +
    +
    +
    +
    + + + getLearnedLiterals + + + + ( + + + ) + + +  + +
    +
    +

    + Get a list of literals that are entailed by the current set of assertions +

    +

    + SMT-LIB: +

    +
    +
    +
    ( get-learned-literals )
    +
    +
    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future +versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + type + + – The type of learned literals to return +

    +
    +
    + Returns + + : + +
    +
    +

    + The list of literals. +

    +
    +
    +
    +
    +
    +
    + + + getLogic + + + + ( + + + ) + + +  + +
    +
    +

    + Get the logic set the solver. +

    +
    +

    + Note +

    +

    + Asserts isLogicSet(). +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The logic used by the solver. +

    +
    +
    +
    +
    +
    +
    + + + getModel + + + + ( + + + ) + + +  + +
    +
    +

    + Get the model +

    +

    + SMT-LIB: +

    +
    +
    +
    (get-model)
    +
    +
    +
    +

    + Requires to enable option + + + produce-models + + + . +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future +versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + sorts + + – The list of uninterpreted sorts that should be +printed in the model. +

      +
    • +
    • +

      + + vars + + – The list of free constants that should be printed in +the model. A subset of these may be printed based on + + + + Solver.isModelCoreSymbol() + + + + . +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + A string representing the model. +

    +
    +
    +
    +
    +
    +
    + + + getModelDomainElements + + + + ( + + + ) + + +  + +
    +
    +

    + Get the domain elements of uninterpreted sort s in the current +model. The current model interprets s as the finite sort whose +domain elements are given in the return value of this method. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + s + + – The uninterpreted sort in question. +

    +
    +
    + Returns + + : + +
    +
    +

    + The domain elements of s in the current model. +

    +
    +
    +
    +
    +
    +
    + + + getNumIndicesForSkolemId + + + + ( + + + ) + + +  + +
    +
    +

    + Get the number of indices for a skolem id. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + id + + – The skolem id. +

    +
    +
    + Returns + + : + +
    +
    +

    + The number of indice for a skolem with the given id. +

    +
    +
    +
    +
    +
    +
    + + + getOption + + + + ( + + + ) + + +  + +
    +
    +

    + Get the value of a given option. +

    +

    + SMT-LIB: +

    +
    +
    +
    ( get-option <keyword> )
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + option + + – The option for which the value is queried. +

    +
    +
    + Returns + + : + +
    +
    +

    + A string representation of the option value. +

    +
    +
    +
    +
    +
    +
    + + + getOptionInfo + + + + ( + + + ) + + +  + +
    +
    +

    + Get some information about the given option. +Returns the information provided by the C++ + + + + OptionInfo + + + + as a dictionary. +

    +
    +
    + Returns + + : + +
    +
    +

    + Information about the given option. +

    +
    +
    +
    +
    +
    +
    + + + getOptionNames + + + + ( + + + ) + + +  + +
    +
    +
    +
    +

    + Get all option names that can be used with + + + + Solver.setOption() + + + + , + + + + Solver.getOption() + + + + and + + + + Solver.getOptionInfo() + + + + . +

    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + All option names. +

    +
    +
    +
    +
    +
    +
    + + + getProof + + + + ( + + + ) + + +  + +
    +
    +

    + Get a proof associated with the most recent call to checkSat. +

    +

    + SMT-LIB: +

    +
    +
    +
    (get-proof :c)
    +
    +
    +
    +

    + Requires to enable option + + + produce-proofs + + + . +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future +versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + c + + – The component of the proof to return. +

    +
    +
    + Returns + + : + +
    +
    +

    + A vector of proof nodes. +

    +
    +
    +
    +
    +
    +
    + + + getQuantifierElimination + + + + ( + + + ) + + +  + +
    +
    +

    + Do quantifier elimination. +

    +

    + SMT-LIB: +

    +
    +
    +
    ( get-qe <q> )
    +
    +
    +
    +

    + Requires a logic that supports quantifier elimination. +Currently, the only logics supported by quantifier elimination +are LRA and LIA. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future +versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + q + + – A quantified formula of the form + + \(Q\bar{x_1}\dots Q\bar{x}_n. P( x_1 \dots x_i, y_1 \dots y_j)\) + + where + + \(Q\bar{x}\) + + is a set of quantified variables of the +form + + \(Q x_1...x_k\) + + and + + \(P( x_1...x_i, y_1...y_j )\) + + is a quantifier-free +formula +

    +
    +
    + Returns + + : + +
    +
    +

    +

    +

    + A formula + + \(\phi\) + + such that, given the current set +of formulas + + \(A\) + + asserted to this solver: +

    +
      +
    • +

      + + \((A \wedge q)\) + + + \((A \wedge \phi)\) + + are +equivalent +

      +
    • +
    • +

      + + \(\phi\) + + is quantifier-free formula containing only +free variables in + + \(y_1...y_n\) + + . +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + getQuantifierEliminationDisjunct + + + + ( + + + ) + + +  + +
    +
    +
    +
    +

    + Do partial quantifier elimination, which can be used for +incrementally computing the result of a quantifier elimination. +

    +

    + SMT-LIB: +

    +
    +
    +
    ( get-qe-disjunct <q> )
    +
    +
    +
    +

    + Requires a logic that supports quantifier elimination. +Currently, the only logics supported by quantifier elimination +are LRA and LIA. +

    +
    +
    +
    +

    + Warning +

    +
    +
    + This function is experimental and may change in future +
    +
    +

    + versions. +

    +
    +
    +
    +
    + param q + + : + +
    +
    +

    + A quantified formula of the form + + \(Q\bar{x_1} ... Q\bar{x_n}. P( x_1...x_i, y_1...y_j)\) + + where + + \(Q\bar{x}\) + + is a set of quantified variables of +the form + + \(Q x_1...x_k\) + + and + + \(P( x_1...x_i, y_1...y_j )\) + + is a quantifier-free formula. +

    +
    +
    + return + + : + +
    +
    +

    + A formula + + \(\phi\) + + such that, given the current set +of formulas + + \(A\) + + asserted to this solver: +

    +
      +
    • +

      + + \((A \wedge q \implies A \wedge \phi)\) + + if + + \(Q\) + + is + + \(\forall\) + + , and + + \((A \wedge \phi \implies A \wedge q)\) + + if + + \(Q\) + + is + + \(\exists\) + +

      +
    • +
    • +

      + + \(\phi\) + + is quantifier-free formula containing only +free variables in + + \(y_1...y_n\) + +

      +
    • +
    • +

      + If + + \(Q\) + + is + + \(\exists\) + + , let + + \((A \wedge Q_n)\) + + be the formula + + \((A \wedge \neg (\phi \wedge Q_1) \wedge ... \wedge \neg (\phi \wedge Q_n))\) + + where for each + + \(i = 1...n\) + + , formula + + \((\phi \wedge Q_i)\) + + is the result of calling + + + + getQuantifierEliminationDisjunct() + + + + for + + \(q\) + + with the set of assertions + + \((A \wedge Q_{i-1})\) + + . +Similarly, if + + \(Q\) + + is + + \(\forall\) + + , then let + + \((A \wedge Q_n)\) + + be + + \((A \wedge (\phi \wedge Q_1) \wedge ... \wedge (\phi \wedge Q_n))\) + + where + + \((\phi \wedge Q_i)\) + + is the same as above. +In either case, we have that + + \((\phi \wedge Q_j)\) + + will eventually be true or false, for some finite + + \(j\) + + . +

      +
    • +
    +
    +
    +
    +
    +
    +
    +
    + + + getRealSort + + + + ( + + + ) + + +  + +
    +
    +

    + Get the real sort. +:return: Sort Real. +.. warning:: This function is deprecated and will be removed in a +

    +
    +
    +

    + future release. +

    +
    +
    +
    +
    +
    +
    + + + getRegExpSort + + + + ( + + + ) + + +  + +
    +
    +

    + Get the regular expression sort. +:return: The sort of regular expressions. +.. warning:: This function is deprecated and will be removed in a +

    +
    +
    +

    + future release. +

    +
    +
    +
    +
    +
    +
    + + + getRoundingModeSort + + + + ( + + + ) + + +  + +
    +
    +

    + Get the rounding mode sort. +:return: Sort RoundingMode. +.. warning:: This function is deprecated and will be removed in a +

    +
    +
    +

    + future release. +

    +
    +
    +
    +
    +
    +
    + + + getStatistics + + + + ( + + + ) + + +  + +
    +
    +

    + Return a snapshot of the current state of the statistic values of +this solver. The returned object is completely decoupled from the +solver and will not change when the solver is used again. +

    +
    +
    +
    +
    + + + getStringSort + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + Sort String. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + getSygusAssumptions + + + + ( + + + ) + + +  + +
    +
    +

    + Get the list of sygus assumptions. +:return: The list of sygus assumptions. +

    +
    +
    +
    +
    + + + getSygusConstraints + + + + ( + + + ) + + +  + +
    +
    +

    + Get the list of sygus constraints. +:return: The list of sygus constraints. +

    +
    +
    +
    +
    + + + getSynthSolution + + + + ( + + + ) + + +  + +
    +
    +

    + Get the synthesis solution of the given term. This function should be +called immediately after the solver answers unsat for sygus input. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The term for which the synthesis solution is queried. +

    +
    +
    + Returns + + : + +
    +
    +

    + The synthesis solution of the given term. +

    +
    +
    +
    +
    +
    +
    + + + getSynthSolutions + + + + ( + + + ) + + +  + +
    +
    +

    + Get the synthesis solutions of the given terms. This function should +be called immediately after the solver answers unsat for sygus +input. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + terms + + – The terms for which the synthesis solutions is +queried. +

    +
    +
    + Returns + + : + +
    +
    +

    + The synthesis solutions of the given terms. +

    +
    +
    +
    +
    +
    +
    + + + getTermManager + + + + ( + + + ) + + +  + +
    +
    +

    + Get the associated term manager instance. +:return: The term manager instance. +

    +
    +
    +
    +
    + + + getTimeoutCore + + + + ( + + + ) + + +  + +
    +
    +

    + Get a timeout core, which computes a subset of the current +assertions that cause a timeout. Note it does not require being +proceeded by a call to checkSat. +

    +
    +
    +
    (get-timeout-core)
    +
    +
    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future +versions. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The result of the timeout core computation. This is a pair +

    +
    +
    +

    + containing a result and a list of formulas. If the result is unknown +and the reason is timeout, then the list of formulas correspond to a +subset of the current assertions that cause a timeout in the +specified time + + + timeout-core-timeout + + + . +If the result is unsat, then the list of formulas correspond to an +unsat core for the current assertions. Otherwise, the result is sat, +indicating that the current assertions are satisfiable, and +the list of formulas is empty. +

    +

    + This function may make multiple checks for satisfiability internally, +each limited by the timeout value given by + + + timeout-core-timeout + + + . +

    +
    +
    +
    +
    + + + getTimeoutCoreAssuming + + + + ( + + + ) + + +  + +
    +
    +

    + Get a timeout core, which computes a subset of the given assumptions +that cause a timeout when added to the current assertions. Note it +does not require being proceeded by a call to checkSat. +

    +
    +
    +
    (get-timeout-core)
    +
    +
    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future +versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + assumptions + + – The formulas to assume. +

    +
    +
    + Returns + + : + +
    +
    +

    + The result of the timeout core computation. This is a pair +containing a result and a list of formulas. If the result is unknown +and the reason is timeout, then the list of formulas correspond to a +subset of assumptions that cause a timeout when added to the current +assertions in the specified time +

    +
    +
    +
    +
    + + + timeout-core-timeout + + + . +
    +
    +

    + If the result is unsat, then the list of formulas plus the current +assertions correspond to an unsat core for the current assertions. +Otherwise, the result is sat, indicating that the given assumptions plus +the current assertions are satisfiable, and the list of formulas is empty. +

    +
    +
    +

    + This function may make multiple checks for satisfiability internally, +each limited by the timeout value given by + + + timeout-core-timeout + + + . +

    +
    +
    +
    +
    + + + getUnsatAssumptions + + + + ( + + + ) + + +  + +
    +
    +

    + Get the set of unsat (“failed”) assumptions. +

    +

    + SMT-LIB: +

    +
    +
    +
    ( get-unsat-assumptions )
    +
    +
    +
    +

    + Requires to enable option + + + produce-unsat-assumptions + + + . +

    +
    +
    + Returns + + : + +
    +
    +

    + The set of unsat assumptions. +

    +
    +
    +
    +
    +
    +
    + + + getUnsatCore + + + + ( + + + ) + + +  + +
    +
    +

    + Get the unsatisfiable core. +

    +

    + SMT-LIB: +

    +
    +
    +
    (get-unsat-core)
    +
    +
    +
    +

    + Requires to enable option + + + produce-unsat-cores + + + . +

    +
    +

    + Note +

    +

    + In contrast to SMT-LIB, the API does not distinguish between +named and unnamed assertions when producing an unsatisfiable +core. Additionally, the API allows this option to be called after +a check with assumptions. A subset of those assumptions may be +included in the unsatisfiable core returned by this method. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + A set of terms representing the unsatisfiable core. +

    +
    +
    +
    +
    +
    +
    + + + getUnsatCoreLemmas + + + + ( + + + ) + + +  + +
    +
    +

    + Get the lemmas used to derive unsatisfiability. +

    +

    + SMT-LIB: +

    +
    +
    +
    (get-unsat-core-lemmas)
    +
    +
    +
    +

    + Requires the SAT proof unsat core mode, so to enable option + + unsat-core-mode=sat-proof + + . +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in +future versions. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + A set of terms representing the lemmas used to derive +

    +
    +
    +

    + unsatisfiability. +

    +
    +
    +
    +
    + + + getValue + + + + ( + + + ) + + +  + +
    +
    +

    + Get the value of the given term or list of terms in the current +model. +

    +

    + SMT-LIB: +

    +
    +
    +
    ( get-value ( <term>* ) )
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + term_or_list + + – The term or list of terms for which the value +is queried. +

    +
    +
    + Returns + + : + +
    +
    +

    + The value or list of values of the given term or list of +terms. +

    +
    +
    +
    +
    +
    +
    + + + getValueSepHeap + + + + ( + + + ) + + +  + +
    +
    +

    + When using separation logic, obtain the term for the heap. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future +versions. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The term for the heap. +

    +
    +
    +
    +
    +
    +
    + + + getValueSepNil + + + + ( + + + ) + + +  + +
    +
    +

    + When using separation logic, obtain the term for nil. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future +versions. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The term for nil. +

    +
    +
    +
    +
    +
    +
    + + + getVersion + + + + ( + + + ) + + +  + +
    +
    +

    + Return a string representation of the version of this solver. +

    +
    +
    +
    +
    + + + isLogicSet + + + + ( + + + ) + + +  + +
    +
    +

    + Is logic set? Returns whether we called setLogic yet for this +solver. +

    +
    +
    + Returns + + : + +
    +
    +

    + whether we called setLogic yet for this solver. +

    +
    +
    +
    +
    +
    +
    + + + isModelCoreSymbol + + + + ( + + + ) + + +  + +
    +
    +

    + This returns False if the model value of free constant v was not +essential for showing the satisfiability of the last call to +checkSat using the current model. This function will only return +false (for any v) if the model-cores option has been set. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future +versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + v + + – The term in question. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if v is a model core symbol. +

    +
    +
    +
    +
    +
    +
    + + + mkAbstractSort + + + + ( + + + ) + + +  + +
    +
    +

    + Create an abstract sort. An abstract sort represents a sort for a +given kind whose parameters and arguments are unspecified. +

    +

    + Parameter + + + kind + + + must be the kind of a sort that can be +abstracted, i.e., a sort that has indices or argument sorts. For +example, + + + ARRAY_SORT + + + and + + + BITVECTOR_SORT + + + can be passed as the +to this function, while + + + INTEGER_SORT + + + and + + + STRING_SORT + + + cannot. +

    +

    + Providing the kind + + + ABSTRACT_SORT + + + as an argument to this method returns the (fully) unspecified sort, +denoted + + + ? + + + . +

    +

    + Providing a kind of sort that has no indices and a fixed arity of +argument sorts will return the sort of + + + kind + + + whose arguments are +the unspecified sort. For example, + + + mkAbstractSort(ARRAY_SORT) + + + will +return the sort + + + (ARRAY_SORT + + + ? + + + ?) + + + instead of the abstract sort whose +abstract kind is py:obj: + + ARRAY_SORT <Kind.ARRAY_SORT> + + . +

    +
    +
    + Parameters + + : + +
    +
    +

    + + k + + – The kind of the abstract sort +

    +
    +
    + Returns + + : + +
    +
    +

    + The abstract sort. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future +versions. +

    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkArraySort + + + + ( + + + ) + + +  + +
    +
    +

    + Create an array sort. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + indexSort + + – The array index sort. +

      +
    • +
    • +

      + + elemSort + + – The array element sort. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The array sort. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkBagSort + + + + ( + + + ) + + +  + +
    +
    +

    + Create a bag sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + elemSort + + – The sort of the bag elements. +

    +
    +
    + Returns + + : + +
    +
    +

    + The bag sort. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkBitVector + + + + ( + + + ) + + +  + +
    +
    +

    + Create bit-vector value. +

    +

    + Supports the following arguments: +

    +
      +
    • +

      + + + Term + + + mkBitVector(int + + + size, + + + int + + + val=0) + + +

      +
    • +
    • +

      + + + Term + + + mkBitVector(int + + + size, + + + string + + + val, + + + int + + + base) + + +

      +
    • +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + size + + – The bit-width. +

      +
    • +
    • +

      + + val + + – An integer representating the value, in the first form. +In the second form, a string representing the value. +

      +
    • +
    • +

      + + base + + – The base of the string representation (second form +only). +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + A Term representing a bit-vector value. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkBitVectorSort + + + + ( + + + ) + + +  + +
    +
    +

    + Create a bit-vector sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + size + + – The bit-width of the bit-vector sort +

    +
    +
    + Returns + + : + +
    +
    +

    + The bit-vector sort +

    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkBoolean + + + + ( + + + ) + + +  + +
    +
    +

    + Create a Boolean constant. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + val + + – The value of the constant. +

    +
    +
    + Returns + + : + +
    +
    +

    + The Boolean constant. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkCardinalityConstraint + + + + ( + + + ) + + +  + +
    +
    +

    + Create cardinality constraint. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future +versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + sort + + – Sort of the constraint. +

      +
    • +
    • +

      + + index + + – The upper bound for the cardinality of the sort. +

      +
    • +
    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkConst + + + + ( + + + ) + + +  + +
    +
    +

    + Create (first-order) constant (0-arity function symbol). +

    +

    + SMT-LIB: +

    +
    +
    +
    ( declare-const <symbol> <sort> )
    +( declare-fun <symbol> ( ) <sort> )
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + sort + + – The sort of the constant. +

      +
    • +
    • +

      + + symbol + + – The name of the constant. If None, a default symbol +is used. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The first-order constant. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkConstArray + + + + ( + + + ) + + +  + +
    +
    +

    + Create a constant array with the provided constant value stored at +every index +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + sort + + – The sort of the constant array (must be an array sort). +

      +
    • +
    • +

      + + val + + – The constant value to store (must match the sort’s +element sort). +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The constant array term. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkDatatypeConstructorDecl + + + + ( + + + ) + + +  + +
    +
    +

    + Create datatype constructor declaration. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + name + + – The name of the constructor. +

    +
    +
    + Returns + + : + +
    +
    +

    + The datatype constructor declaration. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkDatatypeDecl + + + + ( + + + ) + + +  + +
    +
    +

    + Create a datatype declaration. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + name + + – The name of the datatype. +

      +
    • +
    • +

      + + isCoDatatype + + – True if a codatatype is to be constructed. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The datatype declaration. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkDatatypeSort + + + + ( + + + ) + + +  + +
    +
    +

    + Create a datatype sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + dtypedecl + + – The datatype declaration from which the sort is +created. +

    +
    +
    + Returns + + : + +
    +
    +

    + The datatype sort. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkDatatypeSorts + + + + ( + + + ) + + +  + +
    +
    +

    + Create a vector of datatype sorts using unresolved sorts. The names +of the datatype declarations in dtypedecls must be distinct. +

    +

    + When constructing datatypes, unresolved sorts are replaced by the +datatype sort constructed for the datatype declaration it is +associated with. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + dtypedecls + + – The datatype declarations from which the sort is +created. +

    +
    +
    + Returns + + : + +
    +
    +

    + The datatype sorts. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkEmptyBag + + + + ( + + + ) + + +  + +
    +
    +

    + Create a constant representing an empty bag of the given sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort of the bag elements. +

    +
    +
    + Returns + + : + +
    +
    +

    + The empty bag constant. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkEmptySequence + + + + ( + + + ) + + +  + +
    +
    +

    + Create an empty sequence of the given element sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The element sort of the sequence. +

    +
    +
    + Returns + + : + +
    +
    +

    + The empty sequence with given element sort. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkEmptySet + + + + ( + + + ) + + +  + +
    +
    +

    + Create a constant representing an empty set of the given sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort of the set elements. +

    +
    +
    + Returns + + : + +
    +
    +

    + The empty set constant. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkFalse + + + + ( + + + ) + + +  + +
    +
    +

    + Create a Boolean false constant. +

    +
    +
    + Returns + + : + +
    +
    +

    + The false constant. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkFiniteFieldElem + + + + ( + + + ) + + +  + +
    +
    +

    + Create finite field value. +

    +

    + Supports the following arguments: +

    +
      +
    • +

      + + + Term + + + mkFiniteFieldElem(int + + + value, + + + Sort + + + sort) + + +

      +
    • +
    • +

      + + + Term + + + mkFiniteFieldElem(string + + + value, + + + Sort + + + sort) + + +

      +
    • +
    • +

      + + + Term + + + mkFiniteFieldElem(string + + + value, + + + Sort + + + sort, + + + int + + + base) + + +

      +
    • +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + value + + – The value of the element’s integer representation. +An integer or string of base 10 if the base is not +explicitly given, and else a string in the given base. +

      +
    • +
    • +

      + + sort + + – The field to create the element in. +

      +
    • +
    • +

      + + base + + – The base of the string representation of + + + value + + + . +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + A Term representing a finite field value. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkFiniteFieldSort + + + + ( + + + ) + + +  + +
    +
    +

    + Create a finite field sort. +

    +

    + Supports the following arguments: +

    +
      +
    • +

      + + + Sort + + + mkFiniteFieldSort(int + + + size) + + +

      +
    • +
    • +

      + + + Sort + + + mkFiniteFieldSort(string + + + size) + + +

      +
    • +
    • +

      + + + Sort + + + mkFiniteFieldSort(string + + + size, + + + int + + + base) + + +

      +
    • +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + size + + – The size of the field. Must be a prime-power. +An integer or string of base 10 if the base is not +explicitly given, and else a string in the given base. +

      +
    • +
    • +

      + + base + + – The base of the string representation of + + + size + + + . +

      +
    • +
    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkFloatingPoint + + + + ( + + + ) + + +  + +
    +
    +

    + Create a floating-point value from a bit-vector given in IEEE-754 +format, or from its three IEEE-754 bit-vector value components +(sign bit, exponent, significand). Arguments must be either given +as (int, int, Term) or (Term, Term, Term). +

    +

    + :param arg0 The size of the exponent or the sign bit. +:param arg1 The size of the signifcand or the bit-vector +

    +
    +
    +

    + representing the exponent. +

    +
    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + arg2 + + – The value of the floating-point constant as a +bit-vector term or the bit-vector representing the +significand. +

    +
    +
    +

    + :return The floating-point value. +.. warning:: This function is deprecated and will be removed in a +

    +
    +
    +

    + future release. +

    +
    +
    +
    +
    +
    +
    + + + mkFloatingPointNaN + + + + ( + + + ) + + +  + +
    +
    +

    + Create a not-a-number (NaN) floating-point constant. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + exp + + – Number of bits in the exponent. +

      +
    • +
    • +

      + + sig + + – Number of bits in the significand. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The floating-point constant. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkFloatingPointNegInf + + + + ( + + + ) + + +  + +
    +
    +

    + Create a negative infinity floating-point constant. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + exp + + – Number of bits in the exponent. +

      +
    • +
    • +

      + + sig + + – Number of bits in the significand. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The floating-point constant. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkFloatingPointNegZero + + + + ( + + + ) + + +  + +
    +
    +

    + Create a negative zero (+0.0) floating-point constant. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + exp + + – Number of bits in the exponent. +

      +
    • +
    • +

      + + sig + + – Number of bits in the significand. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The floating-point constant. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkFloatingPointPosInf + + + + ( + + + ) + + +  + +
    +
    +

    + Create a positive infinity floating-point constant. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + exp + + – Number of bits in the exponent. +

      +
    • +
    • +

      + + sig + + – Number of bits in the significand. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The floating-point constant. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkFloatingPointPosZero + + + + ( + + + ) + + +  + +
    +
    +

    + Create a positive zero (+0.0) floating-point constant. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + exp + + – Number of bits in the exponent. +

      +
    • +
    • +

      + + sig + + – Number of bits in the significand. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The floating-point constant. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkFloatingPointSort + + + + ( + + + ) + + +  + +
    +
    +

    + Create a floating-point sort. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + exp + + – The bit-width of the exponent of the floating-point +sort. +

      +
    • +
    • +

      + + sig + + – The bit-width of the significand of the floating-point +sort. +

      +
    • +
    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkFunctionSort + + + + ( + + + ) + + +  + +
    +
    +

    + Create function sort. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + sorts + + – The sort of the function arguments. +

      +
    • +
    • +

      + + codomain + + – The sort of the function return value. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The function sort. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkGrammar + + + + ( + + + ) + + +  + +
    +
    +

    + Create a SyGuS grammar. The first non-terminal is treated as the +starting non-terminal, so the order of non-terminals matters. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + boundVars + + – The parameters to corresponding +synth-fun/synth-inv. +

      +
    • +
    • +

      + + ntSymbols + + – The pre-declaration of the non-terminal symbols. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The grammar. +

    +
    +
    +
    +
    +
    +
    + + + mkInteger + + + + ( + + + ) + + +  + +
    +
    +

    + Create an integer constant. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + val + + – Representation of the constant: either a string or +integer. +

    +
    +
    + Returns + + : + +
    +
    +

    + A constant of sort Integer. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkNullableIsNull + + + + ( + + + ) + + +  + +
    +
    +

    + Create a null tester for a nullable term. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – A nullable term. +

    +
    +
    + Returns + + : + +
    +
    +

    + A tester whether term is null. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkNullableIsSome + + + + ( + + + ) + + +  + +
    +
    +

    + Create a some tester for a nullable term. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – A nullable term. +

    +
    +
    + Returns + + : + +
    +
    +

    + A tester whether term is some. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkNullableLift + + + + ( + + + ) + + +  + +
    +
    +

    + Create a term that lifts kind to nullable terms. +Example: +If we have the term ((_ nullable.lift +) x y), +where x, y of type (Nullable Int), then +kind would be ADD, and args would be [x, y]. +This function would return +(nullable.lift (lambda ((a Int) (b Int)) (+ a b)) x y) +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + kind + + – The lifted operator. +

      +
    • +
    • +

      + + args + + – The arguments of the lifted operator. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + A term of Kind NULLABLE_LIFT where the first child +is a lambda expression, and the remaining children are +the original arguments. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkNullableNull + + + + ( + + + ) + + +  + +
    +
    +

    + Create a constant representing an null of the given sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The sort of the Nullable element. +

    +
    +
    + Returns + + : + +
    +
    +

    + The null constant. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkNullableSome + + + + ( + + + ) + + +  + +
    +
    +

    + Create a nullable some term. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The elements value. +

    +
    +
    + Returns + + : + +
    +
    +

    + The element value wrapped in some constructor. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkNullableSort + + + + ( + + + ) + + +  + +
    +
    +

    + Create a nullable sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + elemSort + + – The sort of the element of the nullable. +

    +
    +
    + Returns + + : + +
    +
    +

    + The nullable sort. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkNullableVal + + + + ( + + + ) + + +  + +
    +
    +

    + Create a selector for nullable term. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – A nullable term. +

    +
    +
    + Returns + + : + +
    +
    +

    + The element value of the nullable term. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkOp + + + + ( + + + ) + + +  + +
    +
    +

    + Create operator. +

    +

    + Supports the following arguments: +

    +
      +
    • +

      + + + Op + + + mkOp(Kind + + + kind) + + +

      +
    • +
    • +

      + + + Op + + + mkOp(Kind + + + kind, + + + const + + + string& + + + arg) + + +

      +
    • +
    • +

      + + + Op + + + mkOp(Kind + + + kind, + + + uint32_t + + + arg0, + + + ...) + + +

      +
    • +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkParamSort + + + + ( + + + ) + + +  + +
    +
    +

    + Create a sort parameter. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + symbol + + – The name of the sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + The sort parameter. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future +versions. +

    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkPi + + + + ( + + + ) + + +  + +
    +
    +

    + Create a constant representing the number Pi. +

    +
    +
    + Returns + + : + +
    +
    +

    + A constant representing + + + + PI + + + + . +

    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkPredicateSort + + + + ( + + + ) + + +  + +
    +
    +

    + Create a predicate sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sorts + + – The list of sorts of the predicate. +

    +
    +
    + Returns + + : + +
    +
    +

    + The predicate sort. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkReal + + + + ( + + + ) + + +  + +
    +
    +

    + Create a real constant from a numerator and an optional denominator. +

    +

    + First converts the arguments to a temporary string, either + + + "<numerator>" + + + or + + + "<numerator>/<denominator>" + + + . This temporary +string is forwarded to + + + + cvc5::Solver::mkReal() + + + + and should +thus represent an integer, a decimal number or a fraction. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + numerator + + – The numerator. +

      +
    • +
    • +

      + + denominator + + – The denominator, or + + + None + + + . +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + A real term with literal value. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkRecordSort + + + + ( + + + ) + + +  + +
    +
    +

    + Create a record sort +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future +versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + fields + + – The list of fields of the record. +

    +
    +
    + Returns + + : + +
    +
    +

    + The record sort. +

    +
    +
    + Note + + : + +
    +
    +

    + This function is deprecated and will be removed in a future +release. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future +versions. +

    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkRegexpAll + + + + ( + + + ) + + +  + +
    +
    +

    + Create a regular expression all ( + + + re.all + + + ) term. +

    +
    +
    + Returns + + : + +
    +
    +

    + The all term. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkRegexpAllchar + + + + ( + + + ) + + +  + +
    +
    +

    + Create a regular expression allchar ( + + + re.allchar + + + ) term. +

    +
    +
    + Returns + + : + +
    +
    +

    + The allchar term. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkRegexpNone + + + + ( + + + ) + + +  + +
    +
    +

    + Create a regular expression none ( + + + re.none + + + ) term. +

    +
    +
    + Returns + + : + +
    +
    +

    + The none term. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkRoundingMode + + + + ( + + + ) + + +  + +
    +
    +

    + Create a roundingmode constant. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + rm + + – The floating point rounding mode this constant +represents. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkSepEmp + + + + ( + + + ) + + +  + +
    +
    +

    + Create a separation logic empty term. +

    +
    +
    + Returns + + : + +
    +
    +

    + The separation logic empty term. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future +versions. +

    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkSepNil + + + + ( + + + ) + + +  + +
    +
    +

    + Create a separation logic nil term. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort of the nil term. +

    +
    +
    + Returns + + : + +
    +
    +

    + The separation logic nil term. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future +versions. +

    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkSequenceSort + + + + ( + + + ) + + +  + +
    +
    +

    + Create a sequence sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + elemSort + + – The sort of the sequence elements +

    +
    +
    + Returns + + : + +
    +
    +

    + The sequence sort. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkSetSort + + + + ( + + + ) + + +  + +
    +
    +

    + Create a set sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + elemSort + + – The sort of the set elements. +

    +
    +
    + Returns + + : + +
    +
    +

    + The set sort. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkSkolem + + + + ( + + + ) + + +  + +
    +
    +

    + Create a skolem. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + id + + – The skolem id. +

      +
    • +
    • +

      + + indices + + – The indices for the skolem. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The skolem with the given id and indices. +

    +
    +
    +
    +
    +
    +
    + + + mkString + + + + ( + + + ) + + +  + +
    +
    +

    + Create a String constant from a + + + str + + + which may contain SMT-LIB +compatible escape sequences like + + + \u1234 + + + to encode unicode +characters. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + s + + – The string this constant represents. +

      +
    • +
    • +

      + + useEscSequences + + – Determines whether escape sequences in + + s + + should be converted to the corresponding +unicode character +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The String constant. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkTerm + + + + ( + + + ) + + +  + +
    +
    +

    + Create a term. +

    +

    + Supports the following arguments: +

    +
      +
    • +

      + + + Term + + + mkTerm(Kind + + + kind) + + +

      +
    • +
    • +

      + + + Term + + + mkTerm(Op + + + op) + + +

      +
    • +
    • +

      + + + Term + + + mkTerm(Kind + + + kind, + + + *args) + + +

      +
    • +
    • +

      + + + Term + + + mkTerm(Op + + + op, + + + *args) + + +

      +
    • +
    +

    + where + + + *args + + + is a comma-separated list of terms. +

    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkTrue + + + + ( + + + ) + + +  + +
    +
    +

    + Create a Boolean true constant. +

    +
    +
    + Returns + + : + +
    +
    +

    + The true constant. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkTuple + + + + ( + + + ) + + +  + +
    +
    +

    + Create a tuple term. Terms are automatically converted if sorts are +compatible. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + terms + + – The elements in the tuple. +

    +
    +
    + Returns + + : + +
    +
    +

    + The tuple Term. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkTupleSort + + + + ( + + + ) + + +  + +
    +
    +

    + Create a tuple sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sorts + + – Of the elements of the tuple. +

    +
    +
    + Returns + + : + +
    +
    +

    + The tuple sort. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkUninterpretedSort + + + + ( + + + ) + + +  + +
    +
    +

    + Create an uninterpreted sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + symbol + + – The name of the sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + The uninterpreted sort. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkUninterpretedSortConstructorSort + + + + ( + + + ) + + +  + +
    +
    +

    + Create a sort constructor sort. +

    +

    + An uninterpreted sort constructor is an uninterpreted sort with +arity > 0. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + symbol + + – The symbol of the sort. +

      +
    • +
    • +

      + + arity + + – The arity of the sort (must be > 0). +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The sort constructor sort. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkUniverseSet + + + + ( + + + ) + + +  + +
    +
    +

    + Create a universe set of the given sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort of the set elements +

    +
    +
    + Returns + + : + +
    +
    +

    + The universe set constant +

    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkUnresolvedDatatypeSort + + + + ( + + + ) + + +  + +
    +
    +

    + Create an unresolved datatype sort. +

    +

    + This is for creating yet unresolved sort placeholders for mutually +recursive datatypes. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + symbol + + – The name of the sort. +

      +
    • +
    • +

      + + arity + + – The number of sort parameters of the sort. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The unresolved sort. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + mkVar + + + + ( + + + ) + + +  + +
    +
    +

    + Create a bound variable to be used in a binder (i.e. a quantifier, +a lambda, or a witness binder). +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + sort + + – The sort of the variable. +

      +
    • +
    • +

      + + symbol + + – The name of the variable. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The variable. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is deprecated and will be removed in a +future release. +

    +
    +
    +
    +
    +
    + + + pop + + + + ( + + + ) + + +  + +
    +
    +

    + Pop + + + nscopes + + + level(s) from the assertion stack. +

    +

    + SMT-LIB: +

    +
    +
    +
    ( pop <numeral> )
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + nscopes + + – The number of levels to pop. +

    +
    +
    +
    +
    +
    +
    + + + proofToString + + + + ( + + + ) + + +  + +
    +
    +

    + Prints proof into a string with a selected proof format mode. +Other aspects of printing are taken from the solver options. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in +future versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + proof + + – A proof, usually obtained from + + + + getProof() + + + + . +

      +
    • +
    • +

      + + format + + – The proof format used to print the proof. Must be +“None” if the proof is not a full proof. +

      +
    • +
    • +

      + + assertionNames + + – Mapping between assertions and names, if +they were given by the user. This is used +by the Alethe proof format. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The proof printed in the current format. +

    +
    +
    +
    +
    +
    +
    + + + push + + + + ( + + + ) + + +  + +
    +
    +

    + Push + + + nscopes + + + level(s) to the assertion stack. +

    +

    + SMT-LIB: +

    +
    +
    +
    ( push <numeral> )
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + nscopes + + – The number of levels to push. +

    +
    +
    +
    +
    +
    +
    + + + resetAssertions + + + + ( + + + ) + + +  + +
    +
    +

    + Remove all assertions. +

    +

    + SMT-LIB: +

    +
    +
    +
    ( reset-assertions )
    +
    +
    +
    +
    +
    +
    +
    + + + setInfo + + + + ( + + + ) + + +  + +
    +
    +

    + Set info. +

    +

    + SMT-LIB: +

    +
    +
    +
    ( set-info <attribute> )
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + keyword + + – The info flag. +

      +
    • +
    • +

      + + value + + – The value of the info flag. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + setLogic + + + + ( + + + ) + + +  + +
    +
    +

    + Set logic. +

    +

    + SMT-LIB: +

    +
    +
    +
    ( set-logic <symbol> )
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + logic + + – The logic to set. +

    +
    +
    +
    +
    +
    +
    + + + setOption + + + + ( + + + ) + + +  + +
    +
    +

    + Set option. +

    +

    + SMT-LIB: +

    +
    +
    +
    ( set-option <option> )
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + option + + – The option name. +

      +
    • +
    • +

      + + value + + – The option value. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + simplify + + + + ( + + + ) + + +  + +
    +
    +

    + Simplify a term or formula based on rewriting and (optionally) +applying substitutions for solved variables. +

    +

    + If applySubs is true, then for example, if + + (= x 0) + + was asserted to +this solver, this method may replace occurrences of + + x + + with + + 0 + + . +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future +versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + t + + – The term to simplify. +

      +
    • +
    • +

      + + applySubs + + – Whether to apply substitutions for solved +variables. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The simplified term. +

    +
    +
    +
    +
    +
    +
    + + + synthFun + + + + ( + + + ) + + +  + +
    +
    +

    + Synthesize n-ary function following specified syntactic constraints. +

    +

    + SyGuS v2: +

    +
    +
    +
    ( synth-fun <symbol> ( <boundVars>* ) <sort> <g> )
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + symbol + + – The name of the function. +

      +
    • +
    • +

      + + boundVars + + – The parameters to this function. +

      +
    • +
    • +

      + + sort + + – The sort of the return value of this function. +

      +
    • +
    • +

      + + grammar + + – The syntactic constraints. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The function. +

    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/sort.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/sort.html new file mode 100644 index 0000000000..1bf9e972bc --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/sort.html @@ -0,0 +1,3118 @@ + + + + + + + + + + + Sort — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Sort + +  + +

    +

    + The + + + + Sort + + + + class represents the sort of a + + + + Term + + + + . +Its kind is represented as enum class + + + + cvc5.SortKind + + + + . +

    +

    + A + + + + Sort + + + + can be hashed (using + + + std.hash<cvc5.Sort> + + + ) and represented as a string +(using + + + cvc5.Sort.__str__() + + + ). +

    +

    + Class + + + + cvc5.Sort + + + + only provides the default constructor +to create a null Sort. Class + + + + TermManager + + + + provides factory functions for all other sorts, e.g., + + + + cvc5.TermManager.getBooleanSort() + + + + for the Boolean sort and + + + + cvc5.TermManager.mkBitVectorSort() + + + + for bit-vector +sorts. +

    +

    + Sorts are defined as standardized in the SMT-LIB standard for standardized +theories. Additionally, we introduce the following sorts for non-standardized +theories: +

    + +
    +
    +
    + + + class + + + + + + + cvc5. + + + + + Sort + + + +  + +
    +
    +

    + The sort of a cvc5 term. +

    +

    + Wrapper class for + + + + cvc5::Sort + + + + . +

    +
    +
    + + + getAbstractedKind + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The sort kind of an abstract sort, which denotes the kind +

    +
    +
    +

    + of sorts that this abstract sort denotes. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future +versions. +

    +
    +
    +
    +
    +
    + + + getArrayElementSort + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The array element sort of an array sort. +

    +
    +
    +
    +
    +
    +
    + + + getArrayIndexSort + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The array index sort of an array sort. +

    +
    +
    +
    +
    +
    +
    + + + getBagElementSort + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The element sort of a bag sort. +

    +
    +
    +
    +
    +
    +
    + + + getBitVectorSize + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The bit-width of the bit-vector sort. +

    +
    +
    +
    +
    +
    +
    + + + getDatatype + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The underlying datatype of a datatype sort +

    +
    +
    +
    +
    +
    +
    + + + getDatatypeArity + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The arity of a datatype sort. +

    +
    +
    +
    +
    +
    +
    + + + getDatatypeConstructorArity + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The arity of a datatype constructor sort. +

    +
    +
    +
    +
    +
    +
    + + + getDatatypeConstructorCodomainSort + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The codomain sort of a datatype constructor sort. +

    +
    +
    +
    +
    +
    +
    + + + getDatatypeConstructorDomainSorts + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The domain sorts of a datatype constructor sort. +

    +
    +
    +
    +
    +
    +
    + + + getDatatypeSelectorCodomainSort + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The codomain sort of a datatype selector sort. +

    +
    +
    +
    +
    +
    +
    + + + getDatatypeSelectorDomainSort + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The domain sort of a datatype selector sort. +

    +
    +
    +
    +
    +
    +
    + + + getDatatypeTesterCodomainSort + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + the codomain sort of a datatype tester sort, which is the +Boolean sort +

    +
    +
    +
    +
    +
    +
    + + + getDatatypeTesterDomainSort + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The domain sort of a datatype tester sort. +

    +
    +
    +
    +
    +
    +
    + + + getFiniteFieldSize + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The size of the finite field sort. +

    +
    +
    +
    +
    +
    +
    + + + getFloatingPointExponentSize + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The bit-width of the exponent of the floating-point sort. +

    +
    +
    +
    +
    +
    +
    + + + getFloatingPointSignificandSize + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The width of the significand of the floating-point sort. +

    +
    +
    +
    +
    +
    +
    + + + getFunctionArity + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The arity of a function sort. +

    +
    +
    +
    +
    +
    +
    + + + getFunctionCodomainSort + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The codomain sort of a function sort. +

    +
    +
    +
    +
    +
    +
    + + + getFunctionDomainSorts + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The domain sorts of a function sort. +

    +
    +
    +
    +
    +
    +
    + + + getInstantiatedParameters + + + + ( + + + ) + + +  + +
    +
    +

    + Get the sorts used to instantiate the sort parameters of a +parametric sort (parametric datatype or uninterpreted sort +constructor sort, see + + + + instantiate() + + + + ). +

    +
    +
    + Returns + + : + +
    +
    +

    + The sorts used to instantiate the sort parameters of a +parametric sort +

    +
    +
    +
    +
    +
    +
    + + + getKind + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future +versions. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The + + + + SortKind + + + + of this sort. +

    +
    +
    +
    +
    +
    +
    + + + getNullableElementSort + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The element sort of a nullable sort. +

    +
    +
    +
    +
    +
    +
    + + + getSequenceElementSort + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The element sort of a sequence sort. +

    +
    +
    +
    +
    +
    +
    + + + getSetElementSort + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The element sort of a set sort. +

    +
    +
    +
    +
    +
    +
    + + + getSymbol + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Note +

    +

    + Asserts + + + + hasSymbol() + + + + . +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The raw symbol of the sort. +

    +
    +
    +
    +
    +
    +
    + + + getTupleLength + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The length of a tuple sort. +

    +
    +
    +
    +
    +
    +
    + + + getTupleSorts + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The element sorts of a tuple sort. +

    +
    +
    +
    +
    +
    +
    + + + getUninterpretedSortConstructor + + + + ( + + + ) + + +  + +
    +
    +

    + Get the associated uninterpreted sort constructor of an +instantiated uninterpreted sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + The uninterpreted sort constructor sort +

    +
    +
    +
    +
    +
    +
    + + + getUninterpretedSortConstructorArity + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The arity of a sort constructor sort. +

    +
    +
    +
    +
    +
    +
    + + + hasSymbol + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True iff this sort has a symbol. +

    +
    +
    +
    +
    +
    +
    + + + instantiate + + + + ( + + + ) + + +  + +
    +
    +

    + Instantiate a parameterized datatype sort or uninterpreted sort +constructor sort. +

    +

    + Create sorts parameter with + + + + TermManager.mkParamSort() + + + +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future +versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + params + + – The list of sort parameters to instantiate with +

    +
    +
    + Returns + + : + +
    +
    +

    + The instantiated sort +

    +
    +
    +
    +
    +
    +
    + + + isAbstract + + + + ( + + + ) + + +  + +
    +
    +

    + Determine if this is an abstract sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the sort is an abstract sort. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future +versions. +

    +
    +
    +
    +
    +
    + + + isArray + + + + ( + + + ) + + +  + +
    +
    +

    + Determine if this is an array sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the sort is an array sort. +

    +
    +
    +
    +
    +
    +
    + + + isBag + + + + ( + + + ) + + +  + +
    +
    +

    + Determine if this is a bag sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the sort is a bag sort. +

    +
    +
    +
    +
    +
    +
    + + + isBitVector + + + + ( + + + ) + + +  + +
    +
    +

    + Determine if this is a bit-vector sort (SMT-LIB: + + + (_ + + + BitVec + + + i) + + + ). +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the sort is a bit-vector sort. +

    +
    +
    +
    +
    +
    +
    + + + isBoolean + + + + ( + + + ) + + +  + +
    +
    +

    + Determine if this is the Boolean sort (SMT-LIB: + + + Bool + + + ). +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the sort is the Boolean sort. +

    +
    +
    +
    +
    +
    +
    + + + isDatatype + + + + ( + + + ) + + +  + +
    +
    +

    + Determine if this is a datatype sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the sort is a datatype sort. +

    +
    +
    +
    +
    +
    +
    + + + isDatatypeConstructor + + + + ( + + + ) + + +  + +
    +
    +

    + Determine if this is a datatype constructor sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the sort is a datatype constructor sort. +

    +
    +
    +
    +
    +
    +
    + + + isDatatypeSelector + + + + ( + + + ) + + +  + +
    +
    +

    + Determine if this is a datatype selector sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the sort is a datatype selector sort. +

    +
    +
    +
    +
    +
    +
    + + + isDatatypeTester + + + + ( + + + ) + + +  + +
    +
    +

    + Determine if this is a tester sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the sort is a selector sort. +

    +
    +
    +
    +
    +
    +
    + + + isDatatypeUpdater + + + + ( + + + ) + + +  + +
    +
    +

    + Determine if this is a datatype updater sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the sort is a datatype updater sort. +

    +
    +
    +
    +
    +
    +
    + + + isFiniteField + + + + ( + + + ) + + +  + +
    +
    +

    + Determine if this is a finite field sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the sort is an array sort. +

    +
    +
    +
    +
    +
    +
    + + + isFloatingPoint + + + + ( + + + ) + + +  + +
    +
    +

    + Determine if this is a floatingpoint sort +(SMT-LIB: + + + (_ + + + FloatingPoint + + + eb + + + sb) + + + ). +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the sort is a bit-vector sort. +

    +
    +
    +
    +
    +
    +
    + + + isFunction + + + + ( + + + ) + + +  + +
    +
    +

    + Determine if this is a function sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the sort is a function sort. +

    +
    +
    +
    +
    +
    +
    + + + isInstantiated + + + + ( + + + ) + + +  + +
    +
    +

    + Determine if this is an instantiated (parametric datatype or +uninterpreted sort constructor) sort. +

    +

    + An instantiated sort is a sort that has been constructed from +instantiating a sort parameters with sort arguments +(see + + + + instantiate() + + + + ). +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this is an instantiated sort. +

    +
    +
    +
    +
    +
    +
    + + + isInteger + + + + ( + + + ) + + +  + +
    +
    +

    + Determine if this is the integer sort (SMT-LIB: + + + Int + + + ). +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the sort is the integer sort. +

    +
    +
    +
    +
    +
    +
    + + + isNull + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True if this Sort is a null sort. +

    +
    +
    +
    +
    +
    +
    + + + isNullable + + + + ( + + + ) + + +  + +
    +
    +

    + Determine if this is a nullable sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the sort is a nullable sort. +

    +
    +
    +
    +
    +
    +
    + + + isPredicate + + + + ( + + + ) + + +  + +
    +
    +

    + Determine if this is a predicate sort. +

    +

    + A predicate sort is a function sort that maps to the Boolean sort. +All predicate sorts are also function sorts. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the sort is a predicate sort. +

    +
    +
    +
    +
    +
    +
    + + + isReal + + + + ( + + + ) + + +  + +
    +
    +

    + Determine if this is the real sort (SMT-LIB: + + Real + + ). +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the sort is the real sort. +

    +
    +
    +
    +
    +
    +
    + + + isRecord + + + + ( + + + ) + + +  + +
    +
    +

    + Determine if this is a record sort. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future +versions. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + True if the sort is a record sort. +

    +
    +
    +
    +
    +
    +
    + + + isRegExp + + + + ( + + + ) + + +  + +
    +
    +

    + Determine if this is the regular expression sort (SMT-LIB: + + + RegLan + + + ). +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the sort is the regexp sort. +

    +
    +
    +
    +
    +
    +
    + + + isRoundingMode + + + + ( + + + ) + + +  + +
    +
    +

    + Determine if this is the rounding mode sort (SMT-LIB: + + + RoundingMode + + + ). +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the sort is the rounding mode sort. +

    +
    +
    +
    +
    +
    +
    + + + isSequence + + + + ( + + + ) + + +  + +
    +
    +

    + Determine if this is a sequence sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the sort is a sequence sort. +

    +
    +
    +
    +
    +
    +
    + + + isSet + + + + ( + + + ) + + +  + +
    +
    +

    + Determine if this is a set sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the sort is a set sort. +

    +
    +
    +
    +
    +
    +
    + + + isString + + + + ( + + + ) + + +  + +
    +
    +

    + Determine if this is the string sort (SMT-LIB: + + String + + ). +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the sort is the string sort. +

    +
    +
    +
    +
    +
    +
    + + + isTuple + + + + ( + + + ) + + +  + +
    +
    +

    + Determine if this is a tuple sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the sort is a tuple sort. +

    +
    +
    +
    +
    +
    +
    + + + isUninterpretedSort + + + + ( + + + ) + + +  + +
    +
    +

    + Determine if this is a sort uninterpreted. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if the sort is uninterpreted. +

    +
    +
    +
    +
    +
    +
    + + + isUninterpretedSortConstructor + + + + ( + + + ) + + +  + +
    +
    +

    + Determine if this is a sort constructor kind. +

    +

    + An uninterpreted sort constructor is an uninterpreted sort with +arity > 0. +

    +
    +
    + Returns + + : + +
    +
    +

    + True if this a sort constructor kind. +

    +
    +
    +
    +
    +
    +
    + + + substitute + + + + ( + + + ) + + +  + +
    +
    +

    + Substitution of Sorts. +

    +

    + Note that this replacement is applied during a pre-order traversal +and only once to the sort. It is not run until fix point. In the +case that sort_or_list_1 contains duplicates, the replacement +earliest in the list takes priority. +

    +

    + For example, + + + (Array + + + A + + + B) + + + .substitute([A, + + + C], + + + [(Array + + + C + + + D), + + + (Array + + + A + + + B)]) + + + will return + + + (Array + + + (Array + + + C + + + D) + + + B) + + + . +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future +versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + sort_or_list_1 + + – The subsort or subsorts to be substituted +within this sort. +

      +
    • +
    • +

      + + sort_or_list_2 + + – The sort or list of sorts replacing the +substituted subsort. +

      +
    • +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/sortkind.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/sortkind.html new file mode 100644 index 0000000000..03770490a5 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/sortkind.html @@ -0,0 +1,1377 @@ + + + + + + + + + + + SortKind — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + SortKind + +  + +

    +

    + Every + + + + Sort + + + + has an associated kind, represented +as enum + + + + cvc5.SortKind + + + + . +

    +
    +
    +
    + + + class + + + + + + + cvc5. + + + + + SortKind + + + + ( + + + + + value + + + + + ) + + +  + +
    +
    +

    + The SortKind enum +

    +
    +
    + + + ABSTRACT_SORT + + + +  + +
    +
    +

    + An abstract sort. +

    +

    + An abstract sort represents a sort whose parameters or argument sorts are +unspecified. For example, + + mkAbstractSort(BITVECTOR_SORT) + + returns a +sort that represents the sort of bit-vectors whose bit-width is +unspecified. +

    + +
    +
    +
    +
    + + + ARRAY_SORT + + + +  + +
    +
    +

    + An array sort, whose argument sorts are the index and element sorts of the +array. +

    + +
    +
    +
    +
    + + + BAG_SORT + + + +  + +
    +
    +

    + A bag sort, whose argument sort is the element sort of the bag. +

    + +
    +
    +
    +
    + + + BITVECTOR_SORT + + + +  + +
    +
    +

    + A bit-vector sort, parameterized by an integer denoting its bit-width. +

    + +
    +
    +
    +
    + + + BOOLEAN_SORT + + + +  + +
    +
    +

    + The Boolean sort. +

    + +
    +
    +
    +
    + + + DATATYPE_SORT + + + +  + +
    +
    +

    + A datatype sort. +

    + +
    +
    +
    +
    + + + FINITE_FIELD_SORT + + + +  + +
    +
    +

    + A finite field sort, parameterized by a size. +

    + +
    +
    +
    +
    + + + FLOATINGPOINT_SORT + + + +  + +
    +
    +

    + A floating-point sort, parameterized by two integers denoting its +exponent and significand bit-widths. +

    + +
    +
    +
    +
    + + + FUNCTION_SORT + + + +  + +
    +
    +

    + A function sort with given domain sorts and codomain sort. +

    + +
    +
    +
    +
    + + + INTEGER_SORT + + + +  + +
    +
    +

    + The integer sort. +

    + +
    +
    +
    +
    + + + INTERNAL_SORT_KIND + + + +  + +
    +
    +

    + Internal kind. +

    +

    + This kind serves as an abstraction for internal kinds that are not exposed +via the API but may appear in terms returned by API functions, e.g., +when querying the simplified form of a term. +

    +
    +

    + Note +

    +

    + Should never be created via the API. +

    +
    +
    +
    +
    +
    + + + LAST_SORT_KIND + + + +  + +
    +
    +

    + Marks the upper-bound of this enumeration. +

    +
    +
    +
    +
    + + + NULLABLE_SORT + + + +  + +
    +
    +

    + A nullable sort, whose argument sort denotes the sort of the direct child +of the nullable. +

    + +
    +
    +
    +
    + + + NULL_SORT + + + +  + +
    +
    +

    + Null kind. +

    +

    + The kind of a null sort (Sort::Sort()). +

    +
    +

    + Note +

    +

    + May not be explicitly created via API functions other than +Sort::Sort(). +

    +
    +
    +
    +
    +
    + + + REAL_SORT + + + +  + +
    +
    +

    + The real sort. +

    + +
    +
    +
    +
    + + + REGLAN_SORT + + + +  + +
    +
    +

    + The regular language sort. +

    + +
    +
    +
    +
    + + + ROUNDINGMODE_SORT + + + +  + +
    +
    +

    + The rounding mode sort. +

    + +
    +
    +
    +
    + + + SEQUENCE_SORT + + + +  + +
    +
    +

    + A sequence sort, whose argument sort is the element sort of the sequence. +

    + +
    +
    +
    +
    + + + SET_SORT + + + +  + +
    +
    +

    + A set sort, whose argument sort is the element sort of the set. +

    + +
    +
    +
    +
    + + + STRING_SORT + + + +  + +
    +
    +

    + The string sort. +

    + +
    +
    +
    +
    + + + TUPLE_SORT + + + +  + +
    +
    +

    + A tuple sort, whose argument sorts denote the sorts of the direct children +of the tuple. +

    + +
    +
    +
    +
    + + + UNDEFINED_SORT_KIND + + + +  + +
    +
    +

    + Undefined kind. +

    +
    +

    + Note +

    +

    + Should never be exposed or created via the API. +

    +
    +
    +
    +
    +
    + + + UNINTERPRETED_SORT + + + +  + +
    +
    +

    + An uninterpreted sort. +

    + +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/statistics.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/statistics.html new file mode 100644 index 0000000000..778bb920eb --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/statistics.html @@ -0,0 +1,791 @@ + + + + + + + + + + + Statistics — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Statistics + +  + +

    +

    + See + + + Statistics + + + for general information on statistics in cvc5. +

    +

    + Class + + + + cvc5.Statistics + + + + represents a mapping from statistic names +to statistic values +

    +

    + By default, iterating over a + + + + Statistics + + + + object shows all statistics, including internal and unchanged ones. +The inclusion of internal and defaulted statistics can be configured via +Boolean parameters + + + internal + + + and + + + defaulted + + + of function + + + + cvc5.Statistics.get() + + + + . +

    +
    +
    +
    + + + class + + + + + + + cvc5. + + + + + Statistics + + + +  + +
    +
    +

    + The cvc5 Statistics. +

    +

    + Wrapper class for + + + + cvc5::Statistics + + + + . +

    +

    + Obtain a single statistic value using + + + stats["name"] + + + and a +dictionary with, configurably all (including internal and unchanged) +statistics using + + + + Statistics.get() + + + + . +

    +

    + Iterate over all (including internal and unchanged) statistics via (the +standard iterable functions) + + + + __iter__() + + + + and + + + + __next__() + + + + . +

    +
    +
    + + + __getitem__ + + + + ( + + + ) + + +  + +
    +
    +

    + Get the statistics information for the statistic called + + + name + + + . +

    +
    +
    + Parameters + + : + +
    +
    +

    + + name + + – The name of the statistic to get. +

    +
    +
    +
    +
    +
    +
    + + + __iter__ + + + + ( + + + ) + + +  + +
    +
    +

    + Iterate over all statistics (including internal and unchanged +statistics). +

    +
    +
    +
    +
    + + + __next__ + + + + ( + + + ) + + +  + +
    +
    +

    + Get next statistic as a pair + + + [name, + + + <dict: + + + name + + + -> + + + value>] + + + . +

    +
    +
    +
    +
    + + + get + + + + ( + + + ) + + +  + +
    +
    +

    + Get all statistics as a dictionary. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + internal + + – True to also inclue internal statistics. +

      +
    • +
    • +

      + + defaulted + + – True to also include unchanged statistics. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + A dictionary with all available statistics. +

    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/symbolmanager.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/symbolmanager.html new file mode 100644 index 0000000000..8b1147e3c0 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/symbolmanager.html @@ -0,0 +1,745 @@ + + + + + + + + + + + SymbolManager — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + SymbolManager + +  + +

    +

    + This class manages a symbol table and other meta-information pertaining to +SMT-LIB v2 inputs (e.g., named assertions, declared functions, etc.). +

    +
    +
    +
    + + + class + + + + + + + cvc5. + + + + + SymbolManager + + + +  + +
    +
    +

    + Symbol manager. Internally, this class manages a symbol table and other +meta-information pertaining to SMT2 file inputs (e.g. named assertions, +declared functions, etc.). +

    +

    + A symbol manager can be modified by invoking commands, see + + + + Command.invoke() + + + + . +

    +

    + A symbol manager can be provided when constructing an InputParser, in which +case that InputParser has symbols of this symbol manager preloaded. +

    +

    + The symbol manager’s interface is otherwise not publicly available. +

    +

    + Wrapper class for the C++ class + + + + cvc5::parser::SymbolManager + + + + . +

    +
    +
    + + + getDeclaredSorts + + + + ( + + + ) + + +  + +
    +
    +

    + Get the list of sorts that have been declared via declare-sort. +These are the sorts that are printed in response to a +get-model command. +

    +
    +
    + Returns + + : + +
    +
    +

    + The declared sorts. +

    +
    +
    +
    +
    +
    +
    + + + getDeclaredTerms + + + + ( + + + ) + + +  + +
    +
    +

    + Get the list of terms that have been declared via declare-fun and +declare-const. These are the terms that are printed in response to a +get-model command. +

    +
    +
    + Returns + + : + +
    +
    +

    + The declared terms. +

    +
    +
    +
    +
    +
    +
    + + + getLogic + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Note +

    +

    + Asserts + + + + isLogicSet() + + + + . +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The logic used by this symbol manager. +

    +
    +
    +
    +
    +
    +
    + + + getNamedTerms + + + + ( + + + ) + + +  + +
    +
    +

    + Get a mapping from terms to names that have been given to them via +the :named attribute. +

    +
    +
    + Returns + + : + +
    +
    +

    + A map of the named terms to their names. +

    +
    +
    +
    +
    +
    +
    + + + isLogicSet + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True if the logic of this symbol manager has been set. +

    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/synthresult.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/synthresult.html new file mode 100644 index 0000000000..d9656ea92e --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/synthresult.html @@ -0,0 +1,696 @@ + + + + + + + + + + + SynthResult — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + SynthResult + +  + +

    +

    + This class represents a + + + + cvc5.Solver + + + + SyGus synthesis result. +

    +
    +
    +
    + + + class + + + + + + + cvc5. + + + + + SynthResult + + + +  + +
    +
    +

    + Encapsulation of a solver synth result. +

    +

    + This is the return value of the API methods: +

    +
    + +
    +

    + which we call synthesis queries. This class indicates whether the +synthesis query has a solution, has no solution, or is unknown. +

    +
    +
    + + + hasNoSolution + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True if the synthesis query has no solution. +In this case, it was determined that there was no solution. +

    +
    +
    +
    +
    +
    +
    + + + hasSolution + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True if the synthesis query has a solution. +

    +
    +
    +
    +
    +
    +
    + + + isNull + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True if SynthResult is null, i.e., not a SynthResult +returned from a synthesis query. +

    +
    +
    +
    +
    +
    +
    + + + isUnknown + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True if the result of the synthesis query could not be +determined. +

    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/term.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/term.html new file mode 100644 index 0000000000..ef2196be30 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/term.html @@ -0,0 +1,3411 @@ + + + + + + + + + + + Term — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Term + +  + +

    +

    + The + + + + Term + + + + class represents an arbitrary expression +of any of the supported sorts. The list of all supported kinds of terms is +given by the + + + + Kind + + + + enum. +The + + + + Term + + + + class provides functions for general +inspection (e.g., comparison, retrieving the kind and sort, accessing +sub-terms), +but also functions for retrieving constant values for the supported theories +(i.e., + + + is<Type>Value() + + + and + + + get<Type>Value() + + + , which returns the +constant values in the best type Python offers). +

    +

    + The + + + + TermManager + + + + class provides factory functions +to create terms, e.g., + + + + TermManager.mkTerm() + + + + for generic terms +and + + + TermManager.mk<Type>() + + + for constants, variables and values of a +given type. +

    +
    +
    +
    + + + class + + + + + + + cvc5. + + + + + Term + + + +  + +
    +
    +

    + A cvc5 Term. +

    +

    + Wrapper class for + + + + cvc5::Term + + + + . +

    +
    +
    + + + __getitem__ + + + + ( + + + ) + + +  + +
    +
    +

    + Get the child term at a given index. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + index + + – The index of the child term to return. +

    +
    +
    + Returns + + : + +
    +
    +

    + The child term with the given index. +

    +
    +
    +
    +
    +
    +
    + + + __iter__ + + + + ( + + + ) + + +  + +
    +
    +

    + Iterate over all child terms. +

    +
    +
    +
    +
    + + + andTerm + + + + ( + + + ) + + +  + +
    +
    +

    + Boolean and. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + t + + – A Boolean term. +

    +
    +
    + Returns + + : + +
    +
    +

    + The conjunction of this term and the given term. +

    +
    +
    +
    +
    +
    +
    + + + eqTerm + + + + ( + + + ) + + +  + +
    +
    +

    + Equality +

    +
    +
    + Parameters + + : + +
    +
    +

    + + t + + – A Boolean term. +

    +
    +
    + Returns + + : + +
    +
    +

    + The Boolean equivalence of this term and the given term. +

    +
    +
    +
    +
    +
    +
    + + + getBitVectorValue + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Note +

    +

    + Asserts + + + + isBitVectorValue() + + + + . +

    +
    +

    + Supported bases are 2 (bit string), 10 (decimal string) or 16 +(hexdecimal string). +

    +
    +
    + Returns + + : + +
    +
    +

    + The representation of a bit-vector value in string +representation. +

    +
    +
    +
    +
    +
    +
    + + + getBooleanValue + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Note +

    +

    + Asserts + + + + isBooleanValue() + + + +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The representation of a Boolean value as a native Boolean +value. +

    +
    +
    +
    +
    +
    +
    + + + getCardinalityConstraint + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Note +

    +

    + Asserts + + + + isCardinalityConstraint() + + + + . +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The sort the cardinality constraint is for and its upper +bound. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future +versions. +

    +
    +
    +
    +
    +
    + + + getConstArrayBase + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Note +

    +

    + Asserts + + + + isConstArray() + + + + . +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The base (element stored at all indicies) of this constant +array. +

    +
    +
    +
    +
    +
    +
    + + + getFiniteFieldValue + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Note +

    +

    + Asserts + + + + isFiniteFieldValue() + + + + . +

    +
    +
    +

    + Note +

    +

    + Uses the integer representative of smallest absolute value. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The representation of a finite field value as an integer. +

    +
    +
    +
    +
    +
    +
    + + + getFloatingPointValue + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Note +

    +

    + Asserts + + + + isFloatingPointValue() + + + + . +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The representation of a floating-point value as a tuple of +the exponent width, the significand width and a bit-vector +value. +

    +
    +
    +
    +
    +
    +
    + + + getId + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The id of this term. +

    +
    +
    +
    +
    +
    +
    + + + getIntegerValue + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Note +

    +

    + Asserts + + + + isIntegerValue() + + + + . +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The integer term as a native python integer. +

    +
    +
    +
    +
    +
    +
    + + + getKind + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The + + + + Kind + + + + of this term. +

    +
    +
    +
    +
    +
    +
    + + + getNumChildren + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The number of children of this term. +

    +
    +
    +
    +
    +
    +
    + + + getOp + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The + + + + Op + + + + used to create this Term. +

    +
    +
    +
    +

    + Note +

    +

    + This is safe to call when + + + + hasOp() + + + + returns True. +

    +
    +
    +
    +
    +
    + + + getRealAlgebraicNumberDefiningPolynomial + + + + ( + + + ) + + +  + +
    +
    +
    +
    +
    +

    + Note +

    +

    + Asserts + + + + isRealAlgebraicNumber() + + + + . +

    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + v + + – The variable over which to express the polynomial +

    +
    +
    + Returns + + : + +
    +
    +

    + The defining polynomial for the real algebraic number, expressed in +terms of the given variable. +

    +
    +
    +
    +
    +
    +
    + + + getRealAlgebraicNumberLowerBound + + + + ( + + + ) + + +  + +
    +
    +
    +
    +
    +

    + Note +

    +

    + Asserts + + + + isRealAlgebraicNumber() + + + + . +

    +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The lower bound for the value of the real algebraic number. +

    +
    +
    +
    +
    +
    +
    + + + getRealAlgebraicNumberUpperBound + + + + ( + + + ) + + +  + +
    +
    +
    +
    +
    +

    + Note +

    +

    + Asserts + + + + isRealAlgebraicNumber() + + + + . +

    +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The upper bound for the value of the real algebraic number. +

    +
    +
    +
    +
    +
    +
    + + + getRealOrIntegerValueSign + + + + ( + + + ) + + +  + +
    +
    +

    + Get integer or real value sign. Must be called on integer or real +values, or otherwise an exception is thrown. +

    +
    +
    + Returns + + : + +
    +
    +

    + 0 if this term is zero, -1 if this term is a negative real +or integer value, 1 if this term is a positive real or +integer value. +

    +
    +
    +
    +
    +
    +
    + + + getRealValue + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Note +

    +

    + Asserts + + + + isRealValue() + + + + . +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The representation of a rational value as a python Fraction. +

    +
    +
    +
    +
    +
    +
    + + + getRoundingModeValue + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Note +

    +

    + Asserts + + + + isRoundingModeValue() + + + + . +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The floating-point rounding mode value held by the term. +

    +
    +
    +
    +
    +
    +
    + + + getSequenceValue + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Note +

    +

    + Asserts + + + + isSequenceValue() + + + + . +

    +
    +
    +

    + Note +

    +

    + It is usually necessary for sequences to call + + + + Solver.simplify() + + + + to turn a sequence that is +constructed by, e.g., concatenation of unit sequences, into a +sequence value. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The representation of a sequence value as a vector of +terms. +

    +
    +
    +
    +
    +
    +
    + + + getSetValue + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Note +

    +

    + Asserts + + + + isSetValue() + + + + . +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The representation of a set value as a set of terms. +

    +
    +
    +
    +
    +
    +
    + + + getSkolemId + + + + ( + + + ) + + +  + +
    +
    +

    + Get skolem identifier of this term. +.. note:: Asserts + + + + isSkolem() + + + + . +.. warning:: This function is experimental and may change in future +

    +
    +
    +

    + versions. +

    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The skolem identifier of this term. +

    +
    +
    +
    +
    +
    +
    + + + getSkolemIndices + + + + ( + + + ) + + +  + +
    +
    +
    +
    +
    +

    + Note +

    +

    + Asserts + + + + isSkolem() + + + + . +

    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future +versions. +

    +
    +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The skolem indices of this term. This is list of terms that +the skolem function is indexed by. For example, the array diff +skolem + + SkolemId.ARRAY_DEQ_DIFF + + is indexed by two arrays. +

    +
    +
    +
    +
    +
    +
    + + + getSort + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The + + + + Sort + + + + of this term. +

    +
    +
    +
    +
    +
    +
    + + + getStringValue + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Note +

    +

    + Asserts + + + + isStringValue() + + + + . +

    +
    +
    +

    + Note +

    +

    + This function is not to be confused with + + + __str__() + + + which returns the term in some string representation, whatever +data it may hold. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The string term as a native string value. +

    +
    +
    +
    +
    +
    +
    + + + getSymbol + + + + ( + + + ) + + +  + +
    +
    +

    + ..note:: Asserts + + + + hasSymbol() + + + + . +

    +
    +
    + Returns + + : + +
    +
    +

    + The raw symbol of the term. +

    +
    +
    +
    +
    +
    +
    + + + getTupleValue + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Note +

    +

    + Asserts + + + + isTupleValue() + + + + . +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The representation of a tuple value as a vector of terms. +

    +
    +
    +
    +
    +
    +
    + + + getUninterpretedSortValue + + + + ( + + + ) + + +  + +
    +
    +
    +

    + Note +

    +

    + Asserts + + + + isUninterpretedSortValue() + + + + . +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The representation of an uninterpreted value as a pair of +its sort and its index. +

    +
    +
    +
    +
    +
    +
    + + + hasOp + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True iff this term has an operator. +

    +
    +
    +
    +
    +
    +
    + + + hasSymbol + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True iff this term has a symbol. +

    +
    +
    +
    +
    +
    +
    + + + impTerm + + + + ( + + + ) + + +  + +
    +
    +

    + Boolean Implication. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + t + + – A Boolean term. +

    +
    +
    + Returns + + : + +
    +
    +

    + The implication of this term and the given term. +

    +
    +
    +
    +
    +
    +
    + + + isBitVectorValue + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True iff this term is a bit-vector value. +

    +
    +
    +
    +
    +
    +
    + + + isBooleanValue + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True iff this term is a Boolean value. +

    +
    +
    +
    +
    +
    +
    + + + isCardinalityConstraint + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is a cardinality constraint. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future +versions. +

    +
    +
    +
    +
    +
    + + + isConstArray + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True iff this term is a constant array. +

    +
    +
    +
    +
    +
    +
    + + + isFiniteFieldValue + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True iff this term is a finite field value. +

    +
    +
    +
    +
    +
    +
    + + + isFloatingPointNaN + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True iff the term is the floating-point value for not a +number. +

    +
    +
    +
    +
    +
    +
    + + + isFloatingPointNegInf + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True iff the term is the floating-point value for negative +infinity. +

    +
    +
    +
    +
    +
    +
    + + + isFloatingPointNegZero + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True iff the term is the floating-point value for negative +zero. +

    +
    +
    +
    +
    +
    +
    + + + isFloatingPointPosInf + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True iff the term is the floating-point value for positive +infinity. +

    +
    +
    +
    +
    +
    +
    + + + isFloatingPointPosZero + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True iff the term is the floating-point value for positive +zero. +

    +
    +
    +
    +
    +
    +
    + + + isFloatingPointValue + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True iff this term is a floating-point value. +

    +
    +
    +
    +
    +
    +
    + + + isIntegerValue + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True iff this term is an integer value. +

    +
    +
    +
    +
    +
    +
    + + + isNull + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True iff this term is a null term. +

    +
    +
    +
    +
    +
    +
    + + + isRealAlgebraicNumber + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is a real algebraic number. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future +versions. +

    +
    +
    +
    +
    +
    + + + isRealValue + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True iff this term is a rational value. +

    +
    +
    +
    +

    + Note +

    +

    + A term of kind + + + + PI + + + + is not considered +to be a real value. +

    +
    +
    +
    +
    +
    + + + isRoundingModeValue + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is a floating-point rounding mode +value. +

    +
    +
    +
    +
    +
    +
    + + + isSequenceValue + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True iff this term is a sequence value. +

    +
    +
    +
    +
    +
    +
    + + + isSetValue + + + + ( + + + ) + + +  + +
    +
    +

    + A term is a set value if it is considered to be a (canonical) +constant set value. A canonical set value is one whose AST is: +

    +
    +
    +
    (set.union
    +    (set.singleton c1) ...
    +    (set.union (set.singleton c_{n-1}) (set.singleton c_n))))
    +
    +
    +
    +

    + where + + \(c_1 \dots c_n\) + + are values ordered by id such that + + \(c_1 > \cdots > c_n\) + + . +

    +
    +

    + Note +

    +

    + A universe set term +(kind + + + + SET_UNIVERSE + + + + ) +is not considered to be a set value. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is a set value. +

    +
    +
    +
    +
    +
    +
    + + + isSkolem + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True if the term is a skolem. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future +versions. +

    +
    +
    +
    +
    +
    + + + isStringValue + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True iff this term is a string value. +

    +
    +
    +
    +
    +
    +
    + + + isTupleValue + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True iff this term is a tuple value. +

    +
    +
    +
    +
    +
    +
    + + + isUninterpretedSortValue + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + True iff this term is a value from an uninterpreted sort. +

    +
    +
    +
    +
    +
    +
    + + + iteTerm + + + + ( + + + ) + + +  + +
    +
    +

    + If-then-else with this term as the Boolean condition. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + then_t + + – The + + then + + term. +

      +
    • +
    • +

      + + else_t + + – The + + else + + term. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The if-then-else term with this term as the Boolean +condition. +

    +
    +
    +
    +
    +
    +
    + + + notTerm + + + + ( + + + ) + + +  + +
    +
    +

    + Boolean negation. +

    +
    +
    + Returns + + : + +
    +
    +

    + The Boolean negation of this term. +

    +
    +
    +
    +
    +
    +
    + + + orTerm + + + + ( + + + ) + + +  + +
    +
    +

    + Boolean or. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + t + + – A Boolean term. +

    +
    +
    + Returns + + : + +
    +
    +

    + The disjunction of this term and the given term. +

    +
    +
    +
    +
    +
    +
    + + + substitute + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The result of simultaneously replacing the term(s) stored +in + + + term_or_list_1 + + + by the term(s) stored in + + + term_or_list_2 + + + in this term. +

    +
    +
    +
    +

    + Note +

    +

    + This replacement is applied during a pre-order traversal and +only once to the term. It is not run until fix point. In the +case that terms contains duplicates, the replacement earliest +in the list takes priority. For example, calling substitute on + + + f(x,y) + + + with +

    +
    +
    +
    term_or_list_1 = [ x, z ], term_or_list_2 = [ g(z), w ]
    +
    +
    +
    +

    + results in the term + + + f(g(z),y) + + + . +

    +
    +
    +
    +
    +
    + + + toPythonObj + + + + ( + + + ) + + +  + +
    +
    +

    + Converts a constant value Term to a Python object. +

    +

    + Currently supports: +

    +
      +
    • +

      + + Boolean: + + Returns a Python bool +

      +
    • +
    • +

      + + Int : + + Returns a Python int +

      +
    • +
    • +

      + + Real : + + Returns a Python Fraction +

      +
    • +
    • +

      + + BV : + + Returns a Python int (treats BV as unsigned) +

      +
    • +
    • +

      + + FF : + + Returns a Python int (gives the FF integer representative of smallest absolute value) +

      +
    • +
    • +

      + + String : + + Returns a Python Unicode string +

      +
    • +
    • +

      + + Array : + + Returns a Python dict mapping indices to values. The constant base is returned as the default value. +

      +
    • +
    +
    +
    +
    +
    + + + xorTerm + + + + ( + + + ) + + +  + +
    +
    +

    + Boolean exclusive or. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + t + + – A Boolean term. +

    +
    +
    + Returns + + : + +
    +
    +

    + The exclusive disjunction of this term and the given term. +

    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/termmanager.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/termmanager.html new file mode 100644 index 0000000000..e10be88674 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/termmanager.html @@ -0,0 +1,4601 @@ + + + + + + + + + + + TermManager — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + TermManager + +  + +

    +

    + This class represents a cvc5 term manager instance. +

    +

    + + + + Terms + + + + , + + + + Sorts + + + + and + + + + Ops + + + + are not tied to a + + + + cvc5.Solver + + + + but associated with a + + + + cvc5.TermManager + + + + instance, which can be +shared between solver instances (and thus allows sharing of terms and sorts +between solver instances). +Term kinds are defined via enum class + + + cvc5.Kind + + + , and +sort kinds via enum class + + + cvc5.SortKind + + + . +

    +
    +
    +
    + + + class + + + + + + + cvc5. + + + + + TermManager + + + +  + +
    +
    +

    + A cvc5 term manager. +

    +

    + Wrapper class for + + + + cvc5::TermManager + + + + . +

    +
    +
    + + + getBooleanSort + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + Sort Boolean. +

    +
    +
    +
    +
    +
    +
    + + + getIntegerSort + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + Sort Integer. +

    +
    +
    +
    +
    +
    +
    + + + getNumIndicesForSkolemId + + + + ( + + + ) + + +  + +
    +
    +

    + Get the number of indices for a skolem id. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future +versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + id + + – The skolem id. +

    +
    +
    + Returns + + : + +
    +
    +

    + The number of indice for a skolem with the given id. +

    +
    +
    +
    +
    +
    +
    + + + getRealSort + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + Sort Real. +

    +
    +
    +
    +
    +
    +
    + + + getRegExpSort + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + The sort of regular expressions. +

    +
    +
    +
    +
    +
    +
    + + + getRoundingModeSort + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + Sort RoundingMode. +

    +
    +
    +
    +
    +
    +
    + + + getStatistics + + + + ( + + + ) + + +  + +
    +
    +

    + Get a snapshot of the current state of the statistic values of +this term manager. +

    +

    + Term manager statistics are independent from any solver instance. +The returned object is completely decoupled from the term manager +and will not change when the solver is used again. +

    +
    +
    + Returns + + : + +
    +
    +

    + A snapshot of the current state of the statistic values. +

    +
    +
    +
    +
    +
    +
    + + + getStringSort + + + + ( + + + ) + + +  + +
    +
    +
    +
    + Returns + + : + +
    +
    +

    + Sort String. +

    +
    +
    +
    +
    +
    +
    + + + mkAbstractSort + + + + ( + + + ) + + +  + +
    +
    +

    + Create an abstract sort. An abstract sort represents a sort for a +given kind whose parameters and arguments are unspecified. +

    +

    + Given + + + kind + + + must be the kind of a sort that can be abstracted, +i.e., a sort that has indices or argument sorts. For example, + + + ARRAY_SORT + + + and + + + BITVECTOR_SORT + + + can be +passed as the kind + + + k + + + to this method, while + + + INTEGER_SORT + + + and + + + STRING_SORT + + + cannot. +

    +

    + Providing the kind + + + ABSTRACT_SORT + + + as an argument to this method returns the (fully) unspecified sort, +denoted + + + ? + + + . +

    +

    + Providing a kind of sort that has no indices and a fixed arity of +argument sorts will return the sort of kind + + + kind + + + whose +arguments are the unspecified sort. For example, + + + mkAbstractSort(ARRAY_SORT) + + + will return the sort + + + (ARRAY_SORT + + + ? + + + ?) + + + instead of the abstract sort whose abstract +kind is py:obj: + + ARRAY_SORT <Kind.ARRAY_SORT> + + . +

    +
    +
    + Parameters + + : + +
    +
    +

    + + k + + – The kind of the abstract sort +

    +
    +
    + Returns + + : + +
    +
    +

    + The abstract sort. +

    +
    +
    +
    +

    + Warning +

    +

    + This function is experimental and may change in future +versions. +

    +
    +
    +
    +
    +
    + + + mkArraySort + + + + ( + + + ) + + +  + +
    +
    +

    + Create an array sort. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + indexSort + + – The array index sort. +

      +
    • +
    • +

      + + elemSort + + – The array element sort. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The array sort. +

    +
    +
    +
    +
    +
    +
    + + + mkBagSort + + + + ( + + + ) + + +  + +
    +
    +

    + Create a bag sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + elemSort + + – The sort of the bag elements. +

    +
    +
    + Returns + + : + +
    +
    +

    + The bag sort. +

    +
    +
    +
    +
    +
    +
    + + + mkBitVector + + + + ( + + + ) + + +  + +
    +
    +

    + Create bit-vector value. +

    +

    + Supports the following arguments: +

    +
      +
    • +

      + + + Term + + + mkBitVector(int + + + size, + + + int + + + val=0) + + +

      +
    • +
    • +

      + + + Term + + + mkBitVector(int + + + size, + + + string + + + val, + + + int + + + base) + + +

      +
    • +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + size + + – The bit-width. +

      +
    • +
    • +

      + + val + + – An integer representating the value, in the first form. +In the second form, a string representing the value. +

      +
    • +
    • +

      + + base + + – The base of the string representation (second form +only). +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + A Term representing a bit-vector value. +

    +
    +
    +
    +
    +
    +
    + + + mkBitVectorSort + + + + ( + + + ) + + +  + +
    +
    +

    + Create a bit-vector sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + size + + – The bit-width of the bit-vector sort +

    +
    +
    + Returns + + : + +
    +
    +

    + The bit-vector sort +

    +
    +
    +
    +
    +
    +
    + + + mkBoolean + + + + ( + + + ) + + +  + +
    +
    +

    + Create a Boolean constant. +

    +
    +
    + Returns + + : + +
    +
    +

    + The Boolean constant. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + val + + – The value of the constant. +

    +
    +
    +
    +
    +
    +
    + + + mkCardinalityConstraint + + + + ( + + + ) + + +  + +
    +
    +

    + Create cardinality constraint. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future +versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + sort + + – Sort of the constraint. +

      +
    • +
    • +

      + + index + + – The upper bound for the cardinality of the sort. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + mkConst + + + + ( + + + ) + + +  + +
    +
    +

    + Create (first-order) constant (0-arity function symbol). +

    +

    + SMT-LIB: +

    +
    +
    +
    ( declare-const <symbol> <sort> )
    +( declare-fun <symbol> ( ) <sort> )
    +
    +
    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + sort + + – The sort of the constant. +

      +
    • +
    • +

      + + symbol + + – The name of the constant. If None, a default symbol +is used. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The first-order constant. +

    +
    +
    +
    +
    +
    +
    + + + mkConstArray + + + + ( + + + ) + + +  + +
    +
    +

    + Create a constant array with the provided constant value stored at +every index +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + sort + + – The sort of the constant array (must be an array sort). +

      +
    • +
    • +

      + + val + + – The constant value to store (must match the sort’s +element sort). +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The constant array term. +

    +
    +
    +
    +
    +
    +
    + + + mkDatatypeConstructorDecl + + + + ( + + + ) + + +  + +
    +
    +

    + Create datatype constructor declaration. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + name + + – The name of the constructor. +

    +
    +
    + Returns + + : + +
    +
    +

    + The datatype constructor declaration. +

    +
    +
    +
    +
    +
    +
    + + + mkDatatypeDecl + + + + ( + + + ) + + +  + +
    +
    +

    + Create a datatype declaration. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + name + + – The name of the datatype. +

      +
    • +
    • +

      + + isCoDatatype + + – True if a codatatype is to be constructed. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The datatype declaration. +

    +
    +
    +
    +
    +
    +
    + + + mkDatatypeSort + + + + ( + + + ) + + +  + +
    +
    +

    + Create a datatype sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + dtypedecl + + – The datatype declaration from which the sort is +created. +

    +
    +
    + Returns + + : + +
    +
    +

    + The datatype sort. +

    +
    +
    +
    +
    +
    +
    + + + mkDatatypeSorts + + + + ( + + + ) + + +  + +
    +
    +

    + Create a vector of datatype sorts using unresolved sorts. The names +of the datatype declarations in dtypedecls must be distinct. +

    +

    + When constructing datatypes, unresolved sorts are replaced by the +datatype sort constructed for the datatype declaration it is +associated with. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + dtypedecls + + – The datatype declarations from which the sort is +created. +

    +
    +
    + Returns + + : + +
    +
    +

    + The datatype sorts. +

    +
    +
    +
    +
    +
    +
    + + + mkEmptyBag + + + + ( + + + ) + + +  + +
    +
    +

    + Create a constant representing an empty bag of the given sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort of the bag elements. +

    +
    +
    + Returns + + : + +
    +
    +

    + The empty bag constant. +

    +
    +
    +
    +
    +
    +
    + + + mkEmptySequence + + + + ( + + + ) + + +  + +
    +
    +

    + Create an empty sequence of the given element sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The element sort of the sequence. +

    +
    +
    + Returns + + : + +
    +
    +

    + The empty sequence with given element sort. +

    +
    +
    +
    +
    +
    +
    + + + mkEmptySet + + + + ( + + + ) + + +  + +
    +
    +

    + Create a constant representing an empty set of the given sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort of the set elements. +

    +
    +
    + Returns + + : + +
    +
    +

    + The empty set constant. +

    +
    +
    +
    +
    +
    +
    + + + mkFalse + + + + ( + + + ) + + +  + +
    +
    +

    + Create a Boolean false constant. +

    +
    +
    + Returns + + : + +
    +
    +

    + The false constant. +

    +
    +
    +
    +
    +
    +
    + + + mkFiniteFieldElem + + + + ( + + + ) + + +  + +
    +
    +

    + Create finite field value. +

    +

    + Supports the following arguments: +

    +
      +
    • +

      + + + Term + + + mkFiniteFieldElem(int + + + value, + + + Sort + + + sort) + + +

      +
    • +
    • +

      + + + Term + + + mkFiniteFieldElem(string + + + value, + + + Sort + + + sort) + + +

      +
    • +
    • +

      + + + Term + + + mkFiniteFieldElem(string + + + value, + + + Sort + + + sort, + + + int + + + base) + + +

      +
    • +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + value + + – The value of the element’s integer representation. +An integer or string of base 10 if the base is not +explicitly given, and else a string in the given base. +

      +
    • +
    • +

      + + sort + + – The field to create the element in. +

      +
    • +
    • +

      + + base + + – The base of the string representation of + + + value + + + . +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + A Term representing a finite field value. +

    +
    +
    +
    +
    +
    +
    + + + mkFiniteFieldSort + + + + ( + + + ) + + +  + +
    +
    +

    + Create a finite field sort. +

    +

    + Supports the following arguments: +

    +
      +
    • +

      + + + Sort + + + mkFiniteFieldSort(int + + + size) + + +

      +
    • +
    • +

      + + + Sort + + + mkFiniteFieldSort(string + + + size) + + +

      +
    • +
    • +

      + + + Sort + + + mkFiniteFieldSort(string + + + size, + + + int + + + base) + + +

      +
    • +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + size + + – The size of the field. Must be a prime-power. +An integer or string of base 10 if the base is not +explicitly given, and else a string in the given base. +

      +
    • +
    • +

      + + base + + – The base of the string representation of + + + size + + + . +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + mkFloatingPoint + + + + ( + + + ) + + +  + +
    +
    +

    + Create a floating-point value from a bit-vector given in IEEE-754 +format, or from its three IEEE-754 bit-vector value components +(sign bit, exponent, significand). Arguments must be either given +as (int, int, Term) or (Term, Term, Term). +

    +

    + :param arg0 The size of the exponent or the sign bit. +:param arg1 The size of the signifcand or the bit-vector +

    +
    +
    +

    + representing the exponent. +

    +
    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + arg2 + + – The value of the floating-point constant as a +bit-vector term or the bit-vector representing the +significand. +

    +
    +
    +

    + :return The floating-point value. +

    +
    +
    +
    +
    + + + mkFloatingPointNaN + + + + ( + + + ) + + +  + +
    +
    +

    + Create a not-a-number (NaN) floating-point constant. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + exp + + – Number of bits in the exponent. +

      +
    • +
    • +

      + + sig + + – Number of bits in the significand. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The floating-point constant. +

    +
    +
    +
    +
    +
    +
    + + + mkFloatingPointNegInf + + + + ( + + + ) + + +  + +
    +
    +

    + Create a negative infinity floating-point constant. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + exp + + – Number of bits in the exponent. +

      +
    • +
    • +

      + + sig + + – Number of bits in the significand. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The floating-point constant. +

    +
    +
    +
    +
    +
    +
    + + + mkFloatingPointNegZero + + + + ( + + + ) + + +  + +
    +
    +

    + Create a negative zero (+0.0) floating-point constant. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + exp + + – Number of bits in the exponent. +

      +
    • +
    • +

      + + sig + + – Number of bits in the significand. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The floating-point constant. +

    +
    +
    +
    +
    +
    +
    + + + mkFloatingPointPosInf + + + + ( + + + ) + + +  + +
    +
    +

    + Create a positive infinity floating-point constant. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + exp + + – Number of bits in the exponent. +

      +
    • +
    • +

      + + sig + + – Number of bits in the significand. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The floating-point constant. +

    +
    +
    +
    +
    +
    +
    + + + mkFloatingPointPosZero + + + + ( + + + ) + + +  + +
    +
    +

    + Create a positive zero (+0.0) floating-point constant. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + exp + + – Number of bits in the exponent. +

      +
    • +
    • +

      + + sig + + – Number of bits in the significand. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The floating-point constant. +

    +
    +
    +
    +
    +
    +
    + + + mkFloatingPointSort + + + + ( + + + ) + + +  + +
    +
    +

    + Create a floating-point sort. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + exp + + – The bit-width of the exponent of the floating-point +sort. +

      +
    • +
    • +

      + + sig + + – The bit-width of the significand of the floating-point +sort. +

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + mkFunctionSort + + + + ( + + + ) + + +  + +
    +
    +

    + Create function sort. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + sorts + + – The sort of the function arguments. +

      +
    • +
    • +

      + + codomain + + – The sort of the function return value. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The function sort. +

    +
    +
    +
    +
    +
    +
    + + + mkInteger + + + + ( + + + ) + + +  + +
    +
    +

    + Create an integer constant. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + val + + – Representation of the constant: either a string or +integer. +

    +
    +
    + Returns + + : + +
    +
    +

    + A constant of sort Integer. +

    +
    +
    +
    +
    +
    +
    + + + mkNullableIsNull + + + + ( + + + ) + + +  + +
    +
    +

    + Create a null tester for a nullable term. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – A nullable term. +

    +
    +
    + Returns + + : + +
    +
    +

    + A tester whether term is null. +

    +
    +
    +
    +
    +
    +
    + + + mkNullableIsSome + + + + ( + + + ) + + +  + +
    +
    +

    + Create a some tester for a nullable term. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – A nullable term. +

    +
    +
    + Returns + + : + +
    +
    +

    + A tester whether term is some. +

    +
    +
    +
    +
    +
    +
    + + + mkNullableLift + + + + ( + + + ) + + +  + +
    +
    +

    + Create a term that lifts kind to nullable terms. +Example: +If we have the term ((_ nullable.lift +) x y), +where x, y of type (Nullable Int), then +kind would be ADD, and args would be [x, y]. +This function would return +(nullable.lift (lambda ((a Int) (b Int)) (+ a b)) x y) +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + kind + + – The lifted operator. +

      +
    • +
    • +

      + + args + + – The arguments of the lifted operator. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + A term of Kind NULLABLE_LIFT where the first child +is a lambda expression, and the remaining children are +the original arguments. +

    +
    +
    +
    +
    +
    +
    + + + mkNullableNull + + + + ( + + + ) + + +  + +
    +
    +

    + Create a constant representing an null of the given sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The sort of the Nullable element. +

    +
    +
    + Returns + + : + +
    +
    +

    + The null constant. +

    +
    +
    +
    +
    +
    +
    + + + mkNullableSome + + + + ( + + + ) + + +  + +
    +
    +

    + Create a nullable some term. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – The elements value. +

    +
    +
    + Returns + + : + +
    +
    +

    + The element value wrapped in some constructor. +

    +
    +
    +
    +
    +
    +
    + + + mkNullableSort + + + + ( + + + ) + + +  + +
    +
    +

    + Create a nullable sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + elemSort + + – The sort of the element of the nullable. +

    +
    +
    + Returns + + : + +
    +
    +

    + The nullable sort. +

    +
    +
    +
    +
    +
    +
    + + + mkNullableVal + + + + ( + + + ) + + +  + +
    +
    +

    + Create a selector for nullable term. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + term + + – A nullable term. +

    +
    +
    + Returns + + : + +
    +
    +

    + The element value of the nullable term. +

    +
    +
    +
    +
    +
    +
    + + + mkOp + + + + ( + + + ) + + +  + +
    +
    +

    + Create operator. +

    +

    + Supports the following arguments: +

    +
      +
    • +

      + + + Op + + + mkOp(Kind + + + kind) + + +

      +
    • +
    • +

      + + + Op + + + mkOp(Kind + + + kind, + + + const + + + string& + + + arg) + + +

      +
    • +
    • +

      + + + Op + + + mkOp(Kind + + + kind, + + + uint32_t + + + arg0, + + + ...) + + +

      +
    • +
    +
    +
    +
    +
    + + + mkParamSort + + + + ( + + + ) + + +  + +
    +
    +

    + Create a sort parameter. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future +versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + symbol + + – The name of the sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + The sort parameter. +

    +
    +
    +
    +
    +
    +
    + + + mkPi + + + + ( + + + ) + + +  + +
    +
    +

    + Create a constant representing the number Pi. +

    +
    +
    + Returns + + : + +
    +
    +

    + A constant representing + + + + PI + + + + . +

    +
    +
    +
    +
    +
    +
    + + + mkPredicateSort + + + + ( + + + ) + + +  + +
    +
    +

    + Create a predicate sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sorts + + – The list of sorts of the predicate. +

    +
    +
    + Returns + + : + +
    +
    +

    + The predicate sort. +

    +
    +
    +
    +
    +
    +
    + + + mkReal + + + + ( + + + ) + + +  + +
    +
    +

    + Create a real constant from a numerator and an optional denominator. +

    +

    + First converts the arguments to a temporary string, either + + + "<numerator>" + + + or + + + "<numerator>/<denominator>" + + + . This temporary +string is forwarded to + + + + cvc5::Solver::mkReal() + + + + and should +thus represent an integer, a decimal number or a fraction. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + numerator + + – The numerator. +

      +
    • +
    • +

      + + denominator + + – The denominator, or + + + None + + + . +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + A real term with literal value. +

    +
    +
    +
    +
    +
    +
    + + + mkRecordSort + + + + ( + + + ) + + +  + +
    +
    +

    + Create a record sort +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future +versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + fields + + – The list of fields of the record. +

    +
    +
    + Returns + + : + +
    +
    +

    + The record sort. +

    +
    +
    +
    +
    +
    +
    + + + mkRegexpAll + + + + ( + + + ) + + +  + +
    +
    +

    + Create a regular expression all ( + + + re.all + + + ) term. +

    +
    +
    + Returns + + : + +
    +
    +

    + The all term. +

    +
    +
    +
    +
    +
    +
    + + + mkRegexpAllchar + + + + ( + + + ) + + +  + +
    +
    +

    + Create a regular expression allchar ( + + + re.allchar + + + ) term. +

    +
    +
    + Returns + + : + +
    +
    +

    + The allchar term. +

    +
    +
    +
    +
    +
    +
    + + + mkRegexpNone + + + + ( + + + ) + + +  + +
    +
    +

    + Create a regular expression none ( + + + re.none + + + ) term. +

    +
    +
    + Returns + + : + +
    +
    +

    + The none term. +

    +
    +
    +
    +
    +
    +
    + + + mkRoundingMode + + + + ( + + + ) + + +  + +
    +
    +

    + Create a roundingmode constant. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + rm + + – The floating point rounding mode this constant +represents. +

    +
    +
    +
    +
    +
    +
    + + + mkSepEmp + + + + ( + + + ) + + +  + +
    +
    +

    + Create a separation logic empty term. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future +versions. +

    +
    +
    +
    + Returns + + : + +
    +
    +

    + The separation logic empty term. +

    +
    +
    +
    +
    +
    +
    + + + mkSepNil + + + + ( + + + ) + + +  + +
    +
    +

    + Create a separation logic nil term. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future +versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort of the nil term. +

    +
    +
    + Returns + + : + +
    +
    +

    + The separation logic nil term. +

    +
    +
    +
    +
    +
    +
    + + + mkSequenceSort + + + + ( + + + ) + + +  + +
    +
    +

    + Create a sequence sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + elemSort + + – The sort of the sequence elements +

    +
    +
    + Returns + + : + +
    +
    +

    + The sequence sort. +

    +
    +
    +
    +
    +
    +
    + + + mkSetSort + + + + ( + + + ) + + +  + +
    +
    +

    + Create a set sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + elemSort + + – The sort of the set elements. +

    +
    +
    + Returns + + : + +
    +
    +

    + The set sort. +

    +
    +
    +
    +
    +
    +
    + + + mkSkolem + + + + ( + + + ) + + +  + +
    +
    +

    + Create a skolem. +

    +
    +

    + Warning +

    +

    + This function is experimental and may change in future +versions. +

    +
    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + id + + – The skolem id. +

      +
    • +
    • +

      + + indices + + – The indices for the skolem. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The skolem with the given id and indices. +

    +
    +
    +
    +
    +
    +
    + + + mkString + + + + ( + + + ) + + +  + +
    +
    +

    + Create a String constant from a + + + str + + + which may contain SMT-LIB +compatible escape sequences like + + + \u1234 + + + to encode unicode +characters. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + s + + – The string this constant represents. +

      +
    • +
    • +

      + + useEscSequences + + – Determines whether escape sequences in + + s + + should be converted to the corresponding +unicode character +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The String constant. +

    +
    +
    +
    +
    +
    +
    + + + mkTerm + + + + ( + + + ) + + +  + +
    +
    +

    + Create a term. +

    +

    + Supports the following arguments: +

    +
      +
    • +

      + + + Term + + + mkTerm(Kind + + + kind) + + +

      +
    • +
    • +

      + + + Term + + + mkTerm(Op + + + op) + + +

      +
    • +
    • +

      + + + Term + + + mkTerm(Kind + + + kind, + + + *args) + + +

      +
    • +
    • +

      + + + Term + + + mkTerm(Op + + + op, + + + *args) + + +

      +
    • +
    +

    + where + + + *args + + + is a comma-separated list of terms. +

    +
    +
    +
    +
    + + + mkTrue + + + + ( + + + ) + + +  + +
    +
    +

    + Create a Boolean true constant. +

    +
    +
    + Returns + + : + +
    +
    +

    + The true constant. +

    +
    +
    +
    +
    +
    +
    + + + mkTuple + + + + ( + + + ) + + +  + +
    +
    +

    + Create a tuple term. Terms are automatically converted if sorts are +compatible. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + terms + + – The elements in the tuple. +

    +
    +
    + Returns + + : + +
    +
    +

    + The tuple Term. +

    +
    +
    +
    +
    +
    +
    + + + mkTupleSort + + + + ( + + + ) + + +  + +
    +
    +

    + Create a tuple sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sorts + + – Of the elements of the tuple. +

    +
    +
    + Returns + + : + +
    +
    +

    + The tuple sort. +

    +
    +
    +
    +
    +
    +
    + + + mkUninterpretedSort + + + + ( + + + ) + + +  + +
    +
    +

    + Create an uninterpreted sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + symbol + + – The name of the sort. +

    +
    +
    + Returns + + : + +
    +
    +

    + The uninterpreted sort. +

    +
    +
    +
    +
    +
    +
    + + + mkUninterpretedSortConstructorSort + + + + ( + + + ) + + +  + +
    +
    +

    + Create a sort constructor sort. +

    +

    + An uninterpreted sort constructor is an uninterpreted sort with +arity > 0. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + symbol + + – The symbol of the sort. +

      +
    • +
    • +

      + + arity + + – The arity of the sort (must be > 0). +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The sort constructor sort. +

    +
    +
    +
    +
    +
    +
    + + + mkUniverseSet + + + + ( + + + ) + + +  + +
    +
    +

    + Create a universe set of the given sort. +

    +
    +
    + Parameters + + : + +
    +
    +

    + + sort + + – The sort of the set elements +

    +
    +
    + Returns + + : + +
    +
    +

    + The universe set constant +

    +
    +
    +
    +
    +
    +
    + + + mkUnresolvedDatatypeSort + + + + ( + + + ) + + +  + +
    +
    +

    + Create an unresolved datatype sort. +

    +

    + This is for creating yet unresolved sort placeholders for mutually +recursive datatypes. +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + symbol + + – The name of the sort. +

      +
    • +
    • +

      + + arity + + – The number of sort parameters of the sort. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The unresolved sort. +

    +
    +
    +
    +
    +
    +
    + + + mkVar + + + + ( + + + ) + + +  + +
    +
    +

    + Create a bound variable to be used in a binder (i.e. a quantifier, +a lambda, or a witness binder). +

    +
    +
    + Parameters + + : + +
    +
    +
      +
    • +

      + + sort + + – The sort of the variable. +

      +
    • +
    • +

      + + symbol + + – The name of the variable. +

      +
    • +
    +
    +
    + Returns + + : + +
    +
    +

    + The variable. +

    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/unknownexplanation.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/unknownexplanation.html new file mode 100644 index 0000000000..af55a99206 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/base/unknownexplanation.html @@ -0,0 +1,709 @@ + + + + + + + + + + + UnknownExplanation — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + UnknownExplanation + +  + +

    +

    + This enum represents the explanation for an unknown solver result +(see + + + Result + + + ). +

    +
    +
    +
    + + + class + + + + + + + cvc5. + + + + + UnknownExplanation + + + + ( + + + + + value + + + + + ) + + +  + +
    +
    +

    + The UnknownExplanation enum +

    +
    +
    + + + INCOMPLETE + + + +  + +
    +
    +

    + Incomplete theory solver. +

    +
    +
    +
    +
    + + + INTERRUPTED + + + +  + +
    +
    +

    + Solver was interrupted. +

    +
    +
    +
    +
    + + + MEMOUT + + + +  + +
    +
    +

    + Memory limit reached. +

    +
    +
    +
    +
    + + + OTHER + + + +  + +
    +
    +

    + Other reason. +

    +
    +
    +
    +
    + + + REQUIRES_CHECK_AGAIN + + + +  + +
    +
    +

    + Requires another satisfiability check +

    +
    +
    +
    +
    + + + REQUIRES_FULL_CHECK + + + +  + +
    +
    +

    + Full satisfiability check required (e.g., if only preprocessing was +performed). +

    +
    +
    +
    +
    + + + RESOURCEOUT + + + +  + +
    +
    +

    + Resource limit reached. +

    +
    +
    +
    +
    + + + TIMEOUT + + + +  + +
    +
    +

    + Time limit reached. +

    +
    +
    +
    +
    + + + UNKNOWN_REASON + + + +  + +
    +
    +

    + No specific reason given. +

    +
    +
    +
    +
    + + + UNSUPPORTED + + + +  + +
    +
    +

    + Unsupported feature encountered. +

    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/python.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/python.html new file mode 100644 index 0000000000..92bf692b8b --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/python.html @@ -0,0 +1,490 @@ + + + + + + + + + + + Python API — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Python API + +  + +

    +

    + cvc5 offers two separate APIs for Python users. +The + + + base Python API + + + is an almost exact copy of the + + + C++ API + + + . +Alternatively, the + + + pythonic API + + + is a more pythonic +API that aims to be fully compatible with + + Z3s Python API + + while adding +functionality that Z3 does not support. +

    + +
    +

    + Which Python API should I use? + +  + +

    +

    + If you are a new user, or already have an application that uses Z3’s python +API, use the + + + pythonic API + + + . +If you would like a more feature-complete—yet verbose—python API, with the +ability to do almost everything that the cpp API allows, use the + + + base +Python API + + + . +

    +

    + You can compare examples using the two APIs by visiting the + + + examples page + + + . +

    +
    +
    +

    + Installation (from PyPi) + +  + +

    +

    + The base and pythonic Python API can be installed via + + pip + + as follows: +

    +
    +
    +
    pip install cvc5
    +
    +
    +
    +
    +
    +

    + Installation (from source) + +  + +

    +

    + The base and pythonic Python API can also be installed from source following +these steps: +

    +
    +
    +
    git clone https://github.com/cvc5/cvc5.git
    +cd cvc5
    +./configure.sh --python-bindings --auto-download
    +cd build
    +make # add -jN for parallel build using N threads
    +make install
    +
    +
    +
    +

    + The last step installs both the cvc5 binary and the Python bindings. +If you want to install only the Python bindings, run the following +command instead of + + + make + + + install + + + : +

    +
    +
    +
    cmake --install . --component python-api
    +
    +
    +
    +

    + For Windows, the steps above must be executed on a MINGW64 environment +(see the + + + installation instructions + + + ). +

    +

    + Finally, you can make sure that it works by running: +

    +
    +
    +
    python3
    +import cvc5
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/pythonic/arith.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/pythonic/arith.html new file mode 100644 index 0000000000..ee0c5f8c8c --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/pythonic/arith.html @@ -0,0 +1,6205 @@ + + + + + + + + + + + Arithmetic — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Arithmetic + +  + +

    +
    +

    + Basic Arithmetic Term Builders + +  + +

    +
    +
    + + + cvc5.pythonic. + + + + + Int + + + + ( + + + + + name + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Return an integer constant named + + name + + . If + + ctx=None + + , then the global context is used. +

    +
    +
    +
    >>> x = Int('x')
    +>>> is_int(x)
    +True
    +>>> is_int(x + 1)
    +True
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Real + + + + ( + + + + + name + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Return a real constant named + + name + + . If + + ctx=None + + , then the global context is used. +

    +
    +
    +
    >>> x = Real('x')
    +>>> is_real(x)
    +True
    +>>> is_real(x + 1)
    +True
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + IntVal + + + + ( + + + + + val + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Return an SMT integer value. If + + ctx=None + + , then the global context is used. +

    +
    +
    +
    >>> IntVal(1)
    +1
    +>>> IntVal("100")
    +100
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + RealVal + + + + ( + + + + + val + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Return an SMT real value. +

    +

    + + val + + may be a Python int, long, float or string representing a number in decimal or rational notation. +If + + ctx=None + + , then the global context is used. +

    +
    +
    +
    >>> RealVal(1)
    +1
    +>>> RealVal(1).sort()
    +Real
    +>>> RealVal("3/5")
    +3/5
    +>>> RealVal("1.5")
    +3/2
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + RatVal + + + + ( + + + + + a + + + + , + + + + b + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Return an SMT rational a/b. +

    +

    + If + + ctx=None + + , then the global context is used. +

    +
    +
    +
    >>> RatVal(3,5)
    +3/5
    +>>> RatVal(3,5).sort()
    +Real
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Q + + + + ( + + + + + a + + + + , + + + + b + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Return an SMT rational a/b. +

    +

    + If + + ctx=None + + , then the global context is used. +

    +
    +
    +
    >>> Q(3,5)
    +3/5
    +>>> Q(3,5).sort()
    +Real
    +>>> Q(4,8)
    +1/2
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + IntSort + + + + ( + + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Return the integer sort in the given context. If + + ctx=None + + , then the global context is used. +

    +
    +
    +
    >>> IntSort()
    +Int
    +>>> x = Const('x', IntSort())
    +>>> is_int(x)
    +True
    +>>> x.sort() == IntSort()
    +True
    +>>> x.sort() == BoolSort()
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + RealSort + + + + ( + + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Return the real sort in the given context. If + + ctx=None + + , then the global context is used. +

    +
    +
    +
    >>> RealSort()
    +Real
    +>>> x = Const('x', RealSort())
    +>>> is_real(x)
    +True
    +>>> is_int(x)
    +False
    +>>> x.sort() == RealSort()
    +True
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + FreshInt + + + + ( + + + + + prefix + + + + + = + + + + + 'x' + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Return a fresh integer constant in the given context using the given prefix. +

    +
    +
    +
    >>> x = FreshInt()
    +>>> y = FreshInt()
    +>>> eq(x, y)
    +False
    +>>> x.sort()
    +Int
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Ints + + + + ( + + + + + names + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Return a tuple of Integer constants. +

    +
    +
    +
    >>> x, y, z = Ints('x y z')
    +>>> Sum(x, y, z)
    +x + y + z
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + IntVector + + + + ( + + + + + prefix + + + + , + + + + sz + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Return a list of integer constants of size + + sz + + . +

    +
    +
    +
    >>> X = IntVector('x', 3)
    +>>> X
    +[x__0, x__1, x__2]
    +>>> Sum(X)
    +x__0 + x__1 + x__2
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + FreshReal + + + + ( + + + + + prefix + + + + + = + + + + + 'b' + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Return a fresh real constant in the given context using the given prefix. +

    +
    +
    +
    >>> x = FreshReal()
    +>>> y = FreshReal()
    +>>> eq(x, y)
    +False
    +>>> x.sort()
    +Real
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Reals + + + + ( + + + + + names + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Return a tuple of real constants. +

    +
    +
    +
    >>> x, y, z = Reals('x y z')
    +>>> Sum(x, y, z)
    +x + y + z
    +>>> Sum(x, y, z).sort()
    +Real
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + RealVector + + + + ( + + + + + prefix + + + + , + + + + sz + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Return a list of real constants of size + + sz + + . +

    +
    +
    +
    >>> X = RealVector('x', 3)
    +>>> X
    +[x__0, x__1, x__2]
    +>>> Sum(X)
    +x__0 + x__1 + x__2
    +>>> Sum(X).sort()
    +Real
    +
    +
    +
    +
    +
    +
    +
    +

    + Arithmetic Overloads + +  + +

    +

    + See the following operator overloads for building arithmetic terms. These terms +can also be built with builder functions listed below. +

    +
    +
    + addition ( + + + + + + + ) +
    +
    +

    + + + + cvc5.pythonic.ArithRef.__add__() + + + +

    +
    +
    + subtraction ( + + + - + + + ) +
    +
    +

    + + + + cvc5.pythonic.ArithRef.__sub__() + + + +

    +
    +
    + multiplication ( + + + * + + + ) +
    +
    +

    + + + + cvc5.pythonic.ArithRef.__mul__() + + + +

    +
    +
    + division ( + + + / + + + ) +
    +
    +

    + + + + cvc5.pythonic.ArithRef.__div__() + + + +

    +
    +
    + power ( + + + ** + + + ) +
    +
    +

    + + + + cvc5.pythonic.ArithRef.__pow__() + + + +

    +
    +
    + negation ( + + + - + + + ) +
    +
    +

    + + + + cvc5.pythonic.ArithRef.__neg__() + + + +

    +
    +
    + greater than ( + + + > + + + ) +
    +
    +

    + + + + cvc5.pythonic.ArithRef.__gt__() + + + +

    +
    +
    + less than ( + + + < + + + ) +
    +
    +

    + + + + cvc5.pythonic.ArithRef.__lt__() + + + +

    +
    +
    + greater than or equal to ( + + + >= + + + ) +
    +
    +

    + + + + cvc5.pythonic.ArithRef.__ge__() + + + +

    +
    +
    + less than or equal to ( + + + <= + + + ) +
    +
    +

    + + + + cvc5.pythonic.ArithRef.__le__() + + + +

    +
    +
    + equal ( + + + == + + + ) +
    +
    +

    + + + + cvc5.pythonic.ExprRef.__eq__() + + + +

    +
    +
    + not equal ( + + + != + + + ) +
    +
    +

    + + + + cvc5.pythonic.ExprRef.__ne__() + + + +

    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Add + + + + ( + + + + + * + + + + + args + + + + + ) + + +  + +
    +
    +

    + Create an SMT addition. +

    +

    + See also the __add__ overload (+ operator) for arithmetic SMT expressions. +

    +
    +
    +
    >>> x, y = Ints('x y')
    +>>> Add(x, x, y)
    +x + x + y
    +>>> Add(x, x, y, main_ctx())
    +x + x + y
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Mult + + + + ( + + + + + * + + + + + args + + + + + ) + + +  + +
    +
    +

    + Create an SMT multiplication. +

    +

    + See also the __mul__ overload (* operator) for arithmetic SMT expressions. +

    +
    +
    +
    >>> x, y = Ints('x y')
    +>>> Mult(x, x, y)
    +x*x*y
    +>>> Mult(x, x, y, main_ctx())
    +x*x*y
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Sub + + + + ( + + + + + a + + + + , + + + + b + + + + + ) + + +  + +
    +
    +

    + Create an SMT subtraction. +

    +

    + See also the __sub__ overload (- operator) for arithmetic SMT expressions. +

    +
    +
    +
    >>> x, y = Ints('x y')
    +>>> Sub(x, y)
    +x - y
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + UMinus + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Create an SMT unary negation. +

    +

    + Deprecated. Kept for compatiblity with Z3. See “Neg”. +

    +

    + See also the __neg__ overload (unary - operator) for arithmetic SMT expressions. +

    +
    +
    +
    >>> x = Int('x')
    +>>> UMinus(x)
    +-x
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Div + + + + ( + + + + + a + + + + , + + + + b + + + + + ) + + +  + +
    +
    +

    + Create an SMT division. +

    +

    + See also the __div__ overload (/ operator) for arithmetic SMT expressions. +

    +
    +
    +
    >>> x, y = Ints('x y')
    +>>> a, b = Reals('x y')
    +>>> Div(x, y).sexpr()
    +'(div x y)'
    +>>> Div(a, y).sexpr()
    +'(/ x (to_real y))'
    +>>> Div(a, b).sexpr()
    +'(/ x y)'
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Pow + + + + ( + + + + + a + + + + , + + + + b + + + + + ) + + +  + +
    +
    +

    + Create an SMT power. +

    +

    + See also the __pow__ overload for arithmetic SMT expressions. +

    +
    +
    +
    >>> x = Int('x')
    +>>> Pow(x, 3)
    +x**3
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + IntsModulus + + + + ( + + + + + a + + + + , + + + + b + + + + + ) + + +  + +
    +
    +

    + Create an SMT integer modulus. +

    +

    + See also the __mod__ overload (% operator) for arithmetic SMT expressions. +

    +
    +
    +
    >>> x, y = Ints('x y')
    +>>> IntsModulus(x, y)
    +x%y
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Leq + + + + ( + + + + + a + + + + , + + + + b + + + + + ) + + +  + +
    +
    +

    + Create an SMT less-than-or-equal-to. +

    +

    + See also the __le__ overload (<= operator) for arithmetic SMT expressions. +

    +
    +
    +
    >>> x, y = Ints('x y')
    +>>> Leq(x, y)
    +x <= y
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Geq + + + + ( + + + + + a + + + + , + + + + b + + + + + ) + + +  + +
    +
    +

    + Create an SMT greater-than-or-equal-to. +

    +

    + See also the __ge__ overload (>= operator) for arithmetic SMT expressions. +

    +
    +
    +
    >>> x, y = Ints('x y')
    +>>> Geq(x, y)
    +x >= y
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Lt + + + + ( + + + + + a + + + + , + + + + b + + + + + ) + + +  + +
    +
    +

    + Create an SMT less-than. +

    +

    + See also the __lt__ overload (< operator) for arithmetic SMT expressions. +

    +
    +
    +
    >>> x, y = Ints('x y')
    +>>> Lt(x, y)
    +x < y
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Gt + + + + ( + + + + + a + + + + , + + + + b + + + + + ) + + +  + +
    +
    +

    + Create an SMT greater-than. +

    +

    + See also the __gt__ overload (> operator) for arithmetic SMT expressions. +

    +
    +
    +
    >>> x, y = Ints('x y')
    +>>> Gt(x, y)
    +x > y
    +
    +
    +
    +
    +
    +
    +
    +

    + Other Arithmetic Operators + +  + +

    +
    +
    + + + cvc5.pythonic. + + + + + ToReal + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return the SMT expression ToReal(a). +

    +
    +
    +
    >>> x = Int('x')
    +>>> x.sort()
    +Int
    +>>> n = ToReal(x)
    +>>> n
    +ToReal(x)
    +>>> n.sort()
    +Real
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + ToInt + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return the SMT expression ToInt(a). +

    +
    +
    +
    >>> x = Real('x')
    +>>> x.sort()
    +Real
    +>>> n = ToInt(x)
    +>>> n
    +ToInt(x)
    +>>> n.sort()
    +Int
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + IsInt + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return the SMT predicate IsInt(a). +

    +
    +
    +
    >>> x = Real('x')
    +>>> IsInt(x + "1/2")
    +IsInt(x + 1/2)
    +>>> solve(IsInt(x + "1/2"), x > 0, x < 1)
    +[x = 1/2]
    +>>> solve(IsInt(x + "1/2"), x > 0, x < 1, x != "1/2")
    +no solution
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Sqrt + + + + ( + + + + + a + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Return an SMT expression which represents the square root of a. +

    +

    + Can also operate on python builtins of arithemtic type. +

    +
    +
    +
    >>> x = Real('x')
    +>>> Sqrt(x)
    +x**(1/2)
    +>>> Sqrt(4)
    +4**(1/2)
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Cbrt + + + + ( + + + + + a + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Return an SMT expression which represents the cubic root of a. +

    +

    + Can also operate on python builtins of arithemtic type. +

    +
    +
    +
    >>> x = Real('x')
    +>>> Cbrt(x)
    +x**(1/3)
    +>>> Cbrt(4)
    +4**(1/3)
    +
    +
    +
    +
    +
    +
    +
    +

    + Transcendentals + +  + +

    +
    +
    + + + cvc5.pythonic. + + + + + Pi + + + + ( + + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Create the constant pi +

    +
    +
    +
    >>> Pi()
    +Pi
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Exponential + + + + ( + + + + + x + + + + + ) + + +  + +
    +
    +

    + Create an exponential function +

    +
    +
    +
    >>> x = Real('x')
    +>>> solve(Exponential(x) == 1)
    +[x = 0]
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Sine + + + + ( + + + + + x + + + + + ) + + +  + +
    +
    +

    + Create a sine function +

    +
    +
    +
    >>> x = Real('x')
    +>>> i = Int('i')
    +>>> prove(Sine(x) < 2)
    +proved
    +>>> prove(Sine(i) < 2)
    +proved
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Cosine + + + + ( + + + + + x + + + + + ) + + +  + +
    +
    +

    + Create a cosine function +

    +
    +
    +
    >>> x = Real('x')
    +>>> i = Int('i')
    +>>> prove(Cosine(x) < 2)
    +proved
    +>>> prove(Cosine(i) < 2)
    +proved
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Tangent + + + + ( + + + + + x + + + + + ) + + +  + +
    +
    +

    + Create a tangent function +

    +
    +
    +
    >>> Tangent(Real('x'))
    +Tangent(x)
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Arcsine + + + + ( + + + + + x + + + + + ) + + +  + +
    +
    +

    + Create an arcsine function +

    +
    +
    +
    >>> Arcsine(Real('x'))
    +Arcsine(x)
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Arccosine + + + + ( + + + + + x + + + + + ) + + +  + +
    +
    +

    + Create an arccosine function +

    +
    +
    +
    >>> Arccosine(Real('x'))
    +Arccosine(x)
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Arctangent + + + + ( + + + + + x + + + + + ) + + +  + +
    +
    +

    + Create an arctangent function +

    +
    +
    +
    >>> Arctangent(Real('x'))
    +Arctangent(x)
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Secant + + + + ( + + + + + x + + + + + ) + + +  + +
    +
    +

    + Create a secant function +

    +
    +
    +
    >>> Secant(Real('x'))
    +Secant(x)
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Cosecant + + + + ( + + + + + x + + + + + ) + + +  + +
    +
    +

    + Create a cosecant function +

    +
    +
    +
    >>> Cosecant(Real('x'))
    +Cosecant(x)
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Cotangent + + + + ( + + + + + x + + + + + ) + + +  + +
    +
    +

    + Create a cotangent function +

    +
    +
    +
    >>> Cotangent(Real('x'))
    +Cotangent(x)
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Arcsecant + + + + ( + + + + + x + + + + + ) + + +  + +
    +
    +

    + Create an arcsecant function +

    +
    +
    +
    >>> Arcsecant(Real('x'))
    +Arcsecant(x)
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Arccosecant + + + + ( + + + + + x + + + + + ) + + +  + +
    +
    +

    + Create an arccosecant function +

    +
    +
    +
    >>> Arccosecant(Real('x'))
    +Arccosecant(x)
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Arccotangent + + + + ( + + + + + x + + + + + ) + + +  + +
    +
    +

    + Create an arccotangent function +

    +
    +
    +
    >>> Arccotangent(Real('x'))
    +Arccotangent(x)
    +
    +
    +
    +
    +
    +
    +
    +

    + Testers + +  + +

    +
    +
    + + + cvc5.pythonic. + + + + + is_arith + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + a + + is an arithmetical expression. +

    +
    +
    +
    >>> x = Int('x')
    +>>> is_arith(x)
    +True
    +>>> is_arith(x + 1)
    +True
    +>>> is_arith(1)
    +False
    +>>> is_arith(IntVal(1))
    +True
    +>>> y = Real('y')
    +>>> is_arith(y)
    +True
    +>>> is_arith(y + 1)
    +True
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + is_int + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + a + + is an integer expression. +

    +
    +
    +
    >>> x = Int('x')
    +>>> is_int(x + 1)
    +True
    +>>> is_int(1)
    +False
    +>>> is_int(IntVal(1))
    +True
    +>>> y = Real('y')
    +>>> is_int(y)
    +False
    +>>> is_int(y + 1)
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + is_real + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + a + + is a real expression. +

    +
    +
    +
    >>> x = Int('x')
    +>>> is_real(x + 1)
    +False
    +>>> y = Real('y')
    +>>> is_real(y)
    +True
    +>>> is_real(y + 1)
    +True
    +>>> is_real(1)
    +False
    +>>> is_real(RealVal(1))
    +True
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + is_int_value + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + a + + is an integer value of sort Int. +

    +
    +
    +
    >>> is_int_value(IntVal(1))
    +True
    +>>> is_int_value(1)
    +False
    +>>> is_int_value(Int('x'))
    +False
    +>>> n = Int('x') + 1
    +>>> n
    +x + 1
    +>>> n.arg(1)
    +1
    +>>> is_int_value(n.arg(1))
    +True
    +>>> is_int_value(RealVal("1/3"))
    +False
    +>>> is_int_value(RealVal(1))
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + is_rational_value + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + a + + is rational value of sort Real. +

    +
    +
    +
    >>> is_rational_value(RealVal(1))
    +True
    +>>> is_rational_value(RealVal("3/5"))
    +True
    +>>> is_rational_value(IntVal(1))
    +False
    +>>> is_rational_value(1)
    +False
    +>>> n = Real('x') + 1
    +>>> n.arg(1)
    +1
    +>>> is_rational_value(n.arg(1))
    +True
    +>>> is_rational_value(Real('x'))
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + is_arith_sort + + + + ( + + + + + s + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if s is an arithmetical sort (type). +

    +
    +
    +
    >>> is_arith_sort(IntSort())
    +True
    +>>> is_arith_sort(RealSort())
    +True
    +>>> is_arith_sort(BoolSort())
    +False
    +>>> n = Int('x') + 1
    +>>> is_arith_sort(n.sort())
    +True
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + is_add + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + a + + is an expression of the form b + c. +

    +
    +
    +
    >>> x, y = Ints('x y')
    +>>> is_add(x + y)
    +True
    +>>> is_add(x - y)
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + is_mul + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + a + + is an expression of the form b * c. +

    +
    +
    +
    >>> x, y = Ints('x y')
    +>>> is_mul(x * y)
    +True
    +>>> is_mul(x - y)
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + is_sub + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + a + + is an expression of the form b - c. +

    +
    +
    +
    >>> x, y = Ints('x y')
    +>>> is_sub(x - y)
    +True
    +>>> is_sub(x + y)
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + is_div + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + a + + is a rational division term (i.e. b / c). +

    +

    + Note: this returns false for integer division. See + + is_idiv + + . +

    +
    +
    +
    >>> x, y = Reals('x y')
    +>>> is_div(x / y)
    +True
    +>>> is_div(x + y)
    +False
    +>>> x, y = Ints('x y')
    +>>> is_div(x / y)
    +False
    +>>> is_idiv(x / y)
    +True
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + is_idiv + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + a + + is an expression of the form b div c. +

    +
    +
    +
    >>> x, y = Ints('x y')
    +>>> is_idiv(x / y)
    +True
    +>>> is_idiv(x + y)
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + is_mod + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + a + + is an expression of the form b % c. +

    +
    +
    +
    >>> x, y = Ints('x y')
    +>>> is_mod(x % y)
    +True
    +>>> is_mod(x + y)
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + is_le + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + a + + is an expression of the form b <= c. +

    +
    +
    +
    >>> x, y = Ints('x y')
    +>>> is_le(x <= y)
    +True
    +>>> is_le(x < y)
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + is_lt + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + a + + is an expression of the form b < c. +

    +
    +
    +
    >>> x, y = Ints('x y')
    +>>> is_lt(x < y)
    +True
    +>>> is_lt(x == y)
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + is_ge + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + a + + is an expression of the form b >= c. +

    +
    +
    +
    >>> x, y = Ints('x y')
    +>>> is_ge(x >= y)
    +True
    +>>> is_ge(x == y)
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + is_gt + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + a + + is an expression of the form b > c. +

    +
    +
    +
    >>> x, y = Ints('x y')
    +>>> is_gt(x > y)
    +True
    +>>> is_gt(x == y)
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + is_is_int + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + a + + is an expression of the form IsInt(b). +

    +
    +
    +
    >>> x = Real('x')
    +>>> is_is_int(IsInt(x))
    +True
    +>>> is_is_int(x)
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + is_to_real + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + a + + is an expression of the form ToReal(b). +

    +
    +
    +
    >>> x = Int('x')
    +>>> n = ToReal(x)
    +>>> n
    +ToReal(x)
    +>>> is_to_real(n)
    +True
    +>>> is_to_real(x)
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + is_to_int + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + a + + is an expression of the form ToInt(b). +

    +
    +
    +
    >>> x = Real('x')
    +>>> n = ToInt(x)
    +>>> n
    +ToInt(x)
    +>>> is_to_int(n)
    +True
    +>>> is_to_int(x)
    +False
    +
    +
    +
    +
    +
    +
    +
    +

    + Classes (with overloads) + +  + +

    +
    +
    + + + class + + + + + + + cvc5.pythonic. + + + + + ArithSortRef + + + + ( + + + + + ast + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Real and Integer sorts. +

    +
    +
    + + + cast + + + + ( + + + + + val + + + + + ) + + +  + +
    +
    +

    + Try to cast + + val + + as an Integer or Real. +

    +
    +
    +
    >>> IntSort().cast(10)
    +10
    +>>> is_int(IntSort().cast(10))
    +True
    +>>> is_int(10)
    +False
    +>>> RealSort().cast(10)
    +10
    +>>> is_real(RealSort().cast(10))
    +True
    +>>> IntSort().cast(Bool('x'))
    +If(x, 1, 0)
    +>>> RealSort().cast(Bool('x'))
    +ToReal(If(x, 1, 0))
    +>>> try:
    +...   IntSort().cast(RealVal("1.1"))
    +... except SMTException as ex:
    +...   print("failed")
    +failed
    +
    +
    +
    +
    +
    +
    +
    + + + is_int + + + + ( + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + self + + is of the sort Integer. +

    +
    +
    +
    >>> x = Int('x')
    +>>> x.is_int()
    +True
    +>>> (x + 1).is_int()
    +True
    +>>> x = Real('x')
    +>>> x.is_int()
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + is_real + + + + ( + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + self + + is of the sort Real. +

    +
    +
    +
    >>> x = Real('x')
    +>>> x.is_real()
    +True
    +>>> (x + 1).is_real()
    +True
    +>>> x = Int('x')
    +>>> x.is_real()
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + subsort + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + self + + is a subsort of + + other + + . +

    +
    +
    +
    +
    +
    +
    + + + class + + + + + + + cvc5.pythonic. + + + + + ArithRef + + + + ( + + + + + ast + + + + , + + + + ctx + + + + + = + + + + + None + + + + , + + + + reverse_children + + + + + = + + + + + False + + + + + ) + + +  + +
    +
    +

    + Integer and Real expressions. +

    +
    +
    + + + __add__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression + + self + other + + . +

    +
    +
    +
    >>> x = Int('x')
    +>>> y = Int('y')
    +>>> x + y
    +x + y
    +>>> (x + y).sort()
    +Int
    +
    +
    +
    +
    +
    +
    +
    + + + __div__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression + + other/self + + . +

    +
    +
    +
    >>> x = Int('x')
    +>>> y = Int('y')
    +>>> x/y
    +x/y
    +>>> (x/y).sort()
    +Int
    +>>> (x/y).sexpr()
    +'(div x y)'
    +>>> x = Real('x')
    +>>> y = Real('y')
    +>>> x/y
    +x/y
    +>>> (x/y).sort()
    +Real
    +>>> (x/y).sexpr()
    +'(/ x y)'
    +
    +
    +
    +
    +
    +
    +
    + + + __ge__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression + + other >= self + + . +

    +
    +
    +
    >>> x, y = Ints('x y')
    +>>> x >= y
    +x >= y
    +>>> y = Real('y')
    +>>> x >= y
    +ToReal(x) >= y
    +
    +
    +
    +
    +
    +
    +
    + + + __gt__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression + + other > self + + . +

    +
    +
    +
    >>> x, y = Ints('x y')
    +>>> x > y
    +x > y
    +>>> y = Real('y')
    +>>> x > y
    +ToReal(x) > y
    +
    +
    +
    +
    +
    +
    +
    + + + __le__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression + + other <= self + + . +

    +
    +
    +
    >>> x, y = Ints('x y')
    +>>> x <= y
    +x <= y
    +>>> y = Real('y')
    +>>> x <= y
    +ToReal(x) <= y
    +
    +
    +
    +
    +
    +
    +
    + + + __lt__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression + + other < self + + . +

    +
    +
    +
    >>> x, y = Ints('x y')
    +>>> x < y
    +x < y
    +>>> y = Real('y')
    +>>> x < y
    +ToReal(x) < y
    +
    +
    +
    +
    +
    +
    +
    + + + __mod__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression + + other%self + + . +

    +
    +
    +
    >>> x = Int('x')
    +>>> y = Int('y')
    +>>> x % y
    +x%y
    +
    +
    +
    +
    +
    +
    +
    + + + __mul__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression + + self * other + + . +

    +
    +
    +
    >>> x = Real('x')
    +>>> y = Real('y')
    +>>> x * y
    +x*y
    +>>> (x * y).sort()
    +Real
    +>>> x * BoolVal(True)
    +If(True, x, 0)
    +
    +
    +
    +
    +
    +
    +
    + + + __neg__ + + + + ( + + + ) + + +  + +
    +
    +

    + Return an expression representing + + -self + + . +

    +
    +
    +
    >>> x = Int('x')
    +>>> -x
    +-x
    +
    +
    +
    +
    +
    +
    +
    + + + __pos__ + + + + ( + + + ) + + +  + +
    +
    +

    + Return + + self + + . +

    +
    +
    +
    >>> x = Int('x')
    +>>> +x
    +x
    +
    +
    +
    +
    +
    +
    +
    + + + __pow__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression + + self**other + + (** is the power operator). +

    +
    +
    +
    >>> x = Real('x')
    +>>> x**3
    +x**3
    +>>> (x**3).sort()
    +Real
    +>>> solve([x ** 2 == x, x > 0])
    +[x = 1]
    +
    +
    +
    +
    +
    +
    +
    + + + __radd__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression + + other + self + + . +

    +
    +
    +
    >>> x = Int('x')
    +>>> 10 + x
    +10 + x
    +
    +
    +
    +
    +
    +
    +
    + + + __rdiv__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression + + other/self + + . +

    +
    +
    +
    >>> x = Int('x')
    +>>> 10/x
    +10/x
    +>>> (10/x).sexpr()
    +'(div 10 x)'
    +>>> x = Real('x')
    +>>> 10/x
    +10/x
    +>>> (10/x).sexpr()
    +'(/ 10.0 x)'
    +
    +
    +
    +
    +
    +
    +
    + + + __rmod__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression + + other%self + + . +

    +
    +
    +
    >>> x = Int('x')
    +>>> 10 % x
    +10%x
    +
    +
    +
    +
    +
    +
    +
    + + + __rmul__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression + + other * self + + . +

    +
    +
    +
    >>> x = Real('x')
    +>>> 10 * x
    +10*x
    +
    +
    +
    +
    +
    +
    +
    + + + __rpow__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression + + other**self + + (** is the power operator). +

    +
    +
    +
    >>> x = Real('x')
    +>>> 2**x
    +2**x
    +>>> (2**x).sort()
    +Real
    +
    +
    +
    +
    +
    +
    +
    + + + __rsub__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression + + other - self + + . +

    +
    +
    +
    >>> x = Int('x')
    +>>> 10 - x
    +10 - x
    +
    +
    +
    +
    +
    +
    +
    + + + __rtruediv__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression + + other/self + + . +

    +
    +
    +
    +
    + + + __sub__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression + + self - other + + . +

    +
    +
    +
    >>> x = Int('x')
    +>>> y = Int('y')
    +>>> x - y
    +x - y
    +>>> (x - y).sort()
    +Int
    +
    +
    +
    +
    +
    +
    +
    + + + __truediv__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression + + other/self + + . +

    +
    +
    +
    +
    + + + is_int + + + + ( + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + self + + is an integer expression. +

    +
    +
    +
    >>> x = Int('x')
    +>>> x.is_int()
    +True
    +>>> (x + 1).is_int()
    +True
    +>>> y = Real('y')
    +>>> (x + y).is_int()
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + is_real + + + + ( + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + self + + is an real expression. +

    +
    +
    +
    >>> x = Real('x')
    +>>> x.is_real()
    +True
    +>>> (x + 1).is_real()
    +True
    +
    +
    +
    +
    +
    +
    +
    + + + sort + + + + ( + + + ) + + +  + +
    +
    +

    + Return the sort (type) of the arithmetical expression + + self + + . +

    +
    +
    +
    >>> Int('x').sort()
    +Int
    +>>> (Real('x') + 1).sort()
    +Real
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + class + + + + + + + cvc5.pythonic. + + + + + IntNumRef + + + + ( + + + + + ast + + + + , + + + + ctx + + + + + = + + + + + None + + + + , + + + + reverse_children + + + + + = + + + + + False + + + + + ) + + +  + +
    +
    +

    + Integer values. +

    +
    +
    + + + as_binary_string + + + + ( + + + ) + + +  + +
    +
    +

    + Return an SMT integer numeral as a Python binary string. +>>> v = IntVal(10) +>>> v.as_binary_string() +‘1010’ +

    +
    +
    +
    +
    + + + as_long + + + + ( + + + ) + + +  + +
    +
    +

    + Return an SMT integer numeral as a Python long (bignum) numeral. +

    +
    +
    +
    >>> v = IntVal(1)
    +>>> v + 1
    +1 + 1
    +>>> v.as_long() + 1
    +2
    +
    +
    +
    +
    +
    +
    +
    + + + as_string + + + + ( + + + ) + + +  + +
    +
    +

    + Return an SMT integer numeral as a Python string. +>>> v = IntVal(100) +>>> v.as_string() +‘100’ +

    +
    +
    +
    +
    +
    +
    + + + class + + + + + + + cvc5.pythonic. + + + + + RatNumRef + + + + ( + + + + + ast + + + + , + + + + ctx + + + + + = + + + + + None + + + + , + + + + reverse_children + + + + + = + + + + + False + + + + + ) + + +  + +
    +
    +

    + Rational values. +

    +
    +
    + + + as_decimal + + + + ( + + + + + prec + + + + + ) + + +  + +
    +
    +

    + Return an SMT rational value as a string in decimal notation using at most + + prec + + decimal places. +

    +
    +
    +
    >>> v = RealVal("1/5")
    +>>> v.as_decimal(3)
    +'0.2'
    +>>> v = RealVal("1/3")
    +>>> v.as_decimal(3)
    +'0.333'
    +
    +
    +
    +
    +
    +
    +
    + + + as_fraction + + + + ( + + + ) + + +  + +
    +
    +

    + Return an SMT rational as a Python Fraction object. +

    +
    +
    +
    >>> v = RealVal("1/5")
    +>>> v.as_fraction()
    +Fraction(1, 5)
    +
    +
    +
    +
    +
    +
    +
    + + + as_long + + + + ( + + + ) + + +  + +
    +
    +

    + Is this arithmetic value an integer? +>>> RealVal(“2/1”).as_long() +2 +>>> try: +… RealVal(“2/3”).as_long() +… except SMTException as e: +… print(“failed: %s” % e) +failed: Expected integer fraction +

    +
    +
    +
    +
    + + + as_string + + + + ( + + + ) + + +  + +
    +
    +

    + Return an SMT rational numeral as a Python string. +

    +
    +
    +
    >>> v = Q(3,6)
    +>>> v.as_string()
    +'1/2'
    +
    +
    +
    +
    +
    +
    +
    + + + denominator + + + + ( + + + ) + + +  + +
    +
    +

    + Return the denominator of an SMT rational numeral. +

    +
    +
    +
    >>> is_rational_value(Q(3,5))
    +True
    +>>> n = Q(3,5)
    +>>> n.denominator()
    +5
    +
    +
    +
    +
    +
    +
    +
    + + + denominator_as_long + + + + ( + + + ) + + +  + +
    +
    +

    + Return the denominator as a Python long. +

    +
    +
    +
    >>> v = RealVal("1/3")
    +>>> v
    +1/3
    +>>> v.denominator_as_long()
    +3
    +
    +
    +
    +
    +
    +
    +
    + + + is_int + + + + ( + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + self + + is an integer expression. +

    +
    +
    +
    >>> x = Int('x')
    +>>> x.is_int()
    +True
    +>>> (x + 1).is_int()
    +True
    +>>> y = Real('y')
    +>>> (x + y).is_int()
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + is_int_value + + + + ( + + + ) + + +  + +
    +
    +

    + Is this arithmetic value an integer? +>>> RealVal(“2/1”).is_int_value() +True +>>> RealVal(“2/3”).is_int_value() +False +

    +
    +
    +
    +
    + + + is_real + + + + ( + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + self + + is an real expression. +

    +
    +
    +
    >>> x = Real('x')
    +>>> x.is_real()
    +True
    +>>> (x + 1).is_real()
    +True
    +
    +
    +
    +
    +
    +
    +
    + + + numerator + + + + ( + + + ) + + +  + +
    +
    +

    + Return the numerator of an SMT rational numeral. +

    +
    +
    +
    >>> is_rational_value(RealVal("3/5"))
    +True
    +>>> n = RealVal("3/5")
    +>>> n.numerator()
    +3
    +>>> is_rational_value(Q(3,5))
    +True
    +>>> Q(3,5).numerator()
    +3
    +
    +
    +
    +
    +
    +
    +
    + + + numerator_as_long + + + + ( + + + ) + + +  + +
    +
    +

    + Return the numerator as a Python long. +

    +
    +
    +
    >>> v = RealVal(10000000000)
    +>>> v
    +10000000000
    +>>> v + 1
    +10000000000 + 1
    +>>> v.numerator_as_long() + 1 == 10000000001
    +True
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/pythonic/array.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/pythonic/array.html new file mode 100644 index 0000000000..ac40cfe76b --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/pythonic/array.html @@ -0,0 +1,1728 @@ + + + + + + + + + + + Arrays — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Arrays + +  + +

    +
    +

    + Basic Array Term Builders + +  + +

    +
    +
    + + + cvc5.pythonic. + + + + + Array + + + + ( + + + + + name + + + + , + + + + dom + + + + , + + + + rng + + + + + ) + + +  + +
    +
    +

    + Return an array constant named + + name + + with the given domain and range sorts. +

    +
    +
    +
    >>> a = Array('a', IntSort(), IntSort())
    +>>> a.sort()
    +Array(Int, Int)
    +>>> a[0]
    +a[0]
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + ConstArray + + + + ( + + + + + dom + + + + , + + + + v + + + + + ) + + +  + +
    +
    +

    + Return an SMT constant array expression. +

    +
    +
    +
    >>> a = ConstArray(IntSort(), 10)
    +>>> a
    +ConstArray(Int, 10)
    +>>> a.sort()
    +Array(Int, Int)
    +>>> i = Int('i')
    +>>> a[i]
    +ConstArray(Int, 10)[i]
    +>>> simplify(a[i])
    +10
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + K + + + + ( + + + + + dom + + + + , + + + + v + + + + + ) + + +  + +
    +
    +

    + Return an SMT constant array expression. An alias for ConstArray. +

    +
    +
    +
    >>> a = K(IntSort(), 10)
    +>>> a
    +ConstArray(Int, 10)
    +>>> a.sort()
    +Array(Int, Int)
    +>>> i = Int('i')
    +>>> a[i]
    +ConstArray(Int, 10)[i]
    +>>> simplify(a[i])
    +10
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + ArraySort + + + + ( + + + + + * + + + + + sig + + + + + ) + + +  + +
    +
    +

    + Return the SMT array sort with the given domain and range sorts. +

    +
    +
    +
    >>> A = ArraySort(IntSort(), BoolSort())
    +>>> A
    +Array(Int, Bool)
    +>>> A.domain()
    +Int
    +>>> A.range()
    +Bool
    +>>> AA = ArraySort(IntSort(), A)
    +>>> AA
    +Array(Int, Array(Int, Bool))
    +>>> try:
    +...  ArraySort(IntSort(), IntSort(), BoolSort())
    +... except SMTException as e:
    +...  print("failed: %s" % e)
    +failed: Unimplemented: multi-domain array
    +
    +
    +
    +
    +
    +
    +
    +

    + Array Operators + +  + +

    +
    +
    + + + cvc5.pythonic. + + + + + Select + + + + ( + + + + + a + + + + , + + + + i + + + + + ) + + +  + +
    +
    +

    + Return an SMT select array expression. +

    +
    +
    +
    >>> a = Array('a', IntSort(), IntSort())
    +>>> i = Int('i')
    +>>> Select(a, i)
    +a[i]
    +>>> eq(Select(a, i), a[i])
    +True
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Store + + + + ( + + + + + a + + + + , + + + + i + + + + , + + + + v + + + + + ) + + +  + +
    +
    +

    + Return an SMT + + + store + + + array expression. +

    +
    +
    +
    >>> a    = Array('a', IntSort(), IntSort())
    +>>> i, v = Ints('i v')
    +>>> s    = Store(a, i, v)
    +>>> s.sort()
    +Array(Int, Int)
    +>>> prove(s[i] == v)
    +proved
    +>>> j    = Int('j')
    +>>> prove(Implies(i != j, s[j] == a[j]))
    +proved
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Update + + + + ( + + + + + a + + + + , + + + + i + + + + , + + + + v + + + + + ) + + +  + +
    +
    +

    + Return an SMT + + + store + + + array expression. An alias for Store. +

    +
    +
    +
    >>> a    = Array('a', IntSort(), IntSort())
    +>>> i, v = Ints('i v')
    +>>> s    = Update(a, i, v)
    +>>> s.sort()
    +Array(Int, Int)
    +>>> prove(s[i] == v)
    +proved
    +>>> j    = Int('j')
    +>>> prove(Implies(i != j, s[j] == a[j]))
    +proved
    +
    +
    +
    +
    +
    +

    + See the following operator overloads for building other kinds of array +terms: +

    + +
    +
    +

    + Testers + +  + +

    +
    +
    + + + cvc5.pythonic. + + + + + is_array_sort + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Is this an array sort? +

    +
    +
    +
    >>> is_array_sort(ArraySort(BoolSort(), BoolSort()))
    +True
    +>>> is_array_sort(BoolSort())
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + is_array + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + a + + is an SMT array expression. +

    +
    +
    +
    >>> a = Array('a', IntSort(), IntSort())
    +>>> is_array(a)
    +True
    +>>> is_array(Store(a, 0, 1))
    +True
    +>>> is_array(a[0])
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + is_const_array + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + a + + is an SMT constant array. +

    +
    +
    +
    >>> a = ConstArray(IntSort(), 10)
    +>>> is_const_array(a)
    +True
    +>>> a = Array('a', IntSort(), IntSort())
    +>>> is_const_array(a)
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + is_K + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + a + + is an SMT constant array. +An alias for is_const_array. +

    +
    +
    +
    >>> a = ConstArray(IntSort(), 10)
    +>>> is_K(a)
    +True
    +>>> a = Array('a', IntSort(), IntSort())
    +>>> is_K(a)
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + is_select + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + a + + is an SMT array select application. +

    +
    +
    +
    >>> a = Array('a', IntSort(), IntSort())
    +>>> is_select(a)
    +False
    +>>> i = Int('i')
    +>>> is_select(a[i])
    +True
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + is_store + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + a + + is an SMT array + + + store + + + application. +

    +
    +
    +
    >>> a = Array('a', IntSort(), IntSort())
    +>>> is_store(a)
    +False
    +>>> is_store(Store(a, 0, 1))
    +True
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + is_update + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + a + + is an SMT array + + + store + + + application. +An alias for is_store. +

    +
    +
    +
    >>> a = Array('a', IntSort(), IntSort())
    +>>> is_update(a)
    +False
    +>>> is_update(Update(a, 0, 1))
    +True
    +
    +
    +
    +
    +
    +
    +
    +

    + Classes (with overloads) + +  + +

    +
    +
    + + + class + + + + + + + cvc5.pythonic. + + + + + ArraySortRef + + + + ( + + + + + ast + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Array sorts. +

    +
    +
    + + + domain + + + + ( + + + ) + + +  + +
    +
    +

    + Return the domain of the array sort + + self + + . +

    +
    +
    +
    >>> A = ArraySort(IntSort(), BoolSort())
    +>>> A.domain()
    +Int
    +
    +
    +
    +
    +
    +
    +
    + + + range + + + + ( + + + ) + + +  + +
    +
    +

    + Return the range of the array sort + + self + + . +

    +
    +
    +
    >>> A = ArraySort(IntSort(), BoolSort())
    +>>> A.range()
    +Bool
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + class + + + + + + + cvc5.pythonic. + + + + + ArrayRef + + + + ( + + + + + ast + + + + , + + + + ctx + + + + + = + + + + + None + + + + , + + + + reverse_children + + + + + = + + + + + False + + + + + ) + + +  + +
    +
    +

    + Array expressions. +

    +
    +
    + + + __getitem__ + + + + ( + + + + + arg + + + + + ) + + +  + +
    +
    +

    + Return the SMT expression + + self[arg] + + . +

    +
    +
    +
    >>> a = Array('a', IntSort(), BoolSort())
    +>>> i = Int('i')
    +>>> a[i]
    +a[i]
    +>>> a[i].sexpr()
    +'(select a i)'
    +
    +
    +
    +
    +
    +
    +
    + + + arg + + + + ( + + + + + idx + + + + + ) + + +  + +
    +
    +

    + Get the “argument” (base element) of this constant array. +

    +
    +
    +
    >>> b = ConstArray(IntSort(), 1)
    +>>> b.arg(0)
    +1
    +
    +
    +
    +
    +
    +
    +
    + + + default + + + + ( + + + ) + + +  + +
    +
    +

    + Get the constant element of this (constant) array +>>> b = ConstArray(IntSort(), 1) +>>> b.default() +1 +

    +
    +
    +
    +
    + + + domain + + + + ( + + + ) + + +  + +
    +
    +

    + Shorthand for + + self.sort().domain() + + . +

    +
    +
    +
    >>> a = Array('a', IntSort(), BoolSort())
    +>>> a.domain()
    +Int
    +
    +
    +
    +
    +
    +
    +
    + + + range + + + + ( + + + ) + + +  + +
    +
    +

    + Shorthand for + + self.sort().range() + + . +

    +
    +
    +
    >>> a = Array('a', IntSort(), BoolSort())
    +>>> a.range()
    +Bool
    +
    +
    +
    +
    +
    +
    +
    + + + sort + + + + ( + + + ) + + +  + +
    +
    +

    + Return the array sort of the array expression + + self + + . +

    +
    +
    +
    >>> a = Array('a', IntSort(), BoolSort())
    +>>> a.sort()
    +Array(Int, Bool)
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/pythonic/bitvec.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/pythonic/bitvec.html new file mode 100644 index 0000000000..90e8959c15 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/pythonic/bitvec.html @@ -0,0 +1,5044 @@ + + + + + + + + + + + Bit-Vectors — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Bit-Vectors + +  + +

    +
    +

    + Basic Bit-Vector Term Builders + +  + +

    +
    +
    + + + cvc5.pythonic. + + + + + BitVec + + + + ( + + + + + name + + + + , + + + + bv + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Return a bit-vector constant named + + name + + . + + bv + + may be the number of bits of a bit-vector sort. +If + + ctx=None + + , then the global context is used. +

    +
    +
    +
    >>> x  = BitVec('x', 16)
    +>>> is_bv(x)
    +True
    +>>> x.size()
    +16
    +>>> x.sort()
    +BitVec(16)
    +>>> word = BitVecSort(16)
    +>>> x2 = BitVec('x', word)
    +>>> eq(x, x2)
    +True
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + BitVecVal + + + + ( + + + + + val + + + + , + + + + bv + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Return a bit-vector value with the given number of bits. If + + ctx=None + + , then the global context is used. +The second argument can be a number of bits (integer) or a bit-vector sort. +

    +
    +
    +
    >>> v = BitVecVal(10, 32)
    +>>> v
    +10
    +>>> print("0x%.8x" % v.as_long())
    +0x0000000a
    +>>> s = BitVecSort(3)
    +>>> u = BitVecVal(10, s)
    +>>> u
    +2
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + BitVecSort + + + + ( + + + + + sz + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Return an SMT bit-vector sort of the given size. If + + ctx=None + + , then the global context is used. +

    +
    +
    +
    >>> Byte = BitVecSort(8)
    +>>> Word = BitVecSort(16)
    +>>> Byte
    +BitVec(8)
    +>>> x = Const('x', Byte)
    +>>> eq(x, BitVec('x', 8))
    +True
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + BitVecs + + + + ( + + + + + names + + + + , + + + + bv + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Return a tuple of bit-vector constants of size bv. +

    +
    +
    +
    >>> x, y, z = BitVecs('x y z', 16)
    +>>> x.size()
    +16
    +>>> x.sort()
    +BitVec(16)
    +>>> Sum(x, y, z)
    +x + y + z
    +>>> Product(x, y, z)
    +x*y*z
    +
    +
    +
    +
    +
    +
    +
    +

    + Bit-Vector Overloads + +  + +

    +

    + See the following operator overloads for building bit-vector terms. +Each kind of term can also be built with a builder function below. +

    + +
    +
    +

    + Bit-Vector Term Builders + +  + +

    +
    +
    + + + cvc5.pythonic. + + + + + BV2Int + + + + ( + + + + + a + + + + , + + + + is_signed + + + + + = + + + + + False + + + + + ) + + +  + +
    +
    +

    + Return the SMT expression BV2Int(a). +

    +
    +
    +
    >>> b = BitVec('b', 3)
    +>>> BV2Int(b).sort()
    +Int
    +>>> x = Int('x')
    +>>> x > BV2Int(b)
    +x > BV2Int(b)
    +>>> x > BV2Int(b, is_signed=False)
    +x > BV2Int(b)
    +>>> x > BV2Int(b, is_signed=True)
    +x > If(b < 0, BV2Int(b) - 8, BV2Int(b))
    +>>> solve(x > BV2Int(b), b == 1, x < 3)
    +[b = 1, x = 2]
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Int2BV + + + + ( + + + + + a + + + + , + + + + num_bits + + + + + ) + + +  + +
    +
    +

    + Return the SMT expression Int2BV(a, num_bits). +It is a bit-vector of width num_bits and represents the +modulo of a by 2^num_bits +

    +
    +
    +
    >>> x = Int('x')
    +>>> bv_x = Int2BV(x, 2)
    +>>> bv_x_plus_4 = Int2BV(x + 4, 2)
    +>>> solve([bv_x != bv_x_plus_4])
    +no solution
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Concat + + + + ( + + + + + * + + + + + args + + + + + ) + + +  + +
    +
    +

    + Create an SMT bit-vector, string, sequence or regular expression concatenation expression. +

    +
    +
    +
    >>> v = BitVecVal(1, 4)
    +>>> Concat(v, v+1, v)
    +Concat(1, 1 + 1, 1)
    +>>> evaluate(Concat(v, v+1, v))
    +289
    +>>> print("%.3x" % simplify(Concat(v, v+1, v)).as_long())
    +121
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Extract + + + + ( + + + + + high + + + + , + + + + low + + + + , + + + + a + + + + + ) + + +  + +
    +
    +

    + Create an SMT bit-vector extraction expression, or create a string extraction expression. +

    +
    +
    +
    >>> x = BitVec('x', 8)
    +>>> Extract(6, 2, x)
    +Extract(6, 2, x)
    +>>> Extract(6, 2, x).sort()
    +BitVec(5)
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + ULE + + + + ( + + + + + a + + + + , + + + + b + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression (unsigned) + + other <= self + + . +

    +

    + Use the operator <= for signed less than or equal to. +

    +
    +
    +
    >>> x, y = BitVecs('x y', 32)
    +>>> ULE(x, y)
    +ULE(x, y)
    +>>> (x <= y).sexpr()
    +'(bvsle x y)'
    +>>> ULE(x, y).sexpr()
    +'(bvule x y)'
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + ULT + + + + ( + + + + + a + + + + , + + + + b + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression (unsigned) + + other < self + + . +

    +

    + Use the operator < for signed less than. +

    +
    +
    +
    >>> x, y = BitVecs('x y', 32)
    +>>> ULT(x, y)
    +ULT(x, y)
    +>>> (x < y).sexpr()
    +'(bvslt x y)'
    +>>> ULT(x, y).sexpr()
    +'(bvult x y)'
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + UGE + + + + ( + + + + + a + + + + , + + + + b + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression (unsigned) + + other >= self + + . +

    +

    + Use the operator >= for signed greater than or equal to. +

    +
    +
    +
    >>> x, y = BitVecs('x y', 32)
    +>>> UGE(x, y)
    +UGE(x, y)
    +>>> (x >= y).sexpr()
    +'(bvsge x y)'
    +>>> UGE(x, y).sexpr()
    +'(bvuge x y)'
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + UGT + + + + ( + + + + + a + + + + , + + + + b + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression (unsigned) + + other > self + + . +

    +

    + Use the operator > for signed greater than. +

    +
    +
    +
    >>> x, y = BitVecs('x y', 32)
    +>>> UGT(x, y)
    +UGT(x, y)
    +>>> (x > y).sexpr()
    +'(bvsgt x y)'
    +>>> UGT(x, y).sexpr()
    +'(bvugt x y)'
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + SLE + + + + ( + + + + + a + + + + , + + + + b + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression (signed) + + other <= self + + . +

    +

    + See also the __le__ overload (<= operator) for BitVecRef +

    +
    +
    +
    >>> x, y = BitVecs('x y', 32)
    +>>> SLE(x, y).sexpr()
    +'(bvsle x y)'
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + SLT + + + + ( + + + + + a + + + + , + + + + b + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression (signed) + + other < self + + . +

    +

    + See also the __lt__ overload (< operator) for BitVecRef +

    +
    +
    +
    >>> x, y = BitVecs('x y', 32)
    +>>> SLT(x, y).sexpr()
    +'(bvslt x y)'
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + SGE + + + + ( + + + + + a + + + + , + + + + b + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression (signed) + + other >= self + + . +

    +

    + See also the __ge__ overload (>= operator) for BitVecRef +

    +
    +
    +
    >>> x, y = BitVecs('x y', 32)
    +>>> SGE(x, y).sexpr()
    +'(bvsge x y)'
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + SGT + + + + ( + + + + + a + + + + , + + + + b + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression (signed) + + other > self + + . +

    +

    + See also the __gt__ overload (> operator) for BitVecRef +

    +
    +
    +
    >>> x, y = BitVecs('x y', 32)
    +>>> SGT(x, y).sexpr()
    +'(bvsgt x y)'
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + UDiv + + + + ( + + + + + a + + + + , + + + + b + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression (unsigned) division + + self / other + + . +

    +

    + Use the operator / for signed division. +

    +
    +
    +
    >>> x = BitVec('x', 32)
    +>>> y = BitVec('y', 32)
    +>>> UDiv(x, y)
    +UDiv(x, y)
    +>>> UDiv(x, y).sort()
    +BitVec(32)
    +>>> (x / y).sexpr()
    +'(bvsdiv x y)'
    +>>> UDiv(x, y).sexpr()
    +'(bvudiv x y)'
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + URem + + + + ( + + + + + a + + + + , + + + + b + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression (unsigned) remainder + + self % other + + . +

    +

    + Use the operator % for signed modulus, and SRem() for signed remainder. +

    +
    +
    +
    >>> x = BitVec('x', 32)
    +>>> y = BitVec('y', 32)
    +>>> URem(x, y)
    +URem(x, y)
    +>>> URem(x, y).sort()
    +BitVec(32)
    +>>> (x % y).sexpr()
    +'(bvsmod x y)'
    +>>> URem(x, y).sexpr()
    +'(bvurem x y)'
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + SDiv + + + + ( + + + + + a + + + + , + + + + b + + + + + ) + + +  + +
    +
    +

    + Create an SMT signed division expression. +

    +

    + See also the __div__ overload (/ operator) for BitVecRef. +

    +
    +
    +
    >>> x = BitVec('x', 32)
    +>>> y = BitVec('y', 32)
    +>>> SDiv(x, y)
    +x/y
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + SMod + + + + ( + + + + + a + + + + , + + + + b + + + + + ) + + +  + +
    +
    +

    + Create an SMT expression for the signed modulus + + self % other + + . +

    +

    + See also the __mod__ overload (% operator) for BitVecRef. +

    +
    +
    +
    >>> x = BitVec('x', 32)
    +>>> y = BitVec('y', 32)
    +>>> SMod(x, y)
    +x%y
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + SRem + + + + ( + + + + + a + + + + , + + + + b + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression signed remainder. +

    +

    + Use the operator % for signed modulus, and URem() for unsigned remainder. +

    +
    +
    +
    >>> x = BitVec('x', 32)
    +>>> y = BitVec('y', 32)
    +>>> SRem(x, y)
    +SRem(x, y)
    +>>> SRem(x, y).sort()
    +BitVec(32)
    +>>> (x % y).sexpr()
    +'(bvsmod x y)'
    +>>> SRem(x, y).sexpr()
    +'(bvsrem x y)'
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + LShR + + + + ( + + + + + a + + + + , + + + + b + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression logical right shift. +

    +

    + Use the operator >> for the arithmetical right shift. +

    +
    +
    +
    >>> x, y = BitVecs('x y', 32)
    +>>> LShR(x, y)
    +LShR(x, y)
    +>>> (x >> y).sexpr()
    +'(bvashr x y)'
    +>>> LShR(x, y).sexpr()
    +'(bvlshr x y)'
    +>>> BitVecVal(4, 3)
    +4
    +>>> BitVecVal(4, 3).as_signed_long()
    +-4
    +>>> simplify(BitVecVal(4, 3) >> 1).as_signed_long()
    +-2
    +>>> simplify(BitVecVal(4, 3) >> 1)
    +6
    +>>> simplify(LShR(BitVecVal(4, 3), 1))
    +2
    +>>> simplify(BitVecVal(2, 3) >> 1)
    +1
    +>>> simplify(LShR(BitVecVal(2, 3), 1))
    +1
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + RotateLeft + + + + ( + + + + + a + + + + , + + + + b + + + + + ) + + +  + +
    +
    +

    + Return an expression representing + + a + + rotated to the left + + b + + times. +

    +
    +
    +
    >>> a, b = BitVecs('a b', 16)
    +>>> RotateLeft(a, 10)
    +RotateLeft(a, 10)
    +>>> simplify(RotateLeft(a, 0))
    +a
    +>>> simplify(RotateLeft(a, 16))
    +a
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + RotateRight + + + + ( + + + + + a + + + + , + + + + b + + + + + ) + + +  + +
    +
    +

    + Return an expression representing + + a + + rotated to the right + + b + + times. +

    +
    +
    +
    >>> a, b = BitVecs('a b', 16)
    +>>> RotateRight(a, 10)
    +RotateRight(a, 10)
    +>>> simplify(RotateRight(a, 0))
    +a
    +>>> simplify(RotateRight(a, 16))
    +a
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + SignExt + + + + ( + + + + + n + + + + , + + + + a + + + + + ) + + +  + +
    +
    +

    + Return a bit-vector expression with + + n + + extra sign-bits. +

    +
    +
    +
    >>> x = BitVec('x', 16)
    +>>> n = SignExt(8, x)
    +>>> n.size()
    +24
    +>>> n
    +SignExt(8, x)
    +>>> n.sort()
    +BitVec(24)
    +>>> v0 = BitVecVal(2, 2)
    +>>> v0
    +2
    +>>> v0.size()
    +2
    +>>> v  = simplify(SignExt(6, v0))
    +>>> v
    +254
    +>>> v.size()
    +8
    +>>> print("%.x" % v.as_long())
    +fe
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + ZeroExt + + + + ( + + + + + n + + + + , + + + + a + + + + + ) + + +  + +
    +
    +

    + Return a bit-vector expression with + + n + + extra zero-bits. +

    +
    +
    +
    >>> x = BitVec('x', 16)
    +>>> n = ZeroExt(8, x)
    +>>> n.size()
    +24
    +>>> n
    +ZeroExt(8, x)
    +>>> n.sort()
    +BitVec(24)
    +>>> v0 = BitVecVal(2, 2)
    +>>> v0
    +2
    +>>> v0.size()
    +2
    +>>> v  = simplify(ZeroExt(6, v0))
    +>>> v
    +2
    +>>> v.size()
    +8
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + RepeatBitVec + + + + ( + + + + + n + + + + , + + + + a + + + + + ) + + +  + +
    +
    +

    + Return an expression representing + + n + + copies of + + a + + . +

    +
    +
    +
    >>> x = BitVec('x', 8)
    +>>> n = RepeatBitVec(4, x)
    +>>> n
    +RepeatBitVec(4, x)
    +>>> n.size()
    +32
    +>>> v0 = BitVecVal(10, 4)
    +>>> print("%.x" % v0.as_long())
    +a
    +>>> v = simplify(RepeatBitVec(4, v0))
    +>>> v.size()
    +16
    +>>> print("%.x" % v.as_long())
    +aaaa
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + BVRedAnd + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return the reduction-and expression of + + a + + . +

    +
    +
    +
    >>> x = BitVec('x', 4)
    +>>> solve([BVRedAnd(x), BVRedOr(~x)])
    +no solution
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + BVRedOr + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return the reduction-or expression of + + a + + . +

    +
    +
    +
    >>> x = BitVec('x', 4)
    +>>> solve([BVRedAnd(x), BVRedOr(~x)])
    +no solution
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + BVAdd + + + + ( + + + + + * + + + + + args + + + + + ) + + +  + +
    +
    +

    + Create a sum of bit-vectors. +

    +

    + See also the __add__ overload (+ operator) for BitVecRef. +

    +
    +
    +
    >>> x, y, z = BitVecs('x y z', 32)
    +>>> BVAdd(x, y, z)
    +x + y + z
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + BVMult + + + + ( + + + + + * + + + + + args + + + + + ) + + +  + +
    +
    +

    + Create a product of bit-vectors. +

    +

    + See also the __mul__ overload (* operator) for BitVecRef. +

    +
    +
    +
    >>> x, y, z = BitVecs('x y z', 32)
    +>>> BVMult(x, y, z)
    +x*y*z
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + BVSub + + + + ( + + + + + a + + + + , + + + + b + + + + + ) + + +  + +
    +
    +

    + Create a difference of bit-vectors. +

    +

    + See also the __sub__ overload (- operator) for BitVecRef. +

    +
    +
    +
    >>> x, y = BitVecs('x y', 32)
    +>>> BVSub(x, y)
    +x - y
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + BVOr + + + + ( + + + + + * + + + + + args + + + + + ) + + +  + +
    +
    +

    + Create a bit-wise disjunction of bit-vectors. +

    +

    + See also the __or__ overload (| operator) for BitVecRef. +

    +
    +
    +
    >>> x, y, z = BitVecs('x y z', 32)
    +>>> BVOr(x, y, z)
    +x | y | z
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + BVAnd + + + + ( + + + + + * + + + + + args + + + + + ) + + +  + +
    +
    +

    + Create a bit-wise conjunction of bit-vectors. +

    +

    + See also the __and__ overload (& operator) for BitVecRef. +

    +
    +
    +
    >>> x, y, z = BitVecs('x y z', 32)
    +>>> BVAnd(x, y, z)
    +x & y & z
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + BVXor + + + + ( + + + + + * + + + + + args + + + + + ) + + +  + +
    +
    +

    + Create a bit-wise exclusive disjunction of bit-vectors. +

    +

    + See also the __xor__ overload (^ operator) for BitVecRef. +

    +
    +
    +
    >>> x, y, z = BitVecs('x y z', 32)
    +>>> BVXor(x, y, z)
    +x ^ y ^ z
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + BVNeg + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Create a negation (two’s complement) of a bit-vector +

    +

    + See also the __neg__ overload (unary - operator) for BitVecRef. +

    +
    +
    +
    >>> x = BitVec('x', 32)
    +>>> BVNeg(x)
    +-x
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + BVNot + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Create a bitwise not of a bit-vector +

    +

    + See also the __invert__ overload (unary ~ operator) for BitVecRef. +

    +
    +
    +
    >>> x = BitVec('x', 32)
    +>>> BVNot(x)
    +~x
    +
    +
    +
    +
    +
    +
    +
    +

    + Testers + +  + +

    +
    +
    + + + cvc5.pythonic. + + + + + is_bv_sort + + + + ( + + + + + s + + + + + ) + + +  + +
    +
    +

    + Return True if + + s + + is an SMT bit-vector sort. +

    +
    +
    +
    >>> is_bv_sort(BitVecSort(32))
    +True
    +>>> is_bv_sort(IntSort())
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + is_bv + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + a + + is an SMT bit-vector expression. +

    +
    +
    +
    >>> b = BitVec('b', 32)
    +>>> is_bv(b)
    +True
    +>>> is_bv(b + 10)
    +True
    +>>> is_bv(Int('x'))
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + is_bv_value + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + a + + is an SMT bit-vector numeral value. +

    +
    +
    +
    >>> b = BitVec('b', 32)
    +>>> is_bv_value(b)
    +False
    +>>> b = BitVecVal(10, 32)
    +>>> b
    +10
    +>>> is_bv_value(b)
    +True
    +
    +
    +
    +
    +
    +
    +
    +

    + Classes (with overloads) + +  + +

    +
    +
    + + + class + + + + + + + cvc5.pythonic. + + + + + BitVecSortRef + + + + ( + + + + + ast + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Bit-vector sort. +

    +
    +
    + + + cast + + + + ( + + + + + val + + + + + ) + + +  + +
    +
    +

    + Try to cast + + val + + as a Bit-Vector. +

    +
    +
    +
    >>> b = BitVecSort(32)
    +>>> b.cast(10)
    +10
    +>>> b.cast(10).sexpr()
    +'#b00000000000000000000000000001010'
    +
    +
    +
    +
    +
    +
    +
    + + + size + + + + ( + + + ) + + +  + +
    +
    +

    + Return the size (number of bits) of the bit-vector sort + + self + + . +

    +
    +
    +
    >>> b = BitVecSort(32)
    +>>> b.size()
    +32
    +
    +
    +
    +
    +
    +
    +
    + + + subsort + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + self + + is a subsort of + + other + + . +

    +
    +
    +
    >>> IntSort().subsort(RealSort())
    +True
    +>>> BoolSort().subsort(RealSort())
    +True
    +>>> SetSort(BitVecSort(2)).subsort(SetSort(IntSort()))
    +False
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + class + + + + + + + cvc5.pythonic. + + + + + BitVecRef + + + + ( + + + + + ast + + + + , + + + + ctx + + + + + = + + + + + None + + + + , + + + + reverse_children + + + + + = + + + + + False + + + + + ) + + +  + +
    +
    +

    + Bit-vector expressions. +

    +
    +
    + + + __add__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression + + self + other + + . +

    +
    +
    +
    >>> x = BitVec('x', 32)
    +>>> y = BitVec('y', 32)
    +>>> x + y
    +x + y
    +>>> (x + y).sort()
    +BitVec(32)
    +
    +
    +
    +
    +
    +
    +
    + + + __and__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression bitwise-and + + self & other + + . +

    +
    +
    +
    >>> x = BitVec('x', 32)
    +>>> y = BitVec('y', 32)
    +>>> x & y
    +x & y
    +>>> (x & y).sort()
    +BitVec(32)
    +
    +
    +
    +
    +
    +
    +
    + + + __div__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression (signed) division + + self / other + + . +

    +

    + Use the function UDiv() for unsigned division. +

    +
    +
    +
    >>> x = BitVec('x', 32)
    +>>> y = BitVec('y', 32)
    +>>> x / y
    +x/y
    +>>> (x / y).sort()
    +BitVec(32)
    +>>> (x / y).sexpr()
    +'(bvsdiv x y)'
    +>>> UDiv(x, y).sexpr()
    +'(bvudiv x y)'
    +
    +
    +
    +
    +
    +
    +
    + + + __ge__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression (signed) + + other >= self + + . +

    +

    + Use the function UGE() for unsigned greater than or equal to. +

    +
    +
    +
    >>> x, y = BitVecs('x y', 32)
    +>>> x >= y
    +x >= y
    +>>> (x >= y).sexpr()
    +'(bvsge x y)'
    +>>> UGE(x, y).sexpr()
    +'(bvuge x y)'
    +
    +
    +
    +
    +
    +
    +
    + + + __gt__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression (signed) + + other > self + + . +

    +

    + Use the function UGT() for unsigned greater than. +

    +
    +
    +
    >>> x, y = BitVecs('x y', 32)
    +>>> x > y
    +x > y
    +>>> (x > y).sexpr()
    +'(bvsgt x y)'
    +>>> UGT(x, y).sexpr()
    +'(bvugt x y)'
    +
    +
    +
    +
    +
    +
    +
    + + + __invert__ + + + + ( + + + ) + + +  + +
    +
    +

    + Create the SMT expression bitwise-not + + ~self + + . +

    +
    +
    +
    >>> x = BitVec('x', 32)
    +>>> ~x
    +~x
    +>>> solve([~(~x) != x])
    +no solution
    +
    +
    +
    +
    +
    +
    +
    + + + __le__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression (signed) + + other <= self + + . +

    +

    + Use the function ULE() for unsigned less than or equal to. +

    +
    +
    +
    >>> x, y = BitVecs('x y', 32)
    +>>> x <= y
    +x <= y
    +>>> (x <= y).sexpr()
    +'(bvsle x y)'
    +>>> ULE(x, y).sexpr()
    +'(bvule x y)'
    +
    +
    +
    +
    +
    +
    +
    + + + __lshift__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression left shift + + self << other + +

    +
    +
    +
    >>> x, y = BitVecs('x y', 32)
    +>>> x << y
    +x << y
    +>>> (x << y).sexpr()
    +'(bvshl x y)'
    +>>> evaluate(BitVecVal(2, 3) << 1)
    +4
    +
    +
    +
    +
    +
    +
    +
    + + + __lt__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression (signed) + + other < self + + . +

    +

    + Use the function ULT() for unsigned less than. +

    +
    +
    +
    >>> x, y = BitVecs('x y', 32)
    +>>> x < y
    +x < y
    +>>> (x < y).sexpr()
    +'(bvslt x y)'
    +>>> ULT(x, y).sexpr()
    +'(bvult x y)'
    +
    +
    +
    +
    +
    +
    +
    + + + __mod__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression (signed) mod + + self % other + + . +

    +

    + Use the function URem() for unsigned remainder, and SRem() for signed remainder. +

    +
    +
    +
    >>> x = BitVec('x', 32)
    +>>> y = BitVec('y', 32)
    +>>> x % y
    +x%y
    +>>> (x % y).sort()
    +BitVec(32)
    +>>> (x % y).sexpr()
    +'(bvsmod x y)'
    +>>> URem(x, y).sexpr()
    +'(bvurem x y)'
    +>>> SRem(x, y).sexpr()
    +'(bvsrem x y)'
    +
    +
    +
    +
    +
    +
    +
    + + + __mul__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression + + self * other + + . +

    +
    +
    +
    >>> x = BitVec('x', 32)
    +>>> y = BitVec('y', 32)
    +>>> x * y
    +x*y
    +>>> (x * y).sort()
    +BitVec(32)
    +
    +
    +
    +
    +
    +
    +
    + + + __neg__ + + + + ( + + + ) + + +  + +
    +
    +

    + Return an expression representing + + -self + + . +

    +
    +
    +
    >>> x = BitVec('x', 32)
    +>>> -x
    +-x
    +>>> solve([-(-x) != x])
    +no solution
    +
    +
    +
    +
    +
    +
    +
    + + + __or__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression bitwise-or + + self | other + + . +

    +
    +
    +
    >>> x = BitVec('x', 32)
    +>>> y = BitVec('y', 32)
    +>>> x | y
    +x | y
    +>>> (x | y).sort()
    +BitVec(32)
    +
    +
    +
    +
    +
    +
    +
    + + + __pos__ + + + + ( + + + ) + + +  + +
    +
    +

    + Return + + self + + . +

    +
    +
    +
    >>> x = BitVec('x', 32)
    +>>> +x
    +x
    +
    +
    +
    +
    +
    +
    +
    + + + __radd__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression + + other + self + + . +

    +
    +
    +
    >>> x = BitVec('x', 32)
    +>>> 10 + x
    +10 + x
    +
    +
    +
    +
    +
    +
    +
    + + + __rand__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression bitwise-or + + other & self + + . +

    +
    +
    +
    >>> x = BitVec('x', 32)
    +>>> 10 & x
    +10 & x
    +
    +
    +
    +
    +
    +
    +
    + + + __rdiv__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression (signed) division + + other / self + + . +

    +

    + Use the function UDiv() for unsigned division. +

    +
    +
    +
    >>> x = BitVec('x', 32)
    +>>> 10 / x
    +10/x
    +>>> (10 / x).sexpr()
    +'(bvsdiv #b00000000000000000000000000001010 x)'
    +>>> UDiv(10, x).sexpr()
    +'(bvudiv #b00000000000000000000000000001010 x)'
    +
    +
    +
    +
    +
    +
    +
    + + + __rlshift__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression left shift + + other << self + + . +

    +

    + Use the function LShR() for the right logical shift +

    +
    +
    +
    >>> x = BitVec('x', 32)
    +>>> 10 << x
    +10 << x
    +>>> (10 << x).sexpr()
    +'(bvshl #b00000000000000000000000000001010 x)'
    +
    +
    +
    +
    +
    +
    +
    + + + __rmod__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression (signed) mod + + other % self + + . +

    +

    + Use the function URem() for unsigned remainder, and SRem() for signed remainder. +

    +
    +
    +
    >>> x = BitVec('x', 32)
    +>>> 10 % x
    +10%x
    +>>> (10 % x).sexpr()
    +'(bvsmod #b00000000000000000000000000001010 x)'
    +>>> URem(10, x).sexpr()
    +'(bvurem #b00000000000000000000000000001010 x)'
    +>>> SRem(10, x).sexpr()
    +'(bvsrem #b00000000000000000000000000001010 x)'
    +
    +
    +
    +
    +
    +
    +
    + + + __rmul__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression + + other * self + + . +

    +
    +
    +
    >>> x = BitVec('x', 32)
    +>>> 10 * x
    +10*x
    +
    +
    +
    +
    +
    +
    +
    + + + __ror__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression bitwise-or + + other | self + + . +

    +
    +
    +
    >>> x = BitVec('x', 32)
    +>>> 10 | x
    +10 | x
    +
    +
    +
    +
    +
    +
    +
    + + + __rrshift__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression (arithmetical) right shift + + other + + >> + + self + + . +

    +

    + Use the function LShR() for the right logical shift +

    +
    +
    +
    >>> x = BitVec('x', 32)
    +>>> 10 >> x
    +10 >> x
    +>>> (10 >> x).sexpr()
    +'(bvashr #b00000000000000000000000000001010 x)'
    +
    +
    +
    +
    +
    +
    +
    + + + __rshift__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression (arithmetical) right shift + + self >> other + +

    +

    + Use the function LShR() for the right logical shift +

    +
    +
    +
    >>> x, y = BitVecs('x y', 32)
    +>>> x >> y
    +x >> y
    +>>> (x >> y).sexpr()
    +'(bvashr x y)'
    +>>> LShR(x, y).sexpr()
    +'(bvlshr x y)'
    +>>> BitVecVal(4, 3)
    +4
    +>>> BitVecVal(4, 3).as_signed_long()
    +-4
    +>>> evaluate(BitVecVal(4, 3) >> 1).as_signed_long()
    +-2
    +>>> evaluate(BitVecVal(4, 3) >> 1)
    +6
    +>>> evaluate(LShR(BitVecVal(4, 3), 1))
    +2
    +>>> evaluate(BitVecVal(2, 3) >> 1)
    +1
    +>>> evaluate(LShR(BitVecVal(2, 3), 1))
    +1
    +
    +
    +
    +
    +
    +
    +
    + + + __rsub__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression + + other - self + + . +

    +
    +
    +
    >>> x = BitVec('x', 32)
    +>>> 10 - x
    +10 - x
    +
    +
    +
    +
    +
    +
    +
    + + + __rtruediv__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression (signed) division + + other / self + + . +

    +
    +
    +
    +
    + + + __rxor__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression bitwise-xor + + other ^ self + + . +

    +
    +
    +
    >>> x = BitVec('x', 32)
    +>>> 10 ^ x
    +10 ^ x
    +
    +
    +
    +
    +
    +
    +
    + + + __sub__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression + + self - other + + . +

    +
    +
    +
    >>> x = BitVec('x', 32)
    +>>> y = BitVec('y', 32)
    +>>> x - y
    +x - y
    +>>> (x - y).sort()
    +BitVec(32)
    +
    +
    +
    +
    +
    +
    +
    + + + __truediv__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression (signed) division + + self / other + + . +

    +
    +
    +
    +
    + + + __xor__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression bitwise-xor + + self ^ other + + . +

    +
    +
    +
    >>> x = BitVec('x', 32)
    +>>> y = BitVec('y', 32)
    +>>> x ^ y
    +x ^ y
    +>>> (x ^ y).sort()
    +BitVec(32)
    +
    +
    +
    +
    +
    +
    +
    + + + size + + + + ( + + + ) + + +  + +
    +
    +

    + Return the number of bits of the bit-vector expression + + self + + . +

    +
    +
    +
    >>> x = BitVec('x', 32)
    +>>> (x + 1).size()
    +32
    +>>> Concat(x, x).size()
    +64
    +
    +
    +
    +
    +
    +
    +
    + + + sort + + + + ( + + + ) + + +  + +
    +
    +

    + Return the sort of the bit-vector expression + + self + + . +

    +
    +
    +
    >>> x = BitVec('x', 32)
    +>>> x.sort()
    +BitVec(32)
    +>>> x.sort() == BitVecSort(32)
    +True
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + class + + + + + + + cvc5.pythonic. + + + + + BitVecNumRef + + + + ( + + + + + ast + + + + , + + + + ctx + + + + + = + + + + + None + + + + , + + + + reverse_children + + + + + = + + + + + False + + + + + ) + + +  + +
    +
    +

    + Bit-vector values. +

    +
    +
    + + + as_long + + + + ( + + + ) + + +  + +
    +
    +

    + Return an SMT bit-vector numeral as a Python long (bignum) numeral. +

    +
    +
    +
    >>> v = BitVecVal(0xbadc0de, 32)
    +>>> v
    +195936478
    +>>> print("0x%.8x" % v.as_long())
    +0x0badc0de
    +
    +
    +
    +
    +
    +
    +
    + + + as_signed_long + + + + ( + + + ) + + +  + +
    +
    +

    + Return an SMT bit-vector numeral as a Python long (bignum) numeral. +The most significant bit is assumed to be the sign. +

    +
    +
    +
    >>> BitVecVal(4, 3).as_signed_long()
    +-4
    +>>> BitVecVal(7, 3).as_signed_long()
    +-1
    +>>> BitVecVal(3, 3).as_signed_long()
    +3
    +>>> BitVecVal(2**32 - 1, 32).as_signed_long()
    +-1
    +>>> BitVecVal(2**64 - 1, 64).as_signed_long()
    +-1
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/pythonic/boolean.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/pythonic/boolean.html new file mode 100644 index 0000000000..a7204d5fd9 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/pythonic/boolean.html @@ -0,0 +1,4656 @@ + + + + + + + + + + + Core & Booleans — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Core & Booleans + +  + +

    +
    +

    + Basic Boolean Term Builders + +  + +

    +
    +
    + + + cvc5.pythonic. + + + + + Bool + + + + ( + + + + + name + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Return a Boolean constant named + + name + + . If + + ctx=None + + , then the global context is used. +

    +
    +
    +
    >>> p = Bool('p')
    +>>> q = Bool('q')
    +>>> And(p, q)
    +And(p, q)
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + BoolVal + + + + ( + + + + + val + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Return the Boolean value + + True + + or + + False + + . If + + ctx=None + + , then the +global context is used. +

    +
    +
    +
    >>> BoolVal(True)
    +True
    +>>> is_true(BoolVal(True))
    +True
    +>>> is_true(True)
    +False
    +>>> is_false(BoolVal(False))
    +True
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + BoolSort + + + + ( + + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Return the Boolean SMT sort. If + + ctx=None + + , then the global context is used. +

    +
    +
    +
    >>> BoolSort()
    +Bool
    +>>> p = Const('p', BoolSort())
    +>>> is_bool(p)
    +True
    +>>> r = Function('r', IntSort(), IntSort(), BoolSort())
    +>>> r(0, 1)
    +r(0, 1)
    +>>> is_bool(r(0, 1))
    +True
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + FreshBool + + + + ( + + + + + prefix + + + + + = + + + + + 'b' + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Return a fresh Boolean constant in the given context using the given prefix. +

    +

    + If + + ctx=None + + , then the global context is used. +

    +
    +
    +
    >>> b1 = FreshBool()
    +>>> b2 = FreshBool()
    +>>> eq(b1, b2)
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Bools + + + + ( + + + + + names + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Return a tuple of Boolean constants. +

    +

    + + names + + is a single string containing all names separated by blank spaces. +If + + ctx=None + + , then the global context is used. +

    +
    +
    +
    >>> p, q, r = Bools('p q r')
    +>>> And(p, Or(q, r))
    +And(p, Or(q, r))
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + BoolVector + + + + ( + + + + + prefix + + + + , + + + + sz + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Return a list of Boolean constants of size + + sz + + . +

    +

    + The constants are named using the given prefix. +If + + ctx=None + + , then the global context is used. +

    +
    +
    +
    >>> P = BoolVector('p', 3)
    +>>> P
    +[p__0, p__1, p__2]
    +>>> And(P)
    +And(p__0, p__1, p__2)
    +
    +
    +
    +
    +
    +
    +
    +

    + Basic Generic Term Builders + +  + +

    +
    +
    + + + cvc5.pythonic. + + + + + Const + + + + ( + + + + + name + + + + , + + + + sort + + + + + ) + + +  + +
    +
    +

    + Create a constant of the given sort. +

    +
    +
    +
    >>> Const('x', IntSort())
    +x
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Consts + + + + ( + + + + + names + + + + , + + + + sort + + + + + ) + + +  + +
    +
    +

    + Create several constants of the given sort. +

    +

    + + names + + is a string containing the names of all constants to be created. +Blank spaces separate the names of different constants. +

    +
    +
    +
    >>> x, y, z = Consts('x y z', IntSort())
    +>>> x + y + z
    +x + y + z
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + FreshConst + + + + ( + + + + + sort + + + + , + + + + prefix + + + + + = + + + + + 'c' + + + + + ) + + +  + +
    +
    +

    + Create a fresh constant of a specified sort +

    +
    +
    +
    >>> x = FreshConst(BoolSort(), prefix="test")
    +>>> y = FreshConst(BoolSort(), prefix="test")
    +>>> x.eq(y)
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Function + + + + ( + + + + + name + + + + , + + + + * + + + + + sig + + + + + ) + + +  + +
    +
    +

    + Create a new SMT uninterpreted function with the given sorts. +

    +
    +
    +
    >>> f = Function('f', IntSort(), IntSort())
    +>>> f(f(0))
    +f(f(0))
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + FreshFunction + + + + ( + + + + + * + + + + + sig + + + + + ) + + +  + +
    +
    +

    + Create a new fresh SMT uninterpreted function with the given sorts. +

    +
    +
    +
    >>> f = FreshFunction(IntSort(), IntSort())
    +>>> x = Int('x')
    +>>> solve([f(x) != f(x)])
    +no solution
    +
    +
    +
    +
    +
    +
    +
    +

    + Boolean Operators + +  + +

    +
    +
    + + + cvc5.pythonic. + + + + + And + + + + ( + + + + + * + + + + + args + + + + + ) + + +  + +
    +
    +

    + Create an SMT and-expression or and-probe. +

    +
    +
    +
    >>> p, q, r = Bools('p q r')
    +>>> And(p, q, r)
    +And(p, q, r)
    +>>> And(p, q, r, main_ctx())
    +And(p, q, r)
    +>>> P = BoolVector('p', 5)
    +>>> And(P)
    +And(p__0, p__1, p__2, p__3, p__4)
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Or + + + + ( + + + + + * + + + + + args + + + + + ) + + +  + +
    +
    +

    + Create an SMT or-expression or or-probe. +

    +
    +
    +
    >>> p, q, r = Bools('p q r')
    +>>> Or(p, q, r)
    +Or(p, q, r)
    +>>> Or(p, q, r, main_ctx())
    +Or(p, q, r)
    +>>> P = BoolVector('p', 5)
    +>>> Or(P)
    +Or(p__0, p__1, p__2, p__3, p__4)
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Not + + + + ( + + + + + a + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Create an SMT not expression or probe. +

    +
    +
    +
    >>> p = Bool('p')
    +>>> Not(Not(p))
    +Not(Not(p))
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + mk_not + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Negate a boolean expression. +Strips a negation if one is already present +

    +
    +
    +
    >>> x = Bool('x')
    +>>> mk_not(x)
    +Not(x)
    +>>> mk_not(mk_not(x))
    +x
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Implies + + + + ( + + + + + a + + + + , + + + + b + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Create an SMT implies expression. +

    +
    +
    +
    >>> p, q = Bools('p q')
    +>>> Implies(p, q)
    +Implies(p, q)
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Xor + + + + ( + + + + + a + + + + , + + + + b + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Create an SMT Xor expression. +

    +
    +
    +
    >>> p, q = Bools('p q')
    +>>> Xor(p, q)
    +Xor(p, q)
    +
    +
    +
    +
    +
    +
    +
    +

    + Generic Operators + +  + +

    +
    +
    + + + cvc5.pythonic. + + + + + If + + + + ( + + + + + a + + + + , + + + + b + + + + , + + + + c + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Create an SMT if-then-else expression. +

    +
    +
    +
    >>> x = Int('x')
    +>>> y = Int('y')
    +>>> max = If(x > y, x, y)
    +>>> max
    +If(x > y, x, y)
    +>>> If(True, 1, 0, main_ctx())
    +If(True, 1, 0)
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Distinct + + + + ( + + + + + * + + + + + args + + + + + ) + + +  + +
    +
    +

    + Create an SMT distinct expression. +

    +
    +
    +
    >>> x = Int('x')
    +>>> y = Int('y')
    +>>> Distinct(x, y)
    +x != y
    +>>> z = Int('z')
    +>>> Distinct(x, y, z)
    +Distinct(x, y, z)
    +
    +
    +
    +
    +
    +
    +

    + Equality + +  + +

    +

    + See + + + + cvc5.pythonic.ExprRef.__eq__() + + + + and + + + + cvc5.pythonic.ExprRef.__ne__() + + + + for building equality and disequality terms. +

    +
    +
    +
    +

    + Testers + +  + +

    +
    +
    + + + cvc5.pythonic. + + + + + is_bool + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + a + + is an SMT Boolean expression. +

    +
    +
    +
    >>> p = Bool('p')
    +>>> is_bool(p)
    +True
    +>>> q = Bool('q')
    +>>> is_bool(And(p, q))
    +True
    +>>> x = Real('x')
    +>>> is_bool(x)
    +False
    +>>> is_bool(x == 0)
    +True
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + is_bool_value + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + a + + is an integer value of sort Int. +

    +
    +
    +
    >>> is_bool_value(IntVal(1))
    +False
    +>>> is_bool_value(Bool('x'))
    +False
    +>>> is_bool_value(BoolVal(False))
    +True
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + is_true + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + a + + is the SMT true expression. +

    +
    +
    +
    >>> p = Bool('p')
    +>>> is_true(p)
    +False
    +>>> x = Real('x')
    +>>> is_true(x == 0)
    +False
    +>>> # True is a Python Boolean expression
    +>>> is_true(True)
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + is_false + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + a + + is the SMT false expression. +

    +
    +
    +
    >>> p = Bool('p')
    +>>> is_false(p)
    +False
    +>>> is_false(False)
    +False
    +>>> is_false(BoolVal(False))
    +True
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + is_and + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + a + + is an SMT and expression. +

    +
    +
    +
    >>> p, q = Bools('p q')
    +>>> is_and(And(p, q))
    +True
    +>>> is_and(Or(p, q))
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + is_or + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + a + + is an SMT or expression. +

    +
    +
    +
    >>> p, q = Bools('p q')
    +>>> is_or(Or(p, q))
    +True
    +>>> is_or(And(p, q))
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + is_implies + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + a + + is an SMT implication expression. +

    +
    +
    +
    >>> p, q = Bools('p q')
    +>>> is_implies(Implies(p, q))
    +True
    +>>> is_implies(And(p, q))
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + is_not + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + a + + is an SMT not expression. +

    +
    +
    +
    >>> p = Bool('p')
    +>>> is_not(p)
    +False
    +>>> is_not(Not(p))
    +True
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + is_eq + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + a + + is an SMT equality expression. +

    +
    +
    +
    >>> x, y = Ints('x y')
    +>>> is_eq(x == y)
    +True
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + is_distinct + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + a + + is an SMT distinct expression. +

    +
    +
    +
    >>> x, y, z = Ints('x y z')
    +>>> is_distinct(x == y)
    +False
    +>>> is_distinct(Distinct(x, y, z))
    +True
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + is_const + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + a + + is SMT constant/variable expression. +

    +
    +
    + These include: +
    +
    +
      +
    • +

      + concrete (i.e. literal, or non-symbolic) values +

      +
    • +
    • +

      + declared constants +

      +
    • +
    +
    +
    + These do not include: +
    +
    +
      +
    • +

      + bound variables +

      +
    • +
    • +

      + quantified formulae +

      +
    • +
    • +

      + applied operators +

      +
    • +
    +
    +
    +
    +
    +
    >>> a = Int('a')
    +>>> is_const(a)
    +True
    +>>> is_const(a + 1)
    +False
    +>>> is_const(1)
    +False
    +>>> is_const(IntVal(1))
    +True
    +>>> x = Int('x')
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + is_func_decl + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + a + + is an SMT function declaration. +

    +
    +
    +
    >>> f = Function('f', IntSort(), IntSort())
    +>>> is_func_decl(f)
    +True
    +>>> x = Real('x')
    +>>> is_func_decl(x)
    +False
    +
    +
    +
    +
    +
    +
    +
    +

    + Classes (with overloads) + +  + +

    +
    +
    + + + class + + + + + + + cvc5.pythonic. + + + + + ExprRef + + + + ( + + + + + ast + + + + , + + + + ctx + + + + + = + + + + + None + + + + , + + + + reverse_children + + + + + = + + + + + False + + + + + ) + + +  + +
    +
    +

    + Constraints, formulas and terms are expressions. +

    +
    +
    + + + __bool__ + + + + ( + + + ) + + +  + +
    +
    +

    + Convert this expression to a python boolean. +

    +

    + Produces +* the appropriate value for a BoolVal. +* whether structural equality holds for an EQ-node +

    +
    +
    +
    >>> bool(BoolVal(True))
    +True
    +>>> bool(BoolVal(False))
    +False
    +>>> bool(BoolVal(False) == BoolVal(False))
    +True
    +>>> try:
    +...   bool(Int('y'))
    +... except SMTException as ex:
    +...   print("failed: %s" % ex)
    +failed: Symbolic expressions cannot be cast to concrete Boolean values.
    +
    +
    +
    +
    +
    +
    +
    + + + __eq__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Return an SMT expression that represents the constraint + + self == other + + . +

    +

    + If + + other + + is + + None + + , then this method simply returns + + False + + . +

    +
    +
    +
    >>> a = Int('a')
    +>>> b = Int('b')
    +>>> a == b
    +a == b
    +>>> a is None
    +False
    +>>> a == None
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + __hash__ + + + + ( + + + ) + + +  + +
    +
    +

    + Hash code. +

    +
    +
    +
    +
    + + + __init__ + + + + ( + + + + + ast + + + + , + + + + ctx + + + + + = + + + + + None + + + + , + + + + reverse_children + + + + + = + + + + + False + + + + + ) + + +  + +
    +
    +
    +
    +
    +
    + + + __ne__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Return an SMT expression that represents the constraint + + self != other + + . +

    +

    + If + + other + + is + + None + + , then this method simply returns + + True + + . +

    +
    +
    +
    >>> a = Int('a')
    +>>> b = Int('b')
    +>>> a != b
    +a != b
    +>>> a is not None
    +True
    +>>> a != None
    +True
    +
    +
    +
    +
    +
    +
    +
    + + + __nonzero__ + + + + ( + + + ) + + +  + +
    +
    +

    + Convert this expression to a python boolean. See __bool__. +

    +
    +
    +
    >>> (BoolVal(False) == BoolVal(False)).__nonzero__()
    +True
    +
    +
    +
    +
    +
    +
    +
    + + + __repr__ + + + + ( + + + ) + + +  + +
    +
    +

    + Return repr(self). +

    +
    +
    +
    +
    + + + __str__ + + + + ( + + + ) + + +  + +
    +
    +

    + Return str(self). +

    +
    +
    +
    +
    + + + __weakref__ + + + +  + +
    +
    +

    + list of weak references to the object (if defined) +

    +
    +
    +
    +
    + + + arg + + + + ( + + + + + idx + + + + + ) + + +  + +
    +
    +

    + Return argument + + idx + + of the application + + self + + . +

    +

    + This method assumes that + + self + + is a function application with at least + + idx+1 + + arguments. +

    +
    +
    +
    >>> a = Int('a')
    +>>> b = Int('b')
    +>>> f = Function('f', IntSort(), IntSort(), IntSort(), IntSort())
    +>>> t = f(a, b, 0)
    +>>> t.arg(0)
    +a
    +>>> t.arg(1)
    +b
    +>>> t.arg(2)
    +0
    +
    +
    +
    +
    +
    +
    +
    + + + as_ast + + + + ( + + + ) + + +  + +
    +
    +

    + Return a pointer to the underlying Term object. +

    +
    +
    +
    +
    + + + children + + + + ( + + + ) + + +  + +
    +
    +

    + Return a list containing the children of the given expression +

    +
    +
    +
    >>> a = Int('a')
    +>>> b = Int('b')
    +>>> f = Function('f', IntSort(), IntSort(), IntSort(), IntSort())
    +>>> t = f(a, b, 0)
    +>>> t.children()
    +[a, b, 0]
    +
    +
    +
    +
    +
    +
    +
    + + + decl + + + + ( + + + ) + + +  + +
    +
    +

    + Return the SMT function declaration associated with an SMT application. +

    +
    +
    +
    >>> f = Function('f', IntSort(), IntSort())
    +>>> a = Int('a')
    +>>> t = f(a)
    +>>> eq(t.decl(), f)
    +True
    +>>> try:
    +...   Int('y').decl()
    +... except SMTException as ex:
    +...   print("failed: %s" % ex)
    +failed: Declarations for non-function applications
    +
    +
    +
    +
    +
    +
    +
    + + + eq + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + self + + and + + other + + are structurally identical. +

    +
    +
    +
    >>> x = Int('x')
    +>>> n1 = x + 1
    +>>> n2 = 1 + x
    +>>> n1.eq(n2)
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + get_id + + + + ( + + + ) + + +  + +
    +
    +

    + Return unique identifier for object. +It can be used for hash-tables and maps. +

    +
    +
    +
    >>> BoolVal(True).get_id() == BoolVal(True).get_id()
    +True
    +
    +
    +
    +
    +
    +
    +
    + + + hash + + + + ( + + + ) + + +  + +
    +
    +

    + Return a hashcode for the + + self + + . +

    +
    +
    +
    >>> n1 = Int('x') + 1
    +>>> n2 = Int('x') + 1
    +>>> n1.hash() == n2.hash()
    +True
    +
    +
    +
    +
    +
    +
    +
    + + + is_int + + + + ( + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + self + + is of the sort Integer. +

    +
    +
    +
    >>> x = Int('x')
    +>>> x.is_int()
    +True
    +>>> (x + 1).is_int()
    +True
    +>>> x = Real('x')
    +>>> x.is_int()
    +False
    +>>> Set('x', IntSort()).is_int()
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + kind + + + + ( + + + ) + + +  + +
    +
    +

    + Return the Kind of this term +

    +
    +
    +
    >>> f = Function('f', IntSort(), IntSort())
    +>>> a = Int('a')
    +>>> t = f(a)
    +>>> t.kind() == Kind.APPLY_UF
    +True
    +
    +
    +
    +
    +
    +
    +
    + + + num_args + + + + ( + + + ) + + +  + +
    +
    +

    + Return the number of arguments of an SMT application. +

    +
    +
    +
    >>> a = Int('a')
    +>>> b = Int('b')
    +>>> (a + b).num_args()
    +2
    +>>> f = Function('f', IntSort(), IntSort(), IntSort(), IntSort())
    +>>> t = f(a, b, 0)
    +>>> t.num_args()
    +3
    +
    +
    +
    +
    +
    +
    +
    + + + sexpr + + + + ( + + + ) + + +  + +
    +
    +

    + Return a string representing the AST node in s-expression notation. +

    +
    +
    +
    >>> x = Int('x')
    +>>> ((x + 1)*x).sexpr()
    +'(* (+ x 1) x)'
    +
    +
    +
    +
    +
    +
    +
    + + + sort + + + + ( + + + ) + + +  + +
    +
    +

    + Return the sort of expression + + self + + . +

    +
    +
    +
    >>> x = Int('x')
    +>>> (x + 1).sort()
    +Int
    +>>> y = Real('y')
    +>>> (x + y).sort()
    +Real
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + class + + + + + + + cvc5.pythonic. + + + + + SortRef + + + + ( + + + + + ast + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + A Sort is essentially a type. Every term has a sort +

    +
    +
    + + + __eq__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Return self==value. +

    +
    +
    +
    +
    + + + __hash__ + + + + ( + + + ) + + +  + +
    +
    +

    + Hash code. +

    +
    +
    +
    +
    + + + __init__ + + + + ( + + + + + ast + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +
    +
    +
    +
    + + + __ne__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + self + + and + + other + + are not the same SMT sort. +

    +
    +
    +
    >>> p = Bool('p')
    +>>> p.sort() != BoolSort()
    +False
    +>>> p.sort() != IntSort()
    +True
    +
    +
    +
    +
    +
    +
    +
    + + + __repr__ + + + + ( + + + ) + + +  + +
    +
    +

    + A pretty-printed representation of this sort. +

    +
    +
    +
    >>> repr(IntSort())
    +'Int'
    +
    +
    +
    +
    +
    +
    +
    + + + __str__ + + + + ( + + + ) + + +  + +
    +
    +

    + A pretty-printed representation of this sort. +

    +
    +
    +
    >>> str(IntSort())
    +'Int'
    +
    +
    +
    +
    +
    +
    +
    + + + __weakref__ + + + +  + +
    +
    +

    + list of weak references to the object (if defined) +

    +
    +
    +
    +
    + + + as_ast + + + + ( + + + ) + + +  + +
    +
    +

    + Return a pointer to the underlying Sort object. +

    +
    +
    +
    +
    + + + cast + + + + ( + + + + + val + + + + + ) + + +  + +
    +
    +

    + Try to cast + + val + + as an element of sort + + self + + . +

    +

    + This method is used in SMT to convert Python objects such as integers, +floats, longs and strings into SMT expressions. +

    +
    +
    +
    >>> x = Int('x')
    +>>> RealSort().cast(x)
    +ToReal(x)
    +
    +
    +
    +
    +
    +
    +
    + + + eq + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + self + + and + + other + + are structurally identical. +

    +
    +
    +
    >>> x = Int('x')
    +>>> n1 = x + 1
    +>>> n2 = 1 + x
    +>>> n1.eq(n2)
    +False
    +>>> n1.eq(x + 1)
    +True
    +
    +
    +
    +
    +
    +
    +
    + + + hash + + + + ( + + + ) + + +  + +
    +
    +

    + Return a hashcode for the + + self + + . +

    +
    +
    +
    >>> n1 = IntSort()
    +>>> n2 = RealSort()
    +>>> n1.hash() == n2.hash()
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + is_int + + + + ( + + + ) + + +  + +
    +
    +

    + Subclasses override +

    +
    +
    +
    >>> SetSort(IntSort()).is_int()
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + name + + + + ( + + + ) + + +  + +
    +
    +

    + Return the name (string) of sort + + self + + . +

    +
    +
    +
    >>> BoolSort().name()
    +'Bool'
    +>>> ArraySort(IntSort(), IntSort()).name()
    +'(Array Int Int)'
    +
    +
    +
    +
    +
    +
    +
    + + + sexpr + + + + ( + + + ) + + +  + +
    +
    +

    + Return a string representing the AST node in s-expression notation. +

    +
    +
    +
    >>> IntSort().sexpr()
    +'Int'
    +
    +
    +
    +
    +
    +
    +
    + + + subsort + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + self + + is a subsort of + + other + + . +

    +
    +
    +
    >>> IntSort().subsort(RealSort())
    +True
    +>>> BoolSort().subsort(RealSort())
    +True
    +>>> SetSort(BitVecSort(2)).subsort(SetSort(IntSort()))
    +False
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + class + + + + + + + cvc5.pythonic. + + + + + BoolRef + + + + ( + + + + + ast + + + + , + + + + ctx + + + + + = + + + + + None + + + + , + + + + reverse_children + + + + + = + + + + + False + + + + + ) + + +  + +
    +
    +

    + All Boolean expressions are instances of this class. +

    +
    +
    + + + __mul__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression + + self * other + + . +

    +
    +
    +
    >>> x = Real("x")
    +>>> BoolVal(True) * x
    +If(True, x, 0)
    +
    +
    +
    +
    +
    +
    +
    + + + __rmul__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +
    +
    +
    >>> x = Real("x")
    +>>> x * BoolVal(True)
    +If(True, x, 0)
    +
    +
    +
    +
    +
    +
    +
    + + + sort + + + + ( + + + ) + + +  + +
    +
    +

    + Return the sort of expression + + self + + . +

    +
    +
    +
    >>> x = Int('x')
    +>>> (x + 1).sort()
    +Int
    +>>> y = Real('y')
    +>>> (x + y).sort()
    +Real
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + class + + + + + + + cvc5.pythonic. + + + + + BoolSortRef + + + + ( + + + + + ast + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Boolean sort. +

    +
    +
    + + + cast + + + + ( + + + + + val + + + + + ) + + +  + +
    +
    +

    + Try to cast + + val + + as a Boolean. +

    +
    +
    +
    >>> x = BoolSort().cast(True)
    +>>> x
    +True
    +>>> is_expr(x)
    +True
    +>>> is_expr(True)
    +False
    +>>> x.sort()
    +Bool
    +>>> try:
    +...   BoolSort().cast(Int('y'))
    +... except SMTException as ex:
    +...   print("failed")
    +failed
    +>>> try:
    +...   BoolSort().cast(1)
    +... except SMTException as ex:
    +...   print("failed")
    +failed
    +
    +
    +
    +
    +
    +
    +
    + + + is_bool + + + + ( + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + self + + is of the sort Boolean. +

    +
    +
    +
    >>> x = BoolSort()
    +>>> x.is_bool()
    +True
    +
    +
    +
    +
    +
    +
    +
    + + + is_int + + + + ( + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + self + + is of the sort Integer. +

    +
    +
    +
    >>> x = IntSort()
    +>>> x.is_int()
    +True
    +>>> x = RealSort()
    +>>> x.is_int()
    +False
    +>>> x = BoolSort()
    +>>> x.is_int()
    +True
    +
    +
    +
    +
    +
    +
    +
    + + + subsort + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + self + + is a subsort of + + other + + . +

    +
    +
    +
    >>> IntSort().subsort(RealSort())
    +True
    +>>> BoolSort().subsort(RealSort())
    +True
    +>>> SetSort(BitVecSort(2)).subsort(SetSort(IntSort()))
    +False
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + class + + + + + + + cvc5.pythonic. + + + + + FuncDeclRef + + + + ( + + + + + ast + + + + , + + + + ctx + + + + + = + + + + + None + + + + , + + + + reverse_children + + + + + = + + + + + False + + + + + ) + + +  + +
    +
    +

    + Function declaration. +Every constant and function have an associated declaration. +

    +

    + The declaration assigns a name, a sort (i.e., type), and for function +the sort (i.e., type) of each of its arguments. Note that, in SMT, +a constant is a function with 0 arguments. +

    +
    +
    + + + __call__ + + + + ( + + + + + * + + + + + args + + + + + ) + + +  + +
    +
    +

    + Create an SMT application expression using the function + + self + + , +and the given arguments. +

    +

    + The arguments must be SMT expressions. This method assumes that +the sorts of the elements in + + args + + match the sorts of the +domain. Limited coercion is supported. For example, if +args[0] is a Python integer, and the function expects a SMT +integer, then the argument is automatically converted into a +SMT integer. +

    +
    +
    +
    >>> f = Function('f', IntSort(), RealSort(), BoolSort())
    +>>> x = Int('x')
    +>>> y = Real('y')
    +>>> f(x, y)
    +f(x, y)
    +>>> f(x, x)
    +f(x, ToReal(x))
    +
    +
    +
    +
    +
    +
    +
    + + + arity + + + + ( + + + ) + + +  + +
    +
    +

    + Return the number of arguments of a function declaration. +If + + self + + is a constant, then + + self.arity() + + is 0. +

    +
    +
    +
    >>> f = Function('f', IntSort(), RealSort(), BoolSort())
    +>>> f.arity()
    +2
    +
    +
    +
    +
    +
    +
    +
    + + + domain + + + + ( + + + + + i + + + + + ) + + +  + +
    +
    +

    + Return the sort of the argument + + i + + of a function declaration. +This method assumes that + + 0 <= i < self.arity() + + . +

    +
    +
    +
    >>> f = Function('f', IntSort(), RealSort(), BoolSort())
    +>>> f.domain(0)
    +Int
    +>>> f.domain(1)
    +Real
    +
    +
    +
    +
    +
    +
    +
    + + + name + + + + ( + + + ) + + +  + +
    +
    +

    + Return the name of the function declaration + + self + + . +

    +
    +
    +
    >>> f = Function('f', IntSort(), IntSort())
    +>>> f.name()
    +'f'
    +>>> isinstance(f.name(), str)
    +True
    +
    +
    +
    +
    +
    +
    +
    + + + range + + + + ( + + + ) + + +  + +
    +
    +

    + Return the sort of the range of a function declaration. +For constants, this is the sort of the constant. +

    +
    +
    +
    >>> f = Function('f', IntSort(), RealSort(), BoolSort())
    +>>> f.range()
    +Bool
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/pythonic/dt.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/pythonic/dt.html new file mode 100644 index 0000000000..95443308a9 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/pythonic/dt.html @@ -0,0 +1,2536 @@ + + + + + + + + + + + Datatypes — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Datatypes + +  + +

    +
    +

    + Overview + +  + +

    +

    + To manipulate instances of a datatype, one must first + + declare + + the datatype itself. +Declaration happens in three phases. Let’s consider declaring a cons-list of +integers. +

    +

    + First, we initialize the datatype with its + + name + +

    +
    +
    +
    >>> IntList = Datatype('IntList')
    +
    +
    +
    +

    + Second, we declare constructors for the datatype, giving the + + constructor name + + and + + field names and sorts + + . Here is the empty list constructor: +

    +
    +
    +
    >>> IntList.declare('nil', ())
    +
    +
    +
    +

    + Here is the cons constructor: +

    +
    +
    +
    >>> IntList.declare('cons', ('val', IntSort()), ('tail', IntList))
    +
    +
    +
    +

    + Third, after all constructors are declared, we can + + create + + the datatype, +finishing its declaration. +

    +
    +
    +
    >>> IntList = IntList.create()
    +
    +
    +
    +

    + Now, one has access to a number of tools for interacting with integer lists. +

    +
      +
    • +

      + + + IntList.nil + + + refers to the SMT term that is an empty list, +and + + + IntList.cons + + + refers to the cons constructor. +

      +
    • +
    • +

      + + + IntList.is_nil + + + and + + + IntList.is_cons + + + are testors (a.k.a., +recognizers) for those constructors. +

      +
    • +
    • +

      + + + IntList.val + + + and + + + IntList.tail + + + are selectors (a.k.a. accessors) +for the cons constructor. +

      +
    • +
    +

    + If constructor, accessor, or selector names are ambiguous (e.g., if different +constructors have selectors of the same name), then see the methods on + + + + cvc5.pythonic.DatatypeSortRef + + + + to unambiguously access a specific +function. +

    +

    + To create mutually recursive datatypes, see + + + + cvc5.pythonic.CreateDatatypes() + + + + . +

    +

    + To create a codataype (e.g., a possibly infinite stream of integers), pass the + + + isCoDatatype=True + + + argument to the + + + + cvc5.pythonic.Datatype + + + + constructor. +

    +
    +
    +
    >>> IntStream = Datatype('IntStream', isCoDatatype=True)
    +
    +
    +
    +
    +
    +

    + Declaration Utilities + +  + +

    +
    +
    + + + cvc5.pythonic. + + + + + CreateDatatypes + + + + ( + + + + + * + + + + + ds + + + + + ) + + +  + +
    +
    +

    + Create mutually recursive SMT datatypes using 1 or more Datatype helper objects. +In the following example we define a Tree-List using two mutually recursive datatypes. +

    +
    +
    +
    >>> TreeList = Datatype('TreeList')
    +>>> Tree     = Datatype('Tree')
    +>>> # Tree has two constructors: leaf and node
    +>>> Tree.declare('leaf', ('val', IntSort()))
    +>>> # a node contains a list of trees
    +>>> Tree.declare('node', ('children', TreeList))
    +>>> TreeList.declare('nil')
    +>>> TreeList.declare('cons', ('car', Tree), ('cdr', TreeList))
    +>>> Tree, TreeList = CreateDatatypes(Tree, TreeList)
    +>>> Tree.val(Tree.leaf(10))
    +val(leaf(10))
    +>>> simplify(Tree.val(Tree.leaf(10)))
    +10
    +>>> l1 = TreeList.cons(Tree.leaf(10), TreeList.cons(Tree.leaf(20), TreeList.nil))
    +>>> n1 = Tree.node(TreeList.cons(Tree.leaf(10), TreeList.cons(Tree.leaf(20), TreeList.nil)))
    +>>> n1
    +node(cons(leaf(10), cons(leaf(20), nil)))
    +>>> n2 = Tree.node(TreeList.cons(n1, TreeList.nil))
    +>>> simplify(n2 == n1)
    +False
    +>>> simplify(TreeList.car(Tree.children(n2)) == n1)
    +True
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + TupleSort + + + + ( + + + + + name + + + + , + + + + sorts + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Create a named tuple sort base on a set of underlying sorts +

    +

    + Returns the tuple datatype, its constructor, and a list of accessors, in order. +

    +
    +
    +
    >>> pair, mk_pair, (first, second) = TupleSort("pair", [IntSort(), BoolSort()])
    +>>> b = Bool('b')
    +>>> i = Int('i')
    +>>> p = mk_pair(i, b)
    +>>> p
    +pair(i, b)
    +>>> solve([b != second(p)])
    +no solution
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + DisjointSum + + + + ( + + + + + name + + + + , + + + + sorts + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Create a named tagged union sort base on a set of underlying sorts. +

    +

    + See + + this page <https://en.wikipedia.org/wiki/Tagged_union> + + for +information about tagged unions. +

    +

    + Returns the created datatype and a tuple of (injector, extractor) pairs for +the different variants. +

    +
    +
    +
    >>> sum, ((inject0, extract0), (inject1, extract1)) = DisjointSum("+", [IntSort(), BoolSort()])
    +>>> b = Bool('b')
    +>>> i, j = Ints('i j')
    +>>> solve([inject0(i) == inject1(b)])
    +no solution
    +>>> solve([inject0(i) == inject0(j), extract0(inject0(i)) == 5])
    +[i = 5, j = 5]
    +
    +
    +
    +
    +
    +
    +
    +

    + Classes + +  + +

    +
    +
    + + + class + + + + + + + cvc5.pythonic. + + + + + Datatype + + + + ( + + + + + name + + + + , + + + + ctx + + + + + = + + + + + None + + + + , + + + + isCoDatatype + + + + + = + + + + + False + + + + + ) + + +  + +
    +
    +

    + Helper class for declaring datatypes. +

    +
    +
    +
    >>> List = Datatype('List')
    +>>> List.declare('cons', ('car', IntSort()), ('cdr', List))
    +>>> List.declare('nil')
    +>>> List = List.create()
    +>>> # List is now a declaration
    +>>> List.nil
    +nil
    +>>> List.cons(10, List.nil)
    +cons(10, nil)
    +>>> List.cons(10, List.nil).sort()
    +List
    +>>> cons = List.cons
    +>>> nil  = List.nil
    +>>> car  = List.car
    +>>> cdr  = List.cdr
    +>>> n = cons(1, cons(0, nil))
    +>>> n
    +cons(1, cons(0, nil))
    +>>> simplify(cdr(n))
    +cons(0, nil)
    +>>> simplify(car(n))
    +1
    +
    +
    +
    +
    +
    + + + __init__ + + + + ( + + + + + name + + + + , + + + + ctx + + + + + = + + + + + None + + + + , + + + + isCoDatatype + + + + + = + + + + + False + + + + + ) + + +  + +
    +
    +
    +
    +
    +
    + + + __repr__ + + + + ( + + + ) + + +  + +
    +
    +

    + Return repr(self). +

    +
    +
    +
    +
    + + + __weakref__ + + + +  + +
    +
    +

    + list of weak references to the object (if defined) +

    +
    +
    +
    +
    + + + create + + + + ( + + + ) + + +  + +
    +
    +

    + Create an SMT datatype based on the constructors declared using the method + + declare() + + . +The function + + CreateDatatypes() + + must be used to define mutually recursive datatypes. +

    +
    +
    +
    >>> List = Datatype('List')
    +>>> List.declare('cons', ('car', IntSort()), ('cdr', List))
    +>>> List.declare('nil')
    +>>> List = List.create()
    +>>> List.nil
    +nil
    +>>> List.cons(10, List.nil)
    +cons(10, nil)
    +>>> Stream = Datatype('Stream', isCoDatatype=True)
    +>>> Stream.declare('cons', ('car', IntSort()), ('cdr', Stream))
    +>>> Stream.declare('nil')
    +>>> Stream = Stream.create()
    +>>> a = Const('a', Stream)
    +>>> b = Const('b', Stream)
    +>>> s = Solver()
    +>>> s += a == Stream.cons(0, a)
    +>>> s.check()
    +sat
    +>>> s = Solver()
    +>>> s += a == Stream.cons(0, a)
    +>>> s += b == Stream.cons(0, b)
    +>>> s += a != b
    +>>> s.check()
    +unsat
    +
    +
    +
    +
    +
    +
    +
    + + + declare + + + + ( + + + + + name + + + + , + + + + * + + + + + args + + + + + ) + + +  + +
    +
    +

    + Declare constructor named + + name + + with the given accessors + + args + + . +Each accessor is a pair + + (name, sort) + + , where + + name + + is a string and + + sort + + an SMT sort +or a reference to the datatypes being declared. +In the following example + + List.declare(‘cons’, (‘car’, IntSort()), (‘cdr’, List)) + + declares the constructor named + + cons + + that builds a new List using an integer and a List. +It also declares the accessors + + car + + and + + cdr + + . The accessor + + car + + extracts the integer +of a + + cons + + cell, and + + cdr + + the list of a + + cons + + cell. After all constructors were declared, +we use the method create() to create the actual datatype in SMT. +

    +
    +
    +
    >>> List = Datatype('List')
    +>>> List.declare('cons', ('car', IntSort()), ('cdr', List))
    +>>> List.declare('nil')
    +>>> List = List.create()
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + class + + + + + + + cvc5.pythonic. + + + + + DatatypeSortRef + + + + ( + + + + + ast + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Datatype sorts. +

    +
    +
    + + + __init__ + + + + ( + + + + + ast + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +
    +
    +
    +
    + + + accessor + + + + ( + + + + + i + + + + , + + + + j + + + + + ) + + +  + +
    +
    +

    + In SMT, each constructor has 0 or more accessor. +The number of accessors is equal to the arity of the constructor. +

    +
    +
    +
    >>> List = Datatype('List')
    +>>> List.declare('cons', ('car', IntSort()), ('cdr', List))
    +>>> List.declare('nil')
    +>>> List = List.create()
    +>>> List.num_constructors()
    +2
    +>>> List.constructor(0)
    +cons
    +>>> num_accs = List.constructor(0).arity()
    +>>> num_accs
    +2
    +>>> List.accessor(0, 0)
    +car
    +>>> List.accessor(0, 1)
    +cdr
    +>>> List.constructor(1)
    +nil
    +>>> num_accs = List.constructor(1).arity()
    +>>> num_accs
    +0
    +
    +
    +
    +
    +
    +
    +
    + + + constructor + + + + ( + + + + + idx + + + + + ) + + +  + +
    +
    +

    + Return a constructor of the datatype + + self + + . +

    +
    +
    +
    >>> List = Datatype('List')
    +>>> List.declare('cons', ('car', IntSort()), ('cdr', List))
    +>>> List.declare('nil')
    +>>> List = List.create()
    +>>> # List is now a declaration
    +>>> List.num_constructors()
    +2
    +>>> List.constructor(0)
    +cons
    +>>> List.constructor(1)
    +nil
    +
    +
    +
    +
    +
    +
    +
    + + + num_constructors + + + + ( + + + ) + + +  + +
    +
    +

    + Return the number of constructors in the given datatype. +

    +
    +
    +
    >>> List = Datatype('List')
    +>>> List.declare('cons', ('car', IntSort()), ('cdr', List))
    +>>> List.declare('nil')
    +>>> List = List.create()
    +>>> # List is now a declaration
    +>>> List.num_constructors()
    +2
    +
    +
    +
    +
    +
    +
    +
    + + + recognizer + + + + ( + + + + + idx + + + + + ) + + +  + +
    +
    +

    + In SMT, each constructor has an associated recognizer predicate. +If the constructor is named + + name + + , then the recognizer + + is_name + + . +

    +
    +
    +
    >>> List = Datatype('List')
    +>>> List.declare('cons', ('car', IntSort()), ('cdr', List))
    +>>> List.declare('nil')
    +>>> List = List.create()
    +>>> # List is now a SMT declaration
    +>>> List.num_constructors()
    +2
    +>>> List.recognizer(0)
    +is_cons
    +>>> List.recognizer(1)
    +is_nil
    +>>> simplify(List.is_nil(List.cons(10, List.nil)))
    +False
    +>>> simplify(List.is_cons(List.cons(10, List.nil)))
    +True
    +>>> l = Const('l', List)
    +>>> simplify(List.is_cons(l))
    +is_cons(l)
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + class + + + + + + + cvc5.pythonic. + + + + + DatatypeConstructorRef + + + + ( + + + + + datatype + + + + , + + + + ctx + + + + + = + + + + + None + + + + , + + + + r + + + + + = + + + + + False + + + + + ) + + +  + +
    +
    +
    +
    + + + __call__ + + + + ( + + + + + * + + + + + args + + + + + ) + + +  + +
    +
    +

    + Apply this constructor. +

    +
    +
    +
    >>> List = Datatype('List')
    +>>> List.declare('cons', ('car', IntSort()), ('cdr', List))
    +>>> List.declare('nil')
    +>>> List = List.create()
    +>>> List.num_constructors()
    +2
    +>>> List.constructor(0)(1, List.nil)
    +cons(1, nil)
    +
    +
    +
    +

    + The arguments must be SMT expressions. This method assumes that +the sorts of the elements in + + args + + match the sorts of the +domain. Limited coercion is supported. For example, if +args[0] is a Python integer, and the function expects a SMT +integer, then the argument is automatically converted into a +SMT integer. +

    +
    +
    +
    +
    + + + __init__ + + + + ( + + + + + datatype + + + + , + + + + ctx + + + + + = + + + + + None + + + + , + + + + r + + + + + = + + + + + False + + + + + ) + + +  + +
    +
    +
    +
    +
    +
    + + + arity + + + + ( + + + ) + + +  + +
    +
    +

    + Return the number of arguments of a constructor. +

    +

    + The number of accessors is equal to the arity of the constructor. +

    +
    +
    +
    >>> List = Datatype('List')
    +>>> List.declare('cons', ('car', IntSort()), ('cdr', List))
    +>>> List.declare('nil')
    +>>> List = List.create()
    +>>> List.num_constructors()
    +2
    +>>> List.constructor(0).arity()
    +2
    +
    +
    +
    +
    +
    +
    +
    + + + domain + + + + ( + + + + + i + + + + + ) + + +  + +
    +
    +

    + Return the sort of the argument + + i + + of a constructor. +This method assumes that + + 0 <= i < self.arity() + + . +

    +
    +
    +
    >>> List = Datatype('List')
    +>>> List.declare('cons', ('car', IntSort()), ('cdr', List))
    +>>> List.declare('nil')
    +>>> List = List.create()
    +>>> List.num_constructors()
    +2
    +>>> List.constructor(0).domain(0)
    +Int
    +
    +
    +
    +
    +
    +
    +
    + + + range + + + + ( + + + ) + + +  + +
    +
    +

    + Return the sort of the range of a function declaration. +For constants, this is the sort of the constant. +

    +
    +
    +
    >>> List = Datatype('List')
    +>>> List.declare('cons', ('car', IntSort()), ('cdr', List))
    +>>> List.declare('nil')
    +>>> List = List.create()
    +>>> List.num_constructors()
    +2
    +>>> List.constructor(0).range()
    +List
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + class + + + + + + + cvc5.pythonic. + + + + + DatatypeSelectorRef + + + + ( + + + + + datatype + + + + , + + + + ctx + + + + + = + + + + + None + + + + , + + + + r + + + + + = + + + + + False + + + + + ) + + +  + +
    +
    +
    +
    + + + __call__ + + + + ( + + + + + * + + + + + args + + + + + ) + + +  + +
    +
    +

    + Apply this selector. +

    +
    +
    +
    >>> List = Datatype('List')
    +>>> List.declare('cons', ('car', IntSort()), ('cdr', List))
    +>>> List.declare('nil')
    +>>> List = List.create()
    +>>> l = List.cons(1, List.nil)
    +>>> solve([1 != List.car(l)])
    +no solution
    +
    +
    +
    +

    + The arguments must be SMT expressions. This method assumes that +the sorts of the elements in + + args + + match the sorts of the +domain. Limited coercion is supported. For example, if +args[0] is a Python integer, and the function expects a SMT +integer, then the argument is automatically converted into a +SMT integer. +

    +
    +
    +
    +
    + + + __init__ + + + + ( + + + + + datatype + + + + , + + + + ctx + + + + + = + + + + + None + + + + , + + + + r + + + + + = + + + + + False + + + + + ) + + +  + +
    +
    +
    +
    +
    +
    + + + arity + + + + ( + + + ) + + +  + +
    +
    +

    + Return the number of arguments of a selector (always 1). +

    +
    +
    +
    +
    + + + domain + + + + ( + + + + + i + + + + + ) + + +  + +
    +
    +

    + Return the sort of the argument + + i + + of a selector. +This method assumes that + + 0 <= i < self.arity() + + . +

    +
    +
    +
    +
    + + + range + + + + ( + + + ) + + +  + +
    +
    +

    + Return the sort of the range of a function declaration. +For constants, this is the sort of the constant. +

    +
    +
    +
    +
    +
    +
    + + + class + + + + + + + cvc5.pythonic. + + + + + DatatypeRecognizerRef + + + + ( + + + + + constructor + + + + , + + + + ctx + + + + + = + + + + + None + + + + , + + + + r + + + + + = + + + + + False + + + + + ) + + +  + +
    +
    +
    +
    + + + __call__ + + + + ( + + + + + * + + + + + args + + + + + ) + + +  + +
    +
    +

    + Apply this tester (a.k.a., recognizer). +

    +
    +
    +
    >>> List = Datatype('List')
    +>>> List.declare('cons', ('car', IntSort()), ('cdr', List))
    +>>> List.declare('nil')
    +>>> List = List.create()
    +>>> l = List.cons(1, List.nil)
    +>>> solve([List.is_nil(l)])
    +no solution
    +
    +
    +
    +

    + The arguments must be SMT expressions. This method assumes that +the sorts of the elements in + + args + + match the sorts of the +domain. Limited coercion is supported. For example, if +args[0] is a Python integer, and the function expects a SMT +integer, then the argument is automatically converted into a +SMT integer. +

    +
    +
    +
    +
    + + + __init__ + + + + ( + + + + + constructor + + + + , + + + + ctx + + + + + = + + + + + None + + + + , + + + + r + + + + + = + + + + + False + + + + + ) + + +  + +
    +
    +
    +
    +
    +
    + + + arity + + + + ( + + + ) + + +  + +
    +
    +

    + Return the number of arguments of a selector (always 1). +

    +
    +
    +
    +
    + + + domain + + + + ( + + + + + i + + + + + ) + + +  + +
    +
    +

    + Return the sort of the argument + + i + + of a selector. +This method assumes that + + 0 <= i < self.arity() + + . +

    +
    +
    +
    +
    + + + range + + + + ( + + + ) + + +  + +
    +
    +

    + Return the sort of the range of a function declaration. +For constants, this is the sort of the constant. +

    +
    +
    +
    +
    +
    +
    + + + class + + + + + + + cvc5.pythonic. + + + + + DatatypeRef + + + + ( + + + + + ast + + + + , + + + + ctx + + + + + = + + + + + None + + + + , + + + + reverse_children + + + + + = + + + + + False + + + + + ) + + +  + +
    +
    +

    + Datatype expressions. +

    +
    +
    + + + sort + + + + ( + + + ) + + +  + +
    +
    +

    + Return the datatype sort of the datatype expression + + self + + . +

    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/pythonic/finite_field.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/pythonic/finite_field.html new file mode 100644 index 0000000000..02c3d2876a --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/pythonic/finite_field.html @@ -0,0 +1,2017 @@ + + + + + + + + + + + Finite Fields — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Finite Fields + +  + +

    +
    +

    + Basic FiniteField Term Builders + +  + +

    +
    +
    + + + cvc5.pythonic. + + + + + FiniteFieldElem + + + + ( + + + + + name + + + + , + + + + ff + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Return a finite field constant named + + name + + . + + ff + + may be the number of bits of a finite field sort. +If + + ctx=None + + , then the global context is used. +

    +
    +
    +
    >>> x  = FiniteFieldElem('x', 17)
    +>>> is_ff(x)
    +True
    +>>> x.size()
    +17
    +>>> x.sort()
    +FiniteField(17)
    +>>> word = FiniteFieldSort(17)
    +>>> x2 = FiniteFieldElem('x', word)
    +>>> eq(x, x2)
    +True
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + FiniteFieldVal + + + + ( + + + + + val + + + + , + + + + ff + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Return a finite field value with the given number of bits. If + + ctx=None + + , then the global context is used. +The second argument can be a number of bits (integer) or a finite field sort. +

    +
    +
    +
    >>> v = FiniteFieldVal(10, 29)
    +>>> v
    +10
    +>>> print("0x%.8x" % v.as_long())
    +0x0000000a
    +>>> s = FiniteFieldSort(3)
    +>>> u = FiniteFieldVal(10, s)
    +>>> u
    +1
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + FiniteFieldSort + + + + ( + + + + + sz + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Return an SMT finite field sort of the given size. If + + ctx=None + + , then the global context is used. +

    +
    +
    +
    >>> f7 = FiniteFieldSort(7)
    +>>> f7
    +FiniteField(7)
    +>>> x = Const('x', f7)
    +>>> eq(x, FiniteFieldElem('x', 7))
    +True
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + FiniteFieldElems + + + + ( + + + + + names + + + + , + + + + ff + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Return a tuple of finite field constants of size ff. +

    +
    +
    +
    >>> x, y, z = FiniteFieldElems('x y z', 17)
    +>>> x.size()
    +17
    +>>> x.sort()
    +FiniteField(17)
    +>>> Sum(x, y, z)
    +x + y + z
    +>>> Product(x, y, z)
    +x*y*z
    +
    +
    +
    +
    +
    +
    +
    +

    + Arithmetic Overloads + +  + +

    +

    + See the following operator overloads for building finite field terms. These +terms can also be built with builder functions listed below. +

    +
    +
    + addition ( + + + + + + + ) +
    +
    +

    + + + + cvc5.pythonic.FiniteFieldRef.__add__() + + + +

    +
    +
    + subtraction ( + + + - + + + ) +
    +
    +

    + + + + cvc5.pythonic.FiniteFieldRef.__sub__() + + + +

    +
    +
    + negation ( + + + - + + + ) +
    +
    +

    + + + + cvc5.pythonic.FiniteFieldRef.__neg__() + + + +

    +
    +
    + multiplication ( + + + * + + + ) +
    +
    +

    + + + + cvc5.pythonic.FiniteFieldRef.__mul__() + + + +

    +
    +
    + equality ( + + + == + + + ) +
    +
    +

    + + + + cvc5.pythonic.ExprRef.__eq__() + + + +

    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + FFAdd + + + + ( + + + + + * + + + + + args + + + + + ) + + +  + +
    +
    +

    + Create a sum of finite fields. +

    +

    + See also the __add__ overload (+ operator) for FiniteFieldRef. +

    +
    +
    +
    >>> x, y, z = FiniteFieldElems('x y z', 29)
    +>>> FFAdd(x, y, z)
    +x + y + z
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + FFSub + + + + ( + + + + + a + + + + , + + + + b + + + + + ) + + +  + +
    +
    +

    + Create a difference of finite fields. +

    +

    + See also the __sub__ overload (- operator) for FiniteFieldRef. +

    +
    +
    +
    >>> x, y = FiniteFieldElems('x y', 29)
    +>>> FFSub(x, y)
    +x + -y
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + FFNeg + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Create a negation of a finite field elemetn +

    +

    + See also the __neg__ overload (unary - operator) for FiniteFieldRef. +

    +
    +
    +
    >>> x = FiniteFieldElem('x', 29)
    +>>> FFNeg(x)
    +-x
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + FFMult + + + + ( + + + + + * + + + + + args + + + + + ) + + +  + +
    +
    +

    + Create a product of finite fields. +

    +

    + See also the __mul__ overload (* operator) for FiniteFieldRef. +

    +
    +
    +
    >>> x, y, z = FiniteFieldElems('x y z', 29)
    +>>> FFMult(x, y, z)
    +x*y*z
    +
    +
    +
    +
    +
    +
    +
    +

    + Testers + +  + +

    +
    +
    + + + cvc5.pythonic. + + + + + is_ff_sort + + + + ( + + + + + s + + + + + ) + + +  + +
    +
    +

    + Return True if + + s + + is an SMT finite field sort. +

    +
    +
    +
    >>> is_ff_sort(FiniteFieldSort(29))
    +True
    +>>> is_ff_sort(IntSort())
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + is_ff + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + a + + is an SMT finite field expression. +

    +
    +
    +
    >>> b = FiniteFieldElem('b', 29)
    +>>> is_ff(b)
    +True
    +>>> is_ff(b + 10)
    +True
    +>>> is_ff(Int('x'))
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + is_ff_value + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + a + + is an SMT finite field numeral value. +

    +
    +
    +
    >>> b = FiniteFieldElem('b', 29)
    +>>> is_ff_value(b)
    +False
    +>>> b = FiniteFieldVal(10, 29)
    +>>> b
    +10
    +>>> is_ff_value(b)
    +True
    +
    +
    +
    +
    +
    +
    +
    +

    + Classes (with overloads) + +  + +

    +
    +
    + + + class + + + + + + + cvc5.pythonic. + + + + + FiniteFieldSortRef + + + + ( + + + + + ast + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Bit-vector sort. +

    +
    +
    + + + cast + + + + ( + + + + + val + + + + + ) + + +  + +
    +
    +

    + Try to cast + + val + + as a finite field +

    +
    +
    +
    >>> b = FiniteFieldSort(31)
    +>>> b.cast(10)
    +10
    +>>> b.cast(10).sexpr()
    +'#f10m31'
    +
    +
    +
    +
    +
    +
    +
    + + + size + + + + ( + + + ) + + +  + +
    +
    +

    + Return the size (number of elements) of the finite field sort + + self + + . +

    +
    +
    +
    >>> b = FiniteFieldSort(17)
    +>>> b.size()
    +17
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + class + + + + + + + cvc5.pythonic. + + + + + FiniteFieldRef + + + + ( + + + + + ast + + + + , + + + + ctx + + + + + = + + + + + None + + + + , + + + + reverse_children + + + + + = + + + + + False + + + + + ) + + +  + +
    +
    +

    + Bit-vector expressions. +

    +
    +
    + + + __add__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression + + self + other + + . +

    +
    +
    +
    >>> x = FiniteFieldElem('x', 29)
    +>>> y = FiniteFieldElem('y', 29)
    +>>> x + y
    +x + y
    +>>> (x + y).sort()
    +FiniteField(29)
    +
    +
    +
    +
    +
    +
    +
    + + + __mul__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression + + self * other + + . +

    +
    +
    +
    >>> x = FiniteFieldElem('x', 29)
    +>>> y = FiniteFieldElem('y', 29)
    +>>> x * y
    +x*y
    +>>> (x * y).sort()
    +FiniteField(29)
    +
    +
    +
    +
    +
    +
    +
    + + + __neg__ + + + + ( + + + ) + + +  + +
    +
    +

    + Return an expression representing + + -self + + . +

    +
    +
    +
    >>> x = FiniteFieldElem('x', 29)
    +>>> -x
    +-x
    +>>> solve([-(-x) != x])
    +no solution
    +
    +
    +
    +
    +
    +
    +
    + + + __pos__ + + + + ( + + + ) + + +  + +
    +
    +

    + Return + + self + + . +

    +
    +
    +
    >>> x = FiniteFieldElem('x', 29)
    +>>> +x
    +x
    +
    +
    +
    +
    +
    +
    +
    + + + __radd__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression + + other + self + + . +

    +
    +
    +
    >>> x = FiniteFieldElem('x', 29)
    +>>> 10 + x
    +10 + x
    +
    +
    +
    +
    +
    +
    +
    + + + __rmul__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression + + other * self + + . +

    +
    +
    +
    >>> x = FiniteFieldElem('x', 29)
    +>>> 10 * x
    +10*x
    +
    +
    +
    +
    +
    +
    +
    + + + __rsub__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression + + other - self + + . +

    +
    +
    +
    >>> x = FiniteFieldElem('x', 29)
    +>>> 10 - x
    +10 + -x
    +>>> 10 + -x
    +10 + -x
    +
    +
    +
    +
    +
    +
    +
    + + + __sub__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression + + self - other + + . +

    +
    +
    +
    >>> x = FiniteFieldElem('x', 29)
    +>>> y = FiniteFieldElem('y', 29)
    +>>> x - y
    +x + -y
    +>>> (x - y).sort()
    +FiniteField(29)
    +
    +
    +
    +
    +
    +
    +
    + + + size + + + + ( + + + ) + + +  + +
    +
    +

    + Return the number of bits of the finite field expression + + self + + . +

    +
    +
    +
    >>> x = FiniteFieldElem('x', 29)
    +>>> (x + 1).size()
    +29
    +
    +
    +
    +
    +
    +
    +
    + + + sort + + + + ( + + + ) + + +  + +
    +
    +

    + Return the sort of the finite field expression + + self + + . +

    +
    +
    +
    >>> x = FiniteFieldElem('x', 29)
    +>>> x.sort()
    +FiniteField(29)
    +>>> x.sort() == FiniteFieldSort(29)
    +True
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + class + + + + + + + cvc5.pythonic. + + + + + FiniteFieldNumRef + + + + ( + + + + + ast + + + + , + + + + ctx + + + + + = + + + + + None + + + + , + + + + reverse_children + + + + + = + + + + + False + + + + + ) + + +  + +
    +
    +

    + Bit-vector values. +

    +
    +
    + + + as_long + + + + ( + + + ) + + +  + +
    +
    +

    + Return an SMT finite field numeral as a positive Python long (bignum) numeral. +

    +
    +
    +
    >>> v = FiniteFieldVal(28, 29)
    +>>> v
    +-1
    +>>> v.as_long()
    +28
    +
    +
    +
    +
    +
    +
    +
    + + + as_signed_long + + + + ( + + + ) + + +  + +
    +
    +

    + Return an SMT finite field numeral as a Python long (bignum) numeral. +

    +

    + Returns the numeral of minimum absolute value, so the additive inverse of 1 is “-1”. +

    +
    +
    +
    >>> FiniteFieldVal(4, 3).as_signed_long()
    +1
    +>>> FiniteFieldVal(7, 3).as_signed_long()
    +1
    +>>> FiniteFieldVal(3, 3).as_signed_long()
    +0
    +>>> FiniteFieldVal(28, 29).as_signed_long()
    +-1
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/pythonic/fp.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/pythonic/fp.html new file mode 100644 index 0000000000..92865329b0 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/pythonic/fp.html @@ -0,0 +1,7060 @@ + + + + + + + + + + + Floating Point — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Floating Point + +  + +

    +
    +

    + Basic FP Term Builders + +  + +

    +
    +
    + + + cvc5.pythonic. + + + + + FP + + + + ( + + + + + name + + + + , + + + + fpsort + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Return a floating-point constant named + + name + + . + + fpsort + + is the floating-point sort. +If + + ctx=None + + , then the global context is used. +

    +
    +
    +
    >>> x  = FP('x', FPSort(8, 24))
    +>>> is_fp(x)
    +True
    +>>> x.ebits()
    +8
    +>>> x.sort()
    +FPSort(8, 24)
    +>>> word = FPSort(8, 24)
    +>>> x2 = FP('x', word)
    +>>> eq(x, x2)
    +True
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + FPs + + + + ( + + + + + names + + + + , + + + + fpsort + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Return an array of floating-point constants. +

    +
    +
    +
    >>> x, y, z = FPs('x y z', FPSort(8, 24))
    +>>> x.sort()
    +FPSort(8, 24)
    +>>> x.sbits()
    +24
    +>>> x.ebits()
    +8
    +>>> fpMul(RNE(), fpAdd(RNE(), x, y), z)
    +fpMul(RNE(), fpAdd(RNE(), x, y), z)
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + FPVal + + + + ( + + + + + val + + + + , + + + + exp + + + + + = + + + + + None + + + + , + + + + fps + + + + + = + + + + + None + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Return a floating-point value of value + + val + + and sort + + fps + + . +If + + ctx=None + + , then the global context is used. +

    +
    +
    +
    >>> v = FPVal(20.0, FPSort(8, 24))
    +>>> v
    +1.25*(2**4)
    +>>> print("0x%.8x" % v.exponent_as_long())
    +0x00000004
    +>>> v = FPVal(2.25, FPSort(8, 24))
    +>>> v
    +1.125*(2**1)
    +>>> v = FPVal(-2.25, FPSort(8, 24))
    +>>> v
    +-1.125*(2**1)
    +>>> FPVal(-0.0, FPSort(8, 24))
    +-0.0
    +>>> FPVal(0.0, FPSort(8, 24))
    ++0.0
    +>>> FPVal(+0.0, FPSort(8, 24))
    ++0.0
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + fpNaN + + + + ( + + + + + s + + + + + ) + + +  + +
    +
    +

    + Create a SMT floating-point NaN term. +

    +
    +
    +
    >>> s = FPSort(8, 24)
    +>>> set_fpa_pretty(True)
    +>>> fpNaN(s)
    +NaN
    +>>> pb = get_fpa_pretty()
    +>>> set_fpa_pretty(False)
    +>>> fpNaN(s)
    +fpNaN(FPSort(8, 24))
    +>>> set_fpa_pretty(pb)
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + fpPlusInfinity + + + + ( + + + + + s + + + + + ) + + +  + +
    +
    +

    + Create a SMT floating-point +oo term. +

    +
    +
    +
    >>> s = FPSort(8, 24)
    +>>> pb = get_fpa_pretty()
    +>>> set_fpa_pretty(True)
    +>>> fpPlusInfinity(s)
    ++oo
    +>>> set_fpa_pretty(False)
    +>>> fpPlusInfinity(s)
    +fpPlusInfinity(FPSort(8, 24))
    +>>> set_fpa_pretty(pb)
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + fpMinusInfinity + + + + ( + + + + + s + + + + + ) + + +  + +
    +
    +

    + Create a SMT floating-point -oo term. +

    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + fpInfinity + + + + ( + + + + + s + + + + , + + + + negative + + + + + ) + + +  + +
    +
    +

    + Create a SMT floating-point +oo or -oo term. +

    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + fpPlusZero + + + + ( + + + + + s + + + + + ) + + +  + +
    +
    +

    + Create a SMT floating-point +0.0 term. +

    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + fpMinusZero + + + + ( + + + + + s + + + + + ) + + +  + +
    +
    +

    + Create a SMT floating-point -0.0 term. +

    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + fpZero + + + + ( + + + + + s + + + + , + + + + negative + + + + + ) + + +  + +
    +
    +

    + Create a SMT floating-point +0.0 or -0.0 term. +

    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + FPSort + + + + ( + + + + + ebits + + + + , + + + + sbits + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Return a SMT floating-point sort of the given sizes. If + + ctx=None + + , then the global context is used. +

    +
    +
    +
    >>> Single = FPSort(8, 24)
    +>>> Double = FPSort(11, 53)
    +>>> Single
    +FPSort(8, 24)
    +>>> x = Const('x', Single)
    +>>> eq(x, FP('x', FPSort(8, 24)))
    +True
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Float16 + + + + ( + + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Floating-point 16-bit (half) sort. +

    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + FloatHalf + + + + ( + + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Floating-point 16-bit (half) sort. +

    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Float32 + + + + ( + + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Floating-point 32-bit (single) sort. +

    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + FloatSingle + + + + ( + + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Floating-point 32-bit (single) sort. +

    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Float64 + + + + ( + + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Floating-point 64-bit (double) sort. +

    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + FloatDouble + + + + ( + + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Floating-point 64-bit (double) sort. +

    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Float128 + + + + ( + + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Floating-point 128-bit (quadruple) sort. +

    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + FloatQuadruple + + + + ( + + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Floating-point 128-bit (quadruple) sort. +

    +
    +
    +
    +
    +

    + FP Operators + +  + +

    +

    + See the following operator overloads for building basic floating-point terms: +

    + +
    +
    + + + cvc5.pythonic. + + + + + fpAbs + + + + ( + + + + + a + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Create a SMT floating-point absolute value expression. +

    +
    +
    +
    >>> s = FPSort(8, 24)
    +>>> rm = RNE()
    +>>> x = FPVal(1.0, s)
    +>>> fpAbs(x)
    +fpAbs(1)
    +>>> y = FPVal(-20.0, s)
    +>>> y
    +-1.25*(2**4)
    +>>> fpAbs(y)
    +fpAbs(-1.25*(2**4))
    +>>> fpAbs(-1.25*(2**4))
    +fpAbs(-1.25*(2**4))
    +>>> fpAbs(x).sort()
    +FPSort(8, 24)
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + fpNeg + + + + ( + + + + + a + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Create a SMT floating-point addition expression. +

    +
    +
    +
    >>> s = FPSort(8, 24)
    +>>> rm = RNE()
    +>>> x = FP('x', s)
    +>>> fpNeg(x)
    +-x
    +>>> fpNeg(x).sort()
    +FPSort(8, 24)
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + fpAdd + + + + ( + + + + + rm + + + + , + + + + a + + + + , + + + + b + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Create a SMT floating-point addition expression. +

    +
    +
    +
    >>> s = FPSort(8, 24)
    +>>> rm = RNE()
    +>>> x = FP('x', s)
    +>>> y = FP('y', s)
    +>>> fpAdd(rm, x, y)
    +fpAdd(RNE(), x, y)
    +>>> fpAdd(RTZ(), x, y) # default rounding mode is RTZ
    +x + y
    +>>> fpAdd(rm, x, y).sort()
    +FPSort(8, 24)
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + fpSub + + + + ( + + + + + rm + + + + , + + + + a + + + + , + + + + b + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Create a SMT floating-point subtraction expression. +

    +
    +
    +
    >>> s = FPSort(8, 24)
    +>>> rm = RNE()
    +>>> x = FP('x', s)
    +>>> y = FP('y', s)
    +>>> fpSub(rm, x, y)
    +fpSub(RNE(), x, y)
    +>>> fpSub(rm, x, y).sort()
    +FPSort(8, 24)
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + fpMul + + + + ( + + + + + rm + + + + , + + + + a + + + + , + + + + b + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Create a SMT floating-point multiplication expression. +

    +
    +
    +
    >>> s = FPSort(8, 24)
    +>>> rm = RNE()
    +>>> x = FP('x', s)
    +>>> y = FP('y', s)
    +>>> fpMul(rm, x, y)
    +fpMul(RNE(), x, y)
    +>>> fpMul(rm, x, y).sort()
    +FPSort(8, 24)
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + fpDiv + + + + ( + + + + + rm + + + + , + + + + a + + + + , + + + + b + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Create a SMT floating-point division expression. +

    +
    +
    +
    >>> s = FPSort(8, 24)
    +>>> rm = RNE()
    +>>> x = FP('x', s)
    +>>> y = FP('y', s)
    +>>> fpDiv(rm, x, y)
    +fpDiv(RNE(), x, y)
    +>>> fpDiv(rm, x, y).sort()
    +FPSort(8, 24)
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + fpRem + + + + ( + + + + + a + + + + , + + + + b + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Create a SMT floating-point remainder expression. +

    +
    +
    +
    >>> s = FPSort(8, 24)
    +>>> x = FP('x', s)
    +>>> y = FP('y', s)
    +>>> fpRem(x, y)
    +fpRem(x, y)
    +>>> fpRem(x, y).sort()
    +FPSort(8, 24)
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + fpMin + + + + ( + + + + + a + + + + , + + + + b + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Create a SMT floating-point minimum expression. +

    +
    +
    +
    >>> s = FPSort(8, 24)
    +>>> rm = RNE()
    +>>> x = FP('x', s)
    +>>> y = FP('y', s)
    +>>> fpMin(x, y)
    +fpMin(x, y)
    +>>> fpMin(x, y).sort()
    +FPSort(8, 24)
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + fpMax + + + + ( + + + + + a + + + + , + + + + b + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Create a SMT floating-point maximum expression. +

    +
    +
    +
    >>> s = FPSort(8, 24)
    +>>> rm = RNE()
    +>>> x = FP('x', s)
    +>>> y = FP('y', s)
    +>>> fpMax(x, y)
    +fpMax(x, y)
    +>>> fpMax(x, y).sort()
    +FPSort(8, 24)
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + fpFMA + + + + ( + + + + + rm + + + + , + + + + a + + + + , + + + + b + + + + , + + + + c + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Create a SMT floating-point fused multiply-add expression. +

    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + fpSqrt + + + + ( + + + + + rm + + + + , + + + + a + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Create a SMT floating-point square root expression. +

    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + fpRoundToIntegral + + + + ( + + + + + rm + + + + , + + + + a + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Create a SMT floating-point roundToIntegral expression. +

    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + fpIsNaN + + + + ( + + + + + a + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Create a SMT floating-point isNaN expression. +

    +
    +
    +
    >>> s = FPSort(8, 24)
    +>>> x = FP('x', s)
    +>>> y = FP('y', s)
    +>>> fpIsNaN(x)
    +fpIsNaN(x)
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + fpIsInf + + + + ( + + + + + a + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Create a SMT floating-point isInfinite expression. +

    +
    +
    +
    >>> s = FPSort(8, 24)
    +>>> x = FP('x', s)
    +>>> fpIsInf(x)
    +fpIsInf(x)
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + fpIsZero + + + + ( + + + + + a + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Create a SMT floating-point isZero expression. +

    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + fpIsNormal + + + + ( + + + + + a + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Create a SMT floating-point isNormal expression. +

    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + fpIsSubnormal + + + + ( + + + + + a + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Create a SMT floating-point isSubnormal expression. +

    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + fpIsNegative + + + + ( + + + + + a + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Create a SMT floating-point isNegative expression. +

    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + fpIsPositive + + + + ( + + + + + a + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Create a SMT floating-point isPositive expression. +

    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + fpLT + + + + ( + + + + + a + + + + , + + + + b + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Create the SMT floating-point expression + + other < self + + . +

    +
    +
    +
    >>> x, y = FPs('x y', FPSort(8, 24))
    +>>> fpLT(x, y)
    +x < y
    +>>> (x < y).sexpr()
    +'(fp.lt x y)'
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + fpLEQ + + + + ( + + + + + a + + + + , + + + + b + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Create the SMT floating-point expression + + other <= self + + . +

    +
    +
    +
    >>> x, y = FPs('x y', FPSort(8, 24))
    +>>> fpLEQ(x, y)
    +x <= y
    +>>> (x <= y).sexpr()
    +'(fp.leq x y)'
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + fpGT + + + + ( + + + + + a + + + + , + + + + b + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Create the SMT floating-point expression + + other > self + + . +

    +
    +
    +
    >>> x, y = FPs('x y', FPSort(8, 24))
    +>>> fpGT(x, y)
    +x > y
    +>>> (x > y).sexpr()
    +'(fp.gt x y)'
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + fpGEQ + + + + ( + + + + + a + + + + , + + + + b + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Create the SMT floating-point expression + + other >= self + + . +

    +
    +
    +
    >>> x, y = FPs('x y', FPSort(8, 24))
    +>>> fpGEQ(x, y)
    +x >= y
    +>>> (x >= y).sexpr()
    +'(fp.geq x y)'
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + fpEQ + + + + ( + + + + + a + + + + , + + + + b + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Create the SMT floating-point expression + + fpEQ(other, self) + + . +

    +
    +
    +
    >>> x, y = FPs('x y', FPSort(8, 24))
    +>>> fpEQ(x, y)
    +fpEQ(x, y)
    +>>> fpEQ(x, y).sexpr()
    +'(fp.eq x y)'
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + fpNEQ + + + + ( + + + + + a + + + + , + + + + b + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Create the SMT floating-point expression + + Not(fpEQ(other, self)) + + . +

    +
    +
    +
    >>> x, y = FPs('x y', FPSort(8, 24))
    +>>> fpNEQ(x, y)
    +Not(fpEQ(x, y))
    +>>> (x != y).sexpr()
    +'(distinct x y)'
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + fpFP + + + + ( + + + + + sgn + + + + , + + + + exp + + + + , + + + + sig + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Create the SMT floating-point value + + fpFP(sgn, sig, exp) + + from the three bit-vectors sgn, sig, and exp. +

    +
    +
    +
    >>> s = FPSort(8, 24)
    +>>> x = fpFP(BitVecVal(1, 1), BitVecVal(2**7-1, 8), BitVecVal(2**22, 23))
    +>>> print(x)
    +fpToFP(Concat(1, 127, 4194304))
    +>>> xv = FPVal(-1.5, s)
    +>>> print(xv)
    +-1.5
    +>>> slvr = Solver()
    +>>> slvr.add(fpEQ(x, xv))
    +>>> slvr.check()
    +sat
    +>>> xv = FPVal(+1.5, s)
    +>>> print(xv)
    +1.5
    +>>> slvr = Solver()
    +>>> slvr.add(fpEQ(x, xv))
    +>>> slvr.check()
    +unsat
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + fpToFP + + + + ( + + + + + a1 + + + + , + + + + a2 + + + + + = + + + + + None + + + + , + + + + a3 + + + + + = + + + + + None + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Create a SMT floating-point conversion expression from other term sorts +to floating-point. +

    +

    + From a floating-point term with different precision: +

    +
    +
    +
    >>> x = FPVal(1.0, Float32())
    +>>> x_db = fpToFP(RNE(), x, Float64())
    +>>> x_db.sort()
    +FPSort(11, 53)
    +
    +
    +
    +

    + From a real term: +

    +
    +
    +
    >>> x_r = RealVal(1.5)
    +>>> simplify(fpToFP(RNE(), x_r, Float32()))
    +1.5
    +
    +
    +
    +

    + From a signed bit-vector term: +

    +
    +
    +
    >>> x_signed = BitVecVal(-5, BitVecSort(32))
    +>>> simplify(fpToFP(RNE(), x_signed, Float32()))
    +-1.25*(2**2)
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + fpBVToFP + + + + ( + + + + + v + + + + , + + + + sort + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Create a SMT floating-point conversion expression that represents the +conversion from a bit-vector term to a floating-point term. +

    +
    +
    +
    >>> x_bv = BitVecVal(0x3F800000, 32)
    +>>> x_fp = fpBVToFP(x_bv, Float32())
    +>>> x_fp
    +fpToFP(1065353216)
    +>>> simplify(x_fp)
    +1
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + fpFPToFP + + + + ( + + + + + rm + + + + , + + + + v + + + + , + + + + sort + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Create a SMT floating-point conversion expression that represents the +conversion from a floating-point term to a floating-point term of different precision. +

    +
    +
    +
    >>> x_sgl = FPVal(1.0, Float32())
    +>>> x_dbl = fpFPToFP(RNE(), x_sgl, Float64())
    +>>> x_dbl
    +fpToFP(RNE(), 1)
    +>>> simplify(x_dbl)
    +1
    +>>> x_dbl.sort()
    +FPSort(11, 53)
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + fpRealToFP + + + + ( + + + + + rm + + + + , + + + + v + + + + , + + + + sort + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Create a SMT floating-point conversion expression that represents the +conversion from a real term to a floating-point term. +

    +
    +
    +
    >>> x_r = RealVal(1.5)
    +>>> x_fp = fpRealToFP(RNE(), x_r, Float32())
    +>>> x_fp
    +fpToFP(RNE(), 3/2)
    +>>> simplify(x_fp)
    +1.5
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + fpSignedToFP + + + + ( + + + + + rm + + + + , + + + + v + + + + , + + + + sort + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Create a SMT floating-point conversion expression that represents the +conversion from a signed bit-vector term (encoding an integer) to a floating-point term. +

    +
    +
    +
    >>> x_signed = BitVecVal(-5, BitVecSort(32))
    +>>> x_fp = fpSignedToFP(RNE(), x_signed, Float32())
    +>>> x_fp
    +fpToFP(RNE(), 4294967291)
    +>>> simplify(x_fp)
    +-1.25*(2**2)
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + fpUnsignedToFP + + + + ( + + + + + rm + + + + , + + + + v + + + + , + + + + sort + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Create a SMT floating-point conversion expression that represents the +conversion from an unsigned bit-vector term (encoding an integer) to a floating-point term. +

    +
    +
    +
    >>> x_signed = BitVecVal(-5, BitVecSort(32))
    +>>> x_fp = fpUnsignedToFP(RNE(), x_signed, Float32())
    +>>> x_fp
    +fpToFP(RNE(), 4294967291)
    +>>> simplify(x_fp)
    +1*(2**32)
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + fpToFPUnsigned + + + + ( + + + + + rm + + + + , + + + + x + + + + , + + + + s + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Create a SMT floating-point conversion expression, from unsigned bit-vector to floating-point expression. +

    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + fpToSBV + + + + ( + + + + + rm + + + + , + + + + x + + + + , + + + + s + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Create a SMT floating-point conversion expression, from floating-point expression to signed bit-vector. +

    +
    +
    +
    >>> x = FP('x', FPSort(8, 24))
    +>>> y = fpToSBV(RTZ(), x, BitVecSort(32))
    +>>> print(is_fp(x))
    +True
    +>>> print(is_bv(y))
    +True
    +>>> print(is_fp(y))
    +False
    +>>> print(is_bv(x))
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + fpToUBV + + + + ( + + + + + rm + + + + , + + + + x + + + + , + + + + s + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Create a SMT floating-point conversion expression, from floating-point expression to unsigned bit-vector. +

    +
    +
    +
    >>> x = FP('x', FPSort(8, 24))
    +>>> y = fpToUBV(RTZ(), x, BitVecSort(32))
    +>>> print(is_fp(x))
    +True
    +>>> print(is_bv(y))
    +True
    +>>> print(is_fp(y))
    +False
    +>>> print(is_bv(x))
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + fpToReal + + + + ( + + + + + x + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Create a SMT floating-point conversion expression, from floating-point expression to real. +

    +
    +
    +
    >>> x = FP('x', FPSort(8, 24))
    +>>> y = fpToReal(x)
    +>>> print(is_fp(x))
    +True
    +>>> print(is_real(y))
    +True
    +>>> print(is_fp(y))
    +False
    +>>> print(is_real(x))
    +False
    +
    +
    +
    +
    +
    +
    +
    +

    + Testers + +  + +

    +
    +
    + + + cvc5.pythonic. + + + + + is_fp_sort + + + + ( + + + + + s + + + + + ) + + +  + +
    +
    +

    + Return True if + + s + + is a SMT floating-point sort. +

    +
    +
    +
    >>> is_fp_sort(FPSort(8, 24))
    +True
    +>>> is_fp_sort(IntSort())
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + is_fp + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + a + + is a SMT floating-point expression. +

    +
    +
    +
    >>> b = FP('b', FPSort(8, 24))
    +>>> is_fp(b)
    +True
    +>>> is_fp(b + 1.0)
    +True
    +>>> is_fp(Int('x'))
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + is_fp_value + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + a + + is a SMT floating-point numeral value. +

    +
    +
    +
    >>> b = FP('b', FPSort(8, 24))
    +>>> is_fp_value(b)
    +False
    +>>> b = FPVal(1.0, FPSort(8, 24))
    +>>> b
    +1
    +>>> is_fp_value(b)
    +True
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + is_fprm_sort + + + + ( + + + + + s + + + + + ) + + +  + +
    +
    +

    + Return True if + + s + + is a SMT floating-point rounding mode sort. +

    +
    +
    +
    >>> is_fprm_sort(FPSort(8, 24))
    +False
    +>>> is_fprm_sort(RNE().sort())
    +True
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + is_fprm + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + a + + is a SMT floating-point rounding mode expression. +

    +
    +
    +
    >>> rm = RNE()
    +>>> is_fprm(rm)
    +True
    +>>> rm = 1.0
    +>>> is_fprm(rm)
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + is_fprm_value + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + a + + is a SMT floating-point rounding mode numeral value. +

    +
    +
    +
    +
    +

    + FP Rounding Modes + +  + +

    +
    +
    + + + cvc5.pythonic. + + + + + RoundNearestTiesToEven + + + + ( + + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Round to nearest, with ties broken towards even. +

    +

    + See + + Section 4.2 of the IEEE standard <https://doi.org/10.1109/IEEESTD.2019.8766229> + + or + + wikipedia <https://en.wikipedia.org/wiki/Floating-point_arithmetic#Rounding_modes> + + for details on rounding modes. +

    +
    +
    +
    >>> x, y = FPs('x y', FPSort(8, 24))
    +>>> fpMul(RoundNearestTiesToEven(), x, y)
    +fpMul(RNE(), x, y)
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + RNE + + + + ( + + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Round to nearest, with ties broken towards even. +

    +

    + See + + Section 4.2 of the IEEE standard <https://doi.org/10.1109/IEEESTD.2019.8766229> + + or + + wikipedia <https://en.wikipedia.org/wiki/Floating-point_arithmetic#Rounding_modes> + + for details on rounding modes. +

    +
    +
    +
    >>> x, y = FPs('x y', FPSort(8, 24))
    +>>> fpMul(RNE(), x, y)
    +fpMul(RNE(), x, y)
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + RoundNearestTiesToAway + + + + ( + + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Round to nearest, with ties broken away from zero. +

    +

    + See + + Section 4.2 of the IEEE standard <https://doi.org/10.1109/IEEESTD.2019.8766229> + + or + + wikipedia <https://en.wikipedia.org/wiki/Floating-point_arithmetic#Rounding_modes> + + for details on rounding modes. +

    +
    +
    +
    >>> x, y = FPs('x y', FPSort(8, 24))
    +>>> fpMul(RoundNearestTiesToAway(), x, y)
    +fpMul(RNA(), x, y)
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + RNA + + + + ( + + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Round to nearest, with ties broken away from zero. +

    +

    + See + + Section 4.2 of the IEEE standard <https://doi.org/10.1109/IEEESTD.2019.8766229> + + or + + wikipedia <https://en.wikipedia.org/wiki/Floating-point_arithmetic#Rounding_modes> + + for details on rounding modes. +

    +
    +
    +
    >>> x, y = FPs('x y', FPSort(8, 24))
    +>>> fpMul(RNA(), x, y)
    +fpMul(RNA(), x, y)
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + RoundTowardPositive + + + + ( + + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Round towards more positive values. +

    +

    + See + + Section 4.2 of the IEEE standard <https://doi.org/10.1109/IEEESTD.2019.8766229> + + or + + wikipedia <https://en.wikipedia.org/wiki/Floating-point_arithmetic#Rounding_modes> + + for details on rounding modes. +

    +
    +
    +
    >>> x, y = FPs('x y', FPSort(8, 24))
    +>>> fpMul(RoundTowardPositive(), x, y)
    +fpMul(RTP(), x, y)
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + RTP + + + + ( + + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Round towards more positive values. +

    +

    + See + + Section 4.2 of the IEEE standard <https://doi.org/10.1109/IEEESTD.2019.8766229> + + or + + wikipedia <https://en.wikipedia.org/wiki/Floating-point_arithmetic#Rounding_modes> + + for details on rounding modes. +

    +
    +
    +
    >>> x, y = FPs('x y', FPSort(8, 24))
    +>>> fpMul(RTP(), x, y)
    +fpMul(RTP(), x, y)
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + RoundTowardNegative + + + + ( + + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Round towards more negative values. +

    +

    + See + + Section 4.2 of the IEEE standard <https://doi.org/10.1109/IEEESTD.2019.8766229> + + or + + wikipedia <https://en.wikipedia.org/wiki/Floating-point_arithmetic#Rounding_modes> + + for details on rounding modes. +

    +
    +
    +
    >>> x, y = FPs('x y', FPSort(8, 24))
    +>>> fpMul(RoundTowardNegative(), x, y)
    +fpMul(RTN(), x, y)
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + RTN + + + + ( + + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Round towards more negative values. +

    +

    + See + + Section 4.2 of the IEEE standard <https://doi.org/10.1109/IEEESTD.2019.8766229> + + or + + wikipedia <https://en.wikipedia.org/wiki/Floating-point_arithmetic#Rounding_modes> + + for details on rounding modes. +

    +
    +
    +
    >>> x, y = FPs('x y', FPSort(8, 24))
    +>>> fpMul(RTN(), x, y)
    +fpMul(RTN(), x, y)
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + RoundTowardZero + + + + ( + + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Round towards zero. +

    +

    + See + + Section 4.2 of the IEEE standard <https://doi.org/10.1109/IEEESTD.2019.8766229> + + or + + wikipedia <https://en.wikipedia.org/wiki/Floating-point_arithmetic#Rounding_modes> + + for details on rounding modes. +

    +
    +
    +
    >>> x, y = FPs('x y', FPSort(8, 24))
    +>>> fpMul(RoundTowardZero(), x, y)
    +x * y
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + RTZ + + + + ( + + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Round towards zero. +

    +

    + See + + Section 4.2 of the IEEE standard <https://doi.org/10.1109/IEEESTD.2019.8766229> + + or + + wikipedia <https://en.wikipedia.org/wiki/Floating-point_arithmetic#Rounding_modes> + + for details on rounding modes. +

    +
    +
    +
    >>> x, y = FPs('x y', FPSort(8, 24))
    +>>> fpMul(RTZ(), x, y)
    +x * y
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + get_default_rounding_mode + + + + ( + + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Retrieves the global default rounding mode. +

    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + set_default_rounding_mode + + + + ( + + + + + rm + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Set the default rounding mode +

    +
    +
    +
    >>> x, y = FPs('x y', Float32())
    +>>> set_default_rounding_mode(RTN())
    +>>> sum1 = x + y
    +>>> set_default_rounding_mode(RTP())
    +>>> sum2 = x + y
    +>>> print((sum1 == sum2).sexpr())
    +(= (fp.add roundTowardNegative x y) (fp.add roundTowardPositive x y))
    +>>> s = SolverFor("QF_FP")
    +>>> s += sum1 != sum2
    +>>> s.check()
    +sat
    +>>> m = s.model()
    +>>> assert str(m[sum1]) != str(m[sum2])
    +
    +
    +
    +

    + Note the the FP term builders can take an explicit rounding mode. +

    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + get_default_fp_sort + + + + ( + + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + set_default_fp_sort + + + + ( + + + + + ebits + + + + , + + + + sbits + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +
    +
    +
    +
    +

    + Classes (with overloads) + +  + +

    +
    +
    + + + class + + + + + + + cvc5.pythonic. + + + + + FPSortRef + + + + ( + + + + + ast + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Floating-point sort. +

    +
    +
    + + + cast + + + + ( + + + + + val + + + + + ) + + +  + +
    +
    +

    + Try to cast + + val + + as a floating-point expression. +>>> b = FPSort(8, 24) +>>> b.cast(1.0) +1 +>>> b.cast(1.0).sexpr() +‘(fp #b0 #b01111111 #b00000000000000000000000)’ +

    +
    +
    +
    +
    + + + ebits + + + + ( + + + ) + + +  + +
    +
    +

    + Retrieves the number of bits reserved for the exponent in the FloatingPoint sort + + self + + . +>>> b = FPSort(8, 24) +>>> b.ebits() +8 +

    +
    +
    +
    +
    + + + sbits + + + + ( + + + ) + + +  + +
    +
    +

    + Retrieves the number of bits reserved for the significand in the FloatingPoint sort + + self + + . +>>> b = FPSort(8, 24) +>>> b.sbits() +24 +

    +
    +
    +
    +
    +
    +
    + + + class + + + + + + + cvc5.pythonic. + + + + + FPRef + + + + ( + + + + + ast + + + + , + + + + ctx + + + + + = + + + + + None + + + + , + + + + reverse_children + + + + + = + + + + + False + + + + + ) + + +  + +
    +
    +

    + Floating-point expressions. +

    +
    +
    + + + __add__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression + + self + other + + . +

    +
    +
    +
    >>> x = FP('x', FPSort(8, 24))
    +>>> y = FP('y', FPSort(8, 24))
    +>>> x + y
    +x + y
    +>>> (x + y).sort()
    +FPSort(8, 24)
    +
    +
    +
    +
    +
    +
    +
    + + + __div__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression + + self / other + + . +

    +
    +
    +
    >>> x = FP('x', FPSort(8, 24))
    +>>> y = FP('y', FPSort(8, 24))
    +>>> x / y
    +x / y
    +>>> (x / y).sort()
    +FPSort(8, 24)
    +>>> 10 / y
    +1.25*(2**3) / y
    +
    +
    +
    +
    +
    +
    +
    + + + __ge__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Return self>=value. +

    +
    +
    +
    +
    + + + __gt__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Return self>value. +

    +
    +
    +
    +
    + + + __le__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Return self<=value. +

    +
    +
    +
    +
    + + + __lt__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Return self<value. +

    +
    +
    +
    +
    + + + __mod__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression mod + + self % other + + . +

    +
    +
    +
    +
    + + + __mul__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression + + self * other + + . +

    +
    +
    +
    >>> x = FP('x', FPSort(8, 24))
    +>>> y = FP('y', FPSort(8, 24))
    +>>> x * y
    +x * y
    +>>> (x * y).sort()
    +FPSort(8, 24)
    +>>> 10 * y
    +1.25*(2**3) * y
    +
    +
    +
    +
    +
    +
    +
    + + + __neg__ + + + + ( + + + ) + + +  + +
    +
    +

    + Create the SMT expression + + -self + + . +

    +
    +
    +
    >>> x = FP('x', Float32())
    +>>> -x
    +-x
    +
    +
    +
    +
    +
    +
    +
    + + + __pos__ + + + + ( + + + ) + + +  + +
    +
    +

    + Create the SMT expression + + +self + + . +

    +
    +
    +
    +
    + + + __radd__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression + + other + self + + . +

    +
    +
    +
    >>> x = FP('x', FPSort(8, 24))
    +>>> 10 + x
    +1.25*(2**3) + x
    +
    +
    +
    +
    +
    +
    +
    + + + __rdiv__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression + + other / self + + . +

    +
    +
    +
    >>> x = FP('x', FPSort(8, 24))
    +>>> y = FP('y', FPSort(8, 24))
    +>>> x / y
    +x / y
    +>>> x / 10
    +x / 1.25*(2**3)
    +
    +
    +
    +
    +
    +
    +
    + + + __rmod__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression mod + + other % self + + . +

    +
    +
    +
    +
    + + + __rmul__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression + + other * self + + . +

    +
    +
    +
    >>> x = FP('x', FPSort(8, 24))
    +>>> y = FP('y', FPSort(8, 24))
    +>>> x * y
    +x * y
    +>>> x * 10
    +x * 1.25*(2**3)
    +
    +
    +
    +
    +
    +
    +
    + + + __rsub__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression + + other - self + + . +

    +
    +
    +
    >>> x = FP('x', FPSort(8, 24))
    +>>> 10 - x
    +1.25*(2**3) - x
    +
    +
    +
    +
    +
    +
    +
    + + + __rtruediv__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression division + + other / self + + . +

    +
    +
    +
    +
    + + + __sub__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression + + self - other + + . +

    +
    +
    +
    >>> x = FP('x', FPSort(8, 24))
    +>>> y = FP('y', FPSort(8, 24))
    +>>> x - y
    +x - y
    +>>> (x - y).sort()
    +FPSort(8, 24)
    +
    +
    +
    +
    +
    +
    +
    + + + __truediv__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression division + + self / other + + . +

    +
    +
    +
    +
    + + + as_string + + + + ( + + + ) + + +  + +
    +
    +

    + Return a SMT floating point expression as a Python string. +

    +
    +
    +
    +
    + + + ebits + + + + ( + + + ) + + +  + +
    +
    +

    + Retrieves the number of bits reserved for the exponent in the FloatingPoint expression + + self + + . +>>> b = FPSort(8, 24) +>>> b.ebits() +8 +

    +
    +
    +
    +
    + + + sbits + + + + ( + + + ) + + +  + +
    +
    +

    + Retrieves the number of bits reserved for the exponent in the FloatingPoint expression + + self + + . +>>> b = FPSort(8, 24) +>>> b.sbits() +24 +

    +
    +
    +
    +
    + + + sort + + + + ( + + + ) + + +  + +
    +
    +

    + Return the sort of the floating-point expression + + self + + . +

    +
    +
    +
    >>> x = FP('1.0', FPSort(8, 24))
    +>>> x.sort()
    +FPSort(8, 24)
    +>>> x.sort() == FPSort(8, 24)
    +True
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + class + + + + + + + cvc5.pythonic. + + + + + FPNumRef + + + + ( + + + + + ast + + + + , + + + + ctx + + + + + = + + + + + None + + + + , + + + + reverse_children + + + + + = + + + + + False + + + + + ) + + +  + +
    +
    +
    +
    + + + as_string + + + + ( + + + ) + + +  + +
    +
    +

    + The string representation of the numeral. +

    +
    +
    +
    >>> x = FPVal(20, FPSort(8, 24))
    +>>> print(x.as_string())
    +1.25*(2**4)
    +
    +
    +
    +
    +
    +
    +
    + + + exponent + + + + ( + + + + + biased + + + + + = + + + + + True + + + + + ) + + +  + +
    +
    +

    + The exponent of the numeral. +

    +
    +
    +
    >>> x = FPVal(2.5, FPSort(8, 24))
    +>>> x.exponent()
    +1
    +
    +
    +
    +
    +
    +
    +
    + + + exponent_as_long + + + + ( + + + ) + + +  + +
    +
    +

    + The exponent of the numeral as a long. +

    +
    +
    +
    >>> x = FPVal(2.5, FPSort(8, 24))
    +>>> x.exponent_as_long()
    +1
    +
    +
    +
    +
    +
    +
    +
    + + + isInf + + + + ( + + + ) + + +  + +
    +
    +

    + Indicates whether the numeral is +oo or -oo. +

    +
    +
    +
    +
    + + + isNaN + + + + ( + + + ) + + +  + +
    +
    +

    + Indicates whether the numeral is a NaN. +

    +
    +
    +
    +
    + + + isNegative + + + + ( + + + ) + + +  + +
    +
    +

    + Indicates whether the numeral is negative. +

    +
    +
    +
    +
    + + + isNormal + + + + ( + + + ) + + +  + +
    +
    +

    + Indicates whether the numeral is normal. +

    +
    +
    +
    +
    + + + isPositive + + + + ( + + + ) + + +  + +
    +
    +

    + Indicates whether the numeral is positive. +

    +
    +
    +
    +
    + + + isSubnormal + + + + ( + + + ) + + +  + +
    +
    +

    + Indicates whether the numeral is subnormal. +

    +
    +
    +
    +
    + + + isZero + + + + ( + + + ) + + +  + +
    +
    +

    + Indicates whether the numeral is +zero or -zero. +

    +
    +
    +
    +
    + + + sign + + + + ( + + + ) + + +  + +
    +
    +

    + The sign of the numeral. +

    +
    +
    +
    >>> x = FPVal(+1.0, FPSort(8, 24))
    +>>> x.sign()
    +False
    +>>> x = FPVal(-1.0, FPSort(8, 24))
    +>>> x.sign()
    +True
    +
    +
    +
    +
    +
    +
    +
    + + + significand + + + + ( + + + ) + + +  + +
    +
    +

    + The significand of the numeral, as a double +

    +
    +
    +
    >>> x = FPVal(2.5, FPSort(8, 24))
    +>>> x.significand()
    +1.25
    +
    +
    +
    +
    +
    +
    +
    + + + significand_as_long + + + + ( + + + ) + + +  + +
    +
    +

    + The significand of the numeral as a long. +

    +

    + This is missing the 1 +

    +
    +
    +
    >>> x = FPVal(2.5, FPSort(8, 24))
    +>>> x.significand_as_long()
    +2097152
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + class + + + + + + + cvc5.pythonic. + + + + + FPRMRef + + + + ( + + + + + ast + + + + , + + + + ctx + + + + + = + + + + + None + + + + , + + + + reverse_children + + + + + = + + + + + False + + + + + ) + + +  + +
    +
    +

    + Floating-point rounding mode expressions +

    +
    +
    + + + as_string + + + + ( + + + ) + + +  + +
    +
    +

    + Return a SMT floating point expression as a Python string. +

    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/pythonic/internals.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/pythonic/internals.html new file mode 100644 index 0000000000..c149dfa1eb --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/pythonic/internals.html @@ -0,0 +1,786 @@ + + + + + + + + + + + Internals — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Internals + +  + +

    +
    +

    + Testers + +  + +

    +
    +
    + + + cvc5.pythonic. + + + + + is_expr + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + a + + is an SMT expression. +

    +
    +
    +
    >>> a = Int('a')
    +>>> is_expr(a)
    +True
    +>>> is_expr(a + 1)
    +True
    +>>> is_expr(IntSort())
    +False
    +>>> is_expr(1)
    +False
    +>>> is_expr(IntVal(1))
    +True
    +>>> x = Int('x')
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + is_sort + + + + ( + + + + + s + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + s + + is an SMT sort. +

    +
    +
    +
    >>> is_sort(IntSort())
    +True
    +>>> is_sort(Int('x'))
    +False
    +>>> is_expr(Int('x'))
    +True
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + is_app + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + a + + is an SMT function application. +

    +

    + Note that, constants are function applications with 0 arguments. +

    +
    +
    +
    >>> a = Int('a')
    +>>> is_app(a)
    +True
    +>>> is_app(a + 1)
    +True
    +>>> is_app(IntSort())
    +False
    +>>> is_app(1)
    +False
    +>>> is_app(IntVal(1))
    +True
    +>>> x = Int('x')
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + is_app_of + + + + ( + + + + + a + + + + , + + + + k + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + a + + is an application of the given kind + + k + + . +

    +
    +
    +
    >>> x = Int('x')
    +>>> n = x + 1
    +>>> is_app_of(n, Kind.ADD)
    +True
    +>>> is_app_of(n, Kind.MULT)
    +False
    +
    +
    +
    +
    +
    +
    +
    +

    + Exceptions + +  + +

    +
    +
    + + + class + + + + + + + cvc5.pythonic. + + + + + SMTException + + + + ( + + + + + value + + + + + ) + + +  + +
    +
    +
    +
    + + + __init__ + + + + ( + + + + + value + + + + + ) + + +  + +
    +
    +
    +
    +
    +
    + + + __str__ + + + + ( + + + ) + + +  + +
    +
    +

    + Return str(self). +

    +
    +
    +
    +
    + + + __weakref__ + + + +  + +
    +
    +

    + list of weak references to the object (if defined) +

    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/pythonic/pythonic.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/pythonic/pythonic.html new file mode 100644 index 0000000000..b6095455b0 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/pythonic/pythonic.html @@ -0,0 +1,844 @@ + + + + + + + + + + + Pythonic API — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Pythonic API + +  + +

    +

    + This API is missing some features from cvc5 and Z3Py. +

    +

    + It does not (currently) support these cvc5 features: +

    +
      +
    • +

      + The theory of bags +

      +
    • +
    • +

      + unsatisfiable cores +

      +
    • +
    • +

      + syntax-guided synthesis (SyGuS) +

      +
    • +
    +

    + It does not (currently) support the following features of Z3Py: +

    +
      +
    • +

      + Patterns for quantifier instantiation +

      +
    • +
    • +

      + Pseudo-boolean counting constraints: AtMost, AtLeast, … +

      +
    • +
    • +

      + Special relation classes: PartialOrder, LinearOrder, … +

      +
    • +
    • +

      + HTML integration +

      +
    • +
    • +

      + Hooks for user-defined propagation and probing +

      +
    • +
    • +

      + Fixedpoint API +

      +
    • +
    • +

      + Finite domains +

      +
    • +
    • +

      + SMT2 file parsing +

      +
    • +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/pythonic/quant.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/pythonic/quant.html new file mode 100644 index 0000000000..4428b869e4 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/pythonic/quant.html @@ -0,0 +1,1166 @@ + + + + + + + + + + + Quantifiers — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Quantifiers + +  + +

    +
    +

    + Builders + +  + +

    +
    +
    + + + cvc5.pythonic. + + + + + ForAll + + + + ( + + + + + vs + + + + , + + + + body + + + + + ) + + +  + +
    +
    +

    + Create a forall formula. +

    +
    +
    +
    >>> f = Function('f', IntSort(), IntSort(), IntSort())
    +>>> x = Int('x')
    +>>> y = Int('y')
    +>>> ForAll([x, y], f(x, y) >= x)
    +ForAll([x, y], f(x, y) >= x)
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Exists + + + + ( + + + + + vs + + + + , + + + + body + + + + + ) + + +  + +
    +
    +

    + Create a exists formula. +

    +
    +
    +
    >>> f = Function('f', IntSort(), IntSort(), IntSort())
    +>>> x = Int('x')
    +>>> y = Int('y')
    +>>> q = Exists([x, y], f(x, y) >= x)
    +>>> q
    +Exists([x, y], f(x, y) >= x)
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Lambda + + + + ( + + + + + vs + + + + , + + + + body + + + + + ) + + +  + +
    +
    +

    + Create a lambda expression. +

    +
    +
    +
    >>> f = Function('f', IntSort(), IntSort(), IntSort())
    +>>> mem0 = Array('mem0', IntSort(), IntSort())
    +>>> lo, hi, e, i = Ints('lo hi e i')
    +>>> mem1 = Lambda([i], If(And(lo <= i, i <= hi), e, mem0[i]))
    +>>> mem1
    +Lambda(i, If(And(lo <= i, i <= hi), e, mem0[i]))
    +
    +
    +
    +
    +
    +
    +
    +

    + Testers + +  + +

    +
    +
    + + + cvc5.pythonic. + + + + + is_var + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + a + + is bound variable. +

    +
    +
    +
    >>> x = Int('x')
    +>>> is_var(x)
    +False
    +>>> is_const(x)
    +True
    +>>> is_var(BoolSort())
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + is_quantifier + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + a + + is an SMT quantifier, including lambda expressions. +

    +
    +
    +
    >>> f = Function('f', IntSort(), IntSort())
    +>>> x = Int('x')
    +>>> q = ForAll(x, f(x) == 0)
    +>>> p = Lambda(x, f(x) == 0)
    +>>> is_quantifier(q)
    +True
    +>>> is_quantifier(p)
    +True
    +>>> is_quantifier(f(x))
    +False
    +
    +
    +
    +
    +
    +
    +
    +

    + Classes + +  + +

    +
    +
    + + + class + + + + + + + cvc5.pythonic. + + + + + QuantifierRef + + + + ( + + + + + ast + + + + , + + + + ctx + + + + + = + + + + + None + + + + , + + + + reverse_children + + + + + = + + + + + False + + + + + ) + + +  + +
    +
    +

    + Universally and Existentially quantified formulas. +

    +
    +
    + + + as_ast + + + + ( + + + ) + + +  + +
    +
    +

    + Return a pointer to the underlying Term object. +

    +
    +
    +
    +
    + + + body + + + + ( + + + ) + + +  + +
    +
    +

    + Return the expression being quantified. +

    +
    +
    +
    >>> f = Function('f', IntSort(), IntSort())
    +>>> x = Int('x')
    +>>> q = ForAll(x, f(x) == 0)
    +>>> q.body()
    +f(x) == 0
    +
    +
    +
    +
    +
    +
    +
    + + + children + + + + ( + + + ) + + +  + +
    +
    +

    + Return a list containing a single element self.body() +

    +
    +
    +
    >>> f = Function('f', IntSort(), IntSort())
    +>>> x = Int('x')
    +>>> q = ForAll(x, f(x) == 0)
    +>>> q.children()
    +[f(x) == 0]
    +
    +
    +
    +
    +
    +
    +
    + + + is_exists + + + + ( + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + self + + is an existential quantifier. +

    +
    +
    +
    >>> f = Function('f', IntSort(), IntSort())
    +>>> x = Int('x')
    +>>> q = ForAll(x, f(x) == 0)
    +>>> q.is_exists()
    +False
    +>>> q = Exists(x, f(x) != 0)
    +>>> q.is_exists()
    +True
    +
    +
    +
    +
    +
    +
    +
    + + + is_forall + + + + ( + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + self + + is a universal quantifier. +

    +
    +
    +
    >>> f = Function('f', IntSort(), IntSort())
    +>>> x = Int('x')
    +>>> q = ForAll(x, f(x) == 0)
    +>>> q.is_forall()
    +True
    +>>> q = Exists(x, f(x) != 0)
    +>>> q.is_forall()
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + is_lambda + + + + ( + + + ) + + +  + +
    +
    +

    + Return + + True + + if + + self + + is a lambda expression. +

    +
    +
    +
    >>> f = Function('f', IntSort(), IntSort())
    +>>> x = Int('x')
    +>>> q = Lambda(x, f(x))
    +>>> q.is_lambda()
    +True
    +>>> q = Exists(x, f(x) != 0)
    +>>> q.is_lambda()
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + num_vars + + + + ( + + + ) + + +  + +
    +
    +

    + Return the number of variables bounded by this quantifier. +

    +
    +
    +
    >>> f = Function('f', IntSort(), IntSort(), IntSort())
    +>>> x = Int('x')
    +>>> y = Int('y')
    +>>> q = ForAll([x, y], f(x, y) >= x)
    +>>> q.num_vars()
    +2
    +
    +
    +
    +
    +
    +
    +
    + + + sort + + + + ( + + + ) + + +  + +
    +
    +

    + Return the Boolean sort +

    +
    +
    +
    +
    + + + var_name + + + + ( + + + + + idx + + + + + ) + + +  + +
    +
    +

    + Return a string representing a name used when displaying the quantifier. +

    +
    +
    +
    >>> f = Function('f', IntSort(), IntSort(), IntSort())
    +>>> x = Int('x')
    +>>> y = Int('y')
    +>>> q = ForAll([x, y], f(x, y) >= x)
    +>>> q.var_name(0)
    +'x'
    +>>> q.var_name(1)
    +'y'
    +
    +
    +
    +
    +
    +
    +
    + + + var_sort + + + + ( + + + + + idx + + + + + ) + + +  + +
    +
    +

    + Return the sort of a bound variable. +

    +
    +
    +
    >>> f = Function('f', IntSort(), RealSort(), IntSort())
    +>>> x = Int('x')
    +>>> y = Real('y')
    +>>> q = ForAll([x, y], f(x, y) >= x)
    +>>> q.var_sort(0)
    +Int
    +>>> q.var_sort(1)
    +Real
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/pythonic/quickstart.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/pythonic/quickstart.html new file mode 100644 index 0000000000..01dcc60ac0 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/pythonic/quickstart.html @@ -0,0 +1,1398 @@ + + + + + + + + + + + Quickstart Guide — cvc5 documentation + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Quickstart Guide + +  + +

    +

    + First, we create two constants + + + x + + + and + + + y + + + of sort + + + Real + + + , +and two constants + + + a + + + and + + + b + + + of sort + + + Integer + + + . +Notice that these are + + symbolic + + constants, but not actual values. +

    +
    +
    +
    x, y = Reals('x y')
    +a, b = Ints('a b')
    +
    +
    +
    +

    + We define the following constraints regarding + + + x + + + and + + + y + + + : +

    +
    + \[(0 < x) \wedge (0 < y) \wedge (x + y < 1) \wedge (x \leq y)\] +
    +

    + We check whether there is a solution to these constraints: +

    +
    +
    +
    solve(0 < x, 0 < y, x + y < 1, x <= y)
    +
    +
    +
    +

    + In this case, there is, so we get output: +

    +
    +
    +
    [x = 1/6, y = 1/6]
    +
    +
    +
    +

    + We can also get an explicit model (assignment) for the constraints. +

    +
    +
    +
    s = Solver()
    +s.add(0 < x, 0 < y, x + y < 1, x <= y)
    +assert sat == s.check()
    +m = s.model()
    +
    +
    +
    +

    + With the model, we can evaluate variables and terms: +

    +
    +
    +
    print('x:', m[x])
    +print('y:', m[y])
    +print('x - y:', m[x - y])
    +
    +
    +
    +

    + This will print: +

    +
    +
    +
    x: 1/6
    +y: 1/6
    +x - y: 0
    +
    +
    +
    +

    + We can also get these values in other forms: +

    +
    +
    +
    print('string x:', str(m[x]))
    +print('decimal x:', m[x].as_decimal(4))
    +print('fraction x:', m[x].as_fraction())
    +print('float x:', float(m[x].as_fraction()))
    +
    +
    +
    +

    + Next, we assert the same assertions as above, but with integers. +This time, there is no solution, so “no solution” is printed. +

    +
    +
    +
    solve(0 < a, 0 < b, a + b < 1, a <= b)
    +
    +
    +
    +
    +

    + Example + +  + +

    +
    +
    + + + + + +
    +
    +

    + + examples/api/python/quickstart.py + +

    +
    +
    +
      1#!/usr/bin/env python
    +  2###############################################################################
    +  3# Top contributors (to current version):
    +  4#   Yoni Zohar, Aina Niemetz, Alex Ozdemir
    +  5#
    +  6# This file is part of the cvc5 project.
    +  7#
    +  8# Copyright (c) 2009-2024 by the authors listed in the file AUTHORS
    +  9# in the top-level source directory and their institutional affiliations.
    + 10# All rights reserved.  See the file COPYING in the top-level source
    + 11# directory for licensing information.
    + 12# #############################################################################
    + 13#
    + 14# A simple demonstration of the api capabilities of cvc5, adapted from quickstart.cpp
    + 15##
    + 16
    + 17import cvc5
    + 18from cvc5 import Kind
    + 19
    + 20if __name__ == "__main__":
    + 21  # Create a term manager
    + 22  #! [docs-python-quickstart-0 start]
    + 23  tm = cvc5.TermManager()
    + 24  #! [docs-python-quickstart-0 end]
    + 25  # Create a solver
    + 26  #! [docs-python-quickstart-1 start]
    + 27  solver = cvc5.Solver(tm)
    + 28  #! [docs-python-quickstart-1 end]
    + 29
    + 30  # We will ask the solver to produce models and unsat cores,
    + 31  # hence these options should be turned on.
    + 32  #! [docs-python-quickstart-2 start]
    + 33  solver.setOption("produce-models", "true")
    + 34  solver.setOption("produce-unsat-cores", "true")
    + 35  #! [docs-python-quickstart-2 end]
    + 36
    + 37  # The simplest way to set a logic for the solver is to choose "ALL".
    + 38  # This enables all logics in the solver.
    + 39  # Alternatively, "QF_ALL" enables all logics without quantifiers.
    + 40  # To optimize the solver's behavior for a more specific logic,
    + 41  # use the logic name, e.g. "QF_BV" or "QF_AUFBV".
    + 42
    + 43  # Set the logic
    + 44  #! [docs-python-quickstart-3 start]
    + 45  solver.setLogic("ALL")
    + 46  #! [docs-python-quickstart-3 end]
    + 47
    + 48  # In this example, we will define constraints over reals and integers.
    + 49  # Hence, we first obtain the corresponding sorts.
    + 50  #! [docs-python-quickstart-4 start]
    + 51  realSort = tm.getRealSort()
    + 52  intSort = tm.getIntegerSort()
    + 53  #! [docs-python-quickstart-4 end]
    + 54
    + 55  # x and y will be real variables, while a and b will be integer variables.
    + 56  # Formally, their python type is Term,
    + 57  # and they are called "constants" in SMT jargon:
    + 58  #! [docs-python-quickstart-5 start]
    + 59  x = tm.mkConst(realSort, "x")
    + 60  y = tm.mkConst(realSort, "y")
    + 61  a = tm.mkConst(intSort, "a")
    + 62  b = tm.mkConst(intSort, "b")
    + 63  #! [docs-python-quickstart-5 end]
    + 64
    + 65  # Our constraints regarding x and y will be:
    + 66  #
    + 67  #   (1)  0 < x
    + 68  #   (2)  0 < y
    + 69  #   (3)  x + y < 1
    + 70  #   (4)  x <= y
    + 71  #
    + 72
    + 73  #! [docs-python-quickstart-6 start]
    + 74  # Formally, constraints are also terms. Their sort is Boolean.
    + 75  # We will construct these constraints gradually,
    + 76  # by defining each of their components.
    + 77  # We start with the constant numerals 0 and 1:
    + 78  zero = tm.mkReal(0)
    + 79  one = tm.mkReal(1)
    + 80
    + 81  # Next, we construct the term x + y
    + 82  xPlusY = tm.mkTerm(Kind.ADD, x, y)
    + 83
    + 84  # Now we can define the constraints.
    + 85  # They use the operators +, <=, and <.
    + 86  # In the API, these are denoted by Plus, Leq, and Lt.
    + 87  constraint1 = tm.mkTerm(Kind.LT, zero, x)
    + 88  constraint2 = tm.mkTerm(Kind.LT, zero, y)
    + 89  constraint3 = tm.mkTerm(Kind.LT, xPlusY, one)
    + 90  constraint4 = tm.mkTerm(Kind.LEQ, x, y)
    + 91
    + 92  # Now we assert the constraints to the solver.
    + 93  solver.assertFormula(constraint1)
    + 94  solver.assertFormula(constraint2)
    + 95  solver.assertFormula(constraint3)
    + 96  solver.assertFormula(constraint4)
    + 97  #! [docs-python-quickstart-6 end]
    + 98
    + 99  # Check if the formula is satisfiable, that is,
    +100  # are there real values for x and y that satisfy all the constraints?
    +101  #! [docs-python-quickstart-7 start]
    +102  r1 = solver.checkSat()
    +103  #! [docs-python-quickstart-7 end]
    +104
    +105  # The result is either SAT, UNSAT, or UNKNOWN.
    +106  # In this case, it is SAT.
    +107  #! [docs-python-quickstart-8 start]
    +108  print("expected: sat")
    +109  print("result: ", r1)
    +110  #! [docs-python-quickstart-8 end]
    +111
    +112  # We can get the values for x and y that satisfy the constraints.
    +113  #! [docs-python-quickstart-9 start]
    +114  xVal = solver.getValue(x)
    +115  yVal = solver.getValue(y)
    +116  #! [docs-python-quickstart-9 end]
    +117
    +118  # It is also possible to get values for compound terms,
    +119  # even if those did not appear in the original formula.
    +120  #! [docs-python-quickstart-10 start]
    +121  xMinusY = tm.mkTerm(Kind.SUB, x, y)
    +122  xMinusYVal = solver.getValue(xMinusY)
    +123  #! [docs-python-quickstart-10 end]
    +124
    +125  # We can now obtain the values as python values
    +126  #! [docs-python-quickstart-11 start]
    +127  xPy = xVal.getRealValue()
    +128  yPy = yVal.getRealValue()
    +129  xMinusYPy = xMinusYVal.getRealValue()
    +130
    +131  print("value for x: ", xPy)
    +132  print("value for y: ", yPy)
    +133  print("value for x - y: ", xMinusYPy)
    +134  #! [docs-python-quickstart-11 end]
    +135
    +136  # Another way to independently compute the value of x - y would be
    +137  # to use the python minus operator instead of asking the solver.
    +138  # However, for more complex terms,
    +139  # it is easier to let the solver do the evaluation.
    +140  #! [docs-python-quickstart-12 start]
    +141  xMinusYComputed = xPy - yPy
    +142  if xMinusYComputed == xMinusYPy:
    +143    print("computed correctly")
    +144  else:
    +145    print("computed incorrectly")
    +146  #! [docs-python-quickstart-12 end]
    +147
    +148  # Further, we can convert the values to strings
    +149  #! [docs-python-quickstart-13 start]
    +150  xStr = str(xPy)
    +151  yStr = str(yPy)
    +152  xMinusYStr = str(xMinusYPy)
    +153  #! [docs-python-quickstart-13 end]
    +154
    +155  # Next, we will check satisfiability of the same formula,
    +156  # only this time over integer variables a and b.
    +157
    +158  # We start by resetting assertions added to the solver.
    +159  #! [docs-python-quickstart-14 start]
    +160  solver.resetAssertions()
    +161  #! [docs-python-quickstart-14 end]
    +162
    +163  # Next, we assert the same assertions above with integers.
    +164  # This time, we inline the construction of terms
    +165  # to the assertion command.
    +166  #! [docs-python-quickstart-15 start]
    +167  solver.assertFormula(tm.mkTerm(Kind.LT, tm.mkInteger(0), a))
    +168  solver.assertFormula(tm.mkTerm(Kind.LT, tm.mkInteger(0), b))
    +169  solver.assertFormula(
    +170      tm.mkTerm(
    +171          Kind.LT, tm.mkTerm(Kind.ADD, a, b), tm.mkInteger(1)))
    +172  solver.assertFormula(tm.mkTerm(Kind.LEQ, a, b))
    +173  #! [docs-python-quickstart-15 end]
    +174
    +175  # We check whether the revised assertion is satisfiable.
    +176  #! [docs-python-quickstart-16 start]
    +177  r2 = solver.checkSat()
    +178  #! [docs-python-quickstart-16 end]
    +179
    +180  # This time the formula is unsatisfiable
    +181  #! [docs-python-quickstart-17 start]
    +182  print("expected: unsat")
    +183  print("result:", r2)
    +184  #! [docs-python-quickstart-17 end]
    +185
    +186  # We can query the solver for an unsatisfiable core, i.e., a subset
    +187  # of the assertions that is already unsatisfiable.
    +188  #! [docs-python-quickstart-18 start]
    +189  unsatCore = solver.getUnsatCore()
    +190  print("unsat core size:", len(unsatCore))
    +191  print("unsat core:", unsatCore)
    +192  #! [docs-python-quickstart-18 end]
    +
    +
    +
    +
    + + + + +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/pythonic/sequence.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/pythonic/sequence.html new file mode 100644 index 0000000000..1d8f9692a7 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/pythonic/sequence.html @@ -0,0 +1,1173 @@ + + + + + + + + + + + Sequences — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Sequences + +  + +

    +
    +

    + Basic Sequence Term Builders + +  + +

    +
    +
    + + + cvc5.pythonic. + + + + + SeqSort + + + + ( + + + + + s + + + + + ) + + +  + +
    +
    +

    + Create a sequence sort over elements provided in the argument +>>> s = SeqSort(IntSort()) +>>> s == Unit(IntVal(1)).sort() +True +

    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Unit + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Create a singleton sequence +

    +
    +
    +
    >>> i = Unit(IntVal(1))
    +>>> i.sort()
    +(Seq Int)
    +
    +
    +
    +
    +
    +
    +
    +

    + Sequence Operators + +  + +

    +
    +
    + + + cvc5.pythonic. + + + + + Empty + + + + ( + + + + + s + + + + + ) + + +  + +
    +
    +

    + Create the empty sequence of the given sort +

    +
    +
    +
    >>> e = Empty(StringSort())
    +>>> e2 = StringVal("")
    +>>> print(e.eq(e2))
    +True
    +>>> e3 = Empty(SeqSort(IntSort()))
    +>>> print(e3)
    +(as seq.empty (Seq Int))()
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Length + + + + ( + + + + + s + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + obtain the length of a string or sequence s +

    +
    +
    +
    >>> s = StringVal('s')
    +>>> l = Length(s)
    +>>> simplify(l)
    +1
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + SubSeq + + + + ( + + + + + s + + + + , + + + + offset + + + + , + + + + length + + + + + ) + + +  + +
    +
    +

    + Extract subsequence starting at offset +

    +
    +
    +
    >>> seq = Concat(Unit(IntVal(1)),Unit(IntVal(2)))
    +>>> simplify(SubSeq(seq,1,1))
    +(seq.unit 2)()
    +>>> simplify(SubSeq(seq,1,0))
    +(as seq.empty (Seq Int))()
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + SeqUpdate + + + + ( + + + + + s + + + + , + + + + t + + + + , + + + + i + + + + + ) + + +  + +
    +
    +

    + Update a sequence s by replacing its content starting at index i with sequence t. +

    +
    +
    +
    >>> lst = Unit(IntVal(1)) + Unit(IntVal(2)) + Unit(IntVal(3))
    +>>> simplify(lst)
    +(seq.++ (seq.unit 1) (seq.unit 2) (seq.unit 3))()
    +>>> simplify(SeqUpdate(lst,Unit(IntVal(4)),2))
    +(seq.++ (seq.unit 1) (seq.unit 2) (seq.unit 4))()
    +>>> simplify(SeqUpdate(lst,Unit(IntVal(1)),4))
    +(seq.++ (seq.unit 1) (seq.unit 2) (seq.unit 3))()
    +
    +
    +
    +
    +
    +

    + See the following operator overload for sequence terms: +

    + +
    +
    +

    + Classes (with overloads) + +  + +

    +
    +
    + + + class + + + + + + + cvc5.pythonic. + + + + + SeqSortRef + + + + ( + + + + + ast + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +
    +
    + + + elem_sort + + + + ( + + + ) + + +  + +
    +
    +

    + Get the element sort for this sequence +

    +
    +
    +
    >>> SeqSort(IntSort()).elem_sort()
    +Int
    +>>> SeqSort(SeqSort(IntSort())).elem_sort()
    +(Seq Int)
    +
    +
    +
    +
    +
    +
    +
    + + + is_string + + + + ( + + + ) + + +  + +
    +
    +

    + Determine if sort is a string +

    +
    +
    +
    >>> s = StringSort()
    +>>> s.is_string()
    +True
    +>>> s = SeqSort(IntSort())
    +>>> s.is_string()
    +False
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + class + + + + + + + cvc5.pythonic. + + + + + SeqRef + + + + ( + + + + + ast + + + + , + + + + ctx + + + + + = + + + + + None + + + + , + + + + reverse_children + + + + + = + + + + + False + + + + + ) + + +  + +
    +
    +

    + Sequence Expressions +

    +
    +
    + + + __add__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Concatenation of two sequences. +

    +
    +
    +
    >>> s,t = Consts('s t',SeqSort(RealSort()))
    +>>> s+t
    +Concat(s, t)
    +>>> (s+t).sort()
    +(Seq Real)
    +
    +
    +
    +
    +
    +
    +
    + + + __getitem__ + + + + ( + + + + + i + + + + + ) + + +  + +
    +
    +

    + Return the SMT expression + + self[arg] + +

    +
    +
    +
    >>> seq = Const('seq',SeqSort(IntSort()))
    +>>> seq[0]
    +seq [] 0
    +>>> seq[0].sort()
    +Int
    +
    +
    +
    +
    +
    +
    +
    + + + as_string + + + + ( + + + ) + + +  + +
    +
    +

    + Return a string representation of sequence expression. +

    +
    +
    +
    >>> s = Unit(IntVal(1)) + Unit(IntVal(2))
    +>>> s.as_string()
    +'(seq.++ (seq.unit 1) (seq.unit 2))'
    +>>> x = Unit(RealVal(1.5))
    +>>> print(x.as_string())
    +(seq.unit (/ 3 2))
    +
    +
    +
    +
    +
    +
    +
    + + + at + + + + ( + + + + + i + + + + + ) + + +  + +
    +
    +

    + Return the sequence at index i +

    +
    +
    +
    >>> seq = Const('seq',SeqSort(IntSort()))
    +>>> seq.at(0)
    +At(seq, 0)
    +>>> seq.at(0).sort()
    +(Seq Int)
    +
    +
    +
    +
    +
    +
    +
    + + + is_string_value + + + + ( + + + ) + + +  + +
    +
    +

    + Return True if self is a string value +

    +
    +
    +
    >>> s = String('s')
    +>>> s.is_string_value()
    +False
    +>>> t = StringVal('t')
    +>>> t.is_string_value()
    +True
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/pythonic/set.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/pythonic/set.html new file mode 100644 index 0000000000..4ca1c0a817 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/pythonic/set.html @@ -0,0 +1,1593 @@ + + + + + + + + + + + Sets — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Sets + +  + +

    +
    +

    + Basic Set Term Builders + +  + +

    +
    +
    + + + cvc5.pythonic. + + + + + SetSort + + + + ( + + + + + s + + + + + ) + + +  + +
    +
    +

    + Create a set sort over element sort s +

    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Set + + + + ( + + + + + name + + + + , + + + + elem_sort + + + + + ) + + +  + +
    +
    +

    + Creates a symbolic set of elements +

    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + EmptySet + + + + ( + + + + + s + + + + + ) + + +  + +
    +
    +

    + Create the empty set +

    +
    +
    +
    >>> EmptySet(IntSort())
    +Empty(Set(Int))
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Singleton + + + + ( + + + + + s + + + + + ) + + +  + +
    +
    +

    + The single element set of just e +

    +
    +
    +
    >>> Singleton(IntVal(1))
    +Singleton(1)
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + FullSet + + + + ( + + + + + s + + + + + ) + + +  + +
    +
    +

    + Create the full set +

    +
    +
    +
    >>> FullSet(IntSort())
    +Full(Set(Int))
    +
    +
    +
    +
    +
    +
    +
    +

    + Set Operators + +  + +

    +
    +
    + + + cvc5.pythonic. + + + + + SetUnion + + + + ( + + + + + * + + + + + args + + + + + ) + + +  + +
    +
    +

    + Take the union of sets +

    +
    +
    +
    >>> a = Const('a', SetSort(IntSort()))
    +>>> b = Const('b', SetSort(IntSort()))
    +>>> SetUnion(a, b)
    +SetUnion(a, b)
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + SetIntersect + + + + ( + + + + + * + + + + + args + + + + + ) + + +  + +
    +
    +

    + Take the intersection of sets +

    +
    +
    +
    >>> a = Const('a', SetSort(IntSort()))
    +>>> b = Const('b', SetSort(IntSort()))
    +>>> SetIntersect(a, b)
    +SetIntersect(a, b)
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + SetAdd + + + + ( + + + + + s + + + + , + + + + e + + + + + ) + + +  + +
    +
    +

    + Add element e to set s +

    +
    +
    +
    >>> a = Const('a', SetSort(IntSort()))
    +>>> SetAdd(a, 1)
    +SetAdd(a, 1)
    +>>> SetAdd(a, 1).arg(0)
    +a
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + SetDel + + + + ( + + + + + s + + + + , + + + + e + + + + + ) + + +  + +
    +
    +

    + Remove element e to set s +

    +
    +
    +
    >>> a = Const('a', SetSort(IntSort()))
    +>>> SetDel(a, 1)
    +SetDifference(a, Singleton(1))
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + SetComplement + + + + ( + + + + + s + + + + + ) + + +  + +
    +
    +

    + The complement of set s +

    +
    +
    +
    >>> a = Const('a', SetSort(IntSort()))
    +>>> SetComplement(a)
    +SetComplement(a)
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + SetDifference + + + + ( + + + + + a + + + + , + + + + b + + + + + ) + + +  + +
    +
    +

    + The set difference of a and b +

    +
    +
    +
    >>> a = Const('a', SetSort(IntSort()))
    +>>> b = Const('b', SetSort(IntSort()))
    +>>> SetDifference(a, b)
    +SetDifference(a, b)
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + SetMinus + + + + ( + + + + + a + + + + , + + + + b + + + + + ) + + +  + +
    +
    +

    + The set difference of a and b +

    +
    +
    +
    >>> a = Const('a', SetSort(IntSort()))
    +>>> b = Const('b', SetSort(IntSort()))
    +>>> SetMinus(a, b)
    +SetDifference(a, b)
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + IsMember + + + + ( + + + + + e + + + + , + + + + s + + + + + ) + + +  + +
    +
    +

    + Check if e is a member of set s +

    +
    +
    +
    >>> a = Const('a', SetSort(IntSort()))
    +>>> IsMember(1, a)
    +IsMember(1, a)
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + IsSubset + + + + ( + + + + + a + + + + , + + + + b + + + + + ) + + +  + +
    +
    +

    + Check if a is a subset of b +

    +
    +
    +
    >>> a = Const('a', SetSort(IntSort()))
    +>>> b = Const('b', SetSort(IntSort()))
    +>>> IsSubset(a, b)
    +IsSubset(a, b)
    +
    +
    +
    +
    +
    +

    + See the following operator overload for set terms: +

    + +
    +
    +

    + Classes (with overloads) + +  + +

    +
    +
    + + + class + + + + + + + cvc5.pythonic. + + + + + SetSortRef + + + + ( + + + + + ast + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Array sorts. +

    +
    +
    + + + domain + + + + ( + + + ) + + +  + +
    +
    +

    + Return the domain of the set sort + + self + + . +

    +
    +
    +
    >>> A = SetSort(IntSort())
    +>>> A.domain()
    +Int
    +
    +
    +
    +
    +
    +
    +
    + + + range + + + + ( + + + ) + + +  + +
    +
    +

    + Return the “range” of the set sort + + self + + . +Included for compatibility with arrays. +

    +
    +
    +
    >>> A = SetSort(IntSort())
    +>>> A.range()
    +Bool
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + class + + + + + + + cvc5.pythonic. + + + + + SetRef + + + + ( + + + + + ast + + + + , + + + + ctx + + + + + = + + + + + None + + + + , + + + + reverse_children + + + + + = + + + + + False + + + + + ) + + +  + +
    +
    +

    + Array expressions. +

    +
    +
    + + + __and__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Intersection +

    +
    +
    +
    >>> a = Const('a', SetSort(IntSort()))
    +>>> b = Const('b', SetSort(IntSort()))
    +>>> a & b
    +SetIntersect(a, b)
    +
    +
    +
    +
    +
    +
    +
    + + + __getitem__ + + + + ( + + + + + arg + + + + + ) + + +  + +
    +
    +

    + Return the SMT expression + + self[arg] + + . +Included for compatibility with arrays. +

    +
    +
    +
    >>> a = Set('a', IntSort())
    +>>> i = Int('i')
    +>>> a[i]
    +IsMember(i, a)
    +
    +
    +
    +
    +
    +
    +
    + + + __or__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Union +

    +
    +
    +
    >>> a = Const('a', SetSort(IntSort()))
    +>>> b = Const('b', SetSort(IntSort()))
    +>>> a | b
    +SetUnion(a, b)
    +
    +
    +
    +
    +
    +
    +
    + + + default + + + + ( + + + ) + + +  + +
    +
    +

    + Always returns false. +

    +

    + Included for compatibility with Arrays. +

    +
    +
    +
    >>> Set('a', IntSort()).default()
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + domain + + + + ( + + + ) + + +  + +
    +
    +

    + Shorthand for + + self.sort().domain() + + . +

    +
    +
    +
    >>> a = Set('a', IntSort())
    +>>> a.domain()
    +Int
    +
    +
    +
    +
    +
    +
    +
    + + + range + + + + ( + + + ) + + +  + +
    +
    +

    + Shorthand for + + self.sort().range() + + . +Included for compatibility with arrays. +

    +
    +
    +
    >>> a = Set('a', IntSort())
    +>>> a.range()
    +Bool
    +
    +
    +
    +
    +
    +
    +
    + + + sort + + + + ( + + + ) + + +  + +
    +
    +

    + Return the set sort of the set expression + + self + + . +

    +
    +
    +
    >>> a = Set('a', IntSort())
    +>>> a.sort()
    +Set(Int)
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/pythonic/solver.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/pythonic/solver.html new file mode 100644 index 0000000000..f8d00d66cb --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/pythonic/solver.html @@ -0,0 +1,3280 @@ + + + + + + + + + + + Solvers & Results — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Solvers & Results + +  + +

    +
    +

    + Simple Solving + +  + +

    +
    +
    + + + cvc5.pythonic. + + + + + solve + + + + ( + + + + + * + + + + + args + + + + , + + + + ** + + + + + kwargs + + + + + ) + + +  + +
    +
    +

    + Solve the constraints + + *args + + . +

    +

    + This is a simple function for creating demonstrations. It creates a solver, +configure it using the options in + + kwargs + + , adds the constraints +in + + args + + , and invokes check. +

    +
    +
    +
    >>> a = Int('a')
    +>>> solve(a > 0, a < 2)
    +[a = 1]
    +>>> solve(a > 0, a < 2, show=True)
    +Problem:
    +[a > 0, a < 2]
    +Solution:
    +[a = 1]
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + solve_using + + + + ( + + + + + s + + + + , + + + + * + + + + + args + + + + , + + + + ** + + + + + kwargs + + + + + ) + + +  + +
    +
    +

    + Solve the constraints + + *args + + using solver + + s + + . +

    +

    + This is a simple function for creating demonstrations. +It is similar to + + solve + + , but it uses the given solver + + s + + . +It configures solver + + s + + using the options in + + kwargs + + , +adds the constraints in + + args + + , and invokes check. +

    +
    +
    +
    >>> a = Int('a')
    +>>> s = Solver()
    +>>> solve_using(s, a > 0, a < 2)
    +[a = 1]
    +>>> solve_using(s, a != 1, show=True)
    +Problem:
    +[a > 0, a < 2, a != 1]
    +no solution
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + prove + + + + ( + + + + + claim + + + + , + + + + ** + + + + + keywords + + + + + ) + + +  + +
    +
    +

    + Try to prove the given claim. +

    +

    + This is a simple function for creating demonstrations. It tries to prove + + claim + + by showing the negation is unsatisfiable. +

    +
    +
    +
    >>> p, q = Bools('p q')
    +>>> prove(Not(And(p, q)) == Or(Not(p), Not(q)))
    +proved
    +>>> prove(p == True)
    +counterexample
    +[p = False]
    +>>> prove(p == True, show=True)
    +[Not(p == True)]
    +counterexample
    +[p = False]
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + is_tautology + + + + ( + + + + + taut + + + + + ) + + +  + +
    +
    +

    + Return whether these constraints hold + + for all assignments + + . +

    +

    + Prints nothing. +

    +
    +
    +
    >>> p, q = Bools('p q')
    +>>> is_tautology(Not(And(p, q)) == Or(Not(p), Not(q)))
    +True
    +
    +
    +
    +
    +
    +
    +
    +

    + The Solver Class + +  + +

    +
    +
    + + + cvc5.pythonic. + + + + + SolverFor + + + + ( + + + + + logic + + + + , + + + + ctx + + + + + = + + + + + None + + + + , + + + + logFile + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Create a solver customized for the given logic. +

    +

    + The parameter + + logic + + is a string. It should be the name of an SMT-LIB +logic. +See + + https://smtlib.cs.uiowa.edu/ + + for the name of all available logics. +

    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + SimpleSolver + + + + ( + + + + + ctx + + + + + = + + + + + None + + + + , + + + + logFile + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Return a simple general purpose solver. +

    +
    +
    +
    >>> s = SimpleSolver()
    +>>> x = Int('x')
    +>>> s.add(x > 0)
    +>>> s.check()
    +sat
    +
    +
    +
    +
    +
    +
    +
    + + + class + + + + + + + cvc5.pythonic. + + + + + Solver + + + + ( + + + + + logic + + + + + = + + + + + None + + + + , + + + + ctx + + + + + = + + + + + None + + + + , + + + + logFile + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Solver API provides methods for implementing the main SMT 2.0 commands: +

    +
      +
    • +

      + push, +

      +
    • +
    • +

      + pop, +

      +
    • +
    • +

      + check, +

      +
    • +
    • +

      + get-model, +

      +
    • +
    • +

      + etc. +

      +
    • +
    +
    +
    + + + __iadd__ + + + + ( + + + + + fml + + + + + ) + + +  + +
    +
    +

    + Assert constraints into the solver. +

    +
    +
    +
    >>> x = Int('x')
    +>>> s = Solver()
    +>>> s += x > 0
    +>>> s += x < 2
    +>>> s
    +[x > 0, x < 2]
    +
    +
    +
    +
    +
    +
    +
    + + + __init__ + + + + ( + + + + + logic + + + + + = + + + + + None + + + + , + + + + ctx + + + + + = + + + + + None + + + + , + + + + logFile + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +
    +
    +
    +
    + + + __repr__ + + + + ( + + + ) + + +  + +
    +
    +

    + Return a formatted string with all added constraints. +

    +
    +
    +
    +
    + + + __weakref__ + + + +  + +
    +
    +

    + list of weak references to the object (if defined) +

    +
    +
    +
    +
    + + + add + + + + ( + + + + + * + + + + + args + + + + + ) + + +  + +
    +
    +

    + Assert constraints into the solver. +

    +
    +
    +
    >>> x = Int('x')
    +>>> s = Solver()
    +>>> s.add(x > 0, x < 2)
    +>>> s
    +[x > 0, x < 2]
    +
    +
    +
    +
    +
    +
    +
    + + + append + + + + ( + + + + + * + + + + + args + + + + + ) + + +  + +
    +
    +

    + Assert constraints into the solver. +

    +
    +
    +
    >>> x = Int('x')
    +>>> s = Solver()
    +>>> s.append(x > 0, x < 2)
    +>>> s
    +[x > 0, x < 2]
    +
    +
    +
    +
    +
    +
    +
    + + + assert_exprs + + + + ( + + + + + * + + + + + args + + + + + ) + + +  + +
    +
    +

    + Assert constraints into the solver. +

    +
    +
    +
    >>> x = Int('x')
    +>>> s = Solver()
    +>>> s.assert_exprs(x > 0, x < 2)
    +>>> s
    +[x > 0, x < 2]
    +
    +
    +
    +
    +
    +
    +
    + + + assertions + + + + ( + + + ) + + +  + +
    +
    +

    + Return an AST vector containing all added constraints. +

    +
    +
    +
    >>> s = Solver()
    +>>> s.assertions()
    +[]
    +>>> a = Int('a')
    +>>> s.add(a > 0)
    +>>> s.add(a < 10)
    +>>> s.assertions()
    +[a > 0, a < 10]
    +
    +
    +
    +
    +
    +
    +
    + + + check + + + + ( + + + + + * + + + + + assumptions + + + + + ) + + +  + +
    +
    +

    + Check whether the assertions in the given solver plus the optional +assumptions are consistent or not. +

    +
    +
    +
    >>> x = Int('x')
    +>>> s = Solver()
    +>>> s.check()
    +sat
    +>>> s.add(x > 0, x < 2)
    +>>> s.check()
    +sat
    +>>> s.model().eval(x)
    +1
    +>>> s.add(x < 1)
    +>>> s.check()
    +unsat
    +>>> s.resetAssertions()
    +
    +
    +
    +
    +
    +
    +
    + + + getOption + + + + ( + + + + + name + + + + + ) + + +  + +
    +
    +

    + Get the current value of an option from the solver. The value is +returned as a string. For type-safe querying use + + + getOptionInfo() + + + . +

    +
    +
    +
    >>> s = Solver()
    +>>> s.setOption(incremental=True)
    +>>> s.getOption("incremental")
    +'true'
    +
    +
    +
    +
    +
    +
    +
    + + + getOptionInfo + + + + ( + + + + + name + + + + + ) + + +  + +
    +
    +

    + Get the current value of an option from the solver. The value is +returned as a string. For type-safe querying use + + + getOptionInfo() + + + . +

    +
    +
    +
    >>> s = Solver()
    +>>> s.setOption(incremental=False)
    +>>> s.getOptionInfo("incremental")
    +{'name': 'incremental', 'aliases': [], 'setByUser': True, 'type': <class 'bool'>, 'current': False, 'default': True}
    +
    +
    +
    +
    +
    +
    +
    + + + getOptionNames + + + + ( + + + ) + + +  + +
    +
    +

    + Get all option names that can be used with + + + getOption() + + + , + + + setOption() + + + and + + + getOptionInfo() + + + . +

    +
    +
    +
    >>> s = Solver()
    +>>> s.getOptionNames()[:2]
    +['abstract-values', 'ackermann']
    +
    +
    +
    +
    +
    +
    +
    + + + initFromLogic + + + + ( + + + ) + + +  + +
    +
    +

    + Create the base-API solver from the logic +

    +
    +
    +
    +
    + + + insert + + + + ( + + + + + * + + + + + args + + + + + ) + + +  + +
    +
    +

    + Assert constraints into the solver. +

    +
    +
    +
    >>> x = Int('x')
    +>>> s = Solver()
    +>>> s.insert(x > 0, x < 2)
    +>>> s
    +[x > 0, x < 2]
    +
    +
    +
    +
    +
    +
    +
    + + + model + + + + ( + + + ) + + +  + +
    +
    +

    + Return a model for the last + + check() + + . +

    +

    + This function raises an exception if +a model is not available (e.g., last + + check() + + returned unsat). +

    +
    +
    +
    >>> s = Solver()
    +>>> a = Int('a')
    +>>> s.add(a + 2 == 0)
    +>>> s.check()
    +sat
    +>>> s.model()
    +[a = -2]
    +
    +
    +
    +
    +
    +
    +
    + + + num_scopes + + + + ( + + + ) + + +  + +
    +
    +

    + Return the current number of backtracking points. +

    +
    +
    +
    >>> s = Solver()
    +>>> s.num_scopes()
    +0
    +>>> s.push()
    +>>> s.num_scopes()
    +1
    +>>> s.push()
    +>>> s.num_scopes()
    +2
    +>>> s.pop()
    +>>> s.num_scopes()
    +1
    +
    +
    +
    +
    +
    +
    +
    + + + pop + + + + ( + + + + + num + + + + + = + + + + + 1 + + + + + ) + + +  + +
    +
    +

    + Backtrack num backtracking points. +

    +
    +
    +
    >>> x = Int('x')
    +>>> s = Solver()
    +>>> s.add(x > 0)
    +>>> s
    +[x > 0]
    +>>> s.push()
    +>>> s.add(x < 1)
    +>>> s
    +[x > 0, x < 1]
    +>>> s.check()
    +unsat
    +>>> s.pop()
    +>>> s.check()
    +sat
    +>>> s
    +[x > 0]
    +
    +
    +
    +
    +
    +
    +
    + + + proof + + + + ( + + + ) + + +  + +
    +
    +

    + Return a proof for the last + + check() + + . +

    +

    + This function raises an exception if +a proof is not available (e.g., last + + check() + + does not return unsat). +

    +
    +
    +
    >>> s = Solver()
    +>>> s.set('produce-proofs','true')
    +>>> a = Int('a')
    +>>> s.add(a + 2 == 0)
    +>>> s.check()
    +sat
    +>>> try:
    +...   s.proof()
    +... except RuntimeError:
    +...   print("failed to get proof (last `check()` must have returned unsat)")
    +failed to get proof (last `check()` must have returned unsat)
    +>>> s.add(a == 0)
    +>>> s.check()
    +unsat
    +>>> s.proof()
    +(SCOPE: Not(And(a + 2 == 0, a == 0)),
    + (SCOPE: Not(And(a + 2 == 0, a == 0)),
    +  [a + 2 == 0, a == 0],
    +  (EQ_RESOLVE: False,
    +   (ASSUME: a == 0, [a == 0]),
    +   (MACRO_SR_EQ_INTRO: (a == 0) == False,
    +    [a == 0, 7, 12],
    +    (EQ_RESOLVE: a == -2,
    +     (ASSUME: a + 2 == 0, [a + 2 == 0]),
    +     (MACRO_SR_EQ_INTRO: (a + 2 == 0) == (a == -2),
    +      [a + 2 == 0, 7, 12]))))))
    +
    +
    +
    +
    +
    +
    +
    + + + push + + + + ( + + + ) + + +  + +
    +
    +

    + Create a backtracking point. +

    +
    +
    +
    >>> x = Int('x')
    +>>> s = Solver()
    +>>> s.add(x > 0)
    +>>> s
    +[x > 0]
    +>>> s.push()
    +>>> s.add(x < 1)
    +>>> s
    +[x > 0, x < 1]
    +>>> s.check()
    +unsat
    +>>> s.pop()
    +>>> s.check()
    +sat
    +>>> s
    +[x > 0]
    +
    +
    +
    +
    +
    +
    +
    + + + reason_unknown + + + + ( + + + ) + + +  + +
    +
    +

    + Return a string describing why the last + + check() + + returned + + unknown + + . +

    +
    +
    +
    >>> x = Int('x')
    +>>> s = SimpleSolver()
    +
    +
    +
    +
    +
    +
    +
    + + + reset + + + + ( + + + ) + + +  + +
    +
    +

    + Fully reset the solver. This actually destroys the solver object in +the context and recreates this. + + This invalidates all objects created +within this context and using them will most likely crash. + +

    +
    +
    +
    >>> s = Solver()
    +>>> x = Int('x')
    +>>> s.add(x > 0)
    +>>> s.check()
    +sat
    +>>> s.reset()
    +>>> s.setOption(incremental=True)
    +
    +
    +
    +
    +
    +
    +
    + + + resetAssertions + + + + ( + + + ) + + +  + +
    +
    +

    + Remove all asserted constraints and backtracking points created +using + + push() + + . +

    +
    +
    +
    >>> x = Int('x')
    +>>> s = Solver()
    +>>> s.add(x > 0)
    +>>> s
    +[x > 0]
    +>>> s.resetAssertions()
    +>>> s
    +[]
    +
    +
    +
    +
    +
    +
    +
    + + + set + + + + ( + + + + + * + + + + + args + + + + , + + + + ** + + + + + kwargs + + + + + ) + + +  + +
    +
    +

    + Set an option on the solver. Wraps + + + setOption() + + + . +

    +
    +
    +
    >>> s = Solver()
    +>>> s.set(incremental=True)
    +>>> s.set('incremental', 'true')
    +
    +
    +
    +
    +
    +
    +
    + + + setOption + + + + ( + + + + + name + + + + + = + + + + + None + + + + , + + + + value + + + + + = + + + + + None + + + + , + + + + ** + + + + + kwargs + + + + + ) + + +  + +
    +
    +

    + Set options on the solver. Options can either be set via the + + + name + + + and + + + value + + + arguments in the form + + + setOption('foo', + + + 'bar') + + + , or as +keyword arguments using the syntax + + + setOption(foo='bar') + + + . +The option value is passed as a string internally. Boolean values are +properly converted manually, all other types are convertes using + + + str() + + + . +

    +
    +
    +
    >>> s = Solver()
    +>>> s.setOption('incremental', True)
    +>>> s.setOption(incremental='true')
    +
    +
    +
    +
    +
    +
    +
    + + + sexpr + + + + ( + + + ) + + +  + +
    +
    +

    + Return a formatted string (in Lisp-like format) with all added +constraints. We say the string is in s-expression format. +

    +
    +
    +
    >>> x = Int('x')
    +>>> s = Solver()
    +>>> s.add(x > 0)
    +>>> s.add(x < 2)
    +>>> r = s.sexpr()
    +
    +
    +
    +
    +
    +
    +
    + + + statistics + + + + ( + + + ) + + +  + +
    +
    +

    + Return the statistics of this solver. +

    +
    +
    +
    >>> c = Context()
    +>>> s = Solver(ctx=c)
    +>>> a = Int('a', c)
    +>>> s.add(a == 0)
    +>>> s.check()
    +sat
    +>>> stats = s.statistics()
    +>>> stats['cvc5::CONSTANT']
    +{'default': True, 'internal': False, 'value': {}}
    +>>> len(stats.get()) < 10
    +True
    +>>> len(stats.get(True, True)) > 30
    +True
    +
    +
    +
    +
    +
    +
    +
    + + + unsat_core + + + + ( + + + ) + + +  + +
    +
    +

    + Return a subset (as a list of Bool expressions) of the +assertions and assumptions provided to the last check(). +

    +

    + To enable this, set the option “produce-unsat-cores” to true. +

    +
    +
    +
    >>> a,b,c = Bools('a b c')
    +>>> s = Solver()
    +>>> s.set('produce-unsat-cores','true')
    +>>> s.add(Or(a,b),Or(b,c),Not(c))
    +>>> s.check(a,b,c)
    +unsat
    +>>> core = s.unsat_core()
    +>>> a in core
    +False
    +>>> b in core
    +False
    +>>> c in core
    +True
    +>>> s.check(a,b)
    +sat
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    + Results & Models + +  + +

    +
    +
    + + + cvc5.pythonic. + + + + + unsat + + + +  + +
    +
    +

    + An + + UNSAT + + result. +

    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + sat + + + +  + +
    +
    +

    + A + + SAT + + result. +

    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + unknown + + + +  + +
    +
    +

    + The satisfiability could not be determined. +

    +
    +
    +
    +
    + + + class + + + + + + + cvc5.pythonic. + + + + + CheckSatResult + + + + ( + + + + + r + + + + + ) + + +  + +
    +
    +

    + Represents the result of a satisfiability check: sat, unsat, unknown. +

    +
    +
    +
    >>> s = Solver()
    +>>> s.check()
    +sat
    +>>> r = s.check()
    +>>> isinstance(r, CheckSatResult)
    +True
    +
    +
    +
    +
    +
    + + + __eq__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Return self==value. +

    +
    +
    +
    +
    + + + __hash__ + + + + + + + + = + + + + + + None + + + +  + +
    +
    +
    +
    +
    +
    + + + __init__ + + + + ( + + + + + r + + + + + ) + + +  + +
    +
    +
    +
    +
    +
    + + + __ne__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Return self!=value. +

    +
    +
    +
    +
    + + + __repr__ + + + + ( + + + ) + + +  + +
    +
    +

    + Return repr(self). +

    +
    +
    +
    +
    + + + __weakref__ + + + +  + +
    +
    +

    + list of weak references to the object (if defined) +

    +
    +
    +
    +
    +
    +
    + + + class + + + + + + + cvc5.pythonic. + + + + + ModelRef + + + + ( + + + + + solver + + + + + ) + + +  + +
    +
    +

    + Model/Solution of a satisfiability problem (aka system of constraints). +

    +
    +
    + + + __getitem__ + + + + ( + + + + + idx + + + + + ) + + +  + +
    +
    +

    + If + + idx + + is an integer, +then the declaration at position + + idx + + in the model + + self + + is returned. +If + + idx + + is a declaration, then the actual interpretation is returned. +

    +

    + The elements can be retrieved using position or the actual declaration. +

    +
    +
    +
    >>> f = Function('f', IntSort(), IntSort())
    +>>> x = Int('x')
    +>>> s = Solver()
    +>>> s.add(x > 0, x < 2, f(x) == 0)
    +>>> s.check()
    +sat
    +>>> m = s.model()
    +>>> m.decls()
    +[f, x]
    +>>> len(m)
    +2
    +>>> m[0]
    +f
    +>>> m[1]
    +x
    +>>> m[x]
    +1
    +
    +
    +
    +
    +
    +
    +
    + + + __init__ + + + + ( + + + + + solver + + + + + ) + + +  + +
    +
    +
    +
    +
    +
    + + + __len__ + + + + ( + + + ) + + +  + +
    +
    +

    + Return the number of constant and function declarations in the model + + self + + . +

    +
    +
    +
    >>> f = Function('f', IntSort(), IntSort())
    +>>> x = Int('x')
    +>>> s = Solver()
    +>>> s.add(x > 0, f(x) != x)
    +>>> s.check()
    +sat
    +>>> m = s.model()
    +>>> len(m)
    +2
    +
    +
    +
    +
    +
    +
    +
    + + + __repr__ + + + + ( + + + ) + + +  + +
    +
    +

    + Return repr(self). +

    +
    +
    +
    +
    + + + __weakref__ + + + +  + +
    +
    +

    + list of weak references to the object (if defined) +

    +
    +
    +
    +
    + + + decls + + + + ( + + + ) + + +  + +
    +
    +

    + Return a list with all symbols that have an interpretation in the +model + + self + + . +

    +
    +
    +
    >>> f = Function('f', IntSort(), IntSort())
    +>>> x = Int('x')
    +>>> s = Solver()
    +>>> s.add(x > 0, x < 2, f(x) == 0)
    +>>> s.check()
    +sat
    +>>> m = s.model()
    +>>> m.decls()
    +[f, x]
    +
    +
    +
    +
    +
    +
    +
    + + + eval + + + + ( + + + + + t + + + + , + + + + model_completion + + + + + = + + + + + False + + + + + ) + + +  + +
    +
    +

    + Evaluate the expression + + t + + in the model + + self + + . If + + model_completion + + is enabled, then a default interpretation is +automatically added for symbols that do not have an interpretation in +the model + + self + + . +

    +
    +
    +
    >>> x = Int('x')
    +>>> s = Solver()
    +>>> s.add(x > 0, x < 2)
    +>>> s.check()
    +sat
    +>>> m = s.model()
    +>>> m.eval(x + 1)
    +2
    +>>> m.eval(x == 1)
    +True
    +
    +
    +
    +
    +
    +
    +
    + + + evaluate + + + + ( + + + + + t + + + + , + + + + model_completion + + + + + = + + + + + False + + + + + ) + + +  + +
    +
    +

    + Alias for + + eval + + . +

    +
    +
    +
    >>> x = Int('x')
    +>>> s = Solver()
    +>>> s.add(x > 0, x < 2)
    +>>> s.check()
    +sat
    +>>> m = s.model()
    +>>> m.evaluate(x + 1)
    +2
    +>>> m.evaluate(x == 1)
    +True
    +
    +
    +
    +
    +
    +
    +
    + + + vars + + + + ( + + + ) + + +  + +
    +
    +

    + Returns the free constants in an assertion, as terms +

    +
    +
    +
    +
    +
    +
    +

    + Utilities + +  + +

    +
    +
    + + + cvc5.pythonic. + + + + + evaluate + + + + ( + + + + + t + + + + + ) + + +  + +
    +
    +

    + Evaluates the given term (assuming it is constant!) +

    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + simplify + + + + ( + + + + + a + + + + + ) + + +  + +
    +
    +

    + Simplify the expression + + a + + . +

    +
    +
    +
    >>> x = Int('x')
    +>>> y = Int('y')
    +>>> simplify(x + 1 + y + x + 1)
    +2 + 2*x + y
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + substitute + + + + ( + + + + + t + + + + , + + + + * + + + + + m + + + + + ) + + +  + +
    +
    +

    + Apply substitution m on t, m is a list of pairs of the form (from, to). +Every occurrence in t of from is replaced with to. +

    +
    +
    +
    >>> x = Int('x')
    +>>> y = Int('y')
    +>>> f = Function('f', IntSort(), IntSort())
    +>>> substitute(f(x) + f(y), (f(x), IntVal(1)), (f(y), IntVal(1)))
    +1 + 1
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Sum + + + + ( + + + + + * + + + + + args + + + + + ) + + +  + +
    +
    +

    + Create the sum of the SMT expressions. +

    +
    +
    +
    >>> a, b, c = Ints('a b c')
    +>>> Sum(a, b, c)
    +a + b + c
    +>>> Sum([a, b, c])
    +a + b + c
    +>>> A = IntVector('a', 5)
    +>>> Sum(A)
    +a__0 + a__1 + a__2 + a__3 + a__4
    +>>> Sum()
    +0
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Product + + + + ( + + + + + * + + + + + args + + + + + ) + + +  + +
    +
    +

    + Create the product of the SMT expressions. +

    +
    +
    +
    >>> a, b, c = Ints('a b c')
    +>>> Product(a, b, c)
    +a*b*c
    +>>> Product([a, b, c])
    +a*b*c
    +>>> A = IntVector('a', 5)
    +>>> Product(A)
    +a__0*a__1*a__2*a__3*a__4
    +>>> Product()
    +1
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/pythonic/string.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/pythonic/string.html new file mode 100644 index 0000000000..9b9ec345f2 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/api/python/pythonic/string.html @@ -0,0 +1,2586 @@ + + + + + + + + + + + Strings — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Strings + +  + +

    +
    +

    + Basic String Term Builders + +  + +

    +
    +
    + + + cvc5.pythonic. + + + + + StringSort + + + + ( + + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Return the string sort in the given context. If + + ctx=None + + , then the global context is used. +

    +
    +
    +
    >>> StringSort()
    +String
    +>>> a = Const('a', StringSort())
    +>>> a.sort() == StringSort()
    +True
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + String + + + + ( + + + + + name + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Return a string constant named + + name + + . If + + ctx=None + + , then the global context is used. +

    +
    +
    +
    >>> s = String('s')
    +>>> s.sort()
    +String
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Strings + + + + ( + + + + + names + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Return a tuple of string constants. +

    +
    +
    +
    >>> x, y, z = Strings('x y z')
    +>>> Concat(x,y,z)
    ++(x, y, z)
    +>>> Concat(x,y,z).sort()
    +String
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + StringVal + + + + ( + + + + + val + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Return an SMT String value. +

    +
    +
    + + val + + is a string value +
    +
    +

    + If + + ctx=None + + , then the global context is used. +

    +
    +
    +
    +
    +
    >>> StringVal('hello')
    +"hello"
    +>>> StringVal('hello').sort()
    +String
    +
    +
    +
    +
    +
    +
    +
    +

    + String Operators + +  + +

    +
    +
    + + + cvc5.pythonic. + + + + + Length + + + + ( + + + + + s + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + obtain the length of a string or sequence s +

    +
    +
    +
    >>> s = StringVal('s')
    +>>> l = Length(s)
    +>>> simplify(l)
    +1
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + SubString + + + + ( + + + + + s + + + + , + + + + offset + + + + , + + + + length + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Extract substring starting at offset of size length +

    +
    +
    +
    >>> simplify(SubString('hello',3,2))
    +"lo"
    +>>> simplify(SubString(StringVal('hello'),3,2))
    +"lo"
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Contains + + + + ( + + + + + a + + + + , + + + + b + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + check if a contains b +

    +
    +
    +
    >>> simplify(Contains('ab','a'))
    +True
    +>>> a,b,c = Strings("a b c")
    +>>> s = Contains(a+b+c,b)
    +>>> simplify(s)
    +True
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + PrefixOf + + + + ( + + + + + a + + + + , + + + + b + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + check if a is a prefix of b +

    +
    +
    +
    >>> s1 = PrefixOf("ab","abc")
    +>>> simplify(s1)
    +True
    +>>> s2 = PrefixOf("bc","abc")
    +>>> simplify(s2)
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + SuffixOf + + + + ( + + + + + a + + + + , + + + + b + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + check if a is a suffix of b +

    +
    +
    +
    >>> s1 = SuffixOf("ab","abc")
    +>>> simplify(s1)
    +False
    +>>> s2 = SuffixOf("bc","abc")
    +>>> simplify(s2)
    +True
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + IndexOf + + + + ( + + + + + s + + + + , + + + + substr + + + + , + + + + offset + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + retrieves the index of substr in s starting at offset, if offset is missing retrieves the first occurence +

    +
    +
    +
    >>> simplify(IndexOf("abcabc", "bc"))
    +1
    +>>> simplify(IndexOf("abcabc", "bc", 0))
    +1
    +>>> simplify(IndexOf("abcabc", "bc", 2))
    +4
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Replace + + + + ( + + + + + s + + + + , + + + + src + + + + , + + + + dst + + + + + ) + + +  + +
    +
    +

    + Replace the first occurence of src with dst in s +

    +
    +
    +
    >>> simplify(Replace('hello','l','?'))
    +"he?lo"
    +>>> seq = Concat(Unit(IntVal(1)),Unit(IntVal(2)))
    +>>> seq
    +Concat(Unit(1), Unit(2))
    +>>> simplify(Replace(seq,Unit(IntVal(1)),Unit(IntVal(5))))
    +(seq.++ (seq.unit 5) (seq.unit 2))()
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + StrToInt + + + + ( + + + + + s + + + + + ) + + +  + +
    +
    +

    + Convert string expression to int +

    +
    +
    +
    >>> a = StrToInt('1')
    +>>> simplify(a==1)
    +True
    +>>> b = StrToInt('123')
    +>>> simplify(b)
    +123
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + IntToStr + + + + ( + + + + + s + + + + + ) + + +  + +
    +
    +

    + Convert integer expression to string +

    +
    +
    +
    >>> b = IntToStr(55)
    +>>> simplify(b)
    +"55"
    +>>> b = IntToStr(-5)
    +>>> simplify(b)
    +""
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + StrToCode + + + + ( + + + + + s + + + + + ) + + +  + +
    +
    +

    + Convert a unit length string to integer code +

    +
    +
    +
    >>> simplify(StrToCode('a'))
    +97
    +>>> simplify(StrToCode('*'))
    +42
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + StrFromCode + + + + ( + + + + + c + + + + + ) + + +  + +
    +
    +

    + Convert code to a string +

    +
    +
    +
    >>> a = StrFromCode(97)
    +>>> simplify(a == 'a')
    +True
    +
    +
    +
    +
    +
    +

    + See the following operator overload for string terms: +

    + +
    +
    +

    + Basic Regular Expression Term Builders + +  + +

    +
    +
    + + + cvc5.pythonic. + + + + + Re + + + + ( + + + + + s + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + The regular expression that accepts the string s +

    +
    +
    +
    >>> re = Re('a')
    +>>> simplify(InRe('a',re))
    +True
    +>>> simplify(InRe('b',re))
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Full + + + + ( + + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Create the regular expression that accepts the universal language +

    +
    +
    +
    >>> e = Full()
    +>>> print(e)
    +Full()
    +>>> s = String('s')
    +>>> simplify(InRe(s,e))
    +True
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Option + + + + ( + + + + + re + + + + + ) + + +  + +
    +
    +

    + Create the regular expression that optionally accepts the argument. +

    +
    +
    +
    >>> re = Option(Re("a"))
    +>>> print(simplify(InRe("a", re)))
    +True
    +>>> print(simplify(InRe("", re)))
    +True
    +>>> print(simplify(InRe("aa", re)))
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Range + + + + ( + + + + + lo + + + + , + + + + hi + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Create the range regular expression over two sequences of length 1 +

    +
    +
    +
    >>> range = Range("a","z")
    +>>> print(simplify(InRe("b", range)))
    +True
    +>>> print(simplify(InRe("bb", range)))
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + AllChar + + + + ( + + + ) + + +  + +
    +
    +

    + Create a regular expression that accepts all single character strings +

    +
    +
    +
    >>> re = AllChar()
    +>>> simplify(InRe('a',re))
    +True
    +>>> simplify(InRe('',re))
    +False
    +>>> simplify(InRe('ab',re))
    +False
    +
    +
    +
    +
    +
    +
    +
    +

    + Regular Expression Operators + +  + +

    +
    +
    + + + cvc5.pythonic. + + + + + InRe + + + + ( + + + + + s + + + + , + + + + re + + + + + ) + + +  + +
    +
    +

    + Create regular expression membership test +

    +
    +
    +
    >>> re = Union(Re("a"),Re("b"))
    +>>> print (simplify(InRe("a", re)))
    +True
    +>>> print (simplify(InRe("b", re)))
    +True
    +>>> print (simplify(InRe("c", re)))
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Union + + + + ( + + + + + * + + + + + args + + + + + ) + + +  + +
    +
    +

    + create union of regular expressions +

    +
    +
    +
    >>> re = Union(Re("a"), Re("b"), Re("c"))
    +>>> simplify(InRe('a',re))
    +True
    +>>> print (simplify(InRe("d", re)))
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Intersect + + + + ( + + + + + * + + + + + args + + + + + ) + + +  + +
    +
    +

    + Create intersection of regular expressions. +

    +
    +
    +
    >>> re = Intersect(Re("a"), Re("b"), Re("c"))
    +>>> simplify(InRe('',re))
    +False
    +>>> re2 = Intersect(Star(Re("a")), Star(Re("b")), Star(Re("c")))
    +>>> simplify(InRe('',re2))
    +True
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Complement + + + + ( + + + + + re + + + + + ) + + +  + +
    +
    +

    + Create the complement regular expression. +

    +
    +
    +
    >>> re = Re('a')
    +>>> comp_re = Complement(re)
    +>>> simplify(InRe('a',comp_re))
    +False
    +>>> simplify(InRe('aa',comp_re))
    +True
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Plus + + + + ( + + + + + re + + + + + ) + + +  + +
    +
    +

    + Create the regular expression accepting one or more repetitions of argument. +

    +
    +
    +
    >>> re = Plus(Re("a"))
    +>>> print(simplify(InRe("aa", re)))
    +True
    +>>> print(simplify(InRe("ab", re)))
    +False
    +>>> print(simplify(InRe("", re)))
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Star + + + + ( + + + + + re + + + + + ) + + +  + +
    +
    +

    + Create the regular expression accepting zero or more repetitions of argument. +

    +
    +
    +
    >>> re = Star(Re("a"))
    +>>> print(simplify(InRe("aa", re)))
    +True
    +>>> print(simplify(InRe("ab", re)))
    +False
    +>>> print(simplify(InRe("", re)))
    +True
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Loop + + + + ( + + + + + re + + + + , + + + + lo + + + + , + + + + hi + + + + + = + + + + + 0 + + + + + ) + + +  + +
    +
    +

    + Create the regular expression accepting between a lower and upper bound repetitions +

    +
    +
    +
    >>> re = Loop(Re("a"), 1, 3)
    +>>> print(simplify(InRe("aa", re)))
    +True
    +>>> print(simplify(InRe("aaaa", re)))
    +False
    +>>> print(simplify(InRe("", re)))
    +False
    +
    +
    +
    +
    +
    +
    +
    + + + cvc5.pythonic. + + + + + Diff + + + + ( + + + + + a + + + + , + + + + b + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + Create the difference regular expression +

    +
    +
    +
    >>> r1 = Re('a')
    +>>> r2 = Re('a') + Re('b')
    +>>> simplify(InRe('a',Diff(r2,r1)))
    +False
    +>>> simplify(InRe('b',Diff(r2,r1)))
    +True
    +
    +
    +
    +
    +
    +
    +
    +

    + Classes (with overloads) + +  + +

    +
    +
    + + + class + + + + + + + cvc5.pythonic. + + + + + StringSortRef + + + + ( + + + + + ast + + + + , + + + + ctx + + + + + = + + + + + None + + + + + ) + + +  + +
    +
    +

    + String sort. +

    +
    +
    + + + cast + + + + ( + + + + + val + + + + + ) + + +  + +
    +
    +

    + Try to cast + + val + + as a String. +

    +
    +
    +
    >>> string_sort = StringSort()
    +>>> string_sort.cast(10)
    +"10"
    +>>> string_sort.cast('hello')
    +"hello"
    +>>> string_sort.cast(10.5)
    +"10.5"
    +>>> string_sort.cast(RealVal(1.5))
    +"3/2"
    +>>> string_sort.cast(RealVal(1.5)).sort()
    +String
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + class + + + + + + + cvc5.pythonic. + + + + + StringRef + + + + ( + + + + + ast + + + + , + + + + ctx + + + + + = + + + + + None + + + + , + + + + reverse_children + + + + + = + + + + + False + + + + + ) + + +  + +
    +
    +

    + String expressions +

    +
    +
    + + + __ge__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression + + other <= self + + based on a lexiographic ordering. +

    +
    +
    +
    >>> s,t = Strings('s t')
    +>>> s >= t
    +t <= s
    +
    +
    +
    +
    +
    +
    +
    + + + __getitem__ + + + + ( + + + + + i + + + + + ) + + +  + +
    +
    +

    + Return string character at i +

    +
    +
    +
    >>> StringVal("hello")[0]
    +At("hello", 0)
    +>>> simplify(StringVal("hello")[0])
    +"h"
    +
    +
    +
    +
    +
    +
    +
    + + + __gt__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression + + other < self + + based on a lexiographic ordering. +

    +
    +
    +
    >>> s,t = Strings('s t')
    +>>> s > t
    +t < s
    +
    +
    +
    +
    +
    +
    +
    + + + __le__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression + + self <= other + + based on a lexiographic ordering. +

    +
    +
    +
    >>> s,t = Strings('s t')
    +>>> s <= t
    +s <= t
    +
    +
    +
    +
    +
    +
    +
    + + + __lt__ + + + + ( + + + + + other + + + + + ) + + +  + +
    +
    +

    + Create the SMT expression + + self < other + + based on a lexiographic ordering. +

    +
    +
    +
    >>> s,t = Strings('s t')
    +>>> s < t
    +s < t
    +
    +
    +
    +
    +
    +
    +
    + + + at + + + + ( + + + + + i + + + + + ) + + +  + +
    +
    +

    + Return the sequence at index i +

    +
    +
    +
    >>> seq = Const('seq',SeqSort(IntSort()))
    +>>> seq.at(0)
    +At(seq, 0)
    +>>> seq.at(0).sort()
    +(Seq Int)
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/binary/binary.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/binary/binary.html new file mode 100644 index 0000000000..43cac742d4 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/binary/binary.html @@ -0,0 +1,321 @@ + + + + + + + + + + + Binary Documentation — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    +
      +
    • + + +
    • + +
    • +
    • +
    +
    +
    +
    +
    +
    +

    + Binary Documentation + +  + +

    +

    + The easiest way to use cvc5 is usually to invoke the cvc5 binary via the command line. +The + + + quickstart guide + + + gives a short introduction on how to use cvc5 via the SMT-LIBv2 +interface. +

    +

    + The cvc5 binary supports the following input languages: +

    + +

    + Alternatively, cvc5 features + + + several APIs + + + for different programming languages. +

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/binary/quickstart.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/binary/quickstart.html new file mode 100644 index 0000000000..b7f1f53b60 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/binary/quickstart.html @@ -0,0 +1,1445 @@ + + + + + + + + + + + Quickstart Guide — cvc5 documentation + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Quickstart Guide + +  + +

    +

    + The primary input language for cvc5 is + + SMT-LIB v2 + + . +We give a short explanation of the SMT-LIB v2 quickstart +example here. +

    +

    + First, we set the logic. +The simplest way to set a logic for the solver is to choose “ALL”. +This enables all logics in the solver. +Alternatively, + + + "QF_ALL" + + + enables all logics without quantifiers. +To optimize the solver’s behavior for a more specific logic, +use the logic name, e.g. + + + "QF_BV" + + + or + + + "QF_AUFBV" + + + . +

    +
    +
    +
    (set-logic ALL)
    +
    +
    +
    +

    + We will ask the solver to produce models and unsat cores in the following, +and for this we have to enable the following options. +Furthermore, we enable incremental solving so that we can use the + + + (reset-assertions) + + + command later on. +

    +
    +
    +
    (set-option :produce-models true)
    +(set-option :incremental true)
    +; print unsat cores, include assertions in the unsat core that have not been named
    +(set-option :produce-unsat-cores true)
    +(set-option :print-cores-full true)
    +
    +
    +
    +

    + Now, we create two constants + + + x + + + and + + + y + + + of sort + + + Real + + + . +Notice that these are + + symbolic + + constants, but not actual values. +

    +
    +
    +
    ; Declare real constants x,y
    +(declare-const x Real)
    +(declare-const y Real)
    +
    +
    +
    +

    + We define the following constraints regarding + + + x + + + and + + + y + + + : +

    +
    + \[(0 < x) \wedge (0 < y) \wedge (x + y < 1) \wedge (x \leq y)\] +
    +

    + We assert them as follows. Notice that in SMT-LIB v2, terms are written in prefix notation, e.g., we write + + (+ x y) + + instead of + + (x + y) + + . +

    +
    +
    +
    ; Our constraints regarding x and y will be:
    +;
    +;   (1)  0 < x
    +;   (2)  0 < y
    +;   (3)  x + y < 1
    +;   (4)  x <= y
    +
    +(assert (< 0 x))
    +(assert (< 0 y))
    +(assert (< (+ x y) 1))
    +(assert (<= x y))
    +
    +
    +
    +

    + Now we check if the asserted formula is satisfiable, that is, we check if +there exist values of sort + + + Real + + + for + + + x + + + and + + + y + + + that satisfy all +the constraints. +

    +
    +
    +
    (check-sat)
    +
    +
    +
    +

    + The result we get from this satisfiability check is either + + + sat + + + , + + + unsat + + + or + + + unknown + + + , and it is printed to standard output. +In this case, it will print + + + sat + + + . +

    +

    + Now, we query the solver for the values for + + + x + + + and + + + y + + + that satisfy +the constraints. +It is also possible to get values for terms that do not appear in the original +formula. +

    +
    +
    +
    (echo "Values of declared real constants and of compound terms built with them.")
    +(get-value (x y (- x y)))
    +
    +
    +
    +

    + This will print the values of + + x + + , + + y + + , and + + x-y + + , in a key-value format + + (<term> <value>) + + one after the other: +

    +
    +
    +
    ((x (/ 1 6)) (y (/ 1 6)) ((- x y) 0.0))
    +
    +
    +
    +

    + Next, we will check satisfiability of the same formula, +only this time over integer variables + + + a + + + and + + + b + + + . +For this, we first reset the assertions added to the solver and declare fresh +integer variables + + + a + + + and + + + b + + + . +

    +
    +
    +
    (echo "We will reset the solver with the (reset-assertions) command and check satisfiability of the same assertions but with the integers constants rather than with the real ones.")
    +(reset-assertions)
    +; Declare integer constants a,b
    +(declare-const a Int)
    +(declare-const b Int)
    +
    +
    +
    +

    + Next, we assert the same assertions as above, but with integers. +

    +
    +
    +
    (assert (< 0 a))
    +(assert (< 0 b))
    +(assert (< (+ a b) 1))
    +(assert (<= a b))
    +
    +
    +
    +

    + Now, we check whether the revised query is satisfiable. +

    +
    +
    +
    (check-sat)
    +
    +
    +
    +

    + This time the asserted formula is unsatisfiable and + + + unsat + + + is printed. +

    +

    + We can query the solver for an unsatisfiable core, that is, a subset +of the assertions that is already unsatisfiable. +

    +
    +
    +
    (get-unsat-core)
    +
    +
    +
    +

    + This will print: +

    +
    +
    +
    (
    +(< 0 a)
    +(< 0 b)
    +(< (+ a b) 1)
    +)
    +
    +
    +
    +
    +

    + Example + +  + +

    +
    +
    + + + + + +
    +
    +

    + + examples/api/smtlib/quickstart.smt2 + +

    +
    +
    +
     1;! [docs-smt2-quickstart-1 start]
    + 2(set-logic ALL)
    + 3;! [docs-smt2-quickstart-1 end]
    + 4;! [docs-smt2-quickstart-2 start]
    + 5(set-option :produce-models true)
    + 6(set-option :incremental true)
    + 7; print unsat cores, include assertions in the unsat core that have not been named
    + 8(set-option :produce-unsat-cores true)
    + 9(set-option :print-cores-full true)
    +10;! [docs-smt2-quickstart-2 end]
    +11
    +12;! [docs-smt2-quickstart-3 start]
    +13; Declare real constants x,y
    +14(declare-const x Real)
    +15(declare-const y Real)
    +16;! [docs-smt2-quickstart-3 end]
    +17
    +18;! [docs-smt2-quickstart-4 start]
    +19; Our constraints regarding x and y will be:
    +20;
    +21;   (1)  0 < x
    +22;   (2)  0 < y
    +23;   (3)  x + y < 1
    +24;   (4)  x <= y
    +25
    +26(assert (< 0 x))
    +27(assert (< 0 y))
    +28(assert (< (+ x y) 1))
    +29(assert (<= x y))
    +30;! [docs-smt2-quickstart-4 end]
    +31
    +32;! [docs-smt2-quickstart-5 start]
    +33(check-sat)
    +34;! [docs-smt2-quickstart-5 end]
    +35;! [docs-smt2-quickstart-6 start]
    +36(echo "Values of declared real constants and of compound terms built with them.")
    +37(get-value (x y (- x y)))
    +38;! [docs-smt2-quickstart-6 end]
    +39
    +40;! [docs-smt2-quickstart-7 start]
    +41(echo "We will reset the solver with the (reset-assertions) command and check satisfiability of the same assertions but with the integers constants rather than with the real ones.")
    +42(reset-assertions)
    +43; Declare integer constants a,b
    +44(declare-const a Int)
    +45(declare-const b Int)
    +46;! [docs-smt2-quickstart-7 end]
    +47;! [docs-smt2-quickstart-8 start]
    +48(assert (< 0 a))
    +49(assert (< 0 b))
    +50(assert (< (+ a b) 1))
    +51(assert (<= a b))
    +52;! [docs-smt2-quickstart-8 end]
    +53
    +54;! [docs-smt2-quickstart-9 start]
    +55(check-sat)
    +56;! [docs-smt2-quickstart-9 end]
    +57;! [docs-smt2-quickstart-10 start]
    +58(get-unsat-core)
    +59;! [docs-smt2-quickstart-10 end]
    +
    +
    +
    +
    + + + + +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/bags.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/bags.html new file mode 100644 index 0000000000..0cc27063ca --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/bags.html @@ -0,0 +1,1034 @@ + + + + + + + + + + + Theory of Bags — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Theory of Bags + +  + +

    +
    +
    + + + + + +
    +
    +

    + + examples/api/cpp/bags.cpp + +

    +
    +
    +
      1/******************************************************************************
    +  2 * Top contributors (to current version):
    +  3 *   Mudathir Mohamed, Aina Niemetz
    +  4 *
    +  5 * This file is part of the cvc5 project.
    +  6 *
    +  7 * Copyright (c) 2009-2024 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 * A simple demonstration of reasoning about bags.
    + 14 */
    + 15
    + 16#include <cvc5/cvc5.h>
    + 17
    + 18#include <iostream>
    + 19
    + 20using namespace std;
    + 21using namespace cvc5;
    + 22
    + 23int main()
    + 24{
    + 25  TermManager tm;
    + 26  Solver slv(tm);
    + 27  slv.setLogic("ALL");
    + 28  // Produce models
    + 29  slv.setOption("produce-models", "true");
    + 30  slv.setOption("incremental", "true");
    + 31
    + 32  Sort bag = tm.mkBagSort(tm.getStringSort());
    + 33  Term A = tm.mkConst(bag, "A");
    + 34  Term B = tm.mkConst(bag, "B");
    + 35  Term C = tm.mkConst(bag, "C");
    + 36  Term x = tm.mkConst(tm.getStringSort(), "x");
    + 37
    + 38  Term intersectionAC = tm.mkTerm(Kind::BAG_INTER_MIN, {A, C});
    + 39  Term intersectionBC = tm.mkTerm(Kind::BAG_INTER_MIN, {B, C});
    + 40
    + 41  // union disjoint does not distribute over intersection
    + 42  {
    + 43    Term unionDisjointAB = tm.mkTerm(Kind::BAG_UNION_DISJOINT, {A, B});
    + 44    Term lhs = tm.mkTerm(Kind::BAG_INTER_MIN, {unionDisjointAB, C});
    + 45    Term rhs =
    + 46        tm.mkTerm(Kind::BAG_UNION_DISJOINT, {intersectionAC, intersectionBC});
    + 47    Term guess = tm.mkTerm(Kind::EQUAL, {lhs, rhs});
    + 48    cout << "cvc5 reports: " << guess.notTerm() << " is "
    + 49         << slv.checkSatAssuming(guess.notTerm()) << "." << endl;
    + 50
    + 51    cout << A << ": " << slv.getValue(A) << endl;
    + 52    cout << B << ": " << slv.getValue(B) << endl;
    + 53    cout << C << ": " << slv.getValue(C) << endl;
    + 54    cout << lhs << ": " << slv.getValue(lhs) << endl;
    + 55    cout << rhs << ": " << slv.getValue(rhs) << endl;
    + 56  }
    + 57
    + 58  // union max distributes over intersection
    + 59  {
    + 60    Term unionMaxAB = tm.mkTerm(Kind::BAG_UNION_MAX, {A, B});
    + 61    Term lhs = tm.mkTerm(Kind::BAG_INTER_MIN, {unionMaxAB, C});
    + 62    Term rhs = tm.mkTerm(Kind::BAG_UNION_MAX, {intersectionAC, intersectionBC});
    + 63    Term theorem = tm.mkTerm(Kind::EQUAL, {lhs, rhs});
    + 64    cout << "cvc5 reports: " << theorem.notTerm() << " is "
    + 65         << slv.checkSatAssuming(theorem.notTerm()) << "." << endl;
    + 66  }
    + 67
    + 68  // Verify emptbag is a subbag of any bag
    + 69  {
    + 70    Term emptybag = tm.mkEmptyBag(bag);
    + 71    Term theorem = tm.mkTerm(Kind::BAG_SUBBAG, {emptybag, A});
    + 72
    + 73    cout << "cvc5 reports: " << theorem.notTerm() << " is "
    + 74         << slv.checkSatAssuming(theorem.notTerm()) << "." << endl;
    + 75  }
    + 76
    + 77  // find an element with multiplicity 4 in the disjoint union of
    + 78  // ; {|"a", "a", "b", "b", "b"|} and {|"b", "c", "c"|}
    + 79
    + 80  {
    + 81    Term one = tm.mkInteger(1);
    + 82    Term two = tm.mkInteger(2);
    + 83    Term three = tm.mkInteger(3);
    + 84    Term four = tm.mkInteger(4);
    + 85    Term a = tm.mkString("a");
    + 86    Term b = tm.mkString("b");
    + 87    Term c = tm.mkString("c");
    + 88
    + 89    Term bag_a_2 = tm.mkTerm(Kind::BAG_MAKE, {a, two});
    + 90    Term bag_b_3 = tm.mkTerm(Kind::BAG_MAKE, {b, three});
    + 91    Term bag_b_1 = tm.mkTerm(Kind::BAG_MAKE, {b, one});
    + 92    Term bag_c_2 = tm.mkTerm(Kind::BAG_MAKE, {c, two});
    + 93    Term bag_a_2_b_3 = tm.mkTerm(Kind::BAG_UNION_DISJOINT, {bag_a_2, bag_b_3});
    + 94    Term bag_b_1_c_2 = tm.mkTerm(Kind::BAG_UNION_DISJOINT, {bag_b_1, bag_c_2});
    + 95    Term union_disjoint =
    + 96        tm.mkTerm(Kind::BAG_UNION_DISJOINT, {bag_a_2_b_3, bag_b_1_c_2});
    + 97
    + 98    Term count_x = tm.mkTerm(Kind::BAG_COUNT, {x, union_disjoint});
    + 99    Term e = tm.mkTerm(Kind::EQUAL, {four, count_x});
    +100    Result result = slv.checkSatAssuming(e);
    +101
    +102    cout << "cvc5 reports: " << e << " is " << result << "." << endl;
    +103    if (result.isSat())
    +104    {
    +105      cout << x << ": " << slv.getValue(x) << endl;
    +106    }
    +107  }
    +108}
    +
    +
    +
    +
    + + + + +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/bitvectors.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/bitvectors.html new file mode 100644 index 0000000000..1c528efdbb --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/bitvectors.html @@ -0,0 +1,1138 @@ + + + + + + + + + + + Theory of Bit-Vectors — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Theory of Bit-Vectors + +  + +

    +
    +
    + + + + + + +
    +
    +

    + + examples/api/cpp/bitvectors.cpp + +

    +
    +
    +
      1/******************************************************************************
    +  2 * Top contributors (to current version):
    +  3 *   Aina Niemetz, Liana Hadarean, Andrew Reynolds
    +  4 *
    +  5 * This file is part of the cvc5 project.
    +  6 *
    +  7 * Copyright (c) 2009-2024 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 * A simple demonstration of the solving capabilities of the cvc5
    + 14 * bit-vector solver.
    + 15 *
    + 16 */
    + 17
    + 18#include <cvc5/cvc5.h>
    + 19
    + 20#include <iostream>
    + 21
    + 22using namespace std;
    + 23using namespace cvc5;
    + 24
    + 25int main()
    + 26{
    + 27  TermManager tm;
    + 28  Solver slv(tm);
    + 29  slv.setLogic("QF_BV");  // Set the logic
    + 30
    + 31  // The following example has been adapted from the book A Hacker's Delight by
    + 32  // Henry S. Warren.
    + 33  //
    + 34  // Given a variable x that can only have two values, a or b. We want to
    + 35  // assign to x a value other than the current one. The straightforward code
    + 36  // to do that is:
    + 37  //
    + 38  //(0) if (x == a ) x = b;
    + 39  //    else x = a;
    + 40  //
    + 41  // Two more efficient yet equivalent methods are:
    + 42  //
    + 43  //(1) x = a ⊕ b ⊕ x;
    + 44  //
    + 45  //(2) x = a + b - x;
    + 46  //
    + 47  // We will use cvc5 to prove that the three pieces of code above are all
    + 48  // equivalent by encoding the problem in the bit-vector theory.
    + 49
    + 50  // Creating a bit-vector type of width 32
    + 51  Sort bv32 = tm.mkBitVectorSort(32);
    + 52
    + 53  // Variables
    + 54  Term x = tm.mkConst(bv32, "x");
    + 55  Term a = tm.mkConst(bv32, "a");
    + 56  Term b = tm.mkConst(bv32, "b");
    + 57
    + 58  // First encode the assumption that x must be equal to a or b
    + 59  Term x_eq_a = tm.mkTerm(Kind::EQUAL, {x, a});
    + 60  Term x_eq_b = tm.mkTerm(Kind::EQUAL, {x, b});
    + 61  Term assumption = tm.mkTerm(Kind::OR, {x_eq_a, x_eq_b});
    + 62
    + 63  // Assert the assumption
    + 64  slv.assertFormula(assumption);
    + 65
    + 66  // Introduce a new variable for the new value of x after assignment.
    + 67  Term new_x = tm.mkConst(bv32, "new_x");  // x after executing code (0)
    + 68  Term new_x_ =
    + 69      tm.mkConst(bv32, "new_x_");  // x after executing code (1) or (2)
    + 70
    + 71  // Encoding code (0)
    + 72  // new_x = x == a ? b : a;
    + 73  Term ite = tm.mkTerm(Kind::ITE, {x_eq_a, b, a});
    + 74  Term assignment0 = tm.mkTerm(Kind::EQUAL, {new_x, ite});
    + 75
    + 76  // Assert the encoding of code (0)
    + 77  cout << "Asserting " << assignment0 << " to cvc5" << endl;
    + 78  slv.assertFormula(assignment0);
    + 79  cout << "Pushing a new context." << endl;
    + 80  slv.push();
    + 81
    + 82  // Encoding code (1)
    + 83  // new_x_ = a xor b xor x
    + 84  Term a_xor_b_xor_x = tm.mkTerm(Kind::BITVECTOR_XOR, {a, b, x});
    + 85  Term assignment1 = tm.mkTerm(Kind::EQUAL, {new_x_, a_xor_b_xor_x});
    + 86
    + 87  // Assert encoding to cvc5 in current context;
    + 88  cout << "Asserting " << assignment1 << " to cvc5" << endl;
    + 89  slv.assertFormula(assignment1);
    + 90  Term new_x_eq_new_x_ = tm.mkTerm(Kind::EQUAL, {new_x, new_x_});
    + 91
    + 92  cout << " Check sat assuming: " << new_x_eq_new_x_.notTerm() << endl;
    + 93  cout << " Expect UNSAT." << endl;
    + 94  cout << " cvc5: " << slv.checkSatAssuming(new_x_eq_new_x_.notTerm()) << endl;
    + 95  cout << " Popping context." << endl;
    + 96  slv.pop();
    + 97
    + 98  // Encoding code (2)
    + 99  // new_x_ = a + b - x
    +100  Term a_plus_b = tm.mkTerm(Kind::BITVECTOR_ADD, {a, b});
    +101  Term a_plus_b_minus_x = tm.mkTerm(Kind::BITVECTOR_SUB, {a_plus_b, x});
    +102  Term assignment2 = tm.mkTerm(Kind::EQUAL, {new_x_, a_plus_b_minus_x});
    +103
    +104  // Assert encoding to cvc5 in current context;
    +105  cout << "Asserting " << assignment2 << " to cvc5" << endl;
    +106  slv.assertFormula(assignment2);
    +107
    +108  cout << " Check sat assuming: " << new_x_eq_new_x_.notTerm() << endl;
    +109  cout << " Expect UNSAT." << endl;
    +110  cout << " cvc5: " << slv.checkSatAssuming(new_x_eq_new_x_.notTerm()) << endl;
    +111
    +112  Term x_neq_x = tm.mkTerm(Kind::DISTINCT, {x, x});
    +113  std::vector<Term> v{new_x_eq_new_x_, x_neq_x};
    +114  Term query = tm.mkTerm(Kind::AND, {v});
    +115  cout << " Check sat assuming: " << query.notTerm() << endl;
    +116  cout << " Expect SAT." << endl;
    +117  cout << " cvc5: " << slv.checkSatAssuming(query.notTerm()) << endl;
    +118
    +119  // Assert that a is odd
    +120  Op extract_op = tm.mkOp(Kind::BITVECTOR_EXTRACT, {0, 0});
    +121  Term lsb_of_a = tm.mkTerm(extract_op, {a});
    +122  cout << "Sort of " << lsb_of_a << " is " << lsb_of_a.getSort() << endl;
    +123  Term a_odd = tm.mkTerm(Kind::EQUAL, {lsb_of_a, tm.mkBitVector(1u, 1u)});
    +124  cout << "Assert " << a_odd << endl;
    +125  cout << "Check satisfiability." << endl;
    +126  slv.assertFormula(a_odd);
    +127  cout << " Expect sat." << endl;
    +128  cout << " cvc5: " << slv.checkSat() << endl;
    +129  return 0;
    +130}
    +
    +
    +
    +
    + + + + + +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/bitvectors_and_arrays.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/bitvectors_and_arrays.html new file mode 100644 index 0000000000..88cad96ff6 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/bitvectors_and_arrays.html @@ -0,0 +1,992 @@ + + + + + + + + + + + Theory of Bit-Vectors and Arrays — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Theory of Bit-Vectors and Arrays + +  + +

    +
    +
    + + + + + + +
    +
    +

    + + examples/api/cpp/bitvectors_and_arrays.cpp + +

    +
    +
    +
     1/******************************************************************************
    + 2 * Top contributors (to current version):
    + 3 *   Aina Niemetz, Liana Hadarean, Mathias Preiner
    + 4 *
    + 5 * This file is part of the cvc5 project.
    + 6 *
    + 7 * Copyright (c) 2009-2024 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 * A simple demonstration of the solving capabilities of the cvc5
    +14 * bit-vector and array solvers.
    +15 *
    +16 */
    +17
    +18#include <cvc5/cvc5.h>
    +19
    +20#include <iostream>
    +21
    +22using namespace std;
    +23using namespace cvc5;
    +24
    +25int main()
    +26{
    +27  TermManager tm;
    +28  Solver slv(tm);
    +29  slv.setOption("produce-models", "true");    // Produce Models
    +30  slv.setLogic("QF_ABV");                     // Set the logic
    +31
    +32  // Consider the following code (where size is some previously defined constant):
    +33  //
    +34  //
    +35  //   Assert (current_array[0] > 0);
    +36  //   for (unsigned i = 1; i < k; ++i) {
    +37  //     current_array[i] = 2 * current_array[i - 1];
    +38  //     Assert (current_array[i-1] < current_array[i]);
    +39  //     }
    +40  //
    +41  // We want to check whether the assertion in the body of the for loop holds
    +42  // throughout the loop.
    +43
    +44  // Setting up the problem parameters
    +45  uint32_t k = 4;           // number of unrollings (should be a power of 2)
    +46  uint32_t index_size = 2;  // size of the index, must be log2(k)
    +47
    +48  // Sorts
    +49  Sort elementSort = tm.mkBitVectorSort(32);
    +50  Sort indexSort = tm.mkBitVectorSort(index_size);
    +51  Sort arraySort = tm.mkArraySort(indexSort, elementSort);
    +52
    +53  // Variables
    +54  Term current_array = tm.mkConst(arraySort, "current_array");
    +55
    +56  // Making a bit-vector constant
    +57  Term zero = tm.mkBitVector(index_size, 0u);
    +58
    +59  // Asserting that current_array[0] > 0
    +60  Term current_array0 = tm.mkTerm(Kind::SELECT, {current_array, zero});
    +61  Term current_array0_gt_0 = tm.mkTerm(
    +62      Kind::BITVECTOR_SGT, {current_array0, tm.mkBitVector(32, 0u)});
    +63  slv.assertFormula(current_array0_gt_0);
    +64
    +65  // Building the assertions in the loop unrolling
    +66  Term index = tm.mkBitVector(index_size, 0u);
    +67  Term old_current = tm.mkTerm(Kind::SELECT, {current_array, index});
    +68  Term two = tm.mkBitVector(32, 2u);
    +69
    +70  std::vector<Term> assertions;
    +71  for (uint32_t i = 1; i < k; ++i)
    +72  {
    +73    index = tm.mkBitVector(index_size, i);
    +74    Term new_current = tm.mkTerm(Kind::BITVECTOR_MULT, {two, old_current});
    +75    // current[i] = 2 * current[i-1]
    +76    current_array =
    +77        tm.mkTerm(Kind::STORE, {current_array, index, new_current});
    +78    // current[i-1] < current [i]
    +79    Term current_slt_new_current =
    +80        tm.mkTerm(Kind::BITVECTOR_SLT, {old_current, new_current});
    +81    assertions.push_back(current_slt_new_current);
    +82
    +83    old_current = tm.mkTerm(Kind::SELECT, {current_array, index});
    +84  }
    +85
    +86  Term query = tm.mkTerm(Kind::NOT, {tm.mkTerm(Kind::AND, assertions)});
    +87
    +88  cout << "Asserting " << query << " to cvc5" << endl;
    +89  slv.assertFormula(query);
    +90  cout << "Expect sat." << endl;
    +91  cout << "cvc5: " << slv.checkSat() << endl;
    +92
    +93  // Getting the model
    +94  cout << "The satisfying model is:" << endl;
    +95  cout << "  current_array = " << slv.getValue(current_array) << endl;
    +96  cout << "  current_array[0] = " << slv.getValue(current_array0) << endl;
    +97  return 0;
    +98}
    +
    +
    +
    +
    + + + + + +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/combination.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/combination.html new file mode 100644 index 0000000000..4afd9ac1a7 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/combination.html @@ -0,0 +1,1077 @@ + + + + + + + + + + + Theory Combination — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Theory Combination + +  + +

    +
    +
    + + + + + + +
    +
    +

    + + examples/api/cpp/combination.cpp + +

    +
    +
    +
      1/******************************************************************************
    +  2 * Top contributors (to current version):
    +  3 *   Aina Niemetz, Tim King, Mathias Preiner
    +  4 *
    +  5 * This file is part of the cvc5 project.
    +  6 *
    +  7 * Copyright (c) 2009-2024 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 * A simple demonstration of the capabilities of cvc5
    + 14 *
    + 15 * A simple demonstration of how to use uninterpreted functions, combining this
    + 16 * with arithmetic, and extracting a model at the end of a satisfiable query.
    + 17 * The model is displayed using getValue().
    + 18 */
    + 19
    + 20#include <cvc5/cvc5.h>
    + 21
    + 22#include <iostream>
    + 23
    + 24using namespace std;
    + 25using namespace cvc5;
    + 26
    + 27void prefixPrintGetValue(Solver& slv, Term t, int level = 0)
    + 28{
    + 29  cout << "slv.getValue(" << t << "): " << slv.getValue(t) << endl;
    + 30
    + 31  for (const Term& c : t)
    + 32  {
    + 33    prefixPrintGetValue(slv, c, level + 1);
    + 34  }
    + 35}
    + 36
    + 37int main()
    + 38{
    + 39  TermManager tm;
    + 40  Solver slv(tm);
    + 41  slv.setOption("produce-models", "true");  // Produce Models
    + 42  slv.setOption("dag-thresh", "0"); // Disable dagifying the output
    + 43  slv.setLogic("QF_UFLIRA");
    + 44
    + 45  // Sorts
    + 46  Sort u = tm.mkUninterpretedSort("u");
    + 47  Sort integer = tm.getIntegerSort();
    + 48  Sort boolean = tm.getBooleanSort();
    + 49  Sort uToInt = tm.mkFunctionSort({u}, integer);
    + 50  Sort intPred = tm.mkFunctionSort({integer}, boolean);
    + 51
    + 52  // Variables
    + 53  Term x = tm.mkConst(u, "x");
    + 54  Term y = tm.mkConst(u, "y");
    + 55
    + 56  // Functions
    + 57  Term f = tm.mkConst(uToInt, "f");
    + 58  Term p = tm.mkConst(intPred, "p");
    + 59
    + 60  // Constants
    + 61  Term zero = tm.mkInteger(0);
    + 62  Term one = tm.mkInteger(1);
    + 63
    + 64  // Terms
    + 65  Term f_x = tm.mkTerm(Kind::APPLY_UF, {f, x});
    + 66  Term f_y = tm.mkTerm(Kind::APPLY_UF, {f, y});
    + 67  Term sum = tm.mkTerm(Kind::ADD, {f_x, f_y});
    + 68  Term p_0 = tm.mkTerm(Kind::APPLY_UF, {p, zero});
    + 69  Term p_f_y = tm.mkTerm(Kind::APPLY_UF, {p, f_y});
    + 70
    + 71  // Construct the assertions
    + 72  Term assertions =
    + 73      tm.mkTerm(Kind::AND,
    + 74                {
    + 75                    tm.mkTerm(Kind::LEQ, {zero, f_x}),  // 0 <= f(x)
    + 76                    tm.mkTerm(Kind::LEQ, {zero, f_y}),  // 0 <= f(y)
    + 77                    tm.mkTerm(Kind::LEQ, {sum, one}),   // f(x) + f(y) <= 1
    + 78                    p_0.notTerm(),                      // not p(0)
    + 79                    p_f_y                               // p(f(y))
    + 80                });
    + 81  slv.assertFormula(assertions);
    + 82
    + 83  cout << "Given the following assertions:" << endl
    + 84       << assertions << endl << endl;
    + 85
    + 86  cout << "Prove x /= y is entailed." << endl
    + 87       << "cvc5: " << slv.checkSatAssuming(tm.mkTerm(Kind::EQUAL, {x, y}))
    + 88       << "." << endl
    + 89       << endl;
    + 90
    + 91  cout << "Call checkSat to show that the assertions are satisfiable." << endl
    + 92       << "cvc5: " << slv.checkSat() << "." << endl
    + 93       << endl;
    + 94
    + 95  cout << "Call slv.getValue(...) on terms of interest."
    + 96       << endl;
    + 97  cout << "slv.getValue(" << f_x << "): " << slv.getValue(f_x) << endl;
    + 98  cout << "slv.getValue(" << f_y << "): " << slv.getValue(f_y) << endl;
    + 99  cout << "slv.getValue(" << sum << "): " << slv.getValue(sum) << endl;
    +100  cout << "slv.getValue(" << p_0 << "): " << slv.getValue(p_0) << endl;
    +101  cout << "slv.getValue(" << p_f_y << "): " << slv.getValue(p_f_y)
    +102       << endl << endl;
    +103
    +104  cout << "Alternatively, iterate over assertions and call slv.getValue(...) "
    +105       << "on all terms."
    +106       << endl;
    +107  prefixPrintGetValue(slv, assertions);
    +108
    +109  cout << endl;
    +110  cout << "You can also use nested loops to iterate over terms." << endl;
    +111  for (Term::const_iterator it = assertions.begin();
    +112       it != assertions.end();
    +113       ++it)
    +114  {
    +115    cout << "term: " << *it << endl;
    +116    for (Term::const_iterator it2 = (*it).begin();
    +117         it2 != (*it).end();
    +118         ++it2)
    +119    {
    +120      cout << " + child: " << *it2 << std::endl;
    +121    }
    +122  }
    +123  cout << endl;
    +124  cout << "Alternatively, you can also use for-each loops." << endl;
    +125  for (const Term& t : assertions)
    +126  {
    +127    cout << "term: " << t << endl;
    +128    for (const Term& c : t)
    +129    {
    +130      cout << " + child: " << c << endl;
    +131    }
    +132  }
    +133
    +134  return 0;
    +135}
    +
    +
    +
    +
    + + + + + +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/datatypes.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/datatypes.html new file mode 100644 index 0000000000..2ea957788e --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/datatypes.html @@ -0,0 +1,1307 @@ + + + + + + + + + + + Theory of Datatypes — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Theory of Datatypes + +  + +

    +
    +
    + + + + + + +
    +
    +

    + + examples/api/cpp/datatypes.cpp + +

    +
    +
    +
      1/******************************************************************************
    +  2 * Top contributors (to current version):
    +  3 *   Aina Niemetz, Morgan Deters, Andrew Reynolds
    +  4 *
    +  5 * This file is part of the cvc5 project.
    +  6 *
    +  7 * Copyright (c) 2009-2024 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 * An example of using inductive datatypes in cvc5.
    + 14 */
    + 15
    + 16#include <cvc5/cvc5.h>
    + 17
    + 18#include <iostream>
    + 19
    + 20using namespace cvc5;
    + 21
    + 22void test(Solver& slv, Sort& consListSort)
    + 23{
    + 24  TermManager& tm = slv.getTermManager();
    + 25
    + 26  // Now our old "consListSpec" is useless--the relevant information
    + 27  // has been copied out, so we can throw that spec away.  We can get
    + 28  // the complete spec for the datatype from the DatatypeSort, and
    + 29  // this Datatype object has constructor symbols (and others) filled in.
    + 30
    + 31  const Datatype& consList = consListSort.getDatatype();
    + 32
    + 33  // t = cons 0 nil
    + 34  //
    + 35  // Here, consList["cons"] gives you the DatatypeConstructor.  To get
    + 36  // the constructor symbol for application, use .getConstructor("cons"),
    + 37  // which is equivalent to consList["cons"].getConstructor().  Note that
    + 38  // "nil" is a constructor too, so it needs to be applied with
    + 39  // APPLY_CONSTRUCTOR, even though it has no arguments.
    + 40  Term t = tm.mkTerm(Kind::APPLY_CONSTRUCTOR,
    + 41                     {consList.getConstructor("cons").getTerm(),
    + 42                      tm.mkInteger(0),
    + 43                      tm.mkTerm(Kind::APPLY_CONSTRUCTOR,
    + 44                                {consList.getConstructor("nil").getTerm()})});
    + 45
    + 46  std::cout << "t is " << t << std::endl
    + 47            << "sort of cons is "
    + 48            << consList.getConstructor("cons").getTerm().getSort() << std::endl
    + 49            << "sort of nil is "
    + 50            << consList.getConstructor("nil").getTerm().getSort() << std::endl;
    + 51
    + 52  // t2 = head(cons 0 nil), and of course this can be evaluated
    + 53  //
    + 54  // Here we first get the DatatypeConstructor for cons (with
    + 55  // consList["cons"]) in order to get the "head" selector symbol
    + 56  // to apply.
    + 57  Term t2 = tm.mkTerm(Kind::APPLY_SELECTOR,
    + 58                      {consList["cons"].getSelector("head").getTerm(), t});
    + 59
    + 60  std::cout << "t2 is " << t2 << std::endl
    + 61            << "simplify(t2) is " << slv.simplify(t2) << std::endl
    + 62            << std::endl;
    + 63
    + 64  // You can also iterate over a Datatype to get all its constructors,
    + 65  // and over a DatatypeConstructor to get all its "args" (selectors)
    + 66  for (Datatype::const_iterator i = consList.begin(); i != consList.end(); ++i)
    + 67  {
    + 68    std::cout << "ctor: " << *i << std::endl;
    + 69    for (DatatypeConstructor::const_iterator j = (*i).begin(); j != (*i).end();
    + 70         ++j)
    + 71    {
    + 72      std::cout << " + arg: " << *j << std::endl;
    + 73    }
    + 74  }
    + 75  std::cout << std::endl;
    + 76
    + 77  // Alternatively, you can use for each loops.
    + 78  for (const auto& c : consList)
    + 79  {
    + 80    std::cout << "ctor: " << c << std::endl;
    + 81    for (const auto& s : c)
    + 82    {
    + 83      std::cout << " + arg: " << s << std::endl;
    + 84    }
    + 85  }
    + 86  std::cout << std::endl;
    + 87
    + 88  // You can also define a tester term for constructor 'cons': (_ is cons)
    + 89  Term t_is_cons =
    + 90      tm.mkTerm(Kind::APPLY_TESTER, {consList["cons"].getTesterTerm(), t});
    + 91  std::cout << "t_is_cons is " << t_is_cons << std::endl << std::endl;
    + 92  slv.assertFormula(t_is_cons);
    + 93  // Updating t at 'head' with value 1 is defined as follows:
    + 94  Term t_updated = tm.mkTerm(
    + 95      Kind::APPLY_UPDATER,
    + 96      {consList["cons"]["head"].getUpdaterTerm(), t, tm.mkInteger(1)});
    + 97  std::cout << "t_updated is " << t_updated << std::endl << std::endl;
    + 98  slv.assertFormula(tm.mkTerm(Kind::DISTINCT, {t, t_updated}));
    + 99
    +100  // You can also define parameterized datatypes.
    +101  // This example builds a simple parameterized list of sort T, with one
    +102  // constructor "cons".
    +103  Sort sort = tm.mkParamSort("T");
    +104  DatatypeDecl paramConsListSpec =
    +105      tm.mkDatatypeDecl("paramlist", {sort});  // give the datatype a name
    +106  DatatypeConstructorDecl paramCons = tm.mkDatatypeConstructorDecl("cons");
    +107  DatatypeConstructorDecl paramNil = tm.mkDatatypeConstructorDecl("nil");
    +108  paramCons.addSelector("head", sort);
    +109  paramCons.addSelectorSelf("tail");
    +110  paramConsListSpec.addConstructor(paramCons);
    +111  paramConsListSpec.addConstructor(paramNil);
    +112
    +113  Sort paramConsListSort = tm.mkDatatypeSort(paramConsListSpec);
    +114  Sort paramConsIntListSort =
    +115      paramConsListSort.instantiate(std::vector<Sort>{tm.getIntegerSort()});
    +116
    +117  const Datatype& paramConsList = paramConsListSort.getDatatype();
    +118
    +119  std::cout << "parameterized datatype sort is" << std::endl;
    +120  for (const DatatypeConstructor& ctor : paramConsList)
    +121  {
    +122    std::cout << "ctor: " << ctor << std::endl;
    +123    for (const DatatypeSelector& stor : ctor)
    +124    {
    +125      std::cout << " + arg: " << stor << std::endl;
    +126    }
    +127  }
    +128
    +129  Term a = tm.mkConst(paramConsIntListSort, "a");
    +130  std::cout << "term " << a << " is of sort " << a.getSort() << std::endl;
    +131
    +132  Term head_a =
    +133      tm.mkTerm(Kind::APPLY_SELECTOR,
    +134                {paramConsList["cons"].getSelector("head").getTerm(), a});
    +135  std::cout << "head_a is " << head_a << " of sort " << head_a.getSort()
    +136            << std::endl
    +137            << "sort of cons is "
    +138            << paramConsList.getConstructor("cons").getTerm().getSort()
    +139            << std::endl
    +140            << std::endl;
    +141
    +142  Term assertion = tm.mkTerm(Kind::GT, {head_a, tm.mkInteger(50)});
    +143  std::cout << "Assert " << assertion << std::endl;
    +144  slv.assertFormula(assertion);
    +145  std::cout << "Expect sat." << std::endl;
    +146  std::cout << "cvc5: " << slv.checkSat() << std::endl;
    +147}
    +148
    +149int main()
    +150{
    +151  TermManager tm;
    +152  Solver slv(tm);
    +153  // This example builds a simple "cons list" of integers, with
    +154  // two constructors, "cons" and "nil."
    +155
    +156  // Building a datatype consists of two steps.
    +157  // First, the datatype is specified.
    +158  // Second, it is "resolved" to an actual sort, at which point function
    +159  // symbols are assigned to its constructors, selectors, and testers.
    +160
    +161  DatatypeDecl consListSpec =
    +162      tm.mkDatatypeDecl("list");  // give the datatype a name
    +163  DatatypeConstructorDecl cons = tm.mkDatatypeConstructorDecl("cons");
    +164  cons.addSelector("head", tm.getIntegerSort());
    +165  cons.addSelectorSelf("tail");
    +166  consListSpec.addConstructor(cons);
    +167  DatatypeConstructorDecl nil = tm.mkDatatypeConstructorDecl("nil");
    +168  consListSpec.addConstructor(nil);
    +169
    +170  std::cout << "spec is:" << std::endl << consListSpec << std::endl;
    +171
    +172  // Keep in mind that "DatatypeDecl" is the specification class for
    +173  // datatypes---"DatatypeDecl" is not itself a cvc5 Sort.
    +174  // Now that our Datatype is fully specified, we can get a Sort for it.
    +175  // This step resolves the "SelfSort" reference and creates
    +176  // symbols for all the constructors, etc.
    +177
    +178  Sort consListSort = tm.mkDatatypeSort(consListSpec);
    +179
    +180  test(slv, consListSort);
    +181
    +182  std::cout << std::endl
    +183            << ">>> Alternatively, use declareDatatype" << std::endl;
    +184  std::cout << std::endl;
    +185
    +186  DatatypeConstructorDecl cons2 = tm.mkDatatypeConstructorDecl("cons");
    +187  cons2.addSelector("head", tm.getIntegerSort());
    +188  cons2.addSelectorSelf("tail");
    +189  DatatypeConstructorDecl nil2 = tm.mkDatatypeConstructorDecl("nil");
    +190  std::vector<DatatypeConstructorDecl> ctors = {cons2, nil2};
    +191  Sort consListSort2 = slv.declareDatatype("list2", ctors);
    +192  test(slv, consListSort2);
    +193
    +194  return 0;
    +195}
    +
    +
    +
    +
    + + + + + +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/examples.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/examples.html new file mode 100644 index 0000000000..3ea47ef2cc --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/examples.html @@ -0,0 +1,523 @@ + + + + + + + + + + + Examples — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    +
      +
    • + + +
    • + +
    • +
    • +
    +
    +
    + + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/exceptions.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/exceptions.html new file mode 100644 index 0000000000..cf6dfb0ad0 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/exceptions.html @@ -0,0 +1,592 @@ + + + + + + + + + + + Exception Handling — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Exception Handling + +  + +

    +
    +
    + + + +
    +
    +

    + + examples/api/java/Exceptions.java + +

    +
    +
    +
     1/******************************************************************************
    + 2 * Top contributors (to current version):
    + 3 *   Mudathir Mohamed, Andres Noetzli
    + 4 *
    + 5 * This file is part of the cvc5 project.
    + 6 *
    + 7 * Copyright (c) 2009-2024 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 * Catching cvc5 exceptions via the Java API.
    +14 *
    +15 * A simple demonstration of catching cvc5 execptions via the Java API.
    +16 */
    +17
    +18import io.github.cvc5.*;
    +19
    +20public class Exceptions
    +21{
    +22  public static void main(String[] args)
    +23  {
    +24    TermManager tm = new TermManager();
    +25    Solver solver = new Solver(tm);
    +26    {
    +27      solver.setOption("produce-models", "true");
    +28
    +29      // Setting an invalid option
    +30      try
    +31      {
    +32        solver.setOption("non-existing", "true");
    +33        System.exit(1);
    +34      }
    +35      catch (Exception e)
    +36      {
    +37        System.out.println(e.toString());
    +38      }
    +39
    +40      // Creating a term with an invalid type
    +41      try
    +42      {
    +43        Sort integer = tm.getIntegerSort();
    +44        Term x = tm.mkVar(integer, "x");
    +45        Term invalidTerm = tm.mkTerm(Kind.AND, x, x);
    +46        solver.checkSatAssuming(invalidTerm);
    +47        System.exit(1);
    +48      }
    +49      catch (Exception e)
    +50      {
    +51        System.out.println(e.toString());
    +52      }
    +53
    +54      // Asking for a model after unsat result
    +55      try
    +56      {
    +57        solver.checkSatAssuming(tm.mkBoolean(false));
    +58        solver.getModel(new Sort[] {}, new Term[] {});
    +59        System.exit(1);
    +60      }
    +61      catch (Exception e)
    +62      {
    +63        System.out.println(e.toString());
    +64      }
    +65    }
    +66    Context.deletePointers();
    +67  }
    +68}
    +
    +
    +
    +
    + + +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/extract.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/extract.html new file mode 100644 index 0000000000..d6a3bc6133 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/extract.html @@ -0,0 +1,771 @@ + + + + + + + + + + + Theory of Bit-Vectors: extract — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Theory of Bit-Vectors: + + + extract + + + +  + +

    +
    +
    + + + + + + +
    +
    +

    + + examples/api/cpp/extract.cpp + +

    +
    +
    +
     1/******************************************************************************
    + 2 * Top contributors (to current version):
    + 3 *   Aina Niemetz, Clark Barrett, Andrew Reynolds
    + 4 *
    + 5 * This file is part of the cvc5 project.
    + 6 *
    + 7 * Copyright (c) 2009-2024 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 * A simple demonstration of the solving capabilities of the cvc5
    +14 * bit-vector solver.
    +15 *
    +16 */
    +17
    +18#include <cvc5/cvc5.h>
    +19
    +20#include <iostream>
    +21
    +22using namespace std;
    +23using namespace cvc5;
    +24
    +25int main()
    +26{
    +27  TermManager tm;
    +28  Solver slv(tm);
    +29  slv.setLogic("QF_BV"); // Set the logic
    +30
    +31  Sort bv32 = tm.mkBitVectorSort(32);
    +32
    +33  Term x = tm.mkConst(bv32, "x");
    +34
    +35  Op ext_31_1 = tm.mkOp(Kind::BITVECTOR_EXTRACT, {31, 1});
    +36  Term x_31_1 = tm.mkTerm(ext_31_1, {x});
    +37
    +38  Op ext_30_0 = tm.mkOp(Kind::BITVECTOR_EXTRACT, {30, 0});
    +39  Term x_30_0 = tm.mkTerm(ext_30_0, {x});
    +40
    +41  Op ext_31_31 = tm.mkOp(Kind::BITVECTOR_EXTRACT, {31, 31});
    +42  Term x_31_31 = tm.mkTerm(ext_31_31, {x});
    +43
    +44  Op ext_0_0 = tm.mkOp(Kind::BITVECTOR_EXTRACT, {0, 0});
    +45  Term x_0_0 = tm.mkTerm(ext_0_0, {x});
    +46
    +47  Term eq = tm.mkTerm(Kind::EQUAL, {x_31_1, x_30_0});
    +48  cout << " Asserting: " << eq << endl;
    +49  slv.assertFormula(eq);
    +50
    +51  Term dis = tm.mkTerm(Kind::DISTINCT, {x_31_31, x_0_0});
    +52  cout << " Check sat assuming: " << dis << endl;
    +53  cout << " Expect UNSAT." << endl;
    +54  cout << " cvc5: " << slv.checkSatAssuming(dis) << endl;
    +55
    +56  return 0;
    +57}
    +
    +
    +
    +
    + + + + + +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/finite_field.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/finite_field.html new file mode 100644 index 0000000000..7b0db08e37 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/finite_field.html @@ -0,0 +1,807 @@ + + + + + + + + + + + Theory of Finite Fields — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Theory of Finite Fields + +  + +

    +
    +
    + + + + + + +
    +
    +

    + + examples/api/cpp/finite_field.cpp + +

    +
    +
    +
     1/******************************************************************************
    + 2 * Top contributors (to current version):
    + 3 *   Alex Ozdemir, Aina Niemetz
    + 4 *
    + 5 * This file is part of the cvc5 project.
    + 6 *
    + 7 * Copyright (c) 2009-2024 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 * An example of solving finite field problems with cvc5's cpp API.
    +14 */
    +15
    +16#include <cvc5/cvc5.h>
    +17
    +18#include <cassert>
    +19#include <iostream>
    +20
    +21using namespace std;
    +22using namespace cvc5;
    +23
    +24int main()
    +25{
    +26  TermManager tm;
    +27  Solver solver(tm);
    +28  solver.setOption("produce-models", "true");
    +29
    +30  Sort f5 = tm.mkFiniteFieldSort("5");
    +31  Term a = tm.mkConst(f5, "a");
    +32  Term b = tm.mkConst(f5, "b");
    +33  Term z = tm.mkFiniteFieldElem("0", f5);
    +34
    +35  Term inv = tm.mkTerm(Kind::EQUAL,
    +36                       {tm.mkTerm(Kind::FINITE_FIELD_ADD,
    +37                                  {tm.mkTerm(Kind::FINITE_FIELD_MULT, {a, b}),
    +38                                   tm.mkFiniteFieldElem("-1", f5)}),
    +39                        z});
    +40  Term aIsTwo = tm.mkTerm(
    +41      Kind::EQUAL,
    +42      {tm.mkTerm(Kind::FINITE_FIELD_ADD, {a, tm.mkFiniteFieldElem("-2", f5)}),
    +43       z});
    +44  // ab - 1 = 0
    +45  solver.assertFormula(inv);
    +46  // a = 2
    +47  solver.assertFormula(aIsTwo);
    +48
    +49  // should be SAT, with b = 2^(-1)
    +50  Result r = solver.checkSat();
    +51  assert(r.isSat());
    +52
    +53  cout << "a = " << solver.getValue(a) << endl;
    +54  cout << "b = " << solver.getValue(b) << endl;
    +55
    +56  // b = 2
    +57  Term bIsTwo = tm.mkTerm(
    +58      Kind::EQUAL,
    +59      {tm.mkTerm(Kind::FINITE_FIELD_ADD, {b, tm.mkFiniteFieldElem("-2", f5)}),
    +60       z});
    +61
    +62  // should be UNSAT, 2*2 - 1 != 0
    +63  solver.assertFormula(bIsTwo);
    +64
    +65  r = solver.checkSat();
    +66  assert(r.isUnsat());
    +67}
    +
    +
    +
    +
    + + + + + +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/floatingpoint.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/floatingpoint.html new file mode 100644 index 0000000000..fe23a0f751 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/floatingpoint.html @@ -0,0 +1,1197 @@ + + + + + + + + + + + Theory of Floating-Points — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Theory of Floating-Points + +  + +

    +
    +
    + + + + + + +
    +
    +

    + + examples/api/cpp/floating_point_arith.cpp + +

    +
    +
    +
      1/******************************************************************************
    +  2 * Top contributors (to current version):
    +  3 *   Aina Niemetz, Mudathir Mohamed, Andres Noetzli
    +  4 *
    +  5 * This file is part of the cvc5 project.
    +  6 *
    +  7 * Copyright (c) 2009-2024 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 * An example of solving floating-point problems with cvc5's cpp API.
    + 14 *
    + 15 * This example shows to create floating-point types, variables and expressions,
    + 16 * and how to create rounding mode constants by solving toy problems. The
    + 17 * example also shows making special values (such as NaN and +oo) and converting
    + 18 * an IEEE 754-2008 bit-vector to a floating-point number.
    + 19 */
    + 20
    + 21#include <cvc5/cvc5.h>
    + 22
    + 23#include <iostream>
    + 24#include <cassert>
    + 25
    + 26using namespace cvc5;
    + 27
    + 28int main()
    + 29{
    + 30  TermManager tm;
    + 31  Solver solver(tm);
    + 32  solver.setOption("incremental", "true");
    + 33  solver.setOption("produce-models", "true");
    + 34
    + 35  // Make single precision floating-point variables
    + 36  Sort fpt32 = tm.mkFloatingPointSort(8, 24);
    + 37  Term a = tm.mkConst(fpt32, "a");
    + 38  Term b = tm.mkConst(fpt32, "b");
    + 39  Term c = tm.mkConst(fpt32, "c");
    + 40  Term d = tm.mkConst(fpt32, "d");
    + 41  Term e = tm.mkConst(fpt32, "e");
    + 42  // Rounding mode
    + 43  Term rm = tm.mkRoundingMode(RoundingMode::ROUND_NEAREST_TIES_TO_EVEN);
    + 44
    + 45  std::cout << "Show that fused multiplication and addition `(fp.fma RM a b c)`"
    + 46            << std::endl
    + 47            << "is different from `(fp.add RM (fp.mul a b) c)`:" << std::endl;
    + 48  solver.push(1);
    + 49  Term fma = tm.mkTerm(Kind::FLOATINGPOINT_FMA, {rm, a, b, c});
    + 50  Term mul = tm.mkTerm(Kind::FLOATINGPOINT_MULT, {rm, a, b});
    + 51  Term add = tm.mkTerm(Kind::FLOATINGPOINT_ADD, {rm, mul, c});
    + 52  solver.assertFormula(tm.mkTerm(Kind::DISTINCT, {fma, add}));
    + 53  Result r = solver.checkSat();  // result is sat
    + 54  std::cout << "Expect sat: " << r << std::endl;
    + 55  std::cout << "Value of `a`: " << solver.getValue(a) << std::endl;
    + 56  std::cout << "Value of `b`: " << solver.getValue(b) << std::endl;
    + 57  std::cout << "Value of `c`: " << solver.getValue(c) << std::endl;
    + 58  std::cout << "Value of `(fp.fma RNE a b c)`: " << solver.getValue(fma)
    + 59            << std::endl;
    + 60  std::cout << "Value of `(fp.add RNE (fp.mul a b) c)`: "
    + 61            << solver.getValue(add) << std::endl;
    + 62  std::cout << std::endl;
    + 63  solver.pop(1);
    + 64
    + 65  std::cout << "Show that floating-point addition is not associative:"
    + 66            << std::endl;
    + 67  std::cout << "(a + (b + c)) != ((a + b) + c)" << std::endl;
    + 68  solver.push(1);
    + 69  solver.assertFormula(tm.mkTerm(
    + 70      Kind::DISTINCT,
    + 71      {tm.mkTerm(Kind::FLOATINGPOINT_ADD,
    + 72                 {rm, a, tm.mkTerm(Kind::FLOATINGPOINT_ADD, {rm, b, c})}),
    + 73       tm.mkTerm(Kind::FLOATINGPOINT_ADD,
    + 74                 {rm, tm.mkTerm(Kind::FLOATINGPOINT_ADD, {rm, a, b}), c})}));
    + 75
    + 76  r = solver.checkSat();  // result is sat
    + 77  std::cout << "Expect sat: " << r << std::endl;
    + 78  assert (r.isSat());
    + 79
    + 80  std::cout << "Value of `a`: " << solver.getValue(a) << std::endl;
    + 81  std::cout << "Value of `b`: " << solver.getValue(b) << std::endl;
    + 82  std::cout << "Value of `c`: " << solver.getValue(c) << std::endl;
    + 83  std::cout << std::endl;
    + 84
    + 85  std::cout << "Now, restrict `a` to be either NaN or positive infinity:"
    + 86            << std::endl;
    + 87  Term nan = tm.mkFloatingPointNaN(8, 24);
    + 88  Term inf = tm.mkFloatingPointPosInf(8, 24);
    + 89  solver.assertFormula(tm.mkTerm(
    + 90      Kind::OR,
    + 91      {tm.mkTerm(Kind::EQUAL, {a, inf}), tm.mkTerm(Kind::EQUAL, {a, nan})}));
    + 92
    + 93  r = solver.checkSat();  // result is sat
    + 94  std::cout << "Expect sat: " << r << std::endl;
    + 95  assert (r.isSat());
    + 96
    + 97  std::cout << "Value of `a`: " << solver.getValue(a) << std::endl;
    + 98  std::cout << "Value of `b`: " << solver.getValue(b) << std::endl;
    + 99  std::cout << "Value of `c`: " << solver.getValue(c) << std::endl;
    +100  std::cout << std::endl;
    +101  solver.pop(1);
    +102
    +103  std::cout << "Now, try to find a (normal) floating-point number that rounds"
    +104            << std::endl
    +105            << "to different integer values for different rounding modes:"
    +106            << std::endl;
    +107  solver.push(1);
    +108  Term rtp = tm.mkRoundingMode(RoundingMode::ROUND_TOWARD_POSITIVE);
    +109  Term rtn = tm.mkRoundingMode(RoundingMode::ROUND_TOWARD_NEGATIVE);
    +110  Op op = tm.mkOp(Kind::FLOATINGPOINT_TO_UBV, {16});  // (_ fp.to_ubv 16)
    +111  Term lhs = tm.mkTerm(op, {rtp, d});
    +112  Term rhs = tm.mkTerm(op, {rtn, d});
    +113  solver.assertFormula(tm.mkTerm(Kind::FLOATINGPOINT_IS_NORMAL, {d}));
    +114  solver.assertFormula(
    +115      tm.mkTerm(Kind::NOT, {tm.mkTerm(Kind::EQUAL, {lhs, rhs})}));
    +116
    +117  r = solver.checkSat();  // result is sat
    +118  std::cout << "Expect sat: " << r << std::endl;
    +119  assert (r.isSat());
    +120  std::cout << std::endl;
    +121
    +122  std::cout << "Get value of `d` as floating-point, bit-vector and real:"
    +123            << std::endl;
    +124  Term val = solver.getValue(d);
    +125  std::cout << "Value of `d`: " << val << std::endl;
    +126  std::cout << "Value of `((_ fp.to_ubv 16) RTP d)`: " << solver.getValue(lhs)
    +127            << std::endl;
    +128  std::cout << "Value of `((_ fp.to_ubv 16) RTN d)`: " << solver.getValue(rhs)
    +129            << std::endl;
    +130  std::cout << "Value of `(fp.to_real d)` "
    +131            << solver.getValue(tm.mkTerm(Kind::FLOATINGPOINT_TO_REAL, {val}))
    +132            << std::endl;
    +133  std::cout << std::endl;
    +134  solver.pop(1);
    +135
    +136  std::cout << "Finally, try to find a floating-point number between positive"
    +137            << std::endl
    +138            << "zero and the smallest positive floating-point number:"
    +139            << std::endl;
    +140  Term zero = tm.mkFloatingPointPosZero(8, 24);
    +141  Term smallest = tm.mkFloatingPoint(8, 24, tm.mkBitVector(32, 1));
    +142  solver.assertFormula(
    +143      tm.mkTerm(Kind::AND,
    +144                {tm.mkTerm(Kind::FLOATINGPOINT_LT, {zero, e}),
    +145                 tm.mkTerm(Kind::FLOATINGPOINT_LT, {e, smallest})}));
    +146
    +147  r = solver.checkSat();  // result is unsat
    +148  std::cout << "Expect unsat: " << r << std::endl;
    +149  assert(r.isUnsat());
    +150}
    +
    +
    +
    +
    + + + + + +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/helloworld.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/helloworld.html new file mode 100644 index 0000000000..143214c602 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/helloworld.html @@ -0,0 +1,637 @@ + + + + + + + + + + + Hello World — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Hello World + +  + +

    +

    + This example shows the very basic usage of the API. +We create a solver, declare a Boolean variable and check whether it is entailed +(by + + + true + + + , as nothing has been asserted to the solver). +

    +
    +
    + + + + + + +
    +
    +

    + + examples/api/cpp/helloworld.cpp + +

    +
    +
    +
     1/******************************************************************************
    + 2 * Top contributors (to current version):
    + 3 *   Aina Niemetz, Tim King, Mathias Preiner
    + 4 *
    + 5 * This file is part of the cvc5 project.
    + 6 *
    + 7 * Copyright (c) 2009-2024 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 * A very simple cvc5 example.
    +14 */
    +15
    +16#include <cvc5/cvc5.h>
    +17
    +18#include <iostream>
    +19
    +20using namespace cvc5;
    +21
    +22int main()
    +23{
    +24  TermManager tm;
    +25  Solver slv(tm);
    +26  Term helloworld = tm.mkConst(tm.getBooleanSort(), "Hello World!");
    +27  std::cout << helloworld << " is " << slv.checkSatAssuming(helloworld)
    +28            << std::endl;
    +29  return 0;
    +30}
    +
    +
    +
    +
    + + + + + +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/lineararith.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/lineararith.html new file mode 100644 index 0000000000..98cd11ccc9 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/lineararith.html @@ -0,0 +1,936 @@ + + + + + + + + + + + Theory of Linear Arithmetic — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Theory of Linear Arithmetic + +  + +

    +

    + This example asserts three constraints over an integer variable + + + x + + + and a real variable + + + y + + + . +Firstly, it checks that these constraints entail an upper bound on the difference + + + y + + + - + + + x + + + <= + + + 2/3 + + + . +Secondly, it checks that this bound is tight by asserting + + + y + + + - + + + x + + + = + + + 2/3 + + + and checking for satisfiability. +The two checks are separated by using + + + push + + + and + + + pop + + + . +

    +
    +
    + + + + + + +
    +
    +

    + + examples/api/cpp/linear_arith.cpp + +

    +
    +
    +
     1/******************************************************************************
    + 2 * Top contributors (to current version):
    + 3 *   Aina Niemetz, Tim King, Haniel Barbosa
    + 4 *
    + 5 * This file is part of the cvc5 project.
    + 6 *
    + 7 * Copyright (c) 2009-2024 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 * A simple demonstration of the linear arithmetic solving capabilities and
    +14 * the push pop of cvc5. This also gives an example option.
    +15 */
    +16
    +17#include <iostream>
    +18
    +19#include <cvc5/cvc5.h>
    +20
    +21using namespace std;
    +22using namespace cvc5;
    +23
    +24int main()
    +25{
    +26  TermManager tm;
    +27  Solver slv(tm);
    +28  slv.setLogic("QF_LIRA"); // Set the logic
    +29
    +30  // Prove that if given x (Integer) and y (Real) then
    +31  // the maximum value of y - x is 2/3
    +32
    +33  // Sorts
    +34  Sort real = tm.getRealSort();
    +35  Sort integer = tm.getIntegerSort();
    +36
    +37  // Variables
    +38  Term x = tm.mkConst(integer, "x");
    +39  Term y = tm.mkConst(real, "y");
    +40
    +41  // Constants
    +42  Term three = tm.mkInteger(3);
    +43  Term neg2 = tm.mkInteger(-2);
    +44  Term two_thirds = tm.mkReal(2, 3);
    +45
    +46  // Terms
    +47  Term three_y = tm.mkTerm(Kind::MULT, {three, y});
    +48  Term diff = tm.mkTerm(Kind::SUB, {y, x});
    +49
    +50  // Formulas
    +51  Term x_geq_3y = tm.mkTerm(Kind::GEQ, {x, three_y});
    +52  Term x_leq_y = tm.mkTerm(Kind::LEQ, {x, y});
    +53  Term neg2_lt_x = tm.mkTerm(Kind::LT, {neg2, x});
    +54
    +55  Term assertions = tm.mkTerm(Kind::AND, {x_geq_3y, x_leq_y, neg2_lt_x});
    +56
    +57  cout << "Given the assertions " << assertions << endl;
    +58  slv.assertFormula(assertions);
    +59
    +60
    +61  slv.push();
    +62  Term diff_leq_two_thirds = tm.mkTerm(Kind::LEQ, {diff, two_thirds});
    +63  cout << "Prove that " << diff_leq_two_thirds << " with cvc5." << endl;
    +64  cout << "cvc5 should report UNSAT." << endl;
    +65  cout << "Result from cvc5 is: "
    +66       << slv.checkSatAssuming(diff_leq_two_thirds.notTerm()) << endl;
    +67  slv.pop();
    +68
    +69  cout << endl;
    +70
    +71  slv.push();
    +72  Term diff_is_two_thirds = tm.mkTerm(Kind::EQUAL, {diff, two_thirds});
    +73  slv.assertFormula(diff_is_two_thirds);
    +74  cout << "Show that the assertions are consistent with " << endl;
    +75  cout << diff_is_two_thirds << " with cvc5." << endl;
    +76  cout << "cvc5 should report SAT." << endl;
    +77  cout << "Result from cvc5 is: " << slv.checkSat() << endl;
    +78  slv.pop();
    +79
    +80  cout << "Thus the maximum value of (y - x) is 2/3."<< endl;
    +81
    +82  return 0;
    +83}
    +
    +
    +
    +
    + + + + + +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/parser.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/parser.html new file mode 100644 index 0000000000..02ca7d9869 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/parser.html @@ -0,0 +1,739 @@ + + + + + + + + + + + Parser — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Parser + +  + +

    +

    + This example shows how to use the parser via the parser API. +

    +
    +
    + + + + + +
    +
    +

    + + examples/api/cpp/parser.cpp + +

    +
    +
    +
     1/******************************************************************************
    + 2 * Top contributors (to current version):
    + 3 *   Andrew Reynolds, Aina Niemetz
    + 4 *
    + 5 * This file is part of the cvc5 project.
    + 6 *
    + 7 * Copyright (c) 2009-2024 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 * A simple demonstration of using the parser via C++ API.
    +14 */
    +15
    +16#include <cvc5/cvc5.h>
    +17#include <cvc5/cvc5_parser.h>
    +18
    +19#include <iostream>
    +20
    +21using namespace cvc5;
    +22using namespace cvc5::parser;
    +23
    +24int main()
    +25{
    +26  TermManager tm;
    +27  Solver slv(tm);
    +28
    +29  // set that we should print success after each successful command
    +30  slv.setOption("print-success", "true");
    +31
    +32  // construct an input parser associated the solver above
    +33  InputParser parser(&slv);
    +34
    +35  std::stringstream ss;
    +36  ss << "(set-logic QF_LIA)" << std::endl;
    +37  ss << "(declare-fun a () Int)" << std::endl;
    +38  ss << "(declare-fun b () Int)" << std::endl;
    +39  ss << "(declare-fun c () Int)" << std::endl;
    +40  ss << "(assert (> a (+ b c)))" << std::endl;
    +41  ss << "(assert (< a b))" << std::endl;
    +42  ss << "(assert (> c 0))" << std::endl;
    +43  parser.setStreamInput(modes::InputLanguage::SMT_LIB_2_6, ss, "MyStream");
    +44
    +45  // get the symbol manager of the parser, used when invoking commands below
    +46  SymbolManager* sm = parser.getSymbolManager();
    +47
    +48  // parse commands until finished
    +49  Command cmd;
    +50  while (true)
    +51  {
    +52    cmd = parser.nextCommand();
    +53    if (cmd.isNull())
    +54    {
    +55      break;
    +56    }
    +57    std::cout << "Executing command " << cmd << ":" << std::endl;
    +58    // invoke the command on the solver and the symbol manager, print the result
    +59    // to std::cout
    +60    cmd.invoke(&slv, sm, std::cout);
    +61  }
    +62  std::cout << "Finished parsing commands" << std::endl;
    +63
    +64  // now, check sat with the solver
    +65  Result r = slv.checkSat();
    +66  std::cout << "expected: unsat" << std::endl;
    +67  std::cout << "result: " << r << std::endl;
    +68}
    +
    +
    +
    +
    + + + + +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/parser_sym_manager.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/parser_sym_manager.html new file mode 100644 index 0000000000..9f9b25878f --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/parser_sym_manager.html @@ -0,0 +1,766 @@ + + + + + + + + + + + Parser with Shared Symbol Manager — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Parser with Shared Symbol Manager + +  + +

    +

    + This example shows how to use the parser via the parser API and use it to +parse additional terms in another input source. +

    +
    +
    + + + + +
    +
    +

    + + examples/api/cpp/parser_sym_manager.cpp + +

    +
    +
    +
     1/******************************************************************************
    + 2 * Top contributors (to current version):
    + 3 *   Andrew Reynolds, Aina Niemetz
    + 4 *
    + 5 * This file is part of the cvc5 project.
    + 6 *
    + 7 * Copyright (c) 2009-2024 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 * A simple demonstration of using multiple parsers with the same symbol manager
    +14 * via C++ API.
    +15 */
    +16
    +17#include <cvc5/cvc5.h>
    +18#include <cvc5/cvc5_parser.h>
    +19
    +20#include <iostream>
    +21
    +22using namespace cvc5;
    +23using namespace cvc5::parser;
    +24
    +25int main()
    +26{
    +27  TermManager tm;
    +28  Solver slv(tm);
    +29
    +30  SymbolManager sm(tm);
    +31
    +32  // construct an input parser associated the solver above
    +33  InputParser parser(&slv, &sm);
    +34
    +35  std::stringstream ss;
    +36  ss << "(set-logic QF_LIA)" << std::endl;
    +37  ss << "(declare-fun a () Int)" << std::endl;
    +38  ss << "(declare-fun b () Int)" << std::endl;
    +39  ss << "(declare-fun c () Bool)" << std::endl;
    +40  parser.setStreamInput(modes::InputLanguage::SMT_LIB_2_6, ss, "MyStream");
    +41
    +42  // parse commands until finished
    +43  Command cmd;
    +44  while (true)
    +45  {
    +46    cmd = parser.nextCommand();
    +47    if (cmd.isNull())
    +48    {
    +49      break;
    +50    }
    +51    std::cout << "Executing command " << cmd << ":" << std::endl;
    +52    // invoke the command on the solver and the symbol manager, print the result
    +53    // to std::cout
    +54    cmd.invoke(&slv, &sm, std::cout);
    +55  }
    +56  std::cout << "Finished parsing commands" << std::endl;
    +57
    +58  // Note that sm now has a,b,c in its symbol table.
    +59
    +60  // Now, construct a new parser with the same symbol manager. We will parse
    +61  // terms with it.
    +62  InputParser parser2(&slv, &sm);
    +63  std::stringstream ss2;
    +64  ss2 << "(+ a b)" << std::endl;
    +65  ss2 << "(- a 10)" << std::endl;
    +66  ss2 << "(>= 0 45)" << std::endl;
    +67  ss2 << "(and c c)" << std::endl;
    +68  ss2 << "true" << std::endl;
    +69  parser2.setStreamInput(modes::InputLanguage::SMT_LIB_2_6, ss2, "MyStream2");
    +70
    +71  // parse terms until finished
    +72  Term t;
    +73  do
    +74  {
    +75    t = parser2.nextTerm();
    +76    std::cout << "Parsed term: " << t << std::endl;
    +77  } while (!t.isNull());
    +78  std::cout << "Finished parsing terms" << std::endl;
    +79}
    +
    +
    +
    +
    + + + +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/quickstart.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/quickstart.html new file mode 100644 index 0000000000..e6c57ecda1 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/quickstart.html @@ -0,0 +1,1507 @@ + + + + + + + + + + + Quickstart Example — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Quickstart Example + +  + +

    +
    +
    + + + + + + +
    +
    +

    + + examples/api/cpp/quickstart.cpp + +

    +
    +
    +
      1/******************************************************************************
    +  2 * Top contributors (to current version):
    +  3 *   Yoni Zohar, Aina Niemetz, Gereon Kremer
    +  4 *
    +  5 * This file is part of the cvc5 project.
    +  6 *
    +  7 * Copyright (c) 2009-2024 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 * A simple demonstration of the API capabilities of cvc5.
    + 14 *
    + 15 */
    + 16
    + 17#include <cvc5/cvc5.h>
    + 18
    + 19#include <iostream>
    + 20#include <numeric>
    + 21
    + 22using namespace cvc5;
    + 23
    + 24int main()
    + 25{
    + 26  // Create a term manager
    + 27  //! [docs-cpp-quickstart-0 start]
    + 28  TermManager tm;
    + 29  //! [docs-cpp-quickstart-0 end]
    + 30  // Create a solver
    + 31  //! [docs-cpp-quickstart-1 start]
    + 32  Solver solver(tm);
    + 33  //! [docs-cpp-quickstart-1 end]
    + 34
    + 35  // We will ask the solver to produce models and unsat cores,
    + 36  // hence these options should be turned on.
    + 37  //! [docs-cpp-quickstart-2 start]
    + 38  solver.setOption("produce-models", "true");
    + 39  solver.setOption("produce-unsat-cores", "true");
    + 40  //! [docs-cpp-quickstart-2 end]
    + 41
    + 42  // The simplest way to set a logic for the solver is to choose "ALL".
    + 43  // This enables all logics in the solver.
    + 44  // Alternatively, "QF_ALL" enables all logics without quantifiers.
    + 45  // To optimize the solver's behavior for a more specific logic,
    + 46  // use the logic name, e.g. "QF_BV" or "QF_AUFBV".
    + 47
    + 48  // Set the logic
    + 49  //! [docs-cpp-quickstart-3 start]
    + 50  solver.setLogic("ALL");
    + 51  //! [docs-cpp-quickstart-3 end]
    + 52
    + 53  // In this example, we will define constraints over reals and integers.
    + 54  // Hence, we first obtain the corresponding sorts.
    + 55  //! [docs-cpp-quickstart-4 start]
    + 56  Sort realSort = tm.getRealSort();
    + 57  Sort intSort = tm.getIntegerSort();
    + 58  //! [docs-cpp-quickstart-4 end]
    + 59
    + 60  // x and y will be real variables, while a and b will be integer variables.
    + 61  // Formally, their cpp type is Term,
    + 62  // and they are called "constants" in SMT jargon:
    + 63  //! [docs-cpp-quickstart-5 start]
    + 64  Term x = tm.mkConst(realSort, "x");
    + 65  Term y = tm.mkConst(realSort, "y");
    + 66  Term a = tm.mkConst(intSort, "a");
    + 67  Term b = tm.mkConst(intSort, "b");
    + 68  //! [docs-cpp-quickstart-5 end]
    + 69
    + 70  // Our constraints regarding x and y will be:
    + 71  //
    + 72  //   (1)  0 < x
    + 73  //   (2)  0 < y
    + 74  //   (3)  x + y < 1
    + 75  //   (4)  x <= y
    + 76  //
    + 77
    + 78  //! [docs-cpp-quickstart-6 start]
    + 79  // Formally, constraints are also terms. Their sort is Boolean.
    + 80  // We will construct these constraints gradually,
    + 81  // by defining each of their components.
    + 82  // We start with the constant numerals 0 and 1:
    + 83  Term zero = tm.mkReal(0);
    + 84  Term one = tm.mkReal(1);
    + 85
    + 86  // Next, we construct the term x + y
    + 87  Term xPlusY = tm.mkTerm(Kind::ADD, {x, y});
    + 88
    + 89  // Now we can define the constraints.
    + 90  // They use the operators +, <=, and <.
    + 91  // In the API, these are denoted by ADD, LEQ, and LT.
    + 92  // A list of available operators is available in:
    + 93  // src/api/cpp/cvc5_kind.h
    + 94  Term constraint1 = tm.mkTerm(Kind::LT, {zero, x});
    + 95  Term constraint2 = tm.mkTerm(Kind::LT, {zero, y});
    + 96  Term constraint3 = tm.mkTerm(Kind::LT, {xPlusY, one});
    + 97  Term constraint4 = tm.mkTerm(Kind::LEQ, {x, y});
    + 98
    + 99  // Now we assert the constraints to the solver.
    +100  solver.assertFormula(constraint1);
    +101  solver.assertFormula(constraint2);
    +102  solver.assertFormula(constraint3);
    +103  solver.assertFormula(constraint4);
    +104  //! [docs-cpp-quickstart-6 end]
    +105
    +106  // Check if the formula is satisfiable, that is,
    +107  // are there real values for x and y that satisfy all the constraints?
    +108  //! [docs-cpp-quickstart-7 start]
    +109  Result r1 = solver.checkSat();
    +110  //! [docs-cpp-quickstart-7 end]
    +111
    +112  // The result is either SAT, UNSAT, or UNKNOWN.
    +113  // In this case, it is SAT.
    +114  //! [docs-cpp-quickstart-8 start]
    +115  std::cout << "expected: sat" << std::endl;
    +116  std::cout << "result: " << r1 << std::endl;
    +117  //! [docs-cpp-quickstart-8 end]
    +118
    +119  // We can get the values for x and y that satisfy the constraints.
    +120  //! [docs-cpp-quickstart-9 start]
    +121  Term xVal = solver.getValue(x);
    +122  Term yVal = solver.getValue(y);
    +123  //! [docs-cpp-quickstart-9 end]
    +124
    +125  // It is also possible to get values for compound terms,
    +126  // even if those did not appear in the original formula.
    +127  //! [docs-cpp-quickstart-10 start]
    +128  Term xMinusY = tm.mkTerm(Kind::SUB, {x, y});
    +129  Term xMinusYVal = solver.getValue(xMinusY);
    +130  //! [docs-cpp-quickstart-10 end]
    +131
    +132  // We can now obtain the string representations of the values.
    +133  //! [docs-cpp-quickstart-11 start]
    +134  std::string xStr = xVal.getRealValue();
    +135  std::string yStr = yVal.getRealValue();
    +136  std::string xMinusYStr = xMinusYVal.getRealValue();
    +137
    +138  std::cout << "value for x: " << xStr << std::endl;
    +139  std::cout << "value for y: " << yStr << std::endl;
    +140  std::cout << "value for x - y: " << xMinusYStr << std::endl;
    +141  //! [docs-cpp-quickstart-11 end]
    +142
    +143  //! [docs-cpp-quickstart-12 start]
    +144  // Further, we can convert the values to cpp types
    +145  std::pair<int64_t, uint64_t> xPair = xVal.getReal64Value();
    +146  std::pair<int64_t, uint64_t> yPair = yVal.getReal64Value();
    +147  std::pair<int64_t, uint64_t> xMinusYPair = xMinusYVal.getReal64Value();
    +148
    +149  std::cout << "value for x: " << xPair.first << "/" << xPair.second
    +150            << std::endl;
    +151  std::cout << "value for y: " << yPair.first << "/" << yPair.second
    +152            << std::endl;
    +153  std::cout << "value for x - y: " << xMinusYPair.first << "/"
    +154            << xMinusYPair.second << std::endl;
    +155  //! [docs-cpp-quickstart-12 end]
    +156
    +157  // Another way to independently compute the value of x - y would be
    +158  // to perform the (rational) arithmetic manually.
    +159  // However, for more complex terms,
    +160  // it is easier to let the solver do the evaluation.
    +161  //! [docs-cpp-quickstart-13 start]
    +162  std::pair<int64_t, uint64_t> xMinusYComputed = {
    +163    xPair.first * yPair.second - xPair.second * yPair.first,
    +164    xPair.second * yPair.second
    +165  };
    +166  uint64_t g = std::gcd(xMinusYComputed.first, xMinusYComputed.second);
    +167  xMinusYComputed = { xMinusYComputed.first / g, xMinusYComputed.second / g };
    +168  if (xMinusYComputed == xMinusYPair)
    +169  {
    +170    std::cout << "computed correctly" << std::endl;
    +171  }
    +172  else
    +173  {
    +174    std::cout << "computed incorrectly" << std::endl;
    +175  }
    +176  //! [docs-cpp-quickstart-13 end]
    +177
    +178  // Next, we will check satisfiability of the same formula,
    +179  // only this time over integer variables a and b.
    +180
    +181  // We start by resetting assertions added to the solver.
    +182  //! [docs-cpp-quickstart-14 start]
    +183  solver.resetAssertions();
    +184  //! [docs-cpp-quickstart-14 end]
    +185
    +186  // Next, we assert the same assertions above with integers.
    +187  // This time, we inline the construction of terms
    +188  // to the assertion command.
    +189  //! [docs-cpp-quickstart-15 start]
    +190  solver.assertFormula(tm.mkTerm(Kind::LT, {tm.mkInteger(0), a}));
    +191  solver.assertFormula(tm.mkTerm(Kind::LT, {tm.mkInteger(0), b}));
    +192  solver.assertFormula(
    +193      tm.mkTerm(Kind::LT, {tm.mkTerm(Kind::ADD, {a, b}), tm.mkInteger(1)}));
    +194  solver.assertFormula(tm.mkTerm(Kind::LEQ, {a, b}));
    +195  //! [docs-cpp-quickstart-15 end]
    +196
    +197  // We check whether the revised assertion is satisfiable.
    +198  //! [docs-cpp-quickstart-16 start]
    +199  Result r2 = solver.checkSat();
    +200  //! [docs-cpp-quickstart-16 end]
    +201
    +202  // This time the formula is unsatisfiable
    +203  //! [docs-cpp-quickstart-17 start]
    +204  std::cout << "expected: unsat" << std::endl;
    +205  std::cout << "result: " << r2 << std::endl;
    +206  //! [docs-cpp-quickstart-17 end]
    +207
    +208  // We can query the solver for an unsatisfiable core, i.e., a subset
    +209  // of the assertions that is already unsatisfiable.
    +210  //! [docs-cpp-quickstart-18 start]
    +211  std::vector<Term> unsatCore = solver.getUnsatCore();
    +212  std::cout << "unsat core size: " << unsatCore.size() << std::endl;
    +213  std::cout << "unsat core: " << std::endl;
    +214  for (const Term& t : unsatCore)
    +215  {
    +216    std::cout << t << std::endl;
    +217  }
    +218  //! [docs-cpp-quickstart-18 end]
    +219
    +220  return 0;
    +221}
    +
    +
    +
    +
    + + + + + +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/relations.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/relations.html new file mode 100644 index 0000000000..255f31be24 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/relations.html @@ -0,0 +1,1330 @@ + + + + + + + + + + + Theory of Relations — cvc5 documentation + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Theory of Relations + +  + +

    +

    + This simple example demonstrates the combined + + theory of finite sets and finite relations + + using a family tree. +Relations are defined as sets of tuples with arity + + \(\geq 1\) + + . +The example includes the unary relations + + \(people, males,\) + + and + + \(females\) + + and the binary relations + + \(father, mother, parent, ancestor\) + + , and + + \(descendant\) + + . +

    +

    + We have the following list of constraints: +

    +
      +
    • +

      + All relations are nonempty. +

      +
    • +
    • +

      + People is the universe set. +

      +
    • +
    • +

      + Males and females are disjoint sets (i.e., + + \(males \cap females = \phi\) + + ). +

      +
    • +
    • +

      + Fathers are males (i.e., + + \(father \bowtie people \subseteq males\) + + ) + + + [ + + * + + ] + + + . +

      +
    • +
    • +

      + Mothers are females (i.e., + + \(mother \bowtie people \subseteq females\) + + ). +

      +
    • +
    • +

      + A parent is a father or a mother (i.e., + + \(parent = father \cup mother\) + + ). +

      +
    • +
    • +

      + Ancestor relation is the transitive closure of parent (i.e., + + \(ancestor = parent^{+}\) + + ). +

      +
    • +
    • +

      + Descendant relation is the transpose of ancestor (i.e., + + \(descendant = ancestor^{-1}\) + + ). +

      +
    • +
    • +

      + No self ancestor (i.e., + + \(\forall x: Person. \langle x, x \rangle \not\in ancestor\) + + ). +

      +
    • +
    + +
    +
    + + + + + +
    +
    +

    + + examples/api/cpp/relations.cpp + +

    +
    +
    +
      1/******************************************************************************
    +  2 * Top contributors (to current version):
    +  3 *   Mudathir Mohamed, Aina Niemetz, Mathias Preiner
    +  4 *
    +  5 * This file is part of the cvc5 project.
    +  6 *
    +  7 * Copyright (c) 2009-2024 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 * A simple demonstration of reasoning about relations via the C++ API.
    + 14 */
    + 15
    + 16#include <cvc5/cvc5.h>
    + 17
    + 18#include <iostream>
    + 19
    + 20using namespace cvc5;
    + 21
    + 22int main()
    + 23{
    + 24  TermManager tm;
    + 25  Solver solver(tm);
    + 26
    + 27  // Set the logic
    + 28  solver.setLogic("ALL");
    + 29
    + 30  // options
    + 31  solver.setOption("produce-models", "true");
    + 32  // we need finite model finding to answer sat problems with universal
    + 33  // quantified formulas
    + 34  solver.setOption("finite-model-find", "true");
    + 35  // we need sets extension to support set.universe operator
    + 36  solver.setOption("sets-exp", "true");
    + 37
    + 38  // (declare-sort Person 0)
    + 39  Sort personSort = tm.mkUninterpretedSort("Person");
    + 40
    + 41  // (Tuple Person)
    + 42  Sort tupleArity1 = tm.mkTupleSort({personSort});
    + 43  // (Relation Person)
    + 44  Sort relationArity1 = tm.mkSetSort(tupleArity1);
    + 45
    + 46  // (Tuple Person Person)
    + 47  Sort tupleArity2 = tm.mkTupleSort({personSort, personSort});
    + 48  // (Relation Person Person)
    + 49  Sort relationArity2 = tm.mkSetSort(tupleArity2);
    + 50
    + 51  // empty set
    + 52  Term emptySetTerm = tm.mkEmptySet(relationArity1);
    + 53
    + 54  // empty relation
    + 55  Term emptyRelationTerm = tm.mkEmptySet(relationArity2);
    + 56
    + 57  // universe set
    + 58  Term universeSet = tm.mkUniverseSet(relationArity1);
    + 59
    + 60  // variables
    + 61  Term people = tm.mkConst(relationArity1, "people");
    + 62  Term males = tm.mkConst(relationArity1, "males");
    + 63  Term females = tm.mkConst(relationArity1, "females");
    + 64  Term father = tm.mkConst(relationArity2, "father");
    + 65  Term mother = tm.mkConst(relationArity2, "mother");
    + 66  Term parent = tm.mkConst(relationArity2, "parent");
    + 67  Term ancestor = tm.mkConst(relationArity2, "ancestor");
    + 68  Term descendant = tm.mkConst(relationArity2, "descendant");
    + 69
    + 70  Term isEmpty1 = tm.mkTerm(Kind::EQUAL, {males, emptySetTerm});
    + 71  Term isEmpty2 = tm.mkTerm(Kind::EQUAL, {females, emptySetTerm});
    + 72
    + 73  // (assert (= people (as set.universe (Relation Person))))
    + 74  Term peopleAreTheUniverse = tm.mkTerm(Kind::EQUAL, {people, universeSet});
    + 75  // (assert (not (= males (as set.empty (Relation Person)))))
    + 76  Term maleSetIsNotEmpty = tm.mkTerm(Kind::NOT, {isEmpty1});
    + 77  // (assert (not (= females (as set.empty (Relation Person)))))
    + 78  Term femaleSetIsNotEmpty = tm.mkTerm(Kind::NOT, {isEmpty2});
    + 79
    + 80  // (assert (= (set.inter males females)
    + 81  //            (as set.empty (Relation Person))))
    + 82  Term malesFemalesIntersection = tm.mkTerm(Kind::SET_INTER, {males, females});
    + 83  Term malesAndFemalesAreDisjoint =
    + 84      tm.mkTerm(Kind::EQUAL, {malesFemalesIntersection, emptySetTerm});
    + 85
    + 86  // (assert (not (= father (as set.empty (Relation Person Person)))))
    + 87  // (assert (not (= mother (as set.empty (Relation Person Person)))))
    + 88  Term isEmpty3 = tm.mkTerm(Kind::EQUAL, {father, emptyRelationTerm});
    + 89  Term isEmpty4 = tm.mkTerm(Kind::EQUAL, {mother, emptyRelationTerm});
    + 90  Term fatherIsNotEmpty = tm.mkTerm(Kind::NOT, {isEmpty3});
    + 91  Term motherIsNotEmpty = tm.mkTerm(Kind::NOT, {isEmpty4});
    + 92
    + 93  // fathers are males
    + 94  // (assert (set.subset (rel.join father people) males))
    + 95  Term fathers = tm.mkTerm(Kind::RELATION_JOIN, {father, people});
    + 96  Term fathersAreMales = tm.mkTerm(Kind::SET_SUBSET, {fathers, males});
    + 97
    + 98  // mothers are females
    + 99  // (assert (set.subset (rel.join mother people) females))
    +100  Term mothers = tm.mkTerm(Kind::RELATION_JOIN, {mother, people});
    +101  Term mothersAreFemales = tm.mkTerm(Kind::SET_SUBSET, {mothers, females});
    +102
    +103  // (assert (= parent (set.union father mother)))
    +104  Term unionFatherMother = tm.mkTerm(Kind::SET_UNION, {father, mother});
    +105  Term parentIsFatherOrMother =
    +106      tm.mkTerm(Kind::EQUAL, {parent, unionFatherMother});
    +107
    +108  // (assert (= ancestor (rel.tclosure parent)))
    +109  Term transitiveClosure = tm.mkTerm(Kind::RELATION_TCLOSURE, {parent});
    +110  Term ancestorFormula = tm.mkTerm(Kind::EQUAL, {ancestor, transitiveClosure});
    +111
    +112  // (assert (= descendant (rel.transpose descendant)))
    +113  Term transpose = tm.mkTerm(Kind::RELATION_TRANSPOSE, {ancestor});
    +114  Term descendantFormula = tm.mkTerm(Kind::EQUAL, {descendant, transpose});
    +115
    +116  // (assert (forall ((x Person)) (not (set.member (tuple x x) ancestor))))
    +117  Term x = tm.mkVar(personSort, "x");
    +118  Term xxTuple = tm.mkTuple({x, x});
    +119  Term member = tm.mkTerm(Kind::SET_MEMBER, {xxTuple, ancestor});
    +120  Term notMember = tm.mkTerm(Kind::NOT, {member});
    +121
    +122  Term quantifiedVariables = tm.mkTerm(Kind::VARIABLE_LIST, {x});
    +123  Term noSelfAncestor =
    +124      tm.mkTerm(Kind::FORALL, {quantifiedVariables, notMember});
    +125
    +126  // formulas
    +127  solver.assertFormula(peopleAreTheUniverse);
    +128  solver.assertFormula(maleSetIsNotEmpty);
    +129  solver.assertFormula(femaleSetIsNotEmpty);
    +130  solver.assertFormula(malesAndFemalesAreDisjoint);
    +131  solver.assertFormula(fatherIsNotEmpty);
    +132  solver.assertFormula(motherIsNotEmpty);
    +133  solver.assertFormula(fathersAreMales);
    +134  solver.assertFormula(mothersAreFemales);
    +135  solver.assertFormula(parentIsFatherOrMother);
    +136  solver.assertFormula(descendantFormula);
    +137  solver.assertFormula(ancestorFormula);
    +138  solver.assertFormula(noSelfAncestor);
    +139
    +140  // check sat
    +141  Result result = solver.checkSat();
    +142
    +143  // output
    +144  std::cout << "Result     = " << result << std::endl;
    +145  std::cout << "people     = " << solver.getValue(people) << std::endl;
    +146  std::cout << "males      = " << solver.getValue(males) << std::endl;
    +147  std::cout << "females    = " << solver.getValue(females) << std::endl;
    +148  std::cout << "father     = " << solver.getValue(father) << std::endl;
    +149  std::cout << "mother     = " << solver.getValue(mother) << std::endl;
    +150  std::cout << "parent     = " << solver.getValue(parent) << std::endl;
    +151  std::cout << "descendant = " << solver.getValue(descendant) << std::endl;
    +152  std::cout << "ancestor   = " << solver.getValue(ancestor) << std::endl;
    +153}
    +
    +
    +
    +
    + + + + +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/sequences.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/sequences.html new file mode 100644 index 0000000000..70a9be348a --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/sequences.html @@ -0,0 +1,823 @@ + + + + + + + + + + + Theory of Sequences — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Theory of Sequences + +  + +

    +
    +
    + + + + + + +
    +
    +

    + + examples/api/cpp/sequences.cpp + +

    +
    +
    +
     1/******************************************************************************
    + 2 * Top contributors (to current version):
    + 3 *   Aina Niemetz, Andres Noetzli, Tianyi Liang
    + 4 *
    + 5 * This file is part of the cvc5 project.
    + 6 *
    + 7 * Copyright (c) 2009-2024 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 * A simple demonstration of reasoning about sequences via the C++ API.
    +14 */
    +15
    +16#include <cvc5/cvc5.h>
    +17
    +18#include <iostream>
    +19
    +20using namespace cvc5;
    +21
    +22int main()
    +23{
    +24  TermManager tm;
    +25  Solver slv(tm);
    +26
    +27  // Set the logic
    +28  slv.setLogic("QF_SLIA");
    +29  // Produce models
    +30  slv.setOption("produce-models", "true");
    +31  // The option strings-exp is needed
    +32  slv.setOption("strings-exp", "true");
    +33
    +34  // Sequence sort
    +35  Sort intSeq = tm.mkSequenceSort(tm.getIntegerSort());
    +36
    +37  // Sequence variables
    +38  Term x = tm.mkConst(intSeq, "x");
    +39  Term y = tm.mkConst(intSeq, "y");
    +40
    +41  // Empty sequence
    +42  Term empty = tm.mkEmptySequence(tm.getIntegerSort());
    +43  // Sequence concatenation: x.y.empty
    +44  Term concat = tm.mkTerm(Kind::SEQ_CONCAT, {x, y, empty});
    +45  // Sequence length: |x.y.empty|
    +46  Term concat_len = tm.mkTerm(Kind::SEQ_LENGTH, {concat});
    +47  // |x.y.empty| > 1
    +48  Term formula1 = tm.mkTerm(Kind::GT, {concat_len, tm.mkInteger(1)});
    +49  // Sequence unit: seq(1)
    +50  Term unit = tm.mkTerm(Kind::SEQ_UNIT, {tm.mkInteger(1)});
    +51  // x = seq(1)
    +52  Term formula2 = tm.mkTerm(Kind::EQUAL, {x, unit});
    +53
    +54  // Make a query
    +55  Term q = tm.mkTerm(Kind::AND, {formula1, formula2});
    +56
    +57  // check sat
    +58  Result result = slv.checkSatAssuming(q);
    +59  std::cout << "cvc5 reports: " << q << " is " << result << "." << std::endl;
    +60
    +61  if (result.isSat())
    +62  {
    +63    std::cout << "  x = " << slv.getValue(x) << std::endl;
    +64    std::cout << "  y = " << slv.getValue(y) << std::endl;
    +65  }
    +66}
    +
    +
    +
    +
    + + + + + +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/sets.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/sets.html new file mode 100644 index 0000000000..86b27ffc9f --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/sets.html @@ -0,0 +1,973 @@ + + + + + + + + + + + Theory of Sets — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Theory of Sets + +  + +

    +
    +
    + + + + + + +
    +
    +

    + + examples/api/cpp/sets.cpp + +

    +
    +
    +
     1/******************************************************************************
    + 2 * Top contributors (to current version):
    + 3 *   Aina Niemetz, Kshitij Bansal, Andrew Reynolds
    + 4 *
    + 5 * This file is part of the cvc5 project.
    + 6 *
    + 7 * Copyright (c) 2009-2024 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 * A simple demonstration of reasoning about sets via the C++ API.
    +14 */
    +15
    +16#include <cvc5/cvc5.h>
    +17
    +18#include <iostream>
    +19
    +20using namespace std;
    +21using namespace cvc5;
    +22
    +23int main()
    +24{
    +25  TermManager tm;
    +26  Solver slv(tm);
    +27
    +28  // Optionally, set the logic. We need at least UF for equality predicate,
    +29  // integers (LIA) and sets (FS).
    +30  slv.setLogic("QF_UFLIAFS");
    +31
    +32  // Produce models
    +33  slv.setOption("produce-models", "true");
    +34
    +35  Sort integer = tm.getIntegerSort();
    +36  Sort set = tm.mkSetSort(integer);
    +37
    +38  // Verify union distributions over intersection
    +39  // (A union B) intersection C = (A intersection C) union (B intersection C)
    +40  {
    +41    Term A = tm.mkConst(set, "A");
    +42    Term B = tm.mkConst(set, "B");
    +43    Term C = tm.mkConst(set, "C");
    +44
    +45    Term unionAB = tm.mkTerm(Kind::SET_UNION, {A, B});
    +46    Term lhs = tm.mkTerm(Kind::SET_INTER, {unionAB, C});
    +47
    +48    Term intersectionAC = tm.mkTerm(Kind::SET_INTER, {A, C});
    +49    Term intersectionBC = tm.mkTerm(Kind::SET_INTER, {B, C});
    +50    Term rhs = tm.mkTerm(Kind::SET_UNION, {intersectionAC, intersectionBC});
    +51
    +52    Term theorem = tm.mkTerm(Kind::EQUAL, {lhs, rhs});
    +53
    +54    cout << "cvc5 reports: " << theorem << " is "
    +55         << slv.checkSatAssuming(theorem.notTerm()) << "." << endl;
    +56  }
    +57
    +58  // Verify emptset is a subset of any set
    +59  {
    +60    Term A = tm.mkConst(set, "A");
    +61    Term emptyset = tm.mkEmptySet(set);
    +62
    +63    Term theorem = tm.mkTerm(Kind::SET_SUBSET, {emptyset, A});
    +64
    +65    cout << "cvc5 reports: " << theorem << " is "
    +66         << slv.checkSatAssuming(theorem.notTerm()) << "." << endl;
    +67  }
    +68
    +69  // Find me an element in {1, 2} intersection {2, 3}, if there is one.
    +70  {
    +71    Term one = tm.mkInteger(1);
    +72    Term two = tm.mkInteger(2);
    +73    Term three = tm.mkInteger(3);
    +74
    +75    Term singleton_one = tm.mkTerm(Kind::SET_SINGLETON, {one});
    +76    Term singleton_two = tm.mkTerm(Kind::SET_SINGLETON, {two});
    +77    Term singleton_three = tm.mkTerm(Kind::SET_SINGLETON, {three});
    +78    Term one_two = tm.mkTerm(Kind::SET_UNION, {singleton_one, singleton_two});
    +79    Term two_three =
    +80        tm.mkTerm(Kind::SET_UNION, {singleton_two, singleton_three});
    +81    Term intersection = tm.mkTerm(Kind::SET_INTER, {one_two, two_three});
    +82
    +83    Term x = tm.mkConst(integer, "x");
    +84
    +85    Term e = tm.mkTerm(Kind::SET_MEMBER, {x, intersection});
    +86
    +87    Result result = slv.checkSatAssuming(e);
    +88    cout << "cvc5 reports: " << e << " is " << result << "." << endl;
    +89
    +90    if (result.isSat())
    +91    {
    +92      cout << "For instance, " << slv.getValue(x) << " is a member." << endl;
    +93    }
    +94  }
    +95}
    +
    +
    +
    +
    + + + + + +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/strings.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/strings.html new file mode 100644 index 0000000000..466c4d0c95 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/strings.html @@ -0,0 +1,971 @@ + + + + + + + + + + + Theory of Strings — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Theory of Strings + +  + +

    +
    +
    + + + + + + +
    +
    +

    + + examples/api/cpp/strings.cpp + +

    +
    +
    +
     1/******************************************************************************
    + 2 * Top contributors (to current version):
    + 3 *   Aina Niemetz, Tianyi Liang, Mathias Preiner
    + 4 *
    + 5 * This file is part of the cvc5 project.
    + 6 *
    + 7 * Copyright (c) 2009-2024 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 * A simple demonstration of reasoning about strings via the C++ API.
    +14 */
    +15
    +16#include <cvc5/cvc5.h>
    +17
    +18#include <iostream>
    +19
    +20using namespace cvc5;
    +21
    +22int main()
    +23{
    +24  TermManager tm;
    +25  Solver slv(tm);
    +26
    +27  // Set the logic
    +28  slv.setLogic("QF_SLIA");
    +29  // Produce models
    +30  slv.setOption("produce-models", "true");
    +31  // The option strings-exp is needed
    +32  slv.setOption("strings-exp", "true");
    +33
    +34  // String type
    +35  Sort string = tm.getStringSort();
    +36
    +37  // std::string
    +38  std::string str_ab("ab");
    +39  // String constants
    +40  Term ab = tm.mkString(str_ab);
    +41  Term abc = tm.mkString("abc");
    +42  // String variables
    +43  Term x = tm.mkConst(string, "x");
    +44  Term y = tm.mkConst(string, "y");
    +45  Term z = tm.mkConst(string, "z");
    +46
    +47  // String concatenation: x.ab.y
    +48  Term lhs = tm.mkTerm(Kind::STRING_CONCAT, {x, ab, y});
    +49  // String concatenation: abc.z
    +50  Term rhs = tm.mkTerm(Kind::STRING_CONCAT, {abc, z});
    +51  // x.ab.y = abc.z
    +52  Term formula1 = tm.mkTerm(Kind::EQUAL, {lhs, rhs});
    +53
    +54  // Length of y: |y|
    +55  Term leny = tm.mkTerm(Kind::STRING_LENGTH, {y});
    +56  // |y| >= 0
    +57  Term formula2 = tm.mkTerm(Kind::GEQ, {leny, tm.mkInteger(0)});
    +58
    +59  // Regular expression: (ab[c-e]*f)|g|h
    +60  Term r = tm.mkTerm(
    +61      Kind::REGEXP_UNION,
    +62
    +63      {tm.mkTerm(Kind::REGEXP_CONCAT,
    +64                 {tm.mkTerm(Kind::STRING_TO_REGEXP, {tm.mkString("ab")}),
    +65                  tm.mkTerm(Kind::REGEXP_STAR,
    +66                            {tm.mkTerm(Kind::REGEXP_RANGE,
    +67                                       {tm.mkString("c"), tm.mkString("e")})}),
    +68                  tm.mkTerm(Kind::STRING_TO_REGEXP, {tm.mkString("f")})}),
    +69       tm.mkTerm(Kind::STRING_TO_REGEXP, {tm.mkString("g")}),
    +70       tm.mkTerm(Kind::STRING_TO_REGEXP, {tm.mkString("h")})});
    +71
    +72  // String variables
    +73  Term s1 = tm.mkConst(string, "s1");
    +74  Term s2 = tm.mkConst(string, "s2");
    +75  // String concatenation: s1.s2
    +76  Term s = tm.mkTerm(Kind::STRING_CONCAT, {s1, s2});
    +77
    +78  // s1.s2 in (ab[c-e]*f)|g|h
    +79  Term formula3 = tm.mkTerm(Kind::STRING_IN_REGEXP, {s, r});
    +80
    +81  // Make a query
    +82  Term q = tm.mkTerm(Kind::AND, {formula1, formula2, formula3});
    +83
    +84  // check sat
    +85  Result result = slv.checkSatAssuming(q);
    +86  std::cout << "cvc5 reports: " << q << " is " << result << "." << std::endl;
    +87
    +88  if(result.isSat())
    +89  {
    +90    std::cout << "  x  = " << slv.getValue(x) << std::endl;
    +91    std::cout << "  s1.s2 = " << slv.getValue(s) << std::endl;
    +92  }
    +93}
    +
    +
    +
    +
    + + + + + +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/sygus-fun.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/sygus-fun.html new file mode 100644 index 0000000000..733308eaf1 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/sygus-fun.html @@ -0,0 +1,1422 @@ + + + + + + + + + + + SyGuS: Functions — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + SyGuS: Functions + +  + +

    +
    +
    + + + + + +
    +
    +

    + + examples/api/cpp/sygus-fun.cpp + +

    +
    +
    +
      1/******************************************************************************
    +  2 * Top contributors (to current version):
    +  3 *   Abdalrhman Mohamed, Aina Niemetz, Mathias Preiner
    +  4 *
    +  5 * This file is part of the cvc5 project.
    +  6 *
    +  7 * Copyright (c) 2009-2024 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 * A simple demonstration of the Sygus API.
    + 14 *
    + 15 * A simple demonstration of how to use the Sygus API to synthesize max and min
    + 16 * functions.
    + 17 */
    + 18
    + 19#include <cvc5/cvc5.h>
    + 20
    + 21#include <iostream>
    + 22
    + 23#include "utils.h"
    + 24
    + 25using namespace cvc5;
    + 26
    + 27int main()
    + 28{
    + 29  TermManager tm;
    + 30  Solver slv(tm);
    + 31
    + 32  // required options
    + 33  slv.setOption("sygus", "true");
    + 34  slv.setOption("incremental", "false");
    + 35
    + 36  // set the logic
    + 37  slv.setLogic("LIA");
    + 38
    + 39  Sort integer = tm.getIntegerSort();
    + 40  Sort boolean = tm.getBooleanSort();
    + 41
    + 42  // declare input variables for the functions-to-synthesize
    + 43  Term x = tm.mkVar(integer, "x");
    + 44  Term y = tm.mkVar(integer, "y");
    + 45
    + 46  // declare the grammar non-terminals
    + 47  Term start = tm.mkVar(integer, "Start");
    + 48  Term start_bool = tm.mkVar(boolean, "StartBool");
    + 49
    + 50  // define the rules
    + 51  Term zero = tm.mkInteger(0);
    + 52  Term one = tm.mkInteger(1);
    + 53
    + 54  Term plus = tm.mkTerm(Kind::ADD, {start, start});
    + 55  Term minus = tm.mkTerm(Kind::SUB, {start, start});
    + 56  Term ite = tm.mkTerm(Kind::ITE, {start_bool, start, start});
    + 57
    + 58  Term And = tm.mkTerm(Kind::AND, {start_bool, start_bool});
    + 59  Term Not = tm.mkTerm(Kind::NOT, {start_bool});
    + 60  Term leq = tm.mkTerm(Kind::LEQ, {start, start});
    + 61
    + 62  // create the grammar object
    + 63  Grammar g = slv.mkGrammar({x, y}, {start, start_bool});
    + 64
    + 65  // bind each non-terminal to its rules
    + 66  g.addRules(start, {zero, one, x, y, plus, minus, ite});
    + 67  g.addRules(start_bool, {And, Not, leq});
    + 68
    + 69  // declare the functions-to-synthesize. Optionally, provide the grammar
    + 70  // constraints
    + 71  Term max = slv.synthFun("max", {x, y}, integer, g);
    + 72  Term min = slv.synthFun("min", {x, y}, integer);
    + 73
    + 74  // declare universal variables.
    + 75  Term varX = slv.declareSygusVar("x", integer);
    + 76  Term varY = slv.declareSygusVar("y", integer);
    + 77
    + 78  Term max_x_y = tm.mkTerm(Kind::APPLY_UF, {max, varX, varY});
    + 79  Term min_x_y = tm.mkTerm(Kind::APPLY_UF, {min, varX, varY});
    + 80
    + 81  // add semantic constraints
    + 82  // (constraint (>= (max x y) x))
    + 83  slv.addSygusConstraint(tm.mkTerm(Kind::GEQ, {max_x_y, varX}));
    + 84
    + 85  // (constraint (>= (max x y) y))
    + 86  slv.addSygusConstraint(tm.mkTerm(Kind::GEQ, {max_x_y, varY}));
    + 87
    + 88  // (constraint (or (= x (max x y))
    + 89  //                 (= y (max x y))))
    + 90  slv.addSygusConstraint(tm.mkTerm(Kind::OR,
    + 91                                   {tm.mkTerm(Kind::EQUAL, {max_x_y, varX}),
    + 92                                    tm.mkTerm(Kind::EQUAL, {max_x_y, varY})}));
    + 93
    + 94  // (constraint (= (+ (max x y) (min x y))
    + 95  //                (+ x y)))
    + 96  slv.addSygusConstraint(tm.mkTerm(Kind::EQUAL,
    + 97                                   {tm.mkTerm(Kind::ADD, {max_x_y, min_x_y}),
    + 98                                    tm.mkTerm(Kind::ADD, {varX, varY})}));
    + 99
    +100  // print solutions if available
    +101  if (slv.checkSynth().hasSolution())
    +102  {
    +103    // Output should be equivalent to:
    +104    // (
    +105    //   (define-fun max ((x Int) (y Int)) Int (ite (<= x y) y x))
    +106    //   (define-fun min ((x Int) (y Int)) Int (ite (<= x y) x y))
    +107    // )
    +108    std::vector<Term> terms = {max, min};
    +109    utils::printSynthSolutions(terms, slv.getSynthSolutions(terms));
    +110  }
    +111
    +112  return 0;
    +113}
    +
    +
    +
    +
    + + + + +
    +

    + The utility method used for printing the synthesis solutions in the examples +above is defined separately in the + + + utils + + + module: +

    +
    +
    + + + + + + +
    +
    +

    + + examples/api/cpp/utils.h + +

    +
    +
    +
     1/******************************************************************************
    + 2 * Top contributors (to current version):
    + 3 *   Abdalrhman Mohamed, Mathias Preiner
    + 4 *
    + 5 * This file is part of the cvc5 project.
    + 6 *
    + 7 * Copyright (c) 2009-2024 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 * Utility methods.
    +14 */
    +15
    +16#ifndef CVC5__UTILS_H
    +17#define CVC5__UTILS_H
    +18
    +19#include <cvc5/cvc5.h>
    +20
    +21namespace utils {
    +22
    +23/**
    +24 * Print solutions for synthesis conjecture to the standard output stream.
    +25 * @param terms the terms for which the synthesis solutions were retrieved
    +26 * @param sols the synthesis solutions of the given terms
    +27 */
    +28void printSynthSolutions(const std::vector<cvc5::Term>& terms,
    +29                         const std::vector<cvc5::Term>& sols);
    +30
    +31}  // namespace utils
    +32
    +33#endif  // CVC5__UTILS_H
    +
    +
    +
    +
    + + + + + +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/sygus-inv.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/sygus-inv.html new file mode 100644 index 0000000000..85d342db34 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/sygus-inv.html @@ -0,0 +1,1270 @@ + + + + + + + + + + + SyGuS: Invariants — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + SyGuS: Invariants + +  + +

    +
    +
    + + + + + +
    +
    +

    + + examples/api/cpp/sygus-inv.cpp + +

    +
    +
    +
     1/******************************************************************************
    + 2 * Top contributors (to current version):
    + 3 *   Abdalrhman Mohamed, Aina Niemetz, Mathias Preiner
    + 4 *
    + 5 * This file is part of the cvc5 project.
    + 6 *
    + 7 * Copyright (c) 2009-2024 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 * A simple demonstration of the Sygus API.
    +14 *
    +15 * A simple demonstration of how to use the Sygus API to synthesize a simple
    +16 * invariant.
    +17 */
    +18
    +19#include <cvc5/cvc5.h>
    +20
    +21#include <iostream>
    +22
    +23#include "utils.h"
    +24
    +25using namespace cvc5;
    +26
    +27int main()
    +28{
    +29  TermManager tm;
    +30  Solver slv(tm);
    +31
    +32  // required options
    +33  slv.setOption("sygus", "true");
    +34  slv.setOption("incremental", "false");
    +35
    +36  // set the logic
    +37  slv.setLogic("LIA");
    +38
    +39  Sort integer = tm.getIntegerSort();
    +40  Sort boolean = tm.getBooleanSort();
    +41
    +42  Term zero = tm.mkInteger(0);
    +43  Term one = tm.mkInteger(1);
    +44  Term ten = tm.mkInteger(10);
    +45
    +46  // declare input variables for functions
    +47  Term x = tm.mkVar(integer, "x");
    +48  Term xp = tm.mkVar(integer, "xp");
    +49
    +50  // (ite (< x 10) (= xp (+ x 1)) (= xp x))
    +51  Term ite =
    +52      tm.mkTerm(Kind::ITE,
    +53                {tm.mkTerm(Kind::LT, {x, ten}),
    +54                 tm.mkTerm(Kind::EQUAL, {xp, tm.mkTerm(Kind::ADD, {x, one})}),
    +55                 tm.mkTerm(Kind::EQUAL, {xp, x})});
    +56
    +57  // define the pre-conditions, transition relations, and post-conditions
    +58  Term pre_f =
    +59      slv.defineFun("pre-f", {x}, boolean, tm.mkTerm(Kind::EQUAL, {x, zero}));
    +60  Term trans_f = slv.defineFun("trans-f", {x, xp}, boolean, ite);
    +61  Term post_f =
    +62      slv.defineFun("post-f", {x}, boolean, tm.mkTerm(Kind::LEQ, {x, ten}));
    +63
    +64  // declare the invariant-to-synthesize
    +65  Term inv_f = slv.synthFun("inv-f", {x}, boolean);
    +66
    +67  slv.addSygusInvConstraint(inv_f, pre_f, trans_f, post_f);
    +68
    +69  // print solutions if available
    +70  if (slv.checkSynth().hasSolution())
    +71  {
    +72    // Output should be equivalent to:
    +73    // (
    +74    //   (define-fun inv-f ((x Int)) Bool (not (>= x 11)))
    +75    // )
    +76    std::vector<Term> terms = {inv_f};
    +77    utils::printSynthSolutions(terms, slv.getSynthSolutions(terms));
    +78  }
    +79
    +80  return 0;
    +81}
    +
    +
    +
    +
    + + + + +
    +

    + The utility method used for printing the synthesis solutions in the examples +above is defined separately in the + + + utils + + + module: +

    +
    +
    + + + + + + +
    +
    +

    + + examples/api/cpp/utils.h + +

    +
    +
    +
     1/******************************************************************************
    + 2 * Top contributors (to current version):
    + 3 *   Abdalrhman Mohamed, Mathias Preiner
    + 4 *
    + 5 * This file is part of the cvc5 project.
    + 6 *
    + 7 * Copyright (c) 2009-2024 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 * Utility methods.
    +14 */
    +15
    +16#ifndef CVC5__UTILS_H
    +17#define CVC5__UTILS_H
    +18
    +19#include <cvc5/cvc5.h>
    +20
    +21namespace utils {
    +22
    +23/**
    +24 * Print solutions for synthesis conjecture to the standard output stream.
    +25 * @param terms the terms for which the synthesis solutions were retrieved
    +26 * @param sols the synthesis solutions of the given terms
    +27 */
    +28void printSynthSolutions(const std::vector<cvc5::Term>& terms,
    +29                         const std::vector<cvc5::Term>& sols);
    +30
    +31}  // namespace utils
    +32
    +33#endif  // CVC5__UTILS_H
    +
    +
    +
    +
    + + + + + +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/uf.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/uf.html new file mode 100644 index 0000000000..6a3e56842d --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/examples/uf.html @@ -0,0 +1,782 @@ + + + + + + + + + + + Theory of Uninterpreted Functions — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Theory of Uninterpreted Functions + +  + +

    +
    +
    + + + + + + +
    +
    +

    + + examples/api/cpp/uf.cpp + +

    +
    +
    +
     1/******************************************************************************
    + 2 * Top contributors (to current version):
    + 3 *   Yoni Zohar
    + 4 *
    + 5 * This file is part of the cvc5 project.
    + 6 *
    + 7 * Copyright (c) 2009-2024 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 * A simple demonstration of the capabilities of the cvc5 uf solver.
    +14 */
    +15
    +16#include <cvc5/cvc5.h>
    +17
    +18#include <iostream>
    +19
    +20using namespace cvc5;
    +21
    +22int main()
    +23{
    +24  TermManager tm;
    +25  Solver slv(tm);
    +26  slv.setLogic("QF_UF");
    +27
    +28  // Sorts
    +29  Sort u = tm.mkUninterpretedSort("U");
    +30  Sort boolean = tm.getBooleanSort();
    +31  Sort uTou = tm.mkFunctionSort({u}, u);
    +32  Sort uPred = tm.mkFunctionSort({u}, boolean);
    +33
    +34  // Variables
    +35  Term x = tm.mkConst(u, "x");
    +36  Term y = tm.mkConst(u, "y");
    +37
    +38  // Functions
    +39  Term f = tm.mkConst(uTou, "f");
    +40  Term p = tm.mkConst(uPred, "p");
    +41
    +42  // Terms
    +43  Term f_x = tm.mkTerm(Kind::APPLY_UF, {f, x});
    +44  Term f_y = tm.mkTerm(Kind::APPLY_UF, {f, y});
    +45  Term p_f_x = tm.mkTerm(Kind::APPLY_UF, {p, f_x});
    +46  Term p_f_y = tm.mkTerm(Kind::APPLY_UF, {p, f_y});
    +47
    +48  // Construct the assertions
    +49  Term assertions =
    +50      tm.mkTerm(Kind::AND,
    +51                {
    +52                    tm.mkTerm(Kind::EQUAL, {x, f_x}),  
    +53                    tm.mkTerm(Kind::EQUAL, {y, f_y}),
    +54                    p_f_x.notTerm(),
    +55                    p_f_y
    +56                });
    +57  slv.assertFormula(assertions);
    +58
    +59  std::cout << slv.checkSat()  << std::endl;
    +60
    +61  return 0;
    +62}
    +
    +
    +
    +
    + + + + + +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/genindex.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/genindex.html new file mode 100644 index 0000000000..c0e585abb2 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/genindex.html @@ -0,0 +1,27746 @@ + + + + + + + + + + Index — cvc5 documentation + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    +
      +
    • + + +
    • + +
    • +
    • +
    +
    +
    +
    +
    +

    + Index +

    + +

    + _ +

    + + + + + +
    + + + +
    +

    + A +

    + + + + + +
    + + + +
    +

    + B +

    + + + + + +
    + + + +
    +

    + C +

    + + + + + +
    + + + +
    +

    + D +

    + + + + + +
    + + + +
    +

    + E +

    + + + + + +
    + + + +
    +

    + F +

    + + + + + +
    + + + +
    +

    + G +

    + + + + + +
    + + + +
    +

    + H +

    + + + + + +
    + + + +
    +

    + I +

    + + + + + +
    + + + +
    +

    + K +

    + + + + + +
    + + + +
    +

    + L +

    + + + + + +
    + + + +
    +

    + M +

    + + + + + +
    + + + +
    +

    + N +

    + + + + + +
    + + + +
    +

    + O +

    + + + + + +
    + + + +
    +

    + P +

    + + + + + +
    + + + +
    +

    + Q +

    + + + + + +
    + + + +
    +

    + R +

    + + + + + +
    + + + +
    +

    + S +

    + + + + + +
    + + + +
    +

    + T +

    + + + + + +
    + + + +
    +

    + U +

    + + + + + +
    + + + +
    +

    + V +

    + + + + + +
    + + + +
    +

    + W +

    + + + + +
    + +
    +

    + X +

    + + + + + +
    + + + +
    +

    + Z +

    + + + + +
    + +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/index.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/index.html new file mode 100644 index 0000000000..53170bea71 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/index.html @@ -0,0 +1,361 @@ + + + + + + + + + + + cvc5 Documentation — cvc5 documentation + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    +
      +
    • + + +
    • + +
    • +
    • +
    +
    +
    +
    +
    +
    +

    + cvc5 Documentation + +  + +

    +

    + + cvc5 + + is an open-source automatic theorem prover for Satisfiability Modulo +Theories (SMT) problems that supports a large number of theories and their +combination. +It is the successor of + + CVC4 + + and is +intended to be an open and extensible SMT engine. +

    +

    + This space provides all documentation related to using cvc5. +

    +
    +

    + Table of Contents + +  + +

    + +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/installation/installation.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/installation/installation.html new file mode 100644 index 0000000000..af2ebc558e --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/installation/installation.html @@ -0,0 +1,2092 @@ + + + + + + + + + + + Installation — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    +
      +
    • + + +
    • + +
    • +
    • +
    +
    +
    +
    +
    +
    +

    + Installation + +  + +

    +
    +

    + Building cvc5 + +  + +

    +
    +
    +
    ./configure.sh
    +    # use --prefix to specify an install prefix (default: /usr/local)
    +    # use --name=<PATH> for custom build directory
    +    # use --auto-download to download and build missing, required or
    +    #   enabled, dependencies
    +cd <build_dir>   # default is ./build
    +make             # use -jN for parallel build with N threads
    +make check       # to run default set of tests
    +make install     # to install into the prefix specified above
    +
    +
    +
    +

    + All binaries are built into + + + <build_dir>/bin + + + , the cvc5 libraries are built into + + + <build_dir>/lib + + + . +

    +
    +
    +

    + Supported Operating Systems + +  + +

    +

    + cvc5 can be built natively on Linux and macOS. Native compilation on Windows is also +possible using MSYS2. Additionally, cvc5 supports cross-compilation for x86_64 Windows +using Mingw-w64 and for ARM64 on both Linux and macOS. +We generally recommend a 64-bit operating system. +

    +
    +

    + Compilation on macOS + +  + +

    +

    + On macOS, we recommend using + + Homebrew + + to install the +dependencies. We also have a Homebrew Tap available at + + https://github.com/cvc5/homebrew-cvc5 + + . +Note that linking system libraries statically is + + strongly discouraged + + on macOS. Using + + + ./configure.sh + + + --static + + + will thus produce a binary +that uses static versions of all our dependencies, but is still a dynamically +linked binary. +

    +
    +
    +

    + Compilation on Windows + +  + +

    +

    + Install + + MSYS2 + + and + + Python + + on your system. +Launch a + + MINGW64 environment + + and +install the required packages for building cvc5: +

    +
    +
    +
    pacman -S git make mingw-w64-x86_64-cmake mingw-w64-x86_64-gcc mingw-w64-x86_64-gmp zip
    +
    +
    +
    +

    + Clone the cvc5 repository and follow the general build steps above. +The built binary + + + cvc5.exe + + + and the DLL libraries are located in + + + <build_dir>/bin + + + . The import libraries and the static libraries +can be found in + + + <build_dir>/lib + + + . +

    +
    +
    +

    + Cross-compiling for Windows + +  + +

    +

    + Cross-compiling cvc5 for Windows requires the POSIX version of MinGW-w64. +On some Linux distributions, this is the default variant. On others, like Ubuntu, +you may need to set it manually as follows: +

    +
    +
    +
    sudo update-alternatives --set x86_64-w64-mingw32-gcc /usr/bin/x86_64-w64-mingw32-gcc-posix
    +sudo update-alternatives --set x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix
    +
    +
    +
    +

    + Once the POSIX variant of MinGW-w64 is installed and set on your system, +you can cross-compile cvc5 as follows: +

    +
    +
    +
    ./configure.sh --win64 --static <configure options...>
    +
    +cd <build_dir>   # default is ./build
    +make             # use -jN for parallel build with N threads
    +
    +
    +
    +

    + The built binary + + + cvc5.exe + + + and the DLL libraries are located in + + + <build_dir>/bin + + + . The import libraries and the static libraries +can be found in + + + <build_dir>/lib + + + . +

    +
    +
    +

    + WebAssembly Compilation + +  + +

    +

    + Compiling cvc5 to WebAssembly needs the Emscripten SDK (version 3.1.18 or +latter). Setting up emsdk can be done as follows: +

    +
    +
    +
    git clone https://github.com/emscripten-core/emsdk.git
    +cd emsdk
    +./emsdk install <version>   # <version> = '3.1.18' is preferable, but
    +                            # <version> = 'latest' has high chance of working
    +./emsdk activate <version>
    +source ./emsdk_env.sh   # Activate PATH and other environment variables in the
    +                        # current terminal. Whenever Emscripten is going to be
    +                        # used this command needs to be called before because
    +                        # emsdk doesn't insert the binaries paths directly in
    +                        # the system PATH variable.
    +
    +
    +
    +

    + Refer to the + + emscripten dependencies list + + to ensure that all required dependencies are installed on the system. +

    +

    + Then, in the cvc5 directory: +

    +
    +
    +
    ./configure.sh --static --static-binary --auto-download --wasm=<value> --wasm-flags='<emscripten flags>' <configure options...>
    +
    +cd <build_dir>   # default is ./build
    +make             # use -jN for parallel build with N threads
    +
    +
    +
    +

    + + + --wasm + + + can take three values: + + + WASM + + + (will generate the wasm file for cvc5), + + + JS + + + (not only the wasm, but the .js glue code for web integration) and + + + HTML + + + (both +the last two files and also an .html file which supports the run of the glue +code). +

    +

    + + + --wasm-flags + + + take a string wrapped by a single quote containing the + + emscripten flags + + , +which modifies how the wasm and glue code are built and how they behave. An + + + -s + + + should precede each flag. +

    +

    + For example, to generate a HTML page, use: +

    +
    +
    +
    ./configure.sh --static --static-binary --auto-download --wasm=HTML --name=prod
    +
    +cd prod
    +make            # use -jN for parallel build with N threads
    +
    +
    +
    +

    + After that, you can run + + + python + + + -m + + + http.server + + + within + + + prod/bin + + + , open + + http://0.0.0.0:8000/cvc5.html + + with Chrome to visualize the page generated by Emscripten, write down a valid SMTLIB input, and press ESC twice to obtain its output. +

    +

    + On the other hand, to generate a modularized glue code to be imported by custom web pages, use: +

    +
    +
    +
    ./configure.sh --static --static-binary --auto-download --wasm=JS --wasm-flags='-s MODULARIZE' --name=prod
    +
    +cd prod
    +make            # use -jN for parallel build with N threads
    +
    +
    +
    +
    +
    +
    +

    + Build dependencies + +  + +

    +

    + cvc5 makes uses of a number of tools and libraries. Some of these are required +while others are only used with certain configuration options. If + + + --auto-download + + + is given, cvc5 can automatically download and build most +libraries that are not already installed on your system. If your libraries are +installed in a non-standard location, you can use + + + --dep-path + + + to define an +additional search path for all dependencies. Versions given are minimum +versions; more recent versions should be compatible. +

    + +

    + If + + + --auto-download + + + is given, the Python modules will be installed automatically in +a virtual environment if they are missing. To install the modules globally and skip +the creation of the virtual environment, configure cvc5 with + + + ./configure.sh + + + --no-pyvenv + + + . +

    +
    +

    + CaDiCaL (SAT solver) + +  + +

    +

    + + CaDiCaL + + is a SAT solver that can be +used for the bit-vector solver. It can be downloaded and built automatically. +

    +
    +
    +

    + GMP (GNU Multi-Precision arithmetic library) + +  + +

    +

    + GMP is usually available on your distribution and should be used from there. If +it is not, or you want to cross-compile, or you want to build cvc5 statically +but the distribution does not ship static libraries, cvc5 builds GMP +automatically when + + + --auto-download + + + is given. +

    +
    +
    +

    + SymFPU (Support for the Theory of Floating Point Numbers) + +  + +

    +

    + + SymFPU + + is an implementation +of SMT-LIB/IEEE-754 floating-point operations in terms of bit-vector operations. +It is required for supporting the theory of floating-point numbers and can be +downloaded and built automatically. +

    +
    +
    +
    +

    + Optional Dependencies + +  + +

    +
    +

    + CryptoMiniSat (Optional SAT solver) + +  + +

    +

    + + CryptoMinisat + + is a SAT solver that +can be used for solving bit-vector problems with eager bit-blasting. This +dependency may improve performance. It can be downloaded and built +automatically. Configure cvc5 with + + + configure.sh + + + --cryptominisat + + + to build +with this dependency. +

    +
    +
    +

    + Kissat (Optional SAT solver) + +  + +

    +

    + + Kissat + + is a SAT solver that can be +used for solving bit-vector problems with eager bit-blasting. This dependency +may improve performance. It can be downloaded and built automatically. Configure +cvc5 with + + + configure.sh + + + --kissat + + + to build with this dependency. +

    +
    +
    +

    + LibPoly >= v0.1.13 (Optional polynomial library) + +  + +

    +

    + + LibPoly + + is required for CAD-based +nonlinear reasoning. It can be downloaded and built automatically. Configure +cvc5 with + + + configure.sh + + + --poly + + + to build with this dependency. +

    +
    +
    +

    + CoCoA (Optional computer algebra library) + +  + +

    +

    + + CoCoA + + is required for some non-linear +reasoning and for finite field reasoning. We use a patched version of it, so we +recommend downloading it using the + + + --auto-download + + + configuration flag, +which applies our patch automatically. It is included in the build through the + + + --cocoa + + + --gpl + + + configuration flag. +

    +

    + CoCoA is covered by the GPLv3 license. See below for the ramifications of this. +

    +
    +
    +

    + CLN >= v1.3 (Class Library for Numbers) + +  + +

    +

    + + CLN + + is an alternative multiprecision arithmetic +package that may offer better performance and memory footprint than GMP. +Configure cvc5 with + + + configure.sh + + + --cln + + + --gpl + + + to build with this dependency. +

    +

    + Note that CLN is covered by the + + GNU General Public License, version 3 + + . If you choose to use cvc5 with +CLN support, you are licensing cvc5 under that same license. (Usually cvc5’s +license is more permissive than GPL, see the file + + COPYING + + in the cvc5 source +distribution for details.) +

    +
    +
    +

    + glpk-cut-log (A fork of the GNU Linear Programming Kit) + +  + +

    +

    + + glpk-cut-log + + is a fork of + + GLPK + + (the GNU Linear Programming Kit). +This can be used to speed up certain classes of problems for the arithmetic +implementation in cvc5. (This is not recommended for most users.) +

    +

    + cvc5 is not compatible with the official version of the GLPK library. +To use the patched version of it, we recommend downloading it using +the + + + --auto-download + + + configuration flag, which applies +the patch automatically. +Configure cvc5 with + + + configure.sh + + + --glpk + + + --gpl + + + to build with this dependency. +

    +

    + Note that GLPK and glpk-cut-log are covered by the + + GNU General Public License, +version 3 + + . If you choose to use +cvc5 with GLPK support, you are licensing cvc5 under that same license. (Usually +cvc5’s license is more permissive; see above discussion.) +

    +
    +
    +

    + Editline library (Improved Interactive Experience) + +  + +

    +

    + The + + Editline Library + + library is optionally +used to provide command editing, tab completion, and history functionality at +the cvc5 prompt (when running in interactive mode). Check your distribution for +a package named “libedit-dev” or “libedit-devel” or similar. +

    +
    +
    +

    + Google Test Unit Testing Framework (Unit Tests) + +  + +

    +

    + + Google Test + + is required to optionally +run cvc5’s unit tests (included with the distribution). +See + + Testing cvc5 + + below for more details. +

    +
    +
    +
    +

    + Language bindings + +  + +

    +

    + cvc5 provides a complete and flexible C++ API (see + + + examples/api + + + for +examples). It further provides Java (see + + + examples/SimpleVC.java + + + and + + + examples/api/java + + + ) and Python (see + + + examples/api/python + + + ) API bindings. +

    +

    + Configure cvc5 with + + + configure.sh + + + --<lang>-bindings + + + to build with language +bindings for + + + <lang> + + + . +

    +
    +

    + Dependencies for Language Bindings + +  + +

    + +

    + If + + + --auto-download + + + is given, the Python modules will be installed automatically in +a virtual environment if they are missing. To install the modules globally and skip +the creation of the virtual environment, configure cvc5 with + + + ./configure.sh + + + --no-pyvenv + + + . +

    +

    + If configured with + + + --pythonic-path=PATH + + + , the build system will expect the Pythonic API’s source to be at + + + PATH + + + . +Otherwise, if configured with + + + --auto-download + + + , the build system will download it. +

    +

    + Installing the Python bindings after building from source requires a Python environment with +pip version 20.3 or higher. +

    +

    + If you’re interested in helping to develop, maintain, and test a language +binding, please contact the cvc5 team via + + our issue tracker + + . +

    +
    +
    +
    +

    + Building the API Documentation + +  + +

    +

    + Building the API documentation of cvc5 requires the following dependencies: +

    + +

    + To build the documentation, configure cvc5 with + + + ./configure.sh + + + --docs + + + and +run + + + make + + + docs + + + from within the build directory. +

    +

    + The API documentation can then be found at + + + <build_dir>/docs/sphinx/index.html + + + . +

    +

    + To build the documentation for GitHub pages, change to the build directory and +call + + + make + + + docs-gh + + + . The content of directory + + + <build_dir>/docs/sphinx-gh + + + can then be copied over to GitHub pages. +

    +
    +
    +

    + Building the Examples + +  + +

    +

    + See + + + examples/README.md + + + for instructions on how to build and run the +examples. +

    +
    +
    + + +

    + Testing cvc5 + +  + +

    +

    + We use + + + ctest + + + as test infrastructure. For all command-line options of ctest, +see + + + ctest + + + -h + + + . Some useful options are: +

    +
    +
    +
    ctest -R <regex>           # run all tests with names matching <regex>
    +ctest -E <regex>           # exclude tests with names matching <regex>
    +ctest -L <regex>           # run all tests with labels matching <regex>
    +ctest -LE <regex>          # exclude tests with labels matching <regex>
    +ctest                      # run all tests
    +ctest -jN                  # run all tests in parallel with N threads
    +ctest --output-on-failure  # run all tests and print output of failed tests
    +
    +
    +
    +

    + We have 4 categories of tests: +

    +
      +
    • +

      + + examples + + in directory + + + examples + + + (label: + + example + + ) +

      +
    • +
    • +

      + + regression tests + + (5 levels) in directory + + + test/regress + + + (label: + + regressN + + with N the regression level) +

      +
    • +
    • +

      + + api tests + + in directory + + + test/api + + + (label: + + api + + ) +

      +
    • +
    • +

      + + unit tests + + in directory + + + test/unit + + + (label: + + unit + + ) +

      +
    • +
    +
    +

    + Testing System Tests + +  + +

    +

    + The system tests are not built by default. +

    +
    +
    +
    make apitests                         # build and run all system tests
    +make <api_test>                       # build test/system/<system_test>.<ext>
    +ctest api/<api_test>                  # run test/system/<system_test>.<ext>
    +
    +
    +
    +

    + All system test binaries are built into + + + <build_dir>/bin/test/system + + + . +

    +

    + We use prefix + + + api/ + + + + + + + <api_test> + + + (for + + + <api_test> + + + in + + + test/api + + + ) +as test target name. +

    +
    +
    +
    make ouroborous                       # build test/api/ouroborous.cpp
    +ctest -R ouroborous                   # run all tests that match '*ouroborous*'
    +                                      # > runs api/ouroborous
    +ctest -R ouroborous$                  # run all tests that match '*ouroborous'
    +                                      # > runs api/ouroborous
    +ctest -R api/ouroborous$              # run all tests that match '*api/ouroborous'
    +                                      # > runs api/ouroborous
    +
    +
    +
    +
    +
    +

    + Testing Unit Tests + +  + +

    +

    + The unit tests are not built by default. +

    +

    + Note that cvc5 can only be configured with unit tests in non-static builds with +assertions enabled. +

    +
    +
    +
    make units                            # build and run all unit tests
    +make <unit_test>                      # build test/unit/<subdir>/<unit_test>.<ext>
    +ctest unit/<subdir>/<unit_test>       # run test/unit/<subdir>/<unit_test>.<ext>
    +
    +
    +
    +

    + All unit test binaries are built into + + + <build_dir>/bin/test/unit + + + . +

    +

    + We use prefix + + + unit/ + + + + + + + <subdir>/ + + + + + + + <unit_test> + + + (for + + + <unit_test> + + + in + + + test/unit/<subdir> + + + ) as test target name. +

    +
    +
    +
    make map_util_black                   # build test/unit/base/map_util_black.cpp
    +ctest -R map_util_black               # run all tests that match '*map_util_black*'
    +                                      # > runs unit/base/map_util_black
    +ctest -R base/map_util_black$         # run all tests that match '*base/map_util_black'
    +                                      # > runs unit/base/map_util_black
    +ctest -R unit/base/map_util_black$    # run all tests that match '*unit/base/map_util_black'
    +                                      # > runs unit/base/map_util_black
    +
    +
    +
    +
    +
    +

    + Testing Regression Tests + +  + +

    +

    + We use prefix + + + regressN/ + + + + + + + <subdir>/ + + + + + + + <regress_test> + + + (for + + + <regress_test> + + + in level + + + N + + + in + + + test/regress/regressN/<subdir> + + + ) as test +target name. +

    +
    +
    +
    ctest -L regress                      # run all regression tests
    +ctest -L regress0                     # run all regression tests in level 0
    +ctest -L regress[0-1]                 # run all regression tests in level 0 and 1
    +ctest -R regress                      # run all regression tests
    +ctest -R regress0                     # run all regression tests in level 0
    +ctest -R regress[0-1]                 # run all regression tests in level 0 and 1
    +ctest -R regress0/bug288b             # run all tests that match '*regress0/bug288b*'
    +                                      # > runs regress0/bug288b
    +
    +
    +
    +
    +
    +

    + Custom Targets + +  + +

    +

    + All custom test targets build and run a preconfigured set of tests. +

    +
      +
    • +

      + + + make + + + check + + + [-jN] + + + [ARGS=-jN] + + + The default build-and-test target for cvc5, builds and runs all examples, +all system and unit tests, and regression tests from levels 0 to 2. +

      +
    • +
    • +

      + + + make + + + systemtests + + + [-jN] + + + [ARGS=-jN] + + + Build and run all system tests. +

      +
    • +
    • +

      + + + make + + + units + + + [-jN] + + + [ARGS=-jN] + + + Build and run all unit tests. +

      +
    • +
    • +

      + + + make + + + regress + + + [-jN] + + + [ARGS=-jN] + + + Build and run regression tests from levels 0 to 2. +

      +
    • +
    • +

      + + + make + + + runexamples + + + [-jN] + + + [ARGS=-jN] + + + Build and run all examples. +

      +
    • +
    • +

      + + + make + + + coverage-test + + + [-jN] + + + [ARGS=-jN] + + + Build and run all tests (system and unit tests, regression tests level 0-4) +with gcov to determine code coverage. +

      +
    • +
    +

    + We use + + + ctest + + + as test infrastructure, and by default all test targets +are configured to + + run + + in parallel with the maximum number of threads +available on the system. Override with + + + ARGS=-jN + + + . +

    +

    + Use + + + -jN + + + for parallel + + building + + with + + + N + + + threads. +

    +
    +
    +
    +

    + Recompiling a specific cvc5 version with different LGPL library versions + +  + +

    +

    + To recompile a specific static binary of cvc5 with different versions of the +linked LGPL libraries perform the following steps: +

    +
      +
    1. +

      + Make sure that you have installed the desired LGPL library versions. +You can check the versions found by cvc5’s build system during the configure +phase. +

      +
    2. +
    3. +

      + Determine the commit sha and configuration of the cvc5 binary +

      +
    4. +
    +
    +
    +
    cvc5 --show-config
    +
    +
    +
    +
      +
    1. +

      + Download the specific source code version: +

      +
    2. +
    +
    +
    +
    wget https://github.com/cvc5/cvc5/archive/<commit-sha>.tar.gz
    +
    +
    +
    +
      +
    1. +

      + Extract the source code +

      +
    2. +
    +
    +
    +
    tar xf <commit-sha>.tar.gz
    +
    +
    +
    +
      +
    1. +

      + Change into source code directory +

      +
    2. +
    +
    +
    +
    cd cvc5-<commit-sha>
    +
    +
    +
    +
      +
    1. +

      + Configure cvc5 with options listed by + + + cvc5 + + + --show-config + + +

      +
    2. +
    +
    +
    +
    ./configure.sh --static <options>
    +
    +
    +
    +
      +
    1. +

      + Follow remaining steps from + + build instructions + +

      +
    2. +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/options.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/options.html new file mode 100644 index 0000000000..8f386a19ab --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/options.html @@ -0,0 +1,24268 @@ + + + + + + + + + + + Options — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    +
      +
    • + + +
    • + +
    • +
    • +
    +
    +
    +
    +
    +
    +

    + Options + +  + +

    +

    + cvc5 can be configured at runtime using a wide range of options. +When cvc5 is used as a binary, options can be set on the command line. +Also, options can be set and inspected using the respective commands of the input language and the corresponding API functions: +

    + +

    + Generally, all options are identified by a name + + + <name> + + + , and (optionally) +by a short name + + + <short> + + + (a single letter). +Additionally, they can have one or more aliases, which can be used instead of + + + <name> + + + . +

    +

    + + Internally + + , options are strongly typed and must be either Boolean, (signed +or unsigned) integers, floating-point numbers, strings, or an enumeration type. +Values for options with a numeric type may be restricted to an interval. +

    +

    + Some options have + + custom types + + (e.g., + + + err + + + ) which +require special treatment internally. +The usage of such options is documented as part of the documentation for the corresponding options. +

    +

    + On the command line, a + + Boolean + + option can be set to + + + true + + + via + + + --<name> + + + or + + + -<short> + + + . +Most Boolean options can also be set to + + + false + + + via + + + --no-<name> + + + . +In cvc5’s APIs, this is done via + + + setOption("<name>", + + + "true" + + + | + + + "false") + + + . +

    +

    + For + + all other types + + , values are given on the command line using + + + --<name>=<value> + + + or + + + --<name> + + + <value> + + + , +and + + + setOption("<name>", + + + "<value>") + + + in the APIs. +The given value must be convertible to the appropriate type, in particular for +numeric and enumeration types. +

    +

    + Below is an exhaustive list of options supported by cvc5. +

    +
    +

    + Most Commonly-Used cvc5 Options + +  + +

    +
    +
    + + + i + + + | + + + incremental + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + enable incremental solving +

    +
    +
    +
    +
    + + + L + + + | + + + lang + + + | + + + input-language + + + [custom + + + Language + + + , default + + + Language::LANG_AUTO + + + ] +
    +
    +

    + force input language (default is “auto”; see –lang help) +

    +
    +
    +
    +
    + + + o + + + | + + + output + + + [ + + + none + + + | + + + inst + + + | + + + inst-strategy + + + | + + + oracles + + + | + + + sygus + + + | + + + sygus-grammar + + + | + + + sygus-enumerator + + + | + + + sygus-sol-gterm + + + | + + + trigger + + + | + + + raw-benchmark + + + | + + + learned-lits + + + | + + + subs + + + | + + + post-asserts + + + | + + + pre-asserts + + + | + + + deep-restart + + + | + + + incomplete + + + | + + + lemmas + + + | + + + trusted-proof-steps + + + | + + + timeout-core-benchmark + + + | + + + unsat-core-benchmark + + + | + + + unsat-core-lemmas-benchmark + + + | + + + unsat-core-lemmas + + + | + + + portfolio + + + | + + + block-model + + + | + + + options-auto + + + | + + + rare-db + + + , default + + + none + + + ] +
    +
    +

    + Enable output tag. +

    +

    + Output tags. +

    +
    +
    + + + inst + + + + : + +
    +
    +

    + print instantiations during solving +

    +
    +
    + + + inst-strategy + + + + : + +
    +
    +

    + prints a summary of the instantiation techniques as they are run. +

    +
    +
    + + + oracles + + + + : + +
    +
    +

    + print calls to oracles and responses received +

    +
    +
    + + + sygus + + + + : + +
    +
    +

    + print enumerated terms and candidates generated by the sygus solver +

    +
    +
    + + + sygus-grammar + + + + : + +
    +
    +

    + print grammars automatically generated by the sygus solver +

    +
    +
    + + + sygus-enumerator + + + + : + +
    +
    +

    + print enumerators generated by the sygus solver +

    +
    +
    + + + sygus-sol-gterm + + + + : + +
    +
    +

    + print annotations for terms in sygus solutions that indicate the grammar used to generate them +

    +
    +
    + + + trigger + + + + : + +
    +
    +

    + print selected triggers for quantified formulas +

    +
    +
    + + + raw-benchmark + + + + : + +
    +
    +

    + print the benchmark back on the output verbatim as it is processed +

    +
    +
    + + + learned-lits + + + + : + +
    +
    +

    + print input literals that hold globally +

    +
    +
    + + + subs + + + + : + +
    +
    +

    + print top-level substitutions learned during preprocessing +

    +
    +
    + + + post-asserts + + + + : + +
    +
    +

    + print a benchmark corresponding to the assertions of the input problem after preprocessing +

    +
    +
    + + + pre-asserts + + + + : + +
    +
    +

    + print a benchmark corresponding to the assertions of the input problem before preprocessing +

    +
    +
    + + + deep-restart + + + + : + +
    +
    +

    + print when cvc5 performs a deep restart along with the literals it has learned +

    +
    +
    + + + incomplete + + + + : + +
    +
    +

    + print reason why cvc5 answers unknown for any given check-sat query +

    +
    +
    + + + lemmas + + + + : + +
    +
    +

    + print lemmas as they are added to the SAT solver +

    +
    +
    + + + trusted-proof-steps + + + + : + +
    +
    +

    + print formulas corresponding to trusted proof steps in final proofs +

    +
    +
    + + + timeout-core-benchmark + + + + : + +
    +
    +

    + print the corresponding benchmark when successfully computing a timeout core. +

    +
    +
    + + + unsat-core-benchmark + + + + : + +
    +
    +

    + print the corresponding benchmark when successfully computing an unsat core. +

    +
    +
    + + + unsat-core-lemmas-benchmark + + + + : + +
    +
    +

    + print the corresponding benchmark when successfully computing an unsat core with theory lemmas. +

    +
    +
    + + + unsat-core-lemmas + + + + : + +
    +
    +

    + print diagnostic information on lemmas that appear in an unsat core with theory lemmas +

    +
    +
    + + + portfolio + + + + : + +
    +
    +

    + prints the option strings tried in portfolio mode. +

    +
    +
    + + + block-model + + + + : + +
    +
    +

    + prints the formulas used when block-model is run. +

    +
    +
    + + + options-auto + + + + : + +
    +
    +

    + prints the options set during automatic configuration. +

    +
    +
    + + + rare-db + + + + : + +
    +
    +

    + upon initialization, print the entire set of RARE rewrite rules as they are defined in the proof signature. +

    +
    +
    +
    +
    +
    +
    + + + parse-only + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + exit after parsing input +

    +
    +
    +
    +
    + + + preprocess-only + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + exit after preprocessing input +

    +
    +
    +
    +
    + + + q + + + | + + + quiet + + + [type + + + bool + + + ] +
    +
    +

    + decrease verbosity (may be repeated) +

    +
    +
    +
    +
    + + + rlimit + + + [type + + + uint64_t + + + , default + + + 0 + + + ] +
    +
    +

    + set resource limit +

    +
    +
    +
    +
    + + + rlimit-per + + + | + + + reproducible-resource-limit + + + [type + + + uint64_t + + + , default + + + 0 + + + ] +
    +
    +

    + set resource limit per query +

    +
    +
    +
    +
    + + + stats + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + give statistics on exit +

    +
    +
    +
    +
    + + + stats-all + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + print unchanged (defaulted) statistics as well +

    +
    +
    +
    +
    + + + stats-internal + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + print internal (non-public) statistics as well +

    +
    +
    +
    +
    + + + tlimit + + + [type + + + uint64_t + + + , default + + + 0 + + + ] +
    +
    +

    + set time limit in milliseconds of wall clock time +

    +
    +
    +
    +
    + + + tlimit-per + + + [type + + + uint64_t + + + , default + + + 0 + + + ] +
    +
    +

    + set time limit per query in milliseconds +

    +
    +
    +
    +
    + + + v + + + | + + + verbose + + + [type + + + bool + + + ] +
    +
    +

    + increase verbosity (may be repeated) +

    +
    +
    +
    +
    + + + verbosity + + + [type + + + int64_t + + + , default + + + 0 + + + ] +
    +
    +

    + the verbosity level of cvc5 +

    +
    +
    + +
    +
    + + + h + + + | + + + help + + + [type + + + bool + + + , default + + + false + + + ] +
    +
    +

    + full command line reference +

    +
    +
    +
    +
    + + + H + + + | + + + help-regular + + + [type + + + bool + + + , default + + + false + + + ] +
    +
    +

    + regular command line reference +

    +
    +
    +
    +
    + + + interactive + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + force interactive shell/non-interactive mode +

    +
    +
    +
    +
    + + + print-success + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + print the “success” output required of SMT-LIBv2 +

    +
    +
    +
    +
    + + + s + + + | + + + seed + + + | + + + random-seed + + + [type + + + uint64_t + + + , default + + + 0 + + + ] +
    +
    +

    + seed for random number generator +

    +
    +
    +
    +
    + + + show-config + + + [type + + + bool + + + , default + + + false + + + ] +
    +
    +

    + show cvc5 static configuration +

    +
    +
    +
    +
    + + + V + + + | + + + version + + + [type + + + bool + + + , default + + + false + + + ] +
    +
    +

    + identify this cvc5 binary +

    +
    +
    +
    +
    + + + force-logic + + + [type + + + string + + + , default + + + "" + + + ] +
    +
    +

    + set the logic, and override all further user attempts to change it +

    +
    +
    +
    +
    + + + strict-parsing + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + be less tolerant of non-conforming inputs, this is an alias for –parsing-mode=strict +

    +
    +
    +
    +
    + + + dag-thresh + + + [type + + + int64_t + + + , + + + 0 + + + <= + + + N + + + , default + + + 1 + + + ] +
    +
    +

    + dagify common subexprs appearing > N times (1 == default, 0 == don’t dagify) +

    +
    +
    +
    +
    + + + expr-depth + + + [type + + + int64_t + + + , + + + -1 + + + <= + + + N + + + , default + + + -1 + + + ] +
    +
    +

    + print exprs to depth N (0 == default, -1 == no limit) +

    +
    +
    +
    +
    + + + output-lang + + + | + + + output-language + + + [custom + + + Language + + + , default + + + Language::LANG_AUTO + + + ] +
    +
    +

    + force output language (default is “auto”; see –output-lang help) +

    +
    +
    +
    +
    + + + proof-granularity + + + [ + + + macro + + + | + + + rewrite + + + | + + + theory-rewrite + + + | + + + dsl-rewrite + + + | + + + dsl-rewrite-strict + + + , default + + + macro + + + ] +
    +
    +

    + modes for proof granularity +

    +

    + Modes for proof granularity. +

    +
    +
    + + + macro + + + + : + +
    +
    +

    + Allow macros. Do not improve the granularity of proofs. +

    +
    +
    + + + rewrite + + + + : + +
    +
    +

    + Allow trusted rewrite or substitution steps, expand macros. +

    +
    +
    + + + theory-rewrite + + + + : + +
    +
    +

    + Allow trusted theory rewrite steps, expand macros, rewrite and substitution steps. +

    +
    +
    + + + dsl-rewrite + + + + : + +
    +
    +

    + Allow theory and DSL rewrite steps, expand macros, rewrite, substitution, and theory rewrite steps. +

    +
    +
    + + + dsl-rewrite-strict + + + + : + +
    +
    +

    + Allow theory and DSL rewrite steps giving preference to DSL rewrite steps. +

    +
    +
    +
    +
    +
    +
    + + + print-inst + + + [ + + + list + + + | + + + num + + + , default + + + list + + + ] +
    +
    +

    + print format for printing instantiations +

    +

    + Print format for printing instantiations. +

    +
    +
    + + + list + + + + : + +
    +
    +

    + Print the list of instantiations per quantified formula, when non-empty. +

    +
    +
    + + + num + + + + : + +
    +
    +

    + Print the total number of instantiations per quantified formula, when non-zero. +

    +
    +
    +
    +
    +
    +
    + + + check-models + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + after SAT/INVALID/UNKNOWN, check that the generated model satisfies user assertions +

    +
    +
    +
    +
    + + + check-proofs + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + after UNSAT/VALID, check the generated proof (with proof) +

    +
    +
    +
    +
    + + + m + + + | + + + produce-models + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + support the get-value and get-model commands +

    +
    +
    +
    +
    + + + produce-proofs + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + produce proofs, support check-proofs and get-proof +

    +
    +
    +
    +
    + + + condense-function-values + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + condense values for functions in models rather than explicitly representing them +

    +
    +
    +
    +
    + + + default-function-value-mode + + + [ + + + first + + + | + + + first-enum + + + | + + + hole + + + , default + + + first + + + ] +
    +
    +

    + mode for choosing default values for functions +

    +

    + Defines mode for choosing default values for functions. +

    +
    +
    + + + first + + + + : + +
    +
    +

    + The default value is equal to the value of the first application found of that function when applicable, or the first enumerated term otherwise. +

    +
    +
    + + + first-enum + + + + : + +
    +
    +

    + The default value is equal to the first enumerated value of its range type. +

    +
    +
    + + + hole + + + + : + +
    +
    +

    + The default value is equal to a distinguished variable. +

    +
    +
    +
    +
    +
    +
    +

    + Additional cvc5 Options + +  + +

    +
    +

    + Arithmetic Theory Module + +  + +

    +
    +
    + + + approx-branch-depth + + + [type + + + int64_t + + + , default + + + 200 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + maximum branch depth the approximate solver is allowed to take +

    +
    +
    +
    +
    + + + arith-brab + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + whether to use simple rounding, similar to a unit-cube test, for integers +

    +
    +
    +
    +
    + + + arith-eq-solver + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + whether to use the equality solver in the theory of arithmetic +

    +
    +
    +
    +
    + + + arith-exp + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + enables non-standard extensions of the arithmetic solver +

    +
    +
    +
    +
    + + + arith-prop + + + [ + + + none + + + | + + + unate + + + | + + + bi + + + | + + + both + + + , default + + + both + + + ] +
    +
    +

    + + [experts only] + +

    +

    + turns on arithmetic propagation (default is ‘old’, see –arith-prop=help) +

    +

    + This decides on kind of propagation arithmetic attempts to do during the search. +

    +
    +
    + + + unate + + + + : + +
    +
    +

    + Use constraints to do unate propagation. +

    +
    +
    + + + bi + + + + : + +
    +
    +

    + (Bounds Inference) infers bounds on basic variables using the upper and lower bounds of the non-basic variables in the tableau. +

    +
    +
    + + + both + + + + : + +
    +
    +

    + Use bounds inference and unate. +

    +
    +
    +
    +
    +
    +
    + + + arith-prop-clauses + + + [type + + + uint64_t + + + , default + + + 8 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + rows shorter than this are propagated as clauses +

    +
    +
    +
    +
    + + + arith-rewrite-equalities + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + turns on the preprocessing rewrite turning equalities into a conjunction of inequalities +

    +
    +
    +
    +
    + + + arith-static-learning + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + do arithmetic static learning for ite terms based on bounds when static learning is enabled +

    +
    +
    +
    +
    + + + collect-pivot-stats + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + collect the pivot history +

    +
    +
    +
    +
    + + + cut-all-bounded + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + turns on the integer solving step of periodically cutting all integer variables that have both upper and lower bounds +

    +
    +
    +
    +
    + + + dio-decomps + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + let skolem variables for integer divisibility constraints leak from the dio solver +

    +
    +
    +
    +
    + + + dio-solver + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + turns on Linear Diophantine Equation solver (Griggio, JSAT 2012) +

    +
    +
    +
    +
    + + + dio-turns + + + [type + + + int64_t + + + , default + + + 10 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + turns in a row dio solver cutting gets +

    +
    +
    +
    +
    + + + error-selection-rule + + + [ + + + min + + + | + + + varord + + + | + + + max + + + | + + + sum + + + , default + + + min + + + ] +
    +
    +

    + + [experts only] + +

    +

    + change the pivot rule for the basic variable (default is ‘min’, see –pivot-rule help) +

    +

    + This decides on the rule used by simplex during heuristic rounds for deciding the next basic variable to select. +

    +
    +
    + + + min + + + + : + +
    +
    +

    + The minimum abs() value of the variable’s violation of its bound. +

    +
    +
    + + + varord + + + + : + +
    +
    +

    + The variable order. +

    +
    +
    + + + max + + + + : + +
    +
    +

    + The maximum violation the bound. +

    +
    +
    +
    +
    +
    +
    + + + fc-penalties + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + turns on degenerate pivot penalties +

    +
    +
    +
    +
    + + + heuristic-pivots + + + [type + + + int64_t + + + , default + + + 0 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + the number of times to apply the heuristic pivot rule; if N < 0, this defaults to the number of variables; if this is unset, this is tuned by the logic selection +

    +
    +
    +
    +
    + + + lemmas-on-replay-failure + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + attempt to use external lemmas if approximate solve integer failed +

    +
    +
    +
    +
    + + + maxCutsInContext + + + [type + + + uint64_t + + + , default + + + 65535 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + maximum cuts in a given context before signalling a restart +

    +
    +
    +
    +
    + + + miplib-trick + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + turns on the preprocessing step of attempting to infer bounds on miplib problems +

    +
    +
    +
    +
    + + + miplib-trick-subs + + + [type + + + uint64_t + + + , default + + + 1 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + do substitution for miplib ‘tmp’ vars if defined in <= N eliminated vars +

    +
    +
    +
    +
    + + + new-prop + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + use the new row propagation system +

    +
    +
    +
    +
    + + + nl-cov + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + whether to use the cylindrical algebraic coverings solver for non-linear arithmetic +

    +
    +
    +
    +
    + + + nl-cov-force + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + forces using the cylindrical algebraic coverings solver, even in cases where it is possibly not safe to do so +

    +
    +
    +
    +
    + + + nl-cov-lift + + + [ + + + regular + + + | + + + lazard + + + , default + + + regular + + + ] +
    +
    +

    + + [experts only] + +

    +

    + choose the Coverings lifting mode +

    +

    + Modes for the Coverings lifting in non-linear arithmetic. +

    +
    +
    + + + regular + + + + : + +
    +
    +

    + Regular lifting. +

    +
    +
    + + + lazard + + + + : + +
    +
    +

    + Lazard’s lifting scheme. +

    +
    +
    +
    +
    +
    +
    + + + nl-cov-linear-model + + + [ + + + none + + + | + + + initial + + + | + + + persistent + + + , default + + + none + + + ] +
    +
    +

    + whether to use the linear model as initial guess for the cylindrical algebraic coverings solver +

    +

    + Modes for the usage of the linear model in non-linear arithmetic. +

    +
    +
    + + + none + + + + : + +
    +
    +

    + Do not use linear model to seed nonlinear model +

    +
    +
    + + + initial + + + + : + +
    +
    +

    + Use linear model to seed nonlinear model initially, discard it when it does not work +

    +
    +
    + + + persistent + + + + : + +
    +
    +

    + Use linear model to seed nonlinear model whenever possible +

    +
    +
    +
    +
    +
    +
    + + + nl-cov-proj + + + [ + + + mccallum + + + | + + + lazard + + + | + + + lazard-mod + + + , default + + + mccallum + + + ] +
    +
    +

    + + [experts only] + +

    +

    + choose the Coverings projection operator +

    +

    + Modes for the Coverings projection operator in non-linear arithmetic. +

    +
    +
    + + + mccallum + + + + : + +
    +
    +

    + McCallum’s projection operator. +

    +
    +
    + + + lazard + + + + : + +
    +
    +

    + Lazard’s projection operator. +

    +
    +
    + + + lazard-mod + + + + : + +
    +
    +

    + A modification of Lazard’s projection operator. +

    +
    +
    +
    +
    +
    +
    + + + nl-cov-prune + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + whether to prune intervals more aggressively +

    +
    +
    +
    +
    + + + nl-cov-var-elim + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + whether to eliminate variables using equalities before going into the cylindrical algebraic coverings solver. It can not be used when producing proofs right now. +

    +
    +
    +
    +
    + + + nl-ext + + + [ + + + none + + + | + + + light + + + | + + + full + + + , default + + + full + + + ] +
    +
    +

    + incremental linearization approach to non-linear +

    +

    + Modes for the non-linear linearization +

    +
    +
    + + + none + + + + : + +
    +
    +

    + Disable linearization approach +

    +
    +
    + + + light + + + + : + +
    +
    +

    + Only use a few light-weight lemma schemes +

    +
    +
    + + + full + + + + : + +
    +
    +

    + Use all lemma schemes +

    +
    +
    +
    +
    +
    +
    + + + nl-ext-ent-conf + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + check for entailed conflicts in non-linear solver +

    +
    +
    +
    +
    + + + nl-ext-factor + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + use factoring inference in non-linear incremental linearization solver +

    +
    +
    +
    +
    + + + nl-ext-inc-prec + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + whether to increment the precision for irrational function constraints +

    +
    +
    +
    +
    + + + nl-ext-purify + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + purify non-linear terms at preprocess +

    +
    +
    +
    +
    + + + nl-ext-rbound + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + use resolution-style inference for inferring new bounds in non-linear incremental linearization solver +

    +
    +
    +
    +
    + + + nl-ext-rewrite + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + do context-dependent simplification based on rewrites in non-linear solver +

    +
    +
    +
    +
    + + + nl-ext-split-zero + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + initial splits on zero for all variables +

    +
    +
    +
    +
    + + + nl-ext-tf-taylor-deg + + + [type + + + int64_t + + + , default + + + 4 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + initial degree of polynomials for Taylor approximation +

    +
    +
    +
    +
    + + + nl-ext-tf-tplanes + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + use non-terminating tangent plane strategy for transcendental functions for non-linear incremental linearization solver +

    +
    +
    +
    +
    + + + nl-ext-tplanes + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + use non-terminating tangent plane strategy for non-linear incremental linearization solver +

    +
    +
    +
    +
    + + + nl-ext-tplanes-interleave + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + interleave tangent plane strategy for non-linear incremental linearization solver +

    +
    +
    +
    +
    + + + nl-icp + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + whether to use ICP-style propagations for non-linear arithmetic +

    +
    +
    +
    +
    + + + nl-rlv + + + [ + + + none + + + | + + + interleave + + + | + + + always + + + , default + + + none + + + ] +
    +
    +

    + + [experts only] + +

    +

    + choose mode for using relevance of assertions in non-linear arithmetic +

    +

    + Modes for using relevance of assertions in non-linear arithmetic. +

    +
    +
    + + + none + + + + : + +
    +
    +

    + Do not use relevance. +

    +
    +
    + + + interleave + + + + : + +
    +
    +

    + Alternate rounds using relevance. +

    +
    +
    + + + always + + + + : + +
    +
    +

    + Always use relevance. +

    +
    +
    +
    +
    +
    +
    + + + nl-rlv-assert-bounds + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + use bound inference utility to prune when an assertion is entailed by another +

    +
    +
    +
    +
    + + + pb-rewrites + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + apply pseudo boolean rewrites +

    +
    +
    +
    +
    + + + pivot-threshold + + + [type + + + uint64_t + + + , default + + + 2 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + sets the number of pivots using –pivot-rule per basic variable per simplex instance before using variable order +

    +
    +
    +
    +
    + + + pp-assert-max-sub-size + + + [type + + + uint64_t + + + , default + + + 2 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + threshold for substituting an equality in ppAssert +

    +
    +
    +
    +
    + + + prop-row-length + + + [type + + + uint64_t + + + , default + + + 16 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + sets the maximum row length to be used in propagation +

    +
    +
    +
    +
    + + + replay-early-close-depth + + + [type + + + int64_t + + + , default + + + 1 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + multiples of the depths to try to close the approx log eagerly +

    +
    +
    +
    +
    + + + replay-lemma-reject-cut + + + [type + + + uint64_t + + + , default + + + 25500 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + maximum complexity of any coefficient while outputting replaying cut lemmas +

    +
    +
    +
    +
    + + + replay-num-err-penalty + + + [type + + + int64_t + + + , default + + + 4194304 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + number of solve integer attempts to skips after a numeric failure +

    +
    +
    +
    +
    + + + replay-reject-cut + + + [type + + + uint64_t + + + , default + + + 25500 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + maximum complexity of any coefficient while replaying cuts +

    +
    +
    +
    +
    + + + restrict-pivots + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + have a pivot cap for simplex at effort levels below fullEffort +

    +
    +
    +
    +
    + + + revert-arith-models-on-unsat + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + revert the arithmetic model to a known safe model on unsat if one is cached +

    +
    +
    +
    +
    + + + rr-turns + + + [type + + + int64_t + + + , default + + + 3 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + round robin turn +

    +
    +
    +
    +
    + + + se-solve-int + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + attempt to use the approximate solve integer method on standard effort +

    +
    +
    +
    +
    + + + simplex-check-period + + + [type + + + uint64_t + + + , default + + + 200 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + the number of pivots to do in simplex before rechecking for a conflict on all variables +

    +
    +
    +
    +
    + + + soi-qe + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + use quick explain to minimize the sum of infeasibility conflicts +

    +
    +
    +
    +
    + + + standard-effort-variable-order-pivots + + + [type + + + int64_t + + + , default + + + -1 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + limits the number of pivots in a single invocation of check() at a non-full effort level using Bland’s pivot rule +

    +
    +
    +
    +
    + + + unate-lemmas + + + [ + + + all + + + | + + + eqs + + + | + + + ineqs + + + | + + + none + + + , default + + + all + + + ] +
    +
    +

    + + [experts only] + +

    +

    + determines which lemmas to add before solving (default is ‘all’, see –unate-lemmas=help) +

    +

    + Unate lemmas are generated before SAT search begins using the relationship of constant terms and polynomials. +

    +
    +
    + + + all + + + + : + +
    +
    +

    + A combination of inequalities and equalities. +

    +
    +
    + + + eqs + + + + : + +
    +
    +

    + Outputs lemmas of the general forms (= p c) implies (<= p d) for c < d, or (= p c) implies (not (= p d)) for c != d. +

    +
    +
    + + + ineqs + + + + : + +
    +
    +

    + Outputs lemmas of the general form (<= p c) implies (<= p d) for c < d. +

    +
    +
    + + + none + + + + : + +
    +
    +

    + Do not add unate lemmas. +

    +
    +
    +
    +
    +
    +
    + + + use-approx + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + attempt to use an approximate solver +

    +
    +
    +
    +
    + + + use-fcsimplex + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + use focusing and converging simplex (FMCAD 2013 submission) +

    +
    +
    +
    +
    + + + use-soi + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + use sum of infeasibility simplex (FMCAD 2013 submission) +

    +
    +
    +
    +
    +

    + Arrays Theory Module + +  + +

    +
    +
    + + + arrays-eager-index + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + turn on eager index splitting for generated array lemmas +

    +
    +
    +
    +
    + + + arrays-eager-lemmas + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + turn on eager lemma generation for arrays +

    +
    +
    +
    +
    + + + arrays-exp + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + enable experimental features in the theory of arrays +

    +
    +
    +
    +
    + + + arrays-optimize-linear + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + turn on optimization for linear array terms (see de Moura FMCAD 09 arrays paper) +

    +
    +
    +
    +
    + + + arrays-prop + + + [type + + + int64_t + + + , default + + + 2 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + propagation effort for arrays: 0 is none, 1 is some, 2 is full +

    +
    +
    +
    +
    + + + arrays-reduce-sharing + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + use model information to reduce size of care graph for arrays +

    +
    +
    +
    +
    + + + arrays-weak-equiv + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + use algorithm from Christ/Hoenicke (SMT 2014) +

    +
    +
    +
    +
    +

    + Bags Theory Module + +  + +

    +
    +
    + + + bags + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + enables the bags solver in applicable logics +

    +
    +
    +
    +
    +

    + Base Module + +  + +

    +
    +
    + + + err + + + | + + + diagnostic-output-channel + + + [custom + + + ManagedErr + + + , default + + + {} + + + ] +
    +
    +

    + + [experts only] + +

    +

    + Set the error (or diagnostic) output channel. Writes to stderr for “stderr” or “–”, stdout for “stdout” or the given filename otherwise. +

    +
    +
    +
    +
    + + + in + + + [custom + + + ManagedIn + + + , default + + + {} + + + ] +
    +
    +

    + + [experts only] + +

    +

    + Set the error (or diagnostic) output channel. Reads from stdin for “stdin” or “–” and the given filename otherwise. +

    +
    +
    +
    +
    + + + out + + + | + + + regular-output-channel + + + [custom + + + ManagedOut + + + , default + + + {} + + + ] +
    +
    +

    + + [experts only] + +

    +

    + Set the error (or diagnostic) output channel. Writes to stdout for “stdout” or “–”, stderr for “stderr” or the given filename otherwise. +

    +
    +
    +
    +
    + + + plugin-notify-sat-clause-in-solve + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + only inform plugins of SAT clauses when we are in the main solving loop of the SAT solver +

    +
    +
    +
    +
    + + + plugin-share-skolems + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + true if we permit sharing theory lemmas and SAT clauses with skolems +

    +
    +
    +
    +
    + + + rweight + + + [type + + + string + + + ] +
    +
    +

    + + [experts only] + +

    +

    + set a single resource weight +

    +
    +
    +
    +
    + + + safe-options + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + do not allow setting any option that is not common or regular +

    +
    +
    +
    +
    + + + stats-every-query + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + in incremental mode, print stats after every satisfiability or validity query +

    +
    +
    +
    +
    + + + t + + + | + + + trace + + + [type + + + string + + + ] +
    +
    +

    + trace something (e.g. -t pushpop), can repeat and may contain wildcards like (e.g. -t theory::*) +

    +
    +
    +
    +
    +

    + Bitvector Theory Module + +  + +

    +
    +
    + + + bitblast + + + [ + + + lazy + + + | + + + eager + + + , default + + + lazy + + + ] +
    +
    +

    + choose bitblasting mode, see –bitblast=help +

    +

    + Bit-blasting modes. +

    +
    +
    + + + lazy + + + + : + +
    +
    +

    + Separate Boolean structure and term reasoning between the core SAT solver and the bit-vector SAT solver. +

    +
    +
    + + + eager + + + + : + +
    +
    +

    + Bitblast eagerly to bit-vector SAT solver. +

    +
    +
    +
    +
    +
    +
    + + + bitwise-eq + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + lift equivalence with one-bit bit-vectors to be boolean operations +

    +
    +
    +
    +
    + + + bool-to-bv + + + [ + + + off + + + | + + + ite + + + | + + + all + + + , default + + + off + + + ] +
    +
    +

    + convert booleans to bit-vectors of size 1 at various levels of aggressiveness, see –bool-to-bv=help +

    +

    + BoolToBV preprocessing pass modes. +

    +
    +
    + + + off + + + + : + +
    +
    +

    + Don’t push any booleans to width one bit-vectors. +

    +
    +
    + + + ite + + + + : + +
    +
    +

    + Try to turn ITEs into BITVECTOR_ITE when possible. It can fail per-formula if not all sub-formulas can be turned to bit-vectors. +

    +
    +
    + + + all + + + + : + +
    +
    +

    + Force all booleans to be bit-vectors of width one except at the top level. Most aggressive mode. +

    +
    +
    +
    +
    +
    +
    + + + bv-assert-input + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + assert input assertions on user-level 0 instead of assuming them in the bit-vector SAT solver +

    +
    +
    +
    +
    + + + bv-eager-eval + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + perform eager context-dependent evaluation for applications of bv kinds in the equality engine +

    +
    +
    +
    +
    + + + bv-eq-engine + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + enable equality engine when possible in bitvector theory +

    +
    +
    +
    +
    + + + bv-gauss-elim + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + simplify formula via Gaussian Elimination if applicable +

    +
    +
    +
    +
    + + + bv-intro-pow2 + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + introduce bitvector powers of two as a preprocessing pass +

    +
    +
    +
    +
    + + + bv-propagate + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + use bit-vector propagation in the bit-blaster +

    +
    +
    +
    +
    + + + bv-rw-extend-eq + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + enable additional rewrites over zero/sign extend over equalities with constants (useful on BV/2017-Preiner-scholl-smt08) +

    +
    +
    +
    +
    + + + bv-sat-solver + + + [ + + + minisat + + + | + + + cryptominisat + + + | + + + cadical + + + | + + + kissat + + + , default + + + cadical + + + ] +
    +
    +

    + choose which sat solver to use, see –bv-sat-solver=help +

    +

    + SAT solver for bit-blasting backend. +

    +
    +
    +
    +
    + + + bv-solver + + + [ + + + bitblast + + + | + + + bitblast-internal + + + , default + + + bitblast + + + ] +
    +
    +

    + choose bit-vector solver, see –bv-solver=help +

    +

    + Bit-vector solvers. +

    +
    +
    + + + bitblast + + + + : + +
    +
    +

    + Enables bitblasting solver. +

    +
    +
    + + + bitblast-internal + + + + : + +
    +
    +

    + Enables bitblasting to internal SAT solver with proof support. +

    +
    +
    +
    +
    +
    +
    + + + bv-to-bool + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + lift bit-vectors of size 1 to booleans when possible +

    +
    +
    +
    +
    +

    + Datatypes Theory Module + +  + +

    +
    +
    + + + cdt-bisimilar + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + do bisimilarity check for co-datatypes +

    +
    +
    +
    +
    + + + datatypes-exp + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + enables reasoning about codatatypes +

    +
    +
    +
    +
    + + + dt-binary-split + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + do binary splits for datatype constructor types +

    +
    +
    +
    +
    + + + dt-blast-splits + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + when applicable, blast splitting lemmas for all variables at once +

    +
    +
    +
    +
    + + + dt-cyclic + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + do cyclicity check for datatypes +

    +
    +
    +
    +
    + + + dt-infer-as-lemmas + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + always send lemmas out instead of making internal inferences +

    +
    +
    +
    +
    + + + dt-nested-rec + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + allow nested recursion in datatype definitions +

    +
    +
    +
    +
    + + + dt-polite-optimize + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + turn on optimization for polite combination +

    +
    +
    +
    +
    + + + dt-share-sel + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + internally use shared selectors across multiple constructors +

    +
    +
    +
    +
    + + + sygus-abort-size + + + [type + + + int64_t + + + , default + + + -1 + + + ] +
    +
    +

    + tells enumerative sygus to only consider solutions up to term size N (-1 == no limit, default) +

    +
    +
    +
    +
    + + + sygus-fair + + + [ + + + direct + + + | + + + dt-size + + + | + + + dt-height-bound + + + | + + + dt-size-bound + + + | + + + none + + + , default + + + dt-size + + + ] +
    +
    +

    + if and how to apply fairness for sygus +

    +

    + Modes for enforcing fairness for counterexample guided quantifier instantion. +

    +
    +
    + + + direct + + + + : + +
    +
    +

    + Enforce fairness using direct conflict lemmas. +

    +
    +
    + + + dt-size + + + + : + +
    +
    +

    + Enforce fairness using size operator. +

    +
    +
    + + + dt-height-bound + + + + : + +
    +
    +

    + Enforce fairness by height bound predicate. +

    +
    +
    + + + dt-size-bound + + + + : + +
    +
    +

    + Enforce fairness by size bound predicate. +

    +
    +
    + + + none + + + + : + +
    +
    +

    + Do not enforce fairness. +

    +
    +
    +
    +
    +
    +
    + + + sygus-fair-max + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + use max instead of sum for multi-function sygus conjectures +

    +
    +
    +
    +
    + + + sygus-rewriter + + + [ + + + none + + + | + + + basic + + + | + + + extended + + + , default + + + extended + + + ] +
    +
    +

    + if and how to apply rewriting for sygus symmetry breaking +

    +

    + Modes for applying rewriting for sygus symmetry breaking. +

    +
    +
    + + + none + + + + : + +
    +
    +

    + Do not use the rewriter. +

    +
    +
    + + + basic + + + + : + +
    +
    +

    + Use the basic rewriter. +

    +
    +
    + + + extended + + + + : + +
    +
    +

    + Use the extended rewriter. +

    +
    +
    +
    +
    +
    +
    + + + sygus-simple-sym-break + + + [ + + + none + + + | + + + basic + + + | + + + agg + + + , default + + + agg + + + ] +
    +
    +

    + if and how to apply simple symmetry breaking based on the grammar for smart enumeration +

    +

    + Modes for applying simple symmetry breaking based on the grammar for smart enumeration. +

    +
    +
    + + + none + + + + : + +
    +
    +

    + Do not apply simple symmetry breaking. +

    +
    +
    + + + basic + + + + : + +
    +
    +

    + Apply basic simple symmetry breaking. +

    +
    +
    + + + agg + + + + : + +
    +
    +

    + Apply aggressive simple symmetry breaking. +

    +
    +
    +
    +
    +
    +
    + + + sygus-sym-break-lazy + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + lazily add symmetry breaking lemmas for terms +

    +
    +
    +
    +
    + + + sygus-sym-break-pbe + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + sygus symmetry breaking lemmas based on pbe conjectures +

    +
    +
    +
    +
    + + + sygus-sym-break-rlv + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + add relevancy conditions to symmetry breaking lemmas +

    +
    +
    +
    +
    +

    + Decision Heuristics Module + +  + +

    +
    +
    + + + decision + + + | + + + decision-mode + + + [ + + + internal + + + | + + + justification + + + | + + + stoponly + + + , default + + + internal + + + ] +
    +
    +

    + choose decision mode, see –decision=help +

    +

    + Decision modes. +

    +
    +
    + + + internal + + + + : + +
    +
    +

    + Use the internal decision heuristics of the SAT solver. +

    +
    +
    + + + justification + + + + : + +
    +
    +

    + An ATGP-inspired justification heuristic. +

    +
    +
    + + + stoponly + + + + : + +
    +
    +

    + Use the justification heuristic only to stop early, not for decisions. +

    +
    +
    +
    +
    +
    +
    + + + jh-rlv-order + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + maintain activity-based ordering for decision justification heuristic +

    +
    +
    +
    +
    + + + jh-skolem + + + [ + + + first + + + | + + + last + + + , default + + + first + + + ] +
    +
    +

    + + [experts only] + +

    +

    + policy for when to satisfy skolem definitions in justification heuristic +

    +

    + Policy for when to satisfy skolem definitions in justification heuristic +

    +
    +
    + + + first + + + + : + +
    +
    +

    + satisfy pending relevant skolem definitions before input assertions +

    +
    +
    + + + last + + + + : + +
    +
    +

    + satisfy pending relevant skolem definitions after input assertions +

    +
    +
    +
    +
    +
    +
    + + + jh-skolem-rlv + + + [ + + + assert + + + | + + + always + + + , default + + + assert + + + ] +
    +
    +

    + + [experts only] + +

    +

    + policy for when to consider skolem definitions relevant in justification heuristic +

    +

    + Policy for when to consider skolem definitions relevant in justification heuristic +

    +
    +
    + + + assert + + + + : + +
    +
    +

    + skolems are relevant when they occur in an asserted literal +

    +
    +
    + + + always + + + + : + +
    +
    +

    + skolems are always relevant +

    +
    +
    +
    +
    +
    +
    +

    + Expression Module + +  + +

    +
    +
    + + + type-checking + + + [type + + + bool + + + , default + + + DO_SEMANTIC_CHECKS_BY_DEFAULT + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + type check expressions +

    +
    +
    +
    +
    + + + wf-checking + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + check that terms passed to API methods are well formed (default false for text interface) +

    +
    +
    +
    +
    +

    + Finite Field Theory Module + +  + +

    +
    +
    + + + ff + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + enables the finite field solver in applicable logics +

    +
    +
    +
    +
    + + + ff-bitsum + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + parse bitsums +

    +
    +
    +
    +
    + + + ff-elim-disjunctive-bit + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + rewrite disjunctive bit constraints (or (= x 1) (= x 0)) as (= (* x x) x) +

    +
    +
    +
    +
    + + + ff-field-polys + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + include field polynomials in Groebner basis computation; don’t do this +

    +
    +
    +
    +
    + + + ff-solver + + + [ + + + gb + + + | + + + split + + + , default + + + gb + + + ] +
    +
    +

    + + [experts only] + +

    +

    + which field solver (default: ‘gb’; see –ff-solver=help) +

    +

    + Which field solver +

    +
    +
    + + + gb + + + + : + +
    +
    +

    + use a groebner basis for the whole system +

    +
    +
    + + + split + + + + : + +
    +
    +

    + use multiple groebner bases for partitions of the system +

    +
    +
    +
    +
    +
    +
    + + + ff-trace-gb + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + use a traced groebner basis engine +

    +
    +
    +
    +
    +

    + Floating-Point Module + +  + +

    +
    +
    + + + fp + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + enables the floating point theory in applicable logics +

    +
    +
    +
    +
    + + + fp-exp + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + Allow floating-point sorts of all sizes, rather than only Float32 (8/24) or Float64 (11/53) (experimental) +

    +
    +
    +
    +
    + + + fp-lazy-wb + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + Enable lazier word-blasting (on preNotifyFact instead of registerTerm) +

    +
    +
    +
    +
    +

    + Driver Module + +  + +

    +
    +
    + + + dump-difficulty + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + dump the difficulty measure after every response to check-sat +

    +
    +
    +
    +
    + + + dump-instantiations + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + output instantiations of quantified formulas after every UNSAT/VALID response +

    +
    +
    +
    +
    + + + dump-instantiations-debug + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + output instantiations of quantified formulas after every UNSAT/VALID response, with debug information +

    +
    +
    +
    +
    + + + dump-models + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + output models after every SAT/INVALID/UNKNOWN response +

    +
    +
    +
    +
    + + + dump-proofs + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + output proofs after every UNSAT/VALID response +

    +
    +
    +
    +
    + + + dump-unsat-cores + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + output unsat cores after every UNSAT/VALID response +

    +
    +
    +
    +
    + + + dump-unsat-cores-lemmas + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + output lemmas in unsat cores after every UNSAT/VALID response +

    +
    +
    +
    +
    + + + early-exit + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + do not run destructors at exit; default on except in debug builds +

    +
    +
    +
    +
    + + + force-no-limit-cpu-while-dump + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + Force no CPU limit when dumping models and proofs +

    +
    +
    +
    +
    + + + portfolio-jobs + + + [type + + + uint64_t + + + , default + + + 1 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + Number of parallel jobs the portfolio engine can run +

    +
    +
    +
    +
    + + + segv-spin + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + spin on segfault/other crash waiting for gdb +

    +
    +
    +
    +
    + + + show-trace-tags + + + [type + + + bool + + + , default + + + false + + + ] +
    +
    +

    + + [experts only] + +

    +

    + show all available tags for tracing +

    +
    +
    +
    +
    + + + use-portfolio + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + Use internal portfolio mode based on the logic +

    +
    +
    +
    +
    +

    + Parallel Module + +  + +

    +
    +
    + + + append-learned-literals-to-cubes + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + emit learned literals with the cubes +

    +
    +
    +
    +
    + + + checks-before-partition + + + [type + + + uint64_t + + + , default + + + 1 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + number of standard or full effort checks until partitioning +

    +
    +
    +
    +
    + + + checks-between-partitions + + + [type + + + uint64_t + + + , default + + + 1 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + number of checks between partitions +

    +
    +
    +
    +
    + + + compute-partitions + + + [type + + + uint64_t + + + , default + + + 0 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + make n partitions. n <2 disables computing partitions entirely +

    +
    +
    +
    +
    + + + partition-check + + + | + + + check + + + [ + + + standard + + + | + + + full + + + , default + + + standard + + + ] +
    +
    +

    + + [experts only] + +

    +

    + select whether partitioning happens at full or standard check +

    +

    + Partition check modes. +

    +
    +
    + + + standard + + + + : + +
    +
    +

    + create partitions at standard checks +

    +
    +
    + + + full + + + + : + +
    +
    +

    + create partitions at full checks +

    +
    +
    +
    +
    +
    +
    + + + partition-conflict-size + + + [type + + + uint64_t + + + , default + + + 0 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + number of literals in a cube; if no partition size is set, then the partition conflict size is chosen to be log2(number of requested partitions) +

    +
    +
    +
    +
    + + + partition-start-time + + + [type + + + uint64_t + + + , default + + + 30 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + time to start creating partitions in seconds +

    +
    +
    +
    +
    + + + partition-strategy + + + | + + + partition + + + [ + + + decision-scatter + + + | + + + heap-scatter + + + | + + + lemma-scatter + + + | + + + decision-cube + + + | + + + heap-cube + + + | + + + lemma-cube + + + , default + + + decision-scatter + + + ] +
    +
    +

    + + [experts only] + +

    +

    + choose partition strategy mode +

    +

    + Partition strategy modes. +

    +
    +
    + + + decision-scatter + + + + : + +
    +
    +

    + For 4 partitions, creates partitions C1, !C1 & C2, !C1 & !C2 & C3, !C1 & !C2 & !C3, from decisions +

    +
    +
    + + + heap-scatter + + + + : + +
    +
    +

    + For 4 partitions, creates partitions C1, !C1 & C2, !C1 & !C2 & C3, !C1 & !C2 & !C3, from heap +

    +
    +
    + + + lemma-scatter + + + + : + +
    +
    +

    + For 4 partitions, creates partitions C1, !C1 & C2, !C1 & !C2 & C3, !C1 & !C2 & !C3, from lemmas +

    +
    +
    + + + decision-cube + + + + : + +
    +
    +

    + Creates mutually exclusive cubes from the decisions in the SAT solver. +

    +
    +
    + + + heap-cube + + + + : + +
    +
    +

    + Creates mutually exclusive cubes from the order heap in the SAT solver. +

    +
    +
    + + + lemma-cube + + + + : + +
    +
    +

    + Creates mutually exclusive cubes from the lemmas sent to the SAT solver. +

    +
    +
    +
    +
    +
    +
    + + + partition-time-interval + + + [type + + + double + + + , default + + + 1.0 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + time to wait between scatter partitions +

    +
    +
    +
    +
    + + + partition-tlimit + + + [type + + + uint64_t + + + , default + + + 60 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + time limit for partitioning in seconds +

    +
    +
    +
    +
    + + + partition-when + + + [ + + + tlimit + + + | + + + climit + + + , default + + + tlimit + + + ] +
    +
    +

    + + [experts only] + +

    +

    + choose when to partition +

    +

    + PartitionWhen modes. +

    +
    +
    + + + tlimit + + + + : + +
    +
    +

    + Partition when the time limit is exceeded. +

    +
    +
    + + + climit + + + + : + +
    +
    +

    + Partition when number of checks is exceeded. +

    +
    +
    +
    +
    +
    +
    + + + random-partitioning + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + create random partitions +

    +
    +
    +
    +
    + + + write-partitions-to + + + | + + + partitions-out + + + [custom + + + ManagedOut + + + , default + + + ManagedOut() + + + ] +
    +
    +

    + + [experts only] + +

    +

    + set the output channel for writing partitions +

    +
    +
    +
    +
    +

    + Parser Module + +  + +

    +
    +
    + + + filesystem-access + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + limits the file system access if set to false +

    +
    +
    +
    +
    + + + fresh-binders + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + construct fresh variables always when parsing binders +

    +
    +
    +
    +
    + + + fresh-declarations + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + use API interface for fresh constants when parsing declarations and definitions +

    +
    +
    +
    +
    + + + global-declarations + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + force all declarations and definitions to be global when parsing +

    +
    +
    +
    +
    + + + parse-skolem-definitions + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + allows the parsing of skolems in the input file +

    +
    +
    +
    +
    + + + parsing-mode + + + [ + + + default + + + | + + + strict + + + | + + + lenient + + + , default + + + default + + + ] +
    +
    +

    + + [experts only] + +

    +

    + choose parsing mode, see –parsing-mode=help +

    +

    + Parsing modes. +

    +
    +
    + + + default + + + + : + +
    +
    +

    + Be reasonably tolerant of non-conforming inputs. +

    +
    +
    + + + strict + + + + : + +
    +
    +

    + Be less tolerant of non-conforming inputs. +

    +
    +
    + + + lenient + + + + : + +
    +
    +

    + Be more tolerant of non-conforming inputs. +

    +
    +
    +
    +
    +
    +
    + + + semantic-checks + + + [type + + + bool + + + , default + + + DO_SEMANTIC_CHECKS_BY_DEFAULT + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + enable semantic checks, including type checks +

    +
    +
    +
    +
    +

    + Printing Module + +  + +

    +
    +
    + + + bv-print-consts-as-indexed-symbols + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + print bit-vector constants in decimal (e.g. (_ bv1 4)) instead of binary (e.g. #b0001), applies to SMT-LIB 2.x +

    +
    +
    +
    +
    + + + flatten-ho-chains + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + print (binary) application chains in a flattened way, e.g. (a b c) rather than ((a b) c) +

    +
    +
    +
    +
    + + + model-u-print + + + [ + + + decl-sort-and-fun + + + | + + + decl-fun + + + | + + + dt + + + | + + + none + + + , default + + + none + + + ] +
    +
    +

    + determines how to print uninterpreted elements in models +

    +

    + uninterpreted elements in models printing modes. +

    +
    +
    + + + decl-sort-and-fun + + + + : + +
    +
    +

    + print uninterpreted elements declare-fun, and also include a declare-sort for the sort +

    +
    +
    + + + decl-fun + + + + : + +
    +
    +

    + print uninterpreted elements declare-fun, but don’t include a declare-sort for the sort +

    +
    +
    + + + dt + + + + : + +
    +
    +

    + print uninterpreted elements as a declare-datatype +

    +
    +
    + + + none + + + + : + +
    +
    +

    + (default) do not print declarations of uninterpreted elements in models. +

    +
    +
    +
    +
    +
    +
    + + + print-arith-lit-token + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + print rationals and negative arithmetic literals as lexed tokens, e.g. 1/4, -1.5 +

    +
    +
    +
    +
    + + + print-skolem-definitions + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + print skolems based on their definitions e.g. @ARRAY_DIFF_N prints instead as (@array.diff A B) +

    +
    +
    +
    +
    +

    + Proof Module + +  + +

    +
    +
    + + + check-proof-steps + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + Check proof steps for satisfiability, for refutation soundness testing. Note this checks only steps for non-core proof rules +

    +
    +
    +
    +
    + + + drat-binary-format + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + Print the DRAT proof in binary format +

    +
    +
    +
    +
    + + + lfsc-expand-trust + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + Print the children of trusted proof steps +

    +
    +
    +
    +
    + + + lfsc-flatten + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + Flatten steps in the LFSC proof +

    +
    +
    +
    +
    + + + opt-res-reconstruction-size + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + Optimize resolution reconstruction to reduce proof size +

    +
    +
    +
    +
    + + + print-dot-clusters + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + Whether the proof node clusters (e.g. SAT, CNF, INPUT) will be printed when using the dot format or not. +

    +
    +
    +
    +
    + + + proof-alethe-define-skolems + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + In Alethe proofs, use define-funs in proof preamble for Skolemization terms +

    +
    +
    +
    +
    + + + proof-alethe-res-pivots + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + Add pivots to Alethe resolution steps +

    +
    +
    +
    +
    + + + proof-allow-trust + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + Whether to allow trust in the proof printer (when applicable) +

    +
    +
    +
    +
    + + + proof-check + + + [ + + + eager + + + | + + + eager-simple + + + | + + + lazy + + + | + + + none + + + , default + + + none + + + ] +
    +
    +

    + + [experts only] + +

    +

    + select internal proof checking mode +

    +

    + Internal proof checking modes. +

    +
    +
    + + + eager + + + + : + +
    +
    +

    + check rule applications and proofs from generators eagerly for local debugging +

    +
    +
    + + + eager-simple + + + + : + +
    +
    +

    + check rule applications during construction +

    +
    +
    + + + lazy + + + + : + +
    +
    +

    + check rule applications only during final proof construction +

    +
    +
    + + + none + + + + : + +
    +
    +

    + do not check rule applications +

    +
    +
    +
    +
    +
    +
    + + + proof-dag-global + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + Dagify terms in proofs using global definitions +

    +
    +
    +
    +
    + + + proof-dot-dag + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + Indicates if the dot proof will be printed as a DAG or as a tree +

    +
    +
    +
    +
    + + + proof-elim-subtypes + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + Eliminate subtypes (mixed arithmetic) in proofs +

    +
    +
    +
    +
    + + + proof-format-mode + + + [ + + + none + + + | + + + dot + + + | + + + lfsc + + + | + + + alethe + + + | + + + cpc + + + , default + + + cpc + + + ] +
    +
    +

    + + [experts only] + +

    +

    + select language of proof output +

    +

    + Proof format modes. +

    +
    +
    + + + none + + + + : + +
    +
    +

    + Do not translate proof output +

    +
    +
    + + + dot + + + + : + +
    +
    +

    + Output DOT proof +

    +
    +
    + + + lfsc + + + + : + +
    +
    +

    + Output LFSC proof +

    +
    +
    + + + alethe + + + + : + +
    +
    +

    + Output Alethe proof +

    +
    +
    + + + cpc + + + + : + +
    +
    +

    + Output Cooperating Proof Calculus proof +

    +
    +
    +
    +
    +
    +
    + + + proof-pedantic + + + [type + + + uint64_t + + + , + + + N + + + <= + + + 100 + + + , default + + + 0 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + assertion failure for any incorrect rule application or untrusted lemma having pedantic level <=N with proof +

    +
    +
    +
    +
    + + + proof-pp-merge + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + merge subproofs in final proof post-processor +

    +
    +
    +
    +
    + + + proof-print-conclusion + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + Print conclusion of proof steps when printing AST +

    +
    +
    +
    +
    + + + proof-print-reference + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + Print reference to original file instead of redeclaring +

    +
    +
    +
    +
    + + + proof-prune-input + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + Prune unused input assumptions from final scope +

    +
    +
    +
    +
    + + + proof-rewrite-rcons-rec-limit + + + [type + + + uint64_t + + + , default + + + 5 + + + ] +
    +
    +

    + the matching recursion limit for reconstructing proofs of theory rewrites +

    +
    +
    +
    +
    + + + proof-rewrite-rcons-step-limit + + + [type + + + uint64_t + + + , default + + + 1000 + + + ] +
    +
    +

    + the limit of steps considered for reconstructing proofs of theory rewrites +

    +
    +
    +
    +
    + + + prop-proof-mode + + + [ + + + proof + + + | + + + sat-external-prove + + + , default + + + proof + + + ] +
    +
    +

    + modes for the type of proof generated by the SAT solver +

    +

    + Modes for the type of proof generated by the SAT solver. +

    +
    +
    + + + proof + + + + : + +
    +
    +

    + A proof computed by the SAT solver. +

    +
    +
    + + + sat-external-prove + + + + : + +
    +
    +

    + A proof containing a step that will be proven externally. +

    +
    +
    +
    +
    +
    +
    + + + sat-proof-min-dimacs + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + Minimize the DIMACs emitted when prop-proof-mode is set to sat-external-prove +

    +
    +
    +
    +
    +

    + SAT Layer Module + +  + +

    +
    +
    + + + minisat-dump-dimacs + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + instead of solving minisat dumps the asserted clauses in Dimacs format +

    +
    +
    +
    +
    + + + minisat-simplification + + + [ + + + all + + + | + + + clause-elim + + + | + + + none + + + , default + + + all + + + ] +
    +
    +

    + + [experts only] + +

    +

    + Simplifications to be performed by Minisat. +

    +

    + Modes for Minisat simplifications. +

    +
    +
    + + + all + + + + : + +
    +
    +

    + Variable and clause elimination, plus other simplifications. +

    +
    +
    + + + clause-elim + + + + : + +
    +
    +

    + Caluse elimination and other simplifications, except variable elimination. +

    +
    +
    + + + none + + + + : + +
    +
    +

    + No simplifications. +

    +
    +
    +
    +
    +
    +
    + + + preregister-mode + + + [ + + + eager + + + | + + + lazy + + + , default + + + eager + + + ] +
    +
    +

    + Modes for when to preregister literals. +

    +

    + Modes for when to preregister literals. +

    +
    +
    + + + eager + + + + : + +
    +
    +

    + Preregister literals when they are registered as literals in the SAT solver. +

    +
    +
    + + + lazy + + + + : + +
    +
    +

    + Preregister literals when they are asserted by the SAT solver. +

    +
    +
    +
    +
    +
    +
    + + + random-freq + + + | + + + random-frequency + + + [type + + + double + + + , + + + 0.0 + + + <= + + + P + + + <= + + + 1.0 + + + , default + + + 0.0 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + sets the frequency of random decisions in the sat solver (P=0.0 by default) +

    +
    +
    +
    +
    + + + restart-int-base + + + [type + + + uint64_t + + + , default + + + 25 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + sets the base restart interval for the sat solver (N=25 by default) +

    +
    +
    +
    +
    + + + restart-int-inc + + + [type + + + double + + + , + + + 0.0 + + + <= + + + F + + + , default + + + 3.0 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + sets the restart interval increase factor for the sat solver (F=3.0 by default) +

    +
    +
    +
    +
    + + + sat-random-seed + + + [type + + + uint64_t + + + , default + + + 0 + + + ] +
    +
    +

    + sets the random seed for the sat solver +

    +
    +
    +
    +
    + + + sat-solver + + + [ + + + minisat + + + | + + + cadical + + + , default + + + minisat + + + ] +
    +
    +

    + + [experts only] + +

    +

    + choose which sat solver to use, see –sat-solver=help +

    +

    + CDCL(T) SAT solver backend. +

    +
    +
    +
    +
    +

    + Quantifiers Module + +  + +

    +
    +
    + + + cbqi + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + enable conflict-based quantifier instantiation +

    +
    +
    +
    +
    + + + cbqi-all-conflict + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + add all available conflicting instances during conflict-based instantiation +

    +
    +
    +
    +
    + + + cbqi-mode + + + [ + + + conflict + + + | + + + prop-eq + + + , default + + + prop-eq + + + ] +
    +
    +

    + what effort to apply conflict find mechanism +

    +

    + Quantifier conflict find modes. +

    +
    +
    + + + conflict + + + + : + +
    +
    +

    + Apply QCF algorithm to find conflicts only. +

    +
    +
    + + + prop-eq + + + + : + +
    +
    +

    + Apply QCF algorithm to propagate equalities as well as conflicts. +

    +
    +
    +
    +
    +
    +
    + + + cbqi-skip-rd + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + optimization, skip instances based on possibly irrelevant portions of quantified formulas +

    +
    +
    +
    +
    + + + cbqi-tconstraint + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + enable entailment checks for t-constraints in cbqi algorithm +

    +
    +
    +
    +
    + + + cbqi-vo-exp + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + cbqi experimental variable ordering +

    +
    +
    +
    +
    + + + cegis-sample + + + [ + + + none + + + | + + + use + + + | + + + trust + + + , default + + + none + + + ] +
    +
    +

    + mode for using samples in the counterexample-guided inductive synthesis loop +

    +

    + Modes for sampling with counterexample-guided inductive synthesis (CEGIS). +

    +
    +
    + + + none + + + + : + +
    +
    +

    + Do not use sampling with CEGIS. +

    +
    +
    + + + use + + + + : + +
    +
    +

    + Use sampling to accelerate CEGIS. This will rule out solutions for a conjecture when they are not satisfied by a sample point. +

    +
    +
    + + + trust + + + + : + +
    +
    +

    + Trust that when a solution for a conjecture is always true under sampling, then it is indeed a solution. Note this option may print out spurious solutions for synthesis conjectures. +

    +
    +
    +
    +
    +
    +
    + + + cegqi + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + turns on counterexample-based quantifier instantiation +

    +
    +
    +
    +
    + + + cegqi-all + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + apply counterexample-based instantiation to all quantified formulas +

    +
    +
    +
    +
    + + + cegqi-bv + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + use word-level inversion approach for counterexample-guided quantifier instantiation for bit-vectors +

    +
    +
    +
    +
    + + + cegqi-bv-concat-inv + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + compute inverse for concat over equalities rather than producing an invertibility condition +

    +
    +
    +
    +
    + + + cegqi-bv-ineq + + + [ + + + eq-slack + + + | + + + eq-boundary + + + | + + + keep + + + , default + + + eq-boundary + + + ] +
    +
    +

    + choose mode for handling bit-vector inequalities with counterexample-guided instantiation +

    +

    + Modes for handling bit-vector inequalities in counterexample-guided instantiation. +

    +
    +
    + + + eq-slack + + + + : + +
    +
    +

    + Solve for the inequality using the slack value in the model, e.g., t > s becomes t = s + ( t-s )^M. +

    +
    +
    + + + eq-boundary + + + + : + +
    +
    +

    + Solve for the boundary point of the inequality, e.g., t > s becomes t = s+1. +

    +
    +
    + + + keep + + + + : + +
    +
    +

    + Solve for the inequality directly using side conditions for invertibility. +

    +
    +
    +
    +
    +
    +
    + + + cegqi-bv-interleave-value + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + interleave model value instantiation with word-level inversion approach +

    +
    +
    +
    +
    + + + cegqi-bv-linear + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + linearize adder chains for variables +

    +
    +
    +
    +
    + + + cegqi-bv-rm-extract + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + replaces extract terms with variables for counterexample-guided instantiation for bit-vectors +

    +
    +
    +
    +
    + + + cegqi-bv-solve-nl + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + try to solve non-linear bv literals using model value projections +

    +
    +
    +
    +
    + + + cegqi-full + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + turns on full effort counterexample-based quantifier instantiation, which may resort to model-value instantiation +

    +
    +
    +
    +
    + + + cegqi-inf-int + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + use integer infinity for vts in counterexample-based quantifier instantiation +

    +
    +
    +
    +
    + + + cegqi-inf-real + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + use real infinity for vts in counterexample-based quantifier instantiation +

    +
    +
    +
    +
    + + + cegqi-innermost + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + only process innermost quantified formulas in counterexample-based quantifier instantiation +

    +
    +
    +
    +
    + + + cegqi-midpoint + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + choose substitutions based on midpoints of lower and upper bounds for counterexample-based quantifier instantiation +

    +
    +
    +
    +
    + + + cegqi-min-bounds + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + use minimally constrained lower/upper bound for counterexample-based quantifier instantiation +

    +
    +
    +
    +
    + + + cegqi-multi-inst + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + when applicable, do multi instantiations per quantifier per round in counterexample-based quantifier instantiation +

    +
    +
    +
    +
    + + + cegqi-nested-qe + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + process nested quantified formulas with quantifier elimination in counterexample-based quantifier instantiation +

    +
    +
    +
    +
    + + + cegqi-nopt + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + non-optimal bounds for counterexample-based quantifier instantiation +

    +
    +
    +
    +
    + + + cegqi-round-up-lia + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + round up integer lower bounds in substitutions for counterexample-based quantifier instantiation +

    +
    +
    +
    +
    + + + cond-var-split-quant + + + [ + + + off + + + | + + + on + + + | + + + agg + + + , default + + + on + + + ] +
    +
    +

    + + [experts only] + +

    +

    + split quantified formulas that lead to variable eliminations +

    +

    + Modes for splitting quantified formulas that lead to variable eliminations. +

    +
    +
    + + + off + + + + : + +
    +
    +

    + Do not split quantified formulas. +

    +
    +
    + + + on + + + + : + +
    +
    +

    + Split quantified formulas that lead to variable eliminations. +

    +
    +
    + + + agg + + + + : + +
    +
    +

    + Aggressively split quantified formulas that lead to variable eliminations. +

    +
    +
    +
    +
    +
    +
    + + + conjecture-gen + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + generate candidate conjectures for inductive proofs +

    +
    +
    +
    +
    + + + conjecture-gen-gt-enum + + + [type + + + int64_t + + + , default + + + 50 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + number of ground terms to generate for model filtering +

    +
    +
    +
    +
    + + + conjecture-gen-max-depth + + + [type + + + int64_t + + + , default + + + 3 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + maximum depth of terms to consider for conjectures +

    +
    +
    +
    +
    + + + conjecture-gen-per-round + + + [type + + + int64_t + + + , default + + + 1 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + number of conjectures to generate per instantiation round +

    +
    +
    +
    +
    + + + cons-exp-triggers + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + use constructor expansion for single constructor datatypes triggers +

    +
    +
    +
    +
    + + + dt-stc-ind + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + apply strengthening for existential quantification over datatypes based on structural induction +

    +
    +
    +
    +
    + + + dt-var-exp-quant + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + expand datatype variables bound to one constructor in quantifiers +

    +
    +
    +
    +
    + + + e-matching + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + whether to do heuristic E-matching +

    +
    +
    +
    +
    + + + elim-taut-quant + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + eliminate tautological disjuncts of quantified formulas +

    +
    +
    +
    +
    + + + enum-inst + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + enumerative instantiation: instantiate with ground terms from relevant domain, then arbitrary ground terms before answering unknown +

    +
    +
    +
    +
    + + + enum-inst-interleave + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + interleave enumerative instantiation with other techniques +

    +
    +
    +
    +
    + + + enum-inst-limit + + + [type + + + int64_t + + + , default + + + -1 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + maximum number of rounds of enumerative instantiation to apply (-1 means no limit) +

    +
    +
    +
    +
    + + + enum-inst-rd + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + whether to use relevant domain first for enumerative instantiation strategy +

    +
    +
    +
    +
    + + + enum-inst-stratify + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + stratify effort levels in enumerative instantiation, which favors speed over fairness +

    +
    +
    +
    +
    + + + enum-inst-sum + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + enumerating tuples of quantifiers by increasing the sum of indices, rather than the maximum +

    +
    +
    +
    +
    + + + ext-rewrite-quant + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + apply extended rewriting to bodies of quantified formulas +

    +
    +
    +
    +
    + + + finite-model-find + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + use finite model finding heuristic for quantifier instantiation +

    +
    +
    +
    +
    + + + fmf-bound + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + finite model finding on bounded quantification +

    +
    +
    +
    +
    + + + fmf-bound-blast + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + send all instantiations for bounded ranges in a single round +

    +
    +
    +
    +
    + + + fmf-bound-lazy + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + enforce bounds for bounded quantification lazily via use of proxy variables +

    +
    +
    +
    +
    + + + fmf-fun + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + find models for recursively defined functions, assumes functions are admissible +

    +
    +
    +
    +
    + + + fmf-fun-rlv + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + find models for recursively defined functions, assumes functions are admissible, allows empty type when function is irrelevant +

    +
    +
    +
    +
    + + + fmf-mbqi + + + [ + + + none + + + | + + + fmc + + + | + + + trust + + + , default + + + fmc + + + ] +
    +
    +

    + + [experts only] + +

    +

    + choose mode for model-based quantifier instantiation +

    +

    + Model-based quantifier instantiation modes. +

    +
    +
    + + + none + + + + : + +
    +
    +

    + Disable model-based quantifier instantiation. +

    +
    +
    + + + fmc + + + + : + +
    +
    +

    + Use algorithm from Section 5.4.2 of thesis Finite Model Finding in Satisfiability Modulo Theories. +

    +
    +
    + + + trust + + + + : + +
    +
    +

    + Do not instantiate quantified formulas (incomplete technique). +

    +
    +
    +
    +
    +
    +
    + + + fmf-type-completion-thresh + + + [type + + + int64_t + + + , default + + + 1000 + + + ] +
    +
    +

    + the maximum cardinality of an interpreted type for which exhaustive enumeration in finite model finding is attempted +

    +
    +
    +
    +
    + + + full-saturate-quant + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + resort to full effort techniques instead of answering unknown due to limited quantifier reasoning. Currently enables enumerative instantiation +

    +
    +
    +
    +
    + + + full-sygus-verify + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + resort to full effort techniques instead of answering unknown when checking sygus candidates +

    +
    +
    +
    +
    + + + global-negate + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + do global negation of input formula +

    +
    +
    +
    +
    + + + ho-elim + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + eagerly eliminate higher-order constraints +

    +
    +
    +
    +
    + + + ho-elim-store-ax + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + use store axiom during ho-elim +

    +
    +
    +
    +
    + + + ho-matching + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + do higher-order matching algorithm for triggers with variable operators +

    +
    +
    +
    +
    + + + ho-merge-term-db + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + merge term indices modulo equality +

    +
    +
    +
    +
    + + + ieval + + + [ + + + off + + + | + + + use + + + | + + + use-learn + + + , default + + + use + + + ] +
    +
    +

    + mode for using instantiation evaluation +

    +

    + Mode for using instantiation evaluation. +

    +
    +
    + + + off + + + + : + +
    +
    +

    + Do not use instantiation evaluation. +

    +
    +
    + + + use + + + + : + +
    +
    +

    + Use instantiation evaluation. +

    +
    +
    + + + use-learn + + + + : + +
    +
    +

    + Use instantiation evaluation, and generalize learning. +

    +
    +
    +
    +
    +
    +
    + + + increment-triggers + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + generate additional triggers as needed during search +

    +
    +
    +
    +
    + + + inst-max-level + + + [type + + + int64_t + + + , default + + + -1 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + maximum inst level of terms used to instantiate quantified formulas with (-1 == no limit, default) +

    +
    +
    +
    +
    + + + inst-max-rounds + + + [type + + + int64_t + + + , default + + + -1 + + + ] +
    +
    +

    + maximum number of instantiation rounds (-1 == no limit, default) +

    +
    +
    +
    +
    + + + inst-no-entail + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + do not consider instances of quantified formulas that are currently entailed +

    +
    +
    +
    +
    + + + inst-when + + + [ + + + full + + + | + + + full-delay + + + | + + + full-last-call + + + | + + + full-delay-last-call + + + | + + + last-call + + + , default + + + full-last-call + + + ] +
    +
    +

    + when to apply instantiation +

    +

    + Instantiation modes. +

    +
    +
    + + + full + + + + : + +
    +
    +

    + Run instantiation round at full effort, before theory combination. +

    +
    +
    + + + full-delay + + + + : + +
    +
    +

    + Run instantiation round at full effort, before theory combination, after all other theories have finished. +

    +
    +
    + + + full-last-call + + + + : + +
    +
    +

    + Alternate running instantiation rounds at full effort and last call. In other words, interleave instantiation and theory combination. +

    +
    +
    + + + full-delay-last-call + + + + : + +
    +
    +

    + Alternate running instantiation rounds at full effort after all other theories have finished, and last call. +

    +
    +
    + + + last-call + + + + : + +
    +
    +

    + Run instantiation at last call effort, after theory combination and and theories report sat. +

    +
    +
    +
    +
    +
    +
    + + + inst-when-phase + + + [type + + + int64_t + + + , default + + + 2 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + instantiation rounds quantifiers takes (>=1) before allowing theory combination to happen +

    +
    +
    +
    +
    + + + int-wf-ind + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + apply strengthening for integers based on well-founded induction +

    +
    +
    +
    +
    + + + ite-dtt-split-quant + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + split ites with dt testers as conditions +

    +
    +
    +
    +
    + + + ite-lift-quant + + + [ + + + none + + + | + + + simple + + + | + + + all + + + , default + + + simple + + + ] +
    +
    +

    + ite lifting mode for quantified formulas +

    +

    + ITE lifting modes for quantified formulas. +

    +
    +
    + + + none + + + + : + +
    +
    +

    + Do not lift if-then-else in quantified formulas. +

    +
    +
    + + + simple + + + + : + +
    +
    +

    + Lift if-then-else in quantified formulas if results in smaller term size. +

    +
    +
    + + + all + + + + : + +
    +
    +

    + Lift if-then-else in quantified formulas. +

    +
    +
    +
    +
    +
    +
    + + + literal-matching + + + [ + + + none + + + | + + + use + + + | + + + agg-predicate + + + | + + + agg + + + , default + + + use + + + ] +
    +
    +

    + + [experts only] + +

    +

    + choose literal matching mode +

    +

    + Literal match modes. +

    +
    +
    + + + none + + + + : + +
    +
    +

    + Do not use literal matching. +

    +
    +
    + + + use + + + + : + +
    +
    +

    + Consider phase requirements of triggers conservatively. For example, the trigger P( x ) in forall( x ). ( P( x ) V ~Q( x ) ) will not be matched with terms in the equivalence class of true, and likewise Q( x ) will not be matched terms in the equivalence class of false. Extends to equality. +

    +
    +
    + + + agg-predicate + + + + : + +
    +
    +

    + Consider phase requirements aggressively for predicates. In the above example, only match P( x ) with terms that are in the equivalence class of false. +

    +
    +
    + + + agg + + + + : + +
    +
    +

    + Consider the phase requirements aggressively for all triggers. +

    +
    +
    +
    +
    +
    +
    + + + macros-quant + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + perform quantifiers macro expansion +

    +
    +
    +
    +
    + + + macros-quant-mode + + + [ + + + all + + + | + + + ground + + + | + + + ground-uf + + + , default + + + ground-uf + + + ] +
    +
    +

    + mode for quantifiers macro expansion +

    +

    + Modes for quantifiers macro expansion. +

    +
    +
    + + + all + + + + : + +
    +
    +

    + Infer definitions for functions, including those containing quantified formulas. +

    +
    +
    + + + ground + + + + : + +
    +
    +

    + Only infer ground definitions for functions. +

    +
    +
    + + + ground-uf + + + + : + +
    +
    +

    + Only infer ground definitions for functions that result in triggers for all free variables. +

    +
    +
    +
    +
    +
    +
    + + + mbqi + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + use model-based quantifier instantiation +

    +
    +
    +
    +
    + + + mbqi-fast-sygus + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + use fast enumeration to augment instantiations from MBQI +

    +
    +
    +
    +
    + + + mbqi-interleave + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + interleave model-based quantifier instantiation with other techniques +

    +
    +
    +
    +
    + + + mbqi-one-inst-per-round + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + only add one instantiation per quantifier per round for mbqi +

    +
    +
    +
    +
    + + + miniscope-quant + + + [ + + + off + + + | + + + conj + + + | + + + fv + + + | + + + conj-and-fv + + + | + + + agg + + + , default + + + conj-and-fv + + + ] +
    +
    +

    + miniscope mode for quantified formulas +

    +

    + Miniscope quantifiers modes. +

    +
    +
    + + + off + + + + : + +
    +
    +

    + Do not miniscope quantifiers. +

    +
    +
    + + + conj + + + + : + +
    +
    +

    + Use miniscoping of conjunctions only. +

    +
    +
    + + + fv + + + + : + +
    +
    +

    + Use free variable miniscoping only. +

    +
    +
    + + + conj-and-fv + + + + : + +
    +
    +

    + Enable both conjunction and free variable miniscoping. +

    +
    +
    + + + agg + + + + : + +
    +
    +

    + Enable aggressive miniscope, which further may rewrite quantified formulas into a form where miniscoping is possible. +

    +
    +
    +
    +
    +
    +
    + + + miniscope-quant-user + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + miniscope quantified formulas with user patterns +

    +
    +
    +
    +
    + + + multi-trigger-cache + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + caching version of multi triggers +

    +
    +
    +
    +
    + + + multi-trigger-linear + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + implementation of multi triggers where maximum number of instantiations is linear wrt number of ground terms +

    +
    +
    +
    +
    + + + multi-trigger-priority + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + only try multi triggers if single triggers give no instantiations +

    +
    +
    +
    +
    + + + multi-trigger-when-single + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + select multi triggers when single triggers exist +

    +
    +
    +
    +
    + + + oracles + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + Enable interface to external oracles +

    +
    +
    +
    +
    + + + partial-triggers + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + use triggers that do not contain all free variables +

    +
    +
    +
    +
    + + + pool-inst + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + pool-based instantiation: instantiate with ground terms occurring in user-specified pools +

    +
    +
    +
    +
    + + + pre-skolem-quant + + + [ + + + off + + + | + + + on + + + | + + + agg + + + , default + + + off + + + ] +
    +
    +

    + modes to apply skolemization eagerly to bodies of quantified formulas +

    +

    + Modes to apply skolemization eagerly to bodies of quantified formulas. +

    +
    +
    + + + off + + + + : + +
    +
    +

    + Do not apply Skolemization eagerly. +

    +
    +
    + + + on + + + + : + +
    +
    +

    + Apply Skolemization eagerly to top-level (negatively asserted) quantified formulas. +

    +
    +
    + + + agg + + + + : + +
    +
    +

    + Apply Skolemization eagerly and aggressively during preprocessing. +

    +
    +
    +
    +
    +
    +
    + + + pre-skolem-quant-nested + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + apply skolemization to nested quantified formulas +

    +
    +
    +
    +
    + + + prenex-quant + + + [ + + + none + + + | + + + simple + + + | + + + norm + + + , default + + + simple + + + ] +
    +
    +

    + prenex mode for quantified formulas +

    +

    + Prenex quantifiers modes. +

    +
    +
    + + + none + + + + : + +
    +
    +

    + Do not prenex nested quantifiers. +

    +
    +
    + + + simple + + + + : + +
    +
    +

    + Do simple prenexing of same sign quantifiers. +

    +
    +
    + + + norm + + + + : + +
    +
    +

    + Prenex to prenex normal form. +

    +
    +
    +
    +
    +
    +
    + + + prenex-quant-user + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + prenex quantified formulas with user patterns +

    +
    +
    +
    +
    + + + print-inst-full + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + print instantiations for formulas that do not have given identifiers +

    +
    +
    +
    +
    + + + purify-triggers + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + purify triggers, e.g. f( x+1 ) becomes f( y ), x mapsto y-1 +

    +
    +
    +
    +
    + + + quant-alpha-equiv + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + infer alpha equivalence between quantified formulas +

    +
    +
    +
    +
    + + + quant-dsplit + + + [ + + + none + + + | + + + default + + + | + + + agg + + + , default + + + default + + + ] +
    +
    +

    + mode for dynamic quantifiers splitting +

    +

    + Modes for quantifiers splitting. +

    +
    +
    + + + none + + + + : + +
    +
    +

    + Never split quantified formulas. +

    +
    +
    + + + default + + + + : + +
    +
    +

    + Split quantified formulas over some finite datatypes when finite model finding is enabled. +

    +
    +
    + + + agg + + + + : + +
    +
    +

    + Aggressively split quantified formulas. +

    +
    +
    +
    +
    +
    +
    + + + quant-fun-wd + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + assume that function defined by quantifiers are well defined +

    +
    +
    +
    +
    + + + quant-ind + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + use all available techniques for inductive reasoning +

    +
    +
    +
    +
    + + + quant-rep-mode + + + [ + + + ee + + + | + + + first + + + | + + + depth + + + , default + + + first + + + ] +
    +
    +

    + + [experts only] + +

    +

    + selection mode for representatives in quantifiers engine +

    +

    + Modes for quantifiers representative selection. +

    +
    +
    + + + ee + + + + : + +
    +
    +

    + Let equality engine choose representatives. +

    +
    +
    + + + first + + + + : + +
    +
    +

    + Choose terms that appear first. +

    +
    +
    + + + depth + + + + : + +
    +
    +

    + Choose terms that are of minimal depth. +

    +
    +
    +
    +
    +
    +
    + + + register-quant-body-terms + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + consider ground terms within bodies of quantified formulas for matching +

    +
    +
    +
    +
    + + + relational-triggers + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + choose relational triggers such as x = f(y), x >= f(y) +

    +
    +
    +
    +
    + + + relevant-triggers + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + prefer triggers that are more relevant based on SInE style analysis +

    +
    +
    +
    +
    + + + sub-cbqi + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + Enable conflict-based instantiation subsolver strategy +

    +
    +
    +
    +
    + + + sub-cbqi-timeout + + + [type + + + uint64_t + + + , default + + + 0 + + + ] +
    +
    +

    + Timeout (in milliseconds) for subsolver calls for sub-cbqi +

    +
    +
    +
    +
    + + + sygus + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + support SyGuS commands +

    +
    +
    +
    +
    + + + sygus-add-const-grammar + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + statically add constants appearing in conjecture to grammars +

    +
    +
    +
    +
    + + + sygus-arg-relevant + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + static inference techniques for computing whether arguments of functions-to-synthesize are relevant +

    +
    +
    +
    +
    + + + sygus-auto-unfold + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + enable approach which automatically unfolds transition systems for directly solving invariant synthesis problems +

    +
    +
    +
    +
    + + + sygus-bool-ite-return-const + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + Only use Boolean constants for return values in unification-based function synthesis +

    +
    +
    +
    +
    + + + sygus-core-connective + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + use unsat core analysis to construct Boolean connective to sygus conjectures +

    +
    +
    +
    +
    + + + sygus-crepair-abort + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + abort if constant repair techniques are not applicable +

    +
    +
    +
    +
    + + + sygus-enum + + + [ + + + smart + + + | + + + fast + + + | + + + random + + + | + + + var-agnostic + + + | + + + auto + + + , default + + + auto + + + ] +
    +
    +

    + mode for sygus enumeration +

    +

    + Modes for sygus enumeration. +

    +
    +
    + + + smart + + + + : + +
    +
    +

    + Use smart enumeration based on datatype constraints. +

    +
    +
    + + + fast + + + + : + +
    +
    +

    + Use optimized enumerator for sygus enumeration. +

    +
    +
    + + + random + + + + : + +
    +
    +

    + Use basic random enumerator for sygus enumeration. +

    +
    +
    + + + var-agnostic + + + + : + +
    +
    +

    + Use sygus solver to enumerate terms that are agnostic to variables. +

    +
    +
    + + + auto + + + + : + +
    +
    +

    + Internally decide the best policy for each enumerator. +

    +
    +
    +
    +
    +
    +
    + + + sygus-enum-fast-num-consts + + + [type + + + uint64_t + + + , default + + + 5 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + the branching factor for the number of interpreted constants to consider for each size when using –sygus-enum=fast +

    +
    +
    +
    +
    + + + sygus-enum-random-p + + + [type + + + double + + + , + + + 0.0 + + + <= + + + P + + + <= + + + 1.0 + + + , default + + + 0.5 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + the parameter of the geometric distribution used to determine the size of terms generated by –sygus-enum=random +

    +
    +
    +
    +
    + + + sygus-eval-unfold + + + [ + + + none + + + | + + + single + + + | + + + single-bool + + + | + + + multi + + + , default + + + single-bool + + + ] +
    +
    +

    + modes for sygus evaluation unfolding +

    +

    + Modes for sygus evaluation unfolding. +

    +
    +
    + + + none + + + + : + +
    +
    +

    + Do not use sygus evaluation unfolding. +

    +
    +
    + + + single + + + + : + +
    +
    +

    + Do single-step unfolding for all evaluation functions. +

    +
    +
    + + + single-bool + + + + : + +
    +
    +

    + Do single-step unfolding for Boolean functions and ITEs, and multi-step unfolding for all others. +

    +
    +
    + + + multi + + + + : + +
    +
    +

    + Do multi-step unfolding for all evaluation functions. +

    +
    +
    +
    +
    +
    +
    + + + sygus-expr-miner-check-timeout + + + [type + + + uint64_t + + + , default + + + 0 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + timeout (in milliseconds) for satisfiability checks in expression miners +

    +
    +
    +
    +
    + + + sygus-filter-sol + + + [ + + + none + + + | + + + strong + + + | + + + weak + + + , default + + + none + + + ] +
    +
    +

    + + [experts only] + +

    +

    + mode for filtering sygus solutions +

    +

    + Modes for filtering sygus solutions. +

    +
    +
    + + + none + + + + : + +
    +
    +

    + Do not filter sygus solutions. +

    +
    +
    + + + strong + + + + : + +
    +
    +

    + Filter solutions that are logically stronger than others. +

    +
    +
    + + + weak + + + + : + +
    +
    +

    + Filter solutions that are logically weaker than others. +

    +
    +
    +
    +
    +
    +
    + + + sygus-filter-sol-rev + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + compute backwards filtering to compute whether previous solutions are filtered based on later ones +

    +
    +
    +
    +
    + + + sygus-grammar-cons + + + [ + + + simple + + + | + + + any-const + + + | + + + any-term + + + | + + + any-term-concise + + + , default + + + simple + + + ] +
    +
    +

    + mode for SyGuS grammar construction +

    +

    + Modes for default SyGuS grammars. +

    +
    +
    + + + simple + + + + : + +
    +
    +

    + Use simple grammar construction (no symbolic terms or constants). +

    +
    +
    + + + any-const + + + + : + +
    +
    +

    + Use symoblic constant constructors. +

    +
    +
    + + + any-term + + + + : + +
    +
    +

    + When applicable, use constructors corresponding to any symbolic term. This option enables a sum-of-monomials grammar for arithmetic. For all other types, it enables symbolic constant constructors. +

    +
    +
    + + + any-term-concise + + + + : + +
    +
    +

    + When applicable, use constructors corresponding to any symbolic term, favoring conciseness over generality. This option is equivalent to any-term but enables a polynomial grammar for arithmetic when not in a combined theory. +

    +
    +
    +
    +
    +
    +
    + + + sygus-grammar-norm + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + statically normalize sygus grammars based on flattening (linearization) +

    +
    +
    +
    +
    + + + sygus-grammar-use-disj + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + use disjunctions in internally generated grammars. this is set to false when solving abduction queries. +

    +
    +
    +
    +
    + + + sygus-inference + + + [ + + + off + + + | + + + try + + + | + + + on + + + , default + + + off + + + ] +
    +
    +

    + + [experts only] + +

    +

    + mode for preprocessing arbitrary inputs to sygus conjectures +

    +

    + Modes for preprocessing arbitrary inputs to sygus conjectures. +

    +
    +
    + + + off + + + + : + +
    +
    +

    + Do not use sygus inference techniques. +

    +
    +
    + + + try + + + + : + +
    +
    +

    + Try to use sygus inference techniques but resort to ordinary SMT solving if it does not apply. +

    +
    +
    + + + on + + + + : + +
    +
    +

    + Try to sygus inference and abort if it does not apply. +

    +
    +
    +
    +
    +
    +
    + + + sygus-inst + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + Enable SyGuS instantiation quantifiers module +

    +
    +
    +
    +
    + + + sygus-inst-mode + + + [ + + + priority-inst + + + | + + + priority-eval + + + | + + + interleave + + + , default + + + priority-inst + + + ] +
    +
    +

    + + [experts only] + +

    +

    + select instantiation lemma mode +

    +

    + SyGuS instantiation lemma modes. +

    +
    +
    + + + priority-inst + + + + : + +
    +
    +

    + add instantiation lemmas first, add evaluation unfolding if instantiation fails. +

    +
    +
    + + + priority-eval + + + + : + +
    +
    +

    + add evaluation unfolding lemma first, add instantiation lemma if unfolding lemmas already added. +

    +
    +
    + + + interleave + + + + : + +
    +
    +

    + add instantiation and evaluation unfolding lemmas in the same step. +

    +
    +
    +
    +
    +
    +
    + + + sygus-inst-scope + + + [ + + + in + + + | + + + out + + + | + + + both + + + , default + + + in + + + ] +
    +
    +

    + + [experts only] + +

    +

    + select scope of ground terms +

    +

    + scope for collecting ground terms for the grammar. +

    +
    +
    + + + in + + + + : + +
    +
    +

    + use ground terms inside given quantified formula only. +

    +
    +
    + + + out + + + + : + +
    +
    +

    + use ground terms outside of quantified formulas only. +

    +
    +
    + + + both + + + + : + +
    +
    +

    + combines inside and outside. +

    +
    +
    +
    +
    +
    +
    + + + sygus-inst-term-sel + + + [ + + + min + + + | + + + max + + + | + + + both + + + , default + + + min + + + ] +
    +
    +

    + + [experts only] + +

    +

    + granularity for ground terms +

    +

    + Ground term selection modes. +

    +
    +
    + + + min + + + + : + +
    +
    +

    + collect minimal ground terms only. +

    +
    +
    + + + max + + + + : + +
    +
    +

    + collect maximal ground terms only. +

    +
    +
    + + + both + + + + : + +
    +
    +

    + combines minimal and maximal . +

    +
    +
    +
    +
    +
    +
    + + + sygus-inv-templ + + + [ + + + none + + + | + + + pre + + + | + + + post + + + , default + + + post + + + ] +
    +
    +

    + template mode for sygus invariant synthesis (weaken pre-condition, strengthen post-condition, or none) +

    +

    + Template modes for sygus invariant synthesis. +

    +
    +
    + + + none + + + + : + +
    +
    +

    + Synthesize invariant directly. +

    +
    +
    + + + pre + + + + : + +
    +
    +

    + Synthesize invariant based on weakening of precondition. +

    +
    +
    + + + post + + + + : + +
    +
    +

    + Synthesize invariant based on strengthening of postcondition. +

    +
    +
    +
    +
    +
    +
    + + + sygus-inv-templ-when-sg + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + use invariant templates (with solution reconstruction) for syntax guided problems +

    +
    +
    +
    +
    + + + sygus-min-grammar + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + statically minimize sygus grammars +

    +
    +
    +
    +
    + + + sygus-out + + + [ + + + status + + + | + + + status-and-def + + + | + + + sygus-standard + + + , default + + + sygus-standard + + + ] +
    +
    +

    + output mode for sygus +

    +

    + Modes for sygus solution output. +

    +
    +
    + + + status + + + + : + +
    +
    +

    + Print only status for check-synth calls. +

    +
    +
    + + + status-and-def + + + + : + +
    +
    +

    + Print status followed by definition corresponding to solution. +

    +
    +
    + + + sygus-standard + + + + : + +
    +
    +

    + Print based on SyGuS standard. +

    +
    +
    +
    +
    +
    +
    + + + sygus-pbe + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + enable approach which unifies conditional solutions, specialized for programming-by-examples (pbe) conjectures +

    +
    +
    +
    +
    + + + sygus-pbe-multi-fair + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + when using multiple enumerators, ensure that we only register value of minimial term size +

    +
    +
    +
    +
    + + + sygus-pbe-multi-fair-diff + + + [type + + + int64_t + + + , default + + + 0 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + when using multiple enumerators, ensure that we only register values of minimial term size plus this value (default 0) +

    +
    +
    +
    +
    + + + sygus-qe-preproc + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + use quantifier elimination as a preprocessing step for sygus +

    +
    +
    +
    +
    + + + sygus-query-gen + + + [ + + + basic + + + | + + + sample-sat + + + | + + + unsat + + + , default + + + basic + + + ] +
    +
    +

    + + [experts only] + +

    +

    + mode for generating interesting satisfiability queries using SyGuS, for internal fuzzing +

    +

    + Modes for generating interesting satisfiability queries using SyGuS. +

    +
    +
    + + + basic + + + + : + +
    +
    +

    + Generate all queries using SyGuS enumeration of the given grammar +

    +
    +
    + + + sample-sat + + + + : + +
    +
    +

    + Generate interesting SAT queries based on sampling, for e.g. soundness testing. +

    +
    +
    + + + unsat + + + + : + +
    +
    +

    + Generate interesting UNSAT queries, for e.g. proof testing. +

    +
    +
    +
    +
    +
    +
    + + + sygus-query-gen-dump-files + + + [ + + + none + + + | + + + all + + + | + + + unsolved + + + , default + + + none + + + ] +
    +
    +

    + + [experts only] + +

    +

    + mode for dumping external files corresponding to interesting satisfiability queries with sygus-query-gen +

    +

    + Query file options. +

    +
    +
    + + + none + + + + : + +
    +
    +

    + Do not dump query files when using –sygus-query-gen. +

    +
    +
    + + + all + + + + : + +
    +
    +

    + Dump all query files. +

    +
    +
    + + + unsolved + + + + : + +
    +
    +

    + Dump query files that the subsolver did not solve. +

    +
    +
    +
    +
    +
    +
    + + + sygus-query-gen-filter-solved + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + do not print queries that are solved +

    +
    +
    +
    +
    + + + sygus-query-gen-thresh + + + [type + + + uint64_t + + + , default + + + 5 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + number of points that we allow to be equal for enumerating satisfiable queries with sygus-query-gen +

    +
    +
    +
    +
    + + + sygus-rec-fun + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + enable efficient support for recursive functions in sygus grammars +

    +
    +
    +
    +
    + + + sygus-rec-fun-eval-limit + + + [type + + + uint64_t + + + , default + + + 1000 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + use a hard limit for how many times in a given evaluator call a recursive function can be evaluated (so infinite loops can be avoided) +

    +
    +
    +
    +
    + + + sygus-repair-const + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + use approach to repair constants in sygus candidate solutions +

    +
    +
    +
    +
    + + + sygus-repair-const-timeout + + + [type + + + uint64_t + + + , default + + + 0 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + timeout (in milliseconds) for the satisfiability check to repair constants in sygus candidate solutions +

    +
    +
    +
    +
    + + + sygus-rr-synth-accel + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + add dynamic symmetry breaking clauses based on candidate rewrites +

    +
    +
    +
    +
    + + + sygus-rr-synth-check + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + use satisfiability check to verify correctness of candidate rewrites +

    +
    +
    +
    +
    + + + sygus-rr-synth-filter-cong + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + filter candidate rewrites based on congruence +

    +
    +
    +
    +
    + + + sygus-rr-synth-filter-match + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + filter candidate rewrites based on matching +

    +
    +
    +
    +
    + + + sygus-rr-synth-filter-nl + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + filter non-linear candidate rewrites +

    +
    +
    +
    +
    + + + sygus-rr-synth-filter-order + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + filter candidate rewrites based on variable ordering +

    +
    +
    +
    +
    + + + sygus-rr-synth-input-nvars + + + [type + + + int64_t + + + , default + + + 3 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + the maximum number of variables per type that appear in rewrites from sygus-rr-synth-input +

    +
    +
    +
    +
    + + + sygus-rr-synth-rec + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + synthesize rewrite rules over all sygus grammar types recursively +

    +
    +
    +
    +
    + + + sygus-sample-fp-uniform + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + sample floating-point values uniformly instead of in a biased fashion +

    +
    +
    +
    +
    + + + sygus-sample-grammar + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + when applicable, use grammar for choosing sample points +

    +
    +
    +
    +
    + + + sygus-samples + + + [type + + + int64_t + + + , default + + + 1000 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + number of points to consider when doing sygus rewriter sample testing +

    +
    +
    +
    +
    + + + sygus-si + + + [ + + + none + + + | + + + use + + + | + + + all + + + , default + + + none + + + ] +
    +
    +

    + mode for processing single invocation synthesis conjectures +

    +

    + Modes for single invocation techniques. +

    +
    +
    + + + none + + + + : + +
    +
    +

    + Do not use single invocation techniques. +

    +
    +
    + + + use + + + + : + +
    +
    +

    + Use single invocation techniques only if grammar is not restrictive. +

    +
    +
    + + + all + + + + : + +
    +
    +

    + Always use single invocation techniques. +

    +
    +
    +
    +
    +
    +
    + + + sygus-si-abort + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + abort if synthesis conjecture is not single invocation +

    +
    +
    +
    +
    + + + sygus-si-rcons + + + [ + + + none + + + | + + + try + + + | + + + all-limit + + + | + + + all + + + , default + + + all + + + ] +
    +
    +

    + policy for reconstructing solutions for single invocation conjectures +

    +

    + Modes for reconstruction solutions while using single invocation techniques. +

    +
    +
    + + + none + + + + : + +
    +
    +

    + Do not try to reconstruct solutions in the original (user-provided) grammar when using single invocation techniques. In this mode, solutions produced by cvc5 may violate grammar restrictions. +

    +
    +
    + + + try + + + + : + +
    +
    +

    + Try to reconstruct solutions in the original grammar when using single invocation techniques in an incomplete (fail-fast) manner. +

    +
    +
    + + + all-limit + + + + : + +
    +
    +

    + Try to reconstruct solutions in the original grammar, but terminate if a maximum number of rounds for reconstruction is exceeded. +

    +
    +
    + + + all + + + + : + +
    +
    +

    + Try to reconstruct solutions in the original grammar. In this mode, we do not terminate until a solution is successfully reconstructed. +

    +
    +
    +
    +
    +
    +
    + + + sygus-si-rcons-limit + + + [type + + + int64_t + + + , default + + + 10000 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + number of rounds of enumeration to use during solution reconstruction (negative means unlimited) +

    +
    +
    +
    +
    + + + sygus-si-rcons-p + + + [type + + + double + + + , + + + 0.0 + + + <= + + + P + + + <= + + + 1.0 + + + , default + + + 0.5 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + the parameter of the geometric distribution used to determine the number of unification patterns generated by single invocation techniques. +

    +
    +
    +
    +
    + + + sygus-stream + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + enumerate a stream of solutions instead of terminating after the first one +

    +
    +
    +
    +
    + + + sygus-unif-cond-independent-no-repeat-sol + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + Do not try repeated solutions when using independent synthesis of conditions in unification-based function synthesis +

    +
    +
    +
    +
    + + + sygus-unif-pi + + + [ + + + none + + + | + + + complete + + + | + + + cond-enum + + + | + + + cond-enum-igain + + + , default + + + none + + + ] +
    +
    +

    + mode for synthesis via piecewise-indepedent unification +

    +

    + Modes for piecewise-independent unification. +

    +
    +
    + + + none + + + + : + +
    +
    +

    + Do not use piecewise-independent unification. +

    +
    +
    + + + complete + + + + : + +
    +
    +

    + Use complete approach for piecewise-independent unification (see Section 3 of Barbosa et al FMCAD 2019) +

    +
    +
    + + + cond-enum + + + + : + +
    +
    +

    + Use unconstrained condition enumeration for piecewise-independent unification (see Section 4 of Barbosa et al FMCAD 2019). +

    +
    +
    + + + cond-enum-igain + + + + : + +
    +
    +

    + Same as cond-enum, but additionally uses an information gain heuristic when doing decision tree learning. +

    +
    +
    +
    +
    +
    +
    + + + sygus-unif-shuffle-cond + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + Shuffle condition pool when building solutions (may change solutions sizes) +

    +
    +
    +
    +
    + + + sygus-verify-inst-max-rounds + + + [type + + + int64_t + + + , default + + + 10 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + maximum number of instantiation rounds for sygus verification calls (-1 == no limit, default is 10) +

    +
    +
    +
    +
    + + + sygus-verify-timeout + + + [type + + + uint64_t + + + , default + + + 0 + + + ] +
    +
    +

    + timeout (in milliseconds) for verifying satisfiability of synthesized terms (0 == no limit) +

    +
    +
    +
    +
    + + + term-db-mode + + + [ + + + all + + + | + + + relevant + + + , default + + + relevant + + + ] +
    +
    +

    + which ground terms to consider for instantiation +

    +

    + Modes for terms included in the quantifiers term database. +

    +
    +
    + + + all + + + + : + +
    +
    +

    + Quantifiers module considers all ground terms. +

    +
    +
    + + + relevant + + + + : + +
    +
    +

    + Quantifiers module considers only ground terms connected to current assertions. +

    +
    +
    +
    +
    +
    +
    + + + trigger-active-sel + + + [ + + + all + + + | + + + min + + + | + + + max + + + , default + + + all + + + ] +
    +
    +

    + + [experts only] + +

    +

    + selection mode to activate triggers +

    +

    + Trigger active selection modes. +

    +
    +
    + + + all + + + + : + +
    +
    +

    + Make all triggers active. +

    +
    +
    + + + min + + + + : + +
    +
    +

    + Activate triggers with minimal ground terms. +

    +
    +
    + + + max + + + + : + +
    +
    +

    + Activate triggers with maximal ground terms. +

    +
    +
    +
    +
    +
    +
    + + + trigger-sel + + + [ + + + min + + + | + + + max + + + | + + + min-s-max + + + | + + + min-s-all + + + | + + + all + + + , default + + + min + + + ] +
    +
    +

    + selection mode for triggers +

    +

    + Trigger selection modes. +

    +
    +
    + + + min + + + + : + +
    +
    +

    + Consider only minimal subterms that meet criteria for triggers. +

    +
    +
    + + + max + + + + : + +
    +
    +

    + Consider only maximal subterms that meet criteria for triggers. +

    +
    +
    + + + min-s-max + + + + : + +
    +
    +

    + Consider only minimal subterms that meet criteria for single triggers, maximal otherwise. +

    +
    +
    + + + min-s-all + + + + : + +
    +
    +

    + Consider only minimal subterms that meet criteria for single triggers, all otherwise. +

    +
    +
    + + + all + + + + : + +
    +
    +

    + Consider all subterms that meet criteria for triggers. +

    +
    +
    +
    +
    +
    +
    + + + user-pat + + + [ + + + use + + + | + + + trust + + + | + + + strict + + + | + + + resort + + + | + + + ignore + + + | + + + interleave + + + , default + + + trust + + + ] +
    +
    +

    + policy for handling user-provided patterns for quantifier instantiation +

    +

    + These modes determine how user provided patterns (triggers) are used during E-matching. The modes vary on when instantiation based on user-provided triggers is combined with instantiation based on automatically selected triggers. +

    +
    +
    + + + use + + + + : + +
    +
    +

    + Use both user-provided and auto-generated patterns when patterns are provided for a quantified formula. +

    +
    +
    + + + trust + + + + : + +
    +
    +

    + When provided, use only user-provided patterns for a quantified formula. +

    +
    +
    + + + strict + + + + : + +
    +
    +

    + When provided, use only user-provided patterns for a quantified formula, and do not use any other instantiation techniques. +

    +
    +
    + + + resort + + + + : + +
    +
    +

    + Use user-provided patterns only after auto-generated patterns saturate. +

    +
    +
    + + + ignore + + + + : + +
    +
    +

    + Ignore user-provided patterns. +

    +
    +
    + + + interleave + + + + : + +
    +
    +

    + Alternate between use/resort. +

    +
    +
    +
    +
    +
    +
    + + + user-pool + + + [ + + + use + + + | + + + trust + + + | + + + ignore + + + , default + + + trust + + + ] +
    +
    +

    + + [experts only] + +

    +

    + policy for handling user-provided pools for quantifier instantiation +

    +

    + These modes determine how user provided pools are used in combination with other instantiation techniques. +

    +
    +
    + + + use + + + + : + +
    +
    +

    + Use both user-provided pool and other instantiation strategies when pools are provided for a quantified formula. +

    +
    +
    + + + trust + + + + : + +
    +
    +

    + When provided, use only user-provided pool for a quantified formula. +

    +
    +
    + + + ignore + + + + : + +
    +
    +

    + Ignore user-provided pool. +

    +
    +
    +
    +
    +
    +
    + + + var-elim-quant + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + enable simple variable elimination for quantified formulas +

    +
    +
    +
    +
    + + + var-ineq-elim-quant + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + enable variable elimination based on infinite projection of unbound arithmetic variables +

    +
    +
    +
    +
    +

    + Separation Logic Theory Module + +  + +

    +
    +
    + + + sep + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + enables the separation logic solver in applicable logics +

    +
    +
    +
    +
    + + + sep-min-refine + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + only add refinement lemmas for minimal (innermost) assertions +

    +
    +
    +
    +
    + + + sep-pre-skolem-emp + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + eliminate emp constraint at preprocess time +

    +
    +
    +
    +
    +

    + Sets Theory Module + +  + +

    +
    +
    + + + rels-exp + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + enable the relations extension of the theory of sets +

    +
    +
    +
    +
    + + + sets-card-exp + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + enable the cardinality extension of the theory of sets +

    +
    +
    +
    +
    + + + sets-exp + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + enable extended symbols such as complement and universe in theory of sets +

    +
    +
    +
    +
    + + + sets-proxy-lemmas + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + introduce proxy variables eagerly to shorten lemmas +

    +
    +
    +
    +
    +

    + SMT Layer Module + +  + +

    +
    +
    + + + abstract-values + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + in models, output arrays (and in future, maybe others) using abstract values, as required by the SMT-LIB standard +

    +
    +
    +
    +
    + + + ackermann + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + eliminate functions by ackermannization +

    +
    +
    +
    +
    + + + bv-to-int-use-pow2 + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + use internal pow2 operator when translating shift notes +

    +
    +
    +
    +
    + + + bvand-integer-granularity + + + [type + + + uint64_t + + + , + + + 1 + + + <= + + + N + + + <= + + + 8 + + + , default + + + 1 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + granularity to use in –solve-bv-as-int mode and for iand operator (experimental) +

    +
    +
    +
    +
    + + + check-abducts + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + checks whether produced solutions to get-abduct are correct +

    +
    +
    +
    +
    + + + check-interpolants + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + checks whether produced solutions to get-interpolant are correct +

    +
    +
    +
    +
    + + + check-synth-sol + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + checks whether produced solutions to functions-to-synthesize satisfy the conjecture +

    +
    +
    +
    +
    + + + check-unsat-cores + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + after UNSAT/VALID, produce and check an unsat core (expensive) +

    +
    +
    +
    +
    + + + debug-check-models + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + after SAT/INVALID/UNKNOWN, check that the generated model satisfies user and internal assertions +

    +
    +
    +
    +
    + + + deep-restart + + + [ + + + none + + + | + + + input + + + | + + + input-and-solvable + + + | + + + input-and-prop + + + | + + + all + + + , default + + + none + + + ] +
    +
    +

    + + [experts only] + +

    +

    + mode for deep restarts +

    +

    + Mode for deep restarts +

    +
    +
    + + + none + + + + : + +
    +
    +

    + do not use deep restart +

    +
    +
    + + + input + + + + : + +
    +
    +

    + learn literals that appear in the input +

    +
    +
    + + + input-and-solvable + + + + : + +
    +
    +

    + learn literals that appear in the input and those that can be solved for variables that appear in the input +

    +
    +
    + + + input-and-prop + + + + : + +
    +
    +

    + learn literals that appear in the input and those that can be solved for variables, or correspond to constant propagations for terms that appear in the input +

    +
    +
    + + + all + + + + : + +
    +
    +

    + learn all literals +

    +
    +
    +
    +
    +
    +
    + + + deep-restart-factor + + + [type + + + double + + + , + + + 0.0 + + + <= + + + F + + + <= + + + 1000.0 + + + , default + + + 3.0 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + sets the threshold for average assertions per literal before a deep restart +

    +
    +
    +
    +
    + + + difficulty-mode + + + [ + + + lemma-literal + + + | + + + lemma-literal-all + + + | + + + model-check + + + , default + + + lemma-literal-all + + + ] +
    +
    +

    + + [experts only] + +

    +

    + choose output mode for get-difficulty, see –difficulty-mode=help +

    +

    + difficulty output modes. +

    +
    +
    + + + lemma-literal + + + + : + +
    +
    +

    + Difficulty of an assertion is how many lemmas (at full effort) use a literal that the assertion depends on to be satisfied. +

    +
    +
    + + + lemma-literal-all + + + + : + +
    +
    +

    + Difficulty of an assertion is how many lemmas use a literal that the assertion depends on to be satisfied. +

    +
    +
    + + + model-check + + + + : + +
    +
    +

    + Difficulty of an assertion is how many times it was not satisfied in a candidate model. +

    +
    +
    +
    +
    +
    +
    + + + early-ite-removal + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + remove ITEs early in preprocessing +

    +
    +
    +
    +
    + + + ext-rew-prep + + + [ + + + off + + + | + + + use + + + | + + + agg + + + , default + + + off + + + ] +
    +
    +

    + mode for using extended rewriter as a preprocessing pass, see –ext-rew-prep=help +

    +

    + extended rewriter preprocessing pass modes. +

    +
    +
    + + + off + + + + : + +
    +
    +

    + do not use extended rewriter as a preprocessing pass. +

    +
    +
    + + + use + + + + : + +
    +
    +

    + use extended rewriter as a preprocessing pass. +

    +
    +
    + + + agg + + + + : + +
    +
    +

    + use aggressive extended rewriter as a preprocessing pass. +

    +
    +
    +
    +
    +
    +
    + + + foreign-theory-rewrite + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + Cross-theory rewrites +

    +
    +
    +
    +
    + + + iand-mode + + + [ + + + value + + + | + + + sum + + + | + + + bitwise + + + , default + + + value + + + ] +
    +
    +

    + + [experts only] + +

    +

    + Set the refinement scheme for integer AND +

    +

    + Refinement modes for integer AND +

    +
    +
    + + + value + + + + : + +
    +
    +

    + value-based refinement +

    +
    +
    + + + sum + + + + : + +
    +
    +

    + use sum to represent integer AND in refinement +

    +
    +
    + + + bitwise + + + + : + +
    +
    +

    + use bitwise comparisons on binary representation of integer for refinement (experimental) +

    +
    +
    +
    +
    +
    +
    + + + interpolants-mode + + + [ + + + default + + + | + + + assumptions + + + | + + + conjecture + + + | + + + shared + + + | + + + all + + + , default + + + default + + + ] +
    +
    +

    + choose interpolants production mode, see –interpolants-mode=help +

    +

    + Interpolants grammar mode +

    +
    +
    + + + default + + + + : + +
    +
    +

    + use the default grammar for the theory or the user-defined grammar if given +

    +
    +
    + + + assumptions + + + + : + +
    +
    +

    + use only operators that occur in the assumptions +

    +
    +
    + + + conjecture + + + + : + +
    +
    +

    + use only operators that occur in the conjecture +

    +
    +
    + + + shared + + + + : + +
    +
    +

    + use only operators that occur both in the assumptions and the conjecture +

    +
    +
    + + + all + + + + : + +
    +
    +

    + use only operators that occur either in the assumptions or the conjecture +

    +
    +
    +
    +
    +
    +
    + + + ite-simp + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + turn on ite simplification (Kim (and Somenzi) et al., SAT 2009) +

    +
    +
    +
    +
    + + + learned-rewrite + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + rewrite the input based on learned literals +

    +
    +
    +
    +
    + + + minimal-unsat-cores + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + if an unsat core is produced, it is reduced to a minimal unsat core +

    +
    +
    +
    +
    + + + model-cores + + + [ + + + none + + + | + + + simple + + + | + + + non-implied + + + , default + + + none + + + ] +
    +
    +

    + mode for producing model cores +

    +

    + Model cores modes. +

    +
    +
    + + + none + + + + : + +
    +
    +

    + Do not compute model cores. +

    +
    +
    + + + simple + + + + : + +
    +
    +

    + Only include a subset of variables whose values are sufficient to show the input formula is satisfied by the given model. +

    +
    +
    + + + non-implied + + + + : + +
    +
    +

    + Only include a subset of variables whose values, in addition to the values of variables whose values are implied, are sufficient to show the input formula is satisfied by the given model. +

    +
    +
    +
    +
    +
    +
    + + + model-var-elim-uneval + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + allow variable elimination based on unevaluatable terms to variables +

    +
    +
    +
    +
    + + + on-repeat-ite-simp + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + do the ite simplification pass again if repeating simplification +

    +
    +
    +
    +
    + + + print-cores-full + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + print all formulas regardless of whether they are named, e.g. in unsat cores +

    +
    +
    +
    +
    + + + produce-abducts + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + support the get-abduct command +

    +
    +
    +
    +
    + + + produce-assertions + + + | + + + interactive-mode + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + keep an assertions list. Note this option is always enabled. +

    +
    +
    +
    +
    + + + produce-assignments + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + support the get-assignment command +

    +
    +
    +
    +
    + + + produce-difficulty + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + enable tracking of difficulty. +

    +
    +
    +
    +
    + + + produce-interpolants + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + turn on interpolation generation. +

    +
    +
    +
    +
    + + + produce-learned-literals + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + produce learned literals, support get-learned-literals +

    +
    +
    +
    +
    + + + produce-unsat-assumptions + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + turn on unsat assumptions generation +

    +
    +
    +
    +
    + + + produce-unsat-cores + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + turn on unsat core generation. Unless otherwise specified, cores will be produced using SAT soving under assumptions and preprocessing proofs. +

    +
    +
    +
    +
    + + + proof-mode + + + [ + + + off + + + | + + + pp-only + + + | + + + sat-proof + + + | + + + full-proof + + + | + + + full-proof-strict + + + , default + + + off + + + ] +
    +
    +

    + + [experts only] + +

    +

    + choose proof mode, see –proof-mode=help +

    +

    + proof modes. +

    +
    +
    + + + off + + + + : + +
    +
    +

    + Do not produce proofs. +

    +
    +
    + + + pp-only + + + + : + +
    +
    +

    + Only produce proofs for preprocessing. +

    +
    +
    + + + sat-proof + + + + : + +
    +
    +

    + Produce proofs for preprocessing and for the SAT solver. +

    +
    +
    + + + full-proof + + + + : + +
    +
    +

    + Produce full proofs of preprocessing, SAT and theory lemmas. +

    +
    +
    + + + full-proof-strict + + + + : + +
    +
    +

    + Produce full proofs of preprocessing, SAT and theory lemmas. Additionally disable techniques that will lead to incomplete proofs. +

    +
    +
    +
    +
    +
    +
    + + + repeat-simp + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + make multiple passes with nonclausal simplifier +

    +
    +
    +
    +
    + + + simp-ite-compress + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + enables compressing ites after ite simplification +

    +
    +
    +
    +
    + + + simp-with-care + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + enables simplifyWithCare in ite simplificiation +

    +
    +
    +
    +
    + + + simplification + + + | + + + simplification-mode + + + [ + + + none + + + | + + + batch + + + , default + + + batch + + + ] +
    +
    +

    + choose simplification mode, see –simplification=help +

    +

    + Simplification modes. +

    +
    +
    + + + none + + + + : + +
    +
    +

    + Do not perform nonclausal simplification. +

    +
    +
    + + + batch + + + + : + +
    +
    +

    + Save up all ASSERTions; run nonclausal simplification and clausal (MiniSat) propagation for all of them only after reaching a querying command (CHECKSAT or QUERY or predicate SUBTYPE declaration). +

    +
    +
    +
    +
    +
    +
    + + + simplification-bcp + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + apply Boolean constant propagation as a substitution during simplification +

    +
    +
    +
    +
    + + + solve-bv-as-int + + + [ + + + off + + + | + + + sum + + + | + + + iand + + + | + + + bv + + + | + + + bitwise + + + , default + + + off + + + ] +
    +
    +

    + mode for translating BVAnd to integer +

    +

    + solve-bv-as-int modes. +

    +
    +
    + + + off + + + + : + +
    +
    +

    + Do not translate bit-vectors to integers +

    +
    +
    + + + sum + + + + : + +
    +
    +

    + Generate a sum expression for each bvand instance, based on the value in –solve-bv-as-int-granularity +

    +
    +
    + + + iand + + + + : + +
    +
    +

    + Translate bvand to the iand operator +

    +
    +
    + + + bv + + + + : + +
    +
    +

    + Translate bvand back to bit-vectors +

    +
    +
    + + + bitwise + + + + : + +
    +
    +

    + Introduce a UF operator for bvand, and eagerly add bitwise lemmas +

    +
    +
    +
    +
    +
    +
    + + + solve-int-as-bv + + + [type + + + uint64_t + + + , + + + N + + + <= + + + 4294967295 + + + , default + + + 0 + + + ] +
    +
    +

    + attempt to solve a pure integer satisfiable problem by bitblasting in sufficient bitwidth (experimental) +

    +
    +
    +
    +
    + + + solve-real-as-int + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + attempt to solve a pure real satisfiable problem as an integer problem (for non-linear) +

    +
    +
    +
    +
    + + + sort-inference + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + calculate sort inference of input problem, convert the input based on monotonic sorts +

    +
    +
    +
    +
    + + + static-learning + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + use static learning (on by default) +

    +
    +
    +
    +
    + + + timeout-core-timeout + + + [type + + + uint64_t + + + , default + + + 10000 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + timeout (in milliseconds) for satisfiability checks for timeout cores +

    +
    +
    +
    +
    + + + unconstrained-simp + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + turn on unconstrained simplification (see Bruttomesso/Brummayer PhD thesis). Fully supported only in (subsets of) the logic QF_ABV. +

    +
    +
    +
    +
    + + + unsat-cores-mode + + + [ + + + off + + + | + + + sat-proof + + + | + + + assumptions + + + , default + + + off + + + ] +
    +
    +

    + + [experts only] + +

    +

    + choose unsat core mode, see –unsat-cores-mode=help +

    +

    + unsat cores modes. +

    +
    +
    + + + off + + + + : + +
    +
    +

    + Do not produce unsat cores. +

    +
    +
    + + + sat-proof + + + + : + +
    +
    +

    + Produce unsat cores from the SAT proof and prepocessing proofs. +

    +
    +
    + + + assumptions + + + + : + +
    +
    +

    + Produce unsat cores using solving under assumptions and preprocessing proofs. +

    +
    +
    +
    +
    +
    +
    +

    + Strings Theory Module + +  + +

    +
    +
    + + + re-elim + + + [ + + + off + + + | + + + on + + + | + + + agg + + + , default + + + off + + + ] +
    +
    +

    + regular expression elimination mode +

    +

    + Regular expression elimination modes. +

    +
    +
    + + + off + + + + : + +
    +
    +

    + Do not use regular expression elimination. +

    +
    +
    + + + on + + + + : + +
    +
    +

    + Use regular expression elimination. +

    +
    +
    + + + agg + + + + : + +
    +
    +

    + Use aggressive regular expression elimination. +

    +
    +
    +
    +
    +
    +
    + + + re-inter-mode + + + [ + + + all + + + | + + + constant + + + | + + + one-constant + + + | + + + none + + + , default + + + none + + + ] +
    +
    +

    + + [experts only] + +

    +

    + determines which regular expressions intersections to compute +

    +

    + Regular expression intersection modes. +

    +
    +
    + + + all + + + + : + +
    +
    +

    + Compute intersections for all regular expressions. +

    +
    +
    + + + constant + + + + : + +
    +
    +

    + Compute intersections only between regular expressions that do not contain re.allchar or re.range. +

    +
    +
    + + + one-constant + + + + : + +
    +
    +

    + Compute intersections only between regular expressions such that at least one side does not contain re.allchar or re.range. +

    +
    +
    + + + none + + + + : + +
    +
    +

    + Do not compute intersections for regular expressions. +

    +
    +
    +
    +
    +
    +
    + + + seq-array + + + [ + + + lazy + + + | + + + eager + + + | + + + none + + + , default + + + none + + + ] +
    +
    +

    + + [experts only] + +

    +

    + use array-inspired solver for sequence updates in eager or lazy mode +

    +

    + use array-inspired solver for sequence updates in eager or lazy mode +

    +
    +
    + + + lazy + + + + : + +
    +
    +

    + use array-inspired solver for sequence updates in lazy mode +

    +
    +
    + + + eager + + + + : + +
    +
    +

    + use array-inspired solver for sequence updates in eager mode +

    +
    +
    + + + none + + + + : + +
    +
    +

    + do not use array-inspired solver for sequence updates +

    +
    +
    +
    +
    +
    +
    + + + strings-alpha-card + + + [type + + + uint64_t + + + , + + + N + + + <= + + + 196608 + + + , default + + + 196608 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + the assumed cardinality of the alphabet of characters for strings, which is a prefix of the interval of unicode code points in the SMT-LIB standard +

    +
    +
    +
    +
    + + + strings-check-entail-len + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + check entailment between length terms to reduce splitting +

    +
    +
    +
    +
    + + + strings-deq-ext + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + use extensionality for string disequalities +

    +
    +
    +
    +
    + + + strings-eager-eval + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + perform eager context-dependent evaluation for applications of string kinds in the equality engine +

    +
    +
    +
    +
    + + + strings-eager-len-re + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + use regular expressions for eager length conflicts +

    +
    +
    +
    +
    + + + strings-eager-reg + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + do registration lemmas for terms during preregistration. If false, do registration lemmas for terms when they appear in asserted literals +

    +
    +
    +
    +
    + + + strings-eager-solver + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + use the eager solver +

    +
    +
    +
    +
    + + + strings-exp + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + experimental features in the theory of strings +

    +
    +
    +
    +
    + + + strings-ff + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + do flat form inferences +

    +
    +
    +
    +
    + + + strings-fmf + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + the finite model finding used by the theory of strings +

    +
    +
    +
    +
    + + + strings-infer-as-lemmas + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + always send lemmas out instead of making internal inferences +

    +
    +
    +
    +
    + + + strings-infer-sym + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + generalized inferences in strings based on proxy symbols +

    +
    +
    +
    +
    + + + strings-lazy-pp + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + perform string preprocessing lazily +

    +
    +
    +
    +
    + + + strings-len-norm + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + strings length normalization lemma +

    +
    +
    +
    +
    + + + strings-mbr + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + use models to avoid reductions for extended functions that introduce quantified formulas +

    +
    +
    +
    +
    + + + strings-model-max-len + + + [type + + + uint64_t + + + , + + + N + + + <= + + + 2147483647 + + + , default + + + 65536 + + + ] +
    +
    +

    + + [experts only] + +

    +

    + The maximum size of string values in models +

    +
    +
    +
    +
    + + + strings-process-loop-mode + + + [ + + + full + + + | + + + simple + + + | + + + simple-abort + + + | + + + none + + + | + + + abort + + + , default + + + full + + + ] +
    +
    +

    + determines how to process looping string equations +

    +

    + Loop processing modes. +

    +
    +
    + + + full + + + + : + +
    +
    +

    + Perform full processing of looping word equations. +

    +
    +
    + + + simple + + + + : + +
    +
    +

    + Omit normal loop breaking (default with –strings-fmf). +

    +
    +
    + + + simple-abort + + + + : + +
    +
    +

    + Abort when normal loop breaking is required. +

    +
    +
    + + + none + + + + : + +
    +
    +

    + Omit loop processing. +

    +
    +
    + + + abort + + + + : + +
    +
    +

    + Abort if looping word equations are encountered. +

    +
    +
    +
    +
    +
    +
    + + + strings-re-posc-eager + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + eager reduction of positive membership into concatenation +

    +
    +
    +
    +
    + + + strings-regexp-inclusion + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + use regular expression inclusion for finding conflicts and avoiding regular expression unfolding +

    +
    +
    +
    +
    + + + strings-rexplain-lemmas + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + regression explanations for string lemmas +

    +
    +
    +
    +
    +

    + Theory Layer Module + +  + +

    +
    +
    + + + assign-function-values + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + assign values for uninterpreted functions in models +

    +
    +
    +
    +
    + + + conflict-process + + + [ + + + none + + + | + + + min + + + | + + + min-ext + + + , default + + + none + + + ] +
    +
    +

    + + [experts only] + +

    +

    + mode for processing theory conflicts +

    +

    + Defines mode for processing theory conflicts. +

    +
    +
    + + + none + + + + : + +
    +
    +

    + Do not post-process conflicts from theory solvers. +

    +
    +
    + + + min + + + + : + +
    +
    +

    + Do simple minimization for conflicts from theory solvers. +

    +
    +
    + + + min-ext + + + + : + +
    +
    +

    + Do minimization for conflicts from theory solvers, relying on the extended rewriter. +

    +
    +
    +
    +
    +
    +
    + + + ee-mode + + + [ + + + distributed + + + | + + + central + + + , default + + + distributed + + + ] +
    +
    +

    + + [experts only] + +

    +

    + mode for managing equalities across theory solvers +

    +

    + Defines mode for managing equalities across theory solvers. +

    +
    +
    + + + distributed + + + + : + +
    +
    +

    + Each theory maintains its own equality engine. +

    +
    +
    + + + central + + + + : + +
    +
    +

    + All applicable theories use the central equality engine. +

    +
    +
    +
    +
    +
    +
    + + + lemma-inprocess + + + [ + + + full + + + | + + + light + + + | + + + none + + + , default + + + none + + + ] +
    +
    +

    + + [experts only] + +

    +

    + Modes for inprocessing lemmas. +

    +

    + Modes for inprocessing lemmas. +

    +
    +
    + + + full + + + + : + +
    +
    +

    + Full inprocessing. +

    +
    +
    + + + light + + + + : + +
    +
    +

    + Light inprocessing. +

    +
    +
    + + + none + + + + : + +
    +
    +

    + No inprocessing. +

    +
    +
    +
    +
    +
    +
    + + + lemma-inprocess-infer-eq-lit + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + Infer equivalent literals when using lemma inprocess +

    +
    +
    +
    +
    + + + lemma-inprocess-subs + + + [ + + + all + + + | + + + simple + + + , default + + + simple + + + ] +
    +
    +

    + + [experts only] + +

    +

    + Modes for substitutions for inprocessing lemmas. +

    +

    + Modes for substitutions for inprocessing lemmas. +

    +
    +
    + + + all + + + + : + +
    +
    +

    + All substitutions. +

    +
    +
    + + + simple + + + + : + +
    +
    +

    + Simple substitutions. +

    +
    +
    +
    +
    +
    +
    + + + relevance-filter + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + enable analysis of relevance of asserted literals with respect to the input formula +

    +
    +
    +
    +
    + + + tc-mode + + + [ + + + care-graph + + + , default + + + care-graph + + + ] +
    +
    +

    + + [experts only] + +

    +

    + mode for theory combination +

    +

    + Defines mode for theory combination. +

    +
    +
    + + + care-graph + + + + : + +
    +
    +

    + Use care graphs for theory combination. +

    +
    +
    +
    +
    +
    +
    + + + theoryof-mode + + + [ + + + type + + + | + + + term + + + , default + + + type + + + ] +
    +
    +

    + + [experts only] + +

    +

    + mode for Theory::theoryof() +

    +

    + Defines how we associate theories with terms. +

    +
    +
    + + + type + + + + : + +
    +
    +

    + Type variables, constants and equalities by type. +

    +
    +
    + + + term + + + + : + +
    +
    +

    + Type variables as uninterpreted, type constants by theory, equalities by the parametric theory. +

    +
    +
    +
    +
    +
    +
    +

    + Uninterpreted Functions Theory Module + +  + +

    +
    +
    + + + eager-arith-bv-conv + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + eagerly expand bit-vector to arithmetic conversions during preprocessing +

    +
    +
    +
    +
    + + + model-based-arith-bv-conv + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + model-based inferences for bit-vector to arithmetic conversions +

    +
    +
    +
    +
    + + + symmetry-breaker + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + use UF symmetry breaker (Deharbe et al., CADE 2011) +

    +
    +
    +
    +
    + + + uf-card-exp + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + allows logics with UF+cardinality +

    +
    +
    +
    +
    + + + uf-ho-exp + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + enables the higher-order logic solver in applicable logics +

    +
    +
    +
    +
    + + + uf-ho-ext + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + apply extensionality on function symbols +

    +
    +
    +
    +
    + + + uf-lambda-qe + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + apply quantifier elimination eagerly when two lambdas are equated +

    +
    +
    +
    +
    + + + uf-lazy-ll + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + do lambda lifting lazily +

    +
    +
    +
    +
    + + + uf-ss + + + [ + + + full + + + | + + + no-minimal + + + | + + + none + + + , default + + + full + + + ] +
    +
    +

    + mode of operation for uf with cardinality solver. +

    +

    + UF with cardinality options currently supported by the –uf-ss option when combined with finite model finding. +

    +
    +
    + + + full + + + + : + +
    +
    +

    + Default, use UF with cardinality to find minimal models for uninterpreted sorts. +

    +
    +
    + + + no-minimal + + + + : + +
    +
    +

    + Use UF with cardinality to shrink models, but do no enforce minimality. +

    +
    +
    + + + none + + + + : + +
    +
    +

    + Do not use UF with cardinality to shrink model sizes. +

    +
    +
    +
    +
    +
    +
    + + + uf-ss-abort-card + + + [type + + + int64_t + + + , default + + + -1 + + + ] +
    +
    +

    + tells the uf with cardinality to only consider models that interpret uninterpreted sorts of cardinality at most N (-1 == no limit, default) +

    +
    +
    +
    +
    + + + uf-ss-fair + + + [type + + + bool + + + , default + + + true + + + ] (also + + + --no-* + + + ) +
    +
    +

    + use fair strategy for finite model finding multiple sorts +

    +
    +
    +
    +
    + + + uf-ss-fair-monotone + + + [type + + + bool + + + , default + + + false + + + ] (also + + + --no-* + + + ) +
    +
    +

    + + [experts only] + +

    +

    + group monotone sorts when enforcing fairness for finite model finding +

    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/output-tags.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/output-tags.html new file mode 100644 index 0000000000..601d934a80 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/output-tags.html @@ -0,0 +1,1185 @@ + + + + + + + + + + + Output tags — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    +
      +
    • + + +
    • + +
    • +
    • +
    +
    +
    +
    +
    +
    +

    + Output tags + +  + +

    +

    + cvc5 supports printing information about certain aspects of the solving process +that is intended for regular users. This feature can be enabled using the + + + output + + + option. +

    +

    + The following output tags are currently supported: +

    +
    +

    + inst + +  + +

    +

    + With + + + -o + + + inst + + + , cvc5 prints information about quantifier instantions for individual quantifers. +

    +
    +
    +
    $ bin/cvc5 -o inst ../test/regress/cli/regress1/quantifiers/qid-debug-inst.smt2
    +(num-instantiations myQuant1 1)
    +(num-instantiations myQuant2 1)
    +unsat
    +
    +
    +
    +
    +
    +

    + inst-strategy + +  + +

    +

    + With + + + -o + + + inst-strategy + + + , cvc5 prints a summary of the instantiation techniques as they are run. +

    +
    +
    +
    $ bin/cvc5 -o inst-strategy ../test/regress/cli/regress2/quantifiers/javafe.tc.CheckCompilationUnit.001.smt2
    +(inst-strategy cbqi :inst 1 :time 0.00025)
    +(inst-strategy cbqi :inst 1 :time 0.002043)
    +(inst-strategy cbqi :inst 2 :time 0.003898)
    +(inst-strategy cbqi :time 0.002989)
    +(inst-strategy ematching :inst 119 :time 0.015116)
    +(inst-strategy cbqi :inst 1 :time 0.002756)
    +(inst-strategy cbqi :inst 5 :time 0.006344)
    +(inst-strategy cbqi :time 0.006073)
    +(inst-strategy cbqi :time 0.006023)
    +(inst-strategy ematching :inst 78 :time 0.013969)
    +(inst-strategy cbqi :inst 1 :time 0.003648)
    +(inst-strategy cbqi :inst 1 :time 0.000111)
    +(inst-strategy cbqi :inst 1 :time 0.003596)
    +unsat
    +
    +
    +
    +
    +
    +

    + oracles + +  + +

    +

    + With + + + -o + + + oracles + + + , cvc5 prints the I/O of calls made to external oracles. +

    +
    +
    +

    + sygus + +  + +

    +

    + With + + + -o + + + sygus + + + , cvc5 prints information about the internal SyGuS solver including enumerated terms and generated candidates. +

    +
    +
    +
    $ bin/cvc5 -o sygus ../test/regress/cli/regress0/sygus/print-debug.sy
    +(sygus-enum 0)
    +(sygus-candidate (f 0))
    +(sygus-enum 1)
    +(sygus-candidate (f 1))
    +(
    +(define-fun f () Int 1)
    +)
    +
    +
    +
    +
    +
    +

    + sygus-grammar + +  + +

    +

    + With + + + -o + + + sygus-grammar + + + , cvc5 prints the grammar it generates for a function-to-synthesize when no grammar was provided. +

    +
    +
    +
    $ bin/cvc5 -o sygus-grammar ../test/regress/cli/regress0/sygus/print-grammar.sy
    +(sygus-grammar f ((A_Int Int) (A_Bool Bool) )((A_Int Int (x y 0 1 (+ A_Int A_Int) (- A_Int A_Int) (ite A_Bool A_Int A_Int)))(A_Bool Bool (true false (= A_Int A_Int) (<= A_Int A_Int) (not A_Bool) (and A_Bool A_Bool) (or A_Bool A_Bool)))))
    +(
    +(define-fun f ((x Int) (y Int)) Int 0)
    +)
    +
    +
    +
    +
    +
    +

    + sygus-enumerator + +  + +

    +

    + With + + + -o + + + sygus-enumerator + + + , cvc5 prints enumerators generated by the sygus solver. +

    +
    +
    +
    $ bin/cvc5 -o sygus-enumerator ../test/regress/cli/regress0/sygus/print-enumerator.sy
    +(sygus-enumerator :synth-fun f :role SINGLE_SOLUTION :type FAST)
    +(
    +(define-fun f ((x Int) (y Int)) Int x)
    +)
    +
    +
    +
    +
    +
    +

    + sygus-sol-gterm + +  + +

    +

    + With + + + -o + + + sygus-sol-gterm + + + , cvc5 prints annotations for terms in sygus solutions that indicate the grammar used to generate them. +

    +
    +
    +
    $ bin/cvc5 -o sygus-sol-gterm ../test/regress/cli/regress0/sygus/print-sygus-gterm.sy
    +(sygus-sol-gterm (f (! (+ (! 1 :gterm a) (! 1 :gterm b)) :gterm a)))
    +(
    +(define-fun f () Int (+ 1 1))
    +)
    +
    +
    +
    +
    +
    +

    + trigger + +  + +

    +

    + With + + + -o + + + trigger + + + , cvc5 prints the selected triggers when solving a quantified formula. +

    +
    +
    +
    $ bin/cvc5 -o trigger ../test/regress/cli/regress1/quantifiers/qid-debug-inst.smt2
    +(trigger myQuant1 ((not (= (R x) false))) :simple)
    +(trigger myQuant1 ((not (= (P x) true))) :simple)
    +(trigger myQuant2 ((not (= (P x) false))) :simple)
    +(trigger myQuant2 ((not (= (Q x) true))) :simple)
    +unsat
    +
    +
    +
    +
    +
    +

    + raw-benchmark + +  + +

    +

    + With + + + -o + + + raw-benchmark + + + , cvc5 prints the benchmark back just as it has been parsed. +

    +
    +
    +
    $ bin/cvc5 -o raw-benchmark ../test/regress/cli/regress0/datatypes/datatype-dump.cvc.smt2
    +(set-logic ALL)
    +(declare-datatypes ((nat 0)) (((succ (pred nat)) (zero))))
    +(declare-fun x () nat)
    +(check-sat-assuming ( (not (and (not ((_ is succ) x)) (not ((_ is zero) x)))) ))
    +sat
    +
    +
    +
    +
    +
    +

    + learned-lits + +  + +

    +

    + With + + + -o + + + learned-lits + + + , cvc5 prints input literals that it has learned to hold globally. +

    +
    +
    +
    $ bin/cvc5 -o learned-lits ../test/regress/cli/regress0/printer/learned-lit-output.smt2
    +(learned-lit (>= x 11) :preprocess)
    +(learned-lit (>= x 5) :input)
    +(learned-lit (>= y 1) :input)
    +sat
    +
    +
    +
    +
    +
    +

    + subs + +  + +

    +

    + With + + + -o + + + subs + + + , cvc5 prints top-level substitutions learned during preprocessing. +

    +
    +
    +
    $ bin/cvc5 -o subs ../test/regress/cli/regress0/printer/print_subs.smt2
    +(substitution (= a 3))
    +sat
    +
    +
    +
    +
    +
    +

    + post-asserts + +  + +

    +

    + With + + + -o + + + post-asserts + + + , cvc5 prints a benchmark corresponding to the assertions of the input problem after preprocessing. +

    +
    +
    +
    $ bin/cvc5 -o post-asserts ../test/regress/cli/regress0/printer/post-asserts-output.smt2
    +;; post-asserts start
    +(set-logic ALL)
    +(assert true)
    +(assert true)
    +(check-sat)
    +;; post-asserts end
    +sat
    +
    +
    +
    +
    +
    +

    + pre-asserts + +  + +

    +

    + With + + + -o + + + pre-asserts + + + , cvc5 prints a benchmark corresponding to the assertions of the input problem before preprocessing. +

    +
    +
    +
    $ bin/cvc5 -o pre-asserts ../test/regress/cli/regress0/printer/pre-asserts-output.smt2
    +;; pre-asserts start
    +(set-logic ALL)
    +(declare-fun x () Int)
    +(assert (= x x))
    +(check-sat)
    +;; pre-asserts end
    +sat
    +
    +
    +
    +
    +
    +

    + deep-restart + +  + +

    +

    + With + + + -o + + + deep-restart + + + , cvc5 prints when it performs a deep restart along with the literals it has learned. +

    +
    +
    +
    $ bin/cvc5 -o deep-restart ../test/regress/cli/regress0/printer/deep-restart-output.smt2
    +(deep-restart ((= f k)))
    +sat
    +
    +
    +
    +
    +
    +

    + incomplete + +  + +

    +

    + With + + + -o + + + incomplete + + + , cvc5 prints reason for why it answers unknown for any given check-sat query. +

    +
    +
    +
    $ bin/cvc5 -o incomplete ../test/regress/cli/regress0/printer/incomplete.smt2
    +(incomplete INCOMPLETE QUANTIFIERS)
    +unknown
    +
    +
    +
    +
    +
    +

    + lemmas + +  + +

    +

    + With + + + -o + + + lemmas + + + , cvc5 prints lemmas as they are added to the SAT solver. +

    +
    +
    +
    $ bin/cvc5 -o lemmas ../test/regress/cli/regress0/printer/print_sat_lemmas.smt2
    +(lemma (=> (forall ((x Int)) (P x)) (P 5)) :source QUANTIFIERS_INST_CBQI_CONFLICT)
    +unsat
    +
    +
    +
    +
    +
    +

    + trusted-proof-steps + +  + +

    +

    + With + + + -o + + + trusted-proof-steps + + + , cvc5 prints formulas corresponding to trusted proof steps in final proofs. +

    +
    +
    +
    $ bin/cvc5 -o trusted-proof-steps ../test/regress/cli/regress0/printer/print_trusted_proof_steps.smt2
    +unsat
    +(trusted-proof-step (= (= 0 1) false) :rule TRUST_THEORY_REWRITE :theory THEORY_ARITH)
    +(define @t1 () (= 0 1))
    +(assume @p1 @t1)
    +; WARNING: add trust step for TRUST_THEORY_REWRITE
    +; trust TRUST_THEORY_REWRITE
    +(step @p2 :rule trust :premises () :args ((= @t1 false)))
    +(step @p3 false :rule eq_resolve :premises (@p1 @p2))
    +
    +
    +
    +
    +
    +

    + timeout-core-benchmark + +  + +

    +

    + With + + + -o + + + timeout-core-benchmark + + + , cvc5 prints the corresponding benchmark when it successfully computes a timeout core. +

    +
    +
    +
    $ bin/cvc5 -o timeout-core-benchmark ../test/regress/cli/regress1/print_timeout_core.smt2
    +;; timeout core
    +(set-logic ALL)
    +(declare-fun x () Int)
    +(assert (= (* x x x) 564838384999))
    +(check-sat)
    +;; end timeout core
    +unknown
    +(
    +hard
    +)
    +
    +
    +
    +
    +
    +

    + unsat-core-benchmark + +  + +

    +

    + With + + + -o + + + unsat-core-benchmark + + + , cvc5 prints the corresponding benchmark when it successfully computes an unsat core. +

    +
    +
    +
    $ bin/cvc5 -o unsat-core-benchmark ../test/regress/cli/regress0/printer/print_unsat_core.smt2
    +unsat
    +;; unsat core
    +(set-logic ALL)
    +(declare-fun x () Int)
    +(assert (and (> x 2) (< x 0)))
    +(check-sat)
    +;; end unsat core
    +(
    +x20
    +)
    +
    +
    +
    +
    +
    +

    + unsat-core-lemmas-benchmark + +  + +

    +

    + With + + + -o + + + unsat-core-lemmas-benchmark + + + , cvc5 prints the corresponding benchmark when it successfully computes an unsat core that includes the theory lemmas used. +

    +
    +
    +
    $ bin/cvc5 -o unsat-core-lemmas-benchmark ../test/regress/cli/regress0/printer/print_unsat_core_lemmas.smt2
    +unsat
    +;; unsat core + lemmas
    +(set-logic ALL)
    +(declare-fun x () Int)
    +(assert (and (> x 2) (< x 0)))
    +(assert (or (not (>= x 3)) (>= x 0)))
    +(check-sat)
    +;; end unsat core + lemmas
    +(
    +(or (not (>= x 3)) (>= x 0))
    +)
    +
    +
    +
    +
    +
    +

    + unsat-core-lemmas + +  + +

    +

    + With + + + -o + + + unsat-core-lemmas + + + , cvc5 prints diagnostic information on lemmas that appear in an unsat core with theory lemmas. +

    +
    +
    +
    $ bin/cvc5 -o unsat-core-lemmas ../test/regress/cli/regress0/printer/print_unsat_core_lemmas.smt2
    +unsat
    +;; unsat core lemmas start
    +(unsat-core-lemma (or (not (>= x 3)) (>= x 0)) :source ARITH_UNATE :timestamp 0)
    +;; unsat core lemmas end
    +(
    +(or (not (>= x 3)) (>= x 0))
    +)
    +
    +
    +
    +
    +
    +

    + portfolio + +  + +

    +

    + With + + + -o + + + portfolio + + + , cvc5 prints the option strings tried in portfolio mode. +

    +
    +
    +
    $ bin/cvc5 -o portfolio ../test/regress/cli/regress0/printer/portfolio-out.smt2 --use-portfolio
    +(portfolio "--simplification=none --enum-inst" :timeout 0.025)
    +(portfolio-success "--simplification=none --enum-inst")
    +unsat
    +
    +
    +
    +
    +
    +

    + block-model + +  + +

    +

    + With + + + -o + + + block-model + + + , cvc5 prints the formulas used when block-model is run. +

    +
    +
    +
    $ bin/cvc5 -o block-model ../test/regress/cli/regress0/printer/block_model_out.smt2
    +sat
    +(block-model (and (> y 0) (= x 4)))
    +sat
    +(block-model (and (> y 0) (= x 5)))
    +
    +
    +
    +
    +
    +

    + options-auto + +  + +

    +

    + With + + + -o + + + options-auto + + + , cvc5 prints the options set during automatic configuration. +

    +
    +
    +
    $ bin/cvc5 -o options-auto ../test/regress/cli/regress0/printer/print_options_auto.smt2
    +(options-auto symmetry-breaker 0 :reason "logic and options")
    +(options-auto bv-propagate false :reason "bitblast solver")
    +(options-auto arith-rewrite-equalities 1 :reason "logic")
    +(options-auto standard-effort-variable-order-pivots 200 :reason "logic")
    +(options-auto nl-rlv-assert-bounds 1 :reason "non-quantified logic")
    +(options-auto decision stoponly :reason "logic")
    +(options-auto quant-dsplit none :reason "non-datatypes logic")
    +(options-auto nl-cov false :reason "logic without reals, or involving integers or quantifiers")
    +sat
    +
    +
    +
    +
    +
    +

    + rare-db + +  + +

    +

    + With + + + -o + + + rare-db + + + , upon initialization, cvc5 prints the entire set of RARE rewrite rules as they are defined in the proof signature. +

    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/proofs/output_alethe.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/proofs/output_alethe.html new file mode 100644 index 0000000000..205dea7149 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/proofs/output_alethe.html @@ -0,0 +1,438 @@ + + + + + + + + + + + Proof format: Alethe — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Proof format: Alethe + +  + +

    +

    + Using the flag + + + proof-format-mode=alethe + + + , +cvc5 outputs proofs in the + + Alethe proof format + + . +

    +

    + The Alethe proof format is a flexible proof format for SMT solvers based on +SMT-LIB. It includes both coarse- and fine-grained steps and was first +implemented in the veriT solver + + [ + + BdODeharbeF09 + + ] + + . Alethe proofs can be +checked via reconstruction within Isabelle/HOL + + [ + + BBFF20 + + , + + SFD21 + + ] + + as well as within Coq, the latter via the SMTCoq plugin + + [ + + AFGregoire+11 + + , + + EMT+17 + + ] + + . There is also a high performance Rust proof checker and elaborator +for Alethe: Carcara, available + + here + + . For a quick start, the cvc5 +repository contains a + + script + + to +download and install the Carcara checker’s version with full support for cvc5 +Alethe proofs, and create scripts for generating proofs with cvc5 and checking +them with Carcara. +

    +

    + Currently, the theories of equality with uninterpreted functions, linear +arithmetic, bit-vectors and parts of the theory of strings (with or without +quantifiers) are supported in cvc5’s Alethe proofs. +

    +

    + A simple example of cvc5 producing a proof in the Alethe proof format: +

    +
    +
    +
    $ bin/cvc5 --dump-proofs --proof-format-mode=alethe ../test/regress/cli/regress0/proofs/qgu-fuzz-1-bool-sat.smt2
    +unsat
    +(assume a0 (! (and (! (or d b) :named @p_7) (! (= c d) :named @p_6) (! (not (! (ite d c false) :named @p_4)) :named @p_5) (! (= (! (or b d) :named @p_2) (! (= b d) :named @p_1)) :named @p_3)) :named @p_8))
    +(step t0 (cl @p_3) :rule and :premises (a0) :args (3))
    +(step t1 (cl (! (not @p_2) :named @p_19) @p_1) :rule equiv1 :premises (t0))
    +(step t2 (cl @p_1 @p_19) :rule reordering :premises (t1))
    +(step t3 (cl (! (not @p_1) :named @p_11) (! (not b) :named @p_10) d) :rule equiv_pos2)
    +(step t4 (cl d @p_10 @p_11) :rule reordering :premises (t3))
    +(step t5 (cl (not (! (= @p_5 (! (not d) :named @p_9)) :named @p_12)) (not @p_5) @p_9) :rule equiv_pos2)
    +(step t6 (cl (! (= @p_4 (! (and d c) :named @p_13)) :named @p_18)) :rule hole :args ("TRUST_THEORY_REWRITE" @p_18 1 6))
    +(step t7 (cl (= @p_5 (! (not @p_13) :named @p_14))) :rule cong :premises (t6))
    +(step t8 (cl (= d d)) :rule refl)
    +(step t9 (cl @p_6) :rule and :premises (a0) :args (1))
    +(step t10 (cl (= @p_13 (! (and d d) :named @p_15))) :rule cong :premises (t8 t9))
    +(step t11 (cl (= @p_14 (! (not @p_15) :named @p_16))) :rule cong :premises (t10))
    +(step t12 (cl (! (= @p_15 d) :named @p_17)) :rule hole :args ("TRUST_THEORY_REWRITE" @p_17 1 6))
    +(step t13 (cl (= @p_16 @p_9)) :rule cong :premises (t12))
    +(step t14 (cl (= @p_14 @p_9)) :rule trans :premises (t11 t13))
    +(step t15 (cl @p_12) :rule trans :premises (t7 t14))
    +(step t16 (cl @p_5) :rule and :premises (a0) :args (2))
    +(step t17 (cl @p_9) :rule resolution :premises (t5 t15 t16))
    +(step t18 (cl @p_7) :rule and :premises (a0) :args (0))
    +(step t19 (cl d b) :rule or :premises (t18))
    +(step t20 (cl b d) :rule reordering :premises (t19))
    +(step t21 (cl b) :rule resolution :premises (t20 t17))
    +(step t22 (cl @p_11) :rule resolution :premises (t4 t17 t21))
    +(step t23 (cl @p_2 @p_10) :rule or_neg :args (0))
    +(step t24 (cl @p_2 @p_9) :rule or_neg :args (1))
    +(step t25 (cl @p_2 @p_2) :rule resolution :premises (t20 t23 t24))
    +(step t26 (cl @p_2) :rule contraction :premises (t25))
    +(step t27 (cl) :rule resolution :premises (t2 t22 t26))
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/proofs/output_cpc.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/proofs/output_cpc.html new file mode 100644 index 0000000000..6de26609aa --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/proofs/output_cpc.html @@ -0,0 +1,468 @@ + + + + + + + + + + + Proof format: Cooperating Proof Calculus — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Proof format: Cooperating Proof Calculus + +  + +

    +

    + Using option + + + proof-format-mode=cpc + + + , cvc5 +outputs proofs in the Cooperating Proof Calculus proof format. +

    +

    + This calculus was designed to faithfully represent cvc5’s internal reasoning. +As a disclaimer, this means that it treats certain operators differently from +the SMT-LIB standard. +As an example, cvc5 uses mixed arithmetic internally, where integers and reals +can appear together. +A comprehensive list of these differences can be found in the Eunoia definition +of CPC, as described below. +

    +

    + + Ethos + + is an efficient proof checker written +in C++ which can check proofs in the CPC format. +For a quick start, the cvc5 repository contains a + + script + + to download and install +the Ethos checker, and create scripts for generating proofs with cvc5 and +checking them with the Ethos proof checker. +

    +

    + The Ethos checker is based on the logical framework Eunoia. +The Cooperating Proof Calculus has been formalized in a Eunoia signature, which +is contained within the cvc5 repository in this + + file + + . +Based on this signature, Ethos can check CPC proofs over all theories that are +formalized in this signature. +For more details on Eunoia and a comprehensive overview of the language +supported by the Ethos checker, see the user manual + + here + + . +

    +

    + Note that several proof rules in the Cooperating Proof Calculus are not yet +supported in Eunoia signatures. +Steps that use such rules are printed as + + trust + + steps in the proof. +A trust step proves an arbitrary formula with no provided justification. +The resulting proof contains warnings for trust steps that indicate which +internal proof rules were recorded as trust steps in the proof. +

    +

    + Upon successful exit, + + ethos + + will return the output + + incomplete + + if any trust +step is used in the proof, indicating that the reasoning in the proof was +incomplete. +Otherwise, if all proof steps are fully specified, + + ethos + + will return the +output + + correct + + . +All proofs in the cpc format are closed refutations of the input, in that the +proof will assume formulas from the input and end with a step proving false. +

    +

    + For more fine-grained proofs, the additional option + + + proof-granularity=dsl-rewrite + + + can be +passed to cvc5. +This will result in proofs with more detail. +

    +

    + A simple example of cvc5 producing a proof in CPC proof format is shown below. +Notice that the concrete syntax of CPC is very similar to the Alethe format. +However, the proof rules used by these two formats are different. +

    +
    +
    +
    $ bin/cvc5 --dump-proofs --proof-format-mode=cpc --proof-granularity=dsl-rewrite ../test/regress/cli/regress0/proofs/qgu-fuzz-1-bool-sat.smt2
    +unsat
    +(declare-const c Bool)
    +(declare-const b Bool)
    +(declare-const d Bool)
    +(define @t1 () (= b d))
    +(define @t2 () (or b d))
    +(define @t3 () (@list true false))
    +(assume @p1 (and (or d b) (= c d) (not (ite d c false)) (= @t2 @t1)))
    +(step @p2 :rule and_elim :premises (@p1) :args (0))
    +(step @p3 :rule reordering :premises (@p2) :args (@t2))
    +(step @p4 :rule aci_norm :args ((= (and d d) d)))
    +(step @p5 :rule cong :premises (@p4) :args (not))
    +(step @p6 :rule and_elim :premises (@p1) :args (1))
    +(step @p7 :rule refl :args (d))
    +(step @p8 :rule nary_cong :premises (@p7 @p6) :args (and))
    +(step @p9 :rule cong :premises (@p8) :args (not))
    +(step @p10 :rule trans :premises (@p9 @p5))
    +(step @p11 :rule ite-else-false :args (d c))
    +(step @p12 :rule cong :premises (@p11) :args (not))
    +(step @p13 :rule trans :premises (@p12 @p10))
    +(step @p14 :rule and_elim :premises (@p1) :args (2))
    +(step @p15 :rule eq_resolve :premises (@p14 @p13))
    +(step @p16 :rule chain_resolution :premises (@p3 @p15) :args ((@list true) (@list d)))
    +(step @p17 :rule cnf_equiv_pos1 :args (@t1))
    +(step @p18 :rule reordering :premises (@p17) :args ((or d (not b) (not @t1))))
    +(step @p19 :rule chain_resolution :premises (@p18 @p15 @p16) :args (@t3 (@list d b)))
    +(step @p20 :rule and_elim :premises (@p1) :args (3))
    +(step @p21 :rule equiv_elim1 :premises (@p20))
    +(step @p22 :rule reordering :premises (@p21) :args ((or @t1 (not @t2))))
    +(step @p23 false :rule chain_resolution :premises (@p22 @p19 @p3) :args (@t3 (@list @t1 @t2)))
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/proofs/output_dot.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/proofs/output_dot.html new file mode 100644 index 0000000000..1e16d952c9 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/proofs/output_dot.html @@ -0,0 +1,352 @@ + + + + + + + + + + + Proof format: DOT — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Proof format: DOT + +  + +

    +

    + Using the flag + + + proof-format-mode=dot + + + , cvc5 outputs proofs in the DOT format. +

    +

    + The DOT format is a graph description language (see e.g. + + this description + + ). It can be used, among other things, for visualization. +

    +

    + We leverage this format for visualizing cvc5 proofs, in the internal calculus, as a graph. One can use a default dot visualizer or the dedicated proof visualizer + + available here + + . It suffices to upload the DOT proof outputted by cvc5, saved into a file. The visualizer offers several custom features, such as fold/unfold subproofs, coloring nodes, and stepwise expansion of let terms. +

    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/proofs/output_lfsc.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/proofs/output_lfsc.html new file mode 100644 index 0000000000..eeabdaf0ed --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/proofs/output_lfsc.html @@ -0,0 +1,451 @@ + + + + + + + + + + + Proof format: LFSC — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Proof format: LFSC + +  + +

    +

    + Using the flag + + + proof-format-mode=lfsc + + + , cvc5 outputs proofs in the LFSC proof format. +

    +

    + The LFSC proof format is based on the LF logical framework extended with computational side conditions, as described in + + [ + + SOR+13 + + ] + + . A high performance C++ proof checker for LFSC is available + + here + + . +

    +

    + For a quick start, the cvc5 repository contains a + + script + + which will download and install the LFSC proof checker, and create scripts for generating proofs with cvc5 and checking them with the LFSC proof checker. +

    +

    + LFSC is a meta-framework, meaning that the proof rules used by cvc5 are defined in signature files, also contained within the cvc5 repository in this + + directory + + . Based on these signatures, cvc5 provides basic support for LFSC proofs over all theories that it supports. +

    +

    + Note that several proof rules in the internal calculus are not yet supported in LFSC signatures, and are instead printed as + + trust + + steps in the LFSC proof. A trust step proves an arbitrary formula with no provided justification. The LFSC proof contains warnings for which proof rules from the internal calculus were recorded as trust steps in the LFSC proof. +

    +

    + For more fine-grained proofs, the additional option + + + proof-granularity=theory-rewrite + + + should be passed to cvc5. This often will result in LFSC proofs with more detail, and whose trust steps correspond only to equalities corresponding to theory rewrites. +

    +

    + A simple example of cvc5 producing a proof in LFSC proof format: +

    +
    +
    +
    $ bin/cvc5 --dump-proofs --proof-format-mode=lfsc --proof-granularity=theory-rewrite ../test/regress/cli/regress0/proofs/qgu-fuzz-1-bool-sat.smt2
    +unsat
    +; WARNING: adding trust step for TRUST_THEORY_REWRITE
    +(define cvc.c (var 0 Bool))
    +(define cvc.b (var 1 Bool))
    +(define cvc.d (var 2 Bool))
    +(check
    +(@ t1 (= cvc.b cvc.d)
    +(@ t2 (or cvc.b (or cvc.d false))
    +(@ t3 (ite cvc.d cvc.c false)
    +(# a0 (holds (and (or cvc.d (or cvc.b false)) (and (= cvc.c cvc.d) (and (not t3) (and (= t2 t1) true)))))
    +(: (holds false)
    +
    +(plet _  _ 
    +
    +(reordering _  t2
    +(and_elim _  _  0 a0))
    +(\ p1
    +
    +(plet _  _ 
    +
    +(refl f_and)
    +(\ p2
    +
    +(plet _  _ 
    +
    +(eq_resolve _  _ 
    +(and_elim _  _  2 a0)
    +(trans _  _  _ 
    +(cong _  _  _  _ 
    +(refl f_not)
    +(trust (= t3 (and cvc.d (and cvc.c true)))) ; from TRUST_THEORY_REWRITE
    +)
    +(trans _  _  _ 
    +(cong _  _  _  _ 
    +(refl f_not)
    +(cong _  _  _  _ 
    +(cong _  _  _  _  p2
    +(refl cvc.d))
    +(cong _  _  _  _ 
    +(cong _  _  _  _  p2
    +(and_elim _  _  1 a0))
    +(refl true))))
    +(cong _  _  _  _ 
    +(refl f_not)
    +(trust (= (and cvc.d (and cvc.d true)) cvc.d)) ; from TRUST_THEORY_REWRITE
    +))))
    +(\ p3
    +
    +
    +(resolution _  _  _ 
    +(resolution _  _  _ 
    +(reordering _  (or t1 (or (not t2) false))
    +(equiv_elim1 _  _ 
    +(and_elim _  _  3 a0)))
    +(resolution _  _  _ 
    +(resolution _  _  _ 
    +(reordering _  (or cvc.d (or (not cvc.b) (or (not t1) false)))
    +(cnf_equiv_pos1 cvc.b cvc.d)) p3 tt cvc.d)
    +(resolution _  _  _  p1 p3 tt cvc.d) ff cvc.b) tt t1) p1 ff t2)))))))))))))
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/proofs/proofs.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/proofs/proofs.html new file mode 100644 index 0000000000..d1f1c25399 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/proofs/proofs.html @@ -0,0 +1,463 @@ + + + + + + + + + + + Proof Production — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    +
      +
    • + + +
    • + +
    • +
    • +
    +
    +
    +
    +
    +
    +

    + Proof Production + +  + +

    +

    + cvc5 produces proofs in a proof calculus that faithfully reflects its +reasoning. The calculus is called the Cooperating Proof Calculus (CPC). +cvc5 supports retrieving a proof object via the API +(see how these objects are defined in + + + C++ + + + , + + + C + + + , + + Java + + , + + + Base Python + + + ). +

    +
    +

    + Proof Rules + +  + +

    +

    + A comprehensive description of the + + proof rules + + of the Cooperating Proof +Calculus can be found here: +

    + +
    +
    +
    +

    + Proof Formats + +  + +

    +

    + Optionally, cvc5 allows to convert and output its internal proofs into the +following external formats. +

    +
    + +
    +

    + Note that the DOT format is only meant for visualization. +

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/references.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/references.html new file mode 100644 index 0000000000..8f9ff0160a --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/references.html @@ -0,0 +1,645 @@ + + + + + + + + + + + References — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    +
      +
    • + + +
    • + +
    • +
    • +
    +
    +
    +
    +
    +
    +

    + References + +  + +

    +
    +
    +
    + + + [ + + AFGregoire+11 + + ] + + +

    + Michaël Armand, Germain Faure, Benjamin Grégoire, Chantal Keller, Laurent Théry, and Benjamin Werner. A modular integration of SAT\slash SMT solvers to Coq through proof witnesses. In Jean-Pierre Jouannaud and Zhong Shao, editors, + + Certified Programs and Proofs (CPP) + + , volume 7086 of Lecture Notes in Computer Science, 135–150. Springer, 2011. + + doi:10.1007/978-3-642-25379-9_12 + + . +

    +
    +
    + + + [ + + BBRT17 + + ] + + +

    + Kshitij Bansal, Clark W. Barrett, Andrew Reynolds, and Cesare Tinelli. A new decision procedure for finite sets and cardinality constraints in SMT. + + CoRR + + , 2017. + + arXiv:1702.06259 + + . +

    +
    +
    + + + [ + + BBFF20 + + ] + + +

    + Haniel Barbosa, Jasmin Christian Blanchette, Mathias Fleury, and Pascal Fontaine. Scalable fine-grained proofs for formula processing. + + Journal of Automated Reasoning + + , 64(3):485–510, 2020. URL: + + https://doi.org/10.1007/s10817-018-09502-y + + , + + doi:10.1007/s10817-018-09502-y + + . +

    +
    +
    + + + [ + + BFT17 + + ] + + +

    + Clark Barrett, Pascal Fontaine, and Cesare Tinelli. The SMT-LIB Standard: Version 2.6. Technical Report, Department of Computer Science, The University of Iowa, 2017. Available at \tt www.SMT-LIB.org. +

    +
    +
    + + + [ + + BST07 + + ] + + +

    + Clark W. Barrett, Igor Shikanian, and Cesare Tinelli. An abstract decision procedure for a theory of inductive data types. + + J. Satisf. Boolean Model. Comput. + + , 3(1-2):21–46, 2007. + + doi:10.3233/sat190028 + + . +

    +
    +
    + + + [ + + BdODeharbeF09 + + ] + + +

    + Thomas Bouton, Diego Caminha B. de Oliveira, David Déharbe, and Pascal Fontaine. veriT: An Open, Trustable and Efficient SMT-Solver. In Renate A. Schmidt, editor, + + Conference on Automated Deduction (CADE) + + , volume 5663 of Lecture Notes in Computer Science, 151–156. Springer, 2009. URL: + + http://dx.doi.org/10.1007/978-3-642-02959-2_12 + + , + + doi:10.1007/978-3-642-02959-2_12 + + . +

    +
    +
    + + + [ + + CGI+18 + + ] + + +

    + Alessandro Cimatti, Alberto Griggio, Ahmed Irfan, Marco Roveri, and Roberto Sebastiani. Incremental linearization for satisfiability and verification modulo nonlinear arithmetic and transcendental functions. + + ACM Trans. Comput. Log. + + , 19(3):19:1–19:52, 2018. + + doi:10.1145/3230639 + + . +

    +
    +
    + + + [ + + EMT+17 + + ] + + +

    + Burak Ekici, Alain Mebsout, Cesare Tinelli, Chantal Keller, Guy Katz, Andrew Reynolds, and Clark W. Barrett. Smtcoq: A plug-in for integrating SMT solvers into coq. In Rupak Majumdar and Viktor Kuncak, editors, + + Computer Aided Verification (CAV) + + , volume 10427 of Lecture Notes in Computer Science, 126–133. Springer, 2017. URL: + + https://doi.org/10.1007/978-3-319-63390-9_7 + + , + + doi:10.1007/978-3-319-63390-9_7 + + . +

    +
    +
    + + + [ + + IEE19 + + ] + + +

    + IEEE. IEEE Standard for Floating-Point Arithmetic. + + IEEE Std 754-2019 (Revision of IEEE 754-2008) + + , pages 1–84, 2019. + + doi:10.1109/IEEESTD.2019.8766229 + + . +

    +
    +
    + + + [ + + MRTB17 + + ] + + +

    + Baoluo Meng, Andrew Reynolds, Cesare Tinelli, and Clark W. Barrett. Relational constraint solving in SMT. In Leonardo de Moura, editor, + + Automated Deduction - CADE 26 - 26th International Conference on Automated Deduction, Gothenburg, Sweden, August 6-11, 2017, Proceedings + + , volume 10395 of Lecture Notes in Computer Science, 148–165. Springer, 2017. + + doi:10.1007/978-3-319-63046-5_10 + + . +

    +
    +
    + + + [ + + OKTB23 + + ] + + +

    + Alex Ozdemir, Gereon Kremer, Cesare Tinelli, and Clark Barrett. Satisfiability modulo finite fields. In Constantin Enea and Akash Lal, editors, + + Computer Aided Verification (CAV) + + , volume 13965 of Lecture Notes in Computer Science, 163–186. Springer, 2023. URL: + + https://doi.org/10.1007/978-3-031-37703-7_8 + + , + + doi:10.1007/978-3-031-37703-7_8 + + . +

    +
    +
    + + + [ + + OPB+24 + + ] + + +

    + Alex Ozdemir, Shankara Pailoor, Alp Bassa, Kostas Ferles, Clark Barrett, and Işıl Dillig. Split gröbner bases for satisfiability modulo finite fields. In + + Computer Aided Verification (CAV) + + , Lecture Notes in Computer Science. 2024. URL: + + https://ia.cr/2024/572 + + . +

    +
    +
    + + + [ + + RB15 + + ] + + +

    + Andrew Reynolds and Jasmin Christian Blanchette. A decision procedure for (co)datatypes in SMT solvers. In Amy P. Felty and Aart Middeldorp, editors, + + Automated Deduction - CADE-25 - 25th International Conference on Automated Deduction, Berlin, Germany, August 1-7, 2015, Proceedings + + , volume 9195 of Lecture Notes in Computer Science, 197–213. Springer, 2015. + + doi:10.1007/978-3-319-21401-6_13 + + . +

    +
    +
    + + + [ + + RISK16 + + ] + + +

    + Andrew Reynolds, Radu Iosif, Cristina Serban, and Tim King. A decision procedure for separation logic in SMT. In Cyrille Artho, Axel Legay, and Doron Peled, editors, + + Automated Technology for Verification and Analysis - 14th International Symposium, ATVA 2016, Chiba, Japan, October 17-20, 2016, Proceedings + + , volume 9938 of Lecture Notes in Computer Science, 244–261. 2016. + + doi:10.1007/978-3-319-46520-3_16 + + . +

    +
    +
    + + + [ + + SFD21 + + ] + + +

    + Hans-Jörg Schurr, Mathias Fleury, and Martin Desharnais. Reliable reconstruction of fine-grained proofs in a proof assistant. In André Platzer and Geoff Sutcliffe, editors, + + Conference on Automated Deduction (CADE) + + , volume 12699 of Lecture Notes in Computer Science, 450–467. Springer, 2021. URL: + + https://doi.org/10.1007/978-3-030-79876-5_26 + + , + + doi:10.1007/978-3-030-79876-5_26 + + . +

    +
    +
    + + + [ + + SOR+13 + + ] + + +

    + Aaron Stump, Duckki Oe, Andrew Reynolds, Liana Hadarean, and Cesare Tinelli. SMT proof checking using a logical framework. + + Formal Methods Syst. Des. + + , 42(1):91–118, 2013. URL: + + https://doi.org/10.1007/s10703-012-0163-3 + + , + + doi:10.1007/s10703-012-0163-3 + + . +

    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/resource-limits.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/resource-limits.html new file mode 100644 index 0000000000..dd09c05b74 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/resource-limits.html @@ -0,0 +1,482 @@ + + + + + + + + + + + Resource limits — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    +
      +
    • + + +
    • + +
    • +
    • +
    +
    +
    +
    +
    +
    +

    + Resource limits + +  + +

    +

    + cvc5 supports limiting the time or + + resources + + it uses during solving via the options + + + tlimit + + + , + + + tlimit-per + + + , + + + rlimit + + + , and + + + rlimit-per + + + . +All these options take a single non-negative number as an argument where giving zero explicitly disables the respective limit. For time limits the number is interpreted as the number of milliseconds, and for resource limits it indicates the amount of + + resources + + . +

    +

    + The limits configured using + + + tlimit + + + and + + + rlimit + + + restrict time and resource usage over the whole lifetime of the + + + + solver + + + + object, respectively. +In contrast to that, + + + tlimit-per + + + and + + + rlimit-per + + + apply to every check individually ( + + + + checkSat + + + + , + + + + checkSatAssuming + + + + , etc). +

    +

    + Except for the overall time limit (see below), the limits are checked by cvc5 itself. This means that the solver remains in a safe state after a limit has been reached. +Due to the way cvc5 checks these limits (see below), cvc5 may not precisely honor per-call time limits: if a subroutine requires a long time to finish without spending resources itself, cvc5 only realizes afterwards that the timeout has (long) passed. +

    +
    +

    + Overall time limit ( + + + tlimit + + + option) + +  + +

    +

    + The + + + tlimit + + + option limits the overall running time of the cvc5 solver binary. +It is implemented using an asynchronous interrupt that is usually managed by the operating system (using + + + setitimer + + + ). +When this interrupt occurs, cvc5 outputs a corresponding message, prints the current statistics and immediately terminates its process. The same is done when an external resource limiting mechanism is in place, for example + + + ulimit + + + . +

    +

    + This mechanism is inherently unsuited when cvc5 is used within another application process via one of its APIs: therefore, it is only honored when running as a standalone binary. +Setting + + + tlimit + + + via the API or the + + + (set-option) + + + SMT-LIB command has thus no effect. +

    +
    +
    +

    + Resource manager and resource spending + +  + +

    +

    + All other limits are enforced centrally by the resource manager as follows. +Whenever certain parts of the solver execute, they instruct the resource manager to + + spend + + a resource. +As soon as the resource manager realizes that some limit is exhausted (either the resource limit or the per-check time limit is reached), it asynchronously instructs the core solver to interrupt the check. +To not invalidate the internal state of the solver, and allow to use it again after an interrupt, the solver continues its work until it reaches a safe point in one of the core solving components. +Then, it returns + + unknown + + (with an + + + + explanation + + + + ). +

    +

    + The intention of a resource limit is to be a deterministic measure that grows (linearly, if possible) with actual running time. +Resources are spent when lemmas are generated and during a few select events like preprocessing, rewriting, decisions and restarts in the SAT solver, or theory checks. +In case the resource spending does not properly reflect the running time, the weights of the individual resources can be modified using the + + + rweight + + + option, for example with + + + --rweight=RestartStep=5 + + + . +

    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/search.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/search.html new file mode 100644 index 0000000000..6628594c6b --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/search.html @@ -0,0 +1,268 @@ + + + + + + + + + + Search — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    +
      +
    • + + +
    • + +
    • +
    • +
    +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + + + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/searchindex.js b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/searchindex.js new file mode 100644 index 0000000000..bf773c5262 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/searchindex.js @@ -0,0 +1 @@ +Search.setIndex({"docnames": ["api/api", "api/c/c", "api/c/enums/cvc5kind", "api/c/enums/cvc5proofrule", "api/c/enums/cvc5roundingmode", "api/c/enums/cvc5sortkind", "api/c/enums/cvc5unknownexplanation", "api/c/enums/modes", "api/c/quickstart", "api/c/structs/cvc5optioninfo", "api/c/structs/cvc5plugin", "api/c/types/cvc5", "api/c/types/cvc5command", "api/c/types/cvc5datatype", "api/c/types/cvc5datatypeconstructor", "api/c/types/cvc5datatypeconstructordecl", "api/c/types/cvc5datatypedecl", "api/c/types/cvc5datatypeselector", "api/c/types/cvc5grammar", "api/c/types/cvc5inputparser", "api/c/types/cvc5op", "api/c/types/cvc5proof", "api/c/types/cvc5result", "api/c/types/cvc5sort", "api/c/types/cvc5statistics", "api/c/types/cvc5symbolmanager", "api/c/types/cvc5synthresult", "api/c/types/cvc5term", "api/c/types/cvc5termmanager", "api/cpp/classes/command", "api/cpp/classes/datatype", "api/cpp/classes/datatypeconstructor", "api/cpp/classes/datatypeconstructordecl", "api/cpp/classes/datatypedecl", "api/cpp/classes/datatypeselector", "api/cpp/classes/driveroptions", "api/cpp/classes/grammar", "api/cpp/classes/inputparser", "api/cpp/classes/op", "api/cpp/classes/optioninfo", "api/cpp/classes/plugin", "api/cpp/classes/proof", "api/cpp/classes/result", "api/cpp/classes/solver", "api/cpp/classes/sort", "api/cpp/classes/statistics", "api/cpp/classes/symbolmanager", "api/cpp/classes/synthresult", "api/cpp/classes/term", "api/cpp/classes/termmanager", "api/cpp/cpp", "api/cpp/enums/kind", "api/cpp/enums/modes", "api/cpp/enums/proofrule", "api/cpp/enums/roundingmode", "api/cpp/enums/sortkind", "api/cpp/enums/unknownexplanation", "api/cpp/exceptions/exceptions", "api/cpp/quickstart", "api/java/java", "api/java/quickstart", "api/python/base/command", "api/python/base/datatype", "api/python/base/datatypeconstructor", "api/python/base/datatypeconstructordecl", "api/python/base/datatypedecl", "api/python/base/datatypeselector", "api/python/base/grammar", "api/python/base/inputparser", "api/python/base/kind", "api/python/base/modes", "api/python/base/op", "api/python/base/plugin", "api/python/base/proof", "api/python/base/proofrule", "api/python/base/python", "api/python/base/quickstart", "api/python/base/result", "api/python/base/roundingmode", "api/python/base/solver", "api/python/base/sort", "api/python/base/sortkind", "api/python/base/statistics", "api/python/base/symbolmanager", "api/python/base/synthresult", "api/python/base/term", "api/python/base/termmanager", "api/python/base/unknownexplanation", "api/python/python", "api/python/pythonic/arith", "api/python/pythonic/array", "api/python/pythonic/bitvec", "api/python/pythonic/boolean", "api/python/pythonic/dt", "api/python/pythonic/finite_field", "api/python/pythonic/fp", "api/python/pythonic/internals", "api/python/pythonic/pythonic", "api/python/pythonic/quant", "api/python/pythonic/quickstart", "api/python/pythonic/sequence", "api/python/pythonic/set", "api/python/pythonic/solver", "api/python/pythonic/string", "binary/binary", "binary/quickstart", "examples/bags", "examples/bitvectors", "examples/bitvectors_and_arrays", "examples/combination", "examples/datatypes", "examples/examples", "examples/exceptions", "examples/extract", "examples/finite_field", "examples/floatingpoint", "examples/helloworld", "examples/lineararith", "examples/parser", "examples/parser_sym_manager", "examples/quickstart", "examples/relations", "examples/sequences", "examples/sets", "examples/strings", "examples/sygus-fun", "examples/sygus-inv", "examples/uf", "genindex", "index", "installation/installation", "options", "output-tags", "proofs/output_alethe", "proofs/output_cpc", "proofs/output_dot", "proofs/output_lfsc", "proofs/proofs", "references", "resource-limits", "skolem-ids", "statistics", "theories/bags", "theories/datatypes", "theories/finite_field", "theories/separation-logic", "theories/sequences", "theories/sets-and-relations", "theories/strings", "theories/theories", "theories/transcendentals"], "filenames": ["api/api.rst", "api/c/c.rst", "api/c/enums/cvc5kind.rst", "api/c/enums/cvc5proofrule.rst", "api/c/enums/cvc5roundingmode.rst", "api/c/enums/cvc5sortkind.rst", "api/c/enums/cvc5unknownexplanation.rst", "api/c/enums/modes.rst", "api/c/quickstart.rst", "api/c/structs/cvc5optioninfo.rst", "api/c/structs/cvc5plugin.rst", "api/c/types/cvc5.rst", "api/c/types/cvc5command.rst", "api/c/types/cvc5datatype.rst", "api/c/types/cvc5datatypeconstructor.rst", "api/c/types/cvc5datatypeconstructordecl.rst", "api/c/types/cvc5datatypedecl.rst", "api/c/types/cvc5datatypeselector.rst", "api/c/types/cvc5grammar.rst", "api/c/types/cvc5inputparser.rst", "api/c/types/cvc5op.rst", "api/c/types/cvc5proof.rst", "api/c/types/cvc5result.rst", "api/c/types/cvc5sort.rst", "api/c/types/cvc5statistics.rst", "api/c/types/cvc5symbolmanager.rst", "api/c/types/cvc5synthresult.rst", "api/c/types/cvc5term.rst", "api/c/types/cvc5termmanager.rst", "api/cpp/classes/command.rst", "api/cpp/classes/datatype.rst", "api/cpp/classes/datatypeconstructor.rst", "api/cpp/classes/datatypeconstructordecl.rst", "api/cpp/classes/datatypedecl.rst", "api/cpp/classes/datatypeselector.rst", "api/cpp/classes/driveroptions.rst", "api/cpp/classes/grammar.rst", "api/cpp/classes/inputparser.rst", "api/cpp/classes/op.rst", "api/cpp/classes/optioninfo.rst", "api/cpp/classes/plugin.rst", "api/cpp/classes/proof.rst", "api/cpp/classes/result.rst", "api/cpp/classes/solver.rst", "api/cpp/classes/sort.rst", "api/cpp/classes/statistics.rst", "api/cpp/classes/symbolmanager.rst", "api/cpp/classes/synthresult.rst", "api/cpp/classes/term.rst", "api/cpp/classes/termmanager.rst", "api/cpp/cpp.rst", "api/cpp/enums/kind.rst", "api/cpp/enums/modes.rst", "api/cpp/enums/proofrule.rst", "api/cpp/enums/roundingmode.rst", "api/cpp/enums/sortkind.rst", "api/cpp/enums/unknownexplanation.rst", "api/cpp/exceptions/exceptions.rst", "api/cpp/quickstart.rst", "api/java/java.rst", "api/java/quickstart.rst", "api/python/base/command.rst", "api/python/base/datatype.rst", "api/python/base/datatypeconstructor.rst", "api/python/base/datatypeconstructordecl.rst", "api/python/base/datatypedecl.rst", "api/python/base/datatypeselector.rst", "api/python/base/grammar.rst", "api/python/base/inputparser.rst", "api/python/base/kind.rst", "api/python/base/modes.rst", "api/python/base/op.rst", "api/python/base/plugin.rst", "api/python/base/proof.rst", "api/python/base/proofrule.rst", "api/python/base/python.rst", "api/python/base/quickstart.rst", "api/python/base/result.rst", "api/python/base/roundingmode.rst", "api/python/base/solver.rst", "api/python/base/sort.rst", "api/python/base/sortkind.rst", "api/python/base/statistics.rst", "api/python/base/symbolmanager.rst", "api/python/base/synthresult.rst", "api/python/base/term.rst", "api/python/base/termmanager.rst", "api/python/base/unknownexplanation.rst", "api/python/python.rst", "api/python/pythonic/arith.rst", "api/python/pythonic/array.rst", "api/python/pythonic/bitvec.rst", "api/python/pythonic/boolean.rst", "api/python/pythonic/dt.rst", "api/python/pythonic/finite_field.rst", "api/python/pythonic/fp.rst", "api/python/pythonic/internals.rst", "api/python/pythonic/pythonic.rst", "api/python/pythonic/quant.rst", "api/python/pythonic/quickstart.rst", "api/python/pythonic/sequence.rst", "api/python/pythonic/set.rst", "api/python/pythonic/solver.rst", "api/python/pythonic/string.rst", "binary/binary.rst", "binary/quickstart.rst", "examples/bags.rst", "examples/bitvectors.rst", "examples/bitvectors_and_arrays.rst", "examples/combination.rst", "examples/datatypes.rst", "examples/examples.rst", "examples/exceptions.rst", "examples/extract.rst", "examples/finite_field.rst", "examples/floatingpoint.rst", "examples/helloworld.rst", "examples/lineararith.rst", "examples/parser.rst", "examples/parser_sym_manager.rst", "examples/quickstart.rst", "examples/relations.rst", "examples/sequences.rst", "examples/sets.rst", "examples/strings.rst", "examples/sygus-fun.rst", "examples/sygus-inv.rst", "examples/uf.rst", "genindex.rst", "index.rst", "installation/installation.rst", "options.rst", "output-tags.rst", "proofs/output_alethe.rst", "proofs/output_cpc.rst", "proofs/output_dot.rst", "proofs/output_lfsc.rst", "proofs/proofs.rst", "references.rst", "resource-limits.rst", "skolem-ids.rst", "statistics.rst", "theories/bags.rst", "theories/datatypes.rst", "theories/finite_field.rst", "theories/separation-logic.rst", "theories/sequences.rst", "theories/sets-and-relations.rst", "theories/strings.rst", "theories/theories.rst", "theories/transcendentals.rst"], "titles": ["API Documentation", "C API", "Cvc5Kind", "Cvc5ProofRule and Cvc5ProofRewriteRule", "Cvc5RoundingMode", "Cvc5SortKind", "Cvc5UnknownExplanation", "Modes", "Quickstart Guide", "Cvc5OptionInfo", "Cvc5Plugin", "Cvc5", "Cvc5Command", "Cvc5Datatype", "Cvc5DatatypeConstructor", "Cvc5DatatypeConstructorDecl", "Cvc5DatatypeDecl", "Cvc5DatatypeSelector", "Cvc5Grammar", "Cvc5InputParser", "Cvc5Op", "Cvc5Proof", "Cvc5Result", "Cvc5Sort", "Cvc5Statistics", "Cvc5SymbolManager", "Cvc5SynthResult", "Cvc5Term", "Cvc5TermManager", "Command", "Datatype", "DatatypeConstructor", "DatatypeConstructorDecl", "DatatypeDecl", "DatatypeSelector", "DriverOptions", "Grammar", "InputParser", "Op", "OptionInfo", "Plugin", "Proof", "Result", "Solver", "Sort", "Statistics", "SymbolManager", "SynthResult", "Term", "TermManager", "C++ API", "Kind", "Modes", "ProofRule and ProofRewriteRule", "RoundingMode", "SortKind", "UnknownExplanation", "Exceptions", "Quickstart Guide", "Java API", "Quickstart Guide", "Command", "Datatype", "DatatypeConstructor", "DatatypeConstructorDecl", "DatatypeDecl", "DatatypeSelector", "Grammar", "InputParser", "Kind", "Modes", "Op", "Plugin", "Proof", "ProofRule and ProofRewriteRule", "Base Python API", "Quickstart Guide", "Result", "RoundingMode", "Solver", "Sort", "SortKind", "Statistics", "SymbolManager", "SynthResult", "Term", "TermManager", "UnknownExplanation", "Python API", "Arithmetic", "Arrays", "Bit-Vectors", "Core & Booleans", "Datatypes", "Finite Fields", "Floating Point", "Internals", "Pythonic API", "Quantifiers", "Quickstart Guide", "Sequences", "Sets", "Solvers & Results", "Strings", "Binary Documentation", "Quickstart Guide", "Theory of Bags", "Theory of Bit-Vectors", "Theory of Bit-Vectors and Arrays", "Theory Combination", "Theory of Datatypes", "Examples", "Exception Handling", "Theory of Bit-Vectors: extract", "Theory of Finite Fields", "Theory of Floating-Points", "Hello World", "Theory of Linear Arithmetic", "Parser", "Parser with Shared Symbol Manager", "Quickstart Example", "Theory of Relations", "Theory of Sequences", "Theory of Sets", "Theory of Strings", "SyGuS: Functions", "SyGuS: Invariants", "Theory of Uninterpreted Functions", "Index", "cvc5 Documentation", "Installation", "Options", "Output tags", "Proof format: Alethe", "Proof format: Cooperating Proof Calculus", "Proof format: DOT", "Proof format: LFSC", "Proof Production", "References", "Resource limits", "Skolem Identifiers", "Statistics", "Theory Reference: Bags", "Theory Reference: Datatypes", "Theory Reference: Finite Fields", "Theory Reference: Separation Logic", "Theory Reference: Sequences", "Theory Reference: Sets and Relations", "Theory Reference: Strings", "Theory References", "Theory Reference: Transcendentals"], "terms": {"altern": [0, 2, 3, 8, 9, 20, 27, 38, 39, 48, 51, 53, 58, 60, 69, 71, 74, 76, 88, 99, 104, 105, 109, 110, 120, 130, 131, 143, 144, 150], "us": [0, 1, 2, 3, 7, 8, 9, 10, 11, 14, 15, 16, 17, 18, 19, 21, 23, 24, 27, 28, 30, 31, 32, 33, 34, 35, 36, 37, 39, 41, 43, 44, 45, 48, 49, 51, 52, 53, 57, 58, 59, 60, 63, 64, 65, 66, 67, 68, 69, 70, 73, 74, 76, 79, 80, 82, 83, 85, 86, 89, 91, 92, 93, 94, 95, 98, 99, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 129, 130, 132, 133, 134, 135, 136, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 150], "cvc5": [0, 1, 2, 3, 5, 8, 9, 10, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 132, 133, 134, 135, 136, 137, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150], "binari": [0, 3, 11, 27, 43, 48, 49, 53, 74, 88, 89, 121, 129, 130, 131, 139], "can": [0, 1, 2, 3, 7, 8, 9, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 27, 28, 29, 30, 31, 33, 34, 35, 36, 37, 38, 39, 41, 42, 43, 44, 45, 46, 48, 49, 51, 52, 53, 57, 58, 59, 60, 61, 62, 63, 65, 66, 67, 68, 69, 70, 71, 73, 74, 76, 77, 79, 80, 82, 83, 86, 88, 89, 91, 92, 93, 94, 95, 99, 102, 105, 107, 109, 110, 111, 114, 115, 120, 123, 125, 130, 131, 132, 133, 134, 135, 137, 139, 140, 141, 142, 143, 145, 147], "integr": [0, 2, 27, 48, 51, 69, 97, 130, 138, 140, 141], "back": [0, 131, 132], "end": [0, 8, 30, 31, 45, 48, 58, 60, 76, 99, 105, 109, 110, 118, 119, 120, 125, 126, 132, 134, 140], "other": [0, 2, 3, 5, 6, 8, 11, 25, 43, 44, 45, 46, 48, 51, 53, 55, 56, 58, 60, 69, 74, 76, 79, 80, 81, 83, 87, 90, 91, 92, 94, 95, 97, 99, 100, 101, 102, 103, 105, 107, 110, 120, 130, 131, 135, 139, 147], "tool": [0, 93, 130], "via": [0, 1, 2, 3, 5, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 27, 28, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 48, 49, 51, 53, 55, 58, 60, 62, 63, 64, 65, 66, 67, 68, 69, 71, 72, 73, 74, 76, 77, 79, 81, 82, 83, 86, 88, 102, 104, 112, 118, 119, 121, 122, 123, 124, 130, 131, 133, 137, 139, 140, 141, 145, 147], "one": [0, 2, 3, 4, 8, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 27, 30, 31, 37, 45, 48, 51, 53, 54, 58, 60, 63, 68, 69, 74, 76, 78, 85, 92, 93, 99, 103, 105, 106, 107, 109, 110, 120, 123, 125, 126, 131, 139, 140, 142, 143, 145, 147], "its": [0, 1, 2, 3, 5, 7, 9, 11, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 27, 37, 38, 39, 43, 45, 48, 49, 51, 52, 53, 55, 68, 69, 70, 71, 74, 79, 81, 85, 86, 92, 93, 100, 110, 119, 125, 130, 131, 137, 139, 140, 141, 142, 144, 145], "rich": 0, "comprehens": [0, 2, 51, 69, 134, 137], "The": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 76, 78, 79, 80, 81, 82, 83, 85, 86, 87, 88, 91, 92, 93, 94, 95, 97, 99, 101, 103, 104, 105, 106, 107, 108, 109, 111, 115, 117, 120, 121, 122, 124, 125, 126, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 150], "primari": [0, 50, 105], "interfac": [0, 11, 16, 18, 19, 25, 33, 36, 37, 43, 46, 50, 65, 67, 68, 83, 104, 131], "i": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 74, 75, 76, 77, 79, 80, 81, 83, 84, 85, 86, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 129, 130, 131, 132, 133, 134, 135, 136, 137, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 150], "c": [0, 2, 3, 7, 8, 9, 11, 15, 19, 23, 24, 25, 26, 27, 28, 43, 44, 48, 49, 51, 52, 53, 57, 58, 59, 60, 61, 62, 68, 69, 70, 74, 75, 76, 79, 80, 83, 88, 89, 92, 95, 99, 102, 103, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 131, 133, 134, 136, 137, 140, 141, 142, 143, 144, 145, 146, 147, 150], "Its": [0, 11, 18, 23, 36, 43, 44, 67, 79, 80], "java": [0, 8, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 131, 137, 142, 147, 150], "base": [0, 1, 2, 3, 4, 5, 7, 8, 11, 19, 27, 37, 43, 48, 49, 51, 52, 53, 54, 55, 57, 58, 60, 68, 69, 70, 74, 76, 79, 85, 86, 88, 90, 93, 99, 102, 103, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 133, 134, 136, 137, 138, 142, 144, 145, 147, 150], "python": [0, 8, 58, 60, 76, 85, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 103, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 131, 137, 142, 147, 150], "implement": [0, 3, 7, 10, 11, 43, 45, 52, 53, 70, 74, 75, 102, 125, 126, 130, 131, 133, 139, 143, 144, 145, 147, 149], "thin": 0, "wrapper": [0, 35, 61, 62, 63, 64, 65, 66, 67, 68, 71, 73, 77, 79, 80, 82, 83, 85, 86], "around": 0, "In": [0, 2, 3, 7, 8, 9, 11, 14, 23, 27, 31, 43, 44, 47, 48, 51, 52, 53, 58, 60, 62, 63, 69, 70, 74, 76, 79, 80, 84, 85, 86, 93, 99, 105, 120, 131, 138, 139, 140, 143, 144, 147], "addit": [0, 2, 3, 20, 38, 51, 53, 69, 71, 74, 89, 91, 94, 95, 115, 119, 130, 134, 136, 143, 144], "also": [0, 3, 8, 11, 23, 27, 39, 44, 45, 48, 53, 58, 60, 74, 76, 80, 82, 85, 88, 89, 91, 93, 94, 99, 105, 109, 110, 115, 117, 120, 130, 131, 133, 136, 140, 141, 143, 147, 149], "provid": [0, 2, 3, 11, 14, 19, 23, 24, 25, 27, 31, 35, 37, 39, 43, 44, 46, 48, 49, 50, 51, 53, 59, 63, 68, 69, 74, 75, 79, 80, 83, 85, 86, 100, 102, 125, 129, 130, 131, 132, 134, 136], "more": [0, 1, 2, 3, 8, 9, 11, 13, 14, 16, 17, 18, 20, 21, 22, 23, 27, 28, 39, 43, 50, 51, 53, 58, 59, 60, 69, 74, 75, 76, 79, 88, 93, 95, 99, 103, 105, 107, 120, 130, 131, 134, 136, 141, 142, 144, 147], "http": [0, 2, 3, 51, 53, 59, 69, 74, 88, 93, 95, 102, 130, 138], "github": [0, 8, 58, 60, 76, 88, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 142, 147, 150], "com": [0, 59, 88, 130], "cvc5_pythonic_api": [0, 8, 58, 60, 76, 105, 112], "here": [0, 1, 3, 53, 59, 74, 93, 105, 110, 133, 134, 135, 136, 137, 147], "featur": [1, 6, 56, 87, 88, 97, 104, 110, 131, 132, 135, 140, 144], "complet": [1, 11, 43, 49, 79, 86, 88, 110, 130, 131], "within": [1, 2, 3, 16, 23, 27, 33, 44, 48, 51, 53, 65, 69, 74, 80, 102, 130, 131, 133, 134, 136, 139], "limit": [1, 6, 11, 43, 56, 79, 87, 92, 93, 129, 131, 150], "languag": [1, 5, 37, 45, 55, 68, 81, 103, 104, 105, 108, 109, 111, 122, 123, 124, 131, 134, 135, 142, 143, 144, 145, 146, 147], "quickstart": [1, 50, 59, 97, 104, 111], "guid": [1, 50, 59, 97, 104, 131], "give": [1, 50, 59, 85, 93, 104, 105, 110, 117, 131, 139, 141], "short": [1, 50, 59, 104, 105, 131], "introduct": [1, 3, 50, 53, 59, 74, 104], "how": [1, 3, 7, 11, 43, 45, 52, 53, 74, 79, 104, 109, 111, 115, 118, 119, 125, 126, 130, 131, 137, 141, 142, 147], "For": [1, 2, 3, 4, 5, 8, 9, 11, 14, 23, 27, 31, 43, 44, 48, 49, 50, 51, 53, 54, 55, 58, 59, 60, 63, 69, 74, 75, 76, 79, 80, 81, 85, 86, 88, 92, 93, 102, 105, 111, 123, 130, 131, 133, 134, 136, 139, 140, 142, 143, 144, 145, 146, 147], "most": [1, 7, 11, 43, 50, 52, 59, 70, 79, 89, 91, 102, 130, 140, 146, 147, 150], "applic": [1, 2, 3, 14, 31, 50, 51, 53, 59, 63, 69, 74, 88, 90, 92, 96, 110, 131, 139, 140, 147], "solver": [1, 2, 3, 5, 6, 7, 8, 10, 11, 12, 19, 22, 23, 26, 28, 29, 31, 32, 33, 35, 36, 37, 38, 39, 40, 41, 42, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 55, 56, 57, 58, 59, 60, 61, 64, 65, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 81, 84, 85, 86, 87, 93, 95, 97, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 131, 132, 133, 138, 139, 141, 142, 143, 145, 146, 147, 150], "main": [1, 7, 8, 19, 29, 37, 43, 46, 50, 52, 58, 59, 60, 68, 70, 76, 99, 102, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 131, 142, 147, 150], "entri": [1, 24, 45, 50, 59], "point": [1, 2, 3, 4, 5, 18, 21, 23, 27, 30, 31, 36, 37, 41, 43, 44, 48, 49, 50, 51, 53, 54, 55, 59, 68, 69, 74, 78, 79, 80, 81, 85, 86, 97, 102, 110, 111, 138, 139, 140, 141, 145, 149], "One": [1, 27, 48, 135], "kei": [1, 24, 45, 105], "differ": [1, 2, 6, 11, 18, 21, 24, 36, 38, 41, 43, 45, 51, 56, 59, 69, 79, 91, 92, 93, 94, 95, 101, 103, 104, 111, 115, 117, 134, 140, 141, 142, 147], "wai": [1, 3, 4, 8, 53, 54, 58, 60, 74, 76, 99, 104, 105, 120, 131, 139, 140], "memori": [1, 6, 56, 87, 130], "manag": [1, 8, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 25, 27, 28, 29, 37, 43, 46, 48, 49, 58, 60, 61, 68, 76, 79, 83, 86, 99, 105, 111, 118, 120, 131], "while": [1, 3, 8, 43, 45, 49, 50, 53, 58, 60, 74, 76, 79, 86, 88, 99, 105, 109, 118, 119, 120, 130, 131, 150], "user": [1, 2, 3, 9, 10, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 27, 31, 37, 39, 40, 43, 51, 53, 63, 68, 69, 72, 74, 79, 88, 97, 130, 131, 132, 134, 140, 145], "reli": [1, 131], "being": [1, 3, 11, 37, 43, 49, 53, 68, 74, 79, 93, 98, 150], "effici": [1, 3, 53, 74, 107, 131, 134], "automat": [1, 79, 86, 92, 93, 102, 129, 130, 131, 132, 150], "level": [1, 3, 7, 8, 11, 43, 52, 53, 58, 60, 70, 74, 75, 76, 79, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 131, 132, 140, 142, 147, 150], "maintain": [1, 130, 131], "low": [1, 91], "overhead": 1, "need": [1, 8, 11, 23, 36, 41, 43, 44, 49, 110, 114, 115, 120, 121, 122, 123, 124, 125, 130, 131, 140, 147], "manual": [1, 8, 58, 60, 76, 99, 102, 105, 120, 130, 134], "intervent": 1, "offer": [1, 27, 48, 85, 88, 130, 135], "two": [1, 2, 3, 4, 5, 8, 13, 14, 16, 17, 18, 20, 21, 22, 23, 27, 30, 31, 36, 41, 42, 47, 48, 51, 53, 54, 55, 57, 58, 60, 69, 74, 76, 78, 81, 85, 88, 91, 93, 99, 100, 103, 105, 106, 107, 108, 110, 117, 123, 130, 131, 134, 140, 141, 142, 144, 147, 150], "mode": [1, 4, 5, 9, 11, 23, 27, 37, 39, 43, 44, 48, 49, 50, 54, 55, 75, 78, 79, 80, 81, 85, 86, 97, 115, 118, 119, 130, 131, 132, 133, 134, 135, 136, 145], "let": [1, 3, 8, 11, 43, 53, 58, 60, 74, 76, 79, 93, 99, 105, 120, 131, 135, 144, 148], "handl": [1, 111, 131], "without": [1, 2, 8, 11, 28, 43, 49, 51, 58, 60, 69, 76, 99, 105, 115, 120, 132, 133, 139], "all": [1, 2, 3, 8, 9, 11, 14, 23, 27, 31, 37, 39, 43, 44, 45, 48, 49, 51, 53, 57, 58, 60, 62, 63, 68, 69, 74, 76, 79, 80, 82, 85, 86, 92, 93, 99, 102, 103, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 129, 130, 131, 132, 134, 136, 139, 141, 142, 143, 145, 146, 147, 148, 149, 150], "alloc": 1, "term": [1, 2, 3, 5, 7, 8, 11, 13, 14, 16, 17, 18, 20, 21, 23, 27, 31, 34, 36, 37, 38, 40, 41, 43, 44, 45, 46, 49, 50, 51, 52, 53, 55, 58, 59, 60, 63, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 79, 80, 81, 83, 86, 93, 97, 98, 99, 102, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 131, 132, 135, 140, 141, 142, 143, 144, 145, 146, 147, 150], "cvc5termmanag": [1, 8, 11, 20, 23, 27, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127], "instanc": [1, 3, 8, 11, 23, 24, 27, 28, 37, 43, 45, 46, 49, 53, 58, 60, 74, 76, 79, 86, 92, 93, 120, 123, 131, 143, 147], "onli": [1, 2, 3, 6, 7, 8, 9, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 27, 35, 43, 44, 45, 48, 51, 52, 53, 56, 58, 60, 69, 70, 74, 76, 79, 80, 85, 86, 87, 88, 99, 105, 106, 107, 109, 120, 130, 131, 136, 137, 139, 140, 141, 144, 145, 146, 147, 148], "releas": [1, 8, 13, 14, 16, 17, 18, 20, 21, 22, 23, 27, 43, 46, 79, 114, 115, 120, 123, 125], "when": [1, 2, 3, 5, 7, 10, 11, 13, 14, 17, 23, 25, 27, 30, 31, 34, 40, 43, 44, 45, 46, 48, 49, 51, 52, 53, 55, 57, 62, 63, 66, 69, 70, 72, 74, 79, 81, 83, 85, 86, 98, 118, 130, 131, 132, 139, 140, 141, 144, 145, 147], "ar": [1, 2, 3, 4, 5, 7, 8, 11, 12, 13, 14, 16, 17, 18, 19, 20, 22, 23, 24, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 42, 43, 44, 45, 46, 47, 48, 49, 51, 52, 53, 54, 55, 58, 59, 60, 61, 62, 63, 66, 67, 68, 69, 70, 73, 74, 76, 77, 78, 79, 80, 81, 83, 85, 86, 88, 92, 93, 96, 99, 102, 105, 107, 109, 110, 117, 120, 121, 127, 130, 131, 132, 133, 134, 136, 137, 139, 140, 141, 143, 144, 145, 146, 147, 148, 149, 150], "delet": [1, 8, 11, 43, 120], "cvc5_delet": [1, 8, 11, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127], "cvc5_term_manager_delet": [1, 8, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127], "exampl": [1, 2, 3, 5, 14, 23, 27, 31, 43, 44, 48, 49, 50, 51, 53, 55, 59, 63, 69, 74, 79, 80, 81, 85, 86, 88, 92, 93, 97, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 121, 122, 123, 124, 125, 126, 127, 129, 131, 133, 134, 136, 139, 140, 142, 147], "tm": [1, 3, 8, 11, 20, 28, 40, 43, 46, 48, 53, 58, 60, 72, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 142, 147, 150], "cvc5_term_manager_new": [1, 8, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127], "cvc5_new": [1, 8, 11, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127], "cvc5term": [1, 2, 8, 10, 11, 14, 17, 18, 20, 21, 23, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 119, 120, 121, 122, 123, 124, 125, 126, 127], "cvc5_mk_const": [1, 8, 11, 27, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 120, 121, 122, 123, 124, 127], "cvc5_get_integer_sort": [1, 8, 109, 110, 117, 120, 122, 123, 125, 126], "cvc5_mk_integer_int64": [1, 8, 106, 109, 110, 117, 120, 122, 123, 124, 125, 126], "2": [1, 2, 3, 4, 8, 14, 16, 18, 27, 31, 33, 36, 43, 48, 49, 51, 53, 54, 58, 60, 63, 65, 67, 69, 74, 76, 85, 89, 91, 92, 93, 95, 98, 99, 100, 102, 103, 105, 106, 107, 108, 109, 110, 113, 114, 115, 117, 120, 121, 122, 123, 124, 125, 126, 127, 130, 131, 132, 133, 134, 136, 138, 140, 141, 142, 143, 145, 147, 150], "args1": [1, 107, 108, 109, 110, 113, 115, 117, 121, 122, 123, 124, 125, 126], "cvc5_assert_formula": [1, 8, 11, 107, 108, 109, 110, 113, 114, 115, 117, 120, 121, 127], "cvc5_mk_term": [1, 8, 14, 20, 27, 28, 106, 107, 108, 109, 110, 113, 114, 115, 117, 120, 121, 122, 123, 124, 125, 126, 127], "cvc5_kind_equ": [1, 2, 106, 107, 109, 113, 114, 115, 117, 121, 122, 123, 124, 125, 126, 127], "b": [1, 2, 3, 8, 11, 13, 14, 16, 17, 18, 20, 21, 22, 23, 27, 43, 44, 49, 51, 53, 58, 59, 60, 69, 74, 76, 79, 80, 86, 89, 90, 91, 92, 93, 94, 95, 99, 101, 102, 103, 105, 106, 107, 114, 115, 118, 119, 120, 121, 123, 125, 131, 132, 133, 134, 136, 138, 140, 142, 143, 145, 146, 147], "args2": [1, 8, 107, 108, 109, 110, 113, 114, 115, 117, 120, 121, 122, 123, 124, 125, 126, 127], "cvc5_kind_distinct": [1, 2, 107, 110, 113, 115], "cvc5_check_sat": [1, 8, 11, 21, 22, 107, 108, 109, 110, 114, 115, 117, 118, 120, 121, 127], "introduc": [1, 8, 23, 44, 58, 60, 76, 80, 99, 105, 107, 120, 131, 140], "fine": [1, 13, 14, 16, 17, 18, 20, 21, 22, 23, 27, 133, 134, 136, 138], "grain": [1, 13, 14, 16, 17, 18, 20, 21, 22, 23, 27, 133, 134, 136, 138], "object": [1, 3, 9, 11, 18, 21, 23, 30, 31, 33, 34, 35, 36, 39, 41, 43, 44, 45, 49, 53, 57, 59, 62, 63, 64, 65, 66, 73, 79, 82, 85, 86, 89, 92, 93, 96, 98, 102, 110, 125, 137, 139, 141, 142, 143, 144, 145, 146, 147], "creat": [1, 2, 5, 8, 11, 15, 16, 18, 20, 23, 27, 28, 32, 33, 36, 38, 43, 44, 45, 48, 49, 51, 55, 58, 60, 64, 65, 67, 69, 71, 76, 79, 80, 81, 85, 86, 89, 91, 92, 93, 94, 95, 98, 99, 100, 101, 102, 103, 105, 107, 110, 112, 115, 116, 120, 122, 125, 131, 133, 134, 136, 142, 143, 144, 145, 146, 147], "correspond": [1, 2, 3, 7, 8, 11, 13, 14, 18, 20, 27, 30, 31, 36, 38, 41, 43, 48, 49, 51, 52, 53, 58, 60, 62, 63, 67, 69, 70, 71, 73, 74, 76, 79, 86, 99, 105, 120, 131, 132, 136, 139, 140], "cvc5_": 1, "_copi": 1, "_releas": 1, "function": [1, 2, 3, 5, 7, 8, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 55, 57, 62, 63, 65, 66, 69, 70, 72, 73, 74, 76, 79, 80, 81, 82, 83, 85, 86, 88, 89, 91, 92, 93, 94, 96, 98, 102, 106, 109, 110, 111, 120, 126, 130, 132, 133, 138, 140, 141, 142, 147, 149, 150], "copi": [1, 8, 13, 14, 16, 17, 18, 20, 21, 22, 23, 27, 43, 45, 48, 58, 60, 76, 88, 91, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 142, 147, 150], "increment": [1, 8, 11, 30, 31, 43, 48, 58, 60, 76, 79, 99, 102, 105, 106, 107, 109, 114, 115, 120, 123, 125, 126, 131, 138, 141, 142, 147, 150], "refer": [1, 3, 11, 13, 14, 16, 17, 18, 20, 21, 22, 23, 27, 30, 31, 43, 48, 53, 74, 92, 93, 96, 102, 110, 129, 130, 131], "counter": [1, 13, 14, 16, 17, 18, 20, 21, 22, 23, 27, 147], "an": [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 18, 19, 20, 21, 22, 23, 24, 27, 30, 31, 32, 36, 37, 38, 39, 41, 42, 43, 44, 45, 46, 47, 48, 49, 51, 52, 53, 54, 55, 56, 57, 58, 60, 62, 64, 67, 68, 69, 70, 71, 73, 74, 76, 77, 78, 79, 80, 81, 83, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 102, 103, 105, 106, 110, 112, 114, 115, 117, 118, 119, 120, 123, 129, 130, 131, 132, 134, 136, 138, 139, 140, 142, 143, 144, 145, 146, 147], "decrement": [1, 13, 14, 16, 17, 18, 20, 21, 22, 23, 27], "free": [1, 2, 3, 7, 8, 11, 18, 27, 36, 43, 48, 49, 51, 52, 53, 57, 67, 69, 70, 74, 79, 102, 120, 125, 126, 131, 145, 147], "reach": [1, 6, 56, 87, 131, 139], "0": [1, 2, 3, 8, 11, 23, 27, 40, 43, 44, 48, 49, 51, 53, 58, 59, 60, 69, 72, 74, 76, 79, 80, 85, 86, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 103, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 131, 132, 133, 134, 136, 140, 142, 143, 144, 145, 146, 147, 148, 150], "we": [1, 2, 3, 7, 8, 11, 23, 26, 37, 43, 44, 47, 48, 49, 51, 52, 53, 57, 58, 60, 68, 69, 70, 74, 76, 79, 80, 84, 86, 93, 99, 102, 105, 106, 107, 108, 109, 110, 113, 114, 115, 116, 118, 119, 120, 121, 123, 125, 130, 131, 135, 140, 142, 143, 144, 145, 146, 147], "anymor": [1, 8, 114, 115, 120, 123, 125], "cvc5_term_releas": [1, 27, 114, 115, 123, 125], "cvc5command": [1, 118, 119], "cvc5datatyp": [1, 14, 23, 110], "cvc5datatypedecl": [1, 13, 110], "cvc5datatypeconstructor": [1, 13, 17, 110], "cvc5datatypeconstructordecl": [1, 11, 16, 110], "cvc5datatypeselector": [1, 13, 14, 110], "cvc5grammar": [1, 11, 125], "cvc5inputpars": [1, 25, 118, 119], "cvc5op": [1, 27, 28, 107, 113, 115], "cvc5proof": [1, 11], "cvc5result": [1, 6, 8, 11, 106, 114, 115, 118, 120, 121, 122, 123, 124], "cvc5sort": [1, 5, 8, 11, 13, 14, 17, 27, 106, 107, 108, 109, 110, 113, 114, 115, 117, 120, 121, 122, 123, 124, 125, 126, 127], "cvc5statist": [1, 11], "cvc5symbolmanag": [1, 12, 118, 119], "cvc5synthresult": [1, 11], "sort": [1, 2, 5, 8, 11, 13, 14, 15, 16, 17, 18, 23, 27, 30, 31, 32, 33, 34, 36, 37, 43, 46, 48, 49, 50, 51, 55, 58, 59, 60, 62, 63, 64, 65, 66, 67, 69, 75, 76, 79, 81, 83, 85, 86, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 103, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 117, 120, 121, 122, 123, 124, 125, 126, 127, 131, 140, 142, 143, 144, 145, 146, 147, 150], "creation": [1, 2, 51, 69, 130], "oper": [1, 2, 3, 4, 8, 11, 20, 22, 27, 30, 31, 32, 33, 34, 36, 38, 39, 41, 42, 43, 44, 45, 47, 48, 49, 51, 52, 53, 54, 55, 56, 58, 59, 60, 69, 71, 74, 76, 79, 85, 86, 91, 94, 97, 99, 105, 120, 121, 131, 134, 139, 140, 142, 144, 145, 147, 148], "datatyp": [1, 2, 3, 5, 11, 13, 14, 15, 16, 17, 23, 31, 32, 33, 34, 43, 44, 49, 50, 51, 53, 55, 59, 63, 64, 65, 66, 69, 74, 75, 79, 80, 81, 86, 97, 111, 132, 138, 140, 145, 147, 149], "declar": [1, 2, 8, 11, 14, 15, 16, 25, 31, 32, 33, 43, 46, 49, 51, 58, 60, 63, 64, 65, 69, 76, 79, 83, 86, 92, 97, 99, 102, 105, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 131, 132, 134, 142, 144, 145, 146, 147, 150], "constructor": [1, 2, 3, 11, 13, 14, 15, 16, 23, 30, 31, 32, 33, 34, 36, 38, 41, 42, 43, 44, 45, 46, 47, 48, 49, 51, 53, 57, 62, 63, 64, 65, 69, 74, 79, 80, 86, 93, 110, 131, 140, 143, 147], "cvc5optioninfo": [1, 11, 28], "cvc5plugin": [1, 11], "cvc5kind": [1, 20, 27, 28], "cvc5proofrul": [1, 21], "cvc5proofrewriterul": [1, 21], "cvc5sortkind": [1, 23, 28], "cvc5roundingmod": [1, 23, 27], "cvc5unknownexplan": [1, 22], "follow": [1, 2, 3, 4, 7, 8, 9, 11, 23, 39, 43, 44, 50, 51, 52, 53, 54, 58, 60, 69, 70, 74, 76, 79, 80, 86, 88, 89, 90, 91, 93, 94, 95, 97, 99, 100, 101, 103, 104, 105, 107, 108, 109, 110, 111, 121, 130, 131, 132, 137, 139, 140, 141, 142, 143, 144, 145, 147, 150], "defin": [1, 2, 3, 7, 8, 9, 11, 18, 19, 23, 27, 28, 36, 37, 43, 44, 48, 49, 51, 52, 53, 58, 60, 67, 68, 69, 70, 74, 76, 79, 80, 85, 86, 92, 93, 96, 97, 99, 102, 105, 108, 110, 113, 114, 120, 121, 124, 125, 126, 130, 131, 132, 134, 136, 137, 140, 142, 144, 145, 147, 149, 150], "typedef": [1, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28], "black": [1, 143], "box": 1, "intern": [1, 2, 3, 5, 7, 9, 11, 18, 21, 24, 25, 29, 36, 37, 41, 43, 45, 46, 48, 51, 52, 53, 55, 69, 70, 74, 79, 81, 82, 83, 97, 102, 131, 132, 134, 135, 136, 137, 138, 139, 140, 141, 144, 150], "hidden": [1, 2, 51, 69], "cvc5stat": [1, 24], "fulli": [1, 3, 43, 49, 53, 74, 79, 86, 88, 102, 110, 131, 134], "expos": [1, 2, 5, 50, 51, 55, 69, 81], "cvc5optioninfokind": [1, 9], "configur": [1, 7, 9, 10, 11, 19, 24, 28, 35, 37, 39, 40, 43, 45, 46, 50, 52, 59, 70, 72, 75, 79, 82, 88, 102, 130, 131, 132, 139], "cvc5blockmodelsmod": [1, 7, 11], "cvc5learnedlittyp": [1, 7, 11], "cvc5proofcompon": [1, 7, 11], "cvc5proofformat": [1, 7, 11], "cvc5findsynthtarget": [1, 7, 11], "everi": [2, 3, 5, 10, 40, 41, 43, 49, 51, 53, 55, 69, 72, 73, 74, 79, 81, 86, 92, 102, 111, 131, 139, 141], "ha": [2, 3, 5, 9, 11, 14, 16, 19, 23, 25, 26, 27, 31, 33, 35, 37, 39, 43, 44, 46, 47, 48, 49, 51, 53, 55, 63, 68, 69, 74, 79, 80, 81, 83, 84, 85, 86, 92, 93, 107, 110, 116, 119, 130, 131, 132, 134, 139, 140, 141, 143, 146], "associ": [2, 3, 5, 9, 11, 23, 27, 28, 37, 39, 43, 44, 45, 46, 48, 49, 51, 53, 55, 57, 69, 74, 79, 80, 81, 86, 92, 93, 115, 118, 119, 131, 143], "kind": [2, 3, 5, 7, 8, 9, 11, 14, 17, 20, 23, 27, 28, 31, 34, 38, 43, 44, 48, 49, 50, 52, 53, 55, 58, 59, 60, 63, 66, 71, 74, 75, 76, 79, 80, 81, 85, 86, 90, 91, 92, 96, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 120, 121, 122, 123, 124, 125, 126, 127, 131, 140, 142, 143, 144, 145, 146, 147, 150], "repres": [2, 3, 4, 5, 6, 11, 13, 14, 17, 20, 22, 23, 24, 26, 27, 28, 30, 31, 34, 38, 42, 43, 44, 45, 47, 48, 49, 51, 53, 54, 55, 56, 59, 62, 63, 66, 69, 71, 74, 77, 78, 79, 80, 81, 82, 84, 85, 86, 87, 89, 91, 92, 94, 95, 98, 102, 108, 131, 134, 140, 142, 144], "enum": [2, 3, 4, 5, 6, 7, 9, 22, 23, 27, 28, 42, 44, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 69, 70, 74, 77, 78, 80, 81, 85, 86, 87, 131, 132, 137, 140], "thi": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 51, 52, 53, 54, 55, 56, 57, 58, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 83, 84, 85, 86, 87, 89, 90, 92, 93, 95, 97, 98, 99, 100, 102, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 129, 130, 131, 132, 134, 135, 136, 139, 140, 141, 142, 144, 145, 147, 148, 150], "distinguish": [2, 3, 11, 43, 51, 53, 57, 69, 79, 131, 140, 145], "valu": [2, 3, 4, 5, 6, 7, 8, 9, 11, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 26, 27, 30, 39, 42, 43, 45, 47, 48, 49, 51, 52, 53, 54, 55, 56, 58, 59, 60, 62, 69, 70, 74, 76, 77, 78, 79, 81, 82, 84, 85, 86, 87, 89, 91, 92, 94, 95, 96, 99, 100, 102, 103, 105, 106, 107, 108, 109, 110, 114, 115, 117, 120, 122, 123, 130, 131, 140, 141, 142, 143, 144, 146, 147], "constant": [2, 3, 7, 8, 11, 18, 27, 36, 43, 48, 49, 51, 52, 53, 58, 60, 67, 69, 70, 74, 76, 79, 85, 86, 89, 90, 91, 92, 93, 94, 95, 96, 99, 102, 103, 105, 108, 109, 115, 117, 120, 122, 124, 131, 140, 141, 142, 144, 146, 147, 150], "variabl": [2, 3, 7, 8, 11, 18, 27, 36, 43, 48, 49, 51, 52, 53, 58, 60, 67, 69, 70, 74, 76, 79, 85, 86, 92, 98, 99, 105, 107, 108, 109, 115, 116, 117, 120, 121, 122, 124, 125, 126, 127, 130, 131, 132, 140, 141, 145, 147, 150], "what": [2, 11, 43, 51, 57, 69, 79, 131], "each": [2, 3, 8, 11, 43, 51, 53, 58, 60, 69, 74, 76, 79, 91, 92, 93, 99, 105, 109, 110, 118, 120, 125, 130, 131, 140, 141, 143], "bit": [2, 3, 4, 5, 23, 27, 43, 44, 48, 49, 51, 53, 54, 55, 69, 74, 79, 80, 81, 85, 86, 94, 95, 97, 111, 115, 130, 131, 133, 140, 141, 144, 146, 149], "vector": [2, 3, 5, 8, 10, 23, 27, 30, 32, 36, 38, 39, 40, 41, 43, 44, 46, 48, 49, 51, 53, 55, 58, 60, 69, 71, 72, 73, 74, 76, 79, 80, 81, 85, 86, 94, 95, 97, 99, 102, 105, 110, 111, 115, 120, 125, 126, 130, 131, 133, 140, 143, 146, 147, 149], "cvc5_kind_const_bitvector": 2, "symbol": [2, 3, 8, 11, 12, 18, 19, 23, 25, 27, 29, 37, 43, 44, 46, 48, 49, 51, 53, 58, 60, 61, 68, 69, 74, 76, 79, 80, 83, 85, 86, 92, 99, 101, 102, 105, 110, 111, 118, 131, 140, 143, 145, 150], "cvc5_kind_const": 2, "equal": [2, 3, 4, 7, 8, 13, 14, 16, 17, 18, 20, 21, 22, 23, 27, 30, 31, 32, 33, 34, 36, 38, 41, 42, 44, 47, 48, 51, 52, 53, 54, 58, 60, 69, 70, 74, 76, 78, 85, 89, 91, 93, 94, 99, 105, 106, 107, 109, 113, 114, 115, 117, 120, 121, 122, 123, 124, 125, 126, 127, 131, 132, 133, 136, 140, 141, 142, 144, 147], "over": [2, 3, 7, 8, 11, 24, 27, 43, 45, 48, 51, 52, 53, 58, 60, 62, 63, 69, 70, 74, 76, 79, 82, 85, 99, 100, 101, 103, 105, 106, 109, 110, 113, 117, 120, 121, 123, 130, 131, 134, 136, 139, 141, 142, 147], "ani": [2, 3, 7, 9, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 27, 36, 38, 39, 43, 48, 49, 51, 52, 53, 57, 67, 69, 70, 71, 74, 79, 85, 86, 106, 123, 131, 132, 134, 140, 141, 142, 145, 147], "univers": [2, 11, 27, 43, 48, 49, 51, 69, 79, 85, 86, 98, 103, 121, 125, 131, 138, 140, 147], "quantifi": [2, 3, 8, 11, 43, 49, 51, 53, 58, 60, 69, 74, 76, 79, 86, 92, 97, 99, 105, 120, 121, 132, 133, 140, 145, 147, 149], "formula": [2, 3, 7, 8, 11, 43, 51, 52, 53, 58, 60, 69, 70, 74, 76, 79, 92, 98, 99, 105, 108, 117, 120, 121, 131, 132, 134, 136, 138, 140, 145, 147, 150], "cvc5_kind_foral": [2, 121], "enumer": [2, 3, 4, 5, 6, 7, 9, 11, 24, 43, 45, 51, 52, 53, 54, 55, 56, 69, 70, 74, 79, 81, 131, 140, 141, 143], "cvc5_kind_internal_kind": 2, "serv": [2, 5, 51, 55, 69, 81], "abstract": [2, 3, 5, 23, 27, 43, 44, 48, 49, 51, 53, 55, 69, 74, 79, 80, 81, 86, 102, 131, 138], "api": [2, 5, 7, 8, 9, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 36, 41, 43, 45, 47, 48, 51, 52, 55, 57, 58, 60, 69, 70, 76, 79, 81, 84, 99, 102, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 129, 131, 137, 139, 140, 141, 142, 144, 145, 146, 147, 150], "mai": [2, 3, 4, 5, 7, 10, 11, 13, 14, 16, 23, 24, 27, 30, 31, 33, 43, 44, 45, 48, 49, 51, 52, 53, 54, 55, 57, 62, 63, 65, 69, 70, 74, 79, 80, 81, 85, 86, 89, 91, 94, 130, 131, 139, 140, 144, 147], "appear": [2, 3, 5, 8, 51, 53, 55, 58, 60, 69, 74, 76, 81, 99, 105, 120, 131, 132, 134, 140], "return": [2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 26, 27, 29, 30, 31, 32, 33, 34, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 51, 52, 53, 54, 55, 56, 57, 58, 60, 61, 62, 63, 64, 65, 66, 68, 69, 70, 71, 72, 73, 74, 76, 77, 79, 80, 81, 82, 83, 84, 85, 86, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 103, 105, 106, 107, 108, 109, 110, 112, 113, 115, 116, 117, 120, 125, 126, 127, 131, 134, 139, 140, 146, 150], "e": [2, 3, 5, 6, 7, 8, 11, 12, 19, 20, 23, 25, 27, 29, 35, 37, 38, 39, 43, 44, 46, 47, 48, 49, 51, 52, 53, 55, 56, 58, 60, 61, 68, 69, 70, 71, 74, 76, 77, 79, 80, 81, 83, 84, 85, 86, 87, 89, 90, 92, 93, 98, 99, 100, 101, 102, 103, 105, 106, 107, 112, 115, 120, 121, 123, 124, 130, 131, 135, 138, 140, 142, 146, 147, 148, 150], "g": [2, 3, 5, 6, 7, 8, 11, 12, 19, 20, 23, 25, 27, 29, 35, 36, 37, 38, 39, 43, 44, 46, 48, 49, 51, 52, 53, 55, 56, 58, 60, 61, 68, 69, 70, 71, 74, 76, 79, 80, 81, 83, 85, 87, 93, 99, 102, 105, 120, 124, 125, 130, 131, 135, 140, 146, 147, 148, 150], "queri": [2, 5, 7, 8, 9, 11, 21, 22, 26, 28, 39, 41, 42, 43, 45, 47, 51, 52, 55, 58, 60, 69, 70, 73, 76, 77, 79, 81, 84, 99, 102, 105, 107, 108, 109, 120, 122, 124, 131, 132, 141], "simplifi": [2, 3, 5, 11, 43, 48, 51, 53, 55, 69, 74, 79, 81, 85, 90, 91, 93, 95, 100, 102, 103, 110, 131], "form": [2, 3, 5, 7, 8, 11, 43, 51, 52, 53, 55, 58, 60, 69, 70, 74, 76, 79, 81, 86, 89, 99, 102, 105, 120, 131, 140, 143], "should": [2, 3, 5, 8, 11, 14, 17, 31, 34, 37, 43, 49, 51, 53, 55, 57, 58, 60, 63, 66, 68, 69, 74, 76, 79, 81, 86, 99, 102, 105, 108, 114, 117, 118, 120, 125, 126, 130, 136, 140, 141, 150], "never": [2, 5, 51, 55, 69, 81, 131], "cvc5_kind_undefined_kind": 2, "undefin": [2, 5, 51, 55, 69, 81, 140], "cvc5_kind_null_term": 2, "null": [2, 3, 5, 10, 11, 29, 30, 31, 32, 33, 34, 36, 37, 41, 43, 44, 47, 48, 49, 51, 53, 55, 61, 62, 63, 64, 65, 66, 68, 69, 71, 74, 79, 80, 81, 84, 85, 86, 118, 119, 125, 126], "explicitli": [2, 3, 5, 8, 9, 14, 31, 39, 51, 53, 55, 58, 60, 63, 69, 74, 76, 79, 81, 86, 99, 105, 120, 131, 139], "than": [2, 3, 4, 5, 8, 9, 11, 39, 43, 44, 48, 51, 53, 54, 55, 58, 60, 69, 74, 76, 78, 79, 81, 89, 91, 99, 105, 107, 120, 130, 131, 146], "cvc5_kind_uninterpreted_sort_valu": 2, "uninterpret": [2, 5, 11, 23, 27, 43, 44, 48, 49, 51, 55, 69, 79, 80, 81, 85, 86, 92, 109, 111, 133, 140, 146, 149], "result": [2, 3, 4, 6, 8, 11, 12, 13, 21, 22, 23, 26, 27, 29, 41, 43, 47, 48, 50, 51, 53, 54, 56, 58, 59, 60, 61, 69, 73, 74, 75, 76, 78, 79, 84, 85, 87, 97, 99, 105, 106, 112, 114, 115, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 131, 134, 136, 140, 142, 147, 150], "call": [2, 3, 8, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 26, 27, 37, 40, 43, 45, 47, 48, 49, 51, 53, 57, 58, 60, 68, 69, 72, 74, 76, 79, 82, 84, 85, 99, 105, 106, 109, 120, 127, 130, 131, 132, 137, 139, 140, 144], "assert": [2, 3, 7, 8, 11, 12, 13, 23, 25, 27, 29, 30, 39, 43, 44, 45, 46, 48, 51, 52, 53, 58, 60, 61, 69, 70, 74, 76, 79, 80, 83, 85, 95, 99, 102, 105, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 124, 127, 130, 131, 143, 144, 145, 146, 147, 150], "chainabl": [2, 51, 69], "ariti": [2, 3, 11, 23, 43, 44, 49, 51, 53, 69, 74, 79, 80, 86, 92, 93, 110, 121], "n": [2, 3, 8, 11, 27, 43, 48, 49, 51, 53, 69, 74, 79, 85, 88, 89, 91, 93, 96, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 131, 138, 140, 142, 143, 144, 145, 146], "1": [2, 3, 4, 8, 11, 18, 23, 27, 36, 43, 48, 51, 53, 54, 58, 59, 60, 67, 69, 74, 76, 79, 85, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 103, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 120, 121, 122, 123, 124, 125, 126, 127, 131, 132, 133, 134, 136, 138, 140, 141, 142, 143, 144, 145, 146, 147, 148], "same": [2, 3, 7, 8, 11, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 27, 36, 37, 41, 43, 49, 51, 52, 53, 58, 60, 67, 68, 69, 70, 74, 76, 79, 92, 93, 99, 105, 111, 119, 120, 130, 131, 139, 140, 143, 144, 146, 147], "mkterm": [2, 8, 31, 38, 43, 48, 49, 51, 58, 60, 63, 69, 71, 76, 79, 85, 86, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 117, 120, 121, 122, 123, 124, 125, 126, 127, 142, 143, 144, 145, 146, 147, 150], "const": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 51, 53, 55, 57, 58, 60, 71, 72, 74, 76, 79, 83, 86, 89, 91, 92, 93, 94, 95, 99, 100, 101, 103, 105, 106, 107, 108, 109, 110, 113, 115, 116, 117, 118, 119, 120, 122, 123, 124, 125, 126, 127, 131, 134, 142, 143, 144, 145, 146, 147], "std": [2, 5, 8, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 51, 52, 53, 54, 55, 56, 57, 58, 60, 71, 72, 76, 80, 99, 105, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 138, 141, 142, 143, 147, 150], "op": [2, 3, 20, 27, 28, 43, 48, 49, 50, 51, 53, 59, 69, 74, 75, 79, 85, 86, 107, 113, 115, 145], "mkop": [2, 38, 43, 49, 51, 69, 71, 79, 86, 107, 113, 115, 143], "uint32_t": [2, 5, 11, 23, 27, 28, 43, 44, 48, 49, 51, 55, 79, 86, 107, 108, 113, 115], "disequ": [2, 3, 18, 20, 21, 22, 23, 27, 30, 31, 36, 38, 41, 42, 44, 47, 48, 51, 53, 69, 74, 92, 131, 140], "mkconst": [2, 8, 11, 43, 48, 49, 51, 58, 60, 69, 76, 79, 86, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 120, 121, 122, 123, 124, 127, 142, 143, 144, 146, 147, 150], "string": [2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 16, 17, 18, 20, 22, 23, 24, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 51, 52, 53, 54, 55, 56, 57, 58, 60, 61, 68, 69, 72, 73, 74, 76, 79, 80, 81, 85, 86, 89, 91, 92, 93, 95, 97, 98, 99, 100, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 125, 126, 127, 130, 132, 133, 140, 141, 142, 143, 144, 145, 146, 147, 149, 150], "Not": [2, 3, 51, 53, 69, 74, 92, 95, 102, 109, 110, 115, 125, 127], "permit": [2, 51, 69, 131], "bind": [2, 45, 51, 59, 69, 88, 125], "foral": [2, 3, 11, 43, 51, 53, 69, 74, 79, 98, 121, 131, 132, 140, 142, 147], "exist": [2, 3, 8, 11, 43, 45, 51, 53, 58, 60, 69, 74, 76, 79, 98, 105, 112, 131, 140, 145], "cvc5_kind_vari": 2, "bound": [2, 3, 5, 11, 27, 43, 48, 49, 51, 53, 55, 69, 74, 79, 81, 85, 86, 92, 98, 103, 117, 131, 132, 140, 146], "mkvar": [2, 43, 48, 49, 51, 69, 79, 86, 112, 121, 125, 126, 147], "lambda": [2, 3, 43, 49, 51, 53, 69, 74, 79, 86, 98, 125, 126, 131, 140], "bodi": [2, 3, 11, 43, 51, 53, 69, 74, 79, 98, 108, 125, 126, 131], "cvc5_kind_skolem": 2, "A": [2, 3, 5, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25, 27, 28, 30, 31, 32, 33, 34, 36, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 51, 52, 53, 55, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 69, 70, 71, 72, 73, 74, 76, 77, 79, 80, 81, 82, 83, 85, 86, 90, 92, 99, 101, 102, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 131, 133, 134, 136, 137, 138, 140, 141, 142, 143, 145, 146, 147, 150], "skolem": [2, 3, 27, 48, 49, 51, 53, 69, 74, 79, 85, 86, 129, 131], "avail": [2, 4, 8, 11, 25, 43, 46, 51, 54, 58, 60, 69, 76, 79, 82, 83, 99, 102, 105, 120, 125, 126, 130, 131, 133, 135, 136, 138, 141, 143], "getskolemid": [2, 48, 51, 69, 85], "getskolemindic": [2, 48, 51, 69, 85], "gener": [2, 3, 7, 24, 27, 45, 48, 51, 52, 53, 69, 70, 74, 82, 85, 97, 102, 110, 130, 131, 132, 133, 134, 136, 139, 141], "inform": [2, 8, 9, 11, 24, 25, 28, 39, 43, 45, 46, 51, 58, 60, 69, 76, 79, 82, 83, 93, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 131, 132, 141, 142, 144, 147, 150], "cvc5_kind_sexpr": 2, "express": [2, 3, 19, 23, 27, 37, 43, 44, 48, 49, 51, 53, 68, 69, 74, 79, 80, 85, 86, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 100, 101, 102, 115, 124, 140], "experiment": [2, 11, 13, 14, 16, 23, 27, 30, 31, 33, 43, 44, 48, 49, 51, 62, 63, 65, 69, 79, 80, 85, 86, 131], "chang": [2, 3, 11, 13, 14, 16, 23, 27, 30, 31, 33, 43, 44, 45, 48, 49, 51, 53, 62, 63, 65, 69, 74, 79, 80, 85, 86, 130, 131, 141], "remov": [2, 3, 11, 43, 46, 51, 53, 69, 74, 79, 101, 102, 131, 142, 144], "futur": [2, 11, 13, 14, 16, 23, 27, 30, 31, 33, 43, 44, 46, 48, 49, 51, 62, 63, 65, 69, 79, 80, 85, 86, 131, 144], "version": [2, 3, 8, 11, 13, 14, 16, 23, 27, 30, 31, 33, 43, 44, 48, 49, 51, 53, 58, 60, 62, 63, 65, 69, 74, 76, 79, 80, 85, 86, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 131, 133, 138, 141, 142, 143, 147, 150], "cvc5_kind_lambda": [2, 125, 126], "cpp": [2, 8, 27, 45, 51, 58, 60, 76, 88, 99, 105, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 138, 142, 147, 150], "variable_list": [2, 3, 51, 53, 69, 74, 121, 147], "cvc5_kind_wit": 2, "wit": [2, 43, 49, 51, 69, 79, 86, 138, 140], "syntax": [2, 14, 16, 31, 33, 51, 63, 65, 69, 97, 102, 131, 134, 147], "similar": [2, 3, 14, 17, 31, 34, 51, 53, 63, 66, 69, 74, 102, 130, 131, 134, 147], "except": [2, 43, 45, 50, 51, 59, 62, 69, 73, 85, 89, 90, 92, 97, 102, 111, 131, 139, 143], "allow": [2, 9, 11, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 27, 28, 36, 39, 43, 49, 51, 67, 69, 79, 86, 88, 131, 137, 139, 143, 147], "x": [2, 3, 7, 8, 11, 27, 43, 48, 49, 51, 52, 53, 58, 59, 60, 69, 70, 74, 76, 79, 85, 86, 89, 91, 92, 94, 95, 96, 98, 99, 100, 102, 103, 105, 106, 107, 109, 112, 113, 115, 117, 120, 121, 122, 123, 124, 125, 126, 127, 131, 132, 140, 142, 143, 144, 145, 146, 147, 150], "": [2, 3, 4, 7, 8, 11, 23, 25, 35, 43, 44, 45, 46, 48, 49, 51, 52, 53, 54, 57, 58, 60, 69, 70, 74, 76, 78, 79, 83, 85, 86, 88, 89, 90, 91, 92, 93, 94, 95, 96, 99, 100, 101, 102, 103, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 131, 133, 134, 138, 140, 142, 143, 144, 145, 146, 147, 150], "f": [2, 3, 27, 48, 51, 53, 69, 74, 85, 92, 98, 102, 109, 114, 115, 118, 119, 123, 124, 125, 126, 127, 131, 132, 140, 143, 144, 145, 147], "element": [2, 3, 5, 11, 23, 27, 43, 44, 48, 49, 51, 53, 55, 69, 74, 79, 80, 81, 85, 86, 90, 92, 93, 94, 98, 100, 101, 102, 106, 108, 123, 131, 140, 142, 145, 146, 147], "behav": [2, 51, 57, 69, 130], "like": [2, 3, 14, 17, 31, 34, 35, 43, 48, 49, 51, 53, 63, 66, 69, 74, 79, 86, 88, 102, 106, 130, 131, 139, 140, 141, 150], "descript": [2, 28, 43, 49, 51, 69, 135, 137], "see": [2, 3, 6, 8, 11, 16, 23, 24, 25, 27, 28, 33, 43, 44, 45, 46, 48, 49, 51, 53, 56, 58, 60, 65, 69, 74, 76, 79, 80, 82, 83, 87, 88, 89, 90, 91, 92, 93, 94, 95, 99, 100, 101, 102, 103, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 131, 134, 135, 137, 139, 140, 142, 144, 145, 147, 150], "planetmath": [2, 51], "org": [2, 3, 51, 53, 93, 95, 138], "hilbertsvarepsilonoper": [2, 51], "satisfi": [2, 6, 8, 11, 22, 42, 43, 51, 56, 58, 60, 69, 76, 77, 79, 87, 99, 102, 105, 107, 108, 109, 117, 120, 122, 127, 129, 131, 138, 144, 145], "But": [2, 51, 69], "doe": [2, 3, 7, 9, 11, 20, 21, 35, 38, 41, 43, 45, 49, 51, 52, 53, 69, 70, 71, 73, 74, 79, 88, 97, 102, 106, 108, 110, 130, 131, 139, 140, 142, 143, 145], "enforc": [2, 51, 69, 131, 139], "axiom": [2, 51, 69, 131], "which": [2, 3, 4, 7, 11, 14, 18, 19, 21, 23, 24, 25, 26, 27, 28, 31, 36, 37, 41, 43, 44, 45, 46, 47, 48, 49, 51, 52, 53, 54, 57, 67, 68, 69, 70, 73, 74, 79, 80, 83, 84, 85, 86, 89, 110, 125, 126, 130, 131, 134, 136, 140, 141, 143, 147], "ensur": [2, 3, 51, 53, 69, 74, 130, 131, 147], "uniqu": [2, 3, 51, 53, 69, 74, 92, 140, 144], "up": [2, 3, 51, 53, 69, 74, 108, 130, 131], "logic": [2, 8, 11, 19, 37, 43, 46, 49, 51, 58, 60, 68, 69, 76, 79, 83, 86, 91, 99, 102, 105, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 132, 134, 136, 138, 142, 144, 146, 147, 149], "equival": [2, 3, 7, 11, 14, 31, 43, 48, 49, 51, 52, 53, 63, 69, 70, 74, 79, 85, 107, 110, 125, 126, 131, 140, 143, 144], "equiv": [2, 3, 51, 53, 69, 74, 131], "rightarrow": [2, 3, 11, 43, 51, 53, 69, 74, 79, 142], "distinct": [2, 3, 43, 49, 51, 53, 69, 74, 79, 86, 92, 95, 106, 107, 109, 110, 113, 115, 123, 140, 142, 146, 147], "int": [2, 3, 8, 11, 14, 23, 30, 31, 43, 44, 48, 49, 51, 53, 58, 60, 63, 69, 74, 76, 79, 80, 85, 86, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 103, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 131, 132, 140, 142, 143, 145, 146, 147, 148, 150], "3": [2, 3, 4, 8, 22, 42, 51, 53, 54, 58, 59, 60, 69, 74, 76, 77, 89, 91, 92, 94, 95, 99, 100, 103, 105, 106, 107, 108, 110, 114, 115, 117, 120, 122, 123, 124, 125, 126, 131, 132, 133, 134, 136, 138, 140, 141, 142, 143, 144, 147], "bool": [2, 3, 9, 11, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 27, 29, 30, 31, 32, 33, 34, 36, 37, 38, 39, 41, 42, 43, 44, 45, 46, 47, 48, 49, 51, 53, 69, 74, 79, 80, 85, 89, 90, 92, 93, 101, 102, 108, 109, 116, 119, 125, 126, 127, 131, 132, 133, 134, 136, 146], "option": [2, 3, 5, 7, 8, 9, 11, 13, 14, 16, 17, 18, 20, 21, 22, 23, 27, 28, 35, 39, 43, 49, 51, 52, 53, 55, 58, 60, 69, 70, 74, 76, 79, 86, 99, 102, 103, 105, 106, 107, 108, 109, 112, 114, 115, 117, 120, 121, 122, 123, 124, 125, 126, 129, 134, 136, 137, 141, 142, 147], "inst_pattern_list": [2, 51, 69], "primarili": [2, 51, 69], "model": [2, 7, 8, 11, 43, 46, 51, 52, 58, 60, 69, 70, 76, 79, 83, 95, 97, 99, 105, 106, 108, 109, 112, 114, 115, 120, 121, 122, 123, 124, 131, 138, 142, 144, 145, 147], "arithmet": [2, 3, 4, 8, 51, 53, 54, 58, 60, 69, 74, 76, 91, 97, 99, 105, 109, 111, 120, 133, 134, 138, 140, 149, 150], "non": [2, 3, 11, 18, 23, 36, 43, 44, 51, 53, 67, 69, 74, 79, 80, 92, 112, 125, 130, 131, 132, 139, 140, 141, 143, 145, 146, 148], "linear": [2, 3, 13, 14, 30, 31, 51, 53, 62, 63, 69, 74, 111, 131, 133, 138, 150], "howev": [2, 8, 51, 57, 58, 60, 69, 76, 99, 105, 120, 134], "support": [2, 27, 28, 43, 48, 49, 51, 59, 69, 79, 85, 86, 88, 92, 93, 97, 104, 110, 121, 129, 131, 132, 133, 134, 136, 137, 139, 142, 143, 144, 145, 146, 147, 148, 149, 150], "parser": [2, 12, 19, 25, 29, 36, 37, 43, 44, 48, 50, 51, 57, 61, 68, 69, 83, 111], "moreov": [2, 51, 69], "cautiou": [2, 51, 69], "valid": [2, 3, 7, 8, 9, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 27, 39, 43, 51, 52, 53, 69, 70, 74, 79, 106, 109, 120, 130, 131], "If": [2, 3, 4, 7, 8, 11, 13, 19, 28, 30, 37, 39, 43, 45, 48, 49, 51, 52, 53, 54, 57, 58, 60, 62, 68, 69, 70, 74, 76, 78, 79, 85, 86, 88, 89, 91, 92, 93, 94, 95, 98, 99, 102, 103, 105, 107, 108, 113, 120, 130, 131, 140, 146], "case": [2, 3, 7, 8, 9, 11, 13, 14, 23, 25, 27, 30, 31, 43, 44, 46, 47, 48, 51, 52, 53, 58, 60, 62, 63, 69, 70, 74, 76, 79, 80, 83, 84, 85, 99, 103, 105, 120, 131, 139, 140, 141, 146, 148], "semant": [2, 3, 11, 27, 43, 48, 51, 53, 69, 74, 125, 131, 140], "unintuit": [2, 51, 69], "unsatisfi": [2, 8, 11, 22, 42, 43, 51, 58, 60, 69, 76, 79, 97, 99, 102, 105, 113, 120, 145], "fals": [2, 3, 7, 11, 13, 30, 43, 45, 49, 51, 52, 53, 62, 69, 70, 74, 79, 86, 89, 90, 91, 92, 93, 94, 95, 96, 98, 100, 101, 102, 103, 106, 110, 112, 124, 125, 126, 131, 132, 133, 134, 136, 146], "wherea": [2, 51, 69], "notic": [2, 3, 8, 51, 53, 58, 60, 69, 74, 76, 99, 105, 134, 145, 147], "z": [2, 3, 27, 48, 51, 53, 69, 74, 85, 89, 91, 92, 94, 95, 103, 114, 115, 124, 144, 145, 146, 147], "true": [2, 3, 8, 9, 11, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 27, 29, 30, 31, 32, 33, 34, 36, 37, 38, 41, 42, 43, 44, 45, 46, 47, 48, 49, 51, 53, 58, 60, 61, 62, 63, 64, 65, 66, 69, 71, 74, 76, 77, 79, 80, 82, 83, 84, 85, 86, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 102, 103, 105, 106, 107, 108, 109, 112, 114, 115, 116, 118, 119, 120, 121, 122, 123, 124, 125, 126, 131, 132, 134, 136, 141, 142, 143, 146, 147], "cvc5_kind_const_boolean": 2, "boolean": [2, 3, 5, 7, 8, 9, 23, 27, 43, 44, 45, 48, 49, 51, 52, 53, 55, 58, 60, 69, 70, 74, 76, 79, 80, 81, 82, 85, 86, 97, 98, 99, 102, 105, 109, 116, 120, 125, 126, 127, 131, 138, 141, 144, 145], "mktrue": [2, 43, 49, 51, 69, 79, 86, 108], "mkfals": [2, 43, 49, 51, 69, 79, 86], "mkboolean": [2, 43, 49, 51, 69, 79, 86, 112], "cvc5_kind_not": [2, 106, 107, 108, 109, 117, 121, 123, 125, 127], "negat": [2, 3, 48, 51, 53, 69, 74, 85, 89, 91, 92, 94, 102, 107, 109, 117, 131, 140, 144], "cvc5_kind_and": [2, 107, 108, 109, 115, 117, 122, 124, 125, 127], "conjunct": [2, 48, 51, 69, 85, 91, 131], "cvc5_kind_impli": 2, "implic": [2, 3, 48, 51, 53, 69, 74, 85, 92], "cvc5_kind_or": [2, 107, 115, 125], "disjunct": [2, 11, 43, 48, 51, 69, 79, 85, 91, 131], "cvc5_kind_xor": 2, "exclus": [2, 3, 48, 51, 53, 69, 74, 85, 91, 131], "left": [2, 3, 51, 53, 69, 74, 91, 145, 146], "cvc5_kind_it": [2, 107, 125, 126], "els": [2, 3, 8, 11, 43, 48, 51, 53, 58, 60, 69, 74, 76, 79, 85, 86, 92, 99, 105, 107, 120, 131, 134, 143], "second": [2, 8, 13, 14, 16, 17, 18, 20, 21, 22, 23, 27, 51, 58, 60, 69, 76, 79, 86, 91, 93, 94, 99, 105, 110, 120, 131, 140, 145], "argument": [2, 3, 5, 7, 11, 14, 17, 21, 23, 28, 31, 34, 41, 43, 44, 49, 51, 52, 53, 55, 63, 66, 69, 70, 73, 74, 79, 80, 81, 86, 90, 91, 92, 93, 94, 96, 100, 102, 103, 110, 131, 139, 140, 143], "cvc5_kind_apply_uf": [2, 109, 125, 127], "instanti": [2, 3, 11, 20, 23, 38, 43, 44, 51, 53, 69, 71, 74, 79, 80, 97, 110, 131, 132, 140, 143], "first": [2, 3, 7, 8, 11, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 27, 28, 30, 31, 34, 37, 38, 43, 48, 49, 51, 52, 53, 58, 60, 62, 63, 66, 68, 69, 71, 74, 76, 79, 86, 93, 99, 103, 105, 107, 108, 110, 120, 131, 133, 140, 144, 146], "class": [2, 6, 7, 8, 14, 17, 22, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 96, 97, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 131, 140, 142, 147, 150], "cvc5_kind_cardinality_constraint": 2, "cardin": [2, 3, 27, 43, 48, 49, 51, 53, 69, 74, 79, 85, 86, 131, 138, 140, 146, 147], "constraint": [2, 3, 8, 11, 27, 43, 48, 49, 51, 53, 58, 60, 69, 74, 76, 79, 85, 86, 92, 97, 99, 102, 105, 117, 120, 121, 125, 126, 131, 138, 145], "interpret": [2, 11, 27, 43, 48, 51, 69, 79, 102, 131, 139, 140, 144, 145, 147], "predic": [2, 3, 23, 43, 44, 49, 51, 53, 69, 74, 79, 80, 86, 89, 93, 123, 131, 142, 143, 145, 147], "uinterpret": [2, 51, 69], "less": [2, 3, 4, 44, 48, 51, 53, 54, 69, 74, 78, 89, 91, 131], "upper": [2, 3, 5, 27, 43, 48, 49, 51, 53, 55, 69, 74, 79, 81, 85, 86, 103, 117, 131], "mkcardinalityconstraint": [2, 43, 49, 51, 69, 79, 86], "cvc5_kind_ho_appli": 2, "higher": [2, 3, 51, 53, 69, 74, 75, 130, 131, 140], "order": [2, 3, 11, 23, 27, 43, 44, 48, 51, 53, 69, 74, 79, 80, 85, 86, 93, 103, 110, 131, 132, 144, 146], "encod": [2, 3, 43, 49, 51, 53, 69, 74, 79, 86, 95, 107, 144], "domain": [2, 5, 11, 23, 43, 44, 51, 55, 69, 79, 80, 81, 90, 92, 93, 97, 101, 109, 110, 127, 131, 140, 142, 145, 146], "cvc5_kind_add": [2, 8, 20, 109, 120, 125, 126], "real": [2, 3, 5, 8, 11, 23, 27, 43, 44, 48, 49, 51, 53, 55, 58, 60, 69, 74, 76, 79, 80, 81, 85, 86, 89, 92, 95, 98, 99, 100, 105, 115, 117, 120, 131, 132, 134, 140, 149, 150], "must": [2, 3, 11, 14, 19, 20, 31, 37, 38, 43, 49, 51, 53, 63, 68, 69, 71, 74, 79, 85, 86, 88, 92, 93, 102, 107, 108, 123, 131, 143, 145], "match": [2, 3, 43, 49, 51, 53, 62, 63, 69, 74, 79, 86, 92, 93, 130, 131, 140, 145], "cvc5_kind_mult": [2, 117], "multipl": [2, 3, 7, 11, 13, 14, 30, 31, 43, 51, 52, 53, 62, 63, 69, 74, 79, 89, 91, 94, 95, 106, 108, 115, 119, 131, 140, 142, 144], "cvc5_kind_iand": 2, "integ": [2, 3, 5, 8, 23, 24, 27, 28, 43, 44, 45, 48, 49, 51, 53, 55, 58, 59, 60, 69, 74, 76, 79, 80, 81, 85, 86, 89, 91, 92, 93, 94, 95, 99, 102, 103, 105, 109, 110, 112, 115, 117, 120, 121, 122, 123, 125, 126, 127, 131, 132, 134, 140, 141, 144, 146, 147, 149], "wise": [2, 51, 69, 91], "AND": [2, 3, 51, 53, 69, 74, 107, 108, 109, 112, 115, 117, 122, 124, 125, 127, 131, 141], "parameter": [2, 3, 5, 23, 44, 51, 53, 55, 69, 74, 80, 81, 110], "posit": [2, 3, 4, 20, 27, 38, 43, 48, 49, 51, 53, 54, 69, 71, 74, 78, 79, 85, 86, 94, 95, 102, 115, 131, 140, 144, 146], "width": [2, 5, 23, 27, 43, 44, 48, 49, 51, 55, 69, 79, 80, 81, 85, 86, 91, 107, 131], "k": [2, 3, 43, 49, 51, 53, 55, 59, 69, 74, 79, 86, 90, 93, 96, 108, 125, 126, 132, 140], "_": [2, 3, 23, 43, 44, 49, 51, 53, 69, 74, 79, 80, 86, 107, 108, 110, 113, 114, 115, 131, 132, 136, 140, 143, 144, 145, 147], "iand": [2, 51, 69, 131], "i_1": [2, 3, 51, 53, 69, 74], "i_2": [2, 3, 51, 53, 69, 74], "bv2int": [2, 51, 69, 91], "bvand": [2, 3, 51, 53, 69, 74, 91, 131], "int2bv": [2, 3, 51, 53, 69, 74, 91], "indic": [2, 3, 7, 11, 20, 23, 26, 27, 28, 38, 43, 47, 48, 49, 51, 52, 53, 69, 70, 71, 74, 79, 84, 85, 86, 95, 131, 132, 134, 139, 140, 141], "cvc5_kind_pow2": 2, "power": [2, 3, 51, 53, 69, 74, 79, 86, 89, 108, 131], "rais": [2, 43, 51, 69, 73, 102], "neg": [2, 3, 4, 11, 27, 43, 48, 49, 51, 53, 54, 69, 74, 78, 79, 85, 86, 89, 95, 131, 139, 144, 146], "cvc5_kind_sub": [2, 8, 117, 120, 125], "subtract": [2, 8, 30, 31, 48, 51, 58, 60, 69, 76, 89, 91, 94, 95, 99, 105, 120, 142], "cvc5_kind_neg": 2, "cvc5_kind_divis": [2, 28], "divis": [2, 3, 43, 49, 51, 53, 69, 74, 89, 91, 95, 131, 140, 144], "cvc5_kind_division_tot": 2, "cvc5_kind_ints_divis": 2, "cvc5_kind_ints_division_tot": 2, "cvc5_kind_ints_modulu": 2, "modulu": [2, 3, 43, 49, 51, 53, 69, 74, 89, 91, 140], "cvc5_kind_ints_modulus_tot": 2, "t": [2, 3, 7, 8, 14, 23, 27, 31, 38, 39, 43, 44, 48, 51, 52, 53, 58, 60, 63, 69, 70, 74, 76, 79, 85, 92, 99, 100, 102, 103, 105, 109, 110, 119, 120, 125, 126, 130, 131, 138, 140, 142, 143, 144, 145, 146, 147, 150], "cvc5_kind_ab": 2, "absolut": [2, 3, 27, 48, 51, 53, 69, 74, 85, 94, 95], "cvc5_kind_pow": 2, "cvc5_kind_exponenti": 2, "exponenti": [2, 3, 51, 53, 69, 74, 89, 150], "cvc5_kind_sin": 2, "sine": [2, 3, 51, 53, 69, 74, 89, 131, 140, 150], "cvc5_kind_cosin": 2, "cosin": [2, 3, 51, 53, 69, 74, 89, 150], "cvc5_kind_tang": 2, "tangent": [2, 3, 51, 53, 69, 74, 89, 131, 150], "cvc5_kind_cosec": 2, "cosec": [2, 3, 51, 53, 69, 74, 89, 150], "cvc5_kind_sec": 2, "secant": [2, 3, 51, 53, 69, 74, 89, 150], "cvc5_kind_cotang": 2, "cotang": [2, 3, 51, 53, 69, 74, 89, 150], "cvc5_kind_arcsin": 2, "arc": [2, 51, 69], "cvc5_kind_arccosin": 2, "cvc5_kind_arctang": 2, "cvc5_kind_arccosec": 2, "cvc5_kind_arcsec": 2, "cvc5_kind_arccotang": 2, "cvc5_kind_sqrt": 2, "squar": [2, 51, 69, 89, 95, 150], "root": [2, 21, 41, 51, 69, 73, 89, 95, 150], "y": [2, 3, 8, 27, 43, 48, 49, 51, 53, 58, 59, 60, 69, 74, 76, 79, 85, 86, 89, 91, 92, 94, 95, 98, 99, 102, 103, 105, 109, 115, 117, 120, 122, 124, 125, 127, 131, 132, 138, 140, 142, 144, 145, 146, 147, 150], "divid": [2, 8, 51, 58, 60, 69, 76, 99, 105, 120], "cvc5_kind_const_r": 2, "arbitrari": [2, 3, 7, 18, 27, 28, 36, 43, 48, 49, 51, 52, 53, 59, 67, 69, 70, 74, 85, 131, 134, 136, 140], "precis": [2, 4, 28, 43, 49, 51, 54, 59, 69, 78, 95, 115, 131, 139, 150], "ration": [2, 3, 8, 27, 43, 48, 49, 51, 53, 58, 59, 60, 69, 74, 76, 85, 89, 99, 105, 115, 120, 131, 140, 150], "mkreal": [2, 8, 43, 49, 51, 58, 60, 69, 76, 79, 86, 99, 105, 117, 120, 150], "int64_t": [2, 8, 9, 23, 24, 27, 39, 43, 45, 48, 49, 51, 58, 60, 76, 99, 105, 120, 131, 141], "cvc5_kind_const_integ": 2, "mkinteg": [2, 8, 43, 49, 51, 58, 60, 69, 76, 79, 86, 99, 105, 106, 109, 110, 117, 120, 122, 123, 124, 125, 126, 142, 146, 147], "cvc5_kind_lt": [2, 8, 117, 120, 126], "cvc5_kind_leq": [2, 8, 109, 117, 120, 125, 126], "cvc5_kind_gt": [2, 110, 122], "greater": [2, 3, 4, 44, 48, 51, 53, 54, 69, 74, 78, 89, 91], "cvc5_kind_geq": [2, 117, 124, 125], "cvc5_kind_is_integ": 2, "cvc5_kind_to_integ": 2, "convert": [2, 3, 8, 43, 49, 51, 53, 58, 60, 69, 74, 76, 79, 85, 86, 92, 93, 99, 102, 103, 105, 115, 120, 131, 137, 140], "floor": [2, 51, 69, 144], "cvc5_kind_to_r": 2, "cvc5_kind_pi": 2, "pi": [2, 3, 27, 43, 48, 49, 51, 53, 69, 74, 79, 85, 86, 89, 115, 131, 140, 150], "mkpi": [2, 43, 49, 51, 69, 79, 86, 150], "consid": [2, 3, 7, 27, 48, 51, 52, 53, 69, 70, 74, 85, 93, 108, 113, 131, 141], "special": [2, 3, 7, 14, 31, 39, 51, 52, 53, 63, 69, 70, 74, 97, 103, 115, 131, 143], "isrealvalu": [2, 48, 51, 69, 85], "fix": [2, 3, 23, 27, 43, 44, 48, 49, 51, 53, 69, 74, 79, 80, 85, 86, 146], "size": [2, 5, 8, 10, 11, 13, 18, 20, 21, 23, 24, 27, 28, 30, 43, 44, 48, 49, 51, 55, 58, 59, 60, 62, 69, 76, 79, 80, 81, 86, 89, 91, 92, 94, 95, 99, 103, 105, 108, 114, 120, 125, 126, 131, 140], "mkbitvector": [2, 43, 49, 51, 69, 79, 86, 107, 108, 115], "uint64_t": [2, 8, 9, 24, 27, 39, 43, 45, 48, 49, 51, 58, 60, 76, 99, 105, 120, 131, 141], "cvc5_kind_bitvector_concat": 2, "concaten": [2, 3, 27, 48, 51, 53, 69, 74, 85, 91, 100, 122, 124, 131, 146], "cvc5_kind_bitvector_and": 2, "cvc5_kind_bitvector_or": 2, "cvc5_kind_bitvector_xor": [2, 107], "xor": [2, 3, 51, 53, 69, 74, 91, 92, 107], "cvc5_kind_bitvector_not": 2, "cvc5_kind_bitvector_nand": 2, "nand": [2, 3, 51, 53, 69, 74], "cvc5_kind_bitvector_nor": 2, "nor": [2, 3, 51, 53, 69, 74], "cvc5_kind_bitvector_xnor": 2, "xnor": [2, 3, 51, 53, 69, 74], "cvc5_kind_bitvector_comp": 2, "comparison": [2, 3, 27, 44, 48, 51, 53, 69, 74, 85, 91, 131], "cvc5_kind_bitvector_mult": [2, 108], "cvc5_kind_bitvector_add": [2, 107], "cvc5_kind_bitvector_sub": [2, 107], "cvc5_kind_bitvector_neg": 2, "complement": [2, 51, 69, 91, 101, 103, 131, 147], "cvc5_kind_bitvector_udiv": 2, "unsign": [2, 3, 51, 53, 57, 69, 74, 85, 91, 95, 108, 131], "truncat": [2, 51, 69], "toward": [2, 4, 51, 54, 69, 78, 95], "divisor": [2, 51, 69], "zero": [2, 3, 4, 8, 11, 27, 43, 48, 49, 51, 53, 54, 58, 60, 62, 63, 69, 74, 76, 78, 79, 85, 86, 91, 95, 99, 103, 105, 108, 109, 115, 120, 125, 126, 131, 132, 139, 140], "ones": [2, 3, 8, 11, 14, 31, 43, 45, 51, 53, 58, 60, 63, 69, 74, 76, 79, 82, 99, 105, 120, 131, 147], "cvc5_kind_bitvector_urem": 2, "remaind": [2, 8, 51, 69, 91, 95, 120, 140, 144], "from": [2, 3, 4, 7, 8, 9, 11, 13, 14, 15, 16, 17, 19, 22, 23, 24, 25, 26, 28, 30, 31, 33, 34, 37, 42, 43, 44, 45, 46, 47, 49, 51, 52, 53, 54, 57, 58, 59, 60, 62, 63, 65, 66, 68, 69, 70, 74, 76, 77, 78, 79, 80, 82, 83, 84, 85, 86, 95, 97, 99, 102, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 120, 121, 122, 123, 124, 125, 126, 127, 130, 131, 134, 136, 140, 141, 142, 144, 145, 146, 147, 150], "dividend": [2, 51, 69], "cvc5_kind_bitvector_sdiv": 2, "sign": [2, 3, 27, 43, 48, 49, 51, 53, 69, 74, 79, 85, 86, 91, 95, 131, 141], "cvc5_kind_bitvector_srem": 2, "where": [2, 3, 7, 11, 14, 22, 24, 27, 31, 43, 45, 48, 49, 51, 52, 53, 62, 63, 69, 70, 74, 79, 85, 86, 93, 108, 131, 134, 139, 140, 142, 143, 144, 145, 146, 148], "cvc5_kind_bitvector_smod": 2, "cvc5_kind_bitvector_shl": 2, "shift": [2, 3, 51, 53, 69, 74, 91, 131, 140], "cvc5_kind_bitvector_lshr": 2, "right": [2, 3, 8, 51, 53, 58, 60, 69, 74, 76, 91, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 131, 142, 145, 146, 147, 150], "cvc5_kind_bitvector_ashr": 2, "cvc5_kind_bitvector_ult": 2, "cvc5_kind_bitvector_ul": 2, "cvc5_kind_bitvector_ugt": 2, "cvc5_kind_bitvector_ug": 2, "cvc5_kind_bitvector_slt": [2, 108], "cvc5_kind_bitvector_sl": 2, "cvc5_kind_bitvector_sgt": [2, 108], "cvc5_kind_bitvector_sg": 2, "cvc5_kind_bitvector_ultbv": 2, "cvc5_kind_bitvector_sltbv": 2, "cvc5_kind_bitvector_it": 2, "regular": [2, 3, 5, 9, 23, 35, 39, 43, 44, 49, 51, 53, 55, 69, 74, 79, 80, 81, 86, 91, 97, 124, 131, 132, 140], "ITE": [2, 3, 51, 53, 69, 74, 107, 125, 126, 131], "condit": [2, 3, 11, 43, 48, 51, 53, 69, 74, 79, 85, 126, 131, 136], "cvc5_kind_bitvector_redor": 2, "redor": [2, 3, 51, 53, 69, 74], "cvc5_kind_bitvector_redand": 2, "redand": [2, 3, 51, 53, 69, 74], "cvc5_kind_bitvector_nego": 2, "overflow": [2, 3, 51, 53, 69, 74, 108], "detect": [2, 3, 51, 53, 69, 74], "cvc5_kind_bitvector_uaddo": 2, "cvc5_kind_bitvector_saddo": 2, "cvc5_kind_bitvector_umulo": 2, "cvc5_kind_bitvector_smulo": 2, "cvc5_kind_bitvector_usubo": 2, "cvc5_kind_bitvector_ssubo": 2, "cvc5_kind_bitvector_sdivo": 2, "cvc5_kind_bitvector_extract": [2, 20, 28, 107, 113], "extract": [2, 3, 51, 53, 69, 74, 91, 93, 100, 103, 107, 109, 111, 130, 131, 140, 146], "index": [2, 3, 5, 13, 14, 20, 23, 27, 30, 31, 38, 43, 44, 48, 49, 51, 53, 55, 62, 63, 69, 71, 74, 79, 80, 81, 85, 86, 100, 103, 108, 129, 130, 131, 140, 143, 146], "lower": [2, 3, 27, 48, 51, 53, 69, 74, 85, 103, 131], "cvc5_kind_bitvector_repeat": [2, 28], "repeat": [2, 3, 51, 53, 69, 74, 131], "number": [2, 3, 4, 9, 11, 13, 14, 16, 18, 20, 21, 23, 27, 28, 30, 31, 33, 38, 43, 44, 48, 49, 51, 53, 54, 57, 59, 62, 63, 65, 69, 71, 74, 78, 79, 85, 86, 89, 91, 92, 93, 94, 95, 98, 102, 108, 115, 125, 126, 129, 131, 139, 140, 142, 143, 149, 150], "time": [2, 3, 6, 8, 11, 43, 51, 53, 56, 58, 60, 69, 74, 76, 79, 87, 91, 99, 105, 120, 131, 132, 140, 144], "given": [2, 3, 5, 6, 7, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 27, 30, 31, 32, 33, 34, 36, 37, 38, 42, 43, 44, 45, 46, 47, 48, 49, 51, 52, 53, 54, 55, 56, 62, 63, 64, 68, 69, 70, 74, 79, 81, 83, 85, 86, 87, 89, 90, 91, 92, 93, 94, 95, 96, 100, 102, 103, 107, 109, 117, 125, 126, 130, 131, 132, 140, 141, 142, 143, 145], "cvc5_kind_bitvector_zero_extend": [2, 28], "extens": [2, 51, 69, 121, 129, 131, 142, 143, 145, 147, 150], "extend": [2, 3, 51, 53, 69, 74, 131, 136, 140, 150], "cvc5_kind_bitvector_sign_extend": [2, 28], "cvc5_kind_bitvector_rotate_left": [2, 28], "rotat": [2, 3, 51, 53, 69, 74, 91], "cvc5_kind_bitvector_rotate_right": [2, 28], "cvc5_kind_int_to_bitvector": [2, 28], "convers": [2, 3, 51, 53, 69, 74, 95, 131, 148], "cvc5_kind_bitvector_to_nat": 2, "cvc5_kind_bitvector_from_bool": 2, "list": [2, 3, 7, 8, 9, 10, 11, 14, 23, 27, 31, 39, 43, 44, 46, 48, 49, 51, 52, 53, 58, 60, 63, 69, 74, 76, 79, 80, 83, 85, 86, 89, 92, 93, 94, 96, 98, 99, 102, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 131, 134, 142, 143, 147, 150], "cvc5_kind_bitvector_bit": 2, "retriev": [2, 8, 9, 11, 13, 14, 17, 19, 21, 27, 28, 30, 31, 34, 37, 39, 41, 43, 45, 48, 51, 57, 58, 62, 63, 66, 68, 69, 73, 76, 85, 95, 102, 103, 125, 126, 137], "cvc5_kind_const_finite_field": 2, "finit": [2, 5, 11, 13, 23, 27, 30, 43, 44, 48, 49, 51, 55, 62, 69, 79, 80, 81, 85, 86, 97, 111, 121, 130, 138, 146, 149], "field": [2, 5, 23, 27, 43, 44, 48, 49, 51, 55, 69, 79, 80, 81, 85, 86, 93, 97, 111, 130, 138, 140, 143, 149], "mkfinitefieldelem": [2, 43, 49, 51, 69, 79, 86, 114, 144], "cvc5_kind_finite_field_neg": 2, "invers": [2, 51, 69, 94, 131], "cvc5_kind_finite_field_add": [2, 114], "cvc5_kind_finite_field_bitsum": 2, "bitsum": [2, 51, 69, 131, 144], "2y": [2, 51, 69], "4z": [2, 51, 69], "cvc5_kind_finite_field_mult": [2, 114], "cvc5_kind_const_floatingpoint": 2, "float": [2, 4, 5, 8, 23, 27, 43, 44, 48, 49, 51, 54, 55, 58, 60, 69, 76, 78, 79, 80, 81, 85, 86, 89, 92, 97, 99, 105, 111, 120, 138, 140, 141, 149], "ieee": [2, 3, 4, 43, 49, 51, 53, 54, 69, 79, 86, 95, 115, 130, 138], "754": [2, 4, 43, 49, 51, 54, 69, 79, 86, 115, 130, 138], "represent": [2, 3, 4, 5, 6, 7, 8, 11, 12, 13, 14, 15, 16, 17, 18, 20, 22, 23, 24, 27, 29, 30, 31, 32, 33, 34, 36, 38, 39, 42, 43, 44, 45, 47, 48, 49, 51, 53, 54, 55, 58, 60, 61, 64, 65, 69, 74, 76, 79, 85, 86, 92, 95, 99, 100, 105, 120, 131, 141], "mkfloatingpoint": [2, 43, 49, 51, 69, 79, 86, 115], "cvc5_kind_const_roundingmod": 2, "roundingmod": [2, 43, 44, 48, 49, 50, 51, 59, 69, 75, 79, 80, 86, 115, 140], "mkroundingmod": [2, 43, 49, 51, 69, 79, 86, 115], "cvc5_kind_floatingpoint_fp": 2, "liter": [2, 3, 7, 11, 43, 51, 52, 53, 69, 70, 74, 79, 86, 92, 131, 132, 145], "tripl": [2, 51, 69], "expon": [2, 3, 5, 23, 27, 43, 44, 48, 49, 51, 53, 55, 69, 74, 79, 80, 81, 85, 86, 95], "significand": [2, 5, 23, 27, 43, 44, 48, 49, 51, 55, 69, 79, 80, 81, 85, 86, 95], "cvc5_kind_floatingpoint_eq": 2, "cvc5_kind_floatingpoint_ab": 2, "cvc5_kind_floatingpoint_neg": 2, "cvc5_kind_floatingpoint_add": [2, 115], "cvc5_kind_floatingpoint_sub": 2, "sutract": [2, 51, 69], "cvc5_kind_floatingpoint_mult": [2, 115], "multipli": [2, 3, 8, 51, 53, 58, 60, 69, 74, 76, 95, 99, 105, 120], "cvc5_kind_floatingpoint_div": 2, "cvc5_kind_floatingpoint_fma": [2, 115], "fuse": [2, 51, 69, 95, 115], "add": [2, 3, 8, 10, 11, 16, 18, 32, 33, 36, 38, 40, 43, 49, 51, 53, 58, 60, 64, 65, 67, 69, 71, 72, 74, 76, 79, 86, 88, 89, 95, 96, 99, 101, 102, 105, 108, 109, 115, 120, 124, 125, 126, 127, 131, 132, 144], "4": [2, 3, 4, 8, 51, 53, 54, 58, 60, 69, 74, 76, 89, 91, 94, 95, 99, 100, 103, 105, 106, 108, 115, 120, 130, 131, 132, 140, 141, 142, 143, 147], "cvc5_kind_floatingpoint_sqrt": 2, "cvc5_kind_floatingpoint_rem": 2, "cvc5_kind_floatingpoint_rti": 2, "round": [2, 4, 5, 23, 27, 43, 44, 48, 49, 51, 54, 55, 69, 78, 79, 80, 81, 85, 86, 97, 108, 115, 131], "cvc5_kind_floatingpoint_min": 2, "minimum": [2, 3, 9, 39, 51, 53, 69, 74, 94, 95, 130, 131], "cvc5_kind_floatingpoint_max": 2, "maximum": [2, 3, 9, 39, 51, 53, 69, 74, 95, 117, 130, 131], "cvc5_kind_floatingpoint_leq": 2, "cvc5_kind_floatingpoint_lt": [2, 115], "cvc5_kind_floatingpoint_geq": 2, "cvc5_kind_floatingpoint_gt": 2, "cvc5_kind_floatingpoint_is_norm": [2, 115], "normal": [2, 3, 11, 51, 53, 69, 74, 95, 115, 131], "tester": [2, 3, 14, 23, 31, 43, 44, 49, 51, 53, 63, 69, 74, 79, 80, 86, 93, 97, 110, 131, 143, 147], "cvc5_kind_floatingpoint_is_subnorm": 2, "sub": [2, 3, 8, 27, 48, 51, 53, 58, 60, 69, 74, 76, 85, 89, 99, 105, 117, 120, 125, 131, 146], "cvc5_kind_floatingpoint_is_zero": 2, "cvc5_kind_floatingpoint_is_inf": 2, "infinit": [2, 4, 51, 54, 69, 78, 93, 131, 146, 147], "cvc5_kind_floatingpoint_is_nan": 2, "nan": [2, 27, 43, 48, 49, 51, 69, 79, 86, 95, 115], "cvc5_kind_floatingpoint_is_neg": 2, "cvc5_kind_floatingpoint_is_po": 2, "cvc5_kind_floatingpoint_to_fp_from_ieee_bv": [2, 28], "cvc5_kind_floatingpoint_to_fp_from_fp": [2, 28], "cvc5_kind_floatingpoint_to_fp_from_r": [2, 28], "cvc5_kind_floatingpoint_to_fp_from_sbv": [2, 28], "cvc5_kind_floatingpoint_to_fp_from_ubv": [2, 28], "cvc5_kind_floatingpoint_to_ubv": [2, 28, 115], "cvc5_kind_floatingpoint_to_sbv": [2, 28], "cvc5_kind_floatingpoint_to_r": [2, 115], "cvc5_kind_select": [2, 108], "arrai": [2, 3, 5, 8, 10, 11, 13, 21, 23, 24, 27, 43, 44, 48, 49, 51, 53, 55, 57, 58, 60, 69, 74, 76, 79, 80, 81, 85, 86, 92, 95, 97, 98, 99, 101, 105, 111, 120, 140, 141, 149], "select": [2, 3, 4, 11, 43, 51, 53, 54, 63, 69, 74, 78, 79, 90, 108, 131, 132, 139, 140, 143, 147], "cvc5_kind_stor": [2, 108], "store": [2, 3, 11, 21, 27, 35, 43, 45, 48, 49, 51, 53, 69, 74, 79, 85, 86, 90, 108, 131, 141], "cvc5_kind_const_arrai": 2, "cvc5_kind_eq_rang": 2, "rang": [2, 3, 43, 49, 51, 53, 69, 74, 90, 92, 93, 101, 103, 108, 110, 115, 124, 125, 126, 131, 140], "j": [2, 3, 11, 43, 51, 53, 69, 74, 79, 90, 93, 109, 110, 130, 138, 143, 146], "leq": [2, 3, 8, 51, 53, 58, 60, 69, 74, 76, 89, 95, 99, 105, 109, 117, 120, 125, 126, 142], "inclus": [2, 3, 45, 51, 53, 69, 74, 82, 131], "current": [2, 3, 7, 8, 9, 11, 19, 37, 39, 43, 49, 51, 52, 53, 58, 60, 68, 69, 70, 74, 76, 79, 85, 86, 97, 99, 102, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 131, 132, 133, 139, 141, 142, 144, 146, 147, 149, 150], "requir": [2, 3, 6, 7, 8, 11, 14, 20, 21, 27, 30, 31, 37, 38, 41, 43, 48, 51, 52, 53, 56, 58, 60, 63, 68, 69, 70, 71, 74, 76, 79, 87, 115, 125, 126, 130, 131, 139, 145], "enabl": [2, 8, 11, 43, 51, 58, 60, 69, 76, 79, 99, 102, 105, 120, 130, 131, 132, 143, 150], "exp": [2, 3, 6, 43, 49, 51, 53, 56, 69, 74, 79, 86, 95, 121, 122, 124, 131, 147, 150], "cvc5_kind_apply_constructor": [2, 14, 110], "datatypeconstructor": [2, 30, 34, 50, 51, 59, 66, 69, 75, 110], "getterm": [2, 31, 34, 51, 63, 66, 69, 110, 143], "selector": [2, 3, 13, 14, 17, 23, 30, 31, 32, 34, 43, 44, 49, 51, 53, 62, 63, 64, 66, 69, 74, 79, 80, 86, 93, 110, 131, 140, 143, 147], "cvc5_kind_apply_selector": [2, 17, 110], "datatypeselector": [2, 14, 30, 31, 50, 51, 59, 69, 75, 110], "codomain": [2, 5, 11, 17, 23, 32, 34, 43, 44, 49, 51, 55, 64, 66, 69, 79, 80, 81, 86, 140], "misappli": [2, 51, 69], "cvc5_kind_apply_test": [2, 14, 110], "gettesterterm": [2, 31, 51, 63, 69, 110, 143], "belong": [2, 7, 51, 52, 69, 145], "cvc5_kind_apply_updat": [2, 17, 110], "updat": [2, 3, 17, 23, 34, 44, 51, 53, 66, 69, 74, 80, 90, 100, 110, 130, 131, 146, 148], "getupdaterterm": [2, 34, 51, 66, 69, 110, 143], "cvc5_kind_match": 2, "smt": [2, 3, 4, 8, 11, 14, 16, 23, 25, 31, 33, 43, 44, 46, 49, 51, 53, 54, 58, 60, 63, 65, 69, 74, 76, 78, 79, 80, 83, 86, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 120, 121, 122, 123, 124, 127, 129, 130, 133, 134, 138, 139, 140, 142, 143, 144, 145, 146, 147, 148, 149, 150], "libv2": [2, 8, 51, 58, 60, 69, 76, 99, 104, 105, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 120, 121, 122, 123, 124, 127, 131, 142, 147, 150], "l": [2, 3, 51, 53, 59, 69, 74, 93, 100, 103, 130, 131, 138, 140, 145, 148], "con": [2, 14, 31, 51, 63, 69, 93, 110, 131, 143], "h": [2, 3, 8, 51, 53, 58, 60, 69, 74, 76, 99, 103, 105, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 131, 142, 145, 147, 150], "nil": [2, 11, 14, 31, 43, 49, 51, 63, 69, 79, 86, 93, 110, 143, 145], "ast": [2, 27, 48, 51, 69, 85, 89, 90, 91, 92, 93, 94, 95, 98, 100, 101, 102, 103, 131], "match_bind_cas": [2, 51, 69], "match_cas": [2, 51, 69], "nullari": [2, 14, 22, 30, 31, 33, 36, 38, 41, 42, 47, 48, 51, 63, 69, 77], "pattern": [2, 3, 51, 53, 69, 74, 97, 131], "cover": [2, 39, 51, 69, 130, 131], "least": [2, 4, 11, 43, 51, 54, 69, 78, 79, 92, 123, 131, 147], "catch": [2, 51, 69, 112], "includ": [2, 3, 7, 8, 9, 11, 14, 31, 35, 39, 43, 45, 48, 51, 52, 53, 58, 60, 63, 69, 74, 76, 79, 82, 92, 98, 99, 101, 105, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 131, 132, 133, 140, 141, 142, 143, 147, 150], "cvc5_kind_match_cas": 2, "apply_constructor": [2, 31, 51, 63, 69, 110, 143], "against": [2, 51, 69], "evalu": [2, 3, 8, 51, 53, 58, 60, 69, 74, 76, 91, 99, 102, 105, 110, 120, 131, 143], "cvc5_kind_match_bind_cas": 2, "binder": [2, 3, 43, 49, 51, 53, 69, 74, 79, 86, 131, 140], "contain": [2, 3, 7, 11, 23, 27, 37, 43, 44, 48, 49, 51, 52, 53, 69, 70, 74, 79, 80, 85, 86, 92, 93, 98, 102, 103, 130, 131, 133, 134, 136, 140, 146, 147], "appli": [2, 3, 7, 11, 14, 23, 27, 31, 43, 44, 48, 51, 52, 53, 63, 69, 70, 74, 79, 80, 85, 92, 93, 102, 110, 130, 131, 139, 143], "set": [2, 3, 5, 7, 8, 9, 11, 18, 19, 23, 27, 36, 37, 39, 43, 44, 45, 46, 48, 49, 51, 52, 53, 55, 58, 60, 67, 68, 69, 70, 74, 76, 79, 80, 81, 83, 85, 86, 92, 93, 95, 97, 99, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 124, 125, 126, 127, 130, 132, 138, 139, 140, 141, 142, 143, 144, 145, 146, 149, 150], "cvc5_kind_tuple_project": [2, 28], "tupl": [2, 5, 13, 23, 27, 30, 43, 44, 48, 49, 51, 55, 62, 69, 79, 80, 81, 85, 86, 89, 91, 92, 93, 94, 103, 121, 131, 147], "project": [2, 8, 9, 15, 19, 24, 25, 26, 28, 51, 58, 60, 69, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 131, 142, 143, 147, 150], "take": [2, 3, 11, 23, 27, 44, 48, 51, 53, 69, 74, 80, 85, 95, 101, 130, 131, 139], "obtain": [2, 3, 8, 9, 11, 24, 39, 43, 45, 51, 53, 58, 60, 69, 74, 76, 79, 82, 99, 100, 103, 105, 120, 130, 140, 141, 146, 148], "compon": [2, 3, 7, 8, 11, 43, 49, 51, 52, 53, 58, 60, 69, 74, 76, 79, 86, 88, 99, 105, 120, 139, 140], "10": [2, 8, 27, 43, 48, 49, 51, 58, 60, 69, 76, 79, 85, 86, 89, 90, 91, 93, 94, 95, 99, 102, 103, 105, 114, 119, 120, 126, 131, 138], "20": [2, 8, 51, 69, 93, 95, 120, 130, 138], "30": [2, 51, 69, 102, 113, 131], "40": [2, 51, 69], "yield": [2, 51, 69], "cvc5_kind_nullable_lift": 2, "lift": [2, 3, 43, 49, 51, 53, 69, 74, 79, 86, 131], "nullabl": [2, 5, 23, 43, 44, 49, 51, 55, 69, 79, 80, 81, 86], "built": [2, 8, 51, 58, 60, 69, 76, 89, 91, 94, 99, 105, 120, 130, 145], "mknullablelift": [2, 43, 49, 51, 69, 79, 86], "cvc5_kind_sep_nil": 2, "separ": [2, 11, 43, 49, 51, 69, 79, 86, 88, 92, 117, 125, 126, 138, 140, 149], "mksepnil": [2, 43, 49, 51, 69, 79, 86, 145], "cvc5_kind_sep_emp": 2, "empti": [2, 3, 9, 11, 19, 22, 28, 37, 42, 43, 45, 47, 49, 51, 53, 68, 69, 74, 77, 79, 86, 93, 100, 101, 106, 121, 122, 123, 131, 140, 142, 145, 146, 147], "heap": [2, 11, 43, 51, 69, 79, 131, 145], "mksepemp": [2, 43, 49, 51, 69, 79, 86, 145], "cvc5_kind_sep_pto": 2, "relat": [2, 3, 11, 23, 43, 44, 51, 53, 69, 74, 79, 80, 97, 111, 126, 129, 131, 138, 140, 145, 149], "denot": [2, 3, 5, 8, 9, 23, 43, 44, 49, 51, 53, 55, 58, 60, 69, 74, 76, 79, 80, 81, 86, 99, 105, 120, 121, 140, 143, 145, 146], "locat": [2, 11, 43, 51, 69, 79, 130, 145], "data": [2, 10, 11, 27, 43, 48, 51, 69, 79, 85, 138, 143, 145], "cvc5_kind_sep_star": 2, "star": [2, 3, 51, 53, 69, 74, 103, 124, 145], "child": [2, 5, 27, 43, 48, 49, 51, 55, 69, 79, 81, 85, 86, 109], "hold": [2, 3, 9, 24, 27, 39, 45, 48, 51, 53, 69, 74, 85, 92, 102, 108, 123, 131, 132, 136, 147], "disjoint": [2, 51, 69, 106, 121, 140, 142, 145], "cvc5_kind_sep_wand": 2, "magic": [2, 51, 69, 145], "wand": [2, 51, 69, 145], "antecend": [2, 51, 69], "conclus": [2, 3, 21, 41, 51, 53, 69, 73, 74, 131], "anteced": [2, 51, 69], "cvc5_kind_set_empti": 2, "mkemptyset": [2, 43, 49, 51, 69, 79, 86, 121, 123, 147], "cvc5_kind_set_union": [2, 121, 123], "union": [2, 3, 9, 27, 48, 51, 53, 69, 74, 85, 93, 101, 103, 106, 121, 123, 124, 140, 142, 145, 147], "cvc5_kind_set_int": [2, 121, 123], "intersect": [2, 3, 51, 53, 69, 74, 101, 103, 106, 121, 123, 131, 142, 147], "cvc5_kind_set_minu": 2, "cvc5_kind_set_subset": [2, 121, 123], "subset": [2, 3, 7, 8, 11, 43, 51, 52, 53, 58, 60, 69, 70, 74, 76, 79, 99, 101, 102, 105, 120, 121, 123, 131, 147], "determin": [2, 3, 7, 11, 13, 14, 16, 19, 20, 22, 23, 24, 27, 29, 30, 31, 33, 36, 37, 38, 41, 42, 43, 44, 45, 46, 47, 48, 49, 51, 52, 53, 62, 63, 68, 69, 70, 74, 77, 79, 80, 84, 86, 100, 102, 130, 131], "cvc5_kind_set_memb": [2, 121, 123], "membership": [2, 3, 51, 53, 69, 74, 103, 131, 142, 147], "member": [2, 3, 9, 10, 39, 51, 53, 69, 74, 100, 101, 121, 123, 140, 142, 147], "cvc5_kind_set_singleton": [2, 123], "singleton": [2, 3, 27, 48, 51, 53, 69, 74, 85, 100, 101, 123, 147], "construct": [2, 3, 8, 11, 12, 13, 14, 15, 16, 17, 19, 20, 23, 25, 27, 29, 30, 31, 32, 33, 34, 37, 38, 43, 44, 46, 48, 49, 51, 53, 57, 58, 60, 61, 62, 63, 64, 65, 66, 68, 69, 71, 74, 76, 79, 80, 83, 85, 86, 99, 105, 109, 110, 111, 118, 119, 120, 127, 131, 144], "paramet": [2, 3, 4, 5, 6, 7, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 51, 52, 53, 54, 55, 56, 57, 61, 62, 63, 64, 65, 67, 68, 69, 71, 72, 79, 80, 81, 82, 85, 86, 102, 108, 110, 125, 126, 131, 143], "cvc5_kind_set_insert": 2, "insert": [2, 3, 51, 53, 69, 74, 102, 125, 126, 130, 147], "cvc5_kind_set_card": 2, "cvc5_kind_set_compl": 2, "respect": [2, 3, 11, 27, 39, 43, 48, 51, 53, 69, 74, 79, 131, 139, 145, 149], "cvc5_kind_set_univers": [2, 27], "mkuniverseset": [2, 43, 49, 51, 69, 79, 86, 121, 147], "set_univers": [2, 48, 51, 69, 85], "theori": [2, 3, 4, 6, 7, 10, 11, 23, 27, 40, 44, 48, 51, 52, 53, 54, 56, 69, 70, 72, 74, 80, 85, 87, 97, 111, 129, 132, 133, 134, 136, 138, 139, 141], "issetvalu": [2, 27, 48, 51, 69, 85], "cvc5_kind_set_comprehens": 2, "specifi": [2, 3, 4, 7, 10, 11, 13, 14, 17, 30, 31, 34, 40, 43, 51, 52, 53, 54, 62, 63, 66, 69, 72, 74, 79, 92, 110, 130, 131, 134, 150], "x_1": [2, 3, 11, 43, 51, 53, 69, 74, 79], "x_n": [2, 3, 51, 53, 69, 74, 79], "p": [2, 3, 11, 41, 43, 48, 51, 53, 69, 74, 79, 92, 93, 98, 102, 109, 127, 131, 132, 138, 144], "abov": [2, 3, 7, 8, 11, 14, 27, 31, 39, 43, 48, 51, 52, 53, 58, 60, 63, 69, 70, 74, 76, 79, 88, 99, 105, 107, 118, 119, 120, 125, 126, 130, 131, 143, 147], "wedg": [2, 3, 8, 11, 43, 51, 53, 58, 60, 69, 74, 76, 79, 99, 105], "leftrightarrow": [2, 3, 51, 53, 69, 74], "cvc5_kind_set_choos": 2, "choos": [2, 3, 8, 51, 53, 58, 60, 69, 74, 76, 99, 105, 120, 130, 131, 140], "determinist": [2, 51, 69, 139], "cvc5_kind_set_is_empti": 2, "cvc5_kind_set_is_singleton": 2, "cvc5_kind_set_map": 2, "map": [2, 3, 11, 23, 24, 27, 37, 43, 44, 45, 46, 48, 51, 53, 69, 74, 79, 80, 82, 83, 85, 92, 140, 141], "s_1": [2, 3, 51, 53, 69, 74], "s_2": [2, 3, 51, 53, 69, 74], "cvc5_kind_set_filt": 2, "filter": [2, 3, 7, 51, 52, 53, 69, 70, 74, 131], "bag": [2, 5, 23, 43, 44, 49, 51, 55, 69, 79, 80, 81, 86, 97, 111, 140, 149], "cvc5_kind_set_al": 2, "check": [2, 3, 6, 8, 10, 11, 40, 43, 51, 53, 56, 58, 60, 69, 72, 74, 76, 79, 87, 93, 95, 99, 101, 102, 103, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 120, 121, 122, 123, 124, 125, 126, 127, 130, 131, 132, 133, 134, 136, 138, 139, 141, 142, 143, 144, 145, 146, 147, 150], "whether": [2, 8, 9, 11, 26, 39, 43, 45, 47, 49, 51, 58, 60, 69, 76, 79, 84, 86, 92, 95, 99, 102, 105, 108, 116, 120, 131, 141, 143], "iff": [2, 3, 20, 27, 38, 48, 51, 53, 69, 71, 74, 79, 80, 85, 143, 145], "cvc5_kind_set_som": 2, "some": [2, 3, 7, 8, 11, 27, 39, 41, 43, 48, 49, 51, 52, 53, 58, 60, 69, 70, 73, 74, 76, 79, 85, 86, 97, 99, 105, 108, 109, 117, 120, 130, 131, 139, 140, 141, 143, 146, 148], "cvc5_kind_set_fold": 2, "fold": [2, 51, 69, 135, 140], "combin": [2, 3, 51, 53, 69, 74, 111, 121, 129, 131, 140, 149], "singl": [2, 3, 16, 33, 45, 51, 53, 65, 69, 74, 82, 92, 95, 98, 101, 103, 109, 115, 130, 131, 139, 140, 146], "start": [2, 3, 8, 11, 43, 51, 53, 58, 60, 62, 63, 69, 74, 76, 79, 99, 100, 103, 105, 120, 125, 131, 132, 133, 134, 136, 145, 146], "initi": [2, 11, 19, 24, 37, 43, 51, 68, 69, 79, 93, 131, 132, 140], "cvc5_kind_relation_join": [2, 121], "join": [2, 51, 69, 121, 147], "cvc5_kind_relation_table_join": 2, "tabl": [2, 23, 25, 37, 44, 46, 51, 69, 80, 83, 92, 119, 140, 142, 143, 144, 145, 146, 147], "rel": [2, 51, 69, 121, 131, 140, 147], "_join": [2, 51, 69], "m_1": [2, 51, 69, 142], "n_1": [2, 51, 69], "dot": [2, 3, 7, 51, 52, 53, 69, 70, 74, 79, 85, 131, 137], "m_k": [2, 51, 69], "n_k": [2, 51, 69], "natur": [2, 3, 51, 53, 69, 74, 142, 150], "product": [2, 51, 59, 69, 91, 94, 102, 129, 131, 147], "cvc5_kind_relation_product": 2, "cartesian": [2, 51, 69], "cvc5_kind_relation_transpos": [2, 121], "transpos": [2, 51, 69, 121, 147], "cvc5_kind_relation_tclosur": [2, 121], "transit": [2, 3, 11, 43, 51, 53, 69, 74, 79, 121, 126, 131, 147], "closur": [2, 51, 69, 121, 147], "cvc5_kind_relation_join_imag": 2, "imag": [2, 51, 69], "cvc5_kind_relation_iden": 2, "ident": [2, 3, 20, 27, 38, 51, 53, 69, 74, 92, 143], "cvc5_kind_relation_group": 2, "group": [2, 9, 15, 19, 24, 25, 26, 28, 51, 69, 131, 140], "partit": [2, 3, 51, 53, 69, 74, 131, 140], "have": [2, 3, 8, 11, 19, 23, 27, 37, 43, 44, 45, 46, 48, 49, 51, 53, 58, 60, 68, 69, 74, 76, 79, 83, 86, 88, 92, 93, 99, 102, 105, 106, 107, 120, 121, 130, 131, 140, 142, 143, 144, 145, 146, 147], "part": [2, 8, 11, 43, 46, 51, 58, 60, 69, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 131, 133, 139, 140, 141, 142, 146, 147, 150], "It": [2, 3, 8, 9, 10, 11, 18, 23, 35, 36, 39, 40, 43, 44, 45, 46, 51, 53, 58, 60, 67, 69, 72, 74, 75, 76, 80, 85, 91, 92, 93, 97, 99, 102, 105, 120, 129, 130, 131, 133, 135, 139, 143, 146, 148], "type": [2, 3, 7, 8, 9, 11, 14, 23, 24, 27, 30, 31, 32, 35, 39, 43, 44, 45, 48, 49, 51, 52, 53, 57, 58, 60, 63, 69, 74, 76, 79, 85, 86, 89, 92, 99, 102, 105, 107, 110, 112, 115, 120, 124, 131, 132, 138, 140, 141, 143, 145], "cvc5_kind_relation_aggreg": 2, "aggreg": [2, 51, 69], "aggr": [2, 51, 69], "t_1": [2, 3, 51, 53, 69, 74], "t_j": [2, 3, 51, 53, 69, 74], "cvc5_kind_relation_project": 2, "cvc5_kind_bag_empti": 2, "mkemptybag": [2, 43, 49, 51, 69, 79, 86, 106, 142], "cvc5_kind_bag_union_max": [2, 106], "max": [2, 3, 9, 51, 53, 69, 74, 92, 106, 125, 131, 140, 142], "cvc5_kind_bag_union_disjoint": [2, 106], "sum": [2, 3, 51, 53, 69, 74, 89, 91, 93, 94, 102, 109, 131, 140], "cvc5_kind_bag_inter_min": [2, 106], "min": [2, 9, 51, 69, 125, 131, 140, 142, 148], "cvc5_kind_bag_difference_subtract": 2, "cvc5_kind_bag_difference_remov": 2, "share": [2, 9, 11, 15, 19, 24, 25, 26, 28, 43, 48, 49, 51, 59, 69, 79, 86, 111, 131, 140], "cvc5_kind_bag_subbag": [2, 106], "cvc5_kind_bag_count": [2, 106], "cvc5_kind_bag_memb": 2, "cvc5_kind_bag_setof": 2, "setof": [2, 51, 69, 142], "elimin": [2, 3, 11, 43, 51, 53, 69, 74, 79, 131, 140, 142], "duplic": [2, 3, 23, 27, 44, 48, 51, 53, 69, 74, 80, 85, 142], "exactli": [2, 11, 43, 51, 69, 79], "cvc5_kind_bag_mak": [2, 106], "make": [2, 11, 13, 14, 16, 17, 18, 20, 21, 22, 23, 27, 43, 45, 51, 59, 69, 79, 88, 108, 113, 115, 122, 124, 130, 131, 142, 147], "cvc5_kind_bag_card": 2, "cvc5_kind_bag_choos": 2, "cvc5_kind_bag_map": 2, "cvc5_kind_bag_filt": 2, "subbag": [2, 51, 69, 106, 142], "cvc5_kind_bag_fold": 2, "cvc5_kind_bag_partit": 2, "r": [2, 3, 8, 42, 47, 51, 53, 69, 74, 92, 93, 102, 114, 115, 118, 120, 124, 130, 132, 140, 143, 144], "cvc5_kind_table_product": 2, "cross": [2, 51, 69, 131], "cvc5_kind_table_project": 2, "cvc5_kind_table_aggreg": 2, "cvc5_kind_table_join": 2, "cvc5_kind_table_group": 2, "cvc5_kind_string_concat": [2, 124], "concat": [2, 3, 51, 53, 69, 74, 91, 95, 100, 103, 122, 124, 131], "cvc5_kind_string_in_regexp": [2, 124], "reglan": [2, 23, 44, 51, 69, 80, 124, 148], "cvc5_kind_string_length": [2, 124], "length": [2, 3, 23, 44, 51, 53, 69, 74, 80, 100, 103, 122, 124, 125, 126, 131, 140, 146], "cvc5_kind_string_substr": 2, "substr": [2, 3, 51, 53, 69, 74, 103, 140, 148], "cvc5_kind_string_upd": 2, "replac": [2, 3, 23, 27, 43, 44, 46, 48, 51, 53, 69, 74, 79, 80, 85, 86, 100, 102, 103, 131, 140, 143, 146], "context": [2, 8, 11, 18, 19, 36, 37, 43, 51, 58, 60, 67, 68, 69, 76, 79, 89, 91, 92, 94, 95, 99, 102, 103, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 120, 121, 122, 123, 124, 125, 126, 127, 131, 142, 145, 147, 150], "otherwis": [2, 3, 11, 23, 25, 43, 44, 46, 51, 53, 69, 74, 79, 83, 85, 130, 131, 134, 140, 146, 148], "origin": [2, 3, 8, 43, 49, 51, 53, 58, 60, 69, 74, 76, 79, 86, 99, 105, 120, 131, 140], "preserv": [2, 51, 69], "strong": [2, 51, 69, 131], "cvc5_kind_string_charat": 2, "charact": [2, 3, 43, 49, 51, 53, 69, 74, 79, 86, 103, 131, 140, 141, 148], "cvc5_kind_string_contain": 2, "anoth": [2, 6, 8, 51, 56, 58, 60, 69, 76, 87, 99, 105, 107, 119, 120, 131, 139, 140], "alwai": [2, 3, 11, 43, 49, 51, 53, 69, 74, 79, 93, 101, 131, 141, 147], "cvc5_kind_string_indexof": 2, "after": [2, 3, 7, 11, 19, 21, 30, 31, 35, 37, 41, 43, 48, 51, 52, 53, 68, 69, 70, 73, 74, 79, 93, 105, 107, 110, 112, 118, 130, 131, 132, 139, 140, 141, 146], "cvc5_kind_string_indexof_r": 2, "cvc5_kind_string_replac": 2, "s_3": [2, 51, 69], "unmodifi": [2, 51, 69], "cvc5_kind_string_replace_al": 2, "occurr": [2, 3, 43, 51, 53, 69, 74, 79, 102, 140, 143, 146], "cvc5_kind_string_replace_r": 2, "cvc5_kind_string_replace_re_al": 2, "cvc5_kind_string_to_low": 2, "cvc5_kind_string_to_upp": 2, "cvc5_kind_string_rev": 2, "revers": [2, 3, 51, 53, 69, 74, 146, 148], "cvc5_kind_string_to_cod": 2, "code": [2, 3, 51, 53, 69, 74, 92, 103, 107, 108, 130, 131, 148], "cvc5_kind_string_from_cod": 2, "whose": [2, 3, 5, 7, 11, 14, 27, 31, 32, 43, 48, 49, 51, 52, 53, 55, 63, 64, 69, 70, 74, 79, 81, 85, 86, 131, 136, 140, 143, 145], "out": [2, 8, 29, 30, 31, 32, 33, 34, 35, 36, 38, 39, 42, 44, 45, 47, 48, 51, 52, 53, 54, 55, 56, 58, 60, 69, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 131, 132, 140, 142, 146, 147, 150], "cvc5_kind_string_lt": 2, "strictli": [2, 51, 69], "lexiograph": [2, 51, 69, 103], "cvc5_kind_string_leq": 2, "cvc5_kind_string_prefix": 2, "prefix": [2, 3, 30, 31, 48, 51, 53, 59, 69, 74, 89, 92, 103, 105, 130, 131, 140, 146], "s1": [2, 51, 69, 103, 124, 146], "cvc5_kind_string_suffix": 2, "suffix": [2, 3, 51, 53, 69, 74, 103, 146], "cvc5_kind_string_is_digit": 2, "digit": [2, 4, 51, 54, 69, 78, 140], "9": [2, 8, 51, 58, 59, 60, 69, 76, 99, 105, 120], "cvc5_kind_string_from_int": 2, "cvc5_kind_string_to_int": 2, "total": [2, 3, 51, 53, 69, 74, 131], "cvc5_kind_const_str": 2, "mkstring": [2, 43, 49, 51, 69, 79, 86, 106, 124, 142], "wstring": [2, 43, 48, 49, 51], "cvc5_kind_string_to_regexp": [2, 124], "regexp": [2, 43, 49, 51, 69, 80, 131], "cvc5_kind_regexp_concat": [2, 124], "cvc5_kind_regexp_union": [2, 124], "cvc5_kind_regexp_int": 2, "cvc5_kind_regexp_diff": 2, "cvc5_kind_regexp_star": [2, 124], "cvc5_kind_regexp_plu": 2, "cvc5_kind_regexp_opt": 2, "cvc5_kind_regexp_rang": [2, 124], "cvc5_kind_regexp_repeat": 2, "repetit": [2, 51, 69, 103], "cvc5_kind_regexp_loop": 2, "loop": [2, 3, 51, 53, 69, 74, 103, 108, 109, 110, 131], "cvc5_kind_regexp_non": 2, "none": [2, 3, 7, 11, 43, 49, 51, 52, 53, 69, 70, 74, 79, 86, 89, 90, 91, 92, 93, 94, 95, 98, 100, 101, 102, 103, 131, 132, 140], "mkregexpnon": [2, 43, 49, 51, 69, 79, 86], "cvc5_kind_regexp_al": 2, "mkregexpal": [2, 43, 49, 51, 69, 79, 86], "cvc5_kind_regexp_allchar": 2, "mkregexpallchar": [2, 43, 49, 51, 69, 79, 86], "cvc5_kind_regexp_compl": 2, "cvc5_kind_seq_concat": [2, 122], "sequenc": [2, 3, 5, 23, 27, 43, 44, 48, 49, 51, 53, 55, 69, 74, 79, 80, 81, 85, 86, 91, 97, 103, 111, 131, 140, 141, 149], "cvc5_kind_seq_length": [2, 122], "cvc5_kind_seq_extract": 2, "subsequ": [2, 51, 69, 100], "cvc5_kind_seq_upd": 2, "cvc5_kind_seq_at": 2, "cvc5_kind_seq_contain": 2, "cvc5_kind_seq_indexof": 2, "cvc5_kind_seq_replac": 2, "cvc5_kind_seq_replace_al": 2, "cvc5_kind_seq_rev": 2, "cvc5_kind_seq_prefix": 2, "cvc5_kind_seq_suffix": 2, "cvc5_kind_const_sequ": 2, "seq": [2, 3, 27, 48, 51, 53, 69, 74, 100, 103, 122, 131, 140, 146], "unit": [2, 3, 7, 27, 48, 51, 52, 53, 69, 70, 74, 85, 100, 103, 122, 131, 143, 146, 147], "c1": [2, 27, 48, 51, 69, 85, 131, 143, 145], "cn": [2, 3, 51, 53, 69, 74, 145], "c_1": [2, 3, 27, 48, 51, 53, 69, 74, 85], "c_n": [2, 3, 27, 48, 51, 53, 69, 74, 85], "getsequencevalu": [2, 27, 48, 51, 69, 85], "mkemptysequ": [2, 43, 49, 51, 69, 79, 86, 122, 146], "cvc5_kind_seq_unit": [2, 122], "cvc5_kind_seq_nth": 2, "nth": [2, 3, 51, 53, 69, 74, 146], "inst_pattern": [2, 51, 69], "cvc5_kind_exist": 2, "existenti": [2, 51, 69, 98, 131], "cvc5_kind_variable_list": [2, 121], "under": [2, 3, 8, 51, 53, 58, 60, 69, 74, 76, 99, 105, 120, 130, 131], "cvc5_kind_inst_pattern": 2, "cvc5_kind_inst_no_pattern": 2, "cvc5_kind_inst_pool": 2, "pool": [2, 11, 43, 51, 69, 79, 131], "annot": [2, 51, 69, 131, 132], "detail": [2, 3, 9, 11, 39, 43, 50, 51, 53, 59, 69, 74, 79, 95, 130, 134, 136, 147], "method": [2, 3, 7, 10, 11, 40, 43, 51, 52, 53, 57, 63, 65, 68, 69, 72, 74, 79, 84, 86, 92, 93, 102, 107, 125, 126, 131, 138], "declarepool": [2, 43, 51, 69, 79], "either": [2, 3, 8, 11, 19, 37, 43, 45, 51, 53, 58, 60, 62, 63, 68, 69, 74, 76, 79, 86, 99, 102, 105, 115, 120, 131, 139, 140, 141, 146], "inst_pool": [2, 11, 43, 51, 69], "q": [2, 3, 11, 43, 51, 53, 69, 74, 79, 89, 92, 98, 102, 122, 124, 131, 132, 140, 144], "occur": [2, 3, 7, 51, 52, 53, 69, 70, 74, 103, 131, 139, 140], "pair": [2, 7, 8, 27, 43, 48, 49, 51, 52, 58, 59, 60, 69, 70, 76, 79, 82, 85, 93, 99, 102, 105, 120, 143], "compris": [2, 51, 69], "cvc5_kind_inst_add_to_pool": 2, "instantanti": [2, 51, 69], "ad": [2, 3, 7, 8, 11, 18, 36, 43, 51, 52, 53, 58, 60, 67, 69, 70, 74, 76, 79, 88, 99, 102, 105, 120, 131, 132, 136, 140], "inst_add_to_pool": [2, 51, 69], "assum": [2, 3, 11, 43, 49, 51, 53, 69, 74, 79, 91, 92, 93, 102, 106, 107, 109, 113, 123, 131, 132, 133, 134, 140, 142, 143, 144, 145, 146, 147], "cvc5_kind_skolem_add_to_pool": 2, "skolem_add_to_pool": [2, 51, 69], "cvc5_kind_inst_attribut": 2, "attribut": [2, 11, 43, 46, 51, 69, 79, 83], "custom": [2, 51, 69, 102, 131, 135], "properti": [2, 3, 51, 53, 69, 74, 141], "ascrib": [2, 51, 69], "const_str": [2, 51, 69], "keyword": [2, 11, 43, 51, 69, 79, 102], "cvc5_kind_inst_pattern_list": 2, "inst_no_pattern": [2, 51, 69], "inst_attribut": [2, 51, 69], "cvc5_kind_last_kind": 2, "mark": [2, 5, 51, 55, 69, 81], "char": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 20, 22, 23, 24, 27, 28, 53, 57, 74, 106, 109, 118, 119, 120], "cvc5_kind_to_str": 2, "get": [2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 27, 29, 30, 31, 33, 34, 37, 38, 39, 40, 41, 43, 44, 45, 46, 48, 49, 51, 55, 58, 60, 61, 62, 63, 66, 71, 72, 76, 79, 80, 82, 83, 85, 86, 90, 99, 100, 102, 103, 105, 106, 108, 109, 110, 115, 118, 120, 121, 122, 123, 125, 126, 131, 140, 142, 147], "size_t": [2, 3, 5, 8, 9, 10, 11, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 27, 28, 30, 31, 33, 38, 41, 43, 44, 48, 49, 51, 53, 55, 109, 110, 120, 125, 126], "cvc5_kind_hash": 2, "hash": [2, 3, 5, 13, 14, 16, 17, 18, 20, 21, 22, 23, 27, 30, 31, 32, 33, 34, 36, 38, 41, 44, 48, 51, 53, 55, 80, 92], "captur": [3, 11, 53, 74], "reason": [3, 6, 11, 43, 53, 56, 74, 79, 87, 106, 121, 122, 123, 124, 130, 131, 132, 134, 137, 138, 140, 142, 147], "step": [3, 13, 14, 16, 17, 18, 20, 21, 22, 23, 27, 41, 53, 73, 74, 88, 110, 130, 131, 133, 134, 136], "perform": [3, 6, 8, 53, 56, 58, 60, 74, 76, 87, 99, 105, 120, 130, 131, 132, 133, 136, 144, 148], "sat": [3, 7, 8, 10, 11, 22, 40, 42, 43, 52, 53, 58, 59, 60, 70, 72, 74, 76, 77, 79, 93, 95, 99, 102, 105, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 120, 121, 122, 123, 124, 127, 132, 133, 134, 136, 138, 139, 142, 143, 144, 145, 146, 147, 150], "preprocessor": [3, 53, 74], "infer": [3, 11, 14, 31, 43, 53, 63, 74, 131, 140], "rule": [3, 7, 18, 21, 36, 41, 52, 53, 67, 70, 73, 74, 125, 131, 132, 133, 134, 136], "deriv": [3, 11, 43, 53, 57, 74, 79], "proof": [3, 7, 11, 21, 43, 50, 52, 53, 59, 70, 74, 75, 79, 102, 115, 129, 138, 140], "pertain": [3, 25, 46, 53, 74, 83], "rewrit": [3, 7, 21, 41, 43, 52, 53, 70, 73, 74, 79, 131, 132, 134, 136, 139], "These": [3, 4, 7, 46, 52, 53, 54, 74, 83, 89, 92, 94, 131, 140, 144], "identifi": [3, 11, 14, 24, 27, 31, 43, 45, 48, 49, 53, 63, 74, 79, 85, 92, 129, 131], "cvc5_proof_rule_theory_rewrit": [3, 21], "cvc5_proof_rule_dsl_rewrit": [3, 21], "analog": [3, 53, 74, 140], "node": [3, 48, 53, 74, 79, 92, 93, 131, 135, 143, 145], "present": [3, 53, 92, 147], "texttt": [3, 53, 74], "rulenam": [3, 53], "inferrulesc": [3, 53, 74], "varphi_1": [3, 53], "varphi_n": [3, 53], "mid": [3, 53, 74], "t_m": [3, 53], "psi": [3, 53], "varphi_i": [3, 53], "premis": [3, 21, 41, 53, 73, 74, 132, 133, 134], "children": [3, 5, 27, 38, 43, 48, 49, 53, 55, 71, 74, 79, 81, 85, 86, 92, 93, 98, 109, 131, 140, 143], "t_i": [3, 53, 74], "side": [3, 53, 74, 131, 136], "write": [3, 11, 29, 53, 57, 74, 105, 130, 131], "f1": [3, 7, 52, 53, 70, 145], "fn": [3, 43, 53, 145], "arg": [3, 8, 20, 28, 43, 49, 53, 58, 60, 74, 76, 79, 86, 89, 90, 91, 92, 93, 94, 99, 100, 101, 102, 103, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 131, 132, 133, 134, 142, 147, 150], "t1": [3, 53, 132, 133, 134, 136, 140, 143, 145], "omit": [3, 53, 74, 131], "sinc": [3, 53, 74, 110, 114, 145], "note": [3, 7, 8, 23, 43, 44, 49, 52, 53, 70, 74, 79, 80, 85, 89, 92, 95, 96, 106, 109, 110, 119, 120, 130, 131, 134, 136, 137, 138, 140, 143, 144, 148], "sometim": [3, 53], "instead": [3, 8, 14, 31, 43, 48, 49, 53, 58, 60, 63, 74, 76, 79, 86, 88, 99, 105, 106, 120, 131, 136, 147], "abus": [3, 53], "notat": [3, 53, 89, 92, 105], "interchang": [3, 53], "conceptu": [3, 7, 52, 53], "calculu": [3, 7, 52, 53, 70, 74, 131, 135, 136, 137], "target": [3, 7, 11, 43, 52, 53, 70, 79], "mean": [3, 53, 74, 131, 134, 136, 139, 140], "below": [3, 14, 31, 37, 53, 63, 69, 74, 89, 91, 94, 118, 130, 131, 134, 139, 142, 143, 144, 146, 147, 148], "design": [3, 53, 134], "about": [3, 9, 11, 28, 39, 43, 53, 74, 79, 93, 106, 121, 122, 123, 124, 131, 132, 140, 141, 142, 147], "among": [3, 53, 135], "thing": [3, 53, 135], "common": [3, 53, 131, 150], "substitut": [3, 7, 11, 23, 27, 43, 44, 48, 52, 53, 70, 74, 79, 80, 85, 102, 131, 132, 140], "intend": [3, 11, 14, 24, 31, 43, 45, 53, 63, 79, 129, 132], "translat": [3, 7, 52, 53, 70, 107, 108, 109, 110, 113, 117, 121, 122, 123, 124, 125, 126, 131, 147], "print": [3, 7, 8, 11, 29, 39, 43, 45, 46, 49, 52, 53, 57, 58, 60, 74, 76, 79, 83, 89, 90, 91, 92, 94, 95, 99, 100, 102, 103, 105, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 130, 132, 134, 136, 139, 141, 142, 147, 150], "format": [3, 4, 7, 11, 43, 49, 52, 53, 54, 70, 74, 78, 79, 86, 102, 105, 106, 107, 108, 109, 110, 121, 122, 123, 131, 142, 143, 147], "proofrul": [3, 41, 50, 59, 75, 137], "core": [3, 7, 8, 11, 43, 52, 53, 58, 59, 60, 70, 74, 76, 79, 97, 99, 102, 105, 120, 130, 131, 139, 141], "those": [3, 8, 11, 41, 43, 53, 58, 60, 73, 74, 76, 79, 93, 99, 105, 110, 120, 131], "categor": [3, 53], "statu": [3, 8, 53, 58, 60, 74, 76, 131, 144, 145, 146], "open": [3, 53, 74, 129, 130], "leaf": [3, 53, 74, 93], "scope": [3, 53, 74, 102, 131], "enclos": [3, 53, 150], "subproof": [3, 53, 131, 135], "assumpt": [3, 7, 11, 43, 52, 53, 70, 74, 79, 102, 106, 107, 109, 113, 116, 117, 122, 123, 124, 127, 131], "addition": [3, 11, 23, 27, 39, 43, 44, 48, 53, 79, 80, 130, 131, 148, 149], "done": [3, 14, 31, 37, 53, 63, 68, 74, 130, 131, 139], "macro_": [3, 53], "conveni": [3, 39, 53], "definit": [3, 11, 18, 36, 43, 53, 67, 74, 79, 131, 134, 140], "post": [3, 11, 43, 53, 79, 126, 131], "process": [3, 53, 74, 131, 132, 138, 139, 140], "cvc5_proof_rule_assum": 3, "inferrul": [3, 53, 74], "yet": [3, 15, 32, 43, 49, 53, 64, 74, 79, 86, 88, 107, 134, 136, 149], "justifi": [3, 53, 74], "sai": [3, 53, 74, 102, 140, 147], "cvc5_proof_rule_scop": 3, "f_1": [3, 53, 74], "f_n": [3, 53, 74], "land": [3, 53, 74], "neq": [3, 53, 74], "bot": [3, 53, 74], "textrm": [3, 53, 74], "dual": [3, 53, 74], "purpos": [3, 53, 74, 102, 140], "close": [3, 11, 53, 74, 131, 134], "word": [3, 53, 74, 91, 94, 95, 131, 147, 148], "thei": [3, 7, 8, 27, 39, 43, 48, 52, 53, 58, 60, 74, 76, 79, 99, 105, 120, 130, 131, 132, 139, 144], "conclud": [3, 53, 74], "cvc5_proof_rule_sub": 3, "builtin": [3, 53, 74, 89, 141], "id": [3, 27, 48, 49, 53, 62, 63, 74, 79, 85, 86, 140, 143], "circ": [3, 53, 74], "sigma_": [3, 53, 74], "cdot": [3, 53, 74, 85], "f_i": [3, 53, 74], "methodid": [3, 53, 74], "default": [3, 9, 10, 11, 24, 39, 40, 43, 44, 45, 48, 52, 53, 57, 70, 72, 74, 79, 80, 82, 85, 86, 90, 95, 101, 102, 130, 131, 135, 141, 144], "mapsto": [3, 53, 74, 131], "cvc5_proof_rule_macro_rewrit": 3, "idr": [3, 53, 74], "cvc5_proof_rule_evalu": 3, "evalutor": [3, 53, 74], "rw_evalu": [3, 53, 74], "cvc5_proof_rule_aci_norm": 3, "commut": [3, 53, 74, 115], "idempot": [3, 53, 74], "expr": [3, 53, 74, 131], "isacnorm": [3, 53, 74], "top": [3, 7, 8, 11, 43, 52, 53, 58, 60, 70, 74, 75, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 131, 132, 142, 143, 147, 150], "nary_term_util": [3, 53, 74], "str": [3, 8, 53, 57, 58, 60, 74, 76, 79, 86, 92, 95, 96, 99, 102, 105, 120, 124, 125, 126, 140, 148], "re": [3, 43, 48, 49, 53, 74, 79, 86, 103, 124, 130, 131, 140], "cvc5_proof_rule_macro_sr_eq_intro": 3, "rewritten": [3, 53, 74, 140], "proven": [3, 53, 74, 131], "ida": [3, 53, 74], "view": [3, 53, 74], "transform": [3, 53, 74], "standard": [3, 4, 18, 23, 27, 36, 44, 48, 53, 54, 67, 74, 80, 82, 95, 105, 118, 125, 126, 130, 131, 132, 134, 138, 143, 145, 148], "proof_check": [3, 53, 74], "cvc5_proof_rule_macro_sr_pred_intro": 3, "toorigin": [3, 53, 74], "hand": [3, 53, 74, 130], "fresh": [3, 11, 43, 49, 53, 74, 79, 89, 92, 105, 131], "purif": [3, 53, 74, 140], "furthermor": [3, 53, 74, 105, 140, 149], "escap": [3, 43, 49, 53, 74, 79, 86], "cvc5_proof_rule_macro_sr_pred_elim": 3, "macro_sr_eq_intro": [3, 53, 74, 102], "cvc5_proof_rule_macro_sr_pred_transform": 3, "equat": [3, 53, 74, 131, 144], "manner": [3, 13, 14, 16, 17, 18, 20, 21, 22, 23, 27, 39, 53, 74, 131], "macro_sr_pred_intro": [3, 53, 74], "cvc5_proof_rule_encode_eq_intro": 3, "extern": [3, 53, 74, 131, 132, 137, 139], "specif": [3, 6, 8, 9, 11, 15, 16, 27, 28, 32, 33, 39, 43, 53, 56, 58, 59, 60, 64, 65, 74, 76, 87, 93, 99, 105, 110, 120, 141], "rewritedbnodeconvert": [3, 53, 74], "postconvert": [3, 53, 74], "drop": [3, 53, 74], "treat": [3, 11, 43, 48, 53, 74, 79, 85, 134, 140], "refl": [3, 53, 74, 133, 134, 136], "appropri": [3, 35, 45, 53, 74, 92, 131], "dsl": [3, 53, 74, 131, 134], "t_n": [3, 53, 74], "proofrewriterul": [3, 41, 50, 75, 137], "rare": [3, 53, 74, 131], "g_1": [3, 53, 74], "g_n": [3, 53, 74], "sigma": [3, 53, 74], "g_i": [3, 53, 74], "account": [3, 53, 74], "possibl": [3, 7, 8, 9, 39, 45, 52, 53, 58, 60, 70, 74, 76, 99, 105, 120, 130, 131, 139, 147], "ldot": [3, 53, 74, 145], "x_i": [3, 11, 43, 53, 74, 79], "narysubstitut": [3, 53, 74], "place": [3, 53, 74, 89, 139], "contrast": [3, 7, 11, 27, 43, 48, 52, 53, 70, 74, 79, 139, 140], "dsl_rewrit": [3, 41, 53, 73, 74], "necessarili": [3, 7, 52, 53, 70, 74], "document": [3, 11, 43, 53, 74, 131], "cvc5_proof_rule_ite_eq": 3, "ite": [3, 53, 74, 107, 125, 126, 131, 132, 133, 134, 136, 142, 148], "t_2": [3, 53, 74], "cvc5_proof_rule_trust": 3, "trust": [3, 53, 74, 131, 134, 136], "tid": [3, 53, 74], "formal": [3, 8, 53, 58, 60, 74, 76, 99, 105, 120, 134, 138, 140], "justif": [3, 53, 74, 131, 134, 136], "cannot": [3, 9, 11, 14, 15, 19, 24, 25, 26, 27, 28, 31, 43, 48, 49, 53, 63, 74, 79, 86, 92, 106, 109], "entail": [3, 11, 43, 53, 74, 79, 107, 109, 113, 116, 117, 131], "cvc5_proof_rule_trust_theory_rewrit": 3, "rid": [3, 53, 74], "rw_rewrite_theory_pr": [3, 53, 74], "rw_rewrite_theory_post": [3, 53, 74], "rw_rewrite_eq_ext": [3, 53, 74], "checker": [3, 53, 74, 133, 134, 136], "replai": [3, 53, 74, 131], "correct": [3, 7, 52, 53, 70, 74, 131, 134], "static": [3, 8, 53, 58, 60, 74, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 131, 142, 147, 150], "involv": [3, 11, 53, 74, 132], "new": [3, 8, 11, 43, 45, 53, 58, 60, 74, 76, 79, 88, 92, 93, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 131, 138, 142, 147, 150], "guarante": [3, 11, 43, 53, 74, 79, 141], "consist": [3, 53, 74, 102, 110, 117, 150], "cvc5_proof_rule_sat_refut": 3, "refut": [3, 53, 74, 131, 134], "unsat": [3, 7, 8, 11, 21, 22, 41, 42, 43, 52, 53, 58, 59, 60, 70, 73, 74, 76, 77, 79, 93, 95, 99, 102, 105, 106, 107, 109, 112, 113, 114, 115, 117, 118, 120, 131, 133, 134, 136, 141, 142, 144, 145, 146, 147, 150], "cvc5_proof_rule_drat_refut": 3, "drat": [3, 53, 74, 131], "d": [3, 23, 44, 53, 59, 74, 80, 93, 103, 115, 131, 133, 134, 136, 138, 140, 142], "claus": [3, 7, 10, 40, 52, 53, 70, 72, 74, 131], "dimac": [3, 53, 74, 131], "file": [3, 8, 11, 25, 37, 43, 46, 49, 53, 57, 58, 59, 60, 68, 74, 76, 83, 97, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 131, 134, 135, 136, 141, 142, 143, 147, 150], "filenam": [3, 11, 37, 53, 57, 68, 74, 131, 141], "cvc5_proof_rule_sat_external_prov": 3, "prove": [3, 53, 74, 89, 90, 102, 107, 108, 109, 110, 113, 117, 123, 131, 134, 136], "input": [3, 7, 11, 12, 18, 19, 25, 29, 35, 36, 37, 39, 43, 46, 52, 53, 61, 67, 68, 70, 74, 79, 83, 104, 105, 111, 118, 119, 125, 126, 130, 131, 132, 134, 141, 143, 145, 147], "cvc5_proof_rule_resolut": 3, "resolut": [3, 53, 74, 131, 133, 136], "c_2": [3, 53, 74], "pol": [3, 53, 74], "OR": [3, 51, 53, 69, 74, 107, 115, 125], "could": [3, 47, 53, 74, 84, 102], "polar": [3, 53, 74], "pivot": [3, 53, 74, 131, 132], "resp": [3, 19, 37, 53, 68, 74], "NOT": [3, 10, 51, 53, 69, 74, 108, 115, 121, 125, 141, 147], "collect": [3, 53, 74, 131, 141], "minu": [3, 8, 53, 58, 60, 74, 76, 99, 105, 120, 125, 147], "accord": [3, 18, 36, 53, 67, 74], "polici": [3, 53, 74, 131], "itself": [3, 15, 16, 32, 33, 35, 53, 64, 65, 74, 93, 110, 139, 143], "unsound": [3, 7, 52, 53, 70, 74], "rather": [3, 8, 53, 58, 60, 74, 76, 99, 105, 120, 131, 140], "weaken": [3, 53, 74, 131], "did": [3, 8, 53, 58, 60, 74, 76, 99, 105, 120, 131], "cvc5_proof_rule_chain_resolut": 3, "ari": [3, 11, 43, 49, 53, 74, 79, 144], "pol_1": [3, 53, 74], "pol_": [3, 53, 74], "l_1": [3, 53, 74], "l_": [3, 53, 74], "diamond_": [3, 53, 74], "c_i": [3, 53, 74], "c_": [3, 27, 48, 53, 74, 85], "chain": [3, 53, 74, 106, 109, 131], "cvc5_proof_rule_factor": 3, "factor": [3, 53, 74, 131], "cvc5_proof_rule_reord": 3, "reorder": [3, 53, 74, 133, 134, 136], "multiset": [3, 53, 74, 142], "cvc5_proof_rule_macro_resolut": 3, "mathit": [3, 53, 74], "cvc5_proof_rule_macro_resolution_trust": 3, "uncheck": [3, 53, 74], "macro_resolut": [3, 53, 74], "cvc5_proof_rule_split": 3, "split": [3, 53, 74, 106, 131, 138, 144], "lor": [3, 53, 74], "cvc5_proof_rule_eq_resolv": 3, "f_2": [3, 53, 74], "seen": [3, 14, 31, 53, 63, 74, 140, 143], "macro": [3, 53, 74, 110, 131], "equiv_elim1": [3, 53, 74, 134, 136], "cvc5_proof_rule_modus_ponen": 3, "modu": [3, 53, 74], "ponen": [3, 53, 74], "implies_elim": [3, 53, 74], "cvc5_proof_rule_not_not_elim": 3, "doubl": [3, 9, 24, 39, 45, 53, 74, 95, 131, 141], "cvc5_proof_rule_contra": 3, "contradict": [3, 53, 74], "cvc5_proof_rule_and_elim": 3, "And": [3, 53, 74, 92, 98, 102, 108, 109, 115, 117, 122, 124, 125], "cvc5_proof_rule_and_intro": 3, "cvc5_proof_rule_not_or_elim": 3, "Or": [3, 53, 74, 92, 102, 107, 115], "cvc5_proof_rule_implies_elim": 3, "cvc5_proof_rule_not_implies_elim1": 3, "cvc5_proof_rule_not_implies_elim2": 3, "cvc5_proof_rule_equiv_elim1": 3, "cvc5_proof_rule_equiv_elim2": 3, "cvc5_proof_rule_not_equiv_elim1": 3, "cvc5_proof_rule_not_equiv_elim2": 3, "cvc5_proof_rule_xor_elim1": 3, "cvc5_proof_rule_xor_elim2": 3, "cvc5_proof_rule_not_xor_elim1": 3, "cvc5_proof_rule_not_xor_elim2": 3, "cvc5_proof_rule_ite_elim1": 3, "cvc5_proof_rule_ite_elim2": 3, "cvc5_proof_rule_not_ite_elim1": 3, "cvc5_proof_rule_not_ite_elim2": 3, "cvc5_proof_rule_not_and": 3, "de": [3, 53, 74, 131, 138], "morgan": [3, 53, 74, 107, 108, 109, 110, 116, 117], "cvc5_proof_rule_cnf_and_po": 3, "cnf": [3, 53, 74, 131], "cvc5_proof_rule_cnf_and_neg": 3, "cvc5_proof_rule_cnf_or_po": 3, "cvc5_proof_rule_cnf_or_neg": 3, "cvc5_proof_rule_cnf_implies_po": 3, "impli": [3, 11, 43, 51, 53, 69, 74, 79, 90, 92, 107, 108, 109, 113, 115, 131], "cvc5_proof_rule_cnf_implies_neg1": 3, "cvc5_proof_rule_cnf_implies_neg2": 3, "cvc5_proof_rule_cnf_equiv_pos1": 3, "cvc5_proof_rule_cnf_equiv_pos2": 3, "cvc5_proof_rule_cnf_equiv_neg1": 3, "cvc5_proof_rule_cnf_equiv_neg2": 3, "cvc5_proof_rule_cnf_xor_pos1": 3, "cvc5_proof_rule_cnf_xor_pos2": 3, "cvc5_proof_rule_cnf_xor_neg1": 3, "cvc5_proof_rule_cnf_xor_neg2": 3, "cvc5_proof_rule_cnf_ite_pos1": 3, "cvc5_proof_rule_cnf_ite_pos2": 3, "cvc5_proof_rule_cnf_ite_pos3": 3, "cvc5_proof_rule_cnf_ite_neg1": 3, "cvc5_proof_rule_cnf_ite_neg2": 3, "cvc5_proof_rule_cnf_ite_neg3": 3, "cvc5_proof_rule_refl": 3, "reflex": [3, 53, 74], "cvc5_proof_rule_symm": 3, "symmetri": [3, 53, 74, 131, 132], "cvc5_proof_rule_tran": 3, "t_": [3, 53, 74], "cvc5_proof_rule_cong": 3, "congruenc": [3, 53, 74, 131], "s_n": [3, 53, 74], "apply_uf": [3, 48, 51, 53, 69, 74, 92, 109, 125, 127, 141], "actual": [3, 8, 22, 24, 42, 45, 47, 53, 57, 58, 60, 74, 76, 77, 93, 99, 102, 105, 110, 139], "proofrulecheck": [3, 53, 74], "mkkindnod": [3, 53, 74], "both": [3, 18, 19, 20, 21, 23, 27, 36, 37, 38, 41, 45, 53, 68, 74, 88, 130, 131, 133, 146, 150], "so": [3, 7, 8, 11, 13, 14, 30, 31, 33, 43, 52, 53, 59, 62, 63, 65, 70, 74, 79, 94, 99, 105, 108, 110, 114, 115, 120, 123, 125, 130, 131, 140, 144], "between": [3, 7, 11, 28, 43, 49, 52, 53, 70, 74, 79, 86, 103, 115, 131, 140], "ho_appli": [3, 51, 53, 69, 74], "ho_cong": [3, 53, 74], "cvc5_proof_rule_nary_cong": 3, "variad": [3, 53, 74, 145], "plu": [3, 8, 11, 43, 53, 58, 60, 74, 76, 79, 99, 102, 103, 105, 120, 125, 131], "cvc5_proof_rule_true_intro": 3, "intro": [3, 53, 74, 131], "cvc5_proof_rule_true_elim": 3, "elim": [3, 53, 74, 131], "cvc5_proof_rule_false_intro": 3, "cvc5_proof_rule_false_elim": 3, "cvc5_proof_rule_ho_app_encod": 3, "uf": [3, 53, 74, 123, 127, 131, 140, 147], "theoryufrewrit": [3, 53, 74], "gethoapplyforapplyuf": [3, 53, 74], "theory_uf_rewrit": [3, 53, 74], "cvc5_proof_rule_ho_cong": 3, "cvc5_proof_rule_arrays_read_over_writ": 3, "read": [3, 11, 37, 53, 68, 74, 131], "cvc5_proof_rule_arrays_read_over_write_contra": 3, "contraposit": [3, 53, 74], "cvc5_proof_rule_arrays_read_over_write_1": 3, "cvc5_proof_rule_arrays_ext": 3, "extension": [3, 53, 74, 131], "array_deq_diff": [3, 27, 48, 53, 74, 85, 140], "cvc5_proof_rule_macro_bv_bitblast": 3, "bitblast": [3, 53, 74, 131, 132], "blast": [3, 53, 74, 130, 131], "output": [3, 7, 9, 11, 12, 15, 19, 21, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 39, 42, 43, 44, 47, 48, 51, 52, 53, 54, 55, 56, 57, 70, 74, 79, 99, 105, 108, 109, 118, 121, 122, 123, 124, 125, 126, 129, 130, 131, 133, 134, 135, 136, 137, 139, 147], "circuit": [3, 53, 74], "strategi": [3, 53, 74, 131], "bv": [3, 11, 43, 53, 74, 85, 91, 131, 132, 140], "bitblast_strategies_templ": [3, 53, 74], "cvc5_proof_rule_bv_bitblast_step": 3, "cvc5_proof_rule_bv_eager_atom": 3, "eager": [3, 53, 74, 130, 131], "atom": [3, 53, 74], "bitvector_eager_atom": [3, 53, 74], "cvc5_proof_rule_dt_split": 3, "vee": [3, 53, 74], "cvc5_proof_rule_dt_clash": 3, "clash": [3, 53, 74], "c_j": [3, 53, 74], "cvc5_proof_rule_skolem_intro": 3, "unpurifi": [3, 53, 74], "cvc5_proof_rule_skolem": 3, "k_1": [3, 53, 74], "k_n": [3, 53, 74], "k_i": [3, 53, 74], "quantifiers_skolem": [3, 53, 74, 140], "cvc5_proof_rule_instanti": 3, "caus": [3, 11, 43, 53, 74, 79], "trigger": [3, 53, 74, 131], "depend": [3, 9, 11, 43, 53, 74, 131], "quantifiers_inst_e_match": [3, 53, 74], "cvc5_proof_rule_alpha_equiv": 3, "alpha": [3, 53, 74, 131], "y_1": [3, 11, 43, 53, 74, 79], "y_n": [3, 11, 43, 53, 74, 79], "z_1": [3, 53, 74], "z_n": [3, 53, 74], "fv": [3, 53, 74, 131], "setminu": [3, 53, 74, 101, 142], "varphi": [3, 53, 74, 145], "cvc5_proof_rule_quant_var_reord": 3, "cvc5_proof_rule_sets_singleton_inj": 3, "inject": [3, 53, 74, 140], "cvc5_proof_rule_sets_ext": 3, "sets_deq_diff": [3, 53, 74, 140], "cvc5_proof_rule_sets_filter_up": 3, "cvc5_proof_rule_sets_filter_down": 3, "down": [3, 53, 74, 130], "cvc5_proof_rule_concat_eq": 3, "stand": [3, 53, 74], "direct": [3, 5, 53, 55, 74, 81, 107, 108, 109, 110, 113, 117, 121, 122, 123, 124, 125, 126, 131, 147], "implicit": [3, 53, 74], "epsilon": [3, 53, 74], "mathsf": [3, 53, 74], "abc": [3, 53, 74, 103, 123, 124, 148], "bc": [3, 53, 74, 103], "splitconst": [3, 53, 74], "cvc5_proof_rule_concat_unifi": 3, "unif": [3, 53, 74, 131], "len": [3, 8, 53, 58, 60, 74, 76, 99, 102, 105, 120, 122, 124, 125, 126, 131, 140, 146], "cvc5_proof_rule_concat_conflict": 3, "conflict": [3, 53, 74, 131], "neither": [3, 9, 53, 74], "cvc5_proof_rule_concat_conflict_deq": 3, "cvc5_proof_rule_concat_split": 3, "suf": [3, 53, 74, 146], "pre": [3, 11, 23, 27, 43, 44, 48, 53, 74, 79, 80, 85, 126, 131, 146], "shorthand": [3, 53, 74, 90, 101], "cvc5_proof_rule_concat_csplit": 3, "cvc5_proof_rule_concat_lprop": 3, "propag": [3, 7, 52, 53, 70, 74, 97, 131, 132], "cvc5_proof_rule_concat_cprop": 3, "w_1": [3, 53, 74], "w_2": [3, 53, 74], "t_3": [3, 53, 74], "overlap": [3, 53, 74], "w_3": [3, 53, 74], "largest": [3, 53, 74], "therefor": [3, 53, 74, 139, 141], "roverlap": [3, 53, 74], "cvc5_proof_rule_string_decompos": 3, "decomposit": [3, 53, 74, 144], "geq": [3, 51, 53, 69, 74, 89, 95, 117, 121, 124, 125, 142], "cvc5_proof_rule_string_length_po": 3, "cvc5_proof_rule_string_length_non_empti": 3, "cvc5_proof_rule_string_reduct": 3, "reduct": [3, 53, 74, 91, 131], "w": [3, 27, 48, 53, 74, 85, 138, 148], "stringspreprocess": [3, 53, 74], "reduc": [3, 43, 49, 53, 74, 131], "theory_strings_preprocess": [3, 53, 74], "cvc5_proof_rule_string_eager_reduct": 3, "termregistri": [3, 53, 74], "eagerreduc": [3, 53, 74], "term_registri": [3, 53, 74], "cvc5_proof_rule_re_int": 3, "r_1": [3, 53, 74], "r_2": [3, 53, 74], "inter": [3, 53, 74, 121, 123, 131, 147], "cvc5_proof_rule_re_unfold_po": 3, "unfold": [3, 53, 74, 131, 135, 140], "regexpopr": [3, 53, 74], "reduceregexppo": [3, 53, 74], "cvc5_proof_rule_re_unfold_neg": 3, "text": [3, 11, 43, 53, 74, 131, 145], "r_n": [3, 53, 74], "varaibl": [3, 53, 74], "name": [3, 8, 9, 10, 11, 12, 13, 14, 16, 17, 23, 24, 25, 27, 29, 30, 31, 32, 33, 34, 37, 39, 40, 43, 44, 45, 46, 48, 49, 53, 57, 58, 60, 61, 62, 63, 64, 65, 66, 68, 72, 74, 76, 79, 82, 83, 86, 89, 90, 91, 92, 93, 94, 95, 98, 99, 101, 102, 103, 105, 110, 120, 123, 130, 131, 133, 141, 143], "var": [3, 11, 43, 53, 74, 79, 102, 116, 121, 125, 131, 136], "str_index": [3, 53, 74], "cvc5_proof_rule_re_unfold_neg_concat_fix": 3, "r_": [3, 53, 74], "cvc5_proof_rule_string_code_inj": 3, "_code": [3, 53, 74], "cvc5_proof_rule_string_seq_unit_inj": 3, "cvc5_proof_rule_string_ext": 3, "strings_deq_diff": [3, 53, 74, 140], "similarli": [3, 11, 13, 14, 30, 31, 43, 53, 62, 63, 74, 79], "cvc5_proof_rule_macro_string_infer": 3, "isrev": [3, 53, 74], "bookkeep": [3, 53, 74, 140], "been": [3, 8, 11, 14, 16, 23, 31, 33, 35, 43, 44, 45, 46, 53, 58, 60, 63, 74, 76, 79, 80, 83, 99, 105, 107, 110, 116, 120, 132, 134, 139], "inferproofcon": [3, 53, 74], "cvc5_proof_rule_macro_arith_scale_sum_ub": 3, "inequ": [3, 53, 74, 131], "diamond": [3, 53, 74], "polynomi": [3, 27, 48, 53, 74, 85, 131], "l_n": [3, 53, 74], "mathbb": [3, 53, 74, 142], "fusion": [3, 53, 74], "diamond_i": [3, 53, 74], "flip": [3, 53, 74], "scale": [3, 53, 74], "colon": [3, 53, 74], "p_1": [3, 53, 74, 133], "p_n": [3, 53, 74], "cvc5_proof_rule_arith_mult_abs_comparison": 3, "s_i": [3, 53, 74], "former": [3, 27, 48, 53, 74], "cvc5_proof_rule_arith_sum_ub": 3, "p_i": [3, 53, 74], "l_i": [3, 53, 74], "r_i": [3, 53, 74], "cvc5_proof_rule_int_tight_ub": 3, "tighten": [3, 53, 74], "strict": [3, 53, 74, 131], "lfloor": [3, 53, 74], "rfloor": [3, 53, 74], "cvc5_proof_rule_int_tight_lb": 3, "lceil": [3, 53, 74], "rceil": [3, 53, 74], "cvc5_proof_rule_arith_trichotomi": 3, "trichotomi": [3, 53, 74], "etc": [3, 25, 45, 46, 53, 74, 83, 102, 110, 139, 140], "cvc5_proof_rule_arith_reduct": 3, "sqrt": [3, 51, 53, 69, 74, 89, 140, 150], "is_int": [3, 53, 74, 89, 92], "to_int": [3, 53, 74, 140], "arith": [3, 53, 74, 131, 132, 141], "operatorelim": [3, 53, 74], "getaxiomfor": [3, 53, 74], "operator_elim": [3, 53, 74], "cvc5_proof_rule_arith_poly_norm": 3, "polynorm": [3, 53, 74], "isarithpolynorm": [3, 53, 74], "bitvector": [3, 53, 74, 107, 140], "cvc5_proof_rule_arith_poly_norm_rel": 3, "c_x": [3, 53, 74], "x_2": [3, 53, 74], "c_y": [3, 53, 74], "y_2": [3, 53, 74], "wrap": [3, 11, 28, 43, 49, 53, 74, 79, 86, 102, 130], "to_real": [3, 51, 53, 69, 74, 89, 115, 140], "cvc5_proof_rule_arith_mult_sign": 3, "f_k": [3, 53, 74], "m": [3, 8, 53, 58, 60, 74, 76, 95, 99, 102, 105, 109, 110, 120, 122, 124, 130, 131, 140, 141, 142], "compar": [3, 13, 14, 16, 17, 18, 20, 21, 22, 23, 27, 30, 31, 32, 33, 34, 36, 38, 41, 42, 44, 47, 48, 53, 74, 88], "monomi": [3, 53, 74, 131], "even": [3, 4, 8, 20, 38, 43, 49, 53, 54, 58, 60, 71, 74, 76, 78, 95, 99, 105, 110, 120, 131, 147], "odd": [3, 53, 74, 107], "cvc5_proof_rule_arith_mult_po": 3, "cvc5_proof_rule_arith_mult_neg": 3, "inv": [3, 11, 18, 36, 43, 53, 67, 74, 79, 114, 126, 131], "invert": [3, 53, 74, 131], "cvc5_proof_rule_arith_mult_tang": 3, "plane": [3, 53, 74, 131, 150], "tplane": [3, 53, 74, 131], "cvc5_proof_rule_arith_trans_pi": 3, "transcendent": [3, 53, 74, 97, 131, 138, 140, 149], "u": [3, 53, 74, 91, 94, 109, 127, 131, 143, 145], "cvc5_proof_rule_arith_trans_exp_neg": 3, "cvc5_proof_rule_arith_trans_exp_posit": 3, "cvc5_proof_rule_arith_trans_exp_super_lin": 3, "grow": [3, 53, 74, 139], "super": [3, 53, 74], "linearli": [3, 53, 74, 139], "cvc5_proof_rule_arith_trans_exp_zero": 3, "cvc5_proof_rule_arith_trans_exp_approx_above_neg": 3, "approxim": [3, 53, 74, 131, 150], "th": [3, 14, 31, 53, 74, 138, 140, 146, 148], "taylor": [3, 53, 74, 131], "maclaurin": [3, 53, 74], "seri": [3, 53, 74], "calcul": [3, 53, 74, 131], "frac": [3, 53, 74], "lemma": [3, 7, 10, 11, 40, 43, 52, 53, 70, 72, 74, 79, 131, 139, 140, 141], "state": [3, 10, 11, 43, 49, 53, 57, 74, 79, 86, 139], "cvc5_proof_rule_arith_trans_exp_approx_above_po": 3, "po": [3, 53, 74], "modif": [3, 53, 74, 131], "degre": [3, 53, 74, 131], "cvc5_proof_rule_arith_trans_exp_approx_below": 3, "sum_": [3, 53, 74, 109], "infti": [3, 53, 74], "cvc5_proof_rule_arith_trans_sine_bound": 3, "sin": [3, 53, 74, 140, 150], "cvc5_proof_rule_arith_trans_sine_shift": 3, "phase": [3, 53, 74, 93, 130, 131, 140], "particular": [3, 7, 11, 24, 43, 45, 52, 53, 70, 74, 131, 140, 141, 143, 147], "transcendental_purify_arg": [3, 53, 74, 140], "transcendental_sine_phase_shift": [3, 53, 74, 140], "cvc5_proof_rule_arith_trans_sine_symmetri": 3, "symmetr": [3, 53, 74], "cvc5_proof_rule_arith_trans_sine_tangent_zero": 3, "cvc5_proof_rule_arith_trans_sine_tangent_pi": 3, "cvc5_proof_rule_arith_trans_sine_approx_above_neg": 3, "lb": [3, 53, 74], "ub": [3, 53, 74], "possibli": [3, 4, 53, 54, 74, 78, 93, 131], "cvc5_proof_rule_arith_trans_sine_approx_above_po": 3, "cvc5_proof_rule_arith_trans_sine_approx_below_neg": 3, "cvc5_proof_rule_arith_trans_sine_approx_below_po": 3, "cvc5_proof_rule_lfsc_rul": 3, "lfsc": [3, 7, 52, 53, 70, 74, 131, 137], "holder": [3, 53, 74], "a_1": [3, 53, 74], "a_m": [3, 53, 74], "expect": [3, 8, 19, 37, 39, 53, 58, 59, 60, 68, 74, 76, 89, 92, 93, 99, 105, 107, 108, 110, 113, 115, 118, 120, 130, 140, 145], "cvc5_proof_rule_alethe_rul": 3, "aleth": [3, 7, 43, 52, 53, 70, 74, 79, 131, 134, 137], "printer": [3, 53, 74, 131, 132], "cvc5_proof_rule_unknown": 3, "cvc5_proof_rule_last": 3, "cvc5_proof_rule_to_str": 3, "cvc5_proof_rule_hash": 3, "hoc": [3, 53, 74], "theory_rewrit": [3, 41, 53, 73, 74], "cvc5_proof_rewrite_rule_non": 3, "cvc5_proof_rewrite_rule_distinct_elim": 3, "t2": [3, 53, 74, 110, 133, 134, 136, 140, 145], "tn": [3, 53, 74, 140], "bigwedge_": [3, 53, 74], "cvc5_proof_rewrite_rule_distinct_card_conflict": 3, "cvc5_proof_rewrite_rule_bv_to_nat_elim": 3, "bv2nat": [3, 53, 74], "cvc5_proof_rewrite_rule_int_to_bv_elim": 3, "_n": [3, 11, 43, 53, 74, 79], "bvconcat": [3, 53, 74], "mod": [3, 53, 74, 91, 95, 131, 140], "cvc5_proof_rewrite_rule_macro_bool_nnf_norm": 3, "theoryboolrewrit": [3, 53, 74], "computennfnorm": [3, 53, 74], "cvc5_proof_rewrite_rule_macro_arith_string_pred_entail": 3, "elabor": [3, 53, 74, 133], "arith_poly_norm": [3, 53, 74], "arith_string_pred_entail": [3, 53, 74], "arith_string_pred_safe_approx": [3, 53, 74], "well": [3, 9, 13, 30, 39, 45, 53, 62, 74, 131, 133, 141, 149], "cvc5_proof_rewrite_rule_arith_string_pred_entail": 3, "shown": [3, 45, 53, 74, 134], "basic": [3, 39, 53, 74, 97, 116, 131, 136], "cvc5_proof_rewrite_rule_arith_string_pred_safe_approx": 3, "safe": [3, 35, 39, 53, 57, 74, 85, 102, 131, 139], "subterm": [3, 53, 74, 131], "describ": [3, 27, 48, 53, 74, 102, 134, 136, 143, 144, 148, 150], "paper": [3, 53, 74, 131, 144], "reynold": [3, 53, 74, 107, 110, 113, 116, 118, 119, 121, 123, 125, 126, 138, 140, 147], "et": [3, 53, 74, 131, 140], "al": [3, 53, 74, 131, 140], "cav": [3, 53, 74, 138], "2019": [3, 53, 74, 95, 131, 138], "high": [3, 53, 74, 91, 130, 133, 136], "cvc5_proof_rewrite_rule_arith_pow_elim": 3, "cvc5_proof_rewrite_rule_beta_reduc": 3, "beta": [3, 53, 74], "comput": [3, 8, 11, 13, 14, 16, 17, 18, 20, 21, 22, 23, 27, 43, 53, 58, 60, 74, 76, 79, 99, 105, 120, 131, 132, 136, 138, 140], "cvc5_proof_rewrite_rule_lambda_elim": 3, "cvc5_proof_rewrite_rule_arrays_select_const": 3, "cvc5_proof_rewrite_rule_macro_arrays_distinct_arrai": 3, "isconst": [3, 53, 74], "cvc5_proof_rewrite_rule_macro_arrays_normalize_const": 3, "canon": [3, 27, 48, 53, 74, 85], "theoryarraysrewrit": [3, 53, 74], "normalizeconst": [3, 53, 74], "cvc5_proof_rewrite_rule_arrays_eq_range_expand": 3, "expans": [3, 53, 74, 131, 135], "eqrang": [3, 53, 74], "cvc5_proof_rewrite_rule_exists_elim": 3, "cvc5_proof_rewrite_rule_quant_unused_var": 3, "unus": [3, 53, 74, 131], "cvc5_proof_rewrite_rule_macro_quant_merge_prenex": 3, "merg": [3, 53, 74, 131], "prenex": [3, 53, 74, 131], "cvc5_proof_rewrite_rule_quant_merge_prenex": 3, "cvc5_proof_rewrite_rule_macro_quant_prenex": 3, "cvc5_proof_rewrite_rule_macro_quant_miniscop": 3, "miniscop": [3, 53, 74, 131], "g_2": [3, 53, 74], "cvc5_proof_rewrite_rule_quant_miniscope_and": 3, "cvc5_proof_rewrite_rule_quant_miniscope_or": 3, "cvc5_proof_rewrite_rule_quant_miniscope_it": 3, "cvc5_proof_rewrite_rule_quant_dt_split": 3, "cvc5_proof_rewrite_rule_macro_quant_partition_connected_fv": 3, "connect": [3, 53, 74, 131, 145], "f_": [3, 53, 74], "x_m": [3, 53, 74], "k_m": [3, 53, 74], "cvc5_proof_rewrite_rule_macro_quant_var_elim_eq": 3, "cvc5_proof_rewrite_rule_quant_var_elim_eq": 3, "cvc5_proof_rewrite_rule_macro_quant_var_elim_ineq": 3, "cvc5_proof_rewrite_rule_macro_quant_rewrite_bodi": 3, "cvc5_proof_rewrite_rule_dt_inst": 3, "_c": [3, 53, 74], "sel": [3, 17, 34, 53, 74, 131, 143], "_1": [3, 11, 43, 53, 74], "discrimin": [3, 53, 74, 143], "cvc5_proof_rewrite_rule_dt_collapse_selector": 3, "collaps": [3, 53, 74], "cvc5_proof_rewrite_rule_dt_collapse_test": 3, "cvc5_proof_rewrite_rule_dt_collapse_tester_singleton": 3, "cvc5_proof_rewrite_rule_dt_cons_eq": 3, "s_m": [3, 53, 74], "cvc5_proof_rewrite_rule_dt_cycl": 3, "cycl": [3, 53, 74], "path": [3, 53, 59, 74, 130], "cvc5_proof_rewrite_rule_dt_collapse_updat": 3, "u_": [3, 53, 74], "cvc5_proof_rewrite_rule_dt_updater_elim": 3, "s_0": [3, 53, 74], "cvc5_proof_rewrite_rule_dt_match_elim": 3, "cvc5_proof_rewrite_rule_bv_umulo_elimin": 3, "gok": [3, 53, 74], "schult": [3, 53, 74], "balzola": [3, 53, 74], "2001": [3, 53, 74], "ieeexplor": [3, 53], "987767": [3, 53], "cvc5_proof_rewrite_rule_bv_smulo_elimin": 3, "cvc5_proof_rewrite_rule_bv_add_combine_like_term": 3, "dure": [3, 7, 23, 27, 44, 48, 52, 53, 70, 74, 80, 85, 130, 131, 132, 139, 140], "count": [3, 13, 14, 16, 17, 18, 20, 21, 22, 23, 27, 53, 74, 97, 106, 140, 141, 142], "cvc5_proof_rewrite_rule_bv_mult_simplifi": 3, "multiplicand": [3, 53, 74], "bvmul": [3, 53, 74, 108], "bvneg": [3, 53, 74, 91], "cvc5_proof_rewrite_rule_bv_bitwise_sl": 3, "continu": [3, 53, 74, 139, 146], "i_0": [3, 53, 74], "j_0": [3, 53, 74], "c_0": [3, 53, 74], "i_n": [3, 53, 74], "j_n": [3, 53, 74], "c0": [3, 53, 74], "maxim": [3, 53, 74, 131, 146], "cvc5_proof_rewrite_rule_bv_repeat_elim": 3, "cvc5_proof_rewrite_rule_re_loop_elim": 3, "loop_": [3, 53, 74], "cvc5_proof_rewrite_rule_re_inter_union_inclus": 3, "r_0": [3, 53, 74], "comp": [3, 53, 74], "superset": [3, 53, 74], "allchar": [3, 43, 49, 53, 74, 79, 86, 103, 131, 140], "cvc5_proof_rewrite_rule_str_in_re_ev": 3, "_re": [3, 53, 74], "cvc5_proof_rewrite_rule_str_in_re_consum": 3, "consum": [3, 53, 74], "in_r": [3, 53, 74, 124, 140], "strip": [3, 53, 74, 92], "off": [3, 30, 31, 48, 53, 74, 131], "cvc5_proof_rewrite_rule_str_in_re_concat_star_char": 3, "cvc5_proof_rewrite_rule_str_in_re_sigma": 3, "ge": [3, 53, 74], "cvc5_proof_rewrite_rule_str_in_re_sigma_star": 3, "cvc5_proof_rewrite_rule_macro_substr_strip_sym_length": 3, "partial": [3, 11, 43, 53, 74, 79, 131], "cvc5_proof_rewrite_rule_sets_is_empty_ev": 3, "_empti": [3, 53, 74], "cvc5_proof_rewrite_rule_sets_insert_elim": 3, "cvc5_proof_rewrite_rule_arith_mul_on": 3, "auto": [3, 53, 59, 74, 88, 110, 130, 131], "mul": [3, 53, 74, 114, 115, 144], "cvc5_proof_rewrite_rule_arith_mul_zero": 3, "cvc5_proof_rewrite_rule_arith_div_total_r": 3, "div": [3, 53, 74, 89, 140], "cvc5_proof_rewrite_rule_arith_div_total_int": 3, "cvc5_proof_rewrite_rule_arith_div_total_zero_r": 3, "cvc5_proof_rewrite_rule_arith_div_total_zero_int": 3, "cvc5_proof_rewrite_rule_arith_int_div_tot": 3, "cvc5_proof_rewrite_rule_arith_int_div_total_on": 3, "cvc5_proof_rewrite_rule_arith_int_div_total_zero": 3, "cvc5_proof_rewrite_rule_arith_int_mod_tot": 3, "cvc5_proof_rewrite_rule_arith_int_mod_total_on": 3, "cvc5_proof_rewrite_rule_arith_int_mod_total_zero": 3, "cvc5_proof_rewrite_rule_arith_elim_gt": 3, "gt": [3, 51, 53, 69, 74, 89, 95, 110, 122, 131, 150], "cvc5_proof_rewrite_rule_arith_elim_lt": 3, "lt": [3, 8, 51, 53, 58, 60, 69, 74, 76, 89, 95, 99, 105, 115, 117, 120, 126, 150], "cvc5_proof_rewrite_rule_arith_elim_int_gt": 3, "cvc5_proof_rewrite_rule_arith_elim_int_lt": 3, "cvc5_proof_rewrite_rule_arith_elim_leq": 3, "cvc5_proof_rewrite_rule_arith_leq_norm": 3, "norm": [3, 53, 74, 131], "cvc5_proof_rewrite_rule_arith_geq_tighten": 3, "cvc5_proof_rewrite_rule_arith_geq_norm1_int": 3, "norm1": [3, 53, 74], "cvc5_proof_rewrite_rule_arith_geq_norm1_r": 3, "cvc5_proof_rewrite_rule_arith_geq_norm2": 3, "norm2": [3, 53, 74], "cvc5_proof_rewrite_rule_arith_refl_leq": 3, "cvc5_proof_rewrite_rule_arith_refl_lt": 3, "cvc5_proof_rewrite_rule_arith_refl_geq": 3, "cvc5_proof_rewrite_rule_arith_refl_gt": 3, "cvc5_proof_rewrite_rule_arith_eq_elim_r": 3, "eq": [3, 53, 74, 89, 90, 91, 92, 94, 95, 100, 113, 131], "cvc5_proof_rewrite_rule_arith_eq_elim_int": 3, "cvc5_proof_rewrite_rule_arith_plus_flatten": 3, "flatten": [3, 53, 74, 131], "cvc5_proof_rewrite_rule_arith_mult_flatten": 3, "mult": [3, 51, 53, 69, 74, 89, 96, 117, 150], "cvc5_proof_rewrite_rule_arith_mult_dist": 3, "dist": [3, 53, 74], "cvc5_proof_rewrite_rule_arith_abs_elim_int": 3, "ab": [3, 51, 53, 69, 74, 103, 114, 124, 131], "cvc5_proof_rewrite_rule_arith_abs_elim_r": 3, "cvc5_proof_rewrite_rule_arith_to_real_elim": 3, "cvc5_proof_rewrite_rule_arith_to_int_elim_to_r": 3, "cvc5_proof_rewrite_rule_arith_div_elim_to_real1": 3, "real1": [3, 53, 74], "cvc5_proof_rewrite_rule_arith_div_elim_to_real2": 3, "real2": [3, 53, 74], "cvc5_proof_rewrite_rule_arith_sine_zero": 3, "cvc5_proof_rewrite_rule_arith_sine_pi2": 3, "pi2": [3, 53, 74], "cvc5_proof_rewrite_rule_arith_cosine_elim": 3, "cvc5_proof_rewrite_rule_arith_tangent_elim": 3, "cvc5_proof_rewrite_rule_arith_secent_elim": 3, "secent": [3, 53, 74], "cvc5_proof_rewrite_rule_arith_cosecent_elim": 3, "cvc5_proof_rewrite_rule_arith_cotangent_elim": 3, "cvc5_proof_rewrite_rule_arith_pi_not_int": 3, "cvc5_proof_rewrite_rule_arith_abs_eq": 3, "cvc5_proof_rewrite_rule_arith_abs_int_gt": 3, "cvc5_proof_rewrite_rule_arith_abs_real_gt": 3, "cvc5_proof_rewrite_rule_array_read_over_writ": 3, "cvc5_proof_rewrite_rule_array_read_over_write2": 3, "write2": [3, 53, 74], "cvc5_proof_rewrite_rule_array_store_overwrit": 3, "overwrit": [3, 53, 74], "cvc5_proof_rewrite_rule_array_store_self": 3, "self": [3, 53, 74, 89, 90, 91, 92, 93, 94, 95, 96, 98, 100, 101, 102, 103, 121, 147], "cvc5_proof_rewrite_rule_array_read_over_write_split": 3, "cvc5_proof_rewrite_rule_bool_double_not_elim": 3, "cvc5_proof_rewrite_rule_bool_not_tru": 3, "cvc5_proof_rewrite_rule_bool_not_fals": 3, "cvc5_proof_rewrite_rule_bool_eq_tru": 3, "cvc5_proof_rewrite_rule_bool_eq_fals": 3, "cvc5_proof_rewrite_rule_bool_eq_nrefl": 3, "nrefl": [3, 53, 74], "cvc5_proof_rewrite_rule_bool_impl_false1": 3, "impl": [3, 53, 74], "false1": [3, 53, 74], "cvc5_proof_rewrite_rule_bool_impl_false2": 3, "false2": [3, 53, 74], "cvc5_proof_rewrite_rule_bool_impl_true1": 3, "true1": [3, 53, 74], "cvc5_proof_rewrite_rule_bool_impl_true2": 3, "true2": [3, 53, 74], "cvc5_proof_rewrite_rule_bool_impl_elim": 3, "cvc5_proof_rewrite_rule_bool_or_tru": 3, "cvc5_proof_rewrite_rule_bool_or_flatten": 3, "cvc5_proof_rewrite_rule_bool_and_fals": 3, "cvc5_proof_rewrite_rule_bool_and_flatten": 3, "cvc5_proof_rewrite_rule_bool_and_conf": 3, "conf": [3, 53, 74, 131], "cvc5_proof_rewrite_rule_bool_and_conf2": 3, "conf2": [3, 53, 74], "cvc5_proof_rewrite_rule_bool_or_taut": 3, "taut": [3, 53, 74, 102, 131], "cvc5_proof_rewrite_rule_bool_or_taut2": 3, "taut2": [3, 53, 74], "cvc5_proof_rewrite_rule_bool_or_de_morgan": 3, "cvc5_proof_rewrite_rule_bool_implies_de_morgan": 3, "cvc5_proof_rewrite_rule_bool_and_de_morgan": 3, "cvc5_proof_rewrite_rule_bool_or_and_distrib": 3, "distrib": [3, 53, 74], "cvc5_proof_rewrite_rule_bool_xor_refl": 3, "cvc5_proof_rewrite_rule_bool_xor_nrefl": 3, "cvc5_proof_rewrite_rule_bool_xor_fals": 3, "cvc5_proof_rewrite_rule_bool_xor_tru": 3, "cvc5_proof_rewrite_rule_bool_xor_comm": 3, "comm": [3, 53, 74], "cvc5_proof_rewrite_rule_bool_xor_elim": 3, "cvc5_proof_rewrite_rule_bool_not_xor_elim": 3, "cvc5_proof_rewrite_rule_bool_not_eq_elim1": 3, "elim1": [3, 53, 74], "cvc5_proof_rewrite_rule_bool_not_eq_elim2": 3, "elim2": [3, 53, 74], "cvc5_proof_rewrite_rule_ite_neg_branch": 3, "branch": [3, 41, 53, 73, 74, 131], "cvc5_proof_rewrite_rule_ite_then_tru": 3, "cvc5_proof_rewrite_rule_ite_else_fals": 3, "cvc5_proof_rewrite_rule_ite_then_fals": 3, "cvc5_proof_rewrite_rule_ite_else_tru": 3, "cvc5_proof_rewrite_rule_ite_then_lookahead_self": 3, "lookahead": [3, 53, 74], "cvc5_proof_rewrite_rule_ite_else_lookahead_self": 3, "cvc5_proof_rewrite_rule_ite_then_lookahead_not_self": 3, "cvc5_proof_rewrite_rule_ite_else_lookahead_not_self": 3, "cvc5_proof_rewrite_rule_ite_expand": 3, "expand": [3, 53, 74, 131, 140], "cvc5_proof_rewrite_rule_bool_not_ite_elim": 3, "cvc5_proof_rewrite_rule_ite_true_cond": 3, "cond": [3, 53, 74, 126, 131], "cvc5_proof_rewrite_rule_ite_false_cond": 3, "cvc5_proof_rewrite_rule_ite_not_cond": 3, "cvc5_proof_rewrite_rule_ite_eq_branch": 3, "cvc5_proof_rewrite_rule_ite_then_lookahead": 3, "cvc5_proof_rewrite_rule_ite_else_lookahead": 3, "cvc5_proof_rewrite_rule_ite_then_neg_lookahead": 3, "cvc5_proof_rewrite_rule_ite_else_neg_lookahead": 3, "cvc5_proof_rewrite_rule_bv_concat_flatten": 3, "cvc5_proof_rewrite_rule_bv_concat_extract_merg": 3, "cvc5_proof_rewrite_rule_bv_extract_extract": 3, "cvc5_proof_rewrite_rule_bv_extract_whol": 3, "whole": [3, 53, 74, 131, 139], "cvc5_proof_rewrite_rule_bv_extract_concat_1": 3, "cvc5_proof_rewrite_rule_bv_extract_concat_2": 3, "cvc5_proof_rewrite_rule_bv_extract_concat_3": 3, "cvc5_proof_rewrite_rule_bv_extract_concat_4": 3, "cvc5_proof_rewrite_rule_bv_eq_extract_elim1": 3, "cvc5_proof_rewrite_rule_bv_eq_extract_elim2": 3, "cvc5_proof_rewrite_rule_bv_eq_extract_elim3": 3, "elim3": [3, 53, 74], "cvc5_proof_rewrite_rule_bv_extract_bitwise_and": 3, "bitwis": [3, 53, 74, 91, 131], "cvc5_proof_rewrite_rule_bv_extract_bitwise_or": 3, "cvc5_proof_rewrite_rule_bv_extract_bitwise_xor": 3, "cvc5_proof_rewrite_rule_bv_extract_not": 3, "cvc5_proof_rewrite_rule_bv_extract_sign_extend_1": 3, "cvc5_proof_rewrite_rule_bv_extract_sign_extend_2": 3, "cvc5_proof_rewrite_rule_bv_extract_sign_extend_3": 3, "cvc5_proof_rewrite_rule_bv_neg_mult": 3, "cvc5_proof_rewrite_rule_bv_neg_add": 3, "cvc5_proof_rewrite_rule_bv_mult_distrib_const_neg": 3, "cvc5_proof_rewrite_rule_bv_mult_distrib_const_add": 3, "cvc5_proof_rewrite_rule_bv_mult_distrib_const_sub": 3, "cvc5_proof_rewrite_rule_bv_mult_distrib_1": 3, "cvc5_proof_rewrite_rule_bv_mult_distrib_2": 3, "cvc5_proof_rewrite_rule_bv_not_xor": 3, "cvc5_proof_rewrite_rule_bv_and_simplify_1": 3, "cvc5_proof_rewrite_rule_bv_and_simplify_2": 3, "cvc5_proof_rewrite_rule_bv_or_simplify_1": 3, "cvc5_proof_rewrite_rule_bv_or_simplify_2": 3, "cvc5_proof_rewrite_rule_bv_xor_simplify_1": 3, "cvc5_proof_rewrite_rule_bv_xor_simplify_2": 3, "cvc5_proof_rewrite_rule_bv_xor_simplify_3": 3, "cvc5_proof_rewrite_rule_bv_ult_add_on": 3, "ult": [3, 53, 74, 91], "cvc5_proof_rewrite_rule_bv_concat_to_mult": 3, "cvc5_proof_rewrite_rule_bv_mult_slt_mult_1": 3, "slt": [3, 53, 74, 91], "cvc5_proof_rewrite_rule_bv_mult_slt_mult_2": 3, "cvc5_proof_rewrite_rule_bv_commutative_and": 3, "cvc5_proof_rewrite_rule_bv_commutative_or": 3, "cvc5_proof_rewrite_rule_bv_commutative_xor": 3, "cvc5_proof_rewrite_rule_bv_commutative_mul": 3, "cvc5_proof_rewrite_rule_bv_or_zero": 3, "cvc5_proof_rewrite_rule_bv_mul_on": 3, "cvc5_proof_rewrite_rule_bv_mul_zero": 3, "cvc5_proof_rewrite_rule_bv_add_zero": 3, "cvc5_proof_rewrite_rule_bv_add_two": 3, "cvc5_proof_rewrite_rule_bv_zero_extend_eliminate_0": 3, "cvc5_proof_rewrite_rule_bv_sign_extend_eliminate_0": 3, "cvc5_proof_rewrite_rule_bv_not_neq": 3, "cvc5_proof_rewrite_rule_bv_ult_on": 3, "cvc5_proof_rewrite_rule_bv_or_flatten": 3, "cvc5_proof_rewrite_rule_bv_xor_flatten": 3, "cvc5_proof_rewrite_rule_bv_and_flatten": 3, "cvc5_proof_rewrite_rule_bv_mul_flatten": 3, "cvc5_proof_rewrite_rule_bv_concat_merge_const": 3, "cvc5_proof_rewrite_rule_bv_commutative_add": 3, "cvc5_proof_rewrite_rule_bv_neg_sub": 3, "cvc5_proof_rewrite_rule_bv_neg_idemp": 3, "idemp": [3, 53, 74], "cvc5_proof_rewrite_rule_bv_sub_elimin": 3, "cvc5_proof_rewrite_rule_bv_ugt_elimin": 3, "ugt": [3, 53, 74, 91], "cvc5_proof_rewrite_rule_bv_uge_elimin": 3, "ug": [3, 53, 74, 91], "cvc5_proof_rewrite_rule_bv_sgt_elimin": 3, "sgt": [3, 53, 74, 91], "cvc5_proof_rewrite_rule_bv_sge_elimin": 3, "sge": [3, 53, 74, 91], "cvc5_proof_rewrite_rule_bv_slt_elimin": 3, "cvc5_proof_rewrite_rule_bv_sle_elimin": 3, "sle": [3, 53, 74, 91], "cvc5_proof_rewrite_rule_bv_redor_elimin": 3, "cvc5_proof_rewrite_rule_bv_redand_elimin": 3, "cvc5_proof_rewrite_rule_bv_ule_elimin": 3, "ul": [3, 53, 74, 91], "cvc5_proof_rewrite_rule_bv_comp_elimin": 3, "cvc5_proof_rewrite_rule_bv_rotate_left_eliminate_1": 3, "cvc5_proof_rewrite_rule_bv_rotate_left_eliminate_2": 3, "cvc5_proof_rewrite_rule_bv_rotate_right_eliminate_1": 3, "cvc5_proof_rewrite_rule_bv_rotate_right_eliminate_2": 3, "cvc5_proof_rewrite_rule_bv_nand_elimin": 3, "cvc5_proof_rewrite_rule_bv_nor_elimin": 3, "cvc5_proof_rewrite_rule_bv_xnor_elimin": 3, "cvc5_proof_rewrite_rule_bv_sdiv_elimin": 3, "sdiv": [3, 53, 74, 91], "cvc5_proof_rewrite_rule_bv_sdiv_eliminate_fewer_bitwise_op": 3, "fewer": [3, 53, 74], "cvc5_proof_rewrite_rule_bv_zero_extend_elimin": 3, "cvc5_proof_rewrite_rule_bv_sign_extend_elimin": 3, "cvc5_proof_rewrite_rule_bv_uaddo_elimin": 3, "uaddo": [3, 53, 74], "cvc5_proof_rewrite_rule_bv_saddo_elimin": 3, "saddo": [3, 53, 74], "cvc5_proof_rewrite_rule_bv_sdivo_elimin": 3, "sdivo": [3, 53, 74], "cvc5_proof_rewrite_rule_bv_smod_elimin": 3, "smod": [3, 53, 74, 91], "cvc5_proof_rewrite_rule_bv_smod_eliminate_fewer_bitwise_op": 3, "cvc5_proof_rewrite_rule_bv_srem_elimin": 3, "srem": [3, 53, 74, 91], "cvc5_proof_rewrite_rule_bv_srem_eliminate_fewer_bitwise_op": 3, "cvc5_proof_rewrite_rule_bv_usubo_elimin": 3, "usubo": [3, 53, 74], "cvc5_proof_rewrite_rule_bv_ssubo_elimin": 3, "ssubo": [3, 53, 74], "cvc5_proof_rewrite_rule_bv_ite_equal_children": 3, "cvc5_proof_rewrite_rule_bv_ite_const_children_1": 3, "cvc5_proof_rewrite_rule_bv_ite_const_children_2": 3, "cvc5_proof_rewrite_rule_bv_ite_equal_cond_1": 3, "cvc5_proof_rewrite_rule_bv_ite_equal_cond_2": 3, "cvc5_proof_rewrite_rule_bv_ite_equal_cond_3": 3, "cvc5_proof_rewrite_rule_bv_ite_merge_then_if": 3, "cvc5_proof_rewrite_rule_bv_ite_merge_else_if": 3, "cvc5_proof_rewrite_rule_bv_ite_merge_then_els": 3, "cvc5_proof_rewrite_rule_bv_ite_merge_else_els": 3, "cvc5_proof_rewrite_rule_bv_shl_by_const_0": 3, "shl": [3, 53, 74], "cvc5_proof_rewrite_rule_bv_shl_by_const_1": 3, "cvc5_proof_rewrite_rule_bv_shl_by_const_2": 3, "cvc5_proof_rewrite_rule_bv_lshr_by_const_0": 3, "lshr": [3, 53, 74, 91], "cvc5_proof_rewrite_rule_bv_lshr_by_const_1": 3, "cvc5_proof_rewrite_rule_bv_lshr_by_const_2": 3, "cvc5_proof_rewrite_rule_bv_ashr_by_const_0": 3, "ashr": [3, 53, 74], "cvc5_proof_rewrite_rule_bv_ashr_by_const_1": 3, "cvc5_proof_rewrite_rule_bv_ashr_by_const_2": 3, "cvc5_proof_rewrite_rule_bv_and_concat_pullup": 3, "pullup": [3, 53, 74], "cvc5_proof_rewrite_rule_bv_or_concat_pullup": 3, "cvc5_proof_rewrite_rule_bv_xor_concat_pullup": 3, "cvc5_proof_rewrite_rule_bv_bitwise_idemp_1": 3, "cvc5_proof_rewrite_rule_bv_bitwise_idemp_2": 3, "cvc5_proof_rewrite_rule_bv_and_zero": 3, "cvc5_proof_rewrite_rule_bv_and_on": 3, "cvc5_proof_rewrite_rule_bv_or_on": 3, "cvc5_proof_rewrite_rule_bv_xor_dupl": 3, "cvc5_proof_rewrite_rule_bv_xor_on": 3, "cvc5_proof_rewrite_rule_bv_xor_zero": 3, "cvc5_proof_rewrite_rule_bv_bitwise_not_and": 3, "cvc5_proof_rewrite_rule_bv_bitwise_not_or": 3, "cvc5_proof_rewrite_rule_bv_xor_not": 3, "cvc5_proof_rewrite_rule_bv_not_idemp": 3, "cvc5_proof_rewrite_rule_bv_ult_zero_1": 3, "cvc5_proof_rewrite_rule_bv_ult_zero_2": 3, "cvc5_proof_rewrite_rule_bv_ult_self": 3, "cvc5_proof_rewrite_rule_bv_lt_self": 3, "cvc5_proof_rewrite_rule_bv_ule_self": 3, "cvc5_proof_rewrite_rule_bv_ule_zero": 3, "cvc5_proof_rewrite_rule_bv_zero_ul": 3, "cvc5_proof_rewrite_rule_bv_sle_self": 3, "cvc5_proof_rewrite_rule_bv_ule_max": 3, "cvc5_proof_rewrite_rule_bv_not_ult": 3, "cvc5_proof_rewrite_rule_bv_not_ul": 3, "cvc5_proof_rewrite_rule_bv_not_sl": 3, "cvc5_proof_rewrite_rule_bv_mult_pow2_1": 3, "pow2": [3, 51, 53, 69, 74, 131], "cvc5_proof_rewrite_rule_bv_mult_pow2_2": 3, "cvc5_proof_rewrite_rule_bv_mult_pow2_2b": 3, "2b": [3, 53, 74], "cvc5_proof_rewrite_rule_bv_extract_mult_leading_bit": 3, "lead": [3, 53, 74, 131], "cvc5_proof_rewrite_rule_bv_udiv_pow2_not_on": 3, "udiv": [3, 53, 74, 91], "cvc5_proof_rewrite_rule_bv_udiv_zero": 3, "cvc5_proof_rewrite_rule_bv_udiv_on": 3, "cvc5_proof_rewrite_rule_bv_urem_pow2_not_on": 3, "urem": [3, 53, 74, 91], "cvc5_proof_rewrite_rule_bv_urem_on": 3, "cvc5_proof_rewrite_rule_bv_urem_self": 3, "cvc5_proof_rewrite_rule_bv_shl_zero": 3, "cvc5_proof_rewrite_rule_bv_lshr_zero": 3, "cvc5_proof_rewrite_rule_bv_ashr_zero": 3, "cvc5_proof_rewrite_rule_bv_ugt_urem": 3, "cvc5_proof_rewrite_rule_bv_slt_zero": 3, "cvc5_proof_rewrite_rule_bv_merge_sign_extend_1": 3, "cvc5_proof_rewrite_rule_bv_merge_sign_extend_2": 3, "cvc5_proof_rewrite_rule_bv_merge_sign_extend_3": 3, "cvc5_proof_rewrite_rule_bv_sign_extend_eq_const_1": 3, "cvc5_proof_rewrite_rule_bv_sign_extend_eq_const_2": 3, "cvc5_proof_rewrite_rule_bv_zero_extend_eq_const_1": 3, "cvc5_proof_rewrite_rule_bv_zero_extend_eq_const_2": 3, "cvc5_proof_rewrite_rule_bv_sign_extend_ult_const_1": 3, "cvc5_proof_rewrite_rule_bv_sign_extend_ult_const_2": 3, "cvc5_proof_rewrite_rule_bv_sign_extend_ult_const_3": 3, "cvc5_proof_rewrite_rule_bv_sign_extend_ult_const_4": 3, "cvc5_proof_rewrite_rule_sets_eq_singleton_emp": 3, "emp": [3, 53, 74, 131, 145], "cvc5_proof_rewrite_rule_sets_member_singleton": 3, "cvc5_proof_rewrite_rule_sets_member_emp": 3, "cvc5_proof_rewrite_rule_sets_subset_elim": 3, "cvc5_proof_rewrite_rule_sets_union_comm": 3, "cvc5_proof_rewrite_rule_sets_inter_comm": 3, "cvc5_proof_rewrite_rule_sets_inter_emp1": 3, "emp1": [3, 53, 74], "cvc5_proof_rewrite_rule_sets_inter_emp2": 3, "emp2": [3, 53, 74], "cvc5_proof_rewrite_rule_sets_minus_emp1": 3, "cvc5_proof_rewrite_rule_sets_minus_emp2": 3, "cvc5_proof_rewrite_rule_sets_union_emp1": 3, "cvc5_proof_rewrite_rule_sets_union_emp2": 3, "cvc5_proof_rewrite_rule_sets_inter_memb": 3, "cvc5_proof_rewrite_rule_sets_minus_memb": 3, "cvc5_proof_rewrite_rule_sets_union_memb": 3, "cvc5_proof_rewrite_rule_sets_choose_singleton": 3, "cvc5_proof_rewrite_rule_sets_card_singleton": 3, "card": [3, 53, 74, 131, 140, 147], "cvc5_proof_rewrite_rule_sets_card_union": 3, "cvc5_proof_rewrite_rule_sets_card_minu": 3, "cvc5_proof_rewrite_rule_sets_card_emp": 3, "cvc5_proof_rewrite_rule_sets_minus_self": 3, "cvc5_proof_rewrite_rule_sets_is_empty_elim": 3, "cvc5_proof_rewrite_rule_str_eq_ctn_fals": 3, "ctn": [3, 53, 74], "cvc5_proof_rewrite_rule_str_eq_ctn_full_false1": 3, "full": [3, 6, 8, 11, 43, 50, 52, 53, 56, 58, 60, 70, 74, 76, 79, 87, 99, 101, 103, 105, 120, 131, 133], "cvc5_proof_rewrite_rule_str_eq_ctn_full_false2": 3, "cvc5_proof_rewrite_rule_str_concat_flatten": 3, "cvc5_proof_rewrite_rule_str_concat_flatten_eq": 3, "cvc5_proof_rewrite_rule_str_concat_flatten_eq_rev": 3, "rev": [3, 53, 74, 131, 146, 148], "cvc5_proof_rewrite_rule_str_substr_empty_str": 3, "cvc5_proof_rewrite_rule_str_substr_empty_rang": 3, "cvc5_proof_rewrite_rule_str_substr_empty_start": 3, "cvc5_proof_rewrite_rule_str_substr_empty_start_neg": 3, "cvc5_proof_rewrite_rule_str_substr_eq_empti": 3, "cvc5_proof_rewrite_rule_str_len_replace_inv": 3, "cvc5_proof_rewrite_rule_str_len_update_inv": 3, "cvc5_proof_rewrite_rule_str_len_substr_in_rang": 3, "cvc5_proof_rewrite_rule_str_len_substr_ub1": 3, "ub1": [3, 53, 74], "cvc5_proof_rewrite_rule_str_len_substr_ub2": 3, "ub2": [3, 53, 74], "cvc5_proof_rewrite_rule_str_concat_clash": 3, "cvc5_proof_rewrite_rule_str_concat_clash_rev": 3, "cvc5_proof_rewrite_rule_str_concat_clash2": 3, "clash2": [3, 53, 74], "cvc5_proof_rewrite_rule_str_concat_clash2_rev": 3, "cvc5_proof_rewrite_rule_str_concat_unifi": 3, "unifi": [3, 53, 74, 131], "cvc5_proof_rewrite_rule_str_concat_unify_rev": 3, "cvc5_proof_rewrite_rule_str_concat_unify_bas": 3, "cvc5_proof_rewrite_rule_str_concat_unify_base_rev": 3, "cvc5_proof_rewrite_rule_str_concat_clash_char": 3, "cvc5_proof_rewrite_rule_str_concat_clash_char_rev": 3, "cvc5_proof_rewrite_rule_str_prefixof_elim": 3, "prefixof": [3, 53, 74, 103, 146], "cvc5_proof_rewrite_rule_str_suffixof_elim": 3, "suffixof": [3, 53, 74, 103, 146], "cvc5_proof_rewrite_rule_str_prefixof_on": 3, "cvc5_proof_rewrite_rule_str_suffixof_on": 3, "cvc5_proof_rewrite_rule_str_substr_combine1": 3, "combine1": [3, 53, 74], "cvc5_proof_rewrite_rule_str_substr_combine2": 3, "combine2": [3, 53, 74], "cvc5_proof_rewrite_rule_str_substr_combine3": 3, "combine3": [3, 53, 74], "cvc5_proof_rewrite_rule_str_substr_combine4": 3, "combine4": [3, 53, 74], "cvc5_proof_rewrite_rule_str_substr_concat1": 3, "concat1": [3, 53, 74], "cvc5_proof_rewrite_rule_str_substr_concat2": 3, "concat2": [3, 53, 74], "cvc5_proof_rewrite_rule_str_substr_ful": 3, "cvc5_proof_rewrite_rule_str_substr_full_eq": 3, "cvc5_proof_rewrite_rule_str_contains_refl": 3, "cvc5_proof_rewrite_rule_str_contains_concat_find": 3, "find": [3, 7, 9, 11, 15, 19, 24, 25, 26, 28, 43, 52, 53, 70, 74, 79, 106, 115, 121, 123, 131, 140, 142, 147], "cvc5_proof_rewrite_rule_str_contains_split_char": 3, "cvc5_proof_rewrite_rule_str_contains_lt_len": 3, "cvc5_proof_rewrite_rule_str_contains_leq_len_eq": 3, "cvc5_proof_rewrite_rule_str_contains_emp": 3, "cvc5_proof_rewrite_rule_str_contains_is_emp": 3, "cvc5_proof_rewrite_rule_str_at_elim": 3, "cvc5_proof_rewrite_rule_str_replace_self": 3, "cvc5_proof_rewrite_rule_str_replace_prefix": 3, "cvc5_proof_rewrite_rule_str_replace_no_contain": 3, "cvc5_proof_rewrite_rule_str_replace_empti": 3, "cvc5_proof_rewrite_rule_str_replace_contains_pr": 3, "cvc5_proof_rewrite_rule_str_replace_all_no_contain": 3, "cvc5_proof_rewrite_rule_str_replace_re_non": 3, "cvc5_proof_rewrite_rule_str_replace_re_all_non": 3, "cvc5_proof_rewrite_rule_str_len_concat_rec": 3, "rec": [3, 11, 43, 53, 74, 79, 131, 143], "cvc5_proof_rewrite_rule_str_indexof_self": 3, "indexof": [3, 53, 74, 103, 146], "cvc5_proof_rewrite_rule_str_indexof_no_contain": 3, "cvc5_proof_rewrite_rule_str_indexof_contains_pr": 3, "cvc5_proof_rewrite_rule_str_indexof_re_non": 3, "cvc5_proof_rewrite_rule_str_to_lower_concat": 3, "cvc5_proof_rewrite_rule_str_to_upper_concat": 3, "cvc5_proof_rewrite_rule_str_to_lower_upp": 3, "cvc5_proof_rewrite_rule_str_to_upper_low": 3, "cvc5_proof_rewrite_rule_str_to_lower_len": 3, "cvc5_proof_rewrite_rule_str_to_upper_len": 3, "cvc5_proof_rewrite_rule_str_to_lower_from_int": 3, "cvc5_proof_rewrite_rule_str_to_upper_from_int": 3, "cvc5_proof_rewrite_rule_str_to_int_concat_neg_on": 3, "cvc5_proof_rewrite_rule_str_leq_empti": 3, "cvc5_proof_rewrite_rule_str_leq_empty_eq": 3, "cvc5_proof_rewrite_rule_str_leq_concat_fals": 3, "cvc5_proof_rewrite_rule_str_leq_concat_tru": 3, "cvc5_proof_rewrite_rule_str_lt_elim": 3, "cvc5_proof_rewrite_rule_re_all_elim": 3, "cvc5_proof_rewrite_rule_re_opt_elim": 3, "opt": [3, 53, 74, 131], "cvc5_proof_rewrite_rule_re_diff_elim": 3, "diff": [3, 27, 48, 53, 74, 85, 103, 117, 131, 140], "cvc5_proof_rewrite_rule_re_concat_emp": 3, "cvc5_proof_rewrite_rule_re_concat_non": 3, "cvc5_proof_rewrite_rule_re_concat_flatten": 3, "cvc5_proof_rewrite_rule_re_concat_star_swap": 3, "swap": [3, 53, 74], "cvc5_proof_rewrite_rule_re_concat_star_repeat": 3, "cvc5_proof_rewrite_rule_re_concat_merg": 3, "cvc5_proof_rewrite_rule_re_union_al": 3, "cvc5_proof_rewrite_rule_re_union_non": 3, "cvc5_proof_rewrite_rule_re_union_flatten": 3, "cvc5_proof_rewrite_rule_re_union_dup": 3, "dup": [3, 53, 74], "cvc5_proof_rewrite_rule_re_inter_al": 3, "cvc5_proof_rewrite_rule_re_inter_non": 3, "cvc5_proof_rewrite_rule_re_inter_flatten": 3, "cvc5_proof_rewrite_rule_re_inter_dup": 3, "cvc5_proof_rewrite_rule_re_star_non": 3, "cvc5_proof_rewrite_rule_re_loop_neg": 3, "cvc5_proof_rewrite_rule_re_inter_cstr": 3, "cstring": [3, 53, 74], "cvc5_proof_rewrite_rule_re_inter_cstring_neg": 3, "cvc5_proof_rewrite_rule_str_substr_len_includ": 3, "cvc5_proof_rewrite_rule_str_substr_len_include_pr": 3, "cvc5_proof_rewrite_rule_str_substr_len_skip": 3, "skip": [3, 45, 53, 74, 130, 131], "cvc5_proof_rewrite_rule_seq_len_rev": 3, "cvc5_proof_rewrite_rule_seq_rev_rev": 3, "cvc5_proof_rewrite_rule_seq_rev_concat": 3, "cvc5_proof_rewrite_rule_seq_len_unit": 3, "cvc5_proof_rewrite_rule_seq_nth_unit": 3, "cvc5_proof_rewrite_rule_seq_rev_unit": 3, "cvc5_proof_rewrite_rule_seq_len_empti": 3, "cvc5_proof_rewrite_rule_re_in_empti": 3, "cvc5_proof_rewrite_rule_re_in_sigma": 3, "cvc5_proof_rewrite_rule_re_in_sigma_star": 3, "cvc5_proof_rewrite_rule_re_in_cstr": 3, "cvc5_proof_rewrite_rule_re_in_comp": 3, "cvc5_proof_rewrite_rule_str_in_re_union_elim": 3, "cvc5_proof_rewrite_rule_str_in_re_inter_elim": 3, "cvc5_proof_rewrite_rule_str_in_re_range_elim": 3, "cvc5_proof_rewrite_rule_str_in_re_contain": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_prefix": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_prefix_neg": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_prefix_sr_singl": 3, "sr": [3, 53, 74], "cvc5_proof_rewrite_rule_str_in_re_strip_prefix_sr_single_neg": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_prefix_srs_singl": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_prefix_srs_single_neg": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_prefix_s_singl": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_prefix_s_single_neg": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_prefix_bas": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_prefix_base_neg": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_prefix_base_s_singl": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_prefix_base_s_single_neg": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_char": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_char_s_singl": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_prefix_rev": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_prefix_neg_rev": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_prefix_sr_single_rev": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_prefix_sr_single_neg_rev": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_prefix_srs_single_rev": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_prefix_srs_single_neg_rev": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_prefix_s_single_rev": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_prefix_s_single_neg_rev": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_prefix_base_rev": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_prefix_base_neg_rev": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_prefix_base_s_single_rev": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_prefix_base_s_single_neg_rev": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_char_rev": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_char_s_single_rev": 3, "cvc5_proof_rewrite_rule_str_in_re_req_unfold": 3, "req": [3, 53, 74], "cvc5_proof_rewrite_rule_str_in_re_req_unfold_rev": 3, "cvc5_proof_rewrite_rule_str_in_re_skip_unfold": 3, "cvc5_proof_rewrite_rule_str_in_re_skip_unfold_rev": 3, "cvc5_proof_rewrite_rule_str_in_re_test_unfold": 3, "test": [3, 7, 8, 52, 53, 58, 60, 70, 74, 76, 92, 103, 105, 108, 110, 112, 114, 131, 132, 133, 134, 136, 141], "cvc5_proof_rewrite_rule_str_in_re_test_unfold_rev": 3, "cvc5_proof_rewrite_rule_eq_refl": 3, "cvc5_proof_rewrite_rule_eq_symm": 3, "symm": [3, 53, 74], "cvc5_proof_rewrite_rule_eq_cond_deq": 3, "deq": [3, 53, 74, 131], "cvc5_proof_rewrite_rule_eq_ite_lift": 3, "cvc5_proof_rewrite_rule_distinct_binary_elim": 3, "cvc5_proof_rewrite_rule_uf_bv2nat_int2bv": 3, "cvc5_proof_rewrite_rule_uf_bv2nat_int2bv_extend": 3, "cvc5_proof_rewrite_rule_uf_bv2nat_int2bv_extract": 3, "cvc5_proof_rewrite_rule_uf_int2bv_bv2nat": 3, "cvc5_proof_rewrite_rule_uf_bv2nat_geq_elim": 3, "cvc5_proof_rewrite_rule_uf_int2bv_bvult_equiv": 3, "bvult": [3, 53, 74, 91], "cvc5_proof_rewrite_rule_uf_int2bv_bvule_equiv": 3, "bvule": [3, 53, 74, 91], "cvc5_proof_rewrite_rule_last": 3, "cvc5_proof_rewrite_rule_to_str": 3, "cvc5_proof_rewrite_rule_hash": 3, "mani": [4, 54, 131], "thu": [4, 11, 13, 14, 16, 17, 18, 20, 21, 22, 23, 27, 28, 35, 49, 54, 79, 86, 106, 109, 117, 130, 139, 150], "certain": [4, 20, 38, 54, 57, 71, 130, 132, 134, 139], "directli": [4, 8, 27, 28, 43, 48, 49, 54, 69, 120, 130, 131], "lib": [4, 11, 16, 23, 25, 33, 43, 44, 46, 49, 54, 59, 65, 78, 79, 80, 83, 86, 102, 104, 105, 109, 130, 131, 133, 134, 138, 139, 140, 143, 144, 145, 146, 148, 149], "turn": [4, 7, 8, 52, 54, 58, 60, 70, 76, 85, 99, 105, 120, 131, 144], "iee19": [4, 54, 138], "section": [4, 54, 95, 131], "cvc5_rm_round_nearest_ties_to_even": [4, 115], "nearest": [4, 54, 78, 95], "bracket": [4, 54, 78], "unrepresent": [4, 54, 78], "signific": [4, 54, 78, 91], "deliv": [4, 54, 78], "cvc5_rm_round_toward_posit": [4, 115], "infin": [4, 27, 43, 48, 49, 54, 78, 79, 85, 86, 115, 131, 140], "oo": [4, 27, 43, 48, 49, 54, 78, 95, 115], "shall": [4, 54, 78], "closest": [4, 54, 78], "cvc5_rm_round_toward_neg": [4, 115], "cvc5_rm_round_toward_zero": 4, "magnitud": [4, 54, 78], "cvc5_rm_round_nearest_ties_to_awai": 4, "awai": [4, 54, 78, 95, 110], "larger": [4, 54, 78], "cvc5_rm_last": 4, "cvc5_rm_to_str": 4, "rm": [4, 43, 49, 54, 79, 86, 95, 115, 131], "cvc5_sort_kind_internal_sort_kind": 5, "cvc5_sort_kind_undefined_sort_kind": 5, "cvc5_sort_kind_null_sort": 5, "cvc5_sort_kind_abstract_sort": 5, "unspecifi": [5, 43, 49, 55, 79, 81, 86], "mkabstractsort": [5, 43, 49, 55, 79, 81, 86], "bitvector_sort": [5, 43, 49, 55, 79, 81, 86], "sortkind": [5, 43, 44, 49, 50, 80, 86], "cvc5_sort_kind_array_sort": 5, "mkarraysort": [5, 43, 49, 55, 79, 81, 86, 108], "cvc5_sort_kind_bag_sort": 5, "mkbagsort": [5, 43, 44, 49, 55, 79, 80, 81, 86, 106, 142], "cvc5_sort_kind_boolean_sort": 5, "getbooleansort": [5, 43, 44, 49, 55, 79, 80, 81, 86, 109, 116, 125, 126, 127], "cvc5_sort_kind_bitvector_sort": 5, "mkbitvectorsort": [5, 43, 44, 49, 55, 79, 80, 81, 86, 107, 108, 113], "cvc5_sort_kind_datatype_sort": 5, "mkdatatypesort": [5, 32, 33, 43, 49, 55, 64, 65, 79, 81, 86, 110, 143], "datatypedecl": [5, 30, 43, 49, 50, 55, 59, 62, 75, 110], "cvc5_sort_kind_finite_field_sort": 5, "mkfinitefieldsort": [5, 43, 49, 55, 79, 81, 86, 114, 144], "cvc5_sort_kind_floatingpoint_sort": 5, "mkfloatingpointsort": [5, 43, 49, 55, 79, 81, 86, 115], "cvc5_sort_kind_function_sort": 5, "mkfunctionsort": [5, 43, 49, 55, 79, 81, 86, 109, 127], "cvc5_sort_kind_integer_sort": 5, "getintegersort": [5, 8, 43, 49, 55, 58, 60, 76, 79, 81, 86, 99, 105, 109, 110, 112, 117, 120, 121, 122, 123, 125, 126, 127, 143, 146, 147], "cvc5_sort_kind_real_sort": 5, "getrealsort": [5, 8, 43, 49, 55, 58, 60, 76, 79, 81, 86, 99, 105, 117, 120, 150], "cvc5_sort_kind_reglan_sort": 5, "getregexpsort": [5, 43, 49, 55, 79, 81, 86], "cvc5_sort_kind_roundingmode_sort": 5, "getroundingmodesort": [5, 43, 49, 55, 79, 81, 86], "cvc5_sort_kind_sequence_sort": 5, "mksequencesort": [5, 43, 49, 55, 79, 81, 86, 122, 146], "cvc5_sort_kind_set_sort": 5, "mksetsort": [5, 43, 44, 49, 55, 79, 80, 81, 86, 121, 123, 147], "cvc5_sort_kind_string_sort": 5, "getstringsort": [5, 43, 49, 55, 79, 81, 86, 106, 124, 142], "cvc5_sort_kind_tuple_sort": 5, "mktuplesort": [5, 43, 49, 55, 79, 81, 86, 121, 143, 147], "cvc5_sort_kind_nullable_sort": 5, "mknullablesort": [5, 43, 49, 55, 79, 81, 86], "cvc5_sort_kind_uninterpreted_sort": 5, "mkuninterpretedsort": [5, 43, 44, 49, 55, 79, 81, 86, 109, 121, 127, 147], "cvc5_sort_kind_last_sort_kind": 5, "cvc5_sort_kind_to_str": 5, "cvc5_sort_kind_hash": 5, "explan": [6, 22, 42, 56, 77, 87, 105, 131, 139], "unknown": [6, 8, 11, 22, 26, 42, 43, 47, 52, 53, 56, 58, 60, 70, 74, 76, 77, 79, 84, 87, 99, 102, 105, 120, 131, 132, 139], "cvc5_unknown_explanation_requires_full_check": 6, "preprocess": [6, 7, 52, 56, 70, 87, 131, 132, 139], "wa": [6, 7, 9, 11, 22, 23, 27, 37, 39, 42, 43, 44, 47, 48, 52, 56, 57, 68, 70, 77, 79, 84, 87, 131, 132, 133, 134, 140, 141], "cvc5_unknown_explanation_incomplet": 6, "incomplet": [6, 56, 87, 131, 134], "cvc5_unknown_explanation_timeout": 6, "cvc5_unknown_explanation_resourceout": 6, "resourc": [6, 13, 14, 16, 17, 18, 20, 21, 22, 23, 27, 56, 87, 129, 131], "cvc5_unknown_explanation_memout": 6, "cvc5_unknown_explanation_interrupt": 6, "interrupt": [6, 56, 87, 139], "cvc5_unknown_explanation_unsupport": 6, "unsupport": [6, 56, 87], "encount": [6, 56, 57, 87, 131], "cvc5_unknown_explanation_oth": 6, "cvc5_unknown_explanation_requires_check_again": 6, "cvc5_unknown_explanation_unknown_reason": 6, "No": [6, 56, 87, 121, 131], "cvc5_unknown_explanation_last": 6, "cvc5_unknown_explanation_to_str": 6, "cvc5_block_model": [7, 11], "block": [7, 11, 43, 52, 70, 79, 131, 143], "blockmodel": [7, 43, 52, 70, 79], "blockmodelvalu": [7, 43, 52, 79], "cvc5_block_models_mode_liter": 7, "skeleton": [7, 52, 70], "cvc5_block_models_mode_valu": 7, "concret": [7, 37, 52, 68, 70, 92, 134, 143], "cvc5_block_models_mode_last": 7, "cvc5_modes_block_models_mode_to_str": 7, "learn": [7, 10, 11, 40, 43, 52, 70, 72, 79, 131], "categori": [7, 52, 70, 130], "getlearnedliter": [7, 43, 52, 79], "classifi": [7, 52], "criteria": [7, 52, 131], "meet": [7, 52, 131], "cvc5_learned_lit_type_preprocess_solv": 7, "cvc5_learned_lit_type_preprocess": 7, "cvc5_learned_lit_type_input": 7, "typic": [7, 52, 70], "interest": [7, 11, 43, 52, 70, 79, 109, 130, 131], "cvc5_learned_lit_type_solv": 7, "solvabl": [7, 52, 70, 131], "cvc5_learned_lit_type_constant_prop": 7, "made": [7, 11, 43, 52, 70, 79, 132], "cvc5_learned_lit_type_intern": 7, "fall": [7, 52, 70], "cvc5_learned_lit_type_unknown": 7, "produc": [7, 8, 11, 43, 52, 58, 60, 70, 76, 79, 92, 99, 102, 105, 106, 108, 109, 112, 114, 115, 120, 121, 122, 123, 124, 130, 131, 133, 134, 136, 137, 142, 147], "cvc5_learned_lit_type_last": 7, "cvc5_modes_learned_lit_type_to_str": 7, "cvc5_proof_component_raw_preprocess": 7, "g1": [7, 52, 70], "gn": [7, 52, 70], "fm": [7, 52, 70], "cvc5_proof_component_preprocess": 7, "gu1": [7, 52, 70], "gun": [7, 52, 70], "fu1": [7, 52, 70], "fum": [7, 52, 70], "befor": [7, 11, 43, 49, 52, 57, 70, 79, 130, 131, 132, 140], "search": [7, 13, 14, 30, 31, 52, 62, 63, 70, 130, 131], "immedi": [7, 11, 43, 52, 70, 79, 139, 140], "respons": [7, 11, 27, 43, 46, 48, 52, 70, 79, 83, 131], "cvc5_proof_component_sat": 7, "l1": [7, 52, 70, 93], "lk": [7, 52, 70], "cvc5_proof_component_theory_lemma": 7, "cvc5_proof_component_ful": 7, "cvc5_proof_component_last": 7, "cvc5_modes_proof_component_to_str": 7, "pc": [7, 52, 53], "cvc5_proof_format_non": 7, "do": [7, 8, 11, 43, 45, 52, 58, 60, 70, 76, 79, 88, 92, 99, 102, 105, 107, 108, 118, 119, 120, 131], "cvc5_proof_format_dot": 7, "cvc5_proof_format_lfsc": 7, "cvc5_proof_format_aleth": 7, "cvc5_proof_format_cpc": 7, "cooper": [7, 52, 70, 131, 137], "eunoia": [7, 52, 70, 134], "signatur": [7, 52, 70, 131, 132, 134, 136], "cvc5_proof_format_default": 7, "cvc5_proof_format_last": 7, "cvc5_modes_proof_format_to_str": 7, "synthesi": [7, 11, 26, 43, 47, 52, 79, 84, 97, 125, 126, 131], "findsynth": [7, 43, 52, 70, 79], "variou": [7, 52, 131], "found": [7, 11, 13, 30, 43, 52, 59, 62, 79, 130, 131, 134, 137, 147], "cvc5_find_synth_target_enum": 7, "next": [7, 8, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 27, 37, 43, 52, 58, 60, 68, 70, 76, 79, 82, 99, 105, 106, 109, 110, 120, 131, 140], "grammar": [7, 11, 18, 41, 43, 50, 52, 59, 70, 75, 79, 125, 131, 145], "cvc5_find_synth_target_rewrit": 7, "8212": [7, 52], "sygu": [7, 11, 18, 26, 36, 43, 47, 52, 67, 70, 79, 84, 97, 104, 111, 131], "synthes": [7, 11, 43, 52, 70, 79, 125, 126, 131, 132], "scratch": [7, 52, 70], "cvc5_find_synth_target_rewrite_unsound": 7, "cvc5_find_synth_target_rewrite_input": 7, "matchabl": [7, 52, 70], "problem": [7, 11, 43, 52, 70, 79, 102, 107, 108, 111, 114, 115, 121, 129, 130, 131, 132, 147], "cvc5_find_synth_target_queri": 7, "algorithm": [7, 52, 70, 131], "gen": [7, 52, 70, 131], "solv": [7, 8, 11, 43, 52, 58, 60, 70, 76, 79, 89, 91, 92, 93, 94, 97, 99, 105, 107, 108, 109, 110, 111, 113, 114, 115, 116, 117, 120, 121, 122, 123, 124, 125, 126, 127, 130, 131, 132, 138, 139, 141, 147], "cvc5_find_synth_target_last": 7, "cvc5_modes_find_synth_target_to_str": 7, "Then": [8, 19, 37, 58, 60, 68, 76, 130, 139, 140], "slv": [8, 46, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 142, 147, 150], "ask": [8, 58, 60, 76, 99, 105, 112, 120], "cvc5_set_opt": [8, 11, 28, 106, 108, 109, 114, 115, 118, 120, 121, 122, 123, 124, 125, 126], "simplest": [8, 58, 60, 76, 99, 105, 120], "qf_all": [8, 58, 60, 76, 99, 105, 120, 145, 147], "To": [8, 58, 60, 76, 93, 99, 102, 105, 110, 120, 130, 139, 140, 143, 145, 150], "optim": [8, 58, 60, 76, 99, 105, 120, 131], "behavior": [8, 58, 60, 76, 99, 105, 120], "qf_bv": [8, 58, 60, 76, 99, 105, 107, 113, 120], "qf_aufbv": [8, 58, 60, 76, 99, 105, 120], "cvc5_set_log": [8, 11, 106, 107, 108, 109, 113, 117, 120, 121, 122, 123, 124, 125, 126, 127], "real_sort": [8, 55, 81, 120], "cvc5_get_real_sort": [8, 117, 120], "int_sort": [8, 109, 120, 123, 125, 126], "now": [8, 58, 60, 76, 93, 99, 105, 110, 115, 118, 119, 120, 131], "regard": [8, 58, 60, 76, 99, 105, 120], "them": [8, 46, 58, 60, 76, 83, 99, 102, 105, 110, 120, 131, 132, 133, 134, 136, 140], "Their": [8, 58, 60, 76, 99, 105, 120], "gradual": [8, 58, 60, 76, 99, 105, 120], "numer": [8, 11, 27, 39, 43, 48, 49, 58, 60, 62, 63, 76, 79, 86, 89, 91, 94, 95, 99, 105, 120, 131, 144], "cvc5_mk_real_int64": [8, 120], "x_plus_i": [8, 120], "src": [8, 58, 60, 76, 99, 103, 105, 120, 146], "cvc5_kind": [8, 58, 60, 76, 99, 105, 120], "constraint1": [8, 58, 60, 76, 99, 105, 120], "constraint2": [8, 58, 60, 76, 99, 105, 120], "constraint3": [8, 58, 60, 76, 99, 105, 120], "constraint4": [8, 58, 60, 76, 99, 105, 120], "cvc5_result_is_sat": [8, 22, 106, 114, 115, 122, 123, 124], "cvc5_result_is_unsat": [8, 22, 114, 115], "cvc5_result_is_unknown": [8, 22], "printf": [8, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127], "cvc5_result_to_str": [8, 22, 106, 107, 108, 109, 110, 113, 115, 116, 117, 118, 120, 121, 122, 123, 124, 127], "x_val": [8, 120], "cvc5_get_valu": [8, 11, 27, 106, 108, 109, 114, 115, 120, 121, 122, 123, 124], "y_val": [8, 120], "x_minus_i": [8, 120], "x_minus_y_v": [8, 120], "cvc5_term_get_real_valu": [8, 27, 120], "until": [8, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 27, 44, 48, 80, 85, 106, 109, 118, 119, 120, 131, 139], "x_str": [8, 120], "strdup": [8, 120], "y_str": [8, 120], "x_minus_y_str": [8, 120], "you": [8, 88, 109, 110, 120, 130], "6": [8, 14, 16, 31, 33, 58, 59, 60, 63, 65, 76, 89, 91, 99, 105, 120, 130, 133, 138, 143, 145], "further": [8, 13, 14, 16, 17, 18, 20, 21, 22, 23, 27, 58, 60, 76, 99, 105, 120, 130, 131], "x_num": [8, 120], "x_den": [8, 120], "cvc5_term_get_real64_valu": [8, 27, 120], "y_num": [8, 120], "y_den": [8, 120], "x_minus_y_num": [8, 120], "x_minus_y_den": [8, 120], "prid64": [8, 120], "priu64": [8, 120], "independ": [8, 45, 49, 58, 60, 76, 86, 99, 105, 120, 131], "would": [8, 43, 49, 58, 60, 76, 79, 86, 88, 99, 105, 120], "complex": [8, 58, 60, 76, 99, 105, 120, 131], "easier": [8, 45, 58, 60, 76, 99, 105, 120], "x_minus_y_num_comput": [8, 120], "x_minus_y_den_comput": [8, 120], "gcd": [8, 58, 60, 76, 99, 105, 120], "correctli": [8, 58, 60, 76, 99, 105, 120], "incorrectli": [8, 58, 60, 76, 99, 105, 120], "reset": [8, 11, 43, 58, 60, 76, 79, 99, 102, 105, 120, 145], "cvc5_reset_assert": [8, 11, 120], "inlin": [8, 57, 58, 60, 76, 99, 105, 120], "command": [8, 11, 12, 16, 19, 25, 33, 37, 43, 46, 50, 58, 59, 60, 65, 68, 75, 76, 83, 88, 99, 102, 104, 105, 110, 118, 119, 120, 125, 126, 130, 131, 139, 141, 143, 145], "revis": [8, 58, 60, 76, 99, 105, 120, 138], "cvc5_result_releas": [8, 22, 114, 115, 120], "alreadi": [8, 11, 16, 19, 33, 37, 43, 49, 58, 60, 68, 76, 88, 92, 99, 105, 120, 130, 131], "unsat_cor": [8, 102, 120], "cvc5_get_unsat_cor": [8, 11, 120], "lu": [8, 120], "cvc5_term_to_str": [8, 27, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 119, 120, 121, 122, 123, 124, 125, 126], "contributor": [8, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 142, 147, 150], "yoni": [8, 58, 60, 76, 99, 105, 120, 122, 124, 125, 126, 127], "zohar": [8, 58, 60, 76, 99, 105, 120, 122, 124, 125, 126, 127], "aina": [8, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 142, 147, 150], "niemetz": [8, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 142, 147, 150], "gereon": [8, 58, 60, 76, 99, 105, 120, 138, 150], "kremer": [8, 58, 60, 76, 99, 105, 120, 138, 150], "copyright": [8, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 131, 142, 147, 150], "2009": [8, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 131, 138, 142, 147, 150], "2024": [8, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 138, 142, 147, 150], "author": [8, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 142, 147, 150], "sourc": [8, 19, 37, 58, 60, 68, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 129, 130, 132, 142, 147, 150], "directori": [8, 9, 15, 19, 24, 25, 26, 28, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 136, 142, 147, 150], "institut": [8, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 142, 147, 150], "affili": [8, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 142, 147, 150], "reserv": [8, 58, 60, 76, 95, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 142, 147, 150], "licens": [8, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 142, 147, 150], "simpl": [8, 58, 60, 76, 97, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 131, 132, 133, 134, 136, 142, 147, 150], "demonstr": [8, 58, 60, 76, 99, 102, 105, 106, 107, 108, 109, 110, 112, 113, 115, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 142, 147, 150], "capabl": [8, 58, 60, 76, 99, 105, 107, 108, 109, 110, 113, 115, 117, 120, 121, 122, 123, 124, 125, 126, 127, 147], "iostream": [8, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 142, 147, 150], "namespac": [8, 50, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 142, 147, 150], "doc": [8, 9, 15, 19, 24, 25, 26, 28, 58, 60, 76, 99, 105, 120, 130], "termmanag": [8, 30, 31, 38, 40, 43, 44, 45, 46, 48, 50, 58, 59, 60, 62, 63, 71, 72, 76, 79, 80, 85, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 142, 147, 150], "henc": [8, 58, 60, 76, 99, 105, 120], "setopt": [8, 43, 58, 60, 76, 79, 99, 102, 105, 106, 108, 109, 112, 114, 115, 118, 120, 121, 122, 123, 124, 125, 126, 131, 142, 147], "setlog": [8, 11, 43, 58, 60, 76, 79, 99, 105, 106, 107, 108, 109, 113, 114, 115, 117, 120, 121, 122, 123, 124, 125, 126, 127, 142, 143, 144, 145, 146, 147, 150], "realsort": [8, 58, 60, 76, 89, 91, 92, 98, 99, 100, 105, 120], "intsort": [8, 58, 60, 76, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 103, 105, 109, 110, 120, 122, 123, 146], "jargon": [8, 58, 60, 76, 99, 105, 120], "5": [8, 58, 59, 60, 76, 89, 91, 92, 93, 95, 99, 100, 102, 103, 105, 109, 112, 114, 120, 130, 131, 132, 139, 140, 141, 143], "our": [8, 58, 60, 76, 99, 105, 110, 120, 130, 147], "xplusi": [8, 58, 60, 76, 99, 105, 120], "assertformula": [8, 43, 58, 60, 76, 79, 99, 105, 107, 108, 109, 110, 113, 114, 115, 117, 120, 121, 127, 147, 150], "7": [8, 58, 60, 76, 91, 94, 95, 99, 102, 105, 113, 120, 125, 130, 138, 143, 144], "r1": [8, 58, 60, 76, 99, 103, 105, 120], "checksat": [8, 11, 41, 42, 43, 58, 60, 73, 76, 77, 79, 99, 105, 107, 108, 109, 110, 112, 114, 115, 117, 118, 120, 121, 127, 131, 139, 147, 150], "8": [8, 58, 60, 76, 89, 91, 95, 99, 105, 113, 115, 120, 130, 131], "cout": [8, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 142, 147, 150], "endl": [8, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 142, 147, 150], "xval": [8, 58, 60, 76, 99, 105, 120], "getvalu": [8, 43, 48, 58, 60, 76, 79, 99, 105, 106, 108, 109, 114, 115, 120, 121, 122, 123, 124, 142, 147], "yval": [8, 58, 60, 76, 99, 105, 120], "compound": [8, 58, 60, 76, 99, 105, 120], "xminusi": [8, 58, 60, 76, 99, 105, 120], "xminusyv": [8, 58, 60, 76, 99, 105, 120], "11": [8, 58, 60, 76, 95, 99, 105, 120, 126, 130, 131, 132, 133, 138], "xstr": [8, 58, 60, 76, 99, 105, 120], "getrealvalu": [8, 48, 58, 60, 76, 85, 99, 105, 120], "ystr": [8, 58, 60, 76, 99, 105, 120], "xminusystr": [8, 58, 60, 76, 99, 105, 120], "12": [8, 43, 49, 58, 60, 76, 99, 102, 105, 120], "xpair": [8, 58, 60, 76, 99, 105, 120], "getreal64valu": [8, 48, 58, 60, 76, 99, 105, 120], "ypair": [8, 58, 60, 76, 99, 105, 120], "xminusypair": [8, 58, 60, 76, 99, 105, 120], "13": [8, 58, 60, 76, 99, 105, 120, 136, 138], "xminusycomput": [8, 58, 60, 76, 99, 105, 120], "14": [8, 58, 60, 76, 99, 105, 115, 120], "resetassert": [8, 43, 58, 60, 76, 79, 99, 102, 105, 120], "15": [8, 58, 60, 76, 99, 105, 120], "16": [8, 27, 43, 48, 49, 58, 60, 76, 85, 91, 95, 99, 105, 115, 120, 130, 131], "r2": [8, 58, 60, 76, 99, 103, 105, 120], "17": [8, 58, 60, 76, 94, 99, 105, 120, 133, 138], "18": [8, 58, 60, 76, 99, 105, 120, 130, 138, 150], "unsatcor": [8, 58, 60, 76, 99, 105, 120], "getunsatcor": [8, 43, 58, 60, 76, 79, 99, 105, 120], "stdio": [8, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127], "stdlib": [8, 120, 125, 126], "inttyp": [8, 120], "int32_t": [8, 27, 48, 109, 120], "19": [8, 120, 138], "mudathir": [8, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 142, 147, 150], "moham": [8, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 142, 147, 150], "andr": [8, 58, 60, 76, 99, 105, 106, 109, 112, 113, 115, 120, 121, 122, 123, 124, 125, 126, 138, 142, 147, 150], "noetzli": [8, 58, 60, 76, 99, 105, 106, 109, 112, 113, 115, 120, 121, 122, 123, 124, 125, 126, 142, 147, 150], "import": [8, 58, 60, 76, 88, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 142, 147, 150], "io": [8, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 142, 147, 150], "math": [8, 58, 60, 76, 99, 105, 108, 120, 140], "biginteg": [8, 58, 59, 60, 76, 99, 105, 120], "util": [8, 58, 59, 60, 76, 97, 99, 105, 107, 108, 109, 110, 114, 120, 125, 126, 127, 131], "arraylist": [8, 58, 60, 76, 99, 105, 108, 120, 125, 126], "public": [8, 9, 10, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 51, 53, 55, 57, 58, 60, 72, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 131, 141, 142, 147, 150], "void": [8, 9, 10, 11, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 27, 29, 32, 33, 36, 37, 40, 43, 44, 49, 57, 58, 60, 72, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 142, 147, 150], "throw": [8, 45, 57, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 113, 114, 115, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 142, 147, 150], "cvc5apiexcept": [8, 50, 57, 58, 59, 60, 76, 99, 105, 106, 107, 108, 109, 110, 113, 114, 115, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 142, 147, 150], "system": [8, 58, 60, 76, 99, 102, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 131, 139, 142, 147, 150], "println": [8, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 142, 147, 150], "aslist": [8, 58, 60, 76, 99, 105, 120], "deletepoint": [8, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 120, 121, 122, 123, 124, 125, 126, 127, 142, 147, 150], "pgm": [8, 58, 60, 76, 105, 112], "example_quickstart": [8, 58, 60, 76, 105], "py": [8, 58, 60, 69, 76, 79, 86, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 142, 147, 150], "__name__": [8, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 142, 147, 150], "__main__": [8, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 142, 147, 150], "confirm": [8, 58, 60, 76, 99, 105, 120], "assign": [8, 11, 30, 31, 43, 45, 48, 58, 60, 76, 79, 92, 99, 102, 105, 107, 110, 120, 131], "decim": [8, 27, 43, 48, 49, 58, 60, 76, 79, 85, 86, 89, 99, 105, 120, 131], "as_decim": [8, 58, 60, 76, 89, 99, 105, 120], "fraction": [8, 58, 60, 76, 79, 85, 86, 89, 99, 105, 120], "as_fract": [8, 58, 60, 76, 89, 99, 105, 120], "report": [8, 58, 60, 76, 99, 105, 106, 117, 120, 122, 123, 124, 131, 138, 142, 147, 150], "solut": [8, 11, 26, 43, 47, 58, 60, 76, 79, 84, 89, 91, 92, 93, 94, 99, 102, 105, 114, 120, 125, 126, 131, 132], "usr": [8, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 142, 147, 150], "bin": [8, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 132, 133, 134, 136, 141, 142, 147, 150], "env": [8, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 142, 147, 150], "alex": [8, 58, 60, 76, 99, 105, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 120, 121, 123, 124, 125, 126, 138, 147, 150], "ozdemir": [8, 58, 60, 76, 99, 105, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 120, 121, 123, 124, 125, 126, 138, 147, 150], "adapt": [8, 58, 60, 76, 99, 105, 107, 116, 120], "xpy": [8, 58, 60, 76, 99, 105, 120], "ypy": [8, 58, 60, 76, 99, 105, 120], "xminusypi": [8, 58, 60, 76, 99, 105, 120], "smtlib": [8, 58, 60, 76, 99, 102, 105, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 120, 121, 122, 123, 124, 125, 126, 127, 130, 142, 143, 145, 147, 150], "smt2": [8, 25, 46, 58, 60, 76, 83, 97, 99, 105, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 120, 121, 122, 123, 124, 127, 132, 133, 134, 136, 141, 142, 143, 147, 150], "echo": [8, 58, 60, 76, 99, 105, 107, 109, 113, 115, 117, 120, 123, 147], "struct": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 32, 33, 34, 36, 38, 39, 41, 44, 48, 51, 53, 55], "encapsul": [9, 10, 12, 13, 15, 16, 18, 21, 22, 26, 29, 30, 32, 33, 36, 38, 39, 40, 41, 42, 47, 61, 62, 64, 65, 67, 71, 72, 73, 77, 84], "cvc5_get_option_info": [9, 11, 28], "info": [9, 11, 39, 43, 79, 144, 145, 146], "cvc5_option_info_void": 9, "cvc5_option_info_bool": 9, "cvc5_option_info_str": 9, "cvc5_option_info_int64": 9, "int64": [9, 27, 48], "cvc5_option_info_uint64": 9, "uint64": [9, 27, 48], "cvc5_option_info_doubl": 9, "cvc5_option_info_mod": 9, "alias": [9, 39, 102, 131], "concern": [9, 39], "inspect": [9, 24, 27, 39, 45, 48, 85, 131, 141], "cvc5_get_opt": [9, 11, 28], "nativ": [9, 27, 39, 48, 85, 130], "boolinfo": 9, "stringinfo": 9, "intinfo": 9, "uintinfo": 9, "doubleinfo": 9, "modeinfo": [9, 39], "valuesof": 9, "num_alias": 9, "is_set_by_us": 9, "is_expert": 9, "expert": [9, 39, 131], "is_regular": 9, "d_cpp_info": 9, "dflt": 9, "cur": 9, "has_min": 9, "has_max": 9, "num_mod": 9, "doxygengroup": [9, 15, 19, 24, 25, 26, 28], "c_cvc5optioninfo": 9, "doxygen": [9, 15, 19, 24, 25, 26, 28, 130], "xml": [9, 15, 19, 24, 25, 26, 28], "cvc5_c": [9, 15, 19, 24, 25, 26, 28], "home": [9, 15, 19, 24, 25, 26, 28], "runner": [9, 15, 19, 24, 25, 26, 28], "work": [9, 11, 15, 19, 24, 25, 26, 28, 88, 130, 131, 139], "build": [9, 15, 19, 24, 25, 26, 28, 88, 89, 90, 91, 92, 93, 94, 95, 108, 110, 115, 131, 141], "plugin": [10, 11, 43, 50, 75, 79, 131, 133], "cvc5_add_plugin": [10, 11], "period": [10, 40, 72, 131], "roughli": [10, 40, 72], "decis": [10, 40, 72, 132, 138, 139, 143, 145, 150], "pointer": [10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 27, 30, 31, 48, 92, 98], "param": [10, 23, 43, 44, 49, 79, 80, 86, 125, 126], "notify_sat_claus": 10, "notifi": [10, 40, 72, 131], "notify_theory_lemma": 10, "sent": [10, 40, 72, 131, 141], "get_nam": 10, "debug": [10, 40, 72, 131, 132], "d_check_stat": 10, "pass": [10, 43, 45, 49, 79, 86, 93, 102, 112, 131, 134, 136, 139], "d_notify_sat_clause_st": 10, "d_notify_theory_lemma_st": 10, "ti": [11, 28, 43, 49, 79, 86, 95, 140, 143], "cvc5_get_tm": 11, "cvc5_declare_dt": [11, 110], "ctor": [11, 16, 31, 33, 43, 65, 79, 110], "datatype_decl": [11, 43, 79], "cvc5_declare_fun": 11, "fun": [11, 18, 36, 43, 46, 49, 67, 79, 83, 86, 109, 114, 118, 119, 121, 125, 126, 127, 131, 132, 146, 147, 150], "cvc5_declare_sort": 11, "cvc5_mk_uninterpreted_sort": [11, 23, 109, 121, 127], "cvc5_mk_uninterpreted_sort_constructor_sort": [11, 23], "cvc5_define_fun": [11, 126], "global": [11, 43, 79, 89, 91, 92, 94, 95, 103, 130, 131, 132, 141], "function_def": [11, 43, 79], "persist": [11, 43, 79, 131], "pop": [11, 43, 79, 102, 107, 115, 117], "cvc5_define_fun_rec": 11, "recurs": [11, 43, 49, 79, 86, 93, 131, 143], "cvc5_define_fun_rec_from_const": 11, "cvc5_define_funs_rec": 11, "nfun": 11, "nvar": [11, 131], "function_decl": [11, 43, 79], "cvc5_simplifi": [11, 27, 110], "apply_sub": 11, "much": [11, 45], "engin": [11, 129, 131], "simplif": [11, 131, 132, 140], "cvc5_check_sat_assum": [11, 22, 106, 107, 109, 113, 116, 117, 122, 123, 124], "prop_liter": [11, 43, 79], "cvc5_get_assert": 11, "cvc5_get_info": 11, "flag": [11, 43, 45, 79, 130, 133, 135, 136, 144], "info_flag": [11, 43, 79], "cvc5_get_option_nam": 11, "cvc5_get_unsat_assumpt": 11, "fail": [11, 43, 57, 79, 89, 90, 92, 102, 130, 131], "unnam": [11, 43, 79], "cvc5_get_unsat_core_lemma": 11, "cvc5_get_difficulti": 11, "difficulti": [11, 43, 79, 131], "estim": [11, 43, 79], "difficult": [11, 43, 79], "unment": [11, 43, 79], "cvc5_get_timeout_cor": 11, "timeout": [11, 43, 56, 79, 87, 131, 139], "preceed": [11, 43], "cvc5_get_timeout_core_assum": 11, "rsize": 11, "togeth": [11, 43, 134], "cvc5_get_proof": [11, 21], "recent": [11, 43, 79, 130], "cvc5_get_learned_liter": 11, "literalsjto": 11, "were": [11, 43, 49, 79, 93, 125, 126, 134, 136, 147], "cvc5_get_model_domain_el": 11, "question": [11, 43, 79], "cvc5_is_model_core_symbol": 11, "v": [11, 27, 43, 48, 59, 79, 85, 89, 90, 91, 94, 95, 98, 107, 131], "essenti": [11, 43, 79, 92], "show": [11, 43, 45, 79, 82, 102, 109, 111, 115, 116, 117, 118, 119, 127, 130, 131], "last": [11, 30, 31, 43, 48, 79, 88, 102, 130, 131], "cvc5_get_model": 11, "nsort": [11, 110], "nconst": 11, "ismodelcoresymbol": [11, 43, 79], "cvc5_get_quantifier_elimin": 11, "qe": [11, 43, 79, 131], "lra": [11, 43, 79], "lia": [11, 43, 79, 123, 125, 126, 131, 147], "bar": [11, 43, 79, 102, 119], "y_j": [11, 43, 79], "x_k": [11, 43, 79], "phi": [11, 43, 79, 121], "cvc5_get_quantifier_elimination_disjunct": 11, "q_n": [11, 43, 79], "q_1": [11, 43, 79], "q_i": [11, 43, 79], "q_": [11, 43, 79], "q_j": [11, 43, 79], "eventu": [11, 43, 79], "cvc5_declare_sep_heap": 11, "loc": [11, 145], "invok": [11, 12, 19, 25, 29, 37, 43, 46, 61, 68, 79, 83, 102, 104, 118, 119], "onc": [11, 23, 27, 43, 44, 48, 79, 80, 85, 130, 131, 145], "cvc5_get_value_sep_heap": 11, "cvc5_get_value_sep_nil": 11, "cvc5_declare_pool": 11, "init_valu": 11, "instruct": [11, 43, 88, 130, 139], "cvc5_declare_oracle_fun": 11, "oracl": [11, 43, 131], "ordinari": [11, 43, 131], "implicitli": [11, 43], "sym": [11, 43, 131], "callback": [11, 43, 79], "throughout": [11, 43, 79, 108], "lifetim": [11, 43, 79, 139], "cvc5_get_interpol": 11, "conj": [11, 43, 79, 131], "interpol": [11, 43, 79, 131], "exit": [11, 79, 112, 131, 134], "conjectur": [11, 43, 79, 125, 126, 131], "cvc5_get_interpolant_with_grammar": 11, "cvc5_get_interpolant_next": 11, "success": [11, 43, 79, 118, 131, 132, 134], "syntact": [11, 20, 27, 38, 43, 48, 79], "wrt": [11, 43, 79, 131], "cvc5_get_abduct": 11, "abduct": [11, 43, 79, 131], "cvc5_get_abduct_with_grammar": 11, "cvc5_get_abduct_next": 11, "getabduct": [11, 43, 79], "preced": [11, 43, 79, 130], "invalid": [11, 43, 45, 79, 102, 112, 131, 139], "cvc5_block_model_valu": 11, "cvc5_get_instanti": 11, "modul": [11, 43, 79, 125, 126, 130], "cvc5_push": [11, 107, 115, 117], "nscope": [11, 43, 79], "push": [11, 43, 79, 102, 107, 115, 117, 131], "stack": [11, 43, 79], "cvc5_pop": [11, 107, 115, 117], "cvc5_set_info": 11, "cvc5_is_logic_set": [11, 19], "cvc5_get_log": 11, "cvc5_declare_sygus_var": [11, 125], "append": [11, 37, 43, 68, 79, 102, 108, 125, 126, 131, 147, 150], "v2": [11, 25, 43, 46, 79, 83, 104, 105, 109], "cvc5_mk_grammar": [11, 18, 125], "nbound_var": 11, "bound_var": [11, 43, 79], "nsymbol": 11, "termin": [11, 18, 36, 43, 67, 79, 125, 130, 131, 139], "matter": [11, 43, 79], "synth": [11, 18, 26, 36, 43, 47, 67, 79, 84, 125, 126, 131, 132], "cvc5_synth_fun": [11, 125, 126], "boundvar": [11, 43, 79], "cvc5_synth_fun_with_grammar": [11, 125], "cvc5_add_sygus_constraint": [11, 125], "forumla": [11, 43], "cvc5_get_sygus_constraint": 11, "cvc5_add_sygus_assum": 11, "cvc5_get_sygus_assumpt": 11, "cvc5_add_sygus_inv_constraint": [11, 126], "tran": [11, 43, 53, 74, 79, 126, 133, 134, 136, 138], "invari": [11, 43, 79, 111, 131], "cvc5_check_synth": [11, 26, 125, 126], "try": [11, 43, 79, 89, 90, 91, 92, 94, 95, 102, 103, 112, 115, 131], "getsynthsolut": [11, 43, 79, 125, 126], "cvc5_check_synth_next": [11, 26], "cvc5_get_synth_solut": [11, 125, 126], "answer": [11, 43, 79, 121, 131, 132, 147], "cvc5_find_synth": 11, "cvc5_find_synth_with_grammar": 11, "cvc5_find_synth_next": 11, "cvc5_get_statist": 11, "snapshot": [11, 43, 45, 49, 79, 86, 141], "statist": [11, 24, 43, 49, 50, 59, 75, 79, 86, 102, 129, 131, 139], "decoupl": [11, 43, 49, 79, 86, 141], "again": [11, 43, 49, 79, 86, 131, 139, 141], "cvc5_print_stats_saf": 11, "fd": [11, 43, 49], "descriptor": [11, 43, 49], "suitabl": [11, 43, 49], "usag": [11, 43, 49, 116, 131, 139], "signal": [11, 43, 49, 131], "handler": [11, 43, 49], "cvc5_is_output_on": 11, "tag": [11, 30, 31, 43, 48, 93, 129, 131], "stream": [11, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 42, 43, 44, 47, 48, 51, 52, 53, 54, 55, 56, 57, 68, 93, 125, 126, 131, 143], "o": [11, 39, 43, 45, 57, 131, 132, 138], "line": [11, 43, 57, 104, 130, 131, 141, 150], "cvc5_get_output": 11, "cvc5_close_output": 11, "stdout": [11, 118, 119, 125, 126, 131], "cvc5_get_vers": 11, "cvc5_proof_to_str": 11, "aspect": [11, 43, 79, 132], "taken": [11, 43, 79], "usual": [11, 20, 38, 43, 71, 79, 85, 104, 130, 139], "getproof": [11, 41, 43, 73, 79], "proofformat": [11, 43, 50, 52, 59, 70, 75], "proofcompon": [11, 43, 50, 52, 59, 70, 75], "assertions_nam": 11, "assertions_s": 11, "cvc5_cmd_t": 12, "cvc5_cmd_invok": [12, 25, 118, 119], "cmd": [12, 36, 43, 44, 48, 118, 119], "sm": [12, 29, 37, 61, 118, 119], "cvc5_cmd_to_str": [12, 118, 119], "cvc5_cmd_get_nam": 12, "cvc5_sort_get_datatyp": [13, 23, 110], "cvc5_mk_dt_decl": [13, 16, 110], "cvc5_dt_t": 13, "cvc5_dt_copi": 13, "dt": [13, 30, 131, 143, 147], "increas": [13, 14, 16, 17, 18, 20, 21, 22, 23, 27, 131], "cvc5_dt_releas": 13, "own": [13, 14, 16, 17, 18, 20, 21, 22, 23, 27, 131], "calle": [13, 14, 16, 17, 18, 20, 21, 22, 23, 27], "cvc5_dt_is_equ": 13, "structur": [13, 14, 16, 17, 23, 44, 92, 131], "cvc5_dt_get_constructor": [13, 14, 110], "idx": [13, 28, 30, 90, 92, 93, 98, 102, 107, 113, 115], "cvc5_dt_get_constructor_by_nam": [13, 110], "through": [13, 14, 30, 31, 62, 63, 107, 108, 109, 110, 113, 115, 117, 121, 122, 123, 124, 125, 126, 130, 138, 147], "cvc5_dt_get_selector": 13, "cvc5_dt_get_nam": 13, "cvc5_dt_get_num_constructor": [13, 110], "cvc5_dt_get_paramet": 13, "parametr": [13, 14, 16, 23, 30, 31, 33, 43, 44, 49, 62, 63, 65, 80, 131], "cvc5_dt_is_parametr": 13, "cvc5_dt_is_codatatyp": 13, "co": [13, 30, 62, 131, 138, 143, 150], "cvc5_dt_is_tupl": 13, "cvc5_dt_is_record": 13, "record": [13, 23, 30, 43, 44, 49, 62, 79, 80, 86, 134, 136, 143], "cvc5_dt_is_finit": 13, "cvc5_dt_is_well_found": 13, "codatatyp": [13, 30, 43, 49, 62, 79, 86, 131], "cvc5_dt_to_str": 13, "cvc5_dt_hash": 13, "cvc5_mk_dt_cons_decl": [14, 15, 110], "cvc5_dt_cons_t": 14, "cvc5_dt_cons_copi": 14, "cvc5_dt_cons_releas": 14, "cvc5_dt_cons_is_equ": 14, "cvc5_dt_cons_get_nam": 14, "cvc5_dt_cons_get_term": [14, 110], "cvc5_sort_is_dt_constructor": [14, 23], "cvc5_dt_cons_get_instantiated_term": 14, "cast": [14, 31, 63, 89, 91, 92, 94, 95, 103, 143], "par": [14, 31, 63, 110, 143], "head": [14, 31, 63, 110, 143], "tail": [14, 31, 63, 93, 110, 143], "qualifi": [14, 31, 63], "desir": [14, 31, 63, 130], "cvc5_dt_cons_get_tester_term": [14, 110], "cvc5_dt_cons_get_num_selector": [14, 110], "cvc5_dt_cons_get_selector": [14, 17, 110], "cvc5_dt_cons_get_selector_by_nam": [14, 110], "cvc5_dt_cons_to_str": [14, 110], "cvc5_dt_cons_hash": 14, "cvc5_mk_dt_sort": [15, 16, 110], "cvc5_dt_cons_decl_t": 15, "c_cvc5dtconsdecl": 15, "cvc5_dt_decl_t": 16, "coincid": [16, 18, 33, 36, 65, 67], "cvc5_mk_datatype_sort": 16, "cvc5_dt_decl_copi": 16, "decl": [16, 32, 33, 92, 102, 110, 131], "declarationwith": 16, "cvc5_dt_decl_releas": 16, "cvc5_dt_decl_is_equ": 16, "cvc5_dt_decl_add_constructor": [16, 110], "cvc5_dt_decl_get_num_constructor": 16, "cvc5_dt_decl_is_parametr": 16, "cvc5_dt_decl_is_resolv": 16, "resolv": [16, 32, 33, 64, 110], "cvc5_dt_decl_to_str": [16, 110], "cvc5_dt_decl_get_nam": 16, "cvc5_dt_decl_hash": 16, "cvc5_dt_cons_decl_add_selector": [17, 110], "cvc5_dt_cons_decl_add_selector_self": [17, 110], "cvc5_dt_cons_decl_add_selector_unresolv": 17, "cvc5_dt_sel_t": 17, "cvc5_dt_sel_copi": 17, "cvc5_dt_sel_releas": 17, "cvc5_dt_sel_is_equ": 17, "cvc5_dt_sel_get_nam": 17, "cvc5_dt_sel_get_term": [17, 110], "cvc5_sort_is_dt_selector": [17, 23], "cvc5_dt_sel_get_updater_term": [17, 110], "cvc5_sort_is_dt_updat": [17, 23], "cvc5_dt_sel_get_codomain_sort": 17, "cvc5_dt_sel_to_str": [17, 110], "cvc5_dt_sel_hash": 17, "IF": [18, 36, 67, 104], "cvc5_grammar_t": 18, "grammardef": [18, 36, 67], "cvc5_grammar_add_rul": [18, 125], "cvc5_grammar_add_any_const": 18, "cvc5_grammar_add_any_vari": 18, "cvc5_grammar_to_str": 18, "cvc5_grammar_is_equ": 18, "referenti": [18, 21, 36, 41], "cvc5_grammar_is_disequ": 18, "cvc5_grammar_hash": 18, "cvc5_grammar_copi": 18, "cvc5_grammar_releas": 18, "cvc5_parser_set_file_input": 19, "cvc5_parser_set_str_input": [19, 118, 119], "cvc5_parser_set_inc_str_input": 19, "cvc5_parser_append_inc_str_input": 19, "cvc5_parser_next_command": [19, 118, 119], "cvc5_parser_next_term": [19, 119], "pars": [19, 37, 57, 68, 97, 118, 119, 131, 132], "interact": [19, 37, 68, 93, 131], "background": [19, 37, 68], "compat": [19, 37, 43, 49, 68, 79, 86, 88, 101, 130], "That": [19, 37, 68, 147, 150], "cvc5_sm_is_logic_set": 19, "upon": [19, 37, 68, 131, 132, 134], "c_cvc5inputpars": 19, "cvc5_mk_op": [20, 28, 107, 113, 115], "cvc5_mk_op_from_str": [20, 28], "cvc5_mk_term_from_op": [20, 107, 113, 115], "cvc5_op_t": 20, "cvc5_op_copi": 20, "cvc5_op_releas": 20, "cvc5_op_is_equ": 20, "cvc5_op_is_disequ": 20, "cvc5_op_get_kind": 20, "cvc5_op_is_index": 20, "cvc5_op_get_num_indic": 20, "cvc5_op_get_index": 20, "cvc5_op_to_str": 20, "cvc5_op_hash": 20, "cvc5_proof_t": 21, "cvc5_proof_get_rul": 21, "cvc5_proof_get_rewrite_rul": 21, "cvc5_proof_get_result": 21, "cvc5_proof_get_children": 21, "cvc5_proof_get_argu": 21, "cvc5_proof_is_equ": 21, "cvc5_proof_is_disequ": 21, "cvc5_proof_hash": 21, "cvc5_proof_copi": 21, "cvc5_proof_releas": 21, "cvc5_result_get_unknown_explan": 22, "cvc5_result_t": 22, "three": [22, 42, 43, 48, 49, 77, 79, 86, 93, 95, 106, 107, 117, 123, 130, 140, 142, 147], "cvc5_result_copi": 22, "cvc5_result_is_nul": 22, "friend": [22, 29, 30, 31, 32, 33, 34, 36, 37, 41, 42, 43, 44, 45, 46, 48, 77], "cvc5_check_sat_ssum": 22, "abl": [22, 42, 77, 147], "un": [22, 42, 77], "cvc5_result_is_equ": 22, "cvc5_result_is_disequ": 22, "overload": [22, 36, 41, 42, 47, 59, 97], "cvc5_result_hash": 22, "cvc5_sort_hash": 23, "cvc5_sort_to_str": [23, 107, 110, 125, 126], "factori": [23, 27, 44, 48, 80, 85], "cvc5_get_boolean_sort": [23, 109, 116, 125, 126, 127], "cvc5_mk_bv_sort": [23, 107, 108, 113], "cvc5_mk_bag_sort": [23, 106], "cvc5_mk_set_sort": [23, 121, 123], "cvc5_sort_t": 23, "cvc5_sort_copi": 23, "cvc5_sort_releas": 23, "cvc5_sort_is_equ": 23, "cvc5_sort_is_disequ": 23, "cvc5_sort_compar": 23, "cvc5_sort_get_kind": 23, "cvc5_sort_has_symbol": 23, "cvc5_sort_get_symbol": 23, "cvc5_mk_unresolved_sort": 23, "raw": [23, 27, 44, 48, 80, 85, 131], "cvc5_sort_is_boolean": 23, "cvc5_sort_is_integ": 23, "cvc5_sort_is_r": 23, "cvc5_sort_is_str": 23, "cvc5_sort_is_regexp": 23, "cvc5_sort_is_rm": 23, "cvc5_sort_is_bv": 23, "bitvec": [23, 44, 80, 91, 107, 108, 112, 113, 140], "cvc5_sort_is_fp": 23, "floatingpoint": [23, 44, 80, 95], "eb": [23, 44, 80], "sb": [23, 44, 80], "cvc5_sort_is_dt": 23, "cvc5_sort_is_dt_test": 23, "cvc5_sort_is_fun": [23, 125, 126], "cvc5_sort_is_pred": 23, "cvc5_sort_is_tupl": 23, "cvc5_sort_is_nul": 23, "cvc5_sort_is_record": 23, "cvc5_sort_is_arrai": 23, "cvc5_sort_is_ff": 23, "cvc5_sort_is_set": 23, "cvc5_sort_is_bag": 23, "cvc5_sort_is_sequ": 23, "cvc5_sort_is_abstract": 23, "cvc5_sort_is_uninterpreted_sort": 23, "cvc5_sort_is_uninterpreted_sort_constructor": 23, "cvc5_sort_is_instanti": 23, "cvc5_sort_instanti": [23, 110], "cvc5_sort_get_uninterpreted_sort_constructor": 23, "underli": [23, 44, 68, 80, 92, 93, 98], "cvc5_mk_param_sort": [23, 110], "cvc5_sort_get_instantiated_paramet": 23, "cvc5_sort_substitut": 23, "travers": [23, 27, 44, 48, 80, 85], "run": [23, 27, 44, 48, 59, 80, 85, 88, 130, 131, 132, 139], "subsort": [23, 44, 80, 89, 91, 92], "cvc5_sort_substitute_sort": 23, "simultan": [23, 27, 44, 48, 85], "earliest": [23, 27, 44, 48, 80, 85], "prioriti": [23, 27, 44, 48, 80, 85, 131], "cvc5_sort_dt_constructor_get_ar": 23, "cvc5_sort_dt_constructor_get_domain": 23, "cvc5_sort_dt_constructor_get_codomain": 23, "cvc5_sort_dt_selector_get_domain": 23, "cvc5_sort_dt_selector_get_codomain": 23, "cvc5_sort_dt_tester_get_domain": 23, "cvc5_sort_dt_tester_get_codomain": 23, "dort": 23, "mainli": [23, 44], "doesn": [23, 44, 130], "access": [23, 27, 35, 39, 43, 44, 45, 48, 85, 93, 131, 146], "cvc5_sort_fun_get_ar": 23, "arity": 23, "cvc5_sort_fun_get_domain": 23, "cvc5_sort_fun_get_codomain": [23, 125, 126], "cvc5_sort_array_get_index_sort": 23, "cvc5_sort_array_get_element_sort": 23, "cvc5_sort_set_get_element_sort": 23, "cvc5_sort_bag_get_element_sort": 23, "cvc5_sort_sequence_get_element_sort": 23, "cvc5_sort_abstract_get_kind": 23, "cvc5_sort_uninterpreted_sort_constructor_get_ar": 23, "cvc5_sort_bv_get_s": 23, "cvc5_sort_ff_get_s": 23, "cvc5_sort_fp_get_exp_s": 23, "cvc5_sort_fp_get_sig_s": 23, "cvc5_sort_dt_get_ar": 23, "cvc5_sort_tuple_get_length": 23, "cvc5_sort_tuple_get_element_sort": 23, "cvc5_sort_nullable_get_element_sort": 23, "histogram": [24, 45, 141], "cvc5_stat_is_": 24, "cvc5_stat_get_": 24, "paar": 24, "frequenc": [24, 45, 131], "iter": [24, 30, 31, 45, 48, 59, 62, 63, 82, 85, 109, 110, 127, 141], "cvc5_stats_iter_init": 24, "visbl": 24, "unchang": [24, 45, 82, 131], "cvc5_stats_iter_has_next": 24, "cvc5_stats_iter_next": 24, "cvc5_stat_t": 24, "cvc5_stat_is_intern": 24, "stat": [24, 45, 50, 59, 82, 102, 131, 141], "cvc5_stat_is_default": 24, "cvc5_stat_is_int": 24, "cvc5_stat_get_int": 24, "cvc5_stat_is_doubl": 24, "cvc5_stat_get_doubl": 24, "cvc5_stat_is_str": 24, "cvc5_stat_get_str": 24, "cvc5_stat_is_histogram": 24, "cvc5_stat_get_histogram": 24, "cvc5_stat_to_str": 24, "cvc5_stats_t": 24, "c_cvc5statist": 24, "meta": [25, 46, 83, 136], "modifi": [25, 46, 83, 130, 139], "preload": [25, 46, 83], "publicli": [25, 46, 83], "c_cvc5symbolmanag": 25, "cvc5_synth_result_t": 26, "c_cvc5synthresult": 26, "cvc5_term_is_": 27, "_valu": 27, "cvc5_term_get_": 27, "best": [27, 48, 85, 131], "tyep": 27, "cvc5_term_hash": 27, "cvc5_mk_": 27, "cvc5_term_t": 27, "cvc5_term_copi": 27, "cvc5_term_is_equ": 27, "cvc5_term_is_disequ": 27, "cvc5_term_compar": 27, "cvc5_term_get_num_children": [27, 109, 125, 126], "cvc5_term_get_child": [27, 109, 125, 126], "cvc5_term_get_id": 27, "cvc5_term_get_kind": [27, 125, 126], "cvc5_term_get_sort": [27, 107, 110, 125, 126], "cvc5_term_substitute_term": 27, "cvc5_term_has_op": 27, "cvc5_term_get_op": 27, "cvc5_term_has_symbol": 27, "cvc5_term_get_symbol": 27, "cvc5_mk_var": [27, 121, 125, 126], "cvc5_term_get_real_or_integer_value_sign": 27, "cvc5_term_is_int32_valu": 27, "int32": [27, 48], "fit": [27, 43, 48, 49], "cvc5_term_get_int32_valu": 27, "cvc5_term_is_uint32_valu": 27, "uint32": [27, 48], "cvc5_term_get_uint32_valu": 27, "cvc5_term_is_int64_valu": 27, "cvc5_term_get_int64_valu": 27, "cvc5_term_is_uint64_valu": 27, "cvc5_term_get_uint64_valu": 27, "cvc5_term_is_integer_valu": 27, "cvc5_term_get_integer_valu": 27, "cvc5_term_is_string_valu": 27, "wchar_t": 27, "cvc5_term_get_string_valu": 27, "confus": [27, 48, 85], "whatev": [27, 48, 85], "cvc5_term_is_real32_valu": 27, "denomin": [27, 43, 48, 49, 79, 86, 89], "32": [27, 48, 91, 95, 107, 108, 113, 115, 148], "cvc5_term_get_real32_valu": 27, "num": [27, 43, 49, 102, 131, 132], "den": [27, 43, 49], "cvc5_term_is_real64_valu": 27, "64": [27, 48, 91, 95, 130, 138, 141], "cvc5_term_is_real_valu": 27, "cvc5_term_is_const_arrai": 27, "cvc5_term_get_const_array_bas": 27, "isconstarrai": [27, 48, 85], "cvc5_term_is_boolean_valu": 27, "cvc5_term_get_boolean_valu": 27, "cvc5_term_is_bv_valu": 27, "cvc5_term_get_bv_valu": 27, "hexadecim": [27, 43, 48, 49], "cvc5_term_is_ff_valu": 27, "cvc5_term_get_ff_valu": 27, "smallest": [27, 48, 85, 115], "cvc5_term_is_uninterpreted_sort_valu": 27, "cvc5_term_get_uninterpreted_sort_valu": 27, "cvc5_term_is_tuple_valu": 27, "cvc5_term_get_tuple_valu": 27, "cvc5_term_is_rm_valu": 27, "cvc5_term_get_rm_valu": 27, "cvc5_term_is_rounding_mode_valu": 27, "cvc5_term_is_fp_pos_zero": 27, "cvc5_term_is_fp_neg_zero": 27, "cvc5_term_is_fp_pos_inf": 27, "cvc5_term_is_fp_neg_inf": 27, "cvc5_term_is_fp_nan": 27, "cvc5_term_is_fp_valu": 27, "cvc5_term_get_fp_valu": 27, "ew": 27, "sw": 27, "val": [27, 43, 49, 79, 86, 89, 91, 92, 93, 94, 95, 103, 115], "cvc5_term_is_set_valu": 27, "cvc5_term_get_set_valu": 27, "cvc5_term_is_sequence_valu": 27, "const_sequ": [27, 48, 51, 69], "themselv": [27, 48], "seq_concat": [27, 48, 51, 69, 122, 146], "seq_unit": [27, 48, 51, 69, 122, 146], "const_sequence_": [27, 48], "latter": [27, 48, 62, 63, 130, 133], "cvc5_term_get_sequence_valu": 27, "cvc5_term_is_cardinality_constraint": 27, "cvc5_term_get_cardinality_constraint": 27, "cvc5_term_is_real_algebraic_numb": 27, "algebra": [27, 48, 85, 131], "cvc5_term_get_real_algebraic_number_defining_polynomi": 27, "cvc5_term_get_real_algebraic_number_lower_bound": 27, "cvc5_term_get_real_algebraic_number_upper_bound": 27, "cvc5_term_is_skolem": 27, "cvc5skolemid": 27, "cvc5_term_get_skolem_id": 27, "isskolem": [27, 48, 85], "cvc5_term_get_skolem_indic": 27, "c_cvc5termmanag": 28, "c_sort_creat": 28, "simpli": [28, 43, 49, 92], "ckind": 28, "c_term_creat": 28, "c_dt_decl_creat": 28, "c_dt_cons_decl_cr": 28, "symbolmanag": [29, 37, 50, 59, 68, 75, 118, 119], "ostream": [29, 30, 31, 32, 33, 34, 35, 36, 38, 39, 42, 43, 44, 45, 47, 48, 51, 52, 53, 54, 55, 56, 57], "tostr": [29, 30, 31, 32, 33, 34, 36, 38, 39, 42, 44, 45, 47, 48, 61, 112, 125, 126], "getcommandnam": [29, 61], "isnul": [29, 30, 31, 32, 33, 34, 36, 38, 41, 42, 44, 47, 48, 61, 62, 63, 64, 65, 66, 67, 71, 77, 80, 84, 85, 118, 119], "commandexecutor": [29, 43, 46], "interactiveshel": [29, 37, 46], "executioncontext": 29, "getdatatyp": [30, 44, 62, 80, 110, 143, 147], "mkdatatypedecl": [30, 33, 43, 49, 62, 65, 79, 86, 110], "destructor": [30, 31, 32, 33, 34, 36, 38, 43, 44, 45, 46, 48, 49, 131, 143], "getconstructor": [30, 31, 62, 63, 110], "getselector": [30, 31, 34, 62, 63, 66, 110, 143, 147], "getnam": [30, 31, 33, 34, 40, 62, 63, 65, 66, 72], "getnumconstructor": [30, 33, 62, 65], "getparamet": [30, 62], "isparametr": [30, 33, 62, 65], "iscodatatyp": [30, 43, 49, 62, 79, 86, 93], "istupl": [30, 44, 62, 80], "isrecord": [30, 44, 62, 80], "isfinit": [30, 62], "iswellfound": [30, 62], "const_iter": [30, 31, 48, 50, 109, 110], "begin": [30, 31, 45, 48, 109, 110, 125, 126, 131], "iterator_categori": [30, 31, 48], "forward_iterator_tag": [30, 31, 48], "value_typ": [30, 31, 48], "item": [30, 31, 48], "difference_typ": [30, 31, 48], "ptrdiff_t": [30, 31, 48], "cython": [30, 31, 36, 41, 130], "postfix": [30, 31, 48], "derefer": [30, 31, 48], "dtype": 30, "serial": [30, 31, 32, 33, 34, 36, 38, 42, 44, 47, 48, 51, 52, 54, 55, 56], "datatypeconstructordecl": [31, 33, 34, 43, 49, 50, 59, 63, 66, 75, 110], "mkdatatypeconstructordecl": [31, 32, 43, 49, 63, 64, 79, 86, 110], "isdatatypeconstructor": [31, 44, 63, 80], "getinstantiatedterm": [31, 63], "retsort": [31, 63], "apply_test": [31, 51, 63, 69, 110, 143], "getnumselector": [31, 63], "far": [31, 33, 63, 65], "addselector": [32, 34, 64, 66, 110], "addselectorself": [32, 34, 64, 66, 110], "addselectorunresolv": [32, 34, 64, 66], "unresdataypenam": [32, 64], "unresolv": [32, 43, 49, 64, 79, 86], "ctordecl": 32, "addconstructor": [33, 65, 110], "isresolv": 33, "dtdecl": 33, "isdatatypeselector": [34, 44, 66, 80], "apply_selector": [34, 51, 66, 69, 110, 143, 147], "isdatatypeupdat": [34, 44, 66, 80], "apply_updat": [34, 51, 66, 69, 110, 143], "getcodomainsort": [34, 66], "stor": [34, 110], "few": [35, 59, 115, 131, 139], "frontend": [35, 39], "commun": [35, 43, 57], "getopt": [35, 39, 43, 79, 102, 131], "getoptioninfo": [35, 39, 43, 79, 102, 131], "err": [35, 131], "act": 35, "longer": [35, 57], "destroi": [35, 45, 102], "istream": [35, 37], "error": [35, 37, 57, 68, 112, 131], "mkgrammar": [36, 43, 67, 79, 125], "bookeep": 36, "grammarto": 36, "addrul": [36, 67, 125], "ntsymbol": [36, 43, 67, 79], "addanyconst": [36, 67], "addanyvari": [36, 67], "setfileinput": [37, 68], "setstreaminput": [37, 118, 119], "setstringinput": [37, 68, 118, 119], "setincrementalstringinput": [37, 68, 119], "appendincrementalstringinput": [37, 68, 119], "nextcommand": [37, 68, 118, 119], "nextexpress": [37, 68], "islogicset": [37, 43, 46, 68, 79, 83], "getsolv": [37, 68], "getsymbolmanag": [37, 68, 118], "inputlanguag": [37, 59, 68, 118, 119], "lang": [37, 68, 130, 131], "smt_lib_2_6": [37, 68, 118, 119], "messag": [37, 57, 68, 139], "feed": [37, 68], "Will": [37, 68], "forc": [37, 68, 131], "prior": [37, 68], "nextterm": [37, 68, 119], "bitvector_extract": [38, 43, 49, 51, 69, 71, 107, 113], "getkind": [38, 44, 48, 71, 80, 85, 125, 126], "isindex": [38, 71], "getnumindic": [38, 71], "templat": [38, 39, 41, 44, 48, 51, 53, 55, 131], "valueinfo": 39, "voidinfo": 39, "numberinfo": 39, "boolvalu": 39, "stringvalu": 39, "intvalu": 39, "uintvalu": 39, "doublevalu": 39, "getdriveropt": [39, 43], "optioninfovari": 39, "variant": [39, 93, 130], "setbyus": [39, 102], "isexpert": 39, "isregular": 39, "defaultvalu": 39, "currentvalu": 39, "typenam": [39, 48], "oi": 39, "addplugin": [40, 43, 72, 79], "virtual": [40, 57, 72, 130, 140], "notifysatclaus": [40, 72], "notifytheorylemma": [40, 72], "prooftostr": [41, 43, 79], "tree": [41, 73, 93, 121, 131, 143], "getrul": [41, 73], "getrewriterul": [41, 73], "getresult": [41, 73], "getchildren": [41, 73], "getargu": [41, 73], "might": [41, 73], "unknownexplan": [42, 50, 59, 75, 77], "getunknownexplan": [42, 77], "issat": [42, 58, 60, 76, 77, 106, 114, 115, 122, 123, 124, 127, 142, 147], "checksatassum": [42, 43, 77, 79, 106, 107, 108, 109, 112, 113, 116, 117, 122, 123, 124, 139, 142, 147], "isunsat": [42, 58, 60, 76, 77, 114, 115], "isunknown": [42, 47, 77, 84], "optioninfo": [43, 50, 59, 79], "deprec": [43, 46, 79, 89], "disallow": 43, "indexsort": [43, 49, 79, 86, 108], "elemsort": [43, 49, 79, 86], "sig": [43, 49, 79, 86, 90, 92, 95], "prime": [43, 49, 79, 86, 144], "dtypedecl": [43, 49, 79, 86], "mkparamsort": [43, 44, 49, 79, 80, 86, 110], "nullopt": [43, 49], "mkpredicatesort": [43, 49, 79, 86], "mkrecordsort": [43, 49, 79, 86, 143], "array_sort": [43, 49, 55, 79, 81, 86], "integer_sort": [43, 49, 55, 79, 81, 86], "string_sort": [43, 49, 55, 79, 81, 86, 103, 124], "abstract_sort": [43, 49, 55, 79, 81, 86], "mkunresolveddatatypesort": [43, 49, 79, 86], "placehold": [43, 49, 79, 86], "mutual": [43, 49, 79, 86, 93, 131, 143], "mkuninterpretedsortconstructorsort": [43, 44, 49, 79, 86], "mkuninterpretedsortconstructorersort": 43, "mktupl": [43, 49, 79, 86, 121, 143, 147], "mknullablesom": [43, 49, 79, 86], "mknullablev": [43, 49, 79, 86], "mknullableisnul": [43, 49, 79, 86], "mknullableissom": [43, 49, 79, 86], "mknullablenul": [43, 49, 79, 86], "nullable_lift": [43, 49, 51, 69, 79, 86], "remain": [43, 49, 79, 86, 130, 139, 141, 146], "bitvector_repeat": [43, 49, 51, 69], "bitvector_rotate_left": [43, 49, 51, 69], "bitvector_rotate_right": [43, 49, 51, 69], "bitvector_sign_extend": [43, 49, 51, 69], "bitvector_zero_extend": [43, 49, 51, 69], "floatingpoint_to_fp_from_fp": [43, 49, 51, 69], "floatingpoint_to_fp_from_ieee_bv": [43, 49, 51, 69], "floatingpoint_to_fp_from_r": [43, 49, 51, 69], "floatingpoint_to_fp_from_sbv": [43, 49, 51, 69], "floatingpoint_to_fp_from_ubv": [43, 49, 51, 69], "floatingpoint_to_sbv": [43, 49, 51, 69], "floatingpoint_to_ubv": [43, 49, 51, 69, 115], "int_to_bitvector": [43, 49, 51, 69], "tuple_project": [43, 49, 51, 69, 143], "123": [43, 49, 103], "34": [43, 49], "useescsequ": [43, 49, 79, 86], "u1234": [43, 49, 79, 86], "unicod": [43, 49, 79, 85, 86, 131, 148], "outsid": [43, 49, 131], "modulo": [43, 49, 91, 129, 131, 138, 144], "mkconstarrai": [43, 49, 79, 86, 108], "mkfloatingpointposinf": [43, 49, 79, 86, 115], "mkfloatingpointneginf": [43, 49, 79, 86], "mkfloatingpointnan": [43, 49, 79, 86, 115], "mkfloatingpointposzero": [43, 49, 79, 86, 115], "mkfloatingpointnegzero": [43, 49, 79, 86], "upperbound": [43, 49], "previou": [43, 49, 131], "applysub": [43, 79], "declaredatatyp": [43, 79, 110], "declarefun": [43, 79], "declaresort": [43, 79, 109, 127], "definefun": [43, 79, 126], "definefunrec": [43, 79], "definefunsrec": [43, 79], "getassert": [43, 79], "getinfo": [43, 79], "getoptionnam": [43, 79, 102, 131], "driveropt": [43, 50], "driver": [43, 141], "properli": [43, 102, 139], "getunsatassumpt": [43, 79], "getunsatcorelemma": [43, 79], "getdifficulti": [43, 79], "gettimeoutcor": [43, 79], "gettimeoutcoreassum": [43, 79], "assertionnam": [43, 79], "learnedlittyp": [43, 50, 52, 59, 70, 75], "getmodeldomainel": [43, 79], "getmodel": [43, 79, 112], "getquantifierelimin": [43, 79], "getquantifiereliminationdisjunct": [43, 79], "declaresepheap": [43, 79], "locsort": [43, 79], "datasort": [43, 79], "getvaluesepheap": [43, 79], "getvaluesepnil": [43, 79], "initvalu": [43, 79], "declareoraclefun": 43, "getinterpol": [43, 79], "getinterpolantnext": [43, 79], "getabductnext": [43, 79], "blockmodelsmod": [43, 50, 52, 59, 70, 75], "getinstanti": [43, 79], "setinfo": [43, 79], "getlog": [43, 46, 79, 83], "declaresygusvar": [43, 79, 125], "synthfun": [43, 79, 125, 126], "addsygusconstraint": [43, 79, 125], "getsygusconstraint": [43, 79], "addsygusassum": [43, 79], "getsygusassumpt": [43, 79], "addsygusinvconstraint": [43, 79, 126], "synthresult": [43, 50, 59, 75], "checksynth": [43, 47, 79, 84, 125, 126], "checksynthnext": [43, 47, 79, 84], "findsynthtarget": [43, 50, 52, 59, 70], "fst": [43, 79, 143], "findsynthnext": [43, 79], "getstatist": [43, 45, 49, 79, 86, 141], "printstatisticssaf": [43, 49], "isoutputon": 43, "getoutput": 43, "getvers": [43, 79], "gettermmanag": [43, 79, 110], "hassymbol": [44, 48, 80, 85], "getsymbol": [44, 48, 80, 85], "mkunresolvedsort": 44, "isboolean": [44, 80], "isinteg": [44, 80], "isreal": [44, 80], "isstr": [44, 45, 80], "isregexp": [44, 80], "isroundingmod": [44, 80], "isbitvector": [44, 80], "isfloatingpoint": [44, 80], "isdatatyp": [44, 80], "isdatatypetest": [44, 63, 80], "isfunct": [44, 80, 125, 126], "ispred": [44, 80], "isarrai": [44, 80], "isfinitefield": [44, 80, 114], "isset": [44, 80], "isbag": [44, 80], "issequ": [44, 80], "isabstract": [44, 80], "isuninterpretedsort": [44, 80], "isuninterpretedsortconstructor": [44, 80], "isinstanti": [44, 80], "getuninterpretedsortconstructor": [44, 80], "getinstantiatedparamet": [44, 80], "tostream": [44, 57], "getdatatypeconstructorar": [44, 80], "getdatatypeconstructordomainsort": [44, 80], "getdatatypeconstructorcodomainsort": [44, 80], "getdatatypeselectordomainsort": [44, 80], "getdatatypeselectorcodomainsort": [44, 80], "getdatatypetesterdomainsort": [44, 80], "getdatatypetestercodomainsort": [44, 80], "getfunctionar": [44, 80], "getfunctiondomainsort": [44, 80], "getfunctioncodomainsort": [44, 80, 125, 126], "getarrayindexsort": [44, 80], "getarrayelementsort": [44, 80], "getsetelementsort": [44, 80], "getbagelementsort": [44, 80], "getsequenceelementsort": [44, 80], "getabstractedkind": [44, 80], "getuninterpretedsortconstructorar": [44, 80], "getbitvectors": [44, 80], "getfinitefields": [44, 80, 114], "getfloatingpointexponents": [44, 80], "getfloatingpointsignificands": [44, 80], "getdatatypear": [44, 80], "gettuplelength": [44, 80], "gettuplesort": [44, 80], "getnullableelementsort": [44, 80], "isint": [45, 89], "isdoubl": 45, "getint": 45, "getdoubl": 45, "By": [45, 82], "manageri": 45, "cvc5apirecoverableexcept": [45, 50, 57, 59], "visibl": 45, "isintern": [45, 141], "isdefault": [45, 141], "histogramdata": 45, "On": [45, 130, 131], "isx": 45, "getx": 45, "sole": 45, "becaus": [45, 130], "getstr": 45, "ishistogram": 45, "gethistogram": 45, "represen": 45, "sv": 45, "inputpars": [46, 50, 57, 59, 75, 83, 118, 119], "getdeclaredsort": [46, 83], "getdeclaredterm": [46, 83], "getnamedterm": [46, 83], "hassolut": [47, 84, 125, 126], "hasnosolut": [47, 84], "mk": [48, 85], "unordered_set": 48, "unordered_map": 48, "getnumchildren": [48, 85], "getid": [48, 85], "getsort": [48, 85, 107, 110, 125, 126], "hasop": [48, 85], "getop": [48, 85], "notterm": [48, 85, 106, 107, 109, 113, 117, 123, 127, 142, 147], "andterm": [48, 85], "orterm": [48, 85], "xorterm": [48, 85], "eqterm": [48, 85], "impterm": [48, 85], "iteterm": [48, 85], "getrealorintegervaluesign": [48, 85], "isint32valu": 48, "getint32valu": 48, "isuint32valu": 48, "getuint32valu": 48, "isint64valu": 48, "getint64valu": 48, "isuint64valu": 48, "getuint64valu": 48, "isintegervalu": [48, 85], "getintegervalu": [48, 85], "isstringvalu": [48, 85], "getstringvalu": [48, 85], "isreal32valu": 48, "getreal32valu": 48, "isreal64valu": 48, "getconstarraybas": [48, 85], "isbooleanvalu": [48, 85], "getbooleanvalu": [48, 85], "isbitvectorvalu": [48, 85], "getbitvectorvalu": [48, 85], "isfinitefieldvalu": [48, 85, 114], "getfinitefieldvalu": [48, 85, 114], "isuninterpretedsortvalu": [48, 85], "getuninterpretedsortvalu": [48, 85], "istuplevalu": [48, 85], "gettuplevalu": [48, 85], "isroundingmodevalu": [48, 85], "getroundingmodevalu": [48, 85], "isfloatingpointposzero": [48, 85], "isfloatingpointnegzero": [48, 85], "isfloatingpointposinf": [48, 85], "isfloatingpointneginf": [48, 85], "isfloatingpointnan": [48, 85], "isfloatingpointvalu": [48, 85], "getfloatingpointvalu": [48, 85], "getsetvalu": [48, 85], "issequencevalu": [48, 85], "iscardinalityconstraint": [48, 85], "getcardinalityconstraint": [48, 85], "isrealalgebraicnumb": [48, 85], "getrealalgebraicnumberdefiningpolynomi": [48, 85], "getrealalgebraicnumberlowerbound": [48, 85], "getrealalgebraicnumberupperbound": [48, 85], "skolemid": [48, 49, 85, 140], "just": [48, 101, 132, 140], "shared_ptr": 48, "mkskolem": [49, 79, 86], "getnumindicesforskolemid": [49, 79, 86], "individu": [50, 59, 132, 139, 141], "parserexcept": [50, 57], "const_bitvector": [51, 69], "to_str": [51, 52, 53, 54, 55, 56], "internal_kind": [51, 69], "undefined_kind": [51, 69], "null_term": [51, 69], "uninterpreted_sort_valu": [51, 69], "sexpr": [51, 69, 89, 90, 91, 92, 94, 95, 102], "const_boolean": [51, 69], "cardinality_constraint": [51, 69], "division_tot": [51, 69], "ints_divis": [51, 69], "ints_division_tot": [51, 69], "ints_modulu": [51, 69], "ints_modulus_tot": [51, 69], "pow": [51, 69, 89], "arcsin": [51, 69, 89, 140, 150], "arccosin": [51, 69, 89, 150], "arctang": [51, 69, 89, 150], "arccosec": [51, 69, 89, 150], "arcsec": [51, 69, 89, 150], "arccotang": [51, 69, 89, 150], "const_rat": [51, 69], "const_integ": [51, 69], "is_integ": [51, 69], "to_integ": [51, 69], "bitvector_concat": [51, 69], "bitvector_and": [51, 69], "bitvector_or": [51, 69], "bitvector_xor": [51, 69, 107], "bitvector_not": [51, 69], "bitvector_nand": [51, 69], "bitvector_nor": [51, 69], "bitvector_xnor": [51, 69], "bitvector_comp": [51, 69], "bitvector_mult": [51, 69, 108], "bitvector_add": [51, 69, 107], "bitvector_sub": [51, 69, 107], "bitvector_neg": [51, 69], "bitvector_udiv": [51, 69], "bitvector_urem": [51, 69], "bitvector_sdiv": [51, 69], "bitvector_srem": [51, 69], "bitvector_smod": [51, 69], "bitvector_shl": [51, 69], "bitvector_lshr": [51, 69], "bitvector_ashr": [51, 69], "bitvector_ult": [51, 69], "bitvector_ul": [51, 69], "bitvector_ugt": [51, 69], "bitvector_ug": [51, 69], "bitvector_slt": [51, 69, 108], "bitvector_sl": [51, 69], "bitvector_sgt": [51, 69, 108], "bitvector_sg": [51, 69], "bitvector_ultbv": [51, 69], "bitvector_sltbv": [51, 69], "bitvector_it": [51, 69, 131], "bitvector_redor": [51, 69], "bitvector_redand": [51, 69], "bitvector_nego": [51, 69], "bitvector_uaddo": [51, 69], "bitvector_saddo": [51, 69], "bitvector_umulo": [51, 69], "bitvector_smulo": [51, 69], "bitvector_usubo": [51, 69], "bitvector_ssubo": [51, 69], "bitvector_sdivo": [51, 69], "bitvector_to_nat": [51, 69], "bitvector_from_bool": [51, 69], "bitvector_bit": [51, 69], "const_finite_field": [51, 69], "finite_field_neg": [51, 69], "finite_field_add": [51, 69, 114, 144], "finite_field_bitsum": [51, 69], "finite_field_mult": [51, 69, 114, 144], "const_floatingpoint": [51, 69], "const_roundingmod": [51, 69], "floatingpoint_fp": [51, 69], "floatingpoint_eq": [51, 69], "floatingpoint_ab": [51, 69], "floatingpoint_neg": [51, 69], "floatingpoint_add": [51, 69, 115], "floatingpoint_sub": [51, 69], "floatingpoint_mult": [51, 69, 115], "floatingpoint_div": [51, 69], "floatingpoint_fma": [51, 69, 115], "floatingpoint_sqrt": [51, 69], "floatingpoint_rem": [51, 69], "floatingpoint_rti": [51, 69], "floatingpoint_min": [51, 69], "floatingpoint_max": [51, 69], "floatingpoint_leq": [51, 69], "floatingpoint_lt": [51, 69, 115], "floatingpoint_geq": [51, 69], "floatingpoint_gt": [51, 69], "floatingpoint_is_norm": [51, 69, 115], "floatingpoint_is_subnorm": [51, 69], "floatingpoint_is_zero": [51, 69], "floatingpoint_is_inf": [51, 69], "floatingpoint_is_nan": [51, 69], "floatingpoint_is_neg": [51, 69], "floatingpoint_is_po": [51, 69], "floatingpoint_to_r": [51, 69, 115], "const_arrai": [51, 69], "eq_rang": [51, 69], "sep_nil": [51, 69], "sep_emp": [51, 69], "sep_pto": [51, 69, 145], "sep_star": [51, 69, 145], "sep_wand": [51, 69, 145], "set_empti": [51, 69], "set_union": [51, 69, 121, 123, 147], "set_int": [51, 69, 121, 123, 147], "set_minu": [51, 69, 147], "set_subset": [51, 69, 121, 123, 147], "set_memb": [51, 69, 121, 123, 147], "set_singleton": [51, 69, 123, 147], "set_insert": [51, 69, 147], "set_card": [51, 69, 147], "set_compl": [51, 69, 147], "set_comprehens": [51, 69], "set_choos": [51, 69], "set_is_empti": [51, 69, 147], "set_is_singleton": [51, 69, 147], "set_map": [51, 69], "set_filt": [51, 69], "set_al": [51, 69], "set_som": [51, 69], "set_fold": [51, 69], "relation_join": [51, 69, 121, 147], "relation_table_join": [51, 69], "relation_product": [51, 69, 147], "relation_transpos": [51, 69, 121, 147], "relation_tclosur": [51, 69, 121, 147], "relation_join_imag": [51, 69], "relation_iden": [51, 69], "relation_group": [51, 69], "relation_aggreg": [51, 69], "relation_project": [51, 69], "bag_empti": [51, 69], "bag_union_max": [51, 69, 106, 142], "bag_union_disjoint": [51, 69, 106, 142], "bag_inter_min": [51, 69, 106, 142], "bag_difference_subtract": [51, 69, 142], "bag_difference_remov": [51, 69], "bag_subbag": [51, 69, 106, 142], "bag_count": [51, 69, 106, 142], "bag_memb": [51, 69, 142], "bag_setof": [51, 69, 142], "bag_mak": [51, 69, 106, 142], "bag_card": [51, 69], "bag_choos": [51, 69], "bag_map": [51, 69], "bag_filt": [51, 69], "bag_fold": [51, 69], "bag_partit": [51, 69], "table_product": [51, 69], "table_project": [51, 69], "table_aggreg": [51, 69], "table_join": [51, 69], "table_group": [51, 69], "string_concat": [51, 69, 124], "string_in_regexp": [51, 69, 124], "string_length": [51, 69, 124], "string_substr": [51, 69], "string_upd": [51, 69], "string_charat": [51, 69], "string_contain": [51, 69], "string_indexof": [51, 69], "string_indexof_r": [51, 69], "string_replac": [51, 69], "string_replace_al": [51, 69], "string_replace_r": [51, 69], "string_replace_re_al": [51, 69], "string_to_low": [51, 69], "string_to_upp": [51, 69], "string_rev": [51, 69], "string_to_cod": [51, 69], "string_from_cod": [51, 69], "string_lt": [51, 69], "string_leq": [51, 69], "string_prefix": [51, 69], "string_suffix": [51, 69], "string_is_digit": [51, 69], "string_from_int": [51, 69], "string_to_int": [51, 69], "string_to_regexp": [51, 69, 124], "regexp_concat": [51, 69, 124], "regexp_union": [51, 69, 124], "regexp_int": [51, 69], "regexp_diff": [51, 69], "regexp_star": [51, 69, 124], "regexp_plu": [51, 69], "regexp_opt": [51, 69], "regexp_rang": [51, 69, 124], "regexp_repeat": [51, 69], "regexp_loop": [51, 69], "regexp_non": [51, 69], "regexp_al": [51, 69], "regexp_allchar": [51, 69], "regexp_compl": [51, 69], "seq_length": [51, 69, 122, 146], "seq_extract": [51, 69, 146], "seq_upd": [51, 69, 146], "seq_at": [51, 69, 146], "seq_contain": [51, 69, 146], "seq_indexof": [51, 69, 146], "seq_replac": [51, 69, 146], "seq_replace_al": [51, 69, 146], "seq_rev": [51, 69, 146], "seq_prefix": [51, 69, 146], "seq_suffix": [51, 69, 146], "seq_nth": [51, 69, 146], "last_kind": [51, 69], "preprocess_solv": [52, 70], "constant_prop": [52, 70], "raw_preprocess": [52, 70], "theory_lemma": [52, 70], "cpc": [52, 70, 131, 134, 137], "rewrite_unsound": [52, 70], "rewrite_input": [52, 70], "macro_rewrit": [53, 74], "aci_norm": [53, 74, 134], "macro_sr_pred_elim": [53, 74], "macro_sr_pred_transform": [53, 74], "encode_eq_intro": [53, 74], "ite_eq": [53, 74], "trust_theory_rewrit": [53, 74, 132, 133, 136], "sat_refut": [53, 74], "drat_refut": [53, 74], "sat_external_prov": [53, 74], "chain_resolut": [53, 74, 134], "macro_resolution_trust": [53, 74], "eq_resolv": [53, 74, 102, 132, 134, 136], "modus_ponen": [53, 74], "not_not_elim": [53, 74], "contra": [53, 74], "and_elim": [53, 74, 134, 136], "and_intro": [53, 74], "not_or_elim": [53, 74], "not_implies_elim1": [53, 74], "not_implies_elim2": [53, 74], "equiv_elim2": [53, 74], "not_equiv_elim1": [53, 74], "not_equiv_elim2": [53, 74], "xor_elim1": [53, 74], "xor_elim2": [53, 74], "not_xor_elim1": [53, 74], "not_xor_elim2": [53, 74], "ite_elim1": [53, 74], "ite_elim2": [53, 74], "not_ite_elim1": [53, 74], "not_ite_elim2": [53, 74], "not_and": [53, 74], "cnf_and_po": [53, 74], "cnf_and_neg": [53, 74], "cnf_or_po": [53, 74], "cnf_or_neg": [53, 74], "cnf_implies_po": [53, 74], "cnf_implies_neg1": [53, 74], "cnf_implies_neg2": [53, 74], "cnf_equiv_pos1": [53, 74, 134, 136], "cnf_equiv_pos2": [53, 74], "cnf_equiv_neg1": [53, 74], "cnf_equiv_neg2": [53, 74], "cnf_xor_pos1": [53, 74], "cnf_xor_pos2": [53, 74], "cnf_xor_neg1": [53, 74], "cnf_xor_neg2": [53, 74], "cnf_ite_pos1": [53, 74], "cnf_ite_pos2": [53, 74], "cnf_ite_pos3": [53, 74], "cnf_ite_neg1": [53, 74], "cnf_ite_neg2": [53, 74], "cnf_ite_neg3": [53, 74], "cong": [53, 74, 131, 133, 134, 136], "nary_cong": [53, 74, 134], "true_intro": [53, 74], "true_elim": [53, 74], "false_intro": [53, 74], "false_elim": [53, 74], "ho_app_encod": [53, 74], "arrays_read_over_writ": [53, 74, 141], "arrays_read_over_write_contra": [53, 74], "arrays_read_over_write_1": [53, 74, 141], "arrays_ext": [53, 74, 141], "macro_bv_bitblast": [53, 74], "bv_bitblast_step": [53, 74], "bv_eager_atom": [53, 74], "dt_split": [53, 74], "dt_clash": [53, 74], "skolem_intro": [53, 74], "alpha_equiv": [53, 74], "quant_var_reord": [53, 74], "sets_singleton_inj": [53, 74], "sets_ext": [53, 74], "sets_filter_up": [53, 74], "sets_filter_down": [53, 74], "concat_eq": [53, 74], "concat_unifi": [53, 74], "concat_conflict": [53, 74], "concat_conflict_deq": [53, 74], "concat_split": [53, 74], "concat_csplit": [53, 74], "concat_lprop": [53, 74], "concat_cprop": [53, 74], "string_decompos": [53, 74], "string_length_po": [53, 74], "string_length_non_empti": [53, 74], "string_reduct": [53, 74], "string_eager_reduct": [53, 74], "re_int": [53, 74], "re_unfold_po": [53, 74], "re_unfold_neg": [53, 74], "re_unfold_neg_concat_fix": [53, 74], "string_code_inj": [53, 74], "string_seq_unit_inj": [53, 74], "string_ext": [53, 74], "macro_string_infer": [53, 74], "macro_arith_scale_sum_ub": [53, 74], "arith_mult_abs_comparison": [53, 74], "arith_sum_ub": [53, 74], "int_tight_ub": [53, 74], "int_tight_lb": [53, 74], "arith_trichotomi": [53, 74], "arith_reduct": [53, 74], "arith_poly_norm_rel": [53, 74], "arith_mult_sign": [53, 74], "arith_mult_po": [53, 74], "arith_mult_neg": [53, 74], "arith_mult_tang": [53, 74], "arith_trans_pi": [53, 74], "arith_trans_exp_neg": [53, 74], "arith_trans_exp_posit": [53, 74], "arith_trans_exp_super_lin": [53, 74], "arith_trans_exp_zero": [53, 74], "arith_trans_exp_approx_above_neg": [53, 74], "arith_trans_exp_approx_above_po": [53, 74], "arith_trans_exp_approx_below": [53, 74], "arith_trans_sine_bound": [53, 74], "arith_trans_sine_shift": [53, 74], "arith_trans_sine_symmetri": [53, 74], "arith_trans_sine_tangent_zero": [53, 74], "arith_trans_sine_tangent_pi": [53, 74], "arith_trans_sine_approx_above_neg": [53, 74], "arith_trans_sine_approx_above_po": [53, 74], "arith_trans_sine_approx_below_neg": [53, 74], "arith_trans_sine_approx_below_po": [53, 74], "lfsc_rule": [53, 74], "alethe_rul": [53, 74], "distinct_elim": [53, 74], "distinct_card_conflict": [53, 74], "bv_to_nat_elim": [53, 74], "int_to_bv_elim": [53, 74], "macro_bool_nnf_norm": [53, 74], "macro_arith_string_pred_entail": [53, 74], "arith_pow_elim": [53, 74], "beta_reduc": [53, 74], "lambda_elim": [53, 74], "arrays_select_const": [53, 74], "macro_arrays_distinct_arrai": [53, 74], "macro_arrays_normalize_const": [53, 74], "arrays_eq_range_expand": [53, 74], "exists_elim": [53, 74], "quant_unused_var": [53, 74], "macro_quant_merge_prenex": [53, 74], "quant_merge_prenex": [53, 74], "macro_quant_prenex": [53, 74], "macro_quant_miniscop": [53, 74], "quant_miniscope_and": [53, 74], "quant_miniscope_or": [53, 74], "quant_miniscope_it": [53, 74], "quant_dt_split": [53, 74], "macro_quant_partition_connected_fv": [53, 74], "macro_quant_var_elim_eq": [53, 74], "quant_var_elim_eq": [53, 74], "macro_quant_var_elim_ineq": [53, 74], "macro_quant_rewrite_bodi": [53, 74], "dt_inst": [53, 74], "dt_collapse_selector": [53, 74], "dt_collapse_test": [53, 74], "dt_collapse_tester_singleton": [53, 74], "dt_cons_eq": [53, 74], "dt_cycl": [53, 74], "dt_collapse_updat": [53, 74], "dt_updater_elim": [53, 74], "dt_match_elim": [53, 74], "bv_umulo_elimin": [53, 74], "bv_smulo_elimin": [53, 74], "bv_add_combine_like_term": [53, 74], "bv_mult_simplifi": [53, 74], "bv_bitwise_sl": [53, 74], "bv_repeat_elim": [53, 74], "re_loop_elim": [53, 74], "re_inter_union_inclus": [53, 74], "str_in_re_ev": [53, 74], "str_in_re_consum": [53, 74], "str_in_re_concat_star_char": [53, 74], "str_in_re_sigma": [53, 74], "str_in_re_sigma_star": [53, 74], "macro_substr_strip_sym_length": [53, 74], "sets_is_empty_ev": [53, 74], "sets_insert_elim": [53, 74], "arith_mul_on": [53, 74], "arith_mul_zero": [53, 74], "arith_div_total_r": [53, 74], "arith_div_total_int": [53, 74], "arith_div_total_zero_r": [53, 74], "arith_div_total_zero_int": [53, 74], "arith_int_div_tot": [53, 74], "arith_int_div_total_on": [53, 74], "arith_int_div_total_zero": [53, 74], "arith_int_mod_tot": [53, 74], "arith_int_mod_total_on": [53, 74], "arith_int_mod_total_zero": [53, 74], "arith_elim_gt": [53, 74], "arith_elim_lt": [53, 74], "arith_elim_int_gt": [53, 74], "arith_elim_int_lt": [53, 74], "arith_elim_leq": [53, 74], "arith_leq_norm": [53, 74], "arith_geq_tighten": [53, 74], "arith_geq_norm1_int": [53, 74], "arith_geq_norm1_r": [53, 74], "arith_geq_norm2": [53, 74], "arith_refl_leq": [53, 74], "arith_refl_lt": [53, 74], "arith_refl_geq": [53, 74], "arith_refl_gt": [53, 74], "arith_eq_elim_r": [53, 74], "arith_eq_elim_int": [53, 74], "arith_plus_flatten": [53, 74], "arith_mult_flatten": [53, 74], "arith_mult_dist": [53, 74], "arith_abs_elim_int": [53, 74], "arith_abs_elim_r": [53, 74], "arith_to_real_elim": [53, 74], "arith_to_int_elim_to_r": [53, 74], "arith_div_elim_to_real1": [53, 74], "arith_div_elim_to_real2": [53, 74], "arith_sine_zero": [53, 74], "arith_sine_pi2": [53, 74], "arith_cosine_elim": [53, 74], "arith_tangent_elim": [53, 74], "arith_secent_elim": [53, 74], "arith_cosecent_elim": [53, 74], "arith_cotangent_elim": [53, 74], "arith_pi_not_int": [53, 74], "arith_abs_eq": [53, 74], "arith_abs_int_gt": [53, 74], "arith_abs_real_gt": [53, 74], "array_read_over_writ": [53, 74], "array_read_over_write2": [53, 74], "array_store_overwrit": [53, 74], "array_store_self": [53, 74], "array_read_over_write_split": [53, 74], "bool_double_not_elim": [53, 74], "bool_not_tru": [53, 74], "bool_not_fals": [53, 74], "bool_eq_tru": [53, 74], "bool_eq_fals": [53, 74], "bool_eq_nrefl": [53, 74], "bool_impl_false1": [53, 74], "bool_impl_false2": [53, 74], "bool_impl_true1": [53, 74], "bool_impl_true2": [53, 74], "bool_impl_elim": [53, 74], "bool_or_tru": [53, 74], "bool_or_flatten": [53, 74], "bool_and_fals": [53, 74], "bool_and_flatten": [53, 74], "bool_and_conf": [53, 74], "bool_and_conf2": [53, 74], "bool_or_taut": [53, 74], "bool_or_taut2": [53, 74], "bool_or_de_morgan": [53, 74], "bool_implies_de_morgan": [53, 74], "bool_and_de_morgan": [53, 74], "bool_or_and_distrib": [53, 74], "bool_xor_refl": [53, 74], "bool_xor_nrefl": [53, 74], "bool_xor_fals": [53, 74], "bool_xor_tru": [53, 74], "bool_xor_comm": [53, 74], "bool_xor_elim": [53, 74], "bool_not_xor_elim": [53, 74], "bool_not_eq_elim1": [53, 74], "bool_not_eq_elim2": [53, 74], "ite_neg_branch": [53, 74], "ite_then_tru": [53, 74], "ite_else_fals": [53, 74], "ite_then_fals": [53, 74], "ite_else_tru": [53, 74], "ite_then_lookahead_self": [53, 74], "ite_else_lookahead_self": [53, 74], "ite_then_lookahead_not_self": [53, 74], "ite_else_lookahead_not_self": [53, 74], "ite_expand": [53, 74], "bool_not_ite_elim": [53, 74], "ite_true_cond": [53, 74], "ite_false_cond": [53, 74], "ite_not_cond": [53, 74], "ite_eq_branch": [53, 74], "ite_then_lookahead": [53, 74], "ite_else_lookahead": [53, 74], "ite_then_neg_lookahead": [53, 74], "ite_else_neg_lookahead": [53, 74], "bv_concat_flatten": [53, 74], "bv_concat_extract_merg": [53, 74], "bv_extract_extract": [53, 74], "bv_extract_whol": [53, 74], "bv_extract_concat_1": [53, 74], "bv_extract_concat_2": [53, 74], "bv_extract_concat_3": [53, 74], "bv_extract_concat_4": [53, 74], "bv_eq_extract_elim1": [53, 74], "bv_eq_extract_elim2": [53, 74], "bv_eq_extract_elim3": [53, 74], "bv_extract_bitwise_and": [53, 74], "bv_extract_bitwise_or": [53, 74], "bv_extract_bitwise_xor": [53, 74], "bv_extract_not": [53, 74], "bv_extract_sign_extend_1": [53, 74], "bv_extract_sign_extend_2": [53, 74], "bv_extract_sign_extend_3": [53, 74], "bv_neg_mult": [53, 74], "bv_neg_add": [53, 74], "bv_mult_distrib_const_neg": [53, 74], "bv_mult_distrib_const_add": [53, 74], "bv_mult_distrib_const_sub": [53, 74], "bv_mult_distrib_1": [53, 74], "bv_mult_distrib_2": [53, 74], "bv_not_xor": [53, 74], "bv_and_simplify_1": [53, 74], "bv_and_simplify_2": [53, 74], "bv_or_simplify_1": [53, 74], "bv_or_simplify_2": [53, 74], "bv_xor_simplify_1": [53, 74], "bv_xor_simplify_2": [53, 74], "bv_xor_simplify_3": [53, 74], "bv_ult_add_on": [53, 74], "bv_concat_to_mult": [53, 74], "bv_mult_slt_mult_1": [53, 74], "bv_mult_slt_mult_2": [53, 74], "bv_commutative_and": [53, 74], "bv_commutative_or": [53, 74], "bv_commutative_xor": [53, 74], "bv_commutative_mul": [53, 74], "bv_or_zero": [53, 74], "bv_mul_on": [53, 74], "bv_mul_zero": [53, 74], "bv_add_zero": [53, 74], "bv_add_two": [53, 74], "bv_zero_extend_eliminate_0": [53, 74], "bv_sign_extend_eliminate_0": [53, 74], "bv_not_neq": [53, 74], "bv_ult_on": [53, 74], "bv_or_flatten": [53, 74], "bv_xor_flatten": [53, 74], "bv_and_flatten": [53, 74], "bv_mul_flatten": [53, 74], "bv_concat_merge_const": [53, 74], "bv_commutative_add": [53, 74], "bv_neg_sub": [53, 74], "bv_neg_idemp": [53, 74], "bv_sub_elimin": [53, 74], "bv_ugt_elimin": [53, 74], "bv_uge_elimin": [53, 74], "bv_sgt_elimin": [53, 74], "bv_sge_elimin": [53, 74], "bv_slt_elimin": [53, 74], "bv_sle_elimin": [53, 74], "bv_redor_elimin": [53, 74], "bv_redand_elimin": [53, 74], "bv_ule_elimin": [53, 74], "bv_comp_elimin": [53, 74], "bv_rotate_left_eliminate_1": [53, 74], "bv_rotate_left_eliminate_2": [53, 74], "bv_rotate_right_eliminate_1": [53, 74], "bv_rotate_right_eliminate_2": [53, 74], "bv_nand_elimin": [53, 74], "bv_nor_elimin": [53, 74], "bv_xnor_elimin": [53, 74], "bv_sdiv_elimin": [53, 74], "bv_sdiv_eliminate_fewer_bitwise_op": [53, 74], "bv_zero_extend_elimin": [53, 74], "bv_sign_extend_elimin": [53, 74], "bv_uaddo_elimin": [53, 74], "bv_saddo_elimin": [53, 74], "bv_sdivo_elimin": [53, 74], "bv_smod_elimin": [53, 74], "bv_smod_eliminate_fewer_bitwise_op": [53, 74], "bv_srem_elimin": [53, 74], "bv_srem_eliminate_fewer_bitwise_op": [53, 74], "bv_usubo_elimin": [53, 74], "bv_ssubo_elimin": [53, 74], "bv_ite_equal_children": [53, 74], "bv_ite_const_children_1": [53, 74], "bv_ite_const_children_2": [53, 74], "bv_ite_equal_cond_1": [53, 74], "bv_ite_equal_cond_2": [53, 74], "bv_ite_equal_cond_3": [53, 74], "bv_ite_merge_then_if": [53, 74], "bv_ite_merge_else_if": [53, 74], "bv_ite_merge_then_els": [53, 74], "bv_ite_merge_else_els": [53, 74], "bv_shl_by_const_0": [53, 74], "bv_shl_by_const_1": [53, 74], "bv_shl_by_const_2": [53, 74], "bv_lshr_by_const_0": [53, 74], "bv_lshr_by_const_1": [53, 74], "bv_lshr_by_const_2": [53, 74], "bv_ashr_by_const_0": [53, 74], "bv_ashr_by_const_1": [53, 74], "bv_ashr_by_const_2": [53, 74], "bv_and_concat_pullup": [53, 74], "bv_or_concat_pullup": [53, 74], "bv_xor_concat_pullup": [53, 74], "bv_bitwise_idemp_1": [53, 74], "bv_bitwise_idemp_2": [53, 74], "bv_and_zero": [53, 74], "bv_and_on": [53, 74], "bv_or_on": [53, 74], "bv_xor_dupl": [53, 74], "bv_xor_on": [53, 74], "bv_xor_zero": [53, 74], "bv_bitwise_not_and": [53, 74], "bv_bitwise_not_or": [53, 74], "bv_xor_not": [53, 74], "bv_not_idemp": [53, 74], "bv_ult_zero_1": [53, 74], "bv_ult_zero_2": [53, 74], "bv_ult_self": [53, 74], "bv_lt_self": [53, 74], "bv_ule_self": [53, 74], "bv_ule_zero": [53, 74], "bv_zero_ul": [53, 74], "bv_sle_self": [53, 74], "bv_ule_max": [53, 74], "bv_not_ult": [53, 74], "bv_not_ul": [53, 74], "bv_not_sl": [53, 74], "bv_mult_pow2_1": [53, 74], "bv_mult_pow2_2": [53, 74], "bv_mult_pow2_2b": [53, 74], "bv_extract_mult_leading_bit": [53, 74], "bv_udiv_pow2_not_on": [53, 74], "bv_udiv_zero": [53, 74], "bv_udiv_on": [53, 74], "bv_urem_pow2_not_on": [53, 74], "bv_urem_on": [53, 74], "bv_urem_self": [53, 74], "bv_shl_zero": [53, 74], "bv_lshr_zero": [53, 74], "bv_ashr_zero": [53, 74], "bv_ugt_urem": [53, 74], "bv_slt_zero": [53, 74], "bv_merge_sign_extend_1": [53, 74], "bv_merge_sign_extend_2": [53, 74], "bv_merge_sign_extend_3": [53, 74], "bv_sign_extend_eq_const_1": [53, 74], "bv_sign_extend_eq_const_2": [53, 74], "bv_zero_extend_eq_const_1": [53, 74], "bv_zero_extend_eq_const_2": [53, 74], "bv_sign_extend_ult_const_1": [53, 74], "bv_sign_extend_ult_const_2": [53, 74], "bv_sign_extend_ult_const_3": [53, 74], "bv_sign_extend_ult_const_4": [53, 74], "sets_eq_singleton_emp": [53, 74], "sets_member_singleton": [53, 74], "sets_member_emp": [53, 74], "sets_subset_elim": [53, 74], "sets_union_comm": [53, 74], "sets_inter_comm": [53, 74], "sets_inter_emp1": [53, 74], "sets_inter_emp2": [53, 74], "sets_minus_emp1": [53, 74], "sets_minus_emp2": [53, 74], "sets_union_emp1": [53, 74], "sets_union_emp2": [53, 74], "sets_inter_memb": [53, 74], "sets_minus_memb": [53, 74], "sets_union_memb": [53, 74], "sets_choose_singleton": [53, 74], "sets_card_singleton": [53, 74], "sets_card_union": [53, 74], "sets_card_minu": [53, 74], "sets_card_emp": [53, 74], "sets_minus_self": [53, 74], "sets_is_empty_elim": [53, 74], "str_eq_ctn_fals": [53, 74], "str_eq_ctn_full_false1": [53, 74], "str_eq_ctn_full_false2": [53, 74], "str_concat_flatten": [53, 74], "str_concat_flatten_eq": [53, 74], "str_concat_flatten_eq_rev": [53, 74], "str_substr_empty_str": [53, 74], "str_substr_empty_rang": [53, 74], "str_substr_empty_start": [53, 74], "str_substr_empty_start_neg": [53, 74], "str_substr_eq_empti": [53, 74], "str_len_replace_inv": [53, 74], "str_len_update_inv": [53, 74], "str_len_substr_in_rang": [53, 74], "str_len_substr_ub1": [53, 74], "str_len_substr_ub2": [53, 74], "str_concat_clash": [53, 74], "str_concat_clash_rev": [53, 74], "str_concat_clash2": [53, 74], "str_concat_clash2_rev": [53, 74], "str_concat_unifi": [53, 74], "str_concat_unify_rev": [53, 74], "str_concat_unify_bas": [53, 74], "str_concat_unify_base_rev": [53, 74], "str_concat_clash_char": [53, 74], "str_concat_clash_char_rev": [53, 74], "str_prefixof_elim": [53, 74], "str_suffixof_elim": [53, 74], "str_prefixof_on": [53, 74], "str_suffixof_on": [53, 74], "str_substr_combine1": [53, 74], "str_substr_combine2": [53, 74], "str_substr_combine3": [53, 74], "str_substr_combine4": [53, 74], "str_substr_concat1": [53, 74], "str_substr_concat2": [53, 74], "str_substr_ful": [53, 74], "str_substr_full_eq": [53, 74], "str_contains_refl": [53, 74], "str_contains_concat_find": [53, 74], "str_contains_split_char": [53, 74], "str_contains_lt_len": [53, 74], "str_contains_leq_len_eq": [53, 74], "str_contains_emp": [53, 74], "str_contains_is_emp": [53, 74], "str_at_elim": [53, 74], "str_replace_self": [53, 74], "str_replace_prefix": [53, 74], "str_replace_no_contain": [53, 74], "str_replace_empti": [53, 74], "str_replace_contains_pr": [53, 74], "str_replace_all_no_contain": [53, 74], "str_replace_re_non": [53, 74], "str_replace_re_all_non": [53, 74], "str_len_concat_rec": [53, 74], "str_indexof_self": [53, 74], "str_indexof_no_contain": [53, 74], "str_indexof_contains_pr": [53, 74], "str_indexof_re_non": [53, 74], "str_to_lower_concat": [53, 74], "str_to_upper_concat": [53, 74], "str_to_lower_upp": [53, 74], "str_to_upper_low": [53, 74], "str_to_lower_len": [53, 74], "str_to_upper_len": [53, 74], "str_to_lower_from_int": [53, 74], "str_to_upper_from_int": [53, 74], "str_to_int_concat_neg_on": [53, 74], "str_leq_empti": [53, 74], "str_leq_empty_eq": [53, 74], "str_leq_concat_fals": [53, 74], "str_leq_concat_tru": [53, 74], "str_lt_elim": [53, 74], "re_all_elim": [53, 74], "re_opt_elim": [53, 74], "re_diff_elim": [53, 74], "re_concat_emp": [53, 74], "re_concat_non": [53, 74], "re_concat_flatten": [53, 74], "re_concat_star_swap": [53, 74], "re_concat_star_repeat": [53, 74], "re_concat_merg": [53, 74], "re_union_al": [53, 74], "re_union_non": [53, 74], "re_union_flatten": [53, 74], "re_union_dup": [53, 74], "re_inter_al": [53, 74], "re_inter_non": [53, 74], "re_inter_flatten": [53, 74], "re_inter_dup": [53, 74], "re_star_non": [53, 74], "re_loop_neg": [53, 74], "re_inter_cstr": [53, 74], "re_inter_cstring_neg": [53, 74], "str_substr_len_includ": [53, 74], "str_substr_len_include_pr": [53, 74], "str_substr_len_skip": [53, 74], "seq_len_rev": [53, 74], "seq_rev_rev": [53, 74], "seq_rev_concat": [53, 74], "seq_len_unit": [53, 74], "seq_nth_unit": [53, 74], "seq_rev_unit": [53, 74], "seq_len_empti": [53, 74], "re_in_empti": [53, 74], "re_in_sigma": [53, 74], "re_in_sigma_star": [53, 74], "re_in_cstr": [53, 74], "re_in_comp": [53, 74], "str_in_re_union_elim": [53, 74], "str_in_re_inter_elim": [53, 74], "str_in_re_range_elim": [53, 74], "str_in_re_contain": [53, 74], "str_in_re_strip_prefix": [53, 74], "str_in_re_strip_prefix_neg": [53, 74], "str_in_re_strip_prefix_sr_singl": [53, 74], "str_in_re_strip_prefix_sr_single_neg": [53, 74], "str_in_re_strip_prefix_srs_singl": [53, 74], "str_in_re_strip_prefix_srs_single_neg": [53, 74], "str_in_re_strip_prefix_s_singl": [53, 74], "str_in_re_strip_prefix_s_single_neg": [53, 74], "str_in_re_strip_prefix_bas": [53, 74], "str_in_re_strip_prefix_base_neg": [53, 74], "str_in_re_strip_prefix_base_s_singl": [53, 74], "str_in_re_strip_prefix_base_s_single_neg": [53, 74], "str_in_re_strip_char": [53, 74], "str_in_re_strip_char_s_singl": [53, 74], "str_in_re_strip_prefix_rev": [53, 74], "str_in_re_strip_prefix_neg_rev": [53, 74], "str_in_re_strip_prefix_sr_single_rev": [53, 74], "str_in_re_strip_prefix_sr_single_neg_rev": [53, 74], "str_in_re_strip_prefix_srs_single_rev": [53, 74], "str_in_re_strip_prefix_srs_single_neg_rev": [53, 74], "str_in_re_strip_prefix_s_single_rev": [53, 74], "str_in_re_strip_prefix_s_single_neg_rev": [53, 74], "str_in_re_strip_prefix_base_rev": [53, 74], "str_in_re_strip_prefix_base_neg_rev": [53, 74], "str_in_re_strip_prefix_base_s_single_rev": [53, 74], "str_in_re_strip_prefix_base_s_single_neg_rev": [53, 74], "str_in_re_strip_char_rev": [53, 74], "str_in_re_strip_char_s_single_rev": [53, 74], "str_in_re_req_unfold": [53, 74], "str_in_re_req_unfold_rev": [53, 74], "str_in_re_skip_unfold": [53, 74], "str_in_re_skip_unfold_rev": [53, 74], "str_in_re_test_unfold": [53, 74], "str_in_re_test_unfold_rev": [53, 74], "eq_refl": [53, 74], "eq_symm": [53, 74], "eq_cond_deq": [53, 74], "eq_ite_lift": [53, 74], "distinct_binary_elim": [53, 74], "uf_bv2nat_int2bv": [53, 74], "uf_bv2nat_int2bv_extend": [53, 74], "uf_bv2nat_int2bv_extract": [53, 74], "uf_int2bv_bv2nat": [53, 74], "uf_bv2nat_geq_elim": [53, 74], "uf_int2bv_bvult_equiv": [53, 74], "uf_int2bv_bvule_equiv": [53, 74], "round_nearest_ties_to_even": [54, 78, 115], "round_toward_posit": [54, 78, 115], "round_toward_neg": [54, 78, 115], "round_toward_zero": [54, 78], "round_nearest_ties_to_awai": [54, 78], "internal_sort_kind": [55, 81], "undefined_sort_kind": [55, 81], "null_sort": [55, 81], "bag_sort": [55, 81], "boolean_sort": [55, 81], "datatype_sort": [55, 81], "finite_field_sort": [55, 81], "floatingpoint_sort": [55, 81], "function_sort": [55, 81], "reglan_sort": [55, 81], "roundingmode_sort": [55, 81], "sequence_sort": [55, 81], "set_sort": [55, 81, 123], "tuple_sort": [55, 81], "nullable_sort": [55, 81], "uninterpreted_sort": [55, 81], "last_sort_kind": [55, 81], "ue": 56, "requires_full_check": [56, 87], "resourceout": [56, 87], "memout": [56, 87], "requires_check_again": [56, 87], "unknown_reason": [56, 87], "broadli": 57, "still": [57, 130, 141], "unsaf": 57, "thrown": [57, 62, 85], "subclass": [57, 92], "stringstream": [57, 118, 119, 125, 126], "getmessag": 57, "noexcept": 57, "overrid": [57, 92, 130, 131], "style": [57, 131], "feel": 57, "redefin": 57, "overridden": 57, "recommend": [57, 130], "recover": 57, "cvc5apioptionexcept": [57, 59], "cvc5apiunsupportedexcept": 57, "parserendoffileexcept": 57, "msg": 57, "long": [57, 89, 91, 92, 94, 95, 139], "column": 57, "getfilenam": 57, "getlin": 57, "getcolumn": 57, "issatunknown": [58, 60, 76], "mostli": 59, "mirror": [59, 75], "There": [59, 133, 141], "hierarchi": 59, "git": [59, 88, 130], "clone": [59, 88, 130], "cd": [59, 88, 130], "sh": [59, 88, 130], "download": [59, 88, 130, 133, 134, 136], "instal": [59, 129, 133, 134, 136], "cmake": [59, 88, 130, 141], "libcvc5jni": 59, "libcvc5pars": 59, "libcvc5": 59, "libpicpoli": 59, "libpicpolyxx": 59, "libpoli": 59, "libpolyxx": 59, "dev": [59, 130], "jar": 59, "compil": 59, "javac": 59, "cp": 59, "librari": 59, "djava": 59, "abstractplugin": 59, "triplet": 59, "rmmanag": 60, "lver": 60, "__getitem__": [62, 63, 71, 82, 85, 90, 100, 101, 102, 103], "__iter__": [62, 63, 82, 85], "verbatim": [74, 131], "emb": 74, "rst": 74, "asterisk": 74, "endverbatim": 74, "program": [75, 104, 131, 138], "experi": 75, "usatisfi": 77, "formuula": 79, "glbl": 79, "glb": 79, "warn": [79, 85, 132, 134, 136], "dictionari": [79, 82], "proceed": [79, 138, 140], "term_or_list": 79, "obj": [79, 86], "arg0": [79, 86], "arg1": [79, 86], "signifcand": [79, 86], "arg2": [79, 86], "temporari": [79, 86], "forward": [79, 86], "comma": [79, 86], "Of": [79, 86], "__str__": [80, 85, 92, 96], "sort_or_list_1": 80, "sort_or_list_2": 80, "__next__": 82, "dict": [82, 85], "inclu": 82, "hexdecim": 85, "indici": 85, "held": 85, "necessari": 85, "then_t": 85, "else_t": 85, "term_or_list_1": 85, "term_or_list_2": 85, "topythonobj": [85, 114], "ff": [85, 94, 114, 131, 136, 144], "almost": 88, "exact": 88, "aim": 88, "z3": [88, 89], "verbos": [88, 131], "abil": 88, "everyth": 88, "visit": 88, "page": [88, 93, 130, 138, 145], "pip": [88, 130], "jn": [88, 130], "parallel": [88, 130], "thread": [88, 130], "want": [88, 107, 108, 130], "window": 88, "execut": [88, 107, 118, 119, 139, 145], "mingw64": [88, 130], "environ": [88, 130], "final": [88, 115, 131, 132], "sure": [88, 130], "python3": 88, "ctx": [89, 90, 91, 92, 93, 94, 95, 98, 100, 101, 102, 103], "is_real": [89, 95], "intval": [89, 92, 96, 100, 101, 102, 103, 122, 123], "100": [89, 131], "realval": [89, 95, 100, 103], "ratval": 89, "boolsort": [89, 90, 91, 92, 93, 98, 109, 127], "freshint": 89, "intvector": [89, 102], "sz": [89, 91, 92, 94], "x__0": 89, "x__1": 89, "x__2": 89, "freshreal": 89, "realvector": 89, "arithref": 89, "__add__": [89, 91, 94, 95, 100], "__sub__": [89, 91, 94, 95], "__mul__": [89, 91, 92, 94, 95], "__div__": [89, 91, 95], "__pow__": 89, "__neg__": [89, 91, 94, 95], "__gt__": [89, 91, 95, 103], "__lt__": [89, 91, 95, 103], "__ge__": [89, 91, 95, 103], "__le__": [89, 91, 95, 103], "exprref": [89, 91, 92, 94], "__eq__": [89, 91, 92, 94, 102], "__ne__": [89, 91, 92, 102], "main_ctx": [89, 92], "uminu": 89, "unari": [89, 91, 94, 95, 121, 143, 144, 150], "kept": 89, "compatibl": 89, "intsmodulu": 89, "__mod__": [89, 91, 95], "toreal": [89, 92], "toint": 89, "arithemt": 89, "cbrt": 89, "cubic": 89, "is_arith": 89, "is_int_valu": 89, "is_rational_valu": 89, "is_arith_sort": 89, "is_add": 89, "is_mul": 89, "is_sub": 89, "is_div": 89, "is_idiv": 89, "is_mod": 89, "is_l": 89, "is_lt": 89, "is_g": 89, "is_gt": 89, "is_is_int": 89, "is_to_r": 89, "is_to_int": 89, "arithsortref": 89, "smtexcept": [89, 90, 92, 96], "ex": [89, 92, 130], "reverse_children": [89, 90, 91, 92, 93, 94, 95, 98, 100, 101, 103], "boolval": [89, 92, 112], "__pos__": [89, 91, 94, 95], "__radd__": [89, 91, 94, 95], "__rdiv__": [89, 91, 95], "__rmod__": [89, 91, 95], "__rmul__": [89, 91, 92, 94, 95], "__rpow__": 89, "__rsub__": [89, 91, 94, 95], "__rtruediv__": [89, 91, 95], "__truediv__": [89, 91, 95], "intnumref": 89, "as_binary_str": 89, "1010": 89, "as_long": [89, 91, 94], "bignum": [89, 91, 94], "as_str": [89, 95, 100], "ratnumref": 89, "prec": [89, 131], "333": 89, "denominator_as_long": 89, "numerator_as_long": 89, "10000000000": 89, "10000000001": 89, "dom": 90, "rng": 90, "constarrai": 90, "alia": [90, 102, 131], "arraysort": [90, 92, 108], "aa": [90, 103], "unimpl": 90, "multi": [90, 131], "arrayref": 90, "is_array_sort": 90, "is_arrai": 90, "is_const_arrai": 90, "is_k": 90, "is_select": 90, "is_stor": 90, "is_upd": 90, "arraysortref": 90, "is_bv": [91, 95], "bitvecsort": [91, 92, 95, 108], "x2": [91, 94, 95, 144], "bitvecv": [91, 95], "0x": [91, 94, 95], "8x": [91, 94, 95], "0x0000000a": [91, 94], "byte": 91, "bitvecref": 91, "__or__": [91, 101], "__and__": [91, 101], "__xor__": 91, "__invert__": 91, "__lshift__": 91, "__rshift__": 91, "is_sign": 91, "num_bit": 91, "bv_x": 91, "bv_x_plus_4": 91, "289": 91, "3x": 91, "121": 91, "bvsle": 91, "bvslt": [91, 108], "bvsge": 91, "bvuge": 91, "bvsgt": [91, 108], "bvugt": 91, "bvsdiv": 91, "bvudiv": 91, "bvsmod": 91, "bvurem": 91, "bvsrem": 91, "bvashr": 91, "bvlshr": 91, "as_signed_long": [91, 94], "rotateleft": 91, "rotateright": 91, "signext": 91, "extra": 91, "24": [91, 95, 115, 131, 138, 144], "v0": 91, "254": 91, "fe": 91, "zeroext": 91, "repeatbitvec": 91, "aaaa": [91, 103], "bvredand": 91, "bvredor": 91, "bvadd": [91, 107], "bvmult": 91, "bvsub": [91, 107], "bvor": 91, "bvxor": [91, 107], "bvnot": 91, "is_bv_sort": 91, "is_bv_valu": 91, "bitvecsortref": 91, "b00000000000000000000000000001010": 91, "setsort": [91, 92, 101], "bvshl": 91, "__rand__": 91, "__rlshift__": 91, "__ror__": 91, "__rrshift__": 91, "__rxor__": 91, "bitvecnumref": 91, "0xbadc0d": 91, "195936478": 91, "0x0badc0d": 91, "is_tru": 92, "is_fals": 92, "is_bool": 92, "freshbool": 92, "b1": 92, "b2": 92, "blank": 92, "space": [92, 129], "boolvector": 92, "p__0": 92, "p__1": 92, "p__2": 92, "sever": [92, 104, 134, 135, 136, 149], "freshconst": 92, "freshfunct": 92, "probe": [92, 97], "p__3": 92, "p__4": 92, "mk_not": 92, "is_bool_valu": 92, "is_and": 92, "is_or": 92, "is_impli": 92, "is_not": 92, "is_eq": 92, "is_distinct": 92, "is_const": [92, 98], "is_func_decl": 92, "__bool__": 92, "__hash__": [92, 102], "__init__": [92, 93, 96, 102], "__nonzero__": 92, "__repr__": [92, 93, 102], "repr": [92, 93, 102], "__weakref__": [92, 93, 96, 102], "weak": [92, 93, 96, 102, 131], "as_ast": [92, 98], "n1": [92, 93, 140, 143], "n2": [92, 93], "get_id": 92, "hashcod": 92, "num_arg": 92, "sortref": 92, "pretti": 92, "boolref": 92, "boolsortref": 92, "is_expr": [92, 96], "funcdeclref": 92, "__call__": [92, 93], "coercion": [92, 93], "isinst": [92, 102], "manipul": 93, "happen": [93, 131], "intlist": 93, "third": 93, "finish": [93, 118, 119, 131, 139], "is_nil": [93, 110], "is_con": [93, 110], "testor": 93, "recogn": 93, "accessor": [93, 110], "ambigu": [93, 143], "datatypesortref": 93, "unambigu": 93, "createdatatyp": 93, "codatayp": 93, "intstream": 93, "helper": [93, 150], "treelist": 93, "car": 93, "cdr": 93, "tuplesort": [93, 147], "mk_pair": 93, "disjointsum": 93, "en": [93, 95], "wikipedia": [93, 95], "wiki": [93, 95], "tagged_union": 93, "injector": 93, "extractor": 93, "inject0": 93, "extract0": 93, "inject1": 93, "extract1": 93, "cell": 93, "num_constructor": [93, 110], "num_acc": 93, "is_nam": 93, "datatypeconstructorref": 93, "datatypeselectorref": 93, "datatyperecognizerref": 93, "datatyperef": 93, "finitefieldelem": [94, 114], "is_ff": 94, "finitefieldsort": [94, 114], "finitefieldv": 94, "29": 94, "f7": 94, "finitefieldref": 94, "ffadd": 94, "ffsub": 94, "ffneg": 94, "elemetn": 94, "ffmult": 94, "is_ff_sort": 94, "is_ff_valu": 94, "finitefieldsortref": 94, "31": [94, 113], "f10m31": 94, "finitefieldnumref": 94, "28": 94, "fpsort": 95, "is_fp": 95, "ebit": 95, "sbit": 95, "fpmul": 95, "rne": [95, 115], "fpadd": 95, "fpval": [95, 115], "25": [95, 131, 138], "exponent_as_long": 95, "0x00000004": 95, "125": 95, "fpnan": 95, "set_fpa_pretti": 95, "pb": [95, 131], "get_fpa_pretti": 95, "fpplusinfin": 95, "fpminusinfin": 95, "fpinfin": 95, "fppluszero": 95, "fpminuszero": 95, "fpzero": 95, "53": [95, 131], "float16": 95, "half": 95, "floathalf": 95, "float32": [95, 115, 131], "floatsingl": 95, "float64": [95, 131], "floatdoubl": 95, "float128": 95, "128": 95, "quadrupl": 95, "floatquadrupl": 95, "fpref": 95, "fpab": 95, "fpneg": 95, "rtz": 95, "fpsub": 95, "fpdiv": 95, "fprem": 95, "fpmin": 95, "fpmax": 95, "fpfma": 95, "fpsqrt": 95, "fproundtointegr": 95, "roundtointegr": 95, "fpisnan": [95, 115], "isnan": 95, "fpisinf": [95, 115], "isinfinit": 95, "fpiszero": 95, "iszero": 95, "fpisnorm": 95, "isnorm": [95, 115], "fpissubnorm": 95, "issubnorm": 95, "fpisneg": 95, "isneg": 95, "fpisposit": 95, "isposit": 95, "fplt": 95, "fpleq": 95, "fpgt": 95, "fpgeq": 95, "fpeq": [95, 115], "fpneq": 95, "fpfp": 95, "sgn": 95, "22": 95, "23": [95, 130], "fptofp": 95, "127": 95, "4194304": [95, 131], "xv": 95, "slvr": 95, "a1": 95, "a2": 95, "a3": 95, "x_db": 95, "x_r": 95, "x_sign": 95, "fpbvtofp": 95, "x_bv": 95, "0x3f800000": 95, "x_fp": 95, "1065353216": 95, "fpfptofp": 95, "x_sgl": 95, "x_dbl": 95, "fprealtofp": 95, "fpsignedtofp": 95, "4294967291": 95, "fpunsignedtofp": 95, "fptofpunsign": 95, "fptosbv": 95, "fptoubv": 95, "fptoreal": 95, "is_fp_sort": 95, "is_fp_valu": 95, "is_fprm_sort": 95, "is_fprm": 95, "is_fprm_valu": 95, "roundnearesttiestoeven": [95, 115], "broken": 95, "doi": [95, 138], "1109": [95, 138], "ieeestd": [95, 138], "8766229": [95, 138], "point_arithmet": 95, "rounding_mod": 95, "roundnearesttiestoawai": 95, "rna": 95, "roundtowardposit": 95, "rtp": [95, 115], "roundtowardneg": 95, "rtn": [95, 115], "roundtowardzero": 95, "get_default_rounding_mod": 95, "set_default_rounding_mod": [95, 115], "sum1": 95, "sum2": 95, "solverfor": [95, 102, 117], "qf_fp": [95, 115], "explicit": [95, 99], "get_default_fp_sort": 95, "set_default_fp_sort": 95, "fpsortref": 95, "b0": 95, "b01111111": 95, "b00000000000000000000000": 95, "fpnumref": 95, "bias": [95, 131], "isinf": 95, "subnorm": 95, "significand_as_long": 95, "miss": [95, 97, 103, 130], "2097152": 95, "fprmref": 95, "is_sort": 96, "is_app": 96, "is_app_of": 96, "z3py": 97, "pseudo": [97, 131], "atmost": 97, "atleast": 97, "partialord": 97, "linearord": 97, "html": [97, 130], "hook": 97, "fixedpoint": 97, "builder": 97, "overview": [97, 134], "finitefield": [97, 114, 144], "fp": [97, 115, 131, 140], "mem0": 98, "lo": [98, 103], "hi": [98, 103], "mem1": 98, "is_var": 98, "is_quantifi": 98, "quantifierref": 98, "is_exist": 98, "is_foral": 98, "is_lambda": 98, "num_var": 98, "var_nam": 98, "displai": [98, 109], "var_sort": 98, "With": [99, 132], "seqsort": [100, 103, 122], "stringsort": [100, 103], "e2": 100, "stringval": [100, 103, 124], "e3": 100, "subseq": 100, "offset": [100, 103], "sequpd": 100, "content": [100, 130], "lst": 100, "seqref": 100, "seqsortref": 100, "elem_sort": [100, 101, 108], "is_str": 100, "At": [100, 103], "is_string_valu": 100, "emptyset": [101, 123, 145, 147], "fullset": 101, "setunion": 101, "setintersect": 101, "setadd": 101, "setdel": 101, "setdiffer": 101, "setcompl": 101, "ismemb": [101, 123], "issubset": [101, 123], "setref": 101, "setsortref": 101, "kwarg": 102, "solve_us": 102, "claim": 102, "tri": [102, 131, 132], "counterexampl": [102, 115, 131], "is_tautologi": [102, 115], "noth": [102, 116], "logfil": 102, "uiowa": 102, "edu": 102, "simplesolv": 102, "__iadd__": 102, "fml": 102, "assert_expr": 102, "eval": [102, 131], "ackermann": [102, 131], "initfromlog": 102, "num_scop": 102, "backtrack": 102, "runtimeerror": 102, "reason_unknown": 102, "why": [102, 131, 132], "recreat": 102, "crash": [102, 131], "foo": [102, 118, 119], "lisp": 102, "checksatresult": 102, "modelref": 102, "aka": 102, "__len__": 102, "model_complet": 102, "a__0": 102, "a__1": 102, "a__2": 102, "a__3": 102, "a__4": 102, "hello": [103, 111], "s2": [103, 124, 146], "abcabc": 103, "dst": [103, 146], "he": 103, "strtoint": 103, "inttostr": 103, "55": 103, "strtocod": 103, "97": [103, 148], "42": [103, 138], "strfromcod": 103, "stringref": 103, "accept": [103, 145], "inr": [103, 124], "bb": 103, "re2": 103, "comp_r": 103, "stringsortref": 103, "easiest": 104, "later": [105, 131], "written": [105, 134], "intersectionac": [106, 123, 142, 147], "intersectionbc": [106, 123, 142, 147], "distribut": [106, 121, 123, 130, 131, 142, 147], "uniondisjointab": [106, 142], "lh": [106, 115, 123, 124, 125, 142, 147], "rh": [106, 115, 123, 124, 125, 142, 147], "guess": [106, 131, 140, 142], "unionmaxab": [106, 142], "theorem": [106, 123, 129, 142, 147], "verifi": [106, 121, 123, 131, 142, 147], "emptbag": [106, 142], "emptybag": [106, 142], "four": [106, 142], "bag_a_2": [106, 142], "bag_b_3": [106, 142], "bag_b_1": [106, 142], "bag_c_2": [106, 142], "bag_a_2_b_3": [106, 142], "bag_b_1_c_2": [106, 142], "union_disjoint": [106, 142], "count_x": [106, 142], "cvc5_get_string_sort": [106, 124], "interac": 106, "interbc": 106, "union_disab": 106, "args_not": 106, "not_guess": 106, "union_maxab": 106, "not_arg": 106, "not_theorem": 106, "empty_bag": 106, "cvc5_mk_empty_bag": 106, "cvc5_mk_string": [106, 124], "uniondisjoint": [106, 140, 142], "inter_min": [106, 142], "union_max": [106, 142], "liana": [107, 108, 138], "hadarean": [107, 108, 138], "andrew": [107, 110, 113, 116, 118, 119, 121, 123, 125, 126, 138, 147], "book": 107, "hacker": 107, "delight": 107, "henri": 107, "warren": 107, "straightforward": [107, 147], "piec": 107, "bv32": [107, 113], "x_eq_a": 107, "x_eq_b": 107, "new_x": 107, "new_x_": 107, "assignment0": 107, "a_xor_b_xor_x": 107, "assignment1": 107, "new_x_eq_new_x_": 107, "a_plus_b": 107, "a_plus_b_minus_x": 107, "assignment2": 107, "x_neq_x": 107, "extract_op": 107, "lsb_of_a": 107, "a_odd": 107, "1u": 107, "args3": [107, 108, 109, 110, 115, 117, 122, 124, 125, 126], "not_new_x_eq_new_x_": 107, "not_queri": 107, "cvc5_mk_bv_uint64": [107, 108, 115], "deter": [107, 108, 109, 110, 116, 117], "bitvector32": [107, 113], "x_is_a_or_b": 107, "new_x0": 107, "per": [107, 131, 139, 140], "new_x1": 107, "new_x2": 107, "makai": [107, 108, 109, 110, 113, 115, 116, 117, 122, 123, 124, 147], "mann": [107, 108, 109, 110, 113, 115, 116, 117, 122, 123, 124, 147], "satisifi": 107, "lsb": 107, "bv1": [107, 108, 115, 131], "bitvectors_and_arrai": 108, "mathia": [108, 109, 115, 116, 117, 121, 124, 125, 126, 138, 147, 150], "preiner": [108, 109, 115, 116, 117, 121, 124, 125, 126, 131, 147, 150], "qf_abv": [108, 131], "previous": [108, 143], "current_arrai": 108, "unrol": 108, "index_s": 108, "log2": [108, 131], "elementsort": [108, 142, 147], "0u": 108, "current_array0": 108, "current_array0_gt_0": 108, "old_curr": 108, "2u": 108, "new_curr": 108, "current_slt_new_curr": 108, "push_back": [108, 143], "index_sort": 108, "arr_sort": 108, "cvc5_mk_array_sort": 108, "cur_arr": 108, "cur_arr0": 108, "cur_arr0_gt_0": 108, "old_cur": 108, "new_cur": 108, "cur_slt_new_cur": 108, "bitvectorsandarrai": 108, "privat": [108, 109, 110, 125, 126], "log": [108, 131, 138], "toarrai": [108, 125, 126], "idx_bit": 108, "ceil": 108, "init_arrai": 108, "init_arr": 108, "larg": [108, 129], "enough": 108, "constarr0": 108, "zeroi": 108, "bv0": 108, "onei": 108, "twoi": 108, "bv2": 108, "threei": 108, "bv3": 108, "twoe": 108, "unroll1": 108, "current_array_": 108, "unroll2": 108, "current_array__": 108, "unroll3": 108, "current_array___": 108, "tim": [109, 116, 117, 138], "king": [109, 116, 117, 138], "prefixprintgetvalu": 109, "dag": [109, 131], "thresh": [109, 131], "disabl": [109, 131, 139], "dagifi": [109, 131], "qf_uflira": 109, "utoint": 109, "intpr": 109, "f_x": [109, 127], "f_y": [109, 127], "p_0": 109, "p_f_y": [109, 127], "nest": [109, 131], "it2": 109, "prefix_print_get_valu": 109, "statement": 109, "un_sort": [109, 127], "bool_sort": [109, 125, 126, 127], "un_to_int_sort": 109, "cvc5_mk_fun_sort": [109, 127], "int_pred_sort": 109, "args0": 109, "aarg": 109, "it1": 109, "hasnext": [109, 110], "def": [109, 110, 112, 125, 126, 131], "print_val": 109, "print_all_subterm": 109, "ncvc5": 109, "induct": [110, 113, 131, 138, 143, 145], "conslistsort": 110, "old": [110, 131], "conslistspec": 110, "useless": 110, "relev": [110, 131], "spec": 110, "datatypesort": 110, "fill": 110, "conslist": 110, "too": 110, "though": [110, 147], "cours": 110, "t_is_con": 110, "t_updat": 110, "paramconslistspec": 110, "paramlist": 110, "paramcon": 110, "paramnil": 110, "paramconslistsort": 110, "paramconsintlistsort": 110, "paramconslist": 110, "head_a": 110, "50": [110, 131], "keep": [110, 131], "mind": 110, "selfsort": 110, "cons2": 110, "nil2": 110, "conslistsort2": 110, "list2": 110, "cons_list_sort": 110, "cons_list_decl": 110, "cons_list": 110, "cvc5_dt_cons_get_constructor_by_nam": 110, "nil_term": 110, "cons_term": 110, "dtcon": 110, "dtsel": 110, "param_cons_list_decl": 110, "cvc5_mk_dt_decl_with_param": 110, "param_con": 110, "param_nil": 110, "param_cons_list_sort": 110, "param_cons_int_list_sort": 110, "param_cons_list": 110, "cons_list_sort2": 110, "nsimplifi": 110, "qf_ufdtlia": 110, "singular": 110, "parlist": 110, "parhead": 110, "partail": 110, "parlistint": 110, "ahead": 110, "mechan": [111, 131, 139], "world": 111, "execpt": 112, "invalidterm": 112, "legaci": 112, "sy": [112, 125, 126, 132], "em": 112, "example_except": 112, "clark": [113, 138], "barrett": [113, 138], "ext_31_1": 113, "x_31_1": 113, "ext_30_0": 113, "x_30_0": 113, "ext_31_31": 113, "x_31_31": 113, "ext_0_0": 113, "x_0_0": 113, "di": 113, "eq2": [113, 115, 127], "01234567": 113, "visual": [113, 130, 135, 137], "1234567": 113, "0123456": 113, "a_31_1": 113, "a_30_0": 113, "a_31_31": 113, "a_0_0": 113, "finite_field": 114, "cassert": [114, 115], "f5": 114, "aistwo": 114, "bistwo": 114, "cvc5_mk_ff_sort": 114, "cvc5_mk_ff_elem": 114, "ff_mul": 114, "ff_add": 114, "a_is_two": 114, "b_is_two": 114, "sokolov": 114, "qf_ff": [114, 144], "ff1": 114, "ff2": 114, "floating_point_arith": 115, "toi": 115, "2008": [115, 138], "fpt32": 115, "fma": 115, "restrict": [115, 131, 139, 140], "inf": [115, 131], "to_ubv": [115, 140], "fp32": 115, "cvc5_mk_fp_sort": 115, "cvc5_mk_rm": 115, "args4": 115, "fp_add": 115, "cvc5_mk_fp_nan": 115, "cvc5_mk_fp_pos_inf": 115, "eq1": [115, 127], "real_val": 115, "cvc5_mk_fp_pos_zero": 115, "cvc5_mk_fp": 115, "floatingpointarith": 115, "0b001": 115, "floating_point": 115, "anjiang": 115, "wei": 115, "succe": 115, "contribut": 115, "eva": 115, "darulova": 115, "symfpu": 115, "to_fp": 115, "veri": [116, 134], "helloworld": 116, "tutori": 116, "qf_uf": [116, 127], "firstli": 117, "secondli": 117, "tight": 117, "linear_arith": 117, "haniel": [117, 138], "barbosa": [117, 131, 138], "qf_lira": 117, "neg2": 117, "two_third": 117, "three_i": 117, "x_geq_3i": 117, "x_leq_i": 117, "neg2_lt_x": 117, "diff_leq_two_third": 117, "diff_is_two_third": 117, "cvc5_mk_real_num_den": 117, "lineararith": 117, "cvc5_parser": [118, 119], "ss": [118, 119, 125, 126, 131], "qf_lia": [118, 119], "mystream": [118, 119], "break": [118, 119, 131], "cvc5_parser_new": [118, 119], "cvc5_input_language_smt_lib_2_6": [118, 119], "cvc5_parser_get_sm": 118, "error_msg": [118, 119], "daniel": [118, 119], "larraz": [118, 119], "myinput": [118, 119], "parser_sym_manag": 119, "parser2": 119, "ss2": 119, "45": 119, "mystream2": 119, "cvc5_symbol_manager_new": 119, "parser1": 119, "ntrue": 119, "parsersymbolmanag": 119, "myinput2": 119, "input2": 119, "famili": [121, 140], "peopl": [121, 147], "male": [121, 147], "femal": [121, 147], "father": [121, 147], "mother": [121, 147], "parent": [121, 147], "ancestor": [121, 147], "descend": [121, 147], "nonempti": 121, "cap": [121, 131, 142], "bowti": 121, "subseteq": [121, 142], "cup": [121, 142], "person": [121, 147], "langl": 121, "rangl": 121, "mrtb17": [121, 138, 147], "personsort": [121, 147], "tuplearity1": [121, 147], "relationarity1": [121, 147], "tuplearity2": [121, 147], "relationarity2": [121, 147], "emptysetterm": [121, 147], "emptyrelationterm": [121, 147], "universeset": [121, 147], "isempty1": [121, 147], "isempty2": [121, 147], "peoplearetheunivers": [121, 147], "malesetisnotempti": [121, 147], "femalesetisnotempti": [121, 147], "malesfemalesintersect": [121, 147], "malesandfemalesaredisjoint": [121, 147], "isempty3": [121, 147], "isempty4": [121, 147], "fatherisnotempti": [121, 147], "motherisnotempti": [121, 147], "fathersaremal": [121, 147], "mothersarefemal": [121, 147], "unionfathermoth": [121, 147], "parentisfatherormoth": [121, 147], "tclosur": [121, 147], "transitiveclosur": [121, 147], "ancestorformula": [121, 147], "descendantformula": [121, 147], "xxtupl": [121, 147], "notmemb": [121, 147], "quantifiedvari": [121, 147], "noselfancestor": [121, 147], "person_sort": 121, "sorts1": 121, "tuple_arity1": 121, "cvc5_mk_tuple_sort": 121, "rel_arity1": 121, "sorts2": 121, "tuple_arity2": 121, "rel_arity2": 121, "empty_set": [121, 123], "cvc5_mk_empty_set": [121, 123], "empty_rel": 121, "universe_set": 121, "cvc5_mk_universe_set": 121, "is_empty1": 121, "is_empty2": 121, "people_univers": 121, "male_not_empti": 121, "female_not_empti": 121, "inter_males_femal": 121, "disjoint_males_femal": 121, "is_empty3": 121, "is_empty4": 121, "father_not_empti": 121, "mother_not_empti": 121, "fathers_are_mal": 121, "mothers_are_femal": 121, "union_father_moth": 121, "parent_is_father_or_moth": 121, "trans_closur": 121, "ancestor_formula": 121, "descendant_formula": 121, "xx_tupl": 121, "cvc5_mk_tupl": 121, "not_memb": 121, "not_self_ancestor": 121, "set_": [121, 123, 147], "tianyi": [122, 124], "liang": [122, 124], "qf_slia": [122, 124, 146], "intseq": 122, "concat_len": 122, "formula1": [122, 124], "formula2": [122, 124], "int_seq": 122, "cvc5_mk_sequence_sort": 122, "cvc5_mk_empty_sequ": 122, "smtlib2": [122, 124], "kshitij": [123, 138, 147], "bansal": [123, 138, 147], "qf_ufliaf": [123, 147], "unionab": [123, 147], "emptset": [123, 147], "me": [123, 147], "singleton_on": [123, 147], "singleton_two": [123, 147], "singleton_thre": [123, 147], "one_two": [123, 147], "two_thre": [123, 147], "union_ab": 123, "inter_ac": 123, "inter_bc": 123, "sing_on": 123, "sing_two": 123, "sing_thre": 123, "str_ab": 124, "leni": 124, "formula3": 124, "len_i": 124, "reg_star": 124, "to_r": 124, "abdalrhman": [125, 126], "start_bool": 125, "startbool": 125, "varx": 125, "vari": [125, 131], "max_x_i": 125, "min_x_i": 125, "printsynthsolut": [125, 126], "rules7": 125, "rules3": 125, "var_x": 125, "var_i": 125, "cvc5_synth_result_has_solut": [125, 126], "sol": [125, 126, 131], "print_synth_solut": [125, 126], "sygusfun": 125, "header": [125, 126], "ifndef": [125, 126], "cvc5__utils_h": [125, 126], "endif": [125, 126], "definefuntostr": [125, 126], "cvc5__c_utils_h": [125, 126], "nterm": [125, 126], "nparam": [125, 126], "print_define_fun": [125, 126], "psol": [125, 126], "malloc": [125, 126], "sizeof": [125, 126], "stringbuild": [125, 126], "getchild": [125, 126], "define_fun_to_str": [125, 126], "ten": 126, "xp": 126, "pre_f": 126, "trans_f": 126, "post_f": 126, "inv_f": 126, "el": 126, "vars1": 126, "vars2": 126, "sygusinv": 126, "utou": 127, "upr": 127, "p_f_x": 127, "un_to_un_sort": 127, "un_pred_sort": 127, "not_p_f_x": 127, "prover": 129, "successor": 129, "cvc4": 129, "local": [130, 131], "build_dir": 130, "linux": 130, "msys2": 130, "x86_64": 130, "mingw": 130, "w64": 130, "arm64": 130, "homebrew": 130, "tap": 130, "link": 130, "strongli": [130, 131], "discourag": 130, "dynam": [130, 131], "your": 130, "launch": 130, "packag": 130, "pacman": 130, "gcc": 130, "zip": 130, "repositori": [130, 133, 134, 136], "dll": 130, "posix": 130, "ubuntu": 130, "sudo": 130, "mingw32": 130, "win64": 130, "emscripten": 130, "sdk": 130, "emsdk": 130, "prefer": [130, 131], "latest": 130, "chanc": 130, "activ": [130, 131], "emsdk_env": 130, "whenev": [130, 131, 139], "go": [130, 131], "wasm": 130, "glue": 130, "web": 130, "quot": 130, "prod": 130, "server": 130, "8000": 130, "chrome": 130, "press": 130, "esc": 130, "twice": 130, "modular": [130, 138], "dep": 130, "clang": 130, "ninja": 130, "tomli": 130, "pypars": 130, "v6": 130, "pyvenv": 130, "ship": 130, "cad": 130, "nonlinear": [130, 131, 138, 150], "poli": [130, 131], "patch": 130, "gpl": 130, "gplv3": 130, "ramif": 130, "multiprecis": 130, "better": [130, 144], "footprint": 130, "permiss": 130, "speed": [130, 131], "offici": 130, "discuss": 130, "edit": 130, "tab": 130, "histori": [130, 131], "prompt": 130, "libedit": 130, "devel": 130, "flexibl": [130, 133], "simplevc": 130, "jdk": 130, "pytest": 130, "repairwheel": 130, "setuptool": 130, "66": 130, "help": [130, 131], "develop": 130, "pleas": 130, "contact": 130, "team": 130, "issu": 130, "tracker": 130, "sphinx": 130, "rtd": 130, "theme": 130, "sphinxcontrib": 130, "bibtex": 130, "programoutput": 130, "breath": 130, "gh": 130, "readm": 130, "md": 130, "ctest": 130, "infrastructur": 130, "regex": 130, "exclud": [130, 140], "label": 130, "le": [130, 144], "failur": [130, 131], "regressn": 130, "apitest": 130, "api_test": 130, "system_test": 130, "ext": [130, 131], "ourobor": 130, "unit_test": 130, "subdir": 130, "map_util_black": 130, "regress_test": 130, "regress0": [130, 132, 133, 134, 136, 141], "bug288b": 130, "preconfigur": 130, "systemtest": 130, "runexampl": 130, "coverag": 130, "gcov": 130, "commit": 130, "sha": 130, "config": [130, 131], "wget": 130, "archiv": 130, "tar": 130, "gz": 130, "xf": 130, "runtim": [131, 141], "wide": [131, 141], "letter": 131, "interv": [131, 150], "treatment": 131, "exhaust": [131, 139], "lang_auto": 131, "inst": 131, "gterm": 131, "benchmark": 131, "lit": 131, "deep": 131, "restart": [131, 139], "portfolio": 131, "db": 131, "summari": [131, 132], "techniqu": [131, 132, 150], "receiv": 131, "candid": [131, 132], "along": [131, 132, 140], "successfulli": [131, 132], "diagnost": [131, 132], "entir": [131, 132], "quiet": 131, "decreas": 131, "rlimit": [131, 139], "reproduc": 131, "tlimit": 131, "millisecond": [131, 139], "wall": 131, "clock": 131, "shell": 131, "seed": 131, "random": 131, "attempt": 131, "toler": 131, "conform": 131, "subexpr": 131, "don": 131, "depth": 131, "granular": [131, 134, 136], "improv": 131, "condens": 131, "hole": [131, 133], "approx": 131, "200": [131, 132], "brab": 131, "cube": 131, "prop": 131, "unat": 131, "bi": 131, "decid": [131, 145], "tableau": 131, "row": 131, "shorter": 131, "cut": 131, "dio": 131, "decomp": 131, "leak": 131, "diophantin": 131, "griggio": [131, 138], "jsat": 131, "2012": 131, "varord": 131, "simplex": 131, "violat": 131, "fc": 131, "penalti": 131, "degener": 131, "unset": 131, "tune": 131, "maxcutsincontext": 131, "65535": 131, "miplib": 131, "trick": 131, "tmp": 131, "nl": [131, 132], "cov": [131, 132], "cylindr": 131, "lazard": 131, "scheme": 131, "discard": 131, "proj": [131, 143], "mccallum": 131, "prune": 131, "aggress": 131, "light": 131, "approach": 131, "weight": [131, 139], "ent": 131, "inc": 131, "irrat": 131, "purifi": [131, 140], "rbound": 131, "tf": 131, "deg": 131, "interleav": 131, "icp": 131, "rlv": [131, 132], "threshold": 131, "pp": 131, "ppassert": 131, "earli": 131, "eagerli": 131, "reject": 131, "25500": 131, "coeffici": 131, "effort": [131, 132], "fulleffort": 131, "revert": 131, "known": 131, "cach": 131, "rr": 131, "robin": 131, "se": 131, "recheck": 131, "soi": 131, "quick": [131, 133, 134, 136], "explain": [131, 147], "minim": 131, "infeas": 131, "invoc": 131, "bland": 131, "ineq": 131, "relationship": 131, "fcsimplex": 131, "focus": 131, "converg": 131, "fmcad": 131, "2013": [131, 138], "submiss": 131, "moura": [131, 138], "09": 131, "care": 131, "graph": [131, 135], "christ": 131, "hoenick": 131, "2014": 131, "channel": 131, "managederr": 131, "stderr": 131, "managedin": 131, "stdin": 131, "managedout": 131, "rweight": [131, 139], "trace": 131, "someth": 131, "pushpop": 131, "wildcard": 131, "lazi": 131, "booltobv": 131, "ITEs": 131, "gauss": 131, "gaussian": 131, "blaster": [131, 140], "rw": 131, "2017": [131, 138], "scholl": 131, "smt08": 131, "minisat": 131, "cryptominisat": 131, "cadic": 131, "kissat": 131, "backend": 131, "cdt": 131, "bisimilar": 131, "cyclic": 131, "send": 131, "polit": 131, "across": [131, 141], "abort": 131, "tell": 131, "fair": 131, "height": 131, "instant": [131, 132], "agg": 131, "smart": 131, "lazili": 131, "pbe": 131, "stoponli": [131, 132], "atgp": 131, "inspir": 131, "stop": 131, "jh": 131, "pend": 131, "do_semantic_checks_by_default": 131, "wf": 131, "groebner": [131, 144], "basi": 131, "gb": 131, "wb": 131, "lazier": 131, "prenotifyfact": 131, "registerterm": 131, "dump": [131, 132, 133, 134, 136], "measur": [131, 139], "cpu": 131, "job": 131, "segv": 131, "spin": 131, "segfault": 131, "wait": 131, "gdb": 131, "emit": 131, "chosen": 131, "request": 131, "scatter": 131, "c2": [131, 145], "c3": 131, "60": 131, "climit": 131, "partitionwhen": 131, "exceed": 131, "filesystem": 131, "lenient": 131, "Be": 131, "b0001": 131, "ho": 131, "token": 131, "lex": 131, "array_diff_n": 131, "sound": 131, "reconstruct": [131, 133, 138], "cluster": 131, "preambl": 131, "subtyp": 131, "mix": [131, 134, 149], "pedant": 131, "incorrect": 131, "untrust": 131, "processor": 131, "redeclar": 131, "rcon": 131, "1000": 131, "calus": 131, "preregist": 131, "regist": 131, "freq": 131, "cdcl": 131, "cbqi": [131, 132], "qcf": 131, "rd": 131, "irrelev": 131, "portion": [131, 148], "tconstraint": 131, "vo": 131, "cegi": 131, "sampl": 131, "acceler": 131, "inde": 131, "spuriou": 131, "cegqi": 131, "slack": 131, "boundari": 131, "becom": 131, "adder": 131, "resort": 131, "vt": 131, "innermost": 131, "midpoint": 131, "constrain": [131, 140], "nopt": 131, "quant": [131, 132], "ground": [131, 140], "stc": 131, "ind": 131, "strengthen": 131, "quantif": [131, 132], "tautolog": 131, "stratifi": 131, "favor": 131, "fmf": 131, "proxi": 131, "admiss": 131, "mbqi": 131, "fmc": 131, "thesi": 131, "satur": 131, "due": [131, 139, 140], "ax": 131, "ieval": 131, "delai": 131, "dtt": 131, "ites": 131, "smaller": [131, 146], "conserv": 131, "likewis": 131, "fast": [131, 132], "augment": 131, "dsplit": [131, 132], "wd": 131, "rep": 131, "ee": 131, "analysi": [131, 138], "subsolv": 131, "crepair": 131, "repair": 131, "agnost": 131, "geometr": 131, "miner": 131, "stronger": 131, "weaker": 131, "backward": 131, "concis": 131, "symobl": 131, "disj": 131, "insid": 131, "templ": 131, "precondit": 131, "postcondit": 131, "sg": 131, "minimi": 131, "preproc": 131, "fuzz": [131, 133, 134, 136], "unsolv": 131, "hard": [131, 132], "avoid": 131, "accel": 131, "uniform": 131, "uniformli": 131, "fashion": 131, "si": [131, 148], "10000": 131, "unlimit": 131, "igain": 131, "piecewis": 131, "indeped": 131, "unconstrain": [131, 140], "gain": 131, "shuffl": 131, "verif": [131, 138], "databas": 131, "pat": 131, "ignor": [131, 146], "unbound": 131, "sep": [131, 145], "refin": [131, 150], "shorten": 131, "mayb": 131, "expens": 131, "averag": 131, "rew": 131, "prep": 131, "foreign": 131, "simp": 131, "kim": 131, "somenzi": 131, "suffici": 131, "unev": 131, "unevaluat": 131, "regardless": 131, "track": [131, 140], "unless": 131, "sove": 131, "nonclaus": 131, "compress": 131, "simplifywithcar": 131, "simplifici": 131, "batch": 131, "save": [131, 135], "clausal": 131, "bcp": 131, "4294967295": 131, "pure": 131, "bitwidth": 131, "monoton": 131, "bruttomesso": 131, "brummay": 131, "phd": 131, "prepocess": 131, "196608": 131, "alphabet": 131, "reg": 131, "registr": 131, "preregistr": 131, "flat": 131, "mbr": 131, "2147483647": 131, "65536": 131, "posc": 131, "rexplain": 131, "regress": [131, 132, 133, 134, 136, 141], "central": [131, 139], "inprocess": 131, "tc": [131, 132], "theoryof": 131, "conv": 131, "breaker": [131, 132], "deharb": 131, "cade": [131, 138], "2011": [131, 138], "ll": 131, "shrink": 131, "cli": [132, 133, 134, 136, 141], "regress1": 132, "qid": 132, "myquant1": 132, "myquant2": 132, "regress2": 132, "javaf": 132, "checkcompilationunit": 132, "001": 132, "00025": 132, "002043": 132, "003898": 132, "002989": 132, "ematch": 132, "119": 132, "015116": 132, "002756": 132, "006344": 132, "006073": 132, "006023": 132, "78": 132, "013969": 132, "003648": 132, "000111": 132, "003596": 132, "a_int": 132, "a_bool": 132, "role": 132, "single_solut": 132, "cvc": [132, 136], "nat": 132, "succ": 132, "pred": 132, "print_sub": 132, "print_sat_lemma": 132, "quantifiers_inst_cbqi_conflict": 132, "print_trusted_proof_step": 132, "theory_arith": 132, "p1": [132, 134, 136], "p2": [132, 134, 136], "p3": [132, 134, 136], "print_timeout_cor": 132, "564838384999": 132, "print_unsat_cor": 132, "x20": 132, "print_unsat_core_lemma": 132, "arith_un": 132, "timestamp": 132, "025": 132, "block_model_out": 132, "print_options_auto": 132, "coars": 133, "verit": [133, 138], "bdodeharbef09": [133, 138], "isabel": 133, "hol": 133, "bbff20": [133, 138], "sfd21": [133, 138], "coq": [133, 138], "smtcoq": [133, 138], "afgregoir": [133, 138], "emt": [133, 138], "rust": 133, "carcara": 133, "script": [133, 134, 136], "qgu": [133, 134, 136], "a0": [133, 136], "p_7": 133, "p_6": 133, "p_4": 133, "p_5": 133, "p_2": 133, "p_3": 133, "p_8": 133, "t0": 133, "cl": 133, "p_19": 133, "equiv1": 133, "t3": [133, 134, 136], "p_11": 133, "p_10": 133, "equiv_pos2": 133, "t4": 133, "t5": 133, "p_9": 133, "p_12": 133, "t6": 133, "p_13": 133, "p_18": 133, "t7": 133, "p_14": 133, "t8": 133, "t9": 133, "t10": 133, "p_15": 133, "t11": 133, "p_16": 133, "t12": 133, "p_17": 133, "t13": 133, "t14": 133, "t15": 133, "t16": 133, "t17": 133, "t18": 133, "t19": 133, "t20": 133, "t21": 133, "t22": 133, "t23": 133, "or_neg": 133, "t24": 133, "t25": 133, "t26": 133, "contract": 133, "t27": 133, "faithfulli": [134, 137], "As": [134, 139, 144], "disclaim": 134, "etho": 134, "framework": [134, 136, 138], "p4": 134, "p5": 134, "p6": 134, "p7": 134, "p8": 134, "p9": 134, "p10": 134, "p11": 134, "p12": 134, "p13": 134, "p14": 134, "p15": 134, "p16": 134, "p17": 134, "p18": 134, "p19": 134, "p20": 134, "p21": 134, "p22": 134, "p23": 134, "leverag": 135, "dedic": 135, "suffic": 135, "upload": 135, "color": [135, 143], "stepwis": 135, "lf": 136, "sor": [136, 138], "often": 136, "plet": 136, "f_and": 136, "f_not": 136, "tt": [136, 138], "reflect": [137, 139], "meant": 137, "micha": 138, "\u00eb": 138, "armand": 138, "germain": 138, "faur": 138, "benjamin": 138, "gr": 138, "\u00e9": 138, "goir": 138, "chantal": 138, "keller": 138, "laurent": 138, "ry": 138, "werner": 138, "slash": 138, "jean": 138, "pierr": 138, "jouannaud": 138, "zhong": 138, "shao": 138, "editor": 138, "certifi": 138, "volum": 138, "7086": 138, "lectur": 138, "scienc": 138, "135": 138, "150": 138, "springer": 138, "1007": 138, "978": 138, "642": 138, "25379": 138, "9_12": 138, "bbrt17": [138, 147], "cesar": 138, "tinelli": 138, "procedur": [138, 143, 145, 150], "corr": 138, "arxiv": 138, "1702": 138, "06259": 138, "jasmin": 138, "christian": 138, "blanchett": 138, "fleuri": 138, "pascal": 138, "fontain": 138, "scalabl": 138, "journal": 138, "autom": 138, "485": 138, "510": 138, "2020": 138, "url": 138, "s10817": 138, "018": 138, "09502": 138, "bft17": [138, 145], "technic": 138, "depart": 138, "iowa": 138, "www": 138, "bst07": [138, 143], "igor": 138, "shikanian": 138, "satisf": 138, "21": 138, "46": 138, "2007": 138, "3233": 138, "sat190028": 138, "thoma": 138, "bouton": 138, "diego": 138, "caminha": 138, "oliveira": 138, "david": 138, "harb": 138, "pen": 138, "rustabl": 138, "fficient": 138, "olver": 138, "renat": 138, "schmidt": 138, "confer": 138, "deduct": 138, "5663": 138, "151": 138, "156": 138, "dx": 138, "02959": 138, "2_12": 138, "cgi": [138, 150], "alessandro": 138, "cimatti": 138, "alberto": 138, "ahm": 138, "irfan": 138, "marco": 138, "roveri": 138, "roberto": 138, "sebastiani": 138, "acm": 138, "52": [138, 145], "2018": [138, 140], "1145": 138, "3230639": 138, "burak": 138, "ekici": 138, "alain": 138, "mebsout": 138, "gui": 138, "katz": 138, "plug": 138, "rupak": 138, "majumdar": 138, "viktor": 138, "kuncak": 138, "aid": 138, "10427": 138, "126": 138, "133": 138, "319": 138, "63390": 138, "9_7": 138, "84": 138, "baoluo": 138, "meng": 138, "leonardo": 138, "26": 138, "26th": 138, "gothenburg": 138, "sweden": 138, "august": 138, "10395": 138, "148": 138, "165": 138, "63046": 138, "5_10": 138, "oktb23": [138, 144], "constantin": 138, "enea": 138, "akash": 138, "lal": 138, "13965": 138, "163": 138, "186": 138, "2023": 138, "031": 138, "37703": 138, "7_8": 138, "opb": [138, 144], "shankara": 138, "pailoor": 138, "alp": 138, "bassa": 138, "kosta": 138, "ferl": 138, "i\u015f\u0131l": 138, "dillig": 138, "gr\u00f6bner": 138, "ia": 138, "cr": 138, "572": 138, "rb15": [138, 143], "ami": 138, "felti": 138, "aart": 138, "middeldorp": 138, "25th": 138, "berlin": 138, "germani": 138, "2015": 138, "9195": 138, "197": 138, "213": 138, "21401": 138, "6_13": 138, "risk16": [138, 145], "radu": 138, "iosif": 138, "cristina": 138, "serban": 138, "cyril": 138, "artho": 138, "axel": 138, "legai": 138, "doron": 138, "pele": 138, "technologi": 138, "14th": 138, "symposium": 138, "atva": 138, "2016": 138, "chiba": 138, "japan": 138, "octob": 138, "9938": 138, "244": 138, "261": 138, "46520": 138, "3_16": 138, "han": 138, "\u00f6": 138, "rg": 138, "schurr": 138, "martin": 138, "desharnai": 138, "reliabl": 138, "assist": 138, "platzer": 138, "geoff": 138, "sutcliff": 138, "12699": 138, "450": 138, "467": 138, "2021": 138, "030": 138, "79876": 138, "5_26": 138, "aaron": 138, "stump": 138, "duckki": 138, "oe": 138, "syst": 138, "91": 138, "118": 138, "s10703": 138, "012": 138, "0163": 138, "amount": 139, "honor": 139, "subroutin": 139, "realiz": 139, "afterward": 139, "asynchron": 139, "setitim": 139, "ulimit": 139, "inher": 139, "unsuit": 139, "standalon": 139, "effect": 139, "soon": 139, "intent": 139, "spent": 139, "event": 139, "restartstep": 139, "export": [140, 141], "intuit": [140, 147], "fact": 140, "k2": 140, "apart": 140, "div_by_zero": 140, "ground_term": 140, "bv_empti": 140, "int_div_by_zero": 140, "mod_by_zero": 140, "transcendental_purifi": 140, "trancendent": 140, "arcco": [140, 150], "app": 140, "arith_vts_delta": 140, "infinitesim": 140, "arith_vts_delta_fre": 140, "unlik": 140, "arith_vts_infin": 140, "arith_vts_infinity_fre": 140, "shared_selector": 140, "ijcar": 140, "subfield": 140, "ho_deq_diff": 140, "roder": 140, "k1": 140, "kn": 140, "referenc": 140, "strings_num_occur": 140, "replace_al": [140, 146], "strings_occur_index": 140, "strings_num_occur_r": 140, "replace_all_r": 140, "strings_occur_index_r": 140, "strings_occur_len_r": 140, "strings_replace_all_result": 140, "intermedi": 140, "replace_re_al": 140, "strings_itos_result": 140, "from_int": 140, "strings_stoi_result": 140, "strings_stoi_non_digit": 140, "re_first_match_pr": 140, "decompos": 140, "shortest": [140, 148], "k_pre": 140, "k_match": 140, "k_post": 140, "indexof_r": [140, 148], "re_first_match": 140, "re_first_match_post": 140, "re_unfold_pos_compon": 140, "r0": 140, "rn": 140, "ki": 140, "k0": 140, "bags_card_combin": 140, "bags_distinct_el": 140, "bags_distinct_elements_union_disjoint": 140, "bags_fold_card": 140, "bags_fold_combin": 140, "accumul": 140, "intermidi": 140, "bags_fold_el": 140, "bags_fold_union_disjoint": 140, "bags_choos": 140, "chose": 140, "bags_distinct_elements_s": 140, "bags_map_preimage_inject": 140, "preimag": 140, "bags_map_index": 140, "bags_map_sum": 140, "bags_deq_diff": 140, "tables_group_part": 140, "nk": [140, 143], "tables_group_part_el": 140, "relations_group_part": 140, "relations_group_part_el": 140, "sets_choos": 140, "sets_fold_card": 140, "sets_fold_combin": 140, "sets_fold_el": 140, "sets_fold_union_disjoint": 140, "sets_fold_union": 140, "unionfn": 140, "sets_map_down_el": 140, "fp_min_zero": 140, "fp_max_zero": 140, "fp_to_ubv": 140, "ouf": 140, "operand": 140, "fp_to_sbv": 140, "to_sbv": 140, "fp_to_real": 140, "bv_to_int_uf": 140, "varieti": 141, "insight": 141, "enable_statist": 141, "competit": 141, "dealloc": 141, "stabl": 141, "minor": 141, "timer": 141, "look": 141, "auflia": 141, "bug336": 141, "totaltim": 141, "3m": 141, "inferenceslemma": 141, "arith_split_deq": 141, "inferencesfact": 141, "combination_split": 141, "unknown_type_const": 141, "overal": 141, "difference_subtract": 142, "uplu": [142, 145], "m_2": 142, "difference_remov": 142, "delta": 142, "qf_dt": 143, "d1": 143, "dk": 143, "s11": 143, "s1i": 143, "cj": 143, "sij": 143, "red": 143, "fname": 143, "lname": 143, "john": 143, "smith": 143, "sugar": [143, 147], "coinduct": 143, "ci": 143, "term_1": [143, 147], "term_n": [143, 147], "upd": 143, "sort_1": [143, 145, 147], "sort_n": [143, 147], "s_int": [143, 147], "unittupl": [143, 147], "i1": 143, "snd": 143, "getselectorterm": 143, "Such": 144, "isomorph": 144, "bmod": 144, "qx": 144, "nb": 144, "ffn": 144, "ff3": 144, "ffsort": 144, "ff0": 144, "x0": 144, "x1": 144, "x_0": 144, "2x_1": 144, "4x_2": 144, "sl": 145, "pto": 145, "f2": 145, "classic": 145, "models_": 145, "phi_1": 145, "phi_n": 145, "h_1": 145, "h_n": 145, "h_i": 145, "phi_i": 145, "phi_2": 145, "summar": 145, "sort_2": 145, "is_empti": 147, "is_singleton": 147, "sgl": 147, "subtl": 147, "motiv": 147, "presenc": 147, "w\u2082": 148, "u\u2081": 148, "w\u2081": 148, "u\u2081w\u2081u\u2082": 148, "u\u2081u\u2082u\u2083": 148, "u\u2081w\u2083u\u2083": 148, "w\u2083": 148, "u\u2082": 148, "u\u2082u\u2084": 148, "cba": 148, "to_low": 148, "ri": 148, "65": 148, "90": 148, "ascii": 148, "to_upp": 148, "122": 148, "beyond": 149, "nra": 150, "nira": 150, "tan": 150, "qf_nrat": 150, "csc": 150, "sec": 150, "cot": 150, "arctan": 150, "arccsc": 150, "arccot": 150, "subject": 150, "said": 150, "inexact": 150, "demand": 150, "twopi": 150, "ysq": 150, "sinx": 150, "x_gt_pi": 150, "x_lt_pi": 150, "ysq_lt_sinx": 150, "x_lt_tpi": 150}, "objects": {"": [[7, 0, 1, "_CPPv4N19Cvc5BlockModelsMode27CVC5_BLOCK_MODELS_MODE_LASTE", "CVC5_BLOCK_MODELS_MODE_LAST"], [7, 0, 1, "_CPPv4N19Cvc5BlockModelsMode31CVC5_BLOCK_MODELS_MODE_LITERALSE", "CVC5_BLOCK_MODELS_MODE_LITERALS"], [7, 0, 1, "_CPPv4N19Cvc5BlockModelsMode29CVC5_BLOCK_MODELS_MODE_VALUESE", "CVC5_BLOCK_MODELS_MODE_VALUES"], [7, 0, 1, "_CPPv4N19Cvc5FindSynthTarget27CVC5_FIND_SYNTH_TARGET_ENUME", "CVC5_FIND_SYNTH_TARGET_ENUM"], [7, 0, 1, "_CPPv4N19Cvc5FindSynthTarget27CVC5_FIND_SYNTH_TARGET_LASTE", "CVC5_FIND_SYNTH_TARGET_LAST"], [7, 0, 1, "_CPPv4N19Cvc5FindSynthTarget28CVC5_FIND_SYNTH_TARGET_QUERYE", "CVC5_FIND_SYNTH_TARGET_QUERY"], [7, 0, 1, "_CPPv4N19Cvc5FindSynthTarget30CVC5_FIND_SYNTH_TARGET_REWRITEE", "CVC5_FIND_SYNTH_TARGET_REWRITE"], [7, 0, 1, "_CPPv4N19Cvc5FindSynthTarget36CVC5_FIND_SYNTH_TARGET_REWRITE_INPUTE", "CVC5_FIND_SYNTH_TARGET_REWRITE_INPUT"], [7, 0, 1, "_CPPv4N19Cvc5FindSynthTarget38CVC5_FIND_SYNTH_TARGET_REWRITE_UNSOUNDE", "CVC5_FIND_SYNTH_TARGET_REWRITE_UNSOUND"], [2, 0, 1, "_CPPv4N8Cvc5Kind13CVC5_KIND_ABSE", "CVC5_KIND_ABS"], [2, 0, 1, "_CPPv4N8Cvc5Kind13CVC5_KIND_ADDE", "CVC5_KIND_ADD"], [2, 0, 1, "_CPPv4N8Cvc5Kind13CVC5_KIND_ANDE", "CVC5_KIND_AND"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_APPLY_CONSTRUCTORE", "CVC5_KIND_APPLY_CONSTRUCTOR"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_APPLY_SELECTORE", "CVC5_KIND_APPLY_SELECTOR"], [2, 0, 1, "_CPPv4N8Cvc5Kind22CVC5_KIND_APPLY_TESTERE", "CVC5_KIND_APPLY_TESTER"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_APPLY_UFE", "CVC5_KIND_APPLY_UF"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_APPLY_UPDATERE", "CVC5_KIND_APPLY_UPDATER"], [2, 0, 1, "_CPPv4N8Cvc5Kind21CVC5_KIND_ARCCOSECANTE", "CVC5_KIND_ARCCOSECANT"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_ARCCOSINEE", "CVC5_KIND_ARCCOSINE"], [2, 0, 1, "_CPPv4N8Cvc5Kind22CVC5_KIND_ARCCOTANGENTE", "CVC5_KIND_ARCCOTANGENT"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_ARCSECANTE", "CVC5_KIND_ARCSECANT"], [2, 0, 1, "_CPPv4N8Cvc5Kind17CVC5_KIND_ARCSINEE", "CVC5_KIND_ARCSINE"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_ARCTANGENTE", "CVC5_KIND_ARCTANGENT"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_BAG_CARDE", "CVC5_KIND_BAG_CARD"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_BAG_CHOOSEE", "CVC5_KIND_BAG_CHOOSE"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_BAG_COUNTE", "CVC5_KIND_BAG_COUNT"], [2, 0, 1, "_CPPv4N8Cvc5Kind31CVC5_KIND_BAG_DIFFERENCE_REMOVEE", "CVC5_KIND_BAG_DIFFERENCE_REMOVE"], [2, 0, 1, "_CPPv4N8Cvc5Kind33CVC5_KIND_BAG_DIFFERENCE_SUBTRACTE", "CVC5_KIND_BAG_DIFFERENCE_SUBTRACT"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_BAG_EMPTYE", "CVC5_KIND_BAG_EMPTY"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_BAG_FILTERE", "CVC5_KIND_BAG_FILTER"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_BAG_FOLDE", "CVC5_KIND_BAG_FOLD"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BAG_INTER_MINE", "CVC5_KIND_BAG_INTER_MIN"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_BAG_MAKEE", "CVC5_KIND_BAG_MAKE"], [2, 0, 1, "_CPPv4N8Cvc5Kind17CVC5_KIND_BAG_MAPE", "CVC5_KIND_BAG_MAP"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_BAG_MEMBERE", "CVC5_KIND_BAG_MEMBER"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BAG_PARTITIONE", "CVC5_KIND_BAG_PARTITION"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_BAG_SETOFE", "CVC5_KIND_BAG_SETOF"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_BAG_SUBBAGE", "CVC5_KIND_BAG_SUBBAG"], [2, 0, 1, "_CPPv4N8Cvc5Kind28CVC5_KIND_BAG_UNION_DISJOINTE", "CVC5_KIND_BAG_UNION_DISJOINT"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BAG_UNION_MAXE", "CVC5_KIND_BAG_UNION_MAX"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_ADDE", "CVC5_KIND_BITVECTOR_ADD"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_ANDE", "CVC5_KIND_BITVECTOR_AND"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_ASHRE", "CVC5_KIND_BITVECTOR_ASHR"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_BITE", "CVC5_KIND_BITVECTOR_BIT"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_COMPE", "CVC5_KIND_BITVECTOR_COMP"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_BITVECTOR_CONCATE", "CVC5_KIND_BITVECTOR_CONCAT"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_BITVECTOR_EXTRACTE", "CVC5_KIND_BITVECTOR_EXTRACT"], [2, 0, 1, "_CPPv4N8Cvc5Kind30CVC5_KIND_BITVECTOR_FROM_BOOLSE", "CVC5_KIND_BITVECTOR_FROM_BOOLS"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_ITEE", "CVC5_KIND_BITVECTOR_ITE"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_LSHRE", "CVC5_KIND_BITVECTOR_LSHR"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_MULTE", "CVC5_KIND_BITVECTOR_MULT"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_NANDE", "CVC5_KIND_BITVECTOR_NAND"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_NEGE", "CVC5_KIND_BITVECTOR_NEG"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_NEGOE", "CVC5_KIND_BITVECTOR_NEGO"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_NORE", "CVC5_KIND_BITVECTOR_NOR"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_NOTE", "CVC5_KIND_BITVECTOR_NOT"], [2, 0, 1, "_CPPv4N8Cvc5Kind22CVC5_KIND_BITVECTOR_ORE", "CVC5_KIND_BITVECTOR_OR"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_BITVECTOR_REDANDE", "CVC5_KIND_BITVECTOR_REDAND"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_REDORE", "CVC5_KIND_BITVECTOR_REDOR"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_BITVECTOR_REPEATE", "CVC5_KIND_BITVECTOR_REPEAT"], [2, 0, 1, "_CPPv4N8Cvc5Kind31CVC5_KIND_BITVECTOR_ROTATE_LEFTE", "CVC5_KIND_BITVECTOR_ROTATE_LEFT"], [2, 0, 1, "_CPPv4N8Cvc5Kind32CVC5_KIND_BITVECTOR_ROTATE_RIGHTE", "CVC5_KIND_BITVECTOR_ROTATE_RIGHT"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_SADDOE", "CVC5_KIND_BITVECTOR_SADDO"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_SDIVE", "CVC5_KIND_BITVECTOR_SDIV"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_SDIVOE", "CVC5_KIND_BITVECTOR_SDIVO"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_SGEE", "CVC5_KIND_BITVECTOR_SGE"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_SGTE", "CVC5_KIND_BITVECTOR_SGT"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_SHLE", "CVC5_KIND_BITVECTOR_SHL"], [2, 0, 1, "_CPPv4N8Cvc5Kind31CVC5_KIND_BITVECTOR_SIGN_EXTENDE", "CVC5_KIND_BITVECTOR_SIGN_EXTEND"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_SLEE", "CVC5_KIND_BITVECTOR_SLE"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_SLTE", "CVC5_KIND_BITVECTOR_SLT"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_SLTBVE", "CVC5_KIND_BITVECTOR_SLTBV"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_SMODE", "CVC5_KIND_BITVECTOR_SMOD"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_SMULOE", "CVC5_KIND_BITVECTOR_SMULO"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_SREME", "CVC5_KIND_BITVECTOR_SREM"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_SSUBOE", "CVC5_KIND_BITVECTOR_SSUBO"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_SUBE", "CVC5_KIND_BITVECTOR_SUB"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_BITVECTOR_TO_NATE", "CVC5_KIND_BITVECTOR_TO_NAT"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_UADDOE", "CVC5_KIND_BITVECTOR_UADDO"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_UDIVE", "CVC5_KIND_BITVECTOR_UDIV"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_UGEE", "CVC5_KIND_BITVECTOR_UGE"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_UGTE", "CVC5_KIND_BITVECTOR_UGT"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_ULEE", "CVC5_KIND_BITVECTOR_ULE"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_ULTE", "CVC5_KIND_BITVECTOR_ULT"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_ULTBVE", "CVC5_KIND_BITVECTOR_ULTBV"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_UMULOE", "CVC5_KIND_BITVECTOR_UMULO"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_UREME", "CVC5_KIND_BITVECTOR_UREM"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_USUBOE", "CVC5_KIND_BITVECTOR_USUBO"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_XNORE", "CVC5_KIND_BITVECTOR_XNOR"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_XORE", "CVC5_KIND_BITVECTOR_XOR"], [2, 0, 1, "_CPPv4N8Cvc5Kind31CVC5_KIND_BITVECTOR_ZERO_EXTENDE", "CVC5_KIND_BITVECTOR_ZERO_EXTEND"], [2, 0, 1, "_CPPv4N8Cvc5Kind32CVC5_KIND_CARDINALITY_CONSTRAINTE", "CVC5_KIND_CARDINALITY_CONSTRAINT"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_CONSTANTE", "CVC5_KIND_CONSTANT"], [2, 0, 1, "_CPPv4N8Cvc5Kind21CVC5_KIND_CONST_ARRAYE", "CVC5_KIND_CONST_ARRAY"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_CONST_BITVECTORE", "CVC5_KIND_CONST_BITVECTOR"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_CONST_BOOLEANE", "CVC5_KIND_CONST_BOOLEAN"], [2, 0, 1, "_CPPv4N8Cvc5Kind28CVC5_KIND_CONST_FINITE_FIELDE", "CVC5_KIND_CONST_FINITE_FIELD"], [2, 0, 1, "_CPPv4N8Cvc5Kind29CVC5_KIND_CONST_FLOATINGPOINTE", "CVC5_KIND_CONST_FLOATINGPOINT"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_CONST_INTEGERE", "CVC5_KIND_CONST_INTEGER"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_CONST_RATIONALE", "CVC5_KIND_CONST_RATIONAL"], [2, 0, 1, "_CPPv4N8Cvc5Kind28CVC5_KIND_CONST_ROUNDINGMODEE", "CVC5_KIND_CONST_ROUNDINGMODE"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_CONST_SEQUENCEE", "CVC5_KIND_CONST_SEQUENCE"], [2, 0, 1, "_CPPv4N8Cvc5Kind22CVC5_KIND_CONST_STRINGE", "CVC5_KIND_CONST_STRING"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_COSECANTE", "CVC5_KIND_COSECANT"], [2, 0, 1, "_CPPv4N8Cvc5Kind16CVC5_KIND_COSINEE", "CVC5_KIND_COSINE"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_COTANGENTE", "CVC5_KIND_COTANGENT"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_DISTINCTE", "CVC5_KIND_DISTINCT"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_DIVISIBLEE", "CVC5_KIND_DIVISIBLE"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_DIVISIONE", "CVC5_KIND_DIVISION"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_DIVISION_TOTALE", "CVC5_KIND_DIVISION_TOTAL"], [2, 0, 1, "_CPPv4N8Cvc5Kind15CVC5_KIND_EQUALE", "CVC5_KIND_EQUAL"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_EQ_RANGEE", "CVC5_KIND_EQ_RANGE"], [2, 0, 1, "_CPPv4N8Cvc5Kind16CVC5_KIND_EXISTSE", "CVC5_KIND_EXISTS"], [2, 0, 1, "_CPPv4N8Cvc5Kind21CVC5_KIND_EXPONENTIALE", "CVC5_KIND_EXPONENTIAL"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_FINITE_FIELD_ADDE", "CVC5_KIND_FINITE_FIELD_ADD"], [2, 0, 1, "_CPPv4N8Cvc5Kind29CVC5_KIND_FINITE_FIELD_BITSUME", "CVC5_KIND_FINITE_FIELD_BITSUM"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_FINITE_FIELD_MULTE", "CVC5_KIND_FINITE_FIELD_MULT"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_FINITE_FIELD_NEGE", "CVC5_KIND_FINITE_FIELD_NEG"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_ABSE", "CVC5_KIND_FLOATINGPOINT_ABS"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_ADDE", "CVC5_KIND_FLOATINGPOINT_ADD"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_DIVE", "CVC5_KIND_FLOATINGPOINT_DIV"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_FLOATINGPOINT_EQE", "CVC5_KIND_FLOATINGPOINT_EQ"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_FMAE", "CVC5_KIND_FLOATINGPOINT_FMA"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_FLOATINGPOINT_FPE", "CVC5_KIND_FLOATINGPOINT_FP"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_GEQE", "CVC5_KIND_FLOATINGPOINT_GEQ"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_FLOATINGPOINT_GTE", "CVC5_KIND_FLOATINGPOINT_GT"], [2, 0, 1, "_CPPv4N8Cvc5Kind30CVC5_KIND_FLOATINGPOINT_IS_INFE", "CVC5_KIND_FLOATINGPOINT_IS_INF"], [2, 0, 1, "_CPPv4N8Cvc5Kind30CVC5_KIND_FLOATINGPOINT_IS_NANE", "CVC5_KIND_FLOATINGPOINT_IS_NAN"], [2, 0, 1, "_CPPv4N8Cvc5Kind30CVC5_KIND_FLOATINGPOINT_IS_NEGE", "CVC5_KIND_FLOATINGPOINT_IS_NEG"], [2, 0, 1, "_CPPv4N8Cvc5Kind33CVC5_KIND_FLOATINGPOINT_IS_NORMALE", "CVC5_KIND_FLOATINGPOINT_IS_NORMAL"], [2, 0, 1, "_CPPv4N8Cvc5Kind30CVC5_KIND_FLOATINGPOINT_IS_POSE", "CVC5_KIND_FLOATINGPOINT_IS_POS"], [2, 0, 1, "_CPPv4N8Cvc5Kind36CVC5_KIND_FLOATINGPOINT_IS_SUBNORMALE", "CVC5_KIND_FLOATINGPOINT_IS_SUBNORMAL"], [2, 0, 1, "_CPPv4N8Cvc5Kind31CVC5_KIND_FLOATINGPOINT_IS_ZEROE", "CVC5_KIND_FLOATINGPOINT_IS_ZERO"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_LEQE", "CVC5_KIND_FLOATINGPOINT_LEQ"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_FLOATINGPOINT_LTE", "CVC5_KIND_FLOATINGPOINT_LT"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_MAXE", "CVC5_KIND_FLOATINGPOINT_MAX"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_MINE", "CVC5_KIND_FLOATINGPOINT_MIN"], [2, 0, 1, "_CPPv4N8Cvc5Kind28CVC5_KIND_FLOATINGPOINT_MULTE", "CVC5_KIND_FLOATINGPOINT_MULT"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_NEGE", "CVC5_KIND_FLOATINGPOINT_NEG"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_REME", "CVC5_KIND_FLOATINGPOINT_REM"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_RTIE", "CVC5_KIND_FLOATINGPOINT_RTI"], [2, 0, 1, "_CPPv4N8Cvc5Kind28CVC5_KIND_FLOATINGPOINT_SQRTE", "CVC5_KIND_FLOATINGPOINT_SQRT"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_SUBE", "CVC5_KIND_FLOATINGPOINT_SUB"], [2, 0, 1, "_CPPv4N8Cvc5Kind37CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_FPE", "CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_FP"], [2, 0, 1, "_CPPv4N8Cvc5Kind42CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_IEEE_BVE", "CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_IEEE_BV"], [2, 0, 1, "_CPPv4N8Cvc5Kind39CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_REALE", "CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_REAL"], [2, 0, 1, "_CPPv4N8Cvc5Kind38CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_SBVE", "CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_SBV"], [2, 0, 1, "_CPPv4N8Cvc5Kind38CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_UBVE", "CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_UBV"], [2, 0, 1, "_CPPv4N8Cvc5Kind31CVC5_KIND_FLOATINGPOINT_TO_REALE", "CVC5_KIND_FLOATINGPOINT_TO_REAL"], [2, 0, 1, "_CPPv4N8Cvc5Kind30CVC5_KIND_FLOATINGPOINT_TO_SBVE", "CVC5_KIND_FLOATINGPOINT_TO_SBV"], [2, 0, 1, "_CPPv4N8Cvc5Kind30CVC5_KIND_FLOATINGPOINT_TO_UBVE", "CVC5_KIND_FLOATINGPOINT_TO_UBV"], [2, 0, 1, "_CPPv4N8Cvc5Kind16CVC5_KIND_FORALLE", "CVC5_KIND_FORALL"], [2, 0, 1, "_CPPv4N8Cvc5Kind13CVC5_KIND_GEQE", "CVC5_KIND_GEQ"], [2, 0, 1, "_CPPv4N8Cvc5Kind12CVC5_KIND_GTE", "CVC5_KIND_GT"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_HO_APPLYE", "CVC5_KIND_HO_APPLY"], [2, 0, 1, "_CPPv4N8Cvc5Kind14CVC5_KIND_IANDE", "CVC5_KIND_IAND"], [2, 0, 1, "_CPPv4N8Cvc5Kind17CVC5_KIND_IMPLIESE", "CVC5_KIND_IMPLIES"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_INST_ADD_TO_POOLE", "CVC5_KIND_INST_ADD_TO_POOL"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_INST_ATTRIBUTEE", "CVC5_KIND_INST_ATTRIBUTE"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_INST_NO_PATTERNE", "CVC5_KIND_INST_NO_PATTERN"], [2, 0, 1, "_CPPv4N8Cvc5Kind22CVC5_KIND_INST_PATTERNE", "CVC5_KIND_INST_PATTERN"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_INST_PATTERN_LISTE", "CVC5_KIND_INST_PATTERN_LIST"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_INST_POOLE", "CVC5_KIND_INST_POOL"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_INTERNAL_KINDE", "CVC5_KIND_INTERNAL_KIND"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_INTS_DIVISIONE", "CVC5_KIND_INTS_DIVISION"], [2, 0, 1, "_CPPv4N8Cvc5Kind29CVC5_KIND_INTS_DIVISION_TOTALE", "CVC5_KIND_INTS_DIVISION_TOTAL"], [2, 0, 1, "_CPPv4N8Cvc5Kind22CVC5_KIND_INTS_MODULUSE", "CVC5_KIND_INTS_MODULUS"], [2, 0, 1, "_CPPv4N8Cvc5Kind28CVC5_KIND_INTS_MODULUS_TOTALE", "CVC5_KIND_INTS_MODULUS_TOTAL"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_INT_TO_BITVECTORE", "CVC5_KIND_INT_TO_BITVECTOR"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_IS_INTEGERE", "CVC5_KIND_IS_INTEGER"], [2, 0, 1, "_CPPv4N8Cvc5Kind13CVC5_KIND_ITEE", "CVC5_KIND_ITE"], [2, 0, 1, "_CPPv4N8Cvc5Kind16CVC5_KIND_LAMBDAE", "CVC5_KIND_LAMBDA"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_LAST_KINDE", "CVC5_KIND_LAST_KIND"], [2, 0, 1, "_CPPv4N8Cvc5Kind13CVC5_KIND_LEQE", "CVC5_KIND_LEQ"], [2, 0, 1, "_CPPv4N8Cvc5Kind12CVC5_KIND_LTE", "CVC5_KIND_LT"], [2, 0, 1, "_CPPv4N8Cvc5Kind15CVC5_KIND_MATCHE", "CVC5_KIND_MATCH"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_MATCH_BIND_CASEE", "CVC5_KIND_MATCH_BIND_CASE"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_MATCH_CASEE", "CVC5_KIND_MATCH_CASE"], [2, 0, 1, "_CPPv4N8Cvc5Kind14CVC5_KIND_MULTE", "CVC5_KIND_MULT"], [2, 0, 1, "_CPPv4N8Cvc5Kind13CVC5_KIND_NEGE", "CVC5_KIND_NEG"], [2, 0, 1, "_CPPv4N8Cvc5Kind13CVC5_KIND_NOTE", "CVC5_KIND_NOT"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_NULLABLE_LIFTE", "CVC5_KIND_NULLABLE_LIFT"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_NULL_TERME", "CVC5_KIND_NULL_TERM"], [2, 0, 1, "_CPPv4N8Cvc5Kind12CVC5_KIND_ORE", "CVC5_KIND_OR"], [2, 0, 1, "_CPPv4N8Cvc5Kind12CVC5_KIND_PIE", "CVC5_KIND_PI"], [2, 0, 1, "_CPPv4N8Cvc5Kind13CVC5_KIND_POWE", "CVC5_KIND_POW"], [2, 0, 1, "_CPPv4N8Cvc5Kind14CVC5_KIND_POW2E", "CVC5_KIND_POW2"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_REGEXP_ALLE", "CVC5_KIND_REGEXP_ALL"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_REGEXP_ALLCHARE", "CVC5_KIND_REGEXP_ALLCHAR"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_REGEXP_COMPLEMENTE", "CVC5_KIND_REGEXP_COMPLEMENT"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_REGEXP_CONCATE", "CVC5_KIND_REGEXP_CONCAT"], [2, 0, 1, "_CPPv4N8Cvc5Kind21CVC5_KIND_REGEXP_DIFFE", "CVC5_KIND_REGEXP_DIFF"], [2, 0, 1, "_CPPv4N8Cvc5Kind22CVC5_KIND_REGEXP_INTERE", "CVC5_KIND_REGEXP_INTER"], [2, 0, 1, "_CPPv4N8Cvc5Kind21CVC5_KIND_REGEXP_LOOPE", "CVC5_KIND_REGEXP_LOOP"], [2, 0, 1, "_CPPv4N8Cvc5Kind21CVC5_KIND_REGEXP_NONEE", "CVC5_KIND_REGEXP_NONE"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_REGEXP_OPTE", "CVC5_KIND_REGEXP_OPT"], [2, 0, 1, "_CPPv4N8Cvc5Kind21CVC5_KIND_REGEXP_PLUSE", "CVC5_KIND_REGEXP_PLUS"], [2, 0, 1, "_CPPv4N8Cvc5Kind22CVC5_KIND_REGEXP_RANGEE", "CVC5_KIND_REGEXP_RANGE"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_REGEXP_REPEATE", "CVC5_KIND_REGEXP_REPEAT"], [2, 0, 1, "_CPPv4N8Cvc5Kind21CVC5_KIND_REGEXP_STARE", "CVC5_KIND_REGEXP_STAR"], [2, 0, 1, "_CPPv4N8Cvc5Kind22CVC5_KIND_REGEXP_UNIONE", "CVC5_KIND_REGEXP_UNION"], [2, 0, 1, "_CPPv4N8Cvc5Kind28CVC5_KIND_RELATION_AGGREGATEE", "CVC5_KIND_RELATION_AGGREGATE"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_RELATION_GROUPE", "CVC5_KIND_RELATION_GROUP"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_RELATION_IDENE", "CVC5_KIND_RELATION_IDEN"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_RELATION_JOINE", "CVC5_KIND_RELATION_JOIN"], [2, 0, 1, "_CPPv4N8Cvc5Kind29CVC5_KIND_RELATION_JOIN_IMAGEE", "CVC5_KIND_RELATION_JOIN_IMAGE"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_RELATION_PRODUCTE", "CVC5_KIND_RELATION_PRODUCT"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_RELATION_PROJECTE", "CVC5_KIND_RELATION_PROJECT"], [2, 0, 1, "_CPPv4N8Cvc5Kind29CVC5_KIND_RELATION_TABLE_JOINE", "CVC5_KIND_RELATION_TABLE_JOIN"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_RELATION_TCLOSUREE", "CVC5_KIND_RELATION_TCLOSURE"], [2, 0, 1, "_CPPv4N8Cvc5Kind28CVC5_KIND_RELATION_TRANSPOSEE", "CVC5_KIND_RELATION_TRANSPOSE"], [2, 0, 1, "_CPPv4N8Cvc5Kind16CVC5_KIND_SECANTE", "CVC5_KIND_SECANT"], [2, 0, 1, "_CPPv4N8Cvc5Kind16CVC5_KIND_SELECTE", "CVC5_KIND_SELECT"], [2, 0, 1, "_CPPv4N8Cvc5Kind17CVC5_KIND_SEP_EMPE", "CVC5_KIND_SEP_EMP"], [2, 0, 1, "_CPPv4N8Cvc5Kind17CVC5_KIND_SEP_NILE", "CVC5_KIND_SEP_NIL"], [2, 0, 1, "_CPPv4N8Cvc5Kind17CVC5_KIND_SEP_PTOE", "CVC5_KIND_SEP_PTO"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_SEP_STARE", "CVC5_KIND_SEP_STAR"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_SEP_WANDE", "CVC5_KIND_SEP_WAND"], [2, 0, 1, "_CPPv4N8Cvc5Kind16CVC5_KIND_SEQ_ATE", "CVC5_KIND_SEQ_AT"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_SEQ_CONCATE", "CVC5_KIND_SEQ_CONCAT"], [2, 0, 1, "_CPPv4N8Cvc5Kind22CVC5_KIND_SEQ_CONTAINSE", "CVC5_KIND_SEQ_CONTAINS"], [2, 0, 1, "_CPPv4N8Cvc5Kind21CVC5_KIND_SEQ_EXTRACTE", "CVC5_KIND_SEQ_EXTRACT"], [2, 0, 1, "_CPPv4N8Cvc5Kind21CVC5_KIND_SEQ_INDEXOFE", "CVC5_KIND_SEQ_INDEXOF"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_SEQ_LENGTHE", "CVC5_KIND_SEQ_LENGTH"], [2, 0, 1, "_CPPv4N8Cvc5Kind17CVC5_KIND_SEQ_NTHE", "CVC5_KIND_SEQ_NTH"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_SEQ_PREFIXE", "CVC5_KIND_SEQ_PREFIX"], [2, 0, 1, "_CPPv4N8Cvc5Kind21CVC5_KIND_SEQ_REPLACEE", "CVC5_KIND_SEQ_REPLACE"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_SEQ_REPLACE_ALLE", "CVC5_KIND_SEQ_REPLACE_ALL"], [2, 0, 1, "_CPPv4N8Cvc5Kind17CVC5_KIND_SEQ_REVE", "CVC5_KIND_SEQ_REV"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_SEQ_SUFFIXE", "CVC5_KIND_SEQ_SUFFIX"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_SEQ_UNITE", "CVC5_KIND_SEQ_UNIT"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_SEQ_UPDATEE", "CVC5_KIND_SEQ_UPDATE"], [2, 0, 1, "_CPPv4N8Cvc5Kind17CVC5_KIND_SET_ALLE", "CVC5_KIND_SET_ALL"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_SET_CARDE", "CVC5_KIND_SET_CARD"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_SET_CHOOSEE", "CVC5_KIND_SET_CHOOSE"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_SET_COMPLEMENTE", "CVC5_KIND_SET_COMPLEMENT"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_SET_COMPREHENSIONE", "CVC5_KIND_SET_COMPREHENSION"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_SET_EMPTYE", "CVC5_KIND_SET_EMPTY"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_SET_FILTERE", "CVC5_KIND_SET_FILTER"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_SET_FOLDE", "CVC5_KIND_SET_FOLD"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_SET_INSERTE", "CVC5_KIND_SET_INSERT"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_SET_INTERE", "CVC5_KIND_SET_INTER"], [2, 0, 1, "_CPPv4N8Cvc5Kind22CVC5_KIND_SET_IS_EMPTYE", "CVC5_KIND_SET_IS_EMPTY"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_SET_IS_SINGLETONE", "CVC5_KIND_SET_IS_SINGLETON"], [2, 0, 1, "_CPPv4N8Cvc5Kind17CVC5_KIND_SET_MAPE", "CVC5_KIND_SET_MAP"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_SET_MEMBERE", "CVC5_KIND_SET_MEMBER"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_SET_MINUSE", "CVC5_KIND_SET_MINUS"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_SET_SINGLETONE", "CVC5_KIND_SET_SINGLETON"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_SET_SOMEE", "CVC5_KIND_SET_SOME"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_SET_SUBSETE", "CVC5_KIND_SET_SUBSET"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_SET_UNIONE", "CVC5_KIND_SET_UNION"], [2, 0, 1, "_CPPv4N8Cvc5Kind22CVC5_KIND_SET_UNIVERSEE", "CVC5_KIND_SET_UNIVERSE"], [2, 0, 1, "_CPPv4N8Cvc5Kind15CVC5_KIND_SEXPRE", "CVC5_KIND_SEXPR"], [2, 0, 1, "_CPPv4N8Cvc5Kind14CVC5_KIND_SINEE", "CVC5_KIND_SINE"], [2, 0, 1, "_CPPv4N8Cvc5Kind16CVC5_KIND_SKOLEME", "CVC5_KIND_SKOLEM"], [2, 0, 1, "_CPPv4N8Cvc5Kind28CVC5_KIND_SKOLEM_ADD_TO_POOLE", "CVC5_KIND_SKOLEM_ADD_TO_POOL"], [2, 0, 1, "_CPPv4N8Cvc5Kind14CVC5_KIND_SQRTE", "CVC5_KIND_SQRT"], [2, 0, 1, "_CPPv4N8Cvc5Kind15CVC5_KIND_STOREE", "CVC5_KIND_STORE"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_STRING_CHARATE", "CVC5_KIND_STRING_CHARAT"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_STRING_CONCATE", "CVC5_KIND_STRING_CONCAT"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_STRING_CONTAINSE", "CVC5_KIND_STRING_CONTAINS"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_STRING_FROM_CODEE", "CVC5_KIND_STRING_FROM_CODE"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_STRING_FROM_INTE", "CVC5_KIND_STRING_FROM_INT"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_STRING_INDEXOFE", "CVC5_KIND_STRING_INDEXOF"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_STRING_INDEXOF_REE", "CVC5_KIND_STRING_INDEXOF_RE"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_STRING_IN_REGEXPE", "CVC5_KIND_STRING_IN_REGEXP"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_STRING_IS_DIGITE", "CVC5_KIND_STRING_IS_DIGIT"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_STRING_LENGTHE", "CVC5_KIND_STRING_LENGTH"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_STRING_LEQE", "CVC5_KIND_STRING_LEQ"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_STRING_LTE", "CVC5_KIND_STRING_LT"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_STRING_PREFIXE", "CVC5_KIND_STRING_PREFIX"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_STRING_REPLACEE", "CVC5_KIND_STRING_REPLACE"], [2, 0, 1, "_CPPv4N8Cvc5Kind28CVC5_KIND_STRING_REPLACE_ALLE", "CVC5_KIND_STRING_REPLACE_ALL"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_STRING_REPLACE_REE", "CVC5_KIND_STRING_REPLACE_RE"], [2, 0, 1, "_CPPv4N8Cvc5Kind31CVC5_KIND_STRING_REPLACE_RE_ALLE", "CVC5_KIND_STRING_REPLACE_RE_ALL"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_STRING_REVE", "CVC5_KIND_STRING_REV"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_STRING_SUBSTRE", "CVC5_KIND_STRING_SUBSTR"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_STRING_SUFFIXE", "CVC5_KIND_STRING_SUFFIX"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_STRING_TO_CODEE", "CVC5_KIND_STRING_TO_CODE"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_STRING_TO_INTE", "CVC5_KIND_STRING_TO_INT"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_STRING_TO_LOWERE", "CVC5_KIND_STRING_TO_LOWER"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_STRING_TO_REGEXPE", "CVC5_KIND_STRING_TO_REGEXP"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_STRING_TO_UPPERE", "CVC5_KIND_STRING_TO_UPPER"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_STRING_UPDATEE", "CVC5_KIND_STRING_UPDATE"], [2, 0, 1, "_CPPv4N8Cvc5Kind13CVC5_KIND_SUBE", "CVC5_KIND_SUB"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_TABLE_AGGREGATEE", "CVC5_KIND_TABLE_AGGREGATE"], [2, 0, 1, "_CPPv4N8Cvc5Kind21CVC5_KIND_TABLE_GROUPE", "CVC5_KIND_TABLE_GROUP"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_TABLE_JOINE", "CVC5_KIND_TABLE_JOIN"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_TABLE_PRODUCTE", "CVC5_KIND_TABLE_PRODUCT"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_TABLE_PROJECTE", "CVC5_KIND_TABLE_PROJECT"], [2, 0, 1, "_CPPv4N8Cvc5Kind17CVC5_KIND_TANGENTE", "CVC5_KIND_TANGENT"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_TO_INTEGERE", "CVC5_KIND_TO_INTEGER"], [2, 0, 1, "_CPPv4N8Cvc5Kind17CVC5_KIND_TO_REALE", "CVC5_KIND_TO_REAL"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_TUPLE_PROJECTE", "CVC5_KIND_TUPLE_PROJECT"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_UNDEFINED_KINDE", "CVC5_KIND_UNDEFINED_KIND"], [2, 0, 1, "_CPPv4N8Cvc5Kind34CVC5_KIND_UNINTERPRETED_SORT_VALUEE", "CVC5_KIND_UNINTERPRETED_SORT_VALUE"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_VARIABLEE", "CVC5_KIND_VARIABLE"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_VARIABLE_LISTE", "CVC5_KIND_VARIABLE_LIST"], [2, 0, 1, "_CPPv4N8Cvc5Kind17CVC5_KIND_WITNESSE", "CVC5_KIND_WITNESS"], [2, 0, 1, "_CPPv4N8Cvc5Kind13CVC5_KIND_XORE", "CVC5_KIND_XOR"], [7, 0, 1, "_CPPv4N18Cvc5LearnedLitType35CVC5_LEARNED_LIT_TYPE_CONSTANT_PROPE", "CVC5_LEARNED_LIT_TYPE_CONSTANT_PROP"], [7, 0, 1, "_CPPv4N18Cvc5LearnedLitType27CVC5_LEARNED_LIT_TYPE_INPUTE", "CVC5_LEARNED_LIT_TYPE_INPUT"], [7, 0, 1, "_CPPv4N18Cvc5LearnedLitType30CVC5_LEARNED_LIT_TYPE_INTERNALE", "CVC5_LEARNED_LIT_TYPE_INTERNAL"], [7, 0, 1, "_CPPv4N18Cvc5LearnedLitType26CVC5_LEARNED_LIT_TYPE_LASTE", "CVC5_LEARNED_LIT_TYPE_LAST"], [7, 0, 1, "_CPPv4N18Cvc5LearnedLitType32CVC5_LEARNED_LIT_TYPE_PREPROCESSE", "CVC5_LEARNED_LIT_TYPE_PREPROCESS"], [7, 0, 1, "_CPPv4N18Cvc5LearnedLitType39CVC5_LEARNED_LIT_TYPE_PREPROCESS_SOLVEDE", "CVC5_LEARNED_LIT_TYPE_PREPROCESS_SOLVED"], [7, 0, 1, "_CPPv4N18Cvc5LearnedLitType30CVC5_LEARNED_LIT_TYPE_SOLVABLEE", "CVC5_LEARNED_LIT_TYPE_SOLVABLE"], [7, 0, 1, "_CPPv4N18Cvc5LearnedLitType29CVC5_LEARNED_LIT_TYPE_UNKNOWNE", "CVC5_LEARNED_LIT_TYPE_UNKNOWN"], [9, 0, 1, "_CPPv4N18Cvc5OptionInfoKind21CVC5_OPTION_INFO_BOOLE", "CVC5_OPTION_INFO_BOOL"], [9, 0, 1, "_CPPv4N18Cvc5OptionInfoKind23CVC5_OPTION_INFO_DOUBLEE", "CVC5_OPTION_INFO_DOUBLE"], [9, 0, 1, "_CPPv4N18Cvc5OptionInfoKind22CVC5_OPTION_INFO_INT64E", "CVC5_OPTION_INFO_INT64"], [9, 0, 1, "_CPPv4N18Cvc5OptionInfoKind22CVC5_OPTION_INFO_MODESE", "CVC5_OPTION_INFO_MODES"], [9, 0, 1, "_CPPv4N18Cvc5OptionInfoKind20CVC5_OPTION_INFO_STRE", "CVC5_OPTION_INFO_STR"], [9, 0, 1, "_CPPv4N18Cvc5OptionInfoKind23CVC5_OPTION_INFO_UINT64E", "CVC5_OPTION_INFO_UINT64"], [9, 0, 1, "_CPPv4N18Cvc5OptionInfoKind21CVC5_OPTION_INFO_VOIDE", "CVC5_OPTION_INFO_VOID"], [7, 0, 1, "_CPPv4N18Cvc5ProofComponent25CVC5_PROOF_COMPONENT_FULLE", "CVC5_PROOF_COMPONENT_FULL"], [7, 0, 1, "_CPPv4N18Cvc5ProofComponent25CVC5_PROOF_COMPONENT_LASTE", "CVC5_PROOF_COMPONENT_LAST"], [7, 0, 1, "_CPPv4N18Cvc5ProofComponent31CVC5_PROOF_COMPONENT_PREPROCESSE", "CVC5_PROOF_COMPONENT_PREPROCESS"], [7, 0, 1, "_CPPv4N18Cvc5ProofComponent35CVC5_PROOF_COMPONENT_RAW_PREPROCESSE", "CVC5_PROOF_COMPONENT_RAW_PREPROCESS"], [7, 0, 1, "_CPPv4N18Cvc5ProofComponent24CVC5_PROOF_COMPONENT_SATE", "CVC5_PROOF_COMPONENT_SAT"], [7, 0, 1, "_CPPv4N18Cvc5ProofComponent34CVC5_PROOF_COMPONENT_THEORY_LEMMASE", "CVC5_PROOF_COMPONENT_THEORY_LEMMAS"], [7, 0, 1, "_CPPv4N15Cvc5ProofFormat24CVC5_PROOF_FORMAT_ALETHEE", "CVC5_PROOF_FORMAT_ALETHE"], [7, 0, 1, "_CPPv4N15Cvc5ProofFormat21CVC5_PROOF_FORMAT_CPCE", "CVC5_PROOF_FORMAT_CPC"], [7, 0, 1, "_CPPv4N15Cvc5ProofFormat25CVC5_PROOF_FORMAT_DEFAULTE", "CVC5_PROOF_FORMAT_DEFAULT"], [7, 0, 1, "_CPPv4N15Cvc5ProofFormat21CVC5_PROOF_FORMAT_DOTE", "CVC5_PROOF_FORMAT_DOT"], [7, 0, 1, "_CPPv4N15Cvc5ProofFormat22CVC5_PROOF_FORMAT_LASTE", "CVC5_PROOF_FORMAT_LAST"], [7, 0, 1, "_CPPv4N15Cvc5ProofFormat22CVC5_PROOF_FORMAT_LFSCE", "CVC5_PROOF_FORMAT_LFSC"], [7, 0, 1, "_CPPv4N15Cvc5ProofFormat22CVC5_PROOF_FORMAT_NONEE", "CVC5_PROOF_FORMAT_NONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_ARITH_ABS_ELIM_INTE", "CVC5_PROOF_REWRITE_RULE_ARITH_ABS_ELIM_INT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_ARITH_ABS_ELIM_REALE", "CVC5_PROOF_REWRITE_RULE_ARITH_ABS_ELIM_REAL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_ARITH_ABS_EQE", "CVC5_PROOF_REWRITE_RULE_ARITH_ABS_EQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_ARITH_ABS_INT_GTE", "CVC5_PROOF_REWRITE_RULE_ARITH_ABS_INT_GT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_ARITH_ABS_REAL_GTE", "CVC5_PROOF_REWRITE_RULE_ARITH_ABS_REAL_GT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_ARITH_COSECENT_ELIME", "CVC5_PROOF_REWRITE_RULE_ARITH_COSECENT_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_ARITH_COSINE_ELIME", "CVC5_PROOF_REWRITE_RULE_ARITH_COSINE_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_ARITH_COTANGENT_ELIME", "CVC5_PROOF_REWRITE_RULE_ARITH_COTANGENT_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_ARITH_DIV_ELIM_TO_REAL1E", "CVC5_PROOF_REWRITE_RULE_ARITH_DIV_ELIM_TO_REAL1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_ARITH_DIV_ELIM_TO_REAL2E", "CVC5_PROOF_REWRITE_RULE_ARITH_DIV_ELIM_TO_REAL2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_ARITH_DIV_TOTAL_INTE", "CVC5_PROOF_REWRITE_RULE_ARITH_DIV_TOTAL_INT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_ARITH_DIV_TOTAL_REALE", "CVC5_PROOF_REWRITE_RULE_ARITH_DIV_TOTAL_REAL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_ARITH_DIV_TOTAL_ZERO_INTE", "CVC5_PROOF_REWRITE_RULE_ARITH_DIV_TOTAL_ZERO_INT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_ARITH_DIV_TOTAL_ZERO_REALE", "CVC5_PROOF_REWRITE_RULE_ARITH_DIV_TOTAL_ZERO_REAL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_GTE", "CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_GT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_INT_GTE", "CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_INT_GT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_INT_LTE", "CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_INT_LT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_LEQE", "CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_LEQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_LTE", "CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_LT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_ARITH_EQ_ELIM_INTE", "CVC5_PROOF_REWRITE_RULE_ARITH_EQ_ELIM_INT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_ARITH_EQ_ELIM_REALE", "CVC5_PROOF_REWRITE_RULE_ARITH_EQ_ELIM_REAL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_ARITH_GEQ_NORM1_INTE", "CVC5_PROOF_REWRITE_RULE_ARITH_GEQ_NORM1_INT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_ARITH_GEQ_NORM1_REALE", "CVC5_PROOF_REWRITE_RULE_ARITH_GEQ_NORM1_REAL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_ARITH_GEQ_NORM2E", "CVC5_PROOF_REWRITE_RULE_ARITH_GEQ_NORM2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_ARITH_GEQ_TIGHTENE", "CVC5_PROOF_REWRITE_RULE_ARITH_GEQ_TIGHTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_ARITH_INT_DIV_TOTALE", "CVC5_PROOF_REWRITE_RULE_ARITH_INT_DIV_TOTAL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_ARITH_INT_DIV_TOTAL_ONEE", "CVC5_PROOF_REWRITE_RULE_ARITH_INT_DIV_TOTAL_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_ARITH_INT_DIV_TOTAL_ZEROE", "CVC5_PROOF_REWRITE_RULE_ARITH_INT_DIV_TOTAL_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_ARITH_INT_MOD_TOTALE", "CVC5_PROOF_REWRITE_RULE_ARITH_INT_MOD_TOTAL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_ARITH_INT_MOD_TOTAL_ONEE", "CVC5_PROOF_REWRITE_RULE_ARITH_INT_MOD_TOTAL_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_ARITH_INT_MOD_TOTAL_ZEROE", "CVC5_PROOF_REWRITE_RULE_ARITH_INT_MOD_TOTAL_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ARITH_LEQ_NORME", "CVC5_PROOF_REWRITE_RULE_ARITH_LEQ_NORM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_ARITH_MULT_DISTE", "CVC5_PROOF_REWRITE_RULE_ARITH_MULT_DIST"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_ARITH_MULT_FLATTENE", "CVC5_PROOF_REWRITE_RULE_ARITH_MULT_FLATTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ARITH_MUL_ONEE", "CVC5_PROOF_REWRITE_RULE_ARITH_MUL_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ARITH_MUL_ZEROE", "CVC5_PROOF_REWRITE_RULE_ARITH_MUL_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_ARITH_PI_NOT_INTE", "CVC5_PROOF_REWRITE_RULE_ARITH_PI_NOT_INT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_ARITH_PLUS_FLATTENE", "CVC5_PROOF_REWRITE_RULE_ARITH_PLUS_FLATTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ARITH_POW_ELIME", "CVC5_PROOF_REWRITE_RULE_ARITH_POW_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ARITH_REFL_GEQE", "CVC5_PROOF_REWRITE_RULE_ARITH_REFL_GEQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ARITH_REFL_GTE", "CVC5_PROOF_REWRITE_RULE_ARITH_REFL_GT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ARITH_REFL_LEQE", "CVC5_PROOF_REWRITE_RULE_ARITH_REFL_LEQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ARITH_REFL_LTE", "CVC5_PROOF_REWRITE_RULE_ARITH_REFL_LT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_ARITH_SECENT_ELIME", "CVC5_PROOF_REWRITE_RULE_ARITH_SECENT_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ARITH_SINE_PI2E", "CVC5_PROOF_REWRITE_RULE_ARITH_SINE_PI2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_ARITH_SINE_ZEROE", "CVC5_PROOF_REWRITE_RULE_ARITH_SINE_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_ARITH_STRING_PRED_ENTAILE", "CVC5_PROOF_REWRITE_RULE_ARITH_STRING_PRED_ENTAIL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule53CVC5_PROOF_REWRITE_RULE_ARITH_STRING_PRED_SAFE_APPROXE", "CVC5_PROOF_REWRITE_RULE_ARITH_STRING_PRED_SAFE_APPROX"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_ARITH_TANGENT_ELIME", "CVC5_PROOF_REWRITE_RULE_ARITH_TANGENT_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_ARITH_TO_INT_ELIM_TO_REALE", "CVC5_PROOF_REWRITE_RULE_ARITH_TO_INT_ELIM_TO_REAL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_ARITH_TO_REAL_ELIME", "CVC5_PROOF_REWRITE_RULE_ARITH_TO_REAL_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_ARRAYS_EQ_RANGE_EXPANDE", "CVC5_PROOF_REWRITE_RULE_ARRAYS_EQ_RANGE_EXPAND"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_ARRAYS_SELECT_CONSTE", "CVC5_PROOF_REWRITE_RULE_ARRAYS_SELECT_CONST"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_ARRAY_READ_OVER_WRITEE", "CVC5_PROOF_REWRITE_RULE_ARRAY_READ_OVER_WRITE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_ARRAY_READ_OVER_WRITE2E", "CVC5_PROOF_REWRITE_RULE_ARRAY_READ_OVER_WRITE2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule51CVC5_PROOF_REWRITE_RULE_ARRAY_READ_OVER_WRITE_SPLITE", "CVC5_PROOF_REWRITE_RULE_ARRAY_READ_OVER_WRITE_SPLIT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_ARRAY_STORE_OVERWRITEE", "CVC5_PROOF_REWRITE_RULE_ARRAY_STORE_OVERWRITE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_ARRAY_STORE_SELFE", "CVC5_PROOF_REWRITE_RULE_ARRAY_STORE_SELF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BETA_REDUCEE", "CVC5_PROOF_REWRITE_RULE_BETA_REDUCE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_AND_CONFE", "CVC5_PROOF_REWRITE_RULE_BOOL_AND_CONF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BOOL_AND_CONF2E", "CVC5_PROOF_REWRITE_RULE_BOOL_AND_CONF2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BOOL_AND_DE_MORGANE", "CVC5_PROOF_REWRITE_RULE_BOOL_AND_DE_MORGAN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BOOL_AND_FALSEE", "CVC5_PROOF_REWRITE_RULE_BOOL_AND_FALSE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BOOL_AND_FLATTENE", "CVC5_PROOF_REWRITE_RULE_BOOL_AND_FLATTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_BOOL_DOUBLE_NOT_ELIME", "CVC5_PROOF_REWRITE_RULE_BOOL_DOUBLE_NOT_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_EQ_FALSEE", "CVC5_PROOF_REWRITE_RULE_BOOL_EQ_FALSE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_EQ_NREFLE", "CVC5_PROOF_REWRITE_RULE_BOOL_EQ_NREFL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BOOL_EQ_TRUEE", "CVC5_PROOF_REWRITE_RULE_BOOL_EQ_TRUE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_BOOL_IMPLIES_DE_MORGANE", "CVC5_PROOF_REWRITE_RULE_BOOL_IMPLIES_DE_MORGAN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_ELIME", "CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_FALSE1E", "CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_FALSE1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_FALSE2E", "CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_FALSE2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_TRUE1E", "CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_TRUE1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_TRUE2E", "CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_TRUE2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BOOL_NOT_EQ_ELIM1E", "CVC5_PROOF_REWRITE_RULE_BOOL_NOT_EQ_ELIM1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BOOL_NOT_EQ_ELIM2E", "CVC5_PROOF_REWRITE_RULE_BOOL_NOT_EQ_ELIM2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BOOL_NOT_FALSEE", "CVC5_PROOF_REWRITE_RULE_BOOL_NOT_FALSE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BOOL_NOT_ITE_ELIME", "CVC5_PROOF_REWRITE_RULE_BOOL_NOT_ITE_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_NOT_TRUEE", "CVC5_PROOF_REWRITE_RULE_BOOL_NOT_TRUE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BOOL_NOT_XOR_ELIME", "CVC5_PROOF_REWRITE_RULE_BOOL_NOT_XOR_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BOOL_OR_AND_DISTRIBE", "CVC5_PROOF_REWRITE_RULE_BOOL_OR_AND_DISTRIB"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BOOL_OR_DE_MORGANE", "CVC5_PROOF_REWRITE_RULE_BOOL_OR_DE_MORGAN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_BOOL_OR_FLATTENE", "CVC5_PROOF_REWRITE_RULE_BOOL_OR_FLATTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BOOL_OR_TAUTE", "CVC5_PROOF_REWRITE_RULE_BOOL_OR_TAUT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_OR_TAUT2E", "CVC5_PROOF_REWRITE_RULE_BOOL_OR_TAUT2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BOOL_OR_TRUEE", "CVC5_PROOF_REWRITE_RULE_BOOL_OR_TRUE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_XOR_COMME", "CVC5_PROOF_REWRITE_RULE_BOOL_XOR_COMM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_XOR_ELIME", "CVC5_PROOF_REWRITE_RULE_BOOL_XOR_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BOOL_XOR_FALSEE", "CVC5_PROOF_REWRITE_RULE_BOOL_XOR_FALSE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BOOL_XOR_NREFLE", "CVC5_PROOF_REWRITE_RULE_BOOL_XOR_NREFL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_XOR_REFLE", "CVC5_PROOF_REWRITE_RULE_BOOL_XOR_REFL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_XOR_TRUEE", "CVC5_PROOF_REWRITE_RULE_BOOL_XOR_TRUE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_BV_ADD_COMBINE_LIKE_TERMSE", "CVC5_PROOF_REWRITE_RULE_BV_ADD_COMBINE_LIKE_TERMS"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_ADD_TWOE", "CVC5_PROOF_REWRITE_RULE_BV_ADD_TWO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_ADD_ZEROE", "CVC5_PROOF_REWRITE_RULE_BV_ADD_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_BV_AND_CONCAT_PULLUPE", "CVC5_PROOF_REWRITE_RULE_BV_AND_CONCAT_PULLUP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_AND_FLATTENE", "CVC5_PROOF_REWRITE_RULE_BV_AND_FLATTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_AND_ONEE", "CVC5_PROOF_REWRITE_RULE_BV_AND_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_AND_SIMPLIFY_1E", "CVC5_PROOF_REWRITE_RULE_BV_AND_SIMPLIFY_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_AND_SIMPLIFY_2E", "CVC5_PROOF_REWRITE_RULE_BV_AND_SIMPLIFY_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_AND_ZEROE", "CVC5_PROOF_REWRITE_RULE_BV_AND_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_ASHR_BY_CONST_0E", "CVC5_PROOF_REWRITE_RULE_BV_ASHR_BY_CONST_0"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_ASHR_BY_CONST_1E", "CVC5_PROOF_REWRITE_RULE_BV_ASHR_BY_CONST_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_ASHR_BY_CONST_2E", "CVC5_PROOF_REWRITE_RULE_BV_ASHR_BY_CONST_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BV_ASHR_ZEROE", "CVC5_PROOF_REWRITE_RULE_BV_ASHR_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_BITWISE_IDEMP_1E", "CVC5_PROOF_REWRITE_RULE_BV_BITWISE_IDEMP_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_BITWISE_IDEMP_2E", "CVC5_PROOF_REWRITE_RULE_BV_BITWISE_IDEMP_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_BITWISE_NOT_ANDE", "CVC5_PROOF_REWRITE_RULE_BV_BITWISE_NOT_AND"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_BITWISE_NOT_ORE", "CVC5_PROOF_REWRITE_RULE_BV_BITWISE_NOT_OR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_BITWISE_SLICINGE", "CVC5_PROOF_REWRITE_RULE_BV_BITWISE_SLICING"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_ADDE", "CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_ADD"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_ANDE", "CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_AND"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_MULE", "CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_MUL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_ORE", "CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_OR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_XORE", "CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_XOR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_COMP_ELIMINATEE", "CVC5_PROOF_REWRITE_RULE_BV_COMP_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_BV_CONCAT_EXTRACT_MERGEE", "CVC5_PROOF_REWRITE_RULE_BV_CONCAT_EXTRACT_MERGE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_CONCAT_FLATTENE", "CVC5_PROOF_REWRITE_RULE_BV_CONCAT_FLATTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_BV_CONCAT_MERGE_CONSTE", "CVC5_PROOF_REWRITE_RULE_BV_CONCAT_MERGE_CONST"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_CONCAT_TO_MULTE", "CVC5_PROOF_REWRITE_RULE_BV_CONCAT_TO_MULT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_EQ_EXTRACT_ELIM1E", "CVC5_PROOF_REWRITE_RULE_BV_EQ_EXTRACT_ELIM1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_EQ_EXTRACT_ELIM2E", "CVC5_PROOF_REWRITE_RULE_BV_EQ_EXTRACT_ELIM2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_EQ_EXTRACT_ELIM3E", "CVC5_PROOF_REWRITE_RULE_BV_EQ_EXTRACT_ELIM3"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_BITWISE_ANDE", "CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_BITWISE_AND"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_BITWISE_ORE", "CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_BITWISE_OR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_BITWISE_XORE", "CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_BITWISE_XOR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_CONCAT_1E", "CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_CONCAT_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_CONCAT_2E", "CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_CONCAT_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_CONCAT_3E", "CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_CONCAT_3"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_CONCAT_4E", "CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_CONCAT_4"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_EXTRACTE", "CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_EXTRACT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule51CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_MULT_LEADING_BITE", "CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_MULT_LEADING_BIT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_NOTE", "CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_NOT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_SIGN_EXTEND_1E", "CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_SIGN_EXTEND_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_SIGN_EXTEND_2E", "CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_SIGN_EXTEND_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_SIGN_EXTEND_3E", "CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_SIGN_EXTEND_3"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_WHOLEE", "CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_WHOLE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_BV_ITE_CONST_CHILDREN_1E", "CVC5_PROOF_REWRITE_RULE_BV_ITE_CONST_CHILDREN_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_BV_ITE_CONST_CHILDREN_2E", "CVC5_PROOF_REWRITE_RULE_BV_ITE_CONST_CHILDREN_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_BV_ITE_EQUAL_CHILDRENE", "CVC5_PROOF_REWRITE_RULE_BV_ITE_EQUAL_CHILDREN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_ITE_EQUAL_COND_1E", "CVC5_PROOF_REWRITE_RULE_BV_ITE_EQUAL_COND_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_ITE_EQUAL_COND_2E", "CVC5_PROOF_REWRITE_RULE_BV_ITE_EQUAL_COND_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_ITE_EQUAL_COND_3E", "CVC5_PROOF_REWRITE_RULE_BV_ITE_EQUAL_COND_3"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_BV_ITE_MERGE_ELSE_ELSEE", "CVC5_PROOF_REWRITE_RULE_BV_ITE_MERGE_ELSE_ELSE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_BV_ITE_MERGE_ELSE_IFE", "CVC5_PROOF_REWRITE_RULE_BV_ITE_MERGE_ELSE_IF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_BV_ITE_MERGE_THEN_ELSEE", "CVC5_PROOF_REWRITE_RULE_BV_ITE_MERGE_THEN_ELSE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_BV_ITE_MERGE_THEN_IFE", "CVC5_PROOF_REWRITE_RULE_BV_ITE_MERGE_THEN_IF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_LSHR_BY_CONST_0E", "CVC5_PROOF_REWRITE_RULE_BV_LSHR_BY_CONST_0"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_LSHR_BY_CONST_1E", "CVC5_PROOF_REWRITE_RULE_BV_LSHR_BY_CONST_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_LSHR_BY_CONST_2E", "CVC5_PROOF_REWRITE_RULE_BV_LSHR_BY_CONST_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BV_LSHR_ZEROE", "CVC5_PROOF_REWRITE_RULE_BV_LSHR_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_LT_SELFE", "CVC5_PROOF_REWRITE_RULE_BV_LT_SELF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_BV_MERGE_SIGN_EXTEND_1E", "CVC5_PROOF_REWRITE_RULE_BV_MERGE_SIGN_EXTEND_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_BV_MERGE_SIGN_EXTEND_2E", "CVC5_PROOF_REWRITE_RULE_BV_MERGE_SIGN_EXTEND_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_BV_MERGE_SIGN_EXTEND_3E", "CVC5_PROOF_REWRITE_RULE_BV_MERGE_SIGN_EXTEND_3"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_1E", "CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_2E", "CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_CONST_ADDE", "CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_CONST_ADD"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_CONST_NEGE", "CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_CONST_NEG"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_CONST_SUBE", "CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_CONST_SUB"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_MULT_POW2_1E", "CVC5_PROOF_REWRITE_RULE_BV_MULT_POW2_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_MULT_POW2_2E", "CVC5_PROOF_REWRITE_RULE_BV_MULT_POW2_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_BV_MULT_POW2_2BE", "CVC5_PROOF_REWRITE_RULE_BV_MULT_POW2_2B"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_MULT_SIMPLIFYE", "CVC5_PROOF_REWRITE_RULE_BV_MULT_SIMPLIFY"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_MULT_SLT_MULT_1E", "CVC5_PROOF_REWRITE_RULE_BV_MULT_SLT_MULT_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_MULT_SLT_MULT_2E", "CVC5_PROOF_REWRITE_RULE_BV_MULT_SLT_MULT_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_MUL_FLATTENE", "CVC5_PROOF_REWRITE_RULE_BV_MUL_FLATTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_MUL_ONEE", "CVC5_PROOF_REWRITE_RULE_BV_MUL_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_MUL_ZEROE", "CVC5_PROOF_REWRITE_RULE_BV_MUL_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_NAND_ELIMINATEE", "CVC5_PROOF_REWRITE_RULE_BV_NAND_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_NEG_ADDE", "CVC5_PROOF_REWRITE_RULE_BV_NEG_ADD"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BV_NEG_IDEMPE", "CVC5_PROOF_REWRITE_RULE_BV_NEG_IDEMP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_NEG_MULTE", "CVC5_PROOF_REWRITE_RULE_BV_NEG_MULT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_NEG_SUBE", "CVC5_PROOF_REWRITE_RULE_BV_NEG_SUB"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_NOR_ELIMINATEE", "CVC5_PROOF_REWRITE_RULE_BV_NOR_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BV_NOT_IDEMPE", "CVC5_PROOF_REWRITE_RULE_BV_NOT_IDEMP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_NOT_NEQE", "CVC5_PROOF_REWRITE_RULE_BV_NOT_NEQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_NOT_SLEE", "CVC5_PROOF_REWRITE_RULE_BV_NOT_SLE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_NOT_ULEE", "CVC5_PROOF_REWRITE_RULE_BV_NOT_ULE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_NOT_ULTE", "CVC5_PROOF_REWRITE_RULE_BV_NOT_ULT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_NOT_XORE", "CVC5_PROOF_REWRITE_RULE_BV_NOT_XOR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_OR_CONCAT_PULLUPE", "CVC5_PROOF_REWRITE_RULE_BV_OR_CONCAT_PULLUP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BV_OR_FLATTENE", "CVC5_PROOF_REWRITE_RULE_BV_OR_FLATTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule33CVC5_PROOF_REWRITE_RULE_BV_OR_ONEE", "CVC5_PROOF_REWRITE_RULE_BV_OR_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_OR_SIMPLIFY_1E", "CVC5_PROOF_REWRITE_RULE_BV_OR_SIMPLIFY_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_OR_SIMPLIFY_2E", "CVC5_PROOF_REWRITE_RULE_BV_OR_SIMPLIFY_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_OR_ZEROE", "CVC5_PROOF_REWRITE_RULE_BV_OR_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_REDAND_ELIMINATEE", "CVC5_PROOF_REWRITE_RULE_BV_REDAND_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_REDOR_ELIMINATEE", "CVC5_PROOF_REWRITE_RULE_BV_REDOR_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_REPEAT_ELIME", "CVC5_PROOF_REWRITE_RULE_BV_REPEAT_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_BV_ROTATE_LEFT_ELIMINATE_1E", "CVC5_PROOF_REWRITE_RULE_BV_ROTATE_LEFT_ELIMINATE_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_BV_ROTATE_LEFT_ELIMINATE_2E", "CVC5_PROOF_REWRITE_RULE_BV_ROTATE_LEFT_ELIMINATE_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule51CVC5_PROOF_REWRITE_RULE_BV_ROTATE_RIGHT_ELIMINATE_1E", "CVC5_PROOF_REWRITE_RULE_BV_ROTATE_RIGHT_ELIMINATE_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule51CVC5_PROOF_REWRITE_RULE_BV_ROTATE_RIGHT_ELIMINATE_2E", "CVC5_PROOF_REWRITE_RULE_BV_ROTATE_RIGHT_ELIMINATE_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_SADDO_ELIMINATEE", "CVC5_PROOF_REWRITE_RULE_BV_SADDO_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_SDIVO_ELIMINATEE", "CVC5_PROOF_REWRITE_RULE_BV_SDIVO_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_SDIV_ELIMINATEE", "CVC5_PROOF_REWRITE_RULE_BV_SDIV_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule59CVC5_PROOF_REWRITE_RULE_BV_SDIV_ELIMINATE_FEWER_BITWISE_OPSE", "CVC5_PROOF_REWRITE_RULE_BV_SDIV_ELIMINATE_FEWER_BITWISE_OPS"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_SGE_ELIMINATEE", "CVC5_PROOF_REWRITE_RULE_BV_SGE_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_SGT_ELIMINATEE", "CVC5_PROOF_REWRITE_RULE_BV_SGT_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_SHL_BY_CONST_0E", "CVC5_PROOF_REWRITE_RULE_BV_SHL_BY_CONST_0"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_SHL_BY_CONST_1E", "CVC5_PROOF_REWRITE_RULE_BV_SHL_BY_CONST_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_SHL_BY_CONST_2E", "CVC5_PROOF_REWRITE_RULE_BV_SHL_BY_CONST_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_SHL_ZEROE", "CVC5_PROOF_REWRITE_RULE_BV_SHL_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ELIMINATEE", "CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ELIMINATE_0E", "CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ELIMINATE_0"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_EQ_CONST_1E", "CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_EQ_CONST_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_EQ_CONST_2E", "CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_EQ_CONST_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ULT_CONST_1E", "CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ULT_CONST_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ULT_CONST_2E", "CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ULT_CONST_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ULT_CONST_3E", "CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ULT_CONST_3"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ULT_CONST_4E", "CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ULT_CONST_4"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_SLE_ELIMINATEE", "CVC5_PROOF_REWRITE_RULE_BV_SLE_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_SLE_SELFE", "CVC5_PROOF_REWRITE_RULE_BV_SLE_SELF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_SLT_ELIMINATEE", "CVC5_PROOF_REWRITE_RULE_BV_SLT_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_SLT_ZEROE", "CVC5_PROOF_REWRITE_RULE_BV_SLT_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_SMOD_ELIMINATEE", "CVC5_PROOF_REWRITE_RULE_BV_SMOD_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule59CVC5_PROOF_REWRITE_RULE_BV_SMOD_ELIMINATE_FEWER_BITWISE_OPSE", "CVC5_PROOF_REWRITE_RULE_BV_SMOD_ELIMINATE_FEWER_BITWISE_OPS"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_SMULO_ELIMINATEE", "CVC5_PROOF_REWRITE_RULE_BV_SMULO_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_SREM_ELIMINATEE", "CVC5_PROOF_REWRITE_RULE_BV_SREM_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule59CVC5_PROOF_REWRITE_RULE_BV_SREM_ELIMINATE_FEWER_BITWISE_OPSE", "CVC5_PROOF_REWRITE_RULE_BV_SREM_ELIMINATE_FEWER_BITWISE_OPS"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_SSUBO_ELIMINATEE", "CVC5_PROOF_REWRITE_RULE_BV_SSUBO_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_SUB_ELIMINATEE", "CVC5_PROOF_REWRITE_RULE_BV_SUB_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_TO_NAT_ELIME", "CVC5_PROOF_REWRITE_RULE_BV_TO_NAT_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_UADDO_ELIMINATEE", "CVC5_PROOF_REWRITE_RULE_BV_UADDO_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_UDIV_ONEE", "CVC5_PROOF_REWRITE_RULE_BV_UDIV_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_BV_UDIV_POW2_NOT_ONEE", "CVC5_PROOF_REWRITE_RULE_BV_UDIV_POW2_NOT_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BV_UDIV_ZEROE", "CVC5_PROOF_REWRITE_RULE_BV_UDIV_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_UGE_ELIMINATEE", "CVC5_PROOF_REWRITE_RULE_BV_UGE_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_UGT_ELIMINATEE", "CVC5_PROOF_REWRITE_RULE_BV_UGT_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_UGT_UREME", "CVC5_PROOF_REWRITE_RULE_BV_UGT_UREM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_ULE_ELIMINATEE", "CVC5_PROOF_REWRITE_RULE_BV_ULE_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_ULE_MAXE", "CVC5_PROOF_REWRITE_RULE_BV_ULE_MAX"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_ULE_SELFE", "CVC5_PROOF_REWRITE_RULE_BV_ULE_SELF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_ULE_ZEROE", "CVC5_PROOF_REWRITE_RULE_BV_ULE_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_ULT_ADD_ONEE", "CVC5_PROOF_REWRITE_RULE_BV_ULT_ADD_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_ULT_ONEE", "CVC5_PROOF_REWRITE_RULE_BV_ULT_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_ULT_ONESE", "CVC5_PROOF_REWRITE_RULE_BV_ULT_ONES"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_ULT_SELFE", "CVC5_PROOF_REWRITE_RULE_BV_ULT_SELF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BV_ULT_ZERO_1E", "CVC5_PROOF_REWRITE_RULE_BV_ULT_ZERO_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BV_ULT_ZERO_2E", "CVC5_PROOF_REWRITE_RULE_BV_ULT_ZERO_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_UMULO_ELIMINATEE", "CVC5_PROOF_REWRITE_RULE_BV_UMULO_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_UREM_ONEE", "CVC5_PROOF_REWRITE_RULE_BV_UREM_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_BV_UREM_POW2_NOT_ONEE", "CVC5_PROOF_REWRITE_RULE_BV_UREM_POW2_NOT_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BV_UREM_SELFE", "CVC5_PROOF_REWRITE_RULE_BV_UREM_SELF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_USUBO_ELIMINATEE", "CVC5_PROOF_REWRITE_RULE_BV_USUBO_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_XNOR_ELIMINATEE", "CVC5_PROOF_REWRITE_RULE_BV_XNOR_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_BV_XOR_CONCAT_PULLUPE", "CVC5_PROOF_REWRITE_RULE_BV_XOR_CONCAT_PULLUP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_XOR_DUPLICATEE", "CVC5_PROOF_REWRITE_RULE_BV_XOR_DUPLICATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_XOR_FLATTENE", "CVC5_PROOF_REWRITE_RULE_BV_XOR_FLATTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_XOR_NOTE", "CVC5_PROOF_REWRITE_RULE_BV_XOR_NOT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_XOR_ONESE", "CVC5_PROOF_REWRITE_RULE_BV_XOR_ONES"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_XOR_SIMPLIFY_1E", "CVC5_PROOF_REWRITE_RULE_BV_XOR_SIMPLIFY_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_XOR_SIMPLIFY_2E", "CVC5_PROOF_REWRITE_RULE_BV_XOR_SIMPLIFY_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_XOR_SIMPLIFY_3E", "CVC5_PROOF_REWRITE_RULE_BV_XOR_SIMPLIFY_3"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_XOR_ZEROE", "CVC5_PROOF_REWRITE_RULE_BV_XOR_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_BV_ZERO_EXTEND_ELIMINATEE", "CVC5_PROOF_REWRITE_RULE_BV_ZERO_EXTEND_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_BV_ZERO_EXTEND_ELIMINATE_0E", "CVC5_PROOF_REWRITE_RULE_BV_ZERO_EXTEND_ELIMINATE_0"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_BV_ZERO_EXTEND_EQ_CONST_1E", "CVC5_PROOF_REWRITE_RULE_BV_ZERO_EXTEND_EQ_CONST_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_BV_ZERO_EXTEND_EQ_CONST_2E", "CVC5_PROOF_REWRITE_RULE_BV_ZERO_EXTEND_EQ_CONST_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_ZERO_ULEE", "CVC5_PROOF_REWRITE_RULE_BV_ZERO_ULE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_DISTINCT_BINARY_ELIME", "CVC5_PROOF_REWRITE_RULE_DISTINCT_BINARY_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_DISTINCT_CARD_CONFLICTE", "CVC5_PROOF_REWRITE_RULE_DISTINCT_CARD_CONFLICT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_DISTINCT_ELIME", "CVC5_PROOF_REWRITE_RULE_DISTINCT_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_DT_COLLAPSE_SELECTORE", "CVC5_PROOF_REWRITE_RULE_DT_COLLAPSE_SELECTOR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_DT_COLLAPSE_TESTERE", "CVC5_PROOF_REWRITE_RULE_DT_COLLAPSE_TESTER"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule52CVC5_PROOF_REWRITE_RULE_DT_COLLAPSE_TESTER_SINGLETONE", "CVC5_PROOF_REWRITE_RULE_DT_COLLAPSE_TESTER_SINGLETON"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_DT_COLLAPSE_UPDATERE", "CVC5_PROOF_REWRITE_RULE_DT_COLLAPSE_UPDATER"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_DT_CONS_EQE", "CVC5_PROOF_REWRITE_RULE_DT_CONS_EQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule32CVC5_PROOF_REWRITE_RULE_DT_CYCLEE", "CVC5_PROOF_REWRITE_RULE_DT_CYCLE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule31CVC5_PROOF_REWRITE_RULE_DT_INSTE", "CVC5_PROOF_REWRITE_RULE_DT_INST"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_DT_MATCH_ELIME", "CVC5_PROOF_REWRITE_RULE_DT_MATCH_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_DT_UPDATER_ELIME", "CVC5_PROOF_REWRITE_RULE_DT_UPDATER_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_EQ_COND_DEQE", "CVC5_PROOF_REWRITE_RULE_EQ_COND_DEQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_EQ_ITE_LIFTE", "CVC5_PROOF_REWRITE_RULE_EQ_ITE_LIFT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule31CVC5_PROOF_REWRITE_RULE_EQ_REFLE", "CVC5_PROOF_REWRITE_RULE_EQ_REFL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule31CVC5_PROOF_REWRITE_RULE_EQ_SYMME", "CVC5_PROOF_REWRITE_RULE_EQ_SYMM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_EXISTS_ELIME", "CVC5_PROOF_REWRITE_RULE_EXISTS_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_INT_TO_BV_ELIME", "CVC5_PROOF_REWRITE_RULE_INT_TO_BV_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ITE_ELSE_FALSEE", "CVC5_PROOF_REWRITE_RULE_ITE_ELSE_FALSE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_ITE_ELSE_LOOKAHEADE", "CVC5_PROOF_REWRITE_RULE_ITE_ELSE_LOOKAHEAD"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule51CVC5_PROOF_REWRITE_RULE_ITE_ELSE_LOOKAHEAD_NOT_SELFE", "CVC5_PROOF_REWRITE_RULE_ITE_ELSE_LOOKAHEAD_NOT_SELF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_ITE_ELSE_LOOKAHEAD_SELFE", "CVC5_PROOF_REWRITE_RULE_ITE_ELSE_LOOKAHEAD_SELF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_ITE_ELSE_NEG_LOOKAHEADE", "CVC5_PROOF_REWRITE_RULE_ITE_ELSE_NEG_LOOKAHEAD"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ITE_ELSE_TRUEE", "CVC5_PROOF_REWRITE_RULE_ITE_ELSE_TRUE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ITE_EQ_BRANCHE", "CVC5_PROOF_REWRITE_RULE_ITE_EQ_BRANCH"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_ITE_EXPANDE", "CVC5_PROOF_REWRITE_RULE_ITE_EXPAND"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ITE_FALSE_CONDE", "CVC5_PROOF_REWRITE_RULE_ITE_FALSE_COND"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ITE_NEG_BRANCHE", "CVC5_PROOF_REWRITE_RULE_ITE_NEG_BRANCH"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_ITE_NOT_CONDE", "CVC5_PROOF_REWRITE_RULE_ITE_NOT_COND"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ITE_THEN_FALSEE", "CVC5_PROOF_REWRITE_RULE_ITE_THEN_FALSE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_ITE_THEN_LOOKAHEADE", "CVC5_PROOF_REWRITE_RULE_ITE_THEN_LOOKAHEAD"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule51CVC5_PROOF_REWRITE_RULE_ITE_THEN_LOOKAHEAD_NOT_SELFE", "CVC5_PROOF_REWRITE_RULE_ITE_THEN_LOOKAHEAD_NOT_SELF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_ITE_THEN_LOOKAHEAD_SELFE", "CVC5_PROOF_REWRITE_RULE_ITE_THEN_LOOKAHEAD_SELF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_ITE_THEN_NEG_LOOKAHEADE", "CVC5_PROOF_REWRITE_RULE_ITE_THEN_NEG_LOOKAHEAD"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ITE_THEN_TRUEE", "CVC5_PROOF_REWRITE_RULE_ITE_THEN_TRUE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ITE_TRUE_CONDE", "CVC5_PROOF_REWRITE_RULE_ITE_TRUE_COND"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_LAMBDA_ELIME", "CVC5_PROOF_REWRITE_RULE_LAMBDA_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule28CVC5_PROOF_REWRITE_RULE_LASTE", "CVC5_PROOF_REWRITE_RULE_LAST"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule54CVC5_PROOF_REWRITE_RULE_MACRO_ARITH_STRING_PRED_ENTAILE", "CVC5_PROOF_REWRITE_RULE_MACRO_ARITH_STRING_PRED_ENTAIL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule52CVC5_PROOF_REWRITE_RULE_MACRO_ARRAYS_DISTINCT_ARRAYSE", "CVC5_PROOF_REWRITE_RULE_MACRO_ARRAYS_DISTINCT_ARRAYS"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule55CVC5_PROOF_REWRITE_RULE_MACRO_ARRAYS_NORMALIZE_CONSTANTE", "CVC5_PROOF_REWRITE_RULE_MACRO_ARRAYS_NORMALIZE_CONSTANT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_MACRO_BOOL_NNF_NORME", "CVC5_PROOF_REWRITE_RULE_MACRO_BOOL_NNF_NORM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_MERGE_PRENEXE", "CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_MERGE_PRENEX"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_MINISCOPEE", "CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_MINISCOPE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule58CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_PARTITION_CONNECTED_FVE", "CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_PARTITION_CONNECTED_FV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_PRENEXE", "CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_PRENEX"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_REWRITE_BODYE", "CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_REWRITE_BODY"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_VAR_ELIM_EQE", "CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_VAR_ELIM_EQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_VAR_ELIM_INEQE", "CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_VAR_ELIM_INEQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule53CVC5_PROOF_REWRITE_RULE_MACRO_SUBSTR_STRIP_SYM_LENGTHE", "CVC5_PROOF_REWRITE_RULE_MACRO_SUBSTR_STRIP_SYM_LENGTH"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule28CVC5_PROOF_REWRITE_RULE_NONEE", "CVC5_PROOF_REWRITE_RULE_NONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_QUANT_DT_SPLITE", "CVC5_PROOF_REWRITE_RULE_QUANT_DT_SPLIT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_QUANT_MERGE_PRENEXE", "CVC5_PROOF_REWRITE_RULE_QUANT_MERGE_PRENEX"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_QUANT_MINISCOPE_ANDE", "CVC5_PROOF_REWRITE_RULE_QUANT_MINISCOPE_AND"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_QUANT_MINISCOPE_ITEE", "CVC5_PROOF_REWRITE_RULE_QUANT_MINISCOPE_ITE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_QUANT_MINISCOPE_ORE", "CVC5_PROOF_REWRITE_RULE_QUANT_MINISCOPE_OR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_QUANT_UNUSED_VARSE", "CVC5_PROOF_REWRITE_RULE_QUANT_UNUSED_VARS"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_QUANT_VAR_ELIM_EQE", "CVC5_PROOF_REWRITE_RULE_QUANT_VAR_ELIM_EQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_RE_ALL_ELIME", "CVC5_PROOF_REWRITE_RULE_RE_ALL_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_RE_CONCAT_EMPE", "CVC5_PROOF_REWRITE_RULE_RE_CONCAT_EMP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_RE_CONCAT_FLATTENE", "CVC5_PROOF_REWRITE_RULE_RE_CONCAT_FLATTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_RE_CONCAT_MERGEE", "CVC5_PROOF_REWRITE_RULE_RE_CONCAT_MERGE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_RE_CONCAT_NONEE", "CVC5_PROOF_REWRITE_RULE_RE_CONCAT_NONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_RE_CONCAT_STAR_REPEATE", "CVC5_PROOF_REWRITE_RULE_RE_CONCAT_STAR_REPEAT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_RE_CONCAT_STAR_SWAPE", "CVC5_PROOF_REWRITE_RULE_RE_CONCAT_STAR_SWAP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_RE_DIFF_ELIME", "CVC5_PROOF_REWRITE_RULE_RE_DIFF_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_RE_INTER_ALLE", "CVC5_PROOF_REWRITE_RULE_RE_INTER_ALL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_RE_INTER_CSTRINGE", "CVC5_PROOF_REWRITE_RULE_RE_INTER_CSTRING"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_RE_INTER_CSTRING_NEGE", "CVC5_PROOF_REWRITE_RULE_RE_INTER_CSTRING_NEG"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_RE_INTER_DUPE", "CVC5_PROOF_REWRITE_RULE_RE_INTER_DUP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_RE_INTER_FLATTENE", "CVC5_PROOF_REWRITE_RULE_RE_INTER_FLATTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_RE_INTER_NONEE", "CVC5_PROOF_REWRITE_RULE_RE_INTER_NONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_RE_INTER_UNION_INCLUSIONE", "CVC5_PROOF_REWRITE_RULE_RE_INTER_UNION_INCLUSION"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_RE_IN_COMPE", "CVC5_PROOF_REWRITE_RULE_RE_IN_COMP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_RE_IN_CSTRINGE", "CVC5_PROOF_REWRITE_RULE_RE_IN_CSTRING"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_RE_IN_EMPTYE", "CVC5_PROOF_REWRITE_RULE_RE_IN_EMPTY"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_RE_IN_SIGMAE", "CVC5_PROOF_REWRITE_RULE_RE_IN_SIGMA"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_RE_IN_SIGMA_STARE", "CVC5_PROOF_REWRITE_RULE_RE_IN_SIGMA_STAR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_RE_LOOP_ELIME", "CVC5_PROOF_REWRITE_RULE_RE_LOOP_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_RE_LOOP_NEGE", "CVC5_PROOF_REWRITE_RULE_RE_LOOP_NEG"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_RE_OPT_ELIME", "CVC5_PROOF_REWRITE_RULE_RE_OPT_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_RE_STAR_NONEE", "CVC5_PROOF_REWRITE_RULE_RE_STAR_NONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_RE_UNION_ALLE", "CVC5_PROOF_REWRITE_RULE_RE_UNION_ALL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_RE_UNION_DUPE", "CVC5_PROOF_REWRITE_RULE_RE_UNION_DUP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_RE_UNION_FLATTENE", "CVC5_PROOF_REWRITE_RULE_RE_UNION_FLATTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_RE_UNION_NONEE", "CVC5_PROOF_REWRITE_RULE_RE_UNION_NONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_SEQ_LEN_EMPTYE", "CVC5_PROOF_REWRITE_RULE_SEQ_LEN_EMPTY"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_SEQ_LEN_REVE", "CVC5_PROOF_REWRITE_RULE_SEQ_LEN_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_SEQ_LEN_UNITE", "CVC5_PROOF_REWRITE_RULE_SEQ_LEN_UNIT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_SEQ_NTH_UNITE", "CVC5_PROOF_REWRITE_RULE_SEQ_NTH_UNIT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_SEQ_REV_CONCATE", "CVC5_PROOF_REWRITE_RULE_SEQ_REV_CONCAT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_SEQ_REV_REVE", "CVC5_PROOF_REWRITE_RULE_SEQ_REV_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_SEQ_REV_UNITE", "CVC5_PROOF_REWRITE_RULE_SEQ_REV_UNIT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_SETS_CARD_EMPE", "CVC5_PROOF_REWRITE_RULE_SETS_CARD_EMP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_CARD_MINUSE", "CVC5_PROOF_REWRITE_RULE_SETS_CARD_MINUS"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_SETS_CARD_SINGLETONE", "CVC5_PROOF_REWRITE_RULE_SETS_CARD_SINGLETON"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_CARD_UNIONE", "CVC5_PROOF_REWRITE_RULE_SETS_CARD_UNION"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_SETS_CHOOSE_SINGLETONE", "CVC5_PROOF_REWRITE_RULE_SETS_CHOOSE_SINGLETON"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_SETS_EQ_SINGLETON_EMPE", "CVC5_PROOF_REWRITE_RULE_SETS_EQ_SINGLETON_EMP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_SETS_INSERT_ELIME", "CVC5_PROOF_REWRITE_RULE_SETS_INSERT_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_INTER_COMME", "CVC5_PROOF_REWRITE_RULE_SETS_INTER_COMM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_INTER_EMP1E", "CVC5_PROOF_REWRITE_RULE_SETS_INTER_EMP1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_INTER_EMP2E", "CVC5_PROOF_REWRITE_RULE_SETS_INTER_EMP2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_SETS_INTER_MEMBERE", "CVC5_PROOF_REWRITE_RULE_SETS_INTER_MEMBER"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_SETS_IS_EMPTY_ELIME", "CVC5_PROOF_REWRITE_RULE_SETS_IS_EMPTY_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_SETS_IS_EMPTY_EVALE", "CVC5_PROOF_REWRITE_RULE_SETS_IS_EMPTY_EVAL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_MEMBER_EMPE", "CVC5_PROOF_REWRITE_RULE_SETS_MEMBER_EMP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_SETS_MEMBER_SINGLETONE", "CVC5_PROOF_REWRITE_RULE_SETS_MEMBER_SINGLETON"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_MINUS_EMP1E", "CVC5_PROOF_REWRITE_RULE_SETS_MINUS_EMP1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_MINUS_EMP2E", "CVC5_PROOF_REWRITE_RULE_SETS_MINUS_EMP2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_SETS_MINUS_MEMBERE", "CVC5_PROOF_REWRITE_RULE_SETS_MINUS_MEMBER"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_MINUS_SELFE", "CVC5_PROOF_REWRITE_RULE_SETS_MINUS_SELF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_SETS_SUBSET_ELIME", "CVC5_PROOF_REWRITE_RULE_SETS_SUBSET_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_UNION_COMME", "CVC5_PROOF_REWRITE_RULE_SETS_UNION_COMM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_UNION_EMP1E", "CVC5_PROOF_REWRITE_RULE_SETS_UNION_EMP1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_UNION_EMP2E", "CVC5_PROOF_REWRITE_RULE_SETS_UNION_EMP2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_SETS_UNION_MEMBERE", "CVC5_PROOF_REWRITE_RULE_SETS_UNION_MEMBER"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_STR_AT_ELIME", "CVC5_PROOF_REWRITE_RULE_STR_AT_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASHE", "CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH2E", "CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH2_REVE", "CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH2_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH_CHARE", "CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH_CHAR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH_CHAR_REVE", "CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH_CHAR_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH_REVE", "CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_CONCAT_FLATTENE", "CVC5_PROOF_REWRITE_RULE_STR_CONCAT_FLATTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_STR_CONCAT_FLATTEN_EQE", "CVC5_PROOF_REWRITE_RULE_STR_CONCAT_FLATTEN_EQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_STR_CONCAT_FLATTEN_EQ_REVE", "CVC5_PROOF_REWRITE_RULE_STR_CONCAT_FLATTEN_EQ_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_CONCAT_UNIFYE", "CVC5_PROOF_REWRITE_RULE_STR_CONCAT_UNIFY"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_STR_CONCAT_UNIFY_BASEE", "CVC5_PROOF_REWRITE_RULE_STR_CONCAT_UNIFY_BASE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_STR_CONCAT_UNIFY_BASE_REVE", "CVC5_PROOF_REWRITE_RULE_STR_CONCAT_UNIFY_BASE_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_CONCAT_UNIFY_REVE", "CVC5_PROOF_REWRITE_RULE_STR_CONCAT_UNIFY_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_CONCAT_FINDE", "CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_CONCAT_FIND"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_EMPE", "CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_EMP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_IS_EMPE", "CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_IS_EMP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_LEQ_LEN_EQE", "CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_LEQ_LEN_EQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_LT_LENE", "CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_LT_LEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_REFLE", "CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_REFL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_SPLIT_CHARE", "CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_SPLIT_CHAR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_EQ_CTN_FALSEE", "CVC5_PROOF_REWRITE_RULE_STR_EQ_CTN_FALSE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_STR_EQ_CTN_FULL_FALSE1E", "CVC5_PROOF_REWRITE_RULE_STR_EQ_CTN_FULL_FALSE1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_STR_EQ_CTN_FULL_FALSE2E", "CVC5_PROOF_REWRITE_RULE_STR_EQ_CTN_FULL_FALSE2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_STR_INDEXOF_CONTAINS_PREE", "CVC5_PROOF_REWRITE_RULE_STR_INDEXOF_CONTAINS_PRE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_STR_INDEXOF_NO_CONTAINSE", "CVC5_PROOF_REWRITE_RULE_STR_INDEXOF_NO_CONTAINS"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_INDEXOF_RE_NONEE", "CVC5_PROOF_REWRITE_RULE_STR_INDEXOF_RE_NONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_INDEXOF_SELFE", "CVC5_PROOF_REWRITE_RULE_STR_INDEXOF_SELF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_STR_IN_RE_CONCAT_STAR_CHARE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_CONCAT_STAR_CHAR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_STR_IN_RE_CONSUMEE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_CONSUME"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_IN_RE_CONTAINSE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_CONTAINS"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_STR_IN_RE_EVALE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_EVAL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_IN_RE_INTER_ELIME", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_INTER_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_IN_RE_RANGE_ELIME", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_RANGE_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_IN_RE_REQ_UNFOLDE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_REQ_UNFOLD"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_STR_IN_RE_REQ_UNFOLD_REVE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_REQ_UNFOLD_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_STR_IN_RE_SIGMAE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_SIGMA"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_IN_RE_SIGMA_STARE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_SIGMA_STAR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_STR_IN_RE_SKIP_UNFOLDE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_SKIP_UNFOLD"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_STR_IN_RE_SKIP_UNFOLD_REVE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_SKIP_UNFOLD_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_CHARE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_CHAR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_CHAR_REVE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_CHAR_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule53CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_CHAR_S_SINGLEE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_CHAR_S_SINGLE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule57CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_CHAR_S_SINGLE_REVE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_CHAR_S_SINGLE_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIXE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule51CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASEE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule55CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_NEGE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_NEG"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule59CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_NEG_REVE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_NEG_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule55CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_REVE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule60CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLEE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule64CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEGE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule68CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG_REVE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule64CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_REVE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_NEGE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_NEG"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule54CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_NEG_REVE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_NEG_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_REVE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule57CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SRS_SINGLEE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SRS_SINGLE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule61CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEGE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule65CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG_REVE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule61CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_REVE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule56CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SR_SINGLEE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SR_SINGLE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule60CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEGE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule64CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG_REVE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule60CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SR_SINGLE_REVE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SR_SINGLE_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule55CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_S_SINGLEE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_S_SINGLE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule59CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEGE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule63CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG_REVE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule59CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_S_SINGLE_REVE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_S_SINGLE_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_STR_IN_RE_TEST_UNFOLDE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_TEST_UNFOLD"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_STR_IN_RE_TEST_UNFOLD_REVE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_TEST_UNFOLD_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_IN_RE_UNION_ELIME", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_UNION_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_LEN_CONCAT_RECE", "CVC5_PROOF_REWRITE_RULE_STR_LEN_CONCAT_REC"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_LEN_REPLACE_INVE", "CVC5_PROOF_REWRITE_RULE_STR_LEN_REPLACE_INV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_STR_LEN_SUBSTR_IN_RANGEE", "CVC5_PROOF_REWRITE_RULE_STR_LEN_SUBSTR_IN_RANGE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_LEN_SUBSTR_UB1E", "CVC5_PROOF_REWRITE_RULE_STR_LEN_SUBSTR_UB1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_LEN_SUBSTR_UB2E", "CVC5_PROOF_REWRITE_RULE_STR_LEN_SUBSTR_UB2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_LEN_UPDATE_INVE", "CVC5_PROOF_REWRITE_RULE_STR_LEN_UPDATE_INV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_LEQ_CONCAT_FALSEE", "CVC5_PROOF_REWRITE_RULE_STR_LEQ_CONCAT_FALSE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_LEQ_CONCAT_TRUEE", "CVC5_PROOF_REWRITE_RULE_STR_LEQ_CONCAT_TRUE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_STR_LEQ_EMPTYE", "CVC5_PROOF_REWRITE_RULE_STR_LEQ_EMPTY"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_LEQ_EMPTY_EQE", "CVC5_PROOF_REWRITE_RULE_STR_LEQ_EMPTY_EQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_STR_LT_ELIME", "CVC5_PROOF_REWRITE_RULE_STR_LT_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_STR_PREFIXOF_ELIME", "CVC5_PROOF_REWRITE_RULE_STR_PREFIXOF_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_PREFIXOF_ONEE", "CVC5_PROOF_REWRITE_RULE_STR_PREFIXOF_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule51CVC5_PROOF_REWRITE_RULE_STR_REPLACE_ALL_NO_CONTAINSE", "CVC5_PROOF_REWRITE_RULE_STR_REPLACE_ALL_NO_CONTAINS"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_STR_REPLACE_CONTAINS_PREE", "CVC5_PROOF_REWRITE_RULE_STR_REPLACE_CONTAINS_PRE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_STR_REPLACE_EMPTYE", "CVC5_PROOF_REWRITE_RULE_STR_REPLACE_EMPTY"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_STR_REPLACE_NO_CONTAINSE", "CVC5_PROOF_REWRITE_RULE_STR_REPLACE_NO_CONTAINS"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_REPLACE_PREFIXE", "CVC5_PROOF_REWRITE_RULE_STR_REPLACE_PREFIX"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_STR_REPLACE_RE_ALL_NONEE", "CVC5_PROOF_REWRITE_RULE_STR_REPLACE_RE_ALL_NONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_REPLACE_RE_NONEE", "CVC5_PROOF_REWRITE_RULE_STR_REPLACE_RE_NONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_REPLACE_SELFE", "CVC5_PROOF_REWRITE_RULE_STR_REPLACE_SELF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_COMBINE1E", "CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_COMBINE1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_COMBINE2E", "CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_COMBINE2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_COMBINE3E", "CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_COMBINE3"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_COMBINE4E", "CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_COMBINE4"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_CONCAT1E", "CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_CONCAT1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_CONCAT2E", "CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_CONCAT2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EMPTY_RANGEE", "CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EMPTY_RANGE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EMPTY_STARTE", "CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EMPTY_START"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EMPTY_START_NEGE", "CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EMPTY_START_NEG"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EMPTY_STRE", "CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EMPTY_STR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EQ_EMPTYE", "CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EQ_EMPTY"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_FULLE", "CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_FULL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_FULL_EQE", "CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_FULL_EQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_LEN_INCLUDEE", "CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_LEN_INCLUDE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_LEN_INCLUDE_PREE", "CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_LEN_INCLUDE_PRE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_LEN_SKIPE", "CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_LEN_SKIP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_STR_SUFFIXOF_ELIME", "CVC5_PROOF_REWRITE_RULE_STR_SUFFIXOF_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_SUFFIXOF_ONEE", "CVC5_PROOF_REWRITE_RULE_STR_SUFFIXOF_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_STR_TO_INT_CONCAT_NEG_ONEE", "CVC5_PROOF_REWRITE_RULE_STR_TO_INT_CONCAT_NEG_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_TO_LOWER_CONCATE", "CVC5_PROOF_REWRITE_RULE_STR_TO_LOWER_CONCAT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_STR_TO_LOWER_FROM_INTE", "CVC5_PROOF_REWRITE_RULE_STR_TO_LOWER_FROM_INT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_TO_LOWER_LENE", "CVC5_PROOF_REWRITE_RULE_STR_TO_LOWER_LEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_TO_LOWER_UPPERE", "CVC5_PROOF_REWRITE_RULE_STR_TO_LOWER_UPPER"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_TO_UPPER_CONCATE", "CVC5_PROOF_REWRITE_RULE_STR_TO_UPPER_CONCAT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_STR_TO_UPPER_FROM_INTE", "CVC5_PROOF_REWRITE_RULE_STR_TO_UPPER_FROM_INT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_TO_UPPER_LENE", "CVC5_PROOF_REWRITE_RULE_STR_TO_UPPER_LEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_TO_UPPER_LOWERE", "CVC5_PROOF_REWRITE_RULE_STR_TO_UPPER_LOWER"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_UF_BV2NAT_GEQ_ELIME", "CVC5_PROOF_REWRITE_RULE_UF_BV2NAT_GEQ_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_UF_BV2NAT_INT2BVE", "CVC5_PROOF_REWRITE_RULE_UF_BV2NAT_INT2BV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_UF_BV2NAT_INT2BV_EXTENDE", "CVC5_PROOF_REWRITE_RULE_UF_BV2NAT_INT2BV_EXTEND"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_UF_BV2NAT_INT2BV_EXTRACTE", "CVC5_PROOF_REWRITE_RULE_UF_BV2NAT_INT2BV_EXTRACT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_UF_INT2BV_BV2NATE", "CVC5_PROOF_REWRITE_RULE_UF_INT2BV_BV2NAT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_UF_INT2BV_BVULE_EQUIVE", "CVC5_PROOF_REWRITE_RULE_UF_INT2BV_BVULE_EQUIV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_UF_INT2BV_BVULT_EQUIVE", "CVC5_PROOF_REWRITE_RULE_UF_INT2BV_BVULT_EQUIV"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule24CVC5_PROOF_RULE_ACI_NORME", "CVC5_PROOF_RULE_ACI_NORM"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_ALETHE_RULEE", "CVC5_PROOF_RULE_ALETHE_RULE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_ALPHA_EQUIVE", "CVC5_PROOF_RULE_ALPHA_EQUIV"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule24CVC5_PROOF_RULE_AND_ELIME", "CVC5_PROOF_RULE_AND_ELIM"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_AND_INTROE", "CVC5_PROOF_RULE_AND_INTRO"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule41CVC5_PROOF_RULE_ARITH_MULT_ABS_COMPARISONE", "CVC5_PROOF_RULE_ARITH_MULT_ABS_COMPARISON"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_ARITH_MULT_NEGE", "CVC5_PROOF_RULE_ARITH_MULT_NEG"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_ARITH_MULT_POSE", "CVC5_PROOF_RULE_ARITH_MULT_POS"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_ARITH_MULT_SIGNE", "CVC5_PROOF_RULE_ARITH_MULT_SIGN"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule34CVC5_PROOF_RULE_ARITH_MULT_TANGENTE", "CVC5_PROOF_RULE_ARITH_MULT_TANGENT"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_ARITH_POLY_NORME", "CVC5_PROOF_RULE_ARITH_POLY_NORM"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule35CVC5_PROOF_RULE_ARITH_POLY_NORM_RELE", "CVC5_PROOF_RULE_ARITH_POLY_NORM_REL"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_ARITH_REDUCTIONE", "CVC5_PROOF_RULE_ARITH_REDUCTION"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_ARITH_SUM_UBE", "CVC5_PROOF_RULE_ARITH_SUM_UB"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule48CVC5_PROOF_RULE_ARITH_TRANS_EXP_APPROX_ABOVE_NEGE", "CVC5_PROOF_RULE_ARITH_TRANS_EXP_APPROX_ABOVE_NEG"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule48CVC5_PROOF_RULE_ARITH_TRANS_EXP_APPROX_ABOVE_POSE", "CVC5_PROOF_RULE_ARITH_TRANS_EXP_APPROX_ABOVE_POS"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule44CVC5_PROOF_RULE_ARITH_TRANS_EXP_APPROX_BELOWE", "CVC5_PROOF_RULE_ARITH_TRANS_EXP_APPROX_BELOW"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule35CVC5_PROOF_RULE_ARITH_TRANS_EXP_NEGE", "CVC5_PROOF_RULE_ARITH_TRANS_EXP_NEG"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule42CVC5_PROOF_RULE_ARITH_TRANS_EXP_POSITIVITYE", "CVC5_PROOF_RULE_ARITH_TRANS_EXP_POSITIVITY"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule41CVC5_PROOF_RULE_ARITH_TRANS_EXP_SUPER_LINE", "CVC5_PROOF_RULE_ARITH_TRANS_EXP_SUPER_LIN"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule36CVC5_PROOF_RULE_ARITH_TRANS_EXP_ZEROE", "CVC5_PROOF_RULE_ARITH_TRANS_EXP_ZERO"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_ARITH_TRANS_PIE", "CVC5_PROOF_RULE_ARITH_TRANS_PI"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule49CVC5_PROOF_RULE_ARITH_TRANS_SINE_APPROX_ABOVE_NEGE", "CVC5_PROOF_RULE_ARITH_TRANS_SINE_APPROX_ABOVE_NEG"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule49CVC5_PROOF_RULE_ARITH_TRANS_SINE_APPROX_ABOVE_POSE", "CVC5_PROOF_RULE_ARITH_TRANS_SINE_APPROX_ABOVE_POS"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule49CVC5_PROOF_RULE_ARITH_TRANS_SINE_APPROX_BELOW_NEGE", "CVC5_PROOF_RULE_ARITH_TRANS_SINE_APPROX_BELOW_NEG"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule49CVC5_PROOF_RULE_ARITH_TRANS_SINE_APPROX_BELOW_POSE", "CVC5_PROOF_RULE_ARITH_TRANS_SINE_APPROX_BELOW_POS"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule39CVC5_PROOF_RULE_ARITH_TRANS_SINE_BOUNDSE", "CVC5_PROOF_RULE_ARITH_TRANS_SINE_BOUNDS"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule38CVC5_PROOF_RULE_ARITH_TRANS_SINE_SHIFTE", "CVC5_PROOF_RULE_ARITH_TRANS_SINE_SHIFT"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule41CVC5_PROOF_RULE_ARITH_TRANS_SINE_SYMMETRYE", "CVC5_PROOF_RULE_ARITH_TRANS_SINE_SYMMETRY"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule43CVC5_PROOF_RULE_ARITH_TRANS_SINE_TANGENT_PIE", "CVC5_PROOF_RULE_ARITH_TRANS_SINE_TANGENT_PI"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule45CVC5_PROOF_RULE_ARITH_TRANS_SINE_TANGENT_ZEROE", "CVC5_PROOF_RULE_ARITH_TRANS_SINE_TANGENT_ZERO"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_ARITH_TRICHOTOMYE", "CVC5_PROOF_RULE_ARITH_TRICHOTOMY"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_ARRAYS_EXTE", "CVC5_PROOF_RULE_ARRAYS_EXT"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule38CVC5_PROOF_RULE_ARRAYS_READ_OVER_WRITEE", "CVC5_PROOF_RULE_ARRAYS_READ_OVER_WRITE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule40CVC5_PROOF_RULE_ARRAYS_READ_OVER_WRITE_1E", "CVC5_PROOF_RULE_ARRAYS_READ_OVER_WRITE_1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule45CVC5_PROOF_RULE_ARRAYS_READ_OVER_WRITE_CONTRAE", "CVC5_PROOF_RULE_ARRAYS_READ_OVER_WRITE_CONTRA"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule22CVC5_PROOF_RULE_ASSUMEE", "CVC5_PROOF_RULE_ASSUME"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_BV_BITBLAST_STEPE", "CVC5_PROOF_RULE_BV_BITBLAST_STEP"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_BV_EAGER_ATOME", "CVC5_PROOF_RULE_BV_EAGER_ATOM"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_CHAIN_RESOLUTIONE", "CVC5_PROOF_RULE_CHAIN_RESOLUTION"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_CNF_AND_NEGE", "CVC5_PROOF_RULE_CNF_AND_NEG"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_CNF_AND_POSE", "CVC5_PROOF_RULE_CNF_AND_POS"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_CNF_EQUIV_NEG1E", "CVC5_PROOF_RULE_CNF_EQUIV_NEG1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_CNF_EQUIV_NEG2E", "CVC5_PROOF_RULE_CNF_EQUIV_NEG2"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_CNF_EQUIV_POS1E", "CVC5_PROOF_RULE_CNF_EQUIV_POS1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_CNF_EQUIV_POS2E", "CVC5_PROOF_RULE_CNF_EQUIV_POS2"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_CNF_IMPLIES_NEG1E", "CVC5_PROOF_RULE_CNF_IMPLIES_NEG1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_CNF_IMPLIES_NEG2E", "CVC5_PROOF_RULE_CNF_IMPLIES_NEG2"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_CNF_IMPLIES_POSE", "CVC5_PROOF_RULE_CNF_IMPLIES_POS"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_ITE_NEG1E", "CVC5_PROOF_RULE_CNF_ITE_NEG1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_ITE_NEG2E", "CVC5_PROOF_RULE_CNF_ITE_NEG2"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_ITE_NEG3E", "CVC5_PROOF_RULE_CNF_ITE_NEG3"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_ITE_POS1E", "CVC5_PROOF_RULE_CNF_ITE_POS1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_ITE_POS2E", "CVC5_PROOF_RULE_CNF_ITE_POS2"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_ITE_POS3E", "CVC5_PROOF_RULE_CNF_ITE_POS3"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_CNF_OR_NEGE", "CVC5_PROOF_RULE_CNF_OR_NEG"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_CNF_OR_POSE", "CVC5_PROOF_RULE_CNF_OR_POS"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_XOR_NEG1E", "CVC5_PROOF_RULE_CNF_XOR_NEG1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_XOR_NEG2E", "CVC5_PROOF_RULE_CNF_XOR_NEG2"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_XOR_POS1E", "CVC5_PROOF_RULE_CNF_XOR_POS1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_XOR_POS2E", "CVC5_PROOF_RULE_CNF_XOR_POS2"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_CONCAT_CONFLICTE", "CVC5_PROOF_RULE_CONCAT_CONFLICT"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule35CVC5_PROOF_RULE_CONCAT_CONFLICT_DEQE", "CVC5_PROOF_RULE_CONCAT_CONFLICT_DEQ"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CONCAT_CPROPE", "CVC5_PROOF_RULE_CONCAT_CPROP"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_CONCAT_CSPLITE", "CVC5_PROOF_RULE_CONCAT_CSPLIT"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_CONCAT_EQE", "CVC5_PROOF_RULE_CONCAT_EQ"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CONCAT_LPROPE", "CVC5_PROOF_RULE_CONCAT_LPROP"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CONCAT_SPLITE", "CVC5_PROOF_RULE_CONCAT_SPLIT"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CONCAT_UNIFYE", "CVC5_PROOF_RULE_CONCAT_UNIFY"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule20CVC5_PROOF_RULE_CONGE", "CVC5_PROOF_RULE_CONG"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule22CVC5_PROOF_RULE_CONTRAE", "CVC5_PROOF_RULE_CONTRA"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_DRAT_REFUTATIONE", "CVC5_PROOF_RULE_DRAT_REFUTATION"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_DSL_REWRITEE", "CVC5_PROOF_RULE_DSL_REWRITE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule24CVC5_PROOF_RULE_DT_CLASHE", "CVC5_PROOF_RULE_DT_CLASH"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule24CVC5_PROOF_RULE_DT_SPLITE", "CVC5_PROOF_RULE_DT_SPLIT"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_ENCODE_EQ_INTROE", "CVC5_PROOF_RULE_ENCODE_EQ_INTRO"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_EQUIV_ELIM1E", "CVC5_PROOF_RULE_EQUIV_ELIM1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_EQUIV_ELIM2E", "CVC5_PROOF_RULE_EQUIV_ELIM2"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_EQ_RESOLVEE", "CVC5_PROOF_RULE_EQ_RESOLVE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule24CVC5_PROOF_RULE_EVALUATEE", "CVC5_PROOF_RULE_EVALUATE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_FACTORINGE", "CVC5_PROOF_RULE_FACTORING"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_FALSE_ELIME", "CVC5_PROOF_RULE_FALSE_ELIM"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_FALSE_INTROE", "CVC5_PROOF_RULE_FALSE_INTRO"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_HO_APP_ENCODEE", "CVC5_PROOF_RULE_HO_APP_ENCODE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule23CVC5_PROOF_RULE_HO_CONGE", "CVC5_PROOF_RULE_HO_CONG"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_IMPLIES_ELIME", "CVC5_PROOF_RULE_IMPLIES_ELIM"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_INSTANTIATEE", "CVC5_PROOF_RULE_INSTANTIATE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_INT_TIGHT_LBE", "CVC5_PROOF_RULE_INT_TIGHT_LB"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_INT_TIGHT_UBE", "CVC5_PROOF_RULE_INT_TIGHT_UB"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_ITE_ELIM1E", "CVC5_PROOF_RULE_ITE_ELIM1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_ITE_ELIM2E", "CVC5_PROOF_RULE_ITE_ELIM2"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule22CVC5_PROOF_RULE_ITE_EQE", "CVC5_PROOF_RULE_ITE_EQ"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule20CVC5_PROOF_RULE_LASTE", "CVC5_PROOF_RULE_LAST"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_LFSC_RULEE", "CVC5_PROOF_RULE_LFSC_RULE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule40CVC5_PROOF_RULE_MACRO_ARITH_SCALE_SUM_UBE", "CVC5_PROOF_RULE_MACRO_ARITH_SCALE_SUM_UB"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule33CVC5_PROOF_RULE_MACRO_BV_BITBLASTE", "CVC5_PROOF_RULE_MACRO_BV_BITBLAST"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_MACRO_RESOLUTIONE", "CVC5_PROOF_RULE_MACRO_RESOLUTION"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule38CVC5_PROOF_RULE_MACRO_RESOLUTION_TRUSTE", "CVC5_PROOF_RULE_MACRO_RESOLUTION_TRUST"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_MACRO_REWRITEE", "CVC5_PROOF_RULE_MACRO_REWRITE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule33CVC5_PROOF_RULE_MACRO_SR_EQ_INTROE", "CVC5_PROOF_RULE_MACRO_SR_EQ_INTRO"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule34CVC5_PROOF_RULE_MACRO_SR_PRED_ELIME", "CVC5_PROOF_RULE_MACRO_SR_PRED_ELIM"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule35CVC5_PROOF_RULE_MACRO_SR_PRED_INTROE", "CVC5_PROOF_RULE_MACRO_SR_PRED_INTRO"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule39CVC5_PROOF_RULE_MACRO_SR_PRED_TRANSFORME", "CVC5_PROOF_RULE_MACRO_SR_PRED_TRANSFORM"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule38CVC5_PROOF_RULE_MACRO_STRING_INFERENCEE", "CVC5_PROOF_RULE_MACRO_STRING_INFERENCE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_MODUS_PONENSE", "CVC5_PROOF_RULE_MODUS_PONENS"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_NARY_CONGE", "CVC5_PROOF_RULE_NARY_CONG"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule23CVC5_PROOF_RULE_NOT_ANDE", "CVC5_PROOF_RULE_NOT_AND"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_NOT_EQUIV_ELIM1E", "CVC5_PROOF_RULE_NOT_EQUIV_ELIM1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_NOT_EQUIV_ELIM2E", "CVC5_PROOF_RULE_NOT_EQUIV_ELIM2"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule33CVC5_PROOF_RULE_NOT_IMPLIES_ELIM1E", "CVC5_PROOF_RULE_NOT_IMPLIES_ELIM1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule33CVC5_PROOF_RULE_NOT_IMPLIES_ELIM2E", "CVC5_PROOF_RULE_NOT_IMPLIES_ELIM2"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_NOT_ITE_ELIM1E", "CVC5_PROOF_RULE_NOT_ITE_ELIM1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_NOT_ITE_ELIM2E", "CVC5_PROOF_RULE_NOT_ITE_ELIM2"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_NOT_NOT_ELIME", "CVC5_PROOF_RULE_NOT_NOT_ELIM"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_NOT_OR_ELIME", "CVC5_PROOF_RULE_NOT_OR_ELIM"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_NOT_XOR_ELIM1E", "CVC5_PROOF_RULE_NOT_XOR_ELIM1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_NOT_XOR_ELIM2E", "CVC5_PROOF_RULE_NOT_XOR_ELIM2"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule36CVC5_PROOF_RULE_QUANT_VAR_REORDERINGE", "CVC5_PROOF_RULE_QUANT_VAR_REORDERING"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule20CVC5_PROOF_RULE_REFLE", "CVC5_PROOF_RULE_REFL"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_REORDERINGE", "CVC5_PROOF_RULE_REORDERING"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_RESOLUTIONE", "CVC5_PROOF_RULE_RESOLUTION"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule24CVC5_PROOF_RULE_RE_INTERE", "CVC5_PROOF_RULE_RE_INTER"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_RE_UNFOLD_NEGE", "CVC5_PROOF_RULE_RE_UNFOLD_NEG"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule42CVC5_PROOF_RULE_RE_UNFOLD_NEG_CONCAT_FIXEDE", "CVC5_PROOF_RULE_RE_UNFOLD_NEG_CONCAT_FIXED"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_RE_UNFOLD_POSE", "CVC5_PROOF_RULE_RE_UNFOLD_POS"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule34CVC5_PROOF_RULE_SAT_EXTERNAL_PROVEE", "CVC5_PROOF_RULE_SAT_EXTERNAL_PROVE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_SAT_REFUTATIONE", "CVC5_PROOF_RULE_SAT_REFUTATION"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule21CVC5_PROOF_RULE_SCOPEE", "CVC5_PROOF_RULE_SCOPE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule24CVC5_PROOF_RULE_SETS_EXTE", "CVC5_PROOF_RULE_SETS_EXT"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_SETS_FILTER_DOWNE", "CVC5_PROOF_RULE_SETS_FILTER_DOWN"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_SETS_FILTER_UPE", "CVC5_PROOF_RULE_SETS_FILTER_UP"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule34CVC5_PROOF_RULE_SETS_SINGLETON_INJE", "CVC5_PROOF_RULE_SETS_SINGLETON_INJ"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_SKOLEMIZEE", "CVC5_PROOF_RULE_SKOLEMIZE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_SKOLEM_INTROE", "CVC5_PROOF_RULE_SKOLEM_INTRO"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule21CVC5_PROOF_RULE_SPLITE", "CVC5_PROOF_RULE_SPLIT"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_STRING_CODE_INJE", "CVC5_PROOF_RULE_STRING_CODE_INJ"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_STRING_DECOMPOSEE", "CVC5_PROOF_RULE_STRING_DECOMPOSE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule38CVC5_PROOF_RULE_STRING_EAGER_REDUCTIONE", "CVC5_PROOF_RULE_STRING_EAGER_REDUCTION"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_STRING_EXTE", "CVC5_PROOF_RULE_STRING_EXT"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule39CVC5_PROOF_RULE_STRING_LENGTH_NON_EMPTYE", "CVC5_PROOF_RULE_STRING_LENGTH_NON_EMPTY"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule33CVC5_PROOF_RULE_STRING_LENGTH_POSE", "CVC5_PROOF_RULE_STRING_LENGTH_POS"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_STRING_REDUCTIONE", "CVC5_PROOF_RULE_STRING_REDUCTION"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule35CVC5_PROOF_RULE_STRING_SEQ_UNIT_INJE", "CVC5_PROOF_RULE_STRING_SEQ_UNIT_INJ"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule20CVC5_PROOF_RULE_SUBSE", "CVC5_PROOF_RULE_SUBS"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule20CVC5_PROOF_RULE_SYMME", "CVC5_PROOF_RULE_SYMM"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_THEORY_REWRITEE", "CVC5_PROOF_RULE_THEORY_REWRITE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule21CVC5_PROOF_RULE_TRANSE", "CVC5_PROOF_RULE_TRANS"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_TRUE_ELIME", "CVC5_PROOF_RULE_TRUE_ELIM"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_TRUE_INTROE", "CVC5_PROOF_RULE_TRUE_INTRO"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule21CVC5_PROOF_RULE_TRUSTE", "CVC5_PROOF_RULE_TRUST"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule36CVC5_PROOF_RULE_TRUST_THEORY_REWRITEE", "CVC5_PROOF_RULE_TRUST_THEORY_REWRITE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule23CVC5_PROOF_RULE_UNKNOWNE", "CVC5_PROOF_RULE_UNKNOWN"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_XOR_ELIM1E", "CVC5_PROOF_RULE_XOR_ELIM1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_XOR_ELIM2E", "CVC5_PROOF_RULE_XOR_ELIM2"], [4, 0, 1, "_CPPv4N16Cvc5RoundingMode12CVC5_RM_LASTE", "CVC5_RM_LAST"], [4, 0, 1, "_CPPv4N16Cvc5RoundingMode34CVC5_RM_ROUND_NEAREST_TIES_TO_AWAYE", "CVC5_RM_ROUND_NEAREST_TIES_TO_AWAY"], [4, 0, 1, "_CPPv4N16Cvc5RoundingMode34CVC5_RM_ROUND_NEAREST_TIES_TO_EVENE", "CVC5_RM_ROUND_NEAREST_TIES_TO_EVEN"], [4, 0, 1, "_CPPv4N16Cvc5RoundingMode29CVC5_RM_ROUND_TOWARD_NEGATIVEE", "CVC5_RM_ROUND_TOWARD_NEGATIVE"], [4, 0, 1, "_CPPv4N16Cvc5RoundingMode29CVC5_RM_ROUND_TOWARD_POSITIVEE", "CVC5_RM_ROUND_TOWARD_POSITIVE"], [4, 0, 1, "_CPPv4N16Cvc5RoundingMode25CVC5_RM_ROUND_TOWARD_ZEROE", "CVC5_RM_ROUND_TOWARD_ZERO"], [5, 0, 1, "_CPPv4N12Cvc5SortKind28CVC5_SORT_KIND_ABSTRACT_SORTE", "CVC5_SORT_KIND_ABSTRACT_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind25CVC5_SORT_KIND_ARRAY_SORTE", "CVC5_SORT_KIND_ARRAY_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind23CVC5_SORT_KIND_BAG_SORTE", "CVC5_SORT_KIND_BAG_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind29CVC5_SORT_KIND_BITVECTOR_SORTE", "CVC5_SORT_KIND_BITVECTOR_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind27CVC5_SORT_KIND_BOOLEAN_SORTE", "CVC5_SORT_KIND_BOOLEAN_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind28CVC5_SORT_KIND_DATATYPE_SORTE", "CVC5_SORT_KIND_DATATYPE_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind32CVC5_SORT_KIND_FINITE_FIELD_SORTE", "CVC5_SORT_KIND_FINITE_FIELD_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind33CVC5_SORT_KIND_FLOATINGPOINT_SORTE", "CVC5_SORT_KIND_FLOATINGPOINT_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind28CVC5_SORT_KIND_FUNCTION_SORTE", "CVC5_SORT_KIND_FUNCTION_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind27CVC5_SORT_KIND_INTEGER_SORTE", "CVC5_SORT_KIND_INTEGER_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind33CVC5_SORT_KIND_INTERNAL_SORT_KINDE", "CVC5_SORT_KIND_INTERNAL_SORT_KIND"], [5, 0, 1, "_CPPv4N12Cvc5SortKind29CVC5_SORT_KIND_LAST_SORT_KINDE", "CVC5_SORT_KIND_LAST_SORT_KIND"], [5, 0, 1, "_CPPv4N12Cvc5SortKind28CVC5_SORT_KIND_NULLABLE_SORTE", "CVC5_SORT_KIND_NULLABLE_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind24CVC5_SORT_KIND_NULL_SORTE", "CVC5_SORT_KIND_NULL_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind24CVC5_SORT_KIND_REAL_SORTE", "CVC5_SORT_KIND_REAL_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind26CVC5_SORT_KIND_REGLAN_SORTE", "CVC5_SORT_KIND_REGLAN_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind32CVC5_SORT_KIND_ROUNDINGMODE_SORTE", "CVC5_SORT_KIND_ROUNDINGMODE_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind28CVC5_SORT_KIND_SEQUENCE_SORTE", "CVC5_SORT_KIND_SEQUENCE_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind23CVC5_SORT_KIND_SET_SORTE", "CVC5_SORT_KIND_SET_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind26CVC5_SORT_KIND_STRING_SORTE", "CVC5_SORT_KIND_STRING_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind25CVC5_SORT_KIND_TUPLE_SORTE", "CVC5_SORT_KIND_TUPLE_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind34CVC5_SORT_KIND_UNDEFINED_SORT_KINDE", "CVC5_SORT_KIND_UNDEFINED_SORT_KIND"], [5, 0, 1, "_CPPv4N12Cvc5SortKind33CVC5_SORT_KIND_UNINTERPRETED_SORTE", "CVC5_SORT_KIND_UNINTERPRETED_SORT"], [6, 0, 1, "_CPPv4N22Cvc5UnknownExplanation35CVC5_UNKNOWN_EXPLANATION_INCOMPLETEE", "CVC5_UNKNOWN_EXPLANATION_INCOMPLETE"], [6, 0, 1, "_CPPv4N22Cvc5UnknownExplanation36CVC5_UNKNOWN_EXPLANATION_INTERRUPTEDE", "CVC5_UNKNOWN_EXPLANATION_INTERRUPTED"], [6, 0, 1, "_CPPv4N22Cvc5UnknownExplanation29CVC5_UNKNOWN_EXPLANATION_LASTE", "CVC5_UNKNOWN_EXPLANATION_LAST"], [6, 0, 1, "_CPPv4N22Cvc5UnknownExplanation31CVC5_UNKNOWN_EXPLANATION_MEMOUTE", "CVC5_UNKNOWN_EXPLANATION_MEMOUT"], [6, 0, 1, "_CPPv4N22Cvc5UnknownExplanation30CVC5_UNKNOWN_EXPLANATION_OTHERE", "CVC5_UNKNOWN_EXPLANATION_OTHER"], [6, 0, 1, "_CPPv4N22Cvc5UnknownExplanation45CVC5_UNKNOWN_EXPLANATION_REQUIRES_CHECK_AGAINE", "CVC5_UNKNOWN_EXPLANATION_REQUIRES_CHECK_AGAIN"], [6, 0, 1, "_CPPv4N22Cvc5UnknownExplanation44CVC5_UNKNOWN_EXPLANATION_REQUIRES_FULL_CHECKE", "CVC5_UNKNOWN_EXPLANATION_REQUIRES_FULL_CHECK"], [6, 0, 1, "_CPPv4N22Cvc5UnknownExplanation36CVC5_UNKNOWN_EXPLANATION_RESOURCEOUTE", "CVC5_UNKNOWN_EXPLANATION_RESOURCEOUT"], [6, 0, 1, "_CPPv4N22Cvc5UnknownExplanation32CVC5_UNKNOWN_EXPLANATION_TIMEOUTE", "CVC5_UNKNOWN_EXPLANATION_TIMEOUT"], [6, 0, 1, "_CPPv4N22Cvc5UnknownExplanation39CVC5_UNKNOWN_EXPLANATION_UNKNOWN_REASONE", "CVC5_UNKNOWN_EXPLANATION_UNKNOWN_REASON"], [6, 0, 1, "_CPPv4N22Cvc5UnknownExplanation36CVC5_UNKNOWN_EXPLANATION_UNSUPPORTEDE", "CVC5_UNKNOWN_EXPLANATION_UNSUPPORTED"], [11, 1, 1, "_CPPv44Cvc5", "Cvc5"], [7, 2, 1, "_CPPv419Cvc5BlockModelsMode", "Cvc5BlockModelsMode"], [7, 0, 1, "_CPPv4N19Cvc5BlockModelsMode27CVC5_BLOCK_MODELS_MODE_LASTE", "Cvc5BlockModelsMode::CVC5_BLOCK_MODELS_MODE_LAST"], [7, 0, 1, "_CPPv4N19Cvc5BlockModelsMode31CVC5_BLOCK_MODELS_MODE_LITERALSE", "Cvc5BlockModelsMode::CVC5_BLOCK_MODELS_MODE_LITERALS"], [7, 0, 1, "_CPPv4N19Cvc5BlockModelsMode29CVC5_BLOCK_MODELS_MODE_VALUESE", "Cvc5BlockModelsMode::CVC5_BLOCK_MODELS_MODE_VALUES"], [12, 1, 1, "_CPPv411Cvc5Command", "Cvc5Command"], [13, 1, 1, "_CPPv412Cvc5Datatype", "Cvc5Datatype"], [14, 1, 1, "_CPPv423Cvc5DatatypeConstructor", "Cvc5DatatypeConstructor"], [15, 1, 1, "_CPPv427Cvc5DatatypeConstructorDecl", "Cvc5DatatypeConstructorDecl"], [16, 1, 1, "_CPPv416Cvc5DatatypeDecl", "Cvc5DatatypeDecl"], [17, 1, 1, "_CPPv420Cvc5DatatypeSelector", "Cvc5DatatypeSelector"], [7, 2, 1, "_CPPv419Cvc5FindSynthTarget", "Cvc5FindSynthTarget"], [7, 0, 1, "_CPPv4N19Cvc5FindSynthTarget27CVC5_FIND_SYNTH_TARGET_ENUME", "Cvc5FindSynthTarget::CVC5_FIND_SYNTH_TARGET_ENUM"], [7, 0, 1, "_CPPv4N19Cvc5FindSynthTarget27CVC5_FIND_SYNTH_TARGET_LASTE", "Cvc5FindSynthTarget::CVC5_FIND_SYNTH_TARGET_LAST"], [7, 0, 1, "_CPPv4N19Cvc5FindSynthTarget28CVC5_FIND_SYNTH_TARGET_QUERYE", "Cvc5FindSynthTarget::CVC5_FIND_SYNTH_TARGET_QUERY"], [7, 0, 1, "_CPPv4N19Cvc5FindSynthTarget30CVC5_FIND_SYNTH_TARGET_REWRITEE", "Cvc5FindSynthTarget::CVC5_FIND_SYNTH_TARGET_REWRITE"], [7, 0, 1, "_CPPv4N19Cvc5FindSynthTarget36CVC5_FIND_SYNTH_TARGET_REWRITE_INPUTE", "Cvc5FindSynthTarget::CVC5_FIND_SYNTH_TARGET_REWRITE_INPUT"], [7, 0, 1, "_CPPv4N19Cvc5FindSynthTarget38CVC5_FIND_SYNTH_TARGET_REWRITE_UNSOUNDE", "Cvc5FindSynthTarget::CVC5_FIND_SYNTH_TARGET_REWRITE_UNSOUND"], [18, 1, 1, "_CPPv411Cvc5Grammar", "Cvc5Grammar"], [19, 1, 1, "_CPPv415Cvc5InputParser", "Cvc5InputParser"], [2, 2, 1, "_CPPv48Cvc5Kind", "Cvc5Kind"], [2, 0, 1, "_CPPv4N8Cvc5Kind13CVC5_KIND_ABSE", "Cvc5Kind::CVC5_KIND_ABS"], [2, 0, 1, "_CPPv4N8Cvc5Kind13CVC5_KIND_ADDE", "Cvc5Kind::CVC5_KIND_ADD"], [2, 0, 1, "_CPPv4N8Cvc5Kind13CVC5_KIND_ANDE", "Cvc5Kind::CVC5_KIND_AND"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_APPLY_CONSTRUCTORE", "Cvc5Kind::CVC5_KIND_APPLY_CONSTRUCTOR"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_APPLY_SELECTORE", "Cvc5Kind::CVC5_KIND_APPLY_SELECTOR"], [2, 0, 1, "_CPPv4N8Cvc5Kind22CVC5_KIND_APPLY_TESTERE", "Cvc5Kind::CVC5_KIND_APPLY_TESTER"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_APPLY_UFE", "Cvc5Kind::CVC5_KIND_APPLY_UF"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_APPLY_UPDATERE", "Cvc5Kind::CVC5_KIND_APPLY_UPDATER"], [2, 0, 1, "_CPPv4N8Cvc5Kind21CVC5_KIND_ARCCOSECANTE", "Cvc5Kind::CVC5_KIND_ARCCOSECANT"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_ARCCOSINEE", "Cvc5Kind::CVC5_KIND_ARCCOSINE"], [2, 0, 1, "_CPPv4N8Cvc5Kind22CVC5_KIND_ARCCOTANGENTE", "Cvc5Kind::CVC5_KIND_ARCCOTANGENT"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_ARCSECANTE", "Cvc5Kind::CVC5_KIND_ARCSECANT"], [2, 0, 1, "_CPPv4N8Cvc5Kind17CVC5_KIND_ARCSINEE", "Cvc5Kind::CVC5_KIND_ARCSINE"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_ARCTANGENTE", "Cvc5Kind::CVC5_KIND_ARCTANGENT"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_BAG_CARDE", "Cvc5Kind::CVC5_KIND_BAG_CARD"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_BAG_CHOOSEE", "Cvc5Kind::CVC5_KIND_BAG_CHOOSE"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_BAG_COUNTE", "Cvc5Kind::CVC5_KIND_BAG_COUNT"], [2, 0, 1, "_CPPv4N8Cvc5Kind31CVC5_KIND_BAG_DIFFERENCE_REMOVEE", "Cvc5Kind::CVC5_KIND_BAG_DIFFERENCE_REMOVE"], [2, 0, 1, "_CPPv4N8Cvc5Kind33CVC5_KIND_BAG_DIFFERENCE_SUBTRACTE", "Cvc5Kind::CVC5_KIND_BAG_DIFFERENCE_SUBTRACT"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_BAG_EMPTYE", "Cvc5Kind::CVC5_KIND_BAG_EMPTY"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_BAG_FILTERE", "Cvc5Kind::CVC5_KIND_BAG_FILTER"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_BAG_FOLDE", "Cvc5Kind::CVC5_KIND_BAG_FOLD"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BAG_INTER_MINE", "Cvc5Kind::CVC5_KIND_BAG_INTER_MIN"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_BAG_MAKEE", "Cvc5Kind::CVC5_KIND_BAG_MAKE"], [2, 0, 1, "_CPPv4N8Cvc5Kind17CVC5_KIND_BAG_MAPE", "Cvc5Kind::CVC5_KIND_BAG_MAP"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_BAG_MEMBERE", "Cvc5Kind::CVC5_KIND_BAG_MEMBER"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BAG_PARTITIONE", "Cvc5Kind::CVC5_KIND_BAG_PARTITION"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_BAG_SETOFE", "Cvc5Kind::CVC5_KIND_BAG_SETOF"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_BAG_SUBBAGE", "Cvc5Kind::CVC5_KIND_BAG_SUBBAG"], [2, 0, 1, "_CPPv4N8Cvc5Kind28CVC5_KIND_BAG_UNION_DISJOINTE", "Cvc5Kind::CVC5_KIND_BAG_UNION_DISJOINT"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BAG_UNION_MAXE", "Cvc5Kind::CVC5_KIND_BAG_UNION_MAX"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_ADDE", "Cvc5Kind::CVC5_KIND_BITVECTOR_ADD"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_ANDE", "Cvc5Kind::CVC5_KIND_BITVECTOR_AND"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_ASHRE", "Cvc5Kind::CVC5_KIND_BITVECTOR_ASHR"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_BITE", "Cvc5Kind::CVC5_KIND_BITVECTOR_BIT"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_COMPE", "Cvc5Kind::CVC5_KIND_BITVECTOR_COMP"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_BITVECTOR_CONCATE", "Cvc5Kind::CVC5_KIND_BITVECTOR_CONCAT"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_BITVECTOR_EXTRACTE", "Cvc5Kind::CVC5_KIND_BITVECTOR_EXTRACT"], [2, 0, 1, "_CPPv4N8Cvc5Kind30CVC5_KIND_BITVECTOR_FROM_BOOLSE", "Cvc5Kind::CVC5_KIND_BITVECTOR_FROM_BOOLS"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_ITEE", "Cvc5Kind::CVC5_KIND_BITVECTOR_ITE"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_LSHRE", "Cvc5Kind::CVC5_KIND_BITVECTOR_LSHR"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_MULTE", "Cvc5Kind::CVC5_KIND_BITVECTOR_MULT"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_NANDE", "Cvc5Kind::CVC5_KIND_BITVECTOR_NAND"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_NEGE", "Cvc5Kind::CVC5_KIND_BITVECTOR_NEG"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_NEGOE", "Cvc5Kind::CVC5_KIND_BITVECTOR_NEGO"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_NORE", "Cvc5Kind::CVC5_KIND_BITVECTOR_NOR"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_NOTE", "Cvc5Kind::CVC5_KIND_BITVECTOR_NOT"], [2, 0, 1, "_CPPv4N8Cvc5Kind22CVC5_KIND_BITVECTOR_ORE", "Cvc5Kind::CVC5_KIND_BITVECTOR_OR"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_BITVECTOR_REDANDE", "Cvc5Kind::CVC5_KIND_BITVECTOR_REDAND"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_REDORE", "Cvc5Kind::CVC5_KIND_BITVECTOR_REDOR"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_BITVECTOR_REPEATE", "Cvc5Kind::CVC5_KIND_BITVECTOR_REPEAT"], [2, 0, 1, "_CPPv4N8Cvc5Kind31CVC5_KIND_BITVECTOR_ROTATE_LEFTE", "Cvc5Kind::CVC5_KIND_BITVECTOR_ROTATE_LEFT"], [2, 0, 1, "_CPPv4N8Cvc5Kind32CVC5_KIND_BITVECTOR_ROTATE_RIGHTE", "Cvc5Kind::CVC5_KIND_BITVECTOR_ROTATE_RIGHT"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_SADDOE", "Cvc5Kind::CVC5_KIND_BITVECTOR_SADDO"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_SDIVE", "Cvc5Kind::CVC5_KIND_BITVECTOR_SDIV"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_SDIVOE", "Cvc5Kind::CVC5_KIND_BITVECTOR_SDIVO"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_SGEE", "Cvc5Kind::CVC5_KIND_BITVECTOR_SGE"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_SGTE", "Cvc5Kind::CVC5_KIND_BITVECTOR_SGT"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_SHLE", "Cvc5Kind::CVC5_KIND_BITVECTOR_SHL"], [2, 0, 1, "_CPPv4N8Cvc5Kind31CVC5_KIND_BITVECTOR_SIGN_EXTENDE", "Cvc5Kind::CVC5_KIND_BITVECTOR_SIGN_EXTEND"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_SLEE", "Cvc5Kind::CVC5_KIND_BITVECTOR_SLE"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_SLTE", "Cvc5Kind::CVC5_KIND_BITVECTOR_SLT"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_SLTBVE", "Cvc5Kind::CVC5_KIND_BITVECTOR_SLTBV"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_SMODE", "Cvc5Kind::CVC5_KIND_BITVECTOR_SMOD"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_SMULOE", "Cvc5Kind::CVC5_KIND_BITVECTOR_SMULO"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_SREME", "Cvc5Kind::CVC5_KIND_BITVECTOR_SREM"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_SSUBOE", "Cvc5Kind::CVC5_KIND_BITVECTOR_SSUBO"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_SUBE", "Cvc5Kind::CVC5_KIND_BITVECTOR_SUB"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_BITVECTOR_TO_NATE", "Cvc5Kind::CVC5_KIND_BITVECTOR_TO_NAT"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_UADDOE", "Cvc5Kind::CVC5_KIND_BITVECTOR_UADDO"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_UDIVE", "Cvc5Kind::CVC5_KIND_BITVECTOR_UDIV"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_UGEE", "Cvc5Kind::CVC5_KIND_BITVECTOR_UGE"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_UGTE", "Cvc5Kind::CVC5_KIND_BITVECTOR_UGT"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_ULEE", "Cvc5Kind::CVC5_KIND_BITVECTOR_ULE"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_ULTE", "Cvc5Kind::CVC5_KIND_BITVECTOR_ULT"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_ULTBVE", "Cvc5Kind::CVC5_KIND_BITVECTOR_ULTBV"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_UMULOE", "Cvc5Kind::CVC5_KIND_BITVECTOR_UMULO"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_UREME", "Cvc5Kind::CVC5_KIND_BITVECTOR_UREM"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_USUBOE", "Cvc5Kind::CVC5_KIND_BITVECTOR_USUBO"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_XNORE", "Cvc5Kind::CVC5_KIND_BITVECTOR_XNOR"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_XORE", "Cvc5Kind::CVC5_KIND_BITVECTOR_XOR"], [2, 0, 1, "_CPPv4N8Cvc5Kind31CVC5_KIND_BITVECTOR_ZERO_EXTENDE", "Cvc5Kind::CVC5_KIND_BITVECTOR_ZERO_EXTEND"], [2, 0, 1, "_CPPv4N8Cvc5Kind32CVC5_KIND_CARDINALITY_CONSTRAINTE", "Cvc5Kind::CVC5_KIND_CARDINALITY_CONSTRAINT"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_CONSTANTE", "Cvc5Kind::CVC5_KIND_CONSTANT"], [2, 0, 1, "_CPPv4N8Cvc5Kind21CVC5_KIND_CONST_ARRAYE", "Cvc5Kind::CVC5_KIND_CONST_ARRAY"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_CONST_BITVECTORE", "Cvc5Kind::CVC5_KIND_CONST_BITVECTOR"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_CONST_BOOLEANE", "Cvc5Kind::CVC5_KIND_CONST_BOOLEAN"], [2, 0, 1, "_CPPv4N8Cvc5Kind28CVC5_KIND_CONST_FINITE_FIELDE", "Cvc5Kind::CVC5_KIND_CONST_FINITE_FIELD"], [2, 0, 1, "_CPPv4N8Cvc5Kind29CVC5_KIND_CONST_FLOATINGPOINTE", "Cvc5Kind::CVC5_KIND_CONST_FLOATINGPOINT"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_CONST_INTEGERE", "Cvc5Kind::CVC5_KIND_CONST_INTEGER"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_CONST_RATIONALE", "Cvc5Kind::CVC5_KIND_CONST_RATIONAL"], [2, 0, 1, "_CPPv4N8Cvc5Kind28CVC5_KIND_CONST_ROUNDINGMODEE", "Cvc5Kind::CVC5_KIND_CONST_ROUNDINGMODE"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_CONST_SEQUENCEE", "Cvc5Kind::CVC5_KIND_CONST_SEQUENCE"], [2, 0, 1, "_CPPv4N8Cvc5Kind22CVC5_KIND_CONST_STRINGE", "Cvc5Kind::CVC5_KIND_CONST_STRING"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_COSECANTE", "Cvc5Kind::CVC5_KIND_COSECANT"], [2, 0, 1, "_CPPv4N8Cvc5Kind16CVC5_KIND_COSINEE", "Cvc5Kind::CVC5_KIND_COSINE"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_COTANGENTE", "Cvc5Kind::CVC5_KIND_COTANGENT"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_DISTINCTE", "Cvc5Kind::CVC5_KIND_DISTINCT"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_DIVISIBLEE", "Cvc5Kind::CVC5_KIND_DIVISIBLE"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_DIVISIONE", "Cvc5Kind::CVC5_KIND_DIVISION"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_DIVISION_TOTALE", "Cvc5Kind::CVC5_KIND_DIVISION_TOTAL"], [2, 0, 1, "_CPPv4N8Cvc5Kind15CVC5_KIND_EQUALE", "Cvc5Kind::CVC5_KIND_EQUAL"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_EQ_RANGEE", "Cvc5Kind::CVC5_KIND_EQ_RANGE"], [2, 0, 1, "_CPPv4N8Cvc5Kind16CVC5_KIND_EXISTSE", "Cvc5Kind::CVC5_KIND_EXISTS"], [2, 0, 1, "_CPPv4N8Cvc5Kind21CVC5_KIND_EXPONENTIALE", "Cvc5Kind::CVC5_KIND_EXPONENTIAL"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_FINITE_FIELD_ADDE", "Cvc5Kind::CVC5_KIND_FINITE_FIELD_ADD"], [2, 0, 1, "_CPPv4N8Cvc5Kind29CVC5_KIND_FINITE_FIELD_BITSUME", "Cvc5Kind::CVC5_KIND_FINITE_FIELD_BITSUM"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_FINITE_FIELD_MULTE", "Cvc5Kind::CVC5_KIND_FINITE_FIELD_MULT"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_FINITE_FIELD_NEGE", "Cvc5Kind::CVC5_KIND_FINITE_FIELD_NEG"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_ABSE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_ABS"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_ADDE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_ADD"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_DIVE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_DIV"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_FLOATINGPOINT_EQE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_EQ"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_FMAE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_FMA"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_FLOATINGPOINT_FPE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_FP"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_GEQE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_GEQ"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_FLOATINGPOINT_GTE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_GT"], [2, 0, 1, "_CPPv4N8Cvc5Kind30CVC5_KIND_FLOATINGPOINT_IS_INFE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_IS_INF"], [2, 0, 1, "_CPPv4N8Cvc5Kind30CVC5_KIND_FLOATINGPOINT_IS_NANE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_IS_NAN"], [2, 0, 1, "_CPPv4N8Cvc5Kind30CVC5_KIND_FLOATINGPOINT_IS_NEGE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_IS_NEG"], [2, 0, 1, "_CPPv4N8Cvc5Kind33CVC5_KIND_FLOATINGPOINT_IS_NORMALE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_IS_NORMAL"], [2, 0, 1, "_CPPv4N8Cvc5Kind30CVC5_KIND_FLOATINGPOINT_IS_POSE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_IS_POS"], [2, 0, 1, "_CPPv4N8Cvc5Kind36CVC5_KIND_FLOATINGPOINT_IS_SUBNORMALE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_IS_SUBNORMAL"], [2, 0, 1, "_CPPv4N8Cvc5Kind31CVC5_KIND_FLOATINGPOINT_IS_ZEROE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_IS_ZERO"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_LEQE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_LEQ"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_FLOATINGPOINT_LTE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_LT"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_MAXE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_MAX"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_MINE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_MIN"], [2, 0, 1, "_CPPv4N8Cvc5Kind28CVC5_KIND_FLOATINGPOINT_MULTE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_MULT"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_NEGE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_NEG"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_REME", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_REM"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_RTIE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_RTI"], [2, 0, 1, "_CPPv4N8Cvc5Kind28CVC5_KIND_FLOATINGPOINT_SQRTE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_SQRT"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_SUBE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_SUB"], [2, 0, 1, "_CPPv4N8Cvc5Kind37CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_FPE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_FP"], [2, 0, 1, "_CPPv4N8Cvc5Kind42CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_IEEE_BVE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_IEEE_BV"], [2, 0, 1, "_CPPv4N8Cvc5Kind39CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_REALE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_REAL"], [2, 0, 1, "_CPPv4N8Cvc5Kind38CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_SBVE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_SBV"], [2, 0, 1, "_CPPv4N8Cvc5Kind38CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_UBVE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_UBV"], [2, 0, 1, "_CPPv4N8Cvc5Kind31CVC5_KIND_FLOATINGPOINT_TO_REALE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_TO_REAL"], [2, 0, 1, "_CPPv4N8Cvc5Kind30CVC5_KIND_FLOATINGPOINT_TO_SBVE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_TO_SBV"], [2, 0, 1, "_CPPv4N8Cvc5Kind30CVC5_KIND_FLOATINGPOINT_TO_UBVE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_TO_UBV"], [2, 0, 1, "_CPPv4N8Cvc5Kind16CVC5_KIND_FORALLE", "Cvc5Kind::CVC5_KIND_FORALL"], [2, 0, 1, "_CPPv4N8Cvc5Kind13CVC5_KIND_GEQE", "Cvc5Kind::CVC5_KIND_GEQ"], [2, 0, 1, "_CPPv4N8Cvc5Kind12CVC5_KIND_GTE", "Cvc5Kind::CVC5_KIND_GT"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_HO_APPLYE", "Cvc5Kind::CVC5_KIND_HO_APPLY"], [2, 0, 1, "_CPPv4N8Cvc5Kind14CVC5_KIND_IANDE", "Cvc5Kind::CVC5_KIND_IAND"], [2, 0, 1, "_CPPv4N8Cvc5Kind17CVC5_KIND_IMPLIESE", "Cvc5Kind::CVC5_KIND_IMPLIES"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_INST_ADD_TO_POOLE", "Cvc5Kind::CVC5_KIND_INST_ADD_TO_POOL"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_INST_ATTRIBUTEE", "Cvc5Kind::CVC5_KIND_INST_ATTRIBUTE"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_INST_NO_PATTERNE", "Cvc5Kind::CVC5_KIND_INST_NO_PATTERN"], [2, 0, 1, "_CPPv4N8Cvc5Kind22CVC5_KIND_INST_PATTERNE", "Cvc5Kind::CVC5_KIND_INST_PATTERN"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_INST_PATTERN_LISTE", "Cvc5Kind::CVC5_KIND_INST_PATTERN_LIST"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_INST_POOLE", "Cvc5Kind::CVC5_KIND_INST_POOL"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_INTERNAL_KINDE", "Cvc5Kind::CVC5_KIND_INTERNAL_KIND"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_INTS_DIVISIONE", "Cvc5Kind::CVC5_KIND_INTS_DIVISION"], [2, 0, 1, "_CPPv4N8Cvc5Kind29CVC5_KIND_INTS_DIVISION_TOTALE", "Cvc5Kind::CVC5_KIND_INTS_DIVISION_TOTAL"], [2, 0, 1, "_CPPv4N8Cvc5Kind22CVC5_KIND_INTS_MODULUSE", "Cvc5Kind::CVC5_KIND_INTS_MODULUS"], [2, 0, 1, "_CPPv4N8Cvc5Kind28CVC5_KIND_INTS_MODULUS_TOTALE", "Cvc5Kind::CVC5_KIND_INTS_MODULUS_TOTAL"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_INT_TO_BITVECTORE", "Cvc5Kind::CVC5_KIND_INT_TO_BITVECTOR"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_IS_INTEGERE", "Cvc5Kind::CVC5_KIND_IS_INTEGER"], [2, 0, 1, "_CPPv4N8Cvc5Kind13CVC5_KIND_ITEE", "Cvc5Kind::CVC5_KIND_ITE"], [2, 0, 1, "_CPPv4N8Cvc5Kind16CVC5_KIND_LAMBDAE", "Cvc5Kind::CVC5_KIND_LAMBDA"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_LAST_KINDE", "Cvc5Kind::CVC5_KIND_LAST_KIND"], [2, 0, 1, "_CPPv4N8Cvc5Kind13CVC5_KIND_LEQE", "Cvc5Kind::CVC5_KIND_LEQ"], [2, 0, 1, "_CPPv4N8Cvc5Kind12CVC5_KIND_LTE", "Cvc5Kind::CVC5_KIND_LT"], [2, 0, 1, "_CPPv4N8Cvc5Kind15CVC5_KIND_MATCHE", "Cvc5Kind::CVC5_KIND_MATCH"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_MATCH_BIND_CASEE", "Cvc5Kind::CVC5_KIND_MATCH_BIND_CASE"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_MATCH_CASEE", "Cvc5Kind::CVC5_KIND_MATCH_CASE"], [2, 0, 1, "_CPPv4N8Cvc5Kind14CVC5_KIND_MULTE", "Cvc5Kind::CVC5_KIND_MULT"], [2, 0, 1, "_CPPv4N8Cvc5Kind13CVC5_KIND_NEGE", "Cvc5Kind::CVC5_KIND_NEG"], [2, 0, 1, "_CPPv4N8Cvc5Kind13CVC5_KIND_NOTE", "Cvc5Kind::CVC5_KIND_NOT"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_NULLABLE_LIFTE", "Cvc5Kind::CVC5_KIND_NULLABLE_LIFT"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_NULL_TERME", "Cvc5Kind::CVC5_KIND_NULL_TERM"], [2, 0, 1, "_CPPv4N8Cvc5Kind12CVC5_KIND_ORE", "Cvc5Kind::CVC5_KIND_OR"], [2, 0, 1, "_CPPv4N8Cvc5Kind12CVC5_KIND_PIE", "Cvc5Kind::CVC5_KIND_PI"], [2, 0, 1, "_CPPv4N8Cvc5Kind13CVC5_KIND_POWE", "Cvc5Kind::CVC5_KIND_POW"], [2, 0, 1, "_CPPv4N8Cvc5Kind14CVC5_KIND_POW2E", "Cvc5Kind::CVC5_KIND_POW2"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_REGEXP_ALLE", "Cvc5Kind::CVC5_KIND_REGEXP_ALL"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_REGEXP_ALLCHARE", "Cvc5Kind::CVC5_KIND_REGEXP_ALLCHAR"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_REGEXP_COMPLEMENTE", "Cvc5Kind::CVC5_KIND_REGEXP_COMPLEMENT"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_REGEXP_CONCATE", "Cvc5Kind::CVC5_KIND_REGEXP_CONCAT"], [2, 0, 1, "_CPPv4N8Cvc5Kind21CVC5_KIND_REGEXP_DIFFE", "Cvc5Kind::CVC5_KIND_REGEXP_DIFF"], [2, 0, 1, "_CPPv4N8Cvc5Kind22CVC5_KIND_REGEXP_INTERE", "Cvc5Kind::CVC5_KIND_REGEXP_INTER"], [2, 0, 1, "_CPPv4N8Cvc5Kind21CVC5_KIND_REGEXP_LOOPE", "Cvc5Kind::CVC5_KIND_REGEXP_LOOP"], [2, 0, 1, "_CPPv4N8Cvc5Kind21CVC5_KIND_REGEXP_NONEE", "Cvc5Kind::CVC5_KIND_REGEXP_NONE"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_REGEXP_OPTE", "Cvc5Kind::CVC5_KIND_REGEXP_OPT"], [2, 0, 1, "_CPPv4N8Cvc5Kind21CVC5_KIND_REGEXP_PLUSE", "Cvc5Kind::CVC5_KIND_REGEXP_PLUS"], [2, 0, 1, "_CPPv4N8Cvc5Kind22CVC5_KIND_REGEXP_RANGEE", "Cvc5Kind::CVC5_KIND_REGEXP_RANGE"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_REGEXP_REPEATE", "Cvc5Kind::CVC5_KIND_REGEXP_REPEAT"], [2, 0, 1, "_CPPv4N8Cvc5Kind21CVC5_KIND_REGEXP_STARE", "Cvc5Kind::CVC5_KIND_REGEXP_STAR"], [2, 0, 1, "_CPPv4N8Cvc5Kind22CVC5_KIND_REGEXP_UNIONE", "Cvc5Kind::CVC5_KIND_REGEXP_UNION"], [2, 0, 1, "_CPPv4N8Cvc5Kind28CVC5_KIND_RELATION_AGGREGATEE", "Cvc5Kind::CVC5_KIND_RELATION_AGGREGATE"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_RELATION_GROUPE", "Cvc5Kind::CVC5_KIND_RELATION_GROUP"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_RELATION_IDENE", "Cvc5Kind::CVC5_KIND_RELATION_IDEN"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_RELATION_JOINE", "Cvc5Kind::CVC5_KIND_RELATION_JOIN"], [2, 0, 1, "_CPPv4N8Cvc5Kind29CVC5_KIND_RELATION_JOIN_IMAGEE", "Cvc5Kind::CVC5_KIND_RELATION_JOIN_IMAGE"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_RELATION_PRODUCTE", "Cvc5Kind::CVC5_KIND_RELATION_PRODUCT"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_RELATION_PROJECTE", "Cvc5Kind::CVC5_KIND_RELATION_PROJECT"], [2, 0, 1, "_CPPv4N8Cvc5Kind29CVC5_KIND_RELATION_TABLE_JOINE", "Cvc5Kind::CVC5_KIND_RELATION_TABLE_JOIN"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_RELATION_TCLOSUREE", "Cvc5Kind::CVC5_KIND_RELATION_TCLOSURE"], [2, 0, 1, "_CPPv4N8Cvc5Kind28CVC5_KIND_RELATION_TRANSPOSEE", "Cvc5Kind::CVC5_KIND_RELATION_TRANSPOSE"], [2, 0, 1, "_CPPv4N8Cvc5Kind16CVC5_KIND_SECANTE", "Cvc5Kind::CVC5_KIND_SECANT"], [2, 0, 1, "_CPPv4N8Cvc5Kind16CVC5_KIND_SELECTE", "Cvc5Kind::CVC5_KIND_SELECT"], [2, 0, 1, "_CPPv4N8Cvc5Kind17CVC5_KIND_SEP_EMPE", "Cvc5Kind::CVC5_KIND_SEP_EMP"], [2, 0, 1, "_CPPv4N8Cvc5Kind17CVC5_KIND_SEP_NILE", "Cvc5Kind::CVC5_KIND_SEP_NIL"], [2, 0, 1, "_CPPv4N8Cvc5Kind17CVC5_KIND_SEP_PTOE", "Cvc5Kind::CVC5_KIND_SEP_PTO"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_SEP_STARE", "Cvc5Kind::CVC5_KIND_SEP_STAR"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_SEP_WANDE", "Cvc5Kind::CVC5_KIND_SEP_WAND"], [2, 0, 1, "_CPPv4N8Cvc5Kind16CVC5_KIND_SEQ_ATE", "Cvc5Kind::CVC5_KIND_SEQ_AT"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_SEQ_CONCATE", "Cvc5Kind::CVC5_KIND_SEQ_CONCAT"], [2, 0, 1, "_CPPv4N8Cvc5Kind22CVC5_KIND_SEQ_CONTAINSE", "Cvc5Kind::CVC5_KIND_SEQ_CONTAINS"], [2, 0, 1, "_CPPv4N8Cvc5Kind21CVC5_KIND_SEQ_EXTRACTE", "Cvc5Kind::CVC5_KIND_SEQ_EXTRACT"], [2, 0, 1, "_CPPv4N8Cvc5Kind21CVC5_KIND_SEQ_INDEXOFE", "Cvc5Kind::CVC5_KIND_SEQ_INDEXOF"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_SEQ_LENGTHE", "Cvc5Kind::CVC5_KIND_SEQ_LENGTH"], [2, 0, 1, "_CPPv4N8Cvc5Kind17CVC5_KIND_SEQ_NTHE", "Cvc5Kind::CVC5_KIND_SEQ_NTH"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_SEQ_PREFIXE", "Cvc5Kind::CVC5_KIND_SEQ_PREFIX"], [2, 0, 1, "_CPPv4N8Cvc5Kind21CVC5_KIND_SEQ_REPLACEE", "Cvc5Kind::CVC5_KIND_SEQ_REPLACE"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_SEQ_REPLACE_ALLE", "Cvc5Kind::CVC5_KIND_SEQ_REPLACE_ALL"], [2, 0, 1, "_CPPv4N8Cvc5Kind17CVC5_KIND_SEQ_REVE", "Cvc5Kind::CVC5_KIND_SEQ_REV"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_SEQ_SUFFIXE", "Cvc5Kind::CVC5_KIND_SEQ_SUFFIX"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_SEQ_UNITE", "Cvc5Kind::CVC5_KIND_SEQ_UNIT"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_SEQ_UPDATEE", "Cvc5Kind::CVC5_KIND_SEQ_UPDATE"], [2, 0, 1, "_CPPv4N8Cvc5Kind17CVC5_KIND_SET_ALLE", "Cvc5Kind::CVC5_KIND_SET_ALL"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_SET_CARDE", "Cvc5Kind::CVC5_KIND_SET_CARD"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_SET_CHOOSEE", "Cvc5Kind::CVC5_KIND_SET_CHOOSE"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_SET_COMPLEMENTE", "Cvc5Kind::CVC5_KIND_SET_COMPLEMENT"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_SET_COMPREHENSIONE", "Cvc5Kind::CVC5_KIND_SET_COMPREHENSION"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_SET_EMPTYE", "Cvc5Kind::CVC5_KIND_SET_EMPTY"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_SET_FILTERE", "Cvc5Kind::CVC5_KIND_SET_FILTER"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_SET_FOLDE", "Cvc5Kind::CVC5_KIND_SET_FOLD"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_SET_INSERTE", "Cvc5Kind::CVC5_KIND_SET_INSERT"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_SET_INTERE", "Cvc5Kind::CVC5_KIND_SET_INTER"], [2, 0, 1, "_CPPv4N8Cvc5Kind22CVC5_KIND_SET_IS_EMPTYE", "Cvc5Kind::CVC5_KIND_SET_IS_EMPTY"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_SET_IS_SINGLETONE", "Cvc5Kind::CVC5_KIND_SET_IS_SINGLETON"], [2, 0, 1, "_CPPv4N8Cvc5Kind17CVC5_KIND_SET_MAPE", "Cvc5Kind::CVC5_KIND_SET_MAP"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_SET_MEMBERE", "Cvc5Kind::CVC5_KIND_SET_MEMBER"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_SET_MINUSE", "Cvc5Kind::CVC5_KIND_SET_MINUS"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_SET_SINGLETONE", "Cvc5Kind::CVC5_KIND_SET_SINGLETON"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_SET_SOMEE", "Cvc5Kind::CVC5_KIND_SET_SOME"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_SET_SUBSETE", "Cvc5Kind::CVC5_KIND_SET_SUBSET"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_SET_UNIONE", "Cvc5Kind::CVC5_KIND_SET_UNION"], [2, 0, 1, "_CPPv4N8Cvc5Kind22CVC5_KIND_SET_UNIVERSEE", "Cvc5Kind::CVC5_KIND_SET_UNIVERSE"], [2, 0, 1, "_CPPv4N8Cvc5Kind15CVC5_KIND_SEXPRE", "Cvc5Kind::CVC5_KIND_SEXPR"], [2, 0, 1, "_CPPv4N8Cvc5Kind14CVC5_KIND_SINEE", "Cvc5Kind::CVC5_KIND_SINE"], [2, 0, 1, "_CPPv4N8Cvc5Kind16CVC5_KIND_SKOLEME", "Cvc5Kind::CVC5_KIND_SKOLEM"], [2, 0, 1, "_CPPv4N8Cvc5Kind28CVC5_KIND_SKOLEM_ADD_TO_POOLE", "Cvc5Kind::CVC5_KIND_SKOLEM_ADD_TO_POOL"], [2, 0, 1, "_CPPv4N8Cvc5Kind14CVC5_KIND_SQRTE", "Cvc5Kind::CVC5_KIND_SQRT"], [2, 0, 1, "_CPPv4N8Cvc5Kind15CVC5_KIND_STOREE", "Cvc5Kind::CVC5_KIND_STORE"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_STRING_CHARATE", "Cvc5Kind::CVC5_KIND_STRING_CHARAT"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_STRING_CONCATE", "Cvc5Kind::CVC5_KIND_STRING_CONCAT"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_STRING_CONTAINSE", "Cvc5Kind::CVC5_KIND_STRING_CONTAINS"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_STRING_FROM_CODEE", "Cvc5Kind::CVC5_KIND_STRING_FROM_CODE"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_STRING_FROM_INTE", "Cvc5Kind::CVC5_KIND_STRING_FROM_INT"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_STRING_INDEXOFE", "Cvc5Kind::CVC5_KIND_STRING_INDEXOF"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_STRING_INDEXOF_REE", "Cvc5Kind::CVC5_KIND_STRING_INDEXOF_RE"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_STRING_IN_REGEXPE", "Cvc5Kind::CVC5_KIND_STRING_IN_REGEXP"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_STRING_IS_DIGITE", "Cvc5Kind::CVC5_KIND_STRING_IS_DIGIT"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_STRING_LENGTHE", "Cvc5Kind::CVC5_KIND_STRING_LENGTH"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_STRING_LEQE", "Cvc5Kind::CVC5_KIND_STRING_LEQ"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_STRING_LTE", "Cvc5Kind::CVC5_KIND_STRING_LT"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_STRING_PREFIXE", "Cvc5Kind::CVC5_KIND_STRING_PREFIX"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_STRING_REPLACEE", "Cvc5Kind::CVC5_KIND_STRING_REPLACE"], [2, 0, 1, "_CPPv4N8Cvc5Kind28CVC5_KIND_STRING_REPLACE_ALLE", "Cvc5Kind::CVC5_KIND_STRING_REPLACE_ALL"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_STRING_REPLACE_REE", "Cvc5Kind::CVC5_KIND_STRING_REPLACE_RE"], [2, 0, 1, "_CPPv4N8Cvc5Kind31CVC5_KIND_STRING_REPLACE_RE_ALLE", "Cvc5Kind::CVC5_KIND_STRING_REPLACE_RE_ALL"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_STRING_REVE", "Cvc5Kind::CVC5_KIND_STRING_REV"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_STRING_SUBSTRE", "Cvc5Kind::CVC5_KIND_STRING_SUBSTR"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_STRING_SUFFIXE", "Cvc5Kind::CVC5_KIND_STRING_SUFFIX"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_STRING_TO_CODEE", "Cvc5Kind::CVC5_KIND_STRING_TO_CODE"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_STRING_TO_INTE", "Cvc5Kind::CVC5_KIND_STRING_TO_INT"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_STRING_TO_LOWERE", "Cvc5Kind::CVC5_KIND_STRING_TO_LOWER"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_STRING_TO_REGEXPE", "Cvc5Kind::CVC5_KIND_STRING_TO_REGEXP"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_STRING_TO_UPPERE", "Cvc5Kind::CVC5_KIND_STRING_TO_UPPER"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_STRING_UPDATEE", "Cvc5Kind::CVC5_KIND_STRING_UPDATE"], [2, 0, 1, "_CPPv4N8Cvc5Kind13CVC5_KIND_SUBE", "Cvc5Kind::CVC5_KIND_SUB"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_TABLE_AGGREGATEE", "Cvc5Kind::CVC5_KIND_TABLE_AGGREGATE"], [2, 0, 1, "_CPPv4N8Cvc5Kind21CVC5_KIND_TABLE_GROUPE", "Cvc5Kind::CVC5_KIND_TABLE_GROUP"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_TABLE_JOINE", "Cvc5Kind::CVC5_KIND_TABLE_JOIN"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_TABLE_PRODUCTE", "Cvc5Kind::CVC5_KIND_TABLE_PRODUCT"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_TABLE_PROJECTE", "Cvc5Kind::CVC5_KIND_TABLE_PROJECT"], [2, 0, 1, "_CPPv4N8Cvc5Kind17CVC5_KIND_TANGENTE", "Cvc5Kind::CVC5_KIND_TANGENT"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_TO_INTEGERE", "Cvc5Kind::CVC5_KIND_TO_INTEGER"], [2, 0, 1, "_CPPv4N8Cvc5Kind17CVC5_KIND_TO_REALE", "Cvc5Kind::CVC5_KIND_TO_REAL"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_TUPLE_PROJECTE", "Cvc5Kind::CVC5_KIND_TUPLE_PROJECT"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_UNDEFINED_KINDE", "Cvc5Kind::CVC5_KIND_UNDEFINED_KIND"], [2, 0, 1, "_CPPv4N8Cvc5Kind34CVC5_KIND_UNINTERPRETED_SORT_VALUEE", "Cvc5Kind::CVC5_KIND_UNINTERPRETED_SORT_VALUE"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_VARIABLEE", "Cvc5Kind::CVC5_KIND_VARIABLE"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_VARIABLE_LISTE", "Cvc5Kind::CVC5_KIND_VARIABLE_LIST"], [2, 0, 1, "_CPPv4N8Cvc5Kind17CVC5_KIND_WITNESSE", "Cvc5Kind::CVC5_KIND_WITNESS"], [2, 0, 1, "_CPPv4N8Cvc5Kind13CVC5_KIND_XORE", "Cvc5Kind::CVC5_KIND_XOR"], [7, 2, 1, "_CPPv418Cvc5LearnedLitType", "Cvc5LearnedLitType"], [7, 0, 1, "_CPPv4N18Cvc5LearnedLitType35CVC5_LEARNED_LIT_TYPE_CONSTANT_PROPE", "Cvc5LearnedLitType::CVC5_LEARNED_LIT_TYPE_CONSTANT_PROP"], [7, 0, 1, "_CPPv4N18Cvc5LearnedLitType27CVC5_LEARNED_LIT_TYPE_INPUTE", "Cvc5LearnedLitType::CVC5_LEARNED_LIT_TYPE_INPUT"], [7, 0, 1, "_CPPv4N18Cvc5LearnedLitType30CVC5_LEARNED_LIT_TYPE_INTERNALE", "Cvc5LearnedLitType::CVC5_LEARNED_LIT_TYPE_INTERNAL"], [7, 0, 1, "_CPPv4N18Cvc5LearnedLitType26CVC5_LEARNED_LIT_TYPE_LASTE", "Cvc5LearnedLitType::CVC5_LEARNED_LIT_TYPE_LAST"], [7, 0, 1, "_CPPv4N18Cvc5LearnedLitType32CVC5_LEARNED_LIT_TYPE_PREPROCESSE", "Cvc5LearnedLitType::CVC5_LEARNED_LIT_TYPE_PREPROCESS"], [7, 0, 1, "_CPPv4N18Cvc5LearnedLitType39CVC5_LEARNED_LIT_TYPE_PREPROCESS_SOLVEDE", "Cvc5LearnedLitType::CVC5_LEARNED_LIT_TYPE_PREPROCESS_SOLVED"], [7, 0, 1, "_CPPv4N18Cvc5LearnedLitType30CVC5_LEARNED_LIT_TYPE_SOLVABLEE", "Cvc5LearnedLitType::CVC5_LEARNED_LIT_TYPE_SOLVABLE"], [7, 0, 1, "_CPPv4N18Cvc5LearnedLitType29CVC5_LEARNED_LIT_TYPE_UNKNOWNE", "Cvc5LearnedLitType::CVC5_LEARNED_LIT_TYPE_UNKNOWN"], [20, 1, 1, "_CPPv46Cvc5Op", "Cvc5Op"], [9, 3, 1, "_CPPv414Cvc5OptionInfo", "Cvc5OptionInfo"], [9, 1, 1, "_CPPv414Cvc5OptionInfo", "Cvc5OptionInfo"], [9, 3, 1, "_CPPv4N14Cvc5OptionInfo8BoolInfoE", "Cvc5OptionInfo::BoolInfo"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo8BoolInfo3curE", "Cvc5OptionInfo::BoolInfo::cur"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo8BoolInfo4dfltE", "Cvc5OptionInfo::BoolInfo::dflt"], [9, 3, 1, "_CPPv4N14Cvc5OptionInfo10DoubleInfoE", "Cvc5OptionInfo::DoubleInfo"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo10DoubleInfo3curE", "Cvc5OptionInfo::DoubleInfo::cur"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo10DoubleInfo4dfltE", "Cvc5OptionInfo::DoubleInfo::dflt"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo10DoubleInfo7has_maxE", "Cvc5OptionInfo::DoubleInfo::has_max"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo10DoubleInfo7has_minE", "Cvc5OptionInfo::DoubleInfo::has_min"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo10DoubleInfo3maxE", "Cvc5OptionInfo::DoubleInfo::max"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo10DoubleInfo3minE", "Cvc5OptionInfo::DoubleInfo::min"], [9, 3, 1, "_CPPv4N14Cvc5OptionInfo7IntInfoE", "Cvc5OptionInfo::IntInfo"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo7IntInfo3curE", "Cvc5OptionInfo::IntInfo::cur"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo7IntInfo4dfltE", "Cvc5OptionInfo::IntInfo::dflt"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo7IntInfo7has_maxE", "Cvc5OptionInfo::IntInfo::has_max"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo7IntInfo7has_minE", "Cvc5OptionInfo::IntInfo::has_min"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo7IntInfo3maxE", "Cvc5OptionInfo::IntInfo::max"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo7IntInfo3minE", "Cvc5OptionInfo::IntInfo::min"], [9, 3, 1, "_CPPv4N14Cvc5OptionInfo8ModeInfoE", "Cvc5OptionInfo::ModeInfo"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo8ModeInfo3curE", "Cvc5OptionInfo::ModeInfo::cur"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo8ModeInfo4dfltE", "Cvc5OptionInfo::ModeInfo::dflt"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo8ModeInfo5modesE", "Cvc5OptionInfo::ModeInfo::modes"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo8ModeInfo9num_modesE", "Cvc5OptionInfo::ModeInfo::num_modes"], [9, 3, 1, "_CPPv4N14Cvc5OptionInfo10StringInfoE", "Cvc5OptionInfo::StringInfo"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo10StringInfo3curE", "Cvc5OptionInfo::StringInfo::cur"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo10StringInfo4dfltE", "Cvc5OptionInfo::StringInfo::dflt"], [9, 3, 1, "_CPPv4N14Cvc5OptionInfo8UIntInfoE", "Cvc5OptionInfo::UIntInfo"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo8UIntInfo3curE", "Cvc5OptionInfo::UIntInfo::cur"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo8UIntInfo4dfltE", "Cvc5OptionInfo::UIntInfo::dflt"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo8UIntInfo7has_maxE", "Cvc5OptionInfo::UIntInfo::has_max"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo8UIntInfo7has_minE", "Cvc5OptionInfo::UIntInfo::has_min"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo8UIntInfo3maxE", "Cvc5OptionInfo::UIntInfo::max"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo8UIntInfo3minE", "Cvc5OptionInfo::UIntInfo::min"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo7aliasesE", "Cvc5OptionInfo::aliases"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo10d_cpp_infoE", "Cvc5OptionInfo::d_cpp_info"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo9is_expertE", "Cvc5OptionInfo::is_expert"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo10is_regularE", "Cvc5OptionInfo::is_regular"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo14is_set_by_userE", "Cvc5OptionInfo::is_set_by_user"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo4kindE", "Cvc5OptionInfo::kind"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo4nameE", "Cvc5OptionInfo::name"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo11num_aliasesE", "Cvc5OptionInfo::num_aliases"], [9, 2, 1, "_CPPv418Cvc5OptionInfoKind", "Cvc5OptionInfoKind"], [9, 0, 1, "_CPPv4N18Cvc5OptionInfoKind21CVC5_OPTION_INFO_BOOLE", "Cvc5OptionInfoKind::CVC5_OPTION_INFO_BOOL"], [9, 0, 1, "_CPPv4N18Cvc5OptionInfoKind23CVC5_OPTION_INFO_DOUBLEE", "Cvc5OptionInfoKind::CVC5_OPTION_INFO_DOUBLE"], [9, 0, 1, "_CPPv4N18Cvc5OptionInfoKind22CVC5_OPTION_INFO_INT64E", "Cvc5OptionInfoKind::CVC5_OPTION_INFO_INT64"], [9, 0, 1, "_CPPv4N18Cvc5OptionInfoKind22CVC5_OPTION_INFO_MODESE", "Cvc5OptionInfoKind::CVC5_OPTION_INFO_MODES"], [9, 0, 1, "_CPPv4N18Cvc5OptionInfoKind20CVC5_OPTION_INFO_STRE", "Cvc5OptionInfoKind::CVC5_OPTION_INFO_STR"], [9, 0, 1, "_CPPv4N18Cvc5OptionInfoKind23CVC5_OPTION_INFO_UINT64E", "Cvc5OptionInfoKind::CVC5_OPTION_INFO_UINT64"], [9, 0, 1, "_CPPv4N18Cvc5OptionInfoKind21CVC5_OPTION_INFO_VOIDE", "Cvc5OptionInfoKind::CVC5_OPTION_INFO_VOID"], [10, 3, 1, "_CPPv410Cvc5Plugin", "Cvc5Plugin"], [10, 1, 1, "_CPPv410Cvc5Plugin", "Cvc5Plugin"], [10, 4, 1, "_CPPv4N10Cvc5Plugin5checkE", "Cvc5Plugin::check"], [10, 4, 1, "_CPPv4N10Cvc5Plugin13d_check_stateE", "Cvc5Plugin::d_check_state"], [10, 4, 1, "_CPPv4N10Cvc5Plugin25d_notify_sat_clause_stateE", "Cvc5Plugin::d_notify_sat_clause_state"], [10, 4, 1, "_CPPv4N10Cvc5Plugin27d_notify_theory_lemma_stateE", "Cvc5Plugin::d_notify_theory_lemma_state"], [10, 4, 1, "_CPPv4N10Cvc5Plugin8get_nameE", "Cvc5Plugin::get_name"], [10, 4, 1, "_CPPv4N10Cvc5Plugin17notify_sat_clauseE", "Cvc5Plugin::notify_sat_clause"], [10, 4, 1, "_CPPv4N10Cvc5Plugin19notify_theory_lemmaE", "Cvc5Plugin::notify_theory_lemma"], [21, 1, 1, "_CPPv49Cvc5Proof", "Cvc5Proof"], [7, 2, 1, "_CPPv418Cvc5ProofComponent", "Cvc5ProofComponent"], [7, 0, 1, "_CPPv4N18Cvc5ProofComponent25CVC5_PROOF_COMPONENT_FULLE", "Cvc5ProofComponent::CVC5_PROOF_COMPONENT_FULL"], [7, 0, 1, "_CPPv4N18Cvc5ProofComponent25CVC5_PROOF_COMPONENT_LASTE", "Cvc5ProofComponent::CVC5_PROOF_COMPONENT_LAST"], [7, 0, 1, "_CPPv4N18Cvc5ProofComponent31CVC5_PROOF_COMPONENT_PREPROCESSE", "Cvc5ProofComponent::CVC5_PROOF_COMPONENT_PREPROCESS"], [7, 0, 1, "_CPPv4N18Cvc5ProofComponent35CVC5_PROOF_COMPONENT_RAW_PREPROCESSE", "Cvc5ProofComponent::CVC5_PROOF_COMPONENT_RAW_PREPROCESS"], [7, 0, 1, "_CPPv4N18Cvc5ProofComponent24CVC5_PROOF_COMPONENT_SATE", "Cvc5ProofComponent::CVC5_PROOF_COMPONENT_SAT"], [7, 0, 1, "_CPPv4N18Cvc5ProofComponent34CVC5_PROOF_COMPONENT_THEORY_LEMMASE", "Cvc5ProofComponent::CVC5_PROOF_COMPONENT_THEORY_LEMMAS"], [7, 2, 1, "_CPPv415Cvc5ProofFormat", "Cvc5ProofFormat"], [7, 0, 1, "_CPPv4N15Cvc5ProofFormat24CVC5_PROOF_FORMAT_ALETHEE", "Cvc5ProofFormat::CVC5_PROOF_FORMAT_ALETHE"], [7, 0, 1, "_CPPv4N15Cvc5ProofFormat21CVC5_PROOF_FORMAT_CPCE", "Cvc5ProofFormat::CVC5_PROOF_FORMAT_CPC"], [7, 0, 1, "_CPPv4N15Cvc5ProofFormat25CVC5_PROOF_FORMAT_DEFAULTE", "Cvc5ProofFormat::CVC5_PROOF_FORMAT_DEFAULT"], [7, 0, 1, "_CPPv4N15Cvc5ProofFormat21CVC5_PROOF_FORMAT_DOTE", "Cvc5ProofFormat::CVC5_PROOF_FORMAT_DOT"], [7, 0, 1, "_CPPv4N15Cvc5ProofFormat22CVC5_PROOF_FORMAT_LASTE", "Cvc5ProofFormat::CVC5_PROOF_FORMAT_LAST"], [7, 0, 1, "_CPPv4N15Cvc5ProofFormat22CVC5_PROOF_FORMAT_LFSCE", "Cvc5ProofFormat::CVC5_PROOF_FORMAT_LFSC"], [7, 0, 1, "_CPPv4N15Cvc5ProofFormat22CVC5_PROOF_FORMAT_NONEE", "Cvc5ProofFormat::CVC5_PROOF_FORMAT_NONE"], [3, 2, 1, "_CPPv420Cvc5ProofRewriteRule", "Cvc5ProofRewriteRule"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_ARITH_ABS_ELIM_INTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_ABS_ELIM_INT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_ARITH_ABS_ELIM_REALE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_ABS_ELIM_REAL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_ARITH_ABS_EQE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_ABS_EQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_ARITH_ABS_INT_GTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_ABS_INT_GT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_ARITH_ABS_REAL_GTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_ABS_REAL_GT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_ARITH_COSECENT_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_COSECENT_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_ARITH_COSINE_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_COSINE_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_ARITH_COTANGENT_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_COTANGENT_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_ARITH_DIV_ELIM_TO_REAL1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_DIV_ELIM_TO_REAL1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_ARITH_DIV_ELIM_TO_REAL2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_DIV_ELIM_TO_REAL2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_ARITH_DIV_TOTAL_INTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_DIV_TOTAL_INT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_ARITH_DIV_TOTAL_REALE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_DIV_TOTAL_REAL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_ARITH_DIV_TOTAL_ZERO_INTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_DIV_TOTAL_ZERO_INT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_ARITH_DIV_TOTAL_ZERO_REALE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_DIV_TOTAL_ZERO_REAL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_GTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_GT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_INT_GTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_INT_GT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_INT_LTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_INT_LT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_LEQE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_LEQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_LTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_LT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_ARITH_EQ_ELIM_INTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_EQ_ELIM_INT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_ARITH_EQ_ELIM_REALE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_EQ_ELIM_REAL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_ARITH_GEQ_NORM1_INTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_GEQ_NORM1_INT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_ARITH_GEQ_NORM1_REALE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_GEQ_NORM1_REAL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_ARITH_GEQ_NORM2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_GEQ_NORM2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_ARITH_GEQ_TIGHTENE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_GEQ_TIGHTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_ARITH_INT_DIV_TOTALE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_INT_DIV_TOTAL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_ARITH_INT_DIV_TOTAL_ONEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_INT_DIV_TOTAL_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_ARITH_INT_DIV_TOTAL_ZEROE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_INT_DIV_TOTAL_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_ARITH_INT_MOD_TOTALE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_INT_MOD_TOTAL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_ARITH_INT_MOD_TOTAL_ONEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_INT_MOD_TOTAL_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_ARITH_INT_MOD_TOTAL_ZEROE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_INT_MOD_TOTAL_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ARITH_LEQ_NORME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_LEQ_NORM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_ARITH_MULT_DISTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_MULT_DIST"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_ARITH_MULT_FLATTENE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_MULT_FLATTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ARITH_MUL_ONEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_MUL_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ARITH_MUL_ZEROE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_MUL_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_ARITH_PI_NOT_INTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_PI_NOT_INT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_ARITH_PLUS_FLATTENE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_PLUS_FLATTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ARITH_POW_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_POW_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ARITH_REFL_GEQE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_REFL_GEQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ARITH_REFL_GTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_REFL_GT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ARITH_REFL_LEQE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_REFL_LEQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ARITH_REFL_LTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_REFL_LT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_ARITH_SECENT_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_SECENT_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ARITH_SINE_PI2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_SINE_PI2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_ARITH_SINE_ZEROE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_SINE_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_ARITH_STRING_PRED_ENTAILE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_STRING_PRED_ENTAIL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule53CVC5_PROOF_REWRITE_RULE_ARITH_STRING_PRED_SAFE_APPROXE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_STRING_PRED_SAFE_APPROX"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_ARITH_TANGENT_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_TANGENT_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_ARITH_TO_INT_ELIM_TO_REALE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_TO_INT_ELIM_TO_REAL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_ARITH_TO_REAL_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_TO_REAL_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_ARRAYS_EQ_RANGE_EXPANDE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARRAYS_EQ_RANGE_EXPAND"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_ARRAYS_SELECT_CONSTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARRAYS_SELECT_CONST"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_ARRAY_READ_OVER_WRITEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARRAY_READ_OVER_WRITE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_ARRAY_READ_OVER_WRITE2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARRAY_READ_OVER_WRITE2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule51CVC5_PROOF_REWRITE_RULE_ARRAY_READ_OVER_WRITE_SPLITE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARRAY_READ_OVER_WRITE_SPLIT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_ARRAY_STORE_OVERWRITEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARRAY_STORE_OVERWRITE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_ARRAY_STORE_SELFE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARRAY_STORE_SELF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BETA_REDUCEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BETA_REDUCE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_AND_CONFE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_AND_CONF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BOOL_AND_CONF2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_AND_CONF2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BOOL_AND_DE_MORGANE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_AND_DE_MORGAN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BOOL_AND_FALSEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_AND_FALSE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BOOL_AND_FLATTENE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_AND_FLATTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_BOOL_DOUBLE_NOT_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_DOUBLE_NOT_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_EQ_FALSEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_EQ_FALSE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_EQ_NREFLE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_EQ_NREFL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BOOL_EQ_TRUEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_EQ_TRUE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_BOOL_IMPLIES_DE_MORGANE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_IMPLIES_DE_MORGAN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_FALSE1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_FALSE1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_FALSE2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_FALSE2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_TRUE1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_TRUE1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_TRUE2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_TRUE2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BOOL_NOT_EQ_ELIM1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_NOT_EQ_ELIM1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BOOL_NOT_EQ_ELIM2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_NOT_EQ_ELIM2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BOOL_NOT_FALSEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_NOT_FALSE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BOOL_NOT_ITE_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_NOT_ITE_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_NOT_TRUEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_NOT_TRUE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BOOL_NOT_XOR_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_NOT_XOR_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BOOL_OR_AND_DISTRIBE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_OR_AND_DISTRIB"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BOOL_OR_DE_MORGANE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_OR_DE_MORGAN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_BOOL_OR_FLATTENE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_OR_FLATTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BOOL_OR_TAUTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_OR_TAUT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_OR_TAUT2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_OR_TAUT2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BOOL_OR_TRUEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_OR_TRUE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_XOR_COMME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_XOR_COMM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_XOR_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_XOR_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BOOL_XOR_FALSEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_XOR_FALSE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BOOL_XOR_NREFLE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_XOR_NREFL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_XOR_REFLE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_XOR_REFL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_XOR_TRUEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_XOR_TRUE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_BV_ADD_COMBINE_LIKE_TERMSE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ADD_COMBINE_LIKE_TERMS"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_ADD_TWOE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ADD_TWO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_ADD_ZEROE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ADD_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_BV_AND_CONCAT_PULLUPE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_AND_CONCAT_PULLUP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_AND_FLATTENE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_AND_FLATTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_AND_ONEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_AND_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_AND_SIMPLIFY_1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_AND_SIMPLIFY_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_AND_SIMPLIFY_2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_AND_SIMPLIFY_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_AND_ZEROE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_AND_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_ASHR_BY_CONST_0E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ASHR_BY_CONST_0"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_ASHR_BY_CONST_1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ASHR_BY_CONST_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_ASHR_BY_CONST_2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ASHR_BY_CONST_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BV_ASHR_ZEROE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ASHR_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_BITWISE_IDEMP_1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_BITWISE_IDEMP_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_BITWISE_IDEMP_2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_BITWISE_IDEMP_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_BITWISE_NOT_ANDE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_BITWISE_NOT_AND"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_BITWISE_NOT_ORE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_BITWISE_NOT_OR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_BITWISE_SLICINGE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_BITWISE_SLICING"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_ADDE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_ADD"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_ANDE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_AND"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_MULE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_MUL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_ORE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_OR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_XORE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_XOR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_COMP_ELIMINATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_COMP_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_BV_CONCAT_EXTRACT_MERGEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_CONCAT_EXTRACT_MERGE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_CONCAT_FLATTENE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_CONCAT_FLATTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_BV_CONCAT_MERGE_CONSTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_CONCAT_MERGE_CONST"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_CONCAT_TO_MULTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_CONCAT_TO_MULT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_EQ_EXTRACT_ELIM1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_EQ_EXTRACT_ELIM1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_EQ_EXTRACT_ELIM2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_EQ_EXTRACT_ELIM2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_EQ_EXTRACT_ELIM3E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_EQ_EXTRACT_ELIM3"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_BITWISE_ANDE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_BITWISE_AND"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_BITWISE_ORE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_BITWISE_OR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_BITWISE_XORE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_BITWISE_XOR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_CONCAT_1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_CONCAT_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_CONCAT_2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_CONCAT_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_CONCAT_3E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_CONCAT_3"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_CONCAT_4E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_CONCAT_4"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_EXTRACTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_EXTRACT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule51CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_MULT_LEADING_BITE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_MULT_LEADING_BIT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_NOTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_NOT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_SIGN_EXTEND_1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_SIGN_EXTEND_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_SIGN_EXTEND_2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_SIGN_EXTEND_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_SIGN_EXTEND_3E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_SIGN_EXTEND_3"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_WHOLEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_WHOLE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_BV_ITE_CONST_CHILDREN_1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ITE_CONST_CHILDREN_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_BV_ITE_CONST_CHILDREN_2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ITE_CONST_CHILDREN_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_BV_ITE_EQUAL_CHILDRENE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ITE_EQUAL_CHILDREN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_ITE_EQUAL_COND_1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ITE_EQUAL_COND_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_ITE_EQUAL_COND_2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ITE_EQUAL_COND_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_ITE_EQUAL_COND_3E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ITE_EQUAL_COND_3"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_BV_ITE_MERGE_ELSE_ELSEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ITE_MERGE_ELSE_ELSE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_BV_ITE_MERGE_ELSE_IFE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ITE_MERGE_ELSE_IF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_BV_ITE_MERGE_THEN_ELSEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ITE_MERGE_THEN_ELSE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_BV_ITE_MERGE_THEN_IFE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ITE_MERGE_THEN_IF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_LSHR_BY_CONST_0E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_LSHR_BY_CONST_0"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_LSHR_BY_CONST_1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_LSHR_BY_CONST_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_LSHR_BY_CONST_2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_LSHR_BY_CONST_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BV_LSHR_ZEROE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_LSHR_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_LT_SELFE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_LT_SELF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_BV_MERGE_SIGN_EXTEND_1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_MERGE_SIGN_EXTEND_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_BV_MERGE_SIGN_EXTEND_2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_MERGE_SIGN_EXTEND_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_BV_MERGE_SIGN_EXTEND_3E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_MERGE_SIGN_EXTEND_3"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_CONST_ADDE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_CONST_ADD"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_CONST_NEGE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_CONST_NEG"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_CONST_SUBE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_CONST_SUB"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_MULT_POW2_1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_MULT_POW2_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_MULT_POW2_2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_MULT_POW2_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_BV_MULT_POW2_2BE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_MULT_POW2_2B"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_MULT_SIMPLIFYE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_MULT_SIMPLIFY"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_MULT_SLT_MULT_1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_MULT_SLT_MULT_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_MULT_SLT_MULT_2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_MULT_SLT_MULT_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_MUL_FLATTENE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_MUL_FLATTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_MUL_ONEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_MUL_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_MUL_ZEROE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_MUL_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_NAND_ELIMINATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_NAND_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_NEG_ADDE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_NEG_ADD"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BV_NEG_IDEMPE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_NEG_IDEMP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_NEG_MULTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_NEG_MULT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_NEG_SUBE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_NEG_SUB"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_NOR_ELIMINATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_NOR_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BV_NOT_IDEMPE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_NOT_IDEMP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_NOT_NEQE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_NOT_NEQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_NOT_SLEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_NOT_SLE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_NOT_ULEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_NOT_ULE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_NOT_ULTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_NOT_ULT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_NOT_XORE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_NOT_XOR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_OR_CONCAT_PULLUPE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_OR_CONCAT_PULLUP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BV_OR_FLATTENE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_OR_FLATTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule33CVC5_PROOF_REWRITE_RULE_BV_OR_ONEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_OR_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_OR_SIMPLIFY_1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_OR_SIMPLIFY_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_OR_SIMPLIFY_2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_OR_SIMPLIFY_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_OR_ZEROE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_OR_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_REDAND_ELIMINATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_REDAND_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_REDOR_ELIMINATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_REDOR_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_REPEAT_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_REPEAT_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_BV_ROTATE_LEFT_ELIMINATE_1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ROTATE_LEFT_ELIMINATE_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_BV_ROTATE_LEFT_ELIMINATE_2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ROTATE_LEFT_ELIMINATE_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule51CVC5_PROOF_REWRITE_RULE_BV_ROTATE_RIGHT_ELIMINATE_1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ROTATE_RIGHT_ELIMINATE_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule51CVC5_PROOF_REWRITE_RULE_BV_ROTATE_RIGHT_ELIMINATE_2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ROTATE_RIGHT_ELIMINATE_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_SADDO_ELIMINATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SADDO_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_SDIVO_ELIMINATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SDIVO_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_SDIV_ELIMINATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SDIV_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule59CVC5_PROOF_REWRITE_RULE_BV_SDIV_ELIMINATE_FEWER_BITWISE_OPSE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SDIV_ELIMINATE_FEWER_BITWISE_OPS"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_SGE_ELIMINATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SGE_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_SGT_ELIMINATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SGT_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_SHL_BY_CONST_0E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SHL_BY_CONST_0"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_SHL_BY_CONST_1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SHL_BY_CONST_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_SHL_BY_CONST_2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SHL_BY_CONST_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_SHL_ZEROE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SHL_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ELIMINATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ELIMINATE_0E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ELIMINATE_0"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_EQ_CONST_1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_EQ_CONST_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_EQ_CONST_2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_EQ_CONST_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ULT_CONST_1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ULT_CONST_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ULT_CONST_2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ULT_CONST_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ULT_CONST_3E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ULT_CONST_3"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ULT_CONST_4E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ULT_CONST_4"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_SLE_ELIMINATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SLE_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_SLE_SELFE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SLE_SELF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_SLT_ELIMINATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SLT_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_SLT_ZEROE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SLT_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_SMOD_ELIMINATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SMOD_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule59CVC5_PROOF_REWRITE_RULE_BV_SMOD_ELIMINATE_FEWER_BITWISE_OPSE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SMOD_ELIMINATE_FEWER_BITWISE_OPS"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_SMULO_ELIMINATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SMULO_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_SREM_ELIMINATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SREM_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule59CVC5_PROOF_REWRITE_RULE_BV_SREM_ELIMINATE_FEWER_BITWISE_OPSE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SREM_ELIMINATE_FEWER_BITWISE_OPS"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_SSUBO_ELIMINATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SSUBO_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_SUB_ELIMINATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SUB_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_TO_NAT_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_TO_NAT_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_UADDO_ELIMINATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_UADDO_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_UDIV_ONEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_UDIV_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_BV_UDIV_POW2_NOT_ONEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_UDIV_POW2_NOT_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BV_UDIV_ZEROE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_UDIV_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_UGE_ELIMINATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_UGE_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_UGT_ELIMINATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_UGT_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_UGT_UREME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_UGT_UREM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_ULE_ELIMINATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ULE_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_ULE_MAXE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ULE_MAX"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_ULE_SELFE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ULE_SELF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_ULE_ZEROE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ULE_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_ULT_ADD_ONEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ULT_ADD_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_ULT_ONEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ULT_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_ULT_ONESE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ULT_ONES"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_ULT_SELFE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ULT_SELF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BV_ULT_ZERO_1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ULT_ZERO_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BV_ULT_ZERO_2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ULT_ZERO_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_UMULO_ELIMINATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_UMULO_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_UREM_ONEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_UREM_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_BV_UREM_POW2_NOT_ONEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_UREM_POW2_NOT_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BV_UREM_SELFE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_UREM_SELF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_USUBO_ELIMINATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_USUBO_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_XNOR_ELIMINATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_XNOR_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_BV_XOR_CONCAT_PULLUPE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_XOR_CONCAT_PULLUP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_XOR_DUPLICATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_XOR_DUPLICATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_XOR_FLATTENE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_XOR_FLATTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_XOR_NOTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_XOR_NOT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_XOR_ONESE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_XOR_ONES"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_XOR_SIMPLIFY_1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_XOR_SIMPLIFY_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_XOR_SIMPLIFY_2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_XOR_SIMPLIFY_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_XOR_SIMPLIFY_3E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_XOR_SIMPLIFY_3"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_XOR_ZEROE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_XOR_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_BV_ZERO_EXTEND_ELIMINATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ZERO_EXTEND_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_BV_ZERO_EXTEND_ELIMINATE_0E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ZERO_EXTEND_ELIMINATE_0"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_BV_ZERO_EXTEND_EQ_CONST_1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ZERO_EXTEND_EQ_CONST_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_BV_ZERO_EXTEND_EQ_CONST_2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ZERO_EXTEND_EQ_CONST_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_ZERO_ULEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ZERO_ULE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_DISTINCT_BINARY_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_DISTINCT_BINARY_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_DISTINCT_CARD_CONFLICTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_DISTINCT_CARD_CONFLICT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_DISTINCT_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_DISTINCT_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_DT_COLLAPSE_SELECTORE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_DT_COLLAPSE_SELECTOR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_DT_COLLAPSE_TESTERE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_DT_COLLAPSE_TESTER"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule52CVC5_PROOF_REWRITE_RULE_DT_COLLAPSE_TESTER_SINGLETONE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_DT_COLLAPSE_TESTER_SINGLETON"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_DT_COLLAPSE_UPDATERE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_DT_COLLAPSE_UPDATER"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_DT_CONS_EQE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_DT_CONS_EQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule32CVC5_PROOF_REWRITE_RULE_DT_CYCLEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_DT_CYCLE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule31CVC5_PROOF_REWRITE_RULE_DT_INSTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_DT_INST"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_DT_MATCH_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_DT_MATCH_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_DT_UPDATER_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_DT_UPDATER_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_EQ_COND_DEQE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_EQ_COND_DEQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_EQ_ITE_LIFTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_EQ_ITE_LIFT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule31CVC5_PROOF_REWRITE_RULE_EQ_REFLE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_EQ_REFL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule31CVC5_PROOF_REWRITE_RULE_EQ_SYMME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_EQ_SYMM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_EXISTS_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_EXISTS_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_INT_TO_BV_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_INT_TO_BV_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ITE_ELSE_FALSEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ITE_ELSE_FALSE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_ITE_ELSE_LOOKAHEADE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ITE_ELSE_LOOKAHEAD"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule51CVC5_PROOF_REWRITE_RULE_ITE_ELSE_LOOKAHEAD_NOT_SELFE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ITE_ELSE_LOOKAHEAD_NOT_SELF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_ITE_ELSE_LOOKAHEAD_SELFE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ITE_ELSE_LOOKAHEAD_SELF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_ITE_ELSE_NEG_LOOKAHEADE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ITE_ELSE_NEG_LOOKAHEAD"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ITE_ELSE_TRUEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ITE_ELSE_TRUE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ITE_EQ_BRANCHE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ITE_EQ_BRANCH"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_ITE_EXPANDE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ITE_EXPAND"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ITE_FALSE_CONDE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ITE_FALSE_COND"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ITE_NEG_BRANCHE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ITE_NEG_BRANCH"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_ITE_NOT_CONDE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ITE_NOT_COND"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ITE_THEN_FALSEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ITE_THEN_FALSE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_ITE_THEN_LOOKAHEADE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ITE_THEN_LOOKAHEAD"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule51CVC5_PROOF_REWRITE_RULE_ITE_THEN_LOOKAHEAD_NOT_SELFE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ITE_THEN_LOOKAHEAD_NOT_SELF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_ITE_THEN_LOOKAHEAD_SELFE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ITE_THEN_LOOKAHEAD_SELF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_ITE_THEN_NEG_LOOKAHEADE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ITE_THEN_NEG_LOOKAHEAD"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ITE_THEN_TRUEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ITE_THEN_TRUE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ITE_TRUE_CONDE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ITE_TRUE_COND"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_LAMBDA_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_LAMBDA_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule28CVC5_PROOF_REWRITE_RULE_LASTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_LAST"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule54CVC5_PROOF_REWRITE_RULE_MACRO_ARITH_STRING_PRED_ENTAILE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_MACRO_ARITH_STRING_PRED_ENTAIL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule52CVC5_PROOF_REWRITE_RULE_MACRO_ARRAYS_DISTINCT_ARRAYSE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_MACRO_ARRAYS_DISTINCT_ARRAYS"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule55CVC5_PROOF_REWRITE_RULE_MACRO_ARRAYS_NORMALIZE_CONSTANTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_MACRO_ARRAYS_NORMALIZE_CONSTANT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_MACRO_BOOL_NNF_NORME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_MACRO_BOOL_NNF_NORM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_MERGE_PRENEXE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_MERGE_PRENEX"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_MINISCOPEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_MINISCOPE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule58CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_PARTITION_CONNECTED_FVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_PARTITION_CONNECTED_FV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_PRENEXE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_PRENEX"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_REWRITE_BODYE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_REWRITE_BODY"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_VAR_ELIM_EQE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_VAR_ELIM_EQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_VAR_ELIM_INEQE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_VAR_ELIM_INEQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule53CVC5_PROOF_REWRITE_RULE_MACRO_SUBSTR_STRIP_SYM_LENGTHE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_MACRO_SUBSTR_STRIP_SYM_LENGTH"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule28CVC5_PROOF_REWRITE_RULE_NONEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_NONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_QUANT_DT_SPLITE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_QUANT_DT_SPLIT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_QUANT_MERGE_PRENEXE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_QUANT_MERGE_PRENEX"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_QUANT_MINISCOPE_ANDE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_QUANT_MINISCOPE_AND"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_QUANT_MINISCOPE_ITEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_QUANT_MINISCOPE_ITE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_QUANT_MINISCOPE_ORE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_QUANT_MINISCOPE_OR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_QUANT_UNUSED_VARSE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_QUANT_UNUSED_VARS"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_QUANT_VAR_ELIM_EQE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_QUANT_VAR_ELIM_EQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_RE_ALL_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_ALL_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_RE_CONCAT_EMPE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_CONCAT_EMP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_RE_CONCAT_FLATTENE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_CONCAT_FLATTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_RE_CONCAT_MERGEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_CONCAT_MERGE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_RE_CONCAT_NONEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_CONCAT_NONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_RE_CONCAT_STAR_REPEATE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_CONCAT_STAR_REPEAT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_RE_CONCAT_STAR_SWAPE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_CONCAT_STAR_SWAP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_RE_DIFF_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_DIFF_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_RE_INTER_ALLE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_INTER_ALL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_RE_INTER_CSTRINGE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_INTER_CSTRING"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_RE_INTER_CSTRING_NEGE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_INTER_CSTRING_NEG"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_RE_INTER_DUPE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_INTER_DUP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_RE_INTER_FLATTENE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_INTER_FLATTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_RE_INTER_NONEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_INTER_NONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_RE_INTER_UNION_INCLUSIONE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_INTER_UNION_INCLUSION"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_RE_IN_COMPE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_IN_COMP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_RE_IN_CSTRINGE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_IN_CSTRING"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_RE_IN_EMPTYE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_IN_EMPTY"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_RE_IN_SIGMAE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_IN_SIGMA"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_RE_IN_SIGMA_STARE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_IN_SIGMA_STAR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_RE_LOOP_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_LOOP_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_RE_LOOP_NEGE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_LOOP_NEG"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_RE_OPT_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_OPT_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_RE_STAR_NONEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_STAR_NONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_RE_UNION_ALLE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_UNION_ALL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_RE_UNION_DUPE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_UNION_DUP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_RE_UNION_FLATTENE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_UNION_FLATTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_RE_UNION_NONEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_UNION_NONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_SEQ_LEN_EMPTYE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SEQ_LEN_EMPTY"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_SEQ_LEN_REVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SEQ_LEN_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_SEQ_LEN_UNITE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SEQ_LEN_UNIT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_SEQ_NTH_UNITE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SEQ_NTH_UNIT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_SEQ_REV_CONCATE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SEQ_REV_CONCAT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_SEQ_REV_REVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SEQ_REV_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_SEQ_REV_UNITE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SEQ_REV_UNIT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_SETS_CARD_EMPE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SETS_CARD_EMP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_CARD_MINUSE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SETS_CARD_MINUS"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_SETS_CARD_SINGLETONE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SETS_CARD_SINGLETON"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_CARD_UNIONE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SETS_CARD_UNION"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_SETS_CHOOSE_SINGLETONE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SETS_CHOOSE_SINGLETON"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_SETS_EQ_SINGLETON_EMPE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SETS_EQ_SINGLETON_EMP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_SETS_INSERT_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SETS_INSERT_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_INTER_COMME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SETS_INTER_COMM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_INTER_EMP1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SETS_INTER_EMP1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_INTER_EMP2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SETS_INTER_EMP2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_SETS_INTER_MEMBERE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SETS_INTER_MEMBER"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_SETS_IS_EMPTY_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SETS_IS_EMPTY_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_SETS_IS_EMPTY_EVALE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SETS_IS_EMPTY_EVAL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_MEMBER_EMPE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SETS_MEMBER_EMP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_SETS_MEMBER_SINGLETONE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SETS_MEMBER_SINGLETON"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_MINUS_EMP1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SETS_MINUS_EMP1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_MINUS_EMP2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SETS_MINUS_EMP2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_SETS_MINUS_MEMBERE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SETS_MINUS_MEMBER"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_MINUS_SELFE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SETS_MINUS_SELF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_SETS_SUBSET_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SETS_SUBSET_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_UNION_COMME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SETS_UNION_COMM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_UNION_EMP1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SETS_UNION_EMP1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_UNION_EMP2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SETS_UNION_EMP2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_SETS_UNION_MEMBERE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SETS_UNION_MEMBER"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_STR_AT_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_AT_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASHE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH2_REVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH2_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH_CHARE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH_CHAR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH_CHAR_REVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH_CHAR_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH_REVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_CONCAT_FLATTENE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_CONCAT_FLATTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_STR_CONCAT_FLATTEN_EQE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_CONCAT_FLATTEN_EQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_STR_CONCAT_FLATTEN_EQ_REVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_CONCAT_FLATTEN_EQ_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_CONCAT_UNIFYE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_CONCAT_UNIFY"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_STR_CONCAT_UNIFY_BASEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_CONCAT_UNIFY_BASE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_STR_CONCAT_UNIFY_BASE_REVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_CONCAT_UNIFY_BASE_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_CONCAT_UNIFY_REVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_CONCAT_UNIFY_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_CONCAT_FINDE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_CONCAT_FIND"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_EMPE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_EMP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_IS_EMPE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_IS_EMP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_LEQ_LEN_EQE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_LEQ_LEN_EQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_LT_LENE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_LT_LEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_REFLE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_REFL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_SPLIT_CHARE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_SPLIT_CHAR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_EQ_CTN_FALSEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_EQ_CTN_FALSE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_STR_EQ_CTN_FULL_FALSE1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_EQ_CTN_FULL_FALSE1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_STR_EQ_CTN_FULL_FALSE2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_EQ_CTN_FULL_FALSE2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_STR_INDEXOF_CONTAINS_PREE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_INDEXOF_CONTAINS_PRE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_STR_INDEXOF_NO_CONTAINSE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_INDEXOF_NO_CONTAINS"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_INDEXOF_RE_NONEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_INDEXOF_RE_NONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_INDEXOF_SELFE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_INDEXOF_SELF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_STR_IN_RE_CONCAT_STAR_CHARE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_CONCAT_STAR_CHAR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_STR_IN_RE_CONSUMEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_CONSUME"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_IN_RE_CONTAINSE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_CONTAINS"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_STR_IN_RE_EVALE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_EVAL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_IN_RE_INTER_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_INTER_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_IN_RE_RANGE_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_RANGE_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_IN_RE_REQ_UNFOLDE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_REQ_UNFOLD"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_STR_IN_RE_REQ_UNFOLD_REVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_REQ_UNFOLD_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_STR_IN_RE_SIGMAE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_SIGMA"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_IN_RE_SIGMA_STARE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_SIGMA_STAR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_STR_IN_RE_SKIP_UNFOLDE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_SKIP_UNFOLD"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_STR_IN_RE_SKIP_UNFOLD_REVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_SKIP_UNFOLD_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_CHARE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_CHAR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_CHAR_REVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_CHAR_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule53CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_CHAR_S_SINGLEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_CHAR_S_SINGLE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule57CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_CHAR_S_SINGLE_REVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_CHAR_S_SINGLE_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIXE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule51CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule55CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_NEGE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_NEG"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule59CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_NEG_REVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_NEG_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule55CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_REVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule60CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule64CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEGE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule68CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG_REVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule64CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_REVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_NEGE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_NEG"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule54CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_NEG_REVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_NEG_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_REVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule57CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SRS_SINGLEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SRS_SINGLE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule61CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEGE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule65CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG_REVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule61CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_REVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule56CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SR_SINGLEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SR_SINGLE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule60CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEGE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule64CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG_REVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule60CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SR_SINGLE_REVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SR_SINGLE_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule55CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_S_SINGLEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_S_SINGLE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule59CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEGE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule63CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG_REVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule59CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_S_SINGLE_REVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_S_SINGLE_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_STR_IN_RE_TEST_UNFOLDE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_TEST_UNFOLD"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_STR_IN_RE_TEST_UNFOLD_REVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_TEST_UNFOLD_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_IN_RE_UNION_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_UNION_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_LEN_CONCAT_RECE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_LEN_CONCAT_REC"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_LEN_REPLACE_INVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_LEN_REPLACE_INV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_STR_LEN_SUBSTR_IN_RANGEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_LEN_SUBSTR_IN_RANGE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_LEN_SUBSTR_UB1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_LEN_SUBSTR_UB1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_LEN_SUBSTR_UB2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_LEN_SUBSTR_UB2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_LEN_UPDATE_INVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_LEN_UPDATE_INV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_LEQ_CONCAT_FALSEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_LEQ_CONCAT_FALSE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_LEQ_CONCAT_TRUEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_LEQ_CONCAT_TRUE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_STR_LEQ_EMPTYE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_LEQ_EMPTY"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_LEQ_EMPTY_EQE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_LEQ_EMPTY_EQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_STR_LT_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_LT_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_STR_PREFIXOF_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_PREFIXOF_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_PREFIXOF_ONEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_PREFIXOF_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule51CVC5_PROOF_REWRITE_RULE_STR_REPLACE_ALL_NO_CONTAINSE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_REPLACE_ALL_NO_CONTAINS"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_STR_REPLACE_CONTAINS_PREE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_REPLACE_CONTAINS_PRE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_STR_REPLACE_EMPTYE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_REPLACE_EMPTY"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_STR_REPLACE_NO_CONTAINSE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_REPLACE_NO_CONTAINS"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_REPLACE_PREFIXE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_REPLACE_PREFIX"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_STR_REPLACE_RE_ALL_NONEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_REPLACE_RE_ALL_NONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_REPLACE_RE_NONEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_REPLACE_RE_NONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_REPLACE_SELFE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_REPLACE_SELF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_COMBINE1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_COMBINE1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_COMBINE2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_COMBINE2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_COMBINE3E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_COMBINE3"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_COMBINE4E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_COMBINE4"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_CONCAT1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_CONCAT1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_CONCAT2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_CONCAT2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EMPTY_RANGEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EMPTY_RANGE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EMPTY_STARTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EMPTY_START"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EMPTY_START_NEGE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EMPTY_START_NEG"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EMPTY_STRE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EMPTY_STR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EQ_EMPTYE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EQ_EMPTY"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_FULLE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_FULL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_FULL_EQE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_FULL_EQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_LEN_INCLUDEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_LEN_INCLUDE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_LEN_INCLUDE_PREE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_LEN_INCLUDE_PRE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_LEN_SKIPE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_LEN_SKIP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_STR_SUFFIXOF_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_SUFFIXOF_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_SUFFIXOF_ONEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_SUFFIXOF_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_STR_TO_INT_CONCAT_NEG_ONEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_TO_INT_CONCAT_NEG_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_TO_LOWER_CONCATE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_TO_LOWER_CONCAT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_STR_TO_LOWER_FROM_INTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_TO_LOWER_FROM_INT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_TO_LOWER_LENE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_TO_LOWER_LEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_TO_LOWER_UPPERE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_TO_LOWER_UPPER"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_TO_UPPER_CONCATE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_TO_UPPER_CONCAT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_STR_TO_UPPER_FROM_INTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_TO_UPPER_FROM_INT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_TO_UPPER_LENE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_TO_UPPER_LEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_TO_UPPER_LOWERE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_TO_UPPER_LOWER"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_UF_BV2NAT_GEQ_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_UF_BV2NAT_GEQ_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_UF_BV2NAT_INT2BVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_UF_BV2NAT_INT2BV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_UF_BV2NAT_INT2BV_EXTENDE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_UF_BV2NAT_INT2BV_EXTEND"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_UF_BV2NAT_INT2BV_EXTRACTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_UF_BV2NAT_INT2BV_EXTRACT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_UF_INT2BV_BV2NATE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_UF_INT2BV_BV2NAT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_UF_INT2BV_BVULE_EQUIVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_UF_INT2BV_BVULE_EQUIV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_UF_INT2BV_BVULT_EQUIVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_UF_INT2BV_BVULT_EQUIV"], [3, 2, 1, "_CPPv413Cvc5ProofRule", "Cvc5ProofRule"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule24CVC5_PROOF_RULE_ACI_NORME", "Cvc5ProofRule::CVC5_PROOF_RULE_ACI_NORM"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_ALETHE_RULEE", "Cvc5ProofRule::CVC5_PROOF_RULE_ALETHE_RULE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_ALPHA_EQUIVE", "Cvc5ProofRule::CVC5_PROOF_RULE_ALPHA_EQUIV"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule24CVC5_PROOF_RULE_AND_ELIME", "Cvc5ProofRule::CVC5_PROOF_RULE_AND_ELIM"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_AND_INTROE", "Cvc5ProofRule::CVC5_PROOF_RULE_AND_INTRO"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule41CVC5_PROOF_RULE_ARITH_MULT_ABS_COMPARISONE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_MULT_ABS_COMPARISON"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_ARITH_MULT_NEGE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_MULT_NEG"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_ARITH_MULT_POSE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_MULT_POS"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_ARITH_MULT_SIGNE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_MULT_SIGN"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule34CVC5_PROOF_RULE_ARITH_MULT_TANGENTE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_MULT_TANGENT"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_ARITH_POLY_NORME", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_POLY_NORM"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule35CVC5_PROOF_RULE_ARITH_POLY_NORM_RELE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_POLY_NORM_REL"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_ARITH_REDUCTIONE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_REDUCTION"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_ARITH_SUM_UBE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_SUM_UB"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule48CVC5_PROOF_RULE_ARITH_TRANS_EXP_APPROX_ABOVE_NEGE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_TRANS_EXP_APPROX_ABOVE_NEG"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule48CVC5_PROOF_RULE_ARITH_TRANS_EXP_APPROX_ABOVE_POSE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_TRANS_EXP_APPROX_ABOVE_POS"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule44CVC5_PROOF_RULE_ARITH_TRANS_EXP_APPROX_BELOWE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_TRANS_EXP_APPROX_BELOW"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule35CVC5_PROOF_RULE_ARITH_TRANS_EXP_NEGE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_TRANS_EXP_NEG"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule42CVC5_PROOF_RULE_ARITH_TRANS_EXP_POSITIVITYE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_TRANS_EXP_POSITIVITY"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule41CVC5_PROOF_RULE_ARITH_TRANS_EXP_SUPER_LINE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_TRANS_EXP_SUPER_LIN"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule36CVC5_PROOF_RULE_ARITH_TRANS_EXP_ZEROE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_TRANS_EXP_ZERO"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_ARITH_TRANS_PIE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_TRANS_PI"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule49CVC5_PROOF_RULE_ARITH_TRANS_SINE_APPROX_ABOVE_NEGE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_TRANS_SINE_APPROX_ABOVE_NEG"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule49CVC5_PROOF_RULE_ARITH_TRANS_SINE_APPROX_ABOVE_POSE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_TRANS_SINE_APPROX_ABOVE_POS"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule49CVC5_PROOF_RULE_ARITH_TRANS_SINE_APPROX_BELOW_NEGE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_TRANS_SINE_APPROX_BELOW_NEG"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule49CVC5_PROOF_RULE_ARITH_TRANS_SINE_APPROX_BELOW_POSE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_TRANS_SINE_APPROX_BELOW_POS"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule39CVC5_PROOF_RULE_ARITH_TRANS_SINE_BOUNDSE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_TRANS_SINE_BOUNDS"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule38CVC5_PROOF_RULE_ARITH_TRANS_SINE_SHIFTE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_TRANS_SINE_SHIFT"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule41CVC5_PROOF_RULE_ARITH_TRANS_SINE_SYMMETRYE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_TRANS_SINE_SYMMETRY"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule43CVC5_PROOF_RULE_ARITH_TRANS_SINE_TANGENT_PIE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_TRANS_SINE_TANGENT_PI"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule45CVC5_PROOF_RULE_ARITH_TRANS_SINE_TANGENT_ZEROE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_TRANS_SINE_TANGENT_ZERO"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_ARITH_TRICHOTOMYE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_TRICHOTOMY"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_ARRAYS_EXTE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARRAYS_EXT"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule38CVC5_PROOF_RULE_ARRAYS_READ_OVER_WRITEE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARRAYS_READ_OVER_WRITE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule40CVC5_PROOF_RULE_ARRAYS_READ_OVER_WRITE_1E", "Cvc5ProofRule::CVC5_PROOF_RULE_ARRAYS_READ_OVER_WRITE_1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule45CVC5_PROOF_RULE_ARRAYS_READ_OVER_WRITE_CONTRAE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARRAYS_READ_OVER_WRITE_CONTRA"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule22CVC5_PROOF_RULE_ASSUMEE", "Cvc5ProofRule::CVC5_PROOF_RULE_ASSUME"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_BV_BITBLAST_STEPE", "Cvc5ProofRule::CVC5_PROOF_RULE_BV_BITBLAST_STEP"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_BV_EAGER_ATOME", "Cvc5ProofRule::CVC5_PROOF_RULE_BV_EAGER_ATOM"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_CHAIN_RESOLUTIONE", "Cvc5ProofRule::CVC5_PROOF_RULE_CHAIN_RESOLUTION"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_CNF_AND_NEGE", "Cvc5ProofRule::CVC5_PROOF_RULE_CNF_AND_NEG"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_CNF_AND_POSE", "Cvc5ProofRule::CVC5_PROOF_RULE_CNF_AND_POS"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_CNF_EQUIV_NEG1E", "Cvc5ProofRule::CVC5_PROOF_RULE_CNF_EQUIV_NEG1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_CNF_EQUIV_NEG2E", "Cvc5ProofRule::CVC5_PROOF_RULE_CNF_EQUIV_NEG2"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_CNF_EQUIV_POS1E", "Cvc5ProofRule::CVC5_PROOF_RULE_CNF_EQUIV_POS1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_CNF_EQUIV_POS2E", "Cvc5ProofRule::CVC5_PROOF_RULE_CNF_EQUIV_POS2"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_CNF_IMPLIES_NEG1E", "Cvc5ProofRule::CVC5_PROOF_RULE_CNF_IMPLIES_NEG1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_CNF_IMPLIES_NEG2E", "Cvc5ProofRule::CVC5_PROOF_RULE_CNF_IMPLIES_NEG2"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_CNF_IMPLIES_POSE", "Cvc5ProofRule::CVC5_PROOF_RULE_CNF_IMPLIES_POS"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_ITE_NEG1E", "Cvc5ProofRule::CVC5_PROOF_RULE_CNF_ITE_NEG1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_ITE_NEG2E", "Cvc5ProofRule::CVC5_PROOF_RULE_CNF_ITE_NEG2"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_ITE_NEG3E", "Cvc5ProofRule::CVC5_PROOF_RULE_CNF_ITE_NEG3"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_ITE_POS1E", "Cvc5ProofRule::CVC5_PROOF_RULE_CNF_ITE_POS1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_ITE_POS2E", "Cvc5ProofRule::CVC5_PROOF_RULE_CNF_ITE_POS2"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_ITE_POS3E", "Cvc5ProofRule::CVC5_PROOF_RULE_CNF_ITE_POS3"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_CNF_OR_NEGE", "Cvc5ProofRule::CVC5_PROOF_RULE_CNF_OR_NEG"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_CNF_OR_POSE", "Cvc5ProofRule::CVC5_PROOF_RULE_CNF_OR_POS"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_XOR_NEG1E", "Cvc5ProofRule::CVC5_PROOF_RULE_CNF_XOR_NEG1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_XOR_NEG2E", "Cvc5ProofRule::CVC5_PROOF_RULE_CNF_XOR_NEG2"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_XOR_POS1E", "Cvc5ProofRule::CVC5_PROOF_RULE_CNF_XOR_POS1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_XOR_POS2E", "Cvc5ProofRule::CVC5_PROOF_RULE_CNF_XOR_POS2"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_CONCAT_CONFLICTE", "Cvc5ProofRule::CVC5_PROOF_RULE_CONCAT_CONFLICT"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule35CVC5_PROOF_RULE_CONCAT_CONFLICT_DEQE", "Cvc5ProofRule::CVC5_PROOF_RULE_CONCAT_CONFLICT_DEQ"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CONCAT_CPROPE", "Cvc5ProofRule::CVC5_PROOF_RULE_CONCAT_CPROP"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_CONCAT_CSPLITE", "Cvc5ProofRule::CVC5_PROOF_RULE_CONCAT_CSPLIT"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_CONCAT_EQE", "Cvc5ProofRule::CVC5_PROOF_RULE_CONCAT_EQ"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CONCAT_LPROPE", "Cvc5ProofRule::CVC5_PROOF_RULE_CONCAT_LPROP"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CONCAT_SPLITE", "Cvc5ProofRule::CVC5_PROOF_RULE_CONCAT_SPLIT"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CONCAT_UNIFYE", "Cvc5ProofRule::CVC5_PROOF_RULE_CONCAT_UNIFY"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule20CVC5_PROOF_RULE_CONGE", "Cvc5ProofRule::CVC5_PROOF_RULE_CONG"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule22CVC5_PROOF_RULE_CONTRAE", "Cvc5ProofRule::CVC5_PROOF_RULE_CONTRA"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_DRAT_REFUTATIONE", "Cvc5ProofRule::CVC5_PROOF_RULE_DRAT_REFUTATION"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_DSL_REWRITEE", "Cvc5ProofRule::CVC5_PROOF_RULE_DSL_REWRITE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule24CVC5_PROOF_RULE_DT_CLASHE", "Cvc5ProofRule::CVC5_PROOF_RULE_DT_CLASH"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule24CVC5_PROOF_RULE_DT_SPLITE", "Cvc5ProofRule::CVC5_PROOF_RULE_DT_SPLIT"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_ENCODE_EQ_INTROE", "Cvc5ProofRule::CVC5_PROOF_RULE_ENCODE_EQ_INTRO"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_EQUIV_ELIM1E", "Cvc5ProofRule::CVC5_PROOF_RULE_EQUIV_ELIM1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_EQUIV_ELIM2E", "Cvc5ProofRule::CVC5_PROOF_RULE_EQUIV_ELIM2"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_EQ_RESOLVEE", "Cvc5ProofRule::CVC5_PROOF_RULE_EQ_RESOLVE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule24CVC5_PROOF_RULE_EVALUATEE", "Cvc5ProofRule::CVC5_PROOF_RULE_EVALUATE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_FACTORINGE", "Cvc5ProofRule::CVC5_PROOF_RULE_FACTORING"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_FALSE_ELIME", "Cvc5ProofRule::CVC5_PROOF_RULE_FALSE_ELIM"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_FALSE_INTROE", "Cvc5ProofRule::CVC5_PROOF_RULE_FALSE_INTRO"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_HO_APP_ENCODEE", "Cvc5ProofRule::CVC5_PROOF_RULE_HO_APP_ENCODE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule23CVC5_PROOF_RULE_HO_CONGE", "Cvc5ProofRule::CVC5_PROOF_RULE_HO_CONG"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_IMPLIES_ELIME", "Cvc5ProofRule::CVC5_PROOF_RULE_IMPLIES_ELIM"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_INSTANTIATEE", "Cvc5ProofRule::CVC5_PROOF_RULE_INSTANTIATE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_INT_TIGHT_LBE", "Cvc5ProofRule::CVC5_PROOF_RULE_INT_TIGHT_LB"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_INT_TIGHT_UBE", "Cvc5ProofRule::CVC5_PROOF_RULE_INT_TIGHT_UB"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_ITE_ELIM1E", "Cvc5ProofRule::CVC5_PROOF_RULE_ITE_ELIM1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_ITE_ELIM2E", "Cvc5ProofRule::CVC5_PROOF_RULE_ITE_ELIM2"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule22CVC5_PROOF_RULE_ITE_EQE", "Cvc5ProofRule::CVC5_PROOF_RULE_ITE_EQ"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule20CVC5_PROOF_RULE_LASTE", "Cvc5ProofRule::CVC5_PROOF_RULE_LAST"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_LFSC_RULEE", "Cvc5ProofRule::CVC5_PROOF_RULE_LFSC_RULE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule40CVC5_PROOF_RULE_MACRO_ARITH_SCALE_SUM_UBE", "Cvc5ProofRule::CVC5_PROOF_RULE_MACRO_ARITH_SCALE_SUM_UB"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule33CVC5_PROOF_RULE_MACRO_BV_BITBLASTE", "Cvc5ProofRule::CVC5_PROOF_RULE_MACRO_BV_BITBLAST"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_MACRO_RESOLUTIONE", "Cvc5ProofRule::CVC5_PROOF_RULE_MACRO_RESOLUTION"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule38CVC5_PROOF_RULE_MACRO_RESOLUTION_TRUSTE", "Cvc5ProofRule::CVC5_PROOF_RULE_MACRO_RESOLUTION_TRUST"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_MACRO_REWRITEE", "Cvc5ProofRule::CVC5_PROOF_RULE_MACRO_REWRITE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule33CVC5_PROOF_RULE_MACRO_SR_EQ_INTROE", "Cvc5ProofRule::CVC5_PROOF_RULE_MACRO_SR_EQ_INTRO"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule34CVC5_PROOF_RULE_MACRO_SR_PRED_ELIME", "Cvc5ProofRule::CVC5_PROOF_RULE_MACRO_SR_PRED_ELIM"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule35CVC5_PROOF_RULE_MACRO_SR_PRED_INTROE", "Cvc5ProofRule::CVC5_PROOF_RULE_MACRO_SR_PRED_INTRO"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule39CVC5_PROOF_RULE_MACRO_SR_PRED_TRANSFORME", "Cvc5ProofRule::CVC5_PROOF_RULE_MACRO_SR_PRED_TRANSFORM"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule38CVC5_PROOF_RULE_MACRO_STRING_INFERENCEE", "Cvc5ProofRule::CVC5_PROOF_RULE_MACRO_STRING_INFERENCE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_MODUS_PONENSE", "Cvc5ProofRule::CVC5_PROOF_RULE_MODUS_PONENS"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_NARY_CONGE", "Cvc5ProofRule::CVC5_PROOF_RULE_NARY_CONG"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule23CVC5_PROOF_RULE_NOT_ANDE", "Cvc5ProofRule::CVC5_PROOF_RULE_NOT_AND"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_NOT_EQUIV_ELIM1E", "Cvc5ProofRule::CVC5_PROOF_RULE_NOT_EQUIV_ELIM1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_NOT_EQUIV_ELIM2E", "Cvc5ProofRule::CVC5_PROOF_RULE_NOT_EQUIV_ELIM2"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule33CVC5_PROOF_RULE_NOT_IMPLIES_ELIM1E", "Cvc5ProofRule::CVC5_PROOF_RULE_NOT_IMPLIES_ELIM1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule33CVC5_PROOF_RULE_NOT_IMPLIES_ELIM2E", "Cvc5ProofRule::CVC5_PROOF_RULE_NOT_IMPLIES_ELIM2"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_NOT_ITE_ELIM1E", "Cvc5ProofRule::CVC5_PROOF_RULE_NOT_ITE_ELIM1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_NOT_ITE_ELIM2E", "Cvc5ProofRule::CVC5_PROOF_RULE_NOT_ITE_ELIM2"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_NOT_NOT_ELIME", "Cvc5ProofRule::CVC5_PROOF_RULE_NOT_NOT_ELIM"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_NOT_OR_ELIME", "Cvc5ProofRule::CVC5_PROOF_RULE_NOT_OR_ELIM"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_NOT_XOR_ELIM1E", "Cvc5ProofRule::CVC5_PROOF_RULE_NOT_XOR_ELIM1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_NOT_XOR_ELIM2E", "Cvc5ProofRule::CVC5_PROOF_RULE_NOT_XOR_ELIM2"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule36CVC5_PROOF_RULE_QUANT_VAR_REORDERINGE", "Cvc5ProofRule::CVC5_PROOF_RULE_QUANT_VAR_REORDERING"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule20CVC5_PROOF_RULE_REFLE", "Cvc5ProofRule::CVC5_PROOF_RULE_REFL"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_REORDERINGE", "Cvc5ProofRule::CVC5_PROOF_RULE_REORDERING"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_RESOLUTIONE", "Cvc5ProofRule::CVC5_PROOF_RULE_RESOLUTION"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule24CVC5_PROOF_RULE_RE_INTERE", "Cvc5ProofRule::CVC5_PROOF_RULE_RE_INTER"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_RE_UNFOLD_NEGE", "Cvc5ProofRule::CVC5_PROOF_RULE_RE_UNFOLD_NEG"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule42CVC5_PROOF_RULE_RE_UNFOLD_NEG_CONCAT_FIXEDE", "Cvc5ProofRule::CVC5_PROOF_RULE_RE_UNFOLD_NEG_CONCAT_FIXED"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_RE_UNFOLD_POSE", "Cvc5ProofRule::CVC5_PROOF_RULE_RE_UNFOLD_POS"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule34CVC5_PROOF_RULE_SAT_EXTERNAL_PROVEE", "Cvc5ProofRule::CVC5_PROOF_RULE_SAT_EXTERNAL_PROVE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_SAT_REFUTATIONE", "Cvc5ProofRule::CVC5_PROOF_RULE_SAT_REFUTATION"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule21CVC5_PROOF_RULE_SCOPEE", "Cvc5ProofRule::CVC5_PROOF_RULE_SCOPE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule24CVC5_PROOF_RULE_SETS_EXTE", "Cvc5ProofRule::CVC5_PROOF_RULE_SETS_EXT"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_SETS_FILTER_DOWNE", "Cvc5ProofRule::CVC5_PROOF_RULE_SETS_FILTER_DOWN"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_SETS_FILTER_UPE", "Cvc5ProofRule::CVC5_PROOF_RULE_SETS_FILTER_UP"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule34CVC5_PROOF_RULE_SETS_SINGLETON_INJE", "Cvc5ProofRule::CVC5_PROOF_RULE_SETS_SINGLETON_INJ"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_SKOLEMIZEE", "Cvc5ProofRule::CVC5_PROOF_RULE_SKOLEMIZE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_SKOLEM_INTROE", "Cvc5ProofRule::CVC5_PROOF_RULE_SKOLEM_INTRO"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule21CVC5_PROOF_RULE_SPLITE", "Cvc5ProofRule::CVC5_PROOF_RULE_SPLIT"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_STRING_CODE_INJE", "Cvc5ProofRule::CVC5_PROOF_RULE_STRING_CODE_INJ"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_STRING_DECOMPOSEE", "Cvc5ProofRule::CVC5_PROOF_RULE_STRING_DECOMPOSE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule38CVC5_PROOF_RULE_STRING_EAGER_REDUCTIONE", "Cvc5ProofRule::CVC5_PROOF_RULE_STRING_EAGER_REDUCTION"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_STRING_EXTE", "Cvc5ProofRule::CVC5_PROOF_RULE_STRING_EXT"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule39CVC5_PROOF_RULE_STRING_LENGTH_NON_EMPTYE", "Cvc5ProofRule::CVC5_PROOF_RULE_STRING_LENGTH_NON_EMPTY"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule33CVC5_PROOF_RULE_STRING_LENGTH_POSE", "Cvc5ProofRule::CVC5_PROOF_RULE_STRING_LENGTH_POS"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_STRING_REDUCTIONE", "Cvc5ProofRule::CVC5_PROOF_RULE_STRING_REDUCTION"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule35CVC5_PROOF_RULE_STRING_SEQ_UNIT_INJE", "Cvc5ProofRule::CVC5_PROOF_RULE_STRING_SEQ_UNIT_INJ"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule20CVC5_PROOF_RULE_SUBSE", "Cvc5ProofRule::CVC5_PROOF_RULE_SUBS"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule20CVC5_PROOF_RULE_SYMME", "Cvc5ProofRule::CVC5_PROOF_RULE_SYMM"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_THEORY_REWRITEE", "Cvc5ProofRule::CVC5_PROOF_RULE_THEORY_REWRITE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule21CVC5_PROOF_RULE_TRANSE", "Cvc5ProofRule::CVC5_PROOF_RULE_TRANS"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_TRUE_ELIME", "Cvc5ProofRule::CVC5_PROOF_RULE_TRUE_ELIM"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_TRUE_INTROE", "Cvc5ProofRule::CVC5_PROOF_RULE_TRUE_INTRO"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule21CVC5_PROOF_RULE_TRUSTE", "Cvc5ProofRule::CVC5_PROOF_RULE_TRUST"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule36CVC5_PROOF_RULE_TRUST_THEORY_REWRITEE", "Cvc5ProofRule::CVC5_PROOF_RULE_TRUST_THEORY_REWRITE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule23CVC5_PROOF_RULE_UNKNOWNE", "Cvc5ProofRule::CVC5_PROOF_RULE_UNKNOWN"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_XOR_ELIM1E", "Cvc5ProofRule::CVC5_PROOF_RULE_XOR_ELIM1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_XOR_ELIM2E", "Cvc5ProofRule::CVC5_PROOF_RULE_XOR_ELIM2"], [22, 1, 1, "_CPPv410Cvc5Result", "Cvc5Result"], [4, 2, 1, "_CPPv416Cvc5RoundingMode", "Cvc5RoundingMode"], [4, 0, 1, "_CPPv4N16Cvc5RoundingMode12CVC5_RM_LASTE", "Cvc5RoundingMode::CVC5_RM_LAST"], [4, 0, 1, "_CPPv4N16Cvc5RoundingMode34CVC5_RM_ROUND_NEAREST_TIES_TO_AWAYE", "Cvc5RoundingMode::CVC5_RM_ROUND_NEAREST_TIES_TO_AWAY"], [4, 0, 1, "_CPPv4N16Cvc5RoundingMode34CVC5_RM_ROUND_NEAREST_TIES_TO_EVENE", "Cvc5RoundingMode::CVC5_RM_ROUND_NEAREST_TIES_TO_EVEN"], [4, 0, 1, "_CPPv4N16Cvc5RoundingMode29CVC5_RM_ROUND_TOWARD_NEGATIVEE", "Cvc5RoundingMode::CVC5_RM_ROUND_TOWARD_NEGATIVE"], [4, 0, 1, "_CPPv4N16Cvc5RoundingMode29CVC5_RM_ROUND_TOWARD_POSITIVEE", "Cvc5RoundingMode::CVC5_RM_ROUND_TOWARD_POSITIVE"], [4, 0, 1, "_CPPv4N16Cvc5RoundingMode25CVC5_RM_ROUND_TOWARD_ZEROE", "Cvc5RoundingMode::CVC5_RM_ROUND_TOWARD_ZERO"], [23, 1, 1, "_CPPv48Cvc5Sort", "Cvc5Sort"], [5, 2, 1, "_CPPv412Cvc5SortKind", "Cvc5SortKind"], [5, 0, 1, "_CPPv4N12Cvc5SortKind28CVC5_SORT_KIND_ABSTRACT_SORTE", "Cvc5SortKind::CVC5_SORT_KIND_ABSTRACT_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind25CVC5_SORT_KIND_ARRAY_SORTE", "Cvc5SortKind::CVC5_SORT_KIND_ARRAY_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind23CVC5_SORT_KIND_BAG_SORTE", "Cvc5SortKind::CVC5_SORT_KIND_BAG_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind29CVC5_SORT_KIND_BITVECTOR_SORTE", "Cvc5SortKind::CVC5_SORT_KIND_BITVECTOR_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind27CVC5_SORT_KIND_BOOLEAN_SORTE", "Cvc5SortKind::CVC5_SORT_KIND_BOOLEAN_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind28CVC5_SORT_KIND_DATATYPE_SORTE", "Cvc5SortKind::CVC5_SORT_KIND_DATATYPE_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind32CVC5_SORT_KIND_FINITE_FIELD_SORTE", "Cvc5SortKind::CVC5_SORT_KIND_FINITE_FIELD_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind33CVC5_SORT_KIND_FLOATINGPOINT_SORTE", "Cvc5SortKind::CVC5_SORT_KIND_FLOATINGPOINT_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind28CVC5_SORT_KIND_FUNCTION_SORTE", "Cvc5SortKind::CVC5_SORT_KIND_FUNCTION_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind27CVC5_SORT_KIND_INTEGER_SORTE", "Cvc5SortKind::CVC5_SORT_KIND_INTEGER_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind33CVC5_SORT_KIND_INTERNAL_SORT_KINDE", "Cvc5SortKind::CVC5_SORT_KIND_INTERNAL_SORT_KIND"], [5, 0, 1, "_CPPv4N12Cvc5SortKind29CVC5_SORT_KIND_LAST_SORT_KINDE", "Cvc5SortKind::CVC5_SORT_KIND_LAST_SORT_KIND"], [5, 0, 1, "_CPPv4N12Cvc5SortKind28CVC5_SORT_KIND_NULLABLE_SORTE", "Cvc5SortKind::CVC5_SORT_KIND_NULLABLE_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind24CVC5_SORT_KIND_NULL_SORTE", "Cvc5SortKind::CVC5_SORT_KIND_NULL_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind24CVC5_SORT_KIND_REAL_SORTE", "Cvc5SortKind::CVC5_SORT_KIND_REAL_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind26CVC5_SORT_KIND_REGLAN_SORTE", "Cvc5SortKind::CVC5_SORT_KIND_REGLAN_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind32CVC5_SORT_KIND_ROUNDINGMODE_SORTE", "Cvc5SortKind::CVC5_SORT_KIND_ROUNDINGMODE_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind28CVC5_SORT_KIND_SEQUENCE_SORTE", "Cvc5SortKind::CVC5_SORT_KIND_SEQUENCE_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind23CVC5_SORT_KIND_SET_SORTE", "Cvc5SortKind::CVC5_SORT_KIND_SET_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind26CVC5_SORT_KIND_STRING_SORTE", "Cvc5SortKind::CVC5_SORT_KIND_STRING_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind25CVC5_SORT_KIND_TUPLE_SORTE", "Cvc5SortKind::CVC5_SORT_KIND_TUPLE_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind34CVC5_SORT_KIND_UNDEFINED_SORT_KINDE", "Cvc5SortKind::CVC5_SORT_KIND_UNDEFINED_SORT_KIND"], [5, 0, 1, "_CPPv4N12Cvc5SortKind33CVC5_SORT_KIND_UNINTERPRETED_SORTE", "Cvc5SortKind::CVC5_SORT_KIND_UNINTERPRETED_SORT"], [24, 1, 1, "_CPPv48Cvc5Stat", "Cvc5Stat"], [24, 1, 1, "_CPPv414Cvc5Statistics", "Cvc5Statistics"], [25, 1, 1, "_CPPv417Cvc5SymbolManager", "Cvc5SymbolManager"], [26, 1, 1, "_CPPv415Cvc5SynthResult", "Cvc5SynthResult"], [27, 1, 1, "_CPPv48Cvc5Term", "Cvc5Term"], [28, 1, 1, "_CPPv415Cvc5TermManager", "Cvc5TermManager"], [6, 2, 1, "_CPPv422Cvc5UnknownExplanation", "Cvc5UnknownExplanation"], [6, 0, 1, "_CPPv4N22Cvc5UnknownExplanation35CVC5_UNKNOWN_EXPLANATION_INCOMPLETEE", "Cvc5UnknownExplanation::CVC5_UNKNOWN_EXPLANATION_INCOMPLETE"], [6, 0, 1, "_CPPv4N22Cvc5UnknownExplanation36CVC5_UNKNOWN_EXPLANATION_INTERRUPTEDE", "Cvc5UnknownExplanation::CVC5_UNKNOWN_EXPLANATION_INTERRUPTED"], [6, 0, 1, "_CPPv4N22Cvc5UnknownExplanation29CVC5_UNKNOWN_EXPLANATION_LASTE", "Cvc5UnknownExplanation::CVC5_UNKNOWN_EXPLANATION_LAST"], [6, 0, 1, "_CPPv4N22Cvc5UnknownExplanation31CVC5_UNKNOWN_EXPLANATION_MEMOUTE", "Cvc5UnknownExplanation::CVC5_UNKNOWN_EXPLANATION_MEMOUT"], [6, 0, 1, "_CPPv4N22Cvc5UnknownExplanation30CVC5_UNKNOWN_EXPLANATION_OTHERE", "Cvc5UnknownExplanation::CVC5_UNKNOWN_EXPLANATION_OTHER"], [6, 0, 1, "_CPPv4N22Cvc5UnknownExplanation45CVC5_UNKNOWN_EXPLANATION_REQUIRES_CHECK_AGAINE", "Cvc5UnknownExplanation::CVC5_UNKNOWN_EXPLANATION_REQUIRES_CHECK_AGAIN"], [6, 0, 1, "_CPPv4N22Cvc5UnknownExplanation44CVC5_UNKNOWN_EXPLANATION_REQUIRES_FULL_CHECKE", "Cvc5UnknownExplanation::CVC5_UNKNOWN_EXPLANATION_REQUIRES_FULL_CHECK"], [6, 0, 1, "_CPPv4N22Cvc5UnknownExplanation36CVC5_UNKNOWN_EXPLANATION_RESOURCEOUTE", "Cvc5UnknownExplanation::CVC5_UNKNOWN_EXPLANATION_RESOURCEOUT"], [6, 0, 1, "_CPPv4N22Cvc5UnknownExplanation32CVC5_UNKNOWN_EXPLANATION_TIMEOUTE", "Cvc5UnknownExplanation::CVC5_UNKNOWN_EXPLANATION_TIMEOUT"], [6, 0, 1, "_CPPv4N22Cvc5UnknownExplanation39CVC5_UNKNOWN_EXPLANATION_UNKNOWN_REASONE", "Cvc5UnknownExplanation::CVC5_UNKNOWN_EXPLANATION_UNKNOWN_REASON"], [6, 0, 1, "_CPPv4N22Cvc5UnknownExplanation36CVC5_UNKNOWN_EXPLANATION_UNSUPPORTEDE", "Cvc5UnknownExplanation::CVC5_UNKNOWN_EXPLANATION_UNSUPPORTED"], [57, 3, 1, "_CPPv4N4cvc516CVC5ApiExceptionE", "cvc5::CVC5ApiException"], [57, 5, 1, "_CPPv4N4cvc516CVC5ApiException16CVC5ApiExceptionERKNSt12stringstreamE", "cvc5::CVC5ApiException::CVC5ApiException"], [57, 5, 1, "_CPPv4N4cvc516CVC5ApiException16CVC5ApiExceptionERKNSt6stringE", "cvc5::CVC5ApiException::CVC5ApiException"], [57, 6, 1, "_CPPv4N4cvc516CVC5ApiException16CVC5ApiExceptionERKNSt6stringE", "cvc5::CVC5ApiException::CVC5ApiException::str"], [57, 6, 1, "_CPPv4N4cvc516CVC5ApiException16CVC5ApiExceptionERKNSt12stringstreamE", "cvc5::CVC5ApiException::CVC5ApiException::stream"], [57, 5, 1, "_CPPv4NK4cvc516CVC5ApiException10getMessageEv", "cvc5::CVC5ApiException::getMessage"], [57, 5, 1, "_CPPv4NK4cvc516CVC5ApiException8toStreamERNSt7ostreamE", "cvc5::CVC5ApiException::toStream"], [57, 6, 1, "_CPPv4NK4cvc516CVC5ApiException8toStreamERNSt7ostreamE", "cvc5::CVC5ApiException::toStream::os"], [57, 5, 1, "_CPPv4NK4cvc516CVC5ApiException4whatEv", "cvc5::CVC5ApiException::what"], [57, 3, 1, "_CPPv4N4cvc527CVC5ApiRecoverableExceptionE", "cvc5::CVC5ApiRecoverableException"], [57, 5, 1, "_CPPv4N4cvc527CVC5ApiRecoverableException27CVC5ApiRecoverableExceptionERKNSt12stringstreamE", "cvc5::CVC5ApiRecoverableException::CVC5ApiRecoverableException"], [57, 5, 1, "_CPPv4N4cvc527CVC5ApiRecoverableException27CVC5ApiRecoverableExceptionERKNSt6stringE", "cvc5::CVC5ApiRecoverableException::CVC5ApiRecoverableException"], [57, 6, 1, "_CPPv4N4cvc527CVC5ApiRecoverableException27CVC5ApiRecoverableExceptionERKNSt6stringE", "cvc5::CVC5ApiRecoverableException::CVC5ApiRecoverableException::str"], [57, 6, 1, "_CPPv4N4cvc527CVC5ApiRecoverableException27CVC5ApiRecoverableExceptionERKNSt12stringstreamE", "cvc5::CVC5ApiRecoverableException::CVC5ApiRecoverableException::stream"], [30, 3, 1, "_CPPv4N4cvc58DatatypeE", "cvc5::Datatype"], [30, 5, 1, "_CPPv4N4cvc58Datatype8DatatypeEv", "cvc5::Datatype::Datatype"], [30, 5, 1, "_CPPv4NK4cvc58Datatype5beginEv", "cvc5::Datatype::begin"], [30, 3, 1, "_CPPv4N4cvc58Datatype14const_iteratorE", "cvc5::Datatype::const_iterator"], [30, 5, 1, "_CPPv4N4cvc58Datatype14const_iterator14const_iteratorEv", "cvc5::Datatype::const_iterator::const_iterator"], [30, 1, 1, "_CPPv4N4cvc58Datatype14const_iterator15difference_typeE", "cvc5::Datatype::const_iterator::difference_type"], [30, 1, 1, "_CPPv4N4cvc58Datatype14const_iterator17iterator_categoryE", "cvc5::Datatype::const_iterator::iterator_category"], [30, 5, 1, "_CPPv4NK4cvc58Datatype14const_iteratorneERK14const_iterator", "cvc5::Datatype::const_iterator::operator!="], [30, 6, 1, "_CPPv4NK4cvc58Datatype14const_iteratorneERK14const_iterator", "cvc5::Datatype::const_iterator::operator!=::it"], [30, 5, 1, "_CPPv4NK4cvc58Datatype14const_iteratormlEv", "cvc5::Datatype::const_iterator::operator*"], [30, 5, 1, "_CPPv4N4cvc58Datatype14const_iteratorppEi", "cvc5::Datatype::const_iterator::operator++"], [30, 5, 1, "_CPPv4N4cvc58Datatype14const_iteratorppEv", "cvc5::Datatype::const_iterator::operator++"], [30, 5, 1, "_CPPv4NK4cvc58Datatype14const_iteratorptEv", "cvc5::Datatype::const_iterator::operator->"], [30, 5, 1, "_CPPv4N4cvc58Datatype14const_iteratoraSERK14const_iterator", "cvc5::Datatype::const_iterator::operator="], [30, 6, 1, "_CPPv4N4cvc58Datatype14const_iteratoraSERK14const_iterator", "cvc5::Datatype::const_iterator::operator=::it"], [30, 5, 1, "_CPPv4NK4cvc58Datatype14const_iteratoreqERK14const_iterator", "cvc5::Datatype::const_iterator::operator=="], [30, 6, 1, "_CPPv4NK4cvc58Datatype14const_iteratoreqERK14const_iterator", "cvc5::Datatype::const_iterator::operator==::it"], [30, 1, 1, "_CPPv4N4cvc58Datatype14const_iterator7pointerE", "cvc5::Datatype::const_iterator::pointer"], [30, 1, 1, "_CPPv4N4cvc58Datatype14const_iterator9referenceE", "cvc5::Datatype::const_iterator::reference"], [30, 1, 1, "_CPPv4N4cvc58Datatype14const_iterator10value_typeE", "cvc5::Datatype::const_iterator::value_type"], [30, 5, 1, "_CPPv4NK4cvc58Datatype3endEv", "cvc5::Datatype::end"], [30, 5, 1, "_CPPv4NK4cvc58Datatype14getConstructorERKNSt6stringE", "cvc5::Datatype::getConstructor"], [30, 6, 1, "_CPPv4NK4cvc58Datatype14getConstructorERKNSt6stringE", "cvc5::Datatype::getConstructor::name"], [30, 5, 1, "_CPPv4NK4cvc58Datatype7getNameEv", "cvc5::Datatype::getName"], [30, 5, 1, "_CPPv4NK4cvc58Datatype18getNumConstructorsEv", "cvc5::Datatype::getNumConstructors"], [30, 5, 1, "_CPPv4NK4cvc58Datatype13getParametersEv", "cvc5::Datatype::getParameters"], [30, 5, 1, "_CPPv4NK4cvc58Datatype11getSelectorERKNSt6stringE", "cvc5::Datatype::getSelector"], [30, 6, 1, "_CPPv4NK4cvc58Datatype11getSelectorERKNSt6stringE", "cvc5::Datatype::getSelector::name"], [30, 5, 1, "_CPPv4NK4cvc58Datatype12isCodatatypeEv", "cvc5::Datatype::isCodatatype"], [30, 5, 1, "_CPPv4NK4cvc58Datatype8isFiniteEv", "cvc5::Datatype::isFinite"], [30, 5, 1, "_CPPv4NK4cvc58Datatype6isNullEv", "cvc5::Datatype::isNull"], [30, 5, 1, "_CPPv4NK4cvc58Datatype12isParametricEv", "cvc5::Datatype::isParametric"], [30, 5, 1, "_CPPv4NK4cvc58Datatype8isRecordEv", "cvc5::Datatype::isRecord"], [30, 5, 1, "_CPPv4NK4cvc58Datatype7isTupleEv", "cvc5::Datatype::isTuple"], [30, 5, 1, "_CPPv4NK4cvc58Datatype13isWellFoundedEv", "cvc5::Datatype::isWellFounded"], [30, 5, 1, "_CPPv4NK4cvc58DatatypeeqERK8Datatype", "cvc5::Datatype::operator=="], [30, 6, 1, "_CPPv4NK4cvc58DatatypeeqERK8Datatype", "cvc5::Datatype::operator==::dt"], [30, 5, 1, "_CPPv4NK4cvc58DatatypeixE6size_t", "cvc5::Datatype::operator[]"], [30, 5, 1, "_CPPv4NK4cvc58DatatypeixERKNSt6stringE", "cvc5::Datatype::operator[]"], [30, 6, 1, "_CPPv4NK4cvc58DatatypeixE6size_t", "cvc5::Datatype::operator[]::idx"], [30, 6, 1, "_CPPv4NK4cvc58DatatypeixERKNSt6stringE", "cvc5::Datatype::operator[]::name"], [30, 5, 1, "_CPPv4NK4cvc58Datatype8toStringEv", "cvc5::Datatype::toString"], [30, 5, 1, "_CPPv4N4cvc58DatatypeD0Ev", "cvc5::Datatype::~Datatype"], [31, 3, 1, "_CPPv4N4cvc519DatatypeConstructorE", "cvc5::DatatypeConstructor"], [31, 5, 1, "_CPPv4N4cvc519DatatypeConstructor19DatatypeConstructorEv", "cvc5::DatatypeConstructor::DatatypeConstructor"], [31, 5, 1, "_CPPv4NK4cvc519DatatypeConstructor5beginEv", "cvc5::DatatypeConstructor::begin"], [31, 3, 1, "_CPPv4N4cvc519DatatypeConstructor14const_iteratorE", "cvc5::DatatypeConstructor::const_iterator"], [31, 5, 1, "_CPPv4N4cvc519DatatypeConstructor14const_iterator14const_iteratorEv", "cvc5::DatatypeConstructor::const_iterator::const_iterator"], [31, 1, 1, "_CPPv4N4cvc519DatatypeConstructor14const_iterator15difference_typeE", "cvc5::DatatypeConstructor::const_iterator::difference_type"], [31, 1, 1, "_CPPv4N4cvc519DatatypeConstructor14const_iterator17iterator_categoryE", "cvc5::DatatypeConstructor::const_iterator::iterator_category"], [31, 5, 1, "_CPPv4NK4cvc519DatatypeConstructor14const_iteratorneERK14const_iterator", "cvc5::DatatypeConstructor::const_iterator::operator!="], [31, 6, 1, "_CPPv4NK4cvc519DatatypeConstructor14const_iteratorneERK14const_iterator", "cvc5::DatatypeConstructor::const_iterator::operator!=::it"], [31, 5, 1, "_CPPv4NK4cvc519DatatypeConstructor14const_iteratormlEv", "cvc5::DatatypeConstructor::const_iterator::operator*"], [31, 5, 1, "_CPPv4N4cvc519DatatypeConstructor14const_iteratorppEi", "cvc5::DatatypeConstructor::const_iterator::operator++"], [31, 5, 1, "_CPPv4N4cvc519DatatypeConstructor14const_iteratorppEv", "cvc5::DatatypeConstructor::const_iterator::operator++"], [31, 5, 1, "_CPPv4NK4cvc519DatatypeConstructor14const_iteratorptEv", "cvc5::DatatypeConstructor::const_iterator::operator->"], [31, 5, 1, "_CPPv4N4cvc519DatatypeConstructor14const_iteratoraSERK14const_iterator", "cvc5::DatatypeConstructor::const_iterator::operator="], [31, 6, 1, "_CPPv4N4cvc519DatatypeConstructor14const_iteratoraSERK14const_iterator", "cvc5::DatatypeConstructor::const_iterator::operator=::it"], [31, 5, 1, "_CPPv4NK4cvc519DatatypeConstructor14const_iteratoreqERK14const_iterator", "cvc5::DatatypeConstructor::const_iterator::operator=="], [31, 6, 1, "_CPPv4NK4cvc519DatatypeConstructor14const_iteratoreqERK14const_iterator", "cvc5::DatatypeConstructor::const_iterator::operator==::it"], [31, 1, 1, "_CPPv4N4cvc519DatatypeConstructor14const_iterator7pointerE", "cvc5::DatatypeConstructor::const_iterator::pointer"], [31, 1, 1, "_CPPv4N4cvc519DatatypeConstructor14const_iterator9referenceE", "cvc5::DatatypeConstructor::const_iterator::reference"], [31, 1, 1, "_CPPv4N4cvc519DatatypeConstructor14const_iterator10value_typeE", "cvc5::DatatypeConstructor::const_iterator::value_type"], [31, 5, 1, "_CPPv4NK4cvc519DatatypeConstructor3endEv", "cvc5::DatatypeConstructor::end"], [31, 5, 1, "_CPPv4NK4cvc519DatatypeConstructor19getInstantiatedTermERK4Sort", "cvc5::DatatypeConstructor::getInstantiatedTerm"], [31, 6, 1, "_CPPv4NK4cvc519DatatypeConstructor19getInstantiatedTermERK4Sort", "cvc5::DatatypeConstructor::getInstantiatedTerm::retSort"], [31, 5, 1, "_CPPv4NK4cvc519DatatypeConstructor7getNameEv", "cvc5::DatatypeConstructor::getName"], [31, 5, 1, "_CPPv4NK4cvc519DatatypeConstructor15getNumSelectorsEv", "cvc5::DatatypeConstructor::getNumSelectors"], [31, 5, 1, "_CPPv4NK4cvc519DatatypeConstructor11getSelectorERKNSt6stringE", "cvc5::DatatypeConstructor::getSelector"], [31, 6, 1, "_CPPv4NK4cvc519DatatypeConstructor11getSelectorERKNSt6stringE", "cvc5::DatatypeConstructor::getSelector::name"], [31, 5, 1, "_CPPv4NK4cvc519DatatypeConstructor7getTermEv", "cvc5::DatatypeConstructor::getTerm"], [31, 5, 1, "_CPPv4NK4cvc519DatatypeConstructor13getTesterTermEv", "cvc5::DatatypeConstructor::getTesterTerm"], [31, 5, 1, "_CPPv4NK4cvc519DatatypeConstructor6isNullEv", "cvc5::DatatypeConstructor::isNull"], [31, 5, 1, "_CPPv4NK4cvc519DatatypeConstructoreqERK19DatatypeConstructor", "cvc5::DatatypeConstructor::operator=="], [31, 6, 1, "_CPPv4NK4cvc519DatatypeConstructoreqERK19DatatypeConstructor", "cvc5::DatatypeConstructor::operator==::cons"], [31, 5, 1, "_CPPv4NK4cvc519DatatypeConstructorixE6size_t", "cvc5::DatatypeConstructor::operator[]"], [31, 5, 1, "_CPPv4NK4cvc519DatatypeConstructorixERKNSt6stringE", "cvc5::DatatypeConstructor::operator[]"], [31, 6, 1, "_CPPv4NK4cvc519DatatypeConstructorixE6size_t", "cvc5::DatatypeConstructor::operator[]::index"], [31, 6, 1, "_CPPv4NK4cvc519DatatypeConstructorixERKNSt6stringE", "cvc5::DatatypeConstructor::operator[]::name"], [31, 5, 1, "_CPPv4NK4cvc519DatatypeConstructor8toStringEv", "cvc5::DatatypeConstructor::toString"], [31, 5, 1, "_CPPv4N4cvc519DatatypeConstructorD0Ev", "cvc5::DatatypeConstructor::~DatatypeConstructor"], [32, 3, 1, "_CPPv4N4cvc523DatatypeConstructorDeclE", "cvc5::DatatypeConstructorDecl"], [32, 5, 1, "_CPPv4N4cvc523DatatypeConstructorDecl23DatatypeConstructorDeclEv", "cvc5::DatatypeConstructorDecl::DatatypeConstructorDecl"], [32, 5, 1, "_CPPv4N4cvc523DatatypeConstructorDecl11addSelectorERKNSt6stringERK4Sort", "cvc5::DatatypeConstructorDecl::addSelector"], [32, 6, 1, "_CPPv4N4cvc523DatatypeConstructorDecl11addSelectorERKNSt6stringERK4Sort", "cvc5::DatatypeConstructorDecl::addSelector::name"], [32, 6, 1, "_CPPv4N4cvc523DatatypeConstructorDecl11addSelectorERKNSt6stringERK4Sort", "cvc5::DatatypeConstructorDecl::addSelector::sort"], [32, 5, 1, "_CPPv4N4cvc523DatatypeConstructorDecl15addSelectorSelfERKNSt6stringE", "cvc5::DatatypeConstructorDecl::addSelectorSelf"], [32, 6, 1, "_CPPv4N4cvc523DatatypeConstructorDecl15addSelectorSelfERKNSt6stringE", "cvc5::DatatypeConstructorDecl::addSelectorSelf::name"], [32, 5, 1, "_CPPv4N4cvc523DatatypeConstructorDecl21addSelectorUnresolvedERKNSt6stringERKNSt6stringE", "cvc5::DatatypeConstructorDecl::addSelectorUnresolved"], [32, 6, 1, "_CPPv4N4cvc523DatatypeConstructorDecl21addSelectorUnresolvedERKNSt6stringERKNSt6stringE", "cvc5::DatatypeConstructorDecl::addSelectorUnresolved::name"], [32, 6, 1, "_CPPv4N4cvc523DatatypeConstructorDecl21addSelectorUnresolvedERKNSt6stringERKNSt6stringE", "cvc5::DatatypeConstructorDecl::addSelectorUnresolved::unresDataypeName"], [32, 5, 1, "_CPPv4NK4cvc523DatatypeConstructorDecl6isNullEv", "cvc5::DatatypeConstructorDecl::isNull"], [32, 5, 1, "_CPPv4NK4cvc523DatatypeConstructorDecleqERK23DatatypeConstructorDecl", "cvc5::DatatypeConstructorDecl::operator=="], [32, 6, 1, "_CPPv4NK4cvc523DatatypeConstructorDecleqERK23DatatypeConstructorDecl", "cvc5::DatatypeConstructorDecl::operator==::decl"], [32, 5, 1, "_CPPv4NK4cvc523DatatypeConstructorDecl8toStringEv", "cvc5::DatatypeConstructorDecl::toString"], [32, 5, 1, "_CPPv4N4cvc523DatatypeConstructorDeclD0Ev", "cvc5::DatatypeConstructorDecl::~DatatypeConstructorDecl"], [33, 3, 1, "_CPPv4N4cvc512DatatypeDeclE", "cvc5::DatatypeDecl"], [33, 5, 1, "_CPPv4N4cvc512DatatypeDecl12DatatypeDeclEv", "cvc5::DatatypeDecl::DatatypeDecl"], [33, 5, 1, "_CPPv4N4cvc512DatatypeDecl14addConstructorERK23DatatypeConstructorDecl", "cvc5::DatatypeDecl::addConstructor"], [33, 6, 1, "_CPPv4N4cvc512DatatypeDecl14addConstructorERK23DatatypeConstructorDecl", "cvc5::DatatypeDecl::addConstructor::ctor"], [33, 5, 1, "_CPPv4NK4cvc512DatatypeDecl7getNameEv", "cvc5::DatatypeDecl::getName"], [33, 5, 1, "_CPPv4NK4cvc512DatatypeDecl18getNumConstructorsEv", "cvc5::DatatypeDecl::getNumConstructors"], [33, 5, 1, "_CPPv4NK4cvc512DatatypeDecl6isNullEv", "cvc5::DatatypeDecl::isNull"], [33, 5, 1, "_CPPv4NK4cvc512DatatypeDecl12isParametricEv", "cvc5::DatatypeDecl::isParametric"], [33, 5, 1, "_CPPv4NK4cvc512DatatypeDecl10isResolvedEv", "cvc5::DatatypeDecl::isResolved"], [33, 5, 1, "_CPPv4NK4cvc512DatatypeDecleqERK12DatatypeDecl", "cvc5::DatatypeDecl::operator=="], [33, 6, 1, "_CPPv4NK4cvc512DatatypeDecleqERK12DatatypeDecl", "cvc5::DatatypeDecl::operator==::decl"], [33, 5, 1, "_CPPv4NK4cvc512DatatypeDecl8toStringEv", "cvc5::DatatypeDecl::toString"], [33, 5, 1, "_CPPv4N4cvc512DatatypeDeclD0Ev", "cvc5::DatatypeDecl::~DatatypeDecl"], [34, 3, 1, "_CPPv4N4cvc516DatatypeSelectorE", "cvc5::DatatypeSelector"], [34, 5, 1, "_CPPv4N4cvc516DatatypeSelector16DatatypeSelectorEv", "cvc5::DatatypeSelector::DatatypeSelector"], [34, 5, 1, "_CPPv4NK4cvc516DatatypeSelector15getCodomainSortEv", "cvc5::DatatypeSelector::getCodomainSort"], [34, 5, 1, "_CPPv4NK4cvc516DatatypeSelector7getNameEv", "cvc5::DatatypeSelector::getName"], [34, 5, 1, "_CPPv4NK4cvc516DatatypeSelector7getTermEv", "cvc5::DatatypeSelector::getTerm"], [34, 5, 1, "_CPPv4NK4cvc516DatatypeSelector14getUpdaterTermEv", "cvc5::DatatypeSelector::getUpdaterTerm"], [34, 5, 1, "_CPPv4NK4cvc516DatatypeSelector6isNullEv", "cvc5::DatatypeSelector::isNull"], [34, 5, 1, "_CPPv4NK4cvc516DatatypeSelectoreqERK16DatatypeSelector", "cvc5::DatatypeSelector::operator=="], [34, 6, 1, "_CPPv4NK4cvc516DatatypeSelectoreqERK16DatatypeSelector", "cvc5::DatatypeSelector::operator==::sel"], [34, 5, 1, "_CPPv4NK4cvc516DatatypeSelector8toStringEv", "cvc5::DatatypeSelector::toString"], [34, 5, 1, "_CPPv4N4cvc516DatatypeSelectorD0Ev", "cvc5::DatatypeSelector::~DatatypeSelector"], [35, 3, 1, "_CPPv4N4cvc513DriverOptionsE", "cvc5::DriverOptions"], [35, 5, 1, "_CPPv4NK4cvc513DriverOptions3errEv", "cvc5::DriverOptions::err"], [35, 5, 1, "_CPPv4NK4cvc513DriverOptions2inEv", "cvc5::DriverOptions::in"], [35, 5, 1, "_CPPv4NK4cvc513DriverOptions3outEv", "cvc5::DriverOptions::out"], [36, 3, 1, "_CPPv4N4cvc57GrammarE", "cvc5::Grammar"], [36, 5, 1, "_CPPv4N4cvc57Grammar7GrammarEv", "cvc5::Grammar::Grammar"], [36, 5, 1, "_CPPv4N4cvc57Grammar14addAnyConstantERK4Term", "cvc5::Grammar::addAnyConstant"], [36, 6, 1, "_CPPv4N4cvc57Grammar14addAnyConstantERK4Term", "cvc5::Grammar::addAnyConstant::ntSymbol"], [36, 5, 1, "_CPPv4N4cvc57Grammar14addAnyVariableERK4Term", "cvc5::Grammar::addAnyVariable"], [36, 6, 1, "_CPPv4N4cvc57Grammar14addAnyVariableERK4Term", "cvc5::Grammar::addAnyVariable::ntSymbol"], [36, 5, 1, "_CPPv4N4cvc57Grammar7addRuleERK4TermRK4Term", "cvc5::Grammar::addRule"], [36, 6, 1, "_CPPv4N4cvc57Grammar7addRuleERK4TermRK4Term", "cvc5::Grammar::addRule::ntSymbol"], [36, 6, 1, "_CPPv4N4cvc57Grammar7addRuleERK4TermRK4Term", "cvc5::Grammar::addRule::rule"], [36, 5, 1, "_CPPv4N4cvc57Grammar8addRulesERK4TermRKNSt6vectorI4TermEE", "cvc5::Grammar::addRules"], [36, 6, 1, "_CPPv4N4cvc57Grammar8addRulesERK4TermRKNSt6vectorI4TermEE", "cvc5::Grammar::addRules::ntSymbol"], [36, 6, 1, "_CPPv4N4cvc57Grammar8addRulesERK4TermRKNSt6vectorI4TermEE", "cvc5::Grammar::addRules::rules"], [36, 5, 1, "_CPPv4NK4cvc57Grammar6isNullEv", "cvc5::Grammar::isNull"], [36, 5, 1, "_CPPv4NK4cvc57GrammarneERK7Grammar", "cvc5::Grammar::operator!="], [36, 6, 1, "_CPPv4NK4cvc57GrammarneERK7Grammar", "cvc5::Grammar::operator!=::grammar"], [36, 5, 1, "_CPPv4NK4cvc57GrammareqERK7Grammar", "cvc5::Grammar::operator=="], [36, 6, 1, "_CPPv4NK4cvc57GrammareqERK7Grammar", "cvc5::Grammar::operator==::grammar"], [36, 5, 1, "_CPPv4NK4cvc57Grammar8toStringEv", "cvc5::Grammar::toString"], [36, 5, 1, "_CPPv4N4cvc57GrammarD0Ev", "cvc5::Grammar::~Grammar"], [51, 2, 1, "_CPPv4N4cvc54KindE", "cvc5::Kind"], [51, 0, 1, "_CPPv4N4cvc54Kind3ABSE", "cvc5::Kind::ABS"], [51, 0, 1, "_CPPv4N4cvc54Kind3ADDE", "cvc5::Kind::ADD"], [51, 0, 1, "_CPPv4N4cvc54Kind3ANDE", "cvc5::Kind::AND"], [51, 0, 1, "_CPPv4N4cvc54Kind17APPLY_CONSTRUCTORE", "cvc5::Kind::APPLY_CONSTRUCTOR"], [51, 0, 1, "_CPPv4N4cvc54Kind14APPLY_SELECTORE", "cvc5::Kind::APPLY_SELECTOR"], [51, 0, 1, "_CPPv4N4cvc54Kind12APPLY_TESTERE", "cvc5::Kind::APPLY_TESTER"], [51, 0, 1, "_CPPv4N4cvc54Kind8APPLY_UFE", "cvc5::Kind::APPLY_UF"], [51, 0, 1, "_CPPv4N4cvc54Kind13APPLY_UPDATERE", "cvc5::Kind::APPLY_UPDATER"], [51, 0, 1, "_CPPv4N4cvc54Kind11ARCCOSECANTE", "cvc5::Kind::ARCCOSECANT"], [51, 0, 1, "_CPPv4N4cvc54Kind9ARCCOSINEE", "cvc5::Kind::ARCCOSINE"], [51, 0, 1, "_CPPv4N4cvc54Kind12ARCCOTANGENTE", "cvc5::Kind::ARCCOTANGENT"], [51, 0, 1, "_CPPv4N4cvc54Kind9ARCSECANTE", "cvc5::Kind::ARCSECANT"], [51, 0, 1, "_CPPv4N4cvc54Kind7ARCSINEE", "cvc5::Kind::ARCSINE"], [51, 0, 1, "_CPPv4N4cvc54Kind10ARCTANGENTE", "cvc5::Kind::ARCTANGENT"], [51, 0, 1, "_CPPv4N4cvc54Kind8BAG_CARDE", "cvc5::Kind::BAG_CARD"], [51, 0, 1, "_CPPv4N4cvc54Kind10BAG_CHOOSEE", "cvc5::Kind::BAG_CHOOSE"], [51, 0, 1, "_CPPv4N4cvc54Kind9BAG_COUNTE", "cvc5::Kind::BAG_COUNT"], [51, 0, 1, "_CPPv4N4cvc54Kind21BAG_DIFFERENCE_REMOVEE", "cvc5::Kind::BAG_DIFFERENCE_REMOVE"], [51, 0, 1, "_CPPv4N4cvc54Kind23BAG_DIFFERENCE_SUBTRACTE", "cvc5::Kind::BAG_DIFFERENCE_SUBTRACT"], [51, 0, 1, "_CPPv4N4cvc54Kind9BAG_EMPTYE", "cvc5::Kind::BAG_EMPTY"], [51, 0, 1, "_CPPv4N4cvc54Kind10BAG_FILTERE", "cvc5::Kind::BAG_FILTER"], [51, 0, 1, "_CPPv4N4cvc54Kind8BAG_FOLDE", "cvc5::Kind::BAG_FOLD"], [51, 0, 1, "_CPPv4N4cvc54Kind13BAG_INTER_MINE", "cvc5::Kind::BAG_INTER_MIN"], [51, 0, 1, "_CPPv4N4cvc54Kind8BAG_MAKEE", "cvc5::Kind::BAG_MAKE"], [51, 0, 1, "_CPPv4N4cvc54Kind7BAG_MAPE", "cvc5::Kind::BAG_MAP"], [51, 0, 1, "_CPPv4N4cvc54Kind10BAG_MEMBERE", "cvc5::Kind::BAG_MEMBER"], [51, 0, 1, "_CPPv4N4cvc54Kind13BAG_PARTITIONE", "cvc5::Kind::BAG_PARTITION"], [51, 0, 1, "_CPPv4N4cvc54Kind9BAG_SETOFE", "cvc5::Kind::BAG_SETOF"], [51, 0, 1, "_CPPv4N4cvc54Kind10BAG_SUBBAGE", "cvc5::Kind::BAG_SUBBAG"], [51, 0, 1, "_CPPv4N4cvc54Kind18BAG_UNION_DISJOINTE", "cvc5::Kind::BAG_UNION_DISJOINT"], [51, 0, 1, "_CPPv4N4cvc54Kind13BAG_UNION_MAXE", "cvc5::Kind::BAG_UNION_MAX"], [51, 0, 1, "_CPPv4N4cvc54Kind13BITVECTOR_ADDE", "cvc5::Kind::BITVECTOR_ADD"], [51, 0, 1, "_CPPv4N4cvc54Kind13BITVECTOR_ANDE", "cvc5::Kind::BITVECTOR_AND"], [51, 0, 1, "_CPPv4N4cvc54Kind14BITVECTOR_ASHRE", "cvc5::Kind::BITVECTOR_ASHR"], [51, 0, 1, "_CPPv4N4cvc54Kind13BITVECTOR_BITE", "cvc5::Kind::BITVECTOR_BIT"], [51, 0, 1, "_CPPv4N4cvc54Kind14BITVECTOR_COMPE", "cvc5::Kind::BITVECTOR_COMP"], [51, 0, 1, "_CPPv4N4cvc54Kind16BITVECTOR_CONCATE", "cvc5::Kind::BITVECTOR_CONCAT"], [51, 0, 1, "_CPPv4N4cvc54Kind17BITVECTOR_EXTRACTE", "cvc5::Kind::BITVECTOR_EXTRACT"], [51, 0, 1, "_CPPv4N4cvc54Kind20BITVECTOR_FROM_BOOLSE", "cvc5::Kind::BITVECTOR_FROM_BOOLS"], [51, 0, 1, "_CPPv4N4cvc54Kind13BITVECTOR_ITEE", "cvc5::Kind::BITVECTOR_ITE"], [51, 0, 1, "_CPPv4N4cvc54Kind14BITVECTOR_LSHRE", "cvc5::Kind::BITVECTOR_LSHR"], [51, 0, 1, "_CPPv4N4cvc54Kind14BITVECTOR_MULTE", "cvc5::Kind::BITVECTOR_MULT"], [51, 0, 1, "_CPPv4N4cvc54Kind14BITVECTOR_NANDE", "cvc5::Kind::BITVECTOR_NAND"], [51, 0, 1, "_CPPv4N4cvc54Kind13BITVECTOR_NEGE", "cvc5::Kind::BITVECTOR_NEG"], [51, 0, 1, "_CPPv4N4cvc54Kind14BITVECTOR_NEGOE", "cvc5::Kind::BITVECTOR_NEGO"], [51, 0, 1, "_CPPv4N4cvc54Kind13BITVECTOR_NORE", "cvc5::Kind::BITVECTOR_NOR"], [51, 0, 1, "_CPPv4N4cvc54Kind13BITVECTOR_NOTE", "cvc5::Kind::BITVECTOR_NOT"], [51, 0, 1, "_CPPv4N4cvc54Kind12BITVECTOR_ORE", "cvc5::Kind::BITVECTOR_OR"], [51, 0, 1, "_CPPv4N4cvc54Kind16BITVECTOR_REDANDE", "cvc5::Kind::BITVECTOR_REDAND"], [51, 0, 1, "_CPPv4N4cvc54Kind15BITVECTOR_REDORE", "cvc5::Kind::BITVECTOR_REDOR"], [51, 0, 1, "_CPPv4N4cvc54Kind16BITVECTOR_REPEATE", "cvc5::Kind::BITVECTOR_REPEAT"], [51, 0, 1, "_CPPv4N4cvc54Kind21BITVECTOR_ROTATE_LEFTE", "cvc5::Kind::BITVECTOR_ROTATE_LEFT"], [51, 0, 1, "_CPPv4N4cvc54Kind22BITVECTOR_ROTATE_RIGHTE", "cvc5::Kind::BITVECTOR_ROTATE_RIGHT"], [51, 0, 1, "_CPPv4N4cvc54Kind15BITVECTOR_SADDOE", "cvc5::Kind::BITVECTOR_SADDO"], [51, 0, 1, "_CPPv4N4cvc54Kind14BITVECTOR_SDIVE", "cvc5::Kind::BITVECTOR_SDIV"], [51, 0, 1, "_CPPv4N4cvc54Kind15BITVECTOR_SDIVOE", "cvc5::Kind::BITVECTOR_SDIVO"], [51, 0, 1, "_CPPv4N4cvc54Kind13BITVECTOR_SGEE", "cvc5::Kind::BITVECTOR_SGE"], [51, 0, 1, "_CPPv4N4cvc54Kind13BITVECTOR_SGTE", "cvc5::Kind::BITVECTOR_SGT"], [51, 0, 1, "_CPPv4N4cvc54Kind13BITVECTOR_SHLE", "cvc5::Kind::BITVECTOR_SHL"], [51, 0, 1, "_CPPv4N4cvc54Kind21BITVECTOR_SIGN_EXTENDE", "cvc5::Kind::BITVECTOR_SIGN_EXTEND"], [51, 0, 1, "_CPPv4N4cvc54Kind13BITVECTOR_SLEE", "cvc5::Kind::BITVECTOR_SLE"], [51, 0, 1, "_CPPv4N4cvc54Kind13BITVECTOR_SLTE", "cvc5::Kind::BITVECTOR_SLT"], [51, 0, 1, "_CPPv4N4cvc54Kind15BITVECTOR_SLTBVE", "cvc5::Kind::BITVECTOR_SLTBV"], [51, 0, 1, "_CPPv4N4cvc54Kind14BITVECTOR_SMODE", "cvc5::Kind::BITVECTOR_SMOD"], [51, 0, 1, "_CPPv4N4cvc54Kind15BITVECTOR_SMULOE", "cvc5::Kind::BITVECTOR_SMULO"], [51, 0, 1, "_CPPv4N4cvc54Kind14BITVECTOR_SREME", "cvc5::Kind::BITVECTOR_SREM"], [51, 0, 1, "_CPPv4N4cvc54Kind15BITVECTOR_SSUBOE", "cvc5::Kind::BITVECTOR_SSUBO"], [51, 0, 1, "_CPPv4N4cvc54Kind13BITVECTOR_SUBE", "cvc5::Kind::BITVECTOR_SUB"], [51, 0, 1, "_CPPv4N4cvc54Kind16BITVECTOR_TO_NATE", "cvc5::Kind::BITVECTOR_TO_NAT"], [51, 0, 1, "_CPPv4N4cvc54Kind15BITVECTOR_UADDOE", "cvc5::Kind::BITVECTOR_UADDO"], [51, 0, 1, "_CPPv4N4cvc54Kind14BITVECTOR_UDIVE", "cvc5::Kind::BITVECTOR_UDIV"], [51, 0, 1, "_CPPv4N4cvc54Kind13BITVECTOR_UGEE", "cvc5::Kind::BITVECTOR_UGE"], [51, 0, 1, "_CPPv4N4cvc54Kind13BITVECTOR_UGTE", "cvc5::Kind::BITVECTOR_UGT"], [51, 0, 1, "_CPPv4N4cvc54Kind13BITVECTOR_ULEE", "cvc5::Kind::BITVECTOR_ULE"], [51, 0, 1, "_CPPv4N4cvc54Kind13BITVECTOR_ULTE", "cvc5::Kind::BITVECTOR_ULT"], [51, 0, 1, "_CPPv4N4cvc54Kind15BITVECTOR_ULTBVE", "cvc5::Kind::BITVECTOR_ULTBV"], [51, 0, 1, "_CPPv4N4cvc54Kind15BITVECTOR_UMULOE", "cvc5::Kind::BITVECTOR_UMULO"], [51, 0, 1, "_CPPv4N4cvc54Kind14BITVECTOR_UREME", "cvc5::Kind::BITVECTOR_UREM"], [51, 0, 1, "_CPPv4N4cvc54Kind15BITVECTOR_USUBOE", "cvc5::Kind::BITVECTOR_USUBO"], [51, 0, 1, "_CPPv4N4cvc54Kind14BITVECTOR_XNORE", "cvc5::Kind::BITVECTOR_XNOR"], [51, 0, 1, "_CPPv4N4cvc54Kind13BITVECTOR_XORE", "cvc5::Kind::BITVECTOR_XOR"], [51, 0, 1, "_CPPv4N4cvc54Kind21BITVECTOR_ZERO_EXTENDE", "cvc5::Kind::BITVECTOR_ZERO_EXTEND"], [51, 0, 1, "_CPPv4N4cvc54Kind22CARDINALITY_CONSTRAINTE", "cvc5::Kind::CARDINALITY_CONSTRAINT"], [51, 0, 1, "_CPPv4N4cvc54Kind8CONSTANTE", "cvc5::Kind::CONSTANT"], [51, 0, 1, "_CPPv4N4cvc54Kind11CONST_ARRAYE", "cvc5::Kind::CONST_ARRAY"], [51, 0, 1, "_CPPv4N4cvc54Kind15CONST_BITVECTORE", "cvc5::Kind::CONST_BITVECTOR"], [51, 0, 1, "_CPPv4N4cvc54Kind13CONST_BOOLEANE", "cvc5::Kind::CONST_BOOLEAN"], [51, 0, 1, "_CPPv4N4cvc54Kind18CONST_FINITE_FIELDE", "cvc5::Kind::CONST_FINITE_FIELD"], [51, 0, 1, "_CPPv4N4cvc54Kind19CONST_FLOATINGPOINTE", "cvc5::Kind::CONST_FLOATINGPOINT"], [51, 0, 1, "_CPPv4N4cvc54Kind13CONST_INTEGERE", "cvc5::Kind::CONST_INTEGER"], [51, 0, 1, "_CPPv4N4cvc54Kind14CONST_RATIONALE", "cvc5::Kind::CONST_RATIONAL"], [51, 0, 1, "_CPPv4N4cvc54Kind18CONST_ROUNDINGMODEE", "cvc5::Kind::CONST_ROUNDINGMODE"], [51, 0, 1, "_CPPv4N4cvc54Kind14CONST_SEQUENCEE", "cvc5::Kind::CONST_SEQUENCE"], [51, 0, 1, "_CPPv4N4cvc54Kind12CONST_STRINGE", "cvc5::Kind::CONST_STRING"], [51, 0, 1, "_CPPv4N4cvc54Kind8COSECANTE", "cvc5::Kind::COSECANT"], [51, 0, 1, "_CPPv4N4cvc54Kind6COSINEE", "cvc5::Kind::COSINE"], [51, 0, 1, "_CPPv4N4cvc54Kind9COTANGENTE", "cvc5::Kind::COTANGENT"], [51, 0, 1, "_CPPv4N4cvc54Kind8DISTINCTE", "cvc5::Kind::DISTINCT"], [51, 0, 1, "_CPPv4N4cvc54Kind9DIVISIBLEE", "cvc5::Kind::DIVISIBLE"], [51, 0, 1, "_CPPv4N4cvc54Kind8DIVISIONE", "cvc5::Kind::DIVISION"], [51, 0, 1, "_CPPv4N4cvc54Kind14DIVISION_TOTALE", "cvc5::Kind::DIVISION_TOTAL"], [51, 0, 1, "_CPPv4N4cvc54Kind5EQUALE", "cvc5::Kind::EQUAL"], [51, 0, 1, "_CPPv4N4cvc54Kind8EQ_RANGEE", "cvc5::Kind::EQ_RANGE"], [51, 0, 1, "_CPPv4N4cvc54Kind6EXISTSE", "cvc5::Kind::EXISTS"], [51, 0, 1, "_CPPv4N4cvc54Kind11EXPONENTIALE", "cvc5::Kind::EXPONENTIAL"], [51, 0, 1, "_CPPv4N4cvc54Kind16FINITE_FIELD_ADDE", "cvc5::Kind::FINITE_FIELD_ADD"], [51, 0, 1, "_CPPv4N4cvc54Kind19FINITE_FIELD_BITSUME", "cvc5::Kind::FINITE_FIELD_BITSUM"], [51, 0, 1, "_CPPv4N4cvc54Kind17FINITE_FIELD_MULTE", "cvc5::Kind::FINITE_FIELD_MULT"], [51, 0, 1, "_CPPv4N4cvc54Kind16FINITE_FIELD_NEGE", "cvc5::Kind::FINITE_FIELD_NEG"], [51, 0, 1, "_CPPv4N4cvc54Kind17FLOATINGPOINT_ABSE", "cvc5::Kind::FLOATINGPOINT_ABS"], [51, 0, 1, "_CPPv4N4cvc54Kind17FLOATINGPOINT_ADDE", "cvc5::Kind::FLOATINGPOINT_ADD"], [51, 0, 1, "_CPPv4N4cvc54Kind17FLOATINGPOINT_DIVE", "cvc5::Kind::FLOATINGPOINT_DIV"], [51, 0, 1, "_CPPv4N4cvc54Kind16FLOATINGPOINT_EQE", "cvc5::Kind::FLOATINGPOINT_EQ"], [51, 0, 1, "_CPPv4N4cvc54Kind17FLOATINGPOINT_FMAE", "cvc5::Kind::FLOATINGPOINT_FMA"], [51, 0, 1, "_CPPv4N4cvc54Kind16FLOATINGPOINT_FPE", "cvc5::Kind::FLOATINGPOINT_FP"], [51, 0, 1, "_CPPv4N4cvc54Kind17FLOATINGPOINT_GEQE", "cvc5::Kind::FLOATINGPOINT_GEQ"], [51, 0, 1, "_CPPv4N4cvc54Kind16FLOATINGPOINT_GTE", "cvc5::Kind::FLOATINGPOINT_GT"], [51, 0, 1, "_CPPv4N4cvc54Kind20FLOATINGPOINT_IS_INFE", "cvc5::Kind::FLOATINGPOINT_IS_INF"], [51, 0, 1, "_CPPv4N4cvc54Kind20FLOATINGPOINT_IS_NANE", "cvc5::Kind::FLOATINGPOINT_IS_NAN"], [51, 0, 1, "_CPPv4N4cvc54Kind20FLOATINGPOINT_IS_NEGE", "cvc5::Kind::FLOATINGPOINT_IS_NEG"], [51, 0, 1, "_CPPv4N4cvc54Kind23FLOATINGPOINT_IS_NORMALE", "cvc5::Kind::FLOATINGPOINT_IS_NORMAL"], [51, 0, 1, "_CPPv4N4cvc54Kind20FLOATINGPOINT_IS_POSE", "cvc5::Kind::FLOATINGPOINT_IS_POS"], [51, 0, 1, "_CPPv4N4cvc54Kind26FLOATINGPOINT_IS_SUBNORMALE", "cvc5::Kind::FLOATINGPOINT_IS_SUBNORMAL"], [51, 0, 1, "_CPPv4N4cvc54Kind21FLOATINGPOINT_IS_ZEROE", "cvc5::Kind::FLOATINGPOINT_IS_ZERO"], [51, 0, 1, "_CPPv4N4cvc54Kind17FLOATINGPOINT_LEQE", "cvc5::Kind::FLOATINGPOINT_LEQ"], [51, 0, 1, "_CPPv4N4cvc54Kind16FLOATINGPOINT_LTE", "cvc5::Kind::FLOATINGPOINT_LT"], [51, 0, 1, "_CPPv4N4cvc54Kind17FLOATINGPOINT_MAXE", "cvc5::Kind::FLOATINGPOINT_MAX"], [51, 0, 1, "_CPPv4N4cvc54Kind17FLOATINGPOINT_MINE", "cvc5::Kind::FLOATINGPOINT_MIN"], [51, 0, 1, "_CPPv4N4cvc54Kind18FLOATINGPOINT_MULTE", "cvc5::Kind::FLOATINGPOINT_MULT"], [51, 0, 1, "_CPPv4N4cvc54Kind17FLOATINGPOINT_NEGE", "cvc5::Kind::FLOATINGPOINT_NEG"], [51, 0, 1, "_CPPv4N4cvc54Kind17FLOATINGPOINT_REME", "cvc5::Kind::FLOATINGPOINT_REM"], [51, 0, 1, "_CPPv4N4cvc54Kind17FLOATINGPOINT_RTIE", "cvc5::Kind::FLOATINGPOINT_RTI"], [51, 0, 1, "_CPPv4N4cvc54Kind18FLOATINGPOINT_SQRTE", "cvc5::Kind::FLOATINGPOINT_SQRT"], [51, 0, 1, "_CPPv4N4cvc54Kind17FLOATINGPOINT_SUBE", "cvc5::Kind::FLOATINGPOINT_SUB"], [51, 0, 1, "_CPPv4N4cvc54Kind27FLOATINGPOINT_TO_FP_FROM_FPE", "cvc5::Kind::FLOATINGPOINT_TO_FP_FROM_FP"], [51, 0, 1, "_CPPv4N4cvc54Kind32FLOATINGPOINT_TO_FP_FROM_IEEE_BVE", "cvc5::Kind::FLOATINGPOINT_TO_FP_FROM_IEEE_BV"], [51, 0, 1, "_CPPv4N4cvc54Kind29FLOATINGPOINT_TO_FP_FROM_REALE", "cvc5::Kind::FLOATINGPOINT_TO_FP_FROM_REAL"], [51, 0, 1, "_CPPv4N4cvc54Kind28FLOATINGPOINT_TO_FP_FROM_SBVE", "cvc5::Kind::FLOATINGPOINT_TO_FP_FROM_SBV"], [51, 0, 1, "_CPPv4N4cvc54Kind28FLOATINGPOINT_TO_FP_FROM_UBVE", "cvc5::Kind::FLOATINGPOINT_TO_FP_FROM_UBV"], [51, 0, 1, "_CPPv4N4cvc54Kind21FLOATINGPOINT_TO_REALE", "cvc5::Kind::FLOATINGPOINT_TO_REAL"], [51, 0, 1, "_CPPv4N4cvc54Kind20FLOATINGPOINT_TO_SBVE", "cvc5::Kind::FLOATINGPOINT_TO_SBV"], [51, 0, 1, "_CPPv4N4cvc54Kind20FLOATINGPOINT_TO_UBVE", "cvc5::Kind::FLOATINGPOINT_TO_UBV"], [51, 0, 1, "_CPPv4N4cvc54Kind6FORALLE", "cvc5::Kind::FORALL"], [51, 0, 1, "_CPPv4N4cvc54Kind3GEQE", "cvc5::Kind::GEQ"], [51, 0, 1, "_CPPv4N4cvc54Kind2GTE", "cvc5::Kind::GT"], [51, 0, 1, "_CPPv4N4cvc54Kind8HO_APPLYE", "cvc5::Kind::HO_APPLY"], [51, 0, 1, "_CPPv4N4cvc54Kind4IANDE", "cvc5::Kind::IAND"], [51, 0, 1, "_CPPv4N4cvc54Kind7IMPLIESE", "cvc5::Kind::IMPLIES"], [51, 0, 1, "_CPPv4N4cvc54Kind16INST_ADD_TO_POOLE", "cvc5::Kind::INST_ADD_TO_POOL"], [51, 0, 1, "_CPPv4N4cvc54Kind14INST_ATTRIBUTEE", "cvc5::Kind::INST_ATTRIBUTE"], [51, 0, 1, "_CPPv4N4cvc54Kind15INST_NO_PATTERNE", "cvc5::Kind::INST_NO_PATTERN"], [51, 0, 1, "_CPPv4N4cvc54Kind12INST_PATTERNE", "cvc5::Kind::INST_PATTERN"], [51, 0, 1, "_CPPv4N4cvc54Kind17INST_PATTERN_LISTE", "cvc5::Kind::INST_PATTERN_LIST"], [51, 0, 1, "_CPPv4N4cvc54Kind9INST_POOLE", "cvc5::Kind::INST_POOL"], [51, 0, 1, "_CPPv4N4cvc54Kind13INTERNAL_KINDE", "cvc5::Kind::INTERNAL_KIND"], [51, 0, 1, "_CPPv4N4cvc54Kind13INTS_DIVISIONE", "cvc5::Kind::INTS_DIVISION"], [51, 0, 1, "_CPPv4N4cvc54Kind19INTS_DIVISION_TOTALE", "cvc5::Kind::INTS_DIVISION_TOTAL"], [51, 0, 1, "_CPPv4N4cvc54Kind12INTS_MODULUSE", "cvc5::Kind::INTS_MODULUS"], [51, 0, 1, "_CPPv4N4cvc54Kind18INTS_MODULUS_TOTALE", "cvc5::Kind::INTS_MODULUS_TOTAL"], [51, 0, 1, "_CPPv4N4cvc54Kind16INT_TO_BITVECTORE", "cvc5::Kind::INT_TO_BITVECTOR"], [51, 0, 1, "_CPPv4N4cvc54Kind10IS_INTEGERE", "cvc5::Kind::IS_INTEGER"], [51, 0, 1, "_CPPv4N4cvc54Kind3ITEE", "cvc5::Kind::ITE"], [51, 0, 1, "_CPPv4N4cvc54Kind6LAMBDAE", "cvc5::Kind::LAMBDA"], [51, 0, 1, "_CPPv4N4cvc54Kind9LAST_KINDE", "cvc5::Kind::LAST_KIND"], [51, 0, 1, "_CPPv4N4cvc54Kind3LEQE", "cvc5::Kind::LEQ"], [51, 0, 1, "_CPPv4N4cvc54Kind2LTE", "cvc5::Kind::LT"], [51, 0, 1, "_CPPv4N4cvc54Kind5MATCHE", "cvc5::Kind::MATCH"], [51, 0, 1, "_CPPv4N4cvc54Kind15MATCH_BIND_CASEE", "cvc5::Kind::MATCH_BIND_CASE"], [51, 0, 1, "_CPPv4N4cvc54Kind10MATCH_CASEE", "cvc5::Kind::MATCH_CASE"], [51, 0, 1, "_CPPv4N4cvc54Kind4MULTE", "cvc5::Kind::MULT"], [51, 0, 1, "_CPPv4N4cvc54Kind3NEGE", "cvc5::Kind::NEG"], [51, 0, 1, "_CPPv4N4cvc54Kind3NOTE", "cvc5::Kind::NOT"], [51, 0, 1, "_CPPv4N4cvc54Kind13NULLABLE_LIFTE", "cvc5::Kind::NULLABLE_LIFT"], [51, 0, 1, "_CPPv4N4cvc54Kind9NULL_TERME", "cvc5::Kind::NULL_TERM"], [51, 0, 1, "_CPPv4N4cvc54Kind2ORE", "cvc5::Kind::OR"], [51, 0, 1, "_CPPv4N4cvc54Kind2PIE", "cvc5::Kind::PI"], [51, 0, 1, "_CPPv4N4cvc54Kind3POWE", "cvc5::Kind::POW"], [51, 0, 1, "_CPPv4N4cvc54Kind4POW2E", "cvc5::Kind::POW2"], [51, 0, 1, "_CPPv4N4cvc54Kind10REGEXP_ALLE", "cvc5::Kind::REGEXP_ALL"], [51, 0, 1, "_CPPv4N4cvc54Kind14REGEXP_ALLCHARE", "cvc5::Kind::REGEXP_ALLCHAR"], [51, 0, 1, "_CPPv4N4cvc54Kind17REGEXP_COMPLEMENTE", "cvc5::Kind::REGEXP_COMPLEMENT"], [51, 0, 1, "_CPPv4N4cvc54Kind13REGEXP_CONCATE", "cvc5::Kind::REGEXP_CONCAT"], [51, 0, 1, "_CPPv4N4cvc54Kind11REGEXP_DIFFE", "cvc5::Kind::REGEXP_DIFF"], [51, 0, 1, "_CPPv4N4cvc54Kind12REGEXP_INTERE", "cvc5::Kind::REGEXP_INTER"], [51, 0, 1, "_CPPv4N4cvc54Kind11REGEXP_LOOPE", "cvc5::Kind::REGEXP_LOOP"], [51, 0, 1, "_CPPv4N4cvc54Kind11REGEXP_NONEE", "cvc5::Kind::REGEXP_NONE"], [51, 0, 1, "_CPPv4N4cvc54Kind10REGEXP_OPTE", "cvc5::Kind::REGEXP_OPT"], [51, 0, 1, "_CPPv4N4cvc54Kind11REGEXP_PLUSE", "cvc5::Kind::REGEXP_PLUS"], [51, 0, 1, "_CPPv4N4cvc54Kind12REGEXP_RANGEE", "cvc5::Kind::REGEXP_RANGE"], [51, 0, 1, "_CPPv4N4cvc54Kind13REGEXP_REPEATE", "cvc5::Kind::REGEXP_REPEAT"], [51, 0, 1, "_CPPv4N4cvc54Kind11REGEXP_STARE", "cvc5::Kind::REGEXP_STAR"], [51, 0, 1, "_CPPv4N4cvc54Kind12REGEXP_UNIONE", "cvc5::Kind::REGEXP_UNION"], [51, 0, 1, "_CPPv4N4cvc54Kind18RELATION_AGGREGATEE", "cvc5::Kind::RELATION_AGGREGATE"], [51, 0, 1, "_CPPv4N4cvc54Kind14RELATION_GROUPE", "cvc5::Kind::RELATION_GROUP"], [51, 0, 1, "_CPPv4N4cvc54Kind13RELATION_IDENE", "cvc5::Kind::RELATION_IDEN"], [51, 0, 1, "_CPPv4N4cvc54Kind13RELATION_JOINE", "cvc5::Kind::RELATION_JOIN"], [51, 0, 1, "_CPPv4N4cvc54Kind19RELATION_JOIN_IMAGEE", "cvc5::Kind::RELATION_JOIN_IMAGE"], [51, 0, 1, "_CPPv4N4cvc54Kind16RELATION_PRODUCTE", "cvc5::Kind::RELATION_PRODUCT"], [51, 0, 1, "_CPPv4N4cvc54Kind16RELATION_PROJECTE", "cvc5::Kind::RELATION_PROJECT"], [51, 0, 1, "_CPPv4N4cvc54Kind19RELATION_TABLE_JOINE", "cvc5::Kind::RELATION_TABLE_JOIN"], [51, 0, 1, "_CPPv4N4cvc54Kind17RELATION_TCLOSUREE", "cvc5::Kind::RELATION_TCLOSURE"], [51, 0, 1, "_CPPv4N4cvc54Kind18RELATION_TRANSPOSEE", "cvc5::Kind::RELATION_TRANSPOSE"], [51, 0, 1, "_CPPv4N4cvc54Kind6SECANTE", "cvc5::Kind::SECANT"], [51, 0, 1, "_CPPv4N4cvc54Kind6SELECTE", "cvc5::Kind::SELECT"], [51, 0, 1, "_CPPv4N4cvc54Kind7SEP_EMPE", "cvc5::Kind::SEP_EMP"], [51, 0, 1, "_CPPv4N4cvc54Kind7SEP_NILE", "cvc5::Kind::SEP_NIL"], [51, 0, 1, "_CPPv4N4cvc54Kind7SEP_PTOE", "cvc5::Kind::SEP_PTO"], [51, 0, 1, "_CPPv4N4cvc54Kind8SEP_STARE", "cvc5::Kind::SEP_STAR"], [51, 0, 1, "_CPPv4N4cvc54Kind8SEP_WANDE", "cvc5::Kind::SEP_WAND"], [51, 0, 1, "_CPPv4N4cvc54Kind6SEQ_ATE", "cvc5::Kind::SEQ_AT"], [51, 0, 1, "_CPPv4N4cvc54Kind10SEQ_CONCATE", "cvc5::Kind::SEQ_CONCAT"], [51, 0, 1, "_CPPv4N4cvc54Kind12SEQ_CONTAINSE", "cvc5::Kind::SEQ_CONTAINS"], [51, 0, 1, "_CPPv4N4cvc54Kind11SEQ_EXTRACTE", "cvc5::Kind::SEQ_EXTRACT"], [51, 0, 1, "_CPPv4N4cvc54Kind11SEQ_INDEXOFE", "cvc5::Kind::SEQ_INDEXOF"], [51, 0, 1, "_CPPv4N4cvc54Kind10SEQ_LENGTHE", "cvc5::Kind::SEQ_LENGTH"], [51, 0, 1, "_CPPv4N4cvc54Kind7SEQ_NTHE", "cvc5::Kind::SEQ_NTH"], [51, 0, 1, "_CPPv4N4cvc54Kind10SEQ_PREFIXE", "cvc5::Kind::SEQ_PREFIX"], [51, 0, 1, "_CPPv4N4cvc54Kind11SEQ_REPLACEE", "cvc5::Kind::SEQ_REPLACE"], [51, 0, 1, "_CPPv4N4cvc54Kind15SEQ_REPLACE_ALLE", "cvc5::Kind::SEQ_REPLACE_ALL"], [51, 0, 1, "_CPPv4N4cvc54Kind7SEQ_REVE", "cvc5::Kind::SEQ_REV"], [51, 0, 1, "_CPPv4N4cvc54Kind10SEQ_SUFFIXE", "cvc5::Kind::SEQ_SUFFIX"], [51, 0, 1, "_CPPv4N4cvc54Kind8SEQ_UNITE", "cvc5::Kind::SEQ_UNIT"], [51, 0, 1, "_CPPv4N4cvc54Kind10SEQ_UPDATEE", "cvc5::Kind::SEQ_UPDATE"], [51, 0, 1, "_CPPv4N4cvc54Kind7SET_ALLE", "cvc5::Kind::SET_ALL"], [51, 0, 1, "_CPPv4N4cvc54Kind8SET_CARDE", "cvc5::Kind::SET_CARD"], [51, 0, 1, "_CPPv4N4cvc54Kind10SET_CHOOSEE", "cvc5::Kind::SET_CHOOSE"], [51, 0, 1, "_CPPv4N4cvc54Kind14SET_COMPLEMENTE", "cvc5::Kind::SET_COMPLEMENT"], [51, 0, 1, "_CPPv4N4cvc54Kind17SET_COMPREHENSIONE", "cvc5::Kind::SET_COMPREHENSION"], [51, 0, 1, "_CPPv4N4cvc54Kind9SET_EMPTYE", "cvc5::Kind::SET_EMPTY"], [51, 0, 1, "_CPPv4N4cvc54Kind10SET_FILTERE", "cvc5::Kind::SET_FILTER"], [51, 0, 1, "_CPPv4N4cvc54Kind8SET_FOLDE", "cvc5::Kind::SET_FOLD"], [51, 0, 1, "_CPPv4N4cvc54Kind10SET_INSERTE", "cvc5::Kind::SET_INSERT"], [51, 0, 1, "_CPPv4N4cvc54Kind9SET_INTERE", "cvc5::Kind::SET_INTER"], [51, 0, 1, "_CPPv4N4cvc54Kind12SET_IS_EMPTYE", "cvc5::Kind::SET_IS_EMPTY"], [51, 0, 1, "_CPPv4N4cvc54Kind16SET_IS_SINGLETONE", "cvc5::Kind::SET_IS_SINGLETON"], [51, 0, 1, "_CPPv4N4cvc54Kind7SET_MAPE", "cvc5::Kind::SET_MAP"], [51, 0, 1, "_CPPv4N4cvc54Kind10SET_MEMBERE", "cvc5::Kind::SET_MEMBER"], [51, 0, 1, "_CPPv4N4cvc54Kind9SET_MINUSE", "cvc5::Kind::SET_MINUS"], [51, 0, 1, "_CPPv4N4cvc54Kind13SET_SINGLETONE", "cvc5::Kind::SET_SINGLETON"], [51, 0, 1, "_CPPv4N4cvc54Kind8SET_SOMEE", "cvc5::Kind::SET_SOME"], [51, 0, 1, "_CPPv4N4cvc54Kind10SET_SUBSETE", "cvc5::Kind::SET_SUBSET"], [51, 0, 1, "_CPPv4N4cvc54Kind9SET_UNIONE", "cvc5::Kind::SET_UNION"], [51, 0, 1, "_CPPv4N4cvc54Kind12SET_UNIVERSEE", "cvc5::Kind::SET_UNIVERSE"], [51, 0, 1, "_CPPv4N4cvc54Kind5SEXPRE", "cvc5::Kind::SEXPR"], [51, 0, 1, "_CPPv4N4cvc54Kind4SINEE", "cvc5::Kind::SINE"], [51, 0, 1, "_CPPv4N4cvc54Kind6SKOLEME", "cvc5::Kind::SKOLEM"], [51, 0, 1, "_CPPv4N4cvc54Kind18SKOLEM_ADD_TO_POOLE", "cvc5::Kind::SKOLEM_ADD_TO_POOL"], [51, 0, 1, "_CPPv4N4cvc54Kind4SQRTE", "cvc5::Kind::SQRT"], [51, 0, 1, "_CPPv4N4cvc54Kind5STOREE", "cvc5::Kind::STORE"], [51, 0, 1, "_CPPv4N4cvc54Kind13STRING_CHARATE", "cvc5::Kind::STRING_CHARAT"], [51, 0, 1, "_CPPv4N4cvc54Kind13STRING_CONCATE", "cvc5::Kind::STRING_CONCAT"], [51, 0, 1, "_CPPv4N4cvc54Kind15STRING_CONTAINSE", "cvc5::Kind::STRING_CONTAINS"], [51, 0, 1, "_CPPv4N4cvc54Kind16STRING_FROM_CODEE", "cvc5::Kind::STRING_FROM_CODE"], [51, 0, 1, "_CPPv4N4cvc54Kind15STRING_FROM_INTE", "cvc5::Kind::STRING_FROM_INT"], [51, 0, 1, "_CPPv4N4cvc54Kind14STRING_INDEXOFE", "cvc5::Kind::STRING_INDEXOF"], [51, 0, 1, "_CPPv4N4cvc54Kind17STRING_INDEXOF_REE", "cvc5::Kind::STRING_INDEXOF_RE"], [51, 0, 1, "_CPPv4N4cvc54Kind16STRING_IN_REGEXPE", "cvc5::Kind::STRING_IN_REGEXP"], [51, 0, 1, "_CPPv4N4cvc54Kind15STRING_IS_DIGITE", "cvc5::Kind::STRING_IS_DIGIT"], [51, 0, 1, "_CPPv4N4cvc54Kind13STRING_LENGTHE", "cvc5::Kind::STRING_LENGTH"], [51, 0, 1, "_CPPv4N4cvc54Kind10STRING_LEQE", "cvc5::Kind::STRING_LEQ"], [51, 0, 1, "_CPPv4N4cvc54Kind9STRING_LTE", "cvc5::Kind::STRING_LT"], [51, 0, 1, "_CPPv4N4cvc54Kind13STRING_PREFIXE", "cvc5::Kind::STRING_PREFIX"], [51, 0, 1, "_CPPv4N4cvc54Kind14STRING_REPLACEE", "cvc5::Kind::STRING_REPLACE"], [51, 0, 1, "_CPPv4N4cvc54Kind18STRING_REPLACE_ALLE", "cvc5::Kind::STRING_REPLACE_ALL"], [51, 0, 1, "_CPPv4N4cvc54Kind17STRING_REPLACE_REE", "cvc5::Kind::STRING_REPLACE_RE"], [51, 0, 1, "_CPPv4N4cvc54Kind21STRING_REPLACE_RE_ALLE", "cvc5::Kind::STRING_REPLACE_RE_ALL"], [51, 0, 1, "_CPPv4N4cvc54Kind10STRING_REVE", "cvc5::Kind::STRING_REV"], [51, 0, 1, "_CPPv4N4cvc54Kind13STRING_SUBSTRE", "cvc5::Kind::STRING_SUBSTR"], [51, 0, 1, "_CPPv4N4cvc54Kind13STRING_SUFFIXE", "cvc5::Kind::STRING_SUFFIX"], [51, 0, 1, "_CPPv4N4cvc54Kind14STRING_TO_CODEE", "cvc5::Kind::STRING_TO_CODE"], [51, 0, 1, "_CPPv4N4cvc54Kind13STRING_TO_INTE", "cvc5::Kind::STRING_TO_INT"], [51, 0, 1, "_CPPv4N4cvc54Kind15STRING_TO_LOWERE", "cvc5::Kind::STRING_TO_LOWER"], [51, 0, 1, "_CPPv4N4cvc54Kind16STRING_TO_REGEXPE", "cvc5::Kind::STRING_TO_REGEXP"], [51, 0, 1, "_CPPv4N4cvc54Kind15STRING_TO_UPPERE", "cvc5::Kind::STRING_TO_UPPER"], [51, 0, 1, "_CPPv4N4cvc54Kind13STRING_UPDATEE", "cvc5::Kind::STRING_UPDATE"], [51, 0, 1, "_CPPv4N4cvc54Kind3SUBE", "cvc5::Kind::SUB"], [51, 0, 1, "_CPPv4N4cvc54Kind15TABLE_AGGREGATEE", "cvc5::Kind::TABLE_AGGREGATE"], [51, 0, 1, "_CPPv4N4cvc54Kind11TABLE_GROUPE", "cvc5::Kind::TABLE_GROUP"], [51, 0, 1, "_CPPv4N4cvc54Kind10TABLE_JOINE", "cvc5::Kind::TABLE_JOIN"], [51, 0, 1, "_CPPv4N4cvc54Kind13TABLE_PRODUCTE", "cvc5::Kind::TABLE_PRODUCT"], [51, 0, 1, "_CPPv4N4cvc54Kind13TABLE_PROJECTE", "cvc5::Kind::TABLE_PROJECT"], [51, 0, 1, "_CPPv4N4cvc54Kind7TANGENTE", "cvc5::Kind::TANGENT"], [51, 0, 1, "_CPPv4N4cvc54Kind10TO_INTEGERE", "cvc5::Kind::TO_INTEGER"], [51, 0, 1, "_CPPv4N4cvc54Kind7TO_REALE", "cvc5::Kind::TO_REAL"], [51, 0, 1, "_CPPv4N4cvc54Kind13TUPLE_PROJECTE", "cvc5::Kind::TUPLE_PROJECT"], [51, 0, 1, "_CPPv4N4cvc54Kind14UNDEFINED_KINDE", "cvc5::Kind::UNDEFINED_KIND"], [51, 0, 1, "_CPPv4N4cvc54Kind24UNINTERPRETED_SORT_VALUEE", "cvc5::Kind::UNINTERPRETED_SORT_VALUE"], [51, 0, 1, "_CPPv4N4cvc54Kind8VARIABLEE", "cvc5::Kind::VARIABLE"], [51, 0, 1, "_CPPv4N4cvc54Kind13VARIABLE_LISTE", "cvc5::Kind::VARIABLE_LIST"], [51, 0, 1, "_CPPv4N4cvc54Kind7WITNESSE", "cvc5::Kind::WITNESS"], [51, 0, 1, "_CPPv4N4cvc54Kind3XORE", "cvc5::Kind::XOR"], [38, 3, 1, "_CPPv4N4cvc52OpE", "cvc5::Op"], [38, 5, 1, "_CPPv4N4cvc52Op2OpEv", "cvc5::Op::Op"], [38, 5, 1, "_CPPv4NK4cvc52Op7getKindEv", "cvc5::Op::getKind"], [38, 5, 1, "_CPPv4NK4cvc52Op13getNumIndicesEv", "cvc5::Op::getNumIndices"], [38, 5, 1, "_CPPv4NK4cvc52Op9isIndexedEv", "cvc5::Op::isIndexed"], [38, 5, 1, "_CPPv4NK4cvc52Op6isNullEv", "cvc5::Op::isNull"], [38, 5, 1, "_CPPv4NK4cvc52OpneERK2Op", "cvc5::Op::operator!="], [38, 6, 1, "_CPPv4NK4cvc52OpneERK2Op", "cvc5::Op::operator!=::t"], [38, 5, 1, "_CPPv4NK4cvc52OpeqERK2Op", "cvc5::Op::operator=="], [38, 6, 1, "_CPPv4NK4cvc52OpeqERK2Op", "cvc5::Op::operator==::t"], [38, 5, 1, "_CPPv4N4cvc52OpixE6size_t", "cvc5::Op::operator[]"], [38, 6, 1, "_CPPv4N4cvc52OpixE6size_t", "cvc5::Op::operator[]::i"], [38, 5, 1, "_CPPv4NK4cvc52Op8toStringEv", "cvc5::Op::toString"], [38, 5, 1, "_CPPv4N4cvc52OpD0Ev", "cvc5::Op::~Op"], [39, 3, 1, "_CPPv4N4cvc510OptionInfoE", "cvc5::OptionInfo"], [39, 3, 1, "_CPPv4N4cvc510OptionInfo8ModeInfoE", "cvc5::OptionInfo::ModeInfo"], [39, 4, 1, "_CPPv4N4cvc510OptionInfo8ModeInfo12currentValueE", "cvc5::OptionInfo::ModeInfo::currentValue"], [39, 4, 1, "_CPPv4N4cvc510OptionInfo8ModeInfo12defaultValueE", "cvc5::OptionInfo::ModeInfo::defaultValue"], [39, 4, 1, "_CPPv4N4cvc510OptionInfo8ModeInfo5modesE", "cvc5::OptionInfo::ModeInfo::modes"], [39, 3, 1, "_CPPv4I0EN4cvc510OptionInfo10NumberInfoE", "cvc5::OptionInfo::NumberInfo"], [39, 7, 1, "_CPPv4I0EN4cvc510OptionInfo10NumberInfoE", "cvc5::OptionInfo::NumberInfo::T"], [39, 4, 1, "_CPPv4N4cvc510OptionInfo10NumberInfo12currentValueE", "cvc5::OptionInfo::NumberInfo::currentValue"], [39, 4, 1, "_CPPv4N4cvc510OptionInfo10NumberInfo12defaultValueE", "cvc5::OptionInfo::NumberInfo::defaultValue"], [39, 4, 1, "_CPPv4N4cvc510OptionInfo10NumberInfo7maximumE", "cvc5::OptionInfo::NumberInfo::maximum"], [39, 4, 1, "_CPPv4N4cvc510OptionInfo10NumberInfo7minimumE", "cvc5::OptionInfo::NumberInfo::minimum"], [39, 1, 1, "_CPPv4N4cvc510OptionInfo17OptionInfoVariantE", "cvc5::OptionInfo::OptionInfoVariant"], [39, 3, 1, "_CPPv4I0EN4cvc510OptionInfo9ValueInfoE", "cvc5::OptionInfo::ValueInfo"], [39, 7, 1, "_CPPv4I0EN4cvc510OptionInfo9ValueInfoE", "cvc5::OptionInfo::ValueInfo::T"], [39, 4, 1, "_CPPv4N4cvc510OptionInfo9ValueInfo12currentValueE", "cvc5::OptionInfo::ValueInfo::currentValue"], [39, 4, 1, "_CPPv4N4cvc510OptionInfo9ValueInfo12defaultValueE", "cvc5::OptionInfo::ValueInfo::defaultValue"], [39, 3, 1, "_CPPv4N4cvc510OptionInfo8VoidInfoE", "cvc5::OptionInfo::VoidInfo"], [39, 4, 1, "_CPPv4N4cvc510OptionInfo7aliasesE", "cvc5::OptionInfo::aliases"], [39, 5, 1, "_CPPv4NK4cvc510OptionInfo9boolValueEv", "cvc5::OptionInfo::boolValue"], [39, 5, 1, "_CPPv4NK4cvc510OptionInfo11doubleValueEv", "cvc5::OptionInfo::doubleValue"], [39, 5, 1, "_CPPv4NK4cvc510OptionInfo8intValueEv", "cvc5::OptionInfo::intValue"], [39, 4, 1, "_CPPv4N4cvc510OptionInfo8isExpertE", "cvc5::OptionInfo::isExpert"], [39, 4, 1, "_CPPv4N4cvc510OptionInfo9isRegularE", "cvc5::OptionInfo::isRegular"], [39, 4, 1, "_CPPv4N4cvc510OptionInfo4nameE", "cvc5::OptionInfo::name"], [39, 4, 1, "_CPPv4N4cvc510OptionInfo9setByUserE", "cvc5::OptionInfo::setByUser"], [39, 5, 1, "_CPPv4NK4cvc510OptionInfo11stringValueEv", "cvc5::OptionInfo::stringValue"], [39, 5, 1, "_CPPv4NK4cvc510OptionInfo8toStringEv", "cvc5::OptionInfo::toString"], [39, 5, 1, "_CPPv4NK4cvc510OptionInfo9uintValueEv", "cvc5::OptionInfo::uintValue"], [39, 4, 1, "_CPPv4N4cvc510OptionInfo9valueInfoE", "cvc5::OptionInfo::valueInfo"], [40, 3, 1, "_CPPv4N4cvc56PluginE", "cvc5::Plugin"], [72, 3, 1, "_CPPv4N4cvc56PluginE", "cvc5::Plugin"], [40, 5, 1, "_CPPv4N4cvc56Plugin6PluginER11TermManager", "cvc5::Plugin::Plugin"], [72, 5, 1, "_CPPv4N4cvc56Plugin6PluginER11TermManager", "cvc5::Plugin::Plugin"], [40, 6, 1, "_CPPv4N4cvc56Plugin6PluginER11TermManager", "cvc5::Plugin::Plugin::tm"], [72, 6, 1, "_CPPv4N4cvc56Plugin6PluginER11TermManager", "cvc5::Plugin::Plugin::tm"], [40, 5, 1, "_CPPv4N4cvc56Plugin5checkEv", "cvc5::Plugin::check"], [72, 5, 1, "_CPPv4N4cvc56Plugin5checkEv", "cvc5::Plugin::check"], [40, 5, 1, "_CPPv4N4cvc56Plugin7getNameEv", "cvc5::Plugin::getName"], [72, 5, 1, "_CPPv4N4cvc56Plugin7getNameEv", "cvc5::Plugin::getName"], [40, 5, 1, "_CPPv4N4cvc56Plugin15notifySatClauseERK4Term", "cvc5::Plugin::notifySatClause"], [72, 5, 1, "_CPPv4N4cvc56Plugin15notifySatClauseERK4Term", "cvc5::Plugin::notifySatClause"], [40, 6, 1, "_CPPv4N4cvc56Plugin15notifySatClauseERK4Term", "cvc5::Plugin::notifySatClause::clause"], [72, 6, 1, "_CPPv4N4cvc56Plugin15notifySatClauseERK4Term", "cvc5::Plugin::notifySatClause::clause"], [40, 5, 1, "_CPPv4N4cvc56Plugin17notifyTheoryLemmaERK4Term", "cvc5::Plugin::notifyTheoryLemma"], [72, 5, 1, "_CPPv4N4cvc56Plugin17notifyTheoryLemmaERK4Term", "cvc5::Plugin::notifyTheoryLemma"], [40, 6, 1, "_CPPv4N4cvc56Plugin17notifyTheoryLemmaERK4Term", "cvc5::Plugin::notifyTheoryLemma::lemma"], [72, 6, 1, "_CPPv4N4cvc56Plugin17notifyTheoryLemmaERK4Term", "cvc5::Plugin::notifyTheoryLemma::lemma"], [40, 5, 1, "_CPPv4N4cvc56PluginD0Ev", "cvc5::Plugin::~Plugin"], [72, 5, 1, "_CPPv4N4cvc56PluginD0Ev", "cvc5::Plugin::~Plugin"], [41, 3, 1, "_CPPv4N4cvc55ProofE", "cvc5::Proof"], [41, 5, 1, "_CPPv4N4cvc55Proof5ProofEv", "cvc5::Proof::Proof"], [41, 5, 1, "_CPPv4NK4cvc55Proof12getArgumentsEv", "cvc5::Proof::getArguments"], [41, 5, 1, "_CPPv4NK4cvc55Proof11getChildrenEv", "cvc5::Proof::getChildren"], [41, 5, 1, "_CPPv4NK4cvc55Proof9getResultEv", "cvc5::Proof::getResult"], [41, 5, 1, "_CPPv4NK4cvc55Proof14getRewriteRuleEv", "cvc5::Proof::getRewriteRule"], [41, 5, 1, "_CPPv4NK4cvc55Proof7getRuleEv", "cvc5::Proof::getRule"], [41, 5, 1, "_CPPv4NK4cvc55Proof6isNullEv", "cvc5::Proof::isNull"], [41, 5, 1, "_CPPv4NK4cvc55ProofneERK5Proof", "cvc5::Proof::operator!="], [41, 6, 1, "_CPPv4NK4cvc55ProofneERK5Proof", "cvc5::Proof::operator!=::p"], [41, 5, 1, "_CPPv4NK4cvc55ProofeqERK5Proof", "cvc5::Proof::operator=="], [41, 6, 1, "_CPPv4NK4cvc55ProofeqERK5Proof", "cvc5::Proof::operator==::p"], [41, 5, 1, "_CPPv4N4cvc55ProofD0Ev", "cvc5::Proof::~Proof"], [53, 2, 1, "_CPPv4N4cvc516ProofRewriteRuleE", "cvc5::ProofRewriteRule"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18ARITH_ABS_ELIM_INTE", "cvc5::ProofRewriteRule::ARITH_ABS_ELIM_INT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19ARITH_ABS_ELIM_REALE", "cvc5::ProofRewriteRule::ARITH_ABS_ELIM_REAL"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule12ARITH_ABS_EQE", "cvc5::ProofRewriteRule::ARITH_ABS_EQ"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16ARITH_ABS_INT_GTE", "cvc5::ProofRewriteRule::ARITH_ABS_INT_GT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17ARITH_ABS_REAL_GTE", "cvc5::ProofRewriteRule::ARITH_ABS_REAL_GT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19ARITH_COSECENT_ELIME", "cvc5::ProofRewriteRule::ARITH_COSECENT_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17ARITH_COSINE_ELIME", "cvc5::ProofRewriteRule::ARITH_COSINE_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule20ARITH_COTANGENT_ELIME", "cvc5::ProofRewriteRule::ARITH_COTANGENT_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule23ARITH_DIV_ELIM_TO_REAL1E", "cvc5::ProofRewriteRule::ARITH_DIV_ELIM_TO_REAL1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule23ARITH_DIV_ELIM_TO_REAL2E", "cvc5::ProofRewriteRule::ARITH_DIV_ELIM_TO_REAL2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19ARITH_DIV_TOTAL_INTE", "cvc5::ProofRewriteRule::ARITH_DIV_TOTAL_INT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule20ARITH_DIV_TOTAL_REALE", "cvc5::ProofRewriteRule::ARITH_DIV_TOTAL_REAL"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule24ARITH_DIV_TOTAL_ZERO_INTE", "cvc5::ProofRewriteRule::ARITH_DIV_TOTAL_ZERO_INT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule25ARITH_DIV_TOTAL_ZERO_REALE", "cvc5::ProofRewriteRule::ARITH_DIV_TOTAL_ZERO_REAL"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13ARITH_ELIM_GTE", "cvc5::ProofRewriteRule::ARITH_ELIM_GT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17ARITH_ELIM_INT_GTE", "cvc5::ProofRewriteRule::ARITH_ELIM_INT_GT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17ARITH_ELIM_INT_LTE", "cvc5::ProofRewriteRule::ARITH_ELIM_INT_LT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14ARITH_ELIM_LEQE", "cvc5::ProofRewriteRule::ARITH_ELIM_LEQ"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13ARITH_ELIM_LTE", "cvc5::ProofRewriteRule::ARITH_ELIM_LT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17ARITH_EQ_ELIM_INTE", "cvc5::ProofRewriteRule::ARITH_EQ_ELIM_INT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18ARITH_EQ_ELIM_REALE", "cvc5::ProofRewriteRule::ARITH_EQ_ELIM_REAL"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19ARITH_GEQ_NORM1_INTE", "cvc5::ProofRewriteRule::ARITH_GEQ_NORM1_INT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule20ARITH_GEQ_NORM1_REALE", "cvc5::ProofRewriteRule::ARITH_GEQ_NORM1_REAL"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule15ARITH_GEQ_NORM2E", "cvc5::ProofRewriteRule::ARITH_GEQ_NORM2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17ARITH_GEQ_TIGHTENE", "cvc5::ProofRewriteRule::ARITH_GEQ_TIGHTEN"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19ARITH_INT_DIV_TOTALE", "cvc5::ProofRewriteRule::ARITH_INT_DIV_TOTAL"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule23ARITH_INT_DIV_TOTAL_ONEE", "cvc5::ProofRewriteRule::ARITH_INT_DIV_TOTAL_ONE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule24ARITH_INT_DIV_TOTAL_ZEROE", "cvc5::ProofRewriteRule::ARITH_INT_DIV_TOTAL_ZERO"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19ARITH_INT_MOD_TOTALE", "cvc5::ProofRewriteRule::ARITH_INT_MOD_TOTAL"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule23ARITH_INT_MOD_TOTAL_ONEE", "cvc5::ProofRewriteRule::ARITH_INT_MOD_TOTAL_ONE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule24ARITH_INT_MOD_TOTAL_ZEROE", "cvc5::ProofRewriteRule::ARITH_INT_MOD_TOTAL_ZERO"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14ARITH_LEQ_NORME", "cvc5::ProofRewriteRule::ARITH_LEQ_NORM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule15ARITH_MULT_DISTE", "cvc5::ProofRewriteRule::ARITH_MULT_DIST"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18ARITH_MULT_FLATTENE", "cvc5::ProofRewriteRule::ARITH_MULT_FLATTEN"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13ARITH_MUL_ONEE", "cvc5::ProofRewriteRule::ARITH_MUL_ONE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14ARITH_MUL_ZEROE", "cvc5::ProofRewriteRule::ARITH_MUL_ZERO"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16ARITH_PI_NOT_INTE", "cvc5::ProofRewriteRule::ARITH_PI_NOT_INT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18ARITH_PLUS_FLATTENE", "cvc5::ProofRewriteRule::ARITH_PLUS_FLATTEN"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14ARITH_POW_ELIME", "cvc5::ProofRewriteRule::ARITH_POW_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14ARITH_REFL_GEQE", "cvc5::ProofRewriteRule::ARITH_REFL_GEQ"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13ARITH_REFL_GTE", "cvc5::ProofRewriteRule::ARITH_REFL_GT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14ARITH_REFL_LEQE", "cvc5::ProofRewriteRule::ARITH_REFL_LEQ"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13ARITH_REFL_LTE", "cvc5::ProofRewriteRule::ARITH_REFL_LT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17ARITH_SECENT_ELIME", "cvc5::ProofRewriteRule::ARITH_SECENT_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14ARITH_SINE_PI2E", "cvc5::ProofRewriteRule::ARITH_SINE_PI2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule15ARITH_SINE_ZEROE", "cvc5::ProofRewriteRule::ARITH_SINE_ZERO"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule24ARITH_STRING_PRED_ENTAILE", "cvc5::ProofRewriteRule::ARITH_STRING_PRED_ENTAIL"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule29ARITH_STRING_PRED_SAFE_APPROXE", "cvc5::ProofRewriteRule::ARITH_STRING_PRED_SAFE_APPROX"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18ARITH_TANGENT_ELIME", "cvc5::ProofRewriteRule::ARITH_TANGENT_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule25ARITH_TO_INT_ELIM_TO_REALE", "cvc5::ProofRewriteRule::ARITH_TO_INT_ELIM_TO_REAL"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18ARITH_TO_REAL_ELIME", "cvc5::ProofRewriteRule::ARITH_TO_REAL_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule22ARRAYS_EQ_RANGE_EXPANDE", "cvc5::ProofRewriteRule::ARRAYS_EQ_RANGE_EXPAND"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19ARRAYS_SELECT_CONSTE", "cvc5::ProofRewriteRule::ARRAYS_SELECT_CONST"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule21ARRAY_READ_OVER_WRITEE", "cvc5::ProofRewriteRule::ARRAY_READ_OVER_WRITE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule22ARRAY_READ_OVER_WRITE2E", "cvc5::ProofRewriteRule::ARRAY_READ_OVER_WRITE2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule27ARRAY_READ_OVER_WRITE_SPLITE", "cvc5::ProofRewriteRule::ARRAY_READ_OVER_WRITE_SPLIT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule21ARRAY_STORE_OVERWRITEE", "cvc5::ProofRewriteRule::ARRAY_STORE_OVERWRITE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16ARRAY_STORE_SELFE", "cvc5::ProofRewriteRule::ARRAY_STORE_SELF"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11BETA_REDUCEE", "cvc5::ProofRewriteRule::BETA_REDUCE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13BOOL_AND_CONFE", "cvc5::ProofRewriteRule::BOOL_AND_CONF"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14BOOL_AND_CONF2E", "cvc5::ProofRewriteRule::BOOL_AND_CONF2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18BOOL_AND_DE_MORGANE", "cvc5::ProofRewriteRule::BOOL_AND_DE_MORGAN"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14BOOL_AND_FALSEE", "cvc5::ProofRewriteRule::BOOL_AND_FALSE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16BOOL_AND_FLATTENE", "cvc5::ProofRewriteRule::BOOL_AND_FLATTEN"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule20BOOL_DOUBLE_NOT_ELIME", "cvc5::ProofRewriteRule::BOOL_DOUBLE_NOT_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13BOOL_EQ_FALSEE", "cvc5::ProofRewriteRule::BOOL_EQ_FALSE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13BOOL_EQ_NREFLE", "cvc5::ProofRewriteRule::BOOL_EQ_NREFL"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule12BOOL_EQ_TRUEE", "cvc5::ProofRewriteRule::BOOL_EQ_TRUE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule22BOOL_IMPLIES_DE_MORGANE", "cvc5::ProofRewriteRule::BOOL_IMPLIES_DE_MORGAN"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14BOOL_IMPL_ELIME", "cvc5::ProofRewriteRule::BOOL_IMPL_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16BOOL_IMPL_FALSE1E", "cvc5::ProofRewriteRule::BOOL_IMPL_FALSE1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16BOOL_IMPL_FALSE2E", "cvc5::ProofRewriteRule::BOOL_IMPL_FALSE2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule15BOOL_IMPL_TRUE1E", "cvc5::ProofRewriteRule::BOOL_IMPL_TRUE1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule15BOOL_IMPL_TRUE2E", "cvc5::ProofRewriteRule::BOOL_IMPL_TRUE2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17BOOL_NOT_EQ_ELIM1E", "cvc5::ProofRewriteRule::BOOL_NOT_EQ_ELIM1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17BOOL_NOT_EQ_ELIM2E", "cvc5::ProofRewriteRule::BOOL_NOT_EQ_ELIM2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14BOOL_NOT_FALSEE", "cvc5::ProofRewriteRule::BOOL_NOT_FALSE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17BOOL_NOT_ITE_ELIME", "cvc5::ProofRewriteRule::BOOL_NOT_ITE_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13BOOL_NOT_TRUEE", "cvc5::ProofRewriteRule::BOOL_NOT_TRUE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17BOOL_NOT_XOR_ELIME", "cvc5::ProofRewriteRule::BOOL_NOT_XOR_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19BOOL_OR_AND_DISTRIBE", "cvc5::ProofRewriteRule::BOOL_OR_AND_DISTRIB"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17BOOL_OR_DE_MORGANE", "cvc5::ProofRewriteRule::BOOL_OR_DE_MORGAN"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule15BOOL_OR_FLATTENE", "cvc5::ProofRewriteRule::BOOL_OR_FLATTEN"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule12BOOL_OR_TAUTE", "cvc5::ProofRewriteRule::BOOL_OR_TAUT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13BOOL_OR_TAUT2E", "cvc5::ProofRewriteRule::BOOL_OR_TAUT2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule12BOOL_OR_TRUEE", "cvc5::ProofRewriteRule::BOOL_OR_TRUE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13BOOL_XOR_COMME", "cvc5::ProofRewriteRule::BOOL_XOR_COMM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13BOOL_XOR_ELIME", "cvc5::ProofRewriteRule::BOOL_XOR_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14BOOL_XOR_FALSEE", "cvc5::ProofRewriteRule::BOOL_XOR_FALSE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14BOOL_XOR_NREFLE", "cvc5::ProofRewriteRule::BOOL_XOR_NREFL"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13BOOL_XOR_REFLE", "cvc5::ProofRewriteRule::BOOL_XOR_REFL"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13BOOL_XOR_TRUEE", "cvc5::ProofRewriteRule::BOOL_XOR_TRUE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule25BV_ADD_COMBINE_LIKE_TERMSE", "cvc5::ProofRewriteRule::BV_ADD_COMBINE_LIKE_TERMS"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule10BV_ADD_TWOE", "cvc5::ProofRewriteRule::BV_ADD_TWO"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11BV_ADD_ZEROE", "cvc5::ProofRewriteRule::BV_ADD_ZERO"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule20BV_AND_CONCAT_PULLUPE", "cvc5::ProofRewriteRule::BV_AND_CONCAT_PULLUP"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14BV_AND_FLATTENE", "cvc5::ProofRewriteRule::BV_AND_FLATTEN"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule10BV_AND_ONEE", "cvc5::ProofRewriteRule::BV_AND_ONE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17BV_AND_SIMPLIFY_1E", "cvc5::ProofRewriteRule::BV_AND_SIMPLIFY_1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17BV_AND_SIMPLIFY_2E", "cvc5::ProofRewriteRule::BV_AND_SIMPLIFY_2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11BV_AND_ZEROE", "cvc5::ProofRewriteRule::BV_AND_ZERO"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18BV_ASHR_BY_CONST_0E", "cvc5::ProofRewriteRule::BV_ASHR_BY_CONST_0"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18BV_ASHR_BY_CONST_1E", "cvc5::ProofRewriteRule::BV_ASHR_BY_CONST_1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18BV_ASHR_BY_CONST_2E", "cvc5::ProofRewriteRule::BV_ASHR_BY_CONST_2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule12BV_ASHR_ZEROE", "cvc5::ProofRewriteRule::BV_ASHR_ZERO"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18BV_BITWISE_IDEMP_1E", "cvc5::ProofRewriteRule::BV_BITWISE_IDEMP_1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18BV_BITWISE_IDEMP_2E", "cvc5::ProofRewriteRule::BV_BITWISE_IDEMP_2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18BV_BITWISE_NOT_ANDE", "cvc5::ProofRewriteRule::BV_BITWISE_NOT_AND"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17BV_BITWISE_NOT_ORE", "cvc5::ProofRewriteRule::BV_BITWISE_NOT_OR"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18BV_BITWISE_SLICINGE", "cvc5::ProofRewriteRule::BV_BITWISE_SLICING"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18BV_COMMUTATIVE_ADDE", "cvc5::ProofRewriteRule::BV_COMMUTATIVE_ADD"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18BV_COMMUTATIVE_ANDE", "cvc5::ProofRewriteRule::BV_COMMUTATIVE_AND"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18BV_COMMUTATIVE_MULE", "cvc5::ProofRewriteRule::BV_COMMUTATIVE_MUL"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17BV_COMMUTATIVE_ORE", "cvc5::ProofRewriteRule::BV_COMMUTATIVE_OR"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18BV_COMMUTATIVE_XORE", "cvc5::ProofRewriteRule::BV_COMMUTATIVE_XOR"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17BV_COMP_ELIMINATEE", "cvc5::ProofRewriteRule::BV_COMP_ELIMINATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule23BV_CONCAT_EXTRACT_MERGEE", "cvc5::ProofRewriteRule::BV_CONCAT_EXTRACT_MERGE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17BV_CONCAT_FLATTENE", "cvc5::ProofRewriteRule::BV_CONCAT_FLATTEN"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule21BV_CONCAT_MERGE_CONSTE", "cvc5::ProofRewriteRule::BV_CONCAT_MERGE_CONST"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17BV_CONCAT_TO_MULTE", "cvc5::ProofRewriteRule::BV_CONCAT_TO_MULT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19BV_EQ_EXTRACT_ELIM1E", "cvc5::ProofRewriteRule::BV_EQ_EXTRACT_ELIM1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19BV_EQ_EXTRACT_ELIM2E", "cvc5::ProofRewriteRule::BV_EQ_EXTRACT_ELIM2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19BV_EQ_EXTRACT_ELIM3E", "cvc5::ProofRewriteRule::BV_EQ_EXTRACT_ELIM3"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule22BV_EXTRACT_BITWISE_ANDE", "cvc5::ProofRewriteRule::BV_EXTRACT_BITWISE_AND"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule21BV_EXTRACT_BITWISE_ORE", "cvc5::ProofRewriteRule::BV_EXTRACT_BITWISE_OR"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule22BV_EXTRACT_BITWISE_XORE", "cvc5::ProofRewriteRule::BV_EXTRACT_BITWISE_XOR"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19BV_EXTRACT_CONCAT_1E", "cvc5::ProofRewriteRule::BV_EXTRACT_CONCAT_1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19BV_EXTRACT_CONCAT_2E", "cvc5::ProofRewriteRule::BV_EXTRACT_CONCAT_2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19BV_EXTRACT_CONCAT_3E", "cvc5::ProofRewriteRule::BV_EXTRACT_CONCAT_3"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19BV_EXTRACT_CONCAT_4E", "cvc5::ProofRewriteRule::BV_EXTRACT_CONCAT_4"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18BV_EXTRACT_EXTRACTE", "cvc5::ProofRewriteRule::BV_EXTRACT_EXTRACT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule27BV_EXTRACT_MULT_LEADING_BITE", "cvc5::ProofRewriteRule::BV_EXTRACT_MULT_LEADING_BIT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14BV_EXTRACT_NOTE", "cvc5::ProofRewriteRule::BV_EXTRACT_NOT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule24BV_EXTRACT_SIGN_EXTEND_1E", "cvc5::ProofRewriteRule::BV_EXTRACT_SIGN_EXTEND_1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule24BV_EXTRACT_SIGN_EXTEND_2E", "cvc5::ProofRewriteRule::BV_EXTRACT_SIGN_EXTEND_2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule24BV_EXTRACT_SIGN_EXTEND_3E", "cvc5::ProofRewriteRule::BV_EXTRACT_SIGN_EXTEND_3"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16BV_EXTRACT_WHOLEE", "cvc5::ProofRewriteRule::BV_EXTRACT_WHOLE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule23BV_ITE_CONST_CHILDREN_1E", "cvc5::ProofRewriteRule::BV_ITE_CONST_CHILDREN_1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule23BV_ITE_CONST_CHILDREN_2E", "cvc5::ProofRewriteRule::BV_ITE_CONST_CHILDREN_2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule21BV_ITE_EQUAL_CHILDRENE", "cvc5::ProofRewriteRule::BV_ITE_EQUAL_CHILDREN"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19BV_ITE_EQUAL_COND_1E", "cvc5::ProofRewriteRule::BV_ITE_EQUAL_COND_1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19BV_ITE_EQUAL_COND_2E", "cvc5::ProofRewriteRule::BV_ITE_EQUAL_COND_2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19BV_ITE_EQUAL_COND_3E", "cvc5::ProofRewriteRule::BV_ITE_EQUAL_COND_3"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule22BV_ITE_MERGE_ELSE_ELSEE", "cvc5::ProofRewriteRule::BV_ITE_MERGE_ELSE_ELSE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule20BV_ITE_MERGE_ELSE_IFE", "cvc5::ProofRewriteRule::BV_ITE_MERGE_ELSE_IF"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule22BV_ITE_MERGE_THEN_ELSEE", "cvc5::ProofRewriteRule::BV_ITE_MERGE_THEN_ELSE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule20BV_ITE_MERGE_THEN_IFE", "cvc5::ProofRewriteRule::BV_ITE_MERGE_THEN_IF"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18BV_LSHR_BY_CONST_0E", "cvc5::ProofRewriteRule::BV_LSHR_BY_CONST_0"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18BV_LSHR_BY_CONST_1E", "cvc5::ProofRewriteRule::BV_LSHR_BY_CONST_1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18BV_LSHR_BY_CONST_2E", "cvc5::ProofRewriteRule::BV_LSHR_BY_CONST_2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule12BV_LSHR_ZEROE", "cvc5::ProofRewriteRule::BV_LSHR_ZERO"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule10BV_LT_SELFE", "cvc5::ProofRewriteRule::BV_LT_SELF"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule22BV_MERGE_SIGN_EXTEND_1E", "cvc5::ProofRewriteRule::BV_MERGE_SIGN_EXTEND_1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule22BV_MERGE_SIGN_EXTEND_2E", "cvc5::ProofRewriteRule::BV_MERGE_SIGN_EXTEND_2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule22BV_MERGE_SIGN_EXTEND_3E", "cvc5::ProofRewriteRule::BV_MERGE_SIGN_EXTEND_3"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17BV_MULT_DISTRIB_1E", "cvc5::ProofRewriteRule::BV_MULT_DISTRIB_1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17BV_MULT_DISTRIB_2E", "cvc5::ProofRewriteRule::BV_MULT_DISTRIB_2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule25BV_MULT_DISTRIB_CONST_ADDE", "cvc5::ProofRewriteRule::BV_MULT_DISTRIB_CONST_ADD"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule25BV_MULT_DISTRIB_CONST_NEGE", "cvc5::ProofRewriteRule::BV_MULT_DISTRIB_CONST_NEG"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule25BV_MULT_DISTRIB_CONST_SUBE", "cvc5::ProofRewriteRule::BV_MULT_DISTRIB_CONST_SUB"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14BV_MULT_POW2_1E", "cvc5::ProofRewriteRule::BV_MULT_POW2_1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14BV_MULT_POW2_2E", "cvc5::ProofRewriteRule::BV_MULT_POW2_2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule15BV_MULT_POW2_2BE", "cvc5::ProofRewriteRule::BV_MULT_POW2_2B"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16BV_MULT_SIMPLIFYE", "cvc5::ProofRewriteRule::BV_MULT_SIMPLIFY"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18BV_MULT_SLT_MULT_1E", "cvc5::ProofRewriteRule::BV_MULT_SLT_MULT_1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18BV_MULT_SLT_MULT_2E", "cvc5::ProofRewriteRule::BV_MULT_SLT_MULT_2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14BV_MUL_FLATTENE", "cvc5::ProofRewriteRule::BV_MUL_FLATTEN"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule10BV_MUL_ONEE", "cvc5::ProofRewriteRule::BV_MUL_ONE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11BV_MUL_ZEROE", "cvc5::ProofRewriteRule::BV_MUL_ZERO"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17BV_NAND_ELIMINATEE", "cvc5::ProofRewriteRule::BV_NAND_ELIMINATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule10BV_NEG_ADDE", "cvc5::ProofRewriteRule::BV_NEG_ADD"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule12BV_NEG_IDEMPE", "cvc5::ProofRewriteRule::BV_NEG_IDEMP"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11BV_NEG_MULTE", "cvc5::ProofRewriteRule::BV_NEG_MULT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule10BV_NEG_SUBE", "cvc5::ProofRewriteRule::BV_NEG_SUB"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16BV_NOR_ELIMINATEE", "cvc5::ProofRewriteRule::BV_NOR_ELIMINATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule12BV_NOT_IDEMPE", "cvc5::ProofRewriteRule::BV_NOT_IDEMP"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule10BV_NOT_NEQE", "cvc5::ProofRewriteRule::BV_NOT_NEQ"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule10BV_NOT_SLEE", "cvc5::ProofRewriteRule::BV_NOT_SLE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule10BV_NOT_ULEE", "cvc5::ProofRewriteRule::BV_NOT_ULE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule10BV_NOT_ULTE", "cvc5::ProofRewriteRule::BV_NOT_ULT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule10BV_NOT_XORE", "cvc5::ProofRewriteRule::BV_NOT_XOR"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19BV_OR_CONCAT_PULLUPE", "cvc5::ProofRewriteRule::BV_OR_CONCAT_PULLUP"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13BV_OR_FLATTENE", "cvc5::ProofRewriteRule::BV_OR_FLATTEN"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule9BV_OR_ONEE", "cvc5::ProofRewriteRule::BV_OR_ONE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16BV_OR_SIMPLIFY_1E", "cvc5::ProofRewriteRule::BV_OR_SIMPLIFY_1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16BV_OR_SIMPLIFY_2E", "cvc5::ProofRewriteRule::BV_OR_SIMPLIFY_2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule10BV_OR_ZEROE", "cvc5::ProofRewriteRule::BV_OR_ZERO"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19BV_REDAND_ELIMINATEE", "cvc5::ProofRewriteRule::BV_REDAND_ELIMINATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18BV_REDOR_ELIMINATEE", "cvc5::ProofRewriteRule::BV_REDOR_ELIMINATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14BV_REPEAT_ELIME", "cvc5::ProofRewriteRule::BV_REPEAT_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule26BV_ROTATE_LEFT_ELIMINATE_1E", "cvc5::ProofRewriteRule::BV_ROTATE_LEFT_ELIMINATE_1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule26BV_ROTATE_LEFT_ELIMINATE_2E", "cvc5::ProofRewriteRule::BV_ROTATE_LEFT_ELIMINATE_2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule27BV_ROTATE_RIGHT_ELIMINATE_1E", "cvc5::ProofRewriteRule::BV_ROTATE_RIGHT_ELIMINATE_1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule27BV_ROTATE_RIGHT_ELIMINATE_2E", "cvc5::ProofRewriteRule::BV_ROTATE_RIGHT_ELIMINATE_2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18BV_SADDO_ELIMINATEE", "cvc5::ProofRewriteRule::BV_SADDO_ELIMINATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18BV_SDIVO_ELIMINATEE", "cvc5::ProofRewriteRule::BV_SDIVO_ELIMINATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17BV_SDIV_ELIMINATEE", "cvc5::ProofRewriteRule::BV_SDIV_ELIMINATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule35BV_SDIV_ELIMINATE_FEWER_BITWISE_OPSE", "cvc5::ProofRewriteRule::BV_SDIV_ELIMINATE_FEWER_BITWISE_OPS"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16BV_SGE_ELIMINATEE", "cvc5::ProofRewriteRule::BV_SGE_ELIMINATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16BV_SGT_ELIMINATEE", "cvc5::ProofRewriteRule::BV_SGT_ELIMINATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17BV_SHL_BY_CONST_0E", "cvc5::ProofRewriteRule::BV_SHL_BY_CONST_0"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17BV_SHL_BY_CONST_1E", "cvc5::ProofRewriteRule::BV_SHL_BY_CONST_1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17BV_SHL_BY_CONST_2E", "cvc5::ProofRewriteRule::BV_SHL_BY_CONST_2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11BV_SHL_ZEROE", "cvc5::ProofRewriteRule::BV_SHL_ZERO"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule24BV_SIGN_EXTEND_ELIMINATEE", "cvc5::ProofRewriteRule::BV_SIGN_EXTEND_ELIMINATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule26BV_SIGN_EXTEND_ELIMINATE_0E", "cvc5::ProofRewriteRule::BV_SIGN_EXTEND_ELIMINATE_0"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule25BV_SIGN_EXTEND_EQ_CONST_1E", "cvc5::ProofRewriteRule::BV_SIGN_EXTEND_EQ_CONST_1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule25BV_SIGN_EXTEND_EQ_CONST_2E", "cvc5::ProofRewriteRule::BV_SIGN_EXTEND_EQ_CONST_2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule26BV_SIGN_EXTEND_ULT_CONST_1E", "cvc5::ProofRewriteRule::BV_SIGN_EXTEND_ULT_CONST_1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule26BV_SIGN_EXTEND_ULT_CONST_2E", "cvc5::ProofRewriteRule::BV_SIGN_EXTEND_ULT_CONST_2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule26BV_SIGN_EXTEND_ULT_CONST_3E", "cvc5::ProofRewriteRule::BV_SIGN_EXTEND_ULT_CONST_3"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule26BV_SIGN_EXTEND_ULT_CONST_4E", "cvc5::ProofRewriteRule::BV_SIGN_EXTEND_ULT_CONST_4"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16BV_SLE_ELIMINATEE", "cvc5::ProofRewriteRule::BV_SLE_ELIMINATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11BV_SLE_SELFE", "cvc5::ProofRewriteRule::BV_SLE_SELF"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16BV_SLT_ELIMINATEE", "cvc5::ProofRewriteRule::BV_SLT_ELIMINATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11BV_SLT_ZEROE", "cvc5::ProofRewriteRule::BV_SLT_ZERO"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17BV_SMOD_ELIMINATEE", "cvc5::ProofRewriteRule::BV_SMOD_ELIMINATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule35BV_SMOD_ELIMINATE_FEWER_BITWISE_OPSE", "cvc5::ProofRewriteRule::BV_SMOD_ELIMINATE_FEWER_BITWISE_OPS"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18BV_SMULO_ELIMINATEE", "cvc5::ProofRewriteRule::BV_SMULO_ELIMINATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17BV_SREM_ELIMINATEE", "cvc5::ProofRewriteRule::BV_SREM_ELIMINATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule35BV_SREM_ELIMINATE_FEWER_BITWISE_OPSE", "cvc5::ProofRewriteRule::BV_SREM_ELIMINATE_FEWER_BITWISE_OPS"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18BV_SSUBO_ELIMINATEE", "cvc5::ProofRewriteRule::BV_SSUBO_ELIMINATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16BV_SUB_ELIMINATEE", "cvc5::ProofRewriteRule::BV_SUB_ELIMINATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14BV_TO_NAT_ELIME", "cvc5::ProofRewriteRule::BV_TO_NAT_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18BV_UADDO_ELIMINATEE", "cvc5::ProofRewriteRule::BV_UADDO_ELIMINATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11BV_UDIV_ONEE", "cvc5::ProofRewriteRule::BV_UDIV_ONE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule20BV_UDIV_POW2_NOT_ONEE", "cvc5::ProofRewriteRule::BV_UDIV_POW2_NOT_ONE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule12BV_UDIV_ZEROE", "cvc5::ProofRewriteRule::BV_UDIV_ZERO"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16BV_UGE_ELIMINATEE", "cvc5::ProofRewriteRule::BV_UGE_ELIMINATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16BV_UGT_ELIMINATEE", "cvc5::ProofRewriteRule::BV_UGT_ELIMINATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11BV_UGT_UREME", "cvc5::ProofRewriteRule::BV_UGT_UREM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16BV_ULE_ELIMINATEE", "cvc5::ProofRewriteRule::BV_ULE_ELIMINATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule10BV_ULE_MAXE", "cvc5::ProofRewriteRule::BV_ULE_MAX"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11BV_ULE_SELFE", "cvc5::ProofRewriteRule::BV_ULE_SELF"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11BV_ULE_ZEROE", "cvc5::ProofRewriteRule::BV_ULE_ZERO"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14BV_ULT_ADD_ONEE", "cvc5::ProofRewriteRule::BV_ULT_ADD_ONE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule10BV_ULT_ONEE", "cvc5::ProofRewriteRule::BV_ULT_ONE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11BV_ULT_ONESE", "cvc5::ProofRewriteRule::BV_ULT_ONES"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11BV_ULT_SELFE", "cvc5::ProofRewriteRule::BV_ULT_SELF"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13BV_ULT_ZERO_1E", "cvc5::ProofRewriteRule::BV_ULT_ZERO_1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13BV_ULT_ZERO_2E", "cvc5::ProofRewriteRule::BV_ULT_ZERO_2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18BV_UMULO_ELIMINATEE", "cvc5::ProofRewriteRule::BV_UMULO_ELIMINATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11BV_UREM_ONEE", "cvc5::ProofRewriteRule::BV_UREM_ONE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule20BV_UREM_POW2_NOT_ONEE", "cvc5::ProofRewriteRule::BV_UREM_POW2_NOT_ONE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule12BV_UREM_SELFE", "cvc5::ProofRewriteRule::BV_UREM_SELF"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18BV_USUBO_ELIMINATEE", "cvc5::ProofRewriteRule::BV_USUBO_ELIMINATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17BV_XNOR_ELIMINATEE", "cvc5::ProofRewriteRule::BV_XNOR_ELIMINATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule20BV_XOR_CONCAT_PULLUPE", "cvc5::ProofRewriteRule::BV_XOR_CONCAT_PULLUP"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16BV_XOR_DUPLICATEE", "cvc5::ProofRewriteRule::BV_XOR_DUPLICATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14BV_XOR_FLATTENE", "cvc5::ProofRewriteRule::BV_XOR_FLATTEN"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule10BV_XOR_NOTE", "cvc5::ProofRewriteRule::BV_XOR_NOT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11BV_XOR_ONESE", "cvc5::ProofRewriteRule::BV_XOR_ONES"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17BV_XOR_SIMPLIFY_1E", "cvc5::ProofRewriteRule::BV_XOR_SIMPLIFY_1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17BV_XOR_SIMPLIFY_2E", "cvc5::ProofRewriteRule::BV_XOR_SIMPLIFY_2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17BV_XOR_SIMPLIFY_3E", "cvc5::ProofRewriteRule::BV_XOR_SIMPLIFY_3"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11BV_XOR_ZEROE", "cvc5::ProofRewriteRule::BV_XOR_ZERO"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule24BV_ZERO_EXTEND_ELIMINATEE", "cvc5::ProofRewriteRule::BV_ZERO_EXTEND_ELIMINATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule26BV_ZERO_EXTEND_ELIMINATE_0E", "cvc5::ProofRewriteRule::BV_ZERO_EXTEND_ELIMINATE_0"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule25BV_ZERO_EXTEND_EQ_CONST_1E", "cvc5::ProofRewriteRule::BV_ZERO_EXTEND_EQ_CONST_1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule25BV_ZERO_EXTEND_EQ_CONST_2E", "cvc5::ProofRewriteRule::BV_ZERO_EXTEND_EQ_CONST_2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11BV_ZERO_ULEE", "cvc5::ProofRewriteRule::BV_ZERO_ULE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule20DISTINCT_BINARY_ELIME", "cvc5::ProofRewriteRule::DISTINCT_BINARY_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule22DISTINCT_CARD_CONFLICTE", "cvc5::ProofRewriteRule::DISTINCT_CARD_CONFLICT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13DISTINCT_ELIME", "cvc5::ProofRewriteRule::DISTINCT_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule20DT_COLLAPSE_SELECTORE", "cvc5::ProofRewriteRule::DT_COLLAPSE_SELECTOR"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18DT_COLLAPSE_TESTERE", "cvc5::ProofRewriteRule::DT_COLLAPSE_TESTER"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule28DT_COLLAPSE_TESTER_SINGLETONE", "cvc5::ProofRewriteRule::DT_COLLAPSE_TESTER_SINGLETON"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19DT_COLLAPSE_UPDATERE", "cvc5::ProofRewriteRule::DT_COLLAPSE_UPDATER"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule10DT_CONS_EQE", "cvc5::ProofRewriteRule::DT_CONS_EQ"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule8DT_CYCLEE", "cvc5::ProofRewriteRule::DT_CYCLE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule7DT_INSTE", "cvc5::ProofRewriteRule::DT_INST"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13DT_MATCH_ELIME", "cvc5::ProofRewriteRule::DT_MATCH_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule15DT_UPDATER_ELIME", "cvc5::ProofRewriteRule::DT_UPDATER_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11EQ_COND_DEQE", "cvc5::ProofRewriteRule::EQ_COND_DEQ"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11EQ_ITE_LIFTE", "cvc5::ProofRewriteRule::EQ_ITE_LIFT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule7EQ_REFLE", "cvc5::ProofRewriteRule::EQ_REFL"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule7EQ_SYMME", "cvc5::ProofRewriteRule::EQ_SYMM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11EXISTS_ELIME", "cvc5::ProofRewriteRule::EXISTS_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14INT_TO_BV_ELIME", "cvc5::ProofRewriteRule::INT_TO_BV_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14ITE_ELSE_FALSEE", "cvc5::ProofRewriteRule::ITE_ELSE_FALSE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18ITE_ELSE_LOOKAHEADE", "cvc5::ProofRewriteRule::ITE_ELSE_LOOKAHEAD"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule27ITE_ELSE_LOOKAHEAD_NOT_SELFE", "cvc5::ProofRewriteRule::ITE_ELSE_LOOKAHEAD_NOT_SELF"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule23ITE_ELSE_LOOKAHEAD_SELFE", "cvc5::ProofRewriteRule::ITE_ELSE_LOOKAHEAD_SELF"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule22ITE_ELSE_NEG_LOOKAHEADE", "cvc5::ProofRewriteRule::ITE_ELSE_NEG_LOOKAHEAD"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13ITE_ELSE_TRUEE", "cvc5::ProofRewriteRule::ITE_ELSE_TRUE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13ITE_EQ_BRANCHE", "cvc5::ProofRewriteRule::ITE_EQ_BRANCH"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule10ITE_EXPANDE", "cvc5::ProofRewriteRule::ITE_EXPAND"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14ITE_FALSE_CONDE", "cvc5::ProofRewriteRule::ITE_FALSE_COND"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14ITE_NEG_BRANCHE", "cvc5::ProofRewriteRule::ITE_NEG_BRANCH"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule12ITE_NOT_CONDE", "cvc5::ProofRewriteRule::ITE_NOT_COND"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14ITE_THEN_FALSEE", "cvc5::ProofRewriteRule::ITE_THEN_FALSE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18ITE_THEN_LOOKAHEADE", "cvc5::ProofRewriteRule::ITE_THEN_LOOKAHEAD"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule27ITE_THEN_LOOKAHEAD_NOT_SELFE", "cvc5::ProofRewriteRule::ITE_THEN_LOOKAHEAD_NOT_SELF"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule23ITE_THEN_LOOKAHEAD_SELFE", "cvc5::ProofRewriteRule::ITE_THEN_LOOKAHEAD_SELF"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule22ITE_THEN_NEG_LOOKAHEADE", "cvc5::ProofRewriteRule::ITE_THEN_NEG_LOOKAHEAD"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13ITE_THEN_TRUEE", "cvc5::ProofRewriteRule::ITE_THEN_TRUE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13ITE_TRUE_CONDE", "cvc5::ProofRewriteRule::ITE_TRUE_COND"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11LAMBDA_ELIME", "cvc5::ProofRewriteRule::LAMBDA_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule30MACRO_ARITH_STRING_PRED_ENTAILE", "cvc5::ProofRewriteRule::MACRO_ARITH_STRING_PRED_ENTAIL"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule28MACRO_ARRAYS_DISTINCT_ARRAYSE", "cvc5::ProofRewriteRule::MACRO_ARRAYS_DISTINCT_ARRAYS"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule31MACRO_ARRAYS_NORMALIZE_CONSTANTE", "cvc5::ProofRewriteRule::MACRO_ARRAYS_NORMALIZE_CONSTANT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19MACRO_BOOL_NNF_NORME", "cvc5::ProofRewriteRule::MACRO_BOOL_NNF_NORM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule24MACRO_QUANT_MERGE_PRENEXE", "cvc5::ProofRewriteRule::MACRO_QUANT_MERGE_PRENEX"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule21MACRO_QUANT_MINISCOPEE", "cvc5::ProofRewriteRule::MACRO_QUANT_MINISCOPE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule34MACRO_QUANT_PARTITION_CONNECTED_FVE", "cvc5::ProofRewriteRule::MACRO_QUANT_PARTITION_CONNECTED_FV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18MACRO_QUANT_PRENEXE", "cvc5::ProofRewriteRule::MACRO_QUANT_PRENEX"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule24MACRO_QUANT_REWRITE_BODYE", "cvc5::ProofRewriteRule::MACRO_QUANT_REWRITE_BODY"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule23MACRO_QUANT_VAR_ELIM_EQE", "cvc5::ProofRewriteRule::MACRO_QUANT_VAR_ELIM_EQ"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule25MACRO_QUANT_VAR_ELIM_INEQE", "cvc5::ProofRewriteRule::MACRO_QUANT_VAR_ELIM_INEQ"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule29MACRO_SUBSTR_STRIP_SYM_LENGTHE", "cvc5::ProofRewriteRule::MACRO_SUBSTR_STRIP_SYM_LENGTH"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule4NONEE", "cvc5::ProofRewriteRule::NONE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14QUANT_DT_SPLITE", "cvc5::ProofRewriteRule::QUANT_DT_SPLIT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18QUANT_MERGE_PRENEXE", "cvc5::ProofRewriteRule::QUANT_MERGE_PRENEX"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19QUANT_MINISCOPE_ANDE", "cvc5::ProofRewriteRule::QUANT_MINISCOPE_AND"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19QUANT_MINISCOPE_ITEE", "cvc5::ProofRewriteRule::QUANT_MINISCOPE_ITE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18QUANT_MINISCOPE_ORE", "cvc5::ProofRewriteRule::QUANT_MINISCOPE_OR"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17QUANT_UNUSED_VARSE", "cvc5::ProofRewriteRule::QUANT_UNUSED_VARS"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17QUANT_VAR_ELIM_EQE", "cvc5::ProofRewriteRule::QUANT_VAR_ELIM_EQ"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11RE_ALL_ELIME", "cvc5::ProofRewriteRule::RE_ALL_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13RE_CONCAT_EMPE", "cvc5::ProofRewriteRule::RE_CONCAT_EMP"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17RE_CONCAT_FLATTENE", "cvc5::ProofRewriteRule::RE_CONCAT_FLATTEN"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule15RE_CONCAT_MERGEE", "cvc5::ProofRewriteRule::RE_CONCAT_MERGE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14RE_CONCAT_NONEE", "cvc5::ProofRewriteRule::RE_CONCAT_NONE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule21RE_CONCAT_STAR_REPEATE", "cvc5::ProofRewriteRule::RE_CONCAT_STAR_REPEAT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19RE_CONCAT_STAR_SWAPE", "cvc5::ProofRewriteRule::RE_CONCAT_STAR_SWAP"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule12RE_DIFF_ELIME", "cvc5::ProofRewriteRule::RE_DIFF_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule12RE_INTER_ALLE", "cvc5::ProofRewriteRule::RE_INTER_ALL"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16RE_INTER_CSTRINGE", "cvc5::ProofRewriteRule::RE_INTER_CSTRING"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule20RE_INTER_CSTRING_NEGE", "cvc5::ProofRewriteRule::RE_INTER_CSTRING_NEG"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule12RE_INTER_DUPE", "cvc5::ProofRewriteRule::RE_INTER_DUP"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16RE_INTER_FLATTENE", "cvc5::ProofRewriteRule::RE_INTER_FLATTEN"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13RE_INTER_NONEE", "cvc5::ProofRewriteRule::RE_INTER_NONE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule24RE_INTER_UNION_INCLUSIONE", "cvc5::ProofRewriteRule::RE_INTER_UNION_INCLUSION"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule10RE_IN_COMPE", "cvc5::ProofRewriteRule::RE_IN_COMP"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13RE_IN_CSTRINGE", "cvc5::ProofRewriteRule::RE_IN_CSTRING"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11RE_IN_EMPTYE", "cvc5::ProofRewriteRule::RE_IN_EMPTY"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11RE_IN_SIGMAE", "cvc5::ProofRewriteRule::RE_IN_SIGMA"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16RE_IN_SIGMA_STARE", "cvc5::ProofRewriteRule::RE_IN_SIGMA_STAR"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule12RE_LOOP_ELIME", "cvc5::ProofRewriteRule::RE_LOOP_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11RE_LOOP_NEGE", "cvc5::ProofRewriteRule::RE_LOOP_NEG"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11RE_OPT_ELIME", "cvc5::ProofRewriteRule::RE_OPT_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule12RE_STAR_NONEE", "cvc5::ProofRewriteRule::RE_STAR_NONE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule12RE_UNION_ALLE", "cvc5::ProofRewriteRule::RE_UNION_ALL"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule12RE_UNION_DUPE", "cvc5::ProofRewriteRule::RE_UNION_DUP"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16RE_UNION_FLATTENE", "cvc5::ProofRewriteRule::RE_UNION_FLATTEN"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13RE_UNION_NONEE", "cvc5::ProofRewriteRule::RE_UNION_NONE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13SEQ_LEN_EMPTYE", "cvc5::ProofRewriteRule::SEQ_LEN_EMPTY"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11SEQ_LEN_REVE", "cvc5::ProofRewriteRule::SEQ_LEN_REV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule12SEQ_LEN_UNITE", "cvc5::ProofRewriteRule::SEQ_LEN_UNIT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule12SEQ_NTH_UNITE", "cvc5::ProofRewriteRule::SEQ_NTH_UNIT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14SEQ_REV_CONCATE", "cvc5::ProofRewriteRule::SEQ_REV_CONCAT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11SEQ_REV_REVE", "cvc5::ProofRewriteRule::SEQ_REV_REV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule12SEQ_REV_UNITE", "cvc5::ProofRewriteRule::SEQ_REV_UNIT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13SETS_CARD_EMPE", "cvc5::ProofRewriteRule::SETS_CARD_EMP"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule15SETS_CARD_MINUSE", "cvc5::ProofRewriteRule::SETS_CARD_MINUS"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19SETS_CARD_SINGLETONE", "cvc5::ProofRewriteRule::SETS_CARD_SINGLETON"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule15SETS_CARD_UNIONE", "cvc5::ProofRewriteRule::SETS_CARD_UNION"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule21SETS_CHOOSE_SINGLETONE", "cvc5::ProofRewriteRule::SETS_CHOOSE_SINGLETON"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule21SETS_EQ_SINGLETON_EMPE", "cvc5::ProofRewriteRule::SETS_EQ_SINGLETON_EMP"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16SETS_INSERT_ELIME", "cvc5::ProofRewriteRule::SETS_INSERT_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule15SETS_INTER_COMME", "cvc5::ProofRewriteRule::SETS_INTER_COMM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule15SETS_INTER_EMP1E", "cvc5::ProofRewriteRule::SETS_INTER_EMP1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule15SETS_INTER_EMP2E", "cvc5::ProofRewriteRule::SETS_INTER_EMP2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17SETS_INTER_MEMBERE", "cvc5::ProofRewriteRule::SETS_INTER_MEMBER"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18SETS_IS_EMPTY_ELIME", "cvc5::ProofRewriteRule::SETS_IS_EMPTY_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18SETS_IS_EMPTY_EVALE", "cvc5::ProofRewriteRule::SETS_IS_EMPTY_EVAL"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule15SETS_MEMBER_EMPE", "cvc5::ProofRewriteRule::SETS_MEMBER_EMP"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule21SETS_MEMBER_SINGLETONE", "cvc5::ProofRewriteRule::SETS_MEMBER_SINGLETON"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule15SETS_MINUS_EMP1E", "cvc5::ProofRewriteRule::SETS_MINUS_EMP1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule15SETS_MINUS_EMP2E", "cvc5::ProofRewriteRule::SETS_MINUS_EMP2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17SETS_MINUS_MEMBERE", "cvc5::ProofRewriteRule::SETS_MINUS_MEMBER"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule15SETS_MINUS_SELFE", "cvc5::ProofRewriteRule::SETS_MINUS_SELF"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16SETS_SUBSET_ELIME", "cvc5::ProofRewriteRule::SETS_SUBSET_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule15SETS_UNION_COMME", "cvc5::ProofRewriteRule::SETS_UNION_COMM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule15SETS_UNION_EMP1E", "cvc5::ProofRewriteRule::SETS_UNION_EMP1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule15SETS_UNION_EMP2E", "cvc5::ProofRewriteRule::SETS_UNION_EMP2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17SETS_UNION_MEMBERE", "cvc5::ProofRewriteRule::SETS_UNION_MEMBER"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11STR_AT_ELIME", "cvc5::ProofRewriteRule::STR_AT_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16STR_CONCAT_CLASHE", "cvc5::ProofRewriteRule::STR_CONCAT_CLASH"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17STR_CONCAT_CLASH2E", "cvc5::ProofRewriteRule::STR_CONCAT_CLASH2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule21STR_CONCAT_CLASH2_REVE", "cvc5::ProofRewriteRule::STR_CONCAT_CLASH2_REV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule21STR_CONCAT_CLASH_CHARE", "cvc5::ProofRewriteRule::STR_CONCAT_CLASH_CHAR"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule25STR_CONCAT_CLASH_CHAR_REVE", "cvc5::ProofRewriteRule::STR_CONCAT_CLASH_CHAR_REV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule20STR_CONCAT_CLASH_REVE", "cvc5::ProofRewriteRule::STR_CONCAT_CLASH_REV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18STR_CONCAT_FLATTENE", "cvc5::ProofRewriteRule::STR_CONCAT_FLATTEN"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule21STR_CONCAT_FLATTEN_EQE", "cvc5::ProofRewriteRule::STR_CONCAT_FLATTEN_EQ"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule25STR_CONCAT_FLATTEN_EQ_REVE", "cvc5::ProofRewriteRule::STR_CONCAT_FLATTEN_EQ_REV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16STR_CONCAT_UNIFYE", "cvc5::ProofRewriteRule::STR_CONCAT_UNIFY"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule21STR_CONCAT_UNIFY_BASEE", "cvc5::ProofRewriteRule::STR_CONCAT_UNIFY_BASE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule25STR_CONCAT_UNIFY_BASE_REVE", "cvc5::ProofRewriteRule::STR_CONCAT_UNIFY_BASE_REV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule20STR_CONCAT_UNIFY_REVE", "cvc5::ProofRewriteRule::STR_CONCAT_UNIFY_REV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule24STR_CONTAINS_CONCAT_FINDE", "cvc5::ProofRewriteRule::STR_CONTAINS_CONCAT_FIND"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16STR_CONTAINS_EMPE", "cvc5::ProofRewriteRule::STR_CONTAINS_EMP"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19STR_CONTAINS_IS_EMPE", "cvc5::ProofRewriteRule::STR_CONTAINS_IS_EMP"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule23STR_CONTAINS_LEQ_LEN_EQE", "cvc5::ProofRewriteRule::STR_CONTAINS_LEQ_LEN_EQ"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19STR_CONTAINS_LT_LENE", "cvc5::ProofRewriteRule::STR_CONTAINS_LT_LEN"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17STR_CONTAINS_REFLE", "cvc5::ProofRewriteRule::STR_CONTAINS_REFL"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule23STR_CONTAINS_SPLIT_CHARE", "cvc5::ProofRewriteRule::STR_CONTAINS_SPLIT_CHAR"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16STR_EQ_CTN_FALSEE", "cvc5::ProofRewriteRule::STR_EQ_CTN_FALSE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule22STR_EQ_CTN_FULL_FALSE1E", "cvc5::ProofRewriteRule::STR_EQ_CTN_FULL_FALSE1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule22STR_EQ_CTN_FULL_FALSE2E", "cvc5::ProofRewriteRule::STR_EQ_CTN_FULL_FALSE2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule24STR_INDEXOF_CONTAINS_PREE", "cvc5::ProofRewriteRule::STR_INDEXOF_CONTAINS_PRE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule23STR_INDEXOF_NO_CONTAINSE", "cvc5::ProofRewriteRule::STR_INDEXOF_NO_CONTAINS"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19STR_INDEXOF_RE_NONEE", "cvc5::ProofRewriteRule::STR_INDEXOF_RE_NONE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16STR_INDEXOF_SELFE", "cvc5::ProofRewriteRule::STR_INDEXOF_SELF"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule26STR_IN_RE_CONCAT_STAR_CHARE", "cvc5::ProofRewriteRule::STR_IN_RE_CONCAT_STAR_CHAR"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17STR_IN_RE_CONSUMEE", "cvc5::ProofRewriteRule::STR_IN_RE_CONSUME"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18STR_IN_RE_CONTAINSE", "cvc5::ProofRewriteRule::STR_IN_RE_CONTAINS"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14STR_IN_RE_EVALE", "cvc5::ProofRewriteRule::STR_IN_RE_EVAL"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule20STR_IN_RE_INTER_ELIME", "cvc5::ProofRewriteRule::STR_IN_RE_INTER_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule20STR_IN_RE_RANGE_ELIME", "cvc5::ProofRewriteRule::STR_IN_RE_RANGE_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule20STR_IN_RE_REQ_UNFOLDE", "cvc5::ProofRewriteRule::STR_IN_RE_REQ_UNFOLD"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule24STR_IN_RE_REQ_UNFOLD_REVE", "cvc5::ProofRewriteRule::STR_IN_RE_REQ_UNFOLD_REV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule15STR_IN_RE_SIGMAE", "cvc5::ProofRewriteRule::STR_IN_RE_SIGMA"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule20STR_IN_RE_SIGMA_STARE", "cvc5::ProofRewriteRule::STR_IN_RE_SIGMA_STAR"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule21STR_IN_RE_SKIP_UNFOLDE", "cvc5::ProofRewriteRule::STR_IN_RE_SKIP_UNFOLD"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule25STR_IN_RE_SKIP_UNFOLD_REVE", "cvc5::ProofRewriteRule::STR_IN_RE_SKIP_UNFOLD_REV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule20STR_IN_RE_STRIP_CHARE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_CHAR"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule24STR_IN_RE_STRIP_CHAR_REVE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_CHAR_REV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule29STR_IN_RE_STRIP_CHAR_S_SINGLEE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_CHAR_S_SINGLE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule33STR_IN_RE_STRIP_CHAR_S_SINGLE_REVE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_CHAR_S_SINGLE_REV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule22STR_IN_RE_STRIP_PREFIXE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_PREFIX"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule27STR_IN_RE_STRIP_PREFIX_BASEE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_PREFIX_BASE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule31STR_IN_RE_STRIP_PREFIX_BASE_NEGE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_PREFIX_BASE_NEG"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule35STR_IN_RE_STRIP_PREFIX_BASE_NEG_REVE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_PREFIX_BASE_NEG_REV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule31STR_IN_RE_STRIP_PREFIX_BASE_REVE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_PREFIX_BASE_REV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule36STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLEE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule40STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEGE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule44STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG_REVE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG_REV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule40STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_REVE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_REV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule26STR_IN_RE_STRIP_PREFIX_NEGE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_PREFIX_NEG"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule30STR_IN_RE_STRIP_PREFIX_NEG_REVE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_PREFIX_NEG_REV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule26STR_IN_RE_STRIP_PREFIX_REVE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_PREFIX_REV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule33STR_IN_RE_STRIP_PREFIX_SRS_SINGLEE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_PREFIX_SRS_SINGLE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule37STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEGE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule41STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG_REVE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG_REV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule37STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_REVE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_REV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule32STR_IN_RE_STRIP_PREFIX_SR_SINGLEE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_PREFIX_SR_SINGLE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule36STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEGE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule40STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG_REVE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG_REV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule36STR_IN_RE_STRIP_PREFIX_SR_SINGLE_REVE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_PREFIX_SR_SINGLE_REV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule31STR_IN_RE_STRIP_PREFIX_S_SINGLEE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_PREFIX_S_SINGLE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule35STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEGE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule39STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG_REVE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG_REV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule35STR_IN_RE_STRIP_PREFIX_S_SINGLE_REVE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_PREFIX_S_SINGLE_REV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule21STR_IN_RE_TEST_UNFOLDE", "cvc5::ProofRewriteRule::STR_IN_RE_TEST_UNFOLD"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule25STR_IN_RE_TEST_UNFOLD_REVE", "cvc5::ProofRewriteRule::STR_IN_RE_TEST_UNFOLD_REV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule20STR_IN_RE_UNION_ELIME", "cvc5::ProofRewriteRule::STR_IN_RE_UNION_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18STR_LEN_CONCAT_RECE", "cvc5::ProofRewriteRule::STR_LEN_CONCAT_REC"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19STR_LEN_REPLACE_INVE", "cvc5::ProofRewriteRule::STR_LEN_REPLACE_INV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule23STR_LEN_SUBSTR_IN_RANGEE", "cvc5::ProofRewriteRule::STR_LEN_SUBSTR_IN_RANGE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18STR_LEN_SUBSTR_UB1E", "cvc5::ProofRewriteRule::STR_LEN_SUBSTR_UB1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18STR_LEN_SUBSTR_UB2E", "cvc5::ProofRewriteRule::STR_LEN_SUBSTR_UB2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18STR_LEN_UPDATE_INVE", "cvc5::ProofRewriteRule::STR_LEN_UPDATE_INV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule20STR_LEQ_CONCAT_FALSEE", "cvc5::ProofRewriteRule::STR_LEQ_CONCAT_FALSE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19STR_LEQ_CONCAT_TRUEE", "cvc5::ProofRewriteRule::STR_LEQ_CONCAT_TRUE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13STR_LEQ_EMPTYE", "cvc5::ProofRewriteRule::STR_LEQ_EMPTY"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16STR_LEQ_EMPTY_EQE", "cvc5::ProofRewriteRule::STR_LEQ_EMPTY_EQ"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11STR_LT_ELIME", "cvc5::ProofRewriteRule::STR_LT_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17STR_PREFIXOF_ELIME", "cvc5::ProofRewriteRule::STR_PREFIXOF_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16STR_PREFIXOF_ONEE", "cvc5::ProofRewriteRule::STR_PREFIXOF_ONE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule27STR_REPLACE_ALL_NO_CONTAINSE", "cvc5::ProofRewriteRule::STR_REPLACE_ALL_NO_CONTAINS"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule24STR_REPLACE_CONTAINS_PREE", "cvc5::ProofRewriteRule::STR_REPLACE_CONTAINS_PRE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17STR_REPLACE_EMPTYE", "cvc5::ProofRewriteRule::STR_REPLACE_EMPTY"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule23STR_REPLACE_NO_CONTAINSE", "cvc5::ProofRewriteRule::STR_REPLACE_NO_CONTAINS"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18STR_REPLACE_PREFIXE", "cvc5::ProofRewriteRule::STR_REPLACE_PREFIX"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule23STR_REPLACE_RE_ALL_NONEE", "cvc5::ProofRewriteRule::STR_REPLACE_RE_ALL_NONE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19STR_REPLACE_RE_NONEE", "cvc5::ProofRewriteRule::STR_REPLACE_RE_NONE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16STR_REPLACE_SELFE", "cvc5::ProofRewriteRule::STR_REPLACE_SELF"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19STR_SUBSTR_COMBINE1E", "cvc5::ProofRewriteRule::STR_SUBSTR_COMBINE1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19STR_SUBSTR_COMBINE2E", "cvc5::ProofRewriteRule::STR_SUBSTR_COMBINE2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19STR_SUBSTR_COMBINE3E", "cvc5::ProofRewriteRule::STR_SUBSTR_COMBINE3"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19STR_SUBSTR_COMBINE4E", "cvc5::ProofRewriteRule::STR_SUBSTR_COMBINE4"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18STR_SUBSTR_CONCAT1E", "cvc5::ProofRewriteRule::STR_SUBSTR_CONCAT1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18STR_SUBSTR_CONCAT2E", "cvc5::ProofRewriteRule::STR_SUBSTR_CONCAT2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule22STR_SUBSTR_EMPTY_RANGEE", "cvc5::ProofRewriteRule::STR_SUBSTR_EMPTY_RANGE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule22STR_SUBSTR_EMPTY_STARTE", "cvc5::ProofRewriteRule::STR_SUBSTR_EMPTY_START"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule26STR_SUBSTR_EMPTY_START_NEGE", "cvc5::ProofRewriteRule::STR_SUBSTR_EMPTY_START_NEG"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule20STR_SUBSTR_EMPTY_STRE", "cvc5::ProofRewriteRule::STR_SUBSTR_EMPTY_STR"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19STR_SUBSTR_EQ_EMPTYE", "cvc5::ProofRewriteRule::STR_SUBSTR_EQ_EMPTY"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule15STR_SUBSTR_FULLE", "cvc5::ProofRewriteRule::STR_SUBSTR_FULL"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18STR_SUBSTR_FULL_EQE", "cvc5::ProofRewriteRule::STR_SUBSTR_FULL_EQ"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule22STR_SUBSTR_LEN_INCLUDEE", "cvc5::ProofRewriteRule::STR_SUBSTR_LEN_INCLUDE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule26STR_SUBSTR_LEN_INCLUDE_PREE", "cvc5::ProofRewriteRule::STR_SUBSTR_LEN_INCLUDE_PRE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19STR_SUBSTR_LEN_SKIPE", "cvc5::ProofRewriteRule::STR_SUBSTR_LEN_SKIP"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17STR_SUFFIXOF_ELIME", "cvc5::ProofRewriteRule::STR_SUFFIXOF_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16STR_SUFFIXOF_ONEE", "cvc5::ProofRewriteRule::STR_SUFFIXOF_ONE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule25STR_TO_INT_CONCAT_NEG_ONEE", "cvc5::ProofRewriteRule::STR_TO_INT_CONCAT_NEG_ONE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19STR_TO_LOWER_CONCATE", "cvc5::ProofRewriteRule::STR_TO_LOWER_CONCAT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule21STR_TO_LOWER_FROM_INTE", "cvc5::ProofRewriteRule::STR_TO_LOWER_FROM_INT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16STR_TO_LOWER_LENE", "cvc5::ProofRewriteRule::STR_TO_LOWER_LEN"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18STR_TO_LOWER_UPPERE", "cvc5::ProofRewriteRule::STR_TO_LOWER_UPPER"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19STR_TO_UPPER_CONCATE", "cvc5::ProofRewriteRule::STR_TO_UPPER_CONCAT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule21STR_TO_UPPER_FROM_INTE", "cvc5::ProofRewriteRule::STR_TO_UPPER_FROM_INT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16STR_TO_UPPER_LENE", "cvc5::ProofRewriteRule::STR_TO_UPPER_LEN"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18STR_TO_UPPER_LOWERE", "cvc5::ProofRewriteRule::STR_TO_UPPER_LOWER"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18UF_BV2NAT_GEQ_ELIME", "cvc5::ProofRewriteRule::UF_BV2NAT_GEQ_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16UF_BV2NAT_INT2BVE", "cvc5::ProofRewriteRule::UF_BV2NAT_INT2BV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule23UF_BV2NAT_INT2BV_EXTENDE", "cvc5::ProofRewriteRule::UF_BV2NAT_INT2BV_EXTEND"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule24UF_BV2NAT_INT2BV_EXTRACTE", "cvc5::ProofRewriteRule::UF_BV2NAT_INT2BV_EXTRACT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16UF_INT2BV_BV2NATE", "cvc5::ProofRewriteRule::UF_INT2BV_BV2NAT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule21UF_INT2BV_BVULE_EQUIVE", "cvc5::ProofRewriteRule::UF_INT2BV_BVULE_EQUIV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule21UF_INT2BV_BVULT_EQUIVE", "cvc5::ProofRewriteRule::UF_INT2BV_BVULT_EQUIV"], [53, 2, 1, "_CPPv4N4cvc59ProofRuleE", "cvc5::ProofRule"], [53, 0, 1, "_CPPv4N4cvc59ProofRule8ACI_NORME", "cvc5::ProofRule::ACI_NORM"], [53, 0, 1, "_CPPv4N4cvc59ProofRule11ALETHE_RULEE", "cvc5::ProofRule::ALETHE_RULE"], [53, 0, 1, "_CPPv4N4cvc59ProofRule11ALPHA_EQUIVE", "cvc5::ProofRule::ALPHA_EQUIV"], [53, 0, 1, "_CPPv4N4cvc59ProofRule8AND_ELIME", "cvc5::ProofRule::AND_ELIM"], [53, 0, 1, "_CPPv4N4cvc59ProofRule9AND_INTROE", "cvc5::ProofRule::AND_INTRO"], [53, 0, 1, "_CPPv4N4cvc59ProofRule25ARITH_MULT_ABS_COMPARISONE", "cvc5::ProofRule::ARITH_MULT_ABS_COMPARISON"], [53, 0, 1, "_CPPv4N4cvc59ProofRule14ARITH_MULT_NEGE", "cvc5::ProofRule::ARITH_MULT_NEG"], [53, 0, 1, "_CPPv4N4cvc59ProofRule14ARITH_MULT_POSE", "cvc5::ProofRule::ARITH_MULT_POS"], [53, 0, 1, "_CPPv4N4cvc59ProofRule15ARITH_MULT_SIGNE", "cvc5::ProofRule::ARITH_MULT_SIGN"], [53, 0, 1, "_CPPv4N4cvc59ProofRule18ARITH_MULT_TANGENTE", "cvc5::ProofRule::ARITH_MULT_TANGENT"], [53, 0, 1, "_CPPv4N4cvc59ProofRule15ARITH_POLY_NORME", "cvc5::ProofRule::ARITH_POLY_NORM"], [53, 0, 1, "_CPPv4N4cvc59ProofRule19ARITH_POLY_NORM_RELE", "cvc5::ProofRule::ARITH_POLY_NORM_REL"], [53, 0, 1, "_CPPv4N4cvc59ProofRule15ARITH_REDUCTIONE", "cvc5::ProofRule::ARITH_REDUCTION"], [53, 0, 1, "_CPPv4N4cvc59ProofRule12ARITH_SUM_UBE", "cvc5::ProofRule::ARITH_SUM_UB"], [53, 0, 1, "_CPPv4N4cvc59ProofRule32ARITH_TRANS_EXP_APPROX_ABOVE_NEGE", "cvc5::ProofRule::ARITH_TRANS_EXP_APPROX_ABOVE_NEG"], [53, 0, 1, "_CPPv4N4cvc59ProofRule32ARITH_TRANS_EXP_APPROX_ABOVE_POSE", "cvc5::ProofRule::ARITH_TRANS_EXP_APPROX_ABOVE_POS"], [53, 0, 1, "_CPPv4N4cvc59ProofRule28ARITH_TRANS_EXP_APPROX_BELOWE", "cvc5::ProofRule::ARITH_TRANS_EXP_APPROX_BELOW"], [53, 0, 1, "_CPPv4N4cvc59ProofRule19ARITH_TRANS_EXP_NEGE", "cvc5::ProofRule::ARITH_TRANS_EXP_NEG"], [53, 0, 1, "_CPPv4N4cvc59ProofRule26ARITH_TRANS_EXP_POSITIVITYE", "cvc5::ProofRule::ARITH_TRANS_EXP_POSITIVITY"], [53, 0, 1, "_CPPv4N4cvc59ProofRule25ARITH_TRANS_EXP_SUPER_LINE", "cvc5::ProofRule::ARITH_TRANS_EXP_SUPER_LIN"], [53, 0, 1, "_CPPv4N4cvc59ProofRule20ARITH_TRANS_EXP_ZEROE", "cvc5::ProofRule::ARITH_TRANS_EXP_ZERO"], [53, 0, 1, "_CPPv4N4cvc59ProofRule14ARITH_TRANS_PIE", "cvc5::ProofRule::ARITH_TRANS_PI"], [53, 0, 1, "_CPPv4N4cvc59ProofRule33ARITH_TRANS_SINE_APPROX_ABOVE_NEGE", "cvc5::ProofRule::ARITH_TRANS_SINE_APPROX_ABOVE_NEG"], [53, 0, 1, "_CPPv4N4cvc59ProofRule33ARITH_TRANS_SINE_APPROX_ABOVE_POSE", "cvc5::ProofRule::ARITH_TRANS_SINE_APPROX_ABOVE_POS"], [53, 0, 1, "_CPPv4N4cvc59ProofRule33ARITH_TRANS_SINE_APPROX_BELOW_NEGE", "cvc5::ProofRule::ARITH_TRANS_SINE_APPROX_BELOW_NEG"], [53, 0, 1, "_CPPv4N4cvc59ProofRule33ARITH_TRANS_SINE_APPROX_BELOW_POSE", "cvc5::ProofRule::ARITH_TRANS_SINE_APPROX_BELOW_POS"], [53, 0, 1, "_CPPv4N4cvc59ProofRule23ARITH_TRANS_SINE_BOUNDSE", "cvc5::ProofRule::ARITH_TRANS_SINE_BOUNDS"], [53, 0, 1, "_CPPv4N4cvc59ProofRule22ARITH_TRANS_SINE_SHIFTE", "cvc5::ProofRule::ARITH_TRANS_SINE_SHIFT"], [53, 0, 1, "_CPPv4N4cvc59ProofRule25ARITH_TRANS_SINE_SYMMETRYE", "cvc5::ProofRule::ARITH_TRANS_SINE_SYMMETRY"], [53, 0, 1, "_CPPv4N4cvc59ProofRule27ARITH_TRANS_SINE_TANGENT_PIE", "cvc5::ProofRule::ARITH_TRANS_SINE_TANGENT_PI"], [53, 0, 1, "_CPPv4N4cvc59ProofRule29ARITH_TRANS_SINE_TANGENT_ZEROE", "cvc5::ProofRule::ARITH_TRANS_SINE_TANGENT_ZERO"], [53, 0, 1, "_CPPv4N4cvc59ProofRule16ARITH_TRICHOTOMYE", "cvc5::ProofRule::ARITH_TRICHOTOMY"], [53, 0, 1, "_CPPv4N4cvc59ProofRule10ARRAYS_EXTE", "cvc5::ProofRule::ARRAYS_EXT"], [53, 0, 1, "_CPPv4N4cvc59ProofRule22ARRAYS_READ_OVER_WRITEE", "cvc5::ProofRule::ARRAYS_READ_OVER_WRITE"], [53, 0, 1, "_CPPv4N4cvc59ProofRule24ARRAYS_READ_OVER_WRITE_1E", "cvc5::ProofRule::ARRAYS_READ_OVER_WRITE_1"], [53, 0, 1, "_CPPv4N4cvc59ProofRule29ARRAYS_READ_OVER_WRITE_CONTRAE", "cvc5::ProofRule::ARRAYS_READ_OVER_WRITE_CONTRA"], [53, 0, 1, "_CPPv4N4cvc59ProofRule6ASSUMEE", "cvc5::ProofRule::ASSUME"], [53, 0, 1, "_CPPv4N4cvc59ProofRule16BV_BITBLAST_STEPE", "cvc5::ProofRule::BV_BITBLAST_STEP"], [53, 0, 1, "_CPPv4N4cvc59ProofRule13BV_EAGER_ATOME", "cvc5::ProofRule::BV_EAGER_ATOM"], [53, 0, 1, "_CPPv4N4cvc59ProofRule16CHAIN_RESOLUTIONE", "cvc5::ProofRule::CHAIN_RESOLUTION"], [53, 0, 1, "_CPPv4N4cvc59ProofRule11CNF_AND_NEGE", "cvc5::ProofRule::CNF_AND_NEG"], [53, 0, 1, "_CPPv4N4cvc59ProofRule11CNF_AND_POSE", "cvc5::ProofRule::CNF_AND_POS"], [53, 0, 1, "_CPPv4N4cvc59ProofRule14CNF_EQUIV_NEG1E", "cvc5::ProofRule::CNF_EQUIV_NEG1"], [53, 0, 1, "_CPPv4N4cvc59ProofRule14CNF_EQUIV_NEG2E", "cvc5::ProofRule::CNF_EQUIV_NEG2"], [53, 0, 1, "_CPPv4N4cvc59ProofRule14CNF_EQUIV_POS1E", "cvc5::ProofRule::CNF_EQUIV_POS1"], [53, 0, 1, "_CPPv4N4cvc59ProofRule14CNF_EQUIV_POS2E", "cvc5::ProofRule::CNF_EQUIV_POS2"], [53, 0, 1, "_CPPv4N4cvc59ProofRule16CNF_IMPLIES_NEG1E", "cvc5::ProofRule::CNF_IMPLIES_NEG1"], [53, 0, 1, "_CPPv4N4cvc59ProofRule16CNF_IMPLIES_NEG2E", "cvc5::ProofRule::CNF_IMPLIES_NEG2"], [53, 0, 1, "_CPPv4N4cvc59ProofRule15CNF_IMPLIES_POSE", "cvc5::ProofRule::CNF_IMPLIES_POS"], [53, 0, 1, "_CPPv4N4cvc59ProofRule12CNF_ITE_NEG1E", "cvc5::ProofRule::CNF_ITE_NEG1"], [53, 0, 1, "_CPPv4N4cvc59ProofRule12CNF_ITE_NEG2E", "cvc5::ProofRule::CNF_ITE_NEG2"], [53, 0, 1, "_CPPv4N4cvc59ProofRule12CNF_ITE_NEG3E", "cvc5::ProofRule::CNF_ITE_NEG3"], [53, 0, 1, "_CPPv4N4cvc59ProofRule12CNF_ITE_POS1E", "cvc5::ProofRule::CNF_ITE_POS1"], [53, 0, 1, "_CPPv4N4cvc59ProofRule12CNF_ITE_POS2E", "cvc5::ProofRule::CNF_ITE_POS2"], [53, 0, 1, "_CPPv4N4cvc59ProofRule12CNF_ITE_POS3E", "cvc5::ProofRule::CNF_ITE_POS3"], [53, 0, 1, "_CPPv4N4cvc59ProofRule10CNF_OR_NEGE", "cvc5::ProofRule::CNF_OR_NEG"], [53, 0, 1, "_CPPv4N4cvc59ProofRule10CNF_OR_POSE", "cvc5::ProofRule::CNF_OR_POS"], [53, 0, 1, "_CPPv4N4cvc59ProofRule12CNF_XOR_NEG1E", "cvc5::ProofRule::CNF_XOR_NEG1"], [53, 0, 1, "_CPPv4N4cvc59ProofRule12CNF_XOR_NEG2E", "cvc5::ProofRule::CNF_XOR_NEG2"], [53, 0, 1, "_CPPv4N4cvc59ProofRule12CNF_XOR_POS1E", "cvc5::ProofRule::CNF_XOR_POS1"], [53, 0, 1, "_CPPv4N4cvc59ProofRule12CNF_XOR_POS2E", "cvc5::ProofRule::CNF_XOR_POS2"], [53, 0, 1, "_CPPv4N4cvc59ProofRule15CONCAT_CONFLICTE", "cvc5::ProofRule::CONCAT_CONFLICT"], [53, 0, 1, "_CPPv4N4cvc59ProofRule19CONCAT_CONFLICT_DEQE", "cvc5::ProofRule::CONCAT_CONFLICT_DEQ"], [53, 0, 1, "_CPPv4N4cvc59ProofRule12CONCAT_CPROPE", "cvc5::ProofRule::CONCAT_CPROP"], [53, 0, 1, "_CPPv4N4cvc59ProofRule13CONCAT_CSPLITE", "cvc5::ProofRule::CONCAT_CSPLIT"], [53, 0, 1, "_CPPv4N4cvc59ProofRule9CONCAT_EQE", "cvc5::ProofRule::CONCAT_EQ"], [53, 0, 1, "_CPPv4N4cvc59ProofRule12CONCAT_LPROPE", "cvc5::ProofRule::CONCAT_LPROP"], [53, 0, 1, "_CPPv4N4cvc59ProofRule12CONCAT_SPLITE", "cvc5::ProofRule::CONCAT_SPLIT"], [53, 0, 1, "_CPPv4N4cvc59ProofRule12CONCAT_UNIFYE", "cvc5::ProofRule::CONCAT_UNIFY"], [53, 0, 1, "_CPPv4N4cvc59ProofRule4CONGE", "cvc5::ProofRule::CONG"], [53, 0, 1, "_CPPv4N4cvc59ProofRule6CONTRAE", "cvc5::ProofRule::CONTRA"], [53, 0, 1, "_CPPv4N4cvc59ProofRule15DRAT_REFUTATIONE", "cvc5::ProofRule::DRAT_REFUTATION"], [53, 0, 1, "_CPPv4N4cvc59ProofRule11DSL_REWRITEE", "cvc5::ProofRule::DSL_REWRITE"], [53, 0, 1, "_CPPv4N4cvc59ProofRule8DT_CLASHE", "cvc5::ProofRule::DT_CLASH"], [53, 0, 1, "_CPPv4N4cvc59ProofRule8DT_SPLITE", "cvc5::ProofRule::DT_SPLIT"], [53, 0, 1, "_CPPv4N4cvc59ProofRule15ENCODE_EQ_INTROE", "cvc5::ProofRule::ENCODE_EQ_INTRO"], [53, 0, 1, "_CPPv4N4cvc59ProofRule11EQUIV_ELIM1E", "cvc5::ProofRule::EQUIV_ELIM1"], [53, 0, 1, "_CPPv4N4cvc59ProofRule11EQUIV_ELIM2E", "cvc5::ProofRule::EQUIV_ELIM2"], [53, 0, 1, "_CPPv4N4cvc59ProofRule10EQ_RESOLVEE", "cvc5::ProofRule::EQ_RESOLVE"], [53, 0, 1, "_CPPv4N4cvc59ProofRule8EVALUATEE", "cvc5::ProofRule::EVALUATE"], [53, 0, 1, "_CPPv4N4cvc59ProofRule9FACTORINGE", "cvc5::ProofRule::FACTORING"], [53, 0, 1, "_CPPv4N4cvc59ProofRule10FALSE_ELIME", "cvc5::ProofRule::FALSE_ELIM"], [53, 0, 1, "_CPPv4N4cvc59ProofRule11FALSE_INTROE", "cvc5::ProofRule::FALSE_INTRO"], [53, 0, 1, "_CPPv4N4cvc59ProofRule13HO_APP_ENCODEE", "cvc5::ProofRule::HO_APP_ENCODE"], [53, 0, 1, "_CPPv4N4cvc59ProofRule7HO_CONGE", "cvc5::ProofRule::HO_CONG"], [53, 0, 1, "_CPPv4N4cvc59ProofRule12IMPLIES_ELIME", "cvc5::ProofRule::IMPLIES_ELIM"], [53, 0, 1, "_CPPv4N4cvc59ProofRule11INSTANTIATEE", "cvc5::ProofRule::INSTANTIATE"], [53, 0, 1, "_CPPv4N4cvc59ProofRule12INT_TIGHT_LBE", "cvc5::ProofRule::INT_TIGHT_LB"], [53, 0, 1, "_CPPv4N4cvc59ProofRule12INT_TIGHT_UBE", "cvc5::ProofRule::INT_TIGHT_UB"], [53, 0, 1, "_CPPv4N4cvc59ProofRule9ITE_ELIM1E", "cvc5::ProofRule::ITE_ELIM1"], [53, 0, 1, "_CPPv4N4cvc59ProofRule9ITE_ELIM2E", "cvc5::ProofRule::ITE_ELIM2"], [53, 0, 1, "_CPPv4N4cvc59ProofRule6ITE_EQE", "cvc5::ProofRule::ITE_EQ"], [53, 0, 1, "_CPPv4N4cvc59ProofRule9LFSC_RULEE", "cvc5::ProofRule::LFSC_RULE"], [53, 0, 1, "_CPPv4N4cvc59ProofRule24MACRO_ARITH_SCALE_SUM_UBE", "cvc5::ProofRule::MACRO_ARITH_SCALE_SUM_UB"], [53, 0, 1, "_CPPv4N4cvc59ProofRule17MACRO_BV_BITBLASTE", "cvc5::ProofRule::MACRO_BV_BITBLAST"], [53, 0, 1, "_CPPv4N4cvc59ProofRule16MACRO_RESOLUTIONE", "cvc5::ProofRule::MACRO_RESOLUTION"], [53, 0, 1, "_CPPv4N4cvc59ProofRule22MACRO_RESOLUTION_TRUSTE", "cvc5::ProofRule::MACRO_RESOLUTION_TRUST"], [53, 0, 1, "_CPPv4N4cvc59ProofRule13MACRO_REWRITEE", "cvc5::ProofRule::MACRO_REWRITE"], [53, 0, 1, "_CPPv4N4cvc59ProofRule17MACRO_SR_EQ_INTROE", "cvc5::ProofRule::MACRO_SR_EQ_INTRO"], [53, 0, 1, "_CPPv4N4cvc59ProofRule18MACRO_SR_PRED_ELIME", "cvc5::ProofRule::MACRO_SR_PRED_ELIM"], [53, 0, 1, "_CPPv4N4cvc59ProofRule19MACRO_SR_PRED_INTROE", "cvc5::ProofRule::MACRO_SR_PRED_INTRO"], [53, 0, 1, "_CPPv4N4cvc59ProofRule23MACRO_SR_PRED_TRANSFORME", "cvc5::ProofRule::MACRO_SR_PRED_TRANSFORM"], [53, 0, 1, "_CPPv4N4cvc59ProofRule22MACRO_STRING_INFERENCEE", "cvc5::ProofRule::MACRO_STRING_INFERENCE"], [53, 0, 1, "_CPPv4N4cvc59ProofRule12MODUS_PONENSE", "cvc5::ProofRule::MODUS_PONENS"], [53, 0, 1, "_CPPv4N4cvc59ProofRule9NARY_CONGE", "cvc5::ProofRule::NARY_CONG"], [53, 0, 1, "_CPPv4N4cvc59ProofRule7NOT_ANDE", "cvc5::ProofRule::NOT_AND"], [53, 0, 1, "_CPPv4N4cvc59ProofRule15NOT_EQUIV_ELIM1E", "cvc5::ProofRule::NOT_EQUIV_ELIM1"], [53, 0, 1, "_CPPv4N4cvc59ProofRule15NOT_EQUIV_ELIM2E", "cvc5::ProofRule::NOT_EQUIV_ELIM2"], [53, 0, 1, "_CPPv4N4cvc59ProofRule17NOT_IMPLIES_ELIM1E", "cvc5::ProofRule::NOT_IMPLIES_ELIM1"], [53, 0, 1, "_CPPv4N4cvc59ProofRule17NOT_IMPLIES_ELIM2E", "cvc5::ProofRule::NOT_IMPLIES_ELIM2"], [53, 0, 1, "_CPPv4N4cvc59ProofRule13NOT_ITE_ELIM1E", "cvc5::ProofRule::NOT_ITE_ELIM1"], [53, 0, 1, "_CPPv4N4cvc59ProofRule13NOT_ITE_ELIM2E", "cvc5::ProofRule::NOT_ITE_ELIM2"], [53, 0, 1, "_CPPv4N4cvc59ProofRule12NOT_NOT_ELIME", "cvc5::ProofRule::NOT_NOT_ELIM"], [53, 0, 1, "_CPPv4N4cvc59ProofRule11NOT_OR_ELIME", "cvc5::ProofRule::NOT_OR_ELIM"], [53, 0, 1, "_CPPv4N4cvc59ProofRule13NOT_XOR_ELIM1E", "cvc5::ProofRule::NOT_XOR_ELIM1"], [53, 0, 1, "_CPPv4N4cvc59ProofRule13NOT_XOR_ELIM2E", "cvc5::ProofRule::NOT_XOR_ELIM2"], [53, 0, 1, "_CPPv4N4cvc59ProofRule20QUANT_VAR_REORDERINGE", "cvc5::ProofRule::QUANT_VAR_REORDERING"], [53, 0, 1, "_CPPv4N4cvc59ProofRule4REFLE", "cvc5::ProofRule::REFL"], [53, 0, 1, "_CPPv4N4cvc59ProofRule10REORDERINGE", "cvc5::ProofRule::REORDERING"], [53, 0, 1, "_CPPv4N4cvc59ProofRule10RESOLUTIONE", "cvc5::ProofRule::RESOLUTION"], [53, 0, 1, "_CPPv4N4cvc59ProofRule8RE_INTERE", "cvc5::ProofRule::RE_INTER"], [53, 0, 1, "_CPPv4N4cvc59ProofRule13RE_UNFOLD_NEGE", "cvc5::ProofRule::RE_UNFOLD_NEG"], [53, 0, 1, "_CPPv4N4cvc59ProofRule26RE_UNFOLD_NEG_CONCAT_FIXEDE", "cvc5::ProofRule::RE_UNFOLD_NEG_CONCAT_FIXED"], [53, 0, 1, "_CPPv4N4cvc59ProofRule13RE_UNFOLD_POSE", "cvc5::ProofRule::RE_UNFOLD_POS"], [53, 0, 1, "_CPPv4N4cvc59ProofRule18SAT_EXTERNAL_PROVEE", "cvc5::ProofRule::SAT_EXTERNAL_PROVE"], [53, 0, 1, "_CPPv4N4cvc59ProofRule14SAT_REFUTATIONE", "cvc5::ProofRule::SAT_REFUTATION"], [53, 0, 1, "_CPPv4N4cvc59ProofRule5SCOPEE", "cvc5::ProofRule::SCOPE"], [53, 0, 1, "_CPPv4N4cvc59ProofRule8SETS_EXTE", "cvc5::ProofRule::SETS_EXT"], [53, 0, 1, "_CPPv4N4cvc59ProofRule16SETS_FILTER_DOWNE", "cvc5::ProofRule::SETS_FILTER_DOWN"], [53, 0, 1, "_CPPv4N4cvc59ProofRule14SETS_FILTER_UPE", "cvc5::ProofRule::SETS_FILTER_UP"], [53, 0, 1, "_CPPv4N4cvc59ProofRule18SETS_SINGLETON_INJE", "cvc5::ProofRule::SETS_SINGLETON_INJ"], [53, 0, 1, "_CPPv4N4cvc59ProofRule9SKOLEMIZEE", "cvc5::ProofRule::SKOLEMIZE"], [53, 0, 1, "_CPPv4N4cvc59ProofRule12SKOLEM_INTROE", "cvc5::ProofRule::SKOLEM_INTRO"], [53, 0, 1, "_CPPv4N4cvc59ProofRule5SPLITE", "cvc5::ProofRule::SPLIT"], [53, 0, 1, "_CPPv4N4cvc59ProofRule15STRING_CODE_INJE", "cvc5::ProofRule::STRING_CODE_INJ"], [53, 0, 1, "_CPPv4N4cvc59ProofRule16STRING_DECOMPOSEE", "cvc5::ProofRule::STRING_DECOMPOSE"], [53, 0, 1, "_CPPv4N4cvc59ProofRule22STRING_EAGER_REDUCTIONE", "cvc5::ProofRule::STRING_EAGER_REDUCTION"], [53, 0, 1, "_CPPv4N4cvc59ProofRule10STRING_EXTE", "cvc5::ProofRule::STRING_EXT"], [53, 0, 1, "_CPPv4N4cvc59ProofRule23STRING_LENGTH_NON_EMPTYE", "cvc5::ProofRule::STRING_LENGTH_NON_EMPTY"], [53, 0, 1, "_CPPv4N4cvc59ProofRule17STRING_LENGTH_POSE", "cvc5::ProofRule::STRING_LENGTH_POS"], [53, 0, 1, "_CPPv4N4cvc59ProofRule16STRING_REDUCTIONE", "cvc5::ProofRule::STRING_REDUCTION"], [53, 0, 1, "_CPPv4N4cvc59ProofRule19STRING_SEQ_UNIT_INJE", "cvc5::ProofRule::STRING_SEQ_UNIT_INJ"], [53, 0, 1, "_CPPv4N4cvc59ProofRule4SUBSE", "cvc5::ProofRule::SUBS"], [53, 0, 1, "_CPPv4N4cvc59ProofRule4SYMME", "cvc5::ProofRule::SYMM"], [53, 0, 1, "_CPPv4N4cvc59ProofRule14THEORY_REWRITEE", "cvc5::ProofRule::THEORY_REWRITE"], [53, 0, 1, "_CPPv4N4cvc59ProofRule5TRANSE", "cvc5::ProofRule::TRANS"], [53, 0, 1, "_CPPv4N4cvc59ProofRule9TRUE_ELIME", "cvc5::ProofRule::TRUE_ELIM"], [53, 0, 1, "_CPPv4N4cvc59ProofRule10TRUE_INTROE", "cvc5::ProofRule::TRUE_INTRO"], [53, 0, 1, "_CPPv4N4cvc59ProofRule5TRUSTE", "cvc5::ProofRule::TRUST"], [53, 0, 1, "_CPPv4N4cvc59ProofRule20TRUST_THEORY_REWRITEE", "cvc5::ProofRule::TRUST_THEORY_REWRITE"], [53, 0, 1, "_CPPv4N4cvc59ProofRule7UNKNOWNE", "cvc5::ProofRule::UNKNOWN"], [53, 0, 1, "_CPPv4N4cvc59ProofRule9XOR_ELIM1E", "cvc5::ProofRule::XOR_ELIM1"], [53, 0, 1, "_CPPv4N4cvc59ProofRule9XOR_ELIM2E", "cvc5::ProofRule::XOR_ELIM2"], [42, 3, 1, "_CPPv4N4cvc56ResultE", "cvc5::Result"], [42, 5, 1, "_CPPv4N4cvc56Result6ResultEv", "cvc5::Result::Result"], [42, 5, 1, "_CPPv4NK4cvc56Result21getUnknownExplanationEv", "cvc5::Result::getUnknownExplanation"], [42, 5, 1, "_CPPv4NK4cvc56Result6isNullEv", "cvc5::Result::isNull"], [42, 5, 1, "_CPPv4NK4cvc56Result5isSatEv", "cvc5::Result::isSat"], [42, 5, 1, "_CPPv4NK4cvc56Result9isUnknownEv", "cvc5::Result::isUnknown"], [42, 5, 1, "_CPPv4NK4cvc56Result7isUnsatEv", "cvc5::Result::isUnsat"], [42, 5, 1, "_CPPv4NK4cvc56ResultneERK6Result", "cvc5::Result::operator!="], [42, 6, 1, "_CPPv4NK4cvc56ResultneERK6Result", "cvc5::Result::operator!=::r"], [42, 5, 1, "_CPPv4NK4cvc56ResulteqERK6Result", "cvc5::Result::operator=="], [42, 6, 1, "_CPPv4NK4cvc56ResulteqERK6Result", "cvc5::Result::operator==::r"], [42, 5, 1, "_CPPv4NK4cvc56Result8toStringEv", "cvc5::Result::toString"], [54, 2, 1, "_CPPv4N4cvc512RoundingModeE", "cvc5::RoundingMode"], [54, 0, 1, "_CPPv4N4cvc512RoundingMode26ROUND_NEAREST_TIES_TO_AWAYE", "cvc5::RoundingMode::ROUND_NEAREST_TIES_TO_AWAY"], [54, 0, 1, "_CPPv4N4cvc512RoundingMode26ROUND_NEAREST_TIES_TO_EVENE", "cvc5::RoundingMode::ROUND_NEAREST_TIES_TO_EVEN"], [54, 0, 1, "_CPPv4N4cvc512RoundingMode21ROUND_TOWARD_NEGATIVEE", "cvc5::RoundingMode::ROUND_TOWARD_NEGATIVE"], [54, 0, 1, "_CPPv4N4cvc512RoundingMode21ROUND_TOWARD_POSITIVEE", "cvc5::RoundingMode::ROUND_TOWARD_POSITIVE"], [54, 0, 1, "_CPPv4N4cvc512RoundingMode17ROUND_TOWARD_ZEROE", "cvc5::RoundingMode::ROUND_TOWARD_ZERO"], [140, 2, 1, "_CPPv4N4cvc58SkolemIdE", "cvc5::SkolemId"], [140, 0, 1, "_CPPv4N4cvc58SkolemId15ARITH_VTS_DELTAE", "cvc5::SkolemId::ARITH_VTS_DELTA"], [140, 0, 1, "_CPPv4N4cvc58SkolemId20ARITH_VTS_DELTA_FREEE", "cvc5::SkolemId::ARITH_VTS_DELTA_FREE"], [140, 0, 1, "_CPPv4N4cvc58SkolemId18ARITH_VTS_INFINITYE", "cvc5::SkolemId::ARITH_VTS_INFINITY"], [140, 0, 1, "_CPPv4N4cvc58SkolemId23ARITH_VTS_INFINITY_FREEE", "cvc5::SkolemId::ARITH_VTS_INFINITY_FREE"], [140, 0, 1, "_CPPv4N4cvc58SkolemId14ARRAY_DEQ_DIFFE", "cvc5::SkolemId::ARRAY_DEQ_DIFF"], [140, 0, 1, "_CPPv4N4cvc58SkolemId17BAGS_CARD_COMBINEE", "cvc5::SkolemId::BAGS_CARD_COMBINE"], [140, 0, 1, "_CPPv4N4cvc58SkolemId11BAGS_CHOOSEE", "cvc5::SkolemId::BAGS_CHOOSE"], [140, 0, 1, "_CPPv4N4cvc58SkolemId13BAGS_DEQ_DIFFE", "cvc5::SkolemId::BAGS_DEQ_DIFF"], [140, 0, 1, "_CPPv4N4cvc58SkolemId22BAGS_DISTINCT_ELEMENTSE", "cvc5::SkolemId::BAGS_DISTINCT_ELEMENTS"], [140, 0, 1, "_CPPv4N4cvc58SkolemId27BAGS_DISTINCT_ELEMENTS_SIZEE", "cvc5::SkolemId::BAGS_DISTINCT_ELEMENTS_SIZE"], [140, 0, 1, "_CPPv4N4cvc58SkolemId37BAGS_DISTINCT_ELEMENTS_UNION_DISJOINTE", "cvc5::SkolemId::BAGS_DISTINCT_ELEMENTS_UNION_DISJOINT"], [140, 0, 1, "_CPPv4N4cvc58SkolemId14BAGS_FOLD_CARDE", "cvc5::SkolemId::BAGS_FOLD_CARD"], [140, 0, 1, "_CPPv4N4cvc58SkolemId17BAGS_FOLD_COMBINEE", "cvc5::SkolemId::BAGS_FOLD_COMBINE"], [140, 0, 1, "_CPPv4N4cvc58SkolemId18BAGS_FOLD_ELEMENTSE", "cvc5::SkolemId::BAGS_FOLD_ELEMENTS"], [140, 0, 1, "_CPPv4N4cvc58SkolemId24BAGS_FOLD_UNION_DISJOINTE", "cvc5::SkolemId::BAGS_FOLD_UNION_DISJOINT"], [140, 0, 1, "_CPPv4N4cvc58SkolemId14BAGS_MAP_INDEXE", "cvc5::SkolemId::BAGS_MAP_INDEX"], [140, 0, 1, "_CPPv4N4cvc58SkolemId27BAGS_MAP_PREIMAGE_INJECTIVEE", "cvc5::SkolemId::BAGS_MAP_PREIMAGE_INJECTIVE"], [140, 0, 1, "_CPPv4N4cvc58SkolemId12BAGS_MAP_SUME", "cvc5::SkolemId::BAGS_MAP_SUM"], [140, 0, 1, "_CPPv4N4cvc58SkolemId8BV_EMPTYE", "cvc5::SkolemId::BV_EMPTY"], [140, 0, 1, "_CPPv4N4cvc58SkolemId12BV_TO_INT_UFE", "cvc5::SkolemId::BV_TO_INT_UF"], [140, 0, 1, "_CPPv4N4cvc58SkolemId11DIV_BY_ZEROE", "cvc5::SkolemId::DIV_BY_ZERO"], [140, 0, 1, "_CPPv4N4cvc58SkolemId11FP_MAX_ZEROE", "cvc5::SkolemId::FP_MAX_ZERO"], [140, 0, 1, "_CPPv4N4cvc58SkolemId11FP_MIN_ZEROE", "cvc5::SkolemId::FP_MIN_ZERO"], [140, 0, 1, "_CPPv4N4cvc58SkolemId10FP_TO_REALE", "cvc5::SkolemId::FP_TO_REAL"], [140, 0, 1, "_CPPv4N4cvc58SkolemId9FP_TO_SBVE", "cvc5::SkolemId::FP_TO_SBV"], [140, 0, 1, "_CPPv4N4cvc58SkolemId9FP_TO_UBVE", "cvc5::SkolemId::FP_TO_UBV"], [140, 0, 1, "_CPPv4N4cvc58SkolemId11GROUND_TERME", "cvc5::SkolemId::GROUND_TERM"], [140, 0, 1, "_CPPv4N4cvc58SkolemId11HO_DEQ_DIFFE", "cvc5::SkolemId::HO_DEQ_DIFF"], [140, 0, 1, "_CPPv4N4cvc58SkolemId8INTERNALE", "cvc5::SkolemId::INTERNAL"], [140, 0, 1, "_CPPv4N4cvc58SkolemId15INT_DIV_BY_ZEROE", "cvc5::SkolemId::INT_DIV_BY_ZERO"], [140, 0, 1, "_CPPv4N4cvc58SkolemId11MOD_BY_ZEROE", "cvc5::SkolemId::MOD_BY_ZERO"], [140, 0, 1, "_CPPv4N4cvc58SkolemId4NONEE", "cvc5::SkolemId::NONE"], [140, 0, 1, "_CPPv4N4cvc58SkolemId6PURIFYE", "cvc5::SkolemId::PURIFY"], [140, 0, 1, "_CPPv4N4cvc58SkolemId21QUANTIFIERS_SKOLEMIZEE", "cvc5::SkolemId::QUANTIFIERS_SKOLEMIZE"], [140, 0, 1, "_CPPv4N4cvc58SkolemId20RELATIONS_GROUP_PARTE", "cvc5::SkolemId::RELATIONS_GROUP_PART"], [140, 0, 1, "_CPPv4N4cvc58SkolemId28RELATIONS_GROUP_PART_ELEMENTE", "cvc5::SkolemId::RELATIONS_GROUP_PART_ELEMENT"], [140, 0, 1, "_CPPv4N4cvc58SkolemId14RE_FIRST_MATCHE", "cvc5::SkolemId::RE_FIRST_MATCH"], [140, 0, 1, "_CPPv4N4cvc58SkolemId19RE_FIRST_MATCH_POSTE", "cvc5::SkolemId::RE_FIRST_MATCH_POST"], [140, 0, 1, "_CPPv4N4cvc58SkolemId18RE_FIRST_MATCH_PREE", "cvc5::SkolemId::RE_FIRST_MATCH_PRE"], [140, 0, 1, "_CPPv4N4cvc58SkolemId23RE_UNFOLD_POS_COMPONENTE", "cvc5::SkolemId::RE_UNFOLD_POS_COMPONENT"], [140, 0, 1, "_CPPv4N4cvc58SkolemId11SETS_CHOOSEE", "cvc5::SkolemId::SETS_CHOOSE"], [140, 0, 1, "_CPPv4N4cvc58SkolemId13SETS_DEQ_DIFFE", "cvc5::SkolemId::SETS_DEQ_DIFF"], [140, 0, 1, "_CPPv4N4cvc58SkolemId14SETS_FOLD_CARDE", "cvc5::SkolemId::SETS_FOLD_CARD"], [140, 0, 1, "_CPPv4N4cvc58SkolemId17SETS_FOLD_COMBINEE", "cvc5::SkolemId::SETS_FOLD_COMBINE"], [140, 0, 1, "_CPPv4N4cvc58SkolemId18SETS_FOLD_ELEMENTSE", "cvc5::SkolemId::SETS_FOLD_ELEMENTS"], [140, 0, 1, "_CPPv4N4cvc58SkolemId15SETS_FOLD_UNIONE", "cvc5::SkolemId::SETS_FOLD_UNION"], [140, 0, 1, "_CPPv4N4cvc58SkolemId21SETS_MAP_DOWN_ELEMENTE", "cvc5::SkolemId::SETS_MAP_DOWN_ELEMENT"], [140, 0, 1, "_CPPv4N4cvc58SkolemId15SHARED_SELECTORE", "cvc5::SkolemId::SHARED_SELECTOR"], [140, 0, 1, "_CPPv4N4cvc58SkolemId16STRINGS_DEQ_DIFFE", "cvc5::SkolemId::STRINGS_DEQ_DIFF"], [140, 0, 1, "_CPPv4N4cvc58SkolemId19STRINGS_ITOS_RESULTE", "cvc5::SkolemId::STRINGS_ITOS_RESULT"], [140, 0, 1, "_CPPv4N4cvc58SkolemId17STRINGS_NUM_OCCURE", "cvc5::SkolemId::STRINGS_NUM_OCCUR"], [140, 0, 1, "_CPPv4N4cvc58SkolemId20STRINGS_NUM_OCCUR_REE", "cvc5::SkolemId::STRINGS_NUM_OCCUR_RE"], [140, 0, 1, "_CPPv4N4cvc58SkolemId19STRINGS_OCCUR_INDEXE", "cvc5::SkolemId::STRINGS_OCCUR_INDEX"], [140, 0, 1, "_CPPv4N4cvc58SkolemId22STRINGS_OCCUR_INDEX_REE", "cvc5::SkolemId::STRINGS_OCCUR_INDEX_RE"], [140, 0, 1, "_CPPv4N4cvc58SkolemId20STRINGS_OCCUR_LEN_REE", "cvc5::SkolemId::STRINGS_OCCUR_LEN_RE"], [140, 0, 1, "_CPPv4N4cvc58SkolemId26STRINGS_REPLACE_ALL_RESULTE", "cvc5::SkolemId::STRINGS_REPLACE_ALL_RESULT"], [140, 0, 1, "_CPPv4N4cvc58SkolemId22STRINGS_STOI_NON_DIGITE", "cvc5::SkolemId::STRINGS_STOI_NON_DIGIT"], [140, 0, 1, "_CPPv4N4cvc58SkolemId19STRINGS_STOI_RESULTE", "cvc5::SkolemId::STRINGS_STOI_RESULT"], [140, 0, 1, "_CPPv4N4cvc58SkolemId17TABLES_GROUP_PARTE", "cvc5::SkolemId::TABLES_GROUP_PART"], [140, 0, 1, "_CPPv4N4cvc58SkolemId25TABLES_GROUP_PART_ELEMENTE", "cvc5::SkolemId::TABLES_GROUP_PART_ELEMENT"], [140, 0, 1, "_CPPv4N4cvc58SkolemId21TRANSCENDENTAL_PURIFYE", "cvc5::SkolemId::TRANSCENDENTAL_PURIFY"], [140, 0, 1, "_CPPv4N4cvc58SkolemId25TRANSCENDENTAL_PURIFY_ARGE", "cvc5::SkolemId::TRANSCENDENTAL_PURIFY_ARG"], [140, 0, 1, "_CPPv4N4cvc58SkolemId31TRANSCENDENTAL_SINE_PHASE_SHIFTE", "cvc5::SkolemId::TRANSCENDENTAL_SINE_PHASE_SHIFT"], [43, 3, 1, "_CPPv4N4cvc56SolverE", "cvc5::Solver"], [43, 5, 1, "_CPPv4N4cvc56Solver6SolverER11TermManager", "cvc5::Solver::Solver"], [43, 5, 1, "_CPPv4N4cvc56Solver6SolverERK6Solver", "cvc5::Solver::Solver"], [43, 5, 1, "_CPPv4N4cvc56Solver6SolverEv", "cvc5::Solver::Solver"], [43, 6, 1, "_CPPv4N4cvc56Solver6SolverER11TermManager", "cvc5::Solver::Solver::tm"], [43, 5, 1, "_CPPv4N4cvc56Solver9addPluginER6Plugin", "cvc5::Solver::addPlugin"], [43, 6, 1, "_CPPv4N4cvc56Solver9addPluginER6Plugin", "cvc5::Solver::addPlugin::p"], [43, 5, 1, "_CPPv4NK4cvc56Solver14addSygusAssumeERK4Term", "cvc5::Solver::addSygusAssume"], [43, 6, 1, "_CPPv4NK4cvc56Solver14addSygusAssumeERK4Term", "cvc5::Solver::addSygusAssume::term"], [43, 5, 1, "_CPPv4NK4cvc56Solver18addSygusConstraintERK4Term", "cvc5::Solver::addSygusConstraint"], [43, 6, 1, "_CPPv4NK4cvc56Solver18addSygusConstraintERK4Term", "cvc5::Solver::addSygusConstraint::term"], [43, 5, 1, "_CPPv4NK4cvc56Solver21addSygusInvConstraintERK4TermRK4TermRK4TermRK4Term", "cvc5::Solver::addSygusInvConstraint"], [43, 6, 1, "_CPPv4NK4cvc56Solver21addSygusInvConstraintERK4TermRK4TermRK4TermRK4Term", "cvc5::Solver::addSygusInvConstraint::inv"], [43, 6, 1, "_CPPv4NK4cvc56Solver21addSygusInvConstraintERK4TermRK4TermRK4TermRK4Term", "cvc5::Solver::addSygusInvConstraint::post"], [43, 6, 1, "_CPPv4NK4cvc56Solver21addSygusInvConstraintERK4TermRK4TermRK4TermRK4Term", "cvc5::Solver::addSygusInvConstraint::pre"], [43, 6, 1, "_CPPv4NK4cvc56Solver21addSygusInvConstraintERK4TermRK4TermRK4TermRK4Term", "cvc5::Solver::addSygusInvConstraint::trans"], [43, 5, 1, "_CPPv4NK4cvc56Solver13assertFormulaERK4Term", "cvc5::Solver::assertFormula"], [43, 6, 1, "_CPPv4NK4cvc56Solver13assertFormulaERK4Term", "cvc5::Solver::assertFormula::term"], [43, 5, 1, "_CPPv4NK4cvc56Solver10blockModelEN5modes15BlockModelsModeE", "cvc5::Solver::blockModel"], [43, 6, 1, "_CPPv4NK4cvc56Solver10blockModelEN5modes15BlockModelsModeE", "cvc5::Solver::blockModel::mode"], [43, 5, 1, "_CPPv4NK4cvc56Solver16blockModelValuesERKNSt6vectorI4TermEE", "cvc5::Solver::blockModelValues"], [43, 6, 1, "_CPPv4NK4cvc56Solver16blockModelValuesERKNSt6vectorI4TermEE", "cvc5::Solver::blockModelValues::terms"], [43, 5, 1, "_CPPv4NK4cvc56Solver8checkSatEv", "cvc5::Solver::checkSat"], [43, 5, 1, "_CPPv4NK4cvc56Solver16checkSatAssumingERK4Term", "cvc5::Solver::checkSatAssuming"], [43, 5, 1, "_CPPv4NK4cvc56Solver16checkSatAssumingERKNSt6vectorI4TermEE", "cvc5::Solver::checkSatAssuming"], [43, 6, 1, "_CPPv4NK4cvc56Solver16checkSatAssumingERK4Term", "cvc5::Solver::checkSatAssuming::assumption"], [43, 6, 1, "_CPPv4NK4cvc56Solver16checkSatAssumingERKNSt6vectorI4TermEE", "cvc5::Solver::checkSatAssuming::assumptions"], [43, 5, 1, "_CPPv4NK4cvc56Solver10checkSynthEv", "cvc5::Solver::checkSynth"], [43, 5, 1, "_CPPv4NK4cvc56Solver14checkSynthNextEv", "cvc5::Solver::checkSynthNext"], [43, 5, 1, "_CPPv4NK4cvc56Solver15declareDatatypeERKNSt6stringERKNSt6vectorI23DatatypeConstructorDeclEE", "cvc5::Solver::declareDatatype"], [43, 6, 1, "_CPPv4NK4cvc56Solver15declareDatatypeERKNSt6stringERKNSt6vectorI23DatatypeConstructorDeclEE", "cvc5::Solver::declareDatatype::ctors"], [43, 6, 1, "_CPPv4NK4cvc56Solver15declareDatatypeERKNSt6stringERKNSt6vectorI23DatatypeConstructorDeclEE", "cvc5::Solver::declareDatatype::symbol"], [43, 5, 1, "_CPPv4NK4cvc56Solver10declareFunERKNSt6stringERKNSt6vectorI4SortEERK4Sortb", "cvc5::Solver::declareFun"], [43, 6, 1, "_CPPv4NK4cvc56Solver10declareFunERKNSt6stringERKNSt6vectorI4SortEERK4Sortb", "cvc5::Solver::declareFun::fresh"], [43, 6, 1, "_CPPv4NK4cvc56Solver10declareFunERKNSt6stringERKNSt6vectorI4SortEERK4Sortb", "cvc5::Solver::declareFun::sort"], [43, 6, 1, "_CPPv4NK4cvc56Solver10declareFunERKNSt6stringERKNSt6vectorI4SortEERK4Sortb", "cvc5::Solver::declareFun::sorts"], [43, 6, 1, "_CPPv4NK4cvc56Solver10declareFunERKNSt6stringERKNSt6vectorI4SortEERK4Sortb", "cvc5::Solver::declareFun::symbol"], [43, 5, 1, "_CPPv4NK4cvc56Solver16declareOracleFunERKNSt6stringERKNSt6vectorI4SortEERK4SortNSt8functionIF4TermRKNSt6vectorI4TermEEEEE", "cvc5::Solver::declareOracleFun"], [43, 6, 1, "_CPPv4NK4cvc56Solver16declareOracleFunERKNSt6stringERKNSt6vectorI4SortEERK4SortNSt8functionIF4TermRKNSt6vectorI4TermEEEEE", "cvc5::Solver::declareOracleFun::fn"], [43, 6, 1, "_CPPv4NK4cvc56Solver16declareOracleFunERKNSt6stringERKNSt6vectorI4SortEERK4SortNSt8functionIF4TermRKNSt6vectorI4TermEEEEE", "cvc5::Solver::declareOracleFun::sort"], [43, 6, 1, "_CPPv4NK4cvc56Solver16declareOracleFunERKNSt6stringERKNSt6vectorI4SortEERK4SortNSt8functionIF4TermRKNSt6vectorI4TermEEEEE", "cvc5::Solver::declareOracleFun::sorts"], [43, 6, 1, "_CPPv4NK4cvc56Solver16declareOracleFunERKNSt6stringERKNSt6vectorI4SortEERK4SortNSt8functionIF4TermRKNSt6vectorI4TermEEEEE", "cvc5::Solver::declareOracleFun::symbol"], [43, 5, 1, "_CPPv4NK4cvc56Solver11declarePoolERKNSt6stringERK4SortRKNSt6vectorI4TermEE", "cvc5::Solver::declarePool"], [43, 6, 1, "_CPPv4NK4cvc56Solver11declarePoolERKNSt6stringERK4SortRKNSt6vectorI4TermEE", "cvc5::Solver::declarePool::initValue"], [43, 6, 1, "_CPPv4NK4cvc56Solver11declarePoolERKNSt6stringERK4SortRKNSt6vectorI4TermEE", "cvc5::Solver::declarePool::sort"], [43, 6, 1, "_CPPv4NK4cvc56Solver11declarePoolERKNSt6stringERK4SortRKNSt6vectorI4TermEE", "cvc5::Solver::declarePool::symbol"], [43, 5, 1, "_CPPv4NK4cvc56Solver14declareSepHeapERK4SortRK4Sort", "cvc5::Solver::declareSepHeap"], [43, 6, 1, "_CPPv4NK4cvc56Solver14declareSepHeapERK4SortRK4Sort", "cvc5::Solver::declareSepHeap::dataSort"], [43, 6, 1, "_CPPv4NK4cvc56Solver14declareSepHeapERK4SortRK4Sort", "cvc5::Solver::declareSepHeap::locSort"], [43, 5, 1, "_CPPv4NK4cvc56Solver11declareSortERKNSt6stringE8uint32_tb", "cvc5::Solver::declareSort"], [43, 6, 1, "_CPPv4NK4cvc56Solver11declareSortERKNSt6stringE8uint32_tb", "cvc5::Solver::declareSort::arity"], [43, 6, 1, "_CPPv4NK4cvc56Solver11declareSortERKNSt6stringE8uint32_tb", "cvc5::Solver::declareSort::fresh"], [43, 6, 1, "_CPPv4NK4cvc56Solver11declareSortERKNSt6stringE8uint32_tb", "cvc5::Solver::declareSort::symbol"], [43, 5, 1, "_CPPv4NK4cvc56Solver15declareSygusVarERKNSt6stringERK4Sort", "cvc5::Solver::declareSygusVar"], [43, 6, 1, "_CPPv4NK4cvc56Solver15declareSygusVarERKNSt6stringERK4Sort", "cvc5::Solver::declareSygusVar::sort"], [43, 6, 1, "_CPPv4NK4cvc56Solver15declareSygusVarERKNSt6stringERK4Sort", "cvc5::Solver::declareSygusVar::symbol"], [43, 5, 1, "_CPPv4NK4cvc56Solver9defineFunERKNSt6stringERKNSt6vectorI4TermEERK4SortRK4Termb", "cvc5::Solver::defineFun"], [43, 6, 1, "_CPPv4NK4cvc56Solver9defineFunERKNSt6stringERKNSt6vectorI4TermEERK4SortRK4Termb", "cvc5::Solver::defineFun::bound_vars"], [43, 6, 1, "_CPPv4NK4cvc56Solver9defineFunERKNSt6stringERKNSt6vectorI4TermEERK4SortRK4Termb", "cvc5::Solver::defineFun::global"], [43, 6, 1, "_CPPv4NK4cvc56Solver9defineFunERKNSt6stringERKNSt6vectorI4TermEERK4SortRK4Termb", "cvc5::Solver::defineFun::sort"], [43, 6, 1, "_CPPv4NK4cvc56Solver9defineFunERKNSt6stringERKNSt6vectorI4TermEERK4SortRK4Termb", "cvc5::Solver::defineFun::symbol"], [43, 6, 1, "_CPPv4NK4cvc56Solver9defineFunERKNSt6stringERKNSt6vectorI4TermEERK4SortRK4Termb", "cvc5::Solver::defineFun::term"], [43, 5, 1, "_CPPv4NK4cvc56Solver12defineFunRecERK4TermRKNSt6vectorI4TermEERK4Termb", "cvc5::Solver::defineFunRec"], [43, 5, 1, "_CPPv4NK4cvc56Solver12defineFunRecERKNSt6stringERKNSt6vectorI4TermEERK4SortRK4Termb", "cvc5::Solver::defineFunRec"], [43, 6, 1, "_CPPv4NK4cvc56Solver12defineFunRecERK4TermRKNSt6vectorI4TermEERK4Termb", "cvc5::Solver::defineFunRec::bound_vars"], [43, 6, 1, "_CPPv4NK4cvc56Solver12defineFunRecERKNSt6stringERKNSt6vectorI4TermEERK4SortRK4Termb", "cvc5::Solver::defineFunRec::bound_vars"], [43, 6, 1, "_CPPv4NK4cvc56Solver12defineFunRecERK4TermRKNSt6vectorI4TermEERK4Termb", "cvc5::Solver::defineFunRec::fun"], [43, 6, 1, "_CPPv4NK4cvc56Solver12defineFunRecERK4TermRKNSt6vectorI4TermEERK4Termb", "cvc5::Solver::defineFunRec::global"], [43, 6, 1, "_CPPv4NK4cvc56Solver12defineFunRecERKNSt6stringERKNSt6vectorI4TermEERK4SortRK4Termb", "cvc5::Solver::defineFunRec::global"], [43, 6, 1, "_CPPv4NK4cvc56Solver12defineFunRecERKNSt6stringERKNSt6vectorI4TermEERK4SortRK4Termb", "cvc5::Solver::defineFunRec::sort"], [43, 6, 1, "_CPPv4NK4cvc56Solver12defineFunRecERKNSt6stringERKNSt6vectorI4TermEERK4SortRK4Termb", "cvc5::Solver::defineFunRec::symbol"], [43, 6, 1, "_CPPv4NK4cvc56Solver12defineFunRecERK4TermRKNSt6vectorI4TermEERK4Termb", "cvc5::Solver::defineFunRec::term"], [43, 6, 1, "_CPPv4NK4cvc56Solver12defineFunRecERKNSt6stringERKNSt6vectorI4TermEERK4SortRK4Termb", "cvc5::Solver::defineFunRec::term"], [43, 5, 1, "_CPPv4NK4cvc56Solver13defineFunsRecERKNSt6vectorI4TermEERKNSt6vectorINSt6vectorI4TermEEEERKNSt6vectorI4TermEEb", "cvc5::Solver::defineFunsRec"], [43, 6, 1, "_CPPv4NK4cvc56Solver13defineFunsRecERKNSt6vectorI4TermEERKNSt6vectorINSt6vectorI4TermEEEERKNSt6vectorI4TermEEb", "cvc5::Solver::defineFunsRec::bound_vars"], [43, 6, 1, "_CPPv4NK4cvc56Solver13defineFunsRecERKNSt6vectorI4TermEERKNSt6vectorINSt6vectorI4TermEEEERKNSt6vectorI4TermEEb", "cvc5::Solver::defineFunsRec::funs"], [43, 6, 1, "_CPPv4NK4cvc56Solver13defineFunsRecERKNSt6vectorI4TermEERKNSt6vectorINSt6vectorI4TermEEEERKNSt6vectorI4TermEEb", "cvc5::Solver::defineFunsRec::global"], [43, 6, 1, "_CPPv4NK4cvc56Solver13defineFunsRecERKNSt6vectorI4TermEERKNSt6vectorINSt6vectorI4TermEEEERKNSt6vectorI4TermEEb", "cvc5::Solver::defineFunsRec::terms"], [43, 5, 1, "_CPPv4NK4cvc56Solver9findSynthEN5modes15FindSynthTargetE", "cvc5::Solver::findSynth"], [43, 5, 1, "_CPPv4NK4cvc56Solver9findSynthEN5modes15FindSynthTargetER7Grammar", "cvc5::Solver::findSynth"], [43, 6, 1, "_CPPv4NK4cvc56Solver9findSynthEN5modes15FindSynthTargetE", "cvc5::Solver::findSynth::fst"], [43, 6, 1, "_CPPv4NK4cvc56Solver9findSynthEN5modes15FindSynthTargetER7Grammar", "cvc5::Solver::findSynth::fst"], [43, 6, 1, "_CPPv4NK4cvc56Solver9findSynthEN5modes15FindSynthTargetER7Grammar", "cvc5::Solver::findSynth::grammar"], [43, 5, 1, "_CPPv4NK4cvc56Solver13findSynthNextEv", "cvc5::Solver::findSynthNext"], [43, 5, 1, "_CPPv4NK4cvc56Solver9getAbductERK4Term", "cvc5::Solver::getAbduct"], [43, 5, 1, "_CPPv4NK4cvc56Solver9getAbductERK4TermR7Grammar", "cvc5::Solver::getAbduct"], [43, 6, 1, "_CPPv4NK4cvc56Solver9getAbductERK4Term", "cvc5::Solver::getAbduct::conj"], [43, 6, 1, "_CPPv4NK4cvc56Solver9getAbductERK4TermR7Grammar", "cvc5::Solver::getAbduct::conj"], [43, 6, 1, "_CPPv4NK4cvc56Solver9getAbductERK4TermR7Grammar", "cvc5::Solver::getAbduct::grammar"], [43, 5, 1, "_CPPv4NK4cvc56Solver13getAbductNextEv", "cvc5::Solver::getAbductNext"], [43, 5, 1, "_CPPv4NK4cvc56Solver13getAssertionsEv", "cvc5::Solver::getAssertions"], [43, 5, 1, "_CPPv4NK4cvc56Solver14getBooleanSortEv", "cvc5::Solver::getBooleanSort"], [43, 5, 1, "_CPPv4NK4cvc56Solver13getDifficultyEv", "cvc5::Solver::getDifficulty"], [43, 5, 1, "_CPPv4NK4cvc56Solver16getDriverOptionsEv", "cvc5::Solver::getDriverOptions"], [43, 5, 1, "_CPPv4NK4cvc56Solver7getInfoERKNSt6stringE", "cvc5::Solver::getInfo"], [43, 6, 1, "_CPPv4NK4cvc56Solver7getInfoERKNSt6stringE", "cvc5::Solver::getInfo::flag"], [43, 5, 1, "_CPPv4NK4cvc56Solver17getInstantiationsEv", "cvc5::Solver::getInstantiations"], [43, 5, 1, "_CPPv4NK4cvc56Solver14getIntegerSortEv", "cvc5::Solver::getIntegerSort"], [43, 5, 1, "_CPPv4NK4cvc56Solver14getInterpolantERK4Term", "cvc5::Solver::getInterpolant"], [43, 5, 1, "_CPPv4NK4cvc56Solver14getInterpolantERK4TermR7Grammar", "cvc5::Solver::getInterpolant"], [43, 6, 1, "_CPPv4NK4cvc56Solver14getInterpolantERK4Term", "cvc5::Solver::getInterpolant::conj"], [43, 6, 1, "_CPPv4NK4cvc56Solver14getInterpolantERK4TermR7Grammar", "cvc5::Solver::getInterpolant::conj"], [43, 6, 1, "_CPPv4NK4cvc56Solver14getInterpolantERK4TermR7Grammar", "cvc5::Solver::getInterpolant::grammar"], [43, 5, 1, "_CPPv4NK4cvc56Solver18getInterpolantNextEv", "cvc5::Solver::getInterpolantNext"], [43, 5, 1, "_CPPv4NK4cvc56Solver18getLearnedLiteralsEN5modes14LearnedLitTypeE", "cvc5::Solver::getLearnedLiterals"], [43, 6, 1, "_CPPv4NK4cvc56Solver18getLearnedLiteralsEN5modes14LearnedLitTypeE", "cvc5::Solver::getLearnedLiterals::t"], [43, 5, 1, "_CPPv4NK4cvc56Solver8getLogicEv", "cvc5::Solver::getLogic"], [43, 5, 1, "_CPPv4NK4cvc56Solver8getModelERKNSt6vectorI4SortEERKNSt6vectorI4TermEE", "cvc5::Solver::getModel"], [43, 6, 1, "_CPPv4NK4cvc56Solver8getModelERKNSt6vectorI4SortEERKNSt6vectorI4TermEE", "cvc5::Solver::getModel::consts"], [43, 6, 1, "_CPPv4NK4cvc56Solver8getModelERKNSt6vectorI4SortEERKNSt6vectorI4TermEE", "cvc5::Solver::getModel::sorts"], [43, 5, 1, "_CPPv4NK4cvc56Solver22getModelDomainElementsERK4Sort", "cvc5::Solver::getModelDomainElements"], [43, 6, 1, "_CPPv4NK4cvc56Solver22getModelDomainElementsERK4Sort", "cvc5::Solver::getModelDomainElements::s"], [43, 5, 1, "_CPPv4NK4cvc56Solver9getOptionERKNSt6stringE", "cvc5::Solver::getOption"], [43, 6, 1, "_CPPv4NK4cvc56Solver9getOptionERKNSt6stringE", "cvc5::Solver::getOption::option"], [43, 5, 1, "_CPPv4NK4cvc56Solver13getOptionInfoERKNSt6stringE", "cvc5::Solver::getOptionInfo"], [43, 6, 1, "_CPPv4NK4cvc56Solver13getOptionInfoERKNSt6stringE", "cvc5::Solver::getOptionInfo::option"], [43, 5, 1, "_CPPv4NK4cvc56Solver14getOptionNamesEv", "cvc5::Solver::getOptionNames"], [43, 5, 1, "_CPPv4NK4cvc56Solver9getOutputERKNSt6stringE", "cvc5::Solver::getOutput"], [43, 6, 1, "_CPPv4NK4cvc56Solver9getOutputERKNSt6stringE", "cvc5::Solver::getOutput::tag"], [43, 5, 1, "_CPPv4NK4cvc56Solver8getProofEN5modes14ProofComponentE", "cvc5::Solver::getProof"], [43, 6, 1, "_CPPv4NK4cvc56Solver8getProofEN5modes14ProofComponentE", "cvc5::Solver::getProof::c"], [43, 5, 1, "_CPPv4NK4cvc56Solver24getQuantifierEliminationERK4Term", "cvc5::Solver::getQuantifierElimination"], [43, 6, 1, "_CPPv4NK4cvc56Solver24getQuantifierEliminationERK4Term", "cvc5::Solver::getQuantifierElimination::q"], [43, 5, 1, "_CPPv4NK4cvc56Solver32getQuantifierEliminationDisjunctERK4Term", "cvc5::Solver::getQuantifierEliminationDisjunct"], [43, 6, 1, "_CPPv4NK4cvc56Solver32getQuantifierEliminationDisjunctERK4Term", "cvc5::Solver::getQuantifierEliminationDisjunct::q"], [43, 5, 1, "_CPPv4NK4cvc56Solver11getRealSortEv", "cvc5::Solver::getRealSort"], [43, 5, 1, "_CPPv4NK4cvc56Solver13getRegExpSortEv", "cvc5::Solver::getRegExpSort"], [43, 5, 1, "_CPPv4NK4cvc56Solver19getRoundingModeSortEv", "cvc5::Solver::getRoundingModeSort"], [43, 5, 1, "_CPPv4NK4cvc56Solver13getStatisticsEv", "cvc5::Solver::getStatistics"], [43, 5, 1, "_CPPv4NK4cvc56Solver13getStringSortEv", "cvc5::Solver::getStringSort"], [43, 5, 1, "_CPPv4NK4cvc56Solver19getSygusAssumptionsEv", "cvc5::Solver::getSygusAssumptions"], [43, 5, 1, "_CPPv4NK4cvc56Solver19getSygusConstraintsEv", "cvc5::Solver::getSygusConstraints"], [43, 5, 1, "_CPPv4NK4cvc56Solver16getSynthSolutionERK4Term", "cvc5::Solver::getSynthSolution"], [43, 6, 1, "_CPPv4NK4cvc56Solver16getSynthSolutionERK4Term", "cvc5::Solver::getSynthSolution::term"], [43, 5, 1, "_CPPv4NK4cvc56Solver17getSynthSolutionsERKNSt6vectorI4TermEE", "cvc5::Solver::getSynthSolutions"], [43, 6, 1, "_CPPv4NK4cvc56Solver17getSynthSolutionsERKNSt6vectorI4TermEE", "cvc5::Solver::getSynthSolutions::terms"], [43, 5, 1, "_CPPv4NK4cvc56Solver14getTermManagerEv", "cvc5::Solver::getTermManager"], [43, 5, 1, "_CPPv4NK4cvc56Solver14getTimeoutCoreEv", "cvc5::Solver::getTimeoutCore"], [43, 5, 1, "_CPPv4NK4cvc56Solver22getTimeoutCoreAssumingERKNSt6vectorI4TermEE", "cvc5::Solver::getTimeoutCoreAssuming"], [43, 6, 1, "_CPPv4NK4cvc56Solver22getTimeoutCoreAssumingERKNSt6vectorI4TermEE", "cvc5::Solver::getTimeoutCoreAssuming::assumptions"], [43, 5, 1, "_CPPv4NK4cvc56Solver19getUnsatAssumptionsEv", "cvc5::Solver::getUnsatAssumptions"], [43, 5, 1, "_CPPv4NK4cvc56Solver12getUnsatCoreEv", "cvc5::Solver::getUnsatCore"], [43, 5, 1, "_CPPv4NK4cvc56Solver18getUnsatCoreLemmasEv", "cvc5::Solver::getUnsatCoreLemmas"], [43, 5, 1, "_CPPv4NK4cvc56Solver8getValueERK4Term", "cvc5::Solver::getValue"], [43, 5, 1, "_CPPv4NK4cvc56Solver8getValueERKNSt6vectorI4TermEE", "cvc5::Solver::getValue"], [43, 6, 1, "_CPPv4NK4cvc56Solver8getValueERK4Term", "cvc5::Solver::getValue::term"], [43, 6, 1, "_CPPv4NK4cvc56Solver8getValueERKNSt6vectorI4TermEE", "cvc5::Solver::getValue::terms"], [43, 5, 1, "_CPPv4NK4cvc56Solver15getValueSepHeapEv", "cvc5::Solver::getValueSepHeap"], [43, 5, 1, "_CPPv4NK4cvc56Solver14getValueSepNilEv", "cvc5::Solver::getValueSepNil"], [43, 5, 1, "_CPPv4NK4cvc56Solver10getVersionEv", "cvc5::Solver::getVersion"], [43, 5, 1, "_CPPv4NK4cvc56Solver10isLogicSetEv", "cvc5::Solver::isLogicSet"], [43, 5, 1, "_CPPv4NK4cvc56Solver17isModelCoreSymbolERK4Term", "cvc5::Solver::isModelCoreSymbol"], [43, 6, 1, "_CPPv4NK4cvc56Solver17isModelCoreSymbolERK4Term", "cvc5::Solver::isModelCoreSymbol::v"], [43, 5, 1, "_CPPv4NK4cvc56Solver10isOutputOnERKNSt6stringE", "cvc5::Solver::isOutputOn"], [43, 6, 1, "_CPPv4NK4cvc56Solver10isOutputOnERKNSt6stringE", "cvc5::Solver::isOutputOn::tag"], [43, 5, 1, "_CPPv4NK4cvc56Solver14mkAbstractSortE8SortKind", "cvc5::Solver::mkAbstractSort"], [43, 6, 1, "_CPPv4NK4cvc56Solver14mkAbstractSortE8SortKind", "cvc5::Solver::mkAbstractSort::k"], [43, 5, 1, "_CPPv4NK4cvc56Solver11mkArraySortERK4SortRK4Sort", "cvc5::Solver::mkArraySort"], [43, 6, 1, "_CPPv4NK4cvc56Solver11mkArraySortERK4SortRK4Sort", "cvc5::Solver::mkArraySort::elemSort"], [43, 6, 1, "_CPPv4NK4cvc56Solver11mkArraySortERK4SortRK4Sort", "cvc5::Solver::mkArraySort::indexSort"], [43, 5, 1, "_CPPv4NK4cvc56Solver9mkBagSortERK4Sort", "cvc5::Solver::mkBagSort"], [43, 6, 1, "_CPPv4NK4cvc56Solver9mkBagSortERK4Sort", "cvc5::Solver::mkBagSort::elemSort"], [43, 5, 1, "_CPPv4NK4cvc56Solver11mkBitVectorE8uint32_t8uint64_t", "cvc5::Solver::mkBitVector"], [43, 5, 1, "_CPPv4NK4cvc56Solver11mkBitVectorE8uint32_tRKNSt6stringE8uint32_t", "cvc5::Solver::mkBitVector"], [43, 6, 1, "_CPPv4NK4cvc56Solver11mkBitVectorE8uint32_tRKNSt6stringE8uint32_t", "cvc5::Solver::mkBitVector::base"], [43, 6, 1, "_CPPv4NK4cvc56Solver11mkBitVectorE8uint32_tRKNSt6stringE8uint32_t", "cvc5::Solver::mkBitVector::s"], [43, 6, 1, "_CPPv4NK4cvc56Solver11mkBitVectorE8uint32_t8uint64_t", "cvc5::Solver::mkBitVector::size"], [43, 6, 1, "_CPPv4NK4cvc56Solver11mkBitVectorE8uint32_tRKNSt6stringE8uint32_t", "cvc5::Solver::mkBitVector::size"], [43, 6, 1, "_CPPv4NK4cvc56Solver11mkBitVectorE8uint32_t8uint64_t", "cvc5::Solver::mkBitVector::val"], [43, 5, 1, "_CPPv4NK4cvc56Solver15mkBitVectorSortE8uint32_t", "cvc5::Solver::mkBitVectorSort"], [43, 6, 1, "_CPPv4NK4cvc56Solver15mkBitVectorSortE8uint32_t", "cvc5::Solver::mkBitVectorSort::size"], [43, 5, 1, "_CPPv4NK4cvc56Solver9mkBooleanEb", "cvc5::Solver::mkBoolean"], [43, 6, 1, "_CPPv4NK4cvc56Solver9mkBooleanEb", "cvc5::Solver::mkBoolean::val"], [43, 5, 1, "_CPPv4NK4cvc56Solver23mkCardinalityConstraintERK4Sort8uint32_t", "cvc5::Solver::mkCardinalityConstraint"], [43, 6, 1, "_CPPv4NK4cvc56Solver23mkCardinalityConstraintERK4Sort8uint32_t", "cvc5::Solver::mkCardinalityConstraint::sort"], [43, 6, 1, "_CPPv4NK4cvc56Solver23mkCardinalityConstraintERK4Sort8uint32_t", "cvc5::Solver::mkCardinalityConstraint::upperBound"], [43, 5, 1, "_CPPv4NK4cvc56Solver7mkConstERK4SortRKNSt8optionalINSt6stringEEE", "cvc5::Solver::mkConst"], [43, 6, 1, "_CPPv4NK4cvc56Solver7mkConstERK4SortRKNSt8optionalINSt6stringEEE", "cvc5::Solver::mkConst::sort"], [43, 6, 1, "_CPPv4NK4cvc56Solver7mkConstERK4SortRKNSt8optionalINSt6stringEEE", "cvc5::Solver::mkConst::symbol"], [43, 5, 1, "_CPPv4NK4cvc56Solver12mkConstArrayERK4SortRK4Term", "cvc5::Solver::mkConstArray"], [43, 6, 1, "_CPPv4NK4cvc56Solver12mkConstArrayERK4SortRK4Term", "cvc5::Solver::mkConstArray::sort"], [43, 6, 1, "_CPPv4NK4cvc56Solver12mkConstArrayERK4SortRK4Term", "cvc5::Solver::mkConstArray::val"], [43, 5, 1, "_CPPv4N4cvc56Solver25mkDatatypeConstructorDeclERKNSt6stringE", "cvc5::Solver::mkDatatypeConstructorDecl"], [43, 6, 1, "_CPPv4N4cvc56Solver25mkDatatypeConstructorDeclERKNSt6stringE", "cvc5::Solver::mkDatatypeConstructorDecl::name"], [43, 5, 1, "_CPPv4N4cvc56Solver14mkDatatypeDeclERKNSt6stringERKNSt6vectorI4SortEEb", "cvc5::Solver::mkDatatypeDecl"], [43, 5, 1, "_CPPv4N4cvc56Solver14mkDatatypeDeclERKNSt6stringEb", "cvc5::Solver::mkDatatypeDecl"], [43, 6, 1, "_CPPv4N4cvc56Solver14mkDatatypeDeclERKNSt6stringERKNSt6vectorI4SortEEb", "cvc5::Solver::mkDatatypeDecl::isCoDatatype"], [43, 6, 1, "_CPPv4N4cvc56Solver14mkDatatypeDeclERKNSt6stringEb", "cvc5::Solver::mkDatatypeDecl::isCoDatatype"], [43, 6, 1, "_CPPv4N4cvc56Solver14mkDatatypeDeclERKNSt6stringERKNSt6vectorI4SortEEb", "cvc5::Solver::mkDatatypeDecl::name"], [43, 6, 1, "_CPPv4N4cvc56Solver14mkDatatypeDeclERKNSt6stringEb", "cvc5::Solver::mkDatatypeDecl::name"], [43, 6, 1, "_CPPv4N4cvc56Solver14mkDatatypeDeclERKNSt6stringERKNSt6vectorI4SortEEb", "cvc5::Solver::mkDatatypeDecl::params"], [43, 5, 1, "_CPPv4NK4cvc56Solver14mkDatatypeSortERK12DatatypeDecl", "cvc5::Solver::mkDatatypeSort"], [43, 6, 1, "_CPPv4NK4cvc56Solver14mkDatatypeSortERK12DatatypeDecl", "cvc5::Solver::mkDatatypeSort::dtypedecl"], [43, 5, 1, "_CPPv4NK4cvc56Solver15mkDatatypeSortsERKNSt6vectorI12DatatypeDeclEE", "cvc5::Solver::mkDatatypeSorts"], [43, 6, 1, "_CPPv4NK4cvc56Solver15mkDatatypeSortsERKNSt6vectorI12DatatypeDeclEE", "cvc5::Solver::mkDatatypeSorts::dtypedecls"], [43, 5, 1, "_CPPv4NK4cvc56Solver10mkEmptyBagERK4Sort", "cvc5::Solver::mkEmptyBag"], [43, 6, 1, "_CPPv4NK4cvc56Solver10mkEmptyBagERK4Sort", "cvc5::Solver::mkEmptyBag::sort"], [43, 5, 1, "_CPPv4NK4cvc56Solver15mkEmptySequenceERK4Sort", "cvc5::Solver::mkEmptySequence"], [43, 6, 1, "_CPPv4NK4cvc56Solver15mkEmptySequenceERK4Sort", "cvc5::Solver::mkEmptySequence::sort"], [43, 5, 1, "_CPPv4NK4cvc56Solver10mkEmptySetERK4Sort", "cvc5::Solver::mkEmptySet"], [43, 6, 1, "_CPPv4NK4cvc56Solver10mkEmptySetERK4Sort", "cvc5::Solver::mkEmptySet::sort"], [43, 5, 1, "_CPPv4NK4cvc56Solver7mkFalseEv", "cvc5::Solver::mkFalse"], [43, 5, 1, "_CPPv4NK4cvc56Solver17mkFiniteFieldElemERKNSt6stringERK4Sort8uint32_t", "cvc5::Solver::mkFiniteFieldElem"], [43, 6, 1, "_CPPv4NK4cvc56Solver17mkFiniteFieldElemERKNSt6stringERK4Sort8uint32_t", "cvc5::Solver::mkFiniteFieldElem::base"], [43, 6, 1, "_CPPv4NK4cvc56Solver17mkFiniteFieldElemERKNSt6stringERK4Sort8uint32_t", "cvc5::Solver::mkFiniteFieldElem::sort"], [43, 6, 1, "_CPPv4NK4cvc56Solver17mkFiniteFieldElemERKNSt6stringERK4Sort8uint32_t", "cvc5::Solver::mkFiniteFieldElem::value"], [43, 5, 1, "_CPPv4NK4cvc56Solver17mkFiniteFieldSortERKNSt6stringE8uint32_t", "cvc5::Solver::mkFiniteFieldSort"], [43, 6, 1, "_CPPv4NK4cvc56Solver17mkFiniteFieldSortERKNSt6stringE8uint32_t", "cvc5::Solver::mkFiniteFieldSort::base"], [43, 6, 1, "_CPPv4NK4cvc56Solver17mkFiniteFieldSortERKNSt6stringE8uint32_t", "cvc5::Solver::mkFiniteFieldSort::size"], [43, 5, 1, "_CPPv4NK4cvc56Solver15mkFloatingPointE8uint32_t8uint32_tRK4Term", "cvc5::Solver::mkFloatingPoint"], [43, 5, 1, "_CPPv4NK4cvc56Solver15mkFloatingPointERK4TermRK4TermRK4Term", "cvc5::Solver::mkFloatingPoint"], [43, 6, 1, "_CPPv4NK4cvc56Solver15mkFloatingPointE8uint32_t8uint32_tRK4Term", "cvc5::Solver::mkFloatingPoint::exp"], [43, 6, 1, "_CPPv4NK4cvc56Solver15mkFloatingPointERK4TermRK4TermRK4Term", "cvc5::Solver::mkFloatingPoint::exp"], [43, 6, 1, "_CPPv4NK4cvc56Solver15mkFloatingPointE8uint32_t8uint32_tRK4Term", "cvc5::Solver::mkFloatingPoint::sig"], [43, 6, 1, "_CPPv4NK4cvc56Solver15mkFloatingPointERK4TermRK4TermRK4Term", "cvc5::Solver::mkFloatingPoint::sig"], [43, 6, 1, "_CPPv4NK4cvc56Solver15mkFloatingPointERK4TermRK4TermRK4Term", "cvc5::Solver::mkFloatingPoint::sign"], [43, 6, 1, "_CPPv4NK4cvc56Solver15mkFloatingPointE8uint32_t8uint32_tRK4Term", "cvc5::Solver::mkFloatingPoint::val"], [43, 5, 1, "_CPPv4NK4cvc56Solver18mkFloatingPointNaNE8uint32_t8uint32_t", "cvc5::Solver::mkFloatingPointNaN"], [43, 6, 1, "_CPPv4NK4cvc56Solver18mkFloatingPointNaNE8uint32_t8uint32_t", "cvc5::Solver::mkFloatingPointNaN::exp"], [43, 6, 1, "_CPPv4NK4cvc56Solver18mkFloatingPointNaNE8uint32_t8uint32_t", "cvc5::Solver::mkFloatingPointNaN::sig"], [43, 5, 1, "_CPPv4NK4cvc56Solver21mkFloatingPointNegInfE8uint32_t8uint32_t", "cvc5::Solver::mkFloatingPointNegInf"], [43, 6, 1, "_CPPv4NK4cvc56Solver21mkFloatingPointNegInfE8uint32_t8uint32_t", "cvc5::Solver::mkFloatingPointNegInf::exp"], [43, 6, 1, "_CPPv4NK4cvc56Solver21mkFloatingPointNegInfE8uint32_t8uint32_t", "cvc5::Solver::mkFloatingPointNegInf::sig"], [43, 5, 1, "_CPPv4NK4cvc56Solver22mkFloatingPointNegZeroE8uint32_t8uint32_t", "cvc5::Solver::mkFloatingPointNegZero"], [43, 6, 1, "_CPPv4NK4cvc56Solver22mkFloatingPointNegZeroE8uint32_t8uint32_t", "cvc5::Solver::mkFloatingPointNegZero::exp"], [43, 6, 1, "_CPPv4NK4cvc56Solver22mkFloatingPointNegZeroE8uint32_t8uint32_t", "cvc5::Solver::mkFloatingPointNegZero::sig"], [43, 5, 1, "_CPPv4NK4cvc56Solver21mkFloatingPointPosInfE8uint32_t8uint32_t", "cvc5::Solver::mkFloatingPointPosInf"], [43, 6, 1, "_CPPv4NK4cvc56Solver21mkFloatingPointPosInfE8uint32_t8uint32_t", "cvc5::Solver::mkFloatingPointPosInf::exp"], [43, 6, 1, "_CPPv4NK4cvc56Solver21mkFloatingPointPosInfE8uint32_t8uint32_t", "cvc5::Solver::mkFloatingPointPosInf::sig"], [43, 5, 1, "_CPPv4NK4cvc56Solver22mkFloatingPointPosZeroE8uint32_t8uint32_t", "cvc5::Solver::mkFloatingPointPosZero"], [43, 6, 1, "_CPPv4NK4cvc56Solver22mkFloatingPointPosZeroE8uint32_t8uint32_t", "cvc5::Solver::mkFloatingPointPosZero::exp"], [43, 6, 1, "_CPPv4NK4cvc56Solver22mkFloatingPointPosZeroE8uint32_t8uint32_t", "cvc5::Solver::mkFloatingPointPosZero::sig"], [43, 5, 1, "_CPPv4NK4cvc56Solver19mkFloatingPointSortE8uint32_t8uint32_t", "cvc5::Solver::mkFloatingPointSort"], [43, 6, 1, "_CPPv4NK4cvc56Solver19mkFloatingPointSortE8uint32_t8uint32_t", "cvc5::Solver::mkFloatingPointSort::exp"], [43, 6, 1, "_CPPv4NK4cvc56Solver19mkFloatingPointSortE8uint32_t8uint32_t", "cvc5::Solver::mkFloatingPointSort::sig"], [43, 5, 1, "_CPPv4NK4cvc56Solver14mkFunctionSortERKNSt6vectorI4SortEERK4Sort", "cvc5::Solver::mkFunctionSort"], [43, 6, 1, "_CPPv4NK4cvc56Solver14mkFunctionSortERKNSt6vectorI4SortEERK4Sort", "cvc5::Solver::mkFunctionSort::codomain"], [43, 6, 1, "_CPPv4NK4cvc56Solver14mkFunctionSortERKNSt6vectorI4SortEERK4Sort", "cvc5::Solver::mkFunctionSort::sorts"], [43, 5, 1, "_CPPv4NK4cvc56Solver9mkGrammarERKNSt6vectorI4TermEERKNSt6vectorI4TermEE", "cvc5::Solver::mkGrammar"], [43, 6, 1, "_CPPv4NK4cvc56Solver9mkGrammarERKNSt6vectorI4TermEERKNSt6vectorI4TermEE", "cvc5::Solver::mkGrammar::boundVars"], [43, 6, 1, "_CPPv4NK4cvc56Solver9mkGrammarERKNSt6vectorI4TermEERKNSt6vectorI4TermEE", "cvc5::Solver::mkGrammar::ntSymbols"], [43, 5, 1, "_CPPv4NK4cvc56Solver9mkIntegerE7int64_t", "cvc5::Solver::mkInteger"], [43, 5, 1, "_CPPv4NK4cvc56Solver9mkIntegerERKNSt6stringE", "cvc5::Solver::mkInteger"], [43, 6, 1, "_CPPv4NK4cvc56Solver9mkIntegerERKNSt6stringE", "cvc5::Solver::mkInteger::s"], [43, 6, 1, "_CPPv4NK4cvc56Solver9mkIntegerE7int64_t", "cvc5::Solver::mkInteger::val"], [43, 5, 1, "_CPPv4NK4cvc56Solver16mkNullableIsNullERK4Term", "cvc5::Solver::mkNullableIsNull"], [43, 6, 1, "_CPPv4NK4cvc56Solver16mkNullableIsNullERK4Term", "cvc5::Solver::mkNullableIsNull::term"], [43, 5, 1, "_CPPv4NK4cvc56Solver16mkNullableIsSomeERK4Term", "cvc5::Solver::mkNullableIsSome"], [43, 6, 1, "_CPPv4NK4cvc56Solver16mkNullableIsSomeERK4Term", "cvc5::Solver::mkNullableIsSome::term"], [43, 5, 1, "_CPPv4NK4cvc56Solver14mkNullableLiftE4KindRKNSt6vectorI4TermEE", "cvc5::Solver::mkNullableLift"], [43, 6, 1, "_CPPv4NK4cvc56Solver14mkNullableLiftE4KindRKNSt6vectorI4TermEE", "cvc5::Solver::mkNullableLift::args"], [43, 6, 1, "_CPPv4NK4cvc56Solver14mkNullableLiftE4KindRKNSt6vectorI4TermEE", "cvc5::Solver::mkNullableLift::kind"], [43, 5, 1, "_CPPv4NK4cvc56Solver14mkNullableNullERK4Sort", "cvc5::Solver::mkNullableNull"], [43, 6, 1, "_CPPv4NK4cvc56Solver14mkNullableNullERK4Sort", "cvc5::Solver::mkNullableNull::sort"], [43, 5, 1, "_CPPv4NK4cvc56Solver14mkNullableSomeERK4Term", "cvc5::Solver::mkNullableSome"], [43, 6, 1, "_CPPv4NK4cvc56Solver14mkNullableSomeERK4Term", "cvc5::Solver::mkNullableSome::term"], [43, 5, 1, "_CPPv4NK4cvc56Solver14mkNullableSortERK4Sort", "cvc5::Solver::mkNullableSort"], [43, 6, 1, "_CPPv4NK4cvc56Solver14mkNullableSortERK4Sort", "cvc5::Solver::mkNullableSort::sort"], [43, 5, 1, "_CPPv4NK4cvc56Solver13mkNullableValERK4Term", "cvc5::Solver::mkNullableVal"], [43, 6, 1, "_CPPv4NK4cvc56Solver13mkNullableValERK4Term", "cvc5::Solver::mkNullableVal::term"], [43, 5, 1, "_CPPv4NK4cvc56Solver4mkOpE4KindRKNSt6stringE", "cvc5::Solver::mkOp"], [43, 5, 1, "_CPPv4NK4cvc56Solver4mkOpE4KindRKNSt6vectorI8uint32_tEE", "cvc5::Solver::mkOp"], [43, 6, 1, "_CPPv4NK4cvc56Solver4mkOpE4KindRKNSt6stringE", "cvc5::Solver::mkOp::arg"], [43, 6, 1, "_CPPv4NK4cvc56Solver4mkOpE4KindRKNSt6vectorI8uint32_tEE", "cvc5::Solver::mkOp::args"], [43, 6, 1, "_CPPv4NK4cvc56Solver4mkOpE4KindRKNSt6stringE", "cvc5::Solver::mkOp::kind"], [43, 6, 1, "_CPPv4NK4cvc56Solver4mkOpE4KindRKNSt6vectorI8uint32_tEE", "cvc5::Solver::mkOp::kind"], [43, 5, 1, "_CPPv4NK4cvc56Solver11mkParamSortERKNSt8optionalINSt6stringEEE", "cvc5::Solver::mkParamSort"], [43, 6, 1, "_CPPv4NK4cvc56Solver11mkParamSortERKNSt8optionalINSt6stringEEE", "cvc5::Solver::mkParamSort::symbol"], [43, 5, 1, "_CPPv4NK4cvc56Solver4mkPiEv", "cvc5::Solver::mkPi"], [43, 5, 1, "_CPPv4NK4cvc56Solver15mkPredicateSortERKNSt6vectorI4SortEE", "cvc5::Solver::mkPredicateSort"], [43, 6, 1, "_CPPv4NK4cvc56Solver15mkPredicateSortERKNSt6vectorI4SortEE", "cvc5::Solver::mkPredicateSort::sorts"], [43, 5, 1, "_CPPv4NK4cvc56Solver6mkRealE7int64_t", "cvc5::Solver::mkReal"], [43, 5, 1, "_CPPv4NK4cvc56Solver6mkRealE7int64_t7int64_t", "cvc5::Solver::mkReal"], [43, 5, 1, "_CPPv4NK4cvc56Solver6mkRealERKNSt6stringE", "cvc5::Solver::mkReal"], [43, 6, 1, "_CPPv4NK4cvc56Solver6mkRealE7int64_t7int64_t", "cvc5::Solver::mkReal::den"], [43, 6, 1, "_CPPv4NK4cvc56Solver6mkRealE7int64_t7int64_t", "cvc5::Solver::mkReal::num"], [43, 6, 1, "_CPPv4NK4cvc56Solver6mkRealERKNSt6stringE", "cvc5::Solver::mkReal::s"], [43, 6, 1, "_CPPv4NK4cvc56Solver6mkRealE7int64_t", "cvc5::Solver::mkReal::val"], [43, 5, 1, "_CPPv4NK4cvc56Solver12mkRecordSortERKNSt6vectorINSt4pairINSt6stringE4SortEEEE", "cvc5::Solver::mkRecordSort"], [43, 6, 1, "_CPPv4NK4cvc56Solver12mkRecordSortERKNSt6vectorINSt4pairINSt6stringE4SortEEEE", "cvc5::Solver::mkRecordSort::fields"], [43, 5, 1, "_CPPv4NK4cvc56Solver11mkRegexpAllEv", "cvc5::Solver::mkRegexpAll"], [43, 5, 1, "_CPPv4NK4cvc56Solver15mkRegexpAllcharEv", "cvc5::Solver::mkRegexpAllchar"], [43, 5, 1, "_CPPv4NK4cvc56Solver12mkRegexpNoneEv", "cvc5::Solver::mkRegexpNone"], [43, 5, 1, "_CPPv4NK4cvc56Solver14mkRoundingModeE12RoundingMode", "cvc5::Solver::mkRoundingMode"], [43, 6, 1, "_CPPv4NK4cvc56Solver14mkRoundingModeE12RoundingMode", "cvc5::Solver::mkRoundingMode::rm"], [43, 5, 1, "_CPPv4NK4cvc56Solver8mkSepEmpEv", "cvc5::Solver::mkSepEmp"], [43, 5, 1, "_CPPv4NK4cvc56Solver8mkSepNilERK4Sort", "cvc5::Solver::mkSepNil"], [43, 6, 1, "_CPPv4NK4cvc56Solver8mkSepNilERK4Sort", "cvc5::Solver::mkSepNil::sort"], [43, 5, 1, "_CPPv4NK4cvc56Solver14mkSequenceSortERK4Sort", "cvc5::Solver::mkSequenceSort"], [43, 6, 1, "_CPPv4NK4cvc56Solver14mkSequenceSortERK4Sort", "cvc5::Solver::mkSequenceSort::elemSort"], [43, 5, 1, "_CPPv4NK4cvc56Solver9mkSetSortERK4Sort", "cvc5::Solver::mkSetSort"], [43, 6, 1, "_CPPv4NK4cvc56Solver9mkSetSortERK4Sort", "cvc5::Solver::mkSetSort::elemSort"], [43, 5, 1, "_CPPv4NK4cvc56Solver8mkStringERKNSt6stringEb", "cvc5::Solver::mkString"], [43, 5, 1, "_CPPv4NK4cvc56Solver8mkStringERKNSt7wstringE", "cvc5::Solver::mkString"], [43, 6, 1, "_CPPv4NK4cvc56Solver8mkStringERKNSt6stringEb", "cvc5::Solver::mkString::s"], [43, 6, 1, "_CPPv4NK4cvc56Solver8mkStringERKNSt7wstringE", "cvc5::Solver::mkString::s"], [43, 6, 1, "_CPPv4NK4cvc56Solver8mkStringERKNSt6stringEb", "cvc5::Solver::mkString::useEscSequences"], [43, 5, 1, "_CPPv4NK4cvc56Solver6mkTermE4KindRKNSt6vectorI4TermEE", "cvc5::Solver::mkTerm"], [43, 5, 1, "_CPPv4NK4cvc56Solver6mkTermERK2OpRKNSt6vectorI4TermEE", "cvc5::Solver::mkTerm"], [43, 6, 1, "_CPPv4NK4cvc56Solver6mkTermE4KindRKNSt6vectorI4TermEE", "cvc5::Solver::mkTerm::children"], [43, 6, 1, "_CPPv4NK4cvc56Solver6mkTermERK2OpRKNSt6vectorI4TermEE", "cvc5::Solver::mkTerm::children"], [43, 6, 1, "_CPPv4NK4cvc56Solver6mkTermE4KindRKNSt6vectorI4TermEE", "cvc5::Solver::mkTerm::kind"], [43, 6, 1, "_CPPv4NK4cvc56Solver6mkTermERK2OpRKNSt6vectorI4TermEE", "cvc5::Solver::mkTerm::op"], [43, 5, 1, "_CPPv4NK4cvc56Solver6mkTrueEv", "cvc5::Solver::mkTrue"], [43, 5, 1, "_CPPv4NK4cvc56Solver7mkTupleERKNSt6vectorI4TermEE", "cvc5::Solver::mkTuple"], [43, 6, 1, "_CPPv4NK4cvc56Solver7mkTupleERKNSt6vectorI4TermEE", "cvc5::Solver::mkTuple::terms"], [43, 5, 1, "_CPPv4NK4cvc56Solver11mkTupleSortERKNSt6vectorI4SortEE", "cvc5::Solver::mkTupleSort"], [43, 6, 1, "_CPPv4NK4cvc56Solver11mkTupleSortERKNSt6vectorI4SortEE", "cvc5::Solver::mkTupleSort::sorts"], [43, 5, 1, "_CPPv4NK4cvc56Solver19mkUninterpretedSortERKNSt8optionalINSt6stringEEE", "cvc5::Solver::mkUninterpretedSort"], [43, 6, 1, "_CPPv4NK4cvc56Solver19mkUninterpretedSortERKNSt8optionalINSt6stringEEE", "cvc5::Solver::mkUninterpretedSort::symbol"], [43, 5, 1, "_CPPv4NK4cvc56Solver34mkUninterpretedSortConstructorSortE6size_tRKNSt8optionalINSt6stringEEE", "cvc5::Solver::mkUninterpretedSortConstructorSort"], [43, 6, 1, "_CPPv4NK4cvc56Solver34mkUninterpretedSortConstructorSortE6size_tRKNSt8optionalINSt6stringEEE", "cvc5::Solver::mkUninterpretedSortConstructorSort::arity"], [43, 6, 1, "_CPPv4NK4cvc56Solver34mkUninterpretedSortConstructorSortE6size_tRKNSt8optionalINSt6stringEEE", "cvc5::Solver::mkUninterpretedSortConstructorSort::symbol"], [43, 5, 1, "_CPPv4NK4cvc56Solver13mkUniverseSetERK4Sort", "cvc5::Solver::mkUniverseSet"], [43, 6, 1, "_CPPv4NK4cvc56Solver13mkUniverseSetERK4Sort", "cvc5::Solver::mkUniverseSet::sort"], [43, 5, 1, "_CPPv4NK4cvc56Solver24mkUnresolvedDatatypeSortERKNSt6stringE6size_t", "cvc5::Solver::mkUnresolvedDatatypeSort"], [43, 6, 1, "_CPPv4NK4cvc56Solver24mkUnresolvedDatatypeSortERKNSt6stringE6size_t", "cvc5::Solver::mkUnresolvedDatatypeSort::arity"], [43, 6, 1, "_CPPv4NK4cvc56Solver24mkUnresolvedDatatypeSortERKNSt6stringE6size_t", "cvc5::Solver::mkUnresolvedDatatypeSort::symbol"], [43, 5, 1, "_CPPv4NK4cvc56Solver5mkVarERK4SortRKNSt8optionalINSt6stringEEE", "cvc5::Solver::mkVar"], [43, 6, 1, "_CPPv4NK4cvc56Solver5mkVarERK4SortRKNSt8optionalINSt6stringEEE", "cvc5::Solver::mkVar::sort"], [43, 6, 1, "_CPPv4NK4cvc56Solver5mkVarERK4SortRKNSt8optionalINSt6stringEEE", "cvc5::Solver::mkVar::symbol"], [43, 5, 1, "_CPPv4N4cvc56SolveraSERK6Solver", "cvc5::Solver::operator="], [43, 5, 1, "_CPPv4NK4cvc56Solver3popE8uint32_t", "cvc5::Solver::pop"], [43, 6, 1, "_CPPv4NK4cvc56Solver3popE8uint32_t", "cvc5::Solver::pop::nscopes"], [43, 5, 1, "_CPPv4NK4cvc56Solver19printStatisticsSafeEi", "cvc5::Solver::printStatisticsSafe"], [43, 6, 1, "_CPPv4NK4cvc56Solver19printStatisticsSafeEi", "cvc5::Solver::printStatisticsSafe::fd"], [43, 5, 1, "_CPPv4NK4cvc56Solver13proofToStringE5ProofN5modes11ProofFormatERKNSt3mapIN4cvc54TermENSt6stringEEE", "cvc5::Solver::proofToString"], [43, 6, 1, "_CPPv4NK4cvc56Solver13proofToStringE5ProofN5modes11ProofFormatERKNSt3mapIN4cvc54TermENSt6stringEEE", "cvc5::Solver::proofToString::assertionNames"], [43, 6, 1, "_CPPv4NK4cvc56Solver13proofToStringE5ProofN5modes11ProofFormatERKNSt3mapIN4cvc54TermENSt6stringEEE", "cvc5::Solver::proofToString::format"], [43, 6, 1, "_CPPv4NK4cvc56Solver13proofToStringE5ProofN5modes11ProofFormatERKNSt3mapIN4cvc54TermENSt6stringEEE", "cvc5::Solver::proofToString::proof"], [43, 5, 1, "_CPPv4NK4cvc56Solver4pushE8uint32_t", "cvc5::Solver::push"], [43, 6, 1, "_CPPv4NK4cvc56Solver4pushE8uint32_t", "cvc5::Solver::push::nscopes"], [43, 5, 1, "_CPPv4NK4cvc56Solver15resetAssertionsEv", "cvc5::Solver::resetAssertions"], [43, 5, 1, "_CPPv4NK4cvc56Solver7setInfoERKNSt6stringERKNSt6stringE", "cvc5::Solver::setInfo"], [43, 6, 1, "_CPPv4NK4cvc56Solver7setInfoERKNSt6stringERKNSt6stringE", "cvc5::Solver::setInfo::keyword"], [43, 6, 1, "_CPPv4NK4cvc56Solver7setInfoERKNSt6stringERKNSt6stringE", "cvc5::Solver::setInfo::value"], [43, 5, 1, "_CPPv4NK4cvc56Solver8setLogicERKNSt6stringE", "cvc5::Solver::setLogic"], [43, 6, 1, "_CPPv4NK4cvc56Solver8setLogicERKNSt6stringE", "cvc5::Solver::setLogic::logic"], [43, 5, 1, "_CPPv4NK4cvc56Solver9setOptionERKNSt6stringERKNSt6stringE", "cvc5::Solver::setOption"], [43, 6, 1, "_CPPv4NK4cvc56Solver9setOptionERKNSt6stringERKNSt6stringE", "cvc5::Solver::setOption::option"], [43, 6, 1, "_CPPv4NK4cvc56Solver9setOptionERKNSt6stringERKNSt6stringE", "cvc5::Solver::setOption::value"], [43, 5, 1, "_CPPv4N4cvc56Solver8simplifyERK4Termb", "cvc5::Solver::simplify"], [43, 6, 1, "_CPPv4N4cvc56Solver8simplifyERK4Termb", "cvc5::Solver::simplify::applySubs"], [43, 6, 1, "_CPPv4N4cvc56Solver8simplifyERK4Termb", "cvc5::Solver::simplify::t"], [43, 5, 1, "_CPPv4NK4cvc56Solver8synthFunERKNSt6stringERKNSt6vectorI4TermEE4SortR7Grammar", "cvc5::Solver::synthFun"], [43, 5, 1, "_CPPv4NK4cvc56Solver8synthFunERKNSt6stringERKNSt6vectorI4TermEERK4Sort", "cvc5::Solver::synthFun"], [43, 6, 1, "_CPPv4NK4cvc56Solver8synthFunERKNSt6stringERKNSt6vectorI4TermEE4SortR7Grammar", "cvc5::Solver::synthFun::boundVars"], [43, 6, 1, "_CPPv4NK4cvc56Solver8synthFunERKNSt6stringERKNSt6vectorI4TermEERK4Sort", "cvc5::Solver::synthFun::boundVars"], [43, 6, 1, "_CPPv4NK4cvc56Solver8synthFunERKNSt6stringERKNSt6vectorI4TermEE4SortR7Grammar", "cvc5::Solver::synthFun::grammar"], [43, 6, 1, "_CPPv4NK4cvc56Solver8synthFunERKNSt6stringERKNSt6vectorI4TermEE4SortR7Grammar", "cvc5::Solver::synthFun::sort"], [43, 6, 1, "_CPPv4NK4cvc56Solver8synthFunERKNSt6stringERKNSt6vectorI4TermEERK4Sort", "cvc5::Solver::synthFun::sort"], [43, 6, 1, "_CPPv4NK4cvc56Solver8synthFunERKNSt6stringERKNSt6vectorI4TermEE4SortR7Grammar", "cvc5::Solver::synthFun::symbol"], [43, 6, 1, "_CPPv4NK4cvc56Solver8synthFunERKNSt6stringERKNSt6vectorI4TermEERK4Sort", "cvc5::Solver::synthFun::symbol"], [43, 5, 1, "_CPPv4N4cvc56SolverD0Ev", "cvc5::Solver::~Solver"], [44, 3, 1, "_CPPv4N4cvc54SortE", "cvc5::Sort"], [44, 5, 1, "_CPPv4N4cvc54Sort4SortEv", "cvc5::Sort::Sort"], [44, 5, 1, "_CPPv4NK4cvc54Sort17getAbstractedKindEv", "cvc5::Sort::getAbstractedKind"], [44, 5, 1, "_CPPv4NK4cvc54Sort19getArrayElementSortEv", "cvc5::Sort::getArrayElementSort"], [44, 5, 1, "_CPPv4NK4cvc54Sort17getArrayIndexSortEv", "cvc5::Sort::getArrayIndexSort"], [44, 5, 1, "_CPPv4NK4cvc54Sort17getBagElementSortEv", "cvc5::Sort::getBagElementSort"], [44, 5, 1, "_CPPv4NK4cvc54Sort16getBitVectorSizeEv", "cvc5::Sort::getBitVectorSize"], [44, 5, 1, "_CPPv4NK4cvc54Sort11getDatatypeEv", "cvc5::Sort::getDatatype"], [44, 5, 1, "_CPPv4NK4cvc54Sort16getDatatypeArityEv", "cvc5::Sort::getDatatypeArity"], [44, 5, 1, "_CPPv4NK4cvc54Sort27getDatatypeConstructorArityEv", "cvc5::Sort::getDatatypeConstructorArity"], [44, 5, 1, "_CPPv4NK4cvc54Sort34getDatatypeConstructorCodomainSortEv", "cvc5::Sort::getDatatypeConstructorCodomainSort"], [44, 5, 1, "_CPPv4NK4cvc54Sort33getDatatypeConstructorDomainSortsEv", "cvc5::Sort::getDatatypeConstructorDomainSorts"], [44, 5, 1, "_CPPv4NK4cvc54Sort31getDatatypeSelectorCodomainSortEv", "cvc5::Sort::getDatatypeSelectorCodomainSort"], [44, 5, 1, "_CPPv4NK4cvc54Sort29getDatatypeSelectorDomainSortEv", "cvc5::Sort::getDatatypeSelectorDomainSort"], [44, 5, 1, "_CPPv4NK4cvc54Sort29getDatatypeTesterCodomainSortEv", "cvc5::Sort::getDatatypeTesterCodomainSort"], [44, 5, 1, "_CPPv4NK4cvc54Sort27getDatatypeTesterDomainSortEv", "cvc5::Sort::getDatatypeTesterDomainSort"], [44, 5, 1, "_CPPv4NK4cvc54Sort18getFiniteFieldSizeEv", "cvc5::Sort::getFiniteFieldSize"], [44, 5, 1, "_CPPv4NK4cvc54Sort28getFloatingPointExponentSizeEv", "cvc5::Sort::getFloatingPointExponentSize"], [44, 5, 1, "_CPPv4NK4cvc54Sort31getFloatingPointSignificandSizeEv", "cvc5::Sort::getFloatingPointSignificandSize"], [44, 5, 1, "_CPPv4NK4cvc54Sort16getFunctionArityEv", "cvc5::Sort::getFunctionArity"], [44, 5, 1, "_CPPv4NK4cvc54Sort23getFunctionCodomainSortEv", "cvc5::Sort::getFunctionCodomainSort"], [44, 5, 1, "_CPPv4NK4cvc54Sort22getFunctionDomainSortsEv", "cvc5::Sort::getFunctionDomainSorts"], [44, 5, 1, "_CPPv4NK4cvc54Sort25getInstantiatedParametersEv", "cvc5::Sort::getInstantiatedParameters"], [44, 5, 1, "_CPPv4NK4cvc54Sort7getKindEv", "cvc5::Sort::getKind"], [44, 5, 1, "_CPPv4NK4cvc54Sort22getNullableElementSortEv", "cvc5::Sort::getNullableElementSort"], [44, 5, 1, "_CPPv4NK4cvc54Sort22getSequenceElementSortEv", "cvc5::Sort::getSequenceElementSort"], [44, 5, 1, "_CPPv4NK4cvc54Sort17getSetElementSortEv", "cvc5::Sort::getSetElementSort"], [44, 5, 1, "_CPPv4NK4cvc54Sort9getSymbolEv", "cvc5::Sort::getSymbol"], [44, 5, 1, "_CPPv4NK4cvc54Sort14getTupleLengthEv", "cvc5::Sort::getTupleLength"], [44, 5, 1, "_CPPv4NK4cvc54Sort13getTupleSortsEv", "cvc5::Sort::getTupleSorts"], [44, 5, 1, "_CPPv4NK4cvc54Sort31getUninterpretedSortConstructorEv", "cvc5::Sort::getUninterpretedSortConstructor"], [44, 5, 1, "_CPPv4NK4cvc54Sort36getUninterpretedSortConstructorArityEv", "cvc5::Sort::getUninterpretedSortConstructorArity"], [44, 5, 1, "_CPPv4NK4cvc54Sort9hasSymbolEv", "cvc5::Sort::hasSymbol"], [44, 5, 1, "_CPPv4NK4cvc54Sort11instantiateERKNSt6vectorI4SortEE", "cvc5::Sort::instantiate"], [44, 6, 1, "_CPPv4NK4cvc54Sort11instantiateERKNSt6vectorI4SortEE", "cvc5::Sort::instantiate::params"], [44, 5, 1, "_CPPv4NK4cvc54Sort10isAbstractEv", "cvc5::Sort::isAbstract"], [44, 5, 1, "_CPPv4NK4cvc54Sort7isArrayEv", "cvc5::Sort::isArray"], [44, 5, 1, "_CPPv4NK4cvc54Sort5isBagEv", "cvc5::Sort::isBag"], [44, 5, 1, "_CPPv4NK4cvc54Sort11isBitVectorEv", "cvc5::Sort::isBitVector"], [44, 5, 1, "_CPPv4NK4cvc54Sort9isBooleanEv", "cvc5::Sort::isBoolean"], [44, 5, 1, "_CPPv4NK4cvc54Sort10isDatatypeEv", "cvc5::Sort::isDatatype"], [44, 5, 1, "_CPPv4NK4cvc54Sort21isDatatypeConstructorEv", "cvc5::Sort::isDatatypeConstructor"], [44, 5, 1, "_CPPv4NK4cvc54Sort18isDatatypeSelectorEv", "cvc5::Sort::isDatatypeSelector"], [44, 5, 1, "_CPPv4NK4cvc54Sort16isDatatypeTesterEv", "cvc5::Sort::isDatatypeTester"], [44, 5, 1, "_CPPv4NK4cvc54Sort17isDatatypeUpdaterEv", "cvc5::Sort::isDatatypeUpdater"], [44, 5, 1, "_CPPv4NK4cvc54Sort13isFiniteFieldEv", "cvc5::Sort::isFiniteField"], [44, 5, 1, "_CPPv4NK4cvc54Sort15isFloatingPointEv", "cvc5::Sort::isFloatingPoint"], [44, 5, 1, "_CPPv4NK4cvc54Sort10isFunctionEv", "cvc5::Sort::isFunction"], [44, 5, 1, "_CPPv4NK4cvc54Sort14isInstantiatedEv", "cvc5::Sort::isInstantiated"], [44, 5, 1, "_CPPv4NK4cvc54Sort9isIntegerEv", "cvc5::Sort::isInteger"], [44, 5, 1, "_CPPv4NK4cvc54Sort6isNullEv", "cvc5::Sort::isNull"], [44, 5, 1, "_CPPv4NK4cvc54Sort10isNullableEv", "cvc5::Sort::isNullable"], [44, 5, 1, "_CPPv4NK4cvc54Sort11isPredicateEv", "cvc5::Sort::isPredicate"], [44, 5, 1, "_CPPv4NK4cvc54Sort6isRealEv", "cvc5::Sort::isReal"], [44, 5, 1, "_CPPv4NK4cvc54Sort8isRecordEv", "cvc5::Sort::isRecord"], [44, 5, 1, "_CPPv4NK4cvc54Sort8isRegExpEv", "cvc5::Sort::isRegExp"], [44, 5, 1, "_CPPv4NK4cvc54Sort14isRoundingModeEv", "cvc5::Sort::isRoundingMode"], [44, 5, 1, "_CPPv4NK4cvc54Sort10isSequenceEv", "cvc5::Sort::isSequence"], [44, 5, 1, "_CPPv4NK4cvc54Sort5isSetEv", "cvc5::Sort::isSet"], [44, 5, 1, "_CPPv4NK4cvc54Sort8isStringEv", "cvc5::Sort::isString"], [44, 5, 1, "_CPPv4NK4cvc54Sort7isTupleEv", "cvc5::Sort::isTuple"], [44, 5, 1, "_CPPv4NK4cvc54Sort19isUninterpretedSortEv", "cvc5::Sort::isUninterpretedSort"], [44, 5, 1, "_CPPv4NK4cvc54Sort30isUninterpretedSortConstructorEv", "cvc5::Sort::isUninterpretedSortConstructor"], [44, 5, 1, "_CPPv4NK4cvc54SortneERK4Sort", "cvc5::Sort::operator!="], [44, 6, 1, "_CPPv4NK4cvc54SortneERK4Sort", "cvc5::Sort::operator!=::s"], [44, 5, 1, "_CPPv4NK4cvc54SortltERK4Sort", "cvc5::Sort::operator<"], [44, 6, 1, "_CPPv4NK4cvc54SortltERK4Sort", "cvc5::Sort::operator<::s"], [44, 5, 1, "_CPPv4NK4cvc54SortleERK4Sort", "cvc5::Sort::operator<="], [44, 6, 1, "_CPPv4NK4cvc54SortleERK4Sort", "cvc5::Sort::operator<=::s"], [44, 5, 1, "_CPPv4NK4cvc54SorteqERK4Sort", "cvc5::Sort::operator=="], [44, 6, 1, "_CPPv4NK4cvc54SorteqERK4Sort", "cvc5::Sort::operator==::s"], [44, 5, 1, "_CPPv4NK4cvc54SortgtERK4Sort", "cvc5::Sort::operator>"], [44, 6, 1, "_CPPv4NK4cvc54SortgtERK4Sort", "cvc5::Sort::operator>::s"], [44, 5, 1, "_CPPv4NK4cvc54SortgeERK4Sort", "cvc5::Sort::operator>="], [44, 6, 1, "_CPPv4NK4cvc54SortgeERK4Sort", "cvc5::Sort::operator>=::s"], [44, 5, 1, "_CPPv4NK4cvc54Sort10substituteERK4SortRK4Sort", "cvc5::Sort::substitute"], [44, 5, 1, "_CPPv4NK4cvc54Sort10substituteERKNSt6vectorI4SortEERKNSt6vectorI4SortEE", "cvc5::Sort::substitute"], [44, 6, 1, "_CPPv4NK4cvc54Sort10substituteERK4SortRK4Sort", "cvc5::Sort::substitute::replacement"], [44, 6, 1, "_CPPv4NK4cvc54Sort10substituteERKNSt6vectorI4SortEERKNSt6vectorI4SortEE", "cvc5::Sort::substitute::replacements"], [44, 6, 1, "_CPPv4NK4cvc54Sort10substituteERK4SortRK4Sort", "cvc5::Sort::substitute::sort"], [44, 6, 1, "_CPPv4NK4cvc54Sort10substituteERKNSt6vectorI4SortEERKNSt6vectorI4SortEE", "cvc5::Sort::substitute::sorts"], [44, 5, 1, "_CPPv4NK4cvc54Sort8toStreamERNSt7ostreamE", "cvc5::Sort::toStream"], [44, 6, 1, "_CPPv4NK4cvc54Sort8toStreamERNSt7ostreamE", "cvc5::Sort::toStream::out"], [44, 5, 1, "_CPPv4NK4cvc54Sort8toStringEv", "cvc5::Sort::toString"], [44, 5, 1, "_CPPv4N4cvc54SortD0Ev", "cvc5::Sort::~Sort"], [55, 2, 1, "_CPPv4N4cvc58SortKindE", "cvc5::SortKind"], [55, 0, 1, "_CPPv4N4cvc58SortKind13ABSTRACT_SORTE", "cvc5::SortKind::ABSTRACT_SORT"], [55, 0, 1, "_CPPv4N4cvc58SortKind10ARRAY_SORTE", "cvc5::SortKind::ARRAY_SORT"], [55, 0, 1, "_CPPv4N4cvc58SortKind8BAG_SORTE", "cvc5::SortKind::BAG_SORT"], [55, 0, 1, "_CPPv4N4cvc58SortKind14BITVECTOR_SORTE", "cvc5::SortKind::BITVECTOR_SORT"], [55, 0, 1, "_CPPv4N4cvc58SortKind12BOOLEAN_SORTE", "cvc5::SortKind::BOOLEAN_SORT"], [55, 0, 1, "_CPPv4N4cvc58SortKind13DATATYPE_SORTE", "cvc5::SortKind::DATATYPE_SORT"], [55, 0, 1, "_CPPv4N4cvc58SortKind17FINITE_FIELD_SORTE", "cvc5::SortKind::FINITE_FIELD_SORT"], [55, 0, 1, "_CPPv4N4cvc58SortKind18FLOATINGPOINT_SORTE", "cvc5::SortKind::FLOATINGPOINT_SORT"], [55, 0, 1, "_CPPv4N4cvc58SortKind13FUNCTION_SORTE", "cvc5::SortKind::FUNCTION_SORT"], [55, 0, 1, "_CPPv4N4cvc58SortKind12INTEGER_SORTE", "cvc5::SortKind::INTEGER_SORT"], [55, 0, 1, "_CPPv4N4cvc58SortKind18INTERNAL_SORT_KINDE", "cvc5::SortKind::INTERNAL_SORT_KIND"], [55, 0, 1, "_CPPv4N4cvc58SortKind14LAST_SORT_KINDE", "cvc5::SortKind::LAST_SORT_KIND"], [55, 0, 1, "_CPPv4N4cvc58SortKind13NULLABLE_SORTE", "cvc5::SortKind::NULLABLE_SORT"], [55, 0, 1, "_CPPv4N4cvc58SortKind9NULL_SORTE", "cvc5::SortKind::NULL_SORT"], [55, 0, 1, "_CPPv4N4cvc58SortKind9REAL_SORTE", "cvc5::SortKind::REAL_SORT"], [55, 0, 1, "_CPPv4N4cvc58SortKind11REGLAN_SORTE", "cvc5::SortKind::REGLAN_SORT"], [55, 0, 1, "_CPPv4N4cvc58SortKind17ROUNDINGMODE_SORTE", "cvc5::SortKind::ROUNDINGMODE_SORT"], [55, 0, 1, "_CPPv4N4cvc58SortKind13SEQUENCE_SORTE", "cvc5::SortKind::SEQUENCE_SORT"], [55, 0, 1, "_CPPv4N4cvc58SortKind8SET_SORTE", "cvc5::SortKind::SET_SORT"], [55, 0, 1, "_CPPv4N4cvc58SortKind11STRING_SORTE", "cvc5::SortKind::STRING_SORT"], [55, 0, 1, "_CPPv4N4cvc58SortKind10TUPLE_SORTE", "cvc5::SortKind::TUPLE_SORT"], [55, 0, 1, "_CPPv4N4cvc58SortKind19UNDEFINED_SORT_KINDE", "cvc5::SortKind::UNDEFINED_SORT_KIND"], [55, 0, 1, "_CPPv4N4cvc58SortKind18UNINTERPRETED_SORTE", "cvc5::SortKind::UNINTERPRETED_SORT"], [45, 3, 1, "_CPPv4N4cvc54StatE", "cvc5::Stat"], [45, 1, 1, "_CPPv4N4cvc54Stat13HistogramDataE", "cvc5::Stat::HistogramData"], [45, 5, 1, "_CPPv4N4cvc54Stat4StatERK4Stat", "cvc5::Stat::Stat"], [45, 5, 1, "_CPPv4N4cvc54Stat4StatEv", "cvc5::Stat::Stat"], [45, 6, 1, "_CPPv4N4cvc54Stat4StatERK4Stat", "cvc5::Stat::Stat::s"], [45, 5, 1, "_CPPv4NK4cvc54Stat9getDoubleEv", "cvc5::Stat::getDouble"], [45, 5, 1, "_CPPv4NK4cvc54Stat12getHistogramEv", "cvc5::Stat::getHistogram"], [45, 5, 1, "_CPPv4NK4cvc54Stat6getIntEv", "cvc5::Stat::getInt"], [45, 5, 1, "_CPPv4NK4cvc54Stat9getStringEv", "cvc5::Stat::getString"], [45, 5, 1, "_CPPv4NK4cvc54Stat9isDefaultEv", "cvc5::Stat::isDefault"], [45, 5, 1, "_CPPv4NK4cvc54Stat8isDoubleEv", "cvc5::Stat::isDouble"], [45, 5, 1, "_CPPv4NK4cvc54Stat11isHistogramEv", "cvc5::Stat::isHistogram"], [45, 5, 1, "_CPPv4NK4cvc54Stat5isIntEv", "cvc5::Stat::isInt"], [45, 5, 1, "_CPPv4NK4cvc54Stat10isInternalEv", "cvc5::Stat::isInternal"], [45, 5, 1, "_CPPv4NK4cvc54Stat8isStringEv", "cvc5::Stat::isString"], [45, 5, 1, "_CPPv4N4cvc54StatlsERNSt7ostreamERK4Stat", "cvc5::Stat::operator<<"], [45, 6, 1, "_CPPv4N4cvc54StatlsERNSt7ostreamERK4Stat", "cvc5::Stat::operator<<::os"], [45, 6, 1, "_CPPv4N4cvc54StatlsERNSt7ostreamERK4Stat", "cvc5::Stat::operator<<::sv"], [45, 5, 1, "_CPPv4N4cvc54StataSERK4Stat", "cvc5::Stat::operator="], [45, 6, 1, "_CPPv4N4cvc54StataSERK4Stat", "cvc5::Stat::operator=::s"], [45, 5, 1, "_CPPv4NK4cvc54Stat8toStringEv", "cvc5::Stat::toString"], [45, 5, 1, "_CPPv4N4cvc54StatD0Ev", "cvc5::Stat::~Stat"], [45, 3, 1, "_CPPv4N4cvc510StatisticsE", "cvc5::Statistics"], [45, 5, 1, "_CPPv4NK4cvc510Statistics5beginEbb", "cvc5::Statistics::begin"], [45, 6, 1, "_CPPv4NK4cvc510Statistics5beginEbb", "cvc5::Statistics::begin::defaulted"], [45, 6, 1, "_CPPv4NK4cvc510Statistics5beginEbb", "cvc5::Statistics::begin::internal"], [45, 5, 1, "_CPPv4NK4cvc510Statistics3endEv", "cvc5::Statistics::end"], [45, 5, 1, "_CPPv4N4cvc510Statistics3getERKNSt6stringE", "cvc5::Statistics::get"], [45, 6, 1, "_CPPv4N4cvc510Statistics3getERKNSt6stringE", "cvc5::Statistics::get::name"], [47, 3, 1, "_CPPv4N4cvc511SynthResultE", "cvc5::SynthResult"], [47, 5, 1, "_CPPv4N4cvc511SynthResult11SynthResultEv", "cvc5::SynthResult::SynthResult"], [47, 5, 1, "_CPPv4NK4cvc511SynthResult13hasNoSolutionEv", "cvc5::SynthResult::hasNoSolution"], [47, 5, 1, "_CPPv4NK4cvc511SynthResult11hasSolutionEv", "cvc5::SynthResult::hasSolution"], [47, 5, 1, "_CPPv4NK4cvc511SynthResult6isNullEv", "cvc5::SynthResult::isNull"], [47, 5, 1, "_CPPv4NK4cvc511SynthResult9isUnknownEv", "cvc5::SynthResult::isUnknown"], [47, 5, 1, "_CPPv4NK4cvc511SynthResultneERK11SynthResult", "cvc5::SynthResult::operator!="], [47, 6, 1, "_CPPv4NK4cvc511SynthResultneERK11SynthResult", "cvc5::SynthResult::operator!=::r"], [47, 5, 1, "_CPPv4NK4cvc511SynthResulteqERK11SynthResult", "cvc5::SynthResult::operator=="], [47, 6, 1, "_CPPv4NK4cvc511SynthResulteqERK11SynthResult", "cvc5::SynthResult::operator==::r"], [47, 5, 1, "_CPPv4NK4cvc511SynthResult8toStringEv", "cvc5::SynthResult::toString"], [48, 3, 1, "_CPPv4N4cvc54TermE", "cvc5::Term"], [48, 5, 1, "_CPPv4N4cvc54Term4TermEv", "cvc5::Term::Term"], [48, 5, 1, "_CPPv4NK4cvc54Term7andTermERK4Term", "cvc5::Term::andTerm"], [48, 6, 1, "_CPPv4NK4cvc54Term7andTermERK4Term", "cvc5::Term::andTerm::t"], [48, 5, 1, "_CPPv4NK4cvc54Term5beginEv", "cvc5::Term::begin"], [48, 3, 1, "_CPPv4N4cvc54Term14const_iteratorE", "cvc5::Term::const_iterator"], [48, 5, 1, "_CPPv4N4cvc54Term14const_iterator14const_iteratorEP11TermManagerRKNSt10shared_ptrIN8internal4NodeEEE8uint32_t", "cvc5::Term::const_iterator::const_iterator"], [48, 5, 1, "_CPPv4N4cvc54Term14const_iterator14const_iteratorERK14const_iterator", "cvc5::Term::const_iterator::const_iterator"], [48, 5, 1, "_CPPv4N4cvc54Term14const_iterator14const_iteratorEv", "cvc5::Term::const_iterator::const_iterator"], [48, 6, 1, "_CPPv4N4cvc54Term14const_iterator14const_iteratorEP11TermManagerRKNSt10shared_ptrIN8internal4NodeEEE8uint32_t", "cvc5::Term::const_iterator::const_iterator::e"], [48, 6, 1, "_CPPv4N4cvc54Term14const_iterator14const_iteratorERK14const_iterator", "cvc5::Term::const_iterator::const_iterator::it"], [48, 6, 1, "_CPPv4N4cvc54Term14const_iterator14const_iteratorEP11TermManagerRKNSt10shared_ptrIN8internal4NodeEEE8uint32_t", "cvc5::Term::const_iterator::const_iterator::p"], [48, 6, 1, "_CPPv4N4cvc54Term14const_iterator14const_iteratorEP11TermManagerRKNSt10shared_ptrIN8internal4NodeEEE8uint32_t", "cvc5::Term::const_iterator::const_iterator::tm"], [48, 1, 1, "_CPPv4N4cvc54Term14const_iterator15difference_typeE", "cvc5::Term::const_iterator::difference_type"], [48, 1, 1, "_CPPv4N4cvc54Term14const_iterator17iterator_categoryE", "cvc5::Term::const_iterator::iterator_category"], [48, 5, 1, "_CPPv4NK4cvc54Term14const_iteratorneERK14const_iterator", "cvc5::Term::const_iterator::operator!="], [48, 6, 1, "_CPPv4NK4cvc54Term14const_iteratorneERK14const_iterator", "cvc5::Term::const_iterator::operator!=::it"], [48, 5, 1, "_CPPv4NK4cvc54Term14const_iteratormlEv", "cvc5::Term::const_iterator::operator*"], [48, 5, 1, "_CPPv4N4cvc54Term14const_iteratorppEi", "cvc5::Term::const_iterator::operator++"], [48, 5, 1, "_CPPv4N4cvc54Term14const_iteratorppEv", "cvc5::Term::const_iterator::operator++"], [48, 5, 1, "_CPPv4N4cvc54Term14const_iteratoraSERK14const_iterator", "cvc5::Term::const_iterator::operator="], [48, 6, 1, "_CPPv4N4cvc54Term14const_iteratoraSERK14const_iterator", "cvc5::Term::const_iterator::operator=::it"], [48, 5, 1, "_CPPv4NK4cvc54Term14const_iteratoreqERK14const_iterator", "cvc5::Term::const_iterator::operator=="], [48, 6, 1, "_CPPv4NK4cvc54Term14const_iteratoreqERK14const_iterator", "cvc5::Term::const_iterator::operator==::it"], [48, 1, 1, "_CPPv4N4cvc54Term14const_iterator7pointerE", "cvc5::Term::const_iterator::pointer"], [48, 1, 1, "_CPPv4N4cvc54Term14const_iterator9referenceE", "cvc5::Term::const_iterator::reference"], [48, 1, 1, "_CPPv4N4cvc54Term14const_iterator10value_typeE", "cvc5::Term::const_iterator::value_type"], [48, 5, 1, "_CPPv4NK4cvc54Term3endEv", "cvc5::Term::end"], [48, 5, 1, "_CPPv4NK4cvc54Term6eqTermERK4Term", "cvc5::Term::eqTerm"], [48, 6, 1, "_CPPv4NK4cvc54Term6eqTermERK4Term", "cvc5::Term::eqTerm::t"], [48, 5, 1, "_CPPv4NK4cvc54Term17getBitVectorValueE8uint32_t", "cvc5::Term::getBitVectorValue"], [48, 6, 1, "_CPPv4NK4cvc54Term17getBitVectorValueE8uint32_t", "cvc5::Term::getBitVectorValue::base"], [48, 5, 1, "_CPPv4NK4cvc54Term15getBooleanValueEv", "cvc5::Term::getBooleanValue"], [48, 5, 1, "_CPPv4NK4cvc54Term24getCardinalityConstraintEv", "cvc5::Term::getCardinalityConstraint"], [48, 5, 1, "_CPPv4NK4cvc54Term17getConstArrayBaseEv", "cvc5::Term::getConstArrayBase"], [48, 5, 1, "_CPPv4NK4cvc54Term19getFiniteFieldValueEv", "cvc5::Term::getFiniteFieldValue"], [48, 5, 1, "_CPPv4NK4cvc54Term21getFloatingPointValueEv", "cvc5::Term::getFloatingPointValue"], [48, 5, 1, "_CPPv4NK4cvc54Term5getIdEv", "cvc5::Term::getId"], [48, 5, 1, "_CPPv4NK4cvc54Term13getInt32ValueEv", "cvc5::Term::getInt32Value"], [48, 5, 1, "_CPPv4NK4cvc54Term13getInt64ValueEv", "cvc5::Term::getInt64Value"], [48, 5, 1, "_CPPv4NK4cvc54Term15getIntegerValueEv", "cvc5::Term::getIntegerValue"], [48, 5, 1, "_CPPv4NK4cvc54Term7getKindEv", "cvc5::Term::getKind"], [48, 5, 1, "_CPPv4NK4cvc54Term14getNumChildrenEv", "cvc5::Term::getNumChildren"], [48, 5, 1, "_CPPv4NK4cvc54Term5getOpEv", "cvc5::Term::getOp"], [48, 5, 1, "_CPPv4NK4cvc54Term14getReal32ValueEv", "cvc5::Term::getReal32Value"], [48, 5, 1, "_CPPv4NK4cvc54Term14getReal64ValueEv", "cvc5::Term::getReal64Value"], [48, 5, 1, "_CPPv4NK4cvc54Term40getRealAlgebraicNumberDefiningPolynomialERK4Term", "cvc5::Term::getRealAlgebraicNumberDefiningPolynomial"], [48, 6, 1, "_CPPv4NK4cvc54Term40getRealAlgebraicNumberDefiningPolynomialERK4Term", "cvc5::Term::getRealAlgebraicNumberDefiningPolynomial::v"], [48, 5, 1, "_CPPv4NK4cvc54Term32getRealAlgebraicNumberLowerBoundEv", "cvc5::Term::getRealAlgebraicNumberLowerBound"], [48, 5, 1, "_CPPv4NK4cvc54Term32getRealAlgebraicNumberUpperBoundEv", "cvc5::Term::getRealAlgebraicNumberUpperBound"], [48, 5, 1, "_CPPv4NK4cvc54Term25getRealOrIntegerValueSignEv", "cvc5::Term::getRealOrIntegerValueSign"], [48, 5, 1, "_CPPv4NK4cvc54Term12getRealValueEv", "cvc5::Term::getRealValue"], [48, 5, 1, "_CPPv4NK4cvc54Term20getRoundingModeValueEv", "cvc5::Term::getRoundingModeValue"], [48, 5, 1, "_CPPv4NK4cvc54Term16getSequenceValueEv", "cvc5::Term::getSequenceValue"], [48, 5, 1, "_CPPv4NK4cvc54Term11getSetValueEv", "cvc5::Term::getSetValue"], [48, 5, 1, "_CPPv4NK4cvc54Term11getSkolemIdEv", "cvc5::Term::getSkolemId"], [48, 5, 1, "_CPPv4NK4cvc54Term16getSkolemIndicesEv", "cvc5::Term::getSkolemIndices"], [48, 5, 1, "_CPPv4NK4cvc54Term7getSortEv", "cvc5::Term::getSort"], [48, 5, 1, "_CPPv4NK4cvc54Term14getStringValueEv", "cvc5::Term::getStringValue"], [48, 5, 1, "_CPPv4NK4cvc54Term9getSymbolEv", "cvc5::Term::getSymbol"], [48, 5, 1, "_CPPv4NK4cvc54Term13getTupleValueEv", "cvc5::Term::getTupleValue"], [48, 5, 1, "_CPPv4NK4cvc54Term14getUInt32ValueEv", "cvc5::Term::getUInt32Value"], [48, 5, 1, "_CPPv4NK4cvc54Term14getUInt64ValueEv", "cvc5::Term::getUInt64Value"], [48, 5, 1, "_CPPv4NK4cvc54Term25getUninterpretedSortValueEv", "cvc5::Term::getUninterpretedSortValue"], [48, 5, 1, "_CPPv4NK4cvc54Term5hasOpEv", "cvc5::Term::hasOp"], [48, 5, 1, "_CPPv4NK4cvc54Term9hasSymbolEv", "cvc5::Term::hasSymbol"], [48, 5, 1, "_CPPv4NK4cvc54Term7impTermERK4Term", "cvc5::Term::impTerm"], [48, 6, 1, "_CPPv4NK4cvc54Term7impTermERK4Term", "cvc5::Term::impTerm::t"], [48, 5, 1, "_CPPv4NK4cvc54Term16isBitVectorValueEv", "cvc5::Term::isBitVectorValue"], [48, 5, 1, "_CPPv4NK4cvc54Term14isBooleanValueEv", "cvc5::Term::isBooleanValue"], [48, 5, 1, "_CPPv4NK4cvc54Term23isCardinalityConstraintEv", "cvc5::Term::isCardinalityConstraint"], [48, 5, 1, "_CPPv4NK4cvc54Term12isConstArrayEv", "cvc5::Term::isConstArray"], [48, 5, 1, "_CPPv4NK4cvc54Term18isFiniteFieldValueEv", "cvc5::Term::isFiniteFieldValue"], [48, 5, 1, "_CPPv4NK4cvc54Term18isFloatingPointNaNEv", "cvc5::Term::isFloatingPointNaN"], [48, 5, 1, "_CPPv4NK4cvc54Term21isFloatingPointNegInfEv", "cvc5::Term::isFloatingPointNegInf"], [48, 5, 1, "_CPPv4NK4cvc54Term22isFloatingPointNegZeroEv", "cvc5::Term::isFloatingPointNegZero"], [48, 5, 1, "_CPPv4NK4cvc54Term21isFloatingPointPosInfEv", "cvc5::Term::isFloatingPointPosInf"], [48, 5, 1, "_CPPv4NK4cvc54Term22isFloatingPointPosZeroEv", "cvc5::Term::isFloatingPointPosZero"], [48, 5, 1, "_CPPv4NK4cvc54Term20isFloatingPointValueEv", "cvc5::Term::isFloatingPointValue"], [48, 5, 1, "_CPPv4NK4cvc54Term12isInt32ValueEv", "cvc5::Term::isInt32Value"], [48, 5, 1, "_CPPv4NK4cvc54Term12isInt64ValueEv", "cvc5::Term::isInt64Value"], [48, 5, 1, "_CPPv4NK4cvc54Term14isIntegerValueEv", "cvc5::Term::isIntegerValue"], [48, 5, 1, "_CPPv4NK4cvc54Term6isNullEv", "cvc5::Term::isNull"], [48, 5, 1, "_CPPv4NK4cvc54Term13isReal32ValueEv", "cvc5::Term::isReal32Value"], [48, 5, 1, "_CPPv4NK4cvc54Term13isReal64ValueEv", "cvc5::Term::isReal64Value"], [48, 5, 1, "_CPPv4NK4cvc54Term21isRealAlgebraicNumberEv", "cvc5::Term::isRealAlgebraicNumber"], [48, 5, 1, "_CPPv4NK4cvc54Term11isRealValueEv", "cvc5::Term::isRealValue"], [48, 5, 1, "_CPPv4NK4cvc54Term19isRoundingModeValueEv", "cvc5::Term::isRoundingModeValue"], [48, 5, 1, "_CPPv4NK4cvc54Term15isSequenceValueEv", "cvc5::Term::isSequenceValue"], [48, 5, 1, "_CPPv4NK4cvc54Term10isSetValueEv", "cvc5::Term::isSetValue"], [48, 5, 1, "_CPPv4NK4cvc54Term8isSkolemEv", "cvc5::Term::isSkolem"], [48, 5, 1, "_CPPv4NK4cvc54Term13isStringValueEv", "cvc5::Term::isStringValue"], [48, 5, 1, "_CPPv4NK4cvc54Term12isTupleValueEv", "cvc5::Term::isTupleValue"], [48, 5, 1, "_CPPv4NK4cvc54Term13isUInt32ValueEv", "cvc5::Term::isUInt32Value"], [48, 5, 1, "_CPPv4NK4cvc54Term13isUInt64ValueEv", "cvc5::Term::isUInt64Value"], [48, 5, 1, "_CPPv4NK4cvc54Term24isUninterpretedSortValueEv", "cvc5::Term::isUninterpretedSortValue"], [48, 5, 1, "_CPPv4NK4cvc54Term7iteTermERK4TermRK4Term", "cvc5::Term::iteTerm"], [48, 6, 1, "_CPPv4NK4cvc54Term7iteTermERK4TermRK4Term", "cvc5::Term::iteTerm::e"], [48, 6, 1, "_CPPv4NK4cvc54Term7iteTermERK4TermRK4Term", "cvc5::Term::iteTerm::t"], [48, 5, 1, "_CPPv4NK4cvc54Term7notTermEv", "cvc5::Term::notTerm"], [48, 5, 1, "_CPPv4NK4cvc54TermneERK4Term", "cvc5::Term::operator!="], [48, 6, 1, "_CPPv4NK4cvc54TermneERK4Term", "cvc5::Term::operator!=::t"], [48, 5, 1, "_CPPv4NK4cvc54TermltERK4Term", "cvc5::Term::operator<"], [48, 6, 1, "_CPPv4NK4cvc54TermltERK4Term", "cvc5::Term::operator<::t"], [48, 5, 1, "_CPPv4NK4cvc54TermleERK4Term", "cvc5::Term::operator<="], [48, 6, 1, "_CPPv4NK4cvc54TermleERK4Term", "cvc5::Term::operator<=::t"], [48, 5, 1, "_CPPv4NK4cvc54TermeqERK4Term", "cvc5::Term::operator=="], [48, 6, 1, "_CPPv4NK4cvc54TermeqERK4Term", "cvc5::Term::operator==::t"], [48, 5, 1, "_CPPv4NK4cvc54TermgtERK4Term", "cvc5::Term::operator>"], [48, 6, 1, "_CPPv4NK4cvc54TermgtERK4Term", "cvc5::Term::operator>::t"], [48, 5, 1, "_CPPv4NK4cvc54TermgeERK4Term", "cvc5::Term::operator>="], [48, 6, 1, "_CPPv4NK4cvc54TermgeERK4Term", "cvc5::Term::operator>=::t"], [48, 5, 1, "_CPPv4NK4cvc54TermixE6size_t", "cvc5::Term::operator[]"], [48, 6, 1, "_CPPv4NK4cvc54TermixE6size_t", "cvc5::Term::operator[]::index"], [48, 5, 1, "_CPPv4NK4cvc54Term6orTermERK4Term", "cvc5::Term::orTerm"], [48, 6, 1, "_CPPv4NK4cvc54Term6orTermERK4Term", "cvc5::Term::orTerm::t"], [48, 5, 1, "_CPPv4NK4cvc54Term10substituteERK4TermRK4Term", "cvc5::Term::substitute"], [48, 5, 1, "_CPPv4NK4cvc54Term10substituteERKNSt6vectorI4TermEERKNSt6vectorI4TermEE", "cvc5::Term::substitute"], [48, 6, 1, "_CPPv4NK4cvc54Term10substituteERK4TermRK4Term", "cvc5::Term::substitute::replacement"], [48, 6, 1, "_CPPv4NK4cvc54Term10substituteERKNSt6vectorI4TermEERKNSt6vectorI4TermEE", "cvc5::Term::substitute::replacements"], [48, 6, 1, "_CPPv4NK4cvc54Term10substituteERK4TermRK4Term", "cvc5::Term::substitute::term"], [48, 6, 1, "_CPPv4NK4cvc54Term10substituteERKNSt6vectorI4TermEERKNSt6vectorI4TermEE", "cvc5::Term::substitute::terms"], [48, 5, 1, "_CPPv4NK4cvc54Term8toStringEv", "cvc5::Term::toString"], [48, 5, 1, "_CPPv4NK4cvc54Term7xorTermERK4Term", "cvc5::Term::xorTerm"], [48, 6, 1, "_CPPv4NK4cvc54Term7xorTermERK4Term", "cvc5::Term::xorTerm::t"], [48, 5, 1, "_CPPv4N4cvc54TermD0Ev", "cvc5::Term::~Term"], [49, 3, 1, "_CPPv4N4cvc511TermManagerE", "cvc5::TermManager"], [49, 5, 1, "_CPPv4N4cvc511TermManager11TermManagerEv", "cvc5::TermManager::TermManager"], [49, 5, 1, "_CPPv4N4cvc511TermManager14getBooleanSortEv", "cvc5::TermManager::getBooleanSort"], [49, 5, 1, "_CPPv4N4cvc511TermManager14getIntegerSortEv", "cvc5::TermManager::getIntegerSort"], [49, 5, 1, "_CPPv4N4cvc511TermManager24getNumIndicesForSkolemIdE8SkolemId", "cvc5::TermManager::getNumIndicesForSkolemId"], [49, 6, 1, "_CPPv4N4cvc511TermManager24getNumIndicesForSkolemIdE8SkolemId", "cvc5::TermManager::getNumIndicesForSkolemId::id"], [49, 5, 1, "_CPPv4N4cvc511TermManager11getRealSortEv", "cvc5::TermManager::getRealSort"], [49, 5, 1, "_CPPv4N4cvc511TermManager13getRegExpSortEv", "cvc5::TermManager::getRegExpSort"], [49, 5, 1, "_CPPv4N4cvc511TermManager19getRoundingModeSortEv", "cvc5::TermManager::getRoundingModeSort"], [49, 5, 1, "_CPPv4NK4cvc511TermManager13getStatisticsEv", "cvc5::TermManager::getStatistics"], [49, 5, 1, "_CPPv4N4cvc511TermManager13getStringSortEv", "cvc5::TermManager::getStringSort"], [49, 5, 1, "_CPPv4N4cvc511TermManager14mkAbstractSortE8SortKind", "cvc5::TermManager::mkAbstractSort"], [49, 6, 1, "_CPPv4N4cvc511TermManager14mkAbstractSortE8SortKind", "cvc5::TermManager::mkAbstractSort::k"], [49, 5, 1, "_CPPv4N4cvc511TermManager11mkArraySortERK4SortRK4Sort", "cvc5::TermManager::mkArraySort"], [49, 6, 1, "_CPPv4N4cvc511TermManager11mkArraySortERK4SortRK4Sort", "cvc5::TermManager::mkArraySort::elemSort"], [49, 6, 1, "_CPPv4N4cvc511TermManager11mkArraySortERK4SortRK4Sort", "cvc5::TermManager::mkArraySort::indexSort"], [49, 5, 1, "_CPPv4N4cvc511TermManager9mkBagSortERK4Sort", "cvc5::TermManager::mkBagSort"], [49, 6, 1, "_CPPv4N4cvc511TermManager9mkBagSortERK4Sort", "cvc5::TermManager::mkBagSort::elemSort"], [49, 5, 1, "_CPPv4N4cvc511TermManager11mkBitVectorE8uint32_t8uint64_t", "cvc5::TermManager::mkBitVector"], [49, 5, 1, "_CPPv4N4cvc511TermManager11mkBitVectorE8uint32_tRKNSt6stringE8uint32_t", "cvc5::TermManager::mkBitVector"], [49, 6, 1, "_CPPv4N4cvc511TermManager11mkBitVectorE8uint32_tRKNSt6stringE8uint32_t", "cvc5::TermManager::mkBitVector::base"], [49, 6, 1, "_CPPv4N4cvc511TermManager11mkBitVectorE8uint32_tRKNSt6stringE8uint32_t", "cvc5::TermManager::mkBitVector::s"], [49, 6, 1, "_CPPv4N4cvc511TermManager11mkBitVectorE8uint32_t8uint64_t", "cvc5::TermManager::mkBitVector::size"], [49, 6, 1, "_CPPv4N4cvc511TermManager11mkBitVectorE8uint32_tRKNSt6stringE8uint32_t", "cvc5::TermManager::mkBitVector::size"], [49, 6, 1, "_CPPv4N4cvc511TermManager11mkBitVectorE8uint32_t8uint64_t", "cvc5::TermManager::mkBitVector::val"], [49, 5, 1, "_CPPv4N4cvc511TermManager15mkBitVectorSortE8uint32_t", "cvc5::TermManager::mkBitVectorSort"], [49, 6, 1, "_CPPv4N4cvc511TermManager15mkBitVectorSortE8uint32_t", "cvc5::TermManager::mkBitVectorSort::size"], [49, 5, 1, "_CPPv4N4cvc511TermManager9mkBooleanEb", "cvc5::TermManager::mkBoolean"], [49, 6, 1, "_CPPv4N4cvc511TermManager9mkBooleanEb", "cvc5::TermManager::mkBoolean::val"], [49, 5, 1, "_CPPv4N4cvc511TermManager23mkCardinalityConstraintERK4Sort8uint32_t", "cvc5::TermManager::mkCardinalityConstraint"], [49, 6, 1, "_CPPv4N4cvc511TermManager23mkCardinalityConstraintERK4Sort8uint32_t", "cvc5::TermManager::mkCardinalityConstraint::sort"], [49, 6, 1, "_CPPv4N4cvc511TermManager23mkCardinalityConstraintERK4Sort8uint32_t", "cvc5::TermManager::mkCardinalityConstraint::upperBound"], [49, 5, 1, "_CPPv4N4cvc511TermManager7mkConstERK4SortRKNSt8optionalINSt6stringEEE", "cvc5::TermManager::mkConst"], [49, 6, 1, "_CPPv4N4cvc511TermManager7mkConstERK4SortRKNSt8optionalINSt6stringEEE", "cvc5::TermManager::mkConst::sort"], [49, 6, 1, "_CPPv4N4cvc511TermManager7mkConstERK4SortRKNSt8optionalINSt6stringEEE", "cvc5::TermManager::mkConst::symbol"], [49, 5, 1, "_CPPv4N4cvc511TermManager12mkConstArrayERK4SortRK4Term", "cvc5::TermManager::mkConstArray"], [49, 6, 1, "_CPPv4N4cvc511TermManager12mkConstArrayERK4SortRK4Term", "cvc5::TermManager::mkConstArray::sort"], [49, 6, 1, "_CPPv4N4cvc511TermManager12mkConstArrayERK4SortRK4Term", "cvc5::TermManager::mkConstArray::val"], [49, 5, 1, "_CPPv4N4cvc511TermManager25mkDatatypeConstructorDeclERKNSt6stringE", "cvc5::TermManager::mkDatatypeConstructorDecl"], [49, 6, 1, "_CPPv4N4cvc511TermManager25mkDatatypeConstructorDeclERKNSt6stringE", "cvc5::TermManager::mkDatatypeConstructorDecl::name"], [49, 5, 1, "_CPPv4N4cvc511TermManager14mkDatatypeDeclERKNSt6stringERKNSt6vectorI4SortEEb", "cvc5::TermManager::mkDatatypeDecl"], [49, 5, 1, "_CPPv4N4cvc511TermManager14mkDatatypeDeclERKNSt6stringEb", "cvc5::TermManager::mkDatatypeDecl"], [49, 6, 1, "_CPPv4N4cvc511TermManager14mkDatatypeDeclERKNSt6stringERKNSt6vectorI4SortEEb", "cvc5::TermManager::mkDatatypeDecl::isCoDatatype"], [49, 6, 1, "_CPPv4N4cvc511TermManager14mkDatatypeDeclERKNSt6stringEb", "cvc5::TermManager::mkDatatypeDecl::isCoDatatype"], [49, 6, 1, "_CPPv4N4cvc511TermManager14mkDatatypeDeclERKNSt6stringERKNSt6vectorI4SortEEb", "cvc5::TermManager::mkDatatypeDecl::name"], [49, 6, 1, "_CPPv4N4cvc511TermManager14mkDatatypeDeclERKNSt6stringEb", "cvc5::TermManager::mkDatatypeDecl::name"], [49, 6, 1, "_CPPv4N4cvc511TermManager14mkDatatypeDeclERKNSt6stringERKNSt6vectorI4SortEEb", "cvc5::TermManager::mkDatatypeDecl::params"], [49, 5, 1, "_CPPv4N4cvc511TermManager14mkDatatypeSortERK12DatatypeDecl", "cvc5::TermManager::mkDatatypeSort"], [49, 6, 1, "_CPPv4N4cvc511TermManager14mkDatatypeSortERK12DatatypeDecl", "cvc5::TermManager::mkDatatypeSort::dtypedecl"], [49, 5, 1, "_CPPv4N4cvc511TermManager15mkDatatypeSortsERKNSt6vectorI12DatatypeDeclEE", "cvc5::TermManager::mkDatatypeSorts"], [49, 6, 1, "_CPPv4N4cvc511TermManager15mkDatatypeSortsERKNSt6vectorI12DatatypeDeclEE", "cvc5::TermManager::mkDatatypeSorts::dtypedecls"], [49, 5, 1, "_CPPv4N4cvc511TermManager10mkEmptyBagERK4Sort", "cvc5::TermManager::mkEmptyBag"], [49, 6, 1, "_CPPv4N4cvc511TermManager10mkEmptyBagERK4Sort", "cvc5::TermManager::mkEmptyBag::sort"], [49, 5, 1, "_CPPv4N4cvc511TermManager15mkEmptySequenceERK4Sort", "cvc5::TermManager::mkEmptySequence"], [49, 6, 1, "_CPPv4N4cvc511TermManager15mkEmptySequenceERK4Sort", "cvc5::TermManager::mkEmptySequence::sort"], [49, 5, 1, "_CPPv4N4cvc511TermManager10mkEmptySetERK4Sort", "cvc5::TermManager::mkEmptySet"], [49, 6, 1, "_CPPv4N4cvc511TermManager10mkEmptySetERK4Sort", "cvc5::TermManager::mkEmptySet::sort"], [49, 5, 1, "_CPPv4N4cvc511TermManager7mkFalseEv", "cvc5::TermManager::mkFalse"], [49, 5, 1, "_CPPv4N4cvc511TermManager17mkFiniteFieldElemERKNSt6stringERK4Sort8uint32_t", "cvc5::TermManager::mkFiniteFieldElem"], [49, 6, 1, "_CPPv4N4cvc511TermManager17mkFiniteFieldElemERKNSt6stringERK4Sort8uint32_t", "cvc5::TermManager::mkFiniteFieldElem::base"], [49, 6, 1, "_CPPv4N4cvc511TermManager17mkFiniteFieldElemERKNSt6stringERK4Sort8uint32_t", "cvc5::TermManager::mkFiniteFieldElem::sort"], [49, 6, 1, "_CPPv4N4cvc511TermManager17mkFiniteFieldElemERKNSt6stringERK4Sort8uint32_t", "cvc5::TermManager::mkFiniteFieldElem::value"], [49, 5, 1, "_CPPv4N4cvc511TermManager17mkFiniteFieldSortERKNSt6stringE8uint32_t", "cvc5::TermManager::mkFiniteFieldSort"], [49, 6, 1, "_CPPv4N4cvc511TermManager17mkFiniteFieldSortERKNSt6stringE8uint32_t", "cvc5::TermManager::mkFiniteFieldSort::base"], [49, 6, 1, "_CPPv4N4cvc511TermManager17mkFiniteFieldSortERKNSt6stringE8uint32_t", "cvc5::TermManager::mkFiniteFieldSort::size"], [49, 5, 1, "_CPPv4N4cvc511TermManager15mkFloatingPointE8uint32_t8uint32_tRK4Term", "cvc5::TermManager::mkFloatingPoint"], [49, 5, 1, "_CPPv4N4cvc511TermManager15mkFloatingPointERK4TermRK4TermRK4Term", "cvc5::TermManager::mkFloatingPoint"], [49, 6, 1, "_CPPv4N4cvc511TermManager15mkFloatingPointE8uint32_t8uint32_tRK4Term", "cvc5::TermManager::mkFloatingPoint::exp"], [49, 6, 1, "_CPPv4N4cvc511TermManager15mkFloatingPointERK4TermRK4TermRK4Term", "cvc5::TermManager::mkFloatingPoint::exp"], [49, 6, 1, "_CPPv4N4cvc511TermManager15mkFloatingPointE8uint32_t8uint32_tRK4Term", "cvc5::TermManager::mkFloatingPoint::sig"], [49, 6, 1, "_CPPv4N4cvc511TermManager15mkFloatingPointERK4TermRK4TermRK4Term", "cvc5::TermManager::mkFloatingPoint::sig"], [49, 6, 1, "_CPPv4N4cvc511TermManager15mkFloatingPointERK4TermRK4TermRK4Term", "cvc5::TermManager::mkFloatingPoint::sign"], [49, 6, 1, "_CPPv4N4cvc511TermManager15mkFloatingPointE8uint32_t8uint32_tRK4Term", "cvc5::TermManager::mkFloatingPoint::val"], [49, 5, 1, "_CPPv4N4cvc511TermManager18mkFloatingPointNaNE8uint32_t8uint32_t", "cvc5::TermManager::mkFloatingPointNaN"], [49, 6, 1, "_CPPv4N4cvc511TermManager18mkFloatingPointNaNE8uint32_t8uint32_t", "cvc5::TermManager::mkFloatingPointNaN::exp"], [49, 6, 1, "_CPPv4N4cvc511TermManager18mkFloatingPointNaNE8uint32_t8uint32_t", "cvc5::TermManager::mkFloatingPointNaN::sig"], [49, 5, 1, "_CPPv4N4cvc511TermManager21mkFloatingPointNegInfE8uint32_t8uint32_t", "cvc5::TermManager::mkFloatingPointNegInf"], [49, 6, 1, "_CPPv4N4cvc511TermManager21mkFloatingPointNegInfE8uint32_t8uint32_t", "cvc5::TermManager::mkFloatingPointNegInf::exp"], [49, 6, 1, "_CPPv4N4cvc511TermManager21mkFloatingPointNegInfE8uint32_t8uint32_t", "cvc5::TermManager::mkFloatingPointNegInf::sig"], [49, 5, 1, "_CPPv4N4cvc511TermManager22mkFloatingPointNegZeroE8uint32_t8uint32_t", "cvc5::TermManager::mkFloatingPointNegZero"], [49, 6, 1, "_CPPv4N4cvc511TermManager22mkFloatingPointNegZeroE8uint32_t8uint32_t", "cvc5::TermManager::mkFloatingPointNegZero::exp"], [49, 6, 1, "_CPPv4N4cvc511TermManager22mkFloatingPointNegZeroE8uint32_t8uint32_t", "cvc5::TermManager::mkFloatingPointNegZero::sig"], [49, 5, 1, "_CPPv4N4cvc511TermManager21mkFloatingPointPosInfE8uint32_t8uint32_t", "cvc5::TermManager::mkFloatingPointPosInf"], [49, 6, 1, "_CPPv4N4cvc511TermManager21mkFloatingPointPosInfE8uint32_t8uint32_t", "cvc5::TermManager::mkFloatingPointPosInf::exp"], [49, 6, 1, "_CPPv4N4cvc511TermManager21mkFloatingPointPosInfE8uint32_t8uint32_t", "cvc5::TermManager::mkFloatingPointPosInf::sig"], [49, 5, 1, "_CPPv4N4cvc511TermManager22mkFloatingPointPosZeroE8uint32_t8uint32_t", "cvc5::TermManager::mkFloatingPointPosZero"], [49, 6, 1, "_CPPv4N4cvc511TermManager22mkFloatingPointPosZeroE8uint32_t8uint32_t", "cvc5::TermManager::mkFloatingPointPosZero::exp"], [49, 6, 1, "_CPPv4N4cvc511TermManager22mkFloatingPointPosZeroE8uint32_t8uint32_t", "cvc5::TermManager::mkFloatingPointPosZero::sig"], [49, 5, 1, "_CPPv4N4cvc511TermManager19mkFloatingPointSortE8uint32_t8uint32_t", "cvc5::TermManager::mkFloatingPointSort"], [49, 6, 1, "_CPPv4N4cvc511TermManager19mkFloatingPointSortE8uint32_t8uint32_t", "cvc5::TermManager::mkFloatingPointSort::exp"], [49, 6, 1, "_CPPv4N4cvc511TermManager19mkFloatingPointSortE8uint32_t8uint32_t", "cvc5::TermManager::mkFloatingPointSort::sig"], [49, 5, 1, "_CPPv4N4cvc511TermManager14mkFunctionSortERKNSt6vectorI4SortEERK4Sort", "cvc5::TermManager::mkFunctionSort"], [49, 6, 1, "_CPPv4N4cvc511TermManager14mkFunctionSortERKNSt6vectorI4SortEERK4Sort", "cvc5::TermManager::mkFunctionSort::codomain"], [49, 6, 1, "_CPPv4N4cvc511TermManager14mkFunctionSortERKNSt6vectorI4SortEERK4Sort", "cvc5::TermManager::mkFunctionSort::sorts"], [49, 5, 1, "_CPPv4N4cvc511TermManager9mkIntegerE7int64_t", "cvc5::TermManager::mkInteger"], [49, 5, 1, "_CPPv4N4cvc511TermManager9mkIntegerERKNSt6stringE", "cvc5::TermManager::mkInteger"], [49, 6, 1, "_CPPv4N4cvc511TermManager9mkIntegerERKNSt6stringE", "cvc5::TermManager::mkInteger::s"], [49, 6, 1, "_CPPv4N4cvc511TermManager9mkIntegerE7int64_t", "cvc5::TermManager::mkInteger::val"], [49, 5, 1, "_CPPv4N4cvc511TermManager16mkNullableIsNullERK4Term", "cvc5::TermManager::mkNullableIsNull"], [49, 6, 1, "_CPPv4N4cvc511TermManager16mkNullableIsNullERK4Term", "cvc5::TermManager::mkNullableIsNull::term"], [49, 5, 1, "_CPPv4N4cvc511TermManager16mkNullableIsSomeERK4Term", "cvc5::TermManager::mkNullableIsSome"], [49, 6, 1, "_CPPv4N4cvc511TermManager16mkNullableIsSomeERK4Term", "cvc5::TermManager::mkNullableIsSome::term"], [49, 5, 1, "_CPPv4N4cvc511TermManager14mkNullableLiftE4KindRKNSt6vectorI4TermEE", "cvc5::TermManager::mkNullableLift"], [49, 6, 1, "_CPPv4N4cvc511TermManager14mkNullableLiftE4KindRKNSt6vectorI4TermEE", "cvc5::TermManager::mkNullableLift::args"], [49, 6, 1, "_CPPv4N4cvc511TermManager14mkNullableLiftE4KindRKNSt6vectorI4TermEE", "cvc5::TermManager::mkNullableLift::kind"], [49, 5, 1, "_CPPv4N4cvc511TermManager14mkNullableNullERK4Sort", "cvc5::TermManager::mkNullableNull"], [49, 6, 1, "_CPPv4N4cvc511TermManager14mkNullableNullERK4Sort", "cvc5::TermManager::mkNullableNull::sort"], [49, 5, 1, "_CPPv4N4cvc511TermManager14mkNullableSomeERK4Term", "cvc5::TermManager::mkNullableSome"], [49, 6, 1, "_CPPv4N4cvc511TermManager14mkNullableSomeERK4Term", "cvc5::TermManager::mkNullableSome::term"], [49, 5, 1, "_CPPv4N4cvc511TermManager14mkNullableSortERK4Sort", "cvc5::TermManager::mkNullableSort"], [49, 6, 1, "_CPPv4N4cvc511TermManager14mkNullableSortERK4Sort", "cvc5::TermManager::mkNullableSort::sort"], [49, 5, 1, "_CPPv4N4cvc511TermManager13mkNullableValERK4Term", "cvc5::TermManager::mkNullableVal"], [49, 6, 1, "_CPPv4N4cvc511TermManager13mkNullableValERK4Term", "cvc5::TermManager::mkNullableVal::term"], [49, 5, 1, "_CPPv4N4cvc511TermManager4mkOpE4KindRKNSt6stringE", "cvc5::TermManager::mkOp"], [49, 5, 1, "_CPPv4N4cvc511TermManager4mkOpE4KindRKNSt6vectorI8uint32_tEE", "cvc5::TermManager::mkOp"], [49, 6, 1, "_CPPv4N4cvc511TermManager4mkOpE4KindRKNSt6stringE", "cvc5::TermManager::mkOp::arg"], [49, 6, 1, "_CPPv4N4cvc511TermManager4mkOpE4KindRKNSt6vectorI8uint32_tEE", "cvc5::TermManager::mkOp::args"], [49, 6, 1, "_CPPv4N4cvc511TermManager4mkOpE4KindRKNSt6stringE", "cvc5::TermManager::mkOp::kind"], [49, 6, 1, "_CPPv4N4cvc511TermManager4mkOpE4KindRKNSt6vectorI8uint32_tEE", "cvc5::TermManager::mkOp::kind"], [49, 5, 1, "_CPPv4N4cvc511TermManager11mkParamSortERKNSt8optionalINSt6stringEEE", "cvc5::TermManager::mkParamSort"], [49, 6, 1, "_CPPv4N4cvc511TermManager11mkParamSortERKNSt8optionalINSt6stringEEE", "cvc5::TermManager::mkParamSort::symbol"], [49, 5, 1, "_CPPv4N4cvc511TermManager4mkPiEv", "cvc5::TermManager::mkPi"], [49, 5, 1, "_CPPv4N4cvc511TermManager15mkPredicateSortERKNSt6vectorI4SortEE", "cvc5::TermManager::mkPredicateSort"], [49, 6, 1, "_CPPv4N4cvc511TermManager15mkPredicateSortERKNSt6vectorI4SortEE", "cvc5::TermManager::mkPredicateSort::sorts"], [49, 5, 1, "_CPPv4N4cvc511TermManager6mkRealE7int64_t", "cvc5::TermManager::mkReal"], [49, 5, 1, "_CPPv4N4cvc511TermManager6mkRealE7int64_t7int64_t", "cvc5::TermManager::mkReal"], [49, 5, 1, "_CPPv4N4cvc511TermManager6mkRealERKNSt6stringE", "cvc5::TermManager::mkReal"], [49, 6, 1, "_CPPv4N4cvc511TermManager6mkRealE7int64_t7int64_t", "cvc5::TermManager::mkReal::den"], [49, 6, 1, "_CPPv4N4cvc511TermManager6mkRealE7int64_t7int64_t", "cvc5::TermManager::mkReal::num"], [49, 6, 1, "_CPPv4N4cvc511TermManager6mkRealERKNSt6stringE", "cvc5::TermManager::mkReal::s"], [49, 6, 1, "_CPPv4N4cvc511TermManager6mkRealE7int64_t", "cvc5::TermManager::mkReal::val"], [49, 5, 1, "_CPPv4N4cvc511TermManager12mkRecordSortERKNSt6vectorINSt4pairINSt6stringE4SortEEEE", "cvc5::TermManager::mkRecordSort"], [49, 6, 1, "_CPPv4N4cvc511TermManager12mkRecordSortERKNSt6vectorINSt4pairINSt6stringE4SortEEEE", "cvc5::TermManager::mkRecordSort::fields"], [49, 5, 1, "_CPPv4N4cvc511TermManager11mkRegexpAllEv", "cvc5::TermManager::mkRegexpAll"], [49, 5, 1, "_CPPv4N4cvc511TermManager15mkRegexpAllcharEv", "cvc5::TermManager::mkRegexpAllchar"], [49, 5, 1, "_CPPv4N4cvc511TermManager12mkRegexpNoneEv", "cvc5::TermManager::mkRegexpNone"], [49, 5, 1, "_CPPv4N4cvc511TermManager14mkRoundingModeE12RoundingMode", "cvc5::TermManager::mkRoundingMode"], [49, 6, 1, "_CPPv4N4cvc511TermManager14mkRoundingModeE12RoundingMode", "cvc5::TermManager::mkRoundingMode::rm"], [49, 5, 1, "_CPPv4N4cvc511TermManager8mkSepEmpEv", "cvc5::TermManager::mkSepEmp"], [49, 5, 1, "_CPPv4N4cvc511TermManager8mkSepNilERK4Sort", "cvc5::TermManager::mkSepNil"], [49, 6, 1, "_CPPv4N4cvc511TermManager8mkSepNilERK4Sort", "cvc5::TermManager::mkSepNil::sort"], [49, 5, 1, "_CPPv4N4cvc511TermManager14mkSequenceSortERK4Sort", "cvc5::TermManager::mkSequenceSort"], [49, 6, 1, "_CPPv4N4cvc511TermManager14mkSequenceSortERK4Sort", "cvc5::TermManager::mkSequenceSort::elemSort"], [49, 5, 1, "_CPPv4N4cvc511TermManager9mkSetSortERK4Sort", "cvc5::TermManager::mkSetSort"], [49, 6, 1, "_CPPv4N4cvc511TermManager9mkSetSortERK4Sort", "cvc5::TermManager::mkSetSort::elemSort"], [49, 5, 1, "_CPPv4N4cvc511TermManager8mkSkolemE8SkolemIdRKNSt6vectorI4TermEE", "cvc5::TermManager::mkSkolem"], [49, 6, 1, "_CPPv4N4cvc511TermManager8mkSkolemE8SkolemIdRKNSt6vectorI4TermEE", "cvc5::TermManager::mkSkolem::id"], [49, 6, 1, "_CPPv4N4cvc511TermManager8mkSkolemE8SkolemIdRKNSt6vectorI4TermEE", "cvc5::TermManager::mkSkolem::indices"], [49, 5, 1, "_CPPv4N4cvc511TermManager8mkStringERKNSt6stringEb", "cvc5::TermManager::mkString"], [49, 5, 1, "_CPPv4N4cvc511TermManager8mkStringERKNSt7wstringE", "cvc5::TermManager::mkString"], [49, 6, 1, "_CPPv4N4cvc511TermManager8mkStringERKNSt6stringEb", "cvc5::TermManager::mkString::s"], [49, 6, 1, "_CPPv4N4cvc511TermManager8mkStringERKNSt7wstringE", "cvc5::TermManager::mkString::s"], [49, 6, 1, "_CPPv4N4cvc511TermManager8mkStringERKNSt6stringEb", "cvc5::TermManager::mkString::useEscSequences"], [49, 5, 1, "_CPPv4N4cvc511TermManager6mkTermE4KindRKNSt6vectorI4TermEE", "cvc5::TermManager::mkTerm"], [49, 5, 1, "_CPPv4N4cvc511TermManager6mkTermERK2OpRKNSt6vectorI4TermEE", "cvc5::TermManager::mkTerm"], [49, 6, 1, "_CPPv4N4cvc511TermManager6mkTermE4KindRKNSt6vectorI4TermEE", "cvc5::TermManager::mkTerm::children"], [49, 6, 1, "_CPPv4N4cvc511TermManager6mkTermERK2OpRKNSt6vectorI4TermEE", "cvc5::TermManager::mkTerm::children"], [49, 6, 1, "_CPPv4N4cvc511TermManager6mkTermE4KindRKNSt6vectorI4TermEE", "cvc5::TermManager::mkTerm::kind"], [49, 6, 1, "_CPPv4N4cvc511TermManager6mkTermERK2OpRKNSt6vectorI4TermEE", "cvc5::TermManager::mkTerm::op"], [49, 5, 1, "_CPPv4N4cvc511TermManager6mkTrueEv", "cvc5::TermManager::mkTrue"], [49, 5, 1, "_CPPv4N4cvc511TermManager7mkTupleERKNSt6vectorI4TermEE", "cvc5::TermManager::mkTuple"], [49, 6, 1, "_CPPv4N4cvc511TermManager7mkTupleERKNSt6vectorI4TermEE", "cvc5::TermManager::mkTuple::terms"], [49, 5, 1, "_CPPv4N4cvc511TermManager11mkTupleSortERKNSt6vectorI4SortEE", "cvc5::TermManager::mkTupleSort"], [49, 6, 1, "_CPPv4N4cvc511TermManager11mkTupleSortERKNSt6vectorI4SortEE", "cvc5::TermManager::mkTupleSort::sorts"], [49, 5, 1, "_CPPv4N4cvc511TermManager19mkUninterpretedSortERKNSt8optionalINSt6stringEEE", "cvc5::TermManager::mkUninterpretedSort"], [49, 6, 1, "_CPPv4N4cvc511TermManager19mkUninterpretedSortERKNSt8optionalINSt6stringEEE", "cvc5::TermManager::mkUninterpretedSort::symbol"], [49, 5, 1, "_CPPv4N4cvc511TermManager34mkUninterpretedSortConstructorSortE6size_tRKNSt8optionalINSt6stringEEE", "cvc5::TermManager::mkUninterpretedSortConstructorSort"], [49, 6, 1, "_CPPv4N4cvc511TermManager34mkUninterpretedSortConstructorSortE6size_tRKNSt8optionalINSt6stringEEE", "cvc5::TermManager::mkUninterpretedSortConstructorSort::arity"], [49, 6, 1, "_CPPv4N4cvc511TermManager34mkUninterpretedSortConstructorSortE6size_tRKNSt8optionalINSt6stringEEE", "cvc5::TermManager::mkUninterpretedSortConstructorSort::symbol"], [49, 5, 1, "_CPPv4N4cvc511TermManager13mkUniverseSetERK4Sort", "cvc5::TermManager::mkUniverseSet"], [49, 6, 1, "_CPPv4N4cvc511TermManager13mkUniverseSetERK4Sort", "cvc5::TermManager::mkUniverseSet::sort"], [49, 5, 1, "_CPPv4N4cvc511TermManager24mkUnresolvedDatatypeSortERKNSt6stringE6size_t", "cvc5::TermManager::mkUnresolvedDatatypeSort"], [49, 6, 1, "_CPPv4N4cvc511TermManager24mkUnresolvedDatatypeSortERKNSt6stringE6size_t", "cvc5::TermManager::mkUnresolvedDatatypeSort::arity"], [49, 6, 1, "_CPPv4N4cvc511TermManager24mkUnresolvedDatatypeSortERKNSt6stringE6size_t", "cvc5::TermManager::mkUnresolvedDatatypeSort::symbol"], [49, 5, 1, "_CPPv4N4cvc511TermManager5mkVarERK4SortRKNSt8optionalINSt6stringEEE", "cvc5::TermManager::mkVar"], [49, 6, 1, "_CPPv4N4cvc511TermManager5mkVarERK4SortRKNSt8optionalINSt6stringEEE", "cvc5::TermManager::mkVar::sort"], [49, 6, 1, "_CPPv4N4cvc511TermManager5mkVarERK4SortRKNSt8optionalINSt6stringEEE", "cvc5::TermManager::mkVar::symbol"], [49, 5, 1, "_CPPv4NK4cvc511TermManager19printStatisticsSafeEi", "cvc5::TermManager::printStatisticsSafe"], [49, 6, 1, "_CPPv4NK4cvc511TermManager19printStatisticsSafeEi", "cvc5::TermManager::printStatisticsSafe::fd"], [49, 5, 1, "_CPPv4N4cvc511TermManagerD0Ev", "cvc5::TermManager::~TermManager"], [56, 2, 1, "_CPPv4N4cvc518UnknownExplanationE", "cvc5::UnknownExplanation"], [56, 0, 1, "_CPPv4N4cvc518UnknownExplanation10INCOMPLETEE", "cvc5::UnknownExplanation::INCOMPLETE"], [56, 0, 1, "_CPPv4N4cvc518UnknownExplanation11INTERRUPTEDE", "cvc5::UnknownExplanation::INTERRUPTED"], [56, 0, 1, "_CPPv4N4cvc518UnknownExplanation6MEMOUTE", "cvc5::UnknownExplanation::MEMOUT"], [56, 0, 1, "_CPPv4N4cvc518UnknownExplanation5OTHERE", "cvc5::UnknownExplanation::OTHER"], [56, 0, 1, "_CPPv4N4cvc518UnknownExplanation20REQUIRES_CHECK_AGAINE", "cvc5::UnknownExplanation::REQUIRES_CHECK_AGAIN"], [56, 0, 1, "_CPPv4N4cvc518UnknownExplanation19REQUIRES_FULL_CHECKE", "cvc5::UnknownExplanation::REQUIRES_FULL_CHECK"], [56, 0, 1, "_CPPv4N4cvc518UnknownExplanation11RESOURCEOUTE", "cvc5::UnknownExplanation::RESOURCEOUT"], [56, 0, 1, "_CPPv4N4cvc518UnknownExplanation7TIMEOUTE", "cvc5::UnknownExplanation::TIMEOUT"], [56, 0, 1, "_CPPv4N4cvc518UnknownExplanation14UNKNOWN_REASONE", "cvc5::UnknownExplanation::UNKNOWN_REASON"], [56, 0, 1, "_CPPv4N4cvc518UnknownExplanation11UNSUPPORTEDE", "cvc5::UnknownExplanation::UNSUPPORTED"], [52, 2, 1, "_CPPv4N4cvc55modes15BlockModelsModeE", "cvc5::modes::BlockModelsMode"], [52, 0, 1, "_CPPv4N4cvc55modes15BlockModelsMode8LITERALSE", "cvc5::modes::BlockModelsMode::LITERALS"], [52, 0, 1, "_CPPv4N4cvc55modes15BlockModelsMode6VALUESE", "cvc5::modes::BlockModelsMode::VALUES"], [52, 2, 1, "_CPPv4N4cvc55modes15FindSynthTargetE", "cvc5::modes::FindSynthTarget"], [52, 0, 1, "_CPPv4N4cvc55modes15FindSynthTarget4ENUME", "cvc5::modes::FindSynthTarget::ENUM"], [52, 0, 1, "_CPPv4N4cvc55modes15FindSynthTarget5QUERYE", "cvc5::modes::FindSynthTarget::QUERY"], [52, 0, 1, "_CPPv4N4cvc55modes15FindSynthTarget7REWRITEE", "cvc5::modes::FindSynthTarget::REWRITE"], [52, 0, 1, "_CPPv4N4cvc55modes15FindSynthTarget13REWRITE_INPUTE", "cvc5::modes::FindSynthTarget::REWRITE_INPUT"], [52, 0, 1, "_CPPv4N4cvc55modes15FindSynthTarget15REWRITE_UNSOUNDE", "cvc5::modes::FindSynthTarget::REWRITE_UNSOUND"], [52, 2, 1, "_CPPv4N4cvc55modes14LearnedLitTypeE", "cvc5::modes::LearnedLitType"], [52, 0, 1, "_CPPv4N4cvc55modes14LearnedLitType13CONSTANT_PROPE", "cvc5::modes::LearnedLitType::CONSTANT_PROP"], [52, 0, 1, "_CPPv4N4cvc55modes14LearnedLitType5INPUTE", "cvc5::modes::LearnedLitType::INPUT"], [52, 0, 1, "_CPPv4N4cvc55modes14LearnedLitType8INTERNALE", "cvc5::modes::LearnedLitType::INTERNAL"], [52, 0, 1, "_CPPv4N4cvc55modes14LearnedLitType10PREPROCESSE", "cvc5::modes::LearnedLitType::PREPROCESS"], [52, 0, 1, "_CPPv4N4cvc55modes14LearnedLitType17PREPROCESS_SOLVEDE", "cvc5::modes::LearnedLitType::PREPROCESS_SOLVED"], [52, 0, 1, "_CPPv4N4cvc55modes14LearnedLitType8SOLVABLEE", "cvc5::modes::LearnedLitType::SOLVABLE"], [52, 0, 1, "_CPPv4N4cvc55modes14LearnedLitType7UNKNOWNE", "cvc5::modes::LearnedLitType::UNKNOWN"], [52, 2, 1, "_CPPv4N4cvc55modes14ProofComponentE", "cvc5::modes::ProofComponent"], [52, 0, 1, "_CPPv4N4cvc55modes14ProofComponent4FULLE", "cvc5::modes::ProofComponent::FULL"], [52, 0, 1, "_CPPv4N4cvc55modes14ProofComponent10PREPROCESSE", "cvc5::modes::ProofComponent::PREPROCESS"], [52, 0, 1, "_CPPv4N4cvc55modes14ProofComponent14RAW_PREPROCESSE", "cvc5::modes::ProofComponent::RAW_PREPROCESS"], [52, 0, 1, "_CPPv4N4cvc55modes14ProofComponent3SATE", "cvc5::modes::ProofComponent::SAT"], [52, 0, 1, "_CPPv4N4cvc55modes14ProofComponent13THEORY_LEMMASE", "cvc5::modes::ProofComponent::THEORY_LEMMAS"], [52, 2, 1, "_CPPv4N4cvc55modes11ProofFormatE", "cvc5::modes::ProofFormat"], [52, 0, 1, "_CPPv4N4cvc55modes11ProofFormat6ALETHEE", "cvc5::modes::ProofFormat::ALETHE"], [52, 0, 1, "_CPPv4N4cvc55modes11ProofFormat3CPCE", "cvc5::modes::ProofFormat::CPC"], [52, 0, 1, "_CPPv4N4cvc55modes11ProofFormat7DEFAULTE", "cvc5::modes::ProofFormat::DEFAULT"], [52, 0, 1, "_CPPv4N4cvc55modes11ProofFormat3DOTE", "cvc5::modes::ProofFormat::DOT"], [52, 0, 1, "_CPPv4N4cvc55modes11ProofFormat4LFSCE", "cvc5::modes::ProofFormat::LFSC"], [52, 0, 1, "_CPPv4N4cvc55modes11ProofFormat4NONEE", "cvc5::modes::ProofFormat::NONE"], [52, 5, 1, "_CPPv4N4cvc55modeslsERNSt7ostreamE11ProofFormat", "cvc5::modes::operator<<"], [52, 5, 1, "_CPPv4N4cvc55modeslsERNSt7ostreamE14LearnedLitType", "cvc5::modes::operator<<"], [52, 5, 1, "_CPPv4N4cvc55modeslsERNSt7ostreamE14ProofComponent", "cvc5::modes::operator<<"], [52, 5, 1, "_CPPv4N4cvc55modeslsERNSt7ostreamE15BlockModelsMode", "cvc5::modes::operator<<"], [52, 5, 1, "_CPPv4N4cvc55modeslsERNSt7ostreamE15FindSynthTarget", "cvc5::modes::operator<<"], [52, 6, 1, "_CPPv4N4cvc55modeslsERNSt7ostreamE11ProofFormat", "cvc5::modes::operator<<::format"], [52, 6, 1, "_CPPv4N4cvc55modeslsERNSt7ostreamE15BlockModelsMode", "cvc5::modes::operator<<::mode"], [52, 6, 1, "_CPPv4N4cvc55modeslsERNSt7ostreamE11ProofFormat", "cvc5::modes::operator<<::out"], [52, 6, 1, "_CPPv4N4cvc55modeslsERNSt7ostreamE14LearnedLitType", "cvc5::modes::operator<<::out"], [52, 6, 1, "_CPPv4N4cvc55modeslsERNSt7ostreamE14ProofComponent", "cvc5::modes::operator<<::out"], [52, 6, 1, "_CPPv4N4cvc55modeslsERNSt7ostreamE15BlockModelsMode", "cvc5::modes::operator<<::out"], [52, 6, 1, "_CPPv4N4cvc55modeslsERNSt7ostreamE15FindSynthTarget", "cvc5::modes::operator<<::out"], [52, 6, 1, "_CPPv4N4cvc55modeslsERNSt7ostreamE14ProofComponent", "cvc5::modes::operator<<::pc"], [52, 6, 1, "_CPPv4N4cvc55modeslsERNSt7ostreamE15FindSynthTarget", "cvc5::modes::operator<<::target"], [52, 6, 1, "_CPPv4N4cvc55modeslsERNSt7ostreamE14LearnedLitType", "cvc5::modes::operator<<::type"], [30, 5, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK8Datatype", "cvc5::operator<<"], [31, 5, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK19DatatypeConstructor", "cvc5::operator<<"], [32, 5, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK23DatatypeConstructorDecl", "cvc5::operator<<"], [32, 5, 1, "_CPPv4N4cvc5lsERNSt7ostreamERKNSt6vectorI23DatatypeConstructorDeclEE", "cvc5::operator<<"], [33, 5, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK12DatatypeDecl", "cvc5::operator<<"], [34, 5, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK16DatatypeSelector", "cvc5::operator<<"], [36, 5, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK7Grammar", "cvc5::operator<<"], [38, 5, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK2Op", "cvc5::operator<<"], [39, 5, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK10OptionInfo", "cvc5::operator<<"], [42, 5, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK6Result", "cvc5::operator<<"], [44, 5, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK4Sort", "cvc5::operator<<"], [45, 5, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK10Statistics", "cvc5::operator<<"], [45, 5, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK4Stat", "cvc5::operator<<"], [47, 5, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK11SynthResult", "cvc5::operator<<"], [48, 5, 1, "_CPPv4I0EN4cvc5lsERNSt7ostreamERNSt7ostreamERKNSt13unordered_mapI4Term1VEE", "cvc5::operator<<"], [48, 5, 1, "_CPPv4I0EN4cvc5lsERNSt7ostreamERNSt7ostreamERKNSt3mapI4Term1VEE", "cvc5::operator<<"], [48, 5, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK4Term", "cvc5::operator<<"], [48, 5, 1, "_CPPv4N4cvc5lsERNSt7ostreamERKNSt13unordered_setI4TermEE", "cvc5::operator<<"], [48, 5, 1, "_CPPv4N4cvc5lsERNSt7ostreamERKNSt3setI4TermEE", "cvc5::operator<<"], [48, 5, 1, "_CPPv4N4cvc5lsERNSt7ostreamERKNSt6vectorI4TermEE", "cvc5::operator<<"], [51, 5, 1, "_CPPv4N4cvc5lsERNSt7ostreamE4Kind", "cvc5::operator<<"], [53, 5, 1, "_CPPv4N4cvc5lsERNSt7ostreamE16ProofRewriteRule", "cvc5::operator<<"], [53, 5, 1, "_CPPv4N4cvc5lsERNSt7ostreamE9ProofRule", "cvc5::operator<<"], [54, 5, 1, "_CPPv4N4cvc5lsERNSt7ostreamE12RoundingMode", "cvc5::operator<<"], [55, 5, 1, "_CPPv4N4cvc5lsERNSt7ostreamE8SortKind", "cvc5::operator<<"], [56, 5, 1, "_CPPv4N4cvc5lsERNSt7ostreamE18UnknownExplanation", "cvc5::operator<<"], [48, 7, 1, "_CPPv4I0EN4cvc5lsERNSt7ostreamERNSt7ostreamERKNSt13unordered_mapI4Term1VEE", "cvc5::operator<<::V"], [48, 7, 1, "_CPPv4I0EN4cvc5lsERNSt7ostreamERNSt7ostreamERKNSt3mapI4Term1VEE", "cvc5::operator<<::V"], [31, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK19DatatypeConstructor", "cvc5::operator<<::ctor"], [32, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK23DatatypeConstructorDecl", "cvc5::operator<<::ctordecl"], [33, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK12DatatypeDecl", "cvc5::operator<<::dtdecl"], [30, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK8Datatype", "cvc5::operator<<::dtype"], [56, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamE18UnknownExplanation", "cvc5::operator<<::e"], [36, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK7Grammar", "cvc5::operator<<::grammar"], [55, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamE8SortKind", "cvc5::operator<<::k"], [51, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamE4Kind", "cvc5::operator<<::kind"], [48, 6, 1, "_CPPv4I0EN4cvc5lsERNSt7ostreamERNSt7ostreamERKNSt3mapI4Term1VEE", "cvc5::operator<<::map"], [39, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK10OptionInfo", "cvc5::operator<<::oi"], [38, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK2Op", "cvc5::operator<<::op"], [39, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK10OptionInfo", "cvc5::operator<<::os"], [45, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK4Stat", "cvc5::operator<<::os"], [30, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK8Datatype", "cvc5::operator<<::out"], [31, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK19DatatypeConstructor", "cvc5::operator<<::out"], [32, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK23DatatypeConstructorDecl", "cvc5::operator<<::out"], [32, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERKNSt6vectorI23DatatypeConstructorDeclEE", "cvc5::operator<<::out"], [33, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK12DatatypeDecl", "cvc5::operator<<::out"], [34, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK16DatatypeSelector", "cvc5::operator<<::out"], [36, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK7Grammar", "cvc5::operator<<::out"], [38, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK2Op", "cvc5::operator<<::out"], [42, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK6Result", "cvc5::operator<<::out"], [44, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK4Sort", "cvc5::operator<<::out"], [45, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK10Statistics", "cvc5::operator<<::out"], [47, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK11SynthResult", "cvc5::operator<<::out"], [48, 6, 1, "_CPPv4I0EN4cvc5lsERNSt7ostreamERNSt7ostreamERKNSt13unordered_mapI4Term1VEE", "cvc5::operator<<::out"], [48, 6, 1, "_CPPv4I0EN4cvc5lsERNSt7ostreamERNSt7ostreamERKNSt3mapI4Term1VEE", "cvc5::operator<<::out"], [48, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK4Term", "cvc5::operator<<::out"], [48, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERKNSt13unordered_setI4TermEE", "cvc5::operator<<::out"], [48, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERKNSt3setI4TermEE", "cvc5::operator<<::out"], [48, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERKNSt6vectorI4TermEE", "cvc5::operator<<::out"], [51, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamE4Kind", "cvc5::operator<<::out"], [53, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamE16ProofRewriteRule", "cvc5::operator<<::out"], [53, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamE9ProofRule", "cvc5::operator<<::out"], [54, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamE12RoundingMode", "cvc5::operator<<::out"], [55, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamE8SortKind", "cvc5::operator<<::out"], [56, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamE18UnknownExplanation", "cvc5::operator<<::out"], [42, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK6Result", "cvc5::operator<<::r"], [47, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK11SynthResult", "cvc5::operator<<::r"], [54, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamE12RoundingMode", "cvc5::operator<<::rm"], [53, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamE16ProofRewriteRule", "cvc5::operator<<::rule"], [53, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamE9ProofRule", "cvc5::operator<<::rule"], [44, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK4Sort", "cvc5::operator<<::s"], [48, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERKNSt3setI4TermEE", "cvc5::operator<<::set"], [45, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK4Stat", "cvc5::operator<<::stat"], [45, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK10Statistics", "cvc5::operator<<::stats"], [34, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK16DatatypeSelector", "cvc5::operator<<::stor"], [48, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK4Term", "cvc5::operator<<::t"], [48, 6, 1, "_CPPv4I0EN4cvc5lsERNSt7ostreamERNSt7ostreamERKNSt13unordered_mapI4Term1VEE", "cvc5::operator<<::unordered_map"], [48, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERKNSt13unordered_setI4TermEE", "cvc5::operator<<::unordered_set"], [32, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERKNSt6vectorI23DatatypeConstructorDeclEE", "cvc5::operator<<::vector"], [48, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERKNSt6vectorI4TermEE", "cvc5::operator<<::vector"], [29, 3, 1, "_CPPv4N4cvc56parser7CommandE", "cvc5::parser::Command"], [29, 5, 1, "_CPPv4N4cvc56parser7Command7CommandEv", "cvc5::parser::Command::Command"], [29, 5, 1, "_CPPv4NK4cvc56parser7Command14getCommandNameEv", "cvc5::parser::Command::getCommandName"], [29, 5, 1, "_CPPv4N4cvc56parser7Command6invokeEPN4cvc56SolverEPN6parser13SymbolManagerERNSt7ostreamE", "cvc5::parser::Command::invoke"], [29, 6, 1, "_CPPv4N4cvc56parser7Command6invokeEPN4cvc56SolverEPN6parser13SymbolManagerERNSt7ostreamE", "cvc5::parser::Command::invoke::out"], [29, 6, 1, "_CPPv4N4cvc56parser7Command6invokeEPN4cvc56SolverEPN6parser13SymbolManagerERNSt7ostreamE", "cvc5::parser::Command::invoke::sm"], [29, 6, 1, "_CPPv4N4cvc56parser7Command6invokeEPN4cvc56SolverEPN6parser13SymbolManagerERNSt7ostreamE", "cvc5::parser::Command::invoke::solver"], [29, 5, 1, "_CPPv4NK4cvc56parser7Command6isNullEv", "cvc5::parser::Command::isNull"], [29, 5, 1, "_CPPv4NK4cvc56parser7Command8toStringEv", "cvc5::parser::Command::toString"], [37, 3, 1, "_CPPv4N4cvc56parser11InputParserE", "cvc5::parser::InputParser"], [37, 5, 1, "_CPPv4N4cvc56parser11InputParser11InputParserEP6Solver", "cvc5::parser::InputParser::InputParser"], [37, 5, 1, "_CPPv4N4cvc56parser11InputParser11InputParserEP6SolverP13SymbolManager", "cvc5::parser::InputParser::InputParser"], [37, 6, 1, "_CPPv4N4cvc56parser11InputParser11InputParserEP6SolverP13SymbolManager", "cvc5::parser::InputParser::InputParser::sm"], [37, 6, 1, "_CPPv4N4cvc56parser11InputParser11InputParserEP6Solver", "cvc5::parser::InputParser::InputParser::solver"], [37, 6, 1, "_CPPv4N4cvc56parser11InputParser11InputParserEP6SolverP13SymbolManager", "cvc5::parser::InputParser::InputParser::solver"], [37, 5, 1, "_CPPv4N4cvc56parser11InputParser28appendIncrementalStringInputERKNSt6stringE", "cvc5::parser::InputParser::appendIncrementalStringInput"], [37, 6, 1, "_CPPv4N4cvc56parser11InputParser28appendIncrementalStringInputERKNSt6stringE", "cvc5::parser::InputParser::appendIncrementalStringInput::input"], [37, 5, 1, "_CPPv4NK4cvc56parser11InputParser4doneEv", "cvc5::parser::InputParser::done"], [37, 5, 1, "_CPPv4N4cvc56parser11InputParser9getSolverEv", "cvc5::parser::InputParser::getSolver"], [37, 5, 1, "_CPPv4N4cvc56parser11InputParser16getSymbolManagerEv", "cvc5::parser::InputParser::getSymbolManager"], [37, 5, 1, "_CPPv4N4cvc56parser11InputParser11nextCommandEv", "cvc5::parser::InputParser::nextCommand"], [37, 5, 1, "_CPPv4N4cvc56parser11InputParser8nextTermEv", "cvc5::parser::InputParser::nextTerm"], [37, 5, 1, "_CPPv4N4cvc56parser11InputParser12setFileInputEN5modes13InputLanguageERKNSt6stringE", "cvc5::parser::InputParser::setFileInput"], [37, 6, 1, "_CPPv4N4cvc56parser11InputParser12setFileInputEN5modes13InputLanguageERKNSt6stringE", "cvc5::parser::InputParser::setFileInput::filename"], [37, 6, 1, "_CPPv4N4cvc56parser11InputParser12setFileInputEN5modes13InputLanguageERKNSt6stringE", "cvc5::parser::InputParser::setFileInput::lang"], [37, 5, 1, "_CPPv4N4cvc56parser11InputParser25setIncrementalStringInputEN5modes13InputLanguageERKNSt6stringE", "cvc5::parser::InputParser::setIncrementalStringInput"], [37, 6, 1, "_CPPv4N4cvc56parser11InputParser25setIncrementalStringInputEN5modes13InputLanguageERKNSt6stringE", "cvc5::parser::InputParser::setIncrementalStringInput::lang"], [37, 6, 1, "_CPPv4N4cvc56parser11InputParser25setIncrementalStringInputEN5modes13InputLanguageERKNSt6stringE", "cvc5::parser::InputParser::setIncrementalStringInput::name"], [37, 5, 1, "_CPPv4N4cvc56parser11InputParser14setStreamInputEN5modes13InputLanguageERNSt7istreamERKNSt6stringE", "cvc5::parser::InputParser::setStreamInput"], [37, 6, 1, "_CPPv4N4cvc56parser11InputParser14setStreamInputEN5modes13InputLanguageERNSt7istreamERKNSt6stringE", "cvc5::parser::InputParser::setStreamInput::input"], [37, 6, 1, "_CPPv4N4cvc56parser11InputParser14setStreamInputEN5modes13InputLanguageERNSt7istreamERKNSt6stringE", "cvc5::parser::InputParser::setStreamInput::lang"], [37, 6, 1, "_CPPv4N4cvc56parser11InputParser14setStreamInputEN5modes13InputLanguageERNSt7istreamERKNSt6stringE", "cvc5::parser::InputParser::setStreamInput::name"], [37, 5, 1, "_CPPv4N4cvc56parser11InputParser14setStringInputEN5modes13InputLanguageERKNSt6stringERKNSt6stringE", "cvc5::parser::InputParser::setStringInput"], [37, 6, 1, "_CPPv4N4cvc56parser11InputParser14setStringInputEN5modes13InputLanguageERKNSt6stringERKNSt6stringE", "cvc5::parser::InputParser::setStringInput::input"], [37, 6, 1, "_CPPv4N4cvc56parser11InputParser14setStringInputEN5modes13InputLanguageERKNSt6stringERKNSt6stringE", "cvc5::parser::InputParser::setStringInput::lang"], [37, 6, 1, "_CPPv4N4cvc56parser11InputParser14setStringInputEN5modes13InputLanguageERKNSt6stringERKNSt6stringE", "cvc5::parser::InputParser::setStringInput::name"], [57, 3, 1, "_CPPv4N4cvc56parser15ParserExceptionE", "cvc5::parser::ParserException"], [57, 5, 1, "_CPPv4N4cvc56parser15ParserException15ParserExceptionEPKc", "cvc5::parser::ParserException::ParserException"], [57, 5, 1, "_CPPv4N4cvc56parser15ParserException15ParserExceptionERKNSt6stringE", "cvc5::parser::ParserException::ParserException"], [57, 5, 1, "_CPPv4N4cvc56parser15ParserException15ParserExceptionERKNSt6stringERKNSt6stringEmm", "cvc5::parser::ParserException::ParserException"], [57, 5, 1, "_CPPv4N4cvc56parser15ParserException15ParserExceptionEv", "cvc5::parser::ParserException::ParserException"], [57, 6, 1, "_CPPv4N4cvc56parser15ParserException15ParserExceptionERKNSt6stringERKNSt6stringEmm", "cvc5::parser::ParserException::ParserException::column"], [57, 6, 1, "_CPPv4N4cvc56parser15ParserException15ParserExceptionERKNSt6stringERKNSt6stringEmm", "cvc5::parser::ParserException::ParserException::filename"], [57, 6, 1, "_CPPv4N4cvc56parser15ParserException15ParserExceptionERKNSt6stringERKNSt6stringEmm", "cvc5::parser::ParserException::ParserException::line"], [57, 6, 1, "_CPPv4N4cvc56parser15ParserException15ParserExceptionEPKc", "cvc5::parser::ParserException::ParserException::msg"], [57, 6, 1, "_CPPv4N4cvc56parser15ParserException15ParserExceptionERKNSt6stringE", "cvc5::parser::ParserException::ParserException::msg"], [57, 6, 1, "_CPPv4N4cvc56parser15ParserException15ParserExceptionERKNSt6stringERKNSt6stringEmm", "cvc5::parser::ParserException::ParserException::msg"], [57, 5, 1, "_CPPv4NK4cvc56parser15ParserException9getColumnEv", "cvc5::parser::ParserException::getColumn"], [57, 5, 1, "_CPPv4NK4cvc56parser15ParserException11getFilenameEv", "cvc5::parser::ParserException::getFilename"], [57, 5, 1, "_CPPv4NK4cvc56parser15ParserException7getLineEv", "cvc5::parser::ParserException::getLine"], [57, 5, 1, "_CPPv4NK4cvc56parser15ParserException8toStreamERNSt7ostreamE", "cvc5::parser::ParserException::toStream"], [57, 6, 1, "_CPPv4NK4cvc56parser15ParserException8toStreamERNSt7ostreamE", "cvc5::parser::ParserException::toStream::os"], [46, 3, 1, "_CPPv4N4cvc56parser13SymbolManagerE", "cvc5::parser::SymbolManager"], [46, 5, 1, "_CPPv4N4cvc56parser13SymbolManager13SymbolManagerEPN4cvc56SolverE", "cvc5::parser::SymbolManager::SymbolManager"], [46, 5, 1, "_CPPv4N4cvc56parser13SymbolManager13SymbolManagerERN4cvc511TermManagerE", "cvc5::parser::SymbolManager::SymbolManager"], [46, 6, 1, "_CPPv4N4cvc56parser13SymbolManager13SymbolManagerEPN4cvc56SolverE", "cvc5::parser::SymbolManager::SymbolManager::slv"], [46, 6, 1, "_CPPv4N4cvc56parser13SymbolManager13SymbolManagerERN4cvc511TermManagerE", "cvc5::parser::SymbolManager::SymbolManager::tm"], [46, 5, 1, "_CPPv4NK4cvc56parser13SymbolManager16getDeclaredSortsEv", "cvc5::parser::SymbolManager::getDeclaredSorts"], [46, 5, 1, "_CPPv4NK4cvc56parser13SymbolManager16getDeclaredTermsEv", "cvc5::parser::SymbolManager::getDeclaredTerms"], [46, 5, 1, "_CPPv4NK4cvc56parser13SymbolManager8getLogicEv", "cvc5::parser::SymbolManager::getLogic"], [46, 5, 1, "_CPPv4NK4cvc56parser13SymbolManager13getNamedTermsEv", "cvc5::parser::SymbolManager::getNamedTerms"], [46, 5, 1, "_CPPv4NK4cvc56parser13SymbolManager10isLogicSetEv", "cvc5::parser::SymbolManager::isLogicSet"], [46, 5, 1, "_CPPv4N4cvc56parser13SymbolManagerD0Ev", "cvc5::parser::SymbolManager::~SymbolManager"], [11, 5, 1, "_CPPv415cvc5_add_pluginP4Cvc5P10Cvc5Plugin", "cvc5_add_plugin"], [11, 6, 1, "_CPPv415cvc5_add_pluginP4Cvc5P10Cvc5Plugin", "cvc5_add_plugin::cvc5"], [11, 6, 1, "_CPPv415cvc5_add_pluginP4Cvc5P10Cvc5Plugin", "cvc5_add_plugin::plugin"], [11, 5, 1, "_CPPv421cvc5_add_sygus_assumeP4Cvc58Cvc5Term", "cvc5_add_sygus_assume"], [11, 6, 1, "_CPPv421cvc5_add_sygus_assumeP4Cvc58Cvc5Term", "cvc5_add_sygus_assume::cvc5"], [11, 6, 1, "_CPPv421cvc5_add_sygus_assumeP4Cvc58Cvc5Term", "cvc5_add_sygus_assume::term"], [11, 5, 1, "_CPPv425cvc5_add_sygus_constraintP4Cvc58Cvc5Term", "cvc5_add_sygus_constraint"], [11, 6, 1, "_CPPv425cvc5_add_sygus_constraintP4Cvc58Cvc5Term", "cvc5_add_sygus_constraint::cvc5"], [11, 6, 1, "_CPPv425cvc5_add_sygus_constraintP4Cvc58Cvc5Term", "cvc5_add_sygus_constraint::term"], [11, 5, 1, "_CPPv429cvc5_add_sygus_inv_constraintP4Cvc58Cvc5Term8Cvc5Term8Cvc5Term8Cvc5Term", "cvc5_add_sygus_inv_constraint"], [11, 6, 1, "_CPPv429cvc5_add_sygus_inv_constraintP4Cvc58Cvc5Term8Cvc5Term8Cvc5Term8Cvc5Term", "cvc5_add_sygus_inv_constraint::cvc5"], [11, 6, 1, "_CPPv429cvc5_add_sygus_inv_constraintP4Cvc58Cvc5Term8Cvc5Term8Cvc5Term8Cvc5Term", "cvc5_add_sygus_inv_constraint::inv"], [11, 6, 1, "_CPPv429cvc5_add_sygus_inv_constraintP4Cvc58Cvc5Term8Cvc5Term8Cvc5Term8Cvc5Term", "cvc5_add_sygus_inv_constraint::post"], [11, 6, 1, "_CPPv429cvc5_add_sygus_inv_constraintP4Cvc58Cvc5Term8Cvc5Term8Cvc5Term8Cvc5Term", "cvc5_add_sygus_inv_constraint::pre"], [11, 6, 1, "_CPPv429cvc5_add_sygus_inv_constraintP4Cvc58Cvc5Term8Cvc5Term8Cvc5Term8Cvc5Term", "cvc5_add_sygus_inv_constraint::trans"], [11, 5, 1, "_CPPv419cvc5_assert_formulaP4Cvc58Cvc5Term", "cvc5_assert_formula"], [11, 6, 1, "_CPPv419cvc5_assert_formulaP4Cvc58Cvc5Term", "cvc5_assert_formula::cvc5"], [11, 6, 1, "_CPPv419cvc5_assert_formulaP4Cvc58Cvc5Term", "cvc5_assert_formula::term"], [11, 5, 1, "_CPPv416cvc5_block_modelP4Cvc519Cvc5BlockModelsMode", "cvc5_block_model"], [11, 6, 1, "_CPPv416cvc5_block_modelP4Cvc519Cvc5BlockModelsMode", "cvc5_block_model::cvc5"], [11, 6, 1, "_CPPv416cvc5_block_modelP4Cvc519Cvc5BlockModelsMode", "cvc5_block_model::mode"], [11, 5, 1, "_CPPv423cvc5_block_model_valuesP4Cvc56size_tA_K8Cvc5Term", "cvc5_block_model_values"], [11, 6, 1, "_CPPv423cvc5_block_model_valuesP4Cvc56size_tA_K8Cvc5Term", "cvc5_block_model_values::cvc5"], [11, 6, 1, "_CPPv423cvc5_block_model_valuesP4Cvc56size_tA_K8Cvc5Term", "cvc5_block_model_values::size"], [11, 6, 1, "_CPPv423cvc5_block_model_valuesP4Cvc56size_tA_K8Cvc5Term", "cvc5_block_model_values::terms"], [11, 5, 1, "_CPPv414cvc5_check_satP4Cvc5", "cvc5_check_sat"], [11, 6, 1, "_CPPv414cvc5_check_satP4Cvc5", "cvc5_check_sat::cvc5"], [11, 5, 1, "_CPPv423cvc5_check_sat_assumingP4Cvc56size_tA_K8Cvc5Term", "cvc5_check_sat_assuming"], [11, 6, 1, "_CPPv423cvc5_check_sat_assumingP4Cvc56size_tA_K8Cvc5Term", "cvc5_check_sat_assuming::assumptions"], [11, 6, 1, "_CPPv423cvc5_check_sat_assumingP4Cvc56size_tA_K8Cvc5Term", "cvc5_check_sat_assuming::cvc5"], [11, 6, 1, "_CPPv423cvc5_check_sat_assumingP4Cvc56size_tA_K8Cvc5Term", "cvc5_check_sat_assuming::size"], [11, 5, 1, "_CPPv416cvc5_check_synthP4Cvc5", "cvc5_check_synth"], [11, 6, 1, "_CPPv416cvc5_check_synthP4Cvc5", "cvc5_check_synth::cvc5"], [11, 5, 1, "_CPPv421cvc5_check_synth_nextP4Cvc5", "cvc5_check_synth_next"], [11, 6, 1, "_CPPv421cvc5_check_synth_nextP4Cvc5", "cvc5_check_synth_next::cvc5"], [11, 5, 1, "_CPPv417cvc5_close_outputP4Cvc5PKc", "cvc5_close_output"], [11, 6, 1, "_CPPv417cvc5_close_outputP4Cvc5PKc", "cvc5_close_output::cvc5"], [11, 6, 1, "_CPPv417cvc5_close_outputP4Cvc5PKc", "cvc5_close_output::filename"], [12, 5, 1, "_CPPv417cvc5_cmd_get_nameK11Cvc5Command", "cvc5_cmd_get_name"], [12, 6, 1, "_CPPv417cvc5_cmd_get_nameK11Cvc5Command", "cvc5_cmd_get_name::cmd"], [12, 5, 1, "_CPPv415cvc5_cmd_invoke11Cvc5CommandP4Cvc5P17Cvc5SymbolManager", "cvc5_cmd_invoke"], [12, 6, 1, "_CPPv415cvc5_cmd_invoke11Cvc5CommandP4Cvc5P17Cvc5SymbolManager", "cvc5_cmd_invoke::cmd"], [12, 6, 1, "_CPPv415cvc5_cmd_invoke11Cvc5CommandP4Cvc5P17Cvc5SymbolManager", "cvc5_cmd_invoke::cvc5"], [12, 6, 1, "_CPPv415cvc5_cmd_invoke11Cvc5CommandP4Cvc5P17Cvc5SymbolManager", "cvc5_cmd_invoke::sm"], [12, 5, 1, "_CPPv418cvc5_cmd_to_stringK11Cvc5Command", "cvc5_cmd_to_string"], [12, 6, 1, "_CPPv418cvc5_cmd_to_stringK11Cvc5Command", "cvc5_cmd_to_string::cmd"], [11, 5, 1, "_CPPv415cvc5_declare_dtP4Cvc5PKc6size_tA_K27Cvc5DatatypeConstructorDecl", "cvc5_declare_dt"], [11, 6, 1, "_CPPv415cvc5_declare_dtP4Cvc5PKc6size_tA_K27Cvc5DatatypeConstructorDecl", "cvc5_declare_dt::ctors"], [11, 6, 1, "_CPPv415cvc5_declare_dtP4Cvc5PKc6size_tA_K27Cvc5DatatypeConstructorDecl", "cvc5_declare_dt::cvc5"], [11, 6, 1, "_CPPv415cvc5_declare_dtP4Cvc5PKc6size_tA_K27Cvc5DatatypeConstructorDecl", "cvc5_declare_dt::size"], [11, 6, 1, "_CPPv415cvc5_declare_dtP4Cvc5PKc6size_tA_K27Cvc5DatatypeConstructorDecl", "cvc5_declare_dt::symbol"], [11, 5, 1, "_CPPv416cvc5_declare_funP4Cvc5PKc6size_tA_K8Cvc5Sort8Cvc5Sortb", "cvc5_declare_fun"], [11, 6, 1, "_CPPv416cvc5_declare_funP4Cvc5PKc6size_tA_K8Cvc5Sort8Cvc5Sortb", "cvc5_declare_fun::cvc5"], [11, 6, 1, "_CPPv416cvc5_declare_funP4Cvc5PKc6size_tA_K8Cvc5Sort8Cvc5Sortb", "cvc5_declare_fun::fresh"], [11, 6, 1, "_CPPv416cvc5_declare_funP4Cvc5PKc6size_tA_K8Cvc5Sort8Cvc5Sortb", "cvc5_declare_fun::size"], [11, 6, 1, "_CPPv416cvc5_declare_funP4Cvc5PKc6size_tA_K8Cvc5Sort8Cvc5Sortb", "cvc5_declare_fun::sort"], [11, 6, 1, "_CPPv416cvc5_declare_funP4Cvc5PKc6size_tA_K8Cvc5Sort8Cvc5Sortb", "cvc5_declare_fun::sorts"], [11, 6, 1, "_CPPv416cvc5_declare_funP4Cvc5PKc6size_tA_K8Cvc5Sort8Cvc5Sortb", "cvc5_declare_fun::symbol"], [11, 5, 1, "_CPPv423cvc5_declare_oracle_funP4Cvc5PKc6size_tA_K8Cvc5Sort8Cvc5SortPvPF8Cvc5Term6size_tPK8Cvc5TermPvE", "cvc5_declare_oracle_fun"], [11, 6, 1, "_CPPv423cvc5_declare_oracle_funP4Cvc5PKc6size_tA_K8Cvc5Sort8Cvc5SortPvPF8Cvc5Term6size_tPK8Cvc5TermPvE", "cvc5_declare_oracle_fun::cvc5"], [11, 6, 1, "_CPPv423cvc5_declare_oracle_funP4Cvc5PKc6size_tA_K8Cvc5Sort8Cvc5SortPvPF8Cvc5Term6size_tPK8Cvc5TermPvE", "cvc5_declare_oracle_fun::fun"], [11, 6, 1, "_CPPv423cvc5_declare_oracle_funP4Cvc5PKc6size_tA_K8Cvc5Sort8Cvc5SortPvPF8Cvc5Term6size_tPK8Cvc5TermPvE", "cvc5_declare_oracle_fun::size"], [11, 6, 1, "_CPPv423cvc5_declare_oracle_funP4Cvc5PKc6size_tA_K8Cvc5Sort8Cvc5SortPvPF8Cvc5Term6size_tPK8Cvc5TermPvE", "cvc5_declare_oracle_fun::sort"], [11, 6, 1, "_CPPv423cvc5_declare_oracle_funP4Cvc5PKc6size_tA_K8Cvc5Sort8Cvc5SortPvPF8Cvc5Term6size_tPK8Cvc5TermPvE", "cvc5_declare_oracle_fun::sorts"], [11, 6, 1, "_CPPv423cvc5_declare_oracle_funP4Cvc5PKc6size_tA_K8Cvc5Sort8Cvc5SortPvPF8Cvc5Term6size_tPK8Cvc5TermPvE", "cvc5_declare_oracle_fun::state"], [11, 6, 1, "_CPPv423cvc5_declare_oracle_funP4Cvc5PKc6size_tA_K8Cvc5Sort8Cvc5SortPvPF8Cvc5Term6size_tPK8Cvc5TermPvE", "cvc5_declare_oracle_fun::symbol"], [11, 5, 1, "_CPPv417cvc5_declare_poolP4Cvc5PKc8Cvc5Sort6size_tA_K8Cvc5Term", "cvc5_declare_pool"], [11, 6, 1, "_CPPv417cvc5_declare_poolP4Cvc5PKc8Cvc5Sort6size_tA_K8Cvc5Term", "cvc5_declare_pool::cvc5"], [11, 6, 1, "_CPPv417cvc5_declare_poolP4Cvc5PKc8Cvc5Sort6size_tA_K8Cvc5Term", "cvc5_declare_pool::init_value"], [11, 6, 1, "_CPPv417cvc5_declare_poolP4Cvc5PKc8Cvc5Sort6size_tA_K8Cvc5Term", "cvc5_declare_pool::size"], [11, 6, 1, "_CPPv417cvc5_declare_poolP4Cvc5PKc8Cvc5Sort6size_tA_K8Cvc5Term", "cvc5_declare_pool::sort"], [11, 6, 1, "_CPPv417cvc5_declare_poolP4Cvc5PKc8Cvc5Sort6size_tA_K8Cvc5Term", "cvc5_declare_pool::symbol"], [11, 5, 1, "_CPPv421cvc5_declare_sep_heapP4Cvc58Cvc5Sort8Cvc5Sort", "cvc5_declare_sep_heap"], [11, 6, 1, "_CPPv421cvc5_declare_sep_heapP4Cvc58Cvc5Sort8Cvc5Sort", "cvc5_declare_sep_heap::cvc5"], [11, 6, 1, "_CPPv421cvc5_declare_sep_heapP4Cvc58Cvc5Sort8Cvc5Sort", "cvc5_declare_sep_heap::data"], [11, 6, 1, "_CPPv421cvc5_declare_sep_heapP4Cvc58Cvc5Sort8Cvc5Sort", "cvc5_declare_sep_heap::loc"], [11, 5, 1, "_CPPv417cvc5_declare_sortP4Cvc5PKc8uint32_tb", "cvc5_declare_sort"], [11, 6, 1, "_CPPv417cvc5_declare_sortP4Cvc5PKc8uint32_tb", "cvc5_declare_sort::arity"], [11, 6, 1, "_CPPv417cvc5_declare_sortP4Cvc5PKc8uint32_tb", "cvc5_declare_sort::cvc5"], [11, 6, 1, "_CPPv417cvc5_declare_sortP4Cvc5PKc8uint32_tb", "cvc5_declare_sort::fresh"], [11, 6, 1, "_CPPv417cvc5_declare_sortP4Cvc5PKc8uint32_tb", "cvc5_declare_sort::symbol"], [11, 5, 1, "_CPPv422cvc5_declare_sygus_varP4Cvc5PKc8Cvc5Sort", "cvc5_declare_sygus_var"], [11, 6, 1, "_CPPv422cvc5_declare_sygus_varP4Cvc5PKc8Cvc5Sort", "cvc5_declare_sygus_var::cvc5"], [11, 6, 1, "_CPPv422cvc5_declare_sygus_varP4Cvc5PKc8Cvc5Sort", "cvc5_declare_sygus_var::sort"], [11, 6, 1, "_CPPv422cvc5_declare_sygus_varP4Cvc5PKc8Cvc5Sort", "cvc5_declare_sygus_var::symbol"], [11, 5, 1, "_CPPv415cvc5_define_funP4Cvc5PKc6size_tA_K8Cvc5TermK8Cvc5SortK8Cvc5Termb", "cvc5_define_fun"], [11, 6, 1, "_CPPv415cvc5_define_funP4Cvc5PKc6size_tA_K8Cvc5TermK8Cvc5SortK8Cvc5Termb", "cvc5_define_fun::cvc5"], [11, 6, 1, "_CPPv415cvc5_define_funP4Cvc5PKc6size_tA_K8Cvc5TermK8Cvc5SortK8Cvc5Termb", "cvc5_define_fun::global"], [11, 6, 1, "_CPPv415cvc5_define_funP4Cvc5PKc6size_tA_K8Cvc5TermK8Cvc5SortK8Cvc5Termb", "cvc5_define_fun::size"], [11, 6, 1, "_CPPv415cvc5_define_funP4Cvc5PKc6size_tA_K8Cvc5TermK8Cvc5SortK8Cvc5Termb", "cvc5_define_fun::sort"], [11, 6, 1, "_CPPv415cvc5_define_funP4Cvc5PKc6size_tA_K8Cvc5TermK8Cvc5SortK8Cvc5Termb", "cvc5_define_fun::symbol"], [11, 6, 1, "_CPPv415cvc5_define_funP4Cvc5PKc6size_tA_K8Cvc5TermK8Cvc5SortK8Cvc5Termb", "cvc5_define_fun::term"], [11, 6, 1, "_CPPv415cvc5_define_funP4Cvc5PKc6size_tA_K8Cvc5TermK8Cvc5SortK8Cvc5Termb", "cvc5_define_fun::vars"], [11, 5, 1, "_CPPv419cvc5_define_fun_recP4Cvc5PKc6size_tA_K8Cvc5TermK8Cvc5SortK8Cvc5Termb", "cvc5_define_fun_rec"], [11, 6, 1, "_CPPv419cvc5_define_fun_recP4Cvc5PKc6size_tA_K8Cvc5TermK8Cvc5SortK8Cvc5Termb", "cvc5_define_fun_rec::cvc5"], [11, 6, 1, "_CPPv419cvc5_define_fun_recP4Cvc5PKc6size_tA_K8Cvc5TermK8Cvc5SortK8Cvc5Termb", "cvc5_define_fun_rec::global"], [11, 6, 1, "_CPPv419cvc5_define_fun_recP4Cvc5PKc6size_tA_K8Cvc5TermK8Cvc5SortK8Cvc5Termb", "cvc5_define_fun_rec::size"], [11, 6, 1, "_CPPv419cvc5_define_fun_recP4Cvc5PKc6size_tA_K8Cvc5TermK8Cvc5SortK8Cvc5Termb", "cvc5_define_fun_rec::sort"], [11, 6, 1, "_CPPv419cvc5_define_fun_recP4Cvc5PKc6size_tA_K8Cvc5TermK8Cvc5SortK8Cvc5Termb", "cvc5_define_fun_rec::symbol"], [11, 6, 1, "_CPPv419cvc5_define_fun_recP4Cvc5PKc6size_tA_K8Cvc5TermK8Cvc5SortK8Cvc5Termb", "cvc5_define_fun_rec::term"], [11, 6, 1, "_CPPv419cvc5_define_fun_recP4Cvc5PKc6size_tA_K8Cvc5TermK8Cvc5SortK8Cvc5Termb", "cvc5_define_fun_rec::vars"], [11, 5, 1, "_CPPv430cvc5_define_fun_rec_from_constP4Cvc58Cvc5Term6size_tA_K8Cvc5TermK8Cvc5Termb", "cvc5_define_fun_rec_from_const"], [11, 6, 1, "_CPPv430cvc5_define_fun_rec_from_constP4Cvc58Cvc5Term6size_tA_K8Cvc5TermK8Cvc5Termb", "cvc5_define_fun_rec_from_const::cvc5"], [11, 6, 1, "_CPPv430cvc5_define_fun_rec_from_constP4Cvc58Cvc5Term6size_tA_K8Cvc5TermK8Cvc5Termb", "cvc5_define_fun_rec_from_const::fun"], [11, 6, 1, "_CPPv430cvc5_define_fun_rec_from_constP4Cvc58Cvc5Term6size_tA_K8Cvc5TermK8Cvc5Termb", "cvc5_define_fun_rec_from_const::global"], [11, 6, 1, "_CPPv430cvc5_define_fun_rec_from_constP4Cvc58Cvc5Term6size_tA_K8Cvc5TermK8Cvc5Termb", "cvc5_define_fun_rec_from_const::size"], [11, 6, 1, "_CPPv430cvc5_define_fun_rec_from_constP4Cvc58Cvc5Term6size_tA_K8Cvc5TermK8Cvc5Termb", "cvc5_define_fun_rec_from_const::term"], [11, 6, 1, "_CPPv430cvc5_define_fun_rec_from_constP4Cvc58Cvc5Term6size_tA_K8Cvc5TermK8Cvc5Termb", "cvc5_define_fun_rec_from_const::vars"], [11, 5, 1, "_CPPv420cvc5_define_funs_recP4Cvc56size_tA_K8Cvc5TermA_6size_tA_PK8Cvc5TermA_K8Cvc5Termb", "cvc5_define_funs_rec"], [11, 6, 1, "_CPPv420cvc5_define_funs_recP4Cvc56size_tA_K8Cvc5TermA_6size_tA_PK8Cvc5TermA_K8Cvc5Termb", "cvc5_define_funs_rec::cvc5"], [11, 6, 1, "_CPPv420cvc5_define_funs_recP4Cvc56size_tA_K8Cvc5TermA_6size_tA_PK8Cvc5TermA_K8Cvc5Termb", "cvc5_define_funs_rec::funs"], [11, 6, 1, "_CPPv420cvc5_define_funs_recP4Cvc56size_tA_K8Cvc5TermA_6size_tA_PK8Cvc5TermA_K8Cvc5Termb", "cvc5_define_funs_rec::global"], [11, 6, 1, "_CPPv420cvc5_define_funs_recP4Cvc56size_tA_K8Cvc5TermA_6size_tA_PK8Cvc5TermA_K8Cvc5Termb", "cvc5_define_funs_rec::nfuns"], [11, 6, 1, "_CPPv420cvc5_define_funs_recP4Cvc56size_tA_K8Cvc5TermA_6size_tA_PK8Cvc5TermA_K8Cvc5Termb", "cvc5_define_funs_rec::nvars"], [11, 6, 1, "_CPPv420cvc5_define_funs_recP4Cvc56size_tA_K8Cvc5TermA_6size_tA_PK8Cvc5TermA_K8Cvc5Termb", "cvc5_define_funs_rec::terms"], [11, 6, 1, "_CPPv420cvc5_define_funs_recP4Cvc56size_tA_K8Cvc5TermA_6size_tA_PK8Cvc5TermA_K8Cvc5Termb", "cvc5_define_funs_rec::vars"], [11, 5, 1, "_CPPv411cvc5_deleteP4Cvc5", "cvc5_delete"], [11, 6, 1, "_CPPv411cvc5_deleteP4Cvc5", "cvc5_delete::cvc5"], [14, 5, 1, "_CPPv417cvc5_dt_cons_copy23Cvc5DatatypeConstructor", "cvc5_dt_cons_copy"], [14, 6, 1, "_CPPv417cvc5_dt_cons_copy23Cvc5DatatypeConstructor", "cvc5_dt_cons_copy::cons"], [14, 5, 1, "_CPPv434cvc5_dt_cons_get_instantiated_term23Cvc5DatatypeConstructor8Cvc5Sort", "cvc5_dt_cons_get_instantiated_term"], [14, 6, 1, "_CPPv434cvc5_dt_cons_get_instantiated_term23Cvc5DatatypeConstructor8Cvc5Sort", "cvc5_dt_cons_get_instantiated_term::cons"], [14, 6, 1, "_CPPv434cvc5_dt_cons_get_instantiated_term23Cvc5DatatypeConstructor8Cvc5Sort", "cvc5_dt_cons_get_instantiated_term::sort"], [14, 5, 1, "_CPPv421cvc5_dt_cons_get_name23Cvc5DatatypeConstructor", "cvc5_dt_cons_get_name"], [14, 6, 1, "_CPPv421cvc5_dt_cons_get_name23Cvc5DatatypeConstructor", "cvc5_dt_cons_get_name::cons"], [14, 5, 1, "_CPPv430cvc5_dt_cons_get_num_selectors23Cvc5DatatypeConstructor", "cvc5_dt_cons_get_num_selectors"], [14, 6, 1, "_CPPv430cvc5_dt_cons_get_num_selectors23Cvc5DatatypeConstructor", "cvc5_dt_cons_get_num_selectors::cons"], [14, 5, 1, "_CPPv425cvc5_dt_cons_get_selector23Cvc5DatatypeConstructor6size_t", "cvc5_dt_cons_get_selector"], [14, 6, 1, "_CPPv425cvc5_dt_cons_get_selector23Cvc5DatatypeConstructor6size_t", "cvc5_dt_cons_get_selector::cons"], [14, 6, 1, "_CPPv425cvc5_dt_cons_get_selector23Cvc5DatatypeConstructor6size_t", "cvc5_dt_cons_get_selector::index"], [14, 5, 1, "_CPPv433cvc5_dt_cons_get_selector_by_name23Cvc5DatatypeConstructorPKc", "cvc5_dt_cons_get_selector_by_name"], [14, 6, 1, "_CPPv433cvc5_dt_cons_get_selector_by_name23Cvc5DatatypeConstructorPKc", "cvc5_dt_cons_get_selector_by_name::cons"], [14, 6, 1, "_CPPv433cvc5_dt_cons_get_selector_by_name23Cvc5DatatypeConstructorPKc", "cvc5_dt_cons_get_selector_by_name::name"], [14, 5, 1, "_CPPv421cvc5_dt_cons_get_term23Cvc5DatatypeConstructor", "cvc5_dt_cons_get_term"], [14, 6, 1, "_CPPv421cvc5_dt_cons_get_term23Cvc5DatatypeConstructor", "cvc5_dt_cons_get_term::cons"], [14, 5, 1, "_CPPv428cvc5_dt_cons_get_tester_term23Cvc5DatatypeConstructor", "cvc5_dt_cons_get_tester_term"], [14, 6, 1, "_CPPv428cvc5_dt_cons_get_tester_term23Cvc5DatatypeConstructor", "cvc5_dt_cons_get_tester_term::cons"], [14, 5, 1, "_CPPv417cvc5_dt_cons_hash23Cvc5DatatypeConstructor", "cvc5_dt_cons_hash"], [14, 6, 1, "_CPPv417cvc5_dt_cons_hash23Cvc5DatatypeConstructor", "cvc5_dt_cons_hash::cons"], [14, 5, 1, "_CPPv421cvc5_dt_cons_is_equal23Cvc5DatatypeConstructor23Cvc5DatatypeConstructor", "cvc5_dt_cons_is_equal"], [14, 6, 1, "_CPPv421cvc5_dt_cons_is_equal23Cvc5DatatypeConstructor23Cvc5DatatypeConstructor", "cvc5_dt_cons_is_equal::a"], [14, 6, 1, "_CPPv421cvc5_dt_cons_is_equal23Cvc5DatatypeConstructor23Cvc5DatatypeConstructor", "cvc5_dt_cons_is_equal::b"], [14, 5, 1, "_CPPv420cvc5_dt_cons_release23Cvc5DatatypeConstructor", "cvc5_dt_cons_release"], [14, 6, 1, "_CPPv420cvc5_dt_cons_release23Cvc5DatatypeConstructor", "cvc5_dt_cons_release::cons"], [14, 5, 1, "_CPPv422cvc5_dt_cons_to_string23Cvc5DatatypeConstructor", "cvc5_dt_cons_to_string"], [14, 6, 1, "_CPPv422cvc5_dt_cons_to_string23Cvc5DatatypeConstructor", "cvc5_dt_cons_to_string::cons"], [13, 5, 1, "_CPPv412cvc5_dt_copy12Cvc5Datatype", "cvc5_dt_copy"], [13, 6, 1, "_CPPv412cvc5_dt_copy12Cvc5Datatype", "cvc5_dt_copy::dt"], [16, 5, 1, "_CPPv428cvc5_dt_decl_add_constructor16Cvc5DatatypeDecl27Cvc5DatatypeConstructorDecl", "cvc5_dt_decl_add_constructor"], [16, 6, 1, "_CPPv428cvc5_dt_decl_add_constructor16Cvc5DatatypeDecl27Cvc5DatatypeConstructorDecl", "cvc5_dt_decl_add_constructor::ctor"], [16, 6, 1, "_CPPv428cvc5_dt_decl_add_constructor16Cvc5DatatypeDecl27Cvc5DatatypeConstructorDecl", "cvc5_dt_decl_add_constructor::decl"], [16, 5, 1, "_CPPv417cvc5_dt_decl_copy16Cvc5DatatypeDecl", "cvc5_dt_decl_copy"], [16, 6, 1, "_CPPv417cvc5_dt_decl_copy16Cvc5DatatypeDecl", "cvc5_dt_decl_copy::decl"], [16, 5, 1, "_CPPv421cvc5_dt_decl_get_name16Cvc5DatatypeDecl", "cvc5_dt_decl_get_name"], [16, 6, 1, "_CPPv421cvc5_dt_decl_get_name16Cvc5DatatypeDecl", "cvc5_dt_decl_get_name::decl"], [16, 5, 1, "_CPPv433cvc5_dt_decl_get_num_constructors16Cvc5DatatypeDecl", "cvc5_dt_decl_get_num_constructors"], [16, 6, 1, "_CPPv433cvc5_dt_decl_get_num_constructors16Cvc5DatatypeDecl", "cvc5_dt_decl_get_num_constructors::decl"], [16, 5, 1, "_CPPv417cvc5_dt_decl_hash16Cvc5DatatypeDecl", "cvc5_dt_decl_hash"], [16, 6, 1, "_CPPv417cvc5_dt_decl_hash16Cvc5DatatypeDecl", "cvc5_dt_decl_hash::decl"], [16, 5, 1, "_CPPv421cvc5_dt_decl_is_equal16Cvc5DatatypeDecl16Cvc5DatatypeDecl", "cvc5_dt_decl_is_equal"], [16, 6, 1, "_CPPv421cvc5_dt_decl_is_equal16Cvc5DatatypeDecl16Cvc5DatatypeDecl", "cvc5_dt_decl_is_equal::a"], [16, 6, 1, "_CPPv421cvc5_dt_decl_is_equal16Cvc5DatatypeDecl16Cvc5DatatypeDecl", "cvc5_dt_decl_is_equal::b"], [16, 5, 1, "_CPPv426cvc5_dt_decl_is_parametric16Cvc5DatatypeDecl", "cvc5_dt_decl_is_parametric"], [16, 6, 1, "_CPPv426cvc5_dt_decl_is_parametric16Cvc5DatatypeDecl", "cvc5_dt_decl_is_parametric::decl"], [16, 5, 1, "_CPPv424cvc5_dt_decl_is_resolved16Cvc5DatatypeDecl", "cvc5_dt_decl_is_resolved"], [16, 6, 1, "_CPPv424cvc5_dt_decl_is_resolved16Cvc5DatatypeDecl", "cvc5_dt_decl_is_resolved::decl"], [16, 5, 1, "_CPPv420cvc5_dt_decl_release16Cvc5DatatypeDecl", "cvc5_dt_decl_release"], [16, 6, 1, "_CPPv420cvc5_dt_decl_release16Cvc5DatatypeDecl", "cvc5_dt_decl_release::decl"], [16, 5, 1, "_CPPv422cvc5_dt_decl_to_string16Cvc5DatatypeDecl", "cvc5_dt_decl_to_string"], [16, 6, 1, "_CPPv422cvc5_dt_decl_to_string16Cvc5DatatypeDecl", "cvc5_dt_decl_to_string::decl"], [13, 5, 1, "_CPPv423cvc5_dt_get_constructor12Cvc5Datatype6size_t", "cvc5_dt_get_constructor"], [13, 6, 1, "_CPPv423cvc5_dt_get_constructor12Cvc5Datatype6size_t", "cvc5_dt_get_constructor::dt"], [13, 6, 1, "_CPPv423cvc5_dt_get_constructor12Cvc5Datatype6size_t", "cvc5_dt_get_constructor::idx"], [13, 5, 1, "_CPPv431cvc5_dt_get_constructor_by_name12Cvc5DatatypePKc", "cvc5_dt_get_constructor_by_name"], [13, 6, 1, "_CPPv431cvc5_dt_get_constructor_by_name12Cvc5DatatypePKc", "cvc5_dt_get_constructor_by_name::dt"], [13, 6, 1, "_CPPv431cvc5_dt_get_constructor_by_name12Cvc5DatatypePKc", "cvc5_dt_get_constructor_by_name::name"], [13, 5, 1, "_CPPv416cvc5_dt_get_name12Cvc5Datatype", "cvc5_dt_get_name"], [13, 6, 1, "_CPPv416cvc5_dt_get_name12Cvc5Datatype", "cvc5_dt_get_name::dt"], [13, 5, 1, "_CPPv428cvc5_dt_get_num_constructors12Cvc5Datatype", "cvc5_dt_get_num_constructors"], [13, 6, 1, "_CPPv428cvc5_dt_get_num_constructors12Cvc5Datatype", "cvc5_dt_get_num_constructors::dt"], [13, 5, 1, "_CPPv422cvc5_dt_get_parameters12Cvc5DatatypeP6size_t", "cvc5_dt_get_parameters"], [13, 6, 1, "_CPPv422cvc5_dt_get_parameters12Cvc5DatatypeP6size_t", "cvc5_dt_get_parameters::dt"], [13, 6, 1, "_CPPv422cvc5_dt_get_parameters12Cvc5DatatypeP6size_t", "cvc5_dt_get_parameters::size"], [13, 5, 1, "_CPPv420cvc5_dt_get_selector12Cvc5DatatypePKc", "cvc5_dt_get_selector"], [13, 6, 1, "_CPPv420cvc5_dt_get_selector12Cvc5DatatypePKc", "cvc5_dt_get_selector::dt"], [13, 6, 1, "_CPPv420cvc5_dt_get_selector12Cvc5DatatypePKc", "cvc5_dt_get_selector::name"], [13, 5, 1, "_CPPv412cvc5_dt_hash12Cvc5Datatype", "cvc5_dt_hash"], [13, 6, 1, "_CPPv412cvc5_dt_hash12Cvc5Datatype", "cvc5_dt_hash::dt"], [13, 5, 1, "_CPPv421cvc5_dt_is_codatatype12Cvc5Datatype", "cvc5_dt_is_codatatype"], [13, 6, 1, "_CPPv421cvc5_dt_is_codatatype12Cvc5Datatype", "cvc5_dt_is_codatatype::dt"], [13, 5, 1, "_CPPv416cvc5_dt_is_equal12Cvc5Datatype12Cvc5Datatype", "cvc5_dt_is_equal"], [13, 6, 1, "_CPPv416cvc5_dt_is_equal12Cvc5Datatype12Cvc5Datatype", "cvc5_dt_is_equal::a"], [13, 6, 1, "_CPPv416cvc5_dt_is_equal12Cvc5Datatype12Cvc5Datatype", "cvc5_dt_is_equal::b"], [13, 5, 1, "_CPPv417cvc5_dt_is_finite12Cvc5Datatype", "cvc5_dt_is_finite"], [13, 6, 1, "_CPPv417cvc5_dt_is_finite12Cvc5Datatype", "cvc5_dt_is_finite::dt"], [13, 5, 1, "_CPPv421cvc5_dt_is_parametric12Cvc5Datatype", "cvc5_dt_is_parametric"], [13, 6, 1, "_CPPv421cvc5_dt_is_parametric12Cvc5Datatype", "cvc5_dt_is_parametric::dt"], [13, 5, 1, "_CPPv417cvc5_dt_is_record12Cvc5Datatype", "cvc5_dt_is_record"], [13, 6, 1, "_CPPv417cvc5_dt_is_record12Cvc5Datatype", "cvc5_dt_is_record::dt"], [13, 5, 1, "_CPPv416cvc5_dt_is_tuple12Cvc5Datatype", "cvc5_dt_is_tuple"], [13, 6, 1, "_CPPv416cvc5_dt_is_tuple12Cvc5Datatype", "cvc5_dt_is_tuple::dt"], [13, 5, 1, "_CPPv423cvc5_dt_is_well_founded12Cvc5Datatype", "cvc5_dt_is_well_founded"], [13, 6, 1, "_CPPv423cvc5_dt_is_well_founded12Cvc5Datatype", "cvc5_dt_is_well_founded::dt"], [13, 5, 1, "_CPPv415cvc5_dt_release12Cvc5Datatype", "cvc5_dt_release"], [13, 6, 1, "_CPPv415cvc5_dt_release12Cvc5Datatype", "cvc5_dt_release::dt"], [17, 5, 1, "_CPPv416cvc5_dt_sel_copy20Cvc5DatatypeSelector", "cvc5_dt_sel_copy"], [17, 6, 1, "_CPPv416cvc5_dt_sel_copy20Cvc5DatatypeSelector", "cvc5_dt_sel_copy::sel"], [17, 5, 1, "_CPPv429cvc5_dt_sel_get_codomain_sort20Cvc5DatatypeSelector", "cvc5_dt_sel_get_codomain_sort"], [17, 6, 1, "_CPPv429cvc5_dt_sel_get_codomain_sort20Cvc5DatatypeSelector", "cvc5_dt_sel_get_codomain_sort::sel"], [17, 5, 1, "_CPPv420cvc5_dt_sel_get_name20Cvc5DatatypeSelector", "cvc5_dt_sel_get_name"], [17, 6, 1, "_CPPv420cvc5_dt_sel_get_name20Cvc5DatatypeSelector", "cvc5_dt_sel_get_name::sel"], [17, 5, 1, "_CPPv420cvc5_dt_sel_get_term20Cvc5DatatypeSelector", "cvc5_dt_sel_get_term"], [17, 6, 1, "_CPPv420cvc5_dt_sel_get_term20Cvc5DatatypeSelector", "cvc5_dt_sel_get_term::sel"], [17, 5, 1, "_CPPv428cvc5_dt_sel_get_updater_term20Cvc5DatatypeSelector", "cvc5_dt_sel_get_updater_term"], [17, 6, 1, "_CPPv428cvc5_dt_sel_get_updater_term20Cvc5DatatypeSelector", "cvc5_dt_sel_get_updater_term::sel"], [17, 5, 1, "_CPPv416cvc5_dt_sel_hash20Cvc5DatatypeSelector", "cvc5_dt_sel_hash"], [17, 6, 1, "_CPPv416cvc5_dt_sel_hash20Cvc5DatatypeSelector", "cvc5_dt_sel_hash::sel"], [17, 5, 1, "_CPPv420cvc5_dt_sel_is_equal20Cvc5DatatypeSelector20Cvc5DatatypeSelector", "cvc5_dt_sel_is_equal"], [17, 6, 1, "_CPPv420cvc5_dt_sel_is_equal20Cvc5DatatypeSelector20Cvc5DatatypeSelector", "cvc5_dt_sel_is_equal::a"], [17, 6, 1, "_CPPv420cvc5_dt_sel_is_equal20Cvc5DatatypeSelector20Cvc5DatatypeSelector", "cvc5_dt_sel_is_equal::b"], [17, 5, 1, "_CPPv419cvc5_dt_sel_release20Cvc5DatatypeSelector", "cvc5_dt_sel_release"], [17, 6, 1, "_CPPv419cvc5_dt_sel_release20Cvc5DatatypeSelector", "cvc5_dt_sel_release::sel"], [17, 5, 1, "_CPPv421cvc5_dt_sel_to_string20Cvc5DatatypeSelector", "cvc5_dt_sel_to_string"], [17, 6, 1, "_CPPv421cvc5_dt_sel_to_string20Cvc5DatatypeSelector", "cvc5_dt_sel_to_string::sel"], [13, 5, 1, "_CPPv417cvc5_dt_to_string12Cvc5Datatype", "cvc5_dt_to_string"], [13, 6, 1, "_CPPv417cvc5_dt_to_string12Cvc5Datatype", "cvc5_dt_to_string::dt"], [11, 5, 1, "_CPPv415cvc5_find_synthP4Cvc519Cvc5FindSynthTarget", "cvc5_find_synth"], [11, 6, 1, "_CPPv415cvc5_find_synthP4Cvc519Cvc5FindSynthTarget", "cvc5_find_synth::cvc5"], [11, 6, 1, "_CPPv415cvc5_find_synthP4Cvc519Cvc5FindSynthTarget", "cvc5_find_synth::target"], [11, 5, 1, "_CPPv420cvc5_find_synth_nextP4Cvc5", "cvc5_find_synth_next"], [11, 6, 1, "_CPPv420cvc5_find_synth_nextP4Cvc5", "cvc5_find_synth_next::cvc5"], [11, 5, 1, "_CPPv428cvc5_find_synth_with_grammarP4Cvc519Cvc5FindSynthTarget11Cvc5Grammar", "cvc5_find_synth_with_grammar"], [11, 6, 1, "_CPPv428cvc5_find_synth_with_grammarP4Cvc519Cvc5FindSynthTarget11Cvc5Grammar", "cvc5_find_synth_with_grammar::cvc5"], [11, 6, 1, "_CPPv428cvc5_find_synth_with_grammarP4Cvc519Cvc5FindSynthTarget11Cvc5Grammar", "cvc5_find_synth_with_grammar::grammar"], [11, 6, 1, "_CPPv428cvc5_find_synth_with_grammarP4Cvc519Cvc5FindSynthTarget11Cvc5Grammar", "cvc5_find_synth_with_grammar::target"], [11, 5, 1, "_CPPv415cvc5_get_abductP4Cvc58Cvc5Term", "cvc5_get_abduct"], [11, 6, 1, "_CPPv415cvc5_get_abductP4Cvc58Cvc5Term", "cvc5_get_abduct::conj"], [11, 6, 1, "_CPPv415cvc5_get_abductP4Cvc58Cvc5Term", "cvc5_get_abduct::cvc5"], [11, 5, 1, "_CPPv420cvc5_get_abduct_nextP4Cvc5", "cvc5_get_abduct_next"], [11, 6, 1, "_CPPv420cvc5_get_abduct_nextP4Cvc5", "cvc5_get_abduct_next::cvc5"], [11, 5, 1, "_CPPv428cvc5_get_abduct_with_grammarP4Cvc58Cvc5Term11Cvc5Grammar", "cvc5_get_abduct_with_grammar"], [11, 6, 1, "_CPPv428cvc5_get_abduct_with_grammarP4Cvc58Cvc5Term11Cvc5Grammar", "cvc5_get_abduct_with_grammar::conj"], [11, 6, 1, "_CPPv428cvc5_get_abduct_with_grammarP4Cvc58Cvc5Term11Cvc5Grammar", "cvc5_get_abduct_with_grammar::cvc5"], [11, 6, 1, "_CPPv428cvc5_get_abduct_with_grammarP4Cvc58Cvc5Term11Cvc5Grammar", "cvc5_get_abduct_with_grammar::grammar"], [11, 5, 1, "_CPPv419cvc5_get_assertionsP4Cvc5P6size_t", "cvc5_get_assertions"], [11, 6, 1, "_CPPv419cvc5_get_assertionsP4Cvc5P6size_t", "cvc5_get_assertions::cvc5"], [11, 6, 1, "_CPPv419cvc5_get_assertionsP4Cvc5P6size_t", "cvc5_get_assertions::size"], [11, 5, 1, "_CPPv419cvc5_get_difficultyP4Cvc5P6size_tA_P8Cvc5TermA_P8Cvc5Term", "cvc5_get_difficulty"], [11, 6, 1, "_CPPv419cvc5_get_difficultyP4Cvc5P6size_tA_P8Cvc5TermA_P8Cvc5Term", "cvc5_get_difficulty::cvc5"], [11, 6, 1, "_CPPv419cvc5_get_difficultyP4Cvc5P6size_tA_P8Cvc5TermA_P8Cvc5Term", "cvc5_get_difficulty::inputs"], [11, 6, 1, "_CPPv419cvc5_get_difficultyP4Cvc5P6size_tA_P8Cvc5TermA_P8Cvc5Term", "cvc5_get_difficulty::size"], [11, 6, 1, "_CPPv419cvc5_get_difficultyP4Cvc5P6size_tA_P8Cvc5TermA_P8Cvc5Term", "cvc5_get_difficulty::values"], [11, 5, 1, "_CPPv413cvc5_get_infoP4Cvc5PKc", "cvc5_get_info"], [11, 6, 1, "_CPPv413cvc5_get_infoP4Cvc5PKc", "cvc5_get_info::cvc5"], [11, 6, 1, "_CPPv413cvc5_get_infoP4Cvc5PKc", "cvc5_get_info::flag"], [11, 5, 1, "_CPPv423cvc5_get_instantiationsP4Cvc5", "cvc5_get_instantiations"], [11, 6, 1, "_CPPv423cvc5_get_instantiationsP4Cvc5", "cvc5_get_instantiations::cvc5"], [11, 5, 1, "_CPPv420cvc5_get_interpolantP4Cvc58Cvc5Term", "cvc5_get_interpolant"], [11, 6, 1, "_CPPv420cvc5_get_interpolantP4Cvc58Cvc5Term", "cvc5_get_interpolant::conj"], [11, 6, 1, "_CPPv420cvc5_get_interpolantP4Cvc58Cvc5Term", "cvc5_get_interpolant::cvc5"], [11, 5, 1, "_CPPv425cvc5_get_interpolant_nextP4Cvc5", "cvc5_get_interpolant_next"], [11, 6, 1, "_CPPv425cvc5_get_interpolant_nextP4Cvc5", "cvc5_get_interpolant_next::cvc5"], [11, 5, 1, "_CPPv433cvc5_get_interpolant_with_grammarP4Cvc58Cvc5Term11Cvc5Grammar", "cvc5_get_interpolant_with_grammar"], [11, 6, 1, "_CPPv433cvc5_get_interpolant_with_grammarP4Cvc58Cvc5Term11Cvc5Grammar", "cvc5_get_interpolant_with_grammar::conj"], [11, 6, 1, "_CPPv433cvc5_get_interpolant_with_grammarP4Cvc58Cvc5Term11Cvc5Grammar", "cvc5_get_interpolant_with_grammar::cvc5"], [11, 6, 1, "_CPPv433cvc5_get_interpolant_with_grammarP4Cvc58Cvc5Term11Cvc5Grammar", "cvc5_get_interpolant_with_grammar::grammar"], [11, 5, 1, "_CPPv425cvc5_get_learned_literalsP4Cvc518Cvc5LearnedLitTypeP6size_t", "cvc5_get_learned_literals"], [11, 6, 1, "_CPPv425cvc5_get_learned_literalsP4Cvc518Cvc5LearnedLitTypeP6size_t", "cvc5_get_learned_literals::cvc5"], [11, 6, 1, "_CPPv425cvc5_get_learned_literalsP4Cvc518Cvc5LearnedLitTypeP6size_t", "cvc5_get_learned_literals::size"], [11, 6, 1, "_CPPv425cvc5_get_learned_literalsP4Cvc518Cvc5LearnedLitTypeP6size_t", "cvc5_get_learned_literals::type"], [11, 5, 1, "_CPPv414cvc5_get_logicP4Cvc5", "cvc5_get_logic"], [11, 6, 1, "_CPPv414cvc5_get_logicP4Cvc5", "cvc5_get_logic::cvc5"], [11, 5, 1, "_CPPv414cvc5_get_modelP4Cvc56size_tA_K8Cvc5Sort6size_tA_K8Cvc5Term", "cvc5_get_model"], [11, 6, 1, "_CPPv414cvc5_get_modelP4Cvc56size_tA_K8Cvc5Sort6size_tA_K8Cvc5Term", "cvc5_get_model::consts"], [11, 6, 1, "_CPPv414cvc5_get_modelP4Cvc56size_tA_K8Cvc5Sort6size_tA_K8Cvc5Term", "cvc5_get_model::cvc5"], [11, 6, 1, "_CPPv414cvc5_get_modelP4Cvc56size_tA_K8Cvc5Sort6size_tA_K8Cvc5Term", "cvc5_get_model::nconsts"], [11, 6, 1, "_CPPv414cvc5_get_modelP4Cvc56size_tA_K8Cvc5Sort6size_tA_K8Cvc5Term", "cvc5_get_model::nsorts"], [11, 6, 1, "_CPPv414cvc5_get_modelP4Cvc56size_tA_K8Cvc5Sort6size_tA_K8Cvc5Term", "cvc5_get_model::sorts"], [11, 5, 1, "_CPPv430cvc5_get_model_domain_elementsP4Cvc58Cvc5SortP6size_t", "cvc5_get_model_domain_elements"], [11, 6, 1, "_CPPv430cvc5_get_model_domain_elementsP4Cvc58Cvc5SortP6size_t", "cvc5_get_model_domain_elements::cvc5"], [11, 6, 1, "_CPPv430cvc5_get_model_domain_elementsP4Cvc58Cvc5SortP6size_t", "cvc5_get_model_domain_elements::size"], [11, 6, 1, "_CPPv430cvc5_get_model_domain_elementsP4Cvc58Cvc5SortP6size_t", "cvc5_get_model_domain_elements::sort"], [11, 5, 1, "_CPPv415cvc5_get_optionP4Cvc5PKc", "cvc5_get_option"], [11, 6, 1, "_CPPv415cvc5_get_optionP4Cvc5PKc", "cvc5_get_option::cvc5"], [11, 6, 1, "_CPPv415cvc5_get_optionP4Cvc5PKc", "cvc5_get_option::option"], [11, 5, 1, "_CPPv420cvc5_get_option_infoP4Cvc5PKcP14Cvc5OptionInfo", "cvc5_get_option_info"], [11, 6, 1, "_CPPv420cvc5_get_option_infoP4Cvc5PKcP14Cvc5OptionInfo", "cvc5_get_option_info::cvc5"], [11, 6, 1, "_CPPv420cvc5_get_option_infoP4Cvc5PKcP14Cvc5OptionInfo", "cvc5_get_option_info::info"], [11, 6, 1, "_CPPv420cvc5_get_option_infoP4Cvc5PKcP14Cvc5OptionInfo", "cvc5_get_option_info::option"], [11, 5, 1, "_CPPv421cvc5_get_option_namesP4Cvc5P6size_t", "cvc5_get_option_names"], [11, 6, 1, "_CPPv421cvc5_get_option_namesP4Cvc5P6size_t", "cvc5_get_option_names::cvc5"], [11, 6, 1, "_CPPv421cvc5_get_option_namesP4Cvc5P6size_t", "cvc5_get_option_names::size"], [11, 5, 1, "_CPPv415cvc5_get_outputP4Cvc5PKcPKc", "cvc5_get_output"], [11, 6, 1, "_CPPv415cvc5_get_outputP4Cvc5PKcPKc", "cvc5_get_output::cvc5"], [11, 6, 1, "_CPPv415cvc5_get_outputP4Cvc5PKcPKc", "cvc5_get_output::filename"], [11, 6, 1, "_CPPv415cvc5_get_outputP4Cvc5PKcPKc", "cvc5_get_output::tag"], [11, 5, 1, "_CPPv414cvc5_get_proofP4Cvc518Cvc5ProofComponentP6size_t", "cvc5_get_proof"], [11, 6, 1, "_CPPv414cvc5_get_proofP4Cvc518Cvc5ProofComponentP6size_t", "cvc5_get_proof::c"], [11, 6, 1, "_CPPv414cvc5_get_proofP4Cvc518Cvc5ProofComponentP6size_t", "cvc5_get_proof::cvc5"], [11, 6, 1, "_CPPv414cvc5_get_proofP4Cvc518Cvc5ProofComponentP6size_t", "cvc5_get_proof::size"], [11, 5, 1, "_CPPv431cvc5_get_quantifier_eliminationP4Cvc58Cvc5Term", "cvc5_get_quantifier_elimination"], [11, 6, 1, "_CPPv431cvc5_get_quantifier_eliminationP4Cvc58Cvc5Term", "cvc5_get_quantifier_elimination::cvc5"], [11, 6, 1, "_CPPv431cvc5_get_quantifier_eliminationP4Cvc58Cvc5Term", "cvc5_get_quantifier_elimination::q"], [11, 5, 1, "_CPPv440cvc5_get_quantifier_elimination_disjunctP4Cvc58Cvc5Term", "cvc5_get_quantifier_elimination_disjunct"], [11, 6, 1, "_CPPv440cvc5_get_quantifier_elimination_disjunctP4Cvc58Cvc5Term", "cvc5_get_quantifier_elimination_disjunct::cvc5"], [11, 6, 1, "_CPPv440cvc5_get_quantifier_elimination_disjunctP4Cvc58Cvc5Term", "cvc5_get_quantifier_elimination_disjunct::q"], [11, 5, 1, "_CPPv419cvc5_get_statisticsP4Cvc5", "cvc5_get_statistics"], [11, 6, 1, "_CPPv419cvc5_get_statisticsP4Cvc5", "cvc5_get_statistics::cvc5"], [11, 5, 1, "_CPPv426cvc5_get_sygus_assumptionsP4Cvc5P6size_t", "cvc5_get_sygus_assumptions"], [11, 6, 1, "_CPPv426cvc5_get_sygus_assumptionsP4Cvc5P6size_t", "cvc5_get_sygus_assumptions::cvc5"], [11, 6, 1, "_CPPv426cvc5_get_sygus_assumptionsP4Cvc5P6size_t", "cvc5_get_sygus_assumptions::size"], [11, 5, 1, "_CPPv426cvc5_get_sygus_constraintsP4Cvc5P6size_t", "cvc5_get_sygus_constraints"], [11, 6, 1, "_CPPv426cvc5_get_sygus_constraintsP4Cvc5P6size_t", "cvc5_get_sygus_constraints::cvc5"], [11, 6, 1, "_CPPv426cvc5_get_sygus_constraintsP4Cvc5P6size_t", "cvc5_get_sygus_constraints::size"], [11, 5, 1, "_CPPv423cvc5_get_synth_solutionP4Cvc58Cvc5Term", "cvc5_get_synth_solution"], [11, 6, 1, "_CPPv423cvc5_get_synth_solutionP4Cvc58Cvc5Term", "cvc5_get_synth_solution::cvc5"], [11, 6, 1, "_CPPv423cvc5_get_synth_solutionP4Cvc58Cvc5Term", "cvc5_get_synth_solution::term"], [11, 5, 1, "_CPPv424cvc5_get_synth_solutionsP4Cvc56size_tA_K8Cvc5Term", "cvc5_get_synth_solutions"], [11, 6, 1, "_CPPv424cvc5_get_synth_solutionsP4Cvc56size_tA_K8Cvc5Term", "cvc5_get_synth_solutions::cvc5"], [11, 6, 1, "_CPPv424cvc5_get_synth_solutionsP4Cvc56size_tA_K8Cvc5Term", "cvc5_get_synth_solutions::size"], [11, 6, 1, "_CPPv424cvc5_get_synth_solutionsP4Cvc56size_tA_K8Cvc5Term", "cvc5_get_synth_solutions::terms"], [11, 5, 1, "_CPPv421cvc5_get_timeout_coreP4Cvc5P10Cvc5ResultP6size_t", "cvc5_get_timeout_core"], [11, 6, 1, "_CPPv421cvc5_get_timeout_coreP4Cvc5P10Cvc5ResultP6size_t", "cvc5_get_timeout_core::cvc5"], [11, 6, 1, "_CPPv421cvc5_get_timeout_coreP4Cvc5P10Cvc5ResultP6size_t", "cvc5_get_timeout_core::result"], [11, 6, 1, "_CPPv421cvc5_get_timeout_coreP4Cvc5P10Cvc5ResultP6size_t", "cvc5_get_timeout_core::size"], [11, 5, 1, "_CPPv430cvc5_get_timeout_core_assumingP4Cvc56size_tA_K8Cvc5TermP10Cvc5ResultP6size_t", "cvc5_get_timeout_core_assuming"], [11, 6, 1, "_CPPv430cvc5_get_timeout_core_assumingP4Cvc56size_tA_K8Cvc5TermP10Cvc5ResultP6size_t", "cvc5_get_timeout_core_assuming::assumptions"], [11, 6, 1, "_CPPv430cvc5_get_timeout_core_assumingP4Cvc56size_tA_K8Cvc5TermP10Cvc5ResultP6size_t", "cvc5_get_timeout_core_assuming::cvc5"], [11, 6, 1, "_CPPv430cvc5_get_timeout_core_assumingP4Cvc56size_tA_K8Cvc5TermP10Cvc5ResultP6size_t", "cvc5_get_timeout_core_assuming::result"], [11, 6, 1, "_CPPv430cvc5_get_timeout_core_assumingP4Cvc56size_tA_K8Cvc5TermP10Cvc5ResultP6size_t", "cvc5_get_timeout_core_assuming::rsize"], [11, 6, 1, "_CPPv430cvc5_get_timeout_core_assumingP4Cvc56size_tA_K8Cvc5TermP10Cvc5ResultP6size_t", "cvc5_get_timeout_core_assuming::size"], [11, 5, 1, "_CPPv411cvc5_get_tmP4Cvc5", "cvc5_get_tm"], [11, 6, 1, "_CPPv411cvc5_get_tmP4Cvc5", "cvc5_get_tm::cvc5"], [11, 5, 1, "_CPPv426cvc5_get_unsat_assumptionsP4Cvc5P6size_t", "cvc5_get_unsat_assumptions"], [11, 6, 1, "_CPPv426cvc5_get_unsat_assumptionsP4Cvc5P6size_t", "cvc5_get_unsat_assumptions::cvc5"], [11, 6, 1, "_CPPv426cvc5_get_unsat_assumptionsP4Cvc5P6size_t", "cvc5_get_unsat_assumptions::size"], [11, 5, 1, "_CPPv419cvc5_get_unsat_coreP4Cvc5P6size_t", "cvc5_get_unsat_core"], [11, 6, 1, "_CPPv419cvc5_get_unsat_coreP4Cvc5P6size_t", "cvc5_get_unsat_core::cvc5"], [11, 6, 1, "_CPPv419cvc5_get_unsat_coreP4Cvc5P6size_t", "cvc5_get_unsat_core::size"], [11, 5, 1, "_CPPv426cvc5_get_unsat_core_lemmasP4Cvc5P6size_t", "cvc5_get_unsat_core_lemmas"], [11, 6, 1, "_CPPv426cvc5_get_unsat_core_lemmasP4Cvc5P6size_t", "cvc5_get_unsat_core_lemmas::cvc5"], [11, 6, 1, "_CPPv426cvc5_get_unsat_core_lemmasP4Cvc5P6size_t", "cvc5_get_unsat_core_lemmas::size"], [11, 5, 1, "_CPPv414cvc5_get_valueP4Cvc58Cvc5Term", "cvc5_get_value"], [11, 6, 1, "_CPPv414cvc5_get_valueP4Cvc58Cvc5Term", "cvc5_get_value::cvc5"], [11, 6, 1, "_CPPv414cvc5_get_valueP4Cvc58Cvc5Term", "cvc5_get_value::term"], [11, 5, 1, "_CPPv423cvc5_get_value_sep_heapP4Cvc5", "cvc5_get_value_sep_heap"], [11, 6, 1, "_CPPv423cvc5_get_value_sep_heapP4Cvc5", "cvc5_get_value_sep_heap::cvc5"], [11, 5, 1, "_CPPv422cvc5_get_value_sep_nilP4Cvc5", "cvc5_get_value_sep_nil"], [11, 6, 1, "_CPPv422cvc5_get_value_sep_nilP4Cvc5", "cvc5_get_value_sep_nil::cvc5"], [11, 5, 1, "_CPPv415cvc5_get_valuesP4Cvc56size_tA_K8Cvc5TermP6size_t", "cvc5_get_values"], [11, 6, 1, "_CPPv415cvc5_get_valuesP4Cvc56size_tA_K8Cvc5TermP6size_t", "cvc5_get_values::cvc5"], [11, 6, 1, "_CPPv415cvc5_get_valuesP4Cvc56size_tA_K8Cvc5TermP6size_t", "cvc5_get_values::rsize"], [11, 6, 1, "_CPPv415cvc5_get_valuesP4Cvc56size_tA_K8Cvc5TermP6size_t", "cvc5_get_values::size"], [11, 6, 1, "_CPPv415cvc5_get_valuesP4Cvc56size_tA_K8Cvc5TermP6size_t", "cvc5_get_values::terms"], [11, 5, 1, "_CPPv416cvc5_get_versionP4Cvc5", "cvc5_get_version"], [11, 6, 1, "_CPPv416cvc5_get_versionP4Cvc5", "cvc5_get_version::cvc5"], [18, 5, 1, "_CPPv429cvc5_grammar_add_any_constant11Cvc5Grammar8Cvc5Term", "cvc5_grammar_add_any_constant"], [18, 6, 1, "_CPPv429cvc5_grammar_add_any_constant11Cvc5Grammar8Cvc5Term", "cvc5_grammar_add_any_constant::grammar"], [18, 6, 1, "_CPPv429cvc5_grammar_add_any_constant11Cvc5Grammar8Cvc5Term", "cvc5_grammar_add_any_constant::symbol"], [18, 5, 1, "_CPPv429cvc5_grammar_add_any_variable11Cvc5Grammar8Cvc5Term", "cvc5_grammar_add_any_variable"], [18, 6, 1, "_CPPv429cvc5_grammar_add_any_variable11Cvc5Grammar8Cvc5Term", "cvc5_grammar_add_any_variable::grammar"], [18, 6, 1, "_CPPv429cvc5_grammar_add_any_variable11Cvc5Grammar8Cvc5Term", "cvc5_grammar_add_any_variable::symbol"], [18, 5, 1, "_CPPv421cvc5_grammar_add_rule11Cvc5Grammar8Cvc5Term8Cvc5Term", "cvc5_grammar_add_rule"], [18, 6, 1, "_CPPv421cvc5_grammar_add_rule11Cvc5Grammar8Cvc5Term8Cvc5Term", "cvc5_grammar_add_rule::grammar"], [18, 6, 1, "_CPPv421cvc5_grammar_add_rule11Cvc5Grammar8Cvc5Term8Cvc5Term", "cvc5_grammar_add_rule::rule"], [18, 6, 1, "_CPPv421cvc5_grammar_add_rule11Cvc5Grammar8Cvc5Term8Cvc5Term", "cvc5_grammar_add_rule::symbol"], [18, 5, 1, "_CPPv422cvc5_grammar_add_rules11Cvc5Grammar8Cvc5Term6size_tA_K8Cvc5Term", "cvc5_grammar_add_rules"], [18, 6, 1, "_CPPv422cvc5_grammar_add_rules11Cvc5Grammar8Cvc5Term6size_tA_K8Cvc5Term", "cvc5_grammar_add_rules::grammar"], [18, 6, 1, "_CPPv422cvc5_grammar_add_rules11Cvc5Grammar8Cvc5Term6size_tA_K8Cvc5Term", "cvc5_grammar_add_rules::rules"], [18, 6, 1, "_CPPv422cvc5_grammar_add_rules11Cvc5Grammar8Cvc5Term6size_tA_K8Cvc5Term", "cvc5_grammar_add_rules::size"], [18, 6, 1, "_CPPv422cvc5_grammar_add_rules11Cvc5Grammar8Cvc5Term6size_tA_K8Cvc5Term", "cvc5_grammar_add_rules::symbol"], [18, 5, 1, "_CPPv417cvc5_grammar_copy11Cvc5Grammar", "cvc5_grammar_copy"], [18, 6, 1, "_CPPv417cvc5_grammar_copy11Cvc5Grammar", "cvc5_grammar_copy::grammar"], [18, 5, 1, "_CPPv417cvc5_grammar_hash11Cvc5Grammar", "cvc5_grammar_hash"], [18, 6, 1, "_CPPv417cvc5_grammar_hash11Cvc5Grammar", "cvc5_grammar_hash::grammar"], [18, 5, 1, "_CPPv424cvc5_grammar_is_disequal11Cvc5Grammar11Cvc5Grammar", "cvc5_grammar_is_disequal"], [18, 6, 1, "_CPPv424cvc5_grammar_is_disequal11Cvc5Grammar11Cvc5Grammar", "cvc5_grammar_is_disequal::a"], [18, 6, 1, "_CPPv424cvc5_grammar_is_disequal11Cvc5Grammar11Cvc5Grammar", "cvc5_grammar_is_disequal::b"], [18, 5, 1, "_CPPv421cvc5_grammar_is_equal11Cvc5Grammar11Cvc5Grammar", "cvc5_grammar_is_equal"], [18, 6, 1, "_CPPv421cvc5_grammar_is_equal11Cvc5Grammar11Cvc5Grammar", "cvc5_grammar_is_equal::a"], [18, 6, 1, "_CPPv421cvc5_grammar_is_equal11Cvc5Grammar11Cvc5Grammar", "cvc5_grammar_is_equal::b"], [18, 5, 1, "_CPPv420cvc5_grammar_release11Cvc5Grammar", "cvc5_grammar_release"], [18, 6, 1, "_CPPv420cvc5_grammar_release11Cvc5Grammar", "cvc5_grammar_release::grammar"], [18, 5, 1, "_CPPv422cvc5_grammar_to_stringK11Cvc5Grammar", "cvc5_grammar_to_string"], [18, 6, 1, "_CPPv422cvc5_grammar_to_stringK11Cvc5Grammar", "cvc5_grammar_to_string::grammar"], [11, 5, 1, "_CPPv417cvc5_is_logic_setP4Cvc5", "cvc5_is_logic_set"], [11, 6, 1, "_CPPv417cvc5_is_logic_setP4Cvc5", "cvc5_is_logic_set::cvc5"], [11, 5, 1, "_CPPv425cvc5_is_model_core_symbolP4Cvc58Cvc5Term", "cvc5_is_model_core_symbol"], [11, 6, 1, "_CPPv425cvc5_is_model_core_symbolP4Cvc58Cvc5Term", "cvc5_is_model_core_symbol::cvc5"], [11, 6, 1, "_CPPv425cvc5_is_model_core_symbolP4Cvc58Cvc5Term", "cvc5_is_model_core_symbol::v"], [11, 5, 1, "_CPPv417cvc5_is_output_onP4Cvc5PKc", "cvc5_is_output_on"], [11, 6, 1, "_CPPv417cvc5_is_output_onP4Cvc5PKc", "cvc5_is_output_on::cvc5"], [11, 6, 1, "_CPPv417cvc5_is_output_onP4Cvc5PKc", "cvc5_is_output_on::tag"], [2, 5, 1, "_CPPv414cvc5_kind_hash8Cvc5Kind", "cvc5_kind_hash"], [2, 6, 1, "_CPPv414cvc5_kind_hash8Cvc5Kind", "cvc5_kind_hash::kind"], [2, 5, 1, "_CPPv419cvc5_kind_to_string8Cvc5Kind", "cvc5_kind_to_string"], [2, 6, 1, "_CPPv419cvc5_kind_to_string8Cvc5Kind", "cvc5_kind_to_string::kind"], [11, 5, 1, "_CPPv415cvc5_mk_grammarP4Cvc56size_tA_K8Cvc5Term6size_tA_K8Cvc5Term", "cvc5_mk_grammar"], [11, 6, 1, "_CPPv415cvc5_mk_grammarP4Cvc56size_tA_K8Cvc5Term6size_tA_K8Cvc5Term", "cvc5_mk_grammar::bound_vars"], [11, 6, 1, "_CPPv415cvc5_mk_grammarP4Cvc56size_tA_K8Cvc5Term6size_tA_K8Cvc5Term", "cvc5_mk_grammar::cvc5"], [11, 6, 1, "_CPPv415cvc5_mk_grammarP4Cvc56size_tA_K8Cvc5Term6size_tA_K8Cvc5Term", "cvc5_mk_grammar::nbound_vars"], [11, 6, 1, "_CPPv415cvc5_mk_grammarP4Cvc56size_tA_K8Cvc5Term6size_tA_K8Cvc5Term", "cvc5_mk_grammar::nsymbols"], [11, 6, 1, "_CPPv415cvc5_mk_grammarP4Cvc56size_tA_K8Cvc5Term6size_tA_K8Cvc5Term", "cvc5_mk_grammar::symbols"], [28, 5, 1, "_CPPv410cvc5_mk_opP15Cvc5TermManager8Cvc5Kind6size_tA_K8uint32_t", "cvc5_mk_op"], [28, 6, 1, "_CPPv410cvc5_mk_opP15Cvc5TermManager8Cvc5Kind6size_tA_K8uint32_t", "cvc5_mk_op::idxs"], [28, 6, 1, "_CPPv410cvc5_mk_opP15Cvc5TermManager8Cvc5Kind6size_tA_K8uint32_t", "cvc5_mk_op::kind"], [28, 6, 1, "_CPPv410cvc5_mk_opP15Cvc5TermManager8Cvc5Kind6size_tA_K8uint32_t", "cvc5_mk_op::size"], [28, 6, 1, "_CPPv410cvc5_mk_opP15Cvc5TermManager8Cvc5Kind6size_tA_K8uint32_t", "cvc5_mk_op::tm"], [28, 5, 1, "_CPPv419cvc5_mk_op_from_strP15Cvc5TermManager8Cvc5KindPKc", "cvc5_mk_op_from_str"], [28, 6, 1, "_CPPv419cvc5_mk_op_from_strP15Cvc5TermManager8Cvc5KindPKc", "cvc5_mk_op_from_str::arg"], [28, 6, 1, "_CPPv419cvc5_mk_op_from_strP15Cvc5TermManager8Cvc5KindPKc", "cvc5_mk_op_from_str::kind"], [28, 6, 1, "_CPPv419cvc5_mk_op_from_strP15Cvc5TermManager8Cvc5KindPKc", "cvc5_mk_op_from_str::tm"], [7, 5, 1, "_CPPv438cvc5_modes_block_models_mode_to_string19Cvc5BlockModelsMode", "cvc5_modes_block_models_mode_to_string"], [7, 6, 1, "_CPPv438cvc5_modes_block_models_mode_to_string19Cvc5BlockModelsMode", "cvc5_modes_block_models_mode_to_string::mode"], [7, 5, 1, "_CPPv438cvc5_modes_find_synth_target_to_string19Cvc5FindSynthTarget", "cvc5_modes_find_synth_target_to_string"], [7, 6, 1, "_CPPv438cvc5_modes_find_synth_target_to_string19Cvc5FindSynthTarget", "cvc5_modes_find_synth_target_to_string::target"], [7, 5, 1, "_CPPv437cvc5_modes_learned_lit_type_to_string18Cvc5LearnedLitType", "cvc5_modes_learned_lit_type_to_string"], [7, 6, 1, "_CPPv437cvc5_modes_learned_lit_type_to_string18Cvc5LearnedLitType", "cvc5_modes_learned_lit_type_to_string::type"], [7, 5, 1, "_CPPv436cvc5_modes_proof_component_to_string18Cvc5ProofComponent", "cvc5_modes_proof_component_to_string"], [7, 6, 1, "_CPPv436cvc5_modes_proof_component_to_string18Cvc5ProofComponent", "cvc5_modes_proof_component_to_string::pc"], [7, 5, 1, "_CPPv433cvc5_modes_proof_format_to_string15Cvc5ProofFormat", "cvc5_modes_proof_format_to_string"], [7, 6, 1, "_CPPv433cvc5_modes_proof_format_to_string15Cvc5ProofFormat", "cvc5_modes_proof_format_to_string::format"], [11, 5, 1, "_CPPv48cvc5_newP15Cvc5TermManager", "cvc5_new"], [11, 6, 1, "_CPPv48cvc5_newP15Cvc5TermManager", "cvc5_new::tm"], [20, 5, 1, "_CPPv412cvc5_op_copy6Cvc5Op", "cvc5_op_copy"], [20, 6, 1, "_CPPv412cvc5_op_copy6Cvc5Op", "cvc5_op_copy::op"], [20, 5, 1, "_CPPv417cvc5_op_get_index6Cvc5Op6size_t", "cvc5_op_get_index"], [20, 6, 1, "_CPPv417cvc5_op_get_index6Cvc5Op6size_t", "cvc5_op_get_index::i"], [20, 6, 1, "_CPPv417cvc5_op_get_index6Cvc5Op6size_t", "cvc5_op_get_index::op"], [20, 5, 1, "_CPPv416cvc5_op_get_kind6Cvc5Op", "cvc5_op_get_kind"], [20, 6, 1, "_CPPv416cvc5_op_get_kind6Cvc5Op", "cvc5_op_get_kind::op"], [20, 5, 1, "_CPPv423cvc5_op_get_num_indices6Cvc5Op", "cvc5_op_get_num_indices"], [20, 6, 1, "_CPPv423cvc5_op_get_num_indices6Cvc5Op", "cvc5_op_get_num_indices::op"], [20, 5, 1, "_CPPv412cvc5_op_hash6Cvc5Op", "cvc5_op_hash"], [20, 6, 1, "_CPPv412cvc5_op_hash6Cvc5Op", "cvc5_op_hash::op"], [20, 5, 1, "_CPPv419cvc5_op_is_disequal6Cvc5Op6Cvc5Op", "cvc5_op_is_disequal"], [20, 6, 1, "_CPPv419cvc5_op_is_disequal6Cvc5Op6Cvc5Op", "cvc5_op_is_disequal::a"], [20, 6, 1, "_CPPv419cvc5_op_is_disequal6Cvc5Op6Cvc5Op", "cvc5_op_is_disequal::b"], [20, 5, 1, "_CPPv416cvc5_op_is_equal6Cvc5Op6Cvc5Op", "cvc5_op_is_equal"], [20, 6, 1, "_CPPv416cvc5_op_is_equal6Cvc5Op6Cvc5Op", "cvc5_op_is_equal::a"], [20, 6, 1, "_CPPv416cvc5_op_is_equal6Cvc5Op6Cvc5Op", "cvc5_op_is_equal::b"], [20, 5, 1, "_CPPv418cvc5_op_is_indexed6Cvc5Op", "cvc5_op_is_indexed"], [20, 6, 1, "_CPPv418cvc5_op_is_indexed6Cvc5Op", "cvc5_op_is_indexed::op"], [20, 5, 1, "_CPPv415cvc5_op_release6Cvc5Op", "cvc5_op_release"], [20, 6, 1, "_CPPv415cvc5_op_release6Cvc5Op", "cvc5_op_release::op"], [20, 5, 1, "_CPPv417cvc5_op_to_string6Cvc5Op", "cvc5_op_to_string"], [20, 6, 1, "_CPPv417cvc5_op_to_string6Cvc5Op", "cvc5_op_to_string::op"], [11, 5, 1, "_CPPv48cvc5_popP4Cvc58uint32_t", "cvc5_pop"], [11, 6, 1, "_CPPv48cvc5_popP4Cvc58uint32_t", "cvc5_pop::cvc5"], [11, 6, 1, "_CPPv48cvc5_popP4Cvc58uint32_t", "cvc5_pop::nscopes"], [11, 5, 1, "_CPPv421cvc5_print_stats_safeP4Cvc5i", "cvc5_print_stats_safe"], [11, 6, 1, "_CPPv421cvc5_print_stats_safeP4Cvc5i", "cvc5_print_stats_safe::cvc5"], [11, 6, 1, "_CPPv421cvc5_print_stats_safeP4Cvc5i", "cvc5_print_stats_safe::fd"], [21, 5, 1, "_CPPv415cvc5_proof_copy9Cvc5Proof", "cvc5_proof_copy"], [21, 6, 1, "_CPPv415cvc5_proof_copy9Cvc5Proof", "cvc5_proof_copy::proof"], [21, 5, 1, "_CPPv424cvc5_proof_get_arguments9Cvc5ProofP6size_t", "cvc5_proof_get_arguments"], [21, 6, 1, "_CPPv424cvc5_proof_get_arguments9Cvc5ProofP6size_t", "cvc5_proof_get_arguments::proof"], [21, 6, 1, "_CPPv424cvc5_proof_get_arguments9Cvc5ProofP6size_t", "cvc5_proof_get_arguments::size"], [21, 5, 1, "_CPPv423cvc5_proof_get_children9Cvc5ProofP6size_t", "cvc5_proof_get_children"], [21, 6, 1, "_CPPv423cvc5_proof_get_children9Cvc5ProofP6size_t", "cvc5_proof_get_children::proof"], [21, 6, 1, "_CPPv423cvc5_proof_get_children9Cvc5ProofP6size_t", "cvc5_proof_get_children::size"], [21, 5, 1, "_CPPv421cvc5_proof_get_result9Cvc5Proof", "cvc5_proof_get_result"], [21, 6, 1, "_CPPv421cvc5_proof_get_result9Cvc5Proof", "cvc5_proof_get_result::proof"], [21, 5, 1, "_CPPv427cvc5_proof_get_rewrite_rule9Cvc5Proof", "cvc5_proof_get_rewrite_rule"], [21, 6, 1, "_CPPv427cvc5_proof_get_rewrite_rule9Cvc5Proof", "cvc5_proof_get_rewrite_rule::proof"], [21, 5, 1, "_CPPv419cvc5_proof_get_rule9Cvc5Proof", "cvc5_proof_get_rule"], [21, 6, 1, "_CPPv419cvc5_proof_get_rule9Cvc5Proof", "cvc5_proof_get_rule::proof"], [21, 5, 1, "_CPPv415cvc5_proof_hash9Cvc5Proof", "cvc5_proof_hash"], [21, 6, 1, "_CPPv415cvc5_proof_hash9Cvc5Proof", "cvc5_proof_hash::proof"], [21, 5, 1, "_CPPv422cvc5_proof_is_disequal9Cvc5Proof9Cvc5Proof", "cvc5_proof_is_disequal"], [21, 6, 1, "_CPPv422cvc5_proof_is_disequal9Cvc5Proof9Cvc5Proof", "cvc5_proof_is_disequal::a"], [21, 6, 1, "_CPPv422cvc5_proof_is_disequal9Cvc5Proof9Cvc5Proof", "cvc5_proof_is_disequal::b"], [21, 5, 1, "_CPPv419cvc5_proof_is_equal9Cvc5Proof9Cvc5Proof", "cvc5_proof_is_equal"], [21, 6, 1, "_CPPv419cvc5_proof_is_equal9Cvc5Proof9Cvc5Proof", "cvc5_proof_is_equal::a"], [21, 6, 1, "_CPPv419cvc5_proof_is_equal9Cvc5Proof9Cvc5Proof", "cvc5_proof_is_equal::b"], [21, 5, 1, "_CPPv418cvc5_proof_release9Cvc5Proof", "cvc5_proof_release"], [21, 6, 1, "_CPPv418cvc5_proof_release9Cvc5Proof", "cvc5_proof_release::proof"], [3, 5, 1, "_CPPv428cvc5_proof_rewrite_rule_hash20Cvc5ProofRewriteRule", "cvc5_proof_rewrite_rule_hash"], [3, 6, 1, "_CPPv428cvc5_proof_rewrite_rule_hash20Cvc5ProofRewriteRule", "cvc5_proof_rewrite_rule_hash::rule"], [3, 5, 1, "_CPPv433cvc5_proof_rewrite_rule_to_string20Cvc5ProofRewriteRule", "cvc5_proof_rewrite_rule_to_string"], [3, 6, 1, "_CPPv433cvc5_proof_rewrite_rule_to_string20Cvc5ProofRewriteRule", "cvc5_proof_rewrite_rule_to_string::rule"], [3, 5, 1, "_CPPv420cvc5_proof_rule_hash13Cvc5ProofRule", "cvc5_proof_rule_hash"], [3, 6, 1, "_CPPv420cvc5_proof_rule_hash13Cvc5ProofRule", "cvc5_proof_rule_hash::rule"], [3, 5, 1, "_CPPv425cvc5_proof_rule_to_string13Cvc5ProofRule", "cvc5_proof_rule_to_string"], [3, 6, 1, "_CPPv425cvc5_proof_rule_to_string13Cvc5ProofRule", "cvc5_proof_rule_to_string::rule"], [11, 5, 1, "_CPPv420cvc5_proof_to_stringP4Cvc59Cvc5Proof15Cvc5ProofFormat6size_tA_K8Cvc5TermA_PKc", "cvc5_proof_to_string"], [11, 6, 1, "_CPPv420cvc5_proof_to_stringP4Cvc59Cvc5Proof15Cvc5ProofFormat6size_tA_K8Cvc5TermA_PKc", "cvc5_proof_to_string::assertions"], [11, 6, 1, "_CPPv420cvc5_proof_to_stringP4Cvc59Cvc5Proof15Cvc5ProofFormat6size_tA_K8Cvc5TermA_PKc", "cvc5_proof_to_string::cvc5"], [11, 6, 1, "_CPPv420cvc5_proof_to_stringP4Cvc59Cvc5Proof15Cvc5ProofFormat6size_tA_K8Cvc5TermA_PKc", "cvc5_proof_to_string::format"], [11, 6, 1, "_CPPv420cvc5_proof_to_stringP4Cvc59Cvc5Proof15Cvc5ProofFormat6size_tA_K8Cvc5TermA_PKc", "cvc5_proof_to_string::names"], [11, 6, 1, "_CPPv420cvc5_proof_to_stringP4Cvc59Cvc5Proof15Cvc5ProofFormat6size_tA_K8Cvc5TermA_PKc", "cvc5_proof_to_string::proof"], [11, 6, 1, "_CPPv420cvc5_proof_to_stringP4Cvc59Cvc5Proof15Cvc5ProofFormat6size_tA_K8Cvc5TermA_PKc", "cvc5_proof_to_string::size"], [11, 5, 1, "_CPPv49cvc5_pushP4Cvc58uint32_t", "cvc5_push"], [11, 6, 1, "_CPPv49cvc5_pushP4Cvc58uint32_t", "cvc5_push::cvc5"], [11, 6, 1, "_CPPv49cvc5_pushP4Cvc58uint32_t", "cvc5_push::nscopes"], [11, 5, 1, "_CPPv421cvc5_reset_assertionsP4Cvc5", "cvc5_reset_assertions"], [11, 6, 1, "_CPPv421cvc5_reset_assertionsP4Cvc5", "cvc5_reset_assertions::cvc5"], [22, 5, 1, "_CPPv416cvc5_result_copy10Cvc5Result", "cvc5_result_copy"], [22, 6, 1, "_CPPv416cvc5_result_copy10Cvc5Result", "cvc5_result_copy::result"], [22, 5, 1, "_CPPv435cvc5_result_get_unknown_explanationK10Cvc5Result", "cvc5_result_get_unknown_explanation"], [22, 6, 1, "_CPPv435cvc5_result_get_unknown_explanationK10Cvc5Result", "cvc5_result_get_unknown_explanation::result"], [22, 5, 1, "_CPPv416cvc5_result_hash10Cvc5Result", "cvc5_result_hash"], [22, 6, 1, "_CPPv416cvc5_result_hash10Cvc5Result", "cvc5_result_hash::result"], [22, 5, 1, "_CPPv423cvc5_result_is_disequalK10Cvc5ResultK10Cvc5Result", "cvc5_result_is_disequal"], [22, 6, 1, "_CPPv423cvc5_result_is_disequalK10Cvc5ResultK10Cvc5Result", "cvc5_result_is_disequal::a"], [22, 6, 1, "_CPPv423cvc5_result_is_disequalK10Cvc5ResultK10Cvc5Result", "cvc5_result_is_disequal::b"], [22, 5, 1, "_CPPv420cvc5_result_is_equalK10Cvc5ResultK10Cvc5Result", "cvc5_result_is_equal"], [22, 6, 1, "_CPPv420cvc5_result_is_equalK10Cvc5ResultK10Cvc5Result", "cvc5_result_is_equal::a"], [22, 6, 1, "_CPPv420cvc5_result_is_equalK10Cvc5ResultK10Cvc5Result", "cvc5_result_is_equal::b"], [22, 5, 1, "_CPPv419cvc5_result_is_nullK10Cvc5Result", "cvc5_result_is_null"], [22, 6, 1, "_CPPv419cvc5_result_is_nullK10Cvc5Result", "cvc5_result_is_null::result"], [22, 5, 1, "_CPPv418cvc5_result_is_satK10Cvc5Result", "cvc5_result_is_sat"], [22, 6, 1, "_CPPv418cvc5_result_is_satK10Cvc5Result", "cvc5_result_is_sat::result"], [22, 5, 1, "_CPPv422cvc5_result_is_unknownK10Cvc5Result", "cvc5_result_is_unknown"], [22, 6, 1, "_CPPv422cvc5_result_is_unknownK10Cvc5Result", "cvc5_result_is_unknown::result"], [22, 5, 1, "_CPPv420cvc5_result_is_unsatK10Cvc5Result", "cvc5_result_is_unsat"], [22, 6, 1, "_CPPv420cvc5_result_is_unsatK10Cvc5Result", "cvc5_result_is_unsat::result"], [22, 5, 1, "_CPPv419cvc5_result_release10Cvc5Result", "cvc5_result_release"], [22, 6, 1, "_CPPv419cvc5_result_release10Cvc5Result", "cvc5_result_release::result"], [22, 5, 1, "_CPPv421cvc5_result_to_stringK10Cvc5Result", "cvc5_result_to_string"], [22, 6, 1, "_CPPv421cvc5_result_to_stringK10Cvc5Result", "cvc5_result_to_string::result"], [4, 5, 1, "_CPPv417cvc5_rm_to_string16Cvc5RoundingMode", "cvc5_rm_to_string"], [4, 6, 1, "_CPPv417cvc5_rm_to_string16Cvc5RoundingMode", "cvc5_rm_to_string::rm"], [11, 5, 1, "_CPPv413cvc5_set_infoP4Cvc5PKcPKc", "cvc5_set_info"], [11, 6, 1, "_CPPv413cvc5_set_infoP4Cvc5PKcPKc", "cvc5_set_info::cvc5"], [11, 6, 1, "_CPPv413cvc5_set_infoP4Cvc5PKcPKc", "cvc5_set_info::keyword"], [11, 6, 1, "_CPPv413cvc5_set_infoP4Cvc5PKcPKc", "cvc5_set_info::value"], [11, 5, 1, "_CPPv414cvc5_set_logicP4Cvc5PKc", "cvc5_set_logic"], [11, 6, 1, "_CPPv414cvc5_set_logicP4Cvc5PKc", "cvc5_set_logic::cvc5"], [11, 6, 1, "_CPPv414cvc5_set_logicP4Cvc5PKc", "cvc5_set_logic::logic"], [11, 5, 1, "_CPPv415cvc5_set_optionP4Cvc5PKcPKc", "cvc5_set_option"], [11, 6, 1, "_CPPv415cvc5_set_optionP4Cvc5PKcPKc", "cvc5_set_option::cvc5"], [11, 6, 1, "_CPPv415cvc5_set_optionP4Cvc5PKcPKc", "cvc5_set_option::option"], [11, 6, 1, "_CPPv415cvc5_set_optionP4Cvc5PKcPKc", "cvc5_set_option::value"], [11, 5, 1, "_CPPv413cvc5_simplifyP4Cvc58Cvc5Termb", "cvc5_simplify"], [11, 6, 1, "_CPPv413cvc5_simplifyP4Cvc58Cvc5Termb", "cvc5_simplify::apply_subs"], [11, 6, 1, "_CPPv413cvc5_simplifyP4Cvc58Cvc5Termb", "cvc5_simplify::cvc5"], [11, 6, 1, "_CPPv413cvc5_simplifyP4Cvc58Cvc5Termb", "cvc5_simplify::term"], [23, 5, 1, "_CPPv427cvc5_sort_abstract_get_kind8Cvc5Sort", "cvc5_sort_abstract_get_kind"], [23, 6, 1, "_CPPv427cvc5_sort_abstract_get_kind8Cvc5Sort", "cvc5_sort_abstract_get_kind::sort"], [23, 5, 1, "_CPPv432cvc5_sort_array_get_element_sort8Cvc5Sort", "cvc5_sort_array_get_element_sort"], [23, 6, 1, "_CPPv432cvc5_sort_array_get_element_sort8Cvc5Sort", "cvc5_sort_array_get_element_sort::sort"], [23, 5, 1, "_CPPv430cvc5_sort_array_get_index_sort8Cvc5Sort", "cvc5_sort_array_get_index_sort"], [23, 6, 1, "_CPPv430cvc5_sort_array_get_index_sort8Cvc5Sort", "cvc5_sort_array_get_index_sort::sort"], [23, 5, 1, "_CPPv430cvc5_sort_bag_get_element_sort8Cvc5Sort", "cvc5_sort_bag_get_element_sort"], [23, 6, 1, "_CPPv430cvc5_sort_bag_get_element_sort8Cvc5Sort", "cvc5_sort_bag_get_element_sort::sort"], [23, 5, 1, "_CPPv421cvc5_sort_bv_get_size8Cvc5Sort", "cvc5_sort_bv_get_size"], [23, 6, 1, "_CPPv421cvc5_sort_bv_get_size8Cvc5Sort", "cvc5_sort_bv_get_size::sort"], [23, 5, 1, "_CPPv417cvc5_sort_compare8Cvc5Sort8Cvc5Sort", "cvc5_sort_compare"], [23, 6, 1, "_CPPv417cvc5_sort_compare8Cvc5Sort8Cvc5Sort", "cvc5_sort_compare::a"], [23, 6, 1, "_CPPv417cvc5_sort_compare8Cvc5Sort8Cvc5Sort", "cvc5_sort_compare::b"], [23, 5, 1, "_CPPv414cvc5_sort_copy8Cvc5Sort", "cvc5_sort_copy"], [23, 6, 1, "_CPPv414cvc5_sort_copy8Cvc5Sort", "cvc5_sort_copy::sort"], [23, 5, 1, "_CPPv434cvc5_sort_dt_constructor_get_arity8Cvc5Sort", "cvc5_sort_dt_constructor_get_arity"], [23, 6, 1, "_CPPv434cvc5_sort_dt_constructor_get_arity8Cvc5Sort", "cvc5_sort_dt_constructor_get_arity::sort"], [23, 5, 1, "_CPPv437cvc5_sort_dt_constructor_get_codomain8Cvc5Sort", "cvc5_sort_dt_constructor_get_codomain"], [23, 6, 1, "_CPPv437cvc5_sort_dt_constructor_get_codomain8Cvc5Sort", "cvc5_sort_dt_constructor_get_codomain::sort"], [23, 5, 1, "_CPPv435cvc5_sort_dt_constructor_get_domain8Cvc5SortP6size_t", "cvc5_sort_dt_constructor_get_domain"], [23, 6, 1, "_CPPv435cvc5_sort_dt_constructor_get_domain8Cvc5SortP6size_t", "cvc5_sort_dt_constructor_get_domain::size"], [23, 6, 1, "_CPPv435cvc5_sort_dt_constructor_get_domain8Cvc5SortP6size_t", "cvc5_sort_dt_constructor_get_domain::sort"], [23, 5, 1, "_CPPv422cvc5_sort_dt_get_arity8Cvc5Sort", "cvc5_sort_dt_get_arity"], [23, 6, 1, "_CPPv422cvc5_sort_dt_get_arity8Cvc5Sort", "cvc5_sort_dt_get_arity::sort"], [23, 5, 1, "_CPPv434cvc5_sort_dt_selector_get_codomain8Cvc5Sort", "cvc5_sort_dt_selector_get_codomain"], [23, 6, 1, "_CPPv434cvc5_sort_dt_selector_get_codomain8Cvc5Sort", "cvc5_sort_dt_selector_get_codomain::sort"], [23, 5, 1, "_CPPv432cvc5_sort_dt_selector_get_domain8Cvc5Sort", "cvc5_sort_dt_selector_get_domain"], [23, 6, 1, "_CPPv432cvc5_sort_dt_selector_get_domain8Cvc5Sort", "cvc5_sort_dt_selector_get_domain::sort"], [23, 5, 1, "_CPPv432cvc5_sort_dt_tester_get_codomain8Cvc5Sort", "cvc5_sort_dt_tester_get_codomain"], [23, 6, 1, "_CPPv432cvc5_sort_dt_tester_get_codomain8Cvc5Sort", "cvc5_sort_dt_tester_get_codomain::sort"], [23, 5, 1, "_CPPv430cvc5_sort_dt_tester_get_domain8Cvc5Sort", "cvc5_sort_dt_tester_get_domain"], [23, 6, 1, "_CPPv430cvc5_sort_dt_tester_get_domain8Cvc5Sort", "cvc5_sort_dt_tester_get_domain::sort"], [23, 5, 1, "_CPPv421cvc5_sort_ff_get_size8Cvc5Sort", "cvc5_sort_ff_get_size"], [23, 6, 1, "_CPPv421cvc5_sort_ff_get_size8Cvc5Sort", "cvc5_sort_ff_get_size::sort"], [23, 5, 1, "_CPPv425cvc5_sort_fp_get_exp_size8Cvc5Sort", "cvc5_sort_fp_get_exp_size"], [23, 6, 1, "_CPPv425cvc5_sort_fp_get_exp_size8Cvc5Sort", "cvc5_sort_fp_get_exp_size::sort"], [23, 5, 1, "_CPPv425cvc5_sort_fp_get_sig_size8Cvc5Sort", "cvc5_sort_fp_get_sig_size"], [23, 6, 1, "_CPPv425cvc5_sort_fp_get_sig_size8Cvc5Sort", "cvc5_sort_fp_get_sig_size::sort"], [23, 5, 1, "_CPPv423cvc5_sort_fun_get_arity8Cvc5Sort", "cvc5_sort_fun_get_arity"], [23, 6, 1, "_CPPv423cvc5_sort_fun_get_arity8Cvc5Sort", "cvc5_sort_fun_get_arity::sort"], [23, 5, 1, "_CPPv426cvc5_sort_fun_get_codomain8Cvc5Sort", "cvc5_sort_fun_get_codomain"], [23, 6, 1, "_CPPv426cvc5_sort_fun_get_codomain8Cvc5Sort", "cvc5_sort_fun_get_codomain::sort"], [23, 5, 1, "_CPPv424cvc5_sort_fun_get_domain8Cvc5SortP6size_t", "cvc5_sort_fun_get_domain"], [23, 6, 1, "_CPPv424cvc5_sort_fun_get_domain8Cvc5SortP6size_t", "cvc5_sort_fun_get_domain::size"], [23, 6, 1, "_CPPv424cvc5_sort_fun_get_domain8Cvc5SortP6size_t", "cvc5_sort_fun_get_domain::sort"], [23, 5, 1, "_CPPv422cvc5_sort_get_datatype8Cvc5Sort", "cvc5_sort_get_datatype"], [23, 6, 1, "_CPPv422cvc5_sort_get_datatype8Cvc5Sort", "cvc5_sort_get_datatype::sort"], [23, 5, 1, "_CPPv437cvc5_sort_get_instantiated_parameters8Cvc5SortP6size_t", "cvc5_sort_get_instantiated_parameters"], [23, 6, 1, "_CPPv437cvc5_sort_get_instantiated_parameters8Cvc5SortP6size_t", "cvc5_sort_get_instantiated_parameters::size"], [23, 6, 1, "_CPPv437cvc5_sort_get_instantiated_parameters8Cvc5SortP6size_t", "cvc5_sort_get_instantiated_parameters::sort"], [23, 5, 1, "_CPPv418cvc5_sort_get_kind8Cvc5Sort", "cvc5_sort_get_kind"], [23, 6, 1, "_CPPv418cvc5_sort_get_kind8Cvc5Sort", "cvc5_sort_get_kind::sort"], [23, 5, 1, "_CPPv420cvc5_sort_get_symbol8Cvc5Sort", "cvc5_sort_get_symbol"], [23, 6, 1, "_CPPv420cvc5_sort_get_symbol8Cvc5Sort", "cvc5_sort_get_symbol::sort"], [23, 5, 1, "_CPPv444cvc5_sort_get_uninterpreted_sort_constructor8Cvc5Sort", "cvc5_sort_get_uninterpreted_sort_constructor"], [23, 6, 1, "_CPPv444cvc5_sort_get_uninterpreted_sort_constructor8Cvc5Sort", "cvc5_sort_get_uninterpreted_sort_constructor::sort"], [23, 5, 1, "_CPPv420cvc5_sort_has_symbol8Cvc5Sort", "cvc5_sort_has_symbol"], [23, 6, 1, "_CPPv420cvc5_sort_has_symbol8Cvc5Sort", "cvc5_sort_has_symbol::sort"], [23, 5, 1, "_CPPv414cvc5_sort_hash8Cvc5Sort", "cvc5_sort_hash"], [23, 6, 1, "_CPPv414cvc5_sort_hash8Cvc5Sort", "cvc5_sort_hash::sort"], [23, 5, 1, "_CPPv421cvc5_sort_instantiate8Cvc5Sort6size_tA_K8Cvc5Sort", "cvc5_sort_instantiate"], [23, 6, 1, "_CPPv421cvc5_sort_instantiate8Cvc5Sort6size_tA_K8Cvc5Sort", "cvc5_sort_instantiate::params"], [23, 6, 1, "_CPPv421cvc5_sort_instantiate8Cvc5Sort6size_tA_K8Cvc5Sort", "cvc5_sort_instantiate::size"], [23, 6, 1, "_CPPv421cvc5_sort_instantiate8Cvc5Sort6size_tA_K8Cvc5Sort", "cvc5_sort_instantiate::sort"], [23, 5, 1, "_CPPv421cvc5_sort_is_abstract8Cvc5Sort", "cvc5_sort_is_abstract"], [23, 6, 1, "_CPPv421cvc5_sort_is_abstract8Cvc5Sort", "cvc5_sort_is_abstract::sort"], [23, 5, 1, "_CPPv418cvc5_sort_is_array8Cvc5Sort", "cvc5_sort_is_array"], [23, 6, 1, "_CPPv418cvc5_sort_is_array8Cvc5Sort", "cvc5_sort_is_array::sort"], [23, 5, 1, "_CPPv416cvc5_sort_is_bag8Cvc5Sort", "cvc5_sort_is_bag"], [23, 6, 1, "_CPPv416cvc5_sort_is_bag8Cvc5Sort", "cvc5_sort_is_bag::sort"], [23, 5, 1, "_CPPv420cvc5_sort_is_boolean8Cvc5Sort", "cvc5_sort_is_boolean"], [23, 6, 1, "_CPPv420cvc5_sort_is_boolean8Cvc5Sort", "cvc5_sort_is_boolean::sort"], [23, 5, 1, "_CPPv415cvc5_sort_is_bv8Cvc5Sort", "cvc5_sort_is_bv"], [23, 6, 1, "_CPPv415cvc5_sort_is_bv8Cvc5Sort", "cvc5_sort_is_bv::sort"], [23, 5, 1, "_CPPv421cvc5_sort_is_disequal8Cvc5Sort8Cvc5Sort", "cvc5_sort_is_disequal"], [23, 6, 1, "_CPPv421cvc5_sort_is_disequal8Cvc5Sort8Cvc5Sort", "cvc5_sort_is_disequal::a"], [23, 6, 1, "_CPPv421cvc5_sort_is_disequal8Cvc5Sort8Cvc5Sort", "cvc5_sort_is_disequal::b"], [23, 5, 1, "_CPPv415cvc5_sort_is_dt8Cvc5Sort", "cvc5_sort_is_dt"], [23, 6, 1, "_CPPv415cvc5_sort_is_dt8Cvc5Sort", "cvc5_sort_is_dt::sort"], [23, 5, 1, "_CPPv427cvc5_sort_is_dt_constructor8Cvc5Sort", "cvc5_sort_is_dt_constructor"], [23, 6, 1, "_CPPv427cvc5_sort_is_dt_constructor8Cvc5Sort", "cvc5_sort_is_dt_constructor::sort"], [23, 5, 1, "_CPPv424cvc5_sort_is_dt_selector8Cvc5Sort", "cvc5_sort_is_dt_selector"], [23, 6, 1, "_CPPv424cvc5_sort_is_dt_selector8Cvc5Sort", "cvc5_sort_is_dt_selector::sort"], [23, 5, 1, "_CPPv422cvc5_sort_is_dt_tester8Cvc5Sort", "cvc5_sort_is_dt_tester"], [23, 6, 1, "_CPPv422cvc5_sort_is_dt_tester8Cvc5Sort", "cvc5_sort_is_dt_tester::sort"], [23, 5, 1, "_CPPv423cvc5_sort_is_dt_updater8Cvc5Sort", "cvc5_sort_is_dt_updater"], [23, 6, 1, "_CPPv423cvc5_sort_is_dt_updater8Cvc5Sort", "cvc5_sort_is_dt_updater::sort"], [23, 5, 1, "_CPPv418cvc5_sort_is_equal8Cvc5Sort8Cvc5Sort", "cvc5_sort_is_equal"], [23, 6, 1, "_CPPv418cvc5_sort_is_equal8Cvc5Sort8Cvc5Sort", "cvc5_sort_is_equal::a"], [23, 6, 1, "_CPPv418cvc5_sort_is_equal8Cvc5Sort8Cvc5Sort", "cvc5_sort_is_equal::b"], [23, 5, 1, "_CPPv415cvc5_sort_is_ff8Cvc5Sort", "cvc5_sort_is_ff"], [23, 6, 1, "_CPPv415cvc5_sort_is_ff8Cvc5Sort", "cvc5_sort_is_ff::sort"], [23, 5, 1, "_CPPv415cvc5_sort_is_fp8Cvc5Sort", "cvc5_sort_is_fp"], [23, 6, 1, "_CPPv415cvc5_sort_is_fp8Cvc5Sort", "cvc5_sort_is_fp::sort"], [23, 5, 1, "_CPPv416cvc5_sort_is_fun8Cvc5Sort", "cvc5_sort_is_fun"], [23, 6, 1, "_CPPv416cvc5_sort_is_fun8Cvc5Sort", "cvc5_sort_is_fun::sort"], [23, 5, 1, "_CPPv425cvc5_sort_is_instantiated8Cvc5Sort", "cvc5_sort_is_instantiated"], [23, 6, 1, "_CPPv425cvc5_sort_is_instantiated8Cvc5Sort", "cvc5_sort_is_instantiated::sort"], [23, 5, 1, "_CPPv420cvc5_sort_is_integer8Cvc5Sort", "cvc5_sort_is_integer"], [23, 6, 1, "_CPPv420cvc5_sort_is_integer8Cvc5Sort", "cvc5_sort_is_integer::sort"], [23, 5, 1, "_CPPv421cvc5_sort_is_nullable8Cvc5Sort", "cvc5_sort_is_nullable"], [23, 6, 1, "_CPPv421cvc5_sort_is_nullable8Cvc5Sort", "cvc5_sort_is_nullable::sort"], [23, 5, 1, "_CPPv422cvc5_sort_is_predicate8Cvc5Sort", "cvc5_sort_is_predicate"], [23, 6, 1, "_CPPv422cvc5_sort_is_predicate8Cvc5Sort", "cvc5_sort_is_predicate::sort"], [23, 5, 1, "_CPPv417cvc5_sort_is_real8Cvc5Sort", "cvc5_sort_is_real"], [23, 6, 1, "_CPPv417cvc5_sort_is_real8Cvc5Sort", "cvc5_sort_is_real::sort"], [23, 5, 1, "_CPPv419cvc5_sort_is_record8Cvc5Sort", "cvc5_sort_is_record"], [23, 6, 1, "_CPPv419cvc5_sort_is_record8Cvc5Sort", "cvc5_sort_is_record::sort"], [23, 5, 1, "_CPPv419cvc5_sort_is_regexp8Cvc5Sort", "cvc5_sort_is_regexp"], [23, 6, 1, "_CPPv419cvc5_sort_is_regexp8Cvc5Sort", "cvc5_sort_is_regexp::sort"], [23, 5, 1, "_CPPv415cvc5_sort_is_rm8Cvc5Sort", "cvc5_sort_is_rm"], [23, 6, 1, "_CPPv415cvc5_sort_is_rm8Cvc5Sort", "cvc5_sort_is_rm::sort"], [23, 5, 1, "_CPPv421cvc5_sort_is_sequence8Cvc5Sort", "cvc5_sort_is_sequence"], [23, 6, 1, "_CPPv421cvc5_sort_is_sequence8Cvc5Sort", "cvc5_sort_is_sequence::sort"], [23, 5, 1, "_CPPv416cvc5_sort_is_set8Cvc5Sort", "cvc5_sort_is_set"], [23, 6, 1, "_CPPv416cvc5_sort_is_set8Cvc5Sort", "cvc5_sort_is_set::sort"], [23, 5, 1, "_CPPv419cvc5_sort_is_string8Cvc5Sort", "cvc5_sort_is_string"], [23, 6, 1, "_CPPv419cvc5_sort_is_string8Cvc5Sort", "cvc5_sort_is_string::sort"], [23, 5, 1, "_CPPv418cvc5_sort_is_tuple8Cvc5Sort", "cvc5_sort_is_tuple"], [23, 6, 1, "_CPPv418cvc5_sort_is_tuple8Cvc5Sort", "cvc5_sort_is_tuple::sort"], [23, 5, 1, "_CPPv431cvc5_sort_is_uninterpreted_sort8Cvc5Sort", "cvc5_sort_is_uninterpreted_sort"], [23, 6, 1, "_CPPv431cvc5_sort_is_uninterpreted_sort8Cvc5Sort", "cvc5_sort_is_uninterpreted_sort::sort"], [23, 5, 1, "_CPPv443cvc5_sort_is_uninterpreted_sort_constructor8Cvc5Sort", "cvc5_sort_is_uninterpreted_sort_constructor"], [23, 6, 1, "_CPPv443cvc5_sort_is_uninterpreted_sort_constructor8Cvc5Sort", "cvc5_sort_is_uninterpreted_sort_constructor::sort"], [5, 5, 1, "_CPPv419cvc5_sort_kind_hash12Cvc5SortKind", "cvc5_sort_kind_hash"], [5, 6, 1, "_CPPv419cvc5_sort_kind_hash12Cvc5SortKind", "cvc5_sort_kind_hash::kind"], [5, 5, 1, "_CPPv424cvc5_sort_kind_to_string12Cvc5SortKind", "cvc5_sort_kind_to_string"], [5, 6, 1, "_CPPv424cvc5_sort_kind_to_string12Cvc5SortKind", "cvc5_sort_kind_to_string::kind"], [23, 5, 1, "_CPPv435cvc5_sort_nullable_get_element_sort8Cvc5Sort", "cvc5_sort_nullable_get_element_sort"], [23, 6, 1, "_CPPv435cvc5_sort_nullable_get_element_sort8Cvc5Sort", "cvc5_sort_nullable_get_element_sort::sort"], [23, 5, 1, "_CPPv417cvc5_sort_release8Cvc5Sort", "cvc5_sort_release"], [23, 6, 1, "_CPPv417cvc5_sort_release8Cvc5Sort", "cvc5_sort_release::sort"], [23, 5, 1, "_CPPv435cvc5_sort_sequence_get_element_sort8Cvc5Sort", "cvc5_sort_sequence_get_element_sort"], [23, 6, 1, "_CPPv435cvc5_sort_sequence_get_element_sort8Cvc5Sort", "cvc5_sort_sequence_get_element_sort::sort"], [23, 5, 1, "_CPPv430cvc5_sort_set_get_element_sort8Cvc5Sort", "cvc5_sort_set_get_element_sort"], [23, 6, 1, "_CPPv430cvc5_sort_set_get_element_sort8Cvc5Sort", "cvc5_sort_set_get_element_sort::sort"], [23, 5, 1, "_CPPv420cvc5_sort_substitute8Cvc5Sort8Cvc5Sort8Cvc5Sort", "cvc5_sort_substitute"], [23, 6, 1, "_CPPv420cvc5_sort_substitute8Cvc5Sort8Cvc5Sort8Cvc5Sort", "cvc5_sort_substitute::replacement"], [23, 6, 1, "_CPPv420cvc5_sort_substitute8Cvc5Sort8Cvc5Sort8Cvc5Sort", "cvc5_sort_substitute::s"], [23, 6, 1, "_CPPv420cvc5_sort_substitute8Cvc5Sort8Cvc5Sort8Cvc5Sort", "cvc5_sort_substitute::sort"], [23, 5, 1, "_CPPv426cvc5_sort_substitute_sorts8Cvc5Sort6size_tA_K8Cvc5SortA_K8Cvc5Sort", "cvc5_sort_substitute_sorts"], [23, 6, 1, "_CPPv426cvc5_sort_substitute_sorts8Cvc5Sort6size_tA_K8Cvc5SortA_K8Cvc5Sort", "cvc5_sort_substitute_sorts::replacements"], [23, 6, 1, "_CPPv426cvc5_sort_substitute_sorts8Cvc5Sort6size_tA_K8Cvc5SortA_K8Cvc5Sort", "cvc5_sort_substitute_sorts::size"], [23, 6, 1, "_CPPv426cvc5_sort_substitute_sorts8Cvc5Sort6size_tA_K8Cvc5SortA_K8Cvc5Sort", "cvc5_sort_substitute_sorts::sort"], [23, 6, 1, "_CPPv426cvc5_sort_substitute_sorts8Cvc5Sort6size_tA_K8Cvc5SortA_K8Cvc5Sort", "cvc5_sort_substitute_sorts::sorts"], [23, 5, 1, "_CPPv419cvc5_sort_to_string8Cvc5Sort", "cvc5_sort_to_string"], [23, 6, 1, "_CPPv419cvc5_sort_to_string8Cvc5Sort", "cvc5_sort_to_string::sort"], [23, 5, 1, "_CPPv433cvc5_sort_tuple_get_element_sorts8Cvc5SortP6size_t", "cvc5_sort_tuple_get_element_sorts"], [23, 6, 1, "_CPPv433cvc5_sort_tuple_get_element_sorts8Cvc5SortP6size_t", "cvc5_sort_tuple_get_element_sorts::size"], [23, 6, 1, "_CPPv433cvc5_sort_tuple_get_element_sorts8Cvc5SortP6size_t", "cvc5_sort_tuple_get_element_sorts::sort"], [23, 5, 1, "_CPPv426cvc5_sort_tuple_get_length8Cvc5Sort", "cvc5_sort_tuple_get_length"], [23, 6, 1, "_CPPv426cvc5_sort_tuple_get_length8Cvc5Sort", "cvc5_sort_tuple_get_length::sort"], [23, 5, 1, "_CPPv450cvc5_sort_uninterpreted_sort_constructor_get_arity8Cvc5Sort", "cvc5_sort_uninterpreted_sort_constructor_get_arity"], [23, 6, 1, "_CPPv450cvc5_sort_uninterpreted_sort_constructor_get_arity8Cvc5Sort", "cvc5_sort_uninterpreted_sort_constructor_get_arity::sort"], [24, 5, 1, "_CPPv420cvc5_stat_get_double8Cvc5Stat", "cvc5_stat_get_double"], [24, 6, 1, "_CPPv420cvc5_stat_get_double8Cvc5Stat", "cvc5_stat_get_double::stat"], [24, 5, 1, "_CPPv423cvc5_stat_get_histogram8Cvc5StatA_PPKcA_P8uint64_tP6size_t", "cvc5_stat_get_histogram"], [24, 6, 1, "_CPPv423cvc5_stat_get_histogram8Cvc5StatA_PPKcA_P8uint64_tP6size_t", "cvc5_stat_get_histogram::keys"], [24, 6, 1, "_CPPv423cvc5_stat_get_histogram8Cvc5StatA_PPKcA_P8uint64_tP6size_t", "cvc5_stat_get_histogram::size"], [24, 6, 1, "_CPPv423cvc5_stat_get_histogram8Cvc5StatA_PPKcA_P8uint64_tP6size_t", "cvc5_stat_get_histogram::stat"], [24, 6, 1, "_CPPv423cvc5_stat_get_histogram8Cvc5StatA_PPKcA_P8uint64_tP6size_t", "cvc5_stat_get_histogram::values"], [24, 5, 1, "_CPPv417cvc5_stat_get_int8Cvc5Stat", "cvc5_stat_get_int"], [24, 6, 1, "_CPPv417cvc5_stat_get_int8Cvc5Stat", "cvc5_stat_get_int::stat"], [24, 5, 1, "_CPPv420cvc5_stat_get_string8Cvc5Stat", "cvc5_stat_get_string"], [24, 6, 1, "_CPPv420cvc5_stat_get_string8Cvc5Stat", "cvc5_stat_get_string::stat"], [24, 5, 1, "_CPPv420cvc5_stat_is_default8Cvc5Stat", "cvc5_stat_is_default"], [24, 6, 1, "_CPPv420cvc5_stat_is_default8Cvc5Stat", "cvc5_stat_is_default::stat"], [24, 5, 1, "_CPPv419cvc5_stat_is_double8Cvc5Stat", "cvc5_stat_is_double"], [24, 6, 1, "_CPPv419cvc5_stat_is_double8Cvc5Stat", "cvc5_stat_is_double::stat"], [24, 5, 1, "_CPPv422cvc5_stat_is_histogram8Cvc5Stat", "cvc5_stat_is_histogram"], [24, 6, 1, "_CPPv422cvc5_stat_is_histogram8Cvc5Stat", "cvc5_stat_is_histogram::stat"], [24, 5, 1, "_CPPv416cvc5_stat_is_int8Cvc5Stat", "cvc5_stat_is_int"], [24, 6, 1, "_CPPv416cvc5_stat_is_int8Cvc5Stat", "cvc5_stat_is_int::stat"], [24, 5, 1, "_CPPv421cvc5_stat_is_internal8Cvc5Stat", "cvc5_stat_is_internal"], [24, 6, 1, "_CPPv421cvc5_stat_is_internal8Cvc5Stat", "cvc5_stat_is_internal::stat"], [24, 5, 1, "_CPPv419cvc5_stat_is_string8Cvc5Stat", "cvc5_stat_is_string"], [24, 6, 1, "_CPPv419cvc5_stat_is_string8Cvc5Stat", "cvc5_stat_is_string::stat"], [24, 5, 1, "_CPPv419cvc5_stat_to_string8Cvc5Stat", "cvc5_stat_to_string"], [24, 6, 1, "_CPPv419cvc5_stat_to_string8Cvc5Stat", "cvc5_stat_to_string::stat"], [11, 5, 1, "_CPPv414cvc5_synth_funP4Cvc5PKc6size_tA_K8Cvc5Term8Cvc5Sort", "cvc5_synth_fun"], [11, 6, 1, "_CPPv414cvc5_synth_funP4Cvc5PKc6size_tA_K8Cvc5Term8Cvc5Sort", "cvc5_synth_fun::bound_vars"], [11, 6, 1, "_CPPv414cvc5_synth_funP4Cvc5PKc6size_tA_K8Cvc5Term8Cvc5Sort", "cvc5_synth_fun::cvc5"], [11, 6, 1, "_CPPv414cvc5_synth_funP4Cvc5PKc6size_tA_K8Cvc5Term8Cvc5Sort", "cvc5_synth_fun::size"], [11, 6, 1, "_CPPv414cvc5_synth_funP4Cvc5PKc6size_tA_K8Cvc5Term8Cvc5Sort", "cvc5_synth_fun::sort"], [11, 6, 1, "_CPPv414cvc5_synth_funP4Cvc5PKc6size_tA_K8Cvc5Term8Cvc5Sort", "cvc5_synth_fun::symbol"], [11, 5, 1, "_CPPv427cvc5_synth_fun_with_grammarP4Cvc5PKc6size_tA_K8Cvc5Term8Cvc5Sort11Cvc5Grammar", "cvc5_synth_fun_with_grammar"], [11, 6, 1, "_CPPv427cvc5_synth_fun_with_grammarP4Cvc5PKc6size_tA_K8Cvc5Term8Cvc5Sort11Cvc5Grammar", "cvc5_synth_fun_with_grammar::bound_vars"], [11, 6, 1, "_CPPv427cvc5_synth_fun_with_grammarP4Cvc5PKc6size_tA_K8Cvc5Term8Cvc5Sort11Cvc5Grammar", "cvc5_synth_fun_with_grammar::cvc5"], [11, 6, 1, "_CPPv427cvc5_synth_fun_with_grammarP4Cvc5PKc6size_tA_K8Cvc5Term8Cvc5Sort11Cvc5Grammar", "cvc5_synth_fun_with_grammar::grammar"], [11, 6, 1, "_CPPv427cvc5_synth_fun_with_grammarP4Cvc5PKc6size_tA_K8Cvc5Term8Cvc5Sort11Cvc5Grammar", "cvc5_synth_fun_with_grammar::size"], [11, 6, 1, "_CPPv427cvc5_synth_fun_with_grammarP4Cvc5PKc6size_tA_K8Cvc5Term8Cvc5Sort11Cvc5Grammar", "cvc5_synth_fun_with_grammar::sort"], [11, 6, 1, "_CPPv427cvc5_synth_fun_with_grammarP4Cvc5PKc6size_tA_K8Cvc5Term8Cvc5Sort11Cvc5Grammar", "cvc5_synth_fun_with_grammar::symbol"], [27, 5, 1, "_CPPv417cvc5_term_compare8Cvc5Term8Cvc5Term", "cvc5_term_compare"], [27, 6, 1, "_CPPv417cvc5_term_compare8Cvc5Term8Cvc5Term", "cvc5_term_compare::a"], [27, 6, 1, "_CPPv417cvc5_term_compare8Cvc5Term8Cvc5Term", "cvc5_term_compare::b"], [27, 5, 1, "_CPPv414cvc5_term_copy8Cvc5Term", "cvc5_term_copy"], [27, 6, 1, "_CPPv414cvc5_term_copy8Cvc5Term", "cvc5_term_copy::term"], [27, 5, 1, "_CPPv427cvc5_term_get_boolean_value8Cvc5Term", "cvc5_term_get_boolean_value"], [27, 6, 1, "_CPPv427cvc5_term_get_boolean_value8Cvc5Term", "cvc5_term_get_boolean_value::term"], [27, 5, 1, "_CPPv422cvc5_term_get_bv_value8Cvc5Term8uint32_t", "cvc5_term_get_bv_value"], [27, 6, 1, "_CPPv422cvc5_term_get_bv_value8Cvc5Term8uint32_t", "cvc5_term_get_bv_value::base"], [27, 6, 1, "_CPPv422cvc5_term_get_bv_value8Cvc5Term8uint32_t", "cvc5_term_get_bv_value::term"], [27, 5, 1, "_CPPv436cvc5_term_get_cardinality_constraint8Cvc5TermP8Cvc5SortP8uint32_t", "cvc5_term_get_cardinality_constraint"], [27, 6, 1, "_CPPv436cvc5_term_get_cardinality_constraint8Cvc5TermP8Cvc5SortP8uint32_t", "cvc5_term_get_cardinality_constraint::sort"], [27, 6, 1, "_CPPv436cvc5_term_get_cardinality_constraint8Cvc5TermP8Cvc5SortP8uint32_t", "cvc5_term_get_cardinality_constraint::term"], [27, 6, 1, "_CPPv436cvc5_term_get_cardinality_constraint8Cvc5TermP8Cvc5SortP8uint32_t", "cvc5_term_get_cardinality_constraint::upper"], [27, 5, 1, "_CPPv419cvc5_term_get_child8Cvc5Term6size_t", "cvc5_term_get_child"], [27, 6, 1, "_CPPv419cvc5_term_get_child8Cvc5Term6size_t", "cvc5_term_get_child::index"], [27, 6, 1, "_CPPv419cvc5_term_get_child8Cvc5Term6size_t", "cvc5_term_get_child::term"], [27, 5, 1, "_CPPv430cvc5_term_get_const_array_base8Cvc5Term", "cvc5_term_get_const_array_base"], [27, 6, 1, "_CPPv430cvc5_term_get_const_array_base8Cvc5Term", "cvc5_term_get_const_array_base::term"], [27, 5, 1, "_CPPv422cvc5_term_get_ff_value8Cvc5Term", "cvc5_term_get_ff_value"], [27, 6, 1, "_CPPv422cvc5_term_get_ff_value8Cvc5Term", "cvc5_term_get_ff_value::term"], [27, 5, 1, "_CPPv422cvc5_term_get_fp_value8Cvc5TermP8uint32_tP8uint32_tP8Cvc5Term", "cvc5_term_get_fp_value"], [27, 6, 1, "_CPPv422cvc5_term_get_fp_value8Cvc5TermP8uint32_tP8uint32_tP8Cvc5Term", "cvc5_term_get_fp_value::ew"], [27, 6, 1, "_CPPv422cvc5_term_get_fp_value8Cvc5TermP8uint32_tP8uint32_tP8Cvc5Term", "cvc5_term_get_fp_value::sw"], [27, 6, 1, "_CPPv422cvc5_term_get_fp_value8Cvc5TermP8uint32_tP8uint32_tP8Cvc5Term", "cvc5_term_get_fp_value::term"], [27, 6, 1, "_CPPv422cvc5_term_get_fp_value8Cvc5TermP8uint32_tP8uint32_tP8Cvc5Term", "cvc5_term_get_fp_value::val"], [27, 5, 1, "_CPPv416cvc5_term_get_id8Cvc5Term", "cvc5_term_get_id"], [27, 6, 1, "_CPPv416cvc5_term_get_id8Cvc5Term", "cvc5_term_get_id::term"], [27, 5, 1, "_CPPv425cvc5_term_get_int32_value8Cvc5Term", "cvc5_term_get_int32_value"], [27, 6, 1, "_CPPv425cvc5_term_get_int32_value8Cvc5Term", "cvc5_term_get_int32_value::term"], [27, 5, 1, "_CPPv425cvc5_term_get_int64_value8Cvc5Term", "cvc5_term_get_int64_value"], [27, 6, 1, "_CPPv425cvc5_term_get_int64_value8Cvc5Term", "cvc5_term_get_int64_value::term"], [27, 5, 1, "_CPPv427cvc5_term_get_integer_value8Cvc5Term", "cvc5_term_get_integer_value"], [27, 6, 1, "_CPPv427cvc5_term_get_integer_value8Cvc5Term", "cvc5_term_get_integer_value::term"], [27, 5, 1, "_CPPv418cvc5_term_get_kind8Cvc5Term", "cvc5_term_get_kind"], [27, 6, 1, "_CPPv418cvc5_term_get_kind8Cvc5Term", "cvc5_term_get_kind::term"], [27, 5, 1, "_CPPv426cvc5_term_get_num_children8Cvc5Term", "cvc5_term_get_num_children"], [27, 6, 1, "_CPPv426cvc5_term_get_num_children8Cvc5Term", "cvc5_term_get_num_children::term"], [27, 5, 1, "_CPPv416cvc5_term_get_op8Cvc5Term", "cvc5_term_get_op"], [27, 6, 1, "_CPPv416cvc5_term_get_op8Cvc5Term", "cvc5_term_get_op::term"], [27, 5, 1, "_CPPv426cvc5_term_get_real32_value8Cvc5TermP7int32_tP8uint32_t", "cvc5_term_get_real32_value"], [27, 6, 1, "_CPPv426cvc5_term_get_real32_value8Cvc5TermP7int32_tP8uint32_t", "cvc5_term_get_real32_value::den"], [27, 6, 1, "_CPPv426cvc5_term_get_real32_value8Cvc5TermP7int32_tP8uint32_t", "cvc5_term_get_real32_value::num"], [27, 6, 1, "_CPPv426cvc5_term_get_real32_value8Cvc5TermP7int32_tP8uint32_t", "cvc5_term_get_real32_value::term"], [27, 5, 1, "_CPPv426cvc5_term_get_real64_value8Cvc5TermP7int64_tP8uint64_t", "cvc5_term_get_real64_value"], [27, 6, 1, "_CPPv426cvc5_term_get_real64_value8Cvc5TermP7int64_tP8uint64_t", "cvc5_term_get_real64_value::den"], [27, 6, 1, "_CPPv426cvc5_term_get_real64_value8Cvc5TermP7int64_tP8uint64_t", "cvc5_term_get_real64_value::num"], [27, 6, 1, "_CPPv426cvc5_term_get_real64_value8Cvc5TermP7int64_tP8uint64_t", "cvc5_term_get_real64_value::term"], [27, 5, 1, "_CPPv455cvc5_term_get_real_algebraic_number_defining_polynomial8Cvc5Term8Cvc5Term", "cvc5_term_get_real_algebraic_number_defining_polynomial"], [27, 6, 1, "_CPPv455cvc5_term_get_real_algebraic_number_defining_polynomial8Cvc5Term8Cvc5Term", "cvc5_term_get_real_algebraic_number_defining_polynomial::term"], [27, 6, 1, "_CPPv455cvc5_term_get_real_algebraic_number_defining_polynomial8Cvc5Term8Cvc5Term", "cvc5_term_get_real_algebraic_number_defining_polynomial::v"], [27, 5, 1, "_CPPv447cvc5_term_get_real_algebraic_number_lower_bound8Cvc5Term", "cvc5_term_get_real_algebraic_number_lower_bound"], [27, 6, 1, "_CPPv447cvc5_term_get_real_algebraic_number_lower_bound8Cvc5Term", "cvc5_term_get_real_algebraic_number_lower_bound::term"], [27, 5, 1, "_CPPv447cvc5_term_get_real_algebraic_number_upper_bound8Cvc5Term", "cvc5_term_get_real_algebraic_number_upper_bound"], [27, 6, 1, "_CPPv447cvc5_term_get_real_algebraic_number_upper_bound8Cvc5Term", "cvc5_term_get_real_algebraic_number_upper_bound::term"], [27, 5, 1, "_CPPv440cvc5_term_get_real_or_integer_value_sign8Cvc5Term", "cvc5_term_get_real_or_integer_value_sign"], [27, 6, 1, "_CPPv440cvc5_term_get_real_or_integer_value_sign8Cvc5Term", "cvc5_term_get_real_or_integer_value_sign::term"], [27, 5, 1, "_CPPv424cvc5_term_get_real_value8Cvc5Term", "cvc5_term_get_real_value"], [27, 6, 1, "_CPPv424cvc5_term_get_real_value8Cvc5Term", "cvc5_term_get_real_value::term"], [27, 5, 1, "_CPPv422cvc5_term_get_rm_value8Cvc5Term", "cvc5_term_get_rm_value"], [27, 6, 1, "_CPPv422cvc5_term_get_rm_value8Cvc5Term", "cvc5_term_get_rm_value::term"], [27, 5, 1, "_CPPv428cvc5_term_get_sequence_value8Cvc5TermP6size_t", "cvc5_term_get_sequence_value"], [27, 6, 1, "_CPPv428cvc5_term_get_sequence_value8Cvc5TermP6size_t", "cvc5_term_get_sequence_value::size"], [27, 6, 1, "_CPPv428cvc5_term_get_sequence_value8Cvc5TermP6size_t", "cvc5_term_get_sequence_value::term"], [27, 5, 1, "_CPPv423cvc5_term_get_set_value8Cvc5TermP6size_t", "cvc5_term_get_set_value"], [27, 6, 1, "_CPPv423cvc5_term_get_set_value8Cvc5TermP6size_t", "cvc5_term_get_set_value::size"], [27, 6, 1, "_CPPv423cvc5_term_get_set_value8Cvc5TermP6size_t", "cvc5_term_get_set_value::term"], [27, 5, 1, "_CPPv423cvc5_term_get_skolem_id8Cvc5Term", "cvc5_term_get_skolem_id"], [27, 6, 1, "_CPPv423cvc5_term_get_skolem_id8Cvc5Term", "cvc5_term_get_skolem_id::term"], [27, 5, 1, "_CPPv428cvc5_term_get_skolem_indices8Cvc5TermP6size_t", "cvc5_term_get_skolem_indices"], [27, 6, 1, "_CPPv428cvc5_term_get_skolem_indices8Cvc5TermP6size_t", "cvc5_term_get_skolem_indices::size"], [27, 6, 1, "_CPPv428cvc5_term_get_skolem_indices8Cvc5TermP6size_t", "cvc5_term_get_skolem_indices::term"], [27, 5, 1, "_CPPv418cvc5_term_get_sort8Cvc5Term", "cvc5_term_get_sort"], [27, 6, 1, "_CPPv418cvc5_term_get_sort8Cvc5Term", "cvc5_term_get_sort::term"], [27, 5, 1, "_CPPv426cvc5_term_get_string_value8Cvc5Term", "cvc5_term_get_string_value"], [27, 6, 1, "_CPPv426cvc5_term_get_string_value8Cvc5Term", "cvc5_term_get_string_value::term"], [27, 5, 1, "_CPPv420cvc5_term_get_symbol8Cvc5Term", "cvc5_term_get_symbol"], [27, 6, 1, "_CPPv420cvc5_term_get_symbol8Cvc5Term", "cvc5_term_get_symbol::term"], [27, 5, 1, "_CPPv425cvc5_term_get_tuple_value8Cvc5TermP6size_t", "cvc5_term_get_tuple_value"], [27, 6, 1, "_CPPv425cvc5_term_get_tuple_value8Cvc5TermP6size_t", "cvc5_term_get_tuple_value::size"], [27, 6, 1, "_CPPv425cvc5_term_get_tuple_value8Cvc5TermP6size_t", "cvc5_term_get_tuple_value::term"], [27, 5, 1, "_CPPv426cvc5_term_get_uint32_value8Cvc5Term", "cvc5_term_get_uint32_value"], [27, 6, 1, "_CPPv426cvc5_term_get_uint32_value8Cvc5Term", "cvc5_term_get_uint32_value::term"], [27, 5, 1, "_CPPv426cvc5_term_get_uint64_value8Cvc5Term", "cvc5_term_get_uint64_value"], [27, 6, 1, "_CPPv426cvc5_term_get_uint64_value8Cvc5Term", "cvc5_term_get_uint64_value::term"], [27, 5, 1, "_CPPv438cvc5_term_get_uninterpreted_sort_value8Cvc5Term", "cvc5_term_get_uninterpreted_sort_value"], [27, 6, 1, "_CPPv438cvc5_term_get_uninterpreted_sort_value8Cvc5Term", "cvc5_term_get_uninterpreted_sort_value::term"], [27, 5, 1, "_CPPv416cvc5_term_has_op8Cvc5Term", "cvc5_term_has_op"], [27, 6, 1, "_CPPv416cvc5_term_has_op8Cvc5Term", "cvc5_term_has_op::term"], [27, 5, 1, "_CPPv420cvc5_term_has_symbol8Cvc5Term", "cvc5_term_has_symbol"], [27, 6, 1, "_CPPv420cvc5_term_has_symbol8Cvc5Term", "cvc5_term_has_symbol::term"], [27, 5, 1, "_CPPv414cvc5_term_hash8Cvc5Term", "cvc5_term_hash"], [27, 6, 1, "_CPPv414cvc5_term_hash8Cvc5Term", "cvc5_term_hash::term"], [27, 5, 1, "_CPPv426cvc5_term_is_boolean_value8Cvc5Term", "cvc5_term_is_boolean_value"], [27, 6, 1, "_CPPv426cvc5_term_is_boolean_value8Cvc5Term", "cvc5_term_is_boolean_value::term"], [27, 5, 1, "_CPPv421cvc5_term_is_bv_value8Cvc5Term", "cvc5_term_is_bv_value"], [27, 6, 1, "_CPPv421cvc5_term_is_bv_value8Cvc5Term", "cvc5_term_is_bv_value::term"], [27, 5, 1, "_CPPv435cvc5_term_is_cardinality_constraint8Cvc5Term", "cvc5_term_is_cardinality_constraint"], [27, 6, 1, "_CPPv435cvc5_term_is_cardinality_constraint8Cvc5Term", "cvc5_term_is_cardinality_constraint::term"], [27, 5, 1, "_CPPv424cvc5_term_is_const_array8Cvc5Term", "cvc5_term_is_const_array"], [27, 6, 1, "_CPPv424cvc5_term_is_const_array8Cvc5Term", "cvc5_term_is_const_array::term"], [27, 5, 1, "_CPPv421cvc5_term_is_disequal8Cvc5Term8Cvc5Term", "cvc5_term_is_disequal"], [27, 6, 1, "_CPPv421cvc5_term_is_disequal8Cvc5Term8Cvc5Term", "cvc5_term_is_disequal::a"], [27, 6, 1, "_CPPv421cvc5_term_is_disequal8Cvc5Term8Cvc5Term", "cvc5_term_is_disequal::b"], [27, 5, 1, "_CPPv418cvc5_term_is_equal8Cvc5Term8Cvc5Term", "cvc5_term_is_equal"], [27, 6, 1, "_CPPv418cvc5_term_is_equal8Cvc5Term8Cvc5Term", "cvc5_term_is_equal::a"], [27, 6, 1, "_CPPv418cvc5_term_is_equal8Cvc5Term8Cvc5Term", "cvc5_term_is_equal::b"], [27, 5, 1, "_CPPv421cvc5_term_is_ff_value8Cvc5Term", "cvc5_term_is_ff_value"], [27, 6, 1, "_CPPv421cvc5_term_is_ff_value8Cvc5Term", "cvc5_term_is_ff_value::term"], [27, 5, 1, "_CPPv419cvc5_term_is_fp_nan8Cvc5Term", "cvc5_term_is_fp_nan"], [27, 6, 1, "_CPPv419cvc5_term_is_fp_nan8Cvc5Term", "cvc5_term_is_fp_nan::term"], [27, 5, 1, "_CPPv423cvc5_term_is_fp_neg_inf8Cvc5Term", "cvc5_term_is_fp_neg_inf"], [27, 6, 1, "_CPPv423cvc5_term_is_fp_neg_inf8Cvc5Term", "cvc5_term_is_fp_neg_inf::term"], [27, 5, 1, "_CPPv424cvc5_term_is_fp_neg_zero8Cvc5Term", "cvc5_term_is_fp_neg_zero"], [27, 6, 1, "_CPPv424cvc5_term_is_fp_neg_zero8Cvc5Term", "cvc5_term_is_fp_neg_zero::term"], [27, 5, 1, "_CPPv423cvc5_term_is_fp_pos_inf8Cvc5Term", "cvc5_term_is_fp_pos_inf"], [27, 6, 1, "_CPPv423cvc5_term_is_fp_pos_inf8Cvc5Term", "cvc5_term_is_fp_pos_inf::term"], [27, 5, 1, "_CPPv424cvc5_term_is_fp_pos_zero8Cvc5Term", "cvc5_term_is_fp_pos_zero"], [27, 6, 1, "_CPPv424cvc5_term_is_fp_pos_zero8Cvc5Term", "cvc5_term_is_fp_pos_zero::term"], [27, 5, 1, "_CPPv421cvc5_term_is_fp_value8Cvc5Term", "cvc5_term_is_fp_value"], [27, 6, 1, "_CPPv421cvc5_term_is_fp_value8Cvc5Term", "cvc5_term_is_fp_value::term"], [27, 5, 1, "_CPPv424cvc5_term_is_int32_value8Cvc5Term", "cvc5_term_is_int32_value"], [27, 6, 1, "_CPPv424cvc5_term_is_int32_value8Cvc5Term", "cvc5_term_is_int32_value::term"], [27, 5, 1, "_CPPv424cvc5_term_is_int64_value8Cvc5Term", "cvc5_term_is_int64_value"], [27, 6, 1, "_CPPv424cvc5_term_is_int64_value8Cvc5Term", "cvc5_term_is_int64_value::term"], [27, 5, 1, "_CPPv426cvc5_term_is_integer_value8Cvc5Term", "cvc5_term_is_integer_value"], [27, 6, 1, "_CPPv426cvc5_term_is_integer_value8Cvc5Term", "cvc5_term_is_integer_value::term"], [27, 5, 1, "_CPPv425cvc5_term_is_real32_value8Cvc5Term", "cvc5_term_is_real32_value"], [27, 6, 1, "_CPPv425cvc5_term_is_real32_value8Cvc5Term", "cvc5_term_is_real32_value::term"], [27, 5, 1, "_CPPv425cvc5_term_is_real64_value8Cvc5Term", "cvc5_term_is_real64_value"], [27, 6, 1, "_CPPv425cvc5_term_is_real64_value8Cvc5Term", "cvc5_term_is_real64_value::term"], [27, 5, 1, "_CPPv434cvc5_term_is_real_algebraic_number8Cvc5Term", "cvc5_term_is_real_algebraic_number"], [27, 6, 1, "_CPPv434cvc5_term_is_real_algebraic_number8Cvc5Term", "cvc5_term_is_real_algebraic_number::term"], [27, 5, 1, "_CPPv423cvc5_term_is_real_value8Cvc5Term", "cvc5_term_is_real_value"], [27, 6, 1, "_CPPv423cvc5_term_is_real_value8Cvc5Term", "cvc5_term_is_real_value::term"], [27, 5, 1, "_CPPv421cvc5_term_is_rm_value8Cvc5Term", "cvc5_term_is_rm_value"], [27, 6, 1, "_CPPv421cvc5_term_is_rm_value8Cvc5Term", "cvc5_term_is_rm_value::term"], [27, 5, 1, "_CPPv427cvc5_term_is_sequence_value8Cvc5Term", "cvc5_term_is_sequence_value"], [27, 6, 1, "_CPPv427cvc5_term_is_sequence_value8Cvc5Term", "cvc5_term_is_sequence_value::term"], [27, 5, 1, "_CPPv422cvc5_term_is_set_value8Cvc5Term", "cvc5_term_is_set_value"], [27, 6, 1, "_CPPv422cvc5_term_is_set_value8Cvc5Term", "cvc5_term_is_set_value::term"], [27, 5, 1, "_CPPv419cvc5_term_is_skolem8Cvc5Term", "cvc5_term_is_skolem"], [27, 6, 1, "_CPPv419cvc5_term_is_skolem8Cvc5Term", "cvc5_term_is_skolem::term"], [27, 5, 1, "_CPPv425cvc5_term_is_string_value8Cvc5Term", "cvc5_term_is_string_value"], [27, 6, 1, "_CPPv425cvc5_term_is_string_value8Cvc5Term", "cvc5_term_is_string_value::term"], [27, 5, 1, "_CPPv424cvc5_term_is_tuple_value8Cvc5Term", "cvc5_term_is_tuple_value"], [27, 6, 1, "_CPPv424cvc5_term_is_tuple_value8Cvc5Term", "cvc5_term_is_tuple_value::term"], [27, 5, 1, "_CPPv425cvc5_term_is_uint32_value8Cvc5Term", "cvc5_term_is_uint32_value"], [27, 6, 1, "_CPPv425cvc5_term_is_uint32_value8Cvc5Term", "cvc5_term_is_uint32_value::term"], [27, 5, 1, "_CPPv425cvc5_term_is_uint64_value8Cvc5Term", "cvc5_term_is_uint64_value"], [27, 6, 1, "_CPPv425cvc5_term_is_uint64_value8Cvc5Term", "cvc5_term_is_uint64_value::term"], [27, 5, 1, "_CPPv437cvc5_term_is_uninterpreted_sort_value8Cvc5Term", "cvc5_term_is_uninterpreted_sort_value"], [27, 6, 1, "_CPPv437cvc5_term_is_uninterpreted_sort_value8Cvc5Term", "cvc5_term_is_uninterpreted_sort_value::term"], [27, 5, 1, "_CPPv417cvc5_term_release8Cvc5Term", "cvc5_term_release"], [27, 6, 1, "_CPPv417cvc5_term_release8Cvc5Term", "cvc5_term_release::term"], [27, 5, 1, "_CPPv425cvc5_term_substitute_term8Cvc5Term8Cvc5Term8Cvc5Term", "cvc5_term_substitute_term"], [27, 6, 1, "_CPPv425cvc5_term_substitute_term8Cvc5Term8Cvc5Term8Cvc5Term", "cvc5_term_substitute_term::replacement"], [27, 6, 1, "_CPPv425cvc5_term_substitute_term8Cvc5Term8Cvc5Term8Cvc5Term", "cvc5_term_substitute_term::t"], [27, 6, 1, "_CPPv425cvc5_term_substitute_term8Cvc5Term8Cvc5Term8Cvc5Term", "cvc5_term_substitute_term::term"], [27, 5, 1, "_CPPv426cvc5_term_substitute_terms8Cvc5Term6size_tA_K8Cvc5TermA_K8Cvc5Term", "cvc5_term_substitute_terms"], [27, 6, 1, "_CPPv426cvc5_term_substitute_terms8Cvc5Term6size_tA_K8Cvc5TermA_K8Cvc5Term", "cvc5_term_substitute_terms::replacements"], [27, 6, 1, "_CPPv426cvc5_term_substitute_terms8Cvc5Term6size_tA_K8Cvc5TermA_K8Cvc5Term", "cvc5_term_substitute_terms::size"], [27, 6, 1, "_CPPv426cvc5_term_substitute_terms8Cvc5Term6size_tA_K8Cvc5TermA_K8Cvc5Term", "cvc5_term_substitute_terms::term"], [27, 6, 1, "_CPPv426cvc5_term_substitute_terms8Cvc5Term6size_tA_K8Cvc5TermA_K8Cvc5Term", "cvc5_term_substitute_terms::terms"], [27, 5, 1, "_CPPv419cvc5_term_to_string8Cvc5Term", "cvc5_term_to_string"], [27, 6, 1, "_CPPv419cvc5_term_to_string8Cvc5Term", "cvc5_term_to_string::term"], [6, 5, 1, "_CPPv434cvc5_unknown_explanation_to_string22Cvc5UnknownExplanation", "cvc5_unknown_explanation_to_string"], [6, 6, 1, "_CPPv434cvc5_unknown_explanation_to_string22Cvc5UnknownExplanation", "cvc5_unknown_explanation_to_string::exp"], [51, 3, 1, "_CPPv4IENSt4hashIN4cvc54KindEEE", "std::hash<cvc5::Kind>"], [51, 5, 1, "_CPPv4NKSt4hashIN4cvc54KindEEclEN4cvc54KindE", "std::hash<cvc5::Kind>::operator()"], [51, 6, 1, "_CPPv4NKSt4hashIN4cvc54KindEEclEN4cvc54KindE", "std::hash<cvc5::Kind>::operator()::kind"], [38, 3, 1, "_CPPv4IENSt4hashIN4cvc52OpEEE", "std::hash<cvc5::Op>"], [38, 5, 1, "_CPPv4NKSt4hashIN4cvc52OpEEclERKN4cvc52OpE", "std::hash<cvc5::Op>::operator()"], [38, 6, 1, "_CPPv4NKSt4hashIN4cvc52OpEEclERKN4cvc52OpE", "std::hash<cvc5::Op>::operator()::op"], [41, 3, 1, "_CPPv4IENSt4hashIN4cvc55ProofEEE", "std::hash<cvc5::Proof>"], [41, 5, 1, "_CPPv4NKSt4hashIN4cvc55ProofEEclERKN4cvc55ProofE", "std::hash<cvc5::Proof>::operator()"], [41, 6, 1, "_CPPv4NKSt4hashIN4cvc55ProofEEclERKN4cvc55ProofE", "std::hash<cvc5::Proof>::operator()::p"], [53, 3, 1, "_CPPv4IENSt4hashIN4cvc516ProofRewriteRuleEEE", "std::hash<cvc5::ProofRewriteRule>"], [53, 5, 1, "_CPPv4NKSt4hashIN4cvc516ProofRewriteRuleEEclEN4cvc516ProofRewriteRuleE", "std::hash<cvc5::ProofRewriteRule>::operator()"], [53, 6, 1, "_CPPv4NKSt4hashIN4cvc516ProofRewriteRuleEEclEN4cvc516ProofRewriteRuleE", "std::hash<cvc5::ProofRewriteRule>::operator()::rule"], [53, 3, 1, "_CPPv4IENSt4hashIN4cvc59ProofRuleEEE", "std::hash<cvc5::ProofRule>"], [53, 5, 1, "_CPPv4NKSt4hashIN4cvc59ProofRuleEEclEN4cvc59ProofRuleE", "std::hash<cvc5::ProofRule>::operator()"], [53, 6, 1, "_CPPv4NKSt4hashIN4cvc59ProofRuleEEclEN4cvc59ProofRuleE", "std::hash<cvc5::ProofRule>::operator()::rule"], [44, 3, 1, "_CPPv4IENSt4hashIN4cvc54SortEEE", "std::hash<cvc5::Sort>"], [44, 5, 1, "_CPPv4NKSt4hashIN4cvc54SortEEclERKN4cvc54SortE", "std::hash<cvc5::Sort>::operator()"], [44, 6, 1, "_CPPv4NKSt4hashIN4cvc54SortEEclERKN4cvc54SortE", "std::hash<cvc5::Sort>::operator()::s"], [55, 3, 1, "_CPPv4IENSt4hashIN4cvc58SortKindEEE", "std::hash<cvc5::SortKind>"], [55, 5, 1, "_CPPv4NKSt4hashIN4cvc58SortKindEEclEN4cvc58SortKindE", "std::hash<cvc5::SortKind>::operator()"], [55, 6, 1, "_CPPv4NKSt4hashIN4cvc58SortKindEEclEN4cvc58SortKindE", "std::hash<cvc5::SortKind>::operator()::kind"], [48, 3, 1, "_CPPv4IENSt4hashIN4cvc54TermEEE", "std::hash<cvc5::Term>"], [48, 5, 1, "_CPPv4NKSt4hashIN4cvc54TermEEclERKN4cvc54TermE", "std::hash<cvc5::Term>::operator()"], [48, 6, 1, "_CPPv4NKSt4hashIN4cvc54TermEEclERKN4cvc54TermE", "std::hash<cvc5::Term>::operator()::t"], [51, 5, 1, "_CPPv4NSt9to_stringEN4cvc54KindE", "std::to_string"], [52, 5, 1, "_CPPv4NSt9to_stringEN4cvc55modes11ProofFormatE", "std::to_string"], [52, 5, 1, "_CPPv4NSt9to_stringEN4cvc55modes14LearnedLitTypeE", "std::to_string"], [52, 5, 1, "_CPPv4NSt9to_stringEN4cvc55modes14ProofComponentE", "std::to_string"], [52, 5, 1, "_CPPv4NSt9to_stringEN4cvc55modes15BlockModelsModeE", "std::to_string"], [52, 5, 1, "_CPPv4NSt9to_stringEN4cvc55modes15FindSynthTargetE", "std::to_string"], [53, 5, 1, "_CPPv4NSt9to_stringEN4cvc516ProofRewriteRuleE", "std::to_string"], [53, 5, 1, "_CPPv4NSt9to_stringEN4cvc59ProofRuleE", "std::to_string"], [54, 5, 1, "_CPPv4NSt9to_stringEN4cvc512RoundingModeE", "std::to_string"], [55, 5, 1, "_CPPv4NSt9to_stringEN4cvc58SortKindE", "std::to_string"], [56, 5, 1, "_CPPv4NSt9to_stringEN4cvc518UnknownExplanationE", "std::to_string"], [56, 6, 1, "_CPPv4NSt9to_stringEN4cvc518UnknownExplanationE", "std::to_string::exp"], [52, 6, 1, "_CPPv4NSt9to_stringEN4cvc55modes11ProofFormatE", "std::to_string::format"], [55, 6, 1, "_CPPv4NSt9to_stringEN4cvc58SortKindE", "std::to_string::k"], [51, 6, 1, "_CPPv4NSt9to_stringEN4cvc54KindE", "std::to_string::kind"], [52, 6, 1, "_CPPv4NSt9to_stringEN4cvc55modes15BlockModelsModeE", "std::to_string::mode"], [52, 6, 1, "_CPPv4NSt9to_stringEN4cvc55modes14ProofComponentE", "std::to_string::pc"], [54, 6, 1, "_CPPv4NSt9to_stringEN4cvc512RoundingModeE", "std::to_string::rm"], [53, 6, 1, "_CPPv4NSt9to_stringEN4cvc516ProofRewriteRuleE", "std::to_string::rule"], [53, 6, 1, "_CPPv4NSt9to_stringEN4cvc59ProofRuleE", "std::to_string::rule"], [52, 6, 1, "_CPPv4NSt9to_stringEN4cvc55modes15FindSynthTargetE", "std::to_string::target"], [52, 6, 1, "_CPPv4NSt9to_stringEN4cvc55modes14LearnedLitTypeE", "std::to_string::type"]], "cvc5": [[70, 8, 1, "", "BlockModelsMode"], [61, 8, 1, "", "Command"], [62, 8, 1, "", "Datatype"], [63, 8, 1, "", "DatatypeConstructor"], [64, 8, 1, "", "DatatypeConstructorDecl"], [65, 8, 1, "", "DatatypeDecl"], [66, 8, 1, "", "DatatypeSelector"], [70, 8, 1, "", "FindSynthTarget"], [67, 8, 1, "", "Grammar"], [68, 8, 1, "", "InputParser"], [69, 8, 1, "", "Kind"], [70, 8, 1, "", "LearnedLitType"], [71, 8, 1, "", "Op"], [73, 8, 1, "", "Proof"], [70, 8, 1, "", "ProofComponent"], [70, 8, 1, "", "ProofFormat"], [74, 8, 1, "", "ProofRewriteRule"], [74, 8, 1, "", "ProofRule"], [77, 8, 1, "", "Result"], [78, 8, 1, "", "RoundingMode"], [79, 8, 1, "", "Solver"], [80, 8, 1, "", "Sort"], [81, 8, 1, "", "SortKind"], [82, 8, 1, "", "Statistics"], [83, 8, 1, "", "SymbolManager"], [84, 8, 1, "", "SynthResult"], [85, 8, 1, "", "Term"], [86, 8, 1, "", "TermManager"], [87, 8, 1, "", "UnknownExplanation"]], "cvc5.BlockModelsMode": [[70, 9, 1, "", "LITERALS"], [70, 9, 1, "", "VALUES"]], "cvc5.Command": [[61, 10, 1, "", "getCommandName"], [61, 10, 1, "", "invoke"], [61, 10, 1, "", "isNull"], [61, 10, 1, "", "toString"]], "cvc5.Datatype": [[62, 10, 1, "", "__getitem__"], [62, 10, 1, "", "__iter__"], [62, 10, 1, "", "getConstructor"], [62, 10, 1, "", "getName"], [62, 10, 1, "", "getNumConstructors"], [62, 10, 1, "", "getParameters"], [62, 10, 1, "", "getSelector"], [62, 10, 1, "", "isCodatatype"], [62, 10, 1, "", "isFinite"], [62, 10, 1, "", "isNull"], [62, 10, 1, "", "isParametric"], [62, 10, 1, "", "isRecord"], [62, 10, 1, "", "isTuple"], [62, 10, 1, "", "isWellFounded"]], "cvc5.DatatypeConstructor": [[63, 10, 1, "", "__getitem__"], [63, 10, 1, "", "__iter__"], [63, 10, 1, "", "getInstantiatedTerm"], [63, 10, 1, "", "getName"], [63, 10, 1, "", "getNumSelectors"], [63, 10, 1, "", "getSelector"], [63, 10, 1, "", "getTerm"], [63, 10, 1, "", "getTesterTerm"], [63, 10, 1, "", "isNull"]], "cvc5.DatatypeConstructorDecl": [[64, 10, 1, "", "addSelector"], [64, 10, 1, "", "addSelectorSelf"], [64, 10, 1, "", "addSelectorUnresolved"], [64, 10, 1, "", "isNull"]], "cvc5.DatatypeDecl": [[65, 10, 1, "", "addConstructor"], [65, 10, 1, "", "getName"], [65, 10, 1, "", "getNumConstructors"], [65, 10, 1, "", "isNull"], [65, 10, 1, "", "isParametric"]], "cvc5.DatatypeSelector": [[66, 10, 1, "", "getCodomainSort"], [66, 10, 1, "", "getName"], [66, 10, 1, "", "getTerm"], [66, 10, 1, "", "getUpdaterTerm"], [66, 10, 1, "", "isNull"]], "cvc5.FindSynthTarget": [[70, 9, 1, "", "ENUM"], [70, 9, 1, "", "QUERY"], [70, 9, 1, "", "REWRITE"], [70, 9, 1, "", "REWRITE_INPUT"], [70, 9, 1, "", "REWRITE_UNSOUND"]], "cvc5.Grammar": [[67, 10, 1, "", "addAnyConstant"], [67, 10, 1, "", "addAnyVariable"], [67, 10, 1, "", "addRule"], [67, 10, 1, "", "addRules"], [67, 10, 1, "", "isNull"]], "cvc5.InputParser": [[68, 10, 1, "", "appendIncrementalStringInput"], [68, 10, 1, "", "done"], [68, 10, 1, "", "getSolver"], [68, 10, 1, "", "getSymbolManager"], [68, 10, 1, "", "nextCommand"], [68, 10, 1, "", "nextTerm"], [68, 10, 1, "", "setFileInput"], [68, 10, 1, "", "setIncrementalStringInput"], [68, 10, 1, "", "setStringInput"]], "cvc5.Kind": [[69, 9, 1, "", "ABS"], [69, 9, 1, "", "ADD"], [69, 9, 1, "", "AND"], [69, 9, 1, "", "APPLY_CONSTRUCTOR"], [69, 9, 1, "", "APPLY_SELECTOR"], [69, 9, 1, "", "APPLY_TESTER"], [69, 9, 1, "", "APPLY_UF"], [69, 9, 1, "", "APPLY_UPDATER"], [69, 9, 1, "", "ARCCOSECANT"], [69, 9, 1, "", "ARCCOSINE"], [69, 9, 1, "", "ARCCOTANGENT"], [69, 9, 1, "", "ARCSECANT"], [69, 9, 1, "", "ARCSINE"], [69, 9, 1, "", "ARCTANGENT"], [69, 9, 1, "", "BAG_CARD"], [69, 9, 1, "", "BAG_CHOOSE"], [69, 9, 1, "", "BAG_COUNT"], [69, 9, 1, "", "BAG_DIFFERENCE_REMOVE"], [69, 9, 1, "", "BAG_DIFFERENCE_SUBTRACT"], [69, 9, 1, "", "BAG_EMPTY"], [69, 9, 1, "", "BAG_FILTER"], [69, 9, 1, "", "BAG_FOLD"], [69, 9, 1, "", "BAG_INTER_MIN"], [69, 9, 1, "", "BAG_MAKE"], [69, 9, 1, "", "BAG_MAP"], [69, 9, 1, "", "BAG_MEMBER"], [69, 9, 1, "", "BAG_PARTITION"], [69, 9, 1, "", "BAG_SETOF"], [69, 9, 1, "", "BAG_SUBBAG"], [69, 9, 1, "", "BAG_UNION_DISJOINT"], [69, 9, 1, "", "BAG_UNION_MAX"], [69, 9, 1, "", "BITVECTOR_ADD"], [69, 9, 1, "", "BITVECTOR_AND"], [69, 9, 1, "", "BITVECTOR_ASHR"], [69, 9, 1, "", "BITVECTOR_BIT"], [69, 9, 1, "", "BITVECTOR_COMP"], [69, 9, 1, "", "BITVECTOR_CONCAT"], [69, 9, 1, "", "BITVECTOR_EXTRACT"], [69, 9, 1, "", "BITVECTOR_FROM_BOOLS"], [69, 9, 1, "", "BITVECTOR_ITE"], [69, 9, 1, "", "BITVECTOR_LSHR"], [69, 9, 1, "", "BITVECTOR_MULT"], [69, 9, 1, "", "BITVECTOR_NAND"], [69, 9, 1, "", "BITVECTOR_NEG"], [69, 9, 1, "", "BITVECTOR_NEGO"], [69, 9, 1, "", "BITVECTOR_NOR"], [69, 9, 1, "", "BITVECTOR_NOT"], [69, 9, 1, "", "BITVECTOR_OR"], [69, 9, 1, "", "BITVECTOR_REDAND"], [69, 9, 1, "", "BITVECTOR_REDOR"], [69, 9, 1, "", "BITVECTOR_REPEAT"], [69, 9, 1, "", "BITVECTOR_ROTATE_LEFT"], [69, 9, 1, "", "BITVECTOR_ROTATE_RIGHT"], [69, 9, 1, "", "BITVECTOR_SADDO"], [69, 9, 1, "", "BITVECTOR_SDIV"], [69, 9, 1, "", "BITVECTOR_SDIVO"], [69, 9, 1, "", "BITVECTOR_SGE"], [69, 9, 1, "", "BITVECTOR_SGT"], [69, 9, 1, "", "BITVECTOR_SHL"], [69, 9, 1, "", "BITVECTOR_SIGN_EXTEND"], [69, 9, 1, "", "BITVECTOR_SLE"], [69, 9, 1, "", "BITVECTOR_SLT"], [69, 9, 1, "", "BITVECTOR_SLTBV"], [69, 9, 1, "", "BITVECTOR_SMOD"], [69, 9, 1, "", "BITVECTOR_SMULO"], [69, 9, 1, "", "BITVECTOR_SREM"], [69, 9, 1, "", "BITVECTOR_SSUBO"], [69, 9, 1, "", "BITVECTOR_SUB"], [69, 9, 1, "", "BITVECTOR_TO_NAT"], [69, 9, 1, "", "BITVECTOR_UADDO"], [69, 9, 1, "", "BITVECTOR_UDIV"], [69, 9, 1, "", "BITVECTOR_UGE"], [69, 9, 1, "", "BITVECTOR_UGT"], [69, 9, 1, "", "BITVECTOR_ULE"], [69, 9, 1, "", "BITVECTOR_ULT"], [69, 9, 1, "", "BITVECTOR_ULTBV"], [69, 9, 1, "", "BITVECTOR_UMULO"], [69, 9, 1, "", "BITVECTOR_UREM"], [69, 9, 1, "", "BITVECTOR_USUBO"], [69, 9, 1, "", "BITVECTOR_XNOR"], [69, 9, 1, "", "BITVECTOR_XOR"], [69, 9, 1, "", "BITVECTOR_ZERO_EXTEND"], [69, 9, 1, "", "CARDINALITY_CONSTRAINT"], [69, 9, 1, "", "CONSTANT"], [69, 9, 1, "", "CONST_ARRAY"], [69, 9, 1, "", "CONST_BITVECTOR"], [69, 9, 1, "", "CONST_BOOLEAN"], [69, 9, 1, "", "CONST_FINITE_FIELD"], [69, 9, 1, "", "CONST_FLOATINGPOINT"], [69, 9, 1, "", "CONST_INTEGER"], [69, 9, 1, "", "CONST_RATIONAL"], [69, 9, 1, "", "CONST_ROUNDINGMODE"], [69, 9, 1, "", "CONST_SEQUENCE"], [69, 9, 1, "", "CONST_STRING"], [69, 9, 1, "", "COSECANT"], [69, 9, 1, "", "COSINE"], [69, 9, 1, "", "COTANGENT"], [69, 9, 1, "", "DISTINCT"], [69, 9, 1, "", "DIVISIBLE"], [69, 9, 1, "", "DIVISION"], [69, 9, 1, "", "DIVISION_TOTAL"], [69, 9, 1, "", "EQUAL"], [69, 9, 1, "", "EQ_RANGE"], [69, 9, 1, "", "EXISTS"], [69, 9, 1, "", "EXPONENTIAL"], [69, 9, 1, "", "FINITE_FIELD_ADD"], [69, 9, 1, "", "FINITE_FIELD_BITSUM"], [69, 9, 1, "", "FINITE_FIELD_MULT"], [69, 9, 1, "", "FINITE_FIELD_NEG"], [69, 9, 1, "", "FLOATINGPOINT_ABS"], [69, 9, 1, "", "FLOATINGPOINT_ADD"], [69, 9, 1, "", "FLOATINGPOINT_DIV"], [69, 9, 1, "", "FLOATINGPOINT_EQ"], [69, 9, 1, "", "FLOATINGPOINT_FMA"], [69, 9, 1, "", "FLOATINGPOINT_FP"], [69, 9, 1, "", "FLOATINGPOINT_GEQ"], [69, 9, 1, "", "FLOATINGPOINT_GT"], [69, 9, 1, "", "FLOATINGPOINT_IS_INF"], [69, 9, 1, "", "FLOATINGPOINT_IS_NAN"], [69, 9, 1, "", "FLOATINGPOINT_IS_NEG"], [69, 9, 1, "", "FLOATINGPOINT_IS_NORMAL"], [69, 9, 1, "", "FLOATINGPOINT_IS_POS"], [69, 9, 1, "", "FLOATINGPOINT_IS_SUBNORMAL"], [69, 9, 1, "", "FLOATINGPOINT_IS_ZERO"], [69, 9, 1, "", "FLOATINGPOINT_LEQ"], [69, 9, 1, "", "FLOATINGPOINT_LT"], [69, 9, 1, "", "FLOATINGPOINT_MAX"], [69, 9, 1, "", "FLOATINGPOINT_MIN"], [69, 9, 1, "", "FLOATINGPOINT_MULT"], [69, 9, 1, "", "FLOATINGPOINT_NEG"], [69, 9, 1, "", "FLOATINGPOINT_REM"], [69, 9, 1, "", "FLOATINGPOINT_RTI"], [69, 9, 1, "", "FLOATINGPOINT_SQRT"], [69, 9, 1, "", "FLOATINGPOINT_SUB"], [69, 9, 1, "", "FLOATINGPOINT_TO_FP_FROM_FP"], [69, 9, 1, "", "FLOATINGPOINT_TO_FP_FROM_IEEE_BV"], [69, 9, 1, "", "FLOATINGPOINT_TO_FP_FROM_REAL"], [69, 9, 1, "", "FLOATINGPOINT_TO_FP_FROM_SBV"], [69, 9, 1, "", "FLOATINGPOINT_TO_FP_FROM_UBV"], [69, 9, 1, "", "FLOATINGPOINT_TO_REAL"], [69, 9, 1, "", "FLOATINGPOINT_TO_SBV"], [69, 9, 1, "", "FLOATINGPOINT_TO_UBV"], [69, 9, 1, "", "FORALL"], [69, 9, 1, "", "GEQ"], [69, 9, 1, "", "GT"], [69, 9, 1, "", "HO_APPLY"], [69, 9, 1, "", "IAND"], [69, 9, 1, "", "IMPLIES"], [69, 9, 1, "", "INST_ADD_TO_POOL"], [69, 9, 1, "", "INST_ATTRIBUTE"], [69, 9, 1, "", "INST_NO_PATTERN"], [69, 9, 1, "", "INST_PATTERN"], [69, 9, 1, "", "INST_PATTERN_LIST"], [69, 9, 1, "", "INST_POOL"], [69, 9, 1, "", "INTERNAL_KIND"], [69, 9, 1, "", "INTS_DIVISION"], [69, 9, 1, "", "INTS_DIVISION_TOTAL"], [69, 9, 1, "", "INTS_MODULUS"], [69, 9, 1, "", "INTS_MODULUS_TOTAL"], [69, 9, 1, "", "INT_TO_BITVECTOR"], [69, 9, 1, "", "IS_INTEGER"], [69, 9, 1, "", "ITE"], [69, 9, 1, "", "LAMBDA"], [69, 9, 1, "", "LAST_KIND"], [69, 9, 1, "", "LEQ"], [69, 9, 1, "", "LT"], [69, 9, 1, "", "MATCH"], [69, 9, 1, "", "MATCH_BIND_CASE"], [69, 9, 1, "", "MATCH_CASE"], [69, 9, 1, "", "MULT"], [69, 9, 1, "", "NEG"], [69, 9, 1, "", "NOT"], [69, 9, 1, "", "NULLABLE_LIFT"], [69, 9, 1, "", "NULL_TERM"], [69, 9, 1, "", "OR"], [69, 9, 1, "", "PI"], [69, 9, 1, "", "POW"], [69, 9, 1, "", "POW2"], [69, 9, 1, "", "REGEXP_ALL"], [69, 9, 1, "", "REGEXP_ALLCHAR"], [69, 9, 1, "", "REGEXP_COMPLEMENT"], [69, 9, 1, "", "REGEXP_CONCAT"], [69, 9, 1, "", "REGEXP_DIFF"], [69, 9, 1, "", "REGEXP_INTER"], [69, 9, 1, "", "REGEXP_LOOP"], [69, 9, 1, "", "REGEXP_NONE"], [69, 9, 1, "", "REGEXP_OPT"], [69, 9, 1, "", "REGEXP_PLUS"], [69, 9, 1, "", "REGEXP_RANGE"], [69, 9, 1, "", "REGEXP_REPEAT"], [69, 9, 1, "", "REGEXP_STAR"], [69, 9, 1, "", "REGEXP_UNION"], [69, 9, 1, "", "RELATION_AGGREGATE"], [69, 9, 1, "", "RELATION_GROUP"], [69, 9, 1, "", "RELATION_IDEN"], [69, 9, 1, "", "RELATION_JOIN"], [69, 9, 1, "", "RELATION_JOIN_IMAGE"], [69, 9, 1, "", "RELATION_PRODUCT"], [69, 9, 1, "", "RELATION_PROJECT"], [69, 9, 1, "", "RELATION_TABLE_JOIN"], [69, 9, 1, "", "RELATION_TCLOSURE"], [69, 9, 1, "", "RELATION_TRANSPOSE"], [69, 9, 1, "", "SECANT"], [69, 9, 1, "", "SELECT"], [69, 9, 1, "", "SEP_EMP"], [69, 9, 1, "", "SEP_NIL"], [69, 9, 1, "", "SEP_PTO"], [69, 9, 1, "", "SEP_STAR"], [69, 9, 1, "", "SEP_WAND"], [69, 9, 1, "", "SEQ_AT"], [69, 9, 1, "", "SEQ_CONCAT"], [69, 9, 1, "", "SEQ_CONTAINS"], [69, 9, 1, "", "SEQ_EXTRACT"], [69, 9, 1, "", "SEQ_INDEXOF"], [69, 9, 1, "", "SEQ_LENGTH"], [69, 9, 1, "", "SEQ_NTH"], [69, 9, 1, "", "SEQ_PREFIX"], [69, 9, 1, "", "SEQ_REPLACE"], [69, 9, 1, "", "SEQ_REPLACE_ALL"], [69, 9, 1, "", "SEQ_REV"], [69, 9, 1, "", "SEQ_SUFFIX"], [69, 9, 1, "", "SEQ_UNIT"], [69, 9, 1, "", "SEQ_UPDATE"], [69, 9, 1, "", "SET_ALL"], [69, 9, 1, "", "SET_CARD"], [69, 9, 1, "", "SET_CHOOSE"], [69, 9, 1, "", "SET_COMPLEMENT"], [69, 9, 1, "", "SET_COMPREHENSION"], [69, 9, 1, "", "SET_EMPTY"], [69, 9, 1, "", "SET_FILTER"], [69, 9, 1, "", "SET_FOLD"], [69, 9, 1, "", "SET_INSERT"], [69, 9, 1, "", "SET_INTER"], [69, 9, 1, "", "SET_IS_EMPTY"], [69, 9, 1, "", "SET_IS_SINGLETON"], [69, 9, 1, "", "SET_MAP"], [69, 9, 1, "", "SET_MEMBER"], [69, 9, 1, "", "SET_MINUS"], [69, 9, 1, "", "SET_SINGLETON"], [69, 9, 1, "", "SET_SOME"], [69, 9, 1, "", "SET_SUBSET"], [69, 9, 1, "", "SET_UNION"], [69, 9, 1, "", "SET_UNIVERSE"], [69, 9, 1, "", "SEXPR"], [69, 9, 1, "", "SINE"], [69, 9, 1, "", "SKOLEM"], [69, 9, 1, "", "SKOLEM_ADD_TO_POOL"], [69, 9, 1, "", "SQRT"], [69, 9, 1, "", "STORE"], [69, 9, 1, "", "STRING_CHARAT"], [69, 9, 1, "", "STRING_CONCAT"], [69, 9, 1, "", "STRING_CONTAINS"], [69, 9, 1, "", "STRING_FROM_CODE"], [69, 9, 1, "", "STRING_FROM_INT"], [69, 9, 1, "", "STRING_INDEXOF"], [69, 9, 1, "", "STRING_INDEXOF_RE"], [69, 9, 1, "", "STRING_IN_REGEXP"], [69, 9, 1, "", "STRING_IS_DIGIT"], [69, 9, 1, "", "STRING_LENGTH"], [69, 9, 1, "", "STRING_LEQ"], [69, 9, 1, "", "STRING_LT"], [69, 9, 1, "", "STRING_PREFIX"], [69, 9, 1, "", "STRING_REPLACE"], [69, 9, 1, "", "STRING_REPLACE_ALL"], [69, 9, 1, "", "STRING_REPLACE_RE"], [69, 9, 1, "", "STRING_REPLACE_RE_ALL"], [69, 9, 1, "", "STRING_REV"], [69, 9, 1, "", "STRING_SUBSTR"], [69, 9, 1, "", "STRING_SUFFIX"], [69, 9, 1, "", "STRING_TO_CODE"], [69, 9, 1, "", "STRING_TO_INT"], [69, 9, 1, "", "STRING_TO_LOWER"], [69, 9, 1, "", "STRING_TO_REGEXP"], [69, 9, 1, "", "STRING_TO_UPPER"], [69, 9, 1, "", "STRING_UPDATE"], [69, 9, 1, "", "SUB"], [69, 9, 1, "", "TABLE_AGGREGATE"], [69, 9, 1, "", "TABLE_GROUP"], [69, 9, 1, "", "TABLE_JOIN"], [69, 9, 1, "", "TABLE_PRODUCT"], [69, 9, 1, "", "TABLE_PROJECT"], [69, 9, 1, "", "TANGENT"], [69, 9, 1, "", "TO_INTEGER"], [69, 9, 1, "", "TO_REAL"], [69, 9, 1, "", "TUPLE_PROJECT"], [69, 9, 1, "", "UNDEFINED_KIND"], [69, 9, 1, "", "UNINTERPRETED_SORT_VALUE"], [69, 9, 1, "", "VARIABLE"], [69, 9, 1, "", "VARIABLE_LIST"], [69, 9, 1, "", "WITNESS"], [69, 9, 1, "", "XOR"]], "cvc5.LearnedLitType": [[70, 9, 1, "", "CONSTANT_PROP"], [70, 9, 1, "", "INPUT"], [70, 9, 1, "", "INTERNAL"], [70, 9, 1, "", "PREPROCESS"], [70, 9, 1, "", "PREPROCESS_SOLVED"], [70, 9, 1, "", "SOLVABLE"], [70, 9, 1, "", "UNKNOWN"]], "cvc5.Op": [[71, 10, 1, "", "__getitem__"], [71, 10, 1, "", "getKind"], [71, 10, 1, "", "getNumIndices"], [71, 10, 1, "", "isIndexed"], [71, 10, 1, "", "isNull"]], "cvc5.Proof": [[73, 10, 1, "", "getArguments"], [73, 10, 1, "", "getChildren"], [73, 10, 1, "", "getResult"], [73, 10, 1, "", "getRewriteRule"], [73, 10, 1, "", "getRule"]], "cvc5.ProofComponent": [[70, 9, 1, "", "FULL"], [70, 9, 1, "", "PREPROCESS"], [70, 9, 1, "", "RAW_PREPROCESS"], [70, 9, 1, "", "SAT"], [70, 9, 1, "", "THEORY_LEMMAS"]], "cvc5.ProofFormat": [[70, 9, 1, "", "ALETHE"], [70, 9, 1, "", "CPC"], [70, 9, 1, "", "DEFAULT"], [70, 9, 1, "", "DOT"], [70, 9, 1, "", "LFSC"], [70, 9, 1, "", "NONE"]], "cvc5.ProofRewriteRule": [[74, 9, 1, "", "ARITH_ABS_ELIM_INT"], [74, 9, 1, "", "ARITH_ABS_ELIM_REAL"], [74, 9, 1, "", "ARITH_ABS_EQ"], [74, 9, 1, "", "ARITH_ABS_INT_GT"], [74, 9, 1, "", "ARITH_ABS_REAL_GT"], [74, 9, 1, "", "ARITH_COSECENT_ELIM"], [74, 9, 1, "", "ARITH_COSINE_ELIM"], [74, 9, 1, "", "ARITH_COTANGENT_ELIM"], [74, 9, 1, "", "ARITH_DIV_ELIM_TO_REAL1"], [74, 9, 1, "", "ARITH_DIV_ELIM_TO_REAL2"], [74, 9, 1, "", "ARITH_DIV_TOTAL_INT"], [74, 9, 1, "", "ARITH_DIV_TOTAL_REAL"], [74, 9, 1, "", "ARITH_DIV_TOTAL_ZERO_INT"], [74, 9, 1, "", "ARITH_DIV_TOTAL_ZERO_REAL"], [74, 9, 1, "", "ARITH_ELIM_GT"], [74, 9, 1, "", "ARITH_ELIM_INT_GT"], [74, 9, 1, "", "ARITH_ELIM_INT_LT"], [74, 9, 1, "", "ARITH_ELIM_LEQ"], [74, 9, 1, "", "ARITH_ELIM_LT"], [74, 9, 1, "", "ARITH_EQ_ELIM_INT"], [74, 9, 1, "", "ARITH_EQ_ELIM_REAL"], [74, 9, 1, "", "ARITH_GEQ_NORM1_INT"], [74, 9, 1, "", "ARITH_GEQ_NORM1_REAL"], [74, 9, 1, "", "ARITH_GEQ_NORM2"], [74, 9, 1, "", "ARITH_GEQ_TIGHTEN"], [74, 9, 1, "", "ARITH_INT_DIV_TOTAL"], [74, 9, 1, "", "ARITH_INT_DIV_TOTAL_ONE"], [74, 9, 1, "", "ARITH_INT_DIV_TOTAL_ZERO"], [74, 9, 1, "", "ARITH_INT_MOD_TOTAL"], [74, 9, 1, "", "ARITH_INT_MOD_TOTAL_ONE"], [74, 9, 1, "", "ARITH_INT_MOD_TOTAL_ZERO"], [74, 9, 1, "", "ARITH_LEQ_NORM"], [74, 9, 1, "", "ARITH_MULT_DIST"], [74, 9, 1, "", "ARITH_MULT_FLATTEN"], [74, 9, 1, "", "ARITH_MUL_ONE"], [74, 9, 1, "", "ARITH_MUL_ZERO"], [74, 9, 1, "", "ARITH_PI_NOT_INT"], [74, 9, 1, "", "ARITH_PLUS_FLATTEN"], [74, 9, 1, "", "ARITH_POW_ELIM"], [74, 9, 1, "", "ARITH_REFL_GEQ"], [74, 9, 1, "", "ARITH_REFL_GT"], [74, 9, 1, "", "ARITH_REFL_LEQ"], [74, 9, 1, "", "ARITH_REFL_LT"], [74, 9, 1, "", "ARITH_SECENT_ELIM"], [74, 9, 1, "", "ARITH_SINE_PI2"], [74, 9, 1, "", "ARITH_SINE_ZERO"], [74, 9, 1, "", "ARITH_STRING_PRED_ENTAIL"], [74, 9, 1, "", "ARITH_STRING_PRED_SAFE_APPROX"], [74, 9, 1, "", "ARITH_TANGENT_ELIM"], [74, 9, 1, "", "ARITH_TO_INT_ELIM_TO_REAL"], [74, 9, 1, "", "ARITH_TO_REAL_ELIM"], [74, 9, 1, "", "ARRAYS_EQ_RANGE_EXPAND"], [74, 9, 1, "", "ARRAYS_SELECT_CONST"], [74, 9, 1, "", "ARRAY_READ_OVER_WRITE"], [74, 9, 1, "", "ARRAY_READ_OVER_WRITE2"], [74, 9, 1, "", "ARRAY_READ_OVER_WRITE_SPLIT"], [74, 9, 1, "", "ARRAY_STORE_OVERWRITE"], [74, 9, 1, "", "ARRAY_STORE_SELF"], [74, 9, 1, "", "BETA_REDUCE"], [74, 9, 1, "", "BOOL_AND_CONF"], [74, 9, 1, "", "BOOL_AND_CONF2"], [74, 9, 1, "", "BOOL_AND_DE_MORGAN"], [74, 9, 1, "", "BOOL_AND_FALSE"], [74, 9, 1, "", "BOOL_AND_FLATTEN"], [74, 9, 1, "", "BOOL_DOUBLE_NOT_ELIM"], [74, 9, 1, "", "BOOL_EQ_FALSE"], [74, 9, 1, "", "BOOL_EQ_NREFL"], [74, 9, 1, "", "BOOL_EQ_TRUE"], [74, 9, 1, "", "BOOL_IMPLIES_DE_MORGAN"], [74, 9, 1, "", "BOOL_IMPL_ELIM"], [74, 9, 1, "", "BOOL_IMPL_FALSE1"], [74, 9, 1, "", "BOOL_IMPL_FALSE2"], [74, 9, 1, "", "BOOL_IMPL_TRUE1"], [74, 9, 1, "", "BOOL_IMPL_TRUE2"], [74, 9, 1, "", "BOOL_NOT_EQ_ELIM1"], [74, 9, 1, "", "BOOL_NOT_EQ_ELIM2"], [74, 9, 1, "", "BOOL_NOT_FALSE"], [74, 9, 1, "", "BOOL_NOT_ITE_ELIM"], [74, 9, 1, "", "BOOL_NOT_TRUE"], [74, 9, 1, "", "BOOL_NOT_XOR_ELIM"], [74, 9, 1, "", "BOOL_OR_AND_DISTRIB"], [74, 9, 1, "", "BOOL_OR_DE_MORGAN"], [74, 9, 1, "", "BOOL_OR_FLATTEN"], [74, 9, 1, "", "BOOL_OR_TAUT"], [74, 9, 1, "", "BOOL_OR_TAUT2"], [74, 9, 1, "", "BOOL_OR_TRUE"], [74, 9, 1, "", "BOOL_XOR_COMM"], [74, 9, 1, "", "BOOL_XOR_ELIM"], [74, 9, 1, "", "BOOL_XOR_FALSE"], [74, 9, 1, "", "BOOL_XOR_NREFL"], [74, 9, 1, "", "BOOL_XOR_REFL"], [74, 9, 1, "", "BOOL_XOR_TRUE"], [74, 9, 1, "", "BV_ADD_COMBINE_LIKE_TERMS"], [74, 9, 1, "", "BV_ADD_TWO"], [74, 9, 1, "", "BV_ADD_ZERO"], [74, 9, 1, "", "BV_AND_CONCAT_PULLUP"], [74, 9, 1, "", "BV_AND_FLATTEN"], [74, 9, 1, "", "BV_AND_ONE"], [74, 9, 1, "", "BV_AND_SIMPLIFY_1"], [74, 9, 1, "", "BV_AND_SIMPLIFY_2"], [74, 9, 1, "", "BV_AND_ZERO"], [74, 9, 1, "", "BV_ASHR_BY_CONST_0"], [74, 9, 1, "", "BV_ASHR_BY_CONST_1"], [74, 9, 1, "", "BV_ASHR_BY_CONST_2"], [74, 9, 1, "", "BV_ASHR_ZERO"], [74, 9, 1, "", "BV_BITWISE_IDEMP_1"], [74, 9, 1, "", "BV_BITWISE_IDEMP_2"], [74, 9, 1, "", "BV_BITWISE_NOT_AND"], [74, 9, 1, "", "BV_BITWISE_NOT_OR"], [74, 9, 1, "", "BV_BITWISE_SLICING"], [74, 9, 1, "", "BV_COMMUTATIVE_ADD"], [74, 9, 1, "", "BV_COMMUTATIVE_AND"], [74, 9, 1, "", "BV_COMMUTATIVE_MUL"], [74, 9, 1, "", "BV_COMMUTATIVE_OR"], [74, 9, 1, "", "BV_COMMUTATIVE_XOR"], [74, 9, 1, "", "BV_COMP_ELIMINATE"], [74, 9, 1, "", "BV_CONCAT_EXTRACT_MERGE"], [74, 9, 1, "", "BV_CONCAT_FLATTEN"], [74, 9, 1, "", "BV_CONCAT_MERGE_CONST"], [74, 9, 1, "", "BV_CONCAT_TO_MULT"], [74, 9, 1, "", "BV_EQ_EXTRACT_ELIM1"], [74, 9, 1, "", "BV_EQ_EXTRACT_ELIM2"], [74, 9, 1, "", "BV_EQ_EXTRACT_ELIM3"], [74, 9, 1, "", "BV_EXTRACT_BITWISE_AND"], [74, 9, 1, "", "BV_EXTRACT_BITWISE_OR"], [74, 9, 1, "", "BV_EXTRACT_BITWISE_XOR"], [74, 9, 1, "", "BV_EXTRACT_CONCAT_1"], [74, 9, 1, "", "BV_EXTRACT_CONCAT_2"], [74, 9, 1, "", "BV_EXTRACT_CONCAT_3"], [74, 9, 1, "", "BV_EXTRACT_CONCAT_4"], [74, 9, 1, "", "BV_EXTRACT_EXTRACT"], [74, 9, 1, "", "BV_EXTRACT_MULT_LEADING_BIT"], [74, 9, 1, "", "BV_EXTRACT_NOT"], [74, 9, 1, "", "BV_EXTRACT_SIGN_EXTEND_1"], [74, 9, 1, "", "BV_EXTRACT_SIGN_EXTEND_2"], [74, 9, 1, "", "BV_EXTRACT_SIGN_EXTEND_3"], [74, 9, 1, "", "BV_EXTRACT_WHOLE"], [74, 9, 1, "", "BV_ITE_CONST_CHILDREN_1"], [74, 9, 1, "", "BV_ITE_CONST_CHILDREN_2"], [74, 9, 1, "", "BV_ITE_EQUAL_CHILDREN"], [74, 9, 1, "", "BV_ITE_EQUAL_COND_1"], [74, 9, 1, "", "BV_ITE_EQUAL_COND_2"], [74, 9, 1, "", "BV_ITE_EQUAL_COND_3"], [74, 9, 1, "", "BV_ITE_MERGE_ELSE_ELSE"], [74, 9, 1, "", "BV_ITE_MERGE_ELSE_IF"], [74, 9, 1, "", "BV_ITE_MERGE_THEN_ELSE"], [74, 9, 1, "", "BV_ITE_MERGE_THEN_IF"], [74, 9, 1, "", "BV_LSHR_BY_CONST_0"], [74, 9, 1, "", "BV_LSHR_BY_CONST_1"], [74, 9, 1, "", "BV_LSHR_BY_CONST_2"], [74, 9, 1, "", "BV_LSHR_ZERO"], [74, 9, 1, "", "BV_LT_SELF"], [74, 9, 1, "", "BV_MERGE_SIGN_EXTEND_1"], [74, 9, 1, "", "BV_MERGE_SIGN_EXTEND_2"], [74, 9, 1, "", "BV_MERGE_SIGN_EXTEND_3"], [74, 9, 1, "", "BV_MULT_DISTRIB_1"], [74, 9, 1, "", "BV_MULT_DISTRIB_2"], [74, 9, 1, "", "BV_MULT_DISTRIB_CONST_ADD"], [74, 9, 1, "", "BV_MULT_DISTRIB_CONST_NEG"], [74, 9, 1, "", "BV_MULT_DISTRIB_CONST_SUB"], [74, 9, 1, "", "BV_MULT_POW2_1"], [74, 9, 1, "", "BV_MULT_POW2_2"], [74, 9, 1, "", "BV_MULT_POW2_2B"], [74, 9, 1, "", "BV_MULT_SIMPLIFY"], [74, 9, 1, "", "BV_MULT_SLT_MULT_1"], [74, 9, 1, "", "BV_MULT_SLT_MULT_2"], [74, 9, 1, "", "BV_MUL_FLATTEN"], [74, 9, 1, "", "BV_MUL_ONE"], [74, 9, 1, "", "BV_MUL_ZERO"], [74, 9, 1, "", "BV_NAND_ELIMINATE"], [74, 9, 1, "", "BV_NEG_ADD"], [74, 9, 1, "", "BV_NEG_IDEMP"], [74, 9, 1, "", "BV_NEG_MULT"], [74, 9, 1, "", "BV_NEG_SUB"], [74, 9, 1, "", "BV_NOR_ELIMINATE"], [74, 9, 1, "", "BV_NOT_IDEMP"], [74, 9, 1, "", "BV_NOT_NEQ"], [74, 9, 1, "", "BV_NOT_SLE"], [74, 9, 1, "", "BV_NOT_ULE"], [74, 9, 1, "", "BV_NOT_ULT"], [74, 9, 1, "", "BV_NOT_XOR"], [74, 9, 1, "", "BV_OR_CONCAT_PULLUP"], [74, 9, 1, "", "BV_OR_FLATTEN"], [74, 9, 1, "", "BV_OR_ONE"], [74, 9, 1, "", "BV_OR_SIMPLIFY_1"], [74, 9, 1, "", "BV_OR_SIMPLIFY_2"], [74, 9, 1, "", "BV_OR_ZERO"], [74, 9, 1, "", "BV_REDAND_ELIMINATE"], [74, 9, 1, "", "BV_REDOR_ELIMINATE"], [74, 9, 1, "", "BV_REPEAT_ELIM"], [74, 9, 1, "", "BV_ROTATE_LEFT_ELIMINATE_1"], [74, 9, 1, "", "BV_ROTATE_LEFT_ELIMINATE_2"], [74, 9, 1, "", "BV_ROTATE_RIGHT_ELIMINATE_1"], [74, 9, 1, "", "BV_ROTATE_RIGHT_ELIMINATE_2"], [74, 9, 1, "", "BV_SADDO_ELIMINATE"], [74, 9, 1, "", "BV_SDIVO_ELIMINATE"], [74, 9, 1, "", "BV_SDIV_ELIMINATE"], [74, 9, 1, "", "BV_SDIV_ELIMINATE_FEWER_BITWISE_OPS"], [74, 9, 1, "", "BV_SGE_ELIMINATE"], [74, 9, 1, "", "BV_SGT_ELIMINATE"], [74, 9, 1, "", "BV_SHL_BY_CONST_0"], [74, 9, 1, "", "BV_SHL_BY_CONST_1"], [74, 9, 1, "", "BV_SHL_BY_CONST_2"], [74, 9, 1, "", "BV_SHL_ZERO"], [74, 9, 1, "", "BV_SIGN_EXTEND_ELIMINATE"], [74, 9, 1, "", "BV_SIGN_EXTEND_ELIMINATE_0"], [74, 9, 1, "", "BV_SIGN_EXTEND_EQ_CONST_1"], [74, 9, 1, "", "BV_SIGN_EXTEND_EQ_CONST_2"], [74, 9, 1, "", "BV_SIGN_EXTEND_ULT_CONST_1"], [74, 9, 1, "", "BV_SIGN_EXTEND_ULT_CONST_2"], [74, 9, 1, "", "BV_SIGN_EXTEND_ULT_CONST_3"], [74, 9, 1, "", "BV_SIGN_EXTEND_ULT_CONST_4"], [74, 9, 1, "", "BV_SLE_ELIMINATE"], [74, 9, 1, "", "BV_SLE_SELF"], [74, 9, 1, "", "BV_SLT_ELIMINATE"], [74, 9, 1, "", "BV_SLT_ZERO"], [74, 9, 1, "", "BV_SMOD_ELIMINATE"], [74, 9, 1, "", "BV_SMOD_ELIMINATE_FEWER_BITWISE_OPS"], [74, 9, 1, "", "BV_SMULO_ELIMINATE"], [74, 9, 1, "", "BV_SREM_ELIMINATE"], [74, 9, 1, "", "BV_SREM_ELIMINATE_FEWER_BITWISE_OPS"], [74, 9, 1, "", "BV_SSUBO_ELIMINATE"], [74, 9, 1, "", "BV_SUB_ELIMINATE"], [74, 9, 1, "", "BV_TO_NAT_ELIM"], [74, 9, 1, "", "BV_UADDO_ELIMINATE"], [74, 9, 1, "", "BV_UDIV_ONE"], [74, 9, 1, "", "BV_UDIV_POW2_NOT_ONE"], [74, 9, 1, "", "BV_UDIV_ZERO"], [74, 9, 1, "", "BV_UGE_ELIMINATE"], [74, 9, 1, "", "BV_UGT_ELIMINATE"], [74, 9, 1, "", "BV_UGT_UREM"], [74, 9, 1, "", "BV_ULE_ELIMINATE"], [74, 9, 1, "", "BV_ULE_MAX"], [74, 9, 1, "", "BV_ULE_SELF"], [74, 9, 1, "", "BV_ULE_ZERO"], [74, 9, 1, "", "BV_ULT_ADD_ONE"], [74, 9, 1, "", "BV_ULT_ONE"], [74, 9, 1, "", "BV_ULT_ONES"], [74, 9, 1, "", "BV_ULT_SELF"], [74, 9, 1, "", "BV_ULT_ZERO_1"], [74, 9, 1, "", "BV_ULT_ZERO_2"], [74, 9, 1, "", "BV_UMULO_ELIMINATE"], [74, 9, 1, "", "BV_UREM_ONE"], [74, 9, 1, "", "BV_UREM_POW2_NOT_ONE"], [74, 9, 1, "", "BV_UREM_SELF"], [74, 9, 1, "", "BV_USUBO_ELIMINATE"], [74, 9, 1, "", "BV_XNOR_ELIMINATE"], [74, 9, 1, "", "BV_XOR_CONCAT_PULLUP"], [74, 9, 1, "", "BV_XOR_DUPLICATE"], [74, 9, 1, "", "BV_XOR_FLATTEN"], [74, 9, 1, "", "BV_XOR_NOT"], [74, 9, 1, "", "BV_XOR_ONES"], [74, 9, 1, "", "BV_XOR_SIMPLIFY_1"], [74, 9, 1, "", "BV_XOR_SIMPLIFY_2"], [74, 9, 1, "", "BV_XOR_SIMPLIFY_3"], [74, 9, 1, "", "BV_XOR_ZERO"], [74, 9, 1, "", "BV_ZERO_EXTEND_ELIMINATE"], [74, 9, 1, "", "BV_ZERO_EXTEND_ELIMINATE_0"], [74, 9, 1, "", "BV_ZERO_EXTEND_EQ_CONST_1"], [74, 9, 1, "", "BV_ZERO_EXTEND_EQ_CONST_2"], [74, 9, 1, "", "BV_ZERO_ULE"], [74, 9, 1, "", "DISTINCT_BINARY_ELIM"], [74, 9, 1, "", "DISTINCT_CARD_CONFLICT"], [74, 9, 1, "", "DISTINCT_ELIM"], [74, 9, 1, "", "DT_COLLAPSE_SELECTOR"], [74, 9, 1, "", "DT_COLLAPSE_TESTER"], [74, 9, 1, "", "DT_COLLAPSE_TESTER_SINGLETON"], [74, 9, 1, "", "DT_COLLAPSE_UPDATER"], [74, 9, 1, "", "DT_CONS_EQ"], [74, 9, 1, "", "DT_CYCLE"], [74, 9, 1, "", "DT_INST"], [74, 9, 1, "", "DT_MATCH_ELIM"], [74, 9, 1, "", "DT_UPDATER_ELIM"], [74, 9, 1, "", "EQ_COND_DEQ"], [74, 9, 1, "", "EQ_ITE_LIFT"], [74, 9, 1, "", "EQ_REFL"], [74, 9, 1, "", "EQ_SYMM"], [74, 9, 1, "", "EXISTS_ELIM"], [74, 9, 1, "", "INT_TO_BV_ELIM"], [74, 9, 1, "", "ITE_ELSE_FALSE"], [74, 9, 1, "", "ITE_ELSE_LOOKAHEAD"], [74, 9, 1, "", "ITE_ELSE_LOOKAHEAD_NOT_SELF"], [74, 9, 1, "", "ITE_ELSE_LOOKAHEAD_SELF"], [74, 9, 1, "", "ITE_ELSE_NEG_LOOKAHEAD"], [74, 9, 1, "", "ITE_ELSE_TRUE"], [74, 9, 1, "", "ITE_EQ_BRANCH"], [74, 9, 1, "", "ITE_EXPAND"], [74, 9, 1, "", "ITE_FALSE_COND"], [74, 9, 1, "", "ITE_NEG_BRANCH"], [74, 9, 1, "", "ITE_NOT_COND"], [74, 9, 1, "", "ITE_THEN_FALSE"], [74, 9, 1, "", "ITE_THEN_LOOKAHEAD"], [74, 9, 1, "", "ITE_THEN_LOOKAHEAD_NOT_SELF"], [74, 9, 1, "", "ITE_THEN_LOOKAHEAD_SELF"], [74, 9, 1, "", "ITE_THEN_NEG_LOOKAHEAD"], [74, 9, 1, "", "ITE_THEN_TRUE"], [74, 9, 1, "", "ITE_TRUE_COND"], [74, 9, 1, "", "LAMBDA_ELIM"], [74, 9, 1, "", "MACRO_ARITH_STRING_PRED_ENTAIL"], [74, 9, 1, "", "MACRO_ARRAYS_DISTINCT_ARRAYS"], [74, 9, 1, "", "MACRO_ARRAYS_NORMALIZE_CONSTANT"], [74, 9, 1, "", "MACRO_BOOL_NNF_NORM"], [74, 9, 1, "", "MACRO_QUANT_MERGE_PRENEX"], [74, 9, 1, "", "MACRO_QUANT_MINISCOPE"], [74, 9, 1, "", "MACRO_QUANT_PARTITION_CONNECTED_FV"], [74, 9, 1, "", "MACRO_QUANT_PRENEX"], [74, 9, 1, "", "MACRO_QUANT_REWRITE_BODY"], [74, 9, 1, "", "MACRO_QUANT_VAR_ELIM_EQ"], [74, 9, 1, "", "MACRO_QUANT_VAR_ELIM_INEQ"], [74, 9, 1, "", "MACRO_SUBSTR_STRIP_SYM_LENGTH"], [74, 9, 1, "", "NONE"], [74, 9, 1, "", "QUANT_DT_SPLIT"], [74, 9, 1, "", "QUANT_MERGE_PRENEX"], [74, 9, 1, "", "QUANT_MINISCOPE_AND"], [74, 9, 1, "", "QUANT_MINISCOPE_ITE"], [74, 9, 1, "", "QUANT_MINISCOPE_OR"], [74, 9, 1, "", "QUANT_UNUSED_VARS"], [74, 9, 1, "", "QUANT_VAR_ELIM_EQ"], [74, 9, 1, "", "RE_ALL_ELIM"], [74, 9, 1, "", "RE_CONCAT_EMP"], [74, 9, 1, "", "RE_CONCAT_FLATTEN"], [74, 9, 1, "", "RE_CONCAT_MERGE"], [74, 9, 1, "", "RE_CONCAT_NONE"], [74, 9, 1, "", "RE_CONCAT_STAR_REPEAT"], [74, 9, 1, "", "RE_CONCAT_STAR_SWAP"], [74, 9, 1, "", "RE_DIFF_ELIM"], [74, 9, 1, "", "RE_INTER_ALL"], [74, 9, 1, "", "RE_INTER_CSTRING"], [74, 9, 1, "", "RE_INTER_CSTRING_NEG"], [74, 9, 1, "", "RE_INTER_DUP"], [74, 9, 1, "", "RE_INTER_FLATTEN"], [74, 9, 1, "", "RE_INTER_NONE"], [74, 9, 1, "", "RE_INTER_UNION_INCLUSION"], [74, 9, 1, "", "RE_IN_COMP"], [74, 9, 1, "", "RE_IN_CSTRING"], [74, 9, 1, "", "RE_IN_EMPTY"], [74, 9, 1, "", "RE_IN_SIGMA"], [74, 9, 1, "", "RE_IN_SIGMA_STAR"], [74, 9, 1, "", "RE_LOOP_ELIM"], [74, 9, 1, "", "RE_LOOP_NEG"], [74, 9, 1, "", "RE_OPT_ELIM"], [74, 9, 1, "", "RE_STAR_NONE"], [74, 9, 1, "", "RE_UNION_ALL"], [74, 9, 1, "", "RE_UNION_DUP"], [74, 9, 1, "", "RE_UNION_FLATTEN"], [74, 9, 1, "", "RE_UNION_NONE"], [74, 9, 1, "", "SEQ_LEN_EMPTY"], [74, 9, 1, "", "SEQ_LEN_REV"], [74, 9, 1, "", "SEQ_LEN_UNIT"], [74, 9, 1, "", "SEQ_NTH_UNIT"], [74, 9, 1, "", "SEQ_REV_CONCAT"], [74, 9, 1, "", "SEQ_REV_REV"], [74, 9, 1, "", "SEQ_REV_UNIT"], [74, 9, 1, "", "SETS_CARD_EMP"], [74, 9, 1, "", "SETS_CARD_MINUS"], [74, 9, 1, "", "SETS_CARD_SINGLETON"], [74, 9, 1, "", "SETS_CARD_UNION"], [74, 9, 1, "", "SETS_CHOOSE_SINGLETON"], [74, 9, 1, "", "SETS_EQ_SINGLETON_EMP"], [74, 9, 1, "", "SETS_INSERT_ELIM"], [74, 9, 1, "", "SETS_INTER_COMM"], [74, 9, 1, "", "SETS_INTER_EMP1"], [74, 9, 1, "", "SETS_INTER_EMP2"], [74, 9, 1, "", "SETS_INTER_MEMBER"], [74, 9, 1, "", "SETS_IS_EMPTY_ELIM"], [74, 9, 1, "", "SETS_IS_EMPTY_EVAL"], [74, 9, 1, "", "SETS_MEMBER_EMP"], [74, 9, 1, "", "SETS_MEMBER_SINGLETON"], [74, 9, 1, "", "SETS_MINUS_EMP1"], [74, 9, 1, "", "SETS_MINUS_EMP2"], [74, 9, 1, "", "SETS_MINUS_MEMBER"], [74, 9, 1, "", "SETS_MINUS_SELF"], [74, 9, 1, "", "SETS_SUBSET_ELIM"], [74, 9, 1, "", "SETS_UNION_COMM"], [74, 9, 1, "", "SETS_UNION_EMP1"], [74, 9, 1, "", "SETS_UNION_EMP2"], [74, 9, 1, "", "SETS_UNION_MEMBER"], [74, 9, 1, "", "STR_AT_ELIM"], [74, 9, 1, "", "STR_CONCAT_CLASH"], [74, 9, 1, "", "STR_CONCAT_CLASH2"], [74, 9, 1, "", "STR_CONCAT_CLASH2_REV"], [74, 9, 1, "", "STR_CONCAT_CLASH_CHAR"], [74, 9, 1, "", "STR_CONCAT_CLASH_CHAR_REV"], [74, 9, 1, "", "STR_CONCAT_CLASH_REV"], [74, 9, 1, "", "STR_CONCAT_FLATTEN"], [74, 9, 1, "", "STR_CONCAT_FLATTEN_EQ"], [74, 9, 1, "", "STR_CONCAT_FLATTEN_EQ_REV"], [74, 9, 1, "", "STR_CONCAT_UNIFY"], [74, 9, 1, "", "STR_CONCAT_UNIFY_BASE"], [74, 9, 1, "", "STR_CONCAT_UNIFY_BASE_REV"], [74, 9, 1, "", "STR_CONCAT_UNIFY_REV"], [74, 9, 1, "", "STR_CONTAINS_CONCAT_FIND"], [74, 9, 1, "", "STR_CONTAINS_EMP"], [74, 9, 1, "", "STR_CONTAINS_IS_EMP"], [74, 9, 1, "", "STR_CONTAINS_LEQ_LEN_EQ"], [74, 9, 1, "", "STR_CONTAINS_LT_LEN"], [74, 9, 1, "", "STR_CONTAINS_REFL"], [74, 9, 1, "", "STR_CONTAINS_SPLIT_CHAR"], [74, 9, 1, "", "STR_EQ_CTN_FALSE"], [74, 9, 1, "", "STR_EQ_CTN_FULL_FALSE1"], [74, 9, 1, "", "STR_EQ_CTN_FULL_FALSE2"], [74, 9, 1, "", "STR_INDEXOF_CONTAINS_PRE"], [74, 9, 1, "", "STR_INDEXOF_NO_CONTAINS"], [74, 9, 1, "", "STR_INDEXOF_RE_NONE"], [74, 9, 1, "", "STR_INDEXOF_SELF"], [74, 9, 1, "", "STR_IN_RE_CONCAT_STAR_CHAR"], [74, 9, 1, "", "STR_IN_RE_CONSUME"], [74, 9, 1, "", "STR_IN_RE_CONTAINS"], [74, 9, 1, "", "STR_IN_RE_EVAL"], [74, 9, 1, "", "STR_IN_RE_INTER_ELIM"], [74, 9, 1, "", "STR_IN_RE_RANGE_ELIM"], [74, 9, 1, "", "STR_IN_RE_REQ_UNFOLD"], [74, 9, 1, "", "STR_IN_RE_REQ_UNFOLD_REV"], [74, 9, 1, "", "STR_IN_RE_SIGMA"], [74, 9, 1, "", "STR_IN_RE_SIGMA_STAR"], [74, 9, 1, "", "STR_IN_RE_SKIP_UNFOLD"], [74, 9, 1, "", "STR_IN_RE_SKIP_UNFOLD_REV"], [74, 9, 1, "", "STR_IN_RE_STRIP_CHAR"], [74, 9, 1, "", "STR_IN_RE_STRIP_CHAR_REV"], [74, 9, 1, "", "STR_IN_RE_STRIP_CHAR_S_SINGLE"], [74, 9, 1, "", "STR_IN_RE_STRIP_CHAR_S_SINGLE_REV"], [74, 9, 1, "", "STR_IN_RE_STRIP_PREFIX"], [74, 9, 1, "", "STR_IN_RE_STRIP_PREFIX_BASE"], [74, 9, 1, "", "STR_IN_RE_STRIP_PREFIX_BASE_NEG"], [74, 9, 1, "", "STR_IN_RE_STRIP_PREFIX_BASE_NEG_REV"], [74, 9, 1, "", "STR_IN_RE_STRIP_PREFIX_BASE_REV"], [74, 9, 1, "", "STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE"], [74, 9, 1, "", "STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG"], [74, 9, 1, "", "STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG_REV"], [74, 9, 1, "", "STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_REV"], [74, 9, 1, "", "STR_IN_RE_STRIP_PREFIX_NEG"], [74, 9, 1, "", "STR_IN_RE_STRIP_PREFIX_NEG_REV"], [74, 9, 1, "", "STR_IN_RE_STRIP_PREFIX_REV"], [74, 9, 1, "", "STR_IN_RE_STRIP_PREFIX_SRS_SINGLE"], [74, 9, 1, "", "STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG"], [74, 9, 1, "", "STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG_REV"], [74, 9, 1, "", "STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_REV"], [74, 9, 1, "", "STR_IN_RE_STRIP_PREFIX_SR_SINGLE"], [74, 9, 1, "", "STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG"], [74, 9, 1, "", "STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG_REV"], [74, 9, 1, "", "STR_IN_RE_STRIP_PREFIX_SR_SINGLE_REV"], [74, 9, 1, "", "STR_IN_RE_STRIP_PREFIX_S_SINGLE"], [74, 9, 1, "", "STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG"], [74, 9, 1, "", "STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG_REV"], [74, 9, 1, "", "STR_IN_RE_STRIP_PREFIX_S_SINGLE_REV"], [74, 9, 1, "", "STR_IN_RE_TEST_UNFOLD"], [74, 9, 1, "", "STR_IN_RE_TEST_UNFOLD_REV"], [74, 9, 1, "", "STR_IN_RE_UNION_ELIM"], [74, 9, 1, "", "STR_LEN_CONCAT_REC"], [74, 9, 1, "", "STR_LEN_REPLACE_INV"], [74, 9, 1, "", "STR_LEN_SUBSTR_IN_RANGE"], [74, 9, 1, "", "STR_LEN_SUBSTR_UB1"], [74, 9, 1, "", "STR_LEN_SUBSTR_UB2"], [74, 9, 1, "", "STR_LEN_UPDATE_INV"], [74, 9, 1, "", "STR_LEQ_CONCAT_FALSE"], [74, 9, 1, "", "STR_LEQ_CONCAT_TRUE"], [74, 9, 1, "", "STR_LEQ_EMPTY"], [74, 9, 1, "", "STR_LEQ_EMPTY_EQ"], [74, 9, 1, "", "STR_LT_ELIM"], [74, 9, 1, "", "STR_PREFIXOF_ELIM"], [74, 9, 1, "", "STR_PREFIXOF_ONE"], [74, 9, 1, "", "STR_REPLACE_ALL_NO_CONTAINS"], [74, 9, 1, "", "STR_REPLACE_CONTAINS_PRE"], [74, 9, 1, "", "STR_REPLACE_EMPTY"], [74, 9, 1, "", "STR_REPLACE_NO_CONTAINS"], [74, 9, 1, "", "STR_REPLACE_PREFIX"], [74, 9, 1, "", "STR_REPLACE_RE_ALL_NONE"], [74, 9, 1, "", "STR_REPLACE_RE_NONE"], [74, 9, 1, "", "STR_REPLACE_SELF"], [74, 9, 1, "", "STR_SUBSTR_COMBINE1"], [74, 9, 1, "", "STR_SUBSTR_COMBINE2"], [74, 9, 1, "", "STR_SUBSTR_COMBINE3"], [74, 9, 1, "", "STR_SUBSTR_COMBINE4"], [74, 9, 1, "", "STR_SUBSTR_CONCAT1"], [74, 9, 1, "", "STR_SUBSTR_CONCAT2"], [74, 9, 1, "", "STR_SUBSTR_EMPTY_RANGE"], [74, 9, 1, "", "STR_SUBSTR_EMPTY_START"], [74, 9, 1, "", "STR_SUBSTR_EMPTY_START_NEG"], [74, 9, 1, "", "STR_SUBSTR_EMPTY_STR"], [74, 9, 1, "", "STR_SUBSTR_EQ_EMPTY"], [74, 9, 1, "", "STR_SUBSTR_FULL"], [74, 9, 1, "", "STR_SUBSTR_FULL_EQ"], [74, 9, 1, "", "STR_SUBSTR_LEN_INCLUDE"], [74, 9, 1, "", "STR_SUBSTR_LEN_INCLUDE_PRE"], [74, 9, 1, "", "STR_SUBSTR_LEN_SKIP"], [74, 9, 1, "", "STR_SUFFIXOF_ELIM"], [74, 9, 1, "", "STR_SUFFIXOF_ONE"], [74, 9, 1, "", "STR_TO_INT_CONCAT_NEG_ONE"], [74, 9, 1, "", "STR_TO_LOWER_CONCAT"], [74, 9, 1, "", "STR_TO_LOWER_FROM_INT"], [74, 9, 1, "", "STR_TO_LOWER_LEN"], [74, 9, 1, "", "STR_TO_LOWER_UPPER"], [74, 9, 1, "", "STR_TO_UPPER_CONCAT"], [74, 9, 1, "", "STR_TO_UPPER_FROM_INT"], [74, 9, 1, "", "STR_TO_UPPER_LEN"], [74, 9, 1, "", "STR_TO_UPPER_LOWER"], [74, 9, 1, "", "UF_BV2NAT_GEQ_ELIM"], [74, 9, 1, "", "UF_BV2NAT_INT2BV"], [74, 9, 1, "", "UF_BV2NAT_INT2BV_EXTEND"], [74, 9, 1, "", "UF_BV2NAT_INT2BV_EXTRACT"], [74, 9, 1, "", "UF_INT2BV_BV2NAT"], [74, 9, 1, "", "UF_INT2BV_BVULE_EQUIV"], [74, 9, 1, "", "UF_INT2BV_BVULT_EQUIV"]], "cvc5.ProofRule": [[74, 9, 1, "", "ACI_NORM"], [74, 9, 1, "", "ALETHE_RULE"], [74, 9, 1, "", "ALPHA_EQUIV"], [74, 9, 1, "", "AND_ELIM"], [74, 9, 1, "", "AND_INTRO"], [74, 9, 1, "", "ARITH_MULT_ABS_COMPARISON"], [74, 9, 1, "", "ARITH_MULT_NEG"], [74, 9, 1, "", "ARITH_MULT_POS"], [74, 9, 1, "", "ARITH_MULT_SIGN"], [74, 9, 1, "", "ARITH_MULT_TANGENT"], [74, 9, 1, "", "ARITH_POLY_NORM"], [74, 9, 1, "", "ARITH_POLY_NORM_REL"], [74, 9, 1, "", "ARITH_REDUCTION"], [74, 9, 1, "", "ARITH_SUM_UB"], [74, 9, 1, "", "ARITH_TRANS_EXP_APPROX_ABOVE_NEG"], [74, 9, 1, "", "ARITH_TRANS_EXP_APPROX_ABOVE_POS"], [74, 9, 1, "", "ARITH_TRANS_EXP_APPROX_BELOW"], [74, 9, 1, "", "ARITH_TRANS_EXP_NEG"], [74, 9, 1, "", "ARITH_TRANS_EXP_POSITIVITY"], [74, 9, 1, "", "ARITH_TRANS_EXP_SUPER_LIN"], [74, 9, 1, "", "ARITH_TRANS_EXP_ZERO"], [74, 9, 1, "", "ARITH_TRANS_PI"], [74, 9, 1, "", "ARITH_TRANS_SINE_APPROX_ABOVE_NEG"], [74, 9, 1, "", "ARITH_TRANS_SINE_APPROX_ABOVE_POS"], [74, 9, 1, "", "ARITH_TRANS_SINE_APPROX_BELOW_NEG"], [74, 9, 1, "", "ARITH_TRANS_SINE_APPROX_BELOW_POS"], [74, 9, 1, "", "ARITH_TRANS_SINE_BOUNDS"], [74, 9, 1, "", "ARITH_TRANS_SINE_SHIFT"], [74, 9, 1, "", "ARITH_TRANS_SINE_SYMMETRY"], [74, 9, 1, "", "ARITH_TRANS_SINE_TANGENT_PI"], [74, 9, 1, "", "ARITH_TRANS_SINE_TANGENT_ZERO"], [74, 9, 1, "", "ARITH_TRICHOTOMY"], [74, 9, 1, "", "ARRAYS_EXT"], [74, 9, 1, "", "ARRAYS_READ_OVER_WRITE"], [74, 9, 1, "", "ARRAYS_READ_OVER_WRITE_1"], [74, 9, 1, "", "ARRAYS_READ_OVER_WRITE_CONTRA"], [74, 9, 1, "", "ASSUME"], [74, 9, 1, "", "BV_BITBLAST_STEP"], [74, 9, 1, "", "BV_EAGER_ATOM"], [74, 9, 1, "", "CHAIN_RESOLUTION"], [74, 9, 1, "", "CNF_AND_NEG"], [74, 9, 1, "", "CNF_AND_POS"], [74, 9, 1, "", "CNF_EQUIV_NEG1"], [74, 9, 1, "", "CNF_EQUIV_NEG2"], [74, 9, 1, "", "CNF_EQUIV_POS1"], [74, 9, 1, "", "CNF_EQUIV_POS2"], [74, 9, 1, "", "CNF_IMPLIES_NEG1"], [74, 9, 1, "", "CNF_IMPLIES_NEG2"], [74, 9, 1, "", "CNF_IMPLIES_POS"], [74, 9, 1, "", "CNF_ITE_NEG1"], [74, 9, 1, "", "CNF_ITE_NEG2"], [74, 9, 1, "", "CNF_ITE_NEG3"], [74, 9, 1, "", "CNF_ITE_POS1"], [74, 9, 1, "", "CNF_ITE_POS2"], [74, 9, 1, "", "CNF_ITE_POS3"], [74, 9, 1, "", "CNF_OR_NEG"], [74, 9, 1, "", "CNF_OR_POS"], [74, 9, 1, "", "CNF_XOR_NEG1"], [74, 9, 1, "", "CNF_XOR_NEG2"], [74, 9, 1, "", "CNF_XOR_POS1"], [74, 9, 1, "", "CNF_XOR_POS2"], [74, 9, 1, "", "CONCAT_CONFLICT"], [74, 9, 1, "", "CONCAT_CONFLICT_DEQ"], [74, 9, 1, "", "CONCAT_CPROP"], [74, 9, 1, "", "CONCAT_CSPLIT"], [74, 9, 1, "", "CONCAT_EQ"], [74, 9, 1, "", "CONCAT_LPROP"], [74, 9, 1, "", "CONCAT_SPLIT"], [74, 9, 1, "", "CONCAT_UNIFY"], [74, 9, 1, "", "CONG"], [74, 9, 1, "", "CONTRA"], [74, 9, 1, "", "DRAT_REFUTATION"], [74, 9, 1, "", "DSL_REWRITE"], [74, 9, 1, "", "DT_CLASH"], [74, 9, 1, "", "DT_SPLIT"], [74, 9, 1, "", "ENCODE_EQ_INTRO"], [74, 9, 1, "", "EQUIV_ELIM1"], [74, 9, 1, "", "EQUIV_ELIM2"], [74, 9, 1, "", "EQ_RESOLVE"], [74, 9, 1, "", "EVALUATE"], [74, 9, 1, "", "FACTORING"], [74, 9, 1, "", "FALSE_ELIM"], [74, 9, 1, "", "FALSE_INTRO"], [74, 9, 1, "", "HO_APP_ENCODE"], [74, 9, 1, "", "HO_CONG"], [74, 9, 1, "", "IMPLIES_ELIM"], [74, 9, 1, "", "INSTANTIATE"], [74, 9, 1, "", "INT_TIGHT_LB"], [74, 9, 1, "", "INT_TIGHT_UB"], [74, 9, 1, "", "ITE_ELIM1"], [74, 9, 1, "", "ITE_ELIM2"], [74, 9, 1, "", "ITE_EQ"], [74, 9, 1, "", "LFSC_RULE"], [74, 9, 1, "", "MACRO_ARITH_SCALE_SUM_UB"], [74, 9, 1, "", "MACRO_BV_BITBLAST"], [74, 9, 1, "", "MACRO_RESOLUTION"], [74, 9, 1, "", "MACRO_RESOLUTION_TRUST"], [74, 9, 1, "", "MACRO_REWRITE"], [74, 9, 1, "", "MACRO_SR_EQ_INTRO"], [74, 9, 1, "", "MACRO_SR_PRED_ELIM"], [74, 9, 1, "", "MACRO_SR_PRED_INTRO"], [74, 9, 1, "", "MACRO_SR_PRED_TRANSFORM"], [74, 9, 1, "", "MACRO_STRING_INFERENCE"], [74, 9, 1, "", "MODUS_PONENS"], [74, 9, 1, "", "NARY_CONG"], [74, 9, 1, "", "NOT_AND"], [74, 9, 1, "", "NOT_EQUIV_ELIM1"], [74, 9, 1, "", "NOT_EQUIV_ELIM2"], [74, 9, 1, "", "NOT_IMPLIES_ELIM1"], [74, 9, 1, "", "NOT_IMPLIES_ELIM2"], [74, 9, 1, "", "NOT_ITE_ELIM1"], [74, 9, 1, "", "NOT_ITE_ELIM2"], [74, 9, 1, "", "NOT_NOT_ELIM"], [74, 9, 1, "", "NOT_OR_ELIM"], [74, 9, 1, "", "NOT_XOR_ELIM1"], [74, 9, 1, "", "NOT_XOR_ELIM2"], [74, 9, 1, "", "QUANT_VAR_REORDERING"], [74, 9, 1, "", "REFL"], [74, 9, 1, "", "REORDERING"], [74, 9, 1, "", "RESOLUTION"], [74, 9, 1, "", "RE_INTER"], [74, 9, 1, "", "RE_UNFOLD_NEG"], [74, 9, 1, "", "RE_UNFOLD_NEG_CONCAT_FIXED"], [74, 9, 1, "", "RE_UNFOLD_POS"], [74, 9, 1, "", "SAT_EXTERNAL_PROVE"], [74, 9, 1, "", "SAT_REFUTATION"], [74, 9, 1, "", "SCOPE"], [74, 9, 1, "", "SETS_EXT"], [74, 9, 1, "", "SETS_FILTER_DOWN"], [74, 9, 1, "", "SETS_FILTER_UP"], [74, 9, 1, "", "SETS_SINGLETON_INJ"], [74, 9, 1, "", "SKOLEMIZE"], [74, 9, 1, "", "SKOLEM_INTRO"], [74, 9, 1, "", "SPLIT"], [74, 9, 1, "", "STRING_CODE_INJ"], [74, 9, 1, "", "STRING_DECOMPOSE"], [74, 9, 1, "", "STRING_EAGER_REDUCTION"], [74, 9, 1, "", "STRING_EXT"], [74, 9, 1, "", "STRING_LENGTH_NON_EMPTY"], [74, 9, 1, "", "STRING_LENGTH_POS"], [74, 9, 1, "", "STRING_REDUCTION"], [74, 9, 1, "", "STRING_SEQ_UNIT_INJ"], [74, 9, 1, "", "SUBS"], [74, 9, 1, "", "SYMM"], [74, 9, 1, "", "THEORY_REWRITE"], [74, 9, 1, "", "TRANS"], [74, 9, 1, "", "TRUE_ELIM"], [74, 9, 1, "", "TRUE_INTRO"], [74, 9, 1, "", "TRUST"], [74, 9, 1, "", "TRUST_THEORY_REWRITE"], [74, 9, 1, "", "UNKNOWN"], [74, 9, 1, "", "XOR_ELIM1"], [74, 9, 1, "", "XOR_ELIM2"]], "cvc5.Result": [[77, 10, 1, "", "getUnknownExplanation"], [77, 10, 1, "", "isNull"], [77, 10, 1, "", "isSat"], [77, 10, 1, "", "isUnknown"], [77, 10, 1, "", "isUnsat"]], "cvc5.RoundingMode": [[78, 9, 1, "", "ROUND_NEAREST_TIES_TO_AWAY"], [78, 9, 1, "", "ROUND_NEAREST_TIES_TO_EVEN"], [78, 9, 1, "", "ROUND_TOWARD_NEGATIVE"], [78, 9, 1, "", "ROUND_TOWARD_POSITIVE"], [78, 9, 1, "", "ROUND_TOWARD_ZERO"]], "cvc5.Solver": [[79, 10, 1, "", "addPlugin"], [79, 10, 1, "", "addSygusAssume"], [79, 10, 1, "", "addSygusConstraint"], [79, 10, 1, "", "addSygusInvConstraint"], [79, 10, 1, "", "assertFormula"], [79, 10, 1, "", "blockModel"], [79, 10, 1, "", "blockModelValues"], [79, 10, 1, "", "checkSat"], [79, 10, 1, "", "checkSatAssuming"], [79, 10, 1, "", "checkSynth"], [79, 10, 1, "", "checkSynthNext"], [79, 10, 1, "", "declareDatatype"], [79, 10, 1, "", "declareFun"], [79, 10, 1, "", "declarePool"], [79, 10, 1, "", "declareSepHeap"], [79, 10, 1, "", "declareSort"], [79, 10, 1, "", "declareSygusVar"], [79, 10, 1, "", "defineFun"], [79, 10, 1, "", "defineFunRec"], [79, 10, 1, "", "defineFunsRec"], [79, 10, 1, "", "findSynth"], [79, 10, 1, "", "findSynthNext"], [79, 10, 1, "", "getAbduct"], [79, 10, 1, "", "getAbductNext"], [79, 10, 1, "", "getAssertions"], [79, 10, 1, "", "getBooleanSort"], [79, 10, 1, "", "getDifficulty"], [79, 10, 1, "", "getInfo"], [79, 10, 1, "", "getInstantiations"], [79, 10, 1, "", "getIntegerSort"], [79, 10, 1, "", "getInterpolant"], [79, 10, 1, "", "getInterpolantNext"], [79, 10, 1, "", "getLearnedLiterals"], [79, 10, 1, "", "getLogic"], [79, 10, 1, "", "getModel"], [79, 10, 1, "", "getModelDomainElements"], [79, 10, 1, "", "getNumIndicesForSkolemId"], [79, 10, 1, "", "getOption"], [79, 10, 1, "", "getOptionInfo"], [79, 10, 1, "", "getOptionNames"], [79, 10, 1, "", "getProof"], [79, 10, 1, "", "getQuantifierElimination"], [79, 10, 1, "", "getQuantifierEliminationDisjunct"], [79, 10, 1, "", "getRealSort"], [79, 10, 1, "", "getRegExpSort"], [79, 10, 1, "", "getRoundingModeSort"], [79, 10, 1, "", "getStatistics"], [79, 10, 1, "", "getStringSort"], [79, 10, 1, "", "getSygusAssumptions"], [79, 10, 1, "", "getSygusConstraints"], [79, 10, 1, "", "getSynthSolution"], [79, 10, 1, "", "getSynthSolutions"], [79, 10, 1, "", "getTermManager"], [79, 10, 1, "", "getTimeoutCore"], [79, 10, 1, "", "getTimeoutCoreAssuming"], [79, 10, 1, "", "getUnsatAssumptions"], [79, 10, 1, "", "getUnsatCore"], [79, 10, 1, "", "getUnsatCoreLemmas"], [79, 10, 1, "", "getValue"], [79, 10, 1, "", "getValueSepHeap"], [79, 10, 1, "", "getValueSepNil"], [79, 10, 1, "", "getVersion"], [79, 10, 1, "", "isLogicSet"], [79, 10, 1, "", "isModelCoreSymbol"], [79, 10, 1, "", "mkAbstractSort"], [79, 10, 1, "", "mkArraySort"], [79, 10, 1, "", "mkBagSort"], [79, 10, 1, "", "mkBitVector"], [79, 10, 1, "", "mkBitVectorSort"], [79, 10, 1, "", "mkBoolean"], [79, 10, 1, "", "mkCardinalityConstraint"], [79, 10, 1, "", "mkConst"], [79, 10, 1, "", "mkConstArray"], [79, 10, 1, "", "mkDatatypeConstructorDecl"], [79, 10, 1, "", "mkDatatypeDecl"], [79, 10, 1, "", "mkDatatypeSort"], [79, 10, 1, "", "mkDatatypeSorts"], [79, 10, 1, "", "mkEmptyBag"], [79, 10, 1, "", "mkEmptySequence"], [79, 10, 1, "", "mkEmptySet"], [79, 10, 1, "", "mkFalse"], [79, 10, 1, "", "mkFiniteFieldElem"], [79, 10, 1, "", "mkFiniteFieldSort"], [79, 10, 1, "", "mkFloatingPoint"], [79, 10, 1, "", "mkFloatingPointNaN"], [79, 10, 1, "", "mkFloatingPointNegInf"], [79, 10, 1, "", "mkFloatingPointNegZero"], [79, 10, 1, "", "mkFloatingPointPosInf"], [79, 10, 1, "", "mkFloatingPointPosZero"], [79, 10, 1, "", "mkFloatingPointSort"], [79, 10, 1, "", "mkFunctionSort"], [79, 10, 1, "", "mkGrammar"], [79, 10, 1, "", "mkInteger"], [79, 10, 1, "", "mkNullableIsNull"], [79, 10, 1, "", "mkNullableIsSome"], [79, 10, 1, "", "mkNullableLift"], [79, 10, 1, "", "mkNullableNull"], [79, 10, 1, "", "mkNullableSome"], [79, 10, 1, "", "mkNullableSort"], [79, 10, 1, "", "mkNullableVal"], [79, 10, 1, "", "mkOp"], [79, 10, 1, "", "mkParamSort"], [79, 10, 1, "", "mkPi"], [79, 10, 1, "", "mkPredicateSort"], [79, 10, 1, "", "mkReal"], [79, 10, 1, "", "mkRecordSort"], [79, 10, 1, "", "mkRegexpAll"], [79, 10, 1, "", "mkRegexpAllchar"], [79, 10, 1, "", "mkRegexpNone"], [79, 10, 1, "", "mkRoundingMode"], [79, 10, 1, "", "mkSepEmp"], [79, 10, 1, "", "mkSepNil"], [79, 10, 1, "", "mkSequenceSort"], [79, 10, 1, "", "mkSetSort"], [79, 10, 1, "", "mkSkolem"], [79, 10, 1, "", "mkString"], [79, 10, 1, "", "mkTerm"], [79, 10, 1, "", "mkTrue"], [79, 10, 1, "", "mkTuple"], [79, 10, 1, "", "mkTupleSort"], [79, 10, 1, "", "mkUninterpretedSort"], [79, 10, 1, "", "mkUninterpretedSortConstructorSort"], [79, 10, 1, "", "mkUniverseSet"], [79, 10, 1, "", "mkUnresolvedDatatypeSort"], [79, 10, 1, "", "mkVar"], [79, 10, 1, "", "pop"], [79, 10, 1, "", "proofToString"], [79, 10, 1, "", "push"], [79, 10, 1, "", "resetAssertions"], [79, 10, 1, "", "setInfo"], [79, 10, 1, "", "setLogic"], [79, 10, 1, "", "setOption"], [79, 10, 1, "", "simplify"], [79, 10, 1, "", "synthFun"]], "cvc5.Sort": [[80, 10, 1, "", "getAbstractedKind"], [80, 10, 1, "", "getArrayElementSort"], [80, 10, 1, "", "getArrayIndexSort"], [80, 10, 1, "", "getBagElementSort"], [80, 10, 1, "", "getBitVectorSize"], [80, 10, 1, "", "getDatatype"], [80, 10, 1, "", "getDatatypeArity"], [80, 10, 1, "", "getDatatypeConstructorArity"], [80, 10, 1, "", "getDatatypeConstructorCodomainSort"], [80, 10, 1, "", "getDatatypeConstructorDomainSorts"], [80, 10, 1, "", "getDatatypeSelectorCodomainSort"], [80, 10, 1, "", "getDatatypeSelectorDomainSort"], [80, 10, 1, "", "getDatatypeTesterCodomainSort"], [80, 10, 1, "", "getDatatypeTesterDomainSort"], [80, 10, 1, "", "getFiniteFieldSize"], [80, 10, 1, "", "getFloatingPointExponentSize"], [80, 10, 1, "", "getFloatingPointSignificandSize"], [80, 10, 1, "", "getFunctionArity"], [80, 10, 1, "", "getFunctionCodomainSort"], [80, 10, 1, "", "getFunctionDomainSorts"], [80, 10, 1, "", "getInstantiatedParameters"], [80, 10, 1, "", "getKind"], [80, 10, 1, "", "getNullableElementSort"], [80, 10, 1, "", "getSequenceElementSort"], [80, 10, 1, "", "getSetElementSort"], [80, 10, 1, "", "getSymbol"], [80, 10, 1, "", "getTupleLength"], [80, 10, 1, "", "getTupleSorts"], [80, 10, 1, "", "getUninterpretedSortConstructor"], [80, 10, 1, "", "getUninterpretedSortConstructorArity"], [80, 10, 1, "", "hasSymbol"], [80, 10, 1, "", "instantiate"], [80, 10, 1, "", "isAbstract"], [80, 10, 1, "", "isArray"], [80, 10, 1, "", "isBag"], [80, 10, 1, "", "isBitVector"], [80, 10, 1, "", "isBoolean"], [80, 10, 1, "", "isDatatype"], [80, 10, 1, "", "isDatatypeConstructor"], [80, 10, 1, "", "isDatatypeSelector"], [80, 10, 1, "", "isDatatypeTester"], [80, 10, 1, "", "isDatatypeUpdater"], [80, 10, 1, "", "isFiniteField"], [80, 10, 1, "", "isFloatingPoint"], [80, 10, 1, "", "isFunction"], [80, 10, 1, "", "isInstantiated"], [80, 10, 1, "", "isInteger"], [80, 10, 1, "", "isNull"], [80, 10, 1, "", "isNullable"], [80, 10, 1, "", "isPredicate"], [80, 10, 1, "", "isReal"], [80, 10, 1, "", "isRecord"], [80, 10, 1, "", "isRegExp"], [80, 10, 1, "", "isRoundingMode"], [80, 10, 1, "", "isSequence"], [80, 10, 1, "", "isSet"], [80, 10, 1, "", "isString"], [80, 10, 1, "", "isTuple"], [80, 10, 1, "", "isUninterpretedSort"], [80, 10, 1, "", "isUninterpretedSortConstructor"], [80, 10, 1, "", "substitute"]], "cvc5.SortKind": [[81, 9, 1, "", "ABSTRACT_SORT"], [81, 9, 1, "", "ARRAY_SORT"], [81, 9, 1, "", "BAG_SORT"], [81, 9, 1, "", "BITVECTOR_SORT"], [81, 9, 1, "", "BOOLEAN_SORT"], [81, 9, 1, "", "DATATYPE_SORT"], [81, 9, 1, "", "FINITE_FIELD_SORT"], [81, 9, 1, "", "FLOATINGPOINT_SORT"], [81, 9, 1, "", "FUNCTION_SORT"], [81, 9, 1, "", "INTEGER_SORT"], [81, 9, 1, "", "INTERNAL_SORT_KIND"], [81, 9, 1, "", "LAST_SORT_KIND"], [81, 9, 1, "", "NULLABLE_SORT"], [81, 9, 1, "", "NULL_SORT"], [81, 9, 1, "", "REAL_SORT"], [81, 9, 1, "", "REGLAN_SORT"], [81, 9, 1, "", "ROUNDINGMODE_SORT"], [81, 9, 1, "", "SEQUENCE_SORT"], [81, 9, 1, "", "SET_SORT"], [81, 9, 1, "", "STRING_SORT"], [81, 9, 1, "", "TUPLE_SORT"], [81, 9, 1, "", "UNDEFINED_SORT_KIND"], [81, 9, 1, "", "UNINTERPRETED_SORT"]], "cvc5.Statistics": [[82, 10, 1, "", "__getitem__"], [82, 10, 1, "", "__iter__"], [82, 10, 1, "", "__next__"], [82, 10, 1, "", "get"]], "cvc5.SymbolManager": [[83, 10, 1, "", "getDeclaredSorts"], [83, 10, 1, "", "getDeclaredTerms"], [83, 10, 1, "", "getLogic"], [83, 10, 1, "", "getNamedTerms"], [83, 10, 1, "", "isLogicSet"]], "cvc5.SynthResult": [[84, 10, 1, "", "hasNoSolution"], [84, 10, 1, "", "hasSolution"], [84, 10, 1, "", "isNull"], [84, 10, 1, "", "isUnknown"]], "cvc5.Term": [[85, 10, 1, "", "__getitem__"], [85, 10, 1, "", "__iter__"], [85, 10, 1, "", "andTerm"], [85, 10, 1, "", "eqTerm"], [85, 10, 1, "", "getBitVectorValue"], [85, 10, 1, "", "getBooleanValue"], [85, 10, 1, "", "getCardinalityConstraint"], [85, 10, 1, "", "getConstArrayBase"], [85, 10, 1, "", "getFiniteFieldValue"], [85, 10, 1, "", "getFloatingPointValue"], [85, 10, 1, "", "getId"], [85, 10, 1, "", "getIntegerValue"], [85, 10, 1, "", "getKind"], [85, 10, 1, "", "getNumChildren"], [85, 10, 1, "", "getOp"], [85, 10, 1, "", "getRealAlgebraicNumberDefiningPolynomial"], [85, 10, 1, "", "getRealAlgebraicNumberLowerBound"], [85, 10, 1, "", "getRealAlgebraicNumberUpperBound"], [85, 10, 1, "", "getRealOrIntegerValueSign"], [85, 10, 1, "", "getRealValue"], [85, 10, 1, "", "getRoundingModeValue"], [85, 10, 1, "", "getSequenceValue"], [85, 10, 1, "", "getSetValue"], [85, 10, 1, "", "getSkolemId"], [85, 10, 1, "", "getSkolemIndices"], [85, 10, 1, "", "getSort"], [85, 10, 1, "", "getStringValue"], [85, 10, 1, "", "getSymbol"], [85, 10, 1, "", "getTupleValue"], [85, 10, 1, "", "getUninterpretedSortValue"], [85, 10, 1, "", "hasOp"], [85, 10, 1, "", "hasSymbol"], [85, 10, 1, "", "impTerm"], [85, 10, 1, "", "isBitVectorValue"], [85, 10, 1, "", "isBooleanValue"], [85, 10, 1, "", "isCardinalityConstraint"], [85, 10, 1, "", "isConstArray"], [85, 10, 1, "", "isFiniteFieldValue"], [85, 10, 1, "", "isFloatingPointNaN"], [85, 10, 1, "", "isFloatingPointNegInf"], [85, 10, 1, "", "isFloatingPointNegZero"], [85, 10, 1, "", "isFloatingPointPosInf"], [85, 10, 1, "", "isFloatingPointPosZero"], [85, 10, 1, "", "isFloatingPointValue"], [85, 10, 1, "", "isIntegerValue"], [85, 10, 1, "", "isNull"], [85, 10, 1, "", "isRealAlgebraicNumber"], [85, 10, 1, "", "isRealValue"], [85, 10, 1, "", "isRoundingModeValue"], [85, 10, 1, "", "isSequenceValue"], [85, 10, 1, "", "isSetValue"], [85, 10, 1, "", "isSkolem"], [85, 10, 1, "", "isStringValue"], [85, 10, 1, "", "isTupleValue"], [85, 10, 1, "", "isUninterpretedSortValue"], [85, 10, 1, "", "iteTerm"], [85, 10, 1, "", "notTerm"], [85, 10, 1, "", "orTerm"], [85, 10, 1, "", "substitute"], [85, 10, 1, "", "toPythonObj"], [85, 10, 1, "", "xorTerm"]], "cvc5.TermManager": [[86, 10, 1, "", "getBooleanSort"], [86, 10, 1, "", "getIntegerSort"], [86, 10, 1, "", "getNumIndicesForSkolemId"], [86, 10, 1, "", "getRealSort"], [86, 10, 1, "", "getRegExpSort"], [86, 10, 1, "", "getRoundingModeSort"], [86, 10, 1, "", "getStatistics"], [86, 10, 1, "", "getStringSort"], [86, 10, 1, "", "mkAbstractSort"], [86, 10, 1, "", "mkArraySort"], [86, 10, 1, "", "mkBagSort"], [86, 10, 1, "", "mkBitVector"], [86, 10, 1, "", "mkBitVectorSort"], [86, 10, 1, "", "mkBoolean"], [86, 10, 1, "", "mkCardinalityConstraint"], [86, 10, 1, "", "mkConst"], [86, 10, 1, "", "mkConstArray"], [86, 10, 1, "", "mkDatatypeConstructorDecl"], [86, 10, 1, "", "mkDatatypeDecl"], [86, 10, 1, "", "mkDatatypeSort"], [86, 10, 1, "", "mkDatatypeSorts"], [86, 10, 1, "", "mkEmptyBag"], [86, 10, 1, "", "mkEmptySequence"], [86, 10, 1, "", "mkEmptySet"], [86, 10, 1, "", "mkFalse"], [86, 10, 1, "", "mkFiniteFieldElem"], [86, 10, 1, "", "mkFiniteFieldSort"], [86, 10, 1, "", "mkFloatingPoint"], [86, 10, 1, "", "mkFloatingPointNaN"], [86, 10, 1, "", "mkFloatingPointNegInf"], [86, 10, 1, "", "mkFloatingPointNegZero"], [86, 10, 1, "", "mkFloatingPointPosInf"], [86, 10, 1, "", "mkFloatingPointPosZero"], [86, 10, 1, "", "mkFloatingPointSort"], [86, 10, 1, "", "mkFunctionSort"], [86, 10, 1, "", "mkInteger"], [86, 10, 1, "", "mkNullableIsNull"], [86, 10, 1, "", "mkNullableIsSome"], [86, 10, 1, "", "mkNullableLift"], [86, 10, 1, "", "mkNullableNull"], [86, 10, 1, "", "mkNullableSome"], [86, 10, 1, "", "mkNullableSort"], [86, 10, 1, "", "mkNullableVal"], [86, 10, 1, "", "mkOp"], [86, 10, 1, "", "mkParamSort"], [86, 10, 1, "", "mkPi"], [86, 10, 1, "", "mkPredicateSort"], [86, 10, 1, "", "mkReal"], [86, 10, 1, "", "mkRecordSort"], [86, 10, 1, "", "mkRegexpAll"], [86, 10, 1, "", "mkRegexpAllchar"], [86, 10, 1, "", "mkRegexpNone"], [86, 10, 1, "", "mkRoundingMode"], [86, 10, 1, "", "mkSepEmp"], [86, 10, 1, "", "mkSepNil"], [86, 10, 1, "", "mkSequenceSort"], [86, 10, 1, "", "mkSetSort"], [86, 10, 1, "", "mkSkolem"], [86, 10, 1, "", "mkString"], [86, 10, 1, "", "mkTerm"], [86, 10, 1, "", "mkTrue"], [86, 10, 1, "", "mkTuple"], [86, 10, 1, "", "mkTupleSort"], [86, 10, 1, "", "mkUninterpretedSort"], [86, 10, 1, "", "mkUninterpretedSortConstructorSort"], [86, 10, 1, "", "mkUniverseSet"], [86, 10, 1, "", "mkUnresolvedDatatypeSort"], [86, 10, 1, "", "mkVar"]], "cvc5.UnknownExplanation": [[87, 9, 1, "", "INCOMPLETE"], [87, 9, 1, "", "INTERRUPTED"], [87, 9, 1, "", "MEMOUT"], [87, 9, 1, "", "OTHER"], [87, 9, 1, "", "REQUIRES_CHECK_AGAIN"], [87, 9, 1, "", "REQUIRES_FULL_CHECK"], [87, 9, 1, "", "RESOURCEOUT"], [87, 9, 1, "", "TIMEOUT"], [87, 9, 1, "", "UNKNOWN_REASON"], [87, 9, 1, "", "UNSUPPORTED"]], "cvc5.pythonic": [[89, 11, 1, "", "Add"], [103, 11, 1, "", "AllChar"], [92, 11, 1, "", "And"], [89, 11, 1, "", "Arccosecant"], [89, 11, 1, "", "Arccosine"], [89, 11, 1, "", "Arccotangent"], [89, 11, 1, "", "Arcsecant"], [89, 11, 1, "", "Arcsine"], [89, 11, 1, "", "Arctangent"], [89, 8, 1, "", "ArithRef"], [89, 8, 1, "", "ArithSortRef"], [90, 11, 1, "", "Array"], [90, 8, 1, "", "ArrayRef"], [90, 11, 1, "", "ArraySort"], [90, 8, 1, "", "ArraySortRef"], [91, 11, 1, "", "BV2Int"], [91, 11, 1, "", "BVAdd"], [91, 11, 1, "", "BVAnd"], [91, 11, 1, "", "BVMult"], [91, 11, 1, "", "BVNeg"], [91, 11, 1, "", "BVNot"], [91, 11, 1, "", "BVOr"], [91, 11, 1, "", "BVRedAnd"], [91, 11, 1, "", "BVRedOr"], [91, 11, 1, "", "BVSub"], [91, 11, 1, "", "BVXor"], [91, 11, 1, "", "BitVec"], [91, 8, 1, "", "BitVecNumRef"], [91, 8, 1, "", "BitVecRef"], [91, 11, 1, "", "BitVecSort"], [91, 8, 1, "", "BitVecSortRef"], [91, 11, 1, "", "BitVecVal"], [91, 11, 1, "", "BitVecs"], [92, 11, 1, "", "Bool"], [92, 8, 1, "", "BoolRef"], [92, 11, 1, "", "BoolSort"], [92, 8, 1, "", "BoolSortRef"], [92, 11, 1, "", "BoolVal"], [92, 11, 1, "", "BoolVector"], [92, 11, 1, "", "Bools"], [89, 11, 1, "", "Cbrt"], [102, 8, 1, "", "CheckSatResult"], [103, 11, 1, "", "Complement"], [91, 11, 1, "", "Concat"], [92, 11, 1, "", "Const"], [90, 11, 1, "", "ConstArray"], [92, 11, 1, "", "Consts"], [103, 11, 1, "", "Contains"], [89, 11, 1, "", "Cosecant"], [89, 11, 1, "", "Cosine"], [89, 11, 1, "", "Cotangent"], [93, 11, 1, "", "CreateDatatypes"], [93, 8, 1, "", "Datatype"], [93, 8, 1, "", "DatatypeConstructorRef"], [93, 8, 1, "", "DatatypeRecognizerRef"], [93, 8, 1, "", "DatatypeRef"], [93, 8, 1, "", "DatatypeSelectorRef"], [93, 8, 1, "", "DatatypeSortRef"], [103, 11, 1, "", "Diff"], [93, 11, 1, "", "DisjointSum"], [92, 11, 1, "", "Distinct"], [89, 11, 1, "", "Div"], [100, 11, 1, "", "Empty"], [101, 11, 1, "", "EmptySet"], [98, 11, 1, "", "Exists"], [89, 11, 1, "", "Exponential"], [92, 8, 1, "", "ExprRef"], [91, 11, 1, "", "Extract"], [94, 11, 1, "", "FFAdd"], [94, 11, 1, "", "FFMult"], [94, 11, 1, "", "FFNeg"], [94, 11, 1, "", "FFSub"], [95, 11, 1, "", "FP"], [95, 8, 1, "", "FPNumRef"], [95, 8, 1, "", "FPRMRef"], [95, 8, 1, "", "FPRef"], [95, 11, 1, "", "FPSort"], [95, 8, 1, "", "FPSortRef"], [95, 11, 1, "", "FPVal"], [95, 11, 1, "", "FPs"], [94, 11, 1, "", "FiniteFieldElem"], [94, 11, 1, "", "FiniteFieldElems"], [94, 8, 1, "", "FiniteFieldNumRef"], [94, 8, 1, "", "FiniteFieldRef"], [94, 11, 1, "", "FiniteFieldSort"], [94, 8, 1, "", "FiniteFieldSortRef"], [94, 11, 1, "", "FiniteFieldVal"], [95, 11, 1, "", "Float128"], [95, 11, 1, "", "Float16"], [95, 11, 1, "", "Float32"], [95, 11, 1, "", "Float64"], [95, 11, 1, "", "FloatDouble"], [95, 11, 1, "", "FloatHalf"], [95, 11, 1, "", "FloatQuadruple"], [95, 11, 1, "", "FloatSingle"], [98, 11, 1, "", "ForAll"], [92, 11, 1, "", "FreshBool"], [92, 11, 1, "", "FreshConst"], [92, 11, 1, "", "FreshFunction"], [89, 11, 1, "", "FreshInt"], [89, 11, 1, "", "FreshReal"], [103, 11, 1, "", "Full"], [101, 11, 1, "", "FullSet"], [92, 8, 1, "", "FuncDeclRef"], [92, 11, 1, "", "Function"], [89, 11, 1, "", "Geq"], [89, 11, 1, "", "Gt"], [92, 11, 1, "", "If"], [92, 11, 1, "", "Implies"], [103, 11, 1, "", "InRe"], [103, 11, 1, "", "IndexOf"], [89, 11, 1, "", "Int"], [91, 11, 1, "", "Int2BV"], [89, 8, 1, "", "IntNumRef"], [89, 11, 1, "", "IntSort"], [103, 11, 1, "", "IntToStr"], [89, 11, 1, "", "IntVal"], [89, 11, 1, "", "IntVector"], [103, 11, 1, "", "Intersect"], [89, 11, 1, "", "Ints"], [89, 11, 1, "", "IntsModulus"], [89, 11, 1, "", "IsInt"], [101, 11, 1, "", "IsMember"], [101, 11, 1, "", "IsSubset"], [90, 11, 1, "", "K"], [91, 11, 1, "", "LShR"], [98, 11, 1, "", "Lambda"], [103, 11, 1, "", "Length"], [89, 11, 1, "", "Leq"], [103, 11, 1, "", "Loop"], [89, 11, 1, "", "Lt"], [102, 8, 1, "", "ModelRef"], [89, 11, 1, "", "Mult"], [92, 11, 1, "", "Not"], [103, 11, 1, "", "Option"], [92, 11, 1, "", "Or"], [89, 11, 1, "", "Pi"], [103, 11, 1, "", "Plus"], [89, 11, 1, "", "Pow"], [103, 11, 1, "", "PrefixOf"], [102, 11, 1, "", "Product"], [89, 11, 1, "", "Q"], [98, 8, 1, "", "QuantifierRef"], [95, 11, 1, "", "RNA"], [95, 11, 1, "", "RNE"], [95, 11, 1, "", "RTN"], [95, 11, 1, "", "RTP"], [95, 11, 1, "", "RTZ"], [103, 11, 1, "", "Range"], [89, 8, 1, "", "RatNumRef"], [89, 11, 1, "", "RatVal"], [103, 11, 1, "", "Re"], [89, 11, 1, "", "Real"], [89, 11, 1, "", "RealSort"], [89, 11, 1, "", "RealVal"], [89, 11, 1, "", "RealVector"], [89, 11, 1, "", "Reals"], [91, 11, 1, "", "RepeatBitVec"], [103, 11, 1, "", "Replace"], [91, 11, 1, "", "RotateLeft"], [91, 11, 1, "", "RotateRight"], [95, 11, 1, "", "RoundNearestTiesToAway"], [95, 11, 1, "", "RoundNearestTiesToEven"], [95, 11, 1, "", "RoundTowardNegative"], [95, 11, 1, "", "RoundTowardPositive"], [95, 11, 1, "", "RoundTowardZero"], [91, 11, 1, "", "SDiv"], [91, 11, 1, "", "SGE"], [91, 11, 1, "", "SGT"], [91, 11, 1, "", "SLE"], [91, 11, 1, "", "SLT"], [96, 8, 1, "", "SMTException"], [91, 11, 1, "", "SMod"], [91, 11, 1, "", "SRem"], [89, 11, 1, "", "Secant"], [90, 11, 1, "", "Select"], [100, 8, 1, "", "SeqRef"], [100, 11, 1, "", "SeqSort"], [100, 8, 1, "", "SeqSortRef"], [100, 11, 1, "", "SeqUpdate"], [101, 11, 1, "", "Set"], [101, 11, 1, "", "SetAdd"], [101, 11, 1, "", "SetComplement"], [101, 11, 1, "", "SetDel"], [101, 11, 1, "", "SetDifference"], [101, 11, 1, "", "SetIntersect"], [101, 11, 1, "", "SetMinus"], [101, 8, 1, "", "SetRef"], [101, 11, 1, "", "SetSort"], [101, 8, 1, "", "SetSortRef"], [101, 11, 1, "", "SetUnion"], [91, 11, 1, "", "SignExt"], [102, 11, 1, "", "SimpleSolver"], [89, 11, 1, "", "Sine"], [101, 11, 1, "", "Singleton"], [102, 8, 1, "", "Solver"], [102, 11, 1, "", "SolverFor"], [92, 8, 1, "", "SortRef"], [89, 11, 1, "", "Sqrt"], [103, 11, 1, "", "Star"], [90, 11, 1, "", "Store"], [103, 11, 1, "", "StrFromCode"], [103, 11, 1, "", "StrToCode"], [103, 11, 1, "", "StrToInt"], [103, 11, 1, "", "String"], [103, 8, 1, "", "StringRef"], [103, 11, 1, "", "StringSort"], [103, 8, 1, "", "StringSortRef"], [103, 11, 1, "", "StringVal"], [103, 11, 1, "", "Strings"], [89, 11, 1, "", "Sub"], [100, 11, 1, "", "SubSeq"], [103, 11, 1, "", "SubString"], [103, 11, 1, "", "SuffixOf"], [102, 11, 1, "", "Sum"], [89, 11, 1, "", "Tangent"], [89, 11, 1, "", "ToInt"], [89, 11, 1, "", "ToReal"], [93, 11, 1, "", "TupleSort"], [91, 11, 1, "", "UDiv"], [91, 11, 1, "", "UGE"], [91, 11, 1, "", "UGT"], [91, 11, 1, "", "ULE"], [91, 11, 1, "", "ULT"], [89, 11, 1, "", "UMinus"], [91, 11, 1, "", "URem"], [103, 11, 1, "", "Union"], [100, 11, 1, "", "Unit"], [90, 11, 1, "", "Update"], [92, 11, 1, "", "Xor"], [91, 11, 1, "", "ZeroExt"], [102, 11, 1, "", "evaluate"], [95, 11, 1, "", "fpAbs"], [95, 11, 1, "", "fpAdd"], [95, 11, 1, "", "fpBVToFP"], [95, 11, 1, "", "fpDiv"], [95, 11, 1, "", "fpEQ"], [95, 11, 1, "", "fpFMA"], [95, 11, 1, "", "fpFP"], [95, 11, 1, "", "fpFPToFP"], [95, 11, 1, "", "fpGEQ"], [95, 11, 1, "", "fpGT"], [95, 11, 1, "", "fpInfinity"], [95, 11, 1, "", "fpIsInf"], [95, 11, 1, "", "fpIsNaN"], [95, 11, 1, "", "fpIsNegative"], [95, 11, 1, "", "fpIsNormal"], [95, 11, 1, "", "fpIsPositive"], [95, 11, 1, "", "fpIsSubnormal"], [95, 11, 1, "", "fpIsZero"], [95, 11, 1, "", "fpLEQ"], [95, 11, 1, "", "fpLT"], [95, 11, 1, "", "fpMax"], [95, 11, 1, "", "fpMin"], [95, 11, 1, "", "fpMinusInfinity"], [95, 11, 1, "", "fpMinusZero"], [95, 11, 1, "", "fpMul"], [95, 11, 1, "", "fpNEQ"], [95, 11, 1, "", "fpNaN"], [95, 11, 1, "", "fpNeg"], [95, 11, 1, "", "fpPlusInfinity"], [95, 11, 1, "", "fpPlusZero"], [95, 11, 1, "", "fpRealToFP"], [95, 11, 1, "", "fpRem"], [95, 11, 1, "", "fpRoundToIntegral"], [95, 11, 1, "", "fpSignedToFP"], [95, 11, 1, "", "fpSqrt"], [95, 11, 1, "", "fpSub"], [95, 11, 1, "", "fpToFP"], [95, 11, 1, "", "fpToFPUnsigned"], [95, 11, 1, "", "fpToReal"], [95, 11, 1, "", "fpToSBV"], [95, 11, 1, "", "fpToUBV"], [95, 11, 1, "", "fpUnsignedToFP"], [95, 11, 1, "", "fpZero"], [95, 11, 1, "", "get_default_fp_sort"], [95, 11, 1, "", "get_default_rounding_mode"], [90, 11, 1, "", "is_K"], [89, 11, 1, "", "is_add"], [92, 11, 1, "", "is_and"], [96, 11, 1, "", "is_app"], [96, 11, 1, "", "is_app_of"], [89, 11, 1, "", "is_arith"], [89, 11, 1, "", "is_arith_sort"], [90, 11, 1, "", "is_array"], [90, 11, 1, "", "is_array_sort"], [92, 11, 1, "", "is_bool"], [92, 11, 1, "", "is_bool_value"], [91, 11, 1, "", "is_bv"], [91, 11, 1, "", "is_bv_sort"], [91, 11, 1, "", "is_bv_value"], [92, 11, 1, "", "is_const"], [90, 11, 1, "", "is_const_array"], [92, 11, 1, "", "is_distinct"], [89, 11, 1, "", "is_div"], [92, 11, 1, "", "is_eq"], [96, 11, 1, "", "is_expr"], [92, 11, 1, "", "is_false"], [94, 11, 1, "", "is_ff"], [94, 11, 1, "", "is_ff_sort"], [94, 11, 1, "", "is_ff_value"], [95, 11, 1, "", "is_fp"], [95, 11, 1, "", "is_fp_sort"], [95, 11, 1, "", "is_fp_value"], [95, 11, 1, "", "is_fprm"], [95, 11, 1, "", "is_fprm_sort"], [95, 11, 1, "", "is_fprm_value"], [92, 11, 1, "", "is_func_decl"], [89, 11, 1, "", "is_ge"], [89, 11, 1, "", "is_gt"], [89, 11, 1, "", "is_idiv"], [92, 11, 1, "", "is_implies"], [89, 11, 1, "", "is_int"], [89, 11, 1, "", "is_int_value"], [89, 11, 1, "", "is_is_int"], [89, 11, 1, "", "is_le"], [89, 11, 1, "", "is_lt"], [89, 11, 1, "", "is_mod"], [89, 11, 1, "", "is_mul"], [92, 11, 1, "", "is_not"], [92, 11, 1, "", "is_or"], [98, 11, 1, "", "is_quantifier"], [89, 11, 1, "", "is_rational_value"], [89, 11, 1, "", "is_real"], [90, 11, 1, "", "is_select"], [96, 11, 1, "", "is_sort"], [90, 11, 1, "", "is_store"], [89, 11, 1, "", "is_sub"], [102, 11, 1, "", "is_tautology"], [89, 11, 1, "", "is_to_int"], [89, 11, 1, "", "is_to_real"], [92, 11, 1, "", "is_true"], [90, 11, 1, "", "is_update"], [98, 11, 1, "", "is_var"], [92, 11, 1, "", "mk_not"], [102, 11, 1, "", "prove"], [102, 12, 1, "", "sat"], [95, 11, 1, "", "set_default_fp_sort"], [95, 11, 1, "", "set_default_rounding_mode"], [102, 11, 1, "", "simplify"], [102, 11, 1, "", "solve"], [102, 11, 1, "", "solve_using"], [102, 11, 1, "", "substitute"], [102, 12, 1, "", "unknown"], [102, 12, 1, "", "unsat"]], "cvc5.pythonic.ArithRef": [[89, 10, 1, "", "__add__"], [89, 10, 1, "", "__div__"], [89, 10, 1, "", "__ge__"], [89, 10, 1, "", "__gt__"], [89, 10, 1, "", "__le__"], [89, 10, 1, "", "__lt__"], [89, 10, 1, "", "__mod__"], [89, 10, 1, "", "__mul__"], [89, 10, 1, "", "__neg__"], [89, 10, 1, "", "__pos__"], [89, 10, 1, "", "__pow__"], [89, 10, 1, "", "__radd__"], [89, 10, 1, "", "__rdiv__"], [89, 10, 1, "", "__rmod__"], [89, 10, 1, "", "__rmul__"], [89, 10, 1, "", "__rpow__"], [89, 10, 1, "", "__rsub__"], [89, 10, 1, "", "__rtruediv__"], [89, 10, 1, "", "__sub__"], [89, 10, 1, "", "__truediv__"], [89, 10, 1, "", "is_int"], [89, 10, 1, "", "is_real"], [89, 10, 1, "", "sort"]], "cvc5.pythonic.ArithSortRef": [[89, 10, 1, "", "cast"], [89, 10, 1, "", "is_int"], [89, 10, 1, "", "is_real"], [89, 10, 1, "", "subsort"]], "cvc5.pythonic.ArrayRef": [[90, 10, 1, "", "__getitem__"], [90, 10, 1, "", "arg"], [90, 10, 1, "", "default"], [90, 10, 1, "", "domain"], [90, 10, 1, "", "range"], [90, 10, 1, "", "sort"]], "cvc5.pythonic.ArraySortRef": [[90, 10, 1, "", "domain"], [90, 10, 1, "", "range"]], "cvc5.pythonic.BitVecNumRef": [[91, 10, 1, "", "as_long"], [91, 10, 1, "", "as_signed_long"]], "cvc5.pythonic.BitVecRef": [[91, 10, 1, "", "__add__"], [91, 10, 1, "", "__and__"], [91, 10, 1, "", "__div__"], [91, 10, 1, "", "__ge__"], [91, 10, 1, "", "__gt__"], [91, 10, 1, "", "__invert__"], [91, 10, 1, "", "__le__"], [91, 10, 1, "", "__lshift__"], [91, 10, 1, "", "__lt__"], [91, 10, 1, "", "__mod__"], [91, 10, 1, "", "__mul__"], [91, 10, 1, "", "__neg__"], [91, 10, 1, "", "__or__"], [91, 10, 1, "", "__pos__"], [91, 10, 1, "", "__radd__"], [91, 10, 1, "", "__rand__"], [91, 10, 1, "", "__rdiv__"], [91, 10, 1, "", "__rlshift__"], [91, 10, 1, "", "__rmod__"], [91, 10, 1, "", "__rmul__"], [91, 10, 1, "", "__ror__"], [91, 10, 1, "", "__rrshift__"], [91, 10, 1, "", "__rshift__"], [91, 10, 1, "", "__rsub__"], [91, 10, 1, "", "__rtruediv__"], [91, 10, 1, "", "__rxor__"], [91, 10, 1, "", "__sub__"], [91, 10, 1, "", "__truediv__"], [91, 10, 1, "", "__xor__"], [91, 10, 1, "", "size"], [91, 10, 1, "", "sort"]], "cvc5.pythonic.BitVecSortRef": [[91, 10, 1, "", "cast"], [91, 10, 1, "", "size"], [91, 10, 1, "", "subsort"]], "cvc5.pythonic.BoolRef": [[92, 10, 1, "", "__mul__"], [92, 10, 1, "", "__rmul__"], [92, 10, 1, "", "sort"]], "cvc5.pythonic.BoolSortRef": [[92, 10, 1, "", "cast"], [92, 10, 1, "", "is_bool"], [92, 10, 1, "", "is_int"], [92, 10, 1, "", "subsort"]], "cvc5.pythonic.CheckSatResult": [[102, 10, 1, "", "__eq__"], [102, 9, 1, "", "__hash__"], [102, 10, 1, "", "__init__"], [102, 10, 1, "", "__ne__"], [102, 10, 1, "", "__repr__"], [102, 9, 1, "", "__weakref__"]], "cvc5.pythonic.Datatype": [[93, 10, 1, "", "__init__"], [93, 10, 1, "", "__repr__"], [93, 9, 1, "", "__weakref__"], [93, 10, 1, "", "create"], [93, 10, 1, "", "declare"]], "cvc5.pythonic.DatatypeConstructorRef": [[93, 10, 1, "", "__call__"], [93, 10, 1, "", "__init__"], [93, 10, 1, "", "arity"], [93, 10, 1, "", "domain"], [93, 10, 1, "", "range"]], "cvc5.pythonic.DatatypeRecognizerRef": [[93, 10, 1, "", "__call__"], [93, 10, 1, "", "__init__"], [93, 10, 1, "", "arity"], [93, 10, 1, "", "domain"], [93, 10, 1, "", "range"]], "cvc5.pythonic.DatatypeRef": [[93, 10, 1, "", "sort"]], "cvc5.pythonic.DatatypeSelectorRef": [[93, 10, 1, "", "__call__"], [93, 10, 1, "", "__init__"], [93, 10, 1, "", "arity"], [93, 10, 1, "", "domain"], [93, 10, 1, "", "range"]], "cvc5.pythonic.DatatypeSortRef": [[93, 10, 1, "", "__init__"], [93, 10, 1, "", "accessor"], [93, 10, 1, "", "constructor"], [93, 10, 1, "", "num_constructors"], [93, 10, 1, "", "recognizer"]], "cvc5.pythonic.ExprRef": [[92, 10, 1, "", "__bool__"], [92, 10, 1, "", "__eq__"], [92, 10, 1, "", "__hash__"], [92, 10, 1, "", "__init__"], [92, 10, 1, "", "__ne__"], [92, 10, 1, "", "__nonzero__"], [92, 10, 1, "", "__repr__"], [92, 10, 1, "", "__str__"], [92, 9, 1, "", "__weakref__"], [92, 10, 1, "", "arg"], [92, 10, 1, "", "as_ast"], [92, 10, 1, "", "children"], [92, 10, 1, "", "decl"], [92, 10, 1, "", "eq"], [92, 10, 1, "", "get_id"], [92, 10, 1, "", "hash"], [92, 10, 1, "", "is_int"], [92, 10, 1, "", "kind"], [92, 10, 1, "", "num_args"], [92, 10, 1, "", "sexpr"], [92, 10, 1, "", "sort"]], "cvc5.pythonic.FPNumRef": [[95, 10, 1, "", "as_string"], [95, 10, 1, "", "exponent"], [95, 10, 1, "", "exponent_as_long"], [95, 10, 1, "", "isInf"], [95, 10, 1, "", "isNaN"], [95, 10, 1, "", "isNegative"], [95, 10, 1, "", "isNormal"], [95, 10, 1, "", "isPositive"], [95, 10, 1, "", "isSubnormal"], [95, 10, 1, "", "isZero"], [95, 10, 1, "", "sign"], [95, 10, 1, "", "significand"], [95, 10, 1, "", "significand_as_long"]], "cvc5.pythonic.FPRMRef": [[95, 10, 1, "", "as_string"]], "cvc5.pythonic.FPRef": [[95, 10, 1, "", "__add__"], [95, 10, 1, "", "__div__"], [95, 10, 1, "", "__ge__"], [95, 10, 1, "", "__gt__"], [95, 10, 1, "", "__le__"], [95, 10, 1, "", "__lt__"], [95, 10, 1, "", "__mod__"], [95, 10, 1, "", "__mul__"], [95, 10, 1, "", "__neg__"], [95, 10, 1, "", "__pos__"], [95, 10, 1, "", "__radd__"], [95, 10, 1, "", "__rdiv__"], [95, 10, 1, "", "__rmod__"], [95, 10, 1, "", "__rmul__"], [95, 10, 1, "", "__rsub__"], [95, 10, 1, "", "__rtruediv__"], [95, 10, 1, "", "__sub__"], [95, 10, 1, "", "__truediv__"], [95, 10, 1, "", "as_string"], [95, 10, 1, "", "ebits"], [95, 10, 1, "", "sbits"], [95, 10, 1, "", "sort"]], "cvc5.pythonic.FPSortRef": [[95, 10, 1, "", "cast"], [95, 10, 1, "", "ebits"], [95, 10, 1, "", "sbits"]], "cvc5.pythonic.FiniteFieldNumRef": [[94, 10, 1, "", "as_long"], [94, 10, 1, "", "as_signed_long"]], "cvc5.pythonic.FiniteFieldRef": [[94, 10, 1, "", "__add__"], [94, 10, 1, "", "__mul__"], [94, 10, 1, "", "__neg__"], [94, 10, 1, "", "__pos__"], [94, 10, 1, "", "__radd__"], [94, 10, 1, "", "__rmul__"], [94, 10, 1, "", "__rsub__"], [94, 10, 1, "", "__sub__"], [94, 10, 1, "", "size"], [94, 10, 1, "", "sort"]], "cvc5.pythonic.FiniteFieldSortRef": [[94, 10, 1, "", "cast"], [94, 10, 1, "", "size"]], "cvc5.pythonic.FuncDeclRef": [[92, 10, 1, "", "__call__"], [92, 10, 1, "", "arity"], [92, 10, 1, "", "domain"], [92, 10, 1, "", "name"], [92, 10, 1, "", "range"]], "cvc5.pythonic.IntNumRef": [[89, 10, 1, "", "as_binary_string"], [89, 10, 1, "", "as_long"], [89, 10, 1, "", "as_string"]], "cvc5.pythonic.ModelRef": [[102, 10, 1, "", "__getitem__"], [102, 10, 1, "", "__init__"], [102, 10, 1, "", "__len__"], [102, 10, 1, "", "__repr__"], [102, 9, 1, "", "__weakref__"], [102, 10, 1, "", "decls"], [102, 10, 1, "", "eval"], [102, 10, 1, "", "evaluate"], [102, 10, 1, "", "vars"]], "cvc5.pythonic.QuantifierRef": [[98, 10, 1, "", "as_ast"], [98, 10, 1, "", "body"], [98, 10, 1, "", "children"], [98, 10, 1, "", "is_exists"], [98, 10, 1, "", "is_forall"], [98, 10, 1, "", "is_lambda"], [98, 10, 1, "", "num_vars"], [98, 10, 1, "", "sort"], [98, 10, 1, "", "var_name"], [98, 10, 1, "", "var_sort"]], "cvc5.pythonic.RatNumRef": [[89, 10, 1, "", "as_decimal"], [89, 10, 1, "", "as_fraction"], [89, 10, 1, "", "as_long"], [89, 10, 1, "", "as_string"], [89, 10, 1, "", "denominator"], [89, 10, 1, "", "denominator_as_long"], [89, 10, 1, "", "is_int"], [89, 10, 1, "", "is_int_value"], [89, 10, 1, "", "is_real"], [89, 10, 1, "", "numerator"], [89, 10, 1, "", "numerator_as_long"]], "cvc5.pythonic.SMTException": [[96, 10, 1, "", "__init__"], [96, 10, 1, "", "__str__"], [96, 9, 1, "", "__weakref__"]], "cvc5.pythonic.SeqRef": [[100, 10, 1, "", "__add__"], [100, 10, 1, "", "__getitem__"], [100, 10, 1, "", "as_string"], [100, 10, 1, "", "at"], [100, 10, 1, "", "is_string_value"]], "cvc5.pythonic.SeqSortRef": [[100, 10, 1, "", "elem_sort"], [100, 10, 1, "", "is_string"]], "cvc5.pythonic.SetRef": [[101, 10, 1, "", "__and__"], [101, 10, 1, "", "__getitem__"], [101, 10, 1, "", "__or__"], [101, 10, 1, "", "default"], [101, 10, 1, "", "domain"], [101, 10, 1, "", "range"], [101, 10, 1, "", "sort"]], "cvc5.pythonic.SetSortRef": [[101, 10, 1, "", "domain"], [101, 10, 1, "", "range"]], "cvc5.pythonic.Solver": [[102, 10, 1, "", "__iadd__"], [102, 10, 1, "", "__init__"], [102, 10, 1, "", "__repr__"], [102, 9, 1, "", "__weakref__"], [102, 10, 1, "", "add"], [102, 10, 1, "", "append"], [102, 10, 1, "", "assert_exprs"], [102, 10, 1, "", "assertions"], [102, 10, 1, "", "check"], [102, 10, 1, "", "getOption"], [102, 10, 1, "", "getOptionInfo"], [102, 10, 1, "", "getOptionNames"], [102, 10, 1, "", "initFromLogic"], [102, 10, 1, "", "insert"], [102, 10, 1, "", "model"], [102, 10, 1, "", "num_scopes"], [102, 10, 1, "", "pop"], [102, 10, 1, "", "proof"], [102, 10, 1, "", "push"], [102, 10, 1, "", "reason_unknown"], [102, 10, 1, "", "reset"], [102, 10, 1, "", "resetAssertions"], [102, 10, 1, "", "set"], [102, 10, 1, "", "setOption"], [102, 10, 1, "", "sexpr"], [102, 10, 1, "", "statistics"], [102, 10, 1, "", "unsat_core"]], "cvc5.pythonic.SortRef": [[92, 10, 1, "", "__eq__"], [92, 10, 1, "", "__hash__"], [92, 10, 1, "", "__init__"], [92, 10, 1, "", "__ne__"], [92, 10, 1, "", "__repr__"], [92, 10, 1, "", "__str__"], [92, 9, 1, "", "__weakref__"], [92, 10, 1, "", "as_ast"], [92, 10, 1, "", "cast"], [92, 10, 1, "", "eq"], [92, 10, 1, "", "hash"], [92, 10, 1, "", "is_int"], [92, 10, 1, "", "name"], [92, 10, 1, "", "sexpr"], [92, 10, 1, "", "subsort"]], "cvc5.pythonic.StringRef": [[103, 10, 1, "", "__ge__"], [103, 10, 1, "", "__getitem__"], [103, 10, 1, "", "__gt__"], [103, 10, 1, "", "__le__"], [103, 10, 1, "", "__lt__"], [103, 10, 1, "", "at"]], "cvc5.pythonic.StringSortRef": [[103, 10, 1, "", "cast"]]}, "objtypes": {"0": "cpp:enumerator", "1": "cpp:type", "2": "cpp:enum", "3": "cpp:class", "4": "cpp:member", "5": "cpp:function", "6": "cpp:functionParam", "7": "cpp:templateParam", "8": "py:class", "9": "py:attribute", "10": "py:method", "11": "py:function", "12": "py:data"}, "objnames": {"0": ["cpp", "enumerator", "C++ enumerator"], "1": ["cpp", "type", "C++ type"], "2": ["cpp", "enum", "C++ enum"], "3": ["cpp", "class", "C++ class"], "4": ["cpp", "member", "C++ member"], "5": ["cpp", "function", "C++ function"], "6": ["cpp", "functionParam", "C++ function parameter"], "7": ["cpp", "templateParam", "C++ template parameter"], "8": ["py", "class", "Python class"], "9": ["py", "attribute", "Python attribute"], "10": ["py", "method", "Python method"], "11": ["py", "function", "Python function"], "12": ["py", "data", "Python data"]}, "titleterms": {"api": [0, 1, 50, 59, 75, 88, 97, 130, 143], "document": [0, 59, 104, 129, 130], "c": [1, 50], "type": 1, "struct": 1, "enum": [1, 75], "cvc5kind": 2, "cvc5proofrul": 3, "cvc5proofrewriterul": 3, "cvc5roundingmod": 4, "cvc5sortkind": 5, "cvc5unknownexplan": 6, "mode": [7, 52, 59, 70, 95], "quickstart": [8, 58, 60, 76, 99, 105, 120], "guid": [8, 58, 60, 76, 99, 105], "exampl": [8, 58, 60, 76, 99, 105, 111, 120, 130, 143, 144, 145, 146, 150], "cvc5optioninfo": 9, "cvc5plugin": 10, "cvc5": [11, 59, 129, 130, 131], "cvc5command": 12, "cvc5datatyp": 13, "cvc5datatypeconstructor": 14, "cvc5datatypeconstructordecl": 15, "cvc5datatypedecl": 16, "cvc5datatypeselector": 17, "cvc5grammar": 18, "cvc5inputpars": 19, "cvc5op": 20, "cvc5proof": 21, "cvc5result": 22, "cvc5sort": 23, "cvc5statist": 24, "cvc5symbolmanag": 25, "cvc5synthresult": 26, "cvc5term": 27, "cvc5termmanag": 28, "sort": [28, 44, 80], "creation": 28, "oper": [28, 89, 90, 92, 95, 100, 101, 103, 130], "term": [28, 48, 85, 89, 90, 91, 92, 94, 95, 100, 101, 103], "datatyp": [28, 30, 62, 93, 110, 131, 143], "declar": [28, 93, 143], "constructor": 28, "command": [29, 61], "datatypeconstructor": [31, 63], "datatypeconstructordecl": [32, 64], "datatypedecl": [33, 65], "datatypeselector": [34, 66], "driveropt": 35, "grammar": [36, 67, 132], "inputpars": [37, 68], "op": [38, 71], "optioninfo": 39, "plugin": [40, 72], "proof": [41, 73, 131, 132, 133, 134, 135, 136, 137], "result": [42, 77, 102], "solver": [43, 79, 102, 130, 144], "statist": [45, 82, 141], "symbolmanag": [46, 83], "synthresult": [47, 84], "termmanag": [49, 86], "class": [50, 75, 89, 90, 91, 92, 93, 94, 95, 98, 100, 101, 102, 103, 130], "hierarchi": 50, "kind": [51, 69], "proofrul": [53, 74], "proofrewriterul": [53, 74], "roundingmod": [54, 78], "sortkind": [55, 81], "unknownexplan": [56, 87], "except": [57, 96, 112], "java": 59, "build": [59, 130], "javadoc": 59, "packag": 59, "io": 59, "github": 59, "base": [75, 131], "python": [75, 88, 97], "which": 88, "should": 88, "i": 88, "us": [88, 131], "instal": [88, 130], "from": 88, "pypi": 88, "sourc": 88, "arithmet": [89, 94, 117, 130, 131], "basic": [89, 90, 91, 92, 94, 95, 100, 101, 103], "builder": [89, 90, 91, 92, 94, 95, 98, 100, 101, 103], "overload": [89, 90, 91, 92, 94, 95, 100, 101, 103], "other": 89, "transcendent": [89, 150], "tester": [89, 90, 91, 92, 94, 95, 96, 98], "arrai": [90, 108, 131], "bit": [91, 107, 108, 113], "vector": [91, 107, 108, 113], "core": [92, 132], "boolean": 92, "gener": 92, "equal": 92, "overview": 93, "util": [93, 102], "finit": [94, 114, 131, 142, 144, 147], "field": [94, 114, 131, 144], "finitefield": 94, "float": [95, 115, 130, 131], "point": [95, 115, 130, 131], "fp": 95, "round": 95, "intern": 96, "quantifi": [98, 131], "sequenc": [100, 122, 146], "set": [101, 123, 131, 147], "simpl": 102, "solv": 102, "The": 102, "model": [102, 132], "string": [103, 124, 131, 148], "regular": 103, "express": [103, 131], "binari": 104, "theori": [106, 107, 108, 109, 110, 113, 114, 115, 117, 121, 122, 123, 124, 127, 130, 131, 142, 143, 144, 145, 146, 147, 148, 149, 150], "bag": [106, 131, 142], "combin": 109, "handl": 112, "extract": 113, "hello": 116, "world": 116, "linear": [117, 130], "parser": [118, 119, 131], "share": 119, "symbol": 119, "manag": [119, 139], "relat": [121, 147], "sygu": [125, 126, 132], "function": [125, 127, 131], "invari": 126, "uninterpret": [127, 131], "index": 128, "tabl": 129, "content": 129, "support": 130, "system": 130, "compil": 130, "maco": 130, "window": 130, "cross": 130, "webassembli": 130, "depend": 130, "cadic": 130, "sat": [130, 131], "gmp": 130, "gnu": 130, "multi": 130, "precis": 130, "librari": 130, "symfpu": 130, "number": 130, "option": [130, 131, 132, 139], "cryptominisat": 130, "kissat": 130, "libpoli": 130, "v0": 130, "1": 130, "13": 130, "polynomi": 130, "cocoa": 130, "comput": 130, "algebra": 130, "cln": 130, "v1": 130, "3": 130, "glpk": 130, "cut": 130, "log": 130, "A": 130, "fork": 130, "program": 130, "kit": 130, "editlin": 130, "improv": 130, "interact": 130, "experi": 130, "googl": 130, "test": 130, "unit": 130, "framework": 130, "languag": 130, "bind": 130, "regress": 130, "custom": 130, "target": 130, "recompil": 130, "specif": 130, "version": 130, "differ": 130, "lgpl": 130, "most": 131, "commonli": 131, "addit": 131, "modul": 131, "bitvector": 131, "decis": 131, "heurist": 131, "driver": 131, "parallel": 131, "print": 131, "layer": 131, "separ": [131, 145], "logic": [131, 143, 145, 150], "smt": 131, "output": 132, "tag": 132, "inst": 132, "strategi": 132, "oracl": 132, "enumer": 132, "sol": 132, "gterm": 132, "trigger": 132, "raw": 132, "benchmark": 132, "learn": 132, "lit": 132, "sub": 132, "post": 132, "assert": 132, "pre": 132, "deep": 132, "restart": 132, "incomplet": 132, "lemma": 132, "trust": 132, "step": 132, "timeout": 132, "unsat": 132, "portfolio": 132, "block": 132, "auto": 132, "rare": 132, "db": 132, "format": [133, 134, 135, 136, 137], "aleth": 133, "cooper": 134, "calculu": 134, "dot": 135, "lfsc": 136, "product": 137, "rule": 137, "refer": [138, 142, 143, 144, 145, 146, 147, 148, 149, 150], "resourc": 139, "limit": 139, "overal": 139, "time": 139, "tlimit": 139, "spend": 139, "skolem": 140, "identifi": 140, "semant": [142, 143, 144, 145, 146, 147, 148, 150], "syntax": [143, 144, 145, 146, 150], "updat": 143, "parametr": 143, "tupl": 143, "codatatyp": 143, "experiment": 144, "extens": 144, "signatur": 145, "standard": 149, "non": 149, "extend": 149}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinxcontrib.bibtex": 9, "sphinx": 58}, "alltitles": {"API Documentation": [[0, "api-documentation"]], "C API": [[1, "c-api"]], "Types": [[1, "types"]], "Structs": [[1, "structs"]], "Enums": [[1, "enums"], [75, "enums"]], "Cvc5Kind": [[2, "cvc5kind"]], "Cvc5ProofRule and Cvc5ProofRewriteRule": [[3, "cvc5proofrule-and-cvc5proofrewriterule"]], "Cvc5RoundingMode": [[4, "cvc5roundingmode"]], "Cvc5SortKind": [[5, "cvc5sortkind"]], "Cvc5UnknownExplanation": [[6, "cvc5unknownexplanation"]], "Modes": [[7, "modes"], [52, "modes"], [70, "modes"]], "Quickstart Guide": [[8, "quickstart-guide"], [58, "quickstart-guide"], [60, "quickstart-guide"], [76, "quickstart-guide"], [99, "quickstart-guide"], [105, "quickstart-guide"]], "Example": [[8, "example"], [58, "example"], [60, "example"], [76, "example"], [99, "example"], [105, "example"]], "Cvc5OptionInfo": [[9, "cvc5optioninfo"]], "Cvc5Plugin": [[10, "cvc5plugin"]], "Cvc5": [[11, "cvc5"]], "Cvc5Command": [[12, "cvc5command"]], "Cvc5Datatype": [[13, "cvc5datatype"]], "Cvc5DatatypeConstructor": [[14, "cvc5datatypeconstructor"]], "Cvc5DatatypeConstructorDecl": [[15, "cvc5datatypeconstructordecl"]], "Cvc5DatatypeDecl": [[16, "cvc5datatypedecl"]], "Cvc5DatatypeSelector": [[17, "cvc5datatypeselector"]], "Cvc5Grammar": [[18, "cvc5grammar"]], "Cvc5InputParser": [[19, "cvc5inputparser"]], "Cvc5Op": [[20, "cvc5op"]], "Cvc5Proof": [[21, "cvc5proof"]], "Cvc5Result": [[22, "cvc5result"]], "Cvc5Sort": [[23, "cvc5sort"]], "Cvc5Statistics": [[24, "cvc5statistics"]], "Cvc5SymbolManager": [[25, "cvc5symbolmanager"]], "Cvc5SynthResult": [[26, "cvc5synthresult"]], "Cvc5Term": [[27, "cvc5term"]], "Cvc5TermManager": [[28, "cvc5termmanager"]], "Sort Creation": [[28, "sort-creation"]], "Operator Creation": [[28, "operator-creation"]], "Term Creation": [[28, "term-creation"]], "Datatype Declaration Creation": [[28, "datatype-declaration-creation"]], "Datatype Constructor Declaration Creation": [[28, "datatype-constructor-declaration-creation"]], "Command": [[29, "command"], [61, "command"]], "Datatype": [[30, "datatype"], [62, "datatype"]], "DatatypeConstructor": [[31, "datatypeconstructor"], [63, "datatypeconstructor"]], "DatatypeConstructorDecl": [[32, "datatypeconstructordecl"], [64, "datatypeconstructordecl"]], "DatatypeDecl": [[33, "datatypedecl"], [65, "datatypedecl"]], "DatatypeSelector": [[34, "datatypeselector"], [66, "datatypeselector"]], "DriverOptions": [[35, "driveroptions"]], "Grammar": [[36, "grammar"], [67, "grammar"]], "InputParser": [[37, "inputparser"], [68, "inputparser"]], "Op": [[38, "op"], [71, "op"]], "OptionInfo": [[39, "optioninfo"]], "Plugin": [[40, "plugin"], [72, "plugin"]], "Proof": [[41, "proof"], [73, "proof"]], "Result": [[42, "result"], [77, "result"]], "Solver": [[43, "solver"], [79, "solver"]], "Sort": [[44, "sort"], [80, "sort"]], "Statistics": [[45, "statistics"], [82, "statistics"], [141, "statistics"]], "SymbolManager": [[46, "symbolmanager"], [83, "symbolmanager"]], "SynthResult": [[47, "synthresult"], [84, "synthresult"]], "Term": [[48, "term"], [85, "term"]], "TermManager": [[49, "termmanager"], [86, "termmanager"]], "C++ API": [[50, "c-api"]], "Class hierarchy": [[50, "class-hierarchy"]], "Kind": [[51, "kind"], [69, "kind"]], "ProofRule and ProofRewriteRule": [[53, "proofrule-and-proofrewriterule"], [74, "proofrule-and-proofrewriterule"]], "RoundingMode": [[54, "roundingmode"], [78, "roundingmode"]], "SortKind": [[55, "sortkind"], [81, "sortkind"]], "UnknownExplanation": [[56, "unknownexplanation"], [87, "unknownexplanation"]], "Exceptions": [[57, "exceptions"], [96, "exceptions"]], "Java API": [[59, "java-api"]], "Building cvc5 Java API": [[59, "building-cvc5-java-api"]], "Javadoc API Documentation": [[59, "id1"]], "Package io.github.cvc5": [[59, "id2"]], "Package io.github.cvc5.modes": [[59, "id4"]], "Base Python API": [[75, "base-python-api"]], "Classes": [[75, "classes"], [93, "classes"], [98, "classes"]], "Python API": [[88, "python-api"]], "Which Python API should I use?": [[88, "which-python-api-should-i-use"]], "Installation (from PyPi)": [[88, "installation-from-pypi"]], "Installation (from source)": [[88, "installation-from-source"]], "Arithmetic": [[89, "arithmetic"]], "Basic Arithmetic Term Builders": [[89, "basic-arithmetic-term-builders"]], "Arithmetic Overloads": [[89, "arithmetic-overloads"], [94, "arithmetic-overloads"]], "Other Arithmetic Operators": [[89, "other-arithmetic-operators"]], "Transcendentals": [[89, "transcendentals"]], "Testers": [[89, "testers"], [90, "testers"], [91, "testers"], [92, "testers"], [94, "testers"], [95, "testers"], [96, "testers"], [98, "testers"]], "Classes (with overloads)": [[89, "classes-with-overloads"], [90, "classes-with-overloads"], [91, "classes-with-overloads"], [92, "classes-with-overloads"], [94, "classes-with-overloads"], [95, "classes-with-overloads"], [100, "classes-with-overloads"], [101, "classes-with-overloads"], [103, "classes-with-overloads"]], "Arrays": [[90, "arrays"]], "Basic Array Term Builders": [[90, "basic-array-term-builders"]], "Array Operators": [[90, "array-operators"]], "Bit-Vectors": [[91, "bit-vectors"]], "Basic Bit-Vector Term Builders": [[91, "basic-bit-vector-term-builders"]], "Bit-Vector Overloads": [[91, "bit-vector-overloads"]], "Bit-Vector Term Builders": [[91, "bit-vector-term-builders"]], "Core & Booleans": [[92, "core-booleans"]], "Basic Boolean Term Builders": [[92, "basic-boolean-term-builders"]], "Basic Generic Term Builders": [[92, "basic-generic-term-builders"]], "Boolean Operators": [[92, "boolean-operators"]], "Generic Operators": [[92, "generic-operators"]], "Equality": [[92, "equality"]], "Datatypes": [[93, "datatypes"]], "Overview": [[93, "overview"]], "Declaration Utilities": [[93, "declaration-utilities"]], "Finite Fields": [[94, "finite-fields"]], "Basic FiniteField Term Builders": [[94, "basic-finitefield-term-builders"]], "Floating Point": [[95, "floating-point"]], "Basic FP Term Builders": [[95, "basic-fp-term-builders"]], "FP Operators": [[95, "fp-operators"]], "FP Rounding Modes": [[95, "fp-rounding-modes"]], "Internals": [[96, "internals"]], "Pythonic API": [[97, "pythonic-api"]], "Quantifiers": [[98, "quantifiers"]], "Builders": [[98, "builders"]], "Sequences": [[100, "sequences"]], "Basic Sequence Term Builders": [[100, "basic-sequence-term-builders"]], "Sequence Operators": [[100, "sequence-operators"]], "Sets": [[101, "sets"]], "Basic Set Term Builders": [[101, "basic-set-term-builders"]], "Set Operators": [[101, "set-operators"]], "Solvers & Results": [[102, "solvers-results"]], "Simple Solving": [[102, "simple-solving"]], "The Solver Class": [[102, "the-solver-class"]], "Results & Models": [[102, "results-models"]], "Utilities": [[102, "utilities"]], "Strings": [[103, "strings"]], "Basic String Term Builders": [[103, "basic-string-term-builders"]], "String Operators": [[103, "string-operators"]], "Basic Regular Expression Term Builders": [[103, "basic-regular-expression-term-builders"]], "Regular Expression Operators": [[103, "regular-expression-operators"]], "Binary Documentation": [[104, "binary-documentation"]], "Theory of Bags": [[106, "theory-of-bags"]], "Theory of Bit-Vectors": [[107, "theory-of-bit-vectors"]], "Theory of Bit-Vectors and Arrays": [[108, "theory-of-bit-vectors-and-arrays"]], "Theory Combination": [[109, "theory-combination"]], "Theory of Datatypes": [[110, "theory-of-datatypes"]], "Examples": [[111, "examples"], [143, "examples"], [144, "examples"], [145, "examples"], [146, "examples"], [150, "examples"]], "Exception Handling": [[112, "exception-handling"]], "Theory of Bit-Vectors: extract": [[113, "theory-of-bit-vectors-extract"]], "Theory of Finite Fields": [[114, "theory-of-finite-fields"]], "Theory of Floating-Points": [[115, "theory-of-floating-points"]], "Hello World": [[116, "hello-world"]], "Theory of Linear Arithmetic": [[117, "theory-of-linear-arithmetic"]], "Parser": [[118, "parser"]], "Parser with Shared Symbol Manager": [[119, "parser-with-shared-symbol-manager"]], "Quickstart Example": [[120, "quickstart-example"]], "Theory of Relations": [[121, "theory-of-relations"]], "Theory of Sequences": [[122, "theory-of-sequences"]], "Theory of Sets": [[123, "theory-of-sets"]], "Theory of Strings": [[124, "theory-of-strings"]], "SyGuS: Functions": [[125, "sygus-functions"]], "SyGuS: Invariants": [[126, "sygus-invariants"]], "Theory of Uninterpreted Functions": [[127, "theory-of-uninterpreted-functions"]], "Index": [[128, "index"]], "cvc5 Documentation": [[129, "cvc5-documentation"]], "Table of Contents": [[129, "table-of-contents"]], "Installation": [[130, "installation"]], "Building cvc5": [[130, "building-cvc5"]], "Supported Operating Systems": [[130, "supported-operating-systems"]], "Compilation on macOS": [[130, "compilation-on-macos"]], "Compilation on Windows": [[130, "compilation-on-windows"]], "Cross-compiling for Windows": [[130, "cross-compiling-for-windows"]], "WebAssembly Compilation": [[130, "webassembly-compilation"]], "Build dependencies": [[130, "build-dependencies"]], "CaDiCaL (SAT solver)": [[130, "cadical-sat-solver"]], "GMP (GNU Multi-Precision arithmetic library)": [[130, "gmp-gnu-multi-precision-arithmetic-library"]], "SymFPU (Support for the Theory of Floating Point Numbers)": [[130, "symfpu-support-for-the-theory-of-floating-point-numbers"]], "Optional Dependencies": [[130, "optional-dependencies"]], "CryptoMiniSat (Optional SAT solver)": [[130, "cryptominisat-optional-sat-solver"]], "Kissat (Optional SAT solver)": [[130, "kissat-optional-sat-solver"]], "LibPoly >= v0.1.13 (Optional polynomial library)": [[130, "libpoly-v0-1-13-optional-polynomial-library"]], "CoCoA (Optional computer algebra library)": [[130, "cocoa-optional-computer-algebra-library"]], "CLN >= v1.3 (Class Library for Numbers)": [[130, "cln-v1-3-class-library-for-numbers"]], "glpk-cut-log (A fork of the GNU Linear Programming Kit)": [[130, "glpk-cut-log-a-fork-of-the-gnu-linear-programming-kit"]], "Editline library (Improved Interactive Experience)": [[130, "editline-library-improved-interactive-experience"]], "Google Test Unit Testing Framework (Unit Tests)": [[130, "google-test-unit-testing-framework-unit-tests"]], "Language bindings": [[130, "language-bindings"]], "Dependencies for Language Bindings": [[130, "dependencies-for-language-bindings"]], "Building the API Documentation": [[130, "building-the-api-documentation"]], "Building the Examples": [[130, "building-the-examples"]], "Testing cvc5": [[130, "id3"]], "Testing System Tests": [[130, "testing-system-tests"]], "Testing Unit Tests": [[130, "testing-unit-tests"]], "Testing Regression Tests": [[130, "testing-regression-tests"]], "Custom Targets": [[130, "custom-targets"]], "Recompiling a specific cvc5 version with different LGPL library versions": [[130, "recompiling-a-specific-cvc5-version-with-different-lgpl-library-versions"]], "Options": [[131, "options"]], "Most Commonly-Used cvc5 Options": [[131, "most-commonly-used-cvc5-options"]], "Additional cvc5 Options": [[131, "additional-cvc5-options"]], "Arithmetic Theory Module": [[131, "arithmetic-theory-module"]], "Arrays Theory Module": [[131, "arrays-theory-module"]], "Bags Theory Module": [[131, "bags-theory-module"]], "Base Module": [[131, "base-module"]], "Bitvector Theory Module": [[131, "bitvector-theory-module"]], "Datatypes Theory Module": [[131, "datatypes-theory-module"]], "Decision Heuristics Module": [[131, "decision-heuristics-module"]], "Expression Module": [[131, "expression-module"]], "Finite Field Theory Module": [[131, "finite-field-theory-module"]], "Floating-Point Module": [[131, "floating-point-module"]], "Driver Module": [[131, "driver-module"]], "Parallel Module": [[131, "parallel-module"]], "Parser Module": [[131, "parser-module"]], "Printing Module": [[131, "printing-module"]], "Proof Module": [[131, "proof-module"]], "SAT Layer Module": [[131, "sat-layer-module"]], "Quantifiers Module": [[131, "quantifiers-module"]], "Separation Logic Theory Module": [[131, "separation-logic-theory-module"]], "Sets Theory Module": [[131, "sets-theory-module"]], "SMT Layer Module": [[131, "smt-layer-module"]], "Strings Theory Module": [[131, "strings-theory-module"]], "Theory Layer Module": [[131, "theory-layer-module"]], "Uninterpreted Functions Theory Module": [[131, "uninterpreted-functions-theory-module"]], "Output tags": [[132, "output-tags"]], "inst": [[132, "inst"]], "inst-strategy": [[132, "inst-strategy"]], "oracles": [[132, "oracles"]], "sygus": [[132, "sygus"]], "sygus-grammar": [[132, "sygus-grammar"]], "sygus-enumerator": [[132, "sygus-enumerator"]], "sygus-sol-gterm": [[132, "sygus-sol-gterm"]], "trigger": [[132, "trigger"]], "raw-benchmark": [[132, "raw-benchmark"]], "learned-lits": [[132, "learned-lits"]], "subs": [[132, "subs"]], "post-asserts": [[132, "post-asserts"]], "pre-asserts": [[132, "pre-asserts"]], "deep-restart": [[132, "deep-restart"]], "incomplete": [[132, "incomplete"]], "lemmas": [[132, "lemmas"]], "trusted-proof-steps": [[132, "trusted-proof-steps"]], "timeout-core-benchmark": [[132, "timeout-core-benchmark"]], "unsat-core-benchmark": [[132, "unsat-core-benchmark"]], "unsat-core-lemmas-benchmark": [[132, "unsat-core-lemmas-benchmark"]], "unsat-core-lemmas": [[132, "unsat-core-lemmas"]], "portfolio": [[132, "portfolio"]], "block-model": [[132, "block-model"]], "options-auto": [[132, "options-auto"]], "rare-db": [[132, "rare-db"]], "Proof format: Alethe": [[133, "proof-format-alethe"]], "Proof format: Cooperating Proof Calculus": [[134, "proof-format-cooperating-proof-calculus"]], "Proof format: DOT": [[135, "proof-format-dot"]], "Proof format: LFSC": [[136, "proof-format-lfsc"]], "Proof Production": [[137, "proof-production"]], "Proof Rules": [[137, "proof-rules"]], "Proof Formats": [[137, "proof-formats"]], "References": [[138, "references"]], "Resource limits": [[139, "resource-limits"]], "Overall time limit (tlimit option)": [[139, "overall-time-limit-tlimit-option"]], "Resource manager and resource spending": [[139, "resource-manager-and-resource-spending"]], "Skolem Identifiers": [[140, "skolem-identifiers"]], "Theory Reference: Bags": [[142, "theory-reference-bags"]], "Finite Bags": [[142, "finite-bags"]], "Semantics": [[142, "semantics"], [143, "semantics"], [144, "semantics"], [145, "semantics"], [146, "semantics"], [147, "semantics"], [148, "semantics"], [150, "semantics"]], "Theory Reference: Datatypes": [[143, "theory-reference-datatypes"]], "Logic": [[143, "logic"], [150, "logic"]], "Syntax": [[143, "syntax"], [144, "syntax"], [145, "syntax"], [146, "syntax"], [150, "syntax"]], "Example Declarations": [[143, "example-declarations"]], "Datatype Updaters": [[143, "datatype-updaters"]], "Parametric Datatypes": [[143, "parametric-datatypes"]], "Tuples": [[143, "tuples"]], "Codatatypes": [[143, "codatatypes"]], "Syntax/API": [[143, "syntax-api"]], "Theory Reference: Finite Fields": [[144, "theory-reference-finite-fields"]], "Experimental Extensions": [[144, "experimental-extensions"]], "Solvers": [[144, "solvers"]], "Theory Reference: Separation Logic": [[145, "theory-reference-separation-logic"]], "Signature": [[145, "signature"]], "Theory Reference: Sequences": [[146, "theory-reference-sequences"]], "Theory Reference: Sets and Relations": [[147, "theory-reference-sets-and-relations"]], "Finite Sets": [[147, "finite-sets"]], "Finite Relations": [[147, "finite-relations"]], "Theory Reference: Strings": [[148, "theory-reference-strings"]], "Theory References": [[149, "theory-references"]], "Standardized theories": [[149, "standardized-theories"]], "Non-standard or extended theories": [[149, "non-standard-or-extended-theories"]], "Theory Reference: Transcendentals": [[150, "theory-reference-transcendentals"]]}, "indexentries": {"cvc5kind (c++ enum)": [[2, "_CPPv48Cvc5Kind"]], "cvc5kind::cvc5_kind_abs (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind13CVC5_KIND_ABSE"]], "cvc5kind::cvc5_kind_add (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind13CVC5_KIND_ADDE"]], "cvc5kind::cvc5_kind_and (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind13CVC5_KIND_ANDE"]], "cvc5kind::cvc5_kind_apply_constructor (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind27CVC5_KIND_APPLY_CONSTRUCTORE"]], "cvc5kind::cvc5_kind_apply_selector (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind24CVC5_KIND_APPLY_SELECTORE"]], "cvc5kind::cvc5_kind_apply_tester (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind22CVC5_KIND_APPLY_TESTERE"]], "cvc5kind::cvc5_kind_apply_uf (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind18CVC5_KIND_APPLY_UFE"]], "cvc5kind::cvc5_kind_apply_updater (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_APPLY_UPDATERE"]], "cvc5kind::cvc5_kind_arccosecant (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind21CVC5_KIND_ARCCOSECANTE"]], "cvc5kind::cvc5_kind_arccosine (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind19CVC5_KIND_ARCCOSINEE"]], "cvc5kind::cvc5_kind_arccotangent (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind22CVC5_KIND_ARCCOTANGENTE"]], "cvc5kind::cvc5_kind_arcsecant (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind19CVC5_KIND_ARCSECANTE"]], "cvc5kind::cvc5_kind_arcsine (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind17CVC5_KIND_ARCSINEE"]], "cvc5kind::cvc5_kind_arctangent (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind20CVC5_KIND_ARCTANGENTE"]], "cvc5kind::cvc5_kind_bag_card (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind18CVC5_KIND_BAG_CARDE"]], "cvc5kind::cvc5_kind_bag_choose (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind20CVC5_KIND_BAG_CHOOSEE"]], "cvc5kind::cvc5_kind_bag_count (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind19CVC5_KIND_BAG_COUNTE"]], "cvc5kind::cvc5_kind_bag_difference_remove (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind31CVC5_KIND_BAG_DIFFERENCE_REMOVEE"]], "cvc5kind::cvc5_kind_bag_difference_subtract (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind33CVC5_KIND_BAG_DIFFERENCE_SUBTRACTE"]], "cvc5kind::cvc5_kind_bag_empty (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind19CVC5_KIND_BAG_EMPTYE"]], "cvc5kind::cvc5_kind_bag_filter (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind20CVC5_KIND_BAG_FILTERE"]], "cvc5kind::cvc5_kind_bag_fold (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind18CVC5_KIND_BAG_FOLDE"]], "cvc5kind::cvc5_kind_bag_inter_min (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_BAG_INTER_MINE"]], "cvc5kind::cvc5_kind_bag_make (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind18CVC5_KIND_BAG_MAKEE"]], "cvc5kind::cvc5_kind_bag_map (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind17CVC5_KIND_BAG_MAPE"]], "cvc5kind::cvc5_kind_bag_member (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind20CVC5_KIND_BAG_MEMBERE"]], "cvc5kind::cvc5_kind_bag_partition (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_BAG_PARTITIONE"]], "cvc5kind::cvc5_kind_bag_setof (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind19CVC5_KIND_BAG_SETOFE"]], "cvc5kind::cvc5_kind_bag_subbag (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind20CVC5_KIND_BAG_SUBBAGE"]], "cvc5kind::cvc5_kind_bag_union_disjoint (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind28CVC5_KIND_BAG_UNION_DISJOINTE"]], "cvc5kind::cvc5_kind_bag_union_max (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_BAG_UNION_MAXE"]], "cvc5kind::cvc5_kind_bitvector_add (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_ADDE"]], "cvc5kind::cvc5_kind_bitvector_and (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_ANDE"]], "cvc5kind::cvc5_kind_bitvector_ashr (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_ASHRE"]], "cvc5kind::cvc5_kind_bitvector_bit (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_BITE"]], "cvc5kind::cvc5_kind_bitvector_comp (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_COMPE"]], "cvc5kind::cvc5_kind_bitvector_concat (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind26CVC5_KIND_BITVECTOR_CONCATE"]], "cvc5kind::cvc5_kind_bitvector_extract (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind27CVC5_KIND_BITVECTOR_EXTRACTE"]], "cvc5kind::cvc5_kind_bitvector_from_bools (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind30CVC5_KIND_BITVECTOR_FROM_BOOLSE"]], "cvc5kind::cvc5_kind_bitvector_ite (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_ITEE"]], "cvc5kind::cvc5_kind_bitvector_lshr (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_LSHRE"]], "cvc5kind::cvc5_kind_bitvector_mult (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_MULTE"]], "cvc5kind::cvc5_kind_bitvector_nand (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_NANDE"]], "cvc5kind::cvc5_kind_bitvector_neg (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_NEGE"]], "cvc5kind::cvc5_kind_bitvector_nego (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_NEGOE"]], "cvc5kind::cvc5_kind_bitvector_nor (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_NORE"]], "cvc5kind::cvc5_kind_bitvector_not (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_NOTE"]], "cvc5kind::cvc5_kind_bitvector_or (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind22CVC5_KIND_BITVECTOR_ORE"]], "cvc5kind::cvc5_kind_bitvector_redand (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind26CVC5_KIND_BITVECTOR_REDANDE"]], "cvc5kind::cvc5_kind_bitvector_redor (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_REDORE"]], "cvc5kind::cvc5_kind_bitvector_repeat (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind26CVC5_KIND_BITVECTOR_REPEATE"]], "cvc5kind::cvc5_kind_bitvector_rotate_left (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind31CVC5_KIND_BITVECTOR_ROTATE_LEFTE"]], "cvc5kind::cvc5_kind_bitvector_rotate_right (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind32CVC5_KIND_BITVECTOR_ROTATE_RIGHTE"]], "cvc5kind::cvc5_kind_bitvector_saddo (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_SADDOE"]], "cvc5kind::cvc5_kind_bitvector_sdiv (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_SDIVE"]], "cvc5kind::cvc5_kind_bitvector_sdivo (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_SDIVOE"]], "cvc5kind::cvc5_kind_bitvector_sge (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_SGEE"]], "cvc5kind::cvc5_kind_bitvector_sgt (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_SGTE"]], "cvc5kind::cvc5_kind_bitvector_shl (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_SHLE"]], "cvc5kind::cvc5_kind_bitvector_sign_extend (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind31CVC5_KIND_BITVECTOR_SIGN_EXTENDE"]], "cvc5kind::cvc5_kind_bitvector_sle (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_SLEE"]], "cvc5kind::cvc5_kind_bitvector_slt (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_SLTE"]], "cvc5kind::cvc5_kind_bitvector_sltbv (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_SLTBVE"]], "cvc5kind::cvc5_kind_bitvector_smod (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_SMODE"]], "cvc5kind::cvc5_kind_bitvector_smulo (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_SMULOE"]], "cvc5kind::cvc5_kind_bitvector_srem (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_SREME"]], "cvc5kind::cvc5_kind_bitvector_ssubo (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_SSUBOE"]], "cvc5kind::cvc5_kind_bitvector_sub (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_SUBE"]], "cvc5kind::cvc5_kind_bitvector_to_nat (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind26CVC5_KIND_BITVECTOR_TO_NATE"]], "cvc5kind::cvc5_kind_bitvector_uaddo (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_UADDOE"]], "cvc5kind::cvc5_kind_bitvector_udiv (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_UDIVE"]], "cvc5kind::cvc5_kind_bitvector_uge (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_UGEE"]], "cvc5kind::cvc5_kind_bitvector_ugt (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_UGTE"]], "cvc5kind::cvc5_kind_bitvector_ule (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_ULEE"]], "cvc5kind::cvc5_kind_bitvector_ult (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_ULTE"]], "cvc5kind::cvc5_kind_bitvector_ultbv (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_ULTBVE"]], "cvc5kind::cvc5_kind_bitvector_umulo (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_UMULOE"]], "cvc5kind::cvc5_kind_bitvector_urem (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_UREME"]], "cvc5kind::cvc5_kind_bitvector_usubo (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_USUBOE"]], "cvc5kind::cvc5_kind_bitvector_xnor (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_XNORE"]], "cvc5kind::cvc5_kind_bitvector_xor (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_XORE"]], "cvc5kind::cvc5_kind_bitvector_zero_extend (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind31CVC5_KIND_BITVECTOR_ZERO_EXTENDE"]], "cvc5kind::cvc5_kind_cardinality_constraint (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind32CVC5_KIND_CARDINALITY_CONSTRAINTE"]], "cvc5kind::cvc5_kind_constant (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind18CVC5_KIND_CONSTANTE"]], "cvc5kind::cvc5_kind_const_array (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind21CVC5_KIND_CONST_ARRAYE"]], "cvc5kind::cvc5_kind_const_bitvector (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind25CVC5_KIND_CONST_BITVECTORE"]], "cvc5kind::cvc5_kind_const_boolean (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_CONST_BOOLEANE"]], "cvc5kind::cvc5_kind_const_finite_field (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind28CVC5_KIND_CONST_FINITE_FIELDE"]], "cvc5kind::cvc5_kind_const_floatingpoint (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind29CVC5_KIND_CONST_FLOATINGPOINTE"]], "cvc5kind::cvc5_kind_const_integer (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_CONST_INTEGERE"]], "cvc5kind::cvc5_kind_const_rational (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind24CVC5_KIND_CONST_RATIONALE"]], "cvc5kind::cvc5_kind_const_roundingmode (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind28CVC5_KIND_CONST_ROUNDINGMODEE"]], "cvc5kind::cvc5_kind_const_sequence (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind24CVC5_KIND_CONST_SEQUENCEE"]], "cvc5kind::cvc5_kind_const_string (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind22CVC5_KIND_CONST_STRINGE"]], "cvc5kind::cvc5_kind_cosecant (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind18CVC5_KIND_COSECANTE"]], "cvc5kind::cvc5_kind_cosine (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind16CVC5_KIND_COSINEE"]], "cvc5kind::cvc5_kind_cotangent (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind19CVC5_KIND_COTANGENTE"]], "cvc5kind::cvc5_kind_distinct (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind18CVC5_KIND_DISTINCTE"]], "cvc5kind::cvc5_kind_divisible (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind19CVC5_KIND_DIVISIBLEE"]], "cvc5kind::cvc5_kind_division (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind18CVC5_KIND_DIVISIONE"]], "cvc5kind::cvc5_kind_division_total (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind24CVC5_KIND_DIVISION_TOTALE"]], "cvc5kind::cvc5_kind_equal (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind15CVC5_KIND_EQUALE"]], "cvc5kind::cvc5_kind_eq_range (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind18CVC5_KIND_EQ_RANGEE"]], "cvc5kind::cvc5_kind_exists (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind16CVC5_KIND_EXISTSE"]], "cvc5kind::cvc5_kind_exponential (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind21CVC5_KIND_EXPONENTIALE"]], "cvc5kind::cvc5_kind_finite_field_add (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind26CVC5_KIND_FINITE_FIELD_ADDE"]], "cvc5kind::cvc5_kind_finite_field_bitsum (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind29CVC5_KIND_FINITE_FIELD_BITSUME"]], "cvc5kind::cvc5_kind_finite_field_mult (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind27CVC5_KIND_FINITE_FIELD_MULTE"]], "cvc5kind::cvc5_kind_finite_field_neg (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind26CVC5_KIND_FINITE_FIELD_NEGE"]], "cvc5kind::cvc5_kind_floatingpoint_abs (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_ABSE"]], "cvc5kind::cvc5_kind_floatingpoint_add (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_ADDE"]], "cvc5kind::cvc5_kind_floatingpoint_div (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_DIVE"]], "cvc5kind::cvc5_kind_floatingpoint_eq (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind26CVC5_KIND_FLOATINGPOINT_EQE"]], "cvc5kind::cvc5_kind_floatingpoint_fma (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_FMAE"]], "cvc5kind::cvc5_kind_floatingpoint_fp (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind26CVC5_KIND_FLOATINGPOINT_FPE"]], "cvc5kind::cvc5_kind_floatingpoint_geq (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_GEQE"]], "cvc5kind::cvc5_kind_floatingpoint_gt (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind26CVC5_KIND_FLOATINGPOINT_GTE"]], "cvc5kind::cvc5_kind_floatingpoint_is_inf (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind30CVC5_KIND_FLOATINGPOINT_IS_INFE"]], "cvc5kind::cvc5_kind_floatingpoint_is_nan (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind30CVC5_KIND_FLOATINGPOINT_IS_NANE"]], "cvc5kind::cvc5_kind_floatingpoint_is_neg (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind30CVC5_KIND_FLOATINGPOINT_IS_NEGE"]], "cvc5kind::cvc5_kind_floatingpoint_is_normal (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind33CVC5_KIND_FLOATINGPOINT_IS_NORMALE"]], "cvc5kind::cvc5_kind_floatingpoint_is_pos (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind30CVC5_KIND_FLOATINGPOINT_IS_POSE"]], "cvc5kind::cvc5_kind_floatingpoint_is_subnormal (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind36CVC5_KIND_FLOATINGPOINT_IS_SUBNORMALE"]], "cvc5kind::cvc5_kind_floatingpoint_is_zero (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind31CVC5_KIND_FLOATINGPOINT_IS_ZEROE"]], "cvc5kind::cvc5_kind_floatingpoint_leq (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_LEQE"]], "cvc5kind::cvc5_kind_floatingpoint_lt (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind26CVC5_KIND_FLOATINGPOINT_LTE"]], "cvc5kind::cvc5_kind_floatingpoint_max (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_MAXE"]], "cvc5kind::cvc5_kind_floatingpoint_min (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_MINE"]], "cvc5kind::cvc5_kind_floatingpoint_mult (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind28CVC5_KIND_FLOATINGPOINT_MULTE"]], "cvc5kind::cvc5_kind_floatingpoint_neg (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_NEGE"]], "cvc5kind::cvc5_kind_floatingpoint_rem (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_REME"]], "cvc5kind::cvc5_kind_floatingpoint_rti (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_RTIE"]], "cvc5kind::cvc5_kind_floatingpoint_sqrt (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind28CVC5_KIND_FLOATINGPOINT_SQRTE"]], "cvc5kind::cvc5_kind_floatingpoint_sub (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_SUBE"]], "cvc5kind::cvc5_kind_floatingpoint_to_fp_from_fp (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind37CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_FPE"]], "cvc5kind::cvc5_kind_floatingpoint_to_fp_from_ieee_bv (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind42CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_IEEE_BVE"]], "cvc5kind::cvc5_kind_floatingpoint_to_fp_from_real (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind39CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_REALE"]], "cvc5kind::cvc5_kind_floatingpoint_to_fp_from_sbv (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind38CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_SBVE"]], "cvc5kind::cvc5_kind_floatingpoint_to_fp_from_ubv (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind38CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_UBVE"]], "cvc5kind::cvc5_kind_floatingpoint_to_real (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind31CVC5_KIND_FLOATINGPOINT_TO_REALE"]], "cvc5kind::cvc5_kind_floatingpoint_to_sbv (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind30CVC5_KIND_FLOATINGPOINT_TO_SBVE"]], "cvc5kind::cvc5_kind_floatingpoint_to_ubv (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind30CVC5_KIND_FLOATINGPOINT_TO_UBVE"]], "cvc5kind::cvc5_kind_forall (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind16CVC5_KIND_FORALLE"]], "cvc5kind::cvc5_kind_geq (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind13CVC5_KIND_GEQE"]], "cvc5kind::cvc5_kind_gt (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind12CVC5_KIND_GTE"]], "cvc5kind::cvc5_kind_ho_apply (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind18CVC5_KIND_HO_APPLYE"]], "cvc5kind::cvc5_kind_iand (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind14CVC5_KIND_IANDE"]], "cvc5kind::cvc5_kind_implies (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind17CVC5_KIND_IMPLIESE"]], "cvc5kind::cvc5_kind_inst_add_to_pool (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind26CVC5_KIND_INST_ADD_TO_POOLE"]], "cvc5kind::cvc5_kind_inst_attribute (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind24CVC5_KIND_INST_ATTRIBUTEE"]], "cvc5kind::cvc5_kind_inst_no_pattern (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind25CVC5_KIND_INST_NO_PATTERNE"]], "cvc5kind::cvc5_kind_inst_pattern (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind22CVC5_KIND_INST_PATTERNE"]], "cvc5kind::cvc5_kind_inst_pattern_list (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind27CVC5_KIND_INST_PATTERN_LISTE"]], "cvc5kind::cvc5_kind_inst_pool (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind19CVC5_KIND_INST_POOLE"]], "cvc5kind::cvc5_kind_internal_kind (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_INTERNAL_KINDE"]], "cvc5kind::cvc5_kind_ints_division (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_INTS_DIVISIONE"]], "cvc5kind::cvc5_kind_ints_division_total (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind29CVC5_KIND_INTS_DIVISION_TOTALE"]], "cvc5kind::cvc5_kind_ints_modulus (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind22CVC5_KIND_INTS_MODULUSE"]], "cvc5kind::cvc5_kind_ints_modulus_total (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind28CVC5_KIND_INTS_MODULUS_TOTALE"]], "cvc5kind::cvc5_kind_int_to_bitvector (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind26CVC5_KIND_INT_TO_BITVECTORE"]], "cvc5kind::cvc5_kind_is_integer (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind20CVC5_KIND_IS_INTEGERE"]], "cvc5kind::cvc5_kind_ite (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind13CVC5_KIND_ITEE"]], "cvc5kind::cvc5_kind_lambda (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind16CVC5_KIND_LAMBDAE"]], "cvc5kind::cvc5_kind_last_kind (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind19CVC5_KIND_LAST_KINDE"]], "cvc5kind::cvc5_kind_leq (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind13CVC5_KIND_LEQE"]], "cvc5kind::cvc5_kind_lt (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind12CVC5_KIND_LTE"]], "cvc5kind::cvc5_kind_match (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind15CVC5_KIND_MATCHE"]], "cvc5kind::cvc5_kind_match_bind_case (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind25CVC5_KIND_MATCH_BIND_CASEE"]], "cvc5kind::cvc5_kind_match_case (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind20CVC5_KIND_MATCH_CASEE"]], "cvc5kind::cvc5_kind_mult (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind14CVC5_KIND_MULTE"]], "cvc5kind::cvc5_kind_neg (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind13CVC5_KIND_NEGE"]], "cvc5kind::cvc5_kind_not (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind13CVC5_KIND_NOTE"]], "cvc5kind::cvc5_kind_nullable_lift (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_NULLABLE_LIFTE"]], "cvc5kind::cvc5_kind_null_term (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind19CVC5_KIND_NULL_TERME"]], "cvc5kind::cvc5_kind_or (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind12CVC5_KIND_ORE"]], "cvc5kind::cvc5_kind_pi (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind12CVC5_KIND_PIE"]], "cvc5kind::cvc5_kind_pow (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind13CVC5_KIND_POWE"]], "cvc5kind::cvc5_kind_pow2 (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind14CVC5_KIND_POW2E"]], "cvc5kind::cvc5_kind_regexp_all (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind20CVC5_KIND_REGEXP_ALLE"]], "cvc5kind::cvc5_kind_regexp_allchar (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind24CVC5_KIND_REGEXP_ALLCHARE"]], "cvc5kind::cvc5_kind_regexp_complement (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind27CVC5_KIND_REGEXP_COMPLEMENTE"]], "cvc5kind::cvc5_kind_regexp_concat (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_REGEXP_CONCATE"]], "cvc5kind::cvc5_kind_regexp_diff (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind21CVC5_KIND_REGEXP_DIFFE"]], "cvc5kind::cvc5_kind_regexp_inter (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind22CVC5_KIND_REGEXP_INTERE"]], "cvc5kind::cvc5_kind_regexp_loop (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind21CVC5_KIND_REGEXP_LOOPE"]], "cvc5kind::cvc5_kind_regexp_none (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind21CVC5_KIND_REGEXP_NONEE"]], "cvc5kind::cvc5_kind_regexp_opt (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind20CVC5_KIND_REGEXP_OPTE"]], "cvc5kind::cvc5_kind_regexp_plus (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind21CVC5_KIND_REGEXP_PLUSE"]], "cvc5kind::cvc5_kind_regexp_range (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind22CVC5_KIND_REGEXP_RANGEE"]], "cvc5kind::cvc5_kind_regexp_repeat (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_REGEXP_REPEATE"]], "cvc5kind::cvc5_kind_regexp_star (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind21CVC5_KIND_REGEXP_STARE"]], "cvc5kind::cvc5_kind_regexp_union (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind22CVC5_KIND_REGEXP_UNIONE"]], "cvc5kind::cvc5_kind_relation_aggregate (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind28CVC5_KIND_RELATION_AGGREGATEE"]], "cvc5kind::cvc5_kind_relation_group (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind24CVC5_KIND_RELATION_GROUPE"]], "cvc5kind::cvc5_kind_relation_iden (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_RELATION_IDENE"]], "cvc5kind::cvc5_kind_relation_join (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_RELATION_JOINE"]], "cvc5kind::cvc5_kind_relation_join_image (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind29CVC5_KIND_RELATION_JOIN_IMAGEE"]], "cvc5kind::cvc5_kind_relation_product (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind26CVC5_KIND_RELATION_PRODUCTE"]], "cvc5kind::cvc5_kind_relation_project (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind26CVC5_KIND_RELATION_PROJECTE"]], "cvc5kind::cvc5_kind_relation_table_join (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind29CVC5_KIND_RELATION_TABLE_JOINE"]], "cvc5kind::cvc5_kind_relation_tclosure (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind27CVC5_KIND_RELATION_TCLOSUREE"]], "cvc5kind::cvc5_kind_relation_transpose (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind28CVC5_KIND_RELATION_TRANSPOSEE"]], "cvc5kind::cvc5_kind_secant (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind16CVC5_KIND_SECANTE"]], "cvc5kind::cvc5_kind_select (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind16CVC5_KIND_SELECTE"]], "cvc5kind::cvc5_kind_sep_emp (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind17CVC5_KIND_SEP_EMPE"]], "cvc5kind::cvc5_kind_sep_nil (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind17CVC5_KIND_SEP_NILE"]], "cvc5kind::cvc5_kind_sep_pto (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind17CVC5_KIND_SEP_PTOE"]], "cvc5kind::cvc5_kind_sep_star (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind18CVC5_KIND_SEP_STARE"]], "cvc5kind::cvc5_kind_sep_wand (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind18CVC5_KIND_SEP_WANDE"]], "cvc5kind::cvc5_kind_seq_at (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind16CVC5_KIND_SEQ_ATE"]], "cvc5kind::cvc5_kind_seq_concat (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind20CVC5_KIND_SEQ_CONCATE"]], "cvc5kind::cvc5_kind_seq_contains (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind22CVC5_KIND_SEQ_CONTAINSE"]], "cvc5kind::cvc5_kind_seq_extract (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind21CVC5_KIND_SEQ_EXTRACTE"]], "cvc5kind::cvc5_kind_seq_indexof (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind21CVC5_KIND_SEQ_INDEXOFE"]], "cvc5kind::cvc5_kind_seq_length (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind20CVC5_KIND_SEQ_LENGTHE"]], "cvc5kind::cvc5_kind_seq_nth (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind17CVC5_KIND_SEQ_NTHE"]], "cvc5kind::cvc5_kind_seq_prefix (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind20CVC5_KIND_SEQ_PREFIXE"]], "cvc5kind::cvc5_kind_seq_replace (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind21CVC5_KIND_SEQ_REPLACEE"]], "cvc5kind::cvc5_kind_seq_replace_all (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind25CVC5_KIND_SEQ_REPLACE_ALLE"]], "cvc5kind::cvc5_kind_seq_rev (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind17CVC5_KIND_SEQ_REVE"]], "cvc5kind::cvc5_kind_seq_suffix (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind20CVC5_KIND_SEQ_SUFFIXE"]], "cvc5kind::cvc5_kind_seq_unit (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind18CVC5_KIND_SEQ_UNITE"]], "cvc5kind::cvc5_kind_seq_update (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind20CVC5_KIND_SEQ_UPDATEE"]], "cvc5kind::cvc5_kind_set_all (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind17CVC5_KIND_SET_ALLE"]], "cvc5kind::cvc5_kind_set_card (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind18CVC5_KIND_SET_CARDE"]], "cvc5kind::cvc5_kind_set_choose (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind20CVC5_KIND_SET_CHOOSEE"]], "cvc5kind::cvc5_kind_set_complement (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind24CVC5_KIND_SET_COMPLEMENTE"]], "cvc5kind::cvc5_kind_set_comprehension (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind27CVC5_KIND_SET_COMPREHENSIONE"]], "cvc5kind::cvc5_kind_set_empty (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind19CVC5_KIND_SET_EMPTYE"]], "cvc5kind::cvc5_kind_set_filter (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind20CVC5_KIND_SET_FILTERE"]], "cvc5kind::cvc5_kind_set_fold (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind18CVC5_KIND_SET_FOLDE"]], "cvc5kind::cvc5_kind_set_insert (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind20CVC5_KIND_SET_INSERTE"]], "cvc5kind::cvc5_kind_set_inter (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind19CVC5_KIND_SET_INTERE"]], "cvc5kind::cvc5_kind_set_is_empty (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind22CVC5_KIND_SET_IS_EMPTYE"]], "cvc5kind::cvc5_kind_set_is_singleton (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind26CVC5_KIND_SET_IS_SINGLETONE"]], "cvc5kind::cvc5_kind_set_map (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind17CVC5_KIND_SET_MAPE"]], "cvc5kind::cvc5_kind_set_member (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind20CVC5_KIND_SET_MEMBERE"]], "cvc5kind::cvc5_kind_set_minus (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind19CVC5_KIND_SET_MINUSE"]], "cvc5kind::cvc5_kind_set_singleton (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_SET_SINGLETONE"]], "cvc5kind::cvc5_kind_set_some (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind18CVC5_KIND_SET_SOMEE"]], "cvc5kind::cvc5_kind_set_subset (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind20CVC5_KIND_SET_SUBSETE"]], "cvc5kind::cvc5_kind_set_union (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind19CVC5_KIND_SET_UNIONE"]], "cvc5kind::cvc5_kind_set_universe (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind22CVC5_KIND_SET_UNIVERSEE"]], "cvc5kind::cvc5_kind_sexpr (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind15CVC5_KIND_SEXPRE"]], "cvc5kind::cvc5_kind_sine (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind14CVC5_KIND_SINEE"]], "cvc5kind::cvc5_kind_skolem (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind16CVC5_KIND_SKOLEME"]], "cvc5kind::cvc5_kind_skolem_add_to_pool (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind28CVC5_KIND_SKOLEM_ADD_TO_POOLE"]], "cvc5kind::cvc5_kind_sqrt (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind14CVC5_KIND_SQRTE"]], "cvc5kind::cvc5_kind_store (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind15CVC5_KIND_STOREE"]], "cvc5kind::cvc5_kind_string_charat (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_STRING_CHARATE"]], "cvc5kind::cvc5_kind_string_concat (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_STRING_CONCATE"]], "cvc5kind::cvc5_kind_string_contains (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind25CVC5_KIND_STRING_CONTAINSE"]], "cvc5kind::cvc5_kind_string_from_code (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind26CVC5_KIND_STRING_FROM_CODEE"]], "cvc5kind::cvc5_kind_string_from_int (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind25CVC5_KIND_STRING_FROM_INTE"]], "cvc5kind::cvc5_kind_string_indexof (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind24CVC5_KIND_STRING_INDEXOFE"]], "cvc5kind::cvc5_kind_string_indexof_re (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind27CVC5_KIND_STRING_INDEXOF_REE"]], "cvc5kind::cvc5_kind_string_in_regexp (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind26CVC5_KIND_STRING_IN_REGEXPE"]], "cvc5kind::cvc5_kind_string_is_digit (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind25CVC5_KIND_STRING_IS_DIGITE"]], "cvc5kind::cvc5_kind_string_length (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_STRING_LENGTHE"]], "cvc5kind::cvc5_kind_string_leq (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind20CVC5_KIND_STRING_LEQE"]], "cvc5kind::cvc5_kind_string_lt (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind19CVC5_KIND_STRING_LTE"]], "cvc5kind::cvc5_kind_string_prefix (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_STRING_PREFIXE"]], "cvc5kind::cvc5_kind_string_replace (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind24CVC5_KIND_STRING_REPLACEE"]], "cvc5kind::cvc5_kind_string_replace_all (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind28CVC5_KIND_STRING_REPLACE_ALLE"]], "cvc5kind::cvc5_kind_string_replace_re (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind27CVC5_KIND_STRING_REPLACE_REE"]], "cvc5kind::cvc5_kind_string_replace_re_all (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind31CVC5_KIND_STRING_REPLACE_RE_ALLE"]], "cvc5kind::cvc5_kind_string_rev (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind20CVC5_KIND_STRING_REVE"]], "cvc5kind::cvc5_kind_string_substr (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_STRING_SUBSTRE"]], "cvc5kind::cvc5_kind_string_suffix (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_STRING_SUFFIXE"]], "cvc5kind::cvc5_kind_string_to_code (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind24CVC5_KIND_STRING_TO_CODEE"]], "cvc5kind::cvc5_kind_string_to_int (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_STRING_TO_INTE"]], "cvc5kind::cvc5_kind_string_to_lower (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind25CVC5_KIND_STRING_TO_LOWERE"]], "cvc5kind::cvc5_kind_string_to_regexp (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind26CVC5_KIND_STRING_TO_REGEXPE"]], "cvc5kind::cvc5_kind_string_to_upper (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind25CVC5_KIND_STRING_TO_UPPERE"]], "cvc5kind::cvc5_kind_string_update (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_STRING_UPDATEE"]], "cvc5kind::cvc5_kind_sub (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind13CVC5_KIND_SUBE"]], "cvc5kind::cvc5_kind_table_aggregate (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind25CVC5_KIND_TABLE_AGGREGATEE"]], "cvc5kind::cvc5_kind_table_group (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind21CVC5_KIND_TABLE_GROUPE"]], "cvc5kind::cvc5_kind_table_join (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind20CVC5_KIND_TABLE_JOINE"]], "cvc5kind::cvc5_kind_table_product (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_TABLE_PRODUCTE"]], "cvc5kind::cvc5_kind_table_project (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_TABLE_PROJECTE"]], "cvc5kind::cvc5_kind_tangent (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind17CVC5_KIND_TANGENTE"]], "cvc5kind::cvc5_kind_to_integer (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind20CVC5_KIND_TO_INTEGERE"]], "cvc5kind::cvc5_kind_to_real (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind17CVC5_KIND_TO_REALE"]], "cvc5kind::cvc5_kind_tuple_project (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_TUPLE_PROJECTE"]], "cvc5kind::cvc5_kind_undefined_kind (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind24CVC5_KIND_UNDEFINED_KINDE"]], "cvc5kind::cvc5_kind_uninterpreted_sort_value (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind34CVC5_KIND_UNINTERPRETED_SORT_VALUEE"]], "cvc5kind::cvc5_kind_variable (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind18CVC5_KIND_VARIABLEE"]], "cvc5kind::cvc5_kind_variable_list (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_VARIABLE_LISTE"]], "cvc5kind::cvc5_kind_witness (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind17CVC5_KIND_WITNESSE"]], "cvc5kind::cvc5_kind_xor (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind13CVC5_KIND_XORE"]], "cvc5_kind_hash (c++ function)": [[2, "_CPPv414cvc5_kind_hash8Cvc5Kind"]], "cvc5_kind_to_string (c++ function)": [[2, "_CPPv419cvc5_kind_to_string8Cvc5Kind"]], "cvc5proofrewriterule (c++ enum)": [[3, "_CPPv420Cvc5ProofRewriteRule"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_abs_elim_int (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_ARITH_ABS_ELIM_INTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_abs_elim_real (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_ARITH_ABS_ELIM_REALE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_abs_eq (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_ARITH_ABS_EQE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_abs_int_gt (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_ARITH_ABS_INT_GTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_abs_real_gt (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_ARITH_ABS_REAL_GTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_cosecent_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_ARITH_COSECENT_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_cosine_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_ARITH_COSINE_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_cotangent_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_ARITH_COTANGENT_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_div_elim_to_real1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_ARITH_DIV_ELIM_TO_REAL1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_div_elim_to_real2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_ARITH_DIV_ELIM_TO_REAL2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_div_total_int (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_ARITH_DIV_TOTAL_INTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_div_total_real (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_ARITH_DIV_TOTAL_REALE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_div_total_zero_int (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_ARITH_DIV_TOTAL_ZERO_INTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_div_total_zero_real (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_ARITH_DIV_TOTAL_ZERO_REALE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_elim_gt (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_GTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_elim_int_gt (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_INT_GTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_elim_int_lt (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_INT_LTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_elim_leq (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_LEQE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_elim_lt (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_LTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_eq_elim_int (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_ARITH_EQ_ELIM_INTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_eq_elim_real (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_ARITH_EQ_ELIM_REALE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_geq_norm1_int (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_ARITH_GEQ_NORM1_INTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_geq_norm1_real (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_ARITH_GEQ_NORM1_REALE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_geq_norm2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_ARITH_GEQ_NORM2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_geq_tighten (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_ARITH_GEQ_TIGHTENE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_int_div_total (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_ARITH_INT_DIV_TOTALE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_int_div_total_one (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_ARITH_INT_DIV_TOTAL_ONEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_int_div_total_zero (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_ARITH_INT_DIV_TOTAL_ZEROE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_int_mod_total (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_ARITH_INT_MOD_TOTALE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_int_mod_total_one (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_ARITH_INT_MOD_TOTAL_ONEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_int_mod_total_zero (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_ARITH_INT_MOD_TOTAL_ZEROE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_leq_norm (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ARITH_LEQ_NORME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_mult_dist (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_ARITH_MULT_DISTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_mult_flatten (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_ARITH_MULT_FLATTENE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_mul_one (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ARITH_MUL_ONEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_mul_zero (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ARITH_MUL_ZEROE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_pi_not_int (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_ARITH_PI_NOT_INTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_plus_flatten (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_ARITH_PLUS_FLATTENE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_pow_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ARITH_POW_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_refl_geq (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ARITH_REFL_GEQE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_refl_gt (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ARITH_REFL_GTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_refl_leq (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ARITH_REFL_LEQE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_refl_lt (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ARITH_REFL_LTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_secent_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_ARITH_SECENT_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_sine_pi2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ARITH_SINE_PI2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_sine_zero (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_ARITH_SINE_ZEROE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_string_pred_entail (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_ARITH_STRING_PRED_ENTAILE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_string_pred_safe_approx (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule53CVC5_PROOF_REWRITE_RULE_ARITH_STRING_PRED_SAFE_APPROXE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_tangent_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_ARITH_TANGENT_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_to_int_elim_to_real (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_ARITH_TO_INT_ELIM_TO_REALE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_to_real_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_ARITH_TO_REAL_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arrays_eq_range_expand (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_ARRAYS_EQ_RANGE_EXPANDE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arrays_select_const (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_ARRAYS_SELECT_CONSTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_array_read_over_write (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_ARRAY_READ_OVER_WRITEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_array_read_over_write2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_ARRAY_READ_OVER_WRITE2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_array_read_over_write_split (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule51CVC5_PROOF_REWRITE_RULE_ARRAY_READ_OVER_WRITE_SPLITE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_array_store_overwrite (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_ARRAY_STORE_OVERWRITEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_array_store_self (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_ARRAY_STORE_SELFE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_beta_reduce (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BETA_REDUCEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_and_conf (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_AND_CONFE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_and_conf2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BOOL_AND_CONF2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_and_de_morgan (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BOOL_AND_DE_MORGANE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_and_false (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BOOL_AND_FALSEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_and_flatten (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BOOL_AND_FLATTENE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_double_not_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_BOOL_DOUBLE_NOT_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_eq_false (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_EQ_FALSEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_eq_nrefl (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_EQ_NREFLE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_eq_true (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BOOL_EQ_TRUEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_implies_de_morgan (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_BOOL_IMPLIES_DE_MORGANE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_impl_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_impl_false1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_FALSE1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_impl_false2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_FALSE2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_impl_true1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_TRUE1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_impl_true2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_TRUE2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_not_eq_elim1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BOOL_NOT_EQ_ELIM1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_not_eq_elim2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BOOL_NOT_EQ_ELIM2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_not_false (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BOOL_NOT_FALSEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_not_ite_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BOOL_NOT_ITE_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_not_true (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_NOT_TRUEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_not_xor_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BOOL_NOT_XOR_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_or_and_distrib (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BOOL_OR_AND_DISTRIBE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_or_de_morgan (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BOOL_OR_DE_MORGANE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_or_flatten (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_BOOL_OR_FLATTENE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_or_taut (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BOOL_OR_TAUTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_or_taut2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_OR_TAUT2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_or_true (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BOOL_OR_TRUEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_xor_comm (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_XOR_COMME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_xor_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_XOR_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_xor_false (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BOOL_XOR_FALSEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_xor_nrefl (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BOOL_XOR_NREFLE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_xor_refl (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_XOR_REFLE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_xor_true (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_XOR_TRUEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_add_combine_like_terms (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_BV_ADD_COMBINE_LIKE_TERMSE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_add_two (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_ADD_TWOE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_add_zero (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_ADD_ZEROE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_and_concat_pullup (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_BV_AND_CONCAT_PULLUPE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_and_flatten (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_AND_FLATTENE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_and_one (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_AND_ONEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_and_simplify_1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_AND_SIMPLIFY_1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_and_simplify_2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_AND_SIMPLIFY_2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_and_zero (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_AND_ZEROE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ashr_by_const_0 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_ASHR_BY_CONST_0E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ashr_by_const_1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_ASHR_BY_CONST_1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ashr_by_const_2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_ASHR_BY_CONST_2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ashr_zero (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BV_ASHR_ZEROE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_bitwise_idemp_1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_BITWISE_IDEMP_1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_bitwise_idemp_2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_BITWISE_IDEMP_2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_bitwise_not_and (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_BITWISE_NOT_ANDE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_bitwise_not_or (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_BITWISE_NOT_ORE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_bitwise_slicing (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_BITWISE_SLICINGE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_commutative_add (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_ADDE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_commutative_and (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_ANDE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_commutative_mul (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_MULE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_commutative_or (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_ORE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_commutative_xor (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_XORE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_comp_eliminate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_COMP_ELIMINATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_concat_extract_merge (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_BV_CONCAT_EXTRACT_MERGEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_concat_flatten (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_CONCAT_FLATTENE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_concat_merge_const (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_BV_CONCAT_MERGE_CONSTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_concat_to_mult (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_CONCAT_TO_MULTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_eq_extract_elim1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_EQ_EXTRACT_ELIM1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_eq_extract_elim2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_EQ_EXTRACT_ELIM2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_eq_extract_elim3 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_EQ_EXTRACT_ELIM3E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_extract_bitwise_and (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_BITWISE_ANDE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_extract_bitwise_or (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_BITWISE_ORE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_extract_bitwise_xor (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_BITWISE_XORE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_extract_concat_1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_CONCAT_1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_extract_concat_2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_CONCAT_2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_extract_concat_3 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_CONCAT_3E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_extract_concat_4 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_CONCAT_4E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_extract_extract (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_EXTRACTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_extract_mult_leading_bit (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule51CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_MULT_LEADING_BITE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_extract_not (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_NOTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_extract_sign_extend_1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_SIGN_EXTEND_1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_extract_sign_extend_2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_SIGN_EXTEND_2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_extract_sign_extend_3 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_SIGN_EXTEND_3E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_extract_whole (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_WHOLEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ite_const_children_1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_BV_ITE_CONST_CHILDREN_1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ite_const_children_2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_BV_ITE_CONST_CHILDREN_2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ite_equal_children (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_BV_ITE_EQUAL_CHILDRENE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ite_equal_cond_1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_ITE_EQUAL_COND_1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ite_equal_cond_2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_ITE_EQUAL_COND_2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ite_equal_cond_3 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_ITE_EQUAL_COND_3E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ite_merge_else_else (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_BV_ITE_MERGE_ELSE_ELSEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ite_merge_else_if (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_BV_ITE_MERGE_ELSE_IFE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ite_merge_then_else (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_BV_ITE_MERGE_THEN_ELSEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ite_merge_then_if (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_BV_ITE_MERGE_THEN_IFE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_lshr_by_const_0 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_LSHR_BY_CONST_0E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_lshr_by_const_1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_LSHR_BY_CONST_1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_lshr_by_const_2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_LSHR_BY_CONST_2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_lshr_zero (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BV_LSHR_ZEROE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_lt_self (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_LT_SELFE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_merge_sign_extend_1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_BV_MERGE_SIGN_EXTEND_1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_merge_sign_extend_2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_BV_MERGE_SIGN_EXTEND_2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_merge_sign_extend_3 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_BV_MERGE_SIGN_EXTEND_3E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_mult_distrib_1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_mult_distrib_2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_mult_distrib_const_add (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_CONST_ADDE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_mult_distrib_const_neg (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_CONST_NEGE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_mult_distrib_const_sub (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_CONST_SUBE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_mult_pow2_1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_MULT_POW2_1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_mult_pow2_2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_MULT_POW2_2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_mult_pow2_2b (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_BV_MULT_POW2_2BE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_mult_simplify (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_MULT_SIMPLIFYE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_mult_slt_mult_1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_MULT_SLT_MULT_1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_mult_slt_mult_2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_MULT_SLT_MULT_2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_mul_flatten (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_MUL_FLATTENE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_mul_one (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_MUL_ONEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_mul_zero (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_MUL_ZEROE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_nand_eliminate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_NAND_ELIMINATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_neg_add (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_NEG_ADDE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_neg_idemp (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BV_NEG_IDEMPE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_neg_mult (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_NEG_MULTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_neg_sub (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_NEG_SUBE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_nor_eliminate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_NOR_ELIMINATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_not_idemp (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BV_NOT_IDEMPE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_not_neq (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_NOT_NEQE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_not_sle (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_NOT_SLEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_not_ule (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_NOT_ULEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_not_ult (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_NOT_ULTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_not_xor (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_NOT_XORE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_or_concat_pullup (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_OR_CONCAT_PULLUPE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_or_flatten (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BV_OR_FLATTENE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_or_one (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule33CVC5_PROOF_REWRITE_RULE_BV_OR_ONEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_or_simplify_1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_OR_SIMPLIFY_1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_or_simplify_2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_OR_SIMPLIFY_2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_or_zero (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_OR_ZEROE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_redand_eliminate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_REDAND_ELIMINATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_redor_eliminate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_REDOR_ELIMINATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_repeat_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_REPEAT_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_rotate_left_eliminate_1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_BV_ROTATE_LEFT_ELIMINATE_1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_rotate_left_eliminate_2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_BV_ROTATE_LEFT_ELIMINATE_2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_rotate_right_eliminate_1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule51CVC5_PROOF_REWRITE_RULE_BV_ROTATE_RIGHT_ELIMINATE_1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_rotate_right_eliminate_2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule51CVC5_PROOF_REWRITE_RULE_BV_ROTATE_RIGHT_ELIMINATE_2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_saddo_eliminate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_SADDO_ELIMINATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_sdivo_eliminate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_SDIVO_ELIMINATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_sdiv_eliminate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_SDIV_ELIMINATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_sdiv_eliminate_fewer_bitwise_ops (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule59CVC5_PROOF_REWRITE_RULE_BV_SDIV_ELIMINATE_FEWER_BITWISE_OPSE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_sge_eliminate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_SGE_ELIMINATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_sgt_eliminate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_SGT_ELIMINATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_shl_by_const_0 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_SHL_BY_CONST_0E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_shl_by_const_1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_SHL_BY_CONST_1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_shl_by_const_2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_SHL_BY_CONST_2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_shl_zero (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_SHL_ZEROE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_sign_extend_eliminate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ELIMINATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_sign_extend_eliminate_0 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ELIMINATE_0E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_sign_extend_eq_const_1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_EQ_CONST_1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_sign_extend_eq_const_2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_EQ_CONST_2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_sign_extend_ult_const_1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ULT_CONST_1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_sign_extend_ult_const_2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ULT_CONST_2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_sign_extend_ult_const_3 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ULT_CONST_3E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_sign_extend_ult_const_4 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ULT_CONST_4E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_sle_eliminate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_SLE_ELIMINATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_sle_self (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_SLE_SELFE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_slt_eliminate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_SLT_ELIMINATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_slt_zero (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_SLT_ZEROE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_smod_eliminate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_SMOD_ELIMINATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_smod_eliminate_fewer_bitwise_ops (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule59CVC5_PROOF_REWRITE_RULE_BV_SMOD_ELIMINATE_FEWER_BITWISE_OPSE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_smulo_eliminate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_SMULO_ELIMINATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_srem_eliminate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_SREM_ELIMINATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_srem_eliminate_fewer_bitwise_ops (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule59CVC5_PROOF_REWRITE_RULE_BV_SREM_ELIMINATE_FEWER_BITWISE_OPSE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ssubo_eliminate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_SSUBO_ELIMINATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_sub_eliminate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_SUB_ELIMINATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_to_nat_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_TO_NAT_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_uaddo_eliminate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_UADDO_ELIMINATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_udiv_one (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_UDIV_ONEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_udiv_pow2_not_one (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_BV_UDIV_POW2_NOT_ONEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_udiv_zero (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BV_UDIV_ZEROE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_uge_eliminate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_UGE_ELIMINATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ugt_eliminate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_UGT_ELIMINATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ugt_urem (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_UGT_UREME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ule_eliminate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_ULE_ELIMINATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ule_max (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_ULE_MAXE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ule_self (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_ULE_SELFE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ule_zero (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_ULE_ZEROE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ult_add_one (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_ULT_ADD_ONEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ult_one (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_ULT_ONEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ult_ones (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_ULT_ONESE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ult_self (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_ULT_SELFE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ult_zero_1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BV_ULT_ZERO_1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ult_zero_2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BV_ULT_ZERO_2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_umulo_eliminate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_UMULO_ELIMINATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_urem_one (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_UREM_ONEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_urem_pow2_not_one (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_BV_UREM_POW2_NOT_ONEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_urem_self (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BV_UREM_SELFE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_usubo_eliminate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_USUBO_ELIMINATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_xnor_eliminate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_XNOR_ELIMINATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_xor_concat_pullup (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_BV_XOR_CONCAT_PULLUPE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_xor_duplicate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_XOR_DUPLICATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_xor_flatten (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_XOR_FLATTENE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_xor_not (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_XOR_NOTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_xor_ones (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_XOR_ONESE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_xor_simplify_1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_XOR_SIMPLIFY_1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_xor_simplify_2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_XOR_SIMPLIFY_2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_xor_simplify_3 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_XOR_SIMPLIFY_3E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_xor_zero (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_XOR_ZEROE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_zero_extend_eliminate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_BV_ZERO_EXTEND_ELIMINATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_zero_extend_eliminate_0 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_BV_ZERO_EXTEND_ELIMINATE_0E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_zero_extend_eq_const_1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_BV_ZERO_EXTEND_EQ_CONST_1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_zero_extend_eq_const_2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_BV_ZERO_EXTEND_EQ_CONST_2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_zero_ule (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_ZERO_ULEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_distinct_binary_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_DISTINCT_BINARY_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_distinct_card_conflict (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_DISTINCT_CARD_CONFLICTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_distinct_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_DISTINCT_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_dt_collapse_selector (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_DT_COLLAPSE_SELECTORE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_dt_collapse_tester (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_DT_COLLAPSE_TESTERE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_dt_collapse_tester_singleton (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule52CVC5_PROOF_REWRITE_RULE_DT_COLLAPSE_TESTER_SINGLETONE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_dt_collapse_updater (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_DT_COLLAPSE_UPDATERE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_dt_cons_eq (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_DT_CONS_EQE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_dt_cycle (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule32CVC5_PROOF_REWRITE_RULE_DT_CYCLEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_dt_inst (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule31CVC5_PROOF_REWRITE_RULE_DT_INSTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_dt_match_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_DT_MATCH_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_dt_updater_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_DT_UPDATER_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_eq_cond_deq (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_EQ_COND_DEQE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_eq_ite_lift (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_EQ_ITE_LIFTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_eq_refl (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule31CVC5_PROOF_REWRITE_RULE_EQ_REFLE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_eq_symm (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule31CVC5_PROOF_REWRITE_RULE_EQ_SYMME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_exists_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_EXISTS_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_int_to_bv_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_INT_TO_BV_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_ite_else_false (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ITE_ELSE_FALSEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_ite_else_lookahead (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_ITE_ELSE_LOOKAHEADE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_ite_else_lookahead_not_self (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule51CVC5_PROOF_REWRITE_RULE_ITE_ELSE_LOOKAHEAD_NOT_SELFE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_ite_else_lookahead_self (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_ITE_ELSE_LOOKAHEAD_SELFE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_ite_else_neg_lookahead (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_ITE_ELSE_NEG_LOOKAHEADE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_ite_else_true (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ITE_ELSE_TRUEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_ite_eq_branch (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ITE_EQ_BRANCHE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_ite_expand (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_ITE_EXPANDE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_ite_false_cond (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ITE_FALSE_CONDE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_ite_neg_branch (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ITE_NEG_BRANCHE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_ite_not_cond (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_ITE_NOT_CONDE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_ite_then_false (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ITE_THEN_FALSEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_ite_then_lookahead (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_ITE_THEN_LOOKAHEADE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_ite_then_lookahead_not_self (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule51CVC5_PROOF_REWRITE_RULE_ITE_THEN_LOOKAHEAD_NOT_SELFE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_ite_then_lookahead_self (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_ITE_THEN_LOOKAHEAD_SELFE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_ite_then_neg_lookahead (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_ITE_THEN_NEG_LOOKAHEADE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_ite_then_true (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ITE_THEN_TRUEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_ite_true_cond (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ITE_TRUE_CONDE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_lambda_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_LAMBDA_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_last (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule28CVC5_PROOF_REWRITE_RULE_LASTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_macro_arith_string_pred_entail (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule54CVC5_PROOF_REWRITE_RULE_MACRO_ARITH_STRING_PRED_ENTAILE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_macro_arrays_distinct_arrays (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule52CVC5_PROOF_REWRITE_RULE_MACRO_ARRAYS_DISTINCT_ARRAYSE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_macro_arrays_normalize_constant (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule55CVC5_PROOF_REWRITE_RULE_MACRO_ARRAYS_NORMALIZE_CONSTANTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_macro_bool_nnf_norm (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_MACRO_BOOL_NNF_NORME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_macro_quant_merge_prenex (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_MERGE_PRENEXE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_macro_quant_miniscope (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_MINISCOPEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_macro_quant_partition_connected_fv (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule58CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_PARTITION_CONNECTED_FVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_macro_quant_prenex (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_PRENEXE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_macro_quant_rewrite_body (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_REWRITE_BODYE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_macro_quant_var_elim_eq (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_VAR_ELIM_EQE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_macro_quant_var_elim_ineq (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_VAR_ELIM_INEQE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_macro_substr_strip_sym_length (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule53CVC5_PROOF_REWRITE_RULE_MACRO_SUBSTR_STRIP_SYM_LENGTHE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_none (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule28CVC5_PROOF_REWRITE_RULE_NONEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_quant_dt_split (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_QUANT_DT_SPLITE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_quant_merge_prenex (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_QUANT_MERGE_PRENEXE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_quant_miniscope_and (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_QUANT_MINISCOPE_ANDE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_quant_miniscope_ite (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_QUANT_MINISCOPE_ITEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_quant_miniscope_or (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_QUANT_MINISCOPE_ORE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_quant_unused_vars (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_QUANT_UNUSED_VARSE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_quant_var_elim_eq (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_QUANT_VAR_ELIM_EQE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_all_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_RE_ALL_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_concat_emp (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_RE_CONCAT_EMPE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_concat_flatten (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_RE_CONCAT_FLATTENE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_concat_merge (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_RE_CONCAT_MERGEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_concat_none (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_RE_CONCAT_NONEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_concat_star_repeat (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_RE_CONCAT_STAR_REPEATE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_concat_star_swap (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_RE_CONCAT_STAR_SWAPE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_diff_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_RE_DIFF_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_inter_all (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_RE_INTER_ALLE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_inter_cstring (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_RE_INTER_CSTRINGE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_inter_cstring_neg (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_RE_INTER_CSTRING_NEGE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_inter_dup (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_RE_INTER_DUPE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_inter_flatten (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_RE_INTER_FLATTENE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_inter_none (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_RE_INTER_NONEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_inter_union_inclusion (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_RE_INTER_UNION_INCLUSIONE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_in_comp (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_RE_IN_COMPE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_in_cstring (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_RE_IN_CSTRINGE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_in_empty (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_RE_IN_EMPTYE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_in_sigma (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_RE_IN_SIGMAE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_in_sigma_star (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_RE_IN_SIGMA_STARE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_loop_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_RE_LOOP_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_loop_neg (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_RE_LOOP_NEGE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_opt_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_RE_OPT_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_star_none (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_RE_STAR_NONEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_union_all (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_RE_UNION_ALLE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_union_dup (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_RE_UNION_DUPE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_union_flatten (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_RE_UNION_FLATTENE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_union_none (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_RE_UNION_NONEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_seq_len_empty (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_SEQ_LEN_EMPTYE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_seq_len_rev (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_SEQ_LEN_REVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_seq_len_unit (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_SEQ_LEN_UNITE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_seq_nth_unit (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_SEQ_NTH_UNITE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_seq_rev_concat (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_SEQ_REV_CONCATE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_seq_rev_rev (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_SEQ_REV_REVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_seq_rev_unit (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_SEQ_REV_UNITE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_sets_card_emp (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_SETS_CARD_EMPE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_sets_card_minus (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_CARD_MINUSE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_sets_card_singleton (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_SETS_CARD_SINGLETONE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_sets_card_union (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_CARD_UNIONE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_sets_choose_singleton (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_SETS_CHOOSE_SINGLETONE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_sets_eq_singleton_emp (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_SETS_EQ_SINGLETON_EMPE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_sets_insert_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_SETS_INSERT_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_sets_inter_comm (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_INTER_COMME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_sets_inter_emp1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_INTER_EMP1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_sets_inter_emp2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_INTER_EMP2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_sets_inter_member (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_SETS_INTER_MEMBERE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_sets_is_empty_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_SETS_IS_EMPTY_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_sets_is_empty_eval (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_SETS_IS_EMPTY_EVALE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_sets_member_emp (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_MEMBER_EMPE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_sets_member_singleton (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_SETS_MEMBER_SINGLETONE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_sets_minus_emp1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_MINUS_EMP1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_sets_minus_emp2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_MINUS_EMP2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_sets_minus_member (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_SETS_MINUS_MEMBERE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_sets_minus_self (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_MINUS_SELFE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_sets_subset_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_SETS_SUBSET_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_sets_union_comm (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_UNION_COMME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_sets_union_emp1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_UNION_EMP1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_sets_union_emp2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_UNION_EMP2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_sets_union_member (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_SETS_UNION_MEMBERE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_at_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_STR_AT_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_concat_clash (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASHE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_concat_clash2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_concat_clash2_rev (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH2_REVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_concat_clash_char (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH_CHARE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_concat_clash_char_rev (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH_CHAR_REVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_concat_clash_rev (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH_REVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_concat_flatten (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_CONCAT_FLATTENE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_concat_flatten_eq (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_STR_CONCAT_FLATTEN_EQE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_concat_flatten_eq_rev (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_STR_CONCAT_FLATTEN_EQ_REVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_concat_unify (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_CONCAT_UNIFYE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_concat_unify_base (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_STR_CONCAT_UNIFY_BASEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_concat_unify_base_rev (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_STR_CONCAT_UNIFY_BASE_REVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_concat_unify_rev (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_CONCAT_UNIFY_REVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_contains_concat_find (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_CONCAT_FINDE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_contains_emp (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_EMPE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_contains_is_emp (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_IS_EMPE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_contains_leq_len_eq (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_LEQ_LEN_EQE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_contains_lt_len (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_LT_LENE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_contains_refl (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_REFLE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_contains_split_char (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_SPLIT_CHARE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_eq_ctn_false (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_EQ_CTN_FALSEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_eq_ctn_full_false1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_STR_EQ_CTN_FULL_FALSE1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_eq_ctn_full_false2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_STR_EQ_CTN_FULL_FALSE2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_indexof_contains_pre (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_STR_INDEXOF_CONTAINS_PREE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_indexof_no_contains (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_STR_INDEXOF_NO_CONTAINSE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_indexof_re_none (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_INDEXOF_RE_NONEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_indexof_self (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_INDEXOF_SELFE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_concat_star_char (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_STR_IN_RE_CONCAT_STAR_CHARE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_consume (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_STR_IN_RE_CONSUMEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_contains (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_IN_RE_CONTAINSE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_eval (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_STR_IN_RE_EVALE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_inter_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_IN_RE_INTER_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_range_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_IN_RE_RANGE_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_req_unfold (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_IN_RE_REQ_UNFOLDE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_req_unfold_rev (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_STR_IN_RE_REQ_UNFOLD_REVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_sigma (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_STR_IN_RE_SIGMAE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_sigma_star (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_IN_RE_SIGMA_STARE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_skip_unfold (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_STR_IN_RE_SKIP_UNFOLDE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_skip_unfold_rev (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_STR_IN_RE_SKIP_UNFOLD_REVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_char (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_CHARE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_char_rev (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_CHAR_REVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_char_s_single (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule53CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_CHAR_S_SINGLEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_char_s_single_rev (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule57CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_CHAR_S_SINGLE_REVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_prefix (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIXE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_prefix_base (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule51CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_prefix_base_neg (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule55CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_NEGE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_prefix_base_neg_rev (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule59CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_NEG_REVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_prefix_base_rev (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule55CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_REVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_prefix_base_s_single (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule60CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_prefix_base_s_single_neg (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule64CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEGE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_prefix_base_s_single_neg_rev (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule68CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG_REVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_prefix_base_s_single_rev (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule64CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_REVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_prefix_neg (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_NEGE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_prefix_neg_rev (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule54CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_NEG_REVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_prefix_rev (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_REVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_prefix_srs_single (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule57CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SRS_SINGLEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_prefix_srs_single_neg (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule61CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEGE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_prefix_srs_single_neg_rev (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule65CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG_REVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_prefix_srs_single_rev (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule61CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_REVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_prefix_sr_single (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule56CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SR_SINGLEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_prefix_sr_single_neg (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule60CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEGE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_prefix_sr_single_neg_rev (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule64CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG_REVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_prefix_sr_single_rev (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule60CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SR_SINGLE_REVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_prefix_s_single (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule55CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_S_SINGLEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_prefix_s_single_neg (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule59CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEGE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_prefix_s_single_neg_rev (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule63CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG_REVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_prefix_s_single_rev (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule59CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_S_SINGLE_REVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_test_unfold (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_STR_IN_RE_TEST_UNFOLDE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_test_unfold_rev (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_STR_IN_RE_TEST_UNFOLD_REVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_union_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_IN_RE_UNION_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_len_concat_rec (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_LEN_CONCAT_RECE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_len_replace_inv (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_LEN_REPLACE_INVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_len_substr_in_range (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_STR_LEN_SUBSTR_IN_RANGEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_len_substr_ub1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_LEN_SUBSTR_UB1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_len_substr_ub2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_LEN_SUBSTR_UB2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_len_update_inv (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_LEN_UPDATE_INVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_leq_concat_false (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_LEQ_CONCAT_FALSEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_leq_concat_true (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_LEQ_CONCAT_TRUEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_leq_empty (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_STR_LEQ_EMPTYE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_leq_empty_eq (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_LEQ_EMPTY_EQE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_lt_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_STR_LT_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_prefixof_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_STR_PREFIXOF_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_prefixof_one (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_PREFIXOF_ONEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_replace_all_no_contains (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule51CVC5_PROOF_REWRITE_RULE_STR_REPLACE_ALL_NO_CONTAINSE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_replace_contains_pre (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_STR_REPLACE_CONTAINS_PREE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_replace_empty (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_STR_REPLACE_EMPTYE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_replace_no_contains (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_STR_REPLACE_NO_CONTAINSE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_replace_prefix (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_REPLACE_PREFIXE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_replace_re_all_none (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_STR_REPLACE_RE_ALL_NONEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_replace_re_none (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_REPLACE_RE_NONEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_replace_self (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_REPLACE_SELFE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_substr_combine1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_COMBINE1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_substr_combine2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_COMBINE2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_substr_combine3 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_COMBINE3E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_substr_combine4 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_COMBINE4E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_substr_concat1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_CONCAT1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_substr_concat2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_CONCAT2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_substr_empty_range (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EMPTY_RANGEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_substr_empty_start (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EMPTY_STARTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_substr_empty_start_neg (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EMPTY_START_NEGE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_substr_empty_str (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EMPTY_STRE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_substr_eq_empty (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EQ_EMPTYE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_substr_full (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_FULLE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_substr_full_eq (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_FULL_EQE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_substr_len_include (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_LEN_INCLUDEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_substr_len_include_pre (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_LEN_INCLUDE_PREE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_substr_len_skip (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_LEN_SKIPE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_suffixof_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_STR_SUFFIXOF_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_suffixof_one (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_SUFFIXOF_ONEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_to_int_concat_neg_one (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_STR_TO_INT_CONCAT_NEG_ONEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_to_lower_concat (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_TO_LOWER_CONCATE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_to_lower_from_int (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_STR_TO_LOWER_FROM_INTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_to_lower_len (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_TO_LOWER_LENE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_to_lower_upper (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_TO_LOWER_UPPERE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_to_upper_concat (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_TO_UPPER_CONCATE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_to_upper_from_int (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_STR_TO_UPPER_FROM_INTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_to_upper_len (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_TO_UPPER_LENE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_to_upper_lower (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_TO_UPPER_LOWERE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_uf_bv2nat_geq_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_UF_BV2NAT_GEQ_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_uf_bv2nat_int2bv (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_UF_BV2NAT_INT2BVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_uf_bv2nat_int2bv_extend (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_UF_BV2NAT_INT2BV_EXTENDE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_uf_bv2nat_int2bv_extract (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_UF_BV2NAT_INT2BV_EXTRACTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_uf_int2bv_bv2nat (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_UF_INT2BV_BV2NATE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_uf_int2bv_bvule_equiv (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_UF_INT2BV_BVULE_EQUIVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_uf_int2bv_bvult_equiv (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_UF_INT2BV_BVULT_EQUIVE"]], "cvc5proofrule (c++ enum)": [[3, "_CPPv413Cvc5ProofRule"]], "cvc5proofrule::cvc5_proof_rule_aci_norm (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule24CVC5_PROOF_RULE_ACI_NORME"]], "cvc5proofrule::cvc5_proof_rule_alethe_rule (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_ALETHE_RULEE"]], "cvc5proofrule::cvc5_proof_rule_alpha_equiv (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_ALPHA_EQUIVE"]], "cvc5proofrule::cvc5_proof_rule_and_elim (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule24CVC5_PROOF_RULE_AND_ELIME"]], "cvc5proofrule::cvc5_proof_rule_and_intro (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_AND_INTROE"]], "cvc5proofrule::cvc5_proof_rule_arith_mult_abs_comparison (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule41CVC5_PROOF_RULE_ARITH_MULT_ABS_COMPARISONE"]], "cvc5proofrule::cvc5_proof_rule_arith_mult_neg (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_ARITH_MULT_NEGE"]], "cvc5proofrule::cvc5_proof_rule_arith_mult_pos (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_ARITH_MULT_POSE"]], "cvc5proofrule::cvc5_proof_rule_arith_mult_sign (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_ARITH_MULT_SIGNE"]], "cvc5proofrule::cvc5_proof_rule_arith_mult_tangent (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule34CVC5_PROOF_RULE_ARITH_MULT_TANGENTE"]], "cvc5proofrule::cvc5_proof_rule_arith_poly_norm (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_ARITH_POLY_NORME"]], "cvc5proofrule::cvc5_proof_rule_arith_poly_norm_rel (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule35CVC5_PROOF_RULE_ARITH_POLY_NORM_RELE"]], "cvc5proofrule::cvc5_proof_rule_arith_reduction (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_ARITH_REDUCTIONE"]], "cvc5proofrule::cvc5_proof_rule_arith_sum_ub (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_ARITH_SUM_UBE"]], "cvc5proofrule::cvc5_proof_rule_arith_trans_exp_approx_above_neg (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule48CVC5_PROOF_RULE_ARITH_TRANS_EXP_APPROX_ABOVE_NEGE"]], "cvc5proofrule::cvc5_proof_rule_arith_trans_exp_approx_above_pos (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule48CVC5_PROOF_RULE_ARITH_TRANS_EXP_APPROX_ABOVE_POSE"]], "cvc5proofrule::cvc5_proof_rule_arith_trans_exp_approx_below (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule44CVC5_PROOF_RULE_ARITH_TRANS_EXP_APPROX_BELOWE"]], "cvc5proofrule::cvc5_proof_rule_arith_trans_exp_neg (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule35CVC5_PROOF_RULE_ARITH_TRANS_EXP_NEGE"]], "cvc5proofrule::cvc5_proof_rule_arith_trans_exp_positivity (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule42CVC5_PROOF_RULE_ARITH_TRANS_EXP_POSITIVITYE"]], "cvc5proofrule::cvc5_proof_rule_arith_trans_exp_super_lin (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule41CVC5_PROOF_RULE_ARITH_TRANS_EXP_SUPER_LINE"]], "cvc5proofrule::cvc5_proof_rule_arith_trans_exp_zero (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule36CVC5_PROOF_RULE_ARITH_TRANS_EXP_ZEROE"]], "cvc5proofrule::cvc5_proof_rule_arith_trans_pi (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_ARITH_TRANS_PIE"]], "cvc5proofrule::cvc5_proof_rule_arith_trans_sine_approx_above_neg (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule49CVC5_PROOF_RULE_ARITH_TRANS_SINE_APPROX_ABOVE_NEGE"]], "cvc5proofrule::cvc5_proof_rule_arith_trans_sine_approx_above_pos (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule49CVC5_PROOF_RULE_ARITH_TRANS_SINE_APPROX_ABOVE_POSE"]], "cvc5proofrule::cvc5_proof_rule_arith_trans_sine_approx_below_neg (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule49CVC5_PROOF_RULE_ARITH_TRANS_SINE_APPROX_BELOW_NEGE"]], "cvc5proofrule::cvc5_proof_rule_arith_trans_sine_approx_below_pos (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule49CVC5_PROOF_RULE_ARITH_TRANS_SINE_APPROX_BELOW_POSE"]], "cvc5proofrule::cvc5_proof_rule_arith_trans_sine_bounds (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule39CVC5_PROOF_RULE_ARITH_TRANS_SINE_BOUNDSE"]], "cvc5proofrule::cvc5_proof_rule_arith_trans_sine_shift (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule38CVC5_PROOF_RULE_ARITH_TRANS_SINE_SHIFTE"]], "cvc5proofrule::cvc5_proof_rule_arith_trans_sine_symmetry (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule41CVC5_PROOF_RULE_ARITH_TRANS_SINE_SYMMETRYE"]], "cvc5proofrule::cvc5_proof_rule_arith_trans_sine_tangent_pi (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule43CVC5_PROOF_RULE_ARITH_TRANS_SINE_TANGENT_PIE"]], "cvc5proofrule::cvc5_proof_rule_arith_trans_sine_tangent_zero (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule45CVC5_PROOF_RULE_ARITH_TRANS_SINE_TANGENT_ZEROE"]], "cvc5proofrule::cvc5_proof_rule_arith_trichotomy (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_ARITH_TRICHOTOMYE"]], "cvc5proofrule::cvc5_proof_rule_arrays_ext (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_ARRAYS_EXTE"]], "cvc5proofrule::cvc5_proof_rule_arrays_read_over_write (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule38CVC5_PROOF_RULE_ARRAYS_READ_OVER_WRITEE"]], "cvc5proofrule::cvc5_proof_rule_arrays_read_over_write_1 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule40CVC5_PROOF_RULE_ARRAYS_READ_OVER_WRITE_1E"]], "cvc5proofrule::cvc5_proof_rule_arrays_read_over_write_contra (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule45CVC5_PROOF_RULE_ARRAYS_READ_OVER_WRITE_CONTRAE"]], "cvc5proofrule::cvc5_proof_rule_assume (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule22CVC5_PROOF_RULE_ASSUMEE"]], "cvc5proofrule::cvc5_proof_rule_bv_bitblast_step (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_BV_BITBLAST_STEPE"]], "cvc5proofrule::cvc5_proof_rule_bv_eager_atom (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_BV_EAGER_ATOME"]], "cvc5proofrule::cvc5_proof_rule_chain_resolution (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_CHAIN_RESOLUTIONE"]], "cvc5proofrule::cvc5_proof_rule_cnf_and_neg (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_CNF_AND_NEGE"]], "cvc5proofrule::cvc5_proof_rule_cnf_and_pos (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_CNF_AND_POSE"]], "cvc5proofrule::cvc5_proof_rule_cnf_equiv_neg1 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_CNF_EQUIV_NEG1E"]], "cvc5proofrule::cvc5_proof_rule_cnf_equiv_neg2 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_CNF_EQUIV_NEG2E"]], "cvc5proofrule::cvc5_proof_rule_cnf_equiv_pos1 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_CNF_EQUIV_POS1E"]], "cvc5proofrule::cvc5_proof_rule_cnf_equiv_pos2 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_CNF_EQUIV_POS2E"]], "cvc5proofrule::cvc5_proof_rule_cnf_implies_neg1 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_CNF_IMPLIES_NEG1E"]], "cvc5proofrule::cvc5_proof_rule_cnf_implies_neg2 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_CNF_IMPLIES_NEG2E"]], "cvc5proofrule::cvc5_proof_rule_cnf_implies_pos (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_CNF_IMPLIES_POSE"]], "cvc5proofrule::cvc5_proof_rule_cnf_ite_neg1 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_ITE_NEG1E"]], "cvc5proofrule::cvc5_proof_rule_cnf_ite_neg2 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_ITE_NEG2E"]], "cvc5proofrule::cvc5_proof_rule_cnf_ite_neg3 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_ITE_NEG3E"]], "cvc5proofrule::cvc5_proof_rule_cnf_ite_pos1 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_ITE_POS1E"]], "cvc5proofrule::cvc5_proof_rule_cnf_ite_pos2 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_ITE_POS2E"]], "cvc5proofrule::cvc5_proof_rule_cnf_ite_pos3 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_ITE_POS3E"]], "cvc5proofrule::cvc5_proof_rule_cnf_or_neg (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_CNF_OR_NEGE"]], "cvc5proofrule::cvc5_proof_rule_cnf_or_pos (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_CNF_OR_POSE"]], "cvc5proofrule::cvc5_proof_rule_cnf_xor_neg1 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_XOR_NEG1E"]], "cvc5proofrule::cvc5_proof_rule_cnf_xor_neg2 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_XOR_NEG2E"]], "cvc5proofrule::cvc5_proof_rule_cnf_xor_pos1 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_XOR_POS1E"]], "cvc5proofrule::cvc5_proof_rule_cnf_xor_pos2 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_XOR_POS2E"]], "cvc5proofrule::cvc5_proof_rule_concat_conflict (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_CONCAT_CONFLICTE"]], "cvc5proofrule::cvc5_proof_rule_concat_conflict_deq (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule35CVC5_PROOF_RULE_CONCAT_CONFLICT_DEQE"]], "cvc5proofrule::cvc5_proof_rule_concat_cprop (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CONCAT_CPROPE"]], "cvc5proofrule::cvc5_proof_rule_concat_csplit (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_CONCAT_CSPLITE"]], "cvc5proofrule::cvc5_proof_rule_concat_eq (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_CONCAT_EQE"]], "cvc5proofrule::cvc5_proof_rule_concat_lprop (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CONCAT_LPROPE"]], "cvc5proofrule::cvc5_proof_rule_concat_split (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CONCAT_SPLITE"]], "cvc5proofrule::cvc5_proof_rule_concat_unify (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CONCAT_UNIFYE"]], "cvc5proofrule::cvc5_proof_rule_cong (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule20CVC5_PROOF_RULE_CONGE"]], "cvc5proofrule::cvc5_proof_rule_contra (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule22CVC5_PROOF_RULE_CONTRAE"]], "cvc5proofrule::cvc5_proof_rule_drat_refutation (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_DRAT_REFUTATIONE"]], "cvc5proofrule::cvc5_proof_rule_dsl_rewrite (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_DSL_REWRITEE"]], "cvc5proofrule::cvc5_proof_rule_dt_clash (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule24CVC5_PROOF_RULE_DT_CLASHE"]], "cvc5proofrule::cvc5_proof_rule_dt_split (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule24CVC5_PROOF_RULE_DT_SPLITE"]], "cvc5proofrule::cvc5_proof_rule_encode_eq_intro (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_ENCODE_EQ_INTROE"]], "cvc5proofrule::cvc5_proof_rule_equiv_elim1 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_EQUIV_ELIM1E"]], "cvc5proofrule::cvc5_proof_rule_equiv_elim2 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_EQUIV_ELIM2E"]], "cvc5proofrule::cvc5_proof_rule_eq_resolve (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_EQ_RESOLVEE"]], "cvc5proofrule::cvc5_proof_rule_evaluate (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule24CVC5_PROOF_RULE_EVALUATEE"]], "cvc5proofrule::cvc5_proof_rule_factoring (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_FACTORINGE"]], "cvc5proofrule::cvc5_proof_rule_false_elim (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_FALSE_ELIME"]], "cvc5proofrule::cvc5_proof_rule_false_intro (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_FALSE_INTROE"]], "cvc5proofrule::cvc5_proof_rule_ho_app_encode (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_HO_APP_ENCODEE"]], "cvc5proofrule::cvc5_proof_rule_ho_cong (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule23CVC5_PROOF_RULE_HO_CONGE"]], "cvc5proofrule::cvc5_proof_rule_implies_elim (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_IMPLIES_ELIME"]], "cvc5proofrule::cvc5_proof_rule_instantiate (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_INSTANTIATEE"]], "cvc5proofrule::cvc5_proof_rule_int_tight_lb (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_INT_TIGHT_LBE"]], "cvc5proofrule::cvc5_proof_rule_int_tight_ub (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_INT_TIGHT_UBE"]], "cvc5proofrule::cvc5_proof_rule_ite_elim1 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_ITE_ELIM1E"]], "cvc5proofrule::cvc5_proof_rule_ite_elim2 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_ITE_ELIM2E"]], "cvc5proofrule::cvc5_proof_rule_ite_eq (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule22CVC5_PROOF_RULE_ITE_EQE"]], "cvc5proofrule::cvc5_proof_rule_last (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule20CVC5_PROOF_RULE_LASTE"]], "cvc5proofrule::cvc5_proof_rule_lfsc_rule (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_LFSC_RULEE"]], "cvc5proofrule::cvc5_proof_rule_macro_arith_scale_sum_ub (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule40CVC5_PROOF_RULE_MACRO_ARITH_SCALE_SUM_UBE"]], "cvc5proofrule::cvc5_proof_rule_macro_bv_bitblast (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule33CVC5_PROOF_RULE_MACRO_BV_BITBLASTE"]], "cvc5proofrule::cvc5_proof_rule_macro_resolution (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_MACRO_RESOLUTIONE"]], "cvc5proofrule::cvc5_proof_rule_macro_resolution_trust (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule38CVC5_PROOF_RULE_MACRO_RESOLUTION_TRUSTE"]], "cvc5proofrule::cvc5_proof_rule_macro_rewrite (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_MACRO_REWRITEE"]], "cvc5proofrule::cvc5_proof_rule_macro_sr_eq_intro (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule33CVC5_PROOF_RULE_MACRO_SR_EQ_INTROE"]], "cvc5proofrule::cvc5_proof_rule_macro_sr_pred_elim (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule34CVC5_PROOF_RULE_MACRO_SR_PRED_ELIME"]], "cvc5proofrule::cvc5_proof_rule_macro_sr_pred_intro (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule35CVC5_PROOF_RULE_MACRO_SR_PRED_INTROE"]], "cvc5proofrule::cvc5_proof_rule_macro_sr_pred_transform (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule39CVC5_PROOF_RULE_MACRO_SR_PRED_TRANSFORME"]], "cvc5proofrule::cvc5_proof_rule_macro_string_inference (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule38CVC5_PROOF_RULE_MACRO_STRING_INFERENCEE"]], "cvc5proofrule::cvc5_proof_rule_modus_ponens (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_MODUS_PONENSE"]], "cvc5proofrule::cvc5_proof_rule_nary_cong (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_NARY_CONGE"]], "cvc5proofrule::cvc5_proof_rule_not_and (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule23CVC5_PROOF_RULE_NOT_ANDE"]], "cvc5proofrule::cvc5_proof_rule_not_equiv_elim1 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_NOT_EQUIV_ELIM1E"]], "cvc5proofrule::cvc5_proof_rule_not_equiv_elim2 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_NOT_EQUIV_ELIM2E"]], "cvc5proofrule::cvc5_proof_rule_not_implies_elim1 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule33CVC5_PROOF_RULE_NOT_IMPLIES_ELIM1E"]], "cvc5proofrule::cvc5_proof_rule_not_implies_elim2 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule33CVC5_PROOF_RULE_NOT_IMPLIES_ELIM2E"]], "cvc5proofrule::cvc5_proof_rule_not_ite_elim1 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_NOT_ITE_ELIM1E"]], "cvc5proofrule::cvc5_proof_rule_not_ite_elim2 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_NOT_ITE_ELIM2E"]], "cvc5proofrule::cvc5_proof_rule_not_not_elim (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_NOT_NOT_ELIME"]], "cvc5proofrule::cvc5_proof_rule_not_or_elim (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_NOT_OR_ELIME"]], "cvc5proofrule::cvc5_proof_rule_not_xor_elim1 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_NOT_XOR_ELIM1E"]], "cvc5proofrule::cvc5_proof_rule_not_xor_elim2 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_NOT_XOR_ELIM2E"]], "cvc5proofrule::cvc5_proof_rule_quant_var_reordering (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule36CVC5_PROOF_RULE_QUANT_VAR_REORDERINGE"]], "cvc5proofrule::cvc5_proof_rule_refl (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule20CVC5_PROOF_RULE_REFLE"]], "cvc5proofrule::cvc5_proof_rule_reordering (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_REORDERINGE"]], "cvc5proofrule::cvc5_proof_rule_resolution (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_RESOLUTIONE"]], "cvc5proofrule::cvc5_proof_rule_re_inter (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule24CVC5_PROOF_RULE_RE_INTERE"]], "cvc5proofrule::cvc5_proof_rule_re_unfold_neg (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_RE_UNFOLD_NEGE"]], "cvc5proofrule::cvc5_proof_rule_re_unfold_neg_concat_fixed (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule42CVC5_PROOF_RULE_RE_UNFOLD_NEG_CONCAT_FIXEDE"]], "cvc5proofrule::cvc5_proof_rule_re_unfold_pos (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_RE_UNFOLD_POSE"]], "cvc5proofrule::cvc5_proof_rule_sat_external_prove (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule34CVC5_PROOF_RULE_SAT_EXTERNAL_PROVEE"]], "cvc5proofrule::cvc5_proof_rule_sat_refutation (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_SAT_REFUTATIONE"]], "cvc5proofrule::cvc5_proof_rule_scope (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule21CVC5_PROOF_RULE_SCOPEE"]], "cvc5proofrule::cvc5_proof_rule_sets_ext (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule24CVC5_PROOF_RULE_SETS_EXTE"]], "cvc5proofrule::cvc5_proof_rule_sets_filter_down (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_SETS_FILTER_DOWNE"]], "cvc5proofrule::cvc5_proof_rule_sets_filter_up (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_SETS_FILTER_UPE"]], "cvc5proofrule::cvc5_proof_rule_sets_singleton_inj (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule34CVC5_PROOF_RULE_SETS_SINGLETON_INJE"]], "cvc5proofrule::cvc5_proof_rule_skolemize (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_SKOLEMIZEE"]], "cvc5proofrule::cvc5_proof_rule_skolem_intro (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_SKOLEM_INTROE"]], "cvc5proofrule::cvc5_proof_rule_split (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule21CVC5_PROOF_RULE_SPLITE"]], "cvc5proofrule::cvc5_proof_rule_string_code_inj (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_STRING_CODE_INJE"]], "cvc5proofrule::cvc5_proof_rule_string_decompose (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_STRING_DECOMPOSEE"]], "cvc5proofrule::cvc5_proof_rule_string_eager_reduction (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule38CVC5_PROOF_RULE_STRING_EAGER_REDUCTIONE"]], "cvc5proofrule::cvc5_proof_rule_string_ext (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_STRING_EXTE"]], "cvc5proofrule::cvc5_proof_rule_string_length_non_empty (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule39CVC5_PROOF_RULE_STRING_LENGTH_NON_EMPTYE"]], "cvc5proofrule::cvc5_proof_rule_string_length_pos (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule33CVC5_PROOF_RULE_STRING_LENGTH_POSE"]], "cvc5proofrule::cvc5_proof_rule_string_reduction (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_STRING_REDUCTIONE"]], "cvc5proofrule::cvc5_proof_rule_string_seq_unit_inj (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule35CVC5_PROOF_RULE_STRING_SEQ_UNIT_INJE"]], "cvc5proofrule::cvc5_proof_rule_subs (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule20CVC5_PROOF_RULE_SUBSE"]], "cvc5proofrule::cvc5_proof_rule_symm (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule20CVC5_PROOF_RULE_SYMME"]], "cvc5proofrule::cvc5_proof_rule_theory_rewrite (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_THEORY_REWRITEE"]], "cvc5proofrule::cvc5_proof_rule_trans (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule21CVC5_PROOF_RULE_TRANSE"]], "cvc5proofrule::cvc5_proof_rule_true_elim (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_TRUE_ELIME"]], "cvc5proofrule::cvc5_proof_rule_true_intro (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_TRUE_INTROE"]], "cvc5proofrule::cvc5_proof_rule_trust (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule21CVC5_PROOF_RULE_TRUSTE"]], "cvc5proofrule::cvc5_proof_rule_trust_theory_rewrite (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule36CVC5_PROOF_RULE_TRUST_THEORY_REWRITEE"]], "cvc5proofrule::cvc5_proof_rule_unknown (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule23CVC5_PROOF_RULE_UNKNOWNE"]], "cvc5proofrule::cvc5_proof_rule_xor_elim1 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_XOR_ELIM1E"]], "cvc5proofrule::cvc5_proof_rule_xor_elim2 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_XOR_ELIM2E"]], "cvc5_proof_rewrite_rule_hash (c++ function)": [[3, "_CPPv428cvc5_proof_rewrite_rule_hash20Cvc5ProofRewriteRule"]], "cvc5_proof_rewrite_rule_to_string (c++ function)": [[3, "_CPPv433cvc5_proof_rewrite_rule_to_string20Cvc5ProofRewriteRule"]], "cvc5_proof_rule_hash (c++ function)": [[3, "_CPPv420cvc5_proof_rule_hash13Cvc5ProofRule"]], "cvc5_proof_rule_to_string (c++ function)": [[3, "_CPPv425cvc5_proof_rule_to_string13Cvc5ProofRule"]], "cvc5roundingmode (c++ enum)": [[4, "_CPPv416Cvc5RoundingMode"]], "cvc5roundingmode::cvc5_rm_last (c++ enumerator)": [[4, "_CPPv4N16Cvc5RoundingMode12CVC5_RM_LASTE"]], "cvc5roundingmode::cvc5_rm_round_nearest_ties_to_away (c++ enumerator)": [[4, "_CPPv4N16Cvc5RoundingMode34CVC5_RM_ROUND_NEAREST_TIES_TO_AWAYE"]], "cvc5roundingmode::cvc5_rm_round_nearest_ties_to_even (c++ enumerator)": [[4, "_CPPv4N16Cvc5RoundingMode34CVC5_RM_ROUND_NEAREST_TIES_TO_EVENE"]], "cvc5roundingmode::cvc5_rm_round_toward_negative (c++ enumerator)": [[4, "_CPPv4N16Cvc5RoundingMode29CVC5_RM_ROUND_TOWARD_NEGATIVEE"]], "cvc5roundingmode::cvc5_rm_round_toward_positive (c++ enumerator)": [[4, "_CPPv4N16Cvc5RoundingMode29CVC5_RM_ROUND_TOWARD_POSITIVEE"]], "cvc5roundingmode::cvc5_rm_round_toward_zero (c++ enumerator)": [[4, "_CPPv4N16Cvc5RoundingMode25CVC5_RM_ROUND_TOWARD_ZEROE"]], "cvc5_rm_to_string (c++ function)": [[4, "_CPPv417cvc5_rm_to_string16Cvc5RoundingMode"]], "cvc5sortkind (c++ enum)": [[5, "_CPPv412Cvc5SortKind"]], "cvc5sortkind::cvc5_sort_kind_abstract_sort (c++ enumerator)": [[5, "_CPPv4N12Cvc5SortKind28CVC5_SORT_KIND_ABSTRACT_SORTE"]], "cvc5sortkind::cvc5_sort_kind_array_sort (c++ enumerator)": [[5, "_CPPv4N12Cvc5SortKind25CVC5_SORT_KIND_ARRAY_SORTE"]], "cvc5sortkind::cvc5_sort_kind_bag_sort (c++ enumerator)": [[5, "_CPPv4N12Cvc5SortKind23CVC5_SORT_KIND_BAG_SORTE"]], "cvc5sortkind::cvc5_sort_kind_bitvector_sort (c++ enumerator)": [[5, "_CPPv4N12Cvc5SortKind29CVC5_SORT_KIND_BITVECTOR_SORTE"]], "cvc5sortkind::cvc5_sort_kind_boolean_sort (c++ enumerator)": [[5, "_CPPv4N12Cvc5SortKind27CVC5_SORT_KIND_BOOLEAN_SORTE"]], "cvc5sortkind::cvc5_sort_kind_datatype_sort (c++ enumerator)": [[5, "_CPPv4N12Cvc5SortKind28CVC5_SORT_KIND_DATATYPE_SORTE"]], "cvc5sortkind::cvc5_sort_kind_finite_field_sort (c++ enumerator)": [[5, "_CPPv4N12Cvc5SortKind32CVC5_SORT_KIND_FINITE_FIELD_SORTE"]], "cvc5sortkind::cvc5_sort_kind_floatingpoint_sort (c++ enumerator)": [[5, "_CPPv4N12Cvc5SortKind33CVC5_SORT_KIND_FLOATINGPOINT_SORTE"]], "cvc5sortkind::cvc5_sort_kind_function_sort (c++ enumerator)": [[5, "_CPPv4N12Cvc5SortKind28CVC5_SORT_KIND_FUNCTION_SORTE"]], "cvc5sortkind::cvc5_sort_kind_integer_sort (c++ enumerator)": [[5, "_CPPv4N12Cvc5SortKind27CVC5_SORT_KIND_INTEGER_SORTE"]], "cvc5sortkind::cvc5_sort_kind_internal_sort_kind (c++ enumerator)": [[5, "_CPPv4N12Cvc5SortKind33CVC5_SORT_KIND_INTERNAL_SORT_KINDE"]], "cvc5sortkind::cvc5_sort_kind_last_sort_kind (c++ enumerator)": [[5, "_CPPv4N12Cvc5SortKind29CVC5_SORT_KIND_LAST_SORT_KINDE"]], "cvc5sortkind::cvc5_sort_kind_nullable_sort (c++ enumerator)": [[5, "_CPPv4N12Cvc5SortKind28CVC5_SORT_KIND_NULLABLE_SORTE"]], "cvc5sortkind::cvc5_sort_kind_null_sort (c++ enumerator)": [[5, "_CPPv4N12Cvc5SortKind24CVC5_SORT_KIND_NULL_SORTE"]], "cvc5sortkind::cvc5_sort_kind_real_sort (c++ enumerator)": [[5, "_CPPv4N12Cvc5SortKind24CVC5_SORT_KIND_REAL_SORTE"]], "cvc5sortkind::cvc5_sort_kind_reglan_sort (c++ enumerator)": [[5, "_CPPv4N12Cvc5SortKind26CVC5_SORT_KIND_REGLAN_SORTE"]], "cvc5sortkind::cvc5_sort_kind_roundingmode_sort (c++ enumerator)": [[5, "_CPPv4N12Cvc5SortKind32CVC5_SORT_KIND_ROUNDINGMODE_SORTE"]], "cvc5sortkind::cvc5_sort_kind_sequence_sort (c++ enumerator)": [[5, "_CPPv4N12Cvc5SortKind28CVC5_SORT_KIND_SEQUENCE_SORTE"]], "cvc5sortkind::cvc5_sort_kind_set_sort (c++ enumerator)": [[5, "_CPPv4N12Cvc5SortKind23CVC5_SORT_KIND_SET_SORTE"]], "cvc5sortkind::cvc5_sort_kind_string_sort (c++ enumerator)": [[5, "_CPPv4N12Cvc5SortKind26CVC5_SORT_KIND_STRING_SORTE"]], "cvc5sortkind::cvc5_sort_kind_tuple_sort (c++ enumerator)": [[5, "_CPPv4N12Cvc5SortKind25CVC5_SORT_KIND_TUPLE_SORTE"]], "cvc5sortkind::cvc5_sort_kind_undefined_sort_kind (c++ enumerator)": [[5, "_CPPv4N12Cvc5SortKind34CVC5_SORT_KIND_UNDEFINED_SORT_KINDE"]], "cvc5sortkind::cvc5_sort_kind_uninterpreted_sort (c++ enumerator)": [[5, "_CPPv4N12Cvc5SortKind33CVC5_SORT_KIND_UNINTERPRETED_SORTE"]], "cvc5_sort_kind_hash (c++ function)": [[5, "_CPPv419cvc5_sort_kind_hash12Cvc5SortKind"]], "cvc5_sort_kind_to_string (c++ function)": [[5, "_CPPv424cvc5_sort_kind_to_string12Cvc5SortKind"]], "cvc5unknownexplanation (c++ enum)": [[6, "_CPPv422Cvc5UnknownExplanation"]], "cvc5unknownexplanation::cvc5_unknown_explanation_incomplete (c++ enumerator)": [[6, "_CPPv4N22Cvc5UnknownExplanation35CVC5_UNKNOWN_EXPLANATION_INCOMPLETEE"]], "cvc5unknownexplanation::cvc5_unknown_explanation_interrupted (c++ enumerator)": [[6, "_CPPv4N22Cvc5UnknownExplanation36CVC5_UNKNOWN_EXPLANATION_INTERRUPTEDE"]], "cvc5unknownexplanation::cvc5_unknown_explanation_last (c++ enumerator)": [[6, "_CPPv4N22Cvc5UnknownExplanation29CVC5_UNKNOWN_EXPLANATION_LASTE"]], "cvc5unknownexplanation::cvc5_unknown_explanation_memout (c++ enumerator)": [[6, "_CPPv4N22Cvc5UnknownExplanation31CVC5_UNKNOWN_EXPLANATION_MEMOUTE"]], "cvc5unknownexplanation::cvc5_unknown_explanation_other (c++ enumerator)": [[6, "_CPPv4N22Cvc5UnknownExplanation30CVC5_UNKNOWN_EXPLANATION_OTHERE"]], "cvc5unknownexplanation::cvc5_unknown_explanation_requires_check_again (c++ enumerator)": [[6, "_CPPv4N22Cvc5UnknownExplanation45CVC5_UNKNOWN_EXPLANATION_REQUIRES_CHECK_AGAINE"]], "cvc5unknownexplanation::cvc5_unknown_explanation_requires_full_check (c++ enumerator)": [[6, "_CPPv4N22Cvc5UnknownExplanation44CVC5_UNKNOWN_EXPLANATION_REQUIRES_FULL_CHECKE"]], "cvc5unknownexplanation::cvc5_unknown_explanation_resourceout (c++ enumerator)": [[6, "_CPPv4N22Cvc5UnknownExplanation36CVC5_UNKNOWN_EXPLANATION_RESOURCEOUTE"]], "cvc5unknownexplanation::cvc5_unknown_explanation_timeout (c++ enumerator)": [[6, "_CPPv4N22Cvc5UnknownExplanation32CVC5_UNKNOWN_EXPLANATION_TIMEOUTE"]], "cvc5unknownexplanation::cvc5_unknown_explanation_unknown_reason (c++ enumerator)": [[6, "_CPPv4N22Cvc5UnknownExplanation39CVC5_UNKNOWN_EXPLANATION_UNKNOWN_REASONE"]], "cvc5unknownexplanation::cvc5_unknown_explanation_unsupported (c++ enumerator)": [[6, "_CPPv4N22Cvc5UnknownExplanation36CVC5_UNKNOWN_EXPLANATION_UNSUPPORTEDE"]], "cvc5_unknown_explanation_to_string (c++ function)": [[6, "_CPPv434cvc5_unknown_explanation_to_string22Cvc5UnknownExplanation"]], "cvc5blockmodelsmode (c++ enum)": [[7, "_CPPv419Cvc5BlockModelsMode"]], "cvc5blockmodelsmode::cvc5_block_models_mode_last (c++ enumerator)": [[7, "_CPPv4N19Cvc5BlockModelsMode27CVC5_BLOCK_MODELS_MODE_LASTE"]], "cvc5blockmodelsmode::cvc5_block_models_mode_literals (c++ enumerator)": [[7, "_CPPv4N19Cvc5BlockModelsMode31CVC5_BLOCK_MODELS_MODE_LITERALSE"]], "cvc5blockmodelsmode::cvc5_block_models_mode_values (c++ enumerator)": [[7, "_CPPv4N19Cvc5BlockModelsMode29CVC5_BLOCK_MODELS_MODE_VALUESE"]], "cvc5findsynthtarget (c++ enum)": [[7, "_CPPv419Cvc5FindSynthTarget"]], "cvc5findsynthtarget::cvc5_find_synth_target_enum (c++ enumerator)": [[7, "_CPPv4N19Cvc5FindSynthTarget27CVC5_FIND_SYNTH_TARGET_ENUME"]], "cvc5findsynthtarget::cvc5_find_synth_target_last (c++ enumerator)": [[7, "_CPPv4N19Cvc5FindSynthTarget27CVC5_FIND_SYNTH_TARGET_LASTE"]], "cvc5findsynthtarget::cvc5_find_synth_target_query (c++ enumerator)": [[7, "_CPPv4N19Cvc5FindSynthTarget28CVC5_FIND_SYNTH_TARGET_QUERYE"]], "cvc5findsynthtarget::cvc5_find_synth_target_rewrite (c++ enumerator)": [[7, "_CPPv4N19Cvc5FindSynthTarget30CVC5_FIND_SYNTH_TARGET_REWRITEE"]], "cvc5findsynthtarget::cvc5_find_synth_target_rewrite_input (c++ enumerator)": [[7, "_CPPv4N19Cvc5FindSynthTarget36CVC5_FIND_SYNTH_TARGET_REWRITE_INPUTE"]], "cvc5findsynthtarget::cvc5_find_synth_target_rewrite_unsound (c++ enumerator)": [[7, "_CPPv4N19Cvc5FindSynthTarget38CVC5_FIND_SYNTH_TARGET_REWRITE_UNSOUNDE"]], "cvc5learnedlittype (c++ enum)": [[7, "_CPPv418Cvc5LearnedLitType"]], "cvc5learnedlittype::cvc5_learned_lit_type_constant_prop (c++ enumerator)": [[7, "_CPPv4N18Cvc5LearnedLitType35CVC5_LEARNED_LIT_TYPE_CONSTANT_PROPE"]], "cvc5learnedlittype::cvc5_learned_lit_type_input (c++ enumerator)": [[7, "_CPPv4N18Cvc5LearnedLitType27CVC5_LEARNED_LIT_TYPE_INPUTE"]], "cvc5learnedlittype::cvc5_learned_lit_type_internal (c++ enumerator)": [[7, "_CPPv4N18Cvc5LearnedLitType30CVC5_LEARNED_LIT_TYPE_INTERNALE"]], "cvc5learnedlittype::cvc5_learned_lit_type_last (c++ enumerator)": [[7, "_CPPv4N18Cvc5LearnedLitType26CVC5_LEARNED_LIT_TYPE_LASTE"]], "cvc5learnedlittype::cvc5_learned_lit_type_preprocess (c++ enumerator)": [[7, "_CPPv4N18Cvc5LearnedLitType32CVC5_LEARNED_LIT_TYPE_PREPROCESSE"]], "cvc5learnedlittype::cvc5_learned_lit_type_preprocess_solved (c++ enumerator)": [[7, "_CPPv4N18Cvc5LearnedLitType39CVC5_LEARNED_LIT_TYPE_PREPROCESS_SOLVEDE"]], "cvc5learnedlittype::cvc5_learned_lit_type_solvable (c++ enumerator)": [[7, "_CPPv4N18Cvc5LearnedLitType30CVC5_LEARNED_LIT_TYPE_SOLVABLEE"]], "cvc5learnedlittype::cvc5_learned_lit_type_unknown (c++ enumerator)": [[7, "_CPPv4N18Cvc5LearnedLitType29CVC5_LEARNED_LIT_TYPE_UNKNOWNE"]], "cvc5proofcomponent (c++ enum)": [[7, "_CPPv418Cvc5ProofComponent"]], "cvc5proofcomponent::cvc5_proof_component_full (c++ enumerator)": [[7, "_CPPv4N18Cvc5ProofComponent25CVC5_PROOF_COMPONENT_FULLE"]], "cvc5proofcomponent::cvc5_proof_component_last (c++ enumerator)": [[7, "_CPPv4N18Cvc5ProofComponent25CVC5_PROOF_COMPONENT_LASTE"]], "cvc5proofcomponent::cvc5_proof_component_preprocess (c++ enumerator)": [[7, "_CPPv4N18Cvc5ProofComponent31CVC5_PROOF_COMPONENT_PREPROCESSE"]], "cvc5proofcomponent::cvc5_proof_component_raw_preprocess (c++ enumerator)": [[7, "_CPPv4N18Cvc5ProofComponent35CVC5_PROOF_COMPONENT_RAW_PREPROCESSE"]], "cvc5proofcomponent::cvc5_proof_component_sat (c++ enumerator)": [[7, "_CPPv4N18Cvc5ProofComponent24CVC5_PROOF_COMPONENT_SATE"]], "cvc5proofcomponent::cvc5_proof_component_theory_lemmas (c++ enumerator)": [[7, "_CPPv4N18Cvc5ProofComponent34CVC5_PROOF_COMPONENT_THEORY_LEMMASE"]], "cvc5proofformat (c++ enum)": [[7, "_CPPv415Cvc5ProofFormat"]], "cvc5proofformat::cvc5_proof_format_alethe (c++ enumerator)": [[7, "_CPPv4N15Cvc5ProofFormat24CVC5_PROOF_FORMAT_ALETHEE"]], "cvc5proofformat::cvc5_proof_format_cpc (c++ enumerator)": [[7, "_CPPv4N15Cvc5ProofFormat21CVC5_PROOF_FORMAT_CPCE"]], "cvc5proofformat::cvc5_proof_format_default (c++ enumerator)": [[7, "_CPPv4N15Cvc5ProofFormat25CVC5_PROOF_FORMAT_DEFAULTE"]], "cvc5proofformat::cvc5_proof_format_dot (c++ enumerator)": [[7, "_CPPv4N15Cvc5ProofFormat21CVC5_PROOF_FORMAT_DOTE"]], "cvc5proofformat::cvc5_proof_format_last (c++ enumerator)": [[7, "_CPPv4N15Cvc5ProofFormat22CVC5_PROOF_FORMAT_LASTE"]], "cvc5proofformat::cvc5_proof_format_lfsc (c++ enumerator)": [[7, "_CPPv4N15Cvc5ProofFormat22CVC5_PROOF_FORMAT_LFSCE"]], "cvc5proofformat::cvc5_proof_format_none (c++ enumerator)": [[7, "_CPPv4N15Cvc5ProofFormat22CVC5_PROOF_FORMAT_NONEE"]], "cvc5_modes_block_models_mode_to_string (c++ function)": [[7, "_CPPv438cvc5_modes_block_models_mode_to_string19Cvc5BlockModelsMode"]], "cvc5_modes_find_synth_target_to_string (c++ function)": [[7, "_CPPv438cvc5_modes_find_synth_target_to_string19Cvc5FindSynthTarget"]], "cvc5_modes_learned_lit_type_to_string (c++ function)": [[7, "_CPPv437cvc5_modes_learned_lit_type_to_string18Cvc5LearnedLitType"]], "cvc5_modes_proof_component_to_string (c++ function)": [[7, "_CPPv436cvc5_modes_proof_component_to_string18Cvc5ProofComponent"]], "cvc5_modes_proof_format_to_string (c++ function)": [[7, "_CPPv433cvc5_modes_proof_format_to_string15Cvc5ProofFormat"]], "cvc5optioninfo (c++ struct)": [[9, "_CPPv414Cvc5OptionInfo"]], "cvc5optioninfo (c++ type)": [[9, "_CPPv414Cvc5OptionInfo"]], "cvc5optioninfo::boolinfo (c++ struct)": [[9, "_CPPv4N14Cvc5OptionInfo8BoolInfoE"]], "cvc5optioninfo::boolinfo::cur (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo8BoolInfo3curE"]], "cvc5optioninfo::boolinfo::dflt (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo8BoolInfo4dfltE"]], "cvc5optioninfo::doubleinfo (c++ struct)": [[9, "_CPPv4N14Cvc5OptionInfo10DoubleInfoE"]], "cvc5optioninfo::doubleinfo::cur (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo10DoubleInfo3curE"]], "cvc5optioninfo::doubleinfo::dflt (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo10DoubleInfo4dfltE"]], "cvc5optioninfo::doubleinfo::has_max (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo10DoubleInfo7has_maxE"]], "cvc5optioninfo::doubleinfo::has_min (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo10DoubleInfo7has_minE"]], "cvc5optioninfo::doubleinfo::max (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo10DoubleInfo3maxE"]], "cvc5optioninfo::doubleinfo::min (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo10DoubleInfo3minE"]], "cvc5optioninfo::intinfo (c++ struct)": [[9, "_CPPv4N14Cvc5OptionInfo7IntInfoE"]], "cvc5optioninfo::intinfo::cur (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo7IntInfo3curE"]], "cvc5optioninfo::intinfo::dflt (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo7IntInfo4dfltE"]], "cvc5optioninfo::intinfo::has_max (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo7IntInfo7has_maxE"]], "cvc5optioninfo::intinfo::has_min (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo7IntInfo7has_minE"]], "cvc5optioninfo::intinfo::max (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo7IntInfo3maxE"]], "cvc5optioninfo::intinfo::min (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo7IntInfo3minE"]], "cvc5optioninfo::modeinfo (c++ struct)": [[9, "_CPPv4N14Cvc5OptionInfo8ModeInfoE"]], "cvc5optioninfo::modeinfo::cur (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo8ModeInfo3curE"]], "cvc5optioninfo::modeinfo::dflt (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo8ModeInfo4dfltE"]], "cvc5optioninfo::modeinfo::modes (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo8ModeInfo5modesE"]], "cvc5optioninfo::modeinfo::num_modes (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo8ModeInfo9num_modesE"]], "cvc5optioninfo::stringinfo (c++ struct)": [[9, "_CPPv4N14Cvc5OptionInfo10StringInfoE"]], "cvc5optioninfo::stringinfo::cur (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo10StringInfo3curE"]], "cvc5optioninfo::stringinfo::dflt (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo10StringInfo4dfltE"]], "cvc5optioninfo::uintinfo (c++ struct)": [[9, "_CPPv4N14Cvc5OptionInfo8UIntInfoE"]], "cvc5optioninfo::uintinfo::cur (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo8UIntInfo3curE"]], "cvc5optioninfo::uintinfo::dflt (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo8UIntInfo4dfltE"]], "cvc5optioninfo::uintinfo::has_max (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo8UIntInfo7has_maxE"]], "cvc5optioninfo::uintinfo::has_min (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo8UIntInfo7has_minE"]], "cvc5optioninfo::uintinfo::max (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo8UIntInfo3maxE"]], "cvc5optioninfo::uintinfo::min (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo8UIntInfo3minE"]], "cvc5optioninfo::aliases (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo7aliasesE"]], "cvc5optioninfo::d_cpp_info (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo10d_cpp_infoE"]], "cvc5optioninfo::is_expert (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo9is_expertE"]], "cvc5optioninfo::is_regular (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo10is_regularE"]], "cvc5optioninfo::is_set_by_user (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo14is_set_by_userE"]], "cvc5optioninfo::kind (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo4kindE"]], "cvc5optioninfo::name (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo4nameE"]], "cvc5optioninfo::num_aliases (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo11num_aliasesE"]], "cvc5optioninfokind (c++ enum)": [[9, "_CPPv418Cvc5OptionInfoKind"]], "cvc5optioninfokind::cvc5_option_info_bool (c++ enumerator)": [[9, "_CPPv4N18Cvc5OptionInfoKind21CVC5_OPTION_INFO_BOOLE"]], "cvc5optioninfokind::cvc5_option_info_double (c++ enumerator)": [[9, "_CPPv4N18Cvc5OptionInfoKind23CVC5_OPTION_INFO_DOUBLEE"]], "cvc5optioninfokind::cvc5_option_info_int64 (c++ enumerator)": [[9, "_CPPv4N18Cvc5OptionInfoKind22CVC5_OPTION_INFO_INT64E"]], "cvc5optioninfokind::cvc5_option_info_modes (c++ enumerator)": [[9, "_CPPv4N18Cvc5OptionInfoKind22CVC5_OPTION_INFO_MODESE"]], "cvc5optioninfokind::cvc5_option_info_str (c++ enumerator)": [[9, "_CPPv4N18Cvc5OptionInfoKind20CVC5_OPTION_INFO_STRE"]], "cvc5optioninfokind::cvc5_option_info_uint64 (c++ enumerator)": [[9, "_CPPv4N18Cvc5OptionInfoKind23CVC5_OPTION_INFO_UINT64E"]], "cvc5optioninfokind::cvc5_option_info_void (c++ enumerator)": [[9, "_CPPv4N18Cvc5OptionInfoKind21CVC5_OPTION_INFO_VOIDE"]], "cvc5plugin (c++ struct)": [[10, "_CPPv410Cvc5Plugin"]], "cvc5plugin (c++ type)": [[10, "_CPPv410Cvc5Plugin"]], "cvc5plugin::check (c++ member)": [[10, "_CPPv4N10Cvc5Plugin5checkE"]], "cvc5plugin::d_check_state (c++ member)": [[10, "_CPPv4N10Cvc5Plugin13d_check_stateE"]], "cvc5plugin::d_notify_sat_clause_state (c++ member)": [[10, "_CPPv4N10Cvc5Plugin25d_notify_sat_clause_stateE"]], "cvc5plugin::d_notify_theory_lemma_state (c++ member)": [[10, "_CPPv4N10Cvc5Plugin27d_notify_theory_lemma_stateE"]], "cvc5plugin::get_name (c++ member)": [[10, "_CPPv4N10Cvc5Plugin8get_nameE"]], "cvc5plugin::notify_sat_clause (c++ member)": [[10, "_CPPv4N10Cvc5Plugin17notify_sat_clauseE"]], "cvc5plugin::notify_theory_lemma (c++ member)": [[10, "_CPPv4N10Cvc5Plugin19notify_theory_lemmaE"]], "cvc5 (c++ type)": [[11, "_CPPv44Cvc5"]], "cvc5_add_plugin (c++ function)": [[11, "_CPPv415cvc5_add_pluginP4Cvc5P10Cvc5Plugin"]], "cvc5_add_sygus_assume (c++ function)": [[11, "_CPPv421cvc5_add_sygus_assumeP4Cvc58Cvc5Term"]], "cvc5_add_sygus_constraint (c++ function)": [[11, "_CPPv425cvc5_add_sygus_constraintP4Cvc58Cvc5Term"]], "cvc5_add_sygus_inv_constraint (c++ function)": [[11, "_CPPv429cvc5_add_sygus_inv_constraintP4Cvc58Cvc5Term8Cvc5Term8Cvc5Term8Cvc5Term"]], "cvc5_assert_formula (c++ function)": [[11, "_CPPv419cvc5_assert_formulaP4Cvc58Cvc5Term"]], "cvc5_block_model (c++ function)": [[11, "_CPPv416cvc5_block_modelP4Cvc519Cvc5BlockModelsMode"]], "cvc5_block_model_values (c++ function)": [[11, "_CPPv423cvc5_block_model_valuesP4Cvc56size_tA_K8Cvc5Term"]], "cvc5_check_sat (c++ function)": [[11, "_CPPv414cvc5_check_satP4Cvc5"]], "cvc5_check_sat_assuming (c++ function)": [[11, "_CPPv423cvc5_check_sat_assumingP4Cvc56size_tA_K8Cvc5Term"]], "cvc5_check_synth (c++ function)": [[11, "_CPPv416cvc5_check_synthP4Cvc5"]], "cvc5_check_synth_next (c++ function)": [[11, "_CPPv421cvc5_check_synth_nextP4Cvc5"]], "cvc5_close_output (c++ function)": [[11, "_CPPv417cvc5_close_outputP4Cvc5PKc"]], "cvc5_declare_dt (c++ function)": [[11, "_CPPv415cvc5_declare_dtP4Cvc5PKc6size_tA_K27Cvc5DatatypeConstructorDecl"]], "cvc5_declare_fun (c++ function)": [[11, "_CPPv416cvc5_declare_funP4Cvc5PKc6size_tA_K8Cvc5Sort8Cvc5Sortb"]], "cvc5_declare_oracle_fun (c++ function)": [[11, "_CPPv423cvc5_declare_oracle_funP4Cvc5PKc6size_tA_K8Cvc5Sort8Cvc5SortPvPF8Cvc5Term6size_tPK8Cvc5TermPvE"]], "cvc5_declare_pool (c++ function)": [[11, "_CPPv417cvc5_declare_poolP4Cvc5PKc8Cvc5Sort6size_tA_K8Cvc5Term"]], "cvc5_declare_sep_heap (c++ function)": [[11, "_CPPv421cvc5_declare_sep_heapP4Cvc58Cvc5Sort8Cvc5Sort"]], "cvc5_declare_sort (c++ function)": [[11, "_CPPv417cvc5_declare_sortP4Cvc5PKc8uint32_tb"]], "cvc5_declare_sygus_var (c++ function)": [[11, "_CPPv422cvc5_declare_sygus_varP4Cvc5PKc8Cvc5Sort"]], "cvc5_define_fun (c++ function)": [[11, "_CPPv415cvc5_define_funP4Cvc5PKc6size_tA_K8Cvc5TermK8Cvc5SortK8Cvc5Termb"]], "cvc5_define_fun_rec (c++ function)": [[11, "_CPPv419cvc5_define_fun_recP4Cvc5PKc6size_tA_K8Cvc5TermK8Cvc5SortK8Cvc5Termb"]], "cvc5_define_fun_rec_from_const (c++ function)": [[11, "_CPPv430cvc5_define_fun_rec_from_constP4Cvc58Cvc5Term6size_tA_K8Cvc5TermK8Cvc5Termb"]], "cvc5_define_funs_rec (c++ function)": [[11, "_CPPv420cvc5_define_funs_recP4Cvc56size_tA_K8Cvc5TermA_6size_tA_PK8Cvc5TermA_K8Cvc5Termb"]], "cvc5_delete (c++ function)": [[11, "_CPPv411cvc5_deleteP4Cvc5"]], "cvc5_find_synth (c++ function)": [[11, "_CPPv415cvc5_find_synthP4Cvc519Cvc5FindSynthTarget"]], "cvc5_find_synth_next (c++ function)": [[11, "_CPPv420cvc5_find_synth_nextP4Cvc5"]], "cvc5_find_synth_with_grammar (c++ function)": [[11, "_CPPv428cvc5_find_synth_with_grammarP4Cvc519Cvc5FindSynthTarget11Cvc5Grammar"]], "cvc5_get_abduct (c++ function)": [[11, "_CPPv415cvc5_get_abductP4Cvc58Cvc5Term"]], "cvc5_get_abduct_next (c++ function)": [[11, "_CPPv420cvc5_get_abduct_nextP4Cvc5"]], "cvc5_get_abduct_with_grammar (c++ function)": [[11, "_CPPv428cvc5_get_abduct_with_grammarP4Cvc58Cvc5Term11Cvc5Grammar"]], "cvc5_get_assertions (c++ function)": [[11, "_CPPv419cvc5_get_assertionsP4Cvc5P6size_t"]], "cvc5_get_difficulty (c++ function)": [[11, "_CPPv419cvc5_get_difficultyP4Cvc5P6size_tA_P8Cvc5TermA_P8Cvc5Term"]], "cvc5_get_info (c++ function)": [[11, "_CPPv413cvc5_get_infoP4Cvc5PKc"]], "cvc5_get_instantiations (c++ function)": [[11, "_CPPv423cvc5_get_instantiationsP4Cvc5"]], "cvc5_get_interpolant (c++ function)": [[11, "_CPPv420cvc5_get_interpolantP4Cvc58Cvc5Term"]], "cvc5_get_interpolant_next (c++ function)": [[11, "_CPPv425cvc5_get_interpolant_nextP4Cvc5"]], "cvc5_get_interpolant_with_grammar (c++ function)": [[11, "_CPPv433cvc5_get_interpolant_with_grammarP4Cvc58Cvc5Term11Cvc5Grammar"]], "cvc5_get_learned_literals (c++ function)": [[11, "_CPPv425cvc5_get_learned_literalsP4Cvc518Cvc5LearnedLitTypeP6size_t"]], "cvc5_get_logic (c++ function)": [[11, "_CPPv414cvc5_get_logicP4Cvc5"]], "cvc5_get_model (c++ function)": [[11, "_CPPv414cvc5_get_modelP4Cvc56size_tA_K8Cvc5Sort6size_tA_K8Cvc5Term"]], "cvc5_get_model_domain_elements (c++ function)": [[11, "_CPPv430cvc5_get_model_domain_elementsP4Cvc58Cvc5SortP6size_t"]], "cvc5_get_option (c++ function)": [[11, "_CPPv415cvc5_get_optionP4Cvc5PKc"]], "cvc5_get_option_info (c++ function)": [[11, "_CPPv420cvc5_get_option_infoP4Cvc5PKcP14Cvc5OptionInfo"]], "cvc5_get_option_names (c++ function)": [[11, "_CPPv421cvc5_get_option_namesP4Cvc5P6size_t"]], "cvc5_get_output (c++ function)": [[11, "_CPPv415cvc5_get_outputP4Cvc5PKcPKc"]], "cvc5_get_proof (c++ function)": [[11, "_CPPv414cvc5_get_proofP4Cvc518Cvc5ProofComponentP6size_t"]], "cvc5_get_quantifier_elimination (c++ function)": [[11, "_CPPv431cvc5_get_quantifier_eliminationP4Cvc58Cvc5Term"]], "cvc5_get_quantifier_elimination_disjunct (c++ function)": [[11, "_CPPv440cvc5_get_quantifier_elimination_disjunctP4Cvc58Cvc5Term"]], "cvc5_get_statistics (c++ function)": [[11, "_CPPv419cvc5_get_statisticsP4Cvc5"]], "cvc5_get_sygus_assumptions (c++ function)": [[11, "_CPPv426cvc5_get_sygus_assumptionsP4Cvc5P6size_t"]], "cvc5_get_sygus_constraints (c++ function)": [[11, "_CPPv426cvc5_get_sygus_constraintsP4Cvc5P6size_t"]], "cvc5_get_synth_solution (c++ function)": [[11, "_CPPv423cvc5_get_synth_solutionP4Cvc58Cvc5Term"]], "cvc5_get_synth_solutions (c++ function)": [[11, "_CPPv424cvc5_get_synth_solutionsP4Cvc56size_tA_K8Cvc5Term"]], "cvc5_get_timeout_core (c++ function)": [[11, "_CPPv421cvc5_get_timeout_coreP4Cvc5P10Cvc5ResultP6size_t"]], "cvc5_get_timeout_core_assuming (c++ function)": [[11, "_CPPv430cvc5_get_timeout_core_assumingP4Cvc56size_tA_K8Cvc5TermP10Cvc5ResultP6size_t"]], "cvc5_get_tm (c++ function)": [[11, "_CPPv411cvc5_get_tmP4Cvc5"]], "cvc5_get_unsat_assumptions (c++ function)": [[11, "_CPPv426cvc5_get_unsat_assumptionsP4Cvc5P6size_t"]], "cvc5_get_unsat_core (c++ function)": [[11, "_CPPv419cvc5_get_unsat_coreP4Cvc5P6size_t"]], "cvc5_get_unsat_core_lemmas (c++ function)": [[11, "_CPPv426cvc5_get_unsat_core_lemmasP4Cvc5P6size_t"]], "cvc5_get_value (c++ function)": [[11, "_CPPv414cvc5_get_valueP4Cvc58Cvc5Term"]], "cvc5_get_value_sep_heap (c++ function)": [[11, "_CPPv423cvc5_get_value_sep_heapP4Cvc5"]], "cvc5_get_value_sep_nil (c++ function)": [[11, "_CPPv422cvc5_get_value_sep_nilP4Cvc5"]], "cvc5_get_values (c++ function)": [[11, "_CPPv415cvc5_get_valuesP4Cvc56size_tA_K8Cvc5TermP6size_t"]], "cvc5_get_version (c++ function)": [[11, "_CPPv416cvc5_get_versionP4Cvc5"]], "cvc5_is_logic_set (c++ function)": [[11, "_CPPv417cvc5_is_logic_setP4Cvc5"]], "cvc5_is_model_core_symbol (c++ function)": [[11, "_CPPv425cvc5_is_model_core_symbolP4Cvc58Cvc5Term"]], "cvc5_is_output_on (c++ function)": [[11, "_CPPv417cvc5_is_output_onP4Cvc5PKc"]], "cvc5_mk_grammar (c++ function)": [[11, "_CPPv415cvc5_mk_grammarP4Cvc56size_tA_K8Cvc5Term6size_tA_K8Cvc5Term"]], "cvc5_new (c++ function)": [[11, "_CPPv48cvc5_newP15Cvc5TermManager"]], "cvc5_pop (c++ function)": [[11, "_CPPv48cvc5_popP4Cvc58uint32_t"]], "cvc5_print_stats_safe (c++ function)": [[11, "_CPPv421cvc5_print_stats_safeP4Cvc5i"]], "cvc5_proof_to_string (c++ function)": [[11, "_CPPv420cvc5_proof_to_stringP4Cvc59Cvc5Proof15Cvc5ProofFormat6size_tA_K8Cvc5TermA_PKc"]], "cvc5_push (c++ function)": [[11, "_CPPv49cvc5_pushP4Cvc58uint32_t"]], "cvc5_reset_assertions (c++ function)": [[11, "_CPPv421cvc5_reset_assertionsP4Cvc5"]], "cvc5_set_info (c++ function)": [[11, "_CPPv413cvc5_set_infoP4Cvc5PKcPKc"]], "cvc5_set_logic (c++ function)": [[11, "_CPPv414cvc5_set_logicP4Cvc5PKc"]], "cvc5_set_option (c++ function)": [[11, "_CPPv415cvc5_set_optionP4Cvc5PKcPKc"]], "cvc5_simplify (c++ function)": [[11, "_CPPv413cvc5_simplifyP4Cvc58Cvc5Termb"]], "cvc5_synth_fun (c++ function)": [[11, "_CPPv414cvc5_synth_funP4Cvc5PKc6size_tA_K8Cvc5Term8Cvc5Sort"]], "cvc5_synth_fun_with_grammar (c++ function)": [[11, "_CPPv427cvc5_synth_fun_with_grammarP4Cvc5PKc6size_tA_K8Cvc5Term8Cvc5Sort11Cvc5Grammar"]], "cvc5command (c++ type)": [[12, "_CPPv411Cvc5Command"]], "cvc5_cmd_get_name (c++ function)": [[12, "_CPPv417cvc5_cmd_get_nameK11Cvc5Command"]], "cvc5_cmd_invoke (c++ function)": [[12, "_CPPv415cvc5_cmd_invoke11Cvc5CommandP4Cvc5P17Cvc5SymbolManager"]], "cvc5_cmd_to_string (c++ function)": [[12, "_CPPv418cvc5_cmd_to_stringK11Cvc5Command"]], "cvc5datatype (c++ type)": [[13, "_CPPv412Cvc5Datatype"]], "cvc5_dt_copy (c++ function)": [[13, "_CPPv412cvc5_dt_copy12Cvc5Datatype"]], "cvc5_dt_get_constructor (c++ function)": [[13, "_CPPv423cvc5_dt_get_constructor12Cvc5Datatype6size_t"]], "cvc5_dt_get_constructor_by_name (c++ function)": [[13, "_CPPv431cvc5_dt_get_constructor_by_name12Cvc5DatatypePKc"]], "cvc5_dt_get_name (c++ function)": [[13, "_CPPv416cvc5_dt_get_name12Cvc5Datatype"]], "cvc5_dt_get_num_constructors (c++ function)": [[13, "_CPPv428cvc5_dt_get_num_constructors12Cvc5Datatype"]], "cvc5_dt_get_parameters (c++ function)": [[13, "_CPPv422cvc5_dt_get_parameters12Cvc5DatatypeP6size_t"]], "cvc5_dt_get_selector (c++ function)": [[13, "_CPPv420cvc5_dt_get_selector12Cvc5DatatypePKc"]], "cvc5_dt_hash (c++ function)": [[13, "_CPPv412cvc5_dt_hash12Cvc5Datatype"]], "cvc5_dt_is_codatatype (c++ function)": [[13, "_CPPv421cvc5_dt_is_codatatype12Cvc5Datatype"]], "cvc5_dt_is_equal (c++ function)": [[13, "_CPPv416cvc5_dt_is_equal12Cvc5Datatype12Cvc5Datatype"]], "cvc5_dt_is_finite (c++ function)": [[13, "_CPPv417cvc5_dt_is_finite12Cvc5Datatype"]], "cvc5_dt_is_parametric (c++ function)": [[13, "_CPPv421cvc5_dt_is_parametric12Cvc5Datatype"]], "cvc5_dt_is_record (c++ function)": [[13, "_CPPv417cvc5_dt_is_record12Cvc5Datatype"]], "cvc5_dt_is_tuple (c++ function)": [[13, "_CPPv416cvc5_dt_is_tuple12Cvc5Datatype"]], "cvc5_dt_is_well_founded (c++ function)": [[13, "_CPPv423cvc5_dt_is_well_founded12Cvc5Datatype"]], "cvc5_dt_release (c++ function)": [[13, "_CPPv415cvc5_dt_release12Cvc5Datatype"]], "cvc5_dt_to_string (c++ function)": [[13, "_CPPv417cvc5_dt_to_string12Cvc5Datatype"]], "cvc5datatypeconstructor (c++ type)": [[14, "_CPPv423Cvc5DatatypeConstructor"]], "cvc5_dt_cons_copy (c++ function)": [[14, "_CPPv417cvc5_dt_cons_copy23Cvc5DatatypeConstructor"]], "cvc5_dt_cons_get_instantiated_term (c++ function)": [[14, "_CPPv434cvc5_dt_cons_get_instantiated_term23Cvc5DatatypeConstructor8Cvc5Sort"]], "cvc5_dt_cons_get_name (c++ function)": [[14, "_CPPv421cvc5_dt_cons_get_name23Cvc5DatatypeConstructor"]], "cvc5_dt_cons_get_num_selectors (c++ function)": [[14, "_CPPv430cvc5_dt_cons_get_num_selectors23Cvc5DatatypeConstructor"]], "cvc5_dt_cons_get_selector (c++ function)": [[14, "_CPPv425cvc5_dt_cons_get_selector23Cvc5DatatypeConstructor6size_t"]], "cvc5_dt_cons_get_selector_by_name (c++ function)": [[14, "_CPPv433cvc5_dt_cons_get_selector_by_name23Cvc5DatatypeConstructorPKc"]], "cvc5_dt_cons_get_term (c++ function)": [[14, "_CPPv421cvc5_dt_cons_get_term23Cvc5DatatypeConstructor"]], "cvc5_dt_cons_get_tester_term (c++ function)": [[14, "_CPPv428cvc5_dt_cons_get_tester_term23Cvc5DatatypeConstructor"]], "cvc5_dt_cons_hash (c++ function)": [[14, "_CPPv417cvc5_dt_cons_hash23Cvc5DatatypeConstructor"]], "cvc5_dt_cons_is_equal (c++ function)": [[14, "_CPPv421cvc5_dt_cons_is_equal23Cvc5DatatypeConstructor23Cvc5DatatypeConstructor"]], "cvc5_dt_cons_release (c++ function)": [[14, "_CPPv420cvc5_dt_cons_release23Cvc5DatatypeConstructor"]], "cvc5_dt_cons_to_string (c++ function)": [[14, "_CPPv422cvc5_dt_cons_to_string23Cvc5DatatypeConstructor"]], "cvc5datatypeconstructordecl (c++ type)": [[15, "_CPPv427Cvc5DatatypeConstructorDecl"]], "cvc5datatypedecl (c++ type)": [[16, "_CPPv416Cvc5DatatypeDecl"]], "cvc5_dt_decl_add_constructor (c++ function)": [[16, "_CPPv428cvc5_dt_decl_add_constructor16Cvc5DatatypeDecl27Cvc5DatatypeConstructorDecl"]], "cvc5_dt_decl_copy (c++ function)": [[16, "_CPPv417cvc5_dt_decl_copy16Cvc5DatatypeDecl"]], "cvc5_dt_decl_get_name (c++ function)": [[16, "_CPPv421cvc5_dt_decl_get_name16Cvc5DatatypeDecl"]], "cvc5_dt_decl_get_num_constructors (c++ function)": [[16, "_CPPv433cvc5_dt_decl_get_num_constructors16Cvc5DatatypeDecl"]], "cvc5_dt_decl_hash (c++ function)": [[16, "_CPPv417cvc5_dt_decl_hash16Cvc5DatatypeDecl"]], "cvc5_dt_decl_is_equal (c++ function)": [[16, "_CPPv421cvc5_dt_decl_is_equal16Cvc5DatatypeDecl16Cvc5DatatypeDecl"]], "cvc5_dt_decl_is_parametric (c++ function)": [[16, "_CPPv426cvc5_dt_decl_is_parametric16Cvc5DatatypeDecl"]], "cvc5_dt_decl_is_resolved (c++ function)": [[16, "_CPPv424cvc5_dt_decl_is_resolved16Cvc5DatatypeDecl"]], "cvc5_dt_decl_release (c++ function)": [[16, "_CPPv420cvc5_dt_decl_release16Cvc5DatatypeDecl"]], "cvc5_dt_decl_to_string (c++ function)": [[16, "_CPPv422cvc5_dt_decl_to_string16Cvc5DatatypeDecl"]], "cvc5datatypeselector (c++ type)": [[17, "_CPPv420Cvc5DatatypeSelector"]], "cvc5_dt_sel_copy (c++ function)": [[17, "_CPPv416cvc5_dt_sel_copy20Cvc5DatatypeSelector"]], "cvc5_dt_sel_get_codomain_sort (c++ function)": [[17, "_CPPv429cvc5_dt_sel_get_codomain_sort20Cvc5DatatypeSelector"]], "cvc5_dt_sel_get_name (c++ function)": [[17, "_CPPv420cvc5_dt_sel_get_name20Cvc5DatatypeSelector"]], "cvc5_dt_sel_get_term (c++ function)": [[17, "_CPPv420cvc5_dt_sel_get_term20Cvc5DatatypeSelector"]], "cvc5_dt_sel_get_updater_term (c++ function)": [[17, "_CPPv428cvc5_dt_sel_get_updater_term20Cvc5DatatypeSelector"]], "cvc5_dt_sel_hash (c++ function)": [[17, "_CPPv416cvc5_dt_sel_hash20Cvc5DatatypeSelector"]], "cvc5_dt_sel_is_equal (c++ function)": [[17, "_CPPv420cvc5_dt_sel_is_equal20Cvc5DatatypeSelector20Cvc5DatatypeSelector"]], "cvc5_dt_sel_release (c++ function)": [[17, "_CPPv419cvc5_dt_sel_release20Cvc5DatatypeSelector"]], "cvc5_dt_sel_to_string (c++ function)": [[17, "_CPPv421cvc5_dt_sel_to_string20Cvc5DatatypeSelector"]], "cvc5grammar (c++ type)": [[18, "_CPPv411Cvc5Grammar"]], "cvc5_grammar_add_any_constant (c++ function)": [[18, "_CPPv429cvc5_grammar_add_any_constant11Cvc5Grammar8Cvc5Term"]], "cvc5_grammar_add_any_variable (c++ function)": [[18, "_CPPv429cvc5_grammar_add_any_variable11Cvc5Grammar8Cvc5Term"]], "cvc5_grammar_add_rule (c++ function)": [[18, "_CPPv421cvc5_grammar_add_rule11Cvc5Grammar8Cvc5Term8Cvc5Term"]], "cvc5_grammar_add_rules (c++ function)": [[18, "_CPPv422cvc5_grammar_add_rules11Cvc5Grammar8Cvc5Term6size_tA_K8Cvc5Term"]], "cvc5_grammar_copy (c++ function)": [[18, "_CPPv417cvc5_grammar_copy11Cvc5Grammar"]], "cvc5_grammar_hash (c++ function)": [[18, "_CPPv417cvc5_grammar_hash11Cvc5Grammar"]], "cvc5_grammar_is_disequal (c++ function)": [[18, "_CPPv424cvc5_grammar_is_disequal11Cvc5Grammar11Cvc5Grammar"]], "cvc5_grammar_is_equal (c++ function)": [[18, "_CPPv421cvc5_grammar_is_equal11Cvc5Grammar11Cvc5Grammar"]], "cvc5_grammar_release (c++ function)": [[18, "_CPPv420cvc5_grammar_release11Cvc5Grammar"]], "cvc5_grammar_to_string (c++ function)": [[18, "_CPPv422cvc5_grammar_to_stringK11Cvc5Grammar"]], "cvc5inputparser (c++ type)": [[19, "_CPPv415Cvc5InputParser"]], "cvc5op (c++ type)": [[20, "_CPPv46Cvc5Op"]], "cvc5_op_copy (c++ function)": [[20, "_CPPv412cvc5_op_copy6Cvc5Op"]], "cvc5_op_get_index (c++ function)": [[20, "_CPPv417cvc5_op_get_index6Cvc5Op6size_t"]], "cvc5_op_get_kind (c++ function)": [[20, "_CPPv416cvc5_op_get_kind6Cvc5Op"]], "cvc5_op_get_num_indices (c++ function)": [[20, "_CPPv423cvc5_op_get_num_indices6Cvc5Op"]], "cvc5_op_hash (c++ function)": [[20, "_CPPv412cvc5_op_hash6Cvc5Op"]], "cvc5_op_is_disequal (c++ function)": [[20, "_CPPv419cvc5_op_is_disequal6Cvc5Op6Cvc5Op"]], "cvc5_op_is_equal (c++ function)": [[20, "_CPPv416cvc5_op_is_equal6Cvc5Op6Cvc5Op"]], "cvc5_op_is_indexed (c++ function)": [[20, "_CPPv418cvc5_op_is_indexed6Cvc5Op"]], "cvc5_op_release (c++ function)": [[20, "_CPPv415cvc5_op_release6Cvc5Op"]], "cvc5_op_to_string (c++ function)": [[20, "_CPPv417cvc5_op_to_string6Cvc5Op"]], "cvc5proof (c++ type)": [[21, "_CPPv49Cvc5Proof"]], "cvc5_proof_copy (c++ function)": [[21, "_CPPv415cvc5_proof_copy9Cvc5Proof"]], "cvc5_proof_get_arguments (c++ function)": [[21, "_CPPv424cvc5_proof_get_arguments9Cvc5ProofP6size_t"]], "cvc5_proof_get_children (c++ function)": [[21, "_CPPv423cvc5_proof_get_children9Cvc5ProofP6size_t"]], "cvc5_proof_get_result (c++ function)": [[21, "_CPPv421cvc5_proof_get_result9Cvc5Proof"]], "cvc5_proof_get_rewrite_rule (c++ function)": [[21, "_CPPv427cvc5_proof_get_rewrite_rule9Cvc5Proof"]], "cvc5_proof_get_rule (c++ function)": [[21, "_CPPv419cvc5_proof_get_rule9Cvc5Proof"]], "cvc5_proof_hash (c++ function)": [[21, "_CPPv415cvc5_proof_hash9Cvc5Proof"]], "cvc5_proof_is_disequal (c++ function)": [[21, "_CPPv422cvc5_proof_is_disequal9Cvc5Proof9Cvc5Proof"]], "cvc5_proof_is_equal (c++ function)": [[21, "_CPPv419cvc5_proof_is_equal9Cvc5Proof9Cvc5Proof"]], "cvc5_proof_release (c++ function)": [[21, "_CPPv418cvc5_proof_release9Cvc5Proof"]], "cvc5result (c++ type)": [[22, "_CPPv410Cvc5Result"]], "cvc5_result_copy (c++ function)": [[22, "_CPPv416cvc5_result_copy10Cvc5Result"]], "cvc5_result_get_unknown_explanation (c++ function)": [[22, "_CPPv435cvc5_result_get_unknown_explanationK10Cvc5Result"]], "cvc5_result_hash (c++ function)": [[22, "_CPPv416cvc5_result_hash10Cvc5Result"]], "cvc5_result_is_disequal (c++ function)": [[22, "_CPPv423cvc5_result_is_disequalK10Cvc5ResultK10Cvc5Result"]], "cvc5_result_is_equal (c++ function)": [[22, "_CPPv420cvc5_result_is_equalK10Cvc5ResultK10Cvc5Result"]], "cvc5_result_is_null (c++ function)": [[22, "_CPPv419cvc5_result_is_nullK10Cvc5Result"]], "cvc5_result_is_sat (c++ function)": [[22, "_CPPv418cvc5_result_is_satK10Cvc5Result"]], "cvc5_result_is_unknown (c++ function)": [[22, "_CPPv422cvc5_result_is_unknownK10Cvc5Result"]], "cvc5_result_is_unsat (c++ function)": [[22, "_CPPv420cvc5_result_is_unsatK10Cvc5Result"]], "cvc5_result_release (c++ function)": [[22, "_CPPv419cvc5_result_release10Cvc5Result"]], "cvc5_result_to_string (c++ function)": [[22, "_CPPv421cvc5_result_to_stringK10Cvc5Result"]], "cvc5sort (c++ type)": [[23, "_CPPv48Cvc5Sort"]], "cvc5_sort_abstract_get_kind (c++ function)": [[23, "_CPPv427cvc5_sort_abstract_get_kind8Cvc5Sort"]], "cvc5_sort_array_get_element_sort (c++ function)": [[23, "_CPPv432cvc5_sort_array_get_element_sort8Cvc5Sort"]], "cvc5_sort_array_get_index_sort (c++ function)": [[23, "_CPPv430cvc5_sort_array_get_index_sort8Cvc5Sort"]], "cvc5_sort_bag_get_element_sort (c++ function)": [[23, "_CPPv430cvc5_sort_bag_get_element_sort8Cvc5Sort"]], "cvc5_sort_bv_get_size (c++ function)": [[23, "_CPPv421cvc5_sort_bv_get_size8Cvc5Sort"]], "cvc5_sort_compare (c++ function)": [[23, "_CPPv417cvc5_sort_compare8Cvc5Sort8Cvc5Sort"]], "cvc5_sort_copy (c++ function)": [[23, "_CPPv414cvc5_sort_copy8Cvc5Sort"]], "cvc5_sort_dt_constructor_get_arity (c++ function)": [[23, "_CPPv434cvc5_sort_dt_constructor_get_arity8Cvc5Sort"]], "cvc5_sort_dt_constructor_get_codomain (c++ function)": [[23, "_CPPv437cvc5_sort_dt_constructor_get_codomain8Cvc5Sort"]], "cvc5_sort_dt_constructor_get_domain (c++ function)": [[23, "_CPPv435cvc5_sort_dt_constructor_get_domain8Cvc5SortP6size_t"]], "cvc5_sort_dt_get_arity (c++ function)": [[23, "_CPPv422cvc5_sort_dt_get_arity8Cvc5Sort"]], "cvc5_sort_dt_selector_get_codomain (c++ function)": [[23, "_CPPv434cvc5_sort_dt_selector_get_codomain8Cvc5Sort"]], "cvc5_sort_dt_selector_get_domain (c++ function)": [[23, "_CPPv432cvc5_sort_dt_selector_get_domain8Cvc5Sort"]], "cvc5_sort_dt_tester_get_codomain (c++ function)": [[23, "_CPPv432cvc5_sort_dt_tester_get_codomain8Cvc5Sort"]], "cvc5_sort_dt_tester_get_domain (c++ function)": [[23, "_CPPv430cvc5_sort_dt_tester_get_domain8Cvc5Sort"]], "cvc5_sort_ff_get_size (c++ function)": [[23, "_CPPv421cvc5_sort_ff_get_size8Cvc5Sort"]], "cvc5_sort_fp_get_exp_size (c++ function)": [[23, "_CPPv425cvc5_sort_fp_get_exp_size8Cvc5Sort"]], "cvc5_sort_fp_get_sig_size (c++ function)": [[23, "_CPPv425cvc5_sort_fp_get_sig_size8Cvc5Sort"]], "cvc5_sort_fun_get_arity (c++ function)": [[23, "_CPPv423cvc5_sort_fun_get_arity8Cvc5Sort"]], "cvc5_sort_fun_get_codomain (c++ function)": [[23, "_CPPv426cvc5_sort_fun_get_codomain8Cvc5Sort"]], "cvc5_sort_fun_get_domain (c++ function)": [[23, "_CPPv424cvc5_sort_fun_get_domain8Cvc5SortP6size_t"]], "cvc5_sort_get_datatype (c++ function)": [[23, "_CPPv422cvc5_sort_get_datatype8Cvc5Sort"]], "cvc5_sort_get_instantiated_parameters (c++ function)": [[23, "_CPPv437cvc5_sort_get_instantiated_parameters8Cvc5SortP6size_t"]], "cvc5_sort_get_kind (c++ function)": [[23, "_CPPv418cvc5_sort_get_kind8Cvc5Sort"]], "cvc5_sort_get_symbol (c++ function)": [[23, "_CPPv420cvc5_sort_get_symbol8Cvc5Sort"]], "cvc5_sort_get_uninterpreted_sort_constructor (c++ function)": [[23, "_CPPv444cvc5_sort_get_uninterpreted_sort_constructor8Cvc5Sort"]], "cvc5_sort_has_symbol (c++ function)": [[23, "_CPPv420cvc5_sort_has_symbol8Cvc5Sort"]], "cvc5_sort_hash (c++ function)": [[23, "_CPPv414cvc5_sort_hash8Cvc5Sort"]], "cvc5_sort_instantiate (c++ function)": [[23, "_CPPv421cvc5_sort_instantiate8Cvc5Sort6size_tA_K8Cvc5Sort"]], "cvc5_sort_is_abstract (c++ function)": [[23, "_CPPv421cvc5_sort_is_abstract8Cvc5Sort"]], "cvc5_sort_is_array (c++ function)": [[23, "_CPPv418cvc5_sort_is_array8Cvc5Sort"]], "cvc5_sort_is_bag (c++ function)": [[23, "_CPPv416cvc5_sort_is_bag8Cvc5Sort"]], "cvc5_sort_is_boolean (c++ function)": [[23, "_CPPv420cvc5_sort_is_boolean8Cvc5Sort"]], "cvc5_sort_is_bv (c++ function)": [[23, "_CPPv415cvc5_sort_is_bv8Cvc5Sort"]], "cvc5_sort_is_disequal (c++ function)": [[23, "_CPPv421cvc5_sort_is_disequal8Cvc5Sort8Cvc5Sort"]], "cvc5_sort_is_dt (c++ function)": [[23, "_CPPv415cvc5_sort_is_dt8Cvc5Sort"]], "cvc5_sort_is_dt_constructor (c++ function)": [[23, "_CPPv427cvc5_sort_is_dt_constructor8Cvc5Sort"]], "cvc5_sort_is_dt_selector (c++ function)": [[23, "_CPPv424cvc5_sort_is_dt_selector8Cvc5Sort"]], "cvc5_sort_is_dt_tester (c++ function)": [[23, "_CPPv422cvc5_sort_is_dt_tester8Cvc5Sort"]], "cvc5_sort_is_dt_updater (c++ function)": [[23, "_CPPv423cvc5_sort_is_dt_updater8Cvc5Sort"]], "cvc5_sort_is_equal (c++ function)": [[23, "_CPPv418cvc5_sort_is_equal8Cvc5Sort8Cvc5Sort"]], "cvc5_sort_is_ff (c++ function)": [[23, "_CPPv415cvc5_sort_is_ff8Cvc5Sort"]], "cvc5_sort_is_fp (c++ function)": [[23, "_CPPv415cvc5_sort_is_fp8Cvc5Sort"]], "cvc5_sort_is_fun (c++ function)": [[23, "_CPPv416cvc5_sort_is_fun8Cvc5Sort"]], "cvc5_sort_is_instantiated (c++ function)": [[23, "_CPPv425cvc5_sort_is_instantiated8Cvc5Sort"]], "cvc5_sort_is_integer (c++ function)": [[23, "_CPPv420cvc5_sort_is_integer8Cvc5Sort"]], "cvc5_sort_is_nullable (c++ function)": [[23, "_CPPv421cvc5_sort_is_nullable8Cvc5Sort"]], "cvc5_sort_is_predicate (c++ function)": [[23, "_CPPv422cvc5_sort_is_predicate8Cvc5Sort"]], "cvc5_sort_is_real (c++ function)": [[23, "_CPPv417cvc5_sort_is_real8Cvc5Sort"]], "cvc5_sort_is_record (c++ function)": [[23, "_CPPv419cvc5_sort_is_record8Cvc5Sort"]], "cvc5_sort_is_regexp (c++ function)": [[23, "_CPPv419cvc5_sort_is_regexp8Cvc5Sort"]], "cvc5_sort_is_rm (c++ function)": [[23, "_CPPv415cvc5_sort_is_rm8Cvc5Sort"]], "cvc5_sort_is_sequence (c++ function)": [[23, "_CPPv421cvc5_sort_is_sequence8Cvc5Sort"]], "cvc5_sort_is_set (c++ function)": [[23, "_CPPv416cvc5_sort_is_set8Cvc5Sort"]], "cvc5_sort_is_string (c++ function)": [[23, "_CPPv419cvc5_sort_is_string8Cvc5Sort"]], "cvc5_sort_is_tuple (c++ function)": [[23, "_CPPv418cvc5_sort_is_tuple8Cvc5Sort"]], "cvc5_sort_is_uninterpreted_sort (c++ function)": [[23, "_CPPv431cvc5_sort_is_uninterpreted_sort8Cvc5Sort"]], "cvc5_sort_is_uninterpreted_sort_constructor (c++ function)": [[23, "_CPPv443cvc5_sort_is_uninterpreted_sort_constructor8Cvc5Sort"]], "cvc5_sort_nullable_get_element_sort (c++ function)": [[23, "_CPPv435cvc5_sort_nullable_get_element_sort8Cvc5Sort"]], "cvc5_sort_release (c++ function)": [[23, "_CPPv417cvc5_sort_release8Cvc5Sort"]], "cvc5_sort_sequence_get_element_sort (c++ function)": [[23, "_CPPv435cvc5_sort_sequence_get_element_sort8Cvc5Sort"]], "cvc5_sort_set_get_element_sort (c++ function)": [[23, "_CPPv430cvc5_sort_set_get_element_sort8Cvc5Sort"]], "cvc5_sort_substitute (c++ function)": [[23, "_CPPv420cvc5_sort_substitute8Cvc5Sort8Cvc5Sort8Cvc5Sort"]], "cvc5_sort_substitute_sorts (c++ function)": [[23, "_CPPv426cvc5_sort_substitute_sorts8Cvc5Sort6size_tA_K8Cvc5SortA_K8Cvc5Sort"]], "cvc5_sort_to_string (c++ function)": [[23, "_CPPv419cvc5_sort_to_string8Cvc5Sort"]], "cvc5_sort_tuple_get_element_sorts (c++ function)": [[23, "_CPPv433cvc5_sort_tuple_get_element_sorts8Cvc5SortP6size_t"]], "cvc5_sort_tuple_get_length (c++ function)": [[23, "_CPPv426cvc5_sort_tuple_get_length8Cvc5Sort"]], "cvc5_sort_uninterpreted_sort_constructor_get_arity (c++ function)": [[23, "_CPPv450cvc5_sort_uninterpreted_sort_constructor_get_arity8Cvc5Sort"]], "cvc5stat (c++ type)": [[24, "_CPPv48Cvc5Stat"]], "cvc5statistics (c++ type)": [[24, "_CPPv414Cvc5Statistics"]], "cvc5_stat_get_double (c++ function)": [[24, "_CPPv420cvc5_stat_get_double8Cvc5Stat"]], "cvc5_stat_get_histogram (c++ function)": [[24, "_CPPv423cvc5_stat_get_histogram8Cvc5StatA_PPKcA_P8uint64_tP6size_t"]], "cvc5_stat_get_int (c++ function)": [[24, "_CPPv417cvc5_stat_get_int8Cvc5Stat"]], "cvc5_stat_get_string (c++ function)": [[24, "_CPPv420cvc5_stat_get_string8Cvc5Stat"]], "cvc5_stat_is_default (c++ function)": [[24, "_CPPv420cvc5_stat_is_default8Cvc5Stat"]], "cvc5_stat_is_double (c++ function)": [[24, "_CPPv419cvc5_stat_is_double8Cvc5Stat"]], "cvc5_stat_is_histogram (c++ function)": [[24, "_CPPv422cvc5_stat_is_histogram8Cvc5Stat"]], "cvc5_stat_is_int (c++ function)": [[24, "_CPPv416cvc5_stat_is_int8Cvc5Stat"]], "cvc5_stat_is_internal (c++ function)": [[24, "_CPPv421cvc5_stat_is_internal8Cvc5Stat"]], "cvc5_stat_is_string (c++ function)": [[24, "_CPPv419cvc5_stat_is_string8Cvc5Stat"]], "cvc5_stat_to_string (c++ function)": [[24, "_CPPv419cvc5_stat_to_string8Cvc5Stat"]], "cvc5symbolmanager (c++ type)": [[25, "_CPPv417Cvc5SymbolManager"]], "cvc5synthresult (c++ type)": [[26, "_CPPv415Cvc5SynthResult"]], "cvc5term (c++ type)": [[27, "_CPPv48Cvc5Term"]], "cvc5_term_compare (c++ function)": [[27, "_CPPv417cvc5_term_compare8Cvc5Term8Cvc5Term"]], "cvc5_term_copy (c++ function)": [[27, "_CPPv414cvc5_term_copy8Cvc5Term"]], "cvc5_term_get_boolean_value (c++ function)": [[27, "_CPPv427cvc5_term_get_boolean_value8Cvc5Term"]], "cvc5_term_get_bv_value (c++ function)": [[27, "_CPPv422cvc5_term_get_bv_value8Cvc5Term8uint32_t"]], "cvc5_term_get_cardinality_constraint (c++ function)": [[27, "_CPPv436cvc5_term_get_cardinality_constraint8Cvc5TermP8Cvc5SortP8uint32_t"]], "cvc5_term_get_child (c++ function)": [[27, "_CPPv419cvc5_term_get_child8Cvc5Term6size_t"]], "cvc5_term_get_const_array_base (c++ function)": [[27, "_CPPv430cvc5_term_get_const_array_base8Cvc5Term"]], "cvc5_term_get_ff_value (c++ function)": [[27, "_CPPv422cvc5_term_get_ff_value8Cvc5Term"]], "cvc5_term_get_fp_value (c++ function)": [[27, "_CPPv422cvc5_term_get_fp_value8Cvc5TermP8uint32_tP8uint32_tP8Cvc5Term"]], "cvc5_term_get_id (c++ function)": [[27, "_CPPv416cvc5_term_get_id8Cvc5Term"]], "cvc5_term_get_int32_value (c++ function)": [[27, "_CPPv425cvc5_term_get_int32_value8Cvc5Term"]], "cvc5_term_get_int64_value (c++ function)": [[27, "_CPPv425cvc5_term_get_int64_value8Cvc5Term"]], "cvc5_term_get_integer_value (c++ function)": [[27, "_CPPv427cvc5_term_get_integer_value8Cvc5Term"]], "cvc5_term_get_kind (c++ function)": [[27, "_CPPv418cvc5_term_get_kind8Cvc5Term"]], "cvc5_term_get_num_children (c++ function)": [[27, "_CPPv426cvc5_term_get_num_children8Cvc5Term"]], "cvc5_term_get_op (c++ function)": [[27, "_CPPv416cvc5_term_get_op8Cvc5Term"]], "cvc5_term_get_real32_value (c++ function)": [[27, "_CPPv426cvc5_term_get_real32_value8Cvc5TermP7int32_tP8uint32_t"]], "cvc5_term_get_real64_value (c++ function)": [[27, "_CPPv426cvc5_term_get_real64_value8Cvc5TermP7int64_tP8uint64_t"]], "cvc5_term_get_real_algebraic_number_defining_polynomial (c++ function)": [[27, "_CPPv455cvc5_term_get_real_algebraic_number_defining_polynomial8Cvc5Term8Cvc5Term"]], "cvc5_term_get_real_algebraic_number_lower_bound (c++ function)": [[27, "_CPPv447cvc5_term_get_real_algebraic_number_lower_bound8Cvc5Term"]], "cvc5_term_get_real_algebraic_number_upper_bound (c++ function)": [[27, "_CPPv447cvc5_term_get_real_algebraic_number_upper_bound8Cvc5Term"]], "cvc5_term_get_real_or_integer_value_sign (c++ function)": [[27, "_CPPv440cvc5_term_get_real_or_integer_value_sign8Cvc5Term"]], "cvc5_term_get_real_value (c++ function)": [[27, "_CPPv424cvc5_term_get_real_value8Cvc5Term"]], "cvc5_term_get_rm_value (c++ function)": [[27, "_CPPv422cvc5_term_get_rm_value8Cvc5Term"]], "cvc5_term_get_sequence_value (c++ function)": [[27, "_CPPv428cvc5_term_get_sequence_value8Cvc5TermP6size_t"]], "cvc5_term_get_set_value (c++ function)": [[27, "_CPPv423cvc5_term_get_set_value8Cvc5TermP6size_t"]], "cvc5_term_get_skolem_id (c++ function)": [[27, "_CPPv423cvc5_term_get_skolem_id8Cvc5Term"]], "cvc5_term_get_skolem_indices (c++ function)": [[27, "_CPPv428cvc5_term_get_skolem_indices8Cvc5TermP6size_t"]], "cvc5_term_get_sort (c++ function)": [[27, "_CPPv418cvc5_term_get_sort8Cvc5Term"]], "cvc5_term_get_string_value (c++ function)": [[27, "_CPPv426cvc5_term_get_string_value8Cvc5Term"]], "cvc5_term_get_symbol (c++ function)": [[27, "_CPPv420cvc5_term_get_symbol8Cvc5Term"]], "cvc5_term_get_tuple_value (c++ function)": [[27, "_CPPv425cvc5_term_get_tuple_value8Cvc5TermP6size_t"]], "cvc5_term_get_uint32_value (c++ function)": [[27, "_CPPv426cvc5_term_get_uint32_value8Cvc5Term"]], "cvc5_term_get_uint64_value (c++ function)": [[27, "_CPPv426cvc5_term_get_uint64_value8Cvc5Term"]], "cvc5_term_get_uninterpreted_sort_value (c++ function)": [[27, "_CPPv438cvc5_term_get_uninterpreted_sort_value8Cvc5Term"]], "cvc5_term_has_op (c++ function)": [[27, "_CPPv416cvc5_term_has_op8Cvc5Term"]], "cvc5_term_has_symbol (c++ function)": [[27, "_CPPv420cvc5_term_has_symbol8Cvc5Term"]], "cvc5_term_hash (c++ function)": [[27, "_CPPv414cvc5_term_hash8Cvc5Term"]], "cvc5_term_is_boolean_value (c++ function)": [[27, "_CPPv426cvc5_term_is_boolean_value8Cvc5Term"]], "cvc5_term_is_bv_value (c++ function)": [[27, "_CPPv421cvc5_term_is_bv_value8Cvc5Term"]], "cvc5_term_is_cardinality_constraint (c++ function)": [[27, "_CPPv435cvc5_term_is_cardinality_constraint8Cvc5Term"]], "cvc5_term_is_const_array (c++ function)": [[27, "_CPPv424cvc5_term_is_const_array8Cvc5Term"]], "cvc5_term_is_disequal (c++ function)": [[27, "_CPPv421cvc5_term_is_disequal8Cvc5Term8Cvc5Term"]], "cvc5_term_is_equal (c++ function)": [[27, "_CPPv418cvc5_term_is_equal8Cvc5Term8Cvc5Term"]], "cvc5_term_is_ff_value (c++ function)": [[27, "_CPPv421cvc5_term_is_ff_value8Cvc5Term"]], "cvc5_term_is_fp_nan (c++ function)": [[27, "_CPPv419cvc5_term_is_fp_nan8Cvc5Term"]], "cvc5_term_is_fp_neg_inf (c++ function)": [[27, "_CPPv423cvc5_term_is_fp_neg_inf8Cvc5Term"]], "cvc5_term_is_fp_neg_zero (c++ function)": [[27, "_CPPv424cvc5_term_is_fp_neg_zero8Cvc5Term"]], "cvc5_term_is_fp_pos_inf (c++ function)": [[27, "_CPPv423cvc5_term_is_fp_pos_inf8Cvc5Term"]], "cvc5_term_is_fp_pos_zero (c++ function)": [[27, "_CPPv424cvc5_term_is_fp_pos_zero8Cvc5Term"]], "cvc5_term_is_fp_value (c++ function)": [[27, "_CPPv421cvc5_term_is_fp_value8Cvc5Term"]], "cvc5_term_is_int32_value (c++ function)": [[27, "_CPPv424cvc5_term_is_int32_value8Cvc5Term"]], "cvc5_term_is_int64_value (c++ function)": [[27, "_CPPv424cvc5_term_is_int64_value8Cvc5Term"]], "cvc5_term_is_integer_value (c++ function)": [[27, "_CPPv426cvc5_term_is_integer_value8Cvc5Term"]], "cvc5_term_is_real32_value (c++ function)": [[27, "_CPPv425cvc5_term_is_real32_value8Cvc5Term"]], "cvc5_term_is_real64_value (c++ function)": [[27, "_CPPv425cvc5_term_is_real64_value8Cvc5Term"]], "cvc5_term_is_real_algebraic_number (c++ function)": [[27, "_CPPv434cvc5_term_is_real_algebraic_number8Cvc5Term"]], "cvc5_term_is_real_value (c++ function)": [[27, "_CPPv423cvc5_term_is_real_value8Cvc5Term"]], "cvc5_term_is_rm_value (c++ function)": [[27, "_CPPv421cvc5_term_is_rm_value8Cvc5Term"]], "cvc5_term_is_sequence_value (c++ function)": [[27, "_CPPv427cvc5_term_is_sequence_value8Cvc5Term"]], "cvc5_term_is_set_value (c++ function)": [[27, "_CPPv422cvc5_term_is_set_value8Cvc5Term"]], "cvc5_term_is_skolem (c++ function)": [[27, "_CPPv419cvc5_term_is_skolem8Cvc5Term"]], "cvc5_term_is_string_value (c++ function)": [[27, "_CPPv425cvc5_term_is_string_value8Cvc5Term"]], "cvc5_term_is_tuple_value (c++ function)": [[27, "_CPPv424cvc5_term_is_tuple_value8Cvc5Term"]], "cvc5_term_is_uint32_value (c++ function)": [[27, "_CPPv425cvc5_term_is_uint32_value8Cvc5Term"]], "cvc5_term_is_uint64_value (c++ function)": [[27, "_CPPv425cvc5_term_is_uint64_value8Cvc5Term"]], "cvc5_term_is_uninterpreted_sort_value (c++ function)": [[27, "_CPPv437cvc5_term_is_uninterpreted_sort_value8Cvc5Term"]], "cvc5_term_release (c++ function)": [[27, "_CPPv417cvc5_term_release8Cvc5Term"]], "cvc5_term_substitute_term (c++ function)": [[27, "_CPPv425cvc5_term_substitute_term8Cvc5Term8Cvc5Term8Cvc5Term"]], "cvc5_term_substitute_terms (c++ function)": [[27, "_CPPv426cvc5_term_substitute_terms8Cvc5Term6size_tA_K8Cvc5TermA_K8Cvc5Term"]], "cvc5_term_to_string (c++ function)": [[27, "_CPPv419cvc5_term_to_string8Cvc5Term"]], "cvc5termmanager (c++ type)": [[28, "_CPPv415Cvc5TermManager"]], "cvc5_mk_op (c++ function)": [[28, "_CPPv410cvc5_mk_opP15Cvc5TermManager8Cvc5Kind6size_tA_K8uint32_t"]], "cvc5_mk_op_from_str (c++ function)": [[28, "_CPPv419cvc5_mk_op_from_strP15Cvc5TermManager8Cvc5KindPKc"]], "parser::command (c++ class)": [[29, "_CPPv4N4cvc56parser7CommandE"]], "parser::command::command (c++ function)": [[29, "_CPPv4N4cvc56parser7Command7CommandEv"]], "parser::command::getcommandname (c++ function)": [[29, "_CPPv4NK4cvc56parser7Command14getCommandNameEv"]], "parser::command::invoke (c++ function)": [[29, "_CPPv4N4cvc56parser7Command6invokeEPN4cvc56SolverEPN6parser13SymbolManagerERNSt7ostreamE"]], "parser::command::isnull (c++ function)": [[29, "_CPPv4NK4cvc56parser7Command6isNullEv"]], "parser::command::tostring (c++ function)": [[29, "_CPPv4NK4cvc56parser7Command8toStringEv"]], "datatype (c++ class)": [[30, "_CPPv4N4cvc58DatatypeE"]], "datatype::datatype (c++ function)": [[30, "_CPPv4N4cvc58Datatype8DatatypeEv"]], "datatype::begin (c++ function)": [[30, "_CPPv4NK4cvc58Datatype5beginEv"]], "datatype::const_iterator (c++ class)": [[30, "_CPPv4N4cvc58Datatype14const_iteratorE"]], "datatype::const_iterator::const_iterator (c++ function)": [[30, "_CPPv4N4cvc58Datatype14const_iterator14const_iteratorEv"]], "datatype::const_iterator::difference_type (c++ type)": [[30, "_CPPv4N4cvc58Datatype14const_iterator15difference_typeE"]], "datatype::const_iterator::iterator_category (c++ type)": [[30, "_CPPv4N4cvc58Datatype14const_iterator17iterator_categoryE"]], "datatype::const_iterator::operator!= (c++ function)": [[30, "_CPPv4NK4cvc58Datatype14const_iteratorneERK14const_iterator"]], "datatype::const_iterator::operator* (c++ function)": [[30, "_CPPv4NK4cvc58Datatype14const_iteratormlEv"]], "datatype::const_iterator::operator++ (c++ function)": [[30, "_CPPv4N4cvc58Datatype14const_iteratorppEi"], [30, "_CPPv4N4cvc58Datatype14const_iteratorppEv"]], "datatype::const_iterator::operator-> (c++ function)": [[30, "_CPPv4NK4cvc58Datatype14const_iteratorptEv"]], "datatype::const_iterator::operator= (c++ function)": [[30, "_CPPv4N4cvc58Datatype14const_iteratoraSERK14const_iterator"]], "datatype::const_iterator::operator== (c++ function)": [[30, "_CPPv4NK4cvc58Datatype14const_iteratoreqERK14const_iterator"]], "datatype::const_iterator::pointer (c++ type)": [[30, "_CPPv4N4cvc58Datatype14const_iterator7pointerE"]], "datatype::const_iterator::reference (c++ type)": [[30, "_CPPv4N4cvc58Datatype14const_iterator9referenceE"]], "datatype::const_iterator::value_type (c++ type)": [[30, "_CPPv4N4cvc58Datatype14const_iterator10value_typeE"]], "datatype::end (c++ function)": [[30, "_CPPv4NK4cvc58Datatype3endEv"]], "datatype::getconstructor (c++ function)": [[30, "_CPPv4NK4cvc58Datatype14getConstructorERKNSt6stringE"]], "datatype::getname (c++ function)": [[30, "_CPPv4NK4cvc58Datatype7getNameEv"]], "datatype::getnumconstructors (c++ function)": [[30, "_CPPv4NK4cvc58Datatype18getNumConstructorsEv"]], "datatype::getparameters (c++ function)": [[30, "_CPPv4NK4cvc58Datatype13getParametersEv"]], "datatype::getselector (c++ function)": [[30, "_CPPv4NK4cvc58Datatype11getSelectorERKNSt6stringE"]], "datatype::iscodatatype (c++ function)": [[30, "_CPPv4NK4cvc58Datatype12isCodatatypeEv"]], "datatype::isfinite (c++ function)": [[30, "_CPPv4NK4cvc58Datatype8isFiniteEv"]], "datatype::isnull (c++ function)": [[30, "_CPPv4NK4cvc58Datatype6isNullEv"]], "datatype::isparametric (c++ function)": [[30, "_CPPv4NK4cvc58Datatype12isParametricEv"]], "datatype::isrecord (c++ function)": [[30, "_CPPv4NK4cvc58Datatype8isRecordEv"]], "datatype::istuple (c++ function)": [[30, "_CPPv4NK4cvc58Datatype7isTupleEv"]], "datatype::iswellfounded (c++ function)": [[30, "_CPPv4NK4cvc58Datatype13isWellFoundedEv"]], "datatype::operator== (c++ function)": [[30, "_CPPv4NK4cvc58DatatypeeqERK8Datatype"]], "datatype::operator[] (c++ function)": [[30, "_CPPv4NK4cvc58DatatypeixE6size_t"], [30, "_CPPv4NK4cvc58DatatypeixERKNSt6stringE"]], "datatype::tostring (c++ function)": [[30, "_CPPv4NK4cvc58Datatype8toStringEv"]], "datatype::~datatype (c++ function)": [[30, "_CPPv4N4cvc58DatatypeD0Ev"]], "operator<< (c++ function)": [[30, "_CPPv4N4cvc5lsERNSt7ostreamERK8Datatype"], [31, "_CPPv4N4cvc5lsERNSt7ostreamERK19DatatypeConstructor"], [32, "_CPPv4N4cvc5lsERNSt7ostreamERK23DatatypeConstructorDecl"], [32, "_CPPv4N4cvc5lsERNSt7ostreamERKNSt6vectorI23DatatypeConstructorDeclEE"], [33, "_CPPv4N4cvc5lsERNSt7ostreamERK12DatatypeDecl"], [34, "_CPPv4N4cvc5lsERNSt7ostreamERK16DatatypeSelector"], [36, "_CPPv4N4cvc5lsERNSt7ostreamERK7Grammar"], [38, "_CPPv4N4cvc5lsERNSt7ostreamERK2Op"], [39, "_CPPv4N4cvc5lsERNSt7ostreamERK10OptionInfo"], [42, "_CPPv4N4cvc5lsERNSt7ostreamERK6Result"], [44, "_CPPv4N4cvc5lsERNSt7ostreamERK4Sort"], [45, "_CPPv4N4cvc5lsERNSt7ostreamERK10Statistics"], [45, "_CPPv4N4cvc5lsERNSt7ostreamERK4Stat"], [47, "_CPPv4N4cvc5lsERNSt7ostreamERK11SynthResult"], [48, "_CPPv4I0EN4cvc5lsERNSt7ostreamERNSt7ostreamERKNSt13unordered_mapI4Term1VEE"], [48, "_CPPv4I0EN4cvc5lsERNSt7ostreamERNSt7ostreamERKNSt3mapI4Term1VEE"], [48, "_CPPv4N4cvc5lsERNSt7ostreamERK4Term"], [48, "_CPPv4N4cvc5lsERNSt7ostreamERKNSt13unordered_setI4TermEE"], [48, "_CPPv4N4cvc5lsERNSt7ostreamERKNSt3setI4TermEE"], [48, "_CPPv4N4cvc5lsERNSt7ostreamERKNSt6vectorI4TermEE"], [51, "_CPPv4N4cvc5lsERNSt7ostreamE4Kind"], [53, "_CPPv4N4cvc5lsERNSt7ostreamE16ProofRewriteRule"], [53, "_CPPv4N4cvc5lsERNSt7ostreamE9ProofRule"], [54, "_CPPv4N4cvc5lsERNSt7ostreamE12RoundingMode"], [55, "_CPPv4N4cvc5lsERNSt7ostreamE8SortKind"], [56, "_CPPv4N4cvc5lsERNSt7ostreamE18UnknownExplanation"]], "datatypeconstructor (c++ class)": [[31, "_CPPv4N4cvc519DatatypeConstructorE"]], "datatypeconstructor::datatypeconstructor (c++ function)": [[31, "_CPPv4N4cvc519DatatypeConstructor19DatatypeConstructorEv"]], "datatypeconstructor::begin (c++ function)": [[31, "_CPPv4NK4cvc519DatatypeConstructor5beginEv"]], "datatypeconstructor::const_iterator (c++ class)": [[31, "_CPPv4N4cvc519DatatypeConstructor14const_iteratorE"]], "datatypeconstructor::const_iterator::const_iterator (c++ function)": [[31, "_CPPv4N4cvc519DatatypeConstructor14const_iterator14const_iteratorEv"]], "datatypeconstructor::const_iterator::difference_type (c++ type)": [[31, "_CPPv4N4cvc519DatatypeConstructor14const_iterator15difference_typeE"]], "datatypeconstructor::const_iterator::iterator_category (c++ type)": [[31, "_CPPv4N4cvc519DatatypeConstructor14const_iterator17iterator_categoryE"]], "datatypeconstructor::const_iterator::operator!= (c++ function)": [[31, "_CPPv4NK4cvc519DatatypeConstructor14const_iteratorneERK14const_iterator"]], "datatypeconstructor::const_iterator::operator* (c++ function)": [[31, "_CPPv4NK4cvc519DatatypeConstructor14const_iteratormlEv"]], "datatypeconstructor::const_iterator::operator++ (c++ function)": [[31, "_CPPv4N4cvc519DatatypeConstructor14const_iteratorppEi"], [31, "_CPPv4N4cvc519DatatypeConstructor14const_iteratorppEv"]], "datatypeconstructor::const_iterator::operator-> (c++ function)": [[31, "_CPPv4NK4cvc519DatatypeConstructor14const_iteratorptEv"]], "datatypeconstructor::const_iterator::operator= (c++ function)": [[31, "_CPPv4N4cvc519DatatypeConstructor14const_iteratoraSERK14const_iterator"]], "datatypeconstructor::const_iterator::operator== (c++ function)": [[31, "_CPPv4NK4cvc519DatatypeConstructor14const_iteratoreqERK14const_iterator"]], "datatypeconstructor::const_iterator::pointer (c++ type)": [[31, "_CPPv4N4cvc519DatatypeConstructor14const_iterator7pointerE"]], "datatypeconstructor::const_iterator::reference (c++ type)": [[31, "_CPPv4N4cvc519DatatypeConstructor14const_iterator9referenceE"]], "datatypeconstructor::const_iterator::value_type (c++ type)": [[31, "_CPPv4N4cvc519DatatypeConstructor14const_iterator10value_typeE"]], "datatypeconstructor::end (c++ function)": [[31, "_CPPv4NK4cvc519DatatypeConstructor3endEv"]], "datatypeconstructor::getinstantiatedterm (c++ function)": [[31, "_CPPv4NK4cvc519DatatypeConstructor19getInstantiatedTermERK4Sort"]], "datatypeconstructor::getname (c++ function)": [[31, "_CPPv4NK4cvc519DatatypeConstructor7getNameEv"]], "datatypeconstructor::getnumselectors (c++ function)": [[31, "_CPPv4NK4cvc519DatatypeConstructor15getNumSelectorsEv"]], "datatypeconstructor::getselector (c++ function)": [[31, "_CPPv4NK4cvc519DatatypeConstructor11getSelectorERKNSt6stringE"]], "datatypeconstructor::getterm (c++ function)": [[31, "_CPPv4NK4cvc519DatatypeConstructor7getTermEv"]], "datatypeconstructor::gettesterterm (c++ function)": [[31, "_CPPv4NK4cvc519DatatypeConstructor13getTesterTermEv"]], "datatypeconstructor::isnull (c++ function)": [[31, "_CPPv4NK4cvc519DatatypeConstructor6isNullEv"]], "datatypeconstructor::operator== (c++ function)": [[31, "_CPPv4NK4cvc519DatatypeConstructoreqERK19DatatypeConstructor"]], "datatypeconstructor::operator[] (c++ function)": [[31, "_CPPv4NK4cvc519DatatypeConstructorixE6size_t"], [31, "_CPPv4NK4cvc519DatatypeConstructorixERKNSt6stringE"]], "datatypeconstructor::tostring (c++ function)": [[31, "_CPPv4NK4cvc519DatatypeConstructor8toStringEv"]], "datatypeconstructor::~datatypeconstructor (c++ function)": [[31, "_CPPv4N4cvc519DatatypeConstructorD0Ev"]], "datatypeconstructordecl (c++ class)": [[32, "_CPPv4N4cvc523DatatypeConstructorDeclE"]], "datatypeconstructordecl::datatypeconstructordecl (c++ function)": [[32, "_CPPv4N4cvc523DatatypeConstructorDecl23DatatypeConstructorDeclEv"]], "datatypeconstructordecl::addselector (c++ function)": [[32, "_CPPv4N4cvc523DatatypeConstructorDecl11addSelectorERKNSt6stringERK4Sort"]], "datatypeconstructordecl::addselectorself (c++ function)": [[32, "_CPPv4N4cvc523DatatypeConstructorDecl15addSelectorSelfERKNSt6stringE"]], "datatypeconstructordecl::addselectorunresolved (c++ function)": [[32, "_CPPv4N4cvc523DatatypeConstructorDecl21addSelectorUnresolvedERKNSt6stringERKNSt6stringE"]], "datatypeconstructordecl::isnull (c++ function)": [[32, "_CPPv4NK4cvc523DatatypeConstructorDecl6isNullEv"]], "datatypeconstructordecl::operator== (c++ function)": [[32, "_CPPv4NK4cvc523DatatypeConstructorDecleqERK23DatatypeConstructorDecl"]], "datatypeconstructordecl::tostring (c++ function)": [[32, "_CPPv4NK4cvc523DatatypeConstructorDecl8toStringEv"]], "datatypeconstructordecl::~datatypeconstructordecl (c++ function)": [[32, "_CPPv4N4cvc523DatatypeConstructorDeclD0Ev"]], "datatypedecl (c++ class)": [[33, "_CPPv4N4cvc512DatatypeDeclE"]], "datatypedecl::datatypedecl (c++ function)": [[33, "_CPPv4N4cvc512DatatypeDecl12DatatypeDeclEv"]], "datatypedecl::addconstructor (c++ function)": [[33, "_CPPv4N4cvc512DatatypeDecl14addConstructorERK23DatatypeConstructorDecl"]], "datatypedecl::getname (c++ function)": [[33, "_CPPv4NK4cvc512DatatypeDecl7getNameEv"]], "datatypedecl::getnumconstructors (c++ function)": [[33, "_CPPv4NK4cvc512DatatypeDecl18getNumConstructorsEv"]], "datatypedecl::isnull (c++ function)": [[33, "_CPPv4NK4cvc512DatatypeDecl6isNullEv"]], "datatypedecl::isparametric (c++ function)": [[33, "_CPPv4NK4cvc512DatatypeDecl12isParametricEv"]], "datatypedecl::isresolved (c++ function)": [[33, "_CPPv4NK4cvc512DatatypeDecl10isResolvedEv"]], "datatypedecl::operator== (c++ function)": [[33, "_CPPv4NK4cvc512DatatypeDecleqERK12DatatypeDecl"]], "datatypedecl::tostring (c++ function)": [[33, "_CPPv4NK4cvc512DatatypeDecl8toStringEv"]], "datatypedecl::~datatypedecl (c++ function)": [[33, "_CPPv4N4cvc512DatatypeDeclD0Ev"]], "datatypeselector (c++ class)": [[34, "_CPPv4N4cvc516DatatypeSelectorE"]], "datatypeselector::datatypeselector (c++ function)": [[34, "_CPPv4N4cvc516DatatypeSelector16DatatypeSelectorEv"]], "datatypeselector::getcodomainsort (c++ function)": [[34, "_CPPv4NK4cvc516DatatypeSelector15getCodomainSortEv"]], "datatypeselector::getname (c++ function)": [[34, "_CPPv4NK4cvc516DatatypeSelector7getNameEv"]], "datatypeselector::getterm (c++ function)": [[34, "_CPPv4NK4cvc516DatatypeSelector7getTermEv"]], "datatypeselector::getupdaterterm (c++ function)": [[34, "_CPPv4NK4cvc516DatatypeSelector14getUpdaterTermEv"]], "datatypeselector::isnull (c++ function)": [[34, "_CPPv4NK4cvc516DatatypeSelector6isNullEv"]], "datatypeselector::operator== (c++ function)": [[34, "_CPPv4NK4cvc516DatatypeSelectoreqERK16DatatypeSelector"]], "datatypeselector::tostring (c++ function)": [[34, "_CPPv4NK4cvc516DatatypeSelector8toStringEv"]], "datatypeselector::~datatypeselector (c++ function)": [[34, "_CPPv4N4cvc516DatatypeSelectorD0Ev"]], "driveroptions (c++ class)": [[35, "_CPPv4N4cvc513DriverOptionsE"]], "driveroptions::err (c++ function)": [[35, "_CPPv4NK4cvc513DriverOptions3errEv"]], "driveroptions::in (c++ function)": [[35, "_CPPv4NK4cvc513DriverOptions2inEv"]], "driveroptions::out (c++ function)": [[35, "_CPPv4NK4cvc513DriverOptions3outEv"]], "grammar (c++ class)": [[36, "_CPPv4N4cvc57GrammarE"]], "grammar::grammar (c++ function)": [[36, "_CPPv4N4cvc57Grammar7GrammarEv"]], "grammar::addanyconstant (c++ function)": [[36, "_CPPv4N4cvc57Grammar14addAnyConstantERK4Term"]], "grammar::addanyvariable (c++ function)": [[36, "_CPPv4N4cvc57Grammar14addAnyVariableERK4Term"]], "grammar::addrule (c++ function)": [[36, "_CPPv4N4cvc57Grammar7addRuleERK4TermRK4Term"]], "grammar::addrules (c++ function)": [[36, "_CPPv4N4cvc57Grammar8addRulesERK4TermRKNSt6vectorI4TermEE"]], "grammar::isnull (c++ function)": [[36, "_CPPv4NK4cvc57Grammar6isNullEv"]], "grammar::operator!= (c++ function)": [[36, "_CPPv4NK4cvc57GrammarneERK7Grammar"]], "grammar::operator== (c++ function)": [[36, "_CPPv4NK4cvc57GrammareqERK7Grammar"]], "grammar::tostring (c++ function)": [[36, "_CPPv4NK4cvc57Grammar8toStringEv"]], "grammar::~grammar (c++ function)": [[36, "_CPPv4N4cvc57GrammarD0Ev"]], "parser::inputparser (c++ class)": [[37, "_CPPv4N4cvc56parser11InputParserE"]], "parser::inputparser::inputparser (c++ function)": [[37, "_CPPv4N4cvc56parser11InputParser11InputParserEP6Solver"], [37, "_CPPv4N4cvc56parser11InputParser11InputParserEP6SolverP13SymbolManager"]], "parser::inputparser::appendincrementalstringinput (c++ function)": [[37, "_CPPv4N4cvc56parser11InputParser28appendIncrementalStringInputERKNSt6stringE"]], "parser::inputparser::done (c++ function)": [[37, "_CPPv4NK4cvc56parser11InputParser4doneEv"]], "parser::inputparser::getsolver (c++ function)": [[37, "_CPPv4N4cvc56parser11InputParser9getSolverEv"]], "parser::inputparser::getsymbolmanager (c++ function)": [[37, "_CPPv4N4cvc56parser11InputParser16getSymbolManagerEv"]], "parser::inputparser::nextcommand (c++ function)": [[37, "_CPPv4N4cvc56parser11InputParser11nextCommandEv"]], "parser::inputparser::nextterm (c++ function)": [[37, "_CPPv4N4cvc56parser11InputParser8nextTermEv"]], "parser::inputparser::setfileinput (c++ function)": [[37, "_CPPv4N4cvc56parser11InputParser12setFileInputEN5modes13InputLanguageERKNSt6stringE"]], "parser::inputparser::setincrementalstringinput (c++ function)": [[37, "_CPPv4N4cvc56parser11InputParser25setIncrementalStringInputEN5modes13InputLanguageERKNSt6stringE"]], "parser::inputparser::setstreaminput (c++ function)": [[37, "_CPPv4N4cvc56parser11InputParser14setStreamInputEN5modes13InputLanguageERNSt7istreamERKNSt6stringE"]], "parser::inputparser::setstringinput (c++ function)": [[37, "_CPPv4N4cvc56parser11InputParser14setStringInputEN5modes13InputLanguageERKNSt6stringERKNSt6stringE"]], "op (c++ class)": [[38, "_CPPv4N4cvc52OpE"]], "op::op (c++ function)": [[38, "_CPPv4N4cvc52Op2OpEv"]], "op::getkind (c++ function)": [[38, "_CPPv4NK4cvc52Op7getKindEv"]], "op::getnumindices (c++ function)": [[38, "_CPPv4NK4cvc52Op13getNumIndicesEv"]], "op::isindexed (c++ function)": [[38, "_CPPv4NK4cvc52Op9isIndexedEv"]], "op::isnull (c++ function)": [[38, "_CPPv4NK4cvc52Op6isNullEv"]], "op::operator!= (c++ function)": [[38, "_CPPv4NK4cvc52OpneERK2Op"]], "op::operator== (c++ function)": [[38, "_CPPv4NK4cvc52OpeqERK2Op"]], "op::operator[] (c++ function)": [[38, "_CPPv4N4cvc52OpixE6size_t"]], "op::tostring (c++ function)": [[38, "_CPPv4NK4cvc52Op8toStringEv"]], "op::~op (c++ function)": [[38, "_CPPv4N4cvc52OpD0Ev"]], "std::hash (c++ struct)": [[38, "_CPPv4IENSt4hashIN4cvc52OpEEE"]], "std::hash::operator() (c++ function)": [[38, "_CPPv4NKSt4hashIN4cvc52OpEEclERKN4cvc52OpE"]], "optioninfo (c++ struct)": [[39, "_CPPv4N4cvc510OptionInfoE"]], "optioninfo::modeinfo (c++ struct)": [[39, "_CPPv4N4cvc510OptionInfo8ModeInfoE"]], "optioninfo::modeinfo::currentvalue (c++ member)": [[39, "_CPPv4N4cvc510OptionInfo8ModeInfo12currentValueE"]], "optioninfo::modeinfo::defaultvalue (c++ member)": [[39, "_CPPv4N4cvc510OptionInfo8ModeInfo12defaultValueE"]], "optioninfo::modeinfo::modes (c++ member)": [[39, "_CPPv4N4cvc510OptionInfo8ModeInfo5modesE"]], "optioninfo::numberinfo (c++ struct)": [[39, "_CPPv4I0EN4cvc510OptionInfo10NumberInfoE"]], "optioninfo::numberinfo::currentvalue (c++ member)": [[39, "_CPPv4N4cvc510OptionInfo10NumberInfo12currentValueE"]], "optioninfo::numberinfo::defaultvalue (c++ member)": [[39, "_CPPv4N4cvc510OptionInfo10NumberInfo12defaultValueE"]], "optioninfo::numberinfo::maximum (c++ member)": [[39, "_CPPv4N4cvc510OptionInfo10NumberInfo7maximumE"]], "optioninfo::numberinfo::minimum (c++ member)": [[39, "_CPPv4N4cvc510OptionInfo10NumberInfo7minimumE"]], "optioninfo::optioninfovariant (c++ type)": [[39, "_CPPv4N4cvc510OptionInfo17OptionInfoVariantE"]], "optioninfo::valueinfo (c++ struct)": [[39, "_CPPv4I0EN4cvc510OptionInfo9ValueInfoE"]], "optioninfo::valueinfo::currentvalue (c++ member)": [[39, "_CPPv4N4cvc510OptionInfo9ValueInfo12currentValueE"]], "optioninfo::valueinfo::defaultvalue (c++ member)": [[39, "_CPPv4N4cvc510OptionInfo9ValueInfo12defaultValueE"]], "optioninfo::voidinfo (c++ struct)": [[39, "_CPPv4N4cvc510OptionInfo8VoidInfoE"]], "optioninfo::aliases (c++ member)": [[39, "_CPPv4N4cvc510OptionInfo7aliasesE"]], "optioninfo::boolvalue (c++ function)": [[39, "_CPPv4NK4cvc510OptionInfo9boolValueEv"]], "optioninfo::doublevalue (c++ function)": [[39, "_CPPv4NK4cvc510OptionInfo11doubleValueEv"]], "optioninfo::intvalue (c++ function)": [[39, "_CPPv4NK4cvc510OptionInfo8intValueEv"]], "optioninfo::isexpert (c++ member)": [[39, "_CPPv4N4cvc510OptionInfo8isExpertE"]], "optioninfo::isregular (c++ member)": [[39, "_CPPv4N4cvc510OptionInfo9isRegularE"]], "optioninfo::name (c++ member)": [[39, "_CPPv4N4cvc510OptionInfo4nameE"]], "optioninfo::setbyuser (c++ member)": [[39, "_CPPv4N4cvc510OptionInfo9setByUserE"]], "optioninfo::stringvalue (c++ function)": [[39, "_CPPv4NK4cvc510OptionInfo11stringValueEv"]], "optioninfo::tostring (c++ function)": [[39, "_CPPv4NK4cvc510OptionInfo8toStringEv"]], "optioninfo::uintvalue (c++ function)": [[39, "_CPPv4NK4cvc510OptionInfo9uintValueEv"]], "optioninfo::valueinfo (c++ member)": [[39, "_CPPv4N4cvc510OptionInfo9valueInfoE"]], "plugin (c++ class)": [[40, "_CPPv4N4cvc56PluginE"], [72, "_CPPv4N4cvc56PluginE"]], "plugin::plugin (c++ function)": [[40, "_CPPv4N4cvc56Plugin6PluginER11TermManager"], [72, "_CPPv4N4cvc56Plugin6PluginER11TermManager"]], "plugin::check (c++ function)": [[40, "_CPPv4N4cvc56Plugin5checkEv"], [72, "_CPPv4N4cvc56Plugin5checkEv"]], "plugin::getname (c++ function)": [[40, "_CPPv4N4cvc56Plugin7getNameEv"], [72, "_CPPv4N4cvc56Plugin7getNameEv"]], "plugin::notifysatclause (c++ function)": [[40, "_CPPv4N4cvc56Plugin15notifySatClauseERK4Term"], [72, "_CPPv4N4cvc56Plugin15notifySatClauseERK4Term"]], "plugin::notifytheorylemma (c++ function)": [[40, "_CPPv4N4cvc56Plugin17notifyTheoryLemmaERK4Term"], [72, "_CPPv4N4cvc56Plugin17notifyTheoryLemmaERK4Term"]], "plugin::~plugin (c++ function)": [[40, "_CPPv4N4cvc56PluginD0Ev"], [72, "_CPPv4N4cvc56PluginD0Ev"]], "proof (c++ class)": [[41, "_CPPv4N4cvc55ProofE"]], "proof::proof (c++ function)": [[41, "_CPPv4N4cvc55Proof5ProofEv"]], "proof::getarguments (c++ function)": [[41, "_CPPv4NK4cvc55Proof12getArgumentsEv"]], "proof::getchildren (c++ function)": [[41, "_CPPv4NK4cvc55Proof11getChildrenEv"]], "proof::getresult (c++ function)": [[41, "_CPPv4NK4cvc55Proof9getResultEv"]], "proof::getrewriterule (c++ function)": [[41, "_CPPv4NK4cvc55Proof14getRewriteRuleEv"]], "proof::getrule (c++ function)": [[41, "_CPPv4NK4cvc55Proof7getRuleEv"]], "proof::isnull (c++ function)": [[41, "_CPPv4NK4cvc55Proof6isNullEv"]], "proof::operator!= (c++ function)": [[41, "_CPPv4NK4cvc55ProofneERK5Proof"]], "proof::operator== (c++ function)": [[41, "_CPPv4NK4cvc55ProofeqERK5Proof"]], "proof::~proof (c++ function)": [[41, "_CPPv4N4cvc55ProofD0Ev"]], "std::hash (c++ struct)": [[41, "_CPPv4IENSt4hashIN4cvc55ProofEEE"]], "std::hash::operator() (c++ function)": [[41, "_CPPv4NKSt4hashIN4cvc55ProofEEclERKN4cvc55ProofE"]], "result (c++ class)": [[42, "_CPPv4N4cvc56ResultE"]], "result::result (c++ function)": [[42, "_CPPv4N4cvc56Result6ResultEv"]], "result::getunknownexplanation (c++ function)": [[42, "_CPPv4NK4cvc56Result21getUnknownExplanationEv"]], "result::isnull (c++ function)": [[42, "_CPPv4NK4cvc56Result6isNullEv"]], "result::issat (c++ function)": [[42, "_CPPv4NK4cvc56Result5isSatEv"]], "result::isunknown (c++ function)": [[42, "_CPPv4NK4cvc56Result9isUnknownEv"]], "result::isunsat (c++ function)": [[42, "_CPPv4NK4cvc56Result7isUnsatEv"]], "result::operator!= (c++ function)": [[42, "_CPPv4NK4cvc56ResultneERK6Result"]], "result::operator== (c++ function)": [[42, "_CPPv4NK4cvc56ResulteqERK6Result"]], "result::tostring (c++ function)": [[42, "_CPPv4NK4cvc56Result8toStringEv"]], "solver (c++ class)": [[43, "_CPPv4N4cvc56SolverE"]], "solver::solver (c++ function)": [[43, "_CPPv4N4cvc56Solver6SolverER11TermManager"], [43, "_CPPv4N4cvc56Solver6SolverERK6Solver"], [43, "_CPPv4N4cvc56Solver6SolverEv"]], "solver::addplugin (c++ function)": [[43, "_CPPv4N4cvc56Solver9addPluginER6Plugin"]], "solver::addsygusassume (c++ function)": [[43, "_CPPv4NK4cvc56Solver14addSygusAssumeERK4Term"]], "solver::addsygusconstraint (c++ function)": [[43, "_CPPv4NK4cvc56Solver18addSygusConstraintERK4Term"]], "solver::addsygusinvconstraint (c++ function)": [[43, "_CPPv4NK4cvc56Solver21addSygusInvConstraintERK4TermRK4TermRK4TermRK4Term"]], "solver::assertformula (c++ function)": [[43, "_CPPv4NK4cvc56Solver13assertFormulaERK4Term"]], "solver::blockmodel (c++ function)": [[43, "_CPPv4NK4cvc56Solver10blockModelEN5modes15BlockModelsModeE"]], "solver::blockmodelvalues (c++ function)": [[43, "_CPPv4NK4cvc56Solver16blockModelValuesERKNSt6vectorI4TermEE"]], "solver::checksat (c++ function)": [[43, "_CPPv4NK4cvc56Solver8checkSatEv"]], "solver::checksatassuming (c++ function)": [[43, "_CPPv4NK4cvc56Solver16checkSatAssumingERK4Term"], [43, "_CPPv4NK4cvc56Solver16checkSatAssumingERKNSt6vectorI4TermEE"]], "solver::checksynth (c++ function)": [[43, "_CPPv4NK4cvc56Solver10checkSynthEv"]], "solver::checksynthnext (c++ function)": [[43, "_CPPv4NK4cvc56Solver14checkSynthNextEv"]], "solver::declaredatatype (c++ function)": [[43, "_CPPv4NK4cvc56Solver15declareDatatypeERKNSt6stringERKNSt6vectorI23DatatypeConstructorDeclEE"]], "solver::declarefun (c++ function)": [[43, "_CPPv4NK4cvc56Solver10declareFunERKNSt6stringERKNSt6vectorI4SortEERK4Sortb"]], "solver::declareoraclefun (c++ function)": [[43, "_CPPv4NK4cvc56Solver16declareOracleFunERKNSt6stringERKNSt6vectorI4SortEERK4SortNSt8functionIF4TermRKNSt6vectorI4TermEEEEE"]], "solver::declarepool (c++ function)": [[43, "_CPPv4NK4cvc56Solver11declarePoolERKNSt6stringERK4SortRKNSt6vectorI4TermEE"]], "solver::declaresepheap (c++ function)": [[43, "_CPPv4NK4cvc56Solver14declareSepHeapERK4SortRK4Sort"]], "solver::declaresort (c++ function)": [[43, "_CPPv4NK4cvc56Solver11declareSortERKNSt6stringE8uint32_tb"]], "solver::declaresygusvar (c++ function)": [[43, "_CPPv4NK4cvc56Solver15declareSygusVarERKNSt6stringERK4Sort"]], "solver::definefun (c++ function)": [[43, "_CPPv4NK4cvc56Solver9defineFunERKNSt6stringERKNSt6vectorI4TermEERK4SortRK4Termb"]], "solver::definefunrec (c++ function)": [[43, "_CPPv4NK4cvc56Solver12defineFunRecERK4TermRKNSt6vectorI4TermEERK4Termb"], [43, "_CPPv4NK4cvc56Solver12defineFunRecERKNSt6stringERKNSt6vectorI4TermEERK4SortRK4Termb"]], "solver::definefunsrec (c++ function)": [[43, "_CPPv4NK4cvc56Solver13defineFunsRecERKNSt6vectorI4TermEERKNSt6vectorINSt6vectorI4TermEEEERKNSt6vectorI4TermEEb"]], "solver::findsynth (c++ function)": [[43, "_CPPv4NK4cvc56Solver9findSynthEN5modes15FindSynthTargetE"], [43, "_CPPv4NK4cvc56Solver9findSynthEN5modes15FindSynthTargetER7Grammar"]], "solver::findsynthnext (c++ function)": [[43, "_CPPv4NK4cvc56Solver13findSynthNextEv"]], "solver::getabduct (c++ function)": [[43, "_CPPv4NK4cvc56Solver9getAbductERK4Term"], [43, "_CPPv4NK4cvc56Solver9getAbductERK4TermR7Grammar"]], "solver::getabductnext (c++ function)": [[43, "_CPPv4NK4cvc56Solver13getAbductNextEv"]], "solver::getassertions (c++ function)": [[43, "_CPPv4NK4cvc56Solver13getAssertionsEv"]], "solver::getbooleansort (c++ function)": [[43, "_CPPv4NK4cvc56Solver14getBooleanSortEv"]], "solver::getdifficulty (c++ function)": [[43, "_CPPv4NK4cvc56Solver13getDifficultyEv"]], "solver::getdriveroptions (c++ function)": [[43, "_CPPv4NK4cvc56Solver16getDriverOptionsEv"]], "solver::getinfo (c++ function)": [[43, "_CPPv4NK4cvc56Solver7getInfoERKNSt6stringE"]], "solver::getinstantiations (c++ function)": [[43, "_CPPv4NK4cvc56Solver17getInstantiationsEv"]], "solver::getintegersort (c++ function)": [[43, "_CPPv4NK4cvc56Solver14getIntegerSortEv"]], "solver::getinterpolant (c++ function)": [[43, "_CPPv4NK4cvc56Solver14getInterpolantERK4Term"], [43, "_CPPv4NK4cvc56Solver14getInterpolantERK4TermR7Grammar"]], "solver::getinterpolantnext (c++ function)": [[43, "_CPPv4NK4cvc56Solver18getInterpolantNextEv"]], "solver::getlearnedliterals (c++ function)": [[43, "_CPPv4NK4cvc56Solver18getLearnedLiteralsEN5modes14LearnedLitTypeE"]], "solver::getlogic (c++ function)": [[43, "_CPPv4NK4cvc56Solver8getLogicEv"]], "solver::getmodel (c++ function)": [[43, "_CPPv4NK4cvc56Solver8getModelERKNSt6vectorI4SortEERKNSt6vectorI4TermEE"]], "solver::getmodeldomainelements (c++ function)": [[43, "_CPPv4NK4cvc56Solver22getModelDomainElementsERK4Sort"]], "solver::getoption (c++ function)": [[43, "_CPPv4NK4cvc56Solver9getOptionERKNSt6stringE"]], "solver::getoptioninfo (c++ function)": [[43, "_CPPv4NK4cvc56Solver13getOptionInfoERKNSt6stringE"]], "solver::getoptionnames (c++ function)": [[43, "_CPPv4NK4cvc56Solver14getOptionNamesEv"]], "solver::getoutput (c++ function)": [[43, "_CPPv4NK4cvc56Solver9getOutputERKNSt6stringE"]], "solver::getproof (c++ function)": [[43, "_CPPv4NK4cvc56Solver8getProofEN5modes14ProofComponentE"]], "solver::getquantifierelimination (c++ function)": [[43, "_CPPv4NK4cvc56Solver24getQuantifierEliminationERK4Term"]], "solver::getquantifiereliminationdisjunct (c++ function)": [[43, "_CPPv4NK4cvc56Solver32getQuantifierEliminationDisjunctERK4Term"]], "solver::getrealsort (c++ function)": [[43, "_CPPv4NK4cvc56Solver11getRealSortEv"]], "solver::getregexpsort (c++ function)": [[43, "_CPPv4NK4cvc56Solver13getRegExpSortEv"]], "solver::getroundingmodesort (c++ function)": [[43, "_CPPv4NK4cvc56Solver19getRoundingModeSortEv"]], "solver::getstatistics (c++ function)": [[43, "_CPPv4NK4cvc56Solver13getStatisticsEv"]], "solver::getstringsort (c++ function)": [[43, "_CPPv4NK4cvc56Solver13getStringSortEv"]], "solver::getsygusassumptions (c++ function)": [[43, "_CPPv4NK4cvc56Solver19getSygusAssumptionsEv"]], "solver::getsygusconstraints (c++ function)": [[43, "_CPPv4NK4cvc56Solver19getSygusConstraintsEv"]], "solver::getsynthsolution (c++ function)": [[43, "_CPPv4NK4cvc56Solver16getSynthSolutionERK4Term"]], "solver::getsynthsolutions (c++ function)": [[43, "_CPPv4NK4cvc56Solver17getSynthSolutionsERKNSt6vectorI4TermEE"]], "solver::gettermmanager (c++ function)": [[43, "_CPPv4NK4cvc56Solver14getTermManagerEv"]], "solver::gettimeoutcore (c++ function)": [[43, "_CPPv4NK4cvc56Solver14getTimeoutCoreEv"]], "solver::gettimeoutcoreassuming (c++ function)": [[43, "_CPPv4NK4cvc56Solver22getTimeoutCoreAssumingERKNSt6vectorI4TermEE"]], "solver::getunsatassumptions (c++ function)": [[43, "_CPPv4NK4cvc56Solver19getUnsatAssumptionsEv"]], "solver::getunsatcore (c++ function)": [[43, "_CPPv4NK4cvc56Solver12getUnsatCoreEv"]], "solver::getunsatcorelemmas (c++ function)": [[43, "_CPPv4NK4cvc56Solver18getUnsatCoreLemmasEv"]], "solver::getvalue (c++ function)": [[43, "_CPPv4NK4cvc56Solver8getValueERK4Term"], [43, "_CPPv4NK4cvc56Solver8getValueERKNSt6vectorI4TermEE"]], "solver::getvaluesepheap (c++ function)": [[43, "_CPPv4NK4cvc56Solver15getValueSepHeapEv"]], "solver::getvaluesepnil (c++ function)": [[43, "_CPPv4NK4cvc56Solver14getValueSepNilEv"]], "solver::getversion (c++ function)": [[43, "_CPPv4NK4cvc56Solver10getVersionEv"]], "solver::islogicset (c++ function)": [[43, "_CPPv4NK4cvc56Solver10isLogicSetEv"]], "solver::ismodelcoresymbol (c++ function)": [[43, "_CPPv4NK4cvc56Solver17isModelCoreSymbolERK4Term"]], "solver::isoutputon (c++ function)": [[43, "_CPPv4NK4cvc56Solver10isOutputOnERKNSt6stringE"]], "solver::mkabstractsort (c++ function)": [[43, "_CPPv4NK4cvc56Solver14mkAbstractSortE8SortKind"]], "solver::mkarraysort (c++ function)": [[43, "_CPPv4NK4cvc56Solver11mkArraySortERK4SortRK4Sort"]], "solver::mkbagsort (c++ function)": [[43, "_CPPv4NK4cvc56Solver9mkBagSortERK4Sort"]], "solver::mkbitvector (c++ function)": [[43, "_CPPv4NK4cvc56Solver11mkBitVectorE8uint32_t8uint64_t"], [43, "_CPPv4NK4cvc56Solver11mkBitVectorE8uint32_tRKNSt6stringE8uint32_t"]], "solver::mkbitvectorsort (c++ function)": [[43, "_CPPv4NK4cvc56Solver15mkBitVectorSortE8uint32_t"]], "solver::mkboolean (c++ function)": [[43, "_CPPv4NK4cvc56Solver9mkBooleanEb"]], "solver::mkcardinalityconstraint (c++ function)": [[43, "_CPPv4NK4cvc56Solver23mkCardinalityConstraintERK4Sort8uint32_t"]], "solver::mkconst (c++ function)": [[43, "_CPPv4NK4cvc56Solver7mkConstERK4SortRKNSt8optionalINSt6stringEEE"]], "solver::mkconstarray (c++ function)": [[43, "_CPPv4NK4cvc56Solver12mkConstArrayERK4SortRK4Term"]], "solver::mkdatatypeconstructordecl (c++ function)": [[43, "_CPPv4N4cvc56Solver25mkDatatypeConstructorDeclERKNSt6stringE"]], "solver::mkdatatypedecl (c++ function)": [[43, "_CPPv4N4cvc56Solver14mkDatatypeDeclERKNSt6stringERKNSt6vectorI4SortEEb"], [43, "_CPPv4N4cvc56Solver14mkDatatypeDeclERKNSt6stringEb"]], "solver::mkdatatypesort (c++ function)": [[43, "_CPPv4NK4cvc56Solver14mkDatatypeSortERK12DatatypeDecl"]], "solver::mkdatatypesorts (c++ function)": [[43, "_CPPv4NK4cvc56Solver15mkDatatypeSortsERKNSt6vectorI12DatatypeDeclEE"]], "solver::mkemptybag (c++ function)": [[43, "_CPPv4NK4cvc56Solver10mkEmptyBagERK4Sort"]], "solver::mkemptysequence (c++ function)": [[43, "_CPPv4NK4cvc56Solver15mkEmptySequenceERK4Sort"]], "solver::mkemptyset (c++ function)": [[43, "_CPPv4NK4cvc56Solver10mkEmptySetERK4Sort"]], "solver::mkfalse (c++ function)": [[43, "_CPPv4NK4cvc56Solver7mkFalseEv"]], "solver::mkfinitefieldelem (c++ function)": [[43, "_CPPv4NK4cvc56Solver17mkFiniteFieldElemERKNSt6stringERK4Sort8uint32_t"]], "solver::mkfinitefieldsort (c++ function)": [[43, "_CPPv4NK4cvc56Solver17mkFiniteFieldSortERKNSt6stringE8uint32_t"]], "solver::mkfloatingpoint (c++ function)": [[43, "_CPPv4NK4cvc56Solver15mkFloatingPointE8uint32_t8uint32_tRK4Term"], [43, "_CPPv4NK4cvc56Solver15mkFloatingPointERK4TermRK4TermRK4Term"]], "solver::mkfloatingpointnan (c++ function)": [[43, "_CPPv4NK4cvc56Solver18mkFloatingPointNaNE8uint32_t8uint32_t"]], "solver::mkfloatingpointneginf (c++ function)": [[43, "_CPPv4NK4cvc56Solver21mkFloatingPointNegInfE8uint32_t8uint32_t"]], "solver::mkfloatingpointnegzero (c++ function)": [[43, "_CPPv4NK4cvc56Solver22mkFloatingPointNegZeroE8uint32_t8uint32_t"]], "solver::mkfloatingpointposinf (c++ function)": [[43, "_CPPv4NK4cvc56Solver21mkFloatingPointPosInfE8uint32_t8uint32_t"]], "solver::mkfloatingpointposzero (c++ function)": [[43, "_CPPv4NK4cvc56Solver22mkFloatingPointPosZeroE8uint32_t8uint32_t"]], "solver::mkfloatingpointsort (c++ function)": [[43, "_CPPv4NK4cvc56Solver19mkFloatingPointSortE8uint32_t8uint32_t"]], "solver::mkfunctionsort (c++ function)": [[43, "_CPPv4NK4cvc56Solver14mkFunctionSortERKNSt6vectorI4SortEERK4Sort"]], "solver::mkgrammar (c++ function)": [[43, "_CPPv4NK4cvc56Solver9mkGrammarERKNSt6vectorI4TermEERKNSt6vectorI4TermEE"]], "solver::mkinteger (c++ function)": [[43, "_CPPv4NK4cvc56Solver9mkIntegerE7int64_t"], [43, "_CPPv4NK4cvc56Solver9mkIntegerERKNSt6stringE"]], "solver::mknullableisnull (c++ function)": [[43, "_CPPv4NK4cvc56Solver16mkNullableIsNullERK4Term"]], "solver::mknullableissome (c++ function)": [[43, "_CPPv4NK4cvc56Solver16mkNullableIsSomeERK4Term"]], "solver::mknullablelift (c++ function)": [[43, "_CPPv4NK4cvc56Solver14mkNullableLiftE4KindRKNSt6vectorI4TermEE"]], "solver::mknullablenull (c++ function)": [[43, "_CPPv4NK4cvc56Solver14mkNullableNullERK4Sort"]], "solver::mknullablesome (c++ function)": [[43, "_CPPv4NK4cvc56Solver14mkNullableSomeERK4Term"]], "solver::mknullablesort (c++ function)": [[43, "_CPPv4NK4cvc56Solver14mkNullableSortERK4Sort"]], "solver::mknullableval (c++ function)": [[43, "_CPPv4NK4cvc56Solver13mkNullableValERK4Term"]], "solver::mkop (c++ function)": [[43, "_CPPv4NK4cvc56Solver4mkOpE4KindRKNSt6stringE"], [43, "_CPPv4NK4cvc56Solver4mkOpE4KindRKNSt6vectorI8uint32_tEE"]], "solver::mkparamsort (c++ function)": [[43, "_CPPv4NK4cvc56Solver11mkParamSortERKNSt8optionalINSt6stringEEE"]], "solver::mkpi (c++ function)": [[43, "_CPPv4NK4cvc56Solver4mkPiEv"]], "solver::mkpredicatesort (c++ function)": [[43, "_CPPv4NK4cvc56Solver15mkPredicateSortERKNSt6vectorI4SortEE"]], "solver::mkreal (c++ function)": [[43, "_CPPv4NK4cvc56Solver6mkRealE7int64_t"], [43, "_CPPv4NK4cvc56Solver6mkRealE7int64_t7int64_t"], [43, "_CPPv4NK4cvc56Solver6mkRealERKNSt6stringE"]], "solver::mkrecordsort (c++ function)": [[43, "_CPPv4NK4cvc56Solver12mkRecordSortERKNSt6vectorINSt4pairINSt6stringE4SortEEEE"]], "solver::mkregexpall (c++ function)": [[43, "_CPPv4NK4cvc56Solver11mkRegexpAllEv"]], "solver::mkregexpallchar (c++ function)": [[43, "_CPPv4NK4cvc56Solver15mkRegexpAllcharEv"]], "solver::mkregexpnone (c++ function)": [[43, "_CPPv4NK4cvc56Solver12mkRegexpNoneEv"]], "solver::mkroundingmode (c++ function)": [[43, "_CPPv4NK4cvc56Solver14mkRoundingModeE12RoundingMode"]], "solver::mksepemp (c++ function)": [[43, "_CPPv4NK4cvc56Solver8mkSepEmpEv"]], "solver::mksepnil (c++ function)": [[43, "_CPPv4NK4cvc56Solver8mkSepNilERK4Sort"]], "solver::mksequencesort (c++ function)": [[43, "_CPPv4NK4cvc56Solver14mkSequenceSortERK4Sort"]], "solver::mksetsort (c++ function)": [[43, "_CPPv4NK4cvc56Solver9mkSetSortERK4Sort"]], "solver::mkstring (c++ function)": [[43, "_CPPv4NK4cvc56Solver8mkStringERKNSt6stringEb"], [43, "_CPPv4NK4cvc56Solver8mkStringERKNSt7wstringE"]], "solver::mkterm (c++ function)": [[43, "_CPPv4NK4cvc56Solver6mkTermE4KindRKNSt6vectorI4TermEE"], [43, "_CPPv4NK4cvc56Solver6mkTermERK2OpRKNSt6vectorI4TermEE"]], "solver::mktrue (c++ function)": [[43, "_CPPv4NK4cvc56Solver6mkTrueEv"]], "solver::mktuple (c++ function)": [[43, "_CPPv4NK4cvc56Solver7mkTupleERKNSt6vectorI4TermEE"]], "solver::mktuplesort (c++ function)": [[43, "_CPPv4NK4cvc56Solver11mkTupleSortERKNSt6vectorI4SortEE"]], "solver::mkuninterpretedsort (c++ function)": [[43, "_CPPv4NK4cvc56Solver19mkUninterpretedSortERKNSt8optionalINSt6stringEEE"]], "solver::mkuninterpretedsortconstructorsort (c++ function)": [[43, "_CPPv4NK4cvc56Solver34mkUninterpretedSortConstructorSortE6size_tRKNSt8optionalINSt6stringEEE"]], "solver::mkuniverseset (c++ function)": [[43, "_CPPv4NK4cvc56Solver13mkUniverseSetERK4Sort"]], "solver::mkunresolveddatatypesort (c++ function)": [[43, "_CPPv4NK4cvc56Solver24mkUnresolvedDatatypeSortERKNSt6stringE6size_t"]], "solver::mkvar (c++ function)": [[43, "_CPPv4NK4cvc56Solver5mkVarERK4SortRKNSt8optionalINSt6stringEEE"]], "solver::operator= (c++ function)": [[43, "_CPPv4N4cvc56SolveraSERK6Solver"]], "solver::pop (c++ function)": [[43, "_CPPv4NK4cvc56Solver3popE8uint32_t"]], "solver::printstatisticssafe (c++ function)": [[43, "_CPPv4NK4cvc56Solver19printStatisticsSafeEi"]], "solver::prooftostring (c++ function)": [[43, "_CPPv4NK4cvc56Solver13proofToStringE5ProofN5modes11ProofFormatERKNSt3mapIN4cvc54TermENSt6stringEEE"]], "solver::push (c++ function)": [[43, "_CPPv4NK4cvc56Solver4pushE8uint32_t"]], "solver::resetassertions (c++ function)": [[43, "_CPPv4NK4cvc56Solver15resetAssertionsEv"]], "solver::setinfo (c++ function)": [[43, "_CPPv4NK4cvc56Solver7setInfoERKNSt6stringERKNSt6stringE"]], "solver::setlogic (c++ function)": [[43, "_CPPv4NK4cvc56Solver8setLogicERKNSt6stringE"]], "solver::setoption (c++ function)": [[43, "_CPPv4NK4cvc56Solver9setOptionERKNSt6stringERKNSt6stringE"]], "solver::simplify (c++ function)": [[43, "_CPPv4N4cvc56Solver8simplifyERK4Termb"]], "solver::synthfun (c++ function)": [[43, "_CPPv4NK4cvc56Solver8synthFunERKNSt6stringERKNSt6vectorI4TermEE4SortR7Grammar"], [43, "_CPPv4NK4cvc56Solver8synthFunERKNSt6stringERKNSt6vectorI4TermEERK4Sort"]], "solver::~solver (c++ function)": [[43, "_CPPv4N4cvc56SolverD0Ev"]], "sort (c++ class)": [[44, "_CPPv4N4cvc54SortE"]], "sort::sort (c++ function)": [[44, "_CPPv4N4cvc54Sort4SortEv"]], "sort::getabstractedkind (c++ function)": [[44, "_CPPv4NK4cvc54Sort17getAbstractedKindEv"]], "sort::getarrayelementsort (c++ function)": [[44, "_CPPv4NK4cvc54Sort19getArrayElementSortEv"]], "sort::getarrayindexsort (c++ function)": [[44, "_CPPv4NK4cvc54Sort17getArrayIndexSortEv"]], "sort::getbagelementsort (c++ function)": [[44, "_CPPv4NK4cvc54Sort17getBagElementSortEv"]], "sort::getbitvectorsize (c++ function)": [[44, "_CPPv4NK4cvc54Sort16getBitVectorSizeEv"]], "sort::getdatatype (c++ function)": [[44, "_CPPv4NK4cvc54Sort11getDatatypeEv"]], "sort::getdatatypearity (c++ function)": [[44, "_CPPv4NK4cvc54Sort16getDatatypeArityEv"]], "sort::getdatatypeconstructorarity (c++ function)": [[44, "_CPPv4NK4cvc54Sort27getDatatypeConstructorArityEv"]], "sort::getdatatypeconstructorcodomainsort (c++ function)": [[44, "_CPPv4NK4cvc54Sort34getDatatypeConstructorCodomainSortEv"]], "sort::getdatatypeconstructordomainsorts (c++ function)": [[44, "_CPPv4NK4cvc54Sort33getDatatypeConstructorDomainSortsEv"]], "sort::getdatatypeselectorcodomainsort (c++ function)": [[44, "_CPPv4NK4cvc54Sort31getDatatypeSelectorCodomainSortEv"]], "sort::getdatatypeselectordomainsort (c++ function)": [[44, "_CPPv4NK4cvc54Sort29getDatatypeSelectorDomainSortEv"]], "sort::getdatatypetestercodomainsort (c++ function)": [[44, "_CPPv4NK4cvc54Sort29getDatatypeTesterCodomainSortEv"]], "sort::getdatatypetesterdomainsort (c++ function)": [[44, "_CPPv4NK4cvc54Sort27getDatatypeTesterDomainSortEv"]], "sort::getfinitefieldsize (c++ function)": [[44, "_CPPv4NK4cvc54Sort18getFiniteFieldSizeEv"]], "sort::getfloatingpointexponentsize (c++ function)": [[44, "_CPPv4NK4cvc54Sort28getFloatingPointExponentSizeEv"]], "sort::getfloatingpointsignificandsize (c++ function)": [[44, "_CPPv4NK4cvc54Sort31getFloatingPointSignificandSizeEv"]], "sort::getfunctionarity (c++ function)": [[44, "_CPPv4NK4cvc54Sort16getFunctionArityEv"]], "sort::getfunctioncodomainsort (c++ function)": [[44, "_CPPv4NK4cvc54Sort23getFunctionCodomainSortEv"]], "sort::getfunctiondomainsorts (c++ function)": [[44, "_CPPv4NK4cvc54Sort22getFunctionDomainSortsEv"]], "sort::getinstantiatedparameters (c++ function)": [[44, "_CPPv4NK4cvc54Sort25getInstantiatedParametersEv"]], "sort::getkind (c++ function)": [[44, "_CPPv4NK4cvc54Sort7getKindEv"]], "sort::getnullableelementsort (c++ function)": [[44, "_CPPv4NK4cvc54Sort22getNullableElementSortEv"]], "sort::getsequenceelementsort (c++ function)": [[44, "_CPPv4NK4cvc54Sort22getSequenceElementSortEv"]], "sort::getsetelementsort (c++ function)": [[44, "_CPPv4NK4cvc54Sort17getSetElementSortEv"]], "sort::getsymbol (c++ function)": [[44, "_CPPv4NK4cvc54Sort9getSymbolEv"]], "sort::gettuplelength (c++ function)": [[44, "_CPPv4NK4cvc54Sort14getTupleLengthEv"]], "sort::gettuplesorts (c++ function)": [[44, "_CPPv4NK4cvc54Sort13getTupleSortsEv"]], "sort::getuninterpretedsortconstructor (c++ function)": [[44, "_CPPv4NK4cvc54Sort31getUninterpretedSortConstructorEv"]], "sort::getuninterpretedsortconstructorarity (c++ function)": [[44, "_CPPv4NK4cvc54Sort36getUninterpretedSortConstructorArityEv"]], "sort::hassymbol (c++ function)": [[44, "_CPPv4NK4cvc54Sort9hasSymbolEv"]], "sort::instantiate (c++ function)": [[44, "_CPPv4NK4cvc54Sort11instantiateERKNSt6vectorI4SortEE"]], "sort::isabstract (c++ function)": [[44, "_CPPv4NK4cvc54Sort10isAbstractEv"]], "sort::isarray (c++ function)": [[44, "_CPPv4NK4cvc54Sort7isArrayEv"]], "sort::isbag (c++ function)": [[44, "_CPPv4NK4cvc54Sort5isBagEv"]], "sort::isbitvector (c++ function)": [[44, "_CPPv4NK4cvc54Sort11isBitVectorEv"]], "sort::isboolean (c++ function)": [[44, "_CPPv4NK4cvc54Sort9isBooleanEv"]], "sort::isdatatype (c++ function)": [[44, "_CPPv4NK4cvc54Sort10isDatatypeEv"]], "sort::isdatatypeconstructor (c++ function)": [[44, "_CPPv4NK4cvc54Sort21isDatatypeConstructorEv"]], "sort::isdatatypeselector (c++ function)": [[44, "_CPPv4NK4cvc54Sort18isDatatypeSelectorEv"]], "sort::isdatatypetester (c++ function)": [[44, "_CPPv4NK4cvc54Sort16isDatatypeTesterEv"]], "sort::isdatatypeupdater (c++ function)": [[44, "_CPPv4NK4cvc54Sort17isDatatypeUpdaterEv"]], "sort::isfinitefield (c++ function)": [[44, "_CPPv4NK4cvc54Sort13isFiniteFieldEv"]], "sort::isfloatingpoint (c++ function)": [[44, "_CPPv4NK4cvc54Sort15isFloatingPointEv"]], "sort::isfunction (c++ function)": [[44, "_CPPv4NK4cvc54Sort10isFunctionEv"]], "sort::isinstantiated (c++ function)": [[44, "_CPPv4NK4cvc54Sort14isInstantiatedEv"]], "sort::isinteger (c++ function)": [[44, "_CPPv4NK4cvc54Sort9isIntegerEv"]], "sort::isnull (c++ function)": [[44, "_CPPv4NK4cvc54Sort6isNullEv"]], "sort::isnullable (c++ function)": [[44, "_CPPv4NK4cvc54Sort10isNullableEv"]], "sort::ispredicate (c++ function)": [[44, "_CPPv4NK4cvc54Sort11isPredicateEv"]], "sort::isreal (c++ function)": [[44, "_CPPv4NK4cvc54Sort6isRealEv"]], "sort::isrecord (c++ function)": [[44, "_CPPv4NK4cvc54Sort8isRecordEv"]], "sort::isregexp (c++ function)": [[44, "_CPPv4NK4cvc54Sort8isRegExpEv"]], "sort::isroundingmode (c++ function)": [[44, "_CPPv4NK4cvc54Sort14isRoundingModeEv"]], "sort::issequence (c++ function)": [[44, "_CPPv4NK4cvc54Sort10isSequenceEv"]], "sort::isset (c++ function)": [[44, "_CPPv4NK4cvc54Sort5isSetEv"]], "sort::isstring (c++ function)": [[44, "_CPPv4NK4cvc54Sort8isStringEv"]], "sort::istuple (c++ function)": [[44, "_CPPv4NK4cvc54Sort7isTupleEv"]], "sort::isuninterpretedsort (c++ function)": [[44, "_CPPv4NK4cvc54Sort19isUninterpretedSortEv"]], "sort::isuninterpretedsortconstructor (c++ function)": [[44, "_CPPv4NK4cvc54Sort30isUninterpretedSortConstructorEv"]], "sort::operator!= (c++ function)": [[44, "_CPPv4NK4cvc54SortneERK4Sort"]], "sort::operator< (c++ function)": [[44, "_CPPv4NK4cvc54SortltERK4Sort"]], "sort::operator<= (c++ function)": [[44, "_CPPv4NK4cvc54SortleERK4Sort"]], "sort::operator== (c++ function)": [[44, "_CPPv4NK4cvc54SorteqERK4Sort"]], "sort::operator> (c++ function)": [[44, "_CPPv4NK4cvc54SortgtERK4Sort"]], "sort::operator>= (c++ function)": [[44, "_CPPv4NK4cvc54SortgeERK4Sort"]], "sort::substitute (c++ function)": [[44, "_CPPv4NK4cvc54Sort10substituteERK4SortRK4Sort"], [44, "_CPPv4NK4cvc54Sort10substituteERKNSt6vectorI4SortEERKNSt6vectorI4SortEE"]], "sort::tostream (c++ function)": [[44, "_CPPv4NK4cvc54Sort8toStreamERNSt7ostreamE"]], "sort::tostring (c++ function)": [[44, "_CPPv4NK4cvc54Sort8toStringEv"]], "sort::~sort (c++ function)": [[44, "_CPPv4N4cvc54SortD0Ev"]], "std::hash (c++ struct)": [[44, "_CPPv4IENSt4hashIN4cvc54SortEEE"]], "std::hash::operator() (c++ function)": [[44, "_CPPv4NKSt4hashIN4cvc54SortEEclERKN4cvc54SortE"]], "stat (c++ class)": [[45, "_CPPv4N4cvc54StatE"]], "stat::histogramdata (c++ type)": [[45, "_CPPv4N4cvc54Stat13HistogramDataE"]], "stat::stat (c++ function)": [[45, "_CPPv4N4cvc54Stat4StatERK4Stat"], [45, "_CPPv4N4cvc54Stat4StatEv"]], "stat::getdouble (c++ function)": [[45, "_CPPv4NK4cvc54Stat9getDoubleEv"]], "stat::gethistogram (c++ function)": [[45, "_CPPv4NK4cvc54Stat12getHistogramEv"]], "stat::getint (c++ function)": [[45, "_CPPv4NK4cvc54Stat6getIntEv"]], "stat::getstring (c++ function)": [[45, "_CPPv4NK4cvc54Stat9getStringEv"]], "stat::isdefault (c++ function)": [[45, "_CPPv4NK4cvc54Stat9isDefaultEv"]], "stat::isdouble (c++ function)": [[45, "_CPPv4NK4cvc54Stat8isDoubleEv"]], "stat::ishistogram (c++ function)": [[45, "_CPPv4NK4cvc54Stat11isHistogramEv"]], "stat::isint (c++ function)": [[45, "_CPPv4NK4cvc54Stat5isIntEv"]], "stat::isinternal (c++ function)": [[45, "_CPPv4NK4cvc54Stat10isInternalEv"]], "stat::isstring (c++ function)": [[45, "_CPPv4NK4cvc54Stat8isStringEv"]], "stat::operator<< (c++ function)": [[45, "_CPPv4N4cvc54StatlsERNSt7ostreamERK4Stat"]], "stat::operator= (c++ function)": [[45, "_CPPv4N4cvc54StataSERK4Stat"]], "stat::tostring (c++ function)": [[45, "_CPPv4NK4cvc54Stat8toStringEv"]], "stat::~stat (c++ function)": [[45, "_CPPv4N4cvc54StatD0Ev"]], "statistics (c++ class)": [[45, "_CPPv4N4cvc510StatisticsE"]], "statistics::begin (c++ function)": [[45, "_CPPv4NK4cvc510Statistics5beginEbb"]], "statistics::end (c++ function)": [[45, "_CPPv4NK4cvc510Statistics3endEv"]], "statistics::get (c++ function)": [[45, "_CPPv4N4cvc510Statistics3getERKNSt6stringE"]], "parser::symbolmanager (c++ class)": [[46, "_CPPv4N4cvc56parser13SymbolManagerE"]], "parser::symbolmanager::symbolmanager (c++ function)": [[46, "_CPPv4N4cvc56parser13SymbolManager13SymbolManagerEPN4cvc56SolverE"], [46, "_CPPv4N4cvc56parser13SymbolManager13SymbolManagerERN4cvc511TermManagerE"]], "parser::symbolmanager::getdeclaredsorts (c++ function)": [[46, "_CPPv4NK4cvc56parser13SymbolManager16getDeclaredSortsEv"]], "parser::symbolmanager::getdeclaredterms (c++ function)": [[46, "_CPPv4NK4cvc56parser13SymbolManager16getDeclaredTermsEv"]], "parser::symbolmanager::getlogic (c++ function)": [[46, "_CPPv4NK4cvc56parser13SymbolManager8getLogicEv"]], "parser::symbolmanager::getnamedterms (c++ function)": [[46, "_CPPv4NK4cvc56parser13SymbolManager13getNamedTermsEv"]], "parser::symbolmanager::islogicset (c++ function)": [[46, "_CPPv4NK4cvc56parser13SymbolManager10isLogicSetEv"]], "parser::symbolmanager::~symbolmanager (c++ function)": [[46, "_CPPv4N4cvc56parser13SymbolManagerD0Ev"]], "synthresult (c++ class)": [[47, "_CPPv4N4cvc511SynthResultE"]], "synthresult::synthresult (c++ function)": [[47, "_CPPv4N4cvc511SynthResult11SynthResultEv"]], "synthresult::hasnosolution (c++ function)": [[47, "_CPPv4NK4cvc511SynthResult13hasNoSolutionEv"]], "synthresult::hassolution (c++ function)": [[47, "_CPPv4NK4cvc511SynthResult11hasSolutionEv"]], "synthresult::isnull (c++ function)": [[47, "_CPPv4NK4cvc511SynthResult6isNullEv"]], "synthresult::isunknown (c++ function)": [[47, "_CPPv4NK4cvc511SynthResult9isUnknownEv"]], "synthresult::operator!= (c++ function)": [[47, "_CPPv4NK4cvc511SynthResultneERK11SynthResult"]], "synthresult::operator== (c++ function)": [[47, "_CPPv4NK4cvc511SynthResulteqERK11SynthResult"]], "synthresult::tostring (c++ function)": [[47, "_CPPv4NK4cvc511SynthResult8toStringEv"]], "term (c++ class)": [[48, "_CPPv4N4cvc54TermE"]], "term::term (c++ function)": [[48, "_CPPv4N4cvc54Term4TermEv"]], "term::andterm (c++ function)": [[48, "_CPPv4NK4cvc54Term7andTermERK4Term"]], "term::begin (c++ function)": [[48, "_CPPv4NK4cvc54Term5beginEv"]], "term::const_iterator (c++ class)": [[48, "_CPPv4N4cvc54Term14const_iteratorE"]], "term::const_iterator::const_iterator (c++ function)": [[48, "_CPPv4N4cvc54Term14const_iterator14const_iteratorEP11TermManagerRKNSt10shared_ptrIN8internal4NodeEEE8uint32_t"], [48, "_CPPv4N4cvc54Term14const_iterator14const_iteratorERK14const_iterator"], [48, "_CPPv4N4cvc54Term14const_iterator14const_iteratorEv"]], "term::const_iterator::difference_type (c++ type)": [[48, "_CPPv4N4cvc54Term14const_iterator15difference_typeE"]], "term::const_iterator::iterator_category (c++ type)": [[48, "_CPPv4N4cvc54Term14const_iterator17iterator_categoryE"]], "term::const_iterator::operator!= (c++ function)": [[48, "_CPPv4NK4cvc54Term14const_iteratorneERK14const_iterator"]], "term::const_iterator::operator* (c++ function)": [[48, "_CPPv4NK4cvc54Term14const_iteratormlEv"]], "term::const_iterator::operator++ (c++ function)": [[48, "_CPPv4N4cvc54Term14const_iteratorppEi"], [48, "_CPPv4N4cvc54Term14const_iteratorppEv"]], "term::const_iterator::operator= (c++ function)": [[48, "_CPPv4N4cvc54Term14const_iteratoraSERK14const_iterator"]], "term::const_iterator::operator== (c++ function)": [[48, "_CPPv4NK4cvc54Term14const_iteratoreqERK14const_iterator"]], "term::const_iterator::pointer (c++ type)": [[48, "_CPPv4N4cvc54Term14const_iterator7pointerE"]], "term::const_iterator::reference (c++ type)": [[48, "_CPPv4N4cvc54Term14const_iterator9referenceE"]], "term::const_iterator::value_type (c++ type)": [[48, "_CPPv4N4cvc54Term14const_iterator10value_typeE"]], "term::end (c++ function)": [[48, "_CPPv4NK4cvc54Term3endEv"]], "term::eqterm (c++ function)": [[48, "_CPPv4NK4cvc54Term6eqTermERK4Term"]], "term::getbitvectorvalue (c++ function)": [[48, "_CPPv4NK4cvc54Term17getBitVectorValueE8uint32_t"]], "term::getbooleanvalue (c++ function)": [[48, "_CPPv4NK4cvc54Term15getBooleanValueEv"]], "term::getcardinalityconstraint (c++ function)": [[48, "_CPPv4NK4cvc54Term24getCardinalityConstraintEv"]], "term::getconstarraybase (c++ function)": [[48, "_CPPv4NK4cvc54Term17getConstArrayBaseEv"]], "term::getfinitefieldvalue (c++ function)": [[48, "_CPPv4NK4cvc54Term19getFiniteFieldValueEv"]], "term::getfloatingpointvalue (c++ function)": [[48, "_CPPv4NK4cvc54Term21getFloatingPointValueEv"]], "term::getid (c++ function)": [[48, "_CPPv4NK4cvc54Term5getIdEv"]], "term::getint32value (c++ function)": [[48, "_CPPv4NK4cvc54Term13getInt32ValueEv"]], "term::getint64value (c++ function)": [[48, "_CPPv4NK4cvc54Term13getInt64ValueEv"]], "term::getintegervalue (c++ function)": [[48, "_CPPv4NK4cvc54Term15getIntegerValueEv"]], "term::getkind (c++ function)": [[48, "_CPPv4NK4cvc54Term7getKindEv"]], "term::getnumchildren (c++ function)": [[48, "_CPPv4NK4cvc54Term14getNumChildrenEv"]], "term::getop (c++ function)": [[48, "_CPPv4NK4cvc54Term5getOpEv"]], "term::getreal32value (c++ function)": [[48, "_CPPv4NK4cvc54Term14getReal32ValueEv"]], "term::getreal64value (c++ function)": [[48, "_CPPv4NK4cvc54Term14getReal64ValueEv"]], "term::getrealalgebraicnumberdefiningpolynomial (c++ function)": [[48, "_CPPv4NK4cvc54Term40getRealAlgebraicNumberDefiningPolynomialERK4Term"]], "term::getrealalgebraicnumberlowerbound (c++ function)": [[48, "_CPPv4NK4cvc54Term32getRealAlgebraicNumberLowerBoundEv"]], "term::getrealalgebraicnumberupperbound (c++ function)": [[48, "_CPPv4NK4cvc54Term32getRealAlgebraicNumberUpperBoundEv"]], "term::getrealorintegervaluesign (c++ function)": [[48, "_CPPv4NK4cvc54Term25getRealOrIntegerValueSignEv"]], "term::getrealvalue (c++ function)": [[48, "_CPPv4NK4cvc54Term12getRealValueEv"]], "term::getroundingmodevalue (c++ function)": [[48, "_CPPv4NK4cvc54Term20getRoundingModeValueEv"]], "term::getsequencevalue (c++ function)": [[48, "_CPPv4NK4cvc54Term16getSequenceValueEv"]], "term::getsetvalue (c++ function)": [[48, "_CPPv4NK4cvc54Term11getSetValueEv"]], "term::getskolemid (c++ function)": [[48, "_CPPv4NK4cvc54Term11getSkolemIdEv"]], "term::getskolemindices (c++ function)": [[48, "_CPPv4NK4cvc54Term16getSkolemIndicesEv"]], "term::getsort (c++ function)": [[48, "_CPPv4NK4cvc54Term7getSortEv"]], "term::getstringvalue (c++ function)": [[48, "_CPPv4NK4cvc54Term14getStringValueEv"]], "term::getsymbol (c++ function)": [[48, "_CPPv4NK4cvc54Term9getSymbolEv"]], "term::gettuplevalue (c++ function)": [[48, "_CPPv4NK4cvc54Term13getTupleValueEv"]], "term::getuint32value (c++ function)": [[48, "_CPPv4NK4cvc54Term14getUInt32ValueEv"]], "term::getuint64value (c++ function)": [[48, "_CPPv4NK4cvc54Term14getUInt64ValueEv"]], "term::getuninterpretedsortvalue (c++ function)": [[48, "_CPPv4NK4cvc54Term25getUninterpretedSortValueEv"]], "term::hasop (c++ function)": [[48, "_CPPv4NK4cvc54Term5hasOpEv"]], "term::hassymbol (c++ function)": [[48, "_CPPv4NK4cvc54Term9hasSymbolEv"]], "term::impterm (c++ function)": [[48, "_CPPv4NK4cvc54Term7impTermERK4Term"]], "term::isbitvectorvalue (c++ function)": [[48, "_CPPv4NK4cvc54Term16isBitVectorValueEv"]], "term::isbooleanvalue (c++ function)": [[48, "_CPPv4NK4cvc54Term14isBooleanValueEv"]], "term::iscardinalityconstraint (c++ function)": [[48, "_CPPv4NK4cvc54Term23isCardinalityConstraintEv"]], "term::isconstarray (c++ function)": [[48, "_CPPv4NK4cvc54Term12isConstArrayEv"]], "term::isfinitefieldvalue (c++ function)": [[48, "_CPPv4NK4cvc54Term18isFiniteFieldValueEv"]], "term::isfloatingpointnan (c++ function)": [[48, "_CPPv4NK4cvc54Term18isFloatingPointNaNEv"]], "term::isfloatingpointneginf (c++ function)": [[48, "_CPPv4NK4cvc54Term21isFloatingPointNegInfEv"]], "term::isfloatingpointnegzero (c++ function)": [[48, "_CPPv4NK4cvc54Term22isFloatingPointNegZeroEv"]], "term::isfloatingpointposinf (c++ function)": [[48, "_CPPv4NK4cvc54Term21isFloatingPointPosInfEv"]], "term::isfloatingpointposzero (c++ function)": [[48, "_CPPv4NK4cvc54Term22isFloatingPointPosZeroEv"]], "term::isfloatingpointvalue (c++ function)": [[48, "_CPPv4NK4cvc54Term20isFloatingPointValueEv"]], "term::isint32value (c++ function)": [[48, "_CPPv4NK4cvc54Term12isInt32ValueEv"]], "term::isint64value (c++ function)": [[48, "_CPPv4NK4cvc54Term12isInt64ValueEv"]], "term::isintegervalue (c++ function)": [[48, "_CPPv4NK4cvc54Term14isIntegerValueEv"]], "term::isnull (c++ function)": [[48, "_CPPv4NK4cvc54Term6isNullEv"]], "term::isreal32value (c++ function)": [[48, "_CPPv4NK4cvc54Term13isReal32ValueEv"]], "term::isreal64value (c++ function)": [[48, "_CPPv4NK4cvc54Term13isReal64ValueEv"]], "term::isrealalgebraicnumber (c++ function)": [[48, "_CPPv4NK4cvc54Term21isRealAlgebraicNumberEv"]], "term::isrealvalue (c++ function)": [[48, "_CPPv4NK4cvc54Term11isRealValueEv"]], "term::isroundingmodevalue (c++ function)": [[48, "_CPPv4NK4cvc54Term19isRoundingModeValueEv"]], "term::issequencevalue (c++ function)": [[48, "_CPPv4NK4cvc54Term15isSequenceValueEv"]], "term::issetvalue (c++ function)": [[48, "_CPPv4NK4cvc54Term10isSetValueEv"]], "term::isskolem (c++ function)": [[48, "_CPPv4NK4cvc54Term8isSkolemEv"]], "term::isstringvalue (c++ function)": [[48, "_CPPv4NK4cvc54Term13isStringValueEv"]], "term::istuplevalue (c++ function)": [[48, "_CPPv4NK4cvc54Term12isTupleValueEv"]], "term::isuint32value (c++ function)": [[48, "_CPPv4NK4cvc54Term13isUInt32ValueEv"]], "term::isuint64value (c++ function)": [[48, "_CPPv4NK4cvc54Term13isUInt64ValueEv"]], "term::isuninterpretedsortvalue (c++ function)": [[48, "_CPPv4NK4cvc54Term24isUninterpretedSortValueEv"]], "term::iteterm (c++ function)": [[48, "_CPPv4NK4cvc54Term7iteTermERK4TermRK4Term"]], "term::notterm (c++ function)": [[48, "_CPPv4NK4cvc54Term7notTermEv"]], "term::operator!= (c++ function)": [[48, "_CPPv4NK4cvc54TermneERK4Term"]], "term::operator< (c++ function)": [[48, "_CPPv4NK4cvc54TermltERK4Term"]], "term::operator<= (c++ function)": [[48, "_CPPv4NK4cvc54TermleERK4Term"]], "term::operator== (c++ function)": [[48, "_CPPv4NK4cvc54TermeqERK4Term"]], "term::operator> (c++ function)": [[48, "_CPPv4NK4cvc54TermgtERK4Term"]], "term::operator>= (c++ function)": [[48, "_CPPv4NK4cvc54TermgeERK4Term"]], "term::operator[] (c++ function)": [[48, "_CPPv4NK4cvc54TermixE6size_t"]], "term::orterm (c++ function)": [[48, "_CPPv4NK4cvc54Term6orTermERK4Term"]], "term::substitute (c++ function)": [[48, "_CPPv4NK4cvc54Term10substituteERK4TermRK4Term"], [48, "_CPPv4NK4cvc54Term10substituteERKNSt6vectorI4TermEERKNSt6vectorI4TermEE"]], "term::tostring (c++ function)": [[48, "_CPPv4NK4cvc54Term8toStringEv"]], "term::xorterm (c++ function)": [[48, "_CPPv4NK4cvc54Term7xorTermERK4Term"]], "term::~term (c++ function)": [[48, "_CPPv4N4cvc54TermD0Ev"]], "std::hash (c++ struct)": [[48, "_CPPv4IENSt4hashIN4cvc54TermEEE"]], "std::hash::operator() (c++ function)": [[48, "_CPPv4NKSt4hashIN4cvc54TermEEclERKN4cvc54TermE"]], "termmanager (c++ class)": [[49, "_CPPv4N4cvc511TermManagerE"]], "termmanager::termmanager (c++ function)": [[49, "_CPPv4N4cvc511TermManager11TermManagerEv"]], "termmanager::getbooleansort (c++ function)": [[49, "_CPPv4N4cvc511TermManager14getBooleanSortEv"]], "termmanager::getintegersort (c++ function)": [[49, "_CPPv4N4cvc511TermManager14getIntegerSortEv"]], "termmanager::getnumindicesforskolemid (c++ function)": [[49, "_CPPv4N4cvc511TermManager24getNumIndicesForSkolemIdE8SkolemId"]], "termmanager::getrealsort (c++ function)": [[49, "_CPPv4N4cvc511TermManager11getRealSortEv"]], "termmanager::getregexpsort (c++ function)": [[49, "_CPPv4N4cvc511TermManager13getRegExpSortEv"]], "termmanager::getroundingmodesort (c++ function)": [[49, "_CPPv4N4cvc511TermManager19getRoundingModeSortEv"]], "termmanager::getstatistics (c++ function)": [[49, "_CPPv4NK4cvc511TermManager13getStatisticsEv"]], "termmanager::getstringsort (c++ function)": [[49, "_CPPv4N4cvc511TermManager13getStringSortEv"]], "termmanager::mkabstractsort (c++ function)": [[49, "_CPPv4N4cvc511TermManager14mkAbstractSortE8SortKind"]], "termmanager::mkarraysort (c++ function)": [[49, "_CPPv4N4cvc511TermManager11mkArraySortERK4SortRK4Sort"]], "termmanager::mkbagsort (c++ function)": [[49, "_CPPv4N4cvc511TermManager9mkBagSortERK4Sort"]], "termmanager::mkbitvector (c++ function)": [[49, "_CPPv4N4cvc511TermManager11mkBitVectorE8uint32_t8uint64_t"], [49, "_CPPv4N4cvc511TermManager11mkBitVectorE8uint32_tRKNSt6stringE8uint32_t"]], "termmanager::mkbitvectorsort (c++ function)": [[49, "_CPPv4N4cvc511TermManager15mkBitVectorSortE8uint32_t"]], "termmanager::mkboolean (c++ function)": [[49, "_CPPv4N4cvc511TermManager9mkBooleanEb"]], "termmanager::mkcardinalityconstraint (c++ function)": [[49, "_CPPv4N4cvc511TermManager23mkCardinalityConstraintERK4Sort8uint32_t"]], "termmanager::mkconst (c++ function)": [[49, "_CPPv4N4cvc511TermManager7mkConstERK4SortRKNSt8optionalINSt6stringEEE"]], "termmanager::mkconstarray (c++ function)": [[49, "_CPPv4N4cvc511TermManager12mkConstArrayERK4SortRK4Term"]], "termmanager::mkdatatypeconstructordecl (c++ function)": [[49, "_CPPv4N4cvc511TermManager25mkDatatypeConstructorDeclERKNSt6stringE"]], "termmanager::mkdatatypedecl (c++ function)": [[49, "_CPPv4N4cvc511TermManager14mkDatatypeDeclERKNSt6stringERKNSt6vectorI4SortEEb"], [49, "_CPPv4N4cvc511TermManager14mkDatatypeDeclERKNSt6stringEb"]], "termmanager::mkdatatypesort (c++ function)": [[49, "_CPPv4N4cvc511TermManager14mkDatatypeSortERK12DatatypeDecl"]], "termmanager::mkdatatypesorts (c++ function)": [[49, "_CPPv4N4cvc511TermManager15mkDatatypeSortsERKNSt6vectorI12DatatypeDeclEE"]], "termmanager::mkemptybag (c++ function)": [[49, "_CPPv4N4cvc511TermManager10mkEmptyBagERK4Sort"]], "termmanager::mkemptysequence (c++ function)": [[49, "_CPPv4N4cvc511TermManager15mkEmptySequenceERK4Sort"]], "termmanager::mkemptyset (c++ function)": [[49, "_CPPv4N4cvc511TermManager10mkEmptySetERK4Sort"]], "termmanager::mkfalse (c++ function)": [[49, "_CPPv4N4cvc511TermManager7mkFalseEv"]], "termmanager::mkfinitefieldelem (c++ function)": [[49, "_CPPv4N4cvc511TermManager17mkFiniteFieldElemERKNSt6stringERK4Sort8uint32_t"]], "termmanager::mkfinitefieldsort (c++ function)": [[49, "_CPPv4N4cvc511TermManager17mkFiniteFieldSortERKNSt6stringE8uint32_t"]], "termmanager::mkfloatingpoint (c++ function)": [[49, "_CPPv4N4cvc511TermManager15mkFloatingPointE8uint32_t8uint32_tRK4Term"], [49, "_CPPv4N4cvc511TermManager15mkFloatingPointERK4TermRK4TermRK4Term"]], "termmanager::mkfloatingpointnan (c++ function)": [[49, "_CPPv4N4cvc511TermManager18mkFloatingPointNaNE8uint32_t8uint32_t"]], "termmanager::mkfloatingpointneginf (c++ function)": [[49, "_CPPv4N4cvc511TermManager21mkFloatingPointNegInfE8uint32_t8uint32_t"]], "termmanager::mkfloatingpointnegzero (c++ function)": [[49, "_CPPv4N4cvc511TermManager22mkFloatingPointNegZeroE8uint32_t8uint32_t"]], "termmanager::mkfloatingpointposinf (c++ function)": [[49, "_CPPv4N4cvc511TermManager21mkFloatingPointPosInfE8uint32_t8uint32_t"]], "termmanager::mkfloatingpointposzero (c++ function)": [[49, "_CPPv4N4cvc511TermManager22mkFloatingPointPosZeroE8uint32_t8uint32_t"]], "termmanager::mkfloatingpointsort (c++ function)": [[49, "_CPPv4N4cvc511TermManager19mkFloatingPointSortE8uint32_t8uint32_t"]], "termmanager::mkfunctionsort (c++ function)": [[49, "_CPPv4N4cvc511TermManager14mkFunctionSortERKNSt6vectorI4SortEERK4Sort"]], "termmanager::mkinteger (c++ function)": [[49, "_CPPv4N4cvc511TermManager9mkIntegerE7int64_t"], [49, "_CPPv4N4cvc511TermManager9mkIntegerERKNSt6stringE"]], "termmanager::mknullableisnull (c++ function)": [[49, "_CPPv4N4cvc511TermManager16mkNullableIsNullERK4Term"]], "termmanager::mknullableissome (c++ function)": [[49, "_CPPv4N4cvc511TermManager16mkNullableIsSomeERK4Term"]], "termmanager::mknullablelift (c++ function)": [[49, "_CPPv4N4cvc511TermManager14mkNullableLiftE4KindRKNSt6vectorI4TermEE"]], "termmanager::mknullablenull (c++ function)": [[49, "_CPPv4N4cvc511TermManager14mkNullableNullERK4Sort"]], "termmanager::mknullablesome (c++ function)": [[49, "_CPPv4N4cvc511TermManager14mkNullableSomeERK4Term"]], "termmanager::mknullablesort (c++ function)": [[49, "_CPPv4N4cvc511TermManager14mkNullableSortERK4Sort"]], "termmanager::mknullableval (c++ function)": [[49, "_CPPv4N4cvc511TermManager13mkNullableValERK4Term"]], "termmanager::mkop (c++ function)": [[49, "_CPPv4N4cvc511TermManager4mkOpE4KindRKNSt6stringE"], [49, "_CPPv4N4cvc511TermManager4mkOpE4KindRKNSt6vectorI8uint32_tEE"]], "termmanager::mkparamsort (c++ function)": [[49, "_CPPv4N4cvc511TermManager11mkParamSortERKNSt8optionalINSt6stringEEE"]], "termmanager::mkpi (c++ function)": [[49, "_CPPv4N4cvc511TermManager4mkPiEv"]], "termmanager::mkpredicatesort (c++ function)": [[49, "_CPPv4N4cvc511TermManager15mkPredicateSortERKNSt6vectorI4SortEE"]], "termmanager::mkreal (c++ function)": [[49, "_CPPv4N4cvc511TermManager6mkRealE7int64_t"], [49, "_CPPv4N4cvc511TermManager6mkRealE7int64_t7int64_t"], [49, "_CPPv4N4cvc511TermManager6mkRealERKNSt6stringE"]], "termmanager::mkrecordsort (c++ function)": [[49, "_CPPv4N4cvc511TermManager12mkRecordSortERKNSt6vectorINSt4pairINSt6stringE4SortEEEE"]], "termmanager::mkregexpall (c++ function)": [[49, "_CPPv4N4cvc511TermManager11mkRegexpAllEv"]], "termmanager::mkregexpallchar (c++ function)": [[49, "_CPPv4N4cvc511TermManager15mkRegexpAllcharEv"]], "termmanager::mkregexpnone (c++ function)": [[49, "_CPPv4N4cvc511TermManager12mkRegexpNoneEv"]], "termmanager::mkroundingmode (c++ function)": [[49, "_CPPv4N4cvc511TermManager14mkRoundingModeE12RoundingMode"]], "termmanager::mksepemp (c++ function)": [[49, "_CPPv4N4cvc511TermManager8mkSepEmpEv"]], "termmanager::mksepnil (c++ function)": [[49, "_CPPv4N4cvc511TermManager8mkSepNilERK4Sort"]], "termmanager::mksequencesort (c++ function)": [[49, "_CPPv4N4cvc511TermManager14mkSequenceSortERK4Sort"]], "termmanager::mksetsort (c++ function)": [[49, "_CPPv4N4cvc511TermManager9mkSetSortERK4Sort"]], "termmanager::mkskolem (c++ function)": [[49, "_CPPv4N4cvc511TermManager8mkSkolemE8SkolemIdRKNSt6vectorI4TermEE"]], "termmanager::mkstring (c++ function)": [[49, "_CPPv4N4cvc511TermManager8mkStringERKNSt6stringEb"], [49, "_CPPv4N4cvc511TermManager8mkStringERKNSt7wstringE"]], "termmanager::mkterm (c++ function)": [[49, "_CPPv4N4cvc511TermManager6mkTermE4KindRKNSt6vectorI4TermEE"], [49, "_CPPv4N4cvc511TermManager6mkTermERK2OpRKNSt6vectorI4TermEE"]], "termmanager::mktrue (c++ function)": [[49, "_CPPv4N4cvc511TermManager6mkTrueEv"]], "termmanager::mktuple (c++ function)": [[49, "_CPPv4N4cvc511TermManager7mkTupleERKNSt6vectorI4TermEE"]], "termmanager::mktuplesort (c++ function)": [[49, "_CPPv4N4cvc511TermManager11mkTupleSortERKNSt6vectorI4SortEE"]], "termmanager::mkuninterpretedsort (c++ function)": [[49, "_CPPv4N4cvc511TermManager19mkUninterpretedSortERKNSt8optionalINSt6stringEEE"]], "termmanager::mkuninterpretedsortconstructorsort (c++ function)": [[49, "_CPPv4N4cvc511TermManager34mkUninterpretedSortConstructorSortE6size_tRKNSt8optionalINSt6stringEEE"]], "termmanager::mkuniverseset (c++ function)": [[49, "_CPPv4N4cvc511TermManager13mkUniverseSetERK4Sort"]], "termmanager::mkunresolveddatatypesort (c++ function)": [[49, "_CPPv4N4cvc511TermManager24mkUnresolvedDatatypeSortERKNSt6stringE6size_t"]], "termmanager::mkvar (c++ function)": [[49, "_CPPv4N4cvc511TermManager5mkVarERK4SortRKNSt8optionalINSt6stringEEE"]], "termmanager::printstatisticssafe (c++ function)": [[49, "_CPPv4NK4cvc511TermManager19printStatisticsSafeEi"]], "termmanager::~termmanager (c++ function)": [[49, "_CPPv4N4cvc511TermManagerD0Ev"]], "kind (c++ enum)": [[51, "_CPPv4N4cvc54KindE"]], "kind::abs (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind3ABSE"]], "kind::add (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind3ADDE"]], "kind::and (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind3ANDE"]], "kind::apply_constructor (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind17APPLY_CONSTRUCTORE"]], "kind::apply_selector (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind14APPLY_SELECTORE"]], "kind::apply_tester (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind12APPLY_TESTERE"]], "kind::apply_uf (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind8APPLY_UFE"]], "kind::apply_updater (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13APPLY_UPDATERE"]], "kind::arccosecant (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind11ARCCOSECANTE"]], "kind::arccosine (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind9ARCCOSINEE"]], "kind::arccotangent (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind12ARCCOTANGENTE"]], "kind::arcsecant (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind9ARCSECANTE"]], "kind::arcsine (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind7ARCSINEE"]], "kind::arctangent (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind10ARCTANGENTE"]], "kind::bag_card (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind8BAG_CARDE"]], "kind::bag_choose (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind10BAG_CHOOSEE"]], "kind::bag_count (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind9BAG_COUNTE"]], "kind::bag_difference_remove (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind21BAG_DIFFERENCE_REMOVEE"]], "kind::bag_difference_subtract (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind23BAG_DIFFERENCE_SUBTRACTE"]], "kind::bag_empty (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind9BAG_EMPTYE"]], "kind::bag_filter (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind10BAG_FILTERE"]], "kind::bag_fold (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind8BAG_FOLDE"]], "kind::bag_inter_min (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13BAG_INTER_MINE"]], "kind::bag_make (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind8BAG_MAKEE"]], "kind::bag_map (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind7BAG_MAPE"]], "kind::bag_member (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind10BAG_MEMBERE"]], "kind::bag_partition (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13BAG_PARTITIONE"]], "kind::bag_setof (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind9BAG_SETOFE"]], "kind::bag_subbag (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind10BAG_SUBBAGE"]], "kind::bag_union_disjoint (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind18BAG_UNION_DISJOINTE"]], "kind::bag_union_max (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13BAG_UNION_MAXE"]], "kind::bitvector_add (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13BITVECTOR_ADDE"]], "kind::bitvector_and (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13BITVECTOR_ANDE"]], "kind::bitvector_ashr (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind14BITVECTOR_ASHRE"]], "kind::bitvector_bit (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13BITVECTOR_BITE"]], "kind::bitvector_comp (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind14BITVECTOR_COMPE"]], "kind::bitvector_concat (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind16BITVECTOR_CONCATE"]], "kind::bitvector_extract (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind17BITVECTOR_EXTRACTE"]], "kind::bitvector_from_bools (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind20BITVECTOR_FROM_BOOLSE"]], "kind::bitvector_ite (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13BITVECTOR_ITEE"]], "kind::bitvector_lshr (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind14BITVECTOR_LSHRE"]], "kind::bitvector_mult (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind14BITVECTOR_MULTE"]], "kind::bitvector_nand (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind14BITVECTOR_NANDE"]], "kind::bitvector_neg (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13BITVECTOR_NEGE"]], "kind::bitvector_nego (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind14BITVECTOR_NEGOE"]], "kind::bitvector_nor (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13BITVECTOR_NORE"]], "kind::bitvector_not (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13BITVECTOR_NOTE"]], "kind::bitvector_or (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind12BITVECTOR_ORE"]], "kind::bitvector_redand (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind16BITVECTOR_REDANDE"]], "kind::bitvector_redor (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind15BITVECTOR_REDORE"]], "kind::bitvector_repeat (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind16BITVECTOR_REPEATE"]], "kind::bitvector_rotate_left (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind21BITVECTOR_ROTATE_LEFTE"]], "kind::bitvector_rotate_right (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind22BITVECTOR_ROTATE_RIGHTE"]], "kind::bitvector_saddo (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind15BITVECTOR_SADDOE"]], "kind::bitvector_sdiv (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind14BITVECTOR_SDIVE"]], "kind::bitvector_sdivo (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind15BITVECTOR_SDIVOE"]], "kind::bitvector_sge (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13BITVECTOR_SGEE"]], "kind::bitvector_sgt (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13BITVECTOR_SGTE"]], "kind::bitvector_shl (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13BITVECTOR_SHLE"]], "kind::bitvector_sign_extend (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind21BITVECTOR_SIGN_EXTENDE"]], "kind::bitvector_sle (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13BITVECTOR_SLEE"]], "kind::bitvector_slt (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13BITVECTOR_SLTE"]], "kind::bitvector_sltbv (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind15BITVECTOR_SLTBVE"]], "kind::bitvector_smod (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind14BITVECTOR_SMODE"]], "kind::bitvector_smulo (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind15BITVECTOR_SMULOE"]], "kind::bitvector_srem (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind14BITVECTOR_SREME"]], "kind::bitvector_ssubo (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind15BITVECTOR_SSUBOE"]], "kind::bitvector_sub (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13BITVECTOR_SUBE"]], "kind::bitvector_to_nat (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind16BITVECTOR_TO_NATE"]], "kind::bitvector_uaddo (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind15BITVECTOR_UADDOE"]], "kind::bitvector_udiv (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind14BITVECTOR_UDIVE"]], "kind::bitvector_uge (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13BITVECTOR_UGEE"]], "kind::bitvector_ugt (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13BITVECTOR_UGTE"]], "kind::bitvector_ule (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13BITVECTOR_ULEE"]], "kind::bitvector_ult (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13BITVECTOR_ULTE"]], "kind::bitvector_ultbv (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind15BITVECTOR_ULTBVE"]], "kind::bitvector_umulo (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind15BITVECTOR_UMULOE"]], "kind::bitvector_urem (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind14BITVECTOR_UREME"]], "kind::bitvector_usubo (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind15BITVECTOR_USUBOE"]], "kind::bitvector_xnor (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind14BITVECTOR_XNORE"]], "kind::bitvector_xor (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13BITVECTOR_XORE"]], "kind::bitvector_zero_extend (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind21BITVECTOR_ZERO_EXTENDE"]], "kind::cardinality_constraint (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind22CARDINALITY_CONSTRAINTE"]], "kind::constant (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind8CONSTANTE"]], "kind::const_array (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind11CONST_ARRAYE"]], "kind::const_bitvector (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind15CONST_BITVECTORE"]], "kind::const_boolean (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13CONST_BOOLEANE"]], "kind::const_finite_field (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind18CONST_FINITE_FIELDE"]], "kind::const_floatingpoint (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind19CONST_FLOATINGPOINTE"]], "kind::const_integer (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13CONST_INTEGERE"]], "kind::const_rational (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind14CONST_RATIONALE"]], "kind::const_roundingmode (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind18CONST_ROUNDINGMODEE"]], "kind::const_sequence (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind14CONST_SEQUENCEE"]], "kind::const_string (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind12CONST_STRINGE"]], "kind::cosecant (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind8COSECANTE"]], "kind::cosine (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind6COSINEE"]], "kind::cotangent (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind9COTANGENTE"]], "kind::distinct (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind8DISTINCTE"]], "kind::divisible (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind9DIVISIBLEE"]], "kind::division (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind8DIVISIONE"]], "kind::division_total (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind14DIVISION_TOTALE"]], "kind::equal (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind5EQUALE"]], "kind::eq_range (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind8EQ_RANGEE"]], "kind::exists (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind6EXISTSE"]], "kind::exponential (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind11EXPONENTIALE"]], "kind::finite_field_add (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind16FINITE_FIELD_ADDE"]], "kind::finite_field_bitsum (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind19FINITE_FIELD_BITSUME"]], "kind::finite_field_mult (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind17FINITE_FIELD_MULTE"]], "kind::finite_field_neg (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind16FINITE_FIELD_NEGE"]], "kind::floatingpoint_abs (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind17FLOATINGPOINT_ABSE"]], "kind::floatingpoint_add (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind17FLOATINGPOINT_ADDE"]], "kind::floatingpoint_div (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind17FLOATINGPOINT_DIVE"]], "kind::floatingpoint_eq (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind16FLOATINGPOINT_EQE"]], "kind::floatingpoint_fma (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind17FLOATINGPOINT_FMAE"]], "kind::floatingpoint_fp (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind16FLOATINGPOINT_FPE"]], "kind::floatingpoint_geq (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind17FLOATINGPOINT_GEQE"]], "kind::floatingpoint_gt (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind16FLOATINGPOINT_GTE"]], "kind::floatingpoint_is_inf (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind20FLOATINGPOINT_IS_INFE"]], "kind::floatingpoint_is_nan (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind20FLOATINGPOINT_IS_NANE"]], "kind::floatingpoint_is_neg (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind20FLOATINGPOINT_IS_NEGE"]], "kind::floatingpoint_is_normal (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind23FLOATINGPOINT_IS_NORMALE"]], "kind::floatingpoint_is_pos (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind20FLOATINGPOINT_IS_POSE"]], "kind::floatingpoint_is_subnormal (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind26FLOATINGPOINT_IS_SUBNORMALE"]], "kind::floatingpoint_is_zero (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind21FLOATINGPOINT_IS_ZEROE"]], "kind::floatingpoint_leq (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind17FLOATINGPOINT_LEQE"]], "kind::floatingpoint_lt (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind16FLOATINGPOINT_LTE"]], "kind::floatingpoint_max (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind17FLOATINGPOINT_MAXE"]], "kind::floatingpoint_min (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind17FLOATINGPOINT_MINE"]], "kind::floatingpoint_mult (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind18FLOATINGPOINT_MULTE"]], "kind::floatingpoint_neg (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind17FLOATINGPOINT_NEGE"]], "kind::floatingpoint_rem (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind17FLOATINGPOINT_REME"]], "kind::floatingpoint_rti (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind17FLOATINGPOINT_RTIE"]], "kind::floatingpoint_sqrt (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind18FLOATINGPOINT_SQRTE"]], "kind::floatingpoint_sub (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind17FLOATINGPOINT_SUBE"]], "kind::floatingpoint_to_fp_from_fp (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind27FLOATINGPOINT_TO_FP_FROM_FPE"]], "kind::floatingpoint_to_fp_from_ieee_bv (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind32FLOATINGPOINT_TO_FP_FROM_IEEE_BVE"]], "kind::floatingpoint_to_fp_from_real (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind29FLOATINGPOINT_TO_FP_FROM_REALE"]], "kind::floatingpoint_to_fp_from_sbv (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind28FLOATINGPOINT_TO_FP_FROM_SBVE"]], "kind::floatingpoint_to_fp_from_ubv (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind28FLOATINGPOINT_TO_FP_FROM_UBVE"]], "kind::floatingpoint_to_real (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind21FLOATINGPOINT_TO_REALE"]], "kind::floatingpoint_to_sbv (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind20FLOATINGPOINT_TO_SBVE"]], "kind::floatingpoint_to_ubv (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind20FLOATINGPOINT_TO_UBVE"]], "kind::forall (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind6FORALLE"]], "kind::geq (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind3GEQE"]], "kind::gt (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind2GTE"]], "kind::ho_apply (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind8HO_APPLYE"]], "kind::iand (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind4IANDE"]], "kind::implies (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind7IMPLIESE"]], "kind::inst_add_to_pool (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind16INST_ADD_TO_POOLE"]], "kind::inst_attribute (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind14INST_ATTRIBUTEE"]], "kind::inst_no_pattern (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind15INST_NO_PATTERNE"]], "kind::inst_pattern (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind12INST_PATTERNE"]], "kind::inst_pattern_list (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind17INST_PATTERN_LISTE"]], "kind::inst_pool (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind9INST_POOLE"]], "kind::internal_kind (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13INTERNAL_KINDE"]], "kind::ints_division (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13INTS_DIVISIONE"]], "kind::ints_division_total (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind19INTS_DIVISION_TOTALE"]], "kind::ints_modulus (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind12INTS_MODULUSE"]], "kind::ints_modulus_total (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind18INTS_MODULUS_TOTALE"]], "kind::int_to_bitvector (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind16INT_TO_BITVECTORE"]], "kind::is_integer (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind10IS_INTEGERE"]], "kind::ite (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind3ITEE"]], "kind::lambda (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind6LAMBDAE"]], "kind::last_kind (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind9LAST_KINDE"]], "kind::leq (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind3LEQE"]], "kind::lt (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind2LTE"]], "kind::match (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind5MATCHE"]], "kind::match_bind_case (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind15MATCH_BIND_CASEE"]], "kind::match_case (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind10MATCH_CASEE"]], "kind::mult (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind4MULTE"]], "kind::neg (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind3NEGE"]], "kind::not (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind3NOTE"]], "kind::nullable_lift (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13NULLABLE_LIFTE"]], "kind::null_term (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind9NULL_TERME"]], "kind::or (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind2ORE"]], "kind::pi (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind2PIE"]], "kind::pow (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind3POWE"]], "kind::pow2 (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind4POW2E"]], "kind::regexp_all (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind10REGEXP_ALLE"]], "kind::regexp_allchar (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind14REGEXP_ALLCHARE"]], "kind::regexp_complement (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind17REGEXP_COMPLEMENTE"]], "kind::regexp_concat (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13REGEXP_CONCATE"]], "kind::regexp_diff (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind11REGEXP_DIFFE"]], "kind::regexp_inter (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind12REGEXP_INTERE"]], "kind::regexp_loop (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind11REGEXP_LOOPE"]], "kind::regexp_none (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind11REGEXP_NONEE"]], "kind::regexp_opt (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind10REGEXP_OPTE"]], "kind::regexp_plus (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind11REGEXP_PLUSE"]], "kind::regexp_range (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind12REGEXP_RANGEE"]], "kind::regexp_repeat (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13REGEXP_REPEATE"]], "kind::regexp_star (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind11REGEXP_STARE"]], "kind::regexp_union (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind12REGEXP_UNIONE"]], "kind::relation_aggregate (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind18RELATION_AGGREGATEE"]], "kind::relation_group (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind14RELATION_GROUPE"]], "kind::relation_iden (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13RELATION_IDENE"]], "kind::relation_join (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13RELATION_JOINE"]], "kind::relation_join_image (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind19RELATION_JOIN_IMAGEE"]], "kind::relation_product (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind16RELATION_PRODUCTE"]], "kind::relation_project (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind16RELATION_PROJECTE"]], "kind::relation_table_join (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind19RELATION_TABLE_JOINE"]], "kind::relation_tclosure (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind17RELATION_TCLOSUREE"]], "kind::relation_transpose (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind18RELATION_TRANSPOSEE"]], "kind::secant (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind6SECANTE"]], "kind::select (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind6SELECTE"]], "kind::sep_emp (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind7SEP_EMPE"]], "kind::sep_nil (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind7SEP_NILE"]], "kind::sep_pto (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind7SEP_PTOE"]], "kind::sep_star (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind8SEP_STARE"]], "kind::sep_wand (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind8SEP_WANDE"]], "kind::seq_at (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind6SEQ_ATE"]], "kind::seq_concat (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind10SEQ_CONCATE"]], "kind::seq_contains (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind12SEQ_CONTAINSE"]], "kind::seq_extract (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind11SEQ_EXTRACTE"]], "kind::seq_indexof (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind11SEQ_INDEXOFE"]], "kind::seq_length (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind10SEQ_LENGTHE"]], "kind::seq_nth (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind7SEQ_NTHE"]], "kind::seq_prefix (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind10SEQ_PREFIXE"]], "kind::seq_replace (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind11SEQ_REPLACEE"]], "kind::seq_replace_all (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind15SEQ_REPLACE_ALLE"]], "kind::seq_rev (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind7SEQ_REVE"]], "kind::seq_suffix (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind10SEQ_SUFFIXE"]], "kind::seq_unit (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind8SEQ_UNITE"]], "kind::seq_update (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind10SEQ_UPDATEE"]], "kind::set_all (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind7SET_ALLE"]], "kind::set_card (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind8SET_CARDE"]], "kind::set_choose (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind10SET_CHOOSEE"]], "kind::set_complement (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind14SET_COMPLEMENTE"]], "kind::set_comprehension (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind17SET_COMPREHENSIONE"]], "kind::set_empty (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind9SET_EMPTYE"]], "kind::set_filter (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind10SET_FILTERE"]], "kind::set_fold (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind8SET_FOLDE"]], "kind::set_insert (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind10SET_INSERTE"]], "kind::set_inter (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind9SET_INTERE"]], "kind::set_is_empty (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind12SET_IS_EMPTYE"]], "kind::set_is_singleton (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind16SET_IS_SINGLETONE"]], "kind::set_map (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind7SET_MAPE"]], "kind::set_member (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind10SET_MEMBERE"]], "kind::set_minus (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind9SET_MINUSE"]], "kind::set_singleton (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13SET_SINGLETONE"]], "kind::set_some (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind8SET_SOMEE"]], "kind::set_subset (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind10SET_SUBSETE"]], "kind::set_union (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind9SET_UNIONE"]], "kind::set_universe (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind12SET_UNIVERSEE"]], "kind::sexpr (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind5SEXPRE"]], "kind::sine (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind4SINEE"]], "kind::skolem (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind6SKOLEME"]], "kind::skolem_add_to_pool (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind18SKOLEM_ADD_TO_POOLE"]], "kind::sqrt (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind4SQRTE"]], "kind::store (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind5STOREE"]], "kind::string_charat (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13STRING_CHARATE"]], "kind::string_concat (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13STRING_CONCATE"]], "kind::string_contains (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind15STRING_CONTAINSE"]], "kind::string_from_code (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind16STRING_FROM_CODEE"]], "kind::string_from_int (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind15STRING_FROM_INTE"]], "kind::string_indexof (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind14STRING_INDEXOFE"]], "kind::string_indexof_re (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind17STRING_INDEXOF_REE"]], "kind::string_in_regexp (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind16STRING_IN_REGEXPE"]], "kind::string_is_digit (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind15STRING_IS_DIGITE"]], "kind::string_length (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13STRING_LENGTHE"]], "kind::string_leq (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind10STRING_LEQE"]], "kind::string_lt (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind9STRING_LTE"]], "kind::string_prefix (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13STRING_PREFIXE"]], "kind::string_replace (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind14STRING_REPLACEE"]], "kind::string_replace_all (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind18STRING_REPLACE_ALLE"]], "kind::string_replace_re (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind17STRING_REPLACE_REE"]], "kind::string_replace_re_all (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind21STRING_REPLACE_RE_ALLE"]], "kind::string_rev (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind10STRING_REVE"]], "kind::string_substr (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13STRING_SUBSTRE"]], "kind::string_suffix (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13STRING_SUFFIXE"]], "kind::string_to_code (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind14STRING_TO_CODEE"]], "kind::string_to_int (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13STRING_TO_INTE"]], "kind::string_to_lower (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind15STRING_TO_LOWERE"]], "kind::string_to_regexp (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind16STRING_TO_REGEXPE"]], "kind::string_to_upper (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind15STRING_TO_UPPERE"]], "kind::string_update (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13STRING_UPDATEE"]], "kind::sub (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind3SUBE"]], "kind::table_aggregate (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind15TABLE_AGGREGATEE"]], "kind::table_group (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind11TABLE_GROUPE"]], "kind::table_join (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind10TABLE_JOINE"]], "kind::table_product (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13TABLE_PRODUCTE"]], "kind::table_project (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13TABLE_PROJECTE"]], "kind::tangent (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind7TANGENTE"]], "kind::to_integer (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind10TO_INTEGERE"]], "kind::to_real (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind7TO_REALE"]], "kind::tuple_project (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13TUPLE_PROJECTE"]], "kind::undefined_kind (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind14UNDEFINED_KINDE"]], "kind::uninterpreted_sort_value (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind24UNINTERPRETED_SORT_VALUEE"]], "kind::variable (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind8VARIABLEE"]], "kind::variable_list (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13VARIABLE_LISTE"]], "kind::witness (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind7WITNESSE"]], "kind::xor (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind3XORE"]], "std::hash (c++ struct)": [[51, "_CPPv4IENSt4hashIN4cvc54KindEEE"]], "std::hash::operator() (c++ function)": [[51, "_CPPv4NKSt4hashIN4cvc54KindEEclEN4cvc54KindE"]], "std::to_string (c++ function)": [[51, "_CPPv4NSt9to_stringEN4cvc54KindE"], [52, "_CPPv4NSt9to_stringEN4cvc55modes11ProofFormatE"], [52, "_CPPv4NSt9to_stringEN4cvc55modes14LearnedLitTypeE"], [52, "_CPPv4NSt9to_stringEN4cvc55modes14ProofComponentE"], [52, "_CPPv4NSt9to_stringEN4cvc55modes15BlockModelsModeE"], [52, "_CPPv4NSt9to_stringEN4cvc55modes15FindSynthTargetE"], [53, "_CPPv4NSt9to_stringEN4cvc516ProofRewriteRuleE"], [53, "_CPPv4NSt9to_stringEN4cvc59ProofRuleE"], [54, "_CPPv4NSt9to_stringEN4cvc512RoundingModeE"], [55, "_CPPv4NSt9to_stringEN4cvc58SortKindE"], [56, "_CPPv4NSt9to_stringEN4cvc518UnknownExplanationE"]], "modes::blockmodelsmode (c++ enum)": [[52, "_CPPv4N4cvc55modes15BlockModelsModeE"]], "modes::blockmodelsmode::literals (c++ enumerator)": [[52, "_CPPv4N4cvc55modes15BlockModelsMode8LITERALSE"]], "modes::blockmodelsmode::values (c++ enumerator)": [[52, "_CPPv4N4cvc55modes15BlockModelsMode6VALUESE"]], "modes::findsynthtarget (c++ enum)": [[52, "_CPPv4N4cvc55modes15FindSynthTargetE"]], "modes::findsynthtarget::enum (c++ enumerator)": [[52, "_CPPv4N4cvc55modes15FindSynthTarget4ENUME"]], "modes::findsynthtarget::query (c++ enumerator)": [[52, "_CPPv4N4cvc55modes15FindSynthTarget5QUERYE"]], "modes::findsynthtarget::rewrite (c++ enumerator)": [[52, "_CPPv4N4cvc55modes15FindSynthTarget7REWRITEE"]], "modes::findsynthtarget::rewrite_input (c++ enumerator)": [[52, "_CPPv4N4cvc55modes15FindSynthTarget13REWRITE_INPUTE"]], "modes::findsynthtarget::rewrite_unsound (c++ enumerator)": [[52, "_CPPv4N4cvc55modes15FindSynthTarget15REWRITE_UNSOUNDE"]], "modes::learnedlittype (c++ enum)": [[52, "_CPPv4N4cvc55modes14LearnedLitTypeE"]], "modes::learnedlittype::constant_prop (c++ enumerator)": [[52, "_CPPv4N4cvc55modes14LearnedLitType13CONSTANT_PROPE"]], "modes::learnedlittype::input (c++ enumerator)": [[52, "_CPPv4N4cvc55modes14LearnedLitType5INPUTE"]], "modes::learnedlittype::internal (c++ enumerator)": [[52, "_CPPv4N4cvc55modes14LearnedLitType8INTERNALE"]], "modes::learnedlittype::preprocess (c++ enumerator)": [[52, "_CPPv4N4cvc55modes14LearnedLitType10PREPROCESSE"]], "modes::learnedlittype::preprocess_solved (c++ enumerator)": [[52, "_CPPv4N4cvc55modes14LearnedLitType17PREPROCESS_SOLVEDE"]], "modes::learnedlittype::solvable (c++ enumerator)": [[52, "_CPPv4N4cvc55modes14LearnedLitType8SOLVABLEE"]], "modes::learnedlittype::unknown (c++ enumerator)": [[52, "_CPPv4N4cvc55modes14LearnedLitType7UNKNOWNE"]], "modes::proofcomponent (c++ enum)": [[52, "_CPPv4N4cvc55modes14ProofComponentE"]], "modes::proofcomponent::full (c++ enumerator)": [[52, "_CPPv4N4cvc55modes14ProofComponent4FULLE"]], "modes::proofcomponent::preprocess (c++ enumerator)": [[52, "_CPPv4N4cvc55modes14ProofComponent10PREPROCESSE"]], "modes::proofcomponent::raw_preprocess (c++ enumerator)": [[52, "_CPPv4N4cvc55modes14ProofComponent14RAW_PREPROCESSE"]], "modes::proofcomponent::sat (c++ enumerator)": [[52, "_CPPv4N4cvc55modes14ProofComponent3SATE"]], "modes::proofcomponent::theory_lemmas (c++ enumerator)": [[52, "_CPPv4N4cvc55modes14ProofComponent13THEORY_LEMMASE"]], "modes::proofformat (c++ enum)": [[52, "_CPPv4N4cvc55modes11ProofFormatE"]], "modes::proofformat::alethe (c++ enumerator)": [[52, "_CPPv4N4cvc55modes11ProofFormat6ALETHEE"]], "modes::proofformat::cpc (c++ enumerator)": [[52, "_CPPv4N4cvc55modes11ProofFormat3CPCE"]], "modes::proofformat::default (c++ enumerator)": [[52, "_CPPv4N4cvc55modes11ProofFormat7DEFAULTE"]], "modes::proofformat::dot (c++ enumerator)": [[52, "_CPPv4N4cvc55modes11ProofFormat3DOTE"]], "modes::proofformat::lfsc (c++ enumerator)": [[52, "_CPPv4N4cvc55modes11ProofFormat4LFSCE"]], "modes::proofformat::none (c++ enumerator)": [[52, "_CPPv4N4cvc55modes11ProofFormat4NONEE"]], "modes::operator<< (c++ function)": [[52, "_CPPv4N4cvc55modeslsERNSt7ostreamE11ProofFormat"], [52, "_CPPv4N4cvc55modeslsERNSt7ostreamE14LearnedLitType"], [52, "_CPPv4N4cvc55modeslsERNSt7ostreamE14ProofComponent"], [52, "_CPPv4N4cvc55modeslsERNSt7ostreamE15BlockModelsMode"], [52, "_CPPv4N4cvc55modeslsERNSt7ostreamE15FindSynthTarget"]], "proofrewriterule (c++ enum)": [[53, "_CPPv4N4cvc516ProofRewriteRuleE"]], "proofrewriterule::arith_abs_elim_int (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18ARITH_ABS_ELIM_INTE"]], "proofrewriterule::arith_abs_elim_real (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19ARITH_ABS_ELIM_REALE"]], "proofrewriterule::arith_abs_eq (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule12ARITH_ABS_EQE"]], "proofrewriterule::arith_abs_int_gt (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16ARITH_ABS_INT_GTE"]], "proofrewriterule::arith_abs_real_gt (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17ARITH_ABS_REAL_GTE"]], "proofrewriterule::arith_cosecent_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19ARITH_COSECENT_ELIME"]], "proofrewriterule::arith_cosine_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17ARITH_COSINE_ELIME"]], "proofrewriterule::arith_cotangent_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule20ARITH_COTANGENT_ELIME"]], "proofrewriterule::arith_div_elim_to_real1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule23ARITH_DIV_ELIM_TO_REAL1E"]], "proofrewriterule::arith_div_elim_to_real2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule23ARITH_DIV_ELIM_TO_REAL2E"]], "proofrewriterule::arith_div_total_int (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19ARITH_DIV_TOTAL_INTE"]], "proofrewriterule::arith_div_total_real (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule20ARITH_DIV_TOTAL_REALE"]], "proofrewriterule::arith_div_total_zero_int (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule24ARITH_DIV_TOTAL_ZERO_INTE"]], "proofrewriterule::arith_div_total_zero_real (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule25ARITH_DIV_TOTAL_ZERO_REALE"]], "proofrewriterule::arith_elim_gt (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13ARITH_ELIM_GTE"]], "proofrewriterule::arith_elim_int_gt (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17ARITH_ELIM_INT_GTE"]], "proofrewriterule::arith_elim_int_lt (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17ARITH_ELIM_INT_LTE"]], "proofrewriterule::arith_elim_leq (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14ARITH_ELIM_LEQE"]], "proofrewriterule::arith_elim_lt (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13ARITH_ELIM_LTE"]], "proofrewriterule::arith_eq_elim_int (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17ARITH_EQ_ELIM_INTE"]], "proofrewriterule::arith_eq_elim_real (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18ARITH_EQ_ELIM_REALE"]], "proofrewriterule::arith_geq_norm1_int (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19ARITH_GEQ_NORM1_INTE"]], "proofrewriterule::arith_geq_norm1_real (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule20ARITH_GEQ_NORM1_REALE"]], "proofrewriterule::arith_geq_norm2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule15ARITH_GEQ_NORM2E"]], "proofrewriterule::arith_geq_tighten (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17ARITH_GEQ_TIGHTENE"]], "proofrewriterule::arith_int_div_total (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19ARITH_INT_DIV_TOTALE"]], "proofrewriterule::arith_int_div_total_one (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule23ARITH_INT_DIV_TOTAL_ONEE"]], "proofrewriterule::arith_int_div_total_zero (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule24ARITH_INT_DIV_TOTAL_ZEROE"]], "proofrewriterule::arith_int_mod_total (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19ARITH_INT_MOD_TOTALE"]], "proofrewriterule::arith_int_mod_total_one (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule23ARITH_INT_MOD_TOTAL_ONEE"]], "proofrewriterule::arith_int_mod_total_zero (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule24ARITH_INT_MOD_TOTAL_ZEROE"]], "proofrewriterule::arith_leq_norm (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14ARITH_LEQ_NORME"]], "proofrewriterule::arith_mult_dist (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule15ARITH_MULT_DISTE"]], "proofrewriterule::arith_mult_flatten (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18ARITH_MULT_FLATTENE"]], "proofrewriterule::arith_mul_one (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13ARITH_MUL_ONEE"]], "proofrewriterule::arith_mul_zero (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14ARITH_MUL_ZEROE"]], "proofrewriterule::arith_pi_not_int (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16ARITH_PI_NOT_INTE"]], "proofrewriterule::arith_plus_flatten (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18ARITH_PLUS_FLATTENE"]], "proofrewriterule::arith_pow_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14ARITH_POW_ELIME"]], "proofrewriterule::arith_refl_geq (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14ARITH_REFL_GEQE"]], "proofrewriterule::arith_refl_gt (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13ARITH_REFL_GTE"]], "proofrewriterule::arith_refl_leq (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14ARITH_REFL_LEQE"]], "proofrewriterule::arith_refl_lt (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13ARITH_REFL_LTE"]], "proofrewriterule::arith_secent_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17ARITH_SECENT_ELIME"]], "proofrewriterule::arith_sine_pi2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14ARITH_SINE_PI2E"]], "proofrewriterule::arith_sine_zero (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule15ARITH_SINE_ZEROE"]], "proofrewriterule::arith_string_pred_entail (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule24ARITH_STRING_PRED_ENTAILE"]], "proofrewriterule::arith_string_pred_safe_approx (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule29ARITH_STRING_PRED_SAFE_APPROXE"]], "proofrewriterule::arith_tangent_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18ARITH_TANGENT_ELIME"]], "proofrewriterule::arith_to_int_elim_to_real (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule25ARITH_TO_INT_ELIM_TO_REALE"]], "proofrewriterule::arith_to_real_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18ARITH_TO_REAL_ELIME"]], "proofrewriterule::arrays_eq_range_expand (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule22ARRAYS_EQ_RANGE_EXPANDE"]], "proofrewriterule::arrays_select_const (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19ARRAYS_SELECT_CONSTE"]], "proofrewriterule::array_read_over_write (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule21ARRAY_READ_OVER_WRITEE"]], "proofrewriterule::array_read_over_write2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule22ARRAY_READ_OVER_WRITE2E"]], "proofrewriterule::array_read_over_write_split (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule27ARRAY_READ_OVER_WRITE_SPLITE"]], "proofrewriterule::array_store_overwrite (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule21ARRAY_STORE_OVERWRITEE"]], "proofrewriterule::array_store_self (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16ARRAY_STORE_SELFE"]], "proofrewriterule::beta_reduce (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11BETA_REDUCEE"]], "proofrewriterule::bool_and_conf (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13BOOL_AND_CONFE"]], "proofrewriterule::bool_and_conf2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14BOOL_AND_CONF2E"]], "proofrewriterule::bool_and_de_morgan (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18BOOL_AND_DE_MORGANE"]], "proofrewriterule::bool_and_false (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14BOOL_AND_FALSEE"]], "proofrewriterule::bool_and_flatten (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16BOOL_AND_FLATTENE"]], "proofrewriterule::bool_double_not_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule20BOOL_DOUBLE_NOT_ELIME"]], "proofrewriterule::bool_eq_false (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13BOOL_EQ_FALSEE"]], "proofrewriterule::bool_eq_nrefl (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13BOOL_EQ_NREFLE"]], "proofrewriterule::bool_eq_true (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule12BOOL_EQ_TRUEE"]], "proofrewriterule::bool_implies_de_morgan (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule22BOOL_IMPLIES_DE_MORGANE"]], "proofrewriterule::bool_impl_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14BOOL_IMPL_ELIME"]], "proofrewriterule::bool_impl_false1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16BOOL_IMPL_FALSE1E"]], "proofrewriterule::bool_impl_false2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16BOOL_IMPL_FALSE2E"]], "proofrewriterule::bool_impl_true1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule15BOOL_IMPL_TRUE1E"]], "proofrewriterule::bool_impl_true2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule15BOOL_IMPL_TRUE2E"]], "proofrewriterule::bool_not_eq_elim1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17BOOL_NOT_EQ_ELIM1E"]], "proofrewriterule::bool_not_eq_elim2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17BOOL_NOT_EQ_ELIM2E"]], "proofrewriterule::bool_not_false (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14BOOL_NOT_FALSEE"]], "proofrewriterule::bool_not_ite_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17BOOL_NOT_ITE_ELIME"]], "proofrewriterule::bool_not_true (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13BOOL_NOT_TRUEE"]], "proofrewriterule::bool_not_xor_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17BOOL_NOT_XOR_ELIME"]], "proofrewriterule::bool_or_and_distrib (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19BOOL_OR_AND_DISTRIBE"]], "proofrewriterule::bool_or_de_morgan (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17BOOL_OR_DE_MORGANE"]], "proofrewriterule::bool_or_flatten (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule15BOOL_OR_FLATTENE"]], "proofrewriterule::bool_or_taut (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule12BOOL_OR_TAUTE"]], "proofrewriterule::bool_or_taut2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13BOOL_OR_TAUT2E"]], "proofrewriterule::bool_or_true (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule12BOOL_OR_TRUEE"]], "proofrewriterule::bool_xor_comm (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13BOOL_XOR_COMME"]], "proofrewriterule::bool_xor_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13BOOL_XOR_ELIME"]], "proofrewriterule::bool_xor_false (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14BOOL_XOR_FALSEE"]], "proofrewriterule::bool_xor_nrefl (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14BOOL_XOR_NREFLE"]], "proofrewriterule::bool_xor_refl (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13BOOL_XOR_REFLE"]], "proofrewriterule::bool_xor_true (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13BOOL_XOR_TRUEE"]], "proofrewriterule::bv_add_combine_like_terms (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule25BV_ADD_COMBINE_LIKE_TERMSE"]], "proofrewriterule::bv_add_two (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule10BV_ADD_TWOE"]], "proofrewriterule::bv_add_zero (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11BV_ADD_ZEROE"]], "proofrewriterule::bv_and_concat_pullup (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule20BV_AND_CONCAT_PULLUPE"]], "proofrewriterule::bv_and_flatten (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14BV_AND_FLATTENE"]], "proofrewriterule::bv_and_one (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule10BV_AND_ONEE"]], "proofrewriterule::bv_and_simplify_1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17BV_AND_SIMPLIFY_1E"]], "proofrewriterule::bv_and_simplify_2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17BV_AND_SIMPLIFY_2E"]], "proofrewriterule::bv_and_zero (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11BV_AND_ZEROE"]], "proofrewriterule::bv_ashr_by_const_0 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18BV_ASHR_BY_CONST_0E"]], "proofrewriterule::bv_ashr_by_const_1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18BV_ASHR_BY_CONST_1E"]], "proofrewriterule::bv_ashr_by_const_2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18BV_ASHR_BY_CONST_2E"]], "proofrewriterule::bv_ashr_zero (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule12BV_ASHR_ZEROE"]], "proofrewriterule::bv_bitwise_idemp_1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18BV_BITWISE_IDEMP_1E"]], "proofrewriterule::bv_bitwise_idemp_2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18BV_BITWISE_IDEMP_2E"]], "proofrewriterule::bv_bitwise_not_and (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18BV_BITWISE_NOT_ANDE"]], "proofrewriterule::bv_bitwise_not_or (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17BV_BITWISE_NOT_ORE"]], "proofrewriterule::bv_bitwise_slicing (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18BV_BITWISE_SLICINGE"]], "proofrewriterule::bv_commutative_add (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18BV_COMMUTATIVE_ADDE"]], "proofrewriterule::bv_commutative_and (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18BV_COMMUTATIVE_ANDE"]], "proofrewriterule::bv_commutative_mul (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18BV_COMMUTATIVE_MULE"]], "proofrewriterule::bv_commutative_or (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17BV_COMMUTATIVE_ORE"]], "proofrewriterule::bv_commutative_xor (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18BV_COMMUTATIVE_XORE"]], "proofrewriterule::bv_comp_eliminate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17BV_COMP_ELIMINATEE"]], "proofrewriterule::bv_concat_extract_merge (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule23BV_CONCAT_EXTRACT_MERGEE"]], "proofrewriterule::bv_concat_flatten (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17BV_CONCAT_FLATTENE"]], "proofrewriterule::bv_concat_merge_const (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule21BV_CONCAT_MERGE_CONSTE"]], "proofrewriterule::bv_concat_to_mult (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17BV_CONCAT_TO_MULTE"]], "proofrewriterule::bv_eq_extract_elim1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19BV_EQ_EXTRACT_ELIM1E"]], "proofrewriterule::bv_eq_extract_elim2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19BV_EQ_EXTRACT_ELIM2E"]], "proofrewriterule::bv_eq_extract_elim3 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19BV_EQ_EXTRACT_ELIM3E"]], "proofrewriterule::bv_extract_bitwise_and (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule22BV_EXTRACT_BITWISE_ANDE"]], "proofrewriterule::bv_extract_bitwise_or (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule21BV_EXTRACT_BITWISE_ORE"]], "proofrewriterule::bv_extract_bitwise_xor (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule22BV_EXTRACT_BITWISE_XORE"]], "proofrewriterule::bv_extract_concat_1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19BV_EXTRACT_CONCAT_1E"]], "proofrewriterule::bv_extract_concat_2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19BV_EXTRACT_CONCAT_2E"]], "proofrewriterule::bv_extract_concat_3 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19BV_EXTRACT_CONCAT_3E"]], "proofrewriterule::bv_extract_concat_4 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19BV_EXTRACT_CONCAT_4E"]], "proofrewriterule::bv_extract_extract (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18BV_EXTRACT_EXTRACTE"]], "proofrewriterule::bv_extract_mult_leading_bit (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule27BV_EXTRACT_MULT_LEADING_BITE"]], "proofrewriterule::bv_extract_not (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14BV_EXTRACT_NOTE"]], "proofrewriterule::bv_extract_sign_extend_1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule24BV_EXTRACT_SIGN_EXTEND_1E"]], "proofrewriterule::bv_extract_sign_extend_2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule24BV_EXTRACT_SIGN_EXTEND_2E"]], "proofrewriterule::bv_extract_sign_extend_3 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule24BV_EXTRACT_SIGN_EXTEND_3E"]], "proofrewriterule::bv_extract_whole (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16BV_EXTRACT_WHOLEE"]], "proofrewriterule::bv_ite_const_children_1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule23BV_ITE_CONST_CHILDREN_1E"]], "proofrewriterule::bv_ite_const_children_2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule23BV_ITE_CONST_CHILDREN_2E"]], "proofrewriterule::bv_ite_equal_children (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule21BV_ITE_EQUAL_CHILDRENE"]], "proofrewriterule::bv_ite_equal_cond_1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19BV_ITE_EQUAL_COND_1E"]], "proofrewriterule::bv_ite_equal_cond_2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19BV_ITE_EQUAL_COND_2E"]], "proofrewriterule::bv_ite_equal_cond_3 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19BV_ITE_EQUAL_COND_3E"]], "proofrewriterule::bv_ite_merge_else_else (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule22BV_ITE_MERGE_ELSE_ELSEE"]], "proofrewriterule::bv_ite_merge_else_if (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule20BV_ITE_MERGE_ELSE_IFE"]], "proofrewriterule::bv_ite_merge_then_else (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule22BV_ITE_MERGE_THEN_ELSEE"]], "proofrewriterule::bv_ite_merge_then_if (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule20BV_ITE_MERGE_THEN_IFE"]], "proofrewriterule::bv_lshr_by_const_0 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18BV_LSHR_BY_CONST_0E"]], "proofrewriterule::bv_lshr_by_const_1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18BV_LSHR_BY_CONST_1E"]], "proofrewriterule::bv_lshr_by_const_2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18BV_LSHR_BY_CONST_2E"]], "proofrewriterule::bv_lshr_zero (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule12BV_LSHR_ZEROE"]], "proofrewriterule::bv_lt_self (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule10BV_LT_SELFE"]], "proofrewriterule::bv_merge_sign_extend_1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule22BV_MERGE_SIGN_EXTEND_1E"]], "proofrewriterule::bv_merge_sign_extend_2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule22BV_MERGE_SIGN_EXTEND_2E"]], "proofrewriterule::bv_merge_sign_extend_3 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule22BV_MERGE_SIGN_EXTEND_3E"]], "proofrewriterule::bv_mult_distrib_1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17BV_MULT_DISTRIB_1E"]], "proofrewriterule::bv_mult_distrib_2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17BV_MULT_DISTRIB_2E"]], "proofrewriterule::bv_mult_distrib_const_add (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule25BV_MULT_DISTRIB_CONST_ADDE"]], "proofrewriterule::bv_mult_distrib_const_neg (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule25BV_MULT_DISTRIB_CONST_NEGE"]], "proofrewriterule::bv_mult_distrib_const_sub (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule25BV_MULT_DISTRIB_CONST_SUBE"]], "proofrewriterule::bv_mult_pow2_1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14BV_MULT_POW2_1E"]], "proofrewriterule::bv_mult_pow2_2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14BV_MULT_POW2_2E"]], "proofrewriterule::bv_mult_pow2_2b (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule15BV_MULT_POW2_2BE"]], "proofrewriterule::bv_mult_simplify (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16BV_MULT_SIMPLIFYE"]], "proofrewriterule::bv_mult_slt_mult_1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18BV_MULT_SLT_MULT_1E"]], "proofrewriterule::bv_mult_slt_mult_2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18BV_MULT_SLT_MULT_2E"]], "proofrewriterule::bv_mul_flatten (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14BV_MUL_FLATTENE"]], "proofrewriterule::bv_mul_one (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule10BV_MUL_ONEE"]], "proofrewriterule::bv_mul_zero (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11BV_MUL_ZEROE"]], "proofrewriterule::bv_nand_eliminate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17BV_NAND_ELIMINATEE"]], "proofrewriterule::bv_neg_add (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule10BV_NEG_ADDE"]], "proofrewriterule::bv_neg_idemp (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule12BV_NEG_IDEMPE"]], "proofrewriterule::bv_neg_mult (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11BV_NEG_MULTE"]], "proofrewriterule::bv_neg_sub (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule10BV_NEG_SUBE"]], "proofrewriterule::bv_nor_eliminate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16BV_NOR_ELIMINATEE"]], "proofrewriterule::bv_not_idemp (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule12BV_NOT_IDEMPE"]], "proofrewriterule::bv_not_neq (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule10BV_NOT_NEQE"]], "proofrewriterule::bv_not_sle (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule10BV_NOT_SLEE"]], "proofrewriterule::bv_not_ule (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule10BV_NOT_ULEE"]], "proofrewriterule::bv_not_ult (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule10BV_NOT_ULTE"]], "proofrewriterule::bv_not_xor (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule10BV_NOT_XORE"]], "proofrewriterule::bv_or_concat_pullup (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19BV_OR_CONCAT_PULLUPE"]], "proofrewriterule::bv_or_flatten (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13BV_OR_FLATTENE"]], "proofrewriterule::bv_or_one (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule9BV_OR_ONEE"]], "proofrewriterule::bv_or_simplify_1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16BV_OR_SIMPLIFY_1E"]], "proofrewriterule::bv_or_simplify_2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16BV_OR_SIMPLIFY_2E"]], "proofrewriterule::bv_or_zero (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule10BV_OR_ZEROE"]], "proofrewriterule::bv_redand_eliminate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19BV_REDAND_ELIMINATEE"]], "proofrewriterule::bv_redor_eliminate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18BV_REDOR_ELIMINATEE"]], "proofrewriterule::bv_repeat_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14BV_REPEAT_ELIME"]], "proofrewriterule::bv_rotate_left_eliminate_1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule26BV_ROTATE_LEFT_ELIMINATE_1E"]], "proofrewriterule::bv_rotate_left_eliminate_2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule26BV_ROTATE_LEFT_ELIMINATE_2E"]], "proofrewriterule::bv_rotate_right_eliminate_1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule27BV_ROTATE_RIGHT_ELIMINATE_1E"]], "proofrewriterule::bv_rotate_right_eliminate_2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule27BV_ROTATE_RIGHT_ELIMINATE_2E"]], "proofrewriterule::bv_saddo_eliminate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18BV_SADDO_ELIMINATEE"]], "proofrewriterule::bv_sdivo_eliminate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18BV_SDIVO_ELIMINATEE"]], "proofrewriterule::bv_sdiv_eliminate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17BV_SDIV_ELIMINATEE"]], "proofrewriterule::bv_sdiv_eliminate_fewer_bitwise_ops (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule35BV_SDIV_ELIMINATE_FEWER_BITWISE_OPSE"]], "proofrewriterule::bv_sge_eliminate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16BV_SGE_ELIMINATEE"]], "proofrewriterule::bv_sgt_eliminate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16BV_SGT_ELIMINATEE"]], "proofrewriterule::bv_shl_by_const_0 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17BV_SHL_BY_CONST_0E"]], "proofrewriterule::bv_shl_by_const_1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17BV_SHL_BY_CONST_1E"]], "proofrewriterule::bv_shl_by_const_2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17BV_SHL_BY_CONST_2E"]], "proofrewriterule::bv_shl_zero (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11BV_SHL_ZEROE"]], "proofrewriterule::bv_sign_extend_eliminate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule24BV_SIGN_EXTEND_ELIMINATEE"]], "proofrewriterule::bv_sign_extend_eliminate_0 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule26BV_SIGN_EXTEND_ELIMINATE_0E"]], "proofrewriterule::bv_sign_extend_eq_const_1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule25BV_SIGN_EXTEND_EQ_CONST_1E"]], "proofrewriterule::bv_sign_extend_eq_const_2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule25BV_SIGN_EXTEND_EQ_CONST_2E"]], "proofrewriterule::bv_sign_extend_ult_const_1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule26BV_SIGN_EXTEND_ULT_CONST_1E"]], "proofrewriterule::bv_sign_extend_ult_const_2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule26BV_SIGN_EXTEND_ULT_CONST_2E"]], "proofrewriterule::bv_sign_extend_ult_const_3 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule26BV_SIGN_EXTEND_ULT_CONST_3E"]], "proofrewriterule::bv_sign_extend_ult_const_4 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule26BV_SIGN_EXTEND_ULT_CONST_4E"]], "proofrewriterule::bv_sle_eliminate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16BV_SLE_ELIMINATEE"]], "proofrewriterule::bv_sle_self (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11BV_SLE_SELFE"]], "proofrewriterule::bv_slt_eliminate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16BV_SLT_ELIMINATEE"]], "proofrewriterule::bv_slt_zero (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11BV_SLT_ZEROE"]], "proofrewriterule::bv_smod_eliminate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17BV_SMOD_ELIMINATEE"]], "proofrewriterule::bv_smod_eliminate_fewer_bitwise_ops (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule35BV_SMOD_ELIMINATE_FEWER_BITWISE_OPSE"]], "proofrewriterule::bv_smulo_eliminate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18BV_SMULO_ELIMINATEE"]], "proofrewriterule::bv_srem_eliminate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17BV_SREM_ELIMINATEE"]], "proofrewriterule::bv_srem_eliminate_fewer_bitwise_ops (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule35BV_SREM_ELIMINATE_FEWER_BITWISE_OPSE"]], "proofrewriterule::bv_ssubo_eliminate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18BV_SSUBO_ELIMINATEE"]], "proofrewriterule::bv_sub_eliminate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16BV_SUB_ELIMINATEE"]], "proofrewriterule::bv_to_nat_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14BV_TO_NAT_ELIME"]], "proofrewriterule::bv_uaddo_eliminate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18BV_UADDO_ELIMINATEE"]], "proofrewriterule::bv_udiv_one (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11BV_UDIV_ONEE"]], "proofrewriterule::bv_udiv_pow2_not_one (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule20BV_UDIV_POW2_NOT_ONEE"]], "proofrewriterule::bv_udiv_zero (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule12BV_UDIV_ZEROE"]], "proofrewriterule::bv_uge_eliminate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16BV_UGE_ELIMINATEE"]], "proofrewriterule::bv_ugt_eliminate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16BV_UGT_ELIMINATEE"]], "proofrewriterule::bv_ugt_urem (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11BV_UGT_UREME"]], "proofrewriterule::bv_ule_eliminate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16BV_ULE_ELIMINATEE"]], "proofrewriterule::bv_ule_max (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule10BV_ULE_MAXE"]], "proofrewriterule::bv_ule_self (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11BV_ULE_SELFE"]], "proofrewriterule::bv_ule_zero (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11BV_ULE_ZEROE"]], "proofrewriterule::bv_ult_add_one (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14BV_ULT_ADD_ONEE"]], "proofrewriterule::bv_ult_one (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule10BV_ULT_ONEE"]], "proofrewriterule::bv_ult_ones (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11BV_ULT_ONESE"]], "proofrewriterule::bv_ult_self (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11BV_ULT_SELFE"]], "proofrewriterule::bv_ult_zero_1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13BV_ULT_ZERO_1E"]], "proofrewriterule::bv_ult_zero_2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13BV_ULT_ZERO_2E"]], "proofrewriterule::bv_umulo_eliminate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18BV_UMULO_ELIMINATEE"]], "proofrewriterule::bv_urem_one (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11BV_UREM_ONEE"]], "proofrewriterule::bv_urem_pow2_not_one (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule20BV_UREM_POW2_NOT_ONEE"]], "proofrewriterule::bv_urem_self (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule12BV_UREM_SELFE"]], "proofrewriterule::bv_usubo_eliminate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18BV_USUBO_ELIMINATEE"]], "proofrewriterule::bv_xnor_eliminate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17BV_XNOR_ELIMINATEE"]], "proofrewriterule::bv_xor_concat_pullup (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule20BV_XOR_CONCAT_PULLUPE"]], "proofrewriterule::bv_xor_duplicate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16BV_XOR_DUPLICATEE"]], "proofrewriterule::bv_xor_flatten (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14BV_XOR_FLATTENE"]], "proofrewriterule::bv_xor_not (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule10BV_XOR_NOTE"]], "proofrewriterule::bv_xor_ones (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11BV_XOR_ONESE"]], "proofrewriterule::bv_xor_simplify_1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17BV_XOR_SIMPLIFY_1E"]], "proofrewriterule::bv_xor_simplify_2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17BV_XOR_SIMPLIFY_2E"]], "proofrewriterule::bv_xor_simplify_3 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17BV_XOR_SIMPLIFY_3E"]], "proofrewriterule::bv_xor_zero (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11BV_XOR_ZEROE"]], "proofrewriterule::bv_zero_extend_eliminate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule24BV_ZERO_EXTEND_ELIMINATEE"]], "proofrewriterule::bv_zero_extend_eliminate_0 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule26BV_ZERO_EXTEND_ELIMINATE_0E"]], "proofrewriterule::bv_zero_extend_eq_const_1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule25BV_ZERO_EXTEND_EQ_CONST_1E"]], "proofrewriterule::bv_zero_extend_eq_const_2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule25BV_ZERO_EXTEND_EQ_CONST_2E"]], "proofrewriterule::bv_zero_ule (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11BV_ZERO_ULEE"]], "proofrewriterule::distinct_binary_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule20DISTINCT_BINARY_ELIME"]], "proofrewriterule::distinct_card_conflict (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule22DISTINCT_CARD_CONFLICTE"]], "proofrewriterule::distinct_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13DISTINCT_ELIME"]], "proofrewriterule::dt_collapse_selector (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule20DT_COLLAPSE_SELECTORE"]], "proofrewriterule::dt_collapse_tester (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18DT_COLLAPSE_TESTERE"]], "proofrewriterule::dt_collapse_tester_singleton (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule28DT_COLLAPSE_TESTER_SINGLETONE"]], "proofrewriterule::dt_collapse_updater (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19DT_COLLAPSE_UPDATERE"]], "proofrewriterule::dt_cons_eq (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule10DT_CONS_EQE"]], "proofrewriterule::dt_cycle (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule8DT_CYCLEE"]], "proofrewriterule::dt_inst (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule7DT_INSTE"]], "proofrewriterule::dt_match_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13DT_MATCH_ELIME"]], "proofrewriterule::dt_updater_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule15DT_UPDATER_ELIME"]], "proofrewriterule::eq_cond_deq (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11EQ_COND_DEQE"]], "proofrewriterule::eq_ite_lift (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11EQ_ITE_LIFTE"]], "proofrewriterule::eq_refl (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule7EQ_REFLE"]], "proofrewriterule::eq_symm (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule7EQ_SYMME"]], "proofrewriterule::exists_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11EXISTS_ELIME"]], "proofrewriterule::int_to_bv_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14INT_TO_BV_ELIME"]], "proofrewriterule::ite_else_false (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14ITE_ELSE_FALSEE"]], "proofrewriterule::ite_else_lookahead (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18ITE_ELSE_LOOKAHEADE"]], "proofrewriterule::ite_else_lookahead_not_self (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule27ITE_ELSE_LOOKAHEAD_NOT_SELFE"]], "proofrewriterule::ite_else_lookahead_self (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule23ITE_ELSE_LOOKAHEAD_SELFE"]], "proofrewriterule::ite_else_neg_lookahead (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule22ITE_ELSE_NEG_LOOKAHEADE"]], "proofrewriterule::ite_else_true (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13ITE_ELSE_TRUEE"]], "proofrewriterule::ite_eq_branch (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13ITE_EQ_BRANCHE"]], "proofrewriterule::ite_expand (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule10ITE_EXPANDE"]], "proofrewriterule::ite_false_cond (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14ITE_FALSE_CONDE"]], "proofrewriterule::ite_neg_branch (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14ITE_NEG_BRANCHE"]], "proofrewriterule::ite_not_cond (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule12ITE_NOT_CONDE"]], "proofrewriterule::ite_then_false (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14ITE_THEN_FALSEE"]], "proofrewriterule::ite_then_lookahead (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18ITE_THEN_LOOKAHEADE"]], "proofrewriterule::ite_then_lookahead_not_self (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule27ITE_THEN_LOOKAHEAD_NOT_SELFE"]], "proofrewriterule::ite_then_lookahead_self (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule23ITE_THEN_LOOKAHEAD_SELFE"]], "proofrewriterule::ite_then_neg_lookahead (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule22ITE_THEN_NEG_LOOKAHEADE"]], "proofrewriterule::ite_then_true (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13ITE_THEN_TRUEE"]], "proofrewriterule::ite_true_cond (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13ITE_TRUE_CONDE"]], "proofrewriterule::lambda_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11LAMBDA_ELIME"]], "proofrewriterule::macro_arith_string_pred_entail (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule30MACRO_ARITH_STRING_PRED_ENTAILE"]], "proofrewriterule::macro_arrays_distinct_arrays (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule28MACRO_ARRAYS_DISTINCT_ARRAYSE"]], "proofrewriterule::macro_arrays_normalize_constant (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule31MACRO_ARRAYS_NORMALIZE_CONSTANTE"]], "proofrewriterule::macro_bool_nnf_norm (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19MACRO_BOOL_NNF_NORME"]], "proofrewriterule::macro_quant_merge_prenex (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule24MACRO_QUANT_MERGE_PRENEXE"]], "proofrewriterule::macro_quant_miniscope (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule21MACRO_QUANT_MINISCOPEE"]], "proofrewriterule::macro_quant_partition_connected_fv (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule34MACRO_QUANT_PARTITION_CONNECTED_FVE"]], "proofrewriterule::macro_quant_prenex (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18MACRO_QUANT_PRENEXE"]], "proofrewriterule::macro_quant_rewrite_body (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule24MACRO_QUANT_REWRITE_BODYE"]], "proofrewriterule::macro_quant_var_elim_eq (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule23MACRO_QUANT_VAR_ELIM_EQE"]], "proofrewriterule::macro_quant_var_elim_ineq (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule25MACRO_QUANT_VAR_ELIM_INEQE"]], "proofrewriterule::macro_substr_strip_sym_length (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule29MACRO_SUBSTR_STRIP_SYM_LENGTHE"]], "proofrewriterule::none (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule4NONEE"]], "proofrewriterule::quant_dt_split (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14QUANT_DT_SPLITE"]], "proofrewriterule::quant_merge_prenex (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18QUANT_MERGE_PRENEXE"]], "proofrewriterule::quant_miniscope_and (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19QUANT_MINISCOPE_ANDE"]], "proofrewriterule::quant_miniscope_ite (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19QUANT_MINISCOPE_ITEE"]], "proofrewriterule::quant_miniscope_or (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18QUANT_MINISCOPE_ORE"]], "proofrewriterule::quant_unused_vars (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17QUANT_UNUSED_VARSE"]], "proofrewriterule::quant_var_elim_eq (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17QUANT_VAR_ELIM_EQE"]], "proofrewriterule::re_all_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11RE_ALL_ELIME"]], "proofrewriterule::re_concat_emp (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13RE_CONCAT_EMPE"]], "proofrewriterule::re_concat_flatten (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17RE_CONCAT_FLATTENE"]], "proofrewriterule::re_concat_merge (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule15RE_CONCAT_MERGEE"]], "proofrewriterule::re_concat_none (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14RE_CONCAT_NONEE"]], "proofrewriterule::re_concat_star_repeat (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule21RE_CONCAT_STAR_REPEATE"]], "proofrewriterule::re_concat_star_swap (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19RE_CONCAT_STAR_SWAPE"]], "proofrewriterule::re_diff_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule12RE_DIFF_ELIME"]], "proofrewriterule::re_inter_all (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule12RE_INTER_ALLE"]], "proofrewriterule::re_inter_cstring (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16RE_INTER_CSTRINGE"]], "proofrewriterule::re_inter_cstring_neg (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule20RE_INTER_CSTRING_NEGE"]], "proofrewriterule::re_inter_dup (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule12RE_INTER_DUPE"]], "proofrewriterule::re_inter_flatten (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16RE_INTER_FLATTENE"]], "proofrewriterule::re_inter_none (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13RE_INTER_NONEE"]], "proofrewriterule::re_inter_union_inclusion (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule24RE_INTER_UNION_INCLUSIONE"]], "proofrewriterule::re_in_comp (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule10RE_IN_COMPE"]], "proofrewriterule::re_in_cstring (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13RE_IN_CSTRINGE"]], "proofrewriterule::re_in_empty (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11RE_IN_EMPTYE"]], "proofrewriterule::re_in_sigma (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11RE_IN_SIGMAE"]], "proofrewriterule::re_in_sigma_star (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16RE_IN_SIGMA_STARE"]], "proofrewriterule::re_loop_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule12RE_LOOP_ELIME"]], "proofrewriterule::re_loop_neg (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11RE_LOOP_NEGE"]], "proofrewriterule::re_opt_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11RE_OPT_ELIME"]], "proofrewriterule::re_star_none (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule12RE_STAR_NONEE"]], "proofrewriterule::re_union_all (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule12RE_UNION_ALLE"]], "proofrewriterule::re_union_dup (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule12RE_UNION_DUPE"]], "proofrewriterule::re_union_flatten (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16RE_UNION_FLATTENE"]], "proofrewriterule::re_union_none (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13RE_UNION_NONEE"]], "proofrewriterule::seq_len_empty (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13SEQ_LEN_EMPTYE"]], "proofrewriterule::seq_len_rev (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11SEQ_LEN_REVE"]], "proofrewriterule::seq_len_unit (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule12SEQ_LEN_UNITE"]], "proofrewriterule::seq_nth_unit (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule12SEQ_NTH_UNITE"]], "proofrewriterule::seq_rev_concat (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14SEQ_REV_CONCATE"]], "proofrewriterule::seq_rev_rev (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11SEQ_REV_REVE"]], "proofrewriterule::seq_rev_unit (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule12SEQ_REV_UNITE"]], "proofrewriterule::sets_card_emp (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13SETS_CARD_EMPE"]], "proofrewriterule::sets_card_minus (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule15SETS_CARD_MINUSE"]], "proofrewriterule::sets_card_singleton (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19SETS_CARD_SINGLETONE"]], "proofrewriterule::sets_card_union (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule15SETS_CARD_UNIONE"]], "proofrewriterule::sets_choose_singleton (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule21SETS_CHOOSE_SINGLETONE"]], "proofrewriterule::sets_eq_singleton_emp (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule21SETS_EQ_SINGLETON_EMPE"]], "proofrewriterule::sets_insert_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16SETS_INSERT_ELIME"]], "proofrewriterule::sets_inter_comm (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule15SETS_INTER_COMME"]], "proofrewriterule::sets_inter_emp1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule15SETS_INTER_EMP1E"]], "proofrewriterule::sets_inter_emp2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule15SETS_INTER_EMP2E"]], "proofrewriterule::sets_inter_member (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17SETS_INTER_MEMBERE"]], "proofrewriterule::sets_is_empty_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18SETS_IS_EMPTY_ELIME"]], "proofrewriterule::sets_is_empty_eval (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18SETS_IS_EMPTY_EVALE"]], "proofrewriterule::sets_member_emp (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule15SETS_MEMBER_EMPE"]], "proofrewriterule::sets_member_singleton (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule21SETS_MEMBER_SINGLETONE"]], "proofrewriterule::sets_minus_emp1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule15SETS_MINUS_EMP1E"]], "proofrewriterule::sets_minus_emp2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule15SETS_MINUS_EMP2E"]], "proofrewriterule::sets_minus_member (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17SETS_MINUS_MEMBERE"]], "proofrewriterule::sets_minus_self (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule15SETS_MINUS_SELFE"]], "proofrewriterule::sets_subset_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16SETS_SUBSET_ELIME"]], "proofrewriterule::sets_union_comm (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule15SETS_UNION_COMME"]], "proofrewriterule::sets_union_emp1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule15SETS_UNION_EMP1E"]], "proofrewriterule::sets_union_emp2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule15SETS_UNION_EMP2E"]], "proofrewriterule::sets_union_member (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17SETS_UNION_MEMBERE"]], "proofrewriterule::str_at_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11STR_AT_ELIME"]], "proofrewriterule::str_concat_clash (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16STR_CONCAT_CLASHE"]], "proofrewriterule::str_concat_clash2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17STR_CONCAT_CLASH2E"]], "proofrewriterule::str_concat_clash2_rev (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule21STR_CONCAT_CLASH2_REVE"]], "proofrewriterule::str_concat_clash_char (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule21STR_CONCAT_CLASH_CHARE"]], "proofrewriterule::str_concat_clash_char_rev (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule25STR_CONCAT_CLASH_CHAR_REVE"]], "proofrewriterule::str_concat_clash_rev (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule20STR_CONCAT_CLASH_REVE"]], "proofrewriterule::str_concat_flatten (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18STR_CONCAT_FLATTENE"]], "proofrewriterule::str_concat_flatten_eq (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule21STR_CONCAT_FLATTEN_EQE"]], "proofrewriterule::str_concat_flatten_eq_rev (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule25STR_CONCAT_FLATTEN_EQ_REVE"]], "proofrewriterule::str_concat_unify (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16STR_CONCAT_UNIFYE"]], "proofrewriterule::str_concat_unify_base (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule21STR_CONCAT_UNIFY_BASEE"]], "proofrewriterule::str_concat_unify_base_rev (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule25STR_CONCAT_UNIFY_BASE_REVE"]], "proofrewriterule::str_concat_unify_rev (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule20STR_CONCAT_UNIFY_REVE"]], "proofrewriterule::str_contains_concat_find (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule24STR_CONTAINS_CONCAT_FINDE"]], "proofrewriterule::str_contains_emp (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16STR_CONTAINS_EMPE"]], "proofrewriterule::str_contains_is_emp (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19STR_CONTAINS_IS_EMPE"]], "proofrewriterule::str_contains_leq_len_eq (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule23STR_CONTAINS_LEQ_LEN_EQE"]], "proofrewriterule::str_contains_lt_len (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19STR_CONTAINS_LT_LENE"]], "proofrewriterule::str_contains_refl (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17STR_CONTAINS_REFLE"]], "proofrewriterule::str_contains_split_char (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule23STR_CONTAINS_SPLIT_CHARE"]], "proofrewriterule::str_eq_ctn_false (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16STR_EQ_CTN_FALSEE"]], "proofrewriterule::str_eq_ctn_full_false1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule22STR_EQ_CTN_FULL_FALSE1E"]], "proofrewriterule::str_eq_ctn_full_false2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule22STR_EQ_CTN_FULL_FALSE2E"]], "proofrewriterule::str_indexof_contains_pre (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule24STR_INDEXOF_CONTAINS_PREE"]], "proofrewriterule::str_indexof_no_contains (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule23STR_INDEXOF_NO_CONTAINSE"]], "proofrewriterule::str_indexof_re_none (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19STR_INDEXOF_RE_NONEE"]], "proofrewriterule::str_indexof_self (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16STR_INDEXOF_SELFE"]], "proofrewriterule::str_in_re_concat_star_char (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule26STR_IN_RE_CONCAT_STAR_CHARE"]], "proofrewriterule::str_in_re_consume (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17STR_IN_RE_CONSUMEE"]], "proofrewriterule::str_in_re_contains (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18STR_IN_RE_CONTAINSE"]], "proofrewriterule::str_in_re_eval (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14STR_IN_RE_EVALE"]], "proofrewriterule::str_in_re_inter_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule20STR_IN_RE_INTER_ELIME"]], "proofrewriterule::str_in_re_range_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule20STR_IN_RE_RANGE_ELIME"]], "proofrewriterule::str_in_re_req_unfold (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule20STR_IN_RE_REQ_UNFOLDE"]], "proofrewriterule::str_in_re_req_unfold_rev (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule24STR_IN_RE_REQ_UNFOLD_REVE"]], "proofrewriterule::str_in_re_sigma (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule15STR_IN_RE_SIGMAE"]], "proofrewriterule::str_in_re_sigma_star (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule20STR_IN_RE_SIGMA_STARE"]], "proofrewriterule::str_in_re_skip_unfold (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule21STR_IN_RE_SKIP_UNFOLDE"]], "proofrewriterule::str_in_re_skip_unfold_rev (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule25STR_IN_RE_SKIP_UNFOLD_REVE"]], "proofrewriterule::str_in_re_strip_char (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule20STR_IN_RE_STRIP_CHARE"]], "proofrewriterule::str_in_re_strip_char_rev (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule24STR_IN_RE_STRIP_CHAR_REVE"]], "proofrewriterule::str_in_re_strip_char_s_single (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule29STR_IN_RE_STRIP_CHAR_S_SINGLEE"]], "proofrewriterule::str_in_re_strip_char_s_single_rev (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule33STR_IN_RE_STRIP_CHAR_S_SINGLE_REVE"]], "proofrewriterule::str_in_re_strip_prefix (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule22STR_IN_RE_STRIP_PREFIXE"]], "proofrewriterule::str_in_re_strip_prefix_base (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule27STR_IN_RE_STRIP_PREFIX_BASEE"]], "proofrewriterule::str_in_re_strip_prefix_base_neg (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule31STR_IN_RE_STRIP_PREFIX_BASE_NEGE"]], "proofrewriterule::str_in_re_strip_prefix_base_neg_rev (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule35STR_IN_RE_STRIP_PREFIX_BASE_NEG_REVE"]], "proofrewriterule::str_in_re_strip_prefix_base_rev (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule31STR_IN_RE_STRIP_PREFIX_BASE_REVE"]], "proofrewriterule::str_in_re_strip_prefix_base_s_single (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule36STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLEE"]], "proofrewriterule::str_in_re_strip_prefix_base_s_single_neg (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule40STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEGE"]], "proofrewriterule::str_in_re_strip_prefix_base_s_single_neg_rev (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule44STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG_REVE"]], "proofrewriterule::str_in_re_strip_prefix_base_s_single_rev (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule40STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_REVE"]], "proofrewriterule::str_in_re_strip_prefix_neg (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule26STR_IN_RE_STRIP_PREFIX_NEGE"]], "proofrewriterule::str_in_re_strip_prefix_neg_rev (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule30STR_IN_RE_STRIP_PREFIX_NEG_REVE"]], "proofrewriterule::str_in_re_strip_prefix_rev (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule26STR_IN_RE_STRIP_PREFIX_REVE"]], "proofrewriterule::str_in_re_strip_prefix_srs_single (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule33STR_IN_RE_STRIP_PREFIX_SRS_SINGLEE"]], "proofrewriterule::str_in_re_strip_prefix_srs_single_neg (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule37STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEGE"]], "proofrewriterule::str_in_re_strip_prefix_srs_single_neg_rev (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule41STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG_REVE"]], "proofrewriterule::str_in_re_strip_prefix_srs_single_rev (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule37STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_REVE"]], "proofrewriterule::str_in_re_strip_prefix_sr_single (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule32STR_IN_RE_STRIP_PREFIX_SR_SINGLEE"]], "proofrewriterule::str_in_re_strip_prefix_sr_single_neg (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule36STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEGE"]], "proofrewriterule::str_in_re_strip_prefix_sr_single_neg_rev (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule40STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG_REVE"]], "proofrewriterule::str_in_re_strip_prefix_sr_single_rev (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule36STR_IN_RE_STRIP_PREFIX_SR_SINGLE_REVE"]], "proofrewriterule::str_in_re_strip_prefix_s_single (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule31STR_IN_RE_STRIP_PREFIX_S_SINGLEE"]], "proofrewriterule::str_in_re_strip_prefix_s_single_neg (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule35STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEGE"]], "proofrewriterule::str_in_re_strip_prefix_s_single_neg_rev (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule39STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG_REVE"]], "proofrewriterule::str_in_re_strip_prefix_s_single_rev (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule35STR_IN_RE_STRIP_PREFIX_S_SINGLE_REVE"]], "proofrewriterule::str_in_re_test_unfold (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule21STR_IN_RE_TEST_UNFOLDE"]], "proofrewriterule::str_in_re_test_unfold_rev (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule25STR_IN_RE_TEST_UNFOLD_REVE"]], "proofrewriterule::str_in_re_union_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule20STR_IN_RE_UNION_ELIME"]], "proofrewriterule::str_len_concat_rec (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18STR_LEN_CONCAT_RECE"]], "proofrewriterule::str_len_replace_inv (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19STR_LEN_REPLACE_INVE"]], "proofrewriterule::str_len_substr_in_range (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule23STR_LEN_SUBSTR_IN_RANGEE"]], "proofrewriterule::str_len_substr_ub1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18STR_LEN_SUBSTR_UB1E"]], "proofrewriterule::str_len_substr_ub2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18STR_LEN_SUBSTR_UB2E"]], "proofrewriterule::str_len_update_inv (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18STR_LEN_UPDATE_INVE"]], "proofrewriterule::str_leq_concat_false (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule20STR_LEQ_CONCAT_FALSEE"]], "proofrewriterule::str_leq_concat_true (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19STR_LEQ_CONCAT_TRUEE"]], "proofrewriterule::str_leq_empty (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13STR_LEQ_EMPTYE"]], "proofrewriterule::str_leq_empty_eq (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16STR_LEQ_EMPTY_EQE"]], "proofrewriterule::str_lt_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11STR_LT_ELIME"]], "proofrewriterule::str_prefixof_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17STR_PREFIXOF_ELIME"]], "proofrewriterule::str_prefixof_one (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16STR_PREFIXOF_ONEE"]], "proofrewriterule::str_replace_all_no_contains (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule27STR_REPLACE_ALL_NO_CONTAINSE"]], "proofrewriterule::str_replace_contains_pre (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule24STR_REPLACE_CONTAINS_PREE"]], "proofrewriterule::str_replace_empty (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17STR_REPLACE_EMPTYE"]], "proofrewriterule::str_replace_no_contains (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule23STR_REPLACE_NO_CONTAINSE"]], "proofrewriterule::str_replace_prefix (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18STR_REPLACE_PREFIXE"]], "proofrewriterule::str_replace_re_all_none (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule23STR_REPLACE_RE_ALL_NONEE"]], "proofrewriterule::str_replace_re_none (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19STR_REPLACE_RE_NONEE"]], "proofrewriterule::str_replace_self (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16STR_REPLACE_SELFE"]], "proofrewriterule::str_substr_combine1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19STR_SUBSTR_COMBINE1E"]], "proofrewriterule::str_substr_combine2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19STR_SUBSTR_COMBINE2E"]], "proofrewriterule::str_substr_combine3 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19STR_SUBSTR_COMBINE3E"]], "proofrewriterule::str_substr_combine4 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19STR_SUBSTR_COMBINE4E"]], "proofrewriterule::str_substr_concat1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18STR_SUBSTR_CONCAT1E"]], "proofrewriterule::str_substr_concat2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18STR_SUBSTR_CONCAT2E"]], "proofrewriterule::str_substr_empty_range (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule22STR_SUBSTR_EMPTY_RANGEE"]], "proofrewriterule::str_substr_empty_start (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule22STR_SUBSTR_EMPTY_STARTE"]], "proofrewriterule::str_substr_empty_start_neg (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule26STR_SUBSTR_EMPTY_START_NEGE"]], "proofrewriterule::str_substr_empty_str (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule20STR_SUBSTR_EMPTY_STRE"]], "proofrewriterule::str_substr_eq_empty (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19STR_SUBSTR_EQ_EMPTYE"]], "proofrewriterule::str_substr_full (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule15STR_SUBSTR_FULLE"]], "proofrewriterule::str_substr_full_eq (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18STR_SUBSTR_FULL_EQE"]], "proofrewriterule::str_substr_len_include (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule22STR_SUBSTR_LEN_INCLUDEE"]], "proofrewriterule::str_substr_len_include_pre (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule26STR_SUBSTR_LEN_INCLUDE_PREE"]], "proofrewriterule::str_substr_len_skip (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19STR_SUBSTR_LEN_SKIPE"]], "proofrewriterule::str_suffixof_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17STR_SUFFIXOF_ELIME"]], "proofrewriterule::str_suffixof_one (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16STR_SUFFIXOF_ONEE"]], "proofrewriterule::str_to_int_concat_neg_one (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule25STR_TO_INT_CONCAT_NEG_ONEE"]], "proofrewriterule::str_to_lower_concat (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19STR_TO_LOWER_CONCATE"]], "proofrewriterule::str_to_lower_from_int (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule21STR_TO_LOWER_FROM_INTE"]], "proofrewriterule::str_to_lower_len (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16STR_TO_LOWER_LENE"]], "proofrewriterule::str_to_lower_upper (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18STR_TO_LOWER_UPPERE"]], "proofrewriterule::str_to_upper_concat (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19STR_TO_UPPER_CONCATE"]], "proofrewriterule::str_to_upper_from_int (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule21STR_TO_UPPER_FROM_INTE"]], "proofrewriterule::str_to_upper_len (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16STR_TO_UPPER_LENE"]], "proofrewriterule::str_to_upper_lower (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18STR_TO_UPPER_LOWERE"]], "proofrewriterule::uf_bv2nat_geq_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18UF_BV2NAT_GEQ_ELIME"]], "proofrewriterule::uf_bv2nat_int2bv (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16UF_BV2NAT_INT2BVE"]], "proofrewriterule::uf_bv2nat_int2bv_extend (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule23UF_BV2NAT_INT2BV_EXTENDE"]], "proofrewriterule::uf_bv2nat_int2bv_extract (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule24UF_BV2NAT_INT2BV_EXTRACTE"]], "proofrewriterule::uf_int2bv_bv2nat (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16UF_INT2BV_BV2NATE"]], "proofrewriterule::uf_int2bv_bvule_equiv (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule21UF_INT2BV_BVULE_EQUIVE"]], "proofrewriterule::uf_int2bv_bvult_equiv (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule21UF_INT2BV_BVULT_EQUIVE"]], "proofrule (c++ enum)": [[53, "_CPPv4N4cvc59ProofRuleE"]], "proofrule::aci_norm (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule8ACI_NORME"]], "proofrule::alethe_rule (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule11ALETHE_RULEE"]], "proofrule::alpha_equiv (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule11ALPHA_EQUIVE"]], "proofrule::and_elim (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule8AND_ELIME"]], "proofrule::and_intro (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule9AND_INTROE"]], "proofrule::arith_mult_abs_comparison (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule25ARITH_MULT_ABS_COMPARISONE"]], "proofrule::arith_mult_neg (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule14ARITH_MULT_NEGE"]], "proofrule::arith_mult_pos (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule14ARITH_MULT_POSE"]], "proofrule::arith_mult_sign (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule15ARITH_MULT_SIGNE"]], "proofrule::arith_mult_tangent (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule18ARITH_MULT_TANGENTE"]], "proofrule::arith_poly_norm (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule15ARITH_POLY_NORME"]], "proofrule::arith_poly_norm_rel (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule19ARITH_POLY_NORM_RELE"]], "proofrule::arith_reduction (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule15ARITH_REDUCTIONE"]], "proofrule::arith_sum_ub (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule12ARITH_SUM_UBE"]], "proofrule::arith_trans_exp_approx_above_neg (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule32ARITH_TRANS_EXP_APPROX_ABOVE_NEGE"]], "proofrule::arith_trans_exp_approx_above_pos (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule32ARITH_TRANS_EXP_APPROX_ABOVE_POSE"]], "proofrule::arith_trans_exp_approx_below (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule28ARITH_TRANS_EXP_APPROX_BELOWE"]], "proofrule::arith_trans_exp_neg (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule19ARITH_TRANS_EXP_NEGE"]], "proofrule::arith_trans_exp_positivity (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule26ARITH_TRANS_EXP_POSITIVITYE"]], "proofrule::arith_trans_exp_super_lin (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule25ARITH_TRANS_EXP_SUPER_LINE"]], "proofrule::arith_trans_exp_zero (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule20ARITH_TRANS_EXP_ZEROE"]], "proofrule::arith_trans_pi (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule14ARITH_TRANS_PIE"]], "proofrule::arith_trans_sine_approx_above_neg (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule33ARITH_TRANS_SINE_APPROX_ABOVE_NEGE"]], "proofrule::arith_trans_sine_approx_above_pos (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule33ARITH_TRANS_SINE_APPROX_ABOVE_POSE"]], "proofrule::arith_trans_sine_approx_below_neg (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule33ARITH_TRANS_SINE_APPROX_BELOW_NEGE"]], "proofrule::arith_trans_sine_approx_below_pos (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule33ARITH_TRANS_SINE_APPROX_BELOW_POSE"]], "proofrule::arith_trans_sine_bounds (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule23ARITH_TRANS_SINE_BOUNDSE"]], "proofrule::arith_trans_sine_shift (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule22ARITH_TRANS_SINE_SHIFTE"]], "proofrule::arith_trans_sine_symmetry (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule25ARITH_TRANS_SINE_SYMMETRYE"]], "proofrule::arith_trans_sine_tangent_pi (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule27ARITH_TRANS_SINE_TANGENT_PIE"]], "proofrule::arith_trans_sine_tangent_zero (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule29ARITH_TRANS_SINE_TANGENT_ZEROE"]], "proofrule::arith_trichotomy (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule16ARITH_TRICHOTOMYE"]], "proofrule::arrays_ext (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule10ARRAYS_EXTE"]], "proofrule::arrays_read_over_write (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule22ARRAYS_READ_OVER_WRITEE"]], "proofrule::arrays_read_over_write_1 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule24ARRAYS_READ_OVER_WRITE_1E"]], "proofrule::arrays_read_over_write_contra (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule29ARRAYS_READ_OVER_WRITE_CONTRAE"]], "proofrule::assume (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule6ASSUMEE"]], "proofrule::bv_bitblast_step (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule16BV_BITBLAST_STEPE"]], "proofrule::bv_eager_atom (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule13BV_EAGER_ATOME"]], "proofrule::chain_resolution (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule16CHAIN_RESOLUTIONE"]], "proofrule::cnf_and_neg (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule11CNF_AND_NEGE"]], "proofrule::cnf_and_pos (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule11CNF_AND_POSE"]], "proofrule::cnf_equiv_neg1 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule14CNF_EQUIV_NEG1E"]], "proofrule::cnf_equiv_neg2 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule14CNF_EQUIV_NEG2E"]], "proofrule::cnf_equiv_pos1 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule14CNF_EQUIV_POS1E"]], "proofrule::cnf_equiv_pos2 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule14CNF_EQUIV_POS2E"]], "proofrule::cnf_implies_neg1 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule16CNF_IMPLIES_NEG1E"]], "proofrule::cnf_implies_neg2 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule16CNF_IMPLIES_NEG2E"]], "proofrule::cnf_implies_pos (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule15CNF_IMPLIES_POSE"]], "proofrule::cnf_ite_neg1 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule12CNF_ITE_NEG1E"]], "proofrule::cnf_ite_neg2 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule12CNF_ITE_NEG2E"]], "proofrule::cnf_ite_neg3 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule12CNF_ITE_NEG3E"]], "proofrule::cnf_ite_pos1 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule12CNF_ITE_POS1E"]], "proofrule::cnf_ite_pos2 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule12CNF_ITE_POS2E"]], "proofrule::cnf_ite_pos3 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule12CNF_ITE_POS3E"]], "proofrule::cnf_or_neg (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule10CNF_OR_NEGE"]], "proofrule::cnf_or_pos (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule10CNF_OR_POSE"]], "proofrule::cnf_xor_neg1 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule12CNF_XOR_NEG1E"]], "proofrule::cnf_xor_neg2 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule12CNF_XOR_NEG2E"]], "proofrule::cnf_xor_pos1 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule12CNF_XOR_POS1E"]], "proofrule::cnf_xor_pos2 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule12CNF_XOR_POS2E"]], "proofrule::concat_conflict (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule15CONCAT_CONFLICTE"]], "proofrule::concat_conflict_deq (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule19CONCAT_CONFLICT_DEQE"]], "proofrule::concat_cprop (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule12CONCAT_CPROPE"]], "proofrule::concat_csplit (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule13CONCAT_CSPLITE"]], "proofrule::concat_eq (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule9CONCAT_EQE"]], "proofrule::concat_lprop (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule12CONCAT_LPROPE"]], "proofrule::concat_split (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule12CONCAT_SPLITE"]], "proofrule::concat_unify (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule12CONCAT_UNIFYE"]], "proofrule::cong (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule4CONGE"]], "proofrule::contra (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule6CONTRAE"]], "proofrule::drat_refutation (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule15DRAT_REFUTATIONE"]], "proofrule::dsl_rewrite (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule11DSL_REWRITEE"]], "proofrule::dt_clash (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule8DT_CLASHE"]], "proofrule::dt_split (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule8DT_SPLITE"]], "proofrule::encode_eq_intro (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule15ENCODE_EQ_INTROE"]], "proofrule::equiv_elim1 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule11EQUIV_ELIM1E"]], "proofrule::equiv_elim2 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule11EQUIV_ELIM2E"]], "proofrule::eq_resolve (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule10EQ_RESOLVEE"]], "proofrule::evaluate (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule8EVALUATEE"]], "proofrule::factoring (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule9FACTORINGE"]], "proofrule::false_elim (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule10FALSE_ELIME"]], "proofrule::false_intro (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule11FALSE_INTROE"]], "proofrule::ho_app_encode (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule13HO_APP_ENCODEE"]], "proofrule::ho_cong (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule7HO_CONGE"]], "proofrule::implies_elim (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule12IMPLIES_ELIME"]], "proofrule::instantiate (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule11INSTANTIATEE"]], "proofrule::int_tight_lb (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule12INT_TIGHT_LBE"]], "proofrule::int_tight_ub (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule12INT_TIGHT_UBE"]], "proofrule::ite_elim1 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule9ITE_ELIM1E"]], "proofrule::ite_elim2 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule9ITE_ELIM2E"]], "proofrule::ite_eq (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule6ITE_EQE"]], "proofrule::lfsc_rule (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule9LFSC_RULEE"]], "proofrule::macro_arith_scale_sum_ub (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule24MACRO_ARITH_SCALE_SUM_UBE"]], "proofrule::macro_bv_bitblast (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule17MACRO_BV_BITBLASTE"]], "proofrule::macro_resolution (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule16MACRO_RESOLUTIONE"]], "proofrule::macro_resolution_trust (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule22MACRO_RESOLUTION_TRUSTE"]], "proofrule::macro_rewrite (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule13MACRO_REWRITEE"]], "proofrule::macro_sr_eq_intro (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule17MACRO_SR_EQ_INTROE"]], "proofrule::macro_sr_pred_elim (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule18MACRO_SR_PRED_ELIME"]], "proofrule::macro_sr_pred_intro (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule19MACRO_SR_PRED_INTROE"]], "proofrule::macro_sr_pred_transform (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule23MACRO_SR_PRED_TRANSFORME"]], "proofrule::macro_string_inference (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule22MACRO_STRING_INFERENCEE"]], "proofrule::modus_ponens (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule12MODUS_PONENSE"]], "proofrule::nary_cong (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule9NARY_CONGE"]], "proofrule::not_and (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule7NOT_ANDE"]], "proofrule::not_equiv_elim1 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule15NOT_EQUIV_ELIM1E"]], "proofrule::not_equiv_elim2 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule15NOT_EQUIV_ELIM2E"]], "proofrule::not_implies_elim1 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule17NOT_IMPLIES_ELIM1E"]], "proofrule::not_implies_elim2 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule17NOT_IMPLIES_ELIM2E"]], "proofrule::not_ite_elim1 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule13NOT_ITE_ELIM1E"]], "proofrule::not_ite_elim2 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule13NOT_ITE_ELIM2E"]], "proofrule::not_not_elim (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule12NOT_NOT_ELIME"]], "proofrule::not_or_elim (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule11NOT_OR_ELIME"]], "proofrule::not_xor_elim1 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule13NOT_XOR_ELIM1E"]], "proofrule::not_xor_elim2 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule13NOT_XOR_ELIM2E"]], "proofrule::quant_var_reordering (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule20QUANT_VAR_REORDERINGE"]], "proofrule::refl (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule4REFLE"]], "proofrule::reordering (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule10REORDERINGE"]], "proofrule::resolution (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule10RESOLUTIONE"]], "proofrule::re_inter (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule8RE_INTERE"]], "proofrule::re_unfold_neg (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule13RE_UNFOLD_NEGE"]], "proofrule::re_unfold_neg_concat_fixed (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule26RE_UNFOLD_NEG_CONCAT_FIXEDE"]], "proofrule::re_unfold_pos (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule13RE_UNFOLD_POSE"]], "proofrule::sat_external_prove (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule18SAT_EXTERNAL_PROVEE"]], "proofrule::sat_refutation (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule14SAT_REFUTATIONE"]], "proofrule::scope (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule5SCOPEE"]], "proofrule::sets_ext (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule8SETS_EXTE"]], "proofrule::sets_filter_down (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule16SETS_FILTER_DOWNE"]], "proofrule::sets_filter_up (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule14SETS_FILTER_UPE"]], "proofrule::sets_singleton_inj (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule18SETS_SINGLETON_INJE"]], "proofrule::skolemize (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule9SKOLEMIZEE"]], "proofrule::skolem_intro (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule12SKOLEM_INTROE"]], "proofrule::split (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule5SPLITE"]], "proofrule::string_code_inj (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule15STRING_CODE_INJE"]], "proofrule::string_decompose (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule16STRING_DECOMPOSEE"]], "proofrule::string_eager_reduction (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule22STRING_EAGER_REDUCTIONE"]], "proofrule::string_ext (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule10STRING_EXTE"]], "proofrule::string_length_non_empty (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule23STRING_LENGTH_NON_EMPTYE"]], "proofrule::string_length_pos (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule17STRING_LENGTH_POSE"]], "proofrule::string_reduction (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule16STRING_REDUCTIONE"]], "proofrule::string_seq_unit_inj (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule19STRING_SEQ_UNIT_INJE"]], "proofrule::subs (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule4SUBSE"]], "proofrule::symm (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule4SYMME"]], "proofrule::theory_rewrite (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule14THEORY_REWRITEE"]], "proofrule::trans (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule5TRANSE"]], "proofrule::true_elim (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule9TRUE_ELIME"]], "proofrule::true_intro (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule10TRUE_INTROE"]], "proofrule::trust (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule5TRUSTE"]], "proofrule::trust_theory_rewrite (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule20TRUST_THEORY_REWRITEE"]], "proofrule::unknown (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule7UNKNOWNE"]], "proofrule::xor_elim1 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule9XOR_ELIM1E"]], "proofrule::xor_elim2 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule9XOR_ELIM2E"]], "std::hash (c++ struct)": [[53, "_CPPv4IENSt4hashIN4cvc516ProofRewriteRuleEEE"]], "std::hash::operator() (c++ function)": [[53, "_CPPv4NKSt4hashIN4cvc516ProofRewriteRuleEEclEN4cvc516ProofRewriteRuleE"]], "std::hash (c++ struct)": [[53, "_CPPv4IENSt4hashIN4cvc59ProofRuleEEE"]], "std::hash::operator() (c++ function)": [[53, "_CPPv4NKSt4hashIN4cvc59ProofRuleEEclEN4cvc59ProofRuleE"]], "roundingmode (c++ enum)": [[54, "_CPPv4N4cvc512RoundingModeE"]], "roundingmode::round_nearest_ties_to_away (c++ enumerator)": [[54, "_CPPv4N4cvc512RoundingMode26ROUND_NEAREST_TIES_TO_AWAYE"]], "roundingmode::round_nearest_ties_to_even (c++ enumerator)": [[54, "_CPPv4N4cvc512RoundingMode26ROUND_NEAREST_TIES_TO_EVENE"]], "roundingmode::round_toward_negative (c++ enumerator)": [[54, "_CPPv4N4cvc512RoundingMode21ROUND_TOWARD_NEGATIVEE"]], "roundingmode::round_toward_positive (c++ enumerator)": [[54, "_CPPv4N4cvc512RoundingMode21ROUND_TOWARD_POSITIVEE"]], "roundingmode::round_toward_zero (c++ enumerator)": [[54, "_CPPv4N4cvc512RoundingMode17ROUND_TOWARD_ZEROE"]], "sortkind (c++ enum)": [[55, "_CPPv4N4cvc58SortKindE"]], "sortkind::abstract_sort (c++ enumerator)": [[55, "_CPPv4N4cvc58SortKind13ABSTRACT_SORTE"]], "sortkind::array_sort (c++ enumerator)": [[55, "_CPPv4N4cvc58SortKind10ARRAY_SORTE"]], "sortkind::bag_sort (c++ enumerator)": [[55, "_CPPv4N4cvc58SortKind8BAG_SORTE"]], "sortkind::bitvector_sort (c++ enumerator)": [[55, "_CPPv4N4cvc58SortKind14BITVECTOR_SORTE"]], "sortkind::boolean_sort (c++ enumerator)": [[55, "_CPPv4N4cvc58SortKind12BOOLEAN_SORTE"]], "sortkind::datatype_sort (c++ enumerator)": [[55, "_CPPv4N4cvc58SortKind13DATATYPE_SORTE"]], "sortkind::finite_field_sort (c++ enumerator)": [[55, "_CPPv4N4cvc58SortKind17FINITE_FIELD_SORTE"]], "sortkind::floatingpoint_sort (c++ enumerator)": [[55, "_CPPv4N4cvc58SortKind18FLOATINGPOINT_SORTE"]], "sortkind::function_sort (c++ enumerator)": [[55, "_CPPv4N4cvc58SortKind13FUNCTION_SORTE"]], "sortkind::integer_sort (c++ enumerator)": [[55, "_CPPv4N4cvc58SortKind12INTEGER_SORTE"]], "sortkind::internal_sort_kind (c++ enumerator)": [[55, "_CPPv4N4cvc58SortKind18INTERNAL_SORT_KINDE"]], "sortkind::last_sort_kind (c++ enumerator)": [[55, "_CPPv4N4cvc58SortKind14LAST_SORT_KINDE"]], "sortkind::nullable_sort (c++ enumerator)": [[55, "_CPPv4N4cvc58SortKind13NULLABLE_SORTE"]], "sortkind::null_sort (c++ enumerator)": [[55, "_CPPv4N4cvc58SortKind9NULL_SORTE"]], "sortkind::real_sort (c++ enumerator)": [[55, "_CPPv4N4cvc58SortKind9REAL_SORTE"]], "sortkind::reglan_sort (c++ enumerator)": [[55, "_CPPv4N4cvc58SortKind11REGLAN_SORTE"]], "sortkind::roundingmode_sort (c++ enumerator)": [[55, "_CPPv4N4cvc58SortKind17ROUNDINGMODE_SORTE"]], "sortkind::sequence_sort (c++ enumerator)": [[55, "_CPPv4N4cvc58SortKind13SEQUENCE_SORTE"]], "sortkind::set_sort (c++ enumerator)": [[55, "_CPPv4N4cvc58SortKind8SET_SORTE"]], "sortkind::string_sort (c++ enumerator)": [[55, "_CPPv4N4cvc58SortKind11STRING_SORTE"]], "sortkind::tuple_sort (c++ enumerator)": [[55, "_CPPv4N4cvc58SortKind10TUPLE_SORTE"]], "sortkind::undefined_sort_kind (c++ enumerator)": [[55, "_CPPv4N4cvc58SortKind19UNDEFINED_SORT_KINDE"]], "sortkind::uninterpreted_sort (c++ enumerator)": [[55, "_CPPv4N4cvc58SortKind18UNINTERPRETED_SORTE"]], "std::hash (c++ struct)": [[55, "_CPPv4IENSt4hashIN4cvc58SortKindEEE"]], "std::hash::operator() (c++ function)": [[55, "_CPPv4NKSt4hashIN4cvc58SortKindEEclEN4cvc58SortKindE"]], "unknownexplanation (c++ enum)": [[56, "_CPPv4N4cvc518UnknownExplanationE"]], "unknownexplanation::incomplete (c++ enumerator)": [[56, "_CPPv4N4cvc518UnknownExplanation10INCOMPLETEE"]], "unknownexplanation::interrupted (c++ enumerator)": [[56, "_CPPv4N4cvc518UnknownExplanation11INTERRUPTEDE"]], "unknownexplanation::memout (c++ enumerator)": [[56, "_CPPv4N4cvc518UnknownExplanation6MEMOUTE"]], "unknownexplanation::other (c++ enumerator)": [[56, "_CPPv4N4cvc518UnknownExplanation5OTHERE"]], "unknownexplanation::requires_check_again (c++ enumerator)": [[56, "_CPPv4N4cvc518UnknownExplanation20REQUIRES_CHECK_AGAINE"]], "unknownexplanation::requires_full_check (c++ enumerator)": [[56, "_CPPv4N4cvc518UnknownExplanation19REQUIRES_FULL_CHECKE"]], "unknownexplanation::resourceout (c++ enumerator)": [[56, "_CPPv4N4cvc518UnknownExplanation11RESOURCEOUTE"]], "unknownexplanation::timeout (c++ enumerator)": [[56, "_CPPv4N4cvc518UnknownExplanation7TIMEOUTE"]], "unknownexplanation::unknown_reason (c++ enumerator)": [[56, "_CPPv4N4cvc518UnknownExplanation14UNKNOWN_REASONE"]], "unknownexplanation::unsupported (c++ enumerator)": [[56, "_CPPv4N4cvc518UnknownExplanation11UNSUPPORTEDE"]], "cvc5apiexception (c++ class)": [[57, "_CPPv4N4cvc516CVC5ApiExceptionE"]], "cvc5apiexception::cvc5apiexception (c++ function)": [[57, "_CPPv4N4cvc516CVC5ApiException16CVC5ApiExceptionERKNSt12stringstreamE"], [57, "_CPPv4N4cvc516CVC5ApiException16CVC5ApiExceptionERKNSt6stringE"]], "cvc5apiexception::getmessage (c++ function)": [[57, "_CPPv4NK4cvc516CVC5ApiException10getMessageEv"]], "cvc5apiexception::tostream (c++ function)": [[57, "_CPPv4NK4cvc516CVC5ApiException8toStreamERNSt7ostreamE"]], "cvc5apiexception::what (c++ function)": [[57, "_CPPv4NK4cvc516CVC5ApiException4whatEv"]], "cvc5apirecoverableexception (c++ class)": [[57, "_CPPv4N4cvc527CVC5ApiRecoverableExceptionE"]], "cvc5apirecoverableexception::cvc5apirecoverableexception (c++ function)": [[57, "_CPPv4N4cvc527CVC5ApiRecoverableException27CVC5ApiRecoverableExceptionERKNSt12stringstreamE"], [57, "_CPPv4N4cvc527CVC5ApiRecoverableException27CVC5ApiRecoverableExceptionERKNSt6stringE"]], "parser::parserexception (c++ class)": [[57, "_CPPv4N4cvc56parser15ParserExceptionE"]], "parser::parserexception::parserexception (c++ function)": [[57, "_CPPv4N4cvc56parser15ParserException15ParserExceptionEPKc"], [57, "_CPPv4N4cvc56parser15ParserException15ParserExceptionERKNSt6stringE"], [57, "_CPPv4N4cvc56parser15ParserException15ParserExceptionERKNSt6stringERKNSt6stringEmm"], [57, "_CPPv4N4cvc56parser15ParserException15ParserExceptionEv"]], "parser::parserexception::getcolumn (c++ function)": [[57, "_CPPv4NK4cvc56parser15ParserException9getColumnEv"]], "parser::parserexception::getfilename (c++ function)": [[57, "_CPPv4NK4cvc56parser15ParserException11getFilenameEv"]], "parser::parserexception::getline (c++ function)": [[57, "_CPPv4NK4cvc56parser15ParserException7getLineEv"]], "parser::parserexception::tostream (c++ function)": [[57, "_CPPv4NK4cvc56parser15ParserException8toStreamERNSt7ostreamE"]], "command (class in cvc5)": [[61, "cvc5.Command"]], "getcommandname() (cvc5.command method)": [[61, "cvc5.Command.getCommandName"]], "invoke() (cvc5.command method)": [[61, "cvc5.Command.invoke"]], "isnull() (cvc5.command method)": [[61, "cvc5.Command.isNull"]], "tostring() (cvc5.command method)": [[61, "cvc5.Command.toString"]], "datatype (class in cvc5)": [[62, "cvc5.Datatype"]], "__getitem__() (cvc5.datatype method)": [[62, "cvc5.Datatype.__getitem__"]], "__iter__() (cvc5.datatype method)": [[62, "cvc5.Datatype.__iter__"]], "getconstructor() (cvc5.datatype method)": [[62, "cvc5.Datatype.getConstructor"]], "getname() (cvc5.datatype method)": [[62, "cvc5.Datatype.getName"]], "getnumconstructors() (cvc5.datatype method)": [[62, "cvc5.Datatype.getNumConstructors"]], "getparameters() (cvc5.datatype method)": [[62, "cvc5.Datatype.getParameters"]], "getselector() (cvc5.datatype method)": [[62, "cvc5.Datatype.getSelector"]], "iscodatatype() (cvc5.datatype method)": [[62, "cvc5.Datatype.isCodatatype"]], "isfinite() (cvc5.datatype method)": [[62, "cvc5.Datatype.isFinite"]], "isnull() (cvc5.datatype method)": [[62, "cvc5.Datatype.isNull"]], "isparametric() (cvc5.datatype method)": [[62, "cvc5.Datatype.isParametric"]], "isrecord() (cvc5.datatype method)": [[62, "cvc5.Datatype.isRecord"]], "istuple() (cvc5.datatype method)": [[62, "cvc5.Datatype.isTuple"]], "iswellfounded() (cvc5.datatype method)": [[62, "cvc5.Datatype.isWellFounded"]], "datatypeconstructor (class in cvc5)": [[63, "cvc5.DatatypeConstructor"]], "__getitem__() (cvc5.datatypeconstructor method)": [[63, "cvc5.DatatypeConstructor.__getitem__"]], "__iter__() (cvc5.datatypeconstructor method)": [[63, "cvc5.DatatypeConstructor.__iter__"]], "getinstantiatedterm() (cvc5.datatypeconstructor method)": [[63, "cvc5.DatatypeConstructor.getInstantiatedTerm"]], "getname() (cvc5.datatypeconstructor method)": [[63, "cvc5.DatatypeConstructor.getName"]], "getnumselectors() (cvc5.datatypeconstructor method)": [[63, "cvc5.DatatypeConstructor.getNumSelectors"]], "getselector() (cvc5.datatypeconstructor method)": [[63, "cvc5.DatatypeConstructor.getSelector"]], "getterm() (cvc5.datatypeconstructor method)": [[63, "cvc5.DatatypeConstructor.getTerm"]], "gettesterterm() (cvc5.datatypeconstructor method)": [[63, "cvc5.DatatypeConstructor.getTesterTerm"]], "isnull() (cvc5.datatypeconstructor method)": [[63, "cvc5.DatatypeConstructor.isNull"]], "datatypeconstructordecl (class in cvc5)": [[64, "cvc5.DatatypeConstructorDecl"]], "addselector() (cvc5.datatypeconstructordecl method)": [[64, "cvc5.DatatypeConstructorDecl.addSelector"]], "addselectorself() (cvc5.datatypeconstructordecl method)": [[64, "cvc5.DatatypeConstructorDecl.addSelectorSelf"]], "addselectorunresolved() (cvc5.datatypeconstructordecl method)": [[64, "cvc5.DatatypeConstructorDecl.addSelectorUnresolved"]], "isnull() (cvc5.datatypeconstructordecl method)": [[64, "cvc5.DatatypeConstructorDecl.isNull"]], "datatypedecl (class in cvc5)": [[65, "cvc5.DatatypeDecl"]], "addconstructor() (cvc5.datatypedecl method)": [[65, "cvc5.DatatypeDecl.addConstructor"]], "getname() (cvc5.datatypedecl method)": [[65, "cvc5.DatatypeDecl.getName"]], "getnumconstructors() (cvc5.datatypedecl method)": [[65, "cvc5.DatatypeDecl.getNumConstructors"]], "isnull() (cvc5.datatypedecl method)": [[65, "cvc5.DatatypeDecl.isNull"]], "isparametric() (cvc5.datatypedecl method)": [[65, "cvc5.DatatypeDecl.isParametric"]], "datatypeselector (class in cvc5)": [[66, "cvc5.DatatypeSelector"]], "getcodomainsort() (cvc5.datatypeselector method)": [[66, "cvc5.DatatypeSelector.getCodomainSort"]], "getname() (cvc5.datatypeselector method)": [[66, "cvc5.DatatypeSelector.getName"]], "getterm() (cvc5.datatypeselector method)": [[66, "cvc5.DatatypeSelector.getTerm"]], "getupdaterterm() (cvc5.datatypeselector method)": [[66, "cvc5.DatatypeSelector.getUpdaterTerm"]], "isnull() (cvc5.datatypeselector method)": [[66, "cvc5.DatatypeSelector.isNull"]], "grammar (class in cvc5)": [[67, "cvc5.Grammar"]], "addanyconstant() (cvc5.grammar method)": [[67, "cvc5.Grammar.addAnyConstant"]], "addanyvariable() (cvc5.grammar method)": [[67, "cvc5.Grammar.addAnyVariable"]], "addrule() (cvc5.grammar method)": [[67, "cvc5.Grammar.addRule"]], "addrules() (cvc5.grammar method)": [[67, "cvc5.Grammar.addRules"]], "isnull() (cvc5.grammar method)": [[67, "cvc5.Grammar.isNull"]], "inputparser (class in cvc5)": [[68, "cvc5.InputParser"]], "appendincrementalstringinput() (cvc5.inputparser method)": [[68, "cvc5.InputParser.appendIncrementalStringInput"]], "done() (cvc5.inputparser method)": [[68, "cvc5.InputParser.done"]], "getsolver() (cvc5.inputparser method)": [[68, "cvc5.InputParser.getSolver"]], "getsymbolmanager() (cvc5.inputparser method)": [[68, "cvc5.InputParser.getSymbolManager"]], "nextcommand() (cvc5.inputparser method)": [[68, "cvc5.InputParser.nextCommand"]], "nextterm() (cvc5.inputparser method)": [[68, "cvc5.InputParser.nextTerm"]], "setfileinput() (cvc5.inputparser method)": [[68, "cvc5.InputParser.setFileInput"]], "setincrementalstringinput() (cvc5.inputparser method)": [[68, "cvc5.InputParser.setIncrementalStringInput"]], "setstringinput() (cvc5.inputparser method)": [[68, "cvc5.InputParser.setStringInput"]], "abs (cvc5.kind attribute)": [[69, "cvc5.Kind.ABS"]], "add (cvc5.kind attribute)": [[69, "cvc5.Kind.ADD"]], "and (cvc5.kind attribute)": [[69, "cvc5.Kind.AND"]], "apply_constructor (cvc5.kind attribute)": [[69, "cvc5.Kind.APPLY_CONSTRUCTOR"]], "apply_selector (cvc5.kind attribute)": [[69, "cvc5.Kind.APPLY_SELECTOR"]], "apply_tester (cvc5.kind attribute)": [[69, "cvc5.Kind.APPLY_TESTER"]], "apply_uf (cvc5.kind attribute)": [[69, "cvc5.Kind.APPLY_UF"]], "apply_updater (cvc5.kind attribute)": [[69, "cvc5.Kind.APPLY_UPDATER"]], "arccosecant (cvc5.kind attribute)": [[69, "cvc5.Kind.ARCCOSECANT"]], "arccosine (cvc5.kind attribute)": [[69, "cvc5.Kind.ARCCOSINE"]], "arccotangent (cvc5.kind attribute)": [[69, "cvc5.Kind.ARCCOTANGENT"]], "arcsecant (cvc5.kind attribute)": [[69, "cvc5.Kind.ARCSECANT"]], "arcsine (cvc5.kind attribute)": [[69, "cvc5.Kind.ARCSINE"]], "arctangent (cvc5.kind attribute)": [[69, "cvc5.Kind.ARCTANGENT"]], "bag_card (cvc5.kind attribute)": [[69, "cvc5.Kind.BAG_CARD"]], "bag_choose (cvc5.kind attribute)": [[69, "cvc5.Kind.BAG_CHOOSE"]], "bag_count (cvc5.kind attribute)": [[69, "cvc5.Kind.BAG_COUNT"]], "bag_difference_remove (cvc5.kind attribute)": [[69, "cvc5.Kind.BAG_DIFFERENCE_REMOVE"]], "bag_difference_subtract (cvc5.kind attribute)": [[69, "cvc5.Kind.BAG_DIFFERENCE_SUBTRACT"]], "bag_empty (cvc5.kind attribute)": [[69, "cvc5.Kind.BAG_EMPTY"]], "bag_filter (cvc5.kind attribute)": [[69, "cvc5.Kind.BAG_FILTER"]], "bag_fold (cvc5.kind attribute)": [[69, "cvc5.Kind.BAG_FOLD"]], "bag_inter_min (cvc5.kind attribute)": [[69, "cvc5.Kind.BAG_INTER_MIN"]], "bag_make (cvc5.kind attribute)": [[69, "cvc5.Kind.BAG_MAKE"]], "bag_map (cvc5.kind attribute)": [[69, "cvc5.Kind.BAG_MAP"]], "bag_member (cvc5.kind attribute)": [[69, "cvc5.Kind.BAG_MEMBER"]], "bag_partition (cvc5.kind attribute)": [[69, "cvc5.Kind.BAG_PARTITION"]], "bag_setof (cvc5.kind attribute)": [[69, "cvc5.Kind.BAG_SETOF"]], "bag_subbag (cvc5.kind attribute)": [[69, "cvc5.Kind.BAG_SUBBAG"]], "bag_union_disjoint (cvc5.kind attribute)": [[69, "cvc5.Kind.BAG_UNION_DISJOINT"]], "bag_union_max (cvc5.kind attribute)": [[69, "cvc5.Kind.BAG_UNION_MAX"]], "bitvector_add (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_ADD"]], "bitvector_and (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_AND"]], "bitvector_ashr (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_ASHR"]], "bitvector_bit (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_BIT"]], "bitvector_comp (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_COMP"]], "bitvector_concat (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_CONCAT"]], "bitvector_extract (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_EXTRACT"]], "bitvector_from_bools (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_FROM_BOOLS"]], "bitvector_ite (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_ITE"]], "bitvector_lshr (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_LSHR"]], "bitvector_mult (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_MULT"]], "bitvector_nand (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_NAND"]], "bitvector_neg (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_NEG"]], "bitvector_nego (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_NEGO"]], "bitvector_nor (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_NOR"]], "bitvector_not (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_NOT"]], "bitvector_or (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_OR"]], "bitvector_redand (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_REDAND"]], "bitvector_redor (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_REDOR"]], "bitvector_repeat (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_REPEAT"]], "bitvector_rotate_left (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_ROTATE_LEFT"]], "bitvector_rotate_right (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_ROTATE_RIGHT"]], "bitvector_saddo (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_SADDO"]], "bitvector_sdiv (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_SDIV"]], "bitvector_sdivo (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_SDIVO"]], "bitvector_sge (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_SGE"]], "bitvector_sgt (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_SGT"]], "bitvector_shl (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_SHL"]], "bitvector_sign_extend (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_SIGN_EXTEND"]], "bitvector_sle (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_SLE"]], "bitvector_slt (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_SLT"]], "bitvector_sltbv (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_SLTBV"]], "bitvector_smod (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_SMOD"]], "bitvector_smulo (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_SMULO"]], "bitvector_srem (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_SREM"]], "bitvector_ssubo (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_SSUBO"]], "bitvector_sub (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_SUB"]], "bitvector_to_nat (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_TO_NAT"]], "bitvector_uaddo (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_UADDO"]], "bitvector_udiv (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_UDIV"]], "bitvector_uge (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_UGE"]], "bitvector_ugt (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_UGT"]], "bitvector_ule (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_ULE"]], "bitvector_ult (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_ULT"]], "bitvector_ultbv (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_ULTBV"]], "bitvector_umulo (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_UMULO"]], "bitvector_urem (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_UREM"]], "bitvector_usubo (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_USUBO"]], "bitvector_xnor (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_XNOR"]], "bitvector_xor (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_XOR"]], "bitvector_zero_extend (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_ZERO_EXTEND"]], "cardinality_constraint (cvc5.kind attribute)": [[69, "cvc5.Kind.CARDINALITY_CONSTRAINT"]], "constant (cvc5.kind attribute)": [[69, "cvc5.Kind.CONSTANT"]], "const_array (cvc5.kind attribute)": [[69, "cvc5.Kind.CONST_ARRAY"]], "const_bitvector (cvc5.kind attribute)": [[69, "cvc5.Kind.CONST_BITVECTOR"]], "const_boolean (cvc5.kind attribute)": [[69, "cvc5.Kind.CONST_BOOLEAN"]], "const_finite_field (cvc5.kind attribute)": [[69, "cvc5.Kind.CONST_FINITE_FIELD"]], "const_floatingpoint (cvc5.kind attribute)": [[69, "cvc5.Kind.CONST_FLOATINGPOINT"]], "const_integer (cvc5.kind attribute)": [[69, "cvc5.Kind.CONST_INTEGER"]], "const_rational (cvc5.kind attribute)": [[69, "cvc5.Kind.CONST_RATIONAL"]], "const_roundingmode (cvc5.kind attribute)": [[69, "cvc5.Kind.CONST_ROUNDINGMODE"]], "const_sequence (cvc5.kind attribute)": [[69, "cvc5.Kind.CONST_SEQUENCE"]], "const_string (cvc5.kind attribute)": [[69, "cvc5.Kind.CONST_STRING"]], "cosecant (cvc5.kind attribute)": [[69, "cvc5.Kind.COSECANT"]], "cosine (cvc5.kind attribute)": [[69, "cvc5.Kind.COSINE"]], "cotangent (cvc5.kind attribute)": [[69, "cvc5.Kind.COTANGENT"]], "distinct (cvc5.kind attribute)": [[69, "cvc5.Kind.DISTINCT"]], "divisible (cvc5.kind attribute)": [[69, "cvc5.Kind.DIVISIBLE"]], "division (cvc5.kind attribute)": [[69, "cvc5.Kind.DIVISION"]], "division_total (cvc5.kind attribute)": [[69, "cvc5.Kind.DIVISION_TOTAL"]], "equal (cvc5.kind attribute)": [[69, "cvc5.Kind.EQUAL"]], "eq_range (cvc5.kind attribute)": [[69, "cvc5.Kind.EQ_RANGE"]], "exists (cvc5.kind attribute)": [[69, "cvc5.Kind.EXISTS"]], "exponential (cvc5.kind attribute)": [[69, "cvc5.Kind.EXPONENTIAL"]], "finite_field_add (cvc5.kind attribute)": [[69, "cvc5.Kind.FINITE_FIELD_ADD"]], "finite_field_bitsum (cvc5.kind attribute)": [[69, "cvc5.Kind.FINITE_FIELD_BITSUM"]], "finite_field_mult (cvc5.kind attribute)": [[69, "cvc5.Kind.FINITE_FIELD_MULT"]], "finite_field_neg (cvc5.kind attribute)": [[69, "cvc5.Kind.FINITE_FIELD_NEG"]], "floatingpoint_abs (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_ABS"]], "floatingpoint_add (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_ADD"]], "floatingpoint_div (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_DIV"]], "floatingpoint_eq (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_EQ"]], "floatingpoint_fma (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_FMA"]], "floatingpoint_fp (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_FP"]], "floatingpoint_geq (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_GEQ"]], "floatingpoint_gt (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_GT"]], "floatingpoint_is_inf (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_IS_INF"]], "floatingpoint_is_nan (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_IS_NAN"]], "floatingpoint_is_neg (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_IS_NEG"]], "floatingpoint_is_normal (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_IS_NORMAL"]], "floatingpoint_is_pos (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_IS_POS"]], "floatingpoint_is_subnormal (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_IS_SUBNORMAL"]], "floatingpoint_is_zero (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_IS_ZERO"]], "floatingpoint_leq (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_LEQ"]], "floatingpoint_lt (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_LT"]], "floatingpoint_max (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_MAX"]], "floatingpoint_min (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_MIN"]], "floatingpoint_mult (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_MULT"]], "floatingpoint_neg (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_NEG"]], "floatingpoint_rem (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_REM"]], "floatingpoint_rti (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_RTI"]], "floatingpoint_sqrt (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_SQRT"]], "floatingpoint_sub (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_SUB"]], "floatingpoint_to_fp_from_fp (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_TO_FP_FROM_FP"]], "floatingpoint_to_fp_from_ieee_bv (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_TO_FP_FROM_IEEE_BV"]], "floatingpoint_to_fp_from_real (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_TO_FP_FROM_REAL"]], "floatingpoint_to_fp_from_sbv (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_TO_FP_FROM_SBV"]], "floatingpoint_to_fp_from_ubv (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_TO_FP_FROM_UBV"]], "floatingpoint_to_real (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_TO_REAL"]], "floatingpoint_to_sbv (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_TO_SBV"]], "floatingpoint_to_ubv (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_TO_UBV"]], "forall (cvc5.kind attribute)": [[69, "cvc5.Kind.FORALL"]], "geq (cvc5.kind attribute)": [[69, "cvc5.Kind.GEQ"]], "gt (cvc5.kind attribute)": [[69, "cvc5.Kind.GT"]], "ho_apply (cvc5.kind attribute)": [[69, "cvc5.Kind.HO_APPLY"]], "iand (cvc5.kind attribute)": [[69, "cvc5.Kind.IAND"]], "implies (cvc5.kind attribute)": [[69, "cvc5.Kind.IMPLIES"]], "inst_add_to_pool (cvc5.kind attribute)": [[69, "cvc5.Kind.INST_ADD_TO_POOL"]], "inst_attribute (cvc5.kind attribute)": [[69, "cvc5.Kind.INST_ATTRIBUTE"]], "inst_no_pattern (cvc5.kind attribute)": [[69, "cvc5.Kind.INST_NO_PATTERN"]], "inst_pattern (cvc5.kind attribute)": [[69, "cvc5.Kind.INST_PATTERN"]], "inst_pattern_list (cvc5.kind attribute)": [[69, "cvc5.Kind.INST_PATTERN_LIST"]], "inst_pool (cvc5.kind attribute)": [[69, "cvc5.Kind.INST_POOL"]], "internal_kind (cvc5.kind attribute)": [[69, "cvc5.Kind.INTERNAL_KIND"]], "ints_division (cvc5.kind attribute)": [[69, "cvc5.Kind.INTS_DIVISION"]], "ints_division_total (cvc5.kind attribute)": [[69, "cvc5.Kind.INTS_DIVISION_TOTAL"]], "ints_modulus (cvc5.kind attribute)": [[69, "cvc5.Kind.INTS_MODULUS"]], "ints_modulus_total (cvc5.kind attribute)": [[69, "cvc5.Kind.INTS_MODULUS_TOTAL"]], "int_to_bitvector (cvc5.kind attribute)": [[69, "cvc5.Kind.INT_TO_BITVECTOR"]], "is_integer (cvc5.kind attribute)": [[69, "cvc5.Kind.IS_INTEGER"]], "ite (cvc5.kind attribute)": [[69, "cvc5.Kind.ITE"]], "kind (class in cvc5)": [[69, "cvc5.Kind"]], "lambda (cvc5.kind attribute)": [[69, "cvc5.Kind.LAMBDA"]], "last_kind (cvc5.kind attribute)": [[69, "cvc5.Kind.LAST_KIND"]], "leq (cvc5.kind attribute)": [[69, "cvc5.Kind.LEQ"]], "lt (cvc5.kind attribute)": [[69, "cvc5.Kind.LT"]], "match (cvc5.kind attribute)": [[69, "cvc5.Kind.MATCH"]], "match_bind_case (cvc5.kind attribute)": [[69, "cvc5.Kind.MATCH_BIND_CASE"]], "match_case (cvc5.kind attribute)": [[69, "cvc5.Kind.MATCH_CASE"]], "mult (cvc5.kind attribute)": [[69, "cvc5.Kind.MULT"]], "neg (cvc5.kind attribute)": [[69, "cvc5.Kind.NEG"]], "not (cvc5.kind attribute)": [[69, "cvc5.Kind.NOT"]], "nullable_lift (cvc5.kind attribute)": [[69, "cvc5.Kind.NULLABLE_LIFT"]], "null_term (cvc5.kind attribute)": [[69, "cvc5.Kind.NULL_TERM"]], "or (cvc5.kind attribute)": [[69, "cvc5.Kind.OR"]], "pi (cvc5.kind attribute)": [[69, "cvc5.Kind.PI"]], "pow (cvc5.kind attribute)": [[69, "cvc5.Kind.POW"]], "pow2 (cvc5.kind attribute)": [[69, "cvc5.Kind.POW2"]], "regexp_all (cvc5.kind attribute)": [[69, "cvc5.Kind.REGEXP_ALL"]], "regexp_allchar (cvc5.kind attribute)": [[69, "cvc5.Kind.REGEXP_ALLCHAR"]], "regexp_complement (cvc5.kind attribute)": [[69, "cvc5.Kind.REGEXP_COMPLEMENT"]], "regexp_concat (cvc5.kind attribute)": [[69, "cvc5.Kind.REGEXP_CONCAT"]], "regexp_diff (cvc5.kind attribute)": [[69, "cvc5.Kind.REGEXP_DIFF"]], "regexp_inter (cvc5.kind attribute)": [[69, "cvc5.Kind.REGEXP_INTER"]], "regexp_loop (cvc5.kind attribute)": [[69, "cvc5.Kind.REGEXP_LOOP"]], "regexp_none (cvc5.kind attribute)": [[69, "cvc5.Kind.REGEXP_NONE"]], "regexp_opt (cvc5.kind attribute)": [[69, "cvc5.Kind.REGEXP_OPT"]], "regexp_plus (cvc5.kind attribute)": [[69, "cvc5.Kind.REGEXP_PLUS"]], "regexp_range (cvc5.kind attribute)": [[69, "cvc5.Kind.REGEXP_RANGE"]], "regexp_repeat (cvc5.kind attribute)": [[69, "cvc5.Kind.REGEXP_REPEAT"]], "regexp_star (cvc5.kind attribute)": [[69, "cvc5.Kind.REGEXP_STAR"]], "regexp_union (cvc5.kind attribute)": [[69, "cvc5.Kind.REGEXP_UNION"]], "relation_aggregate (cvc5.kind attribute)": [[69, "cvc5.Kind.RELATION_AGGREGATE"]], "relation_group (cvc5.kind attribute)": [[69, "cvc5.Kind.RELATION_GROUP"]], "relation_iden (cvc5.kind attribute)": [[69, "cvc5.Kind.RELATION_IDEN"]], "relation_join (cvc5.kind attribute)": [[69, "cvc5.Kind.RELATION_JOIN"]], "relation_join_image (cvc5.kind attribute)": [[69, "cvc5.Kind.RELATION_JOIN_IMAGE"]], "relation_product (cvc5.kind attribute)": [[69, "cvc5.Kind.RELATION_PRODUCT"]], "relation_project (cvc5.kind attribute)": [[69, "cvc5.Kind.RELATION_PROJECT"]], "relation_table_join (cvc5.kind attribute)": [[69, "cvc5.Kind.RELATION_TABLE_JOIN"]], "relation_tclosure (cvc5.kind attribute)": [[69, "cvc5.Kind.RELATION_TCLOSURE"]], "relation_transpose (cvc5.kind attribute)": [[69, "cvc5.Kind.RELATION_TRANSPOSE"]], "secant (cvc5.kind attribute)": [[69, "cvc5.Kind.SECANT"]], "select (cvc5.kind attribute)": [[69, "cvc5.Kind.SELECT"]], "sep_emp (cvc5.kind attribute)": [[69, "cvc5.Kind.SEP_EMP"]], "sep_nil (cvc5.kind attribute)": [[69, "cvc5.Kind.SEP_NIL"]], "sep_pto (cvc5.kind attribute)": [[69, "cvc5.Kind.SEP_PTO"]], "sep_star (cvc5.kind attribute)": [[69, "cvc5.Kind.SEP_STAR"]], "sep_wand (cvc5.kind attribute)": [[69, "cvc5.Kind.SEP_WAND"]], "seq_at (cvc5.kind attribute)": [[69, "cvc5.Kind.SEQ_AT"]], "seq_concat (cvc5.kind attribute)": [[69, "cvc5.Kind.SEQ_CONCAT"]], "seq_contains (cvc5.kind attribute)": [[69, "cvc5.Kind.SEQ_CONTAINS"]], "seq_extract (cvc5.kind attribute)": [[69, "cvc5.Kind.SEQ_EXTRACT"]], "seq_indexof (cvc5.kind attribute)": [[69, "cvc5.Kind.SEQ_INDEXOF"]], "seq_length (cvc5.kind attribute)": [[69, "cvc5.Kind.SEQ_LENGTH"]], "seq_nth (cvc5.kind attribute)": [[69, "cvc5.Kind.SEQ_NTH"]], "seq_prefix (cvc5.kind attribute)": [[69, "cvc5.Kind.SEQ_PREFIX"]], "seq_replace (cvc5.kind attribute)": [[69, "cvc5.Kind.SEQ_REPLACE"]], "seq_replace_all (cvc5.kind attribute)": [[69, "cvc5.Kind.SEQ_REPLACE_ALL"]], "seq_rev (cvc5.kind attribute)": [[69, "cvc5.Kind.SEQ_REV"]], "seq_suffix (cvc5.kind attribute)": [[69, "cvc5.Kind.SEQ_SUFFIX"]], "seq_unit (cvc5.kind attribute)": [[69, "cvc5.Kind.SEQ_UNIT"]], "seq_update (cvc5.kind attribute)": [[69, "cvc5.Kind.SEQ_UPDATE"]], "set_all (cvc5.kind attribute)": [[69, "cvc5.Kind.SET_ALL"]], "set_card (cvc5.kind attribute)": [[69, "cvc5.Kind.SET_CARD"]], "set_choose (cvc5.kind attribute)": [[69, "cvc5.Kind.SET_CHOOSE"]], "set_complement (cvc5.kind attribute)": [[69, "cvc5.Kind.SET_COMPLEMENT"]], "set_comprehension (cvc5.kind attribute)": [[69, "cvc5.Kind.SET_COMPREHENSION"]], "set_empty (cvc5.kind attribute)": [[69, "cvc5.Kind.SET_EMPTY"]], "set_filter (cvc5.kind attribute)": [[69, "cvc5.Kind.SET_FILTER"]], "set_fold (cvc5.kind attribute)": [[69, "cvc5.Kind.SET_FOLD"]], "set_insert (cvc5.kind attribute)": [[69, "cvc5.Kind.SET_INSERT"]], "set_inter (cvc5.kind attribute)": [[69, "cvc5.Kind.SET_INTER"]], "set_is_empty (cvc5.kind attribute)": [[69, "cvc5.Kind.SET_IS_EMPTY"]], "set_is_singleton (cvc5.kind attribute)": [[69, "cvc5.Kind.SET_IS_SINGLETON"]], "set_map (cvc5.kind attribute)": [[69, "cvc5.Kind.SET_MAP"]], "set_member (cvc5.kind attribute)": [[69, "cvc5.Kind.SET_MEMBER"]], "set_minus (cvc5.kind attribute)": [[69, "cvc5.Kind.SET_MINUS"]], "set_singleton (cvc5.kind attribute)": [[69, "cvc5.Kind.SET_SINGLETON"]], "set_some (cvc5.kind attribute)": [[69, "cvc5.Kind.SET_SOME"]], "set_subset (cvc5.kind attribute)": [[69, "cvc5.Kind.SET_SUBSET"]], "set_union (cvc5.kind attribute)": [[69, "cvc5.Kind.SET_UNION"]], "set_universe (cvc5.kind attribute)": [[69, "cvc5.Kind.SET_UNIVERSE"]], "sexpr (cvc5.kind attribute)": [[69, "cvc5.Kind.SEXPR"]], "sine (cvc5.kind attribute)": [[69, "cvc5.Kind.SINE"]], "skolem (cvc5.kind attribute)": [[69, "cvc5.Kind.SKOLEM"]], "skolem_add_to_pool (cvc5.kind attribute)": [[69, "cvc5.Kind.SKOLEM_ADD_TO_POOL"]], "sqrt (cvc5.kind attribute)": [[69, "cvc5.Kind.SQRT"]], "store (cvc5.kind attribute)": [[69, "cvc5.Kind.STORE"]], "string_charat (cvc5.kind attribute)": [[69, "cvc5.Kind.STRING_CHARAT"]], "string_concat (cvc5.kind attribute)": [[69, "cvc5.Kind.STRING_CONCAT"]], "string_contains (cvc5.kind attribute)": [[69, "cvc5.Kind.STRING_CONTAINS"]], "string_from_code (cvc5.kind attribute)": [[69, "cvc5.Kind.STRING_FROM_CODE"]], "string_from_int (cvc5.kind attribute)": [[69, "cvc5.Kind.STRING_FROM_INT"]], "string_indexof (cvc5.kind attribute)": [[69, "cvc5.Kind.STRING_INDEXOF"]], "string_indexof_re (cvc5.kind attribute)": [[69, "cvc5.Kind.STRING_INDEXOF_RE"]], "string_in_regexp (cvc5.kind attribute)": [[69, "cvc5.Kind.STRING_IN_REGEXP"]], "string_is_digit (cvc5.kind attribute)": [[69, "cvc5.Kind.STRING_IS_DIGIT"]], "string_length (cvc5.kind attribute)": [[69, "cvc5.Kind.STRING_LENGTH"]], "string_leq (cvc5.kind attribute)": [[69, "cvc5.Kind.STRING_LEQ"]], "string_lt (cvc5.kind attribute)": [[69, "cvc5.Kind.STRING_LT"]], "string_prefix (cvc5.kind attribute)": [[69, "cvc5.Kind.STRING_PREFIX"]], "string_replace (cvc5.kind attribute)": [[69, "cvc5.Kind.STRING_REPLACE"]], "string_replace_all (cvc5.kind attribute)": [[69, "cvc5.Kind.STRING_REPLACE_ALL"]], "string_replace_re (cvc5.kind attribute)": [[69, "cvc5.Kind.STRING_REPLACE_RE"]], "string_replace_re_all (cvc5.kind attribute)": [[69, "cvc5.Kind.STRING_REPLACE_RE_ALL"]], "string_rev (cvc5.kind attribute)": [[69, "cvc5.Kind.STRING_REV"]], "string_substr (cvc5.kind attribute)": [[69, "cvc5.Kind.STRING_SUBSTR"]], "string_suffix (cvc5.kind attribute)": [[69, "cvc5.Kind.STRING_SUFFIX"]], "string_to_code (cvc5.kind attribute)": [[69, "cvc5.Kind.STRING_TO_CODE"]], "string_to_int (cvc5.kind attribute)": [[69, "cvc5.Kind.STRING_TO_INT"]], "string_to_lower (cvc5.kind attribute)": [[69, "cvc5.Kind.STRING_TO_LOWER"]], "string_to_regexp (cvc5.kind attribute)": [[69, "cvc5.Kind.STRING_TO_REGEXP"]], "string_to_upper (cvc5.kind attribute)": [[69, "cvc5.Kind.STRING_TO_UPPER"]], "string_update (cvc5.kind attribute)": [[69, "cvc5.Kind.STRING_UPDATE"]], "sub (cvc5.kind attribute)": [[69, "cvc5.Kind.SUB"]], "table_aggregate (cvc5.kind attribute)": [[69, "cvc5.Kind.TABLE_AGGREGATE"]], "table_group (cvc5.kind attribute)": [[69, "cvc5.Kind.TABLE_GROUP"]], "table_join (cvc5.kind attribute)": [[69, "cvc5.Kind.TABLE_JOIN"]], "table_product (cvc5.kind attribute)": [[69, "cvc5.Kind.TABLE_PRODUCT"]], "table_project (cvc5.kind attribute)": [[69, "cvc5.Kind.TABLE_PROJECT"]], "tangent (cvc5.kind attribute)": [[69, "cvc5.Kind.TANGENT"]], "to_integer (cvc5.kind attribute)": [[69, "cvc5.Kind.TO_INTEGER"]], "to_real (cvc5.kind attribute)": [[69, "cvc5.Kind.TO_REAL"]], "tuple_project (cvc5.kind attribute)": [[69, "cvc5.Kind.TUPLE_PROJECT"]], "undefined_kind (cvc5.kind attribute)": [[69, "cvc5.Kind.UNDEFINED_KIND"]], "uninterpreted_sort_value (cvc5.kind attribute)": [[69, "cvc5.Kind.UNINTERPRETED_SORT_VALUE"]], "variable (cvc5.kind attribute)": [[69, "cvc5.Kind.VARIABLE"]], "variable_list (cvc5.kind attribute)": [[69, "cvc5.Kind.VARIABLE_LIST"]], "witness (cvc5.kind attribute)": [[69, "cvc5.Kind.WITNESS"]], "xor (cvc5.kind attribute)": [[69, "cvc5.Kind.XOR"]], "alethe (cvc5.proofformat attribute)": [[70, "cvc5.ProofFormat.ALETHE"]], "blockmodelsmode (class in cvc5)": [[70, "cvc5.BlockModelsMode"]], "constant_prop (cvc5.learnedlittype attribute)": [[70, "cvc5.LearnedLitType.CONSTANT_PROP"]], "cpc (cvc5.proofformat attribute)": [[70, "cvc5.ProofFormat.CPC"]], "default (cvc5.proofformat attribute)": [[70, "cvc5.ProofFormat.DEFAULT"]], "dot (cvc5.proofformat attribute)": [[70, "cvc5.ProofFormat.DOT"]], "enum (cvc5.findsynthtarget attribute)": [[70, "cvc5.FindSynthTarget.ENUM"]], "full (cvc5.proofcomponent attribute)": [[70, "cvc5.ProofComponent.FULL"]], "findsynthtarget (class in cvc5)": [[70, "cvc5.FindSynthTarget"]], "input (cvc5.learnedlittype attribute)": [[70, "cvc5.LearnedLitType.INPUT"]], "internal (cvc5.learnedlittype attribute)": [[70, "cvc5.LearnedLitType.INTERNAL"]], "lfsc (cvc5.proofformat attribute)": [[70, "cvc5.ProofFormat.LFSC"]], "literals (cvc5.blockmodelsmode attribute)": [[70, "cvc5.BlockModelsMode.LITERALS"]], "learnedlittype (class in cvc5)": [[70, "cvc5.LearnedLitType"]], "none (cvc5.proofformat attribute)": [[70, "cvc5.ProofFormat.NONE"]], "preprocess (cvc5.learnedlittype attribute)": [[70, "cvc5.LearnedLitType.PREPROCESS"]], "preprocess (cvc5.proofcomponent attribute)": [[70, "cvc5.ProofComponent.PREPROCESS"]], "preprocess_solved (cvc5.learnedlittype attribute)": [[70, "cvc5.LearnedLitType.PREPROCESS_SOLVED"]], "proofcomponent (class in cvc5)": [[70, "cvc5.ProofComponent"]], "proofformat (class in cvc5)": [[70, "cvc5.ProofFormat"]], "query (cvc5.findsynthtarget attribute)": [[70, "cvc5.FindSynthTarget.QUERY"]], "raw_preprocess (cvc5.proofcomponent attribute)": [[70, "cvc5.ProofComponent.RAW_PREPROCESS"]], "rewrite (cvc5.findsynthtarget attribute)": [[70, "cvc5.FindSynthTarget.REWRITE"]], "rewrite_input (cvc5.findsynthtarget attribute)": [[70, "cvc5.FindSynthTarget.REWRITE_INPUT"]], "rewrite_unsound (cvc5.findsynthtarget attribute)": [[70, "cvc5.FindSynthTarget.REWRITE_UNSOUND"]], "sat (cvc5.proofcomponent attribute)": [[70, "cvc5.ProofComponent.SAT"]], "solvable (cvc5.learnedlittype attribute)": [[70, "cvc5.LearnedLitType.SOLVABLE"]], "theory_lemmas (cvc5.proofcomponent attribute)": [[70, "cvc5.ProofComponent.THEORY_LEMMAS"]], "unknown (cvc5.learnedlittype attribute)": [[70, "cvc5.LearnedLitType.UNKNOWN"]], "values (cvc5.blockmodelsmode attribute)": [[70, "cvc5.BlockModelsMode.VALUES"]], "op (class in cvc5)": [[71, "cvc5.Op"]], "__getitem__() (cvc5.op method)": [[71, "cvc5.Op.__getitem__"]], "getkind() (cvc5.op method)": [[71, "cvc5.Op.getKind"]], "getnumindices() (cvc5.op method)": [[71, "cvc5.Op.getNumIndices"]], "isindexed() (cvc5.op method)": [[71, "cvc5.Op.isIndexed"]], "isnull() (cvc5.op method)": [[71, "cvc5.Op.isNull"]], "proof (class in cvc5)": [[73, "cvc5.Proof"]], "getarguments() (cvc5.proof method)": [[73, "cvc5.Proof.getArguments"]], "getchildren() (cvc5.proof method)": [[73, "cvc5.Proof.getChildren"]], "getresult() (cvc5.proof method)": [[73, "cvc5.Proof.getResult"]], "getrewriterule() (cvc5.proof method)": [[73, "cvc5.Proof.getRewriteRule"]], "getrule() (cvc5.proof method)": [[73, "cvc5.Proof.getRule"]], "aci_norm (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ACI_NORM"]], "alethe_rule (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ALETHE_RULE"]], "alpha_equiv (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ALPHA_EQUIV"]], "and_elim (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.AND_ELIM"]], "and_intro (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.AND_INTRO"]], "arith_abs_elim_int (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_ABS_ELIM_INT"]], "arith_abs_elim_real (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_ABS_ELIM_REAL"]], "arith_abs_eq (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_ABS_EQ"]], "arith_abs_int_gt (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_ABS_INT_GT"]], "arith_abs_real_gt (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_ABS_REAL_GT"]], "arith_cosecent_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_COSECENT_ELIM"]], "arith_cosine_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_COSINE_ELIM"]], "arith_cotangent_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_COTANGENT_ELIM"]], "arith_div_elim_to_real1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_DIV_ELIM_TO_REAL1"]], "arith_div_elim_to_real2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_DIV_ELIM_TO_REAL2"]], "arith_div_total_int (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_DIV_TOTAL_INT"]], "arith_div_total_real (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_DIV_TOTAL_REAL"]], "arith_div_total_zero_int (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_DIV_TOTAL_ZERO_INT"]], "arith_div_total_zero_real (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_DIV_TOTAL_ZERO_REAL"]], "arith_elim_gt (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_ELIM_GT"]], "arith_elim_int_gt (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_ELIM_INT_GT"]], "arith_elim_int_lt (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_ELIM_INT_LT"]], "arith_elim_leq (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_ELIM_LEQ"]], "arith_elim_lt (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_ELIM_LT"]], "arith_eq_elim_int (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_EQ_ELIM_INT"]], "arith_eq_elim_real (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_EQ_ELIM_REAL"]], "arith_geq_norm1_int (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_GEQ_NORM1_INT"]], "arith_geq_norm1_real (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_GEQ_NORM1_REAL"]], "arith_geq_norm2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_GEQ_NORM2"]], "arith_geq_tighten (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_GEQ_TIGHTEN"]], "arith_int_div_total (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_INT_DIV_TOTAL"]], "arith_int_div_total_one (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_INT_DIV_TOTAL_ONE"]], "arith_int_div_total_zero (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_INT_DIV_TOTAL_ZERO"]], "arith_int_mod_total (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_INT_MOD_TOTAL"]], "arith_int_mod_total_one (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_INT_MOD_TOTAL_ONE"]], "arith_int_mod_total_zero (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_INT_MOD_TOTAL_ZERO"]], "arith_leq_norm (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_LEQ_NORM"]], "arith_mult_abs_comparison (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_MULT_ABS_COMPARISON"]], "arith_mult_dist (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_MULT_DIST"]], "arith_mult_flatten (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_MULT_FLATTEN"]], "arith_mult_neg (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_MULT_NEG"]], "arith_mult_pos (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_MULT_POS"]], "arith_mult_sign (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_MULT_SIGN"]], "arith_mult_tangent (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_MULT_TANGENT"]], "arith_mul_one (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_MUL_ONE"]], "arith_mul_zero (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_MUL_ZERO"]], "arith_pi_not_int (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_PI_NOT_INT"]], "arith_plus_flatten (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_PLUS_FLATTEN"]], "arith_poly_norm (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_POLY_NORM"]], "arith_poly_norm_rel (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_POLY_NORM_REL"]], "arith_pow_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_POW_ELIM"]], "arith_reduction (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_REDUCTION"]], "arith_refl_geq (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_REFL_GEQ"]], "arith_refl_gt (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_REFL_GT"]], "arith_refl_leq (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_REFL_LEQ"]], "arith_refl_lt (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_REFL_LT"]], "arith_secent_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_SECENT_ELIM"]], "arith_sine_pi2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_SINE_PI2"]], "arith_sine_zero (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_SINE_ZERO"]], "arith_string_pred_entail (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_STRING_PRED_ENTAIL"]], "arith_string_pred_safe_approx (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_STRING_PRED_SAFE_APPROX"]], "arith_sum_ub (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_SUM_UB"]], "arith_tangent_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_TANGENT_ELIM"]], "arith_to_int_elim_to_real (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_TO_INT_ELIM_TO_REAL"]], "arith_to_real_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_TO_REAL_ELIM"]], "arith_trans_exp_approx_above_neg (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_TRANS_EXP_APPROX_ABOVE_NEG"]], "arith_trans_exp_approx_above_pos (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_TRANS_EXP_APPROX_ABOVE_POS"]], "arith_trans_exp_approx_below (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_TRANS_EXP_APPROX_BELOW"]], "arith_trans_exp_neg (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_TRANS_EXP_NEG"]], "arith_trans_exp_positivity (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_TRANS_EXP_POSITIVITY"]], "arith_trans_exp_super_lin (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_TRANS_EXP_SUPER_LIN"]], "arith_trans_exp_zero (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_TRANS_EXP_ZERO"]], "arith_trans_pi (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_TRANS_PI"]], "arith_trans_sine_approx_above_neg (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_TRANS_SINE_APPROX_ABOVE_NEG"]], "arith_trans_sine_approx_above_pos (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_TRANS_SINE_APPROX_ABOVE_POS"]], "arith_trans_sine_approx_below_neg (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_TRANS_SINE_APPROX_BELOW_NEG"]], "arith_trans_sine_approx_below_pos (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_TRANS_SINE_APPROX_BELOW_POS"]], "arith_trans_sine_bounds (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_TRANS_SINE_BOUNDS"]], "arith_trans_sine_shift (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_TRANS_SINE_SHIFT"]], "arith_trans_sine_symmetry (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_TRANS_SINE_SYMMETRY"]], "arith_trans_sine_tangent_pi (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_TRANS_SINE_TANGENT_PI"]], "arith_trans_sine_tangent_zero (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_TRANS_SINE_TANGENT_ZERO"]], "arith_trichotomy (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_TRICHOTOMY"]], "arrays_eq_range_expand (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARRAYS_EQ_RANGE_EXPAND"]], "arrays_ext (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARRAYS_EXT"]], "arrays_read_over_write (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARRAYS_READ_OVER_WRITE"]], "arrays_read_over_write_1 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARRAYS_READ_OVER_WRITE_1"]], "arrays_read_over_write_contra (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARRAYS_READ_OVER_WRITE_CONTRA"]], "arrays_select_const (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARRAYS_SELECT_CONST"]], "array_read_over_write (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARRAY_READ_OVER_WRITE"]], "array_read_over_write2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARRAY_READ_OVER_WRITE2"]], "array_read_over_write_split (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARRAY_READ_OVER_WRITE_SPLIT"]], "array_store_overwrite (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARRAY_STORE_OVERWRITE"]], "array_store_self (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARRAY_STORE_SELF"]], "assume (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ASSUME"]], "beta_reduce (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BETA_REDUCE"]], "bool_and_conf (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_AND_CONF"]], "bool_and_conf2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_AND_CONF2"]], "bool_and_de_morgan (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_AND_DE_MORGAN"]], "bool_and_false (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_AND_FALSE"]], "bool_and_flatten (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_AND_FLATTEN"]], "bool_double_not_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_DOUBLE_NOT_ELIM"]], "bool_eq_false (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_EQ_FALSE"]], "bool_eq_nrefl (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_EQ_NREFL"]], "bool_eq_true (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_EQ_TRUE"]], "bool_implies_de_morgan (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_IMPLIES_DE_MORGAN"]], "bool_impl_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_IMPL_ELIM"]], "bool_impl_false1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_IMPL_FALSE1"]], "bool_impl_false2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_IMPL_FALSE2"]], "bool_impl_true1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_IMPL_TRUE1"]], "bool_impl_true2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_IMPL_TRUE2"]], "bool_not_eq_elim1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_NOT_EQ_ELIM1"]], "bool_not_eq_elim2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_NOT_EQ_ELIM2"]], "bool_not_false (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_NOT_FALSE"]], "bool_not_ite_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_NOT_ITE_ELIM"]], "bool_not_true (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_NOT_TRUE"]], "bool_not_xor_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_NOT_XOR_ELIM"]], "bool_or_and_distrib (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_OR_AND_DISTRIB"]], "bool_or_de_morgan (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_OR_DE_MORGAN"]], "bool_or_flatten (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_OR_FLATTEN"]], "bool_or_taut (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_OR_TAUT"]], "bool_or_taut2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_OR_TAUT2"]], "bool_or_true (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_OR_TRUE"]], "bool_xor_comm (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_XOR_COMM"]], "bool_xor_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_XOR_ELIM"]], "bool_xor_false (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_XOR_FALSE"]], "bool_xor_nrefl (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_XOR_NREFL"]], "bool_xor_refl (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_XOR_REFL"]], "bool_xor_true (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_XOR_TRUE"]], "bv_add_combine_like_terms (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ADD_COMBINE_LIKE_TERMS"]], "bv_add_two (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ADD_TWO"]], "bv_add_zero (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ADD_ZERO"]], "bv_and_concat_pullup (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_AND_CONCAT_PULLUP"]], "bv_and_flatten (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_AND_FLATTEN"]], "bv_and_one (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_AND_ONE"]], "bv_and_simplify_1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_AND_SIMPLIFY_1"]], "bv_and_simplify_2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_AND_SIMPLIFY_2"]], "bv_and_zero (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_AND_ZERO"]], "bv_ashr_by_const_0 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ASHR_BY_CONST_0"]], "bv_ashr_by_const_1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ASHR_BY_CONST_1"]], "bv_ashr_by_const_2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ASHR_BY_CONST_2"]], "bv_ashr_zero (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ASHR_ZERO"]], "bv_bitblast_step (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.BV_BITBLAST_STEP"]], "bv_bitwise_idemp_1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_BITWISE_IDEMP_1"]], "bv_bitwise_idemp_2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_BITWISE_IDEMP_2"]], "bv_bitwise_not_and (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_BITWISE_NOT_AND"]], "bv_bitwise_not_or (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_BITWISE_NOT_OR"]], "bv_bitwise_slicing (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_BITWISE_SLICING"]], "bv_commutative_add (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_COMMUTATIVE_ADD"]], "bv_commutative_and (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_COMMUTATIVE_AND"]], "bv_commutative_mul (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_COMMUTATIVE_MUL"]], "bv_commutative_or (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_COMMUTATIVE_OR"]], "bv_commutative_xor (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_COMMUTATIVE_XOR"]], "bv_comp_eliminate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_COMP_ELIMINATE"]], "bv_concat_extract_merge (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_CONCAT_EXTRACT_MERGE"]], "bv_concat_flatten (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_CONCAT_FLATTEN"]], "bv_concat_merge_const (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_CONCAT_MERGE_CONST"]], "bv_concat_to_mult (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_CONCAT_TO_MULT"]], "bv_eager_atom (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.BV_EAGER_ATOM"]], "bv_eq_extract_elim1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_EQ_EXTRACT_ELIM1"]], "bv_eq_extract_elim2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_EQ_EXTRACT_ELIM2"]], "bv_eq_extract_elim3 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_EQ_EXTRACT_ELIM3"]], "bv_extract_bitwise_and (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_EXTRACT_BITWISE_AND"]], "bv_extract_bitwise_or (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_EXTRACT_BITWISE_OR"]], "bv_extract_bitwise_xor (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_EXTRACT_BITWISE_XOR"]], "bv_extract_concat_1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_EXTRACT_CONCAT_1"]], "bv_extract_concat_2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_EXTRACT_CONCAT_2"]], "bv_extract_concat_3 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_EXTRACT_CONCAT_3"]], "bv_extract_concat_4 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_EXTRACT_CONCAT_4"]], "bv_extract_extract (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_EXTRACT_EXTRACT"]], "bv_extract_mult_leading_bit (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_EXTRACT_MULT_LEADING_BIT"]], "bv_extract_not (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_EXTRACT_NOT"]], "bv_extract_sign_extend_1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_EXTRACT_SIGN_EXTEND_1"]], "bv_extract_sign_extend_2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_EXTRACT_SIGN_EXTEND_2"]], "bv_extract_sign_extend_3 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_EXTRACT_SIGN_EXTEND_3"]], "bv_extract_whole (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_EXTRACT_WHOLE"]], "bv_ite_const_children_1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ITE_CONST_CHILDREN_1"]], "bv_ite_const_children_2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ITE_CONST_CHILDREN_2"]], "bv_ite_equal_children (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ITE_EQUAL_CHILDREN"]], "bv_ite_equal_cond_1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ITE_EQUAL_COND_1"]], "bv_ite_equal_cond_2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ITE_EQUAL_COND_2"]], "bv_ite_equal_cond_3 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ITE_EQUAL_COND_3"]], "bv_ite_merge_else_else (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ITE_MERGE_ELSE_ELSE"]], "bv_ite_merge_else_if (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ITE_MERGE_ELSE_IF"]], "bv_ite_merge_then_else (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ITE_MERGE_THEN_ELSE"]], "bv_ite_merge_then_if (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ITE_MERGE_THEN_IF"]], "bv_lshr_by_const_0 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_LSHR_BY_CONST_0"]], "bv_lshr_by_const_1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_LSHR_BY_CONST_1"]], "bv_lshr_by_const_2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_LSHR_BY_CONST_2"]], "bv_lshr_zero (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_LSHR_ZERO"]], "bv_lt_self (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_LT_SELF"]], "bv_merge_sign_extend_1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_MERGE_SIGN_EXTEND_1"]], "bv_merge_sign_extend_2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_MERGE_SIGN_EXTEND_2"]], "bv_merge_sign_extend_3 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_MERGE_SIGN_EXTEND_3"]], "bv_mult_distrib_1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_MULT_DISTRIB_1"]], "bv_mult_distrib_2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_MULT_DISTRIB_2"]], "bv_mult_distrib_const_add (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_MULT_DISTRIB_CONST_ADD"]], "bv_mult_distrib_const_neg (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_MULT_DISTRIB_CONST_NEG"]], "bv_mult_distrib_const_sub (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_MULT_DISTRIB_CONST_SUB"]], "bv_mult_pow2_1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_MULT_POW2_1"]], "bv_mult_pow2_2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_MULT_POW2_2"]], "bv_mult_pow2_2b (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_MULT_POW2_2B"]], "bv_mult_simplify (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_MULT_SIMPLIFY"]], "bv_mult_slt_mult_1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_MULT_SLT_MULT_1"]], "bv_mult_slt_mult_2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_MULT_SLT_MULT_2"]], "bv_mul_flatten (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_MUL_FLATTEN"]], "bv_mul_one (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_MUL_ONE"]], "bv_mul_zero (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_MUL_ZERO"]], "bv_nand_eliminate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_NAND_ELIMINATE"]], "bv_neg_add (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_NEG_ADD"]], "bv_neg_idemp (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_NEG_IDEMP"]], "bv_neg_mult (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_NEG_MULT"]], "bv_neg_sub (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_NEG_SUB"]], "bv_nor_eliminate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_NOR_ELIMINATE"]], "bv_not_idemp (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_NOT_IDEMP"]], "bv_not_neq (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_NOT_NEQ"]], "bv_not_sle (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_NOT_SLE"]], "bv_not_ule (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_NOT_ULE"]], "bv_not_ult (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_NOT_ULT"]], "bv_not_xor (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_NOT_XOR"]], "bv_or_concat_pullup (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_OR_CONCAT_PULLUP"]], "bv_or_flatten (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_OR_FLATTEN"]], "bv_or_one (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_OR_ONE"]], "bv_or_simplify_1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_OR_SIMPLIFY_1"]], "bv_or_simplify_2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_OR_SIMPLIFY_2"]], "bv_or_zero (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_OR_ZERO"]], "bv_redand_eliminate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_REDAND_ELIMINATE"]], "bv_redor_eliminate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_REDOR_ELIMINATE"]], "bv_repeat_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_REPEAT_ELIM"]], "bv_rotate_left_eliminate_1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ROTATE_LEFT_ELIMINATE_1"]], "bv_rotate_left_eliminate_2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ROTATE_LEFT_ELIMINATE_2"]], "bv_rotate_right_eliminate_1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ROTATE_RIGHT_ELIMINATE_1"]], "bv_rotate_right_eliminate_2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ROTATE_RIGHT_ELIMINATE_2"]], "bv_saddo_eliminate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SADDO_ELIMINATE"]], "bv_sdivo_eliminate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SDIVO_ELIMINATE"]], "bv_sdiv_eliminate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SDIV_ELIMINATE"]], "bv_sdiv_eliminate_fewer_bitwise_ops (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SDIV_ELIMINATE_FEWER_BITWISE_OPS"]], "bv_sge_eliminate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SGE_ELIMINATE"]], "bv_sgt_eliminate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SGT_ELIMINATE"]], "bv_shl_by_const_0 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SHL_BY_CONST_0"]], "bv_shl_by_const_1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SHL_BY_CONST_1"]], "bv_shl_by_const_2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SHL_BY_CONST_2"]], "bv_shl_zero (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SHL_ZERO"]], "bv_sign_extend_eliminate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SIGN_EXTEND_ELIMINATE"]], "bv_sign_extend_eliminate_0 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SIGN_EXTEND_ELIMINATE_0"]], "bv_sign_extend_eq_const_1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SIGN_EXTEND_EQ_CONST_1"]], "bv_sign_extend_eq_const_2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SIGN_EXTEND_EQ_CONST_2"]], "bv_sign_extend_ult_const_1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SIGN_EXTEND_ULT_CONST_1"]], "bv_sign_extend_ult_const_2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SIGN_EXTEND_ULT_CONST_2"]], "bv_sign_extend_ult_const_3 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SIGN_EXTEND_ULT_CONST_3"]], "bv_sign_extend_ult_const_4 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SIGN_EXTEND_ULT_CONST_4"]], "bv_sle_eliminate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SLE_ELIMINATE"]], "bv_sle_self (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SLE_SELF"]], "bv_slt_eliminate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SLT_ELIMINATE"]], "bv_slt_zero (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SLT_ZERO"]], "bv_smod_eliminate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SMOD_ELIMINATE"]], "bv_smod_eliminate_fewer_bitwise_ops (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SMOD_ELIMINATE_FEWER_BITWISE_OPS"]], "bv_smulo_eliminate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SMULO_ELIMINATE"]], "bv_srem_eliminate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SREM_ELIMINATE"]], "bv_srem_eliminate_fewer_bitwise_ops (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SREM_ELIMINATE_FEWER_BITWISE_OPS"]], "bv_ssubo_eliminate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SSUBO_ELIMINATE"]], "bv_sub_eliminate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SUB_ELIMINATE"]], "bv_to_nat_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_TO_NAT_ELIM"]], "bv_uaddo_eliminate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_UADDO_ELIMINATE"]], "bv_udiv_one (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_UDIV_ONE"]], "bv_udiv_pow2_not_one (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_UDIV_POW2_NOT_ONE"]], "bv_udiv_zero (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_UDIV_ZERO"]], "bv_uge_eliminate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_UGE_ELIMINATE"]], "bv_ugt_eliminate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_UGT_ELIMINATE"]], "bv_ugt_urem (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_UGT_UREM"]], "bv_ule_eliminate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ULE_ELIMINATE"]], "bv_ule_max (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ULE_MAX"]], "bv_ule_self (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ULE_SELF"]], "bv_ule_zero (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ULE_ZERO"]], "bv_ult_add_one (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ULT_ADD_ONE"]], "bv_ult_one (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ULT_ONE"]], "bv_ult_ones (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ULT_ONES"]], "bv_ult_self (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ULT_SELF"]], "bv_ult_zero_1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ULT_ZERO_1"]], "bv_ult_zero_2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ULT_ZERO_2"]], "bv_umulo_eliminate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_UMULO_ELIMINATE"]], "bv_urem_one (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_UREM_ONE"]], "bv_urem_pow2_not_one (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_UREM_POW2_NOT_ONE"]], "bv_urem_self (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_UREM_SELF"]], "bv_usubo_eliminate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_USUBO_ELIMINATE"]], "bv_xnor_eliminate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_XNOR_ELIMINATE"]], "bv_xor_concat_pullup (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_XOR_CONCAT_PULLUP"]], "bv_xor_duplicate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_XOR_DUPLICATE"]], "bv_xor_flatten (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_XOR_FLATTEN"]], "bv_xor_not (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_XOR_NOT"]], "bv_xor_ones (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_XOR_ONES"]], "bv_xor_simplify_1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_XOR_SIMPLIFY_1"]], "bv_xor_simplify_2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_XOR_SIMPLIFY_2"]], "bv_xor_simplify_3 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_XOR_SIMPLIFY_3"]], "bv_xor_zero (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_XOR_ZERO"]], "bv_zero_extend_eliminate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ZERO_EXTEND_ELIMINATE"]], "bv_zero_extend_eliminate_0 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ZERO_EXTEND_ELIMINATE_0"]], "bv_zero_extend_eq_const_1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ZERO_EXTEND_EQ_CONST_1"]], "bv_zero_extend_eq_const_2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ZERO_EXTEND_EQ_CONST_2"]], "bv_zero_ule (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ZERO_ULE"]], "chain_resolution (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CHAIN_RESOLUTION"]], "cnf_and_neg (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CNF_AND_NEG"]], "cnf_and_pos (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CNF_AND_POS"]], "cnf_equiv_neg1 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CNF_EQUIV_NEG1"]], "cnf_equiv_neg2 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CNF_EQUIV_NEG2"]], "cnf_equiv_pos1 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CNF_EQUIV_POS1"]], "cnf_equiv_pos2 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CNF_EQUIV_POS2"]], "cnf_implies_neg1 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CNF_IMPLIES_NEG1"]], "cnf_implies_neg2 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CNF_IMPLIES_NEG2"]], "cnf_implies_pos (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CNF_IMPLIES_POS"]], "cnf_ite_neg1 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CNF_ITE_NEG1"]], "cnf_ite_neg2 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CNF_ITE_NEG2"]], "cnf_ite_neg3 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CNF_ITE_NEG3"]], "cnf_ite_pos1 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CNF_ITE_POS1"]], "cnf_ite_pos2 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CNF_ITE_POS2"]], "cnf_ite_pos3 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CNF_ITE_POS3"]], "cnf_or_neg (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CNF_OR_NEG"]], "cnf_or_pos (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CNF_OR_POS"]], "cnf_xor_neg1 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CNF_XOR_NEG1"]], "cnf_xor_neg2 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CNF_XOR_NEG2"]], "cnf_xor_pos1 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CNF_XOR_POS1"]], "cnf_xor_pos2 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CNF_XOR_POS2"]], "concat_conflict (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CONCAT_CONFLICT"]], "concat_conflict_deq (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CONCAT_CONFLICT_DEQ"]], "concat_cprop (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CONCAT_CPROP"]], "concat_csplit (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CONCAT_CSPLIT"]], "concat_eq (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CONCAT_EQ"]], "concat_lprop (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CONCAT_LPROP"]], "concat_split (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CONCAT_SPLIT"]], "concat_unify (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CONCAT_UNIFY"]], "cong (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CONG"]], "contra (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CONTRA"]], "distinct_binary_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.DISTINCT_BINARY_ELIM"]], "distinct_card_conflict (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.DISTINCT_CARD_CONFLICT"]], "distinct_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.DISTINCT_ELIM"]], "drat_refutation (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.DRAT_REFUTATION"]], "dsl_rewrite (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.DSL_REWRITE"]], "dt_clash (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.DT_CLASH"]], "dt_collapse_selector (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.DT_COLLAPSE_SELECTOR"]], "dt_collapse_tester (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.DT_COLLAPSE_TESTER"]], "dt_collapse_tester_singleton (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.DT_COLLAPSE_TESTER_SINGLETON"]], "dt_collapse_updater (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.DT_COLLAPSE_UPDATER"]], "dt_cons_eq (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.DT_CONS_EQ"]], "dt_cycle (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.DT_CYCLE"]], "dt_inst (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.DT_INST"]], "dt_match_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.DT_MATCH_ELIM"]], "dt_split (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.DT_SPLIT"]], "dt_updater_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.DT_UPDATER_ELIM"]], "encode_eq_intro (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ENCODE_EQ_INTRO"]], "equiv_elim1 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.EQUIV_ELIM1"]], "equiv_elim2 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.EQUIV_ELIM2"]], "eq_cond_deq (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.EQ_COND_DEQ"]], "eq_ite_lift (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.EQ_ITE_LIFT"]], "eq_refl (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.EQ_REFL"]], "eq_resolve (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.EQ_RESOLVE"]], "eq_symm (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.EQ_SYMM"]], "evaluate (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.EVALUATE"]], "exists_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.EXISTS_ELIM"]], "factoring (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.FACTORING"]], "false_elim (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.FALSE_ELIM"]], "false_intro (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.FALSE_INTRO"]], "ho_app_encode (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.HO_APP_ENCODE"]], "ho_cong (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.HO_CONG"]], "implies_elim (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.IMPLIES_ELIM"]], "instantiate (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.INSTANTIATE"]], "int_tight_lb (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.INT_TIGHT_LB"]], "int_tight_ub (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.INT_TIGHT_UB"]], "int_to_bv_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.INT_TO_BV_ELIM"]], "ite_elim1 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ITE_ELIM1"]], "ite_elim2 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ITE_ELIM2"]], "ite_else_false (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ITE_ELSE_FALSE"]], "ite_else_lookahead (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ITE_ELSE_LOOKAHEAD"]], "ite_else_lookahead_not_self (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ITE_ELSE_LOOKAHEAD_NOT_SELF"]], "ite_else_lookahead_self (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ITE_ELSE_LOOKAHEAD_SELF"]], "ite_else_neg_lookahead (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ITE_ELSE_NEG_LOOKAHEAD"]], "ite_else_true (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ITE_ELSE_TRUE"]], "ite_eq (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ITE_EQ"]], "ite_eq_branch (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ITE_EQ_BRANCH"]], "ite_expand (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ITE_EXPAND"]], "ite_false_cond (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ITE_FALSE_COND"]], "ite_neg_branch (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ITE_NEG_BRANCH"]], "ite_not_cond (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ITE_NOT_COND"]], "ite_then_false (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ITE_THEN_FALSE"]], "ite_then_lookahead (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ITE_THEN_LOOKAHEAD"]], "ite_then_lookahead_not_self (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ITE_THEN_LOOKAHEAD_NOT_SELF"]], "ite_then_lookahead_self (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ITE_THEN_LOOKAHEAD_SELF"]], "ite_then_neg_lookahead (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ITE_THEN_NEG_LOOKAHEAD"]], "ite_then_true (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ITE_THEN_TRUE"]], "ite_true_cond (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ITE_TRUE_COND"]], "lambda_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.LAMBDA_ELIM"]], "lfsc_rule (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.LFSC_RULE"]], "macro_arith_scale_sum_ub (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.MACRO_ARITH_SCALE_SUM_UB"]], "macro_arith_string_pred_entail (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.MACRO_ARITH_STRING_PRED_ENTAIL"]], "macro_arrays_distinct_arrays (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.MACRO_ARRAYS_DISTINCT_ARRAYS"]], "macro_arrays_normalize_constant (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.MACRO_ARRAYS_NORMALIZE_CONSTANT"]], "macro_bool_nnf_norm (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.MACRO_BOOL_NNF_NORM"]], "macro_bv_bitblast (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.MACRO_BV_BITBLAST"]], "macro_quant_merge_prenex (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.MACRO_QUANT_MERGE_PRENEX"]], "macro_quant_miniscope (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.MACRO_QUANT_MINISCOPE"]], "macro_quant_partition_connected_fv (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.MACRO_QUANT_PARTITION_CONNECTED_FV"]], "macro_quant_prenex (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.MACRO_QUANT_PRENEX"]], "macro_quant_rewrite_body (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.MACRO_QUANT_REWRITE_BODY"]], "macro_quant_var_elim_eq (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.MACRO_QUANT_VAR_ELIM_EQ"]], "macro_quant_var_elim_ineq (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.MACRO_QUANT_VAR_ELIM_INEQ"]], "macro_resolution (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.MACRO_RESOLUTION"]], "macro_resolution_trust (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.MACRO_RESOLUTION_TRUST"]], "macro_rewrite (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.MACRO_REWRITE"]], "macro_sr_eq_intro (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.MACRO_SR_EQ_INTRO"]], "macro_sr_pred_elim (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.MACRO_SR_PRED_ELIM"]], "macro_sr_pred_intro (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.MACRO_SR_PRED_INTRO"]], "macro_sr_pred_transform (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.MACRO_SR_PRED_TRANSFORM"]], "macro_string_inference (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.MACRO_STRING_INFERENCE"]], "macro_substr_strip_sym_length (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.MACRO_SUBSTR_STRIP_SYM_LENGTH"]], "modus_ponens (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.MODUS_PONENS"]], "nary_cong (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.NARY_CONG"]], "none (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.NONE"]], "not_and (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.NOT_AND"]], "not_equiv_elim1 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.NOT_EQUIV_ELIM1"]], "not_equiv_elim2 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.NOT_EQUIV_ELIM2"]], "not_implies_elim1 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.NOT_IMPLIES_ELIM1"]], "not_implies_elim2 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.NOT_IMPLIES_ELIM2"]], "not_ite_elim1 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.NOT_ITE_ELIM1"]], "not_ite_elim2 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.NOT_ITE_ELIM2"]], "not_not_elim (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.NOT_NOT_ELIM"]], "not_or_elim (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.NOT_OR_ELIM"]], "not_xor_elim1 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.NOT_XOR_ELIM1"]], "not_xor_elim2 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.NOT_XOR_ELIM2"]], "proofrewriterule (class in cvc5)": [[74, "cvc5.ProofRewriteRule"]], "proofrule (class in cvc5)": [[74, "cvc5.ProofRule"]], "quant_dt_split (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.QUANT_DT_SPLIT"]], "quant_merge_prenex (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.QUANT_MERGE_PRENEX"]], "quant_miniscope_and (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.QUANT_MINISCOPE_AND"]], "quant_miniscope_ite (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.QUANT_MINISCOPE_ITE"]], "quant_miniscope_or (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.QUANT_MINISCOPE_OR"]], "quant_unused_vars (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.QUANT_UNUSED_VARS"]], "quant_var_elim_eq (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.QUANT_VAR_ELIM_EQ"]], "quant_var_reordering (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.QUANT_VAR_REORDERING"]], "refl (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.REFL"]], "reordering (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.REORDERING"]], "resolution (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.RESOLUTION"]], "re_all_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_ALL_ELIM"]], "re_concat_emp (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_CONCAT_EMP"]], "re_concat_flatten (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_CONCAT_FLATTEN"]], "re_concat_merge (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_CONCAT_MERGE"]], "re_concat_none (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_CONCAT_NONE"]], "re_concat_star_repeat (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_CONCAT_STAR_REPEAT"]], "re_concat_star_swap (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_CONCAT_STAR_SWAP"]], "re_diff_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_DIFF_ELIM"]], "re_inter (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.RE_INTER"]], "re_inter_all (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_INTER_ALL"]], "re_inter_cstring (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_INTER_CSTRING"]], "re_inter_cstring_neg (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_INTER_CSTRING_NEG"]], "re_inter_dup (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_INTER_DUP"]], "re_inter_flatten (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_INTER_FLATTEN"]], "re_inter_none (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_INTER_NONE"]], "re_inter_union_inclusion (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_INTER_UNION_INCLUSION"]], "re_in_comp (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_IN_COMP"]], "re_in_cstring (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_IN_CSTRING"]], "re_in_empty (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_IN_EMPTY"]], "re_in_sigma (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_IN_SIGMA"]], "re_in_sigma_star (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_IN_SIGMA_STAR"]], "re_loop_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_LOOP_ELIM"]], "re_loop_neg (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_LOOP_NEG"]], "re_opt_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_OPT_ELIM"]], "re_star_none (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_STAR_NONE"]], "re_unfold_neg (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.RE_UNFOLD_NEG"]], "re_unfold_neg_concat_fixed (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.RE_UNFOLD_NEG_CONCAT_FIXED"]], "re_unfold_pos (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.RE_UNFOLD_POS"]], "re_union_all (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_UNION_ALL"]], "re_union_dup (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_UNION_DUP"]], "re_union_flatten (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_UNION_FLATTEN"]], "re_union_none (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_UNION_NONE"]], "sat_external_prove (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.SAT_EXTERNAL_PROVE"]], "sat_refutation (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.SAT_REFUTATION"]], "scope (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.SCOPE"]], "seq_len_empty (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SEQ_LEN_EMPTY"]], "seq_len_rev (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SEQ_LEN_REV"]], "seq_len_unit (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SEQ_LEN_UNIT"]], "seq_nth_unit (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SEQ_NTH_UNIT"]], "seq_rev_concat (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SEQ_REV_CONCAT"]], "seq_rev_rev (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SEQ_REV_REV"]], "seq_rev_unit (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SEQ_REV_UNIT"]], "sets_card_emp (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SETS_CARD_EMP"]], "sets_card_minus (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SETS_CARD_MINUS"]], "sets_card_singleton (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SETS_CARD_SINGLETON"]], "sets_card_union (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SETS_CARD_UNION"]], "sets_choose_singleton (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SETS_CHOOSE_SINGLETON"]], "sets_eq_singleton_emp (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SETS_EQ_SINGLETON_EMP"]], "sets_ext (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.SETS_EXT"]], "sets_filter_down (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.SETS_FILTER_DOWN"]], "sets_filter_up (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.SETS_FILTER_UP"]], "sets_insert_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SETS_INSERT_ELIM"]], "sets_inter_comm (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SETS_INTER_COMM"]], "sets_inter_emp1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SETS_INTER_EMP1"]], "sets_inter_emp2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SETS_INTER_EMP2"]], "sets_inter_member (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SETS_INTER_MEMBER"]], "sets_is_empty_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SETS_IS_EMPTY_ELIM"]], "sets_is_empty_eval (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SETS_IS_EMPTY_EVAL"]], "sets_member_emp (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SETS_MEMBER_EMP"]], "sets_member_singleton (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SETS_MEMBER_SINGLETON"]], "sets_minus_emp1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SETS_MINUS_EMP1"]], "sets_minus_emp2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SETS_MINUS_EMP2"]], "sets_minus_member (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SETS_MINUS_MEMBER"]], "sets_minus_self (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SETS_MINUS_SELF"]], "sets_singleton_inj (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.SETS_SINGLETON_INJ"]], "sets_subset_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SETS_SUBSET_ELIM"]], "sets_union_comm (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SETS_UNION_COMM"]], "sets_union_emp1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SETS_UNION_EMP1"]], "sets_union_emp2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SETS_UNION_EMP2"]], "sets_union_member (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SETS_UNION_MEMBER"]], "skolemize (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.SKOLEMIZE"]], "skolem_intro (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.SKOLEM_INTRO"]], "split (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.SPLIT"]], "string_code_inj (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.STRING_CODE_INJ"]], "string_decompose (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.STRING_DECOMPOSE"]], "string_eager_reduction (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.STRING_EAGER_REDUCTION"]], "string_ext (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.STRING_EXT"]], "string_length_non_empty (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.STRING_LENGTH_NON_EMPTY"]], "string_length_pos (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.STRING_LENGTH_POS"]], "string_reduction (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.STRING_REDUCTION"]], "string_seq_unit_inj (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.STRING_SEQ_UNIT_INJ"]], "str_at_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_AT_ELIM"]], "str_concat_clash (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_CONCAT_CLASH"]], "str_concat_clash2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_CONCAT_CLASH2"]], "str_concat_clash2_rev (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_CONCAT_CLASH2_REV"]], "str_concat_clash_char (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_CONCAT_CLASH_CHAR"]], "str_concat_clash_char_rev (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_CONCAT_CLASH_CHAR_REV"]], "str_concat_clash_rev (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_CONCAT_CLASH_REV"]], "str_concat_flatten (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_CONCAT_FLATTEN"]], "str_concat_flatten_eq (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_CONCAT_FLATTEN_EQ"]], "str_concat_flatten_eq_rev (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_CONCAT_FLATTEN_EQ_REV"]], "str_concat_unify (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_CONCAT_UNIFY"]], "str_concat_unify_base (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_CONCAT_UNIFY_BASE"]], "str_concat_unify_base_rev (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_CONCAT_UNIFY_BASE_REV"]], "str_concat_unify_rev (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_CONCAT_UNIFY_REV"]], "str_contains_concat_find (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_CONTAINS_CONCAT_FIND"]], "str_contains_emp (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_CONTAINS_EMP"]], "str_contains_is_emp (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_CONTAINS_IS_EMP"]], "str_contains_leq_len_eq (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_CONTAINS_LEQ_LEN_EQ"]], "str_contains_lt_len (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_CONTAINS_LT_LEN"]], "str_contains_refl (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_CONTAINS_REFL"]], "str_contains_split_char (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_CONTAINS_SPLIT_CHAR"]], "str_eq_ctn_false (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_EQ_CTN_FALSE"]], "str_eq_ctn_full_false1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_EQ_CTN_FULL_FALSE1"]], "str_eq_ctn_full_false2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_EQ_CTN_FULL_FALSE2"]], "str_indexof_contains_pre (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_INDEXOF_CONTAINS_PRE"]], "str_indexof_no_contains (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_INDEXOF_NO_CONTAINS"]], "str_indexof_re_none (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_INDEXOF_RE_NONE"]], "str_indexof_self (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_INDEXOF_SELF"]], "str_in_re_concat_star_char (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_CONCAT_STAR_CHAR"]], "str_in_re_consume (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_CONSUME"]], "str_in_re_contains (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_CONTAINS"]], "str_in_re_eval (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_EVAL"]], "str_in_re_inter_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_INTER_ELIM"]], "str_in_re_range_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_RANGE_ELIM"]], "str_in_re_req_unfold (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_REQ_UNFOLD"]], "str_in_re_req_unfold_rev (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_REQ_UNFOLD_REV"]], "str_in_re_sigma (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_SIGMA"]], "str_in_re_sigma_star (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_SIGMA_STAR"]], "str_in_re_skip_unfold (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_SKIP_UNFOLD"]], "str_in_re_skip_unfold_rev (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_SKIP_UNFOLD_REV"]], "str_in_re_strip_char (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_CHAR"]], "str_in_re_strip_char_rev (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_CHAR_REV"]], "str_in_re_strip_char_s_single (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_CHAR_S_SINGLE"]], "str_in_re_strip_char_s_single_rev (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_CHAR_S_SINGLE_REV"]], "str_in_re_strip_prefix (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_PREFIX"]], "str_in_re_strip_prefix_base (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_PREFIX_BASE"]], "str_in_re_strip_prefix_base_neg (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_PREFIX_BASE_NEG"]], "str_in_re_strip_prefix_base_neg_rev (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_PREFIX_BASE_NEG_REV"]], "str_in_re_strip_prefix_base_rev (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_PREFIX_BASE_REV"]], "str_in_re_strip_prefix_base_s_single (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE"]], "str_in_re_strip_prefix_base_s_single_neg (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG"]], "str_in_re_strip_prefix_base_s_single_neg_rev (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG_REV"]], "str_in_re_strip_prefix_base_s_single_rev (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_REV"]], "str_in_re_strip_prefix_neg (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_PREFIX_NEG"]], "str_in_re_strip_prefix_neg_rev (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_PREFIX_NEG_REV"]], "str_in_re_strip_prefix_rev (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_PREFIX_REV"]], "str_in_re_strip_prefix_srs_single (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_PREFIX_SRS_SINGLE"]], "str_in_re_strip_prefix_srs_single_neg (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG"]], "str_in_re_strip_prefix_srs_single_neg_rev (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG_REV"]], "str_in_re_strip_prefix_srs_single_rev (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_REV"]], "str_in_re_strip_prefix_sr_single (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_PREFIX_SR_SINGLE"]], "str_in_re_strip_prefix_sr_single_neg (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG"]], "str_in_re_strip_prefix_sr_single_neg_rev (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG_REV"]], "str_in_re_strip_prefix_sr_single_rev (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_PREFIX_SR_SINGLE_REV"]], "str_in_re_strip_prefix_s_single (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_PREFIX_S_SINGLE"]], "str_in_re_strip_prefix_s_single_neg (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG"]], "str_in_re_strip_prefix_s_single_neg_rev (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG_REV"]], "str_in_re_strip_prefix_s_single_rev (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_PREFIX_S_SINGLE_REV"]], "str_in_re_test_unfold (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_TEST_UNFOLD"]], "str_in_re_test_unfold_rev (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_TEST_UNFOLD_REV"]], "str_in_re_union_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_UNION_ELIM"]], "str_len_concat_rec (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_LEN_CONCAT_REC"]], "str_len_replace_inv (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_LEN_REPLACE_INV"]], "str_len_substr_in_range (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_LEN_SUBSTR_IN_RANGE"]], "str_len_substr_ub1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_LEN_SUBSTR_UB1"]], "str_len_substr_ub2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_LEN_SUBSTR_UB2"]], "str_len_update_inv (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_LEN_UPDATE_INV"]], "str_leq_concat_false (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_LEQ_CONCAT_FALSE"]], "str_leq_concat_true (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_LEQ_CONCAT_TRUE"]], "str_leq_empty (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_LEQ_EMPTY"]], "str_leq_empty_eq (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_LEQ_EMPTY_EQ"]], "str_lt_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_LT_ELIM"]], "str_prefixof_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_PREFIXOF_ELIM"]], "str_prefixof_one (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_PREFIXOF_ONE"]], "str_replace_all_no_contains (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_REPLACE_ALL_NO_CONTAINS"]], "str_replace_contains_pre (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_REPLACE_CONTAINS_PRE"]], "str_replace_empty (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_REPLACE_EMPTY"]], "str_replace_no_contains (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_REPLACE_NO_CONTAINS"]], "str_replace_prefix (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_REPLACE_PREFIX"]], "str_replace_re_all_none (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_REPLACE_RE_ALL_NONE"]], "str_replace_re_none (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_REPLACE_RE_NONE"]], "str_replace_self (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_REPLACE_SELF"]], "str_substr_combine1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_SUBSTR_COMBINE1"]], "str_substr_combine2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_SUBSTR_COMBINE2"]], "str_substr_combine3 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_SUBSTR_COMBINE3"]], "str_substr_combine4 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_SUBSTR_COMBINE4"]], "str_substr_concat1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_SUBSTR_CONCAT1"]], "str_substr_concat2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_SUBSTR_CONCAT2"]], "str_substr_empty_range (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_SUBSTR_EMPTY_RANGE"]], "str_substr_empty_start (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_SUBSTR_EMPTY_START"]], "str_substr_empty_start_neg (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_SUBSTR_EMPTY_START_NEG"]], "str_substr_empty_str (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_SUBSTR_EMPTY_STR"]], "str_substr_eq_empty (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_SUBSTR_EQ_EMPTY"]], "str_substr_full (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_SUBSTR_FULL"]], "str_substr_full_eq (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_SUBSTR_FULL_EQ"]], "str_substr_len_include (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_SUBSTR_LEN_INCLUDE"]], "str_substr_len_include_pre (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_SUBSTR_LEN_INCLUDE_PRE"]], "str_substr_len_skip (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_SUBSTR_LEN_SKIP"]], "str_suffixof_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_SUFFIXOF_ELIM"]], "str_suffixof_one (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_SUFFIXOF_ONE"]], "str_to_int_concat_neg_one (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_TO_INT_CONCAT_NEG_ONE"]], "str_to_lower_concat (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_TO_LOWER_CONCAT"]], "str_to_lower_from_int (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_TO_LOWER_FROM_INT"]], "str_to_lower_len (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_TO_LOWER_LEN"]], "str_to_lower_upper (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_TO_LOWER_UPPER"]], "str_to_upper_concat (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_TO_UPPER_CONCAT"]], "str_to_upper_from_int (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_TO_UPPER_FROM_INT"]], "str_to_upper_len (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_TO_UPPER_LEN"]], "str_to_upper_lower (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_TO_UPPER_LOWER"]], "subs (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.SUBS"]], "symm (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.SYMM"]], "theory_rewrite (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.THEORY_REWRITE"]], "trans (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.TRANS"]], "true_elim (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.TRUE_ELIM"]], "true_intro (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.TRUE_INTRO"]], "trust (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.TRUST"]], "trust_theory_rewrite (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.TRUST_THEORY_REWRITE"]], "uf_bv2nat_geq_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.UF_BV2NAT_GEQ_ELIM"]], "uf_bv2nat_int2bv (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.UF_BV2NAT_INT2BV"]], "uf_bv2nat_int2bv_extend (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.UF_BV2NAT_INT2BV_EXTEND"]], "uf_bv2nat_int2bv_extract (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.UF_BV2NAT_INT2BV_EXTRACT"]], "uf_int2bv_bv2nat (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.UF_INT2BV_BV2NAT"]], "uf_int2bv_bvule_equiv (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.UF_INT2BV_BVULE_EQUIV"]], "uf_int2bv_bvult_equiv (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.UF_INT2BV_BVULT_EQUIV"]], "unknown (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.UNKNOWN"]], "xor_elim1 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.XOR_ELIM1"]], "xor_elim2 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.XOR_ELIM2"]], "result (class in cvc5)": [[77, "cvc5.Result"]], "getunknownexplanation() (cvc5.result method)": [[77, "cvc5.Result.getUnknownExplanation"]], "isnull() (cvc5.result method)": [[77, "cvc5.Result.isNull"]], "issat() (cvc5.result method)": [[77, "cvc5.Result.isSat"]], "isunknown() (cvc5.result method)": [[77, "cvc5.Result.isUnknown"]], "isunsat() (cvc5.result method)": [[77, "cvc5.Result.isUnsat"]], "round_nearest_ties_to_away (cvc5.roundingmode attribute)": [[78, "cvc5.RoundingMode.ROUND_NEAREST_TIES_TO_AWAY"]], "round_nearest_ties_to_even (cvc5.roundingmode attribute)": [[78, "cvc5.RoundingMode.ROUND_NEAREST_TIES_TO_EVEN"]], "round_toward_negative (cvc5.roundingmode attribute)": [[78, "cvc5.RoundingMode.ROUND_TOWARD_NEGATIVE"]], "round_toward_positive (cvc5.roundingmode attribute)": [[78, "cvc5.RoundingMode.ROUND_TOWARD_POSITIVE"]], "round_toward_zero (cvc5.roundingmode attribute)": [[78, "cvc5.RoundingMode.ROUND_TOWARD_ZERO"]], "roundingmode (class in cvc5)": [[78, "cvc5.RoundingMode"]], "solver (class in cvc5)": [[79, "cvc5.Solver"]], "addplugin() (cvc5.solver method)": [[79, "cvc5.Solver.addPlugin"]], "addsygusassume() (cvc5.solver method)": [[79, "cvc5.Solver.addSygusAssume"]], "addsygusconstraint() (cvc5.solver method)": [[79, "cvc5.Solver.addSygusConstraint"]], "addsygusinvconstraint() (cvc5.solver method)": [[79, "cvc5.Solver.addSygusInvConstraint"]], "assertformula() (cvc5.solver method)": [[79, "cvc5.Solver.assertFormula"]], "blockmodel() (cvc5.solver method)": [[79, "cvc5.Solver.blockModel"]], "blockmodelvalues() (cvc5.solver method)": [[79, "cvc5.Solver.blockModelValues"]], "checksat() (cvc5.solver method)": [[79, "cvc5.Solver.checkSat"]], "checksatassuming() (cvc5.solver method)": [[79, "cvc5.Solver.checkSatAssuming"]], "checksynth() (cvc5.solver method)": [[79, "cvc5.Solver.checkSynth"]], "checksynthnext() (cvc5.solver method)": [[79, "cvc5.Solver.checkSynthNext"]], "declaredatatype() (cvc5.solver method)": [[79, "cvc5.Solver.declareDatatype"]], "declarefun() (cvc5.solver method)": [[79, "cvc5.Solver.declareFun"]], "declarepool() (cvc5.solver method)": [[79, "cvc5.Solver.declarePool"]], "declaresepheap() (cvc5.solver method)": [[79, "cvc5.Solver.declareSepHeap"]], "declaresort() (cvc5.solver method)": [[79, "cvc5.Solver.declareSort"]], "declaresygusvar() (cvc5.solver method)": [[79, "cvc5.Solver.declareSygusVar"]], "definefun() (cvc5.solver method)": [[79, "cvc5.Solver.defineFun"]], "definefunrec() (cvc5.solver method)": [[79, "cvc5.Solver.defineFunRec"]], "definefunsrec() (cvc5.solver method)": [[79, "cvc5.Solver.defineFunsRec"]], "findsynth() (cvc5.solver method)": [[79, "cvc5.Solver.findSynth"]], "findsynthnext() (cvc5.solver method)": [[79, "cvc5.Solver.findSynthNext"]], "getabduct() (cvc5.solver method)": [[79, "cvc5.Solver.getAbduct"]], "getabductnext() (cvc5.solver method)": [[79, "cvc5.Solver.getAbductNext"]], "getassertions() (cvc5.solver method)": [[79, "cvc5.Solver.getAssertions"]], "getbooleansort() (cvc5.solver method)": [[79, "cvc5.Solver.getBooleanSort"]], "getdifficulty() (cvc5.solver method)": [[79, "cvc5.Solver.getDifficulty"]], "getinfo() (cvc5.solver method)": [[79, "cvc5.Solver.getInfo"]], "getinstantiations() (cvc5.solver method)": [[79, "cvc5.Solver.getInstantiations"]], "getintegersort() (cvc5.solver method)": [[79, "cvc5.Solver.getIntegerSort"]], "getinterpolant() (cvc5.solver method)": [[79, "cvc5.Solver.getInterpolant"]], "getinterpolantnext() (cvc5.solver method)": [[79, "cvc5.Solver.getInterpolantNext"]], "getlearnedliterals() (cvc5.solver method)": [[79, "cvc5.Solver.getLearnedLiterals"]], "getlogic() (cvc5.solver method)": [[79, "cvc5.Solver.getLogic"]], "getmodel() (cvc5.solver method)": [[79, "cvc5.Solver.getModel"]], "getmodeldomainelements() (cvc5.solver method)": [[79, "cvc5.Solver.getModelDomainElements"]], "getnumindicesforskolemid() (cvc5.solver method)": [[79, "cvc5.Solver.getNumIndicesForSkolemId"]], "getoption() (cvc5.solver method)": [[79, "cvc5.Solver.getOption"]], "getoptioninfo() (cvc5.solver method)": [[79, "cvc5.Solver.getOptionInfo"]], "getoptionnames() (cvc5.solver method)": [[79, "cvc5.Solver.getOptionNames"]], "getproof() (cvc5.solver method)": [[79, "cvc5.Solver.getProof"]], "getquantifierelimination() (cvc5.solver method)": [[79, "cvc5.Solver.getQuantifierElimination"]], "getquantifiereliminationdisjunct() (cvc5.solver method)": [[79, "cvc5.Solver.getQuantifierEliminationDisjunct"]], "getrealsort() (cvc5.solver method)": [[79, "cvc5.Solver.getRealSort"]], "getregexpsort() (cvc5.solver method)": [[79, "cvc5.Solver.getRegExpSort"]], "getroundingmodesort() (cvc5.solver method)": [[79, "cvc5.Solver.getRoundingModeSort"]], "getstatistics() (cvc5.solver method)": [[79, "cvc5.Solver.getStatistics"]], "getstringsort() (cvc5.solver method)": [[79, "cvc5.Solver.getStringSort"]], "getsygusassumptions() (cvc5.solver method)": [[79, "cvc5.Solver.getSygusAssumptions"]], "getsygusconstraints() (cvc5.solver method)": [[79, "cvc5.Solver.getSygusConstraints"]], "getsynthsolution() (cvc5.solver method)": [[79, "cvc5.Solver.getSynthSolution"]], "getsynthsolutions() (cvc5.solver method)": [[79, "cvc5.Solver.getSynthSolutions"]], "gettermmanager() (cvc5.solver method)": [[79, "cvc5.Solver.getTermManager"]], "gettimeoutcore() (cvc5.solver method)": [[79, "cvc5.Solver.getTimeoutCore"]], "gettimeoutcoreassuming() (cvc5.solver method)": [[79, "cvc5.Solver.getTimeoutCoreAssuming"]], "getunsatassumptions() (cvc5.solver method)": [[79, "cvc5.Solver.getUnsatAssumptions"]], "getunsatcore() (cvc5.solver method)": [[79, "cvc5.Solver.getUnsatCore"]], "getunsatcorelemmas() (cvc5.solver method)": [[79, "cvc5.Solver.getUnsatCoreLemmas"]], "getvalue() (cvc5.solver method)": [[79, "cvc5.Solver.getValue"]], "getvaluesepheap() (cvc5.solver method)": [[79, "cvc5.Solver.getValueSepHeap"]], "getvaluesepnil() (cvc5.solver method)": [[79, "cvc5.Solver.getValueSepNil"]], "getversion() (cvc5.solver method)": [[79, "cvc5.Solver.getVersion"]], "islogicset() (cvc5.solver method)": [[79, "cvc5.Solver.isLogicSet"]], "ismodelcoresymbol() (cvc5.solver method)": [[79, "cvc5.Solver.isModelCoreSymbol"]], "mkabstractsort() (cvc5.solver method)": [[79, "cvc5.Solver.mkAbstractSort"]], "mkarraysort() (cvc5.solver method)": [[79, "cvc5.Solver.mkArraySort"]], "mkbagsort() (cvc5.solver method)": [[79, "cvc5.Solver.mkBagSort"]], "mkbitvector() (cvc5.solver method)": [[79, "cvc5.Solver.mkBitVector"]], "mkbitvectorsort() (cvc5.solver method)": [[79, "cvc5.Solver.mkBitVectorSort"]], "mkboolean() (cvc5.solver method)": [[79, "cvc5.Solver.mkBoolean"]], "mkcardinalityconstraint() (cvc5.solver method)": [[79, "cvc5.Solver.mkCardinalityConstraint"]], "mkconst() (cvc5.solver method)": [[79, "cvc5.Solver.mkConst"]], "mkconstarray() (cvc5.solver method)": [[79, "cvc5.Solver.mkConstArray"]], "mkdatatypeconstructordecl() (cvc5.solver method)": [[79, "cvc5.Solver.mkDatatypeConstructorDecl"]], "mkdatatypedecl() (cvc5.solver method)": [[79, "cvc5.Solver.mkDatatypeDecl"]], "mkdatatypesort() (cvc5.solver method)": [[79, "cvc5.Solver.mkDatatypeSort"]], "mkdatatypesorts() (cvc5.solver method)": [[79, "cvc5.Solver.mkDatatypeSorts"]], "mkemptybag() (cvc5.solver method)": [[79, "cvc5.Solver.mkEmptyBag"]], "mkemptysequence() (cvc5.solver method)": [[79, "cvc5.Solver.mkEmptySequence"]], "mkemptyset() (cvc5.solver method)": [[79, "cvc5.Solver.mkEmptySet"]], "mkfalse() (cvc5.solver method)": [[79, "cvc5.Solver.mkFalse"]], "mkfinitefieldelem() (cvc5.solver method)": [[79, "cvc5.Solver.mkFiniteFieldElem"]], "mkfinitefieldsort() (cvc5.solver method)": [[79, "cvc5.Solver.mkFiniteFieldSort"]], "mkfloatingpoint() (cvc5.solver method)": [[79, "cvc5.Solver.mkFloatingPoint"]], "mkfloatingpointnan() (cvc5.solver method)": [[79, "cvc5.Solver.mkFloatingPointNaN"]], "mkfloatingpointneginf() (cvc5.solver method)": [[79, "cvc5.Solver.mkFloatingPointNegInf"]], "mkfloatingpointnegzero() (cvc5.solver method)": [[79, "cvc5.Solver.mkFloatingPointNegZero"]], "mkfloatingpointposinf() (cvc5.solver method)": [[79, "cvc5.Solver.mkFloatingPointPosInf"]], "mkfloatingpointposzero() (cvc5.solver method)": [[79, "cvc5.Solver.mkFloatingPointPosZero"]], "mkfloatingpointsort() (cvc5.solver method)": [[79, "cvc5.Solver.mkFloatingPointSort"]], "mkfunctionsort() (cvc5.solver method)": [[79, "cvc5.Solver.mkFunctionSort"]], "mkgrammar() (cvc5.solver method)": [[79, "cvc5.Solver.mkGrammar"]], "mkinteger() (cvc5.solver method)": [[79, "cvc5.Solver.mkInteger"]], "mknullableisnull() (cvc5.solver method)": [[79, "cvc5.Solver.mkNullableIsNull"]], "mknullableissome() (cvc5.solver method)": [[79, "cvc5.Solver.mkNullableIsSome"]], "mknullablelift() (cvc5.solver method)": [[79, "cvc5.Solver.mkNullableLift"]], "mknullablenull() (cvc5.solver method)": [[79, "cvc5.Solver.mkNullableNull"]], "mknullablesome() (cvc5.solver method)": [[79, "cvc5.Solver.mkNullableSome"]], "mknullablesort() (cvc5.solver method)": [[79, "cvc5.Solver.mkNullableSort"]], "mknullableval() (cvc5.solver method)": [[79, "cvc5.Solver.mkNullableVal"]], "mkop() (cvc5.solver method)": [[79, "cvc5.Solver.mkOp"]], "mkparamsort() (cvc5.solver method)": [[79, "cvc5.Solver.mkParamSort"]], "mkpi() (cvc5.solver method)": [[79, "cvc5.Solver.mkPi"]], "mkpredicatesort() (cvc5.solver method)": [[79, "cvc5.Solver.mkPredicateSort"]], "mkreal() (cvc5.solver method)": [[79, "cvc5.Solver.mkReal"]], "mkrecordsort() (cvc5.solver method)": [[79, "cvc5.Solver.mkRecordSort"]], "mkregexpall() (cvc5.solver method)": [[79, "cvc5.Solver.mkRegexpAll"]], "mkregexpallchar() (cvc5.solver method)": [[79, "cvc5.Solver.mkRegexpAllchar"]], "mkregexpnone() (cvc5.solver method)": [[79, "cvc5.Solver.mkRegexpNone"]], "mkroundingmode() (cvc5.solver method)": [[79, "cvc5.Solver.mkRoundingMode"]], "mksepemp() (cvc5.solver method)": [[79, "cvc5.Solver.mkSepEmp"]], "mksepnil() (cvc5.solver method)": [[79, "cvc5.Solver.mkSepNil"]], "mksequencesort() (cvc5.solver method)": [[79, "cvc5.Solver.mkSequenceSort"]], "mksetsort() (cvc5.solver method)": [[79, "cvc5.Solver.mkSetSort"]], "mkskolem() (cvc5.solver method)": [[79, "cvc5.Solver.mkSkolem"]], "mkstring() (cvc5.solver method)": [[79, "cvc5.Solver.mkString"]], "mkterm() (cvc5.solver method)": [[79, "cvc5.Solver.mkTerm"]], "mktrue() (cvc5.solver method)": [[79, "cvc5.Solver.mkTrue"]], "mktuple() (cvc5.solver method)": [[79, "cvc5.Solver.mkTuple"]], "mktuplesort() (cvc5.solver method)": [[79, "cvc5.Solver.mkTupleSort"]], "mkuninterpretedsort() (cvc5.solver method)": [[79, "cvc5.Solver.mkUninterpretedSort"]], "mkuninterpretedsortconstructorsort() (cvc5.solver method)": [[79, "cvc5.Solver.mkUninterpretedSortConstructorSort"]], "mkuniverseset() (cvc5.solver method)": [[79, "cvc5.Solver.mkUniverseSet"]], "mkunresolveddatatypesort() (cvc5.solver method)": [[79, "cvc5.Solver.mkUnresolvedDatatypeSort"]], "mkvar() (cvc5.solver method)": [[79, "cvc5.Solver.mkVar"]], "pop() (cvc5.solver method)": [[79, "cvc5.Solver.pop"]], "prooftostring() (cvc5.solver method)": [[79, "cvc5.Solver.proofToString"]], "push() (cvc5.solver method)": [[79, "cvc5.Solver.push"]], "resetassertions() (cvc5.solver method)": [[79, "cvc5.Solver.resetAssertions"]], "setinfo() (cvc5.solver method)": [[79, "cvc5.Solver.setInfo"]], "setlogic() (cvc5.solver method)": [[79, "cvc5.Solver.setLogic"]], "setoption() (cvc5.solver method)": [[79, "cvc5.Solver.setOption"]], "simplify() (cvc5.solver method)": [[79, "cvc5.Solver.simplify"]], "synthfun() (cvc5.solver method)": [[79, "cvc5.Solver.synthFun"]], "sort (class in cvc5)": [[80, "cvc5.Sort"]], "getabstractedkind() (cvc5.sort method)": [[80, "cvc5.Sort.getAbstractedKind"]], "getarrayelementsort() (cvc5.sort method)": [[80, "cvc5.Sort.getArrayElementSort"]], "getarrayindexsort() (cvc5.sort method)": [[80, "cvc5.Sort.getArrayIndexSort"]], "getbagelementsort() (cvc5.sort method)": [[80, "cvc5.Sort.getBagElementSort"]], "getbitvectorsize() (cvc5.sort method)": [[80, "cvc5.Sort.getBitVectorSize"]], "getdatatype() (cvc5.sort method)": [[80, "cvc5.Sort.getDatatype"]], "getdatatypearity() (cvc5.sort method)": [[80, "cvc5.Sort.getDatatypeArity"]], "getdatatypeconstructorarity() (cvc5.sort method)": [[80, "cvc5.Sort.getDatatypeConstructorArity"]], "getdatatypeconstructorcodomainsort() (cvc5.sort method)": [[80, "cvc5.Sort.getDatatypeConstructorCodomainSort"]], "getdatatypeconstructordomainsorts() (cvc5.sort method)": [[80, "cvc5.Sort.getDatatypeConstructorDomainSorts"]], "getdatatypeselectorcodomainsort() (cvc5.sort method)": [[80, "cvc5.Sort.getDatatypeSelectorCodomainSort"]], "getdatatypeselectordomainsort() (cvc5.sort method)": [[80, "cvc5.Sort.getDatatypeSelectorDomainSort"]], "getdatatypetestercodomainsort() (cvc5.sort method)": [[80, "cvc5.Sort.getDatatypeTesterCodomainSort"]], "getdatatypetesterdomainsort() (cvc5.sort method)": [[80, "cvc5.Sort.getDatatypeTesterDomainSort"]], "getfinitefieldsize() (cvc5.sort method)": [[80, "cvc5.Sort.getFiniteFieldSize"]], "getfloatingpointexponentsize() (cvc5.sort method)": [[80, "cvc5.Sort.getFloatingPointExponentSize"]], "getfloatingpointsignificandsize() (cvc5.sort method)": [[80, "cvc5.Sort.getFloatingPointSignificandSize"]], "getfunctionarity() (cvc5.sort method)": [[80, "cvc5.Sort.getFunctionArity"]], "getfunctioncodomainsort() (cvc5.sort method)": [[80, "cvc5.Sort.getFunctionCodomainSort"]], "getfunctiondomainsorts() (cvc5.sort method)": [[80, "cvc5.Sort.getFunctionDomainSorts"]], "getinstantiatedparameters() (cvc5.sort method)": [[80, "cvc5.Sort.getInstantiatedParameters"]], "getkind() (cvc5.sort method)": [[80, "cvc5.Sort.getKind"]], "getnullableelementsort() (cvc5.sort method)": [[80, "cvc5.Sort.getNullableElementSort"]], "getsequenceelementsort() (cvc5.sort method)": [[80, "cvc5.Sort.getSequenceElementSort"]], "getsetelementsort() (cvc5.sort method)": [[80, "cvc5.Sort.getSetElementSort"]], "getsymbol() (cvc5.sort method)": [[80, "cvc5.Sort.getSymbol"]], "gettuplelength() (cvc5.sort method)": [[80, "cvc5.Sort.getTupleLength"]], "gettuplesorts() (cvc5.sort method)": [[80, "cvc5.Sort.getTupleSorts"]], "getuninterpretedsortconstructor() (cvc5.sort method)": [[80, "cvc5.Sort.getUninterpretedSortConstructor"]], "getuninterpretedsortconstructorarity() (cvc5.sort method)": [[80, "cvc5.Sort.getUninterpretedSortConstructorArity"]], "hassymbol() (cvc5.sort method)": [[80, "cvc5.Sort.hasSymbol"]], "instantiate() (cvc5.sort method)": [[80, "cvc5.Sort.instantiate"]], "isabstract() (cvc5.sort method)": [[80, "cvc5.Sort.isAbstract"]], "isarray() (cvc5.sort method)": [[80, "cvc5.Sort.isArray"]], "isbag() (cvc5.sort method)": [[80, "cvc5.Sort.isBag"]], "isbitvector() (cvc5.sort method)": [[80, "cvc5.Sort.isBitVector"]], "isboolean() (cvc5.sort method)": [[80, "cvc5.Sort.isBoolean"]], "isdatatype() (cvc5.sort method)": [[80, "cvc5.Sort.isDatatype"]], "isdatatypeconstructor() (cvc5.sort method)": [[80, "cvc5.Sort.isDatatypeConstructor"]], "isdatatypeselector() (cvc5.sort method)": [[80, "cvc5.Sort.isDatatypeSelector"]], "isdatatypetester() (cvc5.sort method)": [[80, "cvc5.Sort.isDatatypeTester"]], "isdatatypeupdater() (cvc5.sort method)": [[80, "cvc5.Sort.isDatatypeUpdater"]], "isfinitefield() (cvc5.sort method)": [[80, "cvc5.Sort.isFiniteField"]], "isfloatingpoint() (cvc5.sort method)": [[80, "cvc5.Sort.isFloatingPoint"]], "isfunction() (cvc5.sort method)": [[80, "cvc5.Sort.isFunction"]], "isinstantiated() (cvc5.sort method)": [[80, "cvc5.Sort.isInstantiated"]], "isinteger() (cvc5.sort method)": [[80, "cvc5.Sort.isInteger"]], "isnull() (cvc5.sort method)": [[80, "cvc5.Sort.isNull"]], "isnullable() (cvc5.sort method)": [[80, "cvc5.Sort.isNullable"]], "ispredicate() (cvc5.sort method)": [[80, "cvc5.Sort.isPredicate"]], "isreal() (cvc5.sort method)": [[80, "cvc5.Sort.isReal"]], "isrecord() (cvc5.sort method)": [[80, "cvc5.Sort.isRecord"]], "isregexp() (cvc5.sort method)": [[80, "cvc5.Sort.isRegExp"]], "isroundingmode() (cvc5.sort method)": [[80, "cvc5.Sort.isRoundingMode"]], "issequence() (cvc5.sort method)": [[80, "cvc5.Sort.isSequence"]], "isset() (cvc5.sort method)": [[80, "cvc5.Sort.isSet"]], "isstring() (cvc5.sort method)": [[80, "cvc5.Sort.isString"]], "istuple() (cvc5.sort method)": [[80, "cvc5.Sort.isTuple"]], "isuninterpretedsort() (cvc5.sort method)": [[80, "cvc5.Sort.isUninterpretedSort"]], "isuninterpretedsortconstructor() (cvc5.sort method)": [[80, "cvc5.Sort.isUninterpretedSortConstructor"]], "substitute() (cvc5.sort method)": [[80, "cvc5.Sort.substitute"]], "abstract_sort (cvc5.sortkind attribute)": [[81, "cvc5.SortKind.ABSTRACT_SORT"]], "array_sort (cvc5.sortkind attribute)": [[81, "cvc5.SortKind.ARRAY_SORT"]], "bag_sort (cvc5.sortkind attribute)": [[81, "cvc5.SortKind.BAG_SORT"]], "bitvector_sort (cvc5.sortkind attribute)": [[81, "cvc5.SortKind.BITVECTOR_SORT"]], "boolean_sort (cvc5.sortkind attribute)": [[81, "cvc5.SortKind.BOOLEAN_SORT"]], "datatype_sort (cvc5.sortkind attribute)": [[81, "cvc5.SortKind.DATATYPE_SORT"]], "finite_field_sort (cvc5.sortkind attribute)": [[81, "cvc5.SortKind.FINITE_FIELD_SORT"]], "floatingpoint_sort (cvc5.sortkind attribute)": [[81, "cvc5.SortKind.FLOATINGPOINT_SORT"]], "function_sort (cvc5.sortkind attribute)": [[81, "cvc5.SortKind.FUNCTION_SORT"]], "integer_sort (cvc5.sortkind attribute)": [[81, "cvc5.SortKind.INTEGER_SORT"]], "internal_sort_kind (cvc5.sortkind attribute)": [[81, "cvc5.SortKind.INTERNAL_SORT_KIND"]], "last_sort_kind (cvc5.sortkind attribute)": [[81, "cvc5.SortKind.LAST_SORT_KIND"]], "nullable_sort (cvc5.sortkind attribute)": [[81, "cvc5.SortKind.NULLABLE_SORT"]], "null_sort (cvc5.sortkind attribute)": [[81, "cvc5.SortKind.NULL_SORT"]], "real_sort (cvc5.sortkind attribute)": [[81, "cvc5.SortKind.REAL_SORT"]], "reglan_sort (cvc5.sortkind attribute)": [[81, "cvc5.SortKind.REGLAN_SORT"]], "roundingmode_sort (cvc5.sortkind attribute)": [[81, "cvc5.SortKind.ROUNDINGMODE_SORT"]], "sequence_sort (cvc5.sortkind attribute)": [[81, "cvc5.SortKind.SEQUENCE_SORT"]], "set_sort (cvc5.sortkind attribute)": [[81, "cvc5.SortKind.SET_SORT"]], "string_sort (cvc5.sortkind attribute)": [[81, "cvc5.SortKind.STRING_SORT"]], "sortkind (class in cvc5)": [[81, "cvc5.SortKind"]], "tuple_sort (cvc5.sortkind attribute)": [[81, "cvc5.SortKind.TUPLE_SORT"]], "undefined_sort_kind (cvc5.sortkind attribute)": [[81, "cvc5.SortKind.UNDEFINED_SORT_KIND"]], "uninterpreted_sort (cvc5.sortkind attribute)": [[81, "cvc5.SortKind.UNINTERPRETED_SORT"]], "statistics (class in cvc5)": [[82, "cvc5.Statistics"]], "__getitem__() (cvc5.statistics method)": [[82, "cvc5.Statistics.__getitem__"]], "__iter__() (cvc5.statistics method)": [[82, "cvc5.Statistics.__iter__"]], "__next__() (cvc5.statistics method)": [[82, "cvc5.Statistics.__next__"]], "get() (cvc5.statistics method)": [[82, "cvc5.Statistics.get"]], "symbolmanager (class in cvc5)": [[83, "cvc5.SymbolManager"]], "getdeclaredsorts() (cvc5.symbolmanager method)": [[83, "cvc5.SymbolManager.getDeclaredSorts"]], "getdeclaredterms() (cvc5.symbolmanager method)": [[83, "cvc5.SymbolManager.getDeclaredTerms"]], "getlogic() (cvc5.symbolmanager method)": [[83, "cvc5.SymbolManager.getLogic"]], "getnamedterms() (cvc5.symbolmanager method)": [[83, "cvc5.SymbolManager.getNamedTerms"]], "islogicset() (cvc5.symbolmanager method)": [[83, "cvc5.SymbolManager.isLogicSet"]], "synthresult (class in cvc5)": [[84, "cvc5.SynthResult"]], "hasnosolution() (cvc5.synthresult method)": [[84, "cvc5.SynthResult.hasNoSolution"]], "hassolution() (cvc5.synthresult method)": [[84, "cvc5.SynthResult.hasSolution"]], "isnull() (cvc5.synthresult method)": [[84, "cvc5.SynthResult.isNull"]], "isunknown() (cvc5.synthresult method)": [[84, "cvc5.SynthResult.isUnknown"]], "term (class in cvc5)": [[85, "cvc5.Term"]], "__getitem__() (cvc5.term method)": [[85, "cvc5.Term.__getitem__"]], "__iter__() (cvc5.term method)": [[85, "cvc5.Term.__iter__"]], "andterm() (cvc5.term method)": [[85, "cvc5.Term.andTerm"]], "eqterm() (cvc5.term method)": [[85, "cvc5.Term.eqTerm"]], "getbitvectorvalue() (cvc5.term method)": [[85, "cvc5.Term.getBitVectorValue"]], "getbooleanvalue() (cvc5.term method)": [[85, "cvc5.Term.getBooleanValue"]], "getcardinalityconstraint() (cvc5.term method)": [[85, "cvc5.Term.getCardinalityConstraint"]], "getconstarraybase() (cvc5.term method)": [[85, "cvc5.Term.getConstArrayBase"]], "getfinitefieldvalue() (cvc5.term method)": [[85, "cvc5.Term.getFiniteFieldValue"]], "getfloatingpointvalue() (cvc5.term method)": [[85, "cvc5.Term.getFloatingPointValue"]], "getid() (cvc5.term method)": [[85, "cvc5.Term.getId"]], "getintegervalue() (cvc5.term method)": [[85, "cvc5.Term.getIntegerValue"]], "getkind() (cvc5.term method)": [[85, "cvc5.Term.getKind"]], "getnumchildren() (cvc5.term method)": [[85, "cvc5.Term.getNumChildren"]], "getop() (cvc5.term method)": [[85, "cvc5.Term.getOp"]], "getrealalgebraicnumberdefiningpolynomial() (cvc5.term method)": [[85, "cvc5.Term.getRealAlgebraicNumberDefiningPolynomial"]], "getrealalgebraicnumberlowerbound() (cvc5.term method)": [[85, "cvc5.Term.getRealAlgebraicNumberLowerBound"]], "getrealalgebraicnumberupperbound() (cvc5.term method)": [[85, "cvc5.Term.getRealAlgebraicNumberUpperBound"]], "getrealorintegervaluesign() (cvc5.term method)": [[85, "cvc5.Term.getRealOrIntegerValueSign"]], "getrealvalue() (cvc5.term method)": [[85, "cvc5.Term.getRealValue"]], "getroundingmodevalue() (cvc5.term method)": [[85, "cvc5.Term.getRoundingModeValue"]], "getsequencevalue() (cvc5.term method)": [[85, "cvc5.Term.getSequenceValue"]], "getsetvalue() (cvc5.term method)": [[85, "cvc5.Term.getSetValue"]], "getskolemid() (cvc5.term method)": [[85, "cvc5.Term.getSkolemId"]], "getskolemindices() (cvc5.term method)": [[85, "cvc5.Term.getSkolemIndices"]], "getsort() (cvc5.term method)": [[85, "cvc5.Term.getSort"]], "getstringvalue() (cvc5.term method)": [[85, "cvc5.Term.getStringValue"]], "getsymbol() (cvc5.term method)": [[85, "cvc5.Term.getSymbol"]], "gettuplevalue() (cvc5.term method)": [[85, "cvc5.Term.getTupleValue"]], "getuninterpretedsortvalue() (cvc5.term method)": [[85, "cvc5.Term.getUninterpretedSortValue"]], "hasop() (cvc5.term method)": [[85, "cvc5.Term.hasOp"]], "hassymbol() (cvc5.term method)": [[85, "cvc5.Term.hasSymbol"]], "impterm() (cvc5.term method)": [[85, "cvc5.Term.impTerm"]], "isbitvectorvalue() (cvc5.term method)": [[85, "cvc5.Term.isBitVectorValue"]], "isbooleanvalue() (cvc5.term method)": [[85, "cvc5.Term.isBooleanValue"]], "iscardinalityconstraint() (cvc5.term method)": [[85, "cvc5.Term.isCardinalityConstraint"]], "isconstarray() (cvc5.term method)": [[85, "cvc5.Term.isConstArray"]], "isfinitefieldvalue() (cvc5.term method)": [[85, "cvc5.Term.isFiniteFieldValue"]], "isfloatingpointnan() (cvc5.term method)": [[85, "cvc5.Term.isFloatingPointNaN"]], "isfloatingpointneginf() (cvc5.term method)": [[85, "cvc5.Term.isFloatingPointNegInf"]], "isfloatingpointnegzero() (cvc5.term method)": [[85, "cvc5.Term.isFloatingPointNegZero"]], "isfloatingpointposinf() (cvc5.term method)": [[85, "cvc5.Term.isFloatingPointPosInf"]], "isfloatingpointposzero() (cvc5.term method)": [[85, "cvc5.Term.isFloatingPointPosZero"]], "isfloatingpointvalue() (cvc5.term method)": [[85, "cvc5.Term.isFloatingPointValue"]], "isintegervalue() (cvc5.term method)": [[85, "cvc5.Term.isIntegerValue"]], "isnull() (cvc5.term method)": [[85, "cvc5.Term.isNull"]], "isrealalgebraicnumber() (cvc5.term method)": [[85, "cvc5.Term.isRealAlgebraicNumber"]], "isrealvalue() (cvc5.term method)": [[85, "cvc5.Term.isRealValue"]], "isroundingmodevalue() (cvc5.term method)": [[85, "cvc5.Term.isRoundingModeValue"]], "issequencevalue() (cvc5.term method)": [[85, "cvc5.Term.isSequenceValue"]], "issetvalue() (cvc5.term method)": [[85, "cvc5.Term.isSetValue"]], "isskolem() (cvc5.term method)": [[85, "cvc5.Term.isSkolem"]], "isstringvalue() (cvc5.term method)": [[85, "cvc5.Term.isStringValue"]], "istuplevalue() (cvc5.term method)": [[85, "cvc5.Term.isTupleValue"]], "isuninterpretedsortvalue() (cvc5.term method)": [[85, "cvc5.Term.isUninterpretedSortValue"]], "iteterm() (cvc5.term method)": [[85, "cvc5.Term.iteTerm"]], "notterm() (cvc5.term method)": [[85, "cvc5.Term.notTerm"]], "orterm() (cvc5.term method)": [[85, "cvc5.Term.orTerm"]], "substitute() (cvc5.term method)": [[85, "cvc5.Term.substitute"]], "topythonobj() (cvc5.term method)": [[85, "cvc5.Term.toPythonObj"]], "xorterm() (cvc5.term method)": [[85, "cvc5.Term.xorTerm"]], "termmanager (class in cvc5)": [[86, "cvc5.TermManager"]], "getbooleansort() (cvc5.termmanager method)": [[86, "cvc5.TermManager.getBooleanSort"]], "getintegersort() (cvc5.termmanager method)": [[86, "cvc5.TermManager.getIntegerSort"]], "getnumindicesforskolemid() (cvc5.termmanager method)": [[86, "cvc5.TermManager.getNumIndicesForSkolemId"]], "getrealsort() (cvc5.termmanager method)": [[86, "cvc5.TermManager.getRealSort"]], "getregexpsort() (cvc5.termmanager method)": [[86, "cvc5.TermManager.getRegExpSort"]], "getroundingmodesort() (cvc5.termmanager method)": [[86, "cvc5.TermManager.getRoundingModeSort"]], "getstatistics() (cvc5.termmanager method)": [[86, "cvc5.TermManager.getStatistics"]], "getstringsort() (cvc5.termmanager method)": [[86, "cvc5.TermManager.getStringSort"]], "mkabstractsort() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkAbstractSort"]], "mkarraysort() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkArraySort"]], "mkbagsort() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkBagSort"]], "mkbitvector() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkBitVector"]], "mkbitvectorsort() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkBitVectorSort"]], "mkboolean() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkBoolean"]], "mkcardinalityconstraint() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkCardinalityConstraint"]], "mkconst() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkConst"]], "mkconstarray() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkConstArray"]], "mkdatatypeconstructordecl() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkDatatypeConstructorDecl"]], "mkdatatypedecl() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkDatatypeDecl"]], "mkdatatypesort() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkDatatypeSort"]], "mkdatatypesorts() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkDatatypeSorts"]], "mkemptybag() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkEmptyBag"]], "mkemptysequence() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkEmptySequence"]], "mkemptyset() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkEmptySet"]], "mkfalse() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkFalse"]], "mkfinitefieldelem() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkFiniteFieldElem"]], "mkfinitefieldsort() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkFiniteFieldSort"]], "mkfloatingpoint() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkFloatingPoint"]], "mkfloatingpointnan() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkFloatingPointNaN"]], "mkfloatingpointneginf() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkFloatingPointNegInf"]], "mkfloatingpointnegzero() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkFloatingPointNegZero"]], "mkfloatingpointposinf() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkFloatingPointPosInf"]], "mkfloatingpointposzero() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkFloatingPointPosZero"]], "mkfloatingpointsort() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkFloatingPointSort"]], "mkfunctionsort() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkFunctionSort"]], "mkinteger() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkInteger"]], "mknullableisnull() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkNullableIsNull"]], "mknullableissome() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkNullableIsSome"]], "mknullablelift() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkNullableLift"]], "mknullablenull() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkNullableNull"]], "mknullablesome() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkNullableSome"]], "mknullablesort() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkNullableSort"]], "mknullableval() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkNullableVal"]], "mkop() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkOp"]], "mkparamsort() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkParamSort"]], "mkpi() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkPi"]], "mkpredicatesort() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkPredicateSort"]], "mkreal() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkReal"]], "mkrecordsort() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkRecordSort"]], "mkregexpall() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkRegexpAll"]], "mkregexpallchar() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkRegexpAllchar"]], "mkregexpnone() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkRegexpNone"]], "mkroundingmode() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkRoundingMode"]], "mksepemp() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkSepEmp"]], "mksepnil() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkSepNil"]], "mksequencesort() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkSequenceSort"]], "mksetsort() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkSetSort"]], "mkskolem() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkSkolem"]], "mkstring() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkString"]], "mkterm() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkTerm"]], "mktrue() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkTrue"]], "mktuple() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkTuple"]], "mktuplesort() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkTupleSort"]], "mkuninterpretedsort() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkUninterpretedSort"]], "mkuninterpretedsortconstructorsort() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkUninterpretedSortConstructorSort"]], "mkuniverseset() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkUniverseSet"]], "mkunresolveddatatypesort() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkUnresolvedDatatypeSort"]], "mkvar() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkVar"]], "incomplete (cvc5.unknownexplanation attribute)": [[87, "cvc5.UnknownExplanation.INCOMPLETE"]], "interrupted (cvc5.unknownexplanation attribute)": [[87, "cvc5.UnknownExplanation.INTERRUPTED"]], "memout (cvc5.unknownexplanation attribute)": [[87, "cvc5.UnknownExplanation.MEMOUT"]], "other (cvc5.unknownexplanation attribute)": [[87, "cvc5.UnknownExplanation.OTHER"]], "requires_check_again (cvc5.unknownexplanation attribute)": [[87, "cvc5.UnknownExplanation.REQUIRES_CHECK_AGAIN"]], "requires_full_check (cvc5.unknownexplanation attribute)": [[87, "cvc5.UnknownExplanation.REQUIRES_FULL_CHECK"]], "resourceout (cvc5.unknownexplanation attribute)": [[87, "cvc5.UnknownExplanation.RESOURCEOUT"]], "timeout (cvc5.unknownexplanation attribute)": [[87, "cvc5.UnknownExplanation.TIMEOUT"]], "unknown_reason (cvc5.unknownexplanation attribute)": [[87, "cvc5.UnknownExplanation.UNKNOWN_REASON"]], "unsupported (cvc5.unknownexplanation attribute)": [[87, "cvc5.UnknownExplanation.UNSUPPORTED"]], "unknownexplanation (class in cvc5)": [[87, "cvc5.UnknownExplanation"]], "add() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Add"]], "arccosecant() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Arccosecant"]], "arccosine() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Arccosine"]], "arccotangent() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Arccotangent"]], "arcsecant() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Arcsecant"]], "arcsine() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Arcsine"]], "arctangent() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Arctangent"]], "arithref (class in cvc5.pythonic)": [[89, "cvc5.pythonic.ArithRef"]], "arithsortref (class in cvc5.pythonic)": [[89, "cvc5.pythonic.ArithSortRef"]], "cbrt() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Cbrt"]], "cosecant() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Cosecant"]], "cosine() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Cosine"]], "cotangent() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Cotangent"]], "div() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Div"]], "exponential() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Exponential"]], "freshint() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.FreshInt"]], "freshreal() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.FreshReal"]], "geq() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Geq"]], "gt() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Gt"]], "int() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Int"]], "intnumref (class in cvc5.pythonic)": [[89, "cvc5.pythonic.IntNumRef"]], "intsort() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.IntSort"]], "intval() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.IntVal"]], "intvector() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.IntVector"]], "ints() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Ints"]], "intsmodulus() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.IntsModulus"]], "isint() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.IsInt"]], "leq() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Leq"]], "lt() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Lt"]], "mult() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Mult"]], "pi() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Pi"]], "pow() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Pow"]], "q() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Q"]], "ratnumref (class in cvc5.pythonic)": [[89, "cvc5.pythonic.RatNumRef"]], "ratval() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.RatVal"]], "real() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Real"]], "realsort() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.RealSort"]], "realval() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.RealVal"]], "realvector() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.RealVector"]], "reals() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Reals"]], "secant() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Secant"]], "sine() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Sine"]], "sqrt() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Sqrt"]], "sub() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Sub"]], "tangent() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Tangent"]], "toint() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.ToInt"]], "toreal() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.ToReal"]], "uminus() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.UMinus"]], "__add__() (cvc5.pythonic.arithref method)": [[89, "cvc5.pythonic.ArithRef.__add__"]], "__div__() (cvc5.pythonic.arithref method)": [[89, "cvc5.pythonic.ArithRef.__div__"]], "__ge__() (cvc5.pythonic.arithref method)": [[89, "cvc5.pythonic.ArithRef.__ge__"]], "__gt__() (cvc5.pythonic.arithref method)": [[89, "cvc5.pythonic.ArithRef.__gt__"]], "__le__() (cvc5.pythonic.arithref method)": [[89, "cvc5.pythonic.ArithRef.__le__"]], "__lt__() (cvc5.pythonic.arithref method)": [[89, "cvc5.pythonic.ArithRef.__lt__"]], "__mod__() (cvc5.pythonic.arithref method)": [[89, "cvc5.pythonic.ArithRef.__mod__"]], "__mul__() (cvc5.pythonic.arithref method)": [[89, "cvc5.pythonic.ArithRef.__mul__"]], "__neg__() (cvc5.pythonic.arithref method)": [[89, "cvc5.pythonic.ArithRef.__neg__"]], "__pos__() (cvc5.pythonic.arithref method)": [[89, "cvc5.pythonic.ArithRef.__pos__"]], "__pow__() (cvc5.pythonic.arithref method)": [[89, "cvc5.pythonic.ArithRef.__pow__"]], "__radd__() (cvc5.pythonic.arithref method)": [[89, "cvc5.pythonic.ArithRef.__radd__"]], "__rdiv__() (cvc5.pythonic.arithref method)": [[89, "cvc5.pythonic.ArithRef.__rdiv__"]], "__rmod__() (cvc5.pythonic.arithref method)": [[89, "cvc5.pythonic.ArithRef.__rmod__"]], "__rmul__() (cvc5.pythonic.arithref method)": [[89, "cvc5.pythonic.ArithRef.__rmul__"]], "__rpow__() (cvc5.pythonic.arithref method)": [[89, "cvc5.pythonic.ArithRef.__rpow__"]], "__rsub__() (cvc5.pythonic.arithref method)": [[89, "cvc5.pythonic.ArithRef.__rsub__"]], "__rtruediv__() (cvc5.pythonic.arithref method)": [[89, "cvc5.pythonic.ArithRef.__rtruediv__"]], "__sub__() (cvc5.pythonic.arithref method)": [[89, "cvc5.pythonic.ArithRef.__sub__"]], "__truediv__() (cvc5.pythonic.arithref method)": [[89, "cvc5.pythonic.ArithRef.__truediv__"]], "as_binary_string() (cvc5.pythonic.intnumref method)": [[89, "cvc5.pythonic.IntNumRef.as_binary_string"]], "as_decimal() (cvc5.pythonic.ratnumref method)": [[89, "cvc5.pythonic.RatNumRef.as_decimal"]], "as_fraction() (cvc5.pythonic.ratnumref method)": [[89, "cvc5.pythonic.RatNumRef.as_fraction"]], "as_long() (cvc5.pythonic.intnumref method)": [[89, "cvc5.pythonic.IntNumRef.as_long"]], "as_long() (cvc5.pythonic.ratnumref method)": [[89, "cvc5.pythonic.RatNumRef.as_long"]], "as_string() (cvc5.pythonic.intnumref method)": [[89, "cvc5.pythonic.IntNumRef.as_string"]], "as_string() (cvc5.pythonic.ratnumref method)": [[89, "cvc5.pythonic.RatNumRef.as_string"]], "cast() (cvc5.pythonic.arithsortref method)": [[89, "cvc5.pythonic.ArithSortRef.cast"]], "denominator() (cvc5.pythonic.ratnumref method)": [[89, "cvc5.pythonic.RatNumRef.denominator"]], "denominator_as_long() (cvc5.pythonic.ratnumref method)": [[89, "cvc5.pythonic.RatNumRef.denominator_as_long"]], "is_add() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.is_add"]], "is_arith() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.is_arith"]], "is_arith_sort() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.is_arith_sort"]], "is_div() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.is_div"]], "is_ge() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.is_ge"]], "is_gt() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.is_gt"]], "is_idiv() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.is_idiv"]], "is_int() (cvc5.pythonic.arithref method)": [[89, "cvc5.pythonic.ArithRef.is_int"]], "is_int() (cvc5.pythonic.arithsortref method)": [[89, "cvc5.pythonic.ArithSortRef.is_int"]], "is_int() (cvc5.pythonic.ratnumref method)": [[89, "cvc5.pythonic.RatNumRef.is_int"]], "is_int() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.is_int"]], "is_int_value() (cvc5.pythonic.ratnumref method)": [[89, "cvc5.pythonic.RatNumRef.is_int_value"]], "is_int_value() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.is_int_value"]], "is_is_int() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.is_is_int"]], "is_le() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.is_le"]], "is_lt() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.is_lt"]], "is_mod() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.is_mod"]], "is_mul() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.is_mul"]], "is_rational_value() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.is_rational_value"]], "is_real() (cvc5.pythonic.arithref method)": [[89, "cvc5.pythonic.ArithRef.is_real"]], "is_real() (cvc5.pythonic.arithsortref method)": [[89, "cvc5.pythonic.ArithSortRef.is_real"]], "is_real() (cvc5.pythonic.ratnumref method)": [[89, "cvc5.pythonic.RatNumRef.is_real"]], "is_real() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.is_real"]], "is_sub() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.is_sub"]], "is_to_int() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.is_to_int"]], "is_to_real() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.is_to_real"]], "numerator() (cvc5.pythonic.ratnumref method)": [[89, "cvc5.pythonic.RatNumRef.numerator"]], "numerator_as_long() (cvc5.pythonic.ratnumref method)": [[89, "cvc5.pythonic.RatNumRef.numerator_as_long"]], "sort() (cvc5.pythonic.arithref method)": [[89, "cvc5.pythonic.ArithRef.sort"]], "subsort() (cvc5.pythonic.arithsortref method)": [[89, "cvc5.pythonic.ArithSortRef.subsort"]], "array() (in module cvc5.pythonic)": [[90, "cvc5.pythonic.Array"]], "arrayref (class in cvc5.pythonic)": [[90, "cvc5.pythonic.ArrayRef"]], "arraysort() (in module cvc5.pythonic)": [[90, "cvc5.pythonic.ArraySort"]], "arraysortref (class in cvc5.pythonic)": [[90, "cvc5.pythonic.ArraySortRef"]], "constarray() (in module cvc5.pythonic)": [[90, "cvc5.pythonic.ConstArray"]], "k() (in module cvc5.pythonic)": [[90, "cvc5.pythonic.K"]], "select() (in module cvc5.pythonic)": [[90, "cvc5.pythonic.Select"]], "store() (in module cvc5.pythonic)": [[90, "cvc5.pythonic.Store"]], "update() (in module cvc5.pythonic)": [[90, "cvc5.pythonic.Update"]], "__getitem__() (cvc5.pythonic.arrayref method)": [[90, "cvc5.pythonic.ArrayRef.__getitem__"]], "arg() (cvc5.pythonic.arrayref method)": [[90, "cvc5.pythonic.ArrayRef.arg"]], "default() (cvc5.pythonic.arrayref method)": [[90, "cvc5.pythonic.ArrayRef.default"]], "domain() (cvc5.pythonic.arrayref method)": [[90, "cvc5.pythonic.ArrayRef.domain"]], "domain() (cvc5.pythonic.arraysortref method)": [[90, "cvc5.pythonic.ArraySortRef.domain"]], "is_k() (in module cvc5.pythonic)": [[90, "cvc5.pythonic.is_K"]], "is_array() (in module cvc5.pythonic)": [[90, "cvc5.pythonic.is_array"]], "is_array_sort() (in module cvc5.pythonic)": [[90, "cvc5.pythonic.is_array_sort"]], "is_const_array() (in module cvc5.pythonic)": [[90, "cvc5.pythonic.is_const_array"]], "is_select() (in module cvc5.pythonic)": [[90, "cvc5.pythonic.is_select"]], "is_store() (in module cvc5.pythonic)": [[90, "cvc5.pythonic.is_store"]], "is_update() (in module cvc5.pythonic)": [[90, "cvc5.pythonic.is_update"]], "range() (cvc5.pythonic.arrayref method)": [[90, "cvc5.pythonic.ArrayRef.range"]], "range() (cvc5.pythonic.arraysortref method)": [[90, "cvc5.pythonic.ArraySortRef.range"]], "sort() (cvc5.pythonic.arrayref method)": [[90, "cvc5.pythonic.ArrayRef.sort"]], "bv2int() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.BV2Int"]], "bvadd() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.BVAdd"]], "bvand() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.BVAnd"]], "bvmult() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.BVMult"]], "bvneg() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.BVNeg"]], "bvnot() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.BVNot"]], "bvor() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.BVOr"]], "bvredand() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.BVRedAnd"]], "bvredor() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.BVRedOr"]], "bvsub() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.BVSub"]], "bvxor() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.BVXor"]], "bitvec() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.BitVec"]], "bitvecnumref (class in cvc5.pythonic)": [[91, "cvc5.pythonic.BitVecNumRef"]], "bitvecref (class in cvc5.pythonic)": [[91, "cvc5.pythonic.BitVecRef"]], "bitvecsort() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.BitVecSort"]], "bitvecsortref (class in cvc5.pythonic)": [[91, "cvc5.pythonic.BitVecSortRef"]], "bitvecval() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.BitVecVal"]], "bitvecs() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.BitVecs"]], "concat() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.Concat"]], "extract() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.Extract"]], "int2bv() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.Int2BV"]], "lshr() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.LShR"]], "repeatbitvec() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.RepeatBitVec"]], "rotateleft() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.RotateLeft"]], "rotateright() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.RotateRight"]], "sdiv() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.SDiv"]], "sge() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.SGE"]], "sgt() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.SGT"]], "sle() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.SLE"]], "slt() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.SLT"]], "smod() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.SMod"]], "srem() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.SRem"]], "signext() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.SignExt"]], "udiv() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.UDiv"]], "uge() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.UGE"]], "ugt() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.UGT"]], "ule() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.ULE"]], "ult() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.ULT"]], "urem() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.URem"]], "zeroext() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.ZeroExt"]], "__add__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__add__"]], "__and__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__and__"]], "__div__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__div__"]], "__ge__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__ge__"]], "__gt__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__gt__"]], "__invert__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__invert__"]], "__le__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__le__"]], "__lshift__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__lshift__"]], "__lt__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__lt__"]], "__mod__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__mod__"]], "__mul__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__mul__"]], "__neg__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__neg__"]], "__or__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__or__"]], "__pos__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__pos__"]], "__radd__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__radd__"]], "__rand__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__rand__"]], "__rdiv__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__rdiv__"]], "__rlshift__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__rlshift__"]], "__rmod__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__rmod__"]], "__rmul__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__rmul__"]], "__ror__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__ror__"]], "__rrshift__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__rrshift__"]], "__rshift__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__rshift__"]], "__rsub__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__rsub__"]], "__rtruediv__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__rtruediv__"]], "__rxor__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__rxor__"]], "__sub__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__sub__"]], "__truediv__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__truediv__"]], "__xor__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__xor__"]], "as_long() (cvc5.pythonic.bitvecnumref method)": [[91, "cvc5.pythonic.BitVecNumRef.as_long"]], "as_signed_long() (cvc5.pythonic.bitvecnumref method)": [[91, "cvc5.pythonic.BitVecNumRef.as_signed_long"]], "cast() (cvc5.pythonic.bitvecsortref method)": [[91, "cvc5.pythonic.BitVecSortRef.cast"]], "is_bv() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.is_bv"]], "is_bv_sort() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.is_bv_sort"]], "is_bv_value() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.is_bv_value"]], "size() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.size"]], "size() (cvc5.pythonic.bitvecsortref method)": [[91, "cvc5.pythonic.BitVecSortRef.size"]], "sort() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.sort"]], "subsort() (cvc5.pythonic.bitvecsortref method)": [[91, "cvc5.pythonic.BitVecSortRef.subsort"]], "and() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.And"]], "bool() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.Bool"]], "boolref (class in cvc5.pythonic)": [[92, "cvc5.pythonic.BoolRef"]], "boolsort() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.BoolSort"]], "boolsortref (class in cvc5.pythonic)": [[92, "cvc5.pythonic.BoolSortRef"]], "boolval() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.BoolVal"]], "boolvector() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.BoolVector"]], "bools() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.Bools"]], "const() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.Const"]], "consts() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.Consts"]], "distinct() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.Distinct"]], "exprref (class in cvc5.pythonic)": [[92, "cvc5.pythonic.ExprRef"]], "freshbool() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.FreshBool"]], "freshconst() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.FreshConst"]], "freshfunction() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.FreshFunction"]], "funcdeclref (class in cvc5.pythonic)": [[92, "cvc5.pythonic.FuncDeclRef"]], "function() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.Function"]], "if() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.If"]], "implies() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.Implies"]], "not() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.Not"]], "or() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.Or"]], "sortref (class in cvc5.pythonic)": [[92, "cvc5.pythonic.SortRef"]], "xor() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.Xor"]], "__bool__() (cvc5.pythonic.exprref method)": [[92, "cvc5.pythonic.ExprRef.__bool__"]], "__call__() (cvc5.pythonic.funcdeclref method)": [[92, "cvc5.pythonic.FuncDeclRef.__call__"]], "__eq__() (cvc5.pythonic.exprref method)": [[92, "cvc5.pythonic.ExprRef.__eq__"]], "__eq__() (cvc5.pythonic.sortref method)": [[92, "cvc5.pythonic.SortRef.__eq__"]], "__hash__() (cvc5.pythonic.exprref method)": [[92, "cvc5.pythonic.ExprRef.__hash__"]], "__hash__() (cvc5.pythonic.sortref method)": [[92, "cvc5.pythonic.SortRef.__hash__"]], "__init__() (cvc5.pythonic.exprref method)": [[92, "cvc5.pythonic.ExprRef.__init__"]], "__init__() (cvc5.pythonic.sortref method)": [[92, "cvc5.pythonic.SortRef.__init__"]], "__mul__() (cvc5.pythonic.boolref method)": [[92, "cvc5.pythonic.BoolRef.__mul__"]], "__ne__() (cvc5.pythonic.exprref method)": [[92, "cvc5.pythonic.ExprRef.__ne__"]], "__ne__() (cvc5.pythonic.sortref method)": [[92, "cvc5.pythonic.SortRef.__ne__"]], "__nonzero__() (cvc5.pythonic.exprref method)": [[92, "cvc5.pythonic.ExprRef.__nonzero__"]], "__repr__() (cvc5.pythonic.exprref method)": [[92, "cvc5.pythonic.ExprRef.__repr__"]], "__repr__() (cvc5.pythonic.sortref method)": [[92, "cvc5.pythonic.SortRef.__repr__"]], "__rmul__() (cvc5.pythonic.boolref method)": [[92, "cvc5.pythonic.BoolRef.__rmul__"]], "__str__() (cvc5.pythonic.exprref method)": [[92, "cvc5.pythonic.ExprRef.__str__"]], "__str__() (cvc5.pythonic.sortref method)": [[92, "cvc5.pythonic.SortRef.__str__"]], "__weakref__ (cvc5.pythonic.exprref attribute)": [[92, "cvc5.pythonic.ExprRef.__weakref__"]], "__weakref__ (cvc5.pythonic.sortref attribute)": [[92, "cvc5.pythonic.SortRef.__weakref__"]], "arg() (cvc5.pythonic.exprref method)": [[92, "cvc5.pythonic.ExprRef.arg"]], "arity() (cvc5.pythonic.funcdeclref method)": [[92, "cvc5.pythonic.FuncDeclRef.arity"]], "as_ast() (cvc5.pythonic.exprref method)": [[92, "cvc5.pythonic.ExprRef.as_ast"]], "as_ast() (cvc5.pythonic.sortref method)": [[92, "cvc5.pythonic.SortRef.as_ast"]], "cast() (cvc5.pythonic.boolsortref method)": [[92, "cvc5.pythonic.BoolSortRef.cast"]], "cast() (cvc5.pythonic.sortref method)": [[92, "cvc5.pythonic.SortRef.cast"]], "children() (cvc5.pythonic.exprref method)": [[92, "cvc5.pythonic.ExprRef.children"]], "decl() (cvc5.pythonic.exprref method)": [[92, "cvc5.pythonic.ExprRef.decl"]], "domain() (cvc5.pythonic.funcdeclref method)": [[92, "cvc5.pythonic.FuncDeclRef.domain"]], "eq() (cvc5.pythonic.exprref method)": [[92, "cvc5.pythonic.ExprRef.eq"]], "eq() (cvc5.pythonic.sortref method)": [[92, "cvc5.pythonic.SortRef.eq"]], "get_id() (cvc5.pythonic.exprref method)": [[92, "cvc5.pythonic.ExprRef.get_id"]], "hash() (cvc5.pythonic.exprref method)": [[92, "cvc5.pythonic.ExprRef.hash"]], "hash() (cvc5.pythonic.sortref method)": [[92, "cvc5.pythonic.SortRef.hash"]], "is_and() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.is_and"]], "is_bool() (cvc5.pythonic.boolsortref method)": [[92, "cvc5.pythonic.BoolSortRef.is_bool"]], "is_bool() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.is_bool"]], "is_bool_value() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.is_bool_value"]], "is_const() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.is_const"]], "is_distinct() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.is_distinct"]], "is_eq() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.is_eq"]], "is_false() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.is_false"]], "is_func_decl() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.is_func_decl"]], "is_implies() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.is_implies"]], "is_int() (cvc5.pythonic.boolsortref method)": [[92, "cvc5.pythonic.BoolSortRef.is_int"]], "is_int() (cvc5.pythonic.exprref method)": [[92, "cvc5.pythonic.ExprRef.is_int"]], "is_int() (cvc5.pythonic.sortref method)": [[92, "cvc5.pythonic.SortRef.is_int"]], "is_not() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.is_not"]], "is_or() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.is_or"]], "is_true() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.is_true"]], "kind() (cvc5.pythonic.exprref method)": [[92, "cvc5.pythonic.ExprRef.kind"]], "mk_not() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.mk_not"]], "name() (cvc5.pythonic.funcdeclref method)": [[92, "cvc5.pythonic.FuncDeclRef.name"]], "name() (cvc5.pythonic.sortref method)": [[92, "cvc5.pythonic.SortRef.name"]], "num_args() (cvc5.pythonic.exprref method)": [[92, "cvc5.pythonic.ExprRef.num_args"]], "range() (cvc5.pythonic.funcdeclref method)": [[92, "cvc5.pythonic.FuncDeclRef.range"]], "sexpr() (cvc5.pythonic.exprref method)": [[92, "cvc5.pythonic.ExprRef.sexpr"]], "sexpr() (cvc5.pythonic.sortref method)": [[92, "cvc5.pythonic.SortRef.sexpr"]], "sort() (cvc5.pythonic.boolref method)": [[92, "cvc5.pythonic.BoolRef.sort"]], "sort() (cvc5.pythonic.exprref method)": [[92, "cvc5.pythonic.ExprRef.sort"]], "subsort() (cvc5.pythonic.boolsortref method)": [[92, "cvc5.pythonic.BoolSortRef.subsort"]], "subsort() (cvc5.pythonic.sortref method)": [[92, "cvc5.pythonic.SortRef.subsort"]], "createdatatypes() (in module cvc5.pythonic)": [[93, "cvc5.pythonic.CreateDatatypes"]], "datatype (class in cvc5.pythonic)": [[93, "cvc5.pythonic.Datatype"]], "datatypeconstructorref (class in cvc5.pythonic)": [[93, "cvc5.pythonic.DatatypeConstructorRef"]], "datatyperecognizerref (class in cvc5.pythonic)": [[93, "cvc5.pythonic.DatatypeRecognizerRef"]], "datatyperef (class in cvc5.pythonic)": [[93, "cvc5.pythonic.DatatypeRef"]], "datatypeselectorref (class in cvc5.pythonic)": [[93, "cvc5.pythonic.DatatypeSelectorRef"]], "datatypesortref (class in cvc5.pythonic)": [[93, "cvc5.pythonic.DatatypeSortRef"]], "disjointsum() (in module cvc5.pythonic)": [[93, "cvc5.pythonic.DisjointSum"]], "tuplesort() (in module cvc5.pythonic)": [[93, "cvc5.pythonic.TupleSort"]], "__call__() (cvc5.pythonic.datatypeconstructorref method)": [[93, "cvc5.pythonic.DatatypeConstructorRef.__call__"]], "__call__() (cvc5.pythonic.datatyperecognizerref method)": [[93, "cvc5.pythonic.DatatypeRecognizerRef.__call__"]], "__call__() (cvc5.pythonic.datatypeselectorref method)": [[93, "cvc5.pythonic.DatatypeSelectorRef.__call__"]], "__init__() (cvc5.pythonic.datatype method)": [[93, "cvc5.pythonic.Datatype.__init__"]], "__init__() (cvc5.pythonic.datatypeconstructorref method)": [[93, "cvc5.pythonic.DatatypeConstructorRef.__init__"]], "__init__() (cvc5.pythonic.datatyperecognizerref method)": [[93, "cvc5.pythonic.DatatypeRecognizerRef.__init__"]], "__init__() (cvc5.pythonic.datatypeselectorref method)": [[93, "cvc5.pythonic.DatatypeSelectorRef.__init__"]], "__init__() (cvc5.pythonic.datatypesortref method)": [[93, "cvc5.pythonic.DatatypeSortRef.__init__"]], "__repr__() (cvc5.pythonic.datatype method)": [[93, "cvc5.pythonic.Datatype.__repr__"]], "__weakref__ (cvc5.pythonic.datatype attribute)": [[93, "cvc5.pythonic.Datatype.__weakref__"]], "accessor() (cvc5.pythonic.datatypesortref method)": [[93, "cvc5.pythonic.DatatypeSortRef.accessor"]], "arity() (cvc5.pythonic.datatypeconstructorref method)": [[93, "cvc5.pythonic.DatatypeConstructorRef.arity"]], "arity() (cvc5.pythonic.datatyperecognizerref method)": [[93, "cvc5.pythonic.DatatypeRecognizerRef.arity"]], "arity() (cvc5.pythonic.datatypeselectorref method)": [[93, "cvc5.pythonic.DatatypeSelectorRef.arity"]], "constructor() (cvc5.pythonic.datatypesortref method)": [[93, "cvc5.pythonic.DatatypeSortRef.constructor"]], "create() (cvc5.pythonic.datatype method)": [[93, "cvc5.pythonic.Datatype.create"]], "declare() (cvc5.pythonic.datatype method)": [[93, "cvc5.pythonic.Datatype.declare"]], "domain() (cvc5.pythonic.datatypeconstructorref method)": [[93, "cvc5.pythonic.DatatypeConstructorRef.domain"]], "domain() (cvc5.pythonic.datatyperecognizerref method)": [[93, "cvc5.pythonic.DatatypeRecognizerRef.domain"]], "domain() (cvc5.pythonic.datatypeselectorref method)": [[93, "cvc5.pythonic.DatatypeSelectorRef.domain"]], "num_constructors() (cvc5.pythonic.datatypesortref method)": [[93, "cvc5.pythonic.DatatypeSortRef.num_constructors"]], "range() (cvc5.pythonic.datatypeconstructorref method)": [[93, "cvc5.pythonic.DatatypeConstructorRef.range"]], "range() (cvc5.pythonic.datatyperecognizerref method)": [[93, "cvc5.pythonic.DatatypeRecognizerRef.range"]], "range() (cvc5.pythonic.datatypeselectorref method)": [[93, "cvc5.pythonic.DatatypeSelectorRef.range"]], "recognizer() (cvc5.pythonic.datatypesortref method)": [[93, "cvc5.pythonic.DatatypeSortRef.recognizer"]], "sort() (cvc5.pythonic.datatyperef method)": [[93, "cvc5.pythonic.DatatypeRef.sort"]], "ffadd() (in module cvc5.pythonic)": [[94, "cvc5.pythonic.FFAdd"]], "ffmult() (in module cvc5.pythonic)": [[94, "cvc5.pythonic.FFMult"]], "ffneg() (in module cvc5.pythonic)": [[94, "cvc5.pythonic.FFNeg"]], "ffsub() (in module cvc5.pythonic)": [[94, "cvc5.pythonic.FFSub"]], "finitefieldelem() (in module cvc5.pythonic)": [[94, "cvc5.pythonic.FiniteFieldElem"]], "finitefieldelems() (in module cvc5.pythonic)": [[94, "cvc5.pythonic.FiniteFieldElems"]], "finitefieldnumref (class in cvc5.pythonic)": [[94, "cvc5.pythonic.FiniteFieldNumRef"]], "finitefieldref (class in cvc5.pythonic)": [[94, "cvc5.pythonic.FiniteFieldRef"]], "finitefieldsort() (in module cvc5.pythonic)": [[94, "cvc5.pythonic.FiniteFieldSort"]], "finitefieldsortref (class in cvc5.pythonic)": [[94, "cvc5.pythonic.FiniteFieldSortRef"]], "finitefieldval() (in module cvc5.pythonic)": [[94, "cvc5.pythonic.FiniteFieldVal"]], "__add__() (cvc5.pythonic.finitefieldref method)": [[94, "cvc5.pythonic.FiniteFieldRef.__add__"]], "__mul__() (cvc5.pythonic.finitefieldref method)": [[94, "cvc5.pythonic.FiniteFieldRef.__mul__"]], "__neg__() (cvc5.pythonic.finitefieldref method)": [[94, "cvc5.pythonic.FiniteFieldRef.__neg__"]], "__pos__() (cvc5.pythonic.finitefieldref method)": [[94, "cvc5.pythonic.FiniteFieldRef.__pos__"]], "__radd__() (cvc5.pythonic.finitefieldref method)": [[94, "cvc5.pythonic.FiniteFieldRef.__radd__"]], "__rmul__() (cvc5.pythonic.finitefieldref method)": [[94, "cvc5.pythonic.FiniteFieldRef.__rmul__"]], "__rsub__() (cvc5.pythonic.finitefieldref method)": [[94, "cvc5.pythonic.FiniteFieldRef.__rsub__"]], "__sub__() (cvc5.pythonic.finitefieldref method)": [[94, "cvc5.pythonic.FiniteFieldRef.__sub__"]], "as_long() (cvc5.pythonic.finitefieldnumref method)": [[94, "cvc5.pythonic.FiniteFieldNumRef.as_long"]], "as_signed_long() (cvc5.pythonic.finitefieldnumref method)": [[94, "cvc5.pythonic.FiniteFieldNumRef.as_signed_long"]], "cast() (cvc5.pythonic.finitefieldsortref method)": [[94, "cvc5.pythonic.FiniteFieldSortRef.cast"]], "is_ff() (in module cvc5.pythonic)": [[94, "cvc5.pythonic.is_ff"]], "is_ff_sort() (in module cvc5.pythonic)": [[94, "cvc5.pythonic.is_ff_sort"]], "is_ff_value() (in module cvc5.pythonic)": [[94, "cvc5.pythonic.is_ff_value"]], "size() (cvc5.pythonic.finitefieldref method)": [[94, "cvc5.pythonic.FiniteFieldRef.size"]], "size() (cvc5.pythonic.finitefieldsortref method)": [[94, "cvc5.pythonic.FiniteFieldSortRef.size"]], "sort() (cvc5.pythonic.finitefieldref method)": [[94, "cvc5.pythonic.FiniteFieldRef.sort"]], "fp() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.FP"]], "fpnumref (class in cvc5.pythonic)": [[95, "cvc5.pythonic.FPNumRef"]], "fprmref (class in cvc5.pythonic)": [[95, "cvc5.pythonic.FPRMRef"]], "fpref (class in cvc5.pythonic)": [[95, "cvc5.pythonic.FPRef"]], "fpsort() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.FPSort"]], "fpsortref (class in cvc5.pythonic)": [[95, "cvc5.pythonic.FPSortRef"]], "fpval() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.FPVal"]], "fps() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.FPs"]], "float128() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.Float128"]], "float16() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.Float16"]], "float32() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.Float32"]], "float64() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.Float64"]], "floatdouble() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.FloatDouble"]], "floathalf() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.FloatHalf"]], "floatquadruple() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.FloatQuadruple"]], "floatsingle() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.FloatSingle"]], "rna() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.RNA"]], "rne() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.RNE"]], "rtn() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.RTN"]], "rtp() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.RTP"]], "rtz() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.RTZ"]], "roundnearesttiestoaway() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.RoundNearestTiesToAway"]], "roundnearesttiestoeven() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.RoundNearestTiesToEven"]], "roundtowardnegative() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.RoundTowardNegative"]], "roundtowardpositive() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.RoundTowardPositive"]], "roundtowardzero() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.RoundTowardZero"]], "__add__() (cvc5.pythonic.fpref method)": [[95, "cvc5.pythonic.FPRef.__add__"]], "__div__() (cvc5.pythonic.fpref method)": [[95, "cvc5.pythonic.FPRef.__div__"]], "__ge__() (cvc5.pythonic.fpref method)": [[95, "cvc5.pythonic.FPRef.__ge__"]], "__gt__() (cvc5.pythonic.fpref method)": [[95, "cvc5.pythonic.FPRef.__gt__"]], "__le__() (cvc5.pythonic.fpref method)": [[95, "cvc5.pythonic.FPRef.__le__"]], "__lt__() (cvc5.pythonic.fpref method)": [[95, "cvc5.pythonic.FPRef.__lt__"]], "__mod__() (cvc5.pythonic.fpref method)": [[95, "cvc5.pythonic.FPRef.__mod__"]], "__mul__() (cvc5.pythonic.fpref method)": [[95, "cvc5.pythonic.FPRef.__mul__"]], "__neg__() (cvc5.pythonic.fpref method)": [[95, "cvc5.pythonic.FPRef.__neg__"]], "__pos__() (cvc5.pythonic.fpref method)": [[95, "cvc5.pythonic.FPRef.__pos__"]], "__radd__() (cvc5.pythonic.fpref method)": [[95, "cvc5.pythonic.FPRef.__radd__"]], "__rdiv__() (cvc5.pythonic.fpref method)": [[95, "cvc5.pythonic.FPRef.__rdiv__"]], "__rmod__() (cvc5.pythonic.fpref method)": [[95, "cvc5.pythonic.FPRef.__rmod__"]], "__rmul__() (cvc5.pythonic.fpref method)": [[95, "cvc5.pythonic.FPRef.__rmul__"]], "__rsub__() (cvc5.pythonic.fpref method)": [[95, "cvc5.pythonic.FPRef.__rsub__"]], "__rtruediv__() (cvc5.pythonic.fpref method)": [[95, "cvc5.pythonic.FPRef.__rtruediv__"]], "__sub__() (cvc5.pythonic.fpref method)": [[95, "cvc5.pythonic.FPRef.__sub__"]], "__truediv__() (cvc5.pythonic.fpref method)": [[95, "cvc5.pythonic.FPRef.__truediv__"]], "as_string() (cvc5.pythonic.fpnumref method)": [[95, "cvc5.pythonic.FPNumRef.as_string"]], "as_string() (cvc5.pythonic.fprmref method)": [[95, "cvc5.pythonic.FPRMRef.as_string"]], "as_string() (cvc5.pythonic.fpref method)": [[95, "cvc5.pythonic.FPRef.as_string"]], "cast() (cvc5.pythonic.fpsortref method)": [[95, "cvc5.pythonic.FPSortRef.cast"]], "ebits() (cvc5.pythonic.fpref method)": [[95, "cvc5.pythonic.FPRef.ebits"]], "ebits() (cvc5.pythonic.fpsortref method)": [[95, "cvc5.pythonic.FPSortRef.ebits"]], "exponent() (cvc5.pythonic.fpnumref method)": [[95, "cvc5.pythonic.FPNumRef.exponent"]], "exponent_as_long() (cvc5.pythonic.fpnumref method)": [[95, "cvc5.pythonic.FPNumRef.exponent_as_long"]], "fpabs() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpAbs"]], "fpadd() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpAdd"]], "fpbvtofp() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpBVToFP"]], "fpdiv() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpDiv"]], "fpeq() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpEQ"]], "fpfma() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpFMA"]], "fpfp() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpFP"]], "fpfptofp() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpFPToFP"]], "fpgeq() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpGEQ"]], "fpgt() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpGT"]], "fpinfinity() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpInfinity"]], "fpisinf() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpIsInf"]], "fpisnan() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpIsNaN"]], "fpisnegative() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpIsNegative"]], "fpisnormal() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpIsNormal"]], "fpispositive() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpIsPositive"]], "fpissubnormal() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpIsSubnormal"]], "fpiszero() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpIsZero"]], "fpleq() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpLEQ"]], "fplt() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpLT"]], "fpmax() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpMax"]], "fpmin() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpMin"]], "fpminusinfinity() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpMinusInfinity"]], "fpminuszero() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpMinusZero"]], "fpmul() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpMul"]], "fpneq() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpNEQ"]], "fpnan() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpNaN"]], "fpneg() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpNeg"]], "fpplusinfinity() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpPlusInfinity"]], "fppluszero() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpPlusZero"]], "fprealtofp() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpRealToFP"]], "fprem() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpRem"]], "fproundtointegral() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpRoundToIntegral"]], "fpsignedtofp() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpSignedToFP"]], "fpsqrt() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpSqrt"]], "fpsub() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpSub"]], "fptofp() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpToFP"]], "fptofpunsigned() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpToFPUnsigned"]], "fptoreal() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpToReal"]], "fptosbv() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpToSBV"]], "fptoubv() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpToUBV"]], "fpunsignedtofp() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpUnsignedToFP"]], "fpzero() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpZero"]], "get_default_fp_sort() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.get_default_fp_sort"]], "get_default_rounding_mode() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.get_default_rounding_mode"]], "isinf() (cvc5.pythonic.fpnumref method)": [[95, "cvc5.pythonic.FPNumRef.isInf"]], "isnan() (cvc5.pythonic.fpnumref method)": [[95, "cvc5.pythonic.FPNumRef.isNaN"]], "isnegative() (cvc5.pythonic.fpnumref method)": [[95, "cvc5.pythonic.FPNumRef.isNegative"]], "isnormal() (cvc5.pythonic.fpnumref method)": [[95, "cvc5.pythonic.FPNumRef.isNormal"]], "ispositive() (cvc5.pythonic.fpnumref method)": [[95, "cvc5.pythonic.FPNumRef.isPositive"]], "issubnormal() (cvc5.pythonic.fpnumref method)": [[95, "cvc5.pythonic.FPNumRef.isSubnormal"]], "iszero() (cvc5.pythonic.fpnumref method)": [[95, "cvc5.pythonic.FPNumRef.isZero"]], "is_fp() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.is_fp"]], "is_fp_sort() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.is_fp_sort"]], "is_fp_value() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.is_fp_value"]], "is_fprm() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.is_fprm"]], "is_fprm_sort() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.is_fprm_sort"]], "is_fprm_value() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.is_fprm_value"]], "sbits() (cvc5.pythonic.fpref method)": [[95, "cvc5.pythonic.FPRef.sbits"]], "sbits() (cvc5.pythonic.fpsortref method)": [[95, "cvc5.pythonic.FPSortRef.sbits"]], "set_default_fp_sort() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.set_default_fp_sort"]], "set_default_rounding_mode() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.set_default_rounding_mode"]], "sign() (cvc5.pythonic.fpnumref method)": [[95, "cvc5.pythonic.FPNumRef.sign"]], "significand() (cvc5.pythonic.fpnumref method)": [[95, "cvc5.pythonic.FPNumRef.significand"]], "significand_as_long() (cvc5.pythonic.fpnumref method)": [[95, "cvc5.pythonic.FPNumRef.significand_as_long"]], "sort() (cvc5.pythonic.fpref method)": [[95, "cvc5.pythonic.FPRef.sort"]], "smtexception (class in cvc5.pythonic)": [[96, "cvc5.pythonic.SMTException"]], "__init__() (cvc5.pythonic.smtexception method)": [[96, "cvc5.pythonic.SMTException.__init__"]], "__str__() (cvc5.pythonic.smtexception method)": [[96, "cvc5.pythonic.SMTException.__str__"]], "__weakref__ (cvc5.pythonic.smtexception attribute)": [[96, "cvc5.pythonic.SMTException.__weakref__"]], "is_app() (in module cvc5.pythonic)": [[96, "cvc5.pythonic.is_app"]], "is_app_of() (in module cvc5.pythonic)": [[96, "cvc5.pythonic.is_app_of"]], "is_expr() (in module cvc5.pythonic)": [[96, "cvc5.pythonic.is_expr"]], "is_sort() (in module cvc5.pythonic)": [[96, "cvc5.pythonic.is_sort"]], "exists() (in module cvc5.pythonic)": [[98, "cvc5.pythonic.Exists"]], "forall() (in module cvc5.pythonic)": [[98, "cvc5.pythonic.ForAll"]], "lambda() (in module cvc5.pythonic)": [[98, "cvc5.pythonic.Lambda"]], "quantifierref (class in cvc5.pythonic)": [[98, "cvc5.pythonic.QuantifierRef"]], "as_ast() (cvc5.pythonic.quantifierref method)": [[98, "cvc5.pythonic.QuantifierRef.as_ast"]], "body() (cvc5.pythonic.quantifierref method)": [[98, "cvc5.pythonic.QuantifierRef.body"]], "children() (cvc5.pythonic.quantifierref method)": [[98, "cvc5.pythonic.QuantifierRef.children"]], "is_exists() (cvc5.pythonic.quantifierref method)": [[98, "cvc5.pythonic.QuantifierRef.is_exists"]], "is_forall() (cvc5.pythonic.quantifierref method)": [[98, "cvc5.pythonic.QuantifierRef.is_forall"]], "is_lambda() (cvc5.pythonic.quantifierref method)": [[98, "cvc5.pythonic.QuantifierRef.is_lambda"]], "is_quantifier() (in module cvc5.pythonic)": [[98, "cvc5.pythonic.is_quantifier"]], "is_var() (in module cvc5.pythonic)": [[98, "cvc5.pythonic.is_var"]], "num_vars() (cvc5.pythonic.quantifierref method)": [[98, "cvc5.pythonic.QuantifierRef.num_vars"]], "sort() (cvc5.pythonic.quantifierref method)": [[98, "cvc5.pythonic.QuantifierRef.sort"]], "var_name() (cvc5.pythonic.quantifierref method)": [[98, "cvc5.pythonic.QuantifierRef.var_name"]], "var_sort() (cvc5.pythonic.quantifierref method)": [[98, "cvc5.pythonic.QuantifierRef.var_sort"]], "empty() (in module cvc5.pythonic)": [[100, "cvc5.pythonic.Empty"]], "length() (in module cvc5.pythonic)": [[100, "cvc5.pythonic.Length"], [103, "cvc5.pythonic.Length"]], "seqref (class in cvc5.pythonic)": [[100, "cvc5.pythonic.SeqRef"]], "seqsort() (in module cvc5.pythonic)": [[100, "cvc5.pythonic.SeqSort"]], "seqsortref (class in cvc5.pythonic)": [[100, "cvc5.pythonic.SeqSortRef"]], "sequpdate() (in module cvc5.pythonic)": [[100, "cvc5.pythonic.SeqUpdate"]], "subseq() (in module cvc5.pythonic)": [[100, "cvc5.pythonic.SubSeq"]], "unit() (in module cvc5.pythonic)": [[100, "cvc5.pythonic.Unit"]], "__add__() (cvc5.pythonic.seqref method)": [[100, "cvc5.pythonic.SeqRef.__add__"]], "__getitem__() (cvc5.pythonic.seqref method)": [[100, "cvc5.pythonic.SeqRef.__getitem__"]], "as_string() (cvc5.pythonic.seqref method)": [[100, "cvc5.pythonic.SeqRef.as_string"]], "at() (cvc5.pythonic.seqref method)": [[100, "cvc5.pythonic.SeqRef.at"]], "elem_sort() (cvc5.pythonic.seqsortref method)": [[100, "cvc5.pythonic.SeqSortRef.elem_sort"]], "is_string() (cvc5.pythonic.seqsortref method)": [[100, "cvc5.pythonic.SeqSortRef.is_string"]], "is_string_value() (cvc5.pythonic.seqref method)": [[100, "cvc5.pythonic.SeqRef.is_string_value"]], "emptyset() (in module cvc5.pythonic)": [[101, "cvc5.pythonic.EmptySet"]], "fullset() (in module cvc5.pythonic)": [[101, "cvc5.pythonic.FullSet"]], "ismember() (in module cvc5.pythonic)": [[101, "cvc5.pythonic.IsMember"]], "issubset() (in module cvc5.pythonic)": [[101, "cvc5.pythonic.IsSubset"]], "set() (in module cvc5.pythonic)": [[101, "cvc5.pythonic.Set"]], "setadd() (in module cvc5.pythonic)": [[101, "cvc5.pythonic.SetAdd"]], "setcomplement() (in module cvc5.pythonic)": [[101, "cvc5.pythonic.SetComplement"]], "setdel() (in module cvc5.pythonic)": [[101, "cvc5.pythonic.SetDel"]], "setdifference() (in module cvc5.pythonic)": [[101, "cvc5.pythonic.SetDifference"]], "setintersect() (in module cvc5.pythonic)": [[101, "cvc5.pythonic.SetIntersect"]], "setminus() (in module cvc5.pythonic)": [[101, "cvc5.pythonic.SetMinus"]], "setref (class in cvc5.pythonic)": [[101, "cvc5.pythonic.SetRef"]], "setsort() (in module cvc5.pythonic)": [[101, "cvc5.pythonic.SetSort"]], "setsortref (class in cvc5.pythonic)": [[101, "cvc5.pythonic.SetSortRef"]], "setunion() (in module cvc5.pythonic)": [[101, "cvc5.pythonic.SetUnion"]], "singleton() (in module cvc5.pythonic)": [[101, "cvc5.pythonic.Singleton"]], "__and__() (cvc5.pythonic.setref method)": [[101, "cvc5.pythonic.SetRef.__and__"]], "__getitem__() (cvc5.pythonic.setref method)": [[101, "cvc5.pythonic.SetRef.__getitem__"]], "__or__() (cvc5.pythonic.setref method)": [[101, "cvc5.pythonic.SetRef.__or__"]], "default() (cvc5.pythonic.setref method)": [[101, "cvc5.pythonic.SetRef.default"]], "domain() (cvc5.pythonic.setref method)": [[101, "cvc5.pythonic.SetRef.domain"]], "domain() (cvc5.pythonic.setsortref method)": [[101, "cvc5.pythonic.SetSortRef.domain"]], "range() (cvc5.pythonic.setref method)": [[101, "cvc5.pythonic.SetRef.range"]], "range() (cvc5.pythonic.setsortref method)": [[101, "cvc5.pythonic.SetSortRef.range"]], "sort() (cvc5.pythonic.setref method)": [[101, "cvc5.pythonic.SetRef.sort"]], "checksatresult (class in cvc5.pythonic)": [[102, "cvc5.pythonic.CheckSatResult"]], "modelref (class in cvc5.pythonic)": [[102, "cvc5.pythonic.ModelRef"]], "product() (in module cvc5.pythonic)": [[102, "cvc5.pythonic.Product"]], "simplesolver() (in module cvc5.pythonic)": [[102, "cvc5.pythonic.SimpleSolver"]], "solver (class in cvc5.pythonic)": [[102, "cvc5.pythonic.Solver"]], "solverfor() (in module cvc5.pythonic)": [[102, "cvc5.pythonic.SolverFor"]], "sum() (in module cvc5.pythonic)": [[102, "cvc5.pythonic.Sum"]], "__eq__() (cvc5.pythonic.checksatresult method)": [[102, "cvc5.pythonic.CheckSatResult.__eq__"]], "__getitem__() (cvc5.pythonic.modelref method)": [[102, "cvc5.pythonic.ModelRef.__getitem__"]], "__hash__ (cvc5.pythonic.checksatresult attribute)": [[102, "cvc5.pythonic.CheckSatResult.__hash__"]], "__iadd__() (cvc5.pythonic.solver method)": [[102, "cvc5.pythonic.Solver.__iadd__"]], "__init__() (cvc5.pythonic.checksatresult method)": [[102, "cvc5.pythonic.CheckSatResult.__init__"]], "__init__() (cvc5.pythonic.modelref method)": [[102, "cvc5.pythonic.ModelRef.__init__"]], "__init__() (cvc5.pythonic.solver method)": [[102, "cvc5.pythonic.Solver.__init__"]], "__len__() (cvc5.pythonic.modelref method)": [[102, "cvc5.pythonic.ModelRef.__len__"]], "__ne__() (cvc5.pythonic.checksatresult method)": [[102, "cvc5.pythonic.CheckSatResult.__ne__"]], "__repr__() (cvc5.pythonic.checksatresult method)": [[102, "cvc5.pythonic.CheckSatResult.__repr__"]], "__repr__() (cvc5.pythonic.modelref method)": [[102, "cvc5.pythonic.ModelRef.__repr__"]], "__repr__() (cvc5.pythonic.solver method)": [[102, "cvc5.pythonic.Solver.__repr__"]], "__weakref__ (cvc5.pythonic.checksatresult attribute)": [[102, "cvc5.pythonic.CheckSatResult.__weakref__"]], "__weakref__ (cvc5.pythonic.modelref attribute)": [[102, "cvc5.pythonic.ModelRef.__weakref__"]], "__weakref__ (cvc5.pythonic.solver attribute)": [[102, "cvc5.pythonic.Solver.__weakref__"]], "add() (cvc5.pythonic.solver method)": [[102, "cvc5.pythonic.Solver.add"]], "append() (cvc5.pythonic.solver method)": [[102, "cvc5.pythonic.Solver.append"]], "assert_exprs() (cvc5.pythonic.solver method)": [[102, "cvc5.pythonic.Solver.assert_exprs"]], "assertions() (cvc5.pythonic.solver method)": [[102, "cvc5.pythonic.Solver.assertions"]], "check() (cvc5.pythonic.solver method)": [[102, "cvc5.pythonic.Solver.check"]], "cvc5.pythonic.sat (built-in variable)": [[102, "cvc5.pythonic.sat"]], "cvc5.pythonic.unknown (built-in variable)": [[102, "cvc5.pythonic.unknown"]], "cvc5.pythonic.unsat (built-in variable)": [[102, "cvc5.pythonic.unsat"]], "decls() (cvc5.pythonic.modelref method)": [[102, "cvc5.pythonic.ModelRef.decls"]], "eval() (cvc5.pythonic.modelref method)": [[102, "cvc5.pythonic.ModelRef.eval"]], "evaluate() (cvc5.pythonic.modelref method)": [[102, "cvc5.pythonic.ModelRef.evaluate"]], "evaluate() (in module cvc5.pythonic)": [[102, "cvc5.pythonic.evaluate"]], "getoption() (cvc5.pythonic.solver method)": [[102, "cvc5.pythonic.Solver.getOption"]], "getoptioninfo() (cvc5.pythonic.solver method)": [[102, "cvc5.pythonic.Solver.getOptionInfo"]], "getoptionnames() (cvc5.pythonic.solver method)": [[102, "cvc5.pythonic.Solver.getOptionNames"]], "initfromlogic() (cvc5.pythonic.solver method)": [[102, "cvc5.pythonic.Solver.initFromLogic"]], "insert() (cvc5.pythonic.solver method)": [[102, "cvc5.pythonic.Solver.insert"]], "is_tautology() (in module cvc5.pythonic)": [[102, "cvc5.pythonic.is_tautology"]], "model() (cvc5.pythonic.solver method)": [[102, "cvc5.pythonic.Solver.model"]], "num_scopes() (cvc5.pythonic.solver method)": [[102, "cvc5.pythonic.Solver.num_scopes"]], "pop() (cvc5.pythonic.solver method)": [[102, "cvc5.pythonic.Solver.pop"]], "proof() (cvc5.pythonic.solver method)": [[102, "cvc5.pythonic.Solver.proof"]], "prove() (in module cvc5.pythonic)": [[102, "cvc5.pythonic.prove"]], "push() (cvc5.pythonic.solver method)": [[102, "cvc5.pythonic.Solver.push"]], "reason_unknown() (cvc5.pythonic.solver method)": [[102, "cvc5.pythonic.Solver.reason_unknown"]], "reset() (cvc5.pythonic.solver method)": [[102, "cvc5.pythonic.Solver.reset"]], "resetassertions() (cvc5.pythonic.solver method)": [[102, "cvc5.pythonic.Solver.resetAssertions"]], "set() (cvc5.pythonic.solver method)": [[102, "cvc5.pythonic.Solver.set"]], "setoption() (cvc5.pythonic.solver method)": [[102, "cvc5.pythonic.Solver.setOption"]], "sexpr() (cvc5.pythonic.solver method)": [[102, "cvc5.pythonic.Solver.sexpr"]], "simplify() (in module cvc5.pythonic)": [[102, "cvc5.pythonic.simplify"]], "solve() (in module cvc5.pythonic)": [[102, "cvc5.pythonic.solve"]], "solve_using() (in module cvc5.pythonic)": [[102, "cvc5.pythonic.solve_using"]], "statistics() (cvc5.pythonic.solver method)": [[102, "cvc5.pythonic.Solver.statistics"]], "substitute() (in module cvc5.pythonic)": [[102, "cvc5.pythonic.substitute"]], "unsat_core() (cvc5.pythonic.solver method)": [[102, "cvc5.pythonic.Solver.unsat_core"]], "vars() (cvc5.pythonic.modelref method)": [[102, "cvc5.pythonic.ModelRef.vars"]], "allchar() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.AllChar"]], "complement() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.Complement"]], "contains() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.Contains"]], "diff() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.Diff"]], "full() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.Full"]], "inre() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.InRe"]], "indexof() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.IndexOf"]], "inttostr() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.IntToStr"]], "intersect() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.Intersect"]], "loop() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.Loop"]], "option() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.Option"]], "plus() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.Plus"]], "prefixof() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.PrefixOf"]], "range() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.Range"]], "re() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.Re"]], "replace() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.Replace"]], "star() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.Star"]], "strfromcode() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.StrFromCode"]], "strtocode() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.StrToCode"]], "strtoint() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.StrToInt"]], "string() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.String"]], "stringref (class in cvc5.pythonic)": [[103, "cvc5.pythonic.StringRef"]], "stringsort() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.StringSort"]], "stringsortref (class in cvc5.pythonic)": [[103, "cvc5.pythonic.StringSortRef"]], "stringval() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.StringVal"]], "strings() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.Strings"]], "substring() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.SubString"]], "suffixof() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.SuffixOf"]], "union() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.Union"]], "__ge__() (cvc5.pythonic.stringref method)": [[103, "cvc5.pythonic.StringRef.__ge__"]], "__getitem__() (cvc5.pythonic.stringref method)": [[103, "cvc5.pythonic.StringRef.__getitem__"]], "__gt__() (cvc5.pythonic.stringref method)": [[103, "cvc5.pythonic.StringRef.__gt__"]], "__le__() (cvc5.pythonic.stringref method)": [[103, "cvc5.pythonic.StringRef.__le__"]], "__lt__() (cvc5.pythonic.stringref method)": [[103, "cvc5.pythonic.StringRef.__lt__"]], "at() (cvc5.pythonic.stringref method)": [[103, "cvc5.pythonic.StringRef.at"]], "cast() (cvc5.pythonic.stringsortref method)": [[103, "cvc5.pythonic.StringSortRef.cast"]], "skolemid (c++ enum)": [[140, "_CPPv4N4cvc58SkolemIdE"]], "skolemid::arith_vts_delta (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId15ARITH_VTS_DELTAE"]], "skolemid::arith_vts_delta_free (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId20ARITH_VTS_DELTA_FREEE"]], "skolemid::arith_vts_infinity (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId18ARITH_VTS_INFINITYE"]], "skolemid::arith_vts_infinity_free (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId23ARITH_VTS_INFINITY_FREEE"]], "skolemid::array_deq_diff (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId14ARRAY_DEQ_DIFFE"]], "skolemid::bags_card_combine (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId17BAGS_CARD_COMBINEE"]], "skolemid::bags_choose (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId11BAGS_CHOOSEE"]], "skolemid::bags_deq_diff (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId13BAGS_DEQ_DIFFE"]], "skolemid::bags_distinct_elements (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId22BAGS_DISTINCT_ELEMENTSE"]], "skolemid::bags_distinct_elements_size (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId27BAGS_DISTINCT_ELEMENTS_SIZEE"]], "skolemid::bags_distinct_elements_union_disjoint (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId37BAGS_DISTINCT_ELEMENTS_UNION_DISJOINTE"]], "skolemid::bags_fold_card (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId14BAGS_FOLD_CARDE"]], "skolemid::bags_fold_combine (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId17BAGS_FOLD_COMBINEE"]], "skolemid::bags_fold_elements (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId18BAGS_FOLD_ELEMENTSE"]], "skolemid::bags_fold_union_disjoint (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId24BAGS_FOLD_UNION_DISJOINTE"]], "skolemid::bags_map_index (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId14BAGS_MAP_INDEXE"]], "skolemid::bags_map_preimage_injective (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId27BAGS_MAP_PREIMAGE_INJECTIVEE"]], "skolemid::bags_map_sum (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId12BAGS_MAP_SUME"]], "skolemid::bv_empty (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId8BV_EMPTYE"]], "skolemid::bv_to_int_uf (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId12BV_TO_INT_UFE"]], "skolemid::div_by_zero (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId11DIV_BY_ZEROE"]], "skolemid::fp_max_zero (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId11FP_MAX_ZEROE"]], "skolemid::fp_min_zero (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId11FP_MIN_ZEROE"]], "skolemid::fp_to_real (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId10FP_TO_REALE"]], "skolemid::fp_to_sbv (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId9FP_TO_SBVE"]], "skolemid::fp_to_ubv (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId9FP_TO_UBVE"]], "skolemid::ground_term (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId11GROUND_TERME"]], "skolemid::ho_deq_diff (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId11HO_DEQ_DIFFE"]], "skolemid::internal (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId8INTERNALE"]], "skolemid::int_div_by_zero (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId15INT_DIV_BY_ZEROE"]], "skolemid::mod_by_zero (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId11MOD_BY_ZEROE"]], "skolemid::none (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId4NONEE"]], "skolemid::purify (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId6PURIFYE"]], "skolemid::quantifiers_skolemize (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId21QUANTIFIERS_SKOLEMIZEE"]], "skolemid::relations_group_part (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId20RELATIONS_GROUP_PARTE"]], "skolemid::relations_group_part_element (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId28RELATIONS_GROUP_PART_ELEMENTE"]], "skolemid::re_first_match (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId14RE_FIRST_MATCHE"]], "skolemid::re_first_match_post (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId19RE_FIRST_MATCH_POSTE"]], "skolemid::re_first_match_pre (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId18RE_FIRST_MATCH_PREE"]], "skolemid::re_unfold_pos_component (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId23RE_UNFOLD_POS_COMPONENTE"]], "skolemid::sets_choose (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId11SETS_CHOOSEE"]], "skolemid::sets_deq_diff (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId13SETS_DEQ_DIFFE"]], "skolemid::sets_fold_card (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId14SETS_FOLD_CARDE"]], "skolemid::sets_fold_combine (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId17SETS_FOLD_COMBINEE"]], "skolemid::sets_fold_elements (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId18SETS_FOLD_ELEMENTSE"]], "skolemid::sets_fold_union (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId15SETS_FOLD_UNIONE"]], "skolemid::sets_map_down_element (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId21SETS_MAP_DOWN_ELEMENTE"]], "skolemid::shared_selector (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId15SHARED_SELECTORE"]], "skolemid::strings_deq_diff (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId16STRINGS_DEQ_DIFFE"]], "skolemid::strings_itos_result (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId19STRINGS_ITOS_RESULTE"]], "skolemid::strings_num_occur (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId17STRINGS_NUM_OCCURE"]], "skolemid::strings_num_occur_re (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId20STRINGS_NUM_OCCUR_REE"]], "skolemid::strings_occur_index (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId19STRINGS_OCCUR_INDEXE"]], "skolemid::strings_occur_index_re (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId22STRINGS_OCCUR_INDEX_REE"]], "skolemid::strings_occur_len_re (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId20STRINGS_OCCUR_LEN_REE"]], "skolemid::strings_replace_all_result (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId26STRINGS_REPLACE_ALL_RESULTE"]], "skolemid::strings_stoi_non_digit (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId22STRINGS_STOI_NON_DIGITE"]], "skolemid::strings_stoi_result (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId19STRINGS_STOI_RESULTE"]], "skolemid::tables_group_part (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId17TABLES_GROUP_PARTE"]], "skolemid::tables_group_part_element (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId25TABLES_GROUP_PART_ELEMENTE"]], "skolemid::transcendental_purify (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId21TRANSCENDENTAL_PURIFYE"]], "skolemid::transcendental_purify_arg (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId25TRANSCENDENTAL_PURIFY_ARGE"]], "skolemid::transcendental_sine_phase_shift (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId31TRANSCENDENTAL_SINE_PHASE_SHIFTE"]]}}) \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/skolem-ids.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/skolem-ids.html new file mode 100644 index 0000000000..ff2d008781 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/skolem-ids.html @@ -0,0 +1,7248 @@ + + + + + + + + + + + Skolem Identifiers — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    +
      +
    • + + +
    • + +
    • +
    • +
    +
    +
    +
    +
    +
    +

    + Skolem Identifiers + +  + +

    +
    +
    + + + + + + + + + enum + + + + + + + class + + + + + + + + cvc5 + + + + + :: + + + + + + + SkolemId + + + + +  + +
    +
    +
    +

    + The kind of a cvc5 skolem. A skolem is a (family of) internal functions or constants that are introduced by cvc5. These symbols are treated as uninterpreted internally. We track their definition for the purposes of formal bookkeeping for the user of features like proofs, lemma exporting, simplification and so on. +

    +

    + A skolem has an identifier and a set of “skolem indices”. The skolem indices are + + not + + children of the skolem function, but rather should be seen as the way of distinguishing skolems from the same family. +

    +

    + For example, the family of “array diff” skolems + + + ARRAY_DEQ_DIFF + + + witness the disequality between two arrays, which are its skolem indices. +

    +

    + Say that skolem k witnesses the disequality between two arrays A and B of type + + + (Array + + + Int + + + Int) + + + . Then, k is a term whose skolem identifier is + + + ARRAY_DEQ_DIFF + + + , skolem indices are A and B, and whose type is + + + Int + + + . +

    +

    + Note the type of k is not + + + (-> + + + (Array + + + Int + + + Int) + + + (Array + + + Int + + + Int) + + + Int) + + + . Intuitively, this is due to the fact that cvc5 does not reason about array diff skolem as a function symbol. Furthermore, the array diff skolem that witnesses the disequality of arrays C and D is a separate skolem function k2 from this family, also of type + + + Int + + + , where internally k2 has no relation to k apart from having the same skolem identifier. +

    +

    + In contrast, cvc5 reasons about division-by-zero using a single skolem function whose identifier is + + + DIV_BY_ZERO + + + . This means its skolem indices are empty and the skolem has a functional type + + + (-> + + + Real + + + Real) + + + . +

    +

    + + Values: + +

    +
    +
    + + + + + + + + + enumerator + + + + + + + + INTERNAL + + + + +  + +
    +
    +
    +

    + The identifier of the skolem is not exported. These skolems should not appear in any user-level API calls. +

    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + PURIFY + + + + +  + +
    +
    +
    +

    + The purification skolem for a term. This is a variable that is semantically equivalent to the indexed term t. +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + The term t that this skolem purifies. +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : The sort of t. +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + GROUND_TERM + + + + +  + +
    +
    +
    +

    + An arbitrary ground term of a given sort. +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + A term that represents the sort of the term. +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : The sort given by the index. +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARRAY_DEQ_DIFF + + + + +  + +
    +
    +
    +

    + The array diff skolem, which is the witness k for the inference + + + (=> + + + (not + + + (= + + + A + + + B)) + + + (not + + + (= + + + (select + + + A + + + k) + + + (select + + + B + + + k)))) + + + . +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + The first array of sort + + + (Array + + + T1 + + + T2) + + + . +

        +
      • +
      • +

        + + + 2: + + + The second array of sort + + + (Array + + + T1 + + + T2) + + + . +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : + + + T1 + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_EMPTY + + + + +  + +
    +
    +
    +

    + The empty bitvector. +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 0 + + +

      +
    • +
    • +

      + Type: + + + (_ + + + BitVec + + + 0) + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + DIV_BY_ZERO + + + + +  + +
    +
    +
    +

    + The function for division by zero. This is semantically equivalent to the SMT-LIB term + + + (lambda + + + ((x + + + Real)) + + + (/ + + + x + + + 0.0)) + + + . +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 0 + + +

      +
    • +
    • +

      + + + Sort + + + : + + + (-> + + + Real + + + Real) + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + INT_DIV_BY_ZERO + + + + +  + +
    +
    +
    +

    + The function for integer division by zero. This is semantically equivalent to the SMT-LIB term + + + (lambda + + + ((x + + + Int)) + + + (div + + + x + + + 0)) + + + . +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 0 + + +

      +
    • +
    • +

      + + + Sort + + + : + + + (-> + + + Int + + + Int) + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + MOD_BY_ZERO + + + + +  + +
    +
    +
    +

    + The function for integer modulus by zero. This is semantically equivalent to the SMT-LIB term + + + (lambda + + + ((x + + + Int)) + + + (mod + + + x + + + 0)) + + + . +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 0 + + +

      +
    • +
    • +

      + + + Sort + + + : + + + (-> + + + Int + + + Int) + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + TRANSCENDENTAL_PURIFY + + + + +  + +
    +
    +
    +

    + A function introduced to eliminate extended trancendental functions. Transcendental functions like sqrt, arccos, arcsin, etc. are replaced during processing with uninterpreted functions that are unique to each function. +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + A lambda corresponding to the function, e.g., + + + (lambda + + + ((x + + + Real)) + + + (sqrt + + + x)) + + + . +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : + + + (-> + + + Real + + + Real) + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + TRANSCENDENTAL_PURIFY_ARG + + + + +  + +
    +
    +
    +

    + Argument used to purify trancendental function app + + + (f + + + x) + + + . For + + + (sin + + + x) + + + , this is a variable that is assumed to be in phase with + + + x + + + that is between + + + -pi + + + and + + + pi + + + . +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + The application of a trancendental function. +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : + + + Real + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + TRANSCENDENTAL_SINE_PHASE_SHIFT + + + + +  + +
    +
    +
    +

    + Argument used to reason about the phase shift of arguments to sine. In particular, this is an integral rational indicating the number of times :math: + + + 2\pi + + + is added to a real value between :math: + + + -\pi + + + and :math: + + + \pi + + + to obtain the value of argument to sine. +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + The argument to sine. +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : + + + Real + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_VTS_DELTA + + + + +  + +
    +
    +
    +

    + Used to reason about virtual term substitution. This term represents an infinitesimal. This skolem is expected to appear in instantiations and immediately be rewritten via virtual term substitution. +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 0 + + +

      +
    • +
    • +

      + + + Sort + + + : + + + Real + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_VTS_DELTA_FREE + + + + +  + +
    +
    +
    +

    + Used to reason about virtual term substitution. This term represents an infinitesimal. Unlike ARITH_VTS_DELTA, this skolem may appear in lemmas. +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 0 + + +

      +
    • +
    • +

      + + + Sort + + + : + + + Real + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_VTS_INFINITY + + + + +  + +
    +
    +
    +

    + Used to reason about virtual term substitution. This term represents infinity. This skolem is expected to appear in instantiations and immediately be rewritten via virtual term substitution. +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 0 + + +

      +
        +
      • +

        + + + 1: + + + A term that represents an arithmetic sort (Int or Real). +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : The sort given by the index. +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + ARITH_VTS_INFINITY_FREE + + + + +  + +
    +
    +
    +

    + Used to reason about virtual term substitution. This term represents infinity. Unlike ARITH_VTS_INFINITY, this skolem may appear in lemmas. +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 0 + + +

      +
        +
      • +

        + + + 1: + + + A term that represents an arithmetic sort (Int or Real). +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : The sort given by the index. +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SHARED_SELECTOR + + + + +  + +
    +
    +
    +

    +

    +

    + A shared datatype selector, see Reynolds et. al. “Datatypes with Shared +

    +

    + Selectors”, IJCAR 2018. Represents a selector that can extract fields of multiple constructors. +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + A term that represents the datatype we are extracting from. +

        +
      • +
      • +

        + + + 2: + + + A term that represents the sort of field we are extracting. +

        +
      • +
      • +

        + + + 3: + + + An integer n such that this shared selector returns the n^th subfield term of the given sort. +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : A selector sort whose domain is given by first index, and whose codomain is the given by the second index. +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + HO_DEQ_DIFF + + + + +  + +
    +
    +
    +

    + The higher-roder diff skolem, which is the witness k for the inference + + + (=> + + + (not + + + (= + + + A + + + B)) + + + (not + + + (= + + + (A + + + k1 + + + ... + + + kn) + + + (B + + + k1 + + + ... + + + kn)))) + + + . +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + The first function of sort + + + (-> + + + T1 + + + ... + + + Tn + + + T) + + + . +

        +
      • +
      • +

        + + + 2: + + + The second function of sort + + + (-> + + + T1 + + + ... + + + Tn + + + T) + + + . +

        +
      • +
      • +

        + + + 3: + + + The argument index i. +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : + + + Ti + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + QUANTIFIERS_SKOLEMIZE + + + + +  + +
    +
    +
    +

    + The n^th skolem for the negation of universally quantified formula Q. +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + The quantified formula Q. +

        +
      • +
      • +

        + + + 2: + + + The index of the variable in the binder of Q to skolemize. +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : The type of the variable referenced by the second index. +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STRINGS_NUM_OCCUR + + + + +  + +
    +
    +
    +

    + An integer corresponding to the number of times a string occurs in another string. This is used to reason about str.replace_all. +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + The first string. +

        +
      • +
      • +

        + + + 2: + + + The second string. +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : + + + Int + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STRINGS_OCCUR_INDEX + + + + +  + +
    +
    +
    +

    + A function k such that for x = 0…n, (k x) is the end index of the x^th occurrence of a string b in string a, where n is the number of occurrences of b in a, and + + + (= + + + (k + + + 0) + + + 0) + + + . This is used to reason about str.replace_all. +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + The first string. +

        +
      • +
      • +

        + + + 2: + + + The second string. +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : + + + (-> + + + Int + + + Int) + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STRINGS_NUM_OCCUR_RE + + + + +  + +
    +
    +
    +

    + Analogous to STRINGS_NUM_OCCUR, but for regular expressions. An integer corresponding to the number of times a regular expression can be matched in a string. This is used to reason about str.replace_all_re. +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + The string to match. +

        +
      • +
      • +

        + + + 2: + + + The regular expression to find. +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : + + + Int + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STRINGS_OCCUR_INDEX_RE + + + + +  + +
    +
    +
    +

    + Analogous to STRINGS_OCCUR_INDEX, but for regular expressions. A function k such that for x = 0…n, (k x) is the end index of the x^th occurrence of a regular expression R in string a, where n is the number of occurrences of R in a, and + + + (= + + + (k + + + 0) + + + 0) + + + . This is used to reason about str.replace_all_re. +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + The string to match. +

        +
      • +
      • +

        + + + 2: + + + The regular expression to find. +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : + + + (-> + + + Int + + + Int) + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STRINGS_OCCUR_LEN_RE + + + + +  + +
    +
    +
    +

    + A function k where for x = 0…n, + + + (k + + + x) + + + is the length of the x^th occurrence of R in a (excluding matches of empty strings) where R is a regular expression, n is the number of occurrences of R in a, and + + + (= + + + (k + + + 0) + + + 0) + + + . +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + The string to match. +

        +
      • +
      • +

        + + + 2: + + + The regular expression to find. +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : + + + (-> + + + Int + + + Int) + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STRINGS_DEQ_DIFF + + + + +  + +
    +
    +
    +

    + Difference index for string disequalities, such that k is the witness for the inference + + + (=> + + + (not + + + (= + + + a + + + b)) + + + (not + + + (= + + + (substr + + + a + + + k + + + 1) + + + (substr + + + b + + + k + + + 1)))) + + + where note that + + + k + + + may be out of bounds for at most of a,b. +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + The first string. +

        +
      • +
      • +

        + + + 2: + + + The second string. +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : + + + Int + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STRINGS_REPLACE_ALL_RESULT + + + + +  + +
    +
    +
    +

    + A function used to define intermediate results of str.replace_all and str.replace_re_all applications. This denotes a function that denotes the result of processing the string or sequence after processing the n^th occurrence of string or match of the regular expression in the given replace_all term. +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + The application of replace_all or replace_all_re. +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : + + + (-> + + + Int + + + S) + + + where S is either + + + String + + + or + + + (Seq + + + T) + + + for some + + + T + + + . +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STRINGS_ITOS_RESULT + + + + +  + +
    +
    +
    +

    + A function used to define intermediate results of str.from_int applications. This is a function k denoting the result of processing the first n digits of the argument. +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + The argument to str.from_int. +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : + + + (-> + + + Int + + + Int) + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STRINGS_STOI_RESULT + + + + +  + +
    +
    +
    +

    + A function used to define intermediate results of str.from_int applications. This is a function k of type + + + (-> + + + Int + + + String) + + + denoting the result of processing the first n characters of the argument. +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + The argument to str.to_int. +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : + + + (-> + + + Int + + + String) + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + STRINGS_STOI_NON_DIGIT + + + + +  + +
    +
    +
    +

    + A position containing a non-digit in a string, used when + + + (str.to_int + + + a) + + + is equal to -1. This is an integer that returns a position for which the argument string is not a digit if one exists, or is unconstrained otherwise. +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + The argument to str.to_int. +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : + + + Int + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + RE_FIRST_MATCH_PRE + + + + +  + +
    +
    +
    +

    + The next three skolems are used to decompose the match of a regular expression in string. +

    +

    + For string a and regular expression R, this skolem is the prefix of string a before the first, shortest match of R in a. Formally, if + + + (str.in_re + + + a + + + (re.++ + + + (re.* + + + re.allchar) + + + R + + + (re.* + + + re.allchar))) + + + , then there exists strings k_pre, k_match, k_post such that: + + + (= + + + a + + + (str.++ + + + k_pre + + + k_match + + + k_post)) + + + and + + + (= + + + (len + + + k_pre) + + + (indexof_re + + + a + + + R + + + 0)) + + + and + + + (forall + + + ((l + + + Int)) + + + (=> + + + (< + + + 0 + + + l + + + (len + + + k_match)) + + + (not + + + (str.in_re + + + (substr + + + k_match + + + 0 + + + l) + + + R)))) + + + and + + + (str.in_re + + + k_match + + + R) + + + This skolem is k_pre, and the proceeding two skolems are k_match and k_post. +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + The string. +

        +
      • +
      • +

        + + + 2: + + + The regular expression to match. +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : + + + String + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + RE_FIRST_MATCH + + + + +  + +
    +
    +
    +

    + For string a and regular expression R, this skolem is the string that the first, shortest match of R was matched to in a. +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + The string. +

        +
      • +
      • +

        + + + 2: + + + The regular expression to match. +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : + + + String + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + RE_FIRST_MATCH_POST + + + + +  + +
    +
    +
    +

    + For string a and regular expression + + + R + + + , this skolem is the remainder of a after the first, shortest match of + + + R + + + in a. +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + The string. +

        +
      • +
      • +

        + + + 2: + + + The regular expression to match. +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : + + + String + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + RE_UNFOLD_POS_COMPONENT + + + + +  + +
    +
    +
    +

    + Regular expression unfold component: if + + + (str.in_re + + + a + + + R) + + + , where R is + + + (re.++ + + + R0 + + + ... + + + Rn) + + + , then the + + + RE_UNFOLD_POS_COMPONENT + + + for indices (a,R,i) is a string ki such that + + + (= + + + a + + + (str.++ + + + k0 + + + ... + + + kn)) + + + and + + + (str.in_re + + + k0 + + + R0) + + + for i = 0, …, n. +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + The string. +

        +
      • +
      • +

        + + + 2: + + + The regular expression. +

        +
      • +
      • +

        + + + 3: + + + The index of the skolem. +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : + + + String + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BAGS_CARD_COMBINE + + + + +  + +
    +
    +
    +

    + An uninterpreted function for bag.card operator: To compute + + + (bag.card + + + A) + + + , we need a function that counts multiplicities of distinct elements. We call this function combine of type Int -> Int where: combine(0) = 0. combine(i) = m(elements(i), A) + combine(i-1) for 1 <= i <= n. elements: a skolem function for (bag.fold f t A). See + + + BAGS_DISTINCT_ELEMENTS + + + . n: is the number of distinct elements in A. +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + the bag argument A. +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : + + + (-> + + + Int + + + Int) + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BAGS_DISTINCT_ELEMENTS_UNION_DISJOINT + + + + +  + +
    +
    +
    +

    + An uninterpreted function for the union of distinct elements in a bag (Bag T). To compute operators like bag.card, we need a function for distinct elements in A of type (-> Int T) (see + + + BAGS_DISTINCT_ELEMENTS + + + ). We also need to restrict the range [1, n] to only elements in the bag as follows: unionDisjoint(0) = bag.empty. unionDisjoint(i) = disjoint union of {<elements(i), m(elements(i), A)>} and unionDisjoint(i-1). unionDisjoint(n) = A. +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + the bag argument A of type (Bag T). +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : + + + (-> + + + Int + + + (Bag + + + T)) + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BAGS_FOLD_CARD + + + + +  + +
    +
    +
    +

    + An uninterpreted function for bag.fold operator: To compute + + + (bag.fold + + + f + + + t + + + A) + + + , we need to guess the cardinality n of bag A using a skolem function with + + + BAGS_FOLD_CARD + + + id. +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + the bag argument A. +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : + + + Int + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BAGS_FOLD_COMBINE + + + + +  + +
    +
    +
    +

    + An uninterpreted function for bag.fold operator: To compute + + + (bag.fold + + + f + + + t + + + A) + + + , we need a function that accumulates intermidiate values. We call this function combine of type Int -> T2 where: combine(0) = t combine(i) = f(elements(i), combine(i - 1)) for 1 <= i <= n. elements: a skolem function for (bag.fold f t A) see + + + BAGS_FOLD_ELEMENTS + + + . n: is the cardinality of A. T2: is the type of initial value t. +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + the function f of type + + + (-> + + + T1 + + + T2) + + + . +

        +
      • +
      • +

        + + + 2: + + + the initial value t of type + + + T2 + + + . +

        +
      • +
      • +

        + + + 3: + + + the bag argument A of type + + + (Bag + + + T1) + + + . +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : + + + (-> + + + Int + + + T2) + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BAGS_FOLD_ELEMENTS + + + + +  + +
    +
    +
    +

    + An uninterpreted function for bag.fold operator: To compute + + + (bag.fold + + + f + + + t + + + A) + + + , we need a function for elements of A. We call this function elements of type + + + (-> + + + Int + + + T1) + + + where T1 is the type of elements of A. If the cardinality of A is n, then A is the disjoint union of {elements(i)} for 1 <= i <= n. See + + + BAGS_FOLD_UNION_DISJOINT + + + . +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + a bag argument A of type + + + (Bag + + + T1) + + +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : + + + (-> + + + Int + + + T1) + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BAGS_FOLD_UNION_DISJOINT + + + + +  + +
    +
    +
    +

    + An uninterpreted function for bag.fold operator: To compute + + + (bag.fold + + + f + + + t + + + A) + + + , we need a function for elements of A which is given by elements defined in + + + BAGS_FOLD_ELEMENTS + + + . We also need unionDisjoint: + + + (-> + + + Int + + + (Bag + + + T1)) + + + to compute the disjoint union such that: unionDisjoint(0) = bag.empty. unionDisjoint(i) = disjoint union of {elements(i)} and unionDisjoint (i-1). unionDisjoint(n) = A. +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + the bag argument A of type + + + (Bag + + + T1) + + + . +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : + + + (-> + + + Int + + + (Bag + + + T1)) + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BAGS_CHOOSE + + + + +  + +
    +
    +
    +

    + An interpreted function + + + uf + + + for bag.choose operator: + + + (bag.choose + + + A) + + + is replaced by + + + (uf + + + A) + + + along with the inference that + + + (>= + + + (bag.count + + + (uf + + + A) + + + A) + + + 1) + + + when + + + A + + + is non-empty. where + + + T + + + is the type of elements of A. +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + the bag to chose from, of type (Bag T). +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : + + + (-> + + + (Bag + + + T) + + + T) + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BAGS_DISTINCT_ELEMENTS + + + + +  + +
    +
    +
    +

    + An uninterpreted function for distinct elements of a bag A, which returns the n^th distinct element of the bag. See + + + BAGS_DISTINCT_ELEMENTS_UNION_DISJOINT + + + . +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + the bag argument A of type + + + (Bag + + + T) + + + . +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : + + + (-> + + + Int + + + T) + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BAGS_DISTINCT_ELEMENTS_SIZE + + + + +  + +
    +
    +
    +

    + A skolem variable for the size of the distinct elements of a bag A. +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + the bag argument A. +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : + + + Int + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BAGS_MAP_PREIMAGE_INJECTIVE + + + + +  + +
    +
    +
    +

    + A skolem for the preimage of an element y in + + + (bag.map + + + f + + + A) + + + such that + + + (= + + + (f + + + x) + + + y) + + + where f: + + + (-> + + + E + + + T) + + + is an injective function. +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + the function f of type + + + (-> + + + E + + + T) + + + . +

        +
      • +
      • +

        + + + 2: + + + the bag argument A of + + + (Bag + + + E) + + + . +

        +
      • +
      • +

        + + + 3: + + + the element argument y type + + + T + + + . +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : + + + E + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BAGS_MAP_INDEX + + + + +  + +
    +
    +
    +

    + A skolem variable for the index that is unique per terms + + + (bag.map + + + f + + + A) + + + , y, e where: f: + + + (-> + + + E + + + T) + + + , A: + + + (Bag + + + E) + + + , y: + + + T + + + , e: + + + E + + +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 5 + + +

      +
        +
      • +

        + + + 1: + + + a map term of the form + + + (bag.map + + + f + + + A) + + + . +

        +
      • +
      • +

        + + + 2: + + + a skolem function with id + + + BAGS_DISTINCT_ELEMENTS + + + . +

        +
      • +
      • +

        + + + 3: + + + a skolem function with id + + + BAGS_DISTINCT_ELEMENTS_SIZE + + + . +

        +
      • +
      • +

        + + + 4: + + + an element y of type + + + T + + + representing the mapped value. +

        +
      • +
      • +

        + + + 5: + + + an element x of type + + + E + + + . +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : + + + Int + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BAGS_MAP_SUM + + + + +  + +
    +
    +
    +

    + An uninterpreted function for bag.map operator: If bag A is {uf(1), …, uf(n)} (see + + + BAGS_DISTINCT_ELEMENTS + + + }, then the multiplicity of an element y in a bag + + + (bag.map + + + f + + + A) + + + is sum(n), where sum: + + + (-> + + + Int + + + Int) + + + is a skolem function such that: sum(0) = 0 sum(i) = sum (i-1) + (bag.count (uf i) A) +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + the function f of type + + + (-> + + + E + + + T) + + + . +

        +
      • +
      • +

        + + + 2: + + + the bag argument A of + + + (Bag + + + E) + + + . +

        +
      • +
      • +

        + + + 3: + + + the element argument e type + + + E + + + . +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : + + + (-> + + + Int + + + Int) + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BAGS_DEQ_DIFF + + + + +  + +
    +
    +
    +

    + The bag diff skolem, which is the witness k for the inference + + + (=> + + + (not + + + (= + + + A + + + B)) + + + (not + + + (= + + + (bag.count + + + k + + + A) + + + (bag.count + + + k + + + B)))) + + + . +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + The first bag of type + + + (Bag + + + T) + + + . +

        +
      • +
      • +

        + + + 2: + + + The second bag of type + + + (Bag + + + T) + + + . +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : + + + T + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + TABLES_GROUP_PART + + + + +  + +
    +
    +
    +

    + Given a group term + + + ((_ + + + table.group + + + n1 + + + ... + + + nk) + + + A) + + + of type + + + (Bag + + + (Table + + + T)) + + + , this skolem maps elements of A to their parts in the resulting partition. +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + a group term of the form + + + ((_ + + + table.group + + + n1 + + + ... + + + nk) + + + A) + + + . +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : + + + (-> + + + T + + + (Table + + + T)) + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + TABLES_GROUP_PART_ELEMENT + + + + +  + +
    +
    +
    +

    + Given a group term + + + ((_ + + + table.group + + + n1 + + + ... + + + nk) + + + A) + + + of type + + + (Bag + + + (Table + + + T)) + + + and a part B of type + + + (Table + + + T) + + + , this function returns a skolem element that is a member of B if B is not empty. +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + a group term of the form + + + ((_ + + + table.group + + + n1 + + + ... + + + nk) + + + A) + + + . +

        +
      • +
      • +

        + + + 2: + + + a table B of type + + + (Table + + + T) + + + . +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : + + + T + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + RELATIONS_GROUP_PART + + + + +  + +
    +
    +
    +

    + Given a group term + + + ((_ + + + rel.group + + + n1 + + + ... + + + nk) + + + A) + + + of type + + + (Set + + + (Relation + + + T)) + + + this skolem maps elements of A to their parts in the resulting partition. +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + a relation of the form + + + ((_ + + + rel.group + + + n1 + + + ... + + + nk) + + + A) + + + . +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : + + + (-> + + + T + + + (Relation + + + T)) + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + RELATIONS_GROUP_PART_ELEMENT + + + + +  + +
    +
    +
    +

    + Given a group term ((_ rel.group n1 … nk) A) of type (Set (Relation T)) and a part B of type (Relation T), this function returns a skolem element that is a member of B if B is not empty. +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + a group term of the form + + + ((_ + + + rel.group + + + n1 + + + ... + + + nk) + + + A) + + + . +

        +
      • +
      • +

        + + + 2: + + + a relation B of type + + + (Relation + + + T) + + + . +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : + + + T + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SETS_CHOOSE + + + + +  + +
    +
    +
    +

    + An interpreted function for set.choose operator, where + + + (set.choose + + + A) + + + is expanded to + + + (uf + + + A) + + + along with the inference + + + (set.member + + + (uf + + + A) + + + A)) + + + when + + + A + + + is non-empty, where uf: + + + (-> + + + (Set + + + E) + + + E) + + + is this skolem function, and E is the type of elements of + + + A + + + . +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + a ground value for the type + + + (Set + + + E) + + + . +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : + + + (-> + + + (Set + + + E) + + + E) + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SETS_DEQ_DIFF + + + + +  + +
    +
    +
    +

    + The set diff skolem, which is the witness k for the inference + + + (=> + + + (not + + + (= + + + A + + + B)) + + + (not + + + (= + + + (set.member + + + k + + + A) + + + (set.member + + + k + + + B)))) + + + . +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + The first set of type + + + (Set + + + E) + + + . +

        +
      • +
      • +

        + + + 2: + + + The second set of type + + + (Set + + + E) + + + . +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : + + + E + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SETS_FOLD_CARD + + + + +  + +
    +
    +
    +

    + An uninterpreted function for set.fold operator: To compute + + + (set.fold + + + f + + + t + + + A) + + + , we need to guess the cardinality n of set A using a skolem function with SETS_FOLD_CARD id. +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + the set argument A. +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : + + + Int + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SETS_FOLD_COMBINE + + + + +  + +
    +
    +
    +

    + An uninterpreted function for set.fold operator: To compute + + + (set.fold + + + f + + + t + + + A) + + + , we need a function that accumulates intermidiate values. We call this function combine of type Int -> T2 where: combine(0) = t combine(i) = f(elements(i), combine(i - 1)) for 1 <= i <= n elements: a skolem function for (set.fold f t A) see SETS_FOLD_ELEMENTS n: is the cardinality of A T2: is the type of initial value t +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 3 + + +

      +
        +
      • +

        + + + 1: + + + the function f of type + + + (-> + + + T1 + + + T2) + + + . +

        +
      • +
      • +

        + + + 2: + + + the initial value t of type + + + T2 + + + . +

        +
      • +
      • +

        + + + 3: + + + the set argument A of type + + + (Set + + + T1) + + + . +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : + + + (-> + + + Int + + + T2) + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SETS_FOLD_ELEMENTS + + + + +  + +
    +
    +
    +

    + An uninterpreted function for set.fold operator: To compute + + + (set.fold + + + f + + + t + + + A) + + + , we need a function for elements of A. We call this function elements of type + + + (-> + + + Int + + + T) + + + where T is the type of elements of A. If the cardinality of A is n, then A is the union of {elements(i)} for 1 <= i <= n. See SETS_FOLD_UNION_DISJOINT. +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + a set argument A of type + + + (Set + + + T) + + + . +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : + + + (-> + + + Int + + + T) + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SETS_FOLD_UNION + + + + +  + +
    +
    +
    +

    + An uninterpreted function for set.fold operator: To compute + + + (set.fold + + + f + + + t + + + A) + + + , we need a function for elements of A which is given by elements defined in SETS_FOLD_ELEMENTS. We also need unionFn: + + + (-> + + + Int + + + (Set + + + E)) + + + to compute the union such that: unionFn(0) = set.empty unionFn(i) = union of {elements(i)} and unionFn (i-1) unionFn(n) = A +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + a set argument A of type + + + (Set + + + E) + + + . +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : + + + (-> + + + Int + + + (Set + + + E)) + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + SETS_MAP_DOWN_ELEMENT + + + + +  + +
    +
    +
    +

    + A skolem variable that is unique per terms + + + (set.map + + + f + + + A) + + + , y which is an element in + + + (set.map + + + f + + + A) + + + . The skolem is constrained to be an element in A, and it is mapped to y by f. +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + a map term of the form + + + (set.map + + + f + + + A) + + + where A of type + + + (Set + + + E) + + +

        +
      • +
      • +

        + + + 2: + + + the element argument y. +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : + + + E + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + FP_MIN_ZERO + + + + +  + +
    +
    +
    +

    + A skolem function that is unique per floating-point sort, introduced for the undefined zero case of + + + fp.min + + + . +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + The floating-point sort + + + FP + + + of the fp.min operator. +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : + + + (-> + + + FP + + + FP + + + (_ + + + BitVec + + + 1)) + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + FP_MAX_ZERO + + + + +  + +
    +
    +
    +

    + A skolem function that is unique per floating-point sort, introduced for the undefined zero case of + + + fp.max + + + . +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + The floating-point sort + + + FP + + + of the fp.max operator. +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : + + + (-> + + + FP + + + FP + + + (_ + + + BitVec + + + 1)) + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + FP_TO_UBV + + + + +  + +
    +
    +
    +

    + A skolem function introduced for the undefined out-ouf-bounds case of + + + fp.to_ubv + + + that is unique per floating-point sort and sort of the arguments to the operator. +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + The floating-point sort + + + FP + + + of operand of fp.to_ubv. +

        +
      • +
      • +

        + + + 2: + + + The bit-vector sort + + + BV + + + to convert to. +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : + + + (-> + + + RoundingMode + + + FP + + + BV) + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + FP_TO_SBV + + + + +  + +
    +
    +
    +

    + A skolem function introduced for the undefined out-ouf-bounds case of + + + fp.to_sbv + + + that is unique per floating-point sort and sort of the arguments to the operator. +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 2 + + +

      +
        +
      • +

        + + + 1: + + + The floating-point sort + + + FP + + + of operand of fp.to_sbv. +

        +
      • +
      • +

        + + + 2: + + + The bit-vector sort + + + BV + + + to convert to. +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : + + + (-> + + + RoundingMode + + + FP + + + BV) + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + FP_TO_REAL + + + + +  + +
    +
    +
    +

    + A skolem function introduced for the undefined of + + + fp.to_real + + + that is unique per floating-point sort. +

    +

    +

    +
      +
    • +

      + Number of skolem indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + The floating-point sort + + + FP + + + of the operand of fp.to_real. +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : + + + (-> + + + FP + + + Real) + + +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + BV_TO_INT_UF + + + + +  + +
    +
    +
    +

    + A skolem function introduced by the int-blaster. Given a function f with argument and/or return types that include bit-vectors, we get a function that replaces them by integer types. For example, if the original function is from BV and Strings to Strings, the resulting function is from Ints and Strings to Strings. +

    +
      +
    • +

      + Number of skolem indices: + + + 1 + + +

      +
        +
      • +

        + + + 1: + + + the original function f, with BV sorts. +

        +
      • +
      +
    • +
    • +

      + + + Sort + + + : (-> T1 … ( -> Tn’ T’)…) Where f has sort (->T1 … (-> Tn T)…) and Ti (T’) is + + + Int + + + if Ti (T) is + + + BV + + + and Ti’ (T’) is just Ti (T) otherwise. +

      +
    • +
    +
    +
    +
    +
    + + + + + + + + + enumerator + + + + + + + + NONE + + + + +  + +
    +
    +
    +

    + Indicates this is not a skolem. +

    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/_sphinx_javascript_frameworks_compat.js b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/_sphinx_javascript_frameworks_compat.js new file mode 100644 index 0000000000..81415803ec --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/_sphinx_javascript_frameworks_compat.js @@ -0,0 +1,123 @@ +/* Compatability shim for jQuery and underscores.js. + * + * Copyright Sphinx contributors + * Released under the two clause BSD licence + */ + +/** + * small helper function to urldecode strings + * + * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL + */ +jQuery.urldecode = function(x) { + if (!x) { + return x + } + return decodeURIComponent(x.replace(/\+/g, ' ')); +}; + +/** + * small helper function to urlencode strings + */ +jQuery.urlencode = encodeURIComponent; + +/** + * This function returns the parsed url parameters of the + * current request. Multiple values per key are supported, + * it will always return arrays of strings for the value parts. + */ +jQuery.getQueryParameters = function(s) { + if (typeof s === 'undefined') + s = document.location.search; + var parts = s.substr(s.indexOf('?') + 1).split('&'); + var result = {}; + for (var i = 0; i < parts.length; i++) { + var tmp = parts[i].split('=', 2); + var key = jQuery.urldecode(tmp[0]); + var value = jQuery.urldecode(tmp[1]); + if (key in result) + result[key].push(value); + else + result[key] = [value]; + } + return result; +}; + +/** + * highlight a given string on a jquery object by wrapping it in + * span elements with the given class name. + */ +jQuery.fn.highlightText = function(text, className) { + function highlight(node, addItems) { + if (node.nodeType === 3) { + var val = node.nodeValue; + var pos = val.toLowerCase().indexOf(text); + if (pos >= 0 && + !jQuery(node.parentNode).hasClass(className) && + !jQuery(node.parentNode).hasClass("nohighlight")) { + var span; + var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.className = className; + } + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + node.parentNode.insertBefore(span, node.parentNode.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling)); + node.nodeValue = val.substr(0, pos); + if (isInSVG) { + var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); + var bbox = node.parentElement.getBBox(); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute('class', className); + addItems.push({ + "parent": node.parentNode, + "target": rect}); + } + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this, addItems); + }); + } + } + var addItems = []; + var result = this.each(function() { + highlight(this, addItems); + }); + for (var i = 0; i < addItems.length; ++i) { + jQuery(addItems[i].parent).before(addItems[i].target); + } + return result; +}; + +/* + * backward compatibility for jQuery.browser + * This will be supported until firefox bug is fixed. + */ +if (!jQuery.browser) { + jQuery.uaMatch = function(ua) { + ua = ua.toLowerCase(); + + var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || + /(webkit)[ \/]([\w.]+)/.exec(ua) || + /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || + /(msie) ([\w.]+)/.exec(ua) || + ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || + []; + + return { + browser: match[ 1 ] || "", + version: match[ 2 ] || "0" + }; + }; + jQuery.browser = {}; + jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; +} diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/basic.css b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/basic.css new file mode 100644 index 0000000000..cfc60b86c7 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/basic.css @@ -0,0 +1,921 @@ +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +div.section::after { + display: block; + content: ''; + clear: left; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 230px; + margin-left: -100%; + font-size: 90%; + word-wrap: break-word; + overflow-wrap : break-word; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +div.sphinxsidebar #searchbox form.search { + overflow: hidden; +} + +div.sphinxsidebar #searchbox input[type="text"] { + float: left; + width: 80%; + padding: 0.25em; + box-sizing: border-box; +} + +div.sphinxsidebar #searchbox input[type="submit"] { + float: left; + width: 20%; + border-left: none; + padding: 0.25em; + box-sizing: border-box; +} + + +img { + border: 0; + max-width: 100%; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li p.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; + margin-left: auto; + margin-right: auto; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable ul { + margin-top: 0; + margin-bottom: 0; + list-style-type: none; +} + +table.indextable > tbody > tr > td > ul { + padding-left: 0em; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- domain module index --------------------------------------------------- */ + +table.modindextable td { + padding: 2px; + border-collapse: collapse; +} + +/* -- general body styles --------------------------------------------------- */ + +div.body { + min-width: 360px; + max-width: 800px; +} + +div.body p, div.body dd, div.body li, div.body blockquote { + -moz-hyphens: auto; + -ms-hyphens: auto; + -webkit-hyphens: auto; + hyphens: auto; +} + +a.headerlink { + visibility: hidden; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink, +caption:hover > a.headerlink, +p.caption:hover > a.headerlink, +div.code-block-caption:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, figure.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, figure.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, figure.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +img.align-default, figure.align-default, .figure.align-default { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-default { + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar, +aside.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px; + background-color: #ffe; + width: 40%; + float: right; + clear: right; + overflow-x: auto; +} + +p.sidebar-title { + font-weight: bold; +} + +nav.contents, +aside.topic, +div.admonition, div.topic, blockquote { + clear: left; +} + +/* -- topics ---------------------------------------------------------------- */ + +nav.contents, +aside.topic, +div.topic { + border: 1px solid #ccc; + padding: 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- content of sidebars/topics/admonitions -------------------------------- */ + +div.sidebar > :last-child, +aside.sidebar > :last-child, +nav.contents > :last-child, +aside.topic > :last-child, +div.topic > :last-child, +div.admonition > :last-child { + margin-bottom: 0; +} + +div.sidebar::after, +aside.sidebar::after, +nav.contents::after, +aside.topic::after, +div.topic::after, +div.admonition::after, +blockquote::after { + display: block; + content: ''; + clear: both; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + margin-top: 10px; + margin-bottom: 10px; + border: 0; + border-collapse: collapse; +} + +table.align-center { + margin-left: auto; + margin-right: auto; +} + +table.align-default { + margin-left: auto; + margin-right: auto; +} + +table caption span.caption-number { + font-style: italic; +} + +table caption span.caption-text { +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +th > :first-child, +td > :first-child { + margin-top: 0px; +} + +th > :last-child, +td > :last-child { + margin-bottom: 0px; +} + +/* -- figures --------------------------------------------------------------- */ + +div.figure, figure { + margin: 0.5em; + padding: 0.5em; +} + +div.figure p.caption, figcaption { + padding: 0.3em; +} + +div.figure p.caption span.caption-number, +figcaption span.caption-number { + font-style: italic; +} + +div.figure p.caption span.caption-text, +figcaption span.caption-text { +} + +/* -- field list styles ----------------------------------------------------- */ + +table.field-list td, table.field-list th { + border: 0 !important; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.field-name { + -moz-hyphens: manual; + -ms-hyphens: manual; + -webkit-hyphens: manual; + hyphens: manual; +} + +/* -- hlist styles ---------------------------------------------------------- */ + +table.hlist { + margin: 1em 0; +} + +table.hlist td { + vertical-align: top; +} + +/* -- object description styles --------------------------------------------- */ + +.sig { + font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; +} + +.sig-name, code.descname { + background-color: transparent; + font-weight: bold; +} + +.sig-name { + font-size: 1.1em; +} + +code.descname { + font-size: 1.2em; +} + +.sig-prename, code.descclassname { + background-color: transparent; +} + +.optional { + font-size: 1.3em; +} + +.sig-paren { + font-size: larger; +} + +.sig-param.n { + font-style: italic; +} + +/* C++ specific styling */ + +.sig-inline.c-texpr, +.sig-inline.cpp-texpr { + font-family: unset; +} + +.sig.c .k, .sig.c .kt, +.sig.cpp .k, .sig.cpp .kt { + color: #0033B3; +} + +.sig.c .m, +.sig.cpp .m { + color: #1750EB; +} + +.sig.c .s, .sig.c .sc, +.sig.cpp .s, .sig.cpp .sc { + color: #067D17; +} + + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +:not(li) > ol > li:first-child > :first-child, +:not(li) > ul > li:first-child > :first-child { + margin-top: 0px; +} + +:not(li) > ol > li:last-child > :last-child, +:not(li) > ul > li:last-child > :last-child { + margin-bottom: 0px; +} + +ol.simple ol p, +ol.simple ul p, +ul.simple ol p, +ul.simple ul p { + margin-top: 0; +} + +ol.simple > li:not(:first-child) > p, +ul.simple > li:not(:first-child) > p { + margin-top: 0; +} + +ol.simple p, +ul.simple p { + margin-bottom: 0; +} + +aside.footnote > span, +div.citation > span { + float: left; +} +aside.footnote > span:last-of-type, +div.citation > span:last-of-type { + padding-right: 0.5em; +} +aside.footnote > p { + margin-left: 2em; +} +div.citation > p { + margin-left: 4em; +} +aside.footnote > p:last-of-type, +div.citation > p:last-of-type { + margin-bottom: 0em; +} +aside.footnote > p:last-of-type:after, +div.citation > p:last-of-type:after { + content: ""; + clear: both; +} + +dl.field-list { + display: grid; + grid-template-columns: fit-content(30%) auto; +} + +dl.field-list > dt { + font-weight: bold; + word-break: break-word; + padding-left: 0.5em; + padding-right: 5px; +} + +dl.field-list > dd { + padding-left: 0.5em; + margin-top: 0em; + margin-left: 0em; + margin-bottom: 0em; +} + +dl { + margin-bottom: 15px; +} + +dd > :first-child { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +.sig dd { + margin-top: 0px; + margin-bottom: 0px; +} + +.sig dl { + margin-top: 0px; + margin-bottom: 0px; +} + +dl > dd:last-child, +dl > dd:last-child > :last-child { + margin-bottom: 0; +} + +dt:target, span.highlighted { + background-color: #fbe54e; +} + +rect.highlighted { + fill: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +.classifier:before { + font-style: normal; + margin: 0 0.5em; + content: ":"; + display: inline-block; +} + +abbr, acronym { + border-bottom: dotted 1px; + cursor: help; +} + +.translated { + background-color: rgba(207, 255, 207, 0.2) +} + +.untranslated { + background-color: rgba(255, 207, 207, 0.2) +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +pre, div[class*="highlight-"] { + clear: both; +} + +span.pre { + -moz-hyphens: none; + -ms-hyphens: none; + -webkit-hyphens: none; + hyphens: none; + white-space: nowrap; +} + +div[class*="highlight-"] { + margin: 1em 0; +} + +td.linenos pre { + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + display: block; +} + +table.highlighttable tbody { + display: block; +} + +table.highlighttable tr { + display: flex; +} + +table.highlighttable td { + margin: 0; + padding: 0; +} + +table.highlighttable td.linenos { + padding-right: 0.5em; +} + +table.highlighttable td.code { + flex: 1; + overflow: hidden; +} + +.highlight .hll { + display: block; +} + +div.highlight pre, +table.highlighttable pre { + margin: 0; +} + +div.code-block-caption + div { + margin-top: 0; +} + +div.code-block-caption { + margin-top: 1em; + padding: 2px 5px; + font-size: small; +} + +div.code-block-caption code { + background-color: transparent; +} + +table.highlighttable td.linenos, +span.linenos, +div.highlight span.gp { /* gp: Generic.Prompt */ + user-select: none; + -webkit-user-select: text; /* Safari fallback only */ + -webkit-user-select: none; /* Chrome/Safari */ + -moz-user-select: none; /* Firefox */ + -ms-user-select: none; /* IE10+ */ +} + +div.code-block-caption span.caption-number { + padding: 0.1em 0.3em; + font-style: italic; +} + +div.code-block-caption span.caption-text { +} + +div.literal-block-wrapper { + margin: 1em 0; +} + +code.xref, a code { + background-color: transparent; + font-weight: bold; +} + +h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +span.eqno a.headerlink { + position: absolute; + z-index: 1; +} + +div.math:hover a.headerlink { + visibility: visible; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/badge_only.css b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/badge_only.css new file mode 100644 index 0000000000..88ba55b965 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/badge_only.css @@ -0,0 +1 @@ +.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-style:normal;font-weight:400;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#FontAwesome) format("svg")}.fa:before{font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1}.fa:before,a .fa{text-decoration:inherit}.fa:before,a .fa,li .fa{display:inline-block}li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before,.icon-book:before{content:"\f02d"}.fa-caret-down:before,.icon-caret-down:before{content:"\f0d7"}.fa-caret-up:before,.icon-caret-up:before{content:"\f0d8"}.fa-caret-left:before,.icon-caret-left:before{content:"\f0d9"}.fa-caret-right:before,.icon-caret-right:before{content:"\f0da"}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60}.rst-versions .rst-current-version:after{clear:both;content:"";display:block}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions .rst-other-versions .rtd-current-item{font-weight:700}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}#flyout-search-form{padding:6px} \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/fonts/Roboto-Slab-Bold.woff b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/fonts/Roboto-Slab-Bold.woff new file mode 100644 index 0000000000..6cb6000018 Binary files /dev/null and b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/fonts/Roboto-Slab-Bold.woff differ diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/fonts/Roboto-Slab-Bold.woff2 b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/fonts/Roboto-Slab-Bold.woff2 new file mode 100644 index 0000000000..7059e23142 Binary files /dev/null and b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/fonts/Roboto-Slab-Bold.woff2 differ diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/fonts/Roboto-Slab-Regular.woff b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/fonts/Roboto-Slab-Regular.woff new file mode 100644 index 0000000000..f815f63f99 Binary files /dev/null and b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/fonts/Roboto-Slab-Regular.woff differ diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/fonts/Roboto-Slab-Regular.woff2 b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/fonts/Roboto-Slab-Regular.woff2 new file mode 100644 index 0000000000..f2c76e5bda Binary files /dev/null and b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/fonts/Roboto-Slab-Regular.woff2 differ diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/fonts/fontawesome-webfont.eot b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/fonts/fontawesome-webfont.eot new file mode 100644 index 0000000000..e9f60ca953 Binary files /dev/null and b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/fonts/fontawesome-webfont.eot differ diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/fonts/fontawesome-webfont.svg b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/fonts/fontawesome-webfont.svg new file mode 100644 index 0000000000..855c845e53 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/fonts/fontawesome-webfont.svg @@ -0,0 +1,2671 @@ + + + + +Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 + By ,,, +Copyright Dave Gandy 2016. All rights reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/fonts/fontawesome-webfont.ttf b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/fonts/fontawesome-webfont.ttf new file mode 100644 index 0000000000..35acda2fa1 Binary files /dev/null and b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/fonts/fontawesome-webfont.ttf differ diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/fonts/fontawesome-webfont.woff b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/fonts/fontawesome-webfont.woff new file mode 100644 index 0000000000..400014a4b0 Binary files /dev/null and b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/fonts/fontawesome-webfont.woff differ diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/fonts/fontawesome-webfont.woff2 b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/fonts/fontawesome-webfont.woff2 new file mode 100644 index 0000000000..4d13fc6040 Binary files /dev/null and b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/fonts/fontawesome-webfont.woff2 differ diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/fonts/lato-bold-italic.woff b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/fonts/lato-bold-italic.woff new file mode 100644 index 0000000000..88ad05b9ff Binary files /dev/null and b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/fonts/lato-bold-italic.woff differ diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/fonts/lato-bold-italic.woff2 b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/fonts/lato-bold-italic.woff2 new file mode 100644 index 0000000000..c4e3d804b5 Binary files /dev/null and b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/fonts/lato-bold-italic.woff2 differ diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/fonts/lato-bold.woff b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/fonts/lato-bold.woff new file mode 100644 index 0000000000..c6dff51f06 Binary files /dev/null and b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/fonts/lato-bold.woff differ diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/fonts/lato-bold.woff2 b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/fonts/lato-bold.woff2 new file mode 100644 index 0000000000..bb195043cf Binary files /dev/null and b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/fonts/lato-bold.woff2 differ diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/fonts/lato-normal-italic.woff b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/fonts/lato-normal-italic.woff new file mode 100644 index 0000000000..76114bc033 Binary files /dev/null and b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/fonts/lato-normal-italic.woff differ diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/fonts/lato-normal-italic.woff2 b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/fonts/lato-normal-italic.woff2 new file mode 100644 index 0000000000..3404f37e2e Binary files /dev/null and b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/fonts/lato-normal-italic.woff2 differ diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/fonts/lato-normal.woff b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/fonts/lato-normal.woff new file mode 100644 index 0000000000..ae1307ff5f Binary files /dev/null and b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/fonts/lato-normal.woff differ diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/fonts/lato-normal.woff2 b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/fonts/lato-normal.woff2 new file mode 100644 index 0000000000..3bf9843328 Binary files /dev/null and b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/fonts/lato-normal.woff2 differ diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/theme.css b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/theme.css new file mode 100644 index 0000000000..0f14f10646 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/css/theme.css @@ -0,0 +1,4 @@ +html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}[hidden],audio:not([controls]){display:none}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}blockquote{margin:0}dfn{font-style:italic}ins{background:#ff9;text-decoration:none}ins,mark{color:#000}mark{background:#ff0;font-style:italic;font-weight:700}.rst-content code,.rst-content tt,code,kbd,pre,samp{font-family:monospace,serif;_font-family:courier new,monospace;font-size:1em}pre{white-space:pre}q{quotes:none}q:after,q:before{content:"";content:none}small{font-size:85%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}dl,ol,ul{margin:0;padding:0;list-style:none;list-style-image:none}li{list-style:none}dd{margin:0}img{border:0;-ms-interpolation-mode:bicubic;vertical-align:middle;max-width:100%}svg:not(:root){overflow:hidden}figure,form{margin:0}label{cursor:pointer}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button;*overflow:visible}button[disabled],input[disabled]{cursor:default}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}textarea{resize:vertical}table{border-collapse:collapse;border-spacing:0}td{vertical-align:top}.chromeframe{margin:.2em 0;background:#ccc;color:#000;padding:.2em 0}.ir{display:block;border:0;text-indent:-999em;overflow:hidden;background-color:transparent;background-repeat:no-repeat;text-align:left;direction:ltr;*line-height:0}.ir br{display:none}.hidden{display:none!important;visibility:hidden}.visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.visuallyhidden.focusable:active,.visuallyhidden.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.invisible{visibility:hidden}.relative{position:relative}big,small{font-size:100%}@media print{body,html,section{background:none!important}*{box-shadow:none!important;text-shadow:none!important;filter:none!important;-ms-filter:none!important}a,a:visited{text-decoration:underline}.ir a:after,a[href^="#"]:after,a[href^="javascript:"]:after{content:""}blockquote,pre{page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}.rst-content .toctree-wrapper>p.caption,h2,h3,p{orphans:3;widows:3}.rst-content .toctree-wrapper>p.caption,h2,h3{page-break-after:avoid}}.btn,.fa:before,.icon:before,.rst-content .admonition,.rst-content .admonition-title:before,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .code-block-caption .headerlink:before,.rst-content .danger,.rst-content .eqno .headerlink:before,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content p .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-alert,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before,.wy-menu-vertical li button.toctree-expand:before,input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:FontAwesome;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713);src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix&v=4.7.0) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#fontawesomeregular) format("svg");font-weight:400;font-style:normal}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;width:2.14286em;top:.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa-pull-left.icon,.fa.fa-pull-left,.rst-content .code-block-caption .fa-pull-left.headerlink,.rst-content .eqno .fa-pull-left.headerlink,.rst-content .fa-pull-left.admonition-title,.rst-content code.download span.fa-pull-left:first-child,.rst-content dl dt .fa-pull-left.headerlink,.rst-content h1 .fa-pull-left.headerlink,.rst-content h2 .fa-pull-left.headerlink,.rst-content h3 .fa-pull-left.headerlink,.rst-content h4 .fa-pull-left.headerlink,.rst-content h5 .fa-pull-left.headerlink,.rst-content h6 .fa-pull-left.headerlink,.rst-content p .fa-pull-left.headerlink,.rst-content table>caption .fa-pull-left.headerlink,.rst-content tt.download span.fa-pull-left:first-child,.wy-menu-vertical li.current>a button.fa-pull-left.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-left.toctree-expand,.wy-menu-vertical li button.fa-pull-left.toctree-expand{margin-right:.3em}.fa-pull-right.icon,.fa.fa-pull-right,.rst-content .code-block-caption .fa-pull-right.headerlink,.rst-content .eqno .fa-pull-right.headerlink,.rst-content .fa-pull-right.admonition-title,.rst-content code.download span.fa-pull-right:first-child,.rst-content dl dt .fa-pull-right.headerlink,.rst-content h1 .fa-pull-right.headerlink,.rst-content h2 .fa-pull-right.headerlink,.rst-content h3 .fa-pull-right.headerlink,.rst-content h4 .fa-pull-right.headerlink,.rst-content h5 .fa-pull-right.headerlink,.rst-content h6 .fa-pull-right.headerlink,.rst-content p .fa-pull-right.headerlink,.rst-content table>caption .fa-pull-right.headerlink,.rst-content tt.download span.fa-pull-right:first-child,.wy-menu-vertical li.current>a button.fa-pull-right.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-right.toctree-expand,.wy-menu-vertical li button.fa-pull-right.toctree-expand{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left,.pull-left.icon,.rst-content .code-block-caption .pull-left.headerlink,.rst-content .eqno .pull-left.headerlink,.rst-content .pull-left.admonition-title,.rst-content code.download span.pull-left:first-child,.rst-content dl dt .pull-left.headerlink,.rst-content h1 .pull-left.headerlink,.rst-content h2 .pull-left.headerlink,.rst-content h3 .pull-left.headerlink,.rst-content h4 .pull-left.headerlink,.rst-content h5 .pull-left.headerlink,.rst-content h6 .pull-left.headerlink,.rst-content p .pull-left.headerlink,.rst-content table>caption .pull-left.headerlink,.rst-content tt.download span.pull-left:first-child,.wy-menu-vertical li.current>a button.pull-left.toctree-expand,.wy-menu-vertical li.on a button.pull-left.toctree-expand,.wy-menu-vertical li button.pull-left.toctree-expand{margin-right:.3em}.fa.pull-right,.pull-right.icon,.rst-content .code-block-caption .pull-right.headerlink,.rst-content .eqno .pull-right.headerlink,.rst-content .pull-right.admonition-title,.rst-content code.download span.pull-right:first-child,.rst-content dl dt .pull-right.headerlink,.rst-content h1 .pull-right.headerlink,.rst-content h2 .pull-right.headerlink,.rst-content h3 .pull-right.headerlink,.rst-content h4 .pull-right.headerlink,.rst-content h5 .pull-right.headerlink,.rst-content h6 .pull-right.headerlink,.rst-content p .pull-right.headerlink,.rst-content table>caption .pull-right.headerlink,.rst-content tt.download span.pull-right:first-child,.wy-menu-vertical li.current>a button.pull-right.toctree-expand,.wy-menu-vertical li.on a button.pull-right.toctree-expand,.wy-menu-vertical li button.pull-right.toctree-expand{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);-ms-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before,.icon-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-close:before,.fa-remove:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-cog:before,.fa-gear:before{content:""}.fa-trash-o:before{content:""}.fa-home:before,.icon-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before,.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-repeat:before,.fa-rotate-right:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before,.icon-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before{content:""}.fa-check-circle:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before,.rst-content .admonition-title:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before,.icon-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-exclamation-triangle:before,.fa-warning:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-cogs:before,.fa-gears:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before,.icon-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before,.icon-circle-arrow-left:before{content:""}.fa-arrow-circle-right:before,.icon-circle-arrow-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before,.icon-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-floppy-o:before,.fa-save:before{content:""}.fa-square:before{content:""}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before,.icon-caret-down:before,.wy-dropdown .caret:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-sort:before,.fa-unsorted:before{content:""}.fa-sort-desc:before,.fa-sort-down:before{content:""}.fa-sort-asc:before,.fa-sort-up:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-gavel:before,.fa-legal:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-bolt:before,.fa-flash:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-clipboard:before,.fa-paste:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-chain-broken:before,.fa-unlink:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:""}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:""}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:""}.fa-eur:before,.fa-euro:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-inr:before,.fa-rupee:before{content:""}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:""}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:""}.fa-krw:before,.fa-won:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before,.icon-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-try:before,.fa-turkish-lira:before{content:""}.fa-plus-square-o:before,.wy-menu-vertical li button.toctree-expand:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-bank:before,.fa-institution:before,.fa-university:before{content:""}.fa-graduation-cap:before,.fa-mortar-board:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:""}.fa-file-archive-o:before,.fa-file-zip-o:before{content:""}.fa-file-audio-o:before,.fa-file-sound-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-rebel:before,.fa-resistance:before{content:""}.fa-empire:before,.fa-ge:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-paper-plane:before,.fa-send:before{content:""}.fa-paper-plane-o:before,.fa-send-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-bed:before,.fa-hotel:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-y-combinator:before,.fa-yc:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery-full:before,.fa-battery:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-television:before,.fa-tv:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.fa-reddit-alien:before{content:""}.fa-edge:before{content:""}.fa-credit-card-alt:before{content:""}.fa-codiepie:before{content:""}.fa-modx:before{content:""}.fa-fort-awesome:before{content:""}.fa-usb:before{content:""}.fa-product-hunt:before{content:""}.fa-mixcloud:before{content:""}.fa-scribd:before{content:""}.fa-pause-circle:before{content:""}.fa-pause-circle-o:before{content:""}.fa-stop-circle:before{content:""}.fa-stop-circle-o:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-hashtag:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-percent:before{content:""}.fa-gitlab:before,.icon-gitlab:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpforms:before{content:""}.fa-envira:before{content:""}.fa-universal-access:before{content:""}.fa-wheelchair-alt:before{content:""}.fa-question-circle-o:before{content:""}.fa-blind:before{content:""}.fa-audio-description:before{content:""}.fa-volume-control-phone:before{content:""}.fa-braille:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before{content:""}.fa-deaf:before,.fa-deafness:before,.fa-hard-of-hearing:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-sign-language:before,.fa-signing:before{content:""}.fa-low-vision:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-pied-piper:before{content:""}.fa-first-order:before{content:""}.fa-yoast:before{content:""}.fa-themeisle:before{content:""}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:""}.fa-fa:before,.fa-font-awesome:before{content:""}.fa-handshake-o:before{content:""}.fa-envelope-open:before{content:""}.fa-envelope-open-o:before{content:""}.fa-linode:before{content:""}.fa-address-book:before{content:""}.fa-address-book-o:before{content:""}.fa-address-card:before,.fa-vcard:before{content:""}.fa-address-card-o:before,.fa-vcard-o:before{content:""}.fa-user-circle:before{content:""}.fa-user-circle-o:before{content:""}.fa-user-o:before{content:""}.fa-id-badge:before{content:""}.fa-drivers-license:before,.fa-id-card:before{content:""}.fa-drivers-license-o:before,.fa-id-card-o:before{content:""}.fa-quora:before{content:""}.fa-free-code-camp:before{content:""}.fa-telegram:before{content:""}.fa-thermometer-4:before,.fa-thermometer-full:before,.fa-thermometer:before{content:""}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:""}.fa-thermometer-2:before,.fa-thermometer-half:before{content:""}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:""}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:""}.fa-shower:before{content:""}.fa-bath:before,.fa-bathtub:before,.fa-s15:before{content:""}.fa-podcast:before{content:""}.fa-window-maximize:before{content:""}.fa-window-minimize:before{content:""}.fa-window-restore:before{content:""}.fa-times-rectangle:before,.fa-window-close:before{content:""}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:""}.fa-bandcamp:before{content:""}.fa-grav:before{content:""}.fa-etsy:before{content:""}.fa-imdb:before{content:""}.fa-ravelry:before{content:""}.fa-eercast:before{content:""}.fa-microchip:before{content:""}.fa-snowflake-o:before{content:""}.fa-superpowers:before{content:""}.fa-wpexplorer:before{content:""}.fa-meetup:before{content:""}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-dropdown .caret,.wy-inline-validate.wy-inline-validate-danger .wy-input-context,.wy-inline-validate.wy-inline-validate-info .wy-input-context,.wy-inline-validate.wy-inline-validate-success .wy-input-context,.wy-inline-validate.wy-inline-validate-warning .wy-input-context,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{font-family:inherit}.fa:before,.icon:before,.rst-content .admonition-title:before,.rst-content .code-block-caption .headerlink:before,.rst-content .eqno .headerlink:before,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content p .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before,.wy-menu-vertical li button.toctree-expand:before{font-family:FontAwesome;display:inline-block;font-style:normal;font-weight:400;line-height:1;text-decoration:inherit}.rst-content .code-block-caption a .headerlink,.rst-content .eqno a .headerlink,.rst-content a .admonition-title,.rst-content code.download a span:first-child,.rst-content dl dt a .headerlink,.rst-content h1 a .headerlink,.rst-content h2 a .headerlink,.rst-content h3 a .headerlink,.rst-content h4 a .headerlink,.rst-content h5 a .headerlink,.rst-content h6 a .headerlink,.rst-content p.caption a .headerlink,.rst-content p a .headerlink,.rst-content table>caption a .headerlink,.rst-content tt.download a span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li a button.toctree-expand,a .fa,a .icon,a .rst-content .admonition-title,a .rst-content .code-block-caption .headerlink,a .rst-content .eqno .headerlink,a .rst-content code.download span:first-child,a .rst-content dl dt .headerlink,a .rst-content h1 .headerlink,a .rst-content h2 .headerlink,a .rst-content h3 .headerlink,a .rst-content h4 .headerlink,a .rst-content h5 .headerlink,a .rst-content h6 .headerlink,a .rst-content p.caption .headerlink,a .rst-content p .headerlink,a .rst-content table>caption .headerlink,a .rst-content tt.download span:first-child,a .wy-menu-vertical li button.toctree-expand{display:inline-block;text-decoration:inherit}.btn .fa,.btn .icon,.btn .rst-content .admonition-title,.btn .rst-content .code-block-caption .headerlink,.btn .rst-content .eqno .headerlink,.btn .rst-content code.download span:first-child,.btn .rst-content dl dt .headerlink,.btn .rst-content h1 .headerlink,.btn .rst-content h2 .headerlink,.btn .rst-content h3 .headerlink,.btn .rst-content h4 .headerlink,.btn .rst-content h5 .headerlink,.btn .rst-content h6 .headerlink,.btn .rst-content p .headerlink,.btn .rst-content table>caption .headerlink,.btn .rst-content tt.download span:first-child,.btn .wy-menu-vertical li.current>a button.toctree-expand,.btn .wy-menu-vertical li.on a button.toctree-expand,.btn .wy-menu-vertical li button.toctree-expand,.nav .fa,.nav .icon,.nav .rst-content .admonition-title,.nav .rst-content .code-block-caption .headerlink,.nav .rst-content .eqno .headerlink,.nav .rst-content code.download span:first-child,.nav .rst-content dl dt .headerlink,.nav .rst-content h1 .headerlink,.nav .rst-content h2 .headerlink,.nav .rst-content h3 .headerlink,.nav .rst-content h4 .headerlink,.nav .rst-content h5 .headerlink,.nav .rst-content h6 .headerlink,.nav .rst-content p .headerlink,.nav .rst-content table>caption .headerlink,.nav .rst-content tt.download span:first-child,.nav .wy-menu-vertical li.current>a button.toctree-expand,.nav .wy-menu-vertical li.on a button.toctree-expand,.nav .wy-menu-vertical li button.toctree-expand,.rst-content .btn .admonition-title,.rst-content .code-block-caption .btn .headerlink,.rst-content .code-block-caption .nav .headerlink,.rst-content .eqno .btn .headerlink,.rst-content .eqno .nav .headerlink,.rst-content .nav .admonition-title,.rst-content code.download .btn span:first-child,.rst-content code.download .nav span:first-child,.rst-content dl dt .btn .headerlink,.rst-content dl dt .nav .headerlink,.rst-content h1 .btn .headerlink,.rst-content h1 .nav .headerlink,.rst-content h2 .btn .headerlink,.rst-content h2 .nav .headerlink,.rst-content h3 .btn .headerlink,.rst-content h3 .nav .headerlink,.rst-content h4 .btn .headerlink,.rst-content h4 .nav .headerlink,.rst-content h5 .btn .headerlink,.rst-content h5 .nav .headerlink,.rst-content h6 .btn .headerlink,.rst-content h6 .nav .headerlink,.rst-content p .btn .headerlink,.rst-content p .nav .headerlink,.rst-content table>caption .btn .headerlink,.rst-content table>caption .nav .headerlink,.rst-content tt.download .btn span:first-child,.rst-content tt.download .nav span:first-child,.wy-menu-vertical li .btn button.toctree-expand,.wy-menu-vertical li.current>a .btn button.toctree-expand,.wy-menu-vertical li.current>a .nav button.toctree-expand,.wy-menu-vertical li .nav button.toctree-expand,.wy-menu-vertical li.on a .btn button.toctree-expand,.wy-menu-vertical li.on a .nav button.toctree-expand{display:inline}.btn .fa-large.icon,.btn .fa.fa-large,.btn .rst-content .code-block-caption .fa-large.headerlink,.btn .rst-content .eqno .fa-large.headerlink,.btn .rst-content .fa-large.admonition-title,.btn .rst-content code.download span.fa-large:first-child,.btn .rst-content dl dt .fa-large.headerlink,.btn .rst-content h1 .fa-large.headerlink,.btn .rst-content h2 .fa-large.headerlink,.btn .rst-content h3 .fa-large.headerlink,.btn .rst-content h4 .fa-large.headerlink,.btn .rst-content h5 .fa-large.headerlink,.btn .rst-content h6 .fa-large.headerlink,.btn .rst-content p .fa-large.headerlink,.btn .rst-content table>caption .fa-large.headerlink,.btn .rst-content tt.download span.fa-large:first-child,.btn .wy-menu-vertical li button.fa-large.toctree-expand,.nav .fa-large.icon,.nav .fa.fa-large,.nav .rst-content .code-block-caption .fa-large.headerlink,.nav .rst-content .eqno .fa-large.headerlink,.nav .rst-content .fa-large.admonition-title,.nav .rst-content code.download span.fa-large:first-child,.nav .rst-content dl dt .fa-large.headerlink,.nav .rst-content h1 .fa-large.headerlink,.nav .rst-content h2 .fa-large.headerlink,.nav .rst-content h3 .fa-large.headerlink,.nav .rst-content h4 .fa-large.headerlink,.nav .rst-content h5 .fa-large.headerlink,.nav .rst-content h6 .fa-large.headerlink,.nav .rst-content p .fa-large.headerlink,.nav .rst-content table>caption .fa-large.headerlink,.nav .rst-content tt.download span.fa-large:first-child,.nav .wy-menu-vertical li button.fa-large.toctree-expand,.rst-content .btn .fa-large.admonition-title,.rst-content .code-block-caption .btn .fa-large.headerlink,.rst-content .code-block-caption .nav .fa-large.headerlink,.rst-content .eqno .btn .fa-large.headerlink,.rst-content .eqno .nav .fa-large.headerlink,.rst-content .nav .fa-large.admonition-title,.rst-content code.download .btn span.fa-large:first-child,.rst-content code.download .nav span.fa-large:first-child,.rst-content dl dt .btn .fa-large.headerlink,.rst-content dl dt .nav .fa-large.headerlink,.rst-content h1 .btn .fa-large.headerlink,.rst-content h1 .nav .fa-large.headerlink,.rst-content h2 .btn .fa-large.headerlink,.rst-content h2 .nav .fa-large.headerlink,.rst-content h3 .btn .fa-large.headerlink,.rst-content h3 .nav .fa-large.headerlink,.rst-content h4 .btn .fa-large.headerlink,.rst-content h4 .nav .fa-large.headerlink,.rst-content h5 .btn .fa-large.headerlink,.rst-content h5 .nav .fa-large.headerlink,.rst-content h6 .btn .fa-large.headerlink,.rst-content h6 .nav .fa-large.headerlink,.rst-content p .btn .fa-large.headerlink,.rst-content p .nav .fa-large.headerlink,.rst-content table>caption .btn .fa-large.headerlink,.rst-content table>caption .nav .fa-large.headerlink,.rst-content tt.download .btn span.fa-large:first-child,.rst-content tt.download .nav span.fa-large:first-child,.wy-menu-vertical li .btn button.fa-large.toctree-expand,.wy-menu-vertical li .nav button.fa-large.toctree-expand{line-height:.9em}.btn .fa-spin.icon,.btn .fa.fa-spin,.btn .rst-content .code-block-caption .fa-spin.headerlink,.btn .rst-content .eqno .fa-spin.headerlink,.btn .rst-content .fa-spin.admonition-title,.btn .rst-content code.download span.fa-spin:first-child,.btn .rst-content dl dt .fa-spin.headerlink,.btn .rst-content h1 .fa-spin.headerlink,.btn .rst-content h2 .fa-spin.headerlink,.btn .rst-content h3 .fa-spin.headerlink,.btn .rst-content h4 .fa-spin.headerlink,.btn .rst-content h5 .fa-spin.headerlink,.btn .rst-content h6 .fa-spin.headerlink,.btn .rst-content p .fa-spin.headerlink,.btn .rst-content table>caption .fa-spin.headerlink,.btn .rst-content tt.download span.fa-spin:first-child,.btn .wy-menu-vertical li button.fa-spin.toctree-expand,.nav .fa-spin.icon,.nav .fa.fa-spin,.nav .rst-content .code-block-caption .fa-spin.headerlink,.nav .rst-content .eqno .fa-spin.headerlink,.nav .rst-content .fa-spin.admonition-title,.nav .rst-content code.download span.fa-spin:first-child,.nav .rst-content dl dt .fa-spin.headerlink,.nav .rst-content h1 .fa-spin.headerlink,.nav .rst-content h2 .fa-spin.headerlink,.nav .rst-content h3 .fa-spin.headerlink,.nav .rst-content h4 .fa-spin.headerlink,.nav .rst-content h5 .fa-spin.headerlink,.nav .rst-content h6 .fa-spin.headerlink,.nav .rst-content p .fa-spin.headerlink,.nav .rst-content table>caption .fa-spin.headerlink,.nav .rst-content tt.download span.fa-spin:first-child,.nav .wy-menu-vertical li button.fa-spin.toctree-expand,.rst-content .btn .fa-spin.admonition-title,.rst-content .code-block-caption .btn .fa-spin.headerlink,.rst-content .code-block-caption .nav .fa-spin.headerlink,.rst-content .eqno .btn .fa-spin.headerlink,.rst-content .eqno .nav .fa-spin.headerlink,.rst-content .nav .fa-spin.admonition-title,.rst-content code.download .btn span.fa-spin:first-child,.rst-content code.download .nav span.fa-spin:first-child,.rst-content dl dt .btn .fa-spin.headerlink,.rst-content dl dt .nav .fa-spin.headerlink,.rst-content h1 .btn .fa-spin.headerlink,.rst-content h1 .nav .fa-spin.headerlink,.rst-content h2 .btn .fa-spin.headerlink,.rst-content h2 .nav .fa-spin.headerlink,.rst-content h3 .btn .fa-spin.headerlink,.rst-content h3 .nav .fa-spin.headerlink,.rst-content h4 .btn .fa-spin.headerlink,.rst-content h4 .nav .fa-spin.headerlink,.rst-content h5 .btn .fa-spin.headerlink,.rst-content h5 .nav .fa-spin.headerlink,.rst-content h6 .btn .fa-spin.headerlink,.rst-content h6 .nav .fa-spin.headerlink,.rst-content p .btn .fa-spin.headerlink,.rst-content p .nav .fa-spin.headerlink,.rst-content table>caption .btn .fa-spin.headerlink,.rst-content table>caption .nav .fa-spin.headerlink,.rst-content tt.download .btn span.fa-spin:first-child,.rst-content tt.download .nav span.fa-spin:first-child,.wy-menu-vertical li .btn button.fa-spin.toctree-expand,.wy-menu-vertical li .nav button.fa-spin.toctree-expand{display:inline-block}.btn.fa:before,.btn.icon:before,.rst-content .btn.admonition-title:before,.rst-content .code-block-caption .btn.headerlink:before,.rst-content .eqno .btn.headerlink:before,.rst-content code.download span.btn:first-child:before,.rst-content dl dt .btn.headerlink:before,.rst-content h1 .btn.headerlink:before,.rst-content h2 .btn.headerlink:before,.rst-content h3 .btn.headerlink:before,.rst-content h4 .btn.headerlink:before,.rst-content h5 .btn.headerlink:before,.rst-content h6 .btn.headerlink:before,.rst-content p .btn.headerlink:before,.rst-content table>caption .btn.headerlink:before,.rst-content tt.download span.btn:first-child:before,.wy-menu-vertical li button.btn.toctree-expand:before{opacity:.5;-webkit-transition:opacity .05s ease-in;-moz-transition:opacity .05s ease-in;transition:opacity .05s ease-in}.btn.fa:hover:before,.btn.icon:hover:before,.rst-content .btn.admonition-title:hover:before,.rst-content .code-block-caption .btn.headerlink:hover:before,.rst-content .eqno .btn.headerlink:hover:before,.rst-content code.download span.btn:first-child:hover:before,.rst-content dl dt .btn.headerlink:hover:before,.rst-content h1 .btn.headerlink:hover:before,.rst-content h2 .btn.headerlink:hover:before,.rst-content h3 .btn.headerlink:hover:before,.rst-content h4 .btn.headerlink:hover:before,.rst-content h5 .btn.headerlink:hover:before,.rst-content h6 .btn.headerlink:hover:before,.rst-content p .btn.headerlink:hover:before,.rst-content table>caption .btn.headerlink:hover:before,.rst-content tt.download span.btn:first-child:hover:before,.wy-menu-vertical li button.btn.toctree-expand:hover:before{opacity:1}.btn-mini .fa:before,.btn-mini .icon:before,.btn-mini .rst-content .admonition-title:before,.btn-mini .rst-content .code-block-caption .headerlink:before,.btn-mini .rst-content .eqno .headerlink:before,.btn-mini .rst-content code.download span:first-child:before,.btn-mini .rst-content dl dt .headerlink:before,.btn-mini .rst-content h1 .headerlink:before,.btn-mini .rst-content h2 .headerlink:before,.btn-mini .rst-content h3 .headerlink:before,.btn-mini .rst-content h4 .headerlink:before,.btn-mini .rst-content h5 .headerlink:before,.btn-mini .rst-content h6 .headerlink:before,.btn-mini .rst-content p .headerlink:before,.btn-mini .rst-content table>caption .headerlink:before,.btn-mini .rst-content tt.download span:first-child:before,.btn-mini .wy-menu-vertical li button.toctree-expand:before,.rst-content .btn-mini .admonition-title:before,.rst-content .code-block-caption .btn-mini .headerlink:before,.rst-content .eqno .btn-mini .headerlink:before,.rst-content code.download .btn-mini span:first-child:before,.rst-content dl dt .btn-mini .headerlink:before,.rst-content h1 .btn-mini .headerlink:before,.rst-content h2 .btn-mini .headerlink:before,.rst-content h3 .btn-mini .headerlink:before,.rst-content h4 .btn-mini .headerlink:before,.rst-content h5 .btn-mini .headerlink:before,.rst-content h6 .btn-mini .headerlink:before,.rst-content p .btn-mini .headerlink:before,.rst-content table>caption .btn-mini .headerlink:before,.rst-content tt.download .btn-mini span:first-child:before,.wy-menu-vertical li .btn-mini button.toctree-expand:before{font-size:14px;vertical-align:-15%}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.wy-alert{padding:12px;line-height:24px;margin-bottom:24px;background:#e7f2fa}.rst-content .admonition-title,.wy-alert-title{font-weight:700;display:block;color:#fff;background:#6ab0de;padding:6px 12px;margin:-12px -12px 12px}.rst-content .danger,.rst-content .error,.rst-content .wy-alert-danger.admonition,.rst-content .wy-alert-danger.admonition-todo,.rst-content .wy-alert-danger.attention,.rst-content .wy-alert-danger.caution,.rst-content .wy-alert-danger.hint,.rst-content .wy-alert-danger.important,.rst-content .wy-alert-danger.note,.rst-content .wy-alert-danger.seealso,.rst-content .wy-alert-danger.tip,.rst-content .wy-alert-danger.warning,.wy-alert.wy-alert-danger{background:#fdf3f2}.rst-content .danger .admonition-title,.rst-content .danger .wy-alert-title,.rst-content .error .admonition-title,.rst-content .error .wy-alert-title,.rst-content .wy-alert-danger.admonition-todo .admonition-title,.rst-content .wy-alert-danger.admonition-todo .wy-alert-title,.rst-content .wy-alert-danger.admonition .admonition-title,.rst-content .wy-alert-danger.admonition .wy-alert-title,.rst-content .wy-alert-danger.attention .admonition-title,.rst-content .wy-alert-danger.attention .wy-alert-title,.rst-content .wy-alert-danger.caution .admonition-title,.rst-content .wy-alert-danger.caution .wy-alert-title,.rst-content .wy-alert-danger.hint .admonition-title,.rst-content .wy-alert-danger.hint .wy-alert-title,.rst-content .wy-alert-danger.important .admonition-title,.rst-content .wy-alert-danger.important .wy-alert-title,.rst-content .wy-alert-danger.note .admonition-title,.rst-content .wy-alert-danger.note .wy-alert-title,.rst-content .wy-alert-danger.seealso .admonition-title,.rst-content .wy-alert-danger.seealso .wy-alert-title,.rst-content .wy-alert-danger.tip .admonition-title,.rst-content .wy-alert-danger.tip .wy-alert-title,.rst-content .wy-alert-danger.warning .admonition-title,.rst-content .wy-alert-danger.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-danger .admonition-title,.wy-alert.wy-alert-danger .rst-content .admonition-title,.wy-alert.wy-alert-danger .wy-alert-title{background:#f29f97}.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .warning,.rst-content .wy-alert-warning.admonition,.rst-content .wy-alert-warning.danger,.rst-content .wy-alert-warning.error,.rst-content .wy-alert-warning.hint,.rst-content .wy-alert-warning.important,.rst-content .wy-alert-warning.note,.rst-content .wy-alert-warning.seealso,.rst-content .wy-alert-warning.tip,.wy-alert.wy-alert-warning{background:#ffedcc}.rst-content .admonition-todo .admonition-title,.rst-content .admonition-todo .wy-alert-title,.rst-content .attention .admonition-title,.rst-content .attention .wy-alert-title,.rst-content .caution .admonition-title,.rst-content .caution .wy-alert-title,.rst-content .warning .admonition-title,.rst-content .warning .wy-alert-title,.rst-content .wy-alert-warning.admonition .admonition-title,.rst-content .wy-alert-warning.admonition .wy-alert-title,.rst-content .wy-alert-warning.danger .admonition-title,.rst-content .wy-alert-warning.danger .wy-alert-title,.rst-content .wy-alert-warning.error .admonition-title,.rst-content .wy-alert-warning.error .wy-alert-title,.rst-content .wy-alert-warning.hint .admonition-title,.rst-content .wy-alert-warning.hint .wy-alert-title,.rst-content .wy-alert-warning.important .admonition-title,.rst-content .wy-alert-warning.important .wy-alert-title,.rst-content .wy-alert-warning.note .admonition-title,.rst-content .wy-alert-warning.note .wy-alert-title,.rst-content .wy-alert-warning.seealso .admonition-title,.rst-content .wy-alert-warning.seealso .wy-alert-title,.rst-content .wy-alert-warning.tip .admonition-title,.rst-content .wy-alert-warning.tip .wy-alert-title,.rst-content .wy-alert.wy-alert-warning .admonition-title,.wy-alert.wy-alert-warning .rst-content .admonition-title,.wy-alert.wy-alert-warning .wy-alert-title{background:#f0b37e}.rst-content .note,.rst-content .seealso,.rst-content .wy-alert-info.admonition,.rst-content .wy-alert-info.admonition-todo,.rst-content .wy-alert-info.attention,.rst-content .wy-alert-info.caution,.rst-content .wy-alert-info.danger,.rst-content .wy-alert-info.error,.rst-content .wy-alert-info.hint,.rst-content .wy-alert-info.important,.rst-content .wy-alert-info.tip,.rst-content .wy-alert-info.warning,.wy-alert.wy-alert-info{background:#e7f2fa}.rst-content .note .admonition-title,.rst-content .note .wy-alert-title,.rst-content .seealso .admonition-title,.rst-content .seealso .wy-alert-title,.rst-content .wy-alert-info.admonition-todo .admonition-title,.rst-content .wy-alert-info.admonition-todo .wy-alert-title,.rst-content .wy-alert-info.admonition .admonition-title,.rst-content .wy-alert-info.admonition .wy-alert-title,.rst-content .wy-alert-info.attention .admonition-title,.rst-content .wy-alert-info.attention .wy-alert-title,.rst-content .wy-alert-info.caution .admonition-title,.rst-content .wy-alert-info.caution .wy-alert-title,.rst-content .wy-alert-info.danger .admonition-title,.rst-content .wy-alert-info.danger .wy-alert-title,.rst-content .wy-alert-info.error .admonition-title,.rst-content .wy-alert-info.error .wy-alert-title,.rst-content .wy-alert-info.hint .admonition-title,.rst-content .wy-alert-info.hint .wy-alert-title,.rst-content .wy-alert-info.important .admonition-title,.rst-content .wy-alert-info.important .wy-alert-title,.rst-content .wy-alert-info.tip .admonition-title,.rst-content .wy-alert-info.tip .wy-alert-title,.rst-content .wy-alert-info.warning .admonition-title,.rst-content .wy-alert-info.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-info .admonition-title,.wy-alert.wy-alert-info .rst-content .admonition-title,.wy-alert.wy-alert-info .wy-alert-title{background:#6ab0de}.rst-content .hint,.rst-content .important,.rst-content .tip,.rst-content .wy-alert-success.admonition,.rst-content .wy-alert-success.admonition-todo,.rst-content .wy-alert-success.attention,.rst-content .wy-alert-success.caution,.rst-content .wy-alert-success.danger,.rst-content .wy-alert-success.error,.rst-content .wy-alert-success.note,.rst-content .wy-alert-success.seealso,.rst-content .wy-alert-success.warning,.wy-alert.wy-alert-success{background:#dbfaf4}.rst-content .hint .admonition-title,.rst-content .hint .wy-alert-title,.rst-content .important .admonition-title,.rst-content .important .wy-alert-title,.rst-content .tip .admonition-title,.rst-content .tip .wy-alert-title,.rst-content .wy-alert-success.admonition-todo .admonition-title,.rst-content .wy-alert-success.admonition-todo .wy-alert-title,.rst-content .wy-alert-success.admonition .admonition-title,.rst-content .wy-alert-success.admonition .wy-alert-title,.rst-content .wy-alert-success.attention .admonition-title,.rst-content .wy-alert-success.attention .wy-alert-title,.rst-content .wy-alert-success.caution .admonition-title,.rst-content .wy-alert-success.caution .wy-alert-title,.rst-content .wy-alert-success.danger .admonition-title,.rst-content .wy-alert-success.danger .wy-alert-title,.rst-content .wy-alert-success.error .admonition-title,.rst-content .wy-alert-success.error .wy-alert-title,.rst-content .wy-alert-success.note .admonition-title,.rst-content .wy-alert-success.note .wy-alert-title,.rst-content .wy-alert-success.seealso .admonition-title,.rst-content .wy-alert-success.seealso .wy-alert-title,.rst-content .wy-alert-success.warning .admonition-title,.rst-content .wy-alert-success.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-success .admonition-title,.wy-alert.wy-alert-success .rst-content .admonition-title,.wy-alert.wy-alert-success .wy-alert-title{background:#1abc9c}.rst-content .wy-alert-neutral.admonition,.rst-content .wy-alert-neutral.admonition-todo,.rst-content .wy-alert-neutral.attention,.rst-content .wy-alert-neutral.caution,.rst-content .wy-alert-neutral.danger,.rst-content .wy-alert-neutral.error,.rst-content .wy-alert-neutral.hint,.rst-content .wy-alert-neutral.important,.rst-content .wy-alert-neutral.note,.rst-content .wy-alert-neutral.seealso,.rst-content .wy-alert-neutral.tip,.rst-content .wy-alert-neutral.warning,.wy-alert.wy-alert-neutral{background:#f3f6f6}.rst-content .wy-alert-neutral.admonition-todo .admonition-title,.rst-content .wy-alert-neutral.admonition-todo .wy-alert-title,.rst-content .wy-alert-neutral.admonition .admonition-title,.rst-content .wy-alert-neutral.admonition .wy-alert-title,.rst-content .wy-alert-neutral.attention .admonition-title,.rst-content .wy-alert-neutral.attention .wy-alert-title,.rst-content .wy-alert-neutral.caution .admonition-title,.rst-content .wy-alert-neutral.caution .wy-alert-title,.rst-content .wy-alert-neutral.danger .admonition-title,.rst-content .wy-alert-neutral.danger .wy-alert-title,.rst-content .wy-alert-neutral.error .admonition-title,.rst-content .wy-alert-neutral.error .wy-alert-title,.rst-content .wy-alert-neutral.hint .admonition-title,.rst-content .wy-alert-neutral.hint .wy-alert-title,.rst-content .wy-alert-neutral.important .admonition-title,.rst-content .wy-alert-neutral.important .wy-alert-title,.rst-content .wy-alert-neutral.note .admonition-title,.rst-content .wy-alert-neutral.note .wy-alert-title,.rst-content .wy-alert-neutral.seealso .admonition-title,.rst-content .wy-alert-neutral.seealso .wy-alert-title,.rst-content .wy-alert-neutral.tip .admonition-title,.rst-content .wy-alert-neutral.tip .wy-alert-title,.rst-content .wy-alert-neutral.warning .admonition-title,.rst-content .wy-alert-neutral.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-neutral .admonition-title,.wy-alert.wy-alert-neutral .rst-content .admonition-title,.wy-alert.wy-alert-neutral .wy-alert-title{color:#404040;background:#e1e4e5}.rst-content .wy-alert-neutral.admonition-todo a,.rst-content .wy-alert-neutral.admonition a,.rst-content .wy-alert-neutral.attention a,.rst-content .wy-alert-neutral.caution a,.rst-content .wy-alert-neutral.danger a,.rst-content .wy-alert-neutral.error a,.rst-content .wy-alert-neutral.hint a,.rst-content .wy-alert-neutral.important a,.rst-content .wy-alert-neutral.note a,.rst-content .wy-alert-neutral.seealso a,.rst-content .wy-alert-neutral.tip a,.rst-content .wy-alert-neutral.warning a,.wy-alert.wy-alert-neutral a{color:#2980b9}.rst-content .admonition-todo p:last-child,.rst-content .admonition p:last-child,.rst-content .attention p:last-child,.rst-content .caution p:last-child,.rst-content .danger p:last-child,.rst-content .error p:last-child,.rst-content .hint p:last-child,.rst-content .important p:last-child,.rst-content .note p:last-child,.rst-content .seealso p:last-child,.rst-content .tip p:last-child,.rst-content .warning p:last-child,.wy-alert p:last-child{margin-bottom:0}.wy-tray-container{position:fixed;bottom:0;left:0;z-index:600}.wy-tray-container li{display:block;width:300px;background:transparent;color:#fff;text-align:center;box-shadow:0 5px 5px 0 rgba(0,0,0,.1);padding:0 24px;min-width:20%;opacity:0;height:0;line-height:56px;overflow:hidden;-webkit-transition:all .3s ease-in;-moz-transition:all .3s ease-in;transition:all .3s ease-in}.wy-tray-container li.wy-tray-item-success{background:#27ae60}.wy-tray-container li.wy-tray-item-info{background:#2980b9}.wy-tray-container li.wy-tray-item-warning{background:#e67e22}.wy-tray-container li.wy-tray-item-danger{background:#e74c3c}.wy-tray-container li.on{opacity:1;height:56px}@media screen and (max-width:768px){.wy-tray-container{bottom:auto;top:0;width:100%}.wy-tray-container li{width:100%}}button{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle;cursor:pointer;line-height:normal;-webkit-appearance:button;*overflow:visible}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}button[disabled]{cursor:default}.btn{display:inline-block;border-radius:2px;line-height:normal;white-space:nowrap;text-align:center;cursor:pointer;font-size:100%;padding:6px 12px 8px;color:#fff;border:1px solid rgba(0,0,0,.1);background-color:#27ae60;text-decoration:none;font-weight:400;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 2px -1px hsla(0,0%,100%,.5),inset 0 -2px 0 0 rgba(0,0,0,.1);outline-none:false;vertical-align:middle;*display:inline;zoom:1;-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:all .1s linear;-moz-transition:all .1s linear;transition:all .1s linear}.btn-hover{background:#2e8ece;color:#fff}.btn:hover{background:#2cc36b;color:#fff}.btn:focus{background:#2cc36b;outline:0}.btn:active{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.05),inset 0 2px 0 0 rgba(0,0,0,.1);padding:8px 12px 6px}.btn:visited{color:#fff}.btn-disabled,.btn-disabled:active,.btn-disabled:focus,.btn-disabled:hover,.btn:disabled{background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);opacity:.4;cursor:not-allowed;box-shadow:none}.btn::-moz-focus-inner{padding:0;border:0}.btn-small{font-size:80%}.btn-info{background-color:#2980b9!important}.btn-info:hover{background-color:#2e8ece!important}.btn-neutral{background-color:#f3f6f6!important;color:#404040!important}.btn-neutral:hover{background-color:#e5ebeb!important;color:#404040}.btn-neutral:visited{color:#404040!important}.btn-success{background-color:#27ae60!important}.btn-success:hover{background-color:#295!important}.btn-danger{background-color:#e74c3c!important}.btn-danger:hover{background-color:#ea6153!important}.btn-warning{background-color:#e67e22!important}.btn-warning:hover{background-color:#e98b39!important}.btn-invert{background-color:#222}.btn-invert:hover{background-color:#2f2f2f!important}.btn-link{background-color:transparent!important;color:#2980b9;box-shadow:none;border-color:transparent!important}.btn-link:active,.btn-link:hover{background-color:transparent!important;color:#409ad5!important;box-shadow:none}.btn-link:visited{color:#9b59b6}.wy-btn-group .btn,.wy-control .btn{vertical-align:middle}.wy-btn-group{margin-bottom:24px;*zoom:1}.wy-btn-group:after,.wy-btn-group:before{display:table;content:""}.wy-btn-group:after{clear:both}.wy-dropdown{position:relative;display:inline-block}.wy-dropdown-active .wy-dropdown-menu{display:block}.wy-dropdown-menu{position:absolute;left:0;display:none;float:left;top:100%;min-width:100%;background:#fcfcfc;z-index:100;border:1px solid #cfd7dd;box-shadow:0 2px 2px 0 rgba(0,0,0,.1);padding:12px}.wy-dropdown-menu>dd>a{display:block;clear:both;color:#404040;white-space:nowrap;font-size:90%;padding:0 12px;cursor:pointer}.wy-dropdown-menu>dd>a:hover{background:#2980b9;color:#fff}.wy-dropdown-menu>dd.divider{border-top:1px solid #cfd7dd;margin:6px 0}.wy-dropdown-menu>dd.search{padding-bottom:12px}.wy-dropdown-menu>dd.search input[type=search]{width:100%}.wy-dropdown-menu>dd.call-to-action{background:#e3e3e3;text-transform:uppercase;font-weight:500;font-size:80%}.wy-dropdown-menu>dd.call-to-action:hover{background:#e3e3e3}.wy-dropdown-menu>dd.call-to-action .btn{color:#fff}.wy-dropdown.wy-dropdown-up .wy-dropdown-menu{bottom:100%;top:auto;left:auto;right:0}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu{background:#fcfcfc;margin-top:2px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a{padding:6px 12px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a:hover{background:#2980b9;color:#fff}.wy-dropdown.wy-dropdown-left .wy-dropdown-menu{right:0;left:auto;text-align:right}.wy-dropdown-arrow:before{content:" ";border-bottom:5px solid #f5f5f5;border-left:5px solid transparent;border-right:5px solid transparent;position:absolute;display:block;top:-4px;left:50%;margin-left:-3px}.wy-dropdown-arrow.wy-dropdown-arrow-left:before{left:11px}.wy-form-stacked select{display:block}.wy-form-aligned .wy-help-inline,.wy-form-aligned input,.wy-form-aligned label,.wy-form-aligned select,.wy-form-aligned textarea{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-form-aligned .wy-control-group>label{display:inline-block;vertical-align:middle;width:10em;margin:6px 12px 0 0;float:left}.wy-form-aligned .wy-control{float:left}.wy-form-aligned .wy-control label{display:block}.wy-form-aligned .wy-control select{margin-top:6px}fieldset{margin:0}fieldset,legend{border:0;padding:0}legend{width:100%;white-space:normal;margin-bottom:24px;font-size:150%;*margin-left:-7px}label,legend{display:block}label{margin:0 0 .3125em;color:#333;font-size:90%}input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}.wy-control-group{margin-bottom:24px;max-width:1200px;margin-left:auto;margin-right:auto;*zoom:1}.wy-control-group:after,.wy-control-group:before{display:table;content:""}.wy-control-group:after{clear:both}.wy-control-group.wy-control-group-required>label:after{content:" *";color:#e74c3c}.wy-control-group .wy-form-full,.wy-control-group .wy-form-halves,.wy-control-group .wy-form-thirds{padding-bottom:12px}.wy-control-group .wy-form-full input[type=color],.wy-control-group .wy-form-full input[type=date],.wy-control-group .wy-form-full input[type=datetime-local],.wy-control-group .wy-form-full input[type=datetime],.wy-control-group .wy-form-full input[type=email],.wy-control-group .wy-form-full input[type=month],.wy-control-group .wy-form-full input[type=number],.wy-control-group .wy-form-full input[type=password],.wy-control-group .wy-form-full input[type=search],.wy-control-group .wy-form-full input[type=tel],.wy-control-group .wy-form-full input[type=text],.wy-control-group .wy-form-full input[type=time],.wy-control-group .wy-form-full input[type=url],.wy-control-group .wy-form-full input[type=week],.wy-control-group .wy-form-full select,.wy-control-group .wy-form-halves input[type=color],.wy-control-group .wy-form-halves input[type=date],.wy-control-group .wy-form-halves input[type=datetime-local],.wy-control-group .wy-form-halves input[type=datetime],.wy-control-group .wy-form-halves input[type=email],.wy-control-group .wy-form-halves input[type=month],.wy-control-group .wy-form-halves input[type=number],.wy-control-group .wy-form-halves input[type=password],.wy-control-group .wy-form-halves input[type=search],.wy-control-group .wy-form-halves input[type=tel],.wy-control-group .wy-form-halves input[type=text],.wy-control-group .wy-form-halves input[type=time],.wy-control-group .wy-form-halves input[type=url],.wy-control-group .wy-form-halves input[type=week],.wy-control-group .wy-form-halves select,.wy-control-group .wy-form-thirds input[type=color],.wy-control-group .wy-form-thirds input[type=date],.wy-control-group .wy-form-thirds input[type=datetime-local],.wy-control-group .wy-form-thirds input[type=datetime],.wy-control-group .wy-form-thirds input[type=email],.wy-control-group .wy-form-thirds input[type=month],.wy-control-group .wy-form-thirds input[type=number],.wy-control-group .wy-form-thirds input[type=password],.wy-control-group .wy-form-thirds input[type=search],.wy-control-group .wy-form-thirds input[type=tel],.wy-control-group .wy-form-thirds input[type=text],.wy-control-group .wy-form-thirds input[type=time],.wy-control-group .wy-form-thirds input[type=url],.wy-control-group .wy-form-thirds input[type=week],.wy-control-group .wy-form-thirds select{width:100%}.wy-control-group .wy-form-full{float:left;display:block;width:100%;margin-right:0}.wy-control-group .wy-form-full:last-child{margin-right:0}.wy-control-group .wy-form-halves{float:left;display:block;margin-right:2.35765%;width:48.82117%}.wy-control-group .wy-form-halves:last-child,.wy-control-group .wy-form-halves:nth-of-type(2n){margin-right:0}.wy-control-group .wy-form-halves:nth-of-type(odd){clear:left}.wy-control-group .wy-form-thirds{float:left;display:block;margin-right:2.35765%;width:31.76157%}.wy-control-group .wy-form-thirds:last-child,.wy-control-group .wy-form-thirds:nth-of-type(3n){margin-right:0}.wy-control-group .wy-form-thirds:nth-of-type(3n+1){clear:left}.wy-control-group.wy-control-group-no-input .wy-control,.wy-control-no-input{margin:6px 0 0;font-size:90%}.wy-control-no-input{display:inline-block}.wy-control-group.fluid-input input[type=color],.wy-control-group.fluid-input input[type=date],.wy-control-group.fluid-input input[type=datetime-local],.wy-control-group.fluid-input input[type=datetime],.wy-control-group.fluid-input input[type=email],.wy-control-group.fluid-input input[type=month],.wy-control-group.fluid-input input[type=number],.wy-control-group.fluid-input input[type=password],.wy-control-group.fluid-input input[type=search],.wy-control-group.fluid-input input[type=tel],.wy-control-group.fluid-input input[type=text],.wy-control-group.fluid-input input[type=time],.wy-control-group.fluid-input input[type=url],.wy-control-group.fluid-input input[type=week]{width:100%}.wy-form-message-inline{padding-left:.3em;color:#666;font-size:90%}.wy-form-message{display:block;color:#999;font-size:70%;margin-top:.3125em;font-style:italic}.wy-form-message p{font-size:inherit;font-style:italic;margin-bottom:6px}.wy-form-message p:last-child{margin-bottom:0}input{line-height:normal}input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;*overflow:visible}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week]{-webkit-appearance:none;padding:6px;display:inline-block;border:1px solid #ccc;font-size:80%;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 3px #ddd;border-radius:0;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}input[type=datetime-local]{padding:.34375em .625em}input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{padding:0;margin-right:.3125em;*height:13px;*width:13px}input[type=checkbox],input[type=radio],input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus{outline:0;outline:thin dotted\9;border-color:#333}input.no-focus:focus{border-color:#ccc!important}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:thin dotted #333;outline:1px auto #129fea}input[type=color][disabled],input[type=date][disabled],input[type=datetime-local][disabled],input[type=datetime][disabled],input[type=email][disabled],input[type=month][disabled],input[type=number][disabled],input[type=password][disabled],input[type=search][disabled],input[type=tel][disabled],input[type=text][disabled],input[type=time][disabled],input[type=url][disabled],input[type=week][disabled]{cursor:not-allowed;background-color:#fafafa}input:focus:invalid,select:focus:invalid,textarea:focus:invalid{color:#e74c3c;border:1px solid #e74c3c}input:focus:invalid:focus,select:focus:invalid:focus,textarea:focus:invalid:focus{border-color:#e74c3c}input[type=checkbox]:focus:invalid:focus,input[type=file]:focus:invalid:focus,input[type=radio]:focus:invalid:focus{outline-color:#e74c3c}input.wy-input-large{padding:12px;font-size:100%}textarea{overflow:auto;vertical-align:top;width:100%;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif}select,textarea{padding:.5em .625em;display:inline-block;border:1px solid #ccc;font-size:80%;box-shadow:inset 0 1px 3px #ddd;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}select{border:1px solid #ccc;background-color:#fff}select[multiple]{height:auto}select:focus,textarea:focus{outline:0}input[readonly],select[disabled],select[readonly],textarea[disabled],textarea[readonly]{cursor:not-allowed;background-color:#fafafa}input[type=checkbox][disabled],input[type=radio][disabled]{cursor:not-allowed}.wy-checkbox,.wy-radio{margin:6px 0;color:#404040;display:block}.wy-checkbox input,.wy-radio input{vertical-align:baseline}.wy-form-message-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-input-prefix,.wy-input-suffix{white-space:nowrap;padding:6px}.wy-input-prefix .wy-input-context,.wy-input-suffix .wy-input-context{line-height:27px;padding:0 8px;display:inline-block;font-size:80%;background-color:#f3f6f6;border:1px solid #ccc;color:#999}.wy-input-suffix .wy-input-context{border-left:0}.wy-input-prefix .wy-input-context{border-right:0}.wy-switch{position:relative;display:block;height:24px;margin-top:12px;cursor:pointer}.wy-switch:before{left:0;top:0;width:36px;height:12px;background:#ccc}.wy-switch:after,.wy-switch:before{position:absolute;content:"";display:block;border-radius:4px;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.wy-switch:after{width:18px;height:18px;background:#999;left:-3px;top:-3px}.wy-switch span{position:absolute;left:48px;display:block;font-size:12px;color:#ccc;line-height:1}.wy-switch.active:before{background:#1e8449}.wy-switch.active:after{left:24px;background:#27ae60}.wy-switch.disabled{cursor:not-allowed;opacity:.8}.wy-control-group.wy-control-group-error .wy-form-message,.wy-control-group.wy-control-group-error>label{color:#e74c3c}.wy-control-group.wy-control-group-error input[type=color],.wy-control-group.wy-control-group-error input[type=date],.wy-control-group.wy-control-group-error input[type=datetime-local],.wy-control-group.wy-control-group-error input[type=datetime],.wy-control-group.wy-control-group-error input[type=email],.wy-control-group.wy-control-group-error input[type=month],.wy-control-group.wy-control-group-error input[type=number],.wy-control-group.wy-control-group-error input[type=password],.wy-control-group.wy-control-group-error input[type=search],.wy-control-group.wy-control-group-error input[type=tel],.wy-control-group.wy-control-group-error input[type=text],.wy-control-group.wy-control-group-error input[type=time],.wy-control-group.wy-control-group-error input[type=url],.wy-control-group.wy-control-group-error input[type=week],.wy-control-group.wy-control-group-error textarea{border:1px solid #e74c3c}.wy-inline-validate{white-space:nowrap}.wy-inline-validate .wy-input-context{padding:.5em .625em;display:inline-block;font-size:80%}.wy-inline-validate.wy-inline-validate-success .wy-input-context{color:#27ae60}.wy-inline-validate.wy-inline-validate-danger .wy-input-context{color:#e74c3c}.wy-inline-validate.wy-inline-validate-warning .wy-input-context{color:#e67e22}.wy-inline-validate.wy-inline-validate-info .wy-input-context{color:#2980b9}.rotate-90{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.rotate-180{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.rotate-270{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.mirror{-webkit-transform:scaleX(-1);-moz-transform:scaleX(-1);-ms-transform:scaleX(-1);-o-transform:scaleX(-1);transform:scaleX(-1)}.mirror.rotate-90{-webkit-transform:scaleX(-1) rotate(90deg);-moz-transform:scaleX(-1) rotate(90deg);-ms-transform:scaleX(-1) rotate(90deg);-o-transform:scaleX(-1) rotate(90deg);transform:scaleX(-1) rotate(90deg)}.mirror.rotate-180{-webkit-transform:scaleX(-1) rotate(180deg);-moz-transform:scaleX(-1) rotate(180deg);-ms-transform:scaleX(-1) rotate(180deg);-o-transform:scaleX(-1) rotate(180deg);transform:scaleX(-1) rotate(180deg)}.mirror.rotate-270{-webkit-transform:scaleX(-1) rotate(270deg);-moz-transform:scaleX(-1) rotate(270deg);-ms-transform:scaleX(-1) rotate(270deg);-o-transform:scaleX(-1) rotate(270deg);transform:scaleX(-1) rotate(270deg)}@media only screen and (max-width:480px){.wy-form button[type=submit]{margin:.7em 0 0}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=text],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week],.wy-form label{margin-bottom:.3em;display:block}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week]{margin-bottom:0}.wy-form-aligned .wy-control-group label{margin-bottom:.3em;text-align:left;display:block;width:100%}.wy-form-aligned .wy-control{margin:1.5em 0 0}.wy-form-message,.wy-form-message-inline,.wy-form .wy-help-inline{display:block;font-size:80%;padding:6px 0}}@media screen and (max-width:768px){.tablet-hide{display:none}}@media screen and (max-width:480px){.mobile-hide{display:none}}.float-left{float:left}.float-right{float:right}.full-width{width:100%}.rst-content table.docutils,.rst-content table.field-list,.wy-table{border-collapse:collapse;border-spacing:0;empty-cells:show;margin-bottom:24px}.rst-content table.docutils caption,.rst-content table.field-list caption,.wy-table caption{color:#000;font:italic 85%/1 arial,sans-serif;padding:1em 0;text-align:center}.rst-content table.docutils td,.rst-content table.docutils th,.rst-content table.field-list td,.rst-content table.field-list th,.wy-table td,.wy-table th{font-size:90%;margin:0;overflow:visible;padding:8px 16px}.rst-content table.docutils td:first-child,.rst-content table.docutils th:first-child,.rst-content table.field-list td:first-child,.rst-content table.field-list th:first-child,.wy-table td:first-child,.wy-table th:first-child{border-left-width:0}.rst-content table.docutils thead,.rst-content table.field-list thead,.wy-table thead{color:#000;text-align:left;vertical-align:bottom;white-space:nowrap}.rst-content table.docutils thead th,.rst-content table.field-list thead th,.wy-table thead th{font-weight:700;border-bottom:2px solid #e1e4e5}.rst-content table.docutils td,.rst-content table.field-list td,.wy-table td{background-color:transparent;vertical-align:middle}.rst-content table.docutils td p,.rst-content table.field-list td p,.wy-table td p{line-height:18px}.rst-content table.docutils td p:last-child,.rst-content table.field-list td p:last-child,.wy-table td p:last-child{margin-bottom:0}.rst-content table.docutils .wy-table-cell-min,.rst-content table.field-list .wy-table-cell-min,.wy-table .wy-table-cell-min{width:1%;padding-right:0}.rst-content table.docutils .wy-table-cell-min input[type=checkbox],.rst-content table.field-list .wy-table-cell-min input[type=checkbox],.wy-table .wy-table-cell-min input[type=checkbox]{margin:0}.wy-table-secondary{color:grey;font-size:90%}.wy-table-tertiary{color:grey;font-size:80%}.rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td,.wy-table-backed,.wy-table-odd td,.wy-table-striped tr:nth-child(2n-1) td{background-color:#f3f6f6}.rst-content table.docutils,.wy-table-bordered-all{border:1px solid #e1e4e5}.rst-content table.docutils td,.wy-table-bordered-all td{border-bottom:1px solid #e1e4e5;border-left:1px solid #e1e4e5}.rst-content table.docutils tbody>tr:last-child td,.wy-table-bordered-all tbody>tr:last-child td{border-bottom-width:0}.wy-table-bordered{border:1px solid #e1e4e5}.wy-table-bordered-rows td{border-bottom:1px solid #e1e4e5}.wy-table-bordered-rows tbody>tr:last-child td{border-bottom-width:0}.wy-table-horizontal td,.wy-table-horizontal th{border-width:0 0 1px;border-bottom:1px solid #e1e4e5}.wy-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.wy-table-responsive{margin-bottom:24px;max-width:100%;overflow:auto}.wy-table-responsive table{margin-bottom:0!important}.wy-table-responsive table td,.wy-table-responsive table th{white-space:nowrap}a{color:#2980b9;text-decoration:none;cursor:pointer}a:hover{color:#3091d1}a:visited{color:#9b59b6}html{height:100%}body,html{overflow-x:hidden}body{font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;font-weight:400;color:#404040;min-height:100%;background:#edf0f2}.wy-text-left{text-align:left}.wy-text-center{text-align:center}.wy-text-right{text-align:right}.wy-text-large{font-size:120%}.wy-text-normal{font-size:100%}.wy-text-small,small{font-size:80%}.wy-text-strike{text-decoration:line-through}.wy-text-warning{color:#e67e22!important}a.wy-text-warning:hover{color:#eb9950!important}.wy-text-info{color:#2980b9!important}a.wy-text-info:hover{color:#409ad5!important}.wy-text-success{color:#27ae60!important}a.wy-text-success:hover{color:#36d278!important}.wy-text-danger{color:#e74c3c!important}a.wy-text-danger:hover{color:#ed7669!important}.wy-text-neutral{color:#404040!important}a.wy-text-neutral:hover{color:#595959!important}.rst-content .toctree-wrapper>p.caption,h1,h2,h3,h4,h5,h6,legend{margin-top:0;font-weight:700;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif}p{line-height:24px;font-size:16px;margin:0 0 24px}h1{font-size:175%}.rst-content .toctree-wrapper>p.caption,h2{font-size:150%}h3{font-size:125%}h4{font-size:115%}h5{font-size:110%}h6{font-size:100%}hr{display:block;height:1px;border:0;border-top:1px solid #e1e4e5;margin:24px 0;padding:0}.rst-content code,.rst-content tt,code{white-space:nowrap;max-width:100%;background:#fff;border:1px solid #e1e4e5;font-size:75%;padding:0 5px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#e74c3c;overflow-x:auto}.rst-content tt.code-large,code.code-large{font-size:90%}.rst-content .section ul,.rst-content .toctree-wrapper ul,.rst-content section ul,.wy-plain-list-disc,article ul{list-style:disc;line-height:24px;margin-bottom:24px}.rst-content .section ul li,.rst-content .toctree-wrapper ul li,.rst-content section ul li,.wy-plain-list-disc li,article ul li{list-style:disc;margin-left:24px}.rst-content .section ul li p:last-child,.rst-content .section ul li ul,.rst-content .toctree-wrapper ul li p:last-child,.rst-content .toctree-wrapper ul li ul,.rst-content section ul li p:last-child,.rst-content section ul li ul,.wy-plain-list-disc li p:last-child,.wy-plain-list-disc li ul,article ul li p:last-child,article ul li ul{margin-bottom:0}.rst-content .section ul li li,.rst-content .toctree-wrapper ul li li,.rst-content section ul li li,.wy-plain-list-disc li li,article ul li li{list-style:circle}.rst-content .section ul li li li,.rst-content .toctree-wrapper ul li li li,.rst-content section ul li li li,.wy-plain-list-disc li li li,article ul li li li{list-style:square}.rst-content .section ul li ol li,.rst-content .toctree-wrapper ul li ol li,.rst-content section ul li ol li,.wy-plain-list-disc li ol li,article ul li ol li{list-style:decimal}.rst-content .section ol,.rst-content .section ol.arabic,.rst-content .toctree-wrapper ol,.rst-content .toctree-wrapper ol.arabic,.rst-content section ol,.rst-content section ol.arabic,.wy-plain-list-decimal,article ol{list-style:decimal;line-height:24px;margin-bottom:24px}.rst-content .section ol.arabic li,.rst-content .section ol li,.rst-content .toctree-wrapper ol.arabic li,.rst-content .toctree-wrapper ol li,.rst-content section ol.arabic li,.rst-content section ol li,.wy-plain-list-decimal li,article ol li{list-style:decimal;margin-left:24px}.rst-content .section ol.arabic li ul,.rst-content .section ol li p:last-child,.rst-content .section ol li ul,.rst-content .toctree-wrapper ol.arabic li ul,.rst-content .toctree-wrapper ol li p:last-child,.rst-content .toctree-wrapper ol li ul,.rst-content section ol.arabic li ul,.rst-content section ol li p:last-child,.rst-content section ol li ul,.wy-plain-list-decimal li p:last-child,.wy-plain-list-decimal li ul,article ol li p:last-child,article ol li ul{margin-bottom:0}.rst-content .section ol.arabic li ul li,.rst-content .section ol li ul li,.rst-content .toctree-wrapper ol.arabic li ul li,.rst-content .toctree-wrapper ol li ul li,.rst-content section ol.arabic li ul li,.rst-content section ol li ul li,.wy-plain-list-decimal li ul li,article ol li ul li{list-style:disc}.wy-breadcrumbs{*zoom:1}.wy-breadcrumbs:after,.wy-breadcrumbs:before{display:table;content:""}.wy-breadcrumbs:after{clear:both}.wy-breadcrumbs>li{display:inline-block;padding-top:5px}.wy-breadcrumbs>li.wy-breadcrumbs-aside{float:right}.rst-content .wy-breadcrumbs>li code,.rst-content .wy-breadcrumbs>li tt,.wy-breadcrumbs>li .rst-content tt,.wy-breadcrumbs>li code{all:inherit;color:inherit}.breadcrumb-item:before{content:"/";color:#bbb;font-size:13px;padding:0 6px 0 3px}.wy-breadcrumbs-extra{margin-bottom:0;color:#b3b3b3;font-size:80%;display:inline-block}@media screen and (max-width:480px){.wy-breadcrumbs-extra,.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}@media print{.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}html{font-size:16px}.wy-affix{position:fixed;top:1.618em}.wy-menu a:hover{text-decoration:none}.wy-menu-horiz{*zoom:1}.wy-menu-horiz:after,.wy-menu-horiz:before{display:table;content:""}.wy-menu-horiz:after{clear:both}.wy-menu-horiz li,.wy-menu-horiz ul{display:inline-block}.wy-menu-horiz li:hover{background:hsla(0,0%,100%,.1)}.wy-menu-horiz li.divide-left{border-left:1px solid #404040}.wy-menu-horiz li.divide-right{border-right:1px solid #404040}.wy-menu-horiz a{height:32px;display:inline-block;line-height:32px;padding:0 16px}.wy-menu-vertical{width:300px}.wy-menu-vertical header,.wy-menu-vertical p.caption{color:#55a5d9;height:32px;line-height:32px;padding:0 1.618em;margin:12px 0 0;display:block;font-weight:700;text-transform:uppercase;font-size:85%;white-space:nowrap}.wy-menu-vertical ul{margin-bottom:0}.wy-menu-vertical li.divide-top{border-top:1px solid #404040}.wy-menu-vertical li.divide-bottom{border-bottom:1px solid #404040}.wy-menu-vertical li.current{background:#e3e3e3}.wy-menu-vertical li.current a{color:grey;border-right:1px solid #c9c9c9;padding:.4045em 2.427em}.wy-menu-vertical li.current a:hover{background:#d6d6d6}.rst-content .wy-menu-vertical li tt,.wy-menu-vertical li .rst-content tt,.wy-menu-vertical li code{border:none;background:inherit;color:inherit;padding-left:0;padding-right:0}.wy-menu-vertical li button.toctree-expand{display:block;float:left;margin-left:-1.2em;line-height:18px;color:#4d4d4d;border:none;background:none;padding:0}.wy-menu-vertical li.current>a,.wy-menu-vertical li.on a{color:#404040;font-weight:700;position:relative;background:#fcfcfc;border:none;padding:.4045em 1.618em}.wy-menu-vertical li.current>a:hover,.wy-menu-vertical li.on a:hover{background:#fcfcfc}.wy-menu-vertical li.current>a:hover button.toctree-expand,.wy-menu-vertical li.on a:hover button.toctree-expand{color:grey}.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand{display:block;line-height:18px;color:#333}.wy-menu-vertical li.toctree-l1.current>a{border-bottom:1px solid #c9c9c9;border-top:1px solid #c9c9c9}.wy-menu-vertical .toctree-l1.current .toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .toctree-l11>ul{display:none}.wy-menu-vertical .toctree-l1.current .current.toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .current.toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .current.toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .current.toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .current.toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .current.toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .current.toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .current.toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .current.toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .current.toctree-l11>ul{display:block}.wy-menu-vertical li.toctree-l3,.wy-menu-vertical li.toctree-l4{font-size:.9em}.wy-menu-vertical li.toctree-l2 a,.wy-menu-vertical li.toctree-l3 a,.wy-menu-vertical li.toctree-l4 a,.wy-menu-vertical li.toctree-l5 a,.wy-menu-vertical li.toctree-l6 a,.wy-menu-vertical li.toctree-l7 a,.wy-menu-vertical li.toctree-l8 a,.wy-menu-vertical li.toctree-l9 a,.wy-menu-vertical li.toctree-l10 a{color:#404040}.wy-menu-vertical li.toctree-l2 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l3 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l4 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l5 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l6 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l7 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l8 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l9 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l10 a:hover button.toctree-expand{color:grey}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a,.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a,.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a,.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a,.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a,.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a,.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a,.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{display:block}.wy-menu-vertical li.toctree-l2.current>a{padding:.4045em 2.427em}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{padding:.4045em 1.618em .4045em 4.045em}.wy-menu-vertical li.toctree-l3.current>a{padding:.4045em 4.045em}.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{padding:.4045em 1.618em .4045em 5.663em}.wy-menu-vertical li.toctree-l4.current>a{padding:.4045em 5.663em}.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a{padding:.4045em 1.618em .4045em 7.281em}.wy-menu-vertical li.toctree-l5.current>a{padding:.4045em 7.281em}.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a{padding:.4045em 1.618em .4045em 8.899em}.wy-menu-vertical li.toctree-l6.current>a{padding:.4045em 8.899em}.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a{padding:.4045em 1.618em .4045em 10.517em}.wy-menu-vertical li.toctree-l7.current>a{padding:.4045em 10.517em}.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a{padding:.4045em 1.618em .4045em 12.135em}.wy-menu-vertical li.toctree-l8.current>a{padding:.4045em 12.135em}.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a{padding:.4045em 1.618em .4045em 13.753em}.wy-menu-vertical li.toctree-l9.current>a{padding:.4045em 13.753em}.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a{padding:.4045em 1.618em .4045em 15.371em}.wy-menu-vertical li.toctree-l10.current>a{padding:.4045em 15.371em}.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{padding:.4045em 1.618em .4045em 16.989em}.wy-menu-vertical li.toctree-l2.current>a,.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{background:#c9c9c9}.wy-menu-vertical li.toctree-l2 button.toctree-expand{color:#a3a3a3}.wy-menu-vertical li.toctree-l3.current>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{background:#bdbdbd}.wy-menu-vertical li.toctree-l3 button.toctree-expand{color:#969696}.wy-menu-vertical li.current ul{display:block}.wy-menu-vertical li ul{margin-bottom:0;display:none}.wy-menu-vertical li ul li a{margin-bottom:0;color:#d9d9d9;font-weight:400}.wy-menu-vertical a{line-height:18px;padding:.4045em 1.618em;display:block;position:relative;font-size:90%;color:#d9d9d9}.wy-menu-vertical a:hover{background-color:#4e4a4a;cursor:pointer}.wy-menu-vertical a:hover button.toctree-expand{color:#d9d9d9}.wy-menu-vertical a:active{background-color:#2980b9;cursor:pointer;color:#fff}.wy-menu-vertical a:active button.toctree-expand{color:#fff}.wy-side-nav-search{display:block;width:300px;padding:.809em;margin-bottom:.809em;z-index:200;background-color:#2980b9;text-align:center;color:#fcfcfc}.wy-side-nav-search input[type=text]{width:100%;border-radius:50px;padding:6px 12px;border-color:#2472a4}.wy-side-nav-search img{display:block;margin:auto auto .809em;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-side-nav-search .wy-dropdown>a,.wy-side-nav-search>a{color:#fcfcfc;font-size:100%;font-weight:700;display:inline-block;padding:4px 6px;margin-bottom:.809em;max-width:100%}.wy-side-nav-search .wy-dropdown>a:hover,.wy-side-nav-search .wy-dropdown>aactive,.wy-side-nav-search .wy-dropdown>afocus,.wy-side-nav-search>a:hover,.wy-side-nav-search>aactive,.wy-side-nav-search>afocus{background:hsla(0,0%,100%,.1)}.wy-side-nav-search .wy-dropdown>a img.logo,.wy-side-nav-search>a img.logo{display:block;margin:0 auto;height:auto;width:auto;border-radius:0;max-width:100%;background:transparent}.wy-side-nav-search .wy-dropdown>a.icon,.wy-side-nav-search>a.icon{display:block}.wy-side-nav-search .wy-dropdown>a.icon img.logo,.wy-side-nav-search>a.icon img.logo{margin-top:.85em}.wy-side-nav-search>div.switch-menus{position:relative;display:block;margin-top:-.4045em;margin-bottom:.809em;font-weight:400;color:hsla(0,0%,100%,.3)}.wy-side-nav-search>div.switch-menus>div.language-switch,.wy-side-nav-search>div.switch-menus>div.version-switch{display:inline-block;padding:.2em}.wy-side-nav-search>div.switch-menus>div.language-switch select,.wy-side-nav-search>div.switch-menus>div.version-switch select{display:inline-block;margin-right:-2rem;padding-right:2rem;max-width:240px;text-align-last:center;background:none;border:none;border-radius:0;box-shadow:none;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;font-size:1em;font-weight:400;color:hsla(0,0%,100%,.3);cursor:pointer;appearance:none;-webkit-appearance:none;-moz-appearance:none}.wy-side-nav-search>div.switch-menus>div.language-switch select:active,.wy-side-nav-search>div.switch-menus>div.language-switch select:focus,.wy-side-nav-search>div.switch-menus>div.language-switch select:hover,.wy-side-nav-search>div.switch-menus>div.version-switch select:active,.wy-side-nav-search>div.switch-menus>div.version-switch select:focus,.wy-side-nav-search>div.switch-menus>div.version-switch select:hover{background:hsla(0,0%,100%,.1);color:hsla(0,0%,100%,.5)}.wy-side-nav-search>div.switch-menus>div.language-switch select option,.wy-side-nav-search>div.switch-menus>div.version-switch select option{color:#000}.wy-side-nav-search>div.switch-menus>div.language-switch:has(>select):after,.wy-side-nav-search>div.switch-menus>div.version-switch:has(>select):after{display:inline-block;width:1.5em;height:100%;padding:.1em;content:"\f0d7";font-size:1em;line-height:1.2em;font-family:FontAwesome;text-align:center;pointer-events:none;box-sizing:border-box}.wy-nav .wy-menu-vertical header{color:#2980b9}.wy-nav .wy-menu-vertical a{color:#b3b3b3}.wy-nav .wy-menu-vertical a:hover{background-color:#2980b9;color:#fff}[data-menu-wrap]{-webkit-transition:all .2s ease-in;-moz-transition:all .2s ease-in;transition:all .2s ease-in;position:absolute;opacity:1;width:100%;opacity:0}[data-menu-wrap].move-center{left:0;right:auto;opacity:1}[data-menu-wrap].move-left{right:auto;left:-100%;opacity:0}[data-menu-wrap].move-right{right:-100%;left:auto;opacity:0}.wy-body-for-nav{background:#fcfcfc}.wy-grid-for-nav{position:absolute;width:100%;height:100%}.wy-nav-side{position:fixed;top:0;bottom:0;left:0;padding-bottom:2em;width:300px;overflow-x:hidden;overflow-y:hidden;min-height:100%;color:#9b9b9b;background:#343131;z-index:200}.wy-side-scroll{width:320px;position:relative;overflow-x:hidden;overflow-y:scroll;height:100%}.wy-nav-top{display:none;background:#2980b9;color:#fff;padding:.4045em .809em;position:relative;line-height:50px;text-align:center;font-size:100%;*zoom:1}.wy-nav-top:after,.wy-nav-top:before{display:table;content:""}.wy-nav-top:after{clear:both}.wy-nav-top a{color:#fff;font-weight:700}.wy-nav-top img{margin-right:12px;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-nav-top i{font-size:30px;float:left;cursor:pointer;padding-top:inherit}.wy-nav-content-wrap{margin-left:300px;background:#fcfcfc;min-height:100%}.wy-nav-content{padding:1.618em 3.236em;height:100%;max-width:800px;margin:auto}.wy-body-mask{position:fixed;width:100%;height:100%;background:rgba(0,0,0,.2);display:none;z-index:499}.wy-body-mask.on{display:block}footer{color:grey}footer p{margin-bottom:12px}.rst-content footer span.commit tt,footer span.commit .rst-content tt,footer span.commit code{padding:0;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:1em;background:none;border:none;color:grey}.rst-footer-buttons{*zoom:1}.rst-footer-buttons:after,.rst-footer-buttons:before{width:100%;display:table;content:""}.rst-footer-buttons:after{clear:both}.rst-breadcrumbs-buttons{margin-top:12px;*zoom:1}.rst-breadcrumbs-buttons:after,.rst-breadcrumbs-buttons:before{display:table;content:""}.rst-breadcrumbs-buttons:after{clear:both}#search-results .search li{margin-bottom:24px;border-bottom:1px solid #e1e4e5;padding-bottom:24px}#search-results .search li:first-child{border-top:1px solid #e1e4e5;padding-top:24px}#search-results .search li a{font-size:120%;margin-bottom:12px;display:inline-block}#search-results .context{color:grey;font-size:90%}.genindextable li>ul{margin-left:24px}@media screen and (max-width:768px){.wy-body-for-nav{background:#fcfcfc}.wy-nav-top{display:block}.wy-nav-side{left:-300px}.wy-nav-side.shift{width:85%;left:0}.wy-menu.wy-menu-vertical,.wy-side-nav-search,.wy-side-scroll{width:auto}.wy-nav-content-wrap{margin-left:0}.wy-nav-content-wrap .wy-nav-content{padding:1.618em}.wy-nav-content-wrap.shift{position:fixed;min-width:100%;left:85%;top:0;height:100%;overflow:hidden}}@media screen and (min-width:1100px){.wy-nav-content-wrap{background:rgba(0,0,0,.05)}.wy-nav-content{margin:0;background:#fcfcfc}}@media print{.rst-versions,.wy-nav-side,footer{display:none}.wy-nav-content-wrap{margin-left:0}}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60;*zoom:1}.rst-versions .rst-current-version:after,.rst-versions .rst-current-version:before{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-content .code-block-caption .rst-versions .rst-current-version .headerlink,.rst-content .eqno .rst-versions .rst-current-version .headerlink,.rst-content .rst-versions .rst-current-version .admonition-title,.rst-content code.download .rst-versions .rst-current-version span:first-child,.rst-content dl dt .rst-versions .rst-current-version .headerlink,.rst-content h1 .rst-versions .rst-current-version .headerlink,.rst-content h2 .rst-versions .rst-current-version .headerlink,.rst-content h3 .rst-versions .rst-current-version .headerlink,.rst-content h4 .rst-versions .rst-current-version .headerlink,.rst-content h5 .rst-versions .rst-current-version .headerlink,.rst-content h6 .rst-versions .rst-current-version .headerlink,.rst-content p .rst-versions .rst-current-version .headerlink,.rst-content table>caption .rst-versions .rst-current-version .headerlink,.rst-content tt.download .rst-versions .rst-current-version span:first-child,.rst-versions .rst-current-version .fa,.rst-versions .rst-current-version .icon,.rst-versions .rst-current-version .rst-content .admonition-title,.rst-versions .rst-current-version .rst-content .code-block-caption .headerlink,.rst-versions .rst-current-version .rst-content .eqno .headerlink,.rst-versions .rst-current-version .rst-content code.download span:first-child,.rst-versions .rst-current-version .rst-content dl dt .headerlink,.rst-versions .rst-current-version .rst-content h1 .headerlink,.rst-versions .rst-current-version .rst-content h2 .headerlink,.rst-versions .rst-current-version .rst-content h3 .headerlink,.rst-versions .rst-current-version .rst-content h4 .headerlink,.rst-versions .rst-current-version .rst-content h5 .headerlink,.rst-versions .rst-current-version .rst-content h6 .headerlink,.rst-versions .rst-current-version .rst-content p .headerlink,.rst-versions .rst-current-version .rst-content table>caption .headerlink,.rst-versions .rst-current-version .rst-content tt.download span:first-child,.rst-versions .rst-current-version .wy-menu-vertical li button.toctree-expand,.wy-menu-vertical li .rst-versions .rst-current-version button.toctree-expand{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions .rst-other-versions .rtd-current-item{font-weight:700}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}#flyout-search-form{padding:6px}.rst-content .toctree-wrapper>p.caption,.rst-content h1,.rst-content h2,.rst-content h3,.rst-content h4,.rst-content h5,.rst-content h6{margin-bottom:24px}.rst-content img{max-width:100%;height:auto}.rst-content div.figure,.rst-content figure{margin-bottom:24px}.rst-content div.figure .caption-text,.rst-content figure .caption-text{font-style:italic}.rst-content div.figure p:last-child.caption,.rst-content figure p:last-child.caption{margin-bottom:0}.rst-content div.figure.align-center,.rst-content figure.align-center{text-align:center}.rst-content .section>a>img,.rst-content .section>img,.rst-content section>a>img,.rst-content section>img{margin-bottom:24px}.rst-content abbr[title]{text-decoration:none}.rst-content.style-external-links a.reference.external:after{font-family:FontAwesome;content:"\f08e";color:#b3b3b3;vertical-align:super;font-size:60%;margin:0 .2em}.rst-content blockquote{margin-left:24px;line-height:24px;margin-bottom:24px}.rst-content pre.literal-block{white-space:pre;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;display:block;overflow:auto}.rst-content div[class^=highlight],.rst-content pre.literal-block{border:1px solid #e1e4e5;overflow-x:auto;margin:1px 0 24px}.rst-content div[class^=highlight] div[class^=highlight],.rst-content pre.literal-block div[class^=highlight]{padding:0;border:none;margin:0}.rst-content div[class^=highlight] td.code{width:100%}.rst-content .linenodiv pre{border-right:1px solid #e6e9ea;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;user-select:none;pointer-events:none}.rst-content div[class^=highlight] pre{white-space:pre;margin:0;padding:12px;display:block;overflow:auto}.rst-content div[class^=highlight] pre .hll{display:block;margin:0 -12px;padding:0 12px}.rst-content .linenodiv pre,.rst-content div[class^=highlight] pre,.rst-content pre.literal-block{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:12px;line-height:1.4}.rst-content div.highlight .gp,.rst-content div.highlight span.linenos{user-select:none;pointer-events:none}.rst-content div.highlight span.linenos{display:inline-block;padding-left:0;padding-right:12px;margin-right:12px;border-right:1px solid #e6e9ea}.rst-content .code-block-caption{font-style:italic;font-size:85%;line-height:1;padding:1em 0;text-align:center}@media print{.rst-content .codeblock,.rst-content div[class^=highlight],.rst-content div[class^=highlight] pre{white-space:pre-wrap}}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning{clear:both}.rst-content .admonition-todo .last,.rst-content .admonition-todo>:last-child,.rst-content .admonition .last,.rst-content .admonition>:last-child,.rst-content .attention .last,.rst-content .attention>:last-child,.rst-content .caution .last,.rst-content .caution>:last-child,.rst-content .danger .last,.rst-content .danger>:last-child,.rst-content .error .last,.rst-content .error>:last-child,.rst-content .hint .last,.rst-content .hint>:last-child,.rst-content .important .last,.rst-content .important>:last-child,.rst-content .note .last,.rst-content .note>:last-child,.rst-content .seealso .last,.rst-content .seealso>:last-child,.rst-content .tip .last,.rst-content .tip>:last-child,.rst-content .warning .last,.rst-content .warning>:last-child{margin-bottom:0}.rst-content .admonition-title:before{margin-right:4px}.rst-content .admonition table{border-color:rgba(0,0,0,.1)}.rst-content .admonition table td,.rst-content .admonition table th{background:transparent!important;border-color:rgba(0,0,0,.1)!important}.rst-content .section ol.loweralpha,.rst-content .section ol.loweralpha>li,.rst-content .toctree-wrapper ol.loweralpha,.rst-content .toctree-wrapper ol.loweralpha>li,.rst-content section ol.loweralpha,.rst-content section ol.loweralpha>li{list-style:lower-alpha}.rst-content .section ol.upperalpha,.rst-content .section ol.upperalpha>li,.rst-content .toctree-wrapper ol.upperalpha,.rst-content .toctree-wrapper ol.upperalpha>li,.rst-content section ol.upperalpha,.rst-content section ol.upperalpha>li{list-style:upper-alpha}.rst-content .section ol li>*,.rst-content .section ul li>*,.rst-content .toctree-wrapper ol li>*,.rst-content .toctree-wrapper ul li>*,.rst-content section ol li>*,.rst-content section ul li>*{margin-top:12px;margin-bottom:12px}.rst-content .section ol li>:first-child,.rst-content .section ul li>:first-child,.rst-content .toctree-wrapper ol li>:first-child,.rst-content .toctree-wrapper ul li>:first-child,.rst-content section ol li>:first-child,.rst-content section ul li>:first-child{margin-top:0}.rst-content .section ol li>p,.rst-content .section ol li>p:last-child,.rst-content .section ul li>p,.rst-content .section ul li>p:last-child,.rst-content .toctree-wrapper ol li>p,.rst-content .toctree-wrapper ol li>p:last-child,.rst-content .toctree-wrapper ul li>p,.rst-content .toctree-wrapper ul li>p:last-child,.rst-content section ol li>p,.rst-content section ol li>p:last-child,.rst-content section ul li>p,.rst-content section ul li>p:last-child{margin-bottom:12px}.rst-content .section ol li>p:only-child,.rst-content .section ol li>p:only-child:last-child,.rst-content .section ul li>p:only-child,.rst-content .section ul li>p:only-child:last-child,.rst-content .toctree-wrapper ol li>p:only-child,.rst-content .toctree-wrapper ol li>p:only-child:last-child,.rst-content .toctree-wrapper ul li>p:only-child,.rst-content .toctree-wrapper ul li>p:only-child:last-child,.rst-content section ol li>p:only-child,.rst-content section ol li>p:only-child:last-child,.rst-content section ul li>p:only-child,.rst-content section ul li>p:only-child:last-child{margin-bottom:0}.rst-content .section ol li>ol,.rst-content .section ol li>ul,.rst-content .section ul li>ol,.rst-content .section ul li>ul,.rst-content .toctree-wrapper ol li>ol,.rst-content .toctree-wrapper ol li>ul,.rst-content .toctree-wrapper ul li>ol,.rst-content .toctree-wrapper ul li>ul,.rst-content section ol li>ol,.rst-content section ol li>ul,.rst-content section ul li>ol,.rst-content section ul li>ul{margin-bottom:12px}.rst-content .section ol.simple li>*,.rst-content .section ol.simple li ol,.rst-content .section ol.simple li ul,.rst-content .section ul.simple li>*,.rst-content .section ul.simple li ol,.rst-content .section ul.simple li ul,.rst-content .toctree-wrapper ol.simple li>*,.rst-content .toctree-wrapper ol.simple li ol,.rst-content .toctree-wrapper ol.simple li ul,.rst-content .toctree-wrapper ul.simple li>*,.rst-content .toctree-wrapper ul.simple li ol,.rst-content .toctree-wrapper ul.simple li ul,.rst-content section ol.simple li>*,.rst-content section ol.simple li ol,.rst-content section ol.simple li ul,.rst-content section ul.simple li>*,.rst-content section ul.simple li ol,.rst-content section ul.simple li ul{margin-top:0;margin-bottom:0}.rst-content .line-block{margin-left:0;margin-bottom:24px;line-height:24px}.rst-content .line-block .line-block{margin-left:24px;margin-bottom:0}.rst-content .topic-title{font-weight:700;margin-bottom:12px}.rst-content .toc-backref{color:#404040}.rst-content .align-right{float:right;margin:0 0 24px 24px}.rst-content .align-left{float:left;margin:0 24px 24px 0}.rst-content .align-center{margin:auto}.rst-content .align-center:not(table){display:block}.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink{opacity:0;font-size:14px;font-family:FontAwesome;margin-left:.5em}.rst-content .code-block-caption .headerlink:focus,.rst-content .code-block-caption:hover .headerlink,.rst-content .eqno .headerlink:focus,.rst-content .eqno:hover .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink:focus,.rst-content .toctree-wrapper>p.caption:hover .headerlink,.rst-content dl dt .headerlink:focus,.rst-content dl dt:hover .headerlink,.rst-content h1 .headerlink:focus,.rst-content h1:hover .headerlink,.rst-content h2 .headerlink:focus,.rst-content h2:hover .headerlink,.rst-content h3 .headerlink:focus,.rst-content h3:hover .headerlink,.rst-content h4 .headerlink:focus,.rst-content h4:hover .headerlink,.rst-content h5 .headerlink:focus,.rst-content h5:hover .headerlink,.rst-content h6 .headerlink:focus,.rst-content h6:hover .headerlink,.rst-content p.caption .headerlink:focus,.rst-content p.caption:hover .headerlink,.rst-content p .headerlink:focus,.rst-content p:hover .headerlink,.rst-content table>caption .headerlink:focus,.rst-content table>caption:hover .headerlink{opacity:1}.rst-content p a{overflow-wrap:anywhere}.rst-content .wy-table td p,.rst-content .wy-table td ul,.rst-content .wy-table th p,.rst-content .wy-table th ul,.rst-content table.docutils td p,.rst-content table.docutils td ul,.rst-content table.docutils th p,.rst-content table.docutils th ul,.rst-content table.field-list td p,.rst-content table.field-list td ul,.rst-content table.field-list th p,.rst-content table.field-list th ul{font-size:inherit}.rst-content .btn:focus{outline:2px solid}.rst-content table>caption .headerlink:after{font-size:12px}.rst-content .centered{text-align:center}.rst-content .sidebar{float:right;width:40%;display:block;margin:0 0 24px 24px;padding:24px;background:#f3f6f6;border:1px solid #e1e4e5}.rst-content .sidebar dl,.rst-content .sidebar p,.rst-content .sidebar ul{font-size:90%}.rst-content .sidebar .last,.rst-content .sidebar>:last-child{margin-bottom:0}.rst-content .sidebar .sidebar-title{display:block;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif;font-weight:700;background:#e1e4e5;padding:6px 12px;margin:-24px -24px 24px;font-size:100%}.rst-content .highlighted{background:#f1c40f;box-shadow:0 0 0 2px #f1c40f;display:inline;font-weight:700}.rst-content .citation-reference,.rst-content .footnote-reference{vertical-align:baseline;position:relative;top:-.4em;line-height:0;font-size:90%}.rst-content .citation-reference>span.fn-bracket,.rst-content .footnote-reference>span.fn-bracket{display:none}.rst-content .hlist{width:100%}.rst-content dl dt span.classifier:before{content:" : "}.rst-content dl dt span.classifier-delimiter{display:none!important}html.writer-html4 .rst-content table.docutils.citation,html.writer-html4 .rst-content table.docutils.footnote{background:none;border:none}html.writer-html4 .rst-content table.docutils.citation td,html.writer-html4 .rst-content table.docutils.citation tr,html.writer-html4 .rst-content table.docutils.footnote td,html.writer-html4 .rst-content table.docutils.footnote tr{border:none;background-color:transparent!important;white-space:normal}html.writer-html4 .rst-content table.docutils.citation td.label,html.writer-html4 .rst-content table.docutils.footnote td.label{padding-left:0;padding-right:0;vertical-align:top}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{display:grid;grid-template-columns:auto minmax(80%,95%)}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{display:inline-grid;grid-template-columns:max-content auto}html.writer-html5 .rst-content aside.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content div.citation{display:grid;grid-template-columns:auto auto minmax(.65rem,auto) minmax(40%,95%)}html.writer-html5 .rst-content aside.citation>span.label,html.writer-html5 .rst-content aside.footnote>span.label,html.writer-html5 .rst-content div.citation>span.label{grid-column-start:1;grid-column-end:2}html.writer-html5 .rst-content aside.citation>span.backrefs,html.writer-html5 .rst-content aside.footnote>span.backrefs,html.writer-html5 .rst-content div.citation>span.backrefs{grid-column-start:2;grid-column-end:3;grid-row-start:1;grid-row-end:3}html.writer-html5 .rst-content aside.citation>p,html.writer-html5 .rst-content aside.footnote>p,html.writer-html5 .rst-content div.citation>p{grid-column-start:4;grid-column-end:5}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{margin-bottom:24px}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{padding-left:1rem}html.writer-html5 .rst-content dl.citation>dd,html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dd,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dd,html.writer-html5 .rst-content dl.footnote>dt{margin-bottom:0}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.footnote{font-size:.9rem}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.footnote>dt{margin:0 .5rem .5rem 0;line-height:1.2rem;word-break:break-all;font-weight:400}html.writer-html5 .rst-content dl.citation>dt>span.brackets:before,html.writer-html5 .rst-content dl.footnote>dt>span.brackets:before{content:"["}html.writer-html5 .rst-content dl.citation>dt>span.brackets:after,html.writer-html5 .rst-content dl.footnote>dt>span.brackets:after{content:"]"}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref{text-align:left;font-style:italic;margin-left:.65rem;word-break:break-word;word-spacing:-.1rem;max-width:5rem}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref>a,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref>a{word-break:keep-all}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref>a:not(:first-child):before,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref>a:not(:first-child):before{content:" "}html.writer-html5 .rst-content dl.citation>dd,html.writer-html5 .rst-content dl.footnote>dd{margin:0 0 .5rem;line-height:1.2rem}html.writer-html5 .rst-content dl.citation>dd p,html.writer-html5 .rst-content dl.footnote>dd p{font-size:.9rem}html.writer-html5 .rst-content aside.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content div.citation{padding-left:1rem;padding-right:1rem;font-size:.9rem;line-height:1.2rem}html.writer-html5 .rst-content aside.citation p,html.writer-html5 .rst-content aside.footnote p,html.writer-html5 .rst-content div.citation p{font-size:.9rem;line-height:1.2rem;margin-bottom:12px}html.writer-html5 .rst-content aside.citation span.backrefs,html.writer-html5 .rst-content aside.footnote span.backrefs,html.writer-html5 .rst-content div.citation span.backrefs{text-align:left;font-style:italic;margin-left:.65rem;word-break:break-word;word-spacing:-.1rem;max-width:5rem}html.writer-html5 .rst-content aside.citation span.backrefs>a,html.writer-html5 .rst-content aside.footnote span.backrefs>a,html.writer-html5 .rst-content div.citation span.backrefs>a{word-break:keep-all}html.writer-html5 .rst-content aside.citation span.backrefs>a:not(:first-child):before,html.writer-html5 .rst-content aside.footnote span.backrefs>a:not(:first-child):before,html.writer-html5 .rst-content div.citation span.backrefs>a:not(:first-child):before{content:" "}html.writer-html5 .rst-content aside.citation span.label,html.writer-html5 .rst-content aside.footnote span.label,html.writer-html5 .rst-content div.citation span.label{line-height:1.2rem}html.writer-html5 .rst-content aside.citation-list,html.writer-html5 .rst-content aside.footnote-list,html.writer-html5 .rst-content div.citation-list{margin-bottom:24px}html.writer-html5 .rst-content dl.option-list kbd{font-size:.9rem}.rst-content table.docutils.footnote,html.writer-html4 .rst-content table.docutils.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content aside.footnote-list aside.footnote,html.writer-html5 .rst-content div.citation-list>div.citation,html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.footnote{color:grey}.rst-content table.docutils.footnote code,.rst-content table.docutils.footnote tt,html.writer-html4 .rst-content table.docutils.citation code,html.writer-html4 .rst-content table.docutils.citation tt,html.writer-html5 .rst-content aside.footnote-list aside.footnote code,html.writer-html5 .rst-content aside.footnote-list aside.footnote tt,html.writer-html5 .rst-content aside.footnote code,html.writer-html5 .rst-content aside.footnote tt,html.writer-html5 .rst-content div.citation-list>div.citation code,html.writer-html5 .rst-content div.citation-list>div.citation tt,html.writer-html5 .rst-content dl.citation code,html.writer-html5 .rst-content dl.citation tt,html.writer-html5 .rst-content dl.footnote code,html.writer-html5 .rst-content dl.footnote tt{color:#555}.rst-content .wy-table-responsive.citation,.rst-content .wy-table-responsive.footnote{margin-bottom:0}.rst-content .wy-table-responsive.citation+:not(.citation),.rst-content .wy-table-responsive.footnote+:not(.footnote){margin-top:24px}.rst-content .wy-table-responsive.citation:last-child,.rst-content .wy-table-responsive.footnote:last-child{margin-bottom:24px}.rst-content table.docutils th{border-color:#e1e4e5}html.writer-html5 .rst-content table.docutils th{border:1px solid #e1e4e5}html.writer-html5 .rst-content table.docutils td>p,html.writer-html5 .rst-content table.docutils th>p{line-height:1rem;margin-bottom:0;font-size:.9rem}.rst-content table.docutils td .last,.rst-content table.docutils td .last>:last-child{margin-bottom:0}.rst-content table.field-list,.rst-content table.field-list td{border:none}.rst-content table.field-list td p{line-height:inherit}.rst-content table.field-list td>strong{display:inline-block}.rst-content table.field-list .field-name{padding-right:10px;text-align:left;white-space:nowrap}.rst-content table.field-list .field-body{text-align:left}.rst-content code,.rst-content tt{color:#000;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;padding:2px 5px}.rst-content code big,.rst-content code em,.rst-content tt big,.rst-content tt em{font-size:100%!important;line-height:normal}.rst-content code.literal,.rst-content tt.literal{color:#e74c3c;white-space:normal}.rst-content code.xref,.rst-content tt.xref,a .rst-content code,a .rst-content tt{font-weight:700;color:#404040;overflow-wrap:normal}.rst-content kbd,.rst-content pre,.rst-content samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace}.rst-content a code,.rst-content a tt{color:#2980b9}.rst-content dl{margin-bottom:24px}.rst-content dl dt{font-weight:700;margin-bottom:12px}.rst-content dl ol,.rst-content dl p,.rst-content dl table,.rst-content dl ul{margin-bottom:12px}.rst-content dl dd{margin:0 0 12px 24px;line-height:24px}.rst-content dl dd>ol:last-child,.rst-content dl dd>p:last-child,.rst-content dl dd>table:last-child,.rst-content dl dd>ul:last-child{margin-bottom:0}html.writer-html4 .rst-content dl:not(.docutils),html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple){margin-bottom:24px}html.writer-html4 .rst-content dl:not(.docutils)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt{display:table;margin:6px 0;font-size:90%;line-height:normal;background:#e7f2fa;color:#2980b9;border-top:3px solid #6ab0de;padding:6px;position:relative}html.writer-html4 .rst-content dl:not(.docutils)>dt:before,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt:before{color:#6ab0de}html.writer-html4 .rst-content dl:not(.docutils)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt{margin-bottom:6px;border:none;border-left:3px solid #ccc;background:#f0f0f0;color:#555}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils)>dt:first-child,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt:first-child{margin-top:0}html.writer-html4 .rst-content dl:not(.docutils) code.descclassname,html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descclassname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descname{background-color:transparent;border:none;padding:0;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descname{font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .optional,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .optional{display:inline-block;padding:0 4px;color:#000;font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .property,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .property{display:inline-block;padding-right:8px;max-width:100%}html.writer-html4 .rst-content dl:not(.docutils) .k,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .k{font-style:italic}html.writer-html4 .rst-content dl:not(.docutils) .descclassname,html.writer-html4 .rst-content dl:not(.docutils) .descname,html.writer-html4 .rst-content dl:not(.docutils) .sig-name,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .sig-name{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#000}.rst-content .viewcode-back,.rst-content .viewcode-link{display:inline-block;color:#27ae60;font-size:80%;padding-left:24px}.rst-content .viewcode-back{display:block;float:right}.rst-content p.rubric{margin-bottom:12px;font-weight:700}.rst-content code.download,.rst-content tt.download{background:inherit;padding:inherit;font-weight:400;font-family:inherit;font-size:inherit;color:inherit;border:inherit;white-space:inherit}.rst-content code.download span:first-child,.rst-content tt.download span:first-child{-webkit-font-smoothing:subpixel-antialiased}.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{margin-right:4px}.rst-content .guilabel,.rst-content .menuselection{font-size:80%;font-weight:700;border-radius:4px;padding:2.4px 6px;margin:auto 2px}.rst-content .guilabel,.rst-content .menuselection{border:1px solid #7fbbe3;background:#e7f2fa}.rst-content :not(dl.option-list)>:not(dt):not(kbd):not(.kbd)>.kbd,.rst-content :not(dl.option-list)>:not(dt):not(kbd):not(.kbd)>kbd{color:inherit;font-size:80%;background-color:#fff;border:1px solid #a6a6a6;border-radius:4px;box-shadow:0 2px grey;padding:2.4px 6px;margin:auto 0}.rst-content .versionmodified{font-style:italic}@media screen and (max-width:480px){.rst-content .sidebar{width:100%}}span[id*=MathJax-Span]{color:#404040}.math{text-align:center}@font-face{font-family:Lato;src:url(fonts/lato-normal.woff2?bd03a2cc277bbbc338d464e679fe9942) format("woff2"),url(fonts/lato-normal.woff?27bd77b9162d388cb8d4c4217c7c5e2a) format("woff");font-weight:400;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold.woff2?cccb897485813c7c256901dbca54ecf2) format("woff2"),url(fonts/lato-bold.woff?d878b6c29b10beca227e9eef4246111b) format("woff");font-weight:700;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold-italic.woff2?0b6bb6725576b072c5d0b02ecdd1900d) format("woff2"),url(fonts/lato-bold-italic.woff?9c7e4e9eb485b4a121c760e61bc3707c) format("woff");font-weight:700;font-style:italic;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-normal-italic.woff2?4eb103b4d12be57cb1d040ed5e162e9d) format("woff2"),url(fonts/lato-normal-italic.woff?f28f2d6482446544ef1ea1ccc6dd5892) format("woff");font-weight:400;font-style:italic;font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:400;src:url(fonts/Roboto-Slab-Regular.woff2?7abf5b8d04d26a2cafea937019bca958) format("woff2"),url(fonts/Roboto-Slab-Regular.woff?c1be9284088d487c5e3ff0a10a92e58c) format("woff");font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:700;src:url(fonts/Roboto-Slab-Bold.woff2?9984f4a9bda09be08e83f2506954adbe) format("woff2"),url(fonts/Roboto-Slab-Bold.woff?bed5564a116b05148e3b3bea6fb1162a) format("woff");font-display:block} \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/custom.css b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/custom.css new file mode 100644 index 0000000000..0647fc6e25 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/custom.css @@ -0,0 +1,109 @@ +.wy-nav-content { + background: #fcfffa; +} + +code { + border: 0px !important; +} + +code.xref { + color: unset !important; +} + +.rst-content code { + padding: 1px !important; + background: unset !important; +} + +.wy-side-nav-search { + background-color: #0099e6; +} + +.wy-breadcrumbs a { + color: #739900; +} + +.wy-breadcrumbs a:hover, a:focus { + color: #0099e6; +} + +.wy-side-nav-search input[type="text"] { + border-color: #0077b3; +} + +.wy-menu-vertical a { + color: #4dc3ff; +} + +.wy-menu-vertical a:visited { + color: #4dc3ff; +} + +.wy-menu-vertical a:hover, a:focus { + color: #ace600; +} + +a { + color: #0099e6; +} + +a:visited { + color: #0099e6; +} + +a:hover, a:focus { + color: #739900; +} + +.wy-nav-top { + color: #ace600; + background-color: #0099e6; +} + +.wy-nav-top a { + color: #ace600; +} + +.wy-side-nav-search > a { + color: #ace600; +} + +.wy-side-nav-search > a:hover, > a:focus, > a:visited { + color: #ace600; +} + +.highlight .o { + color: #ac7339; +} + +.highlight .k { + color: #2980b9; +} + +.highlight .m { + color: #ba2121; +} + +/* Removes margin of code blocks within tabs */ +.sphinx-tabs-panel div[class^="highlight"] { + margin: 1px 0 0 0; +} + +/* Adds a space between icon and content for fa icons */ +.icon-margin.fa::before { + margin-right: 0.25em; +} + +#c-api-class-hierarchy code { + font-size: 100%; + font-weight: normal; + font-family: "Lato","proxima-nova","Helvetica Neue","Arial","sans-serif"; +} + +.hide-toctree { + display: none; +} + +.expert-option { + opacity: 0.7; +} \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/doctools.js b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/doctools.js new file mode 100644 index 0000000000..d06a71d751 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/doctools.js @@ -0,0 +1,156 @@ +/* + * doctools.js + * ~~~~~~~~~~~ + * + * Base JavaScript utilities for all Sphinx HTML documentation. + * + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ +"use strict"; + +const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([ + "TEXTAREA", + "INPUT", + "SELECT", + "BUTTON", +]); + +const _ready = (callback) => { + if (document.readyState !== "loading") { + callback(); + } else { + document.addEventListener("DOMContentLoaded", callback); + } +}; + +/** + * Small JavaScript module for the documentation. + */ +const Documentation = { + init: () => { + Documentation.initDomainIndexTable(); + Documentation.initOnKeyListeners(); + }, + + /** + * i18n support + */ + TRANSLATIONS: {}, + PLURAL_EXPR: (n) => (n === 1 ? 0 : 1), + LOCALE: "unknown", + + // gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext: (string) => { + const translated = Documentation.TRANSLATIONS[string]; + switch (typeof translated) { + case "undefined": + return string; // no translation + case "string": + return translated; // translation exists + default: + return translated[0]; // (singular, plural) translation tuple exists + } + }, + + ngettext: (singular, plural, n) => { + const translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated !== "undefined") + return translated[Documentation.PLURAL_EXPR(n)]; + return n === 1 ? singular : plural; + }, + + addTranslations: (catalog) => { + Object.assign(Documentation.TRANSLATIONS, catalog.messages); + Documentation.PLURAL_EXPR = new Function( + "n", + `return (${catalog.plural_expr})` + ); + Documentation.LOCALE = catalog.locale; + }, + + /** + * helper function to focus on search bar + */ + focusSearchBar: () => { + document.querySelectorAll("input[name=q]")[0]?.focus(); + }, + + /** + * Initialise the domain index toggle buttons + */ + initDomainIndexTable: () => { + const toggler = (el) => { + const idNumber = el.id.substr(7); + const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`); + if (el.src.substr(-9) === "minus.png") { + el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`; + toggledRows.forEach((el) => (el.style.display = "none")); + } else { + el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`; + toggledRows.forEach((el) => (el.style.display = "")); + } + }; + + const togglerElements = document.querySelectorAll("img.toggler"); + togglerElements.forEach((el) => + el.addEventListener("click", (event) => toggler(event.currentTarget)) + ); + togglerElements.forEach((el) => (el.style.display = "")); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); + }, + + initOnKeyListeners: () => { + // only install a listener if it is really needed + if ( + !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && + !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS + ) + return; + + document.addEventListener("keydown", (event) => { + // bail for input elements + if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; + // bail with special keys + if (event.altKey || event.ctrlKey || event.metaKey) return; + + if (!event.shiftKey) { + switch (event.key) { + case "ArrowLeft": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const prevLink = document.querySelector('link[rel="prev"]'); + if (prevLink && prevLink.href) { + window.location.href = prevLink.href; + event.preventDefault(); + } + break; + case "ArrowRight": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const nextLink = document.querySelector('link[rel="next"]'); + if (nextLink && nextLink.href) { + window.location.href = nextLink.href; + event.preventDefault(); + } + break; + } + } + + // some keyboard layouts may need Shift to get / + switch (event.key) { + case "/": + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; + Documentation.focusSearchBar(); + event.preventDefault(); + } + }); + }, +}; + +// quick alias for translations +const _ = Documentation.gettext; + +_ready(Documentation.init); diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/documentation_options.js b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/documentation_options.js new file mode 100644 index 0000000000..b57ae3b839 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/documentation_options.js @@ -0,0 +1,14 @@ +var DOCUMENTATION_OPTIONS = { + URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), + VERSION: '', + LANGUAGE: 'en', + COLLAPSE_INDEX: false, + BUILDER: 'html', + FILE_SUFFIX: '.html', + LINK_SUFFIX: '.html', + HAS_SOURCE: true, + SOURCELINK_SUFFIX: '.txt', + NAVIGATION_WITH_KEYS: false, + SHOW_SEARCH_SUMMARY: true, + ENABLE_SEARCH_SHORTCUTS: true, +}; \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/file.png b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/file.png new file mode 100644 index 0000000000..a858a410e4 Binary files /dev/null and b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/file.png differ diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/jquery.js b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/jquery.js new file mode 100644 index 0000000000..c4c6022f29 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/jquery.js @@ -0,0 +1,2 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
    ",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0
    "),n("table.docutils.footnote").wrap("
    "),n("table.docutils.citation").wrap("
    "),n(".wy-menu-vertical ul").not(".simple").siblings("a").each((function(){var t=n(this);expand=n(''),expand.on("click",(function(n){return e.toggleCurrent(t),n.stopPropagation(),!1})),t.prepend(expand)}))},reset:function(){var n=encodeURI(window.location.hash)||"#";try{var e=$(".wy-menu-vertical"),t=e.find('[href="'+n+'"]');if(0===t.length){var i=$('.document [id="'+n.substring(1)+'"]').closest("div.section");0===(t=e.find('[href="#'+i.attr("id")+'"]')).length&&(t=e.find('[href="#"]'))}if(t.length>0){$(".wy-menu-vertical .current").removeClass("current").attr("aria-expanded","false"),t.addClass("current").attr("aria-expanded","true"),t.closest("li.toctree-l1").parent().addClass("current").attr("aria-expanded","true");for(let n=1;n<=10;n++)t.closest("li.toctree-l"+n).addClass("current").attr("aria-expanded","true");t[0].scrollIntoView()}}catch(n){console.log("Error expanding nav for anchor",n)}},onScroll:function(){this.winScroll=!1;var n=this.win.scrollTop(),e=n+this.winHeight,t=this.navBar.scrollTop()+(n-this.winPosition);n<0||e>this.docHeight||(this.navBar.scrollTop(t),this.winPosition=n)},onResize:function(){this.winResize=!1,this.winHeight=this.win.height(),this.docHeight=$(document).height()},hashChange:function(){this.linkScroll=!0,this.win.one("hashchange",(function(){this.linkScroll=!1}))},toggleCurrent:function(n){var e=n.closest("li");e.siblings("li.current").removeClass("current").attr("aria-expanded","false"),e.siblings().find("li.current").removeClass("current").attr("aria-expanded","false");var t=e.find("> ul li");t.length&&(t.removeClass("current").attr("aria-expanded","false"),e.toggleClass("current").attr("aria-expanded",(function(n,e){return"true"==e?"false":"true"})))}},"undefined"!=typeof window&&(window.SphinxRtdTheme={Navigation:n.exports.ThemeNav,StickyNav:n.exports.ThemeNav}),function(){for(var n=0,e=["ms","moz","webkit","o"],t=0;t a.language.name.localeCompare(b.language.name)); + + const languagesHTML = ` +
    +
    Languages
    + ${languages + .map( + (translation) => ` +
    + ${translation.language.code} +
    + `, + ) + .join("\n")} +
    + `; + return languagesHTML; + } + + function renderVersions(config) { + if (!config.versions.active.length) { + return ""; + } + const versionsHTML = ` +
    +
    Versions
    + ${config.versions.active + .map( + (version) => ` +
    + ${version.slug} +
    + `, + ) + .join("\n")} +
    + `; + return versionsHTML; + } + + function renderDownloads(config) { + if (!Object.keys(config.versions.current.downloads).length) { + return ""; + } + const downloadsNameDisplay = { + pdf: "PDF", + epub: "Epub", + htmlzip: "HTML", + }; + + const downloadsHTML = ` +
    +
    Downloads
    + ${Object.entries(config.versions.current.downloads) + .map( + ([name, url]) => ` +
    + ${downloadsNameDisplay[name]} +
    + `, + ) + .join("\n")} +
    + `; + return downloadsHTML; + } + + document.addEventListener("readthedocs-addons-data-ready", function (event) { + const config = event.detail.data(); + + const flyout = ` +
    + + Read the Docs + v: ${config.versions.current.slug} + + +
    +
    + ${renderLanguages(config)} + ${renderVersions(config)} + ${renderDownloads(config)} +
    +
    On Read the Docs
    +
    + Project Home +
    +
    + Builds +
    +
    + Downloads +
    +
    +
    +
    Search
    +
    +
    + +
    +
    +
    +
    + + Hosted by Read the Docs + +
    +
    + `; + + // Inject the generated flyout into the body HTML element. + document.body.insertAdjacentHTML("beforeend", flyout); + + // Trigger the Read the Docs Addons Search modal when clicking on the "Search docs" input from inside the flyout. + document + .querySelector("#flyout-search-form") + .addEventListener("focusin", () => { + const event = new CustomEvent("readthedocs-search-show"); + document.dispatchEvent(event); + }); + }) +} + +if (themeLanguageSelector || themeVersionSelector) { + function onSelectorSwitch(event) { + const option = event.target.selectedIndex; + const item = event.target.options[option]; + window.location.href = item.dataset.url; + } + + document.addEventListener("readthedocs-addons-data-ready", function (event) { + const config = event.detail.data(); + + const versionSwitch = document.querySelector( + "div.switch-menus > div.version-switch", + ); + if (themeVersionSelector) { + let versions = config.versions.active; + if (config.versions.current.hidden || config.versions.current.type === "external") { + versions.unshift(config.versions.current); + } + const versionSelect = ` + + `; + + versionSwitch.innerHTML = versionSelect; + versionSwitch.firstElementChild.addEventListener("change", onSelectorSwitch); + } + + const languageSwitch = document.querySelector( + "div.switch-menus > div.language-switch", + ); + + if (themeLanguageSelector) { + if (config.projects.translations.length) { + // Add the current language to the options on the selector + let languages = config.projects.translations.concat( + config.projects.current, + ); + languages = languages.sort((a, b) => + a.language.name.localeCompare(b.language.name), + ); + + const languageSelect = ` + + `; + + languageSwitch.innerHTML = languageSelect; + languageSwitch.firstElementChild.addEventListener("change", onSelectorSwitch); + } + else { + languageSwitch.remove(); + } + } + }); +} + +document.addEventListener("readthedocs-addons-data-ready", function (event) { + // Trigger the Read the Docs Addons Search modal when clicking on "Search docs" input from the topnav. + document + .querySelector("[role='search'] input") + .addEventListener("focusin", () => { + const event = new CustomEvent("readthedocs-search-show"); + document.dispatchEvent(event); + }); +}); \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/language_data.js b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/language_data.js new file mode 100644 index 0000000000..250f5665fa --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/language_data.js @@ -0,0 +1,199 @@ +/* + * language_data.js + * ~~~~~~~~~~~~~~~~ + * + * This script contains the language-specific data used by searchtools.js, + * namely the list of stopwords, stemmer, scorer and splitter. + * + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"]; + + +/* Non-minified version is copied as a separate JS file, is available */ + +/** + * Porter Stemmer + */ +var Stemmer = function() { + + var step2list = { + ational: 'ate', + tional: 'tion', + enci: 'ence', + anci: 'ance', + izer: 'ize', + bli: 'ble', + alli: 'al', + entli: 'ent', + eli: 'e', + ousli: 'ous', + ization: 'ize', + ation: 'ate', + ator: 'ate', + alism: 'al', + iveness: 'ive', + fulness: 'ful', + ousness: 'ous', + aliti: 'al', + iviti: 'ive', + biliti: 'ble', + logi: 'log' + }; + + var step3list = { + icate: 'ic', + ative: '', + alize: 'al', + iciti: 'ic', + ical: 'ic', + ful: '', + ness: '' + }; + + var c = "[^aeiou]"; // consonant + var v = "[aeiouy]"; // vowel + var C = c + "[^aeiouy]*"; // consonant sequence + var V = v + "[aeiou]*"; // vowel sequence + + var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 + var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 + var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 + var s_v = "^(" + C + ")?" + v; // vowel in stem + + this.stemWord = function (w) { + var stem; + var suffix; + var firstch; + var origword = w; + + if (w.length < 3) + return w; + + var re; + var re2; + var re3; + var re4; + + firstch = w.substr(0,1); + if (firstch == "y") + w = firstch.toUpperCase() + w.substr(1); + + // Step 1a + re = /^(.+?)(ss|i)es$/; + re2 = /^(.+?)([^s])s$/; + + if (re.test(w)) + w = w.replace(re,"$1$2"); + else if (re2.test(w)) + w = w.replace(re2,"$1$2"); + + // Step 1b + re = /^(.+?)eed$/; + re2 = /^(.+?)(ed|ing)$/; + if (re.test(w)) { + var fp = re.exec(w); + re = new RegExp(mgr0); + if (re.test(fp[1])) { + re = /.$/; + w = w.replace(re,""); + } + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + re2 = new RegExp(s_v); + if (re2.test(stem)) { + w = stem; + re2 = /(at|bl|iz)$/; + re3 = new RegExp("([^aeiouylsz])\\1$"); + re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re2.test(w)) + w = w + "e"; + else if (re3.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + else if (re4.test(w)) + w = w + "e"; + } + } + + // Step 1c + re = /^(.+?)y$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(s_v); + if (re.test(stem)) + w = stem + "i"; + } + + // Step 2 + re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step2list[suffix]; + } + + // Step 3 + re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step3list[suffix]; + } + + // Step 4 + re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; + re2 = /^(.+?)(s|t)(ion)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + if (re.test(stem)) + w = stem; + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1] + fp[2]; + re2 = new RegExp(mgr1); + if (re2.test(stem)) + w = stem; + } + + // Step 5 + re = /^(.+?)e$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + re2 = new RegExp(meq1); + re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) + w = stem; + } + re = /ll$/; + re2 = new RegExp(mgr1); + if (re.test(w) && re2.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + + // and turn initial Y back to y + if (firstch == "y") + w = firstch.toLowerCase() + w.substr(1); + return w; + } +} + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/minus.png b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/minus.png new file mode 100644 index 0000000000..d96755fdaf Binary files /dev/null and b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/minus.png differ diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/plus.png b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/plus.png new file mode 100644 index 0000000000..7107cec93a Binary files /dev/null and b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/plus.png differ diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/pygments.css b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/pygments.css new file mode 100644 index 0000000000..84ab3030a9 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/pygments.css @@ -0,0 +1,75 @@ +pre { line-height: 125%; } +td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +.highlight .hll { background-color: #ffffcc } +.highlight { background: #f8f8f8; } +.highlight .c { color: #3D7B7B; font-style: italic } /* Comment */ +.highlight .err { border: 1px solid #FF0000 } /* Error */ +.highlight .k { color: #008000; font-weight: bold } /* Keyword */ +.highlight .o { color: #666666 } /* Operator */ +.highlight .ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */ +.highlight .cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */ +.highlight .cp { color: #9C6500 } /* Comment.Preproc */ +.highlight .cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */ +.highlight .c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */ +.highlight .cs { color: #3D7B7B; font-style: italic } /* Comment.Special */ +.highlight .gd { color: #A00000 } /* Generic.Deleted */ +.highlight .ge { font-style: italic } /* Generic.Emph */ +.highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */ +.highlight .gr { color: #E40000 } /* Generic.Error */ +.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ +.highlight .gi { color: #008400 } /* Generic.Inserted */ +.highlight .go { color: #717171 } /* Generic.Output */ +.highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */ +.highlight .gs { font-weight: bold } /* Generic.Strong */ +.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ +.highlight .gt { color: #0044DD } /* Generic.Traceback */ +.highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */ +.highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ +.highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ +.highlight .kp { color: #008000 } /* Keyword.Pseudo */ +.highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ +.highlight .kt { color: #B00040 } /* Keyword.Type */ +.highlight .m { color: #666666 } /* Literal.Number */ +.highlight .s { color: #BA2121 } /* Literal.String */ +.highlight .na { color: #687822 } /* Name.Attribute */ +.highlight .nb { color: #008000 } /* Name.Builtin */ +.highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */ +.highlight .no { color: #880000 } /* Name.Constant */ +.highlight .nd { color: #AA22FF } /* Name.Decorator */ +.highlight .ni { color: #717171; font-weight: bold } /* Name.Entity */ +.highlight .ne { color: #CB3F38; font-weight: bold } /* Name.Exception */ +.highlight .nf { color: #0000FF } /* Name.Function */ +.highlight .nl { color: #767600 } /* Name.Label */ +.highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ +.highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */ +.highlight .nv { color: #19177C } /* Name.Variable */ +.highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ +.highlight .w { color: #bbbbbb } /* Text.Whitespace */ +.highlight .mb { color: #666666 } /* Literal.Number.Bin */ +.highlight .mf { color: #666666 } /* Literal.Number.Float */ +.highlight .mh { color: #666666 } /* Literal.Number.Hex */ +.highlight .mi { color: #666666 } /* Literal.Number.Integer */ +.highlight .mo { color: #666666 } /* Literal.Number.Oct */ +.highlight .sa { color: #BA2121 } /* Literal.String.Affix */ +.highlight .sb { color: #BA2121 } /* Literal.String.Backtick */ +.highlight .sc { color: #BA2121 } /* Literal.String.Char */ +.highlight .dl { color: #BA2121 } /* Literal.String.Delimiter */ +.highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */ +.highlight .s2 { color: #BA2121 } /* Literal.String.Double */ +.highlight .se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */ +.highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */ +.highlight .si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */ +.highlight .sx { color: #008000 } /* Literal.String.Other */ +.highlight .sr { color: #A45A77 } /* Literal.String.Regex */ +.highlight .s1 { color: #BA2121 } /* Literal.String.Single */ +.highlight .ss { color: #19177C } /* Literal.String.Symbol */ +.highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */ +.highlight .fm { color: #0000FF } /* Name.Function.Magic */ +.highlight .vc { color: #19177C } /* Name.Variable.Class */ +.highlight .vg { color: #19177C } /* Name.Variable.Global */ +.highlight .vi { color: #19177C } /* Name.Variable.Instance */ +.highlight .vm { color: #19177C } /* Name.Variable.Magic */ +.highlight .il { color: #666666 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/searchtools.js b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/searchtools.js new file mode 100644 index 0000000000..97d56a74d8 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/searchtools.js @@ -0,0 +1,566 @@ +/* + * searchtools.js + * ~~~~~~~~~~~~~~~~ + * + * Sphinx JavaScript utilities for the full-text search. + * + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ +"use strict"; + +/** + * Simple result scoring code. + */ +if (typeof Scorer === "undefined") { + var Scorer = { + // Implement the following function to further tweak the score for each result + // The function takes a result array [docname, title, anchor, descr, score, filename] + // and returns the new score. + /* + score: result => { + const [docname, title, anchor, descr, score, filename] = result + return score + }, + */ + + // query matches the full name of an object + objNameMatch: 11, + // or matches in the last dotted part of the object name + objPartialMatch: 6, + // Additive scores depending on the priority of the object + objPrio: { + 0: 15, // used to be importantResults + 1: 5, // used to be objectResults + 2: -5, // used to be unimportantResults + }, + // Used when the priority is not in the mapping. + objPrioDefault: 0, + + // query found in title + title: 15, + partialTitle: 7, + // query found in terms + term: 5, + partialTerm: 2, + }; +} + +const _removeChildren = (element) => { + while (element && element.lastChild) element.removeChild(element.lastChild); +}; + +/** + * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping + */ +const _escapeRegExp = (string) => + string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string + +const _displayItem = (item, searchTerms) => { + const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; + const docUrlRoot = DOCUMENTATION_OPTIONS.URL_ROOT; + const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; + const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX; + const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; + + const [docName, title, anchor, descr, score, _filename] = item; + + let listItem = document.createElement("li"); + let requestUrl; + let linkUrl; + if (docBuilder === "dirhtml") { + // dirhtml builder + let dirname = docName + "/"; + if (dirname.match(/\/index\/$/)) + dirname = dirname.substring(0, dirname.length - 6); + else if (dirname === "index/") dirname = ""; + requestUrl = docUrlRoot + dirname; + linkUrl = requestUrl; + } else { + // normal html builders + requestUrl = docUrlRoot + docName + docFileSuffix; + linkUrl = docName + docLinkSuffix; + } + let linkEl = listItem.appendChild(document.createElement("a")); + linkEl.href = linkUrl + anchor; + linkEl.dataset.score = score; + linkEl.innerHTML = title; + if (descr) + listItem.appendChild(document.createElement("span")).innerHTML = + " (" + descr + ")"; + else if (showSearchSummary) + fetch(requestUrl) + .then((responseData) => responseData.text()) + .then((data) => { + if (data) + listItem.appendChild( + Search.makeSearchSummary(data, searchTerms) + ); + }); + Search.output.appendChild(listItem); +}; +const _finishSearch = (resultCount) => { + Search.stopPulse(); + Search.title.innerText = _("Search Results"); + if (!resultCount) + Search.status.innerText = Documentation.gettext( + "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories." + ); + else + Search.status.innerText = _( + `Search finished, found ${resultCount} page(s) matching the search query.` + ); +}; +const _displayNextItem = ( + results, + resultCount, + searchTerms +) => { + // results left, load the summary and display it + // this is intended to be dynamic (don't sub resultsCount) + if (results.length) { + _displayItem(results.pop(), searchTerms); + setTimeout( + () => _displayNextItem(results, resultCount, searchTerms), + 5 + ); + } + // search finished, update title and status message + else _finishSearch(resultCount); +}; + +/** + * Default splitQuery function. Can be overridden in ``sphinx.search`` with a + * custom function per language. + * + * The regular expression works by splitting the string on consecutive characters + * that are not Unicode letters, numbers, underscores, or emoji characters. + * This is the same as ``\W+`` in Python, preserving the surrogate pair area. + */ +if (typeof splitQuery === "undefined") { + var splitQuery = (query) => query + .split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu) + .filter(term => term) // remove remaining empty strings +} + +/** + * Search Module + */ +const Search = { + _index: null, + _queued_query: null, + _pulse_status: -1, + + htmlToText: (htmlString) => { + const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html'); + htmlElement.querySelectorAll(".headerlink").forEach((el) => { el.remove() }); + const docContent = htmlElement.querySelector('[role="main"]'); + if (docContent !== undefined) return docContent.textContent; + console.warn( + "Content block not found. Sphinx search tries to obtain it via '[role=main]'. Could you check your theme or template." + ); + return ""; + }, + + init: () => { + const query = new URLSearchParams(window.location.search).get("q"); + document + .querySelectorAll('input[name="q"]') + .forEach((el) => (el.value = query)); + if (query) Search.performSearch(query); + }, + + loadIndex: (url) => + (document.body.appendChild(document.createElement("script")).src = url), + + setIndex: (index) => { + Search._index = index; + if (Search._queued_query !== null) { + const query = Search._queued_query; + Search._queued_query = null; + Search.query(query); + } + }, + + hasIndex: () => Search._index !== null, + + deferQuery: (query) => (Search._queued_query = query), + + stopPulse: () => (Search._pulse_status = -1), + + startPulse: () => { + if (Search._pulse_status >= 0) return; + + const pulse = () => { + Search._pulse_status = (Search._pulse_status + 1) % 4; + Search.dots.innerText = ".".repeat(Search._pulse_status); + if (Search._pulse_status >= 0) window.setTimeout(pulse, 500); + }; + pulse(); + }, + + /** + * perform a search for something (or wait until index is loaded) + */ + performSearch: (query) => { + // create the required interface elements + const searchText = document.createElement("h2"); + searchText.textContent = _("Searching"); + const searchSummary = document.createElement("p"); + searchSummary.classList.add("search-summary"); + searchSummary.innerText = ""; + const searchList = document.createElement("ul"); + searchList.classList.add("search"); + + const out = document.getElementById("search-results"); + Search.title = out.appendChild(searchText); + Search.dots = Search.title.appendChild(document.createElement("span")); + Search.status = out.appendChild(searchSummary); + Search.output = out.appendChild(searchList); + + const searchProgress = document.getElementById("search-progress"); + // Some themes don't use the search progress node + if (searchProgress) { + searchProgress.innerText = _("Preparing search..."); + } + Search.startPulse(); + + // index already loaded, the browser was quick! + if (Search.hasIndex()) Search.query(query); + else Search.deferQuery(query); + }, + + /** + * execute search (requires search index to be loaded) + */ + query: (query) => { + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const titles = Search._index.titles; + const allTitles = Search._index.alltitles; + const indexEntries = Search._index.indexentries; + + // stem the search terms and add them to the correct list + const stemmer = new Stemmer(); + const searchTerms = new Set(); + const excludedTerms = new Set(); + const highlightTerms = new Set(); + const objectTerms = new Set(splitQuery(query.toLowerCase().trim())); + splitQuery(query.trim()).forEach((queryTerm) => { + const queryTermLower = queryTerm.toLowerCase(); + + // maybe skip this "word" + // stopwords array is from language_data.js + if ( + stopwords.indexOf(queryTermLower) !== -1 || + queryTerm.match(/^\d+$/) + ) + return; + + // stem the word + let word = stemmer.stemWord(queryTermLower); + // select the correct list + if (word[0] === "-") excludedTerms.add(word.substr(1)); + else { + searchTerms.add(word); + highlightTerms.add(queryTermLower); + } + }); + + if (SPHINX_HIGHLIGHT_ENABLED) { // set in sphinx_highlight.js + localStorage.setItem("sphinx_highlight_terms", [...highlightTerms].join(" ")) + } + + // console.debug("SEARCH: searching for:"); + // console.info("required: ", [...searchTerms]); + // console.info("excluded: ", [...excludedTerms]); + + // array of [docname, title, anchor, descr, score, filename] + let results = []; + _removeChildren(document.getElementById("search-progress")); + + const queryLower = query.toLowerCase(); + for (const [title, foundTitles] of Object.entries(allTitles)) { + if (title.toLowerCase().includes(queryLower) && (queryLower.length >= title.length/2)) { + for (const [file, id] of foundTitles) { + let score = Math.round(100 * queryLower.length / title.length) + results.push([ + docNames[file], + titles[file] !== title ? `${titles[file]} > ${title}` : title, + id !== null ? "#" + id : "", + null, + score, + filenames[file], + ]); + } + } + } + + // search for explicit entries in index directives + for (const [entry, foundEntries] of Object.entries(indexEntries)) { + if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) { + for (const [file, id] of foundEntries) { + let score = Math.round(100 * queryLower.length / entry.length) + results.push([ + docNames[file], + titles[file], + id ? "#" + id : "", + null, + score, + filenames[file], + ]); + } + } + } + + // lookup as object + objectTerms.forEach((term) => + results.push(...Search.performObjectSearch(term, objectTerms)) + ); + + // lookup as search terms in fulltext + results.push(...Search.performTermsSearch(searchTerms, excludedTerms)); + + // let the scorer override scores with a custom scoring function + if (Scorer.score) results.forEach((item) => (item[4] = Scorer.score(item))); + + // now sort the results by score (in opposite order of appearance, since the + // display function below uses pop() to retrieve items) and then + // alphabetically + results.sort((a, b) => { + const leftScore = a[4]; + const rightScore = b[4]; + if (leftScore === rightScore) { + // same score: sort alphabetically + const leftTitle = a[1].toLowerCase(); + const rightTitle = b[1].toLowerCase(); + if (leftTitle === rightTitle) return 0; + return leftTitle > rightTitle ? -1 : 1; // inverted is intentional + } + return leftScore > rightScore ? 1 : -1; + }); + + // remove duplicate search results + // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept + let seen = new Set(); + results = results.reverse().reduce((acc, result) => { + let resultStr = result.slice(0, 4).concat([result[5]]).map(v => String(v)).join(','); + if (!seen.has(resultStr)) { + acc.push(result); + seen.add(resultStr); + } + return acc; + }, []); + + results = results.reverse(); + + // for debugging + //Search.lastresults = results.slice(); // a copy + // console.info("search results:", Search.lastresults); + + // print the results + _displayNextItem(results, results.length, searchTerms); + }, + + /** + * search for object names + */ + performObjectSearch: (object, objectTerms) => { + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const objects = Search._index.objects; + const objNames = Search._index.objnames; + const titles = Search._index.titles; + + const results = []; + + const objectSearchCallback = (prefix, match) => { + const name = match[4] + const fullname = (prefix ? prefix + "." : "") + name; + const fullnameLower = fullname.toLowerCase(); + if (fullnameLower.indexOf(object) < 0) return; + + let score = 0; + const parts = fullnameLower.split("."); + + // check for different match types: exact matches of full name or + // "last name" (i.e. last dotted part) + if (fullnameLower === object || parts.slice(-1)[0] === object) + score += Scorer.objNameMatch; + else if (parts.slice(-1)[0].indexOf(object) > -1) + score += Scorer.objPartialMatch; // matches in last name + + const objName = objNames[match[1]][2]; + const title = titles[match[0]]; + + // If more than one term searched for, we require other words to be + // found in the name/title/description + const otherTerms = new Set(objectTerms); + otherTerms.delete(object); + if (otherTerms.size > 0) { + const haystack = `${prefix} ${name} ${objName} ${title}`.toLowerCase(); + if ( + [...otherTerms].some((otherTerm) => haystack.indexOf(otherTerm) < 0) + ) + return; + } + + let anchor = match[3]; + if (anchor === "") anchor = fullname; + else if (anchor === "-") anchor = objNames[match[1]][1] + "-" + fullname; + + const descr = objName + _(", in ") + title; + + // add custom score for some objects according to scorer + if (Scorer.objPrio.hasOwnProperty(match[2])) + score += Scorer.objPrio[match[2]]; + else score += Scorer.objPrioDefault; + + results.push([ + docNames[match[0]], + fullname, + "#" + anchor, + descr, + score, + filenames[match[0]], + ]); + }; + Object.keys(objects).forEach((prefix) => + objects[prefix].forEach((array) => + objectSearchCallback(prefix, array) + ) + ); + return results; + }, + + /** + * search for full-text terms in the index + */ + performTermsSearch: (searchTerms, excludedTerms) => { + // prepare search + const terms = Search._index.terms; + const titleTerms = Search._index.titleterms; + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const titles = Search._index.titles; + + const scoreMap = new Map(); + const fileMap = new Map(); + + // perform the search on the required terms + searchTerms.forEach((word) => { + const files = []; + const arr = [ + { files: terms[word], score: Scorer.term }, + { files: titleTerms[word], score: Scorer.title }, + ]; + // add support for partial matches + if (word.length > 2) { + const escapedWord = _escapeRegExp(word); + Object.keys(terms).forEach((term) => { + if (term.match(escapedWord) && !terms[word]) + arr.push({ files: terms[term], score: Scorer.partialTerm }); + }); + Object.keys(titleTerms).forEach((term) => { + if (term.match(escapedWord) && !titleTerms[word]) + arr.push({ files: titleTerms[word], score: Scorer.partialTitle }); + }); + } + + // no match but word was a required one + if (arr.every((record) => record.files === undefined)) return; + + // found search word in contents + arr.forEach((record) => { + if (record.files === undefined) return; + + let recordFiles = record.files; + if (recordFiles.length === undefined) recordFiles = [recordFiles]; + files.push(...recordFiles); + + // set score for the word in each file + recordFiles.forEach((file) => { + if (!scoreMap.has(file)) scoreMap.set(file, {}); + scoreMap.get(file)[word] = record.score; + }); + }); + + // create the mapping + files.forEach((file) => { + if (fileMap.has(file) && fileMap.get(file).indexOf(word) === -1) + fileMap.get(file).push(word); + else fileMap.set(file, [word]); + }); + }); + + // now check if the files don't contain excluded terms + const results = []; + for (const [file, wordList] of fileMap) { + // check if all requirements are matched + + // as search terms with length < 3 are discarded + const filteredTermCount = [...searchTerms].filter( + (term) => term.length > 2 + ).length; + if ( + wordList.length !== searchTerms.size && + wordList.length !== filteredTermCount + ) + continue; + + // ensure that none of the excluded terms is in the search result + if ( + [...excludedTerms].some( + (term) => + terms[term] === file || + titleTerms[term] === file || + (terms[term] || []).includes(file) || + (titleTerms[term] || []).includes(file) + ) + ) + break; + + // select one (max) score for the file. + const score = Math.max(...wordList.map((w) => scoreMap.get(file)[w])); + // add result to the result list + results.push([ + docNames[file], + titles[file], + "", + null, + score, + filenames[file], + ]); + } + return results; + }, + + /** + * helper function to return a node containing the + * search summary for a given text. keywords is a list + * of stemmed words. + */ + makeSearchSummary: (htmlText, keywords) => { + const text = Search.htmlToText(htmlText); + if (text === "") return null; + + const textLower = text.toLowerCase(); + const actualStartPosition = [...keywords] + .map((k) => textLower.indexOf(k.toLowerCase())) + .filter((i) => i > -1) + .slice(-1)[0]; + const startWithContext = Math.max(actualStartPosition - 120, 0); + + const top = startWithContext === 0 ? "" : "..."; + const tail = startWithContext + 240 < text.length ? "..." : ""; + + let summary = document.createElement("p"); + summary.classList.add("context"); + summary.textContent = top + text.substr(startWithContext, 240).trim() + tail; + + return summary; + }, +}; + +_ready(Search.init); diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/sphinx_highlight.js b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/sphinx_highlight.js new file mode 100644 index 0000000000..aae669d7ea --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/sphinx_highlight.js @@ -0,0 +1,144 @@ +/* Highlighting utilities for Sphinx HTML documentation. */ +"use strict"; + +const SPHINX_HIGHLIGHT_ENABLED = true + +/** + * highlight a given string on a node by wrapping it in + * span elements with the given class name. + */ +const _highlight = (node, addItems, text, className) => { + if (node.nodeType === Node.TEXT_NODE) { + const val = node.nodeValue; + const parent = node.parentNode; + const pos = val.toLowerCase().indexOf(text); + if ( + pos >= 0 && + !parent.classList.contains(className) && + !parent.classList.contains("nohighlight") + ) { + let span; + + const closestNode = parent.closest("body, svg, foreignObject"); + const isInSVG = closestNode && closestNode.matches("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.classList.add(className); + } + + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + parent.insertBefore( + span, + parent.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling + ) + ); + node.nodeValue = val.substr(0, pos); + + if (isInSVG) { + const rect = document.createElementNS( + "http://www.w3.org/2000/svg", + "rect" + ); + const bbox = parent.getBBox(); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute("class", className); + addItems.push({ parent: parent, target: rect }); + } + } + } else if (node.matches && !node.matches("button, select, textarea")) { + node.childNodes.forEach((el) => _highlight(el, addItems, text, className)); + } +}; +const _highlightText = (thisNode, text, className) => { + let addItems = []; + _highlight(thisNode, addItems, text, className); + addItems.forEach((obj) => + obj.parent.insertAdjacentElement("beforebegin", obj.target) + ); +}; + +/** + * Small JavaScript module for the documentation. + */ +const SphinxHighlight = { + + /** + * highlight the search words provided in localstorage in the text + */ + highlightSearchWords: () => { + if (!SPHINX_HIGHLIGHT_ENABLED) return; // bail if no highlight + + // get and clear terms from localstorage + const url = new URL(window.location); + const highlight = + localStorage.getItem("sphinx_highlight_terms") + || url.searchParams.get("highlight") + || ""; + localStorage.removeItem("sphinx_highlight_terms") + url.searchParams.delete("highlight"); + window.history.replaceState({}, "", url); + + // get individual terms from highlight string + const terms = highlight.toLowerCase().split(/\s+/).filter(x => x); + if (terms.length === 0) return; // nothing to do + + // There should never be more than one element matching "div.body" + const divBody = document.querySelectorAll("div.body"); + const body = divBody.length ? divBody[0] : document.querySelector("body"); + window.setTimeout(() => { + terms.forEach((term) => _highlightText(body, term, "highlighted")); + }, 10); + + const searchBox = document.getElementById("searchbox"); + if (searchBox === null) return; + searchBox.appendChild( + document + .createRange() + .createContextualFragment( + '" + ) + ); + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords: () => { + document + .querySelectorAll("#searchbox .highlight-link") + .forEach((el) => el.remove()); + document + .querySelectorAll("span.highlighted") + .forEach((el) => el.classList.remove("highlighted")); + localStorage.removeItem("sphinx_highlight_terms") + }, + + initEscapeListener: () => { + // only install a listener if it is really needed + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) return; + + document.addEventListener("keydown", (event) => { + // bail for input elements + if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; + // bail with special keys + if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) return; + if (DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS && (event.key === "Escape")) { + SphinxHighlight.hideSearchWords(); + event.preventDefault(); + } + }); + }, +}; + +_ready(SphinxHighlight.highlightSearchWords); +_ready(SphinxHighlight.initEscapeListener); diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/tabs.css b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/tabs.css new file mode 100644 index 0000000000..957ba60d69 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/tabs.css @@ -0,0 +1,89 @@ +.sphinx-tabs { + margin-bottom: 1rem; +} + +[role="tablist"] { + border-bottom: 1px solid #a0b3bf; +} + +.sphinx-tabs-tab { + position: relative; + font-family: Lato,'Helvetica Neue',Arial,Helvetica,sans-serif; + color: #1D5C87; + line-height: 24px; + margin: 0; + font-size: 16px; + font-weight: 400; + background-color: rgba(255, 255, 255, 0); + border-radius: 5px 5px 0 0; + border: 0; + padding: 1rem 1.5rem; + margin-bottom: 0; +} + +.sphinx-tabs-tab[aria-selected="true"] { + font-weight: 700; + border: 1px solid #a0b3bf; + border-bottom: 1px solid white; + margin: -1px; + background-color: white; +} + +.sphinx-tabs-tab:focus { + z-index: 1; + outline-offset: 1px; +} + +.sphinx-tabs-panel { + position: relative; + padding: 1rem; + border: 1px solid #a0b3bf; + margin: 0px -1px -1px -1px; + border-radius: 0 0 5px 5px; + border-top: 0; + background: white; +} + +.sphinx-tabs-panel.code-tab { + padding: 0.4rem; +} + +.sphinx-tab img { + margin-bottom: 24 px; +} + +/* Dark theme preference styling */ + +@media (prefers-color-scheme: dark) { + body[data-theme="auto"] .sphinx-tabs-panel { + color: white; + background-color: rgb(50, 50, 50); + } + + body[data-theme="auto"] .sphinx-tabs-tab { + color: white; + background-color: rgba(255, 255, 255, 0.05); + } + + body[data-theme="auto"] .sphinx-tabs-tab[aria-selected="true"] { + border-bottom: 1px solid rgb(50, 50, 50); + background-color: rgb(50, 50, 50); + } +} + +/* Explicit dark theme styling */ + +body[data-theme="dark"] .sphinx-tabs-panel { + color: white; + background-color: rgb(50, 50, 50); +} + +body[data-theme="dark"] .sphinx-tabs-tab { + color: white; + background-color: rgba(255, 255, 255, 0.05); +} + +body[data-theme="dark"] .sphinx-tabs-tab[aria-selected="true"] { + border-bottom: 2px solid rgb(50, 50, 50); + background-color: rgb(50, 50, 50); +} diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/tabs.js b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/tabs.js new file mode 100644 index 0000000000..48dc303c8c --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/static/tabs.js @@ -0,0 +1,145 @@ +try { + var session = window.sessionStorage || {}; +} catch (e) { + var session = {}; +} + +window.addEventListener("DOMContentLoaded", () => { + const allTabs = document.querySelectorAll('.sphinx-tabs-tab'); + const tabLists = document.querySelectorAll('[role="tablist"]'); + + allTabs.forEach(tab => { + tab.addEventListener("click", changeTabs); + }); + + tabLists.forEach(tabList => { + tabList.addEventListener("keydown", keyTabs); + }); + + // Restore group tab selection from session + const lastSelected = session.getItem('sphinx-tabs-last-selected'); + if (lastSelected != null) selectNamedTabs(lastSelected); +}); + +/** + * Key focus left and right between sibling elements using arrows + * @param {Node} e the element in focus when key was pressed + */ +function keyTabs(e) { + const tab = e.target; + let nextTab = null; + if (e.keyCode === 39 || e.keyCode === 37) { + tab.setAttribute("tabindex", -1); + // Move right + if (e.keyCode === 39) { + nextTab = tab.nextElementSibling; + if (nextTab === null) { + nextTab = tab.parentNode.firstElementChild; + } + // Move left + } else if (e.keyCode === 37) { + nextTab = tab.previousElementSibling; + if (nextTab === null) { + nextTab = tab.parentNode.lastElementChild; + } + } + } + + if (nextTab !== null) { + nextTab.setAttribute("tabindex", 0); + nextTab.focus(); + } +} + +/** + * Select or deselect clicked tab. If a group tab + * is selected, also select tab in other tabLists. + * @param {Node} e the element that was clicked + */ +function changeTabs(e) { + // Use this instead of the element that was clicked, in case it's a child + const notSelected = this.getAttribute("aria-selected") === "false"; + const positionBefore = this.parentNode.getBoundingClientRect().top; + const notClosable = !this.parentNode.classList.contains("closeable"); + + deselectTabList(this); + + if (notSelected || notClosable) { + selectTab(this); + const name = this.getAttribute("name"); + selectNamedTabs(name, this.id); + + if (this.classList.contains("group-tab")) { + // Persist during session + session.setItem('sphinx-tabs-last-selected', name); + } + } + + const positionAfter = this.parentNode.getBoundingClientRect().top; + const positionDelta = positionAfter - positionBefore; + // Scroll to offset content resizing + window.scrollTo(0, window.scrollY + positionDelta); +} + +/** + * Select tab and show associated panel. + * @param {Node} tab tab to select + */ +function selectTab(tab) { + tab.setAttribute("aria-selected", true); + + // Show the associated panel + document + .getElementById(tab.getAttribute("aria-controls")) + .removeAttribute("hidden"); +} + +/** + * Hide the panels associated with all tabs within the + * tablist containing this tab. + * @param {Node} tab a tab within the tablist to deselect + */ +function deselectTabList(tab) { + const parent = tab.parentNode; + const grandparent = parent.parentNode; + + Array.from(parent.children) + .forEach(t => t.setAttribute("aria-selected", false)); + + Array.from(grandparent.children) + .slice(1) // Skip tablist + .forEach(panel => panel.setAttribute("hidden", true)); +} + +/** + * Select grouped tabs with the same name, but no the tab + * with the given id. + * @param {Node} name name of grouped tab to be selected + * @param {Node} clickedId id of clicked tab + */ +function selectNamedTabs(name, clickedId=null) { + const groupedTabs = document.querySelectorAll(`.sphinx-tabs-tab[name="${name}"]`); + const tabLists = Array.from(groupedTabs).map(tab => tab.parentNode); + + tabLists + .forEach(tabList => { + // Don't want to change the tabList containing the clicked tab + const clickedTab = tabList.querySelector(`[id="${clickedId}"]`); + if (clickedTab === null ) { + // Select first tab with matching name + const tab = tabList.querySelector(`.sphinx-tabs-tab[name="${name}"]`); + deselectTabList(tab); + selectTab(tab); + } + }) +} + +if (typeof exports === 'undefined') { + exports = {}; +} + +exports.keyTabs = keyTabs; +exports.changeTabs = changeTabs; +exports.selectTab = selectTab; +exports.deselectTabList = deselectTabList; +exports.selectNamedTabs = selectNamedTabs; diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/statistics.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/statistics.html new file mode 100644 index 0000000000..6eff62b505 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/statistics.html @@ -0,0 +1,516 @@ + + + + + + + + + + + Statistics — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    +
      +
    • + + +
    • + +
    • +
    • +
    +
    +
    +
    +
    +
    +

    + Statistics + +  + +

    +

    + cvc5 collects a wide variety of statistics that give some insight on how it solves a particular input. +The statistics can be inspected via the + + + + Solver::getStatistics() + + + + API +function, or printed using the following options: +

    + +

    + Statistics collection is only available if the + + + ENABLE_STATISTICS + + + cmake option +is set to true, which is the case for all but competition builds. +Statistics, obtained via + + + + Solver::getStatistics() + + + + , +are always a snapshot of the statistics values that is decoupled from the +solver object and will not change when the solver is used again or deallocated. +Individual statistics values can be obtained via the API either by iterating over the + + + + Statistics + + + + object or by querying it by name. +

    +

    + A statistic value (of type + + + + Stat + + + + ) has two general +properties, + + + + isInternal() + + + + and + + + + isDefault() + + + + . + + + + isInternal() + + + + indicates whether a +statistic is considered public or internal. Public statistics are considered to +be part of the public API and should therefore remain stable across different +minor versions of cvc5. There is no such guarantee for internal statistics. + + + + isDefault() + + + + checks whether the +current value of a statistics is still the default value, or whether its value +was changed. +

    +

    + A statistic value can be any of the following types: +

    +
      +
    • +

      + integer, more specifically a signed 64-bit integer ( + + + int64_t + + + in C++). +

      +
    • +
    • +

      + double, a 64-bit floating-point value ( + + + double + + + in C++). +

      +
    • +
    • +

      + string, a character sequence ( + + + std::string + + + in C++). Timer statistics are +exported as string values as well, given as + + + "<value>ms" + + + . +

      +
    • +
    • +

      + histogram, a mapping from some integral or enumeration type to their count. +The integral or enumeration types are exported as string representations +( + + + std::map<std::string, + + + uint64_t> + + + in C++). +

      +
    • +
    +

    + Printing statistics on the command line looks like this: +

    +
    +
    +
    $ bin/cvc5 --stats ../test/regress/cli/regress0/auflia/bug336.smt2
    +unsat
    +driver::filename = ../test/regress/cli/regress0/auflia/bug336.smt2
    +global::totalTime = 3ms
    +theory::arith::inferencesLemma = { ARITH_SPLIT_DEQ: 1 }
    +theory::arrays::inferencesFact = { ARRAYS_READ_OVER_WRITE_1: 2 }
    +theory::arrays::inferencesLemma = { ARRAYS_EXT: 1, ARRAYS_READ_OVER_WRITE: 3 }
    +theory::builtin::inferencesLemma = { COMBINATION_SPLIT: 1 }
    +cvc5::CONSTANT = { UNKNOWN_TYPE_CONSTANT: 4, integer type: 4 }
    +cvc5::TERM = { AND: 1, APPLY_UF: 4, EQUAL: 4, NOT: 2, STORE: 2 }
    +cvc5::VARIABLE = { Boolean type: 5 }
    +
    +
    +
    +

    + Public statistics include some general information about the input file +( + + + driver::filename + + + and + + + * + + + ), the overall runtime ( + + + global::totalTime + + + ) +and the lemmas each theory sent to the core solver ( + + + theory::* + + + ). +

    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/theories/bags.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/theories/bags.html new file mode 100644 index 0000000000..cf7aea99bd --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/theories/bags.html @@ -0,0 +1,1662 @@ + + + + + + + + + + + Theory Reference: Bags — cvc5 documentation + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Theory Reference: Bags + +  + +

    +
    +

    + Finite Bags + +  + +

    +

    + cvc5 supports the theory of finite bags using the following sorts, constants, +functions and predicates. +

    +

    + For the C++ API examples in the table below, we assume that we have created +a + + cvc5::Solver solver + + object. +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +

    + SMTLIB language +

    +
    +

    + C++ API +

    +
    +

    + Logic String +

    +
    +

    + + + (set-logic + + + ALL) + + +

    +
    +

    + + + solver.setLogic("ALL"); + + +

    +
    +

    + Sort +

    +
    +

    + + + (Bag + + + <Sort>) + + +

    +
    +

    + + + solver.mkBagSort(cvc5::Sort + + + elementSort); + + +

    +
    +

    + Constants +

    +
    +

    + + + (declare-const + + + X + + + (Bag + + + String)) + + +

    +
    +

    + + + Sort + + + s + + + = + + + solver.mkBagSort(solver.getStringSort()); + + +

    +

    + + + Term + + + X + + + = + + + solver.mkConst(s, + + + "X"); + + +

    +
    +

    + Union disjoint +

    +
    +

    + + + (bag.union_disjoint + + + X + + + Y) + + +

    +
    +

    + + + Term + + + Y + + + = + + + solver.mkConst(s, + + + "Y"); + + +

    +

    + + + Term + + + t + + + = + + + solver.mkTerm(Kind::BAG_UNION_DISJOINT, + + + {X, + + + Y}); + + +

    +
    +

    + Union max +

    +
    +

    + + + (bag.union_max + + + X + + + Y) + + +

    +
    +

    + + + Term + + + Y + + + = + + + solver.mkConst(s, + + + "Y"); + + +

    +

    + + + Term + + + t + + + = + + + solver.mkTerm(Kind::BAG_UNION_MAX, + + + {X, + + + Y}); + + +

    +
    +

    + Intersection min +

    +
    +

    + + + (bag.inter_min + + + X + + + Y) + + +

    +
    +

    + + + Term + + + t + + + = + + + solver.mkTerm(Kind::BAG_INTER_MIN, + + + {X, + + + Y}); + + +

    +
    +

    + Difference subtract +

    +
    +

    + + + (bag.difference_subtract + + + X + + + Y) + + +

    +
    +

    + + + Term + + + t + + + = + + + solver.mkTerm(Kind::BAG_DIFFERENCE_SUBTRACT, + + + {X, + + + Y}); + + +

    +
    +

    + Duplicate elimination +

    +
    +

    + + + (bag.setof + + + X) + + +

    +
    +

    + + + Term + + + t + + + = + + + solver.mkTerm(Kind::BAG_SETOF, + + + {X}); + + +

    +
    +

    + Membership +

    +
    +

    + + + (bag.member + + + x + + + X) + + +

    +
    +

    + + + Term + + + x + + + = + + + solver.mkConst(solver.getStringSort(), + + + "x"); + + +

    +

    + + + Term + + + t + + + = + + + solver.mkTerm(Kind::BAG_MEMBER, + + + {x, + + + X}); + + +

    +
    +

    + Subbag +

    +
    +

    + + + (bag.subbag + + + X + + + Y) + + +

    +
    +

    + + + Term + + + t + + + = + + + solver.mkTerm(Kind::BAG_SUBBAG, + + + {X, + + + Y}); + + +

    +
    +

    + Emptybag +

    +
    +

    + + + (as + + + bag.empty + + + (Bag + + + Int)) + + + | + + + Term + + + t + + + = + + + solver.mkEmptyBag(s); + + +

    +
    +

    + Make bag +

    +
    +

    + + + (bag + + + "a" + + + 3) + + +

    +
    +
    +
    + + + Term + + + t + + + = + + + solver.mkTerm(Kind::BAG_MAKE, + + +
    +
    +

    + + + {solver.mkString("a"), + + + solver.mkInteger(1)}); + + +

    +
    +
    +
    +
    +

    + Semantics + +  + +

    +

    + A bag (or a multiset) + + \(m\) + + can be defined as a function from the domain of its elements +to the set of natural numbers (i.e., + + \(m : D \rightarrow \mathbb{N}\) + + ), +where + + \(m(e)\) + + represents the multiplicity of element + + \(e\) + + in the bag + + \(m\) + + . +

    +

    + The semantics of supported bag operators is given in the table below. +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    + Bag operator +

    +
    +

    + cvc5 operator +

    +
    +

    + Semantics +

    +
    +

    + union disjoint + + \(m_1 \uplus m_2\) + +

    +
    +

    + bag.union_disjoint +

    +
    +

    + + \(\forall e. \; (m_1 \uplus m_2)(e) = m_1(e) + m_2 (e)\) + +

    +
    +

    + union max + + \(m_1 \cup m_2\) + +

    +
    +

    + bag.union_max +

    +
    +

    + + \(\forall e. \; (m_1 \cup m_2)(e) = max(m_1(e), m_2 (e))\) + +

    +
    +

    + intersection + + \(m_1 \cap m_2\) + +

    +
    +

    + bag.inter_min +

    +
    +

    + + \(\forall e. \; (m_1 \cap m_2)(e) = min(m_1(e), m_2 (e))\) + +

    +
    +

    + difference subtract + + \(m_1 \setminus m_2\) + +

    +
    +

    + bag.difference_subtract +

    +
    +

    + + \(\forall e. \; (m_1 \setminus m_2)(e) = max(m_1(e) - m_2 (e), 0)\) + +

    +
    +

    + difference remove + + \(m_1 \setminus\setminus m_2\) + +

    +
    +

    + bag.difference_remove +

    +
    +

    + + \(\forall e. \; (m_1 \setminus\setminus m_2)(e) = ite(m_2(e) = 0, m_1(e), 0)\) + +

    +
    +

    + setof + + \(\delta(m)\) + +

    +
    +

    + bag.setof +

    +
    +

    + + \(\forall e. \; (\delta(m))(e) = ite(1 \leq m(e), 1, 0)\) + +

    +
    +

    + subbag + + \(m_1 \subseteq m_2\) + +

    +
    +

    + bag.subbag +

    +
    +

    + + \(\forall e. \; m_1(e) \leq m_2(e)\) + +

    +
    +

    + equality + + \(m_1 = m_2\) + +

    +
    +

    + = +

    +
    +

    + + \(\forall e. \; m_1(e) = m_2(e)\) + +

    +
    +

    + membership + + \(e \in m\) + +

    +
    +

    + bag.member +

    +
    +

    + + \(m(e) \geq 1\) + +

    +
    +

    + Below is a more extensive example on how to use finite bags: +

    +
    +
    + + + + +
    +
    +

    + + examples/api/cpp/bags.cpp + +

    +
    +
    +
      1/******************************************************************************
    +  2 * Top contributors (to current version):
    +  3 *   Mudathir Mohamed, Aina Niemetz
    +  4 *
    +  5 * This file is part of the cvc5 project.
    +  6 *
    +  7 * Copyright (c) 2009-2024 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 * A simple demonstration of reasoning about bags.
    + 14 */
    + 15
    + 16#include <cvc5/cvc5.h>
    + 17
    + 18#include <iostream>
    + 19
    + 20using namespace std;
    + 21using namespace cvc5;
    + 22
    + 23int main()
    + 24{
    + 25  TermManager tm;
    + 26  Solver slv(tm);
    + 27  slv.setLogic("ALL");
    + 28  // Produce models
    + 29  slv.setOption("produce-models", "true");
    + 30  slv.setOption("incremental", "true");
    + 31
    + 32  Sort bag = tm.mkBagSort(tm.getStringSort());
    + 33  Term A = tm.mkConst(bag, "A");
    + 34  Term B = tm.mkConst(bag, "B");
    + 35  Term C = tm.mkConst(bag, "C");
    + 36  Term x = tm.mkConst(tm.getStringSort(), "x");
    + 37
    + 38  Term intersectionAC = tm.mkTerm(Kind::BAG_INTER_MIN, {A, C});
    + 39  Term intersectionBC = tm.mkTerm(Kind::BAG_INTER_MIN, {B, C});
    + 40
    + 41  // union disjoint does not distribute over intersection
    + 42  {
    + 43    Term unionDisjointAB = tm.mkTerm(Kind::BAG_UNION_DISJOINT, {A, B});
    + 44    Term lhs = tm.mkTerm(Kind::BAG_INTER_MIN, {unionDisjointAB, C});
    + 45    Term rhs =
    + 46        tm.mkTerm(Kind::BAG_UNION_DISJOINT, {intersectionAC, intersectionBC});
    + 47    Term guess = tm.mkTerm(Kind::EQUAL, {lhs, rhs});
    + 48    cout << "cvc5 reports: " << guess.notTerm() << " is "
    + 49         << slv.checkSatAssuming(guess.notTerm()) << "." << endl;
    + 50
    + 51    cout << A << ": " << slv.getValue(A) << endl;
    + 52    cout << B << ": " << slv.getValue(B) << endl;
    + 53    cout << C << ": " << slv.getValue(C) << endl;
    + 54    cout << lhs << ": " << slv.getValue(lhs) << endl;
    + 55    cout << rhs << ": " << slv.getValue(rhs) << endl;
    + 56  }
    + 57
    + 58  // union max distributes over intersection
    + 59  {
    + 60    Term unionMaxAB = tm.mkTerm(Kind::BAG_UNION_MAX, {A, B});
    + 61    Term lhs = tm.mkTerm(Kind::BAG_INTER_MIN, {unionMaxAB, C});
    + 62    Term rhs = tm.mkTerm(Kind::BAG_UNION_MAX, {intersectionAC, intersectionBC});
    + 63    Term theorem = tm.mkTerm(Kind::EQUAL, {lhs, rhs});
    + 64    cout << "cvc5 reports: " << theorem.notTerm() << " is "
    + 65         << slv.checkSatAssuming(theorem.notTerm()) << "." << endl;
    + 66  }
    + 67
    + 68  // Verify emptbag is a subbag of any bag
    + 69  {
    + 70    Term emptybag = tm.mkEmptyBag(bag);
    + 71    Term theorem = tm.mkTerm(Kind::BAG_SUBBAG, {emptybag, A});
    + 72
    + 73    cout << "cvc5 reports: " << theorem.notTerm() << " is "
    + 74         << slv.checkSatAssuming(theorem.notTerm()) << "." << endl;
    + 75  }
    + 76
    + 77  // find an element with multiplicity 4 in the disjoint union of
    + 78  // ; {|"a", "a", "b", "b", "b"|} and {|"b", "c", "c"|}
    + 79
    + 80  {
    + 81    Term one = tm.mkInteger(1);
    + 82    Term two = tm.mkInteger(2);
    + 83    Term three = tm.mkInteger(3);
    + 84    Term four = tm.mkInteger(4);
    + 85    Term a = tm.mkString("a");
    + 86    Term b = tm.mkString("b");
    + 87    Term c = tm.mkString("c");
    + 88
    + 89    Term bag_a_2 = tm.mkTerm(Kind::BAG_MAKE, {a, two});
    + 90    Term bag_b_3 = tm.mkTerm(Kind::BAG_MAKE, {b, three});
    + 91    Term bag_b_1 = tm.mkTerm(Kind::BAG_MAKE, {b, one});
    + 92    Term bag_c_2 = tm.mkTerm(Kind::BAG_MAKE, {c, two});
    + 93    Term bag_a_2_b_3 = tm.mkTerm(Kind::BAG_UNION_DISJOINT, {bag_a_2, bag_b_3});
    + 94    Term bag_b_1_c_2 = tm.mkTerm(Kind::BAG_UNION_DISJOINT, {bag_b_1, bag_c_2});
    + 95    Term union_disjoint =
    + 96        tm.mkTerm(Kind::BAG_UNION_DISJOINT, {bag_a_2_b_3, bag_b_1_c_2});
    + 97
    + 98    Term count_x = tm.mkTerm(Kind::BAG_COUNT, {x, union_disjoint});
    + 99    Term e = tm.mkTerm(Kind::EQUAL, {four, count_x});
    +100    Result result = slv.checkSatAssuming(e);
    +101
    +102    cout << "cvc5 reports: " << e << " is " << result << "." << endl;
    +103    if (result.isSat())
    +104    {
    +105      cout << x << ": " << slv.getValue(x) << endl;
    +106    }
    +107  }
    +108}
    +
    +
    +
    +
    + + + +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/theories/datatypes.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/theories/datatypes.html new file mode 100644 index 0000000000..ebbaa0f9d7 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/theories/datatypes.html @@ -0,0 +1,2389 @@ + + + + + + + + + + + Theory Reference: Datatypes — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Theory Reference: Datatypes + +  + +

    +

    + cvc5 implements some extensions to the support for datatypes in SMT-LIB 2. +

    +
    +

    + Logic + +  + +

    +

    + To enable cvc5’s decision procedure for datatypes, include + + + DT + + + in the logic: +

    +
    +
    +
    (set-logic QF_DT)
    +
    +
    +
    +

    + Alternatively, use the + + + ALL + + + logic: +

    +
    +
    +
    (set-logic ALL)
    +
    +
    +
    +
    +
    +

    + Syntax + +  + +

    +

    + cvc5 supports the following syntax for declaring mutually recursive blocks of +datatypes in + + + *.smt2 + + + input files in the smt lib 2.6 format: +

    +
    +
    +
    (declare-datatypes ((D1 n1) ... (Dk nk))
    + (((C1 (S11 T1) ... (S1i Ti)) ... (Cj ... ))
    +  ...
    +  ((...) ... (...)))
    +
    +
    +
    +

    + where + + + D1 + + + ... + + + Dk + + + are datatype types, + + + C1 + + + ... + + + Cj + + + are the constructors for +datatype + + + D1 + + + , + + + S11 + + + ... + + + S1i + + + are the selectors (or “destructors”) of constructor + + + C1 + + + , and +each + + + T1 + + + ... + + + Ti + + + is a previously declared type or one of + + + D1 + + + ... + + + Dk + + + . +The numbers + + + n1 + + + ... + + + nk + + + denote the number of type +parameters for the datatype, where + + + 0 + + + is used for non-parametric datatypes. +

    +

    + In addition to declaring symbols for constructors and selectors, the above +command also allows for tester (or “discriminator”) indexed symbols of the form + + + (_ + + + is + + + C) + + + for each constructor + + + C + + + , which are unary predicates which +evaluate to true iff their argument has top-symbol + + + C + + + . It also allows for +updater indexed symbols of the form + + + (_ + + + update + + + Sij) + + + for each selector + + + Sij + + + , +whose semantics are described below. +

    +
    +
    +

    + Semantics + +  + +

    +

    + The decision procedure for inductive datatypes is described in + + [ + + BST07 + + ] + + . +

    +
    +
    +

    + Example Declarations + +  + +

    +

    + An enumeration: +

    +
    +
    +
    (declare-datatypes ((Color 0))
    + (((Red) (Black))))
    +
    +
    +
    +

    + A List of + + + Int + + + with + + + cons + + + and + + + nil + + + as constructors: +

    +
    +
    +
    (declare-datatypes ((list 0))
    + (((cons (head Int) (tail list)) (nil))))
    +
    +
    +
    +

    + A parametric List of T’s: +

    +
    +
    +
    (declare-datatypes ((list 1))
    + ((par (T) ((cons (head T) (tail (list T))) (nil)))))
    +
    +
    +
    +

    + Mutual recursion: +

    +
    +
    +
    (declare-datatypes ((list 0) (tree 0))
    + (((cons (head tree) (tail list)) (nil))
    +  ((node (data Int) (children list)))))
    +
    +
    +
    +

    + A (non-recursive) record type: +

    +
    +
    +
    (declare-datatypes ((record 0))
    + (((rec (fname String) (lname String) (id Int)))))
    +
    +
    +
    +
    +
    +

    + Examples + +  + +

    +
    +
    +
    (declare-datatypes ((list 0))
    +   (((cons (head Int) (tail list)) (nil))))
    + (declare-const a list)
    + (declare-const b list)
    + (assert (and (= (tail a) b) (not ((_ is nil) b)) (> (head b) 0)))
    + (check-sat)
    +
    +
    +
    +
    +
    +
    (declare-datatypes ((record 0))
    +  (((rec (fname String) (lname String) (id Int)))))
    +(declare-const x record)
    +(assert (and (= (fname x) "John") (= (lname x) "Smith")))
    +(check-sat)
    +
    +
    +
    +
    +
    +

    + Datatype Updaters + +  + +

    +

    + Datatype updaters are a (non-standard) extension available in datatype logics. +The term: +

    +
    +
    +
    ((_ update Sij) t u)
    +
    +
    +
    +

    + is equivalent to replacing the field of + + + t + + + denoted by the selector + + + Sij + + + with the value + + + u + + + , or + + + t + + + itself if that selector does not apply to the +constructor symbol of + + + t + + + . For example, for the list datatype, we have that: +

    +
    +
    +
    ((_ update head) (cons 4 nil) 7) = (cons 7 nil)
    +((_ update tail) (cons 4 nil) (cons 5 nil)) = (cons 4 (cons 5 nil))
    +((_ update head) nil 5) = nil
    +
    +
    +
    +

    + Note that datatype updaters can be seen as syntax sugar for an if-then-else +term that checks whether the constructor of + + + t + + + is the same as the one +associated with the given selector. +

    +
    +
    +

    + Parametric Datatypes + +  + +

    +

    + Instances of parametric datatypes must have their arguments instantiated with +concrete types. For instance, in the example: +

    +
    +
    +
    (declare-datatypes ((list 1)) ((par (T) (cons (head T) (tail (list T))) (nil))))
    +
    +
    +
    +

    + To declare a list of + + + Int + + + , use the command: +

    +
    +
    +
    (declare-const f (list Int))
    +
    +
    +
    +

    + Use of constructors that are ambiguously typed must be cast to a concrete type, +for instance all occurrences of + + + nil + + + for the above datatype must be cast with +the syntax: +

    +
    +
    +
    (as nil (list Int))
    +
    +
    +
    +
    +
    +

    + Tuples + +  + +

    +

    + Tuples are a particular instance of an inductive datatype. cvc5 supports +special syntax for tuples as an extension of the SMT-LIB version 2 format. +For example: +

    +
    +
    +
    (declare-const t (Tuple Int Int))
    +(assert (= ((_ tuple.select 0) t) 3))
    +(assert (not (= t (tuple 3 4))))
    +
    +
    +
    +
    +
    +

    + Codatatypes + +  + +

    +

    + cvc5 also supports co-inductive datatypes, as described in + + [ + + RB15 + + ] + + . +

    +

    + The syntax for declaring mutually recursive coinductive datatype blocks is +identical to inductive datatypes, except that + + + declare-datatypes + + + is replaced +by + + + declare-codatatypes + + + . For example, the following declares the type denote +streams of + + + Int + + + : +

    +
    +
    +
    (declare-codatatypes ((stream 0))
    + (((cons (head Int) (tail stream)))))
    +
    +
    +
    +
    +
    +

    + Syntax/API + +  + +

    +

    + For the C++ API examples in the table below, we assume that we have created +a + + cvc5::Solver solver + + object. +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +

    + SMTLIB language +

    +
    +

    + C++ API +

    +
    +

    + Logic String +

    +
    +

    + + + (set-logic + + + QF_DT) + + +

    +
    +

    + + + solver.setLogic("QF_DT"); + + +

    +
    +

    + Datatype Sort +

    +
    +

    + + + (declare-datatype + + + ...) + + +

    +
    +

    + + + Sort + + + s + + + = + + + solver.mkDatatypeSort(...); + + +

    +
    +

    + Datatype Sorts +

    +
    +

    + + + (declare-datatypes + + + ...) + + +

    +
    +

    + + + std::vector<Sort> + + + s + + + = + + + solver.mkDatatypeSorts(...); + + +

    +
    +

    + Constructor +

    +
    +

    + + + (Ci + + + <Term_1>, + + + ..., + + + <Term_n>) + + +

    +
    +

    + + + Sort + + + s + + + = + + + solver.mkDatatypeSort(...); + + +

    +

    + + + Datatype + + + dt + + + = + + + s.getDatatype(); + + +

    +

    + + + Term + + + ci + + + = + + + dt[i].getTerm(); + + +

    +

    + + + Term + + + r + + + = + + + solver.mkTerm(Kind::APPLY_CONSTRUCTOR, + + + {ci, + + + <Term_1>, + + + ..., + + + <Term_n>}); + + +

    +
    +

    + Selector +

    +
    +

    + + + (Sij + + + t) + + +

    +
    +

    + + + Sort + + + s + + + = + + + solver.mkDatatypeSort(...); + + +

    +

    + + + Datatype + + + dt + + + = + + + s.getDatatype(); + + +

    +

    + + + Term + + + sij + + + = + + + dt[i].getSelector(j).getTerm(); + + +

    +

    + + + Term + + + r + + + = + + + solver.mkTerm(Kind::APPLY_SELECTOR, + + + {sij, + + + t}); + + +

    +
    +

    + Updater +

    +
    +

    + + + ((_ + + + update + + + Sij) + + + t + + + u) + + +

    +
    +

    + + + Sort + + + s + + + = + + + solver.mkDatatypeSort(...); + + +

    +

    + + + Datatype + + + dt + + + = + + + s.getDatatype(); + + +

    +

    + + + Term + + + upd + + + = + + + dt[i].getSelector(j).getUpdaterTerm(); + + +

    +

    + + + Term + + + r + + + = + + + solver.mkTerm(Kind::APPLY_UPDATER, + + + {upd, + + + t, + + + u}); + + +

    +
    +

    + Tester +

    +
    +

    + + + ((_ + + + is + + + Ci) + + + t) + + +

    +
    +

    + + + Sort + + + s + + + = + + + solver.mkDatatypeSort(...); + + +

    +

    + + + Datatype + + + dt + + + = + + + s.getDatatype(); + + +

    +

    + + + Term + + + upd + + + = + + + dt[i].getTesterTerm(); + + +

    +

    + + + Term + + + r + + + = + + + solver.mkTerm(Kind::APPLY_TESTER, + + + {upd, + + + t, + + + u}); + + +

    +
    +

    + Tuple Sort +

    +
    +

    + + + (Tuple + + + <Sort_1>, + + + ..., + + + <Sort_n>) + + +

    +
    +

    + + + std::vector<cvc5::Sort> + + + sorts + + + = + + + { + + + ... + + + }; + + +

    +

    + + + Sort + + + s + + + = + + + solver.mkTupleSort(sorts); + + +

    +
    + +

    + + + (declare-const + + + t + + + (Tuple + + + Int + + + Int)) + + +

    +
    +

    + + + Sort + + + s_int + + + = + + + solver.getIntegerSort(); + + +

    +

    + + + Sort + + + s + + + = + + + solver.mkTupleSort({s_int, + + + s_int}); + + +

    +

    + + + Term + + + t + + + = + + + solver.mkConst(s, + + + "t"); + + +

    +
    +

    + Tuple Constructor +

    +
    +

    + + + (tuple + + + <Term_1>, + + + ..., + + + <Term_n>) + + +

    +
    +

    + + + Term + + + r + + + = + + + solver.mkTuple({<Term_1>, + + + ..., + + + <Term_n>}); + + +

    +
    +

    + Unit Tuple Sort +

    +
    +

    + + + UnitTuple + + +

    +
    +

    + + + Sort + + + s + + + = + + + solver.mkTupleSort({}); + + +

    +
    +

    + Tuple Unit +

    +
    +

    + + + tuple.unit + + +

    +
    +

    + + + Term + + + r + + + = + + + solver.mkTuple({}); + + +

    +
    +

    + Tuple Selector +

    +
    +

    + + + ((_ + + + tuple.select + + + i) + + + t) + + +

    +
    +

    + + + Sort + + + s + + + = + + + solver.mkTupleSort(sorts); + + +

    +

    + + + Datatype + + + dt + + + = + + + s.getDatatype(); + + +

    +

    + + + Term + + + sel + + + = + + + dt[0].getSelector(i).getTerm(); + + +

    +

    + + + Term + + + r + + + = + + + solver.mkTerm(Kind::APPLY_SELECTOR, + + + {sel, + + + t}); + + +

    +
    +

    + Tuple Updater +

    +
    +

    + + + ((_ + + + tuple.update + + + i) + + + t + + + u) + + +

    +
    +

    + + + Sort + + + s + + + = + + + solver.mkTupleSort(sorts); + + +

    +

    + + + Datatype + + + dt + + + = + + + s.getDatatype(); + + +

    +

    + + + Term + + + upd + + + = + + + dt[0].getSelector(i).getUpdaterTerm(); + + +

    +

    + + + Term + + + r + + + = + + + solver.mkTerm(Kind::APPLY_UPDATER, + + + {upd, + + + t, + + + u}); + + +

    +
    +

    + Tuple Projection +

    +
    +

    + + + ((_ + + + tuple.project + + + i1 + + + ... + + + in) + + + t) + + +

    +
    +

    + + + Sort + + + s + + + = + + + solver.mkTupleSort(sorts); + + +

    +

    + + + Datatype + + + dt + + + = + + + s.getDatatype(); + + +

    +

    + + + Term + + + proj + + + = + + + solver.mkOp(Kind::TUPLE_PROJECT, + + + {i1, + + + ..., + + + in}); + + +

    +

    + + + Term + + + r + + + = + + + solver.mkTerm(Kind::TUPLE_PROJECT, + + + {proj, + + + t}); + + +

    +
    +

    + Record Sort +

    +
    +

    + n/a +

    +
    +

    + + + Sort + + + s + + + = + + + mkRecordSort(const + + + std::vector<std::pair<std::string, + + + Sort>>& + + + fields); + + +

    +
    + +

    + n/a +

    +
    +

    + + + std::vector<std::pair<std::string, + + + Sort>> + + + fields; + + +

    +

    + + + fields.push_back(std::pair<std::string, + + + Sort>("fst", + + + solver.getIntegerSort())); + + +

    +

    + + + fields.push_back(std::pair<std::string, + + + Sort>("snd", + + + solver.getIntegerSort())); + + +

    +

    + + + Sort + + + s + + + = + + + mkRecordSort(fields); + + +

    +
    +

    + Record Constructor +

    +
    +

    + n/a +

    +
    +

    + + + Sort + + + s + + + = + + + mkRecordSort(fields); + + +

    +

    + + + Datatype + + + dt + + + = + + + s.getDatatype(); + + +

    +

    + + + Term + + + c + + + = + + + dt[0].getTerm(); + + +

    +

    + + + Term + + + r + + + = + + + solver.mkTerm(Kind::APPLY_CONSTRUCTOR, + + + {c, + + + <Term_1>, + + + ..., + + + <Term_n>}); + + +

    +
    +

    + Record Selector +

    +
    +

    + n/a +

    +
    +

    + + + Sort + + + s + + + = + + + mkRecordSort(fields); + + +

    +

    + + + Datatype + + + dt + + + = + + + s.getDatatype(); + + +

    +

    + + + Term + + + sel + + + = + + + dt[0].getSelector(name).getSelectorTerm(); + + +

    +

    + + + Term + + + r + + + = + + + solver.mkTerm(Kind::APPLY_SELECTOR, + + + {sel, + + + t}); + + +

    +
    +

    + Record Updater +

    +
    +

    + n/a +

    +
    +

    + + + Sort + + + s + + + = + + + solver.mkRecordSort(sorts); + + +

    +

    + + + Datatype + + + dt + + + = + + + s.getDatatype(); + + +

    +

    + + + Term + + + upd + + + = + + + dt[0].getSelector(name).getUpdaterTerm(); + + +

    +

    + + + Term + + + r + + + = + + + solver.mkTerm(Kind::APPLY_UPDATER, + + + {upd, + + + t, + + + u}); + + +

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/theories/finite_field.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/theories/finite_field.html new file mode 100644 index 0000000000..dd980afe4f --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/theories/finite_field.html @@ -0,0 +1,1223 @@ + + + + + + + + + + + Theory Reference: Finite Fields — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Theory Reference: Finite Fields + +  + +

    +
    +

    + Note +

    +
    +
    + Currently, cvc5 only supports finite fields of prime order p. +
    +
    +

    + Such a field is isomorphic to the integers modulo p. +

    +
    +
    +
    +
    +

    + Semantics + +  + +

    +

    + First, for integer + + \(x\) + + and positive integer + + \(y\) + + , define + + \((x \bmod y)\) + + as the unique integer + + \(r\) + + such that + + \(y = qx + r\) + + (where + + \(q\) + + is an integer) and + + \(0 \le r < q\) + + . +NB: This is the remainder when so-called “floor division” is performed. +

    +

    + We interpret field sorts as prime fields and field terms as integers. In the following, let: +

    +
      +
    • +

      + + + N + + + be an integer numeral and + + \(N\) + + be its integer +

      +
    • +
    • +

      + + + p + + + be a prime numeral and + + \(p\) + + be its prime +

      +
    • +
    • +

      + + + F + + + be an SMT field sort (of order + + \(p\) + + ) +

      +
    • +
    • +

      + + + x + + + and + + + y + + + be SMT field terms (of the same sort + + + F + + + ) with interpretations + + \(x\) + + and + + \(y\) + +

      +
    • +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    + SMT construct +

    +
    +

    + Semantics +

    +
    +

    + Notes +

    +
    +

    + + + (_ + + + FiniteField + + + p) + + +

    +
    +

    + the field of order + + \(p\) + +

    +
    +

    + represented as the integers modulo + + \(p\) + +

    +
    +

    + + + (as + + + ffN + + + F) + + +

    +
    +

    + the integer + + \((N \bmod p)\) + +

    +
    +
    +

    + + + (ff.add + + + x + + + y) + + +

    +
    +

    + the integer + + \(((x + y) \bmod p)\) + +

    +
    +

    + NB: + + + ff.add + + + is an n-ary operator +

    +
    +

    + + + (ff.mul + + + x + + + y) + + +

    +
    +

    + the integer + + \(((x \times y) \bmod p)\) + +

    +
    +

    + NB: + + + ff.mul + + + is an n-ary operator +

    +
    +

    + + + (= + + + x + + + y) + + +

    +
    +

    + the Boolean + + \(x = y\) + +

    +
    +
    +
    +
    +

    + Syntax + +  + +

    +

    + For the C++ API examples in the table below, we assume that we have created +a + + + + Solver + + + + object + + + solver + + + . +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +

    + SMT-LIB language +

    +
    +

    + C++ API +

    +
    +

    + Logic String +

    +
    +

    + use + + FF + + for finite fields +

    +

    + + + (set-logic + + + QF_FF) + + +

    +
    +

    + use + + FF + + for finite fields +

    +

    + + + solver.setLogic("QF_FF"); + + +

    +
    +

    + Sort +

    +
    +

    + + + (_ + + + FiniteField + + + <Prime + + + Order>) + + +

    +
    +

    + + + solver.mkFiniteFieldSort(<Prime + + + Order + + + As + + + String>); + + +

    +
    +

    + Constants +

    +
    +

    + + + (declare-const + + + X + + + (_ + + + FiniteField + + + 7)) + + +

    +
    +

    + + + Sort + + + s + + + = + + + solver.mkFiniteFieldSort("7"); + + +

    +

    + + + Term + + + X + + + = + + + solver.mkConst(s, + + + "X"); + + +

    +
    +

    + Finite Field Value +

    +
    +

    + + + (as + + + ff3 + + + (_ + + + FiniteField + + + 7)) + + +

    +
    +

    + + + Sort + + + ffSort + + + = + + + solver.mkFiniteFieldSort("7"); + + +

    +

    + + + Term + + + t + + + = + + + solver.mkFiniteFieldElem("3", + + + ffSort); + + +

    +
    +

    + Addition +

    +
    +

    + + + (ff.add + + + x + + + y) + + +

    +
    +

    + + + Term + + + t + + + = + + + solver.mkTerm(Kind::FINITE_FIELD_ADD, + + + {x, + + + y}); + + +

    +
    +

    + Multiplication +

    +
    +

    + + + (ff.mul + + + x + + + y) + + +

    +
    +

    + + + Term + + + t + + + = + + + solver.mkTerm(Kind::FINITE_FIELD_MULT, + + + {x, + + + y}); + + +

    +
    +

    + Equality +

    +
    +

    + + + (= + + + x + + + y) + + +

    +
    +

    + + + Term + + + t + + + = + + + solver.mkTerm(Kind::EQUAL, + + + {x, + + + y}); + + +

    +
    +
    +
    +

    + Examples + +  + +

    +
    +
    +
    (set-logic QF_FF)
    +(set-info :status unsat)
    +(define-sort F () (_ FiniteField 3))
    +(declare-const x F)
    +(assert (= (ff.mul x x) (as ff-1 F)))
    +(check-sat)
    +; unsat
    +
    +
    +
    +
    +
    +
    (set-logic QF_FF)
    +(set-info :status sat)
    +(define-sort F () (_ FiniteField 3))
    +(declare-const x F)
    +(assert (= (ff.mul x x) (as ff0 F)))
    +(check-sat)
    +; sat: (= x (as ff0 F)) is the only model
    +
    +
    +
    +
    +
    +
    (set-logic QF_FF)
    +(set-info :status unsat)
    +(define-sort F () (_ FiniteField 3))
    +(declare-const x F)
    +(declare-const y F)
    +(declare-const z F)
    +(assert (= (ff.mul (ff.add x y z) (ff.add x y z)) (as ff-1 F)))
    +(check-sat)
    +; unsat
    +
    +
    +
    +
    +
    +

    + Experimental Extensions + +  + +

    +

    + These features of the theory are experimental; they may be removed in the +future: +

    +
      +
    • +

      + + + ff.bitsum + + + : an n-ary operator for bitsums: + + + (ff.bitsum + + + x0 + + + x1 + + + x2) + + + is equivalent to + + \(x_0 + 2x_1 + 4x_2\) + + . +

      +
    • +
    • +

      + + + ff.neg + + + : unary negation +

      +
    • +
    +
    +
    +

    + Solvers + +  + +

    +

    + Internally, cvc5 implements two solvers for the theory of finite fields. +

    +
      +
    • +

      + The default solver is described in “Satisfiability Modulo Finite Fields” + + [ + + OKTB23 + + ] + + . +

      +
    • +
    • +

      + The + + + --ff-solver + + + split + + + flag turns on an alternate solver from “Split Groebner Bases for Satisfiability Modulo Finite Fields” + + [ + + OPB+24 + + ] + + . This solver may be better on field equations that encode bit-decomposition. See the paper for more information. +

      +
    • +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/theories/separation-logic.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/theories/separation-logic.html new file mode 100644 index 0000000000..679f7a2908 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/theories/separation-logic.html @@ -0,0 +1,1208 @@ + + + + + + + + + + + Theory Reference: Separation Logic — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Theory Reference: Separation Logic + +  + +

    +

    + cvc5 supports a syntax for separation logic as an extension of the SMT-LIB 2.6 +language. +

    +
    +

    + Signature + +  + +

    +

    + Given a (decidable) base theory + + \(T\) + + , cvc5 implements a decision procedure +for quantifier-free + + \(SL(T)_{Loc,Data}\) + + formulas + + [ + + RISK16 + + ] + + , +where + + \(Loc\) + + and + + \(Data\) + + are any sort belonging to + + \(T\) + + . +

    +

    + A + + \(SL(T)_{Loc,Data}\) + + formula is one from the following grammar: +

    +
    +
    +
    F : L | sep.emp | (pto t u) | (sep F1 ... Fn) | (wand F1 F2) | ~F1 | F1 op ... op Fn
    +
    +
    +
    +

    + where + + + op + + + is any classical Boolean connective, + + + t + + + and + + + u + + + are terms +built from symbols in the signature of + + \(T\) + + of sort + + \(Loc\) + + and + + \(Data\) + + respectively, and + + \(L\) + + is a + + \(T\) + + -literal. +

    +

    + The operator + + + sep.emp + + + denotes the empty heap constraint, the operator + + + pto + + + denotes the points-to predicate, the operator + + + sep + + + denotes separation start +and is variadic, and the operator + + + wand + + + denote magic wand. +

    +
    +
    +

    + Semantics + +  + +

    +

    + A satisfiability relation + + \(I,h \models_{SL} \varphi\) + + is defined for + + \(SL(T)_{Loc,Data}\) + + formulas + + \(\varphi\) + + , +where + + \(I\) + + is an interpretation, and + + \(h\) + + is a heap. +

    +

    + The semantics of separation logic operators are as follows: +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    + + \(I,h \models_{SL} L\) + +

    +
    +

    + Iff +

    +
    +

    + + \(I \models L\) + + , if + + \(L\) + + is a + + \(T\) + + -literal +

    +
    +

    + + \(I,h \models_{SL}\) + + (emp + + \(t \ u\) + + ) +

    +
    +

    + Iff +

    +
    +

    + + \(h = \emptyset\) + +

    +
    +

    + + \(I,h \models_{SL}\) + + (pto + + \(t \ u\) + + ) +

    +
    +

    + Iff +

    +
    +

    + + \(h = \{(t^I,u^I)\} \text{ and } t^I\not=nil^I\) + +

    +
    +

    + + \(I,h \models_{SL}\) + + (sep + + \(\phi_1 \ldots \phi_n)\) + +

    +
    +

    + Iff +

    +
    +

    + there exist heaps + + \(h_1,\ldots,h_n\) + + s.t. + + \(h=h_1\uplus \ldots \uplus h_n\) + +

    +

    + and + + \(I,h_i \models_{SL} \phi_i, i = 1,\ldots,n\) + +

    +
    +

    + + \(I,h \models_{SL}\) + + (wand + + \(\phi_1 \ \phi_2\) + + ) +

    +
    +

    + Iff +

    +
    +

    + for all heaps + + \(h'\) + + if + + \(h'\#h\) + + and + + \(I,h' \models_{SL} \phi_1\) + +

    +

    + then + + \(I,h'\uplus h \models_{SL} \phi_2\) + +

    +
    +

    + where + + \(h_1 \uplus \ldots \uplus h_n\) + + denotes the disjoint union of heaps + + \(h_1, \ldots, h_n\) + + and + + \(h'\#h\) + + denotes that heaps + + \(h'\) + + and + + \(h\) + + are disjoint, and + + \(nil\) + + is a distinguished variable of sort + + \(Loc\) + + . +All classical Boolean connectives are interpreted as expected. +

    +
    +
    +

    + Syntax + +  + +

    +

    + Separation logic in cvc5 requires the + + + QF_ALL + + + logic, and for the types of the heap to be declared via the + + declare-heap + + command: +

    +
    +
    +
    (declare-heap (T1 T2))
    +
    +
    +
    +

    + This command must be executed when the solver is in its Start mode (see page 52 of the SMT-LIB 2.6 standard + + [ + + BFT17 + + ] + + ). This command sets the location type of the heap + + \(Loc\) + + to + + \(T1\) + + and the data type + + \(Data\) + + to + + \(T2\) + + , where + + \(T1\) + + and + + \(T2\) + + are any defined types. This command can only be executed once in any context, and is reset only via a + + reset + + command. +

    +

    + The syntax for the operators of separation logic is summarized in the following +table. For the C++ API examples in this table, we assume that we have created +a + + + + cvc5::Solver + + + + object. +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +

    + SMTLIB language +

    +
    +

    + C++ API +

    +
    +

    + Logic String +

    +
    +

    + + + (set-logic + + + QF_ALL) + + +

    +
    +

    + + + solver.setLogic("QF_ALL"); + + +

    +
    +

    + Empty Heap +

    +
    +

    + + + sep.emp + + +

    +
    +

    + + + solver.mkSepEmp(); + + +

    +

    + where + + + x + + + and + + + y + + + are of sort + + + <Sort_1> + + + and + + + <Sort_2> + + +

    +
    +

    + Points-To +

    +
    +

    + + + (pto + + + x + + + y) + + +

    +
    +

    + + + solver.mkTerm(Kind::SEP_PTO, + + + {x, + + + y}); + + +

    +
    +

    + Separation Star +

    +
    +

    + + + (sep + + + c1 + + + .. + + + cn) + + +

    +
    +

    + + + solver.mkTerm(Kind::SEP_STAR, + + + {c1, + + + ..., + + + cn}); + + +

    +
    +

    + Magic Wand +

    +
    +

    + + + (wand + + + c1 + + + c1) + + +

    +
    +

    + + + solver.mkTerm(Kind::SEP_WAND, + + + {c1, + + + c2}); + + +

    +
    +

    + Nil Element +

    +
    +

    + + + (as + + + sep.nil + + + <Sort>) + + +

    +
    +

    + + + solver.mkSepNil(cvc5::Sort + + + sort); + + +

    +
    +
    +
    +

    + Examples + +  + +

    +

    + The following input on heaps + + + Int + + + -> + + + Int + + + is unsatisfiable: +

    +
    +
    +
    (set-logic QF_ALL)
    +(declare-heap (Int Int))
    +(set-info :status unsat)
    +(declare-const x Int)
    +(declare-const a Int)
    +(declare-const b Int)
    +(assert (and (pto x a) (pto x b)))
    +(assert (not (= a b)))
    +(check-sat)
    +
    +
    +
    +

    + The following input on heaps + + + U + + + -> + + + Int + + + is satisfiable. Notice that the +formula + + + (not + + + sep.emp) + + + is satisfied by heaps + + + U + + + -> + + + Int + + + whose domain is +non-empty. +

    +
    +
    +
    (set-logic QF_ALL)
    +(set-info :status sat)
    +(declare-sort U 0)
    +(declare-heap (U Int))
    +(declare-const x U)
    +(declare-const a Int)
    +(assert (and (not sep.emp) (pto x a)))
    +(check-sat)
    +
    +
    +
    +

    + The following input on heaps + + + Int + + + -> + + + Node + + + is satisfiable, where + + + Node + + + denotes a user-defined inductive + + + Theory Reference: Datatypes + + + . +

    +
    +
    +
    (set-logic QF_ALL)
    +(set-info :status sat)
    +(declare-const x Int)
    +(declare-const y Int)
    +(declare-const z Int)
    +(declare-datatype Node ((node (data Int) (left Int) (right Int))))
    +(declare-heap (Int Node))
    +(assert (pto x (node 0 y z)))
    +(check-sat)
    +
    +
    +
    +
    +

    + Note +

    +

    + Given a separation logic input, the sorts + + \(Loc\) + + and + + \(Data\) + + declared via the + + declare-heap + + command must match all separation logic +predicates in the input. cvc5 does not accept an input such as: +

    +
    +
    +
    (set-logic QF_ALL)
    +(declare-sort U 0)
    +(declare-heap (U Int))
    +(declare-const x U)
    +(assert (and (pto x 0) (pto 1 2)))
    +(check-sat)
    +
    +
    +
    +

    + since the second points-to predicate uses Int for its location type. +

    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/theories/sequences.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/theories/sequences.html new file mode 100644 index 0000000000..d74afc9c04 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/theories/sequences.html @@ -0,0 +1,1401 @@ + + + + + + + + + + + Theory Reference: Sequences — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Theory Reference: Sequences + +  + +

    +
    +

    + Note +

    +

    + cvc5 currently only supports sequences where the element sort either has an +infinite domain, e.g., sequences of integers, or a finite domain of a fixed +cardinality, e.g. bit-vectors. +

    +
    +
    +

    + Semantics + +  + +

    +
    +
    +
    * (seq.empty (Seq S))
    +
    +  ⟦seq.empty⟧ = []
    +
    +* (seq.unit S (Seq S))
    +
    +  ⟦seq.unit⟧(x) = [x]
    +
    +* (seq.len (Seq S) Int)
    +
    +  ⟦seq.len⟧(s) is the length of the sequence s, denoted as |s|.
    +
    +* (seq.nth ((Seq S) Int) S)
    +
    +  ⟦seq.nth⟧(s, i) is the n-th element in the sequence s,
    +                  denoted as nth(s, i).
    +                  It is uninterpreted if i out of bounds,
    +                  i.e. i < 0 or i >= |s|.
    +
    +* (seq.update ((Seq S) Int (Seq S)) (Seq S))
    +
    +  ⟦seq.update⟧(s, i, sub) is a sequence obtained by updating the continuous
    +                          sub-sequence of s starting at index i by sub.
    +                          The updated sequence has the same length as |s|.
    +                          If i + |sub| > |s|,
    +                          the out of bounds part of sub is ignored.
    +                          If i out of bounds, i.e. i < 0 or i >= |s|,
    +                          the updated sequence remains same with s.
    +
    +* (seq.extract ((Seq S) Int Int) (Seq S))
    +
    +  ⟦seq.extract⟧(s, i, j) is the maximal sub-sequence of s that starts at
    +                         index i and has length at most j,
    +                         in case both i and j are non-negative and i is
    +                         smaller than |s|.
    +                         Otherwise, the return value is the empty sequence.
    +
    + * (seq.++ ((Seq S) (Seq S)) (Seq S))
    +
    +  ⟦seq.++⟧(s1, s2) is a sequence that is the concatenation of s1 and s2.
    +
    + * (seq.at ((Seq S) Int) (Seq S))
    +
    +  ⟦seq.at⟧(s, i) is a unit sequence that contains the i-th element of s as
    +                 the only element, or is the empty sequence if i < 0 or i > |s|.
    +
    + * (seq.contains ((Seq S) (Seq S)) Bool)
    +
    +  ⟦seq.contains⟧(s, sub) is true if sub is a continuous sub-sequence of s,
    +                         i.e. sub = seq.extract(s, i, j) for some i, j,
    +                         and false if otherwise.
    +
    + * (seq.indexof ((Seq S) (Seq S) Int) Int)
    +
    +  ⟦seq.indexof⟧(s, sub, i) is the first position of sub at or after i in s,
    +                           and -1 if there is no occurrence.
    +
    + * (seq.replace ((Seq S) (Seq S) (Seq S)) (Seq S))
    +
    +  ⟦seq.replace⟧(s, src, dst) is the sequence obtained by replacing the
    +                             first occurrence of src by dst in s.
    +                             It is s if there is no occurrence.
    +
    + * (seq.replace_all ((Seq S) (Seq S) (Seq S)) (Seq S))
    +
    +  ⟦seq.replace_all⟧(s, src, dst) is the sequence obtained by replacing all
    +                                 the occurrences of src by dst in s,
    +                                 in the order from left to right.
    +                                 It is s if there is no occurrence.
    +
    + * (seq.rev (Seq S) (Seq S))
    +
    +  ⟦seq.rev⟧(s) is the sequence obtained by reversing s.
    +
    + * (seq.prefixof ((Seq S) (Seq S)) Bool)
    +
    +  ⟦seq.prefixof⟧(pre s) is true if pre is a prefix of s, false otherwise.
    +
    + * (seq.suffixof ((Seq S) (Seq S)) Bool)
    +
    +  ⟦seq.suffixof⟧(suf s) is true if suf is a suffix of s, false otherwise.
    +
    +
    +
    +
    +
    +

    + Syntax + +  + +

    +

    + For the C++ API examples in the table below, we assume that we have created +a + + + + Solver + + + + object + + + solver + + + . +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +

    + SMT-LIB language +

    +
    +

    + C++ API +

    +
    +

    + Logic String +

    +
    +

    + use + + S + + for sequences and strings +

    +

    + + + (set-logic + + + QF_SLIA) + + +

    +
    +

    + use + + S + + for sequences and strings +

    +

    + + + solver.setLogic("QF_SLIA"); + + +

    +
    +

    + Sort +

    +
    +

    + + + (Seq + + + <Sort>) + + +

    +
    +

    + + + solver.mkSequenceSort(<Sort>); + + +

    +
    +

    + Constants +

    +
    +

    + + + (declare-const + + + X + + + (Seq + + + Int)) + + +

    +
    +

    + + + Sort + + + s + + + = + + + solver.mkSequenceSort(solver.getIntegerSort()); + + +

    +

    + + + Term + + + X + + + = + + + solver.mkConst(s, + + + "X"); + + +

    +
    +

    + Empty sequence +

    +
    +

    + + + (as + + + seq.empty + + + (Seq + + + Int)) + + +

    +
    +

    + + + Sort + + + intSort + + + = + + + solver.getIntegerSort(); + + +

    +

    + + + Term + + + t + + + = + + + solver.mkEmptySequence(intSort); + + +

    +
    +

    + Unit sequence +

    +
    +

    + + + (seq.unit + + + 1) + + +

    +
    +

    + + + Term + + + t + + + = + + + solver.mkTerm(Kind::SEQ_UNIT, + + + {solver.mkInteger(1)}); + + +

    +
    +

    + Sequence length +

    +
    +

    + + + (seq.len + + + X) + + +

    +
    +

    + + + Term + + + t + + + = + + + solver.mkTerm(Kind::SEQ_LENGTH, + + + {X}); + + +

    +
    +

    + Element access +

    +
    +

    + + + (seq.nth + + + X + + + i) + + +

    +
    +

    + + + Term + + + t + + + = + + + solver.mkTerm(Kind::SEQ_NTH, + + + {X, + + + i}); + + +

    +
    +

    + Element update +

    +
    +

    + + + (seq.update + + + X + + + i + + + Y) + + +

    +
    +

    + + + Term + + + t + + + = + + + solver.mkTerm(Kind::SEQ_UPDATE, + + + {X, + + + i, + + + Y}); + + +

    +
    +

    + Extraction +

    +
    +

    + + + (seq.extract + + + X + + + i + + + j) + + +

    +
    +

    + + + Term + + + t + + + = + + + solver.mkTerm(Kind::SEQ_EXTRACT, + + + {X, + + + i, + + + j}); + + +

    +
    +

    + Concatenation +

    +
    +

    + + + (seq.++ + + + X + + + Y) + + +

    +
    +

    + + + Term + + + t + + + = + + + solver.mkTerm(Kind::SEQ_CONCAT, + + + {X, + + + Y}); + + +

    +
    +

    + Sub-sequence with +single element +

    +
    +

    + + + (seq.at + + + X + + + i) + + +

    +
    +

    + + + Term + + + t + + + = + + + solver.mkTerm(Kind::SEQ_AT, + + + {X, + + + i}); + + +

    +
    +

    + Sequence containment +

    +
    +

    + + + (seq.contains + + + X + + + Y) + + +

    +
    +

    + + + Term + + + t + + + = + + + solver.mkTerm(Kind::SEQ_CONTAINS, + + + {X, + + + Y}); + + +

    +
    +

    + Sequence indexof +

    +
    +

    + + + (seq.indexof + + + X + + + Y + + + i) + + +

    +
    +

    + + + Term + + + t + + + = + + + solver.mkTerm(Kind::SEQ_INDEXOF, + + + {X, + + + Y, + + + i}); + + +

    +
    +

    + Sub-sequence replace +

    +
    +

    + + + (seq.replace + + + X + + + Y + + + Z) + + +

    +
    +

    + + + Term + + + t + + + = + + + solver.mkTerm(Kind::SEQ_REPLACE, + + + {X, + + + Y, + + + Z}); + + +

    +
    +

    + Sub-sequence +replace all +

    +
    +

    + + + (seq.replace_all + + + X + + + Y + + + Z) + + +

    +
    +

    + + + Term + + + t + + + = + + + solver.mkTerm(Kind::SEQ_REPLACE_ALL, + + + {X, + + + Y, + + + Z}); + + +

    +
    +

    + Sequence reverse +

    +
    +

    + + + (seq.rev + + + X) + + +

    +
    +

    + + + Term + + + t + + + = + + + solver.mkTerm(Kind::SEQ_REV, + + + {X}); + + +

    +
    +

    + Sequence prefix of +

    +
    +

    + + + (seq.prefixof + + + X + + + Y) + + +

    +
    +

    + + + Term + + + t + + + = + + + solver.mkTerm(Kind::SEQ_PREFIX, + + + {X, + + + Y}); + + +

    +
    +

    + Sequence suffix of +

    +
    +

    + + + (seq.suffixof + + + X + + + Y) + + +

    +
    +

    + + + Term + + + t + + + = + + + solver.mkTerm(Kind::SEQ_SUFFIX, + + + {X, + + + Y}); + + +

    +
    +
    +
    +

    + Examples + +  + +

    +
    +
    +
    (set-logic QF_SLIA)
    +(set-info :status unsat)
    +(declare-fun x () (Seq Int))
    +(declare-fun y () (Seq Int))
    +(declare-fun z () (Seq Int))
    +(declare-fun a () Int)
    +(declare-fun b () Int)
    +(assert (= y (seq.update x 0 (seq.unit a))))
    +(assert (= z (seq.update x 0 (seq.unit b))))
    +(assert (not (= a b)))
    +(assert (= y z))
    +(assert (> (seq.len y) 0))
    +(check-sat)
    +
    +
    +
    +
    +
    +
    (set-logic QF_SLIA)
    +(set-info :status unsat)
    +(declare-fun A () (Seq Int))
    +(declare-fun S () (Seq Int))
    +(declare-fun i () Int)
    +(assert (<= 0 i))
    +(assert (< i (- (seq.len A) 1)))
    +(assert (= S (seq.extract A i 1)))
    +(assert (distinct (seq.nth S 0) (seq.nth A i)))
    +(check-sat)
    +
    +
    +
    +
    +
    +
    (set-logic QF_SLIA)
    +(set-info :status unsat)
    +(declare-fun x () (Seq Int))
    +(declare-fun y () (Seq Int))
    +(declare-fun a () Int)
    +(declare-fun b () Int)
    +(assert (= (seq.++ (seq.unit a) y) (seq.update x 0 (seq.unit b))))
    +(assert (not (= a b)))
    +(check-sat)
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/theories/sets-and-relations.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/theories/sets-and-relations.html new file mode 100644 index 0000000000..51564aecf0 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/theories/sets-and-relations.html @@ -0,0 +1,3161 @@ + + + + + + + + + + + Theory Reference: Sets and Relations — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Theory Reference: Sets and Relations + +  + +

    +
    +

    + Finite Sets + +  + +

    +

    + cvc5 supports the theory of finite sets using the following sorts, constants, +functions and predicates. More details can be found in + + [ + + BBRT17 + + ] + + . +

    +

    + For the C++ API examples in the table below, we assume that we have created +a + + cvc5::Solver solver + + object. +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +

    + SMTLIB language +

    +
    +

    + C++ API +

    +
    +

    + Logic String +

    +
    +

    + append + + FS + + for finite sets +

    +

    + + + (set-logic + + + QF_UFLIAFS) + + +

    +
    +

    + append + + FS + + for finite sets +

    +

    + + + solver.setLogic("QF_UFLIAFS"); + + +

    +
    +

    + Sort +

    +
    +

    + + + (Set + + + <Sort>) + + +

    +
    +

    + + + solver.mkSetSort(cvc5::Sort + + + elementSort); + + +

    +
    +

    + Constants +

    +
    +

    + + + (declare-const + + + X + + + (Set + + + Int)) + + +

    +
    +

    + + + Sort + + + s + + + = + + + solver.mkSetSort(solver.getIntegerSort()); + + +

    +

    + + + Term + + + X + + + = + + + solver.mkConst(s, + + + "X"); + + +

    +
    +

    + Union +

    +
    +

    + + + (set.union + + + X + + + Y) + + +

    +
    +

    + + + Term + + + Y + + + = + + + solver.mkConst(s, + + + "Y"); + + +

    +

    + + + Term + + + t + + + = + + + solver.mkTerm(Kind::SET_UNION, + + + {X, + + + Y}); + + +

    +
    +

    + Intersection +

    +
    +

    + + + (set.inter + + + X + + + Y) + + +

    +
    +

    + + + Term + + + t + + + = + + + solver.mkTerm(Kind::SET_INTER, + + + {X, + + + Y}); + + +

    +
    +

    + Minus +

    +
    +

    + + + (set.minus + + + X + + + Y) + + +

    +
    +

    + + + Term + + + t + + + = + + + solver.mkTerm(Kind::SET_MINUS, + + + {X, + + + Y}); + + +

    +
    +

    + Membership +

    +
    +

    + + + (set.member + + + x + + + X) + + +

    +
    +

    + + + Term + + + x + + + = + + + solver.mkConst(solver.getIntegerSort(), + + + "x"); + + +

    +

    + + + Term + + + t + + + = + + + solver.mkTerm(Kind::SET_MEMBER, + + + {x, + + + X}); + + +

    +
    +

    + Subset +

    +
    +

    + + + (set.subset + + + X + + + Y) + + +

    +
    +

    + + + Term + + + t + + + = + + + solver.mkTerm(Kind::SET_SUBSET, + + + {X, + + + Y}); + + +

    +
    +

    + Emptyset +

    +
    +

    + + + (as + + + set.empty + + + (Set + + + Int)) + + +

    +
    +

    + + + Term + + + t + + + = + + + solver.mkEmptySet(s); + + +

    +
    +

    + Singleton Set +

    +
    +

    + + + (set.singleton + + + 1) + + +

    +
    +

    + + + Term + + + t + + + = + + + solver.mkTerm(Kind::SET_SINGLETON, + + + {solver.mkInteger(1)}); + + +

    +
    +

    + Emptyset tester +

    +
    +

    + + + (set.is_empty + + + X) + + +

    +
    +

    + + + Term + + + t + + + = + + + solver.mkTerm(Kind::SET_IS_EMPTY, + + + {X}); + + +

    +
    +

    + Singleton tester +

    +
    +

    + + + (set.is_singleton + + + X) + + +

    +
    +

    + + + Term + + + t + + + = + + + solver.mkTerm(Kind::SET_IS_SINGLETON, + + + {X}); + + +

    +
    +

    + Cardinality +

    +
    +

    + + + (set.card + + + X) + + +

    +
    +

    + + + Term + + + t + + + = + + + solver.mkTerm(Kind::SET_CARD, + + + {X}); + + +

    +
    +

    + Insert / Finite Sets +

    +
    +

    + + + (set.insert + + + 1 + + + 2 + + + 3 + + + (set.singleton + + + 4)) + + +

    +
    +

    + + + Term + + + one + + + = + + + solver.mkInteger(1); + + +

    +

    + + + Term + + + two + + + = + + + solver.mkInteger(2); + + +

    +

    + + + Term + + + three + + + = + + + solver.mkInteger(3); + + +

    +

    + + + Term + + + sgl + + + = + + + solver.mkTerm(Kind::SET_SINGLETON, + + + {solver.mkInteger(4)}); + + +

    +

    + + + Term + + + t + + + = + + + solver.mkTerm(Kind::SET_INSERT, + + + {one, + + + two, + + + three, + + + sgl}); + + +

    +
    +

    + Complement +

    +
    +

    + + + (set.complement + + + X) + + +

    +
    +

    + + + Term + + + t + + + = + + + solver.mkTerm(Kind::SET_COMPLEMENT, + + + {X}); + + +

    +
    +

    + Universe Set +

    +
    +

    + + + (as + + + set.universe + + + (Set + + + Int)) + + +

    +
    +

    + + + Term + + + t + + + = + + + solver.mkUniverseSet(s); + + +

    +
    +
    +

    + Semantics + +  + +

    +

    + The semantics of most of the above operators (e.g., + + + set.union + + + , + + + set.inter + + + , difference) are straightforward. +The semantics for the universe set and complement are more subtle and explained +in the following. +

    +

    + The universe set + + + (as + + + set.universe + + + (Set + + + T)) + + + is + + not + + interpreted as the set +containing all elements of sort + + + T + + + . +Instead it may be interpreted as any set such that all sets of sort + + + (Set + + + T) + + + are interpreted as subsets of it. +In other words, it is the union of the interpretations of all (finite) sets in +our input. +

    +

    + For example: +

    +
    +
    +
    (declare-fun x () (Set Int))
    +(declare-fun y () (Set Int))
    +(declare-fun z () (Set Int))
    +(assert (set.member 0 x))
    +(assert (set.member 1 y))
    +(assert (= z (as set.universe (Set Int))))
    +(check-sat)
    +
    +
    +
    +

    + Here, a possible model is: +

    +
    +
    +
    (define-fun x () (set.singleton 0))
    +(define-fun y () (set.singleton 1))
    +(define-fun z () (set.union (set.singleton 1) (set.singleton 0)))
    +
    +
    +
    +

    + Notice that the universe set in this example is interpreted the same as + + + z + + + , +and is such that all sets in this example ( + + + x + + + , + + + y + + + , and + + + z + + + ) are subsets +of it. +

    +

    + The set complement operator for + + + (Set + + + T) + + + is interpreted relative to the +interpretation of the universe set for + + + (Set + + + T) + + + , and not relative to the set +of all elements of sort + + + T + + + . +That is, for all sets + + + X + + + of sort + + + (Set + + + T) + + + , the complement operator is +such that + + + (= + + + (set.complement + + + X) + + + (set.minus + + + (as + + + set.universe + + + (Set + + + T)) + + + X)) + + + holds in all models. +

    +

    + The motivation for these semantics is to ensure that the universe set for sort + + + T + + + and applications of set complement can always be interpreted as a finite +set in (quantifier-free) inputs, even if the cardinality of + + + T + + + is infinite. +Above, notice that we were able to find a model for the universe set of sort + + + (Set + + + Int) + + + that contained two elements only. +

    +
    +

    + Note +

    +

    + In the presence of quantifiers, cvc5’s implementation of the above theory +allows infinite sets. +In particular, the following formula is SAT (even though cvc5 is not able to +say this): +

    +
    +
    +
    (set-logic ALL)
    +(declare-fun x () (Set Int))
    +(assert (forall ((z Int) (set.member (* 2 z) x)))
    +(check-sat)
    +
    +
    +
    +

    + The reason for that is that making this formula (and similar ones) + + unsat + + is +counter-intuitive when quantifiers are present. +

    +
    +

    + Below is a more extensive example on how to use finite sets: +

    +
    +
    + + + + +
    +
    +

    + + examples/api/cpp/sets.cpp + +

    +
    +
    +
     1/******************************************************************************
    + 2 * Top contributors (to current version):
    + 3 *   Aina Niemetz, Kshitij Bansal, Andrew Reynolds
    + 4 *
    + 5 * This file is part of the cvc5 project.
    + 6 *
    + 7 * Copyright (c) 2009-2024 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 * A simple demonstration of reasoning about sets via the C++ API.
    +14 */
    +15
    +16#include <cvc5/cvc5.h>
    +17
    +18#include <iostream>
    +19
    +20using namespace std;
    +21using namespace cvc5;
    +22
    +23int main()
    +24{
    +25  TermManager tm;
    +26  Solver slv(tm);
    +27
    +28  // Optionally, set the logic. We need at least UF for equality predicate,
    +29  // integers (LIA) and sets (FS).
    +30  slv.setLogic("QF_UFLIAFS");
    +31
    +32  // Produce models
    +33  slv.setOption("produce-models", "true");
    +34
    +35  Sort integer = tm.getIntegerSort();
    +36  Sort set = tm.mkSetSort(integer);
    +37
    +38  // Verify union distributions over intersection
    +39  // (A union B) intersection C = (A intersection C) union (B intersection C)
    +40  {
    +41    Term A = tm.mkConst(set, "A");
    +42    Term B = tm.mkConst(set, "B");
    +43    Term C = tm.mkConst(set, "C");
    +44
    +45    Term unionAB = tm.mkTerm(Kind::SET_UNION, {A, B});
    +46    Term lhs = tm.mkTerm(Kind::SET_INTER, {unionAB, C});
    +47
    +48    Term intersectionAC = tm.mkTerm(Kind::SET_INTER, {A, C});
    +49    Term intersectionBC = tm.mkTerm(Kind::SET_INTER, {B, C});
    +50    Term rhs = tm.mkTerm(Kind::SET_UNION, {intersectionAC, intersectionBC});
    +51
    +52    Term theorem = tm.mkTerm(Kind::EQUAL, {lhs, rhs});
    +53
    +54    cout << "cvc5 reports: " << theorem << " is "
    +55         << slv.checkSatAssuming(theorem.notTerm()) << "." << endl;
    +56  }
    +57
    +58  // Verify emptset is a subset of any set
    +59  {
    +60    Term A = tm.mkConst(set, "A");
    +61    Term emptyset = tm.mkEmptySet(set);
    +62
    +63    Term theorem = tm.mkTerm(Kind::SET_SUBSET, {emptyset, A});
    +64
    +65    cout << "cvc5 reports: " << theorem << " is "
    +66         << slv.checkSatAssuming(theorem.notTerm()) << "." << endl;
    +67  }
    +68
    +69  // Find me an element in {1, 2} intersection {2, 3}, if there is one.
    +70  {
    +71    Term one = tm.mkInteger(1);
    +72    Term two = tm.mkInteger(2);
    +73    Term three = tm.mkInteger(3);
    +74
    +75    Term singleton_one = tm.mkTerm(Kind::SET_SINGLETON, {one});
    +76    Term singleton_two = tm.mkTerm(Kind::SET_SINGLETON, {two});
    +77    Term singleton_three = tm.mkTerm(Kind::SET_SINGLETON, {three});
    +78    Term one_two = tm.mkTerm(Kind::SET_UNION, {singleton_one, singleton_two});
    +79    Term two_three =
    +80        tm.mkTerm(Kind::SET_UNION, {singleton_two, singleton_three});
    +81    Term intersection = tm.mkTerm(Kind::SET_INTER, {one_two, two_three});
    +82
    +83    Term x = tm.mkConst(integer, "x");
    +84
    +85    Term e = tm.mkTerm(Kind::SET_MEMBER, {x, intersection});
    +86
    +87    Result result = slv.checkSatAssuming(e);
    +88    cout << "cvc5 reports: " << e << " is " << result << "." << endl;
    +89
    +90    if (result.isSat())
    +91    {
    +92      cout << "For instance, " << slv.getValue(x) << " is a member." << endl;
    +93    }
    +94  }
    +95}
    +
    +
    +
    +
    + + + +
    +
    +
    +
    +

    + Finite Relations + +  + +

    +

    + cvc5 also supports the theory of finite relations, using the following sorts, +constants, functions and predicates. +More details can be found in + + [ + + MRTB17 + + ] + + . +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +

    + SMTLIB language +

    +
    +

    + C++ API +

    +
    +

    + Logic String +

    +
    +

    + + + (set-logic + + + QF_ALL) + + +

    +
    +

    + + + solver.setLogic("QF_ALL"); + + +

    +
    +

    + Tuple Sort +

    +
    +

    + + + (Tuple + + + <Sort_1>, + + + ..., + + + <Sort_n>) + + +

    +
    +

    + + + std::vector<cvc5::Sort> + + + sorts + + + = + + + { + + + ... + + + }; + + +

    +

    + + + Sort + + + s + + + = + + + solver.mkTupleSort(sorts); + + +

    +
    + +

    + + + (declare-const + + + t + + + (Tuple + + + Int + + + Int)) + + +

    +
    +

    + + + Sort + + + s_int + + + = + + + solver.getIntegerSort(); + + +

    +

    + + + Sort + + + s + + + = + + + solver.mkTupleSort({s_int, + + + s_int}); + + +

    +

    + + + Term + + + t + + + = + + + solver.mkConst(s, + + + "t"); + + +

    +
    +

    + Tuple Constructor +

    +
    +

    + + + (tuple + + + <Term_1>, + + + ..., + + + <Term_n>) + + +

    +
    +

    + + + Term + + + t + + + = + + + solver.mkTuple({Term_1>, + + + ..., + + + <Term_n>}); + + +

    +
    +

    + Unit Tuple Sort +

    +
    +

    + + + UnitTuple + + +

    +
    +

    + + + Sort + + + s + + + = + + + solver.mkTupleSort({}); + + +

    +
    +

    + Unit Tuple +

    +
    +

    + + + tuple.unit + + +

    +
    +

    + + + Term + + + t + + + = + + + solver.mkTuple({}); + + +

    +
    +

    + Tuple Selector +

    +
    +

    + + + ((_ + + + tuple.select + + + i) + + + t) + + +

    +
    +

    + + + Sort + + + s + + + = + + + solver.mkTupleSort(sorts); + + +

    +

    + + + Datatype + + + dt + + + = + + + s.getDatatype(); + + +

    +

    + + + Term + + + c + + + = + + + dt[0].getSelector(); + + +

    +

    + + + Term + + + t + + + = + + + solver.mkTerm(Kind::APPLY_SELECTOR, + + + {s, + + + t}); + + +

    +
    +

    + Relation Sort +

    +
    +

    + + + (Relation + + + <Sort_1>, + + + ..., + + + <Sort_n>) + + +

    +

    + which is a syntax sugar for +

    +

    + + + (Set + + + (Tuple + + + <Sort_1>, + + + ..., + + + <Sort_n>)) + + +

    +
    +

    + + + Sort + + + s + + + = + + + solver.mkSetSort(cvc5::Sort + + + tupleSort); + + +

    +
    +

    + Constants +

    +
    +

    + + + (declare-const + + + X + + + (Set + + + (Tuple + + + Int + + + Int) + + +

    +
    +

    + + + Sort + + + s + + + = + + + solver.mkSetSort(solver.mkTupleSort({s_int, + + + s_int}); + + +

    +

    + + + Term + + + X + + + = + + + solver.mkConst(s, + + + "X"); + + +

    +
    +

    + Transpose +

    +
    +

    + + + (rel.transpose + + + X) + + +

    +
    +

    + + + Term + + + t + + + = + + + solver.mkTerm(Kind::RELATION_TRANSPOSE, + + + X); + + +

    +
    +

    + Transitive Closure +

    +
    +

    + + + (rel.tclosure + + + X) + + +

    +
    +

    + + + Term + + + t + + + = + + + solver.mkTerm(Kind::RELATION_TCLOSURE, + + + X); + + +

    +
    +

    + Join +

    +
    +

    + + + (rel.join + + + X + + + Y) + + +

    +
    +

    + + + Term + + + t + + + = + + + solver.mkTerm(Kind::RELATION_JOIN, + + + X, + + + Y); + + +

    +
    +

    + Product +

    +
    +

    + + + (rel.product + + + X + + + Y) + + +

    +
    +

    + + + Term + + + t + + + = + + + solver.mkTerm(Kind::RELATION_PRODUCT, + + + X, + + + Y); + + +

    +
    +

    + Example: +

    +
    +
    + + + + +
    +
    +

    + + examples/api/cpp/relations.cpp + +

    +
    +
    +
      1/******************************************************************************
    +  2 * Top contributors (to current version):
    +  3 *   Mudathir Mohamed, Aina Niemetz, Mathias Preiner
    +  4 *
    +  5 * This file is part of the cvc5 project.
    +  6 *
    +  7 * Copyright (c) 2009-2024 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 * A simple demonstration of reasoning about relations via the C++ API.
    + 14 */
    + 15
    + 16#include <cvc5/cvc5.h>
    + 17
    + 18#include <iostream>
    + 19
    + 20using namespace cvc5;
    + 21
    + 22int main()
    + 23{
    + 24  TermManager tm;
    + 25  Solver solver(tm);
    + 26
    + 27  // Set the logic
    + 28  solver.setLogic("ALL");
    + 29
    + 30  // options
    + 31  solver.setOption("produce-models", "true");
    + 32  // we need finite model finding to answer sat problems with universal
    + 33  // quantified formulas
    + 34  solver.setOption("finite-model-find", "true");
    + 35  // we need sets extension to support set.universe operator
    + 36  solver.setOption("sets-exp", "true");
    + 37
    + 38  // (declare-sort Person 0)
    + 39  Sort personSort = tm.mkUninterpretedSort("Person");
    + 40
    + 41  // (Tuple Person)
    + 42  Sort tupleArity1 = tm.mkTupleSort({personSort});
    + 43  // (Relation Person)
    + 44  Sort relationArity1 = tm.mkSetSort(tupleArity1);
    + 45
    + 46  // (Tuple Person Person)
    + 47  Sort tupleArity2 = tm.mkTupleSort({personSort, personSort});
    + 48  // (Relation Person Person)
    + 49  Sort relationArity2 = tm.mkSetSort(tupleArity2);
    + 50
    + 51  // empty set
    + 52  Term emptySetTerm = tm.mkEmptySet(relationArity1);
    + 53
    + 54  // empty relation
    + 55  Term emptyRelationTerm = tm.mkEmptySet(relationArity2);
    + 56
    + 57  // universe set
    + 58  Term universeSet = tm.mkUniverseSet(relationArity1);
    + 59
    + 60  // variables
    + 61  Term people = tm.mkConst(relationArity1, "people");
    + 62  Term males = tm.mkConst(relationArity1, "males");
    + 63  Term females = tm.mkConst(relationArity1, "females");
    + 64  Term father = tm.mkConst(relationArity2, "father");
    + 65  Term mother = tm.mkConst(relationArity2, "mother");
    + 66  Term parent = tm.mkConst(relationArity2, "parent");
    + 67  Term ancestor = tm.mkConst(relationArity2, "ancestor");
    + 68  Term descendant = tm.mkConst(relationArity2, "descendant");
    + 69
    + 70  Term isEmpty1 = tm.mkTerm(Kind::EQUAL, {males, emptySetTerm});
    + 71  Term isEmpty2 = tm.mkTerm(Kind::EQUAL, {females, emptySetTerm});
    + 72
    + 73  // (assert (= people (as set.universe (Relation Person))))
    + 74  Term peopleAreTheUniverse = tm.mkTerm(Kind::EQUAL, {people, universeSet});
    + 75  // (assert (not (= males (as set.empty (Relation Person)))))
    + 76  Term maleSetIsNotEmpty = tm.mkTerm(Kind::NOT, {isEmpty1});
    + 77  // (assert (not (= females (as set.empty (Relation Person)))))
    + 78  Term femaleSetIsNotEmpty = tm.mkTerm(Kind::NOT, {isEmpty2});
    + 79
    + 80  // (assert (= (set.inter males females)
    + 81  //            (as set.empty (Relation Person))))
    + 82  Term malesFemalesIntersection = tm.mkTerm(Kind::SET_INTER, {males, females});
    + 83  Term malesAndFemalesAreDisjoint =
    + 84      tm.mkTerm(Kind::EQUAL, {malesFemalesIntersection, emptySetTerm});
    + 85
    + 86  // (assert (not (= father (as set.empty (Relation Person Person)))))
    + 87  // (assert (not (= mother (as set.empty (Relation Person Person)))))
    + 88  Term isEmpty3 = tm.mkTerm(Kind::EQUAL, {father, emptyRelationTerm});
    + 89  Term isEmpty4 = tm.mkTerm(Kind::EQUAL, {mother, emptyRelationTerm});
    + 90  Term fatherIsNotEmpty = tm.mkTerm(Kind::NOT, {isEmpty3});
    + 91  Term motherIsNotEmpty = tm.mkTerm(Kind::NOT, {isEmpty4});
    + 92
    + 93  // fathers are males
    + 94  // (assert (set.subset (rel.join father people) males))
    + 95  Term fathers = tm.mkTerm(Kind::RELATION_JOIN, {father, people});
    + 96  Term fathersAreMales = tm.mkTerm(Kind::SET_SUBSET, {fathers, males});
    + 97
    + 98  // mothers are females
    + 99  // (assert (set.subset (rel.join mother people) females))
    +100  Term mothers = tm.mkTerm(Kind::RELATION_JOIN, {mother, people});
    +101  Term mothersAreFemales = tm.mkTerm(Kind::SET_SUBSET, {mothers, females});
    +102
    +103  // (assert (= parent (set.union father mother)))
    +104  Term unionFatherMother = tm.mkTerm(Kind::SET_UNION, {father, mother});
    +105  Term parentIsFatherOrMother =
    +106      tm.mkTerm(Kind::EQUAL, {parent, unionFatherMother});
    +107
    +108  // (assert (= ancestor (rel.tclosure parent)))
    +109  Term transitiveClosure = tm.mkTerm(Kind::RELATION_TCLOSURE, {parent});
    +110  Term ancestorFormula = tm.mkTerm(Kind::EQUAL, {ancestor, transitiveClosure});
    +111
    +112  // (assert (= descendant (rel.transpose descendant)))
    +113  Term transpose = tm.mkTerm(Kind::RELATION_TRANSPOSE, {ancestor});
    +114  Term descendantFormula = tm.mkTerm(Kind::EQUAL, {descendant, transpose});
    +115
    +116  // (assert (forall ((x Person)) (not (set.member (tuple x x) ancestor))))
    +117  Term x = tm.mkVar(personSort, "x");
    +118  Term xxTuple = tm.mkTuple({x, x});
    +119  Term member = tm.mkTerm(Kind::SET_MEMBER, {xxTuple, ancestor});
    +120  Term notMember = tm.mkTerm(Kind::NOT, {member});
    +121
    +122  Term quantifiedVariables = tm.mkTerm(Kind::VARIABLE_LIST, {x});
    +123  Term noSelfAncestor =
    +124      tm.mkTerm(Kind::FORALL, {quantifiedVariables, notMember});
    +125
    +126  // formulas
    +127  solver.assertFormula(peopleAreTheUniverse);
    +128  solver.assertFormula(maleSetIsNotEmpty);
    +129  solver.assertFormula(femaleSetIsNotEmpty);
    +130  solver.assertFormula(malesAndFemalesAreDisjoint);
    +131  solver.assertFormula(fatherIsNotEmpty);
    +132  solver.assertFormula(motherIsNotEmpty);
    +133  solver.assertFormula(fathersAreMales);
    +134  solver.assertFormula(mothersAreFemales);
    +135  solver.assertFormula(parentIsFatherOrMother);
    +136  solver.assertFormula(descendantFormula);
    +137  solver.assertFormula(ancestorFormula);
    +138  solver.assertFormula(noSelfAncestor);
    +139
    +140  // check sat
    +141  Result result = solver.checkSat();
    +142
    +143  // output
    +144  std::cout << "Result     = " << result << std::endl;
    +145  std::cout << "people     = " << solver.getValue(people) << std::endl;
    +146  std::cout << "males      = " << solver.getValue(males) << std::endl;
    +147  std::cout << "females    = " << solver.getValue(females) << std::endl;
    +148  std::cout << "father     = " << solver.getValue(father) << std::endl;
    +149  std::cout << "mother     = " << solver.getValue(mother) << std::endl;
    +150  std::cout << "parent     = " << solver.getValue(parent) << std::endl;
    +151  std::cout << "descendant = " << solver.getValue(descendant) << std::endl;
    +152  std::cout << "ancestor   = " << solver.getValue(ancestor) << std::endl;
    +153}
    +
    +
    +
    +
    + + + +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/theories/strings.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/theories/strings.html new file mode 100644 index 0000000000..b3d97af3c3 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/theories/strings.html @@ -0,0 +1,416 @@ + + + + + + + + + + + Theory Reference: Strings — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Theory Reference: Strings + +  + +

    +

    + cvc5 supports all operators of the + + SMT-LIB standard for strings + + . It additionally +supports some non-standard operators that are described below. +

    +
    +

    + Semantics + +  + +

    +
    +
    +
    * (str.indexof_re String RegLan Int Int)
    +
    +  Let w₂ = ⟦str.substr⟧(w, i, |w| - i)
    +
    +  - ⟦str.indexof_re⟧(w, L, i) = -1     if no substring of w₂ is in L or i < 0
    +
    +  - ⟦str.indexof_re⟧(w, L, i) = |u₁|
    +    where u₁, w₁ are the shortest words such that
    +      - w₂ = u₁w₁u₂
    +      - w₁ ∈ L
    +                                       if some substring of w₂ is in L and i > 0
    +
    +* (str.update String Int String)
    +
    +  - ⟦str.update⟧(w, i, w₂) = w         if i < 0 or i >= |w|
    +
    +  - ⟦str.update⟧(w, i, w₂) = u₁u₂u₃
    +    where
    +      - w = u₁w₃u₃
    +      - |w₃| = |u₂|
    +      - |u₁| = i
    +      - u₂u₄ = w₂
    +      - |u₂| = min(|w₂|, |w| - i)      otherwise
    +
    +* (str.rev String String)
    +
    +  ⟦str.rev⟧(w) is the string obtained by reversing w, e.g.,
    +  ⟦str.rev⟧("abc") = "cba".
    +
    +* (str.to_lower String String)
    +
    +  ⟦str.to_lower⟧(w) = w₂
    +  where
    +    - |w| = |w₂|
    +    - the i-th character ri in w₂ is:
    +
    +      code(ri) = code(si) + ite(65 <= code(si) <= 90, 32, 0)
    +
    +      where si is the i-th character in w
    +
    +  Note: This operator performs the case conversion for the ASCII portion of
    +  Unicode only.
    +
    +* (str.to_upper String String)
    +
    +  ⟦str.to_upper⟧(w) = w₂
    +  where
    +    - |w| = |w₂|
    +    - the i-th character ri in w₂ is:
    +
    +      code(ri) = code(si) - ite(97 <= code(si) <= 122, 32, 0)
    +
    +      where si is the i-th character in w
    +
    +  Note: This operator performs the case conversion for the ASCII portion of
    +  Unicode only.
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/theories/theories.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/theories/theories.html new file mode 100644 index 0000000000..b042dc40ec --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/theories/theories.html @@ -0,0 +1,475 @@ + + + + + + + + + + + Theory References — cvc5 documentation + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    +
      +
    • + + +
    • + +
    • +
    • +
    +
    +
    +
    +
    +
    +

    + Theory References + +  + +

    +

    + cvc5 supports all theories that are currently standardized in SMT-LIB. +Additionally, it also implements several theories that are not (yet) +standardized, or that extend beyond the respective standardized theory. +Furthermore, cvc5 supports all combinations of all implemented theories as well +as combinations with + + datatypes, quantifiers, and uninterpreted functions (as +defined in the SMT-LIB standard) + + . +

    +
    +

    + Standardized theories + +  + +

    + +
    +
    +

    + Non-standard or extended theories + +  + +

    + +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/theories/transcendentals.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/theories/transcendentals.html new file mode 100644 index 0000000000..a8966c4624 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/cvc5-main/theories/transcendentals.html @@ -0,0 +1,886 @@ + + + + + + + + + + + Theory Reference: Transcendentals — cvc5 documentation + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    + Theory Reference: Transcendentals + +  + +

    +

    + cvc5 supports transcendental functions that naturally extend the nonlinear real arithmetic theories + + + NRA + + + and + + + NIRA + + + . +The theory consists of the constant + + \(\pi\) + + and function symbols for most common transcendental functions like, e.g., + + + sin + + + , + + + cos + + + and + + + tan + + + . +

    +
    +

    + Logic + +  + +

    +

    + To enable cvc5’s decision procedure for transcendentals, append + + + T + + + to the arithmetic logic that is being used: +

    +
    +
    +
    (set-logic QF_NRAT)
    +
    +
    +
    +

    + Alternatively, use the + + + ALL + + + logic: +

    +
    +
    +
    (set-logic ALL)
    +
    +
    +
    +
    +
    +

    + Syntax + +  + +

    +

    + cvc5 internally defines a constant + + + real.pi + + + of sort + + + Real + + + and the following unary function symbols from + + + Real + + + to + + + Real + + + : +

    +
      +
    • +

      + the square root function + + + sqrt + + +

      +
    • +
    • +

      + the exponential function + + + exp + + +

      +
    • +
    • +

      + the sine function + + + sin + + +

      +
    • +
    • +

      + the cosine function + + + cos + + +

      +
    • +
    • +

      + the tangent function + + + tan + + +

      +
    • +
    • +

      + the cosecant function + + + csc + + +

      +
    • +
    • +

      + the secant function + + + sec + + +

      +
    • +
    • +

      + the cotangent function + + + cot + + +

      +
    • +
    • +

      + the arcsine function + + + arcsin + + +

      +
    • +
    • +

      + the arccosine function + + + arccos + + +

      +
    • +
    • +

      + the arctangent function + + + arctan + + +

      +
    • +
    • +

      + the arccosecant function + + + arccsc + + +

      +
    • +
    • +

      + the arcsecant function + + + arcsec + + +

      +
    • +
    • +

      + the arccotangent function + + + arccot + + +

      +
    • +
    +
    +
    +

    + Semantics + +  + +

    +

    + Both the constant + + + real.pi + + + and all function symbols are defined on real numbers and are thus not subject to limited precision. That being said, cvc5 internally uses inexact techniques based on incremental linearization. +While + + + real.pi + + + is specified using a rational enclosing interval that is automatically refined on demand, the function symbols are approximated using tangent planes and secant lines using the techniques described in + + [ + + CGI+18 + + ] + + . +

    +
    +
    +

    + Examples + +  + +

    +
    +
    + + + + +
    +
    +

    + + examples/api/cpp/transcendentals.cpp + +

    +
    +
    +
     1/******************************************************************************
    + 2 * Top contributors (to current version):
    + 3 *   Gereon Kremer, Aina Niemetz, Mathias Preiner
    + 4 *
    + 5 * This file is part of the cvc5 project.
    + 6 *
    + 7 * Copyright (c) 2009-2024 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 * A simple demonstration of the transcendental extension.
    +14 */
    +15
    +16#include <iostream>
    +17
    +18#include <cvc5/cvc5.h>
    +19
    +20using namespace std;
    +21using namespace cvc5;
    +22
    +23int main()
    +24{
    +25  TermManager tm;
    +26  Solver slv(tm);
    +27  slv.setLogic("QF_NRAT");
    +28
    +29  Sort real = tm.getRealSort();
    +30
    +31  // Variables
    +32  Term x = tm.mkConst(real, "x");
    +33  Term y = tm.mkConst(real, "y");
    +34
    +35  // Helper terms
    +36  Term two = tm.mkReal(2);
    +37  Term pi = tm.mkPi();
    +38  Term twopi = tm.mkTerm(Kind::MULT, {two, pi});
    +39  Term ysq = tm.mkTerm(Kind::MULT, {y, y});
    +40  Term sinx = tm.mkTerm(Kind::SINE, {x});
    +41
    +42  // Formulas
    +43  Term x_gt_pi = tm.mkTerm(Kind::GT, {x, pi});
    +44  Term x_lt_pi = tm.mkTerm(Kind::LT, {x, twopi});
    +45  Term ysq_lt_sinx = tm.mkTerm(Kind::LT, {ysq, sinx});
    +46
    +47  slv.assertFormula(x_gt_pi);
    +48  slv.assertFormula(x_lt_pi);
    +49  slv.assertFormula(ysq_lt_sinx);
    +50
    +51  cout << "cvc5 should report UNSAT." << endl;
    +52  cout << "Result from cvc5 is: " << slv.checkSat() << endl;
    +53
    +54  return 0;
    +55}
    +
    +
    +
    +
    + + + +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/bags.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/bags.html new file mode 100644 index 0000000000..2255e44e40 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/bags.html @@ -0,0 +1,734 @@ + + + + + + + + + + + + + Theory of Bags — cvc5 documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Theory of Bags

    +
    +

    examples/api/cpp/bags.cpp

    +
      1/******************************************************************************
    +  2 * Top contributors (to current version):
    +  3 *   Mudathir Mohamed, Aina Niemetz
    +  4 *
    +  5 * This file is part of the cvc5 project.
    +  6 *
    +  7 * Copyright (c) 2009-2024 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 * A simple demonstration of reasoning about bags.
    + 14 */
    + 15
    + 16#include <cvc5/cvc5.h>
    + 17
    + 18#include <iostream>
    + 19
    + 20using namespace std;
    + 21using namespace cvc5;
    + 22
    + 23int main()
    + 24{
    + 25  TermManager tm;
    + 26  Solver slv(tm);
    + 27  slv.setLogic("ALL");
    + 28  // Produce models
    + 29  slv.setOption("produce-models", "true");
    + 30  slv.setOption("incremental", "true");
    + 31
    + 32  Sort bag = tm.mkBagSort(tm.getStringSort());
    + 33  Term A = tm.mkConst(bag, "A");
    + 34  Term B = tm.mkConst(bag, "B");
    + 35  Term C = tm.mkConst(bag, "C");
    + 36  Term x = tm.mkConst(tm.getStringSort(), "x");
    + 37
    + 38  Term intersectionAC = tm.mkTerm(Kind::BAG_INTER_MIN, {A, C});
    + 39  Term intersectionBC = tm.mkTerm(Kind::BAG_INTER_MIN, {B, C});
    + 40
    + 41  // union disjoint does not distribute over intersection
    + 42  {
    + 43    Term unionDisjointAB = tm.mkTerm(Kind::BAG_UNION_DISJOINT, {A, B});
    + 44    Term lhs = tm.mkTerm(Kind::BAG_INTER_MIN, {unionDisjointAB, C});
    + 45    Term rhs =
    + 46        tm.mkTerm(Kind::BAG_UNION_DISJOINT, {intersectionAC, intersectionBC});
    + 47    Term guess = tm.mkTerm(Kind::EQUAL, {lhs, rhs});
    + 48    cout << "cvc5 reports: " << guess.notTerm() << " is "
    + 49         << slv.checkSatAssuming(guess.notTerm()) << "." << endl;
    + 50
    + 51    cout << A << ": " << slv.getValue(A) << endl;
    + 52    cout << B << ": " << slv.getValue(B) << endl;
    + 53    cout << C << ": " << slv.getValue(C) << endl;
    + 54    cout << lhs << ": " << slv.getValue(lhs) << endl;
    + 55    cout << rhs << ": " << slv.getValue(rhs) << endl;
    + 56  }
    + 57
    + 58  // union max distributes over intersection
    + 59  {
    + 60    Term unionMaxAB = tm.mkTerm(Kind::BAG_UNION_MAX, {A, B});
    + 61    Term lhs = tm.mkTerm(Kind::BAG_INTER_MIN, {unionMaxAB, C});
    + 62    Term rhs = tm.mkTerm(Kind::BAG_UNION_MAX, {intersectionAC, intersectionBC});
    + 63    Term theorem = tm.mkTerm(Kind::EQUAL, {lhs, rhs});
    + 64    cout << "cvc5 reports: " << theorem.notTerm() << " is "
    + 65         << slv.checkSatAssuming(theorem.notTerm()) << "." << endl;
    + 66  }
    + 67
    + 68  // Verify emptbag is a subbag of any bag
    + 69  {
    + 70    Term emptybag = tm.mkEmptyBag(bag);
    + 71    Term theorem = tm.mkTerm(Kind::BAG_SUBBAG, {emptybag, A});
    + 72
    + 73    cout << "cvc5 reports: " << theorem.notTerm() << " is "
    + 74         << slv.checkSatAssuming(theorem.notTerm()) << "." << endl;
    + 75  }
    + 76
    + 77  // find an element with multiplicity 4 in the disjoint union of
    + 78  // ; {|"a", "a", "b", "b", "b"|} and {|"b", "c", "c"|}
    + 79
    + 80  {
    + 81    Term one = tm.mkInteger(1);
    + 82    Term two = tm.mkInteger(2);
    + 83    Term three = tm.mkInteger(3);
    + 84    Term four = tm.mkInteger(4);
    + 85    Term a = tm.mkString("a");
    + 86    Term b = tm.mkString("b");
    + 87    Term c = tm.mkString("c");
    + 88
    + 89    Term bag_a_2 = tm.mkTerm(Kind::BAG_MAKE, {a, two});
    + 90    Term bag_b_3 = tm.mkTerm(Kind::BAG_MAKE, {b, three});
    + 91    Term bag_b_1 = tm.mkTerm(Kind::BAG_MAKE, {b, one});
    + 92    Term bag_c_2 = tm.mkTerm(Kind::BAG_MAKE, {c, two});
    + 93    Term bag_a_2_b_3 = tm.mkTerm(Kind::BAG_UNION_DISJOINT, {bag_a_2, bag_b_3});
    + 94    Term bag_b_1_c_2 = tm.mkTerm(Kind::BAG_UNION_DISJOINT, {bag_b_1, bag_c_2});
    + 95    Term union_disjoint =
    + 96        tm.mkTerm(Kind::BAG_UNION_DISJOINT, {bag_a_2_b_3, bag_b_1_c_2});
    + 97
    + 98    Term count_x = tm.mkTerm(Kind::BAG_COUNT, {x, union_disjoint});
    + 99    Term e = tm.mkTerm(Kind::EQUAL, {four, count_x});
    +100    Result result = slv.checkSatAssuming(e);
    +101
    +102    cout << "cvc5 reports: " << e << " is " << result << "." << endl;
    +103    if (result.isSat())
    +104    {
    +105      cout << x << ": " << slv.getValue(x) << endl;
    +106    }
    +107  }
    +108}
    +
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/bitvectors.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/bitvectors.html new file mode 100644 index 0000000000..772181b06c --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/bitvectors.html @@ -0,0 +1,826 @@ + + + + + + + + + + + + + Theory of Bit-Vectors — cvc5 documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    +
      +
    • + + +
    • +
    • +
    +
    +
    +
    +
    + +
    +

    Theory of Bit-Vectors

    +
    +

    examples/api/cpp/bitvectors.cpp

    +
      1/******************************************************************************
    +  2 * Top contributors (to current version):
    +  3 *   Aina Niemetz, Liana Hadarean, Andrew Reynolds
    +  4 *
    +  5 * This file is part of the cvc5 project.
    +  6 *
    +  7 * Copyright (c) 2009-2024 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 * A simple demonstration of the solving capabilities of the cvc5
    + 14 * bit-vector solver.
    + 15 *
    + 16 */
    + 17
    + 18#include <cvc5/cvc5.h>
    + 19
    + 20#include <iostream>
    + 21
    + 22using namespace std;
    + 23using namespace cvc5;
    + 24
    + 25int main()
    + 26{
    + 27  TermManager tm;
    + 28  Solver slv(tm);
    + 29  slv.setLogic("QF_BV");  // Set the logic
    + 30
    + 31  // The following example has been adapted from the book A Hacker's Delight by
    + 32  // Henry S. Warren.
    + 33  //
    + 34  // Given a variable x that can only have two values, a or b. We want to
    + 35  // assign to x a value other than the current one. The straightforward code
    + 36  // to do that is:
    + 37  //
    + 38  //(0) if (x == a ) x = b;
    + 39  //    else x = a;
    + 40  //
    + 41  // Two more efficient yet equivalent methods are:
    + 42  //
    + 43  //(1) x = a ⊕ b ⊕ x;
    + 44  //
    + 45  //(2) x = a + b - x;
    + 46  //
    + 47  // We will use cvc5 to prove that the three pieces of code above are all
    + 48  // equivalent by encoding the problem in the bit-vector theory.
    + 49
    + 50  // Creating a bit-vector type of width 32
    + 51  Sort bv32 = tm.mkBitVectorSort(32);
    + 52
    + 53  // Variables
    + 54  Term x = tm.mkConst(bv32, "x");
    + 55  Term a = tm.mkConst(bv32, "a");
    + 56  Term b = tm.mkConst(bv32, "b");
    + 57
    + 58  // First encode the assumption that x must be equal to a or b
    + 59  Term x_eq_a = tm.mkTerm(Kind::EQUAL, {x, a});
    + 60  Term x_eq_b = tm.mkTerm(Kind::EQUAL, {x, b});
    + 61  Term assumption = tm.mkTerm(Kind::OR, {x_eq_a, x_eq_b});
    + 62
    + 63  // Assert the assumption
    + 64  slv.assertFormula(assumption);
    + 65
    + 66  // Introduce a new variable for the new value of x after assignment.
    + 67  Term new_x = tm.mkConst(bv32, "new_x");  // x after executing code (0)
    + 68  Term new_x_ =
    + 69      tm.mkConst(bv32, "new_x_");  // x after executing code (1) or (2)
    + 70
    + 71  // Encoding code (0)
    + 72  // new_x = x == a ? b : a;
    + 73  Term ite = tm.mkTerm(Kind::ITE, {x_eq_a, b, a});
    + 74  Term assignment0 = tm.mkTerm(Kind::EQUAL, {new_x, ite});
    + 75
    + 76  // Assert the encoding of code (0)
    + 77  cout << "Asserting " << assignment0 << " to cvc5" << endl;
    + 78  slv.assertFormula(assignment0);
    + 79  cout << "Pushing a new context." << endl;
    + 80  slv.push();
    + 81
    + 82  // Encoding code (1)
    + 83  // new_x_ = a xor b xor x
    + 84  Term a_xor_b_xor_x = tm.mkTerm(Kind::BITVECTOR_XOR, {a, b, x});
    + 85  Term assignment1 = tm.mkTerm(Kind::EQUAL, {new_x_, a_xor_b_xor_x});
    + 86
    + 87  // Assert encoding to cvc5 in current context;
    + 88  cout << "Asserting " << assignment1 << " to cvc5" << endl;
    + 89  slv.assertFormula(assignment1);
    + 90  Term new_x_eq_new_x_ = tm.mkTerm(Kind::EQUAL, {new_x, new_x_});
    + 91
    + 92  cout << " Check sat assuming: " << new_x_eq_new_x_.notTerm() << endl;
    + 93  cout << " Expect UNSAT." << endl;
    + 94  cout << " cvc5: " << slv.checkSatAssuming(new_x_eq_new_x_.notTerm()) << endl;
    + 95  cout << " Popping context." << endl;
    + 96  slv.pop();
    + 97
    + 98  // Encoding code (2)
    + 99  // new_x_ = a + b - x
    +100  Term a_plus_b = tm.mkTerm(Kind::BITVECTOR_ADD, {a, b});
    +101  Term a_plus_b_minus_x = tm.mkTerm(Kind::BITVECTOR_SUB, {a_plus_b, x});
    +102  Term assignment2 = tm.mkTerm(Kind::EQUAL, {new_x_, a_plus_b_minus_x});
    +103
    +104  // Assert encoding to cvc5 in current context;
    +105  cout << "Asserting " << assignment2 << " to cvc5" << endl;
    +106  slv.assertFormula(assignment2);
    +107
    +108  cout << " Check sat assuming: " << new_x_eq_new_x_.notTerm() << endl;
    +109  cout << " Expect UNSAT." << endl;
    +110  cout << " cvc5: " << slv.checkSatAssuming(new_x_eq_new_x_.notTerm()) << endl;
    +111
    +112  Term x_neq_x = tm.mkTerm(Kind::DISTINCT, {x, x});
    +113  std::vector<Term> v{new_x_eq_new_x_, x_neq_x};
    +114  Term query = tm.mkTerm(Kind::AND, {v});
    +115  cout << " Check sat assuming: " << query.notTerm() << endl;
    +116  cout << " Expect SAT." << endl;
    +117  cout << " cvc5: " << slv.checkSatAssuming(query.notTerm()) << endl;
    +118
    +119  // Assert that a is odd
    +120  Op extract_op = tm.mkOp(Kind::BITVECTOR_EXTRACT, {0, 0});
    +121  Term lsb_of_a = tm.mkTerm(extract_op, {a});
    +122  cout << "Sort of " << lsb_of_a << " is " << lsb_of_a.getSort() << endl;
    +123  Term a_odd = tm.mkTerm(Kind::EQUAL, {lsb_of_a, tm.mkBitVector(1u, 1u)});
    +124  cout << "Assert " << a_odd << endl;
    +125  cout << "Check satisfiability." << endl;
    +126  slv.assertFormula(a_odd);
    +127  cout << " Expect sat." << endl;
    +128  cout << " cvc5: " << slv.checkSat() << endl;
    +129  return 0;
    +130}
    +
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/bitvectors_and_arrays.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/bitvectors_and_arrays.html new file mode 100644 index 0000000000..389456f01e --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/bitvectors_and_arrays.html @@ -0,0 +1,680 @@ + + + + + + + + + + + + + Theory of Bit-Vectors and Arrays — cvc5 documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    +
      +
    • + + +
    • +
    • +
    +
    +
    +
    +
    + +
    +

    Theory of Bit-Vectors and Arrays

    +
    +

    examples/api/cpp/bitvectors_and_arrays.cpp

    +
     1/******************************************************************************
    + 2 * Top contributors (to current version):
    + 3 *   Aina Niemetz, Liana Hadarean, Mathias Preiner
    + 4 *
    + 5 * This file is part of the cvc5 project.
    + 6 *
    + 7 * Copyright (c) 2009-2024 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 * A simple demonstration of the solving capabilities of the cvc5
    +14 * bit-vector and array solvers.
    +15 *
    +16 */
    +17
    +18#include <cvc5/cvc5.h>
    +19
    +20#include <iostream>
    +21
    +22using namespace std;
    +23using namespace cvc5;
    +24
    +25int main()
    +26{
    +27  TermManager tm;
    +28  Solver slv(tm);
    +29  slv.setOption("produce-models", "true");    // Produce Models
    +30  slv.setLogic("QF_ABV");                     // Set the logic
    +31
    +32  // Consider the following code (where size is some previously defined constant):
    +33  //
    +34  //
    +35  //   Assert (current_array[0] > 0);
    +36  //   for (unsigned i = 1; i < k; ++i) {
    +37  //     current_array[i] = 2 * current_array[i - 1];
    +38  //     Assert (current_array[i-1] < current_array[i]);
    +39  //     }
    +40  //
    +41  // We want to check whether the assertion in the body of the for loop holds
    +42  // throughout the loop.
    +43
    +44  // Setting up the problem parameters
    +45  uint32_t k = 4;           // number of unrollings (should be a power of 2)
    +46  uint32_t index_size = 2;  // size of the index, must be log2(k)
    +47
    +48  // Sorts
    +49  Sort elementSort = tm.mkBitVectorSort(32);
    +50  Sort indexSort = tm.mkBitVectorSort(index_size);
    +51  Sort arraySort = tm.mkArraySort(indexSort, elementSort);
    +52
    +53  // Variables
    +54  Term current_array = tm.mkConst(arraySort, "current_array");
    +55
    +56  // Making a bit-vector constant
    +57  Term zero = tm.mkBitVector(index_size, 0u);
    +58
    +59  // Asserting that current_array[0] > 0
    +60  Term current_array0 = tm.mkTerm(Kind::SELECT, {current_array, zero});
    +61  Term current_array0_gt_0 = tm.mkTerm(
    +62      Kind::BITVECTOR_SGT, {current_array0, tm.mkBitVector(32, 0u)});
    +63  slv.assertFormula(current_array0_gt_0);
    +64
    +65  // Building the assertions in the loop unrolling
    +66  Term index = tm.mkBitVector(index_size, 0u);
    +67  Term old_current = tm.mkTerm(Kind::SELECT, {current_array, index});
    +68  Term two = tm.mkBitVector(32, 2u);
    +69
    +70  std::vector<Term> assertions;
    +71  for (uint32_t i = 1; i < k; ++i)
    +72  {
    +73    index = tm.mkBitVector(index_size, i);
    +74    Term new_current = tm.mkTerm(Kind::BITVECTOR_MULT, {two, old_current});
    +75    // current[i] = 2 * current[i-1]
    +76    current_array =
    +77        tm.mkTerm(Kind::STORE, {current_array, index, new_current});
    +78    // current[i-1] < current [i]
    +79    Term current_slt_new_current =
    +80        tm.mkTerm(Kind::BITVECTOR_SLT, {old_current, new_current});
    +81    assertions.push_back(current_slt_new_current);
    +82
    +83    old_current = tm.mkTerm(Kind::SELECT, {current_array, index});
    +84  }
    +85
    +86  Term query = tm.mkTerm(Kind::NOT, {tm.mkTerm(Kind::AND, assertions)});
    +87
    +88  cout << "Asserting " << query << " to cvc5" << endl;
    +89  slv.assertFormula(query);
    +90  cout << "Expect sat." << endl;
    +91  cout << "cvc5: " << slv.checkSat() << endl;
    +92
    +93  // Getting the model
    +94  cout << "The satisfying model is:" << endl;
    +95  cout << "  current_array = " << slv.getValue(current_array) << endl;
    +96  cout << "  current_array[0] = " << slv.getValue(current_array0) << endl;
    +97  return 0;
    +98}
    +
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/combination.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/combination.html new file mode 100644 index 0000000000..8442f0fc9a --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/combination.html @@ -0,0 +1,765 @@ + + + + + + + + + + + + + Theory Combination — cvc5 documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    +
      +
    • + + +
    • +
    • +
    +
    +
    +
    +
    + +
    +

    Theory Combination

    +
    +

    examples/api/cpp/combination.cpp

    +
      1/******************************************************************************
    +  2 * Top contributors (to current version):
    +  3 *   Aina Niemetz, Tim King, Mathias Preiner
    +  4 *
    +  5 * This file is part of the cvc5 project.
    +  6 *
    +  7 * Copyright (c) 2009-2024 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 * A simple demonstration of the capabilities of cvc5
    + 14 *
    + 15 * A simple demonstration of how to use uninterpreted functions, combining this
    + 16 * with arithmetic, and extracting a model at the end of a satisfiable query.
    + 17 * The model is displayed using getValue().
    + 18 */
    + 19
    + 20#include <cvc5/cvc5.h>
    + 21
    + 22#include <iostream>
    + 23
    + 24using namespace std;
    + 25using namespace cvc5;
    + 26
    + 27void prefixPrintGetValue(Solver& slv, Term t, int level = 0)
    + 28{
    + 29  cout << "slv.getValue(" << t << "): " << slv.getValue(t) << endl;
    + 30
    + 31  for (const Term& c : t)
    + 32  {
    + 33    prefixPrintGetValue(slv, c, level + 1);
    + 34  }
    + 35}
    + 36
    + 37int main()
    + 38{
    + 39  TermManager tm;
    + 40  Solver slv(tm);
    + 41  slv.setOption("produce-models", "true");  // Produce Models
    + 42  slv.setOption("dag-thresh", "0"); // Disable dagifying the output
    + 43  slv.setLogic("QF_UFLIRA");
    + 44
    + 45  // Sorts
    + 46  Sort u = tm.mkUninterpretedSort("u");
    + 47  Sort integer = tm.getIntegerSort();
    + 48  Sort boolean = tm.getBooleanSort();
    + 49  Sort uToInt = tm.mkFunctionSort({u}, integer);
    + 50  Sort intPred = tm.mkFunctionSort({integer}, boolean);
    + 51
    + 52  // Variables
    + 53  Term x = tm.mkConst(u, "x");
    + 54  Term y = tm.mkConst(u, "y");
    + 55
    + 56  // Functions
    + 57  Term f = tm.mkConst(uToInt, "f");
    + 58  Term p = tm.mkConst(intPred, "p");
    + 59
    + 60  // Constants
    + 61  Term zero = tm.mkInteger(0);
    + 62  Term one = tm.mkInteger(1);
    + 63
    + 64  // Terms
    + 65  Term f_x = tm.mkTerm(Kind::APPLY_UF, {f, x});
    + 66  Term f_y = tm.mkTerm(Kind::APPLY_UF, {f, y});
    + 67  Term sum = tm.mkTerm(Kind::ADD, {f_x, f_y});
    + 68  Term p_0 = tm.mkTerm(Kind::APPLY_UF, {p, zero});
    + 69  Term p_f_y = tm.mkTerm(Kind::APPLY_UF, {p, f_y});
    + 70
    + 71  // Construct the assertions
    + 72  Term assertions =
    + 73      tm.mkTerm(Kind::AND,
    + 74                {
    + 75                    tm.mkTerm(Kind::LEQ, {zero, f_x}),  // 0 <= f(x)
    + 76                    tm.mkTerm(Kind::LEQ, {zero, f_y}),  // 0 <= f(y)
    + 77                    tm.mkTerm(Kind::LEQ, {sum, one}),   // f(x) + f(y) <= 1
    + 78                    p_0.notTerm(),                      // not p(0)
    + 79                    p_f_y                               // p(f(y))
    + 80                });
    + 81  slv.assertFormula(assertions);
    + 82
    + 83  cout << "Given the following assertions:" << endl
    + 84       << assertions << endl << endl;
    + 85
    + 86  cout << "Prove x /= y is entailed." << endl
    + 87       << "cvc5: " << slv.checkSatAssuming(tm.mkTerm(Kind::EQUAL, {x, y}))
    + 88       << "." << endl
    + 89       << endl;
    + 90
    + 91  cout << "Call checkSat to show that the assertions are satisfiable." << endl
    + 92       << "cvc5: " << slv.checkSat() << "." << endl
    + 93       << endl;
    + 94
    + 95  cout << "Call slv.getValue(...) on terms of interest."
    + 96       << endl;
    + 97  cout << "slv.getValue(" << f_x << "): " << slv.getValue(f_x) << endl;
    + 98  cout << "slv.getValue(" << f_y << "): " << slv.getValue(f_y) << endl;
    + 99  cout << "slv.getValue(" << sum << "): " << slv.getValue(sum) << endl;
    +100  cout << "slv.getValue(" << p_0 << "): " << slv.getValue(p_0) << endl;
    +101  cout << "slv.getValue(" << p_f_y << "): " << slv.getValue(p_f_y)
    +102       << endl << endl;
    +103
    +104  cout << "Alternatively, iterate over assertions and call slv.getValue(...) "
    +105       << "on all terms."
    +106       << endl;
    +107  prefixPrintGetValue(slv, assertions);
    +108
    +109  cout << endl;
    +110  cout << "You can also use nested loops to iterate over terms." << endl;
    +111  for (Term::const_iterator it = assertions.begin();
    +112       it != assertions.end();
    +113       ++it)
    +114  {
    +115    cout << "term: " << *it << endl;
    +116    for (Term::const_iterator it2 = (*it).begin();
    +117         it2 != (*it).end();
    +118         ++it2)
    +119    {
    +120      cout << " + child: " << *it2 << std::endl;
    +121    }
    +122  }
    +123  cout << endl;
    +124  cout << "Alternatively, you can also use for-each loops." << endl;
    +125  for (const Term& t : assertions)
    +126  {
    +127    cout << "term: " << t << endl;
    +128    for (const Term& c : t)
    +129    {
    +130      cout << " + child: " << c << endl;
    +131    }
    +132  }
    +133
    +134  return 0;
    +135}
    +
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/datatypes.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/datatypes.html new file mode 100644 index 0000000000..010e1c827a --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/datatypes.html @@ -0,0 +1,995 @@ + + + + + + + + + + + + + Theory of Datatypes — cvc5 documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    +
      +
    • + + +
    • +
    • +
    +
    +
    +
    +
    + +
    +

    Theory of Datatypes

    +
    +

    examples/api/cpp/datatypes.cpp

    +
      1/******************************************************************************
    +  2 * Top contributors (to current version):
    +  3 *   Aina Niemetz, Morgan Deters, Andrew Reynolds
    +  4 *
    +  5 * This file is part of the cvc5 project.
    +  6 *
    +  7 * Copyright (c) 2009-2024 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 * An example of using inductive datatypes in cvc5.
    + 14 */
    + 15
    + 16#include <cvc5/cvc5.h>
    + 17
    + 18#include <iostream>
    + 19
    + 20using namespace cvc5;
    + 21
    + 22void test(Solver& slv, Sort& consListSort)
    + 23{
    + 24  TermManager& tm = slv.getTermManager();
    + 25
    + 26  // Now our old "consListSpec" is useless--the relevant information
    + 27  // has been copied out, so we can throw that spec away.  We can get
    + 28  // the complete spec for the datatype from the DatatypeSort, and
    + 29  // this Datatype object has constructor symbols (and others) filled in.
    + 30
    + 31  const Datatype& consList = consListSort.getDatatype();
    + 32
    + 33  // t = cons 0 nil
    + 34  //
    + 35  // Here, consList["cons"] gives you the DatatypeConstructor.  To get
    + 36  // the constructor symbol for application, use .getConstructor("cons"),
    + 37  // which is equivalent to consList["cons"].getConstructor().  Note that
    + 38  // "nil" is a constructor too, so it needs to be applied with
    + 39  // APPLY_CONSTRUCTOR, even though it has no arguments.
    + 40  Term t = tm.mkTerm(Kind::APPLY_CONSTRUCTOR,
    + 41                     {consList.getConstructor("cons").getTerm(),
    + 42                      tm.mkInteger(0),
    + 43                      tm.mkTerm(Kind::APPLY_CONSTRUCTOR,
    + 44                                {consList.getConstructor("nil").getTerm()})});
    + 45
    + 46  std::cout << "t is " << t << std::endl
    + 47            << "sort of cons is "
    + 48            << consList.getConstructor("cons").getTerm().getSort() << std::endl
    + 49            << "sort of nil is "
    + 50            << consList.getConstructor("nil").getTerm().getSort() << std::endl;
    + 51
    + 52  // t2 = head(cons 0 nil), and of course this can be evaluated
    + 53  //
    + 54  // Here we first get the DatatypeConstructor for cons (with
    + 55  // consList["cons"]) in order to get the "head" selector symbol
    + 56  // to apply.
    + 57  Term t2 = tm.mkTerm(Kind::APPLY_SELECTOR,
    + 58                      {consList["cons"].getSelector("head").getTerm(), t});
    + 59
    + 60  std::cout << "t2 is " << t2 << std::endl
    + 61            << "simplify(t2) is " << slv.simplify(t2) << std::endl
    + 62            << std::endl;
    + 63
    + 64  // You can also iterate over a Datatype to get all its constructors,
    + 65  // and over a DatatypeConstructor to get all its "args" (selectors)
    + 66  for (Datatype::const_iterator i = consList.begin(); i != consList.end(); ++i)
    + 67  {
    + 68    std::cout << "ctor: " << *i << std::endl;
    + 69    for (DatatypeConstructor::const_iterator j = (*i).begin(); j != (*i).end();
    + 70         ++j)
    + 71    {
    + 72      std::cout << " + arg: " << *j << std::endl;
    + 73    }
    + 74  }
    + 75  std::cout << std::endl;
    + 76
    + 77  // Alternatively, you can use for each loops.
    + 78  for (const auto& c : consList)
    + 79  {
    + 80    std::cout << "ctor: " << c << std::endl;
    + 81    for (const auto& s : c)
    + 82    {
    + 83      std::cout << " + arg: " << s << std::endl;
    + 84    }
    + 85  }
    + 86  std::cout << std::endl;
    + 87
    + 88  // You can also define a tester term for constructor 'cons': (_ is cons)
    + 89  Term t_is_cons =
    + 90      tm.mkTerm(Kind::APPLY_TESTER, {consList["cons"].getTesterTerm(), t});
    + 91  std::cout << "t_is_cons is " << t_is_cons << std::endl << std::endl;
    + 92  slv.assertFormula(t_is_cons);
    + 93  // Updating t at 'head' with value 1 is defined as follows:
    + 94  Term t_updated = tm.mkTerm(
    + 95      Kind::APPLY_UPDATER,
    + 96      {consList["cons"]["head"].getUpdaterTerm(), t, tm.mkInteger(1)});
    + 97  std::cout << "t_updated is " << t_updated << std::endl << std::endl;
    + 98  slv.assertFormula(tm.mkTerm(Kind::DISTINCT, {t, t_updated}));
    + 99
    +100  // You can also define parameterized datatypes.
    +101  // This example builds a simple parameterized list of sort T, with one
    +102  // constructor "cons".
    +103  Sort sort = tm.mkParamSort("T");
    +104  DatatypeDecl paramConsListSpec =
    +105      tm.mkDatatypeDecl("paramlist", {sort});  // give the datatype a name
    +106  DatatypeConstructorDecl paramCons = tm.mkDatatypeConstructorDecl("cons");
    +107  DatatypeConstructorDecl paramNil = tm.mkDatatypeConstructorDecl("nil");
    +108  paramCons.addSelector("head", sort);
    +109  paramCons.addSelectorSelf("tail");
    +110  paramConsListSpec.addConstructor(paramCons);
    +111  paramConsListSpec.addConstructor(paramNil);
    +112
    +113  Sort paramConsListSort = tm.mkDatatypeSort(paramConsListSpec);
    +114  Sort paramConsIntListSort =
    +115      paramConsListSort.instantiate(std::vector<Sort>{tm.getIntegerSort()});
    +116
    +117  const Datatype& paramConsList = paramConsListSort.getDatatype();
    +118
    +119  std::cout << "parameterized datatype sort is" << std::endl;
    +120  for (const DatatypeConstructor& ctor : paramConsList)
    +121  {
    +122    std::cout << "ctor: " << ctor << std::endl;
    +123    for (const DatatypeSelector& stor : ctor)
    +124    {
    +125      std::cout << " + arg: " << stor << std::endl;
    +126    }
    +127  }
    +128
    +129  Term a = tm.mkConst(paramConsIntListSort, "a");
    +130  std::cout << "term " << a << " is of sort " << a.getSort() << std::endl;
    +131
    +132  Term head_a =
    +133      tm.mkTerm(Kind::APPLY_SELECTOR,
    +134                {paramConsList["cons"].getSelector("head").getTerm(), a});
    +135  std::cout << "head_a is " << head_a << " of sort " << head_a.getSort()
    +136            << std::endl
    +137            << "sort of cons is "
    +138            << paramConsList.getConstructor("cons").getTerm().getSort()
    +139            << std::endl
    +140            << std::endl;
    +141
    +142  Term assertion = tm.mkTerm(Kind::GT, {head_a, tm.mkInteger(50)});
    +143  std::cout << "Assert " << assertion << std::endl;
    +144  slv.assertFormula(assertion);
    +145  std::cout << "Expect sat." << std::endl;
    +146  std::cout << "cvc5: " << slv.checkSat() << std::endl;
    +147}
    +148
    +149int main()
    +150{
    +151  TermManager tm;
    +152  Solver slv(tm);
    +153  // This example builds a simple "cons list" of integers, with
    +154  // two constructors, "cons" and "nil."
    +155
    +156  // Building a datatype consists of two steps.
    +157  // First, the datatype is specified.
    +158  // Second, it is "resolved" to an actual sort, at which point function
    +159  // symbols are assigned to its constructors, selectors, and testers.
    +160
    +161  DatatypeDecl consListSpec =
    +162      tm.mkDatatypeDecl("list");  // give the datatype a name
    +163  DatatypeConstructorDecl cons = tm.mkDatatypeConstructorDecl("cons");
    +164  cons.addSelector("head", tm.getIntegerSort());
    +165  cons.addSelectorSelf("tail");
    +166  consListSpec.addConstructor(cons);
    +167  DatatypeConstructorDecl nil = tm.mkDatatypeConstructorDecl("nil");
    +168  consListSpec.addConstructor(nil);
    +169
    +170  std::cout << "spec is:" << std::endl << consListSpec << std::endl;
    +171
    +172  // Keep in mind that "DatatypeDecl" is the specification class for
    +173  // datatypes---"DatatypeDecl" is not itself a cvc5 Sort.
    +174  // Now that our Datatype is fully specified, we can get a Sort for it.
    +175  // This step resolves the "SelfSort" reference and creates
    +176  // symbols for all the constructors, etc.
    +177
    +178  Sort consListSort = tm.mkDatatypeSort(consListSpec);
    +179
    +180  test(slv, consListSort);
    +181
    +182  std::cout << std::endl
    +183            << ">>> Alternatively, use declareDatatype" << std::endl;
    +184  std::cout << std::endl;
    +185
    +186  DatatypeConstructorDecl cons2 = tm.mkDatatypeConstructorDecl("cons");
    +187  cons2.addSelector("head", tm.getIntegerSort());
    +188  cons2.addSelectorSelf("tail");
    +189  DatatypeConstructorDecl nil2 = tm.mkDatatypeConstructorDecl("nil");
    +190  std::vector<DatatypeConstructorDecl> ctors = {cons2, nil2};
    +191  Sort consListSort2 = slv.declareDatatype("list2", ctors);
    +192  test(slv, consListSort2);
    +193
    +194  return 0;
    +195}
    +
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/examples.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/examples.html new file mode 100644 index 0000000000..aff52fd1f1 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/examples.html @@ -0,0 +1,182 @@ + + + + + + + + + + + + + Examples — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    +
      +
    • + +
    • +
    • +
    +
    +
    + + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/exceptions.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/exceptions.html new file mode 100644 index 0000000000..6ed1b8cb0a --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/exceptions.html @@ -0,0 +1,316 @@ + + + + + + + + + + + + + Exception Handling — cvc5 documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    +
      +
    • + + +
    • +
    • +
    +
    +
    +
    +
    + +
    +

    Exception Handling

    +
    +

    examples/api/java/Exceptions.java

    +
     1/******************************************************************************
    + 2 * Top contributors (to current version):
    + 3 *   Mudathir Mohamed, Andres Noetzli
    + 4 *
    + 5 * This file is part of the cvc5 project.
    + 6 *
    + 7 * Copyright (c) 2009-2024 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 * Catching cvc5 exceptions via the Java API.
    +14 *
    +15 * A simple demonstration of catching cvc5 execptions via the Java API.
    +16 */
    +17
    +18import io.github.cvc5.*;
    +19
    +20public class Exceptions
    +21{
    +22  public static void main(String[] args)
    +23  {
    +24    TermManager tm = new TermManager();
    +25    Solver solver = new Solver(tm);
    +26    {
    +27      solver.setOption("produce-models", "true");
    +28
    +29      // Setting an invalid option
    +30      try
    +31      {
    +32        solver.setOption("non-existing", "true");
    +33        System.exit(1);
    +34      }
    +35      catch (Exception e)
    +36      {
    +37        System.out.println(e.toString());
    +38      }
    +39
    +40      // Creating a term with an invalid type
    +41      try
    +42      {
    +43        Sort integer = tm.getIntegerSort();
    +44        Term x = tm.mkVar(integer, "x");
    +45        Term invalidTerm = tm.mkTerm(Kind.AND, x, x);
    +46        solver.checkSatAssuming(invalidTerm);
    +47        System.exit(1);
    +48      }
    +49      catch (Exception e)
    +50      {
    +51        System.out.println(e.toString());
    +52      }
    +53
    +54      // Asking for a model after unsat result
    +55      try
    +56      {
    +57        solver.checkSatAssuming(tm.mkBoolean(false));
    +58        solver.getModel(new Sort[] {}, new Term[] {});
    +59        System.exit(1);
    +60      }
    +61      catch (Exception e)
    +62      {
    +63        System.out.println(e.toString());
    +64      }
    +65    }
    +66    Context.deletePointers();
    +67  }
    +68}
    +
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/extract.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/extract.html new file mode 100644 index 0000000000..c55e857b9d --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/extract.html @@ -0,0 +1,449 @@ + + + + + + + + + + + + + Theory of Bit-Vectors: extract — cvc5 documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    +
      +
    • + + +
    • +
    • +
    +
    +
    +
    +
    + +
    +

    Theory of Bit-Vectors: extract

    +
    +

    examples/api/cpp/extract.cpp

    +
     1/******************************************************************************
    + 2 * Top contributors (to current version):
    + 3 *   Aina Niemetz, Clark Barrett, Andrew Reynolds
    + 4 *
    + 5 * This file is part of the cvc5 project.
    + 6 *
    + 7 * Copyright (c) 2009-2024 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 * A simple demonstration of the solving capabilities of the cvc5
    +14 * bit-vector solver.
    +15 *
    +16 */
    +17
    +18#include <cvc5/cvc5.h>
    +19
    +20#include <iostream>
    +21
    +22using namespace std;
    +23using namespace cvc5;
    +24
    +25int main()
    +26{
    +27  TermManager tm;
    +28  Solver slv(tm);
    +29  slv.setLogic("QF_BV"); // Set the logic
    +30
    +31  Sort bv32 = tm.mkBitVectorSort(32);
    +32
    +33  Term x = tm.mkConst(bv32, "x");
    +34
    +35  Op ext_31_1 = tm.mkOp(Kind::BITVECTOR_EXTRACT, {31, 1});
    +36  Term x_31_1 = tm.mkTerm(ext_31_1, {x});
    +37
    +38  Op ext_30_0 = tm.mkOp(Kind::BITVECTOR_EXTRACT, {30, 0});
    +39  Term x_30_0 = tm.mkTerm(ext_30_0, {x});
    +40
    +41  Op ext_31_31 = tm.mkOp(Kind::BITVECTOR_EXTRACT, {31, 31});
    +42  Term x_31_31 = tm.mkTerm(ext_31_31, {x});
    +43
    +44  Op ext_0_0 = tm.mkOp(Kind::BITVECTOR_EXTRACT, {0, 0});
    +45  Term x_0_0 = tm.mkTerm(ext_0_0, {x});
    +46
    +47  Term eq = tm.mkTerm(Kind::EQUAL, {x_31_1, x_30_0});
    +48  cout << " Asserting: " << eq << endl;
    +49  slv.assertFormula(eq);
    +50
    +51  Term dis = tm.mkTerm(Kind::DISTINCT, {x_31_31, x_0_0});
    +52  cout << " Check sat assuming: " << dis << endl;
    +53  cout << " Expect UNSAT." << endl;
    +54  cout << " cvc5: " << slv.checkSatAssuming(dis) << endl;
    +55
    +56  return 0;
    +57}
    +
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/finite_field.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/finite_field.html new file mode 100644 index 0000000000..def9055fdc --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/finite_field.html @@ -0,0 +1,495 @@ + + + + + + + + + + + + + Theory of Finite Fields — cvc5 documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    +
      +
    • + + +
    • +
    • +
    +
    +
    +
    +
    + +
    +

    Theory of Finite Fields

    +
    +

    examples/api/cpp/finite_field.cpp

    +
     1/******************************************************************************
    + 2 * Top contributors (to current version):
    + 3 *   Alex Ozdemir, Aina Niemetz
    + 4 *
    + 5 * This file is part of the cvc5 project.
    + 6 *
    + 7 * Copyright (c) 2009-2024 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 * An example of solving finite field problems with cvc5's cpp API.
    +14 */
    +15
    +16#include <cvc5/cvc5.h>
    +17
    +18#include <cassert>
    +19#include <iostream>
    +20
    +21using namespace std;
    +22using namespace cvc5;
    +23
    +24int main()
    +25{
    +26  TermManager tm;
    +27  Solver solver(tm);
    +28  solver.setOption("produce-models", "true");
    +29
    +30  Sort f5 = tm.mkFiniteFieldSort("5");
    +31  Term a = tm.mkConst(f5, "a");
    +32  Term b = tm.mkConst(f5, "b");
    +33  Term z = tm.mkFiniteFieldElem("0", f5);
    +34
    +35  Term inv = tm.mkTerm(Kind::EQUAL,
    +36                       {tm.mkTerm(Kind::FINITE_FIELD_ADD,
    +37                                  {tm.mkTerm(Kind::FINITE_FIELD_MULT, {a, b}),
    +38                                   tm.mkFiniteFieldElem("-1", f5)}),
    +39                        z});
    +40  Term aIsTwo = tm.mkTerm(
    +41      Kind::EQUAL,
    +42      {tm.mkTerm(Kind::FINITE_FIELD_ADD, {a, tm.mkFiniteFieldElem("-2", f5)}),
    +43       z});
    +44  // ab - 1 = 0
    +45  solver.assertFormula(inv);
    +46  // a = 2
    +47  solver.assertFormula(aIsTwo);
    +48
    +49  // should be SAT, with b = 2^(-1)
    +50  Result r = solver.checkSat();
    +51  assert(r.isSat());
    +52
    +53  cout << "a = " << solver.getValue(a) << endl;
    +54  cout << "b = " << solver.getValue(b) << endl;
    +55
    +56  // b = 2
    +57  Term bIsTwo = tm.mkTerm(
    +58      Kind::EQUAL,
    +59      {tm.mkTerm(Kind::FINITE_FIELD_ADD, {b, tm.mkFiniteFieldElem("-2", f5)}),
    +60       z});
    +61
    +62  // should be UNSAT, 2*2 - 1 != 0
    +63  solver.assertFormula(bIsTwo);
    +64
    +65  r = solver.checkSat();
    +66  assert(r.isUnsat());
    +67}
    +
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/floatingpoint.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/floatingpoint.html new file mode 100644 index 0000000000..c2ad7aa40b --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/floatingpoint.html @@ -0,0 +1,885 @@ + + + + + + + + + + + + + Theory of Floating-Points — cvc5 documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    +
      +
    • + + +
    • +
    • +
    +
    +
    +
    +
    + +
    +

    Theory of Floating-Points

    +
    +

    examples/api/cpp/floating_point_arith.cpp

    +
      1/******************************************************************************
    +  2 * Top contributors (to current version):
    +  3 *   Aina Niemetz, Mudathir Mohamed, Andres Noetzli
    +  4 *
    +  5 * This file is part of the cvc5 project.
    +  6 *
    +  7 * Copyright (c) 2009-2024 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 * An example of solving floating-point problems with cvc5's cpp API.
    + 14 *
    + 15 * This example shows to create floating-point types, variables and expressions,
    + 16 * and how to create rounding mode constants by solving toy problems. The
    + 17 * example also shows making special values (such as NaN and +oo) and converting
    + 18 * an IEEE 754-2008 bit-vector to a floating-point number.
    + 19 */
    + 20
    + 21#include <cvc5/cvc5.h>
    + 22
    + 23#include <iostream>
    + 24#include <cassert>
    + 25
    + 26using namespace cvc5;
    + 27
    + 28int main()
    + 29{
    + 30  TermManager tm;
    + 31  Solver solver(tm);
    + 32  solver.setOption("incremental", "true");
    + 33  solver.setOption("produce-models", "true");
    + 34
    + 35  // Make single precision floating-point variables
    + 36  Sort fpt32 = tm.mkFloatingPointSort(8, 24);
    + 37  Term a = tm.mkConst(fpt32, "a");
    + 38  Term b = tm.mkConst(fpt32, "b");
    + 39  Term c = tm.mkConst(fpt32, "c");
    + 40  Term d = tm.mkConst(fpt32, "d");
    + 41  Term e = tm.mkConst(fpt32, "e");
    + 42  // Rounding mode
    + 43  Term rm = tm.mkRoundingMode(RoundingMode::ROUND_NEAREST_TIES_TO_EVEN);
    + 44
    + 45  std::cout << "Show that fused multiplication and addition `(fp.fma RM a b c)`"
    + 46            << std::endl
    + 47            << "is different from `(fp.add RM (fp.mul a b) c)`:" << std::endl;
    + 48  solver.push(1);
    + 49  Term fma = tm.mkTerm(Kind::FLOATINGPOINT_FMA, {rm, a, b, c});
    + 50  Term mul = tm.mkTerm(Kind::FLOATINGPOINT_MULT, {rm, a, b});
    + 51  Term add = tm.mkTerm(Kind::FLOATINGPOINT_ADD, {rm, mul, c});
    + 52  solver.assertFormula(tm.mkTerm(Kind::DISTINCT, {fma, add}));
    + 53  Result r = solver.checkSat();  // result is sat
    + 54  std::cout << "Expect sat: " << r << std::endl;
    + 55  std::cout << "Value of `a`: " << solver.getValue(a) << std::endl;
    + 56  std::cout << "Value of `b`: " << solver.getValue(b) << std::endl;
    + 57  std::cout << "Value of `c`: " << solver.getValue(c) << std::endl;
    + 58  std::cout << "Value of `(fp.fma RNE a b c)`: " << solver.getValue(fma)
    + 59            << std::endl;
    + 60  std::cout << "Value of `(fp.add RNE (fp.mul a b) c)`: "
    + 61            << solver.getValue(add) << std::endl;
    + 62  std::cout << std::endl;
    + 63  solver.pop(1);
    + 64
    + 65  std::cout << "Show that floating-point addition is not associative:"
    + 66            << std::endl;
    + 67  std::cout << "(a + (b + c)) != ((a + b) + c)" << std::endl;
    + 68  solver.push(1);
    + 69  solver.assertFormula(tm.mkTerm(
    + 70      Kind::DISTINCT,
    + 71      {tm.mkTerm(Kind::FLOATINGPOINT_ADD,
    + 72                 {rm, a, tm.mkTerm(Kind::FLOATINGPOINT_ADD, {rm, b, c})}),
    + 73       tm.mkTerm(Kind::FLOATINGPOINT_ADD,
    + 74                 {rm, tm.mkTerm(Kind::FLOATINGPOINT_ADD, {rm, a, b}), c})}));
    + 75
    + 76  r = solver.checkSat();  // result is sat
    + 77  std::cout << "Expect sat: " << r << std::endl;
    + 78  assert (r.isSat());
    + 79
    + 80  std::cout << "Value of `a`: " << solver.getValue(a) << std::endl;
    + 81  std::cout << "Value of `b`: " << solver.getValue(b) << std::endl;
    + 82  std::cout << "Value of `c`: " << solver.getValue(c) << std::endl;
    + 83  std::cout << std::endl;
    + 84
    + 85  std::cout << "Now, restrict `a` to be either NaN or positive infinity:"
    + 86            << std::endl;
    + 87  Term nan = tm.mkFloatingPointNaN(8, 24);
    + 88  Term inf = tm.mkFloatingPointPosInf(8, 24);
    + 89  solver.assertFormula(tm.mkTerm(
    + 90      Kind::OR,
    + 91      {tm.mkTerm(Kind::EQUAL, {a, inf}), tm.mkTerm(Kind::EQUAL, {a, nan})}));
    + 92
    + 93  r = solver.checkSat();  // result is sat
    + 94  std::cout << "Expect sat: " << r << std::endl;
    + 95  assert (r.isSat());
    + 96
    + 97  std::cout << "Value of `a`: " << solver.getValue(a) << std::endl;
    + 98  std::cout << "Value of `b`: " << solver.getValue(b) << std::endl;
    + 99  std::cout << "Value of `c`: " << solver.getValue(c) << std::endl;
    +100  std::cout << std::endl;
    +101  solver.pop(1);
    +102
    +103  std::cout << "Now, try to find a (normal) floating-point number that rounds"
    +104            << std::endl
    +105            << "to different integer values for different rounding modes:"
    +106            << std::endl;
    +107  solver.push(1);
    +108  Term rtp = tm.mkRoundingMode(RoundingMode::ROUND_TOWARD_POSITIVE);
    +109  Term rtn = tm.mkRoundingMode(RoundingMode::ROUND_TOWARD_NEGATIVE);
    +110  Op op = tm.mkOp(Kind::FLOATINGPOINT_TO_UBV, {16});  // (_ fp.to_ubv 16)
    +111  Term lhs = tm.mkTerm(op, {rtp, d});
    +112  Term rhs = tm.mkTerm(op, {rtn, d});
    +113  solver.assertFormula(tm.mkTerm(Kind::FLOATINGPOINT_IS_NORMAL, {d}));
    +114  solver.assertFormula(
    +115      tm.mkTerm(Kind::NOT, {tm.mkTerm(Kind::EQUAL, {lhs, rhs})}));
    +116
    +117  r = solver.checkSat();  // result is sat
    +118  std::cout << "Expect sat: " << r << std::endl;
    +119  assert (r.isSat());
    +120  std::cout << std::endl;
    +121
    +122  std::cout << "Get value of `d` as floating-point, bit-vector and real:"
    +123            << std::endl;
    +124  Term val = solver.getValue(d);
    +125  std::cout << "Value of `d`: " << val << std::endl;
    +126  std::cout << "Value of `((_ fp.to_ubv 16) RTP d)`: " << solver.getValue(lhs)
    +127            << std::endl;
    +128  std::cout << "Value of `((_ fp.to_ubv 16) RTN d)`: " << solver.getValue(rhs)
    +129            << std::endl;
    +130  std::cout << "Value of `(fp.to_real d)` "
    +131            << solver.getValue(tm.mkTerm(Kind::FLOATINGPOINT_TO_REAL, {val}))
    +132            << std::endl;
    +133  std::cout << std::endl;
    +134  solver.pop(1);
    +135
    +136  std::cout << "Finally, try to find a floating-point number between positive"
    +137            << std::endl
    +138            << "zero and the smallest positive floating-point number:"
    +139            << std::endl;
    +140  Term zero = tm.mkFloatingPointPosZero(8, 24);
    +141  Term smallest = tm.mkFloatingPoint(8, 24, tm.mkBitVector(32, 1));
    +142  solver.assertFormula(
    +143      tm.mkTerm(Kind::AND,
    +144                {tm.mkTerm(Kind::FLOATINGPOINT_LT, {zero, e}),
    +145                 tm.mkTerm(Kind::FLOATINGPOINT_LT, {e, smallest})}));
    +146
    +147  r = solver.checkSat();  // result is unsat
    +148  std::cout << "Expect unsat: " << r << std::endl;
    +149  assert(r.isUnsat());
    +150}
    +
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/helloworld.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/helloworld.html new file mode 100644 index 0000000000..62c1639728 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/helloworld.html @@ -0,0 +1,317 @@ + + + + + + + + + + + + + Hello World — cvc5 documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Hello World

    +

    This example shows the very basic usage of the API. +We create a solver, declare a Boolean variable and check whether it is entailed +(by true, as nothing has been asserted to the solver).

    +
    +

    examples/api/cpp/helloworld.cpp

    +
     1/******************************************************************************
    + 2 * Top contributors (to current version):
    + 3 *   Aina Niemetz, Tim King, Mathias Preiner
    + 4 *
    + 5 * This file is part of the cvc5 project.
    + 6 *
    + 7 * Copyright (c) 2009-2024 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 * A very simple cvc5 example.
    +14 */
    +15
    +16#include <cvc5/cvc5.h>
    +17
    +18#include <iostream>
    +19
    +20using namespace cvc5;
    +21
    +22int main()
    +23{
    +24  TermManager tm;
    +25  Solver slv(tm);
    +26  Term helloworld = tm.mkConst(tm.getBooleanSort(), "Hello World!");
    +27  std::cout << helloworld << " is " << slv.checkSatAssuming(helloworld)
    +28            << std::endl;
    +29  return 0;
    +30}
    +
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/lineararith.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/lineararith.html new file mode 100644 index 0000000000..ef92e64d27 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/lineararith.html @@ -0,0 +1,562 @@ + + + + + + + + + + + + + Theory of Linear Arithmetic — cvc5 documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    +
      +
    • + + +
    • +
    • +
    +
    +
    +
    +
    + +
    +

    Theory of Linear Arithmetic

    +

    This example asserts three constraints over an integer variable x and a real variable y. +Firstly, it checks that these constraints entail an upper bound on the difference y - x <= 2/3. +Secondly, it checks that this bound is tight by asserting y - x = 2/3 and checking for satisfiability. +The two checks are separated by using push and pop.

    +
    +

    examples/api/cpp/linear_arith.cpp

    +
     1/******************************************************************************
    + 2 * Top contributors (to current version):
    + 3 *   Aina Niemetz, Tim King, Haniel Barbosa
    + 4 *
    + 5 * This file is part of the cvc5 project.
    + 6 *
    + 7 * Copyright (c) 2009-2024 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 * A simple demonstration of the linear arithmetic solving capabilities and
    +14 * the push pop of cvc5. This also gives an example option.
    +15 */
    +16
    +17#include <iostream>
    +18
    +19#include <cvc5/cvc5.h>
    +20
    +21using namespace std;
    +22using namespace cvc5;
    +23
    +24int main()
    +25{
    +26  TermManager tm;
    +27  Solver slv(tm);
    +28  slv.setLogic("QF_LIRA"); // Set the logic
    +29
    +30  // Prove that if given x (Integer) and y (Real) then
    +31  // the maximum value of y - x is 2/3
    +32
    +33  // Sorts
    +34  Sort real = tm.getRealSort();
    +35  Sort integer = tm.getIntegerSort();
    +36
    +37  // Variables
    +38  Term x = tm.mkConst(integer, "x");
    +39  Term y = tm.mkConst(real, "y");
    +40
    +41  // Constants
    +42  Term three = tm.mkInteger(3);
    +43  Term neg2 = tm.mkInteger(-2);
    +44  Term two_thirds = tm.mkReal(2, 3);
    +45
    +46  // Terms
    +47  Term three_y = tm.mkTerm(Kind::MULT, {three, y});
    +48  Term diff = tm.mkTerm(Kind::SUB, {y, x});
    +49
    +50  // Formulas
    +51  Term x_geq_3y = tm.mkTerm(Kind::GEQ, {x, three_y});
    +52  Term x_leq_y = tm.mkTerm(Kind::LEQ, {x, y});
    +53  Term neg2_lt_x = tm.mkTerm(Kind::LT, {neg2, x});
    +54
    +55  Term assertions = tm.mkTerm(Kind::AND, {x_geq_3y, x_leq_y, neg2_lt_x});
    +56
    +57  cout << "Given the assertions " << assertions << endl;
    +58  slv.assertFormula(assertions);
    +59
    +60
    +61  slv.push();
    +62  Term diff_leq_two_thirds = tm.mkTerm(Kind::LEQ, {diff, two_thirds});
    +63  cout << "Prove that " << diff_leq_two_thirds << " with cvc5." << endl;
    +64  cout << "cvc5 should report UNSAT." << endl;
    +65  cout << "Result from cvc5 is: "
    +66       << slv.checkSatAssuming(diff_leq_two_thirds.notTerm()) << endl;
    +67  slv.pop();
    +68
    +69  cout << endl;
    +70
    +71  slv.push();
    +72  Term diff_is_two_thirds = tm.mkTerm(Kind::EQUAL, {diff, two_thirds});
    +73  slv.assertFormula(diff_is_two_thirds);
    +74  cout << "Show that the assertions are consistent with " << endl;
    +75  cout << diff_is_two_thirds << " with cvc5." << endl;
    +76  cout << "cvc5 should report SAT." << endl;
    +77  cout << "Result from cvc5 is: " << slv.checkSat() << endl;
    +78  slv.pop();
    +79
    +80  cout << "Thus the maximum value of (y - x) is 2/3."<< endl;
    +81
    +82  return 0;
    +83}
    +
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/parser.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/parser.html new file mode 100644 index 0000000000..0b69eb4b8b --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/parser.html @@ -0,0 +1,437 @@ + + + + + + + + + + + + + Parser — cvc5 documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Parser

    +

    This example shows how to use the parser via the parser API.

    +
    +

    examples/api/cpp/parser.cpp

    +
     1/******************************************************************************
    + 2 * Top contributors (to current version):
    + 3 *   Andrew Reynolds, Aina Niemetz
    + 4 *
    + 5 * This file is part of the cvc5 project.
    + 6 *
    + 7 * Copyright (c) 2009-2024 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 * A simple demonstration of using the parser via C++ API.
    +14 */
    +15
    +16#include <cvc5/cvc5.h>
    +17#include <cvc5/cvc5_parser.h>
    +18
    +19#include <iostream>
    +20
    +21using namespace cvc5;
    +22using namespace cvc5::parser;
    +23
    +24int main()
    +25{
    +26  TermManager tm;
    +27  Solver slv(tm);
    +28
    +29  // set that we should print success after each successful command
    +30  slv.setOption("print-success", "true");
    +31
    +32  // construct an input parser associated the solver above
    +33  InputParser parser(&slv);
    +34
    +35  std::stringstream ss;
    +36  ss << "(set-logic QF_LIA)" << std::endl;
    +37  ss << "(declare-fun a () Int)" << std::endl;
    +38  ss << "(declare-fun b () Int)" << std::endl;
    +39  ss << "(declare-fun c () Int)" << std::endl;
    +40  ss << "(assert (> a (+ b c)))" << std::endl;
    +41  ss << "(assert (< a b))" << std::endl;
    +42  ss << "(assert (> c 0))" << std::endl;
    +43  parser.setStreamInput(modes::InputLanguage::SMT_LIB_2_6, ss, "MyStream");
    +44
    +45  // get the symbol manager of the parser, used when invoking commands below
    +46  SymbolManager* sm = parser.getSymbolManager();
    +47
    +48  // parse commands until finished
    +49  Command cmd;
    +50  while (true)
    +51  {
    +52    cmd = parser.nextCommand();
    +53    if (cmd.isNull())
    +54    {
    +55      break;
    +56    }
    +57    std::cout << "Executing command " << cmd << ":" << std::endl;
    +58    // invoke the command on the solver and the symbol manager, print the result
    +59    // to std::cout
    +60    cmd.invoke(&slv, sm, std::cout);
    +61  }
    +62  std::cout << "Finished parsing commands" << std::endl;
    +63
    +64  // now, check sat with the solver
    +65  Result r = slv.checkSat();
    +66  std::cout << "expected: unsat" << std::endl;
    +67  std::cout << "result: " << r << std::endl;
    +68}
    +
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/parser_sym_manager.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/parser_sym_manager.html new file mode 100644 index 0000000000..54e40f2bc5 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/parser_sym_manager.html @@ -0,0 +1,476 @@ + + + + + + + + + + + + + Parser with Shared Symbol Manager — cvc5 documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    +
      +
    • + + +
    • +
    • +
    +
    +
    +
    +
    + +
    +

    Parser with Shared Symbol Manager

    +

    This example shows how to use the parser via the parser API and use it to +parse additional terms in another input source.

    +
    +

    examples/api/cpp/parser_sym_manager.cpp

    +
     1/******************************************************************************
    + 2 * Top contributors (to current version):
    + 3 *   Andrew Reynolds, Aina Niemetz
    + 4 *
    + 5 * This file is part of the cvc5 project.
    + 6 *
    + 7 * Copyright (c) 2009-2024 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 * A simple demonstration of using multiple parsers with the same symbol manager
    +14 * via C++ API.
    +15 */
    +16
    +17#include <cvc5/cvc5.h>
    +18#include <cvc5/cvc5_parser.h>
    +19
    +20#include <iostream>
    +21
    +22using namespace cvc5;
    +23using namespace cvc5::parser;
    +24
    +25int main()
    +26{
    +27  TermManager tm;
    +28  Solver slv(tm);
    +29
    +30  SymbolManager sm(tm);
    +31
    +32  // construct an input parser associated the solver above
    +33  InputParser parser(&slv, &sm);
    +34
    +35  std::stringstream ss;
    +36  ss << "(set-logic QF_LIA)" << std::endl;
    +37  ss << "(declare-fun a () Int)" << std::endl;
    +38  ss << "(declare-fun b () Int)" << std::endl;
    +39  ss << "(declare-fun c () Bool)" << std::endl;
    +40  parser.setStreamInput(modes::InputLanguage::SMT_LIB_2_6, ss, "MyStream");
    +41
    +42  // parse commands until finished
    +43  Command cmd;
    +44  while (true)
    +45  {
    +46    cmd = parser.nextCommand();
    +47    if (cmd.isNull())
    +48    {
    +49      break;
    +50    }
    +51    std::cout << "Executing command " << cmd << ":" << std::endl;
    +52    // invoke the command on the solver and the symbol manager, print the result
    +53    // to std::cout
    +54    cmd.invoke(&slv, &sm, std::cout);
    +55  }
    +56  std::cout << "Finished parsing commands" << std::endl;
    +57
    +58  // Note that sm now has a,b,c in its symbol table.
    +59
    +60  // Now, construct a new parser with the same symbol manager. We will parse
    +61  // terms with it.
    +62  InputParser parser2(&slv, &sm);
    +63  std::stringstream ss2;
    +64  ss2 << "(+ a b)" << std::endl;
    +65  ss2 << "(- a 10)" << std::endl;
    +66  ss2 << "(>= 0 45)" << std::endl;
    +67  ss2 << "(and c c)" << std::endl;
    +68  ss2 << "true" << std::endl;
    +69  parser2.setStreamInput(modes::InputLanguage::SMT_LIB_2_6, ss2, "MyStream2");
    +70
    +71  // parse terms until finished
    +72  Term t;
    +73  do
    +74  {
    +75    t = parser2.nextTerm();
    +76    std::cout << "Parsed term: " << t << std::endl;
    +77  } while (!t.isNull());
    +78  std::cout << "Finished parsing terms" << std::endl;
    +79}
    +
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/quickstart.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/quickstart.html new file mode 100644 index 0000000000..7867534f50 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/quickstart.html @@ -0,0 +1,1195 @@ + + + + + + + + + + + + + Quickstart Example — cvc5 documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    +
      +
    • + + +
    • +
    • +
    +
    +
    +
    +
    + +
    +

    Quickstart Example

    +
    +

    examples/api/cpp/quickstart.cpp

    +
      1/******************************************************************************
    +  2 * Top contributors (to current version):
    +  3 *   Yoni Zohar, Aina Niemetz, Gereon Kremer
    +  4 *
    +  5 * This file is part of the cvc5 project.
    +  6 *
    +  7 * Copyright (c) 2009-2024 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 * A simple demonstration of the API capabilities of cvc5.
    + 14 *
    + 15 */
    + 16
    + 17#include <cvc5/cvc5.h>
    + 18
    + 19#include <iostream>
    + 20#include <numeric>
    + 21
    + 22using namespace cvc5;
    + 23
    + 24int main()
    + 25{
    + 26  // Create a term manager
    + 27  //! [docs-cpp-quickstart-0 start]
    + 28  TermManager tm;
    + 29  //! [docs-cpp-quickstart-0 end]
    + 30  // Create a solver
    + 31  //! [docs-cpp-quickstart-1 start]
    + 32  Solver solver(tm);
    + 33  //! [docs-cpp-quickstart-1 end]
    + 34
    + 35  // We will ask the solver to produce models and unsat cores,
    + 36  // hence these options should be turned on.
    + 37  //! [docs-cpp-quickstart-2 start]
    + 38  solver.setOption("produce-models", "true");
    + 39  solver.setOption("produce-unsat-cores", "true");
    + 40  //! [docs-cpp-quickstart-2 end]
    + 41
    + 42  // The simplest way to set a logic for the solver is to choose "ALL".
    + 43  // This enables all logics in the solver.
    + 44  // Alternatively, "QF_ALL" enables all logics without quantifiers.
    + 45  // To optimize the solver's behavior for a more specific logic,
    + 46  // use the logic name, e.g. "QF_BV" or "QF_AUFBV".
    + 47
    + 48  // Set the logic
    + 49  //! [docs-cpp-quickstart-3 start]
    + 50  solver.setLogic("ALL");
    + 51  //! [docs-cpp-quickstart-3 end]
    + 52
    + 53  // In this example, we will define constraints over reals and integers.
    + 54  // Hence, we first obtain the corresponding sorts.
    + 55  //! [docs-cpp-quickstart-4 start]
    + 56  Sort realSort = tm.getRealSort();
    + 57  Sort intSort = tm.getIntegerSort();
    + 58  //! [docs-cpp-quickstart-4 end]
    + 59
    + 60  // x and y will be real variables, while a and b will be integer variables.
    + 61  // Formally, their cpp type is Term,
    + 62  // and they are called "constants" in SMT jargon:
    + 63  //! [docs-cpp-quickstart-5 start]
    + 64  Term x = tm.mkConst(realSort, "x");
    + 65  Term y = tm.mkConst(realSort, "y");
    + 66  Term a = tm.mkConst(intSort, "a");
    + 67  Term b = tm.mkConst(intSort, "b");
    + 68  //! [docs-cpp-quickstart-5 end]
    + 69
    + 70  // Our constraints regarding x and y will be:
    + 71  //
    + 72  //   (1)  0 < x
    + 73  //   (2)  0 < y
    + 74  //   (3)  x + y < 1
    + 75  //   (4)  x <= y
    + 76  //
    + 77
    + 78  //! [docs-cpp-quickstart-6 start]
    + 79  // Formally, constraints are also terms. Their sort is Boolean.
    + 80  // We will construct these constraints gradually,
    + 81  // by defining each of their components.
    + 82  // We start with the constant numerals 0 and 1:
    + 83  Term zero = tm.mkReal(0);
    + 84  Term one = tm.mkReal(1);
    + 85
    + 86  // Next, we construct the term x + y
    + 87  Term xPlusY = tm.mkTerm(Kind::ADD, {x, y});
    + 88
    + 89  // Now we can define the constraints.
    + 90  // They use the operators +, <=, and <.
    + 91  // In the API, these are denoted by ADD, LEQ, and LT.
    + 92  // A list of available operators is available in:
    + 93  // src/api/cpp/cvc5_kind.h
    + 94  Term constraint1 = tm.mkTerm(Kind::LT, {zero, x});
    + 95  Term constraint2 = tm.mkTerm(Kind::LT, {zero, y});
    + 96  Term constraint3 = tm.mkTerm(Kind::LT, {xPlusY, one});
    + 97  Term constraint4 = tm.mkTerm(Kind::LEQ, {x, y});
    + 98
    + 99  // Now we assert the constraints to the solver.
    +100  solver.assertFormula(constraint1);
    +101  solver.assertFormula(constraint2);
    +102  solver.assertFormula(constraint3);
    +103  solver.assertFormula(constraint4);
    +104  //! [docs-cpp-quickstart-6 end]
    +105
    +106  // Check if the formula is satisfiable, that is,
    +107  // are there real values for x and y that satisfy all the constraints?
    +108  //! [docs-cpp-quickstart-7 start]
    +109  Result r1 = solver.checkSat();
    +110  //! [docs-cpp-quickstart-7 end]
    +111
    +112  // The result is either SAT, UNSAT, or UNKNOWN.
    +113  // In this case, it is SAT.
    +114  //! [docs-cpp-quickstart-8 start]
    +115  std::cout << "expected: sat" << std::endl;
    +116  std::cout << "result: " << r1 << std::endl;
    +117  //! [docs-cpp-quickstart-8 end]
    +118
    +119  // We can get the values for x and y that satisfy the constraints.
    +120  //! [docs-cpp-quickstart-9 start]
    +121  Term xVal = solver.getValue(x);
    +122  Term yVal = solver.getValue(y);
    +123  //! [docs-cpp-quickstart-9 end]
    +124
    +125  // It is also possible to get values for compound terms,
    +126  // even if those did not appear in the original formula.
    +127  //! [docs-cpp-quickstart-10 start]
    +128  Term xMinusY = tm.mkTerm(Kind::SUB, {x, y});
    +129  Term xMinusYVal = solver.getValue(xMinusY);
    +130  //! [docs-cpp-quickstart-10 end]
    +131
    +132  // We can now obtain the string representations of the values.
    +133  //! [docs-cpp-quickstart-11 start]
    +134  std::string xStr = xVal.getRealValue();
    +135  std::string yStr = yVal.getRealValue();
    +136  std::string xMinusYStr = xMinusYVal.getRealValue();
    +137
    +138  std::cout << "value for x: " << xStr << std::endl;
    +139  std::cout << "value for y: " << yStr << std::endl;
    +140  std::cout << "value for x - y: " << xMinusYStr << std::endl;
    +141  //! [docs-cpp-quickstart-11 end]
    +142
    +143  //! [docs-cpp-quickstart-12 start]
    +144  // Further, we can convert the values to cpp types
    +145  std::pair<int64_t, uint64_t> xPair = xVal.getReal64Value();
    +146  std::pair<int64_t, uint64_t> yPair = yVal.getReal64Value();
    +147  std::pair<int64_t, uint64_t> xMinusYPair = xMinusYVal.getReal64Value();
    +148
    +149  std::cout << "value for x: " << xPair.first << "/" << xPair.second
    +150            << std::endl;
    +151  std::cout << "value for y: " << yPair.first << "/" << yPair.second
    +152            << std::endl;
    +153  std::cout << "value for x - y: " << xMinusYPair.first << "/"
    +154            << xMinusYPair.second << std::endl;
    +155  //! [docs-cpp-quickstart-12 end]
    +156
    +157  // Another way to independently compute the value of x - y would be
    +158  // to perform the (rational) arithmetic manually.
    +159  // However, for more complex terms,
    +160  // it is easier to let the solver do the evaluation.
    +161  //! [docs-cpp-quickstart-13 start]
    +162  std::pair<int64_t, uint64_t> xMinusYComputed = {
    +163    xPair.first * yPair.second - xPair.second * yPair.first,
    +164    xPair.second * yPair.second
    +165  };
    +166  uint64_t g = std::gcd(xMinusYComputed.first, xMinusYComputed.second);
    +167  xMinusYComputed = { xMinusYComputed.first / g, xMinusYComputed.second / g };
    +168  if (xMinusYComputed == xMinusYPair)
    +169  {
    +170    std::cout << "computed correctly" << std::endl;
    +171  }
    +172  else
    +173  {
    +174    std::cout << "computed incorrectly" << std::endl;
    +175  }
    +176  //! [docs-cpp-quickstart-13 end]
    +177
    +178  // Next, we will check satisfiability of the same formula,
    +179  // only this time over integer variables a and b.
    +180
    +181  // We start by resetting assertions added to the solver.
    +182  //! [docs-cpp-quickstart-14 start]
    +183  solver.resetAssertions();
    +184  //! [docs-cpp-quickstart-14 end]
    +185
    +186  // Next, we assert the same assertions above with integers.
    +187  // This time, we inline the construction of terms
    +188  // to the assertion command.
    +189  //! [docs-cpp-quickstart-15 start]
    +190  solver.assertFormula(tm.mkTerm(Kind::LT, {tm.mkInteger(0), a}));
    +191  solver.assertFormula(tm.mkTerm(Kind::LT, {tm.mkInteger(0), b}));
    +192  solver.assertFormula(
    +193      tm.mkTerm(Kind::LT, {tm.mkTerm(Kind::ADD, {a, b}), tm.mkInteger(1)}));
    +194  solver.assertFormula(tm.mkTerm(Kind::LEQ, {a, b}));
    +195  //! [docs-cpp-quickstart-15 end]
    +196
    +197  // We check whether the revised assertion is satisfiable.
    +198  //! [docs-cpp-quickstart-16 start]
    +199  Result r2 = solver.checkSat();
    +200  //! [docs-cpp-quickstart-16 end]
    +201
    +202  // This time the formula is unsatisfiable
    +203  //! [docs-cpp-quickstart-17 start]
    +204  std::cout << "expected: unsat" << std::endl;
    +205  std::cout << "result: " << r2 << std::endl;
    +206  //! [docs-cpp-quickstart-17 end]
    +207
    +208  // We can query the solver for an unsatisfiable core, i.e., a subset
    +209  // of the assertions that is already unsatisfiable.
    +210  //! [docs-cpp-quickstart-18 start]
    +211  std::vector<Term> unsatCore = solver.getUnsatCore();
    +212  std::cout << "unsat core size: " << unsatCore.size() << std::endl;
    +213  std::cout << "unsat core: " << std::endl;
    +214  for (const Term& t : unsatCore)
    +215  {
    +216    std::cout << t << std::endl;
    +217  }
    +218  //! [docs-cpp-quickstart-18 end]
    +219
    +220  return 0;
    +221}
    +
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/relations.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/relations.html new file mode 100644 index 0000000000..52297d8094 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/relations.html @@ -0,0 +1,904 @@ + + + + + + + + + + + + + Theory of Relations — cvc5 documentation + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    +
      +
    • + + +
    • +
    • +
    +
    +
    +
    +
    + +
    +

    Theory of Relations

    +

    This simple example demonstrates the combined +theory of finite sets and finite relations using a family tree. +Relations are defined as sets of tuples with arity \(\geq 1\). +The example includes the unary relations \(people, males,\) and \(females\) +and the binary relations \(father, mother, parent, ancestor\), and \(descendant\).

    +

    We have the following list of constraints:

    +
      +
    • All relations are nonempty.

    • +
    • People is the universe set.

    • +
    • Males and females are disjoint sets (i.e., \(males \cap females = \phi\)).

    • +
    • Fathers are males (i.e., \(father \bowtie people \subseteq males\)) [*].

    • +
    • Mothers are females (i.e., \(mother \bowtie people \subseteq females\)).

    • +
    • A parent is a father or a mother (i.e., \(parent = father \cup mother\)).

    • +
    • Ancestor relation is the transitive closure of parent (i.e., \(ancestor = parent^{+}\)).

    • +
    • Descendant relation is the transpose of ancestor (i.e., \(descendant = ancestor^{-1}\)).

    • +
    • No self ancestor (i.e., \(\forall x: Person. \langle x, x \rangle \not\in ancestor\)).

    • +
    + +
    +

    examples/api/cpp/relations.cpp

    +
      1/******************************************************************************
    +  2 * Top contributors (to current version):
    +  3 *   Mudathir Mohamed, Aina Niemetz, Mathias Preiner
    +  4 *
    +  5 * This file is part of the cvc5 project.
    +  6 *
    +  7 * Copyright (c) 2009-2024 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 * A simple demonstration of reasoning about relations via the C++ API.
    + 14 */
    + 15
    + 16#include <cvc5/cvc5.h>
    + 17
    + 18#include <iostream>
    + 19
    + 20using namespace cvc5;
    + 21
    + 22int main()
    + 23{
    + 24  TermManager tm;
    + 25  Solver solver(tm);
    + 26
    + 27  // Set the logic
    + 28  solver.setLogic("ALL");
    + 29
    + 30  // options
    + 31  solver.setOption("produce-models", "true");
    + 32  // we need finite model finding to answer sat problems with universal
    + 33  // quantified formulas
    + 34  solver.setOption("finite-model-find", "true");
    + 35  // we need sets extension to support set.universe operator
    + 36  solver.setOption("sets-exp", "true");
    + 37
    + 38  // (declare-sort Person 0)
    + 39  Sort personSort = tm.mkUninterpretedSort("Person");
    + 40
    + 41  // (Tuple Person)
    + 42  Sort tupleArity1 = tm.mkTupleSort({personSort});
    + 43  // (Relation Person)
    + 44  Sort relationArity1 = tm.mkSetSort(tupleArity1);
    + 45
    + 46  // (Tuple Person Person)
    + 47  Sort tupleArity2 = tm.mkTupleSort({personSort, personSort});
    + 48  // (Relation Person Person)
    + 49  Sort relationArity2 = tm.mkSetSort(tupleArity2);
    + 50
    + 51  // empty set
    + 52  Term emptySetTerm = tm.mkEmptySet(relationArity1);
    + 53
    + 54  // empty relation
    + 55  Term emptyRelationTerm = tm.mkEmptySet(relationArity2);
    + 56
    + 57  // universe set
    + 58  Term universeSet = tm.mkUniverseSet(relationArity1);
    + 59
    + 60  // variables
    + 61  Term people = tm.mkConst(relationArity1, "people");
    + 62  Term males = tm.mkConst(relationArity1, "males");
    + 63  Term females = tm.mkConst(relationArity1, "females");
    + 64  Term father = tm.mkConst(relationArity2, "father");
    + 65  Term mother = tm.mkConst(relationArity2, "mother");
    + 66  Term parent = tm.mkConst(relationArity2, "parent");
    + 67  Term ancestor = tm.mkConst(relationArity2, "ancestor");
    + 68  Term descendant = tm.mkConst(relationArity2, "descendant");
    + 69
    + 70  Term isEmpty1 = tm.mkTerm(Kind::EQUAL, {males, emptySetTerm});
    + 71  Term isEmpty2 = tm.mkTerm(Kind::EQUAL, {females, emptySetTerm});
    + 72
    + 73  // (assert (= people (as set.universe (Relation Person))))
    + 74  Term peopleAreTheUniverse = tm.mkTerm(Kind::EQUAL, {people, universeSet});
    + 75  // (assert (not (= males (as set.empty (Relation Person)))))
    + 76  Term maleSetIsNotEmpty = tm.mkTerm(Kind::NOT, {isEmpty1});
    + 77  // (assert (not (= females (as set.empty (Relation Person)))))
    + 78  Term femaleSetIsNotEmpty = tm.mkTerm(Kind::NOT, {isEmpty2});
    + 79
    + 80  // (assert (= (set.inter males females)
    + 81  //            (as set.empty (Relation Person))))
    + 82  Term malesFemalesIntersection = tm.mkTerm(Kind::SET_INTER, {males, females});
    + 83  Term malesAndFemalesAreDisjoint =
    + 84      tm.mkTerm(Kind::EQUAL, {malesFemalesIntersection, emptySetTerm});
    + 85
    + 86  // (assert (not (= father (as set.empty (Relation Person Person)))))
    + 87  // (assert (not (= mother (as set.empty (Relation Person Person)))))
    + 88  Term isEmpty3 = tm.mkTerm(Kind::EQUAL, {father, emptyRelationTerm});
    + 89  Term isEmpty4 = tm.mkTerm(Kind::EQUAL, {mother, emptyRelationTerm});
    + 90  Term fatherIsNotEmpty = tm.mkTerm(Kind::NOT, {isEmpty3});
    + 91  Term motherIsNotEmpty = tm.mkTerm(Kind::NOT, {isEmpty4});
    + 92
    + 93  // fathers are males
    + 94  // (assert (set.subset (rel.join father people) males))
    + 95  Term fathers = tm.mkTerm(Kind::RELATION_JOIN, {father, people});
    + 96  Term fathersAreMales = tm.mkTerm(Kind::SET_SUBSET, {fathers, males});
    + 97
    + 98  // mothers are females
    + 99  // (assert (set.subset (rel.join mother people) females))
    +100  Term mothers = tm.mkTerm(Kind::RELATION_JOIN, {mother, people});
    +101  Term mothersAreFemales = tm.mkTerm(Kind::SET_SUBSET, {mothers, females});
    +102
    +103  // (assert (= parent (set.union father mother)))
    +104  Term unionFatherMother = tm.mkTerm(Kind::SET_UNION, {father, mother});
    +105  Term parentIsFatherOrMother =
    +106      tm.mkTerm(Kind::EQUAL, {parent, unionFatherMother});
    +107
    +108  // (assert (= ancestor (rel.tclosure parent)))
    +109  Term transitiveClosure = tm.mkTerm(Kind::RELATION_TCLOSURE, {parent});
    +110  Term ancestorFormula = tm.mkTerm(Kind::EQUAL, {ancestor, transitiveClosure});
    +111
    +112  // (assert (= descendant (rel.transpose descendant)))
    +113  Term transpose = tm.mkTerm(Kind::RELATION_TRANSPOSE, {ancestor});
    +114  Term descendantFormula = tm.mkTerm(Kind::EQUAL, {descendant, transpose});
    +115
    +116  // (assert (forall ((x Person)) (not (set.member (tuple x x) ancestor))))
    +117  Term x = tm.mkVar(personSort, "x");
    +118  Term xxTuple = tm.mkTuple({x, x});
    +119  Term member = tm.mkTerm(Kind::SET_MEMBER, {xxTuple, ancestor});
    +120  Term notMember = tm.mkTerm(Kind::NOT, {member});
    +121
    +122  Term quantifiedVariables = tm.mkTerm(Kind::VARIABLE_LIST, {x});
    +123  Term noSelfAncestor =
    +124      tm.mkTerm(Kind::FORALL, {quantifiedVariables, notMember});
    +125
    +126  // formulas
    +127  solver.assertFormula(peopleAreTheUniverse);
    +128  solver.assertFormula(maleSetIsNotEmpty);
    +129  solver.assertFormula(femaleSetIsNotEmpty);
    +130  solver.assertFormula(malesAndFemalesAreDisjoint);
    +131  solver.assertFormula(fatherIsNotEmpty);
    +132  solver.assertFormula(motherIsNotEmpty);
    +133  solver.assertFormula(fathersAreMales);
    +134  solver.assertFormula(mothersAreFemales);
    +135  solver.assertFormula(parentIsFatherOrMother);
    +136  solver.assertFormula(descendantFormula);
    +137  solver.assertFormula(ancestorFormula);
    +138  solver.assertFormula(noSelfAncestor);
    +139
    +140  // check sat
    +141  Result result = solver.checkSat();
    +142
    +143  // output
    +144  std::cout << "Result     = " << result << std::endl;
    +145  std::cout << "people     = " << solver.getValue(people) << std::endl;
    +146  std::cout << "males      = " << solver.getValue(males) << std::endl;
    +147  std::cout << "females    = " << solver.getValue(females) << std::endl;
    +148  std::cout << "father     = " << solver.getValue(father) << std::endl;
    +149  std::cout << "mother     = " << solver.getValue(mother) << std::endl;
    +150  std::cout << "parent     = " << solver.getValue(parent) << std::endl;
    +151  std::cout << "descendant = " << solver.getValue(descendant) << std::endl;
    +152  std::cout << "ancestor   = " << solver.getValue(ancestor) << std::endl;
    +153}
    +
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/sequences.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/sequences.html new file mode 100644 index 0000000000..e94af6b3db --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/sequences.html @@ -0,0 +1,511 @@ + + + + + + + + + + + + + Theory of Sequences — cvc5 documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    +
      +
    • + + +
    • +
    • +
    +
    +
    +
    +
    + +
    +

    Theory of Sequences

    +
    +

    examples/api/cpp/sequences.cpp

    +
     1/******************************************************************************
    + 2 * Top contributors (to current version):
    + 3 *   Aina Niemetz, Andres Noetzli, Tianyi Liang
    + 4 *
    + 5 * This file is part of the cvc5 project.
    + 6 *
    + 7 * Copyright (c) 2009-2024 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 * A simple demonstration of reasoning about sequences via the C++ API.
    +14 */
    +15
    +16#include <cvc5/cvc5.h>
    +17
    +18#include <iostream>
    +19
    +20using namespace cvc5;
    +21
    +22int main()
    +23{
    +24  TermManager tm;
    +25  Solver slv(tm);
    +26
    +27  // Set the logic
    +28  slv.setLogic("QF_SLIA");
    +29  // Produce models
    +30  slv.setOption("produce-models", "true");
    +31  // The option strings-exp is needed
    +32  slv.setOption("strings-exp", "true");
    +33
    +34  // Sequence sort
    +35  Sort intSeq = tm.mkSequenceSort(tm.getIntegerSort());
    +36
    +37  // Sequence variables
    +38  Term x = tm.mkConst(intSeq, "x");
    +39  Term y = tm.mkConst(intSeq, "y");
    +40
    +41  // Empty sequence
    +42  Term empty = tm.mkEmptySequence(tm.getIntegerSort());
    +43  // Sequence concatenation: x.y.empty
    +44  Term concat = tm.mkTerm(Kind::SEQ_CONCAT, {x, y, empty});
    +45  // Sequence length: |x.y.empty|
    +46  Term concat_len = tm.mkTerm(Kind::SEQ_LENGTH, {concat});
    +47  // |x.y.empty| > 1
    +48  Term formula1 = tm.mkTerm(Kind::GT, {concat_len, tm.mkInteger(1)});
    +49  // Sequence unit: seq(1)
    +50  Term unit = tm.mkTerm(Kind::SEQ_UNIT, {tm.mkInteger(1)});
    +51  // x = seq(1)
    +52  Term formula2 = tm.mkTerm(Kind::EQUAL, {x, unit});
    +53
    +54  // Make a query
    +55  Term q = tm.mkTerm(Kind::AND, {formula1, formula2});
    +56
    +57  // check sat
    +58  Result result = slv.checkSatAssuming(q);
    +59  std::cout << "cvc5 reports: " << q << " is " << result << "." << std::endl;
    +60
    +61  if (result.isSat())
    +62  {
    +63    std::cout << "  x = " << slv.getValue(x) << std::endl;
    +64    std::cout << "  y = " << slv.getValue(y) << std::endl;
    +65  }
    +66}
    +
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/sets.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/sets.html new file mode 100644 index 0000000000..79b368a524 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/sets.html @@ -0,0 +1,661 @@ + + + + + + + + + + + + + Theory of Sets — cvc5 documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Theory of Sets

    +
    +

    examples/api/cpp/sets.cpp

    +
     1/******************************************************************************
    + 2 * Top contributors (to current version):
    + 3 *   Aina Niemetz, Kshitij Bansal, Andrew Reynolds
    + 4 *
    + 5 * This file is part of the cvc5 project.
    + 6 *
    + 7 * Copyright (c) 2009-2024 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 * A simple demonstration of reasoning about sets via the C++ API.
    +14 */
    +15
    +16#include <cvc5/cvc5.h>
    +17
    +18#include <iostream>
    +19
    +20using namespace std;
    +21using namespace cvc5;
    +22
    +23int main()
    +24{
    +25  TermManager tm;
    +26  Solver slv(tm);
    +27
    +28  // Optionally, set the logic. We need at least UF for equality predicate,
    +29  // integers (LIA) and sets (FS).
    +30  slv.setLogic("QF_UFLIAFS");
    +31
    +32  // Produce models
    +33  slv.setOption("produce-models", "true");
    +34
    +35  Sort integer = tm.getIntegerSort();
    +36  Sort set = tm.mkSetSort(integer);
    +37
    +38  // Verify union distributions over intersection
    +39  // (A union B) intersection C = (A intersection C) union (B intersection C)
    +40  {
    +41    Term A = tm.mkConst(set, "A");
    +42    Term B = tm.mkConst(set, "B");
    +43    Term C = tm.mkConst(set, "C");
    +44
    +45    Term unionAB = tm.mkTerm(Kind::SET_UNION, {A, B});
    +46    Term lhs = tm.mkTerm(Kind::SET_INTER, {unionAB, C});
    +47
    +48    Term intersectionAC = tm.mkTerm(Kind::SET_INTER, {A, C});
    +49    Term intersectionBC = tm.mkTerm(Kind::SET_INTER, {B, C});
    +50    Term rhs = tm.mkTerm(Kind::SET_UNION, {intersectionAC, intersectionBC});
    +51
    +52    Term theorem = tm.mkTerm(Kind::EQUAL, {lhs, rhs});
    +53
    +54    cout << "cvc5 reports: " << theorem << " is "
    +55         << slv.checkSatAssuming(theorem.notTerm()) << "." << endl;
    +56  }
    +57
    +58  // Verify emptset is a subset of any set
    +59  {
    +60    Term A = tm.mkConst(set, "A");
    +61    Term emptyset = tm.mkEmptySet(set);
    +62
    +63    Term theorem = tm.mkTerm(Kind::SET_SUBSET, {emptyset, A});
    +64
    +65    cout << "cvc5 reports: " << theorem << " is "
    +66         << slv.checkSatAssuming(theorem.notTerm()) << "." << endl;
    +67  }
    +68
    +69  // Find me an element in {1, 2} intersection {2, 3}, if there is one.
    +70  {
    +71    Term one = tm.mkInteger(1);
    +72    Term two = tm.mkInteger(2);
    +73    Term three = tm.mkInteger(3);
    +74
    +75    Term singleton_one = tm.mkTerm(Kind::SET_SINGLETON, {one});
    +76    Term singleton_two = tm.mkTerm(Kind::SET_SINGLETON, {two});
    +77    Term singleton_three = tm.mkTerm(Kind::SET_SINGLETON, {three});
    +78    Term one_two = tm.mkTerm(Kind::SET_UNION, {singleton_one, singleton_two});
    +79    Term two_three =
    +80        tm.mkTerm(Kind::SET_UNION, {singleton_two, singleton_three});
    +81    Term intersection = tm.mkTerm(Kind::SET_INTER, {one_two, two_three});
    +82
    +83    Term x = tm.mkConst(integer, "x");
    +84
    +85    Term e = tm.mkTerm(Kind::SET_MEMBER, {x, intersection});
    +86
    +87    Result result = slv.checkSatAssuming(e);
    +88    cout << "cvc5 reports: " << e << " is " << result << "." << endl;
    +89
    +90    if (result.isSat())
    +91    {
    +92      cout << "For instance, " << slv.getValue(x) << " is a member." << endl;
    +93    }
    +94  }
    +95}
    +
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/strings.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/strings.html new file mode 100644 index 0000000000..b62da8f4cb --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/strings.html @@ -0,0 +1,659 @@ + + + + + + + + + + + + + Theory of Strings — cvc5 documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    +
      +
    • + + +
    • +
    • +
    +
    +
    +
    +
    + +
    +

    Theory of Strings

    +
    +

    examples/api/cpp/strings.cpp

    +
     1/******************************************************************************
    + 2 * Top contributors (to current version):
    + 3 *   Aina Niemetz, Tianyi Liang, Mathias Preiner
    + 4 *
    + 5 * This file is part of the cvc5 project.
    + 6 *
    + 7 * Copyright (c) 2009-2024 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 * A simple demonstration of reasoning about strings via the C++ API.
    +14 */
    +15
    +16#include <cvc5/cvc5.h>
    +17
    +18#include <iostream>
    +19
    +20using namespace cvc5;
    +21
    +22int main()
    +23{
    +24  TermManager tm;
    +25  Solver slv(tm);
    +26
    +27  // Set the logic
    +28  slv.setLogic("QF_SLIA");
    +29  // Produce models
    +30  slv.setOption("produce-models", "true");
    +31  // The option strings-exp is needed
    +32  slv.setOption("strings-exp", "true");
    +33
    +34  // String type
    +35  Sort string = tm.getStringSort();
    +36
    +37  // std::string
    +38  std::string str_ab("ab");
    +39  // String constants
    +40  Term ab = tm.mkString(str_ab);
    +41  Term abc = tm.mkString("abc");
    +42  // String variables
    +43  Term x = tm.mkConst(string, "x");
    +44  Term y = tm.mkConst(string, "y");
    +45  Term z = tm.mkConst(string, "z");
    +46
    +47  // String concatenation: x.ab.y
    +48  Term lhs = tm.mkTerm(Kind::STRING_CONCAT, {x, ab, y});
    +49  // String concatenation: abc.z
    +50  Term rhs = tm.mkTerm(Kind::STRING_CONCAT, {abc, z});
    +51  // x.ab.y = abc.z
    +52  Term formula1 = tm.mkTerm(Kind::EQUAL, {lhs, rhs});
    +53
    +54  // Length of y: |y|
    +55  Term leny = tm.mkTerm(Kind::STRING_LENGTH, {y});
    +56  // |y| >= 0
    +57  Term formula2 = tm.mkTerm(Kind::GEQ, {leny, tm.mkInteger(0)});
    +58
    +59  // Regular expression: (ab[c-e]*f)|g|h
    +60  Term r = tm.mkTerm(
    +61      Kind::REGEXP_UNION,
    +62
    +63      {tm.mkTerm(Kind::REGEXP_CONCAT,
    +64                 {tm.mkTerm(Kind::STRING_TO_REGEXP, {tm.mkString("ab")}),
    +65                  tm.mkTerm(Kind::REGEXP_STAR,
    +66                            {tm.mkTerm(Kind::REGEXP_RANGE,
    +67                                       {tm.mkString("c"), tm.mkString("e")})}),
    +68                  tm.mkTerm(Kind::STRING_TO_REGEXP, {tm.mkString("f")})}),
    +69       tm.mkTerm(Kind::STRING_TO_REGEXP, {tm.mkString("g")}),
    +70       tm.mkTerm(Kind::STRING_TO_REGEXP, {tm.mkString("h")})});
    +71
    +72  // String variables
    +73  Term s1 = tm.mkConst(string, "s1");
    +74  Term s2 = tm.mkConst(string, "s2");
    +75  // String concatenation: s1.s2
    +76  Term s = tm.mkTerm(Kind::STRING_CONCAT, {s1, s2});
    +77
    +78  // s1.s2 in (ab[c-e]*f)|g|h
    +79  Term formula3 = tm.mkTerm(Kind::STRING_IN_REGEXP, {s, r});
    +80
    +81  // Make a query
    +82  Term q = tm.mkTerm(Kind::AND, {formula1, formula2, formula3});
    +83
    +84  // check sat
    +85  Result result = slv.checkSatAssuming(q);
    +86  std::cout << "cvc5 reports: " << q << " is " << result << "." << std::endl;
    +87
    +88  if(result.isSat())
    +89  {
    +90    std::cout << "  x  = " << slv.getValue(x) << std::endl;
    +91    std::cout << "  s1.s2 = " << slv.getValue(s) << std::endl;
    +92  }
    +93}
    +
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/sygus-fun.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/sygus-fun.html new file mode 100644 index 0000000000..6e23618c88 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/sygus-fun.html @@ -0,0 +1,1040 @@ + + + + + + + + + + + + + SyGuS: Functions — cvc5 documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    SyGuS: Functions

    +
    +

    examples/api/cpp/sygus-fun.cpp

    +
      1/******************************************************************************
    +  2 * Top contributors (to current version):
    +  3 *   Abdalrhman Mohamed, Aina Niemetz, Mathias Preiner
    +  4 *
    +  5 * This file is part of the cvc5 project.
    +  6 *
    +  7 * Copyright (c) 2009-2024 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 * A simple demonstration of the Sygus API.
    + 14 *
    + 15 * A simple demonstration of how to use the Sygus API to synthesize max and min
    + 16 * functions.
    + 17 */
    + 18
    + 19#include <cvc5/cvc5.h>
    + 20
    + 21#include <iostream>
    + 22
    + 23#include "utils.h"
    + 24
    + 25using namespace cvc5;
    + 26
    + 27int main()
    + 28{
    + 29  TermManager tm;
    + 30  Solver slv(tm);
    + 31
    + 32  // required options
    + 33  slv.setOption("sygus", "true");
    + 34  slv.setOption("incremental", "false");
    + 35
    + 36  // set the logic
    + 37  slv.setLogic("LIA");
    + 38
    + 39  Sort integer = tm.getIntegerSort();
    + 40  Sort boolean = tm.getBooleanSort();
    + 41
    + 42  // declare input variables for the functions-to-synthesize
    + 43  Term x = tm.mkVar(integer, "x");
    + 44  Term y = tm.mkVar(integer, "y");
    + 45
    + 46  // declare the grammar non-terminals
    + 47  Term start = tm.mkVar(integer, "Start");
    + 48  Term start_bool = tm.mkVar(boolean, "StartBool");
    + 49
    + 50  // define the rules
    + 51  Term zero = tm.mkInteger(0);
    + 52  Term one = tm.mkInteger(1);
    + 53
    + 54  Term plus = tm.mkTerm(Kind::ADD, {start, start});
    + 55  Term minus = tm.mkTerm(Kind::SUB, {start, start});
    + 56  Term ite = tm.mkTerm(Kind::ITE, {start_bool, start, start});
    + 57
    + 58  Term And = tm.mkTerm(Kind::AND, {start_bool, start_bool});
    + 59  Term Not = tm.mkTerm(Kind::NOT, {start_bool});
    + 60  Term leq = tm.mkTerm(Kind::LEQ, {start, start});
    + 61
    + 62  // create the grammar object
    + 63  Grammar g = slv.mkGrammar({x, y}, {start, start_bool});
    + 64
    + 65  // bind each non-terminal to its rules
    + 66  g.addRules(start, {zero, one, x, y, plus, minus, ite});
    + 67  g.addRules(start_bool, {And, Not, leq});
    + 68
    + 69  // declare the functions-to-synthesize. Optionally, provide the grammar
    + 70  // constraints
    + 71  Term max = slv.synthFun("max", {x, y}, integer, g);
    + 72  Term min = slv.synthFun("min", {x, y}, integer);
    + 73
    + 74  // declare universal variables.
    + 75  Term varX = slv.declareSygusVar("x", integer);
    + 76  Term varY = slv.declareSygusVar("y", integer);
    + 77
    + 78  Term max_x_y = tm.mkTerm(Kind::APPLY_UF, {max, varX, varY});
    + 79  Term min_x_y = tm.mkTerm(Kind::APPLY_UF, {min, varX, varY});
    + 80
    + 81  // add semantic constraints
    + 82  // (constraint (>= (max x y) x))
    + 83  slv.addSygusConstraint(tm.mkTerm(Kind::GEQ, {max_x_y, varX}));
    + 84
    + 85  // (constraint (>= (max x y) y))
    + 86  slv.addSygusConstraint(tm.mkTerm(Kind::GEQ, {max_x_y, varY}));
    + 87
    + 88  // (constraint (or (= x (max x y))
    + 89  //                 (= y (max x y))))
    + 90  slv.addSygusConstraint(tm.mkTerm(Kind::OR,
    + 91                                   {tm.mkTerm(Kind::EQUAL, {max_x_y, varX}),
    + 92                                    tm.mkTerm(Kind::EQUAL, {max_x_y, varY})}));
    + 93
    + 94  // (constraint (= (+ (max x y) (min x y))
    + 95  //                (+ x y)))
    + 96  slv.addSygusConstraint(tm.mkTerm(Kind::EQUAL,
    + 97                                   {tm.mkTerm(Kind::ADD, {max_x_y, min_x_y}),
    + 98                                    tm.mkTerm(Kind::ADD, {varX, varY})}));
    + 99
    +100  // print solutions if available
    +101  if (slv.checkSynth().hasSolution())
    +102  {
    +103    // Output should be equivalent to:
    +104    // (
    +105    //   (define-fun max ((x Int) (y Int)) Int (ite (<= x y) y x))
    +106    //   (define-fun min ((x Int) (y Int)) Int (ite (<= x y) x y))
    +107    // )
    +108    std::vector<Term> terms = {max, min};
    +109    utils::printSynthSolutions(terms, slv.getSynthSolutions(terms));
    +110  }
    +111
    +112  return 0;
    +113}
    +
    +
    +
    +

    The utility method used for printing the synthesis solutions in the examples +above is defined separately in the utils module:

    +
    +

    examples/api/cpp/utils.h

    +
     1/******************************************************************************
    + 2 * Top contributors (to current version):
    + 3 *   Abdalrhman Mohamed, Mathias Preiner
    + 4 *
    + 5 * This file is part of the cvc5 project.
    + 6 *
    + 7 * Copyright (c) 2009-2024 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 * Utility methods.
    +14 */
    +15
    +16#ifndef CVC5__UTILS_H
    +17#define CVC5__UTILS_H
    +18
    +19#include <cvc5/cvc5.h>
    +20
    +21namespace utils {
    +22
    +23/**
    +24 * Print solutions for synthesis conjecture to the standard output stream.
    +25 * @param terms the terms for which the synthesis solutions were retrieved
    +26 * @param sols the synthesis solutions of the given terms
    +27 */
    +28void printSynthSolutions(const std::vector<cvc5::Term>& terms,
    +29                         const std::vector<cvc5::Term>& sols);
    +30
    +31}  // namespace utils
    +32
    +33#endif  // CVC5__UTILS_H
    +
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/sygus-inv.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/sygus-inv.html new file mode 100644 index 0000000000..4050af9936 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/sygus-inv.html @@ -0,0 +1,888 @@ + + + + + + + + + + + + + SyGuS: Invariants — cvc5 documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    +
      +
    • + + +
    • +
    • +
    +
    +
    +
    +
    + +
    +

    SyGuS: Invariants

    +
    +

    examples/api/cpp/sygus-inv.cpp

    +
     1/******************************************************************************
    + 2 * Top contributors (to current version):
    + 3 *   Abdalrhman Mohamed, Aina Niemetz, Mathias Preiner
    + 4 *
    + 5 * This file is part of the cvc5 project.
    + 6 *
    + 7 * Copyright (c) 2009-2024 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 * A simple demonstration of the Sygus API.
    +14 *
    +15 * A simple demonstration of how to use the Sygus API to synthesize a simple
    +16 * invariant.
    +17 */
    +18
    +19#include <cvc5/cvc5.h>
    +20
    +21#include <iostream>
    +22
    +23#include "utils.h"
    +24
    +25using namespace cvc5;
    +26
    +27int main()
    +28{
    +29  TermManager tm;
    +30  Solver slv(tm);
    +31
    +32  // required options
    +33  slv.setOption("sygus", "true");
    +34  slv.setOption("incremental", "false");
    +35
    +36  // set the logic
    +37  slv.setLogic("LIA");
    +38
    +39  Sort integer = tm.getIntegerSort();
    +40  Sort boolean = tm.getBooleanSort();
    +41
    +42  Term zero = tm.mkInteger(0);
    +43  Term one = tm.mkInteger(1);
    +44  Term ten = tm.mkInteger(10);
    +45
    +46  // declare input variables for functions
    +47  Term x = tm.mkVar(integer, "x");
    +48  Term xp = tm.mkVar(integer, "xp");
    +49
    +50  // (ite (< x 10) (= xp (+ x 1)) (= xp x))
    +51  Term ite =
    +52      tm.mkTerm(Kind::ITE,
    +53                {tm.mkTerm(Kind::LT, {x, ten}),
    +54                 tm.mkTerm(Kind::EQUAL, {xp, tm.mkTerm(Kind::ADD, {x, one})}),
    +55                 tm.mkTerm(Kind::EQUAL, {xp, x})});
    +56
    +57  // define the pre-conditions, transition relations, and post-conditions
    +58  Term pre_f =
    +59      slv.defineFun("pre-f", {x}, boolean, tm.mkTerm(Kind::EQUAL, {x, zero}));
    +60  Term trans_f = slv.defineFun("trans-f", {x, xp}, boolean, ite);
    +61  Term post_f =
    +62      slv.defineFun("post-f", {x}, boolean, tm.mkTerm(Kind::LEQ, {x, ten}));
    +63
    +64  // declare the invariant-to-synthesize
    +65  Term inv_f = slv.synthFun("inv-f", {x}, boolean);
    +66
    +67  slv.addSygusInvConstraint(inv_f, pre_f, trans_f, post_f);
    +68
    +69  // print solutions if available
    +70  if (slv.checkSynth().hasSolution())
    +71  {
    +72    // Output should be equivalent to:
    +73    // (
    +74    //   (define-fun inv-f ((x Int)) Bool (not (>= x 11)))
    +75    // )
    +76    std::vector<Term> terms = {inv_f};
    +77    utils::printSynthSolutions(terms, slv.getSynthSolutions(terms));
    +78  }
    +79
    +80  return 0;
    +81}
    +
    +
    +
    +

    The utility method used for printing the synthesis solutions in the examples +above is defined separately in the utils module:

    +
    +

    examples/api/cpp/utils.h

    +
     1/******************************************************************************
    + 2 * Top contributors (to current version):
    + 3 *   Abdalrhman Mohamed, Mathias Preiner
    + 4 *
    + 5 * This file is part of the cvc5 project.
    + 6 *
    + 7 * Copyright (c) 2009-2024 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 * Utility methods.
    +14 */
    +15
    +16#ifndef CVC5__UTILS_H
    +17#define CVC5__UTILS_H
    +18
    +19#include <cvc5/cvc5.h>
    +20
    +21namespace utils {
    +22
    +23/**
    +24 * Print solutions for synthesis conjecture to the standard output stream.
    +25 * @param terms the terms for which the synthesis solutions were retrieved
    +26 * @param sols the synthesis solutions of the given terms
    +27 */
    +28void printSynthSolutions(const std::vector<cvc5::Term>& terms,
    +29                         const std::vector<cvc5::Term>& sols);
    +30
    +31}  // namespace utils
    +32
    +33#endif  // CVC5__UTILS_H
    +
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/uf.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/uf.html new file mode 100644 index 0000000000..2a830f4428 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/examples/uf.html @@ -0,0 +1,470 @@ + + + + + + + + + + + + + Theory of Uninterpreted Functions — cvc5 documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    +
      +
    • + + +
    • +
    • +
    +
    +
    +
    +
    + +
    +

    Theory of Uninterpreted Functions

    +
    +

    examples/api/cpp/uf.cpp

    +
     1/******************************************************************************
    + 2 * Top contributors (to current version):
    + 3 *   Yoni Zohar
    + 4 *
    + 5 * This file is part of the cvc5 project.
    + 6 *
    + 7 * Copyright (c) 2009-2024 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 * A simple demonstration of the capabilities of the cvc5 uf solver.
    +14 */
    +15
    +16#include <cvc5/cvc5.h>
    +17
    +18#include <iostream>
    +19
    +20using namespace cvc5;
    +21
    +22int main()
    +23{
    +24  TermManager tm;
    +25  Solver slv(tm);
    +26  slv.setLogic("QF_UF");
    +27
    +28  // Sorts
    +29  Sort u = tm.mkUninterpretedSort("U");
    +30  Sort boolean = tm.getBooleanSort();
    +31  Sort uTou = tm.mkFunctionSort({u}, u);
    +32  Sort uPred = tm.mkFunctionSort({u}, boolean);
    +33
    +34  // Variables
    +35  Term x = tm.mkConst(u, "x");
    +36  Term y = tm.mkConst(u, "y");
    +37
    +38  // Functions
    +39  Term f = tm.mkConst(uTou, "f");
    +40  Term p = tm.mkConst(uPred, "p");
    +41
    +42  // Terms
    +43  Term f_x = tm.mkTerm(Kind::APPLY_UF, {f, x});
    +44  Term f_y = tm.mkTerm(Kind::APPLY_UF, {f, y});
    +45  Term p_f_x = tm.mkTerm(Kind::APPLY_UF, {p, f_x});
    +46  Term p_f_y = tm.mkTerm(Kind::APPLY_UF, {p, f_y});
    +47
    +48  // Construct the assertions
    +49  Term assertions =
    +50      tm.mkTerm(Kind::AND,
    +51                {
    +52                    tm.mkTerm(Kind::EQUAL, {x, f_x}),  
    +53                    tm.mkTerm(Kind::EQUAL, {y, f_y}),
    +54                    p_f_x.notTerm(),
    +55                    p_f_y
    +56                });
    +57  slv.assertFormula(assertions);
    +58
    +59  std::cout << slv.checkSat()  << std::endl;
    +60
    +61  return 0;
    +62}
    +
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/genindex.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/genindex.html new file mode 100644 index 0000000000..a5c6d2c694 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/genindex.html @@ -0,0 +1,11199 @@ + + + + + + + + + + + + Index — cvc5 documentation + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    +
      +
    • + +
    • +
    • +
    +
    +
    +
    +
    + + +

    Index

    + +
    + _ + | A + | B + | C + | D + | E + | F + | G + | H + | I + | K + | L + | M + | N + | O + | P + | Q + | R + | S + | T + | U + | V + | W + | X + | Z + +
    +

    _

    + + + +
    + +

    A

    + + + +
    + +

    B

    + + + +
    + +

    C

    + + + +
    + +

    D

    + + + +
    + +

    E

    + + + +
    + +

    F

    + + + +
    + +

    G

    + + + +
    + +

    H

    + + + +
    + +

    I

    + + + +
    + +

    K

    + + + +
    + +

    L

    + + + +
    + +

    M

    + + + +
    + +

    N

    + + + +
    + +

    O

    + + + +
    + +

    P

    + + + +
    + +

    Q

    + + + +
    + +

    R

    + + + +
    + +

    S

    + + + +
    + +

    T

    + + + +
    + +

    U

    + + + +
    + +

    V

    + + + +
    + +

    W

    + + +
    + +

    X

    + + + +
    + +

    Z

    + + +
    + + + +
    +
    +
    + +
    + +
    +

    © Copyright 2024, the authors of cvc5.

    +
    + + Built with Sphinx using a + theme + provided by Read the Docs. + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/index.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/index.html new file mode 100644 index 0000000000..b138cd9c13 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/index.html @@ -0,0 +1,153 @@ + + + + + + + + + + + + + cvc5 Documentation — cvc5 documentation + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    +
      +
    • + +
    • +
    • +
    +
    +
    +
    +
    + +
    +

    cvc5 Documentation

    +

    cvc5 is an open-source automatic theorem prover for Satisfiability Modulo +Theories (SMT) problems that supports a large number of theories and their +combination. +It is the successor of CVC4 and is +intended to be an open and extensible SMT engine.

    +

    This space provides all documentation related to using cvc5.

    +
    +

    Table of Contents

    + +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/installation/installation.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/installation/installation.html new file mode 100644 index 0000000000..275df92588 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/installation/installation.html @@ -0,0 +1,614 @@ + + + + + + + + + + + + + Installation — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    +
      +
    • + +
    • +
    • +
    +
    +
    +
    +
    + +
    +

    Installation

    +
    +

    Building cvc5

    +
    ./configure.sh
    +    # use --prefix to specify an install prefix (default: /usr/local)
    +    # use --name=<PATH> for custom build directory
    +    # use --auto-download to download and build missing, required or
    +    #   enabled, dependencies
    +cd <build_dir>   # default is ./build
    +make             # use -jN for parallel build with N threads
    +make check       # to run default set of tests
    +make install     # to install into the prefix specified above
    +
    +
    +

    All binaries are built into <build_dir>/bin, the cvc5 libraries are built into +<build_dir>/lib.

    +
    +
    +

    Supported Operating Systems

    +

    cvc5 can be built natively on Linux and macOS. Native compilation on Windows is also +possible using MSYS2. Additionally, cvc5 supports cross-compilation for x86_64 Windows +using Mingw-w64 and for ARM64 on both Linux and macOS. +We generally recommend a 64-bit operating system.

    +
    +

    Compilation on macOS

    +

    On macOS, we recommend using Homebrew to install the +dependencies. We also have a Homebrew Tap available at +https://github.com/cvc5/homebrew-cvc5. +Note that linking system libraries statically is +strongly discouraged +on macOS. Using ./configure.sh --static will thus produce a binary +that uses static versions of all our dependencies, but is still a dynamically +linked binary.

    +
    +
    +

    Compilation on Windows

    +

    Install MSYS2 and Python on your system. +Launch a MINGW64 environment and +install the required packages for building cvc5:

    +
    pacman -S git make mingw-w64-x86_64-cmake mingw-w64-x86_64-gcc mingw-w64-x86_64-gmp zip
    +
    +
    +

    Clone the cvc5 repository and follow the general build steps above. +The built binary cvc5.exe and the DLL libraries are located in +<build_dir>/bin. The import libraries and the static libraries +can be found in <build_dir>/lib.

    +
    +
    +

    Cross-compiling for Windows

    +

    Cross-compiling cvc5 for Windows requires the POSIX version of MinGW-w64. +On some Linux distributions, this is the default variant. On others, like Ubuntu, +you may need to set it manually as follows:

    +
    sudo update-alternatives --set x86_64-w64-mingw32-gcc /usr/bin/x86_64-w64-mingw32-gcc-posix
    +sudo update-alternatives --set x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix
    +
    +
    +

    Once the POSIX variant of MinGW-w64 is installed and set on your system, +you can cross-compile cvc5 as follows:

    +
    ./configure.sh --win64 --static <configure options...>
    +
    +cd <build_dir>   # default is ./build
    +make             # use -jN for parallel build with N threads
    +
    +
    +

    The built binary cvc5.exe and the DLL libraries are located in +<build_dir>/bin. The import libraries and the static libraries +can be found in <build_dir>/lib.

    +
    +
    +

    WebAssembly Compilation

    +

    Compiling cvc5 to WebAssembly needs the Emscripten SDK (version 3.1.18 or +latter). Setting up emsdk can be done as follows:

    +
    git clone https://github.com/emscripten-core/emsdk.git
    +cd emsdk
    +./emsdk install <version>   # <version> = '3.1.18' is preferable, but
    +                            # <version> = 'latest' has high chance of working
    +./emsdk activate <version>
    +source ./emsdk_env.sh   # Activate PATH and other environment variables in the
    +                        # current terminal. Whenever Emscripten is going to be
    +                        # used this command needs to be called before because
    +                        # emsdk doesn't insert the binaries paths directly in
    +                        # the system PATH variable.
    +
    +
    +

    Refer to the emscripten dependencies list +to ensure that all required dependencies are installed on the system.

    +

    Then, in the cvc5 directory:

    +
    ./configure.sh --static --static-binary --auto-download --wasm=<value> --wasm-flags='<emscripten flags>' <configure options...>
    +
    +cd <build_dir>   # default is ./build
    +make             # use -jN for parallel build with N threads
    +
    +
    +

    --wasm can take three values: WASM (will generate the wasm file for cvc5), JS +(not only the wasm, but the .js glue code for web integration) and HTML (both +the last two files and also an .html file which supports the run of the glue +code).

    +

    --wasm-flags take a string wrapped by a single quote containing the +emscripten flags, +which modifies how the wasm and glue code are built and how they behave. An -s +should precede each flag.

    +

    For example, to generate a HTML page, use:

    +
    ./configure.sh --static --static-binary --auto-download --wasm=HTML --name=prod
    +
    +cd prod
    +make            # use -jN for parallel build with N threads
    +
    +
    +

    After that, you can run python -m http.server within prod/bin, open http://0.0.0.0:8000/cvc5.html with Chrome to visualize the page generated by Emscripten, write down a valid SMTLIB input, and press ESC twice to obtain its output.

    +

    On the other hand, to generate a modularized glue code to be imported by custom web pages, use:

    +
    ./configure.sh --static --static-binary --auto-download --wasm=JS --wasm-flags='-s MODULARIZE' --name=prod
    +
    +cd prod
    +make            # use -jN for parallel build with N threads
    +
    +
    +
    +
    +
    +

    Build dependencies

    +

    cvc5 makes uses of a number of tools and libraries. Some of these are required +while others are only used with certain configuration options. If +--auto-download is given, cvc5 can automatically download and build most +libraries that are not already installed on your system. If your libraries are +installed in a non-standard location, you can use --dep-path to define an +additional search path for all dependencies. Versions given are minimum +versions; more recent versions should be compatible.

    + +

    If --auto-download is given, the Python modules will be installed automatically in +a virtual environment if they are missing. To install the modules globally and skip +the creation of the virtual environment, configure cvc5 with ./configure.sh --no-pyvenv.

    +
    +

    CaDiCaL (SAT solver)

    +

    CaDiCaL is a SAT solver that can be +used for the bit-vector solver. It can be downloaded and built automatically.

    +
    +
    +

    GMP (GNU Multi-Precision arithmetic library)

    +

    GMP is usually available on your distribution and should be used from there. If +it is not, or you want to cross-compile, or you want to build cvc5 statically +but the distribution does not ship static libraries, cvc5 builds GMP +automatically when --auto-download is given.

    +
    +
    +

    SymFPU (Support for the Theory of Floating Point Numbers)

    +

    SymFPU is an implementation +of SMT-LIB/IEEE-754 floating-point operations in terms of bit-vector operations. +It is required for supporting the theory of floating-point numbers and can be +downloaded and built automatically.

    +
    +
    +
    +

    Optional Dependencies

    +
    +

    CryptoMiniSat (Optional SAT solver)

    +

    CryptoMinisat is a SAT solver that +can be used for solving bit-vector problems with eager bit-blasting. This +dependency may improve performance. It can be downloaded and built +automatically. Configure cvc5 with configure.sh --cryptominisat to build +with this dependency.

    +
    +
    +

    Kissat (Optional SAT solver)

    +

    Kissat is a SAT solver that can be +used for solving bit-vector problems with eager bit-blasting. This dependency +may improve performance. It can be downloaded and built automatically. Configure +cvc5 with configure.sh --kissat to build with this dependency.

    +
    +
    +

    LibPoly >= v0.1.13 (Optional polynomial library)

    +

    LibPoly is required for CAD-based +nonlinear reasoning. It can be downloaded and built automatically. Configure +cvc5 with configure.sh --poly to build with this dependency.

    +
    +
    +

    CoCoA (Optional computer algebra library)

    +

    CoCoA is required for some non-linear +reasoning and for finite field reasoning. We use a patched version of it, so we +recommend downloading it using the --auto-download configuration flag, +which applies our patch automatically. It is included in the build through the +--cocoa --gpl configuration flag.

    +

    CoCoA is covered by the GPLv3 license. See below for the ramifications of this.

    +
    +
    +

    CLN >= v1.3 (Class Library for Numbers)

    +

    CLN is an alternative multiprecision arithmetic +package that may offer better performance and memory footprint than GMP. +Configure cvc5 with configure.sh --cln --gpl to build with this dependency.

    +

    Note that CLN is covered by the GNU General Public License, version 3. If you choose to use cvc5 with +CLN support, you are licensing cvc5 under that same license. (Usually cvc5’s +license is more permissive than GPL, see the file COPYING in the cvc5 source +distribution for details.)

    +
    +
    +

    glpk-cut-log (A fork of the GNU Linear Programming Kit)

    +

    glpk-cut-log is a fork of +GLPK (the GNU Linear Programming Kit). +This can be used to speed up certain classes of problems for the arithmetic +implementation in cvc5. (This is not recommended for most users.)

    +

    cvc5 is not compatible with the official version of the GLPK library. +To use the patched version of it, we recommend downloading it using +the --auto-download configuration flag, which applies +the patch automatically. +Configure cvc5 with configure.sh --glpk --gpl to build with this dependency.

    +

    Note that GLPK and glpk-cut-log are covered by the GNU General Public License, +version 3. If you choose to use +cvc5 with GLPK support, you are licensing cvc5 under that same license. (Usually +cvc5’s license is more permissive; see above discussion.)

    +
    +
    +

    Editline library (Improved Interactive Experience)

    +

    The Editline Library library is optionally +used to provide command editing, tab completion, and history functionality at +the cvc5 prompt (when running in interactive mode). Check your distribution for +a package named “libedit-dev” or “libedit-devel” or similar.

    +
    +
    +

    Google Test Unit Testing Framework (Unit Tests)

    +

    Google Test is required to optionally +run cvc5’s unit tests (included with the distribution). +See Testing cvc5 +below for more details.

    +
    +
    +
    +

    Language bindings

    +

    cvc5 provides a complete and flexible C++ API (see examples/api for +examples). It further provides Java (see examples/SimpleVC.java and +examples/api/java) and Python (see examples/api/python) API bindings.

    +

    Configure cvc5 with configure.sh --<lang>-bindings to build with language +bindings for <lang>.

    +
    +

    Dependencies for Language Bindings

    + +

    If --auto-download is given, the Python modules will be installed automatically in +a virtual environment if they are missing. To install the modules globally and skip +the creation of the virtual environment, configure cvc5 with ./configure.sh --no-pyvenv.

    +

    If configured with --pythonic-path=PATH, the build system will expect the Pythonic API’s source to be at PATH. +Otherwise, if configured with --auto-download, the build system will download it.

    +

    Installing the Python bindings after building from source requires a Python environment with +pip version 20.3 or higher.

    +

    If you’re interested in helping to develop, maintain, and test a language +binding, please contact the cvc5 team via our issue tracker.

    +
    +
    +
    +

    Building the API Documentation

    +

    Building the API documentation of cvc5 requires the following dependencies:

    + +

    To build the documentation, configure cvc5 with ./configure.sh --docs and +run make docs from within the build directory.

    +

    The API documentation can then be found at +<build_dir>/docs/sphinx/index.html.

    +

    To build the documentation for GitHub pages, change to the build directory and +call make docs-gh. The content of directory <build_dir>/docs/sphinx-gh +can then be copied over to GitHub pages.

    +
    +
    +

    Building the Examples

    +

    See examples/README.md for instructions on how to build and run the +examples.

    +
    +
    +

    Testing cvc5

    +

    We use ctest as test infrastructure. For all command-line options of ctest, +see ctest -h. Some useful options are:

    +
    ctest -R <regex>           # run all tests with names matching <regex>
    +ctest -E <regex>           # exclude tests with names matching <regex>
    +ctest -L <regex>           # run all tests with labels matching <regex>
    +ctest -LE <regex>          # exclude tests with labels matching <regex>
    +ctest                      # run all tests
    +ctest -jN                  # run all tests in parallel with N threads
    +ctest --output-on-failure  # run all tests and print output of failed tests
    +
    +
    +

    We have 4 categories of tests:

    +
      +
    • examples in directory examples (label: example)

    • +
    • regression tests (5 levels) in directory test/regress (label: +regressN with N the regression level)

    • +
    • api tests in directory test/api (label: api)

    • +
    • unit tests in directory test/unit (label: unit)

    • +
    +
    +

    Testing System Tests

    +

    The system tests are not built by default.

    +
    make apitests                         # build and run all system tests
    +make <api_test>                       # build test/system/<system_test>.<ext>
    +ctest api/<api_test>                  # run test/system/<system_test>.<ext>
    +
    +
    +

    All system test binaries are built into <build_dir>/bin/test/system.

    +

    We use prefix api/ + <api_test> (for <api_test> in test/api) +as test target name.

    +
    make ouroborous                       # build test/api/ouroborous.cpp
    +ctest -R ouroborous                   # run all tests that match '*ouroborous*'
    +                                      # > runs api/ouroborous
    +ctest -R ouroborous$                  # run all tests that match '*ouroborous'
    +                                      # > runs api/ouroborous
    +ctest -R api/ouroborous$              # run all tests that match '*api/ouroborous'
    +                                      # > runs api/ouroborous
    +
    +
    +
    +
    +

    Testing Unit Tests

    +

    The unit tests are not built by default.

    +

    Note that cvc5 can only be configured with unit tests in non-static builds with +assertions enabled.

    +
    make units                            # build and run all unit tests
    +make <unit_test>                      # build test/unit/<subdir>/<unit_test>.<ext>
    +ctest unit/<subdir>/<unit_test>       # run test/unit/<subdir>/<unit_test>.<ext>
    +
    +
    +

    All unit test binaries are built into <build_dir>/bin/test/unit.

    +

    We use prefix unit/ + <subdir>/ + <unit_test> (for <unit_test> +in test/unit/<subdir>) as test target name.

    +
    make map_util_black                   # build test/unit/base/map_util_black.cpp
    +ctest -R map_util_black               # run all tests that match '*map_util_black*'
    +                                      # > runs unit/base/map_util_black
    +ctest -R base/map_util_black$         # run all tests that match '*base/map_util_black'
    +                                      # > runs unit/base/map_util_black
    +ctest -R unit/base/map_util_black$    # run all tests that match '*unit/base/map_util_black'
    +                                      # > runs unit/base/map_util_black
    +
    +
    +
    +
    +

    Testing Regression Tests

    +

    We use prefix regressN/ + <subdir>/ + <regress_test> (for +<regress_test> in level N in test/regress/regressN/<subdir>) as test +target name.

    +
    ctest -L regress                      # run all regression tests
    +ctest -L regress0                     # run all regression tests in level 0
    +ctest -L regress[0-1]                 # run all regression tests in level 0 and 1
    +ctest -R regress                      # run all regression tests
    +ctest -R regress0                     # run all regression tests in level 0
    +ctest -R regress[0-1]                 # run all regression tests in level 0 and 1
    +ctest -R regress0/bug288b             # run all tests that match '*regress0/bug288b*'
    +                                      # > runs regress0/bug288b
    +
    +
    +
    +
    +

    Custom Targets

    +

    All custom test targets build and run a preconfigured set of tests.

    +
      +
    • make check [-jN] [ARGS=-jN] +The default build-and-test target for cvc5, builds and runs all examples, +all system and unit tests, and regression tests from levels 0 to 2.

    • +
    • make systemtests [-jN] [ARGS=-jN] +Build and run all system tests.

    • +
    • make units [-jN] [ARGS=-jN] +Build and run all unit tests.

    • +
    • make regress [-jN] [ARGS=-jN] +Build and run regression tests from levels 0 to 2.

    • +
    • make runexamples [-jN] [ARGS=-jN] +Build and run all examples.

    • +
    • make coverage-test [-jN] [ARGS=-jN] +Build and run all tests (system and unit tests, regression tests level 0-4) +with gcov to determine code coverage.

    • +
    +

    We use ctest as test infrastructure, and by default all test targets +are configured to run in parallel with the maximum number of threads +available on the system. Override with ARGS=-jN.

    +

    Use -jN for parallel building with N threads.

    +
    +
    +
    +

    Recompiling a specific cvc5 version with different LGPL library versions

    +

    To recompile a specific static binary of cvc5 with different versions of the +linked LGPL libraries perform the following steps:

    +
      +
    1. Make sure that you have installed the desired LGPL library versions. +You can check the versions found by cvc5’s build system during the configure +phase.

    2. +
    3. Determine the commit sha and configuration of the cvc5 binary

    4. +
    +
    cvc5 --show-config
    +
    +
    +
      +
    1. Download the specific source code version:

    2. +
    +
    wget https://github.com/cvc5/cvc5/archive/<commit-sha>.tar.gz
    +
    +
    +
      +
    1. Extract the source code

    2. +
    +
    tar xf <commit-sha>.tar.gz
    +
    +
    +
      +
    1. Change into source code directory

    2. +
    +
    cd cvc5-<commit-sha>
    +
    +
    +
      +
    1. Configure cvc5 with options listed by cvc5 --show-config

    2. +
    +
    ./configure.sh --static <options>
    +
    +
    +
      +
    1. Follow remaining steps from build instructions

    2. +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/options.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/options.html new file mode 100644 index 0000000000..5b9a7a3f66 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/options.html @@ -0,0 +1,3728 @@ + + + + + + + + + + + + + Options — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    +
      +
    • + +
    • +
    • +
    +
    +
    +
    +
    + +
    +

    Options

    +

    cvc5 can be configured at runtime using a wide range of options. +When cvc5 is used as a binary, options can be set on the command line. +Also, options can be set and inspected using the respective commands of the input language and the corresponding API functions:

    + +

    Generally, all options are identified by a name <name>, and (optionally) +by a short name <short> (a single letter). +Additionally, they can have one or more aliases, which can be used instead of +<name>.

    +

    Internally, options are strongly typed and must be either Boolean, (signed +or unsigned) integers, floating-point numbers, strings, or an enumeration type. +Values for options with a numeric type may be restricted to an interval.

    +

    Some options have custom types (e.g., err) which +require special treatment internally. +The usage of such options is documented as part of the documentation for the corresponding options.

    +

    On the command line, a Boolean option can be set to true via +--<name> or -<short>. +Most Boolean options can also be set to false via --no-<name>. +In cvc5’s APIs, this is done via setOption("<name>", "true" | "false").

    +

    For all other types, values are given on the command line using +--<name>=<value> or --<name> <value>, +and setOption("<name>", "<value>") in the APIs. +The given value must be convertible to the appropriate type, in particular for +numeric and enumeration types.

    +

    Below is an exhaustive list of options supported by cvc5.

    +
    +

    Most Commonly-Used cvc5 Options

    +
    +
    i | incremental [type bool, default true] (also --no-*)

    enable incremental solving

    +
    +
    +
    +
    L | lang | input-language [custom Language, default Language::LANG_AUTO]

    force input language (default is “auto”; see –lang help)

    +
    +
    +
    +
    o | output [none | inst | inst-strategy | oracles | sygus | sygus-grammar | sygus-enumerator | sygus-sol-gterm | trigger | raw-benchmark | learned-lits | subs | post-asserts | pre-asserts | deep-restart | incomplete | lemmas | trusted-proof-steps | timeout-core-benchmark | unsat-core-benchmark | unsat-core-lemmas-benchmark | unsat-core-lemmas | portfolio | block-model | options-auto | rare-db, default none]

    Enable output tag.

    +

    Output tags.

    +
    +
    inst:
    +

    print instantiations during solving

    +
    +
    inst-strategy:
    +

    prints a summary of the instantiation techniques as they are run.

    +
    +
    oracles:
    +

    print calls to oracles and responses received

    +
    +
    sygus:
    +

    print enumerated terms and candidates generated by the sygus solver

    +
    +
    sygus-grammar:
    +

    print grammars automatically generated by the sygus solver

    +
    +
    sygus-enumerator:
    +

    print enumerators generated by the sygus solver

    +
    +
    sygus-sol-gterm:
    +

    print annotations for terms in sygus solutions that indicate the grammar used to generate them

    +
    +
    trigger:
    +

    print selected triggers for quantified formulas

    +
    +
    raw-benchmark:
    +

    print the benchmark back on the output verbatim as it is processed

    +
    +
    learned-lits:
    +

    print input literals that hold globally

    +
    +
    subs:
    +

    print top-level substitutions learned during preprocessing

    +
    +
    post-asserts:
    +

    print a benchmark corresponding to the assertions of the input problem after preprocessing

    +
    +
    pre-asserts:
    +

    print a benchmark corresponding to the assertions of the input problem before preprocessing

    +
    +
    deep-restart:
    +

    print when cvc5 performs a deep restart along with the literals it has learned

    +
    +
    incomplete:
    +

    print reason why cvc5 answers unknown for any given check-sat query

    +
    +
    lemmas:
    +

    print lemmas as they are added to the SAT solver

    +
    +
    trusted-proof-steps:
    +

    print formulas corresponding to trusted proof steps in final proofs

    +
    +
    timeout-core-benchmark:
    +

    print the corresponding benchmark when successfully computing a timeout core.

    +
    +
    unsat-core-benchmark:
    +

    print the corresponding benchmark when successfully computing an unsat core.

    +
    +
    unsat-core-lemmas-benchmark:
    +

    print the corresponding benchmark when successfully computing an unsat core with theory lemmas.

    +
    +
    unsat-core-lemmas:
    +

    print diagnostic information on lemmas that appear in an unsat core with theory lemmas

    +
    +
    portfolio:
    +

    prints the option strings tried in portfolio mode.

    +
    +
    block-model:
    +

    prints the formulas used when block-model is run.

    +
    +
    options-auto:
    +

    prints the options set during automatic configuration.

    +
    +
    rare-db:
    +

    upon initialization, print the entire set of RARE rewrite rules as they are defined in the proof signature.

    +
    +
    +
    +
    +
    +
    parse-only [type bool, default false] (also --no-*)

    exit after parsing input

    +
    +
    +
    +
    preprocess-only [type bool, default false] (also --no-*)

    exit after preprocessing input

    +
    +
    +
    +
    q | quiet [type bool]

    decrease verbosity (may be repeated)

    +
    +
    +
    +
    rlimit [type uint64_t, default 0]

    set resource limit

    +
    +
    +
    +
    rlimit-per | reproducible-resource-limit [type uint64_t, default 0]

    set resource limit per query

    +
    +
    +
    +
    stats [type bool, default false] (also --no-*)

    give statistics on exit

    +
    +
    +
    +
    stats-all [type bool, default false] (also --no-*)

    print unchanged (defaulted) statistics as well

    +
    +
    +
    +
    stats-internal [type bool, default false] (also --no-*)

    print internal (non-public) statistics as well

    +
    +
    +
    +
    tlimit [type uint64_t, default 0]

    set time limit in milliseconds of wall clock time

    +
    +
    +
    +
    tlimit-per [type uint64_t, default 0]

    set time limit per query in milliseconds

    +
    +
    +
    +
    v | verbose [type bool]

    increase verbosity (may be repeated)

    +
    +
    +
    +
    verbosity [type int64_t, default 0]

    the verbosity level of cvc5

    +
    +
    + +
    +
    h | help [type bool, default false]

    full command line reference

    +
    +
    +
    +
    H | help-regular [type bool, default false]

    regular command line reference

    +
    +
    +
    +
    interactive [type bool, default false] (also --no-*)

    force interactive shell/non-interactive mode

    +
    +
    +
    +
    print-success [type bool, default false] (also --no-*)

    print the “success” output required of SMT-LIBv2

    +
    +
    +
    +
    s | seed | random-seed [type uint64_t, default 0]

    seed for random number generator

    +
    +
    +
    +
    show-config [type bool, default false]

    show cvc5 static configuration

    +
    +
    +
    +
    V | version [type bool, default false]

    identify this cvc5 binary

    +
    +
    +
    +
    force-logic [type string, default ""]

    set the logic, and override all further user attempts to change it

    +
    +
    +
    +
    strict-parsing [type bool, default false] (also --no-*)

    be less tolerant of non-conforming inputs, this is an alias for –parsing-mode=strict

    +
    +
    +
    +
    dag-thresh [type int64_t, 0 <= N, default 1]

    dagify common subexprs appearing > N times (1 == default, 0 == don’t dagify)

    +
    +
    +
    +
    expr-depth [type int64_t, -1 <= N, default -1]

    print exprs to depth N (0 == default, -1 == no limit)

    +
    +
    +
    +
    output-lang | output-language [custom Language, default Language::LANG_AUTO]

    force output language (default is “auto”; see –output-lang help)

    +
    +
    +
    +
    proof-granularity [macro | rewrite | theory-rewrite | dsl-rewrite | dsl-rewrite-strict, default macro]

    modes for proof granularity

    +

    Modes for proof granularity.

    +
    +
    macro:
    +

    Allow macros. Do not improve the granularity of proofs.

    +
    +
    rewrite:
    +

    Allow trusted rewrite or substitution steps, expand macros.

    +
    +
    theory-rewrite:
    +

    Allow trusted theory rewrite steps, expand macros, rewrite and substitution steps.

    +
    +
    dsl-rewrite:
    +

    Allow theory and DSL rewrite steps, expand macros, rewrite, substitution, and theory rewrite steps.

    +
    +
    dsl-rewrite-strict:
    +

    Allow theory and DSL rewrite steps giving preference to DSL rewrite steps.

    +
    +
    +
    +
    +
    +
    print-inst [list | num, default list]

    print format for printing instantiations

    +

    Print format for printing instantiations.

    +
    +
    list:
    +

    Print the list of instantiations per quantified formula, when non-empty.

    +
    +
    num:
    +

    Print the total number of instantiations per quantified formula, when non-zero.

    +
    +
    +
    +
    +
    +
    check-models [type bool, default false] (also --no-*)

    after SAT/INVALID/UNKNOWN, check that the generated model satisfies user assertions

    +
    +
    +
    +
    check-proofs [type bool, default false] (also --no-*)

    after UNSAT/VALID, check the generated proof (with proof)

    +
    +
    +
    +
    m | produce-models [type bool, default false] (also --no-*)

    support the get-value and get-model commands

    +
    +
    +
    +
    produce-proofs [type bool, default false] (also --no-*)

    produce proofs, support check-proofs and get-proof

    +
    +
    +
    +
    condense-function-values [type bool, default true] (also --no-*)

    condense values for functions in models rather than explicitly representing them

    +
    +
    +
    +
    default-function-value-mode [first | first-enum | hole, default first]

    mode for choosing default values for functions

    +

    Defines mode for choosing default values for functions.

    +
    +
    first:
    +

    The default value is equal to the value of the first application found of that function when applicable, or the first enumerated term otherwise.

    +
    +
    first-enum:
    +

    The default value is equal to the first enumerated value of its range type.

    +
    +
    hole:
    +

    The default value is equal to a distinguished variable.

    +
    +
    +
    +
    +
    +
    +

    Additional cvc5 Options

    +
    +

    Arithmetic Theory Module

    +
    +
    approx-branch-depth [type int64_t, default 200]

    [experts only]

    +

    maximum branch depth the approximate solver is allowed to take

    +
    +
    +
    +
    arith-brab [type bool, default true] (also --no-*)

    whether to use simple rounding, similar to a unit-cube test, for integers

    +
    +
    +
    +
    arith-eq-solver [type bool, default false] (also --no-*)

    [experts only]

    +

    whether to use the equality solver in the theory of arithmetic

    +
    +
    +
    +
    arith-exp [type bool, default true] (also --no-*)

    [experts only]

    +

    enables non-standard extensions of the arithmetic solver

    +
    +
    +
    +
    arith-prop [none | unate | bi | both, default both]

    [experts only]

    +

    turns on arithmetic propagation (default is ‘old’, see –arith-prop=help)

    +

    This decides on kind of propagation arithmetic attempts to do during the search.

    +
    +
    unate:
    +

    Use constraints to do unate propagation.

    +
    +
    bi:
    +

    (Bounds Inference) infers bounds on basic variables using the upper and lower bounds of the non-basic variables in the tableau.

    +
    +
    both:
    +

    Use bounds inference and unate.

    +
    +
    +
    +
    +
    +
    arith-prop-clauses [type uint64_t, default 8]

    [experts only]

    +

    rows shorter than this are propagated as clauses

    +
    +
    +
    +
    arith-rewrite-equalities [type bool, default false] (also --no-*)

    turns on the preprocessing rewrite turning equalities into a conjunction of inequalities

    +
    +
    +
    +
    arith-static-learning [type bool, default true] (also --no-*)

    do arithmetic static learning for ite terms based on bounds when static learning is enabled

    +
    +
    +
    +
    collect-pivot-stats [type bool, default false] (also --no-*)

    [experts only]

    +

    collect the pivot history

    +
    +
    +
    +
    cut-all-bounded [type bool, default false] (also --no-*)

    [experts only]

    +

    turns on the integer solving step of periodically cutting all integer variables that have both upper and lower bounds

    +
    +
    +
    +
    dio-decomps [type bool, default false] (also --no-*)

    [experts only]

    +

    let skolem variables for integer divisibility constraints leak from the dio solver

    +
    +
    +
    +
    dio-solver [type bool, default true] (also --no-*)

    [experts only]

    +

    turns on Linear Diophantine Equation solver (Griggio, JSAT 2012)

    +
    +
    +
    +
    dio-turns [type int64_t, default 10]

    [experts only]

    +

    turns in a row dio solver cutting gets

    +
    +
    +
    +
    error-selection-rule [min | varord | max | sum, default min]

    [experts only]

    +

    change the pivot rule for the basic variable (default is ‘min’, see –pivot-rule help)

    +

    This decides on the rule used by simplex during heuristic rounds for deciding the next basic variable to select.

    +
    +
    min:
    +

    The minimum abs() value of the variable’s violation of its bound.

    +
    +
    varord:
    +

    The variable order.

    +
    +
    max:
    +

    The maximum violation the bound.

    +
    +
    +
    +
    +
    +
    fc-penalties [type bool, default false] (also --no-*)

    [experts only]

    +

    turns on degenerate pivot penalties

    +
    +
    +
    +
    heuristic-pivots [type int64_t, default 0]

    [experts only]

    +

    the number of times to apply the heuristic pivot rule; if N < 0, this defaults to the number of variables; if this is unset, this is tuned by the logic selection

    +
    +
    +
    +
    lemmas-on-replay-failure [type bool, default false] (also --no-*)

    [experts only]

    +

    attempt to use external lemmas if approximate solve integer failed

    +
    +
    +
    +
    maxCutsInContext [type uint64_t, default 65535]

    [experts only]

    +

    maximum cuts in a given context before signalling a restart

    +
    +
    +
    +
    miplib-trick [type bool, default false] (also --no-*)

    [experts only]

    +

    turns on the preprocessing step of attempting to infer bounds on miplib problems

    +
    +
    +
    +
    miplib-trick-subs [type uint64_t, default 1]

    [experts only]

    +

    do substitution for miplib ‘tmp’ vars if defined in <= N eliminated vars

    +
    +
    +
    +
    new-prop [type bool, default true] (also --no-*)

    [experts only]

    +

    use the new row propagation system

    +
    +
    +
    +
    nl-cov [type bool, default true] (also --no-*)

    whether to use the cylindrical algebraic coverings solver for non-linear arithmetic

    +
    +
    +
    +
    nl-cov-force [type bool, default false] (also --no-*)

    [experts only]

    +

    forces using the cylindrical algebraic coverings solver, even in cases where it is possibly not safe to do so

    +
    +
    +
    +
    nl-cov-lift [regular | lazard, default regular]

    [experts only]

    +

    choose the Coverings lifting mode

    +

    Modes for the Coverings lifting in non-linear arithmetic.

    +
    +
    regular:
    +

    Regular lifting.

    +
    +
    lazard:
    +

    Lazard’s lifting scheme.

    +
    +
    +
    +
    +
    +
    nl-cov-linear-model [none | initial | persistent, default none]

    whether to use the linear model as initial guess for the cylindrical algebraic coverings solver

    +

    Modes for the usage of the linear model in non-linear arithmetic.

    +
    +
    none:
    +

    Do not use linear model to seed nonlinear model

    +
    +
    initial:
    +

    Use linear model to seed nonlinear model initially, discard it when it does not work

    +
    +
    persistent:
    +

    Use linear model to seed nonlinear model whenever possible

    +
    +
    +
    +
    +
    +
    nl-cov-proj [mccallum | lazard | lazard-mod, default mccallum]

    [experts only]

    +

    choose the Coverings projection operator

    +

    Modes for the Coverings projection operator in non-linear arithmetic.

    +
    +
    mccallum:
    +

    McCallum’s projection operator.

    +
    +
    lazard:
    +

    Lazard’s projection operator.

    +
    +
    lazard-mod:
    +

    A modification of Lazard’s projection operator.

    +
    +
    +
    +
    +
    +
    nl-cov-prune [type bool, default false] (also --no-*)

    [experts only]

    +

    whether to prune intervals more aggressively

    +
    +
    +
    +
    nl-cov-var-elim [type bool, default true] (also --no-*)

    [experts only]

    +

    whether to eliminate variables using equalities before going into the cylindrical algebraic coverings solver. It can not be used when producing proofs right now.

    +
    +
    +
    +
    nl-ext [none | light | full, default full]

    incremental linearization approach to non-linear

    +

    Modes for the non-linear linearization

    +
    +
    none:
    +

    Disable linearization approach

    +
    +
    light:
    +

    Only use a few light-weight lemma schemes

    +
    +
    full:
    +

    Use all lemma schemes

    +
    +
    +
    +
    +
    +
    nl-ext-ent-conf [type bool, default false] (also --no-*)

    [experts only]

    +

    check for entailed conflicts in non-linear solver

    +
    +
    +
    +
    nl-ext-factor [type bool, default true] (also --no-*)

    use factoring inference in non-linear incremental linearization solver

    +
    +
    +
    +
    nl-ext-inc-prec [type bool, default true] (also --no-*)

    [experts only]

    +

    whether to increment the precision for irrational function constraints

    +
    +
    +
    +
    nl-ext-purify [type bool, default false] (also --no-*)

    [experts only]

    +

    purify non-linear terms at preprocess

    +
    +
    +
    +
    nl-ext-rbound [type bool, default false] (also --no-*)

    [experts only]

    +

    use resolution-style inference for inferring new bounds in non-linear incremental linearization solver

    +
    +
    +
    +
    nl-ext-rewrite [type bool, default true] (also --no-*)

    do context-dependent simplification based on rewrites in non-linear solver

    +
    +
    +
    +
    nl-ext-split-zero [type bool, default false] (also --no-*)

    [experts only]

    +

    initial splits on zero for all variables

    +
    +
    +
    +
    nl-ext-tf-taylor-deg [type int64_t, default 4]

    [experts only]

    +

    initial degree of polynomials for Taylor approximation

    +
    +
    +
    +
    nl-ext-tf-tplanes [type bool, default true] (also --no-*)

    use non-terminating tangent plane strategy for transcendental functions for non-linear incremental linearization solver

    +
    +
    +
    +
    nl-ext-tplanes [type bool, default true] (also --no-*)

    use non-terminating tangent plane strategy for non-linear incremental linearization solver

    +
    +
    +
    +
    nl-ext-tplanes-interleave [type bool, default false] (also --no-*)

    interleave tangent plane strategy for non-linear incremental linearization solver

    +
    +
    +
    +
    nl-icp [type bool, default false] (also --no-*)

    [experts only]

    +

    whether to use ICP-style propagations for non-linear arithmetic

    +
    +
    +
    +
    nl-rlv [none | interleave | always, default none]

    [experts only]

    +

    choose mode for using relevance of assertions in non-linear arithmetic

    +

    Modes for using relevance of assertions in non-linear arithmetic.

    +
    +
    none:
    +

    Do not use relevance.

    +
    +
    interleave:
    +

    Alternate rounds using relevance.

    +
    +
    always:
    +

    Always use relevance.

    +
    +
    +
    +
    +
    +
    nl-rlv-assert-bounds [type bool, default false] (also --no-*)

    [experts only]

    +

    use bound inference utility to prune when an assertion is entailed by another

    +
    +
    +
    +
    pb-rewrites [type bool, default false] (also --no-*)

    [experts only]

    +

    apply pseudo boolean rewrites

    +
    +
    +
    +
    pivot-threshold [type uint64_t, default 2]

    [experts only]

    +

    sets the number of pivots using –pivot-rule per basic variable per simplex instance before using variable order

    +
    +
    +
    +
    pp-assert-max-sub-size [type uint64_t, default 2]

    [experts only]

    +

    threshold for substituting an equality in ppAssert

    +
    +
    +
    +
    prop-row-length [type uint64_t, default 16]

    [experts only]

    +

    sets the maximum row length to be used in propagation

    +
    +
    +
    +
    replay-early-close-depth [type int64_t, default 1]

    [experts only]

    +

    multiples of the depths to try to close the approx log eagerly

    +
    +
    +
    +
    replay-lemma-reject-cut [type uint64_t, default 25500]

    [experts only]

    +

    maximum complexity of any coefficient while outputting replaying cut lemmas

    +
    +
    +
    +
    replay-num-err-penalty [type int64_t, default 4194304]

    [experts only]

    +

    number of solve integer attempts to skips after a numeric failure

    +
    +
    +
    +
    replay-reject-cut [type uint64_t, default 25500]

    [experts only]

    +

    maximum complexity of any coefficient while replaying cuts

    +
    +
    +
    +
    restrict-pivots [type bool, default true] (also --no-*)

    [experts only]

    +

    have a pivot cap for simplex at effort levels below fullEffort

    +
    +
    +
    +
    revert-arith-models-on-unsat [type bool, default false] (also --no-*)

    [experts only]

    +

    revert the arithmetic model to a known safe model on unsat if one is cached

    +
    +
    +
    +
    rr-turns [type int64_t, default 3]

    [experts only]

    +

    round robin turn

    +
    +
    +
    +
    se-solve-int [type bool, default false] (also --no-*)

    [experts only]

    +

    attempt to use the approximate solve integer method on standard effort

    +
    +
    +
    +
    simplex-check-period [type uint64_t, default 200]

    [experts only]

    +

    the number of pivots to do in simplex before rechecking for a conflict on all variables

    +
    +
    +
    +
    soi-qe [type bool, default false] (also --no-*)

    [experts only]

    +

    use quick explain to minimize the sum of infeasibility conflicts

    +
    +
    +
    +
    standard-effort-variable-order-pivots [type int64_t, default -1]

    [experts only]

    +

    limits the number of pivots in a single invocation of check() at a non-full effort level using Bland’s pivot rule

    +
    +
    +
    +
    unate-lemmas [all | eqs | ineqs | none, default all]

    [experts only]

    +

    determines which lemmas to add before solving (default is ‘all’, see –unate-lemmas=help)

    +

    Unate lemmas are generated before SAT search begins using the relationship of constant terms and polynomials.

    +
    +
    all:
    +

    A combination of inequalities and equalities.

    +
    +
    eqs:
    +

    Outputs lemmas of the general forms (= p c) implies (<= p d) for c < d, or (= p c) implies (not (= p d)) for c != d.

    +
    +
    ineqs:
    +

    Outputs lemmas of the general form (<= p c) implies (<= p d) for c < d.

    +
    +
    none:
    +

    Do not add unate lemmas.

    +
    +
    +
    +
    +
    +
    use-approx [type bool, default false] (also --no-*)

    [experts only]

    +

    attempt to use an approximate solver

    +
    +
    +
    +
    use-fcsimplex [type bool, default false] (also --no-*)

    [experts only]

    +

    use focusing and converging simplex (FMCAD 2013 submission)

    +
    +
    +
    +
    use-soi [type bool, default false] (also --no-*)

    [experts only]

    +

    use sum of infeasibility simplex (FMCAD 2013 submission)

    +
    +
    +
    +
    +

    Arrays Theory Module

    +
    +
    arrays-eager-index [type bool, default true] (also --no-*)

    turn on eager index splitting for generated array lemmas

    +
    +
    +
    +
    arrays-eager-lemmas [type bool, default false] (also --no-*)

    [experts only]

    +

    turn on eager lemma generation for arrays

    +
    +
    +
    +
    arrays-exp [type bool, default false] (also --no-*)

    [experts only]

    +

    enable experimental features in the theory of arrays

    +
    +
    +
    +
    arrays-optimize-linear [type bool, default true] (also --no-*)

    [experts only]

    +

    turn on optimization for linear array terms (see de Moura FMCAD 09 arrays paper)

    +
    +
    +
    +
    arrays-prop [type int64_t, default 2]

    [experts only]

    +

    propagation effort for arrays: 0 is none, 1 is some, 2 is full

    +
    +
    +
    +
    arrays-reduce-sharing [type bool, default false] (also --no-*)

    [experts only]

    +

    use model information to reduce size of care graph for arrays

    +
    +
    +
    +
    arrays-weak-equiv [type bool, default false] (also --no-*)

    [experts only]

    +

    use algorithm from Christ/Hoenicke (SMT 2014)

    +
    +
    +
    +
    +

    Bags Theory Module

    +
    +
    bags [type bool, default true] (also --no-*)

    [experts only]

    +

    enables the bags solver in applicable logics

    +
    +
    +
    +
    +

    Base Module

    +
    +
    err | diagnostic-output-channel [custom ManagedErr, default {}]

    [experts only]

    +

    Set the error (or diagnostic) output channel. Writes to stderr for “stderr” or “–”, stdout for “stdout” or the given filename otherwise.

    +
    +
    +
    +
    in [custom ManagedIn, default {}]

    [experts only]

    +

    Set the error (or diagnostic) output channel. Reads from stdin for “stdin” or “–” and the given filename otherwise.

    +
    +
    +
    +
    out | regular-output-channel [custom ManagedOut, default {}]

    [experts only]

    +

    Set the error (or diagnostic) output channel. Writes to stdout for “stdout” or “–”, stderr for “stderr” or the given filename otherwise.

    +
    +
    +
    +
    plugin-notify-sat-clause-in-solve [type bool, default true] (also --no-*)

    [experts only]

    +

    only inform plugins of SAT clauses when we are in the main solving loop of the SAT solver

    +
    +
    +
    +
    plugin-share-skolems [type bool, default true] (also --no-*)

    [experts only]

    +

    true if we permit sharing theory lemmas and SAT clauses with skolems

    +
    +
    +
    +
    rweight [type string]

    [experts only]

    +

    set a single resource weight

    +
    +
    +
    +
    safe-options [type bool, default false] (also --no-*)

    [experts only]

    +

    do not allow setting any option that is not common or regular

    +
    +
    +
    +
    stats-every-query [type bool, default false] (also --no-*)

    in incremental mode, print stats after every satisfiability or validity query

    +
    +
    +
    +
    t | trace [type string]

    trace something (e.g. -t pushpop), can repeat and may contain wildcards like (e.g. -t theory::*)

    +
    +
    +
    +
    +

    Bitvector Theory Module

    +
    +
    bitblast [lazy | eager, default lazy]

    choose bitblasting mode, see –bitblast=help

    +

    Bit-blasting modes.

    +
    +
    lazy:
    +

    Separate Boolean structure and term reasoning between the core SAT solver and the bit-vector SAT solver.

    +
    +
    eager:
    +

    Bitblast eagerly to bit-vector SAT solver.

    +
    +
    +
    +
    +
    +
    bitwise-eq [type bool, default true] (also --no-*)

    lift equivalence with one-bit bit-vectors to be boolean operations

    +
    +
    +
    +
    bool-to-bv [off | ite | all, default off]

    convert booleans to bit-vectors of size 1 at various levels of aggressiveness, see –bool-to-bv=help

    +

    BoolToBV preprocessing pass modes.

    +
    +
    off:
    +

    Don’t push any booleans to width one bit-vectors.

    +
    +
    ite:
    +

    Try to turn ITEs into BITVECTOR_ITE when possible. It can fail per-formula if not all sub-formulas can be turned to bit-vectors.

    +
    +
    all:
    +

    Force all booleans to be bit-vectors of width one except at the top level. Most aggressive mode.

    +
    +
    +
    +
    +
    +
    bv-assert-input [type bool, default false] (also --no-*)

    [experts only]

    +

    assert input assertions on user-level 0 instead of assuming them in the bit-vector SAT solver

    +
    +
    +
    +
    bv-eager-eval [type bool, default false] (also --no-*)

    perform eager context-dependent evaluation for applications of bv kinds in the equality engine

    +
    +
    +
    +
    bv-eq-engine [type bool, default true] (also --no-*)

    [experts only]

    +

    enable equality engine when possible in bitvector theory

    +
    +
    +
    +
    bv-gauss-elim [type bool, default false] (also --no-*)

    [experts only]

    +

    simplify formula via Gaussian Elimination if applicable

    +
    +
    +
    +
    bv-intro-pow2 [type bool, default false] (also --no-*)

    [experts only]

    +

    introduce bitvector powers of two as a preprocessing pass

    +
    +
    +
    +
    bv-propagate [type bool, default true] (also --no-*)

    [experts only]

    +

    use bit-vector propagation in the bit-blaster

    +
    +
    +
    +
    bv-rw-extend-eq [type bool, default false] (also --no-*)

    [experts only]

    +

    enable additional rewrites over zero/sign extend over equalities with constants (useful on BV/2017-Preiner-scholl-smt08)

    +
    +
    +
    +
    bv-sat-solver [minisat | cryptominisat | cadical | kissat, default cadical]

    choose which sat solver to use, see –bv-sat-solver=help

    +

    SAT solver for bit-blasting backend.

    +
    +
    +
    +
    bv-solver [bitblast | bitblast-internal, default bitblast]

    choose bit-vector solver, see –bv-solver=help

    +

    Bit-vector solvers.

    +
    +
    bitblast:
    +

    Enables bitblasting solver.

    +
    +
    bitblast-internal:
    +

    Enables bitblasting to internal SAT solver with proof support.

    +
    +
    +
    +
    +
    +
    bv-to-bool [type bool, default false] (also --no-*)

    lift bit-vectors of size 1 to booleans when possible

    +
    +
    +
    +
    +

    Datatypes Theory Module

    +
    +
    cdt-bisimilar [type bool, default true] (also --no-*)

    [experts only]

    +

    do bisimilarity check for co-datatypes

    +
    +
    +
    +
    datatypes-exp [type bool, default true] (also --no-*)

    [experts only]

    +

    enables reasoning about codatatypes

    +
    +
    +
    +
    dt-binary-split [type bool, default false] (also --no-*)

    [experts only]

    +

    do binary splits for datatype constructor types

    +
    +
    +
    +
    dt-blast-splits [type bool, default false] (also --no-*)

    [experts only]

    +

    when applicable, blast splitting lemmas for all variables at once

    +
    +
    +
    +
    dt-cyclic [type bool, default true] (also --no-*)

    [experts only]

    +

    do cyclicity check for datatypes

    +
    +
    +
    +
    dt-infer-as-lemmas [type bool, default false] (also --no-*)

    [experts only]

    +

    always send lemmas out instead of making internal inferences

    +
    +
    +
    +
    dt-nested-rec [type bool, default false] (also --no-*)

    [experts only]

    +

    allow nested recursion in datatype definitions

    +
    +
    +
    +
    dt-polite-optimize [type bool, default true] (also --no-*)

    [experts only]

    +

    turn on optimization for polite combination

    +
    +
    +
    +
    dt-share-sel [type bool, default true] (also --no-*)

    internally use shared selectors across multiple constructors

    +
    +
    +
    +
    sygus-abort-size [type int64_t, default -1]

    tells enumerative sygus to only consider solutions up to term size N (-1 == no limit, default)

    +
    +
    +
    +
    sygus-fair [direct | dt-size | dt-height-bound | dt-size-bound | none, default dt-size]

    if and how to apply fairness for sygus

    +

    Modes for enforcing fairness for counterexample guided quantifier instantion.

    +
    +
    direct:
    +

    Enforce fairness using direct conflict lemmas.

    +
    +
    dt-size:
    +

    Enforce fairness using size operator.

    +
    +
    dt-height-bound:
    +

    Enforce fairness by height bound predicate.

    +
    +
    dt-size-bound:
    +

    Enforce fairness by size bound predicate.

    +
    +
    none:
    +

    Do not enforce fairness.

    +
    +
    +
    +
    +
    +
    sygus-fair-max [type bool, default true] (also --no-*)

    [experts only]

    +

    use max instead of sum for multi-function sygus conjectures

    +
    +
    +
    +
    sygus-rewriter [none | basic | extended, default extended]

    if and how to apply rewriting for sygus symmetry breaking

    +

    Modes for applying rewriting for sygus symmetry breaking.

    +
    +
    none:
    +

    Do not use the rewriter.

    +
    +
    basic:
    +

    Use the basic rewriter.

    +
    +
    extended:
    +

    Use the extended rewriter.

    +
    +
    +
    +
    +
    +
    sygus-simple-sym-break [none | basic | agg, default agg]

    if and how to apply simple symmetry breaking based on the grammar for smart enumeration

    +

    Modes for applying simple symmetry breaking based on the grammar for smart enumeration.

    +
    +
    none:
    +

    Do not apply simple symmetry breaking.

    +
    +
    basic:
    +

    Apply basic simple symmetry breaking.

    +
    +
    agg:
    +

    Apply aggressive simple symmetry breaking.

    +
    +
    +
    +
    +
    +
    sygus-sym-break-lazy [type bool, default true] (also --no-*)

    [experts only]

    +

    lazily add symmetry breaking lemmas for terms

    +
    +
    +
    +
    sygus-sym-break-pbe [type bool, default true] (also --no-*)

    sygus symmetry breaking lemmas based on pbe conjectures

    +
    +
    +
    +
    sygus-sym-break-rlv [type bool, default true] (also --no-*)

    [experts only]

    +

    add relevancy conditions to symmetry breaking lemmas

    +
    +
    +
    +
    +

    Decision Heuristics Module

    +
    +
    decision | decision-mode [internal | justification | stoponly, default internal]

    choose decision mode, see –decision=help

    +

    Decision modes.

    +
    +
    internal:
    +

    Use the internal decision heuristics of the SAT solver.

    +
    +
    justification:
    +

    An ATGP-inspired justification heuristic.

    +
    +
    stoponly:
    +

    Use the justification heuristic only to stop early, not for decisions.

    +
    +
    +
    +
    +
    +
    jh-rlv-order [type bool, default false] (also --no-*)

    [experts only]

    +

    maintain activity-based ordering for decision justification heuristic

    +
    +
    +
    +
    jh-skolem [first | last, default first]

    [experts only]

    +

    policy for when to satisfy skolem definitions in justification heuristic

    +

    Policy for when to satisfy skolem definitions in justification heuristic

    +
    +
    first:
    +

    satisfy pending relevant skolem definitions before input assertions

    +
    +
    last:
    +

    satisfy pending relevant skolem definitions after input assertions

    +
    +
    +
    +
    +
    +
    jh-skolem-rlv [assert | always, default assert]

    [experts only]

    +

    policy for when to consider skolem definitions relevant in justification heuristic

    +

    Policy for when to consider skolem definitions relevant in justification heuristic

    +
    +
    assert:
    +

    skolems are relevant when they occur in an asserted literal

    +
    +
    always:
    +

    skolems are always relevant

    +
    +
    +
    +
    +
    +
    +

    Expression Module

    +
    +
    type-checking [type bool, default DO_SEMANTIC_CHECKS_BY_DEFAULT] (also --no-*)

    [experts only]

    +

    type check expressions

    +
    +
    +
    +
    wf-checking [type bool, default true] (also --no-*)

    [experts only]

    +

    check that terms passed to API methods are well formed (default false for text interface)

    +
    +
    +
    +
    +

    Finite Field Theory Module

    +
    +
    ff [type bool, default true] (also --no-*)

    [experts only]

    +

    enables the finite field solver in applicable logics

    +
    +
    +
    +
    ff-bitsum [type bool, default false] (also --no-*)

    [experts only]

    +

    parse bitsums

    +
    +
    +
    +
    ff-elim-disjunctive-bit [type bool, default true] (also --no-*)

    [experts only]

    +

    rewrite disjunctive bit constraints (or (= x 1) (= x 0)) as (= (* x x) x)

    +
    +
    +
    +
    ff-field-polys [type bool, default false] (also --no-*)

    [experts only]

    +

    include field polynomials in Groebner basis computation; don’t do this

    +
    +
    +
    +
    ff-solver [gb | split, default gb]

    [experts only]

    +

    which field solver (default: ‘gb’; see –ff-solver=help)

    +

    Which field solver

    +
    +
    gb:
    +

    use a groebner basis for the whole system

    +
    +
    split:
    +

    use multiple groebner bases for partitions of the system

    +
    +
    +
    +
    +
    +
    ff-trace-gb [type bool, default true] (also --no-*)

    [experts only]

    +

    use a traced groebner basis engine

    +
    +
    +
    +
    +

    Floating-Point Module

    +
    +
    fp [type bool, default true] (also --no-*)

    [experts only]

    +

    enables the floating point theory in applicable logics

    +
    +
    +
    +
    fp-exp [type bool, default false] (also --no-*)

    [experts only]

    +

    Allow floating-point sorts of all sizes, rather than only Float32 (8/24) or Float64 (11/53) (experimental)

    +
    +
    +
    +
    fp-lazy-wb [type bool, default false] (also --no-*)

    [experts only]

    +

    Enable lazier word-blasting (on preNotifyFact instead of registerTerm)

    +
    +
    +
    +
    +

    Driver Module

    +
    +
    dump-difficulty [type bool, default false] (also --no-*)

    dump the difficulty measure after every response to check-sat

    +
    +
    +
    +
    dump-instantiations [type bool, default false] (also --no-*)

    output instantiations of quantified formulas after every UNSAT/VALID response

    +
    +
    +
    +
    dump-instantiations-debug [type bool, default false] (also --no-*)

    [experts only]

    +

    output instantiations of quantified formulas after every UNSAT/VALID response, with debug information

    +
    +
    +
    +
    dump-models [type bool, default false] (also --no-*)

    output models after every SAT/INVALID/UNKNOWN response

    +
    +
    +
    +
    dump-proofs [type bool, default false] (also --no-*)

    output proofs after every UNSAT/VALID response

    +
    +
    +
    +
    dump-unsat-cores [type bool, default false] (also --no-*)

    output unsat cores after every UNSAT/VALID response

    +
    +
    +
    +
    dump-unsat-cores-lemmas [type bool, default false] (also --no-*)

    output lemmas in unsat cores after every UNSAT/VALID response

    +
    +
    +
    +
    early-exit [type bool, default true] (also --no-*)

    [experts only]

    +

    do not run destructors at exit; default on except in debug builds

    +
    +
    +
    +
    force-no-limit-cpu-while-dump [type bool, default false] (also --no-*)

    [experts only]

    +

    Force no CPU limit when dumping models and proofs

    +
    +
    +
    +
    portfolio-jobs [type uint64_t, default 1]

    [experts only]

    +

    Number of parallel jobs the portfolio engine can run

    +
    +
    +
    +
    segv-spin [type bool, default false] (also --no-*)

    [experts only]

    +

    spin on segfault/other crash waiting for gdb

    +
    +
    +
    +
    show-trace-tags [type bool, default false]

    [experts only]

    +

    show all available tags for tracing

    +
    +
    +
    +
    use-portfolio [type bool, default false] (also --no-*)

    [experts only]

    +

    Use internal portfolio mode based on the logic

    +
    +
    +
    +
    +

    Parallel Module

    +
    +
    append-learned-literals-to-cubes [type bool, default false] (also --no-*)

    [experts only]

    +

    emit learned literals with the cubes

    +
    +
    +
    +
    checks-before-partition [type uint64_t, default 1]

    [experts only]

    +

    number of standard or full effort checks until partitioning

    +
    +
    +
    +
    checks-between-partitions [type uint64_t, default 1]

    [experts only]

    +

    number of checks between partitions

    +
    +
    +
    +
    compute-partitions [type uint64_t, default 0]

    [experts only]

    +

    make n partitions. n <2 disables computing partitions entirely

    +
    +
    +
    +
    partition-check | check [standard | full, default standard]

    [experts only]

    +

    select whether partitioning happens at full or standard check

    +

    Partition check modes.

    +
    +
    standard:
    +

    create partitions at standard checks

    +
    +
    full:
    +

    create partitions at full checks

    +
    +
    +
    +
    +
    +
    partition-conflict-size [type uint64_t, default 0]

    [experts only]

    +

    number of literals in a cube; if no partition size is set, then the partition conflict size is chosen to be log2(number of requested partitions)

    +
    +
    +
    +
    partition-start-time [type uint64_t, default 30]

    [experts only]

    +

    time to start creating partitions in seconds

    +
    +
    +
    +
    partition-strategy | partition [decision-scatter | heap-scatter | lemma-scatter | decision-cube | heap-cube | lemma-cube, default decision-scatter]

    [experts only]

    +

    choose partition strategy mode

    +

    Partition strategy modes.

    +
    +
    decision-scatter:
    +

    For 4 partitions, creates partitions C1, !C1 & C2, !C1 & !C2 & C3, !C1 & !C2 & !C3, from decisions

    +
    +
    heap-scatter:
    +

    For 4 partitions, creates partitions C1, !C1 & C2, !C1 & !C2 & C3, !C1 & !C2 & !C3, from heap

    +
    +
    lemma-scatter:
    +

    For 4 partitions, creates partitions C1, !C1 & C2, !C1 & !C2 & C3, !C1 & !C2 & !C3, from lemmas

    +
    +
    decision-cube:
    +

    Creates mutually exclusive cubes from the decisions in the SAT solver.

    +
    +
    heap-cube:
    +

    Creates mutually exclusive cubes from the order heap in the SAT solver.

    +
    +
    lemma-cube:
    +

    Creates mutually exclusive cubes from the lemmas sent to the SAT solver.

    +
    +
    +
    +
    +
    +
    partition-time-interval [type double, default 1.0]

    [experts only]

    +

    time to wait between scatter partitions

    +
    +
    +
    +
    partition-tlimit [type uint64_t, default 60]

    [experts only]

    +

    time limit for partitioning in seconds

    +
    +
    +
    +
    partition-when [tlimit | climit, default tlimit]

    [experts only]

    +

    choose when to partition

    +

    PartitionWhen modes.

    +
    +
    tlimit:
    +

    Partition when the time limit is exceeded.

    +
    +
    climit:
    +

    Partition when number of checks is exceeded.

    +
    +
    +
    +
    +
    +
    random-partitioning [type bool, default false] (also --no-*)

    [experts only]

    +

    create random partitions

    +
    +
    +
    +
    write-partitions-to | partitions-out [custom ManagedOut, default ManagedOut()]

    [experts only]

    +

    set the output channel for writing partitions

    +
    +
    +
    +
    +

    Parser Module

    +
    +
    filesystem-access [type bool, default true] (also --no-*)

    [experts only]

    +

    limits the file system access if set to false

    +
    +
    +
    +
    fresh-binders [type bool, default false] (also --no-*)

    [experts only]

    +

    construct fresh variables always when parsing binders

    +
    +
    +
    +
    fresh-declarations [type bool, default true] (also --no-*)

    use API interface for fresh constants when parsing declarations and definitions

    +
    +
    +
    +
    global-declarations [type bool, default false] (also --no-*)

    force all declarations and definitions to be global when parsing

    +
    +
    +
    +
    parse-skolem-definitions [type bool, default false] (also --no-*)

    [experts only]

    +

    allows the parsing of skolems in the input file

    +
    +
    +
    +
    parsing-mode [default | strict | lenient, default default]

    [experts only]

    +

    choose parsing mode, see –parsing-mode=help

    +

    Parsing modes.

    +
    +
    default:
    +

    Be reasonably tolerant of non-conforming inputs.

    +
    +
    strict:
    +

    Be less tolerant of non-conforming inputs.

    +
    +
    lenient:
    +

    Be more tolerant of non-conforming inputs.

    +
    +
    +
    +
    +
    +
    semantic-checks [type bool, default DO_SEMANTIC_CHECKS_BY_DEFAULT] (also --no-*)

    [experts only]

    +

    enable semantic checks, including type checks

    +
    +
    +
    +
    +

    Printing Module

    +
    +
    bv-print-consts-as-indexed-symbols [type bool, default false] (also --no-*)

    print bit-vector constants in decimal (e.g. (_ bv1 4)) instead of binary (e.g. #b0001), applies to SMT-LIB 2.x

    +
    +
    +
    +
    flatten-ho-chains [type bool, default false] (also --no-*)

    [experts only]

    +

    print (binary) application chains in a flattened way, e.g. (a b c) rather than ((a b) c)

    +
    +
    +
    +
    model-u-print [decl-sort-and-fun | decl-fun | dt | none, default none]

    determines how to print uninterpreted elements in models

    +

    uninterpreted elements in models printing modes.

    +
    +
    decl-sort-and-fun:
    +

    print uninterpreted elements declare-fun, and also include a declare-sort for the sort

    +
    +
    decl-fun:
    +

    print uninterpreted elements declare-fun, but don’t include a declare-sort for the sort

    +
    +
    dt:
    +

    print uninterpreted elements as a declare-datatype

    +
    +
    none:
    +

    (default) do not print declarations of uninterpreted elements in models.

    +
    +
    +
    +
    +
    +
    print-arith-lit-token [type bool, default false] (also --no-*)

    [experts only]

    +

    print rationals and negative arithmetic literals as lexed tokens, e.g. 1/4, -1.5

    +
    +
    +
    +
    print-skolem-definitions [type bool, default false] (also --no-*)

    [experts only]

    +

    print skolems based on their definitions e.g. @ARRAY_DIFF_N prints instead as (@array.diff A B)

    +
    +
    +
    +
    +

    Proof Module

    +
    +
    check-proof-steps [type bool, default false] (also --no-*)

    [experts only]

    +

    Check proof steps for satisfiability, for refutation soundness testing. Note this checks only steps for non-core proof rules

    +
    +
    +
    +
    drat-binary-format [type bool, default false] (also --no-*)

    [experts only]

    +

    Print the DRAT proof in binary format

    +
    +
    +
    +
    lfsc-expand-trust [type bool, default false] (also --no-*)

    [experts only]

    +

    Print the children of trusted proof steps

    +
    +
    +
    +
    lfsc-flatten [type bool, default false] (also --no-*)

    [experts only]

    +

    Flatten steps in the LFSC proof

    +
    +
    +
    +
    opt-res-reconstruction-size [type bool, default true] (also --no-*)

    Optimize resolution reconstruction to reduce proof size

    +
    +
    +
    +
    print-dot-clusters [type bool, default false] (also --no-*)

    Whether the proof node clusters (e.g. SAT, CNF, INPUT) will be printed when using the dot format or not.

    +
    +
    +
    +
    proof-alethe-define-skolems [type bool, default false] (also --no-*)

    [experts only]

    +

    In Alethe proofs, use define-funs in proof preamble for Skolemization terms

    +
    +
    +
    +
    proof-alethe-res-pivots [type bool, default false] (also --no-*)

    [experts only]

    +

    Add pivots to Alethe resolution steps

    +
    +
    +
    +
    proof-allow-trust [type bool, default true] (also --no-*)

    [experts only]

    +

    Whether to allow trust in the proof printer (when applicable)

    +
    +
    +
    +
    proof-check [eager | eager-simple | lazy | none, default none]

    [experts only]

    +

    select internal proof checking mode

    +

    Internal proof checking modes.

    +
    +
    eager:
    +

    check rule applications and proofs from generators eagerly for local debugging

    +
    +
    eager-simple:
    +

    check rule applications during construction

    +
    +
    lazy:
    +

    check rule applications only during final proof construction

    +
    +
    none:
    +

    do not check rule applications

    +
    +
    +
    +
    +
    +
    proof-dag-global [type bool, default true] (also --no-*)

    [experts only]

    +

    Dagify terms in proofs using global definitions

    +
    +
    +
    +
    proof-dot-dag [type bool, default false] (also --no-*)

    [experts only]

    +

    Indicates if the dot proof will be printed as a DAG or as a tree

    +
    +
    +
    +
    proof-elim-subtypes [type bool, default false] (also --no-*)

    [experts only]

    +

    Eliminate subtypes (mixed arithmetic) in proofs

    +
    +
    +
    +
    proof-format-mode [none | dot | lfsc | alethe | cpc, default cpc]

    [experts only]

    +

    select language of proof output

    +

    Proof format modes.

    +
    +
    none:
    +

    Do not translate proof output

    +
    +
    dot:
    +

    Output DOT proof

    +
    +
    lfsc:
    +

    Output LFSC proof

    +
    +
    alethe:
    +

    Output Alethe proof

    +
    +
    cpc:
    +

    Output Cooperating Proof Calculus proof

    +
    +
    +
    +
    +
    +
    proof-pedantic [type uint64_t, N <= 100, default 0]

    [experts only]

    +

    assertion failure for any incorrect rule application or untrusted lemma having pedantic level <=N with proof

    +
    +
    +
    +
    proof-pp-merge [type bool, default true] (also --no-*)

    [experts only]

    +

    merge subproofs in final proof post-processor

    +
    +
    +
    +
    proof-print-conclusion [type bool, default false] (also --no-*)

    [experts only]

    +

    Print conclusion of proof steps when printing AST

    +
    +
    +
    +
    proof-print-reference [type bool, default false] (also --no-*)

    [experts only]

    +

    Print reference to original file instead of redeclaring

    +
    +
    +
    +
    proof-prune-input [type bool, default false] (also --no-*)

    [experts only]

    +

    Prune unused input assumptions from final scope

    +
    +
    +
    +
    proof-rewrite-rcons-rec-limit [type uint64_t, default 5]

    the matching recursion limit for reconstructing proofs of theory rewrites

    +
    +
    +
    +
    proof-rewrite-rcons-step-limit [type uint64_t, default 1000]

    the limit of steps considered for reconstructing proofs of theory rewrites

    +
    +
    +
    +
    prop-proof-mode [proof | sat-external-prove, default proof]

    modes for the type of proof generated by the SAT solver

    +

    Modes for the type of proof generated by the SAT solver.

    +
    +
    proof:
    +

    A proof computed by the SAT solver.

    +
    +
    sat-external-prove:
    +

    A proof containing a step that will be proven externally.

    +
    +
    +
    +
    +
    +
    sat-proof-min-dimacs [type bool, default true] (also --no-*)

    [experts only]

    +

    Minimize the DIMACs emitted when prop-proof-mode is set to sat-external-prove

    +
    +
    +
    +
    +

    SAT Layer Module

    +
    +
    minisat-dump-dimacs [type bool, default false] (also --no-*)

    [experts only]

    +

    instead of solving minisat dumps the asserted clauses in Dimacs format

    +
    +
    +
    +
    minisat-simplification [all | clause-elim | none, default all]

    [experts only]

    +

    Simplifications to be performed by Minisat.

    +

    Modes for Minisat simplifications.

    +
    +
    all:
    +

    Variable and clause elimination, plus other simplifications.

    +
    +
    clause-elim:
    +

    Caluse elimination and other simplifications, except variable elimination.

    +
    +
    none:
    +

    No simplifications.

    +
    +
    +
    +
    +
    +
    preregister-mode [eager | lazy, default eager]

    Modes for when to preregister literals.

    +

    Modes for when to preregister literals.

    +
    +
    eager:
    +

    Preregister literals when they are registered as literals in the SAT solver.

    +
    +
    lazy:
    +

    Preregister literals when they are asserted by the SAT solver.

    +
    +
    +
    +
    +
    +
    random-freq | random-frequency [type double, 0.0 <= P <= 1.0, default 0.0]

    [experts only]

    +

    sets the frequency of random decisions in the sat solver (P=0.0 by default)

    +
    +
    +
    +
    restart-int-base [type uint64_t, default 25]

    [experts only]

    +

    sets the base restart interval for the sat solver (N=25 by default)

    +
    +
    +
    +
    restart-int-inc [type double, 0.0 <= F, default 3.0]

    [experts only]

    +

    sets the restart interval increase factor for the sat solver (F=3.0 by default)

    +
    +
    +
    +
    sat-random-seed [type uint64_t, default 0]

    sets the random seed for the sat solver

    +
    +
    +
    +
    sat-solver [minisat | cadical, default minisat]

    [experts only]

    +

    choose which sat solver to use, see –sat-solver=help

    +

    CDCL(T) SAT solver backend.

    +
    +
    +
    +
    +

    Quantifiers Module

    +
    +
    cbqi [type bool, default true] (also --no-*)

    enable conflict-based quantifier instantiation

    +
    +
    +
    +
    cbqi-all-conflict [type bool, default false] (also --no-*)

    add all available conflicting instances during conflict-based instantiation

    +
    +
    +
    +
    cbqi-mode [conflict | prop-eq, default prop-eq]

    what effort to apply conflict find mechanism

    +

    Quantifier conflict find modes.

    +
    +
    conflict:
    +

    Apply QCF algorithm to find conflicts only.

    +
    +
    prop-eq:
    +

    Apply QCF algorithm to propagate equalities as well as conflicts.

    +
    +
    +
    +
    +
    +
    cbqi-skip-rd [type bool, default false] (also --no-*)

    [experts only]

    +

    optimization, skip instances based on possibly irrelevant portions of quantified formulas

    +
    +
    +
    +
    cbqi-tconstraint [type bool, default false] (also --no-*)

    [experts only]

    +

    enable entailment checks for t-constraints in cbqi algorithm

    +
    +
    +
    +
    cbqi-vo-exp [type bool, default false] (also --no-*)

    [experts only]

    +

    cbqi experimental variable ordering

    +
    +
    +
    +
    cegis-sample [none | use | trust, default none]

    mode for using samples in the counterexample-guided inductive synthesis loop

    +

    Modes for sampling with counterexample-guided inductive synthesis (CEGIS).

    +
    +
    none:
    +

    Do not use sampling with CEGIS.

    +
    +
    use:
    +

    Use sampling to accelerate CEGIS. This will rule out solutions for a conjecture when they are not satisfied by a sample point.

    +
    +
    trust:
    +

    Trust that when a solution for a conjecture is always true under sampling, then it is indeed a solution. Note this option may print out spurious solutions for synthesis conjectures.

    +
    +
    +
    +
    +
    +
    cegqi [type bool, default false] (also --no-*)

    turns on counterexample-based quantifier instantiation

    +
    +
    +
    +
    cegqi-all [type bool, default false] (also --no-*)

    [experts only]

    +

    apply counterexample-based instantiation to all quantified formulas

    +
    +
    +
    +
    cegqi-bv [type bool, default true] (also --no-*)

    use word-level inversion approach for counterexample-guided quantifier instantiation for bit-vectors

    +
    +
    +
    +
    cegqi-bv-concat-inv [type bool, default true] (also --no-*)

    [experts only]

    +

    compute inverse for concat over equalities rather than producing an invertibility condition

    +
    +
    +
    +
    cegqi-bv-ineq [eq-slack | eq-boundary | keep, default eq-boundary]

    choose mode for handling bit-vector inequalities with counterexample-guided instantiation

    +

    Modes for handling bit-vector inequalities in counterexample-guided instantiation.

    +
    +
    eq-slack:
    +

    Solve for the inequality using the slack value in the model, e.g., t > s becomes t = s + ( t-s )^M.

    +
    +
    eq-boundary:
    +

    Solve for the boundary point of the inequality, e.g., t > s becomes t = s+1.

    +
    +
    keep:
    +

    Solve for the inequality directly using side conditions for invertibility.

    +
    +
    +
    +
    +
    +
    cegqi-bv-interleave-value [type bool, default false] (also --no-*)

    [experts only]

    +

    interleave model value instantiation with word-level inversion approach

    +
    +
    +
    +
    cegqi-bv-linear [type bool, default true] (also --no-*)

    [experts only]

    +

    linearize adder chains for variables

    +
    +
    +
    +
    cegqi-bv-rm-extract [type bool, default true] (also --no-*)

    [experts only]

    +

    replaces extract terms with variables for counterexample-guided instantiation for bit-vectors

    +
    +
    +
    +
    cegqi-bv-solve-nl [type bool, default false] (also --no-*)

    [experts only]

    +

    try to solve non-linear bv literals using model value projections

    +
    +
    +
    +
    cegqi-full [type bool, default false] (also --no-*)

    [experts only]

    +

    turns on full effort counterexample-based quantifier instantiation, which may resort to model-value instantiation

    +
    +
    +
    +
    cegqi-inf-int [type bool, default false] (also --no-*)

    use integer infinity for vts in counterexample-based quantifier instantiation

    +
    +
    +
    +
    cegqi-inf-real [type bool, default false] (also --no-*)

    use real infinity for vts in counterexample-based quantifier instantiation

    +
    +
    +
    +
    cegqi-innermost [type bool, default true] (also --no-*)

    only process innermost quantified formulas in counterexample-based quantifier instantiation

    +
    +
    +
    +
    cegqi-midpoint [type bool, default false] (also --no-*)

    choose substitutions based on midpoints of lower and upper bounds for counterexample-based quantifier instantiation

    +
    +
    +
    +
    cegqi-min-bounds [type bool, default false] (also --no-*)

    [experts only]

    +

    use minimally constrained lower/upper bound for counterexample-based quantifier instantiation

    +
    +
    +
    +
    cegqi-multi-inst [type bool, default false] (also --no-*)

    [experts only]

    +

    when applicable, do multi instantiations per quantifier per round in counterexample-based quantifier instantiation

    +
    +
    +
    +
    cegqi-nested-qe [type bool, default false] (also --no-*)

    process nested quantified formulas with quantifier elimination in counterexample-based quantifier instantiation

    +
    +
    +
    +
    cegqi-nopt [type bool, default true] (also --no-*)

    [experts only]

    +

    non-optimal bounds for counterexample-based quantifier instantiation

    +
    +
    +
    +
    cegqi-round-up-lia [type bool, default false] (also --no-*)

    [experts only]

    +

    round up integer lower bounds in substitutions for counterexample-based quantifier instantiation

    +
    +
    +
    +
    cond-var-split-quant [off | on | agg, default on]

    [experts only]

    +

    split quantified formulas that lead to variable eliminations

    +

    Modes for splitting quantified formulas that lead to variable eliminations.

    +
    +
    off:
    +

    Do not split quantified formulas.

    +
    +
    on:
    +

    Split quantified formulas that lead to variable eliminations.

    +
    +
    agg:
    +

    Aggressively split quantified formulas that lead to variable eliminations.

    +
    +
    +
    +
    +
    +
    conjecture-gen [type bool, default false] (also --no-*)

    [experts only]

    +

    generate candidate conjectures for inductive proofs

    +
    +
    +
    +
    conjecture-gen-gt-enum [type int64_t, default 50]

    [experts only]

    +

    number of ground terms to generate for model filtering

    +
    +
    +
    +
    conjecture-gen-max-depth [type int64_t, default 3]

    [experts only]

    +

    maximum depth of terms to consider for conjectures

    +
    +
    +
    +
    conjecture-gen-per-round [type int64_t, default 1]

    [experts only]

    +

    number of conjectures to generate per instantiation round

    +
    +
    +
    +
    cons-exp-triggers [type bool, default false] (also --no-*)

    [experts only]

    +

    use constructor expansion for single constructor datatypes triggers

    +
    +
    +
    +
    dt-stc-ind [type bool, default false] (also --no-*)

    [experts only]

    +

    apply strengthening for existential quantification over datatypes based on structural induction

    +
    +
    +
    +
    dt-var-exp-quant [type bool, default true] (also --no-*)

    [experts only]

    +

    expand datatype variables bound to one constructor in quantifiers

    +
    +
    +
    +
    e-matching [type bool, default true] (also --no-*)

    whether to do heuristic E-matching

    +
    +
    +
    +
    elim-taut-quant [type bool, default true] (also --no-*)

    eliminate tautological disjuncts of quantified formulas

    +
    +
    +
    +
    enum-inst [type bool, default false] (also --no-*)

    enumerative instantiation: instantiate with ground terms from relevant domain, then arbitrary ground terms before answering unknown

    +
    +
    +
    +
    enum-inst-interleave [type bool, default false] (also --no-*)

    interleave enumerative instantiation with other techniques

    +
    +
    +
    +
    enum-inst-limit [type int64_t, default -1]

    [experts only]

    +

    maximum number of rounds of enumerative instantiation to apply (-1 means no limit)

    +
    +
    +
    +
    enum-inst-rd [type bool, default true] (also --no-*)

    [experts only]

    +

    whether to use relevant domain first for enumerative instantiation strategy

    +
    +
    +
    +
    enum-inst-stratify [type bool, default false] (also --no-*)

    [experts only]

    +

    stratify effort levels in enumerative instantiation, which favors speed over fairness

    +
    +
    +
    +
    enum-inst-sum [type bool, default false] (also --no-*)

    enumerating tuples of quantifiers by increasing the sum of indices, rather than the maximum

    +
    +
    +
    +
    ext-rewrite-quant [type bool, default false] (also --no-*)

    apply extended rewriting to bodies of quantified formulas

    +
    +
    +
    +
    finite-model-find [type bool, default false] (also --no-*)

    use finite model finding heuristic for quantifier instantiation

    +
    +
    +
    +
    fmf-bound [type bool, default false] (also --no-*)

    finite model finding on bounded quantification

    +
    +
    +
    +
    fmf-bound-blast [type bool, default false] (also --no-*)

    [experts only]

    +

    send all instantiations for bounded ranges in a single round

    +
    +
    +
    +
    fmf-bound-lazy [type bool, default false] (also --no-*)

    [experts only]

    +

    enforce bounds for bounded quantification lazily via use of proxy variables

    +
    +
    +
    +
    fmf-fun [type bool, default false] (also --no-*)

    [experts only]

    +

    find models for recursively defined functions, assumes functions are admissible

    +
    +
    +
    +
    fmf-fun-rlv [type bool, default false] (also --no-*)

    [experts only]

    +

    find models for recursively defined functions, assumes functions are admissible, allows empty type when function is irrelevant

    +
    +
    +
    +
    fmf-mbqi [none | fmc | trust, default fmc]

    [experts only]

    +

    choose mode for model-based quantifier instantiation

    +

    Model-based quantifier instantiation modes.

    +
    +
    none:
    +

    Disable model-based quantifier instantiation.

    +
    +
    fmc:
    +

    Use algorithm from Section 5.4.2 of thesis Finite Model Finding in Satisfiability Modulo Theories.

    +
    +
    trust:
    +

    Do not instantiate quantified formulas (incomplete technique).

    +
    +
    +
    +
    +
    +
    fmf-type-completion-thresh [type int64_t, default 1000]

    the maximum cardinality of an interpreted type for which exhaustive enumeration in finite model finding is attempted

    +
    +
    +
    +
    full-saturate-quant [type bool, default false] (also --no-*)

    resort to full effort techniques instead of answering unknown due to limited quantifier reasoning. Currently enables enumerative instantiation

    +
    +
    +
    +
    full-sygus-verify [type bool, default false] (also --no-*)

    [experts only]

    +

    resort to full effort techniques instead of answering unknown when checking sygus candidates

    +
    +
    +
    +
    global-negate [type bool, default false] (also --no-*)

    [experts only]

    +

    do global negation of input formula

    +
    +
    +
    +
    ho-elim [type bool, default false] (also --no-*)

    eagerly eliminate higher-order constraints

    +
    +
    +
    +
    ho-elim-store-ax [type bool, default true] (also --no-*)

    use store axiom during ho-elim

    +
    +
    +
    +
    ho-matching [type bool, default true] (also --no-*)

    [experts only]

    +

    do higher-order matching algorithm for triggers with variable operators

    +
    +
    +
    +
    ho-merge-term-db [type bool, default true] (also --no-*)

    [experts only]

    +

    merge term indices modulo equality

    +
    +
    +
    +
    ieval [off | use | use-learn, default use]

    mode for using instantiation evaluation

    +

    Mode for using instantiation evaluation.

    +
    +
    off:
    +

    Do not use instantiation evaluation.

    +
    +
    use:
    +

    Use instantiation evaluation.

    +
    +
    use-learn:
    +

    Use instantiation evaluation, and generalize learning.

    +
    +
    +
    +
    +
    +
    increment-triggers [type bool, default true] (also --no-*)

    [experts only]

    +

    generate additional triggers as needed during search

    +
    +
    +
    +
    inst-max-level [type int64_t, default -1]

    [experts only]

    +

    maximum inst level of terms used to instantiate quantified formulas with (-1 == no limit, default)

    +
    +
    +
    +
    inst-max-rounds [type int64_t, default -1]

    maximum number of instantiation rounds (-1 == no limit, default)

    +
    +
    +
    +
    inst-no-entail [type bool, default true] (also --no-*)

    do not consider instances of quantified formulas that are currently entailed

    +
    +
    +
    +
    inst-when [full | full-delay | full-last-call | full-delay-last-call | last-call, default full-last-call]

    when to apply instantiation

    +

    Instantiation modes.

    +
    +
    full:
    +

    Run instantiation round at full effort, before theory combination.

    +
    +
    full-delay:
    +

    Run instantiation round at full effort, before theory combination, after all other theories have finished.

    +
    +
    full-last-call:
    +

    Alternate running instantiation rounds at full effort and last call. In other words, interleave instantiation and theory combination.

    +
    +
    full-delay-last-call:
    +

    Alternate running instantiation rounds at full effort after all other theories have finished, and last call.

    +
    +
    last-call:
    +

    Run instantiation at last call effort, after theory combination and and theories report sat.

    +
    +
    +
    +
    +
    +
    inst-when-phase [type int64_t, default 2]

    [experts only]

    +

    instantiation rounds quantifiers takes (>=1) before allowing theory combination to happen

    +
    +
    +
    +
    int-wf-ind [type bool, default false] (also --no-*)

    [experts only]

    +

    apply strengthening for integers based on well-founded induction

    +
    +
    +
    +
    ite-dtt-split-quant [type bool, default false] (also --no-*)

    [experts only]

    +

    split ites with dt testers as conditions

    +
    +
    +
    +
    ite-lift-quant [none | simple | all, default simple]

    ite lifting mode for quantified formulas

    +

    ITE lifting modes for quantified formulas.

    +
    +
    none:
    +

    Do not lift if-then-else in quantified formulas.

    +
    +
    simple:
    +

    Lift if-then-else in quantified formulas if results in smaller term size.

    +
    +
    all:
    +

    Lift if-then-else in quantified formulas.

    +
    +
    +
    +
    +
    +
    literal-matching [none | use | agg-predicate | agg, default use]

    [experts only]

    +

    choose literal matching mode

    +

    Literal match modes.

    +
    +
    none:
    +

    Do not use literal matching.

    +
    +
    use:
    +

    Consider phase requirements of triggers conservatively. For example, the trigger P( x ) in forall( x ). ( P( x ) V ~Q( x ) ) will not be matched with terms in the equivalence class of true, and likewise Q( x ) will not be matched terms in the equivalence class of false. Extends to equality.

    +
    +
    agg-predicate:
    +

    Consider phase requirements aggressively for predicates. In the above example, only match P( x ) with terms that are in the equivalence class of false.

    +
    +
    agg:
    +

    Consider the phase requirements aggressively for all triggers.

    +
    +
    +
    +
    +
    +
    macros-quant [type bool, default false] (also --no-*)

    perform quantifiers macro expansion

    +
    +
    +
    +
    macros-quant-mode [all | ground | ground-uf, default ground-uf]

    mode for quantifiers macro expansion

    +

    Modes for quantifiers macro expansion.

    +
    +
    all:
    +

    Infer definitions for functions, including those containing quantified formulas.

    +
    +
    ground:
    +

    Only infer ground definitions for functions.

    +
    +
    ground-uf:
    +

    Only infer ground definitions for functions that result in triggers for all free variables.

    +
    +
    +
    +
    +
    +
    mbqi [type bool, default false] (also --no-*)

    [experts only]

    +

    use model-based quantifier instantiation

    +
    +
    +
    +
    mbqi-fast-sygus [type bool, default false] (also --no-*)

    [experts only]

    +

    use fast enumeration to augment instantiations from MBQI

    +
    +
    +
    +
    mbqi-interleave [type bool, default false] (also --no-*)

    [experts only]

    +

    interleave model-based quantifier instantiation with other techniques

    +
    +
    +
    +
    mbqi-one-inst-per-round [type bool, default false] (also --no-*)

    only add one instantiation per quantifier per round for mbqi

    +
    +
    +
    +
    miniscope-quant [off | conj | fv | conj-and-fv | agg, default conj-and-fv]

    miniscope mode for quantified formulas

    +

    Miniscope quantifiers modes.

    +
    +
    off:
    +

    Do not miniscope quantifiers.

    +
    +
    conj:
    +

    Use miniscoping of conjunctions only.

    +
    +
    fv:
    +

    Use free variable miniscoping only.

    +
    +
    conj-and-fv:
    +

    Enable both conjunction and free variable miniscoping.

    +
    +
    agg:
    +

    Enable aggressive miniscope, which further may rewrite quantified formulas into a form where miniscoping is possible.

    +
    +
    +
    +
    +
    +
    miniscope-quant-user [type bool, default false] (also --no-*)

    miniscope quantified formulas with user patterns

    +
    +
    +
    +
    multi-trigger-cache [type bool, default false] (also --no-*)

    caching version of multi triggers

    +
    +
    +
    +
    multi-trigger-linear [type bool, default true] (also --no-*)

    implementation of multi triggers where maximum number of instantiations is linear wrt number of ground terms

    +
    +
    +
    +
    multi-trigger-priority [type bool, default false] (also --no-*)

    only try multi triggers if single triggers give no instantiations

    +
    +
    +
    +
    multi-trigger-when-single [type bool, default false] (also --no-*)

    select multi triggers when single triggers exist

    +
    +
    +
    +
    oracles [type bool, default false] (also --no-*)

    [experts only]

    +

    Enable interface to external oracles

    +
    +
    +
    +
    partial-triggers [type bool, default false] (also --no-*)

    [experts only]

    +

    use triggers that do not contain all free variables

    +
    +
    +
    +
    pool-inst [type bool, default true] (also --no-*)

    [experts only]

    +

    pool-based instantiation: instantiate with ground terms occurring in user-specified pools

    +
    +
    +
    +
    pre-skolem-quant [off | on | agg, default off]

    modes to apply skolemization eagerly to bodies of quantified formulas

    +

    Modes to apply skolemization eagerly to bodies of quantified formulas.

    +
    +
    off:
    +

    Do not apply Skolemization eagerly.

    +
    +
    on:
    +

    Apply Skolemization eagerly to top-level (negatively asserted) quantified formulas.

    +
    +
    agg:
    +

    Apply Skolemization eagerly and aggressively during preprocessing.

    +
    +
    +
    +
    +
    +
    pre-skolem-quant-nested [type bool, default true] (also --no-*)

    [experts only]

    +

    apply skolemization to nested quantified formulas

    +
    +
    +
    +
    prenex-quant [none | simple | norm, default simple]

    prenex mode for quantified formulas

    +

    Prenex quantifiers modes.

    +
    +
    none:
    +

    Do not prenex nested quantifiers.

    +
    +
    simple:
    +

    Do simple prenexing of same sign quantifiers.

    +
    +
    norm:
    +

    Prenex to prenex normal form.

    +
    +
    +
    +
    +
    +
    prenex-quant-user [type bool, default false] (also --no-*)

    prenex quantified formulas with user patterns

    +
    +
    +
    +
    print-inst-full [type bool, default true] (also --no-*)

    print instantiations for formulas that do not have given identifiers

    +
    +
    +
    +
    purify-triggers [type bool, default false] (also --no-*)

    [experts only]

    +

    purify triggers, e.g. f( x+1 ) becomes f( y ), x mapsto y-1

    +
    +
    +
    +
    quant-alpha-equiv [type bool, default true] (also --no-*)

    infer alpha equivalence between quantified formulas

    +
    +
    +
    +
    quant-dsplit [none | default | agg, default default]

    mode for dynamic quantifiers splitting

    +

    Modes for quantifiers splitting.

    +
    +
    none:
    +

    Never split quantified formulas.

    +
    +
    default:
    +

    Split quantified formulas over some finite datatypes when finite model finding is enabled.

    +
    +
    agg:
    +

    Aggressively split quantified formulas.

    +
    +
    +
    +
    +
    +
    quant-fun-wd [type bool, default false] (also --no-*)

    [experts only]

    +

    assume that function defined by quantifiers are well defined

    +
    +
    +
    +
    quant-ind [type bool, default false] (also --no-*)

    [experts only]

    +

    use all available techniques for inductive reasoning

    +
    +
    +
    +
    quant-rep-mode [ee | first | depth, default first]

    [experts only]

    +

    selection mode for representatives in quantifiers engine

    +

    Modes for quantifiers representative selection.

    +
    +
    ee:
    +

    Let equality engine choose representatives.

    +
    +
    first:
    +

    Choose terms that appear first.

    +
    +
    depth:
    +

    Choose terms that are of minimal depth.

    +
    +
    +
    +
    +
    +
    register-quant-body-terms [type bool, default false] (also --no-*)

    [experts only]

    +

    consider ground terms within bodies of quantified formulas for matching

    +
    +
    +
    +
    relational-triggers [type bool, default false] (also --no-*)

    [experts only]

    +

    choose relational triggers such as x = f(y), x >= f(y)

    +
    +
    +
    +
    relevant-triggers [type bool, default false] (also --no-*)

    prefer triggers that are more relevant based on SInE style analysis

    +
    +
    +
    +
    sub-cbqi [type bool, default false] (also --no-*)

    Enable conflict-based instantiation subsolver strategy

    +
    +
    +
    +
    sub-cbqi-timeout [type uint64_t, default 0]

    Timeout (in milliseconds) for subsolver calls for sub-cbqi

    +
    +
    +
    +
    sygus [type bool, default false] (also --no-*)

    support SyGuS commands

    +
    +
    +
    +
    sygus-add-const-grammar [type bool, default true] (also --no-*)

    statically add constants appearing in conjecture to grammars

    +
    +
    +
    +
    sygus-arg-relevant [type bool, default false] (also --no-*)

    [experts only]

    +

    static inference techniques for computing whether arguments of functions-to-synthesize are relevant

    +
    +
    +
    +
    sygus-auto-unfold [type bool, default true] (also --no-*)

    [experts only]

    +

    enable approach which automatically unfolds transition systems for directly solving invariant synthesis problems

    +
    +
    +
    +
    sygus-bool-ite-return-const [type bool, default true] (also --no-*)

    [experts only]

    +

    Only use Boolean constants for return values in unification-based function synthesis

    +
    +
    +
    +
    sygus-core-connective [type bool, default true] (also --no-*)

    use unsat core analysis to construct Boolean connective to sygus conjectures

    +
    +
    +
    +
    sygus-crepair-abort [type bool, default false] (also --no-*)

    [experts only]

    +

    abort if constant repair techniques are not applicable

    +
    +
    +
    +
    sygus-enum [smart | fast | random | var-agnostic | auto, default auto]

    mode for sygus enumeration

    +

    Modes for sygus enumeration.

    +
    +
    smart:
    +

    Use smart enumeration based on datatype constraints.

    +
    +
    fast:
    +

    Use optimized enumerator for sygus enumeration.

    +
    +
    random:
    +

    Use basic random enumerator for sygus enumeration.

    +
    +
    var-agnostic:
    +

    Use sygus solver to enumerate terms that are agnostic to variables.

    +
    +
    auto:
    +

    Internally decide the best policy for each enumerator.

    +
    +
    +
    +
    +
    +
    sygus-enum-fast-num-consts [type uint64_t, default 5]

    [experts only]

    +

    the branching factor for the number of interpreted constants to consider for each size when using –sygus-enum=fast

    +
    +
    +
    +
    sygus-enum-random-p [type double, 0.0 <= P <= 1.0, default 0.5]

    [experts only]

    +

    the parameter of the geometric distribution used to determine the size of terms generated by –sygus-enum=random

    +
    +
    +
    +
    sygus-eval-unfold [none | single | single-bool | multi, default single-bool]

    modes for sygus evaluation unfolding

    +

    Modes for sygus evaluation unfolding.

    +
    +
    none:
    +

    Do not use sygus evaluation unfolding.

    +
    +
    single:
    +

    Do single-step unfolding for all evaluation functions.

    +
    +
    single-bool:
    +

    Do single-step unfolding for Boolean functions and ITEs, and multi-step unfolding for all others.

    +
    +
    multi:
    +

    Do multi-step unfolding for all evaluation functions.

    +
    +
    +
    +
    +
    +
    sygus-expr-miner-check-timeout [type uint64_t, default 0]

    [experts only]

    +

    timeout (in milliseconds) for satisfiability checks in expression miners

    +
    +
    +
    +
    sygus-filter-sol [none | strong | weak, default none]

    [experts only]

    +

    mode for filtering sygus solutions

    +

    Modes for filtering sygus solutions.

    +
    +
    none:
    +

    Do not filter sygus solutions.

    +
    +
    strong:
    +

    Filter solutions that are logically stronger than others.

    +
    +
    weak:
    +

    Filter solutions that are logically weaker than others.

    +
    +
    +
    +
    +
    +
    sygus-filter-sol-rev [type bool, default false] (also --no-*)

    [experts only]

    +

    compute backwards filtering to compute whether previous solutions are filtered based on later ones

    +
    +
    +
    +
    sygus-grammar-cons [simple | any-const | any-term | any-term-concise, default simple]

    mode for SyGuS grammar construction

    +

    Modes for default SyGuS grammars.

    +
    +
    simple:
    +

    Use simple grammar construction (no symbolic terms or constants).

    +
    +
    any-const:
    +

    Use symoblic constant constructors.

    +
    +
    any-term:
    +

    When applicable, use constructors corresponding to any symbolic term. This option enables a sum-of-monomials grammar for arithmetic. For all other types, it enables symbolic constant constructors.

    +
    +
    any-term-concise:
    +

    When applicable, use constructors corresponding to any symbolic term, favoring conciseness over generality. This option is equivalent to any-term but enables a polynomial grammar for arithmetic when not in a combined theory.

    +
    +
    +
    +
    +
    +
    sygus-grammar-norm [type bool, default false] (also --no-*)

    [experts only]

    +

    statically normalize sygus grammars based on flattening (linearization)

    +
    +
    +
    +
    sygus-grammar-use-disj [type bool, default true] (also --no-*)

    [experts only]

    +

    use disjunctions in internally generated grammars. this is set to false when solving abduction queries.

    +
    +
    +
    +
    sygus-inference [off | try | on, default off]

    [experts only]

    +

    mode for preprocessing arbitrary inputs to sygus conjectures

    +

    Modes for preprocessing arbitrary inputs to sygus conjectures.

    +
    +
    off:
    +

    Do not use sygus inference techniques.

    +
    +
    try:
    +

    Try to use sygus inference techniques but resort to ordinary SMT solving if it does not apply.

    +
    +
    on:
    +

    Try to sygus inference and abort if it does not apply.

    +
    +
    +
    +
    +
    +
    sygus-inst [type bool, default false] (also --no-*)

    Enable SyGuS instantiation quantifiers module

    +
    +
    +
    +
    sygus-inst-mode [priority-inst | priority-eval | interleave, default priority-inst]

    [experts only]

    +

    select instantiation lemma mode

    +

    SyGuS instantiation lemma modes.

    +
    +
    priority-inst:
    +

    add instantiation lemmas first, add evaluation unfolding if instantiation fails.

    +
    +
    priority-eval:
    +

    add evaluation unfolding lemma first, add instantiation lemma if unfolding lemmas already added.

    +
    +
    interleave:
    +

    add instantiation and evaluation unfolding lemmas in the same step.

    +
    +
    +
    +
    +
    +
    sygus-inst-scope [in | out | both, default in]

    [experts only]

    +

    select scope of ground terms

    +

    scope for collecting ground terms for the grammar.

    +
    +
    in:
    +

    use ground terms inside given quantified formula only.

    +
    +
    out:
    +

    use ground terms outside of quantified formulas only.

    +
    +
    both:
    +

    combines inside and outside.

    +
    +
    +
    +
    +
    +
    sygus-inst-term-sel [min | max | both, default min]

    [experts only]

    +

    granularity for ground terms

    +

    Ground term selection modes.

    +
    +
    min:
    +

    collect minimal ground terms only.

    +
    +
    max:
    +

    collect maximal ground terms only.

    +
    +
    both:
    +

    combines minimal and maximal .

    +
    +
    +
    +
    +
    +
    sygus-inv-templ [none | pre | post, default post]

    template mode for sygus invariant synthesis (weaken pre-condition, strengthen post-condition, or none)

    +

    Template modes for sygus invariant synthesis.

    +
    +
    none:
    +

    Synthesize invariant directly.

    +
    +
    pre:
    +

    Synthesize invariant based on weakening of precondition.

    +
    +
    post:
    +

    Synthesize invariant based on strengthening of postcondition.

    +
    +
    +
    +
    +
    +
    sygus-inv-templ-when-sg [type bool, default false] (also --no-*)

    [experts only]

    +

    use invariant templates (with solution reconstruction) for syntax guided problems

    +
    +
    +
    +
    sygus-min-grammar [type bool, default true] (also --no-*)

    statically minimize sygus grammars

    +
    +
    +
    +
    sygus-out [status | status-and-def | sygus-standard, default sygus-standard]

    output mode for sygus

    +

    Modes for sygus solution output.

    +
    +
    status:
    +

    Print only status for check-synth calls.

    +
    +
    status-and-def:
    +

    Print status followed by definition corresponding to solution.

    +
    +
    sygus-standard:
    +

    Print based on SyGuS standard.

    +
    +
    +
    +
    +
    +
    sygus-pbe [type bool, default true] (also --no-*)

    enable approach which unifies conditional solutions, specialized for programming-by-examples (pbe) conjectures

    +
    +
    +
    +
    sygus-pbe-multi-fair [type bool, default false] (also --no-*)

    [experts only]

    +

    when using multiple enumerators, ensure that we only register value of minimial term size

    +
    +
    +
    +
    sygus-pbe-multi-fair-diff [type int64_t, default 0]

    [experts only]

    +

    when using multiple enumerators, ensure that we only register values of minimial term size plus this value (default 0)

    +
    +
    +
    +
    sygus-qe-preproc [type bool, default false] (also --no-*)

    [experts only]

    +

    use quantifier elimination as a preprocessing step for sygus

    +
    +
    +
    +
    sygus-query-gen [basic | sample-sat | unsat, default basic]

    [experts only]

    +

    mode for generating interesting satisfiability queries using SyGuS, for internal fuzzing

    +

    Modes for generating interesting satisfiability queries using SyGuS.

    +
    +
    basic:
    +

    Generate all queries using SyGuS enumeration of the given grammar

    +
    +
    sample-sat:
    +

    Generate interesting SAT queries based on sampling, for e.g. soundness testing.

    +
    +
    unsat:
    +

    Generate interesting UNSAT queries, for e.g. proof testing.

    +
    +
    +
    +
    +
    +
    sygus-query-gen-dump-files [none | all | unsolved, default none]

    [experts only]

    +

    mode for dumping external files corresponding to interesting satisfiability queries with sygus-query-gen

    +

    Query file options.

    +
    +
    none:
    +

    Do not dump query files when using –sygus-query-gen.

    +
    +
    all:
    +

    Dump all query files.

    +
    +
    unsolved:
    +

    Dump query files that the subsolver did not solve.

    +
    +
    +
    +
    +
    +
    sygus-query-gen-filter-solved [type bool, default false] (also --no-*)

    [experts only]

    +

    do not print queries that are solved

    +
    +
    +
    +
    sygus-query-gen-thresh [type uint64_t, default 5]

    [experts only]

    +

    number of points that we allow to be equal for enumerating satisfiable queries with sygus-query-gen

    +
    +
    +
    +
    sygus-rec-fun [type bool, default true] (also --no-*)

    [experts only]

    +

    enable efficient support for recursive functions in sygus grammars

    +
    +
    +
    +
    sygus-rec-fun-eval-limit [type uint64_t, default 1000]

    [experts only]

    +

    use a hard limit for how many times in a given evaluator call a recursive function can be evaluated (so infinite loops can be avoided)

    +
    +
    +
    +
    sygus-repair-const [type bool, default true] (also --no-*)

    use approach to repair constants in sygus candidate solutions

    +
    +
    +
    +
    sygus-repair-const-timeout [type uint64_t, default 0]

    [experts only]

    +

    timeout (in milliseconds) for the satisfiability check to repair constants in sygus candidate solutions

    +
    +
    +
    +
    sygus-rr-synth-accel [type bool, default false] (also --no-*)

    [experts only]

    +

    add dynamic symmetry breaking clauses based on candidate rewrites

    +
    +
    +
    +
    sygus-rr-synth-check [type bool, default true] (also --no-*)

    [experts only]

    +

    use satisfiability check to verify correctness of candidate rewrites

    +
    +
    +
    +
    sygus-rr-synth-filter-cong [type bool, default true] (also --no-*)

    [experts only]

    +

    filter candidate rewrites based on congruence

    +
    +
    +
    +
    sygus-rr-synth-filter-match [type bool, default true] (also --no-*)

    [experts only]

    +

    filter candidate rewrites based on matching

    +
    +
    +
    +
    sygus-rr-synth-filter-nl [type bool, default false] (also --no-*)

    [experts only]

    +

    filter non-linear candidate rewrites

    +
    +
    +
    +
    sygus-rr-synth-filter-order [type bool, default true] (also --no-*)

    [experts only]

    +

    filter candidate rewrites based on variable ordering

    +
    +
    +
    +
    sygus-rr-synth-input-nvars [type int64_t, default 3]

    [experts only]

    +

    the maximum number of variables per type that appear in rewrites from sygus-rr-synth-input

    +
    +
    +
    +
    sygus-rr-synth-rec [type bool, default false] (also --no-*)

    [experts only]

    +

    synthesize rewrite rules over all sygus grammar types recursively

    +
    +
    +
    +
    sygus-sample-fp-uniform [type bool, default false] (also --no-*)

    [experts only]

    +

    sample floating-point values uniformly instead of in a biased fashion

    +
    +
    +
    +
    sygus-sample-grammar [type bool, default true] (also --no-*)

    [experts only]

    +

    when applicable, use grammar for choosing sample points

    +
    +
    +
    +
    sygus-samples [type int64_t, default 1000]

    [experts only]

    +

    number of points to consider when doing sygus rewriter sample testing

    +
    +
    +
    +
    sygus-si [none | use | all, default none]

    mode for processing single invocation synthesis conjectures

    +

    Modes for single invocation techniques.

    +
    +
    none:
    +

    Do not use single invocation techniques.

    +
    +
    use:
    +

    Use single invocation techniques only if grammar is not restrictive.

    +
    +
    all:
    +

    Always use single invocation techniques.

    +
    +
    +
    +
    +
    +
    sygus-si-abort [type bool, default false] (also --no-*)

    abort if synthesis conjecture is not single invocation

    +
    +
    +
    +
    sygus-si-rcons [none | try | all-limit | all, default all]

    policy for reconstructing solutions for single invocation conjectures

    +

    Modes for reconstruction solutions while using single invocation techniques.

    +
    +
    none:
    +

    Do not try to reconstruct solutions in the original (user-provided) grammar when using single invocation techniques. In this mode, solutions produced by cvc5 may violate grammar restrictions.

    +
    +
    try:
    +

    Try to reconstruct solutions in the original grammar when using single invocation techniques in an incomplete (fail-fast) manner.

    +
    +
    all-limit:
    +

    Try to reconstruct solutions in the original grammar, but terminate if a maximum number of rounds for reconstruction is exceeded.

    +
    +
    all:
    +

    Try to reconstruct solutions in the original grammar. In this mode, we do not terminate until a solution is successfully reconstructed.

    +
    +
    +
    +
    +
    +
    sygus-si-rcons-limit [type int64_t, default 10000]

    [experts only]

    +

    number of rounds of enumeration to use during solution reconstruction (negative means unlimited)

    +
    +
    +
    +
    sygus-si-rcons-p [type double, 0.0 <= P <= 1.0, default 0.5]

    [experts only]

    +

    the parameter of the geometric distribution used to determine the number of unification patterns generated by single invocation techniques.

    +
    +
    +
    +
    sygus-stream [type bool, default false] (also --no-*)

    enumerate a stream of solutions instead of terminating after the first one

    +
    +
    +
    +
    sygus-unif-cond-independent-no-repeat-sol [type bool, default true] (also --no-*)

    [experts only]

    +

    Do not try repeated solutions when using independent synthesis of conditions in unification-based function synthesis

    +
    +
    +
    +
    sygus-unif-pi [none | complete | cond-enum | cond-enum-igain, default none]

    mode for synthesis via piecewise-indepedent unification

    +

    Modes for piecewise-independent unification.

    +
    +
    none:
    +

    Do not use piecewise-independent unification.

    +
    +
    complete:
    +

    Use complete approach for piecewise-independent unification (see Section 3 of Barbosa et al FMCAD 2019)

    +
    +
    cond-enum:
    +

    Use unconstrained condition enumeration for piecewise-independent unification (see Section 4 of Barbosa et al FMCAD 2019).

    +
    +
    cond-enum-igain:
    +

    Same as cond-enum, but additionally uses an information gain heuristic when doing decision tree learning.

    +
    +
    +
    +
    +
    +
    sygus-unif-shuffle-cond [type bool, default false] (also --no-*)

    [experts only]

    +

    Shuffle condition pool when building solutions (may change solutions sizes)

    +
    +
    +
    +
    sygus-verify-inst-max-rounds [type int64_t, default 10]

    [experts only]

    +

    maximum number of instantiation rounds for sygus verification calls (-1 == no limit, default is 10)

    +
    +
    +
    +
    sygus-verify-timeout [type uint64_t, default 0]

    timeout (in milliseconds) for verifying satisfiability of synthesized terms (0 == no limit)

    +
    +
    +
    +
    term-db-mode [all | relevant, default relevant]

    which ground terms to consider for instantiation

    +

    Modes for terms included in the quantifiers term database.

    +
    +
    all:
    +

    Quantifiers module considers all ground terms.

    +
    +
    relevant:
    +

    Quantifiers module considers only ground terms connected to current assertions.

    +
    +
    +
    +
    +
    +
    trigger-active-sel [all | min | max, default all]

    [experts only]

    +

    selection mode to activate triggers

    +

    Trigger active selection modes.

    +
    +
    all:
    +

    Make all triggers active.

    +
    +
    min:
    +

    Activate triggers with minimal ground terms.

    +
    +
    max:
    +

    Activate triggers with maximal ground terms.

    +
    +
    +
    +
    +
    +
    trigger-sel [min | max | min-s-max | min-s-all | all, default min]

    selection mode for triggers

    +

    Trigger selection modes.

    +
    +
    min:
    +

    Consider only minimal subterms that meet criteria for triggers.

    +
    +
    max:
    +

    Consider only maximal subterms that meet criteria for triggers.

    +
    +
    min-s-max:
    +

    Consider only minimal subterms that meet criteria for single triggers, maximal otherwise.

    +
    +
    min-s-all:
    +

    Consider only minimal subterms that meet criteria for single triggers, all otherwise.

    +
    +
    all:
    +

    Consider all subterms that meet criteria for triggers.

    +
    +
    +
    +
    +
    +
    user-pat [use | trust | strict | resort | ignore | interleave, default trust]

    policy for handling user-provided patterns for quantifier instantiation

    +

    These modes determine how user provided patterns (triggers) are used during E-matching. The modes vary on when instantiation based on user-provided triggers is combined with instantiation based on automatically selected triggers.

    +
    +
    use:
    +

    Use both user-provided and auto-generated patterns when patterns are provided for a quantified formula.

    +
    +
    trust:
    +

    When provided, use only user-provided patterns for a quantified formula.

    +
    +
    strict:
    +

    When provided, use only user-provided patterns for a quantified formula, and do not use any other instantiation techniques.

    +
    +
    resort:
    +

    Use user-provided patterns only after auto-generated patterns saturate.

    +
    +
    ignore:
    +

    Ignore user-provided patterns.

    +
    +
    interleave:
    +

    Alternate between use/resort.

    +
    +
    +
    +
    +
    +
    user-pool [use | trust | ignore, default trust]

    [experts only]

    +

    policy for handling user-provided pools for quantifier instantiation

    +

    These modes determine how user provided pools are used in combination with other instantiation techniques.

    +
    +
    use:
    +

    Use both user-provided pool and other instantiation strategies when pools are provided for a quantified formula.

    +
    +
    trust:
    +

    When provided, use only user-provided pool for a quantified formula.

    +
    +
    ignore:
    +

    Ignore user-provided pool.

    +
    +
    +
    +
    +
    +
    var-elim-quant [type bool, default true] (also --no-*)

    enable simple variable elimination for quantified formulas

    +
    +
    +
    +
    var-ineq-elim-quant [type bool, default true] (also --no-*)

    enable variable elimination based on infinite projection of unbound arithmetic variables

    +
    +
    +
    +
    +

    Separation Logic Theory Module

    +
    +
    sep [type bool, default true] (also --no-*)

    [experts only]

    +

    enables the separation logic solver in applicable logics

    +
    +
    +
    +
    sep-min-refine [type bool, default false] (also --no-*)

    [experts only]

    +

    only add refinement lemmas for minimal (innermost) assertions

    +
    +
    +
    +
    sep-pre-skolem-emp [type bool, default false] (also --no-*)

    [experts only]

    +

    eliminate emp constraint at preprocess time

    +
    +
    +
    +
    +

    Sets Theory Module

    +
    +
    rels-exp [type bool, default true] (also --no-*)

    [experts only]

    +

    enable the relations extension of the theory of sets

    +
    +
    +
    +
    sets-card-exp [type bool, default true] (also --no-*)

    [experts only]

    +

    enable the cardinality extension of the theory of sets

    +
    +
    +
    +
    sets-exp [type bool, default false] (also --no-*)

    [experts only]

    +

    enable extended symbols such as complement and universe in theory of sets

    +
    +
    +
    +
    sets-proxy-lemmas [type bool, default false] (also --no-*)

    [experts only]

    +

    introduce proxy variables eagerly to shorten lemmas

    +
    +
    +
    +
    +

    SMT Layer Module

    +
    +
    abstract-values [type bool, default false] (also --no-*)

    [experts only]

    +

    in models, output arrays (and in future, maybe others) using abstract values, as required by the SMT-LIB standard

    +
    +
    +
    +
    ackermann [type bool, default false] (also --no-*)

    eliminate functions by ackermannization

    +
    +
    +
    +
    bv-to-int-use-pow2 [type bool, default false] (also --no-*)

    [experts only]

    +

    use internal pow2 operator when translating shift notes

    +
    +
    +
    +
    bvand-integer-granularity [type uint64_t, 1 <= N <= 8, default 1]

    [experts only]

    +

    granularity to use in –solve-bv-as-int mode and for iand operator (experimental)

    +
    +
    +
    +
    check-abducts [type bool, default false] (also --no-*)

    checks whether produced solutions to get-abduct are correct

    +
    +
    +
    +
    check-interpolants [type bool, default false] (also --no-*)

    checks whether produced solutions to get-interpolant are correct

    +
    +
    +
    +
    check-synth-sol [type bool, default false] (also --no-*)

    checks whether produced solutions to functions-to-synthesize satisfy the conjecture

    +
    +
    +
    +
    check-unsat-cores [type bool, default false] (also --no-*)

    after UNSAT/VALID, produce and check an unsat core (expensive)

    +
    +
    +
    +
    debug-check-models [type bool, default false] (also --no-*)

    [experts only]

    +

    after SAT/INVALID/UNKNOWN, check that the generated model satisfies user and internal assertions

    +
    +
    +
    +
    deep-restart [none | input | input-and-solvable | input-and-prop | all, default none]

    [experts only]

    +

    mode for deep restarts

    +

    Mode for deep restarts

    +
    +
    none:
    +

    do not use deep restart

    +
    +
    input:
    +

    learn literals that appear in the input

    +
    +
    input-and-solvable:
    +

    learn literals that appear in the input and those that can be solved for variables that appear in the input

    +
    +
    input-and-prop:
    +

    learn literals that appear in the input and those that can be solved for variables, or correspond to constant propagations for terms that appear in the input

    +
    +
    all:
    +

    learn all literals

    +
    +
    +
    +
    +
    +
    deep-restart-factor [type double, 0.0 <= F <= 1000.0, default 3.0]

    [experts only]

    +

    sets the threshold for average assertions per literal before a deep restart

    +
    +
    +
    +
    difficulty-mode [lemma-literal | lemma-literal-all | model-check, default lemma-literal-all]

    [experts only]

    +

    choose output mode for get-difficulty, see –difficulty-mode=help

    +

    difficulty output modes.

    +
    +
    lemma-literal:
    +

    Difficulty of an assertion is how many lemmas (at full effort) use a literal that the assertion depends on to be satisfied.

    +
    +
    lemma-literal-all:
    +

    Difficulty of an assertion is how many lemmas use a literal that the assertion depends on to be satisfied.

    +
    +
    model-check:
    +

    Difficulty of an assertion is how many times it was not satisfied in a candidate model.

    +
    +
    +
    +
    +
    +
    early-ite-removal [type bool, default false] (also --no-*)

    [experts only]

    +

    remove ITEs early in preprocessing

    +
    +
    +
    +
    ext-rew-prep [off | use | agg, default off]

    mode for using extended rewriter as a preprocessing pass, see –ext-rew-prep=help

    +

    extended rewriter preprocessing pass modes.

    +
    +
    off:
    +

    do not use extended rewriter as a preprocessing pass.

    +
    +
    use:
    +

    use extended rewriter as a preprocessing pass.

    +
    +
    agg:
    +

    use aggressive extended rewriter as a preprocessing pass.

    +
    +
    +
    +
    +
    +
    foreign-theory-rewrite [type bool, default false] (also --no-*)

    [experts only]

    +

    Cross-theory rewrites

    +
    +
    +
    +
    iand-mode [value | sum | bitwise, default value]

    [experts only]

    +

    Set the refinement scheme for integer AND

    +

    Refinement modes for integer AND

    +
    +
    value:
    +

    value-based refinement

    +
    +
    sum:
    +

    use sum to represent integer AND in refinement

    +
    +
    bitwise:
    +

    use bitwise comparisons on binary representation of integer for refinement (experimental)

    +
    +
    +
    +
    +
    +
    interpolants-mode [default | assumptions | conjecture | shared | all, default default]

    choose interpolants production mode, see –interpolants-mode=help

    +

    Interpolants grammar mode

    +
    +
    default:
    +

    use the default grammar for the theory or the user-defined grammar if given

    +
    +
    assumptions:
    +

    use only operators that occur in the assumptions

    +
    +
    conjecture:
    +

    use only operators that occur in the conjecture

    +
    +
    shared:
    +

    use only operators that occur both in the assumptions and the conjecture

    +
    +
    all:
    +

    use only operators that occur either in the assumptions or the conjecture

    +
    +
    +
    +
    +
    +
    ite-simp [type bool, default false] (also --no-*)

    [experts only]

    +

    turn on ite simplification (Kim (and Somenzi) et al., SAT 2009)

    +
    +
    +
    +
    learned-rewrite [type bool, default false] (also --no-*)

    rewrite the input based on learned literals

    +
    +
    +
    +
    minimal-unsat-cores [type bool, default false] (also --no-*)

    [experts only]

    +

    if an unsat core is produced, it is reduced to a minimal unsat core

    +
    +
    +
    +
    model-cores [none | simple | non-implied, default none]

    mode for producing model cores

    +

    Model cores modes.

    +
    +
    none:
    +

    Do not compute model cores.

    +
    +
    simple:
    +

    Only include a subset of variables whose values are sufficient to show the input formula is satisfied by the given model.

    +
    +
    non-implied:
    +

    Only include a subset of variables whose values, in addition to the values of variables whose values are implied, are sufficient to show the input formula is satisfied by the given model.

    +
    +
    +
    +
    +
    +
    model-var-elim-uneval [type bool, default true] (also --no-*)

    [experts only]

    +

    allow variable elimination based on unevaluatable terms to variables

    +
    +
    +
    +
    on-repeat-ite-simp [type bool, default false] (also --no-*)

    [experts only]

    +

    do the ite simplification pass again if repeating simplification

    +
    +
    +
    +
    print-cores-full [type bool, default false] (also --no-*)

    print all formulas regardless of whether they are named, e.g. in unsat cores

    +
    +
    +
    +
    produce-abducts [type bool, default false] (also --no-*)

    support the get-abduct command

    +
    +
    +
    +
    produce-assertions | interactive-mode [type bool, default true] (also --no-*)

    keep an assertions list. Note this option is always enabled.

    +
    +
    +
    +
    produce-assignments [type bool, default false] (also --no-*)

    support the get-assignment command

    +
    +
    +
    +
    produce-difficulty [type bool, default false] (also --no-*)

    enable tracking of difficulty.

    +
    +
    +
    +
    produce-interpolants [type bool, default false] (also --no-*)

    turn on interpolation generation.

    +
    +
    +
    +
    produce-learned-literals [type bool, default false] (also --no-*)

    produce learned literals, support get-learned-literals

    +
    +
    +
    +
    produce-unsat-assumptions [type bool, default false] (also --no-*)

    turn on unsat assumptions generation

    +
    +
    +
    +
    produce-unsat-cores [type bool, default false] (also --no-*)

    turn on unsat core generation. Unless otherwise specified, cores will be produced using SAT soving under assumptions and preprocessing proofs.

    +
    +
    +
    +
    proof-mode [off | pp-only | sat-proof | full-proof | full-proof-strict, default off]

    [experts only]

    +

    choose proof mode, see –proof-mode=help

    +

    proof modes.

    +
    +
    off:
    +

    Do not produce proofs.

    +
    +
    pp-only:
    +

    Only produce proofs for preprocessing.

    +
    +
    sat-proof:
    +

    Produce proofs for preprocessing and for the SAT solver.

    +
    +
    full-proof:
    +

    Produce full proofs of preprocessing, SAT and theory lemmas.

    +
    +
    full-proof-strict:
    +

    Produce full proofs of preprocessing, SAT and theory lemmas. Additionally disable techniques that will lead to incomplete proofs.

    +
    +
    +
    +
    +
    +
    repeat-simp [type bool, default false] (also --no-*)

    [experts only]

    +

    make multiple passes with nonclausal simplifier

    +
    +
    +
    +
    simp-ite-compress [type bool, default false] (also --no-*)

    [experts only]

    +

    enables compressing ites after ite simplification

    +
    +
    +
    +
    simp-with-care [type bool, default false] (also --no-*)

    [experts only]

    +

    enables simplifyWithCare in ite simplificiation

    +
    +
    +
    +
    simplification | simplification-mode [none | batch, default batch]

    choose simplification mode, see –simplification=help

    +

    Simplification modes.

    +
    +
    none:
    +

    Do not perform nonclausal simplification.

    +
    +
    batch:
    +

    Save up all ASSERTions; run nonclausal simplification and clausal (MiniSat) propagation for all of them only after reaching a querying command (CHECKSAT or QUERY or predicate SUBTYPE declaration).

    +
    +
    +
    +
    +
    +
    simplification-bcp [type bool, default false] (also --no-*)

    [experts only]

    +

    apply Boolean constant propagation as a substitution during simplification

    +
    +
    +
    +
    solve-bv-as-int [off | sum | iand | bv | bitwise, default off]

    mode for translating BVAnd to integer

    +

    solve-bv-as-int modes.

    +
    +
    off:
    +

    Do not translate bit-vectors to integers

    +
    +
    sum:
    +

    Generate a sum expression for each bvand instance, based on the value in –solve-bv-as-int-granularity

    +
    +
    iand:
    +

    Translate bvand to the iand operator

    +
    +
    bv:
    +

    Translate bvand back to bit-vectors

    +
    +
    bitwise:
    +

    Introduce a UF operator for bvand, and eagerly add bitwise lemmas

    +
    +
    +
    +
    +
    +
    solve-int-as-bv [type uint64_t, N <= 4294967295, default 0]

    attempt to solve a pure integer satisfiable problem by bitblasting in sufficient bitwidth (experimental)

    +
    +
    +
    +
    solve-real-as-int [type bool, default false] (also --no-*)

    attempt to solve a pure real satisfiable problem as an integer problem (for non-linear)

    +
    +
    +
    +
    sort-inference [type bool, default false] (also --no-*)

    calculate sort inference of input problem, convert the input based on monotonic sorts

    +
    +
    +
    +
    static-learning [type bool, default true] (also --no-*)

    use static learning (on by default)

    +
    +
    +
    +
    timeout-core-timeout [type uint64_t, default 10000]

    [experts only]

    +

    timeout (in milliseconds) for satisfiability checks for timeout cores

    +
    +
    +
    +
    unconstrained-simp [type bool, default false] (also --no-*)

    turn on unconstrained simplification (see Bruttomesso/Brummayer PhD thesis). Fully supported only in (subsets of) the logic QF_ABV.

    +
    +
    +
    +
    unsat-cores-mode [off | sat-proof | assumptions, default off]

    [experts only]

    +

    choose unsat core mode, see –unsat-cores-mode=help

    +

    unsat cores modes.

    +
    +
    off:
    +

    Do not produce unsat cores.

    +
    +
    sat-proof:
    +

    Produce unsat cores from the SAT proof and prepocessing proofs.

    +
    +
    assumptions:
    +

    Produce unsat cores using solving under assumptions and preprocessing proofs.

    +
    +
    +
    +
    +
    +
    +

    Strings Theory Module

    +
    +
    re-elim [off | on | agg, default off]

    regular expression elimination mode

    +

    Regular expression elimination modes.

    +
    +
    off:
    +

    Do not use regular expression elimination.

    +
    +
    on:
    +

    Use regular expression elimination.

    +
    +
    agg:
    +

    Use aggressive regular expression elimination.

    +
    +
    +
    +
    +
    +
    re-inter-mode [all | constant | one-constant | none, default none]

    [experts only]

    +

    determines which regular expressions intersections to compute

    +

    Regular expression intersection modes.

    +
    +
    all:
    +

    Compute intersections for all regular expressions.

    +
    +
    constant:
    +

    Compute intersections only between regular expressions that do not contain re.allchar or re.range.

    +
    +
    one-constant:
    +

    Compute intersections only between regular expressions such that at least one side does not contain re.allchar or re.range.

    +
    +
    none:
    +

    Do not compute intersections for regular expressions.

    +
    +
    +
    +
    +
    +
    seq-array [lazy | eager | none, default none]

    [experts only]

    +

    use array-inspired solver for sequence updates in eager or lazy mode

    +

    use array-inspired solver for sequence updates in eager or lazy mode

    +
    +
    lazy:
    +

    use array-inspired solver for sequence updates in lazy mode

    +
    +
    eager:
    +

    use array-inspired solver for sequence updates in eager mode

    +
    +
    none:
    +

    do not use array-inspired solver for sequence updates

    +
    +
    +
    +
    +
    +
    strings-alpha-card [type uint64_t, N <= 196608, default 196608]

    [experts only]

    +

    the assumed cardinality of the alphabet of characters for strings, which is a prefix of the interval of unicode code points in the SMT-LIB standard

    +
    +
    +
    +
    strings-check-entail-len [type bool, default true] (also --no-*)

    check entailment between length terms to reduce splitting

    +
    +
    +
    +
    strings-deq-ext [type bool, default false] (also --no-*)

    use extensionality for string disequalities

    +
    +
    +
    +
    strings-eager-eval [type bool, default true] (also --no-*)

    perform eager context-dependent evaluation for applications of string kinds in the equality engine

    +
    +
    +
    +
    strings-eager-len-re [type bool, default false] (also --no-*)

    use regular expressions for eager length conflicts

    +
    +
    +
    +
    strings-eager-reg [type bool, default true] (also --no-*)

    [experts only]

    +

    do registration lemmas for terms during preregistration. If false, do registration lemmas for terms when they appear in asserted literals

    +
    +
    +
    +
    strings-eager-solver [type bool, default true] (also --no-*)

    use the eager solver

    +
    +
    +
    +
    strings-exp [type bool, default false] (also --no-*)

    experimental features in the theory of strings

    +
    +
    +
    +
    strings-ff [type bool, default true] (also --no-*)

    [experts only]

    +

    do flat form inferences

    +
    +
    +
    +
    strings-fmf [type bool, default false] (also --no-*)

    the finite model finding used by the theory of strings

    +
    +
    +
    +
    strings-infer-as-lemmas [type bool, default false] (also --no-*)

    [experts only]

    +

    always send lemmas out instead of making internal inferences

    +
    +
    +
    +
    strings-infer-sym [type bool, default true] (also --no-*)

    [experts only]

    +

    generalized inferences in strings based on proxy symbols

    +
    +
    +
    +
    strings-lazy-pp [type bool, default true] (also --no-*)

    perform string preprocessing lazily

    +
    +
    +
    +
    strings-len-norm [type bool, default true] (also --no-*)

    [experts only]

    +

    strings length normalization lemma

    +
    +
    +
    +
    strings-mbr [type bool, default true] (also --no-*)

    use models to avoid reductions for extended functions that introduce quantified formulas

    +
    +
    +
    +
    strings-model-max-len [type uint64_t, N <= 2147483647, default 65536]

    [experts only]

    +

    The maximum size of string values in models

    +
    +
    +
    +
    strings-process-loop-mode [full | simple | simple-abort | none | abort, default full]

    determines how to process looping string equations

    +

    Loop processing modes.

    +
    +
    full:
    +

    Perform full processing of looping word equations.

    +
    +
    simple:
    +

    Omit normal loop breaking (default with –strings-fmf).

    +
    +
    simple-abort:
    +

    Abort when normal loop breaking is required.

    +
    +
    none:
    +

    Omit loop processing.

    +
    +
    abort:
    +

    Abort if looping word equations are encountered.

    +
    +
    +
    +
    +
    +
    strings-re-posc-eager [type bool, default false] (also --no-*)

    [experts only]

    +

    eager reduction of positive membership into concatenation

    +
    +
    +
    +
    strings-regexp-inclusion [type bool, default true] (also --no-*)

    use regular expression inclusion for finding conflicts and avoiding regular expression unfolding

    +
    +
    +
    +
    strings-rexplain-lemmas [type bool, default true] (also --no-*)

    [experts only]

    +

    regression explanations for string lemmas

    +
    +
    +
    +
    +

    Theory Layer Module

    +
    +
    assign-function-values [type bool, default true] (also --no-*)

    [experts only]

    +

    assign values for uninterpreted functions in models

    +
    +
    +
    +
    conflict-process [none | min | min-ext, default none]

    [experts only]

    +

    mode for processing theory conflicts

    +

    Defines mode for processing theory conflicts.

    +
    +
    none:
    +

    Do not post-process conflicts from theory solvers.

    +
    +
    min:
    +

    Do simple minimization for conflicts from theory solvers.

    +
    +
    min-ext:
    +

    Do minimization for conflicts from theory solvers, relying on the extended rewriter.

    +
    +
    +
    +
    +
    +
    ee-mode [distributed | central, default distributed]

    [experts only]

    +

    mode for managing equalities across theory solvers

    +

    Defines mode for managing equalities across theory solvers.

    +
    +
    distributed:
    +

    Each theory maintains its own equality engine.

    +
    +
    central:
    +

    All applicable theories use the central equality engine.

    +
    +
    +
    +
    +
    +
    lemma-inprocess [full | light | none, default none]

    [experts only]

    +

    Modes for inprocessing lemmas.

    +

    Modes for inprocessing lemmas.

    +
    +
    full:
    +

    Full inprocessing.

    +
    +
    light:
    +

    Light inprocessing.

    +
    +
    none:
    +

    No inprocessing.

    +
    +
    +
    +
    +
    +
    lemma-inprocess-infer-eq-lit [type bool, default false] (also --no-*)

    [experts only]

    +

    Infer equivalent literals when using lemma inprocess

    +
    +
    +
    +
    lemma-inprocess-subs [all | simple, default simple]

    [experts only]

    +

    Modes for substitutions for inprocessing lemmas.

    +

    Modes for substitutions for inprocessing lemmas.

    +
    +
    all:
    +

    All substitutions.

    +
    +
    simple:
    +

    Simple substitutions.

    +
    +
    +
    +
    +
    +
    relevance-filter [type bool, default false] (also --no-*)

    [experts only]

    +

    enable analysis of relevance of asserted literals with respect to the input formula

    +
    +
    +
    +
    tc-mode [care-graph, default care-graph]

    [experts only]

    +

    mode for theory combination

    +

    Defines mode for theory combination.

    +
    +
    care-graph:
    +

    Use care graphs for theory combination.

    +
    +
    +
    +
    +
    +
    theoryof-mode [type | term, default type]

    [experts only]

    +

    mode for Theory::theoryof()

    +

    Defines how we associate theories with terms.

    +
    +
    type:
    +

    Type variables, constants and equalities by type.

    +
    +
    term:
    +

    Type variables as uninterpreted, type constants by theory, equalities by the parametric theory.

    +
    +
    +
    +
    +
    +
    +

    Uninterpreted Functions Theory Module

    +
    +
    eager-arith-bv-conv [type bool, default false] (also --no-*)

    [experts only]

    +

    eagerly expand bit-vector to arithmetic conversions during preprocessing

    +
    +
    +
    +
    model-based-arith-bv-conv [type bool, default false] (also --no-*)

    [experts only]

    +

    model-based inferences for bit-vector to arithmetic conversions

    +
    +
    +
    +
    symmetry-breaker [type bool, default true] (also --no-*)

    [experts only]

    +

    use UF symmetry breaker (Deharbe et al., CADE 2011)

    +
    +
    +
    +
    uf-card-exp [type bool, default true] (also --no-*)

    [experts only]

    +

    allows logics with UF+cardinality

    +
    +
    +
    +
    uf-ho-exp [type bool, default true] (also --no-*)

    [experts only]

    +

    enables the higher-order logic solver in applicable logics

    +
    +
    +
    +
    uf-ho-ext [type bool, default true] (also --no-*)

    [experts only]

    +

    apply extensionality on function symbols

    +
    +
    +
    +
    uf-lambda-qe [type bool, default false] (also --no-*)

    [experts only]

    +

    apply quantifier elimination eagerly when two lambdas are equated

    +
    +
    +
    +
    uf-lazy-ll [type bool, default true] (also --no-*)

    do lambda lifting lazily

    +
    +
    +
    +
    uf-ss [full | no-minimal | none, default full]

    mode of operation for uf with cardinality solver.

    +

    UF with cardinality options currently supported by the –uf-ss option when combined with finite model finding.

    +
    +
    full:
    +

    Default, use UF with cardinality to find minimal models for uninterpreted sorts.

    +
    +
    no-minimal:
    +

    Use UF with cardinality to shrink models, but do no enforce minimality.

    +
    +
    none:
    +

    Do not use UF with cardinality to shrink model sizes.

    +
    +
    +
    +
    +
    +
    uf-ss-abort-card [type int64_t, default -1]

    tells the uf with cardinality to only consider models that interpret uninterpreted sorts of cardinality at most N (-1 == no limit, default)

    +
    +
    +
    +
    uf-ss-fair [type bool, default true] (also --no-*)

    use fair strategy for finite model finding multiple sorts

    +
    +
    +
    +
    uf-ss-fair-monotone [type bool, default false] (also --no-*)

    [experts only]

    +

    group monotone sorts when enforcing fairness for finite model finding

    +
    +
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/output-tags.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/output-tags.html new file mode 100644 index 0000000000..5da0180032 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/output-tags.html @@ -0,0 +1,463 @@ + + + + + + + + + + + + + Output tags — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    +
      +
    • + +
    • +
    • +
    +
    +
    +
    +
    + +
    +

    Output tags

    +

    cvc5 supports printing information about certain aspects of the solving process +that is intended for regular users. This feature can be enabled using the +output option.

    +

    The following output tags are currently supported:

    +
    +

    inst

    +

    With -o inst, cvc5 prints information about quantifier instantions for individual quantifers.

    +
    $ bin/cvc5 -o inst ../test/regress/cli/regress1/quantifiers/qid-debug-inst.smt2
    +(num-instantiations myQuant1 1)
    +(num-instantiations myQuant2 1)
    +unsat
    +
    +
    +
    +
    +

    inst-strategy

    +

    With -o inst-strategy, cvc5 prints a summary of the instantiation techniques as they are run.

    +
    $ bin/cvc5 -o inst-strategy ../test/regress/cli/regress2/quantifiers/javafe.tc.CheckCompilationUnit.001.smt2
    +(inst-strategy cbqi :inst 1 :time 0.00025)
    +(inst-strategy cbqi :inst 1 :time 0.002043)
    +(inst-strategy cbqi :inst 2 :time 0.003898)
    +(inst-strategy cbqi :time 0.002989)
    +(inst-strategy ematching :inst 119 :time 0.015116)
    +(inst-strategy cbqi :inst 1 :time 0.002756)
    +(inst-strategy cbqi :inst 5 :time 0.006344)
    +(inst-strategy cbqi :time 0.006073)
    +(inst-strategy cbqi :time 0.006023)
    +(inst-strategy ematching :inst 78 :time 0.013969)
    +(inst-strategy cbqi :inst 1 :time 0.003648)
    +(inst-strategy cbqi :inst 1 :time 0.000111)
    +(inst-strategy cbqi :inst 1 :time 0.003596)
    +unsat
    +
    +
    +
    +
    +

    oracles

    +

    With -o oracles, cvc5 prints the I/O of calls made to external oracles.

    +
    +
    +

    sygus

    +

    With -o sygus, cvc5 prints information about the internal SyGuS solver including enumerated terms and generated candidates.

    +
    $ bin/cvc5 -o sygus ../test/regress/cli/regress0/sygus/print-debug.sy
    +(sygus-enum 0)
    +(sygus-candidate (f 0))
    +(sygus-enum 1)
    +(sygus-candidate (f 1))
    +(
    +(define-fun f () Int 1)
    +)
    +
    +
    +
    +
    +

    sygus-grammar

    +

    With -o sygus-grammar, cvc5 prints the grammar it generates for a function-to-synthesize when no grammar was provided.

    +
    $ bin/cvc5 -o sygus-grammar ../test/regress/cli/regress0/sygus/print-grammar.sy
    +(sygus-grammar f ((A_Int Int) (A_Bool Bool) )((A_Int Int (x y 0 1 (+ A_Int A_Int) (- A_Int A_Int) (ite A_Bool A_Int A_Int)))(A_Bool Bool (true false (= A_Int A_Int) (<= A_Int A_Int) (not A_Bool) (and A_Bool A_Bool) (or A_Bool A_Bool)))))
    +(
    +(define-fun f ((x Int) (y Int)) Int 0)
    +)
    +
    +
    +
    +
    +

    sygus-enumerator

    +

    With -o sygus-enumerator, cvc5 prints enumerators generated by the sygus solver.

    +
    $ bin/cvc5 -o sygus-enumerator ../test/regress/cli/regress0/sygus/print-enumerator.sy
    +(sygus-enumerator :synth-fun f :role SINGLE_SOLUTION :type FAST)
    +(
    +(define-fun f ((x Int) (y Int)) Int x)
    +)
    +
    +
    +
    +
    +

    sygus-sol-gterm

    +

    With -o sygus-sol-gterm, cvc5 prints annotations for terms in sygus solutions that indicate the grammar used to generate them.

    +
    $ bin/cvc5 -o sygus-sol-gterm ../test/regress/cli/regress0/sygus/print-sygus-gterm.sy
    +(sygus-sol-gterm (f (! (+ (! 1 :gterm a) (! 1 :gterm b)) :gterm a)))
    +(
    +(define-fun f () Int (+ 1 1))
    +)
    +
    +
    +
    +
    +

    trigger

    +

    With -o trigger, cvc5 prints the selected triggers when solving a quantified formula.

    +
    $ bin/cvc5 -o trigger ../test/regress/cli/regress1/quantifiers/qid-debug-inst.smt2
    +(trigger myQuant1 ((not (= (R x) false))) :simple)
    +(trigger myQuant1 ((not (= (P x) true))) :simple)
    +(trigger myQuant2 ((not (= (P x) false))) :simple)
    +(trigger myQuant2 ((not (= (Q x) true))) :simple)
    +unsat
    +
    +
    +
    +
    +

    raw-benchmark

    +

    With -o raw-benchmark, cvc5 prints the benchmark back just as it has been parsed.

    +
    $ bin/cvc5 -o raw-benchmark ../test/regress/cli/regress0/datatypes/datatype-dump.cvc.smt2
    +(set-logic ALL)
    +(declare-datatypes ((nat 0)) (((succ (pred nat)) (zero))))
    +(declare-fun x () nat)
    +(check-sat-assuming ( (not (and (not ((_ is succ) x)) (not ((_ is zero) x)))) ))
    +sat
    +
    +
    +
    +
    +

    learned-lits

    +

    With -o learned-lits, cvc5 prints input literals that it has learned to hold globally.

    +
    $ bin/cvc5 -o learned-lits ../test/regress/cli/regress0/printer/learned-lit-output.smt2
    +(learned-lit (>= x 11) :preprocess)
    +(learned-lit (>= x 5) :input)
    +(learned-lit (>= y 1) :input)
    +sat
    +
    +
    +
    +
    +

    subs

    +

    With -o subs, cvc5 prints top-level substitutions learned during preprocessing.

    +
    $ bin/cvc5 -o subs ../test/regress/cli/regress0/printer/print_subs.smt2
    +(substitution (= a 3))
    +sat
    +
    +
    +
    +
    +

    post-asserts

    +

    With -o post-asserts, cvc5 prints a benchmark corresponding to the assertions of the input problem after preprocessing.

    +
    $ bin/cvc5 -o post-asserts ../test/regress/cli/regress0/printer/post-asserts-output.smt2
    +;; post-asserts start
    +(set-logic ALL)
    +(assert true)
    +(assert true)
    +(check-sat)
    +;; post-asserts end
    +sat
    +
    +
    +
    +
    +

    pre-asserts

    +

    With -o pre-asserts, cvc5 prints a benchmark corresponding to the assertions of the input problem before preprocessing.

    +
    $ bin/cvc5 -o pre-asserts ../test/regress/cli/regress0/printer/pre-asserts-output.smt2
    +;; pre-asserts start
    +(set-logic ALL)
    +(declare-fun x () Int)
    +(assert (= x x))
    +(check-sat)
    +;; pre-asserts end
    +sat
    +
    +
    +
    +
    +

    deep-restart

    +

    With -o deep-restart, cvc5 prints when it performs a deep restart along with the literals it has learned.

    +
    $ bin/cvc5 -o deep-restart ../test/regress/cli/regress0/printer/deep-restart-output.smt2
    +(deep-restart ((= f k)))
    +sat
    +
    +
    +
    +
    +

    incomplete

    +

    With -o incomplete, cvc5 prints reason for why it answers unknown for any given check-sat query.

    +
    $ bin/cvc5 -o incomplete ../test/regress/cli/regress0/printer/incomplete.smt2
    +(incomplete INCOMPLETE QUANTIFIERS)
    +unknown
    +
    +
    +
    +
    +

    lemmas

    +

    With -o lemmas, cvc5 prints lemmas as they are added to the SAT solver.

    +
    $ bin/cvc5 -o lemmas ../test/regress/cli/regress0/printer/print_sat_lemmas.smt2
    +(lemma (=> (forall ((x Int)) (P x)) (P 5)) :source QUANTIFIERS_INST_CBQI_CONFLICT)
    +unsat
    +
    +
    +
    +
    +

    trusted-proof-steps

    +

    With -o trusted-proof-steps, cvc5 prints formulas corresponding to trusted proof steps in final proofs.

    +
    $ bin/cvc5 -o trusted-proof-steps ../test/regress/cli/regress0/printer/print_trusted_proof_steps.smt2
    +unsat
    +(trusted-proof-step (= (= 0 1) false) :rule TRUST_THEORY_REWRITE :theory THEORY_ARITH)
    +(define @t1 () (= 0 1))
    +(assume @p1 @t1)
    +; WARNING: add trust step for TRUST_THEORY_REWRITE
    +; trust TRUST_THEORY_REWRITE
    +(step @p2 :rule trust :premises () :args ((= @t1 false)))
    +(step @p3 false :rule eq_resolve :premises (@p1 @p2))
    +
    +
    +
    +
    +

    timeout-core-benchmark

    +

    With -o timeout-core-benchmark, cvc5 prints the corresponding benchmark when it successfully computes a timeout core.

    +
    $ bin/cvc5 -o timeout-core-benchmark ../test/regress/cli/regress1/print_timeout_core.smt2
    +;; timeout core
    +(set-logic ALL)
    +(declare-fun x () Int)
    +(assert (= (* x x x) 564838384999))
    +(check-sat)
    +;; end timeout core
    +unknown
    +(
    +hard
    +)
    +
    +
    +
    +
    +

    unsat-core-benchmark

    +

    With -o unsat-core-benchmark, cvc5 prints the corresponding benchmark when it successfully computes an unsat core.

    +
    $ bin/cvc5 -o unsat-core-benchmark ../test/regress/cli/regress0/printer/print_unsat_core.smt2
    +unsat
    +;; unsat core
    +(set-logic ALL)
    +(declare-fun x () Int)
    +(assert (and (> x 2) (< x 0)))
    +(check-sat)
    +;; end unsat core
    +(
    +x20
    +)
    +
    +
    +
    +
    +

    unsat-core-lemmas-benchmark

    +

    With -o unsat-core-lemmas-benchmark, cvc5 prints the corresponding benchmark when it successfully computes an unsat core that includes the theory lemmas used.

    +
    $ bin/cvc5 -o unsat-core-lemmas-benchmark ../test/regress/cli/regress0/printer/print_unsat_core_lemmas.smt2
    +unsat
    +;; unsat core + lemmas
    +(set-logic ALL)
    +(declare-fun x () Int)
    +(assert (and (> x 2) (< x 0)))
    +(assert (or (not (>= x 3)) (>= x 0)))
    +(check-sat)
    +;; end unsat core + lemmas
    +(
    +(or (not (>= x 3)) (>= x 0))
    +)
    +
    +
    +
    +
    +

    unsat-core-lemmas

    +

    With -o unsat-core-lemmas, cvc5 prints diagnostic information on lemmas that appear in an unsat core with theory lemmas.

    +
    $ bin/cvc5 -o unsat-core-lemmas ../test/regress/cli/regress0/printer/print_unsat_core_lemmas.smt2
    +unsat
    +;; unsat core lemmas start
    +(unsat-core-lemma (or (not (>= x 3)) (>= x 0)) :source ARITH_UNATE :timestamp 0)
    +;; unsat core lemmas end
    +(
    +(or (not (>= x 3)) (>= x 0))
    +)
    +
    +
    +
    +
    +

    portfolio

    +

    With -o portfolio, cvc5 prints the option strings tried in portfolio mode.

    +
    $ bin/cvc5 -o portfolio ../test/regress/cli/regress0/printer/portfolio-out.smt2 --use-portfolio
    +(portfolio "--simplification=none --enum-inst" :timeout 0.025)
    +(portfolio-success "--simplification=none --enum-inst")
    +unsat
    +
    +
    +
    +
    +

    block-model

    +

    With -o block-model, cvc5 prints the formulas used when block-model is run.

    +
    $ bin/cvc5 -o block-model ../test/regress/cli/regress0/printer/block_model_out.smt2
    +sat
    +(block-model (and (> y 0) (= x 4)))
    +sat
    +(block-model (and (> y 0) (= x 5)))
    +
    +
    +
    +
    +

    options-auto

    +

    With -o options-auto, cvc5 prints the options set during automatic configuration.

    +
    $ bin/cvc5 -o options-auto ../test/regress/cli/regress0/printer/print_options_auto.smt2
    +(options-auto symmetry-breaker 0 :reason "logic and options")
    +(options-auto bv-propagate false :reason "bitblast solver")
    +(options-auto arith-rewrite-equalities 1 :reason "logic")
    +(options-auto standard-effort-variable-order-pivots 200 :reason "logic")
    +(options-auto nl-rlv-assert-bounds 1 :reason "non-quantified logic")
    +(options-auto decision stoponly :reason "logic")
    +(options-auto quant-dsplit none :reason "non-datatypes logic")
    +(options-auto nl-cov false :reason "logic without reals, or involving integers or quantifiers")
    +sat
    +
    +
    +
    +
    +

    rare-db

    +

    With -o rare-db, upon initialization, cvc5 prints the entire set of RARE rewrite rules as they are defined in the proof signature.

    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/proofs/output_alethe.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/proofs/output_alethe.html new file mode 100644 index 0000000000..e6285d0a75 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/proofs/output_alethe.html @@ -0,0 +1,194 @@ + + + + + + + + + + + + + Proof format: Alethe — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Proof format: Alethe

    +

    Using the flag proof-format-mode=alethe, +cvc5 outputs proofs in the Alethe proof format.

    +

    The Alethe proof format is a flexible proof format for SMT solvers based on +SMT-LIB. It includes both coarse- and fine-grained steps and was first +implemented in the veriT solver [BdODeharbeF09]. Alethe proofs can be +checked via reconstruction within Isabelle/HOL [BBFF20, SFD21] +as well as within Coq, the latter via the SMTCoq plugin [AFGregoire+11, EMT+17]. There is also a high performance Rust proof checker and elaborator +for Alethe: Carcara, available here. For a quick start, the cvc5 +repository contains a script to +download and install the Carcara checker’s version with full support for cvc5 +Alethe proofs, and create scripts for generating proofs with cvc5 and checking +them with Carcara.

    +

    Currently, the theories of equality with uninterpreted functions, linear +arithmetic, bit-vectors and parts of the theory of strings (with or without +quantifiers) are supported in cvc5’s Alethe proofs.

    +

    A simple example of cvc5 producing a proof in the Alethe proof format:

    +
    $ bin/cvc5 --dump-proofs --proof-format-mode=alethe ../test/regress/cli/regress0/proofs/qgu-fuzz-1-bool-sat.smt2
    +unsat
    +(assume a0 (! (and (! (or d b) :named @p_7) (! (= c d) :named @p_6) (! (not (! (ite d c false) :named @p_4)) :named @p_5) (! (= (! (or b d) :named @p_2) (! (= b d) :named @p_1)) :named @p_3)) :named @p_8))
    +(step t0 (cl @p_3) :rule and :premises (a0) :args (3))
    +(step t1 (cl (! (not @p_2) :named @p_19) @p_1) :rule equiv1 :premises (t0))
    +(step t2 (cl @p_1 @p_19) :rule reordering :premises (t1))
    +(step t3 (cl (! (not @p_1) :named @p_11) (! (not b) :named @p_10) d) :rule equiv_pos2)
    +(step t4 (cl d @p_10 @p_11) :rule reordering :premises (t3))
    +(step t5 (cl (not (! (= @p_5 (! (not d) :named @p_9)) :named @p_12)) (not @p_5) @p_9) :rule equiv_pos2)
    +(step t6 (cl (! (= @p_4 (! (and d c) :named @p_13)) :named @p_18)) :rule hole :args ("TRUST_THEORY_REWRITE" @p_18 1 6))
    +(step t7 (cl (= @p_5 (! (not @p_13) :named @p_14))) :rule cong :premises (t6))
    +(step t8 (cl (= d d)) :rule refl)
    +(step t9 (cl @p_6) :rule and :premises (a0) :args (1))
    +(step t10 (cl (= @p_13 (! (and d d) :named @p_15))) :rule cong :premises (t8 t9))
    +(step t11 (cl (= @p_14 (! (not @p_15) :named @p_16))) :rule cong :premises (t10))
    +(step t12 (cl (! (= @p_15 d) :named @p_17)) :rule hole :args ("TRUST_THEORY_REWRITE" @p_17 1 6))
    +(step t13 (cl (= @p_16 @p_9)) :rule cong :premises (t12))
    +(step t14 (cl (= @p_14 @p_9)) :rule trans :premises (t11 t13))
    +(step t15 (cl @p_12) :rule trans :premises (t7 t14))
    +(step t16 (cl @p_5) :rule and :premises (a0) :args (2))
    +(step t17 (cl @p_9) :rule resolution :premises (t5 t15 t16))
    +(step t18 (cl @p_7) :rule and :premises (a0) :args (0))
    +(step t19 (cl d b) :rule or :premises (t18))
    +(step t20 (cl b d) :rule reordering :premises (t19))
    +(step t21 (cl b) :rule resolution :premises (t20 t17))
    +(step t22 (cl @p_11) :rule resolution :premises (t4 t17 t21))
    +(step t23 (cl @p_2 @p_10) :rule or_neg :args (0))
    +(step t24 (cl @p_2 @p_9) :rule or_neg :args (1))
    +(step t25 (cl @p_2 @p_2) :rule resolution :premises (t20 t23 t24))
    +(step t26 (cl @p_2) :rule contraction :premises (t25))
    +(step t27 (cl) :rule resolution :premises (t2 t22 t26))
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/proofs/output_cpc.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/proofs/output_cpc.html new file mode 100644 index 0000000000..3d69552978 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/proofs/output_cpc.html @@ -0,0 +1,222 @@ + + + + + + + + + + + + + Proof format: Cooperating Proof Calculus — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Proof format: Cooperating Proof Calculus

    +

    Using option proof-format-mode=cpc, cvc5 +outputs proofs in the Cooperating Proof Calculus proof format.

    +

    This calculus was designed to faithfully represent cvc5’s internal reasoning. +As a disclaimer, this means that it treats certain operators differently from +the SMT-LIB standard. +As an example, cvc5 uses mixed arithmetic internally, where integers and reals +can appear together. +A comprehensive list of these differences can be found in the Eunoia definition +of CPC, as described below.

    +

    Ethos is an efficient proof checker written +in C++ which can check proofs in the CPC format. +For a quick start, the cvc5 repository contains a +script to download and install +the Ethos checker, and create scripts for generating proofs with cvc5 and +checking them with the Ethos proof checker.

    +

    The Ethos checker is based on the logical framework Eunoia. +The Cooperating Proof Calculus has been formalized in a Eunoia signature, which +is contained within the cvc5 repository in this +file. +Based on this signature, Ethos can check CPC proofs over all theories that are +formalized in this signature. +For more details on Eunoia and a comprehensive overview of the language +supported by the Ethos checker, see the user manual +here.

    +

    Note that several proof rules in the Cooperating Proof Calculus are not yet +supported in Eunoia signatures. +Steps that use such rules are printed as trust steps in the proof. +A trust step proves an arbitrary formula with no provided justification. +The resulting proof contains warnings for trust steps that indicate which +internal proof rules were recorded as trust steps in the proof.

    +

    Upon successful exit, ethos will return the output incomplete if any trust +step is used in the proof, indicating that the reasoning in the proof was +incomplete. +Otherwise, if all proof steps are fully specified, ethos will return the +output correct. +All proofs in the cpc format are closed refutations of the input, in that the +proof will assume formulas from the input and end with a step proving false.

    +

    For more fine-grained proofs, the additional option +proof-granularity=dsl-rewrite can be +passed to cvc5. +This will result in proofs with more detail.

    +

    A simple example of cvc5 producing a proof in CPC proof format is shown below. +Notice that the concrete syntax of CPC is very similar to the Alethe format. +However, the proof rules used by these two formats are different.

    +
    $ bin/cvc5 --dump-proofs --proof-format-mode=cpc --proof-granularity=dsl-rewrite ../test/regress/cli/regress0/proofs/qgu-fuzz-1-bool-sat.smt2
    +unsat
    +(declare-const c Bool)
    +(declare-const b Bool)
    +(declare-const d Bool)
    +(define @t1 () (= b d))
    +(define @t2 () (or b d))
    +(define @t3 () (@list true false))
    +(assume @p1 (and (or d b) (= c d) (not (ite d c false)) (= @t2 @t1)))
    +(step @p2 :rule and_elim :premises (@p1) :args (0))
    +(step @p3 :rule reordering :premises (@p2) :args (@t2))
    +(step @p4 :rule aci_norm :args ((= (and d d) d)))
    +(step @p5 :rule cong :premises (@p4) :args (not))
    +(step @p6 :rule and_elim :premises (@p1) :args (1))
    +(step @p7 :rule refl :args (d))
    +(step @p8 :rule nary_cong :premises (@p7 @p6) :args (and))
    +(step @p9 :rule cong :premises (@p8) :args (not))
    +(step @p10 :rule trans :premises (@p9 @p5))
    +(step @p11 :rule ite-else-false :args (d c))
    +(step @p12 :rule cong :premises (@p11) :args (not))
    +(step @p13 :rule trans :premises (@p12 @p10))
    +(step @p14 :rule and_elim :premises (@p1) :args (2))
    +(step @p15 :rule eq_resolve :premises (@p14 @p13))
    +(step @p16 :rule chain_resolution :premises (@p3 @p15) :args ((@list true) (@list d)))
    +(step @p17 :rule cnf_equiv_pos1 :args (@t1))
    +(step @p18 :rule reordering :premises (@p17) :args ((or d (not b) (not @t1))))
    +(step @p19 :rule chain_resolution :premises (@p18 @p15 @p16) :args (@t3 (@list d b)))
    +(step @p20 :rule and_elim :premises (@p1) :args (3))
    +(step @p21 :rule equiv_elim1 :premises (@p20))
    +(step @p22 :rule reordering :premises (@p21) :args ((or @t1 (not @t2))))
    +(step @p23 false :rule chain_resolution :premises (@p22 @p19 @p3) :args (@t3 (@list @t1 @t2)))
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/proofs/output_dot.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/proofs/output_dot.html new file mode 100644 index 0000000000..105e1f554f --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/proofs/output_dot.html @@ -0,0 +1,148 @@ + + + + + + + + + + + + + Proof format: DOT — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Proof format: DOT

    +

    Using the flag proof-format-mode=dot, cvc5 outputs proofs in the DOT format.

    +

    The DOT format is a graph description language (see e.g. this description). It can be used, among other things, for visualization.

    +

    We leverage this format for visualizing cvc5 proofs, in the internal calculus, as a graph. One can use a default dot visualizer or the dedicated proof visualizer available here. It suffices to upload the DOT proof outputted by cvc5, saved into a file. The visualizer offers several custom features, such as fold/unfold subproofs, coloring nodes, and stepwise expansion of let terms.

    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/proofs/output_lfsc.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/proofs/output_lfsc.html new file mode 100644 index 0000000000..8e76f6acab --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/proofs/output_lfsc.html @@ -0,0 +1,214 @@ + + + + + + + + + + + + + Proof format: LFSC — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Proof format: LFSC

    +

    Using the flag proof-format-mode=lfsc, cvc5 outputs proofs in the LFSC proof format.

    +

    The LFSC proof format is based on the LF logical framework extended with computational side conditions, as described in [SOR+13]. A high performance C++ proof checker for LFSC is available here.

    +

    For a quick start, the cvc5 repository contains a script which will download and install the LFSC proof checker, and create scripts for generating proofs with cvc5 and checking them with the LFSC proof checker.

    +

    LFSC is a meta-framework, meaning that the proof rules used by cvc5 are defined in signature files, also contained within the cvc5 repository in this directory. Based on these signatures, cvc5 provides basic support for LFSC proofs over all theories that it supports.

    +

    Note that several proof rules in the internal calculus are not yet supported in LFSC signatures, and are instead printed as trust steps in the LFSC proof. A trust step proves an arbitrary formula with no provided justification. The LFSC proof contains warnings for which proof rules from the internal calculus were recorded as trust steps in the LFSC proof.

    +

    For more fine-grained proofs, the additional option proof-granularity=theory-rewrite should be passed to cvc5. This often will result in LFSC proofs with more detail, and whose trust steps correspond only to equalities corresponding to theory rewrites.

    +

    A simple example of cvc5 producing a proof in LFSC proof format:

    +
    $ bin/cvc5 --dump-proofs --proof-format-mode=lfsc --proof-granularity=theory-rewrite ../test/regress/cli/regress0/proofs/qgu-fuzz-1-bool-sat.smt2
    +unsat
    +; WARNING: adding trust step for TRUST_THEORY_REWRITE
    +(define cvc.c (var 0 Bool))
    +(define cvc.b (var 1 Bool))
    +(define cvc.d (var 2 Bool))
    +(check
    +(@ t1 (= cvc.b cvc.d)
    +(@ t2 (or cvc.b (or cvc.d false))
    +(@ t3 (ite cvc.d cvc.c false)
    +(# a0 (holds (and (or cvc.d (or cvc.b false)) (and (= cvc.c cvc.d) (and (not t3) (and (= t2 t1) true)))))
    +(: (holds false)
    +
    +(plet _  _ 
    +
    +(reordering _  t2
    +(and_elim _  _  0 a0))
    +(\ p1
    +
    +(plet _  _ 
    +
    +(refl f_and)
    +(\ p2
    +
    +(plet _  _ 
    +
    +(eq_resolve _  _ 
    +(and_elim _  _  2 a0)
    +(trans _  _  _ 
    +(cong _  _  _  _ 
    +(refl f_not)
    +(trust (= t3 (and cvc.d (and cvc.c true)))) ; from TRUST_THEORY_REWRITE
    +)
    +(trans _  _  _ 
    +(cong _  _  _  _ 
    +(refl f_not)
    +(cong _  _  _  _ 
    +(cong _  _  _  _  p2
    +(refl cvc.d))
    +(cong _  _  _  _ 
    +(cong _  _  _  _  p2
    +(and_elim _  _  1 a0))
    +(refl true))))
    +(cong _  _  _  _ 
    +(refl f_not)
    +(trust (= (and cvc.d (and cvc.d true)) cvc.d)) ; from TRUST_THEORY_REWRITE
    +))))
    +(\ p3
    +
    +
    +(resolution _  _  _ 
    +(resolution _  _  _ 
    +(reordering _  (or t1 (or (not t2) false))
    +(equiv_elim1 _  _ 
    +(and_elim _  _  3 a0)))
    +(resolution _  _  _ 
    +(resolution _  _  _ 
    +(reordering _  (or cvc.d (or (not cvc.b) (or (not t1) false)))
    +(cnf_equiv_pos1 cvc.b cvc.d)) p3 tt cvc.d)
    +(resolution _  _  _  p1 p3 tt cvc.d) ff cvc.b) tt t1) p1 ff t2)))))))))))))
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/proofs/proofs.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/proofs/proofs.html new file mode 100644 index 0000000000..99b86cd674 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/proofs/proofs.html @@ -0,0 +1,183 @@ + + + + + + + + + + + + + Proof Production — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    +
      +
    • + +
    • +
    • +
    +
    +
    +
    +
    + +
    +

    Proof Production

    +

    cvc5 produces proofs in a proof calculus that faithfully reflects its +reasoning. The calculus is called the Cooperating Proof Calculus (CPC). +cvc5 supports retrieving a proof object via the API +(see how these objects are defined in C++, +C, +Java, +Base Python).

    +
    +

    Proof Rules

    +

    A comprehensive description of the proof rules of the Cooperating Proof +Calculus can be found here:

    + +
    +
    +
    +

    Proof Formats

    +

    Optionally, cvc5 allows to convert and output its internal proofs into the +following external formats.

    +
    + +
    +

    Note that the DOT format is only meant for visualization.

    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/references.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/references.html new file mode 100644 index 0000000000..6840c4ebd2 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/references.html @@ -0,0 +1,197 @@ + + + + + + + + + + + + + References — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    +
      +
    • + +
    • +
    • +
    +
    +
    +
    +
    + +
    +

    References

    +
    +
    +
    +[AFGregoire+11] +

    Michaël Armand, Germain Faure, Benjamin Grégoire, Chantal Keller, Laurent Théry, and Benjamin Werner. A modular integration of SAT\slash SMT solvers to Coq through proof witnesses. In Jean-Pierre Jouannaud and Zhong Shao, editors, Certified Programs and Proofs (CPP), volume 7086 of Lecture Notes in Computer Science, 135–150. Springer, 2011. doi:10.1007/978-3-642-25379-9_12.

    +
    +
    +[BBRT17] +

    Kshitij Bansal, Clark W. Barrett, Andrew Reynolds, and Cesare Tinelli. A new decision procedure for finite sets and cardinality constraints in SMT. CoRR, 2017. arXiv:1702.06259.

    +
    +
    +[BBFF20] +

    Haniel Barbosa, Jasmin Christian Blanchette, Mathias Fleury, and Pascal Fontaine. Scalable fine-grained proofs for formula processing. Journal of Automated Reasoning, 64(3):485–510, 2020. URL: https://doi.org/10.1007/s10817-018-09502-y, doi:10.1007/s10817-018-09502-y.

    +
    +
    +[BFT17] +

    Clark Barrett, Pascal Fontaine, and Cesare Tinelli. The SMT-LIB Standard: Version 2.6. Technical Report, Department of Computer Science, The University of Iowa, 2017. Available at \tt www.SMT-LIB.org.

    +
    +
    +[BST07] +

    Clark W. Barrett, Igor Shikanian, and Cesare Tinelli. An abstract decision procedure for a theory of inductive data types. J. Satisf. Boolean Model. Comput., 3(1-2):21–46, 2007. doi:10.3233/sat190028.

    +
    +
    +[BdODeharbeF09] +

    Thomas Bouton, Diego Caminha B. de Oliveira, David Déharbe, and Pascal Fontaine. veriT: An Open, Trustable and Efficient SMT-Solver. In Renate A. Schmidt, editor, Conference on Automated Deduction (CADE), volume 5663 of Lecture Notes in Computer Science, 151–156. Springer, 2009. URL: http://dx.doi.org/10.1007/978-3-642-02959-2_12, doi:10.1007/978-3-642-02959-2_12.

    +
    +
    +[CGI+18] +

    Alessandro Cimatti, Alberto Griggio, Ahmed Irfan, Marco Roveri, and Roberto Sebastiani. Incremental linearization for satisfiability and verification modulo nonlinear arithmetic and transcendental functions. ACM Trans. Comput. Log., 19(3):19:1–19:52, 2018. doi:10.1145/3230639.

    +
    +
    +[EMT+17] +

    Burak Ekici, Alain Mebsout, Cesare Tinelli, Chantal Keller, Guy Katz, Andrew Reynolds, and Clark W. Barrett. Smtcoq: A plug-in for integrating SMT solvers into coq. In Rupak Majumdar and Viktor Kuncak, editors, Computer Aided Verification (CAV), volume 10427 of Lecture Notes in Computer Science, 126–133. Springer, 2017. URL: https://doi.org/10.1007/978-3-319-63390-9_7, doi:10.1007/978-3-319-63390-9_7.

    +
    +
    +[IEE19] +

    IEEE. IEEE Standard for Floating-Point Arithmetic. IEEE Std 754-2019 (Revision of IEEE 754-2008), pages 1–84, 2019. doi:10.1109/IEEESTD.2019.8766229.

    +
    +
    +[MRTB17] +

    Baoluo Meng, Andrew Reynolds, Cesare Tinelli, and Clark W. Barrett. Relational constraint solving in SMT. In Leonardo de Moura, editor, Automated Deduction - CADE 26 - 26th International Conference on Automated Deduction, Gothenburg, Sweden, August 6-11, 2017, Proceedings, volume 10395 of Lecture Notes in Computer Science, 148–165. Springer, 2017. doi:10.1007/978-3-319-63046-5_10.

    +
    +
    +[OKTB23] +

    Alex Ozdemir, Gereon Kremer, Cesare Tinelli, and Clark Barrett. Satisfiability modulo finite fields. In Constantin Enea and Akash Lal, editors, Computer Aided Verification (CAV), volume 13965 of Lecture Notes in Computer Science, 163–186. Springer, 2023. URL: https://doi.org/10.1007/978-3-031-37703-7_8, doi:10.1007/978-3-031-37703-7_8.

    +
    +
    +[OPB+24] +

    Alex Ozdemir, Shankara Pailoor, Alp Bassa, Kostas Ferles, Clark Barrett, and Işıl Dillig. Split gröbner bases for satisfiability modulo finite fields. In Computer Aided Verification (CAV), Lecture Notes in Computer Science. 2024. URL: https://ia.cr/2024/572.

    +
    +
    +[RB15] +

    Andrew Reynolds and Jasmin Christian Blanchette. A decision procedure for (co)datatypes in SMT solvers. In Amy P. Felty and Aart Middeldorp, editors, Automated Deduction - CADE-25 - 25th International Conference on Automated Deduction, Berlin, Germany, August 1-7, 2015, Proceedings, volume 9195 of Lecture Notes in Computer Science, 197–213. Springer, 2015. doi:10.1007/978-3-319-21401-6_13.

    +
    +
    +[RISK16] +

    Andrew Reynolds, Radu Iosif, Cristina Serban, and Tim King. A decision procedure for separation logic in SMT. In Cyrille Artho, Axel Legay, and Doron Peled, editors, Automated Technology for Verification and Analysis - 14th International Symposium, ATVA 2016, Chiba, Japan, October 17-20, 2016, Proceedings, volume 9938 of Lecture Notes in Computer Science, 244–261. 2016. doi:10.1007/978-3-319-46520-3_16.

    +
    +
    +[SFD21] +

    Hans-Jörg Schurr, Mathias Fleury, and Martin Desharnais. Reliable reconstruction of fine-grained proofs in a proof assistant. In André Platzer and Geoff Sutcliffe, editors, Conference on Automated Deduction (CADE), volume 12699 of Lecture Notes in Computer Science, 450–467. Springer, 2021. URL: https://doi.org/10.1007/978-3-030-79876-5_26, doi:10.1007/978-3-030-79876-5_26.

    +
    +
    +[SOR+13] +

    Aaron Stump, Duckki Oe, Andrew Reynolds, Liana Hadarean, and Cesare Tinelli. SMT proof checking using a logical framework. Formal Methods Syst. Des., 42(1):91–118, 2013. URL: https://doi.org/10.1007/s10703-012-0163-3, doi:10.1007/s10703-012-0163-3.

    +
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/resource-limits.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/resource-limits.html new file mode 100644 index 0000000000..d618026cb9 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/resource-limits.html @@ -0,0 +1,160 @@ + + + + + + + + + + + + + Resource limits — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    +
      +
    • + +
    • +
    • +
    +
    +
    +
    +
    + +
    +

    Resource limits

    +

    cvc5 supports limiting the time or resources it uses during solving via the options +tlimit, tlimit-per, +rlimit, and rlimit-per. +All these options take a single non-negative number as an argument where giving zero explicitly disables the respective limit. For time limits the number is interpreted as the number of milliseconds, and for resource limits it indicates the amount of resources.

    +

    The limits configured using tlimit and rlimit restrict time and resource usage over the whole lifetime of the solver object, respectively. +In contrast to that, tlimit-per and rlimit-per apply to every check individually (checkSat, checkSatAssuming, etc).

    +

    Except for the overall time limit (see below), the limits are checked by cvc5 itself. This means that the solver remains in a safe state after a limit has been reached. +Due to the way cvc5 checks these limits (see below), cvc5 may not precisely honor per-call time limits: if a subroutine requires a long time to finish without spending resources itself, cvc5 only realizes afterwards that the timeout has (long) passed.

    +
    +

    Overall time limit (tlimit option)

    +

    The tlimit option limits the overall running time of the cvc5 solver binary. +It is implemented using an asynchronous interrupt that is usually managed by the operating system (using setitimer). +When this interrupt occurs, cvc5 outputs a corresponding message, prints the current statistics and immediately terminates its process. The same is done when an external resource limiting mechanism is in place, for example ulimit.

    +

    This mechanism is inherently unsuited when cvc5 is used within another application process via one of its APIs: therefore, it is only honored when running as a standalone binary. +Setting tlimit via the API or the (set-option) SMT-LIB command has thus no effect.

    +
    +
    +

    Resource manager and resource spending

    +

    All other limits are enforced centrally by the resource manager as follows. +Whenever certain parts of the solver execute, they instruct the resource manager to spend a resource. +As soon as the resource manager realizes that some limit is exhausted (either the resource limit or the per-check time limit is reached), it asynchronously instructs the core solver to interrupt the check. +To not invalidate the internal state of the solver, and allow to use it again after an interrupt, the solver continues its work until it reaches a safe point in one of the core solving components. +Then, it returns unknown (with an explanation).

    +

    The intention of a resource limit is to be a deterministic measure that grows (linearly, if possible) with actual running time. +Resources are spent when lemmas are generated and during a few select events like preprocessing, rewriting, decisions and restarts in the SAT solver, or theory checks. +In case the resource spending does not properly reflect the running time, the weights of the individual resources can be modified using the rweight option, for example with --rweight=RestartStep=5.

    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/search.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/search.html new file mode 100644 index 0000000000..8d43d684ce --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/search.html @@ -0,0 +1,141 @@ + + + + + + + + + + + + Search — cvc5 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    +
      +
    • + +
    • +
    • +
    +
    +
    +
    +
    + + + + +
    + +
    + +
    +
    +
    + +
    + +
    +

    © Copyright 2024, the authors of cvc5.

    +
    + + Built with Sphinx using a + theme + provided by Read the Docs. + + +
    +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/searchindex.js b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/searchindex.js new file mode 100644 index 0000000000..bf773c5262 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/searchindex.js @@ -0,0 +1 @@ +Search.setIndex({"docnames": ["api/api", "api/c/c", "api/c/enums/cvc5kind", "api/c/enums/cvc5proofrule", "api/c/enums/cvc5roundingmode", "api/c/enums/cvc5sortkind", "api/c/enums/cvc5unknownexplanation", "api/c/enums/modes", "api/c/quickstart", "api/c/structs/cvc5optioninfo", "api/c/structs/cvc5plugin", "api/c/types/cvc5", "api/c/types/cvc5command", "api/c/types/cvc5datatype", "api/c/types/cvc5datatypeconstructor", "api/c/types/cvc5datatypeconstructordecl", "api/c/types/cvc5datatypedecl", "api/c/types/cvc5datatypeselector", "api/c/types/cvc5grammar", "api/c/types/cvc5inputparser", "api/c/types/cvc5op", "api/c/types/cvc5proof", "api/c/types/cvc5result", "api/c/types/cvc5sort", "api/c/types/cvc5statistics", "api/c/types/cvc5symbolmanager", "api/c/types/cvc5synthresult", "api/c/types/cvc5term", "api/c/types/cvc5termmanager", "api/cpp/classes/command", "api/cpp/classes/datatype", "api/cpp/classes/datatypeconstructor", "api/cpp/classes/datatypeconstructordecl", "api/cpp/classes/datatypedecl", "api/cpp/classes/datatypeselector", "api/cpp/classes/driveroptions", "api/cpp/classes/grammar", "api/cpp/classes/inputparser", "api/cpp/classes/op", "api/cpp/classes/optioninfo", "api/cpp/classes/plugin", "api/cpp/classes/proof", "api/cpp/classes/result", "api/cpp/classes/solver", "api/cpp/classes/sort", "api/cpp/classes/statistics", "api/cpp/classes/symbolmanager", "api/cpp/classes/synthresult", "api/cpp/classes/term", "api/cpp/classes/termmanager", "api/cpp/cpp", "api/cpp/enums/kind", "api/cpp/enums/modes", "api/cpp/enums/proofrule", "api/cpp/enums/roundingmode", "api/cpp/enums/sortkind", "api/cpp/enums/unknownexplanation", "api/cpp/exceptions/exceptions", "api/cpp/quickstart", "api/java/java", "api/java/quickstart", "api/python/base/command", "api/python/base/datatype", "api/python/base/datatypeconstructor", "api/python/base/datatypeconstructordecl", "api/python/base/datatypedecl", "api/python/base/datatypeselector", "api/python/base/grammar", "api/python/base/inputparser", "api/python/base/kind", "api/python/base/modes", "api/python/base/op", "api/python/base/plugin", "api/python/base/proof", "api/python/base/proofrule", "api/python/base/python", "api/python/base/quickstart", "api/python/base/result", "api/python/base/roundingmode", "api/python/base/solver", "api/python/base/sort", "api/python/base/sortkind", "api/python/base/statistics", "api/python/base/symbolmanager", "api/python/base/synthresult", "api/python/base/term", "api/python/base/termmanager", "api/python/base/unknownexplanation", "api/python/python", "api/python/pythonic/arith", "api/python/pythonic/array", "api/python/pythonic/bitvec", "api/python/pythonic/boolean", "api/python/pythonic/dt", "api/python/pythonic/finite_field", "api/python/pythonic/fp", "api/python/pythonic/internals", "api/python/pythonic/pythonic", "api/python/pythonic/quant", "api/python/pythonic/quickstart", "api/python/pythonic/sequence", "api/python/pythonic/set", "api/python/pythonic/solver", "api/python/pythonic/string", "binary/binary", "binary/quickstart", "examples/bags", "examples/bitvectors", "examples/bitvectors_and_arrays", "examples/combination", "examples/datatypes", "examples/examples", "examples/exceptions", "examples/extract", "examples/finite_field", "examples/floatingpoint", "examples/helloworld", "examples/lineararith", "examples/parser", "examples/parser_sym_manager", "examples/quickstart", "examples/relations", "examples/sequences", "examples/sets", "examples/strings", "examples/sygus-fun", "examples/sygus-inv", "examples/uf", "genindex", "index", "installation/installation", "options", "output-tags", "proofs/output_alethe", "proofs/output_cpc", "proofs/output_dot", "proofs/output_lfsc", "proofs/proofs", "references", "resource-limits", "skolem-ids", "statistics", "theories/bags", "theories/datatypes", "theories/finite_field", "theories/separation-logic", "theories/sequences", "theories/sets-and-relations", "theories/strings", "theories/theories", "theories/transcendentals"], "filenames": ["api/api.rst", "api/c/c.rst", "api/c/enums/cvc5kind.rst", "api/c/enums/cvc5proofrule.rst", "api/c/enums/cvc5roundingmode.rst", "api/c/enums/cvc5sortkind.rst", "api/c/enums/cvc5unknownexplanation.rst", "api/c/enums/modes.rst", "api/c/quickstart.rst", "api/c/structs/cvc5optioninfo.rst", "api/c/structs/cvc5plugin.rst", "api/c/types/cvc5.rst", "api/c/types/cvc5command.rst", "api/c/types/cvc5datatype.rst", "api/c/types/cvc5datatypeconstructor.rst", "api/c/types/cvc5datatypeconstructordecl.rst", "api/c/types/cvc5datatypedecl.rst", "api/c/types/cvc5datatypeselector.rst", "api/c/types/cvc5grammar.rst", "api/c/types/cvc5inputparser.rst", "api/c/types/cvc5op.rst", "api/c/types/cvc5proof.rst", "api/c/types/cvc5result.rst", "api/c/types/cvc5sort.rst", "api/c/types/cvc5statistics.rst", "api/c/types/cvc5symbolmanager.rst", "api/c/types/cvc5synthresult.rst", "api/c/types/cvc5term.rst", "api/c/types/cvc5termmanager.rst", "api/cpp/classes/command.rst", "api/cpp/classes/datatype.rst", "api/cpp/classes/datatypeconstructor.rst", "api/cpp/classes/datatypeconstructordecl.rst", "api/cpp/classes/datatypedecl.rst", "api/cpp/classes/datatypeselector.rst", "api/cpp/classes/driveroptions.rst", "api/cpp/classes/grammar.rst", "api/cpp/classes/inputparser.rst", "api/cpp/classes/op.rst", "api/cpp/classes/optioninfo.rst", "api/cpp/classes/plugin.rst", "api/cpp/classes/proof.rst", "api/cpp/classes/result.rst", "api/cpp/classes/solver.rst", "api/cpp/classes/sort.rst", "api/cpp/classes/statistics.rst", "api/cpp/classes/symbolmanager.rst", "api/cpp/classes/synthresult.rst", "api/cpp/classes/term.rst", "api/cpp/classes/termmanager.rst", "api/cpp/cpp.rst", "api/cpp/enums/kind.rst", "api/cpp/enums/modes.rst", "api/cpp/enums/proofrule.rst", "api/cpp/enums/roundingmode.rst", "api/cpp/enums/sortkind.rst", "api/cpp/enums/unknownexplanation.rst", "api/cpp/exceptions/exceptions.rst", "api/cpp/quickstart.rst", "api/java/java.rst", "api/java/quickstart.rst", "api/python/base/command.rst", "api/python/base/datatype.rst", "api/python/base/datatypeconstructor.rst", "api/python/base/datatypeconstructordecl.rst", "api/python/base/datatypedecl.rst", "api/python/base/datatypeselector.rst", "api/python/base/grammar.rst", "api/python/base/inputparser.rst", "api/python/base/kind.rst", "api/python/base/modes.rst", "api/python/base/op.rst", "api/python/base/plugin.rst", "api/python/base/proof.rst", "api/python/base/proofrule.rst", "api/python/base/python.rst", "api/python/base/quickstart.rst", "api/python/base/result.rst", "api/python/base/roundingmode.rst", "api/python/base/solver.rst", "api/python/base/sort.rst", "api/python/base/sortkind.rst", "api/python/base/statistics.rst", "api/python/base/symbolmanager.rst", "api/python/base/synthresult.rst", "api/python/base/term.rst", "api/python/base/termmanager.rst", "api/python/base/unknownexplanation.rst", "api/python/python.rst", "api/python/pythonic/arith.rst", "api/python/pythonic/array.rst", "api/python/pythonic/bitvec.rst", "api/python/pythonic/boolean.rst", "api/python/pythonic/dt.rst", "api/python/pythonic/finite_field.rst", "api/python/pythonic/fp.rst", "api/python/pythonic/internals.rst", "api/python/pythonic/pythonic.rst", "api/python/pythonic/quant.rst", "api/python/pythonic/quickstart.rst", "api/python/pythonic/sequence.rst", "api/python/pythonic/set.rst", "api/python/pythonic/solver.rst", "api/python/pythonic/string.rst", "binary/binary.rst", "binary/quickstart.rst", "examples/bags.rst", "examples/bitvectors.rst", "examples/bitvectors_and_arrays.rst", "examples/combination.rst", "examples/datatypes.rst", "examples/examples.rst", "examples/exceptions.rst", "examples/extract.rst", "examples/finite_field.rst", "examples/floatingpoint.rst", "examples/helloworld.rst", "examples/lineararith.rst", "examples/parser.rst", "examples/parser_sym_manager.rst", "examples/quickstart.rst", "examples/relations.rst", "examples/sequences.rst", "examples/sets.rst", "examples/strings.rst", "examples/sygus-fun.rst", "examples/sygus-inv.rst", "examples/uf.rst", "genindex.rst", "index.rst", "installation/installation.rst", "options.rst", "output-tags.rst", "proofs/output_alethe.rst", "proofs/output_cpc.rst", "proofs/output_dot.rst", "proofs/output_lfsc.rst", "proofs/proofs.rst", "references.rst", "resource-limits.rst", "skolem-ids.rst", "statistics.rst", "theories/bags.rst", "theories/datatypes.rst", "theories/finite_field.rst", "theories/separation-logic.rst", "theories/sequences.rst", "theories/sets-and-relations.rst", "theories/strings.rst", "theories/theories.rst", "theories/transcendentals.rst"], "titles": ["API Documentation", "C API", "Cvc5Kind", "Cvc5ProofRule and Cvc5ProofRewriteRule", "Cvc5RoundingMode", "Cvc5SortKind", "Cvc5UnknownExplanation", "Modes", "Quickstart Guide", "Cvc5OptionInfo", "Cvc5Plugin", "Cvc5", "Cvc5Command", "Cvc5Datatype", "Cvc5DatatypeConstructor", "Cvc5DatatypeConstructorDecl", "Cvc5DatatypeDecl", "Cvc5DatatypeSelector", "Cvc5Grammar", "Cvc5InputParser", "Cvc5Op", "Cvc5Proof", "Cvc5Result", "Cvc5Sort", "Cvc5Statistics", "Cvc5SymbolManager", "Cvc5SynthResult", "Cvc5Term", "Cvc5TermManager", "Command", "Datatype", "DatatypeConstructor", "DatatypeConstructorDecl", "DatatypeDecl", "DatatypeSelector", "DriverOptions", "Grammar", "InputParser", "Op", "OptionInfo", "Plugin", "Proof", "Result", "Solver", "Sort", "Statistics", "SymbolManager", "SynthResult", "Term", "TermManager", "C++ API", "Kind", "Modes", "ProofRule and ProofRewriteRule", "RoundingMode", "SortKind", "UnknownExplanation", "Exceptions", "Quickstart Guide", "Java API", "Quickstart Guide", "Command", "Datatype", "DatatypeConstructor", "DatatypeConstructorDecl", "DatatypeDecl", "DatatypeSelector", "Grammar", "InputParser", "Kind", "Modes", "Op", "Plugin", "Proof", "ProofRule and ProofRewriteRule", "Base Python API", "Quickstart Guide", "Result", "RoundingMode", "Solver", "Sort", "SortKind", "Statistics", "SymbolManager", "SynthResult", "Term", "TermManager", "UnknownExplanation", "Python API", "Arithmetic", "Arrays", "Bit-Vectors", "Core & Booleans", "Datatypes", "Finite Fields", "Floating Point", "Internals", "Pythonic API", "Quantifiers", "Quickstart Guide", "Sequences", "Sets", "Solvers & Results", "Strings", "Binary Documentation", "Quickstart Guide", "Theory of Bags", "Theory of Bit-Vectors", "Theory of Bit-Vectors and Arrays", "Theory Combination", "Theory of Datatypes", "Examples", "Exception Handling", "Theory of Bit-Vectors: extract", "Theory of Finite Fields", "Theory of Floating-Points", "Hello World", "Theory of Linear Arithmetic", "Parser", "Parser with Shared Symbol Manager", "Quickstart Example", "Theory of Relations", "Theory of Sequences", "Theory of Sets", "Theory of Strings", "SyGuS: Functions", "SyGuS: Invariants", "Theory of Uninterpreted Functions", "Index", "cvc5 Documentation", "Installation", "Options", "Output tags", "Proof format: Alethe", "Proof format: Cooperating Proof Calculus", "Proof format: DOT", "Proof format: LFSC", "Proof Production", "References", "Resource limits", "Skolem Identifiers", "Statistics", "Theory Reference: Bags", "Theory Reference: Datatypes", "Theory Reference: Finite Fields", "Theory Reference: Separation Logic", "Theory Reference: Sequences", "Theory Reference: Sets and Relations", "Theory Reference: Strings", "Theory References", "Theory Reference: Transcendentals"], "terms": {"altern": [0, 2, 3, 8, 9, 20, 27, 38, 39, 48, 51, 53, 58, 60, 69, 71, 74, 76, 88, 99, 104, 105, 109, 110, 120, 130, 131, 143, 144, 150], "us": [0, 1, 2, 3, 7, 8, 9, 10, 11, 14, 15, 16, 17, 18, 19, 21, 23, 24, 27, 28, 30, 31, 32, 33, 34, 35, 36, 37, 39, 41, 43, 44, 45, 48, 49, 51, 52, 53, 57, 58, 59, 60, 63, 64, 65, 66, 67, 68, 69, 70, 73, 74, 76, 79, 80, 82, 83, 85, 86, 89, 91, 92, 93, 94, 95, 98, 99, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 129, 130, 132, 133, 134, 135, 136, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 150], "cvc5": [0, 1, 2, 3, 5, 8, 9, 10, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 132, 133, 134, 135, 136, 137, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150], "binari": [0, 3, 11, 27, 43, 48, 49, 53, 74, 88, 89, 121, 129, 130, 131, 139], "can": [0, 1, 2, 3, 7, 8, 9, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 27, 28, 29, 30, 31, 33, 34, 35, 36, 37, 38, 39, 41, 42, 43, 44, 45, 46, 48, 49, 51, 52, 53, 57, 58, 59, 60, 61, 62, 63, 65, 66, 67, 68, 69, 70, 71, 73, 74, 76, 77, 79, 80, 82, 83, 86, 88, 89, 91, 92, 93, 94, 95, 99, 102, 105, 107, 109, 110, 111, 114, 115, 120, 123, 125, 130, 131, 132, 133, 134, 135, 137, 139, 140, 141, 142, 143, 145, 147], "integr": [0, 2, 27, 48, 51, 69, 97, 130, 138, 140, 141], "back": [0, 131, 132], "end": [0, 8, 30, 31, 45, 48, 58, 60, 76, 99, 105, 109, 110, 118, 119, 120, 125, 126, 132, 134, 140], "other": [0, 2, 3, 5, 6, 8, 11, 25, 43, 44, 45, 46, 48, 51, 53, 55, 56, 58, 60, 69, 74, 76, 79, 80, 81, 83, 87, 90, 91, 92, 94, 95, 97, 99, 100, 101, 102, 103, 105, 107, 110, 120, 130, 131, 135, 139, 147], "tool": [0, 93, 130], "via": [0, 1, 2, 3, 5, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 27, 28, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 48, 49, 51, 53, 55, 58, 60, 62, 63, 64, 65, 66, 67, 68, 69, 71, 72, 73, 74, 76, 77, 79, 81, 82, 83, 86, 88, 102, 104, 112, 118, 119, 121, 122, 123, 124, 130, 131, 133, 137, 139, 140, 141, 145, 147], "one": [0, 2, 3, 4, 8, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 27, 30, 31, 37, 45, 48, 51, 53, 54, 58, 60, 63, 68, 69, 74, 76, 78, 85, 92, 93, 99, 103, 105, 106, 107, 109, 110, 120, 123, 125, 126, 131, 139, 140, 142, 143, 145, 147], "its": [0, 1, 2, 3, 5, 7, 9, 11, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 27, 37, 38, 39, 43, 45, 48, 49, 51, 52, 53, 55, 68, 69, 70, 71, 74, 79, 81, 85, 86, 92, 93, 100, 110, 119, 125, 130, 131, 137, 139, 140, 141, 142, 144, 145], "rich": 0, "comprehens": [0, 2, 51, 69, 134, 137], "The": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 76, 78, 79, 80, 81, 82, 83, 85, 86, 87, 88, 91, 92, 93, 94, 95, 97, 99, 101, 103, 104, 105, 106, 107, 108, 109, 111, 115, 117, 120, 121, 122, 124, 125, 126, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 150], "primari": [0, 50, 105], "interfac": [0, 11, 16, 18, 19, 25, 33, 36, 37, 43, 46, 50, 65, 67, 68, 83, 104, 131], "i": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 74, 75, 76, 77, 79, 80, 81, 83, 84, 85, 86, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 129, 130, 131, 132, 133, 134, 135, 136, 137, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 150], "c": [0, 2, 3, 7, 8, 9, 11, 15, 19, 23, 24, 25, 26, 27, 28, 43, 44, 48, 49, 51, 52, 53, 57, 58, 59, 60, 61, 62, 68, 69, 70, 74, 75, 76, 79, 80, 83, 88, 89, 92, 95, 99, 102, 103, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 131, 133, 134, 136, 137, 140, 141, 142, 143, 144, 145, 146, 147, 150], "Its": [0, 11, 18, 23, 36, 43, 44, 67, 79, 80], "java": [0, 8, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 131, 137, 142, 147, 150], "base": [0, 1, 2, 3, 4, 5, 7, 8, 11, 19, 27, 37, 43, 48, 49, 51, 52, 53, 54, 55, 57, 58, 60, 68, 69, 70, 74, 76, 79, 85, 86, 88, 90, 93, 99, 102, 103, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 133, 134, 136, 137, 138, 142, 144, 145, 147, 150], "python": [0, 8, 58, 60, 76, 85, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 103, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 131, 137, 142, 147, 150], "implement": [0, 3, 7, 10, 11, 43, 45, 52, 53, 70, 74, 75, 102, 125, 126, 130, 131, 133, 139, 143, 144, 145, 147, 149], "thin": 0, "wrapper": [0, 35, 61, 62, 63, 64, 65, 66, 67, 68, 71, 73, 77, 79, 80, 82, 83, 85, 86], "around": 0, "In": [0, 2, 3, 7, 8, 9, 11, 14, 23, 27, 31, 43, 44, 47, 48, 51, 52, 53, 58, 60, 62, 63, 69, 70, 74, 76, 79, 80, 84, 85, 86, 93, 99, 105, 120, 131, 138, 139, 140, 143, 144, 147], "addit": [0, 2, 3, 20, 38, 51, 53, 69, 71, 74, 89, 91, 94, 95, 115, 119, 130, 134, 136, 143, 144], "also": [0, 3, 8, 11, 23, 27, 39, 44, 45, 48, 53, 58, 60, 74, 76, 80, 82, 85, 88, 89, 91, 93, 94, 99, 105, 109, 110, 115, 117, 120, 130, 131, 133, 136, 140, 141, 143, 147, 149], "provid": [0, 2, 3, 11, 14, 19, 23, 24, 25, 27, 31, 35, 37, 39, 43, 44, 46, 48, 49, 50, 51, 53, 59, 63, 68, 69, 74, 75, 79, 80, 83, 85, 86, 100, 102, 125, 129, 130, 131, 132, 134, 136], "more": [0, 1, 2, 3, 8, 9, 11, 13, 14, 16, 17, 18, 20, 21, 22, 23, 27, 28, 39, 43, 50, 51, 53, 58, 59, 60, 69, 74, 75, 76, 79, 88, 93, 95, 99, 103, 105, 107, 120, 130, 131, 134, 136, 141, 142, 144, 147], "http": [0, 2, 3, 51, 53, 59, 69, 74, 88, 93, 95, 102, 130, 138], "github": [0, 8, 58, 60, 76, 88, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 142, 147, 150], "com": [0, 59, 88, 130], "cvc5_pythonic_api": [0, 8, 58, 60, 76, 105, 112], "here": [0, 1, 3, 53, 59, 74, 93, 105, 110, 133, 134, 135, 136, 137, 147], "featur": [1, 6, 56, 87, 88, 97, 104, 110, 131, 132, 135, 140, 144], "complet": [1, 11, 43, 49, 79, 86, 88, 110, 130, 131], "within": [1, 2, 3, 16, 23, 27, 33, 44, 48, 51, 53, 65, 69, 74, 80, 102, 130, 131, 133, 134, 136, 139], "limit": [1, 6, 11, 43, 56, 79, 87, 92, 93, 129, 131, 150], "languag": [1, 5, 37, 45, 55, 68, 81, 103, 104, 105, 108, 109, 111, 122, 123, 124, 131, 134, 135, 142, 143, 144, 145, 146, 147], "quickstart": [1, 50, 59, 97, 104, 111], "guid": [1, 50, 59, 97, 104, 131], "give": [1, 50, 59, 85, 93, 104, 105, 110, 117, 131, 139, 141], "short": [1, 50, 59, 104, 105, 131], "introduct": [1, 3, 50, 53, 59, 74, 104], "how": [1, 3, 7, 11, 43, 45, 52, 53, 74, 79, 104, 109, 111, 115, 118, 119, 125, 126, 130, 131, 137, 141, 142, 147], "For": [1, 2, 3, 4, 5, 8, 9, 11, 14, 23, 27, 31, 43, 44, 48, 49, 50, 51, 53, 54, 55, 58, 59, 60, 63, 69, 74, 75, 76, 79, 80, 81, 85, 86, 88, 92, 93, 102, 105, 111, 123, 130, 131, 133, 134, 136, 139, 140, 142, 143, 144, 145, 146, 147], "most": [1, 7, 11, 43, 50, 52, 59, 70, 79, 89, 91, 102, 130, 140, 146, 147, 150], "applic": [1, 2, 3, 14, 31, 50, 51, 53, 59, 63, 69, 74, 88, 90, 92, 96, 110, 131, 139, 140, 147], "solver": [1, 2, 3, 5, 6, 7, 8, 10, 11, 12, 19, 22, 23, 26, 28, 29, 31, 32, 33, 35, 36, 37, 38, 39, 40, 41, 42, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 55, 56, 57, 58, 59, 60, 61, 64, 65, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 81, 84, 85, 86, 87, 93, 95, 97, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 131, 132, 133, 138, 139, 141, 142, 143, 145, 146, 147, 150], "main": [1, 7, 8, 19, 29, 37, 43, 46, 50, 52, 58, 59, 60, 68, 70, 76, 99, 102, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 131, 142, 147, 150], "entri": [1, 24, 45, 50, 59], "point": [1, 2, 3, 4, 5, 18, 21, 23, 27, 30, 31, 36, 37, 41, 43, 44, 48, 49, 50, 51, 53, 54, 55, 59, 68, 69, 74, 78, 79, 80, 81, 85, 86, 97, 102, 110, 111, 138, 139, 140, 141, 145, 149], "One": [1, 27, 48, 135], "kei": [1, 24, 45, 105], "differ": [1, 2, 6, 11, 18, 21, 24, 36, 38, 41, 43, 45, 51, 56, 59, 69, 79, 91, 92, 93, 94, 95, 101, 103, 104, 111, 115, 117, 134, 140, 141, 142, 147], "wai": [1, 3, 4, 8, 53, 54, 58, 60, 74, 76, 99, 104, 105, 120, 131, 139, 140], "memori": [1, 6, 56, 87, 130], "manag": [1, 8, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 25, 27, 28, 29, 37, 43, 46, 48, 49, 58, 60, 61, 68, 76, 79, 83, 86, 99, 105, 111, 118, 120, 131], "while": [1, 3, 8, 43, 45, 49, 50, 53, 58, 60, 74, 76, 79, 86, 88, 99, 105, 109, 118, 119, 120, 130, 131, 150], "user": [1, 2, 3, 9, 10, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 27, 31, 37, 39, 40, 43, 51, 53, 63, 68, 69, 72, 74, 79, 88, 97, 130, 131, 132, 134, 140, 145], "reli": [1, 131], "being": [1, 3, 11, 37, 43, 49, 53, 68, 74, 79, 93, 98, 150], "effici": [1, 3, 53, 74, 107, 131, 134], "automat": [1, 79, 86, 92, 93, 102, 129, 130, 131, 132, 150], "level": [1, 3, 7, 8, 11, 43, 52, 53, 58, 60, 70, 74, 75, 76, 79, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 131, 132, 140, 142, 147, 150], "maintain": [1, 130, 131], "low": [1, 91], "overhead": 1, "need": [1, 8, 11, 23, 36, 41, 43, 44, 49, 110, 114, 115, 120, 121, 122, 123, 124, 125, 130, 131, 140, 147], "manual": [1, 8, 58, 60, 76, 99, 102, 105, 120, 130, 134], "intervent": 1, "offer": [1, 27, 48, 85, 88, 130, 135], "two": [1, 2, 3, 4, 5, 8, 13, 14, 16, 17, 18, 20, 21, 22, 23, 27, 30, 31, 36, 41, 42, 47, 48, 51, 53, 54, 55, 57, 58, 60, 69, 74, 76, 78, 81, 85, 88, 91, 93, 99, 100, 103, 105, 106, 107, 108, 110, 117, 123, 130, 131, 134, 140, 141, 142, 144, 147, 150], "mode": [1, 4, 5, 9, 11, 23, 27, 37, 39, 43, 44, 48, 49, 50, 54, 55, 75, 78, 79, 80, 81, 85, 86, 97, 115, 118, 119, 130, 131, 132, 133, 134, 135, 136, 145], "let": [1, 3, 8, 11, 43, 53, 58, 60, 74, 76, 79, 93, 99, 105, 120, 131, 135, 144, 148], "handl": [1, 111, 131], "without": [1, 2, 8, 11, 28, 43, 49, 51, 58, 60, 69, 76, 99, 105, 115, 120, 132, 133, 139], "all": [1, 2, 3, 8, 9, 11, 14, 23, 27, 31, 37, 39, 43, 44, 45, 48, 49, 51, 53, 57, 58, 60, 62, 63, 68, 69, 74, 76, 79, 80, 82, 85, 86, 92, 93, 99, 102, 103, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 129, 130, 131, 132, 134, 136, 139, 141, 142, 143, 145, 146, 147, 148, 149, 150], "alloc": 1, "term": [1, 2, 3, 5, 7, 8, 11, 13, 14, 16, 17, 18, 20, 21, 23, 27, 31, 34, 36, 37, 38, 40, 41, 43, 44, 45, 46, 49, 50, 51, 52, 53, 55, 58, 59, 60, 63, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 79, 80, 81, 83, 86, 93, 97, 98, 99, 102, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 131, 132, 135, 140, 141, 142, 143, 144, 145, 146, 147, 150], "cvc5termmanag": [1, 8, 11, 20, 23, 27, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127], "instanc": [1, 3, 8, 11, 23, 24, 27, 28, 37, 43, 45, 46, 49, 53, 58, 60, 74, 76, 79, 86, 92, 93, 120, 123, 131, 143, 147], "onli": [1, 2, 3, 6, 7, 8, 9, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 27, 35, 43, 44, 45, 48, 51, 52, 53, 56, 58, 60, 69, 70, 74, 76, 79, 80, 85, 86, 87, 88, 99, 105, 106, 107, 109, 120, 130, 131, 136, 137, 139, 140, 141, 144, 145, 146, 147, 148], "releas": [1, 8, 13, 14, 16, 17, 18, 20, 21, 22, 23, 27, 43, 46, 79, 114, 115, 120, 123, 125], "when": [1, 2, 3, 5, 7, 10, 11, 13, 14, 17, 23, 25, 27, 30, 31, 34, 40, 43, 44, 45, 46, 48, 49, 51, 52, 53, 55, 57, 62, 63, 66, 69, 70, 72, 74, 79, 81, 83, 85, 86, 98, 118, 130, 131, 132, 139, 140, 141, 144, 145, 147], "ar": [1, 2, 3, 4, 5, 7, 8, 11, 12, 13, 14, 16, 17, 18, 19, 20, 22, 23, 24, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 42, 43, 44, 45, 46, 47, 48, 49, 51, 52, 53, 54, 55, 58, 59, 60, 61, 62, 63, 66, 67, 68, 69, 70, 73, 74, 76, 77, 78, 79, 80, 81, 83, 85, 86, 88, 92, 93, 96, 99, 102, 105, 107, 109, 110, 117, 120, 121, 127, 130, 131, 132, 133, 134, 136, 137, 139, 140, 141, 143, 144, 145, 146, 147, 148, 149, 150], "delet": [1, 8, 11, 43, 120], "cvc5_delet": [1, 8, 11, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127], "cvc5_term_manager_delet": [1, 8, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127], "exampl": [1, 2, 3, 5, 14, 23, 27, 31, 43, 44, 48, 49, 50, 51, 53, 55, 59, 63, 69, 74, 79, 80, 81, 85, 86, 88, 92, 93, 97, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 121, 122, 123, 124, 125, 126, 127, 129, 131, 133, 134, 136, 139, 140, 142, 147], "tm": [1, 3, 8, 11, 20, 28, 40, 43, 46, 48, 53, 58, 60, 72, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 142, 147, 150], "cvc5_term_manager_new": [1, 8, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127], "cvc5_new": [1, 8, 11, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127], "cvc5term": [1, 2, 8, 10, 11, 14, 17, 18, 20, 21, 23, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 119, 120, 121, 122, 123, 124, 125, 126, 127], "cvc5_mk_const": [1, 8, 11, 27, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 120, 121, 122, 123, 124, 127], "cvc5_get_integer_sort": [1, 8, 109, 110, 117, 120, 122, 123, 125, 126], "cvc5_mk_integer_int64": [1, 8, 106, 109, 110, 117, 120, 122, 123, 124, 125, 126], "2": [1, 2, 3, 4, 8, 14, 16, 18, 27, 31, 33, 36, 43, 48, 49, 51, 53, 54, 58, 60, 63, 65, 67, 69, 74, 76, 85, 89, 91, 92, 93, 95, 98, 99, 100, 102, 103, 105, 106, 107, 108, 109, 110, 113, 114, 115, 117, 120, 121, 122, 123, 124, 125, 126, 127, 130, 131, 132, 133, 134, 136, 138, 140, 141, 142, 143, 145, 147, 150], "args1": [1, 107, 108, 109, 110, 113, 115, 117, 121, 122, 123, 124, 125, 126], "cvc5_assert_formula": [1, 8, 11, 107, 108, 109, 110, 113, 114, 115, 117, 120, 121, 127], "cvc5_mk_term": [1, 8, 14, 20, 27, 28, 106, 107, 108, 109, 110, 113, 114, 115, 117, 120, 121, 122, 123, 124, 125, 126, 127], "cvc5_kind_equ": [1, 2, 106, 107, 109, 113, 114, 115, 117, 121, 122, 123, 124, 125, 126, 127], "b": [1, 2, 3, 8, 11, 13, 14, 16, 17, 18, 20, 21, 22, 23, 27, 43, 44, 49, 51, 53, 58, 59, 60, 69, 74, 76, 79, 80, 86, 89, 90, 91, 92, 93, 94, 95, 99, 101, 102, 103, 105, 106, 107, 114, 115, 118, 119, 120, 121, 123, 125, 131, 132, 133, 134, 136, 138, 140, 142, 143, 145, 146, 147], "args2": [1, 8, 107, 108, 109, 110, 113, 114, 115, 117, 120, 121, 122, 123, 124, 125, 126, 127], "cvc5_kind_distinct": [1, 2, 107, 110, 113, 115], "cvc5_check_sat": [1, 8, 11, 21, 22, 107, 108, 109, 110, 114, 115, 117, 118, 120, 121, 127], "introduc": [1, 8, 23, 44, 58, 60, 76, 80, 99, 105, 107, 120, 131, 140], "fine": [1, 13, 14, 16, 17, 18, 20, 21, 22, 23, 27, 133, 134, 136, 138], "grain": [1, 13, 14, 16, 17, 18, 20, 21, 22, 23, 27, 133, 134, 136, 138], "object": [1, 3, 9, 11, 18, 21, 23, 30, 31, 33, 34, 35, 36, 39, 41, 43, 44, 45, 49, 53, 57, 59, 62, 63, 64, 65, 66, 73, 79, 82, 85, 86, 89, 92, 93, 96, 98, 102, 110, 125, 137, 139, 141, 142, 143, 144, 145, 146, 147], "creat": [1, 2, 5, 8, 11, 15, 16, 18, 20, 23, 27, 28, 32, 33, 36, 38, 43, 44, 45, 48, 49, 51, 55, 58, 60, 64, 65, 67, 69, 71, 76, 79, 80, 81, 85, 86, 89, 91, 92, 93, 94, 95, 98, 99, 100, 101, 102, 103, 105, 107, 110, 112, 115, 116, 120, 122, 125, 131, 133, 134, 136, 142, 143, 144, 145, 146, 147], "correspond": [1, 2, 3, 7, 8, 11, 13, 14, 18, 20, 27, 30, 31, 36, 38, 41, 43, 48, 49, 51, 52, 53, 58, 60, 62, 63, 67, 69, 70, 71, 73, 74, 76, 79, 86, 99, 105, 120, 131, 132, 136, 139, 140], "cvc5_": 1, "_copi": 1, "_releas": 1, "function": [1, 2, 3, 5, 7, 8, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 55, 57, 62, 63, 65, 66, 69, 70, 72, 73, 74, 76, 79, 80, 81, 82, 83, 85, 86, 88, 89, 91, 92, 93, 94, 96, 98, 102, 106, 109, 110, 111, 120, 126, 130, 132, 133, 138, 140, 141, 142, 147, 149, 150], "copi": [1, 8, 13, 14, 16, 17, 18, 20, 21, 22, 23, 27, 43, 45, 48, 58, 60, 76, 88, 91, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 142, 147, 150], "increment": [1, 8, 11, 30, 31, 43, 48, 58, 60, 76, 79, 99, 102, 105, 106, 107, 109, 114, 115, 120, 123, 125, 126, 131, 138, 141, 142, 147, 150], "refer": [1, 3, 11, 13, 14, 16, 17, 18, 20, 21, 22, 23, 27, 30, 31, 43, 48, 53, 74, 92, 93, 96, 102, 110, 129, 130, 131], "counter": [1, 13, 14, 16, 17, 18, 20, 21, 22, 23, 27, 147], "an": [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 18, 19, 20, 21, 22, 23, 24, 27, 30, 31, 32, 36, 37, 38, 39, 41, 42, 43, 44, 45, 46, 47, 48, 49, 51, 52, 53, 54, 55, 56, 57, 58, 60, 62, 64, 67, 68, 69, 70, 71, 73, 74, 76, 77, 78, 79, 80, 81, 83, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 102, 103, 105, 106, 110, 112, 114, 115, 117, 118, 119, 120, 123, 129, 130, 131, 132, 134, 136, 138, 139, 140, 142, 143, 144, 145, 146, 147], "decrement": [1, 13, 14, 16, 17, 18, 20, 21, 22, 23, 27], "free": [1, 2, 3, 7, 8, 11, 18, 27, 36, 43, 48, 49, 51, 52, 53, 57, 67, 69, 70, 74, 79, 102, 120, 125, 126, 131, 145, 147], "reach": [1, 6, 56, 87, 131, 139], "0": [1, 2, 3, 8, 11, 23, 27, 40, 43, 44, 48, 49, 51, 53, 58, 59, 60, 69, 72, 74, 76, 79, 80, 85, 86, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 103, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 131, 132, 133, 134, 136, 140, 142, 143, 144, 145, 146, 147, 148, 150], "we": [1, 2, 3, 7, 8, 11, 23, 26, 37, 43, 44, 47, 48, 49, 51, 52, 53, 57, 58, 60, 68, 69, 70, 74, 76, 79, 80, 84, 86, 93, 99, 102, 105, 106, 107, 108, 109, 110, 113, 114, 115, 116, 118, 119, 120, 121, 123, 125, 130, 131, 135, 140, 142, 143, 144, 145, 146, 147], "anymor": [1, 8, 114, 115, 120, 123, 125], "cvc5_term_releas": [1, 27, 114, 115, 123, 125], "cvc5command": [1, 118, 119], "cvc5datatyp": [1, 14, 23, 110], "cvc5datatypedecl": [1, 13, 110], "cvc5datatypeconstructor": [1, 13, 17, 110], "cvc5datatypeconstructordecl": [1, 11, 16, 110], "cvc5datatypeselector": [1, 13, 14, 110], "cvc5grammar": [1, 11, 125], "cvc5inputpars": [1, 25, 118, 119], "cvc5op": [1, 27, 28, 107, 113, 115], "cvc5proof": [1, 11], "cvc5result": [1, 6, 8, 11, 106, 114, 115, 118, 120, 121, 122, 123, 124], "cvc5sort": [1, 5, 8, 11, 13, 14, 17, 27, 106, 107, 108, 109, 110, 113, 114, 115, 117, 120, 121, 122, 123, 124, 125, 126, 127], "cvc5statist": [1, 11], "cvc5symbolmanag": [1, 12, 118, 119], "cvc5synthresult": [1, 11], "sort": [1, 2, 5, 8, 11, 13, 14, 15, 16, 17, 18, 23, 27, 30, 31, 32, 33, 34, 36, 37, 43, 46, 48, 49, 50, 51, 55, 58, 59, 60, 62, 63, 64, 65, 66, 67, 69, 75, 76, 79, 81, 83, 85, 86, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 103, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 117, 120, 121, 122, 123, 124, 125, 126, 127, 131, 140, 142, 143, 144, 145, 146, 147, 150], "creation": [1, 2, 51, 69, 130], "oper": [1, 2, 3, 4, 8, 11, 20, 22, 27, 30, 31, 32, 33, 34, 36, 38, 39, 41, 42, 43, 44, 45, 47, 48, 49, 51, 52, 53, 54, 55, 56, 58, 59, 60, 69, 71, 74, 76, 79, 85, 86, 91, 94, 97, 99, 105, 120, 121, 131, 134, 139, 140, 142, 144, 145, 147, 148], "datatyp": [1, 2, 3, 5, 11, 13, 14, 15, 16, 17, 23, 31, 32, 33, 34, 43, 44, 49, 50, 51, 53, 55, 59, 63, 64, 65, 66, 69, 74, 75, 79, 80, 81, 86, 97, 111, 132, 138, 140, 145, 147, 149], "declar": [1, 2, 8, 11, 14, 15, 16, 25, 31, 32, 33, 43, 46, 49, 51, 58, 60, 63, 64, 65, 69, 76, 79, 83, 86, 92, 97, 99, 102, 105, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 131, 132, 134, 142, 144, 145, 146, 147, 150], "constructor": [1, 2, 3, 11, 13, 14, 15, 16, 23, 30, 31, 32, 33, 34, 36, 38, 41, 42, 43, 44, 45, 46, 47, 48, 49, 51, 53, 57, 62, 63, 64, 65, 69, 74, 79, 80, 86, 93, 110, 131, 140, 143, 147], "cvc5optioninfo": [1, 11, 28], "cvc5plugin": [1, 11], "cvc5kind": [1, 20, 27, 28], "cvc5proofrul": [1, 21], "cvc5proofrewriterul": [1, 21], "cvc5sortkind": [1, 23, 28], "cvc5roundingmod": [1, 23, 27], "cvc5unknownexplan": [1, 22], "follow": [1, 2, 3, 4, 7, 8, 9, 11, 23, 39, 43, 44, 50, 51, 52, 53, 54, 58, 60, 69, 70, 74, 76, 79, 80, 86, 88, 89, 90, 91, 93, 94, 95, 97, 99, 100, 101, 103, 104, 105, 107, 108, 109, 110, 111, 121, 130, 131, 132, 137, 139, 140, 141, 142, 143, 144, 145, 147, 150], "defin": [1, 2, 3, 7, 8, 9, 11, 18, 19, 23, 27, 28, 36, 37, 43, 44, 48, 49, 51, 52, 53, 58, 60, 67, 68, 69, 70, 74, 76, 79, 80, 85, 86, 92, 93, 96, 97, 99, 102, 105, 108, 110, 113, 114, 120, 121, 124, 125, 126, 130, 131, 132, 134, 136, 137, 140, 142, 144, 145, 147, 149, 150], "typedef": [1, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28], "black": [1, 143], "box": 1, "intern": [1, 2, 3, 5, 7, 9, 11, 18, 21, 24, 25, 29, 36, 37, 41, 43, 45, 46, 48, 51, 52, 53, 55, 69, 70, 74, 79, 81, 82, 83, 97, 102, 131, 132, 134, 135, 136, 137, 138, 139, 140, 141, 144, 150], "hidden": [1, 2, 51, 69], "cvc5stat": [1, 24], "fulli": [1, 3, 43, 49, 53, 74, 79, 86, 88, 102, 110, 131, 134], "expos": [1, 2, 5, 50, 51, 55, 69, 81], "cvc5optioninfokind": [1, 9], "configur": [1, 7, 9, 10, 11, 19, 24, 28, 35, 37, 39, 40, 43, 45, 46, 50, 52, 59, 70, 72, 75, 79, 82, 88, 102, 130, 131, 132, 139], "cvc5blockmodelsmod": [1, 7, 11], "cvc5learnedlittyp": [1, 7, 11], "cvc5proofcompon": [1, 7, 11], "cvc5proofformat": [1, 7, 11], "cvc5findsynthtarget": [1, 7, 11], "everi": [2, 3, 5, 10, 40, 41, 43, 49, 51, 53, 55, 69, 72, 73, 74, 79, 81, 86, 92, 102, 111, 131, 139, 141], "ha": [2, 3, 5, 9, 11, 14, 16, 19, 23, 25, 26, 27, 31, 33, 35, 37, 39, 43, 44, 46, 47, 48, 49, 51, 53, 55, 63, 68, 69, 74, 79, 80, 81, 83, 84, 85, 86, 92, 93, 107, 110, 116, 119, 130, 131, 132, 134, 139, 140, 141, 143, 146], "associ": [2, 3, 5, 9, 11, 23, 27, 28, 37, 39, 43, 44, 45, 46, 48, 49, 51, 53, 55, 57, 69, 74, 79, 80, 81, 86, 92, 93, 115, 118, 119, 131, 143], "kind": [2, 3, 5, 7, 8, 9, 11, 14, 17, 20, 23, 27, 28, 31, 34, 38, 43, 44, 48, 49, 50, 52, 53, 55, 58, 59, 60, 63, 66, 71, 74, 75, 76, 79, 80, 81, 85, 86, 90, 91, 92, 96, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 120, 121, 122, 123, 124, 125, 126, 127, 131, 140, 142, 143, 144, 145, 146, 147, 150], "repres": [2, 3, 4, 5, 6, 11, 13, 14, 17, 20, 22, 23, 24, 26, 27, 28, 30, 31, 34, 38, 42, 43, 44, 45, 47, 48, 49, 51, 53, 54, 55, 56, 59, 62, 63, 66, 69, 71, 74, 77, 78, 79, 80, 81, 82, 84, 85, 86, 87, 89, 91, 92, 94, 95, 98, 102, 108, 131, 134, 140, 142, 144], "enum": [2, 3, 4, 5, 6, 7, 9, 22, 23, 27, 28, 42, 44, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 69, 70, 74, 77, 78, 80, 81, 85, 86, 87, 131, 132, 137, 140], "thi": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 51, 52, 53, 54, 55, 56, 57, 58, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 83, 84, 85, 86, 87, 89, 90, 92, 93, 95, 97, 98, 99, 100, 102, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 129, 130, 131, 132, 134, 135, 136, 139, 140, 141, 142, 144, 145, 147, 148, 150], "distinguish": [2, 3, 11, 43, 51, 53, 57, 69, 79, 131, 140, 145], "valu": [2, 3, 4, 5, 6, 7, 8, 9, 11, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 26, 27, 30, 39, 42, 43, 45, 47, 48, 49, 51, 52, 53, 54, 55, 56, 58, 59, 60, 62, 69, 70, 74, 76, 77, 78, 79, 81, 82, 84, 85, 86, 87, 89, 91, 92, 94, 95, 96, 99, 100, 102, 103, 105, 106, 107, 108, 109, 110, 114, 115, 117, 120, 122, 123, 130, 131, 140, 141, 142, 143, 144, 146, 147], "constant": [2, 3, 7, 8, 11, 18, 27, 36, 43, 48, 49, 51, 52, 53, 58, 60, 67, 69, 70, 74, 76, 79, 85, 86, 89, 90, 91, 92, 93, 94, 95, 96, 99, 102, 103, 105, 108, 109, 115, 117, 120, 122, 124, 131, 140, 141, 142, 144, 146, 147, 150], "variabl": [2, 3, 7, 8, 11, 18, 27, 36, 43, 48, 49, 51, 52, 53, 58, 60, 67, 69, 70, 74, 76, 79, 85, 86, 92, 98, 99, 105, 107, 108, 109, 115, 116, 117, 120, 121, 122, 124, 125, 126, 127, 130, 131, 132, 140, 141, 145, 147, 150], "what": [2, 11, 43, 51, 57, 69, 79, 131], "each": [2, 3, 8, 11, 43, 51, 53, 58, 60, 69, 74, 76, 79, 91, 92, 93, 99, 105, 109, 110, 118, 120, 125, 130, 131, 140, 141, 143], "bit": [2, 3, 4, 5, 23, 27, 43, 44, 48, 49, 51, 53, 54, 55, 69, 74, 79, 80, 81, 85, 86, 94, 95, 97, 111, 115, 130, 131, 133, 140, 141, 144, 146, 149], "vector": [2, 3, 5, 8, 10, 23, 27, 30, 32, 36, 38, 39, 40, 41, 43, 44, 46, 48, 49, 51, 53, 55, 58, 60, 69, 71, 72, 73, 74, 76, 79, 80, 81, 85, 86, 94, 95, 97, 99, 102, 105, 110, 111, 115, 120, 125, 126, 130, 131, 133, 140, 143, 146, 147, 149], "cvc5_kind_const_bitvector": 2, "symbol": [2, 3, 8, 11, 12, 18, 19, 23, 25, 27, 29, 37, 43, 44, 46, 48, 49, 51, 53, 58, 60, 61, 68, 69, 74, 76, 79, 80, 83, 85, 86, 92, 99, 101, 102, 105, 110, 111, 118, 131, 140, 143, 145, 150], "cvc5_kind_const": 2, "equal": [2, 3, 4, 7, 8, 13, 14, 16, 17, 18, 20, 21, 22, 23, 27, 30, 31, 32, 33, 34, 36, 38, 41, 42, 44, 47, 48, 51, 52, 53, 54, 58, 60, 69, 70, 74, 76, 78, 85, 89, 91, 93, 94, 99, 105, 106, 107, 109, 113, 114, 115, 117, 120, 121, 122, 123, 124, 125, 126, 127, 131, 132, 133, 136, 140, 141, 142, 144, 147], "over": [2, 3, 7, 8, 11, 24, 27, 43, 45, 48, 51, 52, 53, 58, 60, 62, 63, 69, 70, 74, 76, 79, 82, 85, 99, 100, 101, 103, 105, 106, 109, 110, 113, 117, 120, 121, 123, 130, 131, 134, 136, 139, 141, 142, 147], "ani": [2, 3, 7, 9, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 27, 36, 38, 39, 43, 48, 49, 51, 52, 53, 57, 67, 69, 70, 71, 74, 79, 85, 86, 106, 123, 131, 132, 134, 140, 141, 142, 145, 147], "univers": [2, 11, 27, 43, 48, 49, 51, 69, 79, 85, 86, 98, 103, 121, 125, 131, 138, 140, 147], "quantifi": [2, 3, 8, 11, 43, 49, 51, 53, 58, 60, 69, 74, 76, 79, 86, 92, 97, 99, 105, 120, 121, 132, 133, 140, 145, 147, 149], "formula": [2, 3, 7, 8, 11, 43, 51, 52, 53, 58, 60, 69, 70, 74, 76, 79, 92, 98, 99, 105, 108, 117, 120, 121, 131, 132, 134, 136, 138, 140, 145, 147, 150], "cvc5_kind_foral": [2, 121], "enumer": [2, 3, 4, 5, 6, 7, 9, 11, 24, 43, 45, 51, 52, 53, 54, 55, 56, 69, 70, 74, 79, 81, 131, 140, 141, 143], "cvc5_kind_internal_kind": 2, "serv": [2, 5, 51, 55, 69, 81], "abstract": [2, 3, 5, 23, 27, 43, 44, 48, 49, 51, 53, 55, 69, 74, 79, 80, 81, 86, 102, 131, 138], "api": [2, 5, 7, 8, 9, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 36, 41, 43, 45, 47, 48, 51, 52, 55, 57, 58, 60, 69, 70, 76, 79, 81, 84, 99, 102, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 129, 131, 137, 139, 140, 141, 142, 144, 145, 146, 147, 150], "mai": [2, 3, 4, 5, 7, 10, 11, 13, 14, 16, 23, 24, 27, 30, 31, 33, 43, 44, 45, 48, 49, 51, 52, 53, 54, 55, 57, 62, 63, 65, 69, 70, 74, 79, 80, 81, 85, 86, 89, 91, 94, 130, 131, 139, 140, 144, 147], "appear": [2, 3, 5, 8, 51, 53, 55, 58, 60, 69, 74, 76, 81, 99, 105, 120, 131, 132, 134, 140], "return": [2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 26, 27, 29, 30, 31, 32, 33, 34, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 51, 52, 53, 54, 55, 56, 57, 58, 60, 61, 62, 63, 64, 65, 66, 68, 69, 70, 71, 72, 73, 74, 76, 77, 79, 80, 81, 82, 83, 84, 85, 86, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 103, 105, 106, 107, 108, 109, 110, 112, 113, 115, 116, 117, 120, 125, 126, 127, 131, 134, 139, 140, 146, 150], "e": [2, 3, 5, 6, 7, 8, 11, 12, 19, 20, 23, 25, 27, 29, 35, 37, 38, 39, 43, 44, 46, 47, 48, 49, 51, 52, 53, 55, 56, 58, 60, 61, 68, 69, 70, 71, 74, 76, 77, 79, 80, 81, 83, 84, 85, 86, 87, 89, 90, 92, 93, 98, 99, 100, 101, 102, 103, 105, 106, 107, 112, 115, 120, 121, 123, 124, 130, 131, 135, 138, 140, 142, 146, 147, 148, 150], "g": [2, 3, 5, 6, 7, 8, 11, 12, 19, 20, 23, 25, 27, 29, 35, 36, 37, 38, 39, 43, 44, 46, 48, 49, 51, 52, 53, 55, 56, 58, 60, 61, 68, 69, 70, 71, 74, 76, 79, 80, 81, 83, 85, 87, 93, 99, 102, 105, 120, 124, 125, 130, 131, 135, 140, 146, 147, 148, 150], "queri": [2, 5, 7, 8, 9, 11, 21, 22, 26, 28, 39, 41, 42, 43, 45, 47, 51, 52, 55, 58, 60, 69, 70, 73, 76, 77, 79, 81, 84, 99, 102, 105, 107, 108, 109, 120, 122, 124, 131, 132, 141], "simplifi": [2, 3, 5, 11, 43, 48, 51, 53, 55, 69, 74, 79, 81, 85, 90, 91, 93, 95, 100, 102, 103, 110, 131], "form": [2, 3, 5, 7, 8, 11, 43, 51, 52, 53, 55, 58, 60, 69, 70, 74, 76, 79, 81, 86, 89, 99, 102, 105, 120, 131, 140, 143], "should": [2, 3, 5, 8, 11, 14, 17, 31, 34, 37, 43, 49, 51, 53, 55, 57, 58, 60, 63, 66, 68, 69, 74, 76, 79, 81, 86, 99, 102, 105, 108, 114, 117, 118, 120, 125, 126, 130, 136, 140, 141, 150], "never": [2, 5, 51, 55, 69, 81, 131], "cvc5_kind_undefined_kind": 2, "undefin": [2, 5, 51, 55, 69, 81, 140], "cvc5_kind_null_term": 2, "null": [2, 3, 5, 10, 11, 29, 30, 31, 32, 33, 34, 36, 37, 41, 43, 44, 47, 48, 49, 51, 53, 55, 61, 62, 63, 64, 65, 66, 68, 69, 71, 74, 79, 80, 81, 84, 85, 86, 118, 119, 125, 126], "explicitli": [2, 3, 5, 8, 9, 14, 31, 39, 51, 53, 55, 58, 60, 63, 69, 74, 76, 79, 81, 86, 99, 105, 120, 131, 139], "than": [2, 3, 4, 5, 8, 9, 11, 39, 43, 44, 48, 51, 53, 54, 55, 58, 60, 69, 74, 76, 78, 79, 81, 89, 91, 99, 105, 107, 120, 130, 131, 146], "cvc5_kind_uninterpreted_sort_valu": 2, "uninterpret": [2, 5, 11, 23, 27, 43, 44, 48, 49, 51, 55, 69, 79, 80, 81, 85, 86, 92, 109, 111, 133, 140, 146, 149], "result": [2, 3, 4, 6, 8, 11, 12, 13, 21, 22, 23, 26, 27, 29, 41, 43, 47, 48, 50, 51, 53, 54, 56, 58, 59, 60, 61, 69, 73, 74, 75, 76, 78, 79, 84, 85, 87, 97, 99, 105, 106, 112, 114, 115, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 131, 134, 136, 140, 142, 147, 150], "call": [2, 3, 8, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 26, 27, 37, 40, 43, 45, 47, 48, 49, 51, 53, 57, 58, 60, 68, 69, 72, 74, 76, 79, 82, 84, 85, 99, 105, 106, 109, 120, 127, 130, 131, 132, 137, 139, 140, 144], "assert": [2, 3, 7, 8, 11, 12, 13, 23, 25, 27, 29, 30, 39, 43, 44, 45, 46, 48, 51, 52, 53, 58, 60, 61, 69, 70, 74, 76, 79, 80, 83, 85, 95, 99, 102, 105, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 124, 127, 130, 131, 143, 144, 145, 146, 147, 150], "chainabl": [2, 51, 69], "ariti": [2, 3, 11, 23, 43, 44, 49, 51, 53, 69, 74, 79, 80, 86, 92, 93, 110, 121], "n": [2, 3, 8, 11, 27, 43, 48, 49, 51, 53, 69, 74, 79, 85, 88, 89, 91, 93, 96, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 131, 138, 140, 142, 143, 144, 145, 146], "1": [2, 3, 4, 8, 11, 18, 23, 27, 36, 43, 48, 51, 53, 54, 58, 59, 60, 67, 69, 74, 76, 79, 85, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 103, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 120, 121, 122, 123, 124, 125, 126, 127, 131, 132, 133, 134, 136, 138, 140, 141, 142, 143, 144, 145, 146, 147, 148], "same": [2, 3, 7, 8, 11, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 27, 36, 37, 41, 43, 49, 51, 52, 53, 58, 60, 67, 68, 69, 70, 74, 76, 79, 92, 93, 99, 105, 111, 119, 120, 130, 131, 139, 140, 143, 144, 146, 147], "mkterm": [2, 8, 31, 38, 43, 48, 49, 51, 58, 60, 63, 69, 71, 76, 79, 85, 86, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 117, 120, 121, 122, 123, 124, 125, 126, 127, 142, 143, 144, 145, 146, 147, 150], "const": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 51, 53, 55, 57, 58, 60, 71, 72, 74, 76, 79, 83, 86, 89, 91, 92, 93, 94, 95, 99, 100, 101, 103, 105, 106, 107, 108, 109, 110, 113, 115, 116, 117, 118, 119, 120, 122, 123, 124, 125, 126, 127, 131, 134, 142, 143, 144, 145, 146, 147], "std": [2, 5, 8, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 51, 52, 53, 54, 55, 56, 57, 58, 60, 71, 72, 76, 80, 99, 105, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 138, 141, 142, 143, 147, 150], "op": [2, 3, 20, 27, 28, 43, 48, 49, 50, 51, 53, 59, 69, 74, 75, 79, 85, 86, 107, 113, 115, 145], "mkop": [2, 38, 43, 49, 51, 69, 71, 79, 86, 107, 113, 115, 143], "uint32_t": [2, 5, 11, 23, 27, 28, 43, 44, 48, 49, 51, 55, 79, 86, 107, 108, 113, 115], "disequ": [2, 3, 18, 20, 21, 22, 23, 27, 30, 31, 36, 38, 41, 42, 44, 47, 48, 51, 53, 69, 74, 92, 131, 140], "mkconst": [2, 8, 11, 43, 48, 49, 51, 58, 60, 69, 76, 79, 86, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 120, 121, 122, 123, 124, 127, 142, 143, 144, 146, 147, 150], "string": [2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 16, 17, 18, 20, 22, 23, 24, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 51, 52, 53, 54, 55, 56, 57, 58, 60, 61, 68, 69, 72, 73, 74, 76, 79, 80, 81, 85, 86, 89, 91, 92, 93, 95, 97, 98, 99, 100, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 125, 126, 127, 130, 132, 133, 140, 141, 142, 143, 144, 145, 146, 147, 149, 150], "Not": [2, 3, 51, 53, 69, 74, 92, 95, 102, 109, 110, 115, 125, 127], "permit": [2, 51, 69, 131], "bind": [2, 45, 51, 59, 69, 88, 125], "foral": [2, 3, 11, 43, 51, 53, 69, 74, 79, 98, 121, 131, 132, 140, 142, 147], "exist": [2, 3, 8, 11, 43, 45, 51, 53, 58, 60, 69, 74, 76, 79, 98, 105, 112, 131, 140, 145], "cvc5_kind_vari": 2, "bound": [2, 3, 5, 11, 27, 43, 48, 49, 51, 53, 55, 69, 74, 79, 81, 85, 86, 92, 98, 103, 117, 131, 132, 140, 146], "mkvar": [2, 43, 48, 49, 51, 69, 79, 86, 112, 121, 125, 126, 147], "lambda": [2, 3, 43, 49, 51, 53, 69, 74, 79, 86, 98, 125, 126, 131, 140], "bodi": [2, 3, 11, 43, 51, 53, 69, 74, 79, 98, 108, 125, 126, 131], "cvc5_kind_skolem": 2, "A": [2, 3, 5, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25, 27, 28, 30, 31, 32, 33, 34, 36, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 51, 52, 53, 55, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 69, 70, 71, 72, 73, 74, 76, 77, 79, 80, 81, 82, 83, 85, 86, 90, 92, 99, 101, 102, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 131, 133, 134, 136, 137, 138, 140, 141, 142, 143, 145, 146, 147, 150], "skolem": [2, 3, 27, 48, 49, 51, 53, 69, 74, 79, 85, 86, 129, 131], "avail": [2, 4, 8, 11, 25, 43, 46, 51, 54, 58, 60, 69, 76, 79, 82, 83, 99, 102, 105, 120, 125, 126, 130, 131, 133, 135, 136, 138, 141, 143], "getskolemid": [2, 48, 51, 69, 85], "getskolemindic": [2, 48, 51, 69, 85], "gener": [2, 3, 7, 24, 27, 45, 48, 51, 52, 53, 69, 70, 74, 82, 85, 97, 102, 110, 130, 131, 132, 133, 134, 136, 139, 141], "inform": [2, 8, 9, 11, 24, 25, 28, 39, 43, 45, 46, 51, 58, 60, 69, 76, 79, 82, 83, 93, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 131, 132, 141, 142, 144, 147, 150], "cvc5_kind_sexpr": 2, "express": [2, 3, 19, 23, 27, 37, 43, 44, 48, 49, 51, 53, 68, 69, 74, 79, 80, 85, 86, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 100, 101, 102, 115, 124, 140], "experiment": [2, 11, 13, 14, 16, 23, 27, 30, 31, 33, 43, 44, 48, 49, 51, 62, 63, 65, 69, 79, 80, 85, 86, 131], "chang": [2, 3, 11, 13, 14, 16, 23, 27, 30, 31, 33, 43, 44, 45, 48, 49, 51, 53, 62, 63, 65, 69, 74, 79, 80, 85, 86, 130, 131, 141], "remov": [2, 3, 11, 43, 46, 51, 53, 69, 74, 79, 101, 102, 131, 142, 144], "futur": [2, 11, 13, 14, 16, 23, 27, 30, 31, 33, 43, 44, 46, 48, 49, 51, 62, 63, 65, 69, 79, 80, 85, 86, 131, 144], "version": [2, 3, 8, 11, 13, 14, 16, 23, 27, 30, 31, 33, 43, 44, 48, 49, 51, 53, 58, 60, 62, 63, 65, 69, 74, 76, 79, 80, 85, 86, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 131, 133, 138, 141, 142, 143, 147, 150], "cvc5_kind_lambda": [2, 125, 126], "cpp": [2, 8, 27, 45, 51, 58, 60, 76, 88, 99, 105, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 138, 142, 147, 150], "variable_list": [2, 3, 51, 53, 69, 74, 121, 147], "cvc5_kind_wit": 2, "wit": [2, 43, 49, 51, 69, 79, 86, 138, 140], "syntax": [2, 14, 16, 31, 33, 51, 63, 65, 69, 97, 102, 131, 134, 147], "similar": [2, 3, 14, 17, 31, 34, 51, 53, 63, 66, 69, 74, 102, 130, 131, 134, 147], "except": [2, 43, 45, 50, 51, 59, 62, 69, 73, 85, 89, 90, 92, 97, 102, 111, 131, 139, 143], "allow": [2, 9, 11, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 27, 28, 36, 39, 43, 49, 51, 67, 69, 79, 86, 88, 131, 137, 139, 143, 147], "x": [2, 3, 7, 8, 11, 27, 43, 48, 49, 51, 52, 53, 58, 59, 60, 69, 70, 74, 76, 79, 85, 86, 89, 91, 92, 94, 95, 96, 98, 99, 100, 102, 103, 105, 106, 107, 109, 112, 113, 115, 117, 120, 121, 122, 123, 124, 125, 126, 127, 131, 132, 140, 142, 143, 144, 145, 146, 147, 150], "": [2, 3, 4, 7, 8, 11, 23, 25, 35, 43, 44, 45, 46, 48, 49, 51, 52, 53, 54, 57, 58, 60, 69, 70, 74, 76, 78, 79, 83, 85, 86, 88, 89, 90, 91, 92, 93, 94, 95, 96, 99, 100, 101, 102, 103, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 131, 133, 134, 138, 140, 142, 143, 144, 145, 146, 147, 150], "f": [2, 3, 27, 48, 51, 53, 69, 74, 85, 92, 98, 102, 109, 114, 115, 118, 119, 123, 124, 125, 126, 127, 131, 132, 140, 143, 144, 145, 147], "element": [2, 3, 5, 11, 23, 27, 43, 44, 48, 49, 51, 53, 55, 69, 74, 79, 80, 81, 85, 86, 90, 92, 93, 94, 98, 100, 101, 102, 106, 108, 123, 131, 140, 142, 145, 146, 147], "behav": [2, 51, 57, 69, 130], "like": [2, 3, 14, 17, 31, 34, 35, 43, 48, 49, 51, 53, 63, 66, 69, 74, 79, 86, 88, 102, 106, 130, 131, 139, 140, 141, 150], "descript": [2, 28, 43, 49, 51, 69, 135, 137], "see": [2, 3, 6, 8, 11, 16, 23, 24, 25, 27, 28, 33, 43, 44, 45, 46, 48, 49, 51, 53, 56, 58, 60, 65, 69, 74, 76, 79, 80, 82, 83, 87, 88, 89, 90, 91, 92, 93, 94, 95, 99, 100, 101, 102, 103, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 131, 134, 135, 137, 139, 140, 142, 144, 145, 147, 150], "planetmath": [2, 51], "org": [2, 3, 51, 53, 93, 95, 138], "hilbertsvarepsilonoper": [2, 51], "satisfi": [2, 6, 8, 11, 22, 42, 43, 51, 56, 58, 60, 69, 76, 77, 79, 87, 99, 102, 105, 107, 108, 109, 117, 120, 122, 127, 129, 131, 138, 144, 145], "But": [2, 51, 69], "doe": [2, 3, 7, 9, 11, 20, 21, 35, 38, 41, 43, 45, 49, 51, 52, 53, 69, 70, 71, 73, 74, 79, 88, 97, 102, 106, 108, 110, 130, 131, 139, 140, 142, 143, 145], "enforc": [2, 51, 69, 131, 139], "axiom": [2, 51, 69, 131], "which": [2, 3, 4, 7, 11, 14, 18, 19, 21, 23, 24, 25, 26, 27, 28, 31, 36, 37, 41, 43, 44, 45, 46, 47, 48, 49, 51, 52, 53, 54, 57, 67, 68, 69, 70, 73, 74, 79, 80, 83, 84, 85, 86, 89, 110, 125, 126, 130, 131, 134, 136, 140, 141, 143, 147], "ensur": [2, 3, 51, 53, 69, 74, 130, 131, 147], "uniqu": [2, 3, 51, 53, 69, 74, 92, 140, 144], "up": [2, 3, 51, 53, 69, 74, 108, 130, 131], "logic": [2, 8, 11, 19, 37, 43, 46, 49, 51, 58, 60, 68, 69, 76, 79, 83, 86, 91, 99, 102, 105, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 132, 134, 136, 138, 142, 144, 146, 147, 149], "equival": [2, 3, 7, 11, 14, 31, 43, 48, 49, 51, 52, 53, 63, 69, 70, 74, 79, 85, 107, 110, 125, 126, 131, 140, 143, 144], "equiv": [2, 3, 51, 53, 69, 74, 131], "rightarrow": [2, 3, 11, 43, 51, 53, 69, 74, 79, 142], "distinct": [2, 3, 43, 49, 51, 53, 69, 74, 79, 86, 92, 95, 106, 107, 109, 110, 113, 115, 123, 140, 142, 146, 147], "int": [2, 3, 8, 11, 14, 23, 30, 31, 43, 44, 48, 49, 51, 53, 58, 60, 63, 69, 74, 76, 79, 80, 85, 86, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 103, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 131, 132, 140, 142, 143, 145, 146, 147, 148, 150], "3": [2, 3, 4, 8, 22, 42, 51, 53, 54, 58, 59, 60, 69, 74, 76, 77, 89, 91, 92, 94, 95, 99, 100, 103, 105, 106, 107, 108, 110, 114, 115, 117, 120, 122, 123, 124, 125, 126, 131, 132, 133, 134, 136, 138, 140, 141, 142, 143, 144, 147], "bool": [2, 3, 9, 11, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 27, 29, 30, 31, 32, 33, 34, 36, 37, 38, 39, 41, 42, 43, 44, 45, 46, 47, 48, 49, 51, 53, 69, 74, 79, 80, 85, 89, 90, 92, 93, 101, 102, 108, 109, 116, 119, 125, 126, 127, 131, 132, 133, 134, 136, 146], "option": [2, 3, 5, 7, 8, 9, 11, 13, 14, 16, 17, 18, 20, 21, 22, 23, 27, 28, 35, 39, 43, 49, 51, 52, 53, 55, 58, 60, 69, 70, 74, 76, 79, 86, 99, 102, 103, 105, 106, 107, 108, 109, 112, 114, 115, 117, 120, 121, 122, 123, 124, 125, 126, 129, 134, 136, 137, 141, 142, 147], "inst_pattern_list": [2, 51, 69], "primarili": [2, 51, 69], "model": [2, 7, 8, 11, 43, 46, 51, 52, 58, 60, 69, 70, 76, 79, 83, 95, 97, 99, 105, 106, 108, 109, 112, 114, 115, 120, 121, 122, 123, 124, 131, 138, 142, 144, 145, 147], "arithmet": [2, 3, 4, 8, 51, 53, 54, 58, 60, 69, 74, 76, 91, 97, 99, 105, 109, 111, 120, 133, 134, 138, 140, 149, 150], "non": [2, 3, 11, 18, 23, 36, 43, 44, 51, 53, 67, 69, 74, 79, 80, 92, 112, 125, 130, 131, 132, 139, 140, 141, 143, 145, 146, 148], "linear": [2, 3, 13, 14, 30, 31, 51, 53, 62, 63, 69, 74, 111, 131, 133, 138, 150], "howev": [2, 8, 51, 57, 58, 60, 69, 76, 99, 105, 120, 134], "support": [2, 27, 28, 43, 48, 49, 51, 59, 69, 79, 85, 86, 88, 92, 93, 97, 104, 110, 121, 129, 131, 132, 133, 134, 136, 137, 139, 142, 143, 144, 145, 146, 147, 148, 149, 150], "parser": [2, 12, 19, 25, 29, 36, 37, 43, 44, 48, 50, 51, 57, 61, 68, 69, 83, 111], "moreov": [2, 51, 69], "cautiou": [2, 51, 69], "valid": [2, 3, 7, 8, 9, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 27, 39, 43, 51, 52, 53, 69, 70, 74, 79, 106, 109, 120, 130, 131], "If": [2, 3, 4, 7, 8, 11, 13, 19, 28, 30, 37, 39, 43, 45, 48, 49, 51, 52, 53, 54, 57, 58, 60, 62, 68, 69, 70, 74, 76, 78, 79, 85, 86, 88, 89, 91, 92, 93, 94, 95, 98, 99, 102, 103, 105, 107, 108, 113, 120, 130, 131, 140, 146], "case": [2, 3, 7, 8, 9, 11, 13, 14, 23, 25, 27, 30, 31, 43, 44, 46, 47, 48, 51, 52, 53, 58, 60, 62, 63, 69, 70, 74, 76, 79, 80, 83, 84, 85, 99, 103, 105, 120, 131, 139, 140, 141, 146, 148], "semant": [2, 3, 11, 27, 43, 48, 51, 53, 69, 74, 125, 131, 140], "unintuit": [2, 51, 69], "unsatisfi": [2, 8, 11, 22, 42, 43, 51, 58, 60, 69, 76, 79, 97, 99, 102, 105, 113, 120, 145], "fals": [2, 3, 7, 11, 13, 30, 43, 45, 49, 51, 52, 53, 62, 69, 70, 74, 79, 86, 89, 90, 91, 92, 93, 94, 95, 96, 98, 100, 101, 102, 103, 106, 110, 112, 124, 125, 126, 131, 132, 133, 134, 136, 146], "wherea": [2, 51, 69], "notic": [2, 3, 8, 51, 53, 58, 60, 69, 74, 76, 99, 105, 134, 145, 147], "z": [2, 3, 27, 48, 51, 53, 69, 74, 85, 89, 91, 92, 94, 95, 103, 114, 115, 124, 144, 145, 146, 147], "true": [2, 3, 8, 9, 11, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 27, 29, 30, 31, 32, 33, 34, 36, 37, 38, 41, 42, 43, 44, 45, 46, 47, 48, 49, 51, 53, 58, 60, 61, 62, 63, 64, 65, 66, 69, 71, 74, 76, 77, 79, 80, 82, 83, 84, 85, 86, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 102, 103, 105, 106, 107, 108, 109, 112, 114, 115, 116, 118, 119, 120, 121, 122, 123, 124, 125, 126, 131, 132, 134, 136, 141, 142, 143, 146, 147], "cvc5_kind_const_boolean": 2, "boolean": [2, 3, 5, 7, 8, 9, 23, 27, 43, 44, 45, 48, 49, 51, 52, 53, 55, 58, 60, 69, 70, 74, 76, 79, 80, 81, 82, 85, 86, 97, 98, 99, 102, 105, 109, 116, 120, 125, 126, 127, 131, 138, 141, 144, 145], "mktrue": [2, 43, 49, 51, 69, 79, 86, 108], "mkfals": [2, 43, 49, 51, 69, 79, 86], "mkboolean": [2, 43, 49, 51, 69, 79, 86, 112], "cvc5_kind_not": [2, 106, 107, 108, 109, 117, 121, 123, 125, 127], "negat": [2, 3, 48, 51, 53, 69, 74, 85, 89, 91, 92, 94, 102, 107, 109, 117, 131, 140, 144], "cvc5_kind_and": [2, 107, 108, 109, 115, 117, 122, 124, 125, 127], "conjunct": [2, 48, 51, 69, 85, 91, 131], "cvc5_kind_impli": 2, "implic": [2, 3, 48, 51, 53, 69, 74, 85, 92], "cvc5_kind_or": [2, 107, 115, 125], "disjunct": [2, 11, 43, 48, 51, 69, 79, 85, 91, 131], "cvc5_kind_xor": 2, "exclus": [2, 3, 48, 51, 53, 69, 74, 85, 91, 131], "left": [2, 3, 51, 53, 69, 74, 91, 145, 146], "cvc5_kind_it": [2, 107, 125, 126], "els": [2, 3, 8, 11, 43, 48, 51, 53, 58, 60, 69, 74, 76, 79, 85, 86, 92, 99, 105, 107, 120, 131, 134, 143], "second": [2, 8, 13, 14, 16, 17, 18, 20, 21, 22, 23, 27, 51, 58, 60, 69, 76, 79, 86, 91, 93, 94, 99, 105, 110, 120, 131, 140, 145], "argument": [2, 3, 5, 7, 11, 14, 17, 21, 23, 28, 31, 34, 41, 43, 44, 49, 51, 52, 53, 55, 63, 66, 69, 70, 73, 74, 79, 80, 81, 86, 90, 91, 92, 93, 94, 96, 100, 102, 103, 110, 131, 139, 140, 143], "cvc5_kind_apply_uf": [2, 109, 125, 127], "instanti": [2, 3, 11, 20, 23, 38, 43, 44, 51, 53, 69, 71, 74, 79, 80, 97, 110, 131, 132, 140, 143], "first": [2, 3, 7, 8, 11, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 27, 28, 30, 31, 34, 37, 38, 43, 48, 49, 51, 52, 53, 58, 60, 62, 63, 66, 68, 69, 71, 74, 76, 79, 86, 93, 99, 103, 105, 107, 108, 110, 120, 131, 133, 140, 144, 146], "class": [2, 6, 7, 8, 14, 17, 22, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 96, 97, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 131, 140, 142, 147, 150], "cvc5_kind_cardinality_constraint": 2, "cardin": [2, 3, 27, 43, 48, 49, 51, 53, 69, 74, 79, 85, 86, 131, 138, 140, 146, 147], "constraint": [2, 3, 8, 11, 27, 43, 48, 49, 51, 53, 58, 60, 69, 74, 76, 79, 85, 86, 92, 97, 99, 102, 105, 117, 120, 121, 125, 126, 131, 138, 145], "interpret": [2, 11, 27, 43, 48, 51, 69, 79, 102, 131, 139, 140, 144, 145, 147], "predic": [2, 3, 23, 43, 44, 49, 51, 53, 69, 74, 79, 80, 86, 89, 93, 123, 131, 142, 143, 145, 147], "uinterpret": [2, 51, 69], "less": [2, 3, 4, 44, 48, 51, 53, 54, 69, 74, 78, 89, 91, 131], "upper": [2, 3, 5, 27, 43, 48, 49, 51, 53, 55, 69, 74, 79, 81, 85, 86, 103, 117, 131], "mkcardinalityconstraint": [2, 43, 49, 51, 69, 79, 86], "cvc5_kind_ho_appli": 2, "higher": [2, 3, 51, 53, 69, 74, 75, 130, 131, 140], "order": [2, 3, 11, 23, 27, 43, 44, 48, 51, 53, 69, 74, 79, 80, 85, 86, 93, 103, 110, 131, 132, 144, 146], "encod": [2, 3, 43, 49, 51, 53, 69, 74, 79, 86, 95, 107, 144], "domain": [2, 5, 11, 23, 43, 44, 51, 55, 69, 79, 80, 81, 90, 92, 93, 97, 101, 109, 110, 127, 131, 140, 142, 145, 146], "cvc5_kind_add": [2, 8, 20, 109, 120, 125, 126], "real": [2, 3, 5, 8, 11, 23, 27, 43, 44, 48, 49, 51, 53, 55, 58, 60, 69, 74, 76, 79, 80, 81, 85, 86, 89, 92, 95, 98, 99, 100, 105, 115, 117, 120, 131, 132, 134, 140, 149, 150], "must": [2, 3, 11, 14, 19, 20, 31, 37, 38, 43, 49, 51, 53, 63, 68, 69, 71, 74, 79, 85, 86, 88, 92, 93, 102, 107, 108, 123, 131, 143, 145], "match": [2, 3, 43, 49, 51, 53, 62, 63, 69, 74, 79, 86, 92, 93, 130, 131, 140, 145], "cvc5_kind_mult": [2, 117], "multipl": [2, 3, 7, 11, 13, 14, 30, 31, 43, 51, 52, 53, 62, 63, 69, 74, 79, 89, 91, 94, 95, 106, 108, 115, 119, 131, 140, 142, 144], "cvc5_kind_iand": 2, "integ": [2, 3, 5, 8, 23, 24, 27, 28, 43, 44, 45, 48, 49, 51, 53, 55, 58, 59, 60, 69, 74, 76, 79, 80, 81, 85, 86, 89, 91, 92, 93, 94, 95, 99, 102, 103, 105, 109, 110, 112, 115, 117, 120, 121, 122, 123, 125, 126, 127, 131, 132, 134, 140, 141, 144, 146, 147, 149], "wise": [2, 51, 69, 91], "AND": [2, 3, 51, 53, 69, 74, 107, 108, 109, 112, 115, 117, 122, 124, 125, 127, 131, 141], "parameter": [2, 3, 5, 23, 44, 51, 53, 55, 69, 74, 80, 81, 110], "posit": [2, 3, 4, 20, 27, 38, 43, 48, 49, 51, 53, 54, 69, 71, 74, 78, 79, 85, 86, 94, 95, 102, 115, 131, 140, 144, 146], "width": [2, 5, 23, 27, 43, 44, 48, 49, 51, 55, 69, 79, 80, 81, 85, 86, 91, 107, 131], "k": [2, 3, 43, 49, 51, 53, 55, 59, 69, 74, 79, 86, 90, 93, 96, 108, 125, 126, 132, 140], "_": [2, 3, 23, 43, 44, 49, 51, 53, 69, 74, 79, 80, 86, 107, 108, 110, 113, 114, 115, 131, 132, 136, 140, 143, 144, 145, 147], "iand": [2, 51, 69, 131], "i_1": [2, 3, 51, 53, 69, 74], "i_2": [2, 3, 51, 53, 69, 74], "bv2int": [2, 51, 69, 91], "bvand": [2, 3, 51, 53, 69, 74, 91, 131], "int2bv": [2, 3, 51, 53, 69, 74, 91], "indic": [2, 3, 7, 11, 20, 23, 26, 27, 28, 38, 43, 47, 48, 49, 51, 52, 53, 69, 70, 71, 74, 79, 84, 85, 86, 95, 131, 132, 134, 139, 140, 141], "cvc5_kind_pow2": 2, "power": [2, 3, 51, 53, 69, 74, 79, 86, 89, 108, 131], "rais": [2, 43, 51, 69, 73, 102], "neg": [2, 3, 4, 11, 27, 43, 48, 49, 51, 53, 54, 69, 74, 78, 79, 85, 86, 89, 95, 131, 139, 144, 146], "cvc5_kind_sub": [2, 8, 117, 120, 125], "subtract": [2, 8, 30, 31, 48, 51, 58, 60, 69, 76, 89, 91, 94, 95, 99, 105, 120, 142], "cvc5_kind_neg": 2, "cvc5_kind_divis": [2, 28], "divis": [2, 3, 43, 49, 51, 53, 69, 74, 89, 91, 95, 131, 140, 144], "cvc5_kind_division_tot": 2, "cvc5_kind_ints_divis": 2, "cvc5_kind_ints_division_tot": 2, "cvc5_kind_ints_modulu": 2, "modulu": [2, 3, 43, 49, 51, 53, 69, 74, 89, 91, 140], "cvc5_kind_ints_modulus_tot": 2, "t": [2, 3, 7, 8, 14, 23, 27, 31, 38, 39, 43, 44, 48, 51, 52, 53, 58, 60, 63, 69, 70, 74, 76, 79, 85, 92, 99, 100, 102, 103, 105, 109, 110, 119, 120, 125, 126, 130, 131, 138, 140, 142, 143, 144, 145, 146, 147, 150], "cvc5_kind_ab": 2, "absolut": [2, 3, 27, 48, 51, 53, 69, 74, 85, 94, 95], "cvc5_kind_pow": 2, "cvc5_kind_exponenti": 2, "exponenti": [2, 3, 51, 53, 69, 74, 89, 150], "cvc5_kind_sin": 2, "sine": [2, 3, 51, 53, 69, 74, 89, 131, 140, 150], "cvc5_kind_cosin": 2, "cosin": [2, 3, 51, 53, 69, 74, 89, 150], "cvc5_kind_tang": 2, "tangent": [2, 3, 51, 53, 69, 74, 89, 131, 150], "cvc5_kind_cosec": 2, "cosec": [2, 3, 51, 53, 69, 74, 89, 150], "cvc5_kind_sec": 2, "secant": [2, 3, 51, 53, 69, 74, 89, 150], "cvc5_kind_cotang": 2, "cotang": [2, 3, 51, 53, 69, 74, 89, 150], "cvc5_kind_arcsin": 2, "arc": [2, 51, 69], "cvc5_kind_arccosin": 2, "cvc5_kind_arctang": 2, "cvc5_kind_arccosec": 2, "cvc5_kind_arcsec": 2, "cvc5_kind_arccotang": 2, "cvc5_kind_sqrt": 2, "squar": [2, 51, 69, 89, 95, 150], "root": [2, 21, 41, 51, 69, 73, 89, 95, 150], "y": [2, 3, 8, 27, 43, 48, 49, 51, 53, 58, 59, 60, 69, 74, 76, 79, 85, 86, 89, 91, 92, 94, 95, 98, 99, 102, 103, 105, 109, 115, 117, 120, 122, 124, 125, 127, 131, 132, 138, 140, 142, 144, 145, 146, 147, 150], "divid": [2, 8, 51, 58, 60, 69, 76, 99, 105, 120], "cvc5_kind_const_r": 2, "arbitrari": [2, 3, 7, 18, 27, 28, 36, 43, 48, 49, 51, 52, 53, 59, 67, 69, 70, 74, 85, 131, 134, 136, 140], "precis": [2, 4, 28, 43, 49, 51, 54, 59, 69, 78, 95, 115, 131, 139, 150], "ration": [2, 3, 8, 27, 43, 48, 49, 51, 53, 58, 59, 60, 69, 74, 76, 85, 89, 99, 105, 115, 120, 131, 140, 150], "mkreal": [2, 8, 43, 49, 51, 58, 60, 69, 76, 79, 86, 99, 105, 117, 120, 150], "int64_t": [2, 8, 9, 23, 24, 27, 39, 43, 45, 48, 49, 51, 58, 60, 76, 99, 105, 120, 131, 141], "cvc5_kind_const_integ": 2, "mkinteg": [2, 8, 43, 49, 51, 58, 60, 69, 76, 79, 86, 99, 105, 106, 109, 110, 117, 120, 122, 123, 124, 125, 126, 142, 146, 147], "cvc5_kind_lt": [2, 8, 117, 120, 126], "cvc5_kind_leq": [2, 8, 109, 117, 120, 125, 126], "cvc5_kind_gt": [2, 110, 122], "greater": [2, 3, 4, 44, 48, 51, 53, 54, 69, 74, 78, 89, 91], "cvc5_kind_geq": [2, 117, 124, 125], "cvc5_kind_is_integ": 2, "cvc5_kind_to_integ": 2, "convert": [2, 3, 8, 43, 49, 51, 53, 58, 60, 69, 74, 76, 79, 85, 86, 92, 93, 99, 102, 103, 105, 115, 120, 131, 137, 140], "floor": [2, 51, 69, 144], "cvc5_kind_to_r": 2, "cvc5_kind_pi": 2, "pi": [2, 3, 27, 43, 48, 49, 51, 53, 69, 74, 79, 85, 86, 89, 115, 131, 140, 150], "mkpi": [2, 43, 49, 51, 69, 79, 86, 150], "consid": [2, 3, 7, 27, 48, 51, 52, 53, 69, 70, 74, 85, 93, 108, 113, 131, 141], "special": [2, 3, 7, 14, 31, 39, 51, 52, 53, 63, 69, 70, 74, 97, 103, 115, 131, 143], "isrealvalu": [2, 48, 51, 69, 85], "fix": [2, 3, 23, 27, 43, 44, 48, 49, 51, 53, 69, 74, 79, 80, 85, 86, 146], "size": [2, 5, 8, 10, 11, 13, 18, 20, 21, 23, 24, 27, 28, 30, 43, 44, 48, 49, 51, 55, 58, 59, 60, 62, 69, 76, 79, 80, 81, 86, 89, 91, 92, 94, 95, 99, 103, 105, 108, 114, 120, 125, 126, 131, 140], "mkbitvector": [2, 43, 49, 51, 69, 79, 86, 107, 108, 115], "uint64_t": [2, 8, 9, 24, 27, 39, 43, 45, 48, 49, 51, 58, 60, 76, 99, 105, 120, 131, 141], "cvc5_kind_bitvector_concat": 2, "concaten": [2, 3, 27, 48, 51, 53, 69, 74, 85, 91, 100, 122, 124, 131, 146], "cvc5_kind_bitvector_and": 2, "cvc5_kind_bitvector_or": 2, "cvc5_kind_bitvector_xor": [2, 107], "xor": [2, 3, 51, 53, 69, 74, 91, 92, 107], "cvc5_kind_bitvector_not": 2, "cvc5_kind_bitvector_nand": 2, "nand": [2, 3, 51, 53, 69, 74], "cvc5_kind_bitvector_nor": 2, "nor": [2, 3, 51, 53, 69, 74], "cvc5_kind_bitvector_xnor": 2, "xnor": [2, 3, 51, 53, 69, 74], "cvc5_kind_bitvector_comp": 2, "comparison": [2, 3, 27, 44, 48, 51, 53, 69, 74, 85, 91, 131], "cvc5_kind_bitvector_mult": [2, 108], "cvc5_kind_bitvector_add": [2, 107], "cvc5_kind_bitvector_sub": [2, 107], "cvc5_kind_bitvector_neg": 2, "complement": [2, 51, 69, 91, 101, 103, 131, 147], "cvc5_kind_bitvector_udiv": 2, "unsign": [2, 3, 51, 53, 57, 69, 74, 85, 91, 95, 108, 131], "truncat": [2, 51, 69], "toward": [2, 4, 51, 54, 69, 78, 95], "divisor": [2, 51, 69], "zero": [2, 3, 4, 8, 11, 27, 43, 48, 49, 51, 53, 54, 58, 60, 62, 63, 69, 74, 76, 78, 79, 85, 86, 91, 95, 99, 103, 105, 108, 109, 115, 120, 125, 126, 131, 132, 139, 140], "ones": [2, 3, 8, 11, 14, 31, 43, 45, 51, 53, 58, 60, 63, 69, 74, 76, 79, 82, 99, 105, 120, 131, 147], "cvc5_kind_bitvector_urem": 2, "remaind": [2, 8, 51, 69, 91, 95, 120, 140, 144], "from": [2, 3, 4, 7, 8, 9, 11, 13, 14, 15, 16, 17, 19, 22, 23, 24, 25, 26, 28, 30, 31, 33, 34, 37, 42, 43, 44, 45, 46, 47, 49, 51, 52, 53, 54, 57, 58, 59, 60, 62, 63, 65, 66, 68, 69, 70, 74, 76, 77, 78, 79, 80, 82, 83, 84, 85, 86, 95, 97, 99, 102, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 120, 121, 122, 123, 124, 125, 126, 127, 130, 131, 134, 136, 140, 141, 142, 144, 145, 146, 147, 150], "dividend": [2, 51, 69], "cvc5_kind_bitvector_sdiv": 2, "sign": [2, 3, 27, 43, 48, 49, 51, 53, 69, 74, 79, 85, 86, 91, 95, 131, 141], "cvc5_kind_bitvector_srem": 2, "where": [2, 3, 7, 11, 14, 22, 24, 27, 31, 43, 45, 48, 49, 51, 52, 53, 62, 63, 69, 70, 74, 79, 85, 86, 93, 108, 131, 134, 139, 140, 142, 143, 144, 145, 146, 148], "cvc5_kind_bitvector_smod": 2, "cvc5_kind_bitvector_shl": 2, "shift": [2, 3, 51, 53, 69, 74, 91, 131, 140], "cvc5_kind_bitvector_lshr": 2, "right": [2, 3, 8, 51, 53, 58, 60, 69, 74, 76, 91, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 131, 142, 145, 146, 147, 150], "cvc5_kind_bitvector_ashr": 2, "cvc5_kind_bitvector_ult": 2, "cvc5_kind_bitvector_ul": 2, "cvc5_kind_bitvector_ugt": 2, "cvc5_kind_bitvector_ug": 2, "cvc5_kind_bitvector_slt": [2, 108], "cvc5_kind_bitvector_sl": 2, "cvc5_kind_bitvector_sgt": [2, 108], "cvc5_kind_bitvector_sg": 2, "cvc5_kind_bitvector_ultbv": 2, "cvc5_kind_bitvector_sltbv": 2, "cvc5_kind_bitvector_it": 2, "regular": [2, 3, 5, 9, 23, 35, 39, 43, 44, 49, 51, 53, 55, 69, 74, 79, 80, 81, 86, 91, 97, 124, 131, 132, 140], "ITE": [2, 3, 51, 53, 69, 74, 107, 125, 126, 131], "condit": [2, 3, 11, 43, 48, 51, 53, 69, 74, 79, 85, 126, 131, 136], "cvc5_kind_bitvector_redor": 2, "redor": [2, 3, 51, 53, 69, 74], "cvc5_kind_bitvector_redand": 2, "redand": [2, 3, 51, 53, 69, 74], "cvc5_kind_bitvector_nego": 2, "overflow": [2, 3, 51, 53, 69, 74, 108], "detect": [2, 3, 51, 53, 69, 74], "cvc5_kind_bitvector_uaddo": 2, "cvc5_kind_bitvector_saddo": 2, "cvc5_kind_bitvector_umulo": 2, "cvc5_kind_bitvector_smulo": 2, "cvc5_kind_bitvector_usubo": 2, "cvc5_kind_bitvector_ssubo": 2, "cvc5_kind_bitvector_sdivo": 2, "cvc5_kind_bitvector_extract": [2, 20, 28, 107, 113], "extract": [2, 3, 51, 53, 69, 74, 91, 93, 100, 103, 107, 109, 111, 130, 131, 140, 146], "index": [2, 3, 5, 13, 14, 20, 23, 27, 30, 31, 38, 43, 44, 48, 49, 51, 53, 55, 62, 63, 69, 71, 74, 79, 80, 81, 85, 86, 100, 103, 108, 129, 130, 131, 140, 143, 146], "lower": [2, 3, 27, 48, 51, 53, 69, 74, 85, 103, 131], "cvc5_kind_bitvector_repeat": [2, 28], "repeat": [2, 3, 51, 53, 69, 74, 131], "number": [2, 3, 4, 9, 11, 13, 14, 16, 18, 20, 21, 23, 27, 28, 30, 31, 33, 38, 43, 44, 48, 49, 51, 53, 54, 57, 59, 62, 63, 65, 69, 71, 74, 78, 79, 85, 86, 89, 91, 92, 93, 94, 95, 98, 102, 108, 115, 125, 126, 129, 131, 139, 140, 142, 143, 149, 150], "time": [2, 3, 6, 8, 11, 43, 51, 53, 56, 58, 60, 69, 74, 76, 79, 87, 91, 99, 105, 120, 131, 132, 140, 144], "given": [2, 3, 5, 6, 7, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 27, 30, 31, 32, 33, 34, 36, 37, 38, 42, 43, 44, 45, 46, 47, 48, 49, 51, 52, 53, 54, 55, 56, 62, 63, 64, 68, 69, 70, 74, 79, 81, 83, 85, 86, 87, 89, 90, 91, 92, 93, 94, 95, 96, 100, 102, 103, 107, 109, 117, 125, 126, 130, 131, 132, 140, 141, 142, 143, 145], "cvc5_kind_bitvector_zero_extend": [2, 28], "extens": [2, 51, 69, 121, 129, 131, 142, 143, 145, 147, 150], "extend": [2, 3, 51, 53, 69, 74, 131, 136, 140, 150], "cvc5_kind_bitvector_sign_extend": [2, 28], "cvc5_kind_bitvector_rotate_left": [2, 28], "rotat": [2, 3, 51, 53, 69, 74, 91], "cvc5_kind_bitvector_rotate_right": [2, 28], "cvc5_kind_int_to_bitvector": [2, 28], "convers": [2, 3, 51, 53, 69, 74, 95, 131, 148], "cvc5_kind_bitvector_to_nat": 2, "cvc5_kind_bitvector_from_bool": 2, "list": [2, 3, 7, 8, 9, 10, 11, 14, 23, 27, 31, 39, 43, 44, 46, 48, 49, 51, 52, 53, 58, 60, 63, 69, 74, 76, 79, 80, 83, 85, 86, 89, 92, 93, 94, 96, 98, 99, 102, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 131, 134, 142, 143, 147, 150], "cvc5_kind_bitvector_bit": 2, "retriev": [2, 8, 9, 11, 13, 14, 17, 19, 21, 27, 28, 30, 31, 34, 37, 39, 41, 43, 45, 48, 51, 57, 58, 62, 63, 66, 68, 69, 73, 76, 85, 95, 102, 103, 125, 126, 137], "cvc5_kind_const_finite_field": 2, "finit": [2, 5, 11, 13, 23, 27, 30, 43, 44, 48, 49, 51, 55, 62, 69, 79, 80, 81, 85, 86, 97, 111, 121, 130, 138, 146, 149], "field": [2, 5, 23, 27, 43, 44, 48, 49, 51, 55, 69, 79, 80, 81, 85, 86, 93, 97, 111, 130, 138, 140, 143, 149], "mkfinitefieldelem": [2, 43, 49, 51, 69, 79, 86, 114, 144], "cvc5_kind_finite_field_neg": 2, "invers": [2, 51, 69, 94, 131], "cvc5_kind_finite_field_add": [2, 114], "cvc5_kind_finite_field_bitsum": 2, "bitsum": [2, 51, 69, 131, 144], "2y": [2, 51, 69], "4z": [2, 51, 69], "cvc5_kind_finite_field_mult": [2, 114], "cvc5_kind_const_floatingpoint": 2, "float": [2, 4, 5, 8, 23, 27, 43, 44, 48, 49, 51, 54, 55, 58, 60, 69, 76, 78, 79, 80, 81, 85, 86, 89, 92, 97, 99, 105, 111, 120, 138, 140, 141, 149], "ieee": [2, 3, 4, 43, 49, 51, 53, 54, 69, 79, 86, 95, 115, 130, 138], "754": [2, 4, 43, 49, 51, 54, 69, 79, 86, 115, 130, 138], "represent": [2, 3, 4, 5, 6, 7, 8, 11, 12, 13, 14, 15, 16, 17, 18, 20, 22, 23, 24, 27, 29, 30, 31, 32, 33, 34, 36, 38, 39, 42, 43, 44, 45, 47, 48, 49, 51, 53, 54, 55, 58, 60, 61, 64, 65, 69, 74, 76, 79, 85, 86, 92, 95, 99, 100, 105, 120, 131, 141], "mkfloatingpoint": [2, 43, 49, 51, 69, 79, 86, 115], "cvc5_kind_const_roundingmod": 2, "roundingmod": [2, 43, 44, 48, 49, 50, 51, 59, 69, 75, 79, 80, 86, 115, 140], "mkroundingmod": [2, 43, 49, 51, 69, 79, 86, 115], "cvc5_kind_floatingpoint_fp": 2, "liter": [2, 3, 7, 11, 43, 51, 52, 53, 69, 70, 74, 79, 86, 92, 131, 132, 145], "tripl": [2, 51, 69], "expon": [2, 3, 5, 23, 27, 43, 44, 48, 49, 51, 53, 55, 69, 74, 79, 80, 81, 85, 86, 95], "significand": [2, 5, 23, 27, 43, 44, 48, 49, 51, 55, 69, 79, 80, 81, 85, 86, 95], "cvc5_kind_floatingpoint_eq": 2, "cvc5_kind_floatingpoint_ab": 2, "cvc5_kind_floatingpoint_neg": 2, "cvc5_kind_floatingpoint_add": [2, 115], "cvc5_kind_floatingpoint_sub": 2, "sutract": [2, 51, 69], "cvc5_kind_floatingpoint_mult": [2, 115], "multipli": [2, 3, 8, 51, 53, 58, 60, 69, 74, 76, 95, 99, 105, 120], "cvc5_kind_floatingpoint_div": 2, "cvc5_kind_floatingpoint_fma": [2, 115], "fuse": [2, 51, 69, 95, 115], "add": [2, 3, 8, 10, 11, 16, 18, 32, 33, 36, 38, 40, 43, 49, 51, 53, 58, 60, 64, 65, 67, 69, 71, 72, 74, 76, 79, 86, 88, 89, 95, 96, 99, 101, 102, 105, 108, 109, 115, 120, 124, 125, 126, 127, 131, 132, 144], "4": [2, 3, 4, 8, 51, 53, 54, 58, 60, 69, 74, 76, 89, 91, 94, 95, 99, 100, 103, 105, 106, 108, 115, 120, 130, 131, 132, 140, 141, 142, 143, 147], "cvc5_kind_floatingpoint_sqrt": 2, "cvc5_kind_floatingpoint_rem": 2, "cvc5_kind_floatingpoint_rti": 2, "round": [2, 4, 5, 23, 27, 43, 44, 48, 49, 51, 54, 55, 69, 78, 79, 80, 81, 85, 86, 97, 108, 115, 131], "cvc5_kind_floatingpoint_min": 2, "minimum": [2, 3, 9, 39, 51, 53, 69, 74, 94, 95, 130, 131], "cvc5_kind_floatingpoint_max": 2, "maximum": [2, 3, 9, 39, 51, 53, 69, 74, 95, 117, 130, 131], "cvc5_kind_floatingpoint_leq": 2, "cvc5_kind_floatingpoint_lt": [2, 115], "cvc5_kind_floatingpoint_geq": 2, "cvc5_kind_floatingpoint_gt": 2, "cvc5_kind_floatingpoint_is_norm": [2, 115], "normal": [2, 3, 11, 51, 53, 69, 74, 95, 115, 131], "tester": [2, 3, 14, 23, 31, 43, 44, 49, 51, 53, 63, 69, 74, 79, 80, 86, 93, 97, 110, 131, 143, 147], "cvc5_kind_floatingpoint_is_subnorm": 2, "sub": [2, 3, 8, 27, 48, 51, 53, 58, 60, 69, 74, 76, 85, 89, 99, 105, 117, 120, 125, 131, 146], "cvc5_kind_floatingpoint_is_zero": 2, "cvc5_kind_floatingpoint_is_inf": 2, "infinit": [2, 4, 51, 54, 69, 78, 93, 131, 146, 147], "cvc5_kind_floatingpoint_is_nan": 2, "nan": [2, 27, 43, 48, 49, 51, 69, 79, 86, 95, 115], "cvc5_kind_floatingpoint_is_neg": 2, "cvc5_kind_floatingpoint_is_po": 2, "cvc5_kind_floatingpoint_to_fp_from_ieee_bv": [2, 28], "cvc5_kind_floatingpoint_to_fp_from_fp": [2, 28], "cvc5_kind_floatingpoint_to_fp_from_r": [2, 28], "cvc5_kind_floatingpoint_to_fp_from_sbv": [2, 28], "cvc5_kind_floatingpoint_to_fp_from_ubv": [2, 28], "cvc5_kind_floatingpoint_to_ubv": [2, 28, 115], "cvc5_kind_floatingpoint_to_sbv": [2, 28], "cvc5_kind_floatingpoint_to_r": [2, 115], "cvc5_kind_select": [2, 108], "arrai": [2, 3, 5, 8, 10, 11, 13, 21, 23, 24, 27, 43, 44, 48, 49, 51, 53, 55, 57, 58, 60, 69, 74, 76, 79, 80, 81, 85, 86, 92, 95, 97, 98, 99, 101, 105, 111, 120, 140, 141, 149], "select": [2, 3, 4, 11, 43, 51, 53, 54, 63, 69, 74, 78, 79, 90, 108, 131, 132, 139, 140, 143, 147], "cvc5_kind_stor": [2, 108], "store": [2, 3, 11, 21, 27, 35, 43, 45, 48, 49, 51, 53, 69, 74, 79, 85, 86, 90, 108, 131, 141], "cvc5_kind_const_arrai": 2, "cvc5_kind_eq_rang": 2, "rang": [2, 3, 43, 49, 51, 53, 69, 74, 90, 92, 93, 101, 103, 108, 110, 115, 124, 125, 126, 131, 140], "j": [2, 3, 11, 43, 51, 53, 69, 74, 79, 90, 93, 109, 110, 130, 138, 143, 146], "leq": [2, 3, 8, 51, 53, 58, 60, 69, 74, 76, 89, 95, 99, 105, 109, 117, 120, 125, 126, 142], "inclus": [2, 3, 45, 51, 53, 69, 74, 82, 131], "current": [2, 3, 7, 8, 9, 11, 19, 37, 39, 43, 49, 51, 52, 53, 58, 60, 68, 69, 70, 74, 76, 79, 85, 86, 97, 99, 102, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 131, 132, 133, 139, 141, 142, 144, 146, 147, 149, 150], "requir": [2, 3, 6, 7, 8, 11, 14, 20, 21, 27, 30, 31, 37, 38, 41, 43, 48, 51, 52, 53, 56, 58, 60, 63, 68, 69, 70, 71, 74, 76, 79, 87, 115, 125, 126, 130, 131, 139, 145], "enabl": [2, 8, 11, 43, 51, 58, 60, 69, 76, 79, 99, 102, 105, 120, 130, 131, 132, 143, 150], "exp": [2, 3, 6, 43, 49, 51, 53, 56, 69, 74, 79, 86, 95, 121, 122, 124, 131, 147, 150], "cvc5_kind_apply_constructor": [2, 14, 110], "datatypeconstructor": [2, 30, 34, 50, 51, 59, 66, 69, 75, 110], "getterm": [2, 31, 34, 51, 63, 66, 69, 110, 143], "selector": [2, 3, 13, 14, 17, 23, 30, 31, 32, 34, 43, 44, 49, 51, 53, 62, 63, 64, 66, 69, 74, 79, 80, 86, 93, 110, 131, 140, 143, 147], "cvc5_kind_apply_selector": [2, 17, 110], "datatypeselector": [2, 14, 30, 31, 50, 51, 59, 69, 75, 110], "codomain": [2, 5, 11, 17, 23, 32, 34, 43, 44, 49, 51, 55, 64, 66, 69, 79, 80, 81, 86, 140], "misappli": [2, 51, 69], "cvc5_kind_apply_test": [2, 14, 110], "gettesterterm": [2, 31, 51, 63, 69, 110, 143], "belong": [2, 7, 51, 52, 69, 145], "cvc5_kind_apply_updat": [2, 17, 110], "updat": [2, 3, 17, 23, 34, 44, 51, 53, 66, 69, 74, 80, 90, 100, 110, 130, 131, 146, 148], "getupdaterterm": [2, 34, 51, 66, 69, 110, 143], "cvc5_kind_match": 2, "smt": [2, 3, 4, 8, 11, 14, 16, 23, 25, 31, 33, 43, 44, 46, 49, 51, 53, 54, 58, 60, 63, 65, 69, 74, 76, 78, 79, 80, 83, 86, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 120, 121, 122, 123, 124, 127, 129, 130, 133, 134, 138, 139, 140, 142, 143, 144, 145, 146, 147, 148, 149, 150], "libv2": [2, 8, 51, 58, 60, 69, 76, 99, 104, 105, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 120, 121, 122, 123, 124, 127, 131, 142, 147, 150], "l": [2, 3, 51, 53, 59, 69, 74, 93, 100, 103, 130, 131, 138, 140, 145, 148], "con": [2, 14, 31, 51, 63, 69, 93, 110, 131, 143], "h": [2, 3, 8, 51, 53, 58, 60, 69, 74, 76, 99, 103, 105, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 131, 142, 145, 147, 150], "nil": [2, 11, 14, 31, 43, 49, 51, 63, 69, 79, 86, 93, 110, 143, 145], "ast": [2, 27, 48, 51, 69, 85, 89, 90, 91, 92, 93, 94, 95, 98, 100, 101, 102, 103, 131], "match_bind_cas": [2, 51, 69], "match_cas": [2, 51, 69], "nullari": [2, 14, 22, 30, 31, 33, 36, 38, 41, 42, 47, 48, 51, 63, 69, 77], "pattern": [2, 3, 51, 53, 69, 74, 97, 131], "cover": [2, 39, 51, 69, 130, 131], "least": [2, 4, 11, 43, 51, 54, 69, 78, 79, 92, 123, 131, 147], "catch": [2, 51, 69, 112], "includ": [2, 3, 7, 8, 9, 11, 14, 31, 35, 39, 43, 45, 48, 51, 52, 53, 58, 60, 63, 69, 74, 76, 79, 82, 92, 98, 99, 101, 105, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 131, 132, 133, 140, 141, 142, 143, 147, 150], "cvc5_kind_match_cas": 2, "apply_constructor": [2, 31, 51, 63, 69, 110, 143], "against": [2, 51, 69], "evalu": [2, 3, 8, 51, 53, 58, 60, 69, 74, 76, 91, 99, 102, 105, 110, 120, 131, 143], "cvc5_kind_match_bind_cas": 2, "binder": [2, 3, 43, 49, 51, 53, 69, 74, 79, 86, 131, 140], "contain": [2, 3, 7, 11, 23, 27, 37, 43, 44, 48, 49, 51, 52, 53, 69, 70, 74, 79, 80, 85, 86, 92, 93, 98, 102, 103, 130, 131, 133, 134, 136, 140, 146, 147], "appli": [2, 3, 7, 11, 14, 23, 27, 31, 43, 44, 48, 51, 52, 53, 63, 69, 70, 74, 79, 80, 85, 92, 93, 102, 110, 130, 131, 139, 143], "set": [2, 3, 5, 7, 8, 9, 11, 18, 19, 23, 27, 36, 37, 39, 43, 44, 45, 46, 48, 49, 51, 52, 53, 55, 58, 60, 67, 68, 69, 70, 74, 76, 79, 80, 81, 83, 85, 86, 92, 93, 95, 97, 99, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 124, 125, 126, 127, 130, 132, 138, 139, 140, 141, 142, 143, 144, 145, 146, 149, 150], "cvc5_kind_tuple_project": [2, 28], "tupl": [2, 5, 13, 23, 27, 30, 43, 44, 48, 49, 51, 55, 62, 69, 79, 80, 81, 85, 86, 89, 91, 92, 93, 94, 103, 121, 131, 147], "project": [2, 8, 9, 15, 19, 24, 25, 26, 28, 51, 58, 60, 69, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 131, 142, 143, 147, 150], "take": [2, 3, 11, 23, 27, 44, 48, 51, 53, 69, 74, 80, 85, 95, 101, 130, 131, 139], "obtain": [2, 3, 8, 9, 11, 24, 39, 43, 45, 51, 53, 58, 60, 69, 74, 76, 79, 82, 99, 100, 103, 105, 120, 130, 140, 141, 146, 148], "compon": [2, 3, 7, 8, 11, 43, 49, 51, 52, 53, 58, 60, 69, 74, 76, 79, 86, 88, 99, 105, 120, 139, 140], "10": [2, 8, 27, 43, 48, 49, 51, 58, 60, 69, 76, 79, 85, 86, 89, 90, 91, 93, 94, 95, 99, 102, 103, 105, 114, 119, 120, 126, 131, 138], "20": [2, 8, 51, 69, 93, 95, 120, 130, 138], "30": [2, 51, 69, 102, 113, 131], "40": [2, 51, 69], "yield": [2, 51, 69], "cvc5_kind_nullable_lift": 2, "lift": [2, 3, 43, 49, 51, 53, 69, 74, 79, 86, 131], "nullabl": [2, 5, 23, 43, 44, 49, 51, 55, 69, 79, 80, 81, 86], "built": [2, 8, 51, 58, 60, 69, 76, 89, 91, 94, 99, 105, 120, 130, 145], "mknullablelift": [2, 43, 49, 51, 69, 79, 86], "cvc5_kind_sep_nil": 2, "separ": [2, 11, 43, 49, 51, 69, 79, 86, 88, 92, 117, 125, 126, 138, 140, 149], "mksepnil": [2, 43, 49, 51, 69, 79, 86, 145], "cvc5_kind_sep_emp": 2, "empti": [2, 3, 9, 11, 19, 22, 28, 37, 42, 43, 45, 47, 49, 51, 53, 68, 69, 74, 77, 79, 86, 93, 100, 101, 106, 121, 122, 123, 131, 140, 142, 145, 146, 147], "heap": [2, 11, 43, 51, 69, 79, 131, 145], "mksepemp": [2, 43, 49, 51, 69, 79, 86, 145], "cvc5_kind_sep_pto": 2, "relat": [2, 3, 11, 23, 43, 44, 51, 53, 69, 74, 79, 80, 97, 111, 126, 129, 131, 138, 140, 145, 149], "denot": [2, 3, 5, 8, 9, 23, 43, 44, 49, 51, 53, 55, 58, 60, 69, 74, 76, 79, 80, 81, 86, 99, 105, 120, 121, 140, 143, 145, 146], "locat": [2, 11, 43, 51, 69, 79, 130, 145], "data": [2, 10, 11, 27, 43, 48, 51, 69, 79, 85, 138, 143, 145], "cvc5_kind_sep_star": 2, "star": [2, 3, 51, 53, 69, 74, 103, 124, 145], "child": [2, 5, 27, 43, 48, 49, 51, 55, 69, 79, 81, 85, 86, 109], "hold": [2, 3, 9, 24, 27, 39, 45, 48, 51, 53, 69, 74, 85, 92, 102, 108, 123, 131, 132, 136, 147], "disjoint": [2, 51, 69, 106, 121, 140, 142, 145], "cvc5_kind_sep_wand": 2, "magic": [2, 51, 69, 145], "wand": [2, 51, 69, 145], "antecend": [2, 51, 69], "conclus": [2, 3, 21, 41, 51, 53, 69, 73, 74, 131], "anteced": [2, 51, 69], "cvc5_kind_set_empti": 2, "mkemptyset": [2, 43, 49, 51, 69, 79, 86, 121, 123, 147], "cvc5_kind_set_union": [2, 121, 123], "union": [2, 3, 9, 27, 48, 51, 53, 69, 74, 85, 93, 101, 103, 106, 121, 123, 124, 140, 142, 145, 147], "cvc5_kind_set_int": [2, 121, 123], "intersect": [2, 3, 51, 53, 69, 74, 101, 103, 106, 121, 123, 131, 142, 147], "cvc5_kind_set_minu": 2, "cvc5_kind_set_subset": [2, 121, 123], "subset": [2, 3, 7, 8, 11, 43, 51, 52, 53, 58, 60, 69, 70, 74, 76, 79, 99, 101, 102, 105, 120, 121, 123, 131, 147], "determin": [2, 3, 7, 11, 13, 14, 16, 19, 20, 22, 23, 24, 27, 29, 30, 31, 33, 36, 37, 38, 41, 42, 43, 44, 45, 46, 47, 48, 49, 51, 52, 53, 62, 63, 68, 69, 70, 74, 77, 79, 80, 84, 86, 100, 102, 130, 131], "cvc5_kind_set_memb": [2, 121, 123], "membership": [2, 3, 51, 53, 69, 74, 103, 131, 142, 147], "member": [2, 3, 9, 10, 39, 51, 53, 69, 74, 100, 101, 121, 123, 140, 142, 147], "cvc5_kind_set_singleton": [2, 123], "singleton": [2, 3, 27, 48, 51, 53, 69, 74, 85, 100, 101, 123, 147], "construct": [2, 3, 8, 11, 12, 13, 14, 15, 16, 17, 19, 20, 23, 25, 27, 29, 30, 31, 32, 33, 34, 37, 38, 43, 44, 46, 48, 49, 51, 53, 57, 58, 60, 61, 62, 63, 64, 65, 66, 68, 69, 71, 74, 76, 79, 80, 83, 85, 86, 99, 105, 109, 110, 111, 118, 119, 120, 127, 131, 144], "paramet": [2, 3, 4, 5, 6, 7, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 51, 52, 53, 54, 55, 56, 57, 61, 62, 63, 64, 65, 67, 68, 69, 71, 72, 79, 80, 81, 82, 85, 86, 102, 108, 110, 125, 126, 131, 143], "cvc5_kind_set_insert": 2, "insert": [2, 3, 51, 53, 69, 74, 102, 125, 126, 130, 147], "cvc5_kind_set_card": 2, "cvc5_kind_set_compl": 2, "respect": [2, 3, 11, 27, 39, 43, 48, 51, 53, 69, 74, 79, 131, 139, 145, 149], "cvc5_kind_set_univers": [2, 27], "mkuniverseset": [2, 43, 49, 51, 69, 79, 86, 121, 147], "set_univers": [2, 48, 51, 69, 85], "theori": [2, 3, 4, 6, 7, 10, 11, 23, 27, 40, 44, 48, 51, 52, 53, 54, 56, 69, 70, 72, 74, 80, 85, 87, 97, 111, 129, 132, 133, 134, 136, 138, 139, 141], "issetvalu": [2, 27, 48, 51, 69, 85], "cvc5_kind_set_comprehens": 2, "specifi": [2, 3, 4, 7, 10, 11, 13, 14, 17, 30, 31, 34, 40, 43, 51, 52, 53, 54, 62, 63, 66, 69, 72, 74, 79, 92, 110, 130, 131, 134, 150], "x_1": [2, 3, 11, 43, 51, 53, 69, 74, 79], "x_n": [2, 3, 51, 53, 69, 74, 79], "p": [2, 3, 11, 41, 43, 48, 51, 53, 69, 74, 79, 92, 93, 98, 102, 109, 127, 131, 132, 138, 144], "abov": [2, 3, 7, 8, 11, 14, 27, 31, 39, 43, 48, 51, 52, 53, 58, 60, 63, 69, 70, 74, 76, 79, 88, 99, 105, 107, 118, 119, 120, 125, 126, 130, 131, 143, 147], "wedg": [2, 3, 8, 11, 43, 51, 53, 58, 60, 69, 74, 76, 79, 99, 105], "leftrightarrow": [2, 3, 51, 53, 69, 74], "cvc5_kind_set_choos": 2, "choos": [2, 3, 8, 51, 53, 58, 60, 69, 74, 76, 99, 105, 120, 130, 131, 140], "determinist": [2, 51, 69, 139], "cvc5_kind_set_is_empti": 2, "cvc5_kind_set_is_singleton": 2, "cvc5_kind_set_map": 2, "map": [2, 3, 11, 23, 24, 27, 37, 43, 44, 45, 46, 48, 51, 53, 69, 74, 79, 80, 82, 83, 85, 92, 140, 141], "s_1": [2, 3, 51, 53, 69, 74], "s_2": [2, 3, 51, 53, 69, 74], "cvc5_kind_set_filt": 2, "filter": [2, 3, 7, 51, 52, 53, 69, 70, 74, 131], "bag": [2, 5, 23, 43, 44, 49, 51, 55, 69, 79, 80, 81, 86, 97, 111, 140, 149], "cvc5_kind_set_al": 2, "check": [2, 3, 6, 8, 10, 11, 40, 43, 51, 53, 56, 58, 60, 69, 72, 74, 76, 79, 87, 93, 95, 99, 101, 102, 103, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 120, 121, 122, 123, 124, 125, 126, 127, 130, 131, 132, 133, 134, 136, 138, 139, 141, 142, 143, 144, 145, 146, 147, 150], "whether": [2, 8, 9, 11, 26, 39, 43, 45, 47, 49, 51, 58, 60, 69, 76, 79, 84, 86, 92, 95, 99, 102, 105, 108, 116, 120, 131, 141, 143], "iff": [2, 3, 20, 27, 38, 48, 51, 53, 69, 71, 74, 79, 80, 85, 143, 145], "cvc5_kind_set_som": 2, "some": [2, 3, 7, 8, 11, 27, 39, 41, 43, 48, 49, 51, 52, 53, 58, 60, 69, 70, 73, 74, 76, 79, 85, 86, 97, 99, 105, 108, 109, 117, 120, 130, 131, 139, 140, 141, 143, 146, 148], "cvc5_kind_set_fold": 2, "fold": [2, 51, 69, 135, 140], "combin": [2, 3, 51, 53, 69, 74, 111, 121, 129, 131, 140, 149], "singl": [2, 3, 16, 33, 45, 51, 53, 65, 69, 74, 82, 92, 95, 98, 101, 103, 109, 115, 130, 131, 139, 140, 146], "start": [2, 3, 8, 11, 43, 51, 53, 58, 60, 62, 63, 69, 74, 76, 79, 99, 100, 103, 105, 120, 125, 131, 132, 133, 134, 136, 145, 146], "initi": [2, 11, 19, 24, 37, 43, 51, 68, 69, 79, 93, 131, 132, 140], "cvc5_kind_relation_join": [2, 121], "join": [2, 51, 69, 121, 147], "cvc5_kind_relation_table_join": 2, "tabl": [2, 23, 25, 37, 44, 46, 51, 69, 80, 83, 92, 119, 140, 142, 143, 144, 145, 146, 147], "rel": [2, 51, 69, 121, 131, 140, 147], "_join": [2, 51, 69], "m_1": [2, 51, 69, 142], "n_1": [2, 51, 69], "dot": [2, 3, 7, 51, 52, 53, 69, 70, 74, 79, 85, 131, 137], "m_k": [2, 51, 69], "n_k": [2, 51, 69], "natur": [2, 3, 51, 53, 69, 74, 142, 150], "product": [2, 51, 59, 69, 91, 94, 102, 129, 131, 147], "cvc5_kind_relation_product": 2, "cartesian": [2, 51, 69], "cvc5_kind_relation_transpos": [2, 121], "transpos": [2, 51, 69, 121, 147], "cvc5_kind_relation_tclosur": [2, 121], "transit": [2, 3, 11, 43, 51, 53, 69, 74, 79, 121, 126, 131, 147], "closur": [2, 51, 69, 121, 147], "cvc5_kind_relation_join_imag": 2, "imag": [2, 51, 69], "cvc5_kind_relation_iden": 2, "ident": [2, 3, 20, 27, 38, 51, 53, 69, 74, 92, 143], "cvc5_kind_relation_group": 2, "group": [2, 9, 15, 19, 24, 25, 26, 28, 51, 69, 131, 140], "partit": [2, 3, 51, 53, 69, 74, 131, 140], "have": [2, 3, 8, 11, 19, 23, 27, 37, 43, 44, 45, 46, 48, 49, 51, 53, 58, 60, 68, 69, 74, 76, 79, 83, 86, 88, 92, 93, 99, 102, 105, 106, 107, 120, 121, 130, 131, 140, 142, 143, 144, 145, 146, 147], "part": [2, 8, 11, 43, 46, 51, 58, 60, 69, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 131, 133, 139, 140, 141, 142, 146, 147, 150], "It": [2, 3, 8, 9, 10, 11, 18, 23, 35, 36, 39, 40, 43, 44, 45, 46, 51, 53, 58, 60, 67, 69, 72, 74, 75, 76, 80, 85, 91, 92, 93, 97, 99, 102, 105, 120, 129, 130, 131, 133, 135, 139, 143, 146, 148], "type": [2, 3, 7, 8, 9, 11, 14, 23, 24, 27, 30, 31, 32, 35, 39, 43, 44, 45, 48, 49, 51, 52, 53, 57, 58, 60, 63, 69, 74, 76, 79, 85, 86, 89, 92, 99, 102, 105, 107, 110, 112, 115, 120, 124, 131, 132, 138, 140, 141, 143, 145], "cvc5_kind_relation_aggreg": 2, "aggreg": [2, 51, 69], "aggr": [2, 51, 69], "t_1": [2, 3, 51, 53, 69, 74], "t_j": [2, 3, 51, 53, 69, 74], "cvc5_kind_relation_project": 2, "cvc5_kind_bag_empti": 2, "mkemptybag": [2, 43, 49, 51, 69, 79, 86, 106, 142], "cvc5_kind_bag_union_max": [2, 106], "max": [2, 3, 9, 51, 53, 69, 74, 92, 106, 125, 131, 140, 142], "cvc5_kind_bag_union_disjoint": [2, 106], "sum": [2, 3, 51, 53, 69, 74, 89, 91, 93, 94, 102, 109, 131, 140], "cvc5_kind_bag_inter_min": [2, 106], "min": [2, 9, 51, 69, 125, 131, 140, 142, 148], "cvc5_kind_bag_difference_subtract": 2, "cvc5_kind_bag_difference_remov": 2, "share": [2, 9, 11, 15, 19, 24, 25, 26, 28, 43, 48, 49, 51, 59, 69, 79, 86, 111, 131, 140], "cvc5_kind_bag_subbag": [2, 106], "cvc5_kind_bag_count": [2, 106], "cvc5_kind_bag_memb": 2, "cvc5_kind_bag_setof": 2, "setof": [2, 51, 69, 142], "elimin": [2, 3, 11, 43, 51, 53, 69, 74, 79, 131, 140, 142], "duplic": [2, 3, 23, 27, 44, 48, 51, 53, 69, 74, 80, 85, 142], "exactli": [2, 11, 43, 51, 69, 79], "cvc5_kind_bag_mak": [2, 106], "make": [2, 11, 13, 14, 16, 17, 18, 20, 21, 22, 23, 27, 43, 45, 51, 59, 69, 79, 88, 108, 113, 115, 122, 124, 130, 131, 142, 147], "cvc5_kind_bag_card": 2, "cvc5_kind_bag_choos": 2, "cvc5_kind_bag_map": 2, "cvc5_kind_bag_filt": 2, "subbag": [2, 51, 69, 106, 142], "cvc5_kind_bag_fold": 2, "cvc5_kind_bag_partit": 2, "r": [2, 3, 8, 42, 47, 51, 53, 69, 74, 92, 93, 102, 114, 115, 118, 120, 124, 130, 132, 140, 143, 144], "cvc5_kind_table_product": 2, "cross": [2, 51, 69, 131], "cvc5_kind_table_project": 2, "cvc5_kind_table_aggreg": 2, "cvc5_kind_table_join": 2, "cvc5_kind_table_group": 2, "cvc5_kind_string_concat": [2, 124], "concat": [2, 3, 51, 53, 69, 74, 91, 95, 100, 103, 122, 124, 131], "cvc5_kind_string_in_regexp": [2, 124], "reglan": [2, 23, 44, 51, 69, 80, 124, 148], "cvc5_kind_string_length": [2, 124], "length": [2, 3, 23, 44, 51, 53, 69, 74, 80, 100, 103, 122, 124, 125, 126, 131, 140, 146], "cvc5_kind_string_substr": 2, "substr": [2, 3, 51, 53, 69, 74, 103, 140, 148], "cvc5_kind_string_upd": 2, "replac": [2, 3, 23, 27, 43, 44, 46, 48, 51, 53, 69, 74, 79, 80, 85, 86, 100, 102, 103, 131, 140, 143, 146], "context": [2, 8, 11, 18, 19, 36, 37, 43, 51, 58, 60, 67, 68, 69, 76, 79, 89, 91, 92, 94, 95, 99, 102, 103, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 120, 121, 122, 123, 124, 125, 126, 127, 131, 142, 145, 147, 150], "otherwis": [2, 3, 11, 23, 25, 43, 44, 46, 51, 53, 69, 74, 79, 83, 85, 130, 131, 134, 140, 146, 148], "origin": [2, 3, 8, 43, 49, 51, 53, 58, 60, 69, 74, 76, 79, 86, 99, 105, 120, 131, 140], "preserv": [2, 51, 69], "strong": [2, 51, 69, 131], "cvc5_kind_string_charat": 2, "charact": [2, 3, 43, 49, 51, 53, 69, 74, 79, 86, 103, 131, 140, 141, 148], "cvc5_kind_string_contain": 2, "anoth": [2, 6, 8, 51, 56, 58, 60, 69, 76, 87, 99, 105, 107, 119, 120, 131, 139, 140], "alwai": [2, 3, 11, 43, 49, 51, 53, 69, 74, 79, 93, 101, 131, 141, 147], "cvc5_kind_string_indexof": 2, "after": [2, 3, 7, 11, 19, 21, 30, 31, 35, 37, 41, 43, 48, 51, 52, 53, 68, 69, 70, 73, 74, 79, 93, 105, 107, 110, 112, 118, 130, 131, 132, 139, 140, 141, 146], "cvc5_kind_string_indexof_r": 2, "cvc5_kind_string_replac": 2, "s_3": [2, 51, 69], "unmodifi": [2, 51, 69], "cvc5_kind_string_replace_al": 2, "occurr": [2, 3, 43, 51, 53, 69, 74, 79, 102, 140, 143, 146], "cvc5_kind_string_replace_r": 2, "cvc5_kind_string_replace_re_al": 2, "cvc5_kind_string_to_low": 2, "cvc5_kind_string_to_upp": 2, "cvc5_kind_string_rev": 2, "revers": [2, 3, 51, 53, 69, 74, 146, 148], "cvc5_kind_string_to_cod": 2, "code": [2, 3, 51, 53, 69, 74, 92, 103, 107, 108, 130, 131, 148], "cvc5_kind_string_from_cod": 2, "whose": [2, 3, 5, 7, 11, 14, 27, 31, 32, 43, 48, 49, 51, 52, 53, 55, 63, 64, 69, 70, 74, 79, 81, 85, 86, 131, 136, 140, 143, 145], "out": [2, 8, 29, 30, 31, 32, 33, 34, 35, 36, 38, 39, 42, 44, 45, 47, 48, 51, 52, 53, 54, 55, 56, 58, 60, 69, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 131, 132, 140, 142, 146, 147, 150], "cvc5_kind_string_lt": 2, "strictli": [2, 51, 69], "lexiograph": [2, 51, 69, 103], "cvc5_kind_string_leq": 2, "cvc5_kind_string_prefix": 2, "prefix": [2, 3, 30, 31, 48, 51, 53, 59, 69, 74, 89, 92, 103, 105, 130, 131, 140, 146], "s1": [2, 51, 69, 103, 124, 146], "cvc5_kind_string_suffix": 2, "suffix": [2, 3, 51, 53, 69, 74, 103, 146], "cvc5_kind_string_is_digit": 2, "digit": [2, 4, 51, 54, 69, 78, 140], "9": [2, 8, 51, 58, 59, 60, 69, 76, 99, 105, 120], "cvc5_kind_string_from_int": 2, "cvc5_kind_string_to_int": 2, "total": [2, 3, 51, 53, 69, 74, 131], "cvc5_kind_const_str": 2, "mkstring": [2, 43, 49, 51, 69, 79, 86, 106, 124, 142], "wstring": [2, 43, 48, 49, 51], "cvc5_kind_string_to_regexp": [2, 124], "regexp": [2, 43, 49, 51, 69, 80, 131], "cvc5_kind_regexp_concat": [2, 124], "cvc5_kind_regexp_union": [2, 124], "cvc5_kind_regexp_int": 2, "cvc5_kind_regexp_diff": 2, "cvc5_kind_regexp_star": [2, 124], "cvc5_kind_regexp_plu": 2, "cvc5_kind_regexp_opt": 2, "cvc5_kind_regexp_rang": [2, 124], "cvc5_kind_regexp_repeat": 2, "repetit": [2, 51, 69, 103], "cvc5_kind_regexp_loop": 2, "loop": [2, 3, 51, 53, 69, 74, 103, 108, 109, 110, 131], "cvc5_kind_regexp_non": 2, "none": [2, 3, 7, 11, 43, 49, 51, 52, 53, 69, 70, 74, 79, 86, 89, 90, 91, 92, 93, 94, 95, 98, 100, 101, 102, 103, 131, 132, 140], "mkregexpnon": [2, 43, 49, 51, 69, 79, 86], "cvc5_kind_regexp_al": 2, "mkregexpal": [2, 43, 49, 51, 69, 79, 86], "cvc5_kind_regexp_allchar": 2, "mkregexpallchar": [2, 43, 49, 51, 69, 79, 86], "cvc5_kind_regexp_compl": 2, "cvc5_kind_seq_concat": [2, 122], "sequenc": [2, 3, 5, 23, 27, 43, 44, 48, 49, 51, 53, 55, 69, 74, 79, 80, 81, 85, 86, 91, 97, 103, 111, 131, 140, 141, 149], "cvc5_kind_seq_length": [2, 122], "cvc5_kind_seq_extract": 2, "subsequ": [2, 51, 69, 100], "cvc5_kind_seq_upd": 2, "cvc5_kind_seq_at": 2, "cvc5_kind_seq_contain": 2, "cvc5_kind_seq_indexof": 2, "cvc5_kind_seq_replac": 2, "cvc5_kind_seq_replace_al": 2, "cvc5_kind_seq_rev": 2, "cvc5_kind_seq_prefix": 2, "cvc5_kind_seq_suffix": 2, "cvc5_kind_const_sequ": 2, "seq": [2, 3, 27, 48, 51, 53, 69, 74, 100, 103, 122, 131, 140, 146], "unit": [2, 3, 7, 27, 48, 51, 52, 53, 69, 70, 74, 85, 100, 103, 122, 131, 143, 146, 147], "c1": [2, 27, 48, 51, 69, 85, 131, 143, 145], "cn": [2, 3, 51, 53, 69, 74, 145], "c_1": [2, 3, 27, 48, 51, 53, 69, 74, 85], "c_n": [2, 3, 27, 48, 51, 53, 69, 74, 85], "getsequencevalu": [2, 27, 48, 51, 69, 85], "mkemptysequ": [2, 43, 49, 51, 69, 79, 86, 122, 146], "cvc5_kind_seq_unit": [2, 122], "cvc5_kind_seq_nth": 2, "nth": [2, 3, 51, 53, 69, 74, 146], "inst_pattern": [2, 51, 69], "cvc5_kind_exist": 2, "existenti": [2, 51, 69, 98, 131], "cvc5_kind_variable_list": [2, 121], "under": [2, 3, 8, 51, 53, 58, 60, 69, 74, 76, 99, 105, 120, 130, 131], "cvc5_kind_inst_pattern": 2, "cvc5_kind_inst_no_pattern": 2, "cvc5_kind_inst_pool": 2, "pool": [2, 11, 43, 51, 69, 79, 131], "annot": [2, 51, 69, 131, 132], "detail": [2, 3, 9, 11, 39, 43, 50, 51, 53, 59, 69, 74, 79, 95, 130, 134, 136, 147], "method": [2, 3, 7, 10, 11, 40, 43, 51, 52, 53, 57, 63, 65, 68, 69, 72, 74, 79, 84, 86, 92, 93, 102, 107, 125, 126, 131, 138], "declarepool": [2, 43, 51, 69, 79], "either": [2, 3, 8, 11, 19, 37, 43, 45, 51, 53, 58, 60, 62, 63, 68, 69, 74, 76, 79, 86, 99, 102, 105, 115, 120, 131, 139, 140, 141, 146], "inst_pool": [2, 11, 43, 51, 69], "q": [2, 3, 11, 43, 51, 53, 69, 74, 79, 89, 92, 98, 102, 122, 124, 131, 132, 140, 144], "occur": [2, 3, 7, 51, 52, 53, 69, 70, 74, 103, 131, 139, 140], "pair": [2, 7, 8, 27, 43, 48, 49, 51, 52, 58, 59, 60, 69, 70, 76, 79, 82, 85, 93, 99, 102, 105, 120, 143], "compris": [2, 51, 69], "cvc5_kind_inst_add_to_pool": 2, "instantanti": [2, 51, 69], "ad": [2, 3, 7, 8, 11, 18, 36, 43, 51, 52, 53, 58, 60, 67, 69, 70, 74, 76, 79, 88, 99, 102, 105, 120, 131, 132, 136, 140], "inst_add_to_pool": [2, 51, 69], "assum": [2, 3, 11, 43, 49, 51, 53, 69, 74, 79, 91, 92, 93, 102, 106, 107, 109, 113, 123, 131, 132, 133, 134, 140, 142, 143, 144, 145, 146, 147], "cvc5_kind_skolem_add_to_pool": 2, "skolem_add_to_pool": [2, 51, 69], "cvc5_kind_inst_attribut": 2, "attribut": [2, 11, 43, 46, 51, 69, 79, 83], "custom": [2, 51, 69, 102, 131, 135], "properti": [2, 3, 51, 53, 69, 74, 141], "ascrib": [2, 51, 69], "const_str": [2, 51, 69], "keyword": [2, 11, 43, 51, 69, 79, 102], "cvc5_kind_inst_pattern_list": 2, "inst_no_pattern": [2, 51, 69], "inst_attribut": [2, 51, 69], "cvc5_kind_last_kind": 2, "mark": [2, 5, 51, 55, 69, 81], "char": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 20, 22, 23, 24, 27, 28, 53, 57, 74, 106, 109, 118, 119, 120], "cvc5_kind_to_str": 2, "get": [2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 27, 29, 30, 31, 33, 34, 37, 38, 39, 40, 41, 43, 44, 45, 46, 48, 49, 51, 55, 58, 60, 61, 62, 63, 66, 71, 72, 76, 79, 80, 82, 83, 85, 86, 90, 99, 100, 102, 103, 105, 106, 108, 109, 110, 115, 118, 120, 121, 122, 123, 125, 126, 131, 140, 142, 147], "size_t": [2, 3, 5, 8, 9, 10, 11, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 27, 28, 30, 31, 33, 38, 41, 43, 44, 48, 49, 51, 53, 55, 109, 110, 120, 125, 126], "cvc5_kind_hash": 2, "hash": [2, 3, 5, 13, 14, 16, 17, 18, 20, 21, 22, 23, 27, 30, 31, 32, 33, 34, 36, 38, 41, 44, 48, 51, 53, 55, 80, 92], "captur": [3, 11, 53, 74], "reason": [3, 6, 11, 43, 53, 56, 74, 79, 87, 106, 121, 122, 123, 124, 130, 131, 132, 134, 137, 138, 140, 142, 147], "step": [3, 13, 14, 16, 17, 18, 20, 21, 22, 23, 27, 41, 53, 73, 74, 88, 110, 130, 131, 133, 134, 136], "perform": [3, 6, 8, 53, 56, 58, 60, 74, 76, 87, 99, 105, 120, 130, 131, 132, 133, 136, 144, 148], "sat": [3, 7, 8, 10, 11, 22, 40, 42, 43, 52, 53, 58, 59, 60, 70, 72, 74, 76, 77, 79, 93, 95, 99, 102, 105, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 120, 121, 122, 123, 124, 127, 132, 133, 134, 136, 138, 139, 142, 143, 144, 145, 146, 147, 150], "preprocessor": [3, 53, 74], "infer": [3, 11, 14, 31, 43, 53, 63, 74, 131, 140], "rule": [3, 7, 18, 21, 36, 41, 52, 53, 67, 70, 73, 74, 125, 131, 132, 133, 134, 136], "deriv": [3, 11, 43, 53, 57, 74, 79], "proof": [3, 7, 11, 21, 43, 50, 52, 53, 59, 70, 74, 75, 79, 102, 115, 129, 138, 140], "pertain": [3, 25, 46, 53, 74, 83], "rewrit": [3, 7, 21, 41, 43, 52, 53, 70, 73, 74, 79, 131, 132, 134, 136, 139], "These": [3, 4, 7, 46, 52, 53, 54, 74, 83, 89, 92, 94, 131, 140, 144], "identifi": [3, 11, 14, 24, 27, 31, 43, 45, 48, 49, 53, 63, 74, 79, 85, 92, 129, 131], "cvc5_proof_rule_theory_rewrit": [3, 21], "cvc5_proof_rule_dsl_rewrit": [3, 21], "analog": [3, 53, 74, 140], "node": [3, 48, 53, 74, 79, 92, 93, 131, 135, 143, 145], "present": [3, 53, 92, 147], "texttt": [3, 53, 74], "rulenam": [3, 53], "inferrulesc": [3, 53, 74], "varphi_1": [3, 53], "varphi_n": [3, 53], "mid": [3, 53, 74], "t_m": [3, 53], "psi": [3, 53], "varphi_i": [3, 53], "premis": [3, 21, 41, 53, 73, 74, 132, 133, 134], "children": [3, 5, 27, 38, 43, 48, 49, 53, 55, 71, 74, 79, 81, 85, 86, 92, 93, 98, 109, 131, 140, 143], "t_i": [3, 53, 74], "side": [3, 53, 74, 131, 136], "write": [3, 11, 29, 53, 57, 74, 105, 130, 131], "f1": [3, 7, 52, 53, 70, 145], "fn": [3, 43, 53, 145], "arg": [3, 8, 20, 28, 43, 49, 53, 58, 60, 74, 76, 79, 86, 89, 90, 91, 92, 93, 94, 99, 100, 101, 102, 103, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 131, 132, 133, 134, 142, 147, 150], "t1": [3, 53, 132, 133, 134, 136, 140, 143, 145], "omit": [3, 53, 74, 131], "sinc": [3, 53, 74, 110, 114, 145], "note": [3, 7, 8, 23, 43, 44, 49, 52, 53, 70, 74, 79, 80, 85, 89, 92, 95, 96, 106, 109, 110, 119, 120, 130, 131, 134, 136, 137, 138, 140, 143, 144, 148], "sometim": [3, 53], "instead": [3, 8, 14, 31, 43, 48, 49, 53, 58, 60, 63, 74, 76, 79, 86, 88, 99, 105, 106, 120, 131, 136, 147], "abus": [3, 53], "notat": [3, 53, 89, 92, 105], "interchang": [3, 53], "conceptu": [3, 7, 52, 53], "calculu": [3, 7, 52, 53, 70, 74, 131, 135, 136, 137], "target": [3, 7, 11, 43, 52, 53, 70, 79], "mean": [3, 53, 74, 131, 134, 136, 139, 140], "below": [3, 14, 31, 37, 53, 63, 69, 74, 89, 91, 94, 118, 130, 131, 134, 139, 142, 143, 144, 146, 147, 148], "design": [3, 53, 134], "about": [3, 9, 11, 28, 39, 43, 53, 74, 79, 93, 106, 121, 122, 123, 124, 131, 132, 140, 141, 142, 147], "among": [3, 53, 135], "thing": [3, 53, 135], "common": [3, 53, 131, 150], "substitut": [3, 7, 11, 23, 27, 43, 44, 48, 52, 53, 70, 74, 79, 80, 85, 102, 131, 132, 140], "intend": [3, 11, 14, 24, 31, 43, 45, 53, 63, 79, 129, 132], "translat": [3, 7, 52, 53, 70, 107, 108, 109, 110, 113, 117, 121, 122, 123, 124, 125, 126, 131, 147], "print": [3, 7, 8, 11, 29, 39, 43, 45, 46, 49, 52, 53, 57, 58, 60, 74, 76, 79, 83, 89, 90, 91, 92, 94, 95, 99, 100, 102, 103, 105, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 130, 132, 134, 136, 139, 141, 142, 147, 150], "format": [3, 4, 7, 11, 43, 49, 52, 53, 54, 70, 74, 78, 79, 86, 102, 105, 106, 107, 108, 109, 110, 121, 122, 123, 131, 142, 143, 147], "proofrul": [3, 41, 50, 59, 75, 137], "core": [3, 7, 8, 11, 43, 52, 53, 58, 59, 60, 70, 74, 76, 79, 97, 99, 102, 105, 120, 130, 131, 139, 141], "those": [3, 8, 11, 41, 43, 53, 58, 60, 73, 74, 76, 79, 93, 99, 105, 110, 120, 131], "categor": [3, 53], "statu": [3, 8, 53, 58, 60, 74, 76, 131, 144, 145, 146], "open": [3, 53, 74, 129, 130], "leaf": [3, 53, 74, 93], "scope": [3, 53, 74, 102, 131], "enclos": [3, 53, 150], "subproof": [3, 53, 131, 135], "assumpt": [3, 7, 11, 43, 52, 53, 70, 74, 79, 102, 106, 107, 109, 113, 116, 117, 122, 123, 124, 127, 131], "addition": [3, 11, 23, 27, 39, 43, 44, 48, 53, 79, 80, 130, 131, 148, 149], "done": [3, 14, 31, 37, 53, 63, 68, 74, 130, 131, 139], "macro_": [3, 53], "conveni": [3, 39, 53], "definit": [3, 11, 18, 36, 43, 53, 67, 74, 79, 131, 134, 140], "post": [3, 11, 43, 53, 79, 126, 131], "process": [3, 53, 74, 131, 132, 138, 139, 140], "cvc5_proof_rule_assum": 3, "inferrul": [3, 53, 74], "yet": [3, 15, 32, 43, 49, 53, 64, 74, 79, 86, 88, 107, 134, 136, 149], "justifi": [3, 53, 74], "sai": [3, 53, 74, 102, 140, 147], "cvc5_proof_rule_scop": 3, "f_1": [3, 53, 74], "f_n": [3, 53, 74], "land": [3, 53, 74], "neq": [3, 53, 74], "bot": [3, 53, 74], "textrm": [3, 53, 74], "dual": [3, 53, 74], "purpos": [3, 53, 74, 102, 140], "close": [3, 11, 53, 74, 131, 134], "word": [3, 53, 74, 91, 94, 95, 131, 147, 148], "thei": [3, 7, 8, 27, 39, 43, 48, 52, 53, 58, 60, 74, 76, 79, 99, 105, 120, 130, 131, 132, 139, 144], "conclud": [3, 53, 74], "cvc5_proof_rule_sub": 3, "builtin": [3, 53, 74, 89, 141], "id": [3, 27, 48, 49, 53, 62, 63, 74, 79, 85, 86, 140, 143], "circ": [3, 53, 74], "sigma_": [3, 53, 74], "cdot": [3, 53, 74, 85], "f_i": [3, 53, 74], "methodid": [3, 53, 74], "default": [3, 9, 10, 11, 24, 39, 40, 43, 44, 45, 48, 52, 53, 57, 70, 72, 74, 79, 80, 82, 85, 86, 90, 95, 101, 102, 130, 131, 135, 141, 144], "mapsto": [3, 53, 74, 131], "cvc5_proof_rule_macro_rewrit": 3, "idr": [3, 53, 74], "cvc5_proof_rule_evalu": 3, "evalutor": [3, 53, 74], "rw_evalu": [3, 53, 74], "cvc5_proof_rule_aci_norm": 3, "commut": [3, 53, 74, 115], "idempot": [3, 53, 74], "expr": [3, 53, 74, 131], "isacnorm": [3, 53, 74], "top": [3, 7, 8, 11, 43, 52, 53, 58, 60, 70, 74, 75, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 131, 132, 142, 143, 147, 150], "nary_term_util": [3, 53, 74], "str": [3, 8, 53, 57, 58, 60, 74, 76, 79, 86, 92, 95, 96, 99, 102, 105, 120, 124, 125, 126, 140, 148], "re": [3, 43, 48, 49, 53, 74, 79, 86, 103, 124, 130, 131, 140], "cvc5_proof_rule_macro_sr_eq_intro": 3, "rewritten": [3, 53, 74, 140], "proven": [3, 53, 74, 131], "ida": [3, 53, 74], "view": [3, 53, 74], "transform": [3, 53, 74], "standard": [3, 4, 18, 23, 27, 36, 44, 48, 53, 54, 67, 74, 80, 82, 95, 105, 118, 125, 126, 130, 131, 132, 134, 138, 143, 145, 148], "proof_check": [3, 53, 74], "cvc5_proof_rule_macro_sr_pred_intro": 3, "toorigin": [3, 53, 74], "hand": [3, 53, 74, 130], "fresh": [3, 11, 43, 49, 53, 74, 79, 89, 92, 105, 131], "purif": [3, 53, 74, 140], "furthermor": [3, 53, 74, 105, 140, 149], "escap": [3, 43, 49, 53, 74, 79, 86], "cvc5_proof_rule_macro_sr_pred_elim": 3, "macro_sr_eq_intro": [3, 53, 74, 102], "cvc5_proof_rule_macro_sr_pred_transform": 3, "equat": [3, 53, 74, 131, 144], "manner": [3, 13, 14, 16, 17, 18, 20, 21, 22, 23, 27, 39, 53, 74, 131], "macro_sr_pred_intro": [3, 53, 74], "cvc5_proof_rule_encode_eq_intro": 3, "extern": [3, 53, 74, 131, 132, 137, 139], "specif": [3, 6, 8, 9, 11, 15, 16, 27, 28, 32, 33, 39, 43, 53, 56, 58, 59, 60, 64, 65, 74, 76, 87, 93, 99, 105, 110, 120, 141], "rewritedbnodeconvert": [3, 53, 74], "postconvert": [3, 53, 74], "drop": [3, 53, 74], "treat": [3, 11, 43, 48, 53, 74, 79, 85, 134, 140], "refl": [3, 53, 74, 133, 134, 136], "appropri": [3, 35, 45, 53, 74, 92, 131], "dsl": [3, 53, 74, 131, 134], "t_n": [3, 53, 74], "proofrewriterul": [3, 41, 50, 75, 137], "rare": [3, 53, 74, 131], "g_1": [3, 53, 74], "g_n": [3, 53, 74], "sigma": [3, 53, 74], "g_i": [3, 53, 74], "account": [3, 53, 74], "possibl": [3, 7, 8, 9, 39, 45, 52, 53, 58, 60, 70, 74, 76, 99, 105, 120, 130, 131, 139, 147], "ldot": [3, 53, 74, 145], "x_i": [3, 11, 43, 53, 74, 79], "narysubstitut": [3, 53, 74], "place": [3, 53, 74, 89, 139], "contrast": [3, 7, 11, 27, 43, 48, 52, 53, 70, 74, 79, 139, 140], "dsl_rewrit": [3, 41, 53, 73, 74], "necessarili": [3, 7, 52, 53, 70, 74], "document": [3, 11, 43, 53, 74, 131], "cvc5_proof_rule_ite_eq": 3, "ite": [3, 53, 74, 107, 125, 126, 131, 132, 133, 134, 136, 142, 148], "t_2": [3, 53, 74], "cvc5_proof_rule_trust": 3, "trust": [3, 53, 74, 131, 134, 136], "tid": [3, 53, 74], "formal": [3, 8, 53, 58, 60, 74, 76, 99, 105, 120, 134, 138, 140], "justif": [3, 53, 74, 131, 134, 136], "cannot": [3, 9, 11, 14, 15, 19, 24, 25, 26, 27, 28, 31, 43, 48, 49, 53, 63, 74, 79, 86, 92, 106, 109], "entail": [3, 11, 43, 53, 74, 79, 107, 109, 113, 116, 117, 131], "cvc5_proof_rule_trust_theory_rewrit": 3, "rid": [3, 53, 74], "rw_rewrite_theory_pr": [3, 53, 74], "rw_rewrite_theory_post": [3, 53, 74], "rw_rewrite_eq_ext": [3, 53, 74], "checker": [3, 53, 74, 133, 134, 136], "replai": [3, 53, 74, 131], "correct": [3, 7, 52, 53, 70, 74, 131, 134], "static": [3, 8, 53, 58, 60, 74, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 131, 142, 147, 150], "involv": [3, 11, 53, 74, 132], "new": [3, 8, 11, 43, 45, 53, 58, 60, 74, 76, 79, 88, 92, 93, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 131, 138, 142, 147, 150], "guarante": [3, 11, 43, 53, 74, 79, 141], "consist": [3, 53, 74, 102, 110, 117, 150], "cvc5_proof_rule_sat_refut": 3, "refut": [3, 53, 74, 131, 134], "unsat": [3, 7, 8, 11, 21, 22, 41, 42, 43, 52, 53, 58, 59, 60, 70, 73, 74, 76, 77, 79, 93, 95, 99, 102, 105, 106, 107, 109, 112, 113, 114, 115, 117, 118, 120, 131, 133, 134, 136, 141, 142, 144, 145, 146, 147, 150], "cvc5_proof_rule_drat_refut": 3, "drat": [3, 53, 74, 131], "d": [3, 23, 44, 53, 59, 74, 80, 93, 103, 115, 131, 133, 134, 136, 138, 140, 142], "claus": [3, 7, 10, 40, 52, 53, 70, 72, 74, 131], "dimac": [3, 53, 74, 131], "file": [3, 8, 11, 25, 37, 43, 46, 49, 53, 57, 58, 59, 60, 68, 74, 76, 83, 97, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 131, 134, 135, 136, 141, 142, 143, 147, 150], "filenam": [3, 11, 37, 53, 57, 68, 74, 131, 141], "cvc5_proof_rule_sat_external_prov": 3, "prove": [3, 53, 74, 89, 90, 102, 107, 108, 109, 110, 113, 117, 123, 131, 134, 136], "input": [3, 7, 11, 12, 18, 19, 25, 29, 35, 36, 37, 39, 43, 46, 52, 53, 61, 67, 68, 70, 74, 79, 83, 104, 105, 111, 118, 119, 125, 126, 130, 131, 132, 134, 141, 143, 145, 147], "cvc5_proof_rule_resolut": 3, "resolut": [3, 53, 74, 131, 133, 136], "c_2": [3, 53, 74], "pol": [3, 53, 74], "OR": [3, 51, 53, 69, 74, 107, 115, 125], "could": [3, 47, 53, 74, 84, 102], "polar": [3, 53, 74], "pivot": [3, 53, 74, 131, 132], "resp": [3, 19, 37, 53, 68, 74], "NOT": [3, 10, 51, 53, 69, 74, 108, 115, 121, 125, 141, 147], "collect": [3, 53, 74, 131, 141], "minu": [3, 8, 53, 58, 60, 74, 76, 99, 105, 120, 125, 147], "accord": [3, 18, 36, 53, 67, 74], "polici": [3, 53, 74, 131], "itself": [3, 15, 16, 32, 33, 35, 53, 64, 65, 74, 93, 110, 139, 143], "unsound": [3, 7, 52, 53, 70, 74], "rather": [3, 8, 53, 58, 60, 74, 76, 99, 105, 120, 131, 140], "weaken": [3, 53, 74, 131], "did": [3, 8, 53, 58, 60, 74, 76, 99, 105, 120, 131], "cvc5_proof_rule_chain_resolut": 3, "ari": [3, 11, 43, 49, 53, 74, 79, 144], "pol_1": [3, 53, 74], "pol_": [3, 53, 74], "l_1": [3, 53, 74], "l_": [3, 53, 74], "diamond_": [3, 53, 74], "c_i": [3, 53, 74], "c_": [3, 27, 48, 53, 74, 85], "chain": [3, 53, 74, 106, 109, 131], "cvc5_proof_rule_factor": 3, "factor": [3, 53, 74, 131], "cvc5_proof_rule_reord": 3, "reorder": [3, 53, 74, 133, 134, 136], "multiset": [3, 53, 74, 142], "cvc5_proof_rule_macro_resolut": 3, "mathit": [3, 53, 74], "cvc5_proof_rule_macro_resolution_trust": 3, "uncheck": [3, 53, 74], "macro_resolut": [3, 53, 74], "cvc5_proof_rule_split": 3, "split": [3, 53, 74, 106, 131, 138, 144], "lor": [3, 53, 74], "cvc5_proof_rule_eq_resolv": 3, "f_2": [3, 53, 74], "seen": [3, 14, 31, 53, 63, 74, 140, 143], "macro": [3, 53, 74, 110, 131], "equiv_elim1": [3, 53, 74, 134, 136], "cvc5_proof_rule_modus_ponen": 3, "modu": [3, 53, 74], "ponen": [3, 53, 74], "implies_elim": [3, 53, 74], "cvc5_proof_rule_not_not_elim": 3, "doubl": [3, 9, 24, 39, 45, 53, 74, 95, 131, 141], "cvc5_proof_rule_contra": 3, "contradict": [3, 53, 74], "cvc5_proof_rule_and_elim": 3, "And": [3, 53, 74, 92, 98, 102, 108, 109, 115, 117, 122, 124, 125], "cvc5_proof_rule_and_intro": 3, "cvc5_proof_rule_not_or_elim": 3, "Or": [3, 53, 74, 92, 102, 107, 115], "cvc5_proof_rule_implies_elim": 3, "cvc5_proof_rule_not_implies_elim1": 3, "cvc5_proof_rule_not_implies_elim2": 3, "cvc5_proof_rule_equiv_elim1": 3, "cvc5_proof_rule_equiv_elim2": 3, "cvc5_proof_rule_not_equiv_elim1": 3, "cvc5_proof_rule_not_equiv_elim2": 3, "cvc5_proof_rule_xor_elim1": 3, "cvc5_proof_rule_xor_elim2": 3, "cvc5_proof_rule_not_xor_elim1": 3, "cvc5_proof_rule_not_xor_elim2": 3, "cvc5_proof_rule_ite_elim1": 3, "cvc5_proof_rule_ite_elim2": 3, "cvc5_proof_rule_not_ite_elim1": 3, "cvc5_proof_rule_not_ite_elim2": 3, "cvc5_proof_rule_not_and": 3, "de": [3, 53, 74, 131, 138], "morgan": [3, 53, 74, 107, 108, 109, 110, 116, 117], "cvc5_proof_rule_cnf_and_po": 3, "cnf": [3, 53, 74, 131], "cvc5_proof_rule_cnf_and_neg": 3, "cvc5_proof_rule_cnf_or_po": 3, "cvc5_proof_rule_cnf_or_neg": 3, "cvc5_proof_rule_cnf_implies_po": 3, "impli": [3, 11, 43, 51, 53, 69, 74, 79, 90, 92, 107, 108, 109, 113, 115, 131], "cvc5_proof_rule_cnf_implies_neg1": 3, "cvc5_proof_rule_cnf_implies_neg2": 3, "cvc5_proof_rule_cnf_equiv_pos1": 3, "cvc5_proof_rule_cnf_equiv_pos2": 3, "cvc5_proof_rule_cnf_equiv_neg1": 3, "cvc5_proof_rule_cnf_equiv_neg2": 3, "cvc5_proof_rule_cnf_xor_pos1": 3, "cvc5_proof_rule_cnf_xor_pos2": 3, "cvc5_proof_rule_cnf_xor_neg1": 3, "cvc5_proof_rule_cnf_xor_neg2": 3, "cvc5_proof_rule_cnf_ite_pos1": 3, "cvc5_proof_rule_cnf_ite_pos2": 3, "cvc5_proof_rule_cnf_ite_pos3": 3, "cvc5_proof_rule_cnf_ite_neg1": 3, "cvc5_proof_rule_cnf_ite_neg2": 3, "cvc5_proof_rule_cnf_ite_neg3": 3, "cvc5_proof_rule_refl": 3, "reflex": [3, 53, 74], "cvc5_proof_rule_symm": 3, "symmetri": [3, 53, 74, 131, 132], "cvc5_proof_rule_tran": 3, "t_": [3, 53, 74], "cvc5_proof_rule_cong": 3, "congruenc": [3, 53, 74, 131], "s_n": [3, 53, 74], "apply_uf": [3, 48, 51, 53, 69, 74, 92, 109, 125, 127, 141], "actual": [3, 8, 22, 24, 42, 45, 47, 53, 57, 58, 60, 74, 76, 77, 93, 99, 102, 105, 110, 139], "proofrulecheck": [3, 53, 74], "mkkindnod": [3, 53, 74], "both": [3, 18, 19, 20, 21, 23, 27, 36, 37, 38, 41, 45, 53, 68, 74, 88, 130, 131, 133, 146, 150], "so": [3, 7, 8, 11, 13, 14, 30, 31, 33, 43, 52, 53, 59, 62, 63, 65, 70, 74, 79, 94, 99, 105, 108, 110, 114, 115, 120, 123, 125, 130, 131, 140, 144], "between": [3, 7, 11, 28, 43, 49, 52, 53, 70, 74, 79, 86, 103, 115, 131, 140], "ho_appli": [3, 51, 53, 69, 74], "ho_cong": [3, 53, 74], "cvc5_proof_rule_nary_cong": 3, "variad": [3, 53, 74, 145], "plu": [3, 8, 11, 43, 53, 58, 60, 74, 76, 79, 99, 102, 103, 105, 120, 125, 131], "cvc5_proof_rule_true_intro": 3, "intro": [3, 53, 74, 131], "cvc5_proof_rule_true_elim": 3, "elim": [3, 53, 74, 131], "cvc5_proof_rule_false_intro": 3, "cvc5_proof_rule_false_elim": 3, "cvc5_proof_rule_ho_app_encod": 3, "uf": [3, 53, 74, 123, 127, 131, 140, 147], "theoryufrewrit": [3, 53, 74], "gethoapplyforapplyuf": [3, 53, 74], "theory_uf_rewrit": [3, 53, 74], "cvc5_proof_rule_ho_cong": 3, "cvc5_proof_rule_arrays_read_over_writ": 3, "read": [3, 11, 37, 53, 68, 74, 131], "cvc5_proof_rule_arrays_read_over_write_contra": 3, "contraposit": [3, 53, 74], "cvc5_proof_rule_arrays_read_over_write_1": 3, "cvc5_proof_rule_arrays_ext": 3, "extension": [3, 53, 74, 131], "array_deq_diff": [3, 27, 48, 53, 74, 85, 140], "cvc5_proof_rule_macro_bv_bitblast": 3, "bitblast": [3, 53, 74, 131, 132], "blast": [3, 53, 74, 130, 131], "output": [3, 7, 9, 11, 12, 15, 19, 21, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 39, 42, 43, 44, 47, 48, 51, 52, 53, 54, 55, 56, 57, 70, 74, 79, 99, 105, 108, 109, 118, 121, 122, 123, 124, 125, 126, 129, 130, 131, 133, 134, 135, 136, 137, 139, 147], "circuit": [3, 53, 74], "strategi": [3, 53, 74, 131], "bv": [3, 11, 43, 53, 74, 85, 91, 131, 132, 140], "bitblast_strategies_templ": [3, 53, 74], "cvc5_proof_rule_bv_bitblast_step": 3, "cvc5_proof_rule_bv_eager_atom": 3, "eager": [3, 53, 74, 130, 131], "atom": [3, 53, 74], "bitvector_eager_atom": [3, 53, 74], "cvc5_proof_rule_dt_split": 3, "vee": [3, 53, 74], "cvc5_proof_rule_dt_clash": 3, "clash": [3, 53, 74], "c_j": [3, 53, 74], "cvc5_proof_rule_skolem_intro": 3, "unpurifi": [3, 53, 74], "cvc5_proof_rule_skolem": 3, "k_1": [3, 53, 74], "k_n": [3, 53, 74], "k_i": [3, 53, 74], "quantifiers_skolem": [3, 53, 74, 140], "cvc5_proof_rule_instanti": 3, "caus": [3, 11, 43, 53, 74, 79], "trigger": [3, 53, 74, 131], "depend": [3, 9, 11, 43, 53, 74, 131], "quantifiers_inst_e_match": [3, 53, 74], "cvc5_proof_rule_alpha_equiv": 3, "alpha": [3, 53, 74, 131], "y_1": [3, 11, 43, 53, 74, 79], "y_n": [3, 11, 43, 53, 74, 79], "z_1": [3, 53, 74], "z_n": [3, 53, 74], "fv": [3, 53, 74, 131], "setminu": [3, 53, 74, 101, 142], "varphi": [3, 53, 74, 145], "cvc5_proof_rule_quant_var_reord": 3, "cvc5_proof_rule_sets_singleton_inj": 3, "inject": [3, 53, 74, 140], "cvc5_proof_rule_sets_ext": 3, "sets_deq_diff": [3, 53, 74, 140], "cvc5_proof_rule_sets_filter_up": 3, "cvc5_proof_rule_sets_filter_down": 3, "down": [3, 53, 74, 130], "cvc5_proof_rule_concat_eq": 3, "stand": [3, 53, 74], "direct": [3, 5, 53, 55, 74, 81, 107, 108, 109, 110, 113, 117, 121, 122, 123, 124, 125, 126, 131, 147], "implicit": [3, 53, 74], "epsilon": [3, 53, 74], "mathsf": [3, 53, 74], "abc": [3, 53, 74, 103, 123, 124, 148], "bc": [3, 53, 74, 103], "splitconst": [3, 53, 74], "cvc5_proof_rule_concat_unifi": 3, "unif": [3, 53, 74, 131], "len": [3, 8, 53, 58, 60, 74, 76, 99, 102, 105, 120, 122, 124, 125, 126, 131, 140, 146], "cvc5_proof_rule_concat_conflict": 3, "conflict": [3, 53, 74, 131], "neither": [3, 9, 53, 74], "cvc5_proof_rule_concat_conflict_deq": 3, "cvc5_proof_rule_concat_split": 3, "suf": [3, 53, 74, 146], "pre": [3, 11, 23, 27, 43, 44, 48, 53, 74, 79, 80, 85, 126, 131, 146], "shorthand": [3, 53, 74, 90, 101], "cvc5_proof_rule_concat_csplit": 3, "cvc5_proof_rule_concat_lprop": 3, "propag": [3, 7, 52, 53, 70, 74, 97, 131, 132], "cvc5_proof_rule_concat_cprop": 3, "w_1": [3, 53, 74], "w_2": [3, 53, 74], "t_3": [3, 53, 74], "overlap": [3, 53, 74], "w_3": [3, 53, 74], "largest": [3, 53, 74], "therefor": [3, 53, 74, 139, 141], "roverlap": [3, 53, 74], "cvc5_proof_rule_string_decompos": 3, "decomposit": [3, 53, 74, 144], "geq": [3, 51, 53, 69, 74, 89, 95, 117, 121, 124, 125, 142], "cvc5_proof_rule_string_length_po": 3, "cvc5_proof_rule_string_length_non_empti": 3, "cvc5_proof_rule_string_reduct": 3, "reduct": [3, 53, 74, 91, 131], "w": [3, 27, 48, 53, 74, 85, 138, 148], "stringspreprocess": [3, 53, 74], "reduc": [3, 43, 49, 53, 74, 131], "theory_strings_preprocess": [3, 53, 74], "cvc5_proof_rule_string_eager_reduct": 3, "termregistri": [3, 53, 74], "eagerreduc": [3, 53, 74], "term_registri": [3, 53, 74], "cvc5_proof_rule_re_int": 3, "r_1": [3, 53, 74], "r_2": [3, 53, 74], "inter": [3, 53, 74, 121, 123, 131, 147], "cvc5_proof_rule_re_unfold_po": 3, "unfold": [3, 53, 74, 131, 135, 140], "regexpopr": [3, 53, 74], "reduceregexppo": [3, 53, 74], "cvc5_proof_rule_re_unfold_neg": 3, "text": [3, 11, 43, 53, 74, 131, 145], "r_n": [3, 53, 74], "varaibl": [3, 53, 74], "name": [3, 8, 9, 10, 11, 12, 13, 14, 16, 17, 23, 24, 25, 27, 29, 30, 31, 32, 33, 34, 37, 39, 40, 43, 44, 45, 46, 48, 49, 53, 57, 58, 60, 61, 62, 63, 64, 65, 66, 68, 72, 74, 76, 79, 82, 83, 86, 89, 90, 91, 92, 93, 94, 95, 98, 99, 101, 102, 103, 105, 110, 120, 123, 130, 131, 133, 141, 143], "var": [3, 11, 43, 53, 74, 79, 102, 116, 121, 125, 131, 136], "str_index": [3, 53, 74], "cvc5_proof_rule_re_unfold_neg_concat_fix": 3, "r_": [3, 53, 74], "cvc5_proof_rule_string_code_inj": 3, "_code": [3, 53, 74], "cvc5_proof_rule_string_seq_unit_inj": 3, "cvc5_proof_rule_string_ext": 3, "strings_deq_diff": [3, 53, 74, 140], "similarli": [3, 11, 13, 14, 30, 31, 43, 53, 62, 63, 74, 79], "cvc5_proof_rule_macro_string_infer": 3, "isrev": [3, 53, 74], "bookkeep": [3, 53, 74, 140], "been": [3, 8, 11, 14, 16, 23, 31, 33, 35, 43, 44, 45, 46, 53, 58, 60, 63, 74, 76, 79, 80, 83, 99, 105, 107, 110, 116, 120, 132, 134, 139], "inferproofcon": [3, 53, 74], "cvc5_proof_rule_macro_arith_scale_sum_ub": 3, "inequ": [3, 53, 74, 131], "diamond": [3, 53, 74], "polynomi": [3, 27, 48, 53, 74, 85, 131], "l_n": [3, 53, 74], "mathbb": [3, 53, 74, 142], "fusion": [3, 53, 74], "diamond_i": [3, 53, 74], "flip": [3, 53, 74], "scale": [3, 53, 74], "colon": [3, 53, 74], "p_1": [3, 53, 74, 133], "p_n": [3, 53, 74], "cvc5_proof_rule_arith_mult_abs_comparison": 3, "s_i": [3, 53, 74], "former": [3, 27, 48, 53, 74], "cvc5_proof_rule_arith_sum_ub": 3, "p_i": [3, 53, 74], "l_i": [3, 53, 74], "r_i": [3, 53, 74], "cvc5_proof_rule_int_tight_ub": 3, "tighten": [3, 53, 74], "strict": [3, 53, 74, 131], "lfloor": [3, 53, 74], "rfloor": [3, 53, 74], "cvc5_proof_rule_int_tight_lb": 3, "lceil": [3, 53, 74], "rceil": [3, 53, 74], "cvc5_proof_rule_arith_trichotomi": 3, "trichotomi": [3, 53, 74], "etc": [3, 25, 45, 46, 53, 74, 83, 102, 110, 139, 140], "cvc5_proof_rule_arith_reduct": 3, "sqrt": [3, 51, 53, 69, 74, 89, 140, 150], "is_int": [3, 53, 74, 89, 92], "to_int": [3, 53, 74, 140], "arith": [3, 53, 74, 131, 132, 141], "operatorelim": [3, 53, 74], "getaxiomfor": [3, 53, 74], "operator_elim": [3, 53, 74], "cvc5_proof_rule_arith_poly_norm": 3, "polynorm": [3, 53, 74], "isarithpolynorm": [3, 53, 74], "bitvector": [3, 53, 74, 107, 140], "cvc5_proof_rule_arith_poly_norm_rel": 3, "c_x": [3, 53, 74], "x_2": [3, 53, 74], "c_y": [3, 53, 74], "y_2": [3, 53, 74], "wrap": [3, 11, 28, 43, 49, 53, 74, 79, 86, 102, 130], "to_real": [3, 51, 53, 69, 74, 89, 115, 140], "cvc5_proof_rule_arith_mult_sign": 3, "f_k": [3, 53, 74], "m": [3, 8, 53, 58, 60, 74, 76, 95, 99, 102, 105, 109, 110, 120, 122, 124, 130, 131, 140, 141, 142], "compar": [3, 13, 14, 16, 17, 18, 20, 21, 22, 23, 27, 30, 31, 32, 33, 34, 36, 38, 41, 42, 44, 47, 48, 53, 74, 88], "monomi": [3, 53, 74, 131], "even": [3, 4, 8, 20, 38, 43, 49, 53, 54, 58, 60, 71, 74, 76, 78, 95, 99, 105, 110, 120, 131, 147], "odd": [3, 53, 74, 107], "cvc5_proof_rule_arith_mult_po": 3, "cvc5_proof_rule_arith_mult_neg": 3, "inv": [3, 11, 18, 36, 43, 53, 67, 74, 79, 114, 126, 131], "invert": [3, 53, 74, 131], "cvc5_proof_rule_arith_mult_tang": 3, "plane": [3, 53, 74, 131, 150], "tplane": [3, 53, 74, 131], "cvc5_proof_rule_arith_trans_pi": 3, "transcendent": [3, 53, 74, 97, 131, 138, 140, 149], "u": [3, 53, 74, 91, 94, 109, 127, 131, 143, 145], "cvc5_proof_rule_arith_trans_exp_neg": 3, "cvc5_proof_rule_arith_trans_exp_posit": 3, "cvc5_proof_rule_arith_trans_exp_super_lin": 3, "grow": [3, 53, 74, 139], "super": [3, 53, 74], "linearli": [3, 53, 74, 139], "cvc5_proof_rule_arith_trans_exp_zero": 3, "cvc5_proof_rule_arith_trans_exp_approx_above_neg": 3, "approxim": [3, 53, 74, 131, 150], "th": [3, 14, 31, 53, 74, 138, 140, 146, 148], "taylor": [3, 53, 74, 131], "maclaurin": [3, 53, 74], "seri": [3, 53, 74], "calcul": [3, 53, 74, 131], "frac": [3, 53, 74], "lemma": [3, 7, 10, 11, 40, 43, 52, 53, 70, 72, 74, 79, 131, 139, 140, 141], "state": [3, 10, 11, 43, 49, 53, 57, 74, 79, 86, 139], "cvc5_proof_rule_arith_trans_exp_approx_above_po": 3, "po": [3, 53, 74], "modif": [3, 53, 74, 131], "degre": [3, 53, 74, 131], "cvc5_proof_rule_arith_trans_exp_approx_below": 3, "sum_": [3, 53, 74, 109], "infti": [3, 53, 74], "cvc5_proof_rule_arith_trans_sine_bound": 3, "sin": [3, 53, 74, 140, 150], "cvc5_proof_rule_arith_trans_sine_shift": 3, "phase": [3, 53, 74, 93, 130, 131, 140], "particular": [3, 7, 11, 24, 43, 45, 52, 53, 70, 74, 131, 140, 141, 143, 147], "transcendental_purify_arg": [3, 53, 74, 140], "transcendental_sine_phase_shift": [3, 53, 74, 140], "cvc5_proof_rule_arith_trans_sine_symmetri": 3, "symmetr": [3, 53, 74], "cvc5_proof_rule_arith_trans_sine_tangent_zero": 3, "cvc5_proof_rule_arith_trans_sine_tangent_pi": 3, "cvc5_proof_rule_arith_trans_sine_approx_above_neg": 3, "lb": [3, 53, 74], "ub": [3, 53, 74], "possibli": [3, 4, 53, 54, 74, 78, 93, 131], "cvc5_proof_rule_arith_trans_sine_approx_above_po": 3, "cvc5_proof_rule_arith_trans_sine_approx_below_neg": 3, "cvc5_proof_rule_arith_trans_sine_approx_below_po": 3, "cvc5_proof_rule_lfsc_rul": 3, "lfsc": [3, 7, 52, 53, 70, 74, 131, 137], "holder": [3, 53, 74], "a_1": [3, 53, 74], "a_m": [3, 53, 74], "expect": [3, 8, 19, 37, 39, 53, 58, 59, 60, 68, 74, 76, 89, 92, 93, 99, 105, 107, 108, 110, 113, 115, 118, 120, 130, 140, 145], "cvc5_proof_rule_alethe_rul": 3, "aleth": [3, 7, 43, 52, 53, 70, 74, 79, 131, 134, 137], "printer": [3, 53, 74, 131, 132], "cvc5_proof_rule_unknown": 3, "cvc5_proof_rule_last": 3, "cvc5_proof_rule_to_str": 3, "cvc5_proof_rule_hash": 3, "hoc": [3, 53, 74], "theory_rewrit": [3, 41, 53, 73, 74], "cvc5_proof_rewrite_rule_non": 3, "cvc5_proof_rewrite_rule_distinct_elim": 3, "t2": [3, 53, 74, 110, 133, 134, 136, 140, 145], "tn": [3, 53, 74, 140], "bigwedge_": [3, 53, 74], "cvc5_proof_rewrite_rule_distinct_card_conflict": 3, "cvc5_proof_rewrite_rule_bv_to_nat_elim": 3, "bv2nat": [3, 53, 74], "cvc5_proof_rewrite_rule_int_to_bv_elim": 3, "_n": [3, 11, 43, 53, 74, 79], "bvconcat": [3, 53, 74], "mod": [3, 53, 74, 91, 95, 131, 140], "cvc5_proof_rewrite_rule_macro_bool_nnf_norm": 3, "theoryboolrewrit": [3, 53, 74], "computennfnorm": [3, 53, 74], "cvc5_proof_rewrite_rule_macro_arith_string_pred_entail": 3, "elabor": [3, 53, 74, 133], "arith_poly_norm": [3, 53, 74], "arith_string_pred_entail": [3, 53, 74], "arith_string_pred_safe_approx": [3, 53, 74], "well": [3, 9, 13, 30, 39, 45, 53, 62, 74, 131, 133, 141, 149], "cvc5_proof_rewrite_rule_arith_string_pred_entail": 3, "shown": [3, 45, 53, 74, 134], "basic": [3, 39, 53, 74, 97, 116, 131, 136], "cvc5_proof_rewrite_rule_arith_string_pred_safe_approx": 3, "safe": [3, 35, 39, 53, 57, 74, 85, 102, 131, 139], "subterm": [3, 53, 74, 131], "describ": [3, 27, 48, 53, 74, 102, 134, 136, 143, 144, 148, 150], "paper": [3, 53, 74, 131, 144], "reynold": [3, 53, 74, 107, 110, 113, 116, 118, 119, 121, 123, 125, 126, 138, 140, 147], "et": [3, 53, 74, 131, 140], "al": [3, 53, 74, 131, 140], "cav": [3, 53, 74, 138], "2019": [3, 53, 74, 95, 131, 138], "high": [3, 53, 74, 91, 130, 133, 136], "cvc5_proof_rewrite_rule_arith_pow_elim": 3, "cvc5_proof_rewrite_rule_beta_reduc": 3, "beta": [3, 53, 74], "comput": [3, 8, 11, 13, 14, 16, 17, 18, 20, 21, 22, 23, 27, 43, 53, 58, 60, 74, 76, 79, 99, 105, 120, 131, 132, 136, 138, 140], "cvc5_proof_rewrite_rule_lambda_elim": 3, "cvc5_proof_rewrite_rule_arrays_select_const": 3, "cvc5_proof_rewrite_rule_macro_arrays_distinct_arrai": 3, "isconst": [3, 53, 74], "cvc5_proof_rewrite_rule_macro_arrays_normalize_const": 3, "canon": [3, 27, 48, 53, 74, 85], "theoryarraysrewrit": [3, 53, 74], "normalizeconst": [3, 53, 74], "cvc5_proof_rewrite_rule_arrays_eq_range_expand": 3, "expans": [3, 53, 74, 131, 135], "eqrang": [3, 53, 74], "cvc5_proof_rewrite_rule_exists_elim": 3, "cvc5_proof_rewrite_rule_quant_unused_var": 3, "unus": [3, 53, 74, 131], "cvc5_proof_rewrite_rule_macro_quant_merge_prenex": 3, "merg": [3, 53, 74, 131], "prenex": [3, 53, 74, 131], "cvc5_proof_rewrite_rule_quant_merge_prenex": 3, "cvc5_proof_rewrite_rule_macro_quant_prenex": 3, "cvc5_proof_rewrite_rule_macro_quant_miniscop": 3, "miniscop": [3, 53, 74, 131], "g_2": [3, 53, 74], "cvc5_proof_rewrite_rule_quant_miniscope_and": 3, "cvc5_proof_rewrite_rule_quant_miniscope_or": 3, "cvc5_proof_rewrite_rule_quant_miniscope_it": 3, "cvc5_proof_rewrite_rule_quant_dt_split": 3, "cvc5_proof_rewrite_rule_macro_quant_partition_connected_fv": 3, "connect": [3, 53, 74, 131, 145], "f_": [3, 53, 74], "x_m": [3, 53, 74], "k_m": [3, 53, 74], "cvc5_proof_rewrite_rule_macro_quant_var_elim_eq": 3, "cvc5_proof_rewrite_rule_quant_var_elim_eq": 3, "cvc5_proof_rewrite_rule_macro_quant_var_elim_ineq": 3, "cvc5_proof_rewrite_rule_macro_quant_rewrite_bodi": 3, "cvc5_proof_rewrite_rule_dt_inst": 3, "_c": [3, 53, 74], "sel": [3, 17, 34, 53, 74, 131, 143], "_1": [3, 11, 43, 53, 74], "discrimin": [3, 53, 74, 143], "cvc5_proof_rewrite_rule_dt_collapse_selector": 3, "collaps": [3, 53, 74], "cvc5_proof_rewrite_rule_dt_collapse_test": 3, "cvc5_proof_rewrite_rule_dt_collapse_tester_singleton": 3, "cvc5_proof_rewrite_rule_dt_cons_eq": 3, "s_m": [3, 53, 74], "cvc5_proof_rewrite_rule_dt_cycl": 3, "cycl": [3, 53, 74], "path": [3, 53, 59, 74, 130], "cvc5_proof_rewrite_rule_dt_collapse_updat": 3, "u_": [3, 53, 74], "cvc5_proof_rewrite_rule_dt_updater_elim": 3, "s_0": [3, 53, 74], "cvc5_proof_rewrite_rule_dt_match_elim": 3, "cvc5_proof_rewrite_rule_bv_umulo_elimin": 3, "gok": [3, 53, 74], "schult": [3, 53, 74], "balzola": [3, 53, 74], "2001": [3, 53, 74], "ieeexplor": [3, 53], "987767": [3, 53], "cvc5_proof_rewrite_rule_bv_smulo_elimin": 3, "cvc5_proof_rewrite_rule_bv_add_combine_like_term": 3, "dure": [3, 7, 23, 27, 44, 48, 52, 53, 70, 74, 80, 85, 130, 131, 132, 139, 140], "count": [3, 13, 14, 16, 17, 18, 20, 21, 22, 23, 27, 53, 74, 97, 106, 140, 141, 142], "cvc5_proof_rewrite_rule_bv_mult_simplifi": 3, "multiplicand": [3, 53, 74], "bvmul": [3, 53, 74, 108], "bvneg": [3, 53, 74, 91], "cvc5_proof_rewrite_rule_bv_bitwise_sl": 3, "continu": [3, 53, 74, 139, 146], "i_0": [3, 53, 74], "j_0": [3, 53, 74], "c_0": [3, 53, 74], "i_n": [3, 53, 74], "j_n": [3, 53, 74], "c0": [3, 53, 74], "maxim": [3, 53, 74, 131, 146], "cvc5_proof_rewrite_rule_bv_repeat_elim": 3, "cvc5_proof_rewrite_rule_re_loop_elim": 3, "loop_": [3, 53, 74], "cvc5_proof_rewrite_rule_re_inter_union_inclus": 3, "r_0": [3, 53, 74], "comp": [3, 53, 74], "superset": [3, 53, 74], "allchar": [3, 43, 49, 53, 74, 79, 86, 103, 131, 140], "cvc5_proof_rewrite_rule_str_in_re_ev": 3, "_re": [3, 53, 74], "cvc5_proof_rewrite_rule_str_in_re_consum": 3, "consum": [3, 53, 74], "in_r": [3, 53, 74, 124, 140], "strip": [3, 53, 74, 92], "off": [3, 30, 31, 48, 53, 74, 131], "cvc5_proof_rewrite_rule_str_in_re_concat_star_char": 3, "cvc5_proof_rewrite_rule_str_in_re_sigma": 3, "ge": [3, 53, 74], "cvc5_proof_rewrite_rule_str_in_re_sigma_star": 3, "cvc5_proof_rewrite_rule_macro_substr_strip_sym_length": 3, "partial": [3, 11, 43, 53, 74, 79, 131], "cvc5_proof_rewrite_rule_sets_is_empty_ev": 3, "_empti": [3, 53, 74], "cvc5_proof_rewrite_rule_sets_insert_elim": 3, "cvc5_proof_rewrite_rule_arith_mul_on": 3, "auto": [3, 53, 59, 74, 88, 110, 130, 131], "mul": [3, 53, 74, 114, 115, 144], "cvc5_proof_rewrite_rule_arith_mul_zero": 3, "cvc5_proof_rewrite_rule_arith_div_total_r": 3, "div": [3, 53, 74, 89, 140], "cvc5_proof_rewrite_rule_arith_div_total_int": 3, "cvc5_proof_rewrite_rule_arith_div_total_zero_r": 3, "cvc5_proof_rewrite_rule_arith_div_total_zero_int": 3, "cvc5_proof_rewrite_rule_arith_int_div_tot": 3, "cvc5_proof_rewrite_rule_arith_int_div_total_on": 3, "cvc5_proof_rewrite_rule_arith_int_div_total_zero": 3, "cvc5_proof_rewrite_rule_arith_int_mod_tot": 3, "cvc5_proof_rewrite_rule_arith_int_mod_total_on": 3, "cvc5_proof_rewrite_rule_arith_int_mod_total_zero": 3, "cvc5_proof_rewrite_rule_arith_elim_gt": 3, "gt": [3, 51, 53, 69, 74, 89, 95, 110, 122, 131, 150], "cvc5_proof_rewrite_rule_arith_elim_lt": 3, "lt": [3, 8, 51, 53, 58, 60, 69, 74, 76, 89, 95, 99, 105, 115, 117, 120, 126, 150], "cvc5_proof_rewrite_rule_arith_elim_int_gt": 3, "cvc5_proof_rewrite_rule_arith_elim_int_lt": 3, "cvc5_proof_rewrite_rule_arith_elim_leq": 3, "cvc5_proof_rewrite_rule_arith_leq_norm": 3, "norm": [3, 53, 74, 131], "cvc5_proof_rewrite_rule_arith_geq_tighten": 3, "cvc5_proof_rewrite_rule_arith_geq_norm1_int": 3, "norm1": [3, 53, 74], "cvc5_proof_rewrite_rule_arith_geq_norm1_r": 3, "cvc5_proof_rewrite_rule_arith_geq_norm2": 3, "norm2": [3, 53, 74], "cvc5_proof_rewrite_rule_arith_refl_leq": 3, "cvc5_proof_rewrite_rule_arith_refl_lt": 3, "cvc5_proof_rewrite_rule_arith_refl_geq": 3, "cvc5_proof_rewrite_rule_arith_refl_gt": 3, "cvc5_proof_rewrite_rule_arith_eq_elim_r": 3, "eq": [3, 53, 74, 89, 90, 91, 92, 94, 95, 100, 113, 131], "cvc5_proof_rewrite_rule_arith_eq_elim_int": 3, "cvc5_proof_rewrite_rule_arith_plus_flatten": 3, "flatten": [3, 53, 74, 131], "cvc5_proof_rewrite_rule_arith_mult_flatten": 3, "mult": [3, 51, 53, 69, 74, 89, 96, 117, 150], "cvc5_proof_rewrite_rule_arith_mult_dist": 3, "dist": [3, 53, 74], "cvc5_proof_rewrite_rule_arith_abs_elim_int": 3, "ab": [3, 51, 53, 69, 74, 103, 114, 124, 131], "cvc5_proof_rewrite_rule_arith_abs_elim_r": 3, "cvc5_proof_rewrite_rule_arith_to_real_elim": 3, "cvc5_proof_rewrite_rule_arith_to_int_elim_to_r": 3, "cvc5_proof_rewrite_rule_arith_div_elim_to_real1": 3, "real1": [3, 53, 74], "cvc5_proof_rewrite_rule_arith_div_elim_to_real2": 3, "real2": [3, 53, 74], "cvc5_proof_rewrite_rule_arith_sine_zero": 3, "cvc5_proof_rewrite_rule_arith_sine_pi2": 3, "pi2": [3, 53, 74], "cvc5_proof_rewrite_rule_arith_cosine_elim": 3, "cvc5_proof_rewrite_rule_arith_tangent_elim": 3, "cvc5_proof_rewrite_rule_arith_secent_elim": 3, "secent": [3, 53, 74], "cvc5_proof_rewrite_rule_arith_cosecent_elim": 3, "cvc5_proof_rewrite_rule_arith_cotangent_elim": 3, "cvc5_proof_rewrite_rule_arith_pi_not_int": 3, "cvc5_proof_rewrite_rule_arith_abs_eq": 3, "cvc5_proof_rewrite_rule_arith_abs_int_gt": 3, "cvc5_proof_rewrite_rule_arith_abs_real_gt": 3, "cvc5_proof_rewrite_rule_array_read_over_writ": 3, "cvc5_proof_rewrite_rule_array_read_over_write2": 3, "write2": [3, 53, 74], "cvc5_proof_rewrite_rule_array_store_overwrit": 3, "overwrit": [3, 53, 74], "cvc5_proof_rewrite_rule_array_store_self": 3, "self": [3, 53, 74, 89, 90, 91, 92, 93, 94, 95, 96, 98, 100, 101, 102, 103, 121, 147], "cvc5_proof_rewrite_rule_array_read_over_write_split": 3, "cvc5_proof_rewrite_rule_bool_double_not_elim": 3, "cvc5_proof_rewrite_rule_bool_not_tru": 3, "cvc5_proof_rewrite_rule_bool_not_fals": 3, "cvc5_proof_rewrite_rule_bool_eq_tru": 3, "cvc5_proof_rewrite_rule_bool_eq_fals": 3, "cvc5_proof_rewrite_rule_bool_eq_nrefl": 3, "nrefl": [3, 53, 74], "cvc5_proof_rewrite_rule_bool_impl_false1": 3, "impl": [3, 53, 74], "false1": [3, 53, 74], "cvc5_proof_rewrite_rule_bool_impl_false2": 3, "false2": [3, 53, 74], "cvc5_proof_rewrite_rule_bool_impl_true1": 3, "true1": [3, 53, 74], "cvc5_proof_rewrite_rule_bool_impl_true2": 3, "true2": [3, 53, 74], "cvc5_proof_rewrite_rule_bool_impl_elim": 3, "cvc5_proof_rewrite_rule_bool_or_tru": 3, "cvc5_proof_rewrite_rule_bool_or_flatten": 3, "cvc5_proof_rewrite_rule_bool_and_fals": 3, "cvc5_proof_rewrite_rule_bool_and_flatten": 3, "cvc5_proof_rewrite_rule_bool_and_conf": 3, "conf": [3, 53, 74, 131], "cvc5_proof_rewrite_rule_bool_and_conf2": 3, "conf2": [3, 53, 74], "cvc5_proof_rewrite_rule_bool_or_taut": 3, "taut": [3, 53, 74, 102, 131], "cvc5_proof_rewrite_rule_bool_or_taut2": 3, "taut2": [3, 53, 74], "cvc5_proof_rewrite_rule_bool_or_de_morgan": 3, "cvc5_proof_rewrite_rule_bool_implies_de_morgan": 3, "cvc5_proof_rewrite_rule_bool_and_de_morgan": 3, "cvc5_proof_rewrite_rule_bool_or_and_distrib": 3, "distrib": [3, 53, 74], "cvc5_proof_rewrite_rule_bool_xor_refl": 3, "cvc5_proof_rewrite_rule_bool_xor_nrefl": 3, "cvc5_proof_rewrite_rule_bool_xor_fals": 3, "cvc5_proof_rewrite_rule_bool_xor_tru": 3, "cvc5_proof_rewrite_rule_bool_xor_comm": 3, "comm": [3, 53, 74], "cvc5_proof_rewrite_rule_bool_xor_elim": 3, "cvc5_proof_rewrite_rule_bool_not_xor_elim": 3, "cvc5_proof_rewrite_rule_bool_not_eq_elim1": 3, "elim1": [3, 53, 74], "cvc5_proof_rewrite_rule_bool_not_eq_elim2": 3, "elim2": [3, 53, 74], "cvc5_proof_rewrite_rule_ite_neg_branch": 3, "branch": [3, 41, 53, 73, 74, 131], "cvc5_proof_rewrite_rule_ite_then_tru": 3, "cvc5_proof_rewrite_rule_ite_else_fals": 3, "cvc5_proof_rewrite_rule_ite_then_fals": 3, "cvc5_proof_rewrite_rule_ite_else_tru": 3, "cvc5_proof_rewrite_rule_ite_then_lookahead_self": 3, "lookahead": [3, 53, 74], "cvc5_proof_rewrite_rule_ite_else_lookahead_self": 3, "cvc5_proof_rewrite_rule_ite_then_lookahead_not_self": 3, "cvc5_proof_rewrite_rule_ite_else_lookahead_not_self": 3, "cvc5_proof_rewrite_rule_ite_expand": 3, "expand": [3, 53, 74, 131, 140], "cvc5_proof_rewrite_rule_bool_not_ite_elim": 3, "cvc5_proof_rewrite_rule_ite_true_cond": 3, "cond": [3, 53, 74, 126, 131], "cvc5_proof_rewrite_rule_ite_false_cond": 3, "cvc5_proof_rewrite_rule_ite_not_cond": 3, "cvc5_proof_rewrite_rule_ite_eq_branch": 3, "cvc5_proof_rewrite_rule_ite_then_lookahead": 3, "cvc5_proof_rewrite_rule_ite_else_lookahead": 3, "cvc5_proof_rewrite_rule_ite_then_neg_lookahead": 3, "cvc5_proof_rewrite_rule_ite_else_neg_lookahead": 3, "cvc5_proof_rewrite_rule_bv_concat_flatten": 3, "cvc5_proof_rewrite_rule_bv_concat_extract_merg": 3, "cvc5_proof_rewrite_rule_bv_extract_extract": 3, "cvc5_proof_rewrite_rule_bv_extract_whol": 3, "whole": [3, 53, 74, 131, 139], "cvc5_proof_rewrite_rule_bv_extract_concat_1": 3, "cvc5_proof_rewrite_rule_bv_extract_concat_2": 3, "cvc5_proof_rewrite_rule_bv_extract_concat_3": 3, "cvc5_proof_rewrite_rule_bv_extract_concat_4": 3, "cvc5_proof_rewrite_rule_bv_eq_extract_elim1": 3, "cvc5_proof_rewrite_rule_bv_eq_extract_elim2": 3, "cvc5_proof_rewrite_rule_bv_eq_extract_elim3": 3, "elim3": [3, 53, 74], "cvc5_proof_rewrite_rule_bv_extract_bitwise_and": 3, "bitwis": [3, 53, 74, 91, 131], "cvc5_proof_rewrite_rule_bv_extract_bitwise_or": 3, "cvc5_proof_rewrite_rule_bv_extract_bitwise_xor": 3, "cvc5_proof_rewrite_rule_bv_extract_not": 3, "cvc5_proof_rewrite_rule_bv_extract_sign_extend_1": 3, "cvc5_proof_rewrite_rule_bv_extract_sign_extend_2": 3, "cvc5_proof_rewrite_rule_bv_extract_sign_extend_3": 3, "cvc5_proof_rewrite_rule_bv_neg_mult": 3, "cvc5_proof_rewrite_rule_bv_neg_add": 3, "cvc5_proof_rewrite_rule_bv_mult_distrib_const_neg": 3, "cvc5_proof_rewrite_rule_bv_mult_distrib_const_add": 3, "cvc5_proof_rewrite_rule_bv_mult_distrib_const_sub": 3, "cvc5_proof_rewrite_rule_bv_mult_distrib_1": 3, "cvc5_proof_rewrite_rule_bv_mult_distrib_2": 3, "cvc5_proof_rewrite_rule_bv_not_xor": 3, "cvc5_proof_rewrite_rule_bv_and_simplify_1": 3, "cvc5_proof_rewrite_rule_bv_and_simplify_2": 3, "cvc5_proof_rewrite_rule_bv_or_simplify_1": 3, "cvc5_proof_rewrite_rule_bv_or_simplify_2": 3, "cvc5_proof_rewrite_rule_bv_xor_simplify_1": 3, "cvc5_proof_rewrite_rule_bv_xor_simplify_2": 3, "cvc5_proof_rewrite_rule_bv_xor_simplify_3": 3, "cvc5_proof_rewrite_rule_bv_ult_add_on": 3, "ult": [3, 53, 74, 91], "cvc5_proof_rewrite_rule_bv_concat_to_mult": 3, "cvc5_proof_rewrite_rule_bv_mult_slt_mult_1": 3, "slt": [3, 53, 74, 91], "cvc5_proof_rewrite_rule_bv_mult_slt_mult_2": 3, "cvc5_proof_rewrite_rule_bv_commutative_and": 3, "cvc5_proof_rewrite_rule_bv_commutative_or": 3, "cvc5_proof_rewrite_rule_bv_commutative_xor": 3, "cvc5_proof_rewrite_rule_bv_commutative_mul": 3, "cvc5_proof_rewrite_rule_bv_or_zero": 3, "cvc5_proof_rewrite_rule_bv_mul_on": 3, "cvc5_proof_rewrite_rule_bv_mul_zero": 3, "cvc5_proof_rewrite_rule_bv_add_zero": 3, "cvc5_proof_rewrite_rule_bv_add_two": 3, "cvc5_proof_rewrite_rule_bv_zero_extend_eliminate_0": 3, "cvc5_proof_rewrite_rule_bv_sign_extend_eliminate_0": 3, "cvc5_proof_rewrite_rule_bv_not_neq": 3, "cvc5_proof_rewrite_rule_bv_ult_on": 3, "cvc5_proof_rewrite_rule_bv_or_flatten": 3, "cvc5_proof_rewrite_rule_bv_xor_flatten": 3, "cvc5_proof_rewrite_rule_bv_and_flatten": 3, "cvc5_proof_rewrite_rule_bv_mul_flatten": 3, "cvc5_proof_rewrite_rule_bv_concat_merge_const": 3, "cvc5_proof_rewrite_rule_bv_commutative_add": 3, "cvc5_proof_rewrite_rule_bv_neg_sub": 3, "cvc5_proof_rewrite_rule_bv_neg_idemp": 3, "idemp": [3, 53, 74], "cvc5_proof_rewrite_rule_bv_sub_elimin": 3, "cvc5_proof_rewrite_rule_bv_ugt_elimin": 3, "ugt": [3, 53, 74, 91], "cvc5_proof_rewrite_rule_bv_uge_elimin": 3, "ug": [3, 53, 74, 91], "cvc5_proof_rewrite_rule_bv_sgt_elimin": 3, "sgt": [3, 53, 74, 91], "cvc5_proof_rewrite_rule_bv_sge_elimin": 3, "sge": [3, 53, 74, 91], "cvc5_proof_rewrite_rule_bv_slt_elimin": 3, "cvc5_proof_rewrite_rule_bv_sle_elimin": 3, "sle": [3, 53, 74, 91], "cvc5_proof_rewrite_rule_bv_redor_elimin": 3, "cvc5_proof_rewrite_rule_bv_redand_elimin": 3, "cvc5_proof_rewrite_rule_bv_ule_elimin": 3, "ul": [3, 53, 74, 91], "cvc5_proof_rewrite_rule_bv_comp_elimin": 3, "cvc5_proof_rewrite_rule_bv_rotate_left_eliminate_1": 3, "cvc5_proof_rewrite_rule_bv_rotate_left_eliminate_2": 3, "cvc5_proof_rewrite_rule_bv_rotate_right_eliminate_1": 3, "cvc5_proof_rewrite_rule_bv_rotate_right_eliminate_2": 3, "cvc5_proof_rewrite_rule_bv_nand_elimin": 3, "cvc5_proof_rewrite_rule_bv_nor_elimin": 3, "cvc5_proof_rewrite_rule_bv_xnor_elimin": 3, "cvc5_proof_rewrite_rule_bv_sdiv_elimin": 3, "sdiv": [3, 53, 74, 91], "cvc5_proof_rewrite_rule_bv_sdiv_eliminate_fewer_bitwise_op": 3, "fewer": [3, 53, 74], "cvc5_proof_rewrite_rule_bv_zero_extend_elimin": 3, "cvc5_proof_rewrite_rule_bv_sign_extend_elimin": 3, "cvc5_proof_rewrite_rule_bv_uaddo_elimin": 3, "uaddo": [3, 53, 74], "cvc5_proof_rewrite_rule_bv_saddo_elimin": 3, "saddo": [3, 53, 74], "cvc5_proof_rewrite_rule_bv_sdivo_elimin": 3, "sdivo": [3, 53, 74], "cvc5_proof_rewrite_rule_bv_smod_elimin": 3, "smod": [3, 53, 74, 91], "cvc5_proof_rewrite_rule_bv_smod_eliminate_fewer_bitwise_op": 3, "cvc5_proof_rewrite_rule_bv_srem_elimin": 3, "srem": [3, 53, 74, 91], "cvc5_proof_rewrite_rule_bv_srem_eliminate_fewer_bitwise_op": 3, "cvc5_proof_rewrite_rule_bv_usubo_elimin": 3, "usubo": [3, 53, 74], "cvc5_proof_rewrite_rule_bv_ssubo_elimin": 3, "ssubo": [3, 53, 74], "cvc5_proof_rewrite_rule_bv_ite_equal_children": 3, "cvc5_proof_rewrite_rule_bv_ite_const_children_1": 3, "cvc5_proof_rewrite_rule_bv_ite_const_children_2": 3, "cvc5_proof_rewrite_rule_bv_ite_equal_cond_1": 3, "cvc5_proof_rewrite_rule_bv_ite_equal_cond_2": 3, "cvc5_proof_rewrite_rule_bv_ite_equal_cond_3": 3, "cvc5_proof_rewrite_rule_bv_ite_merge_then_if": 3, "cvc5_proof_rewrite_rule_bv_ite_merge_else_if": 3, "cvc5_proof_rewrite_rule_bv_ite_merge_then_els": 3, "cvc5_proof_rewrite_rule_bv_ite_merge_else_els": 3, "cvc5_proof_rewrite_rule_bv_shl_by_const_0": 3, "shl": [3, 53, 74], "cvc5_proof_rewrite_rule_bv_shl_by_const_1": 3, "cvc5_proof_rewrite_rule_bv_shl_by_const_2": 3, "cvc5_proof_rewrite_rule_bv_lshr_by_const_0": 3, "lshr": [3, 53, 74, 91], "cvc5_proof_rewrite_rule_bv_lshr_by_const_1": 3, "cvc5_proof_rewrite_rule_bv_lshr_by_const_2": 3, "cvc5_proof_rewrite_rule_bv_ashr_by_const_0": 3, "ashr": [3, 53, 74], "cvc5_proof_rewrite_rule_bv_ashr_by_const_1": 3, "cvc5_proof_rewrite_rule_bv_ashr_by_const_2": 3, "cvc5_proof_rewrite_rule_bv_and_concat_pullup": 3, "pullup": [3, 53, 74], "cvc5_proof_rewrite_rule_bv_or_concat_pullup": 3, "cvc5_proof_rewrite_rule_bv_xor_concat_pullup": 3, "cvc5_proof_rewrite_rule_bv_bitwise_idemp_1": 3, "cvc5_proof_rewrite_rule_bv_bitwise_idemp_2": 3, "cvc5_proof_rewrite_rule_bv_and_zero": 3, "cvc5_proof_rewrite_rule_bv_and_on": 3, "cvc5_proof_rewrite_rule_bv_or_on": 3, "cvc5_proof_rewrite_rule_bv_xor_dupl": 3, "cvc5_proof_rewrite_rule_bv_xor_on": 3, "cvc5_proof_rewrite_rule_bv_xor_zero": 3, "cvc5_proof_rewrite_rule_bv_bitwise_not_and": 3, "cvc5_proof_rewrite_rule_bv_bitwise_not_or": 3, "cvc5_proof_rewrite_rule_bv_xor_not": 3, "cvc5_proof_rewrite_rule_bv_not_idemp": 3, "cvc5_proof_rewrite_rule_bv_ult_zero_1": 3, "cvc5_proof_rewrite_rule_bv_ult_zero_2": 3, "cvc5_proof_rewrite_rule_bv_ult_self": 3, "cvc5_proof_rewrite_rule_bv_lt_self": 3, "cvc5_proof_rewrite_rule_bv_ule_self": 3, "cvc5_proof_rewrite_rule_bv_ule_zero": 3, "cvc5_proof_rewrite_rule_bv_zero_ul": 3, "cvc5_proof_rewrite_rule_bv_sle_self": 3, "cvc5_proof_rewrite_rule_bv_ule_max": 3, "cvc5_proof_rewrite_rule_bv_not_ult": 3, "cvc5_proof_rewrite_rule_bv_not_ul": 3, "cvc5_proof_rewrite_rule_bv_not_sl": 3, "cvc5_proof_rewrite_rule_bv_mult_pow2_1": 3, "pow2": [3, 51, 53, 69, 74, 131], "cvc5_proof_rewrite_rule_bv_mult_pow2_2": 3, "cvc5_proof_rewrite_rule_bv_mult_pow2_2b": 3, "2b": [3, 53, 74], "cvc5_proof_rewrite_rule_bv_extract_mult_leading_bit": 3, "lead": [3, 53, 74, 131], "cvc5_proof_rewrite_rule_bv_udiv_pow2_not_on": 3, "udiv": [3, 53, 74, 91], "cvc5_proof_rewrite_rule_bv_udiv_zero": 3, "cvc5_proof_rewrite_rule_bv_udiv_on": 3, "cvc5_proof_rewrite_rule_bv_urem_pow2_not_on": 3, "urem": [3, 53, 74, 91], "cvc5_proof_rewrite_rule_bv_urem_on": 3, "cvc5_proof_rewrite_rule_bv_urem_self": 3, "cvc5_proof_rewrite_rule_bv_shl_zero": 3, "cvc5_proof_rewrite_rule_bv_lshr_zero": 3, "cvc5_proof_rewrite_rule_bv_ashr_zero": 3, "cvc5_proof_rewrite_rule_bv_ugt_urem": 3, "cvc5_proof_rewrite_rule_bv_slt_zero": 3, "cvc5_proof_rewrite_rule_bv_merge_sign_extend_1": 3, "cvc5_proof_rewrite_rule_bv_merge_sign_extend_2": 3, "cvc5_proof_rewrite_rule_bv_merge_sign_extend_3": 3, "cvc5_proof_rewrite_rule_bv_sign_extend_eq_const_1": 3, "cvc5_proof_rewrite_rule_bv_sign_extend_eq_const_2": 3, "cvc5_proof_rewrite_rule_bv_zero_extend_eq_const_1": 3, "cvc5_proof_rewrite_rule_bv_zero_extend_eq_const_2": 3, "cvc5_proof_rewrite_rule_bv_sign_extend_ult_const_1": 3, "cvc5_proof_rewrite_rule_bv_sign_extend_ult_const_2": 3, "cvc5_proof_rewrite_rule_bv_sign_extend_ult_const_3": 3, "cvc5_proof_rewrite_rule_bv_sign_extend_ult_const_4": 3, "cvc5_proof_rewrite_rule_sets_eq_singleton_emp": 3, "emp": [3, 53, 74, 131, 145], "cvc5_proof_rewrite_rule_sets_member_singleton": 3, "cvc5_proof_rewrite_rule_sets_member_emp": 3, "cvc5_proof_rewrite_rule_sets_subset_elim": 3, "cvc5_proof_rewrite_rule_sets_union_comm": 3, "cvc5_proof_rewrite_rule_sets_inter_comm": 3, "cvc5_proof_rewrite_rule_sets_inter_emp1": 3, "emp1": [3, 53, 74], "cvc5_proof_rewrite_rule_sets_inter_emp2": 3, "emp2": [3, 53, 74], "cvc5_proof_rewrite_rule_sets_minus_emp1": 3, "cvc5_proof_rewrite_rule_sets_minus_emp2": 3, "cvc5_proof_rewrite_rule_sets_union_emp1": 3, "cvc5_proof_rewrite_rule_sets_union_emp2": 3, "cvc5_proof_rewrite_rule_sets_inter_memb": 3, "cvc5_proof_rewrite_rule_sets_minus_memb": 3, "cvc5_proof_rewrite_rule_sets_union_memb": 3, "cvc5_proof_rewrite_rule_sets_choose_singleton": 3, "cvc5_proof_rewrite_rule_sets_card_singleton": 3, "card": [3, 53, 74, 131, 140, 147], "cvc5_proof_rewrite_rule_sets_card_union": 3, "cvc5_proof_rewrite_rule_sets_card_minu": 3, "cvc5_proof_rewrite_rule_sets_card_emp": 3, "cvc5_proof_rewrite_rule_sets_minus_self": 3, "cvc5_proof_rewrite_rule_sets_is_empty_elim": 3, "cvc5_proof_rewrite_rule_str_eq_ctn_fals": 3, "ctn": [3, 53, 74], "cvc5_proof_rewrite_rule_str_eq_ctn_full_false1": 3, "full": [3, 6, 8, 11, 43, 50, 52, 53, 56, 58, 60, 70, 74, 76, 79, 87, 99, 101, 103, 105, 120, 131, 133], "cvc5_proof_rewrite_rule_str_eq_ctn_full_false2": 3, "cvc5_proof_rewrite_rule_str_concat_flatten": 3, "cvc5_proof_rewrite_rule_str_concat_flatten_eq": 3, "cvc5_proof_rewrite_rule_str_concat_flatten_eq_rev": 3, "rev": [3, 53, 74, 131, 146, 148], "cvc5_proof_rewrite_rule_str_substr_empty_str": 3, "cvc5_proof_rewrite_rule_str_substr_empty_rang": 3, "cvc5_proof_rewrite_rule_str_substr_empty_start": 3, "cvc5_proof_rewrite_rule_str_substr_empty_start_neg": 3, "cvc5_proof_rewrite_rule_str_substr_eq_empti": 3, "cvc5_proof_rewrite_rule_str_len_replace_inv": 3, "cvc5_proof_rewrite_rule_str_len_update_inv": 3, "cvc5_proof_rewrite_rule_str_len_substr_in_rang": 3, "cvc5_proof_rewrite_rule_str_len_substr_ub1": 3, "ub1": [3, 53, 74], "cvc5_proof_rewrite_rule_str_len_substr_ub2": 3, "ub2": [3, 53, 74], "cvc5_proof_rewrite_rule_str_concat_clash": 3, "cvc5_proof_rewrite_rule_str_concat_clash_rev": 3, "cvc5_proof_rewrite_rule_str_concat_clash2": 3, "clash2": [3, 53, 74], "cvc5_proof_rewrite_rule_str_concat_clash2_rev": 3, "cvc5_proof_rewrite_rule_str_concat_unifi": 3, "unifi": [3, 53, 74, 131], "cvc5_proof_rewrite_rule_str_concat_unify_rev": 3, "cvc5_proof_rewrite_rule_str_concat_unify_bas": 3, "cvc5_proof_rewrite_rule_str_concat_unify_base_rev": 3, "cvc5_proof_rewrite_rule_str_concat_clash_char": 3, "cvc5_proof_rewrite_rule_str_concat_clash_char_rev": 3, "cvc5_proof_rewrite_rule_str_prefixof_elim": 3, "prefixof": [3, 53, 74, 103, 146], "cvc5_proof_rewrite_rule_str_suffixof_elim": 3, "suffixof": [3, 53, 74, 103, 146], "cvc5_proof_rewrite_rule_str_prefixof_on": 3, "cvc5_proof_rewrite_rule_str_suffixof_on": 3, "cvc5_proof_rewrite_rule_str_substr_combine1": 3, "combine1": [3, 53, 74], "cvc5_proof_rewrite_rule_str_substr_combine2": 3, "combine2": [3, 53, 74], "cvc5_proof_rewrite_rule_str_substr_combine3": 3, "combine3": [3, 53, 74], "cvc5_proof_rewrite_rule_str_substr_combine4": 3, "combine4": [3, 53, 74], "cvc5_proof_rewrite_rule_str_substr_concat1": 3, "concat1": [3, 53, 74], "cvc5_proof_rewrite_rule_str_substr_concat2": 3, "concat2": [3, 53, 74], "cvc5_proof_rewrite_rule_str_substr_ful": 3, "cvc5_proof_rewrite_rule_str_substr_full_eq": 3, "cvc5_proof_rewrite_rule_str_contains_refl": 3, "cvc5_proof_rewrite_rule_str_contains_concat_find": 3, "find": [3, 7, 9, 11, 15, 19, 24, 25, 26, 28, 43, 52, 53, 70, 74, 79, 106, 115, 121, 123, 131, 140, 142, 147], "cvc5_proof_rewrite_rule_str_contains_split_char": 3, "cvc5_proof_rewrite_rule_str_contains_lt_len": 3, "cvc5_proof_rewrite_rule_str_contains_leq_len_eq": 3, "cvc5_proof_rewrite_rule_str_contains_emp": 3, "cvc5_proof_rewrite_rule_str_contains_is_emp": 3, "cvc5_proof_rewrite_rule_str_at_elim": 3, "cvc5_proof_rewrite_rule_str_replace_self": 3, "cvc5_proof_rewrite_rule_str_replace_prefix": 3, "cvc5_proof_rewrite_rule_str_replace_no_contain": 3, "cvc5_proof_rewrite_rule_str_replace_empti": 3, "cvc5_proof_rewrite_rule_str_replace_contains_pr": 3, "cvc5_proof_rewrite_rule_str_replace_all_no_contain": 3, "cvc5_proof_rewrite_rule_str_replace_re_non": 3, "cvc5_proof_rewrite_rule_str_replace_re_all_non": 3, "cvc5_proof_rewrite_rule_str_len_concat_rec": 3, "rec": [3, 11, 43, 53, 74, 79, 131, 143], "cvc5_proof_rewrite_rule_str_indexof_self": 3, "indexof": [3, 53, 74, 103, 146], "cvc5_proof_rewrite_rule_str_indexof_no_contain": 3, "cvc5_proof_rewrite_rule_str_indexof_contains_pr": 3, "cvc5_proof_rewrite_rule_str_indexof_re_non": 3, "cvc5_proof_rewrite_rule_str_to_lower_concat": 3, "cvc5_proof_rewrite_rule_str_to_upper_concat": 3, "cvc5_proof_rewrite_rule_str_to_lower_upp": 3, "cvc5_proof_rewrite_rule_str_to_upper_low": 3, "cvc5_proof_rewrite_rule_str_to_lower_len": 3, "cvc5_proof_rewrite_rule_str_to_upper_len": 3, "cvc5_proof_rewrite_rule_str_to_lower_from_int": 3, "cvc5_proof_rewrite_rule_str_to_upper_from_int": 3, "cvc5_proof_rewrite_rule_str_to_int_concat_neg_on": 3, "cvc5_proof_rewrite_rule_str_leq_empti": 3, "cvc5_proof_rewrite_rule_str_leq_empty_eq": 3, "cvc5_proof_rewrite_rule_str_leq_concat_fals": 3, "cvc5_proof_rewrite_rule_str_leq_concat_tru": 3, "cvc5_proof_rewrite_rule_str_lt_elim": 3, "cvc5_proof_rewrite_rule_re_all_elim": 3, "cvc5_proof_rewrite_rule_re_opt_elim": 3, "opt": [3, 53, 74, 131], "cvc5_proof_rewrite_rule_re_diff_elim": 3, "diff": [3, 27, 48, 53, 74, 85, 103, 117, 131, 140], "cvc5_proof_rewrite_rule_re_concat_emp": 3, "cvc5_proof_rewrite_rule_re_concat_non": 3, "cvc5_proof_rewrite_rule_re_concat_flatten": 3, "cvc5_proof_rewrite_rule_re_concat_star_swap": 3, "swap": [3, 53, 74], "cvc5_proof_rewrite_rule_re_concat_star_repeat": 3, "cvc5_proof_rewrite_rule_re_concat_merg": 3, "cvc5_proof_rewrite_rule_re_union_al": 3, "cvc5_proof_rewrite_rule_re_union_non": 3, "cvc5_proof_rewrite_rule_re_union_flatten": 3, "cvc5_proof_rewrite_rule_re_union_dup": 3, "dup": [3, 53, 74], "cvc5_proof_rewrite_rule_re_inter_al": 3, "cvc5_proof_rewrite_rule_re_inter_non": 3, "cvc5_proof_rewrite_rule_re_inter_flatten": 3, "cvc5_proof_rewrite_rule_re_inter_dup": 3, "cvc5_proof_rewrite_rule_re_star_non": 3, "cvc5_proof_rewrite_rule_re_loop_neg": 3, "cvc5_proof_rewrite_rule_re_inter_cstr": 3, "cstring": [3, 53, 74], "cvc5_proof_rewrite_rule_re_inter_cstring_neg": 3, "cvc5_proof_rewrite_rule_str_substr_len_includ": 3, "cvc5_proof_rewrite_rule_str_substr_len_include_pr": 3, "cvc5_proof_rewrite_rule_str_substr_len_skip": 3, "skip": [3, 45, 53, 74, 130, 131], "cvc5_proof_rewrite_rule_seq_len_rev": 3, "cvc5_proof_rewrite_rule_seq_rev_rev": 3, "cvc5_proof_rewrite_rule_seq_rev_concat": 3, "cvc5_proof_rewrite_rule_seq_len_unit": 3, "cvc5_proof_rewrite_rule_seq_nth_unit": 3, "cvc5_proof_rewrite_rule_seq_rev_unit": 3, "cvc5_proof_rewrite_rule_seq_len_empti": 3, "cvc5_proof_rewrite_rule_re_in_empti": 3, "cvc5_proof_rewrite_rule_re_in_sigma": 3, "cvc5_proof_rewrite_rule_re_in_sigma_star": 3, "cvc5_proof_rewrite_rule_re_in_cstr": 3, "cvc5_proof_rewrite_rule_re_in_comp": 3, "cvc5_proof_rewrite_rule_str_in_re_union_elim": 3, "cvc5_proof_rewrite_rule_str_in_re_inter_elim": 3, "cvc5_proof_rewrite_rule_str_in_re_range_elim": 3, "cvc5_proof_rewrite_rule_str_in_re_contain": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_prefix": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_prefix_neg": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_prefix_sr_singl": 3, "sr": [3, 53, 74], "cvc5_proof_rewrite_rule_str_in_re_strip_prefix_sr_single_neg": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_prefix_srs_singl": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_prefix_srs_single_neg": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_prefix_s_singl": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_prefix_s_single_neg": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_prefix_bas": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_prefix_base_neg": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_prefix_base_s_singl": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_prefix_base_s_single_neg": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_char": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_char_s_singl": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_prefix_rev": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_prefix_neg_rev": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_prefix_sr_single_rev": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_prefix_sr_single_neg_rev": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_prefix_srs_single_rev": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_prefix_srs_single_neg_rev": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_prefix_s_single_rev": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_prefix_s_single_neg_rev": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_prefix_base_rev": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_prefix_base_neg_rev": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_prefix_base_s_single_rev": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_prefix_base_s_single_neg_rev": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_char_rev": 3, "cvc5_proof_rewrite_rule_str_in_re_strip_char_s_single_rev": 3, "cvc5_proof_rewrite_rule_str_in_re_req_unfold": 3, "req": [3, 53, 74], "cvc5_proof_rewrite_rule_str_in_re_req_unfold_rev": 3, "cvc5_proof_rewrite_rule_str_in_re_skip_unfold": 3, "cvc5_proof_rewrite_rule_str_in_re_skip_unfold_rev": 3, "cvc5_proof_rewrite_rule_str_in_re_test_unfold": 3, "test": [3, 7, 8, 52, 53, 58, 60, 70, 74, 76, 92, 103, 105, 108, 110, 112, 114, 131, 132, 133, 134, 136, 141], "cvc5_proof_rewrite_rule_str_in_re_test_unfold_rev": 3, "cvc5_proof_rewrite_rule_eq_refl": 3, "cvc5_proof_rewrite_rule_eq_symm": 3, "symm": [3, 53, 74], "cvc5_proof_rewrite_rule_eq_cond_deq": 3, "deq": [3, 53, 74, 131], "cvc5_proof_rewrite_rule_eq_ite_lift": 3, "cvc5_proof_rewrite_rule_distinct_binary_elim": 3, "cvc5_proof_rewrite_rule_uf_bv2nat_int2bv": 3, "cvc5_proof_rewrite_rule_uf_bv2nat_int2bv_extend": 3, "cvc5_proof_rewrite_rule_uf_bv2nat_int2bv_extract": 3, "cvc5_proof_rewrite_rule_uf_int2bv_bv2nat": 3, "cvc5_proof_rewrite_rule_uf_bv2nat_geq_elim": 3, "cvc5_proof_rewrite_rule_uf_int2bv_bvult_equiv": 3, "bvult": [3, 53, 74, 91], "cvc5_proof_rewrite_rule_uf_int2bv_bvule_equiv": 3, "bvule": [3, 53, 74, 91], "cvc5_proof_rewrite_rule_last": 3, "cvc5_proof_rewrite_rule_to_str": 3, "cvc5_proof_rewrite_rule_hash": 3, "mani": [4, 54, 131], "thu": [4, 11, 13, 14, 16, 17, 18, 20, 21, 22, 23, 27, 28, 35, 49, 54, 79, 86, 106, 109, 117, 130, 139, 150], "certain": [4, 20, 38, 54, 57, 71, 130, 132, 134, 139], "directli": [4, 8, 27, 28, 43, 48, 49, 54, 69, 120, 130, 131], "lib": [4, 11, 16, 23, 25, 33, 43, 44, 46, 49, 54, 59, 65, 78, 79, 80, 83, 86, 102, 104, 105, 109, 130, 131, 133, 134, 138, 139, 140, 143, 144, 145, 146, 148, 149], "turn": [4, 7, 8, 52, 54, 58, 60, 70, 76, 85, 99, 105, 120, 131, 144], "iee19": [4, 54, 138], "section": [4, 54, 95, 131], "cvc5_rm_round_nearest_ties_to_even": [4, 115], "nearest": [4, 54, 78, 95], "bracket": [4, 54, 78], "unrepresent": [4, 54, 78], "signific": [4, 54, 78, 91], "deliv": [4, 54, 78], "cvc5_rm_round_toward_posit": [4, 115], "infin": [4, 27, 43, 48, 49, 54, 78, 79, 85, 86, 115, 131, 140], "oo": [4, 27, 43, 48, 49, 54, 78, 95, 115], "shall": [4, 54, 78], "closest": [4, 54, 78], "cvc5_rm_round_toward_neg": [4, 115], "cvc5_rm_round_toward_zero": 4, "magnitud": [4, 54, 78], "cvc5_rm_round_nearest_ties_to_awai": 4, "awai": [4, 54, 78, 95, 110], "larger": [4, 54, 78], "cvc5_rm_last": 4, "cvc5_rm_to_str": 4, "rm": [4, 43, 49, 54, 79, 86, 95, 115, 131], "cvc5_sort_kind_internal_sort_kind": 5, "cvc5_sort_kind_undefined_sort_kind": 5, "cvc5_sort_kind_null_sort": 5, "cvc5_sort_kind_abstract_sort": 5, "unspecifi": [5, 43, 49, 55, 79, 81, 86], "mkabstractsort": [5, 43, 49, 55, 79, 81, 86], "bitvector_sort": [5, 43, 49, 55, 79, 81, 86], "sortkind": [5, 43, 44, 49, 50, 80, 86], "cvc5_sort_kind_array_sort": 5, "mkarraysort": [5, 43, 49, 55, 79, 81, 86, 108], "cvc5_sort_kind_bag_sort": 5, "mkbagsort": [5, 43, 44, 49, 55, 79, 80, 81, 86, 106, 142], "cvc5_sort_kind_boolean_sort": 5, "getbooleansort": [5, 43, 44, 49, 55, 79, 80, 81, 86, 109, 116, 125, 126, 127], "cvc5_sort_kind_bitvector_sort": 5, "mkbitvectorsort": [5, 43, 44, 49, 55, 79, 80, 81, 86, 107, 108, 113], "cvc5_sort_kind_datatype_sort": 5, "mkdatatypesort": [5, 32, 33, 43, 49, 55, 64, 65, 79, 81, 86, 110, 143], "datatypedecl": [5, 30, 43, 49, 50, 55, 59, 62, 75, 110], "cvc5_sort_kind_finite_field_sort": 5, "mkfinitefieldsort": [5, 43, 49, 55, 79, 81, 86, 114, 144], "cvc5_sort_kind_floatingpoint_sort": 5, "mkfloatingpointsort": [5, 43, 49, 55, 79, 81, 86, 115], "cvc5_sort_kind_function_sort": 5, "mkfunctionsort": [5, 43, 49, 55, 79, 81, 86, 109, 127], "cvc5_sort_kind_integer_sort": 5, "getintegersort": [5, 8, 43, 49, 55, 58, 60, 76, 79, 81, 86, 99, 105, 109, 110, 112, 117, 120, 121, 122, 123, 125, 126, 127, 143, 146, 147], "cvc5_sort_kind_real_sort": 5, "getrealsort": [5, 8, 43, 49, 55, 58, 60, 76, 79, 81, 86, 99, 105, 117, 120, 150], "cvc5_sort_kind_reglan_sort": 5, "getregexpsort": [5, 43, 49, 55, 79, 81, 86], "cvc5_sort_kind_roundingmode_sort": 5, "getroundingmodesort": [5, 43, 49, 55, 79, 81, 86], "cvc5_sort_kind_sequence_sort": 5, "mksequencesort": [5, 43, 49, 55, 79, 81, 86, 122, 146], "cvc5_sort_kind_set_sort": 5, "mksetsort": [5, 43, 44, 49, 55, 79, 80, 81, 86, 121, 123, 147], "cvc5_sort_kind_string_sort": 5, "getstringsort": [5, 43, 49, 55, 79, 81, 86, 106, 124, 142], "cvc5_sort_kind_tuple_sort": 5, "mktuplesort": [5, 43, 49, 55, 79, 81, 86, 121, 143, 147], "cvc5_sort_kind_nullable_sort": 5, "mknullablesort": [5, 43, 49, 55, 79, 81, 86], "cvc5_sort_kind_uninterpreted_sort": 5, "mkuninterpretedsort": [5, 43, 44, 49, 55, 79, 81, 86, 109, 121, 127, 147], "cvc5_sort_kind_last_sort_kind": 5, "cvc5_sort_kind_to_str": 5, "cvc5_sort_kind_hash": 5, "explan": [6, 22, 42, 56, 77, 87, 105, 131, 139], "unknown": [6, 8, 11, 22, 26, 42, 43, 47, 52, 53, 56, 58, 60, 70, 74, 76, 77, 79, 84, 87, 99, 102, 105, 120, 131, 132, 139], "cvc5_unknown_explanation_requires_full_check": 6, "preprocess": [6, 7, 52, 56, 70, 87, 131, 132, 139], "wa": [6, 7, 9, 11, 22, 23, 27, 37, 39, 42, 43, 44, 47, 48, 52, 56, 57, 68, 70, 77, 79, 84, 87, 131, 132, 133, 134, 140, 141], "cvc5_unknown_explanation_incomplet": 6, "incomplet": [6, 56, 87, 131, 134], "cvc5_unknown_explanation_timeout": 6, "cvc5_unknown_explanation_resourceout": 6, "resourc": [6, 13, 14, 16, 17, 18, 20, 21, 22, 23, 27, 56, 87, 129, 131], "cvc5_unknown_explanation_memout": 6, "cvc5_unknown_explanation_interrupt": 6, "interrupt": [6, 56, 87, 139], "cvc5_unknown_explanation_unsupport": 6, "unsupport": [6, 56, 87], "encount": [6, 56, 57, 87, 131], "cvc5_unknown_explanation_oth": 6, "cvc5_unknown_explanation_requires_check_again": 6, "cvc5_unknown_explanation_unknown_reason": 6, "No": [6, 56, 87, 121, 131], "cvc5_unknown_explanation_last": 6, "cvc5_unknown_explanation_to_str": 6, "cvc5_block_model": [7, 11], "block": [7, 11, 43, 52, 70, 79, 131, 143], "blockmodel": [7, 43, 52, 70, 79], "blockmodelvalu": [7, 43, 52, 79], "cvc5_block_models_mode_liter": 7, "skeleton": [7, 52, 70], "cvc5_block_models_mode_valu": 7, "concret": [7, 37, 52, 68, 70, 92, 134, 143], "cvc5_block_models_mode_last": 7, "cvc5_modes_block_models_mode_to_str": 7, "learn": [7, 10, 11, 40, 43, 52, 70, 72, 79, 131], "categori": [7, 52, 70, 130], "getlearnedliter": [7, 43, 52, 79], "classifi": [7, 52], "criteria": [7, 52, 131], "meet": [7, 52, 131], "cvc5_learned_lit_type_preprocess_solv": 7, "cvc5_learned_lit_type_preprocess": 7, "cvc5_learned_lit_type_input": 7, "typic": [7, 52, 70], "interest": [7, 11, 43, 52, 70, 79, 109, 130, 131], "cvc5_learned_lit_type_solv": 7, "solvabl": [7, 52, 70, 131], "cvc5_learned_lit_type_constant_prop": 7, "made": [7, 11, 43, 52, 70, 79, 132], "cvc5_learned_lit_type_intern": 7, "fall": [7, 52, 70], "cvc5_learned_lit_type_unknown": 7, "produc": [7, 8, 11, 43, 52, 58, 60, 70, 76, 79, 92, 99, 102, 105, 106, 108, 109, 112, 114, 115, 120, 121, 122, 123, 124, 130, 131, 133, 134, 136, 137, 142, 147], "cvc5_learned_lit_type_last": 7, "cvc5_modes_learned_lit_type_to_str": 7, "cvc5_proof_component_raw_preprocess": 7, "g1": [7, 52, 70], "gn": [7, 52, 70], "fm": [7, 52, 70], "cvc5_proof_component_preprocess": 7, "gu1": [7, 52, 70], "gun": [7, 52, 70], "fu1": [7, 52, 70], "fum": [7, 52, 70], "befor": [7, 11, 43, 49, 52, 57, 70, 79, 130, 131, 132, 140], "search": [7, 13, 14, 30, 31, 52, 62, 63, 70, 130, 131], "immedi": [7, 11, 43, 52, 70, 79, 139, 140], "respons": [7, 11, 27, 43, 46, 48, 52, 70, 79, 83, 131], "cvc5_proof_component_sat": 7, "l1": [7, 52, 70, 93], "lk": [7, 52, 70], "cvc5_proof_component_theory_lemma": 7, "cvc5_proof_component_ful": 7, "cvc5_proof_component_last": 7, "cvc5_modes_proof_component_to_str": 7, "pc": [7, 52, 53], "cvc5_proof_format_non": 7, "do": [7, 8, 11, 43, 45, 52, 58, 60, 70, 76, 79, 88, 92, 99, 102, 105, 107, 108, 118, 119, 120, 131], "cvc5_proof_format_dot": 7, "cvc5_proof_format_lfsc": 7, "cvc5_proof_format_aleth": 7, "cvc5_proof_format_cpc": 7, "cooper": [7, 52, 70, 131, 137], "eunoia": [7, 52, 70, 134], "signatur": [7, 52, 70, 131, 132, 134, 136], "cvc5_proof_format_default": 7, "cvc5_proof_format_last": 7, "cvc5_modes_proof_format_to_str": 7, "synthesi": [7, 11, 26, 43, 47, 52, 79, 84, 97, 125, 126, 131], "findsynth": [7, 43, 52, 70, 79], "variou": [7, 52, 131], "found": [7, 11, 13, 30, 43, 52, 59, 62, 79, 130, 131, 134, 137, 147], "cvc5_find_synth_target_enum": 7, "next": [7, 8, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 27, 37, 43, 52, 58, 60, 68, 70, 76, 79, 82, 99, 105, 106, 109, 110, 120, 131, 140], "grammar": [7, 11, 18, 41, 43, 50, 52, 59, 70, 75, 79, 125, 131, 145], "cvc5_find_synth_target_rewrit": 7, "8212": [7, 52], "sygu": [7, 11, 18, 26, 36, 43, 47, 52, 67, 70, 79, 84, 97, 104, 111, 131], "synthes": [7, 11, 43, 52, 70, 79, 125, 126, 131, 132], "scratch": [7, 52, 70], "cvc5_find_synth_target_rewrite_unsound": 7, "cvc5_find_synth_target_rewrite_input": 7, "matchabl": [7, 52, 70], "problem": [7, 11, 43, 52, 70, 79, 102, 107, 108, 111, 114, 115, 121, 129, 130, 131, 132, 147], "cvc5_find_synth_target_queri": 7, "algorithm": [7, 52, 70, 131], "gen": [7, 52, 70, 131], "solv": [7, 8, 11, 43, 52, 58, 60, 70, 76, 79, 89, 91, 92, 93, 94, 97, 99, 105, 107, 108, 109, 110, 111, 113, 114, 115, 116, 117, 120, 121, 122, 123, 124, 125, 126, 127, 130, 131, 132, 138, 139, 141, 147], "cvc5_find_synth_target_last": 7, "cvc5_modes_find_synth_target_to_str": 7, "Then": [8, 19, 37, 58, 60, 68, 76, 130, 139, 140], "slv": [8, 46, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 142, 147, 150], "ask": [8, 58, 60, 76, 99, 105, 112, 120], "cvc5_set_opt": [8, 11, 28, 106, 108, 109, 114, 115, 118, 120, 121, 122, 123, 124, 125, 126], "simplest": [8, 58, 60, 76, 99, 105, 120], "qf_all": [8, 58, 60, 76, 99, 105, 120, 145, 147], "To": [8, 58, 60, 76, 93, 99, 102, 105, 110, 120, 130, 139, 140, 143, 145, 150], "optim": [8, 58, 60, 76, 99, 105, 120, 131], "behavior": [8, 58, 60, 76, 99, 105, 120], "qf_bv": [8, 58, 60, 76, 99, 105, 107, 113, 120], "qf_aufbv": [8, 58, 60, 76, 99, 105, 120], "cvc5_set_log": [8, 11, 106, 107, 108, 109, 113, 117, 120, 121, 122, 123, 124, 125, 126, 127], "real_sort": [8, 55, 81, 120], "cvc5_get_real_sort": [8, 117, 120], "int_sort": [8, 109, 120, 123, 125, 126], "now": [8, 58, 60, 76, 93, 99, 105, 110, 115, 118, 119, 120, 131], "regard": [8, 58, 60, 76, 99, 105, 120], "them": [8, 46, 58, 60, 76, 83, 99, 102, 105, 110, 120, 131, 132, 133, 134, 136, 140], "Their": [8, 58, 60, 76, 99, 105, 120], "gradual": [8, 58, 60, 76, 99, 105, 120], "numer": [8, 11, 27, 39, 43, 48, 49, 58, 60, 62, 63, 76, 79, 86, 89, 91, 94, 95, 99, 105, 120, 131, 144], "cvc5_mk_real_int64": [8, 120], "x_plus_i": [8, 120], "src": [8, 58, 60, 76, 99, 103, 105, 120, 146], "cvc5_kind": [8, 58, 60, 76, 99, 105, 120], "constraint1": [8, 58, 60, 76, 99, 105, 120], "constraint2": [8, 58, 60, 76, 99, 105, 120], "constraint3": [8, 58, 60, 76, 99, 105, 120], "constraint4": [8, 58, 60, 76, 99, 105, 120], "cvc5_result_is_sat": [8, 22, 106, 114, 115, 122, 123, 124], "cvc5_result_is_unsat": [8, 22, 114, 115], "cvc5_result_is_unknown": [8, 22], "printf": [8, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127], "cvc5_result_to_str": [8, 22, 106, 107, 108, 109, 110, 113, 115, 116, 117, 118, 120, 121, 122, 123, 124, 127], "x_val": [8, 120], "cvc5_get_valu": [8, 11, 27, 106, 108, 109, 114, 115, 120, 121, 122, 123, 124], "y_val": [8, 120], "x_minus_i": [8, 120], "x_minus_y_v": [8, 120], "cvc5_term_get_real_valu": [8, 27, 120], "until": [8, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 27, 44, 48, 80, 85, 106, 109, 118, 119, 120, 131, 139], "x_str": [8, 120], "strdup": [8, 120], "y_str": [8, 120], "x_minus_y_str": [8, 120], "you": [8, 88, 109, 110, 120, 130], "6": [8, 14, 16, 31, 33, 58, 59, 60, 63, 65, 76, 89, 91, 99, 105, 120, 130, 133, 138, 143, 145], "further": [8, 13, 14, 16, 17, 18, 20, 21, 22, 23, 27, 58, 60, 76, 99, 105, 120, 130, 131], "x_num": [8, 120], "x_den": [8, 120], "cvc5_term_get_real64_valu": [8, 27, 120], "y_num": [8, 120], "y_den": [8, 120], "x_minus_y_num": [8, 120], "x_minus_y_den": [8, 120], "prid64": [8, 120], "priu64": [8, 120], "independ": [8, 45, 49, 58, 60, 76, 86, 99, 105, 120, 131], "would": [8, 43, 49, 58, 60, 76, 79, 86, 88, 99, 105, 120], "complex": [8, 58, 60, 76, 99, 105, 120, 131], "easier": [8, 45, 58, 60, 76, 99, 105, 120], "x_minus_y_num_comput": [8, 120], "x_minus_y_den_comput": [8, 120], "gcd": [8, 58, 60, 76, 99, 105, 120], "correctli": [8, 58, 60, 76, 99, 105, 120], "incorrectli": [8, 58, 60, 76, 99, 105, 120], "reset": [8, 11, 43, 58, 60, 76, 79, 99, 102, 105, 120, 145], "cvc5_reset_assert": [8, 11, 120], "inlin": [8, 57, 58, 60, 76, 99, 105, 120], "command": [8, 11, 12, 16, 19, 25, 33, 37, 43, 46, 50, 58, 59, 60, 65, 68, 75, 76, 83, 88, 99, 102, 104, 105, 110, 118, 119, 120, 125, 126, 130, 131, 139, 141, 143, 145], "revis": [8, 58, 60, 76, 99, 105, 120, 138], "cvc5_result_releas": [8, 22, 114, 115, 120], "alreadi": [8, 11, 16, 19, 33, 37, 43, 49, 58, 60, 68, 76, 88, 92, 99, 105, 120, 130, 131], "unsat_cor": [8, 102, 120], "cvc5_get_unsat_cor": [8, 11, 120], "lu": [8, 120], "cvc5_term_to_str": [8, 27, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 119, 120, 121, 122, 123, 124, 125, 126], "contributor": [8, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 142, 147, 150], "yoni": [8, 58, 60, 76, 99, 105, 120, 122, 124, 125, 126, 127], "zohar": [8, 58, 60, 76, 99, 105, 120, 122, 124, 125, 126, 127], "aina": [8, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 142, 147, 150], "niemetz": [8, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 142, 147, 150], "gereon": [8, 58, 60, 76, 99, 105, 120, 138, 150], "kremer": [8, 58, 60, 76, 99, 105, 120, 138, 150], "copyright": [8, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 131, 142, 147, 150], "2009": [8, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 131, 138, 142, 147, 150], "2024": [8, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 138, 142, 147, 150], "author": [8, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 142, 147, 150], "sourc": [8, 19, 37, 58, 60, 68, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 129, 130, 132, 142, 147, 150], "directori": [8, 9, 15, 19, 24, 25, 26, 28, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 136, 142, 147, 150], "institut": [8, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 142, 147, 150], "affili": [8, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 142, 147, 150], "reserv": [8, 58, 60, 76, 95, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 142, 147, 150], "licens": [8, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 142, 147, 150], "simpl": [8, 58, 60, 76, 97, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 131, 132, 133, 134, 136, 142, 147, 150], "demonstr": [8, 58, 60, 76, 99, 102, 105, 106, 107, 108, 109, 110, 112, 113, 115, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 142, 147, 150], "capabl": [8, 58, 60, 76, 99, 105, 107, 108, 109, 110, 113, 115, 117, 120, 121, 122, 123, 124, 125, 126, 127, 147], "iostream": [8, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 142, 147, 150], "namespac": [8, 50, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 142, 147, 150], "doc": [8, 9, 15, 19, 24, 25, 26, 28, 58, 60, 76, 99, 105, 120, 130], "termmanag": [8, 30, 31, 38, 40, 43, 44, 45, 46, 48, 50, 58, 59, 60, 62, 63, 71, 72, 76, 79, 80, 85, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 142, 147, 150], "henc": [8, 58, 60, 76, 99, 105, 120], "setopt": [8, 43, 58, 60, 76, 79, 99, 102, 105, 106, 108, 109, 112, 114, 115, 118, 120, 121, 122, 123, 124, 125, 126, 131, 142, 147], "setlog": [8, 11, 43, 58, 60, 76, 79, 99, 105, 106, 107, 108, 109, 113, 114, 115, 117, 120, 121, 122, 123, 124, 125, 126, 127, 142, 143, 144, 145, 146, 147, 150], "realsort": [8, 58, 60, 76, 89, 91, 92, 98, 99, 100, 105, 120], "intsort": [8, 58, 60, 76, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 103, 105, 109, 110, 120, 122, 123, 146], "jargon": [8, 58, 60, 76, 99, 105, 120], "5": [8, 58, 59, 60, 76, 89, 91, 92, 93, 95, 99, 100, 102, 103, 105, 109, 112, 114, 120, 130, 131, 132, 139, 140, 141, 143], "our": [8, 58, 60, 76, 99, 105, 110, 120, 130, 147], "xplusi": [8, 58, 60, 76, 99, 105, 120], "assertformula": [8, 43, 58, 60, 76, 79, 99, 105, 107, 108, 109, 110, 113, 114, 115, 117, 120, 121, 127, 147, 150], "7": [8, 58, 60, 76, 91, 94, 95, 99, 102, 105, 113, 120, 125, 130, 138, 143, 144], "r1": [8, 58, 60, 76, 99, 103, 105, 120], "checksat": [8, 11, 41, 42, 43, 58, 60, 73, 76, 77, 79, 99, 105, 107, 108, 109, 110, 112, 114, 115, 117, 118, 120, 121, 127, 131, 139, 147, 150], "8": [8, 58, 60, 76, 89, 91, 95, 99, 105, 113, 115, 120, 130, 131], "cout": [8, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 142, 147, 150], "endl": [8, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 142, 147, 150], "xval": [8, 58, 60, 76, 99, 105, 120], "getvalu": [8, 43, 48, 58, 60, 76, 79, 99, 105, 106, 108, 109, 114, 115, 120, 121, 122, 123, 124, 142, 147], "yval": [8, 58, 60, 76, 99, 105, 120], "compound": [8, 58, 60, 76, 99, 105, 120], "xminusi": [8, 58, 60, 76, 99, 105, 120], "xminusyv": [8, 58, 60, 76, 99, 105, 120], "11": [8, 58, 60, 76, 95, 99, 105, 120, 126, 130, 131, 132, 133, 138], "xstr": [8, 58, 60, 76, 99, 105, 120], "getrealvalu": [8, 48, 58, 60, 76, 85, 99, 105, 120], "ystr": [8, 58, 60, 76, 99, 105, 120], "xminusystr": [8, 58, 60, 76, 99, 105, 120], "12": [8, 43, 49, 58, 60, 76, 99, 102, 105, 120], "xpair": [8, 58, 60, 76, 99, 105, 120], "getreal64valu": [8, 48, 58, 60, 76, 99, 105, 120], "ypair": [8, 58, 60, 76, 99, 105, 120], "xminusypair": [8, 58, 60, 76, 99, 105, 120], "13": [8, 58, 60, 76, 99, 105, 120, 136, 138], "xminusycomput": [8, 58, 60, 76, 99, 105, 120], "14": [8, 58, 60, 76, 99, 105, 115, 120], "resetassert": [8, 43, 58, 60, 76, 79, 99, 102, 105, 120], "15": [8, 58, 60, 76, 99, 105, 120], "16": [8, 27, 43, 48, 49, 58, 60, 76, 85, 91, 95, 99, 105, 115, 120, 130, 131], "r2": [8, 58, 60, 76, 99, 103, 105, 120], "17": [8, 58, 60, 76, 94, 99, 105, 120, 133, 138], "18": [8, 58, 60, 76, 99, 105, 120, 130, 138, 150], "unsatcor": [8, 58, 60, 76, 99, 105, 120], "getunsatcor": [8, 43, 58, 60, 76, 79, 99, 105, 120], "stdio": [8, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127], "stdlib": [8, 120, 125, 126], "inttyp": [8, 120], "int32_t": [8, 27, 48, 109, 120], "19": [8, 120, 138], "mudathir": [8, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 142, 147, 150], "moham": [8, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 142, 147, 150], "andr": [8, 58, 60, 76, 99, 105, 106, 109, 112, 113, 115, 120, 121, 122, 123, 124, 125, 126, 138, 142, 147, 150], "noetzli": [8, 58, 60, 76, 99, 105, 106, 109, 112, 113, 115, 120, 121, 122, 123, 124, 125, 126, 142, 147, 150], "import": [8, 58, 60, 76, 88, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 142, 147, 150], "io": [8, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 142, 147, 150], "math": [8, 58, 60, 76, 99, 105, 108, 120, 140], "biginteg": [8, 58, 59, 60, 76, 99, 105, 120], "util": [8, 58, 59, 60, 76, 97, 99, 105, 107, 108, 109, 110, 114, 120, 125, 126, 127, 131], "arraylist": [8, 58, 60, 76, 99, 105, 108, 120, 125, 126], "public": [8, 9, 10, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 51, 53, 55, 57, 58, 60, 72, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 131, 141, 142, 147, 150], "void": [8, 9, 10, 11, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 27, 29, 32, 33, 36, 37, 40, 43, 44, 49, 57, 58, 60, 72, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 142, 147, 150], "throw": [8, 45, 57, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 113, 114, 115, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 142, 147, 150], "cvc5apiexcept": [8, 50, 57, 58, 59, 60, 76, 99, 105, 106, 107, 108, 109, 110, 113, 114, 115, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 142, 147, 150], "system": [8, 58, 60, 76, 99, 102, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 131, 139, 142, 147, 150], "println": [8, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 142, 147, 150], "aslist": [8, 58, 60, 76, 99, 105, 120], "deletepoint": [8, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 120, 121, 122, 123, 124, 125, 126, 127, 142, 147, 150], "pgm": [8, 58, 60, 76, 105, 112], "example_quickstart": [8, 58, 60, 76, 105], "py": [8, 58, 60, 69, 76, 79, 86, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 142, 147, 150], "__name__": [8, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 142, 147, 150], "__main__": [8, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 142, 147, 150], "confirm": [8, 58, 60, 76, 99, 105, 120], "assign": [8, 11, 30, 31, 43, 45, 48, 58, 60, 76, 79, 92, 99, 102, 105, 107, 110, 120, 131], "decim": [8, 27, 43, 48, 49, 58, 60, 76, 79, 85, 86, 89, 99, 105, 120, 131], "as_decim": [8, 58, 60, 76, 89, 99, 105, 120], "fraction": [8, 58, 60, 76, 79, 85, 86, 89, 99, 105, 120], "as_fract": [8, 58, 60, 76, 89, 99, 105, 120], "report": [8, 58, 60, 76, 99, 105, 106, 117, 120, 122, 123, 124, 131, 138, 142, 147, 150], "solut": [8, 11, 26, 43, 47, 58, 60, 76, 79, 84, 89, 91, 92, 93, 94, 99, 102, 105, 114, 120, 125, 126, 131, 132], "usr": [8, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 142, 147, 150], "bin": [8, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 130, 132, 133, 134, 136, 141, 142, 147, 150], "env": [8, 58, 60, 76, 99, 105, 106, 107, 108, 109, 110, 112, 113, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 142, 147, 150], "alex": [8, 58, 60, 76, 99, 105, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 120, 121, 123, 124, 125, 126, 138, 147, 150], "ozdemir": [8, 58, 60, 76, 99, 105, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 120, 121, 123, 124, 125, 126, 138, 147, 150], "adapt": [8, 58, 60, 76, 99, 105, 107, 116, 120], "xpy": [8, 58, 60, 76, 99, 105, 120], "ypy": [8, 58, 60, 76, 99, 105, 120], "xminusypi": [8, 58, 60, 76, 99, 105, 120], "smtlib": [8, 58, 60, 76, 99, 102, 105, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 120, 121, 122, 123, 124, 125, 126, 127, 130, 142, 143, 145, 147, 150], "smt2": [8, 25, 46, 58, 60, 76, 83, 97, 99, 105, 106, 107, 108, 109, 110, 113, 114, 115, 116, 117, 118, 120, 121, 122, 123, 124, 127, 132, 133, 134, 136, 141, 142, 143, 147, 150], "echo": [8, 58, 60, 76, 99, 105, 107, 109, 113, 115, 117, 120, 123, 147], "struct": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 32, 33, 34, 36, 38, 39, 41, 44, 48, 51, 53, 55], "encapsul": [9, 10, 12, 13, 15, 16, 18, 21, 22, 26, 29, 30, 32, 33, 36, 38, 39, 40, 41, 42, 47, 61, 62, 64, 65, 67, 71, 72, 73, 77, 84], "cvc5_get_option_info": [9, 11, 28], "info": [9, 11, 39, 43, 79, 144, 145, 146], "cvc5_option_info_void": 9, "cvc5_option_info_bool": 9, "cvc5_option_info_str": 9, "cvc5_option_info_int64": 9, "int64": [9, 27, 48], "cvc5_option_info_uint64": 9, "uint64": [9, 27, 48], "cvc5_option_info_doubl": 9, "cvc5_option_info_mod": 9, "alias": [9, 39, 102, 131], "concern": [9, 39], "inspect": [9, 24, 27, 39, 45, 48, 85, 131, 141], "cvc5_get_opt": [9, 11, 28], "nativ": [9, 27, 39, 48, 85, 130], "boolinfo": 9, "stringinfo": 9, "intinfo": 9, "uintinfo": 9, "doubleinfo": 9, "modeinfo": [9, 39], "valuesof": 9, "num_alias": 9, "is_set_by_us": 9, "is_expert": 9, "expert": [9, 39, 131], "is_regular": 9, "d_cpp_info": 9, "dflt": 9, "cur": 9, "has_min": 9, "has_max": 9, "num_mod": 9, "doxygengroup": [9, 15, 19, 24, 25, 26, 28], "c_cvc5optioninfo": 9, "doxygen": [9, 15, 19, 24, 25, 26, 28, 130], "xml": [9, 15, 19, 24, 25, 26, 28], "cvc5_c": [9, 15, 19, 24, 25, 26, 28], "home": [9, 15, 19, 24, 25, 26, 28], "runner": [9, 15, 19, 24, 25, 26, 28], "work": [9, 11, 15, 19, 24, 25, 26, 28, 88, 130, 131, 139], "build": [9, 15, 19, 24, 25, 26, 28, 88, 89, 90, 91, 92, 93, 94, 95, 108, 110, 115, 131, 141], "plugin": [10, 11, 43, 50, 75, 79, 131, 133], "cvc5_add_plugin": [10, 11], "period": [10, 40, 72, 131], "roughli": [10, 40, 72], "decis": [10, 40, 72, 132, 138, 139, 143, 145, 150], "pointer": [10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 27, 30, 31, 48, 92, 98], "param": [10, 23, 43, 44, 49, 79, 80, 86, 125, 126], "notify_sat_claus": 10, "notifi": [10, 40, 72, 131], "notify_theory_lemma": 10, "sent": [10, 40, 72, 131, 141], "get_nam": 10, "debug": [10, 40, 72, 131, 132], "d_check_stat": 10, "pass": [10, 43, 45, 49, 79, 86, 93, 102, 112, 131, 134, 136, 139], "d_notify_sat_clause_st": 10, "d_notify_theory_lemma_st": 10, "ti": [11, 28, 43, 49, 79, 86, 95, 140, 143], "cvc5_get_tm": 11, "cvc5_declare_dt": [11, 110], "ctor": [11, 16, 31, 33, 43, 65, 79, 110], "datatype_decl": [11, 43, 79], "cvc5_declare_fun": 11, "fun": [11, 18, 36, 43, 46, 49, 67, 79, 83, 86, 109, 114, 118, 119, 121, 125, 126, 127, 131, 132, 146, 147, 150], "cvc5_declare_sort": 11, "cvc5_mk_uninterpreted_sort": [11, 23, 109, 121, 127], "cvc5_mk_uninterpreted_sort_constructor_sort": [11, 23], "cvc5_define_fun": [11, 126], "global": [11, 43, 79, 89, 91, 92, 94, 95, 103, 130, 131, 132, 141], "function_def": [11, 43, 79], "persist": [11, 43, 79, 131], "pop": [11, 43, 79, 102, 107, 115, 117], "cvc5_define_fun_rec": 11, "recurs": [11, 43, 49, 79, 86, 93, 131, 143], "cvc5_define_fun_rec_from_const": 11, "cvc5_define_funs_rec": 11, "nfun": 11, "nvar": [11, 131], "function_decl": [11, 43, 79], "cvc5_simplifi": [11, 27, 110], "apply_sub": 11, "much": [11, 45], "engin": [11, 129, 131], "simplif": [11, 131, 132, 140], "cvc5_check_sat_assum": [11, 22, 106, 107, 109, 113, 116, 117, 122, 123, 124], "prop_liter": [11, 43, 79], "cvc5_get_assert": 11, "cvc5_get_info": 11, "flag": [11, 43, 45, 79, 130, 133, 135, 136, 144], "info_flag": [11, 43, 79], "cvc5_get_option_nam": 11, "cvc5_get_unsat_assumpt": 11, "fail": [11, 43, 57, 79, 89, 90, 92, 102, 130, 131], "unnam": [11, 43, 79], "cvc5_get_unsat_core_lemma": 11, "cvc5_get_difficulti": 11, "difficulti": [11, 43, 79, 131], "estim": [11, 43, 79], "difficult": [11, 43, 79], "unment": [11, 43, 79], "cvc5_get_timeout_cor": 11, "timeout": [11, 43, 56, 79, 87, 131, 139], "preceed": [11, 43], "cvc5_get_timeout_core_assum": 11, "rsize": 11, "togeth": [11, 43, 134], "cvc5_get_proof": [11, 21], "recent": [11, 43, 79, 130], "cvc5_get_learned_liter": 11, "literalsjto": 11, "were": [11, 43, 49, 79, 93, 125, 126, 134, 136, 147], "cvc5_get_model_domain_el": 11, "question": [11, 43, 79], "cvc5_is_model_core_symbol": 11, "v": [11, 27, 43, 48, 59, 79, 85, 89, 90, 91, 94, 95, 98, 107, 131], "essenti": [11, 43, 79, 92], "show": [11, 43, 45, 79, 82, 102, 109, 111, 115, 116, 117, 118, 119, 127, 130, 131], "last": [11, 30, 31, 43, 48, 79, 88, 102, 130, 131], "cvc5_get_model": 11, "nsort": [11, 110], "nconst": 11, "ismodelcoresymbol": [11, 43, 79], "cvc5_get_quantifier_elimin": 11, "qe": [11, 43, 79, 131], "lra": [11, 43, 79], "lia": [11, 43, 79, 123, 125, 126, 131, 147], "bar": [11, 43, 79, 102, 119], "y_j": [11, 43, 79], "x_k": [11, 43, 79], "phi": [11, 43, 79, 121], "cvc5_get_quantifier_elimination_disjunct": 11, "q_n": [11, 43, 79], "q_1": [11, 43, 79], "q_i": [11, 43, 79], "q_": [11, 43, 79], "q_j": [11, 43, 79], "eventu": [11, 43, 79], "cvc5_declare_sep_heap": 11, "loc": [11, 145], "invok": [11, 12, 19, 25, 29, 37, 43, 46, 61, 68, 79, 83, 102, 104, 118, 119], "onc": [11, 23, 27, 43, 44, 48, 79, 80, 85, 130, 131, 145], "cvc5_get_value_sep_heap": 11, "cvc5_get_value_sep_nil": 11, "cvc5_declare_pool": 11, "init_valu": 11, "instruct": [11, 43, 88, 130, 139], "cvc5_declare_oracle_fun": 11, "oracl": [11, 43, 131], "ordinari": [11, 43, 131], "implicitli": [11, 43], "sym": [11, 43, 131], "callback": [11, 43, 79], "throughout": [11, 43, 79, 108], "lifetim": [11, 43, 79, 139], "cvc5_get_interpol": 11, "conj": [11, 43, 79, 131], "interpol": [11, 43, 79, 131], "exit": [11, 79, 112, 131, 134], "conjectur": [11, 43, 79, 125, 126, 131], "cvc5_get_interpolant_with_grammar": 11, "cvc5_get_interpolant_next": 11, "success": [11, 43, 79, 118, 131, 132, 134], "syntact": [11, 20, 27, 38, 43, 48, 79], "wrt": [11, 43, 79, 131], "cvc5_get_abduct": 11, "abduct": [11, 43, 79, 131], "cvc5_get_abduct_with_grammar": 11, "cvc5_get_abduct_next": 11, "getabduct": [11, 43, 79], "preced": [11, 43, 79, 130], "invalid": [11, 43, 45, 79, 102, 112, 131, 139], "cvc5_block_model_valu": 11, "cvc5_get_instanti": 11, "modul": [11, 43, 79, 125, 126, 130], "cvc5_push": [11, 107, 115, 117], "nscope": [11, 43, 79], "push": [11, 43, 79, 102, 107, 115, 117, 131], "stack": [11, 43, 79], "cvc5_pop": [11, 107, 115, 117], "cvc5_set_info": 11, "cvc5_is_logic_set": [11, 19], "cvc5_get_log": 11, "cvc5_declare_sygus_var": [11, 125], "append": [11, 37, 43, 68, 79, 102, 108, 125, 126, 131, 147, 150], "v2": [11, 25, 43, 46, 79, 83, 104, 105, 109], "cvc5_mk_grammar": [11, 18, 125], "nbound_var": 11, "bound_var": [11, 43, 79], "nsymbol": 11, "termin": [11, 18, 36, 43, 67, 79, 125, 130, 131, 139], "matter": [11, 43, 79], "synth": [11, 18, 26, 36, 43, 47, 67, 79, 84, 125, 126, 131, 132], "cvc5_synth_fun": [11, 125, 126], "boundvar": [11, 43, 79], "cvc5_synth_fun_with_grammar": [11, 125], "cvc5_add_sygus_constraint": [11, 125], "forumla": [11, 43], "cvc5_get_sygus_constraint": 11, "cvc5_add_sygus_assum": 11, "cvc5_get_sygus_assumpt": 11, "cvc5_add_sygus_inv_constraint": [11, 126], "tran": [11, 43, 53, 74, 79, 126, 133, 134, 136, 138], "invari": [11, 43, 79, 111, 131], "cvc5_check_synth": [11, 26, 125, 126], "try": [11, 43, 79, 89, 90, 91, 92, 94, 95, 102, 103, 112, 115, 131], "getsynthsolut": [11, 43, 79, 125, 126], "cvc5_check_synth_next": [11, 26], "cvc5_get_synth_solut": [11, 125, 126], "answer": [11, 43, 79, 121, 131, 132, 147], "cvc5_find_synth": 11, "cvc5_find_synth_with_grammar": 11, "cvc5_find_synth_next": 11, "cvc5_get_statist": 11, "snapshot": [11, 43, 45, 49, 79, 86, 141], "statist": [11, 24, 43, 49, 50, 59, 75, 79, 86, 102, 129, 131, 139], "decoupl": [11, 43, 49, 79, 86, 141], "again": [11, 43, 49, 79, 86, 131, 139, 141], "cvc5_print_stats_saf": 11, "fd": [11, 43, 49], "descriptor": [11, 43, 49], "suitabl": [11, 43, 49], "usag": [11, 43, 49, 116, 131, 139], "signal": [11, 43, 49, 131], "handler": [11, 43, 49], "cvc5_is_output_on": 11, "tag": [11, 30, 31, 43, 48, 93, 129, 131], "stream": [11, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 42, 43, 44, 47, 48, 51, 52, 53, 54, 55, 56, 57, 68, 93, 125, 126, 131, 143], "o": [11, 39, 43, 45, 57, 131, 132, 138], "line": [11, 43, 57, 104, 130, 131, 141, 150], "cvc5_get_output": 11, "cvc5_close_output": 11, "stdout": [11, 118, 119, 125, 126, 131], "cvc5_get_vers": 11, "cvc5_proof_to_str": 11, "aspect": [11, 43, 79, 132], "taken": [11, 43, 79], "usual": [11, 20, 38, 43, 71, 79, 85, 104, 130, 139], "getproof": [11, 41, 43, 73, 79], "proofformat": [11, 43, 50, 52, 59, 70, 75], "proofcompon": [11, 43, 50, 52, 59, 70, 75], "assertions_nam": 11, "assertions_s": 11, "cvc5_cmd_t": 12, "cvc5_cmd_invok": [12, 25, 118, 119], "cmd": [12, 36, 43, 44, 48, 118, 119], "sm": [12, 29, 37, 61, 118, 119], "cvc5_cmd_to_str": [12, 118, 119], "cvc5_cmd_get_nam": 12, "cvc5_sort_get_datatyp": [13, 23, 110], "cvc5_mk_dt_decl": [13, 16, 110], "cvc5_dt_t": 13, "cvc5_dt_copi": 13, "dt": [13, 30, 131, 143, 147], "increas": [13, 14, 16, 17, 18, 20, 21, 22, 23, 27, 131], "cvc5_dt_releas": 13, "own": [13, 14, 16, 17, 18, 20, 21, 22, 23, 27, 131], "calle": [13, 14, 16, 17, 18, 20, 21, 22, 23, 27], "cvc5_dt_is_equ": 13, "structur": [13, 14, 16, 17, 23, 44, 92, 131], "cvc5_dt_get_constructor": [13, 14, 110], "idx": [13, 28, 30, 90, 92, 93, 98, 102, 107, 113, 115], "cvc5_dt_get_constructor_by_nam": [13, 110], "through": [13, 14, 30, 31, 62, 63, 107, 108, 109, 110, 113, 115, 117, 121, 122, 123, 124, 125, 126, 130, 138, 147], "cvc5_dt_get_selector": 13, "cvc5_dt_get_nam": 13, "cvc5_dt_get_num_constructor": [13, 110], "cvc5_dt_get_paramet": 13, "parametr": [13, 14, 16, 23, 30, 31, 33, 43, 44, 49, 62, 63, 65, 80, 131], "cvc5_dt_is_parametr": 13, "cvc5_dt_is_codatatyp": 13, "co": [13, 30, 62, 131, 138, 143, 150], "cvc5_dt_is_tupl": 13, "cvc5_dt_is_record": 13, "record": [13, 23, 30, 43, 44, 49, 62, 79, 80, 86, 134, 136, 143], "cvc5_dt_is_finit": 13, "cvc5_dt_is_well_found": 13, "codatatyp": [13, 30, 43, 49, 62, 79, 86, 131], "cvc5_dt_to_str": 13, "cvc5_dt_hash": 13, "cvc5_mk_dt_cons_decl": [14, 15, 110], "cvc5_dt_cons_t": 14, "cvc5_dt_cons_copi": 14, "cvc5_dt_cons_releas": 14, "cvc5_dt_cons_is_equ": 14, "cvc5_dt_cons_get_nam": 14, "cvc5_dt_cons_get_term": [14, 110], "cvc5_sort_is_dt_constructor": [14, 23], "cvc5_dt_cons_get_instantiated_term": 14, "cast": [14, 31, 63, 89, 91, 92, 94, 95, 103, 143], "par": [14, 31, 63, 110, 143], "head": [14, 31, 63, 110, 143], "tail": [14, 31, 63, 93, 110, 143], "qualifi": [14, 31, 63], "desir": [14, 31, 63, 130], "cvc5_dt_cons_get_tester_term": [14, 110], "cvc5_dt_cons_get_num_selector": [14, 110], "cvc5_dt_cons_get_selector": [14, 17, 110], "cvc5_dt_cons_get_selector_by_nam": [14, 110], "cvc5_dt_cons_to_str": [14, 110], "cvc5_dt_cons_hash": 14, "cvc5_mk_dt_sort": [15, 16, 110], "cvc5_dt_cons_decl_t": 15, "c_cvc5dtconsdecl": 15, "cvc5_dt_decl_t": 16, "coincid": [16, 18, 33, 36, 65, 67], "cvc5_mk_datatype_sort": 16, "cvc5_dt_decl_copi": 16, "decl": [16, 32, 33, 92, 102, 110, 131], "declarationwith": 16, "cvc5_dt_decl_releas": 16, "cvc5_dt_decl_is_equ": 16, "cvc5_dt_decl_add_constructor": [16, 110], "cvc5_dt_decl_get_num_constructor": 16, "cvc5_dt_decl_is_parametr": 16, "cvc5_dt_decl_is_resolv": 16, "resolv": [16, 32, 33, 64, 110], "cvc5_dt_decl_to_str": [16, 110], "cvc5_dt_decl_get_nam": 16, "cvc5_dt_decl_hash": 16, "cvc5_dt_cons_decl_add_selector": [17, 110], "cvc5_dt_cons_decl_add_selector_self": [17, 110], "cvc5_dt_cons_decl_add_selector_unresolv": 17, "cvc5_dt_sel_t": 17, "cvc5_dt_sel_copi": 17, "cvc5_dt_sel_releas": 17, "cvc5_dt_sel_is_equ": 17, "cvc5_dt_sel_get_nam": 17, "cvc5_dt_sel_get_term": [17, 110], "cvc5_sort_is_dt_selector": [17, 23], "cvc5_dt_sel_get_updater_term": [17, 110], "cvc5_sort_is_dt_updat": [17, 23], "cvc5_dt_sel_get_codomain_sort": 17, "cvc5_dt_sel_to_str": [17, 110], "cvc5_dt_sel_hash": 17, "IF": [18, 36, 67, 104], "cvc5_grammar_t": 18, "grammardef": [18, 36, 67], "cvc5_grammar_add_rul": [18, 125], "cvc5_grammar_add_any_const": 18, "cvc5_grammar_add_any_vari": 18, "cvc5_grammar_to_str": 18, "cvc5_grammar_is_equ": 18, "referenti": [18, 21, 36, 41], "cvc5_grammar_is_disequ": 18, "cvc5_grammar_hash": 18, "cvc5_grammar_copi": 18, "cvc5_grammar_releas": 18, "cvc5_parser_set_file_input": 19, "cvc5_parser_set_str_input": [19, 118, 119], "cvc5_parser_set_inc_str_input": 19, "cvc5_parser_append_inc_str_input": 19, "cvc5_parser_next_command": [19, 118, 119], "cvc5_parser_next_term": [19, 119], "pars": [19, 37, 57, 68, 97, 118, 119, 131, 132], "interact": [19, 37, 68, 93, 131], "background": [19, 37, 68], "compat": [19, 37, 43, 49, 68, 79, 86, 88, 101, 130], "That": [19, 37, 68, 147, 150], "cvc5_sm_is_logic_set": 19, "upon": [19, 37, 68, 131, 132, 134], "c_cvc5inputpars": 19, "cvc5_mk_op": [20, 28, 107, 113, 115], "cvc5_mk_op_from_str": [20, 28], "cvc5_mk_term_from_op": [20, 107, 113, 115], "cvc5_op_t": 20, "cvc5_op_copi": 20, "cvc5_op_releas": 20, "cvc5_op_is_equ": 20, "cvc5_op_is_disequ": 20, "cvc5_op_get_kind": 20, "cvc5_op_is_index": 20, "cvc5_op_get_num_indic": 20, "cvc5_op_get_index": 20, "cvc5_op_to_str": 20, "cvc5_op_hash": 20, "cvc5_proof_t": 21, "cvc5_proof_get_rul": 21, "cvc5_proof_get_rewrite_rul": 21, "cvc5_proof_get_result": 21, "cvc5_proof_get_children": 21, "cvc5_proof_get_argu": 21, "cvc5_proof_is_equ": 21, "cvc5_proof_is_disequ": 21, "cvc5_proof_hash": 21, "cvc5_proof_copi": 21, "cvc5_proof_releas": 21, "cvc5_result_get_unknown_explan": 22, "cvc5_result_t": 22, "three": [22, 42, 43, 48, 49, 77, 79, 86, 93, 95, 106, 107, 117, 123, 130, 140, 142, 147], "cvc5_result_copi": 22, "cvc5_result_is_nul": 22, "friend": [22, 29, 30, 31, 32, 33, 34, 36, 37, 41, 42, 43, 44, 45, 46, 48, 77], "cvc5_check_sat_ssum": 22, "abl": [22, 42, 77, 147], "un": [22, 42, 77], "cvc5_result_is_equ": 22, "cvc5_result_is_disequ": 22, "overload": [22, 36, 41, 42, 47, 59, 97], "cvc5_result_hash": 22, "cvc5_sort_hash": 23, "cvc5_sort_to_str": [23, 107, 110, 125, 126], "factori": [23, 27, 44, 48, 80, 85], "cvc5_get_boolean_sort": [23, 109, 116, 125, 126, 127], "cvc5_mk_bv_sort": [23, 107, 108, 113], "cvc5_mk_bag_sort": [23, 106], "cvc5_mk_set_sort": [23, 121, 123], "cvc5_sort_t": 23, "cvc5_sort_copi": 23, "cvc5_sort_releas": 23, "cvc5_sort_is_equ": 23, "cvc5_sort_is_disequ": 23, "cvc5_sort_compar": 23, "cvc5_sort_get_kind": 23, "cvc5_sort_has_symbol": 23, "cvc5_sort_get_symbol": 23, "cvc5_mk_unresolved_sort": 23, "raw": [23, 27, 44, 48, 80, 85, 131], "cvc5_sort_is_boolean": 23, "cvc5_sort_is_integ": 23, "cvc5_sort_is_r": 23, "cvc5_sort_is_str": 23, "cvc5_sort_is_regexp": 23, "cvc5_sort_is_rm": 23, "cvc5_sort_is_bv": 23, "bitvec": [23, 44, 80, 91, 107, 108, 112, 113, 140], "cvc5_sort_is_fp": 23, "floatingpoint": [23, 44, 80, 95], "eb": [23, 44, 80], "sb": [23, 44, 80], "cvc5_sort_is_dt": 23, "cvc5_sort_is_dt_test": 23, "cvc5_sort_is_fun": [23, 125, 126], "cvc5_sort_is_pred": 23, "cvc5_sort_is_tupl": 23, "cvc5_sort_is_nul": 23, "cvc5_sort_is_record": 23, "cvc5_sort_is_arrai": 23, "cvc5_sort_is_ff": 23, "cvc5_sort_is_set": 23, "cvc5_sort_is_bag": 23, "cvc5_sort_is_sequ": 23, "cvc5_sort_is_abstract": 23, "cvc5_sort_is_uninterpreted_sort": 23, "cvc5_sort_is_uninterpreted_sort_constructor": 23, "cvc5_sort_is_instanti": 23, "cvc5_sort_instanti": [23, 110], "cvc5_sort_get_uninterpreted_sort_constructor": 23, "underli": [23, 44, 68, 80, 92, 93, 98], "cvc5_mk_param_sort": [23, 110], "cvc5_sort_get_instantiated_paramet": 23, "cvc5_sort_substitut": 23, "travers": [23, 27, 44, 48, 80, 85], "run": [23, 27, 44, 48, 59, 80, 85, 88, 130, 131, 132, 139], "subsort": [23, 44, 80, 89, 91, 92], "cvc5_sort_substitute_sort": 23, "simultan": [23, 27, 44, 48, 85], "earliest": [23, 27, 44, 48, 80, 85], "prioriti": [23, 27, 44, 48, 80, 85, 131], "cvc5_sort_dt_constructor_get_ar": 23, "cvc5_sort_dt_constructor_get_domain": 23, "cvc5_sort_dt_constructor_get_codomain": 23, "cvc5_sort_dt_selector_get_domain": 23, "cvc5_sort_dt_selector_get_codomain": 23, "cvc5_sort_dt_tester_get_domain": 23, "cvc5_sort_dt_tester_get_codomain": 23, "dort": 23, "mainli": [23, 44], "doesn": [23, 44, 130], "access": [23, 27, 35, 39, 43, 44, 45, 48, 85, 93, 131, 146], "cvc5_sort_fun_get_ar": 23, "arity": 23, "cvc5_sort_fun_get_domain": 23, "cvc5_sort_fun_get_codomain": [23, 125, 126], "cvc5_sort_array_get_index_sort": 23, "cvc5_sort_array_get_element_sort": 23, "cvc5_sort_set_get_element_sort": 23, "cvc5_sort_bag_get_element_sort": 23, "cvc5_sort_sequence_get_element_sort": 23, "cvc5_sort_abstract_get_kind": 23, "cvc5_sort_uninterpreted_sort_constructor_get_ar": 23, "cvc5_sort_bv_get_s": 23, "cvc5_sort_ff_get_s": 23, "cvc5_sort_fp_get_exp_s": 23, "cvc5_sort_fp_get_sig_s": 23, "cvc5_sort_dt_get_ar": 23, "cvc5_sort_tuple_get_length": 23, "cvc5_sort_tuple_get_element_sort": 23, "cvc5_sort_nullable_get_element_sort": 23, "histogram": [24, 45, 141], "cvc5_stat_is_": 24, "cvc5_stat_get_": 24, "paar": 24, "frequenc": [24, 45, 131], "iter": [24, 30, 31, 45, 48, 59, 62, 63, 82, 85, 109, 110, 127, 141], "cvc5_stats_iter_init": 24, "visbl": 24, "unchang": [24, 45, 82, 131], "cvc5_stats_iter_has_next": 24, "cvc5_stats_iter_next": 24, "cvc5_stat_t": 24, "cvc5_stat_is_intern": 24, "stat": [24, 45, 50, 59, 82, 102, 131, 141], "cvc5_stat_is_default": 24, "cvc5_stat_is_int": 24, "cvc5_stat_get_int": 24, "cvc5_stat_is_doubl": 24, "cvc5_stat_get_doubl": 24, "cvc5_stat_is_str": 24, "cvc5_stat_get_str": 24, "cvc5_stat_is_histogram": 24, "cvc5_stat_get_histogram": 24, "cvc5_stat_to_str": 24, "cvc5_stats_t": 24, "c_cvc5statist": 24, "meta": [25, 46, 83, 136], "modifi": [25, 46, 83, 130, 139], "preload": [25, 46, 83], "publicli": [25, 46, 83], "c_cvc5symbolmanag": 25, "cvc5_synth_result_t": 26, "c_cvc5synthresult": 26, "cvc5_term_is_": 27, "_valu": 27, "cvc5_term_get_": 27, "best": [27, 48, 85, 131], "tyep": 27, "cvc5_term_hash": 27, "cvc5_mk_": 27, "cvc5_term_t": 27, "cvc5_term_copi": 27, "cvc5_term_is_equ": 27, "cvc5_term_is_disequ": 27, "cvc5_term_compar": 27, "cvc5_term_get_num_children": [27, 109, 125, 126], "cvc5_term_get_child": [27, 109, 125, 126], "cvc5_term_get_id": 27, "cvc5_term_get_kind": [27, 125, 126], "cvc5_term_get_sort": [27, 107, 110, 125, 126], "cvc5_term_substitute_term": 27, "cvc5_term_has_op": 27, "cvc5_term_get_op": 27, "cvc5_term_has_symbol": 27, "cvc5_term_get_symbol": 27, "cvc5_mk_var": [27, 121, 125, 126], "cvc5_term_get_real_or_integer_value_sign": 27, "cvc5_term_is_int32_valu": 27, "int32": [27, 48], "fit": [27, 43, 48, 49], "cvc5_term_get_int32_valu": 27, "cvc5_term_is_uint32_valu": 27, "uint32": [27, 48], "cvc5_term_get_uint32_valu": 27, "cvc5_term_is_int64_valu": 27, "cvc5_term_get_int64_valu": 27, "cvc5_term_is_uint64_valu": 27, "cvc5_term_get_uint64_valu": 27, "cvc5_term_is_integer_valu": 27, "cvc5_term_get_integer_valu": 27, "cvc5_term_is_string_valu": 27, "wchar_t": 27, "cvc5_term_get_string_valu": 27, "confus": [27, 48, 85], "whatev": [27, 48, 85], "cvc5_term_is_real32_valu": 27, "denomin": [27, 43, 48, 49, 79, 86, 89], "32": [27, 48, 91, 95, 107, 108, 113, 115, 148], "cvc5_term_get_real32_valu": 27, "num": [27, 43, 49, 102, 131, 132], "den": [27, 43, 49], "cvc5_term_is_real64_valu": 27, "64": [27, 48, 91, 95, 130, 138, 141], "cvc5_term_is_real_valu": 27, "cvc5_term_is_const_arrai": 27, "cvc5_term_get_const_array_bas": 27, "isconstarrai": [27, 48, 85], "cvc5_term_is_boolean_valu": 27, "cvc5_term_get_boolean_valu": 27, "cvc5_term_is_bv_valu": 27, "cvc5_term_get_bv_valu": 27, "hexadecim": [27, 43, 48, 49], "cvc5_term_is_ff_valu": 27, "cvc5_term_get_ff_valu": 27, "smallest": [27, 48, 85, 115], "cvc5_term_is_uninterpreted_sort_valu": 27, "cvc5_term_get_uninterpreted_sort_valu": 27, "cvc5_term_is_tuple_valu": 27, "cvc5_term_get_tuple_valu": 27, "cvc5_term_is_rm_valu": 27, "cvc5_term_get_rm_valu": 27, "cvc5_term_is_rounding_mode_valu": 27, "cvc5_term_is_fp_pos_zero": 27, "cvc5_term_is_fp_neg_zero": 27, "cvc5_term_is_fp_pos_inf": 27, "cvc5_term_is_fp_neg_inf": 27, "cvc5_term_is_fp_nan": 27, "cvc5_term_is_fp_valu": 27, "cvc5_term_get_fp_valu": 27, "ew": 27, "sw": 27, "val": [27, 43, 49, 79, 86, 89, 91, 92, 93, 94, 95, 103, 115], "cvc5_term_is_set_valu": 27, "cvc5_term_get_set_valu": 27, "cvc5_term_is_sequence_valu": 27, "const_sequ": [27, 48, 51, 69], "themselv": [27, 48], "seq_concat": [27, 48, 51, 69, 122, 146], "seq_unit": [27, 48, 51, 69, 122, 146], "const_sequence_": [27, 48], "latter": [27, 48, 62, 63, 130, 133], "cvc5_term_get_sequence_valu": 27, "cvc5_term_is_cardinality_constraint": 27, "cvc5_term_get_cardinality_constraint": 27, "cvc5_term_is_real_algebraic_numb": 27, "algebra": [27, 48, 85, 131], "cvc5_term_get_real_algebraic_number_defining_polynomi": 27, "cvc5_term_get_real_algebraic_number_lower_bound": 27, "cvc5_term_get_real_algebraic_number_upper_bound": 27, "cvc5_term_is_skolem": 27, "cvc5skolemid": 27, "cvc5_term_get_skolem_id": 27, "isskolem": [27, 48, 85], "cvc5_term_get_skolem_indic": 27, "c_cvc5termmanag": 28, "c_sort_creat": 28, "simpli": [28, 43, 49, 92], "ckind": 28, "c_term_creat": 28, "c_dt_decl_creat": 28, "c_dt_cons_decl_cr": 28, "symbolmanag": [29, 37, 50, 59, 68, 75, 118, 119], "ostream": [29, 30, 31, 32, 33, 34, 35, 36, 38, 39, 42, 43, 44, 45, 47, 48, 51, 52, 53, 54, 55, 56, 57], "tostr": [29, 30, 31, 32, 33, 34, 36, 38, 39, 42, 44, 45, 47, 48, 61, 112, 125, 126], "getcommandnam": [29, 61], "isnul": [29, 30, 31, 32, 33, 34, 36, 38, 41, 42, 44, 47, 48, 61, 62, 63, 64, 65, 66, 67, 71, 77, 80, 84, 85, 118, 119], "commandexecutor": [29, 43, 46], "interactiveshel": [29, 37, 46], "executioncontext": 29, "getdatatyp": [30, 44, 62, 80, 110, 143, 147], "mkdatatypedecl": [30, 33, 43, 49, 62, 65, 79, 86, 110], "destructor": [30, 31, 32, 33, 34, 36, 38, 43, 44, 45, 46, 48, 49, 131, 143], "getconstructor": [30, 31, 62, 63, 110], "getselector": [30, 31, 34, 62, 63, 66, 110, 143, 147], "getnam": [30, 31, 33, 34, 40, 62, 63, 65, 66, 72], "getnumconstructor": [30, 33, 62, 65], "getparamet": [30, 62], "isparametr": [30, 33, 62, 65], "iscodatatyp": [30, 43, 49, 62, 79, 86, 93], "istupl": [30, 44, 62, 80], "isrecord": [30, 44, 62, 80], "isfinit": [30, 62], "iswellfound": [30, 62], "const_iter": [30, 31, 48, 50, 109, 110], "begin": [30, 31, 45, 48, 109, 110, 125, 126, 131], "iterator_categori": [30, 31, 48], "forward_iterator_tag": [30, 31, 48], "value_typ": [30, 31, 48], "item": [30, 31, 48], "difference_typ": [30, 31, 48], "ptrdiff_t": [30, 31, 48], "cython": [30, 31, 36, 41, 130], "postfix": [30, 31, 48], "derefer": [30, 31, 48], "dtype": 30, "serial": [30, 31, 32, 33, 34, 36, 38, 42, 44, 47, 48, 51, 52, 54, 55, 56], "datatypeconstructordecl": [31, 33, 34, 43, 49, 50, 59, 63, 66, 75, 110], "mkdatatypeconstructordecl": [31, 32, 43, 49, 63, 64, 79, 86, 110], "isdatatypeconstructor": [31, 44, 63, 80], "getinstantiatedterm": [31, 63], "retsort": [31, 63], "apply_test": [31, 51, 63, 69, 110, 143], "getnumselector": [31, 63], "far": [31, 33, 63, 65], "addselector": [32, 34, 64, 66, 110], "addselectorself": [32, 34, 64, 66, 110], "addselectorunresolv": [32, 34, 64, 66], "unresdataypenam": [32, 64], "unresolv": [32, 43, 49, 64, 79, 86], "ctordecl": 32, "addconstructor": [33, 65, 110], "isresolv": 33, "dtdecl": 33, "isdatatypeselector": [34, 44, 66, 80], "apply_selector": [34, 51, 66, 69, 110, 143, 147], "isdatatypeupdat": [34, 44, 66, 80], "apply_updat": [34, 51, 66, 69, 110, 143], "getcodomainsort": [34, 66], "stor": [34, 110], "few": [35, 59, 115, 131, 139], "frontend": [35, 39], "commun": [35, 43, 57], "getopt": [35, 39, 43, 79, 102, 131], "getoptioninfo": [35, 39, 43, 79, 102, 131], "err": [35, 131], "act": 35, "longer": [35, 57], "destroi": [35, 45, 102], "istream": [35, 37], "error": [35, 37, 57, 68, 112, 131], "mkgrammar": [36, 43, 67, 79, 125], "bookeep": 36, "grammarto": 36, "addrul": [36, 67, 125], "ntsymbol": [36, 43, 67, 79], "addanyconst": [36, 67], "addanyvari": [36, 67], "setfileinput": [37, 68], "setstreaminput": [37, 118, 119], "setstringinput": [37, 68, 118, 119], "setincrementalstringinput": [37, 68, 119], "appendincrementalstringinput": [37, 68, 119], "nextcommand": [37, 68, 118, 119], "nextexpress": [37, 68], "islogicset": [37, 43, 46, 68, 79, 83], "getsolv": [37, 68], "getsymbolmanag": [37, 68, 118], "inputlanguag": [37, 59, 68, 118, 119], "lang": [37, 68, 130, 131], "smt_lib_2_6": [37, 68, 118, 119], "messag": [37, 57, 68, 139], "feed": [37, 68], "Will": [37, 68], "forc": [37, 68, 131], "prior": [37, 68], "nextterm": [37, 68, 119], "bitvector_extract": [38, 43, 49, 51, 69, 71, 107, 113], "getkind": [38, 44, 48, 71, 80, 85, 125, 126], "isindex": [38, 71], "getnumindic": [38, 71], "templat": [38, 39, 41, 44, 48, 51, 53, 55, 131], "valueinfo": 39, "voidinfo": 39, "numberinfo": 39, "boolvalu": 39, "stringvalu": 39, "intvalu": 39, "uintvalu": 39, "doublevalu": 39, "getdriveropt": [39, 43], "optioninfovari": 39, "variant": [39, 93, 130], "setbyus": [39, 102], "isexpert": 39, "isregular": 39, "defaultvalu": 39, "currentvalu": 39, "typenam": [39, 48], "oi": 39, "addplugin": [40, 43, 72, 79], "virtual": [40, 57, 72, 130, 140], "notifysatclaus": [40, 72], "notifytheorylemma": [40, 72], "prooftostr": [41, 43, 79], "tree": [41, 73, 93, 121, 131, 143], "getrul": [41, 73], "getrewriterul": [41, 73], "getresult": [41, 73], "getchildren": [41, 73], "getargu": [41, 73], "might": [41, 73], "unknownexplan": [42, 50, 59, 75, 77], "getunknownexplan": [42, 77], "issat": [42, 58, 60, 76, 77, 106, 114, 115, 122, 123, 124, 127, 142, 147], "checksatassum": [42, 43, 77, 79, 106, 107, 108, 109, 112, 113, 116, 117, 122, 123, 124, 139, 142, 147], "isunsat": [42, 58, 60, 76, 77, 114, 115], "isunknown": [42, 47, 77, 84], "optioninfo": [43, 50, 59, 79], "deprec": [43, 46, 79, 89], "disallow": 43, "indexsort": [43, 49, 79, 86, 108], "elemsort": [43, 49, 79, 86], "sig": [43, 49, 79, 86, 90, 92, 95], "prime": [43, 49, 79, 86, 144], "dtypedecl": [43, 49, 79, 86], "mkparamsort": [43, 44, 49, 79, 80, 86, 110], "nullopt": [43, 49], "mkpredicatesort": [43, 49, 79, 86], "mkrecordsort": [43, 49, 79, 86, 143], "array_sort": [43, 49, 55, 79, 81, 86], "integer_sort": [43, 49, 55, 79, 81, 86], "string_sort": [43, 49, 55, 79, 81, 86, 103, 124], "abstract_sort": [43, 49, 55, 79, 81, 86], "mkunresolveddatatypesort": [43, 49, 79, 86], "placehold": [43, 49, 79, 86], "mutual": [43, 49, 79, 86, 93, 131, 143], "mkuninterpretedsortconstructorsort": [43, 44, 49, 79, 86], "mkuninterpretedsortconstructorersort": 43, "mktupl": [43, 49, 79, 86, 121, 143, 147], "mknullablesom": [43, 49, 79, 86], "mknullablev": [43, 49, 79, 86], "mknullableisnul": [43, 49, 79, 86], "mknullableissom": [43, 49, 79, 86], "mknullablenul": [43, 49, 79, 86], "nullable_lift": [43, 49, 51, 69, 79, 86], "remain": [43, 49, 79, 86, 130, 139, 141, 146], "bitvector_repeat": [43, 49, 51, 69], "bitvector_rotate_left": [43, 49, 51, 69], "bitvector_rotate_right": [43, 49, 51, 69], "bitvector_sign_extend": [43, 49, 51, 69], "bitvector_zero_extend": [43, 49, 51, 69], "floatingpoint_to_fp_from_fp": [43, 49, 51, 69], "floatingpoint_to_fp_from_ieee_bv": [43, 49, 51, 69], "floatingpoint_to_fp_from_r": [43, 49, 51, 69], "floatingpoint_to_fp_from_sbv": [43, 49, 51, 69], "floatingpoint_to_fp_from_ubv": [43, 49, 51, 69], "floatingpoint_to_sbv": [43, 49, 51, 69], "floatingpoint_to_ubv": [43, 49, 51, 69, 115], "int_to_bitvector": [43, 49, 51, 69], "tuple_project": [43, 49, 51, 69, 143], "123": [43, 49, 103], "34": [43, 49], "useescsequ": [43, 49, 79, 86], "u1234": [43, 49, 79, 86], "unicod": [43, 49, 79, 85, 86, 131, 148], "outsid": [43, 49, 131], "modulo": [43, 49, 91, 129, 131, 138, 144], "mkconstarrai": [43, 49, 79, 86, 108], "mkfloatingpointposinf": [43, 49, 79, 86, 115], "mkfloatingpointneginf": [43, 49, 79, 86], "mkfloatingpointnan": [43, 49, 79, 86, 115], "mkfloatingpointposzero": [43, 49, 79, 86, 115], "mkfloatingpointnegzero": [43, 49, 79, 86], "upperbound": [43, 49], "previou": [43, 49, 131], "applysub": [43, 79], "declaredatatyp": [43, 79, 110], "declarefun": [43, 79], "declaresort": [43, 79, 109, 127], "definefun": [43, 79, 126], "definefunrec": [43, 79], "definefunsrec": [43, 79], "getassert": [43, 79], "getinfo": [43, 79], "getoptionnam": [43, 79, 102, 131], "driveropt": [43, 50], "driver": [43, 141], "properli": [43, 102, 139], "getunsatassumpt": [43, 79], "getunsatcorelemma": [43, 79], "getdifficulti": [43, 79], "gettimeoutcor": [43, 79], "gettimeoutcoreassum": [43, 79], "assertionnam": [43, 79], "learnedlittyp": [43, 50, 52, 59, 70, 75], "getmodeldomainel": [43, 79], "getmodel": [43, 79, 112], "getquantifierelimin": [43, 79], "getquantifiereliminationdisjunct": [43, 79], "declaresepheap": [43, 79], "locsort": [43, 79], "datasort": [43, 79], "getvaluesepheap": [43, 79], "getvaluesepnil": [43, 79], "initvalu": [43, 79], "declareoraclefun": 43, "getinterpol": [43, 79], "getinterpolantnext": [43, 79], "getabductnext": [43, 79], "blockmodelsmod": [43, 50, 52, 59, 70, 75], "getinstanti": [43, 79], "setinfo": [43, 79], "getlog": [43, 46, 79, 83], "declaresygusvar": [43, 79, 125], "synthfun": [43, 79, 125, 126], "addsygusconstraint": [43, 79, 125], "getsygusconstraint": [43, 79], "addsygusassum": [43, 79], "getsygusassumpt": [43, 79], "addsygusinvconstraint": [43, 79, 126], "synthresult": [43, 50, 59, 75], "checksynth": [43, 47, 79, 84, 125, 126], "checksynthnext": [43, 47, 79, 84], "findsynthtarget": [43, 50, 52, 59, 70], "fst": [43, 79, 143], "findsynthnext": [43, 79], "getstatist": [43, 45, 49, 79, 86, 141], "printstatisticssaf": [43, 49], "isoutputon": 43, "getoutput": 43, "getvers": [43, 79], "gettermmanag": [43, 79, 110], "hassymbol": [44, 48, 80, 85], "getsymbol": [44, 48, 80, 85], "mkunresolvedsort": 44, "isboolean": [44, 80], "isinteg": [44, 80], "isreal": [44, 80], "isstr": [44, 45, 80], "isregexp": [44, 80], "isroundingmod": [44, 80], "isbitvector": [44, 80], "isfloatingpoint": [44, 80], "isdatatyp": [44, 80], "isdatatypetest": [44, 63, 80], "isfunct": [44, 80, 125, 126], "ispred": [44, 80], "isarrai": [44, 80], "isfinitefield": [44, 80, 114], "isset": [44, 80], "isbag": [44, 80], "issequ": [44, 80], "isabstract": [44, 80], "isuninterpretedsort": [44, 80], "isuninterpretedsortconstructor": [44, 80], "isinstanti": [44, 80], "getuninterpretedsortconstructor": [44, 80], "getinstantiatedparamet": [44, 80], "tostream": [44, 57], "getdatatypeconstructorar": [44, 80], "getdatatypeconstructordomainsort": [44, 80], "getdatatypeconstructorcodomainsort": [44, 80], "getdatatypeselectordomainsort": [44, 80], "getdatatypeselectorcodomainsort": [44, 80], "getdatatypetesterdomainsort": [44, 80], "getdatatypetestercodomainsort": [44, 80], "getfunctionar": [44, 80], "getfunctiondomainsort": [44, 80], "getfunctioncodomainsort": [44, 80, 125, 126], "getarrayindexsort": [44, 80], "getarrayelementsort": [44, 80], "getsetelementsort": [44, 80], "getbagelementsort": [44, 80], "getsequenceelementsort": [44, 80], "getabstractedkind": [44, 80], "getuninterpretedsortconstructorar": [44, 80], "getbitvectors": [44, 80], "getfinitefields": [44, 80, 114], "getfloatingpointexponents": [44, 80], "getfloatingpointsignificands": [44, 80], "getdatatypear": [44, 80], "gettuplelength": [44, 80], "gettuplesort": [44, 80], "getnullableelementsort": [44, 80], "isint": [45, 89], "isdoubl": 45, "getint": 45, "getdoubl": 45, "By": [45, 82], "manageri": 45, "cvc5apirecoverableexcept": [45, 50, 57, 59], "visibl": 45, "isintern": [45, 141], "isdefault": [45, 141], "histogramdata": 45, "On": [45, 130, 131], "isx": 45, "getx": 45, "sole": 45, "becaus": [45, 130], "getstr": 45, "ishistogram": 45, "gethistogram": 45, "represen": 45, "sv": 45, "inputpars": [46, 50, 57, 59, 75, 83, 118, 119], "getdeclaredsort": [46, 83], "getdeclaredterm": [46, 83], "getnamedterm": [46, 83], "hassolut": [47, 84, 125, 126], "hasnosolut": [47, 84], "mk": [48, 85], "unordered_set": 48, "unordered_map": 48, "getnumchildren": [48, 85], "getid": [48, 85], "getsort": [48, 85, 107, 110, 125, 126], "hasop": [48, 85], "getop": [48, 85], "notterm": [48, 85, 106, 107, 109, 113, 117, 123, 127, 142, 147], "andterm": [48, 85], "orterm": [48, 85], "xorterm": [48, 85], "eqterm": [48, 85], "impterm": [48, 85], "iteterm": [48, 85], "getrealorintegervaluesign": [48, 85], "isint32valu": 48, "getint32valu": 48, "isuint32valu": 48, "getuint32valu": 48, "isint64valu": 48, "getint64valu": 48, "isuint64valu": 48, "getuint64valu": 48, "isintegervalu": [48, 85], "getintegervalu": [48, 85], "isstringvalu": [48, 85], "getstringvalu": [48, 85], "isreal32valu": 48, "getreal32valu": 48, "isreal64valu": 48, "getconstarraybas": [48, 85], "isbooleanvalu": [48, 85], "getbooleanvalu": [48, 85], "isbitvectorvalu": [48, 85], "getbitvectorvalu": [48, 85], "isfinitefieldvalu": [48, 85, 114], "getfinitefieldvalu": [48, 85, 114], "isuninterpretedsortvalu": [48, 85], "getuninterpretedsortvalu": [48, 85], "istuplevalu": [48, 85], "gettuplevalu": [48, 85], "isroundingmodevalu": [48, 85], "getroundingmodevalu": [48, 85], "isfloatingpointposzero": [48, 85], "isfloatingpointnegzero": [48, 85], "isfloatingpointposinf": [48, 85], "isfloatingpointneginf": [48, 85], "isfloatingpointnan": [48, 85], "isfloatingpointvalu": [48, 85], "getfloatingpointvalu": [48, 85], "getsetvalu": [48, 85], "issequencevalu": [48, 85], "iscardinalityconstraint": [48, 85], "getcardinalityconstraint": [48, 85], "isrealalgebraicnumb": [48, 85], "getrealalgebraicnumberdefiningpolynomi": [48, 85], "getrealalgebraicnumberlowerbound": [48, 85], "getrealalgebraicnumberupperbound": [48, 85], "skolemid": [48, 49, 85, 140], "just": [48, 101, 132, 140], "shared_ptr": 48, "mkskolem": [49, 79, 86], "getnumindicesforskolemid": [49, 79, 86], "individu": [50, 59, 132, 139, 141], "parserexcept": [50, 57], "const_bitvector": [51, 69], "to_str": [51, 52, 53, 54, 55, 56], "internal_kind": [51, 69], "undefined_kind": [51, 69], "null_term": [51, 69], "uninterpreted_sort_valu": [51, 69], "sexpr": [51, 69, 89, 90, 91, 92, 94, 95, 102], "const_boolean": [51, 69], "cardinality_constraint": [51, 69], "division_tot": [51, 69], "ints_divis": [51, 69], "ints_division_tot": [51, 69], "ints_modulu": [51, 69], "ints_modulus_tot": [51, 69], "pow": [51, 69, 89], "arcsin": [51, 69, 89, 140, 150], "arccosin": [51, 69, 89, 150], "arctang": [51, 69, 89, 150], "arccosec": [51, 69, 89, 150], "arcsec": [51, 69, 89, 150], "arccotang": [51, 69, 89, 150], "const_rat": [51, 69], "const_integ": [51, 69], "is_integ": [51, 69], "to_integ": [51, 69], "bitvector_concat": [51, 69], "bitvector_and": [51, 69], "bitvector_or": [51, 69], "bitvector_xor": [51, 69, 107], "bitvector_not": [51, 69], "bitvector_nand": [51, 69], "bitvector_nor": [51, 69], "bitvector_xnor": [51, 69], "bitvector_comp": [51, 69], "bitvector_mult": [51, 69, 108], "bitvector_add": [51, 69, 107], "bitvector_sub": [51, 69, 107], "bitvector_neg": [51, 69], "bitvector_udiv": [51, 69], "bitvector_urem": [51, 69], "bitvector_sdiv": [51, 69], "bitvector_srem": [51, 69], "bitvector_smod": [51, 69], "bitvector_shl": [51, 69], "bitvector_lshr": [51, 69], "bitvector_ashr": [51, 69], "bitvector_ult": [51, 69], "bitvector_ul": [51, 69], "bitvector_ugt": [51, 69], "bitvector_ug": [51, 69], "bitvector_slt": [51, 69, 108], "bitvector_sl": [51, 69], "bitvector_sgt": [51, 69, 108], "bitvector_sg": [51, 69], "bitvector_ultbv": [51, 69], "bitvector_sltbv": [51, 69], "bitvector_it": [51, 69, 131], "bitvector_redor": [51, 69], "bitvector_redand": [51, 69], "bitvector_nego": [51, 69], "bitvector_uaddo": [51, 69], "bitvector_saddo": [51, 69], "bitvector_umulo": [51, 69], "bitvector_smulo": [51, 69], "bitvector_usubo": [51, 69], "bitvector_ssubo": [51, 69], "bitvector_sdivo": [51, 69], "bitvector_to_nat": [51, 69], "bitvector_from_bool": [51, 69], "bitvector_bit": [51, 69], "const_finite_field": [51, 69], "finite_field_neg": [51, 69], "finite_field_add": [51, 69, 114, 144], "finite_field_bitsum": [51, 69], "finite_field_mult": [51, 69, 114, 144], "const_floatingpoint": [51, 69], "const_roundingmod": [51, 69], "floatingpoint_fp": [51, 69], "floatingpoint_eq": [51, 69], "floatingpoint_ab": [51, 69], "floatingpoint_neg": [51, 69], "floatingpoint_add": [51, 69, 115], "floatingpoint_sub": [51, 69], "floatingpoint_mult": [51, 69, 115], "floatingpoint_div": [51, 69], "floatingpoint_fma": [51, 69, 115], "floatingpoint_sqrt": [51, 69], "floatingpoint_rem": [51, 69], "floatingpoint_rti": [51, 69], "floatingpoint_min": [51, 69], "floatingpoint_max": [51, 69], "floatingpoint_leq": [51, 69], "floatingpoint_lt": [51, 69, 115], "floatingpoint_geq": [51, 69], "floatingpoint_gt": [51, 69], "floatingpoint_is_norm": [51, 69, 115], "floatingpoint_is_subnorm": [51, 69], "floatingpoint_is_zero": [51, 69], "floatingpoint_is_inf": [51, 69], "floatingpoint_is_nan": [51, 69], "floatingpoint_is_neg": [51, 69], "floatingpoint_is_po": [51, 69], "floatingpoint_to_r": [51, 69, 115], "const_arrai": [51, 69], "eq_rang": [51, 69], "sep_nil": [51, 69], "sep_emp": [51, 69], "sep_pto": [51, 69, 145], "sep_star": [51, 69, 145], "sep_wand": [51, 69, 145], "set_empti": [51, 69], "set_union": [51, 69, 121, 123, 147], "set_int": [51, 69, 121, 123, 147], "set_minu": [51, 69, 147], "set_subset": [51, 69, 121, 123, 147], "set_memb": [51, 69, 121, 123, 147], "set_singleton": [51, 69, 123, 147], "set_insert": [51, 69, 147], "set_card": [51, 69, 147], "set_compl": [51, 69, 147], "set_comprehens": [51, 69], "set_choos": [51, 69], "set_is_empti": [51, 69, 147], "set_is_singleton": [51, 69, 147], "set_map": [51, 69], "set_filt": [51, 69], "set_al": [51, 69], "set_som": [51, 69], "set_fold": [51, 69], "relation_join": [51, 69, 121, 147], "relation_table_join": [51, 69], "relation_product": [51, 69, 147], "relation_transpos": [51, 69, 121, 147], "relation_tclosur": [51, 69, 121, 147], "relation_join_imag": [51, 69], "relation_iden": [51, 69], "relation_group": [51, 69], "relation_aggreg": [51, 69], "relation_project": [51, 69], "bag_empti": [51, 69], "bag_union_max": [51, 69, 106, 142], "bag_union_disjoint": [51, 69, 106, 142], "bag_inter_min": [51, 69, 106, 142], "bag_difference_subtract": [51, 69, 142], "bag_difference_remov": [51, 69], "bag_subbag": [51, 69, 106, 142], "bag_count": [51, 69, 106, 142], "bag_memb": [51, 69, 142], "bag_setof": [51, 69, 142], "bag_mak": [51, 69, 106, 142], "bag_card": [51, 69], "bag_choos": [51, 69], "bag_map": [51, 69], "bag_filt": [51, 69], "bag_fold": [51, 69], "bag_partit": [51, 69], "table_product": [51, 69], "table_project": [51, 69], "table_aggreg": [51, 69], "table_join": [51, 69], "table_group": [51, 69], "string_concat": [51, 69, 124], "string_in_regexp": [51, 69, 124], "string_length": [51, 69, 124], "string_substr": [51, 69], "string_upd": [51, 69], "string_charat": [51, 69], "string_contain": [51, 69], "string_indexof": [51, 69], "string_indexof_r": [51, 69], "string_replac": [51, 69], "string_replace_al": [51, 69], "string_replace_r": [51, 69], "string_replace_re_al": [51, 69], "string_to_low": [51, 69], "string_to_upp": [51, 69], "string_rev": [51, 69], "string_to_cod": [51, 69], "string_from_cod": [51, 69], "string_lt": [51, 69], "string_leq": [51, 69], "string_prefix": [51, 69], "string_suffix": [51, 69], "string_is_digit": [51, 69], "string_from_int": [51, 69], "string_to_int": [51, 69], "string_to_regexp": [51, 69, 124], "regexp_concat": [51, 69, 124], "regexp_union": [51, 69, 124], "regexp_int": [51, 69], "regexp_diff": [51, 69], "regexp_star": [51, 69, 124], "regexp_plu": [51, 69], "regexp_opt": [51, 69], "regexp_rang": [51, 69, 124], "regexp_repeat": [51, 69], "regexp_loop": [51, 69], "regexp_non": [51, 69], "regexp_al": [51, 69], "regexp_allchar": [51, 69], "regexp_compl": [51, 69], "seq_length": [51, 69, 122, 146], "seq_extract": [51, 69, 146], "seq_upd": [51, 69, 146], "seq_at": [51, 69, 146], "seq_contain": [51, 69, 146], "seq_indexof": [51, 69, 146], "seq_replac": [51, 69, 146], "seq_replace_al": [51, 69, 146], "seq_rev": [51, 69, 146], "seq_prefix": [51, 69, 146], "seq_suffix": [51, 69, 146], "seq_nth": [51, 69, 146], "last_kind": [51, 69], "preprocess_solv": [52, 70], "constant_prop": [52, 70], "raw_preprocess": [52, 70], "theory_lemma": [52, 70], "cpc": [52, 70, 131, 134, 137], "rewrite_unsound": [52, 70], "rewrite_input": [52, 70], "macro_rewrit": [53, 74], "aci_norm": [53, 74, 134], "macro_sr_pred_elim": [53, 74], "macro_sr_pred_transform": [53, 74], "encode_eq_intro": [53, 74], "ite_eq": [53, 74], "trust_theory_rewrit": [53, 74, 132, 133, 136], "sat_refut": [53, 74], "drat_refut": [53, 74], "sat_external_prov": [53, 74], "chain_resolut": [53, 74, 134], "macro_resolution_trust": [53, 74], "eq_resolv": [53, 74, 102, 132, 134, 136], "modus_ponen": [53, 74], "not_not_elim": [53, 74], "contra": [53, 74], "and_elim": [53, 74, 134, 136], "and_intro": [53, 74], "not_or_elim": [53, 74], "not_implies_elim1": [53, 74], "not_implies_elim2": [53, 74], "equiv_elim2": [53, 74], "not_equiv_elim1": [53, 74], "not_equiv_elim2": [53, 74], "xor_elim1": [53, 74], "xor_elim2": [53, 74], "not_xor_elim1": [53, 74], "not_xor_elim2": [53, 74], "ite_elim1": [53, 74], "ite_elim2": [53, 74], "not_ite_elim1": [53, 74], "not_ite_elim2": [53, 74], "not_and": [53, 74], "cnf_and_po": [53, 74], "cnf_and_neg": [53, 74], "cnf_or_po": [53, 74], "cnf_or_neg": [53, 74], "cnf_implies_po": [53, 74], "cnf_implies_neg1": [53, 74], "cnf_implies_neg2": [53, 74], "cnf_equiv_pos1": [53, 74, 134, 136], "cnf_equiv_pos2": [53, 74], "cnf_equiv_neg1": [53, 74], "cnf_equiv_neg2": [53, 74], "cnf_xor_pos1": [53, 74], "cnf_xor_pos2": [53, 74], "cnf_xor_neg1": [53, 74], "cnf_xor_neg2": [53, 74], "cnf_ite_pos1": [53, 74], "cnf_ite_pos2": [53, 74], "cnf_ite_pos3": [53, 74], "cnf_ite_neg1": [53, 74], "cnf_ite_neg2": [53, 74], "cnf_ite_neg3": [53, 74], "cong": [53, 74, 131, 133, 134, 136], "nary_cong": [53, 74, 134], "true_intro": [53, 74], "true_elim": [53, 74], "false_intro": [53, 74], "false_elim": [53, 74], "ho_app_encod": [53, 74], "arrays_read_over_writ": [53, 74, 141], "arrays_read_over_write_contra": [53, 74], "arrays_read_over_write_1": [53, 74, 141], "arrays_ext": [53, 74, 141], "macro_bv_bitblast": [53, 74], "bv_bitblast_step": [53, 74], "bv_eager_atom": [53, 74], "dt_split": [53, 74], "dt_clash": [53, 74], "skolem_intro": [53, 74], "alpha_equiv": [53, 74], "quant_var_reord": [53, 74], "sets_singleton_inj": [53, 74], "sets_ext": [53, 74], "sets_filter_up": [53, 74], "sets_filter_down": [53, 74], "concat_eq": [53, 74], "concat_unifi": [53, 74], "concat_conflict": [53, 74], "concat_conflict_deq": [53, 74], "concat_split": [53, 74], "concat_csplit": [53, 74], "concat_lprop": [53, 74], "concat_cprop": [53, 74], "string_decompos": [53, 74], "string_length_po": [53, 74], "string_length_non_empti": [53, 74], "string_reduct": [53, 74], "string_eager_reduct": [53, 74], "re_int": [53, 74], "re_unfold_po": [53, 74], "re_unfold_neg": [53, 74], "re_unfold_neg_concat_fix": [53, 74], "string_code_inj": [53, 74], "string_seq_unit_inj": [53, 74], "string_ext": [53, 74], "macro_string_infer": [53, 74], "macro_arith_scale_sum_ub": [53, 74], "arith_mult_abs_comparison": [53, 74], "arith_sum_ub": [53, 74], "int_tight_ub": [53, 74], "int_tight_lb": [53, 74], "arith_trichotomi": [53, 74], "arith_reduct": [53, 74], "arith_poly_norm_rel": [53, 74], "arith_mult_sign": [53, 74], "arith_mult_po": [53, 74], "arith_mult_neg": [53, 74], "arith_mult_tang": [53, 74], "arith_trans_pi": [53, 74], "arith_trans_exp_neg": [53, 74], "arith_trans_exp_posit": [53, 74], "arith_trans_exp_super_lin": [53, 74], "arith_trans_exp_zero": [53, 74], "arith_trans_exp_approx_above_neg": [53, 74], "arith_trans_exp_approx_above_po": [53, 74], "arith_trans_exp_approx_below": [53, 74], "arith_trans_sine_bound": [53, 74], "arith_trans_sine_shift": [53, 74], "arith_trans_sine_symmetri": [53, 74], "arith_trans_sine_tangent_zero": [53, 74], "arith_trans_sine_tangent_pi": [53, 74], "arith_trans_sine_approx_above_neg": [53, 74], "arith_trans_sine_approx_above_po": [53, 74], "arith_trans_sine_approx_below_neg": [53, 74], "arith_trans_sine_approx_below_po": [53, 74], "lfsc_rule": [53, 74], "alethe_rul": [53, 74], "distinct_elim": [53, 74], "distinct_card_conflict": [53, 74], "bv_to_nat_elim": [53, 74], "int_to_bv_elim": [53, 74], "macro_bool_nnf_norm": [53, 74], "macro_arith_string_pred_entail": [53, 74], "arith_pow_elim": [53, 74], "beta_reduc": [53, 74], "lambda_elim": [53, 74], "arrays_select_const": [53, 74], "macro_arrays_distinct_arrai": [53, 74], "macro_arrays_normalize_const": [53, 74], "arrays_eq_range_expand": [53, 74], "exists_elim": [53, 74], "quant_unused_var": [53, 74], "macro_quant_merge_prenex": [53, 74], "quant_merge_prenex": [53, 74], "macro_quant_prenex": [53, 74], "macro_quant_miniscop": [53, 74], "quant_miniscope_and": [53, 74], "quant_miniscope_or": [53, 74], "quant_miniscope_it": [53, 74], "quant_dt_split": [53, 74], "macro_quant_partition_connected_fv": [53, 74], "macro_quant_var_elim_eq": [53, 74], "quant_var_elim_eq": [53, 74], "macro_quant_var_elim_ineq": [53, 74], "macro_quant_rewrite_bodi": [53, 74], "dt_inst": [53, 74], "dt_collapse_selector": [53, 74], "dt_collapse_test": [53, 74], "dt_collapse_tester_singleton": [53, 74], "dt_cons_eq": [53, 74], "dt_cycl": [53, 74], "dt_collapse_updat": [53, 74], "dt_updater_elim": [53, 74], "dt_match_elim": [53, 74], "bv_umulo_elimin": [53, 74], "bv_smulo_elimin": [53, 74], "bv_add_combine_like_term": [53, 74], "bv_mult_simplifi": [53, 74], "bv_bitwise_sl": [53, 74], "bv_repeat_elim": [53, 74], "re_loop_elim": [53, 74], "re_inter_union_inclus": [53, 74], "str_in_re_ev": [53, 74], "str_in_re_consum": [53, 74], "str_in_re_concat_star_char": [53, 74], "str_in_re_sigma": [53, 74], "str_in_re_sigma_star": [53, 74], "macro_substr_strip_sym_length": [53, 74], "sets_is_empty_ev": [53, 74], "sets_insert_elim": [53, 74], "arith_mul_on": [53, 74], "arith_mul_zero": [53, 74], "arith_div_total_r": [53, 74], "arith_div_total_int": [53, 74], "arith_div_total_zero_r": [53, 74], "arith_div_total_zero_int": [53, 74], "arith_int_div_tot": [53, 74], "arith_int_div_total_on": [53, 74], "arith_int_div_total_zero": [53, 74], "arith_int_mod_tot": [53, 74], "arith_int_mod_total_on": [53, 74], "arith_int_mod_total_zero": [53, 74], "arith_elim_gt": [53, 74], "arith_elim_lt": [53, 74], "arith_elim_int_gt": [53, 74], "arith_elim_int_lt": [53, 74], "arith_elim_leq": [53, 74], "arith_leq_norm": [53, 74], "arith_geq_tighten": [53, 74], "arith_geq_norm1_int": [53, 74], "arith_geq_norm1_r": [53, 74], "arith_geq_norm2": [53, 74], "arith_refl_leq": [53, 74], "arith_refl_lt": [53, 74], "arith_refl_geq": [53, 74], "arith_refl_gt": [53, 74], "arith_eq_elim_r": [53, 74], "arith_eq_elim_int": [53, 74], "arith_plus_flatten": [53, 74], "arith_mult_flatten": [53, 74], "arith_mult_dist": [53, 74], "arith_abs_elim_int": [53, 74], "arith_abs_elim_r": [53, 74], "arith_to_real_elim": [53, 74], "arith_to_int_elim_to_r": [53, 74], "arith_div_elim_to_real1": [53, 74], "arith_div_elim_to_real2": [53, 74], "arith_sine_zero": [53, 74], "arith_sine_pi2": [53, 74], "arith_cosine_elim": [53, 74], "arith_tangent_elim": [53, 74], "arith_secent_elim": [53, 74], "arith_cosecent_elim": [53, 74], "arith_cotangent_elim": [53, 74], "arith_pi_not_int": [53, 74], "arith_abs_eq": [53, 74], "arith_abs_int_gt": [53, 74], "arith_abs_real_gt": [53, 74], "array_read_over_writ": [53, 74], "array_read_over_write2": [53, 74], "array_store_overwrit": [53, 74], "array_store_self": [53, 74], "array_read_over_write_split": [53, 74], "bool_double_not_elim": [53, 74], "bool_not_tru": [53, 74], "bool_not_fals": [53, 74], "bool_eq_tru": [53, 74], "bool_eq_fals": [53, 74], "bool_eq_nrefl": [53, 74], "bool_impl_false1": [53, 74], "bool_impl_false2": [53, 74], "bool_impl_true1": [53, 74], "bool_impl_true2": [53, 74], "bool_impl_elim": [53, 74], "bool_or_tru": [53, 74], "bool_or_flatten": [53, 74], "bool_and_fals": [53, 74], "bool_and_flatten": [53, 74], "bool_and_conf": [53, 74], "bool_and_conf2": [53, 74], "bool_or_taut": [53, 74], "bool_or_taut2": [53, 74], "bool_or_de_morgan": [53, 74], "bool_implies_de_morgan": [53, 74], "bool_and_de_morgan": [53, 74], "bool_or_and_distrib": [53, 74], "bool_xor_refl": [53, 74], "bool_xor_nrefl": [53, 74], "bool_xor_fals": [53, 74], "bool_xor_tru": [53, 74], "bool_xor_comm": [53, 74], "bool_xor_elim": [53, 74], "bool_not_xor_elim": [53, 74], "bool_not_eq_elim1": [53, 74], "bool_not_eq_elim2": [53, 74], "ite_neg_branch": [53, 74], "ite_then_tru": [53, 74], "ite_else_fals": [53, 74], "ite_then_fals": [53, 74], "ite_else_tru": [53, 74], "ite_then_lookahead_self": [53, 74], "ite_else_lookahead_self": [53, 74], "ite_then_lookahead_not_self": [53, 74], "ite_else_lookahead_not_self": [53, 74], "ite_expand": [53, 74], "bool_not_ite_elim": [53, 74], "ite_true_cond": [53, 74], "ite_false_cond": [53, 74], "ite_not_cond": [53, 74], "ite_eq_branch": [53, 74], "ite_then_lookahead": [53, 74], "ite_else_lookahead": [53, 74], "ite_then_neg_lookahead": [53, 74], "ite_else_neg_lookahead": [53, 74], "bv_concat_flatten": [53, 74], "bv_concat_extract_merg": [53, 74], "bv_extract_extract": [53, 74], "bv_extract_whol": [53, 74], "bv_extract_concat_1": [53, 74], "bv_extract_concat_2": [53, 74], "bv_extract_concat_3": [53, 74], "bv_extract_concat_4": [53, 74], "bv_eq_extract_elim1": [53, 74], "bv_eq_extract_elim2": [53, 74], "bv_eq_extract_elim3": [53, 74], "bv_extract_bitwise_and": [53, 74], "bv_extract_bitwise_or": [53, 74], "bv_extract_bitwise_xor": [53, 74], "bv_extract_not": [53, 74], "bv_extract_sign_extend_1": [53, 74], "bv_extract_sign_extend_2": [53, 74], "bv_extract_sign_extend_3": [53, 74], "bv_neg_mult": [53, 74], "bv_neg_add": [53, 74], "bv_mult_distrib_const_neg": [53, 74], "bv_mult_distrib_const_add": [53, 74], "bv_mult_distrib_const_sub": [53, 74], "bv_mult_distrib_1": [53, 74], "bv_mult_distrib_2": [53, 74], "bv_not_xor": [53, 74], "bv_and_simplify_1": [53, 74], "bv_and_simplify_2": [53, 74], "bv_or_simplify_1": [53, 74], "bv_or_simplify_2": [53, 74], "bv_xor_simplify_1": [53, 74], "bv_xor_simplify_2": [53, 74], "bv_xor_simplify_3": [53, 74], "bv_ult_add_on": [53, 74], "bv_concat_to_mult": [53, 74], "bv_mult_slt_mult_1": [53, 74], "bv_mult_slt_mult_2": [53, 74], "bv_commutative_and": [53, 74], "bv_commutative_or": [53, 74], "bv_commutative_xor": [53, 74], "bv_commutative_mul": [53, 74], "bv_or_zero": [53, 74], "bv_mul_on": [53, 74], "bv_mul_zero": [53, 74], "bv_add_zero": [53, 74], "bv_add_two": [53, 74], "bv_zero_extend_eliminate_0": [53, 74], "bv_sign_extend_eliminate_0": [53, 74], "bv_not_neq": [53, 74], "bv_ult_on": [53, 74], "bv_or_flatten": [53, 74], "bv_xor_flatten": [53, 74], "bv_and_flatten": [53, 74], "bv_mul_flatten": [53, 74], "bv_concat_merge_const": [53, 74], "bv_commutative_add": [53, 74], "bv_neg_sub": [53, 74], "bv_neg_idemp": [53, 74], "bv_sub_elimin": [53, 74], "bv_ugt_elimin": [53, 74], "bv_uge_elimin": [53, 74], "bv_sgt_elimin": [53, 74], "bv_sge_elimin": [53, 74], "bv_slt_elimin": [53, 74], "bv_sle_elimin": [53, 74], "bv_redor_elimin": [53, 74], "bv_redand_elimin": [53, 74], "bv_ule_elimin": [53, 74], "bv_comp_elimin": [53, 74], "bv_rotate_left_eliminate_1": [53, 74], "bv_rotate_left_eliminate_2": [53, 74], "bv_rotate_right_eliminate_1": [53, 74], "bv_rotate_right_eliminate_2": [53, 74], "bv_nand_elimin": [53, 74], "bv_nor_elimin": [53, 74], "bv_xnor_elimin": [53, 74], "bv_sdiv_elimin": [53, 74], "bv_sdiv_eliminate_fewer_bitwise_op": [53, 74], "bv_zero_extend_elimin": [53, 74], "bv_sign_extend_elimin": [53, 74], "bv_uaddo_elimin": [53, 74], "bv_saddo_elimin": [53, 74], "bv_sdivo_elimin": [53, 74], "bv_smod_elimin": [53, 74], "bv_smod_eliminate_fewer_bitwise_op": [53, 74], "bv_srem_elimin": [53, 74], "bv_srem_eliminate_fewer_bitwise_op": [53, 74], "bv_usubo_elimin": [53, 74], "bv_ssubo_elimin": [53, 74], "bv_ite_equal_children": [53, 74], "bv_ite_const_children_1": [53, 74], "bv_ite_const_children_2": [53, 74], "bv_ite_equal_cond_1": [53, 74], "bv_ite_equal_cond_2": [53, 74], "bv_ite_equal_cond_3": [53, 74], "bv_ite_merge_then_if": [53, 74], "bv_ite_merge_else_if": [53, 74], "bv_ite_merge_then_els": [53, 74], "bv_ite_merge_else_els": [53, 74], "bv_shl_by_const_0": [53, 74], "bv_shl_by_const_1": [53, 74], "bv_shl_by_const_2": [53, 74], "bv_lshr_by_const_0": [53, 74], "bv_lshr_by_const_1": [53, 74], "bv_lshr_by_const_2": [53, 74], "bv_ashr_by_const_0": [53, 74], "bv_ashr_by_const_1": [53, 74], "bv_ashr_by_const_2": [53, 74], "bv_and_concat_pullup": [53, 74], "bv_or_concat_pullup": [53, 74], "bv_xor_concat_pullup": [53, 74], "bv_bitwise_idemp_1": [53, 74], "bv_bitwise_idemp_2": [53, 74], "bv_and_zero": [53, 74], "bv_and_on": [53, 74], "bv_or_on": [53, 74], "bv_xor_dupl": [53, 74], "bv_xor_on": [53, 74], "bv_xor_zero": [53, 74], "bv_bitwise_not_and": [53, 74], "bv_bitwise_not_or": [53, 74], "bv_xor_not": [53, 74], "bv_not_idemp": [53, 74], "bv_ult_zero_1": [53, 74], "bv_ult_zero_2": [53, 74], "bv_ult_self": [53, 74], "bv_lt_self": [53, 74], "bv_ule_self": [53, 74], "bv_ule_zero": [53, 74], "bv_zero_ul": [53, 74], "bv_sle_self": [53, 74], "bv_ule_max": [53, 74], "bv_not_ult": [53, 74], "bv_not_ul": [53, 74], "bv_not_sl": [53, 74], "bv_mult_pow2_1": [53, 74], "bv_mult_pow2_2": [53, 74], "bv_mult_pow2_2b": [53, 74], "bv_extract_mult_leading_bit": [53, 74], "bv_udiv_pow2_not_on": [53, 74], "bv_udiv_zero": [53, 74], "bv_udiv_on": [53, 74], "bv_urem_pow2_not_on": [53, 74], "bv_urem_on": [53, 74], "bv_urem_self": [53, 74], "bv_shl_zero": [53, 74], "bv_lshr_zero": [53, 74], "bv_ashr_zero": [53, 74], "bv_ugt_urem": [53, 74], "bv_slt_zero": [53, 74], "bv_merge_sign_extend_1": [53, 74], "bv_merge_sign_extend_2": [53, 74], "bv_merge_sign_extend_3": [53, 74], "bv_sign_extend_eq_const_1": [53, 74], "bv_sign_extend_eq_const_2": [53, 74], "bv_zero_extend_eq_const_1": [53, 74], "bv_zero_extend_eq_const_2": [53, 74], "bv_sign_extend_ult_const_1": [53, 74], "bv_sign_extend_ult_const_2": [53, 74], "bv_sign_extend_ult_const_3": [53, 74], "bv_sign_extend_ult_const_4": [53, 74], "sets_eq_singleton_emp": [53, 74], "sets_member_singleton": [53, 74], "sets_member_emp": [53, 74], "sets_subset_elim": [53, 74], "sets_union_comm": [53, 74], "sets_inter_comm": [53, 74], "sets_inter_emp1": [53, 74], "sets_inter_emp2": [53, 74], "sets_minus_emp1": [53, 74], "sets_minus_emp2": [53, 74], "sets_union_emp1": [53, 74], "sets_union_emp2": [53, 74], "sets_inter_memb": [53, 74], "sets_minus_memb": [53, 74], "sets_union_memb": [53, 74], "sets_choose_singleton": [53, 74], "sets_card_singleton": [53, 74], "sets_card_union": [53, 74], "sets_card_minu": [53, 74], "sets_card_emp": [53, 74], "sets_minus_self": [53, 74], "sets_is_empty_elim": [53, 74], "str_eq_ctn_fals": [53, 74], "str_eq_ctn_full_false1": [53, 74], "str_eq_ctn_full_false2": [53, 74], "str_concat_flatten": [53, 74], "str_concat_flatten_eq": [53, 74], "str_concat_flatten_eq_rev": [53, 74], "str_substr_empty_str": [53, 74], "str_substr_empty_rang": [53, 74], "str_substr_empty_start": [53, 74], "str_substr_empty_start_neg": [53, 74], "str_substr_eq_empti": [53, 74], "str_len_replace_inv": [53, 74], "str_len_update_inv": [53, 74], "str_len_substr_in_rang": [53, 74], "str_len_substr_ub1": [53, 74], "str_len_substr_ub2": [53, 74], "str_concat_clash": [53, 74], "str_concat_clash_rev": [53, 74], "str_concat_clash2": [53, 74], "str_concat_clash2_rev": [53, 74], "str_concat_unifi": [53, 74], "str_concat_unify_rev": [53, 74], "str_concat_unify_bas": [53, 74], "str_concat_unify_base_rev": [53, 74], "str_concat_clash_char": [53, 74], "str_concat_clash_char_rev": [53, 74], "str_prefixof_elim": [53, 74], "str_suffixof_elim": [53, 74], "str_prefixof_on": [53, 74], "str_suffixof_on": [53, 74], "str_substr_combine1": [53, 74], "str_substr_combine2": [53, 74], "str_substr_combine3": [53, 74], "str_substr_combine4": [53, 74], "str_substr_concat1": [53, 74], "str_substr_concat2": [53, 74], "str_substr_ful": [53, 74], "str_substr_full_eq": [53, 74], "str_contains_refl": [53, 74], "str_contains_concat_find": [53, 74], "str_contains_split_char": [53, 74], "str_contains_lt_len": [53, 74], "str_contains_leq_len_eq": [53, 74], "str_contains_emp": [53, 74], "str_contains_is_emp": [53, 74], "str_at_elim": [53, 74], "str_replace_self": [53, 74], "str_replace_prefix": [53, 74], "str_replace_no_contain": [53, 74], "str_replace_empti": [53, 74], "str_replace_contains_pr": [53, 74], "str_replace_all_no_contain": [53, 74], "str_replace_re_non": [53, 74], "str_replace_re_all_non": [53, 74], "str_len_concat_rec": [53, 74], "str_indexof_self": [53, 74], "str_indexof_no_contain": [53, 74], "str_indexof_contains_pr": [53, 74], "str_indexof_re_non": [53, 74], "str_to_lower_concat": [53, 74], "str_to_upper_concat": [53, 74], "str_to_lower_upp": [53, 74], "str_to_upper_low": [53, 74], "str_to_lower_len": [53, 74], "str_to_upper_len": [53, 74], "str_to_lower_from_int": [53, 74], "str_to_upper_from_int": [53, 74], "str_to_int_concat_neg_on": [53, 74], "str_leq_empti": [53, 74], "str_leq_empty_eq": [53, 74], "str_leq_concat_fals": [53, 74], "str_leq_concat_tru": [53, 74], "str_lt_elim": [53, 74], "re_all_elim": [53, 74], "re_opt_elim": [53, 74], "re_diff_elim": [53, 74], "re_concat_emp": [53, 74], "re_concat_non": [53, 74], "re_concat_flatten": [53, 74], "re_concat_star_swap": [53, 74], "re_concat_star_repeat": [53, 74], "re_concat_merg": [53, 74], "re_union_al": [53, 74], "re_union_non": [53, 74], "re_union_flatten": [53, 74], "re_union_dup": [53, 74], "re_inter_al": [53, 74], "re_inter_non": [53, 74], "re_inter_flatten": [53, 74], "re_inter_dup": [53, 74], "re_star_non": [53, 74], "re_loop_neg": [53, 74], "re_inter_cstr": [53, 74], "re_inter_cstring_neg": [53, 74], "str_substr_len_includ": [53, 74], "str_substr_len_include_pr": [53, 74], "str_substr_len_skip": [53, 74], "seq_len_rev": [53, 74], "seq_rev_rev": [53, 74], "seq_rev_concat": [53, 74], "seq_len_unit": [53, 74], "seq_nth_unit": [53, 74], "seq_rev_unit": [53, 74], "seq_len_empti": [53, 74], "re_in_empti": [53, 74], "re_in_sigma": [53, 74], "re_in_sigma_star": [53, 74], "re_in_cstr": [53, 74], "re_in_comp": [53, 74], "str_in_re_union_elim": [53, 74], "str_in_re_inter_elim": [53, 74], "str_in_re_range_elim": [53, 74], "str_in_re_contain": [53, 74], "str_in_re_strip_prefix": [53, 74], "str_in_re_strip_prefix_neg": [53, 74], "str_in_re_strip_prefix_sr_singl": [53, 74], "str_in_re_strip_prefix_sr_single_neg": [53, 74], "str_in_re_strip_prefix_srs_singl": [53, 74], "str_in_re_strip_prefix_srs_single_neg": [53, 74], "str_in_re_strip_prefix_s_singl": [53, 74], "str_in_re_strip_prefix_s_single_neg": [53, 74], "str_in_re_strip_prefix_bas": [53, 74], "str_in_re_strip_prefix_base_neg": [53, 74], "str_in_re_strip_prefix_base_s_singl": [53, 74], "str_in_re_strip_prefix_base_s_single_neg": [53, 74], "str_in_re_strip_char": [53, 74], "str_in_re_strip_char_s_singl": [53, 74], "str_in_re_strip_prefix_rev": [53, 74], "str_in_re_strip_prefix_neg_rev": [53, 74], "str_in_re_strip_prefix_sr_single_rev": [53, 74], "str_in_re_strip_prefix_sr_single_neg_rev": [53, 74], "str_in_re_strip_prefix_srs_single_rev": [53, 74], "str_in_re_strip_prefix_srs_single_neg_rev": [53, 74], "str_in_re_strip_prefix_s_single_rev": [53, 74], "str_in_re_strip_prefix_s_single_neg_rev": [53, 74], "str_in_re_strip_prefix_base_rev": [53, 74], "str_in_re_strip_prefix_base_neg_rev": [53, 74], "str_in_re_strip_prefix_base_s_single_rev": [53, 74], "str_in_re_strip_prefix_base_s_single_neg_rev": [53, 74], "str_in_re_strip_char_rev": [53, 74], "str_in_re_strip_char_s_single_rev": [53, 74], "str_in_re_req_unfold": [53, 74], "str_in_re_req_unfold_rev": [53, 74], "str_in_re_skip_unfold": [53, 74], "str_in_re_skip_unfold_rev": [53, 74], "str_in_re_test_unfold": [53, 74], "str_in_re_test_unfold_rev": [53, 74], "eq_refl": [53, 74], "eq_symm": [53, 74], "eq_cond_deq": [53, 74], "eq_ite_lift": [53, 74], "distinct_binary_elim": [53, 74], "uf_bv2nat_int2bv": [53, 74], "uf_bv2nat_int2bv_extend": [53, 74], "uf_bv2nat_int2bv_extract": [53, 74], "uf_int2bv_bv2nat": [53, 74], "uf_bv2nat_geq_elim": [53, 74], "uf_int2bv_bvult_equiv": [53, 74], "uf_int2bv_bvule_equiv": [53, 74], "round_nearest_ties_to_even": [54, 78, 115], "round_toward_posit": [54, 78, 115], "round_toward_neg": [54, 78, 115], "round_toward_zero": [54, 78], "round_nearest_ties_to_awai": [54, 78], "internal_sort_kind": [55, 81], "undefined_sort_kind": [55, 81], "null_sort": [55, 81], "bag_sort": [55, 81], "boolean_sort": [55, 81], "datatype_sort": [55, 81], "finite_field_sort": [55, 81], "floatingpoint_sort": [55, 81], "function_sort": [55, 81], "reglan_sort": [55, 81], "roundingmode_sort": [55, 81], "sequence_sort": [55, 81], "set_sort": [55, 81, 123], "tuple_sort": [55, 81], "nullable_sort": [55, 81], "uninterpreted_sort": [55, 81], "last_sort_kind": [55, 81], "ue": 56, "requires_full_check": [56, 87], "resourceout": [56, 87], "memout": [56, 87], "requires_check_again": [56, 87], "unknown_reason": [56, 87], "broadli": 57, "still": [57, 130, 141], "unsaf": 57, "thrown": [57, 62, 85], "subclass": [57, 92], "stringstream": [57, 118, 119, 125, 126], "getmessag": 57, "noexcept": 57, "overrid": [57, 92, 130, 131], "style": [57, 131], "feel": 57, "redefin": 57, "overridden": 57, "recommend": [57, 130], "recover": 57, "cvc5apioptionexcept": [57, 59], "cvc5apiunsupportedexcept": 57, "parserendoffileexcept": 57, "msg": 57, "long": [57, 89, 91, 92, 94, 95, 139], "column": 57, "getfilenam": 57, "getlin": 57, "getcolumn": 57, "issatunknown": [58, 60, 76], "mostli": 59, "mirror": [59, 75], "There": [59, 133, 141], "hierarchi": 59, "git": [59, 88, 130], "clone": [59, 88, 130], "cd": [59, 88, 130], "sh": [59, 88, 130], "download": [59, 88, 130, 133, 134, 136], "instal": [59, 129, 133, 134, 136], "cmake": [59, 88, 130, 141], "libcvc5jni": 59, "libcvc5pars": 59, "libcvc5": 59, "libpicpoli": 59, "libpicpolyxx": 59, "libpoli": 59, "libpolyxx": 59, "dev": [59, 130], "jar": 59, "compil": 59, "javac": 59, "cp": 59, "librari": 59, "djava": 59, "abstractplugin": 59, "triplet": 59, "rmmanag": 60, "lver": 60, "__getitem__": [62, 63, 71, 82, 85, 90, 100, 101, 102, 103], "__iter__": [62, 63, 82, 85], "verbatim": [74, 131], "emb": 74, "rst": 74, "asterisk": 74, "endverbatim": 74, "program": [75, 104, 131, 138], "experi": 75, "usatisfi": 77, "formuula": 79, "glbl": 79, "glb": 79, "warn": [79, 85, 132, 134, 136], "dictionari": [79, 82], "proceed": [79, 138, 140], "term_or_list": 79, "obj": [79, 86], "arg0": [79, 86], "arg1": [79, 86], "signifcand": [79, 86], "arg2": [79, 86], "temporari": [79, 86], "forward": [79, 86], "comma": [79, 86], "Of": [79, 86], "__str__": [80, 85, 92, 96], "sort_or_list_1": 80, "sort_or_list_2": 80, "__next__": 82, "dict": [82, 85], "inclu": 82, "hexdecim": 85, "indici": 85, "held": 85, "necessari": 85, "then_t": 85, "else_t": 85, "term_or_list_1": 85, "term_or_list_2": 85, "topythonobj": [85, 114], "ff": [85, 94, 114, 131, 136, 144], "almost": 88, "exact": 88, "aim": 88, "z3": [88, 89], "verbos": [88, 131], "abil": 88, "everyth": 88, "visit": 88, "page": [88, 93, 130, 138, 145], "pip": [88, 130], "jn": [88, 130], "parallel": [88, 130], "thread": [88, 130], "want": [88, 107, 108, 130], "window": 88, "execut": [88, 107, 118, 119, 139, 145], "mingw64": [88, 130], "environ": [88, 130], "final": [88, 115, 131, 132], "sure": [88, 130], "python3": 88, "ctx": [89, 90, 91, 92, 93, 94, 95, 98, 100, 101, 102, 103], "is_real": [89, 95], "intval": [89, 92, 96, 100, 101, 102, 103, 122, 123], "100": [89, 131], "realval": [89, 95, 100, 103], "ratval": 89, "boolsort": [89, 90, 91, 92, 93, 98, 109, 127], "freshint": 89, "intvector": [89, 102], "sz": [89, 91, 92, 94], "x__0": 89, "x__1": 89, "x__2": 89, "freshreal": 89, "realvector": 89, "arithref": 89, "__add__": [89, 91, 94, 95, 100], "__sub__": [89, 91, 94, 95], "__mul__": [89, 91, 92, 94, 95], "__div__": [89, 91, 95], "__pow__": 89, "__neg__": [89, 91, 94, 95], "__gt__": [89, 91, 95, 103], "__lt__": [89, 91, 95, 103], "__ge__": [89, 91, 95, 103], "__le__": [89, 91, 95, 103], "exprref": [89, 91, 92, 94], "__eq__": [89, 91, 92, 94, 102], "__ne__": [89, 91, 92, 102], "main_ctx": [89, 92], "uminu": 89, "unari": [89, 91, 94, 95, 121, 143, 144, 150], "kept": 89, "compatibl": 89, "intsmodulu": 89, "__mod__": [89, 91, 95], "toreal": [89, 92], "toint": 89, "arithemt": 89, "cbrt": 89, "cubic": 89, "is_arith": 89, "is_int_valu": 89, "is_rational_valu": 89, "is_arith_sort": 89, "is_add": 89, "is_mul": 89, "is_sub": 89, "is_div": 89, "is_idiv": 89, "is_mod": 89, "is_l": 89, "is_lt": 89, "is_g": 89, "is_gt": 89, "is_is_int": 89, "is_to_r": 89, "is_to_int": 89, "arithsortref": 89, "smtexcept": [89, 90, 92, 96], "ex": [89, 92, 130], "reverse_children": [89, 90, 91, 92, 93, 94, 95, 98, 100, 101, 103], "boolval": [89, 92, 112], "__pos__": [89, 91, 94, 95], "__radd__": [89, 91, 94, 95], "__rdiv__": [89, 91, 95], "__rmod__": [89, 91, 95], "__rmul__": [89, 91, 92, 94, 95], "__rpow__": 89, "__rsub__": [89, 91, 94, 95], "__rtruediv__": [89, 91, 95], "__truediv__": [89, 91, 95], "intnumref": 89, "as_binary_str": 89, "1010": 89, "as_long": [89, 91, 94], "bignum": [89, 91, 94], "as_str": [89, 95, 100], "ratnumref": 89, "prec": [89, 131], "333": 89, "denominator_as_long": 89, "numerator_as_long": 89, "10000000000": 89, "10000000001": 89, "dom": 90, "rng": 90, "constarrai": 90, "alia": [90, 102, 131], "arraysort": [90, 92, 108], "aa": [90, 103], "unimpl": 90, "multi": [90, 131], "arrayref": 90, "is_array_sort": 90, "is_arrai": 90, "is_const_arrai": 90, "is_k": 90, "is_select": 90, "is_stor": 90, "is_upd": 90, "arraysortref": 90, "is_bv": [91, 95], "bitvecsort": [91, 92, 95, 108], "x2": [91, 94, 95, 144], "bitvecv": [91, 95], "0x": [91, 94, 95], "8x": [91, 94, 95], "0x0000000a": [91, 94], "byte": 91, "bitvecref": 91, "__or__": [91, 101], "__and__": [91, 101], "__xor__": 91, "__invert__": 91, "__lshift__": 91, "__rshift__": 91, "is_sign": 91, "num_bit": 91, "bv_x": 91, "bv_x_plus_4": 91, "289": 91, "3x": 91, "121": 91, "bvsle": 91, "bvslt": [91, 108], "bvsge": 91, "bvuge": 91, "bvsgt": [91, 108], "bvugt": 91, "bvsdiv": 91, "bvudiv": 91, "bvsmod": 91, "bvurem": 91, "bvsrem": 91, "bvashr": 91, "bvlshr": 91, "as_signed_long": [91, 94], "rotateleft": 91, "rotateright": 91, "signext": 91, "extra": 91, "24": [91, 95, 115, 131, 138, 144], "v0": 91, "254": 91, "fe": 91, "zeroext": 91, "repeatbitvec": 91, "aaaa": [91, 103], "bvredand": 91, "bvredor": 91, "bvadd": [91, 107], "bvmult": 91, "bvsub": [91, 107], "bvor": 91, "bvxor": [91, 107], "bvnot": 91, "is_bv_sort": 91, "is_bv_valu": 91, "bitvecsortref": 91, "b00000000000000000000000000001010": 91, "setsort": [91, 92, 101], "bvshl": 91, "__rand__": 91, "__rlshift__": 91, "__ror__": 91, "__rrshift__": 91, "__rxor__": 91, "bitvecnumref": 91, "0xbadc0d": 91, "195936478": 91, "0x0badc0d": 91, "is_tru": 92, "is_fals": 92, "is_bool": 92, "freshbool": 92, "b1": 92, "b2": 92, "blank": 92, "space": [92, 129], "boolvector": 92, "p__0": 92, "p__1": 92, "p__2": 92, "sever": [92, 104, 134, 135, 136, 149], "freshconst": 92, "freshfunct": 92, "probe": [92, 97], "p__3": 92, "p__4": 92, "mk_not": 92, "is_bool_valu": 92, "is_and": 92, "is_or": 92, "is_impli": 92, "is_not": 92, "is_eq": 92, "is_distinct": 92, "is_const": [92, 98], "is_func_decl": 92, "__bool__": 92, "__hash__": [92, 102], "__init__": [92, 93, 96, 102], "__nonzero__": 92, "__repr__": [92, 93, 102], "repr": [92, 93, 102], "__weakref__": [92, 93, 96, 102], "weak": [92, 93, 96, 102, 131], "as_ast": [92, 98], "n1": [92, 93, 140, 143], "n2": [92, 93], "get_id": 92, "hashcod": 92, "num_arg": 92, "sortref": 92, "pretti": 92, "boolref": 92, "boolsortref": 92, "is_expr": [92, 96], "funcdeclref": 92, "__call__": [92, 93], "coercion": [92, 93], "isinst": [92, 102], "manipul": 93, "happen": [93, 131], "intlist": 93, "third": 93, "finish": [93, 118, 119, 131, 139], "is_nil": [93, 110], "is_con": [93, 110], "testor": 93, "recogn": 93, "accessor": [93, 110], "ambigu": [93, 143], "datatypesortref": 93, "unambigu": 93, "createdatatyp": 93, "codatayp": 93, "intstream": 93, "helper": [93, 150], "treelist": 93, "car": 93, "cdr": 93, "tuplesort": [93, 147], "mk_pair": 93, "disjointsum": 93, "en": [93, 95], "wikipedia": [93, 95], "wiki": [93, 95], "tagged_union": 93, "injector": 93, "extractor": 93, "inject0": 93, "extract0": 93, "inject1": 93, "extract1": 93, "cell": 93, "num_constructor": [93, 110], "num_acc": 93, "is_nam": 93, "datatypeconstructorref": 93, "datatypeselectorref": 93, "datatyperecognizerref": 93, "datatyperef": 93, "finitefieldelem": [94, 114], "is_ff": 94, "finitefieldsort": [94, 114], "finitefieldv": 94, "29": 94, "f7": 94, "finitefieldref": 94, "ffadd": 94, "ffsub": 94, "ffneg": 94, "elemetn": 94, "ffmult": 94, "is_ff_sort": 94, "is_ff_valu": 94, "finitefieldsortref": 94, "31": [94, 113], "f10m31": 94, "finitefieldnumref": 94, "28": 94, "fpsort": 95, "is_fp": 95, "ebit": 95, "sbit": 95, "fpmul": 95, "rne": [95, 115], "fpadd": 95, "fpval": [95, 115], "25": [95, 131, 138], "exponent_as_long": 95, "0x00000004": 95, "125": 95, "fpnan": 95, "set_fpa_pretti": 95, "pb": [95, 131], "get_fpa_pretti": 95, "fpplusinfin": 95, "fpminusinfin": 95, "fpinfin": 95, "fppluszero": 95, "fpminuszero": 95, "fpzero": 95, "53": [95, 131], "float16": 95, "half": 95, "floathalf": 95, "float32": [95, 115, 131], "floatsingl": 95, "float64": [95, 131], "floatdoubl": 95, "float128": 95, "128": 95, "quadrupl": 95, "floatquadrupl": 95, "fpref": 95, "fpab": 95, "fpneg": 95, "rtz": 95, "fpsub": 95, "fpdiv": 95, "fprem": 95, "fpmin": 95, "fpmax": 95, "fpfma": 95, "fpsqrt": 95, "fproundtointegr": 95, "roundtointegr": 95, "fpisnan": [95, 115], "isnan": 95, "fpisinf": [95, 115], "isinfinit": 95, "fpiszero": 95, "iszero": 95, "fpisnorm": 95, "isnorm": [95, 115], "fpissubnorm": 95, "issubnorm": 95, "fpisneg": 95, "isneg": 95, "fpisposit": 95, "isposit": 95, "fplt": 95, "fpleq": 95, "fpgt": 95, "fpgeq": 95, "fpeq": [95, 115], "fpneq": 95, "fpfp": 95, "sgn": 95, "22": 95, "23": [95, 130], "fptofp": 95, "127": 95, "4194304": [95, 131], "xv": 95, "slvr": 95, "a1": 95, "a2": 95, "a3": 95, "x_db": 95, "x_r": 95, "x_sign": 95, "fpbvtofp": 95, "x_bv": 95, "0x3f800000": 95, "x_fp": 95, "1065353216": 95, "fpfptofp": 95, "x_sgl": 95, "x_dbl": 95, "fprealtofp": 95, "fpsignedtofp": 95, "4294967291": 95, "fpunsignedtofp": 95, "fptofpunsign": 95, "fptosbv": 95, "fptoubv": 95, "fptoreal": 95, "is_fp_sort": 95, "is_fp_valu": 95, "is_fprm_sort": 95, "is_fprm": 95, "is_fprm_valu": 95, "roundnearesttiestoeven": [95, 115], "broken": 95, "doi": [95, 138], "1109": [95, 138], "ieeestd": [95, 138], "8766229": [95, 138], "point_arithmet": 95, "rounding_mod": 95, "roundnearesttiestoawai": 95, "rna": 95, "roundtowardposit": 95, "rtp": [95, 115], "roundtowardneg": 95, "rtn": [95, 115], "roundtowardzero": 95, "get_default_rounding_mod": 95, "set_default_rounding_mod": [95, 115], "sum1": 95, "sum2": 95, "solverfor": [95, 102, 117], "qf_fp": [95, 115], "explicit": [95, 99], "get_default_fp_sort": 95, "set_default_fp_sort": 95, "fpsortref": 95, "b0": 95, "b01111111": 95, "b00000000000000000000000": 95, "fpnumref": 95, "bias": [95, 131], "isinf": 95, "subnorm": 95, "significand_as_long": 95, "miss": [95, 97, 103, 130], "2097152": 95, "fprmref": 95, "is_sort": 96, "is_app": 96, "is_app_of": 96, "z3py": 97, "pseudo": [97, 131], "atmost": 97, "atleast": 97, "partialord": 97, "linearord": 97, "html": [97, 130], "hook": 97, "fixedpoint": 97, "builder": 97, "overview": [97, 134], "finitefield": [97, 114, 144], "fp": [97, 115, 131, 140], "mem0": 98, "lo": [98, 103], "hi": [98, 103], "mem1": 98, "is_var": 98, "is_quantifi": 98, "quantifierref": 98, "is_exist": 98, "is_foral": 98, "is_lambda": 98, "num_var": 98, "var_nam": 98, "displai": [98, 109], "var_sort": 98, "With": [99, 132], "seqsort": [100, 103, 122], "stringsort": [100, 103], "e2": 100, "stringval": [100, 103, 124], "e3": 100, "subseq": 100, "offset": [100, 103], "sequpd": 100, "content": [100, 130], "lst": 100, "seqref": 100, "seqsortref": 100, "elem_sort": [100, 101, 108], "is_str": 100, "At": [100, 103], "is_string_valu": 100, "emptyset": [101, 123, 145, 147], "fullset": 101, "setunion": 101, "setintersect": 101, "setadd": 101, "setdel": 101, "setdiffer": 101, "setcompl": 101, "ismemb": [101, 123], "issubset": [101, 123], "setref": 101, "setsortref": 101, "kwarg": 102, "solve_us": 102, "claim": 102, "tri": [102, 131, 132], "counterexampl": [102, 115, 131], "is_tautologi": [102, 115], "noth": [102, 116], "logfil": 102, "uiowa": 102, "edu": 102, "simplesolv": 102, "__iadd__": 102, "fml": 102, "assert_expr": 102, "eval": [102, 131], "ackermann": [102, 131], "initfromlog": 102, "num_scop": 102, "backtrack": 102, "runtimeerror": 102, "reason_unknown": 102, "why": [102, 131, 132], "recreat": 102, "crash": [102, 131], "foo": [102, 118, 119], "lisp": 102, "checksatresult": 102, "modelref": 102, "aka": 102, "__len__": 102, "model_complet": 102, "a__0": 102, "a__1": 102, "a__2": 102, "a__3": 102, "a__4": 102, "hello": [103, 111], "s2": [103, 124, 146], "abcabc": 103, "dst": [103, 146], "he": 103, "strtoint": 103, "inttostr": 103, "55": 103, "strtocod": 103, "97": [103, 148], "42": [103, 138], "strfromcod": 103, "stringref": 103, "accept": [103, 145], "inr": [103, 124], "bb": 103, "re2": 103, "comp_r": 103, "stringsortref": 103, "easiest": 104, "later": [105, 131], "written": [105, 134], "intersectionac": [106, 123, 142, 147], "intersectionbc": [106, 123, 142, 147], "distribut": [106, 121, 123, 130, 131, 142, 147], "uniondisjointab": [106, 142], "lh": [106, 115, 123, 124, 125, 142, 147], "rh": [106, 115, 123, 124, 125, 142, 147], "guess": [106, 131, 140, 142], "unionmaxab": [106, 142], "theorem": [106, 123, 129, 142, 147], "verifi": [106, 121, 123, 131, 142, 147], "emptbag": [106, 142], "emptybag": [106, 142], "four": [106, 142], "bag_a_2": [106, 142], "bag_b_3": [106, 142], "bag_b_1": [106, 142], "bag_c_2": [106, 142], "bag_a_2_b_3": [106, 142], "bag_b_1_c_2": [106, 142], "union_disjoint": [106, 142], "count_x": [106, 142], "cvc5_get_string_sort": [106, 124], "interac": 106, "interbc": 106, "union_disab": 106, "args_not": 106, "not_guess": 106, "union_maxab": 106, "not_arg": 106, "not_theorem": 106, "empty_bag": 106, "cvc5_mk_empty_bag": 106, "cvc5_mk_string": [106, 124], "uniondisjoint": [106, 140, 142], "inter_min": [106, 142], "union_max": [106, 142], "liana": [107, 108, 138], "hadarean": [107, 108, 138], "andrew": [107, 110, 113, 116, 118, 119, 121, 123, 125, 126, 138, 147], "book": 107, "hacker": 107, "delight": 107, "henri": 107, "warren": 107, "straightforward": [107, 147], "piec": 107, "bv32": [107, 113], "x_eq_a": 107, "x_eq_b": 107, "new_x": 107, "new_x_": 107, "assignment0": 107, "a_xor_b_xor_x": 107, "assignment1": 107, "new_x_eq_new_x_": 107, "a_plus_b": 107, "a_plus_b_minus_x": 107, "assignment2": 107, "x_neq_x": 107, "extract_op": 107, "lsb_of_a": 107, "a_odd": 107, "1u": 107, "args3": [107, 108, 109, 110, 115, 117, 122, 124, 125, 126], "not_new_x_eq_new_x_": 107, "not_queri": 107, "cvc5_mk_bv_uint64": [107, 108, 115], "deter": [107, 108, 109, 110, 116, 117], "bitvector32": [107, 113], "x_is_a_or_b": 107, "new_x0": 107, "per": [107, 131, 139, 140], "new_x1": 107, "new_x2": 107, "makai": [107, 108, 109, 110, 113, 115, 116, 117, 122, 123, 124, 147], "mann": [107, 108, 109, 110, 113, 115, 116, 117, 122, 123, 124, 147], "satisifi": 107, "lsb": 107, "bv1": [107, 108, 115, 131], "bitvectors_and_arrai": 108, "mathia": [108, 109, 115, 116, 117, 121, 124, 125, 126, 138, 147, 150], "preiner": [108, 109, 115, 116, 117, 121, 124, 125, 126, 131, 147, 150], "qf_abv": [108, 131], "previous": [108, 143], "current_arrai": 108, "unrol": 108, "index_s": 108, "log2": [108, 131], "elementsort": [108, 142, 147], "0u": 108, "current_array0": 108, "current_array0_gt_0": 108, "old_curr": 108, "2u": 108, "new_curr": 108, "current_slt_new_curr": 108, "push_back": [108, 143], "index_sort": 108, "arr_sort": 108, "cvc5_mk_array_sort": 108, "cur_arr": 108, "cur_arr0": 108, "cur_arr0_gt_0": 108, "old_cur": 108, "new_cur": 108, "cur_slt_new_cur": 108, "bitvectorsandarrai": 108, "privat": [108, 109, 110, 125, 126], "log": [108, 131, 138], "toarrai": [108, 125, 126], "idx_bit": 108, "ceil": 108, "init_arrai": 108, "init_arr": 108, "larg": [108, 129], "enough": 108, "constarr0": 108, "zeroi": 108, "bv0": 108, "onei": 108, "twoi": 108, "bv2": 108, "threei": 108, "bv3": 108, "twoe": 108, "unroll1": 108, "current_array_": 108, "unroll2": 108, "current_array__": 108, "unroll3": 108, "current_array___": 108, "tim": [109, 116, 117, 138], "king": [109, 116, 117, 138], "prefixprintgetvalu": 109, "dag": [109, 131], "thresh": [109, 131], "disabl": [109, 131, 139], "dagifi": [109, 131], "qf_uflira": 109, "utoint": 109, "intpr": 109, "f_x": [109, 127], "f_y": [109, 127], "p_0": 109, "p_f_y": [109, 127], "nest": [109, 131], "it2": 109, "prefix_print_get_valu": 109, "statement": 109, "un_sort": [109, 127], "bool_sort": [109, 125, 126, 127], "un_to_int_sort": 109, "cvc5_mk_fun_sort": [109, 127], "int_pred_sort": 109, "args0": 109, "aarg": 109, "it1": 109, "hasnext": [109, 110], "def": [109, 110, 112, 125, 126, 131], "print_val": 109, "print_all_subterm": 109, "ncvc5": 109, "induct": [110, 113, 131, 138, 143, 145], "conslistsort": 110, "old": [110, 131], "conslistspec": 110, "useless": 110, "relev": [110, 131], "spec": 110, "datatypesort": 110, "fill": 110, "conslist": 110, "too": 110, "though": [110, 147], "cours": 110, "t_is_con": 110, "t_updat": 110, "paramconslistspec": 110, "paramlist": 110, "paramcon": 110, "paramnil": 110, "paramconslistsort": 110, "paramconsintlistsort": 110, "paramconslist": 110, "head_a": 110, "50": [110, 131], "keep": [110, 131], "mind": 110, "selfsort": 110, "cons2": 110, "nil2": 110, "conslistsort2": 110, "list2": 110, "cons_list_sort": 110, "cons_list_decl": 110, "cons_list": 110, "cvc5_dt_cons_get_constructor_by_nam": 110, "nil_term": 110, "cons_term": 110, "dtcon": 110, "dtsel": 110, "param_cons_list_decl": 110, "cvc5_mk_dt_decl_with_param": 110, "param_con": 110, "param_nil": 110, "param_cons_list_sort": 110, "param_cons_int_list_sort": 110, "param_cons_list": 110, "cons_list_sort2": 110, "nsimplifi": 110, "qf_ufdtlia": 110, "singular": 110, "parlist": 110, "parhead": 110, "partail": 110, "parlistint": 110, "ahead": 110, "mechan": [111, 131, 139], "world": 111, "execpt": 112, "invalidterm": 112, "legaci": 112, "sy": [112, 125, 126, 132], "em": 112, "example_except": 112, "clark": [113, 138], "barrett": [113, 138], "ext_31_1": 113, "x_31_1": 113, "ext_30_0": 113, "x_30_0": 113, "ext_31_31": 113, "x_31_31": 113, "ext_0_0": 113, "x_0_0": 113, "di": 113, "eq2": [113, 115, 127], "01234567": 113, "visual": [113, 130, 135, 137], "1234567": 113, "0123456": 113, "a_31_1": 113, "a_30_0": 113, "a_31_31": 113, "a_0_0": 113, "finite_field": 114, "cassert": [114, 115], "f5": 114, "aistwo": 114, "bistwo": 114, "cvc5_mk_ff_sort": 114, "cvc5_mk_ff_elem": 114, "ff_mul": 114, "ff_add": 114, "a_is_two": 114, "b_is_two": 114, "sokolov": 114, "qf_ff": [114, 144], "ff1": 114, "ff2": 114, "floating_point_arith": 115, "toi": 115, "2008": [115, 138], "fpt32": 115, "fma": 115, "restrict": [115, 131, 139, 140], "inf": [115, 131], "to_ubv": [115, 140], "fp32": 115, "cvc5_mk_fp_sort": 115, "cvc5_mk_rm": 115, "args4": 115, "fp_add": 115, "cvc5_mk_fp_nan": 115, "cvc5_mk_fp_pos_inf": 115, "eq1": [115, 127], "real_val": 115, "cvc5_mk_fp_pos_zero": 115, "cvc5_mk_fp": 115, "floatingpointarith": 115, "0b001": 115, "floating_point": 115, "anjiang": 115, "wei": 115, "succe": 115, "contribut": 115, "eva": 115, "darulova": 115, "symfpu": 115, "to_fp": 115, "veri": [116, 134], "helloworld": 116, "tutori": 116, "qf_uf": [116, 127], "firstli": 117, "secondli": 117, "tight": 117, "linear_arith": 117, "haniel": [117, 138], "barbosa": [117, 131, 138], "qf_lira": 117, "neg2": 117, "two_third": 117, "three_i": 117, "x_geq_3i": 117, "x_leq_i": 117, "neg2_lt_x": 117, "diff_leq_two_third": 117, "diff_is_two_third": 117, "cvc5_mk_real_num_den": 117, "lineararith": 117, "cvc5_parser": [118, 119], "ss": [118, 119, 125, 126, 131], "qf_lia": [118, 119], "mystream": [118, 119], "break": [118, 119, 131], "cvc5_parser_new": [118, 119], "cvc5_input_language_smt_lib_2_6": [118, 119], "cvc5_parser_get_sm": 118, "error_msg": [118, 119], "daniel": [118, 119], "larraz": [118, 119], "myinput": [118, 119], "parser_sym_manag": 119, "parser2": 119, "ss2": 119, "45": 119, "mystream2": 119, "cvc5_symbol_manager_new": 119, "parser1": 119, "ntrue": 119, "parsersymbolmanag": 119, "myinput2": 119, "input2": 119, "famili": [121, 140], "peopl": [121, 147], "male": [121, 147], "femal": [121, 147], "father": [121, 147], "mother": [121, 147], "parent": [121, 147], "ancestor": [121, 147], "descend": [121, 147], "nonempti": 121, "cap": [121, 131, 142], "bowti": 121, "subseteq": [121, 142], "cup": [121, 142], "person": [121, 147], "langl": 121, "rangl": 121, "mrtb17": [121, 138, 147], "personsort": [121, 147], "tuplearity1": [121, 147], "relationarity1": [121, 147], "tuplearity2": [121, 147], "relationarity2": [121, 147], "emptysetterm": [121, 147], "emptyrelationterm": [121, 147], "universeset": [121, 147], "isempty1": [121, 147], "isempty2": [121, 147], "peoplearetheunivers": [121, 147], "malesetisnotempti": [121, 147], "femalesetisnotempti": [121, 147], "malesfemalesintersect": [121, 147], "malesandfemalesaredisjoint": [121, 147], "isempty3": [121, 147], "isempty4": [121, 147], "fatherisnotempti": [121, 147], "motherisnotempti": [121, 147], "fathersaremal": [121, 147], "mothersarefemal": [121, 147], "unionfathermoth": [121, 147], "parentisfatherormoth": [121, 147], "tclosur": [121, 147], "transitiveclosur": [121, 147], "ancestorformula": [121, 147], "descendantformula": [121, 147], "xxtupl": [121, 147], "notmemb": [121, 147], "quantifiedvari": [121, 147], "noselfancestor": [121, 147], "person_sort": 121, "sorts1": 121, "tuple_arity1": 121, "cvc5_mk_tuple_sort": 121, "rel_arity1": 121, "sorts2": 121, "tuple_arity2": 121, "rel_arity2": 121, "empty_set": [121, 123], "cvc5_mk_empty_set": [121, 123], "empty_rel": 121, "universe_set": 121, "cvc5_mk_universe_set": 121, "is_empty1": 121, "is_empty2": 121, "people_univers": 121, "male_not_empti": 121, "female_not_empti": 121, "inter_males_femal": 121, "disjoint_males_femal": 121, "is_empty3": 121, "is_empty4": 121, "father_not_empti": 121, "mother_not_empti": 121, "fathers_are_mal": 121, "mothers_are_femal": 121, "union_father_moth": 121, "parent_is_father_or_moth": 121, "trans_closur": 121, "ancestor_formula": 121, "descendant_formula": 121, "xx_tupl": 121, "cvc5_mk_tupl": 121, "not_memb": 121, "not_self_ancestor": 121, "set_": [121, 123, 147], "tianyi": [122, 124], "liang": [122, 124], "qf_slia": [122, 124, 146], "intseq": 122, "concat_len": 122, "formula1": [122, 124], "formula2": [122, 124], "int_seq": 122, "cvc5_mk_sequence_sort": 122, "cvc5_mk_empty_sequ": 122, "smtlib2": [122, 124], "kshitij": [123, 138, 147], "bansal": [123, 138, 147], "qf_ufliaf": [123, 147], "unionab": [123, 147], "emptset": [123, 147], "me": [123, 147], "singleton_on": [123, 147], "singleton_two": [123, 147], "singleton_thre": [123, 147], "one_two": [123, 147], "two_thre": [123, 147], "union_ab": 123, "inter_ac": 123, "inter_bc": 123, "sing_on": 123, "sing_two": 123, "sing_thre": 123, "str_ab": 124, "leni": 124, "formula3": 124, "len_i": 124, "reg_star": 124, "to_r": 124, "abdalrhman": [125, 126], "start_bool": 125, "startbool": 125, "varx": 125, "vari": [125, 131], "max_x_i": 125, "min_x_i": 125, "printsynthsolut": [125, 126], "rules7": 125, "rules3": 125, "var_x": 125, "var_i": 125, "cvc5_synth_result_has_solut": [125, 126], "sol": [125, 126, 131], "print_synth_solut": [125, 126], "sygusfun": 125, "header": [125, 126], "ifndef": [125, 126], "cvc5__utils_h": [125, 126], "endif": [125, 126], "definefuntostr": [125, 126], "cvc5__c_utils_h": [125, 126], "nterm": [125, 126], "nparam": [125, 126], "print_define_fun": [125, 126], "psol": [125, 126], "malloc": [125, 126], "sizeof": [125, 126], "stringbuild": [125, 126], "getchild": [125, 126], "define_fun_to_str": [125, 126], "ten": 126, "xp": 126, "pre_f": 126, "trans_f": 126, "post_f": 126, "inv_f": 126, "el": 126, "vars1": 126, "vars2": 126, "sygusinv": 126, "utou": 127, "upr": 127, "p_f_x": 127, "un_to_un_sort": 127, "un_pred_sort": 127, "not_p_f_x": 127, "prover": 129, "successor": 129, "cvc4": 129, "local": [130, 131], "build_dir": 130, "linux": 130, "msys2": 130, "x86_64": 130, "mingw": 130, "w64": 130, "arm64": 130, "homebrew": 130, "tap": 130, "link": 130, "strongli": [130, 131], "discourag": 130, "dynam": [130, 131], "your": 130, "launch": 130, "packag": 130, "pacman": 130, "gcc": 130, "zip": 130, "repositori": [130, 133, 134, 136], "dll": 130, "posix": 130, "ubuntu": 130, "sudo": 130, "mingw32": 130, "win64": 130, "emscripten": 130, "sdk": 130, "emsdk": 130, "prefer": [130, 131], "latest": 130, "chanc": 130, "activ": [130, 131], "emsdk_env": 130, "whenev": [130, 131, 139], "go": [130, 131], "wasm": 130, "glue": 130, "web": 130, "quot": 130, "prod": 130, "server": 130, "8000": 130, "chrome": 130, "press": 130, "esc": 130, "twice": 130, "modular": [130, 138], "dep": 130, "clang": 130, "ninja": 130, "tomli": 130, "pypars": 130, "v6": 130, "pyvenv": 130, "ship": 130, "cad": 130, "nonlinear": [130, 131, 138, 150], "poli": [130, 131], "patch": 130, "gpl": 130, "gplv3": 130, "ramif": 130, "multiprecis": 130, "better": [130, 144], "footprint": 130, "permiss": 130, "speed": [130, 131], "offici": 130, "discuss": 130, "edit": 130, "tab": 130, "histori": [130, 131], "prompt": 130, "libedit": 130, "devel": 130, "flexibl": [130, 133], "simplevc": 130, "jdk": 130, "pytest": 130, "repairwheel": 130, "setuptool": 130, "66": 130, "help": [130, 131], "develop": 130, "pleas": 130, "contact": 130, "team": 130, "issu": 130, "tracker": 130, "sphinx": 130, "rtd": 130, "theme": 130, "sphinxcontrib": 130, "bibtex": 130, "programoutput": 130, "breath": 130, "gh": 130, "readm": 130, "md": 130, "ctest": 130, "infrastructur": 130, "regex": 130, "exclud": [130, 140], "label": 130, "le": [130, 144], "failur": [130, 131], "regressn": 130, "apitest": 130, "api_test": 130, "system_test": 130, "ext": [130, 131], "ourobor": 130, "unit_test": 130, "subdir": 130, "map_util_black": 130, "regress_test": 130, "regress0": [130, 132, 133, 134, 136, 141], "bug288b": 130, "preconfigur": 130, "systemtest": 130, "runexampl": 130, "coverag": 130, "gcov": 130, "commit": 130, "sha": 130, "config": [130, 131], "wget": 130, "archiv": 130, "tar": 130, "gz": 130, "xf": 130, "runtim": [131, 141], "wide": [131, 141], "letter": 131, "interv": [131, 150], "treatment": 131, "exhaust": [131, 139], "lang_auto": 131, "inst": 131, "gterm": 131, "benchmark": 131, "lit": 131, "deep": 131, "restart": [131, 139], "portfolio": 131, "db": 131, "summari": [131, 132], "techniqu": [131, 132, 150], "receiv": 131, "candid": [131, 132], "along": [131, 132, 140], "successfulli": [131, 132], "diagnost": [131, 132], "entir": [131, 132], "quiet": 131, "decreas": 131, "rlimit": [131, 139], "reproduc": 131, "tlimit": 131, "millisecond": [131, 139], "wall": 131, "clock": 131, "shell": 131, "seed": 131, "random": 131, "attempt": 131, "toler": 131, "conform": 131, "subexpr": 131, "don": 131, "depth": 131, "granular": [131, 134, 136], "improv": 131, "condens": 131, "hole": [131, 133], "approx": 131, "200": [131, 132], "brab": 131, "cube": 131, "prop": 131, "unat": 131, "bi": 131, "decid": [131, 145], "tableau": 131, "row": 131, "shorter": 131, "cut": 131, "dio": 131, "decomp": 131, "leak": 131, "diophantin": 131, "griggio": [131, 138], "jsat": 131, "2012": 131, "varord": 131, "simplex": 131, "violat": 131, "fc": 131, "penalti": 131, "degener": 131, "unset": 131, "tune": 131, "maxcutsincontext": 131, "65535": 131, "miplib": 131, "trick": 131, "tmp": 131, "nl": [131, 132], "cov": [131, 132], "cylindr": 131, "lazard": 131, "scheme": 131, "discard": 131, "proj": [131, 143], "mccallum": 131, "prune": 131, "aggress": 131, "light": 131, "approach": 131, "weight": [131, 139], "ent": 131, "inc": 131, "irrat": 131, "purifi": [131, 140], "rbound": 131, "tf": 131, "deg": 131, "interleav": 131, "icp": 131, "rlv": [131, 132], "threshold": 131, "pp": 131, "ppassert": 131, "earli": 131, "eagerli": 131, "reject": 131, "25500": 131, "coeffici": 131, "effort": [131, 132], "fulleffort": 131, "revert": 131, "known": 131, "cach": 131, "rr": 131, "robin": 131, "se": 131, "recheck": 131, "soi": 131, "quick": [131, 133, 134, 136], "explain": [131, 147], "minim": 131, "infeas": 131, "invoc": 131, "bland": 131, "ineq": 131, "relationship": 131, "fcsimplex": 131, "focus": 131, "converg": 131, "fmcad": 131, "2013": [131, 138], "submiss": 131, "moura": [131, 138], "09": 131, "care": 131, "graph": [131, 135], "christ": 131, "hoenick": 131, "2014": 131, "channel": 131, "managederr": 131, "stderr": 131, "managedin": 131, "stdin": 131, "managedout": 131, "rweight": [131, 139], "trace": 131, "someth": 131, "pushpop": 131, "wildcard": 131, "lazi": 131, "booltobv": 131, "ITEs": 131, "gauss": 131, "gaussian": 131, "blaster": [131, 140], "rw": 131, "2017": [131, 138], "scholl": 131, "smt08": 131, "minisat": 131, "cryptominisat": 131, "cadic": 131, "kissat": 131, "backend": 131, "cdt": 131, "bisimilar": 131, "cyclic": 131, "send": 131, "polit": 131, "across": [131, 141], "abort": 131, "tell": 131, "fair": 131, "height": 131, "instant": [131, 132], "agg": 131, "smart": 131, "lazili": 131, "pbe": 131, "stoponli": [131, 132], "atgp": 131, "inspir": 131, "stop": 131, "jh": 131, "pend": 131, "do_semantic_checks_by_default": 131, "wf": 131, "groebner": [131, 144], "basi": 131, "gb": 131, "wb": 131, "lazier": 131, "prenotifyfact": 131, "registerterm": 131, "dump": [131, 132, 133, 134, 136], "measur": [131, 139], "cpu": 131, "job": 131, "segv": 131, "spin": 131, "segfault": 131, "wait": 131, "gdb": 131, "emit": 131, "chosen": 131, "request": 131, "scatter": 131, "c2": [131, 145], "c3": 131, "60": 131, "climit": 131, "partitionwhen": 131, "exceed": 131, "filesystem": 131, "lenient": 131, "Be": 131, "b0001": 131, "ho": 131, "token": 131, "lex": 131, "array_diff_n": 131, "sound": 131, "reconstruct": [131, 133, 138], "cluster": 131, "preambl": 131, "subtyp": 131, "mix": [131, 134, 149], "pedant": 131, "incorrect": 131, "untrust": 131, "processor": 131, "redeclar": 131, "rcon": 131, "1000": 131, "calus": 131, "preregist": 131, "regist": 131, "freq": 131, "cdcl": 131, "cbqi": [131, 132], "qcf": 131, "rd": 131, "irrelev": 131, "portion": [131, 148], "tconstraint": 131, "vo": 131, "cegi": 131, "sampl": 131, "acceler": 131, "inde": 131, "spuriou": 131, "cegqi": 131, "slack": 131, "boundari": 131, "becom": 131, "adder": 131, "resort": 131, "vt": 131, "innermost": 131, "midpoint": 131, "constrain": [131, 140], "nopt": 131, "quant": [131, 132], "ground": [131, 140], "stc": 131, "ind": 131, "strengthen": 131, "quantif": [131, 132], "tautolog": 131, "stratifi": 131, "favor": 131, "fmf": 131, "proxi": 131, "admiss": 131, "mbqi": 131, "fmc": 131, "thesi": 131, "satur": 131, "due": [131, 139, 140], "ax": 131, "ieval": 131, "delai": 131, "dtt": 131, "ites": 131, "smaller": [131, 146], "conserv": 131, "likewis": 131, "fast": [131, 132], "augment": 131, "dsplit": [131, 132], "wd": 131, "rep": 131, "ee": 131, "analysi": [131, 138], "subsolv": 131, "crepair": 131, "repair": 131, "agnost": 131, "geometr": 131, "miner": 131, "stronger": 131, "weaker": 131, "backward": 131, "concis": 131, "symobl": 131, "disj": 131, "insid": 131, "templ": 131, "precondit": 131, "postcondit": 131, "sg": 131, "minimi": 131, "preproc": 131, "fuzz": [131, 133, 134, 136], "unsolv": 131, "hard": [131, 132], "avoid": 131, "accel": 131, "uniform": 131, "uniformli": 131, "fashion": 131, "si": [131, 148], "10000": 131, "unlimit": 131, "igain": 131, "piecewis": 131, "indeped": 131, "unconstrain": [131, 140], "gain": 131, "shuffl": 131, "verif": [131, 138], "databas": 131, "pat": 131, "ignor": [131, 146], "unbound": 131, "sep": [131, 145], "refin": [131, 150], "shorten": 131, "mayb": 131, "expens": 131, "averag": 131, "rew": 131, "prep": 131, "foreign": 131, "simp": 131, "kim": 131, "somenzi": 131, "suffici": 131, "unev": 131, "unevaluat": 131, "regardless": 131, "track": [131, 140], "unless": 131, "sove": 131, "nonclaus": 131, "compress": 131, "simplifywithcar": 131, "simplifici": 131, "batch": 131, "save": [131, 135], "clausal": 131, "bcp": 131, "4294967295": 131, "pure": 131, "bitwidth": 131, "monoton": 131, "bruttomesso": 131, "brummay": 131, "phd": 131, "prepocess": 131, "196608": 131, "alphabet": 131, "reg": 131, "registr": 131, "preregistr": 131, "flat": 131, "mbr": 131, "2147483647": 131, "65536": 131, "posc": 131, "rexplain": 131, "regress": [131, 132, 133, 134, 136, 141], "central": [131, 139], "inprocess": 131, "tc": [131, 132], "theoryof": 131, "conv": 131, "breaker": [131, 132], "deharb": 131, "cade": [131, 138], "2011": [131, 138], "ll": 131, "shrink": 131, "cli": [132, 133, 134, 136, 141], "regress1": 132, "qid": 132, "myquant1": 132, "myquant2": 132, "regress2": 132, "javaf": 132, "checkcompilationunit": 132, "001": 132, "00025": 132, "002043": 132, "003898": 132, "002989": 132, "ematch": 132, "119": 132, "015116": 132, "002756": 132, "006344": 132, "006073": 132, "006023": 132, "78": 132, "013969": 132, "003648": 132, "000111": 132, "003596": 132, "a_int": 132, "a_bool": 132, "role": 132, "single_solut": 132, "cvc": [132, 136], "nat": 132, "succ": 132, "pred": 132, "print_sub": 132, "print_sat_lemma": 132, "quantifiers_inst_cbqi_conflict": 132, "print_trusted_proof_step": 132, "theory_arith": 132, "p1": [132, 134, 136], "p2": [132, 134, 136], "p3": [132, 134, 136], "print_timeout_cor": 132, "564838384999": 132, "print_unsat_cor": 132, "x20": 132, "print_unsat_core_lemma": 132, "arith_un": 132, "timestamp": 132, "025": 132, "block_model_out": 132, "print_options_auto": 132, "coars": 133, "verit": [133, 138], "bdodeharbef09": [133, 138], "isabel": 133, "hol": 133, "bbff20": [133, 138], "sfd21": [133, 138], "coq": [133, 138], "smtcoq": [133, 138], "afgregoir": [133, 138], "emt": [133, 138], "rust": 133, "carcara": 133, "script": [133, 134, 136], "qgu": [133, 134, 136], "a0": [133, 136], "p_7": 133, "p_6": 133, "p_4": 133, "p_5": 133, "p_2": 133, "p_3": 133, "p_8": 133, "t0": 133, "cl": 133, "p_19": 133, "equiv1": 133, "t3": [133, 134, 136], "p_11": 133, "p_10": 133, "equiv_pos2": 133, "t4": 133, "t5": 133, "p_9": 133, "p_12": 133, "t6": 133, "p_13": 133, "p_18": 133, "t7": 133, "p_14": 133, "t8": 133, "t9": 133, "t10": 133, "p_15": 133, "t11": 133, "p_16": 133, "t12": 133, "p_17": 133, "t13": 133, "t14": 133, "t15": 133, "t16": 133, "t17": 133, "t18": 133, "t19": 133, "t20": 133, "t21": 133, "t22": 133, "t23": 133, "or_neg": 133, "t24": 133, "t25": 133, "t26": 133, "contract": 133, "t27": 133, "faithfulli": [134, 137], "As": [134, 139, 144], "disclaim": 134, "etho": 134, "framework": [134, 136, 138], "p4": 134, "p5": 134, "p6": 134, "p7": 134, "p8": 134, "p9": 134, "p10": 134, "p11": 134, "p12": 134, "p13": 134, "p14": 134, "p15": 134, "p16": 134, "p17": 134, "p18": 134, "p19": 134, "p20": 134, "p21": 134, "p22": 134, "p23": 134, "leverag": 135, "dedic": 135, "suffic": 135, "upload": 135, "color": [135, 143], "stepwis": 135, "lf": 136, "sor": [136, 138], "often": 136, "plet": 136, "f_and": 136, "f_not": 136, "tt": [136, 138], "reflect": [137, 139], "meant": 137, "micha": 138, "\u00eb": 138, "armand": 138, "germain": 138, "faur": 138, "benjamin": 138, "gr": 138, "\u00e9": 138, "goir": 138, "chantal": 138, "keller": 138, "laurent": 138, "ry": 138, "werner": 138, "slash": 138, "jean": 138, "pierr": 138, "jouannaud": 138, "zhong": 138, "shao": 138, "editor": 138, "certifi": 138, "volum": 138, "7086": 138, "lectur": 138, "scienc": 138, "135": 138, "150": 138, "springer": 138, "1007": 138, "978": 138, "642": 138, "25379": 138, "9_12": 138, "bbrt17": [138, 147], "cesar": 138, "tinelli": 138, "procedur": [138, 143, 145, 150], "corr": 138, "arxiv": 138, "1702": 138, "06259": 138, "jasmin": 138, "christian": 138, "blanchett": 138, "fleuri": 138, "pascal": 138, "fontain": 138, "scalabl": 138, "journal": 138, "autom": 138, "485": 138, "510": 138, "2020": 138, "url": 138, "s10817": 138, "018": 138, "09502": 138, "bft17": [138, 145], "technic": 138, "depart": 138, "iowa": 138, "www": 138, "bst07": [138, 143], "igor": 138, "shikanian": 138, "satisf": 138, "21": 138, "46": 138, "2007": 138, "3233": 138, "sat190028": 138, "thoma": 138, "bouton": 138, "diego": 138, "caminha": 138, "oliveira": 138, "david": 138, "harb": 138, "pen": 138, "rustabl": 138, "fficient": 138, "olver": 138, "renat": 138, "schmidt": 138, "confer": 138, "deduct": 138, "5663": 138, "151": 138, "156": 138, "dx": 138, "02959": 138, "2_12": 138, "cgi": [138, 150], "alessandro": 138, "cimatti": 138, "alberto": 138, "ahm": 138, "irfan": 138, "marco": 138, "roveri": 138, "roberto": 138, "sebastiani": 138, "acm": 138, "52": [138, 145], "2018": [138, 140], "1145": 138, "3230639": 138, "burak": 138, "ekici": 138, "alain": 138, "mebsout": 138, "gui": 138, "katz": 138, "plug": 138, "rupak": 138, "majumdar": 138, "viktor": 138, "kuncak": 138, "aid": 138, "10427": 138, "126": 138, "133": 138, "319": 138, "63390": 138, "9_7": 138, "84": 138, "baoluo": 138, "meng": 138, "leonardo": 138, "26": 138, "26th": 138, "gothenburg": 138, "sweden": 138, "august": 138, "10395": 138, "148": 138, "165": 138, "63046": 138, "5_10": 138, "oktb23": [138, 144], "constantin": 138, "enea": 138, "akash": 138, "lal": 138, "13965": 138, "163": 138, "186": 138, "2023": 138, "031": 138, "37703": 138, "7_8": 138, "opb": [138, 144], "shankara": 138, "pailoor": 138, "alp": 138, "bassa": 138, "kosta": 138, "ferl": 138, "i\u015f\u0131l": 138, "dillig": 138, "gr\u00f6bner": 138, "ia": 138, "cr": 138, "572": 138, "rb15": [138, 143], "ami": 138, "felti": 138, "aart": 138, "middeldorp": 138, "25th": 138, "berlin": 138, "germani": 138, "2015": 138, "9195": 138, "197": 138, "213": 138, "21401": 138, "6_13": 138, "risk16": [138, 145], "radu": 138, "iosif": 138, "cristina": 138, "serban": 138, "cyril": 138, "artho": 138, "axel": 138, "legai": 138, "doron": 138, "pele": 138, "technologi": 138, "14th": 138, "symposium": 138, "atva": 138, "2016": 138, "chiba": 138, "japan": 138, "octob": 138, "9938": 138, "244": 138, "261": 138, "46520": 138, "3_16": 138, "han": 138, "\u00f6": 138, "rg": 138, "schurr": 138, "martin": 138, "desharnai": 138, "reliabl": 138, "assist": 138, "platzer": 138, "geoff": 138, "sutcliff": 138, "12699": 138, "450": 138, "467": 138, "2021": 138, "030": 138, "79876": 138, "5_26": 138, "aaron": 138, "stump": 138, "duckki": 138, "oe": 138, "syst": 138, "91": 138, "118": 138, "s10703": 138, "012": 138, "0163": 138, "amount": 139, "honor": 139, "subroutin": 139, "realiz": 139, "afterward": 139, "asynchron": 139, "setitim": 139, "ulimit": 139, "inher": 139, "unsuit": 139, "standalon": 139, "effect": 139, "soon": 139, "intent": 139, "spent": 139, "event": 139, "restartstep": 139, "export": [140, 141], "intuit": [140, 147], "fact": 140, "k2": 140, "apart": 140, "div_by_zero": 140, "ground_term": 140, "bv_empti": 140, "int_div_by_zero": 140, "mod_by_zero": 140, "transcendental_purifi": 140, "trancendent": 140, "arcco": [140, 150], "app": 140, "arith_vts_delta": 140, "infinitesim": 140, "arith_vts_delta_fre": 140, "unlik": 140, "arith_vts_infin": 140, "arith_vts_infinity_fre": 140, "shared_selector": 140, "ijcar": 140, "subfield": 140, "ho_deq_diff": 140, "roder": 140, "k1": 140, "kn": 140, "referenc": 140, "strings_num_occur": 140, "replace_al": [140, 146], "strings_occur_index": 140, "strings_num_occur_r": 140, "replace_all_r": 140, "strings_occur_index_r": 140, "strings_occur_len_r": 140, "strings_replace_all_result": 140, "intermedi": 140, "replace_re_al": 140, "strings_itos_result": 140, "from_int": 140, "strings_stoi_result": 140, "strings_stoi_non_digit": 140, "re_first_match_pr": 140, "decompos": 140, "shortest": [140, 148], "k_pre": 140, "k_match": 140, "k_post": 140, "indexof_r": [140, 148], "re_first_match": 140, "re_first_match_post": 140, "re_unfold_pos_compon": 140, "r0": 140, "rn": 140, "ki": 140, "k0": 140, "bags_card_combin": 140, "bags_distinct_el": 140, "bags_distinct_elements_union_disjoint": 140, "bags_fold_card": 140, "bags_fold_combin": 140, "accumul": 140, "intermidi": 140, "bags_fold_el": 140, "bags_fold_union_disjoint": 140, "bags_choos": 140, "chose": 140, "bags_distinct_elements_s": 140, "bags_map_preimage_inject": 140, "preimag": 140, "bags_map_index": 140, "bags_map_sum": 140, "bags_deq_diff": 140, "tables_group_part": 140, "nk": [140, 143], "tables_group_part_el": 140, "relations_group_part": 140, "relations_group_part_el": 140, "sets_choos": 140, "sets_fold_card": 140, "sets_fold_combin": 140, "sets_fold_el": 140, "sets_fold_union_disjoint": 140, "sets_fold_union": 140, "unionfn": 140, "sets_map_down_el": 140, "fp_min_zero": 140, "fp_max_zero": 140, "fp_to_ubv": 140, "ouf": 140, "operand": 140, "fp_to_sbv": 140, "to_sbv": 140, "fp_to_real": 140, "bv_to_int_uf": 140, "varieti": 141, "insight": 141, "enable_statist": 141, "competit": 141, "dealloc": 141, "stabl": 141, "minor": 141, "timer": 141, "look": 141, "auflia": 141, "bug336": 141, "totaltim": 141, "3m": 141, "inferenceslemma": 141, "arith_split_deq": 141, "inferencesfact": 141, "combination_split": 141, "unknown_type_const": 141, "overal": 141, "difference_subtract": 142, "uplu": [142, 145], "m_2": 142, "difference_remov": 142, "delta": 142, "qf_dt": 143, "d1": 143, "dk": 143, "s11": 143, "s1i": 143, "cj": 143, "sij": 143, "red": 143, "fname": 143, "lname": 143, "john": 143, "smith": 143, "sugar": [143, 147], "coinduct": 143, "ci": 143, "term_1": [143, 147], "term_n": [143, 147], "upd": 143, "sort_1": [143, 145, 147], "sort_n": [143, 147], "s_int": [143, 147], "unittupl": [143, 147], "i1": 143, "snd": 143, "getselectorterm": 143, "Such": 144, "isomorph": 144, "bmod": 144, "qx": 144, "nb": 144, "ffn": 144, "ff3": 144, "ffsort": 144, "ff0": 144, "x0": 144, "x1": 144, "x_0": 144, "2x_1": 144, "4x_2": 144, "sl": 145, "pto": 145, "f2": 145, "classic": 145, "models_": 145, "phi_1": 145, "phi_n": 145, "h_1": 145, "h_n": 145, "h_i": 145, "phi_i": 145, "phi_2": 145, "summar": 145, "sort_2": 145, "is_empti": 147, "is_singleton": 147, "sgl": 147, "subtl": 147, "motiv": 147, "presenc": 147, "w\u2082": 148, "u\u2081": 148, "w\u2081": 148, "u\u2081w\u2081u\u2082": 148, "u\u2081u\u2082u\u2083": 148, "u\u2081w\u2083u\u2083": 148, "w\u2083": 148, "u\u2082": 148, "u\u2082u\u2084": 148, "cba": 148, "to_low": 148, "ri": 148, "65": 148, "90": 148, "ascii": 148, "to_upp": 148, "122": 148, "beyond": 149, "nra": 150, "nira": 150, "tan": 150, "qf_nrat": 150, "csc": 150, "sec": 150, "cot": 150, "arctan": 150, "arccsc": 150, "arccot": 150, "subject": 150, "said": 150, "inexact": 150, "demand": 150, "twopi": 150, "ysq": 150, "sinx": 150, "x_gt_pi": 150, "x_lt_pi": 150, "ysq_lt_sinx": 150, "x_lt_tpi": 150}, "objects": {"": [[7, 0, 1, "_CPPv4N19Cvc5BlockModelsMode27CVC5_BLOCK_MODELS_MODE_LASTE", "CVC5_BLOCK_MODELS_MODE_LAST"], [7, 0, 1, "_CPPv4N19Cvc5BlockModelsMode31CVC5_BLOCK_MODELS_MODE_LITERALSE", "CVC5_BLOCK_MODELS_MODE_LITERALS"], [7, 0, 1, "_CPPv4N19Cvc5BlockModelsMode29CVC5_BLOCK_MODELS_MODE_VALUESE", "CVC5_BLOCK_MODELS_MODE_VALUES"], [7, 0, 1, "_CPPv4N19Cvc5FindSynthTarget27CVC5_FIND_SYNTH_TARGET_ENUME", "CVC5_FIND_SYNTH_TARGET_ENUM"], [7, 0, 1, "_CPPv4N19Cvc5FindSynthTarget27CVC5_FIND_SYNTH_TARGET_LASTE", "CVC5_FIND_SYNTH_TARGET_LAST"], [7, 0, 1, "_CPPv4N19Cvc5FindSynthTarget28CVC5_FIND_SYNTH_TARGET_QUERYE", "CVC5_FIND_SYNTH_TARGET_QUERY"], [7, 0, 1, "_CPPv4N19Cvc5FindSynthTarget30CVC5_FIND_SYNTH_TARGET_REWRITEE", "CVC5_FIND_SYNTH_TARGET_REWRITE"], [7, 0, 1, "_CPPv4N19Cvc5FindSynthTarget36CVC5_FIND_SYNTH_TARGET_REWRITE_INPUTE", "CVC5_FIND_SYNTH_TARGET_REWRITE_INPUT"], [7, 0, 1, "_CPPv4N19Cvc5FindSynthTarget38CVC5_FIND_SYNTH_TARGET_REWRITE_UNSOUNDE", "CVC5_FIND_SYNTH_TARGET_REWRITE_UNSOUND"], [2, 0, 1, "_CPPv4N8Cvc5Kind13CVC5_KIND_ABSE", "CVC5_KIND_ABS"], [2, 0, 1, "_CPPv4N8Cvc5Kind13CVC5_KIND_ADDE", "CVC5_KIND_ADD"], [2, 0, 1, "_CPPv4N8Cvc5Kind13CVC5_KIND_ANDE", "CVC5_KIND_AND"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_APPLY_CONSTRUCTORE", "CVC5_KIND_APPLY_CONSTRUCTOR"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_APPLY_SELECTORE", "CVC5_KIND_APPLY_SELECTOR"], [2, 0, 1, "_CPPv4N8Cvc5Kind22CVC5_KIND_APPLY_TESTERE", "CVC5_KIND_APPLY_TESTER"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_APPLY_UFE", "CVC5_KIND_APPLY_UF"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_APPLY_UPDATERE", "CVC5_KIND_APPLY_UPDATER"], [2, 0, 1, "_CPPv4N8Cvc5Kind21CVC5_KIND_ARCCOSECANTE", "CVC5_KIND_ARCCOSECANT"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_ARCCOSINEE", "CVC5_KIND_ARCCOSINE"], [2, 0, 1, "_CPPv4N8Cvc5Kind22CVC5_KIND_ARCCOTANGENTE", "CVC5_KIND_ARCCOTANGENT"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_ARCSECANTE", "CVC5_KIND_ARCSECANT"], [2, 0, 1, "_CPPv4N8Cvc5Kind17CVC5_KIND_ARCSINEE", "CVC5_KIND_ARCSINE"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_ARCTANGENTE", "CVC5_KIND_ARCTANGENT"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_BAG_CARDE", "CVC5_KIND_BAG_CARD"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_BAG_CHOOSEE", "CVC5_KIND_BAG_CHOOSE"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_BAG_COUNTE", "CVC5_KIND_BAG_COUNT"], [2, 0, 1, "_CPPv4N8Cvc5Kind31CVC5_KIND_BAG_DIFFERENCE_REMOVEE", "CVC5_KIND_BAG_DIFFERENCE_REMOVE"], [2, 0, 1, "_CPPv4N8Cvc5Kind33CVC5_KIND_BAG_DIFFERENCE_SUBTRACTE", "CVC5_KIND_BAG_DIFFERENCE_SUBTRACT"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_BAG_EMPTYE", "CVC5_KIND_BAG_EMPTY"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_BAG_FILTERE", "CVC5_KIND_BAG_FILTER"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_BAG_FOLDE", "CVC5_KIND_BAG_FOLD"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BAG_INTER_MINE", "CVC5_KIND_BAG_INTER_MIN"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_BAG_MAKEE", "CVC5_KIND_BAG_MAKE"], [2, 0, 1, "_CPPv4N8Cvc5Kind17CVC5_KIND_BAG_MAPE", "CVC5_KIND_BAG_MAP"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_BAG_MEMBERE", "CVC5_KIND_BAG_MEMBER"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BAG_PARTITIONE", "CVC5_KIND_BAG_PARTITION"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_BAG_SETOFE", "CVC5_KIND_BAG_SETOF"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_BAG_SUBBAGE", "CVC5_KIND_BAG_SUBBAG"], [2, 0, 1, "_CPPv4N8Cvc5Kind28CVC5_KIND_BAG_UNION_DISJOINTE", "CVC5_KIND_BAG_UNION_DISJOINT"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BAG_UNION_MAXE", "CVC5_KIND_BAG_UNION_MAX"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_ADDE", "CVC5_KIND_BITVECTOR_ADD"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_ANDE", "CVC5_KIND_BITVECTOR_AND"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_ASHRE", "CVC5_KIND_BITVECTOR_ASHR"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_BITE", "CVC5_KIND_BITVECTOR_BIT"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_COMPE", "CVC5_KIND_BITVECTOR_COMP"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_BITVECTOR_CONCATE", "CVC5_KIND_BITVECTOR_CONCAT"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_BITVECTOR_EXTRACTE", "CVC5_KIND_BITVECTOR_EXTRACT"], [2, 0, 1, "_CPPv4N8Cvc5Kind30CVC5_KIND_BITVECTOR_FROM_BOOLSE", "CVC5_KIND_BITVECTOR_FROM_BOOLS"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_ITEE", "CVC5_KIND_BITVECTOR_ITE"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_LSHRE", "CVC5_KIND_BITVECTOR_LSHR"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_MULTE", "CVC5_KIND_BITVECTOR_MULT"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_NANDE", "CVC5_KIND_BITVECTOR_NAND"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_NEGE", "CVC5_KIND_BITVECTOR_NEG"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_NEGOE", "CVC5_KIND_BITVECTOR_NEGO"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_NORE", "CVC5_KIND_BITVECTOR_NOR"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_NOTE", "CVC5_KIND_BITVECTOR_NOT"], [2, 0, 1, "_CPPv4N8Cvc5Kind22CVC5_KIND_BITVECTOR_ORE", "CVC5_KIND_BITVECTOR_OR"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_BITVECTOR_REDANDE", "CVC5_KIND_BITVECTOR_REDAND"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_REDORE", "CVC5_KIND_BITVECTOR_REDOR"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_BITVECTOR_REPEATE", "CVC5_KIND_BITVECTOR_REPEAT"], [2, 0, 1, "_CPPv4N8Cvc5Kind31CVC5_KIND_BITVECTOR_ROTATE_LEFTE", "CVC5_KIND_BITVECTOR_ROTATE_LEFT"], [2, 0, 1, "_CPPv4N8Cvc5Kind32CVC5_KIND_BITVECTOR_ROTATE_RIGHTE", "CVC5_KIND_BITVECTOR_ROTATE_RIGHT"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_SADDOE", "CVC5_KIND_BITVECTOR_SADDO"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_SDIVE", "CVC5_KIND_BITVECTOR_SDIV"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_SDIVOE", "CVC5_KIND_BITVECTOR_SDIVO"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_SGEE", "CVC5_KIND_BITVECTOR_SGE"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_SGTE", "CVC5_KIND_BITVECTOR_SGT"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_SHLE", "CVC5_KIND_BITVECTOR_SHL"], [2, 0, 1, "_CPPv4N8Cvc5Kind31CVC5_KIND_BITVECTOR_SIGN_EXTENDE", "CVC5_KIND_BITVECTOR_SIGN_EXTEND"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_SLEE", "CVC5_KIND_BITVECTOR_SLE"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_SLTE", "CVC5_KIND_BITVECTOR_SLT"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_SLTBVE", "CVC5_KIND_BITVECTOR_SLTBV"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_SMODE", "CVC5_KIND_BITVECTOR_SMOD"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_SMULOE", "CVC5_KIND_BITVECTOR_SMULO"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_SREME", "CVC5_KIND_BITVECTOR_SREM"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_SSUBOE", "CVC5_KIND_BITVECTOR_SSUBO"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_SUBE", "CVC5_KIND_BITVECTOR_SUB"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_BITVECTOR_TO_NATE", "CVC5_KIND_BITVECTOR_TO_NAT"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_UADDOE", "CVC5_KIND_BITVECTOR_UADDO"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_UDIVE", "CVC5_KIND_BITVECTOR_UDIV"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_UGEE", "CVC5_KIND_BITVECTOR_UGE"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_UGTE", "CVC5_KIND_BITVECTOR_UGT"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_ULEE", "CVC5_KIND_BITVECTOR_ULE"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_ULTE", "CVC5_KIND_BITVECTOR_ULT"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_ULTBVE", "CVC5_KIND_BITVECTOR_ULTBV"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_UMULOE", "CVC5_KIND_BITVECTOR_UMULO"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_UREME", "CVC5_KIND_BITVECTOR_UREM"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_USUBOE", "CVC5_KIND_BITVECTOR_USUBO"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_XNORE", "CVC5_KIND_BITVECTOR_XNOR"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_XORE", "CVC5_KIND_BITVECTOR_XOR"], [2, 0, 1, "_CPPv4N8Cvc5Kind31CVC5_KIND_BITVECTOR_ZERO_EXTENDE", "CVC5_KIND_BITVECTOR_ZERO_EXTEND"], [2, 0, 1, "_CPPv4N8Cvc5Kind32CVC5_KIND_CARDINALITY_CONSTRAINTE", "CVC5_KIND_CARDINALITY_CONSTRAINT"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_CONSTANTE", "CVC5_KIND_CONSTANT"], [2, 0, 1, "_CPPv4N8Cvc5Kind21CVC5_KIND_CONST_ARRAYE", "CVC5_KIND_CONST_ARRAY"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_CONST_BITVECTORE", "CVC5_KIND_CONST_BITVECTOR"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_CONST_BOOLEANE", "CVC5_KIND_CONST_BOOLEAN"], [2, 0, 1, "_CPPv4N8Cvc5Kind28CVC5_KIND_CONST_FINITE_FIELDE", "CVC5_KIND_CONST_FINITE_FIELD"], [2, 0, 1, "_CPPv4N8Cvc5Kind29CVC5_KIND_CONST_FLOATINGPOINTE", "CVC5_KIND_CONST_FLOATINGPOINT"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_CONST_INTEGERE", "CVC5_KIND_CONST_INTEGER"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_CONST_RATIONALE", "CVC5_KIND_CONST_RATIONAL"], [2, 0, 1, "_CPPv4N8Cvc5Kind28CVC5_KIND_CONST_ROUNDINGMODEE", "CVC5_KIND_CONST_ROUNDINGMODE"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_CONST_SEQUENCEE", "CVC5_KIND_CONST_SEQUENCE"], [2, 0, 1, "_CPPv4N8Cvc5Kind22CVC5_KIND_CONST_STRINGE", "CVC5_KIND_CONST_STRING"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_COSECANTE", "CVC5_KIND_COSECANT"], [2, 0, 1, "_CPPv4N8Cvc5Kind16CVC5_KIND_COSINEE", "CVC5_KIND_COSINE"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_COTANGENTE", "CVC5_KIND_COTANGENT"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_DISTINCTE", "CVC5_KIND_DISTINCT"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_DIVISIBLEE", "CVC5_KIND_DIVISIBLE"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_DIVISIONE", "CVC5_KIND_DIVISION"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_DIVISION_TOTALE", "CVC5_KIND_DIVISION_TOTAL"], [2, 0, 1, "_CPPv4N8Cvc5Kind15CVC5_KIND_EQUALE", "CVC5_KIND_EQUAL"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_EQ_RANGEE", "CVC5_KIND_EQ_RANGE"], [2, 0, 1, "_CPPv4N8Cvc5Kind16CVC5_KIND_EXISTSE", "CVC5_KIND_EXISTS"], [2, 0, 1, "_CPPv4N8Cvc5Kind21CVC5_KIND_EXPONENTIALE", "CVC5_KIND_EXPONENTIAL"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_FINITE_FIELD_ADDE", "CVC5_KIND_FINITE_FIELD_ADD"], [2, 0, 1, "_CPPv4N8Cvc5Kind29CVC5_KIND_FINITE_FIELD_BITSUME", "CVC5_KIND_FINITE_FIELD_BITSUM"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_FINITE_FIELD_MULTE", "CVC5_KIND_FINITE_FIELD_MULT"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_FINITE_FIELD_NEGE", "CVC5_KIND_FINITE_FIELD_NEG"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_ABSE", "CVC5_KIND_FLOATINGPOINT_ABS"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_ADDE", "CVC5_KIND_FLOATINGPOINT_ADD"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_DIVE", "CVC5_KIND_FLOATINGPOINT_DIV"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_FLOATINGPOINT_EQE", "CVC5_KIND_FLOATINGPOINT_EQ"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_FMAE", "CVC5_KIND_FLOATINGPOINT_FMA"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_FLOATINGPOINT_FPE", "CVC5_KIND_FLOATINGPOINT_FP"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_GEQE", "CVC5_KIND_FLOATINGPOINT_GEQ"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_FLOATINGPOINT_GTE", "CVC5_KIND_FLOATINGPOINT_GT"], [2, 0, 1, "_CPPv4N8Cvc5Kind30CVC5_KIND_FLOATINGPOINT_IS_INFE", "CVC5_KIND_FLOATINGPOINT_IS_INF"], [2, 0, 1, "_CPPv4N8Cvc5Kind30CVC5_KIND_FLOATINGPOINT_IS_NANE", "CVC5_KIND_FLOATINGPOINT_IS_NAN"], [2, 0, 1, "_CPPv4N8Cvc5Kind30CVC5_KIND_FLOATINGPOINT_IS_NEGE", "CVC5_KIND_FLOATINGPOINT_IS_NEG"], [2, 0, 1, "_CPPv4N8Cvc5Kind33CVC5_KIND_FLOATINGPOINT_IS_NORMALE", "CVC5_KIND_FLOATINGPOINT_IS_NORMAL"], [2, 0, 1, "_CPPv4N8Cvc5Kind30CVC5_KIND_FLOATINGPOINT_IS_POSE", "CVC5_KIND_FLOATINGPOINT_IS_POS"], [2, 0, 1, "_CPPv4N8Cvc5Kind36CVC5_KIND_FLOATINGPOINT_IS_SUBNORMALE", "CVC5_KIND_FLOATINGPOINT_IS_SUBNORMAL"], [2, 0, 1, "_CPPv4N8Cvc5Kind31CVC5_KIND_FLOATINGPOINT_IS_ZEROE", "CVC5_KIND_FLOATINGPOINT_IS_ZERO"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_LEQE", "CVC5_KIND_FLOATINGPOINT_LEQ"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_FLOATINGPOINT_LTE", "CVC5_KIND_FLOATINGPOINT_LT"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_MAXE", "CVC5_KIND_FLOATINGPOINT_MAX"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_MINE", "CVC5_KIND_FLOATINGPOINT_MIN"], [2, 0, 1, "_CPPv4N8Cvc5Kind28CVC5_KIND_FLOATINGPOINT_MULTE", "CVC5_KIND_FLOATINGPOINT_MULT"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_NEGE", "CVC5_KIND_FLOATINGPOINT_NEG"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_REME", "CVC5_KIND_FLOATINGPOINT_REM"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_RTIE", "CVC5_KIND_FLOATINGPOINT_RTI"], [2, 0, 1, "_CPPv4N8Cvc5Kind28CVC5_KIND_FLOATINGPOINT_SQRTE", "CVC5_KIND_FLOATINGPOINT_SQRT"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_SUBE", "CVC5_KIND_FLOATINGPOINT_SUB"], [2, 0, 1, "_CPPv4N8Cvc5Kind37CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_FPE", "CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_FP"], [2, 0, 1, "_CPPv4N8Cvc5Kind42CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_IEEE_BVE", "CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_IEEE_BV"], [2, 0, 1, "_CPPv4N8Cvc5Kind39CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_REALE", "CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_REAL"], [2, 0, 1, "_CPPv4N8Cvc5Kind38CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_SBVE", "CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_SBV"], [2, 0, 1, "_CPPv4N8Cvc5Kind38CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_UBVE", "CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_UBV"], [2, 0, 1, "_CPPv4N8Cvc5Kind31CVC5_KIND_FLOATINGPOINT_TO_REALE", "CVC5_KIND_FLOATINGPOINT_TO_REAL"], [2, 0, 1, "_CPPv4N8Cvc5Kind30CVC5_KIND_FLOATINGPOINT_TO_SBVE", "CVC5_KIND_FLOATINGPOINT_TO_SBV"], [2, 0, 1, "_CPPv4N8Cvc5Kind30CVC5_KIND_FLOATINGPOINT_TO_UBVE", "CVC5_KIND_FLOATINGPOINT_TO_UBV"], [2, 0, 1, "_CPPv4N8Cvc5Kind16CVC5_KIND_FORALLE", "CVC5_KIND_FORALL"], [2, 0, 1, "_CPPv4N8Cvc5Kind13CVC5_KIND_GEQE", "CVC5_KIND_GEQ"], [2, 0, 1, "_CPPv4N8Cvc5Kind12CVC5_KIND_GTE", "CVC5_KIND_GT"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_HO_APPLYE", "CVC5_KIND_HO_APPLY"], [2, 0, 1, "_CPPv4N8Cvc5Kind14CVC5_KIND_IANDE", "CVC5_KIND_IAND"], [2, 0, 1, "_CPPv4N8Cvc5Kind17CVC5_KIND_IMPLIESE", "CVC5_KIND_IMPLIES"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_INST_ADD_TO_POOLE", "CVC5_KIND_INST_ADD_TO_POOL"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_INST_ATTRIBUTEE", "CVC5_KIND_INST_ATTRIBUTE"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_INST_NO_PATTERNE", "CVC5_KIND_INST_NO_PATTERN"], [2, 0, 1, "_CPPv4N8Cvc5Kind22CVC5_KIND_INST_PATTERNE", "CVC5_KIND_INST_PATTERN"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_INST_PATTERN_LISTE", "CVC5_KIND_INST_PATTERN_LIST"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_INST_POOLE", "CVC5_KIND_INST_POOL"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_INTERNAL_KINDE", "CVC5_KIND_INTERNAL_KIND"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_INTS_DIVISIONE", "CVC5_KIND_INTS_DIVISION"], [2, 0, 1, "_CPPv4N8Cvc5Kind29CVC5_KIND_INTS_DIVISION_TOTALE", "CVC5_KIND_INTS_DIVISION_TOTAL"], [2, 0, 1, "_CPPv4N8Cvc5Kind22CVC5_KIND_INTS_MODULUSE", "CVC5_KIND_INTS_MODULUS"], [2, 0, 1, "_CPPv4N8Cvc5Kind28CVC5_KIND_INTS_MODULUS_TOTALE", "CVC5_KIND_INTS_MODULUS_TOTAL"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_INT_TO_BITVECTORE", "CVC5_KIND_INT_TO_BITVECTOR"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_IS_INTEGERE", "CVC5_KIND_IS_INTEGER"], [2, 0, 1, "_CPPv4N8Cvc5Kind13CVC5_KIND_ITEE", "CVC5_KIND_ITE"], [2, 0, 1, "_CPPv4N8Cvc5Kind16CVC5_KIND_LAMBDAE", "CVC5_KIND_LAMBDA"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_LAST_KINDE", "CVC5_KIND_LAST_KIND"], [2, 0, 1, "_CPPv4N8Cvc5Kind13CVC5_KIND_LEQE", "CVC5_KIND_LEQ"], [2, 0, 1, "_CPPv4N8Cvc5Kind12CVC5_KIND_LTE", "CVC5_KIND_LT"], [2, 0, 1, "_CPPv4N8Cvc5Kind15CVC5_KIND_MATCHE", "CVC5_KIND_MATCH"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_MATCH_BIND_CASEE", "CVC5_KIND_MATCH_BIND_CASE"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_MATCH_CASEE", "CVC5_KIND_MATCH_CASE"], [2, 0, 1, "_CPPv4N8Cvc5Kind14CVC5_KIND_MULTE", "CVC5_KIND_MULT"], [2, 0, 1, "_CPPv4N8Cvc5Kind13CVC5_KIND_NEGE", "CVC5_KIND_NEG"], [2, 0, 1, "_CPPv4N8Cvc5Kind13CVC5_KIND_NOTE", "CVC5_KIND_NOT"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_NULLABLE_LIFTE", "CVC5_KIND_NULLABLE_LIFT"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_NULL_TERME", "CVC5_KIND_NULL_TERM"], [2, 0, 1, "_CPPv4N8Cvc5Kind12CVC5_KIND_ORE", "CVC5_KIND_OR"], [2, 0, 1, "_CPPv4N8Cvc5Kind12CVC5_KIND_PIE", "CVC5_KIND_PI"], [2, 0, 1, "_CPPv4N8Cvc5Kind13CVC5_KIND_POWE", "CVC5_KIND_POW"], [2, 0, 1, "_CPPv4N8Cvc5Kind14CVC5_KIND_POW2E", "CVC5_KIND_POW2"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_REGEXP_ALLE", "CVC5_KIND_REGEXP_ALL"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_REGEXP_ALLCHARE", "CVC5_KIND_REGEXP_ALLCHAR"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_REGEXP_COMPLEMENTE", "CVC5_KIND_REGEXP_COMPLEMENT"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_REGEXP_CONCATE", "CVC5_KIND_REGEXP_CONCAT"], [2, 0, 1, "_CPPv4N8Cvc5Kind21CVC5_KIND_REGEXP_DIFFE", "CVC5_KIND_REGEXP_DIFF"], [2, 0, 1, "_CPPv4N8Cvc5Kind22CVC5_KIND_REGEXP_INTERE", "CVC5_KIND_REGEXP_INTER"], [2, 0, 1, "_CPPv4N8Cvc5Kind21CVC5_KIND_REGEXP_LOOPE", "CVC5_KIND_REGEXP_LOOP"], [2, 0, 1, "_CPPv4N8Cvc5Kind21CVC5_KIND_REGEXP_NONEE", "CVC5_KIND_REGEXP_NONE"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_REGEXP_OPTE", "CVC5_KIND_REGEXP_OPT"], [2, 0, 1, "_CPPv4N8Cvc5Kind21CVC5_KIND_REGEXP_PLUSE", "CVC5_KIND_REGEXP_PLUS"], [2, 0, 1, "_CPPv4N8Cvc5Kind22CVC5_KIND_REGEXP_RANGEE", "CVC5_KIND_REGEXP_RANGE"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_REGEXP_REPEATE", "CVC5_KIND_REGEXP_REPEAT"], [2, 0, 1, "_CPPv4N8Cvc5Kind21CVC5_KIND_REGEXP_STARE", "CVC5_KIND_REGEXP_STAR"], [2, 0, 1, "_CPPv4N8Cvc5Kind22CVC5_KIND_REGEXP_UNIONE", "CVC5_KIND_REGEXP_UNION"], [2, 0, 1, "_CPPv4N8Cvc5Kind28CVC5_KIND_RELATION_AGGREGATEE", "CVC5_KIND_RELATION_AGGREGATE"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_RELATION_GROUPE", "CVC5_KIND_RELATION_GROUP"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_RELATION_IDENE", "CVC5_KIND_RELATION_IDEN"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_RELATION_JOINE", "CVC5_KIND_RELATION_JOIN"], [2, 0, 1, "_CPPv4N8Cvc5Kind29CVC5_KIND_RELATION_JOIN_IMAGEE", "CVC5_KIND_RELATION_JOIN_IMAGE"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_RELATION_PRODUCTE", "CVC5_KIND_RELATION_PRODUCT"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_RELATION_PROJECTE", "CVC5_KIND_RELATION_PROJECT"], [2, 0, 1, "_CPPv4N8Cvc5Kind29CVC5_KIND_RELATION_TABLE_JOINE", "CVC5_KIND_RELATION_TABLE_JOIN"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_RELATION_TCLOSUREE", "CVC5_KIND_RELATION_TCLOSURE"], [2, 0, 1, "_CPPv4N8Cvc5Kind28CVC5_KIND_RELATION_TRANSPOSEE", "CVC5_KIND_RELATION_TRANSPOSE"], [2, 0, 1, "_CPPv4N8Cvc5Kind16CVC5_KIND_SECANTE", "CVC5_KIND_SECANT"], [2, 0, 1, "_CPPv4N8Cvc5Kind16CVC5_KIND_SELECTE", "CVC5_KIND_SELECT"], [2, 0, 1, "_CPPv4N8Cvc5Kind17CVC5_KIND_SEP_EMPE", "CVC5_KIND_SEP_EMP"], [2, 0, 1, "_CPPv4N8Cvc5Kind17CVC5_KIND_SEP_NILE", "CVC5_KIND_SEP_NIL"], [2, 0, 1, "_CPPv4N8Cvc5Kind17CVC5_KIND_SEP_PTOE", "CVC5_KIND_SEP_PTO"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_SEP_STARE", "CVC5_KIND_SEP_STAR"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_SEP_WANDE", "CVC5_KIND_SEP_WAND"], [2, 0, 1, "_CPPv4N8Cvc5Kind16CVC5_KIND_SEQ_ATE", "CVC5_KIND_SEQ_AT"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_SEQ_CONCATE", "CVC5_KIND_SEQ_CONCAT"], [2, 0, 1, "_CPPv4N8Cvc5Kind22CVC5_KIND_SEQ_CONTAINSE", "CVC5_KIND_SEQ_CONTAINS"], [2, 0, 1, "_CPPv4N8Cvc5Kind21CVC5_KIND_SEQ_EXTRACTE", "CVC5_KIND_SEQ_EXTRACT"], [2, 0, 1, "_CPPv4N8Cvc5Kind21CVC5_KIND_SEQ_INDEXOFE", "CVC5_KIND_SEQ_INDEXOF"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_SEQ_LENGTHE", "CVC5_KIND_SEQ_LENGTH"], [2, 0, 1, "_CPPv4N8Cvc5Kind17CVC5_KIND_SEQ_NTHE", "CVC5_KIND_SEQ_NTH"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_SEQ_PREFIXE", "CVC5_KIND_SEQ_PREFIX"], [2, 0, 1, "_CPPv4N8Cvc5Kind21CVC5_KIND_SEQ_REPLACEE", "CVC5_KIND_SEQ_REPLACE"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_SEQ_REPLACE_ALLE", "CVC5_KIND_SEQ_REPLACE_ALL"], [2, 0, 1, "_CPPv4N8Cvc5Kind17CVC5_KIND_SEQ_REVE", "CVC5_KIND_SEQ_REV"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_SEQ_SUFFIXE", "CVC5_KIND_SEQ_SUFFIX"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_SEQ_UNITE", "CVC5_KIND_SEQ_UNIT"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_SEQ_UPDATEE", "CVC5_KIND_SEQ_UPDATE"], [2, 0, 1, "_CPPv4N8Cvc5Kind17CVC5_KIND_SET_ALLE", "CVC5_KIND_SET_ALL"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_SET_CARDE", "CVC5_KIND_SET_CARD"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_SET_CHOOSEE", "CVC5_KIND_SET_CHOOSE"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_SET_COMPLEMENTE", "CVC5_KIND_SET_COMPLEMENT"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_SET_COMPREHENSIONE", "CVC5_KIND_SET_COMPREHENSION"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_SET_EMPTYE", "CVC5_KIND_SET_EMPTY"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_SET_FILTERE", "CVC5_KIND_SET_FILTER"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_SET_FOLDE", "CVC5_KIND_SET_FOLD"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_SET_INSERTE", "CVC5_KIND_SET_INSERT"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_SET_INTERE", "CVC5_KIND_SET_INTER"], [2, 0, 1, "_CPPv4N8Cvc5Kind22CVC5_KIND_SET_IS_EMPTYE", "CVC5_KIND_SET_IS_EMPTY"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_SET_IS_SINGLETONE", "CVC5_KIND_SET_IS_SINGLETON"], [2, 0, 1, "_CPPv4N8Cvc5Kind17CVC5_KIND_SET_MAPE", "CVC5_KIND_SET_MAP"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_SET_MEMBERE", "CVC5_KIND_SET_MEMBER"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_SET_MINUSE", "CVC5_KIND_SET_MINUS"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_SET_SINGLETONE", "CVC5_KIND_SET_SINGLETON"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_SET_SOMEE", "CVC5_KIND_SET_SOME"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_SET_SUBSETE", "CVC5_KIND_SET_SUBSET"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_SET_UNIONE", "CVC5_KIND_SET_UNION"], [2, 0, 1, "_CPPv4N8Cvc5Kind22CVC5_KIND_SET_UNIVERSEE", "CVC5_KIND_SET_UNIVERSE"], [2, 0, 1, "_CPPv4N8Cvc5Kind15CVC5_KIND_SEXPRE", "CVC5_KIND_SEXPR"], [2, 0, 1, "_CPPv4N8Cvc5Kind14CVC5_KIND_SINEE", "CVC5_KIND_SINE"], [2, 0, 1, "_CPPv4N8Cvc5Kind16CVC5_KIND_SKOLEME", "CVC5_KIND_SKOLEM"], [2, 0, 1, "_CPPv4N8Cvc5Kind28CVC5_KIND_SKOLEM_ADD_TO_POOLE", "CVC5_KIND_SKOLEM_ADD_TO_POOL"], [2, 0, 1, "_CPPv4N8Cvc5Kind14CVC5_KIND_SQRTE", "CVC5_KIND_SQRT"], [2, 0, 1, "_CPPv4N8Cvc5Kind15CVC5_KIND_STOREE", "CVC5_KIND_STORE"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_STRING_CHARATE", "CVC5_KIND_STRING_CHARAT"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_STRING_CONCATE", "CVC5_KIND_STRING_CONCAT"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_STRING_CONTAINSE", "CVC5_KIND_STRING_CONTAINS"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_STRING_FROM_CODEE", "CVC5_KIND_STRING_FROM_CODE"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_STRING_FROM_INTE", "CVC5_KIND_STRING_FROM_INT"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_STRING_INDEXOFE", "CVC5_KIND_STRING_INDEXOF"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_STRING_INDEXOF_REE", "CVC5_KIND_STRING_INDEXOF_RE"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_STRING_IN_REGEXPE", "CVC5_KIND_STRING_IN_REGEXP"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_STRING_IS_DIGITE", "CVC5_KIND_STRING_IS_DIGIT"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_STRING_LENGTHE", "CVC5_KIND_STRING_LENGTH"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_STRING_LEQE", "CVC5_KIND_STRING_LEQ"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_STRING_LTE", "CVC5_KIND_STRING_LT"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_STRING_PREFIXE", "CVC5_KIND_STRING_PREFIX"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_STRING_REPLACEE", "CVC5_KIND_STRING_REPLACE"], [2, 0, 1, "_CPPv4N8Cvc5Kind28CVC5_KIND_STRING_REPLACE_ALLE", "CVC5_KIND_STRING_REPLACE_ALL"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_STRING_REPLACE_REE", "CVC5_KIND_STRING_REPLACE_RE"], [2, 0, 1, "_CPPv4N8Cvc5Kind31CVC5_KIND_STRING_REPLACE_RE_ALLE", "CVC5_KIND_STRING_REPLACE_RE_ALL"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_STRING_REVE", "CVC5_KIND_STRING_REV"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_STRING_SUBSTRE", "CVC5_KIND_STRING_SUBSTR"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_STRING_SUFFIXE", "CVC5_KIND_STRING_SUFFIX"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_STRING_TO_CODEE", "CVC5_KIND_STRING_TO_CODE"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_STRING_TO_INTE", "CVC5_KIND_STRING_TO_INT"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_STRING_TO_LOWERE", "CVC5_KIND_STRING_TO_LOWER"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_STRING_TO_REGEXPE", "CVC5_KIND_STRING_TO_REGEXP"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_STRING_TO_UPPERE", "CVC5_KIND_STRING_TO_UPPER"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_STRING_UPDATEE", "CVC5_KIND_STRING_UPDATE"], [2, 0, 1, "_CPPv4N8Cvc5Kind13CVC5_KIND_SUBE", "CVC5_KIND_SUB"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_TABLE_AGGREGATEE", "CVC5_KIND_TABLE_AGGREGATE"], [2, 0, 1, "_CPPv4N8Cvc5Kind21CVC5_KIND_TABLE_GROUPE", "CVC5_KIND_TABLE_GROUP"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_TABLE_JOINE", "CVC5_KIND_TABLE_JOIN"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_TABLE_PRODUCTE", "CVC5_KIND_TABLE_PRODUCT"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_TABLE_PROJECTE", "CVC5_KIND_TABLE_PROJECT"], [2, 0, 1, "_CPPv4N8Cvc5Kind17CVC5_KIND_TANGENTE", "CVC5_KIND_TANGENT"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_TO_INTEGERE", "CVC5_KIND_TO_INTEGER"], [2, 0, 1, "_CPPv4N8Cvc5Kind17CVC5_KIND_TO_REALE", "CVC5_KIND_TO_REAL"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_TUPLE_PROJECTE", "CVC5_KIND_TUPLE_PROJECT"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_UNDEFINED_KINDE", "CVC5_KIND_UNDEFINED_KIND"], [2, 0, 1, "_CPPv4N8Cvc5Kind34CVC5_KIND_UNINTERPRETED_SORT_VALUEE", "CVC5_KIND_UNINTERPRETED_SORT_VALUE"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_VARIABLEE", "CVC5_KIND_VARIABLE"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_VARIABLE_LISTE", "CVC5_KIND_VARIABLE_LIST"], [2, 0, 1, "_CPPv4N8Cvc5Kind17CVC5_KIND_WITNESSE", "CVC5_KIND_WITNESS"], [2, 0, 1, "_CPPv4N8Cvc5Kind13CVC5_KIND_XORE", "CVC5_KIND_XOR"], [7, 0, 1, "_CPPv4N18Cvc5LearnedLitType35CVC5_LEARNED_LIT_TYPE_CONSTANT_PROPE", "CVC5_LEARNED_LIT_TYPE_CONSTANT_PROP"], [7, 0, 1, "_CPPv4N18Cvc5LearnedLitType27CVC5_LEARNED_LIT_TYPE_INPUTE", "CVC5_LEARNED_LIT_TYPE_INPUT"], [7, 0, 1, "_CPPv4N18Cvc5LearnedLitType30CVC5_LEARNED_LIT_TYPE_INTERNALE", "CVC5_LEARNED_LIT_TYPE_INTERNAL"], [7, 0, 1, "_CPPv4N18Cvc5LearnedLitType26CVC5_LEARNED_LIT_TYPE_LASTE", "CVC5_LEARNED_LIT_TYPE_LAST"], [7, 0, 1, "_CPPv4N18Cvc5LearnedLitType32CVC5_LEARNED_LIT_TYPE_PREPROCESSE", "CVC5_LEARNED_LIT_TYPE_PREPROCESS"], [7, 0, 1, "_CPPv4N18Cvc5LearnedLitType39CVC5_LEARNED_LIT_TYPE_PREPROCESS_SOLVEDE", "CVC5_LEARNED_LIT_TYPE_PREPROCESS_SOLVED"], [7, 0, 1, "_CPPv4N18Cvc5LearnedLitType30CVC5_LEARNED_LIT_TYPE_SOLVABLEE", "CVC5_LEARNED_LIT_TYPE_SOLVABLE"], [7, 0, 1, "_CPPv4N18Cvc5LearnedLitType29CVC5_LEARNED_LIT_TYPE_UNKNOWNE", "CVC5_LEARNED_LIT_TYPE_UNKNOWN"], [9, 0, 1, "_CPPv4N18Cvc5OptionInfoKind21CVC5_OPTION_INFO_BOOLE", "CVC5_OPTION_INFO_BOOL"], [9, 0, 1, "_CPPv4N18Cvc5OptionInfoKind23CVC5_OPTION_INFO_DOUBLEE", "CVC5_OPTION_INFO_DOUBLE"], [9, 0, 1, "_CPPv4N18Cvc5OptionInfoKind22CVC5_OPTION_INFO_INT64E", "CVC5_OPTION_INFO_INT64"], [9, 0, 1, "_CPPv4N18Cvc5OptionInfoKind22CVC5_OPTION_INFO_MODESE", "CVC5_OPTION_INFO_MODES"], [9, 0, 1, "_CPPv4N18Cvc5OptionInfoKind20CVC5_OPTION_INFO_STRE", "CVC5_OPTION_INFO_STR"], [9, 0, 1, "_CPPv4N18Cvc5OptionInfoKind23CVC5_OPTION_INFO_UINT64E", "CVC5_OPTION_INFO_UINT64"], [9, 0, 1, "_CPPv4N18Cvc5OptionInfoKind21CVC5_OPTION_INFO_VOIDE", "CVC5_OPTION_INFO_VOID"], [7, 0, 1, "_CPPv4N18Cvc5ProofComponent25CVC5_PROOF_COMPONENT_FULLE", "CVC5_PROOF_COMPONENT_FULL"], [7, 0, 1, "_CPPv4N18Cvc5ProofComponent25CVC5_PROOF_COMPONENT_LASTE", "CVC5_PROOF_COMPONENT_LAST"], [7, 0, 1, "_CPPv4N18Cvc5ProofComponent31CVC5_PROOF_COMPONENT_PREPROCESSE", "CVC5_PROOF_COMPONENT_PREPROCESS"], [7, 0, 1, "_CPPv4N18Cvc5ProofComponent35CVC5_PROOF_COMPONENT_RAW_PREPROCESSE", "CVC5_PROOF_COMPONENT_RAW_PREPROCESS"], [7, 0, 1, "_CPPv4N18Cvc5ProofComponent24CVC5_PROOF_COMPONENT_SATE", "CVC5_PROOF_COMPONENT_SAT"], [7, 0, 1, "_CPPv4N18Cvc5ProofComponent34CVC5_PROOF_COMPONENT_THEORY_LEMMASE", "CVC5_PROOF_COMPONENT_THEORY_LEMMAS"], [7, 0, 1, "_CPPv4N15Cvc5ProofFormat24CVC5_PROOF_FORMAT_ALETHEE", "CVC5_PROOF_FORMAT_ALETHE"], [7, 0, 1, "_CPPv4N15Cvc5ProofFormat21CVC5_PROOF_FORMAT_CPCE", "CVC5_PROOF_FORMAT_CPC"], [7, 0, 1, "_CPPv4N15Cvc5ProofFormat25CVC5_PROOF_FORMAT_DEFAULTE", "CVC5_PROOF_FORMAT_DEFAULT"], [7, 0, 1, "_CPPv4N15Cvc5ProofFormat21CVC5_PROOF_FORMAT_DOTE", "CVC5_PROOF_FORMAT_DOT"], [7, 0, 1, "_CPPv4N15Cvc5ProofFormat22CVC5_PROOF_FORMAT_LASTE", "CVC5_PROOF_FORMAT_LAST"], [7, 0, 1, "_CPPv4N15Cvc5ProofFormat22CVC5_PROOF_FORMAT_LFSCE", "CVC5_PROOF_FORMAT_LFSC"], [7, 0, 1, "_CPPv4N15Cvc5ProofFormat22CVC5_PROOF_FORMAT_NONEE", "CVC5_PROOF_FORMAT_NONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_ARITH_ABS_ELIM_INTE", "CVC5_PROOF_REWRITE_RULE_ARITH_ABS_ELIM_INT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_ARITH_ABS_ELIM_REALE", "CVC5_PROOF_REWRITE_RULE_ARITH_ABS_ELIM_REAL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_ARITH_ABS_EQE", "CVC5_PROOF_REWRITE_RULE_ARITH_ABS_EQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_ARITH_ABS_INT_GTE", "CVC5_PROOF_REWRITE_RULE_ARITH_ABS_INT_GT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_ARITH_ABS_REAL_GTE", "CVC5_PROOF_REWRITE_RULE_ARITH_ABS_REAL_GT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_ARITH_COSECENT_ELIME", "CVC5_PROOF_REWRITE_RULE_ARITH_COSECENT_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_ARITH_COSINE_ELIME", "CVC5_PROOF_REWRITE_RULE_ARITH_COSINE_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_ARITH_COTANGENT_ELIME", "CVC5_PROOF_REWRITE_RULE_ARITH_COTANGENT_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_ARITH_DIV_ELIM_TO_REAL1E", "CVC5_PROOF_REWRITE_RULE_ARITH_DIV_ELIM_TO_REAL1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_ARITH_DIV_ELIM_TO_REAL2E", "CVC5_PROOF_REWRITE_RULE_ARITH_DIV_ELIM_TO_REAL2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_ARITH_DIV_TOTAL_INTE", "CVC5_PROOF_REWRITE_RULE_ARITH_DIV_TOTAL_INT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_ARITH_DIV_TOTAL_REALE", "CVC5_PROOF_REWRITE_RULE_ARITH_DIV_TOTAL_REAL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_ARITH_DIV_TOTAL_ZERO_INTE", "CVC5_PROOF_REWRITE_RULE_ARITH_DIV_TOTAL_ZERO_INT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_ARITH_DIV_TOTAL_ZERO_REALE", "CVC5_PROOF_REWRITE_RULE_ARITH_DIV_TOTAL_ZERO_REAL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_GTE", "CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_GT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_INT_GTE", "CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_INT_GT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_INT_LTE", "CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_INT_LT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_LEQE", "CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_LEQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_LTE", "CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_LT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_ARITH_EQ_ELIM_INTE", "CVC5_PROOF_REWRITE_RULE_ARITH_EQ_ELIM_INT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_ARITH_EQ_ELIM_REALE", "CVC5_PROOF_REWRITE_RULE_ARITH_EQ_ELIM_REAL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_ARITH_GEQ_NORM1_INTE", "CVC5_PROOF_REWRITE_RULE_ARITH_GEQ_NORM1_INT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_ARITH_GEQ_NORM1_REALE", "CVC5_PROOF_REWRITE_RULE_ARITH_GEQ_NORM1_REAL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_ARITH_GEQ_NORM2E", "CVC5_PROOF_REWRITE_RULE_ARITH_GEQ_NORM2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_ARITH_GEQ_TIGHTENE", "CVC5_PROOF_REWRITE_RULE_ARITH_GEQ_TIGHTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_ARITH_INT_DIV_TOTALE", "CVC5_PROOF_REWRITE_RULE_ARITH_INT_DIV_TOTAL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_ARITH_INT_DIV_TOTAL_ONEE", "CVC5_PROOF_REWRITE_RULE_ARITH_INT_DIV_TOTAL_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_ARITH_INT_DIV_TOTAL_ZEROE", "CVC5_PROOF_REWRITE_RULE_ARITH_INT_DIV_TOTAL_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_ARITH_INT_MOD_TOTALE", "CVC5_PROOF_REWRITE_RULE_ARITH_INT_MOD_TOTAL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_ARITH_INT_MOD_TOTAL_ONEE", "CVC5_PROOF_REWRITE_RULE_ARITH_INT_MOD_TOTAL_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_ARITH_INT_MOD_TOTAL_ZEROE", "CVC5_PROOF_REWRITE_RULE_ARITH_INT_MOD_TOTAL_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ARITH_LEQ_NORME", "CVC5_PROOF_REWRITE_RULE_ARITH_LEQ_NORM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_ARITH_MULT_DISTE", "CVC5_PROOF_REWRITE_RULE_ARITH_MULT_DIST"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_ARITH_MULT_FLATTENE", "CVC5_PROOF_REWRITE_RULE_ARITH_MULT_FLATTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ARITH_MUL_ONEE", "CVC5_PROOF_REWRITE_RULE_ARITH_MUL_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ARITH_MUL_ZEROE", "CVC5_PROOF_REWRITE_RULE_ARITH_MUL_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_ARITH_PI_NOT_INTE", "CVC5_PROOF_REWRITE_RULE_ARITH_PI_NOT_INT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_ARITH_PLUS_FLATTENE", "CVC5_PROOF_REWRITE_RULE_ARITH_PLUS_FLATTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ARITH_POW_ELIME", "CVC5_PROOF_REWRITE_RULE_ARITH_POW_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ARITH_REFL_GEQE", "CVC5_PROOF_REWRITE_RULE_ARITH_REFL_GEQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ARITH_REFL_GTE", "CVC5_PROOF_REWRITE_RULE_ARITH_REFL_GT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ARITH_REFL_LEQE", "CVC5_PROOF_REWRITE_RULE_ARITH_REFL_LEQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ARITH_REFL_LTE", "CVC5_PROOF_REWRITE_RULE_ARITH_REFL_LT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_ARITH_SECENT_ELIME", "CVC5_PROOF_REWRITE_RULE_ARITH_SECENT_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ARITH_SINE_PI2E", "CVC5_PROOF_REWRITE_RULE_ARITH_SINE_PI2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_ARITH_SINE_ZEROE", "CVC5_PROOF_REWRITE_RULE_ARITH_SINE_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_ARITH_STRING_PRED_ENTAILE", "CVC5_PROOF_REWRITE_RULE_ARITH_STRING_PRED_ENTAIL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule53CVC5_PROOF_REWRITE_RULE_ARITH_STRING_PRED_SAFE_APPROXE", "CVC5_PROOF_REWRITE_RULE_ARITH_STRING_PRED_SAFE_APPROX"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_ARITH_TANGENT_ELIME", "CVC5_PROOF_REWRITE_RULE_ARITH_TANGENT_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_ARITH_TO_INT_ELIM_TO_REALE", "CVC5_PROOF_REWRITE_RULE_ARITH_TO_INT_ELIM_TO_REAL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_ARITH_TO_REAL_ELIME", "CVC5_PROOF_REWRITE_RULE_ARITH_TO_REAL_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_ARRAYS_EQ_RANGE_EXPANDE", "CVC5_PROOF_REWRITE_RULE_ARRAYS_EQ_RANGE_EXPAND"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_ARRAYS_SELECT_CONSTE", "CVC5_PROOF_REWRITE_RULE_ARRAYS_SELECT_CONST"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_ARRAY_READ_OVER_WRITEE", "CVC5_PROOF_REWRITE_RULE_ARRAY_READ_OVER_WRITE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_ARRAY_READ_OVER_WRITE2E", "CVC5_PROOF_REWRITE_RULE_ARRAY_READ_OVER_WRITE2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule51CVC5_PROOF_REWRITE_RULE_ARRAY_READ_OVER_WRITE_SPLITE", "CVC5_PROOF_REWRITE_RULE_ARRAY_READ_OVER_WRITE_SPLIT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_ARRAY_STORE_OVERWRITEE", "CVC5_PROOF_REWRITE_RULE_ARRAY_STORE_OVERWRITE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_ARRAY_STORE_SELFE", "CVC5_PROOF_REWRITE_RULE_ARRAY_STORE_SELF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BETA_REDUCEE", "CVC5_PROOF_REWRITE_RULE_BETA_REDUCE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_AND_CONFE", "CVC5_PROOF_REWRITE_RULE_BOOL_AND_CONF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BOOL_AND_CONF2E", "CVC5_PROOF_REWRITE_RULE_BOOL_AND_CONF2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BOOL_AND_DE_MORGANE", "CVC5_PROOF_REWRITE_RULE_BOOL_AND_DE_MORGAN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BOOL_AND_FALSEE", "CVC5_PROOF_REWRITE_RULE_BOOL_AND_FALSE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BOOL_AND_FLATTENE", "CVC5_PROOF_REWRITE_RULE_BOOL_AND_FLATTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_BOOL_DOUBLE_NOT_ELIME", "CVC5_PROOF_REWRITE_RULE_BOOL_DOUBLE_NOT_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_EQ_FALSEE", "CVC5_PROOF_REWRITE_RULE_BOOL_EQ_FALSE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_EQ_NREFLE", "CVC5_PROOF_REWRITE_RULE_BOOL_EQ_NREFL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BOOL_EQ_TRUEE", "CVC5_PROOF_REWRITE_RULE_BOOL_EQ_TRUE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_BOOL_IMPLIES_DE_MORGANE", "CVC5_PROOF_REWRITE_RULE_BOOL_IMPLIES_DE_MORGAN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_ELIME", "CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_FALSE1E", "CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_FALSE1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_FALSE2E", "CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_FALSE2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_TRUE1E", "CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_TRUE1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_TRUE2E", "CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_TRUE2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BOOL_NOT_EQ_ELIM1E", "CVC5_PROOF_REWRITE_RULE_BOOL_NOT_EQ_ELIM1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BOOL_NOT_EQ_ELIM2E", "CVC5_PROOF_REWRITE_RULE_BOOL_NOT_EQ_ELIM2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BOOL_NOT_FALSEE", "CVC5_PROOF_REWRITE_RULE_BOOL_NOT_FALSE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BOOL_NOT_ITE_ELIME", "CVC5_PROOF_REWRITE_RULE_BOOL_NOT_ITE_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_NOT_TRUEE", "CVC5_PROOF_REWRITE_RULE_BOOL_NOT_TRUE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BOOL_NOT_XOR_ELIME", "CVC5_PROOF_REWRITE_RULE_BOOL_NOT_XOR_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BOOL_OR_AND_DISTRIBE", "CVC5_PROOF_REWRITE_RULE_BOOL_OR_AND_DISTRIB"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BOOL_OR_DE_MORGANE", "CVC5_PROOF_REWRITE_RULE_BOOL_OR_DE_MORGAN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_BOOL_OR_FLATTENE", "CVC5_PROOF_REWRITE_RULE_BOOL_OR_FLATTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BOOL_OR_TAUTE", "CVC5_PROOF_REWRITE_RULE_BOOL_OR_TAUT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_OR_TAUT2E", "CVC5_PROOF_REWRITE_RULE_BOOL_OR_TAUT2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BOOL_OR_TRUEE", "CVC5_PROOF_REWRITE_RULE_BOOL_OR_TRUE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_XOR_COMME", "CVC5_PROOF_REWRITE_RULE_BOOL_XOR_COMM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_XOR_ELIME", "CVC5_PROOF_REWRITE_RULE_BOOL_XOR_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BOOL_XOR_FALSEE", "CVC5_PROOF_REWRITE_RULE_BOOL_XOR_FALSE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BOOL_XOR_NREFLE", "CVC5_PROOF_REWRITE_RULE_BOOL_XOR_NREFL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_XOR_REFLE", "CVC5_PROOF_REWRITE_RULE_BOOL_XOR_REFL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_XOR_TRUEE", "CVC5_PROOF_REWRITE_RULE_BOOL_XOR_TRUE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_BV_ADD_COMBINE_LIKE_TERMSE", "CVC5_PROOF_REWRITE_RULE_BV_ADD_COMBINE_LIKE_TERMS"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_ADD_TWOE", "CVC5_PROOF_REWRITE_RULE_BV_ADD_TWO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_ADD_ZEROE", "CVC5_PROOF_REWRITE_RULE_BV_ADD_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_BV_AND_CONCAT_PULLUPE", "CVC5_PROOF_REWRITE_RULE_BV_AND_CONCAT_PULLUP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_AND_FLATTENE", "CVC5_PROOF_REWRITE_RULE_BV_AND_FLATTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_AND_ONEE", "CVC5_PROOF_REWRITE_RULE_BV_AND_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_AND_SIMPLIFY_1E", "CVC5_PROOF_REWRITE_RULE_BV_AND_SIMPLIFY_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_AND_SIMPLIFY_2E", "CVC5_PROOF_REWRITE_RULE_BV_AND_SIMPLIFY_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_AND_ZEROE", "CVC5_PROOF_REWRITE_RULE_BV_AND_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_ASHR_BY_CONST_0E", "CVC5_PROOF_REWRITE_RULE_BV_ASHR_BY_CONST_0"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_ASHR_BY_CONST_1E", "CVC5_PROOF_REWRITE_RULE_BV_ASHR_BY_CONST_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_ASHR_BY_CONST_2E", "CVC5_PROOF_REWRITE_RULE_BV_ASHR_BY_CONST_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BV_ASHR_ZEROE", "CVC5_PROOF_REWRITE_RULE_BV_ASHR_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_BITWISE_IDEMP_1E", "CVC5_PROOF_REWRITE_RULE_BV_BITWISE_IDEMP_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_BITWISE_IDEMP_2E", "CVC5_PROOF_REWRITE_RULE_BV_BITWISE_IDEMP_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_BITWISE_NOT_ANDE", "CVC5_PROOF_REWRITE_RULE_BV_BITWISE_NOT_AND"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_BITWISE_NOT_ORE", "CVC5_PROOF_REWRITE_RULE_BV_BITWISE_NOT_OR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_BITWISE_SLICINGE", "CVC5_PROOF_REWRITE_RULE_BV_BITWISE_SLICING"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_ADDE", "CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_ADD"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_ANDE", "CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_AND"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_MULE", "CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_MUL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_ORE", "CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_OR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_XORE", "CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_XOR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_COMP_ELIMINATEE", "CVC5_PROOF_REWRITE_RULE_BV_COMP_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_BV_CONCAT_EXTRACT_MERGEE", "CVC5_PROOF_REWRITE_RULE_BV_CONCAT_EXTRACT_MERGE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_CONCAT_FLATTENE", "CVC5_PROOF_REWRITE_RULE_BV_CONCAT_FLATTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_BV_CONCAT_MERGE_CONSTE", "CVC5_PROOF_REWRITE_RULE_BV_CONCAT_MERGE_CONST"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_CONCAT_TO_MULTE", "CVC5_PROOF_REWRITE_RULE_BV_CONCAT_TO_MULT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_EQ_EXTRACT_ELIM1E", "CVC5_PROOF_REWRITE_RULE_BV_EQ_EXTRACT_ELIM1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_EQ_EXTRACT_ELIM2E", "CVC5_PROOF_REWRITE_RULE_BV_EQ_EXTRACT_ELIM2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_EQ_EXTRACT_ELIM3E", "CVC5_PROOF_REWRITE_RULE_BV_EQ_EXTRACT_ELIM3"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_BITWISE_ANDE", "CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_BITWISE_AND"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_BITWISE_ORE", "CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_BITWISE_OR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_BITWISE_XORE", "CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_BITWISE_XOR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_CONCAT_1E", "CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_CONCAT_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_CONCAT_2E", "CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_CONCAT_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_CONCAT_3E", "CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_CONCAT_3"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_CONCAT_4E", "CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_CONCAT_4"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_EXTRACTE", "CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_EXTRACT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule51CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_MULT_LEADING_BITE", "CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_MULT_LEADING_BIT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_NOTE", "CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_NOT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_SIGN_EXTEND_1E", "CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_SIGN_EXTEND_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_SIGN_EXTEND_2E", "CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_SIGN_EXTEND_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_SIGN_EXTEND_3E", "CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_SIGN_EXTEND_3"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_WHOLEE", "CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_WHOLE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_BV_ITE_CONST_CHILDREN_1E", "CVC5_PROOF_REWRITE_RULE_BV_ITE_CONST_CHILDREN_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_BV_ITE_CONST_CHILDREN_2E", "CVC5_PROOF_REWRITE_RULE_BV_ITE_CONST_CHILDREN_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_BV_ITE_EQUAL_CHILDRENE", "CVC5_PROOF_REWRITE_RULE_BV_ITE_EQUAL_CHILDREN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_ITE_EQUAL_COND_1E", "CVC5_PROOF_REWRITE_RULE_BV_ITE_EQUAL_COND_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_ITE_EQUAL_COND_2E", "CVC5_PROOF_REWRITE_RULE_BV_ITE_EQUAL_COND_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_ITE_EQUAL_COND_3E", "CVC5_PROOF_REWRITE_RULE_BV_ITE_EQUAL_COND_3"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_BV_ITE_MERGE_ELSE_ELSEE", "CVC5_PROOF_REWRITE_RULE_BV_ITE_MERGE_ELSE_ELSE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_BV_ITE_MERGE_ELSE_IFE", "CVC5_PROOF_REWRITE_RULE_BV_ITE_MERGE_ELSE_IF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_BV_ITE_MERGE_THEN_ELSEE", "CVC5_PROOF_REWRITE_RULE_BV_ITE_MERGE_THEN_ELSE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_BV_ITE_MERGE_THEN_IFE", "CVC5_PROOF_REWRITE_RULE_BV_ITE_MERGE_THEN_IF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_LSHR_BY_CONST_0E", "CVC5_PROOF_REWRITE_RULE_BV_LSHR_BY_CONST_0"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_LSHR_BY_CONST_1E", "CVC5_PROOF_REWRITE_RULE_BV_LSHR_BY_CONST_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_LSHR_BY_CONST_2E", "CVC5_PROOF_REWRITE_RULE_BV_LSHR_BY_CONST_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BV_LSHR_ZEROE", "CVC5_PROOF_REWRITE_RULE_BV_LSHR_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_LT_SELFE", "CVC5_PROOF_REWRITE_RULE_BV_LT_SELF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_BV_MERGE_SIGN_EXTEND_1E", "CVC5_PROOF_REWRITE_RULE_BV_MERGE_SIGN_EXTEND_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_BV_MERGE_SIGN_EXTEND_2E", "CVC5_PROOF_REWRITE_RULE_BV_MERGE_SIGN_EXTEND_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_BV_MERGE_SIGN_EXTEND_3E", "CVC5_PROOF_REWRITE_RULE_BV_MERGE_SIGN_EXTEND_3"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_1E", "CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_2E", "CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_CONST_ADDE", "CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_CONST_ADD"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_CONST_NEGE", "CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_CONST_NEG"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_CONST_SUBE", "CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_CONST_SUB"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_MULT_POW2_1E", "CVC5_PROOF_REWRITE_RULE_BV_MULT_POW2_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_MULT_POW2_2E", "CVC5_PROOF_REWRITE_RULE_BV_MULT_POW2_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_BV_MULT_POW2_2BE", "CVC5_PROOF_REWRITE_RULE_BV_MULT_POW2_2B"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_MULT_SIMPLIFYE", "CVC5_PROOF_REWRITE_RULE_BV_MULT_SIMPLIFY"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_MULT_SLT_MULT_1E", "CVC5_PROOF_REWRITE_RULE_BV_MULT_SLT_MULT_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_MULT_SLT_MULT_2E", "CVC5_PROOF_REWRITE_RULE_BV_MULT_SLT_MULT_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_MUL_FLATTENE", "CVC5_PROOF_REWRITE_RULE_BV_MUL_FLATTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_MUL_ONEE", "CVC5_PROOF_REWRITE_RULE_BV_MUL_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_MUL_ZEROE", "CVC5_PROOF_REWRITE_RULE_BV_MUL_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_NAND_ELIMINATEE", "CVC5_PROOF_REWRITE_RULE_BV_NAND_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_NEG_ADDE", "CVC5_PROOF_REWRITE_RULE_BV_NEG_ADD"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BV_NEG_IDEMPE", "CVC5_PROOF_REWRITE_RULE_BV_NEG_IDEMP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_NEG_MULTE", "CVC5_PROOF_REWRITE_RULE_BV_NEG_MULT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_NEG_SUBE", "CVC5_PROOF_REWRITE_RULE_BV_NEG_SUB"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_NOR_ELIMINATEE", "CVC5_PROOF_REWRITE_RULE_BV_NOR_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BV_NOT_IDEMPE", "CVC5_PROOF_REWRITE_RULE_BV_NOT_IDEMP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_NOT_NEQE", "CVC5_PROOF_REWRITE_RULE_BV_NOT_NEQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_NOT_SLEE", "CVC5_PROOF_REWRITE_RULE_BV_NOT_SLE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_NOT_ULEE", "CVC5_PROOF_REWRITE_RULE_BV_NOT_ULE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_NOT_ULTE", "CVC5_PROOF_REWRITE_RULE_BV_NOT_ULT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_NOT_XORE", "CVC5_PROOF_REWRITE_RULE_BV_NOT_XOR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_OR_CONCAT_PULLUPE", "CVC5_PROOF_REWRITE_RULE_BV_OR_CONCAT_PULLUP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BV_OR_FLATTENE", "CVC5_PROOF_REWRITE_RULE_BV_OR_FLATTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule33CVC5_PROOF_REWRITE_RULE_BV_OR_ONEE", "CVC5_PROOF_REWRITE_RULE_BV_OR_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_OR_SIMPLIFY_1E", "CVC5_PROOF_REWRITE_RULE_BV_OR_SIMPLIFY_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_OR_SIMPLIFY_2E", "CVC5_PROOF_REWRITE_RULE_BV_OR_SIMPLIFY_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_OR_ZEROE", "CVC5_PROOF_REWRITE_RULE_BV_OR_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_REDAND_ELIMINATEE", "CVC5_PROOF_REWRITE_RULE_BV_REDAND_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_REDOR_ELIMINATEE", "CVC5_PROOF_REWRITE_RULE_BV_REDOR_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_REPEAT_ELIME", "CVC5_PROOF_REWRITE_RULE_BV_REPEAT_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_BV_ROTATE_LEFT_ELIMINATE_1E", "CVC5_PROOF_REWRITE_RULE_BV_ROTATE_LEFT_ELIMINATE_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_BV_ROTATE_LEFT_ELIMINATE_2E", "CVC5_PROOF_REWRITE_RULE_BV_ROTATE_LEFT_ELIMINATE_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule51CVC5_PROOF_REWRITE_RULE_BV_ROTATE_RIGHT_ELIMINATE_1E", "CVC5_PROOF_REWRITE_RULE_BV_ROTATE_RIGHT_ELIMINATE_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule51CVC5_PROOF_REWRITE_RULE_BV_ROTATE_RIGHT_ELIMINATE_2E", "CVC5_PROOF_REWRITE_RULE_BV_ROTATE_RIGHT_ELIMINATE_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_SADDO_ELIMINATEE", "CVC5_PROOF_REWRITE_RULE_BV_SADDO_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_SDIVO_ELIMINATEE", "CVC5_PROOF_REWRITE_RULE_BV_SDIVO_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_SDIV_ELIMINATEE", "CVC5_PROOF_REWRITE_RULE_BV_SDIV_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule59CVC5_PROOF_REWRITE_RULE_BV_SDIV_ELIMINATE_FEWER_BITWISE_OPSE", "CVC5_PROOF_REWRITE_RULE_BV_SDIV_ELIMINATE_FEWER_BITWISE_OPS"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_SGE_ELIMINATEE", "CVC5_PROOF_REWRITE_RULE_BV_SGE_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_SGT_ELIMINATEE", "CVC5_PROOF_REWRITE_RULE_BV_SGT_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_SHL_BY_CONST_0E", "CVC5_PROOF_REWRITE_RULE_BV_SHL_BY_CONST_0"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_SHL_BY_CONST_1E", "CVC5_PROOF_REWRITE_RULE_BV_SHL_BY_CONST_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_SHL_BY_CONST_2E", "CVC5_PROOF_REWRITE_RULE_BV_SHL_BY_CONST_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_SHL_ZEROE", "CVC5_PROOF_REWRITE_RULE_BV_SHL_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ELIMINATEE", "CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ELIMINATE_0E", "CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ELIMINATE_0"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_EQ_CONST_1E", "CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_EQ_CONST_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_EQ_CONST_2E", "CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_EQ_CONST_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ULT_CONST_1E", "CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ULT_CONST_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ULT_CONST_2E", "CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ULT_CONST_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ULT_CONST_3E", "CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ULT_CONST_3"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ULT_CONST_4E", "CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ULT_CONST_4"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_SLE_ELIMINATEE", "CVC5_PROOF_REWRITE_RULE_BV_SLE_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_SLE_SELFE", "CVC5_PROOF_REWRITE_RULE_BV_SLE_SELF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_SLT_ELIMINATEE", "CVC5_PROOF_REWRITE_RULE_BV_SLT_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_SLT_ZEROE", "CVC5_PROOF_REWRITE_RULE_BV_SLT_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_SMOD_ELIMINATEE", "CVC5_PROOF_REWRITE_RULE_BV_SMOD_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule59CVC5_PROOF_REWRITE_RULE_BV_SMOD_ELIMINATE_FEWER_BITWISE_OPSE", "CVC5_PROOF_REWRITE_RULE_BV_SMOD_ELIMINATE_FEWER_BITWISE_OPS"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_SMULO_ELIMINATEE", "CVC5_PROOF_REWRITE_RULE_BV_SMULO_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_SREM_ELIMINATEE", "CVC5_PROOF_REWRITE_RULE_BV_SREM_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule59CVC5_PROOF_REWRITE_RULE_BV_SREM_ELIMINATE_FEWER_BITWISE_OPSE", "CVC5_PROOF_REWRITE_RULE_BV_SREM_ELIMINATE_FEWER_BITWISE_OPS"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_SSUBO_ELIMINATEE", "CVC5_PROOF_REWRITE_RULE_BV_SSUBO_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_SUB_ELIMINATEE", "CVC5_PROOF_REWRITE_RULE_BV_SUB_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_TO_NAT_ELIME", "CVC5_PROOF_REWRITE_RULE_BV_TO_NAT_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_UADDO_ELIMINATEE", "CVC5_PROOF_REWRITE_RULE_BV_UADDO_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_UDIV_ONEE", "CVC5_PROOF_REWRITE_RULE_BV_UDIV_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_BV_UDIV_POW2_NOT_ONEE", "CVC5_PROOF_REWRITE_RULE_BV_UDIV_POW2_NOT_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BV_UDIV_ZEROE", "CVC5_PROOF_REWRITE_RULE_BV_UDIV_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_UGE_ELIMINATEE", "CVC5_PROOF_REWRITE_RULE_BV_UGE_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_UGT_ELIMINATEE", "CVC5_PROOF_REWRITE_RULE_BV_UGT_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_UGT_UREME", "CVC5_PROOF_REWRITE_RULE_BV_UGT_UREM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_ULE_ELIMINATEE", "CVC5_PROOF_REWRITE_RULE_BV_ULE_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_ULE_MAXE", "CVC5_PROOF_REWRITE_RULE_BV_ULE_MAX"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_ULE_SELFE", "CVC5_PROOF_REWRITE_RULE_BV_ULE_SELF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_ULE_ZEROE", "CVC5_PROOF_REWRITE_RULE_BV_ULE_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_ULT_ADD_ONEE", "CVC5_PROOF_REWRITE_RULE_BV_ULT_ADD_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_ULT_ONEE", "CVC5_PROOF_REWRITE_RULE_BV_ULT_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_ULT_ONESE", "CVC5_PROOF_REWRITE_RULE_BV_ULT_ONES"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_ULT_SELFE", "CVC5_PROOF_REWRITE_RULE_BV_ULT_SELF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BV_ULT_ZERO_1E", "CVC5_PROOF_REWRITE_RULE_BV_ULT_ZERO_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BV_ULT_ZERO_2E", "CVC5_PROOF_REWRITE_RULE_BV_ULT_ZERO_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_UMULO_ELIMINATEE", "CVC5_PROOF_REWRITE_RULE_BV_UMULO_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_UREM_ONEE", "CVC5_PROOF_REWRITE_RULE_BV_UREM_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_BV_UREM_POW2_NOT_ONEE", "CVC5_PROOF_REWRITE_RULE_BV_UREM_POW2_NOT_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BV_UREM_SELFE", "CVC5_PROOF_REWRITE_RULE_BV_UREM_SELF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_USUBO_ELIMINATEE", "CVC5_PROOF_REWRITE_RULE_BV_USUBO_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_XNOR_ELIMINATEE", "CVC5_PROOF_REWRITE_RULE_BV_XNOR_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_BV_XOR_CONCAT_PULLUPE", "CVC5_PROOF_REWRITE_RULE_BV_XOR_CONCAT_PULLUP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_XOR_DUPLICATEE", "CVC5_PROOF_REWRITE_RULE_BV_XOR_DUPLICATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_XOR_FLATTENE", "CVC5_PROOF_REWRITE_RULE_BV_XOR_FLATTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_XOR_NOTE", "CVC5_PROOF_REWRITE_RULE_BV_XOR_NOT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_XOR_ONESE", "CVC5_PROOF_REWRITE_RULE_BV_XOR_ONES"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_XOR_SIMPLIFY_1E", "CVC5_PROOF_REWRITE_RULE_BV_XOR_SIMPLIFY_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_XOR_SIMPLIFY_2E", "CVC5_PROOF_REWRITE_RULE_BV_XOR_SIMPLIFY_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_XOR_SIMPLIFY_3E", "CVC5_PROOF_REWRITE_RULE_BV_XOR_SIMPLIFY_3"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_XOR_ZEROE", "CVC5_PROOF_REWRITE_RULE_BV_XOR_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_BV_ZERO_EXTEND_ELIMINATEE", "CVC5_PROOF_REWRITE_RULE_BV_ZERO_EXTEND_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_BV_ZERO_EXTEND_ELIMINATE_0E", "CVC5_PROOF_REWRITE_RULE_BV_ZERO_EXTEND_ELIMINATE_0"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_BV_ZERO_EXTEND_EQ_CONST_1E", "CVC5_PROOF_REWRITE_RULE_BV_ZERO_EXTEND_EQ_CONST_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_BV_ZERO_EXTEND_EQ_CONST_2E", "CVC5_PROOF_REWRITE_RULE_BV_ZERO_EXTEND_EQ_CONST_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_ZERO_ULEE", "CVC5_PROOF_REWRITE_RULE_BV_ZERO_ULE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_DISTINCT_BINARY_ELIME", "CVC5_PROOF_REWRITE_RULE_DISTINCT_BINARY_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_DISTINCT_CARD_CONFLICTE", "CVC5_PROOF_REWRITE_RULE_DISTINCT_CARD_CONFLICT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_DISTINCT_ELIME", "CVC5_PROOF_REWRITE_RULE_DISTINCT_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_DT_COLLAPSE_SELECTORE", "CVC5_PROOF_REWRITE_RULE_DT_COLLAPSE_SELECTOR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_DT_COLLAPSE_TESTERE", "CVC5_PROOF_REWRITE_RULE_DT_COLLAPSE_TESTER"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule52CVC5_PROOF_REWRITE_RULE_DT_COLLAPSE_TESTER_SINGLETONE", "CVC5_PROOF_REWRITE_RULE_DT_COLLAPSE_TESTER_SINGLETON"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_DT_COLLAPSE_UPDATERE", "CVC5_PROOF_REWRITE_RULE_DT_COLLAPSE_UPDATER"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_DT_CONS_EQE", "CVC5_PROOF_REWRITE_RULE_DT_CONS_EQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule32CVC5_PROOF_REWRITE_RULE_DT_CYCLEE", "CVC5_PROOF_REWRITE_RULE_DT_CYCLE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule31CVC5_PROOF_REWRITE_RULE_DT_INSTE", "CVC5_PROOF_REWRITE_RULE_DT_INST"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_DT_MATCH_ELIME", "CVC5_PROOF_REWRITE_RULE_DT_MATCH_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_DT_UPDATER_ELIME", "CVC5_PROOF_REWRITE_RULE_DT_UPDATER_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_EQ_COND_DEQE", "CVC5_PROOF_REWRITE_RULE_EQ_COND_DEQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_EQ_ITE_LIFTE", "CVC5_PROOF_REWRITE_RULE_EQ_ITE_LIFT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule31CVC5_PROOF_REWRITE_RULE_EQ_REFLE", "CVC5_PROOF_REWRITE_RULE_EQ_REFL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule31CVC5_PROOF_REWRITE_RULE_EQ_SYMME", "CVC5_PROOF_REWRITE_RULE_EQ_SYMM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_EXISTS_ELIME", "CVC5_PROOF_REWRITE_RULE_EXISTS_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_INT_TO_BV_ELIME", "CVC5_PROOF_REWRITE_RULE_INT_TO_BV_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ITE_ELSE_FALSEE", "CVC5_PROOF_REWRITE_RULE_ITE_ELSE_FALSE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_ITE_ELSE_LOOKAHEADE", "CVC5_PROOF_REWRITE_RULE_ITE_ELSE_LOOKAHEAD"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule51CVC5_PROOF_REWRITE_RULE_ITE_ELSE_LOOKAHEAD_NOT_SELFE", "CVC5_PROOF_REWRITE_RULE_ITE_ELSE_LOOKAHEAD_NOT_SELF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_ITE_ELSE_LOOKAHEAD_SELFE", "CVC5_PROOF_REWRITE_RULE_ITE_ELSE_LOOKAHEAD_SELF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_ITE_ELSE_NEG_LOOKAHEADE", "CVC5_PROOF_REWRITE_RULE_ITE_ELSE_NEG_LOOKAHEAD"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ITE_ELSE_TRUEE", "CVC5_PROOF_REWRITE_RULE_ITE_ELSE_TRUE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ITE_EQ_BRANCHE", "CVC5_PROOF_REWRITE_RULE_ITE_EQ_BRANCH"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_ITE_EXPANDE", "CVC5_PROOF_REWRITE_RULE_ITE_EXPAND"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ITE_FALSE_CONDE", "CVC5_PROOF_REWRITE_RULE_ITE_FALSE_COND"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ITE_NEG_BRANCHE", "CVC5_PROOF_REWRITE_RULE_ITE_NEG_BRANCH"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_ITE_NOT_CONDE", "CVC5_PROOF_REWRITE_RULE_ITE_NOT_COND"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ITE_THEN_FALSEE", "CVC5_PROOF_REWRITE_RULE_ITE_THEN_FALSE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_ITE_THEN_LOOKAHEADE", "CVC5_PROOF_REWRITE_RULE_ITE_THEN_LOOKAHEAD"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule51CVC5_PROOF_REWRITE_RULE_ITE_THEN_LOOKAHEAD_NOT_SELFE", "CVC5_PROOF_REWRITE_RULE_ITE_THEN_LOOKAHEAD_NOT_SELF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_ITE_THEN_LOOKAHEAD_SELFE", "CVC5_PROOF_REWRITE_RULE_ITE_THEN_LOOKAHEAD_SELF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_ITE_THEN_NEG_LOOKAHEADE", "CVC5_PROOF_REWRITE_RULE_ITE_THEN_NEG_LOOKAHEAD"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ITE_THEN_TRUEE", "CVC5_PROOF_REWRITE_RULE_ITE_THEN_TRUE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ITE_TRUE_CONDE", "CVC5_PROOF_REWRITE_RULE_ITE_TRUE_COND"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_LAMBDA_ELIME", "CVC5_PROOF_REWRITE_RULE_LAMBDA_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule28CVC5_PROOF_REWRITE_RULE_LASTE", "CVC5_PROOF_REWRITE_RULE_LAST"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule54CVC5_PROOF_REWRITE_RULE_MACRO_ARITH_STRING_PRED_ENTAILE", "CVC5_PROOF_REWRITE_RULE_MACRO_ARITH_STRING_PRED_ENTAIL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule52CVC5_PROOF_REWRITE_RULE_MACRO_ARRAYS_DISTINCT_ARRAYSE", "CVC5_PROOF_REWRITE_RULE_MACRO_ARRAYS_DISTINCT_ARRAYS"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule55CVC5_PROOF_REWRITE_RULE_MACRO_ARRAYS_NORMALIZE_CONSTANTE", "CVC5_PROOF_REWRITE_RULE_MACRO_ARRAYS_NORMALIZE_CONSTANT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_MACRO_BOOL_NNF_NORME", "CVC5_PROOF_REWRITE_RULE_MACRO_BOOL_NNF_NORM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_MERGE_PRENEXE", "CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_MERGE_PRENEX"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_MINISCOPEE", "CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_MINISCOPE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule58CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_PARTITION_CONNECTED_FVE", "CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_PARTITION_CONNECTED_FV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_PRENEXE", "CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_PRENEX"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_REWRITE_BODYE", "CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_REWRITE_BODY"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_VAR_ELIM_EQE", "CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_VAR_ELIM_EQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_VAR_ELIM_INEQE", "CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_VAR_ELIM_INEQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule53CVC5_PROOF_REWRITE_RULE_MACRO_SUBSTR_STRIP_SYM_LENGTHE", "CVC5_PROOF_REWRITE_RULE_MACRO_SUBSTR_STRIP_SYM_LENGTH"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule28CVC5_PROOF_REWRITE_RULE_NONEE", "CVC5_PROOF_REWRITE_RULE_NONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_QUANT_DT_SPLITE", "CVC5_PROOF_REWRITE_RULE_QUANT_DT_SPLIT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_QUANT_MERGE_PRENEXE", "CVC5_PROOF_REWRITE_RULE_QUANT_MERGE_PRENEX"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_QUANT_MINISCOPE_ANDE", "CVC5_PROOF_REWRITE_RULE_QUANT_MINISCOPE_AND"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_QUANT_MINISCOPE_ITEE", "CVC5_PROOF_REWRITE_RULE_QUANT_MINISCOPE_ITE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_QUANT_MINISCOPE_ORE", "CVC5_PROOF_REWRITE_RULE_QUANT_MINISCOPE_OR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_QUANT_UNUSED_VARSE", "CVC5_PROOF_REWRITE_RULE_QUANT_UNUSED_VARS"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_QUANT_VAR_ELIM_EQE", "CVC5_PROOF_REWRITE_RULE_QUANT_VAR_ELIM_EQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_RE_ALL_ELIME", "CVC5_PROOF_REWRITE_RULE_RE_ALL_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_RE_CONCAT_EMPE", "CVC5_PROOF_REWRITE_RULE_RE_CONCAT_EMP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_RE_CONCAT_FLATTENE", "CVC5_PROOF_REWRITE_RULE_RE_CONCAT_FLATTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_RE_CONCAT_MERGEE", "CVC5_PROOF_REWRITE_RULE_RE_CONCAT_MERGE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_RE_CONCAT_NONEE", "CVC5_PROOF_REWRITE_RULE_RE_CONCAT_NONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_RE_CONCAT_STAR_REPEATE", "CVC5_PROOF_REWRITE_RULE_RE_CONCAT_STAR_REPEAT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_RE_CONCAT_STAR_SWAPE", "CVC5_PROOF_REWRITE_RULE_RE_CONCAT_STAR_SWAP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_RE_DIFF_ELIME", "CVC5_PROOF_REWRITE_RULE_RE_DIFF_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_RE_INTER_ALLE", "CVC5_PROOF_REWRITE_RULE_RE_INTER_ALL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_RE_INTER_CSTRINGE", "CVC5_PROOF_REWRITE_RULE_RE_INTER_CSTRING"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_RE_INTER_CSTRING_NEGE", "CVC5_PROOF_REWRITE_RULE_RE_INTER_CSTRING_NEG"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_RE_INTER_DUPE", "CVC5_PROOF_REWRITE_RULE_RE_INTER_DUP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_RE_INTER_FLATTENE", "CVC5_PROOF_REWRITE_RULE_RE_INTER_FLATTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_RE_INTER_NONEE", "CVC5_PROOF_REWRITE_RULE_RE_INTER_NONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_RE_INTER_UNION_INCLUSIONE", "CVC5_PROOF_REWRITE_RULE_RE_INTER_UNION_INCLUSION"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_RE_IN_COMPE", "CVC5_PROOF_REWRITE_RULE_RE_IN_COMP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_RE_IN_CSTRINGE", "CVC5_PROOF_REWRITE_RULE_RE_IN_CSTRING"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_RE_IN_EMPTYE", "CVC5_PROOF_REWRITE_RULE_RE_IN_EMPTY"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_RE_IN_SIGMAE", "CVC5_PROOF_REWRITE_RULE_RE_IN_SIGMA"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_RE_IN_SIGMA_STARE", "CVC5_PROOF_REWRITE_RULE_RE_IN_SIGMA_STAR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_RE_LOOP_ELIME", "CVC5_PROOF_REWRITE_RULE_RE_LOOP_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_RE_LOOP_NEGE", "CVC5_PROOF_REWRITE_RULE_RE_LOOP_NEG"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_RE_OPT_ELIME", "CVC5_PROOF_REWRITE_RULE_RE_OPT_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_RE_STAR_NONEE", "CVC5_PROOF_REWRITE_RULE_RE_STAR_NONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_RE_UNION_ALLE", "CVC5_PROOF_REWRITE_RULE_RE_UNION_ALL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_RE_UNION_DUPE", "CVC5_PROOF_REWRITE_RULE_RE_UNION_DUP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_RE_UNION_FLATTENE", "CVC5_PROOF_REWRITE_RULE_RE_UNION_FLATTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_RE_UNION_NONEE", "CVC5_PROOF_REWRITE_RULE_RE_UNION_NONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_SEQ_LEN_EMPTYE", "CVC5_PROOF_REWRITE_RULE_SEQ_LEN_EMPTY"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_SEQ_LEN_REVE", "CVC5_PROOF_REWRITE_RULE_SEQ_LEN_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_SEQ_LEN_UNITE", "CVC5_PROOF_REWRITE_RULE_SEQ_LEN_UNIT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_SEQ_NTH_UNITE", "CVC5_PROOF_REWRITE_RULE_SEQ_NTH_UNIT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_SEQ_REV_CONCATE", "CVC5_PROOF_REWRITE_RULE_SEQ_REV_CONCAT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_SEQ_REV_REVE", "CVC5_PROOF_REWRITE_RULE_SEQ_REV_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_SEQ_REV_UNITE", "CVC5_PROOF_REWRITE_RULE_SEQ_REV_UNIT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_SETS_CARD_EMPE", "CVC5_PROOF_REWRITE_RULE_SETS_CARD_EMP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_CARD_MINUSE", "CVC5_PROOF_REWRITE_RULE_SETS_CARD_MINUS"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_SETS_CARD_SINGLETONE", "CVC5_PROOF_REWRITE_RULE_SETS_CARD_SINGLETON"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_CARD_UNIONE", "CVC5_PROOF_REWRITE_RULE_SETS_CARD_UNION"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_SETS_CHOOSE_SINGLETONE", "CVC5_PROOF_REWRITE_RULE_SETS_CHOOSE_SINGLETON"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_SETS_EQ_SINGLETON_EMPE", "CVC5_PROOF_REWRITE_RULE_SETS_EQ_SINGLETON_EMP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_SETS_INSERT_ELIME", "CVC5_PROOF_REWRITE_RULE_SETS_INSERT_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_INTER_COMME", "CVC5_PROOF_REWRITE_RULE_SETS_INTER_COMM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_INTER_EMP1E", "CVC5_PROOF_REWRITE_RULE_SETS_INTER_EMP1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_INTER_EMP2E", "CVC5_PROOF_REWRITE_RULE_SETS_INTER_EMP2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_SETS_INTER_MEMBERE", "CVC5_PROOF_REWRITE_RULE_SETS_INTER_MEMBER"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_SETS_IS_EMPTY_ELIME", "CVC5_PROOF_REWRITE_RULE_SETS_IS_EMPTY_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_SETS_IS_EMPTY_EVALE", "CVC5_PROOF_REWRITE_RULE_SETS_IS_EMPTY_EVAL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_MEMBER_EMPE", "CVC5_PROOF_REWRITE_RULE_SETS_MEMBER_EMP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_SETS_MEMBER_SINGLETONE", "CVC5_PROOF_REWRITE_RULE_SETS_MEMBER_SINGLETON"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_MINUS_EMP1E", "CVC5_PROOF_REWRITE_RULE_SETS_MINUS_EMP1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_MINUS_EMP2E", "CVC5_PROOF_REWRITE_RULE_SETS_MINUS_EMP2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_SETS_MINUS_MEMBERE", "CVC5_PROOF_REWRITE_RULE_SETS_MINUS_MEMBER"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_MINUS_SELFE", "CVC5_PROOF_REWRITE_RULE_SETS_MINUS_SELF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_SETS_SUBSET_ELIME", "CVC5_PROOF_REWRITE_RULE_SETS_SUBSET_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_UNION_COMME", "CVC5_PROOF_REWRITE_RULE_SETS_UNION_COMM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_UNION_EMP1E", "CVC5_PROOF_REWRITE_RULE_SETS_UNION_EMP1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_UNION_EMP2E", "CVC5_PROOF_REWRITE_RULE_SETS_UNION_EMP2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_SETS_UNION_MEMBERE", "CVC5_PROOF_REWRITE_RULE_SETS_UNION_MEMBER"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_STR_AT_ELIME", "CVC5_PROOF_REWRITE_RULE_STR_AT_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASHE", "CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH2E", "CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH2_REVE", "CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH2_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH_CHARE", "CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH_CHAR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH_CHAR_REVE", "CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH_CHAR_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH_REVE", "CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_CONCAT_FLATTENE", "CVC5_PROOF_REWRITE_RULE_STR_CONCAT_FLATTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_STR_CONCAT_FLATTEN_EQE", "CVC5_PROOF_REWRITE_RULE_STR_CONCAT_FLATTEN_EQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_STR_CONCAT_FLATTEN_EQ_REVE", "CVC5_PROOF_REWRITE_RULE_STR_CONCAT_FLATTEN_EQ_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_CONCAT_UNIFYE", "CVC5_PROOF_REWRITE_RULE_STR_CONCAT_UNIFY"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_STR_CONCAT_UNIFY_BASEE", "CVC5_PROOF_REWRITE_RULE_STR_CONCAT_UNIFY_BASE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_STR_CONCAT_UNIFY_BASE_REVE", "CVC5_PROOF_REWRITE_RULE_STR_CONCAT_UNIFY_BASE_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_CONCAT_UNIFY_REVE", "CVC5_PROOF_REWRITE_RULE_STR_CONCAT_UNIFY_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_CONCAT_FINDE", "CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_CONCAT_FIND"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_EMPE", "CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_EMP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_IS_EMPE", "CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_IS_EMP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_LEQ_LEN_EQE", "CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_LEQ_LEN_EQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_LT_LENE", "CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_LT_LEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_REFLE", "CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_REFL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_SPLIT_CHARE", "CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_SPLIT_CHAR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_EQ_CTN_FALSEE", "CVC5_PROOF_REWRITE_RULE_STR_EQ_CTN_FALSE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_STR_EQ_CTN_FULL_FALSE1E", "CVC5_PROOF_REWRITE_RULE_STR_EQ_CTN_FULL_FALSE1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_STR_EQ_CTN_FULL_FALSE2E", "CVC5_PROOF_REWRITE_RULE_STR_EQ_CTN_FULL_FALSE2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_STR_INDEXOF_CONTAINS_PREE", "CVC5_PROOF_REWRITE_RULE_STR_INDEXOF_CONTAINS_PRE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_STR_INDEXOF_NO_CONTAINSE", "CVC5_PROOF_REWRITE_RULE_STR_INDEXOF_NO_CONTAINS"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_INDEXOF_RE_NONEE", "CVC5_PROOF_REWRITE_RULE_STR_INDEXOF_RE_NONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_INDEXOF_SELFE", "CVC5_PROOF_REWRITE_RULE_STR_INDEXOF_SELF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_STR_IN_RE_CONCAT_STAR_CHARE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_CONCAT_STAR_CHAR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_STR_IN_RE_CONSUMEE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_CONSUME"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_IN_RE_CONTAINSE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_CONTAINS"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_STR_IN_RE_EVALE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_EVAL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_IN_RE_INTER_ELIME", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_INTER_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_IN_RE_RANGE_ELIME", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_RANGE_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_IN_RE_REQ_UNFOLDE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_REQ_UNFOLD"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_STR_IN_RE_REQ_UNFOLD_REVE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_REQ_UNFOLD_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_STR_IN_RE_SIGMAE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_SIGMA"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_IN_RE_SIGMA_STARE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_SIGMA_STAR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_STR_IN_RE_SKIP_UNFOLDE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_SKIP_UNFOLD"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_STR_IN_RE_SKIP_UNFOLD_REVE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_SKIP_UNFOLD_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_CHARE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_CHAR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_CHAR_REVE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_CHAR_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule53CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_CHAR_S_SINGLEE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_CHAR_S_SINGLE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule57CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_CHAR_S_SINGLE_REVE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_CHAR_S_SINGLE_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIXE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule51CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASEE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule55CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_NEGE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_NEG"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule59CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_NEG_REVE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_NEG_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule55CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_REVE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule60CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLEE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule64CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEGE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule68CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG_REVE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule64CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_REVE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_NEGE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_NEG"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule54CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_NEG_REVE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_NEG_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_REVE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule57CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SRS_SINGLEE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SRS_SINGLE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule61CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEGE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule65CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG_REVE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule61CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_REVE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule56CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SR_SINGLEE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SR_SINGLE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule60CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEGE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule64CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG_REVE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule60CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SR_SINGLE_REVE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SR_SINGLE_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule55CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_S_SINGLEE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_S_SINGLE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule59CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEGE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule63CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG_REVE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule59CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_S_SINGLE_REVE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_S_SINGLE_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_STR_IN_RE_TEST_UNFOLDE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_TEST_UNFOLD"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_STR_IN_RE_TEST_UNFOLD_REVE", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_TEST_UNFOLD_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_IN_RE_UNION_ELIME", "CVC5_PROOF_REWRITE_RULE_STR_IN_RE_UNION_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_LEN_CONCAT_RECE", "CVC5_PROOF_REWRITE_RULE_STR_LEN_CONCAT_REC"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_LEN_REPLACE_INVE", "CVC5_PROOF_REWRITE_RULE_STR_LEN_REPLACE_INV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_STR_LEN_SUBSTR_IN_RANGEE", "CVC5_PROOF_REWRITE_RULE_STR_LEN_SUBSTR_IN_RANGE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_LEN_SUBSTR_UB1E", "CVC5_PROOF_REWRITE_RULE_STR_LEN_SUBSTR_UB1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_LEN_SUBSTR_UB2E", "CVC5_PROOF_REWRITE_RULE_STR_LEN_SUBSTR_UB2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_LEN_UPDATE_INVE", "CVC5_PROOF_REWRITE_RULE_STR_LEN_UPDATE_INV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_LEQ_CONCAT_FALSEE", "CVC5_PROOF_REWRITE_RULE_STR_LEQ_CONCAT_FALSE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_LEQ_CONCAT_TRUEE", "CVC5_PROOF_REWRITE_RULE_STR_LEQ_CONCAT_TRUE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_STR_LEQ_EMPTYE", "CVC5_PROOF_REWRITE_RULE_STR_LEQ_EMPTY"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_LEQ_EMPTY_EQE", "CVC5_PROOF_REWRITE_RULE_STR_LEQ_EMPTY_EQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_STR_LT_ELIME", "CVC5_PROOF_REWRITE_RULE_STR_LT_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_STR_PREFIXOF_ELIME", "CVC5_PROOF_REWRITE_RULE_STR_PREFIXOF_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_PREFIXOF_ONEE", "CVC5_PROOF_REWRITE_RULE_STR_PREFIXOF_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule51CVC5_PROOF_REWRITE_RULE_STR_REPLACE_ALL_NO_CONTAINSE", "CVC5_PROOF_REWRITE_RULE_STR_REPLACE_ALL_NO_CONTAINS"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_STR_REPLACE_CONTAINS_PREE", "CVC5_PROOF_REWRITE_RULE_STR_REPLACE_CONTAINS_PRE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_STR_REPLACE_EMPTYE", "CVC5_PROOF_REWRITE_RULE_STR_REPLACE_EMPTY"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_STR_REPLACE_NO_CONTAINSE", "CVC5_PROOF_REWRITE_RULE_STR_REPLACE_NO_CONTAINS"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_REPLACE_PREFIXE", "CVC5_PROOF_REWRITE_RULE_STR_REPLACE_PREFIX"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_STR_REPLACE_RE_ALL_NONEE", "CVC5_PROOF_REWRITE_RULE_STR_REPLACE_RE_ALL_NONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_REPLACE_RE_NONEE", "CVC5_PROOF_REWRITE_RULE_STR_REPLACE_RE_NONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_REPLACE_SELFE", "CVC5_PROOF_REWRITE_RULE_STR_REPLACE_SELF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_COMBINE1E", "CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_COMBINE1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_COMBINE2E", "CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_COMBINE2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_COMBINE3E", "CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_COMBINE3"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_COMBINE4E", "CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_COMBINE4"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_CONCAT1E", "CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_CONCAT1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_CONCAT2E", "CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_CONCAT2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EMPTY_RANGEE", "CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EMPTY_RANGE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EMPTY_STARTE", "CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EMPTY_START"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EMPTY_START_NEGE", "CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EMPTY_START_NEG"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EMPTY_STRE", "CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EMPTY_STR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EQ_EMPTYE", "CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EQ_EMPTY"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_FULLE", "CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_FULL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_FULL_EQE", "CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_FULL_EQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_LEN_INCLUDEE", "CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_LEN_INCLUDE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_LEN_INCLUDE_PREE", "CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_LEN_INCLUDE_PRE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_LEN_SKIPE", "CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_LEN_SKIP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_STR_SUFFIXOF_ELIME", "CVC5_PROOF_REWRITE_RULE_STR_SUFFIXOF_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_SUFFIXOF_ONEE", "CVC5_PROOF_REWRITE_RULE_STR_SUFFIXOF_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_STR_TO_INT_CONCAT_NEG_ONEE", "CVC5_PROOF_REWRITE_RULE_STR_TO_INT_CONCAT_NEG_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_TO_LOWER_CONCATE", "CVC5_PROOF_REWRITE_RULE_STR_TO_LOWER_CONCAT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_STR_TO_LOWER_FROM_INTE", "CVC5_PROOF_REWRITE_RULE_STR_TO_LOWER_FROM_INT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_TO_LOWER_LENE", "CVC5_PROOF_REWRITE_RULE_STR_TO_LOWER_LEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_TO_LOWER_UPPERE", "CVC5_PROOF_REWRITE_RULE_STR_TO_LOWER_UPPER"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_TO_UPPER_CONCATE", "CVC5_PROOF_REWRITE_RULE_STR_TO_UPPER_CONCAT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_STR_TO_UPPER_FROM_INTE", "CVC5_PROOF_REWRITE_RULE_STR_TO_UPPER_FROM_INT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_TO_UPPER_LENE", "CVC5_PROOF_REWRITE_RULE_STR_TO_UPPER_LEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_TO_UPPER_LOWERE", "CVC5_PROOF_REWRITE_RULE_STR_TO_UPPER_LOWER"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_UF_BV2NAT_GEQ_ELIME", "CVC5_PROOF_REWRITE_RULE_UF_BV2NAT_GEQ_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_UF_BV2NAT_INT2BVE", "CVC5_PROOF_REWRITE_RULE_UF_BV2NAT_INT2BV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_UF_BV2NAT_INT2BV_EXTENDE", "CVC5_PROOF_REWRITE_RULE_UF_BV2NAT_INT2BV_EXTEND"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_UF_BV2NAT_INT2BV_EXTRACTE", "CVC5_PROOF_REWRITE_RULE_UF_BV2NAT_INT2BV_EXTRACT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_UF_INT2BV_BV2NATE", "CVC5_PROOF_REWRITE_RULE_UF_INT2BV_BV2NAT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_UF_INT2BV_BVULE_EQUIVE", "CVC5_PROOF_REWRITE_RULE_UF_INT2BV_BVULE_EQUIV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_UF_INT2BV_BVULT_EQUIVE", "CVC5_PROOF_REWRITE_RULE_UF_INT2BV_BVULT_EQUIV"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule24CVC5_PROOF_RULE_ACI_NORME", "CVC5_PROOF_RULE_ACI_NORM"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_ALETHE_RULEE", "CVC5_PROOF_RULE_ALETHE_RULE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_ALPHA_EQUIVE", "CVC5_PROOF_RULE_ALPHA_EQUIV"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule24CVC5_PROOF_RULE_AND_ELIME", "CVC5_PROOF_RULE_AND_ELIM"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_AND_INTROE", "CVC5_PROOF_RULE_AND_INTRO"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule41CVC5_PROOF_RULE_ARITH_MULT_ABS_COMPARISONE", "CVC5_PROOF_RULE_ARITH_MULT_ABS_COMPARISON"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_ARITH_MULT_NEGE", "CVC5_PROOF_RULE_ARITH_MULT_NEG"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_ARITH_MULT_POSE", "CVC5_PROOF_RULE_ARITH_MULT_POS"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_ARITH_MULT_SIGNE", "CVC5_PROOF_RULE_ARITH_MULT_SIGN"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule34CVC5_PROOF_RULE_ARITH_MULT_TANGENTE", "CVC5_PROOF_RULE_ARITH_MULT_TANGENT"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_ARITH_POLY_NORME", "CVC5_PROOF_RULE_ARITH_POLY_NORM"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule35CVC5_PROOF_RULE_ARITH_POLY_NORM_RELE", "CVC5_PROOF_RULE_ARITH_POLY_NORM_REL"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_ARITH_REDUCTIONE", "CVC5_PROOF_RULE_ARITH_REDUCTION"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_ARITH_SUM_UBE", "CVC5_PROOF_RULE_ARITH_SUM_UB"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule48CVC5_PROOF_RULE_ARITH_TRANS_EXP_APPROX_ABOVE_NEGE", "CVC5_PROOF_RULE_ARITH_TRANS_EXP_APPROX_ABOVE_NEG"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule48CVC5_PROOF_RULE_ARITH_TRANS_EXP_APPROX_ABOVE_POSE", "CVC5_PROOF_RULE_ARITH_TRANS_EXP_APPROX_ABOVE_POS"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule44CVC5_PROOF_RULE_ARITH_TRANS_EXP_APPROX_BELOWE", "CVC5_PROOF_RULE_ARITH_TRANS_EXP_APPROX_BELOW"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule35CVC5_PROOF_RULE_ARITH_TRANS_EXP_NEGE", "CVC5_PROOF_RULE_ARITH_TRANS_EXP_NEG"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule42CVC5_PROOF_RULE_ARITH_TRANS_EXP_POSITIVITYE", "CVC5_PROOF_RULE_ARITH_TRANS_EXP_POSITIVITY"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule41CVC5_PROOF_RULE_ARITH_TRANS_EXP_SUPER_LINE", "CVC5_PROOF_RULE_ARITH_TRANS_EXP_SUPER_LIN"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule36CVC5_PROOF_RULE_ARITH_TRANS_EXP_ZEROE", "CVC5_PROOF_RULE_ARITH_TRANS_EXP_ZERO"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_ARITH_TRANS_PIE", "CVC5_PROOF_RULE_ARITH_TRANS_PI"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule49CVC5_PROOF_RULE_ARITH_TRANS_SINE_APPROX_ABOVE_NEGE", "CVC5_PROOF_RULE_ARITH_TRANS_SINE_APPROX_ABOVE_NEG"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule49CVC5_PROOF_RULE_ARITH_TRANS_SINE_APPROX_ABOVE_POSE", "CVC5_PROOF_RULE_ARITH_TRANS_SINE_APPROX_ABOVE_POS"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule49CVC5_PROOF_RULE_ARITH_TRANS_SINE_APPROX_BELOW_NEGE", "CVC5_PROOF_RULE_ARITH_TRANS_SINE_APPROX_BELOW_NEG"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule49CVC5_PROOF_RULE_ARITH_TRANS_SINE_APPROX_BELOW_POSE", "CVC5_PROOF_RULE_ARITH_TRANS_SINE_APPROX_BELOW_POS"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule39CVC5_PROOF_RULE_ARITH_TRANS_SINE_BOUNDSE", "CVC5_PROOF_RULE_ARITH_TRANS_SINE_BOUNDS"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule38CVC5_PROOF_RULE_ARITH_TRANS_SINE_SHIFTE", "CVC5_PROOF_RULE_ARITH_TRANS_SINE_SHIFT"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule41CVC5_PROOF_RULE_ARITH_TRANS_SINE_SYMMETRYE", "CVC5_PROOF_RULE_ARITH_TRANS_SINE_SYMMETRY"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule43CVC5_PROOF_RULE_ARITH_TRANS_SINE_TANGENT_PIE", "CVC5_PROOF_RULE_ARITH_TRANS_SINE_TANGENT_PI"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule45CVC5_PROOF_RULE_ARITH_TRANS_SINE_TANGENT_ZEROE", "CVC5_PROOF_RULE_ARITH_TRANS_SINE_TANGENT_ZERO"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_ARITH_TRICHOTOMYE", "CVC5_PROOF_RULE_ARITH_TRICHOTOMY"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_ARRAYS_EXTE", "CVC5_PROOF_RULE_ARRAYS_EXT"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule38CVC5_PROOF_RULE_ARRAYS_READ_OVER_WRITEE", "CVC5_PROOF_RULE_ARRAYS_READ_OVER_WRITE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule40CVC5_PROOF_RULE_ARRAYS_READ_OVER_WRITE_1E", "CVC5_PROOF_RULE_ARRAYS_READ_OVER_WRITE_1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule45CVC5_PROOF_RULE_ARRAYS_READ_OVER_WRITE_CONTRAE", "CVC5_PROOF_RULE_ARRAYS_READ_OVER_WRITE_CONTRA"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule22CVC5_PROOF_RULE_ASSUMEE", "CVC5_PROOF_RULE_ASSUME"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_BV_BITBLAST_STEPE", "CVC5_PROOF_RULE_BV_BITBLAST_STEP"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_BV_EAGER_ATOME", "CVC5_PROOF_RULE_BV_EAGER_ATOM"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_CHAIN_RESOLUTIONE", "CVC5_PROOF_RULE_CHAIN_RESOLUTION"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_CNF_AND_NEGE", "CVC5_PROOF_RULE_CNF_AND_NEG"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_CNF_AND_POSE", "CVC5_PROOF_RULE_CNF_AND_POS"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_CNF_EQUIV_NEG1E", "CVC5_PROOF_RULE_CNF_EQUIV_NEG1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_CNF_EQUIV_NEG2E", "CVC5_PROOF_RULE_CNF_EQUIV_NEG2"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_CNF_EQUIV_POS1E", "CVC5_PROOF_RULE_CNF_EQUIV_POS1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_CNF_EQUIV_POS2E", "CVC5_PROOF_RULE_CNF_EQUIV_POS2"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_CNF_IMPLIES_NEG1E", "CVC5_PROOF_RULE_CNF_IMPLIES_NEG1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_CNF_IMPLIES_NEG2E", "CVC5_PROOF_RULE_CNF_IMPLIES_NEG2"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_CNF_IMPLIES_POSE", "CVC5_PROOF_RULE_CNF_IMPLIES_POS"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_ITE_NEG1E", "CVC5_PROOF_RULE_CNF_ITE_NEG1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_ITE_NEG2E", "CVC5_PROOF_RULE_CNF_ITE_NEG2"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_ITE_NEG3E", "CVC5_PROOF_RULE_CNF_ITE_NEG3"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_ITE_POS1E", "CVC5_PROOF_RULE_CNF_ITE_POS1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_ITE_POS2E", "CVC5_PROOF_RULE_CNF_ITE_POS2"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_ITE_POS3E", "CVC5_PROOF_RULE_CNF_ITE_POS3"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_CNF_OR_NEGE", "CVC5_PROOF_RULE_CNF_OR_NEG"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_CNF_OR_POSE", "CVC5_PROOF_RULE_CNF_OR_POS"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_XOR_NEG1E", "CVC5_PROOF_RULE_CNF_XOR_NEG1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_XOR_NEG2E", "CVC5_PROOF_RULE_CNF_XOR_NEG2"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_XOR_POS1E", "CVC5_PROOF_RULE_CNF_XOR_POS1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_XOR_POS2E", "CVC5_PROOF_RULE_CNF_XOR_POS2"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_CONCAT_CONFLICTE", "CVC5_PROOF_RULE_CONCAT_CONFLICT"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule35CVC5_PROOF_RULE_CONCAT_CONFLICT_DEQE", "CVC5_PROOF_RULE_CONCAT_CONFLICT_DEQ"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CONCAT_CPROPE", "CVC5_PROOF_RULE_CONCAT_CPROP"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_CONCAT_CSPLITE", "CVC5_PROOF_RULE_CONCAT_CSPLIT"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_CONCAT_EQE", "CVC5_PROOF_RULE_CONCAT_EQ"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CONCAT_LPROPE", "CVC5_PROOF_RULE_CONCAT_LPROP"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CONCAT_SPLITE", "CVC5_PROOF_RULE_CONCAT_SPLIT"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CONCAT_UNIFYE", "CVC5_PROOF_RULE_CONCAT_UNIFY"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule20CVC5_PROOF_RULE_CONGE", "CVC5_PROOF_RULE_CONG"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule22CVC5_PROOF_RULE_CONTRAE", "CVC5_PROOF_RULE_CONTRA"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_DRAT_REFUTATIONE", "CVC5_PROOF_RULE_DRAT_REFUTATION"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_DSL_REWRITEE", "CVC5_PROOF_RULE_DSL_REWRITE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule24CVC5_PROOF_RULE_DT_CLASHE", "CVC5_PROOF_RULE_DT_CLASH"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule24CVC5_PROOF_RULE_DT_SPLITE", "CVC5_PROOF_RULE_DT_SPLIT"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_ENCODE_EQ_INTROE", "CVC5_PROOF_RULE_ENCODE_EQ_INTRO"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_EQUIV_ELIM1E", "CVC5_PROOF_RULE_EQUIV_ELIM1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_EQUIV_ELIM2E", "CVC5_PROOF_RULE_EQUIV_ELIM2"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_EQ_RESOLVEE", "CVC5_PROOF_RULE_EQ_RESOLVE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule24CVC5_PROOF_RULE_EVALUATEE", "CVC5_PROOF_RULE_EVALUATE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_FACTORINGE", "CVC5_PROOF_RULE_FACTORING"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_FALSE_ELIME", "CVC5_PROOF_RULE_FALSE_ELIM"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_FALSE_INTROE", "CVC5_PROOF_RULE_FALSE_INTRO"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_HO_APP_ENCODEE", "CVC5_PROOF_RULE_HO_APP_ENCODE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule23CVC5_PROOF_RULE_HO_CONGE", "CVC5_PROOF_RULE_HO_CONG"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_IMPLIES_ELIME", "CVC5_PROOF_RULE_IMPLIES_ELIM"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_INSTANTIATEE", "CVC5_PROOF_RULE_INSTANTIATE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_INT_TIGHT_LBE", "CVC5_PROOF_RULE_INT_TIGHT_LB"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_INT_TIGHT_UBE", "CVC5_PROOF_RULE_INT_TIGHT_UB"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_ITE_ELIM1E", "CVC5_PROOF_RULE_ITE_ELIM1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_ITE_ELIM2E", "CVC5_PROOF_RULE_ITE_ELIM2"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule22CVC5_PROOF_RULE_ITE_EQE", "CVC5_PROOF_RULE_ITE_EQ"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule20CVC5_PROOF_RULE_LASTE", "CVC5_PROOF_RULE_LAST"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_LFSC_RULEE", "CVC5_PROOF_RULE_LFSC_RULE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule40CVC5_PROOF_RULE_MACRO_ARITH_SCALE_SUM_UBE", "CVC5_PROOF_RULE_MACRO_ARITH_SCALE_SUM_UB"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule33CVC5_PROOF_RULE_MACRO_BV_BITBLASTE", "CVC5_PROOF_RULE_MACRO_BV_BITBLAST"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_MACRO_RESOLUTIONE", "CVC5_PROOF_RULE_MACRO_RESOLUTION"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule38CVC5_PROOF_RULE_MACRO_RESOLUTION_TRUSTE", "CVC5_PROOF_RULE_MACRO_RESOLUTION_TRUST"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_MACRO_REWRITEE", "CVC5_PROOF_RULE_MACRO_REWRITE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule33CVC5_PROOF_RULE_MACRO_SR_EQ_INTROE", "CVC5_PROOF_RULE_MACRO_SR_EQ_INTRO"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule34CVC5_PROOF_RULE_MACRO_SR_PRED_ELIME", "CVC5_PROOF_RULE_MACRO_SR_PRED_ELIM"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule35CVC5_PROOF_RULE_MACRO_SR_PRED_INTROE", "CVC5_PROOF_RULE_MACRO_SR_PRED_INTRO"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule39CVC5_PROOF_RULE_MACRO_SR_PRED_TRANSFORME", "CVC5_PROOF_RULE_MACRO_SR_PRED_TRANSFORM"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule38CVC5_PROOF_RULE_MACRO_STRING_INFERENCEE", "CVC5_PROOF_RULE_MACRO_STRING_INFERENCE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_MODUS_PONENSE", "CVC5_PROOF_RULE_MODUS_PONENS"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_NARY_CONGE", "CVC5_PROOF_RULE_NARY_CONG"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule23CVC5_PROOF_RULE_NOT_ANDE", "CVC5_PROOF_RULE_NOT_AND"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_NOT_EQUIV_ELIM1E", "CVC5_PROOF_RULE_NOT_EQUIV_ELIM1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_NOT_EQUIV_ELIM2E", "CVC5_PROOF_RULE_NOT_EQUIV_ELIM2"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule33CVC5_PROOF_RULE_NOT_IMPLIES_ELIM1E", "CVC5_PROOF_RULE_NOT_IMPLIES_ELIM1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule33CVC5_PROOF_RULE_NOT_IMPLIES_ELIM2E", "CVC5_PROOF_RULE_NOT_IMPLIES_ELIM2"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_NOT_ITE_ELIM1E", "CVC5_PROOF_RULE_NOT_ITE_ELIM1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_NOT_ITE_ELIM2E", "CVC5_PROOF_RULE_NOT_ITE_ELIM2"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_NOT_NOT_ELIME", "CVC5_PROOF_RULE_NOT_NOT_ELIM"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_NOT_OR_ELIME", "CVC5_PROOF_RULE_NOT_OR_ELIM"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_NOT_XOR_ELIM1E", "CVC5_PROOF_RULE_NOT_XOR_ELIM1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_NOT_XOR_ELIM2E", "CVC5_PROOF_RULE_NOT_XOR_ELIM2"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule36CVC5_PROOF_RULE_QUANT_VAR_REORDERINGE", "CVC5_PROOF_RULE_QUANT_VAR_REORDERING"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule20CVC5_PROOF_RULE_REFLE", "CVC5_PROOF_RULE_REFL"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_REORDERINGE", "CVC5_PROOF_RULE_REORDERING"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_RESOLUTIONE", "CVC5_PROOF_RULE_RESOLUTION"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule24CVC5_PROOF_RULE_RE_INTERE", "CVC5_PROOF_RULE_RE_INTER"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_RE_UNFOLD_NEGE", "CVC5_PROOF_RULE_RE_UNFOLD_NEG"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule42CVC5_PROOF_RULE_RE_UNFOLD_NEG_CONCAT_FIXEDE", "CVC5_PROOF_RULE_RE_UNFOLD_NEG_CONCAT_FIXED"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_RE_UNFOLD_POSE", "CVC5_PROOF_RULE_RE_UNFOLD_POS"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule34CVC5_PROOF_RULE_SAT_EXTERNAL_PROVEE", "CVC5_PROOF_RULE_SAT_EXTERNAL_PROVE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_SAT_REFUTATIONE", "CVC5_PROOF_RULE_SAT_REFUTATION"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule21CVC5_PROOF_RULE_SCOPEE", "CVC5_PROOF_RULE_SCOPE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule24CVC5_PROOF_RULE_SETS_EXTE", "CVC5_PROOF_RULE_SETS_EXT"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_SETS_FILTER_DOWNE", "CVC5_PROOF_RULE_SETS_FILTER_DOWN"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_SETS_FILTER_UPE", "CVC5_PROOF_RULE_SETS_FILTER_UP"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule34CVC5_PROOF_RULE_SETS_SINGLETON_INJE", "CVC5_PROOF_RULE_SETS_SINGLETON_INJ"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_SKOLEMIZEE", "CVC5_PROOF_RULE_SKOLEMIZE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_SKOLEM_INTROE", "CVC5_PROOF_RULE_SKOLEM_INTRO"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule21CVC5_PROOF_RULE_SPLITE", "CVC5_PROOF_RULE_SPLIT"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_STRING_CODE_INJE", "CVC5_PROOF_RULE_STRING_CODE_INJ"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_STRING_DECOMPOSEE", "CVC5_PROOF_RULE_STRING_DECOMPOSE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule38CVC5_PROOF_RULE_STRING_EAGER_REDUCTIONE", "CVC5_PROOF_RULE_STRING_EAGER_REDUCTION"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_STRING_EXTE", "CVC5_PROOF_RULE_STRING_EXT"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule39CVC5_PROOF_RULE_STRING_LENGTH_NON_EMPTYE", "CVC5_PROOF_RULE_STRING_LENGTH_NON_EMPTY"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule33CVC5_PROOF_RULE_STRING_LENGTH_POSE", "CVC5_PROOF_RULE_STRING_LENGTH_POS"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_STRING_REDUCTIONE", "CVC5_PROOF_RULE_STRING_REDUCTION"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule35CVC5_PROOF_RULE_STRING_SEQ_UNIT_INJE", "CVC5_PROOF_RULE_STRING_SEQ_UNIT_INJ"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule20CVC5_PROOF_RULE_SUBSE", "CVC5_PROOF_RULE_SUBS"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule20CVC5_PROOF_RULE_SYMME", "CVC5_PROOF_RULE_SYMM"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_THEORY_REWRITEE", "CVC5_PROOF_RULE_THEORY_REWRITE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule21CVC5_PROOF_RULE_TRANSE", "CVC5_PROOF_RULE_TRANS"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_TRUE_ELIME", "CVC5_PROOF_RULE_TRUE_ELIM"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_TRUE_INTROE", "CVC5_PROOF_RULE_TRUE_INTRO"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule21CVC5_PROOF_RULE_TRUSTE", "CVC5_PROOF_RULE_TRUST"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule36CVC5_PROOF_RULE_TRUST_THEORY_REWRITEE", "CVC5_PROOF_RULE_TRUST_THEORY_REWRITE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule23CVC5_PROOF_RULE_UNKNOWNE", "CVC5_PROOF_RULE_UNKNOWN"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_XOR_ELIM1E", "CVC5_PROOF_RULE_XOR_ELIM1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_XOR_ELIM2E", "CVC5_PROOF_RULE_XOR_ELIM2"], [4, 0, 1, "_CPPv4N16Cvc5RoundingMode12CVC5_RM_LASTE", "CVC5_RM_LAST"], [4, 0, 1, "_CPPv4N16Cvc5RoundingMode34CVC5_RM_ROUND_NEAREST_TIES_TO_AWAYE", "CVC5_RM_ROUND_NEAREST_TIES_TO_AWAY"], [4, 0, 1, "_CPPv4N16Cvc5RoundingMode34CVC5_RM_ROUND_NEAREST_TIES_TO_EVENE", "CVC5_RM_ROUND_NEAREST_TIES_TO_EVEN"], [4, 0, 1, "_CPPv4N16Cvc5RoundingMode29CVC5_RM_ROUND_TOWARD_NEGATIVEE", "CVC5_RM_ROUND_TOWARD_NEGATIVE"], [4, 0, 1, "_CPPv4N16Cvc5RoundingMode29CVC5_RM_ROUND_TOWARD_POSITIVEE", "CVC5_RM_ROUND_TOWARD_POSITIVE"], [4, 0, 1, "_CPPv4N16Cvc5RoundingMode25CVC5_RM_ROUND_TOWARD_ZEROE", "CVC5_RM_ROUND_TOWARD_ZERO"], [5, 0, 1, "_CPPv4N12Cvc5SortKind28CVC5_SORT_KIND_ABSTRACT_SORTE", "CVC5_SORT_KIND_ABSTRACT_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind25CVC5_SORT_KIND_ARRAY_SORTE", "CVC5_SORT_KIND_ARRAY_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind23CVC5_SORT_KIND_BAG_SORTE", "CVC5_SORT_KIND_BAG_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind29CVC5_SORT_KIND_BITVECTOR_SORTE", "CVC5_SORT_KIND_BITVECTOR_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind27CVC5_SORT_KIND_BOOLEAN_SORTE", "CVC5_SORT_KIND_BOOLEAN_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind28CVC5_SORT_KIND_DATATYPE_SORTE", "CVC5_SORT_KIND_DATATYPE_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind32CVC5_SORT_KIND_FINITE_FIELD_SORTE", "CVC5_SORT_KIND_FINITE_FIELD_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind33CVC5_SORT_KIND_FLOATINGPOINT_SORTE", "CVC5_SORT_KIND_FLOATINGPOINT_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind28CVC5_SORT_KIND_FUNCTION_SORTE", "CVC5_SORT_KIND_FUNCTION_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind27CVC5_SORT_KIND_INTEGER_SORTE", "CVC5_SORT_KIND_INTEGER_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind33CVC5_SORT_KIND_INTERNAL_SORT_KINDE", "CVC5_SORT_KIND_INTERNAL_SORT_KIND"], [5, 0, 1, "_CPPv4N12Cvc5SortKind29CVC5_SORT_KIND_LAST_SORT_KINDE", "CVC5_SORT_KIND_LAST_SORT_KIND"], [5, 0, 1, "_CPPv4N12Cvc5SortKind28CVC5_SORT_KIND_NULLABLE_SORTE", "CVC5_SORT_KIND_NULLABLE_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind24CVC5_SORT_KIND_NULL_SORTE", "CVC5_SORT_KIND_NULL_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind24CVC5_SORT_KIND_REAL_SORTE", "CVC5_SORT_KIND_REAL_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind26CVC5_SORT_KIND_REGLAN_SORTE", "CVC5_SORT_KIND_REGLAN_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind32CVC5_SORT_KIND_ROUNDINGMODE_SORTE", "CVC5_SORT_KIND_ROUNDINGMODE_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind28CVC5_SORT_KIND_SEQUENCE_SORTE", "CVC5_SORT_KIND_SEQUENCE_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind23CVC5_SORT_KIND_SET_SORTE", "CVC5_SORT_KIND_SET_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind26CVC5_SORT_KIND_STRING_SORTE", "CVC5_SORT_KIND_STRING_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind25CVC5_SORT_KIND_TUPLE_SORTE", "CVC5_SORT_KIND_TUPLE_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind34CVC5_SORT_KIND_UNDEFINED_SORT_KINDE", "CVC5_SORT_KIND_UNDEFINED_SORT_KIND"], [5, 0, 1, "_CPPv4N12Cvc5SortKind33CVC5_SORT_KIND_UNINTERPRETED_SORTE", "CVC5_SORT_KIND_UNINTERPRETED_SORT"], [6, 0, 1, "_CPPv4N22Cvc5UnknownExplanation35CVC5_UNKNOWN_EXPLANATION_INCOMPLETEE", "CVC5_UNKNOWN_EXPLANATION_INCOMPLETE"], [6, 0, 1, "_CPPv4N22Cvc5UnknownExplanation36CVC5_UNKNOWN_EXPLANATION_INTERRUPTEDE", "CVC5_UNKNOWN_EXPLANATION_INTERRUPTED"], [6, 0, 1, "_CPPv4N22Cvc5UnknownExplanation29CVC5_UNKNOWN_EXPLANATION_LASTE", "CVC5_UNKNOWN_EXPLANATION_LAST"], [6, 0, 1, "_CPPv4N22Cvc5UnknownExplanation31CVC5_UNKNOWN_EXPLANATION_MEMOUTE", "CVC5_UNKNOWN_EXPLANATION_MEMOUT"], [6, 0, 1, "_CPPv4N22Cvc5UnknownExplanation30CVC5_UNKNOWN_EXPLANATION_OTHERE", "CVC5_UNKNOWN_EXPLANATION_OTHER"], [6, 0, 1, "_CPPv4N22Cvc5UnknownExplanation45CVC5_UNKNOWN_EXPLANATION_REQUIRES_CHECK_AGAINE", "CVC5_UNKNOWN_EXPLANATION_REQUIRES_CHECK_AGAIN"], [6, 0, 1, "_CPPv4N22Cvc5UnknownExplanation44CVC5_UNKNOWN_EXPLANATION_REQUIRES_FULL_CHECKE", "CVC5_UNKNOWN_EXPLANATION_REQUIRES_FULL_CHECK"], [6, 0, 1, "_CPPv4N22Cvc5UnknownExplanation36CVC5_UNKNOWN_EXPLANATION_RESOURCEOUTE", "CVC5_UNKNOWN_EXPLANATION_RESOURCEOUT"], [6, 0, 1, "_CPPv4N22Cvc5UnknownExplanation32CVC5_UNKNOWN_EXPLANATION_TIMEOUTE", "CVC5_UNKNOWN_EXPLANATION_TIMEOUT"], [6, 0, 1, "_CPPv4N22Cvc5UnknownExplanation39CVC5_UNKNOWN_EXPLANATION_UNKNOWN_REASONE", "CVC5_UNKNOWN_EXPLANATION_UNKNOWN_REASON"], [6, 0, 1, "_CPPv4N22Cvc5UnknownExplanation36CVC5_UNKNOWN_EXPLANATION_UNSUPPORTEDE", "CVC5_UNKNOWN_EXPLANATION_UNSUPPORTED"], [11, 1, 1, "_CPPv44Cvc5", "Cvc5"], [7, 2, 1, "_CPPv419Cvc5BlockModelsMode", "Cvc5BlockModelsMode"], [7, 0, 1, "_CPPv4N19Cvc5BlockModelsMode27CVC5_BLOCK_MODELS_MODE_LASTE", "Cvc5BlockModelsMode::CVC5_BLOCK_MODELS_MODE_LAST"], [7, 0, 1, "_CPPv4N19Cvc5BlockModelsMode31CVC5_BLOCK_MODELS_MODE_LITERALSE", "Cvc5BlockModelsMode::CVC5_BLOCK_MODELS_MODE_LITERALS"], [7, 0, 1, "_CPPv4N19Cvc5BlockModelsMode29CVC5_BLOCK_MODELS_MODE_VALUESE", "Cvc5BlockModelsMode::CVC5_BLOCK_MODELS_MODE_VALUES"], [12, 1, 1, "_CPPv411Cvc5Command", "Cvc5Command"], [13, 1, 1, "_CPPv412Cvc5Datatype", "Cvc5Datatype"], [14, 1, 1, "_CPPv423Cvc5DatatypeConstructor", "Cvc5DatatypeConstructor"], [15, 1, 1, "_CPPv427Cvc5DatatypeConstructorDecl", "Cvc5DatatypeConstructorDecl"], [16, 1, 1, "_CPPv416Cvc5DatatypeDecl", "Cvc5DatatypeDecl"], [17, 1, 1, "_CPPv420Cvc5DatatypeSelector", "Cvc5DatatypeSelector"], [7, 2, 1, "_CPPv419Cvc5FindSynthTarget", "Cvc5FindSynthTarget"], [7, 0, 1, "_CPPv4N19Cvc5FindSynthTarget27CVC5_FIND_SYNTH_TARGET_ENUME", "Cvc5FindSynthTarget::CVC5_FIND_SYNTH_TARGET_ENUM"], [7, 0, 1, "_CPPv4N19Cvc5FindSynthTarget27CVC5_FIND_SYNTH_TARGET_LASTE", "Cvc5FindSynthTarget::CVC5_FIND_SYNTH_TARGET_LAST"], [7, 0, 1, "_CPPv4N19Cvc5FindSynthTarget28CVC5_FIND_SYNTH_TARGET_QUERYE", "Cvc5FindSynthTarget::CVC5_FIND_SYNTH_TARGET_QUERY"], [7, 0, 1, "_CPPv4N19Cvc5FindSynthTarget30CVC5_FIND_SYNTH_TARGET_REWRITEE", "Cvc5FindSynthTarget::CVC5_FIND_SYNTH_TARGET_REWRITE"], [7, 0, 1, "_CPPv4N19Cvc5FindSynthTarget36CVC5_FIND_SYNTH_TARGET_REWRITE_INPUTE", "Cvc5FindSynthTarget::CVC5_FIND_SYNTH_TARGET_REWRITE_INPUT"], [7, 0, 1, "_CPPv4N19Cvc5FindSynthTarget38CVC5_FIND_SYNTH_TARGET_REWRITE_UNSOUNDE", "Cvc5FindSynthTarget::CVC5_FIND_SYNTH_TARGET_REWRITE_UNSOUND"], [18, 1, 1, "_CPPv411Cvc5Grammar", "Cvc5Grammar"], [19, 1, 1, "_CPPv415Cvc5InputParser", "Cvc5InputParser"], [2, 2, 1, "_CPPv48Cvc5Kind", "Cvc5Kind"], [2, 0, 1, "_CPPv4N8Cvc5Kind13CVC5_KIND_ABSE", "Cvc5Kind::CVC5_KIND_ABS"], [2, 0, 1, "_CPPv4N8Cvc5Kind13CVC5_KIND_ADDE", "Cvc5Kind::CVC5_KIND_ADD"], [2, 0, 1, "_CPPv4N8Cvc5Kind13CVC5_KIND_ANDE", "Cvc5Kind::CVC5_KIND_AND"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_APPLY_CONSTRUCTORE", "Cvc5Kind::CVC5_KIND_APPLY_CONSTRUCTOR"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_APPLY_SELECTORE", "Cvc5Kind::CVC5_KIND_APPLY_SELECTOR"], [2, 0, 1, "_CPPv4N8Cvc5Kind22CVC5_KIND_APPLY_TESTERE", "Cvc5Kind::CVC5_KIND_APPLY_TESTER"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_APPLY_UFE", "Cvc5Kind::CVC5_KIND_APPLY_UF"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_APPLY_UPDATERE", "Cvc5Kind::CVC5_KIND_APPLY_UPDATER"], [2, 0, 1, "_CPPv4N8Cvc5Kind21CVC5_KIND_ARCCOSECANTE", "Cvc5Kind::CVC5_KIND_ARCCOSECANT"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_ARCCOSINEE", "Cvc5Kind::CVC5_KIND_ARCCOSINE"], [2, 0, 1, "_CPPv4N8Cvc5Kind22CVC5_KIND_ARCCOTANGENTE", "Cvc5Kind::CVC5_KIND_ARCCOTANGENT"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_ARCSECANTE", "Cvc5Kind::CVC5_KIND_ARCSECANT"], [2, 0, 1, "_CPPv4N8Cvc5Kind17CVC5_KIND_ARCSINEE", "Cvc5Kind::CVC5_KIND_ARCSINE"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_ARCTANGENTE", "Cvc5Kind::CVC5_KIND_ARCTANGENT"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_BAG_CARDE", "Cvc5Kind::CVC5_KIND_BAG_CARD"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_BAG_CHOOSEE", "Cvc5Kind::CVC5_KIND_BAG_CHOOSE"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_BAG_COUNTE", "Cvc5Kind::CVC5_KIND_BAG_COUNT"], [2, 0, 1, "_CPPv4N8Cvc5Kind31CVC5_KIND_BAG_DIFFERENCE_REMOVEE", "Cvc5Kind::CVC5_KIND_BAG_DIFFERENCE_REMOVE"], [2, 0, 1, "_CPPv4N8Cvc5Kind33CVC5_KIND_BAG_DIFFERENCE_SUBTRACTE", "Cvc5Kind::CVC5_KIND_BAG_DIFFERENCE_SUBTRACT"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_BAG_EMPTYE", "Cvc5Kind::CVC5_KIND_BAG_EMPTY"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_BAG_FILTERE", "Cvc5Kind::CVC5_KIND_BAG_FILTER"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_BAG_FOLDE", "Cvc5Kind::CVC5_KIND_BAG_FOLD"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BAG_INTER_MINE", "Cvc5Kind::CVC5_KIND_BAG_INTER_MIN"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_BAG_MAKEE", "Cvc5Kind::CVC5_KIND_BAG_MAKE"], [2, 0, 1, "_CPPv4N8Cvc5Kind17CVC5_KIND_BAG_MAPE", "Cvc5Kind::CVC5_KIND_BAG_MAP"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_BAG_MEMBERE", "Cvc5Kind::CVC5_KIND_BAG_MEMBER"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BAG_PARTITIONE", "Cvc5Kind::CVC5_KIND_BAG_PARTITION"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_BAG_SETOFE", "Cvc5Kind::CVC5_KIND_BAG_SETOF"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_BAG_SUBBAGE", "Cvc5Kind::CVC5_KIND_BAG_SUBBAG"], [2, 0, 1, "_CPPv4N8Cvc5Kind28CVC5_KIND_BAG_UNION_DISJOINTE", "Cvc5Kind::CVC5_KIND_BAG_UNION_DISJOINT"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BAG_UNION_MAXE", "Cvc5Kind::CVC5_KIND_BAG_UNION_MAX"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_ADDE", "Cvc5Kind::CVC5_KIND_BITVECTOR_ADD"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_ANDE", "Cvc5Kind::CVC5_KIND_BITVECTOR_AND"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_ASHRE", "Cvc5Kind::CVC5_KIND_BITVECTOR_ASHR"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_BITE", "Cvc5Kind::CVC5_KIND_BITVECTOR_BIT"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_COMPE", "Cvc5Kind::CVC5_KIND_BITVECTOR_COMP"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_BITVECTOR_CONCATE", "Cvc5Kind::CVC5_KIND_BITVECTOR_CONCAT"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_BITVECTOR_EXTRACTE", "Cvc5Kind::CVC5_KIND_BITVECTOR_EXTRACT"], [2, 0, 1, "_CPPv4N8Cvc5Kind30CVC5_KIND_BITVECTOR_FROM_BOOLSE", "Cvc5Kind::CVC5_KIND_BITVECTOR_FROM_BOOLS"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_ITEE", "Cvc5Kind::CVC5_KIND_BITVECTOR_ITE"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_LSHRE", "Cvc5Kind::CVC5_KIND_BITVECTOR_LSHR"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_MULTE", "Cvc5Kind::CVC5_KIND_BITVECTOR_MULT"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_NANDE", "Cvc5Kind::CVC5_KIND_BITVECTOR_NAND"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_NEGE", "Cvc5Kind::CVC5_KIND_BITVECTOR_NEG"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_NEGOE", "Cvc5Kind::CVC5_KIND_BITVECTOR_NEGO"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_NORE", "Cvc5Kind::CVC5_KIND_BITVECTOR_NOR"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_NOTE", "Cvc5Kind::CVC5_KIND_BITVECTOR_NOT"], [2, 0, 1, "_CPPv4N8Cvc5Kind22CVC5_KIND_BITVECTOR_ORE", "Cvc5Kind::CVC5_KIND_BITVECTOR_OR"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_BITVECTOR_REDANDE", "Cvc5Kind::CVC5_KIND_BITVECTOR_REDAND"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_REDORE", "Cvc5Kind::CVC5_KIND_BITVECTOR_REDOR"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_BITVECTOR_REPEATE", "Cvc5Kind::CVC5_KIND_BITVECTOR_REPEAT"], [2, 0, 1, "_CPPv4N8Cvc5Kind31CVC5_KIND_BITVECTOR_ROTATE_LEFTE", "Cvc5Kind::CVC5_KIND_BITVECTOR_ROTATE_LEFT"], [2, 0, 1, "_CPPv4N8Cvc5Kind32CVC5_KIND_BITVECTOR_ROTATE_RIGHTE", "Cvc5Kind::CVC5_KIND_BITVECTOR_ROTATE_RIGHT"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_SADDOE", "Cvc5Kind::CVC5_KIND_BITVECTOR_SADDO"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_SDIVE", "Cvc5Kind::CVC5_KIND_BITVECTOR_SDIV"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_SDIVOE", "Cvc5Kind::CVC5_KIND_BITVECTOR_SDIVO"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_SGEE", "Cvc5Kind::CVC5_KIND_BITVECTOR_SGE"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_SGTE", "Cvc5Kind::CVC5_KIND_BITVECTOR_SGT"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_SHLE", "Cvc5Kind::CVC5_KIND_BITVECTOR_SHL"], [2, 0, 1, "_CPPv4N8Cvc5Kind31CVC5_KIND_BITVECTOR_SIGN_EXTENDE", "Cvc5Kind::CVC5_KIND_BITVECTOR_SIGN_EXTEND"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_SLEE", "Cvc5Kind::CVC5_KIND_BITVECTOR_SLE"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_SLTE", "Cvc5Kind::CVC5_KIND_BITVECTOR_SLT"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_SLTBVE", "Cvc5Kind::CVC5_KIND_BITVECTOR_SLTBV"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_SMODE", "Cvc5Kind::CVC5_KIND_BITVECTOR_SMOD"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_SMULOE", "Cvc5Kind::CVC5_KIND_BITVECTOR_SMULO"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_SREME", "Cvc5Kind::CVC5_KIND_BITVECTOR_SREM"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_SSUBOE", "Cvc5Kind::CVC5_KIND_BITVECTOR_SSUBO"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_SUBE", "Cvc5Kind::CVC5_KIND_BITVECTOR_SUB"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_BITVECTOR_TO_NATE", "Cvc5Kind::CVC5_KIND_BITVECTOR_TO_NAT"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_UADDOE", "Cvc5Kind::CVC5_KIND_BITVECTOR_UADDO"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_UDIVE", "Cvc5Kind::CVC5_KIND_BITVECTOR_UDIV"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_UGEE", "Cvc5Kind::CVC5_KIND_BITVECTOR_UGE"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_UGTE", "Cvc5Kind::CVC5_KIND_BITVECTOR_UGT"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_ULEE", "Cvc5Kind::CVC5_KIND_BITVECTOR_ULE"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_ULTE", "Cvc5Kind::CVC5_KIND_BITVECTOR_ULT"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_ULTBVE", "Cvc5Kind::CVC5_KIND_BITVECTOR_ULTBV"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_UMULOE", "Cvc5Kind::CVC5_KIND_BITVECTOR_UMULO"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_UREME", "Cvc5Kind::CVC5_KIND_BITVECTOR_UREM"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_USUBOE", "Cvc5Kind::CVC5_KIND_BITVECTOR_USUBO"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_XNORE", "Cvc5Kind::CVC5_KIND_BITVECTOR_XNOR"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_XORE", "Cvc5Kind::CVC5_KIND_BITVECTOR_XOR"], [2, 0, 1, "_CPPv4N8Cvc5Kind31CVC5_KIND_BITVECTOR_ZERO_EXTENDE", "Cvc5Kind::CVC5_KIND_BITVECTOR_ZERO_EXTEND"], [2, 0, 1, "_CPPv4N8Cvc5Kind32CVC5_KIND_CARDINALITY_CONSTRAINTE", "Cvc5Kind::CVC5_KIND_CARDINALITY_CONSTRAINT"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_CONSTANTE", "Cvc5Kind::CVC5_KIND_CONSTANT"], [2, 0, 1, "_CPPv4N8Cvc5Kind21CVC5_KIND_CONST_ARRAYE", "Cvc5Kind::CVC5_KIND_CONST_ARRAY"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_CONST_BITVECTORE", "Cvc5Kind::CVC5_KIND_CONST_BITVECTOR"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_CONST_BOOLEANE", "Cvc5Kind::CVC5_KIND_CONST_BOOLEAN"], [2, 0, 1, "_CPPv4N8Cvc5Kind28CVC5_KIND_CONST_FINITE_FIELDE", "Cvc5Kind::CVC5_KIND_CONST_FINITE_FIELD"], [2, 0, 1, "_CPPv4N8Cvc5Kind29CVC5_KIND_CONST_FLOATINGPOINTE", "Cvc5Kind::CVC5_KIND_CONST_FLOATINGPOINT"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_CONST_INTEGERE", "Cvc5Kind::CVC5_KIND_CONST_INTEGER"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_CONST_RATIONALE", "Cvc5Kind::CVC5_KIND_CONST_RATIONAL"], [2, 0, 1, "_CPPv4N8Cvc5Kind28CVC5_KIND_CONST_ROUNDINGMODEE", "Cvc5Kind::CVC5_KIND_CONST_ROUNDINGMODE"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_CONST_SEQUENCEE", "Cvc5Kind::CVC5_KIND_CONST_SEQUENCE"], [2, 0, 1, "_CPPv4N8Cvc5Kind22CVC5_KIND_CONST_STRINGE", "Cvc5Kind::CVC5_KIND_CONST_STRING"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_COSECANTE", "Cvc5Kind::CVC5_KIND_COSECANT"], [2, 0, 1, "_CPPv4N8Cvc5Kind16CVC5_KIND_COSINEE", "Cvc5Kind::CVC5_KIND_COSINE"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_COTANGENTE", "Cvc5Kind::CVC5_KIND_COTANGENT"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_DISTINCTE", "Cvc5Kind::CVC5_KIND_DISTINCT"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_DIVISIBLEE", "Cvc5Kind::CVC5_KIND_DIVISIBLE"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_DIVISIONE", "Cvc5Kind::CVC5_KIND_DIVISION"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_DIVISION_TOTALE", "Cvc5Kind::CVC5_KIND_DIVISION_TOTAL"], [2, 0, 1, "_CPPv4N8Cvc5Kind15CVC5_KIND_EQUALE", "Cvc5Kind::CVC5_KIND_EQUAL"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_EQ_RANGEE", "Cvc5Kind::CVC5_KIND_EQ_RANGE"], [2, 0, 1, "_CPPv4N8Cvc5Kind16CVC5_KIND_EXISTSE", "Cvc5Kind::CVC5_KIND_EXISTS"], [2, 0, 1, "_CPPv4N8Cvc5Kind21CVC5_KIND_EXPONENTIALE", "Cvc5Kind::CVC5_KIND_EXPONENTIAL"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_FINITE_FIELD_ADDE", "Cvc5Kind::CVC5_KIND_FINITE_FIELD_ADD"], [2, 0, 1, "_CPPv4N8Cvc5Kind29CVC5_KIND_FINITE_FIELD_BITSUME", "Cvc5Kind::CVC5_KIND_FINITE_FIELD_BITSUM"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_FINITE_FIELD_MULTE", "Cvc5Kind::CVC5_KIND_FINITE_FIELD_MULT"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_FINITE_FIELD_NEGE", "Cvc5Kind::CVC5_KIND_FINITE_FIELD_NEG"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_ABSE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_ABS"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_ADDE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_ADD"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_DIVE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_DIV"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_FLOATINGPOINT_EQE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_EQ"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_FMAE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_FMA"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_FLOATINGPOINT_FPE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_FP"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_GEQE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_GEQ"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_FLOATINGPOINT_GTE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_GT"], [2, 0, 1, "_CPPv4N8Cvc5Kind30CVC5_KIND_FLOATINGPOINT_IS_INFE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_IS_INF"], [2, 0, 1, "_CPPv4N8Cvc5Kind30CVC5_KIND_FLOATINGPOINT_IS_NANE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_IS_NAN"], [2, 0, 1, "_CPPv4N8Cvc5Kind30CVC5_KIND_FLOATINGPOINT_IS_NEGE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_IS_NEG"], [2, 0, 1, "_CPPv4N8Cvc5Kind33CVC5_KIND_FLOATINGPOINT_IS_NORMALE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_IS_NORMAL"], [2, 0, 1, "_CPPv4N8Cvc5Kind30CVC5_KIND_FLOATINGPOINT_IS_POSE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_IS_POS"], [2, 0, 1, "_CPPv4N8Cvc5Kind36CVC5_KIND_FLOATINGPOINT_IS_SUBNORMALE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_IS_SUBNORMAL"], [2, 0, 1, "_CPPv4N8Cvc5Kind31CVC5_KIND_FLOATINGPOINT_IS_ZEROE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_IS_ZERO"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_LEQE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_LEQ"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_FLOATINGPOINT_LTE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_LT"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_MAXE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_MAX"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_MINE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_MIN"], [2, 0, 1, "_CPPv4N8Cvc5Kind28CVC5_KIND_FLOATINGPOINT_MULTE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_MULT"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_NEGE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_NEG"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_REME", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_REM"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_RTIE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_RTI"], [2, 0, 1, "_CPPv4N8Cvc5Kind28CVC5_KIND_FLOATINGPOINT_SQRTE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_SQRT"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_SUBE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_SUB"], [2, 0, 1, "_CPPv4N8Cvc5Kind37CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_FPE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_FP"], [2, 0, 1, "_CPPv4N8Cvc5Kind42CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_IEEE_BVE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_IEEE_BV"], [2, 0, 1, "_CPPv4N8Cvc5Kind39CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_REALE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_REAL"], [2, 0, 1, "_CPPv4N8Cvc5Kind38CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_SBVE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_SBV"], [2, 0, 1, "_CPPv4N8Cvc5Kind38CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_UBVE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_UBV"], [2, 0, 1, "_CPPv4N8Cvc5Kind31CVC5_KIND_FLOATINGPOINT_TO_REALE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_TO_REAL"], [2, 0, 1, "_CPPv4N8Cvc5Kind30CVC5_KIND_FLOATINGPOINT_TO_SBVE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_TO_SBV"], [2, 0, 1, "_CPPv4N8Cvc5Kind30CVC5_KIND_FLOATINGPOINT_TO_UBVE", "Cvc5Kind::CVC5_KIND_FLOATINGPOINT_TO_UBV"], [2, 0, 1, "_CPPv4N8Cvc5Kind16CVC5_KIND_FORALLE", "Cvc5Kind::CVC5_KIND_FORALL"], [2, 0, 1, "_CPPv4N8Cvc5Kind13CVC5_KIND_GEQE", "Cvc5Kind::CVC5_KIND_GEQ"], [2, 0, 1, "_CPPv4N8Cvc5Kind12CVC5_KIND_GTE", "Cvc5Kind::CVC5_KIND_GT"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_HO_APPLYE", "Cvc5Kind::CVC5_KIND_HO_APPLY"], [2, 0, 1, "_CPPv4N8Cvc5Kind14CVC5_KIND_IANDE", "Cvc5Kind::CVC5_KIND_IAND"], [2, 0, 1, "_CPPv4N8Cvc5Kind17CVC5_KIND_IMPLIESE", "Cvc5Kind::CVC5_KIND_IMPLIES"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_INST_ADD_TO_POOLE", "Cvc5Kind::CVC5_KIND_INST_ADD_TO_POOL"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_INST_ATTRIBUTEE", "Cvc5Kind::CVC5_KIND_INST_ATTRIBUTE"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_INST_NO_PATTERNE", "Cvc5Kind::CVC5_KIND_INST_NO_PATTERN"], [2, 0, 1, "_CPPv4N8Cvc5Kind22CVC5_KIND_INST_PATTERNE", "Cvc5Kind::CVC5_KIND_INST_PATTERN"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_INST_PATTERN_LISTE", "Cvc5Kind::CVC5_KIND_INST_PATTERN_LIST"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_INST_POOLE", "Cvc5Kind::CVC5_KIND_INST_POOL"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_INTERNAL_KINDE", "Cvc5Kind::CVC5_KIND_INTERNAL_KIND"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_INTS_DIVISIONE", "Cvc5Kind::CVC5_KIND_INTS_DIVISION"], [2, 0, 1, "_CPPv4N8Cvc5Kind29CVC5_KIND_INTS_DIVISION_TOTALE", "Cvc5Kind::CVC5_KIND_INTS_DIVISION_TOTAL"], [2, 0, 1, "_CPPv4N8Cvc5Kind22CVC5_KIND_INTS_MODULUSE", "Cvc5Kind::CVC5_KIND_INTS_MODULUS"], [2, 0, 1, "_CPPv4N8Cvc5Kind28CVC5_KIND_INTS_MODULUS_TOTALE", "Cvc5Kind::CVC5_KIND_INTS_MODULUS_TOTAL"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_INT_TO_BITVECTORE", "Cvc5Kind::CVC5_KIND_INT_TO_BITVECTOR"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_IS_INTEGERE", "Cvc5Kind::CVC5_KIND_IS_INTEGER"], [2, 0, 1, "_CPPv4N8Cvc5Kind13CVC5_KIND_ITEE", "Cvc5Kind::CVC5_KIND_ITE"], [2, 0, 1, "_CPPv4N8Cvc5Kind16CVC5_KIND_LAMBDAE", "Cvc5Kind::CVC5_KIND_LAMBDA"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_LAST_KINDE", "Cvc5Kind::CVC5_KIND_LAST_KIND"], [2, 0, 1, "_CPPv4N8Cvc5Kind13CVC5_KIND_LEQE", "Cvc5Kind::CVC5_KIND_LEQ"], [2, 0, 1, "_CPPv4N8Cvc5Kind12CVC5_KIND_LTE", "Cvc5Kind::CVC5_KIND_LT"], [2, 0, 1, "_CPPv4N8Cvc5Kind15CVC5_KIND_MATCHE", "Cvc5Kind::CVC5_KIND_MATCH"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_MATCH_BIND_CASEE", "Cvc5Kind::CVC5_KIND_MATCH_BIND_CASE"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_MATCH_CASEE", "Cvc5Kind::CVC5_KIND_MATCH_CASE"], [2, 0, 1, "_CPPv4N8Cvc5Kind14CVC5_KIND_MULTE", "Cvc5Kind::CVC5_KIND_MULT"], [2, 0, 1, "_CPPv4N8Cvc5Kind13CVC5_KIND_NEGE", "Cvc5Kind::CVC5_KIND_NEG"], [2, 0, 1, "_CPPv4N8Cvc5Kind13CVC5_KIND_NOTE", "Cvc5Kind::CVC5_KIND_NOT"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_NULLABLE_LIFTE", "Cvc5Kind::CVC5_KIND_NULLABLE_LIFT"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_NULL_TERME", "Cvc5Kind::CVC5_KIND_NULL_TERM"], [2, 0, 1, "_CPPv4N8Cvc5Kind12CVC5_KIND_ORE", "Cvc5Kind::CVC5_KIND_OR"], [2, 0, 1, "_CPPv4N8Cvc5Kind12CVC5_KIND_PIE", "Cvc5Kind::CVC5_KIND_PI"], [2, 0, 1, "_CPPv4N8Cvc5Kind13CVC5_KIND_POWE", "Cvc5Kind::CVC5_KIND_POW"], [2, 0, 1, "_CPPv4N8Cvc5Kind14CVC5_KIND_POW2E", "Cvc5Kind::CVC5_KIND_POW2"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_REGEXP_ALLE", "Cvc5Kind::CVC5_KIND_REGEXP_ALL"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_REGEXP_ALLCHARE", "Cvc5Kind::CVC5_KIND_REGEXP_ALLCHAR"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_REGEXP_COMPLEMENTE", "Cvc5Kind::CVC5_KIND_REGEXP_COMPLEMENT"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_REGEXP_CONCATE", "Cvc5Kind::CVC5_KIND_REGEXP_CONCAT"], [2, 0, 1, "_CPPv4N8Cvc5Kind21CVC5_KIND_REGEXP_DIFFE", "Cvc5Kind::CVC5_KIND_REGEXP_DIFF"], [2, 0, 1, "_CPPv4N8Cvc5Kind22CVC5_KIND_REGEXP_INTERE", "Cvc5Kind::CVC5_KIND_REGEXP_INTER"], [2, 0, 1, "_CPPv4N8Cvc5Kind21CVC5_KIND_REGEXP_LOOPE", "Cvc5Kind::CVC5_KIND_REGEXP_LOOP"], [2, 0, 1, "_CPPv4N8Cvc5Kind21CVC5_KIND_REGEXP_NONEE", "Cvc5Kind::CVC5_KIND_REGEXP_NONE"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_REGEXP_OPTE", "Cvc5Kind::CVC5_KIND_REGEXP_OPT"], [2, 0, 1, "_CPPv4N8Cvc5Kind21CVC5_KIND_REGEXP_PLUSE", "Cvc5Kind::CVC5_KIND_REGEXP_PLUS"], [2, 0, 1, "_CPPv4N8Cvc5Kind22CVC5_KIND_REGEXP_RANGEE", "Cvc5Kind::CVC5_KIND_REGEXP_RANGE"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_REGEXP_REPEATE", "Cvc5Kind::CVC5_KIND_REGEXP_REPEAT"], [2, 0, 1, "_CPPv4N8Cvc5Kind21CVC5_KIND_REGEXP_STARE", "Cvc5Kind::CVC5_KIND_REGEXP_STAR"], [2, 0, 1, "_CPPv4N8Cvc5Kind22CVC5_KIND_REGEXP_UNIONE", "Cvc5Kind::CVC5_KIND_REGEXP_UNION"], [2, 0, 1, "_CPPv4N8Cvc5Kind28CVC5_KIND_RELATION_AGGREGATEE", "Cvc5Kind::CVC5_KIND_RELATION_AGGREGATE"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_RELATION_GROUPE", "Cvc5Kind::CVC5_KIND_RELATION_GROUP"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_RELATION_IDENE", "Cvc5Kind::CVC5_KIND_RELATION_IDEN"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_RELATION_JOINE", "Cvc5Kind::CVC5_KIND_RELATION_JOIN"], [2, 0, 1, "_CPPv4N8Cvc5Kind29CVC5_KIND_RELATION_JOIN_IMAGEE", "Cvc5Kind::CVC5_KIND_RELATION_JOIN_IMAGE"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_RELATION_PRODUCTE", "Cvc5Kind::CVC5_KIND_RELATION_PRODUCT"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_RELATION_PROJECTE", "Cvc5Kind::CVC5_KIND_RELATION_PROJECT"], [2, 0, 1, "_CPPv4N8Cvc5Kind29CVC5_KIND_RELATION_TABLE_JOINE", "Cvc5Kind::CVC5_KIND_RELATION_TABLE_JOIN"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_RELATION_TCLOSUREE", "Cvc5Kind::CVC5_KIND_RELATION_TCLOSURE"], [2, 0, 1, "_CPPv4N8Cvc5Kind28CVC5_KIND_RELATION_TRANSPOSEE", "Cvc5Kind::CVC5_KIND_RELATION_TRANSPOSE"], [2, 0, 1, "_CPPv4N8Cvc5Kind16CVC5_KIND_SECANTE", "Cvc5Kind::CVC5_KIND_SECANT"], [2, 0, 1, "_CPPv4N8Cvc5Kind16CVC5_KIND_SELECTE", "Cvc5Kind::CVC5_KIND_SELECT"], [2, 0, 1, "_CPPv4N8Cvc5Kind17CVC5_KIND_SEP_EMPE", "Cvc5Kind::CVC5_KIND_SEP_EMP"], [2, 0, 1, "_CPPv4N8Cvc5Kind17CVC5_KIND_SEP_NILE", "Cvc5Kind::CVC5_KIND_SEP_NIL"], [2, 0, 1, "_CPPv4N8Cvc5Kind17CVC5_KIND_SEP_PTOE", "Cvc5Kind::CVC5_KIND_SEP_PTO"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_SEP_STARE", "Cvc5Kind::CVC5_KIND_SEP_STAR"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_SEP_WANDE", "Cvc5Kind::CVC5_KIND_SEP_WAND"], [2, 0, 1, "_CPPv4N8Cvc5Kind16CVC5_KIND_SEQ_ATE", "Cvc5Kind::CVC5_KIND_SEQ_AT"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_SEQ_CONCATE", "Cvc5Kind::CVC5_KIND_SEQ_CONCAT"], [2, 0, 1, "_CPPv4N8Cvc5Kind22CVC5_KIND_SEQ_CONTAINSE", "Cvc5Kind::CVC5_KIND_SEQ_CONTAINS"], [2, 0, 1, "_CPPv4N8Cvc5Kind21CVC5_KIND_SEQ_EXTRACTE", "Cvc5Kind::CVC5_KIND_SEQ_EXTRACT"], [2, 0, 1, "_CPPv4N8Cvc5Kind21CVC5_KIND_SEQ_INDEXOFE", "Cvc5Kind::CVC5_KIND_SEQ_INDEXOF"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_SEQ_LENGTHE", "Cvc5Kind::CVC5_KIND_SEQ_LENGTH"], [2, 0, 1, "_CPPv4N8Cvc5Kind17CVC5_KIND_SEQ_NTHE", "Cvc5Kind::CVC5_KIND_SEQ_NTH"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_SEQ_PREFIXE", "Cvc5Kind::CVC5_KIND_SEQ_PREFIX"], [2, 0, 1, "_CPPv4N8Cvc5Kind21CVC5_KIND_SEQ_REPLACEE", "Cvc5Kind::CVC5_KIND_SEQ_REPLACE"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_SEQ_REPLACE_ALLE", "Cvc5Kind::CVC5_KIND_SEQ_REPLACE_ALL"], [2, 0, 1, "_CPPv4N8Cvc5Kind17CVC5_KIND_SEQ_REVE", "Cvc5Kind::CVC5_KIND_SEQ_REV"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_SEQ_SUFFIXE", "Cvc5Kind::CVC5_KIND_SEQ_SUFFIX"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_SEQ_UNITE", "Cvc5Kind::CVC5_KIND_SEQ_UNIT"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_SEQ_UPDATEE", "Cvc5Kind::CVC5_KIND_SEQ_UPDATE"], [2, 0, 1, "_CPPv4N8Cvc5Kind17CVC5_KIND_SET_ALLE", "Cvc5Kind::CVC5_KIND_SET_ALL"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_SET_CARDE", "Cvc5Kind::CVC5_KIND_SET_CARD"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_SET_CHOOSEE", "Cvc5Kind::CVC5_KIND_SET_CHOOSE"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_SET_COMPLEMENTE", "Cvc5Kind::CVC5_KIND_SET_COMPLEMENT"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_SET_COMPREHENSIONE", "Cvc5Kind::CVC5_KIND_SET_COMPREHENSION"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_SET_EMPTYE", "Cvc5Kind::CVC5_KIND_SET_EMPTY"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_SET_FILTERE", "Cvc5Kind::CVC5_KIND_SET_FILTER"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_SET_FOLDE", "Cvc5Kind::CVC5_KIND_SET_FOLD"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_SET_INSERTE", "Cvc5Kind::CVC5_KIND_SET_INSERT"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_SET_INTERE", "Cvc5Kind::CVC5_KIND_SET_INTER"], [2, 0, 1, "_CPPv4N8Cvc5Kind22CVC5_KIND_SET_IS_EMPTYE", "Cvc5Kind::CVC5_KIND_SET_IS_EMPTY"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_SET_IS_SINGLETONE", "Cvc5Kind::CVC5_KIND_SET_IS_SINGLETON"], [2, 0, 1, "_CPPv4N8Cvc5Kind17CVC5_KIND_SET_MAPE", "Cvc5Kind::CVC5_KIND_SET_MAP"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_SET_MEMBERE", "Cvc5Kind::CVC5_KIND_SET_MEMBER"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_SET_MINUSE", "Cvc5Kind::CVC5_KIND_SET_MINUS"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_SET_SINGLETONE", "Cvc5Kind::CVC5_KIND_SET_SINGLETON"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_SET_SOMEE", "Cvc5Kind::CVC5_KIND_SET_SOME"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_SET_SUBSETE", "Cvc5Kind::CVC5_KIND_SET_SUBSET"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_SET_UNIONE", "Cvc5Kind::CVC5_KIND_SET_UNION"], [2, 0, 1, "_CPPv4N8Cvc5Kind22CVC5_KIND_SET_UNIVERSEE", "Cvc5Kind::CVC5_KIND_SET_UNIVERSE"], [2, 0, 1, "_CPPv4N8Cvc5Kind15CVC5_KIND_SEXPRE", "Cvc5Kind::CVC5_KIND_SEXPR"], [2, 0, 1, "_CPPv4N8Cvc5Kind14CVC5_KIND_SINEE", "Cvc5Kind::CVC5_KIND_SINE"], [2, 0, 1, "_CPPv4N8Cvc5Kind16CVC5_KIND_SKOLEME", "Cvc5Kind::CVC5_KIND_SKOLEM"], [2, 0, 1, "_CPPv4N8Cvc5Kind28CVC5_KIND_SKOLEM_ADD_TO_POOLE", "Cvc5Kind::CVC5_KIND_SKOLEM_ADD_TO_POOL"], [2, 0, 1, "_CPPv4N8Cvc5Kind14CVC5_KIND_SQRTE", "Cvc5Kind::CVC5_KIND_SQRT"], [2, 0, 1, "_CPPv4N8Cvc5Kind15CVC5_KIND_STOREE", "Cvc5Kind::CVC5_KIND_STORE"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_STRING_CHARATE", "Cvc5Kind::CVC5_KIND_STRING_CHARAT"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_STRING_CONCATE", "Cvc5Kind::CVC5_KIND_STRING_CONCAT"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_STRING_CONTAINSE", "Cvc5Kind::CVC5_KIND_STRING_CONTAINS"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_STRING_FROM_CODEE", "Cvc5Kind::CVC5_KIND_STRING_FROM_CODE"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_STRING_FROM_INTE", "Cvc5Kind::CVC5_KIND_STRING_FROM_INT"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_STRING_INDEXOFE", "Cvc5Kind::CVC5_KIND_STRING_INDEXOF"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_STRING_INDEXOF_REE", "Cvc5Kind::CVC5_KIND_STRING_INDEXOF_RE"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_STRING_IN_REGEXPE", "Cvc5Kind::CVC5_KIND_STRING_IN_REGEXP"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_STRING_IS_DIGITE", "Cvc5Kind::CVC5_KIND_STRING_IS_DIGIT"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_STRING_LENGTHE", "Cvc5Kind::CVC5_KIND_STRING_LENGTH"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_STRING_LEQE", "Cvc5Kind::CVC5_KIND_STRING_LEQ"], [2, 0, 1, "_CPPv4N8Cvc5Kind19CVC5_KIND_STRING_LTE", "Cvc5Kind::CVC5_KIND_STRING_LT"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_STRING_PREFIXE", "Cvc5Kind::CVC5_KIND_STRING_PREFIX"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_STRING_REPLACEE", "Cvc5Kind::CVC5_KIND_STRING_REPLACE"], [2, 0, 1, "_CPPv4N8Cvc5Kind28CVC5_KIND_STRING_REPLACE_ALLE", "Cvc5Kind::CVC5_KIND_STRING_REPLACE_ALL"], [2, 0, 1, "_CPPv4N8Cvc5Kind27CVC5_KIND_STRING_REPLACE_REE", "Cvc5Kind::CVC5_KIND_STRING_REPLACE_RE"], [2, 0, 1, "_CPPv4N8Cvc5Kind31CVC5_KIND_STRING_REPLACE_RE_ALLE", "Cvc5Kind::CVC5_KIND_STRING_REPLACE_RE_ALL"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_STRING_REVE", "Cvc5Kind::CVC5_KIND_STRING_REV"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_STRING_SUBSTRE", "Cvc5Kind::CVC5_KIND_STRING_SUBSTR"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_STRING_SUFFIXE", "Cvc5Kind::CVC5_KIND_STRING_SUFFIX"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_STRING_TO_CODEE", "Cvc5Kind::CVC5_KIND_STRING_TO_CODE"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_STRING_TO_INTE", "Cvc5Kind::CVC5_KIND_STRING_TO_INT"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_STRING_TO_LOWERE", "Cvc5Kind::CVC5_KIND_STRING_TO_LOWER"], [2, 0, 1, "_CPPv4N8Cvc5Kind26CVC5_KIND_STRING_TO_REGEXPE", "Cvc5Kind::CVC5_KIND_STRING_TO_REGEXP"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_STRING_TO_UPPERE", "Cvc5Kind::CVC5_KIND_STRING_TO_UPPER"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_STRING_UPDATEE", "Cvc5Kind::CVC5_KIND_STRING_UPDATE"], [2, 0, 1, "_CPPv4N8Cvc5Kind13CVC5_KIND_SUBE", "Cvc5Kind::CVC5_KIND_SUB"], [2, 0, 1, "_CPPv4N8Cvc5Kind25CVC5_KIND_TABLE_AGGREGATEE", "Cvc5Kind::CVC5_KIND_TABLE_AGGREGATE"], [2, 0, 1, "_CPPv4N8Cvc5Kind21CVC5_KIND_TABLE_GROUPE", "Cvc5Kind::CVC5_KIND_TABLE_GROUP"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_TABLE_JOINE", "Cvc5Kind::CVC5_KIND_TABLE_JOIN"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_TABLE_PRODUCTE", "Cvc5Kind::CVC5_KIND_TABLE_PRODUCT"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_TABLE_PROJECTE", "Cvc5Kind::CVC5_KIND_TABLE_PROJECT"], [2, 0, 1, "_CPPv4N8Cvc5Kind17CVC5_KIND_TANGENTE", "Cvc5Kind::CVC5_KIND_TANGENT"], [2, 0, 1, "_CPPv4N8Cvc5Kind20CVC5_KIND_TO_INTEGERE", "Cvc5Kind::CVC5_KIND_TO_INTEGER"], [2, 0, 1, "_CPPv4N8Cvc5Kind17CVC5_KIND_TO_REALE", "Cvc5Kind::CVC5_KIND_TO_REAL"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_TUPLE_PROJECTE", "Cvc5Kind::CVC5_KIND_TUPLE_PROJECT"], [2, 0, 1, "_CPPv4N8Cvc5Kind24CVC5_KIND_UNDEFINED_KINDE", "Cvc5Kind::CVC5_KIND_UNDEFINED_KIND"], [2, 0, 1, "_CPPv4N8Cvc5Kind34CVC5_KIND_UNINTERPRETED_SORT_VALUEE", "Cvc5Kind::CVC5_KIND_UNINTERPRETED_SORT_VALUE"], [2, 0, 1, "_CPPv4N8Cvc5Kind18CVC5_KIND_VARIABLEE", "Cvc5Kind::CVC5_KIND_VARIABLE"], [2, 0, 1, "_CPPv4N8Cvc5Kind23CVC5_KIND_VARIABLE_LISTE", "Cvc5Kind::CVC5_KIND_VARIABLE_LIST"], [2, 0, 1, "_CPPv4N8Cvc5Kind17CVC5_KIND_WITNESSE", "Cvc5Kind::CVC5_KIND_WITNESS"], [2, 0, 1, "_CPPv4N8Cvc5Kind13CVC5_KIND_XORE", "Cvc5Kind::CVC5_KIND_XOR"], [7, 2, 1, "_CPPv418Cvc5LearnedLitType", "Cvc5LearnedLitType"], [7, 0, 1, "_CPPv4N18Cvc5LearnedLitType35CVC5_LEARNED_LIT_TYPE_CONSTANT_PROPE", "Cvc5LearnedLitType::CVC5_LEARNED_LIT_TYPE_CONSTANT_PROP"], [7, 0, 1, "_CPPv4N18Cvc5LearnedLitType27CVC5_LEARNED_LIT_TYPE_INPUTE", "Cvc5LearnedLitType::CVC5_LEARNED_LIT_TYPE_INPUT"], [7, 0, 1, "_CPPv4N18Cvc5LearnedLitType30CVC5_LEARNED_LIT_TYPE_INTERNALE", "Cvc5LearnedLitType::CVC5_LEARNED_LIT_TYPE_INTERNAL"], [7, 0, 1, "_CPPv4N18Cvc5LearnedLitType26CVC5_LEARNED_LIT_TYPE_LASTE", "Cvc5LearnedLitType::CVC5_LEARNED_LIT_TYPE_LAST"], [7, 0, 1, "_CPPv4N18Cvc5LearnedLitType32CVC5_LEARNED_LIT_TYPE_PREPROCESSE", "Cvc5LearnedLitType::CVC5_LEARNED_LIT_TYPE_PREPROCESS"], [7, 0, 1, "_CPPv4N18Cvc5LearnedLitType39CVC5_LEARNED_LIT_TYPE_PREPROCESS_SOLVEDE", "Cvc5LearnedLitType::CVC5_LEARNED_LIT_TYPE_PREPROCESS_SOLVED"], [7, 0, 1, "_CPPv4N18Cvc5LearnedLitType30CVC5_LEARNED_LIT_TYPE_SOLVABLEE", "Cvc5LearnedLitType::CVC5_LEARNED_LIT_TYPE_SOLVABLE"], [7, 0, 1, "_CPPv4N18Cvc5LearnedLitType29CVC5_LEARNED_LIT_TYPE_UNKNOWNE", "Cvc5LearnedLitType::CVC5_LEARNED_LIT_TYPE_UNKNOWN"], [20, 1, 1, "_CPPv46Cvc5Op", "Cvc5Op"], [9, 3, 1, "_CPPv414Cvc5OptionInfo", "Cvc5OptionInfo"], [9, 1, 1, "_CPPv414Cvc5OptionInfo", "Cvc5OptionInfo"], [9, 3, 1, "_CPPv4N14Cvc5OptionInfo8BoolInfoE", "Cvc5OptionInfo::BoolInfo"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo8BoolInfo3curE", "Cvc5OptionInfo::BoolInfo::cur"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo8BoolInfo4dfltE", "Cvc5OptionInfo::BoolInfo::dflt"], [9, 3, 1, "_CPPv4N14Cvc5OptionInfo10DoubleInfoE", "Cvc5OptionInfo::DoubleInfo"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo10DoubleInfo3curE", "Cvc5OptionInfo::DoubleInfo::cur"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo10DoubleInfo4dfltE", "Cvc5OptionInfo::DoubleInfo::dflt"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo10DoubleInfo7has_maxE", "Cvc5OptionInfo::DoubleInfo::has_max"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo10DoubleInfo7has_minE", "Cvc5OptionInfo::DoubleInfo::has_min"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo10DoubleInfo3maxE", "Cvc5OptionInfo::DoubleInfo::max"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo10DoubleInfo3minE", "Cvc5OptionInfo::DoubleInfo::min"], [9, 3, 1, "_CPPv4N14Cvc5OptionInfo7IntInfoE", "Cvc5OptionInfo::IntInfo"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo7IntInfo3curE", "Cvc5OptionInfo::IntInfo::cur"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo7IntInfo4dfltE", "Cvc5OptionInfo::IntInfo::dflt"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo7IntInfo7has_maxE", "Cvc5OptionInfo::IntInfo::has_max"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo7IntInfo7has_minE", "Cvc5OptionInfo::IntInfo::has_min"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo7IntInfo3maxE", "Cvc5OptionInfo::IntInfo::max"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo7IntInfo3minE", "Cvc5OptionInfo::IntInfo::min"], [9, 3, 1, "_CPPv4N14Cvc5OptionInfo8ModeInfoE", "Cvc5OptionInfo::ModeInfo"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo8ModeInfo3curE", "Cvc5OptionInfo::ModeInfo::cur"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo8ModeInfo4dfltE", "Cvc5OptionInfo::ModeInfo::dflt"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo8ModeInfo5modesE", "Cvc5OptionInfo::ModeInfo::modes"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo8ModeInfo9num_modesE", "Cvc5OptionInfo::ModeInfo::num_modes"], [9, 3, 1, "_CPPv4N14Cvc5OptionInfo10StringInfoE", "Cvc5OptionInfo::StringInfo"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo10StringInfo3curE", "Cvc5OptionInfo::StringInfo::cur"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo10StringInfo4dfltE", "Cvc5OptionInfo::StringInfo::dflt"], [9, 3, 1, "_CPPv4N14Cvc5OptionInfo8UIntInfoE", "Cvc5OptionInfo::UIntInfo"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo8UIntInfo3curE", "Cvc5OptionInfo::UIntInfo::cur"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo8UIntInfo4dfltE", "Cvc5OptionInfo::UIntInfo::dflt"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo8UIntInfo7has_maxE", "Cvc5OptionInfo::UIntInfo::has_max"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo8UIntInfo7has_minE", "Cvc5OptionInfo::UIntInfo::has_min"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo8UIntInfo3maxE", "Cvc5OptionInfo::UIntInfo::max"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo8UIntInfo3minE", "Cvc5OptionInfo::UIntInfo::min"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo7aliasesE", "Cvc5OptionInfo::aliases"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo10d_cpp_infoE", "Cvc5OptionInfo::d_cpp_info"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo9is_expertE", "Cvc5OptionInfo::is_expert"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo10is_regularE", "Cvc5OptionInfo::is_regular"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo14is_set_by_userE", "Cvc5OptionInfo::is_set_by_user"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo4kindE", "Cvc5OptionInfo::kind"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo4nameE", "Cvc5OptionInfo::name"], [9, 4, 1, "_CPPv4N14Cvc5OptionInfo11num_aliasesE", "Cvc5OptionInfo::num_aliases"], [9, 2, 1, "_CPPv418Cvc5OptionInfoKind", "Cvc5OptionInfoKind"], [9, 0, 1, "_CPPv4N18Cvc5OptionInfoKind21CVC5_OPTION_INFO_BOOLE", "Cvc5OptionInfoKind::CVC5_OPTION_INFO_BOOL"], [9, 0, 1, "_CPPv4N18Cvc5OptionInfoKind23CVC5_OPTION_INFO_DOUBLEE", "Cvc5OptionInfoKind::CVC5_OPTION_INFO_DOUBLE"], [9, 0, 1, "_CPPv4N18Cvc5OptionInfoKind22CVC5_OPTION_INFO_INT64E", "Cvc5OptionInfoKind::CVC5_OPTION_INFO_INT64"], [9, 0, 1, "_CPPv4N18Cvc5OptionInfoKind22CVC5_OPTION_INFO_MODESE", "Cvc5OptionInfoKind::CVC5_OPTION_INFO_MODES"], [9, 0, 1, "_CPPv4N18Cvc5OptionInfoKind20CVC5_OPTION_INFO_STRE", "Cvc5OptionInfoKind::CVC5_OPTION_INFO_STR"], [9, 0, 1, "_CPPv4N18Cvc5OptionInfoKind23CVC5_OPTION_INFO_UINT64E", "Cvc5OptionInfoKind::CVC5_OPTION_INFO_UINT64"], [9, 0, 1, "_CPPv4N18Cvc5OptionInfoKind21CVC5_OPTION_INFO_VOIDE", "Cvc5OptionInfoKind::CVC5_OPTION_INFO_VOID"], [10, 3, 1, "_CPPv410Cvc5Plugin", "Cvc5Plugin"], [10, 1, 1, "_CPPv410Cvc5Plugin", "Cvc5Plugin"], [10, 4, 1, "_CPPv4N10Cvc5Plugin5checkE", "Cvc5Plugin::check"], [10, 4, 1, "_CPPv4N10Cvc5Plugin13d_check_stateE", "Cvc5Plugin::d_check_state"], [10, 4, 1, "_CPPv4N10Cvc5Plugin25d_notify_sat_clause_stateE", "Cvc5Plugin::d_notify_sat_clause_state"], [10, 4, 1, "_CPPv4N10Cvc5Plugin27d_notify_theory_lemma_stateE", "Cvc5Plugin::d_notify_theory_lemma_state"], [10, 4, 1, "_CPPv4N10Cvc5Plugin8get_nameE", "Cvc5Plugin::get_name"], [10, 4, 1, "_CPPv4N10Cvc5Plugin17notify_sat_clauseE", "Cvc5Plugin::notify_sat_clause"], [10, 4, 1, "_CPPv4N10Cvc5Plugin19notify_theory_lemmaE", "Cvc5Plugin::notify_theory_lemma"], [21, 1, 1, "_CPPv49Cvc5Proof", "Cvc5Proof"], [7, 2, 1, "_CPPv418Cvc5ProofComponent", "Cvc5ProofComponent"], [7, 0, 1, "_CPPv4N18Cvc5ProofComponent25CVC5_PROOF_COMPONENT_FULLE", "Cvc5ProofComponent::CVC5_PROOF_COMPONENT_FULL"], [7, 0, 1, "_CPPv4N18Cvc5ProofComponent25CVC5_PROOF_COMPONENT_LASTE", "Cvc5ProofComponent::CVC5_PROOF_COMPONENT_LAST"], [7, 0, 1, "_CPPv4N18Cvc5ProofComponent31CVC5_PROOF_COMPONENT_PREPROCESSE", "Cvc5ProofComponent::CVC5_PROOF_COMPONENT_PREPROCESS"], [7, 0, 1, "_CPPv4N18Cvc5ProofComponent35CVC5_PROOF_COMPONENT_RAW_PREPROCESSE", "Cvc5ProofComponent::CVC5_PROOF_COMPONENT_RAW_PREPROCESS"], [7, 0, 1, "_CPPv4N18Cvc5ProofComponent24CVC5_PROOF_COMPONENT_SATE", "Cvc5ProofComponent::CVC5_PROOF_COMPONENT_SAT"], [7, 0, 1, "_CPPv4N18Cvc5ProofComponent34CVC5_PROOF_COMPONENT_THEORY_LEMMASE", "Cvc5ProofComponent::CVC5_PROOF_COMPONENT_THEORY_LEMMAS"], [7, 2, 1, "_CPPv415Cvc5ProofFormat", "Cvc5ProofFormat"], [7, 0, 1, "_CPPv4N15Cvc5ProofFormat24CVC5_PROOF_FORMAT_ALETHEE", "Cvc5ProofFormat::CVC5_PROOF_FORMAT_ALETHE"], [7, 0, 1, "_CPPv4N15Cvc5ProofFormat21CVC5_PROOF_FORMAT_CPCE", "Cvc5ProofFormat::CVC5_PROOF_FORMAT_CPC"], [7, 0, 1, "_CPPv4N15Cvc5ProofFormat25CVC5_PROOF_FORMAT_DEFAULTE", "Cvc5ProofFormat::CVC5_PROOF_FORMAT_DEFAULT"], [7, 0, 1, "_CPPv4N15Cvc5ProofFormat21CVC5_PROOF_FORMAT_DOTE", "Cvc5ProofFormat::CVC5_PROOF_FORMAT_DOT"], [7, 0, 1, "_CPPv4N15Cvc5ProofFormat22CVC5_PROOF_FORMAT_LASTE", "Cvc5ProofFormat::CVC5_PROOF_FORMAT_LAST"], [7, 0, 1, "_CPPv4N15Cvc5ProofFormat22CVC5_PROOF_FORMAT_LFSCE", "Cvc5ProofFormat::CVC5_PROOF_FORMAT_LFSC"], [7, 0, 1, "_CPPv4N15Cvc5ProofFormat22CVC5_PROOF_FORMAT_NONEE", "Cvc5ProofFormat::CVC5_PROOF_FORMAT_NONE"], [3, 2, 1, "_CPPv420Cvc5ProofRewriteRule", "Cvc5ProofRewriteRule"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_ARITH_ABS_ELIM_INTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_ABS_ELIM_INT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_ARITH_ABS_ELIM_REALE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_ABS_ELIM_REAL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_ARITH_ABS_EQE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_ABS_EQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_ARITH_ABS_INT_GTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_ABS_INT_GT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_ARITH_ABS_REAL_GTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_ABS_REAL_GT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_ARITH_COSECENT_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_COSECENT_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_ARITH_COSINE_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_COSINE_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_ARITH_COTANGENT_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_COTANGENT_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_ARITH_DIV_ELIM_TO_REAL1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_DIV_ELIM_TO_REAL1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_ARITH_DIV_ELIM_TO_REAL2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_DIV_ELIM_TO_REAL2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_ARITH_DIV_TOTAL_INTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_DIV_TOTAL_INT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_ARITH_DIV_TOTAL_REALE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_DIV_TOTAL_REAL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_ARITH_DIV_TOTAL_ZERO_INTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_DIV_TOTAL_ZERO_INT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_ARITH_DIV_TOTAL_ZERO_REALE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_DIV_TOTAL_ZERO_REAL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_GTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_GT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_INT_GTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_INT_GT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_INT_LTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_INT_LT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_LEQE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_LEQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_LTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_LT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_ARITH_EQ_ELIM_INTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_EQ_ELIM_INT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_ARITH_EQ_ELIM_REALE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_EQ_ELIM_REAL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_ARITH_GEQ_NORM1_INTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_GEQ_NORM1_INT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_ARITH_GEQ_NORM1_REALE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_GEQ_NORM1_REAL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_ARITH_GEQ_NORM2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_GEQ_NORM2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_ARITH_GEQ_TIGHTENE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_GEQ_TIGHTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_ARITH_INT_DIV_TOTALE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_INT_DIV_TOTAL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_ARITH_INT_DIV_TOTAL_ONEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_INT_DIV_TOTAL_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_ARITH_INT_DIV_TOTAL_ZEROE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_INT_DIV_TOTAL_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_ARITH_INT_MOD_TOTALE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_INT_MOD_TOTAL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_ARITH_INT_MOD_TOTAL_ONEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_INT_MOD_TOTAL_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_ARITH_INT_MOD_TOTAL_ZEROE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_INT_MOD_TOTAL_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ARITH_LEQ_NORME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_LEQ_NORM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_ARITH_MULT_DISTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_MULT_DIST"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_ARITH_MULT_FLATTENE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_MULT_FLATTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ARITH_MUL_ONEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_MUL_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ARITH_MUL_ZEROE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_MUL_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_ARITH_PI_NOT_INTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_PI_NOT_INT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_ARITH_PLUS_FLATTENE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_PLUS_FLATTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ARITH_POW_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_POW_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ARITH_REFL_GEQE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_REFL_GEQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ARITH_REFL_GTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_REFL_GT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ARITH_REFL_LEQE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_REFL_LEQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ARITH_REFL_LTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_REFL_LT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_ARITH_SECENT_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_SECENT_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ARITH_SINE_PI2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_SINE_PI2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_ARITH_SINE_ZEROE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_SINE_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_ARITH_STRING_PRED_ENTAILE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_STRING_PRED_ENTAIL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule53CVC5_PROOF_REWRITE_RULE_ARITH_STRING_PRED_SAFE_APPROXE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_STRING_PRED_SAFE_APPROX"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_ARITH_TANGENT_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_TANGENT_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_ARITH_TO_INT_ELIM_TO_REALE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_TO_INT_ELIM_TO_REAL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_ARITH_TO_REAL_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARITH_TO_REAL_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_ARRAYS_EQ_RANGE_EXPANDE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARRAYS_EQ_RANGE_EXPAND"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_ARRAYS_SELECT_CONSTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARRAYS_SELECT_CONST"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_ARRAY_READ_OVER_WRITEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARRAY_READ_OVER_WRITE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_ARRAY_READ_OVER_WRITE2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARRAY_READ_OVER_WRITE2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule51CVC5_PROOF_REWRITE_RULE_ARRAY_READ_OVER_WRITE_SPLITE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARRAY_READ_OVER_WRITE_SPLIT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_ARRAY_STORE_OVERWRITEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARRAY_STORE_OVERWRITE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_ARRAY_STORE_SELFE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ARRAY_STORE_SELF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BETA_REDUCEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BETA_REDUCE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_AND_CONFE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_AND_CONF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BOOL_AND_CONF2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_AND_CONF2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BOOL_AND_DE_MORGANE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_AND_DE_MORGAN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BOOL_AND_FALSEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_AND_FALSE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BOOL_AND_FLATTENE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_AND_FLATTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_BOOL_DOUBLE_NOT_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_DOUBLE_NOT_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_EQ_FALSEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_EQ_FALSE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_EQ_NREFLE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_EQ_NREFL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BOOL_EQ_TRUEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_EQ_TRUE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_BOOL_IMPLIES_DE_MORGANE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_IMPLIES_DE_MORGAN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_FALSE1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_FALSE1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_FALSE2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_FALSE2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_TRUE1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_TRUE1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_TRUE2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_TRUE2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BOOL_NOT_EQ_ELIM1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_NOT_EQ_ELIM1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BOOL_NOT_EQ_ELIM2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_NOT_EQ_ELIM2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BOOL_NOT_FALSEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_NOT_FALSE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BOOL_NOT_ITE_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_NOT_ITE_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_NOT_TRUEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_NOT_TRUE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BOOL_NOT_XOR_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_NOT_XOR_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BOOL_OR_AND_DISTRIBE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_OR_AND_DISTRIB"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BOOL_OR_DE_MORGANE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_OR_DE_MORGAN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_BOOL_OR_FLATTENE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_OR_FLATTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BOOL_OR_TAUTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_OR_TAUT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_OR_TAUT2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_OR_TAUT2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BOOL_OR_TRUEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_OR_TRUE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_XOR_COMME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_XOR_COMM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_XOR_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_XOR_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BOOL_XOR_FALSEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_XOR_FALSE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BOOL_XOR_NREFLE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_XOR_NREFL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_XOR_REFLE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_XOR_REFL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_XOR_TRUEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BOOL_XOR_TRUE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_BV_ADD_COMBINE_LIKE_TERMSE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ADD_COMBINE_LIKE_TERMS"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_ADD_TWOE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ADD_TWO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_ADD_ZEROE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ADD_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_BV_AND_CONCAT_PULLUPE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_AND_CONCAT_PULLUP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_AND_FLATTENE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_AND_FLATTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_AND_ONEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_AND_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_AND_SIMPLIFY_1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_AND_SIMPLIFY_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_AND_SIMPLIFY_2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_AND_SIMPLIFY_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_AND_ZEROE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_AND_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_ASHR_BY_CONST_0E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ASHR_BY_CONST_0"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_ASHR_BY_CONST_1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ASHR_BY_CONST_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_ASHR_BY_CONST_2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ASHR_BY_CONST_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BV_ASHR_ZEROE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ASHR_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_BITWISE_IDEMP_1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_BITWISE_IDEMP_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_BITWISE_IDEMP_2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_BITWISE_IDEMP_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_BITWISE_NOT_ANDE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_BITWISE_NOT_AND"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_BITWISE_NOT_ORE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_BITWISE_NOT_OR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_BITWISE_SLICINGE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_BITWISE_SLICING"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_ADDE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_ADD"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_ANDE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_AND"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_MULE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_MUL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_ORE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_OR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_XORE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_XOR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_COMP_ELIMINATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_COMP_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_BV_CONCAT_EXTRACT_MERGEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_CONCAT_EXTRACT_MERGE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_CONCAT_FLATTENE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_CONCAT_FLATTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_BV_CONCAT_MERGE_CONSTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_CONCAT_MERGE_CONST"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_CONCAT_TO_MULTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_CONCAT_TO_MULT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_EQ_EXTRACT_ELIM1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_EQ_EXTRACT_ELIM1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_EQ_EXTRACT_ELIM2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_EQ_EXTRACT_ELIM2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_EQ_EXTRACT_ELIM3E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_EQ_EXTRACT_ELIM3"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_BITWISE_ANDE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_BITWISE_AND"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_BITWISE_ORE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_BITWISE_OR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_BITWISE_XORE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_BITWISE_XOR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_CONCAT_1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_CONCAT_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_CONCAT_2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_CONCAT_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_CONCAT_3E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_CONCAT_3"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_CONCAT_4E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_CONCAT_4"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_EXTRACTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_EXTRACT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule51CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_MULT_LEADING_BITE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_MULT_LEADING_BIT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_NOTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_NOT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_SIGN_EXTEND_1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_SIGN_EXTEND_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_SIGN_EXTEND_2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_SIGN_EXTEND_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_SIGN_EXTEND_3E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_SIGN_EXTEND_3"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_WHOLEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_WHOLE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_BV_ITE_CONST_CHILDREN_1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ITE_CONST_CHILDREN_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_BV_ITE_CONST_CHILDREN_2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ITE_CONST_CHILDREN_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_BV_ITE_EQUAL_CHILDRENE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ITE_EQUAL_CHILDREN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_ITE_EQUAL_COND_1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ITE_EQUAL_COND_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_ITE_EQUAL_COND_2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ITE_EQUAL_COND_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_ITE_EQUAL_COND_3E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ITE_EQUAL_COND_3"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_BV_ITE_MERGE_ELSE_ELSEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ITE_MERGE_ELSE_ELSE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_BV_ITE_MERGE_ELSE_IFE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ITE_MERGE_ELSE_IF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_BV_ITE_MERGE_THEN_ELSEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ITE_MERGE_THEN_ELSE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_BV_ITE_MERGE_THEN_IFE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ITE_MERGE_THEN_IF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_LSHR_BY_CONST_0E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_LSHR_BY_CONST_0"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_LSHR_BY_CONST_1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_LSHR_BY_CONST_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_LSHR_BY_CONST_2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_LSHR_BY_CONST_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BV_LSHR_ZEROE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_LSHR_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_LT_SELFE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_LT_SELF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_BV_MERGE_SIGN_EXTEND_1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_MERGE_SIGN_EXTEND_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_BV_MERGE_SIGN_EXTEND_2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_MERGE_SIGN_EXTEND_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_BV_MERGE_SIGN_EXTEND_3E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_MERGE_SIGN_EXTEND_3"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_CONST_ADDE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_CONST_ADD"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_CONST_NEGE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_CONST_NEG"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_CONST_SUBE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_CONST_SUB"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_MULT_POW2_1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_MULT_POW2_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_MULT_POW2_2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_MULT_POW2_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_BV_MULT_POW2_2BE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_MULT_POW2_2B"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_MULT_SIMPLIFYE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_MULT_SIMPLIFY"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_MULT_SLT_MULT_1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_MULT_SLT_MULT_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_MULT_SLT_MULT_2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_MULT_SLT_MULT_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_MUL_FLATTENE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_MUL_FLATTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_MUL_ONEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_MUL_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_MUL_ZEROE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_MUL_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_NAND_ELIMINATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_NAND_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_NEG_ADDE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_NEG_ADD"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BV_NEG_IDEMPE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_NEG_IDEMP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_NEG_MULTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_NEG_MULT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_NEG_SUBE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_NEG_SUB"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_NOR_ELIMINATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_NOR_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BV_NOT_IDEMPE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_NOT_IDEMP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_NOT_NEQE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_NOT_NEQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_NOT_SLEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_NOT_SLE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_NOT_ULEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_NOT_ULE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_NOT_ULTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_NOT_ULT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_NOT_XORE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_NOT_XOR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_OR_CONCAT_PULLUPE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_OR_CONCAT_PULLUP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BV_OR_FLATTENE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_OR_FLATTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule33CVC5_PROOF_REWRITE_RULE_BV_OR_ONEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_OR_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_OR_SIMPLIFY_1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_OR_SIMPLIFY_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_OR_SIMPLIFY_2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_OR_SIMPLIFY_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_OR_ZEROE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_OR_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_REDAND_ELIMINATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_REDAND_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_REDOR_ELIMINATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_REDOR_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_REPEAT_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_REPEAT_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_BV_ROTATE_LEFT_ELIMINATE_1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ROTATE_LEFT_ELIMINATE_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_BV_ROTATE_LEFT_ELIMINATE_2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ROTATE_LEFT_ELIMINATE_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule51CVC5_PROOF_REWRITE_RULE_BV_ROTATE_RIGHT_ELIMINATE_1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ROTATE_RIGHT_ELIMINATE_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule51CVC5_PROOF_REWRITE_RULE_BV_ROTATE_RIGHT_ELIMINATE_2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ROTATE_RIGHT_ELIMINATE_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_SADDO_ELIMINATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SADDO_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_SDIVO_ELIMINATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SDIVO_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_SDIV_ELIMINATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SDIV_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule59CVC5_PROOF_REWRITE_RULE_BV_SDIV_ELIMINATE_FEWER_BITWISE_OPSE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SDIV_ELIMINATE_FEWER_BITWISE_OPS"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_SGE_ELIMINATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SGE_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_SGT_ELIMINATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SGT_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_SHL_BY_CONST_0E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SHL_BY_CONST_0"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_SHL_BY_CONST_1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SHL_BY_CONST_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_SHL_BY_CONST_2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SHL_BY_CONST_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_SHL_ZEROE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SHL_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ELIMINATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ELIMINATE_0E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ELIMINATE_0"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_EQ_CONST_1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_EQ_CONST_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_EQ_CONST_2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_EQ_CONST_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ULT_CONST_1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ULT_CONST_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ULT_CONST_2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ULT_CONST_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ULT_CONST_3E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ULT_CONST_3"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ULT_CONST_4E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ULT_CONST_4"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_SLE_ELIMINATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SLE_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_SLE_SELFE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SLE_SELF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_SLT_ELIMINATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SLT_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_SLT_ZEROE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SLT_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_SMOD_ELIMINATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SMOD_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule59CVC5_PROOF_REWRITE_RULE_BV_SMOD_ELIMINATE_FEWER_BITWISE_OPSE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SMOD_ELIMINATE_FEWER_BITWISE_OPS"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_SMULO_ELIMINATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SMULO_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_SREM_ELIMINATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SREM_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule59CVC5_PROOF_REWRITE_RULE_BV_SREM_ELIMINATE_FEWER_BITWISE_OPSE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SREM_ELIMINATE_FEWER_BITWISE_OPS"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_SSUBO_ELIMINATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SSUBO_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_SUB_ELIMINATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_SUB_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_TO_NAT_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_TO_NAT_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_UADDO_ELIMINATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_UADDO_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_UDIV_ONEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_UDIV_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_BV_UDIV_POW2_NOT_ONEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_UDIV_POW2_NOT_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BV_UDIV_ZEROE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_UDIV_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_UGE_ELIMINATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_UGE_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_UGT_ELIMINATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_UGT_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_UGT_UREME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_UGT_UREM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_ULE_ELIMINATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ULE_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_ULE_MAXE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ULE_MAX"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_ULE_SELFE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ULE_SELF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_ULE_ZEROE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ULE_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_ULT_ADD_ONEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ULT_ADD_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_ULT_ONEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ULT_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_ULT_ONESE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ULT_ONES"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_ULT_SELFE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ULT_SELF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BV_ULT_ZERO_1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ULT_ZERO_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BV_ULT_ZERO_2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ULT_ZERO_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_UMULO_ELIMINATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_UMULO_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_UREM_ONEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_UREM_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_BV_UREM_POW2_NOT_ONEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_UREM_POW2_NOT_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BV_UREM_SELFE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_UREM_SELF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_USUBO_ELIMINATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_USUBO_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_XNOR_ELIMINATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_XNOR_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_BV_XOR_CONCAT_PULLUPE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_XOR_CONCAT_PULLUP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_XOR_DUPLICATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_XOR_DUPLICATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_XOR_FLATTENE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_XOR_FLATTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_XOR_NOTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_XOR_NOT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_XOR_ONESE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_XOR_ONES"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_XOR_SIMPLIFY_1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_XOR_SIMPLIFY_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_XOR_SIMPLIFY_2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_XOR_SIMPLIFY_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_XOR_SIMPLIFY_3E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_XOR_SIMPLIFY_3"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_XOR_ZEROE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_XOR_ZERO"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_BV_ZERO_EXTEND_ELIMINATEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ZERO_EXTEND_ELIMINATE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_BV_ZERO_EXTEND_ELIMINATE_0E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ZERO_EXTEND_ELIMINATE_0"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_BV_ZERO_EXTEND_EQ_CONST_1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ZERO_EXTEND_EQ_CONST_1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_BV_ZERO_EXTEND_EQ_CONST_2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ZERO_EXTEND_EQ_CONST_2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_ZERO_ULEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_BV_ZERO_ULE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_DISTINCT_BINARY_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_DISTINCT_BINARY_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_DISTINCT_CARD_CONFLICTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_DISTINCT_CARD_CONFLICT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_DISTINCT_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_DISTINCT_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_DT_COLLAPSE_SELECTORE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_DT_COLLAPSE_SELECTOR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_DT_COLLAPSE_TESTERE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_DT_COLLAPSE_TESTER"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule52CVC5_PROOF_REWRITE_RULE_DT_COLLAPSE_TESTER_SINGLETONE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_DT_COLLAPSE_TESTER_SINGLETON"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_DT_COLLAPSE_UPDATERE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_DT_COLLAPSE_UPDATER"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_DT_CONS_EQE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_DT_CONS_EQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule32CVC5_PROOF_REWRITE_RULE_DT_CYCLEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_DT_CYCLE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule31CVC5_PROOF_REWRITE_RULE_DT_INSTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_DT_INST"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_DT_MATCH_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_DT_MATCH_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_DT_UPDATER_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_DT_UPDATER_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_EQ_COND_DEQE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_EQ_COND_DEQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_EQ_ITE_LIFTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_EQ_ITE_LIFT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule31CVC5_PROOF_REWRITE_RULE_EQ_REFLE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_EQ_REFL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule31CVC5_PROOF_REWRITE_RULE_EQ_SYMME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_EQ_SYMM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_EXISTS_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_EXISTS_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_INT_TO_BV_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_INT_TO_BV_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ITE_ELSE_FALSEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ITE_ELSE_FALSE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_ITE_ELSE_LOOKAHEADE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ITE_ELSE_LOOKAHEAD"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule51CVC5_PROOF_REWRITE_RULE_ITE_ELSE_LOOKAHEAD_NOT_SELFE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ITE_ELSE_LOOKAHEAD_NOT_SELF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_ITE_ELSE_LOOKAHEAD_SELFE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ITE_ELSE_LOOKAHEAD_SELF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_ITE_ELSE_NEG_LOOKAHEADE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ITE_ELSE_NEG_LOOKAHEAD"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ITE_ELSE_TRUEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ITE_ELSE_TRUE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ITE_EQ_BRANCHE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ITE_EQ_BRANCH"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_ITE_EXPANDE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ITE_EXPAND"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ITE_FALSE_CONDE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ITE_FALSE_COND"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ITE_NEG_BRANCHE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ITE_NEG_BRANCH"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_ITE_NOT_CONDE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ITE_NOT_COND"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ITE_THEN_FALSEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ITE_THEN_FALSE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_ITE_THEN_LOOKAHEADE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ITE_THEN_LOOKAHEAD"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule51CVC5_PROOF_REWRITE_RULE_ITE_THEN_LOOKAHEAD_NOT_SELFE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ITE_THEN_LOOKAHEAD_NOT_SELF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_ITE_THEN_LOOKAHEAD_SELFE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ITE_THEN_LOOKAHEAD_SELF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_ITE_THEN_NEG_LOOKAHEADE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ITE_THEN_NEG_LOOKAHEAD"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ITE_THEN_TRUEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ITE_THEN_TRUE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ITE_TRUE_CONDE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_ITE_TRUE_COND"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_LAMBDA_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_LAMBDA_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule28CVC5_PROOF_REWRITE_RULE_LASTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_LAST"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule54CVC5_PROOF_REWRITE_RULE_MACRO_ARITH_STRING_PRED_ENTAILE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_MACRO_ARITH_STRING_PRED_ENTAIL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule52CVC5_PROOF_REWRITE_RULE_MACRO_ARRAYS_DISTINCT_ARRAYSE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_MACRO_ARRAYS_DISTINCT_ARRAYS"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule55CVC5_PROOF_REWRITE_RULE_MACRO_ARRAYS_NORMALIZE_CONSTANTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_MACRO_ARRAYS_NORMALIZE_CONSTANT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_MACRO_BOOL_NNF_NORME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_MACRO_BOOL_NNF_NORM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_MERGE_PRENEXE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_MERGE_PRENEX"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_MINISCOPEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_MINISCOPE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule58CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_PARTITION_CONNECTED_FVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_PARTITION_CONNECTED_FV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_PRENEXE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_PRENEX"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_REWRITE_BODYE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_REWRITE_BODY"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_VAR_ELIM_EQE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_VAR_ELIM_EQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_VAR_ELIM_INEQE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_VAR_ELIM_INEQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule53CVC5_PROOF_REWRITE_RULE_MACRO_SUBSTR_STRIP_SYM_LENGTHE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_MACRO_SUBSTR_STRIP_SYM_LENGTH"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule28CVC5_PROOF_REWRITE_RULE_NONEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_NONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_QUANT_DT_SPLITE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_QUANT_DT_SPLIT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_QUANT_MERGE_PRENEXE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_QUANT_MERGE_PRENEX"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_QUANT_MINISCOPE_ANDE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_QUANT_MINISCOPE_AND"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_QUANT_MINISCOPE_ITEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_QUANT_MINISCOPE_ITE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_QUANT_MINISCOPE_ORE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_QUANT_MINISCOPE_OR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_QUANT_UNUSED_VARSE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_QUANT_UNUSED_VARS"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_QUANT_VAR_ELIM_EQE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_QUANT_VAR_ELIM_EQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_RE_ALL_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_ALL_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_RE_CONCAT_EMPE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_CONCAT_EMP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_RE_CONCAT_FLATTENE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_CONCAT_FLATTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_RE_CONCAT_MERGEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_CONCAT_MERGE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_RE_CONCAT_NONEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_CONCAT_NONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_RE_CONCAT_STAR_REPEATE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_CONCAT_STAR_REPEAT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_RE_CONCAT_STAR_SWAPE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_CONCAT_STAR_SWAP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_RE_DIFF_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_DIFF_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_RE_INTER_ALLE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_INTER_ALL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_RE_INTER_CSTRINGE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_INTER_CSTRING"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_RE_INTER_CSTRING_NEGE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_INTER_CSTRING_NEG"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_RE_INTER_DUPE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_INTER_DUP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_RE_INTER_FLATTENE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_INTER_FLATTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_RE_INTER_NONEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_INTER_NONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_RE_INTER_UNION_INCLUSIONE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_INTER_UNION_INCLUSION"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_RE_IN_COMPE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_IN_COMP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_RE_IN_CSTRINGE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_IN_CSTRING"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_RE_IN_EMPTYE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_IN_EMPTY"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_RE_IN_SIGMAE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_IN_SIGMA"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_RE_IN_SIGMA_STARE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_IN_SIGMA_STAR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_RE_LOOP_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_LOOP_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_RE_LOOP_NEGE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_LOOP_NEG"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_RE_OPT_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_OPT_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_RE_STAR_NONEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_STAR_NONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_RE_UNION_ALLE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_UNION_ALL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_RE_UNION_DUPE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_UNION_DUP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_RE_UNION_FLATTENE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_UNION_FLATTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_RE_UNION_NONEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_RE_UNION_NONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_SEQ_LEN_EMPTYE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SEQ_LEN_EMPTY"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_SEQ_LEN_REVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SEQ_LEN_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_SEQ_LEN_UNITE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SEQ_LEN_UNIT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_SEQ_NTH_UNITE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SEQ_NTH_UNIT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_SEQ_REV_CONCATE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SEQ_REV_CONCAT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_SEQ_REV_REVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SEQ_REV_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_SEQ_REV_UNITE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SEQ_REV_UNIT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_SETS_CARD_EMPE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SETS_CARD_EMP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_CARD_MINUSE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SETS_CARD_MINUS"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_SETS_CARD_SINGLETONE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SETS_CARD_SINGLETON"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_CARD_UNIONE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SETS_CARD_UNION"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_SETS_CHOOSE_SINGLETONE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SETS_CHOOSE_SINGLETON"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_SETS_EQ_SINGLETON_EMPE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SETS_EQ_SINGLETON_EMP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_SETS_INSERT_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SETS_INSERT_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_INTER_COMME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SETS_INTER_COMM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_INTER_EMP1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SETS_INTER_EMP1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_INTER_EMP2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SETS_INTER_EMP2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_SETS_INTER_MEMBERE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SETS_INTER_MEMBER"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_SETS_IS_EMPTY_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SETS_IS_EMPTY_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_SETS_IS_EMPTY_EVALE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SETS_IS_EMPTY_EVAL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_MEMBER_EMPE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SETS_MEMBER_EMP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_SETS_MEMBER_SINGLETONE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SETS_MEMBER_SINGLETON"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_MINUS_EMP1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SETS_MINUS_EMP1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_MINUS_EMP2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SETS_MINUS_EMP2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_SETS_MINUS_MEMBERE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SETS_MINUS_MEMBER"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_MINUS_SELFE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SETS_MINUS_SELF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_SETS_SUBSET_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SETS_SUBSET_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_UNION_COMME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SETS_UNION_COMM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_UNION_EMP1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SETS_UNION_EMP1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_UNION_EMP2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SETS_UNION_EMP2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_SETS_UNION_MEMBERE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_SETS_UNION_MEMBER"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_STR_AT_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_AT_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASHE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH2_REVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH2_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH_CHARE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH_CHAR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH_CHAR_REVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH_CHAR_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH_REVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_CONCAT_FLATTENE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_CONCAT_FLATTEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_STR_CONCAT_FLATTEN_EQE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_CONCAT_FLATTEN_EQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_STR_CONCAT_FLATTEN_EQ_REVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_CONCAT_FLATTEN_EQ_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_CONCAT_UNIFYE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_CONCAT_UNIFY"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_STR_CONCAT_UNIFY_BASEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_CONCAT_UNIFY_BASE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_STR_CONCAT_UNIFY_BASE_REVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_CONCAT_UNIFY_BASE_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_CONCAT_UNIFY_REVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_CONCAT_UNIFY_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_CONCAT_FINDE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_CONCAT_FIND"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_EMPE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_EMP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_IS_EMPE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_IS_EMP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_LEQ_LEN_EQE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_LEQ_LEN_EQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_LT_LENE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_LT_LEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_REFLE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_REFL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_SPLIT_CHARE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_SPLIT_CHAR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_EQ_CTN_FALSEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_EQ_CTN_FALSE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_STR_EQ_CTN_FULL_FALSE1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_EQ_CTN_FULL_FALSE1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_STR_EQ_CTN_FULL_FALSE2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_EQ_CTN_FULL_FALSE2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_STR_INDEXOF_CONTAINS_PREE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_INDEXOF_CONTAINS_PRE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_STR_INDEXOF_NO_CONTAINSE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_INDEXOF_NO_CONTAINS"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_INDEXOF_RE_NONEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_INDEXOF_RE_NONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_INDEXOF_SELFE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_INDEXOF_SELF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_STR_IN_RE_CONCAT_STAR_CHARE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_CONCAT_STAR_CHAR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_STR_IN_RE_CONSUMEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_CONSUME"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_IN_RE_CONTAINSE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_CONTAINS"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_STR_IN_RE_EVALE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_EVAL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_IN_RE_INTER_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_INTER_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_IN_RE_RANGE_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_RANGE_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_IN_RE_REQ_UNFOLDE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_REQ_UNFOLD"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_STR_IN_RE_REQ_UNFOLD_REVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_REQ_UNFOLD_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_STR_IN_RE_SIGMAE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_SIGMA"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_IN_RE_SIGMA_STARE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_SIGMA_STAR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_STR_IN_RE_SKIP_UNFOLDE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_SKIP_UNFOLD"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_STR_IN_RE_SKIP_UNFOLD_REVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_SKIP_UNFOLD_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_CHARE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_CHAR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_CHAR_REVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_CHAR_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule53CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_CHAR_S_SINGLEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_CHAR_S_SINGLE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule57CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_CHAR_S_SINGLE_REVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_CHAR_S_SINGLE_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIXE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule51CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule55CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_NEGE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_NEG"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule59CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_NEG_REVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_NEG_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule55CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_REVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule60CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule64CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEGE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule68CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG_REVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule64CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_REVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_NEGE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_NEG"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule54CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_NEG_REVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_NEG_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_REVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule57CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SRS_SINGLEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SRS_SINGLE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule61CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEGE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule65CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG_REVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule61CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_REVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule56CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SR_SINGLEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SR_SINGLE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule60CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEGE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule64CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG_REVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule60CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SR_SINGLE_REVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SR_SINGLE_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule55CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_S_SINGLEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_S_SINGLE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule59CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEGE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule63CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG_REVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule59CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_S_SINGLE_REVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_S_SINGLE_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_STR_IN_RE_TEST_UNFOLDE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_TEST_UNFOLD"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_STR_IN_RE_TEST_UNFOLD_REVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_TEST_UNFOLD_REV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_IN_RE_UNION_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_IN_RE_UNION_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_LEN_CONCAT_RECE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_LEN_CONCAT_REC"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_LEN_REPLACE_INVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_LEN_REPLACE_INV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_STR_LEN_SUBSTR_IN_RANGEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_LEN_SUBSTR_IN_RANGE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_LEN_SUBSTR_UB1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_LEN_SUBSTR_UB1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_LEN_SUBSTR_UB2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_LEN_SUBSTR_UB2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_LEN_UPDATE_INVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_LEN_UPDATE_INV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_LEQ_CONCAT_FALSEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_LEQ_CONCAT_FALSE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_LEQ_CONCAT_TRUEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_LEQ_CONCAT_TRUE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_STR_LEQ_EMPTYE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_LEQ_EMPTY"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_LEQ_EMPTY_EQE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_LEQ_EMPTY_EQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_STR_LT_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_LT_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_STR_PREFIXOF_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_PREFIXOF_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_PREFIXOF_ONEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_PREFIXOF_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule51CVC5_PROOF_REWRITE_RULE_STR_REPLACE_ALL_NO_CONTAINSE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_REPLACE_ALL_NO_CONTAINS"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_STR_REPLACE_CONTAINS_PREE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_REPLACE_CONTAINS_PRE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_STR_REPLACE_EMPTYE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_REPLACE_EMPTY"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_STR_REPLACE_NO_CONTAINSE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_REPLACE_NO_CONTAINS"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_REPLACE_PREFIXE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_REPLACE_PREFIX"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_STR_REPLACE_RE_ALL_NONEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_REPLACE_RE_ALL_NONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_REPLACE_RE_NONEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_REPLACE_RE_NONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_REPLACE_SELFE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_REPLACE_SELF"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_COMBINE1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_COMBINE1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_COMBINE2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_COMBINE2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_COMBINE3E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_COMBINE3"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_COMBINE4E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_COMBINE4"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_CONCAT1E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_CONCAT1"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_CONCAT2E", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_CONCAT2"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EMPTY_RANGEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EMPTY_RANGE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EMPTY_STARTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EMPTY_START"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EMPTY_START_NEGE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EMPTY_START_NEG"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EMPTY_STRE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EMPTY_STR"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EQ_EMPTYE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EQ_EMPTY"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_FULLE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_FULL"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_FULL_EQE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_FULL_EQ"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_LEN_INCLUDEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_LEN_INCLUDE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_LEN_INCLUDE_PREE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_LEN_INCLUDE_PRE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_LEN_SKIPE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_LEN_SKIP"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_STR_SUFFIXOF_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_SUFFIXOF_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_SUFFIXOF_ONEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_SUFFIXOF_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_STR_TO_INT_CONCAT_NEG_ONEE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_TO_INT_CONCAT_NEG_ONE"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_TO_LOWER_CONCATE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_TO_LOWER_CONCAT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_STR_TO_LOWER_FROM_INTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_TO_LOWER_FROM_INT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_TO_LOWER_LENE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_TO_LOWER_LEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_TO_LOWER_UPPERE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_TO_LOWER_UPPER"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_TO_UPPER_CONCATE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_TO_UPPER_CONCAT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_STR_TO_UPPER_FROM_INTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_TO_UPPER_FROM_INT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_TO_UPPER_LENE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_TO_UPPER_LEN"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_TO_UPPER_LOWERE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_STR_TO_UPPER_LOWER"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_UF_BV2NAT_GEQ_ELIME", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_UF_BV2NAT_GEQ_ELIM"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_UF_BV2NAT_INT2BVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_UF_BV2NAT_INT2BV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_UF_BV2NAT_INT2BV_EXTENDE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_UF_BV2NAT_INT2BV_EXTEND"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_UF_BV2NAT_INT2BV_EXTRACTE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_UF_BV2NAT_INT2BV_EXTRACT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_UF_INT2BV_BV2NATE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_UF_INT2BV_BV2NAT"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_UF_INT2BV_BVULE_EQUIVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_UF_INT2BV_BVULE_EQUIV"], [3, 0, 1, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_UF_INT2BV_BVULT_EQUIVE", "Cvc5ProofRewriteRule::CVC5_PROOF_REWRITE_RULE_UF_INT2BV_BVULT_EQUIV"], [3, 2, 1, "_CPPv413Cvc5ProofRule", "Cvc5ProofRule"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule24CVC5_PROOF_RULE_ACI_NORME", "Cvc5ProofRule::CVC5_PROOF_RULE_ACI_NORM"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_ALETHE_RULEE", "Cvc5ProofRule::CVC5_PROOF_RULE_ALETHE_RULE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_ALPHA_EQUIVE", "Cvc5ProofRule::CVC5_PROOF_RULE_ALPHA_EQUIV"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule24CVC5_PROOF_RULE_AND_ELIME", "Cvc5ProofRule::CVC5_PROOF_RULE_AND_ELIM"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_AND_INTROE", "Cvc5ProofRule::CVC5_PROOF_RULE_AND_INTRO"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule41CVC5_PROOF_RULE_ARITH_MULT_ABS_COMPARISONE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_MULT_ABS_COMPARISON"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_ARITH_MULT_NEGE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_MULT_NEG"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_ARITH_MULT_POSE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_MULT_POS"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_ARITH_MULT_SIGNE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_MULT_SIGN"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule34CVC5_PROOF_RULE_ARITH_MULT_TANGENTE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_MULT_TANGENT"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_ARITH_POLY_NORME", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_POLY_NORM"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule35CVC5_PROOF_RULE_ARITH_POLY_NORM_RELE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_POLY_NORM_REL"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_ARITH_REDUCTIONE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_REDUCTION"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_ARITH_SUM_UBE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_SUM_UB"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule48CVC5_PROOF_RULE_ARITH_TRANS_EXP_APPROX_ABOVE_NEGE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_TRANS_EXP_APPROX_ABOVE_NEG"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule48CVC5_PROOF_RULE_ARITH_TRANS_EXP_APPROX_ABOVE_POSE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_TRANS_EXP_APPROX_ABOVE_POS"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule44CVC5_PROOF_RULE_ARITH_TRANS_EXP_APPROX_BELOWE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_TRANS_EXP_APPROX_BELOW"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule35CVC5_PROOF_RULE_ARITH_TRANS_EXP_NEGE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_TRANS_EXP_NEG"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule42CVC5_PROOF_RULE_ARITH_TRANS_EXP_POSITIVITYE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_TRANS_EXP_POSITIVITY"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule41CVC5_PROOF_RULE_ARITH_TRANS_EXP_SUPER_LINE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_TRANS_EXP_SUPER_LIN"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule36CVC5_PROOF_RULE_ARITH_TRANS_EXP_ZEROE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_TRANS_EXP_ZERO"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_ARITH_TRANS_PIE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_TRANS_PI"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule49CVC5_PROOF_RULE_ARITH_TRANS_SINE_APPROX_ABOVE_NEGE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_TRANS_SINE_APPROX_ABOVE_NEG"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule49CVC5_PROOF_RULE_ARITH_TRANS_SINE_APPROX_ABOVE_POSE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_TRANS_SINE_APPROX_ABOVE_POS"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule49CVC5_PROOF_RULE_ARITH_TRANS_SINE_APPROX_BELOW_NEGE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_TRANS_SINE_APPROX_BELOW_NEG"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule49CVC5_PROOF_RULE_ARITH_TRANS_SINE_APPROX_BELOW_POSE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_TRANS_SINE_APPROX_BELOW_POS"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule39CVC5_PROOF_RULE_ARITH_TRANS_SINE_BOUNDSE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_TRANS_SINE_BOUNDS"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule38CVC5_PROOF_RULE_ARITH_TRANS_SINE_SHIFTE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_TRANS_SINE_SHIFT"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule41CVC5_PROOF_RULE_ARITH_TRANS_SINE_SYMMETRYE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_TRANS_SINE_SYMMETRY"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule43CVC5_PROOF_RULE_ARITH_TRANS_SINE_TANGENT_PIE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_TRANS_SINE_TANGENT_PI"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule45CVC5_PROOF_RULE_ARITH_TRANS_SINE_TANGENT_ZEROE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_TRANS_SINE_TANGENT_ZERO"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_ARITH_TRICHOTOMYE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARITH_TRICHOTOMY"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_ARRAYS_EXTE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARRAYS_EXT"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule38CVC5_PROOF_RULE_ARRAYS_READ_OVER_WRITEE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARRAYS_READ_OVER_WRITE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule40CVC5_PROOF_RULE_ARRAYS_READ_OVER_WRITE_1E", "Cvc5ProofRule::CVC5_PROOF_RULE_ARRAYS_READ_OVER_WRITE_1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule45CVC5_PROOF_RULE_ARRAYS_READ_OVER_WRITE_CONTRAE", "Cvc5ProofRule::CVC5_PROOF_RULE_ARRAYS_READ_OVER_WRITE_CONTRA"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule22CVC5_PROOF_RULE_ASSUMEE", "Cvc5ProofRule::CVC5_PROOF_RULE_ASSUME"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_BV_BITBLAST_STEPE", "Cvc5ProofRule::CVC5_PROOF_RULE_BV_BITBLAST_STEP"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_BV_EAGER_ATOME", "Cvc5ProofRule::CVC5_PROOF_RULE_BV_EAGER_ATOM"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_CHAIN_RESOLUTIONE", "Cvc5ProofRule::CVC5_PROOF_RULE_CHAIN_RESOLUTION"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_CNF_AND_NEGE", "Cvc5ProofRule::CVC5_PROOF_RULE_CNF_AND_NEG"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_CNF_AND_POSE", "Cvc5ProofRule::CVC5_PROOF_RULE_CNF_AND_POS"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_CNF_EQUIV_NEG1E", "Cvc5ProofRule::CVC5_PROOF_RULE_CNF_EQUIV_NEG1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_CNF_EQUIV_NEG2E", "Cvc5ProofRule::CVC5_PROOF_RULE_CNF_EQUIV_NEG2"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_CNF_EQUIV_POS1E", "Cvc5ProofRule::CVC5_PROOF_RULE_CNF_EQUIV_POS1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_CNF_EQUIV_POS2E", "Cvc5ProofRule::CVC5_PROOF_RULE_CNF_EQUIV_POS2"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_CNF_IMPLIES_NEG1E", "Cvc5ProofRule::CVC5_PROOF_RULE_CNF_IMPLIES_NEG1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_CNF_IMPLIES_NEG2E", "Cvc5ProofRule::CVC5_PROOF_RULE_CNF_IMPLIES_NEG2"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_CNF_IMPLIES_POSE", "Cvc5ProofRule::CVC5_PROOF_RULE_CNF_IMPLIES_POS"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_ITE_NEG1E", "Cvc5ProofRule::CVC5_PROOF_RULE_CNF_ITE_NEG1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_ITE_NEG2E", "Cvc5ProofRule::CVC5_PROOF_RULE_CNF_ITE_NEG2"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_ITE_NEG3E", "Cvc5ProofRule::CVC5_PROOF_RULE_CNF_ITE_NEG3"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_ITE_POS1E", "Cvc5ProofRule::CVC5_PROOF_RULE_CNF_ITE_POS1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_ITE_POS2E", "Cvc5ProofRule::CVC5_PROOF_RULE_CNF_ITE_POS2"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_ITE_POS3E", "Cvc5ProofRule::CVC5_PROOF_RULE_CNF_ITE_POS3"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_CNF_OR_NEGE", "Cvc5ProofRule::CVC5_PROOF_RULE_CNF_OR_NEG"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_CNF_OR_POSE", "Cvc5ProofRule::CVC5_PROOF_RULE_CNF_OR_POS"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_XOR_NEG1E", "Cvc5ProofRule::CVC5_PROOF_RULE_CNF_XOR_NEG1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_XOR_NEG2E", "Cvc5ProofRule::CVC5_PROOF_RULE_CNF_XOR_NEG2"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_XOR_POS1E", "Cvc5ProofRule::CVC5_PROOF_RULE_CNF_XOR_POS1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_XOR_POS2E", "Cvc5ProofRule::CVC5_PROOF_RULE_CNF_XOR_POS2"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_CONCAT_CONFLICTE", "Cvc5ProofRule::CVC5_PROOF_RULE_CONCAT_CONFLICT"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule35CVC5_PROOF_RULE_CONCAT_CONFLICT_DEQE", "Cvc5ProofRule::CVC5_PROOF_RULE_CONCAT_CONFLICT_DEQ"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CONCAT_CPROPE", "Cvc5ProofRule::CVC5_PROOF_RULE_CONCAT_CPROP"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_CONCAT_CSPLITE", "Cvc5ProofRule::CVC5_PROOF_RULE_CONCAT_CSPLIT"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_CONCAT_EQE", "Cvc5ProofRule::CVC5_PROOF_RULE_CONCAT_EQ"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CONCAT_LPROPE", "Cvc5ProofRule::CVC5_PROOF_RULE_CONCAT_LPROP"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CONCAT_SPLITE", "Cvc5ProofRule::CVC5_PROOF_RULE_CONCAT_SPLIT"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CONCAT_UNIFYE", "Cvc5ProofRule::CVC5_PROOF_RULE_CONCAT_UNIFY"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule20CVC5_PROOF_RULE_CONGE", "Cvc5ProofRule::CVC5_PROOF_RULE_CONG"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule22CVC5_PROOF_RULE_CONTRAE", "Cvc5ProofRule::CVC5_PROOF_RULE_CONTRA"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_DRAT_REFUTATIONE", "Cvc5ProofRule::CVC5_PROOF_RULE_DRAT_REFUTATION"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_DSL_REWRITEE", "Cvc5ProofRule::CVC5_PROOF_RULE_DSL_REWRITE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule24CVC5_PROOF_RULE_DT_CLASHE", "Cvc5ProofRule::CVC5_PROOF_RULE_DT_CLASH"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule24CVC5_PROOF_RULE_DT_SPLITE", "Cvc5ProofRule::CVC5_PROOF_RULE_DT_SPLIT"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_ENCODE_EQ_INTROE", "Cvc5ProofRule::CVC5_PROOF_RULE_ENCODE_EQ_INTRO"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_EQUIV_ELIM1E", "Cvc5ProofRule::CVC5_PROOF_RULE_EQUIV_ELIM1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_EQUIV_ELIM2E", "Cvc5ProofRule::CVC5_PROOF_RULE_EQUIV_ELIM2"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_EQ_RESOLVEE", "Cvc5ProofRule::CVC5_PROOF_RULE_EQ_RESOLVE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule24CVC5_PROOF_RULE_EVALUATEE", "Cvc5ProofRule::CVC5_PROOF_RULE_EVALUATE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_FACTORINGE", "Cvc5ProofRule::CVC5_PROOF_RULE_FACTORING"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_FALSE_ELIME", "Cvc5ProofRule::CVC5_PROOF_RULE_FALSE_ELIM"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_FALSE_INTROE", "Cvc5ProofRule::CVC5_PROOF_RULE_FALSE_INTRO"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_HO_APP_ENCODEE", "Cvc5ProofRule::CVC5_PROOF_RULE_HO_APP_ENCODE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule23CVC5_PROOF_RULE_HO_CONGE", "Cvc5ProofRule::CVC5_PROOF_RULE_HO_CONG"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_IMPLIES_ELIME", "Cvc5ProofRule::CVC5_PROOF_RULE_IMPLIES_ELIM"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_INSTANTIATEE", "Cvc5ProofRule::CVC5_PROOF_RULE_INSTANTIATE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_INT_TIGHT_LBE", "Cvc5ProofRule::CVC5_PROOF_RULE_INT_TIGHT_LB"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_INT_TIGHT_UBE", "Cvc5ProofRule::CVC5_PROOF_RULE_INT_TIGHT_UB"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_ITE_ELIM1E", "Cvc5ProofRule::CVC5_PROOF_RULE_ITE_ELIM1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_ITE_ELIM2E", "Cvc5ProofRule::CVC5_PROOF_RULE_ITE_ELIM2"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule22CVC5_PROOF_RULE_ITE_EQE", "Cvc5ProofRule::CVC5_PROOF_RULE_ITE_EQ"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule20CVC5_PROOF_RULE_LASTE", "Cvc5ProofRule::CVC5_PROOF_RULE_LAST"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_LFSC_RULEE", "Cvc5ProofRule::CVC5_PROOF_RULE_LFSC_RULE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule40CVC5_PROOF_RULE_MACRO_ARITH_SCALE_SUM_UBE", "Cvc5ProofRule::CVC5_PROOF_RULE_MACRO_ARITH_SCALE_SUM_UB"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule33CVC5_PROOF_RULE_MACRO_BV_BITBLASTE", "Cvc5ProofRule::CVC5_PROOF_RULE_MACRO_BV_BITBLAST"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_MACRO_RESOLUTIONE", "Cvc5ProofRule::CVC5_PROOF_RULE_MACRO_RESOLUTION"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule38CVC5_PROOF_RULE_MACRO_RESOLUTION_TRUSTE", "Cvc5ProofRule::CVC5_PROOF_RULE_MACRO_RESOLUTION_TRUST"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_MACRO_REWRITEE", "Cvc5ProofRule::CVC5_PROOF_RULE_MACRO_REWRITE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule33CVC5_PROOF_RULE_MACRO_SR_EQ_INTROE", "Cvc5ProofRule::CVC5_PROOF_RULE_MACRO_SR_EQ_INTRO"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule34CVC5_PROOF_RULE_MACRO_SR_PRED_ELIME", "Cvc5ProofRule::CVC5_PROOF_RULE_MACRO_SR_PRED_ELIM"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule35CVC5_PROOF_RULE_MACRO_SR_PRED_INTROE", "Cvc5ProofRule::CVC5_PROOF_RULE_MACRO_SR_PRED_INTRO"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule39CVC5_PROOF_RULE_MACRO_SR_PRED_TRANSFORME", "Cvc5ProofRule::CVC5_PROOF_RULE_MACRO_SR_PRED_TRANSFORM"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule38CVC5_PROOF_RULE_MACRO_STRING_INFERENCEE", "Cvc5ProofRule::CVC5_PROOF_RULE_MACRO_STRING_INFERENCE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_MODUS_PONENSE", "Cvc5ProofRule::CVC5_PROOF_RULE_MODUS_PONENS"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_NARY_CONGE", "Cvc5ProofRule::CVC5_PROOF_RULE_NARY_CONG"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule23CVC5_PROOF_RULE_NOT_ANDE", "Cvc5ProofRule::CVC5_PROOF_RULE_NOT_AND"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_NOT_EQUIV_ELIM1E", "Cvc5ProofRule::CVC5_PROOF_RULE_NOT_EQUIV_ELIM1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_NOT_EQUIV_ELIM2E", "Cvc5ProofRule::CVC5_PROOF_RULE_NOT_EQUIV_ELIM2"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule33CVC5_PROOF_RULE_NOT_IMPLIES_ELIM1E", "Cvc5ProofRule::CVC5_PROOF_RULE_NOT_IMPLIES_ELIM1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule33CVC5_PROOF_RULE_NOT_IMPLIES_ELIM2E", "Cvc5ProofRule::CVC5_PROOF_RULE_NOT_IMPLIES_ELIM2"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_NOT_ITE_ELIM1E", "Cvc5ProofRule::CVC5_PROOF_RULE_NOT_ITE_ELIM1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_NOT_ITE_ELIM2E", "Cvc5ProofRule::CVC5_PROOF_RULE_NOT_ITE_ELIM2"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_NOT_NOT_ELIME", "Cvc5ProofRule::CVC5_PROOF_RULE_NOT_NOT_ELIM"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_NOT_OR_ELIME", "Cvc5ProofRule::CVC5_PROOF_RULE_NOT_OR_ELIM"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_NOT_XOR_ELIM1E", "Cvc5ProofRule::CVC5_PROOF_RULE_NOT_XOR_ELIM1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_NOT_XOR_ELIM2E", "Cvc5ProofRule::CVC5_PROOF_RULE_NOT_XOR_ELIM2"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule36CVC5_PROOF_RULE_QUANT_VAR_REORDERINGE", "Cvc5ProofRule::CVC5_PROOF_RULE_QUANT_VAR_REORDERING"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule20CVC5_PROOF_RULE_REFLE", "Cvc5ProofRule::CVC5_PROOF_RULE_REFL"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_REORDERINGE", "Cvc5ProofRule::CVC5_PROOF_RULE_REORDERING"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_RESOLUTIONE", "Cvc5ProofRule::CVC5_PROOF_RULE_RESOLUTION"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule24CVC5_PROOF_RULE_RE_INTERE", "Cvc5ProofRule::CVC5_PROOF_RULE_RE_INTER"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_RE_UNFOLD_NEGE", "Cvc5ProofRule::CVC5_PROOF_RULE_RE_UNFOLD_NEG"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule42CVC5_PROOF_RULE_RE_UNFOLD_NEG_CONCAT_FIXEDE", "Cvc5ProofRule::CVC5_PROOF_RULE_RE_UNFOLD_NEG_CONCAT_FIXED"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_RE_UNFOLD_POSE", "Cvc5ProofRule::CVC5_PROOF_RULE_RE_UNFOLD_POS"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule34CVC5_PROOF_RULE_SAT_EXTERNAL_PROVEE", "Cvc5ProofRule::CVC5_PROOF_RULE_SAT_EXTERNAL_PROVE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_SAT_REFUTATIONE", "Cvc5ProofRule::CVC5_PROOF_RULE_SAT_REFUTATION"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule21CVC5_PROOF_RULE_SCOPEE", "Cvc5ProofRule::CVC5_PROOF_RULE_SCOPE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule24CVC5_PROOF_RULE_SETS_EXTE", "Cvc5ProofRule::CVC5_PROOF_RULE_SETS_EXT"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_SETS_FILTER_DOWNE", "Cvc5ProofRule::CVC5_PROOF_RULE_SETS_FILTER_DOWN"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_SETS_FILTER_UPE", "Cvc5ProofRule::CVC5_PROOF_RULE_SETS_FILTER_UP"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule34CVC5_PROOF_RULE_SETS_SINGLETON_INJE", "Cvc5ProofRule::CVC5_PROOF_RULE_SETS_SINGLETON_INJ"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_SKOLEMIZEE", "Cvc5ProofRule::CVC5_PROOF_RULE_SKOLEMIZE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_SKOLEM_INTROE", "Cvc5ProofRule::CVC5_PROOF_RULE_SKOLEM_INTRO"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule21CVC5_PROOF_RULE_SPLITE", "Cvc5ProofRule::CVC5_PROOF_RULE_SPLIT"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_STRING_CODE_INJE", "Cvc5ProofRule::CVC5_PROOF_RULE_STRING_CODE_INJ"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_STRING_DECOMPOSEE", "Cvc5ProofRule::CVC5_PROOF_RULE_STRING_DECOMPOSE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule38CVC5_PROOF_RULE_STRING_EAGER_REDUCTIONE", "Cvc5ProofRule::CVC5_PROOF_RULE_STRING_EAGER_REDUCTION"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_STRING_EXTE", "Cvc5ProofRule::CVC5_PROOF_RULE_STRING_EXT"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule39CVC5_PROOF_RULE_STRING_LENGTH_NON_EMPTYE", "Cvc5ProofRule::CVC5_PROOF_RULE_STRING_LENGTH_NON_EMPTY"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule33CVC5_PROOF_RULE_STRING_LENGTH_POSE", "Cvc5ProofRule::CVC5_PROOF_RULE_STRING_LENGTH_POS"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_STRING_REDUCTIONE", "Cvc5ProofRule::CVC5_PROOF_RULE_STRING_REDUCTION"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule35CVC5_PROOF_RULE_STRING_SEQ_UNIT_INJE", "Cvc5ProofRule::CVC5_PROOF_RULE_STRING_SEQ_UNIT_INJ"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule20CVC5_PROOF_RULE_SUBSE", "Cvc5ProofRule::CVC5_PROOF_RULE_SUBS"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule20CVC5_PROOF_RULE_SYMME", "Cvc5ProofRule::CVC5_PROOF_RULE_SYMM"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_THEORY_REWRITEE", "Cvc5ProofRule::CVC5_PROOF_RULE_THEORY_REWRITE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule21CVC5_PROOF_RULE_TRANSE", "Cvc5ProofRule::CVC5_PROOF_RULE_TRANS"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_TRUE_ELIME", "Cvc5ProofRule::CVC5_PROOF_RULE_TRUE_ELIM"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_TRUE_INTROE", "Cvc5ProofRule::CVC5_PROOF_RULE_TRUE_INTRO"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule21CVC5_PROOF_RULE_TRUSTE", "Cvc5ProofRule::CVC5_PROOF_RULE_TRUST"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule36CVC5_PROOF_RULE_TRUST_THEORY_REWRITEE", "Cvc5ProofRule::CVC5_PROOF_RULE_TRUST_THEORY_REWRITE"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule23CVC5_PROOF_RULE_UNKNOWNE", "Cvc5ProofRule::CVC5_PROOF_RULE_UNKNOWN"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_XOR_ELIM1E", "Cvc5ProofRule::CVC5_PROOF_RULE_XOR_ELIM1"], [3, 0, 1, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_XOR_ELIM2E", "Cvc5ProofRule::CVC5_PROOF_RULE_XOR_ELIM2"], [22, 1, 1, "_CPPv410Cvc5Result", "Cvc5Result"], [4, 2, 1, "_CPPv416Cvc5RoundingMode", "Cvc5RoundingMode"], [4, 0, 1, "_CPPv4N16Cvc5RoundingMode12CVC5_RM_LASTE", "Cvc5RoundingMode::CVC5_RM_LAST"], [4, 0, 1, "_CPPv4N16Cvc5RoundingMode34CVC5_RM_ROUND_NEAREST_TIES_TO_AWAYE", "Cvc5RoundingMode::CVC5_RM_ROUND_NEAREST_TIES_TO_AWAY"], [4, 0, 1, "_CPPv4N16Cvc5RoundingMode34CVC5_RM_ROUND_NEAREST_TIES_TO_EVENE", "Cvc5RoundingMode::CVC5_RM_ROUND_NEAREST_TIES_TO_EVEN"], [4, 0, 1, "_CPPv4N16Cvc5RoundingMode29CVC5_RM_ROUND_TOWARD_NEGATIVEE", "Cvc5RoundingMode::CVC5_RM_ROUND_TOWARD_NEGATIVE"], [4, 0, 1, "_CPPv4N16Cvc5RoundingMode29CVC5_RM_ROUND_TOWARD_POSITIVEE", "Cvc5RoundingMode::CVC5_RM_ROUND_TOWARD_POSITIVE"], [4, 0, 1, "_CPPv4N16Cvc5RoundingMode25CVC5_RM_ROUND_TOWARD_ZEROE", "Cvc5RoundingMode::CVC5_RM_ROUND_TOWARD_ZERO"], [23, 1, 1, "_CPPv48Cvc5Sort", "Cvc5Sort"], [5, 2, 1, "_CPPv412Cvc5SortKind", "Cvc5SortKind"], [5, 0, 1, "_CPPv4N12Cvc5SortKind28CVC5_SORT_KIND_ABSTRACT_SORTE", "Cvc5SortKind::CVC5_SORT_KIND_ABSTRACT_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind25CVC5_SORT_KIND_ARRAY_SORTE", "Cvc5SortKind::CVC5_SORT_KIND_ARRAY_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind23CVC5_SORT_KIND_BAG_SORTE", "Cvc5SortKind::CVC5_SORT_KIND_BAG_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind29CVC5_SORT_KIND_BITVECTOR_SORTE", "Cvc5SortKind::CVC5_SORT_KIND_BITVECTOR_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind27CVC5_SORT_KIND_BOOLEAN_SORTE", "Cvc5SortKind::CVC5_SORT_KIND_BOOLEAN_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind28CVC5_SORT_KIND_DATATYPE_SORTE", "Cvc5SortKind::CVC5_SORT_KIND_DATATYPE_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind32CVC5_SORT_KIND_FINITE_FIELD_SORTE", "Cvc5SortKind::CVC5_SORT_KIND_FINITE_FIELD_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind33CVC5_SORT_KIND_FLOATINGPOINT_SORTE", "Cvc5SortKind::CVC5_SORT_KIND_FLOATINGPOINT_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind28CVC5_SORT_KIND_FUNCTION_SORTE", "Cvc5SortKind::CVC5_SORT_KIND_FUNCTION_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind27CVC5_SORT_KIND_INTEGER_SORTE", "Cvc5SortKind::CVC5_SORT_KIND_INTEGER_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind33CVC5_SORT_KIND_INTERNAL_SORT_KINDE", "Cvc5SortKind::CVC5_SORT_KIND_INTERNAL_SORT_KIND"], [5, 0, 1, "_CPPv4N12Cvc5SortKind29CVC5_SORT_KIND_LAST_SORT_KINDE", "Cvc5SortKind::CVC5_SORT_KIND_LAST_SORT_KIND"], [5, 0, 1, "_CPPv4N12Cvc5SortKind28CVC5_SORT_KIND_NULLABLE_SORTE", "Cvc5SortKind::CVC5_SORT_KIND_NULLABLE_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind24CVC5_SORT_KIND_NULL_SORTE", "Cvc5SortKind::CVC5_SORT_KIND_NULL_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind24CVC5_SORT_KIND_REAL_SORTE", "Cvc5SortKind::CVC5_SORT_KIND_REAL_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind26CVC5_SORT_KIND_REGLAN_SORTE", "Cvc5SortKind::CVC5_SORT_KIND_REGLAN_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind32CVC5_SORT_KIND_ROUNDINGMODE_SORTE", "Cvc5SortKind::CVC5_SORT_KIND_ROUNDINGMODE_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind28CVC5_SORT_KIND_SEQUENCE_SORTE", "Cvc5SortKind::CVC5_SORT_KIND_SEQUENCE_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind23CVC5_SORT_KIND_SET_SORTE", "Cvc5SortKind::CVC5_SORT_KIND_SET_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind26CVC5_SORT_KIND_STRING_SORTE", "Cvc5SortKind::CVC5_SORT_KIND_STRING_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind25CVC5_SORT_KIND_TUPLE_SORTE", "Cvc5SortKind::CVC5_SORT_KIND_TUPLE_SORT"], [5, 0, 1, "_CPPv4N12Cvc5SortKind34CVC5_SORT_KIND_UNDEFINED_SORT_KINDE", "Cvc5SortKind::CVC5_SORT_KIND_UNDEFINED_SORT_KIND"], [5, 0, 1, "_CPPv4N12Cvc5SortKind33CVC5_SORT_KIND_UNINTERPRETED_SORTE", "Cvc5SortKind::CVC5_SORT_KIND_UNINTERPRETED_SORT"], [24, 1, 1, "_CPPv48Cvc5Stat", "Cvc5Stat"], [24, 1, 1, "_CPPv414Cvc5Statistics", "Cvc5Statistics"], [25, 1, 1, "_CPPv417Cvc5SymbolManager", "Cvc5SymbolManager"], [26, 1, 1, "_CPPv415Cvc5SynthResult", "Cvc5SynthResult"], [27, 1, 1, "_CPPv48Cvc5Term", "Cvc5Term"], [28, 1, 1, "_CPPv415Cvc5TermManager", "Cvc5TermManager"], [6, 2, 1, "_CPPv422Cvc5UnknownExplanation", "Cvc5UnknownExplanation"], [6, 0, 1, "_CPPv4N22Cvc5UnknownExplanation35CVC5_UNKNOWN_EXPLANATION_INCOMPLETEE", "Cvc5UnknownExplanation::CVC5_UNKNOWN_EXPLANATION_INCOMPLETE"], [6, 0, 1, "_CPPv4N22Cvc5UnknownExplanation36CVC5_UNKNOWN_EXPLANATION_INTERRUPTEDE", "Cvc5UnknownExplanation::CVC5_UNKNOWN_EXPLANATION_INTERRUPTED"], [6, 0, 1, "_CPPv4N22Cvc5UnknownExplanation29CVC5_UNKNOWN_EXPLANATION_LASTE", "Cvc5UnknownExplanation::CVC5_UNKNOWN_EXPLANATION_LAST"], [6, 0, 1, "_CPPv4N22Cvc5UnknownExplanation31CVC5_UNKNOWN_EXPLANATION_MEMOUTE", "Cvc5UnknownExplanation::CVC5_UNKNOWN_EXPLANATION_MEMOUT"], [6, 0, 1, "_CPPv4N22Cvc5UnknownExplanation30CVC5_UNKNOWN_EXPLANATION_OTHERE", "Cvc5UnknownExplanation::CVC5_UNKNOWN_EXPLANATION_OTHER"], [6, 0, 1, "_CPPv4N22Cvc5UnknownExplanation45CVC5_UNKNOWN_EXPLANATION_REQUIRES_CHECK_AGAINE", "Cvc5UnknownExplanation::CVC5_UNKNOWN_EXPLANATION_REQUIRES_CHECK_AGAIN"], [6, 0, 1, "_CPPv4N22Cvc5UnknownExplanation44CVC5_UNKNOWN_EXPLANATION_REQUIRES_FULL_CHECKE", "Cvc5UnknownExplanation::CVC5_UNKNOWN_EXPLANATION_REQUIRES_FULL_CHECK"], [6, 0, 1, "_CPPv4N22Cvc5UnknownExplanation36CVC5_UNKNOWN_EXPLANATION_RESOURCEOUTE", "Cvc5UnknownExplanation::CVC5_UNKNOWN_EXPLANATION_RESOURCEOUT"], [6, 0, 1, "_CPPv4N22Cvc5UnknownExplanation32CVC5_UNKNOWN_EXPLANATION_TIMEOUTE", "Cvc5UnknownExplanation::CVC5_UNKNOWN_EXPLANATION_TIMEOUT"], [6, 0, 1, "_CPPv4N22Cvc5UnknownExplanation39CVC5_UNKNOWN_EXPLANATION_UNKNOWN_REASONE", "Cvc5UnknownExplanation::CVC5_UNKNOWN_EXPLANATION_UNKNOWN_REASON"], [6, 0, 1, "_CPPv4N22Cvc5UnknownExplanation36CVC5_UNKNOWN_EXPLANATION_UNSUPPORTEDE", "Cvc5UnknownExplanation::CVC5_UNKNOWN_EXPLANATION_UNSUPPORTED"], [57, 3, 1, "_CPPv4N4cvc516CVC5ApiExceptionE", "cvc5::CVC5ApiException"], [57, 5, 1, "_CPPv4N4cvc516CVC5ApiException16CVC5ApiExceptionERKNSt12stringstreamE", "cvc5::CVC5ApiException::CVC5ApiException"], [57, 5, 1, "_CPPv4N4cvc516CVC5ApiException16CVC5ApiExceptionERKNSt6stringE", "cvc5::CVC5ApiException::CVC5ApiException"], [57, 6, 1, "_CPPv4N4cvc516CVC5ApiException16CVC5ApiExceptionERKNSt6stringE", "cvc5::CVC5ApiException::CVC5ApiException::str"], [57, 6, 1, "_CPPv4N4cvc516CVC5ApiException16CVC5ApiExceptionERKNSt12stringstreamE", "cvc5::CVC5ApiException::CVC5ApiException::stream"], [57, 5, 1, "_CPPv4NK4cvc516CVC5ApiException10getMessageEv", "cvc5::CVC5ApiException::getMessage"], [57, 5, 1, "_CPPv4NK4cvc516CVC5ApiException8toStreamERNSt7ostreamE", "cvc5::CVC5ApiException::toStream"], [57, 6, 1, "_CPPv4NK4cvc516CVC5ApiException8toStreamERNSt7ostreamE", "cvc5::CVC5ApiException::toStream::os"], [57, 5, 1, "_CPPv4NK4cvc516CVC5ApiException4whatEv", "cvc5::CVC5ApiException::what"], [57, 3, 1, "_CPPv4N4cvc527CVC5ApiRecoverableExceptionE", "cvc5::CVC5ApiRecoverableException"], [57, 5, 1, "_CPPv4N4cvc527CVC5ApiRecoverableException27CVC5ApiRecoverableExceptionERKNSt12stringstreamE", "cvc5::CVC5ApiRecoverableException::CVC5ApiRecoverableException"], [57, 5, 1, "_CPPv4N4cvc527CVC5ApiRecoverableException27CVC5ApiRecoverableExceptionERKNSt6stringE", "cvc5::CVC5ApiRecoverableException::CVC5ApiRecoverableException"], [57, 6, 1, "_CPPv4N4cvc527CVC5ApiRecoverableException27CVC5ApiRecoverableExceptionERKNSt6stringE", "cvc5::CVC5ApiRecoverableException::CVC5ApiRecoverableException::str"], [57, 6, 1, "_CPPv4N4cvc527CVC5ApiRecoverableException27CVC5ApiRecoverableExceptionERKNSt12stringstreamE", "cvc5::CVC5ApiRecoverableException::CVC5ApiRecoverableException::stream"], [30, 3, 1, "_CPPv4N4cvc58DatatypeE", "cvc5::Datatype"], [30, 5, 1, "_CPPv4N4cvc58Datatype8DatatypeEv", "cvc5::Datatype::Datatype"], [30, 5, 1, "_CPPv4NK4cvc58Datatype5beginEv", "cvc5::Datatype::begin"], [30, 3, 1, "_CPPv4N4cvc58Datatype14const_iteratorE", "cvc5::Datatype::const_iterator"], [30, 5, 1, "_CPPv4N4cvc58Datatype14const_iterator14const_iteratorEv", "cvc5::Datatype::const_iterator::const_iterator"], [30, 1, 1, "_CPPv4N4cvc58Datatype14const_iterator15difference_typeE", "cvc5::Datatype::const_iterator::difference_type"], [30, 1, 1, "_CPPv4N4cvc58Datatype14const_iterator17iterator_categoryE", "cvc5::Datatype::const_iterator::iterator_category"], [30, 5, 1, "_CPPv4NK4cvc58Datatype14const_iteratorneERK14const_iterator", "cvc5::Datatype::const_iterator::operator!="], [30, 6, 1, "_CPPv4NK4cvc58Datatype14const_iteratorneERK14const_iterator", "cvc5::Datatype::const_iterator::operator!=::it"], [30, 5, 1, "_CPPv4NK4cvc58Datatype14const_iteratormlEv", "cvc5::Datatype::const_iterator::operator*"], [30, 5, 1, "_CPPv4N4cvc58Datatype14const_iteratorppEi", "cvc5::Datatype::const_iterator::operator++"], [30, 5, 1, "_CPPv4N4cvc58Datatype14const_iteratorppEv", "cvc5::Datatype::const_iterator::operator++"], [30, 5, 1, "_CPPv4NK4cvc58Datatype14const_iteratorptEv", "cvc5::Datatype::const_iterator::operator->"], [30, 5, 1, "_CPPv4N4cvc58Datatype14const_iteratoraSERK14const_iterator", "cvc5::Datatype::const_iterator::operator="], [30, 6, 1, "_CPPv4N4cvc58Datatype14const_iteratoraSERK14const_iterator", "cvc5::Datatype::const_iterator::operator=::it"], [30, 5, 1, "_CPPv4NK4cvc58Datatype14const_iteratoreqERK14const_iterator", "cvc5::Datatype::const_iterator::operator=="], [30, 6, 1, "_CPPv4NK4cvc58Datatype14const_iteratoreqERK14const_iterator", "cvc5::Datatype::const_iterator::operator==::it"], [30, 1, 1, "_CPPv4N4cvc58Datatype14const_iterator7pointerE", "cvc5::Datatype::const_iterator::pointer"], [30, 1, 1, "_CPPv4N4cvc58Datatype14const_iterator9referenceE", "cvc5::Datatype::const_iterator::reference"], [30, 1, 1, "_CPPv4N4cvc58Datatype14const_iterator10value_typeE", "cvc5::Datatype::const_iterator::value_type"], [30, 5, 1, "_CPPv4NK4cvc58Datatype3endEv", "cvc5::Datatype::end"], [30, 5, 1, "_CPPv4NK4cvc58Datatype14getConstructorERKNSt6stringE", "cvc5::Datatype::getConstructor"], [30, 6, 1, "_CPPv4NK4cvc58Datatype14getConstructorERKNSt6stringE", "cvc5::Datatype::getConstructor::name"], [30, 5, 1, "_CPPv4NK4cvc58Datatype7getNameEv", "cvc5::Datatype::getName"], [30, 5, 1, "_CPPv4NK4cvc58Datatype18getNumConstructorsEv", "cvc5::Datatype::getNumConstructors"], [30, 5, 1, "_CPPv4NK4cvc58Datatype13getParametersEv", "cvc5::Datatype::getParameters"], [30, 5, 1, "_CPPv4NK4cvc58Datatype11getSelectorERKNSt6stringE", "cvc5::Datatype::getSelector"], [30, 6, 1, "_CPPv4NK4cvc58Datatype11getSelectorERKNSt6stringE", "cvc5::Datatype::getSelector::name"], [30, 5, 1, "_CPPv4NK4cvc58Datatype12isCodatatypeEv", "cvc5::Datatype::isCodatatype"], [30, 5, 1, "_CPPv4NK4cvc58Datatype8isFiniteEv", "cvc5::Datatype::isFinite"], [30, 5, 1, "_CPPv4NK4cvc58Datatype6isNullEv", "cvc5::Datatype::isNull"], [30, 5, 1, "_CPPv4NK4cvc58Datatype12isParametricEv", "cvc5::Datatype::isParametric"], [30, 5, 1, "_CPPv4NK4cvc58Datatype8isRecordEv", "cvc5::Datatype::isRecord"], [30, 5, 1, "_CPPv4NK4cvc58Datatype7isTupleEv", "cvc5::Datatype::isTuple"], [30, 5, 1, "_CPPv4NK4cvc58Datatype13isWellFoundedEv", "cvc5::Datatype::isWellFounded"], [30, 5, 1, "_CPPv4NK4cvc58DatatypeeqERK8Datatype", "cvc5::Datatype::operator=="], [30, 6, 1, "_CPPv4NK4cvc58DatatypeeqERK8Datatype", "cvc5::Datatype::operator==::dt"], [30, 5, 1, "_CPPv4NK4cvc58DatatypeixE6size_t", "cvc5::Datatype::operator[]"], [30, 5, 1, "_CPPv4NK4cvc58DatatypeixERKNSt6stringE", "cvc5::Datatype::operator[]"], [30, 6, 1, "_CPPv4NK4cvc58DatatypeixE6size_t", "cvc5::Datatype::operator[]::idx"], [30, 6, 1, "_CPPv4NK4cvc58DatatypeixERKNSt6stringE", "cvc5::Datatype::operator[]::name"], [30, 5, 1, "_CPPv4NK4cvc58Datatype8toStringEv", "cvc5::Datatype::toString"], [30, 5, 1, "_CPPv4N4cvc58DatatypeD0Ev", "cvc5::Datatype::~Datatype"], [31, 3, 1, "_CPPv4N4cvc519DatatypeConstructorE", "cvc5::DatatypeConstructor"], [31, 5, 1, "_CPPv4N4cvc519DatatypeConstructor19DatatypeConstructorEv", "cvc5::DatatypeConstructor::DatatypeConstructor"], [31, 5, 1, "_CPPv4NK4cvc519DatatypeConstructor5beginEv", "cvc5::DatatypeConstructor::begin"], [31, 3, 1, "_CPPv4N4cvc519DatatypeConstructor14const_iteratorE", "cvc5::DatatypeConstructor::const_iterator"], [31, 5, 1, "_CPPv4N4cvc519DatatypeConstructor14const_iterator14const_iteratorEv", "cvc5::DatatypeConstructor::const_iterator::const_iterator"], [31, 1, 1, "_CPPv4N4cvc519DatatypeConstructor14const_iterator15difference_typeE", "cvc5::DatatypeConstructor::const_iterator::difference_type"], [31, 1, 1, "_CPPv4N4cvc519DatatypeConstructor14const_iterator17iterator_categoryE", "cvc5::DatatypeConstructor::const_iterator::iterator_category"], [31, 5, 1, "_CPPv4NK4cvc519DatatypeConstructor14const_iteratorneERK14const_iterator", "cvc5::DatatypeConstructor::const_iterator::operator!="], [31, 6, 1, "_CPPv4NK4cvc519DatatypeConstructor14const_iteratorneERK14const_iterator", "cvc5::DatatypeConstructor::const_iterator::operator!=::it"], [31, 5, 1, "_CPPv4NK4cvc519DatatypeConstructor14const_iteratormlEv", "cvc5::DatatypeConstructor::const_iterator::operator*"], [31, 5, 1, "_CPPv4N4cvc519DatatypeConstructor14const_iteratorppEi", "cvc5::DatatypeConstructor::const_iterator::operator++"], [31, 5, 1, "_CPPv4N4cvc519DatatypeConstructor14const_iteratorppEv", "cvc5::DatatypeConstructor::const_iterator::operator++"], [31, 5, 1, "_CPPv4NK4cvc519DatatypeConstructor14const_iteratorptEv", "cvc5::DatatypeConstructor::const_iterator::operator->"], [31, 5, 1, "_CPPv4N4cvc519DatatypeConstructor14const_iteratoraSERK14const_iterator", "cvc5::DatatypeConstructor::const_iterator::operator="], [31, 6, 1, "_CPPv4N4cvc519DatatypeConstructor14const_iteratoraSERK14const_iterator", "cvc5::DatatypeConstructor::const_iterator::operator=::it"], [31, 5, 1, "_CPPv4NK4cvc519DatatypeConstructor14const_iteratoreqERK14const_iterator", "cvc5::DatatypeConstructor::const_iterator::operator=="], [31, 6, 1, "_CPPv4NK4cvc519DatatypeConstructor14const_iteratoreqERK14const_iterator", "cvc5::DatatypeConstructor::const_iterator::operator==::it"], [31, 1, 1, "_CPPv4N4cvc519DatatypeConstructor14const_iterator7pointerE", "cvc5::DatatypeConstructor::const_iterator::pointer"], [31, 1, 1, "_CPPv4N4cvc519DatatypeConstructor14const_iterator9referenceE", "cvc5::DatatypeConstructor::const_iterator::reference"], [31, 1, 1, "_CPPv4N4cvc519DatatypeConstructor14const_iterator10value_typeE", "cvc5::DatatypeConstructor::const_iterator::value_type"], [31, 5, 1, "_CPPv4NK4cvc519DatatypeConstructor3endEv", "cvc5::DatatypeConstructor::end"], [31, 5, 1, "_CPPv4NK4cvc519DatatypeConstructor19getInstantiatedTermERK4Sort", "cvc5::DatatypeConstructor::getInstantiatedTerm"], [31, 6, 1, "_CPPv4NK4cvc519DatatypeConstructor19getInstantiatedTermERK4Sort", "cvc5::DatatypeConstructor::getInstantiatedTerm::retSort"], [31, 5, 1, "_CPPv4NK4cvc519DatatypeConstructor7getNameEv", "cvc5::DatatypeConstructor::getName"], [31, 5, 1, "_CPPv4NK4cvc519DatatypeConstructor15getNumSelectorsEv", "cvc5::DatatypeConstructor::getNumSelectors"], [31, 5, 1, "_CPPv4NK4cvc519DatatypeConstructor11getSelectorERKNSt6stringE", "cvc5::DatatypeConstructor::getSelector"], [31, 6, 1, "_CPPv4NK4cvc519DatatypeConstructor11getSelectorERKNSt6stringE", "cvc5::DatatypeConstructor::getSelector::name"], [31, 5, 1, "_CPPv4NK4cvc519DatatypeConstructor7getTermEv", "cvc5::DatatypeConstructor::getTerm"], [31, 5, 1, "_CPPv4NK4cvc519DatatypeConstructor13getTesterTermEv", "cvc5::DatatypeConstructor::getTesterTerm"], [31, 5, 1, "_CPPv4NK4cvc519DatatypeConstructor6isNullEv", "cvc5::DatatypeConstructor::isNull"], [31, 5, 1, "_CPPv4NK4cvc519DatatypeConstructoreqERK19DatatypeConstructor", "cvc5::DatatypeConstructor::operator=="], [31, 6, 1, "_CPPv4NK4cvc519DatatypeConstructoreqERK19DatatypeConstructor", "cvc5::DatatypeConstructor::operator==::cons"], [31, 5, 1, "_CPPv4NK4cvc519DatatypeConstructorixE6size_t", "cvc5::DatatypeConstructor::operator[]"], [31, 5, 1, "_CPPv4NK4cvc519DatatypeConstructorixERKNSt6stringE", "cvc5::DatatypeConstructor::operator[]"], [31, 6, 1, "_CPPv4NK4cvc519DatatypeConstructorixE6size_t", "cvc5::DatatypeConstructor::operator[]::index"], [31, 6, 1, "_CPPv4NK4cvc519DatatypeConstructorixERKNSt6stringE", "cvc5::DatatypeConstructor::operator[]::name"], [31, 5, 1, "_CPPv4NK4cvc519DatatypeConstructor8toStringEv", "cvc5::DatatypeConstructor::toString"], [31, 5, 1, "_CPPv4N4cvc519DatatypeConstructorD0Ev", "cvc5::DatatypeConstructor::~DatatypeConstructor"], [32, 3, 1, "_CPPv4N4cvc523DatatypeConstructorDeclE", "cvc5::DatatypeConstructorDecl"], [32, 5, 1, "_CPPv4N4cvc523DatatypeConstructorDecl23DatatypeConstructorDeclEv", "cvc5::DatatypeConstructorDecl::DatatypeConstructorDecl"], [32, 5, 1, "_CPPv4N4cvc523DatatypeConstructorDecl11addSelectorERKNSt6stringERK4Sort", "cvc5::DatatypeConstructorDecl::addSelector"], [32, 6, 1, "_CPPv4N4cvc523DatatypeConstructorDecl11addSelectorERKNSt6stringERK4Sort", "cvc5::DatatypeConstructorDecl::addSelector::name"], [32, 6, 1, "_CPPv4N4cvc523DatatypeConstructorDecl11addSelectorERKNSt6stringERK4Sort", "cvc5::DatatypeConstructorDecl::addSelector::sort"], [32, 5, 1, "_CPPv4N4cvc523DatatypeConstructorDecl15addSelectorSelfERKNSt6stringE", "cvc5::DatatypeConstructorDecl::addSelectorSelf"], [32, 6, 1, "_CPPv4N4cvc523DatatypeConstructorDecl15addSelectorSelfERKNSt6stringE", "cvc5::DatatypeConstructorDecl::addSelectorSelf::name"], [32, 5, 1, "_CPPv4N4cvc523DatatypeConstructorDecl21addSelectorUnresolvedERKNSt6stringERKNSt6stringE", "cvc5::DatatypeConstructorDecl::addSelectorUnresolved"], [32, 6, 1, "_CPPv4N4cvc523DatatypeConstructorDecl21addSelectorUnresolvedERKNSt6stringERKNSt6stringE", "cvc5::DatatypeConstructorDecl::addSelectorUnresolved::name"], [32, 6, 1, "_CPPv4N4cvc523DatatypeConstructorDecl21addSelectorUnresolvedERKNSt6stringERKNSt6stringE", "cvc5::DatatypeConstructorDecl::addSelectorUnresolved::unresDataypeName"], [32, 5, 1, "_CPPv4NK4cvc523DatatypeConstructorDecl6isNullEv", "cvc5::DatatypeConstructorDecl::isNull"], [32, 5, 1, "_CPPv4NK4cvc523DatatypeConstructorDecleqERK23DatatypeConstructorDecl", "cvc5::DatatypeConstructorDecl::operator=="], [32, 6, 1, "_CPPv4NK4cvc523DatatypeConstructorDecleqERK23DatatypeConstructorDecl", "cvc5::DatatypeConstructorDecl::operator==::decl"], [32, 5, 1, "_CPPv4NK4cvc523DatatypeConstructorDecl8toStringEv", "cvc5::DatatypeConstructorDecl::toString"], [32, 5, 1, "_CPPv4N4cvc523DatatypeConstructorDeclD0Ev", "cvc5::DatatypeConstructorDecl::~DatatypeConstructorDecl"], [33, 3, 1, "_CPPv4N4cvc512DatatypeDeclE", "cvc5::DatatypeDecl"], [33, 5, 1, "_CPPv4N4cvc512DatatypeDecl12DatatypeDeclEv", "cvc5::DatatypeDecl::DatatypeDecl"], [33, 5, 1, "_CPPv4N4cvc512DatatypeDecl14addConstructorERK23DatatypeConstructorDecl", "cvc5::DatatypeDecl::addConstructor"], [33, 6, 1, "_CPPv4N4cvc512DatatypeDecl14addConstructorERK23DatatypeConstructorDecl", "cvc5::DatatypeDecl::addConstructor::ctor"], [33, 5, 1, "_CPPv4NK4cvc512DatatypeDecl7getNameEv", "cvc5::DatatypeDecl::getName"], [33, 5, 1, "_CPPv4NK4cvc512DatatypeDecl18getNumConstructorsEv", "cvc5::DatatypeDecl::getNumConstructors"], [33, 5, 1, "_CPPv4NK4cvc512DatatypeDecl6isNullEv", "cvc5::DatatypeDecl::isNull"], [33, 5, 1, "_CPPv4NK4cvc512DatatypeDecl12isParametricEv", "cvc5::DatatypeDecl::isParametric"], [33, 5, 1, "_CPPv4NK4cvc512DatatypeDecl10isResolvedEv", "cvc5::DatatypeDecl::isResolved"], [33, 5, 1, "_CPPv4NK4cvc512DatatypeDecleqERK12DatatypeDecl", "cvc5::DatatypeDecl::operator=="], [33, 6, 1, "_CPPv4NK4cvc512DatatypeDecleqERK12DatatypeDecl", "cvc5::DatatypeDecl::operator==::decl"], [33, 5, 1, "_CPPv4NK4cvc512DatatypeDecl8toStringEv", "cvc5::DatatypeDecl::toString"], [33, 5, 1, "_CPPv4N4cvc512DatatypeDeclD0Ev", "cvc5::DatatypeDecl::~DatatypeDecl"], [34, 3, 1, "_CPPv4N4cvc516DatatypeSelectorE", "cvc5::DatatypeSelector"], [34, 5, 1, "_CPPv4N4cvc516DatatypeSelector16DatatypeSelectorEv", "cvc5::DatatypeSelector::DatatypeSelector"], [34, 5, 1, "_CPPv4NK4cvc516DatatypeSelector15getCodomainSortEv", "cvc5::DatatypeSelector::getCodomainSort"], [34, 5, 1, "_CPPv4NK4cvc516DatatypeSelector7getNameEv", "cvc5::DatatypeSelector::getName"], [34, 5, 1, "_CPPv4NK4cvc516DatatypeSelector7getTermEv", "cvc5::DatatypeSelector::getTerm"], [34, 5, 1, "_CPPv4NK4cvc516DatatypeSelector14getUpdaterTermEv", "cvc5::DatatypeSelector::getUpdaterTerm"], [34, 5, 1, "_CPPv4NK4cvc516DatatypeSelector6isNullEv", "cvc5::DatatypeSelector::isNull"], [34, 5, 1, "_CPPv4NK4cvc516DatatypeSelectoreqERK16DatatypeSelector", "cvc5::DatatypeSelector::operator=="], [34, 6, 1, "_CPPv4NK4cvc516DatatypeSelectoreqERK16DatatypeSelector", "cvc5::DatatypeSelector::operator==::sel"], [34, 5, 1, "_CPPv4NK4cvc516DatatypeSelector8toStringEv", "cvc5::DatatypeSelector::toString"], [34, 5, 1, "_CPPv4N4cvc516DatatypeSelectorD0Ev", "cvc5::DatatypeSelector::~DatatypeSelector"], [35, 3, 1, "_CPPv4N4cvc513DriverOptionsE", "cvc5::DriverOptions"], [35, 5, 1, "_CPPv4NK4cvc513DriverOptions3errEv", "cvc5::DriverOptions::err"], [35, 5, 1, "_CPPv4NK4cvc513DriverOptions2inEv", "cvc5::DriverOptions::in"], [35, 5, 1, "_CPPv4NK4cvc513DriverOptions3outEv", "cvc5::DriverOptions::out"], [36, 3, 1, "_CPPv4N4cvc57GrammarE", "cvc5::Grammar"], [36, 5, 1, "_CPPv4N4cvc57Grammar7GrammarEv", "cvc5::Grammar::Grammar"], [36, 5, 1, "_CPPv4N4cvc57Grammar14addAnyConstantERK4Term", "cvc5::Grammar::addAnyConstant"], [36, 6, 1, "_CPPv4N4cvc57Grammar14addAnyConstantERK4Term", "cvc5::Grammar::addAnyConstant::ntSymbol"], [36, 5, 1, "_CPPv4N4cvc57Grammar14addAnyVariableERK4Term", "cvc5::Grammar::addAnyVariable"], [36, 6, 1, "_CPPv4N4cvc57Grammar14addAnyVariableERK4Term", "cvc5::Grammar::addAnyVariable::ntSymbol"], [36, 5, 1, "_CPPv4N4cvc57Grammar7addRuleERK4TermRK4Term", "cvc5::Grammar::addRule"], [36, 6, 1, "_CPPv4N4cvc57Grammar7addRuleERK4TermRK4Term", "cvc5::Grammar::addRule::ntSymbol"], [36, 6, 1, "_CPPv4N4cvc57Grammar7addRuleERK4TermRK4Term", "cvc5::Grammar::addRule::rule"], [36, 5, 1, "_CPPv4N4cvc57Grammar8addRulesERK4TermRKNSt6vectorI4TermEE", "cvc5::Grammar::addRules"], [36, 6, 1, "_CPPv4N4cvc57Grammar8addRulesERK4TermRKNSt6vectorI4TermEE", "cvc5::Grammar::addRules::ntSymbol"], [36, 6, 1, "_CPPv4N4cvc57Grammar8addRulesERK4TermRKNSt6vectorI4TermEE", "cvc5::Grammar::addRules::rules"], [36, 5, 1, "_CPPv4NK4cvc57Grammar6isNullEv", "cvc5::Grammar::isNull"], [36, 5, 1, "_CPPv4NK4cvc57GrammarneERK7Grammar", "cvc5::Grammar::operator!="], [36, 6, 1, "_CPPv4NK4cvc57GrammarneERK7Grammar", "cvc5::Grammar::operator!=::grammar"], [36, 5, 1, "_CPPv4NK4cvc57GrammareqERK7Grammar", "cvc5::Grammar::operator=="], [36, 6, 1, "_CPPv4NK4cvc57GrammareqERK7Grammar", "cvc5::Grammar::operator==::grammar"], [36, 5, 1, "_CPPv4NK4cvc57Grammar8toStringEv", "cvc5::Grammar::toString"], [36, 5, 1, "_CPPv4N4cvc57GrammarD0Ev", "cvc5::Grammar::~Grammar"], [51, 2, 1, "_CPPv4N4cvc54KindE", "cvc5::Kind"], [51, 0, 1, "_CPPv4N4cvc54Kind3ABSE", "cvc5::Kind::ABS"], [51, 0, 1, "_CPPv4N4cvc54Kind3ADDE", "cvc5::Kind::ADD"], [51, 0, 1, "_CPPv4N4cvc54Kind3ANDE", "cvc5::Kind::AND"], [51, 0, 1, "_CPPv4N4cvc54Kind17APPLY_CONSTRUCTORE", "cvc5::Kind::APPLY_CONSTRUCTOR"], [51, 0, 1, "_CPPv4N4cvc54Kind14APPLY_SELECTORE", "cvc5::Kind::APPLY_SELECTOR"], [51, 0, 1, "_CPPv4N4cvc54Kind12APPLY_TESTERE", "cvc5::Kind::APPLY_TESTER"], [51, 0, 1, "_CPPv4N4cvc54Kind8APPLY_UFE", "cvc5::Kind::APPLY_UF"], [51, 0, 1, "_CPPv4N4cvc54Kind13APPLY_UPDATERE", "cvc5::Kind::APPLY_UPDATER"], [51, 0, 1, "_CPPv4N4cvc54Kind11ARCCOSECANTE", "cvc5::Kind::ARCCOSECANT"], [51, 0, 1, "_CPPv4N4cvc54Kind9ARCCOSINEE", "cvc5::Kind::ARCCOSINE"], [51, 0, 1, "_CPPv4N4cvc54Kind12ARCCOTANGENTE", "cvc5::Kind::ARCCOTANGENT"], [51, 0, 1, "_CPPv4N4cvc54Kind9ARCSECANTE", "cvc5::Kind::ARCSECANT"], [51, 0, 1, "_CPPv4N4cvc54Kind7ARCSINEE", "cvc5::Kind::ARCSINE"], [51, 0, 1, "_CPPv4N4cvc54Kind10ARCTANGENTE", "cvc5::Kind::ARCTANGENT"], [51, 0, 1, "_CPPv4N4cvc54Kind8BAG_CARDE", "cvc5::Kind::BAG_CARD"], [51, 0, 1, "_CPPv4N4cvc54Kind10BAG_CHOOSEE", "cvc5::Kind::BAG_CHOOSE"], [51, 0, 1, "_CPPv4N4cvc54Kind9BAG_COUNTE", "cvc5::Kind::BAG_COUNT"], [51, 0, 1, "_CPPv4N4cvc54Kind21BAG_DIFFERENCE_REMOVEE", "cvc5::Kind::BAG_DIFFERENCE_REMOVE"], [51, 0, 1, "_CPPv4N4cvc54Kind23BAG_DIFFERENCE_SUBTRACTE", "cvc5::Kind::BAG_DIFFERENCE_SUBTRACT"], [51, 0, 1, "_CPPv4N4cvc54Kind9BAG_EMPTYE", "cvc5::Kind::BAG_EMPTY"], [51, 0, 1, "_CPPv4N4cvc54Kind10BAG_FILTERE", "cvc5::Kind::BAG_FILTER"], [51, 0, 1, "_CPPv4N4cvc54Kind8BAG_FOLDE", "cvc5::Kind::BAG_FOLD"], [51, 0, 1, "_CPPv4N4cvc54Kind13BAG_INTER_MINE", "cvc5::Kind::BAG_INTER_MIN"], [51, 0, 1, "_CPPv4N4cvc54Kind8BAG_MAKEE", "cvc5::Kind::BAG_MAKE"], [51, 0, 1, "_CPPv4N4cvc54Kind7BAG_MAPE", "cvc5::Kind::BAG_MAP"], [51, 0, 1, "_CPPv4N4cvc54Kind10BAG_MEMBERE", "cvc5::Kind::BAG_MEMBER"], [51, 0, 1, "_CPPv4N4cvc54Kind13BAG_PARTITIONE", "cvc5::Kind::BAG_PARTITION"], [51, 0, 1, "_CPPv4N4cvc54Kind9BAG_SETOFE", "cvc5::Kind::BAG_SETOF"], [51, 0, 1, "_CPPv4N4cvc54Kind10BAG_SUBBAGE", "cvc5::Kind::BAG_SUBBAG"], [51, 0, 1, "_CPPv4N4cvc54Kind18BAG_UNION_DISJOINTE", "cvc5::Kind::BAG_UNION_DISJOINT"], [51, 0, 1, "_CPPv4N4cvc54Kind13BAG_UNION_MAXE", "cvc5::Kind::BAG_UNION_MAX"], [51, 0, 1, "_CPPv4N4cvc54Kind13BITVECTOR_ADDE", "cvc5::Kind::BITVECTOR_ADD"], [51, 0, 1, "_CPPv4N4cvc54Kind13BITVECTOR_ANDE", "cvc5::Kind::BITVECTOR_AND"], [51, 0, 1, "_CPPv4N4cvc54Kind14BITVECTOR_ASHRE", "cvc5::Kind::BITVECTOR_ASHR"], [51, 0, 1, "_CPPv4N4cvc54Kind13BITVECTOR_BITE", "cvc5::Kind::BITVECTOR_BIT"], [51, 0, 1, "_CPPv4N4cvc54Kind14BITVECTOR_COMPE", "cvc5::Kind::BITVECTOR_COMP"], [51, 0, 1, "_CPPv4N4cvc54Kind16BITVECTOR_CONCATE", "cvc5::Kind::BITVECTOR_CONCAT"], [51, 0, 1, "_CPPv4N4cvc54Kind17BITVECTOR_EXTRACTE", "cvc5::Kind::BITVECTOR_EXTRACT"], [51, 0, 1, "_CPPv4N4cvc54Kind20BITVECTOR_FROM_BOOLSE", "cvc5::Kind::BITVECTOR_FROM_BOOLS"], [51, 0, 1, "_CPPv4N4cvc54Kind13BITVECTOR_ITEE", "cvc5::Kind::BITVECTOR_ITE"], [51, 0, 1, "_CPPv4N4cvc54Kind14BITVECTOR_LSHRE", "cvc5::Kind::BITVECTOR_LSHR"], [51, 0, 1, "_CPPv4N4cvc54Kind14BITVECTOR_MULTE", "cvc5::Kind::BITVECTOR_MULT"], [51, 0, 1, "_CPPv4N4cvc54Kind14BITVECTOR_NANDE", "cvc5::Kind::BITVECTOR_NAND"], [51, 0, 1, "_CPPv4N4cvc54Kind13BITVECTOR_NEGE", "cvc5::Kind::BITVECTOR_NEG"], [51, 0, 1, "_CPPv4N4cvc54Kind14BITVECTOR_NEGOE", "cvc5::Kind::BITVECTOR_NEGO"], [51, 0, 1, "_CPPv4N4cvc54Kind13BITVECTOR_NORE", "cvc5::Kind::BITVECTOR_NOR"], [51, 0, 1, "_CPPv4N4cvc54Kind13BITVECTOR_NOTE", "cvc5::Kind::BITVECTOR_NOT"], [51, 0, 1, "_CPPv4N4cvc54Kind12BITVECTOR_ORE", "cvc5::Kind::BITVECTOR_OR"], [51, 0, 1, "_CPPv4N4cvc54Kind16BITVECTOR_REDANDE", "cvc5::Kind::BITVECTOR_REDAND"], [51, 0, 1, "_CPPv4N4cvc54Kind15BITVECTOR_REDORE", "cvc5::Kind::BITVECTOR_REDOR"], [51, 0, 1, "_CPPv4N4cvc54Kind16BITVECTOR_REPEATE", "cvc5::Kind::BITVECTOR_REPEAT"], [51, 0, 1, "_CPPv4N4cvc54Kind21BITVECTOR_ROTATE_LEFTE", "cvc5::Kind::BITVECTOR_ROTATE_LEFT"], [51, 0, 1, "_CPPv4N4cvc54Kind22BITVECTOR_ROTATE_RIGHTE", "cvc5::Kind::BITVECTOR_ROTATE_RIGHT"], [51, 0, 1, "_CPPv4N4cvc54Kind15BITVECTOR_SADDOE", "cvc5::Kind::BITVECTOR_SADDO"], [51, 0, 1, "_CPPv4N4cvc54Kind14BITVECTOR_SDIVE", "cvc5::Kind::BITVECTOR_SDIV"], [51, 0, 1, "_CPPv4N4cvc54Kind15BITVECTOR_SDIVOE", "cvc5::Kind::BITVECTOR_SDIVO"], [51, 0, 1, "_CPPv4N4cvc54Kind13BITVECTOR_SGEE", "cvc5::Kind::BITVECTOR_SGE"], [51, 0, 1, "_CPPv4N4cvc54Kind13BITVECTOR_SGTE", "cvc5::Kind::BITVECTOR_SGT"], [51, 0, 1, "_CPPv4N4cvc54Kind13BITVECTOR_SHLE", "cvc5::Kind::BITVECTOR_SHL"], [51, 0, 1, "_CPPv4N4cvc54Kind21BITVECTOR_SIGN_EXTENDE", "cvc5::Kind::BITVECTOR_SIGN_EXTEND"], [51, 0, 1, "_CPPv4N4cvc54Kind13BITVECTOR_SLEE", "cvc5::Kind::BITVECTOR_SLE"], [51, 0, 1, "_CPPv4N4cvc54Kind13BITVECTOR_SLTE", "cvc5::Kind::BITVECTOR_SLT"], [51, 0, 1, "_CPPv4N4cvc54Kind15BITVECTOR_SLTBVE", "cvc5::Kind::BITVECTOR_SLTBV"], [51, 0, 1, "_CPPv4N4cvc54Kind14BITVECTOR_SMODE", "cvc5::Kind::BITVECTOR_SMOD"], [51, 0, 1, "_CPPv4N4cvc54Kind15BITVECTOR_SMULOE", "cvc5::Kind::BITVECTOR_SMULO"], [51, 0, 1, "_CPPv4N4cvc54Kind14BITVECTOR_SREME", "cvc5::Kind::BITVECTOR_SREM"], [51, 0, 1, "_CPPv4N4cvc54Kind15BITVECTOR_SSUBOE", "cvc5::Kind::BITVECTOR_SSUBO"], [51, 0, 1, "_CPPv4N4cvc54Kind13BITVECTOR_SUBE", "cvc5::Kind::BITVECTOR_SUB"], [51, 0, 1, "_CPPv4N4cvc54Kind16BITVECTOR_TO_NATE", "cvc5::Kind::BITVECTOR_TO_NAT"], [51, 0, 1, "_CPPv4N4cvc54Kind15BITVECTOR_UADDOE", "cvc5::Kind::BITVECTOR_UADDO"], [51, 0, 1, "_CPPv4N4cvc54Kind14BITVECTOR_UDIVE", "cvc5::Kind::BITVECTOR_UDIV"], [51, 0, 1, "_CPPv4N4cvc54Kind13BITVECTOR_UGEE", "cvc5::Kind::BITVECTOR_UGE"], [51, 0, 1, "_CPPv4N4cvc54Kind13BITVECTOR_UGTE", "cvc5::Kind::BITVECTOR_UGT"], [51, 0, 1, "_CPPv4N4cvc54Kind13BITVECTOR_ULEE", "cvc5::Kind::BITVECTOR_ULE"], [51, 0, 1, "_CPPv4N4cvc54Kind13BITVECTOR_ULTE", "cvc5::Kind::BITVECTOR_ULT"], [51, 0, 1, "_CPPv4N4cvc54Kind15BITVECTOR_ULTBVE", "cvc5::Kind::BITVECTOR_ULTBV"], [51, 0, 1, "_CPPv4N4cvc54Kind15BITVECTOR_UMULOE", "cvc5::Kind::BITVECTOR_UMULO"], [51, 0, 1, "_CPPv4N4cvc54Kind14BITVECTOR_UREME", "cvc5::Kind::BITVECTOR_UREM"], [51, 0, 1, "_CPPv4N4cvc54Kind15BITVECTOR_USUBOE", "cvc5::Kind::BITVECTOR_USUBO"], [51, 0, 1, "_CPPv4N4cvc54Kind14BITVECTOR_XNORE", "cvc5::Kind::BITVECTOR_XNOR"], [51, 0, 1, "_CPPv4N4cvc54Kind13BITVECTOR_XORE", "cvc5::Kind::BITVECTOR_XOR"], [51, 0, 1, "_CPPv4N4cvc54Kind21BITVECTOR_ZERO_EXTENDE", "cvc5::Kind::BITVECTOR_ZERO_EXTEND"], [51, 0, 1, "_CPPv4N4cvc54Kind22CARDINALITY_CONSTRAINTE", "cvc5::Kind::CARDINALITY_CONSTRAINT"], [51, 0, 1, "_CPPv4N4cvc54Kind8CONSTANTE", "cvc5::Kind::CONSTANT"], [51, 0, 1, "_CPPv4N4cvc54Kind11CONST_ARRAYE", "cvc5::Kind::CONST_ARRAY"], [51, 0, 1, "_CPPv4N4cvc54Kind15CONST_BITVECTORE", "cvc5::Kind::CONST_BITVECTOR"], [51, 0, 1, "_CPPv4N4cvc54Kind13CONST_BOOLEANE", "cvc5::Kind::CONST_BOOLEAN"], [51, 0, 1, "_CPPv4N4cvc54Kind18CONST_FINITE_FIELDE", "cvc5::Kind::CONST_FINITE_FIELD"], [51, 0, 1, "_CPPv4N4cvc54Kind19CONST_FLOATINGPOINTE", "cvc5::Kind::CONST_FLOATINGPOINT"], [51, 0, 1, "_CPPv4N4cvc54Kind13CONST_INTEGERE", "cvc5::Kind::CONST_INTEGER"], [51, 0, 1, "_CPPv4N4cvc54Kind14CONST_RATIONALE", "cvc5::Kind::CONST_RATIONAL"], [51, 0, 1, "_CPPv4N4cvc54Kind18CONST_ROUNDINGMODEE", "cvc5::Kind::CONST_ROUNDINGMODE"], [51, 0, 1, "_CPPv4N4cvc54Kind14CONST_SEQUENCEE", "cvc5::Kind::CONST_SEQUENCE"], [51, 0, 1, "_CPPv4N4cvc54Kind12CONST_STRINGE", "cvc5::Kind::CONST_STRING"], [51, 0, 1, "_CPPv4N4cvc54Kind8COSECANTE", "cvc5::Kind::COSECANT"], [51, 0, 1, "_CPPv4N4cvc54Kind6COSINEE", "cvc5::Kind::COSINE"], [51, 0, 1, "_CPPv4N4cvc54Kind9COTANGENTE", "cvc5::Kind::COTANGENT"], [51, 0, 1, "_CPPv4N4cvc54Kind8DISTINCTE", "cvc5::Kind::DISTINCT"], [51, 0, 1, "_CPPv4N4cvc54Kind9DIVISIBLEE", "cvc5::Kind::DIVISIBLE"], [51, 0, 1, "_CPPv4N4cvc54Kind8DIVISIONE", "cvc5::Kind::DIVISION"], [51, 0, 1, "_CPPv4N4cvc54Kind14DIVISION_TOTALE", "cvc5::Kind::DIVISION_TOTAL"], [51, 0, 1, "_CPPv4N4cvc54Kind5EQUALE", "cvc5::Kind::EQUAL"], [51, 0, 1, "_CPPv4N4cvc54Kind8EQ_RANGEE", "cvc5::Kind::EQ_RANGE"], [51, 0, 1, "_CPPv4N4cvc54Kind6EXISTSE", "cvc5::Kind::EXISTS"], [51, 0, 1, "_CPPv4N4cvc54Kind11EXPONENTIALE", "cvc5::Kind::EXPONENTIAL"], [51, 0, 1, "_CPPv4N4cvc54Kind16FINITE_FIELD_ADDE", "cvc5::Kind::FINITE_FIELD_ADD"], [51, 0, 1, "_CPPv4N4cvc54Kind19FINITE_FIELD_BITSUME", "cvc5::Kind::FINITE_FIELD_BITSUM"], [51, 0, 1, "_CPPv4N4cvc54Kind17FINITE_FIELD_MULTE", "cvc5::Kind::FINITE_FIELD_MULT"], [51, 0, 1, "_CPPv4N4cvc54Kind16FINITE_FIELD_NEGE", "cvc5::Kind::FINITE_FIELD_NEG"], [51, 0, 1, "_CPPv4N4cvc54Kind17FLOATINGPOINT_ABSE", "cvc5::Kind::FLOATINGPOINT_ABS"], [51, 0, 1, "_CPPv4N4cvc54Kind17FLOATINGPOINT_ADDE", "cvc5::Kind::FLOATINGPOINT_ADD"], [51, 0, 1, "_CPPv4N4cvc54Kind17FLOATINGPOINT_DIVE", "cvc5::Kind::FLOATINGPOINT_DIV"], [51, 0, 1, "_CPPv4N4cvc54Kind16FLOATINGPOINT_EQE", "cvc5::Kind::FLOATINGPOINT_EQ"], [51, 0, 1, "_CPPv4N4cvc54Kind17FLOATINGPOINT_FMAE", "cvc5::Kind::FLOATINGPOINT_FMA"], [51, 0, 1, "_CPPv4N4cvc54Kind16FLOATINGPOINT_FPE", "cvc5::Kind::FLOATINGPOINT_FP"], [51, 0, 1, "_CPPv4N4cvc54Kind17FLOATINGPOINT_GEQE", "cvc5::Kind::FLOATINGPOINT_GEQ"], [51, 0, 1, "_CPPv4N4cvc54Kind16FLOATINGPOINT_GTE", "cvc5::Kind::FLOATINGPOINT_GT"], [51, 0, 1, "_CPPv4N4cvc54Kind20FLOATINGPOINT_IS_INFE", "cvc5::Kind::FLOATINGPOINT_IS_INF"], [51, 0, 1, "_CPPv4N4cvc54Kind20FLOATINGPOINT_IS_NANE", "cvc5::Kind::FLOATINGPOINT_IS_NAN"], [51, 0, 1, "_CPPv4N4cvc54Kind20FLOATINGPOINT_IS_NEGE", "cvc5::Kind::FLOATINGPOINT_IS_NEG"], [51, 0, 1, "_CPPv4N4cvc54Kind23FLOATINGPOINT_IS_NORMALE", "cvc5::Kind::FLOATINGPOINT_IS_NORMAL"], [51, 0, 1, "_CPPv4N4cvc54Kind20FLOATINGPOINT_IS_POSE", "cvc5::Kind::FLOATINGPOINT_IS_POS"], [51, 0, 1, "_CPPv4N4cvc54Kind26FLOATINGPOINT_IS_SUBNORMALE", "cvc5::Kind::FLOATINGPOINT_IS_SUBNORMAL"], [51, 0, 1, "_CPPv4N4cvc54Kind21FLOATINGPOINT_IS_ZEROE", "cvc5::Kind::FLOATINGPOINT_IS_ZERO"], [51, 0, 1, "_CPPv4N4cvc54Kind17FLOATINGPOINT_LEQE", "cvc5::Kind::FLOATINGPOINT_LEQ"], [51, 0, 1, "_CPPv4N4cvc54Kind16FLOATINGPOINT_LTE", "cvc5::Kind::FLOATINGPOINT_LT"], [51, 0, 1, "_CPPv4N4cvc54Kind17FLOATINGPOINT_MAXE", "cvc5::Kind::FLOATINGPOINT_MAX"], [51, 0, 1, "_CPPv4N4cvc54Kind17FLOATINGPOINT_MINE", "cvc5::Kind::FLOATINGPOINT_MIN"], [51, 0, 1, "_CPPv4N4cvc54Kind18FLOATINGPOINT_MULTE", "cvc5::Kind::FLOATINGPOINT_MULT"], [51, 0, 1, "_CPPv4N4cvc54Kind17FLOATINGPOINT_NEGE", "cvc5::Kind::FLOATINGPOINT_NEG"], [51, 0, 1, "_CPPv4N4cvc54Kind17FLOATINGPOINT_REME", "cvc5::Kind::FLOATINGPOINT_REM"], [51, 0, 1, "_CPPv4N4cvc54Kind17FLOATINGPOINT_RTIE", "cvc5::Kind::FLOATINGPOINT_RTI"], [51, 0, 1, "_CPPv4N4cvc54Kind18FLOATINGPOINT_SQRTE", "cvc5::Kind::FLOATINGPOINT_SQRT"], [51, 0, 1, "_CPPv4N4cvc54Kind17FLOATINGPOINT_SUBE", "cvc5::Kind::FLOATINGPOINT_SUB"], [51, 0, 1, "_CPPv4N4cvc54Kind27FLOATINGPOINT_TO_FP_FROM_FPE", "cvc5::Kind::FLOATINGPOINT_TO_FP_FROM_FP"], [51, 0, 1, "_CPPv4N4cvc54Kind32FLOATINGPOINT_TO_FP_FROM_IEEE_BVE", "cvc5::Kind::FLOATINGPOINT_TO_FP_FROM_IEEE_BV"], [51, 0, 1, "_CPPv4N4cvc54Kind29FLOATINGPOINT_TO_FP_FROM_REALE", "cvc5::Kind::FLOATINGPOINT_TO_FP_FROM_REAL"], [51, 0, 1, "_CPPv4N4cvc54Kind28FLOATINGPOINT_TO_FP_FROM_SBVE", "cvc5::Kind::FLOATINGPOINT_TO_FP_FROM_SBV"], [51, 0, 1, "_CPPv4N4cvc54Kind28FLOATINGPOINT_TO_FP_FROM_UBVE", "cvc5::Kind::FLOATINGPOINT_TO_FP_FROM_UBV"], [51, 0, 1, "_CPPv4N4cvc54Kind21FLOATINGPOINT_TO_REALE", "cvc5::Kind::FLOATINGPOINT_TO_REAL"], [51, 0, 1, "_CPPv4N4cvc54Kind20FLOATINGPOINT_TO_SBVE", "cvc5::Kind::FLOATINGPOINT_TO_SBV"], [51, 0, 1, "_CPPv4N4cvc54Kind20FLOATINGPOINT_TO_UBVE", "cvc5::Kind::FLOATINGPOINT_TO_UBV"], [51, 0, 1, "_CPPv4N4cvc54Kind6FORALLE", "cvc5::Kind::FORALL"], [51, 0, 1, "_CPPv4N4cvc54Kind3GEQE", "cvc5::Kind::GEQ"], [51, 0, 1, "_CPPv4N4cvc54Kind2GTE", "cvc5::Kind::GT"], [51, 0, 1, "_CPPv4N4cvc54Kind8HO_APPLYE", "cvc5::Kind::HO_APPLY"], [51, 0, 1, "_CPPv4N4cvc54Kind4IANDE", "cvc5::Kind::IAND"], [51, 0, 1, "_CPPv4N4cvc54Kind7IMPLIESE", "cvc5::Kind::IMPLIES"], [51, 0, 1, "_CPPv4N4cvc54Kind16INST_ADD_TO_POOLE", "cvc5::Kind::INST_ADD_TO_POOL"], [51, 0, 1, "_CPPv4N4cvc54Kind14INST_ATTRIBUTEE", "cvc5::Kind::INST_ATTRIBUTE"], [51, 0, 1, "_CPPv4N4cvc54Kind15INST_NO_PATTERNE", "cvc5::Kind::INST_NO_PATTERN"], [51, 0, 1, "_CPPv4N4cvc54Kind12INST_PATTERNE", "cvc5::Kind::INST_PATTERN"], [51, 0, 1, "_CPPv4N4cvc54Kind17INST_PATTERN_LISTE", "cvc5::Kind::INST_PATTERN_LIST"], [51, 0, 1, "_CPPv4N4cvc54Kind9INST_POOLE", "cvc5::Kind::INST_POOL"], [51, 0, 1, "_CPPv4N4cvc54Kind13INTERNAL_KINDE", "cvc5::Kind::INTERNAL_KIND"], [51, 0, 1, "_CPPv4N4cvc54Kind13INTS_DIVISIONE", "cvc5::Kind::INTS_DIVISION"], [51, 0, 1, "_CPPv4N4cvc54Kind19INTS_DIVISION_TOTALE", "cvc5::Kind::INTS_DIVISION_TOTAL"], [51, 0, 1, "_CPPv4N4cvc54Kind12INTS_MODULUSE", "cvc5::Kind::INTS_MODULUS"], [51, 0, 1, "_CPPv4N4cvc54Kind18INTS_MODULUS_TOTALE", "cvc5::Kind::INTS_MODULUS_TOTAL"], [51, 0, 1, "_CPPv4N4cvc54Kind16INT_TO_BITVECTORE", "cvc5::Kind::INT_TO_BITVECTOR"], [51, 0, 1, "_CPPv4N4cvc54Kind10IS_INTEGERE", "cvc5::Kind::IS_INTEGER"], [51, 0, 1, "_CPPv4N4cvc54Kind3ITEE", "cvc5::Kind::ITE"], [51, 0, 1, "_CPPv4N4cvc54Kind6LAMBDAE", "cvc5::Kind::LAMBDA"], [51, 0, 1, "_CPPv4N4cvc54Kind9LAST_KINDE", "cvc5::Kind::LAST_KIND"], [51, 0, 1, "_CPPv4N4cvc54Kind3LEQE", "cvc5::Kind::LEQ"], [51, 0, 1, "_CPPv4N4cvc54Kind2LTE", "cvc5::Kind::LT"], [51, 0, 1, "_CPPv4N4cvc54Kind5MATCHE", "cvc5::Kind::MATCH"], [51, 0, 1, "_CPPv4N4cvc54Kind15MATCH_BIND_CASEE", "cvc5::Kind::MATCH_BIND_CASE"], [51, 0, 1, "_CPPv4N4cvc54Kind10MATCH_CASEE", "cvc5::Kind::MATCH_CASE"], [51, 0, 1, "_CPPv4N4cvc54Kind4MULTE", "cvc5::Kind::MULT"], [51, 0, 1, "_CPPv4N4cvc54Kind3NEGE", "cvc5::Kind::NEG"], [51, 0, 1, "_CPPv4N4cvc54Kind3NOTE", "cvc5::Kind::NOT"], [51, 0, 1, "_CPPv4N4cvc54Kind13NULLABLE_LIFTE", "cvc5::Kind::NULLABLE_LIFT"], [51, 0, 1, "_CPPv4N4cvc54Kind9NULL_TERME", "cvc5::Kind::NULL_TERM"], [51, 0, 1, "_CPPv4N4cvc54Kind2ORE", "cvc5::Kind::OR"], [51, 0, 1, "_CPPv4N4cvc54Kind2PIE", "cvc5::Kind::PI"], [51, 0, 1, "_CPPv4N4cvc54Kind3POWE", "cvc5::Kind::POW"], [51, 0, 1, "_CPPv4N4cvc54Kind4POW2E", "cvc5::Kind::POW2"], [51, 0, 1, "_CPPv4N4cvc54Kind10REGEXP_ALLE", "cvc5::Kind::REGEXP_ALL"], [51, 0, 1, "_CPPv4N4cvc54Kind14REGEXP_ALLCHARE", "cvc5::Kind::REGEXP_ALLCHAR"], [51, 0, 1, "_CPPv4N4cvc54Kind17REGEXP_COMPLEMENTE", "cvc5::Kind::REGEXP_COMPLEMENT"], [51, 0, 1, "_CPPv4N4cvc54Kind13REGEXP_CONCATE", "cvc5::Kind::REGEXP_CONCAT"], [51, 0, 1, "_CPPv4N4cvc54Kind11REGEXP_DIFFE", "cvc5::Kind::REGEXP_DIFF"], [51, 0, 1, "_CPPv4N4cvc54Kind12REGEXP_INTERE", "cvc5::Kind::REGEXP_INTER"], [51, 0, 1, "_CPPv4N4cvc54Kind11REGEXP_LOOPE", "cvc5::Kind::REGEXP_LOOP"], [51, 0, 1, "_CPPv4N4cvc54Kind11REGEXP_NONEE", "cvc5::Kind::REGEXP_NONE"], [51, 0, 1, "_CPPv4N4cvc54Kind10REGEXP_OPTE", "cvc5::Kind::REGEXP_OPT"], [51, 0, 1, "_CPPv4N4cvc54Kind11REGEXP_PLUSE", "cvc5::Kind::REGEXP_PLUS"], [51, 0, 1, "_CPPv4N4cvc54Kind12REGEXP_RANGEE", "cvc5::Kind::REGEXP_RANGE"], [51, 0, 1, "_CPPv4N4cvc54Kind13REGEXP_REPEATE", "cvc5::Kind::REGEXP_REPEAT"], [51, 0, 1, "_CPPv4N4cvc54Kind11REGEXP_STARE", "cvc5::Kind::REGEXP_STAR"], [51, 0, 1, "_CPPv4N4cvc54Kind12REGEXP_UNIONE", "cvc5::Kind::REGEXP_UNION"], [51, 0, 1, "_CPPv4N4cvc54Kind18RELATION_AGGREGATEE", "cvc5::Kind::RELATION_AGGREGATE"], [51, 0, 1, "_CPPv4N4cvc54Kind14RELATION_GROUPE", "cvc5::Kind::RELATION_GROUP"], [51, 0, 1, "_CPPv4N4cvc54Kind13RELATION_IDENE", "cvc5::Kind::RELATION_IDEN"], [51, 0, 1, "_CPPv4N4cvc54Kind13RELATION_JOINE", "cvc5::Kind::RELATION_JOIN"], [51, 0, 1, "_CPPv4N4cvc54Kind19RELATION_JOIN_IMAGEE", "cvc5::Kind::RELATION_JOIN_IMAGE"], [51, 0, 1, "_CPPv4N4cvc54Kind16RELATION_PRODUCTE", "cvc5::Kind::RELATION_PRODUCT"], [51, 0, 1, "_CPPv4N4cvc54Kind16RELATION_PROJECTE", "cvc5::Kind::RELATION_PROJECT"], [51, 0, 1, "_CPPv4N4cvc54Kind19RELATION_TABLE_JOINE", "cvc5::Kind::RELATION_TABLE_JOIN"], [51, 0, 1, "_CPPv4N4cvc54Kind17RELATION_TCLOSUREE", "cvc5::Kind::RELATION_TCLOSURE"], [51, 0, 1, "_CPPv4N4cvc54Kind18RELATION_TRANSPOSEE", "cvc5::Kind::RELATION_TRANSPOSE"], [51, 0, 1, "_CPPv4N4cvc54Kind6SECANTE", "cvc5::Kind::SECANT"], [51, 0, 1, "_CPPv4N4cvc54Kind6SELECTE", "cvc5::Kind::SELECT"], [51, 0, 1, "_CPPv4N4cvc54Kind7SEP_EMPE", "cvc5::Kind::SEP_EMP"], [51, 0, 1, "_CPPv4N4cvc54Kind7SEP_NILE", "cvc5::Kind::SEP_NIL"], [51, 0, 1, "_CPPv4N4cvc54Kind7SEP_PTOE", "cvc5::Kind::SEP_PTO"], [51, 0, 1, "_CPPv4N4cvc54Kind8SEP_STARE", "cvc5::Kind::SEP_STAR"], [51, 0, 1, "_CPPv4N4cvc54Kind8SEP_WANDE", "cvc5::Kind::SEP_WAND"], [51, 0, 1, "_CPPv4N4cvc54Kind6SEQ_ATE", "cvc5::Kind::SEQ_AT"], [51, 0, 1, "_CPPv4N4cvc54Kind10SEQ_CONCATE", "cvc5::Kind::SEQ_CONCAT"], [51, 0, 1, "_CPPv4N4cvc54Kind12SEQ_CONTAINSE", "cvc5::Kind::SEQ_CONTAINS"], [51, 0, 1, "_CPPv4N4cvc54Kind11SEQ_EXTRACTE", "cvc5::Kind::SEQ_EXTRACT"], [51, 0, 1, "_CPPv4N4cvc54Kind11SEQ_INDEXOFE", "cvc5::Kind::SEQ_INDEXOF"], [51, 0, 1, "_CPPv4N4cvc54Kind10SEQ_LENGTHE", "cvc5::Kind::SEQ_LENGTH"], [51, 0, 1, "_CPPv4N4cvc54Kind7SEQ_NTHE", "cvc5::Kind::SEQ_NTH"], [51, 0, 1, "_CPPv4N4cvc54Kind10SEQ_PREFIXE", "cvc5::Kind::SEQ_PREFIX"], [51, 0, 1, "_CPPv4N4cvc54Kind11SEQ_REPLACEE", "cvc5::Kind::SEQ_REPLACE"], [51, 0, 1, "_CPPv4N4cvc54Kind15SEQ_REPLACE_ALLE", "cvc5::Kind::SEQ_REPLACE_ALL"], [51, 0, 1, "_CPPv4N4cvc54Kind7SEQ_REVE", "cvc5::Kind::SEQ_REV"], [51, 0, 1, "_CPPv4N4cvc54Kind10SEQ_SUFFIXE", "cvc5::Kind::SEQ_SUFFIX"], [51, 0, 1, "_CPPv4N4cvc54Kind8SEQ_UNITE", "cvc5::Kind::SEQ_UNIT"], [51, 0, 1, "_CPPv4N4cvc54Kind10SEQ_UPDATEE", "cvc5::Kind::SEQ_UPDATE"], [51, 0, 1, "_CPPv4N4cvc54Kind7SET_ALLE", "cvc5::Kind::SET_ALL"], [51, 0, 1, "_CPPv4N4cvc54Kind8SET_CARDE", "cvc5::Kind::SET_CARD"], [51, 0, 1, "_CPPv4N4cvc54Kind10SET_CHOOSEE", "cvc5::Kind::SET_CHOOSE"], [51, 0, 1, "_CPPv4N4cvc54Kind14SET_COMPLEMENTE", "cvc5::Kind::SET_COMPLEMENT"], [51, 0, 1, "_CPPv4N4cvc54Kind17SET_COMPREHENSIONE", "cvc5::Kind::SET_COMPREHENSION"], [51, 0, 1, "_CPPv4N4cvc54Kind9SET_EMPTYE", "cvc5::Kind::SET_EMPTY"], [51, 0, 1, "_CPPv4N4cvc54Kind10SET_FILTERE", "cvc5::Kind::SET_FILTER"], [51, 0, 1, "_CPPv4N4cvc54Kind8SET_FOLDE", "cvc5::Kind::SET_FOLD"], [51, 0, 1, "_CPPv4N4cvc54Kind10SET_INSERTE", "cvc5::Kind::SET_INSERT"], [51, 0, 1, "_CPPv4N4cvc54Kind9SET_INTERE", "cvc5::Kind::SET_INTER"], [51, 0, 1, "_CPPv4N4cvc54Kind12SET_IS_EMPTYE", "cvc5::Kind::SET_IS_EMPTY"], [51, 0, 1, "_CPPv4N4cvc54Kind16SET_IS_SINGLETONE", "cvc5::Kind::SET_IS_SINGLETON"], [51, 0, 1, "_CPPv4N4cvc54Kind7SET_MAPE", "cvc5::Kind::SET_MAP"], [51, 0, 1, "_CPPv4N4cvc54Kind10SET_MEMBERE", "cvc5::Kind::SET_MEMBER"], [51, 0, 1, "_CPPv4N4cvc54Kind9SET_MINUSE", "cvc5::Kind::SET_MINUS"], [51, 0, 1, "_CPPv4N4cvc54Kind13SET_SINGLETONE", "cvc5::Kind::SET_SINGLETON"], [51, 0, 1, "_CPPv4N4cvc54Kind8SET_SOMEE", "cvc5::Kind::SET_SOME"], [51, 0, 1, "_CPPv4N4cvc54Kind10SET_SUBSETE", "cvc5::Kind::SET_SUBSET"], [51, 0, 1, "_CPPv4N4cvc54Kind9SET_UNIONE", "cvc5::Kind::SET_UNION"], [51, 0, 1, "_CPPv4N4cvc54Kind12SET_UNIVERSEE", "cvc5::Kind::SET_UNIVERSE"], [51, 0, 1, "_CPPv4N4cvc54Kind5SEXPRE", "cvc5::Kind::SEXPR"], [51, 0, 1, "_CPPv4N4cvc54Kind4SINEE", "cvc5::Kind::SINE"], [51, 0, 1, "_CPPv4N4cvc54Kind6SKOLEME", "cvc5::Kind::SKOLEM"], [51, 0, 1, "_CPPv4N4cvc54Kind18SKOLEM_ADD_TO_POOLE", "cvc5::Kind::SKOLEM_ADD_TO_POOL"], [51, 0, 1, "_CPPv4N4cvc54Kind4SQRTE", "cvc5::Kind::SQRT"], [51, 0, 1, "_CPPv4N4cvc54Kind5STOREE", "cvc5::Kind::STORE"], [51, 0, 1, "_CPPv4N4cvc54Kind13STRING_CHARATE", "cvc5::Kind::STRING_CHARAT"], [51, 0, 1, "_CPPv4N4cvc54Kind13STRING_CONCATE", "cvc5::Kind::STRING_CONCAT"], [51, 0, 1, "_CPPv4N4cvc54Kind15STRING_CONTAINSE", "cvc5::Kind::STRING_CONTAINS"], [51, 0, 1, "_CPPv4N4cvc54Kind16STRING_FROM_CODEE", "cvc5::Kind::STRING_FROM_CODE"], [51, 0, 1, "_CPPv4N4cvc54Kind15STRING_FROM_INTE", "cvc5::Kind::STRING_FROM_INT"], [51, 0, 1, "_CPPv4N4cvc54Kind14STRING_INDEXOFE", "cvc5::Kind::STRING_INDEXOF"], [51, 0, 1, "_CPPv4N4cvc54Kind17STRING_INDEXOF_REE", "cvc5::Kind::STRING_INDEXOF_RE"], [51, 0, 1, "_CPPv4N4cvc54Kind16STRING_IN_REGEXPE", "cvc5::Kind::STRING_IN_REGEXP"], [51, 0, 1, "_CPPv4N4cvc54Kind15STRING_IS_DIGITE", "cvc5::Kind::STRING_IS_DIGIT"], [51, 0, 1, "_CPPv4N4cvc54Kind13STRING_LENGTHE", "cvc5::Kind::STRING_LENGTH"], [51, 0, 1, "_CPPv4N4cvc54Kind10STRING_LEQE", "cvc5::Kind::STRING_LEQ"], [51, 0, 1, "_CPPv4N4cvc54Kind9STRING_LTE", "cvc5::Kind::STRING_LT"], [51, 0, 1, "_CPPv4N4cvc54Kind13STRING_PREFIXE", "cvc5::Kind::STRING_PREFIX"], [51, 0, 1, "_CPPv4N4cvc54Kind14STRING_REPLACEE", "cvc5::Kind::STRING_REPLACE"], [51, 0, 1, "_CPPv4N4cvc54Kind18STRING_REPLACE_ALLE", "cvc5::Kind::STRING_REPLACE_ALL"], [51, 0, 1, "_CPPv4N4cvc54Kind17STRING_REPLACE_REE", "cvc5::Kind::STRING_REPLACE_RE"], [51, 0, 1, "_CPPv4N4cvc54Kind21STRING_REPLACE_RE_ALLE", "cvc5::Kind::STRING_REPLACE_RE_ALL"], [51, 0, 1, "_CPPv4N4cvc54Kind10STRING_REVE", "cvc5::Kind::STRING_REV"], [51, 0, 1, "_CPPv4N4cvc54Kind13STRING_SUBSTRE", "cvc5::Kind::STRING_SUBSTR"], [51, 0, 1, "_CPPv4N4cvc54Kind13STRING_SUFFIXE", "cvc5::Kind::STRING_SUFFIX"], [51, 0, 1, "_CPPv4N4cvc54Kind14STRING_TO_CODEE", "cvc5::Kind::STRING_TO_CODE"], [51, 0, 1, "_CPPv4N4cvc54Kind13STRING_TO_INTE", "cvc5::Kind::STRING_TO_INT"], [51, 0, 1, "_CPPv4N4cvc54Kind15STRING_TO_LOWERE", "cvc5::Kind::STRING_TO_LOWER"], [51, 0, 1, "_CPPv4N4cvc54Kind16STRING_TO_REGEXPE", "cvc5::Kind::STRING_TO_REGEXP"], [51, 0, 1, "_CPPv4N4cvc54Kind15STRING_TO_UPPERE", "cvc5::Kind::STRING_TO_UPPER"], [51, 0, 1, "_CPPv4N4cvc54Kind13STRING_UPDATEE", "cvc5::Kind::STRING_UPDATE"], [51, 0, 1, "_CPPv4N4cvc54Kind3SUBE", "cvc5::Kind::SUB"], [51, 0, 1, "_CPPv4N4cvc54Kind15TABLE_AGGREGATEE", "cvc5::Kind::TABLE_AGGREGATE"], [51, 0, 1, "_CPPv4N4cvc54Kind11TABLE_GROUPE", "cvc5::Kind::TABLE_GROUP"], [51, 0, 1, "_CPPv4N4cvc54Kind10TABLE_JOINE", "cvc5::Kind::TABLE_JOIN"], [51, 0, 1, "_CPPv4N4cvc54Kind13TABLE_PRODUCTE", "cvc5::Kind::TABLE_PRODUCT"], [51, 0, 1, "_CPPv4N4cvc54Kind13TABLE_PROJECTE", "cvc5::Kind::TABLE_PROJECT"], [51, 0, 1, "_CPPv4N4cvc54Kind7TANGENTE", "cvc5::Kind::TANGENT"], [51, 0, 1, "_CPPv4N4cvc54Kind10TO_INTEGERE", "cvc5::Kind::TO_INTEGER"], [51, 0, 1, "_CPPv4N4cvc54Kind7TO_REALE", "cvc5::Kind::TO_REAL"], [51, 0, 1, "_CPPv4N4cvc54Kind13TUPLE_PROJECTE", "cvc5::Kind::TUPLE_PROJECT"], [51, 0, 1, "_CPPv4N4cvc54Kind14UNDEFINED_KINDE", "cvc5::Kind::UNDEFINED_KIND"], [51, 0, 1, "_CPPv4N4cvc54Kind24UNINTERPRETED_SORT_VALUEE", "cvc5::Kind::UNINTERPRETED_SORT_VALUE"], [51, 0, 1, "_CPPv4N4cvc54Kind8VARIABLEE", "cvc5::Kind::VARIABLE"], [51, 0, 1, "_CPPv4N4cvc54Kind13VARIABLE_LISTE", "cvc5::Kind::VARIABLE_LIST"], [51, 0, 1, "_CPPv4N4cvc54Kind7WITNESSE", "cvc5::Kind::WITNESS"], [51, 0, 1, "_CPPv4N4cvc54Kind3XORE", "cvc5::Kind::XOR"], [38, 3, 1, "_CPPv4N4cvc52OpE", "cvc5::Op"], [38, 5, 1, "_CPPv4N4cvc52Op2OpEv", "cvc5::Op::Op"], [38, 5, 1, "_CPPv4NK4cvc52Op7getKindEv", "cvc5::Op::getKind"], [38, 5, 1, "_CPPv4NK4cvc52Op13getNumIndicesEv", "cvc5::Op::getNumIndices"], [38, 5, 1, "_CPPv4NK4cvc52Op9isIndexedEv", "cvc5::Op::isIndexed"], [38, 5, 1, "_CPPv4NK4cvc52Op6isNullEv", "cvc5::Op::isNull"], [38, 5, 1, "_CPPv4NK4cvc52OpneERK2Op", "cvc5::Op::operator!="], [38, 6, 1, "_CPPv4NK4cvc52OpneERK2Op", "cvc5::Op::operator!=::t"], [38, 5, 1, "_CPPv4NK4cvc52OpeqERK2Op", "cvc5::Op::operator=="], [38, 6, 1, "_CPPv4NK4cvc52OpeqERK2Op", "cvc5::Op::operator==::t"], [38, 5, 1, "_CPPv4N4cvc52OpixE6size_t", "cvc5::Op::operator[]"], [38, 6, 1, "_CPPv4N4cvc52OpixE6size_t", "cvc5::Op::operator[]::i"], [38, 5, 1, "_CPPv4NK4cvc52Op8toStringEv", "cvc5::Op::toString"], [38, 5, 1, "_CPPv4N4cvc52OpD0Ev", "cvc5::Op::~Op"], [39, 3, 1, "_CPPv4N4cvc510OptionInfoE", "cvc5::OptionInfo"], [39, 3, 1, "_CPPv4N4cvc510OptionInfo8ModeInfoE", "cvc5::OptionInfo::ModeInfo"], [39, 4, 1, "_CPPv4N4cvc510OptionInfo8ModeInfo12currentValueE", "cvc5::OptionInfo::ModeInfo::currentValue"], [39, 4, 1, "_CPPv4N4cvc510OptionInfo8ModeInfo12defaultValueE", "cvc5::OptionInfo::ModeInfo::defaultValue"], [39, 4, 1, "_CPPv4N4cvc510OptionInfo8ModeInfo5modesE", "cvc5::OptionInfo::ModeInfo::modes"], [39, 3, 1, "_CPPv4I0EN4cvc510OptionInfo10NumberInfoE", "cvc5::OptionInfo::NumberInfo"], [39, 7, 1, "_CPPv4I0EN4cvc510OptionInfo10NumberInfoE", "cvc5::OptionInfo::NumberInfo::T"], [39, 4, 1, "_CPPv4N4cvc510OptionInfo10NumberInfo12currentValueE", "cvc5::OptionInfo::NumberInfo::currentValue"], [39, 4, 1, "_CPPv4N4cvc510OptionInfo10NumberInfo12defaultValueE", "cvc5::OptionInfo::NumberInfo::defaultValue"], [39, 4, 1, "_CPPv4N4cvc510OptionInfo10NumberInfo7maximumE", "cvc5::OptionInfo::NumberInfo::maximum"], [39, 4, 1, "_CPPv4N4cvc510OptionInfo10NumberInfo7minimumE", "cvc5::OptionInfo::NumberInfo::minimum"], [39, 1, 1, "_CPPv4N4cvc510OptionInfo17OptionInfoVariantE", "cvc5::OptionInfo::OptionInfoVariant"], [39, 3, 1, "_CPPv4I0EN4cvc510OptionInfo9ValueInfoE", "cvc5::OptionInfo::ValueInfo"], [39, 7, 1, "_CPPv4I0EN4cvc510OptionInfo9ValueInfoE", "cvc5::OptionInfo::ValueInfo::T"], [39, 4, 1, "_CPPv4N4cvc510OptionInfo9ValueInfo12currentValueE", "cvc5::OptionInfo::ValueInfo::currentValue"], [39, 4, 1, "_CPPv4N4cvc510OptionInfo9ValueInfo12defaultValueE", "cvc5::OptionInfo::ValueInfo::defaultValue"], [39, 3, 1, "_CPPv4N4cvc510OptionInfo8VoidInfoE", "cvc5::OptionInfo::VoidInfo"], [39, 4, 1, "_CPPv4N4cvc510OptionInfo7aliasesE", "cvc5::OptionInfo::aliases"], [39, 5, 1, "_CPPv4NK4cvc510OptionInfo9boolValueEv", "cvc5::OptionInfo::boolValue"], [39, 5, 1, "_CPPv4NK4cvc510OptionInfo11doubleValueEv", "cvc5::OptionInfo::doubleValue"], [39, 5, 1, "_CPPv4NK4cvc510OptionInfo8intValueEv", "cvc5::OptionInfo::intValue"], [39, 4, 1, "_CPPv4N4cvc510OptionInfo8isExpertE", "cvc5::OptionInfo::isExpert"], [39, 4, 1, "_CPPv4N4cvc510OptionInfo9isRegularE", "cvc5::OptionInfo::isRegular"], [39, 4, 1, "_CPPv4N4cvc510OptionInfo4nameE", "cvc5::OptionInfo::name"], [39, 4, 1, "_CPPv4N4cvc510OptionInfo9setByUserE", "cvc5::OptionInfo::setByUser"], [39, 5, 1, "_CPPv4NK4cvc510OptionInfo11stringValueEv", "cvc5::OptionInfo::stringValue"], [39, 5, 1, "_CPPv4NK4cvc510OptionInfo8toStringEv", "cvc5::OptionInfo::toString"], [39, 5, 1, "_CPPv4NK4cvc510OptionInfo9uintValueEv", "cvc5::OptionInfo::uintValue"], [39, 4, 1, "_CPPv4N4cvc510OptionInfo9valueInfoE", "cvc5::OptionInfo::valueInfo"], [40, 3, 1, "_CPPv4N4cvc56PluginE", "cvc5::Plugin"], [72, 3, 1, "_CPPv4N4cvc56PluginE", "cvc5::Plugin"], [40, 5, 1, "_CPPv4N4cvc56Plugin6PluginER11TermManager", "cvc5::Plugin::Plugin"], [72, 5, 1, "_CPPv4N4cvc56Plugin6PluginER11TermManager", "cvc5::Plugin::Plugin"], [40, 6, 1, "_CPPv4N4cvc56Plugin6PluginER11TermManager", "cvc5::Plugin::Plugin::tm"], [72, 6, 1, "_CPPv4N4cvc56Plugin6PluginER11TermManager", "cvc5::Plugin::Plugin::tm"], [40, 5, 1, "_CPPv4N4cvc56Plugin5checkEv", "cvc5::Plugin::check"], [72, 5, 1, "_CPPv4N4cvc56Plugin5checkEv", "cvc5::Plugin::check"], [40, 5, 1, "_CPPv4N4cvc56Plugin7getNameEv", "cvc5::Plugin::getName"], [72, 5, 1, "_CPPv4N4cvc56Plugin7getNameEv", "cvc5::Plugin::getName"], [40, 5, 1, "_CPPv4N4cvc56Plugin15notifySatClauseERK4Term", "cvc5::Plugin::notifySatClause"], [72, 5, 1, "_CPPv4N4cvc56Plugin15notifySatClauseERK4Term", "cvc5::Plugin::notifySatClause"], [40, 6, 1, "_CPPv4N4cvc56Plugin15notifySatClauseERK4Term", "cvc5::Plugin::notifySatClause::clause"], [72, 6, 1, "_CPPv4N4cvc56Plugin15notifySatClauseERK4Term", "cvc5::Plugin::notifySatClause::clause"], [40, 5, 1, "_CPPv4N4cvc56Plugin17notifyTheoryLemmaERK4Term", "cvc5::Plugin::notifyTheoryLemma"], [72, 5, 1, "_CPPv4N4cvc56Plugin17notifyTheoryLemmaERK4Term", "cvc5::Plugin::notifyTheoryLemma"], [40, 6, 1, "_CPPv4N4cvc56Plugin17notifyTheoryLemmaERK4Term", "cvc5::Plugin::notifyTheoryLemma::lemma"], [72, 6, 1, "_CPPv4N4cvc56Plugin17notifyTheoryLemmaERK4Term", "cvc5::Plugin::notifyTheoryLemma::lemma"], [40, 5, 1, "_CPPv4N4cvc56PluginD0Ev", "cvc5::Plugin::~Plugin"], [72, 5, 1, "_CPPv4N4cvc56PluginD0Ev", "cvc5::Plugin::~Plugin"], [41, 3, 1, "_CPPv4N4cvc55ProofE", "cvc5::Proof"], [41, 5, 1, "_CPPv4N4cvc55Proof5ProofEv", "cvc5::Proof::Proof"], [41, 5, 1, "_CPPv4NK4cvc55Proof12getArgumentsEv", "cvc5::Proof::getArguments"], [41, 5, 1, "_CPPv4NK4cvc55Proof11getChildrenEv", "cvc5::Proof::getChildren"], [41, 5, 1, "_CPPv4NK4cvc55Proof9getResultEv", "cvc5::Proof::getResult"], [41, 5, 1, "_CPPv4NK4cvc55Proof14getRewriteRuleEv", "cvc5::Proof::getRewriteRule"], [41, 5, 1, "_CPPv4NK4cvc55Proof7getRuleEv", "cvc5::Proof::getRule"], [41, 5, 1, "_CPPv4NK4cvc55Proof6isNullEv", "cvc5::Proof::isNull"], [41, 5, 1, "_CPPv4NK4cvc55ProofneERK5Proof", "cvc5::Proof::operator!="], [41, 6, 1, "_CPPv4NK4cvc55ProofneERK5Proof", "cvc5::Proof::operator!=::p"], [41, 5, 1, "_CPPv4NK4cvc55ProofeqERK5Proof", "cvc5::Proof::operator=="], [41, 6, 1, "_CPPv4NK4cvc55ProofeqERK5Proof", "cvc5::Proof::operator==::p"], [41, 5, 1, "_CPPv4N4cvc55ProofD0Ev", "cvc5::Proof::~Proof"], [53, 2, 1, "_CPPv4N4cvc516ProofRewriteRuleE", "cvc5::ProofRewriteRule"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18ARITH_ABS_ELIM_INTE", "cvc5::ProofRewriteRule::ARITH_ABS_ELIM_INT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19ARITH_ABS_ELIM_REALE", "cvc5::ProofRewriteRule::ARITH_ABS_ELIM_REAL"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule12ARITH_ABS_EQE", "cvc5::ProofRewriteRule::ARITH_ABS_EQ"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16ARITH_ABS_INT_GTE", "cvc5::ProofRewriteRule::ARITH_ABS_INT_GT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17ARITH_ABS_REAL_GTE", "cvc5::ProofRewriteRule::ARITH_ABS_REAL_GT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19ARITH_COSECENT_ELIME", "cvc5::ProofRewriteRule::ARITH_COSECENT_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17ARITH_COSINE_ELIME", "cvc5::ProofRewriteRule::ARITH_COSINE_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule20ARITH_COTANGENT_ELIME", "cvc5::ProofRewriteRule::ARITH_COTANGENT_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule23ARITH_DIV_ELIM_TO_REAL1E", "cvc5::ProofRewriteRule::ARITH_DIV_ELIM_TO_REAL1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule23ARITH_DIV_ELIM_TO_REAL2E", "cvc5::ProofRewriteRule::ARITH_DIV_ELIM_TO_REAL2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19ARITH_DIV_TOTAL_INTE", "cvc5::ProofRewriteRule::ARITH_DIV_TOTAL_INT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule20ARITH_DIV_TOTAL_REALE", "cvc5::ProofRewriteRule::ARITH_DIV_TOTAL_REAL"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule24ARITH_DIV_TOTAL_ZERO_INTE", "cvc5::ProofRewriteRule::ARITH_DIV_TOTAL_ZERO_INT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule25ARITH_DIV_TOTAL_ZERO_REALE", "cvc5::ProofRewriteRule::ARITH_DIV_TOTAL_ZERO_REAL"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13ARITH_ELIM_GTE", "cvc5::ProofRewriteRule::ARITH_ELIM_GT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17ARITH_ELIM_INT_GTE", "cvc5::ProofRewriteRule::ARITH_ELIM_INT_GT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17ARITH_ELIM_INT_LTE", "cvc5::ProofRewriteRule::ARITH_ELIM_INT_LT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14ARITH_ELIM_LEQE", "cvc5::ProofRewriteRule::ARITH_ELIM_LEQ"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13ARITH_ELIM_LTE", "cvc5::ProofRewriteRule::ARITH_ELIM_LT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17ARITH_EQ_ELIM_INTE", "cvc5::ProofRewriteRule::ARITH_EQ_ELIM_INT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18ARITH_EQ_ELIM_REALE", "cvc5::ProofRewriteRule::ARITH_EQ_ELIM_REAL"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19ARITH_GEQ_NORM1_INTE", "cvc5::ProofRewriteRule::ARITH_GEQ_NORM1_INT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule20ARITH_GEQ_NORM1_REALE", "cvc5::ProofRewriteRule::ARITH_GEQ_NORM1_REAL"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule15ARITH_GEQ_NORM2E", "cvc5::ProofRewriteRule::ARITH_GEQ_NORM2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17ARITH_GEQ_TIGHTENE", "cvc5::ProofRewriteRule::ARITH_GEQ_TIGHTEN"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19ARITH_INT_DIV_TOTALE", "cvc5::ProofRewriteRule::ARITH_INT_DIV_TOTAL"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule23ARITH_INT_DIV_TOTAL_ONEE", "cvc5::ProofRewriteRule::ARITH_INT_DIV_TOTAL_ONE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule24ARITH_INT_DIV_TOTAL_ZEROE", "cvc5::ProofRewriteRule::ARITH_INT_DIV_TOTAL_ZERO"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19ARITH_INT_MOD_TOTALE", "cvc5::ProofRewriteRule::ARITH_INT_MOD_TOTAL"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule23ARITH_INT_MOD_TOTAL_ONEE", "cvc5::ProofRewriteRule::ARITH_INT_MOD_TOTAL_ONE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule24ARITH_INT_MOD_TOTAL_ZEROE", "cvc5::ProofRewriteRule::ARITH_INT_MOD_TOTAL_ZERO"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14ARITH_LEQ_NORME", "cvc5::ProofRewriteRule::ARITH_LEQ_NORM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule15ARITH_MULT_DISTE", "cvc5::ProofRewriteRule::ARITH_MULT_DIST"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18ARITH_MULT_FLATTENE", "cvc5::ProofRewriteRule::ARITH_MULT_FLATTEN"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13ARITH_MUL_ONEE", "cvc5::ProofRewriteRule::ARITH_MUL_ONE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14ARITH_MUL_ZEROE", "cvc5::ProofRewriteRule::ARITH_MUL_ZERO"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16ARITH_PI_NOT_INTE", "cvc5::ProofRewriteRule::ARITH_PI_NOT_INT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18ARITH_PLUS_FLATTENE", "cvc5::ProofRewriteRule::ARITH_PLUS_FLATTEN"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14ARITH_POW_ELIME", "cvc5::ProofRewriteRule::ARITH_POW_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14ARITH_REFL_GEQE", "cvc5::ProofRewriteRule::ARITH_REFL_GEQ"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13ARITH_REFL_GTE", "cvc5::ProofRewriteRule::ARITH_REFL_GT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14ARITH_REFL_LEQE", "cvc5::ProofRewriteRule::ARITH_REFL_LEQ"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13ARITH_REFL_LTE", "cvc5::ProofRewriteRule::ARITH_REFL_LT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17ARITH_SECENT_ELIME", "cvc5::ProofRewriteRule::ARITH_SECENT_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14ARITH_SINE_PI2E", "cvc5::ProofRewriteRule::ARITH_SINE_PI2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule15ARITH_SINE_ZEROE", "cvc5::ProofRewriteRule::ARITH_SINE_ZERO"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule24ARITH_STRING_PRED_ENTAILE", "cvc5::ProofRewriteRule::ARITH_STRING_PRED_ENTAIL"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule29ARITH_STRING_PRED_SAFE_APPROXE", "cvc5::ProofRewriteRule::ARITH_STRING_PRED_SAFE_APPROX"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18ARITH_TANGENT_ELIME", "cvc5::ProofRewriteRule::ARITH_TANGENT_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule25ARITH_TO_INT_ELIM_TO_REALE", "cvc5::ProofRewriteRule::ARITH_TO_INT_ELIM_TO_REAL"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18ARITH_TO_REAL_ELIME", "cvc5::ProofRewriteRule::ARITH_TO_REAL_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule22ARRAYS_EQ_RANGE_EXPANDE", "cvc5::ProofRewriteRule::ARRAYS_EQ_RANGE_EXPAND"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19ARRAYS_SELECT_CONSTE", "cvc5::ProofRewriteRule::ARRAYS_SELECT_CONST"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule21ARRAY_READ_OVER_WRITEE", "cvc5::ProofRewriteRule::ARRAY_READ_OVER_WRITE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule22ARRAY_READ_OVER_WRITE2E", "cvc5::ProofRewriteRule::ARRAY_READ_OVER_WRITE2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule27ARRAY_READ_OVER_WRITE_SPLITE", "cvc5::ProofRewriteRule::ARRAY_READ_OVER_WRITE_SPLIT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule21ARRAY_STORE_OVERWRITEE", "cvc5::ProofRewriteRule::ARRAY_STORE_OVERWRITE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16ARRAY_STORE_SELFE", "cvc5::ProofRewriteRule::ARRAY_STORE_SELF"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11BETA_REDUCEE", "cvc5::ProofRewriteRule::BETA_REDUCE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13BOOL_AND_CONFE", "cvc5::ProofRewriteRule::BOOL_AND_CONF"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14BOOL_AND_CONF2E", "cvc5::ProofRewriteRule::BOOL_AND_CONF2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18BOOL_AND_DE_MORGANE", "cvc5::ProofRewriteRule::BOOL_AND_DE_MORGAN"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14BOOL_AND_FALSEE", "cvc5::ProofRewriteRule::BOOL_AND_FALSE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16BOOL_AND_FLATTENE", "cvc5::ProofRewriteRule::BOOL_AND_FLATTEN"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule20BOOL_DOUBLE_NOT_ELIME", "cvc5::ProofRewriteRule::BOOL_DOUBLE_NOT_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13BOOL_EQ_FALSEE", "cvc5::ProofRewriteRule::BOOL_EQ_FALSE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13BOOL_EQ_NREFLE", "cvc5::ProofRewriteRule::BOOL_EQ_NREFL"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule12BOOL_EQ_TRUEE", "cvc5::ProofRewriteRule::BOOL_EQ_TRUE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule22BOOL_IMPLIES_DE_MORGANE", "cvc5::ProofRewriteRule::BOOL_IMPLIES_DE_MORGAN"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14BOOL_IMPL_ELIME", "cvc5::ProofRewriteRule::BOOL_IMPL_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16BOOL_IMPL_FALSE1E", "cvc5::ProofRewriteRule::BOOL_IMPL_FALSE1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16BOOL_IMPL_FALSE2E", "cvc5::ProofRewriteRule::BOOL_IMPL_FALSE2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule15BOOL_IMPL_TRUE1E", "cvc5::ProofRewriteRule::BOOL_IMPL_TRUE1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule15BOOL_IMPL_TRUE2E", "cvc5::ProofRewriteRule::BOOL_IMPL_TRUE2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17BOOL_NOT_EQ_ELIM1E", "cvc5::ProofRewriteRule::BOOL_NOT_EQ_ELIM1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17BOOL_NOT_EQ_ELIM2E", "cvc5::ProofRewriteRule::BOOL_NOT_EQ_ELIM2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14BOOL_NOT_FALSEE", "cvc5::ProofRewriteRule::BOOL_NOT_FALSE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17BOOL_NOT_ITE_ELIME", "cvc5::ProofRewriteRule::BOOL_NOT_ITE_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13BOOL_NOT_TRUEE", "cvc5::ProofRewriteRule::BOOL_NOT_TRUE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17BOOL_NOT_XOR_ELIME", "cvc5::ProofRewriteRule::BOOL_NOT_XOR_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19BOOL_OR_AND_DISTRIBE", "cvc5::ProofRewriteRule::BOOL_OR_AND_DISTRIB"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17BOOL_OR_DE_MORGANE", "cvc5::ProofRewriteRule::BOOL_OR_DE_MORGAN"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule15BOOL_OR_FLATTENE", "cvc5::ProofRewriteRule::BOOL_OR_FLATTEN"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule12BOOL_OR_TAUTE", "cvc5::ProofRewriteRule::BOOL_OR_TAUT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13BOOL_OR_TAUT2E", "cvc5::ProofRewriteRule::BOOL_OR_TAUT2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule12BOOL_OR_TRUEE", "cvc5::ProofRewriteRule::BOOL_OR_TRUE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13BOOL_XOR_COMME", "cvc5::ProofRewriteRule::BOOL_XOR_COMM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13BOOL_XOR_ELIME", "cvc5::ProofRewriteRule::BOOL_XOR_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14BOOL_XOR_FALSEE", "cvc5::ProofRewriteRule::BOOL_XOR_FALSE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14BOOL_XOR_NREFLE", "cvc5::ProofRewriteRule::BOOL_XOR_NREFL"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13BOOL_XOR_REFLE", "cvc5::ProofRewriteRule::BOOL_XOR_REFL"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13BOOL_XOR_TRUEE", "cvc5::ProofRewriteRule::BOOL_XOR_TRUE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule25BV_ADD_COMBINE_LIKE_TERMSE", "cvc5::ProofRewriteRule::BV_ADD_COMBINE_LIKE_TERMS"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule10BV_ADD_TWOE", "cvc5::ProofRewriteRule::BV_ADD_TWO"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11BV_ADD_ZEROE", "cvc5::ProofRewriteRule::BV_ADD_ZERO"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule20BV_AND_CONCAT_PULLUPE", "cvc5::ProofRewriteRule::BV_AND_CONCAT_PULLUP"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14BV_AND_FLATTENE", "cvc5::ProofRewriteRule::BV_AND_FLATTEN"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule10BV_AND_ONEE", "cvc5::ProofRewriteRule::BV_AND_ONE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17BV_AND_SIMPLIFY_1E", "cvc5::ProofRewriteRule::BV_AND_SIMPLIFY_1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17BV_AND_SIMPLIFY_2E", "cvc5::ProofRewriteRule::BV_AND_SIMPLIFY_2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11BV_AND_ZEROE", "cvc5::ProofRewriteRule::BV_AND_ZERO"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18BV_ASHR_BY_CONST_0E", "cvc5::ProofRewriteRule::BV_ASHR_BY_CONST_0"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18BV_ASHR_BY_CONST_1E", "cvc5::ProofRewriteRule::BV_ASHR_BY_CONST_1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18BV_ASHR_BY_CONST_2E", "cvc5::ProofRewriteRule::BV_ASHR_BY_CONST_2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule12BV_ASHR_ZEROE", "cvc5::ProofRewriteRule::BV_ASHR_ZERO"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18BV_BITWISE_IDEMP_1E", "cvc5::ProofRewriteRule::BV_BITWISE_IDEMP_1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18BV_BITWISE_IDEMP_2E", "cvc5::ProofRewriteRule::BV_BITWISE_IDEMP_2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18BV_BITWISE_NOT_ANDE", "cvc5::ProofRewriteRule::BV_BITWISE_NOT_AND"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17BV_BITWISE_NOT_ORE", "cvc5::ProofRewriteRule::BV_BITWISE_NOT_OR"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18BV_BITWISE_SLICINGE", "cvc5::ProofRewriteRule::BV_BITWISE_SLICING"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18BV_COMMUTATIVE_ADDE", "cvc5::ProofRewriteRule::BV_COMMUTATIVE_ADD"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18BV_COMMUTATIVE_ANDE", "cvc5::ProofRewriteRule::BV_COMMUTATIVE_AND"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18BV_COMMUTATIVE_MULE", "cvc5::ProofRewriteRule::BV_COMMUTATIVE_MUL"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17BV_COMMUTATIVE_ORE", "cvc5::ProofRewriteRule::BV_COMMUTATIVE_OR"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18BV_COMMUTATIVE_XORE", "cvc5::ProofRewriteRule::BV_COMMUTATIVE_XOR"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17BV_COMP_ELIMINATEE", "cvc5::ProofRewriteRule::BV_COMP_ELIMINATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule23BV_CONCAT_EXTRACT_MERGEE", "cvc5::ProofRewriteRule::BV_CONCAT_EXTRACT_MERGE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17BV_CONCAT_FLATTENE", "cvc5::ProofRewriteRule::BV_CONCAT_FLATTEN"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule21BV_CONCAT_MERGE_CONSTE", "cvc5::ProofRewriteRule::BV_CONCAT_MERGE_CONST"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17BV_CONCAT_TO_MULTE", "cvc5::ProofRewriteRule::BV_CONCAT_TO_MULT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19BV_EQ_EXTRACT_ELIM1E", "cvc5::ProofRewriteRule::BV_EQ_EXTRACT_ELIM1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19BV_EQ_EXTRACT_ELIM2E", "cvc5::ProofRewriteRule::BV_EQ_EXTRACT_ELIM2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19BV_EQ_EXTRACT_ELIM3E", "cvc5::ProofRewriteRule::BV_EQ_EXTRACT_ELIM3"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule22BV_EXTRACT_BITWISE_ANDE", "cvc5::ProofRewriteRule::BV_EXTRACT_BITWISE_AND"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule21BV_EXTRACT_BITWISE_ORE", "cvc5::ProofRewriteRule::BV_EXTRACT_BITWISE_OR"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule22BV_EXTRACT_BITWISE_XORE", "cvc5::ProofRewriteRule::BV_EXTRACT_BITWISE_XOR"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19BV_EXTRACT_CONCAT_1E", "cvc5::ProofRewriteRule::BV_EXTRACT_CONCAT_1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19BV_EXTRACT_CONCAT_2E", "cvc5::ProofRewriteRule::BV_EXTRACT_CONCAT_2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19BV_EXTRACT_CONCAT_3E", "cvc5::ProofRewriteRule::BV_EXTRACT_CONCAT_3"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19BV_EXTRACT_CONCAT_4E", "cvc5::ProofRewriteRule::BV_EXTRACT_CONCAT_4"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18BV_EXTRACT_EXTRACTE", "cvc5::ProofRewriteRule::BV_EXTRACT_EXTRACT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule27BV_EXTRACT_MULT_LEADING_BITE", "cvc5::ProofRewriteRule::BV_EXTRACT_MULT_LEADING_BIT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14BV_EXTRACT_NOTE", "cvc5::ProofRewriteRule::BV_EXTRACT_NOT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule24BV_EXTRACT_SIGN_EXTEND_1E", "cvc5::ProofRewriteRule::BV_EXTRACT_SIGN_EXTEND_1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule24BV_EXTRACT_SIGN_EXTEND_2E", "cvc5::ProofRewriteRule::BV_EXTRACT_SIGN_EXTEND_2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule24BV_EXTRACT_SIGN_EXTEND_3E", "cvc5::ProofRewriteRule::BV_EXTRACT_SIGN_EXTEND_3"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16BV_EXTRACT_WHOLEE", "cvc5::ProofRewriteRule::BV_EXTRACT_WHOLE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule23BV_ITE_CONST_CHILDREN_1E", "cvc5::ProofRewriteRule::BV_ITE_CONST_CHILDREN_1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule23BV_ITE_CONST_CHILDREN_2E", "cvc5::ProofRewriteRule::BV_ITE_CONST_CHILDREN_2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule21BV_ITE_EQUAL_CHILDRENE", "cvc5::ProofRewriteRule::BV_ITE_EQUAL_CHILDREN"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19BV_ITE_EQUAL_COND_1E", "cvc5::ProofRewriteRule::BV_ITE_EQUAL_COND_1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19BV_ITE_EQUAL_COND_2E", "cvc5::ProofRewriteRule::BV_ITE_EQUAL_COND_2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19BV_ITE_EQUAL_COND_3E", "cvc5::ProofRewriteRule::BV_ITE_EQUAL_COND_3"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule22BV_ITE_MERGE_ELSE_ELSEE", "cvc5::ProofRewriteRule::BV_ITE_MERGE_ELSE_ELSE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule20BV_ITE_MERGE_ELSE_IFE", "cvc5::ProofRewriteRule::BV_ITE_MERGE_ELSE_IF"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule22BV_ITE_MERGE_THEN_ELSEE", "cvc5::ProofRewriteRule::BV_ITE_MERGE_THEN_ELSE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule20BV_ITE_MERGE_THEN_IFE", "cvc5::ProofRewriteRule::BV_ITE_MERGE_THEN_IF"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18BV_LSHR_BY_CONST_0E", "cvc5::ProofRewriteRule::BV_LSHR_BY_CONST_0"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18BV_LSHR_BY_CONST_1E", "cvc5::ProofRewriteRule::BV_LSHR_BY_CONST_1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18BV_LSHR_BY_CONST_2E", "cvc5::ProofRewriteRule::BV_LSHR_BY_CONST_2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule12BV_LSHR_ZEROE", "cvc5::ProofRewriteRule::BV_LSHR_ZERO"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule10BV_LT_SELFE", "cvc5::ProofRewriteRule::BV_LT_SELF"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule22BV_MERGE_SIGN_EXTEND_1E", "cvc5::ProofRewriteRule::BV_MERGE_SIGN_EXTEND_1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule22BV_MERGE_SIGN_EXTEND_2E", "cvc5::ProofRewriteRule::BV_MERGE_SIGN_EXTEND_2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule22BV_MERGE_SIGN_EXTEND_3E", "cvc5::ProofRewriteRule::BV_MERGE_SIGN_EXTEND_3"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17BV_MULT_DISTRIB_1E", "cvc5::ProofRewriteRule::BV_MULT_DISTRIB_1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17BV_MULT_DISTRIB_2E", "cvc5::ProofRewriteRule::BV_MULT_DISTRIB_2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule25BV_MULT_DISTRIB_CONST_ADDE", "cvc5::ProofRewriteRule::BV_MULT_DISTRIB_CONST_ADD"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule25BV_MULT_DISTRIB_CONST_NEGE", "cvc5::ProofRewriteRule::BV_MULT_DISTRIB_CONST_NEG"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule25BV_MULT_DISTRIB_CONST_SUBE", "cvc5::ProofRewriteRule::BV_MULT_DISTRIB_CONST_SUB"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14BV_MULT_POW2_1E", "cvc5::ProofRewriteRule::BV_MULT_POW2_1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14BV_MULT_POW2_2E", "cvc5::ProofRewriteRule::BV_MULT_POW2_2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule15BV_MULT_POW2_2BE", "cvc5::ProofRewriteRule::BV_MULT_POW2_2B"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16BV_MULT_SIMPLIFYE", "cvc5::ProofRewriteRule::BV_MULT_SIMPLIFY"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18BV_MULT_SLT_MULT_1E", "cvc5::ProofRewriteRule::BV_MULT_SLT_MULT_1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18BV_MULT_SLT_MULT_2E", "cvc5::ProofRewriteRule::BV_MULT_SLT_MULT_2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14BV_MUL_FLATTENE", "cvc5::ProofRewriteRule::BV_MUL_FLATTEN"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule10BV_MUL_ONEE", "cvc5::ProofRewriteRule::BV_MUL_ONE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11BV_MUL_ZEROE", "cvc5::ProofRewriteRule::BV_MUL_ZERO"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17BV_NAND_ELIMINATEE", "cvc5::ProofRewriteRule::BV_NAND_ELIMINATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule10BV_NEG_ADDE", "cvc5::ProofRewriteRule::BV_NEG_ADD"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule12BV_NEG_IDEMPE", "cvc5::ProofRewriteRule::BV_NEG_IDEMP"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11BV_NEG_MULTE", "cvc5::ProofRewriteRule::BV_NEG_MULT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule10BV_NEG_SUBE", "cvc5::ProofRewriteRule::BV_NEG_SUB"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16BV_NOR_ELIMINATEE", "cvc5::ProofRewriteRule::BV_NOR_ELIMINATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule12BV_NOT_IDEMPE", "cvc5::ProofRewriteRule::BV_NOT_IDEMP"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule10BV_NOT_NEQE", "cvc5::ProofRewriteRule::BV_NOT_NEQ"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule10BV_NOT_SLEE", "cvc5::ProofRewriteRule::BV_NOT_SLE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule10BV_NOT_ULEE", "cvc5::ProofRewriteRule::BV_NOT_ULE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule10BV_NOT_ULTE", "cvc5::ProofRewriteRule::BV_NOT_ULT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule10BV_NOT_XORE", "cvc5::ProofRewriteRule::BV_NOT_XOR"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19BV_OR_CONCAT_PULLUPE", "cvc5::ProofRewriteRule::BV_OR_CONCAT_PULLUP"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13BV_OR_FLATTENE", "cvc5::ProofRewriteRule::BV_OR_FLATTEN"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule9BV_OR_ONEE", "cvc5::ProofRewriteRule::BV_OR_ONE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16BV_OR_SIMPLIFY_1E", "cvc5::ProofRewriteRule::BV_OR_SIMPLIFY_1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16BV_OR_SIMPLIFY_2E", "cvc5::ProofRewriteRule::BV_OR_SIMPLIFY_2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule10BV_OR_ZEROE", "cvc5::ProofRewriteRule::BV_OR_ZERO"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19BV_REDAND_ELIMINATEE", "cvc5::ProofRewriteRule::BV_REDAND_ELIMINATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18BV_REDOR_ELIMINATEE", "cvc5::ProofRewriteRule::BV_REDOR_ELIMINATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14BV_REPEAT_ELIME", "cvc5::ProofRewriteRule::BV_REPEAT_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule26BV_ROTATE_LEFT_ELIMINATE_1E", "cvc5::ProofRewriteRule::BV_ROTATE_LEFT_ELIMINATE_1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule26BV_ROTATE_LEFT_ELIMINATE_2E", "cvc5::ProofRewriteRule::BV_ROTATE_LEFT_ELIMINATE_2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule27BV_ROTATE_RIGHT_ELIMINATE_1E", "cvc5::ProofRewriteRule::BV_ROTATE_RIGHT_ELIMINATE_1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule27BV_ROTATE_RIGHT_ELIMINATE_2E", "cvc5::ProofRewriteRule::BV_ROTATE_RIGHT_ELIMINATE_2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18BV_SADDO_ELIMINATEE", "cvc5::ProofRewriteRule::BV_SADDO_ELIMINATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18BV_SDIVO_ELIMINATEE", "cvc5::ProofRewriteRule::BV_SDIVO_ELIMINATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17BV_SDIV_ELIMINATEE", "cvc5::ProofRewriteRule::BV_SDIV_ELIMINATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule35BV_SDIV_ELIMINATE_FEWER_BITWISE_OPSE", "cvc5::ProofRewriteRule::BV_SDIV_ELIMINATE_FEWER_BITWISE_OPS"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16BV_SGE_ELIMINATEE", "cvc5::ProofRewriteRule::BV_SGE_ELIMINATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16BV_SGT_ELIMINATEE", "cvc5::ProofRewriteRule::BV_SGT_ELIMINATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17BV_SHL_BY_CONST_0E", "cvc5::ProofRewriteRule::BV_SHL_BY_CONST_0"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17BV_SHL_BY_CONST_1E", "cvc5::ProofRewriteRule::BV_SHL_BY_CONST_1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17BV_SHL_BY_CONST_2E", "cvc5::ProofRewriteRule::BV_SHL_BY_CONST_2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11BV_SHL_ZEROE", "cvc5::ProofRewriteRule::BV_SHL_ZERO"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule24BV_SIGN_EXTEND_ELIMINATEE", "cvc5::ProofRewriteRule::BV_SIGN_EXTEND_ELIMINATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule26BV_SIGN_EXTEND_ELIMINATE_0E", "cvc5::ProofRewriteRule::BV_SIGN_EXTEND_ELIMINATE_0"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule25BV_SIGN_EXTEND_EQ_CONST_1E", "cvc5::ProofRewriteRule::BV_SIGN_EXTEND_EQ_CONST_1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule25BV_SIGN_EXTEND_EQ_CONST_2E", "cvc5::ProofRewriteRule::BV_SIGN_EXTEND_EQ_CONST_2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule26BV_SIGN_EXTEND_ULT_CONST_1E", "cvc5::ProofRewriteRule::BV_SIGN_EXTEND_ULT_CONST_1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule26BV_SIGN_EXTEND_ULT_CONST_2E", "cvc5::ProofRewriteRule::BV_SIGN_EXTEND_ULT_CONST_2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule26BV_SIGN_EXTEND_ULT_CONST_3E", "cvc5::ProofRewriteRule::BV_SIGN_EXTEND_ULT_CONST_3"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule26BV_SIGN_EXTEND_ULT_CONST_4E", "cvc5::ProofRewriteRule::BV_SIGN_EXTEND_ULT_CONST_4"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16BV_SLE_ELIMINATEE", "cvc5::ProofRewriteRule::BV_SLE_ELIMINATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11BV_SLE_SELFE", "cvc5::ProofRewriteRule::BV_SLE_SELF"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16BV_SLT_ELIMINATEE", "cvc5::ProofRewriteRule::BV_SLT_ELIMINATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11BV_SLT_ZEROE", "cvc5::ProofRewriteRule::BV_SLT_ZERO"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17BV_SMOD_ELIMINATEE", "cvc5::ProofRewriteRule::BV_SMOD_ELIMINATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule35BV_SMOD_ELIMINATE_FEWER_BITWISE_OPSE", "cvc5::ProofRewriteRule::BV_SMOD_ELIMINATE_FEWER_BITWISE_OPS"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18BV_SMULO_ELIMINATEE", "cvc5::ProofRewriteRule::BV_SMULO_ELIMINATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17BV_SREM_ELIMINATEE", "cvc5::ProofRewriteRule::BV_SREM_ELIMINATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule35BV_SREM_ELIMINATE_FEWER_BITWISE_OPSE", "cvc5::ProofRewriteRule::BV_SREM_ELIMINATE_FEWER_BITWISE_OPS"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18BV_SSUBO_ELIMINATEE", "cvc5::ProofRewriteRule::BV_SSUBO_ELIMINATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16BV_SUB_ELIMINATEE", "cvc5::ProofRewriteRule::BV_SUB_ELIMINATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14BV_TO_NAT_ELIME", "cvc5::ProofRewriteRule::BV_TO_NAT_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18BV_UADDO_ELIMINATEE", "cvc5::ProofRewriteRule::BV_UADDO_ELIMINATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11BV_UDIV_ONEE", "cvc5::ProofRewriteRule::BV_UDIV_ONE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule20BV_UDIV_POW2_NOT_ONEE", "cvc5::ProofRewriteRule::BV_UDIV_POW2_NOT_ONE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule12BV_UDIV_ZEROE", "cvc5::ProofRewriteRule::BV_UDIV_ZERO"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16BV_UGE_ELIMINATEE", "cvc5::ProofRewriteRule::BV_UGE_ELIMINATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16BV_UGT_ELIMINATEE", "cvc5::ProofRewriteRule::BV_UGT_ELIMINATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11BV_UGT_UREME", "cvc5::ProofRewriteRule::BV_UGT_UREM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16BV_ULE_ELIMINATEE", "cvc5::ProofRewriteRule::BV_ULE_ELIMINATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule10BV_ULE_MAXE", "cvc5::ProofRewriteRule::BV_ULE_MAX"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11BV_ULE_SELFE", "cvc5::ProofRewriteRule::BV_ULE_SELF"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11BV_ULE_ZEROE", "cvc5::ProofRewriteRule::BV_ULE_ZERO"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14BV_ULT_ADD_ONEE", "cvc5::ProofRewriteRule::BV_ULT_ADD_ONE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule10BV_ULT_ONEE", "cvc5::ProofRewriteRule::BV_ULT_ONE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11BV_ULT_ONESE", "cvc5::ProofRewriteRule::BV_ULT_ONES"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11BV_ULT_SELFE", "cvc5::ProofRewriteRule::BV_ULT_SELF"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13BV_ULT_ZERO_1E", "cvc5::ProofRewriteRule::BV_ULT_ZERO_1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13BV_ULT_ZERO_2E", "cvc5::ProofRewriteRule::BV_ULT_ZERO_2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18BV_UMULO_ELIMINATEE", "cvc5::ProofRewriteRule::BV_UMULO_ELIMINATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11BV_UREM_ONEE", "cvc5::ProofRewriteRule::BV_UREM_ONE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule20BV_UREM_POW2_NOT_ONEE", "cvc5::ProofRewriteRule::BV_UREM_POW2_NOT_ONE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule12BV_UREM_SELFE", "cvc5::ProofRewriteRule::BV_UREM_SELF"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18BV_USUBO_ELIMINATEE", "cvc5::ProofRewriteRule::BV_USUBO_ELIMINATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17BV_XNOR_ELIMINATEE", "cvc5::ProofRewriteRule::BV_XNOR_ELIMINATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule20BV_XOR_CONCAT_PULLUPE", "cvc5::ProofRewriteRule::BV_XOR_CONCAT_PULLUP"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16BV_XOR_DUPLICATEE", "cvc5::ProofRewriteRule::BV_XOR_DUPLICATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14BV_XOR_FLATTENE", "cvc5::ProofRewriteRule::BV_XOR_FLATTEN"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule10BV_XOR_NOTE", "cvc5::ProofRewriteRule::BV_XOR_NOT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11BV_XOR_ONESE", "cvc5::ProofRewriteRule::BV_XOR_ONES"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17BV_XOR_SIMPLIFY_1E", "cvc5::ProofRewriteRule::BV_XOR_SIMPLIFY_1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17BV_XOR_SIMPLIFY_2E", "cvc5::ProofRewriteRule::BV_XOR_SIMPLIFY_2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17BV_XOR_SIMPLIFY_3E", "cvc5::ProofRewriteRule::BV_XOR_SIMPLIFY_3"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11BV_XOR_ZEROE", "cvc5::ProofRewriteRule::BV_XOR_ZERO"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule24BV_ZERO_EXTEND_ELIMINATEE", "cvc5::ProofRewriteRule::BV_ZERO_EXTEND_ELIMINATE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule26BV_ZERO_EXTEND_ELIMINATE_0E", "cvc5::ProofRewriteRule::BV_ZERO_EXTEND_ELIMINATE_0"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule25BV_ZERO_EXTEND_EQ_CONST_1E", "cvc5::ProofRewriteRule::BV_ZERO_EXTEND_EQ_CONST_1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule25BV_ZERO_EXTEND_EQ_CONST_2E", "cvc5::ProofRewriteRule::BV_ZERO_EXTEND_EQ_CONST_2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11BV_ZERO_ULEE", "cvc5::ProofRewriteRule::BV_ZERO_ULE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule20DISTINCT_BINARY_ELIME", "cvc5::ProofRewriteRule::DISTINCT_BINARY_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule22DISTINCT_CARD_CONFLICTE", "cvc5::ProofRewriteRule::DISTINCT_CARD_CONFLICT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13DISTINCT_ELIME", "cvc5::ProofRewriteRule::DISTINCT_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule20DT_COLLAPSE_SELECTORE", "cvc5::ProofRewriteRule::DT_COLLAPSE_SELECTOR"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18DT_COLLAPSE_TESTERE", "cvc5::ProofRewriteRule::DT_COLLAPSE_TESTER"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule28DT_COLLAPSE_TESTER_SINGLETONE", "cvc5::ProofRewriteRule::DT_COLLAPSE_TESTER_SINGLETON"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19DT_COLLAPSE_UPDATERE", "cvc5::ProofRewriteRule::DT_COLLAPSE_UPDATER"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule10DT_CONS_EQE", "cvc5::ProofRewriteRule::DT_CONS_EQ"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule8DT_CYCLEE", "cvc5::ProofRewriteRule::DT_CYCLE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule7DT_INSTE", "cvc5::ProofRewriteRule::DT_INST"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13DT_MATCH_ELIME", "cvc5::ProofRewriteRule::DT_MATCH_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule15DT_UPDATER_ELIME", "cvc5::ProofRewriteRule::DT_UPDATER_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11EQ_COND_DEQE", "cvc5::ProofRewriteRule::EQ_COND_DEQ"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11EQ_ITE_LIFTE", "cvc5::ProofRewriteRule::EQ_ITE_LIFT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule7EQ_REFLE", "cvc5::ProofRewriteRule::EQ_REFL"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule7EQ_SYMME", "cvc5::ProofRewriteRule::EQ_SYMM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11EXISTS_ELIME", "cvc5::ProofRewriteRule::EXISTS_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14INT_TO_BV_ELIME", "cvc5::ProofRewriteRule::INT_TO_BV_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14ITE_ELSE_FALSEE", "cvc5::ProofRewriteRule::ITE_ELSE_FALSE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18ITE_ELSE_LOOKAHEADE", "cvc5::ProofRewriteRule::ITE_ELSE_LOOKAHEAD"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule27ITE_ELSE_LOOKAHEAD_NOT_SELFE", "cvc5::ProofRewriteRule::ITE_ELSE_LOOKAHEAD_NOT_SELF"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule23ITE_ELSE_LOOKAHEAD_SELFE", "cvc5::ProofRewriteRule::ITE_ELSE_LOOKAHEAD_SELF"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule22ITE_ELSE_NEG_LOOKAHEADE", "cvc5::ProofRewriteRule::ITE_ELSE_NEG_LOOKAHEAD"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13ITE_ELSE_TRUEE", "cvc5::ProofRewriteRule::ITE_ELSE_TRUE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13ITE_EQ_BRANCHE", "cvc5::ProofRewriteRule::ITE_EQ_BRANCH"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule10ITE_EXPANDE", "cvc5::ProofRewriteRule::ITE_EXPAND"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14ITE_FALSE_CONDE", "cvc5::ProofRewriteRule::ITE_FALSE_COND"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14ITE_NEG_BRANCHE", "cvc5::ProofRewriteRule::ITE_NEG_BRANCH"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule12ITE_NOT_CONDE", "cvc5::ProofRewriteRule::ITE_NOT_COND"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14ITE_THEN_FALSEE", "cvc5::ProofRewriteRule::ITE_THEN_FALSE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18ITE_THEN_LOOKAHEADE", "cvc5::ProofRewriteRule::ITE_THEN_LOOKAHEAD"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule27ITE_THEN_LOOKAHEAD_NOT_SELFE", "cvc5::ProofRewriteRule::ITE_THEN_LOOKAHEAD_NOT_SELF"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule23ITE_THEN_LOOKAHEAD_SELFE", "cvc5::ProofRewriteRule::ITE_THEN_LOOKAHEAD_SELF"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule22ITE_THEN_NEG_LOOKAHEADE", "cvc5::ProofRewriteRule::ITE_THEN_NEG_LOOKAHEAD"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13ITE_THEN_TRUEE", "cvc5::ProofRewriteRule::ITE_THEN_TRUE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13ITE_TRUE_CONDE", "cvc5::ProofRewriteRule::ITE_TRUE_COND"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11LAMBDA_ELIME", "cvc5::ProofRewriteRule::LAMBDA_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule30MACRO_ARITH_STRING_PRED_ENTAILE", "cvc5::ProofRewriteRule::MACRO_ARITH_STRING_PRED_ENTAIL"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule28MACRO_ARRAYS_DISTINCT_ARRAYSE", "cvc5::ProofRewriteRule::MACRO_ARRAYS_DISTINCT_ARRAYS"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule31MACRO_ARRAYS_NORMALIZE_CONSTANTE", "cvc5::ProofRewriteRule::MACRO_ARRAYS_NORMALIZE_CONSTANT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19MACRO_BOOL_NNF_NORME", "cvc5::ProofRewriteRule::MACRO_BOOL_NNF_NORM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule24MACRO_QUANT_MERGE_PRENEXE", "cvc5::ProofRewriteRule::MACRO_QUANT_MERGE_PRENEX"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule21MACRO_QUANT_MINISCOPEE", "cvc5::ProofRewriteRule::MACRO_QUANT_MINISCOPE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule34MACRO_QUANT_PARTITION_CONNECTED_FVE", "cvc5::ProofRewriteRule::MACRO_QUANT_PARTITION_CONNECTED_FV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18MACRO_QUANT_PRENEXE", "cvc5::ProofRewriteRule::MACRO_QUANT_PRENEX"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule24MACRO_QUANT_REWRITE_BODYE", "cvc5::ProofRewriteRule::MACRO_QUANT_REWRITE_BODY"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule23MACRO_QUANT_VAR_ELIM_EQE", "cvc5::ProofRewriteRule::MACRO_QUANT_VAR_ELIM_EQ"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule25MACRO_QUANT_VAR_ELIM_INEQE", "cvc5::ProofRewriteRule::MACRO_QUANT_VAR_ELIM_INEQ"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule29MACRO_SUBSTR_STRIP_SYM_LENGTHE", "cvc5::ProofRewriteRule::MACRO_SUBSTR_STRIP_SYM_LENGTH"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule4NONEE", "cvc5::ProofRewriteRule::NONE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14QUANT_DT_SPLITE", "cvc5::ProofRewriteRule::QUANT_DT_SPLIT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18QUANT_MERGE_PRENEXE", "cvc5::ProofRewriteRule::QUANT_MERGE_PRENEX"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19QUANT_MINISCOPE_ANDE", "cvc5::ProofRewriteRule::QUANT_MINISCOPE_AND"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19QUANT_MINISCOPE_ITEE", "cvc5::ProofRewriteRule::QUANT_MINISCOPE_ITE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18QUANT_MINISCOPE_ORE", "cvc5::ProofRewriteRule::QUANT_MINISCOPE_OR"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17QUANT_UNUSED_VARSE", "cvc5::ProofRewriteRule::QUANT_UNUSED_VARS"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17QUANT_VAR_ELIM_EQE", "cvc5::ProofRewriteRule::QUANT_VAR_ELIM_EQ"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11RE_ALL_ELIME", "cvc5::ProofRewriteRule::RE_ALL_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13RE_CONCAT_EMPE", "cvc5::ProofRewriteRule::RE_CONCAT_EMP"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17RE_CONCAT_FLATTENE", "cvc5::ProofRewriteRule::RE_CONCAT_FLATTEN"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule15RE_CONCAT_MERGEE", "cvc5::ProofRewriteRule::RE_CONCAT_MERGE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14RE_CONCAT_NONEE", "cvc5::ProofRewriteRule::RE_CONCAT_NONE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule21RE_CONCAT_STAR_REPEATE", "cvc5::ProofRewriteRule::RE_CONCAT_STAR_REPEAT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19RE_CONCAT_STAR_SWAPE", "cvc5::ProofRewriteRule::RE_CONCAT_STAR_SWAP"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule12RE_DIFF_ELIME", "cvc5::ProofRewriteRule::RE_DIFF_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule12RE_INTER_ALLE", "cvc5::ProofRewriteRule::RE_INTER_ALL"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16RE_INTER_CSTRINGE", "cvc5::ProofRewriteRule::RE_INTER_CSTRING"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule20RE_INTER_CSTRING_NEGE", "cvc5::ProofRewriteRule::RE_INTER_CSTRING_NEG"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule12RE_INTER_DUPE", "cvc5::ProofRewriteRule::RE_INTER_DUP"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16RE_INTER_FLATTENE", "cvc5::ProofRewriteRule::RE_INTER_FLATTEN"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13RE_INTER_NONEE", "cvc5::ProofRewriteRule::RE_INTER_NONE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule24RE_INTER_UNION_INCLUSIONE", "cvc5::ProofRewriteRule::RE_INTER_UNION_INCLUSION"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule10RE_IN_COMPE", "cvc5::ProofRewriteRule::RE_IN_COMP"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13RE_IN_CSTRINGE", "cvc5::ProofRewriteRule::RE_IN_CSTRING"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11RE_IN_EMPTYE", "cvc5::ProofRewriteRule::RE_IN_EMPTY"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11RE_IN_SIGMAE", "cvc5::ProofRewriteRule::RE_IN_SIGMA"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16RE_IN_SIGMA_STARE", "cvc5::ProofRewriteRule::RE_IN_SIGMA_STAR"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule12RE_LOOP_ELIME", "cvc5::ProofRewriteRule::RE_LOOP_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11RE_LOOP_NEGE", "cvc5::ProofRewriteRule::RE_LOOP_NEG"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11RE_OPT_ELIME", "cvc5::ProofRewriteRule::RE_OPT_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule12RE_STAR_NONEE", "cvc5::ProofRewriteRule::RE_STAR_NONE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule12RE_UNION_ALLE", "cvc5::ProofRewriteRule::RE_UNION_ALL"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule12RE_UNION_DUPE", "cvc5::ProofRewriteRule::RE_UNION_DUP"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16RE_UNION_FLATTENE", "cvc5::ProofRewriteRule::RE_UNION_FLATTEN"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13RE_UNION_NONEE", "cvc5::ProofRewriteRule::RE_UNION_NONE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13SEQ_LEN_EMPTYE", "cvc5::ProofRewriteRule::SEQ_LEN_EMPTY"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11SEQ_LEN_REVE", "cvc5::ProofRewriteRule::SEQ_LEN_REV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule12SEQ_LEN_UNITE", "cvc5::ProofRewriteRule::SEQ_LEN_UNIT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule12SEQ_NTH_UNITE", "cvc5::ProofRewriteRule::SEQ_NTH_UNIT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14SEQ_REV_CONCATE", "cvc5::ProofRewriteRule::SEQ_REV_CONCAT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11SEQ_REV_REVE", "cvc5::ProofRewriteRule::SEQ_REV_REV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule12SEQ_REV_UNITE", "cvc5::ProofRewriteRule::SEQ_REV_UNIT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13SETS_CARD_EMPE", "cvc5::ProofRewriteRule::SETS_CARD_EMP"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule15SETS_CARD_MINUSE", "cvc5::ProofRewriteRule::SETS_CARD_MINUS"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19SETS_CARD_SINGLETONE", "cvc5::ProofRewriteRule::SETS_CARD_SINGLETON"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule15SETS_CARD_UNIONE", "cvc5::ProofRewriteRule::SETS_CARD_UNION"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule21SETS_CHOOSE_SINGLETONE", "cvc5::ProofRewriteRule::SETS_CHOOSE_SINGLETON"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule21SETS_EQ_SINGLETON_EMPE", "cvc5::ProofRewriteRule::SETS_EQ_SINGLETON_EMP"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16SETS_INSERT_ELIME", "cvc5::ProofRewriteRule::SETS_INSERT_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule15SETS_INTER_COMME", "cvc5::ProofRewriteRule::SETS_INTER_COMM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule15SETS_INTER_EMP1E", "cvc5::ProofRewriteRule::SETS_INTER_EMP1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule15SETS_INTER_EMP2E", "cvc5::ProofRewriteRule::SETS_INTER_EMP2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17SETS_INTER_MEMBERE", "cvc5::ProofRewriteRule::SETS_INTER_MEMBER"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18SETS_IS_EMPTY_ELIME", "cvc5::ProofRewriteRule::SETS_IS_EMPTY_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18SETS_IS_EMPTY_EVALE", "cvc5::ProofRewriteRule::SETS_IS_EMPTY_EVAL"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule15SETS_MEMBER_EMPE", "cvc5::ProofRewriteRule::SETS_MEMBER_EMP"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule21SETS_MEMBER_SINGLETONE", "cvc5::ProofRewriteRule::SETS_MEMBER_SINGLETON"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule15SETS_MINUS_EMP1E", "cvc5::ProofRewriteRule::SETS_MINUS_EMP1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule15SETS_MINUS_EMP2E", "cvc5::ProofRewriteRule::SETS_MINUS_EMP2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17SETS_MINUS_MEMBERE", "cvc5::ProofRewriteRule::SETS_MINUS_MEMBER"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule15SETS_MINUS_SELFE", "cvc5::ProofRewriteRule::SETS_MINUS_SELF"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16SETS_SUBSET_ELIME", "cvc5::ProofRewriteRule::SETS_SUBSET_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule15SETS_UNION_COMME", "cvc5::ProofRewriteRule::SETS_UNION_COMM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule15SETS_UNION_EMP1E", "cvc5::ProofRewriteRule::SETS_UNION_EMP1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule15SETS_UNION_EMP2E", "cvc5::ProofRewriteRule::SETS_UNION_EMP2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17SETS_UNION_MEMBERE", "cvc5::ProofRewriteRule::SETS_UNION_MEMBER"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11STR_AT_ELIME", "cvc5::ProofRewriteRule::STR_AT_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16STR_CONCAT_CLASHE", "cvc5::ProofRewriteRule::STR_CONCAT_CLASH"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17STR_CONCAT_CLASH2E", "cvc5::ProofRewriteRule::STR_CONCAT_CLASH2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule21STR_CONCAT_CLASH2_REVE", "cvc5::ProofRewriteRule::STR_CONCAT_CLASH2_REV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule21STR_CONCAT_CLASH_CHARE", "cvc5::ProofRewriteRule::STR_CONCAT_CLASH_CHAR"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule25STR_CONCAT_CLASH_CHAR_REVE", "cvc5::ProofRewriteRule::STR_CONCAT_CLASH_CHAR_REV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule20STR_CONCAT_CLASH_REVE", "cvc5::ProofRewriteRule::STR_CONCAT_CLASH_REV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18STR_CONCAT_FLATTENE", "cvc5::ProofRewriteRule::STR_CONCAT_FLATTEN"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule21STR_CONCAT_FLATTEN_EQE", "cvc5::ProofRewriteRule::STR_CONCAT_FLATTEN_EQ"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule25STR_CONCAT_FLATTEN_EQ_REVE", "cvc5::ProofRewriteRule::STR_CONCAT_FLATTEN_EQ_REV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16STR_CONCAT_UNIFYE", "cvc5::ProofRewriteRule::STR_CONCAT_UNIFY"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule21STR_CONCAT_UNIFY_BASEE", "cvc5::ProofRewriteRule::STR_CONCAT_UNIFY_BASE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule25STR_CONCAT_UNIFY_BASE_REVE", "cvc5::ProofRewriteRule::STR_CONCAT_UNIFY_BASE_REV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule20STR_CONCAT_UNIFY_REVE", "cvc5::ProofRewriteRule::STR_CONCAT_UNIFY_REV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule24STR_CONTAINS_CONCAT_FINDE", "cvc5::ProofRewriteRule::STR_CONTAINS_CONCAT_FIND"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16STR_CONTAINS_EMPE", "cvc5::ProofRewriteRule::STR_CONTAINS_EMP"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19STR_CONTAINS_IS_EMPE", "cvc5::ProofRewriteRule::STR_CONTAINS_IS_EMP"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule23STR_CONTAINS_LEQ_LEN_EQE", "cvc5::ProofRewriteRule::STR_CONTAINS_LEQ_LEN_EQ"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19STR_CONTAINS_LT_LENE", "cvc5::ProofRewriteRule::STR_CONTAINS_LT_LEN"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17STR_CONTAINS_REFLE", "cvc5::ProofRewriteRule::STR_CONTAINS_REFL"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule23STR_CONTAINS_SPLIT_CHARE", "cvc5::ProofRewriteRule::STR_CONTAINS_SPLIT_CHAR"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16STR_EQ_CTN_FALSEE", "cvc5::ProofRewriteRule::STR_EQ_CTN_FALSE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule22STR_EQ_CTN_FULL_FALSE1E", "cvc5::ProofRewriteRule::STR_EQ_CTN_FULL_FALSE1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule22STR_EQ_CTN_FULL_FALSE2E", "cvc5::ProofRewriteRule::STR_EQ_CTN_FULL_FALSE2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule24STR_INDEXOF_CONTAINS_PREE", "cvc5::ProofRewriteRule::STR_INDEXOF_CONTAINS_PRE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule23STR_INDEXOF_NO_CONTAINSE", "cvc5::ProofRewriteRule::STR_INDEXOF_NO_CONTAINS"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19STR_INDEXOF_RE_NONEE", "cvc5::ProofRewriteRule::STR_INDEXOF_RE_NONE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16STR_INDEXOF_SELFE", "cvc5::ProofRewriteRule::STR_INDEXOF_SELF"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule26STR_IN_RE_CONCAT_STAR_CHARE", "cvc5::ProofRewriteRule::STR_IN_RE_CONCAT_STAR_CHAR"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17STR_IN_RE_CONSUMEE", "cvc5::ProofRewriteRule::STR_IN_RE_CONSUME"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18STR_IN_RE_CONTAINSE", "cvc5::ProofRewriteRule::STR_IN_RE_CONTAINS"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule14STR_IN_RE_EVALE", "cvc5::ProofRewriteRule::STR_IN_RE_EVAL"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule20STR_IN_RE_INTER_ELIME", "cvc5::ProofRewriteRule::STR_IN_RE_INTER_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule20STR_IN_RE_RANGE_ELIME", "cvc5::ProofRewriteRule::STR_IN_RE_RANGE_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule20STR_IN_RE_REQ_UNFOLDE", "cvc5::ProofRewriteRule::STR_IN_RE_REQ_UNFOLD"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule24STR_IN_RE_REQ_UNFOLD_REVE", "cvc5::ProofRewriteRule::STR_IN_RE_REQ_UNFOLD_REV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule15STR_IN_RE_SIGMAE", "cvc5::ProofRewriteRule::STR_IN_RE_SIGMA"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule20STR_IN_RE_SIGMA_STARE", "cvc5::ProofRewriteRule::STR_IN_RE_SIGMA_STAR"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule21STR_IN_RE_SKIP_UNFOLDE", "cvc5::ProofRewriteRule::STR_IN_RE_SKIP_UNFOLD"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule25STR_IN_RE_SKIP_UNFOLD_REVE", "cvc5::ProofRewriteRule::STR_IN_RE_SKIP_UNFOLD_REV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule20STR_IN_RE_STRIP_CHARE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_CHAR"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule24STR_IN_RE_STRIP_CHAR_REVE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_CHAR_REV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule29STR_IN_RE_STRIP_CHAR_S_SINGLEE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_CHAR_S_SINGLE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule33STR_IN_RE_STRIP_CHAR_S_SINGLE_REVE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_CHAR_S_SINGLE_REV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule22STR_IN_RE_STRIP_PREFIXE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_PREFIX"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule27STR_IN_RE_STRIP_PREFIX_BASEE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_PREFIX_BASE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule31STR_IN_RE_STRIP_PREFIX_BASE_NEGE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_PREFIX_BASE_NEG"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule35STR_IN_RE_STRIP_PREFIX_BASE_NEG_REVE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_PREFIX_BASE_NEG_REV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule31STR_IN_RE_STRIP_PREFIX_BASE_REVE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_PREFIX_BASE_REV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule36STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLEE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule40STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEGE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule44STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG_REVE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG_REV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule40STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_REVE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_REV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule26STR_IN_RE_STRIP_PREFIX_NEGE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_PREFIX_NEG"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule30STR_IN_RE_STRIP_PREFIX_NEG_REVE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_PREFIX_NEG_REV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule26STR_IN_RE_STRIP_PREFIX_REVE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_PREFIX_REV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule33STR_IN_RE_STRIP_PREFIX_SRS_SINGLEE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_PREFIX_SRS_SINGLE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule37STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEGE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule41STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG_REVE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG_REV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule37STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_REVE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_REV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule32STR_IN_RE_STRIP_PREFIX_SR_SINGLEE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_PREFIX_SR_SINGLE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule36STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEGE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule40STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG_REVE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG_REV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule36STR_IN_RE_STRIP_PREFIX_SR_SINGLE_REVE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_PREFIX_SR_SINGLE_REV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule31STR_IN_RE_STRIP_PREFIX_S_SINGLEE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_PREFIX_S_SINGLE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule35STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEGE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule39STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG_REVE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG_REV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule35STR_IN_RE_STRIP_PREFIX_S_SINGLE_REVE", "cvc5::ProofRewriteRule::STR_IN_RE_STRIP_PREFIX_S_SINGLE_REV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule21STR_IN_RE_TEST_UNFOLDE", "cvc5::ProofRewriteRule::STR_IN_RE_TEST_UNFOLD"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule25STR_IN_RE_TEST_UNFOLD_REVE", "cvc5::ProofRewriteRule::STR_IN_RE_TEST_UNFOLD_REV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule20STR_IN_RE_UNION_ELIME", "cvc5::ProofRewriteRule::STR_IN_RE_UNION_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18STR_LEN_CONCAT_RECE", "cvc5::ProofRewriteRule::STR_LEN_CONCAT_REC"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19STR_LEN_REPLACE_INVE", "cvc5::ProofRewriteRule::STR_LEN_REPLACE_INV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule23STR_LEN_SUBSTR_IN_RANGEE", "cvc5::ProofRewriteRule::STR_LEN_SUBSTR_IN_RANGE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18STR_LEN_SUBSTR_UB1E", "cvc5::ProofRewriteRule::STR_LEN_SUBSTR_UB1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18STR_LEN_SUBSTR_UB2E", "cvc5::ProofRewriteRule::STR_LEN_SUBSTR_UB2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18STR_LEN_UPDATE_INVE", "cvc5::ProofRewriteRule::STR_LEN_UPDATE_INV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule20STR_LEQ_CONCAT_FALSEE", "cvc5::ProofRewriteRule::STR_LEQ_CONCAT_FALSE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19STR_LEQ_CONCAT_TRUEE", "cvc5::ProofRewriteRule::STR_LEQ_CONCAT_TRUE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule13STR_LEQ_EMPTYE", "cvc5::ProofRewriteRule::STR_LEQ_EMPTY"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16STR_LEQ_EMPTY_EQE", "cvc5::ProofRewriteRule::STR_LEQ_EMPTY_EQ"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule11STR_LT_ELIME", "cvc5::ProofRewriteRule::STR_LT_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17STR_PREFIXOF_ELIME", "cvc5::ProofRewriteRule::STR_PREFIXOF_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16STR_PREFIXOF_ONEE", "cvc5::ProofRewriteRule::STR_PREFIXOF_ONE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule27STR_REPLACE_ALL_NO_CONTAINSE", "cvc5::ProofRewriteRule::STR_REPLACE_ALL_NO_CONTAINS"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule24STR_REPLACE_CONTAINS_PREE", "cvc5::ProofRewriteRule::STR_REPLACE_CONTAINS_PRE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17STR_REPLACE_EMPTYE", "cvc5::ProofRewriteRule::STR_REPLACE_EMPTY"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule23STR_REPLACE_NO_CONTAINSE", "cvc5::ProofRewriteRule::STR_REPLACE_NO_CONTAINS"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18STR_REPLACE_PREFIXE", "cvc5::ProofRewriteRule::STR_REPLACE_PREFIX"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule23STR_REPLACE_RE_ALL_NONEE", "cvc5::ProofRewriteRule::STR_REPLACE_RE_ALL_NONE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19STR_REPLACE_RE_NONEE", "cvc5::ProofRewriteRule::STR_REPLACE_RE_NONE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16STR_REPLACE_SELFE", "cvc5::ProofRewriteRule::STR_REPLACE_SELF"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19STR_SUBSTR_COMBINE1E", "cvc5::ProofRewriteRule::STR_SUBSTR_COMBINE1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19STR_SUBSTR_COMBINE2E", "cvc5::ProofRewriteRule::STR_SUBSTR_COMBINE2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19STR_SUBSTR_COMBINE3E", "cvc5::ProofRewriteRule::STR_SUBSTR_COMBINE3"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19STR_SUBSTR_COMBINE4E", "cvc5::ProofRewriteRule::STR_SUBSTR_COMBINE4"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18STR_SUBSTR_CONCAT1E", "cvc5::ProofRewriteRule::STR_SUBSTR_CONCAT1"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18STR_SUBSTR_CONCAT2E", "cvc5::ProofRewriteRule::STR_SUBSTR_CONCAT2"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule22STR_SUBSTR_EMPTY_RANGEE", "cvc5::ProofRewriteRule::STR_SUBSTR_EMPTY_RANGE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule22STR_SUBSTR_EMPTY_STARTE", "cvc5::ProofRewriteRule::STR_SUBSTR_EMPTY_START"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule26STR_SUBSTR_EMPTY_START_NEGE", "cvc5::ProofRewriteRule::STR_SUBSTR_EMPTY_START_NEG"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule20STR_SUBSTR_EMPTY_STRE", "cvc5::ProofRewriteRule::STR_SUBSTR_EMPTY_STR"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19STR_SUBSTR_EQ_EMPTYE", "cvc5::ProofRewriteRule::STR_SUBSTR_EQ_EMPTY"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule15STR_SUBSTR_FULLE", "cvc5::ProofRewriteRule::STR_SUBSTR_FULL"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18STR_SUBSTR_FULL_EQE", "cvc5::ProofRewriteRule::STR_SUBSTR_FULL_EQ"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule22STR_SUBSTR_LEN_INCLUDEE", "cvc5::ProofRewriteRule::STR_SUBSTR_LEN_INCLUDE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule26STR_SUBSTR_LEN_INCLUDE_PREE", "cvc5::ProofRewriteRule::STR_SUBSTR_LEN_INCLUDE_PRE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19STR_SUBSTR_LEN_SKIPE", "cvc5::ProofRewriteRule::STR_SUBSTR_LEN_SKIP"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule17STR_SUFFIXOF_ELIME", "cvc5::ProofRewriteRule::STR_SUFFIXOF_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16STR_SUFFIXOF_ONEE", "cvc5::ProofRewriteRule::STR_SUFFIXOF_ONE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule25STR_TO_INT_CONCAT_NEG_ONEE", "cvc5::ProofRewriteRule::STR_TO_INT_CONCAT_NEG_ONE"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19STR_TO_LOWER_CONCATE", "cvc5::ProofRewriteRule::STR_TO_LOWER_CONCAT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule21STR_TO_LOWER_FROM_INTE", "cvc5::ProofRewriteRule::STR_TO_LOWER_FROM_INT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16STR_TO_LOWER_LENE", "cvc5::ProofRewriteRule::STR_TO_LOWER_LEN"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18STR_TO_LOWER_UPPERE", "cvc5::ProofRewriteRule::STR_TO_LOWER_UPPER"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule19STR_TO_UPPER_CONCATE", "cvc5::ProofRewriteRule::STR_TO_UPPER_CONCAT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule21STR_TO_UPPER_FROM_INTE", "cvc5::ProofRewriteRule::STR_TO_UPPER_FROM_INT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16STR_TO_UPPER_LENE", "cvc5::ProofRewriteRule::STR_TO_UPPER_LEN"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18STR_TO_UPPER_LOWERE", "cvc5::ProofRewriteRule::STR_TO_UPPER_LOWER"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule18UF_BV2NAT_GEQ_ELIME", "cvc5::ProofRewriteRule::UF_BV2NAT_GEQ_ELIM"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16UF_BV2NAT_INT2BVE", "cvc5::ProofRewriteRule::UF_BV2NAT_INT2BV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule23UF_BV2NAT_INT2BV_EXTENDE", "cvc5::ProofRewriteRule::UF_BV2NAT_INT2BV_EXTEND"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule24UF_BV2NAT_INT2BV_EXTRACTE", "cvc5::ProofRewriteRule::UF_BV2NAT_INT2BV_EXTRACT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule16UF_INT2BV_BV2NATE", "cvc5::ProofRewriteRule::UF_INT2BV_BV2NAT"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule21UF_INT2BV_BVULE_EQUIVE", "cvc5::ProofRewriteRule::UF_INT2BV_BVULE_EQUIV"], [53, 0, 1, "_CPPv4N4cvc516ProofRewriteRule21UF_INT2BV_BVULT_EQUIVE", "cvc5::ProofRewriteRule::UF_INT2BV_BVULT_EQUIV"], [53, 2, 1, "_CPPv4N4cvc59ProofRuleE", "cvc5::ProofRule"], [53, 0, 1, "_CPPv4N4cvc59ProofRule8ACI_NORME", "cvc5::ProofRule::ACI_NORM"], [53, 0, 1, "_CPPv4N4cvc59ProofRule11ALETHE_RULEE", "cvc5::ProofRule::ALETHE_RULE"], [53, 0, 1, "_CPPv4N4cvc59ProofRule11ALPHA_EQUIVE", "cvc5::ProofRule::ALPHA_EQUIV"], [53, 0, 1, "_CPPv4N4cvc59ProofRule8AND_ELIME", "cvc5::ProofRule::AND_ELIM"], [53, 0, 1, "_CPPv4N4cvc59ProofRule9AND_INTROE", "cvc5::ProofRule::AND_INTRO"], [53, 0, 1, "_CPPv4N4cvc59ProofRule25ARITH_MULT_ABS_COMPARISONE", "cvc5::ProofRule::ARITH_MULT_ABS_COMPARISON"], [53, 0, 1, "_CPPv4N4cvc59ProofRule14ARITH_MULT_NEGE", "cvc5::ProofRule::ARITH_MULT_NEG"], [53, 0, 1, "_CPPv4N4cvc59ProofRule14ARITH_MULT_POSE", "cvc5::ProofRule::ARITH_MULT_POS"], [53, 0, 1, "_CPPv4N4cvc59ProofRule15ARITH_MULT_SIGNE", "cvc5::ProofRule::ARITH_MULT_SIGN"], [53, 0, 1, "_CPPv4N4cvc59ProofRule18ARITH_MULT_TANGENTE", "cvc5::ProofRule::ARITH_MULT_TANGENT"], [53, 0, 1, "_CPPv4N4cvc59ProofRule15ARITH_POLY_NORME", "cvc5::ProofRule::ARITH_POLY_NORM"], [53, 0, 1, "_CPPv4N4cvc59ProofRule19ARITH_POLY_NORM_RELE", "cvc5::ProofRule::ARITH_POLY_NORM_REL"], [53, 0, 1, "_CPPv4N4cvc59ProofRule15ARITH_REDUCTIONE", "cvc5::ProofRule::ARITH_REDUCTION"], [53, 0, 1, "_CPPv4N4cvc59ProofRule12ARITH_SUM_UBE", "cvc5::ProofRule::ARITH_SUM_UB"], [53, 0, 1, "_CPPv4N4cvc59ProofRule32ARITH_TRANS_EXP_APPROX_ABOVE_NEGE", "cvc5::ProofRule::ARITH_TRANS_EXP_APPROX_ABOVE_NEG"], [53, 0, 1, "_CPPv4N4cvc59ProofRule32ARITH_TRANS_EXP_APPROX_ABOVE_POSE", "cvc5::ProofRule::ARITH_TRANS_EXP_APPROX_ABOVE_POS"], [53, 0, 1, "_CPPv4N4cvc59ProofRule28ARITH_TRANS_EXP_APPROX_BELOWE", "cvc5::ProofRule::ARITH_TRANS_EXP_APPROX_BELOW"], [53, 0, 1, "_CPPv4N4cvc59ProofRule19ARITH_TRANS_EXP_NEGE", "cvc5::ProofRule::ARITH_TRANS_EXP_NEG"], [53, 0, 1, "_CPPv4N4cvc59ProofRule26ARITH_TRANS_EXP_POSITIVITYE", "cvc5::ProofRule::ARITH_TRANS_EXP_POSITIVITY"], [53, 0, 1, "_CPPv4N4cvc59ProofRule25ARITH_TRANS_EXP_SUPER_LINE", "cvc5::ProofRule::ARITH_TRANS_EXP_SUPER_LIN"], [53, 0, 1, "_CPPv4N4cvc59ProofRule20ARITH_TRANS_EXP_ZEROE", "cvc5::ProofRule::ARITH_TRANS_EXP_ZERO"], [53, 0, 1, "_CPPv4N4cvc59ProofRule14ARITH_TRANS_PIE", "cvc5::ProofRule::ARITH_TRANS_PI"], [53, 0, 1, "_CPPv4N4cvc59ProofRule33ARITH_TRANS_SINE_APPROX_ABOVE_NEGE", "cvc5::ProofRule::ARITH_TRANS_SINE_APPROX_ABOVE_NEG"], [53, 0, 1, "_CPPv4N4cvc59ProofRule33ARITH_TRANS_SINE_APPROX_ABOVE_POSE", "cvc5::ProofRule::ARITH_TRANS_SINE_APPROX_ABOVE_POS"], [53, 0, 1, "_CPPv4N4cvc59ProofRule33ARITH_TRANS_SINE_APPROX_BELOW_NEGE", "cvc5::ProofRule::ARITH_TRANS_SINE_APPROX_BELOW_NEG"], [53, 0, 1, "_CPPv4N4cvc59ProofRule33ARITH_TRANS_SINE_APPROX_BELOW_POSE", "cvc5::ProofRule::ARITH_TRANS_SINE_APPROX_BELOW_POS"], [53, 0, 1, "_CPPv4N4cvc59ProofRule23ARITH_TRANS_SINE_BOUNDSE", "cvc5::ProofRule::ARITH_TRANS_SINE_BOUNDS"], [53, 0, 1, "_CPPv4N4cvc59ProofRule22ARITH_TRANS_SINE_SHIFTE", "cvc5::ProofRule::ARITH_TRANS_SINE_SHIFT"], [53, 0, 1, "_CPPv4N4cvc59ProofRule25ARITH_TRANS_SINE_SYMMETRYE", "cvc5::ProofRule::ARITH_TRANS_SINE_SYMMETRY"], [53, 0, 1, "_CPPv4N4cvc59ProofRule27ARITH_TRANS_SINE_TANGENT_PIE", "cvc5::ProofRule::ARITH_TRANS_SINE_TANGENT_PI"], [53, 0, 1, "_CPPv4N4cvc59ProofRule29ARITH_TRANS_SINE_TANGENT_ZEROE", "cvc5::ProofRule::ARITH_TRANS_SINE_TANGENT_ZERO"], [53, 0, 1, "_CPPv4N4cvc59ProofRule16ARITH_TRICHOTOMYE", "cvc5::ProofRule::ARITH_TRICHOTOMY"], [53, 0, 1, "_CPPv4N4cvc59ProofRule10ARRAYS_EXTE", "cvc5::ProofRule::ARRAYS_EXT"], [53, 0, 1, "_CPPv4N4cvc59ProofRule22ARRAYS_READ_OVER_WRITEE", "cvc5::ProofRule::ARRAYS_READ_OVER_WRITE"], [53, 0, 1, "_CPPv4N4cvc59ProofRule24ARRAYS_READ_OVER_WRITE_1E", "cvc5::ProofRule::ARRAYS_READ_OVER_WRITE_1"], [53, 0, 1, "_CPPv4N4cvc59ProofRule29ARRAYS_READ_OVER_WRITE_CONTRAE", "cvc5::ProofRule::ARRAYS_READ_OVER_WRITE_CONTRA"], [53, 0, 1, "_CPPv4N4cvc59ProofRule6ASSUMEE", "cvc5::ProofRule::ASSUME"], [53, 0, 1, "_CPPv4N4cvc59ProofRule16BV_BITBLAST_STEPE", "cvc5::ProofRule::BV_BITBLAST_STEP"], [53, 0, 1, "_CPPv4N4cvc59ProofRule13BV_EAGER_ATOME", "cvc5::ProofRule::BV_EAGER_ATOM"], [53, 0, 1, "_CPPv4N4cvc59ProofRule16CHAIN_RESOLUTIONE", "cvc5::ProofRule::CHAIN_RESOLUTION"], [53, 0, 1, "_CPPv4N4cvc59ProofRule11CNF_AND_NEGE", "cvc5::ProofRule::CNF_AND_NEG"], [53, 0, 1, "_CPPv4N4cvc59ProofRule11CNF_AND_POSE", "cvc5::ProofRule::CNF_AND_POS"], [53, 0, 1, "_CPPv4N4cvc59ProofRule14CNF_EQUIV_NEG1E", "cvc5::ProofRule::CNF_EQUIV_NEG1"], [53, 0, 1, "_CPPv4N4cvc59ProofRule14CNF_EQUIV_NEG2E", "cvc5::ProofRule::CNF_EQUIV_NEG2"], [53, 0, 1, "_CPPv4N4cvc59ProofRule14CNF_EQUIV_POS1E", "cvc5::ProofRule::CNF_EQUIV_POS1"], [53, 0, 1, "_CPPv4N4cvc59ProofRule14CNF_EQUIV_POS2E", "cvc5::ProofRule::CNF_EQUIV_POS2"], [53, 0, 1, "_CPPv4N4cvc59ProofRule16CNF_IMPLIES_NEG1E", "cvc5::ProofRule::CNF_IMPLIES_NEG1"], [53, 0, 1, "_CPPv4N4cvc59ProofRule16CNF_IMPLIES_NEG2E", "cvc5::ProofRule::CNF_IMPLIES_NEG2"], [53, 0, 1, "_CPPv4N4cvc59ProofRule15CNF_IMPLIES_POSE", "cvc5::ProofRule::CNF_IMPLIES_POS"], [53, 0, 1, "_CPPv4N4cvc59ProofRule12CNF_ITE_NEG1E", "cvc5::ProofRule::CNF_ITE_NEG1"], [53, 0, 1, "_CPPv4N4cvc59ProofRule12CNF_ITE_NEG2E", "cvc5::ProofRule::CNF_ITE_NEG2"], [53, 0, 1, "_CPPv4N4cvc59ProofRule12CNF_ITE_NEG3E", "cvc5::ProofRule::CNF_ITE_NEG3"], [53, 0, 1, "_CPPv4N4cvc59ProofRule12CNF_ITE_POS1E", "cvc5::ProofRule::CNF_ITE_POS1"], [53, 0, 1, "_CPPv4N4cvc59ProofRule12CNF_ITE_POS2E", "cvc5::ProofRule::CNF_ITE_POS2"], [53, 0, 1, "_CPPv4N4cvc59ProofRule12CNF_ITE_POS3E", "cvc5::ProofRule::CNF_ITE_POS3"], [53, 0, 1, "_CPPv4N4cvc59ProofRule10CNF_OR_NEGE", "cvc5::ProofRule::CNF_OR_NEG"], [53, 0, 1, "_CPPv4N4cvc59ProofRule10CNF_OR_POSE", "cvc5::ProofRule::CNF_OR_POS"], [53, 0, 1, "_CPPv4N4cvc59ProofRule12CNF_XOR_NEG1E", "cvc5::ProofRule::CNF_XOR_NEG1"], [53, 0, 1, "_CPPv4N4cvc59ProofRule12CNF_XOR_NEG2E", "cvc5::ProofRule::CNF_XOR_NEG2"], [53, 0, 1, "_CPPv4N4cvc59ProofRule12CNF_XOR_POS1E", "cvc5::ProofRule::CNF_XOR_POS1"], [53, 0, 1, "_CPPv4N4cvc59ProofRule12CNF_XOR_POS2E", "cvc5::ProofRule::CNF_XOR_POS2"], [53, 0, 1, "_CPPv4N4cvc59ProofRule15CONCAT_CONFLICTE", "cvc5::ProofRule::CONCAT_CONFLICT"], [53, 0, 1, "_CPPv4N4cvc59ProofRule19CONCAT_CONFLICT_DEQE", "cvc5::ProofRule::CONCAT_CONFLICT_DEQ"], [53, 0, 1, "_CPPv4N4cvc59ProofRule12CONCAT_CPROPE", "cvc5::ProofRule::CONCAT_CPROP"], [53, 0, 1, "_CPPv4N4cvc59ProofRule13CONCAT_CSPLITE", "cvc5::ProofRule::CONCAT_CSPLIT"], [53, 0, 1, "_CPPv4N4cvc59ProofRule9CONCAT_EQE", "cvc5::ProofRule::CONCAT_EQ"], [53, 0, 1, "_CPPv4N4cvc59ProofRule12CONCAT_LPROPE", "cvc5::ProofRule::CONCAT_LPROP"], [53, 0, 1, "_CPPv4N4cvc59ProofRule12CONCAT_SPLITE", "cvc5::ProofRule::CONCAT_SPLIT"], [53, 0, 1, "_CPPv4N4cvc59ProofRule12CONCAT_UNIFYE", "cvc5::ProofRule::CONCAT_UNIFY"], [53, 0, 1, "_CPPv4N4cvc59ProofRule4CONGE", "cvc5::ProofRule::CONG"], [53, 0, 1, "_CPPv4N4cvc59ProofRule6CONTRAE", "cvc5::ProofRule::CONTRA"], [53, 0, 1, "_CPPv4N4cvc59ProofRule15DRAT_REFUTATIONE", "cvc5::ProofRule::DRAT_REFUTATION"], [53, 0, 1, "_CPPv4N4cvc59ProofRule11DSL_REWRITEE", "cvc5::ProofRule::DSL_REWRITE"], [53, 0, 1, "_CPPv4N4cvc59ProofRule8DT_CLASHE", "cvc5::ProofRule::DT_CLASH"], [53, 0, 1, "_CPPv4N4cvc59ProofRule8DT_SPLITE", "cvc5::ProofRule::DT_SPLIT"], [53, 0, 1, "_CPPv4N4cvc59ProofRule15ENCODE_EQ_INTROE", "cvc5::ProofRule::ENCODE_EQ_INTRO"], [53, 0, 1, "_CPPv4N4cvc59ProofRule11EQUIV_ELIM1E", "cvc5::ProofRule::EQUIV_ELIM1"], [53, 0, 1, "_CPPv4N4cvc59ProofRule11EQUIV_ELIM2E", "cvc5::ProofRule::EQUIV_ELIM2"], [53, 0, 1, "_CPPv4N4cvc59ProofRule10EQ_RESOLVEE", "cvc5::ProofRule::EQ_RESOLVE"], [53, 0, 1, "_CPPv4N4cvc59ProofRule8EVALUATEE", "cvc5::ProofRule::EVALUATE"], [53, 0, 1, "_CPPv4N4cvc59ProofRule9FACTORINGE", "cvc5::ProofRule::FACTORING"], [53, 0, 1, "_CPPv4N4cvc59ProofRule10FALSE_ELIME", "cvc5::ProofRule::FALSE_ELIM"], [53, 0, 1, "_CPPv4N4cvc59ProofRule11FALSE_INTROE", "cvc5::ProofRule::FALSE_INTRO"], [53, 0, 1, "_CPPv4N4cvc59ProofRule13HO_APP_ENCODEE", "cvc5::ProofRule::HO_APP_ENCODE"], [53, 0, 1, "_CPPv4N4cvc59ProofRule7HO_CONGE", "cvc5::ProofRule::HO_CONG"], [53, 0, 1, "_CPPv4N4cvc59ProofRule12IMPLIES_ELIME", "cvc5::ProofRule::IMPLIES_ELIM"], [53, 0, 1, "_CPPv4N4cvc59ProofRule11INSTANTIATEE", "cvc5::ProofRule::INSTANTIATE"], [53, 0, 1, "_CPPv4N4cvc59ProofRule12INT_TIGHT_LBE", "cvc5::ProofRule::INT_TIGHT_LB"], [53, 0, 1, "_CPPv4N4cvc59ProofRule12INT_TIGHT_UBE", "cvc5::ProofRule::INT_TIGHT_UB"], [53, 0, 1, "_CPPv4N4cvc59ProofRule9ITE_ELIM1E", "cvc5::ProofRule::ITE_ELIM1"], [53, 0, 1, "_CPPv4N4cvc59ProofRule9ITE_ELIM2E", "cvc5::ProofRule::ITE_ELIM2"], [53, 0, 1, "_CPPv4N4cvc59ProofRule6ITE_EQE", "cvc5::ProofRule::ITE_EQ"], [53, 0, 1, "_CPPv4N4cvc59ProofRule9LFSC_RULEE", "cvc5::ProofRule::LFSC_RULE"], [53, 0, 1, "_CPPv4N4cvc59ProofRule24MACRO_ARITH_SCALE_SUM_UBE", "cvc5::ProofRule::MACRO_ARITH_SCALE_SUM_UB"], [53, 0, 1, "_CPPv4N4cvc59ProofRule17MACRO_BV_BITBLASTE", "cvc5::ProofRule::MACRO_BV_BITBLAST"], [53, 0, 1, "_CPPv4N4cvc59ProofRule16MACRO_RESOLUTIONE", "cvc5::ProofRule::MACRO_RESOLUTION"], [53, 0, 1, "_CPPv4N4cvc59ProofRule22MACRO_RESOLUTION_TRUSTE", "cvc5::ProofRule::MACRO_RESOLUTION_TRUST"], [53, 0, 1, "_CPPv4N4cvc59ProofRule13MACRO_REWRITEE", "cvc5::ProofRule::MACRO_REWRITE"], [53, 0, 1, "_CPPv4N4cvc59ProofRule17MACRO_SR_EQ_INTROE", "cvc5::ProofRule::MACRO_SR_EQ_INTRO"], [53, 0, 1, "_CPPv4N4cvc59ProofRule18MACRO_SR_PRED_ELIME", "cvc5::ProofRule::MACRO_SR_PRED_ELIM"], [53, 0, 1, "_CPPv4N4cvc59ProofRule19MACRO_SR_PRED_INTROE", "cvc5::ProofRule::MACRO_SR_PRED_INTRO"], [53, 0, 1, "_CPPv4N4cvc59ProofRule23MACRO_SR_PRED_TRANSFORME", "cvc5::ProofRule::MACRO_SR_PRED_TRANSFORM"], [53, 0, 1, "_CPPv4N4cvc59ProofRule22MACRO_STRING_INFERENCEE", "cvc5::ProofRule::MACRO_STRING_INFERENCE"], [53, 0, 1, "_CPPv4N4cvc59ProofRule12MODUS_PONENSE", "cvc5::ProofRule::MODUS_PONENS"], [53, 0, 1, "_CPPv4N4cvc59ProofRule9NARY_CONGE", "cvc5::ProofRule::NARY_CONG"], [53, 0, 1, "_CPPv4N4cvc59ProofRule7NOT_ANDE", "cvc5::ProofRule::NOT_AND"], [53, 0, 1, "_CPPv4N4cvc59ProofRule15NOT_EQUIV_ELIM1E", "cvc5::ProofRule::NOT_EQUIV_ELIM1"], [53, 0, 1, "_CPPv4N4cvc59ProofRule15NOT_EQUIV_ELIM2E", "cvc5::ProofRule::NOT_EQUIV_ELIM2"], [53, 0, 1, "_CPPv4N4cvc59ProofRule17NOT_IMPLIES_ELIM1E", "cvc5::ProofRule::NOT_IMPLIES_ELIM1"], [53, 0, 1, "_CPPv4N4cvc59ProofRule17NOT_IMPLIES_ELIM2E", "cvc5::ProofRule::NOT_IMPLIES_ELIM2"], [53, 0, 1, "_CPPv4N4cvc59ProofRule13NOT_ITE_ELIM1E", "cvc5::ProofRule::NOT_ITE_ELIM1"], [53, 0, 1, "_CPPv4N4cvc59ProofRule13NOT_ITE_ELIM2E", "cvc5::ProofRule::NOT_ITE_ELIM2"], [53, 0, 1, "_CPPv4N4cvc59ProofRule12NOT_NOT_ELIME", "cvc5::ProofRule::NOT_NOT_ELIM"], [53, 0, 1, "_CPPv4N4cvc59ProofRule11NOT_OR_ELIME", "cvc5::ProofRule::NOT_OR_ELIM"], [53, 0, 1, "_CPPv4N4cvc59ProofRule13NOT_XOR_ELIM1E", "cvc5::ProofRule::NOT_XOR_ELIM1"], [53, 0, 1, "_CPPv4N4cvc59ProofRule13NOT_XOR_ELIM2E", "cvc5::ProofRule::NOT_XOR_ELIM2"], [53, 0, 1, "_CPPv4N4cvc59ProofRule20QUANT_VAR_REORDERINGE", "cvc5::ProofRule::QUANT_VAR_REORDERING"], [53, 0, 1, "_CPPv4N4cvc59ProofRule4REFLE", "cvc5::ProofRule::REFL"], [53, 0, 1, "_CPPv4N4cvc59ProofRule10REORDERINGE", "cvc5::ProofRule::REORDERING"], [53, 0, 1, "_CPPv4N4cvc59ProofRule10RESOLUTIONE", "cvc5::ProofRule::RESOLUTION"], [53, 0, 1, "_CPPv4N4cvc59ProofRule8RE_INTERE", "cvc5::ProofRule::RE_INTER"], [53, 0, 1, "_CPPv4N4cvc59ProofRule13RE_UNFOLD_NEGE", "cvc5::ProofRule::RE_UNFOLD_NEG"], [53, 0, 1, "_CPPv4N4cvc59ProofRule26RE_UNFOLD_NEG_CONCAT_FIXEDE", "cvc5::ProofRule::RE_UNFOLD_NEG_CONCAT_FIXED"], [53, 0, 1, "_CPPv4N4cvc59ProofRule13RE_UNFOLD_POSE", "cvc5::ProofRule::RE_UNFOLD_POS"], [53, 0, 1, "_CPPv4N4cvc59ProofRule18SAT_EXTERNAL_PROVEE", "cvc5::ProofRule::SAT_EXTERNAL_PROVE"], [53, 0, 1, "_CPPv4N4cvc59ProofRule14SAT_REFUTATIONE", "cvc5::ProofRule::SAT_REFUTATION"], [53, 0, 1, "_CPPv4N4cvc59ProofRule5SCOPEE", "cvc5::ProofRule::SCOPE"], [53, 0, 1, "_CPPv4N4cvc59ProofRule8SETS_EXTE", "cvc5::ProofRule::SETS_EXT"], [53, 0, 1, "_CPPv4N4cvc59ProofRule16SETS_FILTER_DOWNE", "cvc5::ProofRule::SETS_FILTER_DOWN"], [53, 0, 1, "_CPPv4N4cvc59ProofRule14SETS_FILTER_UPE", "cvc5::ProofRule::SETS_FILTER_UP"], [53, 0, 1, "_CPPv4N4cvc59ProofRule18SETS_SINGLETON_INJE", "cvc5::ProofRule::SETS_SINGLETON_INJ"], [53, 0, 1, "_CPPv4N4cvc59ProofRule9SKOLEMIZEE", "cvc5::ProofRule::SKOLEMIZE"], [53, 0, 1, "_CPPv4N4cvc59ProofRule12SKOLEM_INTROE", "cvc5::ProofRule::SKOLEM_INTRO"], [53, 0, 1, "_CPPv4N4cvc59ProofRule5SPLITE", "cvc5::ProofRule::SPLIT"], [53, 0, 1, "_CPPv4N4cvc59ProofRule15STRING_CODE_INJE", "cvc5::ProofRule::STRING_CODE_INJ"], [53, 0, 1, "_CPPv4N4cvc59ProofRule16STRING_DECOMPOSEE", "cvc5::ProofRule::STRING_DECOMPOSE"], [53, 0, 1, "_CPPv4N4cvc59ProofRule22STRING_EAGER_REDUCTIONE", "cvc5::ProofRule::STRING_EAGER_REDUCTION"], [53, 0, 1, "_CPPv4N4cvc59ProofRule10STRING_EXTE", "cvc5::ProofRule::STRING_EXT"], [53, 0, 1, "_CPPv4N4cvc59ProofRule23STRING_LENGTH_NON_EMPTYE", "cvc5::ProofRule::STRING_LENGTH_NON_EMPTY"], [53, 0, 1, "_CPPv4N4cvc59ProofRule17STRING_LENGTH_POSE", "cvc5::ProofRule::STRING_LENGTH_POS"], [53, 0, 1, "_CPPv4N4cvc59ProofRule16STRING_REDUCTIONE", "cvc5::ProofRule::STRING_REDUCTION"], [53, 0, 1, "_CPPv4N4cvc59ProofRule19STRING_SEQ_UNIT_INJE", "cvc5::ProofRule::STRING_SEQ_UNIT_INJ"], [53, 0, 1, "_CPPv4N4cvc59ProofRule4SUBSE", "cvc5::ProofRule::SUBS"], [53, 0, 1, "_CPPv4N4cvc59ProofRule4SYMME", "cvc5::ProofRule::SYMM"], [53, 0, 1, "_CPPv4N4cvc59ProofRule14THEORY_REWRITEE", "cvc5::ProofRule::THEORY_REWRITE"], [53, 0, 1, "_CPPv4N4cvc59ProofRule5TRANSE", "cvc5::ProofRule::TRANS"], [53, 0, 1, "_CPPv4N4cvc59ProofRule9TRUE_ELIME", "cvc5::ProofRule::TRUE_ELIM"], [53, 0, 1, "_CPPv4N4cvc59ProofRule10TRUE_INTROE", "cvc5::ProofRule::TRUE_INTRO"], [53, 0, 1, "_CPPv4N4cvc59ProofRule5TRUSTE", "cvc5::ProofRule::TRUST"], [53, 0, 1, "_CPPv4N4cvc59ProofRule20TRUST_THEORY_REWRITEE", "cvc5::ProofRule::TRUST_THEORY_REWRITE"], [53, 0, 1, "_CPPv4N4cvc59ProofRule7UNKNOWNE", "cvc5::ProofRule::UNKNOWN"], [53, 0, 1, "_CPPv4N4cvc59ProofRule9XOR_ELIM1E", "cvc5::ProofRule::XOR_ELIM1"], [53, 0, 1, "_CPPv4N4cvc59ProofRule9XOR_ELIM2E", "cvc5::ProofRule::XOR_ELIM2"], [42, 3, 1, "_CPPv4N4cvc56ResultE", "cvc5::Result"], [42, 5, 1, "_CPPv4N4cvc56Result6ResultEv", "cvc5::Result::Result"], [42, 5, 1, "_CPPv4NK4cvc56Result21getUnknownExplanationEv", "cvc5::Result::getUnknownExplanation"], [42, 5, 1, "_CPPv4NK4cvc56Result6isNullEv", "cvc5::Result::isNull"], [42, 5, 1, "_CPPv4NK4cvc56Result5isSatEv", "cvc5::Result::isSat"], [42, 5, 1, "_CPPv4NK4cvc56Result9isUnknownEv", "cvc5::Result::isUnknown"], [42, 5, 1, "_CPPv4NK4cvc56Result7isUnsatEv", "cvc5::Result::isUnsat"], [42, 5, 1, "_CPPv4NK4cvc56ResultneERK6Result", "cvc5::Result::operator!="], [42, 6, 1, "_CPPv4NK4cvc56ResultneERK6Result", "cvc5::Result::operator!=::r"], [42, 5, 1, "_CPPv4NK4cvc56ResulteqERK6Result", "cvc5::Result::operator=="], [42, 6, 1, "_CPPv4NK4cvc56ResulteqERK6Result", "cvc5::Result::operator==::r"], [42, 5, 1, "_CPPv4NK4cvc56Result8toStringEv", "cvc5::Result::toString"], [54, 2, 1, "_CPPv4N4cvc512RoundingModeE", "cvc5::RoundingMode"], [54, 0, 1, "_CPPv4N4cvc512RoundingMode26ROUND_NEAREST_TIES_TO_AWAYE", "cvc5::RoundingMode::ROUND_NEAREST_TIES_TO_AWAY"], [54, 0, 1, "_CPPv4N4cvc512RoundingMode26ROUND_NEAREST_TIES_TO_EVENE", "cvc5::RoundingMode::ROUND_NEAREST_TIES_TO_EVEN"], [54, 0, 1, "_CPPv4N4cvc512RoundingMode21ROUND_TOWARD_NEGATIVEE", "cvc5::RoundingMode::ROUND_TOWARD_NEGATIVE"], [54, 0, 1, "_CPPv4N4cvc512RoundingMode21ROUND_TOWARD_POSITIVEE", "cvc5::RoundingMode::ROUND_TOWARD_POSITIVE"], [54, 0, 1, "_CPPv4N4cvc512RoundingMode17ROUND_TOWARD_ZEROE", "cvc5::RoundingMode::ROUND_TOWARD_ZERO"], [140, 2, 1, "_CPPv4N4cvc58SkolemIdE", "cvc5::SkolemId"], [140, 0, 1, "_CPPv4N4cvc58SkolemId15ARITH_VTS_DELTAE", "cvc5::SkolemId::ARITH_VTS_DELTA"], [140, 0, 1, "_CPPv4N4cvc58SkolemId20ARITH_VTS_DELTA_FREEE", "cvc5::SkolemId::ARITH_VTS_DELTA_FREE"], [140, 0, 1, "_CPPv4N4cvc58SkolemId18ARITH_VTS_INFINITYE", "cvc5::SkolemId::ARITH_VTS_INFINITY"], [140, 0, 1, "_CPPv4N4cvc58SkolemId23ARITH_VTS_INFINITY_FREEE", "cvc5::SkolemId::ARITH_VTS_INFINITY_FREE"], [140, 0, 1, "_CPPv4N4cvc58SkolemId14ARRAY_DEQ_DIFFE", "cvc5::SkolemId::ARRAY_DEQ_DIFF"], [140, 0, 1, "_CPPv4N4cvc58SkolemId17BAGS_CARD_COMBINEE", "cvc5::SkolemId::BAGS_CARD_COMBINE"], [140, 0, 1, "_CPPv4N4cvc58SkolemId11BAGS_CHOOSEE", "cvc5::SkolemId::BAGS_CHOOSE"], [140, 0, 1, "_CPPv4N4cvc58SkolemId13BAGS_DEQ_DIFFE", "cvc5::SkolemId::BAGS_DEQ_DIFF"], [140, 0, 1, "_CPPv4N4cvc58SkolemId22BAGS_DISTINCT_ELEMENTSE", "cvc5::SkolemId::BAGS_DISTINCT_ELEMENTS"], [140, 0, 1, "_CPPv4N4cvc58SkolemId27BAGS_DISTINCT_ELEMENTS_SIZEE", "cvc5::SkolemId::BAGS_DISTINCT_ELEMENTS_SIZE"], [140, 0, 1, "_CPPv4N4cvc58SkolemId37BAGS_DISTINCT_ELEMENTS_UNION_DISJOINTE", "cvc5::SkolemId::BAGS_DISTINCT_ELEMENTS_UNION_DISJOINT"], [140, 0, 1, "_CPPv4N4cvc58SkolemId14BAGS_FOLD_CARDE", "cvc5::SkolemId::BAGS_FOLD_CARD"], [140, 0, 1, "_CPPv4N4cvc58SkolemId17BAGS_FOLD_COMBINEE", "cvc5::SkolemId::BAGS_FOLD_COMBINE"], [140, 0, 1, "_CPPv4N4cvc58SkolemId18BAGS_FOLD_ELEMENTSE", "cvc5::SkolemId::BAGS_FOLD_ELEMENTS"], [140, 0, 1, "_CPPv4N4cvc58SkolemId24BAGS_FOLD_UNION_DISJOINTE", "cvc5::SkolemId::BAGS_FOLD_UNION_DISJOINT"], [140, 0, 1, "_CPPv4N4cvc58SkolemId14BAGS_MAP_INDEXE", "cvc5::SkolemId::BAGS_MAP_INDEX"], [140, 0, 1, "_CPPv4N4cvc58SkolemId27BAGS_MAP_PREIMAGE_INJECTIVEE", "cvc5::SkolemId::BAGS_MAP_PREIMAGE_INJECTIVE"], [140, 0, 1, "_CPPv4N4cvc58SkolemId12BAGS_MAP_SUME", "cvc5::SkolemId::BAGS_MAP_SUM"], [140, 0, 1, "_CPPv4N4cvc58SkolemId8BV_EMPTYE", "cvc5::SkolemId::BV_EMPTY"], [140, 0, 1, "_CPPv4N4cvc58SkolemId12BV_TO_INT_UFE", "cvc5::SkolemId::BV_TO_INT_UF"], [140, 0, 1, "_CPPv4N4cvc58SkolemId11DIV_BY_ZEROE", "cvc5::SkolemId::DIV_BY_ZERO"], [140, 0, 1, "_CPPv4N4cvc58SkolemId11FP_MAX_ZEROE", "cvc5::SkolemId::FP_MAX_ZERO"], [140, 0, 1, "_CPPv4N4cvc58SkolemId11FP_MIN_ZEROE", "cvc5::SkolemId::FP_MIN_ZERO"], [140, 0, 1, "_CPPv4N4cvc58SkolemId10FP_TO_REALE", "cvc5::SkolemId::FP_TO_REAL"], [140, 0, 1, "_CPPv4N4cvc58SkolemId9FP_TO_SBVE", "cvc5::SkolemId::FP_TO_SBV"], [140, 0, 1, "_CPPv4N4cvc58SkolemId9FP_TO_UBVE", "cvc5::SkolemId::FP_TO_UBV"], [140, 0, 1, "_CPPv4N4cvc58SkolemId11GROUND_TERME", "cvc5::SkolemId::GROUND_TERM"], [140, 0, 1, "_CPPv4N4cvc58SkolemId11HO_DEQ_DIFFE", "cvc5::SkolemId::HO_DEQ_DIFF"], [140, 0, 1, "_CPPv4N4cvc58SkolemId8INTERNALE", "cvc5::SkolemId::INTERNAL"], [140, 0, 1, "_CPPv4N4cvc58SkolemId15INT_DIV_BY_ZEROE", "cvc5::SkolemId::INT_DIV_BY_ZERO"], [140, 0, 1, "_CPPv4N4cvc58SkolemId11MOD_BY_ZEROE", "cvc5::SkolemId::MOD_BY_ZERO"], [140, 0, 1, "_CPPv4N4cvc58SkolemId4NONEE", "cvc5::SkolemId::NONE"], [140, 0, 1, "_CPPv4N4cvc58SkolemId6PURIFYE", "cvc5::SkolemId::PURIFY"], [140, 0, 1, "_CPPv4N4cvc58SkolemId21QUANTIFIERS_SKOLEMIZEE", "cvc5::SkolemId::QUANTIFIERS_SKOLEMIZE"], [140, 0, 1, "_CPPv4N4cvc58SkolemId20RELATIONS_GROUP_PARTE", "cvc5::SkolemId::RELATIONS_GROUP_PART"], [140, 0, 1, "_CPPv4N4cvc58SkolemId28RELATIONS_GROUP_PART_ELEMENTE", "cvc5::SkolemId::RELATIONS_GROUP_PART_ELEMENT"], [140, 0, 1, "_CPPv4N4cvc58SkolemId14RE_FIRST_MATCHE", "cvc5::SkolemId::RE_FIRST_MATCH"], [140, 0, 1, "_CPPv4N4cvc58SkolemId19RE_FIRST_MATCH_POSTE", "cvc5::SkolemId::RE_FIRST_MATCH_POST"], [140, 0, 1, "_CPPv4N4cvc58SkolemId18RE_FIRST_MATCH_PREE", "cvc5::SkolemId::RE_FIRST_MATCH_PRE"], [140, 0, 1, "_CPPv4N4cvc58SkolemId23RE_UNFOLD_POS_COMPONENTE", "cvc5::SkolemId::RE_UNFOLD_POS_COMPONENT"], [140, 0, 1, "_CPPv4N4cvc58SkolemId11SETS_CHOOSEE", "cvc5::SkolemId::SETS_CHOOSE"], [140, 0, 1, "_CPPv4N4cvc58SkolemId13SETS_DEQ_DIFFE", "cvc5::SkolemId::SETS_DEQ_DIFF"], [140, 0, 1, "_CPPv4N4cvc58SkolemId14SETS_FOLD_CARDE", "cvc5::SkolemId::SETS_FOLD_CARD"], [140, 0, 1, "_CPPv4N4cvc58SkolemId17SETS_FOLD_COMBINEE", "cvc5::SkolemId::SETS_FOLD_COMBINE"], [140, 0, 1, "_CPPv4N4cvc58SkolemId18SETS_FOLD_ELEMENTSE", "cvc5::SkolemId::SETS_FOLD_ELEMENTS"], [140, 0, 1, "_CPPv4N4cvc58SkolemId15SETS_FOLD_UNIONE", "cvc5::SkolemId::SETS_FOLD_UNION"], [140, 0, 1, "_CPPv4N4cvc58SkolemId21SETS_MAP_DOWN_ELEMENTE", "cvc5::SkolemId::SETS_MAP_DOWN_ELEMENT"], [140, 0, 1, "_CPPv4N4cvc58SkolemId15SHARED_SELECTORE", "cvc5::SkolemId::SHARED_SELECTOR"], [140, 0, 1, "_CPPv4N4cvc58SkolemId16STRINGS_DEQ_DIFFE", "cvc5::SkolemId::STRINGS_DEQ_DIFF"], [140, 0, 1, "_CPPv4N4cvc58SkolemId19STRINGS_ITOS_RESULTE", "cvc5::SkolemId::STRINGS_ITOS_RESULT"], [140, 0, 1, "_CPPv4N4cvc58SkolemId17STRINGS_NUM_OCCURE", "cvc5::SkolemId::STRINGS_NUM_OCCUR"], [140, 0, 1, "_CPPv4N4cvc58SkolemId20STRINGS_NUM_OCCUR_REE", "cvc5::SkolemId::STRINGS_NUM_OCCUR_RE"], [140, 0, 1, "_CPPv4N4cvc58SkolemId19STRINGS_OCCUR_INDEXE", "cvc5::SkolemId::STRINGS_OCCUR_INDEX"], [140, 0, 1, "_CPPv4N4cvc58SkolemId22STRINGS_OCCUR_INDEX_REE", "cvc5::SkolemId::STRINGS_OCCUR_INDEX_RE"], [140, 0, 1, "_CPPv4N4cvc58SkolemId20STRINGS_OCCUR_LEN_REE", "cvc5::SkolemId::STRINGS_OCCUR_LEN_RE"], [140, 0, 1, "_CPPv4N4cvc58SkolemId26STRINGS_REPLACE_ALL_RESULTE", "cvc5::SkolemId::STRINGS_REPLACE_ALL_RESULT"], [140, 0, 1, "_CPPv4N4cvc58SkolemId22STRINGS_STOI_NON_DIGITE", "cvc5::SkolemId::STRINGS_STOI_NON_DIGIT"], [140, 0, 1, "_CPPv4N4cvc58SkolemId19STRINGS_STOI_RESULTE", "cvc5::SkolemId::STRINGS_STOI_RESULT"], [140, 0, 1, "_CPPv4N4cvc58SkolemId17TABLES_GROUP_PARTE", "cvc5::SkolemId::TABLES_GROUP_PART"], [140, 0, 1, "_CPPv4N4cvc58SkolemId25TABLES_GROUP_PART_ELEMENTE", "cvc5::SkolemId::TABLES_GROUP_PART_ELEMENT"], [140, 0, 1, "_CPPv4N4cvc58SkolemId21TRANSCENDENTAL_PURIFYE", "cvc5::SkolemId::TRANSCENDENTAL_PURIFY"], [140, 0, 1, "_CPPv4N4cvc58SkolemId25TRANSCENDENTAL_PURIFY_ARGE", "cvc5::SkolemId::TRANSCENDENTAL_PURIFY_ARG"], [140, 0, 1, "_CPPv4N4cvc58SkolemId31TRANSCENDENTAL_SINE_PHASE_SHIFTE", "cvc5::SkolemId::TRANSCENDENTAL_SINE_PHASE_SHIFT"], [43, 3, 1, "_CPPv4N4cvc56SolverE", "cvc5::Solver"], [43, 5, 1, "_CPPv4N4cvc56Solver6SolverER11TermManager", "cvc5::Solver::Solver"], [43, 5, 1, "_CPPv4N4cvc56Solver6SolverERK6Solver", "cvc5::Solver::Solver"], [43, 5, 1, "_CPPv4N4cvc56Solver6SolverEv", "cvc5::Solver::Solver"], [43, 6, 1, "_CPPv4N4cvc56Solver6SolverER11TermManager", "cvc5::Solver::Solver::tm"], [43, 5, 1, "_CPPv4N4cvc56Solver9addPluginER6Plugin", "cvc5::Solver::addPlugin"], [43, 6, 1, "_CPPv4N4cvc56Solver9addPluginER6Plugin", "cvc5::Solver::addPlugin::p"], [43, 5, 1, "_CPPv4NK4cvc56Solver14addSygusAssumeERK4Term", "cvc5::Solver::addSygusAssume"], [43, 6, 1, "_CPPv4NK4cvc56Solver14addSygusAssumeERK4Term", "cvc5::Solver::addSygusAssume::term"], [43, 5, 1, "_CPPv4NK4cvc56Solver18addSygusConstraintERK4Term", "cvc5::Solver::addSygusConstraint"], [43, 6, 1, "_CPPv4NK4cvc56Solver18addSygusConstraintERK4Term", "cvc5::Solver::addSygusConstraint::term"], [43, 5, 1, "_CPPv4NK4cvc56Solver21addSygusInvConstraintERK4TermRK4TermRK4TermRK4Term", "cvc5::Solver::addSygusInvConstraint"], [43, 6, 1, "_CPPv4NK4cvc56Solver21addSygusInvConstraintERK4TermRK4TermRK4TermRK4Term", "cvc5::Solver::addSygusInvConstraint::inv"], [43, 6, 1, "_CPPv4NK4cvc56Solver21addSygusInvConstraintERK4TermRK4TermRK4TermRK4Term", "cvc5::Solver::addSygusInvConstraint::post"], [43, 6, 1, "_CPPv4NK4cvc56Solver21addSygusInvConstraintERK4TermRK4TermRK4TermRK4Term", "cvc5::Solver::addSygusInvConstraint::pre"], [43, 6, 1, "_CPPv4NK4cvc56Solver21addSygusInvConstraintERK4TermRK4TermRK4TermRK4Term", "cvc5::Solver::addSygusInvConstraint::trans"], [43, 5, 1, "_CPPv4NK4cvc56Solver13assertFormulaERK4Term", "cvc5::Solver::assertFormula"], [43, 6, 1, "_CPPv4NK4cvc56Solver13assertFormulaERK4Term", "cvc5::Solver::assertFormula::term"], [43, 5, 1, "_CPPv4NK4cvc56Solver10blockModelEN5modes15BlockModelsModeE", "cvc5::Solver::blockModel"], [43, 6, 1, "_CPPv4NK4cvc56Solver10blockModelEN5modes15BlockModelsModeE", "cvc5::Solver::blockModel::mode"], [43, 5, 1, "_CPPv4NK4cvc56Solver16blockModelValuesERKNSt6vectorI4TermEE", "cvc5::Solver::blockModelValues"], [43, 6, 1, "_CPPv4NK4cvc56Solver16blockModelValuesERKNSt6vectorI4TermEE", "cvc5::Solver::blockModelValues::terms"], [43, 5, 1, "_CPPv4NK4cvc56Solver8checkSatEv", "cvc5::Solver::checkSat"], [43, 5, 1, "_CPPv4NK4cvc56Solver16checkSatAssumingERK4Term", "cvc5::Solver::checkSatAssuming"], [43, 5, 1, "_CPPv4NK4cvc56Solver16checkSatAssumingERKNSt6vectorI4TermEE", "cvc5::Solver::checkSatAssuming"], [43, 6, 1, "_CPPv4NK4cvc56Solver16checkSatAssumingERK4Term", "cvc5::Solver::checkSatAssuming::assumption"], [43, 6, 1, "_CPPv4NK4cvc56Solver16checkSatAssumingERKNSt6vectorI4TermEE", "cvc5::Solver::checkSatAssuming::assumptions"], [43, 5, 1, "_CPPv4NK4cvc56Solver10checkSynthEv", "cvc5::Solver::checkSynth"], [43, 5, 1, "_CPPv4NK4cvc56Solver14checkSynthNextEv", "cvc5::Solver::checkSynthNext"], [43, 5, 1, "_CPPv4NK4cvc56Solver15declareDatatypeERKNSt6stringERKNSt6vectorI23DatatypeConstructorDeclEE", "cvc5::Solver::declareDatatype"], [43, 6, 1, "_CPPv4NK4cvc56Solver15declareDatatypeERKNSt6stringERKNSt6vectorI23DatatypeConstructorDeclEE", "cvc5::Solver::declareDatatype::ctors"], [43, 6, 1, "_CPPv4NK4cvc56Solver15declareDatatypeERKNSt6stringERKNSt6vectorI23DatatypeConstructorDeclEE", "cvc5::Solver::declareDatatype::symbol"], [43, 5, 1, "_CPPv4NK4cvc56Solver10declareFunERKNSt6stringERKNSt6vectorI4SortEERK4Sortb", "cvc5::Solver::declareFun"], [43, 6, 1, "_CPPv4NK4cvc56Solver10declareFunERKNSt6stringERKNSt6vectorI4SortEERK4Sortb", "cvc5::Solver::declareFun::fresh"], [43, 6, 1, "_CPPv4NK4cvc56Solver10declareFunERKNSt6stringERKNSt6vectorI4SortEERK4Sortb", "cvc5::Solver::declareFun::sort"], [43, 6, 1, "_CPPv4NK4cvc56Solver10declareFunERKNSt6stringERKNSt6vectorI4SortEERK4Sortb", "cvc5::Solver::declareFun::sorts"], [43, 6, 1, "_CPPv4NK4cvc56Solver10declareFunERKNSt6stringERKNSt6vectorI4SortEERK4Sortb", "cvc5::Solver::declareFun::symbol"], [43, 5, 1, "_CPPv4NK4cvc56Solver16declareOracleFunERKNSt6stringERKNSt6vectorI4SortEERK4SortNSt8functionIF4TermRKNSt6vectorI4TermEEEEE", "cvc5::Solver::declareOracleFun"], [43, 6, 1, "_CPPv4NK4cvc56Solver16declareOracleFunERKNSt6stringERKNSt6vectorI4SortEERK4SortNSt8functionIF4TermRKNSt6vectorI4TermEEEEE", "cvc5::Solver::declareOracleFun::fn"], [43, 6, 1, "_CPPv4NK4cvc56Solver16declareOracleFunERKNSt6stringERKNSt6vectorI4SortEERK4SortNSt8functionIF4TermRKNSt6vectorI4TermEEEEE", "cvc5::Solver::declareOracleFun::sort"], [43, 6, 1, "_CPPv4NK4cvc56Solver16declareOracleFunERKNSt6stringERKNSt6vectorI4SortEERK4SortNSt8functionIF4TermRKNSt6vectorI4TermEEEEE", "cvc5::Solver::declareOracleFun::sorts"], [43, 6, 1, "_CPPv4NK4cvc56Solver16declareOracleFunERKNSt6stringERKNSt6vectorI4SortEERK4SortNSt8functionIF4TermRKNSt6vectorI4TermEEEEE", "cvc5::Solver::declareOracleFun::symbol"], [43, 5, 1, "_CPPv4NK4cvc56Solver11declarePoolERKNSt6stringERK4SortRKNSt6vectorI4TermEE", "cvc5::Solver::declarePool"], [43, 6, 1, "_CPPv4NK4cvc56Solver11declarePoolERKNSt6stringERK4SortRKNSt6vectorI4TermEE", "cvc5::Solver::declarePool::initValue"], [43, 6, 1, "_CPPv4NK4cvc56Solver11declarePoolERKNSt6stringERK4SortRKNSt6vectorI4TermEE", "cvc5::Solver::declarePool::sort"], [43, 6, 1, "_CPPv4NK4cvc56Solver11declarePoolERKNSt6stringERK4SortRKNSt6vectorI4TermEE", "cvc5::Solver::declarePool::symbol"], [43, 5, 1, "_CPPv4NK4cvc56Solver14declareSepHeapERK4SortRK4Sort", "cvc5::Solver::declareSepHeap"], [43, 6, 1, "_CPPv4NK4cvc56Solver14declareSepHeapERK4SortRK4Sort", "cvc5::Solver::declareSepHeap::dataSort"], [43, 6, 1, "_CPPv4NK4cvc56Solver14declareSepHeapERK4SortRK4Sort", "cvc5::Solver::declareSepHeap::locSort"], [43, 5, 1, "_CPPv4NK4cvc56Solver11declareSortERKNSt6stringE8uint32_tb", "cvc5::Solver::declareSort"], [43, 6, 1, "_CPPv4NK4cvc56Solver11declareSortERKNSt6stringE8uint32_tb", "cvc5::Solver::declareSort::arity"], [43, 6, 1, "_CPPv4NK4cvc56Solver11declareSortERKNSt6stringE8uint32_tb", "cvc5::Solver::declareSort::fresh"], [43, 6, 1, "_CPPv4NK4cvc56Solver11declareSortERKNSt6stringE8uint32_tb", "cvc5::Solver::declareSort::symbol"], [43, 5, 1, "_CPPv4NK4cvc56Solver15declareSygusVarERKNSt6stringERK4Sort", "cvc5::Solver::declareSygusVar"], [43, 6, 1, "_CPPv4NK4cvc56Solver15declareSygusVarERKNSt6stringERK4Sort", "cvc5::Solver::declareSygusVar::sort"], [43, 6, 1, "_CPPv4NK4cvc56Solver15declareSygusVarERKNSt6stringERK4Sort", "cvc5::Solver::declareSygusVar::symbol"], [43, 5, 1, "_CPPv4NK4cvc56Solver9defineFunERKNSt6stringERKNSt6vectorI4TermEERK4SortRK4Termb", "cvc5::Solver::defineFun"], [43, 6, 1, "_CPPv4NK4cvc56Solver9defineFunERKNSt6stringERKNSt6vectorI4TermEERK4SortRK4Termb", "cvc5::Solver::defineFun::bound_vars"], [43, 6, 1, "_CPPv4NK4cvc56Solver9defineFunERKNSt6stringERKNSt6vectorI4TermEERK4SortRK4Termb", "cvc5::Solver::defineFun::global"], [43, 6, 1, "_CPPv4NK4cvc56Solver9defineFunERKNSt6stringERKNSt6vectorI4TermEERK4SortRK4Termb", "cvc5::Solver::defineFun::sort"], [43, 6, 1, "_CPPv4NK4cvc56Solver9defineFunERKNSt6stringERKNSt6vectorI4TermEERK4SortRK4Termb", "cvc5::Solver::defineFun::symbol"], [43, 6, 1, "_CPPv4NK4cvc56Solver9defineFunERKNSt6stringERKNSt6vectorI4TermEERK4SortRK4Termb", "cvc5::Solver::defineFun::term"], [43, 5, 1, "_CPPv4NK4cvc56Solver12defineFunRecERK4TermRKNSt6vectorI4TermEERK4Termb", "cvc5::Solver::defineFunRec"], [43, 5, 1, "_CPPv4NK4cvc56Solver12defineFunRecERKNSt6stringERKNSt6vectorI4TermEERK4SortRK4Termb", "cvc5::Solver::defineFunRec"], [43, 6, 1, "_CPPv4NK4cvc56Solver12defineFunRecERK4TermRKNSt6vectorI4TermEERK4Termb", "cvc5::Solver::defineFunRec::bound_vars"], [43, 6, 1, "_CPPv4NK4cvc56Solver12defineFunRecERKNSt6stringERKNSt6vectorI4TermEERK4SortRK4Termb", "cvc5::Solver::defineFunRec::bound_vars"], [43, 6, 1, "_CPPv4NK4cvc56Solver12defineFunRecERK4TermRKNSt6vectorI4TermEERK4Termb", "cvc5::Solver::defineFunRec::fun"], [43, 6, 1, "_CPPv4NK4cvc56Solver12defineFunRecERK4TermRKNSt6vectorI4TermEERK4Termb", "cvc5::Solver::defineFunRec::global"], [43, 6, 1, "_CPPv4NK4cvc56Solver12defineFunRecERKNSt6stringERKNSt6vectorI4TermEERK4SortRK4Termb", "cvc5::Solver::defineFunRec::global"], [43, 6, 1, "_CPPv4NK4cvc56Solver12defineFunRecERKNSt6stringERKNSt6vectorI4TermEERK4SortRK4Termb", "cvc5::Solver::defineFunRec::sort"], [43, 6, 1, "_CPPv4NK4cvc56Solver12defineFunRecERKNSt6stringERKNSt6vectorI4TermEERK4SortRK4Termb", "cvc5::Solver::defineFunRec::symbol"], [43, 6, 1, "_CPPv4NK4cvc56Solver12defineFunRecERK4TermRKNSt6vectorI4TermEERK4Termb", "cvc5::Solver::defineFunRec::term"], [43, 6, 1, "_CPPv4NK4cvc56Solver12defineFunRecERKNSt6stringERKNSt6vectorI4TermEERK4SortRK4Termb", "cvc5::Solver::defineFunRec::term"], [43, 5, 1, "_CPPv4NK4cvc56Solver13defineFunsRecERKNSt6vectorI4TermEERKNSt6vectorINSt6vectorI4TermEEEERKNSt6vectorI4TermEEb", "cvc5::Solver::defineFunsRec"], [43, 6, 1, "_CPPv4NK4cvc56Solver13defineFunsRecERKNSt6vectorI4TermEERKNSt6vectorINSt6vectorI4TermEEEERKNSt6vectorI4TermEEb", "cvc5::Solver::defineFunsRec::bound_vars"], [43, 6, 1, "_CPPv4NK4cvc56Solver13defineFunsRecERKNSt6vectorI4TermEERKNSt6vectorINSt6vectorI4TermEEEERKNSt6vectorI4TermEEb", "cvc5::Solver::defineFunsRec::funs"], [43, 6, 1, "_CPPv4NK4cvc56Solver13defineFunsRecERKNSt6vectorI4TermEERKNSt6vectorINSt6vectorI4TermEEEERKNSt6vectorI4TermEEb", "cvc5::Solver::defineFunsRec::global"], [43, 6, 1, "_CPPv4NK4cvc56Solver13defineFunsRecERKNSt6vectorI4TermEERKNSt6vectorINSt6vectorI4TermEEEERKNSt6vectorI4TermEEb", "cvc5::Solver::defineFunsRec::terms"], [43, 5, 1, "_CPPv4NK4cvc56Solver9findSynthEN5modes15FindSynthTargetE", "cvc5::Solver::findSynth"], [43, 5, 1, "_CPPv4NK4cvc56Solver9findSynthEN5modes15FindSynthTargetER7Grammar", "cvc5::Solver::findSynth"], [43, 6, 1, "_CPPv4NK4cvc56Solver9findSynthEN5modes15FindSynthTargetE", "cvc5::Solver::findSynth::fst"], [43, 6, 1, "_CPPv4NK4cvc56Solver9findSynthEN5modes15FindSynthTargetER7Grammar", "cvc5::Solver::findSynth::fst"], [43, 6, 1, "_CPPv4NK4cvc56Solver9findSynthEN5modes15FindSynthTargetER7Grammar", "cvc5::Solver::findSynth::grammar"], [43, 5, 1, "_CPPv4NK4cvc56Solver13findSynthNextEv", "cvc5::Solver::findSynthNext"], [43, 5, 1, "_CPPv4NK4cvc56Solver9getAbductERK4Term", "cvc5::Solver::getAbduct"], [43, 5, 1, "_CPPv4NK4cvc56Solver9getAbductERK4TermR7Grammar", "cvc5::Solver::getAbduct"], [43, 6, 1, "_CPPv4NK4cvc56Solver9getAbductERK4Term", "cvc5::Solver::getAbduct::conj"], [43, 6, 1, "_CPPv4NK4cvc56Solver9getAbductERK4TermR7Grammar", "cvc5::Solver::getAbduct::conj"], [43, 6, 1, "_CPPv4NK4cvc56Solver9getAbductERK4TermR7Grammar", "cvc5::Solver::getAbduct::grammar"], [43, 5, 1, "_CPPv4NK4cvc56Solver13getAbductNextEv", "cvc5::Solver::getAbductNext"], [43, 5, 1, "_CPPv4NK4cvc56Solver13getAssertionsEv", "cvc5::Solver::getAssertions"], [43, 5, 1, "_CPPv4NK4cvc56Solver14getBooleanSortEv", "cvc5::Solver::getBooleanSort"], [43, 5, 1, "_CPPv4NK4cvc56Solver13getDifficultyEv", "cvc5::Solver::getDifficulty"], [43, 5, 1, "_CPPv4NK4cvc56Solver16getDriverOptionsEv", "cvc5::Solver::getDriverOptions"], [43, 5, 1, "_CPPv4NK4cvc56Solver7getInfoERKNSt6stringE", "cvc5::Solver::getInfo"], [43, 6, 1, "_CPPv4NK4cvc56Solver7getInfoERKNSt6stringE", "cvc5::Solver::getInfo::flag"], [43, 5, 1, "_CPPv4NK4cvc56Solver17getInstantiationsEv", "cvc5::Solver::getInstantiations"], [43, 5, 1, "_CPPv4NK4cvc56Solver14getIntegerSortEv", "cvc5::Solver::getIntegerSort"], [43, 5, 1, "_CPPv4NK4cvc56Solver14getInterpolantERK4Term", "cvc5::Solver::getInterpolant"], [43, 5, 1, "_CPPv4NK4cvc56Solver14getInterpolantERK4TermR7Grammar", "cvc5::Solver::getInterpolant"], [43, 6, 1, "_CPPv4NK4cvc56Solver14getInterpolantERK4Term", "cvc5::Solver::getInterpolant::conj"], [43, 6, 1, "_CPPv4NK4cvc56Solver14getInterpolantERK4TermR7Grammar", "cvc5::Solver::getInterpolant::conj"], [43, 6, 1, "_CPPv4NK4cvc56Solver14getInterpolantERK4TermR7Grammar", "cvc5::Solver::getInterpolant::grammar"], [43, 5, 1, "_CPPv4NK4cvc56Solver18getInterpolantNextEv", "cvc5::Solver::getInterpolantNext"], [43, 5, 1, "_CPPv4NK4cvc56Solver18getLearnedLiteralsEN5modes14LearnedLitTypeE", "cvc5::Solver::getLearnedLiterals"], [43, 6, 1, "_CPPv4NK4cvc56Solver18getLearnedLiteralsEN5modes14LearnedLitTypeE", "cvc5::Solver::getLearnedLiterals::t"], [43, 5, 1, "_CPPv4NK4cvc56Solver8getLogicEv", "cvc5::Solver::getLogic"], [43, 5, 1, "_CPPv4NK4cvc56Solver8getModelERKNSt6vectorI4SortEERKNSt6vectorI4TermEE", "cvc5::Solver::getModel"], [43, 6, 1, "_CPPv4NK4cvc56Solver8getModelERKNSt6vectorI4SortEERKNSt6vectorI4TermEE", "cvc5::Solver::getModel::consts"], [43, 6, 1, "_CPPv4NK4cvc56Solver8getModelERKNSt6vectorI4SortEERKNSt6vectorI4TermEE", "cvc5::Solver::getModel::sorts"], [43, 5, 1, "_CPPv4NK4cvc56Solver22getModelDomainElementsERK4Sort", "cvc5::Solver::getModelDomainElements"], [43, 6, 1, "_CPPv4NK4cvc56Solver22getModelDomainElementsERK4Sort", "cvc5::Solver::getModelDomainElements::s"], [43, 5, 1, "_CPPv4NK4cvc56Solver9getOptionERKNSt6stringE", "cvc5::Solver::getOption"], [43, 6, 1, "_CPPv4NK4cvc56Solver9getOptionERKNSt6stringE", "cvc5::Solver::getOption::option"], [43, 5, 1, "_CPPv4NK4cvc56Solver13getOptionInfoERKNSt6stringE", "cvc5::Solver::getOptionInfo"], [43, 6, 1, "_CPPv4NK4cvc56Solver13getOptionInfoERKNSt6stringE", "cvc5::Solver::getOptionInfo::option"], [43, 5, 1, "_CPPv4NK4cvc56Solver14getOptionNamesEv", "cvc5::Solver::getOptionNames"], [43, 5, 1, "_CPPv4NK4cvc56Solver9getOutputERKNSt6stringE", "cvc5::Solver::getOutput"], [43, 6, 1, "_CPPv4NK4cvc56Solver9getOutputERKNSt6stringE", "cvc5::Solver::getOutput::tag"], [43, 5, 1, "_CPPv4NK4cvc56Solver8getProofEN5modes14ProofComponentE", "cvc5::Solver::getProof"], [43, 6, 1, "_CPPv4NK4cvc56Solver8getProofEN5modes14ProofComponentE", "cvc5::Solver::getProof::c"], [43, 5, 1, "_CPPv4NK4cvc56Solver24getQuantifierEliminationERK4Term", "cvc5::Solver::getQuantifierElimination"], [43, 6, 1, "_CPPv4NK4cvc56Solver24getQuantifierEliminationERK4Term", "cvc5::Solver::getQuantifierElimination::q"], [43, 5, 1, "_CPPv4NK4cvc56Solver32getQuantifierEliminationDisjunctERK4Term", "cvc5::Solver::getQuantifierEliminationDisjunct"], [43, 6, 1, "_CPPv4NK4cvc56Solver32getQuantifierEliminationDisjunctERK4Term", "cvc5::Solver::getQuantifierEliminationDisjunct::q"], [43, 5, 1, "_CPPv4NK4cvc56Solver11getRealSortEv", "cvc5::Solver::getRealSort"], [43, 5, 1, "_CPPv4NK4cvc56Solver13getRegExpSortEv", "cvc5::Solver::getRegExpSort"], [43, 5, 1, "_CPPv4NK4cvc56Solver19getRoundingModeSortEv", "cvc5::Solver::getRoundingModeSort"], [43, 5, 1, "_CPPv4NK4cvc56Solver13getStatisticsEv", "cvc5::Solver::getStatistics"], [43, 5, 1, "_CPPv4NK4cvc56Solver13getStringSortEv", "cvc5::Solver::getStringSort"], [43, 5, 1, "_CPPv4NK4cvc56Solver19getSygusAssumptionsEv", "cvc5::Solver::getSygusAssumptions"], [43, 5, 1, "_CPPv4NK4cvc56Solver19getSygusConstraintsEv", "cvc5::Solver::getSygusConstraints"], [43, 5, 1, "_CPPv4NK4cvc56Solver16getSynthSolutionERK4Term", "cvc5::Solver::getSynthSolution"], [43, 6, 1, "_CPPv4NK4cvc56Solver16getSynthSolutionERK4Term", "cvc5::Solver::getSynthSolution::term"], [43, 5, 1, "_CPPv4NK4cvc56Solver17getSynthSolutionsERKNSt6vectorI4TermEE", "cvc5::Solver::getSynthSolutions"], [43, 6, 1, "_CPPv4NK4cvc56Solver17getSynthSolutionsERKNSt6vectorI4TermEE", "cvc5::Solver::getSynthSolutions::terms"], [43, 5, 1, "_CPPv4NK4cvc56Solver14getTermManagerEv", "cvc5::Solver::getTermManager"], [43, 5, 1, "_CPPv4NK4cvc56Solver14getTimeoutCoreEv", "cvc5::Solver::getTimeoutCore"], [43, 5, 1, "_CPPv4NK4cvc56Solver22getTimeoutCoreAssumingERKNSt6vectorI4TermEE", "cvc5::Solver::getTimeoutCoreAssuming"], [43, 6, 1, "_CPPv4NK4cvc56Solver22getTimeoutCoreAssumingERKNSt6vectorI4TermEE", "cvc5::Solver::getTimeoutCoreAssuming::assumptions"], [43, 5, 1, "_CPPv4NK4cvc56Solver19getUnsatAssumptionsEv", "cvc5::Solver::getUnsatAssumptions"], [43, 5, 1, "_CPPv4NK4cvc56Solver12getUnsatCoreEv", "cvc5::Solver::getUnsatCore"], [43, 5, 1, "_CPPv4NK4cvc56Solver18getUnsatCoreLemmasEv", "cvc5::Solver::getUnsatCoreLemmas"], [43, 5, 1, "_CPPv4NK4cvc56Solver8getValueERK4Term", "cvc5::Solver::getValue"], [43, 5, 1, "_CPPv4NK4cvc56Solver8getValueERKNSt6vectorI4TermEE", "cvc5::Solver::getValue"], [43, 6, 1, "_CPPv4NK4cvc56Solver8getValueERK4Term", "cvc5::Solver::getValue::term"], [43, 6, 1, "_CPPv4NK4cvc56Solver8getValueERKNSt6vectorI4TermEE", "cvc5::Solver::getValue::terms"], [43, 5, 1, "_CPPv4NK4cvc56Solver15getValueSepHeapEv", "cvc5::Solver::getValueSepHeap"], [43, 5, 1, "_CPPv4NK4cvc56Solver14getValueSepNilEv", "cvc5::Solver::getValueSepNil"], [43, 5, 1, "_CPPv4NK4cvc56Solver10getVersionEv", "cvc5::Solver::getVersion"], [43, 5, 1, "_CPPv4NK4cvc56Solver10isLogicSetEv", "cvc5::Solver::isLogicSet"], [43, 5, 1, "_CPPv4NK4cvc56Solver17isModelCoreSymbolERK4Term", "cvc5::Solver::isModelCoreSymbol"], [43, 6, 1, "_CPPv4NK4cvc56Solver17isModelCoreSymbolERK4Term", "cvc5::Solver::isModelCoreSymbol::v"], [43, 5, 1, "_CPPv4NK4cvc56Solver10isOutputOnERKNSt6stringE", "cvc5::Solver::isOutputOn"], [43, 6, 1, "_CPPv4NK4cvc56Solver10isOutputOnERKNSt6stringE", "cvc5::Solver::isOutputOn::tag"], [43, 5, 1, "_CPPv4NK4cvc56Solver14mkAbstractSortE8SortKind", "cvc5::Solver::mkAbstractSort"], [43, 6, 1, "_CPPv4NK4cvc56Solver14mkAbstractSortE8SortKind", "cvc5::Solver::mkAbstractSort::k"], [43, 5, 1, "_CPPv4NK4cvc56Solver11mkArraySortERK4SortRK4Sort", "cvc5::Solver::mkArraySort"], [43, 6, 1, "_CPPv4NK4cvc56Solver11mkArraySortERK4SortRK4Sort", "cvc5::Solver::mkArraySort::elemSort"], [43, 6, 1, "_CPPv4NK4cvc56Solver11mkArraySortERK4SortRK4Sort", "cvc5::Solver::mkArraySort::indexSort"], [43, 5, 1, "_CPPv4NK4cvc56Solver9mkBagSortERK4Sort", "cvc5::Solver::mkBagSort"], [43, 6, 1, "_CPPv4NK4cvc56Solver9mkBagSortERK4Sort", "cvc5::Solver::mkBagSort::elemSort"], [43, 5, 1, "_CPPv4NK4cvc56Solver11mkBitVectorE8uint32_t8uint64_t", "cvc5::Solver::mkBitVector"], [43, 5, 1, "_CPPv4NK4cvc56Solver11mkBitVectorE8uint32_tRKNSt6stringE8uint32_t", "cvc5::Solver::mkBitVector"], [43, 6, 1, "_CPPv4NK4cvc56Solver11mkBitVectorE8uint32_tRKNSt6stringE8uint32_t", "cvc5::Solver::mkBitVector::base"], [43, 6, 1, "_CPPv4NK4cvc56Solver11mkBitVectorE8uint32_tRKNSt6stringE8uint32_t", "cvc5::Solver::mkBitVector::s"], [43, 6, 1, "_CPPv4NK4cvc56Solver11mkBitVectorE8uint32_t8uint64_t", "cvc5::Solver::mkBitVector::size"], [43, 6, 1, "_CPPv4NK4cvc56Solver11mkBitVectorE8uint32_tRKNSt6stringE8uint32_t", "cvc5::Solver::mkBitVector::size"], [43, 6, 1, "_CPPv4NK4cvc56Solver11mkBitVectorE8uint32_t8uint64_t", "cvc5::Solver::mkBitVector::val"], [43, 5, 1, "_CPPv4NK4cvc56Solver15mkBitVectorSortE8uint32_t", "cvc5::Solver::mkBitVectorSort"], [43, 6, 1, "_CPPv4NK4cvc56Solver15mkBitVectorSortE8uint32_t", "cvc5::Solver::mkBitVectorSort::size"], [43, 5, 1, "_CPPv4NK4cvc56Solver9mkBooleanEb", "cvc5::Solver::mkBoolean"], [43, 6, 1, "_CPPv4NK4cvc56Solver9mkBooleanEb", "cvc5::Solver::mkBoolean::val"], [43, 5, 1, "_CPPv4NK4cvc56Solver23mkCardinalityConstraintERK4Sort8uint32_t", "cvc5::Solver::mkCardinalityConstraint"], [43, 6, 1, "_CPPv4NK4cvc56Solver23mkCardinalityConstraintERK4Sort8uint32_t", "cvc5::Solver::mkCardinalityConstraint::sort"], [43, 6, 1, "_CPPv4NK4cvc56Solver23mkCardinalityConstraintERK4Sort8uint32_t", "cvc5::Solver::mkCardinalityConstraint::upperBound"], [43, 5, 1, "_CPPv4NK4cvc56Solver7mkConstERK4SortRKNSt8optionalINSt6stringEEE", "cvc5::Solver::mkConst"], [43, 6, 1, "_CPPv4NK4cvc56Solver7mkConstERK4SortRKNSt8optionalINSt6stringEEE", "cvc5::Solver::mkConst::sort"], [43, 6, 1, "_CPPv4NK4cvc56Solver7mkConstERK4SortRKNSt8optionalINSt6stringEEE", "cvc5::Solver::mkConst::symbol"], [43, 5, 1, "_CPPv4NK4cvc56Solver12mkConstArrayERK4SortRK4Term", "cvc5::Solver::mkConstArray"], [43, 6, 1, "_CPPv4NK4cvc56Solver12mkConstArrayERK4SortRK4Term", "cvc5::Solver::mkConstArray::sort"], [43, 6, 1, "_CPPv4NK4cvc56Solver12mkConstArrayERK4SortRK4Term", "cvc5::Solver::mkConstArray::val"], [43, 5, 1, "_CPPv4N4cvc56Solver25mkDatatypeConstructorDeclERKNSt6stringE", "cvc5::Solver::mkDatatypeConstructorDecl"], [43, 6, 1, "_CPPv4N4cvc56Solver25mkDatatypeConstructorDeclERKNSt6stringE", "cvc5::Solver::mkDatatypeConstructorDecl::name"], [43, 5, 1, "_CPPv4N4cvc56Solver14mkDatatypeDeclERKNSt6stringERKNSt6vectorI4SortEEb", "cvc5::Solver::mkDatatypeDecl"], [43, 5, 1, "_CPPv4N4cvc56Solver14mkDatatypeDeclERKNSt6stringEb", "cvc5::Solver::mkDatatypeDecl"], [43, 6, 1, "_CPPv4N4cvc56Solver14mkDatatypeDeclERKNSt6stringERKNSt6vectorI4SortEEb", "cvc5::Solver::mkDatatypeDecl::isCoDatatype"], [43, 6, 1, "_CPPv4N4cvc56Solver14mkDatatypeDeclERKNSt6stringEb", "cvc5::Solver::mkDatatypeDecl::isCoDatatype"], [43, 6, 1, "_CPPv4N4cvc56Solver14mkDatatypeDeclERKNSt6stringERKNSt6vectorI4SortEEb", "cvc5::Solver::mkDatatypeDecl::name"], [43, 6, 1, "_CPPv4N4cvc56Solver14mkDatatypeDeclERKNSt6stringEb", "cvc5::Solver::mkDatatypeDecl::name"], [43, 6, 1, "_CPPv4N4cvc56Solver14mkDatatypeDeclERKNSt6stringERKNSt6vectorI4SortEEb", "cvc5::Solver::mkDatatypeDecl::params"], [43, 5, 1, "_CPPv4NK4cvc56Solver14mkDatatypeSortERK12DatatypeDecl", "cvc5::Solver::mkDatatypeSort"], [43, 6, 1, "_CPPv4NK4cvc56Solver14mkDatatypeSortERK12DatatypeDecl", "cvc5::Solver::mkDatatypeSort::dtypedecl"], [43, 5, 1, "_CPPv4NK4cvc56Solver15mkDatatypeSortsERKNSt6vectorI12DatatypeDeclEE", "cvc5::Solver::mkDatatypeSorts"], [43, 6, 1, "_CPPv4NK4cvc56Solver15mkDatatypeSortsERKNSt6vectorI12DatatypeDeclEE", "cvc5::Solver::mkDatatypeSorts::dtypedecls"], [43, 5, 1, "_CPPv4NK4cvc56Solver10mkEmptyBagERK4Sort", "cvc5::Solver::mkEmptyBag"], [43, 6, 1, "_CPPv4NK4cvc56Solver10mkEmptyBagERK4Sort", "cvc5::Solver::mkEmptyBag::sort"], [43, 5, 1, "_CPPv4NK4cvc56Solver15mkEmptySequenceERK4Sort", "cvc5::Solver::mkEmptySequence"], [43, 6, 1, "_CPPv4NK4cvc56Solver15mkEmptySequenceERK4Sort", "cvc5::Solver::mkEmptySequence::sort"], [43, 5, 1, "_CPPv4NK4cvc56Solver10mkEmptySetERK4Sort", "cvc5::Solver::mkEmptySet"], [43, 6, 1, "_CPPv4NK4cvc56Solver10mkEmptySetERK4Sort", "cvc5::Solver::mkEmptySet::sort"], [43, 5, 1, "_CPPv4NK4cvc56Solver7mkFalseEv", "cvc5::Solver::mkFalse"], [43, 5, 1, "_CPPv4NK4cvc56Solver17mkFiniteFieldElemERKNSt6stringERK4Sort8uint32_t", "cvc5::Solver::mkFiniteFieldElem"], [43, 6, 1, "_CPPv4NK4cvc56Solver17mkFiniteFieldElemERKNSt6stringERK4Sort8uint32_t", "cvc5::Solver::mkFiniteFieldElem::base"], [43, 6, 1, "_CPPv4NK4cvc56Solver17mkFiniteFieldElemERKNSt6stringERK4Sort8uint32_t", "cvc5::Solver::mkFiniteFieldElem::sort"], [43, 6, 1, "_CPPv4NK4cvc56Solver17mkFiniteFieldElemERKNSt6stringERK4Sort8uint32_t", "cvc5::Solver::mkFiniteFieldElem::value"], [43, 5, 1, "_CPPv4NK4cvc56Solver17mkFiniteFieldSortERKNSt6stringE8uint32_t", "cvc5::Solver::mkFiniteFieldSort"], [43, 6, 1, "_CPPv4NK4cvc56Solver17mkFiniteFieldSortERKNSt6stringE8uint32_t", "cvc5::Solver::mkFiniteFieldSort::base"], [43, 6, 1, "_CPPv4NK4cvc56Solver17mkFiniteFieldSortERKNSt6stringE8uint32_t", "cvc5::Solver::mkFiniteFieldSort::size"], [43, 5, 1, "_CPPv4NK4cvc56Solver15mkFloatingPointE8uint32_t8uint32_tRK4Term", "cvc5::Solver::mkFloatingPoint"], [43, 5, 1, "_CPPv4NK4cvc56Solver15mkFloatingPointERK4TermRK4TermRK4Term", "cvc5::Solver::mkFloatingPoint"], [43, 6, 1, "_CPPv4NK4cvc56Solver15mkFloatingPointE8uint32_t8uint32_tRK4Term", "cvc5::Solver::mkFloatingPoint::exp"], [43, 6, 1, "_CPPv4NK4cvc56Solver15mkFloatingPointERK4TermRK4TermRK4Term", "cvc5::Solver::mkFloatingPoint::exp"], [43, 6, 1, "_CPPv4NK4cvc56Solver15mkFloatingPointE8uint32_t8uint32_tRK4Term", "cvc5::Solver::mkFloatingPoint::sig"], [43, 6, 1, "_CPPv4NK4cvc56Solver15mkFloatingPointERK4TermRK4TermRK4Term", "cvc5::Solver::mkFloatingPoint::sig"], [43, 6, 1, "_CPPv4NK4cvc56Solver15mkFloatingPointERK4TermRK4TermRK4Term", "cvc5::Solver::mkFloatingPoint::sign"], [43, 6, 1, "_CPPv4NK4cvc56Solver15mkFloatingPointE8uint32_t8uint32_tRK4Term", "cvc5::Solver::mkFloatingPoint::val"], [43, 5, 1, "_CPPv4NK4cvc56Solver18mkFloatingPointNaNE8uint32_t8uint32_t", "cvc5::Solver::mkFloatingPointNaN"], [43, 6, 1, "_CPPv4NK4cvc56Solver18mkFloatingPointNaNE8uint32_t8uint32_t", "cvc5::Solver::mkFloatingPointNaN::exp"], [43, 6, 1, "_CPPv4NK4cvc56Solver18mkFloatingPointNaNE8uint32_t8uint32_t", "cvc5::Solver::mkFloatingPointNaN::sig"], [43, 5, 1, "_CPPv4NK4cvc56Solver21mkFloatingPointNegInfE8uint32_t8uint32_t", "cvc5::Solver::mkFloatingPointNegInf"], [43, 6, 1, "_CPPv4NK4cvc56Solver21mkFloatingPointNegInfE8uint32_t8uint32_t", "cvc5::Solver::mkFloatingPointNegInf::exp"], [43, 6, 1, "_CPPv4NK4cvc56Solver21mkFloatingPointNegInfE8uint32_t8uint32_t", "cvc5::Solver::mkFloatingPointNegInf::sig"], [43, 5, 1, "_CPPv4NK4cvc56Solver22mkFloatingPointNegZeroE8uint32_t8uint32_t", "cvc5::Solver::mkFloatingPointNegZero"], [43, 6, 1, "_CPPv4NK4cvc56Solver22mkFloatingPointNegZeroE8uint32_t8uint32_t", "cvc5::Solver::mkFloatingPointNegZero::exp"], [43, 6, 1, "_CPPv4NK4cvc56Solver22mkFloatingPointNegZeroE8uint32_t8uint32_t", "cvc5::Solver::mkFloatingPointNegZero::sig"], [43, 5, 1, "_CPPv4NK4cvc56Solver21mkFloatingPointPosInfE8uint32_t8uint32_t", "cvc5::Solver::mkFloatingPointPosInf"], [43, 6, 1, "_CPPv4NK4cvc56Solver21mkFloatingPointPosInfE8uint32_t8uint32_t", "cvc5::Solver::mkFloatingPointPosInf::exp"], [43, 6, 1, "_CPPv4NK4cvc56Solver21mkFloatingPointPosInfE8uint32_t8uint32_t", "cvc5::Solver::mkFloatingPointPosInf::sig"], [43, 5, 1, "_CPPv4NK4cvc56Solver22mkFloatingPointPosZeroE8uint32_t8uint32_t", "cvc5::Solver::mkFloatingPointPosZero"], [43, 6, 1, "_CPPv4NK4cvc56Solver22mkFloatingPointPosZeroE8uint32_t8uint32_t", "cvc5::Solver::mkFloatingPointPosZero::exp"], [43, 6, 1, "_CPPv4NK4cvc56Solver22mkFloatingPointPosZeroE8uint32_t8uint32_t", "cvc5::Solver::mkFloatingPointPosZero::sig"], [43, 5, 1, "_CPPv4NK4cvc56Solver19mkFloatingPointSortE8uint32_t8uint32_t", "cvc5::Solver::mkFloatingPointSort"], [43, 6, 1, "_CPPv4NK4cvc56Solver19mkFloatingPointSortE8uint32_t8uint32_t", "cvc5::Solver::mkFloatingPointSort::exp"], [43, 6, 1, "_CPPv4NK4cvc56Solver19mkFloatingPointSortE8uint32_t8uint32_t", "cvc5::Solver::mkFloatingPointSort::sig"], [43, 5, 1, "_CPPv4NK4cvc56Solver14mkFunctionSortERKNSt6vectorI4SortEERK4Sort", "cvc5::Solver::mkFunctionSort"], [43, 6, 1, "_CPPv4NK4cvc56Solver14mkFunctionSortERKNSt6vectorI4SortEERK4Sort", "cvc5::Solver::mkFunctionSort::codomain"], [43, 6, 1, "_CPPv4NK4cvc56Solver14mkFunctionSortERKNSt6vectorI4SortEERK4Sort", "cvc5::Solver::mkFunctionSort::sorts"], [43, 5, 1, "_CPPv4NK4cvc56Solver9mkGrammarERKNSt6vectorI4TermEERKNSt6vectorI4TermEE", "cvc5::Solver::mkGrammar"], [43, 6, 1, "_CPPv4NK4cvc56Solver9mkGrammarERKNSt6vectorI4TermEERKNSt6vectorI4TermEE", "cvc5::Solver::mkGrammar::boundVars"], [43, 6, 1, "_CPPv4NK4cvc56Solver9mkGrammarERKNSt6vectorI4TermEERKNSt6vectorI4TermEE", "cvc5::Solver::mkGrammar::ntSymbols"], [43, 5, 1, "_CPPv4NK4cvc56Solver9mkIntegerE7int64_t", "cvc5::Solver::mkInteger"], [43, 5, 1, "_CPPv4NK4cvc56Solver9mkIntegerERKNSt6stringE", "cvc5::Solver::mkInteger"], [43, 6, 1, "_CPPv4NK4cvc56Solver9mkIntegerERKNSt6stringE", "cvc5::Solver::mkInteger::s"], [43, 6, 1, "_CPPv4NK4cvc56Solver9mkIntegerE7int64_t", "cvc5::Solver::mkInteger::val"], [43, 5, 1, "_CPPv4NK4cvc56Solver16mkNullableIsNullERK4Term", "cvc5::Solver::mkNullableIsNull"], [43, 6, 1, "_CPPv4NK4cvc56Solver16mkNullableIsNullERK4Term", "cvc5::Solver::mkNullableIsNull::term"], [43, 5, 1, "_CPPv4NK4cvc56Solver16mkNullableIsSomeERK4Term", "cvc5::Solver::mkNullableIsSome"], [43, 6, 1, "_CPPv4NK4cvc56Solver16mkNullableIsSomeERK4Term", "cvc5::Solver::mkNullableIsSome::term"], [43, 5, 1, "_CPPv4NK4cvc56Solver14mkNullableLiftE4KindRKNSt6vectorI4TermEE", "cvc5::Solver::mkNullableLift"], [43, 6, 1, "_CPPv4NK4cvc56Solver14mkNullableLiftE4KindRKNSt6vectorI4TermEE", "cvc5::Solver::mkNullableLift::args"], [43, 6, 1, "_CPPv4NK4cvc56Solver14mkNullableLiftE4KindRKNSt6vectorI4TermEE", "cvc5::Solver::mkNullableLift::kind"], [43, 5, 1, "_CPPv4NK4cvc56Solver14mkNullableNullERK4Sort", "cvc5::Solver::mkNullableNull"], [43, 6, 1, "_CPPv4NK4cvc56Solver14mkNullableNullERK4Sort", "cvc5::Solver::mkNullableNull::sort"], [43, 5, 1, "_CPPv4NK4cvc56Solver14mkNullableSomeERK4Term", "cvc5::Solver::mkNullableSome"], [43, 6, 1, "_CPPv4NK4cvc56Solver14mkNullableSomeERK4Term", "cvc5::Solver::mkNullableSome::term"], [43, 5, 1, "_CPPv4NK4cvc56Solver14mkNullableSortERK4Sort", "cvc5::Solver::mkNullableSort"], [43, 6, 1, "_CPPv4NK4cvc56Solver14mkNullableSortERK4Sort", "cvc5::Solver::mkNullableSort::sort"], [43, 5, 1, "_CPPv4NK4cvc56Solver13mkNullableValERK4Term", "cvc5::Solver::mkNullableVal"], [43, 6, 1, "_CPPv4NK4cvc56Solver13mkNullableValERK4Term", "cvc5::Solver::mkNullableVal::term"], [43, 5, 1, "_CPPv4NK4cvc56Solver4mkOpE4KindRKNSt6stringE", "cvc5::Solver::mkOp"], [43, 5, 1, "_CPPv4NK4cvc56Solver4mkOpE4KindRKNSt6vectorI8uint32_tEE", "cvc5::Solver::mkOp"], [43, 6, 1, "_CPPv4NK4cvc56Solver4mkOpE4KindRKNSt6stringE", "cvc5::Solver::mkOp::arg"], [43, 6, 1, "_CPPv4NK4cvc56Solver4mkOpE4KindRKNSt6vectorI8uint32_tEE", "cvc5::Solver::mkOp::args"], [43, 6, 1, "_CPPv4NK4cvc56Solver4mkOpE4KindRKNSt6stringE", "cvc5::Solver::mkOp::kind"], [43, 6, 1, "_CPPv4NK4cvc56Solver4mkOpE4KindRKNSt6vectorI8uint32_tEE", "cvc5::Solver::mkOp::kind"], [43, 5, 1, "_CPPv4NK4cvc56Solver11mkParamSortERKNSt8optionalINSt6stringEEE", "cvc5::Solver::mkParamSort"], [43, 6, 1, "_CPPv4NK4cvc56Solver11mkParamSortERKNSt8optionalINSt6stringEEE", "cvc5::Solver::mkParamSort::symbol"], [43, 5, 1, "_CPPv4NK4cvc56Solver4mkPiEv", "cvc5::Solver::mkPi"], [43, 5, 1, "_CPPv4NK4cvc56Solver15mkPredicateSortERKNSt6vectorI4SortEE", "cvc5::Solver::mkPredicateSort"], [43, 6, 1, "_CPPv4NK4cvc56Solver15mkPredicateSortERKNSt6vectorI4SortEE", "cvc5::Solver::mkPredicateSort::sorts"], [43, 5, 1, "_CPPv4NK4cvc56Solver6mkRealE7int64_t", "cvc5::Solver::mkReal"], [43, 5, 1, "_CPPv4NK4cvc56Solver6mkRealE7int64_t7int64_t", "cvc5::Solver::mkReal"], [43, 5, 1, "_CPPv4NK4cvc56Solver6mkRealERKNSt6stringE", "cvc5::Solver::mkReal"], [43, 6, 1, "_CPPv4NK4cvc56Solver6mkRealE7int64_t7int64_t", "cvc5::Solver::mkReal::den"], [43, 6, 1, "_CPPv4NK4cvc56Solver6mkRealE7int64_t7int64_t", "cvc5::Solver::mkReal::num"], [43, 6, 1, "_CPPv4NK4cvc56Solver6mkRealERKNSt6stringE", "cvc5::Solver::mkReal::s"], [43, 6, 1, "_CPPv4NK4cvc56Solver6mkRealE7int64_t", "cvc5::Solver::mkReal::val"], [43, 5, 1, "_CPPv4NK4cvc56Solver12mkRecordSortERKNSt6vectorINSt4pairINSt6stringE4SortEEEE", "cvc5::Solver::mkRecordSort"], [43, 6, 1, "_CPPv4NK4cvc56Solver12mkRecordSortERKNSt6vectorINSt4pairINSt6stringE4SortEEEE", "cvc5::Solver::mkRecordSort::fields"], [43, 5, 1, "_CPPv4NK4cvc56Solver11mkRegexpAllEv", "cvc5::Solver::mkRegexpAll"], [43, 5, 1, "_CPPv4NK4cvc56Solver15mkRegexpAllcharEv", "cvc5::Solver::mkRegexpAllchar"], [43, 5, 1, "_CPPv4NK4cvc56Solver12mkRegexpNoneEv", "cvc5::Solver::mkRegexpNone"], [43, 5, 1, "_CPPv4NK4cvc56Solver14mkRoundingModeE12RoundingMode", "cvc5::Solver::mkRoundingMode"], [43, 6, 1, "_CPPv4NK4cvc56Solver14mkRoundingModeE12RoundingMode", "cvc5::Solver::mkRoundingMode::rm"], [43, 5, 1, "_CPPv4NK4cvc56Solver8mkSepEmpEv", "cvc5::Solver::mkSepEmp"], [43, 5, 1, "_CPPv4NK4cvc56Solver8mkSepNilERK4Sort", "cvc5::Solver::mkSepNil"], [43, 6, 1, "_CPPv4NK4cvc56Solver8mkSepNilERK4Sort", "cvc5::Solver::mkSepNil::sort"], [43, 5, 1, "_CPPv4NK4cvc56Solver14mkSequenceSortERK4Sort", "cvc5::Solver::mkSequenceSort"], [43, 6, 1, "_CPPv4NK4cvc56Solver14mkSequenceSortERK4Sort", "cvc5::Solver::mkSequenceSort::elemSort"], [43, 5, 1, "_CPPv4NK4cvc56Solver9mkSetSortERK4Sort", "cvc5::Solver::mkSetSort"], [43, 6, 1, "_CPPv4NK4cvc56Solver9mkSetSortERK4Sort", "cvc5::Solver::mkSetSort::elemSort"], [43, 5, 1, "_CPPv4NK4cvc56Solver8mkStringERKNSt6stringEb", "cvc5::Solver::mkString"], [43, 5, 1, "_CPPv4NK4cvc56Solver8mkStringERKNSt7wstringE", "cvc5::Solver::mkString"], [43, 6, 1, "_CPPv4NK4cvc56Solver8mkStringERKNSt6stringEb", "cvc5::Solver::mkString::s"], [43, 6, 1, "_CPPv4NK4cvc56Solver8mkStringERKNSt7wstringE", "cvc5::Solver::mkString::s"], [43, 6, 1, "_CPPv4NK4cvc56Solver8mkStringERKNSt6stringEb", "cvc5::Solver::mkString::useEscSequences"], [43, 5, 1, "_CPPv4NK4cvc56Solver6mkTermE4KindRKNSt6vectorI4TermEE", "cvc5::Solver::mkTerm"], [43, 5, 1, "_CPPv4NK4cvc56Solver6mkTermERK2OpRKNSt6vectorI4TermEE", "cvc5::Solver::mkTerm"], [43, 6, 1, "_CPPv4NK4cvc56Solver6mkTermE4KindRKNSt6vectorI4TermEE", "cvc5::Solver::mkTerm::children"], [43, 6, 1, "_CPPv4NK4cvc56Solver6mkTermERK2OpRKNSt6vectorI4TermEE", "cvc5::Solver::mkTerm::children"], [43, 6, 1, "_CPPv4NK4cvc56Solver6mkTermE4KindRKNSt6vectorI4TermEE", "cvc5::Solver::mkTerm::kind"], [43, 6, 1, "_CPPv4NK4cvc56Solver6mkTermERK2OpRKNSt6vectorI4TermEE", "cvc5::Solver::mkTerm::op"], [43, 5, 1, "_CPPv4NK4cvc56Solver6mkTrueEv", "cvc5::Solver::mkTrue"], [43, 5, 1, "_CPPv4NK4cvc56Solver7mkTupleERKNSt6vectorI4TermEE", "cvc5::Solver::mkTuple"], [43, 6, 1, "_CPPv4NK4cvc56Solver7mkTupleERKNSt6vectorI4TermEE", "cvc5::Solver::mkTuple::terms"], [43, 5, 1, "_CPPv4NK4cvc56Solver11mkTupleSortERKNSt6vectorI4SortEE", "cvc5::Solver::mkTupleSort"], [43, 6, 1, "_CPPv4NK4cvc56Solver11mkTupleSortERKNSt6vectorI4SortEE", "cvc5::Solver::mkTupleSort::sorts"], [43, 5, 1, "_CPPv4NK4cvc56Solver19mkUninterpretedSortERKNSt8optionalINSt6stringEEE", "cvc5::Solver::mkUninterpretedSort"], [43, 6, 1, "_CPPv4NK4cvc56Solver19mkUninterpretedSortERKNSt8optionalINSt6stringEEE", "cvc5::Solver::mkUninterpretedSort::symbol"], [43, 5, 1, "_CPPv4NK4cvc56Solver34mkUninterpretedSortConstructorSortE6size_tRKNSt8optionalINSt6stringEEE", "cvc5::Solver::mkUninterpretedSortConstructorSort"], [43, 6, 1, "_CPPv4NK4cvc56Solver34mkUninterpretedSortConstructorSortE6size_tRKNSt8optionalINSt6stringEEE", "cvc5::Solver::mkUninterpretedSortConstructorSort::arity"], [43, 6, 1, "_CPPv4NK4cvc56Solver34mkUninterpretedSortConstructorSortE6size_tRKNSt8optionalINSt6stringEEE", "cvc5::Solver::mkUninterpretedSortConstructorSort::symbol"], [43, 5, 1, "_CPPv4NK4cvc56Solver13mkUniverseSetERK4Sort", "cvc5::Solver::mkUniverseSet"], [43, 6, 1, "_CPPv4NK4cvc56Solver13mkUniverseSetERK4Sort", "cvc5::Solver::mkUniverseSet::sort"], [43, 5, 1, "_CPPv4NK4cvc56Solver24mkUnresolvedDatatypeSortERKNSt6stringE6size_t", "cvc5::Solver::mkUnresolvedDatatypeSort"], [43, 6, 1, "_CPPv4NK4cvc56Solver24mkUnresolvedDatatypeSortERKNSt6stringE6size_t", "cvc5::Solver::mkUnresolvedDatatypeSort::arity"], [43, 6, 1, "_CPPv4NK4cvc56Solver24mkUnresolvedDatatypeSortERKNSt6stringE6size_t", "cvc5::Solver::mkUnresolvedDatatypeSort::symbol"], [43, 5, 1, "_CPPv4NK4cvc56Solver5mkVarERK4SortRKNSt8optionalINSt6stringEEE", "cvc5::Solver::mkVar"], [43, 6, 1, "_CPPv4NK4cvc56Solver5mkVarERK4SortRKNSt8optionalINSt6stringEEE", "cvc5::Solver::mkVar::sort"], [43, 6, 1, "_CPPv4NK4cvc56Solver5mkVarERK4SortRKNSt8optionalINSt6stringEEE", "cvc5::Solver::mkVar::symbol"], [43, 5, 1, "_CPPv4N4cvc56SolveraSERK6Solver", "cvc5::Solver::operator="], [43, 5, 1, "_CPPv4NK4cvc56Solver3popE8uint32_t", "cvc5::Solver::pop"], [43, 6, 1, "_CPPv4NK4cvc56Solver3popE8uint32_t", "cvc5::Solver::pop::nscopes"], [43, 5, 1, "_CPPv4NK4cvc56Solver19printStatisticsSafeEi", "cvc5::Solver::printStatisticsSafe"], [43, 6, 1, "_CPPv4NK4cvc56Solver19printStatisticsSafeEi", "cvc5::Solver::printStatisticsSafe::fd"], [43, 5, 1, "_CPPv4NK4cvc56Solver13proofToStringE5ProofN5modes11ProofFormatERKNSt3mapIN4cvc54TermENSt6stringEEE", "cvc5::Solver::proofToString"], [43, 6, 1, "_CPPv4NK4cvc56Solver13proofToStringE5ProofN5modes11ProofFormatERKNSt3mapIN4cvc54TermENSt6stringEEE", "cvc5::Solver::proofToString::assertionNames"], [43, 6, 1, "_CPPv4NK4cvc56Solver13proofToStringE5ProofN5modes11ProofFormatERKNSt3mapIN4cvc54TermENSt6stringEEE", "cvc5::Solver::proofToString::format"], [43, 6, 1, "_CPPv4NK4cvc56Solver13proofToStringE5ProofN5modes11ProofFormatERKNSt3mapIN4cvc54TermENSt6stringEEE", "cvc5::Solver::proofToString::proof"], [43, 5, 1, "_CPPv4NK4cvc56Solver4pushE8uint32_t", "cvc5::Solver::push"], [43, 6, 1, "_CPPv4NK4cvc56Solver4pushE8uint32_t", "cvc5::Solver::push::nscopes"], [43, 5, 1, "_CPPv4NK4cvc56Solver15resetAssertionsEv", "cvc5::Solver::resetAssertions"], [43, 5, 1, "_CPPv4NK4cvc56Solver7setInfoERKNSt6stringERKNSt6stringE", "cvc5::Solver::setInfo"], [43, 6, 1, "_CPPv4NK4cvc56Solver7setInfoERKNSt6stringERKNSt6stringE", "cvc5::Solver::setInfo::keyword"], [43, 6, 1, "_CPPv4NK4cvc56Solver7setInfoERKNSt6stringERKNSt6stringE", "cvc5::Solver::setInfo::value"], [43, 5, 1, "_CPPv4NK4cvc56Solver8setLogicERKNSt6stringE", "cvc5::Solver::setLogic"], [43, 6, 1, "_CPPv4NK4cvc56Solver8setLogicERKNSt6stringE", "cvc5::Solver::setLogic::logic"], [43, 5, 1, "_CPPv4NK4cvc56Solver9setOptionERKNSt6stringERKNSt6stringE", "cvc5::Solver::setOption"], [43, 6, 1, "_CPPv4NK4cvc56Solver9setOptionERKNSt6stringERKNSt6stringE", "cvc5::Solver::setOption::option"], [43, 6, 1, "_CPPv4NK4cvc56Solver9setOptionERKNSt6stringERKNSt6stringE", "cvc5::Solver::setOption::value"], [43, 5, 1, "_CPPv4N4cvc56Solver8simplifyERK4Termb", "cvc5::Solver::simplify"], [43, 6, 1, "_CPPv4N4cvc56Solver8simplifyERK4Termb", "cvc5::Solver::simplify::applySubs"], [43, 6, 1, "_CPPv4N4cvc56Solver8simplifyERK4Termb", "cvc5::Solver::simplify::t"], [43, 5, 1, "_CPPv4NK4cvc56Solver8synthFunERKNSt6stringERKNSt6vectorI4TermEE4SortR7Grammar", "cvc5::Solver::synthFun"], [43, 5, 1, "_CPPv4NK4cvc56Solver8synthFunERKNSt6stringERKNSt6vectorI4TermEERK4Sort", "cvc5::Solver::synthFun"], [43, 6, 1, "_CPPv4NK4cvc56Solver8synthFunERKNSt6stringERKNSt6vectorI4TermEE4SortR7Grammar", "cvc5::Solver::synthFun::boundVars"], [43, 6, 1, "_CPPv4NK4cvc56Solver8synthFunERKNSt6stringERKNSt6vectorI4TermEERK4Sort", "cvc5::Solver::synthFun::boundVars"], [43, 6, 1, "_CPPv4NK4cvc56Solver8synthFunERKNSt6stringERKNSt6vectorI4TermEE4SortR7Grammar", "cvc5::Solver::synthFun::grammar"], [43, 6, 1, "_CPPv4NK4cvc56Solver8synthFunERKNSt6stringERKNSt6vectorI4TermEE4SortR7Grammar", "cvc5::Solver::synthFun::sort"], [43, 6, 1, "_CPPv4NK4cvc56Solver8synthFunERKNSt6stringERKNSt6vectorI4TermEERK4Sort", "cvc5::Solver::synthFun::sort"], [43, 6, 1, "_CPPv4NK4cvc56Solver8synthFunERKNSt6stringERKNSt6vectorI4TermEE4SortR7Grammar", "cvc5::Solver::synthFun::symbol"], [43, 6, 1, "_CPPv4NK4cvc56Solver8synthFunERKNSt6stringERKNSt6vectorI4TermEERK4Sort", "cvc5::Solver::synthFun::symbol"], [43, 5, 1, "_CPPv4N4cvc56SolverD0Ev", "cvc5::Solver::~Solver"], [44, 3, 1, "_CPPv4N4cvc54SortE", "cvc5::Sort"], [44, 5, 1, "_CPPv4N4cvc54Sort4SortEv", "cvc5::Sort::Sort"], [44, 5, 1, "_CPPv4NK4cvc54Sort17getAbstractedKindEv", "cvc5::Sort::getAbstractedKind"], [44, 5, 1, "_CPPv4NK4cvc54Sort19getArrayElementSortEv", "cvc5::Sort::getArrayElementSort"], [44, 5, 1, "_CPPv4NK4cvc54Sort17getArrayIndexSortEv", "cvc5::Sort::getArrayIndexSort"], [44, 5, 1, "_CPPv4NK4cvc54Sort17getBagElementSortEv", "cvc5::Sort::getBagElementSort"], [44, 5, 1, "_CPPv4NK4cvc54Sort16getBitVectorSizeEv", "cvc5::Sort::getBitVectorSize"], [44, 5, 1, "_CPPv4NK4cvc54Sort11getDatatypeEv", "cvc5::Sort::getDatatype"], [44, 5, 1, "_CPPv4NK4cvc54Sort16getDatatypeArityEv", "cvc5::Sort::getDatatypeArity"], [44, 5, 1, "_CPPv4NK4cvc54Sort27getDatatypeConstructorArityEv", "cvc5::Sort::getDatatypeConstructorArity"], [44, 5, 1, "_CPPv4NK4cvc54Sort34getDatatypeConstructorCodomainSortEv", "cvc5::Sort::getDatatypeConstructorCodomainSort"], [44, 5, 1, "_CPPv4NK4cvc54Sort33getDatatypeConstructorDomainSortsEv", "cvc5::Sort::getDatatypeConstructorDomainSorts"], [44, 5, 1, "_CPPv4NK4cvc54Sort31getDatatypeSelectorCodomainSortEv", "cvc5::Sort::getDatatypeSelectorCodomainSort"], [44, 5, 1, "_CPPv4NK4cvc54Sort29getDatatypeSelectorDomainSortEv", "cvc5::Sort::getDatatypeSelectorDomainSort"], [44, 5, 1, "_CPPv4NK4cvc54Sort29getDatatypeTesterCodomainSortEv", "cvc5::Sort::getDatatypeTesterCodomainSort"], [44, 5, 1, "_CPPv4NK4cvc54Sort27getDatatypeTesterDomainSortEv", "cvc5::Sort::getDatatypeTesterDomainSort"], [44, 5, 1, "_CPPv4NK4cvc54Sort18getFiniteFieldSizeEv", "cvc5::Sort::getFiniteFieldSize"], [44, 5, 1, "_CPPv4NK4cvc54Sort28getFloatingPointExponentSizeEv", "cvc5::Sort::getFloatingPointExponentSize"], [44, 5, 1, "_CPPv4NK4cvc54Sort31getFloatingPointSignificandSizeEv", "cvc5::Sort::getFloatingPointSignificandSize"], [44, 5, 1, "_CPPv4NK4cvc54Sort16getFunctionArityEv", "cvc5::Sort::getFunctionArity"], [44, 5, 1, "_CPPv4NK4cvc54Sort23getFunctionCodomainSortEv", "cvc5::Sort::getFunctionCodomainSort"], [44, 5, 1, "_CPPv4NK4cvc54Sort22getFunctionDomainSortsEv", "cvc5::Sort::getFunctionDomainSorts"], [44, 5, 1, "_CPPv4NK4cvc54Sort25getInstantiatedParametersEv", "cvc5::Sort::getInstantiatedParameters"], [44, 5, 1, "_CPPv4NK4cvc54Sort7getKindEv", "cvc5::Sort::getKind"], [44, 5, 1, "_CPPv4NK4cvc54Sort22getNullableElementSortEv", "cvc5::Sort::getNullableElementSort"], [44, 5, 1, "_CPPv4NK4cvc54Sort22getSequenceElementSortEv", "cvc5::Sort::getSequenceElementSort"], [44, 5, 1, "_CPPv4NK4cvc54Sort17getSetElementSortEv", "cvc5::Sort::getSetElementSort"], [44, 5, 1, "_CPPv4NK4cvc54Sort9getSymbolEv", "cvc5::Sort::getSymbol"], [44, 5, 1, "_CPPv4NK4cvc54Sort14getTupleLengthEv", "cvc5::Sort::getTupleLength"], [44, 5, 1, "_CPPv4NK4cvc54Sort13getTupleSortsEv", "cvc5::Sort::getTupleSorts"], [44, 5, 1, "_CPPv4NK4cvc54Sort31getUninterpretedSortConstructorEv", "cvc5::Sort::getUninterpretedSortConstructor"], [44, 5, 1, "_CPPv4NK4cvc54Sort36getUninterpretedSortConstructorArityEv", "cvc5::Sort::getUninterpretedSortConstructorArity"], [44, 5, 1, "_CPPv4NK4cvc54Sort9hasSymbolEv", "cvc5::Sort::hasSymbol"], [44, 5, 1, "_CPPv4NK4cvc54Sort11instantiateERKNSt6vectorI4SortEE", "cvc5::Sort::instantiate"], [44, 6, 1, "_CPPv4NK4cvc54Sort11instantiateERKNSt6vectorI4SortEE", "cvc5::Sort::instantiate::params"], [44, 5, 1, "_CPPv4NK4cvc54Sort10isAbstractEv", "cvc5::Sort::isAbstract"], [44, 5, 1, "_CPPv4NK4cvc54Sort7isArrayEv", "cvc5::Sort::isArray"], [44, 5, 1, "_CPPv4NK4cvc54Sort5isBagEv", "cvc5::Sort::isBag"], [44, 5, 1, "_CPPv4NK4cvc54Sort11isBitVectorEv", "cvc5::Sort::isBitVector"], [44, 5, 1, "_CPPv4NK4cvc54Sort9isBooleanEv", "cvc5::Sort::isBoolean"], [44, 5, 1, "_CPPv4NK4cvc54Sort10isDatatypeEv", "cvc5::Sort::isDatatype"], [44, 5, 1, "_CPPv4NK4cvc54Sort21isDatatypeConstructorEv", "cvc5::Sort::isDatatypeConstructor"], [44, 5, 1, "_CPPv4NK4cvc54Sort18isDatatypeSelectorEv", "cvc5::Sort::isDatatypeSelector"], [44, 5, 1, "_CPPv4NK4cvc54Sort16isDatatypeTesterEv", "cvc5::Sort::isDatatypeTester"], [44, 5, 1, "_CPPv4NK4cvc54Sort17isDatatypeUpdaterEv", "cvc5::Sort::isDatatypeUpdater"], [44, 5, 1, "_CPPv4NK4cvc54Sort13isFiniteFieldEv", "cvc5::Sort::isFiniteField"], [44, 5, 1, "_CPPv4NK4cvc54Sort15isFloatingPointEv", "cvc5::Sort::isFloatingPoint"], [44, 5, 1, "_CPPv4NK4cvc54Sort10isFunctionEv", "cvc5::Sort::isFunction"], [44, 5, 1, "_CPPv4NK4cvc54Sort14isInstantiatedEv", "cvc5::Sort::isInstantiated"], [44, 5, 1, "_CPPv4NK4cvc54Sort9isIntegerEv", "cvc5::Sort::isInteger"], [44, 5, 1, "_CPPv4NK4cvc54Sort6isNullEv", "cvc5::Sort::isNull"], [44, 5, 1, "_CPPv4NK4cvc54Sort10isNullableEv", "cvc5::Sort::isNullable"], [44, 5, 1, "_CPPv4NK4cvc54Sort11isPredicateEv", "cvc5::Sort::isPredicate"], [44, 5, 1, "_CPPv4NK4cvc54Sort6isRealEv", "cvc5::Sort::isReal"], [44, 5, 1, "_CPPv4NK4cvc54Sort8isRecordEv", "cvc5::Sort::isRecord"], [44, 5, 1, "_CPPv4NK4cvc54Sort8isRegExpEv", "cvc5::Sort::isRegExp"], [44, 5, 1, "_CPPv4NK4cvc54Sort14isRoundingModeEv", "cvc5::Sort::isRoundingMode"], [44, 5, 1, "_CPPv4NK4cvc54Sort10isSequenceEv", "cvc5::Sort::isSequence"], [44, 5, 1, "_CPPv4NK4cvc54Sort5isSetEv", "cvc5::Sort::isSet"], [44, 5, 1, "_CPPv4NK4cvc54Sort8isStringEv", "cvc5::Sort::isString"], [44, 5, 1, "_CPPv4NK4cvc54Sort7isTupleEv", "cvc5::Sort::isTuple"], [44, 5, 1, "_CPPv4NK4cvc54Sort19isUninterpretedSortEv", "cvc5::Sort::isUninterpretedSort"], [44, 5, 1, "_CPPv4NK4cvc54Sort30isUninterpretedSortConstructorEv", "cvc5::Sort::isUninterpretedSortConstructor"], [44, 5, 1, "_CPPv4NK4cvc54SortneERK4Sort", "cvc5::Sort::operator!="], [44, 6, 1, "_CPPv4NK4cvc54SortneERK4Sort", "cvc5::Sort::operator!=::s"], [44, 5, 1, "_CPPv4NK4cvc54SortltERK4Sort", "cvc5::Sort::operator<"], [44, 6, 1, "_CPPv4NK4cvc54SortltERK4Sort", "cvc5::Sort::operator<::s"], [44, 5, 1, "_CPPv4NK4cvc54SortleERK4Sort", "cvc5::Sort::operator<="], [44, 6, 1, "_CPPv4NK4cvc54SortleERK4Sort", "cvc5::Sort::operator<=::s"], [44, 5, 1, "_CPPv4NK4cvc54SorteqERK4Sort", "cvc5::Sort::operator=="], [44, 6, 1, "_CPPv4NK4cvc54SorteqERK4Sort", "cvc5::Sort::operator==::s"], [44, 5, 1, "_CPPv4NK4cvc54SortgtERK4Sort", "cvc5::Sort::operator>"], [44, 6, 1, "_CPPv4NK4cvc54SortgtERK4Sort", "cvc5::Sort::operator>::s"], [44, 5, 1, "_CPPv4NK4cvc54SortgeERK4Sort", "cvc5::Sort::operator>="], [44, 6, 1, "_CPPv4NK4cvc54SortgeERK4Sort", "cvc5::Sort::operator>=::s"], [44, 5, 1, "_CPPv4NK4cvc54Sort10substituteERK4SortRK4Sort", "cvc5::Sort::substitute"], [44, 5, 1, "_CPPv4NK4cvc54Sort10substituteERKNSt6vectorI4SortEERKNSt6vectorI4SortEE", "cvc5::Sort::substitute"], [44, 6, 1, "_CPPv4NK4cvc54Sort10substituteERK4SortRK4Sort", "cvc5::Sort::substitute::replacement"], [44, 6, 1, "_CPPv4NK4cvc54Sort10substituteERKNSt6vectorI4SortEERKNSt6vectorI4SortEE", "cvc5::Sort::substitute::replacements"], [44, 6, 1, "_CPPv4NK4cvc54Sort10substituteERK4SortRK4Sort", "cvc5::Sort::substitute::sort"], [44, 6, 1, "_CPPv4NK4cvc54Sort10substituteERKNSt6vectorI4SortEERKNSt6vectorI4SortEE", "cvc5::Sort::substitute::sorts"], [44, 5, 1, "_CPPv4NK4cvc54Sort8toStreamERNSt7ostreamE", "cvc5::Sort::toStream"], [44, 6, 1, "_CPPv4NK4cvc54Sort8toStreamERNSt7ostreamE", "cvc5::Sort::toStream::out"], [44, 5, 1, "_CPPv4NK4cvc54Sort8toStringEv", "cvc5::Sort::toString"], [44, 5, 1, "_CPPv4N4cvc54SortD0Ev", "cvc5::Sort::~Sort"], [55, 2, 1, "_CPPv4N4cvc58SortKindE", "cvc5::SortKind"], [55, 0, 1, "_CPPv4N4cvc58SortKind13ABSTRACT_SORTE", "cvc5::SortKind::ABSTRACT_SORT"], [55, 0, 1, "_CPPv4N4cvc58SortKind10ARRAY_SORTE", "cvc5::SortKind::ARRAY_SORT"], [55, 0, 1, "_CPPv4N4cvc58SortKind8BAG_SORTE", "cvc5::SortKind::BAG_SORT"], [55, 0, 1, "_CPPv4N4cvc58SortKind14BITVECTOR_SORTE", "cvc5::SortKind::BITVECTOR_SORT"], [55, 0, 1, "_CPPv4N4cvc58SortKind12BOOLEAN_SORTE", "cvc5::SortKind::BOOLEAN_SORT"], [55, 0, 1, "_CPPv4N4cvc58SortKind13DATATYPE_SORTE", "cvc5::SortKind::DATATYPE_SORT"], [55, 0, 1, "_CPPv4N4cvc58SortKind17FINITE_FIELD_SORTE", "cvc5::SortKind::FINITE_FIELD_SORT"], [55, 0, 1, "_CPPv4N4cvc58SortKind18FLOATINGPOINT_SORTE", "cvc5::SortKind::FLOATINGPOINT_SORT"], [55, 0, 1, "_CPPv4N4cvc58SortKind13FUNCTION_SORTE", "cvc5::SortKind::FUNCTION_SORT"], [55, 0, 1, "_CPPv4N4cvc58SortKind12INTEGER_SORTE", "cvc5::SortKind::INTEGER_SORT"], [55, 0, 1, "_CPPv4N4cvc58SortKind18INTERNAL_SORT_KINDE", "cvc5::SortKind::INTERNAL_SORT_KIND"], [55, 0, 1, "_CPPv4N4cvc58SortKind14LAST_SORT_KINDE", "cvc5::SortKind::LAST_SORT_KIND"], [55, 0, 1, "_CPPv4N4cvc58SortKind13NULLABLE_SORTE", "cvc5::SortKind::NULLABLE_SORT"], [55, 0, 1, "_CPPv4N4cvc58SortKind9NULL_SORTE", "cvc5::SortKind::NULL_SORT"], [55, 0, 1, "_CPPv4N4cvc58SortKind9REAL_SORTE", "cvc5::SortKind::REAL_SORT"], [55, 0, 1, "_CPPv4N4cvc58SortKind11REGLAN_SORTE", "cvc5::SortKind::REGLAN_SORT"], [55, 0, 1, "_CPPv4N4cvc58SortKind17ROUNDINGMODE_SORTE", "cvc5::SortKind::ROUNDINGMODE_SORT"], [55, 0, 1, "_CPPv4N4cvc58SortKind13SEQUENCE_SORTE", "cvc5::SortKind::SEQUENCE_SORT"], [55, 0, 1, "_CPPv4N4cvc58SortKind8SET_SORTE", "cvc5::SortKind::SET_SORT"], [55, 0, 1, "_CPPv4N4cvc58SortKind11STRING_SORTE", "cvc5::SortKind::STRING_SORT"], [55, 0, 1, "_CPPv4N4cvc58SortKind10TUPLE_SORTE", "cvc5::SortKind::TUPLE_SORT"], [55, 0, 1, "_CPPv4N4cvc58SortKind19UNDEFINED_SORT_KINDE", "cvc5::SortKind::UNDEFINED_SORT_KIND"], [55, 0, 1, "_CPPv4N4cvc58SortKind18UNINTERPRETED_SORTE", "cvc5::SortKind::UNINTERPRETED_SORT"], [45, 3, 1, "_CPPv4N4cvc54StatE", "cvc5::Stat"], [45, 1, 1, "_CPPv4N4cvc54Stat13HistogramDataE", "cvc5::Stat::HistogramData"], [45, 5, 1, "_CPPv4N4cvc54Stat4StatERK4Stat", "cvc5::Stat::Stat"], [45, 5, 1, "_CPPv4N4cvc54Stat4StatEv", "cvc5::Stat::Stat"], [45, 6, 1, "_CPPv4N4cvc54Stat4StatERK4Stat", "cvc5::Stat::Stat::s"], [45, 5, 1, "_CPPv4NK4cvc54Stat9getDoubleEv", "cvc5::Stat::getDouble"], [45, 5, 1, "_CPPv4NK4cvc54Stat12getHistogramEv", "cvc5::Stat::getHistogram"], [45, 5, 1, "_CPPv4NK4cvc54Stat6getIntEv", "cvc5::Stat::getInt"], [45, 5, 1, "_CPPv4NK4cvc54Stat9getStringEv", "cvc5::Stat::getString"], [45, 5, 1, "_CPPv4NK4cvc54Stat9isDefaultEv", "cvc5::Stat::isDefault"], [45, 5, 1, "_CPPv4NK4cvc54Stat8isDoubleEv", "cvc5::Stat::isDouble"], [45, 5, 1, "_CPPv4NK4cvc54Stat11isHistogramEv", "cvc5::Stat::isHistogram"], [45, 5, 1, "_CPPv4NK4cvc54Stat5isIntEv", "cvc5::Stat::isInt"], [45, 5, 1, "_CPPv4NK4cvc54Stat10isInternalEv", "cvc5::Stat::isInternal"], [45, 5, 1, "_CPPv4NK4cvc54Stat8isStringEv", "cvc5::Stat::isString"], [45, 5, 1, "_CPPv4N4cvc54StatlsERNSt7ostreamERK4Stat", "cvc5::Stat::operator<<"], [45, 6, 1, "_CPPv4N4cvc54StatlsERNSt7ostreamERK4Stat", "cvc5::Stat::operator<<::os"], [45, 6, 1, "_CPPv4N4cvc54StatlsERNSt7ostreamERK4Stat", "cvc5::Stat::operator<<::sv"], [45, 5, 1, "_CPPv4N4cvc54StataSERK4Stat", "cvc5::Stat::operator="], [45, 6, 1, "_CPPv4N4cvc54StataSERK4Stat", "cvc5::Stat::operator=::s"], [45, 5, 1, "_CPPv4NK4cvc54Stat8toStringEv", "cvc5::Stat::toString"], [45, 5, 1, "_CPPv4N4cvc54StatD0Ev", "cvc5::Stat::~Stat"], [45, 3, 1, "_CPPv4N4cvc510StatisticsE", "cvc5::Statistics"], [45, 5, 1, "_CPPv4NK4cvc510Statistics5beginEbb", "cvc5::Statistics::begin"], [45, 6, 1, "_CPPv4NK4cvc510Statistics5beginEbb", "cvc5::Statistics::begin::defaulted"], [45, 6, 1, "_CPPv4NK4cvc510Statistics5beginEbb", "cvc5::Statistics::begin::internal"], [45, 5, 1, "_CPPv4NK4cvc510Statistics3endEv", "cvc5::Statistics::end"], [45, 5, 1, "_CPPv4N4cvc510Statistics3getERKNSt6stringE", "cvc5::Statistics::get"], [45, 6, 1, "_CPPv4N4cvc510Statistics3getERKNSt6stringE", "cvc5::Statistics::get::name"], [47, 3, 1, "_CPPv4N4cvc511SynthResultE", "cvc5::SynthResult"], [47, 5, 1, "_CPPv4N4cvc511SynthResult11SynthResultEv", "cvc5::SynthResult::SynthResult"], [47, 5, 1, "_CPPv4NK4cvc511SynthResult13hasNoSolutionEv", "cvc5::SynthResult::hasNoSolution"], [47, 5, 1, "_CPPv4NK4cvc511SynthResult11hasSolutionEv", "cvc5::SynthResult::hasSolution"], [47, 5, 1, "_CPPv4NK4cvc511SynthResult6isNullEv", "cvc5::SynthResult::isNull"], [47, 5, 1, "_CPPv4NK4cvc511SynthResult9isUnknownEv", "cvc5::SynthResult::isUnknown"], [47, 5, 1, "_CPPv4NK4cvc511SynthResultneERK11SynthResult", "cvc5::SynthResult::operator!="], [47, 6, 1, "_CPPv4NK4cvc511SynthResultneERK11SynthResult", "cvc5::SynthResult::operator!=::r"], [47, 5, 1, "_CPPv4NK4cvc511SynthResulteqERK11SynthResult", "cvc5::SynthResult::operator=="], [47, 6, 1, "_CPPv4NK4cvc511SynthResulteqERK11SynthResult", "cvc5::SynthResult::operator==::r"], [47, 5, 1, "_CPPv4NK4cvc511SynthResult8toStringEv", "cvc5::SynthResult::toString"], [48, 3, 1, "_CPPv4N4cvc54TermE", "cvc5::Term"], [48, 5, 1, "_CPPv4N4cvc54Term4TermEv", "cvc5::Term::Term"], [48, 5, 1, "_CPPv4NK4cvc54Term7andTermERK4Term", "cvc5::Term::andTerm"], [48, 6, 1, "_CPPv4NK4cvc54Term7andTermERK4Term", "cvc5::Term::andTerm::t"], [48, 5, 1, "_CPPv4NK4cvc54Term5beginEv", "cvc5::Term::begin"], [48, 3, 1, "_CPPv4N4cvc54Term14const_iteratorE", "cvc5::Term::const_iterator"], [48, 5, 1, "_CPPv4N4cvc54Term14const_iterator14const_iteratorEP11TermManagerRKNSt10shared_ptrIN8internal4NodeEEE8uint32_t", "cvc5::Term::const_iterator::const_iterator"], [48, 5, 1, "_CPPv4N4cvc54Term14const_iterator14const_iteratorERK14const_iterator", "cvc5::Term::const_iterator::const_iterator"], [48, 5, 1, "_CPPv4N4cvc54Term14const_iterator14const_iteratorEv", "cvc5::Term::const_iterator::const_iterator"], [48, 6, 1, "_CPPv4N4cvc54Term14const_iterator14const_iteratorEP11TermManagerRKNSt10shared_ptrIN8internal4NodeEEE8uint32_t", "cvc5::Term::const_iterator::const_iterator::e"], [48, 6, 1, "_CPPv4N4cvc54Term14const_iterator14const_iteratorERK14const_iterator", "cvc5::Term::const_iterator::const_iterator::it"], [48, 6, 1, "_CPPv4N4cvc54Term14const_iterator14const_iteratorEP11TermManagerRKNSt10shared_ptrIN8internal4NodeEEE8uint32_t", "cvc5::Term::const_iterator::const_iterator::p"], [48, 6, 1, "_CPPv4N4cvc54Term14const_iterator14const_iteratorEP11TermManagerRKNSt10shared_ptrIN8internal4NodeEEE8uint32_t", "cvc5::Term::const_iterator::const_iterator::tm"], [48, 1, 1, "_CPPv4N4cvc54Term14const_iterator15difference_typeE", "cvc5::Term::const_iterator::difference_type"], [48, 1, 1, "_CPPv4N4cvc54Term14const_iterator17iterator_categoryE", "cvc5::Term::const_iterator::iterator_category"], [48, 5, 1, "_CPPv4NK4cvc54Term14const_iteratorneERK14const_iterator", "cvc5::Term::const_iterator::operator!="], [48, 6, 1, "_CPPv4NK4cvc54Term14const_iteratorneERK14const_iterator", "cvc5::Term::const_iterator::operator!=::it"], [48, 5, 1, "_CPPv4NK4cvc54Term14const_iteratormlEv", "cvc5::Term::const_iterator::operator*"], [48, 5, 1, "_CPPv4N4cvc54Term14const_iteratorppEi", "cvc5::Term::const_iterator::operator++"], [48, 5, 1, "_CPPv4N4cvc54Term14const_iteratorppEv", "cvc5::Term::const_iterator::operator++"], [48, 5, 1, "_CPPv4N4cvc54Term14const_iteratoraSERK14const_iterator", "cvc5::Term::const_iterator::operator="], [48, 6, 1, "_CPPv4N4cvc54Term14const_iteratoraSERK14const_iterator", "cvc5::Term::const_iterator::operator=::it"], [48, 5, 1, "_CPPv4NK4cvc54Term14const_iteratoreqERK14const_iterator", "cvc5::Term::const_iterator::operator=="], [48, 6, 1, "_CPPv4NK4cvc54Term14const_iteratoreqERK14const_iterator", "cvc5::Term::const_iterator::operator==::it"], [48, 1, 1, "_CPPv4N4cvc54Term14const_iterator7pointerE", "cvc5::Term::const_iterator::pointer"], [48, 1, 1, "_CPPv4N4cvc54Term14const_iterator9referenceE", "cvc5::Term::const_iterator::reference"], [48, 1, 1, "_CPPv4N4cvc54Term14const_iterator10value_typeE", "cvc5::Term::const_iterator::value_type"], [48, 5, 1, "_CPPv4NK4cvc54Term3endEv", "cvc5::Term::end"], [48, 5, 1, "_CPPv4NK4cvc54Term6eqTermERK4Term", "cvc5::Term::eqTerm"], [48, 6, 1, "_CPPv4NK4cvc54Term6eqTermERK4Term", "cvc5::Term::eqTerm::t"], [48, 5, 1, "_CPPv4NK4cvc54Term17getBitVectorValueE8uint32_t", "cvc5::Term::getBitVectorValue"], [48, 6, 1, "_CPPv4NK4cvc54Term17getBitVectorValueE8uint32_t", "cvc5::Term::getBitVectorValue::base"], [48, 5, 1, "_CPPv4NK4cvc54Term15getBooleanValueEv", "cvc5::Term::getBooleanValue"], [48, 5, 1, "_CPPv4NK4cvc54Term24getCardinalityConstraintEv", "cvc5::Term::getCardinalityConstraint"], [48, 5, 1, "_CPPv4NK4cvc54Term17getConstArrayBaseEv", "cvc5::Term::getConstArrayBase"], [48, 5, 1, "_CPPv4NK4cvc54Term19getFiniteFieldValueEv", "cvc5::Term::getFiniteFieldValue"], [48, 5, 1, "_CPPv4NK4cvc54Term21getFloatingPointValueEv", "cvc5::Term::getFloatingPointValue"], [48, 5, 1, "_CPPv4NK4cvc54Term5getIdEv", "cvc5::Term::getId"], [48, 5, 1, "_CPPv4NK4cvc54Term13getInt32ValueEv", "cvc5::Term::getInt32Value"], [48, 5, 1, "_CPPv4NK4cvc54Term13getInt64ValueEv", "cvc5::Term::getInt64Value"], [48, 5, 1, "_CPPv4NK4cvc54Term15getIntegerValueEv", "cvc5::Term::getIntegerValue"], [48, 5, 1, "_CPPv4NK4cvc54Term7getKindEv", "cvc5::Term::getKind"], [48, 5, 1, "_CPPv4NK4cvc54Term14getNumChildrenEv", "cvc5::Term::getNumChildren"], [48, 5, 1, "_CPPv4NK4cvc54Term5getOpEv", "cvc5::Term::getOp"], [48, 5, 1, "_CPPv4NK4cvc54Term14getReal32ValueEv", "cvc5::Term::getReal32Value"], [48, 5, 1, "_CPPv4NK4cvc54Term14getReal64ValueEv", "cvc5::Term::getReal64Value"], [48, 5, 1, "_CPPv4NK4cvc54Term40getRealAlgebraicNumberDefiningPolynomialERK4Term", "cvc5::Term::getRealAlgebraicNumberDefiningPolynomial"], [48, 6, 1, "_CPPv4NK4cvc54Term40getRealAlgebraicNumberDefiningPolynomialERK4Term", "cvc5::Term::getRealAlgebraicNumberDefiningPolynomial::v"], [48, 5, 1, "_CPPv4NK4cvc54Term32getRealAlgebraicNumberLowerBoundEv", "cvc5::Term::getRealAlgebraicNumberLowerBound"], [48, 5, 1, "_CPPv4NK4cvc54Term32getRealAlgebraicNumberUpperBoundEv", "cvc5::Term::getRealAlgebraicNumberUpperBound"], [48, 5, 1, "_CPPv4NK4cvc54Term25getRealOrIntegerValueSignEv", "cvc5::Term::getRealOrIntegerValueSign"], [48, 5, 1, "_CPPv4NK4cvc54Term12getRealValueEv", "cvc5::Term::getRealValue"], [48, 5, 1, "_CPPv4NK4cvc54Term20getRoundingModeValueEv", "cvc5::Term::getRoundingModeValue"], [48, 5, 1, "_CPPv4NK4cvc54Term16getSequenceValueEv", "cvc5::Term::getSequenceValue"], [48, 5, 1, "_CPPv4NK4cvc54Term11getSetValueEv", "cvc5::Term::getSetValue"], [48, 5, 1, "_CPPv4NK4cvc54Term11getSkolemIdEv", "cvc5::Term::getSkolemId"], [48, 5, 1, "_CPPv4NK4cvc54Term16getSkolemIndicesEv", "cvc5::Term::getSkolemIndices"], [48, 5, 1, "_CPPv4NK4cvc54Term7getSortEv", "cvc5::Term::getSort"], [48, 5, 1, "_CPPv4NK4cvc54Term14getStringValueEv", "cvc5::Term::getStringValue"], [48, 5, 1, "_CPPv4NK4cvc54Term9getSymbolEv", "cvc5::Term::getSymbol"], [48, 5, 1, "_CPPv4NK4cvc54Term13getTupleValueEv", "cvc5::Term::getTupleValue"], [48, 5, 1, "_CPPv4NK4cvc54Term14getUInt32ValueEv", "cvc5::Term::getUInt32Value"], [48, 5, 1, "_CPPv4NK4cvc54Term14getUInt64ValueEv", "cvc5::Term::getUInt64Value"], [48, 5, 1, "_CPPv4NK4cvc54Term25getUninterpretedSortValueEv", "cvc5::Term::getUninterpretedSortValue"], [48, 5, 1, "_CPPv4NK4cvc54Term5hasOpEv", "cvc5::Term::hasOp"], [48, 5, 1, "_CPPv4NK4cvc54Term9hasSymbolEv", "cvc5::Term::hasSymbol"], [48, 5, 1, "_CPPv4NK4cvc54Term7impTermERK4Term", "cvc5::Term::impTerm"], [48, 6, 1, "_CPPv4NK4cvc54Term7impTermERK4Term", "cvc5::Term::impTerm::t"], [48, 5, 1, "_CPPv4NK4cvc54Term16isBitVectorValueEv", "cvc5::Term::isBitVectorValue"], [48, 5, 1, "_CPPv4NK4cvc54Term14isBooleanValueEv", "cvc5::Term::isBooleanValue"], [48, 5, 1, "_CPPv4NK4cvc54Term23isCardinalityConstraintEv", "cvc5::Term::isCardinalityConstraint"], [48, 5, 1, "_CPPv4NK4cvc54Term12isConstArrayEv", "cvc5::Term::isConstArray"], [48, 5, 1, "_CPPv4NK4cvc54Term18isFiniteFieldValueEv", "cvc5::Term::isFiniteFieldValue"], [48, 5, 1, "_CPPv4NK4cvc54Term18isFloatingPointNaNEv", "cvc5::Term::isFloatingPointNaN"], [48, 5, 1, "_CPPv4NK4cvc54Term21isFloatingPointNegInfEv", "cvc5::Term::isFloatingPointNegInf"], [48, 5, 1, "_CPPv4NK4cvc54Term22isFloatingPointNegZeroEv", "cvc5::Term::isFloatingPointNegZero"], [48, 5, 1, "_CPPv4NK4cvc54Term21isFloatingPointPosInfEv", "cvc5::Term::isFloatingPointPosInf"], [48, 5, 1, "_CPPv4NK4cvc54Term22isFloatingPointPosZeroEv", "cvc5::Term::isFloatingPointPosZero"], [48, 5, 1, "_CPPv4NK4cvc54Term20isFloatingPointValueEv", "cvc5::Term::isFloatingPointValue"], [48, 5, 1, "_CPPv4NK4cvc54Term12isInt32ValueEv", "cvc5::Term::isInt32Value"], [48, 5, 1, "_CPPv4NK4cvc54Term12isInt64ValueEv", "cvc5::Term::isInt64Value"], [48, 5, 1, "_CPPv4NK4cvc54Term14isIntegerValueEv", "cvc5::Term::isIntegerValue"], [48, 5, 1, "_CPPv4NK4cvc54Term6isNullEv", "cvc5::Term::isNull"], [48, 5, 1, "_CPPv4NK4cvc54Term13isReal32ValueEv", "cvc5::Term::isReal32Value"], [48, 5, 1, "_CPPv4NK4cvc54Term13isReal64ValueEv", "cvc5::Term::isReal64Value"], [48, 5, 1, "_CPPv4NK4cvc54Term21isRealAlgebraicNumberEv", "cvc5::Term::isRealAlgebraicNumber"], [48, 5, 1, "_CPPv4NK4cvc54Term11isRealValueEv", "cvc5::Term::isRealValue"], [48, 5, 1, "_CPPv4NK4cvc54Term19isRoundingModeValueEv", "cvc5::Term::isRoundingModeValue"], [48, 5, 1, "_CPPv4NK4cvc54Term15isSequenceValueEv", "cvc5::Term::isSequenceValue"], [48, 5, 1, "_CPPv4NK4cvc54Term10isSetValueEv", "cvc5::Term::isSetValue"], [48, 5, 1, "_CPPv4NK4cvc54Term8isSkolemEv", "cvc5::Term::isSkolem"], [48, 5, 1, "_CPPv4NK4cvc54Term13isStringValueEv", "cvc5::Term::isStringValue"], [48, 5, 1, "_CPPv4NK4cvc54Term12isTupleValueEv", "cvc5::Term::isTupleValue"], [48, 5, 1, "_CPPv4NK4cvc54Term13isUInt32ValueEv", "cvc5::Term::isUInt32Value"], [48, 5, 1, "_CPPv4NK4cvc54Term13isUInt64ValueEv", "cvc5::Term::isUInt64Value"], [48, 5, 1, "_CPPv4NK4cvc54Term24isUninterpretedSortValueEv", "cvc5::Term::isUninterpretedSortValue"], [48, 5, 1, "_CPPv4NK4cvc54Term7iteTermERK4TermRK4Term", "cvc5::Term::iteTerm"], [48, 6, 1, "_CPPv4NK4cvc54Term7iteTermERK4TermRK4Term", "cvc5::Term::iteTerm::e"], [48, 6, 1, "_CPPv4NK4cvc54Term7iteTermERK4TermRK4Term", "cvc5::Term::iteTerm::t"], [48, 5, 1, "_CPPv4NK4cvc54Term7notTermEv", "cvc5::Term::notTerm"], [48, 5, 1, "_CPPv4NK4cvc54TermneERK4Term", "cvc5::Term::operator!="], [48, 6, 1, "_CPPv4NK4cvc54TermneERK4Term", "cvc5::Term::operator!=::t"], [48, 5, 1, "_CPPv4NK4cvc54TermltERK4Term", "cvc5::Term::operator<"], [48, 6, 1, "_CPPv4NK4cvc54TermltERK4Term", "cvc5::Term::operator<::t"], [48, 5, 1, "_CPPv4NK4cvc54TermleERK4Term", "cvc5::Term::operator<="], [48, 6, 1, "_CPPv4NK4cvc54TermleERK4Term", "cvc5::Term::operator<=::t"], [48, 5, 1, "_CPPv4NK4cvc54TermeqERK4Term", "cvc5::Term::operator=="], [48, 6, 1, "_CPPv4NK4cvc54TermeqERK4Term", "cvc5::Term::operator==::t"], [48, 5, 1, "_CPPv4NK4cvc54TermgtERK4Term", "cvc5::Term::operator>"], [48, 6, 1, "_CPPv4NK4cvc54TermgtERK4Term", "cvc5::Term::operator>::t"], [48, 5, 1, "_CPPv4NK4cvc54TermgeERK4Term", "cvc5::Term::operator>="], [48, 6, 1, "_CPPv4NK4cvc54TermgeERK4Term", "cvc5::Term::operator>=::t"], [48, 5, 1, "_CPPv4NK4cvc54TermixE6size_t", "cvc5::Term::operator[]"], [48, 6, 1, "_CPPv4NK4cvc54TermixE6size_t", "cvc5::Term::operator[]::index"], [48, 5, 1, "_CPPv4NK4cvc54Term6orTermERK4Term", "cvc5::Term::orTerm"], [48, 6, 1, "_CPPv4NK4cvc54Term6orTermERK4Term", "cvc5::Term::orTerm::t"], [48, 5, 1, "_CPPv4NK4cvc54Term10substituteERK4TermRK4Term", "cvc5::Term::substitute"], [48, 5, 1, "_CPPv4NK4cvc54Term10substituteERKNSt6vectorI4TermEERKNSt6vectorI4TermEE", "cvc5::Term::substitute"], [48, 6, 1, "_CPPv4NK4cvc54Term10substituteERK4TermRK4Term", "cvc5::Term::substitute::replacement"], [48, 6, 1, "_CPPv4NK4cvc54Term10substituteERKNSt6vectorI4TermEERKNSt6vectorI4TermEE", "cvc5::Term::substitute::replacements"], [48, 6, 1, "_CPPv4NK4cvc54Term10substituteERK4TermRK4Term", "cvc5::Term::substitute::term"], [48, 6, 1, "_CPPv4NK4cvc54Term10substituteERKNSt6vectorI4TermEERKNSt6vectorI4TermEE", "cvc5::Term::substitute::terms"], [48, 5, 1, "_CPPv4NK4cvc54Term8toStringEv", "cvc5::Term::toString"], [48, 5, 1, "_CPPv4NK4cvc54Term7xorTermERK4Term", "cvc5::Term::xorTerm"], [48, 6, 1, "_CPPv4NK4cvc54Term7xorTermERK4Term", "cvc5::Term::xorTerm::t"], [48, 5, 1, "_CPPv4N4cvc54TermD0Ev", "cvc5::Term::~Term"], [49, 3, 1, "_CPPv4N4cvc511TermManagerE", "cvc5::TermManager"], [49, 5, 1, "_CPPv4N4cvc511TermManager11TermManagerEv", "cvc5::TermManager::TermManager"], [49, 5, 1, "_CPPv4N4cvc511TermManager14getBooleanSortEv", "cvc5::TermManager::getBooleanSort"], [49, 5, 1, "_CPPv4N4cvc511TermManager14getIntegerSortEv", "cvc5::TermManager::getIntegerSort"], [49, 5, 1, "_CPPv4N4cvc511TermManager24getNumIndicesForSkolemIdE8SkolemId", "cvc5::TermManager::getNumIndicesForSkolemId"], [49, 6, 1, "_CPPv4N4cvc511TermManager24getNumIndicesForSkolemIdE8SkolemId", "cvc5::TermManager::getNumIndicesForSkolemId::id"], [49, 5, 1, "_CPPv4N4cvc511TermManager11getRealSortEv", "cvc5::TermManager::getRealSort"], [49, 5, 1, "_CPPv4N4cvc511TermManager13getRegExpSortEv", "cvc5::TermManager::getRegExpSort"], [49, 5, 1, "_CPPv4N4cvc511TermManager19getRoundingModeSortEv", "cvc5::TermManager::getRoundingModeSort"], [49, 5, 1, "_CPPv4NK4cvc511TermManager13getStatisticsEv", "cvc5::TermManager::getStatistics"], [49, 5, 1, "_CPPv4N4cvc511TermManager13getStringSortEv", "cvc5::TermManager::getStringSort"], [49, 5, 1, "_CPPv4N4cvc511TermManager14mkAbstractSortE8SortKind", "cvc5::TermManager::mkAbstractSort"], [49, 6, 1, "_CPPv4N4cvc511TermManager14mkAbstractSortE8SortKind", "cvc5::TermManager::mkAbstractSort::k"], [49, 5, 1, "_CPPv4N4cvc511TermManager11mkArraySortERK4SortRK4Sort", "cvc5::TermManager::mkArraySort"], [49, 6, 1, "_CPPv4N4cvc511TermManager11mkArraySortERK4SortRK4Sort", "cvc5::TermManager::mkArraySort::elemSort"], [49, 6, 1, "_CPPv4N4cvc511TermManager11mkArraySortERK4SortRK4Sort", "cvc5::TermManager::mkArraySort::indexSort"], [49, 5, 1, "_CPPv4N4cvc511TermManager9mkBagSortERK4Sort", "cvc5::TermManager::mkBagSort"], [49, 6, 1, "_CPPv4N4cvc511TermManager9mkBagSortERK4Sort", "cvc5::TermManager::mkBagSort::elemSort"], [49, 5, 1, "_CPPv4N4cvc511TermManager11mkBitVectorE8uint32_t8uint64_t", "cvc5::TermManager::mkBitVector"], [49, 5, 1, "_CPPv4N4cvc511TermManager11mkBitVectorE8uint32_tRKNSt6stringE8uint32_t", "cvc5::TermManager::mkBitVector"], [49, 6, 1, "_CPPv4N4cvc511TermManager11mkBitVectorE8uint32_tRKNSt6stringE8uint32_t", "cvc5::TermManager::mkBitVector::base"], [49, 6, 1, "_CPPv4N4cvc511TermManager11mkBitVectorE8uint32_tRKNSt6stringE8uint32_t", "cvc5::TermManager::mkBitVector::s"], [49, 6, 1, "_CPPv4N4cvc511TermManager11mkBitVectorE8uint32_t8uint64_t", "cvc5::TermManager::mkBitVector::size"], [49, 6, 1, "_CPPv4N4cvc511TermManager11mkBitVectorE8uint32_tRKNSt6stringE8uint32_t", "cvc5::TermManager::mkBitVector::size"], [49, 6, 1, "_CPPv4N4cvc511TermManager11mkBitVectorE8uint32_t8uint64_t", "cvc5::TermManager::mkBitVector::val"], [49, 5, 1, "_CPPv4N4cvc511TermManager15mkBitVectorSortE8uint32_t", "cvc5::TermManager::mkBitVectorSort"], [49, 6, 1, "_CPPv4N4cvc511TermManager15mkBitVectorSortE8uint32_t", "cvc5::TermManager::mkBitVectorSort::size"], [49, 5, 1, "_CPPv4N4cvc511TermManager9mkBooleanEb", "cvc5::TermManager::mkBoolean"], [49, 6, 1, "_CPPv4N4cvc511TermManager9mkBooleanEb", "cvc5::TermManager::mkBoolean::val"], [49, 5, 1, "_CPPv4N4cvc511TermManager23mkCardinalityConstraintERK4Sort8uint32_t", "cvc5::TermManager::mkCardinalityConstraint"], [49, 6, 1, "_CPPv4N4cvc511TermManager23mkCardinalityConstraintERK4Sort8uint32_t", "cvc5::TermManager::mkCardinalityConstraint::sort"], [49, 6, 1, "_CPPv4N4cvc511TermManager23mkCardinalityConstraintERK4Sort8uint32_t", "cvc5::TermManager::mkCardinalityConstraint::upperBound"], [49, 5, 1, "_CPPv4N4cvc511TermManager7mkConstERK4SortRKNSt8optionalINSt6stringEEE", "cvc5::TermManager::mkConst"], [49, 6, 1, "_CPPv4N4cvc511TermManager7mkConstERK4SortRKNSt8optionalINSt6stringEEE", "cvc5::TermManager::mkConst::sort"], [49, 6, 1, "_CPPv4N4cvc511TermManager7mkConstERK4SortRKNSt8optionalINSt6stringEEE", "cvc5::TermManager::mkConst::symbol"], [49, 5, 1, "_CPPv4N4cvc511TermManager12mkConstArrayERK4SortRK4Term", "cvc5::TermManager::mkConstArray"], [49, 6, 1, "_CPPv4N4cvc511TermManager12mkConstArrayERK4SortRK4Term", "cvc5::TermManager::mkConstArray::sort"], [49, 6, 1, "_CPPv4N4cvc511TermManager12mkConstArrayERK4SortRK4Term", "cvc5::TermManager::mkConstArray::val"], [49, 5, 1, "_CPPv4N4cvc511TermManager25mkDatatypeConstructorDeclERKNSt6stringE", "cvc5::TermManager::mkDatatypeConstructorDecl"], [49, 6, 1, "_CPPv4N4cvc511TermManager25mkDatatypeConstructorDeclERKNSt6stringE", "cvc5::TermManager::mkDatatypeConstructorDecl::name"], [49, 5, 1, "_CPPv4N4cvc511TermManager14mkDatatypeDeclERKNSt6stringERKNSt6vectorI4SortEEb", "cvc5::TermManager::mkDatatypeDecl"], [49, 5, 1, "_CPPv4N4cvc511TermManager14mkDatatypeDeclERKNSt6stringEb", "cvc5::TermManager::mkDatatypeDecl"], [49, 6, 1, "_CPPv4N4cvc511TermManager14mkDatatypeDeclERKNSt6stringERKNSt6vectorI4SortEEb", "cvc5::TermManager::mkDatatypeDecl::isCoDatatype"], [49, 6, 1, "_CPPv4N4cvc511TermManager14mkDatatypeDeclERKNSt6stringEb", "cvc5::TermManager::mkDatatypeDecl::isCoDatatype"], [49, 6, 1, "_CPPv4N4cvc511TermManager14mkDatatypeDeclERKNSt6stringERKNSt6vectorI4SortEEb", "cvc5::TermManager::mkDatatypeDecl::name"], [49, 6, 1, "_CPPv4N4cvc511TermManager14mkDatatypeDeclERKNSt6stringEb", "cvc5::TermManager::mkDatatypeDecl::name"], [49, 6, 1, "_CPPv4N4cvc511TermManager14mkDatatypeDeclERKNSt6stringERKNSt6vectorI4SortEEb", "cvc5::TermManager::mkDatatypeDecl::params"], [49, 5, 1, "_CPPv4N4cvc511TermManager14mkDatatypeSortERK12DatatypeDecl", "cvc5::TermManager::mkDatatypeSort"], [49, 6, 1, "_CPPv4N4cvc511TermManager14mkDatatypeSortERK12DatatypeDecl", "cvc5::TermManager::mkDatatypeSort::dtypedecl"], [49, 5, 1, "_CPPv4N4cvc511TermManager15mkDatatypeSortsERKNSt6vectorI12DatatypeDeclEE", "cvc5::TermManager::mkDatatypeSorts"], [49, 6, 1, "_CPPv4N4cvc511TermManager15mkDatatypeSortsERKNSt6vectorI12DatatypeDeclEE", "cvc5::TermManager::mkDatatypeSorts::dtypedecls"], [49, 5, 1, "_CPPv4N4cvc511TermManager10mkEmptyBagERK4Sort", "cvc5::TermManager::mkEmptyBag"], [49, 6, 1, "_CPPv4N4cvc511TermManager10mkEmptyBagERK4Sort", "cvc5::TermManager::mkEmptyBag::sort"], [49, 5, 1, "_CPPv4N4cvc511TermManager15mkEmptySequenceERK4Sort", "cvc5::TermManager::mkEmptySequence"], [49, 6, 1, "_CPPv4N4cvc511TermManager15mkEmptySequenceERK4Sort", "cvc5::TermManager::mkEmptySequence::sort"], [49, 5, 1, "_CPPv4N4cvc511TermManager10mkEmptySetERK4Sort", "cvc5::TermManager::mkEmptySet"], [49, 6, 1, "_CPPv4N4cvc511TermManager10mkEmptySetERK4Sort", "cvc5::TermManager::mkEmptySet::sort"], [49, 5, 1, "_CPPv4N4cvc511TermManager7mkFalseEv", "cvc5::TermManager::mkFalse"], [49, 5, 1, "_CPPv4N4cvc511TermManager17mkFiniteFieldElemERKNSt6stringERK4Sort8uint32_t", "cvc5::TermManager::mkFiniteFieldElem"], [49, 6, 1, "_CPPv4N4cvc511TermManager17mkFiniteFieldElemERKNSt6stringERK4Sort8uint32_t", "cvc5::TermManager::mkFiniteFieldElem::base"], [49, 6, 1, "_CPPv4N4cvc511TermManager17mkFiniteFieldElemERKNSt6stringERK4Sort8uint32_t", "cvc5::TermManager::mkFiniteFieldElem::sort"], [49, 6, 1, "_CPPv4N4cvc511TermManager17mkFiniteFieldElemERKNSt6stringERK4Sort8uint32_t", "cvc5::TermManager::mkFiniteFieldElem::value"], [49, 5, 1, "_CPPv4N4cvc511TermManager17mkFiniteFieldSortERKNSt6stringE8uint32_t", "cvc5::TermManager::mkFiniteFieldSort"], [49, 6, 1, "_CPPv4N4cvc511TermManager17mkFiniteFieldSortERKNSt6stringE8uint32_t", "cvc5::TermManager::mkFiniteFieldSort::base"], [49, 6, 1, "_CPPv4N4cvc511TermManager17mkFiniteFieldSortERKNSt6stringE8uint32_t", "cvc5::TermManager::mkFiniteFieldSort::size"], [49, 5, 1, "_CPPv4N4cvc511TermManager15mkFloatingPointE8uint32_t8uint32_tRK4Term", "cvc5::TermManager::mkFloatingPoint"], [49, 5, 1, "_CPPv4N4cvc511TermManager15mkFloatingPointERK4TermRK4TermRK4Term", "cvc5::TermManager::mkFloatingPoint"], [49, 6, 1, "_CPPv4N4cvc511TermManager15mkFloatingPointE8uint32_t8uint32_tRK4Term", "cvc5::TermManager::mkFloatingPoint::exp"], [49, 6, 1, "_CPPv4N4cvc511TermManager15mkFloatingPointERK4TermRK4TermRK4Term", "cvc5::TermManager::mkFloatingPoint::exp"], [49, 6, 1, "_CPPv4N4cvc511TermManager15mkFloatingPointE8uint32_t8uint32_tRK4Term", "cvc5::TermManager::mkFloatingPoint::sig"], [49, 6, 1, "_CPPv4N4cvc511TermManager15mkFloatingPointERK4TermRK4TermRK4Term", "cvc5::TermManager::mkFloatingPoint::sig"], [49, 6, 1, "_CPPv4N4cvc511TermManager15mkFloatingPointERK4TermRK4TermRK4Term", "cvc5::TermManager::mkFloatingPoint::sign"], [49, 6, 1, "_CPPv4N4cvc511TermManager15mkFloatingPointE8uint32_t8uint32_tRK4Term", "cvc5::TermManager::mkFloatingPoint::val"], [49, 5, 1, "_CPPv4N4cvc511TermManager18mkFloatingPointNaNE8uint32_t8uint32_t", "cvc5::TermManager::mkFloatingPointNaN"], [49, 6, 1, "_CPPv4N4cvc511TermManager18mkFloatingPointNaNE8uint32_t8uint32_t", "cvc5::TermManager::mkFloatingPointNaN::exp"], [49, 6, 1, "_CPPv4N4cvc511TermManager18mkFloatingPointNaNE8uint32_t8uint32_t", "cvc5::TermManager::mkFloatingPointNaN::sig"], [49, 5, 1, "_CPPv4N4cvc511TermManager21mkFloatingPointNegInfE8uint32_t8uint32_t", "cvc5::TermManager::mkFloatingPointNegInf"], [49, 6, 1, "_CPPv4N4cvc511TermManager21mkFloatingPointNegInfE8uint32_t8uint32_t", "cvc5::TermManager::mkFloatingPointNegInf::exp"], [49, 6, 1, "_CPPv4N4cvc511TermManager21mkFloatingPointNegInfE8uint32_t8uint32_t", "cvc5::TermManager::mkFloatingPointNegInf::sig"], [49, 5, 1, "_CPPv4N4cvc511TermManager22mkFloatingPointNegZeroE8uint32_t8uint32_t", "cvc5::TermManager::mkFloatingPointNegZero"], [49, 6, 1, "_CPPv4N4cvc511TermManager22mkFloatingPointNegZeroE8uint32_t8uint32_t", "cvc5::TermManager::mkFloatingPointNegZero::exp"], [49, 6, 1, "_CPPv4N4cvc511TermManager22mkFloatingPointNegZeroE8uint32_t8uint32_t", "cvc5::TermManager::mkFloatingPointNegZero::sig"], [49, 5, 1, "_CPPv4N4cvc511TermManager21mkFloatingPointPosInfE8uint32_t8uint32_t", "cvc5::TermManager::mkFloatingPointPosInf"], [49, 6, 1, "_CPPv4N4cvc511TermManager21mkFloatingPointPosInfE8uint32_t8uint32_t", "cvc5::TermManager::mkFloatingPointPosInf::exp"], [49, 6, 1, "_CPPv4N4cvc511TermManager21mkFloatingPointPosInfE8uint32_t8uint32_t", "cvc5::TermManager::mkFloatingPointPosInf::sig"], [49, 5, 1, "_CPPv4N4cvc511TermManager22mkFloatingPointPosZeroE8uint32_t8uint32_t", "cvc5::TermManager::mkFloatingPointPosZero"], [49, 6, 1, "_CPPv4N4cvc511TermManager22mkFloatingPointPosZeroE8uint32_t8uint32_t", "cvc5::TermManager::mkFloatingPointPosZero::exp"], [49, 6, 1, "_CPPv4N4cvc511TermManager22mkFloatingPointPosZeroE8uint32_t8uint32_t", "cvc5::TermManager::mkFloatingPointPosZero::sig"], [49, 5, 1, "_CPPv4N4cvc511TermManager19mkFloatingPointSortE8uint32_t8uint32_t", "cvc5::TermManager::mkFloatingPointSort"], [49, 6, 1, "_CPPv4N4cvc511TermManager19mkFloatingPointSortE8uint32_t8uint32_t", "cvc5::TermManager::mkFloatingPointSort::exp"], [49, 6, 1, "_CPPv4N4cvc511TermManager19mkFloatingPointSortE8uint32_t8uint32_t", "cvc5::TermManager::mkFloatingPointSort::sig"], [49, 5, 1, "_CPPv4N4cvc511TermManager14mkFunctionSortERKNSt6vectorI4SortEERK4Sort", "cvc5::TermManager::mkFunctionSort"], [49, 6, 1, "_CPPv4N4cvc511TermManager14mkFunctionSortERKNSt6vectorI4SortEERK4Sort", "cvc5::TermManager::mkFunctionSort::codomain"], [49, 6, 1, "_CPPv4N4cvc511TermManager14mkFunctionSortERKNSt6vectorI4SortEERK4Sort", "cvc5::TermManager::mkFunctionSort::sorts"], [49, 5, 1, "_CPPv4N4cvc511TermManager9mkIntegerE7int64_t", "cvc5::TermManager::mkInteger"], [49, 5, 1, "_CPPv4N4cvc511TermManager9mkIntegerERKNSt6stringE", "cvc5::TermManager::mkInteger"], [49, 6, 1, "_CPPv4N4cvc511TermManager9mkIntegerERKNSt6stringE", "cvc5::TermManager::mkInteger::s"], [49, 6, 1, "_CPPv4N4cvc511TermManager9mkIntegerE7int64_t", "cvc5::TermManager::mkInteger::val"], [49, 5, 1, "_CPPv4N4cvc511TermManager16mkNullableIsNullERK4Term", "cvc5::TermManager::mkNullableIsNull"], [49, 6, 1, "_CPPv4N4cvc511TermManager16mkNullableIsNullERK4Term", "cvc5::TermManager::mkNullableIsNull::term"], [49, 5, 1, "_CPPv4N4cvc511TermManager16mkNullableIsSomeERK4Term", "cvc5::TermManager::mkNullableIsSome"], [49, 6, 1, "_CPPv4N4cvc511TermManager16mkNullableIsSomeERK4Term", "cvc5::TermManager::mkNullableIsSome::term"], [49, 5, 1, "_CPPv4N4cvc511TermManager14mkNullableLiftE4KindRKNSt6vectorI4TermEE", "cvc5::TermManager::mkNullableLift"], [49, 6, 1, "_CPPv4N4cvc511TermManager14mkNullableLiftE4KindRKNSt6vectorI4TermEE", "cvc5::TermManager::mkNullableLift::args"], [49, 6, 1, "_CPPv4N4cvc511TermManager14mkNullableLiftE4KindRKNSt6vectorI4TermEE", "cvc5::TermManager::mkNullableLift::kind"], [49, 5, 1, "_CPPv4N4cvc511TermManager14mkNullableNullERK4Sort", "cvc5::TermManager::mkNullableNull"], [49, 6, 1, "_CPPv4N4cvc511TermManager14mkNullableNullERK4Sort", "cvc5::TermManager::mkNullableNull::sort"], [49, 5, 1, "_CPPv4N4cvc511TermManager14mkNullableSomeERK4Term", "cvc5::TermManager::mkNullableSome"], [49, 6, 1, "_CPPv4N4cvc511TermManager14mkNullableSomeERK4Term", "cvc5::TermManager::mkNullableSome::term"], [49, 5, 1, "_CPPv4N4cvc511TermManager14mkNullableSortERK4Sort", "cvc5::TermManager::mkNullableSort"], [49, 6, 1, "_CPPv4N4cvc511TermManager14mkNullableSortERK4Sort", "cvc5::TermManager::mkNullableSort::sort"], [49, 5, 1, "_CPPv4N4cvc511TermManager13mkNullableValERK4Term", "cvc5::TermManager::mkNullableVal"], [49, 6, 1, "_CPPv4N4cvc511TermManager13mkNullableValERK4Term", "cvc5::TermManager::mkNullableVal::term"], [49, 5, 1, "_CPPv4N4cvc511TermManager4mkOpE4KindRKNSt6stringE", "cvc5::TermManager::mkOp"], [49, 5, 1, "_CPPv4N4cvc511TermManager4mkOpE4KindRKNSt6vectorI8uint32_tEE", "cvc5::TermManager::mkOp"], [49, 6, 1, "_CPPv4N4cvc511TermManager4mkOpE4KindRKNSt6stringE", "cvc5::TermManager::mkOp::arg"], [49, 6, 1, "_CPPv4N4cvc511TermManager4mkOpE4KindRKNSt6vectorI8uint32_tEE", "cvc5::TermManager::mkOp::args"], [49, 6, 1, "_CPPv4N4cvc511TermManager4mkOpE4KindRKNSt6stringE", "cvc5::TermManager::mkOp::kind"], [49, 6, 1, "_CPPv4N4cvc511TermManager4mkOpE4KindRKNSt6vectorI8uint32_tEE", "cvc5::TermManager::mkOp::kind"], [49, 5, 1, "_CPPv4N4cvc511TermManager11mkParamSortERKNSt8optionalINSt6stringEEE", "cvc5::TermManager::mkParamSort"], [49, 6, 1, "_CPPv4N4cvc511TermManager11mkParamSortERKNSt8optionalINSt6stringEEE", "cvc5::TermManager::mkParamSort::symbol"], [49, 5, 1, "_CPPv4N4cvc511TermManager4mkPiEv", "cvc5::TermManager::mkPi"], [49, 5, 1, "_CPPv4N4cvc511TermManager15mkPredicateSortERKNSt6vectorI4SortEE", "cvc5::TermManager::mkPredicateSort"], [49, 6, 1, "_CPPv4N4cvc511TermManager15mkPredicateSortERKNSt6vectorI4SortEE", "cvc5::TermManager::mkPredicateSort::sorts"], [49, 5, 1, "_CPPv4N4cvc511TermManager6mkRealE7int64_t", "cvc5::TermManager::mkReal"], [49, 5, 1, "_CPPv4N4cvc511TermManager6mkRealE7int64_t7int64_t", "cvc5::TermManager::mkReal"], [49, 5, 1, "_CPPv4N4cvc511TermManager6mkRealERKNSt6stringE", "cvc5::TermManager::mkReal"], [49, 6, 1, "_CPPv4N4cvc511TermManager6mkRealE7int64_t7int64_t", "cvc5::TermManager::mkReal::den"], [49, 6, 1, "_CPPv4N4cvc511TermManager6mkRealE7int64_t7int64_t", "cvc5::TermManager::mkReal::num"], [49, 6, 1, "_CPPv4N4cvc511TermManager6mkRealERKNSt6stringE", "cvc5::TermManager::mkReal::s"], [49, 6, 1, "_CPPv4N4cvc511TermManager6mkRealE7int64_t", "cvc5::TermManager::mkReal::val"], [49, 5, 1, "_CPPv4N4cvc511TermManager12mkRecordSortERKNSt6vectorINSt4pairINSt6stringE4SortEEEE", "cvc5::TermManager::mkRecordSort"], [49, 6, 1, "_CPPv4N4cvc511TermManager12mkRecordSortERKNSt6vectorINSt4pairINSt6stringE4SortEEEE", "cvc5::TermManager::mkRecordSort::fields"], [49, 5, 1, "_CPPv4N4cvc511TermManager11mkRegexpAllEv", "cvc5::TermManager::mkRegexpAll"], [49, 5, 1, "_CPPv4N4cvc511TermManager15mkRegexpAllcharEv", "cvc5::TermManager::mkRegexpAllchar"], [49, 5, 1, "_CPPv4N4cvc511TermManager12mkRegexpNoneEv", "cvc5::TermManager::mkRegexpNone"], [49, 5, 1, "_CPPv4N4cvc511TermManager14mkRoundingModeE12RoundingMode", "cvc5::TermManager::mkRoundingMode"], [49, 6, 1, "_CPPv4N4cvc511TermManager14mkRoundingModeE12RoundingMode", "cvc5::TermManager::mkRoundingMode::rm"], [49, 5, 1, "_CPPv4N4cvc511TermManager8mkSepEmpEv", "cvc5::TermManager::mkSepEmp"], [49, 5, 1, "_CPPv4N4cvc511TermManager8mkSepNilERK4Sort", "cvc5::TermManager::mkSepNil"], [49, 6, 1, "_CPPv4N4cvc511TermManager8mkSepNilERK4Sort", "cvc5::TermManager::mkSepNil::sort"], [49, 5, 1, "_CPPv4N4cvc511TermManager14mkSequenceSortERK4Sort", "cvc5::TermManager::mkSequenceSort"], [49, 6, 1, "_CPPv4N4cvc511TermManager14mkSequenceSortERK4Sort", "cvc5::TermManager::mkSequenceSort::elemSort"], [49, 5, 1, "_CPPv4N4cvc511TermManager9mkSetSortERK4Sort", "cvc5::TermManager::mkSetSort"], [49, 6, 1, "_CPPv4N4cvc511TermManager9mkSetSortERK4Sort", "cvc5::TermManager::mkSetSort::elemSort"], [49, 5, 1, "_CPPv4N4cvc511TermManager8mkSkolemE8SkolemIdRKNSt6vectorI4TermEE", "cvc5::TermManager::mkSkolem"], [49, 6, 1, "_CPPv4N4cvc511TermManager8mkSkolemE8SkolemIdRKNSt6vectorI4TermEE", "cvc5::TermManager::mkSkolem::id"], [49, 6, 1, "_CPPv4N4cvc511TermManager8mkSkolemE8SkolemIdRKNSt6vectorI4TermEE", "cvc5::TermManager::mkSkolem::indices"], [49, 5, 1, "_CPPv4N4cvc511TermManager8mkStringERKNSt6stringEb", "cvc5::TermManager::mkString"], [49, 5, 1, "_CPPv4N4cvc511TermManager8mkStringERKNSt7wstringE", "cvc5::TermManager::mkString"], [49, 6, 1, "_CPPv4N4cvc511TermManager8mkStringERKNSt6stringEb", "cvc5::TermManager::mkString::s"], [49, 6, 1, "_CPPv4N4cvc511TermManager8mkStringERKNSt7wstringE", "cvc5::TermManager::mkString::s"], [49, 6, 1, "_CPPv4N4cvc511TermManager8mkStringERKNSt6stringEb", "cvc5::TermManager::mkString::useEscSequences"], [49, 5, 1, "_CPPv4N4cvc511TermManager6mkTermE4KindRKNSt6vectorI4TermEE", "cvc5::TermManager::mkTerm"], [49, 5, 1, "_CPPv4N4cvc511TermManager6mkTermERK2OpRKNSt6vectorI4TermEE", "cvc5::TermManager::mkTerm"], [49, 6, 1, "_CPPv4N4cvc511TermManager6mkTermE4KindRKNSt6vectorI4TermEE", "cvc5::TermManager::mkTerm::children"], [49, 6, 1, "_CPPv4N4cvc511TermManager6mkTermERK2OpRKNSt6vectorI4TermEE", "cvc5::TermManager::mkTerm::children"], [49, 6, 1, "_CPPv4N4cvc511TermManager6mkTermE4KindRKNSt6vectorI4TermEE", "cvc5::TermManager::mkTerm::kind"], [49, 6, 1, "_CPPv4N4cvc511TermManager6mkTermERK2OpRKNSt6vectorI4TermEE", "cvc5::TermManager::mkTerm::op"], [49, 5, 1, "_CPPv4N4cvc511TermManager6mkTrueEv", "cvc5::TermManager::mkTrue"], [49, 5, 1, "_CPPv4N4cvc511TermManager7mkTupleERKNSt6vectorI4TermEE", "cvc5::TermManager::mkTuple"], [49, 6, 1, "_CPPv4N4cvc511TermManager7mkTupleERKNSt6vectorI4TermEE", "cvc5::TermManager::mkTuple::terms"], [49, 5, 1, "_CPPv4N4cvc511TermManager11mkTupleSortERKNSt6vectorI4SortEE", "cvc5::TermManager::mkTupleSort"], [49, 6, 1, "_CPPv4N4cvc511TermManager11mkTupleSortERKNSt6vectorI4SortEE", "cvc5::TermManager::mkTupleSort::sorts"], [49, 5, 1, "_CPPv4N4cvc511TermManager19mkUninterpretedSortERKNSt8optionalINSt6stringEEE", "cvc5::TermManager::mkUninterpretedSort"], [49, 6, 1, "_CPPv4N4cvc511TermManager19mkUninterpretedSortERKNSt8optionalINSt6stringEEE", "cvc5::TermManager::mkUninterpretedSort::symbol"], [49, 5, 1, "_CPPv4N4cvc511TermManager34mkUninterpretedSortConstructorSortE6size_tRKNSt8optionalINSt6stringEEE", "cvc5::TermManager::mkUninterpretedSortConstructorSort"], [49, 6, 1, "_CPPv4N4cvc511TermManager34mkUninterpretedSortConstructorSortE6size_tRKNSt8optionalINSt6stringEEE", "cvc5::TermManager::mkUninterpretedSortConstructorSort::arity"], [49, 6, 1, "_CPPv4N4cvc511TermManager34mkUninterpretedSortConstructorSortE6size_tRKNSt8optionalINSt6stringEEE", "cvc5::TermManager::mkUninterpretedSortConstructorSort::symbol"], [49, 5, 1, "_CPPv4N4cvc511TermManager13mkUniverseSetERK4Sort", "cvc5::TermManager::mkUniverseSet"], [49, 6, 1, "_CPPv4N4cvc511TermManager13mkUniverseSetERK4Sort", "cvc5::TermManager::mkUniverseSet::sort"], [49, 5, 1, "_CPPv4N4cvc511TermManager24mkUnresolvedDatatypeSortERKNSt6stringE6size_t", "cvc5::TermManager::mkUnresolvedDatatypeSort"], [49, 6, 1, "_CPPv4N4cvc511TermManager24mkUnresolvedDatatypeSortERKNSt6stringE6size_t", "cvc5::TermManager::mkUnresolvedDatatypeSort::arity"], [49, 6, 1, "_CPPv4N4cvc511TermManager24mkUnresolvedDatatypeSortERKNSt6stringE6size_t", "cvc5::TermManager::mkUnresolvedDatatypeSort::symbol"], [49, 5, 1, "_CPPv4N4cvc511TermManager5mkVarERK4SortRKNSt8optionalINSt6stringEEE", "cvc5::TermManager::mkVar"], [49, 6, 1, "_CPPv4N4cvc511TermManager5mkVarERK4SortRKNSt8optionalINSt6stringEEE", "cvc5::TermManager::mkVar::sort"], [49, 6, 1, "_CPPv4N4cvc511TermManager5mkVarERK4SortRKNSt8optionalINSt6stringEEE", "cvc5::TermManager::mkVar::symbol"], [49, 5, 1, "_CPPv4NK4cvc511TermManager19printStatisticsSafeEi", "cvc5::TermManager::printStatisticsSafe"], [49, 6, 1, "_CPPv4NK4cvc511TermManager19printStatisticsSafeEi", "cvc5::TermManager::printStatisticsSafe::fd"], [49, 5, 1, "_CPPv4N4cvc511TermManagerD0Ev", "cvc5::TermManager::~TermManager"], [56, 2, 1, "_CPPv4N4cvc518UnknownExplanationE", "cvc5::UnknownExplanation"], [56, 0, 1, "_CPPv4N4cvc518UnknownExplanation10INCOMPLETEE", "cvc5::UnknownExplanation::INCOMPLETE"], [56, 0, 1, "_CPPv4N4cvc518UnknownExplanation11INTERRUPTEDE", "cvc5::UnknownExplanation::INTERRUPTED"], [56, 0, 1, "_CPPv4N4cvc518UnknownExplanation6MEMOUTE", "cvc5::UnknownExplanation::MEMOUT"], [56, 0, 1, "_CPPv4N4cvc518UnknownExplanation5OTHERE", "cvc5::UnknownExplanation::OTHER"], [56, 0, 1, "_CPPv4N4cvc518UnknownExplanation20REQUIRES_CHECK_AGAINE", "cvc5::UnknownExplanation::REQUIRES_CHECK_AGAIN"], [56, 0, 1, "_CPPv4N4cvc518UnknownExplanation19REQUIRES_FULL_CHECKE", "cvc5::UnknownExplanation::REQUIRES_FULL_CHECK"], [56, 0, 1, "_CPPv4N4cvc518UnknownExplanation11RESOURCEOUTE", "cvc5::UnknownExplanation::RESOURCEOUT"], [56, 0, 1, "_CPPv4N4cvc518UnknownExplanation7TIMEOUTE", "cvc5::UnknownExplanation::TIMEOUT"], [56, 0, 1, "_CPPv4N4cvc518UnknownExplanation14UNKNOWN_REASONE", "cvc5::UnknownExplanation::UNKNOWN_REASON"], [56, 0, 1, "_CPPv4N4cvc518UnknownExplanation11UNSUPPORTEDE", "cvc5::UnknownExplanation::UNSUPPORTED"], [52, 2, 1, "_CPPv4N4cvc55modes15BlockModelsModeE", "cvc5::modes::BlockModelsMode"], [52, 0, 1, "_CPPv4N4cvc55modes15BlockModelsMode8LITERALSE", "cvc5::modes::BlockModelsMode::LITERALS"], [52, 0, 1, "_CPPv4N4cvc55modes15BlockModelsMode6VALUESE", "cvc5::modes::BlockModelsMode::VALUES"], [52, 2, 1, "_CPPv4N4cvc55modes15FindSynthTargetE", "cvc5::modes::FindSynthTarget"], [52, 0, 1, "_CPPv4N4cvc55modes15FindSynthTarget4ENUME", "cvc5::modes::FindSynthTarget::ENUM"], [52, 0, 1, "_CPPv4N4cvc55modes15FindSynthTarget5QUERYE", "cvc5::modes::FindSynthTarget::QUERY"], [52, 0, 1, "_CPPv4N4cvc55modes15FindSynthTarget7REWRITEE", "cvc5::modes::FindSynthTarget::REWRITE"], [52, 0, 1, "_CPPv4N4cvc55modes15FindSynthTarget13REWRITE_INPUTE", "cvc5::modes::FindSynthTarget::REWRITE_INPUT"], [52, 0, 1, "_CPPv4N4cvc55modes15FindSynthTarget15REWRITE_UNSOUNDE", "cvc5::modes::FindSynthTarget::REWRITE_UNSOUND"], [52, 2, 1, "_CPPv4N4cvc55modes14LearnedLitTypeE", "cvc5::modes::LearnedLitType"], [52, 0, 1, "_CPPv4N4cvc55modes14LearnedLitType13CONSTANT_PROPE", "cvc5::modes::LearnedLitType::CONSTANT_PROP"], [52, 0, 1, "_CPPv4N4cvc55modes14LearnedLitType5INPUTE", "cvc5::modes::LearnedLitType::INPUT"], [52, 0, 1, "_CPPv4N4cvc55modes14LearnedLitType8INTERNALE", "cvc5::modes::LearnedLitType::INTERNAL"], [52, 0, 1, "_CPPv4N4cvc55modes14LearnedLitType10PREPROCESSE", "cvc5::modes::LearnedLitType::PREPROCESS"], [52, 0, 1, "_CPPv4N4cvc55modes14LearnedLitType17PREPROCESS_SOLVEDE", "cvc5::modes::LearnedLitType::PREPROCESS_SOLVED"], [52, 0, 1, "_CPPv4N4cvc55modes14LearnedLitType8SOLVABLEE", "cvc5::modes::LearnedLitType::SOLVABLE"], [52, 0, 1, "_CPPv4N4cvc55modes14LearnedLitType7UNKNOWNE", "cvc5::modes::LearnedLitType::UNKNOWN"], [52, 2, 1, "_CPPv4N4cvc55modes14ProofComponentE", "cvc5::modes::ProofComponent"], [52, 0, 1, "_CPPv4N4cvc55modes14ProofComponent4FULLE", "cvc5::modes::ProofComponent::FULL"], [52, 0, 1, "_CPPv4N4cvc55modes14ProofComponent10PREPROCESSE", "cvc5::modes::ProofComponent::PREPROCESS"], [52, 0, 1, "_CPPv4N4cvc55modes14ProofComponent14RAW_PREPROCESSE", "cvc5::modes::ProofComponent::RAW_PREPROCESS"], [52, 0, 1, "_CPPv4N4cvc55modes14ProofComponent3SATE", "cvc5::modes::ProofComponent::SAT"], [52, 0, 1, "_CPPv4N4cvc55modes14ProofComponent13THEORY_LEMMASE", "cvc5::modes::ProofComponent::THEORY_LEMMAS"], [52, 2, 1, "_CPPv4N4cvc55modes11ProofFormatE", "cvc5::modes::ProofFormat"], [52, 0, 1, "_CPPv4N4cvc55modes11ProofFormat6ALETHEE", "cvc5::modes::ProofFormat::ALETHE"], [52, 0, 1, "_CPPv4N4cvc55modes11ProofFormat3CPCE", "cvc5::modes::ProofFormat::CPC"], [52, 0, 1, "_CPPv4N4cvc55modes11ProofFormat7DEFAULTE", "cvc5::modes::ProofFormat::DEFAULT"], [52, 0, 1, "_CPPv4N4cvc55modes11ProofFormat3DOTE", "cvc5::modes::ProofFormat::DOT"], [52, 0, 1, "_CPPv4N4cvc55modes11ProofFormat4LFSCE", "cvc5::modes::ProofFormat::LFSC"], [52, 0, 1, "_CPPv4N4cvc55modes11ProofFormat4NONEE", "cvc5::modes::ProofFormat::NONE"], [52, 5, 1, "_CPPv4N4cvc55modeslsERNSt7ostreamE11ProofFormat", "cvc5::modes::operator<<"], [52, 5, 1, "_CPPv4N4cvc55modeslsERNSt7ostreamE14LearnedLitType", "cvc5::modes::operator<<"], [52, 5, 1, "_CPPv4N4cvc55modeslsERNSt7ostreamE14ProofComponent", "cvc5::modes::operator<<"], [52, 5, 1, "_CPPv4N4cvc55modeslsERNSt7ostreamE15BlockModelsMode", "cvc5::modes::operator<<"], [52, 5, 1, "_CPPv4N4cvc55modeslsERNSt7ostreamE15FindSynthTarget", "cvc5::modes::operator<<"], [52, 6, 1, "_CPPv4N4cvc55modeslsERNSt7ostreamE11ProofFormat", "cvc5::modes::operator<<::format"], [52, 6, 1, "_CPPv4N4cvc55modeslsERNSt7ostreamE15BlockModelsMode", "cvc5::modes::operator<<::mode"], [52, 6, 1, "_CPPv4N4cvc55modeslsERNSt7ostreamE11ProofFormat", "cvc5::modes::operator<<::out"], [52, 6, 1, "_CPPv4N4cvc55modeslsERNSt7ostreamE14LearnedLitType", "cvc5::modes::operator<<::out"], [52, 6, 1, "_CPPv4N4cvc55modeslsERNSt7ostreamE14ProofComponent", "cvc5::modes::operator<<::out"], [52, 6, 1, "_CPPv4N4cvc55modeslsERNSt7ostreamE15BlockModelsMode", "cvc5::modes::operator<<::out"], [52, 6, 1, "_CPPv4N4cvc55modeslsERNSt7ostreamE15FindSynthTarget", "cvc5::modes::operator<<::out"], [52, 6, 1, "_CPPv4N4cvc55modeslsERNSt7ostreamE14ProofComponent", "cvc5::modes::operator<<::pc"], [52, 6, 1, "_CPPv4N4cvc55modeslsERNSt7ostreamE15FindSynthTarget", "cvc5::modes::operator<<::target"], [52, 6, 1, "_CPPv4N4cvc55modeslsERNSt7ostreamE14LearnedLitType", "cvc5::modes::operator<<::type"], [30, 5, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK8Datatype", "cvc5::operator<<"], [31, 5, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK19DatatypeConstructor", "cvc5::operator<<"], [32, 5, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK23DatatypeConstructorDecl", "cvc5::operator<<"], [32, 5, 1, "_CPPv4N4cvc5lsERNSt7ostreamERKNSt6vectorI23DatatypeConstructorDeclEE", "cvc5::operator<<"], [33, 5, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK12DatatypeDecl", "cvc5::operator<<"], [34, 5, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK16DatatypeSelector", "cvc5::operator<<"], [36, 5, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK7Grammar", "cvc5::operator<<"], [38, 5, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK2Op", "cvc5::operator<<"], [39, 5, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK10OptionInfo", "cvc5::operator<<"], [42, 5, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK6Result", "cvc5::operator<<"], [44, 5, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK4Sort", "cvc5::operator<<"], [45, 5, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK10Statistics", "cvc5::operator<<"], [45, 5, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK4Stat", "cvc5::operator<<"], [47, 5, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK11SynthResult", "cvc5::operator<<"], [48, 5, 1, "_CPPv4I0EN4cvc5lsERNSt7ostreamERNSt7ostreamERKNSt13unordered_mapI4Term1VEE", "cvc5::operator<<"], [48, 5, 1, "_CPPv4I0EN4cvc5lsERNSt7ostreamERNSt7ostreamERKNSt3mapI4Term1VEE", "cvc5::operator<<"], [48, 5, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK4Term", "cvc5::operator<<"], [48, 5, 1, "_CPPv4N4cvc5lsERNSt7ostreamERKNSt13unordered_setI4TermEE", "cvc5::operator<<"], [48, 5, 1, "_CPPv4N4cvc5lsERNSt7ostreamERKNSt3setI4TermEE", "cvc5::operator<<"], [48, 5, 1, "_CPPv4N4cvc5lsERNSt7ostreamERKNSt6vectorI4TermEE", "cvc5::operator<<"], [51, 5, 1, "_CPPv4N4cvc5lsERNSt7ostreamE4Kind", "cvc5::operator<<"], [53, 5, 1, "_CPPv4N4cvc5lsERNSt7ostreamE16ProofRewriteRule", "cvc5::operator<<"], [53, 5, 1, "_CPPv4N4cvc5lsERNSt7ostreamE9ProofRule", "cvc5::operator<<"], [54, 5, 1, "_CPPv4N4cvc5lsERNSt7ostreamE12RoundingMode", "cvc5::operator<<"], [55, 5, 1, "_CPPv4N4cvc5lsERNSt7ostreamE8SortKind", "cvc5::operator<<"], [56, 5, 1, "_CPPv4N4cvc5lsERNSt7ostreamE18UnknownExplanation", "cvc5::operator<<"], [48, 7, 1, "_CPPv4I0EN4cvc5lsERNSt7ostreamERNSt7ostreamERKNSt13unordered_mapI4Term1VEE", "cvc5::operator<<::V"], [48, 7, 1, "_CPPv4I0EN4cvc5lsERNSt7ostreamERNSt7ostreamERKNSt3mapI4Term1VEE", "cvc5::operator<<::V"], [31, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK19DatatypeConstructor", "cvc5::operator<<::ctor"], [32, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK23DatatypeConstructorDecl", "cvc5::operator<<::ctordecl"], [33, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK12DatatypeDecl", "cvc5::operator<<::dtdecl"], [30, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK8Datatype", "cvc5::operator<<::dtype"], [56, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamE18UnknownExplanation", "cvc5::operator<<::e"], [36, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK7Grammar", "cvc5::operator<<::grammar"], [55, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamE8SortKind", "cvc5::operator<<::k"], [51, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamE4Kind", "cvc5::operator<<::kind"], [48, 6, 1, "_CPPv4I0EN4cvc5lsERNSt7ostreamERNSt7ostreamERKNSt3mapI4Term1VEE", "cvc5::operator<<::map"], [39, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK10OptionInfo", "cvc5::operator<<::oi"], [38, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK2Op", "cvc5::operator<<::op"], [39, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK10OptionInfo", "cvc5::operator<<::os"], [45, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK4Stat", "cvc5::operator<<::os"], [30, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK8Datatype", "cvc5::operator<<::out"], [31, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK19DatatypeConstructor", "cvc5::operator<<::out"], [32, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK23DatatypeConstructorDecl", "cvc5::operator<<::out"], [32, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERKNSt6vectorI23DatatypeConstructorDeclEE", "cvc5::operator<<::out"], [33, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK12DatatypeDecl", "cvc5::operator<<::out"], [34, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK16DatatypeSelector", "cvc5::operator<<::out"], [36, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK7Grammar", "cvc5::operator<<::out"], [38, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK2Op", "cvc5::operator<<::out"], [42, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK6Result", "cvc5::operator<<::out"], [44, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK4Sort", "cvc5::operator<<::out"], [45, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK10Statistics", "cvc5::operator<<::out"], [47, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK11SynthResult", "cvc5::operator<<::out"], [48, 6, 1, "_CPPv4I0EN4cvc5lsERNSt7ostreamERNSt7ostreamERKNSt13unordered_mapI4Term1VEE", "cvc5::operator<<::out"], [48, 6, 1, "_CPPv4I0EN4cvc5lsERNSt7ostreamERNSt7ostreamERKNSt3mapI4Term1VEE", "cvc5::operator<<::out"], [48, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK4Term", "cvc5::operator<<::out"], [48, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERKNSt13unordered_setI4TermEE", "cvc5::operator<<::out"], [48, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERKNSt3setI4TermEE", "cvc5::operator<<::out"], [48, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERKNSt6vectorI4TermEE", "cvc5::operator<<::out"], [51, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamE4Kind", "cvc5::operator<<::out"], [53, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamE16ProofRewriteRule", "cvc5::operator<<::out"], [53, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamE9ProofRule", "cvc5::operator<<::out"], [54, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamE12RoundingMode", "cvc5::operator<<::out"], [55, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamE8SortKind", "cvc5::operator<<::out"], [56, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamE18UnknownExplanation", "cvc5::operator<<::out"], [42, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK6Result", "cvc5::operator<<::r"], [47, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK11SynthResult", "cvc5::operator<<::r"], [54, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamE12RoundingMode", "cvc5::operator<<::rm"], [53, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamE16ProofRewriteRule", "cvc5::operator<<::rule"], [53, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamE9ProofRule", "cvc5::operator<<::rule"], [44, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK4Sort", "cvc5::operator<<::s"], [48, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERKNSt3setI4TermEE", "cvc5::operator<<::set"], [45, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK4Stat", "cvc5::operator<<::stat"], [45, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK10Statistics", "cvc5::operator<<::stats"], [34, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK16DatatypeSelector", "cvc5::operator<<::stor"], [48, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERK4Term", "cvc5::operator<<::t"], [48, 6, 1, "_CPPv4I0EN4cvc5lsERNSt7ostreamERNSt7ostreamERKNSt13unordered_mapI4Term1VEE", "cvc5::operator<<::unordered_map"], [48, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERKNSt13unordered_setI4TermEE", "cvc5::operator<<::unordered_set"], [32, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERKNSt6vectorI23DatatypeConstructorDeclEE", "cvc5::operator<<::vector"], [48, 6, 1, "_CPPv4N4cvc5lsERNSt7ostreamERKNSt6vectorI4TermEE", "cvc5::operator<<::vector"], [29, 3, 1, "_CPPv4N4cvc56parser7CommandE", "cvc5::parser::Command"], [29, 5, 1, "_CPPv4N4cvc56parser7Command7CommandEv", "cvc5::parser::Command::Command"], [29, 5, 1, "_CPPv4NK4cvc56parser7Command14getCommandNameEv", "cvc5::parser::Command::getCommandName"], [29, 5, 1, "_CPPv4N4cvc56parser7Command6invokeEPN4cvc56SolverEPN6parser13SymbolManagerERNSt7ostreamE", "cvc5::parser::Command::invoke"], [29, 6, 1, "_CPPv4N4cvc56parser7Command6invokeEPN4cvc56SolverEPN6parser13SymbolManagerERNSt7ostreamE", "cvc5::parser::Command::invoke::out"], [29, 6, 1, "_CPPv4N4cvc56parser7Command6invokeEPN4cvc56SolverEPN6parser13SymbolManagerERNSt7ostreamE", "cvc5::parser::Command::invoke::sm"], [29, 6, 1, "_CPPv4N4cvc56parser7Command6invokeEPN4cvc56SolverEPN6parser13SymbolManagerERNSt7ostreamE", "cvc5::parser::Command::invoke::solver"], [29, 5, 1, "_CPPv4NK4cvc56parser7Command6isNullEv", "cvc5::parser::Command::isNull"], [29, 5, 1, "_CPPv4NK4cvc56parser7Command8toStringEv", "cvc5::parser::Command::toString"], [37, 3, 1, "_CPPv4N4cvc56parser11InputParserE", "cvc5::parser::InputParser"], [37, 5, 1, "_CPPv4N4cvc56parser11InputParser11InputParserEP6Solver", "cvc5::parser::InputParser::InputParser"], [37, 5, 1, "_CPPv4N4cvc56parser11InputParser11InputParserEP6SolverP13SymbolManager", "cvc5::parser::InputParser::InputParser"], [37, 6, 1, "_CPPv4N4cvc56parser11InputParser11InputParserEP6SolverP13SymbolManager", "cvc5::parser::InputParser::InputParser::sm"], [37, 6, 1, "_CPPv4N4cvc56parser11InputParser11InputParserEP6Solver", "cvc5::parser::InputParser::InputParser::solver"], [37, 6, 1, "_CPPv4N4cvc56parser11InputParser11InputParserEP6SolverP13SymbolManager", "cvc5::parser::InputParser::InputParser::solver"], [37, 5, 1, "_CPPv4N4cvc56parser11InputParser28appendIncrementalStringInputERKNSt6stringE", "cvc5::parser::InputParser::appendIncrementalStringInput"], [37, 6, 1, "_CPPv4N4cvc56parser11InputParser28appendIncrementalStringInputERKNSt6stringE", "cvc5::parser::InputParser::appendIncrementalStringInput::input"], [37, 5, 1, "_CPPv4NK4cvc56parser11InputParser4doneEv", "cvc5::parser::InputParser::done"], [37, 5, 1, "_CPPv4N4cvc56parser11InputParser9getSolverEv", "cvc5::parser::InputParser::getSolver"], [37, 5, 1, "_CPPv4N4cvc56parser11InputParser16getSymbolManagerEv", "cvc5::parser::InputParser::getSymbolManager"], [37, 5, 1, "_CPPv4N4cvc56parser11InputParser11nextCommandEv", "cvc5::parser::InputParser::nextCommand"], [37, 5, 1, "_CPPv4N4cvc56parser11InputParser8nextTermEv", "cvc5::parser::InputParser::nextTerm"], [37, 5, 1, "_CPPv4N4cvc56parser11InputParser12setFileInputEN5modes13InputLanguageERKNSt6stringE", "cvc5::parser::InputParser::setFileInput"], [37, 6, 1, "_CPPv4N4cvc56parser11InputParser12setFileInputEN5modes13InputLanguageERKNSt6stringE", "cvc5::parser::InputParser::setFileInput::filename"], [37, 6, 1, "_CPPv4N4cvc56parser11InputParser12setFileInputEN5modes13InputLanguageERKNSt6stringE", "cvc5::parser::InputParser::setFileInput::lang"], [37, 5, 1, "_CPPv4N4cvc56parser11InputParser25setIncrementalStringInputEN5modes13InputLanguageERKNSt6stringE", "cvc5::parser::InputParser::setIncrementalStringInput"], [37, 6, 1, "_CPPv4N4cvc56parser11InputParser25setIncrementalStringInputEN5modes13InputLanguageERKNSt6stringE", "cvc5::parser::InputParser::setIncrementalStringInput::lang"], [37, 6, 1, "_CPPv4N4cvc56parser11InputParser25setIncrementalStringInputEN5modes13InputLanguageERKNSt6stringE", "cvc5::parser::InputParser::setIncrementalStringInput::name"], [37, 5, 1, "_CPPv4N4cvc56parser11InputParser14setStreamInputEN5modes13InputLanguageERNSt7istreamERKNSt6stringE", "cvc5::parser::InputParser::setStreamInput"], [37, 6, 1, "_CPPv4N4cvc56parser11InputParser14setStreamInputEN5modes13InputLanguageERNSt7istreamERKNSt6stringE", "cvc5::parser::InputParser::setStreamInput::input"], [37, 6, 1, "_CPPv4N4cvc56parser11InputParser14setStreamInputEN5modes13InputLanguageERNSt7istreamERKNSt6stringE", "cvc5::parser::InputParser::setStreamInput::lang"], [37, 6, 1, "_CPPv4N4cvc56parser11InputParser14setStreamInputEN5modes13InputLanguageERNSt7istreamERKNSt6stringE", "cvc5::parser::InputParser::setStreamInput::name"], [37, 5, 1, "_CPPv4N4cvc56parser11InputParser14setStringInputEN5modes13InputLanguageERKNSt6stringERKNSt6stringE", "cvc5::parser::InputParser::setStringInput"], [37, 6, 1, "_CPPv4N4cvc56parser11InputParser14setStringInputEN5modes13InputLanguageERKNSt6stringERKNSt6stringE", "cvc5::parser::InputParser::setStringInput::input"], [37, 6, 1, "_CPPv4N4cvc56parser11InputParser14setStringInputEN5modes13InputLanguageERKNSt6stringERKNSt6stringE", "cvc5::parser::InputParser::setStringInput::lang"], [37, 6, 1, "_CPPv4N4cvc56parser11InputParser14setStringInputEN5modes13InputLanguageERKNSt6stringERKNSt6stringE", "cvc5::parser::InputParser::setStringInput::name"], [57, 3, 1, "_CPPv4N4cvc56parser15ParserExceptionE", "cvc5::parser::ParserException"], [57, 5, 1, "_CPPv4N4cvc56parser15ParserException15ParserExceptionEPKc", "cvc5::parser::ParserException::ParserException"], [57, 5, 1, "_CPPv4N4cvc56parser15ParserException15ParserExceptionERKNSt6stringE", "cvc5::parser::ParserException::ParserException"], [57, 5, 1, "_CPPv4N4cvc56parser15ParserException15ParserExceptionERKNSt6stringERKNSt6stringEmm", "cvc5::parser::ParserException::ParserException"], [57, 5, 1, "_CPPv4N4cvc56parser15ParserException15ParserExceptionEv", "cvc5::parser::ParserException::ParserException"], [57, 6, 1, "_CPPv4N4cvc56parser15ParserException15ParserExceptionERKNSt6stringERKNSt6stringEmm", "cvc5::parser::ParserException::ParserException::column"], [57, 6, 1, "_CPPv4N4cvc56parser15ParserException15ParserExceptionERKNSt6stringERKNSt6stringEmm", "cvc5::parser::ParserException::ParserException::filename"], [57, 6, 1, "_CPPv4N4cvc56parser15ParserException15ParserExceptionERKNSt6stringERKNSt6stringEmm", "cvc5::parser::ParserException::ParserException::line"], [57, 6, 1, "_CPPv4N4cvc56parser15ParserException15ParserExceptionEPKc", "cvc5::parser::ParserException::ParserException::msg"], [57, 6, 1, "_CPPv4N4cvc56parser15ParserException15ParserExceptionERKNSt6stringE", "cvc5::parser::ParserException::ParserException::msg"], [57, 6, 1, "_CPPv4N4cvc56parser15ParserException15ParserExceptionERKNSt6stringERKNSt6stringEmm", "cvc5::parser::ParserException::ParserException::msg"], [57, 5, 1, "_CPPv4NK4cvc56parser15ParserException9getColumnEv", "cvc5::parser::ParserException::getColumn"], [57, 5, 1, "_CPPv4NK4cvc56parser15ParserException11getFilenameEv", "cvc5::parser::ParserException::getFilename"], [57, 5, 1, "_CPPv4NK4cvc56parser15ParserException7getLineEv", "cvc5::parser::ParserException::getLine"], [57, 5, 1, "_CPPv4NK4cvc56parser15ParserException8toStreamERNSt7ostreamE", "cvc5::parser::ParserException::toStream"], [57, 6, 1, "_CPPv4NK4cvc56parser15ParserException8toStreamERNSt7ostreamE", "cvc5::parser::ParserException::toStream::os"], [46, 3, 1, "_CPPv4N4cvc56parser13SymbolManagerE", "cvc5::parser::SymbolManager"], [46, 5, 1, "_CPPv4N4cvc56parser13SymbolManager13SymbolManagerEPN4cvc56SolverE", "cvc5::parser::SymbolManager::SymbolManager"], [46, 5, 1, "_CPPv4N4cvc56parser13SymbolManager13SymbolManagerERN4cvc511TermManagerE", "cvc5::parser::SymbolManager::SymbolManager"], [46, 6, 1, "_CPPv4N4cvc56parser13SymbolManager13SymbolManagerEPN4cvc56SolverE", "cvc5::parser::SymbolManager::SymbolManager::slv"], [46, 6, 1, "_CPPv4N4cvc56parser13SymbolManager13SymbolManagerERN4cvc511TermManagerE", "cvc5::parser::SymbolManager::SymbolManager::tm"], [46, 5, 1, "_CPPv4NK4cvc56parser13SymbolManager16getDeclaredSortsEv", "cvc5::parser::SymbolManager::getDeclaredSorts"], [46, 5, 1, "_CPPv4NK4cvc56parser13SymbolManager16getDeclaredTermsEv", "cvc5::parser::SymbolManager::getDeclaredTerms"], [46, 5, 1, "_CPPv4NK4cvc56parser13SymbolManager8getLogicEv", "cvc5::parser::SymbolManager::getLogic"], [46, 5, 1, "_CPPv4NK4cvc56parser13SymbolManager13getNamedTermsEv", "cvc5::parser::SymbolManager::getNamedTerms"], [46, 5, 1, "_CPPv4NK4cvc56parser13SymbolManager10isLogicSetEv", "cvc5::parser::SymbolManager::isLogicSet"], [46, 5, 1, "_CPPv4N4cvc56parser13SymbolManagerD0Ev", "cvc5::parser::SymbolManager::~SymbolManager"], [11, 5, 1, "_CPPv415cvc5_add_pluginP4Cvc5P10Cvc5Plugin", "cvc5_add_plugin"], [11, 6, 1, "_CPPv415cvc5_add_pluginP4Cvc5P10Cvc5Plugin", "cvc5_add_plugin::cvc5"], [11, 6, 1, "_CPPv415cvc5_add_pluginP4Cvc5P10Cvc5Plugin", "cvc5_add_plugin::plugin"], [11, 5, 1, "_CPPv421cvc5_add_sygus_assumeP4Cvc58Cvc5Term", "cvc5_add_sygus_assume"], [11, 6, 1, "_CPPv421cvc5_add_sygus_assumeP4Cvc58Cvc5Term", "cvc5_add_sygus_assume::cvc5"], [11, 6, 1, "_CPPv421cvc5_add_sygus_assumeP4Cvc58Cvc5Term", "cvc5_add_sygus_assume::term"], [11, 5, 1, "_CPPv425cvc5_add_sygus_constraintP4Cvc58Cvc5Term", "cvc5_add_sygus_constraint"], [11, 6, 1, "_CPPv425cvc5_add_sygus_constraintP4Cvc58Cvc5Term", "cvc5_add_sygus_constraint::cvc5"], [11, 6, 1, "_CPPv425cvc5_add_sygus_constraintP4Cvc58Cvc5Term", "cvc5_add_sygus_constraint::term"], [11, 5, 1, "_CPPv429cvc5_add_sygus_inv_constraintP4Cvc58Cvc5Term8Cvc5Term8Cvc5Term8Cvc5Term", "cvc5_add_sygus_inv_constraint"], [11, 6, 1, "_CPPv429cvc5_add_sygus_inv_constraintP4Cvc58Cvc5Term8Cvc5Term8Cvc5Term8Cvc5Term", "cvc5_add_sygus_inv_constraint::cvc5"], [11, 6, 1, "_CPPv429cvc5_add_sygus_inv_constraintP4Cvc58Cvc5Term8Cvc5Term8Cvc5Term8Cvc5Term", "cvc5_add_sygus_inv_constraint::inv"], [11, 6, 1, "_CPPv429cvc5_add_sygus_inv_constraintP4Cvc58Cvc5Term8Cvc5Term8Cvc5Term8Cvc5Term", "cvc5_add_sygus_inv_constraint::post"], [11, 6, 1, "_CPPv429cvc5_add_sygus_inv_constraintP4Cvc58Cvc5Term8Cvc5Term8Cvc5Term8Cvc5Term", "cvc5_add_sygus_inv_constraint::pre"], [11, 6, 1, "_CPPv429cvc5_add_sygus_inv_constraintP4Cvc58Cvc5Term8Cvc5Term8Cvc5Term8Cvc5Term", "cvc5_add_sygus_inv_constraint::trans"], [11, 5, 1, "_CPPv419cvc5_assert_formulaP4Cvc58Cvc5Term", "cvc5_assert_formula"], [11, 6, 1, "_CPPv419cvc5_assert_formulaP4Cvc58Cvc5Term", "cvc5_assert_formula::cvc5"], [11, 6, 1, "_CPPv419cvc5_assert_formulaP4Cvc58Cvc5Term", "cvc5_assert_formula::term"], [11, 5, 1, "_CPPv416cvc5_block_modelP4Cvc519Cvc5BlockModelsMode", "cvc5_block_model"], [11, 6, 1, "_CPPv416cvc5_block_modelP4Cvc519Cvc5BlockModelsMode", "cvc5_block_model::cvc5"], [11, 6, 1, "_CPPv416cvc5_block_modelP4Cvc519Cvc5BlockModelsMode", "cvc5_block_model::mode"], [11, 5, 1, "_CPPv423cvc5_block_model_valuesP4Cvc56size_tA_K8Cvc5Term", "cvc5_block_model_values"], [11, 6, 1, "_CPPv423cvc5_block_model_valuesP4Cvc56size_tA_K8Cvc5Term", "cvc5_block_model_values::cvc5"], [11, 6, 1, "_CPPv423cvc5_block_model_valuesP4Cvc56size_tA_K8Cvc5Term", "cvc5_block_model_values::size"], [11, 6, 1, "_CPPv423cvc5_block_model_valuesP4Cvc56size_tA_K8Cvc5Term", "cvc5_block_model_values::terms"], [11, 5, 1, "_CPPv414cvc5_check_satP4Cvc5", "cvc5_check_sat"], [11, 6, 1, "_CPPv414cvc5_check_satP4Cvc5", "cvc5_check_sat::cvc5"], [11, 5, 1, "_CPPv423cvc5_check_sat_assumingP4Cvc56size_tA_K8Cvc5Term", "cvc5_check_sat_assuming"], [11, 6, 1, "_CPPv423cvc5_check_sat_assumingP4Cvc56size_tA_K8Cvc5Term", "cvc5_check_sat_assuming::assumptions"], [11, 6, 1, "_CPPv423cvc5_check_sat_assumingP4Cvc56size_tA_K8Cvc5Term", "cvc5_check_sat_assuming::cvc5"], [11, 6, 1, "_CPPv423cvc5_check_sat_assumingP4Cvc56size_tA_K8Cvc5Term", "cvc5_check_sat_assuming::size"], [11, 5, 1, "_CPPv416cvc5_check_synthP4Cvc5", "cvc5_check_synth"], [11, 6, 1, "_CPPv416cvc5_check_synthP4Cvc5", "cvc5_check_synth::cvc5"], [11, 5, 1, "_CPPv421cvc5_check_synth_nextP4Cvc5", "cvc5_check_synth_next"], [11, 6, 1, "_CPPv421cvc5_check_synth_nextP4Cvc5", "cvc5_check_synth_next::cvc5"], [11, 5, 1, "_CPPv417cvc5_close_outputP4Cvc5PKc", "cvc5_close_output"], [11, 6, 1, "_CPPv417cvc5_close_outputP4Cvc5PKc", "cvc5_close_output::cvc5"], [11, 6, 1, "_CPPv417cvc5_close_outputP4Cvc5PKc", "cvc5_close_output::filename"], [12, 5, 1, "_CPPv417cvc5_cmd_get_nameK11Cvc5Command", "cvc5_cmd_get_name"], [12, 6, 1, "_CPPv417cvc5_cmd_get_nameK11Cvc5Command", "cvc5_cmd_get_name::cmd"], [12, 5, 1, "_CPPv415cvc5_cmd_invoke11Cvc5CommandP4Cvc5P17Cvc5SymbolManager", "cvc5_cmd_invoke"], [12, 6, 1, "_CPPv415cvc5_cmd_invoke11Cvc5CommandP4Cvc5P17Cvc5SymbolManager", "cvc5_cmd_invoke::cmd"], [12, 6, 1, "_CPPv415cvc5_cmd_invoke11Cvc5CommandP4Cvc5P17Cvc5SymbolManager", "cvc5_cmd_invoke::cvc5"], [12, 6, 1, "_CPPv415cvc5_cmd_invoke11Cvc5CommandP4Cvc5P17Cvc5SymbolManager", "cvc5_cmd_invoke::sm"], [12, 5, 1, "_CPPv418cvc5_cmd_to_stringK11Cvc5Command", "cvc5_cmd_to_string"], [12, 6, 1, "_CPPv418cvc5_cmd_to_stringK11Cvc5Command", "cvc5_cmd_to_string::cmd"], [11, 5, 1, "_CPPv415cvc5_declare_dtP4Cvc5PKc6size_tA_K27Cvc5DatatypeConstructorDecl", "cvc5_declare_dt"], [11, 6, 1, "_CPPv415cvc5_declare_dtP4Cvc5PKc6size_tA_K27Cvc5DatatypeConstructorDecl", "cvc5_declare_dt::ctors"], [11, 6, 1, "_CPPv415cvc5_declare_dtP4Cvc5PKc6size_tA_K27Cvc5DatatypeConstructorDecl", "cvc5_declare_dt::cvc5"], [11, 6, 1, "_CPPv415cvc5_declare_dtP4Cvc5PKc6size_tA_K27Cvc5DatatypeConstructorDecl", "cvc5_declare_dt::size"], [11, 6, 1, "_CPPv415cvc5_declare_dtP4Cvc5PKc6size_tA_K27Cvc5DatatypeConstructorDecl", "cvc5_declare_dt::symbol"], [11, 5, 1, "_CPPv416cvc5_declare_funP4Cvc5PKc6size_tA_K8Cvc5Sort8Cvc5Sortb", "cvc5_declare_fun"], [11, 6, 1, "_CPPv416cvc5_declare_funP4Cvc5PKc6size_tA_K8Cvc5Sort8Cvc5Sortb", "cvc5_declare_fun::cvc5"], [11, 6, 1, "_CPPv416cvc5_declare_funP4Cvc5PKc6size_tA_K8Cvc5Sort8Cvc5Sortb", "cvc5_declare_fun::fresh"], [11, 6, 1, "_CPPv416cvc5_declare_funP4Cvc5PKc6size_tA_K8Cvc5Sort8Cvc5Sortb", "cvc5_declare_fun::size"], [11, 6, 1, "_CPPv416cvc5_declare_funP4Cvc5PKc6size_tA_K8Cvc5Sort8Cvc5Sortb", "cvc5_declare_fun::sort"], [11, 6, 1, "_CPPv416cvc5_declare_funP4Cvc5PKc6size_tA_K8Cvc5Sort8Cvc5Sortb", "cvc5_declare_fun::sorts"], [11, 6, 1, "_CPPv416cvc5_declare_funP4Cvc5PKc6size_tA_K8Cvc5Sort8Cvc5Sortb", "cvc5_declare_fun::symbol"], [11, 5, 1, "_CPPv423cvc5_declare_oracle_funP4Cvc5PKc6size_tA_K8Cvc5Sort8Cvc5SortPvPF8Cvc5Term6size_tPK8Cvc5TermPvE", "cvc5_declare_oracle_fun"], [11, 6, 1, "_CPPv423cvc5_declare_oracle_funP4Cvc5PKc6size_tA_K8Cvc5Sort8Cvc5SortPvPF8Cvc5Term6size_tPK8Cvc5TermPvE", "cvc5_declare_oracle_fun::cvc5"], [11, 6, 1, "_CPPv423cvc5_declare_oracle_funP4Cvc5PKc6size_tA_K8Cvc5Sort8Cvc5SortPvPF8Cvc5Term6size_tPK8Cvc5TermPvE", "cvc5_declare_oracle_fun::fun"], [11, 6, 1, "_CPPv423cvc5_declare_oracle_funP4Cvc5PKc6size_tA_K8Cvc5Sort8Cvc5SortPvPF8Cvc5Term6size_tPK8Cvc5TermPvE", "cvc5_declare_oracle_fun::size"], [11, 6, 1, "_CPPv423cvc5_declare_oracle_funP4Cvc5PKc6size_tA_K8Cvc5Sort8Cvc5SortPvPF8Cvc5Term6size_tPK8Cvc5TermPvE", "cvc5_declare_oracle_fun::sort"], [11, 6, 1, "_CPPv423cvc5_declare_oracle_funP4Cvc5PKc6size_tA_K8Cvc5Sort8Cvc5SortPvPF8Cvc5Term6size_tPK8Cvc5TermPvE", "cvc5_declare_oracle_fun::sorts"], [11, 6, 1, "_CPPv423cvc5_declare_oracle_funP4Cvc5PKc6size_tA_K8Cvc5Sort8Cvc5SortPvPF8Cvc5Term6size_tPK8Cvc5TermPvE", "cvc5_declare_oracle_fun::state"], [11, 6, 1, "_CPPv423cvc5_declare_oracle_funP4Cvc5PKc6size_tA_K8Cvc5Sort8Cvc5SortPvPF8Cvc5Term6size_tPK8Cvc5TermPvE", "cvc5_declare_oracle_fun::symbol"], [11, 5, 1, "_CPPv417cvc5_declare_poolP4Cvc5PKc8Cvc5Sort6size_tA_K8Cvc5Term", "cvc5_declare_pool"], [11, 6, 1, "_CPPv417cvc5_declare_poolP4Cvc5PKc8Cvc5Sort6size_tA_K8Cvc5Term", "cvc5_declare_pool::cvc5"], [11, 6, 1, "_CPPv417cvc5_declare_poolP4Cvc5PKc8Cvc5Sort6size_tA_K8Cvc5Term", "cvc5_declare_pool::init_value"], [11, 6, 1, "_CPPv417cvc5_declare_poolP4Cvc5PKc8Cvc5Sort6size_tA_K8Cvc5Term", "cvc5_declare_pool::size"], [11, 6, 1, "_CPPv417cvc5_declare_poolP4Cvc5PKc8Cvc5Sort6size_tA_K8Cvc5Term", "cvc5_declare_pool::sort"], [11, 6, 1, "_CPPv417cvc5_declare_poolP4Cvc5PKc8Cvc5Sort6size_tA_K8Cvc5Term", "cvc5_declare_pool::symbol"], [11, 5, 1, "_CPPv421cvc5_declare_sep_heapP4Cvc58Cvc5Sort8Cvc5Sort", "cvc5_declare_sep_heap"], [11, 6, 1, "_CPPv421cvc5_declare_sep_heapP4Cvc58Cvc5Sort8Cvc5Sort", "cvc5_declare_sep_heap::cvc5"], [11, 6, 1, "_CPPv421cvc5_declare_sep_heapP4Cvc58Cvc5Sort8Cvc5Sort", "cvc5_declare_sep_heap::data"], [11, 6, 1, "_CPPv421cvc5_declare_sep_heapP4Cvc58Cvc5Sort8Cvc5Sort", "cvc5_declare_sep_heap::loc"], [11, 5, 1, "_CPPv417cvc5_declare_sortP4Cvc5PKc8uint32_tb", "cvc5_declare_sort"], [11, 6, 1, "_CPPv417cvc5_declare_sortP4Cvc5PKc8uint32_tb", "cvc5_declare_sort::arity"], [11, 6, 1, "_CPPv417cvc5_declare_sortP4Cvc5PKc8uint32_tb", "cvc5_declare_sort::cvc5"], [11, 6, 1, "_CPPv417cvc5_declare_sortP4Cvc5PKc8uint32_tb", "cvc5_declare_sort::fresh"], [11, 6, 1, "_CPPv417cvc5_declare_sortP4Cvc5PKc8uint32_tb", "cvc5_declare_sort::symbol"], [11, 5, 1, "_CPPv422cvc5_declare_sygus_varP4Cvc5PKc8Cvc5Sort", "cvc5_declare_sygus_var"], [11, 6, 1, "_CPPv422cvc5_declare_sygus_varP4Cvc5PKc8Cvc5Sort", "cvc5_declare_sygus_var::cvc5"], [11, 6, 1, "_CPPv422cvc5_declare_sygus_varP4Cvc5PKc8Cvc5Sort", "cvc5_declare_sygus_var::sort"], [11, 6, 1, "_CPPv422cvc5_declare_sygus_varP4Cvc5PKc8Cvc5Sort", "cvc5_declare_sygus_var::symbol"], [11, 5, 1, "_CPPv415cvc5_define_funP4Cvc5PKc6size_tA_K8Cvc5TermK8Cvc5SortK8Cvc5Termb", "cvc5_define_fun"], [11, 6, 1, "_CPPv415cvc5_define_funP4Cvc5PKc6size_tA_K8Cvc5TermK8Cvc5SortK8Cvc5Termb", "cvc5_define_fun::cvc5"], [11, 6, 1, "_CPPv415cvc5_define_funP4Cvc5PKc6size_tA_K8Cvc5TermK8Cvc5SortK8Cvc5Termb", "cvc5_define_fun::global"], [11, 6, 1, "_CPPv415cvc5_define_funP4Cvc5PKc6size_tA_K8Cvc5TermK8Cvc5SortK8Cvc5Termb", "cvc5_define_fun::size"], [11, 6, 1, "_CPPv415cvc5_define_funP4Cvc5PKc6size_tA_K8Cvc5TermK8Cvc5SortK8Cvc5Termb", "cvc5_define_fun::sort"], [11, 6, 1, "_CPPv415cvc5_define_funP4Cvc5PKc6size_tA_K8Cvc5TermK8Cvc5SortK8Cvc5Termb", "cvc5_define_fun::symbol"], [11, 6, 1, "_CPPv415cvc5_define_funP4Cvc5PKc6size_tA_K8Cvc5TermK8Cvc5SortK8Cvc5Termb", "cvc5_define_fun::term"], [11, 6, 1, "_CPPv415cvc5_define_funP4Cvc5PKc6size_tA_K8Cvc5TermK8Cvc5SortK8Cvc5Termb", "cvc5_define_fun::vars"], [11, 5, 1, "_CPPv419cvc5_define_fun_recP4Cvc5PKc6size_tA_K8Cvc5TermK8Cvc5SortK8Cvc5Termb", "cvc5_define_fun_rec"], [11, 6, 1, "_CPPv419cvc5_define_fun_recP4Cvc5PKc6size_tA_K8Cvc5TermK8Cvc5SortK8Cvc5Termb", "cvc5_define_fun_rec::cvc5"], [11, 6, 1, "_CPPv419cvc5_define_fun_recP4Cvc5PKc6size_tA_K8Cvc5TermK8Cvc5SortK8Cvc5Termb", "cvc5_define_fun_rec::global"], [11, 6, 1, "_CPPv419cvc5_define_fun_recP4Cvc5PKc6size_tA_K8Cvc5TermK8Cvc5SortK8Cvc5Termb", "cvc5_define_fun_rec::size"], [11, 6, 1, "_CPPv419cvc5_define_fun_recP4Cvc5PKc6size_tA_K8Cvc5TermK8Cvc5SortK8Cvc5Termb", "cvc5_define_fun_rec::sort"], [11, 6, 1, "_CPPv419cvc5_define_fun_recP4Cvc5PKc6size_tA_K8Cvc5TermK8Cvc5SortK8Cvc5Termb", "cvc5_define_fun_rec::symbol"], [11, 6, 1, "_CPPv419cvc5_define_fun_recP4Cvc5PKc6size_tA_K8Cvc5TermK8Cvc5SortK8Cvc5Termb", "cvc5_define_fun_rec::term"], [11, 6, 1, "_CPPv419cvc5_define_fun_recP4Cvc5PKc6size_tA_K8Cvc5TermK8Cvc5SortK8Cvc5Termb", "cvc5_define_fun_rec::vars"], [11, 5, 1, "_CPPv430cvc5_define_fun_rec_from_constP4Cvc58Cvc5Term6size_tA_K8Cvc5TermK8Cvc5Termb", "cvc5_define_fun_rec_from_const"], [11, 6, 1, "_CPPv430cvc5_define_fun_rec_from_constP4Cvc58Cvc5Term6size_tA_K8Cvc5TermK8Cvc5Termb", "cvc5_define_fun_rec_from_const::cvc5"], [11, 6, 1, "_CPPv430cvc5_define_fun_rec_from_constP4Cvc58Cvc5Term6size_tA_K8Cvc5TermK8Cvc5Termb", "cvc5_define_fun_rec_from_const::fun"], [11, 6, 1, "_CPPv430cvc5_define_fun_rec_from_constP4Cvc58Cvc5Term6size_tA_K8Cvc5TermK8Cvc5Termb", "cvc5_define_fun_rec_from_const::global"], [11, 6, 1, "_CPPv430cvc5_define_fun_rec_from_constP4Cvc58Cvc5Term6size_tA_K8Cvc5TermK8Cvc5Termb", "cvc5_define_fun_rec_from_const::size"], [11, 6, 1, "_CPPv430cvc5_define_fun_rec_from_constP4Cvc58Cvc5Term6size_tA_K8Cvc5TermK8Cvc5Termb", "cvc5_define_fun_rec_from_const::term"], [11, 6, 1, "_CPPv430cvc5_define_fun_rec_from_constP4Cvc58Cvc5Term6size_tA_K8Cvc5TermK8Cvc5Termb", "cvc5_define_fun_rec_from_const::vars"], [11, 5, 1, "_CPPv420cvc5_define_funs_recP4Cvc56size_tA_K8Cvc5TermA_6size_tA_PK8Cvc5TermA_K8Cvc5Termb", "cvc5_define_funs_rec"], [11, 6, 1, "_CPPv420cvc5_define_funs_recP4Cvc56size_tA_K8Cvc5TermA_6size_tA_PK8Cvc5TermA_K8Cvc5Termb", "cvc5_define_funs_rec::cvc5"], [11, 6, 1, "_CPPv420cvc5_define_funs_recP4Cvc56size_tA_K8Cvc5TermA_6size_tA_PK8Cvc5TermA_K8Cvc5Termb", "cvc5_define_funs_rec::funs"], [11, 6, 1, "_CPPv420cvc5_define_funs_recP4Cvc56size_tA_K8Cvc5TermA_6size_tA_PK8Cvc5TermA_K8Cvc5Termb", "cvc5_define_funs_rec::global"], [11, 6, 1, "_CPPv420cvc5_define_funs_recP4Cvc56size_tA_K8Cvc5TermA_6size_tA_PK8Cvc5TermA_K8Cvc5Termb", "cvc5_define_funs_rec::nfuns"], [11, 6, 1, "_CPPv420cvc5_define_funs_recP4Cvc56size_tA_K8Cvc5TermA_6size_tA_PK8Cvc5TermA_K8Cvc5Termb", "cvc5_define_funs_rec::nvars"], [11, 6, 1, "_CPPv420cvc5_define_funs_recP4Cvc56size_tA_K8Cvc5TermA_6size_tA_PK8Cvc5TermA_K8Cvc5Termb", "cvc5_define_funs_rec::terms"], [11, 6, 1, "_CPPv420cvc5_define_funs_recP4Cvc56size_tA_K8Cvc5TermA_6size_tA_PK8Cvc5TermA_K8Cvc5Termb", "cvc5_define_funs_rec::vars"], [11, 5, 1, "_CPPv411cvc5_deleteP4Cvc5", "cvc5_delete"], [11, 6, 1, "_CPPv411cvc5_deleteP4Cvc5", "cvc5_delete::cvc5"], [14, 5, 1, "_CPPv417cvc5_dt_cons_copy23Cvc5DatatypeConstructor", "cvc5_dt_cons_copy"], [14, 6, 1, "_CPPv417cvc5_dt_cons_copy23Cvc5DatatypeConstructor", "cvc5_dt_cons_copy::cons"], [14, 5, 1, "_CPPv434cvc5_dt_cons_get_instantiated_term23Cvc5DatatypeConstructor8Cvc5Sort", "cvc5_dt_cons_get_instantiated_term"], [14, 6, 1, "_CPPv434cvc5_dt_cons_get_instantiated_term23Cvc5DatatypeConstructor8Cvc5Sort", "cvc5_dt_cons_get_instantiated_term::cons"], [14, 6, 1, "_CPPv434cvc5_dt_cons_get_instantiated_term23Cvc5DatatypeConstructor8Cvc5Sort", "cvc5_dt_cons_get_instantiated_term::sort"], [14, 5, 1, "_CPPv421cvc5_dt_cons_get_name23Cvc5DatatypeConstructor", "cvc5_dt_cons_get_name"], [14, 6, 1, "_CPPv421cvc5_dt_cons_get_name23Cvc5DatatypeConstructor", "cvc5_dt_cons_get_name::cons"], [14, 5, 1, "_CPPv430cvc5_dt_cons_get_num_selectors23Cvc5DatatypeConstructor", "cvc5_dt_cons_get_num_selectors"], [14, 6, 1, "_CPPv430cvc5_dt_cons_get_num_selectors23Cvc5DatatypeConstructor", "cvc5_dt_cons_get_num_selectors::cons"], [14, 5, 1, "_CPPv425cvc5_dt_cons_get_selector23Cvc5DatatypeConstructor6size_t", "cvc5_dt_cons_get_selector"], [14, 6, 1, "_CPPv425cvc5_dt_cons_get_selector23Cvc5DatatypeConstructor6size_t", "cvc5_dt_cons_get_selector::cons"], [14, 6, 1, "_CPPv425cvc5_dt_cons_get_selector23Cvc5DatatypeConstructor6size_t", "cvc5_dt_cons_get_selector::index"], [14, 5, 1, "_CPPv433cvc5_dt_cons_get_selector_by_name23Cvc5DatatypeConstructorPKc", "cvc5_dt_cons_get_selector_by_name"], [14, 6, 1, "_CPPv433cvc5_dt_cons_get_selector_by_name23Cvc5DatatypeConstructorPKc", "cvc5_dt_cons_get_selector_by_name::cons"], [14, 6, 1, "_CPPv433cvc5_dt_cons_get_selector_by_name23Cvc5DatatypeConstructorPKc", "cvc5_dt_cons_get_selector_by_name::name"], [14, 5, 1, "_CPPv421cvc5_dt_cons_get_term23Cvc5DatatypeConstructor", "cvc5_dt_cons_get_term"], [14, 6, 1, "_CPPv421cvc5_dt_cons_get_term23Cvc5DatatypeConstructor", "cvc5_dt_cons_get_term::cons"], [14, 5, 1, "_CPPv428cvc5_dt_cons_get_tester_term23Cvc5DatatypeConstructor", "cvc5_dt_cons_get_tester_term"], [14, 6, 1, "_CPPv428cvc5_dt_cons_get_tester_term23Cvc5DatatypeConstructor", "cvc5_dt_cons_get_tester_term::cons"], [14, 5, 1, "_CPPv417cvc5_dt_cons_hash23Cvc5DatatypeConstructor", "cvc5_dt_cons_hash"], [14, 6, 1, "_CPPv417cvc5_dt_cons_hash23Cvc5DatatypeConstructor", "cvc5_dt_cons_hash::cons"], [14, 5, 1, "_CPPv421cvc5_dt_cons_is_equal23Cvc5DatatypeConstructor23Cvc5DatatypeConstructor", "cvc5_dt_cons_is_equal"], [14, 6, 1, "_CPPv421cvc5_dt_cons_is_equal23Cvc5DatatypeConstructor23Cvc5DatatypeConstructor", "cvc5_dt_cons_is_equal::a"], [14, 6, 1, "_CPPv421cvc5_dt_cons_is_equal23Cvc5DatatypeConstructor23Cvc5DatatypeConstructor", "cvc5_dt_cons_is_equal::b"], [14, 5, 1, "_CPPv420cvc5_dt_cons_release23Cvc5DatatypeConstructor", "cvc5_dt_cons_release"], [14, 6, 1, "_CPPv420cvc5_dt_cons_release23Cvc5DatatypeConstructor", "cvc5_dt_cons_release::cons"], [14, 5, 1, "_CPPv422cvc5_dt_cons_to_string23Cvc5DatatypeConstructor", "cvc5_dt_cons_to_string"], [14, 6, 1, "_CPPv422cvc5_dt_cons_to_string23Cvc5DatatypeConstructor", "cvc5_dt_cons_to_string::cons"], [13, 5, 1, "_CPPv412cvc5_dt_copy12Cvc5Datatype", "cvc5_dt_copy"], [13, 6, 1, "_CPPv412cvc5_dt_copy12Cvc5Datatype", "cvc5_dt_copy::dt"], [16, 5, 1, "_CPPv428cvc5_dt_decl_add_constructor16Cvc5DatatypeDecl27Cvc5DatatypeConstructorDecl", "cvc5_dt_decl_add_constructor"], [16, 6, 1, "_CPPv428cvc5_dt_decl_add_constructor16Cvc5DatatypeDecl27Cvc5DatatypeConstructorDecl", "cvc5_dt_decl_add_constructor::ctor"], [16, 6, 1, "_CPPv428cvc5_dt_decl_add_constructor16Cvc5DatatypeDecl27Cvc5DatatypeConstructorDecl", "cvc5_dt_decl_add_constructor::decl"], [16, 5, 1, "_CPPv417cvc5_dt_decl_copy16Cvc5DatatypeDecl", "cvc5_dt_decl_copy"], [16, 6, 1, "_CPPv417cvc5_dt_decl_copy16Cvc5DatatypeDecl", "cvc5_dt_decl_copy::decl"], [16, 5, 1, "_CPPv421cvc5_dt_decl_get_name16Cvc5DatatypeDecl", "cvc5_dt_decl_get_name"], [16, 6, 1, "_CPPv421cvc5_dt_decl_get_name16Cvc5DatatypeDecl", "cvc5_dt_decl_get_name::decl"], [16, 5, 1, "_CPPv433cvc5_dt_decl_get_num_constructors16Cvc5DatatypeDecl", "cvc5_dt_decl_get_num_constructors"], [16, 6, 1, "_CPPv433cvc5_dt_decl_get_num_constructors16Cvc5DatatypeDecl", "cvc5_dt_decl_get_num_constructors::decl"], [16, 5, 1, "_CPPv417cvc5_dt_decl_hash16Cvc5DatatypeDecl", "cvc5_dt_decl_hash"], [16, 6, 1, "_CPPv417cvc5_dt_decl_hash16Cvc5DatatypeDecl", "cvc5_dt_decl_hash::decl"], [16, 5, 1, "_CPPv421cvc5_dt_decl_is_equal16Cvc5DatatypeDecl16Cvc5DatatypeDecl", "cvc5_dt_decl_is_equal"], [16, 6, 1, "_CPPv421cvc5_dt_decl_is_equal16Cvc5DatatypeDecl16Cvc5DatatypeDecl", "cvc5_dt_decl_is_equal::a"], [16, 6, 1, "_CPPv421cvc5_dt_decl_is_equal16Cvc5DatatypeDecl16Cvc5DatatypeDecl", "cvc5_dt_decl_is_equal::b"], [16, 5, 1, "_CPPv426cvc5_dt_decl_is_parametric16Cvc5DatatypeDecl", "cvc5_dt_decl_is_parametric"], [16, 6, 1, "_CPPv426cvc5_dt_decl_is_parametric16Cvc5DatatypeDecl", "cvc5_dt_decl_is_parametric::decl"], [16, 5, 1, "_CPPv424cvc5_dt_decl_is_resolved16Cvc5DatatypeDecl", "cvc5_dt_decl_is_resolved"], [16, 6, 1, "_CPPv424cvc5_dt_decl_is_resolved16Cvc5DatatypeDecl", "cvc5_dt_decl_is_resolved::decl"], [16, 5, 1, "_CPPv420cvc5_dt_decl_release16Cvc5DatatypeDecl", "cvc5_dt_decl_release"], [16, 6, 1, "_CPPv420cvc5_dt_decl_release16Cvc5DatatypeDecl", "cvc5_dt_decl_release::decl"], [16, 5, 1, "_CPPv422cvc5_dt_decl_to_string16Cvc5DatatypeDecl", "cvc5_dt_decl_to_string"], [16, 6, 1, "_CPPv422cvc5_dt_decl_to_string16Cvc5DatatypeDecl", "cvc5_dt_decl_to_string::decl"], [13, 5, 1, "_CPPv423cvc5_dt_get_constructor12Cvc5Datatype6size_t", "cvc5_dt_get_constructor"], [13, 6, 1, "_CPPv423cvc5_dt_get_constructor12Cvc5Datatype6size_t", "cvc5_dt_get_constructor::dt"], [13, 6, 1, "_CPPv423cvc5_dt_get_constructor12Cvc5Datatype6size_t", "cvc5_dt_get_constructor::idx"], [13, 5, 1, "_CPPv431cvc5_dt_get_constructor_by_name12Cvc5DatatypePKc", "cvc5_dt_get_constructor_by_name"], [13, 6, 1, "_CPPv431cvc5_dt_get_constructor_by_name12Cvc5DatatypePKc", "cvc5_dt_get_constructor_by_name::dt"], [13, 6, 1, "_CPPv431cvc5_dt_get_constructor_by_name12Cvc5DatatypePKc", "cvc5_dt_get_constructor_by_name::name"], [13, 5, 1, "_CPPv416cvc5_dt_get_name12Cvc5Datatype", "cvc5_dt_get_name"], [13, 6, 1, "_CPPv416cvc5_dt_get_name12Cvc5Datatype", "cvc5_dt_get_name::dt"], [13, 5, 1, "_CPPv428cvc5_dt_get_num_constructors12Cvc5Datatype", "cvc5_dt_get_num_constructors"], [13, 6, 1, "_CPPv428cvc5_dt_get_num_constructors12Cvc5Datatype", "cvc5_dt_get_num_constructors::dt"], [13, 5, 1, "_CPPv422cvc5_dt_get_parameters12Cvc5DatatypeP6size_t", "cvc5_dt_get_parameters"], [13, 6, 1, "_CPPv422cvc5_dt_get_parameters12Cvc5DatatypeP6size_t", "cvc5_dt_get_parameters::dt"], [13, 6, 1, "_CPPv422cvc5_dt_get_parameters12Cvc5DatatypeP6size_t", "cvc5_dt_get_parameters::size"], [13, 5, 1, "_CPPv420cvc5_dt_get_selector12Cvc5DatatypePKc", "cvc5_dt_get_selector"], [13, 6, 1, "_CPPv420cvc5_dt_get_selector12Cvc5DatatypePKc", "cvc5_dt_get_selector::dt"], [13, 6, 1, "_CPPv420cvc5_dt_get_selector12Cvc5DatatypePKc", "cvc5_dt_get_selector::name"], [13, 5, 1, "_CPPv412cvc5_dt_hash12Cvc5Datatype", "cvc5_dt_hash"], [13, 6, 1, "_CPPv412cvc5_dt_hash12Cvc5Datatype", "cvc5_dt_hash::dt"], [13, 5, 1, "_CPPv421cvc5_dt_is_codatatype12Cvc5Datatype", "cvc5_dt_is_codatatype"], [13, 6, 1, "_CPPv421cvc5_dt_is_codatatype12Cvc5Datatype", "cvc5_dt_is_codatatype::dt"], [13, 5, 1, "_CPPv416cvc5_dt_is_equal12Cvc5Datatype12Cvc5Datatype", "cvc5_dt_is_equal"], [13, 6, 1, "_CPPv416cvc5_dt_is_equal12Cvc5Datatype12Cvc5Datatype", "cvc5_dt_is_equal::a"], [13, 6, 1, "_CPPv416cvc5_dt_is_equal12Cvc5Datatype12Cvc5Datatype", "cvc5_dt_is_equal::b"], [13, 5, 1, "_CPPv417cvc5_dt_is_finite12Cvc5Datatype", "cvc5_dt_is_finite"], [13, 6, 1, "_CPPv417cvc5_dt_is_finite12Cvc5Datatype", "cvc5_dt_is_finite::dt"], [13, 5, 1, "_CPPv421cvc5_dt_is_parametric12Cvc5Datatype", "cvc5_dt_is_parametric"], [13, 6, 1, "_CPPv421cvc5_dt_is_parametric12Cvc5Datatype", "cvc5_dt_is_parametric::dt"], [13, 5, 1, "_CPPv417cvc5_dt_is_record12Cvc5Datatype", "cvc5_dt_is_record"], [13, 6, 1, "_CPPv417cvc5_dt_is_record12Cvc5Datatype", "cvc5_dt_is_record::dt"], [13, 5, 1, "_CPPv416cvc5_dt_is_tuple12Cvc5Datatype", "cvc5_dt_is_tuple"], [13, 6, 1, "_CPPv416cvc5_dt_is_tuple12Cvc5Datatype", "cvc5_dt_is_tuple::dt"], [13, 5, 1, "_CPPv423cvc5_dt_is_well_founded12Cvc5Datatype", "cvc5_dt_is_well_founded"], [13, 6, 1, "_CPPv423cvc5_dt_is_well_founded12Cvc5Datatype", "cvc5_dt_is_well_founded::dt"], [13, 5, 1, "_CPPv415cvc5_dt_release12Cvc5Datatype", "cvc5_dt_release"], [13, 6, 1, "_CPPv415cvc5_dt_release12Cvc5Datatype", "cvc5_dt_release::dt"], [17, 5, 1, "_CPPv416cvc5_dt_sel_copy20Cvc5DatatypeSelector", "cvc5_dt_sel_copy"], [17, 6, 1, "_CPPv416cvc5_dt_sel_copy20Cvc5DatatypeSelector", "cvc5_dt_sel_copy::sel"], [17, 5, 1, "_CPPv429cvc5_dt_sel_get_codomain_sort20Cvc5DatatypeSelector", "cvc5_dt_sel_get_codomain_sort"], [17, 6, 1, "_CPPv429cvc5_dt_sel_get_codomain_sort20Cvc5DatatypeSelector", "cvc5_dt_sel_get_codomain_sort::sel"], [17, 5, 1, "_CPPv420cvc5_dt_sel_get_name20Cvc5DatatypeSelector", "cvc5_dt_sel_get_name"], [17, 6, 1, "_CPPv420cvc5_dt_sel_get_name20Cvc5DatatypeSelector", "cvc5_dt_sel_get_name::sel"], [17, 5, 1, "_CPPv420cvc5_dt_sel_get_term20Cvc5DatatypeSelector", "cvc5_dt_sel_get_term"], [17, 6, 1, "_CPPv420cvc5_dt_sel_get_term20Cvc5DatatypeSelector", "cvc5_dt_sel_get_term::sel"], [17, 5, 1, "_CPPv428cvc5_dt_sel_get_updater_term20Cvc5DatatypeSelector", "cvc5_dt_sel_get_updater_term"], [17, 6, 1, "_CPPv428cvc5_dt_sel_get_updater_term20Cvc5DatatypeSelector", "cvc5_dt_sel_get_updater_term::sel"], [17, 5, 1, "_CPPv416cvc5_dt_sel_hash20Cvc5DatatypeSelector", "cvc5_dt_sel_hash"], [17, 6, 1, "_CPPv416cvc5_dt_sel_hash20Cvc5DatatypeSelector", "cvc5_dt_sel_hash::sel"], [17, 5, 1, "_CPPv420cvc5_dt_sel_is_equal20Cvc5DatatypeSelector20Cvc5DatatypeSelector", "cvc5_dt_sel_is_equal"], [17, 6, 1, "_CPPv420cvc5_dt_sel_is_equal20Cvc5DatatypeSelector20Cvc5DatatypeSelector", "cvc5_dt_sel_is_equal::a"], [17, 6, 1, "_CPPv420cvc5_dt_sel_is_equal20Cvc5DatatypeSelector20Cvc5DatatypeSelector", "cvc5_dt_sel_is_equal::b"], [17, 5, 1, "_CPPv419cvc5_dt_sel_release20Cvc5DatatypeSelector", "cvc5_dt_sel_release"], [17, 6, 1, "_CPPv419cvc5_dt_sel_release20Cvc5DatatypeSelector", "cvc5_dt_sel_release::sel"], [17, 5, 1, "_CPPv421cvc5_dt_sel_to_string20Cvc5DatatypeSelector", "cvc5_dt_sel_to_string"], [17, 6, 1, "_CPPv421cvc5_dt_sel_to_string20Cvc5DatatypeSelector", "cvc5_dt_sel_to_string::sel"], [13, 5, 1, "_CPPv417cvc5_dt_to_string12Cvc5Datatype", "cvc5_dt_to_string"], [13, 6, 1, "_CPPv417cvc5_dt_to_string12Cvc5Datatype", "cvc5_dt_to_string::dt"], [11, 5, 1, "_CPPv415cvc5_find_synthP4Cvc519Cvc5FindSynthTarget", "cvc5_find_synth"], [11, 6, 1, "_CPPv415cvc5_find_synthP4Cvc519Cvc5FindSynthTarget", "cvc5_find_synth::cvc5"], [11, 6, 1, "_CPPv415cvc5_find_synthP4Cvc519Cvc5FindSynthTarget", "cvc5_find_synth::target"], [11, 5, 1, "_CPPv420cvc5_find_synth_nextP4Cvc5", "cvc5_find_synth_next"], [11, 6, 1, "_CPPv420cvc5_find_synth_nextP4Cvc5", "cvc5_find_synth_next::cvc5"], [11, 5, 1, "_CPPv428cvc5_find_synth_with_grammarP4Cvc519Cvc5FindSynthTarget11Cvc5Grammar", "cvc5_find_synth_with_grammar"], [11, 6, 1, "_CPPv428cvc5_find_synth_with_grammarP4Cvc519Cvc5FindSynthTarget11Cvc5Grammar", "cvc5_find_synth_with_grammar::cvc5"], [11, 6, 1, "_CPPv428cvc5_find_synth_with_grammarP4Cvc519Cvc5FindSynthTarget11Cvc5Grammar", "cvc5_find_synth_with_grammar::grammar"], [11, 6, 1, "_CPPv428cvc5_find_synth_with_grammarP4Cvc519Cvc5FindSynthTarget11Cvc5Grammar", "cvc5_find_synth_with_grammar::target"], [11, 5, 1, "_CPPv415cvc5_get_abductP4Cvc58Cvc5Term", "cvc5_get_abduct"], [11, 6, 1, "_CPPv415cvc5_get_abductP4Cvc58Cvc5Term", "cvc5_get_abduct::conj"], [11, 6, 1, "_CPPv415cvc5_get_abductP4Cvc58Cvc5Term", "cvc5_get_abduct::cvc5"], [11, 5, 1, "_CPPv420cvc5_get_abduct_nextP4Cvc5", "cvc5_get_abduct_next"], [11, 6, 1, "_CPPv420cvc5_get_abduct_nextP4Cvc5", "cvc5_get_abduct_next::cvc5"], [11, 5, 1, "_CPPv428cvc5_get_abduct_with_grammarP4Cvc58Cvc5Term11Cvc5Grammar", "cvc5_get_abduct_with_grammar"], [11, 6, 1, "_CPPv428cvc5_get_abduct_with_grammarP4Cvc58Cvc5Term11Cvc5Grammar", "cvc5_get_abduct_with_grammar::conj"], [11, 6, 1, "_CPPv428cvc5_get_abduct_with_grammarP4Cvc58Cvc5Term11Cvc5Grammar", "cvc5_get_abduct_with_grammar::cvc5"], [11, 6, 1, "_CPPv428cvc5_get_abduct_with_grammarP4Cvc58Cvc5Term11Cvc5Grammar", "cvc5_get_abduct_with_grammar::grammar"], [11, 5, 1, "_CPPv419cvc5_get_assertionsP4Cvc5P6size_t", "cvc5_get_assertions"], [11, 6, 1, "_CPPv419cvc5_get_assertionsP4Cvc5P6size_t", "cvc5_get_assertions::cvc5"], [11, 6, 1, "_CPPv419cvc5_get_assertionsP4Cvc5P6size_t", "cvc5_get_assertions::size"], [11, 5, 1, "_CPPv419cvc5_get_difficultyP4Cvc5P6size_tA_P8Cvc5TermA_P8Cvc5Term", "cvc5_get_difficulty"], [11, 6, 1, "_CPPv419cvc5_get_difficultyP4Cvc5P6size_tA_P8Cvc5TermA_P8Cvc5Term", "cvc5_get_difficulty::cvc5"], [11, 6, 1, "_CPPv419cvc5_get_difficultyP4Cvc5P6size_tA_P8Cvc5TermA_P8Cvc5Term", "cvc5_get_difficulty::inputs"], [11, 6, 1, "_CPPv419cvc5_get_difficultyP4Cvc5P6size_tA_P8Cvc5TermA_P8Cvc5Term", "cvc5_get_difficulty::size"], [11, 6, 1, "_CPPv419cvc5_get_difficultyP4Cvc5P6size_tA_P8Cvc5TermA_P8Cvc5Term", "cvc5_get_difficulty::values"], [11, 5, 1, "_CPPv413cvc5_get_infoP4Cvc5PKc", "cvc5_get_info"], [11, 6, 1, "_CPPv413cvc5_get_infoP4Cvc5PKc", "cvc5_get_info::cvc5"], [11, 6, 1, "_CPPv413cvc5_get_infoP4Cvc5PKc", "cvc5_get_info::flag"], [11, 5, 1, "_CPPv423cvc5_get_instantiationsP4Cvc5", "cvc5_get_instantiations"], [11, 6, 1, "_CPPv423cvc5_get_instantiationsP4Cvc5", "cvc5_get_instantiations::cvc5"], [11, 5, 1, "_CPPv420cvc5_get_interpolantP4Cvc58Cvc5Term", "cvc5_get_interpolant"], [11, 6, 1, "_CPPv420cvc5_get_interpolantP4Cvc58Cvc5Term", "cvc5_get_interpolant::conj"], [11, 6, 1, "_CPPv420cvc5_get_interpolantP4Cvc58Cvc5Term", "cvc5_get_interpolant::cvc5"], [11, 5, 1, "_CPPv425cvc5_get_interpolant_nextP4Cvc5", "cvc5_get_interpolant_next"], [11, 6, 1, "_CPPv425cvc5_get_interpolant_nextP4Cvc5", "cvc5_get_interpolant_next::cvc5"], [11, 5, 1, "_CPPv433cvc5_get_interpolant_with_grammarP4Cvc58Cvc5Term11Cvc5Grammar", "cvc5_get_interpolant_with_grammar"], [11, 6, 1, "_CPPv433cvc5_get_interpolant_with_grammarP4Cvc58Cvc5Term11Cvc5Grammar", "cvc5_get_interpolant_with_grammar::conj"], [11, 6, 1, "_CPPv433cvc5_get_interpolant_with_grammarP4Cvc58Cvc5Term11Cvc5Grammar", "cvc5_get_interpolant_with_grammar::cvc5"], [11, 6, 1, "_CPPv433cvc5_get_interpolant_with_grammarP4Cvc58Cvc5Term11Cvc5Grammar", "cvc5_get_interpolant_with_grammar::grammar"], [11, 5, 1, "_CPPv425cvc5_get_learned_literalsP4Cvc518Cvc5LearnedLitTypeP6size_t", "cvc5_get_learned_literals"], [11, 6, 1, "_CPPv425cvc5_get_learned_literalsP4Cvc518Cvc5LearnedLitTypeP6size_t", "cvc5_get_learned_literals::cvc5"], [11, 6, 1, "_CPPv425cvc5_get_learned_literalsP4Cvc518Cvc5LearnedLitTypeP6size_t", "cvc5_get_learned_literals::size"], [11, 6, 1, "_CPPv425cvc5_get_learned_literalsP4Cvc518Cvc5LearnedLitTypeP6size_t", "cvc5_get_learned_literals::type"], [11, 5, 1, "_CPPv414cvc5_get_logicP4Cvc5", "cvc5_get_logic"], [11, 6, 1, "_CPPv414cvc5_get_logicP4Cvc5", "cvc5_get_logic::cvc5"], [11, 5, 1, "_CPPv414cvc5_get_modelP4Cvc56size_tA_K8Cvc5Sort6size_tA_K8Cvc5Term", "cvc5_get_model"], [11, 6, 1, "_CPPv414cvc5_get_modelP4Cvc56size_tA_K8Cvc5Sort6size_tA_K8Cvc5Term", "cvc5_get_model::consts"], [11, 6, 1, "_CPPv414cvc5_get_modelP4Cvc56size_tA_K8Cvc5Sort6size_tA_K8Cvc5Term", "cvc5_get_model::cvc5"], [11, 6, 1, "_CPPv414cvc5_get_modelP4Cvc56size_tA_K8Cvc5Sort6size_tA_K8Cvc5Term", "cvc5_get_model::nconsts"], [11, 6, 1, "_CPPv414cvc5_get_modelP4Cvc56size_tA_K8Cvc5Sort6size_tA_K8Cvc5Term", "cvc5_get_model::nsorts"], [11, 6, 1, "_CPPv414cvc5_get_modelP4Cvc56size_tA_K8Cvc5Sort6size_tA_K8Cvc5Term", "cvc5_get_model::sorts"], [11, 5, 1, "_CPPv430cvc5_get_model_domain_elementsP4Cvc58Cvc5SortP6size_t", "cvc5_get_model_domain_elements"], [11, 6, 1, "_CPPv430cvc5_get_model_domain_elementsP4Cvc58Cvc5SortP6size_t", "cvc5_get_model_domain_elements::cvc5"], [11, 6, 1, "_CPPv430cvc5_get_model_domain_elementsP4Cvc58Cvc5SortP6size_t", "cvc5_get_model_domain_elements::size"], [11, 6, 1, "_CPPv430cvc5_get_model_domain_elementsP4Cvc58Cvc5SortP6size_t", "cvc5_get_model_domain_elements::sort"], [11, 5, 1, "_CPPv415cvc5_get_optionP4Cvc5PKc", "cvc5_get_option"], [11, 6, 1, "_CPPv415cvc5_get_optionP4Cvc5PKc", "cvc5_get_option::cvc5"], [11, 6, 1, "_CPPv415cvc5_get_optionP4Cvc5PKc", "cvc5_get_option::option"], [11, 5, 1, "_CPPv420cvc5_get_option_infoP4Cvc5PKcP14Cvc5OptionInfo", "cvc5_get_option_info"], [11, 6, 1, "_CPPv420cvc5_get_option_infoP4Cvc5PKcP14Cvc5OptionInfo", "cvc5_get_option_info::cvc5"], [11, 6, 1, "_CPPv420cvc5_get_option_infoP4Cvc5PKcP14Cvc5OptionInfo", "cvc5_get_option_info::info"], [11, 6, 1, "_CPPv420cvc5_get_option_infoP4Cvc5PKcP14Cvc5OptionInfo", "cvc5_get_option_info::option"], [11, 5, 1, "_CPPv421cvc5_get_option_namesP4Cvc5P6size_t", "cvc5_get_option_names"], [11, 6, 1, "_CPPv421cvc5_get_option_namesP4Cvc5P6size_t", "cvc5_get_option_names::cvc5"], [11, 6, 1, "_CPPv421cvc5_get_option_namesP4Cvc5P6size_t", "cvc5_get_option_names::size"], [11, 5, 1, "_CPPv415cvc5_get_outputP4Cvc5PKcPKc", "cvc5_get_output"], [11, 6, 1, "_CPPv415cvc5_get_outputP4Cvc5PKcPKc", "cvc5_get_output::cvc5"], [11, 6, 1, "_CPPv415cvc5_get_outputP4Cvc5PKcPKc", "cvc5_get_output::filename"], [11, 6, 1, "_CPPv415cvc5_get_outputP4Cvc5PKcPKc", "cvc5_get_output::tag"], [11, 5, 1, "_CPPv414cvc5_get_proofP4Cvc518Cvc5ProofComponentP6size_t", "cvc5_get_proof"], [11, 6, 1, "_CPPv414cvc5_get_proofP4Cvc518Cvc5ProofComponentP6size_t", "cvc5_get_proof::c"], [11, 6, 1, "_CPPv414cvc5_get_proofP4Cvc518Cvc5ProofComponentP6size_t", "cvc5_get_proof::cvc5"], [11, 6, 1, "_CPPv414cvc5_get_proofP4Cvc518Cvc5ProofComponentP6size_t", "cvc5_get_proof::size"], [11, 5, 1, "_CPPv431cvc5_get_quantifier_eliminationP4Cvc58Cvc5Term", "cvc5_get_quantifier_elimination"], [11, 6, 1, "_CPPv431cvc5_get_quantifier_eliminationP4Cvc58Cvc5Term", "cvc5_get_quantifier_elimination::cvc5"], [11, 6, 1, "_CPPv431cvc5_get_quantifier_eliminationP4Cvc58Cvc5Term", "cvc5_get_quantifier_elimination::q"], [11, 5, 1, "_CPPv440cvc5_get_quantifier_elimination_disjunctP4Cvc58Cvc5Term", "cvc5_get_quantifier_elimination_disjunct"], [11, 6, 1, "_CPPv440cvc5_get_quantifier_elimination_disjunctP4Cvc58Cvc5Term", "cvc5_get_quantifier_elimination_disjunct::cvc5"], [11, 6, 1, "_CPPv440cvc5_get_quantifier_elimination_disjunctP4Cvc58Cvc5Term", "cvc5_get_quantifier_elimination_disjunct::q"], [11, 5, 1, "_CPPv419cvc5_get_statisticsP4Cvc5", "cvc5_get_statistics"], [11, 6, 1, "_CPPv419cvc5_get_statisticsP4Cvc5", "cvc5_get_statistics::cvc5"], [11, 5, 1, "_CPPv426cvc5_get_sygus_assumptionsP4Cvc5P6size_t", "cvc5_get_sygus_assumptions"], [11, 6, 1, "_CPPv426cvc5_get_sygus_assumptionsP4Cvc5P6size_t", "cvc5_get_sygus_assumptions::cvc5"], [11, 6, 1, "_CPPv426cvc5_get_sygus_assumptionsP4Cvc5P6size_t", "cvc5_get_sygus_assumptions::size"], [11, 5, 1, "_CPPv426cvc5_get_sygus_constraintsP4Cvc5P6size_t", "cvc5_get_sygus_constraints"], [11, 6, 1, "_CPPv426cvc5_get_sygus_constraintsP4Cvc5P6size_t", "cvc5_get_sygus_constraints::cvc5"], [11, 6, 1, "_CPPv426cvc5_get_sygus_constraintsP4Cvc5P6size_t", "cvc5_get_sygus_constraints::size"], [11, 5, 1, "_CPPv423cvc5_get_synth_solutionP4Cvc58Cvc5Term", "cvc5_get_synth_solution"], [11, 6, 1, "_CPPv423cvc5_get_synth_solutionP4Cvc58Cvc5Term", "cvc5_get_synth_solution::cvc5"], [11, 6, 1, "_CPPv423cvc5_get_synth_solutionP4Cvc58Cvc5Term", "cvc5_get_synth_solution::term"], [11, 5, 1, "_CPPv424cvc5_get_synth_solutionsP4Cvc56size_tA_K8Cvc5Term", "cvc5_get_synth_solutions"], [11, 6, 1, "_CPPv424cvc5_get_synth_solutionsP4Cvc56size_tA_K8Cvc5Term", "cvc5_get_synth_solutions::cvc5"], [11, 6, 1, "_CPPv424cvc5_get_synth_solutionsP4Cvc56size_tA_K8Cvc5Term", "cvc5_get_synth_solutions::size"], [11, 6, 1, "_CPPv424cvc5_get_synth_solutionsP4Cvc56size_tA_K8Cvc5Term", "cvc5_get_synth_solutions::terms"], [11, 5, 1, "_CPPv421cvc5_get_timeout_coreP4Cvc5P10Cvc5ResultP6size_t", "cvc5_get_timeout_core"], [11, 6, 1, "_CPPv421cvc5_get_timeout_coreP4Cvc5P10Cvc5ResultP6size_t", "cvc5_get_timeout_core::cvc5"], [11, 6, 1, "_CPPv421cvc5_get_timeout_coreP4Cvc5P10Cvc5ResultP6size_t", "cvc5_get_timeout_core::result"], [11, 6, 1, "_CPPv421cvc5_get_timeout_coreP4Cvc5P10Cvc5ResultP6size_t", "cvc5_get_timeout_core::size"], [11, 5, 1, "_CPPv430cvc5_get_timeout_core_assumingP4Cvc56size_tA_K8Cvc5TermP10Cvc5ResultP6size_t", "cvc5_get_timeout_core_assuming"], [11, 6, 1, "_CPPv430cvc5_get_timeout_core_assumingP4Cvc56size_tA_K8Cvc5TermP10Cvc5ResultP6size_t", "cvc5_get_timeout_core_assuming::assumptions"], [11, 6, 1, "_CPPv430cvc5_get_timeout_core_assumingP4Cvc56size_tA_K8Cvc5TermP10Cvc5ResultP6size_t", "cvc5_get_timeout_core_assuming::cvc5"], [11, 6, 1, "_CPPv430cvc5_get_timeout_core_assumingP4Cvc56size_tA_K8Cvc5TermP10Cvc5ResultP6size_t", "cvc5_get_timeout_core_assuming::result"], [11, 6, 1, "_CPPv430cvc5_get_timeout_core_assumingP4Cvc56size_tA_K8Cvc5TermP10Cvc5ResultP6size_t", "cvc5_get_timeout_core_assuming::rsize"], [11, 6, 1, "_CPPv430cvc5_get_timeout_core_assumingP4Cvc56size_tA_K8Cvc5TermP10Cvc5ResultP6size_t", "cvc5_get_timeout_core_assuming::size"], [11, 5, 1, "_CPPv411cvc5_get_tmP4Cvc5", "cvc5_get_tm"], [11, 6, 1, "_CPPv411cvc5_get_tmP4Cvc5", "cvc5_get_tm::cvc5"], [11, 5, 1, "_CPPv426cvc5_get_unsat_assumptionsP4Cvc5P6size_t", "cvc5_get_unsat_assumptions"], [11, 6, 1, "_CPPv426cvc5_get_unsat_assumptionsP4Cvc5P6size_t", "cvc5_get_unsat_assumptions::cvc5"], [11, 6, 1, "_CPPv426cvc5_get_unsat_assumptionsP4Cvc5P6size_t", "cvc5_get_unsat_assumptions::size"], [11, 5, 1, "_CPPv419cvc5_get_unsat_coreP4Cvc5P6size_t", "cvc5_get_unsat_core"], [11, 6, 1, "_CPPv419cvc5_get_unsat_coreP4Cvc5P6size_t", "cvc5_get_unsat_core::cvc5"], [11, 6, 1, "_CPPv419cvc5_get_unsat_coreP4Cvc5P6size_t", "cvc5_get_unsat_core::size"], [11, 5, 1, "_CPPv426cvc5_get_unsat_core_lemmasP4Cvc5P6size_t", "cvc5_get_unsat_core_lemmas"], [11, 6, 1, "_CPPv426cvc5_get_unsat_core_lemmasP4Cvc5P6size_t", "cvc5_get_unsat_core_lemmas::cvc5"], [11, 6, 1, "_CPPv426cvc5_get_unsat_core_lemmasP4Cvc5P6size_t", "cvc5_get_unsat_core_lemmas::size"], [11, 5, 1, "_CPPv414cvc5_get_valueP4Cvc58Cvc5Term", "cvc5_get_value"], [11, 6, 1, "_CPPv414cvc5_get_valueP4Cvc58Cvc5Term", "cvc5_get_value::cvc5"], [11, 6, 1, "_CPPv414cvc5_get_valueP4Cvc58Cvc5Term", "cvc5_get_value::term"], [11, 5, 1, "_CPPv423cvc5_get_value_sep_heapP4Cvc5", "cvc5_get_value_sep_heap"], [11, 6, 1, "_CPPv423cvc5_get_value_sep_heapP4Cvc5", "cvc5_get_value_sep_heap::cvc5"], [11, 5, 1, "_CPPv422cvc5_get_value_sep_nilP4Cvc5", "cvc5_get_value_sep_nil"], [11, 6, 1, "_CPPv422cvc5_get_value_sep_nilP4Cvc5", "cvc5_get_value_sep_nil::cvc5"], [11, 5, 1, "_CPPv415cvc5_get_valuesP4Cvc56size_tA_K8Cvc5TermP6size_t", "cvc5_get_values"], [11, 6, 1, "_CPPv415cvc5_get_valuesP4Cvc56size_tA_K8Cvc5TermP6size_t", "cvc5_get_values::cvc5"], [11, 6, 1, "_CPPv415cvc5_get_valuesP4Cvc56size_tA_K8Cvc5TermP6size_t", "cvc5_get_values::rsize"], [11, 6, 1, "_CPPv415cvc5_get_valuesP4Cvc56size_tA_K8Cvc5TermP6size_t", "cvc5_get_values::size"], [11, 6, 1, "_CPPv415cvc5_get_valuesP4Cvc56size_tA_K8Cvc5TermP6size_t", "cvc5_get_values::terms"], [11, 5, 1, "_CPPv416cvc5_get_versionP4Cvc5", "cvc5_get_version"], [11, 6, 1, "_CPPv416cvc5_get_versionP4Cvc5", "cvc5_get_version::cvc5"], [18, 5, 1, "_CPPv429cvc5_grammar_add_any_constant11Cvc5Grammar8Cvc5Term", "cvc5_grammar_add_any_constant"], [18, 6, 1, "_CPPv429cvc5_grammar_add_any_constant11Cvc5Grammar8Cvc5Term", "cvc5_grammar_add_any_constant::grammar"], [18, 6, 1, "_CPPv429cvc5_grammar_add_any_constant11Cvc5Grammar8Cvc5Term", "cvc5_grammar_add_any_constant::symbol"], [18, 5, 1, "_CPPv429cvc5_grammar_add_any_variable11Cvc5Grammar8Cvc5Term", "cvc5_grammar_add_any_variable"], [18, 6, 1, "_CPPv429cvc5_grammar_add_any_variable11Cvc5Grammar8Cvc5Term", "cvc5_grammar_add_any_variable::grammar"], [18, 6, 1, "_CPPv429cvc5_grammar_add_any_variable11Cvc5Grammar8Cvc5Term", "cvc5_grammar_add_any_variable::symbol"], [18, 5, 1, "_CPPv421cvc5_grammar_add_rule11Cvc5Grammar8Cvc5Term8Cvc5Term", "cvc5_grammar_add_rule"], [18, 6, 1, "_CPPv421cvc5_grammar_add_rule11Cvc5Grammar8Cvc5Term8Cvc5Term", "cvc5_grammar_add_rule::grammar"], [18, 6, 1, "_CPPv421cvc5_grammar_add_rule11Cvc5Grammar8Cvc5Term8Cvc5Term", "cvc5_grammar_add_rule::rule"], [18, 6, 1, "_CPPv421cvc5_grammar_add_rule11Cvc5Grammar8Cvc5Term8Cvc5Term", "cvc5_grammar_add_rule::symbol"], [18, 5, 1, "_CPPv422cvc5_grammar_add_rules11Cvc5Grammar8Cvc5Term6size_tA_K8Cvc5Term", "cvc5_grammar_add_rules"], [18, 6, 1, "_CPPv422cvc5_grammar_add_rules11Cvc5Grammar8Cvc5Term6size_tA_K8Cvc5Term", "cvc5_grammar_add_rules::grammar"], [18, 6, 1, "_CPPv422cvc5_grammar_add_rules11Cvc5Grammar8Cvc5Term6size_tA_K8Cvc5Term", "cvc5_grammar_add_rules::rules"], [18, 6, 1, "_CPPv422cvc5_grammar_add_rules11Cvc5Grammar8Cvc5Term6size_tA_K8Cvc5Term", "cvc5_grammar_add_rules::size"], [18, 6, 1, "_CPPv422cvc5_grammar_add_rules11Cvc5Grammar8Cvc5Term6size_tA_K8Cvc5Term", "cvc5_grammar_add_rules::symbol"], [18, 5, 1, "_CPPv417cvc5_grammar_copy11Cvc5Grammar", "cvc5_grammar_copy"], [18, 6, 1, "_CPPv417cvc5_grammar_copy11Cvc5Grammar", "cvc5_grammar_copy::grammar"], [18, 5, 1, "_CPPv417cvc5_grammar_hash11Cvc5Grammar", "cvc5_grammar_hash"], [18, 6, 1, "_CPPv417cvc5_grammar_hash11Cvc5Grammar", "cvc5_grammar_hash::grammar"], [18, 5, 1, "_CPPv424cvc5_grammar_is_disequal11Cvc5Grammar11Cvc5Grammar", "cvc5_grammar_is_disequal"], [18, 6, 1, "_CPPv424cvc5_grammar_is_disequal11Cvc5Grammar11Cvc5Grammar", "cvc5_grammar_is_disequal::a"], [18, 6, 1, "_CPPv424cvc5_grammar_is_disequal11Cvc5Grammar11Cvc5Grammar", "cvc5_grammar_is_disequal::b"], [18, 5, 1, "_CPPv421cvc5_grammar_is_equal11Cvc5Grammar11Cvc5Grammar", "cvc5_grammar_is_equal"], [18, 6, 1, "_CPPv421cvc5_grammar_is_equal11Cvc5Grammar11Cvc5Grammar", "cvc5_grammar_is_equal::a"], [18, 6, 1, "_CPPv421cvc5_grammar_is_equal11Cvc5Grammar11Cvc5Grammar", "cvc5_grammar_is_equal::b"], [18, 5, 1, "_CPPv420cvc5_grammar_release11Cvc5Grammar", "cvc5_grammar_release"], [18, 6, 1, "_CPPv420cvc5_grammar_release11Cvc5Grammar", "cvc5_grammar_release::grammar"], [18, 5, 1, "_CPPv422cvc5_grammar_to_stringK11Cvc5Grammar", "cvc5_grammar_to_string"], [18, 6, 1, "_CPPv422cvc5_grammar_to_stringK11Cvc5Grammar", "cvc5_grammar_to_string::grammar"], [11, 5, 1, "_CPPv417cvc5_is_logic_setP4Cvc5", "cvc5_is_logic_set"], [11, 6, 1, "_CPPv417cvc5_is_logic_setP4Cvc5", "cvc5_is_logic_set::cvc5"], [11, 5, 1, "_CPPv425cvc5_is_model_core_symbolP4Cvc58Cvc5Term", "cvc5_is_model_core_symbol"], [11, 6, 1, "_CPPv425cvc5_is_model_core_symbolP4Cvc58Cvc5Term", "cvc5_is_model_core_symbol::cvc5"], [11, 6, 1, "_CPPv425cvc5_is_model_core_symbolP4Cvc58Cvc5Term", "cvc5_is_model_core_symbol::v"], [11, 5, 1, "_CPPv417cvc5_is_output_onP4Cvc5PKc", "cvc5_is_output_on"], [11, 6, 1, "_CPPv417cvc5_is_output_onP4Cvc5PKc", "cvc5_is_output_on::cvc5"], [11, 6, 1, "_CPPv417cvc5_is_output_onP4Cvc5PKc", "cvc5_is_output_on::tag"], [2, 5, 1, "_CPPv414cvc5_kind_hash8Cvc5Kind", "cvc5_kind_hash"], [2, 6, 1, "_CPPv414cvc5_kind_hash8Cvc5Kind", "cvc5_kind_hash::kind"], [2, 5, 1, "_CPPv419cvc5_kind_to_string8Cvc5Kind", "cvc5_kind_to_string"], [2, 6, 1, "_CPPv419cvc5_kind_to_string8Cvc5Kind", "cvc5_kind_to_string::kind"], [11, 5, 1, "_CPPv415cvc5_mk_grammarP4Cvc56size_tA_K8Cvc5Term6size_tA_K8Cvc5Term", "cvc5_mk_grammar"], [11, 6, 1, "_CPPv415cvc5_mk_grammarP4Cvc56size_tA_K8Cvc5Term6size_tA_K8Cvc5Term", "cvc5_mk_grammar::bound_vars"], [11, 6, 1, "_CPPv415cvc5_mk_grammarP4Cvc56size_tA_K8Cvc5Term6size_tA_K8Cvc5Term", "cvc5_mk_grammar::cvc5"], [11, 6, 1, "_CPPv415cvc5_mk_grammarP4Cvc56size_tA_K8Cvc5Term6size_tA_K8Cvc5Term", "cvc5_mk_grammar::nbound_vars"], [11, 6, 1, "_CPPv415cvc5_mk_grammarP4Cvc56size_tA_K8Cvc5Term6size_tA_K8Cvc5Term", "cvc5_mk_grammar::nsymbols"], [11, 6, 1, "_CPPv415cvc5_mk_grammarP4Cvc56size_tA_K8Cvc5Term6size_tA_K8Cvc5Term", "cvc5_mk_grammar::symbols"], [28, 5, 1, "_CPPv410cvc5_mk_opP15Cvc5TermManager8Cvc5Kind6size_tA_K8uint32_t", "cvc5_mk_op"], [28, 6, 1, "_CPPv410cvc5_mk_opP15Cvc5TermManager8Cvc5Kind6size_tA_K8uint32_t", "cvc5_mk_op::idxs"], [28, 6, 1, "_CPPv410cvc5_mk_opP15Cvc5TermManager8Cvc5Kind6size_tA_K8uint32_t", "cvc5_mk_op::kind"], [28, 6, 1, "_CPPv410cvc5_mk_opP15Cvc5TermManager8Cvc5Kind6size_tA_K8uint32_t", "cvc5_mk_op::size"], [28, 6, 1, "_CPPv410cvc5_mk_opP15Cvc5TermManager8Cvc5Kind6size_tA_K8uint32_t", "cvc5_mk_op::tm"], [28, 5, 1, "_CPPv419cvc5_mk_op_from_strP15Cvc5TermManager8Cvc5KindPKc", "cvc5_mk_op_from_str"], [28, 6, 1, "_CPPv419cvc5_mk_op_from_strP15Cvc5TermManager8Cvc5KindPKc", "cvc5_mk_op_from_str::arg"], [28, 6, 1, "_CPPv419cvc5_mk_op_from_strP15Cvc5TermManager8Cvc5KindPKc", "cvc5_mk_op_from_str::kind"], [28, 6, 1, "_CPPv419cvc5_mk_op_from_strP15Cvc5TermManager8Cvc5KindPKc", "cvc5_mk_op_from_str::tm"], [7, 5, 1, "_CPPv438cvc5_modes_block_models_mode_to_string19Cvc5BlockModelsMode", "cvc5_modes_block_models_mode_to_string"], [7, 6, 1, "_CPPv438cvc5_modes_block_models_mode_to_string19Cvc5BlockModelsMode", "cvc5_modes_block_models_mode_to_string::mode"], [7, 5, 1, "_CPPv438cvc5_modes_find_synth_target_to_string19Cvc5FindSynthTarget", "cvc5_modes_find_synth_target_to_string"], [7, 6, 1, "_CPPv438cvc5_modes_find_synth_target_to_string19Cvc5FindSynthTarget", "cvc5_modes_find_synth_target_to_string::target"], [7, 5, 1, "_CPPv437cvc5_modes_learned_lit_type_to_string18Cvc5LearnedLitType", "cvc5_modes_learned_lit_type_to_string"], [7, 6, 1, "_CPPv437cvc5_modes_learned_lit_type_to_string18Cvc5LearnedLitType", "cvc5_modes_learned_lit_type_to_string::type"], [7, 5, 1, "_CPPv436cvc5_modes_proof_component_to_string18Cvc5ProofComponent", "cvc5_modes_proof_component_to_string"], [7, 6, 1, "_CPPv436cvc5_modes_proof_component_to_string18Cvc5ProofComponent", "cvc5_modes_proof_component_to_string::pc"], [7, 5, 1, "_CPPv433cvc5_modes_proof_format_to_string15Cvc5ProofFormat", "cvc5_modes_proof_format_to_string"], [7, 6, 1, "_CPPv433cvc5_modes_proof_format_to_string15Cvc5ProofFormat", "cvc5_modes_proof_format_to_string::format"], [11, 5, 1, "_CPPv48cvc5_newP15Cvc5TermManager", "cvc5_new"], [11, 6, 1, "_CPPv48cvc5_newP15Cvc5TermManager", "cvc5_new::tm"], [20, 5, 1, "_CPPv412cvc5_op_copy6Cvc5Op", "cvc5_op_copy"], [20, 6, 1, "_CPPv412cvc5_op_copy6Cvc5Op", "cvc5_op_copy::op"], [20, 5, 1, "_CPPv417cvc5_op_get_index6Cvc5Op6size_t", "cvc5_op_get_index"], [20, 6, 1, "_CPPv417cvc5_op_get_index6Cvc5Op6size_t", "cvc5_op_get_index::i"], [20, 6, 1, "_CPPv417cvc5_op_get_index6Cvc5Op6size_t", "cvc5_op_get_index::op"], [20, 5, 1, "_CPPv416cvc5_op_get_kind6Cvc5Op", "cvc5_op_get_kind"], [20, 6, 1, "_CPPv416cvc5_op_get_kind6Cvc5Op", "cvc5_op_get_kind::op"], [20, 5, 1, "_CPPv423cvc5_op_get_num_indices6Cvc5Op", "cvc5_op_get_num_indices"], [20, 6, 1, "_CPPv423cvc5_op_get_num_indices6Cvc5Op", "cvc5_op_get_num_indices::op"], [20, 5, 1, "_CPPv412cvc5_op_hash6Cvc5Op", "cvc5_op_hash"], [20, 6, 1, "_CPPv412cvc5_op_hash6Cvc5Op", "cvc5_op_hash::op"], [20, 5, 1, "_CPPv419cvc5_op_is_disequal6Cvc5Op6Cvc5Op", "cvc5_op_is_disequal"], [20, 6, 1, "_CPPv419cvc5_op_is_disequal6Cvc5Op6Cvc5Op", "cvc5_op_is_disequal::a"], [20, 6, 1, "_CPPv419cvc5_op_is_disequal6Cvc5Op6Cvc5Op", "cvc5_op_is_disequal::b"], [20, 5, 1, "_CPPv416cvc5_op_is_equal6Cvc5Op6Cvc5Op", "cvc5_op_is_equal"], [20, 6, 1, "_CPPv416cvc5_op_is_equal6Cvc5Op6Cvc5Op", "cvc5_op_is_equal::a"], [20, 6, 1, "_CPPv416cvc5_op_is_equal6Cvc5Op6Cvc5Op", "cvc5_op_is_equal::b"], [20, 5, 1, "_CPPv418cvc5_op_is_indexed6Cvc5Op", "cvc5_op_is_indexed"], [20, 6, 1, "_CPPv418cvc5_op_is_indexed6Cvc5Op", "cvc5_op_is_indexed::op"], [20, 5, 1, "_CPPv415cvc5_op_release6Cvc5Op", "cvc5_op_release"], [20, 6, 1, "_CPPv415cvc5_op_release6Cvc5Op", "cvc5_op_release::op"], [20, 5, 1, "_CPPv417cvc5_op_to_string6Cvc5Op", "cvc5_op_to_string"], [20, 6, 1, "_CPPv417cvc5_op_to_string6Cvc5Op", "cvc5_op_to_string::op"], [11, 5, 1, "_CPPv48cvc5_popP4Cvc58uint32_t", "cvc5_pop"], [11, 6, 1, "_CPPv48cvc5_popP4Cvc58uint32_t", "cvc5_pop::cvc5"], [11, 6, 1, "_CPPv48cvc5_popP4Cvc58uint32_t", "cvc5_pop::nscopes"], [11, 5, 1, "_CPPv421cvc5_print_stats_safeP4Cvc5i", "cvc5_print_stats_safe"], [11, 6, 1, "_CPPv421cvc5_print_stats_safeP4Cvc5i", "cvc5_print_stats_safe::cvc5"], [11, 6, 1, "_CPPv421cvc5_print_stats_safeP4Cvc5i", "cvc5_print_stats_safe::fd"], [21, 5, 1, "_CPPv415cvc5_proof_copy9Cvc5Proof", "cvc5_proof_copy"], [21, 6, 1, "_CPPv415cvc5_proof_copy9Cvc5Proof", "cvc5_proof_copy::proof"], [21, 5, 1, "_CPPv424cvc5_proof_get_arguments9Cvc5ProofP6size_t", "cvc5_proof_get_arguments"], [21, 6, 1, "_CPPv424cvc5_proof_get_arguments9Cvc5ProofP6size_t", "cvc5_proof_get_arguments::proof"], [21, 6, 1, "_CPPv424cvc5_proof_get_arguments9Cvc5ProofP6size_t", "cvc5_proof_get_arguments::size"], [21, 5, 1, "_CPPv423cvc5_proof_get_children9Cvc5ProofP6size_t", "cvc5_proof_get_children"], [21, 6, 1, "_CPPv423cvc5_proof_get_children9Cvc5ProofP6size_t", "cvc5_proof_get_children::proof"], [21, 6, 1, "_CPPv423cvc5_proof_get_children9Cvc5ProofP6size_t", "cvc5_proof_get_children::size"], [21, 5, 1, "_CPPv421cvc5_proof_get_result9Cvc5Proof", "cvc5_proof_get_result"], [21, 6, 1, "_CPPv421cvc5_proof_get_result9Cvc5Proof", "cvc5_proof_get_result::proof"], [21, 5, 1, "_CPPv427cvc5_proof_get_rewrite_rule9Cvc5Proof", "cvc5_proof_get_rewrite_rule"], [21, 6, 1, "_CPPv427cvc5_proof_get_rewrite_rule9Cvc5Proof", "cvc5_proof_get_rewrite_rule::proof"], [21, 5, 1, "_CPPv419cvc5_proof_get_rule9Cvc5Proof", "cvc5_proof_get_rule"], [21, 6, 1, "_CPPv419cvc5_proof_get_rule9Cvc5Proof", "cvc5_proof_get_rule::proof"], [21, 5, 1, "_CPPv415cvc5_proof_hash9Cvc5Proof", "cvc5_proof_hash"], [21, 6, 1, "_CPPv415cvc5_proof_hash9Cvc5Proof", "cvc5_proof_hash::proof"], [21, 5, 1, "_CPPv422cvc5_proof_is_disequal9Cvc5Proof9Cvc5Proof", "cvc5_proof_is_disequal"], [21, 6, 1, "_CPPv422cvc5_proof_is_disequal9Cvc5Proof9Cvc5Proof", "cvc5_proof_is_disequal::a"], [21, 6, 1, "_CPPv422cvc5_proof_is_disequal9Cvc5Proof9Cvc5Proof", "cvc5_proof_is_disequal::b"], [21, 5, 1, "_CPPv419cvc5_proof_is_equal9Cvc5Proof9Cvc5Proof", "cvc5_proof_is_equal"], [21, 6, 1, "_CPPv419cvc5_proof_is_equal9Cvc5Proof9Cvc5Proof", "cvc5_proof_is_equal::a"], [21, 6, 1, "_CPPv419cvc5_proof_is_equal9Cvc5Proof9Cvc5Proof", "cvc5_proof_is_equal::b"], [21, 5, 1, "_CPPv418cvc5_proof_release9Cvc5Proof", "cvc5_proof_release"], [21, 6, 1, "_CPPv418cvc5_proof_release9Cvc5Proof", "cvc5_proof_release::proof"], [3, 5, 1, "_CPPv428cvc5_proof_rewrite_rule_hash20Cvc5ProofRewriteRule", "cvc5_proof_rewrite_rule_hash"], [3, 6, 1, "_CPPv428cvc5_proof_rewrite_rule_hash20Cvc5ProofRewriteRule", "cvc5_proof_rewrite_rule_hash::rule"], [3, 5, 1, "_CPPv433cvc5_proof_rewrite_rule_to_string20Cvc5ProofRewriteRule", "cvc5_proof_rewrite_rule_to_string"], [3, 6, 1, "_CPPv433cvc5_proof_rewrite_rule_to_string20Cvc5ProofRewriteRule", "cvc5_proof_rewrite_rule_to_string::rule"], [3, 5, 1, "_CPPv420cvc5_proof_rule_hash13Cvc5ProofRule", "cvc5_proof_rule_hash"], [3, 6, 1, "_CPPv420cvc5_proof_rule_hash13Cvc5ProofRule", "cvc5_proof_rule_hash::rule"], [3, 5, 1, "_CPPv425cvc5_proof_rule_to_string13Cvc5ProofRule", "cvc5_proof_rule_to_string"], [3, 6, 1, "_CPPv425cvc5_proof_rule_to_string13Cvc5ProofRule", "cvc5_proof_rule_to_string::rule"], [11, 5, 1, "_CPPv420cvc5_proof_to_stringP4Cvc59Cvc5Proof15Cvc5ProofFormat6size_tA_K8Cvc5TermA_PKc", "cvc5_proof_to_string"], [11, 6, 1, "_CPPv420cvc5_proof_to_stringP4Cvc59Cvc5Proof15Cvc5ProofFormat6size_tA_K8Cvc5TermA_PKc", "cvc5_proof_to_string::assertions"], [11, 6, 1, "_CPPv420cvc5_proof_to_stringP4Cvc59Cvc5Proof15Cvc5ProofFormat6size_tA_K8Cvc5TermA_PKc", "cvc5_proof_to_string::cvc5"], [11, 6, 1, "_CPPv420cvc5_proof_to_stringP4Cvc59Cvc5Proof15Cvc5ProofFormat6size_tA_K8Cvc5TermA_PKc", "cvc5_proof_to_string::format"], [11, 6, 1, "_CPPv420cvc5_proof_to_stringP4Cvc59Cvc5Proof15Cvc5ProofFormat6size_tA_K8Cvc5TermA_PKc", "cvc5_proof_to_string::names"], [11, 6, 1, "_CPPv420cvc5_proof_to_stringP4Cvc59Cvc5Proof15Cvc5ProofFormat6size_tA_K8Cvc5TermA_PKc", "cvc5_proof_to_string::proof"], [11, 6, 1, "_CPPv420cvc5_proof_to_stringP4Cvc59Cvc5Proof15Cvc5ProofFormat6size_tA_K8Cvc5TermA_PKc", "cvc5_proof_to_string::size"], [11, 5, 1, "_CPPv49cvc5_pushP4Cvc58uint32_t", "cvc5_push"], [11, 6, 1, "_CPPv49cvc5_pushP4Cvc58uint32_t", "cvc5_push::cvc5"], [11, 6, 1, "_CPPv49cvc5_pushP4Cvc58uint32_t", "cvc5_push::nscopes"], [11, 5, 1, "_CPPv421cvc5_reset_assertionsP4Cvc5", "cvc5_reset_assertions"], [11, 6, 1, "_CPPv421cvc5_reset_assertionsP4Cvc5", "cvc5_reset_assertions::cvc5"], [22, 5, 1, "_CPPv416cvc5_result_copy10Cvc5Result", "cvc5_result_copy"], [22, 6, 1, "_CPPv416cvc5_result_copy10Cvc5Result", "cvc5_result_copy::result"], [22, 5, 1, "_CPPv435cvc5_result_get_unknown_explanationK10Cvc5Result", "cvc5_result_get_unknown_explanation"], [22, 6, 1, "_CPPv435cvc5_result_get_unknown_explanationK10Cvc5Result", "cvc5_result_get_unknown_explanation::result"], [22, 5, 1, "_CPPv416cvc5_result_hash10Cvc5Result", "cvc5_result_hash"], [22, 6, 1, "_CPPv416cvc5_result_hash10Cvc5Result", "cvc5_result_hash::result"], [22, 5, 1, "_CPPv423cvc5_result_is_disequalK10Cvc5ResultK10Cvc5Result", "cvc5_result_is_disequal"], [22, 6, 1, "_CPPv423cvc5_result_is_disequalK10Cvc5ResultK10Cvc5Result", "cvc5_result_is_disequal::a"], [22, 6, 1, "_CPPv423cvc5_result_is_disequalK10Cvc5ResultK10Cvc5Result", "cvc5_result_is_disequal::b"], [22, 5, 1, "_CPPv420cvc5_result_is_equalK10Cvc5ResultK10Cvc5Result", "cvc5_result_is_equal"], [22, 6, 1, "_CPPv420cvc5_result_is_equalK10Cvc5ResultK10Cvc5Result", "cvc5_result_is_equal::a"], [22, 6, 1, "_CPPv420cvc5_result_is_equalK10Cvc5ResultK10Cvc5Result", "cvc5_result_is_equal::b"], [22, 5, 1, "_CPPv419cvc5_result_is_nullK10Cvc5Result", "cvc5_result_is_null"], [22, 6, 1, "_CPPv419cvc5_result_is_nullK10Cvc5Result", "cvc5_result_is_null::result"], [22, 5, 1, "_CPPv418cvc5_result_is_satK10Cvc5Result", "cvc5_result_is_sat"], [22, 6, 1, "_CPPv418cvc5_result_is_satK10Cvc5Result", "cvc5_result_is_sat::result"], [22, 5, 1, "_CPPv422cvc5_result_is_unknownK10Cvc5Result", "cvc5_result_is_unknown"], [22, 6, 1, "_CPPv422cvc5_result_is_unknownK10Cvc5Result", "cvc5_result_is_unknown::result"], [22, 5, 1, "_CPPv420cvc5_result_is_unsatK10Cvc5Result", "cvc5_result_is_unsat"], [22, 6, 1, "_CPPv420cvc5_result_is_unsatK10Cvc5Result", "cvc5_result_is_unsat::result"], [22, 5, 1, "_CPPv419cvc5_result_release10Cvc5Result", "cvc5_result_release"], [22, 6, 1, "_CPPv419cvc5_result_release10Cvc5Result", "cvc5_result_release::result"], [22, 5, 1, "_CPPv421cvc5_result_to_stringK10Cvc5Result", "cvc5_result_to_string"], [22, 6, 1, "_CPPv421cvc5_result_to_stringK10Cvc5Result", "cvc5_result_to_string::result"], [4, 5, 1, "_CPPv417cvc5_rm_to_string16Cvc5RoundingMode", "cvc5_rm_to_string"], [4, 6, 1, "_CPPv417cvc5_rm_to_string16Cvc5RoundingMode", "cvc5_rm_to_string::rm"], [11, 5, 1, "_CPPv413cvc5_set_infoP4Cvc5PKcPKc", "cvc5_set_info"], [11, 6, 1, "_CPPv413cvc5_set_infoP4Cvc5PKcPKc", "cvc5_set_info::cvc5"], [11, 6, 1, "_CPPv413cvc5_set_infoP4Cvc5PKcPKc", "cvc5_set_info::keyword"], [11, 6, 1, "_CPPv413cvc5_set_infoP4Cvc5PKcPKc", "cvc5_set_info::value"], [11, 5, 1, "_CPPv414cvc5_set_logicP4Cvc5PKc", "cvc5_set_logic"], [11, 6, 1, "_CPPv414cvc5_set_logicP4Cvc5PKc", "cvc5_set_logic::cvc5"], [11, 6, 1, "_CPPv414cvc5_set_logicP4Cvc5PKc", "cvc5_set_logic::logic"], [11, 5, 1, "_CPPv415cvc5_set_optionP4Cvc5PKcPKc", "cvc5_set_option"], [11, 6, 1, "_CPPv415cvc5_set_optionP4Cvc5PKcPKc", "cvc5_set_option::cvc5"], [11, 6, 1, "_CPPv415cvc5_set_optionP4Cvc5PKcPKc", "cvc5_set_option::option"], [11, 6, 1, "_CPPv415cvc5_set_optionP4Cvc5PKcPKc", "cvc5_set_option::value"], [11, 5, 1, "_CPPv413cvc5_simplifyP4Cvc58Cvc5Termb", "cvc5_simplify"], [11, 6, 1, "_CPPv413cvc5_simplifyP4Cvc58Cvc5Termb", "cvc5_simplify::apply_subs"], [11, 6, 1, "_CPPv413cvc5_simplifyP4Cvc58Cvc5Termb", "cvc5_simplify::cvc5"], [11, 6, 1, "_CPPv413cvc5_simplifyP4Cvc58Cvc5Termb", "cvc5_simplify::term"], [23, 5, 1, "_CPPv427cvc5_sort_abstract_get_kind8Cvc5Sort", "cvc5_sort_abstract_get_kind"], [23, 6, 1, "_CPPv427cvc5_sort_abstract_get_kind8Cvc5Sort", "cvc5_sort_abstract_get_kind::sort"], [23, 5, 1, "_CPPv432cvc5_sort_array_get_element_sort8Cvc5Sort", "cvc5_sort_array_get_element_sort"], [23, 6, 1, "_CPPv432cvc5_sort_array_get_element_sort8Cvc5Sort", "cvc5_sort_array_get_element_sort::sort"], [23, 5, 1, "_CPPv430cvc5_sort_array_get_index_sort8Cvc5Sort", "cvc5_sort_array_get_index_sort"], [23, 6, 1, "_CPPv430cvc5_sort_array_get_index_sort8Cvc5Sort", "cvc5_sort_array_get_index_sort::sort"], [23, 5, 1, "_CPPv430cvc5_sort_bag_get_element_sort8Cvc5Sort", "cvc5_sort_bag_get_element_sort"], [23, 6, 1, "_CPPv430cvc5_sort_bag_get_element_sort8Cvc5Sort", "cvc5_sort_bag_get_element_sort::sort"], [23, 5, 1, "_CPPv421cvc5_sort_bv_get_size8Cvc5Sort", "cvc5_sort_bv_get_size"], [23, 6, 1, "_CPPv421cvc5_sort_bv_get_size8Cvc5Sort", "cvc5_sort_bv_get_size::sort"], [23, 5, 1, "_CPPv417cvc5_sort_compare8Cvc5Sort8Cvc5Sort", "cvc5_sort_compare"], [23, 6, 1, "_CPPv417cvc5_sort_compare8Cvc5Sort8Cvc5Sort", "cvc5_sort_compare::a"], [23, 6, 1, "_CPPv417cvc5_sort_compare8Cvc5Sort8Cvc5Sort", "cvc5_sort_compare::b"], [23, 5, 1, "_CPPv414cvc5_sort_copy8Cvc5Sort", "cvc5_sort_copy"], [23, 6, 1, "_CPPv414cvc5_sort_copy8Cvc5Sort", "cvc5_sort_copy::sort"], [23, 5, 1, "_CPPv434cvc5_sort_dt_constructor_get_arity8Cvc5Sort", "cvc5_sort_dt_constructor_get_arity"], [23, 6, 1, "_CPPv434cvc5_sort_dt_constructor_get_arity8Cvc5Sort", "cvc5_sort_dt_constructor_get_arity::sort"], [23, 5, 1, "_CPPv437cvc5_sort_dt_constructor_get_codomain8Cvc5Sort", "cvc5_sort_dt_constructor_get_codomain"], [23, 6, 1, "_CPPv437cvc5_sort_dt_constructor_get_codomain8Cvc5Sort", "cvc5_sort_dt_constructor_get_codomain::sort"], [23, 5, 1, "_CPPv435cvc5_sort_dt_constructor_get_domain8Cvc5SortP6size_t", "cvc5_sort_dt_constructor_get_domain"], [23, 6, 1, "_CPPv435cvc5_sort_dt_constructor_get_domain8Cvc5SortP6size_t", "cvc5_sort_dt_constructor_get_domain::size"], [23, 6, 1, "_CPPv435cvc5_sort_dt_constructor_get_domain8Cvc5SortP6size_t", "cvc5_sort_dt_constructor_get_domain::sort"], [23, 5, 1, "_CPPv422cvc5_sort_dt_get_arity8Cvc5Sort", "cvc5_sort_dt_get_arity"], [23, 6, 1, "_CPPv422cvc5_sort_dt_get_arity8Cvc5Sort", "cvc5_sort_dt_get_arity::sort"], [23, 5, 1, "_CPPv434cvc5_sort_dt_selector_get_codomain8Cvc5Sort", "cvc5_sort_dt_selector_get_codomain"], [23, 6, 1, "_CPPv434cvc5_sort_dt_selector_get_codomain8Cvc5Sort", "cvc5_sort_dt_selector_get_codomain::sort"], [23, 5, 1, "_CPPv432cvc5_sort_dt_selector_get_domain8Cvc5Sort", "cvc5_sort_dt_selector_get_domain"], [23, 6, 1, "_CPPv432cvc5_sort_dt_selector_get_domain8Cvc5Sort", "cvc5_sort_dt_selector_get_domain::sort"], [23, 5, 1, "_CPPv432cvc5_sort_dt_tester_get_codomain8Cvc5Sort", "cvc5_sort_dt_tester_get_codomain"], [23, 6, 1, "_CPPv432cvc5_sort_dt_tester_get_codomain8Cvc5Sort", "cvc5_sort_dt_tester_get_codomain::sort"], [23, 5, 1, "_CPPv430cvc5_sort_dt_tester_get_domain8Cvc5Sort", "cvc5_sort_dt_tester_get_domain"], [23, 6, 1, "_CPPv430cvc5_sort_dt_tester_get_domain8Cvc5Sort", "cvc5_sort_dt_tester_get_domain::sort"], [23, 5, 1, "_CPPv421cvc5_sort_ff_get_size8Cvc5Sort", "cvc5_sort_ff_get_size"], [23, 6, 1, "_CPPv421cvc5_sort_ff_get_size8Cvc5Sort", "cvc5_sort_ff_get_size::sort"], [23, 5, 1, "_CPPv425cvc5_sort_fp_get_exp_size8Cvc5Sort", "cvc5_sort_fp_get_exp_size"], [23, 6, 1, "_CPPv425cvc5_sort_fp_get_exp_size8Cvc5Sort", "cvc5_sort_fp_get_exp_size::sort"], [23, 5, 1, "_CPPv425cvc5_sort_fp_get_sig_size8Cvc5Sort", "cvc5_sort_fp_get_sig_size"], [23, 6, 1, "_CPPv425cvc5_sort_fp_get_sig_size8Cvc5Sort", "cvc5_sort_fp_get_sig_size::sort"], [23, 5, 1, "_CPPv423cvc5_sort_fun_get_arity8Cvc5Sort", "cvc5_sort_fun_get_arity"], [23, 6, 1, "_CPPv423cvc5_sort_fun_get_arity8Cvc5Sort", "cvc5_sort_fun_get_arity::sort"], [23, 5, 1, "_CPPv426cvc5_sort_fun_get_codomain8Cvc5Sort", "cvc5_sort_fun_get_codomain"], [23, 6, 1, "_CPPv426cvc5_sort_fun_get_codomain8Cvc5Sort", "cvc5_sort_fun_get_codomain::sort"], [23, 5, 1, "_CPPv424cvc5_sort_fun_get_domain8Cvc5SortP6size_t", "cvc5_sort_fun_get_domain"], [23, 6, 1, "_CPPv424cvc5_sort_fun_get_domain8Cvc5SortP6size_t", "cvc5_sort_fun_get_domain::size"], [23, 6, 1, "_CPPv424cvc5_sort_fun_get_domain8Cvc5SortP6size_t", "cvc5_sort_fun_get_domain::sort"], [23, 5, 1, "_CPPv422cvc5_sort_get_datatype8Cvc5Sort", "cvc5_sort_get_datatype"], [23, 6, 1, "_CPPv422cvc5_sort_get_datatype8Cvc5Sort", "cvc5_sort_get_datatype::sort"], [23, 5, 1, "_CPPv437cvc5_sort_get_instantiated_parameters8Cvc5SortP6size_t", "cvc5_sort_get_instantiated_parameters"], [23, 6, 1, "_CPPv437cvc5_sort_get_instantiated_parameters8Cvc5SortP6size_t", "cvc5_sort_get_instantiated_parameters::size"], [23, 6, 1, "_CPPv437cvc5_sort_get_instantiated_parameters8Cvc5SortP6size_t", "cvc5_sort_get_instantiated_parameters::sort"], [23, 5, 1, "_CPPv418cvc5_sort_get_kind8Cvc5Sort", "cvc5_sort_get_kind"], [23, 6, 1, "_CPPv418cvc5_sort_get_kind8Cvc5Sort", "cvc5_sort_get_kind::sort"], [23, 5, 1, "_CPPv420cvc5_sort_get_symbol8Cvc5Sort", "cvc5_sort_get_symbol"], [23, 6, 1, "_CPPv420cvc5_sort_get_symbol8Cvc5Sort", "cvc5_sort_get_symbol::sort"], [23, 5, 1, "_CPPv444cvc5_sort_get_uninterpreted_sort_constructor8Cvc5Sort", "cvc5_sort_get_uninterpreted_sort_constructor"], [23, 6, 1, "_CPPv444cvc5_sort_get_uninterpreted_sort_constructor8Cvc5Sort", "cvc5_sort_get_uninterpreted_sort_constructor::sort"], [23, 5, 1, "_CPPv420cvc5_sort_has_symbol8Cvc5Sort", "cvc5_sort_has_symbol"], [23, 6, 1, "_CPPv420cvc5_sort_has_symbol8Cvc5Sort", "cvc5_sort_has_symbol::sort"], [23, 5, 1, "_CPPv414cvc5_sort_hash8Cvc5Sort", "cvc5_sort_hash"], [23, 6, 1, "_CPPv414cvc5_sort_hash8Cvc5Sort", "cvc5_sort_hash::sort"], [23, 5, 1, "_CPPv421cvc5_sort_instantiate8Cvc5Sort6size_tA_K8Cvc5Sort", "cvc5_sort_instantiate"], [23, 6, 1, "_CPPv421cvc5_sort_instantiate8Cvc5Sort6size_tA_K8Cvc5Sort", "cvc5_sort_instantiate::params"], [23, 6, 1, "_CPPv421cvc5_sort_instantiate8Cvc5Sort6size_tA_K8Cvc5Sort", "cvc5_sort_instantiate::size"], [23, 6, 1, "_CPPv421cvc5_sort_instantiate8Cvc5Sort6size_tA_K8Cvc5Sort", "cvc5_sort_instantiate::sort"], [23, 5, 1, "_CPPv421cvc5_sort_is_abstract8Cvc5Sort", "cvc5_sort_is_abstract"], [23, 6, 1, "_CPPv421cvc5_sort_is_abstract8Cvc5Sort", "cvc5_sort_is_abstract::sort"], [23, 5, 1, "_CPPv418cvc5_sort_is_array8Cvc5Sort", "cvc5_sort_is_array"], [23, 6, 1, "_CPPv418cvc5_sort_is_array8Cvc5Sort", "cvc5_sort_is_array::sort"], [23, 5, 1, "_CPPv416cvc5_sort_is_bag8Cvc5Sort", "cvc5_sort_is_bag"], [23, 6, 1, "_CPPv416cvc5_sort_is_bag8Cvc5Sort", "cvc5_sort_is_bag::sort"], [23, 5, 1, "_CPPv420cvc5_sort_is_boolean8Cvc5Sort", "cvc5_sort_is_boolean"], [23, 6, 1, "_CPPv420cvc5_sort_is_boolean8Cvc5Sort", "cvc5_sort_is_boolean::sort"], [23, 5, 1, "_CPPv415cvc5_sort_is_bv8Cvc5Sort", "cvc5_sort_is_bv"], [23, 6, 1, "_CPPv415cvc5_sort_is_bv8Cvc5Sort", "cvc5_sort_is_bv::sort"], [23, 5, 1, "_CPPv421cvc5_sort_is_disequal8Cvc5Sort8Cvc5Sort", "cvc5_sort_is_disequal"], [23, 6, 1, "_CPPv421cvc5_sort_is_disequal8Cvc5Sort8Cvc5Sort", "cvc5_sort_is_disequal::a"], [23, 6, 1, "_CPPv421cvc5_sort_is_disequal8Cvc5Sort8Cvc5Sort", "cvc5_sort_is_disequal::b"], [23, 5, 1, "_CPPv415cvc5_sort_is_dt8Cvc5Sort", "cvc5_sort_is_dt"], [23, 6, 1, "_CPPv415cvc5_sort_is_dt8Cvc5Sort", "cvc5_sort_is_dt::sort"], [23, 5, 1, "_CPPv427cvc5_sort_is_dt_constructor8Cvc5Sort", "cvc5_sort_is_dt_constructor"], [23, 6, 1, "_CPPv427cvc5_sort_is_dt_constructor8Cvc5Sort", "cvc5_sort_is_dt_constructor::sort"], [23, 5, 1, "_CPPv424cvc5_sort_is_dt_selector8Cvc5Sort", "cvc5_sort_is_dt_selector"], [23, 6, 1, "_CPPv424cvc5_sort_is_dt_selector8Cvc5Sort", "cvc5_sort_is_dt_selector::sort"], [23, 5, 1, "_CPPv422cvc5_sort_is_dt_tester8Cvc5Sort", "cvc5_sort_is_dt_tester"], [23, 6, 1, "_CPPv422cvc5_sort_is_dt_tester8Cvc5Sort", "cvc5_sort_is_dt_tester::sort"], [23, 5, 1, "_CPPv423cvc5_sort_is_dt_updater8Cvc5Sort", "cvc5_sort_is_dt_updater"], [23, 6, 1, "_CPPv423cvc5_sort_is_dt_updater8Cvc5Sort", "cvc5_sort_is_dt_updater::sort"], [23, 5, 1, "_CPPv418cvc5_sort_is_equal8Cvc5Sort8Cvc5Sort", "cvc5_sort_is_equal"], [23, 6, 1, "_CPPv418cvc5_sort_is_equal8Cvc5Sort8Cvc5Sort", "cvc5_sort_is_equal::a"], [23, 6, 1, "_CPPv418cvc5_sort_is_equal8Cvc5Sort8Cvc5Sort", "cvc5_sort_is_equal::b"], [23, 5, 1, "_CPPv415cvc5_sort_is_ff8Cvc5Sort", "cvc5_sort_is_ff"], [23, 6, 1, "_CPPv415cvc5_sort_is_ff8Cvc5Sort", "cvc5_sort_is_ff::sort"], [23, 5, 1, "_CPPv415cvc5_sort_is_fp8Cvc5Sort", "cvc5_sort_is_fp"], [23, 6, 1, "_CPPv415cvc5_sort_is_fp8Cvc5Sort", "cvc5_sort_is_fp::sort"], [23, 5, 1, "_CPPv416cvc5_sort_is_fun8Cvc5Sort", "cvc5_sort_is_fun"], [23, 6, 1, "_CPPv416cvc5_sort_is_fun8Cvc5Sort", "cvc5_sort_is_fun::sort"], [23, 5, 1, "_CPPv425cvc5_sort_is_instantiated8Cvc5Sort", "cvc5_sort_is_instantiated"], [23, 6, 1, "_CPPv425cvc5_sort_is_instantiated8Cvc5Sort", "cvc5_sort_is_instantiated::sort"], [23, 5, 1, "_CPPv420cvc5_sort_is_integer8Cvc5Sort", "cvc5_sort_is_integer"], [23, 6, 1, "_CPPv420cvc5_sort_is_integer8Cvc5Sort", "cvc5_sort_is_integer::sort"], [23, 5, 1, "_CPPv421cvc5_sort_is_nullable8Cvc5Sort", "cvc5_sort_is_nullable"], [23, 6, 1, "_CPPv421cvc5_sort_is_nullable8Cvc5Sort", "cvc5_sort_is_nullable::sort"], [23, 5, 1, "_CPPv422cvc5_sort_is_predicate8Cvc5Sort", "cvc5_sort_is_predicate"], [23, 6, 1, "_CPPv422cvc5_sort_is_predicate8Cvc5Sort", "cvc5_sort_is_predicate::sort"], [23, 5, 1, "_CPPv417cvc5_sort_is_real8Cvc5Sort", "cvc5_sort_is_real"], [23, 6, 1, "_CPPv417cvc5_sort_is_real8Cvc5Sort", "cvc5_sort_is_real::sort"], [23, 5, 1, "_CPPv419cvc5_sort_is_record8Cvc5Sort", "cvc5_sort_is_record"], [23, 6, 1, "_CPPv419cvc5_sort_is_record8Cvc5Sort", "cvc5_sort_is_record::sort"], [23, 5, 1, "_CPPv419cvc5_sort_is_regexp8Cvc5Sort", "cvc5_sort_is_regexp"], [23, 6, 1, "_CPPv419cvc5_sort_is_regexp8Cvc5Sort", "cvc5_sort_is_regexp::sort"], [23, 5, 1, "_CPPv415cvc5_sort_is_rm8Cvc5Sort", "cvc5_sort_is_rm"], [23, 6, 1, "_CPPv415cvc5_sort_is_rm8Cvc5Sort", "cvc5_sort_is_rm::sort"], [23, 5, 1, "_CPPv421cvc5_sort_is_sequence8Cvc5Sort", "cvc5_sort_is_sequence"], [23, 6, 1, "_CPPv421cvc5_sort_is_sequence8Cvc5Sort", "cvc5_sort_is_sequence::sort"], [23, 5, 1, "_CPPv416cvc5_sort_is_set8Cvc5Sort", "cvc5_sort_is_set"], [23, 6, 1, "_CPPv416cvc5_sort_is_set8Cvc5Sort", "cvc5_sort_is_set::sort"], [23, 5, 1, "_CPPv419cvc5_sort_is_string8Cvc5Sort", "cvc5_sort_is_string"], [23, 6, 1, "_CPPv419cvc5_sort_is_string8Cvc5Sort", "cvc5_sort_is_string::sort"], [23, 5, 1, "_CPPv418cvc5_sort_is_tuple8Cvc5Sort", "cvc5_sort_is_tuple"], [23, 6, 1, "_CPPv418cvc5_sort_is_tuple8Cvc5Sort", "cvc5_sort_is_tuple::sort"], [23, 5, 1, "_CPPv431cvc5_sort_is_uninterpreted_sort8Cvc5Sort", "cvc5_sort_is_uninterpreted_sort"], [23, 6, 1, "_CPPv431cvc5_sort_is_uninterpreted_sort8Cvc5Sort", "cvc5_sort_is_uninterpreted_sort::sort"], [23, 5, 1, "_CPPv443cvc5_sort_is_uninterpreted_sort_constructor8Cvc5Sort", "cvc5_sort_is_uninterpreted_sort_constructor"], [23, 6, 1, "_CPPv443cvc5_sort_is_uninterpreted_sort_constructor8Cvc5Sort", "cvc5_sort_is_uninterpreted_sort_constructor::sort"], [5, 5, 1, "_CPPv419cvc5_sort_kind_hash12Cvc5SortKind", "cvc5_sort_kind_hash"], [5, 6, 1, "_CPPv419cvc5_sort_kind_hash12Cvc5SortKind", "cvc5_sort_kind_hash::kind"], [5, 5, 1, "_CPPv424cvc5_sort_kind_to_string12Cvc5SortKind", "cvc5_sort_kind_to_string"], [5, 6, 1, "_CPPv424cvc5_sort_kind_to_string12Cvc5SortKind", "cvc5_sort_kind_to_string::kind"], [23, 5, 1, "_CPPv435cvc5_sort_nullable_get_element_sort8Cvc5Sort", "cvc5_sort_nullable_get_element_sort"], [23, 6, 1, "_CPPv435cvc5_sort_nullable_get_element_sort8Cvc5Sort", "cvc5_sort_nullable_get_element_sort::sort"], [23, 5, 1, "_CPPv417cvc5_sort_release8Cvc5Sort", "cvc5_sort_release"], [23, 6, 1, "_CPPv417cvc5_sort_release8Cvc5Sort", "cvc5_sort_release::sort"], [23, 5, 1, "_CPPv435cvc5_sort_sequence_get_element_sort8Cvc5Sort", "cvc5_sort_sequence_get_element_sort"], [23, 6, 1, "_CPPv435cvc5_sort_sequence_get_element_sort8Cvc5Sort", "cvc5_sort_sequence_get_element_sort::sort"], [23, 5, 1, "_CPPv430cvc5_sort_set_get_element_sort8Cvc5Sort", "cvc5_sort_set_get_element_sort"], [23, 6, 1, "_CPPv430cvc5_sort_set_get_element_sort8Cvc5Sort", "cvc5_sort_set_get_element_sort::sort"], [23, 5, 1, "_CPPv420cvc5_sort_substitute8Cvc5Sort8Cvc5Sort8Cvc5Sort", "cvc5_sort_substitute"], [23, 6, 1, "_CPPv420cvc5_sort_substitute8Cvc5Sort8Cvc5Sort8Cvc5Sort", "cvc5_sort_substitute::replacement"], [23, 6, 1, "_CPPv420cvc5_sort_substitute8Cvc5Sort8Cvc5Sort8Cvc5Sort", "cvc5_sort_substitute::s"], [23, 6, 1, "_CPPv420cvc5_sort_substitute8Cvc5Sort8Cvc5Sort8Cvc5Sort", "cvc5_sort_substitute::sort"], [23, 5, 1, "_CPPv426cvc5_sort_substitute_sorts8Cvc5Sort6size_tA_K8Cvc5SortA_K8Cvc5Sort", "cvc5_sort_substitute_sorts"], [23, 6, 1, "_CPPv426cvc5_sort_substitute_sorts8Cvc5Sort6size_tA_K8Cvc5SortA_K8Cvc5Sort", "cvc5_sort_substitute_sorts::replacements"], [23, 6, 1, "_CPPv426cvc5_sort_substitute_sorts8Cvc5Sort6size_tA_K8Cvc5SortA_K8Cvc5Sort", "cvc5_sort_substitute_sorts::size"], [23, 6, 1, "_CPPv426cvc5_sort_substitute_sorts8Cvc5Sort6size_tA_K8Cvc5SortA_K8Cvc5Sort", "cvc5_sort_substitute_sorts::sort"], [23, 6, 1, "_CPPv426cvc5_sort_substitute_sorts8Cvc5Sort6size_tA_K8Cvc5SortA_K8Cvc5Sort", "cvc5_sort_substitute_sorts::sorts"], [23, 5, 1, "_CPPv419cvc5_sort_to_string8Cvc5Sort", "cvc5_sort_to_string"], [23, 6, 1, "_CPPv419cvc5_sort_to_string8Cvc5Sort", "cvc5_sort_to_string::sort"], [23, 5, 1, "_CPPv433cvc5_sort_tuple_get_element_sorts8Cvc5SortP6size_t", "cvc5_sort_tuple_get_element_sorts"], [23, 6, 1, "_CPPv433cvc5_sort_tuple_get_element_sorts8Cvc5SortP6size_t", "cvc5_sort_tuple_get_element_sorts::size"], [23, 6, 1, "_CPPv433cvc5_sort_tuple_get_element_sorts8Cvc5SortP6size_t", "cvc5_sort_tuple_get_element_sorts::sort"], [23, 5, 1, "_CPPv426cvc5_sort_tuple_get_length8Cvc5Sort", "cvc5_sort_tuple_get_length"], [23, 6, 1, "_CPPv426cvc5_sort_tuple_get_length8Cvc5Sort", "cvc5_sort_tuple_get_length::sort"], [23, 5, 1, "_CPPv450cvc5_sort_uninterpreted_sort_constructor_get_arity8Cvc5Sort", "cvc5_sort_uninterpreted_sort_constructor_get_arity"], [23, 6, 1, "_CPPv450cvc5_sort_uninterpreted_sort_constructor_get_arity8Cvc5Sort", "cvc5_sort_uninterpreted_sort_constructor_get_arity::sort"], [24, 5, 1, "_CPPv420cvc5_stat_get_double8Cvc5Stat", "cvc5_stat_get_double"], [24, 6, 1, "_CPPv420cvc5_stat_get_double8Cvc5Stat", "cvc5_stat_get_double::stat"], [24, 5, 1, "_CPPv423cvc5_stat_get_histogram8Cvc5StatA_PPKcA_P8uint64_tP6size_t", "cvc5_stat_get_histogram"], [24, 6, 1, "_CPPv423cvc5_stat_get_histogram8Cvc5StatA_PPKcA_P8uint64_tP6size_t", "cvc5_stat_get_histogram::keys"], [24, 6, 1, "_CPPv423cvc5_stat_get_histogram8Cvc5StatA_PPKcA_P8uint64_tP6size_t", "cvc5_stat_get_histogram::size"], [24, 6, 1, "_CPPv423cvc5_stat_get_histogram8Cvc5StatA_PPKcA_P8uint64_tP6size_t", "cvc5_stat_get_histogram::stat"], [24, 6, 1, "_CPPv423cvc5_stat_get_histogram8Cvc5StatA_PPKcA_P8uint64_tP6size_t", "cvc5_stat_get_histogram::values"], [24, 5, 1, "_CPPv417cvc5_stat_get_int8Cvc5Stat", "cvc5_stat_get_int"], [24, 6, 1, "_CPPv417cvc5_stat_get_int8Cvc5Stat", "cvc5_stat_get_int::stat"], [24, 5, 1, "_CPPv420cvc5_stat_get_string8Cvc5Stat", "cvc5_stat_get_string"], [24, 6, 1, "_CPPv420cvc5_stat_get_string8Cvc5Stat", "cvc5_stat_get_string::stat"], [24, 5, 1, "_CPPv420cvc5_stat_is_default8Cvc5Stat", "cvc5_stat_is_default"], [24, 6, 1, "_CPPv420cvc5_stat_is_default8Cvc5Stat", "cvc5_stat_is_default::stat"], [24, 5, 1, "_CPPv419cvc5_stat_is_double8Cvc5Stat", "cvc5_stat_is_double"], [24, 6, 1, "_CPPv419cvc5_stat_is_double8Cvc5Stat", "cvc5_stat_is_double::stat"], [24, 5, 1, "_CPPv422cvc5_stat_is_histogram8Cvc5Stat", "cvc5_stat_is_histogram"], [24, 6, 1, "_CPPv422cvc5_stat_is_histogram8Cvc5Stat", "cvc5_stat_is_histogram::stat"], [24, 5, 1, "_CPPv416cvc5_stat_is_int8Cvc5Stat", "cvc5_stat_is_int"], [24, 6, 1, "_CPPv416cvc5_stat_is_int8Cvc5Stat", "cvc5_stat_is_int::stat"], [24, 5, 1, "_CPPv421cvc5_stat_is_internal8Cvc5Stat", "cvc5_stat_is_internal"], [24, 6, 1, "_CPPv421cvc5_stat_is_internal8Cvc5Stat", "cvc5_stat_is_internal::stat"], [24, 5, 1, "_CPPv419cvc5_stat_is_string8Cvc5Stat", "cvc5_stat_is_string"], [24, 6, 1, "_CPPv419cvc5_stat_is_string8Cvc5Stat", "cvc5_stat_is_string::stat"], [24, 5, 1, "_CPPv419cvc5_stat_to_string8Cvc5Stat", "cvc5_stat_to_string"], [24, 6, 1, "_CPPv419cvc5_stat_to_string8Cvc5Stat", "cvc5_stat_to_string::stat"], [11, 5, 1, "_CPPv414cvc5_synth_funP4Cvc5PKc6size_tA_K8Cvc5Term8Cvc5Sort", "cvc5_synth_fun"], [11, 6, 1, "_CPPv414cvc5_synth_funP4Cvc5PKc6size_tA_K8Cvc5Term8Cvc5Sort", "cvc5_synth_fun::bound_vars"], [11, 6, 1, "_CPPv414cvc5_synth_funP4Cvc5PKc6size_tA_K8Cvc5Term8Cvc5Sort", "cvc5_synth_fun::cvc5"], [11, 6, 1, "_CPPv414cvc5_synth_funP4Cvc5PKc6size_tA_K8Cvc5Term8Cvc5Sort", "cvc5_synth_fun::size"], [11, 6, 1, "_CPPv414cvc5_synth_funP4Cvc5PKc6size_tA_K8Cvc5Term8Cvc5Sort", "cvc5_synth_fun::sort"], [11, 6, 1, "_CPPv414cvc5_synth_funP4Cvc5PKc6size_tA_K8Cvc5Term8Cvc5Sort", "cvc5_synth_fun::symbol"], [11, 5, 1, "_CPPv427cvc5_synth_fun_with_grammarP4Cvc5PKc6size_tA_K8Cvc5Term8Cvc5Sort11Cvc5Grammar", "cvc5_synth_fun_with_grammar"], [11, 6, 1, "_CPPv427cvc5_synth_fun_with_grammarP4Cvc5PKc6size_tA_K8Cvc5Term8Cvc5Sort11Cvc5Grammar", "cvc5_synth_fun_with_grammar::bound_vars"], [11, 6, 1, "_CPPv427cvc5_synth_fun_with_grammarP4Cvc5PKc6size_tA_K8Cvc5Term8Cvc5Sort11Cvc5Grammar", "cvc5_synth_fun_with_grammar::cvc5"], [11, 6, 1, "_CPPv427cvc5_synth_fun_with_grammarP4Cvc5PKc6size_tA_K8Cvc5Term8Cvc5Sort11Cvc5Grammar", "cvc5_synth_fun_with_grammar::grammar"], [11, 6, 1, "_CPPv427cvc5_synth_fun_with_grammarP4Cvc5PKc6size_tA_K8Cvc5Term8Cvc5Sort11Cvc5Grammar", "cvc5_synth_fun_with_grammar::size"], [11, 6, 1, "_CPPv427cvc5_synth_fun_with_grammarP4Cvc5PKc6size_tA_K8Cvc5Term8Cvc5Sort11Cvc5Grammar", "cvc5_synth_fun_with_grammar::sort"], [11, 6, 1, "_CPPv427cvc5_synth_fun_with_grammarP4Cvc5PKc6size_tA_K8Cvc5Term8Cvc5Sort11Cvc5Grammar", "cvc5_synth_fun_with_grammar::symbol"], [27, 5, 1, "_CPPv417cvc5_term_compare8Cvc5Term8Cvc5Term", "cvc5_term_compare"], [27, 6, 1, "_CPPv417cvc5_term_compare8Cvc5Term8Cvc5Term", "cvc5_term_compare::a"], [27, 6, 1, "_CPPv417cvc5_term_compare8Cvc5Term8Cvc5Term", "cvc5_term_compare::b"], [27, 5, 1, "_CPPv414cvc5_term_copy8Cvc5Term", "cvc5_term_copy"], [27, 6, 1, "_CPPv414cvc5_term_copy8Cvc5Term", "cvc5_term_copy::term"], [27, 5, 1, "_CPPv427cvc5_term_get_boolean_value8Cvc5Term", "cvc5_term_get_boolean_value"], [27, 6, 1, "_CPPv427cvc5_term_get_boolean_value8Cvc5Term", "cvc5_term_get_boolean_value::term"], [27, 5, 1, "_CPPv422cvc5_term_get_bv_value8Cvc5Term8uint32_t", "cvc5_term_get_bv_value"], [27, 6, 1, "_CPPv422cvc5_term_get_bv_value8Cvc5Term8uint32_t", "cvc5_term_get_bv_value::base"], [27, 6, 1, "_CPPv422cvc5_term_get_bv_value8Cvc5Term8uint32_t", "cvc5_term_get_bv_value::term"], [27, 5, 1, "_CPPv436cvc5_term_get_cardinality_constraint8Cvc5TermP8Cvc5SortP8uint32_t", "cvc5_term_get_cardinality_constraint"], [27, 6, 1, "_CPPv436cvc5_term_get_cardinality_constraint8Cvc5TermP8Cvc5SortP8uint32_t", "cvc5_term_get_cardinality_constraint::sort"], [27, 6, 1, "_CPPv436cvc5_term_get_cardinality_constraint8Cvc5TermP8Cvc5SortP8uint32_t", "cvc5_term_get_cardinality_constraint::term"], [27, 6, 1, "_CPPv436cvc5_term_get_cardinality_constraint8Cvc5TermP8Cvc5SortP8uint32_t", "cvc5_term_get_cardinality_constraint::upper"], [27, 5, 1, "_CPPv419cvc5_term_get_child8Cvc5Term6size_t", "cvc5_term_get_child"], [27, 6, 1, "_CPPv419cvc5_term_get_child8Cvc5Term6size_t", "cvc5_term_get_child::index"], [27, 6, 1, "_CPPv419cvc5_term_get_child8Cvc5Term6size_t", "cvc5_term_get_child::term"], [27, 5, 1, "_CPPv430cvc5_term_get_const_array_base8Cvc5Term", "cvc5_term_get_const_array_base"], [27, 6, 1, "_CPPv430cvc5_term_get_const_array_base8Cvc5Term", "cvc5_term_get_const_array_base::term"], [27, 5, 1, "_CPPv422cvc5_term_get_ff_value8Cvc5Term", "cvc5_term_get_ff_value"], [27, 6, 1, "_CPPv422cvc5_term_get_ff_value8Cvc5Term", "cvc5_term_get_ff_value::term"], [27, 5, 1, "_CPPv422cvc5_term_get_fp_value8Cvc5TermP8uint32_tP8uint32_tP8Cvc5Term", "cvc5_term_get_fp_value"], [27, 6, 1, "_CPPv422cvc5_term_get_fp_value8Cvc5TermP8uint32_tP8uint32_tP8Cvc5Term", "cvc5_term_get_fp_value::ew"], [27, 6, 1, "_CPPv422cvc5_term_get_fp_value8Cvc5TermP8uint32_tP8uint32_tP8Cvc5Term", "cvc5_term_get_fp_value::sw"], [27, 6, 1, "_CPPv422cvc5_term_get_fp_value8Cvc5TermP8uint32_tP8uint32_tP8Cvc5Term", "cvc5_term_get_fp_value::term"], [27, 6, 1, "_CPPv422cvc5_term_get_fp_value8Cvc5TermP8uint32_tP8uint32_tP8Cvc5Term", "cvc5_term_get_fp_value::val"], [27, 5, 1, "_CPPv416cvc5_term_get_id8Cvc5Term", "cvc5_term_get_id"], [27, 6, 1, "_CPPv416cvc5_term_get_id8Cvc5Term", "cvc5_term_get_id::term"], [27, 5, 1, "_CPPv425cvc5_term_get_int32_value8Cvc5Term", "cvc5_term_get_int32_value"], [27, 6, 1, "_CPPv425cvc5_term_get_int32_value8Cvc5Term", "cvc5_term_get_int32_value::term"], [27, 5, 1, "_CPPv425cvc5_term_get_int64_value8Cvc5Term", "cvc5_term_get_int64_value"], [27, 6, 1, "_CPPv425cvc5_term_get_int64_value8Cvc5Term", "cvc5_term_get_int64_value::term"], [27, 5, 1, "_CPPv427cvc5_term_get_integer_value8Cvc5Term", "cvc5_term_get_integer_value"], [27, 6, 1, "_CPPv427cvc5_term_get_integer_value8Cvc5Term", "cvc5_term_get_integer_value::term"], [27, 5, 1, "_CPPv418cvc5_term_get_kind8Cvc5Term", "cvc5_term_get_kind"], [27, 6, 1, "_CPPv418cvc5_term_get_kind8Cvc5Term", "cvc5_term_get_kind::term"], [27, 5, 1, "_CPPv426cvc5_term_get_num_children8Cvc5Term", "cvc5_term_get_num_children"], [27, 6, 1, "_CPPv426cvc5_term_get_num_children8Cvc5Term", "cvc5_term_get_num_children::term"], [27, 5, 1, "_CPPv416cvc5_term_get_op8Cvc5Term", "cvc5_term_get_op"], [27, 6, 1, "_CPPv416cvc5_term_get_op8Cvc5Term", "cvc5_term_get_op::term"], [27, 5, 1, "_CPPv426cvc5_term_get_real32_value8Cvc5TermP7int32_tP8uint32_t", "cvc5_term_get_real32_value"], [27, 6, 1, "_CPPv426cvc5_term_get_real32_value8Cvc5TermP7int32_tP8uint32_t", "cvc5_term_get_real32_value::den"], [27, 6, 1, "_CPPv426cvc5_term_get_real32_value8Cvc5TermP7int32_tP8uint32_t", "cvc5_term_get_real32_value::num"], [27, 6, 1, "_CPPv426cvc5_term_get_real32_value8Cvc5TermP7int32_tP8uint32_t", "cvc5_term_get_real32_value::term"], [27, 5, 1, "_CPPv426cvc5_term_get_real64_value8Cvc5TermP7int64_tP8uint64_t", "cvc5_term_get_real64_value"], [27, 6, 1, "_CPPv426cvc5_term_get_real64_value8Cvc5TermP7int64_tP8uint64_t", "cvc5_term_get_real64_value::den"], [27, 6, 1, "_CPPv426cvc5_term_get_real64_value8Cvc5TermP7int64_tP8uint64_t", "cvc5_term_get_real64_value::num"], [27, 6, 1, "_CPPv426cvc5_term_get_real64_value8Cvc5TermP7int64_tP8uint64_t", "cvc5_term_get_real64_value::term"], [27, 5, 1, "_CPPv455cvc5_term_get_real_algebraic_number_defining_polynomial8Cvc5Term8Cvc5Term", "cvc5_term_get_real_algebraic_number_defining_polynomial"], [27, 6, 1, "_CPPv455cvc5_term_get_real_algebraic_number_defining_polynomial8Cvc5Term8Cvc5Term", "cvc5_term_get_real_algebraic_number_defining_polynomial::term"], [27, 6, 1, "_CPPv455cvc5_term_get_real_algebraic_number_defining_polynomial8Cvc5Term8Cvc5Term", "cvc5_term_get_real_algebraic_number_defining_polynomial::v"], [27, 5, 1, "_CPPv447cvc5_term_get_real_algebraic_number_lower_bound8Cvc5Term", "cvc5_term_get_real_algebraic_number_lower_bound"], [27, 6, 1, "_CPPv447cvc5_term_get_real_algebraic_number_lower_bound8Cvc5Term", "cvc5_term_get_real_algebraic_number_lower_bound::term"], [27, 5, 1, "_CPPv447cvc5_term_get_real_algebraic_number_upper_bound8Cvc5Term", "cvc5_term_get_real_algebraic_number_upper_bound"], [27, 6, 1, "_CPPv447cvc5_term_get_real_algebraic_number_upper_bound8Cvc5Term", "cvc5_term_get_real_algebraic_number_upper_bound::term"], [27, 5, 1, "_CPPv440cvc5_term_get_real_or_integer_value_sign8Cvc5Term", "cvc5_term_get_real_or_integer_value_sign"], [27, 6, 1, "_CPPv440cvc5_term_get_real_or_integer_value_sign8Cvc5Term", "cvc5_term_get_real_or_integer_value_sign::term"], [27, 5, 1, "_CPPv424cvc5_term_get_real_value8Cvc5Term", "cvc5_term_get_real_value"], [27, 6, 1, "_CPPv424cvc5_term_get_real_value8Cvc5Term", "cvc5_term_get_real_value::term"], [27, 5, 1, "_CPPv422cvc5_term_get_rm_value8Cvc5Term", "cvc5_term_get_rm_value"], [27, 6, 1, "_CPPv422cvc5_term_get_rm_value8Cvc5Term", "cvc5_term_get_rm_value::term"], [27, 5, 1, "_CPPv428cvc5_term_get_sequence_value8Cvc5TermP6size_t", "cvc5_term_get_sequence_value"], [27, 6, 1, "_CPPv428cvc5_term_get_sequence_value8Cvc5TermP6size_t", "cvc5_term_get_sequence_value::size"], [27, 6, 1, "_CPPv428cvc5_term_get_sequence_value8Cvc5TermP6size_t", "cvc5_term_get_sequence_value::term"], [27, 5, 1, "_CPPv423cvc5_term_get_set_value8Cvc5TermP6size_t", "cvc5_term_get_set_value"], [27, 6, 1, "_CPPv423cvc5_term_get_set_value8Cvc5TermP6size_t", "cvc5_term_get_set_value::size"], [27, 6, 1, "_CPPv423cvc5_term_get_set_value8Cvc5TermP6size_t", "cvc5_term_get_set_value::term"], [27, 5, 1, "_CPPv423cvc5_term_get_skolem_id8Cvc5Term", "cvc5_term_get_skolem_id"], [27, 6, 1, "_CPPv423cvc5_term_get_skolem_id8Cvc5Term", "cvc5_term_get_skolem_id::term"], [27, 5, 1, "_CPPv428cvc5_term_get_skolem_indices8Cvc5TermP6size_t", "cvc5_term_get_skolem_indices"], [27, 6, 1, "_CPPv428cvc5_term_get_skolem_indices8Cvc5TermP6size_t", "cvc5_term_get_skolem_indices::size"], [27, 6, 1, "_CPPv428cvc5_term_get_skolem_indices8Cvc5TermP6size_t", "cvc5_term_get_skolem_indices::term"], [27, 5, 1, "_CPPv418cvc5_term_get_sort8Cvc5Term", "cvc5_term_get_sort"], [27, 6, 1, "_CPPv418cvc5_term_get_sort8Cvc5Term", "cvc5_term_get_sort::term"], [27, 5, 1, "_CPPv426cvc5_term_get_string_value8Cvc5Term", "cvc5_term_get_string_value"], [27, 6, 1, "_CPPv426cvc5_term_get_string_value8Cvc5Term", "cvc5_term_get_string_value::term"], [27, 5, 1, "_CPPv420cvc5_term_get_symbol8Cvc5Term", "cvc5_term_get_symbol"], [27, 6, 1, "_CPPv420cvc5_term_get_symbol8Cvc5Term", "cvc5_term_get_symbol::term"], [27, 5, 1, "_CPPv425cvc5_term_get_tuple_value8Cvc5TermP6size_t", "cvc5_term_get_tuple_value"], [27, 6, 1, "_CPPv425cvc5_term_get_tuple_value8Cvc5TermP6size_t", "cvc5_term_get_tuple_value::size"], [27, 6, 1, "_CPPv425cvc5_term_get_tuple_value8Cvc5TermP6size_t", "cvc5_term_get_tuple_value::term"], [27, 5, 1, "_CPPv426cvc5_term_get_uint32_value8Cvc5Term", "cvc5_term_get_uint32_value"], [27, 6, 1, "_CPPv426cvc5_term_get_uint32_value8Cvc5Term", "cvc5_term_get_uint32_value::term"], [27, 5, 1, "_CPPv426cvc5_term_get_uint64_value8Cvc5Term", "cvc5_term_get_uint64_value"], [27, 6, 1, "_CPPv426cvc5_term_get_uint64_value8Cvc5Term", "cvc5_term_get_uint64_value::term"], [27, 5, 1, "_CPPv438cvc5_term_get_uninterpreted_sort_value8Cvc5Term", "cvc5_term_get_uninterpreted_sort_value"], [27, 6, 1, "_CPPv438cvc5_term_get_uninterpreted_sort_value8Cvc5Term", "cvc5_term_get_uninterpreted_sort_value::term"], [27, 5, 1, "_CPPv416cvc5_term_has_op8Cvc5Term", "cvc5_term_has_op"], [27, 6, 1, "_CPPv416cvc5_term_has_op8Cvc5Term", "cvc5_term_has_op::term"], [27, 5, 1, "_CPPv420cvc5_term_has_symbol8Cvc5Term", "cvc5_term_has_symbol"], [27, 6, 1, "_CPPv420cvc5_term_has_symbol8Cvc5Term", "cvc5_term_has_symbol::term"], [27, 5, 1, "_CPPv414cvc5_term_hash8Cvc5Term", "cvc5_term_hash"], [27, 6, 1, "_CPPv414cvc5_term_hash8Cvc5Term", "cvc5_term_hash::term"], [27, 5, 1, "_CPPv426cvc5_term_is_boolean_value8Cvc5Term", "cvc5_term_is_boolean_value"], [27, 6, 1, "_CPPv426cvc5_term_is_boolean_value8Cvc5Term", "cvc5_term_is_boolean_value::term"], [27, 5, 1, "_CPPv421cvc5_term_is_bv_value8Cvc5Term", "cvc5_term_is_bv_value"], [27, 6, 1, "_CPPv421cvc5_term_is_bv_value8Cvc5Term", "cvc5_term_is_bv_value::term"], [27, 5, 1, "_CPPv435cvc5_term_is_cardinality_constraint8Cvc5Term", "cvc5_term_is_cardinality_constraint"], [27, 6, 1, "_CPPv435cvc5_term_is_cardinality_constraint8Cvc5Term", "cvc5_term_is_cardinality_constraint::term"], [27, 5, 1, "_CPPv424cvc5_term_is_const_array8Cvc5Term", "cvc5_term_is_const_array"], [27, 6, 1, "_CPPv424cvc5_term_is_const_array8Cvc5Term", "cvc5_term_is_const_array::term"], [27, 5, 1, "_CPPv421cvc5_term_is_disequal8Cvc5Term8Cvc5Term", "cvc5_term_is_disequal"], [27, 6, 1, "_CPPv421cvc5_term_is_disequal8Cvc5Term8Cvc5Term", "cvc5_term_is_disequal::a"], [27, 6, 1, "_CPPv421cvc5_term_is_disequal8Cvc5Term8Cvc5Term", "cvc5_term_is_disequal::b"], [27, 5, 1, "_CPPv418cvc5_term_is_equal8Cvc5Term8Cvc5Term", "cvc5_term_is_equal"], [27, 6, 1, "_CPPv418cvc5_term_is_equal8Cvc5Term8Cvc5Term", "cvc5_term_is_equal::a"], [27, 6, 1, "_CPPv418cvc5_term_is_equal8Cvc5Term8Cvc5Term", "cvc5_term_is_equal::b"], [27, 5, 1, "_CPPv421cvc5_term_is_ff_value8Cvc5Term", "cvc5_term_is_ff_value"], [27, 6, 1, "_CPPv421cvc5_term_is_ff_value8Cvc5Term", "cvc5_term_is_ff_value::term"], [27, 5, 1, "_CPPv419cvc5_term_is_fp_nan8Cvc5Term", "cvc5_term_is_fp_nan"], [27, 6, 1, "_CPPv419cvc5_term_is_fp_nan8Cvc5Term", "cvc5_term_is_fp_nan::term"], [27, 5, 1, "_CPPv423cvc5_term_is_fp_neg_inf8Cvc5Term", "cvc5_term_is_fp_neg_inf"], [27, 6, 1, "_CPPv423cvc5_term_is_fp_neg_inf8Cvc5Term", "cvc5_term_is_fp_neg_inf::term"], [27, 5, 1, "_CPPv424cvc5_term_is_fp_neg_zero8Cvc5Term", "cvc5_term_is_fp_neg_zero"], [27, 6, 1, "_CPPv424cvc5_term_is_fp_neg_zero8Cvc5Term", "cvc5_term_is_fp_neg_zero::term"], [27, 5, 1, "_CPPv423cvc5_term_is_fp_pos_inf8Cvc5Term", "cvc5_term_is_fp_pos_inf"], [27, 6, 1, "_CPPv423cvc5_term_is_fp_pos_inf8Cvc5Term", "cvc5_term_is_fp_pos_inf::term"], [27, 5, 1, "_CPPv424cvc5_term_is_fp_pos_zero8Cvc5Term", "cvc5_term_is_fp_pos_zero"], [27, 6, 1, "_CPPv424cvc5_term_is_fp_pos_zero8Cvc5Term", "cvc5_term_is_fp_pos_zero::term"], [27, 5, 1, "_CPPv421cvc5_term_is_fp_value8Cvc5Term", "cvc5_term_is_fp_value"], [27, 6, 1, "_CPPv421cvc5_term_is_fp_value8Cvc5Term", "cvc5_term_is_fp_value::term"], [27, 5, 1, "_CPPv424cvc5_term_is_int32_value8Cvc5Term", "cvc5_term_is_int32_value"], [27, 6, 1, "_CPPv424cvc5_term_is_int32_value8Cvc5Term", "cvc5_term_is_int32_value::term"], [27, 5, 1, "_CPPv424cvc5_term_is_int64_value8Cvc5Term", "cvc5_term_is_int64_value"], [27, 6, 1, "_CPPv424cvc5_term_is_int64_value8Cvc5Term", "cvc5_term_is_int64_value::term"], [27, 5, 1, "_CPPv426cvc5_term_is_integer_value8Cvc5Term", "cvc5_term_is_integer_value"], [27, 6, 1, "_CPPv426cvc5_term_is_integer_value8Cvc5Term", "cvc5_term_is_integer_value::term"], [27, 5, 1, "_CPPv425cvc5_term_is_real32_value8Cvc5Term", "cvc5_term_is_real32_value"], [27, 6, 1, "_CPPv425cvc5_term_is_real32_value8Cvc5Term", "cvc5_term_is_real32_value::term"], [27, 5, 1, "_CPPv425cvc5_term_is_real64_value8Cvc5Term", "cvc5_term_is_real64_value"], [27, 6, 1, "_CPPv425cvc5_term_is_real64_value8Cvc5Term", "cvc5_term_is_real64_value::term"], [27, 5, 1, "_CPPv434cvc5_term_is_real_algebraic_number8Cvc5Term", "cvc5_term_is_real_algebraic_number"], [27, 6, 1, "_CPPv434cvc5_term_is_real_algebraic_number8Cvc5Term", "cvc5_term_is_real_algebraic_number::term"], [27, 5, 1, "_CPPv423cvc5_term_is_real_value8Cvc5Term", "cvc5_term_is_real_value"], [27, 6, 1, "_CPPv423cvc5_term_is_real_value8Cvc5Term", "cvc5_term_is_real_value::term"], [27, 5, 1, "_CPPv421cvc5_term_is_rm_value8Cvc5Term", "cvc5_term_is_rm_value"], [27, 6, 1, "_CPPv421cvc5_term_is_rm_value8Cvc5Term", "cvc5_term_is_rm_value::term"], [27, 5, 1, "_CPPv427cvc5_term_is_sequence_value8Cvc5Term", "cvc5_term_is_sequence_value"], [27, 6, 1, "_CPPv427cvc5_term_is_sequence_value8Cvc5Term", "cvc5_term_is_sequence_value::term"], [27, 5, 1, "_CPPv422cvc5_term_is_set_value8Cvc5Term", "cvc5_term_is_set_value"], [27, 6, 1, "_CPPv422cvc5_term_is_set_value8Cvc5Term", "cvc5_term_is_set_value::term"], [27, 5, 1, "_CPPv419cvc5_term_is_skolem8Cvc5Term", "cvc5_term_is_skolem"], [27, 6, 1, "_CPPv419cvc5_term_is_skolem8Cvc5Term", "cvc5_term_is_skolem::term"], [27, 5, 1, "_CPPv425cvc5_term_is_string_value8Cvc5Term", "cvc5_term_is_string_value"], [27, 6, 1, "_CPPv425cvc5_term_is_string_value8Cvc5Term", "cvc5_term_is_string_value::term"], [27, 5, 1, "_CPPv424cvc5_term_is_tuple_value8Cvc5Term", "cvc5_term_is_tuple_value"], [27, 6, 1, "_CPPv424cvc5_term_is_tuple_value8Cvc5Term", "cvc5_term_is_tuple_value::term"], [27, 5, 1, "_CPPv425cvc5_term_is_uint32_value8Cvc5Term", "cvc5_term_is_uint32_value"], [27, 6, 1, "_CPPv425cvc5_term_is_uint32_value8Cvc5Term", "cvc5_term_is_uint32_value::term"], [27, 5, 1, "_CPPv425cvc5_term_is_uint64_value8Cvc5Term", "cvc5_term_is_uint64_value"], [27, 6, 1, "_CPPv425cvc5_term_is_uint64_value8Cvc5Term", "cvc5_term_is_uint64_value::term"], [27, 5, 1, "_CPPv437cvc5_term_is_uninterpreted_sort_value8Cvc5Term", "cvc5_term_is_uninterpreted_sort_value"], [27, 6, 1, "_CPPv437cvc5_term_is_uninterpreted_sort_value8Cvc5Term", "cvc5_term_is_uninterpreted_sort_value::term"], [27, 5, 1, "_CPPv417cvc5_term_release8Cvc5Term", "cvc5_term_release"], [27, 6, 1, "_CPPv417cvc5_term_release8Cvc5Term", "cvc5_term_release::term"], [27, 5, 1, "_CPPv425cvc5_term_substitute_term8Cvc5Term8Cvc5Term8Cvc5Term", "cvc5_term_substitute_term"], [27, 6, 1, "_CPPv425cvc5_term_substitute_term8Cvc5Term8Cvc5Term8Cvc5Term", "cvc5_term_substitute_term::replacement"], [27, 6, 1, "_CPPv425cvc5_term_substitute_term8Cvc5Term8Cvc5Term8Cvc5Term", "cvc5_term_substitute_term::t"], [27, 6, 1, "_CPPv425cvc5_term_substitute_term8Cvc5Term8Cvc5Term8Cvc5Term", "cvc5_term_substitute_term::term"], [27, 5, 1, "_CPPv426cvc5_term_substitute_terms8Cvc5Term6size_tA_K8Cvc5TermA_K8Cvc5Term", "cvc5_term_substitute_terms"], [27, 6, 1, "_CPPv426cvc5_term_substitute_terms8Cvc5Term6size_tA_K8Cvc5TermA_K8Cvc5Term", "cvc5_term_substitute_terms::replacements"], [27, 6, 1, "_CPPv426cvc5_term_substitute_terms8Cvc5Term6size_tA_K8Cvc5TermA_K8Cvc5Term", "cvc5_term_substitute_terms::size"], [27, 6, 1, "_CPPv426cvc5_term_substitute_terms8Cvc5Term6size_tA_K8Cvc5TermA_K8Cvc5Term", "cvc5_term_substitute_terms::term"], [27, 6, 1, "_CPPv426cvc5_term_substitute_terms8Cvc5Term6size_tA_K8Cvc5TermA_K8Cvc5Term", "cvc5_term_substitute_terms::terms"], [27, 5, 1, "_CPPv419cvc5_term_to_string8Cvc5Term", "cvc5_term_to_string"], [27, 6, 1, "_CPPv419cvc5_term_to_string8Cvc5Term", "cvc5_term_to_string::term"], [6, 5, 1, "_CPPv434cvc5_unknown_explanation_to_string22Cvc5UnknownExplanation", "cvc5_unknown_explanation_to_string"], [6, 6, 1, "_CPPv434cvc5_unknown_explanation_to_string22Cvc5UnknownExplanation", "cvc5_unknown_explanation_to_string::exp"], [51, 3, 1, "_CPPv4IENSt4hashIN4cvc54KindEEE", "std::hash<cvc5::Kind>"], [51, 5, 1, "_CPPv4NKSt4hashIN4cvc54KindEEclEN4cvc54KindE", "std::hash<cvc5::Kind>::operator()"], [51, 6, 1, "_CPPv4NKSt4hashIN4cvc54KindEEclEN4cvc54KindE", "std::hash<cvc5::Kind>::operator()::kind"], [38, 3, 1, "_CPPv4IENSt4hashIN4cvc52OpEEE", "std::hash<cvc5::Op>"], [38, 5, 1, "_CPPv4NKSt4hashIN4cvc52OpEEclERKN4cvc52OpE", "std::hash<cvc5::Op>::operator()"], [38, 6, 1, "_CPPv4NKSt4hashIN4cvc52OpEEclERKN4cvc52OpE", "std::hash<cvc5::Op>::operator()::op"], [41, 3, 1, "_CPPv4IENSt4hashIN4cvc55ProofEEE", "std::hash<cvc5::Proof>"], [41, 5, 1, "_CPPv4NKSt4hashIN4cvc55ProofEEclERKN4cvc55ProofE", "std::hash<cvc5::Proof>::operator()"], [41, 6, 1, "_CPPv4NKSt4hashIN4cvc55ProofEEclERKN4cvc55ProofE", "std::hash<cvc5::Proof>::operator()::p"], [53, 3, 1, "_CPPv4IENSt4hashIN4cvc516ProofRewriteRuleEEE", "std::hash<cvc5::ProofRewriteRule>"], [53, 5, 1, "_CPPv4NKSt4hashIN4cvc516ProofRewriteRuleEEclEN4cvc516ProofRewriteRuleE", "std::hash<cvc5::ProofRewriteRule>::operator()"], [53, 6, 1, "_CPPv4NKSt4hashIN4cvc516ProofRewriteRuleEEclEN4cvc516ProofRewriteRuleE", "std::hash<cvc5::ProofRewriteRule>::operator()::rule"], [53, 3, 1, "_CPPv4IENSt4hashIN4cvc59ProofRuleEEE", "std::hash<cvc5::ProofRule>"], [53, 5, 1, "_CPPv4NKSt4hashIN4cvc59ProofRuleEEclEN4cvc59ProofRuleE", "std::hash<cvc5::ProofRule>::operator()"], [53, 6, 1, "_CPPv4NKSt4hashIN4cvc59ProofRuleEEclEN4cvc59ProofRuleE", "std::hash<cvc5::ProofRule>::operator()::rule"], [44, 3, 1, "_CPPv4IENSt4hashIN4cvc54SortEEE", "std::hash<cvc5::Sort>"], [44, 5, 1, "_CPPv4NKSt4hashIN4cvc54SortEEclERKN4cvc54SortE", "std::hash<cvc5::Sort>::operator()"], [44, 6, 1, "_CPPv4NKSt4hashIN4cvc54SortEEclERKN4cvc54SortE", "std::hash<cvc5::Sort>::operator()::s"], [55, 3, 1, "_CPPv4IENSt4hashIN4cvc58SortKindEEE", "std::hash<cvc5::SortKind>"], [55, 5, 1, "_CPPv4NKSt4hashIN4cvc58SortKindEEclEN4cvc58SortKindE", "std::hash<cvc5::SortKind>::operator()"], [55, 6, 1, "_CPPv4NKSt4hashIN4cvc58SortKindEEclEN4cvc58SortKindE", "std::hash<cvc5::SortKind>::operator()::kind"], [48, 3, 1, "_CPPv4IENSt4hashIN4cvc54TermEEE", "std::hash<cvc5::Term>"], [48, 5, 1, "_CPPv4NKSt4hashIN4cvc54TermEEclERKN4cvc54TermE", "std::hash<cvc5::Term>::operator()"], [48, 6, 1, "_CPPv4NKSt4hashIN4cvc54TermEEclERKN4cvc54TermE", "std::hash<cvc5::Term>::operator()::t"], [51, 5, 1, "_CPPv4NSt9to_stringEN4cvc54KindE", "std::to_string"], [52, 5, 1, "_CPPv4NSt9to_stringEN4cvc55modes11ProofFormatE", "std::to_string"], [52, 5, 1, "_CPPv4NSt9to_stringEN4cvc55modes14LearnedLitTypeE", "std::to_string"], [52, 5, 1, "_CPPv4NSt9to_stringEN4cvc55modes14ProofComponentE", "std::to_string"], [52, 5, 1, "_CPPv4NSt9to_stringEN4cvc55modes15BlockModelsModeE", "std::to_string"], [52, 5, 1, "_CPPv4NSt9to_stringEN4cvc55modes15FindSynthTargetE", "std::to_string"], [53, 5, 1, "_CPPv4NSt9to_stringEN4cvc516ProofRewriteRuleE", "std::to_string"], [53, 5, 1, "_CPPv4NSt9to_stringEN4cvc59ProofRuleE", "std::to_string"], [54, 5, 1, "_CPPv4NSt9to_stringEN4cvc512RoundingModeE", "std::to_string"], [55, 5, 1, "_CPPv4NSt9to_stringEN4cvc58SortKindE", "std::to_string"], [56, 5, 1, "_CPPv4NSt9to_stringEN4cvc518UnknownExplanationE", "std::to_string"], [56, 6, 1, "_CPPv4NSt9to_stringEN4cvc518UnknownExplanationE", "std::to_string::exp"], [52, 6, 1, "_CPPv4NSt9to_stringEN4cvc55modes11ProofFormatE", "std::to_string::format"], [55, 6, 1, "_CPPv4NSt9to_stringEN4cvc58SortKindE", "std::to_string::k"], [51, 6, 1, "_CPPv4NSt9to_stringEN4cvc54KindE", "std::to_string::kind"], [52, 6, 1, "_CPPv4NSt9to_stringEN4cvc55modes15BlockModelsModeE", "std::to_string::mode"], [52, 6, 1, "_CPPv4NSt9to_stringEN4cvc55modes14ProofComponentE", "std::to_string::pc"], [54, 6, 1, "_CPPv4NSt9to_stringEN4cvc512RoundingModeE", "std::to_string::rm"], [53, 6, 1, "_CPPv4NSt9to_stringEN4cvc516ProofRewriteRuleE", "std::to_string::rule"], [53, 6, 1, "_CPPv4NSt9to_stringEN4cvc59ProofRuleE", "std::to_string::rule"], [52, 6, 1, "_CPPv4NSt9to_stringEN4cvc55modes15FindSynthTargetE", "std::to_string::target"], [52, 6, 1, "_CPPv4NSt9to_stringEN4cvc55modes14LearnedLitTypeE", "std::to_string::type"]], "cvc5": [[70, 8, 1, "", "BlockModelsMode"], [61, 8, 1, "", "Command"], [62, 8, 1, "", "Datatype"], [63, 8, 1, "", "DatatypeConstructor"], [64, 8, 1, "", "DatatypeConstructorDecl"], [65, 8, 1, "", "DatatypeDecl"], [66, 8, 1, "", "DatatypeSelector"], [70, 8, 1, "", "FindSynthTarget"], [67, 8, 1, "", "Grammar"], [68, 8, 1, "", "InputParser"], [69, 8, 1, "", "Kind"], [70, 8, 1, "", "LearnedLitType"], [71, 8, 1, "", "Op"], [73, 8, 1, "", "Proof"], [70, 8, 1, "", "ProofComponent"], [70, 8, 1, "", "ProofFormat"], [74, 8, 1, "", "ProofRewriteRule"], [74, 8, 1, "", "ProofRule"], [77, 8, 1, "", "Result"], [78, 8, 1, "", "RoundingMode"], [79, 8, 1, "", "Solver"], [80, 8, 1, "", "Sort"], [81, 8, 1, "", "SortKind"], [82, 8, 1, "", "Statistics"], [83, 8, 1, "", "SymbolManager"], [84, 8, 1, "", "SynthResult"], [85, 8, 1, "", "Term"], [86, 8, 1, "", "TermManager"], [87, 8, 1, "", "UnknownExplanation"]], "cvc5.BlockModelsMode": [[70, 9, 1, "", "LITERALS"], [70, 9, 1, "", "VALUES"]], "cvc5.Command": [[61, 10, 1, "", "getCommandName"], [61, 10, 1, "", "invoke"], [61, 10, 1, "", "isNull"], [61, 10, 1, "", "toString"]], "cvc5.Datatype": [[62, 10, 1, "", "__getitem__"], [62, 10, 1, "", "__iter__"], [62, 10, 1, "", "getConstructor"], [62, 10, 1, "", "getName"], [62, 10, 1, "", "getNumConstructors"], [62, 10, 1, "", "getParameters"], [62, 10, 1, "", "getSelector"], [62, 10, 1, "", "isCodatatype"], [62, 10, 1, "", "isFinite"], [62, 10, 1, "", "isNull"], [62, 10, 1, "", "isParametric"], [62, 10, 1, "", "isRecord"], [62, 10, 1, "", "isTuple"], [62, 10, 1, "", "isWellFounded"]], "cvc5.DatatypeConstructor": [[63, 10, 1, "", "__getitem__"], [63, 10, 1, "", "__iter__"], [63, 10, 1, "", "getInstantiatedTerm"], [63, 10, 1, "", "getName"], [63, 10, 1, "", "getNumSelectors"], [63, 10, 1, "", "getSelector"], [63, 10, 1, "", "getTerm"], [63, 10, 1, "", "getTesterTerm"], [63, 10, 1, "", "isNull"]], "cvc5.DatatypeConstructorDecl": [[64, 10, 1, "", "addSelector"], [64, 10, 1, "", "addSelectorSelf"], [64, 10, 1, "", "addSelectorUnresolved"], [64, 10, 1, "", "isNull"]], "cvc5.DatatypeDecl": [[65, 10, 1, "", "addConstructor"], [65, 10, 1, "", "getName"], [65, 10, 1, "", "getNumConstructors"], [65, 10, 1, "", "isNull"], [65, 10, 1, "", "isParametric"]], "cvc5.DatatypeSelector": [[66, 10, 1, "", "getCodomainSort"], [66, 10, 1, "", "getName"], [66, 10, 1, "", "getTerm"], [66, 10, 1, "", "getUpdaterTerm"], [66, 10, 1, "", "isNull"]], "cvc5.FindSynthTarget": [[70, 9, 1, "", "ENUM"], [70, 9, 1, "", "QUERY"], [70, 9, 1, "", "REWRITE"], [70, 9, 1, "", "REWRITE_INPUT"], [70, 9, 1, "", "REWRITE_UNSOUND"]], "cvc5.Grammar": [[67, 10, 1, "", "addAnyConstant"], [67, 10, 1, "", "addAnyVariable"], [67, 10, 1, "", "addRule"], [67, 10, 1, "", "addRules"], [67, 10, 1, "", "isNull"]], "cvc5.InputParser": [[68, 10, 1, "", "appendIncrementalStringInput"], [68, 10, 1, "", "done"], [68, 10, 1, "", "getSolver"], [68, 10, 1, "", "getSymbolManager"], [68, 10, 1, "", "nextCommand"], [68, 10, 1, "", "nextTerm"], [68, 10, 1, "", "setFileInput"], [68, 10, 1, "", "setIncrementalStringInput"], [68, 10, 1, "", "setStringInput"]], "cvc5.Kind": [[69, 9, 1, "", "ABS"], [69, 9, 1, "", "ADD"], [69, 9, 1, "", "AND"], [69, 9, 1, "", "APPLY_CONSTRUCTOR"], [69, 9, 1, "", "APPLY_SELECTOR"], [69, 9, 1, "", "APPLY_TESTER"], [69, 9, 1, "", "APPLY_UF"], [69, 9, 1, "", "APPLY_UPDATER"], [69, 9, 1, "", "ARCCOSECANT"], [69, 9, 1, "", "ARCCOSINE"], [69, 9, 1, "", "ARCCOTANGENT"], [69, 9, 1, "", "ARCSECANT"], [69, 9, 1, "", "ARCSINE"], [69, 9, 1, "", "ARCTANGENT"], [69, 9, 1, "", "BAG_CARD"], [69, 9, 1, "", "BAG_CHOOSE"], [69, 9, 1, "", "BAG_COUNT"], [69, 9, 1, "", "BAG_DIFFERENCE_REMOVE"], [69, 9, 1, "", "BAG_DIFFERENCE_SUBTRACT"], [69, 9, 1, "", "BAG_EMPTY"], [69, 9, 1, "", "BAG_FILTER"], [69, 9, 1, "", "BAG_FOLD"], [69, 9, 1, "", "BAG_INTER_MIN"], [69, 9, 1, "", "BAG_MAKE"], [69, 9, 1, "", "BAG_MAP"], [69, 9, 1, "", "BAG_MEMBER"], [69, 9, 1, "", "BAG_PARTITION"], [69, 9, 1, "", "BAG_SETOF"], [69, 9, 1, "", "BAG_SUBBAG"], [69, 9, 1, "", "BAG_UNION_DISJOINT"], [69, 9, 1, "", "BAG_UNION_MAX"], [69, 9, 1, "", "BITVECTOR_ADD"], [69, 9, 1, "", "BITVECTOR_AND"], [69, 9, 1, "", "BITVECTOR_ASHR"], [69, 9, 1, "", "BITVECTOR_BIT"], [69, 9, 1, "", "BITVECTOR_COMP"], [69, 9, 1, "", "BITVECTOR_CONCAT"], [69, 9, 1, "", "BITVECTOR_EXTRACT"], [69, 9, 1, "", "BITVECTOR_FROM_BOOLS"], [69, 9, 1, "", "BITVECTOR_ITE"], [69, 9, 1, "", "BITVECTOR_LSHR"], [69, 9, 1, "", "BITVECTOR_MULT"], [69, 9, 1, "", "BITVECTOR_NAND"], [69, 9, 1, "", "BITVECTOR_NEG"], [69, 9, 1, "", "BITVECTOR_NEGO"], [69, 9, 1, "", "BITVECTOR_NOR"], [69, 9, 1, "", "BITVECTOR_NOT"], [69, 9, 1, "", "BITVECTOR_OR"], [69, 9, 1, "", "BITVECTOR_REDAND"], [69, 9, 1, "", "BITVECTOR_REDOR"], [69, 9, 1, "", "BITVECTOR_REPEAT"], [69, 9, 1, "", "BITVECTOR_ROTATE_LEFT"], [69, 9, 1, "", "BITVECTOR_ROTATE_RIGHT"], [69, 9, 1, "", "BITVECTOR_SADDO"], [69, 9, 1, "", "BITVECTOR_SDIV"], [69, 9, 1, "", "BITVECTOR_SDIVO"], [69, 9, 1, "", "BITVECTOR_SGE"], [69, 9, 1, "", "BITVECTOR_SGT"], [69, 9, 1, "", "BITVECTOR_SHL"], [69, 9, 1, "", "BITVECTOR_SIGN_EXTEND"], [69, 9, 1, "", "BITVECTOR_SLE"], [69, 9, 1, "", "BITVECTOR_SLT"], [69, 9, 1, "", "BITVECTOR_SLTBV"], [69, 9, 1, "", "BITVECTOR_SMOD"], [69, 9, 1, "", "BITVECTOR_SMULO"], [69, 9, 1, "", "BITVECTOR_SREM"], [69, 9, 1, "", "BITVECTOR_SSUBO"], [69, 9, 1, "", "BITVECTOR_SUB"], [69, 9, 1, "", "BITVECTOR_TO_NAT"], [69, 9, 1, "", "BITVECTOR_UADDO"], [69, 9, 1, "", "BITVECTOR_UDIV"], [69, 9, 1, "", "BITVECTOR_UGE"], [69, 9, 1, "", "BITVECTOR_UGT"], [69, 9, 1, "", "BITVECTOR_ULE"], [69, 9, 1, "", "BITVECTOR_ULT"], [69, 9, 1, "", "BITVECTOR_ULTBV"], [69, 9, 1, "", "BITVECTOR_UMULO"], [69, 9, 1, "", "BITVECTOR_UREM"], [69, 9, 1, "", "BITVECTOR_USUBO"], [69, 9, 1, "", "BITVECTOR_XNOR"], [69, 9, 1, "", "BITVECTOR_XOR"], [69, 9, 1, "", "BITVECTOR_ZERO_EXTEND"], [69, 9, 1, "", "CARDINALITY_CONSTRAINT"], [69, 9, 1, "", "CONSTANT"], [69, 9, 1, "", "CONST_ARRAY"], [69, 9, 1, "", "CONST_BITVECTOR"], [69, 9, 1, "", "CONST_BOOLEAN"], [69, 9, 1, "", "CONST_FINITE_FIELD"], [69, 9, 1, "", "CONST_FLOATINGPOINT"], [69, 9, 1, "", "CONST_INTEGER"], [69, 9, 1, "", "CONST_RATIONAL"], [69, 9, 1, "", "CONST_ROUNDINGMODE"], [69, 9, 1, "", "CONST_SEQUENCE"], [69, 9, 1, "", "CONST_STRING"], [69, 9, 1, "", "COSECANT"], [69, 9, 1, "", "COSINE"], [69, 9, 1, "", "COTANGENT"], [69, 9, 1, "", "DISTINCT"], [69, 9, 1, "", "DIVISIBLE"], [69, 9, 1, "", "DIVISION"], [69, 9, 1, "", "DIVISION_TOTAL"], [69, 9, 1, "", "EQUAL"], [69, 9, 1, "", "EQ_RANGE"], [69, 9, 1, "", "EXISTS"], [69, 9, 1, "", "EXPONENTIAL"], [69, 9, 1, "", "FINITE_FIELD_ADD"], [69, 9, 1, "", "FINITE_FIELD_BITSUM"], [69, 9, 1, "", "FINITE_FIELD_MULT"], [69, 9, 1, "", "FINITE_FIELD_NEG"], [69, 9, 1, "", "FLOATINGPOINT_ABS"], [69, 9, 1, "", "FLOATINGPOINT_ADD"], [69, 9, 1, "", "FLOATINGPOINT_DIV"], [69, 9, 1, "", "FLOATINGPOINT_EQ"], [69, 9, 1, "", "FLOATINGPOINT_FMA"], [69, 9, 1, "", "FLOATINGPOINT_FP"], [69, 9, 1, "", "FLOATINGPOINT_GEQ"], [69, 9, 1, "", "FLOATINGPOINT_GT"], [69, 9, 1, "", "FLOATINGPOINT_IS_INF"], [69, 9, 1, "", "FLOATINGPOINT_IS_NAN"], [69, 9, 1, "", "FLOATINGPOINT_IS_NEG"], [69, 9, 1, "", "FLOATINGPOINT_IS_NORMAL"], [69, 9, 1, "", "FLOATINGPOINT_IS_POS"], [69, 9, 1, "", "FLOATINGPOINT_IS_SUBNORMAL"], [69, 9, 1, "", "FLOATINGPOINT_IS_ZERO"], [69, 9, 1, "", "FLOATINGPOINT_LEQ"], [69, 9, 1, "", "FLOATINGPOINT_LT"], [69, 9, 1, "", "FLOATINGPOINT_MAX"], [69, 9, 1, "", "FLOATINGPOINT_MIN"], [69, 9, 1, "", "FLOATINGPOINT_MULT"], [69, 9, 1, "", "FLOATINGPOINT_NEG"], [69, 9, 1, "", "FLOATINGPOINT_REM"], [69, 9, 1, "", "FLOATINGPOINT_RTI"], [69, 9, 1, "", "FLOATINGPOINT_SQRT"], [69, 9, 1, "", "FLOATINGPOINT_SUB"], [69, 9, 1, "", "FLOATINGPOINT_TO_FP_FROM_FP"], [69, 9, 1, "", "FLOATINGPOINT_TO_FP_FROM_IEEE_BV"], [69, 9, 1, "", "FLOATINGPOINT_TO_FP_FROM_REAL"], [69, 9, 1, "", "FLOATINGPOINT_TO_FP_FROM_SBV"], [69, 9, 1, "", "FLOATINGPOINT_TO_FP_FROM_UBV"], [69, 9, 1, "", "FLOATINGPOINT_TO_REAL"], [69, 9, 1, "", "FLOATINGPOINT_TO_SBV"], [69, 9, 1, "", "FLOATINGPOINT_TO_UBV"], [69, 9, 1, "", "FORALL"], [69, 9, 1, "", "GEQ"], [69, 9, 1, "", "GT"], [69, 9, 1, "", "HO_APPLY"], [69, 9, 1, "", "IAND"], [69, 9, 1, "", "IMPLIES"], [69, 9, 1, "", "INST_ADD_TO_POOL"], [69, 9, 1, "", "INST_ATTRIBUTE"], [69, 9, 1, "", "INST_NO_PATTERN"], [69, 9, 1, "", "INST_PATTERN"], [69, 9, 1, "", "INST_PATTERN_LIST"], [69, 9, 1, "", "INST_POOL"], [69, 9, 1, "", "INTERNAL_KIND"], [69, 9, 1, "", "INTS_DIVISION"], [69, 9, 1, "", "INTS_DIVISION_TOTAL"], [69, 9, 1, "", "INTS_MODULUS"], [69, 9, 1, "", "INTS_MODULUS_TOTAL"], [69, 9, 1, "", "INT_TO_BITVECTOR"], [69, 9, 1, "", "IS_INTEGER"], [69, 9, 1, "", "ITE"], [69, 9, 1, "", "LAMBDA"], [69, 9, 1, "", "LAST_KIND"], [69, 9, 1, "", "LEQ"], [69, 9, 1, "", "LT"], [69, 9, 1, "", "MATCH"], [69, 9, 1, "", "MATCH_BIND_CASE"], [69, 9, 1, "", "MATCH_CASE"], [69, 9, 1, "", "MULT"], [69, 9, 1, "", "NEG"], [69, 9, 1, "", "NOT"], [69, 9, 1, "", "NULLABLE_LIFT"], [69, 9, 1, "", "NULL_TERM"], [69, 9, 1, "", "OR"], [69, 9, 1, "", "PI"], [69, 9, 1, "", "POW"], [69, 9, 1, "", "POW2"], [69, 9, 1, "", "REGEXP_ALL"], [69, 9, 1, "", "REGEXP_ALLCHAR"], [69, 9, 1, "", "REGEXP_COMPLEMENT"], [69, 9, 1, "", "REGEXP_CONCAT"], [69, 9, 1, "", "REGEXP_DIFF"], [69, 9, 1, "", "REGEXP_INTER"], [69, 9, 1, "", "REGEXP_LOOP"], [69, 9, 1, "", "REGEXP_NONE"], [69, 9, 1, "", "REGEXP_OPT"], [69, 9, 1, "", "REGEXP_PLUS"], [69, 9, 1, "", "REGEXP_RANGE"], [69, 9, 1, "", "REGEXP_REPEAT"], [69, 9, 1, "", "REGEXP_STAR"], [69, 9, 1, "", "REGEXP_UNION"], [69, 9, 1, "", "RELATION_AGGREGATE"], [69, 9, 1, "", "RELATION_GROUP"], [69, 9, 1, "", "RELATION_IDEN"], [69, 9, 1, "", "RELATION_JOIN"], [69, 9, 1, "", "RELATION_JOIN_IMAGE"], [69, 9, 1, "", "RELATION_PRODUCT"], [69, 9, 1, "", "RELATION_PROJECT"], [69, 9, 1, "", "RELATION_TABLE_JOIN"], [69, 9, 1, "", "RELATION_TCLOSURE"], [69, 9, 1, "", "RELATION_TRANSPOSE"], [69, 9, 1, "", "SECANT"], [69, 9, 1, "", "SELECT"], [69, 9, 1, "", "SEP_EMP"], [69, 9, 1, "", "SEP_NIL"], [69, 9, 1, "", "SEP_PTO"], [69, 9, 1, "", "SEP_STAR"], [69, 9, 1, "", "SEP_WAND"], [69, 9, 1, "", "SEQ_AT"], [69, 9, 1, "", "SEQ_CONCAT"], [69, 9, 1, "", "SEQ_CONTAINS"], [69, 9, 1, "", "SEQ_EXTRACT"], [69, 9, 1, "", "SEQ_INDEXOF"], [69, 9, 1, "", "SEQ_LENGTH"], [69, 9, 1, "", "SEQ_NTH"], [69, 9, 1, "", "SEQ_PREFIX"], [69, 9, 1, "", "SEQ_REPLACE"], [69, 9, 1, "", "SEQ_REPLACE_ALL"], [69, 9, 1, "", "SEQ_REV"], [69, 9, 1, "", "SEQ_SUFFIX"], [69, 9, 1, "", "SEQ_UNIT"], [69, 9, 1, "", "SEQ_UPDATE"], [69, 9, 1, "", "SET_ALL"], [69, 9, 1, "", "SET_CARD"], [69, 9, 1, "", "SET_CHOOSE"], [69, 9, 1, "", "SET_COMPLEMENT"], [69, 9, 1, "", "SET_COMPREHENSION"], [69, 9, 1, "", "SET_EMPTY"], [69, 9, 1, "", "SET_FILTER"], [69, 9, 1, "", "SET_FOLD"], [69, 9, 1, "", "SET_INSERT"], [69, 9, 1, "", "SET_INTER"], [69, 9, 1, "", "SET_IS_EMPTY"], [69, 9, 1, "", "SET_IS_SINGLETON"], [69, 9, 1, "", "SET_MAP"], [69, 9, 1, "", "SET_MEMBER"], [69, 9, 1, "", "SET_MINUS"], [69, 9, 1, "", "SET_SINGLETON"], [69, 9, 1, "", "SET_SOME"], [69, 9, 1, "", "SET_SUBSET"], [69, 9, 1, "", "SET_UNION"], [69, 9, 1, "", "SET_UNIVERSE"], [69, 9, 1, "", "SEXPR"], [69, 9, 1, "", "SINE"], [69, 9, 1, "", "SKOLEM"], [69, 9, 1, "", "SKOLEM_ADD_TO_POOL"], [69, 9, 1, "", "SQRT"], [69, 9, 1, "", "STORE"], [69, 9, 1, "", "STRING_CHARAT"], [69, 9, 1, "", "STRING_CONCAT"], [69, 9, 1, "", "STRING_CONTAINS"], [69, 9, 1, "", "STRING_FROM_CODE"], [69, 9, 1, "", "STRING_FROM_INT"], [69, 9, 1, "", "STRING_INDEXOF"], [69, 9, 1, "", "STRING_INDEXOF_RE"], [69, 9, 1, "", "STRING_IN_REGEXP"], [69, 9, 1, "", "STRING_IS_DIGIT"], [69, 9, 1, "", "STRING_LENGTH"], [69, 9, 1, "", "STRING_LEQ"], [69, 9, 1, "", "STRING_LT"], [69, 9, 1, "", "STRING_PREFIX"], [69, 9, 1, "", "STRING_REPLACE"], [69, 9, 1, "", "STRING_REPLACE_ALL"], [69, 9, 1, "", "STRING_REPLACE_RE"], [69, 9, 1, "", "STRING_REPLACE_RE_ALL"], [69, 9, 1, "", "STRING_REV"], [69, 9, 1, "", "STRING_SUBSTR"], [69, 9, 1, "", "STRING_SUFFIX"], [69, 9, 1, "", "STRING_TO_CODE"], [69, 9, 1, "", "STRING_TO_INT"], [69, 9, 1, "", "STRING_TO_LOWER"], [69, 9, 1, "", "STRING_TO_REGEXP"], [69, 9, 1, "", "STRING_TO_UPPER"], [69, 9, 1, "", "STRING_UPDATE"], [69, 9, 1, "", "SUB"], [69, 9, 1, "", "TABLE_AGGREGATE"], [69, 9, 1, "", "TABLE_GROUP"], [69, 9, 1, "", "TABLE_JOIN"], [69, 9, 1, "", "TABLE_PRODUCT"], [69, 9, 1, "", "TABLE_PROJECT"], [69, 9, 1, "", "TANGENT"], [69, 9, 1, "", "TO_INTEGER"], [69, 9, 1, "", "TO_REAL"], [69, 9, 1, "", "TUPLE_PROJECT"], [69, 9, 1, "", "UNDEFINED_KIND"], [69, 9, 1, "", "UNINTERPRETED_SORT_VALUE"], [69, 9, 1, "", "VARIABLE"], [69, 9, 1, "", "VARIABLE_LIST"], [69, 9, 1, "", "WITNESS"], [69, 9, 1, "", "XOR"]], "cvc5.LearnedLitType": [[70, 9, 1, "", "CONSTANT_PROP"], [70, 9, 1, "", "INPUT"], [70, 9, 1, "", "INTERNAL"], [70, 9, 1, "", "PREPROCESS"], [70, 9, 1, "", "PREPROCESS_SOLVED"], [70, 9, 1, "", "SOLVABLE"], [70, 9, 1, "", "UNKNOWN"]], "cvc5.Op": [[71, 10, 1, "", "__getitem__"], [71, 10, 1, "", "getKind"], [71, 10, 1, "", "getNumIndices"], [71, 10, 1, "", "isIndexed"], [71, 10, 1, "", "isNull"]], "cvc5.Proof": [[73, 10, 1, "", "getArguments"], [73, 10, 1, "", "getChildren"], [73, 10, 1, "", "getResult"], [73, 10, 1, "", "getRewriteRule"], [73, 10, 1, "", "getRule"]], "cvc5.ProofComponent": [[70, 9, 1, "", "FULL"], [70, 9, 1, "", "PREPROCESS"], [70, 9, 1, "", "RAW_PREPROCESS"], [70, 9, 1, "", "SAT"], [70, 9, 1, "", "THEORY_LEMMAS"]], "cvc5.ProofFormat": [[70, 9, 1, "", "ALETHE"], [70, 9, 1, "", "CPC"], [70, 9, 1, "", "DEFAULT"], [70, 9, 1, "", "DOT"], [70, 9, 1, "", "LFSC"], [70, 9, 1, "", "NONE"]], "cvc5.ProofRewriteRule": [[74, 9, 1, "", "ARITH_ABS_ELIM_INT"], [74, 9, 1, "", "ARITH_ABS_ELIM_REAL"], [74, 9, 1, "", "ARITH_ABS_EQ"], [74, 9, 1, "", "ARITH_ABS_INT_GT"], [74, 9, 1, "", "ARITH_ABS_REAL_GT"], [74, 9, 1, "", "ARITH_COSECENT_ELIM"], [74, 9, 1, "", "ARITH_COSINE_ELIM"], [74, 9, 1, "", "ARITH_COTANGENT_ELIM"], [74, 9, 1, "", "ARITH_DIV_ELIM_TO_REAL1"], [74, 9, 1, "", "ARITH_DIV_ELIM_TO_REAL2"], [74, 9, 1, "", "ARITH_DIV_TOTAL_INT"], [74, 9, 1, "", "ARITH_DIV_TOTAL_REAL"], [74, 9, 1, "", "ARITH_DIV_TOTAL_ZERO_INT"], [74, 9, 1, "", "ARITH_DIV_TOTAL_ZERO_REAL"], [74, 9, 1, "", "ARITH_ELIM_GT"], [74, 9, 1, "", "ARITH_ELIM_INT_GT"], [74, 9, 1, "", "ARITH_ELIM_INT_LT"], [74, 9, 1, "", "ARITH_ELIM_LEQ"], [74, 9, 1, "", "ARITH_ELIM_LT"], [74, 9, 1, "", "ARITH_EQ_ELIM_INT"], [74, 9, 1, "", "ARITH_EQ_ELIM_REAL"], [74, 9, 1, "", "ARITH_GEQ_NORM1_INT"], [74, 9, 1, "", "ARITH_GEQ_NORM1_REAL"], [74, 9, 1, "", "ARITH_GEQ_NORM2"], [74, 9, 1, "", "ARITH_GEQ_TIGHTEN"], [74, 9, 1, "", "ARITH_INT_DIV_TOTAL"], [74, 9, 1, "", "ARITH_INT_DIV_TOTAL_ONE"], [74, 9, 1, "", "ARITH_INT_DIV_TOTAL_ZERO"], [74, 9, 1, "", "ARITH_INT_MOD_TOTAL"], [74, 9, 1, "", "ARITH_INT_MOD_TOTAL_ONE"], [74, 9, 1, "", "ARITH_INT_MOD_TOTAL_ZERO"], [74, 9, 1, "", "ARITH_LEQ_NORM"], [74, 9, 1, "", "ARITH_MULT_DIST"], [74, 9, 1, "", "ARITH_MULT_FLATTEN"], [74, 9, 1, "", "ARITH_MUL_ONE"], [74, 9, 1, "", "ARITH_MUL_ZERO"], [74, 9, 1, "", "ARITH_PI_NOT_INT"], [74, 9, 1, "", "ARITH_PLUS_FLATTEN"], [74, 9, 1, "", "ARITH_POW_ELIM"], [74, 9, 1, "", "ARITH_REFL_GEQ"], [74, 9, 1, "", "ARITH_REFL_GT"], [74, 9, 1, "", "ARITH_REFL_LEQ"], [74, 9, 1, "", "ARITH_REFL_LT"], [74, 9, 1, "", "ARITH_SECENT_ELIM"], [74, 9, 1, "", "ARITH_SINE_PI2"], [74, 9, 1, "", "ARITH_SINE_ZERO"], [74, 9, 1, "", "ARITH_STRING_PRED_ENTAIL"], [74, 9, 1, "", "ARITH_STRING_PRED_SAFE_APPROX"], [74, 9, 1, "", "ARITH_TANGENT_ELIM"], [74, 9, 1, "", "ARITH_TO_INT_ELIM_TO_REAL"], [74, 9, 1, "", "ARITH_TO_REAL_ELIM"], [74, 9, 1, "", "ARRAYS_EQ_RANGE_EXPAND"], [74, 9, 1, "", "ARRAYS_SELECT_CONST"], [74, 9, 1, "", "ARRAY_READ_OVER_WRITE"], [74, 9, 1, "", "ARRAY_READ_OVER_WRITE2"], [74, 9, 1, "", "ARRAY_READ_OVER_WRITE_SPLIT"], [74, 9, 1, "", "ARRAY_STORE_OVERWRITE"], [74, 9, 1, "", "ARRAY_STORE_SELF"], [74, 9, 1, "", "BETA_REDUCE"], [74, 9, 1, "", "BOOL_AND_CONF"], [74, 9, 1, "", "BOOL_AND_CONF2"], [74, 9, 1, "", "BOOL_AND_DE_MORGAN"], [74, 9, 1, "", "BOOL_AND_FALSE"], [74, 9, 1, "", "BOOL_AND_FLATTEN"], [74, 9, 1, "", "BOOL_DOUBLE_NOT_ELIM"], [74, 9, 1, "", "BOOL_EQ_FALSE"], [74, 9, 1, "", "BOOL_EQ_NREFL"], [74, 9, 1, "", "BOOL_EQ_TRUE"], [74, 9, 1, "", "BOOL_IMPLIES_DE_MORGAN"], [74, 9, 1, "", "BOOL_IMPL_ELIM"], [74, 9, 1, "", "BOOL_IMPL_FALSE1"], [74, 9, 1, "", "BOOL_IMPL_FALSE2"], [74, 9, 1, "", "BOOL_IMPL_TRUE1"], [74, 9, 1, "", "BOOL_IMPL_TRUE2"], [74, 9, 1, "", "BOOL_NOT_EQ_ELIM1"], [74, 9, 1, "", "BOOL_NOT_EQ_ELIM2"], [74, 9, 1, "", "BOOL_NOT_FALSE"], [74, 9, 1, "", "BOOL_NOT_ITE_ELIM"], [74, 9, 1, "", "BOOL_NOT_TRUE"], [74, 9, 1, "", "BOOL_NOT_XOR_ELIM"], [74, 9, 1, "", "BOOL_OR_AND_DISTRIB"], [74, 9, 1, "", "BOOL_OR_DE_MORGAN"], [74, 9, 1, "", "BOOL_OR_FLATTEN"], [74, 9, 1, "", "BOOL_OR_TAUT"], [74, 9, 1, "", "BOOL_OR_TAUT2"], [74, 9, 1, "", "BOOL_OR_TRUE"], [74, 9, 1, "", "BOOL_XOR_COMM"], [74, 9, 1, "", "BOOL_XOR_ELIM"], [74, 9, 1, "", "BOOL_XOR_FALSE"], [74, 9, 1, "", "BOOL_XOR_NREFL"], [74, 9, 1, "", "BOOL_XOR_REFL"], [74, 9, 1, "", "BOOL_XOR_TRUE"], [74, 9, 1, "", "BV_ADD_COMBINE_LIKE_TERMS"], [74, 9, 1, "", "BV_ADD_TWO"], [74, 9, 1, "", "BV_ADD_ZERO"], [74, 9, 1, "", "BV_AND_CONCAT_PULLUP"], [74, 9, 1, "", "BV_AND_FLATTEN"], [74, 9, 1, "", "BV_AND_ONE"], [74, 9, 1, "", "BV_AND_SIMPLIFY_1"], [74, 9, 1, "", "BV_AND_SIMPLIFY_2"], [74, 9, 1, "", "BV_AND_ZERO"], [74, 9, 1, "", "BV_ASHR_BY_CONST_0"], [74, 9, 1, "", "BV_ASHR_BY_CONST_1"], [74, 9, 1, "", "BV_ASHR_BY_CONST_2"], [74, 9, 1, "", "BV_ASHR_ZERO"], [74, 9, 1, "", "BV_BITWISE_IDEMP_1"], [74, 9, 1, "", "BV_BITWISE_IDEMP_2"], [74, 9, 1, "", "BV_BITWISE_NOT_AND"], [74, 9, 1, "", "BV_BITWISE_NOT_OR"], [74, 9, 1, "", "BV_BITWISE_SLICING"], [74, 9, 1, "", "BV_COMMUTATIVE_ADD"], [74, 9, 1, "", "BV_COMMUTATIVE_AND"], [74, 9, 1, "", "BV_COMMUTATIVE_MUL"], [74, 9, 1, "", "BV_COMMUTATIVE_OR"], [74, 9, 1, "", "BV_COMMUTATIVE_XOR"], [74, 9, 1, "", "BV_COMP_ELIMINATE"], [74, 9, 1, "", "BV_CONCAT_EXTRACT_MERGE"], [74, 9, 1, "", "BV_CONCAT_FLATTEN"], [74, 9, 1, "", "BV_CONCAT_MERGE_CONST"], [74, 9, 1, "", "BV_CONCAT_TO_MULT"], [74, 9, 1, "", "BV_EQ_EXTRACT_ELIM1"], [74, 9, 1, "", "BV_EQ_EXTRACT_ELIM2"], [74, 9, 1, "", "BV_EQ_EXTRACT_ELIM3"], [74, 9, 1, "", "BV_EXTRACT_BITWISE_AND"], [74, 9, 1, "", "BV_EXTRACT_BITWISE_OR"], [74, 9, 1, "", "BV_EXTRACT_BITWISE_XOR"], [74, 9, 1, "", "BV_EXTRACT_CONCAT_1"], [74, 9, 1, "", "BV_EXTRACT_CONCAT_2"], [74, 9, 1, "", "BV_EXTRACT_CONCAT_3"], [74, 9, 1, "", "BV_EXTRACT_CONCAT_4"], [74, 9, 1, "", "BV_EXTRACT_EXTRACT"], [74, 9, 1, "", "BV_EXTRACT_MULT_LEADING_BIT"], [74, 9, 1, "", "BV_EXTRACT_NOT"], [74, 9, 1, "", "BV_EXTRACT_SIGN_EXTEND_1"], [74, 9, 1, "", "BV_EXTRACT_SIGN_EXTEND_2"], [74, 9, 1, "", "BV_EXTRACT_SIGN_EXTEND_3"], [74, 9, 1, "", "BV_EXTRACT_WHOLE"], [74, 9, 1, "", "BV_ITE_CONST_CHILDREN_1"], [74, 9, 1, "", "BV_ITE_CONST_CHILDREN_2"], [74, 9, 1, "", "BV_ITE_EQUAL_CHILDREN"], [74, 9, 1, "", "BV_ITE_EQUAL_COND_1"], [74, 9, 1, "", "BV_ITE_EQUAL_COND_2"], [74, 9, 1, "", "BV_ITE_EQUAL_COND_3"], [74, 9, 1, "", "BV_ITE_MERGE_ELSE_ELSE"], [74, 9, 1, "", "BV_ITE_MERGE_ELSE_IF"], [74, 9, 1, "", "BV_ITE_MERGE_THEN_ELSE"], [74, 9, 1, "", "BV_ITE_MERGE_THEN_IF"], [74, 9, 1, "", "BV_LSHR_BY_CONST_0"], [74, 9, 1, "", "BV_LSHR_BY_CONST_1"], [74, 9, 1, "", "BV_LSHR_BY_CONST_2"], [74, 9, 1, "", "BV_LSHR_ZERO"], [74, 9, 1, "", "BV_LT_SELF"], [74, 9, 1, "", "BV_MERGE_SIGN_EXTEND_1"], [74, 9, 1, "", "BV_MERGE_SIGN_EXTEND_2"], [74, 9, 1, "", "BV_MERGE_SIGN_EXTEND_3"], [74, 9, 1, "", "BV_MULT_DISTRIB_1"], [74, 9, 1, "", "BV_MULT_DISTRIB_2"], [74, 9, 1, "", "BV_MULT_DISTRIB_CONST_ADD"], [74, 9, 1, "", "BV_MULT_DISTRIB_CONST_NEG"], [74, 9, 1, "", "BV_MULT_DISTRIB_CONST_SUB"], [74, 9, 1, "", "BV_MULT_POW2_1"], [74, 9, 1, "", "BV_MULT_POW2_2"], [74, 9, 1, "", "BV_MULT_POW2_2B"], [74, 9, 1, "", "BV_MULT_SIMPLIFY"], [74, 9, 1, "", "BV_MULT_SLT_MULT_1"], [74, 9, 1, "", "BV_MULT_SLT_MULT_2"], [74, 9, 1, "", "BV_MUL_FLATTEN"], [74, 9, 1, "", "BV_MUL_ONE"], [74, 9, 1, "", "BV_MUL_ZERO"], [74, 9, 1, "", "BV_NAND_ELIMINATE"], [74, 9, 1, "", "BV_NEG_ADD"], [74, 9, 1, "", "BV_NEG_IDEMP"], [74, 9, 1, "", "BV_NEG_MULT"], [74, 9, 1, "", "BV_NEG_SUB"], [74, 9, 1, "", "BV_NOR_ELIMINATE"], [74, 9, 1, "", "BV_NOT_IDEMP"], [74, 9, 1, "", "BV_NOT_NEQ"], [74, 9, 1, "", "BV_NOT_SLE"], [74, 9, 1, "", "BV_NOT_ULE"], [74, 9, 1, "", "BV_NOT_ULT"], [74, 9, 1, "", "BV_NOT_XOR"], [74, 9, 1, "", "BV_OR_CONCAT_PULLUP"], [74, 9, 1, "", "BV_OR_FLATTEN"], [74, 9, 1, "", "BV_OR_ONE"], [74, 9, 1, "", "BV_OR_SIMPLIFY_1"], [74, 9, 1, "", "BV_OR_SIMPLIFY_2"], [74, 9, 1, "", "BV_OR_ZERO"], [74, 9, 1, "", "BV_REDAND_ELIMINATE"], [74, 9, 1, "", "BV_REDOR_ELIMINATE"], [74, 9, 1, "", "BV_REPEAT_ELIM"], [74, 9, 1, "", "BV_ROTATE_LEFT_ELIMINATE_1"], [74, 9, 1, "", "BV_ROTATE_LEFT_ELIMINATE_2"], [74, 9, 1, "", "BV_ROTATE_RIGHT_ELIMINATE_1"], [74, 9, 1, "", "BV_ROTATE_RIGHT_ELIMINATE_2"], [74, 9, 1, "", "BV_SADDO_ELIMINATE"], [74, 9, 1, "", "BV_SDIVO_ELIMINATE"], [74, 9, 1, "", "BV_SDIV_ELIMINATE"], [74, 9, 1, "", "BV_SDIV_ELIMINATE_FEWER_BITWISE_OPS"], [74, 9, 1, "", "BV_SGE_ELIMINATE"], [74, 9, 1, "", "BV_SGT_ELIMINATE"], [74, 9, 1, "", "BV_SHL_BY_CONST_0"], [74, 9, 1, "", "BV_SHL_BY_CONST_1"], [74, 9, 1, "", "BV_SHL_BY_CONST_2"], [74, 9, 1, "", "BV_SHL_ZERO"], [74, 9, 1, "", "BV_SIGN_EXTEND_ELIMINATE"], [74, 9, 1, "", "BV_SIGN_EXTEND_ELIMINATE_0"], [74, 9, 1, "", "BV_SIGN_EXTEND_EQ_CONST_1"], [74, 9, 1, "", "BV_SIGN_EXTEND_EQ_CONST_2"], [74, 9, 1, "", "BV_SIGN_EXTEND_ULT_CONST_1"], [74, 9, 1, "", "BV_SIGN_EXTEND_ULT_CONST_2"], [74, 9, 1, "", "BV_SIGN_EXTEND_ULT_CONST_3"], [74, 9, 1, "", "BV_SIGN_EXTEND_ULT_CONST_4"], [74, 9, 1, "", "BV_SLE_ELIMINATE"], [74, 9, 1, "", "BV_SLE_SELF"], [74, 9, 1, "", "BV_SLT_ELIMINATE"], [74, 9, 1, "", "BV_SLT_ZERO"], [74, 9, 1, "", "BV_SMOD_ELIMINATE"], [74, 9, 1, "", "BV_SMOD_ELIMINATE_FEWER_BITWISE_OPS"], [74, 9, 1, "", "BV_SMULO_ELIMINATE"], [74, 9, 1, "", "BV_SREM_ELIMINATE"], [74, 9, 1, "", "BV_SREM_ELIMINATE_FEWER_BITWISE_OPS"], [74, 9, 1, "", "BV_SSUBO_ELIMINATE"], [74, 9, 1, "", "BV_SUB_ELIMINATE"], [74, 9, 1, "", "BV_TO_NAT_ELIM"], [74, 9, 1, "", "BV_UADDO_ELIMINATE"], [74, 9, 1, "", "BV_UDIV_ONE"], [74, 9, 1, "", "BV_UDIV_POW2_NOT_ONE"], [74, 9, 1, "", "BV_UDIV_ZERO"], [74, 9, 1, "", "BV_UGE_ELIMINATE"], [74, 9, 1, "", "BV_UGT_ELIMINATE"], [74, 9, 1, "", "BV_UGT_UREM"], [74, 9, 1, "", "BV_ULE_ELIMINATE"], [74, 9, 1, "", "BV_ULE_MAX"], [74, 9, 1, "", "BV_ULE_SELF"], [74, 9, 1, "", "BV_ULE_ZERO"], [74, 9, 1, "", "BV_ULT_ADD_ONE"], [74, 9, 1, "", "BV_ULT_ONE"], [74, 9, 1, "", "BV_ULT_ONES"], [74, 9, 1, "", "BV_ULT_SELF"], [74, 9, 1, "", "BV_ULT_ZERO_1"], [74, 9, 1, "", "BV_ULT_ZERO_2"], [74, 9, 1, "", "BV_UMULO_ELIMINATE"], [74, 9, 1, "", "BV_UREM_ONE"], [74, 9, 1, "", "BV_UREM_POW2_NOT_ONE"], [74, 9, 1, "", "BV_UREM_SELF"], [74, 9, 1, "", "BV_USUBO_ELIMINATE"], [74, 9, 1, "", "BV_XNOR_ELIMINATE"], [74, 9, 1, "", "BV_XOR_CONCAT_PULLUP"], [74, 9, 1, "", "BV_XOR_DUPLICATE"], [74, 9, 1, "", "BV_XOR_FLATTEN"], [74, 9, 1, "", "BV_XOR_NOT"], [74, 9, 1, "", "BV_XOR_ONES"], [74, 9, 1, "", "BV_XOR_SIMPLIFY_1"], [74, 9, 1, "", "BV_XOR_SIMPLIFY_2"], [74, 9, 1, "", "BV_XOR_SIMPLIFY_3"], [74, 9, 1, "", "BV_XOR_ZERO"], [74, 9, 1, "", "BV_ZERO_EXTEND_ELIMINATE"], [74, 9, 1, "", "BV_ZERO_EXTEND_ELIMINATE_0"], [74, 9, 1, "", "BV_ZERO_EXTEND_EQ_CONST_1"], [74, 9, 1, "", "BV_ZERO_EXTEND_EQ_CONST_2"], [74, 9, 1, "", "BV_ZERO_ULE"], [74, 9, 1, "", "DISTINCT_BINARY_ELIM"], [74, 9, 1, "", "DISTINCT_CARD_CONFLICT"], [74, 9, 1, "", "DISTINCT_ELIM"], [74, 9, 1, "", "DT_COLLAPSE_SELECTOR"], [74, 9, 1, "", "DT_COLLAPSE_TESTER"], [74, 9, 1, "", "DT_COLLAPSE_TESTER_SINGLETON"], [74, 9, 1, "", "DT_COLLAPSE_UPDATER"], [74, 9, 1, "", "DT_CONS_EQ"], [74, 9, 1, "", "DT_CYCLE"], [74, 9, 1, "", "DT_INST"], [74, 9, 1, "", "DT_MATCH_ELIM"], [74, 9, 1, "", "DT_UPDATER_ELIM"], [74, 9, 1, "", "EQ_COND_DEQ"], [74, 9, 1, "", "EQ_ITE_LIFT"], [74, 9, 1, "", "EQ_REFL"], [74, 9, 1, "", "EQ_SYMM"], [74, 9, 1, "", "EXISTS_ELIM"], [74, 9, 1, "", "INT_TO_BV_ELIM"], [74, 9, 1, "", "ITE_ELSE_FALSE"], [74, 9, 1, "", "ITE_ELSE_LOOKAHEAD"], [74, 9, 1, "", "ITE_ELSE_LOOKAHEAD_NOT_SELF"], [74, 9, 1, "", "ITE_ELSE_LOOKAHEAD_SELF"], [74, 9, 1, "", "ITE_ELSE_NEG_LOOKAHEAD"], [74, 9, 1, "", "ITE_ELSE_TRUE"], [74, 9, 1, "", "ITE_EQ_BRANCH"], [74, 9, 1, "", "ITE_EXPAND"], [74, 9, 1, "", "ITE_FALSE_COND"], [74, 9, 1, "", "ITE_NEG_BRANCH"], [74, 9, 1, "", "ITE_NOT_COND"], [74, 9, 1, "", "ITE_THEN_FALSE"], [74, 9, 1, "", "ITE_THEN_LOOKAHEAD"], [74, 9, 1, "", "ITE_THEN_LOOKAHEAD_NOT_SELF"], [74, 9, 1, "", "ITE_THEN_LOOKAHEAD_SELF"], [74, 9, 1, "", "ITE_THEN_NEG_LOOKAHEAD"], [74, 9, 1, "", "ITE_THEN_TRUE"], [74, 9, 1, "", "ITE_TRUE_COND"], [74, 9, 1, "", "LAMBDA_ELIM"], [74, 9, 1, "", "MACRO_ARITH_STRING_PRED_ENTAIL"], [74, 9, 1, "", "MACRO_ARRAYS_DISTINCT_ARRAYS"], [74, 9, 1, "", "MACRO_ARRAYS_NORMALIZE_CONSTANT"], [74, 9, 1, "", "MACRO_BOOL_NNF_NORM"], [74, 9, 1, "", "MACRO_QUANT_MERGE_PRENEX"], [74, 9, 1, "", "MACRO_QUANT_MINISCOPE"], [74, 9, 1, "", "MACRO_QUANT_PARTITION_CONNECTED_FV"], [74, 9, 1, "", "MACRO_QUANT_PRENEX"], [74, 9, 1, "", "MACRO_QUANT_REWRITE_BODY"], [74, 9, 1, "", "MACRO_QUANT_VAR_ELIM_EQ"], [74, 9, 1, "", "MACRO_QUANT_VAR_ELIM_INEQ"], [74, 9, 1, "", "MACRO_SUBSTR_STRIP_SYM_LENGTH"], [74, 9, 1, "", "NONE"], [74, 9, 1, "", "QUANT_DT_SPLIT"], [74, 9, 1, "", "QUANT_MERGE_PRENEX"], [74, 9, 1, "", "QUANT_MINISCOPE_AND"], [74, 9, 1, "", "QUANT_MINISCOPE_ITE"], [74, 9, 1, "", "QUANT_MINISCOPE_OR"], [74, 9, 1, "", "QUANT_UNUSED_VARS"], [74, 9, 1, "", "QUANT_VAR_ELIM_EQ"], [74, 9, 1, "", "RE_ALL_ELIM"], [74, 9, 1, "", "RE_CONCAT_EMP"], [74, 9, 1, "", "RE_CONCAT_FLATTEN"], [74, 9, 1, "", "RE_CONCAT_MERGE"], [74, 9, 1, "", "RE_CONCAT_NONE"], [74, 9, 1, "", "RE_CONCAT_STAR_REPEAT"], [74, 9, 1, "", "RE_CONCAT_STAR_SWAP"], [74, 9, 1, "", "RE_DIFF_ELIM"], [74, 9, 1, "", "RE_INTER_ALL"], [74, 9, 1, "", "RE_INTER_CSTRING"], [74, 9, 1, "", "RE_INTER_CSTRING_NEG"], [74, 9, 1, "", "RE_INTER_DUP"], [74, 9, 1, "", "RE_INTER_FLATTEN"], [74, 9, 1, "", "RE_INTER_NONE"], [74, 9, 1, "", "RE_INTER_UNION_INCLUSION"], [74, 9, 1, "", "RE_IN_COMP"], [74, 9, 1, "", "RE_IN_CSTRING"], [74, 9, 1, "", "RE_IN_EMPTY"], [74, 9, 1, "", "RE_IN_SIGMA"], [74, 9, 1, "", "RE_IN_SIGMA_STAR"], [74, 9, 1, "", "RE_LOOP_ELIM"], [74, 9, 1, "", "RE_LOOP_NEG"], [74, 9, 1, "", "RE_OPT_ELIM"], [74, 9, 1, "", "RE_STAR_NONE"], [74, 9, 1, "", "RE_UNION_ALL"], [74, 9, 1, "", "RE_UNION_DUP"], [74, 9, 1, "", "RE_UNION_FLATTEN"], [74, 9, 1, "", "RE_UNION_NONE"], [74, 9, 1, "", "SEQ_LEN_EMPTY"], [74, 9, 1, "", "SEQ_LEN_REV"], [74, 9, 1, "", "SEQ_LEN_UNIT"], [74, 9, 1, "", "SEQ_NTH_UNIT"], [74, 9, 1, "", "SEQ_REV_CONCAT"], [74, 9, 1, "", "SEQ_REV_REV"], [74, 9, 1, "", "SEQ_REV_UNIT"], [74, 9, 1, "", "SETS_CARD_EMP"], [74, 9, 1, "", "SETS_CARD_MINUS"], [74, 9, 1, "", "SETS_CARD_SINGLETON"], [74, 9, 1, "", "SETS_CARD_UNION"], [74, 9, 1, "", "SETS_CHOOSE_SINGLETON"], [74, 9, 1, "", "SETS_EQ_SINGLETON_EMP"], [74, 9, 1, "", "SETS_INSERT_ELIM"], [74, 9, 1, "", "SETS_INTER_COMM"], [74, 9, 1, "", "SETS_INTER_EMP1"], [74, 9, 1, "", "SETS_INTER_EMP2"], [74, 9, 1, "", "SETS_INTER_MEMBER"], [74, 9, 1, "", "SETS_IS_EMPTY_ELIM"], [74, 9, 1, "", "SETS_IS_EMPTY_EVAL"], [74, 9, 1, "", "SETS_MEMBER_EMP"], [74, 9, 1, "", "SETS_MEMBER_SINGLETON"], [74, 9, 1, "", "SETS_MINUS_EMP1"], [74, 9, 1, "", "SETS_MINUS_EMP2"], [74, 9, 1, "", "SETS_MINUS_MEMBER"], [74, 9, 1, "", "SETS_MINUS_SELF"], [74, 9, 1, "", "SETS_SUBSET_ELIM"], [74, 9, 1, "", "SETS_UNION_COMM"], [74, 9, 1, "", "SETS_UNION_EMP1"], [74, 9, 1, "", "SETS_UNION_EMP2"], [74, 9, 1, "", "SETS_UNION_MEMBER"], [74, 9, 1, "", "STR_AT_ELIM"], [74, 9, 1, "", "STR_CONCAT_CLASH"], [74, 9, 1, "", "STR_CONCAT_CLASH2"], [74, 9, 1, "", "STR_CONCAT_CLASH2_REV"], [74, 9, 1, "", "STR_CONCAT_CLASH_CHAR"], [74, 9, 1, "", "STR_CONCAT_CLASH_CHAR_REV"], [74, 9, 1, "", "STR_CONCAT_CLASH_REV"], [74, 9, 1, "", "STR_CONCAT_FLATTEN"], [74, 9, 1, "", "STR_CONCAT_FLATTEN_EQ"], [74, 9, 1, "", "STR_CONCAT_FLATTEN_EQ_REV"], [74, 9, 1, "", "STR_CONCAT_UNIFY"], [74, 9, 1, "", "STR_CONCAT_UNIFY_BASE"], [74, 9, 1, "", "STR_CONCAT_UNIFY_BASE_REV"], [74, 9, 1, "", "STR_CONCAT_UNIFY_REV"], [74, 9, 1, "", "STR_CONTAINS_CONCAT_FIND"], [74, 9, 1, "", "STR_CONTAINS_EMP"], [74, 9, 1, "", "STR_CONTAINS_IS_EMP"], [74, 9, 1, "", "STR_CONTAINS_LEQ_LEN_EQ"], [74, 9, 1, "", "STR_CONTAINS_LT_LEN"], [74, 9, 1, "", "STR_CONTAINS_REFL"], [74, 9, 1, "", "STR_CONTAINS_SPLIT_CHAR"], [74, 9, 1, "", "STR_EQ_CTN_FALSE"], [74, 9, 1, "", "STR_EQ_CTN_FULL_FALSE1"], [74, 9, 1, "", "STR_EQ_CTN_FULL_FALSE2"], [74, 9, 1, "", "STR_INDEXOF_CONTAINS_PRE"], [74, 9, 1, "", "STR_INDEXOF_NO_CONTAINS"], [74, 9, 1, "", "STR_INDEXOF_RE_NONE"], [74, 9, 1, "", "STR_INDEXOF_SELF"], [74, 9, 1, "", "STR_IN_RE_CONCAT_STAR_CHAR"], [74, 9, 1, "", "STR_IN_RE_CONSUME"], [74, 9, 1, "", "STR_IN_RE_CONTAINS"], [74, 9, 1, "", "STR_IN_RE_EVAL"], [74, 9, 1, "", "STR_IN_RE_INTER_ELIM"], [74, 9, 1, "", "STR_IN_RE_RANGE_ELIM"], [74, 9, 1, "", "STR_IN_RE_REQ_UNFOLD"], [74, 9, 1, "", "STR_IN_RE_REQ_UNFOLD_REV"], [74, 9, 1, "", "STR_IN_RE_SIGMA"], [74, 9, 1, "", "STR_IN_RE_SIGMA_STAR"], [74, 9, 1, "", "STR_IN_RE_SKIP_UNFOLD"], [74, 9, 1, "", "STR_IN_RE_SKIP_UNFOLD_REV"], [74, 9, 1, "", "STR_IN_RE_STRIP_CHAR"], [74, 9, 1, "", "STR_IN_RE_STRIP_CHAR_REV"], [74, 9, 1, "", "STR_IN_RE_STRIP_CHAR_S_SINGLE"], [74, 9, 1, "", "STR_IN_RE_STRIP_CHAR_S_SINGLE_REV"], [74, 9, 1, "", "STR_IN_RE_STRIP_PREFIX"], [74, 9, 1, "", "STR_IN_RE_STRIP_PREFIX_BASE"], [74, 9, 1, "", "STR_IN_RE_STRIP_PREFIX_BASE_NEG"], [74, 9, 1, "", "STR_IN_RE_STRIP_PREFIX_BASE_NEG_REV"], [74, 9, 1, "", "STR_IN_RE_STRIP_PREFIX_BASE_REV"], [74, 9, 1, "", "STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE"], [74, 9, 1, "", "STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG"], [74, 9, 1, "", "STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG_REV"], [74, 9, 1, "", "STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_REV"], [74, 9, 1, "", "STR_IN_RE_STRIP_PREFIX_NEG"], [74, 9, 1, "", "STR_IN_RE_STRIP_PREFIX_NEG_REV"], [74, 9, 1, "", "STR_IN_RE_STRIP_PREFIX_REV"], [74, 9, 1, "", "STR_IN_RE_STRIP_PREFIX_SRS_SINGLE"], [74, 9, 1, "", "STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG"], [74, 9, 1, "", "STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG_REV"], [74, 9, 1, "", "STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_REV"], [74, 9, 1, "", "STR_IN_RE_STRIP_PREFIX_SR_SINGLE"], [74, 9, 1, "", "STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG"], [74, 9, 1, "", "STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG_REV"], [74, 9, 1, "", "STR_IN_RE_STRIP_PREFIX_SR_SINGLE_REV"], [74, 9, 1, "", "STR_IN_RE_STRIP_PREFIX_S_SINGLE"], [74, 9, 1, "", "STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG"], [74, 9, 1, "", "STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG_REV"], [74, 9, 1, "", "STR_IN_RE_STRIP_PREFIX_S_SINGLE_REV"], [74, 9, 1, "", "STR_IN_RE_TEST_UNFOLD"], [74, 9, 1, "", "STR_IN_RE_TEST_UNFOLD_REV"], [74, 9, 1, "", "STR_IN_RE_UNION_ELIM"], [74, 9, 1, "", "STR_LEN_CONCAT_REC"], [74, 9, 1, "", "STR_LEN_REPLACE_INV"], [74, 9, 1, "", "STR_LEN_SUBSTR_IN_RANGE"], [74, 9, 1, "", "STR_LEN_SUBSTR_UB1"], [74, 9, 1, "", "STR_LEN_SUBSTR_UB2"], [74, 9, 1, "", "STR_LEN_UPDATE_INV"], [74, 9, 1, "", "STR_LEQ_CONCAT_FALSE"], [74, 9, 1, "", "STR_LEQ_CONCAT_TRUE"], [74, 9, 1, "", "STR_LEQ_EMPTY"], [74, 9, 1, "", "STR_LEQ_EMPTY_EQ"], [74, 9, 1, "", "STR_LT_ELIM"], [74, 9, 1, "", "STR_PREFIXOF_ELIM"], [74, 9, 1, "", "STR_PREFIXOF_ONE"], [74, 9, 1, "", "STR_REPLACE_ALL_NO_CONTAINS"], [74, 9, 1, "", "STR_REPLACE_CONTAINS_PRE"], [74, 9, 1, "", "STR_REPLACE_EMPTY"], [74, 9, 1, "", "STR_REPLACE_NO_CONTAINS"], [74, 9, 1, "", "STR_REPLACE_PREFIX"], [74, 9, 1, "", "STR_REPLACE_RE_ALL_NONE"], [74, 9, 1, "", "STR_REPLACE_RE_NONE"], [74, 9, 1, "", "STR_REPLACE_SELF"], [74, 9, 1, "", "STR_SUBSTR_COMBINE1"], [74, 9, 1, "", "STR_SUBSTR_COMBINE2"], [74, 9, 1, "", "STR_SUBSTR_COMBINE3"], [74, 9, 1, "", "STR_SUBSTR_COMBINE4"], [74, 9, 1, "", "STR_SUBSTR_CONCAT1"], [74, 9, 1, "", "STR_SUBSTR_CONCAT2"], [74, 9, 1, "", "STR_SUBSTR_EMPTY_RANGE"], [74, 9, 1, "", "STR_SUBSTR_EMPTY_START"], [74, 9, 1, "", "STR_SUBSTR_EMPTY_START_NEG"], [74, 9, 1, "", "STR_SUBSTR_EMPTY_STR"], [74, 9, 1, "", "STR_SUBSTR_EQ_EMPTY"], [74, 9, 1, "", "STR_SUBSTR_FULL"], [74, 9, 1, "", "STR_SUBSTR_FULL_EQ"], [74, 9, 1, "", "STR_SUBSTR_LEN_INCLUDE"], [74, 9, 1, "", "STR_SUBSTR_LEN_INCLUDE_PRE"], [74, 9, 1, "", "STR_SUBSTR_LEN_SKIP"], [74, 9, 1, "", "STR_SUFFIXOF_ELIM"], [74, 9, 1, "", "STR_SUFFIXOF_ONE"], [74, 9, 1, "", "STR_TO_INT_CONCAT_NEG_ONE"], [74, 9, 1, "", "STR_TO_LOWER_CONCAT"], [74, 9, 1, "", "STR_TO_LOWER_FROM_INT"], [74, 9, 1, "", "STR_TO_LOWER_LEN"], [74, 9, 1, "", "STR_TO_LOWER_UPPER"], [74, 9, 1, "", "STR_TO_UPPER_CONCAT"], [74, 9, 1, "", "STR_TO_UPPER_FROM_INT"], [74, 9, 1, "", "STR_TO_UPPER_LEN"], [74, 9, 1, "", "STR_TO_UPPER_LOWER"], [74, 9, 1, "", "UF_BV2NAT_GEQ_ELIM"], [74, 9, 1, "", "UF_BV2NAT_INT2BV"], [74, 9, 1, "", "UF_BV2NAT_INT2BV_EXTEND"], [74, 9, 1, "", "UF_BV2NAT_INT2BV_EXTRACT"], [74, 9, 1, "", "UF_INT2BV_BV2NAT"], [74, 9, 1, "", "UF_INT2BV_BVULE_EQUIV"], [74, 9, 1, "", "UF_INT2BV_BVULT_EQUIV"]], "cvc5.ProofRule": [[74, 9, 1, "", "ACI_NORM"], [74, 9, 1, "", "ALETHE_RULE"], [74, 9, 1, "", "ALPHA_EQUIV"], [74, 9, 1, "", "AND_ELIM"], [74, 9, 1, "", "AND_INTRO"], [74, 9, 1, "", "ARITH_MULT_ABS_COMPARISON"], [74, 9, 1, "", "ARITH_MULT_NEG"], [74, 9, 1, "", "ARITH_MULT_POS"], [74, 9, 1, "", "ARITH_MULT_SIGN"], [74, 9, 1, "", "ARITH_MULT_TANGENT"], [74, 9, 1, "", "ARITH_POLY_NORM"], [74, 9, 1, "", "ARITH_POLY_NORM_REL"], [74, 9, 1, "", "ARITH_REDUCTION"], [74, 9, 1, "", "ARITH_SUM_UB"], [74, 9, 1, "", "ARITH_TRANS_EXP_APPROX_ABOVE_NEG"], [74, 9, 1, "", "ARITH_TRANS_EXP_APPROX_ABOVE_POS"], [74, 9, 1, "", "ARITH_TRANS_EXP_APPROX_BELOW"], [74, 9, 1, "", "ARITH_TRANS_EXP_NEG"], [74, 9, 1, "", "ARITH_TRANS_EXP_POSITIVITY"], [74, 9, 1, "", "ARITH_TRANS_EXP_SUPER_LIN"], [74, 9, 1, "", "ARITH_TRANS_EXP_ZERO"], [74, 9, 1, "", "ARITH_TRANS_PI"], [74, 9, 1, "", "ARITH_TRANS_SINE_APPROX_ABOVE_NEG"], [74, 9, 1, "", "ARITH_TRANS_SINE_APPROX_ABOVE_POS"], [74, 9, 1, "", "ARITH_TRANS_SINE_APPROX_BELOW_NEG"], [74, 9, 1, "", "ARITH_TRANS_SINE_APPROX_BELOW_POS"], [74, 9, 1, "", "ARITH_TRANS_SINE_BOUNDS"], [74, 9, 1, "", "ARITH_TRANS_SINE_SHIFT"], [74, 9, 1, "", "ARITH_TRANS_SINE_SYMMETRY"], [74, 9, 1, "", "ARITH_TRANS_SINE_TANGENT_PI"], [74, 9, 1, "", "ARITH_TRANS_SINE_TANGENT_ZERO"], [74, 9, 1, "", "ARITH_TRICHOTOMY"], [74, 9, 1, "", "ARRAYS_EXT"], [74, 9, 1, "", "ARRAYS_READ_OVER_WRITE"], [74, 9, 1, "", "ARRAYS_READ_OVER_WRITE_1"], [74, 9, 1, "", "ARRAYS_READ_OVER_WRITE_CONTRA"], [74, 9, 1, "", "ASSUME"], [74, 9, 1, "", "BV_BITBLAST_STEP"], [74, 9, 1, "", "BV_EAGER_ATOM"], [74, 9, 1, "", "CHAIN_RESOLUTION"], [74, 9, 1, "", "CNF_AND_NEG"], [74, 9, 1, "", "CNF_AND_POS"], [74, 9, 1, "", "CNF_EQUIV_NEG1"], [74, 9, 1, "", "CNF_EQUIV_NEG2"], [74, 9, 1, "", "CNF_EQUIV_POS1"], [74, 9, 1, "", "CNF_EQUIV_POS2"], [74, 9, 1, "", "CNF_IMPLIES_NEG1"], [74, 9, 1, "", "CNF_IMPLIES_NEG2"], [74, 9, 1, "", "CNF_IMPLIES_POS"], [74, 9, 1, "", "CNF_ITE_NEG1"], [74, 9, 1, "", "CNF_ITE_NEG2"], [74, 9, 1, "", "CNF_ITE_NEG3"], [74, 9, 1, "", "CNF_ITE_POS1"], [74, 9, 1, "", "CNF_ITE_POS2"], [74, 9, 1, "", "CNF_ITE_POS3"], [74, 9, 1, "", "CNF_OR_NEG"], [74, 9, 1, "", "CNF_OR_POS"], [74, 9, 1, "", "CNF_XOR_NEG1"], [74, 9, 1, "", "CNF_XOR_NEG2"], [74, 9, 1, "", "CNF_XOR_POS1"], [74, 9, 1, "", "CNF_XOR_POS2"], [74, 9, 1, "", "CONCAT_CONFLICT"], [74, 9, 1, "", "CONCAT_CONFLICT_DEQ"], [74, 9, 1, "", "CONCAT_CPROP"], [74, 9, 1, "", "CONCAT_CSPLIT"], [74, 9, 1, "", "CONCAT_EQ"], [74, 9, 1, "", "CONCAT_LPROP"], [74, 9, 1, "", "CONCAT_SPLIT"], [74, 9, 1, "", "CONCAT_UNIFY"], [74, 9, 1, "", "CONG"], [74, 9, 1, "", "CONTRA"], [74, 9, 1, "", "DRAT_REFUTATION"], [74, 9, 1, "", "DSL_REWRITE"], [74, 9, 1, "", "DT_CLASH"], [74, 9, 1, "", "DT_SPLIT"], [74, 9, 1, "", "ENCODE_EQ_INTRO"], [74, 9, 1, "", "EQUIV_ELIM1"], [74, 9, 1, "", "EQUIV_ELIM2"], [74, 9, 1, "", "EQ_RESOLVE"], [74, 9, 1, "", "EVALUATE"], [74, 9, 1, "", "FACTORING"], [74, 9, 1, "", "FALSE_ELIM"], [74, 9, 1, "", "FALSE_INTRO"], [74, 9, 1, "", "HO_APP_ENCODE"], [74, 9, 1, "", "HO_CONG"], [74, 9, 1, "", "IMPLIES_ELIM"], [74, 9, 1, "", "INSTANTIATE"], [74, 9, 1, "", "INT_TIGHT_LB"], [74, 9, 1, "", "INT_TIGHT_UB"], [74, 9, 1, "", "ITE_ELIM1"], [74, 9, 1, "", "ITE_ELIM2"], [74, 9, 1, "", "ITE_EQ"], [74, 9, 1, "", "LFSC_RULE"], [74, 9, 1, "", "MACRO_ARITH_SCALE_SUM_UB"], [74, 9, 1, "", "MACRO_BV_BITBLAST"], [74, 9, 1, "", "MACRO_RESOLUTION"], [74, 9, 1, "", "MACRO_RESOLUTION_TRUST"], [74, 9, 1, "", "MACRO_REWRITE"], [74, 9, 1, "", "MACRO_SR_EQ_INTRO"], [74, 9, 1, "", "MACRO_SR_PRED_ELIM"], [74, 9, 1, "", "MACRO_SR_PRED_INTRO"], [74, 9, 1, "", "MACRO_SR_PRED_TRANSFORM"], [74, 9, 1, "", "MACRO_STRING_INFERENCE"], [74, 9, 1, "", "MODUS_PONENS"], [74, 9, 1, "", "NARY_CONG"], [74, 9, 1, "", "NOT_AND"], [74, 9, 1, "", "NOT_EQUIV_ELIM1"], [74, 9, 1, "", "NOT_EQUIV_ELIM2"], [74, 9, 1, "", "NOT_IMPLIES_ELIM1"], [74, 9, 1, "", "NOT_IMPLIES_ELIM2"], [74, 9, 1, "", "NOT_ITE_ELIM1"], [74, 9, 1, "", "NOT_ITE_ELIM2"], [74, 9, 1, "", "NOT_NOT_ELIM"], [74, 9, 1, "", "NOT_OR_ELIM"], [74, 9, 1, "", "NOT_XOR_ELIM1"], [74, 9, 1, "", "NOT_XOR_ELIM2"], [74, 9, 1, "", "QUANT_VAR_REORDERING"], [74, 9, 1, "", "REFL"], [74, 9, 1, "", "REORDERING"], [74, 9, 1, "", "RESOLUTION"], [74, 9, 1, "", "RE_INTER"], [74, 9, 1, "", "RE_UNFOLD_NEG"], [74, 9, 1, "", "RE_UNFOLD_NEG_CONCAT_FIXED"], [74, 9, 1, "", "RE_UNFOLD_POS"], [74, 9, 1, "", "SAT_EXTERNAL_PROVE"], [74, 9, 1, "", "SAT_REFUTATION"], [74, 9, 1, "", "SCOPE"], [74, 9, 1, "", "SETS_EXT"], [74, 9, 1, "", "SETS_FILTER_DOWN"], [74, 9, 1, "", "SETS_FILTER_UP"], [74, 9, 1, "", "SETS_SINGLETON_INJ"], [74, 9, 1, "", "SKOLEMIZE"], [74, 9, 1, "", "SKOLEM_INTRO"], [74, 9, 1, "", "SPLIT"], [74, 9, 1, "", "STRING_CODE_INJ"], [74, 9, 1, "", "STRING_DECOMPOSE"], [74, 9, 1, "", "STRING_EAGER_REDUCTION"], [74, 9, 1, "", "STRING_EXT"], [74, 9, 1, "", "STRING_LENGTH_NON_EMPTY"], [74, 9, 1, "", "STRING_LENGTH_POS"], [74, 9, 1, "", "STRING_REDUCTION"], [74, 9, 1, "", "STRING_SEQ_UNIT_INJ"], [74, 9, 1, "", "SUBS"], [74, 9, 1, "", "SYMM"], [74, 9, 1, "", "THEORY_REWRITE"], [74, 9, 1, "", "TRANS"], [74, 9, 1, "", "TRUE_ELIM"], [74, 9, 1, "", "TRUE_INTRO"], [74, 9, 1, "", "TRUST"], [74, 9, 1, "", "TRUST_THEORY_REWRITE"], [74, 9, 1, "", "UNKNOWN"], [74, 9, 1, "", "XOR_ELIM1"], [74, 9, 1, "", "XOR_ELIM2"]], "cvc5.Result": [[77, 10, 1, "", "getUnknownExplanation"], [77, 10, 1, "", "isNull"], [77, 10, 1, "", "isSat"], [77, 10, 1, "", "isUnknown"], [77, 10, 1, "", "isUnsat"]], "cvc5.RoundingMode": [[78, 9, 1, "", "ROUND_NEAREST_TIES_TO_AWAY"], [78, 9, 1, "", "ROUND_NEAREST_TIES_TO_EVEN"], [78, 9, 1, "", "ROUND_TOWARD_NEGATIVE"], [78, 9, 1, "", "ROUND_TOWARD_POSITIVE"], [78, 9, 1, "", "ROUND_TOWARD_ZERO"]], "cvc5.Solver": [[79, 10, 1, "", "addPlugin"], [79, 10, 1, "", "addSygusAssume"], [79, 10, 1, "", "addSygusConstraint"], [79, 10, 1, "", "addSygusInvConstraint"], [79, 10, 1, "", "assertFormula"], [79, 10, 1, "", "blockModel"], [79, 10, 1, "", "blockModelValues"], [79, 10, 1, "", "checkSat"], [79, 10, 1, "", "checkSatAssuming"], [79, 10, 1, "", "checkSynth"], [79, 10, 1, "", "checkSynthNext"], [79, 10, 1, "", "declareDatatype"], [79, 10, 1, "", "declareFun"], [79, 10, 1, "", "declarePool"], [79, 10, 1, "", "declareSepHeap"], [79, 10, 1, "", "declareSort"], [79, 10, 1, "", "declareSygusVar"], [79, 10, 1, "", "defineFun"], [79, 10, 1, "", "defineFunRec"], [79, 10, 1, "", "defineFunsRec"], [79, 10, 1, "", "findSynth"], [79, 10, 1, "", "findSynthNext"], [79, 10, 1, "", "getAbduct"], [79, 10, 1, "", "getAbductNext"], [79, 10, 1, "", "getAssertions"], [79, 10, 1, "", "getBooleanSort"], [79, 10, 1, "", "getDifficulty"], [79, 10, 1, "", "getInfo"], [79, 10, 1, "", "getInstantiations"], [79, 10, 1, "", "getIntegerSort"], [79, 10, 1, "", "getInterpolant"], [79, 10, 1, "", "getInterpolantNext"], [79, 10, 1, "", "getLearnedLiterals"], [79, 10, 1, "", "getLogic"], [79, 10, 1, "", "getModel"], [79, 10, 1, "", "getModelDomainElements"], [79, 10, 1, "", "getNumIndicesForSkolemId"], [79, 10, 1, "", "getOption"], [79, 10, 1, "", "getOptionInfo"], [79, 10, 1, "", "getOptionNames"], [79, 10, 1, "", "getProof"], [79, 10, 1, "", "getQuantifierElimination"], [79, 10, 1, "", "getQuantifierEliminationDisjunct"], [79, 10, 1, "", "getRealSort"], [79, 10, 1, "", "getRegExpSort"], [79, 10, 1, "", "getRoundingModeSort"], [79, 10, 1, "", "getStatistics"], [79, 10, 1, "", "getStringSort"], [79, 10, 1, "", "getSygusAssumptions"], [79, 10, 1, "", "getSygusConstraints"], [79, 10, 1, "", "getSynthSolution"], [79, 10, 1, "", "getSynthSolutions"], [79, 10, 1, "", "getTermManager"], [79, 10, 1, "", "getTimeoutCore"], [79, 10, 1, "", "getTimeoutCoreAssuming"], [79, 10, 1, "", "getUnsatAssumptions"], [79, 10, 1, "", "getUnsatCore"], [79, 10, 1, "", "getUnsatCoreLemmas"], [79, 10, 1, "", "getValue"], [79, 10, 1, "", "getValueSepHeap"], [79, 10, 1, "", "getValueSepNil"], [79, 10, 1, "", "getVersion"], [79, 10, 1, "", "isLogicSet"], [79, 10, 1, "", "isModelCoreSymbol"], [79, 10, 1, "", "mkAbstractSort"], [79, 10, 1, "", "mkArraySort"], [79, 10, 1, "", "mkBagSort"], [79, 10, 1, "", "mkBitVector"], [79, 10, 1, "", "mkBitVectorSort"], [79, 10, 1, "", "mkBoolean"], [79, 10, 1, "", "mkCardinalityConstraint"], [79, 10, 1, "", "mkConst"], [79, 10, 1, "", "mkConstArray"], [79, 10, 1, "", "mkDatatypeConstructorDecl"], [79, 10, 1, "", "mkDatatypeDecl"], [79, 10, 1, "", "mkDatatypeSort"], [79, 10, 1, "", "mkDatatypeSorts"], [79, 10, 1, "", "mkEmptyBag"], [79, 10, 1, "", "mkEmptySequence"], [79, 10, 1, "", "mkEmptySet"], [79, 10, 1, "", "mkFalse"], [79, 10, 1, "", "mkFiniteFieldElem"], [79, 10, 1, "", "mkFiniteFieldSort"], [79, 10, 1, "", "mkFloatingPoint"], [79, 10, 1, "", "mkFloatingPointNaN"], [79, 10, 1, "", "mkFloatingPointNegInf"], [79, 10, 1, "", "mkFloatingPointNegZero"], [79, 10, 1, "", "mkFloatingPointPosInf"], [79, 10, 1, "", "mkFloatingPointPosZero"], [79, 10, 1, "", "mkFloatingPointSort"], [79, 10, 1, "", "mkFunctionSort"], [79, 10, 1, "", "mkGrammar"], [79, 10, 1, "", "mkInteger"], [79, 10, 1, "", "mkNullableIsNull"], [79, 10, 1, "", "mkNullableIsSome"], [79, 10, 1, "", "mkNullableLift"], [79, 10, 1, "", "mkNullableNull"], [79, 10, 1, "", "mkNullableSome"], [79, 10, 1, "", "mkNullableSort"], [79, 10, 1, "", "mkNullableVal"], [79, 10, 1, "", "mkOp"], [79, 10, 1, "", "mkParamSort"], [79, 10, 1, "", "mkPi"], [79, 10, 1, "", "mkPredicateSort"], [79, 10, 1, "", "mkReal"], [79, 10, 1, "", "mkRecordSort"], [79, 10, 1, "", "mkRegexpAll"], [79, 10, 1, "", "mkRegexpAllchar"], [79, 10, 1, "", "mkRegexpNone"], [79, 10, 1, "", "mkRoundingMode"], [79, 10, 1, "", "mkSepEmp"], [79, 10, 1, "", "mkSepNil"], [79, 10, 1, "", "mkSequenceSort"], [79, 10, 1, "", "mkSetSort"], [79, 10, 1, "", "mkSkolem"], [79, 10, 1, "", "mkString"], [79, 10, 1, "", "mkTerm"], [79, 10, 1, "", "mkTrue"], [79, 10, 1, "", "mkTuple"], [79, 10, 1, "", "mkTupleSort"], [79, 10, 1, "", "mkUninterpretedSort"], [79, 10, 1, "", "mkUninterpretedSortConstructorSort"], [79, 10, 1, "", "mkUniverseSet"], [79, 10, 1, "", "mkUnresolvedDatatypeSort"], [79, 10, 1, "", "mkVar"], [79, 10, 1, "", "pop"], [79, 10, 1, "", "proofToString"], [79, 10, 1, "", "push"], [79, 10, 1, "", "resetAssertions"], [79, 10, 1, "", "setInfo"], [79, 10, 1, "", "setLogic"], [79, 10, 1, "", "setOption"], [79, 10, 1, "", "simplify"], [79, 10, 1, "", "synthFun"]], "cvc5.Sort": [[80, 10, 1, "", "getAbstractedKind"], [80, 10, 1, "", "getArrayElementSort"], [80, 10, 1, "", "getArrayIndexSort"], [80, 10, 1, "", "getBagElementSort"], [80, 10, 1, "", "getBitVectorSize"], [80, 10, 1, "", "getDatatype"], [80, 10, 1, "", "getDatatypeArity"], [80, 10, 1, "", "getDatatypeConstructorArity"], [80, 10, 1, "", "getDatatypeConstructorCodomainSort"], [80, 10, 1, "", "getDatatypeConstructorDomainSorts"], [80, 10, 1, "", "getDatatypeSelectorCodomainSort"], [80, 10, 1, "", "getDatatypeSelectorDomainSort"], [80, 10, 1, "", "getDatatypeTesterCodomainSort"], [80, 10, 1, "", "getDatatypeTesterDomainSort"], [80, 10, 1, "", "getFiniteFieldSize"], [80, 10, 1, "", "getFloatingPointExponentSize"], [80, 10, 1, "", "getFloatingPointSignificandSize"], [80, 10, 1, "", "getFunctionArity"], [80, 10, 1, "", "getFunctionCodomainSort"], [80, 10, 1, "", "getFunctionDomainSorts"], [80, 10, 1, "", "getInstantiatedParameters"], [80, 10, 1, "", "getKind"], [80, 10, 1, "", "getNullableElementSort"], [80, 10, 1, "", "getSequenceElementSort"], [80, 10, 1, "", "getSetElementSort"], [80, 10, 1, "", "getSymbol"], [80, 10, 1, "", "getTupleLength"], [80, 10, 1, "", "getTupleSorts"], [80, 10, 1, "", "getUninterpretedSortConstructor"], [80, 10, 1, "", "getUninterpretedSortConstructorArity"], [80, 10, 1, "", "hasSymbol"], [80, 10, 1, "", "instantiate"], [80, 10, 1, "", "isAbstract"], [80, 10, 1, "", "isArray"], [80, 10, 1, "", "isBag"], [80, 10, 1, "", "isBitVector"], [80, 10, 1, "", "isBoolean"], [80, 10, 1, "", "isDatatype"], [80, 10, 1, "", "isDatatypeConstructor"], [80, 10, 1, "", "isDatatypeSelector"], [80, 10, 1, "", "isDatatypeTester"], [80, 10, 1, "", "isDatatypeUpdater"], [80, 10, 1, "", "isFiniteField"], [80, 10, 1, "", "isFloatingPoint"], [80, 10, 1, "", "isFunction"], [80, 10, 1, "", "isInstantiated"], [80, 10, 1, "", "isInteger"], [80, 10, 1, "", "isNull"], [80, 10, 1, "", "isNullable"], [80, 10, 1, "", "isPredicate"], [80, 10, 1, "", "isReal"], [80, 10, 1, "", "isRecord"], [80, 10, 1, "", "isRegExp"], [80, 10, 1, "", "isRoundingMode"], [80, 10, 1, "", "isSequence"], [80, 10, 1, "", "isSet"], [80, 10, 1, "", "isString"], [80, 10, 1, "", "isTuple"], [80, 10, 1, "", "isUninterpretedSort"], [80, 10, 1, "", "isUninterpretedSortConstructor"], [80, 10, 1, "", "substitute"]], "cvc5.SortKind": [[81, 9, 1, "", "ABSTRACT_SORT"], [81, 9, 1, "", "ARRAY_SORT"], [81, 9, 1, "", "BAG_SORT"], [81, 9, 1, "", "BITVECTOR_SORT"], [81, 9, 1, "", "BOOLEAN_SORT"], [81, 9, 1, "", "DATATYPE_SORT"], [81, 9, 1, "", "FINITE_FIELD_SORT"], [81, 9, 1, "", "FLOATINGPOINT_SORT"], [81, 9, 1, "", "FUNCTION_SORT"], [81, 9, 1, "", "INTEGER_SORT"], [81, 9, 1, "", "INTERNAL_SORT_KIND"], [81, 9, 1, "", "LAST_SORT_KIND"], [81, 9, 1, "", "NULLABLE_SORT"], [81, 9, 1, "", "NULL_SORT"], [81, 9, 1, "", "REAL_SORT"], [81, 9, 1, "", "REGLAN_SORT"], [81, 9, 1, "", "ROUNDINGMODE_SORT"], [81, 9, 1, "", "SEQUENCE_SORT"], [81, 9, 1, "", "SET_SORT"], [81, 9, 1, "", "STRING_SORT"], [81, 9, 1, "", "TUPLE_SORT"], [81, 9, 1, "", "UNDEFINED_SORT_KIND"], [81, 9, 1, "", "UNINTERPRETED_SORT"]], "cvc5.Statistics": [[82, 10, 1, "", "__getitem__"], [82, 10, 1, "", "__iter__"], [82, 10, 1, "", "__next__"], [82, 10, 1, "", "get"]], "cvc5.SymbolManager": [[83, 10, 1, "", "getDeclaredSorts"], [83, 10, 1, "", "getDeclaredTerms"], [83, 10, 1, "", "getLogic"], [83, 10, 1, "", "getNamedTerms"], [83, 10, 1, "", "isLogicSet"]], "cvc5.SynthResult": [[84, 10, 1, "", "hasNoSolution"], [84, 10, 1, "", "hasSolution"], [84, 10, 1, "", "isNull"], [84, 10, 1, "", "isUnknown"]], "cvc5.Term": [[85, 10, 1, "", "__getitem__"], [85, 10, 1, "", "__iter__"], [85, 10, 1, "", "andTerm"], [85, 10, 1, "", "eqTerm"], [85, 10, 1, "", "getBitVectorValue"], [85, 10, 1, "", "getBooleanValue"], [85, 10, 1, "", "getCardinalityConstraint"], [85, 10, 1, "", "getConstArrayBase"], [85, 10, 1, "", "getFiniteFieldValue"], [85, 10, 1, "", "getFloatingPointValue"], [85, 10, 1, "", "getId"], [85, 10, 1, "", "getIntegerValue"], [85, 10, 1, "", "getKind"], [85, 10, 1, "", "getNumChildren"], [85, 10, 1, "", "getOp"], [85, 10, 1, "", "getRealAlgebraicNumberDefiningPolynomial"], [85, 10, 1, "", "getRealAlgebraicNumberLowerBound"], [85, 10, 1, "", "getRealAlgebraicNumberUpperBound"], [85, 10, 1, "", "getRealOrIntegerValueSign"], [85, 10, 1, "", "getRealValue"], [85, 10, 1, "", "getRoundingModeValue"], [85, 10, 1, "", "getSequenceValue"], [85, 10, 1, "", "getSetValue"], [85, 10, 1, "", "getSkolemId"], [85, 10, 1, "", "getSkolemIndices"], [85, 10, 1, "", "getSort"], [85, 10, 1, "", "getStringValue"], [85, 10, 1, "", "getSymbol"], [85, 10, 1, "", "getTupleValue"], [85, 10, 1, "", "getUninterpretedSortValue"], [85, 10, 1, "", "hasOp"], [85, 10, 1, "", "hasSymbol"], [85, 10, 1, "", "impTerm"], [85, 10, 1, "", "isBitVectorValue"], [85, 10, 1, "", "isBooleanValue"], [85, 10, 1, "", "isCardinalityConstraint"], [85, 10, 1, "", "isConstArray"], [85, 10, 1, "", "isFiniteFieldValue"], [85, 10, 1, "", "isFloatingPointNaN"], [85, 10, 1, "", "isFloatingPointNegInf"], [85, 10, 1, "", "isFloatingPointNegZero"], [85, 10, 1, "", "isFloatingPointPosInf"], [85, 10, 1, "", "isFloatingPointPosZero"], [85, 10, 1, "", "isFloatingPointValue"], [85, 10, 1, "", "isIntegerValue"], [85, 10, 1, "", "isNull"], [85, 10, 1, "", "isRealAlgebraicNumber"], [85, 10, 1, "", "isRealValue"], [85, 10, 1, "", "isRoundingModeValue"], [85, 10, 1, "", "isSequenceValue"], [85, 10, 1, "", "isSetValue"], [85, 10, 1, "", "isSkolem"], [85, 10, 1, "", "isStringValue"], [85, 10, 1, "", "isTupleValue"], [85, 10, 1, "", "isUninterpretedSortValue"], [85, 10, 1, "", "iteTerm"], [85, 10, 1, "", "notTerm"], [85, 10, 1, "", "orTerm"], [85, 10, 1, "", "substitute"], [85, 10, 1, "", "toPythonObj"], [85, 10, 1, "", "xorTerm"]], "cvc5.TermManager": [[86, 10, 1, "", "getBooleanSort"], [86, 10, 1, "", "getIntegerSort"], [86, 10, 1, "", "getNumIndicesForSkolemId"], [86, 10, 1, "", "getRealSort"], [86, 10, 1, "", "getRegExpSort"], [86, 10, 1, "", "getRoundingModeSort"], [86, 10, 1, "", "getStatistics"], [86, 10, 1, "", "getStringSort"], [86, 10, 1, "", "mkAbstractSort"], [86, 10, 1, "", "mkArraySort"], [86, 10, 1, "", "mkBagSort"], [86, 10, 1, "", "mkBitVector"], [86, 10, 1, "", "mkBitVectorSort"], [86, 10, 1, "", "mkBoolean"], [86, 10, 1, "", "mkCardinalityConstraint"], [86, 10, 1, "", "mkConst"], [86, 10, 1, "", "mkConstArray"], [86, 10, 1, "", "mkDatatypeConstructorDecl"], [86, 10, 1, "", "mkDatatypeDecl"], [86, 10, 1, "", "mkDatatypeSort"], [86, 10, 1, "", "mkDatatypeSorts"], [86, 10, 1, "", "mkEmptyBag"], [86, 10, 1, "", "mkEmptySequence"], [86, 10, 1, "", "mkEmptySet"], [86, 10, 1, "", "mkFalse"], [86, 10, 1, "", "mkFiniteFieldElem"], [86, 10, 1, "", "mkFiniteFieldSort"], [86, 10, 1, "", "mkFloatingPoint"], [86, 10, 1, "", "mkFloatingPointNaN"], [86, 10, 1, "", "mkFloatingPointNegInf"], [86, 10, 1, "", "mkFloatingPointNegZero"], [86, 10, 1, "", "mkFloatingPointPosInf"], [86, 10, 1, "", "mkFloatingPointPosZero"], [86, 10, 1, "", "mkFloatingPointSort"], [86, 10, 1, "", "mkFunctionSort"], [86, 10, 1, "", "mkInteger"], [86, 10, 1, "", "mkNullableIsNull"], [86, 10, 1, "", "mkNullableIsSome"], [86, 10, 1, "", "mkNullableLift"], [86, 10, 1, "", "mkNullableNull"], [86, 10, 1, "", "mkNullableSome"], [86, 10, 1, "", "mkNullableSort"], [86, 10, 1, "", "mkNullableVal"], [86, 10, 1, "", "mkOp"], [86, 10, 1, "", "mkParamSort"], [86, 10, 1, "", "mkPi"], [86, 10, 1, "", "mkPredicateSort"], [86, 10, 1, "", "mkReal"], [86, 10, 1, "", "mkRecordSort"], [86, 10, 1, "", "mkRegexpAll"], [86, 10, 1, "", "mkRegexpAllchar"], [86, 10, 1, "", "mkRegexpNone"], [86, 10, 1, "", "mkRoundingMode"], [86, 10, 1, "", "mkSepEmp"], [86, 10, 1, "", "mkSepNil"], [86, 10, 1, "", "mkSequenceSort"], [86, 10, 1, "", "mkSetSort"], [86, 10, 1, "", "mkSkolem"], [86, 10, 1, "", "mkString"], [86, 10, 1, "", "mkTerm"], [86, 10, 1, "", "mkTrue"], [86, 10, 1, "", "mkTuple"], [86, 10, 1, "", "mkTupleSort"], [86, 10, 1, "", "mkUninterpretedSort"], [86, 10, 1, "", "mkUninterpretedSortConstructorSort"], [86, 10, 1, "", "mkUniverseSet"], [86, 10, 1, "", "mkUnresolvedDatatypeSort"], [86, 10, 1, "", "mkVar"]], "cvc5.UnknownExplanation": [[87, 9, 1, "", "INCOMPLETE"], [87, 9, 1, "", "INTERRUPTED"], [87, 9, 1, "", "MEMOUT"], [87, 9, 1, "", "OTHER"], [87, 9, 1, "", "REQUIRES_CHECK_AGAIN"], [87, 9, 1, "", "REQUIRES_FULL_CHECK"], [87, 9, 1, "", "RESOURCEOUT"], [87, 9, 1, "", "TIMEOUT"], [87, 9, 1, "", "UNKNOWN_REASON"], [87, 9, 1, "", "UNSUPPORTED"]], "cvc5.pythonic": [[89, 11, 1, "", "Add"], [103, 11, 1, "", "AllChar"], [92, 11, 1, "", "And"], [89, 11, 1, "", "Arccosecant"], [89, 11, 1, "", "Arccosine"], [89, 11, 1, "", "Arccotangent"], [89, 11, 1, "", "Arcsecant"], [89, 11, 1, "", "Arcsine"], [89, 11, 1, "", "Arctangent"], [89, 8, 1, "", "ArithRef"], [89, 8, 1, "", "ArithSortRef"], [90, 11, 1, "", "Array"], [90, 8, 1, "", "ArrayRef"], [90, 11, 1, "", "ArraySort"], [90, 8, 1, "", "ArraySortRef"], [91, 11, 1, "", "BV2Int"], [91, 11, 1, "", "BVAdd"], [91, 11, 1, "", "BVAnd"], [91, 11, 1, "", "BVMult"], [91, 11, 1, "", "BVNeg"], [91, 11, 1, "", "BVNot"], [91, 11, 1, "", "BVOr"], [91, 11, 1, "", "BVRedAnd"], [91, 11, 1, "", "BVRedOr"], [91, 11, 1, "", "BVSub"], [91, 11, 1, "", "BVXor"], [91, 11, 1, "", "BitVec"], [91, 8, 1, "", "BitVecNumRef"], [91, 8, 1, "", "BitVecRef"], [91, 11, 1, "", "BitVecSort"], [91, 8, 1, "", "BitVecSortRef"], [91, 11, 1, "", "BitVecVal"], [91, 11, 1, "", "BitVecs"], [92, 11, 1, "", "Bool"], [92, 8, 1, "", "BoolRef"], [92, 11, 1, "", "BoolSort"], [92, 8, 1, "", "BoolSortRef"], [92, 11, 1, "", "BoolVal"], [92, 11, 1, "", "BoolVector"], [92, 11, 1, "", "Bools"], [89, 11, 1, "", "Cbrt"], [102, 8, 1, "", "CheckSatResult"], [103, 11, 1, "", "Complement"], [91, 11, 1, "", "Concat"], [92, 11, 1, "", "Const"], [90, 11, 1, "", "ConstArray"], [92, 11, 1, "", "Consts"], [103, 11, 1, "", "Contains"], [89, 11, 1, "", "Cosecant"], [89, 11, 1, "", "Cosine"], [89, 11, 1, "", "Cotangent"], [93, 11, 1, "", "CreateDatatypes"], [93, 8, 1, "", "Datatype"], [93, 8, 1, "", "DatatypeConstructorRef"], [93, 8, 1, "", "DatatypeRecognizerRef"], [93, 8, 1, "", "DatatypeRef"], [93, 8, 1, "", "DatatypeSelectorRef"], [93, 8, 1, "", "DatatypeSortRef"], [103, 11, 1, "", "Diff"], [93, 11, 1, "", "DisjointSum"], [92, 11, 1, "", "Distinct"], [89, 11, 1, "", "Div"], [100, 11, 1, "", "Empty"], [101, 11, 1, "", "EmptySet"], [98, 11, 1, "", "Exists"], [89, 11, 1, "", "Exponential"], [92, 8, 1, "", "ExprRef"], [91, 11, 1, "", "Extract"], [94, 11, 1, "", "FFAdd"], [94, 11, 1, "", "FFMult"], [94, 11, 1, "", "FFNeg"], [94, 11, 1, "", "FFSub"], [95, 11, 1, "", "FP"], [95, 8, 1, "", "FPNumRef"], [95, 8, 1, "", "FPRMRef"], [95, 8, 1, "", "FPRef"], [95, 11, 1, "", "FPSort"], [95, 8, 1, "", "FPSortRef"], [95, 11, 1, "", "FPVal"], [95, 11, 1, "", "FPs"], [94, 11, 1, "", "FiniteFieldElem"], [94, 11, 1, "", "FiniteFieldElems"], [94, 8, 1, "", "FiniteFieldNumRef"], [94, 8, 1, "", "FiniteFieldRef"], [94, 11, 1, "", "FiniteFieldSort"], [94, 8, 1, "", "FiniteFieldSortRef"], [94, 11, 1, "", "FiniteFieldVal"], [95, 11, 1, "", "Float128"], [95, 11, 1, "", "Float16"], [95, 11, 1, "", "Float32"], [95, 11, 1, "", "Float64"], [95, 11, 1, "", "FloatDouble"], [95, 11, 1, "", "FloatHalf"], [95, 11, 1, "", "FloatQuadruple"], [95, 11, 1, "", "FloatSingle"], [98, 11, 1, "", "ForAll"], [92, 11, 1, "", "FreshBool"], [92, 11, 1, "", "FreshConst"], [92, 11, 1, "", "FreshFunction"], [89, 11, 1, "", "FreshInt"], [89, 11, 1, "", "FreshReal"], [103, 11, 1, "", "Full"], [101, 11, 1, "", "FullSet"], [92, 8, 1, "", "FuncDeclRef"], [92, 11, 1, "", "Function"], [89, 11, 1, "", "Geq"], [89, 11, 1, "", "Gt"], [92, 11, 1, "", "If"], [92, 11, 1, "", "Implies"], [103, 11, 1, "", "InRe"], [103, 11, 1, "", "IndexOf"], [89, 11, 1, "", "Int"], [91, 11, 1, "", "Int2BV"], [89, 8, 1, "", "IntNumRef"], [89, 11, 1, "", "IntSort"], [103, 11, 1, "", "IntToStr"], [89, 11, 1, "", "IntVal"], [89, 11, 1, "", "IntVector"], [103, 11, 1, "", "Intersect"], [89, 11, 1, "", "Ints"], [89, 11, 1, "", "IntsModulus"], [89, 11, 1, "", "IsInt"], [101, 11, 1, "", "IsMember"], [101, 11, 1, "", "IsSubset"], [90, 11, 1, "", "K"], [91, 11, 1, "", "LShR"], [98, 11, 1, "", "Lambda"], [103, 11, 1, "", "Length"], [89, 11, 1, "", "Leq"], [103, 11, 1, "", "Loop"], [89, 11, 1, "", "Lt"], [102, 8, 1, "", "ModelRef"], [89, 11, 1, "", "Mult"], [92, 11, 1, "", "Not"], [103, 11, 1, "", "Option"], [92, 11, 1, "", "Or"], [89, 11, 1, "", "Pi"], [103, 11, 1, "", "Plus"], [89, 11, 1, "", "Pow"], [103, 11, 1, "", "PrefixOf"], [102, 11, 1, "", "Product"], [89, 11, 1, "", "Q"], [98, 8, 1, "", "QuantifierRef"], [95, 11, 1, "", "RNA"], [95, 11, 1, "", "RNE"], [95, 11, 1, "", "RTN"], [95, 11, 1, "", "RTP"], [95, 11, 1, "", "RTZ"], [103, 11, 1, "", "Range"], [89, 8, 1, "", "RatNumRef"], [89, 11, 1, "", "RatVal"], [103, 11, 1, "", "Re"], [89, 11, 1, "", "Real"], [89, 11, 1, "", "RealSort"], [89, 11, 1, "", "RealVal"], [89, 11, 1, "", "RealVector"], [89, 11, 1, "", "Reals"], [91, 11, 1, "", "RepeatBitVec"], [103, 11, 1, "", "Replace"], [91, 11, 1, "", "RotateLeft"], [91, 11, 1, "", "RotateRight"], [95, 11, 1, "", "RoundNearestTiesToAway"], [95, 11, 1, "", "RoundNearestTiesToEven"], [95, 11, 1, "", "RoundTowardNegative"], [95, 11, 1, "", "RoundTowardPositive"], [95, 11, 1, "", "RoundTowardZero"], [91, 11, 1, "", "SDiv"], [91, 11, 1, "", "SGE"], [91, 11, 1, "", "SGT"], [91, 11, 1, "", "SLE"], [91, 11, 1, "", "SLT"], [96, 8, 1, "", "SMTException"], [91, 11, 1, "", "SMod"], [91, 11, 1, "", "SRem"], [89, 11, 1, "", "Secant"], [90, 11, 1, "", "Select"], [100, 8, 1, "", "SeqRef"], [100, 11, 1, "", "SeqSort"], [100, 8, 1, "", "SeqSortRef"], [100, 11, 1, "", "SeqUpdate"], [101, 11, 1, "", "Set"], [101, 11, 1, "", "SetAdd"], [101, 11, 1, "", "SetComplement"], [101, 11, 1, "", "SetDel"], [101, 11, 1, "", "SetDifference"], [101, 11, 1, "", "SetIntersect"], [101, 11, 1, "", "SetMinus"], [101, 8, 1, "", "SetRef"], [101, 11, 1, "", "SetSort"], [101, 8, 1, "", "SetSortRef"], [101, 11, 1, "", "SetUnion"], [91, 11, 1, "", "SignExt"], [102, 11, 1, "", "SimpleSolver"], [89, 11, 1, "", "Sine"], [101, 11, 1, "", "Singleton"], [102, 8, 1, "", "Solver"], [102, 11, 1, "", "SolverFor"], [92, 8, 1, "", "SortRef"], [89, 11, 1, "", "Sqrt"], [103, 11, 1, "", "Star"], [90, 11, 1, "", "Store"], [103, 11, 1, "", "StrFromCode"], [103, 11, 1, "", "StrToCode"], [103, 11, 1, "", "StrToInt"], [103, 11, 1, "", "String"], [103, 8, 1, "", "StringRef"], [103, 11, 1, "", "StringSort"], [103, 8, 1, "", "StringSortRef"], [103, 11, 1, "", "StringVal"], [103, 11, 1, "", "Strings"], [89, 11, 1, "", "Sub"], [100, 11, 1, "", "SubSeq"], [103, 11, 1, "", "SubString"], [103, 11, 1, "", "SuffixOf"], [102, 11, 1, "", "Sum"], [89, 11, 1, "", "Tangent"], [89, 11, 1, "", "ToInt"], [89, 11, 1, "", "ToReal"], [93, 11, 1, "", "TupleSort"], [91, 11, 1, "", "UDiv"], [91, 11, 1, "", "UGE"], [91, 11, 1, "", "UGT"], [91, 11, 1, "", "ULE"], [91, 11, 1, "", "ULT"], [89, 11, 1, "", "UMinus"], [91, 11, 1, "", "URem"], [103, 11, 1, "", "Union"], [100, 11, 1, "", "Unit"], [90, 11, 1, "", "Update"], [92, 11, 1, "", "Xor"], [91, 11, 1, "", "ZeroExt"], [102, 11, 1, "", "evaluate"], [95, 11, 1, "", "fpAbs"], [95, 11, 1, "", "fpAdd"], [95, 11, 1, "", "fpBVToFP"], [95, 11, 1, "", "fpDiv"], [95, 11, 1, "", "fpEQ"], [95, 11, 1, "", "fpFMA"], [95, 11, 1, "", "fpFP"], [95, 11, 1, "", "fpFPToFP"], [95, 11, 1, "", "fpGEQ"], [95, 11, 1, "", "fpGT"], [95, 11, 1, "", "fpInfinity"], [95, 11, 1, "", "fpIsInf"], [95, 11, 1, "", "fpIsNaN"], [95, 11, 1, "", "fpIsNegative"], [95, 11, 1, "", "fpIsNormal"], [95, 11, 1, "", "fpIsPositive"], [95, 11, 1, "", "fpIsSubnormal"], [95, 11, 1, "", "fpIsZero"], [95, 11, 1, "", "fpLEQ"], [95, 11, 1, "", "fpLT"], [95, 11, 1, "", "fpMax"], [95, 11, 1, "", "fpMin"], [95, 11, 1, "", "fpMinusInfinity"], [95, 11, 1, "", "fpMinusZero"], [95, 11, 1, "", "fpMul"], [95, 11, 1, "", "fpNEQ"], [95, 11, 1, "", "fpNaN"], [95, 11, 1, "", "fpNeg"], [95, 11, 1, "", "fpPlusInfinity"], [95, 11, 1, "", "fpPlusZero"], [95, 11, 1, "", "fpRealToFP"], [95, 11, 1, "", "fpRem"], [95, 11, 1, "", "fpRoundToIntegral"], [95, 11, 1, "", "fpSignedToFP"], [95, 11, 1, "", "fpSqrt"], [95, 11, 1, "", "fpSub"], [95, 11, 1, "", "fpToFP"], [95, 11, 1, "", "fpToFPUnsigned"], [95, 11, 1, "", "fpToReal"], [95, 11, 1, "", "fpToSBV"], [95, 11, 1, "", "fpToUBV"], [95, 11, 1, "", "fpUnsignedToFP"], [95, 11, 1, "", "fpZero"], [95, 11, 1, "", "get_default_fp_sort"], [95, 11, 1, "", "get_default_rounding_mode"], [90, 11, 1, "", "is_K"], [89, 11, 1, "", "is_add"], [92, 11, 1, "", "is_and"], [96, 11, 1, "", "is_app"], [96, 11, 1, "", "is_app_of"], [89, 11, 1, "", "is_arith"], [89, 11, 1, "", "is_arith_sort"], [90, 11, 1, "", "is_array"], [90, 11, 1, "", "is_array_sort"], [92, 11, 1, "", "is_bool"], [92, 11, 1, "", "is_bool_value"], [91, 11, 1, "", "is_bv"], [91, 11, 1, "", "is_bv_sort"], [91, 11, 1, "", "is_bv_value"], [92, 11, 1, "", "is_const"], [90, 11, 1, "", "is_const_array"], [92, 11, 1, "", "is_distinct"], [89, 11, 1, "", "is_div"], [92, 11, 1, "", "is_eq"], [96, 11, 1, "", "is_expr"], [92, 11, 1, "", "is_false"], [94, 11, 1, "", "is_ff"], [94, 11, 1, "", "is_ff_sort"], [94, 11, 1, "", "is_ff_value"], [95, 11, 1, "", "is_fp"], [95, 11, 1, "", "is_fp_sort"], [95, 11, 1, "", "is_fp_value"], [95, 11, 1, "", "is_fprm"], [95, 11, 1, "", "is_fprm_sort"], [95, 11, 1, "", "is_fprm_value"], [92, 11, 1, "", "is_func_decl"], [89, 11, 1, "", "is_ge"], [89, 11, 1, "", "is_gt"], [89, 11, 1, "", "is_idiv"], [92, 11, 1, "", "is_implies"], [89, 11, 1, "", "is_int"], [89, 11, 1, "", "is_int_value"], [89, 11, 1, "", "is_is_int"], [89, 11, 1, "", "is_le"], [89, 11, 1, "", "is_lt"], [89, 11, 1, "", "is_mod"], [89, 11, 1, "", "is_mul"], [92, 11, 1, "", "is_not"], [92, 11, 1, "", "is_or"], [98, 11, 1, "", "is_quantifier"], [89, 11, 1, "", "is_rational_value"], [89, 11, 1, "", "is_real"], [90, 11, 1, "", "is_select"], [96, 11, 1, "", "is_sort"], [90, 11, 1, "", "is_store"], [89, 11, 1, "", "is_sub"], [102, 11, 1, "", "is_tautology"], [89, 11, 1, "", "is_to_int"], [89, 11, 1, "", "is_to_real"], [92, 11, 1, "", "is_true"], [90, 11, 1, "", "is_update"], [98, 11, 1, "", "is_var"], [92, 11, 1, "", "mk_not"], [102, 11, 1, "", "prove"], [102, 12, 1, "", "sat"], [95, 11, 1, "", "set_default_fp_sort"], [95, 11, 1, "", "set_default_rounding_mode"], [102, 11, 1, "", "simplify"], [102, 11, 1, "", "solve"], [102, 11, 1, "", "solve_using"], [102, 11, 1, "", "substitute"], [102, 12, 1, "", "unknown"], [102, 12, 1, "", "unsat"]], "cvc5.pythonic.ArithRef": [[89, 10, 1, "", "__add__"], [89, 10, 1, "", "__div__"], [89, 10, 1, "", "__ge__"], [89, 10, 1, "", "__gt__"], [89, 10, 1, "", "__le__"], [89, 10, 1, "", "__lt__"], [89, 10, 1, "", "__mod__"], [89, 10, 1, "", "__mul__"], [89, 10, 1, "", "__neg__"], [89, 10, 1, "", "__pos__"], [89, 10, 1, "", "__pow__"], [89, 10, 1, "", "__radd__"], [89, 10, 1, "", "__rdiv__"], [89, 10, 1, "", "__rmod__"], [89, 10, 1, "", "__rmul__"], [89, 10, 1, "", "__rpow__"], [89, 10, 1, "", "__rsub__"], [89, 10, 1, "", "__rtruediv__"], [89, 10, 1, "", "__sub__"], [89, 10, 1, "", "__truediv__"], [89, 10, 1, "", "is_int"], [89, 10, 1, "", "is_real"], [89, 10, 1, "", "sort"]], "cvc5.pythonic.ArithSortRef": [[89, 10, 1, "", "cast"], [89, 10, 1, "", "is_int"], [89, 10, 1, "", "is_real"], [89, 10, 1, "", "subsort"]], "cvc5.pythonic.ArrayRef": [[90, 10, 1, "", "__getitem__"], [90, 10, 1, "", "arg"], [90, 10, 1, "", "default"], [90, 10, 1, "", "domain"], [90, 10, 1, "", "range"], [90, 10, 1, "", "sort"]], "cvc5.pythonic.ArraySortRef": [[90, 10, 1, "", "domain"], [90, 10, 1, "", "range"]], "cvc5.pythonic.BitVecNumRef": [[91, 10, 1, "", "as_long"], [91, 10, 1, "", "as_signed_long"]], "cvc5.pythonic.BitVecRef": [[91, 10, 1, "", "__add__"], [91, 10, 1, "", "__and__"], [91, 10, 1, "", "__div__"], [91, 10, 1, "", "__ge__"], [91, 10, 1, "", "__gt__"], [91, 10, 1, "", "__invert__"], [91, 10, 1, "", "__le__"], [91, 10, 1, "", "__lshift__"], [91, 10, 1, "", "__lt__"], [91, 10, 1, "", "__mod__"], [91, 10, 1, "", "__mul__"], [91, 10, 1, "", "__neg__"], [91, 10, 1, "", "__or__"], [91, 10, 1, "", "__pos__"], [91, 10, 1, "", "__radd__"], [91, 10, 1, "", "__rand__"], [91, 10, 1, "", "__rdiv__"], [91, 10, 1, "", "__rlshift__"], [91, 10, 1, "", "__rmod__"], [91, 10, 1, "", "__rmul__"], [91, 10, 1, "", "__ror__"], [91, 10, 1, "", "__rrshift__"], [91, 10, 1, "", "__rshift__"], [91, 10, 1, "", "__rsub__"], [91, 10, 1, "", "__rtruediv__"], [91, 10, 1, "", "__rxor__"], [91, 10, 1, "", "__sub__"], [91, 10, 1, "", "__truediv__"], [91, 10, 1, "", "__xor__"], [91, 10, 1, "", "size"], [91, 10, 1, "", "sort"]], "cvc5.pythonic.BitVecSortRef": [[91, 10, 1, "", "cast"], [91, 10, 1, "", "size"], [91, 10, 1, "", "subsort"]], "cvc5.pythonic.BoolRef": [[92, 10, 1, "", "__mul__"], [92, 10, 1, "", "__rmul__"], [92, 10, 1, "", "sort"]], "cvc5.pythonic.BoolSortRef": [[92, 10, 1, "", "cast"], [92, 10, 1, "", "is_bool"], [92, 10, 1, "", "is_int"], [92, 10, 1, "", "subsort"]], "cvc5.pythonic.CheckSatResult": [[102, 10, 1, "", "__eq__"], [102, 9, 1, "", "__hash__"], [102, 10, 1, "", "__init__"], [102, 10, 1, "", "__ne__"], [102, 10, 1, "", "__repr__"], [102, 9, 1, "", "__weakref__"]], "cvc5.pythonic.Datatype": [[93, 10, 1, "", "__init__"], [93, 10, 1, "", "__repr__"], [93, 9, 1, "", "__weakref__"], [93, 10, 1, "", "create"], [93, 10, 1, "", "declare"]], "cvc5.pythonic.DatatypeConstructorRef": [[93, 10, 1, "", "__call__"], [93, 10, 1, "", "__init__"], [93, 10, 1, "", "arity"], [93, 10, 1, "", "domain"], [93, 10, 1, "", "range"]], "cvc5.pythonic.DatatypeRecognizerRef": [[93, 10, 1, "", "__call__"], [93, 10, 1, "", "__init__"], [93, 10, 1, "", "arity"], [93, 10, 1, "", "domain"], [93, 10, 1, "", "range"]], "cvc5.pythonic.DatatypeRef": [[93, 10, 1, "", "sort"]], "cvc5.pythonic.DatatypeSelectorRef": [[93, 10, 1, "", "__call__"], [93, 10, 1, "", "__init__"], [93, 10, 1, "", "arity"], [93, 10, 1, "", "domain"], [93, 10, 1, "", "range"]], "cvc5.pythonic.DatatypeSortRef": [[93, 10, 1, "", "__init__"], [93, 10, 1, "", "accessor"], [93, 10, 1, "", "constructor"], [93, 10, 1, "", "num_constructors"], [93, 10, 1, "", "recognizer"]], "cvc5.pythonic.ExprRef": [[92, 10, 1, "", "__bool__"], [92, 10, 1, "", "__eq__"], [92, 10, 1, "", "__hash__"], [92, 10, 1, "", "__init__"], [92, 10, 1, "", "__ne__"], [92, 10, 1, "", "__nonzero__"], [92, 10, 1, "", "__repr__"], [92, 10, 1, "", "__str__"], [92, 9, 1, "", "__weakref__"], [92, 10, 1, "", "arg"], [92, 10, 1, "", "as_ast"], [92, 10, 1, "", "children"], [92, 10, 1, "", "decl"], [92, 10, 1, "", "eq"], [92, 10, 1, "", "get_id"], [92, 10, 1, "", "hash"], [92, 10, 1, "", "is_int"], [92, 10, 1, "", "kind"], [92, 10, 1, "", "num_args"], [92, 10, 1, "", "sexpr"], [92, 10, 1, "", "sort"]], "cvc5.pythonic.FPNumRef": [[95, 10, 1, "", "as_string"], [95, 10, 1, "", "exponent"], [95, 10, 1, "", "exponent_as_long"], [95, 10, 1, "", "isInf"], [95, 10, 1, "", "isNaN"], [95, 10, 1, "", "isNegative"], [95, 10, 1, "", "isNormal"], [95, 10, 1, "", "isPositive"], [95, 10, 1, "", "isSubnormal"], [95, 10, 1, "", "isZero"], [95, 10, 1, "", "sign"], [95, 10, 1, "", "significand"], [95, 10, 1, "", "significand_as_long"]], "cvc5.pythonic.FPRMRef": [[95, 10, 1, "", "as_string"]], "cvc5.pythonic.FPRef": [[95, 10, 1, "", "__add__"], [95, 10, 1, "", "__div__"], [95, 10, 1, "", "__ge__"], [95, 10, 1, "", "__gt__"], [95, 10, 1, "", "__le__"], [95, 10, 1, "", "__lt__"], [95, 10, 1, "", "__mod__"], [95, 10, 1, "", "__mul__"], [95, 10, 1, "", "__neg__"], [95, 10, 1, "", "__pos__"], [95, 10, 1, "", "__radd__"], [95, 10, 1, "", "__rdiv__"], [95, 10, 1, "", "__rmod__"], [95, 10, 1, "", "__rmul__"], [95, 10, 1, "", "__rsub__"], [95, 10, 1, "", "__rtruediv__"], [95, 10, 1, "", "__sub__"], [95, 10, 1, "", "__truediv__"], [95, 10, 1, "", "as_string"], [95, 10, 1, "", "ebits"], [95, 10, 1, "", "sbits"], [95, 10, 1, "", "sort"]], "cvc5.pythonic.FPSortRef": [[95, 10, 1, "", "cast"], [95, 10, 1, "", "ebits"], [95, 10, 1, "", "sbits"]], "cvc5.pythonic.FiniteFieldNumRef": [[94, 10, 1, "", "as_long"], [94, 10, 1, "", "as_signed_long"]], "cvc5.pythonic.FiniteFieldRef": [[94, 10, 1, "", "__add__"], [94, 10, 1, "", "__mul__"], [94, 10, 1, "", "__neg__"], [94, 10, 1, "", "__pos__"], [94, 10, 1, "", "__radd__"], [94, 10, 1, "", "__rmul__"], [94, 10, 1, "", "__rsub__"], [94, 10, 1, "", "__sub__"], [94, 10, 1, "", "size"], [94, 10, 1, "", "sort"]], "cvc5.pythonic.FiniteFieldSortRef": [[94, 10, 1, "", "cast"], [94, 10, 1, "", "size"]], "cvc5.pythonic.FuncDeclRef": [[92, 10, 1, "", "__call__"], [92, 10, 1, "", "arity"], [92, 10, 1, "", "domain"], [92, 10, 1, "", "name"], [92, 10, 1, "", "range"]], "cvc5.pythonic.IntNumRef": [[89, 10, 1, "", "as_binary_string"], [89, 10, 1, "", "as_long"], [89, 10, 1, "", "as_string"]], "cvc5.pythonic.ModelRef": [[102, 10, 1, "", "__getitem__"], [102, 10, 1, "", "__init__"], [102, 10, 1, "", "__len__"], [102, 10, 1, "", "__repr__"], [102, 9, 1, "", "__weakref__"], [102, 10, 1, "", "decls"], [102, 10, 1, "", "eval"], [102, 10, 1, "", "evaluate"], [102, 10, 1, "", "vars"]], "cvc5.pythonic.QuantifierRef": [[98, 10, 1, "", "as_ast"], [98, 10, 1, "", "body"], [98, 10, 1, "", "children"], [98, 10, 1, "", "is_exists"], [98, 10, 1, "", "is_forall"], [98, 10, 1, "", "is_lambda"], [98, 10, 1, "", "num_vars"], [98, 10, 1, "", "sort"], [98, 10, 1, "", "var_name"], [98, 10, 1, "", "var_sort"]], "cvc5.pythonic.RatNumRef": [[89, 10, 1, "", "as_decimal"], [89, 10, 1, "", "as_fraction"], [89, 10, 1, "", "as_long"], [89, 10, 1, "", "as_string"], [89, 10, 1, "", "denominator"], [89, 10, 1, "", "denominator_as_long"], [89, 10, 1, "", "is_int"], [89, 10, 1, "", "is_int_value"], [89, 10, 1, "", "is_real"], [89, 10, 1, "", "numerator"], [89, 10, 1, "", "numerator_as_long"]], "cvc5.pythonic.SMTException": [[96, 10, 1, "", "__init__"], [96, 10, 1, "", "__str__"], [96, 9, 1, "", "__weakref__"]], "cvc5.pythonic.SeqRef": [[100, 10, 1, "", "__add__"], [100, 10, 1, "", "__getitem__"], [100, 10, 1, "", "as_string"], [100, 10, 1, "", "at"], [100, 10, 1, "", "is_string_value"]], "cvc5.pythonic.SeqSortRef": [[100, 10, 1, "", "elem_sort"], [100, 10, 1, "", "is_string"]], "cvc5.pythonic.SetRef": [[101, 10, 1, "", "__and__"], [101, 10, 1, "", "__getitem__"], [101, 10, 1, "", "__or__"], [101, 10, 1, "", "default"], [101, 10, 1, "", "domain"], [101, 10, 1, "", "range"], [101, 10, 1, "", "sort"]], "cvc5.pythonic.SetSortRef": [[101, 10, 1, "", "domain"], [101, 10, 1, "", "range"]], "cvc5.pythonic.Solver": [[102, 10, 1, "", "__iadd__"], [102, 10, 1, "", "__init__"], [102, 10, 1, "", "__repr__"], [102, 9, 1, "", "__weakref__"], [102, 10, 1, "", "add"], [102, 10, 1, "", "append"], [102, 10, 1, "", "assert_exprs"], [102, 10, 1, "", "assertions"], [102, 10, 1, "", "check"], [102, 10, 1, "", "getOption"], [102, 10, 1, "", "getOptionInfo"], [102, 10, 1, "", "getOptionNames"], [102, 10, 1, "", "initFromLogic"], [102, 10, 1, "", "insert"], [102, 10, 1, "", "model"], [102, 10, 1, "", "num_scopes"], [102, 10, 1, "", "pop"], [102, 10, 1, "", "proof"], [102, 10, 1, "", "push"], [102, 10, 1, "", "reason_unknown"], [102, 10, 1, "", "reset"], [102, 10, 1, "", "resetAssertions"], [102, 10, 1, "", "set"], [102, 10, 1, "", "setOption"], [102, 10, 1, "", "sexpr"], [102, 10, 1, "", "statistics"], [102, 10, 1, "", "unsat_core"]], "cvc5.pythonic.SortRef": [[92, 10, 1, "", "__eq__"], [92, 10, 1, "", "__hash__"], [92, 10, 1, "", "__init__"], [92, 10, 1, "", "__ne__"], [92, 10, 1, "", "__repr__"], [92, 10, 1, "", "__str__"], [92, 9, 1, "", "__weakref__"], [92, 10, 1, "", "as_ast"], [92, 10, 1, "", "cast"], [92, 10, 1, "", "eq"], [92, 10, 1, "", "hash"], [92, 10, 1, "", "is_int"], [92, 10, 1, "", "name"], [92, 10, 1, "", "sexpr"], [92, 10, 1, "", "subsort"]], "cvc5.pythonic.StringRef": [[103, 10, 1, "", "__ge__"], [103, 10, 1, "", "__getitem__"], [103, 10, 1, "", "__gt__"], [103, 10, 1, "", "__le__"], [103, 10, 1, "", "__lt__"], [103, 10, 1, "", "at"]], "cvc5.pythonic.StringSortRef": [[103, 10, 1, "", "cast"]]}, "objtypes": {"0": "cpp:enumerator", "1": "cpp:type", "2": "cpp:enum", "3": "cpp:class", "4": "cpp:member", "5": "cpp:function", "6": "cpp:functionParam", "7": "cpp:templateParam", "8": "py:class", "9": "py:attribute", "10": "py:method", "11": "py:function", "12": "py:data"}, "objnames": {"0": ["cpp", "enumerator", "C++ enumerator"], "1": ["cpp", "type", "C++ type"], "2": ["cpp", "enum", "C++ enum"], "3": ["cpp", "class", "C++ class"], "4": ["cpp", "member", "C++ member"], "5": ["cpp", "function", "C++ function"], "6": ["cpp", "functionParam", "C++ function parameter"], "7": ["cpp", "templateParam", "C++ template parameter"], "8": ["py", "class", "Python class"], "9": ["py", "attribute", "Python attribute"], "10": ["py", "method", "Python method"], "11": ["py", "function", "Python function"], "12": ["py", "data", "Python data"]}, "titleterms": {"api": [0, 1, 50, 59, 75, 88, 97, 130, 143], "document": [0, 59, 104, 129, 130], "c": [1, 50], "type": 1, "struct": 1, "enum": [1, 75], "cvc5kind": 2, "cvc5proofrul": 3, "cvc5proofrewriterul": 3, "cvc5roundingmod": 4, "cvc5sortkind": 5, "cvc5unknownexplan": 6, "mode": [7, 52, 59, 70, 95], "quickstart": [8, 58, 60, 76, 99, 105, 120], "guid": [8, 58, 60, 76, 99, 105], "exampl": [8, 58, 60, 76, 99, 105, 111, 120, 130, 143, 144, 145, 146, 150], "cvc5optioninfo": 9, "cvc5plugin": 10, "cvc5": [11, 59, 129, 130, 131], "cvc5command": 12, "cvc5datatyp": 13, "cvc5datatypeconstructor": 14, "cvc5datatypeconstructordecl": 15, "cvc5datatypedecl": 16, "cvc5datatypeselector": 17, "cvc5grammar": 18, "cvc5inputpars": 19, "cvc5op": 20, "cvc5proof": 21, "cvc5result": 22, "cvc5sort": 23, "cvc5statist": 24, "cvc5symbolmanag": 25, "cvc5synthresult": 26, "cvc5term": 27, "cvc5termmanag": 28, "sort": [28, 44, 80], "creation": 28, "oper": [28, 89, 90, 92, 95, 100, 101, 103, 130], "term": [28, 48, 85, 89, 90, 91, 92, 94, 95, 100, 101, 103], "datatyp": [28, 30, 62, 93, 110, 131, 143], "declar": [28, 93, 143], "constructor": 28, "command": [29, 61], "datatypeconstructor": [31, 63], "datatypeconstructordecl": [32, 64], "datatypedecl": [33, 65], "datatypeselector": [34, 66], "driveropt": 35, "grammar": [36, 67, 132], "inputpars": [37, 68], "op": [38, 71], "optioninfo": 39, "plugin": [40, 72], "proof": [41, 73, 131, 132, 133, 134, 135, 136, 137], "result": [42, 77, 102], "solver": [43, 79, 102, 130, 144], "statist": [45, 82, 141], "symbolmanag": [46, 83], "synthresult": [47, 84], "termmanag": [49, 86], "class": [50, 75, 89, 90, 91, 92, 93, 94, 95, 98, 100, 101, 102, 103, 130], "hierarchi": 50, "kind": [51, 69], "proofrul": [53, 74], "proofrewriterul": [53, 74], "roundingmod": [54, 78], "sortkind": [55, 81], "unknownexplan": [56, 87], "except": [57, 96, 112], "java": 59, "build": [59, 130], "javadoc": 59, "packag": 59, "io": 59, "github": 59, "base": [75, 131], "python": [75, 88, 97], "which": 88, "should": 88, "i": 88, "us": [88, 131], "instal": [88, 130], "from": 88, "pypi": 88, "sourc": 88, "arithmet": [89, 94, 117, 130, 131], "basic": [89, 90, 91, 92, 94, 95, 100, 101, 103], "builder": [89, 90, 91, 92, 94, 95, 98, 100, 101, 103], "overload": [89, 90, 91, 92, 94, 95, 100, 101, 103], "other": 89, "transcendent": [89, 150], "tester": [89, 90, 91, 92, 94, 95, 96, 98], "arrai": [90, 108, 131], "bit": [91, 107, 108, 113], "vector": [91, 107, 108, 113], "core": [92, 132], "boolean": 92, "gener": 92, "equal": 92, "overview": 93, "util": [93, 102], "finit": [94, 114, 131, 142, 144, 147], "field": [94, 114, 131, 144], "finitefield": 94, "float": [95, 115, 130, 131], "point": [95, 115, 130, 131], "fp": 95, "round": 95, "intern": 96, "quantifi": [98, 131], "sequenc": [100, 122, 146], "set": [101, 123, 131, 147], "simpl": 102, "solv": 102, "The": 102, "model": [102, 132], "string": [103, 124, 131, 148], "regular": 103, "express": [103, 131], "binari": 104, "theori": [106, 107, 108, 109, 110, 113, 114, 115, 117, 121, 122, 123, 124, 127, 130, 131, 142, 143, 144, 145, 146, 147, 148, 149, 150], "bag": [106, 131, 142], "combin": 109, "handl": 112, "extract": 113, "hello": 116, "world": 116, "linear": [117, 130], "parser": [118, 119, 131], "share": 119, "symbol": 119, "manag": [119, 139], "relat": [121, 147], "sygu": [125, 126, 132], "function": [125, 127, 131], "invari": 126, "uninterpret": [127, 131], "index": 128, "tabl": 129, "content": 129, "support": 130, "system": 130, "compil": 130, "maco": 130, "window": 130, "cross": 130, "webassembli": 130, "depend": 130, "cadic": 130, "sat": [130, 131], "gmp": 130, "gnu": 130, "multi": 130, "precis": 130, "librari": 130, "symfpu": 130, "number": 130, "option": [130, 131, 132, 139], "cryptominisat": 130, "kissat": 130, "libpoli": 130, "v0": 130, "1": 130, "13": 130, "polynomi": 130, "cocoa": 130, "comput": 130, "algebra": 130, "cln": 130, "v1": 130, "3": 130, "glpk": 130, "cut": 130, "log": 130, "A": 130, "fork": 130, "program": 130, "kit": 130, "editlin": 130, "improv": 130, "interact": 130, "experi": 130, "googl": 130, "test": 130, "unit": 130, "framework": 130, "languag": 130, "bind": 130, "regress": 130, "custom": 130, "target": 130, "recompil": 130, "specif": 130, "version": 130, "differ": 130, "lgpl": 130, "most": 131, "commonli": 131, "addit": 131, "modul": 131, "bitvector": 131, "decis": 131, "heurist": 131, "driver": 131, "parallel": 131, "print": 131, "layer": 131, "separ": [131, 145], "logic": [131, 143, 145, 150], "smt": 131, "output": 132, "tag": 132, "inst": 132, "strategi": 132, "oracl": 132, "enumer": 132, "sol": 132, "gterm": 132, "trigger": 132, "raw": 132, "benchmark": 132, "learn": 132, "lit": 132, "sub": 132, "post": 132, "assert": 132, "pre": 132, "deep": 132, "restart": 132, "incomplet": 132, "lemma": 132, "trust": 132, "step": 132, "timeout": 132, "unsat": 132, "portfolio": 132, "block": 132, "auto": 132, "rare": 132, "db": 132, "format": [133, 134, 135, 136, 137], "aleth": 133, "cooper": 134, "calculu": 134, "dot": 135, "lfsc": 136, "product": 137, "rule": 137, "refer": [138, 142, 143, 144, 145, 146, 147, 148, 149, 150], "resourc": 139, "limit": 139, "overal": 139, "time": 139, "tlimit": 139, "spend": 139, "skolem": 140, "identifi": 140, "semant": [142, 143, 144, 145, 146, 147, 148, 150], "syntax": [143, 144, 145, 146, 150], "updat": 143, "parametr": 143, "tupl": 143, "codatatyp": 143, "experiment": 144, "extens": 144, "signatur": 145, "standard": 149, "non": 149, "extend": 149}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinxcontrib.bibtex": 9, "sphinx": 58}, "alltitles": {"API Documentation": [[0, "api-documentation"]], "C API": [[1, "c-api"]], "Types": [[1, "types"]], "Structs": [[1, "structs"]], "Enums": [[1, "enums"], [75, "enums"]], "Cvc5Kind": [[2, "cvc5kind"]], "Cvc5ProofRule and Cvc5ProofRewriteRule": [[3, "cvc5proofrule-and-cvc5proofrewriterule"]], "Cvc5RoundingMode": [[4, "cvc5roundingmode"]], "Cvc5SortKind": [[5, "cvc5sortkind"]], "Cvc5UnknownExplanation": [[6, "cvc5unknownexplanation"]], "Modes": [[7, "modes"], [52, "modes"], [70, "modes"]], "Quickstart Guide": [[8, "quickstart-guide"], [58, "quickstart-guide"], [60, "quickstart-guide"], [76, "quickstart-guide"], [99, "quickstart-guide"], [105, "quickstart-guide"]], "Example": [[8, "example"], [58, "example"], [60, "example"], [76, "example"], [99, "example"], [105, "example"]], "Cvc5OptionInfo": [[9, "cvc5optioninfo"]], "Cvc5Plugin": [[10, "cvc5plugin"]], "Cvc5": [[11, "cvc5"]], "Cvc5Command": [[12, "cvc5command"]], "Cvc5Datatype": [[13, "cvc5datatype"]], "Cvc5DatatypeConstructor": [[14, "cvc5datatypeconstructor"]], "Cvc5DatatypeConstructorDecl": [[15, "cvc5datatypeconstructordecl"]], "Cvc5DatatypeDecl": [[16, "cvc5datatypedecl"]], "Cvc5DatatypeSelector": [[17, "cvc5datatypeselector"]], "Cvc5Grammar": [[18, "cvc5grammar"]], "Cvc5InputParser": [[19, "cvc5inputparser"]], "Cvc5Op": [[20, "cvc5op"]], "Cvc5Proof": [[21, "cvc5proof"]], "Cvc5Result": [[22, "cvc5result"]], "Cvc5Sort": [[23, "cvc5sort"]], "Cvc5Statistics": [[24, "cvc5statistics"]], "Cvc5SymbolManager": [[25, "cvc5symbolmanager"]], "Cvc5SynthResult": [[26, "cvc5synthresult"]], "Cvc5Term": [[27, "cvc5term"]], "Cvc5TermManager": [[28, "cvc5termmanager"]], "Sort Creation": [[28, "sort-creation"]], "Operator Creation": [[28, "operator-creation"]], "Term Creation": [[28, "term-creation"]], "Datatype Declaration Creation": [[28, "datatype-declaration-creation"]], "Datatype Constructor Declaration Creation": [[28, "datatype-constructor-declaration-creation"]], "Command": [[29, "command"], [61, "command"]], "Datatype": [[30, "datatype"], [62, "datatype"]], "DatatypeConstructor": [[31, "datatypeconstructor"], [63, "datatypeconstructor"]], "DatatypeConstructorDecl": [[32, "datatypeconstructordecl"], [64, "datatypeconstructordecl"]], "DatatypeDecl": [[33, "datatypedecl"], [65, "datatypedecl"]], "DatatypeSelector": [[34, "datatypeselector"], [66, "datatypeselector"]], "DriverOptions": [[35, "driveroptions"]], "Grammar": [[36, "grammar"], [67, "grammar"]], "InputParser": [[37, "inputparser"], [68, "inputparser"]], "Op": [[38, "op"], [71, "op"]], "OptionInfo": [[39, "optioninfo"]], "Plugin": [[40, "plugin"], [72, "plugin"]], "Proof": [[41, "proof"], [73, "proof"]], "Result": [[42, "result"], [77, "result"]], "Solver": [[43, "solver"], [79, "solver"]], "Sort": [[44, "sort"], [80, "sort"]], "Statistics": [[45, "statistics"], [82, "statistics"], [141, "statistics"]], "SymbolManager": [[46, "symbolmanager"], [83, "symbolmanager"]], "SynthResult": [[47, "synthresult"], [84, "synthresult"]], "Term": [[48, "term"], [85, "term"]], "TermManager": [[49, "termmanager"], [86, "termmanager"]], "C++ API": [[50, "c-api"]], "Class hierarchy": [[50, "class-hierarchy"]], "Kind": [[51, "kind"], [69, "kind"]], "ProofRule and ProofRewriteRule": [[53, "proofrule-and-proofrewriterule"], [74, "proofrule-and-proofrewriterule"]], "RoundingMode": [[54, "roundingmode"], [78, "roundingmode"]], "SortKind": [[55, "sortkind"], [81, "sortkind"]], "UnknownExplanation": [[56, "unknownexplanation"], [87, "unknownexplanation"]], "Exceptions": [[57, "exceptions"], [96, "exceptions"]], "Java API": [[59, "java-api"]], "Building cvc5 Java API": [[59, "building-cvc5-java-api"]], "Javadoc API Documentation": [[59, "id1"]], "Package io.github.cvc5": [[59, "id2"]], "Package io.github.cvc5.modes": [[59, "id4"]], "Base Python API": [[75, "base-python-api"]], "Classes": [[75, "classes"], [93, "classes"], [98, "classes"]], "Python API": [[88, "python-api"]], "Which Python API should I use?": [[88, "which-python-api-should-i-use"]], "Installation (from PyPi)": [[88, "installation-from-pypi"]], "Installation (from source)": [[88, "installation-from-source"]], "Arithmetic": [[89, "arithmetic"]], "Basic Arithmetic Term Builders": [[89, "basic-arithmetic-term-builders"]], "Arithmetic Overloads": [[89, "arithmetic-overloads"], [94, "arithmetic-overloads"]], "Other Arithmetic Operators": [[89, "other-arithmetic-operators"]], "Transcendentals": [[89, "transcendentals"]], "Testers": [[89, "testers"], [90, "testers"], [91, "testers"], [92, "testers"], [94, "testers"], [95, "testers"], [96, "testers"], [98, "testers"]], "Classes (with overloads)": [[89, "classes-with-overloads"], [90, "classes-with-overloads"], [91, "classes-with-overloads"], [92, "classes-with-overloads"], [94, "classes-with-overloads"], [95, "classes-with-overloads"], [100, "classes-with-overloads"], [101, "classes-with-overloads"], [103, "classes-with-overloads"]], "Arrays": [[90, "arrays"]], "Basic Array Term Builders": [[90, "basic-array-term-builders"]], "Array Operators": [[90, "array-operators"]], "Bit-Vectors": [[91, "bit-vectors"]], "Basic Bit-Vector Term Builders": [[91, "basic-bit-vector-term-builders"]], "Bit-Vector Overloads": [[91, "bit-vector-overloads"]], "Bit-Vector Term Builders": [[91, "bit-vector-term-builders"]], "Core & Booleans": [[92, "core-booleans"]], "Basic Boolean Term Builders": [[92, "basic-boolean-term-builders"]], "Basic Generic Term Builders": [[92, "basic-generic-term-builders"]], "Boolean Operators": [[92, "boolean-operators"]], "Generic Operators": [[92, "generic-operators"]], "Equality": [[92, "equality"]], "Datatypes": [[93, "datatypes"]], "Overview": [[93, "overview"]], "Declaration Utilities": [[93, "declaration-utilities"]], "Finite Fields": [[94, "finite-fields"]], "Basic FiniteField Term Builders": [[94, "basic-finitefield-term-builders"]], "Floating Point": [[95, "floating-point"]], "Basic FP Term Builders": [[95, "basic-fp-term-builders"]], "FP Operators": [[95, "fp-operators"]], "FP Rounding Modes": [[95, "fp-rounding-modes"]], "Internals": [[96, "internals"]], "Pythonic API": [[97, "pythonic-api"]], "Quantifiers": [[98, "quantifiers"]], "Builders": [[98, "builders"]], "Sequences": [[100, "sequences"]], "Basic Sequence Term Builders": [[100, "basic-sequence-term-builders"]], "Sequence Operators": [[100, "sequence-operators"]], "Sets": [[101, "sets"]], "Basic Set Term Builders": [[101, "basic-set-term-builders"]], "Set Operators": [[101, "set-operators"]], "Solvers & Results": [[102, "solvers-results"]], "Simple Solving": [[102, "simple-solving"]], "The Solver Class": [[102, "the-solver-class"]], "Results & Models": [[102, "results-models"]], "Utilities": [[102, "utilities"]], "Strings": [[103, "strings"]], "Basic String Term Builders": [[103, "basic-string-term-builders"]], "String Operators": [[103, "string-operators"]], "Basic Regular Expression Term Builders": [[103, "basic-regular-expression-term-builders"]], "Regular Expression Operators": [[103, "regular-expression-operators"]], "Binary Documentation": [[104, "binary-documentation"]], "Theory of Bags": [[106, "theory-of-bags"]], "Theory of Bit-Vectors": [[107, "theory-of-bit-vectors"]], "Theory of Bit-Vectors and Arrays": [[108, "theory-of-bit-vectors-and-arrays"]], "Theory Combination": [[109, "theory-combination"]], "Theory of Datatypes": [[110, "theory-of-datatypes"]], "Examples": [[111, "examples"], [143, "examples"], [144, "examples"], [145, "examples"], [146, "examples"], [150, "examples"]], "Exception Handling": [[112, "exception-handling"]], "Theory of Bit-Vectors: extract": [[113, "theory-of-bit-vectors-extract"]], "Theory of Finite Fields": [[114, "theory-of-finite-fields"]], "Theory of Floating-Points": [[115, "theory-of-floating-points"]], "Hello World": [[116, "hello-world"]], "Theory of Linear Arithmetic": [[117, "theory-of-linear-arithmetic"]], "Parser": [[118, "parser"]], "Parser with Shared Symbol Manager": [[119, "parser-with-shared-symbol-manager"]], "Quickstart Example": [[120, "quickstart-example"]], "Theory of Relations": [[121, "theory-of-relations"]], "Theory of Sequences": [[122, "theory-of-sequences"]], "Theory of Sets": [[123, "theory-of-sets"]], "Theory of Strings": [[124, "theory-of-strings"]], "SyGuS: Functions": [[125, "sygus-functions"]], "SyGuS: Invariants": [[126, "sygus-invariants"]], "Theory of Uninterpreted Functions": [[127, "theory-of-uninterpreted-functions"]], "Index": [[128, "index"]], "cvc5 Documentation": [[129, "cvc5-documentation"]], "Table of Contents": [[129, "table-of-contents"]], "Installation": [[130, "installation"]], "Building cvc5": [[130, "building-cvc5"]], "Supported Operating Systems": [[130, "supported-operating-systems"]], "Compilation on macOS": [[130, "compilation-on-macos"]], "Compilation on Windows": [[130, "compilation-on-windows"]], "Cross-compiling for Windows": [[130, "cross-compiling-for-windows"]], "WebAssembly Compilation": [[130, "webassembly-compilation"]], "Build dependencies": [[130, "build-dependencies"]], "CaDiCaL (SAT solver)": [[130, "cadical-sat-solver"]], "GMP (GNU Multi-Precision arithmetic library)": [[130, "gmp-gnu-multi-precision-arithmetic-library"]], "SymFPU (Support for the Theory of Floating Point Numbers)": [[130, "symfpu-support-for-the-theory-of-floating-point-numbers"]], "Optional Dependencies": [[130, "optional-dependencies"]], "CryptoMiniSat (Optional SAT solver)": [[130, "cryptominisat-optional-sat-solver"]], "Kissat (Optional SAT solver)": [[130, "kissat-optional-sat-solver"]], "LibPoly >= v0.1.13 (Optional polynomial library)": [[130, "libpoly-v0-1-13-optional-polynomial-library"]], "CoCoA (Optional computer algebra library)": [[130, "cocoa-optional-computer-algebra-library"]], "CLN >= v1.3 (Class Library for Numbers)": [[130, "cln-v1-3-class-library-for-numbers"]], "glpk-cut-log (A fork of the GNU Linear Programming Kit)": [[130, "glpk-cut-log-a-fork-of-the-gnu-linear-programming-kit"]], "Editline library (Improved Interactive Experience)": [[130, "editline-library-improved-interactive-experience"]], "Google Test Unit Testing Framework (Unit Tests)": [[130, "google-test-unit-testing-framework-unit-tests"]], "Language bindings": [[130, "language-bindings"]], "Dependencies for Language Bindings": [[130, "dependencies-for-language-bindings"]], "Building the API Documentation": [[130, "building-the-api-documentation"]], "Building the Examples": [[130, "building-the-examples"]], "Testing cvc5": [[130, "id3"]], "Testing System Tests": [[130, "testing-system-tests"]], "Testing Unit Tests": [[130, "testing-unit-tests"]], "Testing Regression Tests": [[130, "testing-regression-tests"]], "Custom Targets": [[130, "custom-targets"]], "Recompiling a specific cvc5 version with different LGPL library versions": [[130, "recompiling-a-specific-cvc5-version-with-different-lgpl-library-versions"]], "Options": [[131, "options"]], "Most Commonly-Used cvc5 Options": [[131, "most-commonly-used-cvc5-options"]], "Additional cvc5 Options": [[131, "additional-cvc5-options"]], "Arithmetic Theory Module": [[131, "arithmetic-theory-module"]], "Arrays Theory Module": [[131, "arrays-theory-module"]], "Bags Theory Module": [[131, "bags-theory-module"]], "Base Module": [[131, "base-module"]], "Bitvector Theory Module": [[131, "bitvector-theory-module"]], "Datatypes Theory Module": [[131, "datatypes-theory-module"]], "Decision Heuristics Module": [[131, "decision-heuristics-module"]], "Expression Module": [[131, "expression-module"]], "Finite Field Theory Module": [[131, "finite-field-theory-module"]], "Floating-Point Module": [[131, "floating-point-module"]], "Driver Module": [[131, "driver-module"]], "Parallel Module": [[131, "parallel-module"]], "Parser Module": [[131, "parser-module"]], "Printing Module": [[131, "printing-module"]], "Proof Module": [[131, "proof-module"]], "SAT Layer Module": [[131, "sat-layer-module"]], "Quantifiers Module": [[131, "quantifiers-module"]], "Separation Logic Theory Module": [[131, "separation-logic-theory-module"]], "Sets Theory Module": [[131, "sets-theory-module"]], "SMT Layer Module": [[131, "smt-layer-module"]], "Strings Theory Module": [[131, "strings-theory-module"]], "Theory Layer Module": [[131, "theory-layer-module"]], "Uninterpreted Functions Theory Module": [[131, "uninterpreted-functions-theory-module"]], "Output tags": [[132, "output-tags"]], "inst": [[132, "inst"]], "inst-strategy": [[132, "inst-strategy"]], "oracles": [[132, "oracles"]], "sygus": [[132, "sygus"]], "sygus-grammar": [[132, "sygus-grammar"]], "sygus-enumerator": [[132, "sygus-enumerator"]], "sygus-sol-gterm": [[132, "sygus-sol-gterm"]], "trigger": [[132, "trigger"]], "raw-benchmark": [[132, "raw-benchmark"]], "learned-lits": [[132, "learned-lits"]], "subs": [[132, "subs"]], "post-asserts": [[132, "post-asserts"]], "pre-asserts": [[132, "pre-asserts"]], "deep-restart": [[132, "deep-restart"]], "incomplete": [[132, "incomplete"]], "lemmas": [[132, "lemmas"]], "trusted-proof-steps": [[132, "trusted-proof-steps"]], "timeout-core-benchmark": [[132, "timeout-core-benchmark"]], "unsat-core-benchmark": [[132, "unsat-core-benchmark"]], "unsat-core-lemmas-benchmark": [[132, "unsat-core-lemmas-benchmark"]], "unsat-core-lemmas": [[132, "unsat-core-lemmas"]], "portfolio": [[132, "portfolio"]], "block-model": [[132, "block-model"]], "options-auto": [[132, "options-auto"]], "rare-db": [[132, "rare-db"]], "Proof format: Alethe": [[133, "proof-format-alethe"]], "Proof format: Cooperating Proof Calculus": [[134, "proof-format-cooperating-proof-calculus"]], "Proof format: DOT": [[135, "proof-format-dot"]], "Proof format: LFSC": [[136, "proof-format-lfsc"]], "Proof Production": [[137, "proof-production"]], "Proof Rules": [[137, "proof-rules"]], "Proof Formats": [[137, "proof-formats"]], "References": [[138, "references"]], "Resource limits": [[139, "resource-limits"]], "Overall time limit (tlimit option)": [[139, "overall-time-limit-tlimit-option"]], "Resource manager and resource spending": [[139, "resource-manager-and-resource-spending"]], "Skolem Identifiers": [[140, "skolem-identifiers"]], "Theory Reference: Bags": [[142, "theory-reference-bags"]], "Finite Bags": [[142, "finite-bags"]], "Semantics": [[142, "semantics"], [143, "semantics"], [144, "semantics"], [145, "semantics"], [146, "semantics"], [147, "semantics"], [148, "semantics"], [150, "semantics"]], "Theory Reference: Datatypes": [[143, "theory-reference-datatypes"]], "Logic": [[143, "logic"], [150, "logic"]], "Syntax": [[143, "syntax"], [144, "syntax"], [145, "syntax"], [146, "syntax"], [150, "syntax"]], "Example Declarations": [[143, "example-declarations"]], "Datatype Updaters": [[143, "datatype-updaters"]], "Parametric Datatypes": [[143, "parametric-datatypes"]], "Tuples": [[143, "tuples"]], "Codatatypes": [[143, "codatatypes"]], "Syntax/API": [[143, "syntax-api"]], "Theory Reference: Finite Fields": [[144, "theory-reference-finite-fields"]], "Experimental Extensions": [[144, "experimental-extensions"]], "Solvers": [[144, "solvers"]], "Theory Reference: Separation Logic": [[145, "theory-reference-separation-logic"]], "Signature": [[145, "signature"]], "Theory Reference: Sequences": [[146, "theory-reference-sequences"]], "Theory Reference: Sets and Relations": [[147, "theory-reference-sets-and-relations"]], "Finite Sets": [[147, "finite-sets"]], "Finite Relations": [[147, "finite-relations"]], "Theory Reference: Strings": [[148, "theory-reference-strings"]], "Theory References": [[149, "theory-references"]], "Standardized theories": [[149, "standardized-theories"]], "Non-standard or extended theories": [[149, "non-standard-or-extended-theories"]], "Theory Reference: Transcendentals": [[150, "theory-reference-transcendentals"]]}, "indexentries": {"cvc5kind (c++ enum)": [[2, "_CPPv48Cvc5Kind"]], "cvc5kind::cvc5_kind_abs (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind13CVC5_KIND_ABSE"]], "cvc5kind::cvc5_kind_add (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind13CVC5_KIND_ADDE"]], "cvc5kind::cvc5_kind_and (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind13CVC5_KIND_ANDE"]], "cvc5kind::cvc5_kind_apply_constructor (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind27CVC5_KIND_APPLY_CONSTRUCTORE"]], "cvc5kind::cvc5_kind_apply_selector (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind24CVC5_KIND_APPLY_SELECTORE"]], "cvc5kind::cvc5_kind_apply_tester (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind22CVC5_KIND_APPLY_TESTERE"]], "cvc5kind::cvc5_kind_apply_uf (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind18CVC5_KIND_APPLY_UFE"]], "cvc5kind::cvc5_kind_apply_updater (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_APPLY_UPDATERE"]], "cvc5kind::cvc5_kind_arccosecant (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind21CVC5_KIND_ARCCOSECANTE"]], "cvc5kind::cvc5_kind_arccosine (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind19CVC5_KIND_ARCCOSINEE"]], "cvc5kind::cvc5_kind_arccotangent (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind22CVC5_KIND_ARCCOTANGENTE"]], "cvc5kind::cvc5_kind_arcsecant (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind19CVC5_KIND_ARCSECANTE"]], "cvc5kind::cvc5_kind_arcsine (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind17CVC5_KIND_ARCSINEE"]], "cvc5kind::cvc5_kind_arctangent (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind20CVC5_KIND_ARCTANGENTE"]], "cvc5kind::cvc5_kind_bag_card (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind18CVC5_KIND_BAG_CARDE"]], "cvc5kind::cvc5_kind_bag_choose (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind20CVC5_KIND_BAG_CHOOSEE"]], "cvc5kind::cvc5_kind_bag_count (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind19CVC5_KIND_BAG_COUNTE"]], "cvc5kind::cvc5_kind_bag_difference_remove (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind31CVC5_KIND_BAG_DIFFERENCE_REMOVEE"]], "cvc5kind::cvc5_kind_bag_difference_subtract (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind33CVC5_KIND_BAG_DIFFERENCE_SUBTRACTE"]], "cvc5kind::cvc5_kind_bag_empty (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind19CVC5_KIND_BAG_EMPTYE"]], "cvc5kind::cvc5_kind_bag_filter (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind20CVC5_KIND_BAG_FILTERE"]], "cvc5kind::cvc5_kind_bag_fold (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind18CVC5_KIND_BAG_FOLDE"]], "cvc5kind::cvc5_kind_bag_inter_min (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_BAG_INTER_MINE"]], "cvc5kind::cvc5_kind_bag_make (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind18CVC5_KIND_BAG_MAKEE"]], "cvc5kind::cvc5_kind_bag_map (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind17CVC5_KIND_BAG_MAPE"]], "cvc5kind::cvc5_kind_bag_member (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind20CVC5_KIND_BAG_MEMBERE"]], "cvc5kind::cvc5_kind_bag_partition (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_BAG_PARTITIONE"]], "cvc5kind::cvc5_kind_bag_setof (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind19CVC5_KIND_BAG_SETOFE"]], "cvc5kind::cvc5_kind_bag_subbag (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind20CVC5_KIND_BAG_SUBBAGE"]], "cvc5kind::cvc5_kind_bag_union_disjoint (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind28CVC5_KIND_BAG_UNION_DISJOINTE"]], "cvc5kind::cvc5_kind_bag_union_max (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_BAG_UNION_MAXE"]], "cvc5kind::cvc5_kind_bitvector_add (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_ADDE"]], "cvc5kind::cvc5_kind_bitvector_and (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_ANDE"]], "cvc5kind::cvc5_kind_bitvector_ashr (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_ASHRE"]], "cvc5kind::cvc5_kind_bitvector_bit (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_BITE"]], "cvc5kind::cvc5_kind_bitvector_comp (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_COMPE"]], "cvc5kind::cvc5_kind_bitvector_concat (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind26CVC5_KIND_BITVECTOR_CONCATE"]], "cvc5kind::cvc5_kind_bitvector_extract (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind27CVC5_KIND_BITVECTOR_EXTRACTE"]], "cvc5kind::cvc5_kind_bitvector_from_bools (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind30CVC5_KIND_BITVECTOR_FROM_BOOLSE"]], "cvc5kind::cvc5_kind_bitvector_ite (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_ITEE"]], "cvc5kind::cvc5_kind_bitvector_lshr (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_LSHRE"]], "cvc5kind::cvc5_kind_bitvector_mult (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_MULTE"]], "cvc5kind::cvc5_kind_bitvector_nand (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_NANDE"]], "cvc5kind::cvc5_kind_bitvector_neg (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_NEGE"]], "cvc5kind::cvc5_kind_bitvector_nego (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_NEGOE"]], "cvc5kind::cvc5_kind_bitvector_nor (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_NORE"]], "cvc5kind::cvc5_kind_bitvector_not (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_NOTE"]], "cvc5kind::cvc5_kind_bitvector_or (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind22CVC5_KIND_BITVECTOR_ORE"]], "cvc5kind::cvc5_kind_bitvector_redand (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind26CVC5_KIND_BITVECTOR_REDANDE"]], "cvc5kind::cvc5_kind_bitvector_redor (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_REDORE"]], "cvc5kind::cvc5_kind_bitvector_repeat (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind26CVC5_KIND_BITVECTOR_REPEATE"]], "cvc5kind::cvc5_kind_bitvector_rotate_left (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind31CVC5_KIND_BITVECTOR_ROTATE_LEFTE"]], "cvc5kind::cvc5_kind_bitvector_rotate_right (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind32CVC5_KIND_BITVECTOR_ROTATE_RIGHTE"]], "cvc5kind::cvc5_kind_bitvector_saddo (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_SADDOE"]], "cvc5kind::cvc5_kind_bitvector_sdiv (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_SDIVE"]], "cvc5kind::cvc5_kind_bitvector_sdivo (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_SDIVOE"]], "cvc5kind::cvc5_kind_bitvector_sge (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_SGEE"]], "cvc5kind::cvc5_kind_bitvector_sgt (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_SGTE"]], "cvc5kind::cvc5_kind_bitvector_shl (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_SHLE"]], "cvc5kind::cvc5_kind_bitvector_sign_extend (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind31CVC5_KIND_BITVECTOR_SIGN_EXTENDE"]], "cvc5kind::cvc5_kind_bitvector_sle (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_SLEE"]], "cvc5kind::cvc5_kind_bitvector_slt (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_SLTE"]], "cvc5kind::cvc5_kind_bitvector_sltbv (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_SLTBVE"]], "cvc5kind::cvc5_kind_bitvector_smod (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_SMODE"]], "cvc5kind::cvc5_kind_bitvector_smulo (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_SMULOE"]], "cvc5kind::cvc5_kind_bitvector_srem (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_SREME"]], "cvc5kind::cvc5_kind_bitvector_ssubo (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_SSUBOE"]], "cvc5kind::cvc5_kind_bitvector_sub (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_SUBE"]], "cvc5kind::cvc5_kind_bitvector_to_nat (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind26CVC5_KIND_BITVECTOR_TO_NATE"]], "cvc5kind::cvc5_kind_bitvector_uaddo (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_UADDOE"]], "cvc5kind::cvc5_kind_bitvector_udiv (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_UDIVE"]], "cvc5kind::cvc5_kind_bitvector_uge (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_UGEE"]], "cvc5kind::cvc5_kind_bitvector_ugt (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_UGTE"]], "cvc5kind::cvc5_kind_bitvector_ule (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_ULEE"]], "cvc5kind::cvc5_kind_bitvector_ult (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_ULTE"]], "cvc5kind::cvc5_kind_bitvector_ultbv (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_ULTBVE"]], "cvc5kind::cvc5_kind_bitvector_umulo (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_UMULOE"]], "cvc5kind::cvc5_kind_bitvector_urem (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_UREME"]], "cvc5kind::cvc5_kind_bitvector_usubo (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind25CVC5_KIND_BITVECTOR_USUBOE"]], "cvc5kind::cvc5_kind_bitvector_xnor (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind24CVC5_KIND_BITVECTOR_XNORE"]], "cvc5kind::cvc5_kind_bitvector_xor (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_BITVECTOR_XORE"]], "cvc5kind::cvc5_kind_bitvector_zero_extend (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind31CVC5_KIND_BITVECTOR_ZERO_EXTENDE"]], "cvc5kind::cvc5_kind_cardinality_constraint (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind32CVC5_KIND_CARDINALITY_CONSTRAINTE"]], "cvc5kind::cvc5_kind_constant (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind18CVC5_KIND_CONSTANTE"]], "cvc5kind::cvc5_kind_const_array (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind21CVC5_KIND_CONST_ARRAYE"]], "cvc5kind::cvc5_kind_const_bitvector (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind25CVC5_KIND_CONST_BITVECTORE"]], "cvc5kind::cvc5_kind_const_boolean (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_CONST_BOOLEANE"]], "cvc5kind::cvc5_kind_const_finite_field (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind28CVC5_KIND_CONST_FINITE_FIELDE"]], "cvc5kind::cvc5_kind_const_floatingpoint (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind29CVC5_KIND_CONST_FLOATINGPOINTE"]], "cvc5kind::cvc5_kind_const_integer (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_CONST_INTEGERE"]], "cvc5kind::cvc5_kind_const_rational (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind24CVC5_KIND_CONST_RATIONALE"]], "cvc5kind::cvc5_kind_const_roundingmode (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind28CVC5_KIND_CONST_ROUNDINGMODEE"]], "cvc5kind::cvc5_kind_const_sequence (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind24CVC5_KIND_CONST_SEQUENCEE"]], "cvc5kind::cvc5_kind_const_string (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind22CVC5_KIND_CONST_STRINGE"]], "cvc5kind::cvc5_kind_cosecant (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind18CVC5_KIND_COSECANTE"]], "cvc5kind::cvc5_kind_cosine (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind16CVC5_KIND_COSINEE"]], "cvc5kind::cvc5_kind_cotangent (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind19CVC5_KIND_COTANGENTE"]], "cvc5kind::cvc5_kind_distinct (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind18CVC5_KIND_DISTINCTE"]], "cvc5kind::cvc5_kind_divisible (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind19CVC5_KIND_DIVISIBLEE"]], "cvc5kind::cvc5_kind_division (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind18CVC5_KIND_DIVISIONE"]], "cvc5kind::cvc5_kind_division_total (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind24CVC5_KIND_DIVISION_TOTALE"]], "cvc5kind::cvc5_kind_equal (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind15CVC5_KIND_EQUALE"]], "cvc5kind::cvc5_kind_eq_range (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind18CVC5_KIND_EQ_RANGEE"]], "cvc5kind::cvc5_kind_exists (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind16CVC5_KIND_EXISTSE"]], "cvc5kind::cvc5_kind_exponential (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind21CVC5_KIND_EXPONENTIALE"]], "cvc5kind::cvc5_kind_finite_field_add (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind26CVC5_KIND_FINITE_FIELD_ADDE"]], "cvc5kind::cvc5_kind_finite_field_bitsum (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind29CVC5_KIND_FINITE_FIELD_BITSUME"]], "cvc5kind::cvc5_kind_finite_field_mult (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind27CVC5_KIND_FINITE_FIELD_MULTE"]], "cvc5kind::cvc5_kind_finite_field_neg (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind26CVC5_KIND_FINITE_FIELD_NEGE"]], "cvc5kind::cvc5_kind_floatingpoint_abs (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_ABSE"]], "cvc5kind::cvc5_kind_floatingpoint_add (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_ADDE"]], "cvc5kind::cvc5_kind_floatingpoint_div (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_DIVE"]], "cvc5kind::cvc5_kind_floatingpoint_eq (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind26CVC5_KIND_FLOATINGPOINT_EQE"]], "cvc5kind::cvc5_kind_floatingpoint_fma (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_FMAE"]], "cvc5kind::cvc5_kind_floatingpoint_fp (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind26CVC5_KIND_FLOATINGPOINT_FPE"]], "cvc5kind::cvc5_kind_floatingpoint_geq (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_GEQE"]], "cvc5kind::cvc5_kind_floatingpoint_gt (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind26CVC5_KIND_FLOATINGPOINT_GTE"]], "cvc5kind::cvc5_kind_floatingpoint_is_inf (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind30CVC5_KIND_FLOATINGPOINT_IS_INFE"]], "cvc5kind::cvc5_kind_floatingpoint_is_nan (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind30CVC5_KIND_FLOATINGPOINT_IS_NANE"]], "cvc5kind::cvc5_kind_floatingpoint_is_neg (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind30CVC5_KIND_FLOATINGPOINT_IS_NEGE"]], "cvc5kind::cvc5_kind_floatingpoint_is_normal (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind33CVC5_KIND_FLOATINGPOINT_IS_NORMALE"]], "cvc5kind::cvc5_kind_floatingpoint_is_pos (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind30CVC5_KIND_FLOATINGPOINT_IS_POSE"]], "cvc5kind::cvc5_kind_floatingpoint_is_subnormal (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind36CVC5_KIND_FLOATINGPOINT_IS_SUBNORMALE"]], "cvc5kind::cvc5_kind_floatingpoint_is_zero (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind31CVC5_KIND_FLOATINGPOINT_IS_ZEROE"]], "cvc5kind::cvc5_kind_floatingpoint_leq (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_LEQE"]], "cvc5kind::cvc5_kind_floatingpoint_lt (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind26CVC5_KIND_FLOATINGPOINT_LTE"]], "cvc5kind::cvc5_kind_floatingpoint_max (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_MAXE"]], "cvc5kind::cvc5_kind_floatingpoint_min (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_MINE"]], "cvc5kind::cvc5_kind_floatingpoint_mult (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind28CVC5_KIND_FLOATINGPOINT_MULTE"]], "cvc5kind::cvc5_kind_floatingpoint_neg (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_NEGE"]], "cvc5kind::cvc5_kind_floatingpoint_rem (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_REME"]], "cvc5kind::cvc5_kind_floatingpoint_rti (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_RTIE"]], "cvc5kind::cvc5_kind_floatingpoint_sqrt (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind28CVC5_KIND_FLOATINGPOINT_SQRTE"]], "cvc5kind::cvc5_kind_floatingpoint_sub (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind27CVC5_KIND_FLOATINGPOINT_SUBE"]], "cvc5kind::cvc5_kind_floatingpoint_to_fp_from_fp (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind37CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_FPE"]], "cvc5kind::cvc5_kind_floatingpoint_to_fp_from_ieee_bv (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind42CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_IEEE_BVE"]], "cvc5kind::cvc5_kind_floatingpoint_to_fp_from_real (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind39CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_REALE"]], "cvc5kind::cvc5_kind_floatingpoint_to_fp_from_sbv (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind38CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_SBVE"]], "cvc5kind::cvc5_kind_floatingpoint_to_fp_from_ubv (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind38CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_UBVE"]], "cvc5kind::cvc5_kind_floatingpoint_to_real (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind31CVC5_KIND_FLOATINGPOINT_TO_REALE"]], "cvc5kind::cvc5_kind_floatingpoint_to_sbv (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind30CVC5_KIND_FLOATINGPOINT_TO_SBVE"]], "cvc5kind::cvc5_kind_floatingpoint_to_ubv (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind30CVC5_KIND_FLOATINGPOINT_TO_UBVE"]], "cvc5kind::cvc5_kind_forall (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind16CVC5_KIND_FORALLE"]], "cvc5kind::cvc5_kind_geq (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind13CVC5_KIND_GEQE"]], "cvc5kind::cvc5_kind_gt (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind12CVC5_KIND_GTE"]], "cvc5kind::cvc5_kind_ho_apply (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind18CVC5_KIND_HO_APPLYE"]], "cvc5kind::cvc5_kind_iand (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind14CVC5_KIND_IANDE"]], "cvc5kind::cvc5_kind_implies (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind17CVC5_KIND_IMPLIESE"]], "cvc5kind::cvc5_kind_inst_add_to_pool (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind26CVC5_KIND_INST_ADD_TO_POOLE"]], "cvc5kind::cvc5_kind_inst_attribute (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind24CVC5_KIND_INST_ATTRIBUTEE"]], "cvc5kind::cvc5_kind_inst_no_pattern (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind25CVC5_KIND_INST_NO_PATTERNE"]], "cvc5kind::cvc5_kind_inst_pattern (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind22CVC5_KIND_INST_PATTERNE"]], "cvc5kind::cvc5_kind_inst_pattern_list (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind27CVC5_KIND_INST_PATTERN_LISTE"]], "cvc5kind::cvc5_kind_inst_pool (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind19CVC5_KIND_INST_POOLE"]], "cvc5kind::cvc5_kind_internal_kind (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_INTERNAL_KINDE"]], "cvc5kind::cvc5_kind_ints_division (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_INTS_DIVISIONE"]], "cvc5kind::cvc5_kind_ints_division_total (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind29CVC5_KIND_INTS_DIVISION_TOTALE"]], "cvc5kind::cvc5_kind_ints_modulus (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind22CVC5_KIND_INTS_MODULUSE"]], "cvc5kind::cvc5_kind_ints_modulus_total (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind28CVC5_KIND_INTS_MODULUS_TOTALE"]], "cvc5kind::cvc5_kind_int_to_bitvector (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind26CVC5_KIND_INT_TO_BITVECTORE"]], "cvc5kind::cvc5_kind_is_integer (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind20CVC5_KIND_IS_INTEGERE"]], "cvc5kind::cvc5_kind_ite (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind13CVC5_KIND_ITEE"]], "cvc5kind::cvc5_kind_lambda (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind16CVC5_KIND_LAMBDAE"]], "cvc5kind::cvc5_kind_last_kind (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind19CVC5_KIND_LAST_KINDE"]], "cvc5kind::cvc5_kind_leq (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind13CVC5_KIND_LEQE"]], "cvc5kind::cvc5_kind_lt (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind12CVC5_KIND_LTE"]], "cvc5kind::cvc5_kind_match (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind15CVC5_KIND_MATCHE"]], "cvc5kind::cvc5_kind_match_bind_case (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind25CVC5_KIND_MATCH_BIND_CASEE"]], "cvc5kind::cvc5_kind_match_case (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind20CVC5_KIND_MATCH_CASEE"]], "cvc5kind::cvc5_kind_mult (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind14CVC5_KIND_MULTE"]], "cvc5kind::cvc5_kind_neg (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind13CVC5_KIND_NEGE"]], "cvc5kind::cvc5_kind_not (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind13CVC5_KIND_NOTE"]], "cvc5kind::cvc5_kind_nullable_lift (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_NULLABLE_LIFTE"]], "cvc5kind::cvc5_kind_null_term (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind19CVC5_KIND_NULL_TERME"]], "cvc5kind::cvc5_kind_or (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind12CVC5_KIND_ORE"]], "cvc5kind::cvc5_kind_pi (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind12CVC5_KIND_PIE"]], "cvc5kind::cvc5_kind_pow (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind13CVC5_KIND_POWE"]], "cvc5kind::cvc5_kind_pow2 (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind14CVC5_KIND_POW2E"]], "cvc5kind::cvc5_kind_regexp_all (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind20CVC5_KIND_REGEXP_ALLE"]], "cvc5kind::cvc5_kind_regexp_allchar (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind24CVC5_KIND_REGEXP_ALLCHARE"]], "cvc5kind::cvc5_kind_regexp_complement (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind27CVC5_KIND_REGEXP_COMPLEMENTE"]], "cvc5kind::cvc5_kind_regexp_concat (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_REGEXP_CONCATE"]], "cvc5kind::cvc5_kind_regexp_diff (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind21CVC5_KIND_REGEXP_DIFFE"]], "cvc5kind::cvc5_kind_regexp_inter (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind22CVC5_KIND_REGEXP_INTERE"]], "cvc5kind::cvc5_kind_regexp_loop (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind21CVC5_KIND_REGEXP_LOOPE"]], "cvc5kind::cvc5_kind_regexp_none (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind21CVC5_KIND_REGEXP_NONEE"]], "cvc5kind::cvc5_kind_regexp_opt (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind20CVC5_KIND_REGEXP_OPTE"]], "cvc5kind::cvc5_kind_regexp_plus (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind21CVC5_KIND_REGEXP_PLUSE"]], "cvc5kind::cvc5_kind_regexp_range (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind22CVC5_KIND_REGEXP_RANGEE"]], "cvc5kind::cvc5_kind_regexp_repeat (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_REGEXP_REPEATE"]], "cvc5kind::cvc5_kind_regexp_star (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind21CVC5_KIND_REGEXP_STARE"]], "cvc5kind::cvc5_kind_regexp_union (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind22CVC5_KIND_REGEXP_UNIONE"]], "cvc5kind::cvc5_kind_relation_aggregate (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind28CVC5_KIND_RELATION_AGGREGATEE"]], "cvc5kind::cvc5_kind_relation_group (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind24CVC5_KIND_RELATION_GROUPE"]], "cvc5kind::cvc5_kind_relation_iden (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_RELATION_IDENE"]], "cvc5kind::cvc5_kind_relation_join (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_RELATION_JOINE"]], "cvc5kind::cvc5_kind_relation_join_image (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind29CVC5_KIND_RELATION_JOIN_IMAGEE"]], "cvc5kind::cvc5_kind_relation_product (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind26CVC5_KIND_RELATION_PRODUCTE"]], "cvc5kind::cvc5_kind_relation_project (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind26CVC5_KIND_RELATION_PROJECTE"]], "cvc5kind::cvc5_kind_relation_table_join (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind29CVC5_KIND_RELATION_TABLE_JOINE"]], "cvc5kind::cvc5_kind_relation_tclosure (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind27CVC5_KIND_RELATION_TCLOSUREE"]], "cvc5kind::cvc5_kind_relation_transpose (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind28CVC5_KIND_RELATION_TRANSPOSEE"]], "cvc5kind::cvc5_kind_secant (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind16CVC5_KIND_SECANTE"]], "cvc5kind::cvc5_kind_select (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind16CVC5_KIND_SELECTE"]], "cvc5kind::cvc5_kind_sep_emp (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind17CVC5_KIND_SEP_EMPE"]], "cvc5kind::cvc5_kind_sep_nil (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind17CVC5_KIND_SEP_NILE"]], "cvc5kind::cvc5_kind_sep_pto (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind17CVC5_KIND_SEP_PTOE"]], "cvc5kind::cvc5_kind_sep_star (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind18CVC5_KIND_SEP_STARE"]], "cvc5kind::cvc5_kind_sep_wand (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind18CVC5_KIND_SEP_WANDE"]], "cvc5kind::cvc5_kind_seq_at (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind16CVC5_KIND_SEQ_ATE"]], "cvc5kind::cvc5_kind_seq_concat (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind20CVC5_KIND_SEQ_CONCATE"]], "cvc5kind::cvc5_kind_seq_contains (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind22CVC5_KIND_SEQ_CONTAINSE"]], "cvc5kind::cvc5_kind_seq_extract (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind21CVC5_KIND_SEQ_EXTRACTE"]], "cvc5kind::cvc5_kind_seq_indexof (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind21CVC5_KIND_SEQ_INDEXOFE"]], "cvc5kind::cvc5_kind_seq_length (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind20CVC5_KIND_SEQ_LENGTHE"]], "cvc5kind::cvc5_kind_seq_nth (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind17CVC5_KIND_SEQ_NTHE"]], "cvc5kind::cvc5_kind_seq_prefix (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind20CVC5_KIND_SEQ_PREFIXE"]], "cvc5kind::cvc5_kind_seq_replace (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind21CVC5_KIND_SEQ_REPLACEE"]], "cvc5kind::cvc5_kind_seq_replace_all (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind25CVC5_KIND_SEQ_REPLACE_ALLE"]], "cvc5kind::cvc5_kind_seq_rev (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind17CVC5_KIND_SEQ_REVE"]], "cvc5kind::cvc5_kind_seq_suffix (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind20CVC5_KIND_SEQ_SUFFIXE"]], "cvc5kind::cvc5_kind_seq_unit (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind18CVC5_KIND_SEQ_UNITE"]], "cvc5kind::cvc5_kind_seq_update (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind20CVC5_KIND_SEQ_UPDATEE"]], "cvc5kind::cvc5_kind_set_all (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind17CVC5_KIND_SET_ALLE"]], "cvc5kind::cvc5_kind_set_card (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind18CVC5_KIND_SET_CARDE"]], "cvc5kind::cvc5_kind_set_choose (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind20CVC5_KIND_SET_CHOOSEE"]], "cvc5kind::cvc5_kind_set_complement (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind24CVC5_KIND_SET_COMPLEMENTE"]], "cvc5kind::cvc5_kind_set_comprehension (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind27CVC5_KIND_SET_COMPREHENSIONE"]], "cvc5kind::cvc5_kind_set_empty (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind19CVC5_KIND_SET_EMPTYE"]], "cvc5kind::cvc5_kind_set_filter (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind20CVC5_KIND_SET_FILTERE"]], "cvc5kind::cvc5_kind_set_fold (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind18CVC5_KIND_SET_FOLDE"]], "cvc5kind::cvc5_kind_set_insert (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind20CVC5_KIND_SET_INSERTE"]], "cvc5kind::cvc5_kind_set_inter (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind19CVC5_KIND_SET_INTERE"]], "cvc5kind::cvc5_kind_set_is_empty (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind22CVC5_KIND_SET_IS_EMPTYE"]], "cvc5kind::cvc5_kind_set_is_singleton (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind26CVC5_KIND_SET_IS_SINGLETONE"]], "cvc5kind::cvc5_kind_set_map (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind17CVC5_KIND_SET_MAPE"]], "cvc5kind::cvc5_kind_set_member (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind20CVC5_KIND_SET_MEMBERE"]], "cvc5kind::cvc5_kind_set_minus (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind19CVC5_KIND_SET_MINUSE"]], "cvc5kind::cvc5_kind_set_singleton (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_SET_SINGLETONE"]], "cvc5kind::cvc5_kind_set_some (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind18CVC5_KIND_SET_SOMEE"]], "cvc5kind::cvc5_kind_set_subset (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind20CVC5_KIND_SET_SUBSETE"]], "cvc5kind::cvc5_kind_set_union (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind19CVC5_KIND_SET_UNIONE"]], "cvc5kind::cvc5_kind_set_universe (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind22CVC5_KIND_SET_UNIVERSEE"]], "cvc5kind::cvc5_kind_sexpr (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind15CVC5_KIND_SEXPRE"]], "cvc5kind::cvc5_kind_sine (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind14CVC5_KIND_SINEE"]], "cvc5kind::cvc5_kind_skolem (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind16CVC5_KIND_SKOLEME"]], "cvc5kind::cvc5_kind_skolem_add_to_pool (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind28CVC5_KIND_SKOLEM_ADD_TO_POOLE"]], "cvc5kind::cvc5_kind_sqrt (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind14CVC5_KIND_SQRTE"]], "cvc5kind::cvc5_kind_store (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind15CVC5_KIND_STOREE"]], "cvc5kind::cvc5_kind_string_charat (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_STRING_CHARATE"]], "cvc5kind::cvc5_kind_string_concat (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_STRING_CONCATE"]], "cvc5kind::cvc5_kind_string_contains (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind25CVC5_KIND_STRING_CONTAINSE"]], "cvc5kind::cvc5_kind_string_from_code (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind26CVC5_KIND_STRING_FROM_CODEE"]], "cvc5kind::cvc5_kind_string_from_int (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind25CVC5_KIND_STRING_FROM_INTE"]], "cvc5kind::cvc5_kind_string_indexof (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind24CVC5_KIND_STRING_INDEXOFE"]], "cvc5kind::cvc5_kind_string_indexof_re (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind27CVC5_KIND_STRING_INDEXOF_REE"]], "cvc5kind::cvc5_kind_string_in_regexp (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind26CVC5_KIND_STRING_IN_REGEXPE"]], "cvc5kind::cvc5_kind_string_is_digit (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind25CVC5_KIND_STRING_IS_DIGITE"]], "cvc5kind::cvc5_kind_string_length (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_STRING_LENGTHE"]], "cvc5kind::cvc5_kind_string_leq (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind20CVC5_KIND_STRING_LEQE"]], "cvc5kind::cvc5_kind_string_lt (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind19CVC5_KIND_STRING_LTE"]], "cvc5kind::cvc5_kind_string_prefix (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_STRING_PREFIXE"]], "cvc5kind::cvc5_kind_string_replace (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind24CVC5_KIND_STRING_REPLACEE"]], "cvc5kind::cvc5_kind_string_replace_all (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind28CVC5_KIND_STRING_REPLACE_ALLE"]], "cvc5kind::cvc5_kind_string_replace_re (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind27CVC5_KIND_STRING_REPLACE_REE"]], "cvc5kind::cvc5_kind_string_replace_re_all (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind31CVC5_KIND_STRING_REPLACE_RE_ALLE"]], "cvc5kind::cvc5_kind_string_rev (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind20CVC5_KIND_STRING_REVE"]], "cvc5kind::cvc5_kind_string_substr (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_STRING_SUBSTRE"]], "cvc5kind::cvc5_kind_string_suffix (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_STRING_SUFFIXE"]], "cvc5kind::cvc5_kind_string_to_code (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind24CVC5_KIND_STRING_TO_CODEE"]], "cvc5kind::cvc5_kind_string_to_int (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_STRING_TO_INTE"]], "cvc5kind::cvc5_kind_string_to_lower (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind25CVC5_KIND_STRING_TO_LOWERE"]], "cvc5kind::cvc5_kind_string_to_regexp (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind26CVC5_KIND_STRING_TO_REGEXPE"]], "cvc5kind::cvc5_kind_string_to_upper (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind25CVC5_KIND_STRING_TO_UPPERE"]], "cvc5kind::cvc5_kind_string_update (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_STRING_UPDATEE"]], "cvc5kind::cvc5_kind_sub (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind13CVC5_KIND_SUBE"]], "cvc5kind::cvc5_kind_table_aggregate (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind25CVC5_KIND_TABLE_AGGREGATEE"]], "cvc5kind::cvc5_kind_table_group (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind21CVC5_KIND_TABLE_GROUPE"]], "cvc5kind::cvc5_kind_table_join (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind20CVC5_KIND_TABLE_JOINE"]], "cvc5kind::cvc5_kind_table_product (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_TABLE_PRODUCTE"]], "cvc5kind::cvc5_kind_table_project (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_TABLE_PROJECTE"]], "cvc5kind::cvc5_kind_tangent (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind17CVC5_KIND_TANGENTE"]], "cvc5kind::cvc5_kind_to_integer (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind20CVC5_KIND_TO_INTEGERE"]], "cvc5kind::cvc5_kind_to_real (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind17CVC5_KIND_TO_REALE"]], "cvc5kind::cvc5_kind_tuple_project (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_TUPLE_PROJECTE"]], "cvc5kind::cvc5_kind_undefined_kind (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind24CVC5_KIND_UNDEFINED_KINDE"]], "cvc5kind::cvc5_kind_uninterpreted_sort_value (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind34CVC5_KIND_UNINTERPRETED_SORT_VALUEE"]], "cvc5kind::cvc5_kind_variable (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind18CVC5_KIND_VARIABLEE"]], "cvc5kind::cvc5_kind_variable_list (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind23CVC5_KIND_VARIABLE_LISTE"]], "cvc5kind::cvc5_kind_witness (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind17CVC5_KIND_WITNESSE"]], "cvc5kind::cvc5_kind_xor (c++ enumerator)": [[2, "_CPPv4N8Cvc5Kind13CVC5_KIND_XORE"]], "cvc5_kind_hash (c++ function)": [[2, "_CPPv414cvc5_kind_hash8Cvc5Kind"]], "cvc5_kind_to_string (c++ function)": [[2, "_CPPv419cvc5_kind_to_string8Cvc5Kind"]], "cvc5proofrewriterule (c++ enum)": [[3, "_CPPv420Cvc5ProofRewriteRule"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_abs_elim_int (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_ARITH_ABS_ELIM_INTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_abs_elim_real (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_ARITH_ABS_ELIM_REALE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_abs_eq (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_ARITH_ABS_EQE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_abs_int_gt (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_ARITH_ABS_INT_GTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_abs_real_gt (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_ARITH_ABS_REAL_GTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_cosecent_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_ARITH_COSECENT_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_cosine_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_ARITH_COSINE_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_cotangent_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_ARITH_COTANGENT_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_div_elim_to_real1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_ARITH_DIV_ELIM_TO_REAL1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_div_elim_to_real2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_ARITH_DIV_ELIM_TO_REAL2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_div_total_int (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_ARITH_DIV_TOTAL_INTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_div_total_real (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_ARITH_DIV_TOTAL_REALE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_div_total_zero_int (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_ARITH_DIV_TOTAL_ZERO_INTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_div_total_zero_real (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_ARITH_DIV_TOTAL_ZERO_REALE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_elim_gt (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_GTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_elim_int_gt (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_INT_GTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_elim_int_lt (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_INT_LTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_elim_leq (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_LEQE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_elim_lt (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ARITH_ELIM_LTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_eq_elim_int (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_ARITH_EQ_ELIM_INTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_eq_elim_real (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_ARITH_EQ_ELIM_REALE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_geq_norm1_int (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_ARITH_GEQ_NORM1_INTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_geq_norm1_real (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_ARITH_GEQ_NORM1_REALE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_geq_norm2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_ARITH_GEQ_NORM2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_geq_tighten (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_ARITH_GEQ_TIGHTENE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_int_div_total (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_ARITH_INT_DIV_TOTALE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_int_div_total_one (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_ARITH_INT_DIV_TOTAL_ONEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_int_div_total_zero (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_ARITH_INT_DIV_TOTAL_ZEROE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_int_mod_total (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_ARITH_INT_MOD_TOTALE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_int_mod_total_one (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_ARITH_INT_MOD_TOTAL_ONEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_int_mod_total_zero (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_ARITH_INT_MOD_TOTAL_ZEROE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_leq_norm (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ARITH_LEQ_NORME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_mult_dist (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_ARITH_MULT_DISTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_mult_flatten (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_ARITH_MULT_FLATTENE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_mul_one (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ARITH_MUL_ONEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_mul_zero (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ARITH_MUL_ZEROE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_pi_not_int (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_ARITH_PI_NOT_INTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_plus_flatten (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_ARITH_PLUS_FLATTENE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_pow_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ARITH_POW_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_refl_geq (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ARITH_REFL_GEQE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_refl_gt (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ARITH_REFL_GTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_refl_leq (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ARITH_REFL_LEQE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_refl_lt (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ARITH_REFL_LTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_secent_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_ARITH_SECENT_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_sine_pi2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ARITH_SINE_PI2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_sine_zero (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_ARITH_SINE_ZEROE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_string_pred_entail (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_ARITH_STRING_PRED_ENTAILE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_string_pred_safe_approx (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule53CVC5_PROOF_REWRITE_RULE_ARITH_STRING_PRED_SAFE_APPROXE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_tangent_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_ARITH_TANGENT_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_to_int_elim_to_real (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_ARITH_TO_INT_ELIM_TO_REALE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arith_to_real_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_ARITH_TO_REAL_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arrays_eq_range_expand (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_ARRAYS_EQ_RANGE_EXPANDE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_arrays_select_const (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_ARRAYS_SELECT_CONSTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_array_read_over_write (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_ARRAY_READ_OVER_WRITEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_array_read_over_write2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_ARRAY_READ_OVER_WRITE2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_array_read_over_write_split (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule51CVC5_PROOF_REWRITE_RULE_ARRAY_READ_OVER_WRITE_SPLITE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_array_store_overwrite (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_ARRAY_STORE_OVERWRITEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_array_store_self (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_ARRAY_STORE_SELFE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_beta_reduce (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BETA_REDUCEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_and_conf (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_AND_CONFE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_and_conf2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BOOL_AND_CONF2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_and_de_morgan (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BOOL_AND_DE_MORGANE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_and_false (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BOOL_AND_FALSEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_and_flatten (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BOOL_AND_FLATTENE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_double_not_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_BOOL_DOUBLE_NOT_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_eq_false (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_EQ_FALSEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_eq_nrefl (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_EQ_NREFLE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_eq_true (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BOOL_EQ_TRUEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_implies_de_morgan (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_BOOL_IMPLIES_DE_MORGANE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_impl_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_impl_false1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_FALSE1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_impl_false2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_FALSE2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_impl_true1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_TRUE1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_impl_true2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_BOOL_IMPL_TRUE2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_not_eq_elim1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BOOL_NOT_EQ_ELIM1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_not_eq_elim2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BOOL_NOT_EQ_ELIM2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_not_false (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BOOL_NOT_FALSEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_not_ite_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BOOL_NOT_ITE_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_not_true (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_NOT_TRUEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_not_xor_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BOOL_NOT_XOR_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_or_and_distrib (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BOOL_OR_AND_DISTRIBE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_or_de_morgan (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BOOL_OR_DE_MORGANE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_or_flatten (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_BOOL_OR_FLATTENE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_or_taut (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BOOL_OR_TAUTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_or_taut2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_OR_TAUT2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_or_true (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BOOL_OR_TRUEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_xor_comm (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_XOR_COMME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_xor_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_XOR_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_xor_false (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BOOL_XOR_FALSEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_xor_nrefl (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BOOL_XOR_NREFLE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_xor_refl (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_XOR_REFLE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bool_xor_true (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BOOL_XOR_TRUEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_add_combine_like_terms (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_BV_ADD_COMBINE_LIKE_TERMSE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_add_two (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_ADD_TWOE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_add_zero (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_ADD_ZEROE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_and_concat_pullup (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_BV_AND_CONCAT_PULLUPE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_and_flatten (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_AND_FLATTENE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_and_one (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_AND_ONEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_and_simplify_1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_AND_SIMPLIFY_1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_and_simplify_2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_AND_SIMPLIFY_2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_and_zero (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_AND_ZEROE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ashr_by_const_0 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_ASHR_BY_CONST_0E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ashr_by_const_1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_ASHR_BY_CONST_1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ashr_by_const_2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_ASHR_BY_CONST_2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ashr_zero (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BV_ASHR_ZEROE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_bitwise_idemp_1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_BITWISE_IDEMP_1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_bitwise_idemp_2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_BITWISE_IDEMP_2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_bitwise_not_and (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_BITWISE_NOT_ANDE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_bitwise_not_or (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_BITWISE_NOT_ORE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_bitwise_slicing (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_BITWISE_SLICINGE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_commutative_add (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_ADDE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_commutative_and (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_ANDE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_commutative_mul (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_MULE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_commutative_or (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_ORE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_commutative_xor (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_COMMUTATIVE_XORE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_comp_eliminate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_COMP_ELIMINATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_concat_extract_merge (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_BV_CONCAT_EXTRACT_MERGEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_concat_flatten (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_CONCAT_FLATTENE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_concat_merge_const (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_BV_CONCAT_MERGE_CONSTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_concat_to_mult (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_CONCAT_TO_MULTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_eq_extract_elim1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_EQ_EXTRACT_ELIM1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_eq_extract_elim2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_EQ_EXTRACT_ELIM2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_eq_extract_elim3 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_EQ_EXTRACT_ELIM3E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_extract_bitwise_and (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_BITWISE_ANDE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_extract_bitwise_or (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_BITWISE_ORE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_extract_bitwise_xor (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_BITWISE_XORE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_extract_concat_1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_CONCAT_1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_extract_concat_2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_CONCAT_2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_extract_concat_3 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_CONCAT_3E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_extract_concat_4 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_CONCAT_4E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_extract_extract (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_EXTRACTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_extract_mult_leading_bit (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule51CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_MULT_LEADING_BITE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_extract_not (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_NOTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_extract_sign_extend_1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_SIGN_EXTEND_1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_extract_sign_extend_2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_SIGN_EXTEND_2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_extract_sign_extend_3 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_SIGN_EXTEND_3E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_extract_whole (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_EXTRACT_WHOLEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ite_const_children_1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_BV_ITE_CONST_CHILDREN_1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ite_const_children_2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_BV_ITE_CONST_CHILDREN_2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ite_equal_children (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_BV_ITE_EQUAL_CHILDRENE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ite_equal_cond_1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_ITE_EQUAL_COND_1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ite_equal_cond_2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_ITE_EQUAL_COND_2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ite_equal_cond_3 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_ITE_EQUAL_COND_3E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ite_merge_else_else (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_BV_ITE_MERGE_ELSE_ELSEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ite_merge_else_if (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_BV_ITE_MERGE_ELSE_IFE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ite_merge_then_else (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_BV_ITE_MERGE_THEN_ELSEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ite_merge_then_if (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_BV_ITE_MERGE_THEN_IFE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_lshr_by_const_0 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_LSHR_BY_CONST_0E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_lshr_by_const_1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_LSHR_BY_CONST_1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_lshr_by_const_2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_LSHR_BY_CONST_2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_lshr_zero (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BV_LSHR_ZEROE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_lt_self (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_LT_SELFE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_merge_sign_extend_1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_BV_MERGE_SIGN_EXTEND_1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_merge_sign_extend_2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_BV_MERGE_SIGN_EXTEND_2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_merge_sign_extend_3 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_BV_MERGE_SIGN_EXTEND_3E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_mult_distrib_1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_mult_distrib_2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_mult_distrib_const_add (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_CONST_ADDE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_mult_distrib_const_neg (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_CONST_NEGE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_mult_distrib_const_sub (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_BV_MULT_DISTRIB_CONST_SUBE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_mult_pow2_1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_MULT_POW2_1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_mult_pow2_2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_MULT_POW2_2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_mult_pow2_2b (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_BV_MULT_POW2_2BE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_mult_simplify (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_MULT_SIMPLIFYE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_mult_slt_mult_1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_MULT_SLT_MULT_1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_mult_slt_mult_2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_MULT_SLT_MULT_2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_mul_flatten (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_MUL_FLATTENE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_mul_one (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_MUL_ONEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_mul_zero (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_MUL_ZEROE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_nand_eliminate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_NAND_ELIMINATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_neg_add (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_NEG_ADDE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_neg_idemp (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BV_NEG_IDEMPE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_neg_mult (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_NEG_MULTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_neg_sub (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_NEG_SUBE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_nor_eliminate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_NOR_ELIMINATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_not_idemp (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BV_NOT_IDEMPE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_not_neq (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_NOT_NEQE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_not_sle (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_NOT_SLEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_not_ule (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_NOT_ULEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_not_ult (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_NOT_ULTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_not_xor (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_NOT_XORE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_or_concat_pullup (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_OR_CONCAT_PULLUPE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_or_flatten (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BV_OR_FLATTENE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_or_one (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule33CVC5_PROOF_REWRITE_RULE_BV_OR_ONEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_or_simplify_1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_OR_SIMPLIFY_1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_or_simplify_2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_OR_SIMPLIFY_2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_or_zero (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_OR_ZEROE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_redand_eliminate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_BV_REDAND_ELIMINATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_redor_eliminate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_REDOR_ELIMINATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_repeat_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_REPEAT_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_rotate_left_eliminate_1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_BV_ROTATE_LEFT_ELIMINATE_1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_rotate_left_eliminate_2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_BV_ROTATE_LEFT_ELIMINATE_2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_rotate_right_eliminate_1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule51CVC5_PROOF_REWRITE_RULE_BV_ROTATE_RIGHT_ELIMINATE_1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_rotate_right_eliminate_2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule51CVC5_PROOF_REWRITE_RULE_BV_ROTATE_RIGHT_ELIMINATE_2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_saddo_eliminate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_SADDO_ELIMINATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_sdivo_eliminate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_SDIVO_ELIMINATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_sdiv_eliminate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_SDIV_ELIMINATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_sdiv_eliminate_fewer_bitwise_ops (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule59CVC5_PROOF_REWRITE_RULE_BV_SDIV_ELIMINATE_FEWER_BITWISE_OPSE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_sge_eliminate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_SGE_ELIMINATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_sgt_eliminate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_SGT_ELIMINATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_shl_by_const_0 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_SHL_BY_CONST_0E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_shl_by_const_1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_SHL_BY_CONST_1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_shl_by_const_2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_SHL_BY_CONST_2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_shl_zero (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_SHL_ZEROE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_sign_extend_eliminate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ELIMINATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_sign_extend_eliminate_0 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ELIMINATE_0E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_sign_extend_eq_const_1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_EQ_CONST_1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_sign_extend_eq_const_2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_EQ_CONST_2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_sign_extend_ult_const_1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ULT_CONST_1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_sign_extend_ult_const_2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ULT_CONST_2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_sign_extend_ult_const_3 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ULT_CONST_3E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_sign_extend_ult_const_4 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_BV_SIGN_EXTEND_ULT_CONST_4E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_sle_eliminate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_SLE_ELIMINATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_sle_self (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_SLE_SELFE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_slt_eliminate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_SLT_ELIMINATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_slt_zero (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_SLT_ZEROE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_smod_eliminate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_SMOD_ELIMINATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_smod_eliminate_fewer_bitwise_ops (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule59CVC5_PROOF_REWRITE_RULE_BV_SMOD_ELIMINATE_FEWER_BITWISE_OPSE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_smulo_eliminate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_SMULO_ELIMINATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_srem_eliminate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_SREM_ELIMINATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_srem_eliminate_fewer_bitwise_ops (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule59CVC5_PROOF_REWRITE_RULE_BV_SREM_ELIMINATE_FEWER_BITWISE_OPSE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ssubo_eliminate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_SSUBO_ELIMINATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_sub_eliminate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_SUB_ELIMINATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_to_nat_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_TO_NAT_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_uaddo_eliminate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_UADDO_ELIMINATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_udiv_one (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_UDIV_ONEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_udiv_pow2_not_one (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_BV_UDIV_POW2_NOT_ONEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_udiv_zero (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BV_UDIV_ZEROE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_uge_eliminate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_UGE_ELIMINATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ugt_eliminate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_UGT_ELIMINATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ugt_urem (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_UGT_UREME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ule_eliminate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_ULE_ELIMINATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ule_max (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_ULE_MAXE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ule_self (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_ULE_SELFE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ule_zero (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_ULE_ZEROE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ult_add_one (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_ULT_ADD_ONEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ult_one (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_ULT_ONEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ult_ones (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_ULT_ONESE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ult_self (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_ULT_SELFE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ult_zero_1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BV_ULT_ZERO_1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_ult_zero_2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_BV_ULT_ZERO_2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_umulo_eliminate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_UMULO_ELIMINATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_urem_one (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_UREM_ONEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_urem_pow2_not_one (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_BV_UREM_POW2_NOT_ONEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_urem_self (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_BV_UREM_SELFE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_usubo_eliminate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_BV_USUBO_ELIMINATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_xnor_eliminate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_XNOR_ELIMINATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_xor_concat_pullup (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_BV_XOR_CONCAT_PULLUPE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_xor_duplicate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_BV_XOR_DUPLICATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_xor_flatten (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_BV_XOR_FLATTENE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_xor_not (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_BV_XOR_NOTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_xor_ones (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_XOR_ONESE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_xor_simplify_1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_XOR_SIMPLIFY_1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_xor_simplify_2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_XOR_SIMPLIFY_2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_xor_simplify_3 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_BV_XOR_SIMPLIFY_3E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_xor_zero (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_XOR_ZEROE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_zero_extend_eliminate (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_BV_ZERO_EXTEND_ELIMINATEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_zero_extend_eliminate_0 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_BV_ZERO_EXTEND_ELIMINATE_0E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_zero_extend_eq_const_1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_BV_ZERO_EXTEND_EQ_CONST_1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_zero_extend_eq_const_2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_BV_ZERO_EXTEND_EQ_CONST_2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_bv_zero_ule (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_BV_ZERO_ULEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_distinct_binary_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_DISTINCT_BINARY_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_distinct_card_conflict (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_DISTINCT_CARD_CONFLICTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_distinct_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_DISTINCT_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_dt_collapse_selector (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_DT_COLLAPSE_SELECTORE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_dt_collapse_tester (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_DT_COLLAPSE_TESTERE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_dt_collapse_tester_singleton (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule52CVC5_PROOF_REWRITE_RULE_DT_COLLAPSE_TESTER_SINGLETONE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_dt_collapse_updater (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_DT_COLLAPSE_UPDATERE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_dt_cons_eq (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_DT_CONS_EQE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_dt_cycle (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule32CVC5_PROOF_REWRITE_RULE_DT_CYCLEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_dt_inst (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule31CVC5_PROOF_REWRITE_RULE_DT_INSTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_dt_match_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_DT_MATCH_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_dt_updater_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_DT_UPDATER_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_eq_cond_deq (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_EQ_COND_DEQE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_eq_ite_lift (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_EQ_ITE_LIFTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_eq_refl (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule31CVC5_PROOF_REWRITE_RULE_EQ_REFLE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_eq_symm (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule31CVC5_PROOF_REWRITE_RULE_EQ_SYMME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_exists_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_EXISTS_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_int_to_bv_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_INT_TO_BV_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_ite_else_false (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ITE_ELSE_FALSEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_ite_else_lookahead (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_ITE_ELSE_LOOKAHEADE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_ite_else_lookahead_not_self (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule51CVC5_PROOF_REWRITE_RULE_ITE_ELSE_LOOKAHEAD_NOT_SELFE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_ite_else_lookahead_self (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_ITE_ELSE_LOOKAHEAD_SELFE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_ite_else_neg_lookahead (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_ITE_ELSE_NEG_LOOKAHEADE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_ite_else_true (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ITE_ELSE_TRUEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_ite_eq_branch (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ITE_EQ_BRANCHE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_ite_expand (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_ITE_EXPANDE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_ite_false_cond (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ITE_FALSE_CONDE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_ite_neg_branch (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ITE_NEG_BRANCHE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_ite_not_cond (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_ITE_NOT_CONDE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_ite_then_false (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_ITE_THEN_FALSEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_ite_then_lookahead (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_ITE_THEN_LOOKAHEADE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_ite_then_lookahead_not_self (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule51CVC5_PROOF_REWRITE_RULE_ITE_THEN_LOOKAHEAD_NOT_SELFE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_ite_then_lookahead_self (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_ITE_THEN_LOOKAHEAD_SELFE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_ite_then_neg_lookahead (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_ITE_THEN_NEG_LOOKAHEADE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_ite_then_true (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ITE_THEN_TRUEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_ite_true_cond (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_ITE_TRUE_CONDE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_lambda_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_LAMBDA_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_last (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule28CVC5_PROOF_REWRITE_RULE_LASTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_macro_arith_string_pred_entail (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule54CVC5_PROOF_REWRITE_RULE_MACRO_ARITH_STRING_PRED_ENTAILE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_macro_arrays_distinct_arrays (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule52CVC5_PROOF_REWRITE_RULE_MACRO_ARRAYS_DISTINCT_ARRAYSE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_macro_arrays_normalize_constant (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule55CVC5_PROOF_REWRITE_RULE_MACRO_ARRAYS_NORMALIZE_CONSTANTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_macro_bool_nnf_norm (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_MACRO_BOOL_NNF_NORME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_macro_quant_merge_prenex (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_MERGE_PRENEXE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_macro_quant_miniscope (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_MINISCOPEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_macro_quant_partition_connected_fv (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule58CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_PARTITION_CONNECTED_FVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_macro_quant_prenex (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_PRENEXE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_macro_quant_rewrite_body (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_REWRITE_BODYE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_macro_quant_var_elim_eq (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_VAR_ELIM_EQE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_macro_quant_var_elim_ineq (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_MACRO_QUANT_VAR_ELIM_INEQE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_macro_substr_strip_sym_length (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule53CVC5_PROOF_REWRITE_RULE_MACRO_SUBSTR_STRIP_SYM_LENGTHE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_none (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule28CVC5_PROOF_REWRITE_RULE_NONEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_quant_dt_split (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_QUANT_DT_SPLITE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_quant_merge_prenex (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_QUANT_MERGE_PRENEXE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_quant_miniscope_and (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_QUANT_MINISCOPE_ANDE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_quant_miniscope_ite (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_QUANT_MINISCOPE_ITEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_quant_miniscope_or (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_QUANT_MINISCOPE_ORE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_quant_unused_vars (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_QUANT_UNUSED_VARSE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_quant_var_elim_eq (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_QUANT_VAR_ELIM_EQE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_all_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_RE_ALL_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_concat_emp (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_RE_CONCAT_EMPE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_concat_flatten (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_RE_CONCAT_FLATTENE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_concat_merge (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_RE_CONCAT_MERGEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_concat_none (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_RE_CONCAT_NONEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_concat_star_repeat (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_RE_CONCAT_STAR_REPEATE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_concat_star_swap (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_RE_CONCAT_STAR_SWAPE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_diff_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_RE_DIFF_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_inter_all (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_RE_INTER_ALLE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_inter_cstring (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_RE_INTER_CSTRINGE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_inter_cstring_neg (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_RE_INTER_CSTRING_NEGE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_inter_dup (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_RE_INTER_DUPE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_inter_flatten (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_RE_INTER_FLATTENE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_inter_none (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_RE_INTER_NONEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_inter_union_inclusion (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_RE_INTER_UNION_INCLUSIONE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_in_comp (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule34CVC5_PROOF_REWRITE_RULE_RE_IN_COMPE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_in_cstring (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_RE_IN_CSTRINGE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_in_empty (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_RE_IN_EMPTYE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_in_sigma (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_RE_IN_SIGMAE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_in_sigma_star (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_RE_IN_SIGMA_STARE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_loop_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_RE_LOOP_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_loop_neg (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_RE_LOOP_NEGE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_opt_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_RE_OPT_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_star_none (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_RE_STAR_NONEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_union_all (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_RE_UNION_ALLE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_union_dup (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_RE_UNION_DUPE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_union_flatten (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_RE_UNION_FLATTENE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_re_union_none (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_RE_UNION_NONEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_seq_len_empty (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_SEQ_LEN_EMPTYE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_seq_len_rev (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_SEQ_LEN_REVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_seq_len_unit (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_SEQ_LEN_UNITE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_seq_nth_unit (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_SEQ_NTH_UNITE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_seq_rev_concat (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_SEQ_REV_CONCATE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_seq_rev_rev (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_SEQ_REV_REVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_seq_rev_unit (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule36CVC5_PROOF_REWRITE_RULE_SEQ_REV_UNITE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_sets_card_emp (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_SETS_CARD_EMPE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_sets_card_minus (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_CARD_MINUSE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_sets_card_singleton (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_SETS_CARD_SINGLETONE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_sets_card_union (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_CARD_UNIONE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_sets_choose_singleton (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_SETS_CHOOSE_SINGLETONE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_sets_eq_singleton_emp (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_SETS_EQ_SINGLETON_EMPE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_sets_insert_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_SETS_INSERT_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_sets_inter_comm (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_INTER_COMME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_sets_inter_emp1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_INTER_EMP1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_sets_inter_emp2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_INTER_EMP2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_sets_inter_member (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_SETS_INTER_MEMBERE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_sets_is_empty_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_SETS_IS_EMPTY_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_sets_is_empty_eval (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_SETS_IS_EMPTY_EVALE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_sets_member_emp (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_MEMBER_EMPE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_sets_member_singleton (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_SETS_MEMBER_SINGLETONE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_sets_minus_emp1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_MINUS_EMP1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_sets_minus_emp2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_MINUS_EMP2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_sets_minus_member (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_SETS_MINUS_MEMBERE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_sets_minus_self (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_MINUS_SELFE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_sets_subset_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_SETS_SUBSET_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_sets_union_comm (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_UNION_COMME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_sets_union_emp1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_UNION_EMP1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_sets_union_emp2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_SETS_UNION_EMP2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_sets_union_member (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_SETS_UNION_MEMBERE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_at_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_STR_AT_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_concat_clash (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASHE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_concat_clash2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_concat_clash2_rev (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH2_REVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_concat_clash_char (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH_CHARE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_concat_clash_char_rev (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH_CHAR_REVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_concat_clash_rev (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_CONCAT_CLASH_REVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_concat_flatten (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_CONCAT_FLATTENE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_concat_flatten_eq (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_STR_CONCAT_FLATTEN_EQE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_concat_flatten_eq_rev (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_STR_CONCAT_FLATTEN_EQ_REVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_concat_unify (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_CONCAT_UNIFYE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_concat_unify_base (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_STR_CONCAT_UNIFY_BASEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_concat_unify_base_rev (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_STR_CONCAT_UNIFY_BASE_REVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_concat_unify_rev (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_CONCAT_UNIFY_REVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_contains_concat_find (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_CONCAT_FINDE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_contains_emp (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_EMPE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_contains_is_emp (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_IS_EMPE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_contains_leq_len_eq (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_LEQ_LEN_EQE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_contains_lt_len (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_LT_LENE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_contains_refl (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_REFLE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_contains_split_char (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_STR_CONTAINS_SPLIT_CHARE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_eq_ctn_false (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_EQ_CTN_FALSEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_eq_ctn_full_false1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_STR_EQ_CTN_FULL_FALSE1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_eq_ctn_full_false2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_STR_EQ_CTN_FULL_FALSE2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_indexof_contains_pre (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_STR_INDEXOF_CONTAINS_PREE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_indexof_no_contains (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_STR_INDEXOF_NO_CONTAINSE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_indexof_re_none (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_INDEXOF_RE_NONEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_indexof_self (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_INDEXOF_SELFE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_concat_star_char (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_STR_IN_RE_CONCAT_STAR_CHARE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_consume (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_STR_IN_RE_CONSUMEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_contains (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_IN_RE_CONTAINSE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_eval (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule38CVC5_PROOF_REWRITE_RULE_STR_IN_RE_EVALE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_inter_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_IN_RE_INTER_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_range_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_IN_RE_RANGE_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_req_unfold (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_IN_RE_REQ_UNFOLDE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_req_unfold_rev (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_STR_IN_RE_REQ_UNFOLD_REVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_sigma (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_STR_IN_RE_SIGMAE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_sigma_star (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_IN_RE_SIGMA_STARE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_skip_unfold (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_STR_IN_RE_SKIP_UNFOLDE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_skip_unfold_rev (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_STR_IN_RE_SKIP_UNFOLD_REVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_char (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_CHARE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_char_rev (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_CHAR_REVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_char_s_single (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule53CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_CHAR_S_SINGLEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_char_s_single_rev (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule57CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_CHAR_S_SINGLE_REVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_prefix (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIXE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_prefix_base (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule51CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_prefix_base_neg (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule55CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_NEGE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_prefix_base_neg_rev (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule59CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_NEG_REVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_prefix_base_rev (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule55CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_REVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_prefix_base_s_single (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule60CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_prefix_base_s_single_neg (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule64CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEGE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_prefix_base_s_single_neg_rev (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule68CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG_REVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_prefix_base_s_single_rev (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule64CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_REVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_prefix_neg (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_NEGE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_prefix_neg_rev (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule54CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_NEG_REVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_prefix_rev (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_REVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_prefix_srs_single (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule57CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SRS_SINGLEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_prefix_srs_single_neg (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule61CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEGE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_prefix_srs_single_neg_rev (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule65CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG_REVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_prefix_srs_single_rev (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule61CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_REVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_prefix_sr_single (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule56CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SR_SINGLEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_prefix_sr_single_neg (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule60CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEGE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_prefix_sr_single_neg_rev (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule64CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG_REVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_prefix_sr_single_rev (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule60CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_SR_SINGLE_REVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_prefix_s_single (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule55CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_S_SINGLEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_prefix_s_single_neg (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule59CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEGE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_prefix_s_single_neg_rev (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule63CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG_REVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_strip_prefix_s_single_rev (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule59CVC5_PROOF_REWRITE_RULE_STR_IN_RE_STRIP_PREFIX_S_SINGLE_REVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_test_unfold (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_STR_IN_RE_TEST_UNFOLDE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_test_unfold_rev (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_STR_IN_RE_TEST_UNFOLD_REVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_in_re_union_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_IN_RE_UNION_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_len_concat_rec (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_LEN_CONCAT_RECE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_len_replace_inv (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_LEN_REPLACE_INVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_len_substr_in_range (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_STR_LEN_SUBSTR_IN_RANGEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_len_substr_ub1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_LEN_SUBSTR_UB1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_len_substr_ub2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_LEN_SUBSTR_UB2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_len_update_inv (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_LEN_UPDATE_INVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_leq_concat_false (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_LEQ_CONCAT_FALSEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_leq_concat_true (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_LEQ_CONCAT_TRUEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_leq_empty (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule37CVC5_PROOF_REWRITE_RULE_STR_LEQ_EMPTYE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_leq_empty_eq (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_LEQ_EMPTY_EQE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_lt_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule35CVC5_PROOF_REWRITE_RULE_STR_LT_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_prefixof_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_STR_PREFIXOF_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_prefixof_one (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_PREFIXOF_ONEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_replace_all_no_contains (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule51CVC5_PROOF_REWRITE_RULE_STR_REPLACE_ALL_NO_CONTAINSE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_replace_contains_pre (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_STR_REPLACE_CONTAINS_PREE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_replace_empty (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_STR_REPLACE_EMPTYE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_replace_no_contains (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_STR_REPLACE_NO_CONTAINSE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_replace_prefix (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_REPLACE_PREFIXE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_replace_re_all_none (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_STR_REPLACE_RE_ALL_NONEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_replace_re_none (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_REPLACE_RE_NONEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_replace_self (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_REPLACE_SELFE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_substr_combine1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_COMBINE1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_substr_combine2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_COMBINE2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_substr_combine3 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_COMBINE3E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_substr_combine4 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_COMBINE4E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_substr_concat1 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_CONCAT1E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_substr_concat2 (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_CONCAT2E"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_substr_empty_range (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EMPTY_RANGEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_substr_empty_start (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EMPTY_STARTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_substr_empty_start_neg (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EMPTY_START_NEGE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_substr_empty_str (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule44CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EMPTY_STRE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_substr_eq_empty (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_EQ_EMPTYE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_substr_full (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule39CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_FULLE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_substr_full_eq (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_FULL_EQE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_substr_len_include (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule46CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_LEN_INCLUDEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_substr_len_include_pre (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule50CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_LEN_INCLUDE_PREE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_substr_len_skip (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_SUBSTR_LEN_SKIPE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_suffixof_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule41CVC5_PROOF_REWRITE_RULE_STR_SUFFIXOF_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_suffixof_one (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_SUFFIXOF_ONEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_to_int_concat_neg_one (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule49CVC5_PROOF_REWRITE_RULE_STR_TO_INT_CONCAT_NEG_ONEE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_to_lower_concat (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_TO_LOWER_CONCATE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_to_lower_from_int (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_STR_TO_LOWER_FROM_INTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_to_lower_len (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_TO_LOWER_LENE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_to_lower_upper (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_TO_LOWER_UPPERE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_to_upper_concat (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule43CVC5_PROOF_REWRITE_RULE_STR_TO_UPPER_CONCATE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_to_upper_from_int (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_STR_TO_UPPER_FROM_INTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_to_upper_len (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_STR_TO_UPPER_LENE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_str_to_upper_lower (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_STR_TO_UPPER_LOWERE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_uf_bv2nat_geq_elim (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule42CVC5_PROOF_REWRITE_RULE_UF_BV2NAT_GEQ_ELIME"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_uf_bv2nat_int2bv (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_UF_BV2NAT_INT2BVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_uf_bv2nat_int2bv_extend (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule47CVC5_PROOF_REWRITE_RULE_UF_BV2NAT_INT2BV_EXTENDE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_uf_bv2nat_int2bv_extract (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule48CVC5_PROOF_REWRITE_RULE_UF_BV2NAT_INT2BV_EXTRACTE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_uf_int2bv_bv2nat (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule40CVC5_PROOF_REWRITE_RULE_UF_INT2BV_BV2NATE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_uf_int2bv_bvule_equiv (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_UF_INT2BV_BVULE_EQUIVE"]], "cvc5proofrewriterule::cvc5_proof_rewrite_rule_uf_int2bv_bvult_equiv (c++ enumerator)": [[3, "_CPPv4N20Cvc5ProofRewriteRule45CVC5_PROOF_REWRITE_RULE_UF_INT2BV_BVULT_EQUIVE"]], "cvc5proofrule (c++ enum)": [[3, "_CPPv413Cvc5ProofRule"]], "cvc5proofrule::cvc5_proof_rule_aci_norm (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule24CVC5_PROOF_RULE_ACI_NORME"]], "cvc5proofrule::cvc5_proof_rule_alethe_rule (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_ALETHE_RULEE"]], "cvc5proofrule::cvc5_proof_rule_alpha_equiv (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_ALPHA_EQUIVE"]], "cvc5proofrule::cvc5_proof_rule_and_elim (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule24CVC5_PROOF_RULE_AND_ELIME"]], "cvc5proofrule::cvc5_proof_rule_and_intro (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_AND_INTROE"]], "cvc5proofrule::cvc5_proof_rule_arith_mult_abs_comparison (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule41CVC5_PROOF_RULE_ARITH_MULT_ABS_COMPARISONE"]], "cvc5proofrule::cvc5_proof_rule_arith_mult_neg (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_ARITH_MULT_NEGE"]], "cvc5proofrule::cvc5_proof_rule_arith_mult_pos (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_ARITH_MULT_POSE"]], "cvc5proofrule::cvc5_proof_rule_arith_mult_sign (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_ARITH_MULT_SIGNE"]], "cvc5proofrule::cvc5_proof_rule_arith_mult_tangent (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule34CVC5_PROOF_RULE_ARITH_MULT_TANGENTE"]], "cvc5proofrule::cvc5_proof_rule_arith_poly_norm (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_ARITH_POLY_NORME"]], "cvc5proofrule::cvc5_proof_rule_arith_poly_norm_rel (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule35CVC5_PROOF_RULE_ARITH_POLY_NORM_RELE"]], "cvc5proofrule::cvc5_proof_rule_arith_reduction (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_ARITH_REDUCTIONE"]], "cvc5proofrule::cvc5_proof_rule_arith_sum_ub (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_ARITH_SUM_UBE"]], "cvc5proofrule::cvc5_proof_rule_arith_trans_exp_approx_above_neg (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule48CVC5_PROOF_RULE_ARITH_TRANS_EXP_APPROX_ABOVE_NEGE"]], "cvc5proofrule::cvc5_proof_rule_arith_trans_exp_approx_above_pos (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule48CVC5_PROOF_RULE_ARITH_TRANS_EXP_APPROX_ABOVE_POSE"]], "cvc5proofrule::cvc5_proof_rule_arith_trans_exp_approx_below (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule44CVC5_PROOF_RULE_ARITH_TRANS_EXP_APPROX_BELOWE"]], "cvc5proofrule::cvc5_proof_rule_arith_trans_exp_neg (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule35CVC5_PROOF_RULE_ARITH_TRANS_EXP_NEGE"]], "cvc5proofrule::cvc5_proof_rule_arith_trans_exp_positivity (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule42CVC5_PROOF_RULE_ARITH_TRANS_EXP_POSITIVITYE"]], "cvc5proofrule::cvc5_proof_rule_arith_trans_exp_super_lin (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule41CVC5_PROOF_RULE_ARITH_TRANS_EXP_SUPER_LINE"]], "cvc5proofrule::cvc5_proof_rule_arith_trans_exp_zero (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule36CVC5_PROOF_RULE_ARITH_TRANS_EXP_ZEROE"]], "cvc5proofrule::cvc5_proof_rule_arith_trans_pi (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_ARITH_TRANS_PIE"]], "cvc5proofrule::cvc5_proof_rule_arith_trans_sine_approx_above_neg (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule49CVC5_PROOF_RULE_ARITH_TRANS_SINE_APPROX_ABOVE_NEGE"]], "cvc5proofrule::cvc5_proof_rule_arith_trans_sine_approx_above_pos (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule49CVC5_PROOF_RULE_ARITH_TRANS_SINE_APPROX_ABOVE_POSE"]], "cvc5proofrule::cvc5_proof_rule_arith_trans_sine_approx_below_neg (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule49CVC5_PROOF_RULE_ARITH_TRANS_SINE_APPROX_BELOW_NEGE"]], "cvc5proofrule::cvc5_proof_rule_arith_trans_sine_approx_below_pos (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule49CVC5_PROOF_RULE_ARITH_TRANS_SINE_APPROX_BELOW_POSE"]], "cvc5proofrule::cvc5_proof_rule_arith_trans_sine_bounds (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule39CVC5_PROOF_RULE_ARITH_TRANS_SINE_BOUNDSE"]], "cvc5proofrule::cvc5_proof_rule_arith_trans_sine_shift (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule38CVC5_PROOF_RULE_ARITH_TRANS_SINE_SHIFTE"]], "cvc5proofrule::cvc5_proof_rule_arith_trans_sine_symmetry (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule41CVC5_PROOF_RULE_ARITH_TRANS_SINE_SYMMETRYE"]], "cvc5proofrule::cvc5_proof_rule_arith_trans_sine_tangent_pi (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule43CVC5_PROOF_RULE_ARITH_TRANS_SINE_TANGENT_PIE"]], "cvc5proofrule::cvc5_proof_rule_arith_trans_sine_tangent_zero (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule45CVC5_PROOF_RULE_ARITH_TRANS_SINE_TANGENT_ZEROE"]], "cvc5proofrule::cvc5_proof_rule_arith_trichotomy (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_ARITH_TRICHOTOMYE"]], "cvc5proofrule::cvc5_proof_rule_arrays_ext (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_ARRAYS_EXTE"]], "cvc5proofrule::cvc5_proof_rule_arrays_read_over_write (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule38CVC5_PROOF_RULE_ARRAYS_READ_OVER_WRITEE"]], "cvc5proofrule::cvc5_proof_rule_arrays_read_over_write_1 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule40CVC5_PROOF_RULE_ARRAYS_READ_OVER_WRITE_1E"]], "cvc5proofrule::cvc5_proof_rule_arrays_read_over_write_contra (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule45CVC5_PROOF_RULE_ARRAYS_READ_OVER_WRITE_CONTRAE"]], "cvc5proofrule::cvc5_proof_rule_assume (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule22CVC5_PROOF_RULE_ASSUMEE"]], "cvc5proofrule::cvc5_proof_rule_bv_bitblast_step (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_BV_BITBLAST_STEPE"]], "cvc5proofrule::cvc5_proof_rule_bv_eager_atom (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_BV_EAGER_ATOME"]], "cvc5proofrule::cvc5_proof_rule_chain_resolution (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_CHAIN_RESOLUTIONE"]], "cvc5proofrule::cvc5_proof_rule_cnf_and_neg (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_CNF_AND_NEGE"]], "cvc5proofrule::cvc5_proof_rule_cnf_and_pos (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_CNF_AND_POSE"]], "cvc5proofrule::cvc5_proof_rule_cnf_equiv_neg1 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_CNF_EQUIV_NEG1E"]], "cvc5proofrule::cvc5_proof_rule_cnf_equiv_neg2 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_CNF_EQUIV_NEG2E"]], "cvc5proofrule::cvc5_proof_rule_cnf_equiv_pos1 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_CNF_EQUIV_POS1E"]], "cvc5proofrule::cvc5_proof_rule_cnf_equiv_pos2 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_CNF_EQUIV_POS2E"]], "cvc5proofrule::cvc5_proof_rule_cnf_implies_neg1 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_CNF_IMPLIES_NEG1E"]], "cvc5proofrule::cvc5_proof_rule_cnf_implies_neg2 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_CNF_IMPLIES_NEG2E"]], "cvc5proofrule::cvc5_proof_rule_cnf_implies_pos (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_CNF_IMPLIES_POSE"]], "cvc5proofrule::cvc5_proof_rule_cnf_ite_neg1 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_ITE_NEG1E"]], "cvc5proofrule::cvc5_proof_rule_cnf_ite_neg2 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_ITE_NEG2E"]], "cvc5proofrule::cvc5_proof_rule_cnf_ite_neg3 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_ITE_NEG3E"]], "cvc5proofrule::cvc5_proof_rule_cnf_ite_pos1 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_ITE_POS1E"]], "cvc5proofrule::cvc5_proof_rule_cnf_ite_pos2 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_ITE_POS2E"]], "cvc5proofrule::cvc5_proof_rule_cnf_ite_pos3 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_ITE_POS3E"]], "cvc5proofrule::cvc5_proof_rule_cnf_or_neg (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_CNF_OR_NEGE"]], "cvc5proofrule::cvc5_proof_rule_cnf_or_pos (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_CNF_OR_POSE"]], "cvc5proofrule::cvc5_proof_rule_cnf_xor_neg1 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_XOR_NEG1E"]], "cvc5proofrule::cvc5_proof_rule_cnf_xor_neg2 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_XOR_NEG2E"]], "cvc5proofrule::cvc5_proof_rule_cnf_xor_pos1 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_XOR_POS1E"]], "cvc5proofrule::cvc5_proof_rule_cnf_xor_pos2 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CNF_XOR_POS2E"]], "cvc5proofrule::cvc5_proof_rule_concat_conflict (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_CONCAT_CONFLICTE"]], "cvc5proofrule::cvc5_proof_rule_concat_conflict_deq (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule35CVC5_PROOF_RULE_CONCAT_CONFLICT_DEQE"]], "cvc5proofrule::cvc5_proof_rule_concat_cprop (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CONCAT_CPROPE"]], "cvc5proofrule::cvc5_proof_rule_concat_csplit (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_CONCAT_CSPLITE"]], "cvc5proofrule::cvc5_proof_rule_concat_eq (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_CONCAT_EQE"]], "cvc5proofrule::cvc5_proof_rule_concat_lprop (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CONCAT_LPROPE"]], "cvc5proofrule::cvc5_proof_rule_concat_split (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CONCAT_SPLITE"]], "cvc5proofrule::cvc5_proof_rule_concat_unify (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_CONCAT_UNIFYE"]], "cvc5proofrule::cvc5_proof_rule_cong (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule20CVC5_PROOF_RULE_CONGE"]], "cvc5proofrule::cvc5_proof_rule_contra (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule22CVC5_PROOF_RULE_CONTRAE"]], "cvc5proofrule::cvc5_proof_rule_drat_refutation (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_DRAT_REFUTATIONE"]], "cvc5proofrule::cvc5_proof_rule_dsl_rewrite (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_DSL_REWRITEE"]], "cvc5proofrule::cvc5_proof_rule_dt_clash (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule24CVC5_PROOF_RULE_DT_CLASHE"]], "cvc5proofrule::cvc5_proof_rule_dt_split (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule24CVC5_PROOF_RULE_DT_SPLITE"]], "cvc5proofrule::cvc5_proof_rule_encode_eq_intro (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_ENCODE_EQ_INTROE"]], "cvc5proofrule::cvc5_proof_rule_equiv_elim1 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_EQUIV_ELIM1E"]], "cvc5proofrule::cvc5_proof_rule_equiv_elim2 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_EQUIV_ELIM2E"]], "cvc5proofrule::cvc5_proof_rule_eq_resolve (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_EQ_RESOLVEE"]], "cvc5proofrule::cvc5_proof_rule_evaluate (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule24CVC5_PROOF_RULE_EVALUATEE"]], "cvc5proofrule::cvc5_proof_rule_factoring (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_FACTORINGE"]], "cvc5proofrule::cvc5_proof_rule_false_elim (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_FALSE_ELIME"]], "cvc5proofrule::cvc5_proof_rule_false_intro (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_FALSE_INTROE"]], "cvc5proofrule::cvc5_proof_rule_ho_app_encode (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_HO_APP_ENCODEE"]], "cvc5proofrule::cvc5_proof_rule_ho_cong (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule23CVC5_PROOF_RULE_HO_CONGE"]], "cvc5proofrule::cvc5_proof_rule_implies_elim (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_IMPLIES_ELIME"]], "cvc5proofrule::cvc5_proof_rule_instantiate (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_INSTANTIATEE"]], "cvc5proofrule::cvc5_proof_rule_int_tight_lb (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_INT_TIGHT_LBE"]], "cvc5proofrule::cvc5_proof_rule_int_tight_ub (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_INT_TIGHT_UBE"]], "cvc5proofrule::cvc5_proof_rule_ite_elim1 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_ITE_ELIM1E"]], "cvc5proofrule::cvc5_proof_rule_ite_elim2 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_ITE_ELIM2E"]], "cvc5proofrule::cvc5_proof_rule_ite_eq (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule22CVC5_PROOF_RULE_ITE_EQE"]], "cvc5proofrule::cvc5_proof_rule_last (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule20CVC5_PROOF_RULE_LASTE"]], "cvc5proofrule::cvc5_proof_rule_lfsc_rule (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_LFSC_RULEE"]], "cvc5proofrule::cvc5_proof_rule_macro_arith_scale_sum_ub (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule40CVC5_PROOF_RULE_MACRO_ARITH_SCALE_SUM_UBE"]], "cvc5proofrule::cvc5_proof_rule_macro_bv_bitblast (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule33CVC5_PROOF_RULE_MACRO_BV_BITBLASTE"]], "cvc5proofrule::cvc5_proof_rule_macro_resolution (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_MACRO_RESOLUTIONE"]], "cvc5proofrule::cvc5_proof_rule_macro_resolution_trust (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule38CVC5_PROOF_RULE_MACRO_RESOLUTION_TRUSTE"]], "cvc5proofrule::cvc5_proof_rule_macro_rewrite (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_MACRO_REWRITEE"]], "cvc5proofrule::cvc5_proof_rule_macro_sr_eq_intro (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule33CVC5_PROOF_RULE_MACRO_SR_EQ_INTROE"]], "cvc5proofrule::cvc5_proof_rule_macro_sr_pred_elim (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule34CVC5_PROOF_RULE_MACRO_SR_PRED_ELIME"]], "cvc5proofrule::cvc5_proof_rule_macro_sr_pred_intro (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule35CVC5_PROOF_RULE_MACRO_SR_PRED_INTROE"]], "cvc5proofrule::cvc5_proof_rule_macro_sr_pred_transform (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule39CVC5_PROOF_RULE_MACRO_SR_PRED_TRANSFORME"]], "cvc5proofrule::cvc5_proof_rule_macro_string_inference (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule38CVC5_PROOF_RULE_MACRO_STRING_INFERENCEE"]], "cvc5proofrule::cvc5_proof_rule_modus_ponens (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_MODUS_PONENSE"]], "cvc5proofrule::cvc5_proof_rule_nary_cong (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_NARY_CONGE"]], "cvc5proofrule::cvc5_proof_rule_not_and (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule23CVC5_PROOF_RULE_NOT_ANDE"]], "cvc5proofrule::cvc5_proof_rule_not_equiv_elim1 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_NOT_EQUIV_ELIM1E"]], "cvc5proofrule::cvc5_proof_rule_not_equiv_elim2 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_NOT_EQUIV_ELIM2E"]], "cvc5proofrule::cvc5_proof_rule_not_implies_elim1 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule33CVC5_PROOF_RULE_NOT_IMPLIES_ELIM1E"]], "cvc5proofrule::cvc5_proof_rule_not_implies_elim2 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule33CVC5_PROOF_RULE_NOT_IMPLIES_ELIM2E"]], "cvc5proofrule::cvc5_proof_rule_not_ite_elim1 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_NOT_ITE_ELIM1E"]], "cvc5proofrule::cvc5_proof_rule_not_ite_elim2 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_NOT_ITE_ELIM2E"]], "cvc5proofrule::cvc5_proof_rule_not_not_elim (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_NOT_NOT_ELIME"]], "cvc5proofrule::cvc5_proof_rule_not_or_elim (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule27CVC5_PROOF_RULE_NOT_OR_ELIME"]], "cvc5proofrule::cvc5_proof_rule_not_xor_elim1 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_NOT_XOR_ELIM1E"]], "cvc5proofrule::cvc5_proof_rule_not_xor_elim2 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_NOT_XOR_ELIM2E"]], "cvc5proofrule::cvc5_proof_rule_quant_var_reordering (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule36CVC5_PROOF_RULE_QUANT_VAR_REORDERINGE"]], "cvc5proofrule::cvc5_proof_rule_refl (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule20CVC5_PROOF_RULE_REFLE"]], "cvc5proofrule::cvc5_proof_rule_reordering (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_REORDERINGE"]], "cvc5proofrule::cvc5_proof_rule_resolution (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_RESOLUTIONE"]], "cvc5proofrule::cvc5_proof_rule_re_inter (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule24CVC5_PROOF_RULE_RE_INTERE"]], "cvc5proofrule::cvc5_proof_rule_re_unfold_neg (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_RE_UNFOLD_NEGE"]], "cvc5proofrule::cvc5_proof_rule_re_unfold_neg_concat_fixed (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule42CVC5_PROOF_RULE_RE_UNFOLD_NEG_CONCAT_FIXEDE"]], "cvc5proofrule::cvc5_proof_rule_re_unfold_pos (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule29CVC5_PROOF_RULE_RE_UNFOLD_POSE"]], "cvc5proofrule::cvc5_proof_rule_sat_external_prove (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule34CVC5_PROOF_RULE_SAT_EXTERNAL_PROVEE"]], "cvc5proofrule::cvc5_proof_rule_sat_refutation (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_SAT_REFUTATIONE"]], "cvc5proofrule::cvc5_proof_rule_scope (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule21CVC5_PROOF_RULE_SCOPEE"]], "cvc5proofrule::cvc5_proof_rule_sets_ext (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule24CVC5_PROOF_RULE_SETS_EXTE"]], "cvc5proofrule::cvc5_proof_rule_sets_filter_down (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_SETS_FILTER_DOWNE"]], "cvc5proofrule::cvc5_proof_rule_sets_filter_up (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_SETS_FILTER_UPE"]], "cvc5proofrule::cvc5_proof_rule_sets_singleton_inj (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule34CVC5_PROOF_RULE_SETS_SINGLETON_INJE"]], "cvc5proofrule::cvc5_proof_rule_skolemize (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_SKOLEMIZEE"]], "cvc5proofrule::cvc5_proof_rule_skolem_intro (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule28CVC5_PROOF_RULE_SKOLEM_INTROE"]], "cvc5proofrule::cvc5_proof_rule_split (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule21CVC5_PROOF_RULE_SPLITE"]], "cvc5proofrule::cvc5_proof_rule_string_code_inj (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule31CVC5_PROOF_RULE_STRING_CODE_INJE"]], "cvc5proofrule::cvc5_proof_rule_string_decompose (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_STRING_DECOMPOSEE"]], "cvc5proofrule::cvc5_proof_rule_string_eager_reduction (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule38CVC5_PROOF_RULE_STRING_EAGER_REDUCTIONE"]], "cvc5proofrule::cvc5_proof_rule_string_ext (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_STRING_EXTE"]], "cvc5proofrule::cvc5_proof_rule_string_length_non_empty (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule39CVC5_PROOF_RULE_STRING_LENGTH_NON_EMPTYE"]], "cvc5proofrule::cvc5_proof_rule_string_length_pos (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule33CVC5_PROOF_RULE_STRING_LENGTH_POSE"]], "cvc5proofrule::cvc5_proof_rule_string_reduction (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule32CVC5_PROOF_RULE_STRING_REDUCTIONE"]], "cvc5proofrule::cvc5_proof_rule_string_seq_unit_inj (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule35CVC5_PROOF_RULE_STRING_SEQ_UNIT_INJE"]], "cvc5proofrule::cvc5_proof_rule_subs (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule20CVC5_PROOF_RULE_SUBSE"]], "cvc5proofrule::cvc5_proof_rule_symm (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule20CVC5_PROOF_RULE_SYMME"]], "cvc5proofrule::cvc5_proof_rule_theory_rewrite (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule30CVC5_PROOF_RULE_THEORY_REWRITEE"]], "cvc5proofrule::cvc5_proof_rule_trans (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule21CVC5_PROOF_RULE_TRANSE"]], "cvc5proofrule::cvc5_proof_rule_true_elim (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_TRUE_ELIME"]], "cvc5proofrule::cvc5_proof_rule_true_intro (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule26CVC5_PROOF_RULE_TRUE_INTROE"]], "cvc5proofrule::cvc5_proof_rule_trust (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule21CVC5_PROOF_RULE_TRUSTE"]], "cvc5proofrule::cvc5_proof_rule_trust_theory_rewrite (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule36CVC5_PROOF_RULE_TRUST_THEORY_REWRITEE"]], "cvc5proofrule::cvc5_proof_rule_unknown (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule23CVC5_PROOF_RULE_UNKNOWNE"]], "cvc5proofrule::cvc5_proof_rule_xor_elim1 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_XOR_ELIM1E"]], "cvc5proofrule::cvc5_proof_rule_xor_elim2 (c++ enumerator)": [[3, "_CPPv4N13Cvc5ProofRule25CVC5_PROOF_RULE_XOR_ELIM2E"]], "cvc5_proof_rewrite_rule_hash (c++ function)": [[3, "_CPPv428cvc5_proof_rewrite_rule_hash20Cvc5ProofRewriteRule"]], "cvc5_proof_rewrite_rule_to_string (c++ function)": [[3, "_CPPv433cvc5_proof_rewrite_rule_to_string20Cvc5ProofRewriteRule"]], "cvc5_proof_rule_hash (c++ function)": [[3, "_CPPv420cvc5_proof_rule_hash13Cvc5ProofRule"]], "cvc5_proof_rule_to_string (c++ function)": [[3, "_CPPv425cvc5_proof_rule_to_string13Cvc5ProofRule"]], "cvc5roundingmode (c++ enum)": [[4, "_CPPv416Cvc5RoundingMode"]], "cvc5roundingmode::cvc5_rm_last (c++ enumerator)": [[4, "_CPPv4N16Cvc5RoundingMode12CVC5_RM_LASTE"]], "cvc5roundingmode::cvc5_rm_round_nearest_ties_to_away (c++ enumerator)": [[4, "_CPPv4N16Cvc5RoundingMode34CVC5_RM_ROUND_NEAREST_TIES_TO_AWAYE"]], "cvc5roundingmode::cvc5_rm_round_nearest_ties_to_even (c++ enumerator)": [[4, "_CPPv4N16Cvc5RoundingMode34CVC5_RM_ROUND_NEAREST_TIES_TO_EVENE"]], "cvc5roundingmode::cvc5_rm_round_toward_negative (c++ enumerator)": [[4, "_CPPv4N16Cvc5RoundingMode29CVC5_RM_ROUND_TOWARD_NEGATIVEE"]], "cvc5roundingmode::cvc5_rm_round_toward_positive (c++ enumerator)": [[4, "_CPPv4N16Cvc5RoundingMode29CVC5_RM_ROUND_TOWARD_POSITIVEE"]], "cvc5roundingmode::cvc5_rm_round_toward_zero (c++ enumerator)": [[4, "_CPPv4N16Cvc5RoundingMode25CVC5_RM_ROUND_TOWARD_ZEROE"]], "cvc5_rm_to_string (c++ function)": [[4, "_CPPv417cvc5_rm_to_string16Cvc5RoundingMode"]], "cvc5sortkind (c++ enum)": [[5, "_CPPv412Cvc5SortKind"]], "cvc5sortkind::cvc5_sort_kind_abstract_sort (c++ enumerator)": [[5, "_CPPv4N12Cvc5SortKind28CVC5_SORT_KIND_ABSTRACT_SORTE"]], "cvc5sortkind::cvc5_sort_kind_array_sort (c++ enumerator)": [[5, "_CPPv4N12Cvc5SortKind25CVC5_SORT_KIND_ARRAY_SORTE"]], "cvc5sortkind::cvc5_sort_kind_bag_sort (c++ enumerator)": [[5, "_CPPv4N12Cvc5SortKind23CVC5_SORT_KIND_BAG_SORTE"]], "cvc5sortkind::cvc5_sort_kind_bitvector_sort (c++ enumerator)": [[5, "_CPPv4N12Cvc5SortKind29CVC5_SORT_KIND_BITVECTOR_SORTE"]], "cvc5sortkind::cvc5_sort_kind_boolean_sort (c++ enumerator)": [[5, "_CPPv4N12Cvc5SortKind27CVC5_SORT_KIND_BOOLEAN_SORTE"]], "cvc5sortkind::cvc5_sort_kind_datatype_sort (c++ enumerator)": [[5, "_CPPv4N12Cvc5SortKind28CVC5_SORT_KIND_DATATYPE_SORTE"]], "cvc5sortkind::cvc5_sort_kind_finite_field_sort (c++ enumerator)": [[5, "_CPPv4N12Cvc5SortKind32CVC5_SORT_KIND_FINITE_FIELD_SORTE"]], "cvc5sortkind::cvc5_sort_kind_floatingpoint_sort (c++ enumerator)": [[5, "_CPPv4N12Cvc5SortKind33CVC5_SORT_KIND_FLOATINGPOINT_SORTE"]], "cvc5sortkind::cvc5_sort_kind_function_sort (c++ enumerator)": [[5, "_CPPv4N12Cvc5SortKind28CVC5_SORT_KIND_FUNCTION_SORTE"]], "cvc5sortkind::cvc5_sort_kind_integer_sort (c++ enumerator)": [[5, "_CPPv4N12Cvc5SortKind27CVC5_SORT_KIND_INTEGER_SORTE"]], "cvc5sortkind::cvc5_sort_kind_internal_sort_kind (c++ enumerator)": [[5, "_CPPv4N12Cvc5SortKind33CVC5_SORT_KIND_INTERNAL_SORT_KINDE"]], "cvc5sortkind::cvc5_sort_kind_last_sort_kind (c++ enumerator)": [[5, "_CPPv4N12Cvc5SortKind29CVC5_SORT_KIND_LAST_SORT_KINDE"]], "cvc5sortkind::cvc5_sort_kind_nullable_sort (c++ enumerator)": [[5, "_CPPv4N12Cvc5SortKind28CVC5_SORT_KIND_NULLABLE_SORTE"]], "cvc5sortkind::cvc5_sort_kind_null_sort (c++ enumerator)": [[5, "_CPPv4N12Cvc5SortKind24CVC5_SORT_KIND_NULL_SORTE"]], "cvc5sortkind::cvc5_sort_kind_real_sort (c++ enumerator)": [[5, "_CPPv4N12Cvc5SortKind24CVC5_SORT_KIND_REAL_SORTE"]], "cvc5sortkind::cvc5_sort_kind_reglan_sort (c++ enumerator)": [[5, "_CPPv4N12Cvc5SortKind26CVC5_SORT_KIND_REGLAN_SORTE"]], "cvc5sortkind::cvc5_sort_kind_roundingmode_sort (c++ enumerator)": [[5, "_CPPv4N12Cvc5SortKind32CVC5_SORT_KIND_ROUNDINGMODE_SORTE"]], "cvc5sortkind::cvc5_sort_kind_sequence_sort (c++ enumerator)": [[5, "_CPPv4N12Cvc5SortKind28CVC5_SORT_KIND_SEQUENCE_SORTE"]], "cvc5sortkind::cvc5_sort_kind_set_sort (c++ enumerator)": [[5, "_CPPv4N12Cvc5SortKind23CVC5_SORT_KIND_SET_SORTE"]], "cvc5sortkind::cvc5_sort_kind_string_sort (c++ enumerator)": [[5, "_CPPv4N12Cvc5SortKind26CVC5_SORT_KIND_STRING_SORTE"]], "cvc5sortkind::cvc5_sort_kind_tuple_sort (c++ enumerator)": [[5, "_CPPv4N12Cvc5SortKind25CVC5_SORT_KIND_TUPLE_SORTE"]], "cvc5sortkind::cvc5_sort_kind_undefined_sort_kind (c++ enumerator)": [[5, "_CPPv4N12Cvc5SortKind34CVC5_SORT_KIND_UNDEFINED_SORT_KINDE"]], "cvc5sortkind::cvc5_sort_kind_uninterpreted_sort (c++ enumerator)": [[5, "_CPPv4N12Cvc5SortKind33CVC5_SORT_KIND_UNINTERPRETED_SORTE"]], "cvc5_sort_kind_hash (c++ function)": [[5, "_CPPv419cvc5_sort_kind_hash12Cvc5SortKind"]], "cvc5_sort_kind_to_string (c++ function)": [[5, "_CPPv424cvc5_sort_kind_to_string12Cvc5SortKind"]], "cvc5unknownexplanation (c++ enum)": [[6, "_CPPv422Cvc5UnknownExplanation"]], "cvc5unknownexplanation::cvc5_unknown_explanation_incomplete (c++ enumerator)": [[6, "_CPPv4N22Cvc5UnknownExplanation35CVC5_UNKNOWN_EXPLANATION_INCOMPLETEE"]], "cvc5unknownexplanation::cvc5_unknown_explanation_interrupted (c++ enumerator)": [[6, "_CPPv4N22Cvc5UnknownExplanation36CVC5_UNKNOWN_EXPLANATION_INTERRUPTEDE"]], "cvc5unknownexplanation::cvc5_unknown_explanation_last (c++ enumerator)": [[6, "_CPPv4N22Cvc5UnknownExplanation29CVC5_UNKNOWN_EXPLANATION_LASTE"]], "cvc5unknownexplanation::cvc5_unknown_explanation_memout (c++ enumerator)": [[6, "_CPPv4N22Cvc5UnknownExplanation31CVC5_UNKNOWN_EXPLANATION_MEMOUTE"]], "cvc5unknownexplanation::cvc5_unknown_explanation_other (c++ enumerator)": [[6, "_CPPv4N22Cvc5UnknownExplanation30CVC5_UNKNOWN_EXPLANATION_OTHERE"]], "cvc5unknownexplanation::cvc5_unknown_explanation_requires_check_again (c++ enumerator)": [[6, "_CPPv4N22Cvc5UnknownExplanation45CVC5_UNKNOWN_EXPLANATION_REQUIRES_CHECK_AGAINE"]], "cvc5unknownexplanation::cvc5_unknown_explanation_requires_full_check (c++ enumerator)": [[6, "_CPPv4N22Cvc5UnknownExplanation44CVC5_UNKNOWN_EXPLANATION_REQUIRES_FULL_CHECKE"]], "cvc5unknownexplanation::cvc5_unknown_explanation_resourceout (c++ enumerator)": [[6, "_CPPv4N22Cvc5UnknownExplanation36CVC5_UNKNOWN_EXPLANATION_RESOURCEOUTE"]], "cvc5unknownexplanation::cvc5_unknown_explanation_timeout (c++ enumerator)": [[6, "_CPPv4N22Cvc5UnknownExplanation32CVC5_UNKNOWN_EXPLANATION_TIMEOUTE"]], "cvc5unknownexplanation::cvc5_unknown_explanation_unknown_reason (c++ enumerator)": [[6, "_CPPv4N22Cvc5UnknownExplanation39CVC5_UNKNOWN_EXPLANATION_UNKNOWN_REASONE"]], "cvc5unknownexplanation::cvc5_unknown_explanation_unsupported (c++ enumerator)": [[6, "_CPPv4N22Cvc5UnknownExplanation36CVC5_UNKNOWN_EXPLANATION_UNSUPPORTEDE"]], "cvc5_unknown_explanation_to_string (c++ function)": [[6, "_CPPv434cvc5_unknown_explanation_to_string22Cvc5UnknownExplanation"]], "cvc5blockmodelsmode (c++ enum)": [[7, "_CPPv419Cvc5BlockModelsMode"]], "cvc5blockmodelsmode::cvc5_block_models_mode_last (c++ enumerator)": [[7, "_CPPv4N19Cvc5BlockModelsMode27CVC5_BLOCK_MODELS_MODE_LASTE"]], "cvc5blockmodelsmode::cvc5_block_models_mode_literals (c++ enumerator)": [[7, "_CPPv4N19Cvc5BlockModelsMode31CVC5_BLOCK_MODELS_MODE_LITERALSE"]], "cvc5blockmodelsmode::cvc5_block_models_mode_values (c++ enumerator)": [[7, "_CPPv4N19Cvc5BlockModelsMode29CVC5_BLOCK_MODELS_MODE_VALUESE"]], "cvc5findsynthtarget (c++ enum)": [[7, "_CPPv419Cvc5FindSynthTarget"]], "cvc5findsynthtarget::cvc5_find_synth_target_enum (c++ enumerator)": [[7, "_CPPv4N19Cvc5FindSynthTarget27CVC5_FIND_SYNTH_TARGET_ENUME"]], "cvc5findsynthtarget::cvc5_find_synth_target_last (c++ enumerator)": [[7, "_CPPv4N19Cvc5FindSynthTarget27CVC5_FIND_SYNTH_TARGET_LASTE"]], "cvc5findsynthtarget::cvc5_find_synth_target_query (c++ enumerator)": [[7, "_CPPv4N19Cvc5FindSynthTarget28CVC5_FIND_SYNTH_TARGET_QUERYE"]], "cvc5findsynthtarget::cvc5_find_synth_target_rewrite (c++ enumerator)": [[7, "_CPPv4N19Cvc5FindSynthTarget30CVC5_FIND_SYNTH_TARGET_REWRITEE"]], "cvc5findsynthtarget::cvc5_find_synth_target_rewrite_input (c++ enumerator)": [[7, "_CPPv4N19Cvc5FindSynthTarget36CVC5_FIND_SYNTH_TARGET_REWRITE_INPUTE"]], "cvc5findsynthtarget::cvc5_find_synth_target_rewrite_unsound (c++ enumerator)": [[7, "_CPPv4N19Cvc5FindSynthTarget38CVC5_FIND_SYNTH_TARGET_REWRITE_UNSOUNDE"]], "cvc5learnedlittype (c++ enum)": [[7, "_CPPv418Cvc5LearnedLitType"]], "cvc5learnedlittype::cvc5_learned_lit_type_constant_prop (c++ enumerator)": [[7, "_CPPv4N18Cvc5LearnedLitType35CVC5_LEARNED_LIT_TYPE_CONSTANT_PROPE"]], "cvc5learnedlittype::cvc5_learned_lit_type_input (c++ enumerator)": [[7, "_CPPv4N18Cvc5LearnedLitType27CVC5_LEARNED_LIT_TYPE_INPUTE"]], "cvc5learnedlittype::cvc5_learned_lit_type_internal (c++ enumerator)": [[7, "_CPPv4N18Cvc5LearnedLitType30CVC5_LEARNED_LIT_TYPE_INTERNALE"]], "cvc5learnedlittype::cvc5_learned_lit_type_last (c++ enumerator)": [[7, "_CPPv4N18Cvc5LearnedLitType26CVC5_LEARNED_LIT_TYPE_LASTE"]], "cvc5learnedlittype::cvc5_learned_lit_type_preprocess (c++ enumerator)": [[7, "_CPPv4N18Cvc5LearnedLitType32CVC5_LEARNED_LIT_TYPE_PREPROCESSE"]], "cvc5learnedlittype::cvc5_learned_lit_type_preprocess_solved (c++ enumerator)": [[7, "_CPPv4N18Cvc5LearnedLitType39CVC5_LEARNED_LIT_TYPE_PREPROCESS_SOLVEDE"]], "cvc5learnedlittype::cvc5_learned_lit_type_solvable (c++ enumerator)": [[7, "_CPPv4N18Cvc5LearnedLitType30CVC5_LEARNED_LIT_TYPE_SOLVABLEE"]], "cvc5learnedlittype::cvc5_learned_lit_type_unknown (c++ enumerator)": [[7, "_CPPv4N18Cvc5LearnedLitType29CVC5_LEARNED_LIT_TYPE_UNKNOWNE"]], "cvc5proofcomponent (c++ enum)": [[7, "_CPPv418Cvc5ProofComponent"]], "cvc5proofcomponent::cvc5_proof_component_full (c++ enumerator)": [[7, "_CPPv4N18Cvc5ProofComponent25CVC5_PROOF_COMPONENT_FULLE"]], "cvc5proofcomponent::cvc5_proof_component_last (c++ enumerator)": [[7, "_CPPv4N18Cvc5ProofComponent25CVC5_PROOF_COMPONENT_LASTE"]], "cvc5proofcomponent::cvc5_proof_component_preprocess (c++ enumerator)": [[7, "_CPPv4N18Cvc5ProofComponent31CVC5_PROOF_COMPONENT_PREPROCESSE"]], "cvc5proofcomponent::cvc5_proof_component_raw_preprocess (c++ enumerator)": [[7, "_CPPv4N18Cvc5ProofComponent35CVC5_PROOF_COMPONENT_RAW_PREPROCESSE"]], "cvc5proofcomponent::cvc5_proof_component_sat (c++ enumerator)": [[7, "_CPPv4N18Cvc5ProofComponent24CVC5_PROOF_COMPONENT_SATE"]], "cvc5proofcomponent::cvc5_proof_component_theory_lemmas (c++ enumerator)": [[7, "_CPPv4N18Cvc5ProofComponent34CVC5_PROOF_COMPONENT_THEORY_LEMMASE"]], "cvc5proofformat (c++ enum)": [[7, "_CPPv415Cvc5ProofFormat"]], "cvc5proofformat::cvc5_proof_format_alethe (c++ enumerator)": [[7, "_CPPv4N15Cvc5ProofFormat24CVC5_PROOF_FORMAT_ALETHEE"]], "cvc5proofformat::cvc5_proof_format_cpc (c++ enumerator)": [[7, "_CPPv4N15Cvc5ProofFormat21CVC5_PROOF_FORMAT_CPCE"]], "cvc5proofformat::cvc5_proof_format_default (c++ enumerator)": [[7, "_CPPv4N15Cvc5ProofFormat25CVC5_PROOF_FORMAT_DEFAULTE"]], "cvc5proofformat::cvc5_proof_format_dot (c++ enumerator)": [[7, "_CPPv4N15Cvc5ProofFormat21CVC5_PROOF_FORMAT_DOTE"]], "cvc5proofformat::cvc5_proof_format_last (c++ enumerator)": [[7, "_CPPv4N15Cvc5ProofFormat22CVC5_PROOF_FORMAT_LASTE"]], "cvc5proofformat::cvc5_proof_format_lfsc (c++ enumerator)": [[7, "_CPPv4N15Cvc5ProofFormat22CVC5_PROOF_FORMAT_LFSCE"]], "cvc5proofformat::cvc5_proof_format_none (c++ enumerator)": [[7, "_CPPv4N15Cvc5ProofFormat22CVC5_PROOF_FORMAT_NONEE"]], "cvc5_modes_block_models_mode_to_string (c++ function)": [[7, "_CPPv438cvc5_modes_block_models_mode_to_string19Cvc5BlockModelsMode"]], "cvc5_modes_find_synth_target_to_string (c++ function)": [[7, "_CPPv438cvc5_modes_find_synth_target_to_string19Cvc5FindSynthTarget"]], "cvc5_modes_learned_lit_type_to_string (c++ function)": [[7, "_CPPv437cvc5_modes_learned_lit_type_to_string18Cvc5LearnedLitType"]], "cvc5_modes_proof_component_to_string (c++ function)": [[7, "_CPPv436cvc5_modes_proof_component_to_string18Cvc5ProofComponent"]], "cvc5_modes_proof_format_to_string (c++ function)": [[7, "_CPPv433cvc5_modes_proof_format_to_string15Cvc5ProofFormat"]], "cvc5optioninfo (c++ struct)": [[9, "_CPPv414Cvc5OptionInfo"]], "cvc5optioninfo (c++ type)": [[9, "_CPPv414Cvc5OptionInfo"]], "cvc5optioninfo::boolinfo (c++ struct)": [[9, "_CPPv4N14Cvc5OptionInfo8BoolInfoE"]], "cvc5optioninfo::boolinfo::cur (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo8BoolInfo3curE"]], "cvc5optioninfo::boolinfo::dflt (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo8BoolInfo4dfltE"]], "cvc5optioninfo::doubleinfo (c++ struct)": [[9, "_CPPv4N14Cvc5OptionInfo10DoubleInfoE"]], "cvc5optioninfo::doubleinfo::cur (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo10DoubleInfo3curE"]], "cvc5optioninfo::doubleinfo::dflt (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo10DoubleInfo4dfltE"]], "cvc5optioninfo::doubleinfo::has_max (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo10DoubleInfo7has_maxE"]], "cvc5optioninfo::doubleinfo::has_min (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo10DoubleInfo7has_minE"]], "cvc5optioninfo::doubleinfo::max (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo10DoubleInfo3maxE"]], "cvc5optioninfo::doubleinfo::min (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo10DoubleInfo3minE"]], "cvc5optioninfo::intinfo (c++ struct)": [[9, "_CPPv4N14Cvc5OptionInfo7IntInfoE"]], "cvc5optioninfo::intinfo::cur (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo7IntInfo3curE"]], "cvc5optioninfo::intinfo::dflt (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo7IntInfo4dfltE"]], "cvc5optioninfo::intinfo::has_max (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo7IntInfo7has_maxE"]], "cvc5optioninfo::intinfo::has_min (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo7IntInfo7has_minE"]], "cvc5optioninfo::intinfo::max (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo7IntInfo3maxE"]], "cvc5optioninfo::intinfo::min (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo7IntInfo3minE"]], "cvc5optioninfo::modeinfo (c++ struct)": [[9, "_CPPv4N14Cvc5OptionInfo8ModeInfoE"]], "cvc5optioninfo::modeinfo::cur (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo8ModeInfo3curE"]], "cvc5optioninfo::modeinfo::dflt (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo8ModeInfo4dfltE"]], "cvc5optioninfo::modeinfo::modes (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo8ModeInfo5modesE"]], "cvc5optioninfo::modeinfo::num_modes (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo8ModeInfo9num_modesE"]], "cvc5optioninfo::stringinfo (c++ struct)": [[9, "_CPPv4N14Cvc5OptionInfo10StringInfoE"]], "cvc5optioninfo::stringinfo::cur (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo10StringInfo3curE"]], "cvc5optioninfo::stringinfo::dflt (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo10StringInfo4dfltE"]], "cvc5optioninfo::uintinfo (c++ struct)": [[9, "_CPPv4N14Cvc5OptionInfo8UIntInfoE"]], "cvc5optioninfo::uintinfo::cur (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo8UIntInfo3curE"]], "cvc5optioninfo::uintinfo::dflt (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo8UIntInfo4dfltE"]], "cvc5optioninfo::uintinfo::has_max (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo8UIntInfo7has_maxE"]], "cvc5optioninfo::uintinfo::has_min (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo8UIntInfo7has_minE"]], "cvc5optioninfo::uintinfo::max (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo8UIntInfo3maxE"]], "cvc5optioninfo::uintinfo::min (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo8UIntInfo3minE"]], "cvc5optioninfo::aliases (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo7aliasesE"]], "cvc5optioninfo::d_cpp_info (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo10d_cpp_infoE"]], "cvc5optioninfo::is_expert (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo9is_expertE"]], "cvc5optioninfo::is_regular (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo10is_regularE"]], "cvc5optioninfo::is_set_by_user (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo14is_set_by_userE"]], "cvc5optioninfo::kind (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo4kindE"]], "cvc5optioninfo::name (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo4nameE"]], "cvc5optioninfo::num_aliases (c++ member)": [[9, "_CPPv4N14Cvc5OptionInfo11num_aliasesE"]], "cvc5optioninfokind (c++ enum)": [[9, "_CPPv418Cvc5OptionInfoKind"]], "cvc5optioninfokind::cvc5_option_info_bool (c++ enumerator)": [[9, "_CPPv4N18Cvc5OptionInfoKind21CVC5_OPTION_INFO_BOOLE"]], "cvc5optioninfokind::cvc5_option_info_double (c++ enumerator)": [[9, "_CPPv4N18Cvc5OptionInfoKind23CVC5_OPTION_INFO_DOUBLEE"]], "cvc5optioninfokind::cvc5_option_info_int64 (c++ enumerator)": [[9, "_CPPv4N18Cvc5OptionInfoKind22CVC5_OPTION_INFO_INT64E"]], "cvc5optioninfokind::cvc5_option_info_modes (c++ enumerator)": [[9, "_CPPv4N18Cvc5OptionInfoKind22CVC5_OPTION_INFO_MODESE"]], "cvc5optioninfokind::cvc5_option_info_str (c++ enumerator)": [[9, "_CPPv4N18Cvc5OptionInfoKind20CVC5_OPTION_INFO_STRE"]], "cvc5optioninfokind::cvc5_option_info_uint64 (c++ enumerator)": [[9, "_CPPv4N18Cvc5OptionInfoKind23CVC5_OPTION_INFO_UINT64E"]], "cvc5optioninfokind::cvc5_option_info_void (c++ enumerator)": [[9, "_CPPv4N18Cvc5OptionInfoKind21CVC5_OPTION_INFO_VOIDE"]], "cvc5plugin (c++ struct)": [[10, "_CPPv410Cvc5Plugin"]], "cvc5plugin (c++ type)": [[10, "_CPPv410Cvc5Plugin"]], "cvc5plugin::check (c++ member)": [[10, "_CPPv4N10Cvc5Plugin5checkE"]], "cvc5plugin::d_check_state (c++ member)": [[10, "_CPPv4N10Cvc5Plugin13d_check_stateE"]], "cvc5plugin::d_notify_sat_clause_state (c++ member)": [[10, "_CPPv4N10Cvc5Plugin25d_notify_sat_clause_stateE"]], "cvc5plugin::d_notify_theory_lemma_state (c++ member)": [[10, "_CPPv4N10Cvc5Plugin27d_notify_theory_lemma_stateE"]], "cvc5plugin::get_name (c++ member)": [[10, "_CPPv4N10Cvc5Plugin8get_nameE"]], "cvc5plugin::notify_sat_clause (c++ member)": [[10, "_CPPv4N10Cvc5Plugin17notify_sat_clauseE"]], "cvc5plugin::notify_theory_lemma (c++ member)": [[10, "_CPPv4N10Cvc5Plugin19notify_theory_lemmaE"]], "cvc5 (c++ type)": [[11, "_CPPv44Cvc5"]], "cvc5_add_plugin (c++ function)": [[11, "_CPPv415cvc5_add_pluginP4Cvc5P10Cvc5Plugin"]], "cvc5_add_sygus_assume (c++ function)": [[11, "_CPPv421cvc5_add_sygus_assumeP4Cvc58Cvc5Term"]], "cvc5_add_sygus_constraint (c++ function)": [[11, "_CPPv425cvc5_add_sygus_constraintP4Cvc58Cvc5Term"]], "cvc5_add_sygus_inv_constraint (c++ function)": [[11, "_CPPv429cvc5_add_sygus_inv_constraintP4Cvc58Cvc5Term8Cvc5Term8Cvc5Term8Cvc5Term"]], "cvc5_assert_formula (c++ function)": [[11, "_CPPv419cvc5_assert_formulaP4Cvc58Cvc5Term"]], "cvc5_block_model (c++ function)": [[11, "_CPPv416cvc5_block_modelP4Cvc519Cvc5BlockModelsMode"]], "cvc5_block_model_values (c++ function)": [[11, "_CPPv423cvc5_block_model_valuesP4Cvc56size_tA_K8Cvc5Term"]], "cvc5_check_sat (c++ function)": [[11, "_CPPv414cvc5_check_satP4Cvc5"]], "cvc5_check_sat_assuming (c++ function)": [[11, "_CPPv423cvc5_check_sat_assumingP4Cvc56size_tA_K8Cvc5Term"]], "cvc5_check_synth (c++ function)": [[11, "_CPPv416cvc5_check_synthP4Cvc5"]], "cvc5_check_synth_next (c++ function)": [[11, "_CPPv421cvc5_check_synth_nextP4Cvc5"]], "cvc5_close_output (c++ function)": [[11, "_CPPv417cvc5_close_outputP4Cvc5PKc"]], "cvc5_declare_dt (c++ function)": [[11, "_CPPv415cvc5_declare_dtP4Cvc5PKc6size_tA_K27Cvc5DatatypeConstructorDecl"]], "cvc5_declare_fun (c++ function)": [[11, "_CPPv416cvc5_declare_funP4Cvc5PKc6size_tA_K8Cvc5Sort8Cvc5Sortb"]], "cvc5_declare_oracle_fun (c++ function)": [[11, "_CPPv423cvc5_declare_oracle_funP4Cvc5PKc6size_tA_K8Cvc5Sort8Cvc5SortPvPF8Cvc5Term6size_tPK8Cvc5TermPvE"]], "cvc5_declare_pool (c++ function)": [[11, "_CPPv417cvc5_declare_poolP4Cvc5PKc8Cvc5Sort6size_tA_K8Cvc5Term"]], "cvc5_declare_sep_heap (c++ function)": [[11, "_CPPv421cvc5_declare_sep_heapP4Cvc58Cvc5Sort8Cvc5Sort"]], "cvc5_declare_sort (c++ function)": [[11, "_CPPv417cvc5_declare_sortP4Cvc5PKc8uint32_tb"]], "cvc5_declare_sygus_var (c++ function)": [[11, "_CPPv422cvc5_declare_sygus_varP4Cvc5PKc8Cvc5Sort"]], "cvc5_define_fun (c++ function)": [[11, "_CPPv415cvc5_define_funP4Cvc5PKc6size_tA_K8Cvc5TermK8Cvc5SortK8Cvc5Termb"]], "cvc5_define_fun_rec (c++ function)": [[11, "_CPPv419cvc5_define_fun_recP4Cvc5PKc6size_tA_K8Cvc5TermK8Cvc5SortK8Cvc5Termb"]], "cvc5_define_fun_rec_from_const (c++ function)": [[11, "_CPPv430cvc5_define_fun_rec_from_constP4Cvc58Cvc5Term6size_tA_K8Cvc5TermK8Cvc5Termb"]], "cvc5_define_funs_rec (c++ function)": [[11, "_CPPv420cvc5_define_funs_recP4Cvc56size_tA_K8Cvc5TermA_6size_tA_PK8Cvc5TermA_K8Cvc5Termb"]], "cvc5_delete (c++ function)": [[11, "_CPPv411cvc5_deleteP4Cvc5"]], "cvc5_find_synth (c++ function)": [[11, "_CPPv415cvc5_find_synthP4Cvc519Cvc5FindSynthTarget"]], "cvc5_find_synth_next (c++ function)": [[11, "_CPPv420cvc5_find_synth_nextP4Cvc5"]], "cvc5_find_synth_with_grammar (c++ function)": [[11, "_CPPv428cvc5_find_synth_with_grammarP4Cvc519Cvc5FindSynthTarget11Cvc5Grammar"]], "cvc5_get_abduct (c++ function)": [[11, "_CPPv415cvc5_get_abductP4Cvc58Cvc5Term"]], "cvc5_get_abduct_next (c++ function)": [[11, "_CPPv420cvc5_get_abduct_nextP4Cvc5"]], "cvc5_get_abduct_with_grammar (c++ function)": [[11, "_CPPv428cvc5_get_abduct_with_grammarP4Cvc58Cvc5Term11Cvc5Grammar"]], "cvc5_get_assertions (c++ function)": [[11, "_CPPv419cvc5_get_assertionsP4Cvc5P6size_t"]], "cvc5_get_difficulty (c++ function)": [[11, "_CPPv419cvc5_get_difficultyP4Cvc5P6size_tA_P8Cvc5TermA_P8Cvc5Term"]], "cvc5_get_info (c++ function)": [[11, "_CPPv413cvc5_get_infoP4Cvc5PKc"]], "cvc5_get_instantiations (c++ function)": [[11, "_CPPv423cvc5_get_instantiationsP4Cvc5"]], "cvc5_get_interpolant (c++ function)": [[11, "_CPPv420cvc5_get_interpolantP4Cvc58Cvc5Term"]], "cvc5_get_interpolant_next (c++ function)": [[11, "_CPPv425cvc5_get_interpolant_nextP4Cvc5"]], "cvc5_get_interpolant_with_grammar (c++ function)": [[11, "_CPPv433cvc5_get_interpolant_with_grammarP4Cvc58Cvc5Term11Cvc5Grammar"]], "cvc5_get_learned_literals (c++ function)": [[11, "_CPPv425cvc5_get_learned_literalsP4Cvc518Cvc5LearnedLitTypeP6size_t"]], "cvc5_get_logic (c++ function)": [[11, "_CPPv414cvc5_get_logicP4Cvc5"]], "cvc5_get_model (c++ function)": [[11, "_CPPv414cvc5_get_modelP4Cvc56size_tA_K8Cvc5Sort6size_tA_K8Cvc5Term"]], "cvc5_get_model_domain_elements (c++ function)": [[11, "_CPPv430cvc5_get_model_domain_elementsP4Cvc58Cvc5SortP6size_t"]], "cvc5_get_option (c++ function)": [[11, "_CPPv415cvc5_get_optionP4Cvc5PKc"]], "cvc5_get_option_info (c++ function)": [[11, "_CPPv420cvc5_get_option_infoP4Cvc5PKcP14Cvc5OptionInfo"]], "cvc5_get_option_names (c++ function)": [[11, "_CPPv421cvc5_get_option_namesP4Cvc5P6size_t"]], "cvc5_get_output (c++ function)": [[11, "_CPPv415cvc5_get_outputP4Cvc5PKcPKc"]], "cvc5_get_proof (c++ function)": [[11, "_CPPv414cvc5_get_proofP4Cvc518Cvc5ProofComponentP6size_t"]], "cvc5_get_quantifier_elimination (c++ function)": [[11, "_CPPv431cvc5_get_quantifier_eliminationP4Cvc58Cvc5Term"]], "cvc5_get_quantifier_elimination_disjunct (c++ function)": [[11, "_CPPv440cvc5_get_quantifier_elimination_disjunctP4Cvc58Cvc5Term"]], "cvc5_get_statistics (c++ function)": [[11, "_CPPv419cvc5_get_statisticsP4Cvc5"]], "cvc5_get_sygus_assumptions (c++ function)": [[11, "_CPPv426cvc5_get_sygus_assumptionsP4Cvc5P6size_t"]], "cvc5_get_sygus_constraints (c++ function)": [[11, "_CPPv426cvc5_get_sygus_constraintsP4Cvc5P6size_t"]], "cvc5_get_synth_solution (c++ function)": [[11, "_CPPv423cvc5_get_synth_solutionP4Cvc58Cvc5Term"]], "cvc5_get_synth_solutions (c++ function)": [[11, "_CPPv424cvc5_get_synth_solutionsP4Cvc56size_tA_K8Cvc5Term"]], "cvc5_get_timeout_core (c++ function)": [[11, "_CPPv421cvc5_get_timeout_coreP4Cvc5P10Cvc5ResultP6size_t"]], "cvc5_get_timeout_core_assuming (c++ function)": [[11, "_CPPv430cvc5_get_timeout_core_assumingP4Cvc56size_tA_K8Cvc5TermP10Cvc5ResultP6size_t"]], "cvc5_get_tm (c++ function)": [[11, "_CPPv411cvc5_get_tmP4Cvc5"]], "cvc5_get_unsat_assumptions (c++ function)": [[11, "_CPPv426cvc5_get_unsat_assumptionsP4Cvc5P6size_t"]], "cvc5_get_unsat_core (c++ function)": [[11, "_CPPv419cvc5_get_unsat_coreP4Cvc5P6size_t"]], "cvc5_get_unsat_core_lemmas (c++ function)": [[11, "_CPPv426cvc5_get_unsat_core_lemmasP4Cvc5P6size_t"]], "cvc5_get_value (c++ function)": [[11, "_CPPv414cvc5_get_valueP4Cvc58Cvc5Term"]], "cvc5_get_value_sep_heap (c++ function)": [[11, "_CPPv423cvc5_get_value_sep_heapP4Cvc5"]], "cvc5_get_value_sep_nil (c++ function)": [[11, "_CPPv422cvc5_get_value_sep_nilP4Cvc5"]], "cvc5_get_values (c++ function)": [[11, "_CPPv415cvc5_get_valuesP4Cvc56size_tA_K8Cvc5TermP6size_t"]], "cvc5_get_version (c++ function)": [[11, "_CPPv416cvc5_get_versionP4Cvc5"]], "cvc5_is_logic_set (c++ function)": [[11, "_CPPv417cvc5_is_logic_setP4Cvc5"]], "cvc5_is_model_core_symbol (c++ function)": [[11, "_CPPv425cvc5_is_model_core_symbolP4Cvc58Cvc5Term"]], "cvc5_is_output_on (c++ function)": [[11, "_CPPv417cvc5_is_output_onP4Cvc5PKc"]], "cvc5_mk_grammar (c++ function)": [[11, "_CPPv415cvc5_mk_grammarP4Cvc56size_tA_K8Cvc5Term6size_tA_K8Cvc5Term"]], "cvc5_new (c++ function)": [[11, "_CPPv48cvc5_newP15Cvc5TermManager"]], "cvc5_pop (c++ function)": [[11, "_CPPv48cvc5_popP4Cvc58uint32_t"]], "cvc5_print_stats_safe (c++ function)": [[11, "_CPPv421cvc5_print_stats_safeP4Cvc5i"]], "cvc5_proof_to_string (c++ function)": [[11, "_CPPv420cvc5_proof_to_stringP4Cvc59Cvc5Proof15Cvc5ProofFormat6size_tA_K8Cvc5TermA_PKc"]], "cvc5_push (c++ function)": [[11, "_CPPv49cvc5_pushP4Cvc58uint32_t"]], "cvc5_reset_assertions (c++ function)": [[11, "_CPPv421cvc5_reset_assertionsP4Cvc5"]], "cvc5_set_info (c++ function)": [[11, "_CPPv413cvc5_set_infoP4Cvc5PKcPKc"]], "cvc5_set_logic (c++ function)": [[11, "_CPPv414cvc5_set_logicP4Cvc5PKc"]], "cvc5_set_option (c++ function)": [[11, "_CPPv415cvc5_set_optionP4Cvc5PKcPKc"]], "cvc5_simplify (c++ function)": [[11, "_CPPv413cvc5_simplifyP4Cvc58Cvc5Termb"]], "cvc5_synth_fun (c++ function)": [[11, "_CPPv414cvc5_synth_funP4Cvc5PKc6size_tA_K8Cvc5Term8Cvc5Sort"]], "cvc5_synth_fun_with_grammar (c++ function)": [[11, "_CPPv427cvc5_synth_fun_with_grammarP4Cvc5PKc6size_tA_K8Cvc5Term8Cvc5Sort11Cvc5Grammar"]], "cvc5command (c++ type)": [[12, "_CPPv411Cvc5Command"]], "cvc5_cmd_get_name (c++ function)": [[12, "_CPPv417cvc5_cmd_get_nameK11Cvc5Command"]], "cvc5_cmd_invoke (c++ function)": [[12, "_CPPv415cvc5_cmd_invoke11Cvc5CommandP4Cvc5P17Cvc5SymbolManager"]], "cvc5_cmd_to_string (c++ function)": [[12, "_CPPv418cvc5_cmd_to_stringK11Cvc5Command"]], "cvc5datatype (c++ type)": [[13, "_CPPv412Cvc5Datatype"]], "cvc5_dt_copy (c++ function)": [[13, "_CPPv412cvc5_dt_copy12Cvc5Datatype"]], "cvc5_dt_get_constructor (c++ function)": [[13, "_CPPv423cvc5_dt_get_constructor12Cvc5Datatype6size_t"]], "cvc5_dt_get_constructor_by_name (c++ function)": [[13, "_CPPv431cvc5_dt_get_constructor_by_name12Cvc5DatatypePKc"]], "cvc5_dt_get_name (c++ function)": [[13, "_CPPv416cvc5_dt_get_name12Cvc5Datatype"]], "cvc5_dt_get_num_constructors (c++ function)": [[13, "_CPPv428cvc5_dt_get_num_constructors12Cvc5Datatype"]], "cvc5_dt_get_parameters (c++ function)": [[13, "_CPPv422cvc5_dt_get_parameters12Cvc5DatatypeP6size_t"]], "cvc5_dt_get_selector (c++ function)": [[13, "_CPPv420cvc5_dt_get_selector12Cvc5DatatypePKc"]], "cvc5_dt_hash (c++ function)": [[13, "_CPPv412cvc5_dt_hash12Cvc5Datatype"]], "cvc5_dt_is_codatatype (c++ function)": [[13, "_CPPv421cvc5_dt_is_codatatype12Cvc5Datatype"]], "cvc5_dt_is_equal (c++ function)": [[13, "_CPPv416cvc5_dt_is_equal12Cvc5Datatype12Cvc5Datatype"]], "cvc5_dt_is_finite (c++ function)": [[13, "_CPPv417cvc5_dt_is_finite12Cvc5Datatype"]], "cvc5_dt_is_parametric (c++ function)": [[13, "_CPPv421cvc5_dt_is_parametric12Cvc5Datatype"]], "cvc5_dt_is_record (c++ function)": [[13, "_CPPv417cvc5_dt_is_record12Cvc5Datatype"]], "cvc5_dt_is_tuple (c++ function)": [[13, "_CPPv416cvc5_dt_is_tuple12Cvc5Datatype"]], "cvc5_dt_is_well_founded (c++ function)": [[13, "_CPPv423cvc5_dt_is_well_founded12Cvc5Datatype"]], "cvc5_dt_release (c++ function)": [[13, "_CPPv415cvc5_dt_release12Cvc5Datatype"]], "cvc5_dt_to_string (c++ function)": [[13, "_CPPv417cvc5_dt_to_string12Cvc5Datatype"]], "cvc5datatypeconstructor (c++ type)": [[14, "_CPPv423Cvc5DatatypeConstructor"]], "cvc5_dt_cons_copy (c++ function)": [[14, "_CPPv417cvc5_dt_cons_copy23Cvc5DatatypeConstructor"]], "cvc5_dt_cons_get_instantiated_term (c++ function)": [[14, "_CPPv434cvc5_dt_cons_get_instantiated_term23Cvc5DatatypeConstructor8Cvc5Sort"]], "cvc5_dt_cons_get_name (c++ function)": [[14, "_CPPv421cvc5_dt_cons_get_name23Cvc5DatatypeConstructor"]], "cvc5_dt_cons_get_num_selectors (c++ function)": [[14, "_CPPv430cvc5_dt_cons_get_num_selectors23Cvc5DatatypeConstructor"]], "cvc5_dt_cons_get_selector (c++ function)": [[14, "_CPPv425cvc5_dt_cons_get_selector23Cvc5DatatypeConstructor6size_t"]], "cvc5_dt_cons_get_selector_by_name (c++ function)": [[14, "_CPPv433cvc5_dt_cons_get_selector_by_name23Cvc5DatatypeConstructorPKc"]], "cvc5_dt_cons_get_term (c++ function)": [[14, "_CPPv421cvc5_dt_cons_get_term23Cvc5DatatypeConstructor"]], "cvc5_dt_cons_get_tester_term (c++ function)": [[14, "_CPPv428cvc5_dt_cons_get_tester_term23Cvc5DatatypeConstructor"]], "cvc5_dt_cons_hash (c++ function)": [[14, "_CPPv417cvc5_dt_cons_hash23Cvc5DatatypeConstructor"]], "cvc5_dt_cons_is_equal (c++ function)": [[14, "_CPPv421cvc5_dt_cons_is_equal23Cvc5DatatypeConstructor23Cvc5DatatypeConstructor"]], "cvc5_dt_cons_release (c++ function)": [[14, "_CPPv420cvc5_dt_cons_release23Cvc5DatatypeConstructor"]], "cvc5_dt_cons_to_string (c++ function)": [[14, "_CPPv422cvc5_dt_cons_to_string23Cvc5DatatypeConstructor"]], "cvc5datatypeconstructordecl (c++ type)": [[15, "_CPPv427Cvc5DatatypeConstructorDecl"]], "cvc5datatypedecl (c++ type)": [[16, "_CPPv416Cvc5DatatypeDecl"]], "cvc5_dt_decl_add_constructor (c++ function)": [[16, "_CPPv428cvc5_dt_decl_add_constructor16Cvc5DatatypeDecl27Cvc5DatatypeConstructorDecl"]], "cvc5_dt_decl_copy (c++ function)": [[16, "_CPPv417cvc5_dt_decl_copy16Cvc5DatatypeDecl"]], "cvc5_dt_decl_get_name (c++ function)": [[16, "_CPPv421cvc5_dt_decl_get_name16Cvc5DatatypeDecl"]], "cvc5_dt_decl_get_num_constructors (c++ function)": [[16, "_CPPv433cvc5_dt_decl_get_num_constructors16Cvc5DatatypeDecl"]], "cvc5_dt_decl_hash (c++ function)": [[16, "_CPPv417cvc5_dt_decl_hash16Cvc5DatatypeDecl"]], "cvc5_dt_decl_is_equal (c++ function)": [[16, "_CPPv421cvc5_dt_decl_is_equal16Cvc5DatatypeDecl16Cvc5DatatypeDecl"]], "cvc5_dt_decl_is_parametric (c++ function)": [[16, "_CPPv426cvc5_dt_decl_is_parametric16Cvc5DatatypeDecl"]], "cvc5_dt_decl_is_resolved (c++ function)": [[16, "_CPPv424cvc5_dt_decl_is_resolved16Cvc5DatatypeDecl"]], "cvc5_dt_decl_release (c++ function)": [[16, "_CPPv420cvc5_dt_decl_release16Cvc5DatatypeDecl"]], "cvc5_dt_decl_to_string (c++ function)": [[16, "_CPPv422cvc5_dt_decl_to_string16Cvc5DatatypeDecl"]], "cvc5datatypeselector (c++ type)": [[17, "_CPPv420Cvc5DatatypeSelector"]], "cvc5_dt_sel_copy (c++ function)": [[17, "_CPPv416cvc5_dt_sel_copy20Cvc5DatatypeSelector"]], "cvc5_dt_sel_get_codomain_sort (c++ function)": [[17, "_CPPv429cvc5_dt_sel_get_codomain_sort20Cvc5DatatypeSelector"]], "cvc5_dt_sel_get_name (c++ function)": [[17, "_CPPv420cvc5_dt_sel_get_name20Cvc5DatatypeSelector"]], "cvc5_dt_sel_get_term (c++ function)": [[17, "_CPPv420cvc5_dt_sel_get_term20Cvc5DatatypeSelector"]], "cvc5_dt_sel_get_updater_term (c++ function)": [[17, "_CPPv428cvc5_dt_sel_get_updater_term20Cvc5DatatypeSelector"]], "cvc5_dt_sel_hash (c++ function)": [[17, "_CPPv416cvc5_dt_sel_hash20Cvc5DatatypeSelector"]], "cvc5_dt_sel_is_equal (c++ function)": [[17, "_CPPv420cvc5_dt_sel_is_equal20Cvc5DatatypeSelector20Cvc5DatatypeSelector"]], "cvc5_dt_sel_release (c++ function)": [[17, "_CPPv419cvc5_dt_sel_release20Cvc5DatatypeSelector"]], "cvc5_dt_sel_to_string (c++ function)": [[17, "_CPPv421cvc5_dt_sel_to_string20Cvc5DatatypeSelector"]], "cvc5grammar (c++ type)": [[18, "_CPPv411Cvc5Grammar"]], "cvc5_grammar_add_any_constant (c++ function)": [[18, "_CPPv429cvc5_grammar_add_any_constant11Cvc5Grammar8Cvc5Term"]], "cvc5_grammar_add_any_variable (c++ function)": [[18, "_CPPv429cvc5_grammar_add_any_variable11Cvc5Grammar8Cvc5Term"]], "cvc5_grammar_add_rule (c++ function)": [[18, "_CPPv421cvc5_grammar_add_rule11Cvc5Grammar8Cvc5Term8Cvc5Term"]], "cvc5_grammar_add_rules (c++ function)": [[18, "_CPPv422cvc5_grammar_add_rules11Cvc5Grammar8Cvc5Term6size_tA_K8Cvc5Term"]], "cvc5_grammar_copy (c++ function)": [[18, "_CPPv417cvc5_grammar_copy11Cvc5Grammar"]], "cvc5_grammar_hash (c++ function)": [[18, "_CPPv417cvc5_grammar_hash11Cvc5Grammar"]], "cvc5_grammar_is_disequal (c++ function)": [[18, "_CPPv424cvc5_grammar_is_disequal11Cvc5Grammar11Cvc5Grammar"]], "cvc5_grammar_is_equal (c++ function)": [[18, "_CPPv421cvc5_grammar_is_equal11Cvc5Grammar11Cvc5Grammar"]], "cvc5_grammar_release (c++ function)": [[18, "_CPPv420cvc5_grammar_release11Cvc5Grammar"]], "cvc5_grammar_to_string (c++ function)": [[18, "_CPPv422cvc5_grammar_to_stringK11Cvc5Grammar"]], "cvc5inputparser (c++ type)": [[19, "_CPPv415Cvc5InputParser"]], "cvc5op (c++ type)": [[20, "_CPPv46Cvc5Op"]], "cvc5_op_copy (c++ function)": [[20, "_CPPv412cvc5_op_copy6Cvc5Op"]], "cvc5_op_get_index (c++ function)": [[20, "_CPPv417cvc5_op_get_index6Cvc5Op6size_t"]], "cvc5_op_get_kind (c++ function)": [[20, "_CPPv416cvc5_op_get_kind6Cvc5Op"]], "cvc5_op_get_num_indices (c++ function)": [[20, "_CPPv423cvc5_op_get_num_indices6Cvc5Op"]], "cvc5_op_hash (c++ function)": [[20, "_CPPv412cvc5_op_hash6Cvc5Op"]], "cvc5_op_is_disequal (c++ function)": [[20, "_CPPv419cvc5_op_is_disequal6Cvc5Op6Cvc5Op"]], "cvc5_op_is_equal (c++ function)": [[20, "_CPPv416cvc5_op_is_equal6Cvc5Op6Cvc5Op"]], "cvc5_op_is_indexed (c++ function)": [[20, "_CPPv418cvc5_op_is_indexed6Cvc5Op"]], "cvc5_op_release (c++ function)": [[20, "_CPPv415cvc5_op_release6Cvc5Op"]], "cvc5_op_to_string (c++ function)": [[20, "_CPPv417cvc5_op_to_string6Cvc5Op"]], "cvc5proof (c++ type)": [[21, "_CPPv49Cvc5Proof"]], "cvc5_proof_copy (c++ function)": [[21, "_CPPv415cvc5_proof_copy9Cvc5Proof"]], "cvc5_proof_get_arguments (c++ function)": [[21, "_CPPv424cvc5_proof_get_arguments9Cvc5ProofP6size_t"]], "cvc5_proof_get_children (c++ function)": [[21, "_CPPv423cvc5_proof_get_children9Cvc5ProofP6size_t"]], "cvc5_proof_get_result (c++ function)": [[21, "_CPPv421cvc5_proof_get_result9Cvc5Proof"]], "cvc5_proof_get_rewrite_rule (c++ function)": [[21, "_CPPv427cvc5_proof_get_rewrite_rule9Cvc5Proof"]], "cvc5_proof_get_rule (c++ function)": [[21, "_CPPv419cvc5_proof_get_rule9Cvc5Proof"]], "cvc5_proof_hash (c++ function)": [[21, "_CPPv415cvc5_proof_hash9Cvc5Proof"]], "cvc5_proof_is_disequal (c++ function)": [[21, "_CPPv422cvc5_proof_is_disequal9Cvc5Proof9Cvc5Proof"]], "cvc5_proof_is_equal (c++ function)": [[21, "_CPPv419cvc5_proof_is_equal9Cvc5Proof9Cvc5Proof"]], "cvc5_proof_release (c++ function)": [[21, "_CPPv418cvc5_proof_release9Cvc5Proof"]], "cvc5result (c++ type)": [[22, "_CPPv410Cvc5Result"]], "cvc5_result_copy (c++ function)": [[22, "_CPPv416cvc5_result_copy10Cvc5Result"]], "cvc5_result_get_unknown_explanation (c++ function)": [[22, "_CPPv435cvc5_result_get_unknown_explanationK10Cvc5Result"]], "cvc5_result_hash (c++ function)": [[22, "_CPPv416cvc5_result_hash10Cvc5Result"]], "cvc5_result_is_disequal (c++ function)": [[22, "_CPPv423cvc5_result_is_disequalK10Cvc5ResultK10Cvc5Result"]], "cvc5_result_is_equal (c++ function)": [[22, "_CPPv420cvc5_result_is_equalK10Cvc5ResultK10Cvc5Result"]], "cvc5_result_is_null (c++ function)": [[22, "_CPPv419cvc5_result_is_nullK10Cvc5Result"]], "cvc5_result_is_sat (c++ function)": [[22, "_CPPv418cvc5_result_is_satK10Cvc5Result"]], "cvc5_result_is_unknown (c++ function)": [[22, "_CPPv422cvc5_result_is_unknownK10Cvc5Result"]], "cvc5_result_is_unsat (c++ function)": [[22, "_CPPv420cvc5_result_is_unsatK10Cvc5Result"]], "cvc5_result_release (c++ function)": [[22, "_CPPv419cvc5_result_release10Cvc5Result"]], "cvc5_result_to_string (c++ function)": [[22, "_CPPv421cvc5_result_to_stringK10Cvc5Result"]], "cvc5sort (c++ type)": [[23, "_CPPv48Cvc5Sort"]], "cvc5_sort_abstract_get_kind (c++ function)": [[23, "_CPPv427cvc5_sort_abstract_get_kind8Cvc5Sort"]], "cvc5_sort_array_get_element_sort (c++ function)": [[23, "_CPPv432cvc5_sort_array_get_element_sort8Cvc5Sort"]], "cvc5_sort_array_get_index_sort (c++ function)": [[23, "_CPPv430cvc5_sort_array_get_index_sort8Cvc5Sort"]], "cvc5_sort_bag_get_element_sort (c++ function)": [[23, "_CPPv430cvc5_sort_bag_get_element_sort8Cvc5Sort"]], "cvc5_sort_bv_get_size (c++ function)": [[23, "_CPPv421cvc5_sort_bv_get_size8Cvc5Sort"]], "cvc5_sort_compare (c++ function)": [[23, "_CPPv417cvc5_sort_compare8Cvc5Sort8Cvc5Sort"]], "cvc5_sort_copy (c++ function)": [[23, "_CPPv414cvc5_sort_copy8Cvc5Sort"]], "cvc5_sort_dt_constructor_get_arity (c++ function)": [[23, "_CPPv434cvc5_sort_dt_constructor_get_arity8Cvc5Sort"]], "cvc5_sort_dt_constructor_get_codomain (c++ function)": [[23, "_CPPv437cvc5_sort_dt_constructor_get_codomain8Cvc5Sort"]], "cvc5_sort_dt_constructor_get_domain (c++ function)": [[23, "_CPPv435cvc5_sort_dt_constructor_get_domain8Cvc5SortP6size_t"]], "cvc5_sort_dt_get_arity (c++ function)": [[23, "_CPPv422cvc5_sort_dt_get_arity8Cvc5Sort"]], "cvc5_sort_dt_selector_get_codomain (c++ function)": [[23, "_CPPv434cvc5_sort_dt_selector_get_codomain8Cvc5Sort"]], "cvc5_sort_dt_selector_get_domain (c++ function)": [[23, "_CPPv432cvc5_sort_dt_selector_get_domain8Cvc5Sort"]], "cvc5_sort_dt_tester_get_codomain (c++ function)": [[23, "_CPPv432cvc5_sort_dt_tester_get_codomain8Cvc5Sort"]], "cvc5_sort_dt_tester_get_domain (c++ function)": [[23, "_CPPv430cvc5_sort_dt_tester_get_domain8Cvc5Sort"]], "cvc5_sort_ff_get_size (c++ function)": [[23, "_CPPv421cvc5_sort_ff_get_size8Cvc5Sort"]], "cvc5_sort_fp_get_exp_size (c++ function)": [[23, "_CPPv425cvc5_sort_fp_get_exp_size8Cvc5Sort"]], "cvc5_sort_fp_get_sig_size (c++ function)": [[23, "_CPPv425cvc5_sort_fp_get_sig_size8Cvc5Sort"]], "cvc5_sort_fun_get_arity (c++ function)": [[23, "_CPPv423cvc5_sort_fun_get_arity8Cvc5Sort"]], "cvc5_sort_fun_get_codomain (c++ function)": [[23, "_CPPv426cvc5_sort_fun_get_codomain8Cvc5Sort"]], "cvc5_sort_fun_get_domain (c++ function)": [[23, "_CPPv424cvc5_sort_fun_get_domain8Cvc5SortP6size_t"]], "cvc5_sort_get_datatype (c++ function)": [[23, "_CPPv422cvc5_sort_get_datatype8Cvc5Sort"]], "cvc5_sort_get_instantiated_parameters (c++ function)": [[23, "_CPPv437cvc5_sort_get_instantiated_parameters8Cvc5SortP6size_t"]], "cvc5_sort_get_kind (c++ function)": [[23, "_CPPv418cvc5_sort_get_kind8Cvc5Sort"]], "cvc5_sort_get_symbol (c++ function)": [[23, "_CPPv420cvc5_sort_get_symbol8Cvc5Sort"]], "cvc5_sort_get_uninterpreted_sort_constructor (c++ function)": [[23, "_CPPv444cvc5_sort_get_uninterpreted_sort_constructor8Cvc5Sort"]], "cvc5_sort_has_symbol (c++ function)": [[23, "_CPPv420cvc5_sort_has_symbol8Cvc5Sort"]], "cvc5_sort_hash (c++ function)": [[23, "_CPPv414cvc5_sort_hash8Cvc5Sort"]], "cvc5_sort_instantiate (c++ function)": [[23, "_CPPv421cvc5_sort_instantiate8Cvc5Sort6size_tA_K8Cvc5Sort"]], "cvc5_sort_is_abstract (c++ function)": [[23, "_CPPv421cvc5_sort_is_abstract8Cvc5Sort"]], "cvc5_sort_is_array (c++ function)": [[23, "_CPPv418cvc5_sort_is_array8Cvc5Sort"]], "cvc5_sort_is_bag (c++ function)": [[23, "_CPPv416cvc5_sort_is_bag8Cvc5Sort"]], "cvc5_sort_is_boolean (c++ function)": [[23, "_CPPv420cvc5_sort_is_boolean8Cvc5Sort"]], "cvc5_sort_is_bv (c++ function)": [[23, "_CPPv415cvc5_sort_is_bv8Cvc5Sort"]], "cvc5_sort_is_disequal (c++ function)": [[23, "_CPPv421cvc5_sort_is_disequal8Cvc5Sort8Cvc5Sort"]], "cvc5_sort_is_dt (c++ function)": [[23, "_CPPv415cvc5_sort_is_dt8Cvc5Sort"]], "cvc5_sort_is_dt_constructor (c++ function)": [[23, "_CPPv427cvc5_sort_is_dt_constructor8Cvc5Sort"]], "cvc5_sort_is_dt_selector (c++ function)": [[23, "_CPPv424cvc5_sort_is_dt_selector8Cvc5Sort"]], "cvc5_sort_is_dt_tester (c++ function)": [[23, "_CPPv422cvc5_sort_is_dt_tester8Cvc5Sort"]], "cvc5_sort_is_dt_updater (c++ function)": [[23, "_CPPv423cvc5_sort_is_dt_updater8Cvc5Sort"]], "cvc5_sort_is_equal (c++ function)": [[23, "_CPPv418cvc5_sort_is_equal8Cvc5Sort8Cvc5Sort"]], "cvc5_sort_is_ff (c++ function)": [[23, "_CPPv415cvc5_sort_is_ff8Cvc5Sort"]], "cvc5_sort_is_fp (c++ function)": [[23, "_CPPv415cvc5_sort_is_fp8Cvc5Sort"]], "cvc5_sort_is_fun (c++ function)": [[23, "_CPPv416cvc5_sort_is_fun8Cvc5Sort"]], "cvc5_sort_is_instantiated (c++ function)": [[23, "_CPPv425cvc5_sort_is_instantiated8Cvc5Sort"]], "cvc5_sort_is_integer (c++ function)": [[23, "_CPPv420cvc5_sort_is_integer8Cvc5Sort"]], "cvc5_sort_is_nullable (c++ function)": [[23, "_CPPv421cvc5_sort_is_nullable8Cvc5Sort"]], "cvc5_sort_is_predicate (c++ function)": [[23, "_CPPv422cvc5_sort_is_predicate8Cvc5Sort"]], "cvc5_sort_is_real (c++ function)": [[23, "_CPPv417cvc5_sort_is_real8Cvc5Sort"]], "cvc5_sort_is_record (c++ function)": [[23, "_CPPv419cvc5_sort_is_record8Cvc5Sort"]], "cvc5_sort_is_regexp (c++ function)": [[23, "_CPPv419cvc5_sort_is_regexp8Cvc5Sort"]], "cvc5_sort_is_rm (c++ function)": [[23, "_CPPv415cvc5_sort_is_rm8Cvc5Sort"]], "cvc5_sort_is_sequence (c++ function)": [[23, "_CPPv421cvc5_sort_is_sequence8Cvc5Sort"]], "cvc5_sort_is_set (c++ function)": [[23, "_CPPv416cvc5_sort_is_set8Cvc5Sort"]], "cvc5_sort_is_string (c++ function)": [[23, "_CPPv419cvc5_sort_is_string8Cvc5Sort"]], "cvc5_sort_is_tuple (c++ function)": [[23, "_CPPv418cvc5_sort_is_tuple8Cvc5Sort"]], "cvc5_sort_is_uninterpreted_sort (c++ function)": [[23, "_CPPv431cvc5_sort_is_uninterpreted_sort8Cvc5Sort"]], "cvc5_sort_is_uninterpreted_sort_constructor (c++ function)": [[23, "_CPPv443cvc5_sort_is_uninterpreted_sort_constructor8Cvc5Sort"]], "cvc5_sort_nullable_get_element_sort (c++ function)": [[23, "_CPPv435cvc5_sort_nullable_get_element_sort8Cvc5Sort"]], "cvc5_sort_release (c++ function)": [[23, "_CPPv417cvc5_sort_release8Cvc5Sort"]], "cvc5_sort_sequence_get_element_sort (c++ function)": [[23, "_CPPv435cvc5_sort_sequence_get_element_sort8Cvc5Sort"]], "cvc5_sort_set_get_element_sort (c++ function)": [[23, "_CPPv430cvc5_sort_set_get_element_sort8Cvc5Sort"]], "cvc5_sort_substitute (c++ function)": [[23, "_CPPv420cvc5_sort_substitute8Cvc5Sort8Cvc5Sort8Cvc5Sort"]], "cvc5_sort_substitute_sorts (c++ function)": [[23, "_CPPv426cvc5_sort_substitute_sorts8Cvc5Sort6size_tA_K8Cvc5SortA_K8Cvc5Sort"]], "cvc5_sort_to_string (c++ function)": [[23, "_CPPv419cvc5_sort_to_string8Cvc5Sort"]], "cvc5_sort_tuple_get_element_sorts (c++ function)": [[23, "_CPPv433cvc5_sort_tuple_get_element_sorts8Cvc5SortP6size_t"]], "cvc5_sort_tuple_get_length (c++ function)": [[23, "_CPPv426cvc5_sort_tuple_get_length8Cvc5Sort"]], "cvc5_sort_uninterpreted_sort_constructor_get_arity (c++ function)": [[23, "_CPPv450cvc5_sort_uninterpreted_sort_constructor_get_arity8Cvc5Sort"]], "cvc5stat (c++ type)": [[24, "_CPPv48Cvc5Stat"]], "cvc5statistics (c++ type)": [[24, "_CPPv414Cvc5Statistics"]], "cvc5_stat_get_double (c++ function)": [[24, "_CPPv420cvc5_stat_get_double8Cvc5Stat"]], "cvc5_stat_get_histogram (c++ function)": [[24, "_CPPv423cvc5_stat_get_histogram8Cvc5StatA_PPKcA_P8uint64_tP6size_t"]], "cvc5_stat_get_int (c++ function)": [[24, "_CPPv417cvc5_stat_get_int8Cvc5Stat"]], "cvc5_stat_get_string (c++ function)": [[24, "_CPPv420cvc5_stat_get_string8Cvc5Stat"]], "cvc5_stat_is_default (c++ function)": [[24, "_CPPv420cvc5_stat_is_default8Cvc5Stat"]], "cvc5_stat_is_double (c++ function)": [[24, "_CPPv419cvc5_stat_is_double8Cvc5Stat"]], "cvc5_stat_is_histogram (c++ function)": [[24, "_CPPv422cvc5_stat_is_histogram8Cvc5Stat"]], "cvc5_stat_is_int (c++ function)": [[24, "_CPPv416cvc5_stat_is_int8Cvc5Stat"]], "cvc5_stat_is_internal (c++ function)": [[24, "_CPPv421cvc5_stat_is_internal8Cvc5Stat"]], "cvc5_stat_is_string (c++ function)": [[24, "_CPPv419cvc5_stat_is_string8Cvc5Stat"]], "cvc5_stat_to_string (c++ function)": [[24, "_CPPv419cvc5_stat_to_string8Cvc5Stat"]], "cvc5symbolmanager (c++ type)": [[25, "_CPPv417Cvc5SymbolManager"]], "cvc5synthresult (c++ type)": [[26, "_CPPv415Cvc5SynthResult"]], "cvc5term (c++ type)": [[27, "_CPPv48Cvc5Term"]], "cvc5_term_compare (c++ function)": [[27, "_CPPv417cvc5_term_compare8Cvc5Term8Cvc5Term"]], "cvc5_term_copy (c++ function)": [[27, "_CPPv414cvc5_term_copy8Cvc5Term"]], "cvc5_term_get_boolean_value (c++ function)": [[27, "_CPPv427cvc5_term_get_boolean_value8Cvc5Term"]], "cvc5_term_get_bv_value (c++ function)": [[27, "_CPPv422cvc5_term_get_bv_value8Cvc5Term8uint32_t"]], "cvc5_term_get_cardinality_constraint (c++ function)": [[27, "_CPPv436cvc5_term_get_cardinality_constraint8Cvc5TermP8Cvc5SortP8uint32_t"]], "cvc5_term_get_child (c++ function)": [[27, "_CPPv419cvc5_term_get_child8Cvc5Term6size_t"]], "cvc5_term_get_const_array_base (c++ function)": [[27, "_CPPv430cvc5_term_get_const_array_base8Cvc5Term"]], "cvc5_term_get_ff_value (c++ function)": [[27, "_CPPv422cvc5_term_get_ff_value8Cvc5Term"]], "cvc5_term_get_fp_value (c++ function)": [[27, "_CPPv422cvc5_term_get_fp_value8Cvc5TermP8uint32_tP8uint32_tP8Cvc5Term"]], "cvc5_term_get_id (c++ function)": [[27, "_CPPv416cvc5_term_get_id8Cvc5Term"]], "cvc5_term_get_int32_value (c++ function)": [[27, "_CPPv425cvc5_term_get_int32_value8Cvc5Term"]], "cvc5_term_get_int64_value (c++ function)": [[27, "_CPPv425cvc5_term_get_int64_value8Cvc5Term"]], "cvc5_term_get_integer_value (c++ function)": [[27, "_CPPv427cvc5_term_get_integer_value8Cvc5Term"]], "cvc5_term_get_kind (c++ function)": [[27, "_CPPv418cvc5_term_get_kind8Cvc5Term"]], "cvc5_term_get_num_children (c++ function)": [[27, "_CPPv426cvc5_term_get_num_children8Cvc5Term"]], "cvc5_term_get_op (c++ function)": [[27, "_CPPv416cvc5_term_get_op8Cvc5Term"]], "cvc5_term_get_real32_value (c++ function)": [[27, "_CPPv426cvc5_term_get_real32_value8Cvc5TermP7int32_tP8uint32_t"]], "cvc5_term_get_real64_value (c++ function)": [[27, "_CPPv426cvc5_term_get_real64_value8Cvc5TermP7int64_tP8uint64_t"]], "cvc5_term_get_real_algebraic_number_defining_polynomial (c++ function)": [[27, "_CPPv455cvc5_term_get_real_algebraic_number_defining_polynomial8Cvc5Term8Cvc5Term"]], "cvc5_term_get_real_algebraic_number_lower_bound (c++ function)": [[27, "_CPPv447cvc5_term_get_real_algebraic_number_lower_bound8Cvc5Term"]], "cvc5_term_get_real_algebraic_number_upper_bound (c++ function)": [[27, "_CPPv447cvc5_term_get_real_algebraic_number_upper_bound8Cvc5Term"]], "cvc5_term_get_real_or_integer_value_sign (c++ function)": [[27, "_CPPv440cvc5_term_get_real_or_integer_value_sign8Cvc5Term"]], "cvc5_term_get_real_value (c++ function)": [[27, "_CPPv424cvc5_term_get_real_value8Cvc5Term"]], "cvc5_term_get_rm_value (c++ function)": [[27, "_CPPv422cvc5_term_get_rm_value8Cvc5Term"]], "cvc5_term_get_sequence_value (c++ function)": [[27, "_CPPv428cvc5_term_get_sequence_value8Cvc5TermP6size_t"]], "cvc5_term_get_set_value (c++ function)": [[27, "_CPPv423cvc5_term_get_set_value8Cvc5TermP6size_t"]], "cvc5_term_get_skolem_id (c++ function)": [[27, "_CPPv423cvc5_term_get_skolem_id8Cvc5Term"]], "cvc5_term_get_skolem_indices (c++ function)": [[27, "_CPPv428cvc5_term_get_skolem_indices8Cvc5TermP6size_t"]], "cvc5_term_get_sort (c++ function)": [[27, "_CPPv418cvc5_term_get_sort8Cvc5Term"]], "cvc5_term_get_string_value (c++ function)": [[27, "_CPPv426cvc5_term_get_string_value8Cvc5Term"]], "cvc5_term_get_symbol (c++ function)": [[27, "_CPPv420cvc5_term_get_symbol8Cvc5Term"]], "cvc5_term_get_tuple_value (c++ function)": [[27, "_CPPv425cvc5_term_get_tuple_value8Cvc5TermP6size_t"]], "cvc5_term_get_uint32_value (c++ function)": [[27, "_CPPv426cvc5_term_get_uint32_value8Cvc5Term"]], "cvc5_term_get_uint64_value (c++ function)": [[27, "_CPPv426cvc5_term_get_uint64_value8Cvc5Term"]], "cvc5_term_get_uninterpreted_sort_value (c++ function)": [[27, "_CPPv438cvc5_term_get_uninterpreted_sort_value8Cvc5Term"]], "cvc5_term_has_op (c++ function)": [[27, "_CPPv416cvc5_term_has_op8Cvc5Term"]], "cvc5_term_has_symbol (c++ function)": [[27, "_CPPv420cvc5_term_has_symbol8Cvc5Term"]], "cvc5_term_hash (c++ function)": [[27, "_CPPv414cvc5_term_hash8Cvc5Term"]], "cvc5_term_is_boolean_value (c++ function)": [[27, "_CPPv426cvc5_term_is_boolean_value8Cvc5Term"]], "cvc5_term_is_bv_value (c++ function)": [[27, "_CPPv421cvc5_term_is_bv_value8Cvc5Term"]], "cvc5_term_is_cardinality_constraint (c++ function)": [[27, "_CPPv435cvc5_term_is_cardinality_constraint8Cvc5Term"]], "cvc5_term_is_const_array (c++ function)": [[27, "_CPPv424cvc5_term_is_const_array8Cvc5Term"]], "cvc5_term_is_disequal (c++ function)": [[27, "_CPPv421cvc5_term_is_disequal8Cvc5Term8Cvc5Term"]], "cvc5_term_is_equal (c++ function)": [[27, "_CPPv418cvc5_term_is_equal8Cvc5Term8Cvc5Term"]], "cvc5_term_is_ff_value (c++ function)": [[27, "_CPPv421cvc5_term_is_ff_value8Cvc5Term"]], "cvc5_term_is_fp_nan (c++ function)": [[27, "_CPPv419cvc5_term_is_fp_nan8Cvc5Term"]], "cvc5_term_is_fp_neg_inf (c++ function)": [[27, "_CPPv423cvc5_term_is_fp_neg_inf8Cvc5Term"]], "cvc5_term_is_fp_neg_zero (c++ function)": [[27, "_CPPv424cvc5_term_is_fp_neg_zero8Cvc5Term"]], "cvc5_term_is_fp_pos_inf (c++ function)": [[27, "_CPPv423cvc5_term_is_fp_pos_inf8Cvc5Term"]], "cvc5_term_is_fp_pos_zero (c++ function)": [[27, "_CPPv424cvc5_term_is_fp_pos_zero8Cvc5Term"]], "cvc5_term_is_fp_value (c++ function)": [[27, "_CPPv421cvc5_term_is_fp_value8Cvc5Term"]], "cvc5_term_is_int32_value (c++ function)": [[27, "_CPPv424cvc5_term_is_int32_value8Cvc5Term"]], "cvc5_term_is_int64_value (c++ function)": [[27, "_CPPv424cvc5_term_is_int64_value8Cvc5Term"]], "cvc5_term_is_integer_value (c++ function)": [[27, "_CPPv426cvc5_term_is_integer_value8Cvc5Term"]], "cvc5_term_is_real32_value (c++ function)": [[27, "_CPPv425cvc5_term_is_real32_value8Cvc5Term"]], "cvc5_term_is_real64_value (c++ function)": [[27, "_CPPv425cvc5_term_is_real64_value8Cvc5Term"]], "cvc5_term_is_real_algebraic_number (c++ function)": [[27, "_CPPv434cvc5_term_is_real_algebraic_number8Cvc5Term"]], "cvc5_term_is_real_value (c++ function)": [[27, "_CPPv423cvc5_term_is_real_value8Cvc5Term"]], "cvc5_term_is_rm_value (c++ function)": [[27, "_CPPv421cvc5_term_is_rm_value8Cvc5Term"]], "cvc5_term_is_sequence_value (c++ function)": [[27, "_CPPv427cvc5_term_is_sequence_value8Cvc5Term"]], "cvc5_term_is_set_value (c++ function)": [[27, "_CPPv422cvc5_term_is_set_value8Cvc5Term"]], "cvc5_term_is_skolem (c++ function)": [[27, "_CPPv419cvc5_term_is_skolem8Cvc5Term"]], "cvc5_term_is_string_value (c++ function)": [[27, "_CPPv425cvc5_term_is_string_value8Cvc5Term"]], "cvc5_term_is_tuple_value (c++ function)": [[27, "_CPPv424cvc5_term_is_tuple_value8Cvc5Term"]], "cvc5_term_is_uint32_value (c++ function)": [[27, "_CPPv425cvc5_term_is_uint32_value8Cvc5Term"]], "cvc5_term_is_uint64_value (c++ function)": [[27, "_CPPv425cvc5_term_is_uint64_value8Cvc5Term"]], "cvc5_term_is_uninterpreted_sort_value (c++ function)": [[27, "_CPPv437cvc5_term_is_uninterpreted_sort_value8Cvc5Term"]], "cvc5_term_release (c++ function)": [[27, "_CPPv417cvc5_term_release8Cvc5Term"]], "cvc5_term_substitute_term (c++ function)": [[27, "_CPPv425cvc5_term_substitute_term8Cvc5Term8Cvc5Term8Cvc5Term"]], "cvc5_term_substitute_terms (c++ function)": [[27, "_CPPv426cvc5_term_substitute_terms8Cvc5Term6size_tA_K8Cvc5TermA_K8Cvc5Term"]], "cvc5_term_to_string (c++ function)": [[27, "_CPPv419cvc5_term_to_string8Cvc5Term"]], "cvc5termmanager (c++ type)": [[28, "_CPPv415Cvc5TermManager"]], "cvc5_mk_op (c++ function)": [[28, "_CPPv410cvc5_mk_opP15Cvc5TermManager8Cvc5Kind6size_tA_K8uint32_t"]], "cvc5_mk_op_from_str (c++ function)": [[28, "_CPPv419cvc5_mk_op_from_strP15Cvc5TermManager8Cvc5KindPKc"]], "parser::command (c++ class)": [[29, "_CPPv4N4cvc56parser7CommandE"]], "parser::command::command (c++ function)": [[29, "_CPPv4N4cvc56parser7Command7CommandEv"]], "parser::command::getcommandname (c++ function)": [[29, "_CPPv4NK4cvc56parser7Command14getCommandNameEv"]], "parser::command::invoke (c++ function)": [[29, "_CPPv4N4cvc56parser7Command6invokeEPN4cvc56SolverEPN6parser13SymbolManagerERNSt7ostreamE"]], "parser::command::isnull (c++ function)": [[29, "_CPPv4NK4cvc56parser7Command6isNullEv"]], "parser::command::tostring (c++ function)": [[29, "_CPPv4NK4cvc56parser7Command8toStringEv"]], "datatype (c++ class)": [[30, "_CPPv4N4cvc58DatatypeE"]], "datatype::datatype (c++ function)": [[30, "_CPPv4N4cvc58Datatype8DatatypeEv"]], "datatype::begin (c++ function)": [[30, "_CPPv4NK4cvc58Datatype5beginEv"]], "datatype::const_iterator (c++ class)": [[30, "_CPPv4N4cvc58Datatype14const_iteratorE"]], "datatype::const_iterator::const_iterator (c++ function)": [[30, "_CPPv4N4cvc58Datatype14const_iterator14const_iteratorEv"]], "datatype::const_iterator::difference_type (c++ type)": [[30, "_CPPv4N4cvc58Datatype14const_iterator15difference_typeE"]], "datatype::const_iterator::iterator_category (c++ type)": [[30, "_CPPv4N4cvc58Datatype14const_iterator17iterator_categoryE"]], "datatype::const_iterator::operator!= (c++ function)": [[30, "_CPPv4NK4cvc58Datatype14const_iteratorneERK14const_iterator"]], "datatype::const_iterator::operator* (c++ function)": [[30, "_CPPv4NK4cvc58Datatype14const_iteratormlEv"]], "datatype::const_iterator::operator++ (c++ function)": [[30, "_CPPv4N4cvc58Datatype14const_iteratorppEi"], [30, "_CPPv4N4cvc58Datatype14const_iteratorppEv"]], "datatype::const_iterator::operator-> (c++ function)": [[30, "_CPPv4NK4cvc58Datatype14const_iteratorptEv"]], "datatype::const_iterator::operator= (c++ function)": [[30, "_CPPv4N4cvc58Datatype14const_iteratoraSERK14const_iterator"]], "datatype::const_iterator::operator== (c++ function)": [[30, "_CPPv4NK4cvc58Datatype14const_iteratoreqERK14const_iterator"]], "datatype::const_iterator::pointer (c++ type)": [[30, "_CPPv4N4cvc58Datatype14const_iterator7pointerE"]], "datatype::const_iterator::reference (c++ type)": [[30, "_CPPv4N4cvc58Datatype14const_iterator9referenceE"]], "datatype::const_iterator::value_type (c++ type)": [[30, "_CPPv4N4cvc58Datatype14const_iterator10value_typeE"]], "datatype::end (c++ function)": [[30, "_CPPv4NK4cvc58Datatype3endEv"]], "datatype::getconstructor (c++ function)": [[30, "_CPPv4NK4cvc58Datatype14getConstructorERKNSt6stringE"]], "datatype::getname (c++ function)": [[30, "_CPPv4NK4cvc58Datatype7getNameEv"]], "datatype::getnumconstructors (c++ function)": [[30, "_CPPv4NK4cvc58Datatype18getNumConstructorsEv"]], "datatype::getparameters (c++ function)": [[30, "_CPPv4NK4cvc58Datatype13getParametersEv"]], "datatype::getselector (c++ function)": [[30, "_CPPv4NK4cvc58Datatype11getSelectorERKNSt6stringE"]], "datatype::iscodatatype (c++ function)": [[30, "_CPPv4NK4cvc58Datatype12isCodatatypeEv"]], "datatype::isfinite (c++ function)": [[30, "_CPPv4NK4cvc58Datatype8isFiniteEv"]], "datatype::isnull (c++ function)": [[30, "_CPPv4NK4cvc58Datatype6isNullEv"]], "datatype::isparametric (c++ function)": [[30, "_CPPv4NK4cvc58Datatype12isParametricEv"]], "datatype::isrecord (c++ function)": [[30, "_CPPv4NK4cvc58Datatype8isRecordEv"]], "datatype::istuple (c++ function)": [[30, "_CPPv4NK4cvc58Datatype7isTupleEv"]], "datatype::iswellfounded (c++ function)": [[30, "_CPPv4NK4cvc58Datatype13isWellFoundedEv"]], "datatype::operator== (c++ function)": [[30, "_CPPv4NK4cvc58DatatypeeqERK8Datatype"]], "datatype::operator[] (c++ function)": [[30, "_CPPv4NK4cvc58DatatypeixE6size_t"], [30, "_CPPv4NK4cvc58DatatypeixERKNSt6stringE"]], "datatype::tostring (c++ function)": [[30, "_CPPv4NK4cvc58Datatype8toStringEv"]], "datatype::~datatype (c++ function)": [[30, "_CPPv4N4cvc58DatatypeD0Ev"]], "operator<< (c++ function)": [[30, "_CPPv4N4cvc5lsERNSt7ostreamERK8Datatype"], [31, "_CPPv4N4cvc5lsERNSt7ostreamERK19DatatypeConstructor"], [32, "_CPPv4N4cvc5lsERNSt7ostreamERK23DatatypeConstructorDecl"], [32, "_CPPv4N4cvc5lsERNSt7ostreamERKNSt6vectorI23DatatypeConstructorDeclEE"], [33, "_CPPv4N4cvc5lsERNSt7ostreamERK12DatatypeDecl"], [34, "_CPPv4N4cvc5lsERNSt7ostreamERK16DatatypeSelector"], [36, "_CPPv4N4cvc5lsERNSt7ostreamERK7Grammar"], [38, "_CPPv4N4cvc5lsERNSt7ostreamERK2Op"], [39, "_CPPv4N4cvc5lsERNSt7ostreamERK10OptionInfo"], [42, "_CPPv4N4cvc5lsERNSt7ostreamERK6Result"], [44, "_CPPv4N4cvc5lsERNSt7ostreamERK4Sort"], [45, "_CPPv4N4cvc5lsERNSt7ostreamERK10Statistics"], [45, "_CPPv4N4cvc5lsERNSt7ostreamERK4Stat"], [47, "_CPPv4N4cvc5lsERNSt7ostreamERK11SynthResult"], [48, "_CPPv4I0EN4cvc5lsERNSt7ostreamERNSt7ostreamERKNSt13unordered_mapI4Term1VEE"], [48, "_CPPv4I0EN4cvc5lsERNSt7ostreamERNSt7ostreamERKNSt3mapI4Term1VEE"], [48, "_CPPv4N4cvc5lsERNSt7ostreamERK4Term"], [48, "_CPPv4N4cvc5lsERNSt7ostreamERKNSt13unordered_setI4TermEE"], [48, "_CPPv4N4cvc5lsERNSt7ostreamERKNSt3setI4TermEE"], [48, "_CPPv4N4cvc5lsERNSt7ostreamERKNSt6vectorI4TermEE"], [51, "_CPPv4N4cvc5lsERNSt7ostreamE4Kind"], [53, "_CPPv4N4cvc5lsERNSt7ostreamE16ProofRewriteRule"], [53, "_CPPv4N4cvc5lsERNSt7ostreamE9ProofRule"], [54, "_CPPv4N4cvc5lsERNSt7ostreamE12RoundingMode"], [55, "_CPPv4N4cvc5lsERNSt7ostreamE8SortKind"], [56, "_CPPv4N4cvc5lsERNSt7ostreamE18UnknownExplanation"]], "datatypeconstructor (c++ class)": [[31, "_CPPv4N4cvc519DatatypeConstructorE"]], "datatypeconstructor::datatypeconstructor (c++ function)": [[31, "_CPPv4N4cvc519DatatypeConstructor19DatatypeConstructorEv"]], "datatypeconstructor::begin (c++ function)": [[31, "_CPPv4NK4cvc519DatatypeConstructor5beginEv"]], "datatypeconstructor::const_iterator (c++ class)": [[31, "_CPPv4N4cvc519DatatypeConstructor14const_iteratorE"]], "datatypeconstructor::const_iterator::const_iterator (c++ function)": [[31, "_CPPv4N4cvc519DatatypeConstructor14const_iterator14const_iteratorEv"]], "datatypeconstructor::const_iterator::difference_type (c++ type)": [[31, "_CPPv4N4cvc519DatatypeConstructor14const_iterator15difference_typeE"]], "datatypeconstructor::const_iterator::iterator_category (c++ type)": [[31, "_CPPv4N4cvc519DatatypeConstructor14const_iterator17iterator_categoryE"]], "datatypeconstructor::const_iterator::operator!= (c++ function)": [[31, "_CPPv4NK4cvc519DatatypeConstructor14const_iteratorneERK14const_iterator"]], "datatypeconstructor::const_iterator::operator* (c++ function)": [[31, "_CPPv4NK4cvc519DatatypeConstructor14const_iteratormlEv"]], "datatypeconstructor::const_iterator::operator++ (c++ function)": [[31, "_CPPv4N4cvc519DatatypeConstructor14const_iteratorppEi"], [31, "_CPPv4N4cvc519DatatypeConstructor14const_iteratorppEv"]], "datatypeconstructor::const_iterator::operator-> (c++ function)": [[31, "_CPPv4NK4cvc519DatatypeConstructor14const_iteratorptEv"]], "datatypeconstructor::const_iterator::operator= (c++ function)": [[31, "_CPPv4N4cvc519DatatypeConstructor14const_iteratoraSERK14const_iterator"]], "datatypeconstructor::const_iterator::operator== (c++ function)": [[31, "_CPPv4NK4cvc519DatatypeConstructor14const_iteratoreqERK14const_iterator"]], "datatypeconstructor::const_iterator::pointer (c++ type)": [[31, "_CPPv4N4cvc519DatatypeConstructor14const_iterator7pointerE"]], "datatypeconstructor::const_iterator::reference (c++ type)": [[31, "_CPPv4N4cvc519DatatypeConstructor14const_iterator9referenceE"]], "datatypeconstructor::const_iterator::value_type (c++ type)": [[31, "_CPPv4N4cvc519DatatypeConstructor14const_iterator10value_typeE"]], "datatypeconstructor::end (c++ function)": [[31, "_CPPv4NK4cvc519DatatypeConstructor3endEv"]], "datatypeconstructor::getinstantiatedterm (c++ function)": [[31, "_CPPv4NK4cvc519DatatypeConstructor19getInstantiatedTermERK4Sort"]], "datatypeconstructor::getname (c++ function)": [[31, "_CPPv4NK4cvc519DatatypeConstructor7getNameEv"]], "datatypeconstructor::getnumselectors (c++ function)": [[31, "_CPPv4NK4cvc519DatatypeConstructor15getNumSelectorsEv"]], "datatypeconstructor::getselector (c++ function)": [[31, "_CPPv4NK4cvc519DatatypeConstructor11getSelectorERKNSt6stringE"]], "datatypeconstructor::getterm (c++ function)": [[31, "_CPPv4NK4cvc519DatatypeConstructor7getTermEv"]], "datatypeconstructor::gettesterterm (c++ function)": [[31, "_CPPv4NK4cvc519DatatypeConstructor13getTesterTermEv"]], "datatypeconstructor::isnull (c++ function)": [[31, "_CPPv4NK4cvc519DatatypeConstructor6isNullEv"]], "datatypeconstructor::operator== (c++ function)": [[31, "_CPPv4NK4cvc519DatatypeConstructoreqERK19DatatypeConstructor"]], "datatypeconstructor::operator[] (c++ function)": [[31, "_CPPv4NK4cvc519DatatypeConstructorixE6size_t"], [31, "_CPPv4NK4cvc519DatatypeConstructorixERKNSt6stringE"]], "datatypeconstructor::tostring (c++ function)": [[31, "_CPPv4NK4cvc519DatatypeConstructor8toStringEv"]], "datatypeconstructor::~datatypeconstructor (c++ function)": [[31, "_CPPv4N4cvc519DatatypeConstructorD0Ev"]], "datatypeconstructordecl (c++ class)": [[32, "_CPPv4N4cvc523DatatypeConstructorDeclE"]], "datatypeconstructordecl::datatypeconstructordecl (c++ function)": [[32, "_CPPv4N4cvc523DatatypeConstructorDecl23DatatypeConstructorDeclEv"]], "datatypeconstructordecl::addselector (c++ function)": [[32, "_CPPv4N4cvc523DatatypeConstructorDecl11addSelectorERKNSt6stringERK4Sort"]], "datatypeconstructordecl::addselectorself (c++ function)": [[32, "_CPPv4N4cvc523DatatypeConstructorDecl15addSelectorSelfERKNSt6stringE"]], "datatypeconstructordecl::addselectorunresolved (c++ function)": [[32, "_CPPv4N4cvc523DatatypeConstructorDecl21addSelectorUnresolvedERKNSt6stringERKNSt6stringE"]], "datatypeconstructordecl::isnull (c++ function)": [[32, "_CPPv4NK4cvc523DatatypeConstructorDecl6isNullEv"]], "datatypeconstructordecl::operator== (c++ function)": [[32, "_CPPv4NK4cvc523DatatypeConstructorDecleqERK23DatatypeConstructorDecl"]], "datatypeconstructordecl::tostring (c++ function)": [[32, "_CPPv4NK4cvc523DatatypeConstructorDecl8toStringEv"]], "datatypeconstructordecl::~datatypeconstructordecl (c++ function)": [[32, "_CPPv4N4cvc523DatatypeConstructorDeclD0Ev"]], "datatypedecl (c++ class)": [[33, "_CPPv4N4cvc512DatatypeDeclE"]], "datatypedecl::datatypedecl (c++ function)": [[33, "_CPPv4N4cvc512DatatypeDecl12DatatypeDeclEv"]], "datatypedecl::addconstructor (c++ function)": [[33, "_CPPv4N4cvc512DatatypeDecl14addConstructorERK23DatatypeConstructorDecl"]], "datatypedecl::getname (c++ function)": [[33, "_CPPv4NK4cvc512DatatypeDecl7getNameEv"]], "datatypedecl::getnumconstructors (c++ function)": [[33, "_CPPv4NK4cvc512DatatypeDecl18getNumConstructorsEv"]], "datatypedecl::isnull (c++ function)": [[33, "_CPPv4NK4cvc512DatatypeDecl6isNullEv"]], "datatypedecl::isparametric (c++ function)": [[33, "_CPPv4NK4cvc512DatatypeDecl12isParametricEv"]], "datatypedecl::isresolved (c++ function)": [[33, "_CPPv4NK4cvc512DatatypeDecl10isResolvedEv"]], "datatypedecl::operator== (c++ function)": [[33, "_CPPv4NK4cvc512DatatypeDecleqERK12DatatypeDecl"]], "datatypedecl::tostring (c++ function)": [[33, "_CPPv4NK4cvc512DatatypeDecl8toStringEv"]], "datatypedecl::~datatypedecl (c++ function)": [[33, "_CPPv4N4cvc512DatatypeDeclD0Ev"]], "datatypeselector (c++ class)": [[34, "_CPPv4N4cvc516DatatypeSelectorE"]], "datatypeselector::datatypeselector (c++ function)": [[34, "_CPPv4N4cvc516DatatypeSelector16DatatypeSelectorEv"]], "datatypeselector::getcodomainsort (c++ function)": [[34, "_CPPv4NK4cvc516DatatypeSelector15getCodomainSortEv"]], "datatypeselector::getname (c++ function)": [[34, "_CPPv4NK4cvc516DatatypeSelector7getNameEv"]], "datatypeselector::getterm (c++ function)": [[34, "_CPPv4NK4cvc516DatatypeSelector7getTermEv"]], "datatypeselector::getupdaterterm (c++ function)": [[34, "_CPPv4NK4cvc516DatatypeSelector14getUpdaterTermEv"]], "datatypeselector::isnull (c++ function)": [[34, "_CPPv4NK4cvc516DatatypeSelector6isNullEv"]], "datatypeselector::operator== (c++ function)": [[34, "_CPPv4NK4cvc516DatatypeSelectoreqERK16DatatypeSelector"]], "datatypeselector::tostring (c++ function)": [[34, "_CPPv4NK4cvc516DatatypeSelector8toStringEv"]], "datatypeselector::~datatypeselector (c++ function)": [[34, "_CPPv4N4cvc516DatatypeSelectorD0Ev"]], "driveroptions (c++ class)": [[35, "_CPPv4N4cvc513DriverOptionsE"]], "driveroptions::err (c++ function)": [[35, "_CPPv4NK4cvc513DriverOptions3errEv"]], "driveroptions::in (c++ function)": [[35, "_CPPv4NK4cvc513DriverOptions2inEv"]], "driveroptions::out (c++ function)": [[35, "_CPPv4NK4cvc513DriverOptions3outEv"]], "grammar (c++ class)": [[36, "_CPPv4N4cvc57GrammarE"]], "grammar::grammar (c++ function)": [[36, "_CPPv4N4cvc57Grammar7GrammarEv"]], "grammar::addanyconstant (c++ function)": [[36, "_CPPv4N4cvc57Grammar14addAnyConstantERK4Term"]], "grammar::addanyvariable (c++ function)": [[36, "_CPPv4N4cvc57Grammar14addAnyVariableERK4Term"]], "grammar::addrule (c++ function)": [[36, "_CPPv4N4cvc57Grammar7addRuleERK4TermRK4Term"]], "grammar::addrules (c++ function)": [[36, "_CPPv4N4cvc57Grammar8addRulesERK4TermRKNSt6vectorI4TermEE"]], "grammar::isnull (c++ function)": [[36, "_CPPv4NK4cvc57Grammar6isNullEv"]], "grammar::operator!= (c++ function)": [[36, "_CPPv4NK4cvc57GrammarneERK7Grammar"]], "grammar::operator== (c++ function)": [[36, "_CPPv4NK4cvc57GrammareqERK7Grammar"]], "grammar::tostring (c++ function)": [[36, "_CPPv4NK4cvc57Grammar8toStringEv"]], "grammar::~grammar (c++ function)": [[36, "_CPPv4N4cvc57GrammarD0Ev"]], "parser::inputparser (c++ class)": [[37, "_CPPv4N4cvc56parser11InputParserE"]], "parser::inputparser::inputparser (c++ function)": [[37, "_CPPv4N4cvc56parser11InputParser11InputParserEP6Solver"], [37, "_CPPv4N4cvc56parser11InputParser11InputParserEP6SolverP13SymbolManager"]], "parser::inputparser::appendincrementalstringinput (c++ function)": [[37, "_CPPv4N4cvc56parser11InputParser28appendIncrementalStringInputERKNSt6stringE"]], "parser::inputparser::done (c++ function)": [[37, "_CPPv4NK4cvc56parser11InputParser4doneEv"]], "parser::inputparser::getsolver (c++ function)": [[37, "_CPPv4N4cvc56parser11InputParser9getSolverEv"]], "parser::inputparser::getsymbolmanager (c++ function)": [[37, "_CPPv4N4cvc56parser11InputParser16getSymbolManagerEv"]], "parser::inputparser::nextcommand (c++ function)": [[37, "_CPPv4N4cvc56parser11InputParser11nextCommandEv"]], "parser::inputparser::nextterm (c++ function)": [[37, "_CPPv4N4cvc56parser11InputParser8nextTermEv"]], "parser::inputparser::setfileinput (c++ function)": [[37, "_CPPv4N4cvc56parser11InputParser12setFileInputEN5modes13InputLanguageERKNSt6stringE"]], "parser::inputparser::setincrementalstringinput (c++ function)": [[37, "_CPPv4N4cvc56parser11InputParser25setIncrementalStringInputEN5modes13InputLanguageERKNSt6stringE"]], "parser::inputparser::setstreaminput (c++ function)": [[37, "_CPPv4N4cvc56parser11InputParser14setStreamInputEN5modes13InputLanguageERNSt7istreamERKNSt6stringE"]], "parser::inputparser::setstringinput (c++ function)": [[37, "_CPPv4N4cvc56parser11InputParser14setStringInputEN5modes13InputLanguageERKNSt6stringERKNSt6stringE"]], "op (c++ class)": [[38, "_CPPv4N4cvc52OpE"]], "op::op (c++ function)": [[38, "_CPPv4N4cvc52Op2OpEv"]], "op::getkind (c++ function)": [[38, "_CPPv4NK4cvc52Op7getKindEv"]], "op::getnumindices (c++ function)": [[38, "_CPPv4NK4cvc52Op13getNumIndicesEv"]], "op::isindexed (c++ function)": [[38, "_CPPv4NK4cvc52Op9isIndexedEv"]], "op::isnull (c++ function)": [[38, "_CPPv4NK4cvc52Op6isNullEv"]], "op::operator!= (c++ function)": [[38, "_CPPv4NK4cvc52OpneERK2Op"]], "op::operator== (c++ function)": [[38, "_CPPv4NK4cvc52OpeqERK2Op"]], "op::operator[] (c++ function)": [[38, "_CPPv4N4cvc52OpixE6size_t"]], "op::tostring (c++ function)": [[38, "_CPPv4NK4cvc52Op8toStringEv"]], "op::~op (c++ function)": [[38, "_CPPv4N4cvc52OpD0Ev"]], "std::hash (c++ struct)": [[38, "_CPPv4IENSt4hashIN4cvc52OpEEE"]], "std::hash::operator() (c++ function)": [[38, "_CPPv4NKSt4hashIN4cvc52OpEEclERKN4cvc52OpE"]], "optioninfo (c++ struct)": [[39, "_CPPv4N4cvc510OptionInfoE"]], "optioninfo::modeinfo (c++ struct)": [[39, "_CPPv4N4cvc510OptionInfo8ModeInfoE"]], "optioninfo::modeinfo::currentvalue (c++ member)": [[39, "_CPPv4N4cvc510OptionInfo8ModeInfo12currentValueE"]], "optioninfo::modeinfo::defaultvalue (c++ member)": [[39, "_CPPv4N4cvc510OptionInfo8ModeInfo12defaultValueE"]], "optioninfo::modeinfo::modes (c++ member)": [[39, "_CPPv4N4cvc510OptionInfo8ModeInfo5modesE"]], "optioninfo::numberinfo (c++ struct)": [[39, "_CPPv4I0EN4cvc510OptionInfo10NumberInfoE"]], "optioninfo::numberinfo::currentvalue (c++ member)": [[39, "_CPPv4N4cvc510OptionInfo10NumberInfo12currentValueE"]], "optioninfo::numberinfo::defaultvalue (c++ member)": [[39, "_CPPv4N4cvc510OptionInfo10NumberInfo12defaultValueE"]], "optioninfo::numberinfo::maximum (c++ member)": [[39, "_CPPv4N4cvc510OptionInfo10NumberInfo7maximumE"]], "optioninfo::numberinfo::minimum (c++ member)": [[39, "_CPPv4N4cvc510OptionInfo10NumberInfo7minimumE"]], "optioninfo::optioninfovariant (c++ type)": [[39, "_CPPv4N4cvc510OptionInfo17OptionInfoVariantE"]], "optioninfo::valueinfo (c++ struct)": [[39, "_CPPv4I0EN4cvc510OptionInfo9ValueInfoE"]], "optioninfo::valueinfo::currentvalue (c++ member)": [[39, "_CPPv4N4cvc510OptionInfo9ValueInfo12currentValueE"]], "optioninfo::valueinfo::defaultvalue (c++ member)": [[39, "_CPPv4N4cvc510OptionInfo9ValueInfo12defaultValueE"]], "optioninfo::voidinfo (c++ struct)": [[39, "_CPPv4N4cvc510OptionInfo8VoidInfoE"]], "optioninfo::aliases (c++ member)": [[39, "_CPPv4N4cvc510OptionInfo7aliasesE"]], "optioninfo::boolvalue (c++ function)": [[39, "_CPPv4NK4cvc510OptionInfo9boolValueEv"]], "optioninfo::doublevalue (c++ function)": [[39, "_CPPv4NK4cvc510OptionInfo11doubleValueEv"]], "optioninfo::intvalue (c++ function)": [[39, "_CPPv4NK4cvc510OptionInfo8intValueEv"]], "optioninfo::isexpert (c++ member)": [[39, "_CPPv4N4cvc510OptionInfo8isExpertE"]], "optioninfo::isregular (c++ member)": [[39, "_CPPv4N4cvc510OptionInfo9isRegularE"]], "optioninfo::name (c++ member)": [[39, "_CPPv4N4cvc510OptionInfo4nameE"]], "optioninfo::setbyuser (c++ member)": [[39, "_CPPv4N4cvc510OptionInfo9setByUserE"]], "optioninfo::stringvalue (c++ function)": [[39, "_CPPv4NK4cvc510OptionInfo11stringValueEv"]], "optioninfo::tostring (c++ function)": [[39, "_CPPv4NK4cvc510OptionInfo8toStringEv"]], "optioninfo::uintvalue (c++ function)": [[39, "_CPPv4NK4cvc510OptionInfo9uintValueEv"]], "optioninfo::valueinfo (c++ member)": [[39, "_CPPv4N4cvc510OptionInfo9valueInfoE"]], "plugin (c++ class)": [[40, "_CPPv4N4cvc56PluginE"], [72, "_CPPv4N4cvc56PluginE"]], "plugin::plugin (c++ function)": [[40, "_CPPv4N4cvc56Plugin6PluginER11TermManager"], [72, "_CPPv4N4cvc56Plugin6PluginER11TermManager"]], "plugin::check (c++ function)": [[40, "_CPPv4N4cvc56Plugin5checkEv"], [72, "_CPPv4N4cvc56Plugin5checkEv"]], "plugin::getname (c++ function)": [[40, "_CPPv4N4cvc56Plugin7getNameEv"], [72, "_CPPv4N4cvc56Plugin7getNameEv"]], "plugin::notifysatclause (c++ function)": [[40, "_CPPv4N4cvc56Plugin15notifySatClauseERK4Term"], [72, "_CPPv4N4cvc56Plugin15notifySatClauseERK4Term"]], "plugin::notifytheorylemma (c++ function)": [[40, "_CPPv4N4cvc56Plugin17notifyTheoryLemmaERK4Term"], [72, "_CPPv4N4cvc56Plugin17notifyTheoryLemmaERK4Term"]], "plugin::~plugin (c++ function)": [[40, "_CPPv4N4cvc56PluginD0Ev"], [72, "_CPPv4N4cvc56PluginD0Ev"]], "proof (c++ class)": [[41, "_CPPv4N4cvc55ProofE"]], "proof::proof (c++ function)": [[41, "_CPPv4N4cvc55Proof5ProofEv"]], "proof::getarguments (c++ function)": [[41, "_CPPv4NK4cvc55Proof12getArgumentsEv"]], "proof::getchildren (c++ function)": [[41, "_CPPv4NK4cvc55Proof11getChildrenEv"]], "proof::getresult (c++ function)": [[41, "_CPPv4NK4cvc55Proof9getResultEv"]], "proof::getrewriterule (c++ function)": [[41, "_CPPv4NK4cvc55Proof14getRewriteRuleEv"]], "proof::getrule (c++ function)": [[41, "_CPPv4NK4cvc55Proof7getRuleEv"]], "proof::isnull (c++ function)": [[41, "_CPPv4NK4cvc55Proof6isNullEv"]], "proof::operator!= (c++ function)": [[41, "_CPPv4NK4cvc55ProofneERK5Proof"]], "proof::operator== (c++ function)": [[41, "_CPPv4NK4cvc55ProofeqERK5Proof"]], "proof::~proof (c++ function)": [[41, "_CPPv4N4cvc55ProofD0Ev"]], "std::hash (c++ struct)": [[41, "_CPPv4IENSt4hashIN4cvc55ProofEEE"]], "std::hash::operator() (c++ function)": [[41, "_CPPv4NKSt4hashIN4cvc55ProofEEclERKN4cvc55ProofE"]], "result (c++ class)": [[42, "_CPPv4N4cvc56ResultE"]], "result::result (c++ function)": [[42, "_CPPv4N4cvc56Result6ResultEv"]], "result::getunknownexplanation (c++ function)": [[42, "_CPPv4NK4cvc56Result21getUnknownExplanationEv"]], "result::isnull (c++ function)": [[42, "_CPPv4NK4cvc56Result6isNullEv"]], "result::issat (c++ function)": [[42, "_CPPv4NK4cvc56Result5isSatEv"]], "result::isunknown (c++ function)": [[42, "_CPPv4NK4cvc56Result9isUnknownEv"]], "result::isunsat (c++ function)": [[42, "_CPPv4NK4cvc56Result7isUnsatEv"]], "result::operator!= (c++ function)": [[42, "_CPPv4NK4cvc56ResultneERK6Result"]], "result::operator== (c++ function)": [[42, "_CPPv4NK4cvc56ResulteqERK6Result"]], "result::tostring (c++ function)": [[42, "_CPPv4NK4cvc56Result8toStringEv"]], "solver (c++ class)": [[43, "_CPPv4N4cvc56SolverE"]], "solver::solver (c++ function)": [[43, "_CPPv4N4cvc56Solver6SolverER11TermManager"], [43, "_CPPv4N4cvc56Solver6SolverERK6Solver"], [43, "_CPPv4N4cvc56Solver6SolverEv"]], "solver::addplugin (c++ function)": [[43, "_CPPv4N4cvc56Solver9addPluginER6Plugin"]], "solver::addsygusassume (c++ function)": [[43, "_CPPv4NK4cvc56Solver14addSygusAssumeERK4Term"]], "solver::addsygusconstraint (c++ function)": [[43, "_CPPv4NK4cvc56Solver18addSygusConstraintERK4Term"]], "solver::addsygusinvconstraint (c++ function)": [[43, "_CPPv4NK4cvc56Solver21addSygusInvConstraintERK4TermRK4TermRK4TermRK4Term"]], "solver::assertformula (c++ function)": [[43, "_CPPv4NK4cvc56Solver13assertFormulaERK4Term"]], "solver::blockmodel (c++ function)": [[43, "_CPPv4NK4cvc56Solver10blockModelEN5modes15BlockModelsModeE"]], "solver::blockmodelvalues (c++ function)": [[43, "_CPPv4NK4cvc56Solver16blockModelValuesERKNSt6vectorI4TermEE"]], "solver::checksat (c++ function)": [[43, "_CPPv4NK4cvc56Solver8checkSatEv"]], "solver::checksatassuming (c++ function)": [[43, "_CPPv4NK4cvc56Solver16checkSatAssumingERK4Term"], [43, "_CPPv4NK4cvc56Solver16checkSatAssumingERKNSt6vectorI4TermEE"]], "solver::checksynth (c++ function)": [[43, "_CPPv4NK4cvc56Solver10checkSynthEv"]], "solver::checksynthnext (c++ function)": [[43, "_CPPv4NK4cvc56Solver14checkSynthNextEv"]], "solver::declaredatatype (c++ function)": [[43, "_CPPv4NK4cvc56Solver15declareDatatypeERKNSt6stringERKNSt6vectorI23DatatypeConstructorDeclEE"]], "solver::declarefun (c++ function)": [[43, "_CPPv4NK4cvc56Solver10declareFunERKNSt6stringERKNSt6vectorI4SortEERK4Sortb"]], "solver::declareoraclefun (c++ function)": [[43, "_CPPv4NK4cvc56Solver16declareOracleFunERKNSt6stringERKNSt6vectorI4SortEERK4SortNSt8functionIF4TermRKNSt6vectorI4TermEEEEE"]], "solver::declarepool (c++ function)": [[43, "_CPPv4NK4cvc56Solver11declarePoolERKNSt6stringERK4SortRKNSt6vectorI4TermEE"]], "solver::declaresepheap (c++ function)": [[43, "_CPPv4NK4cvc56Solver14declareSepHeapERK4SortRK4Sort"]], "solver::declaresort (c++ function)": [[43, "_CPPv4NK4cvc56Solver11declareSortERKNSt6stringE8uint32_tb"]], "solver::declaresygusvar (c++ function)": [[43, "_CPPv4NK4cvc56Solver15declareSygusVarERKNSt6stringERK4Sort"]], "solver::definefun (c++ function)": [[43, "_CPPv4NK4cvc56Solver9defineFunERKNSt6stringERKNSt6vectorI4TermEERK4SortRK4Termb"]], "solver::definefunrec (c++ function)": [[43, "_CPPv4NK4cvc56Solver12defineFunRecERK4TermRKNSt6vectorI4TermEERK4Termb"], [43, "_CPPv4NK4cvc56Solver12defineFunRecERKNSt6stringERKNSt6vectorI4TermEERK4SortRK4Termb"]], "solver::definefunsrec (c++ function)": [[43, "_CPPv4NK4cvc56Solver13defineFunsRecERKNSt6vectorI4TermEERKNSt6vectorINSt6vectorI4TermEEEERKNSt6vectorI4TermEEb"]], "solver::findsynth (c++ function)": [[43, "_CPPv4NK4cvc56Solver9findSynthEN5modes15FindSynthTargetE"], [43, "_CPPv4NK4cvc56Solver9findSynthEN5modes15FindSynthTargetER7Grammar"]], "solver::findsynthnext (c++ function)": [[43, "_CPPv4NK4cvc56Solver13findSynthNextEv"]], "solver::getabduct (c++ function)": [[43, "_CPPv4NK4cvc56Solver9getAbductERK4Term"], [43, "_CPPv4NK4cvc56Solver9getAbductERK4TermR7Grammar"]], "solver::getabductnext (c++ function)": [[43, "_CPPv4NK4cvc56Solver13getAbductNextEv"]], "solver::getassertions (c++ function)": [[43, "_CPPv4NK4cvc56Solver13getAssertionsEv"]], "solver::getbooleansort (c++ function)": [[43, "_CPPv4NK4cvc56Solver14getBooleanSortEv"]], "solver::getdifficulty (c++ function)": [[43, "_CPPv4NK4cvc56Solver13getDifficultyEv"]], "solver::getdriveroptions (c++ function)": [[43, "_CPPv4NK4cvc56Solver16getDriverOptionsEv"]], "solver::getinfo (c++ function)": [[43, "_CPPv4NK4cvc56Solver7getInfoERKNSt6stringE"]], "solver::getinstantiations (c++ function)": [[43, "_CPPv4NK4cvc56Solver17getInstantiationsEv"]], "solver::getintegersort (c++ function)": [[43, "_CPPv4NK4cvc56Solver14getIntegerSortEv"]], "solver::getinterpolant (c++ function)": [[43, "_CPPv4NK4cvc56Solver14getInterpolantERK4Term"], [43, "_CPPv4NK4cvc56Solver14getInterpolantERK4TermR7Grammar"]], "solver::getinterpolantnext (c++ function)": [[43, "_CPPv4NK4cvc56Solver18getInterpolantNextEv"]], "solver::getlearnedliterals (c++ function)": [[43, "_CPPv4NK4cvc56Solver18getLearnedLiteralsEN5modes14LearnedLitTypeE"]], "solver::getlogic (c++ function)": [[43, "_CPPv4NK4cvc56Solver8getLogicEv"]], "solver::getmodel (c++ function)": [[43, "_CPPv4NK4cvc56Solver8getModelERKNSt6vectorI4SortEERKNSt6vectorI4TermEE"]], "solver::getmodeldomainelements (c++ function)": [[43, "_CPPv4NK4cvc56Solver22getModelDomainElementsERK4Sort"]], "solver::getoption (c++ function)": [[43, "_CPPv4NK4cvc56Solver9getOptionERKNSt6stringE"]], "solver::getoptioninfo (c++ function)": [[43, "_CPPv4NK4cvc56Solver13getOptionInfoERKNSt6stringE"]], "solver::getoptionnames (c++ function)": [[43, "_CPPv4NK4cvc56Solver14getOptionNamesEv"]], "solver::getoutput (c++ function)": [[43, "_CPPv4NK4cvc56Solver9getOutputERKNSt6stringE"]], "solver::getproof (c++ function)": [[43, "_CPPv4NK4cvc56Solver8getProofEN5modes14ProofComponentE"]], "solver::getquantifierelimination (c++ function)": [[43, "_CPPv4NK4cvc56Solver24getQuantifierEliminationERK4Term"]], "solver::getquantifiereliminationdisjunct (c++ function)": [[43, "_CPPv4NK4cvc56Solver32getQuantifierEliminationDisjunctERK4Term"]], "solver::getrealsort (c++ function)": [[43, "_CPPv4NK4cvc56Solver11getRealSortEv"]], "solver::getregexpsort (c++ function)": [[43, "_CPPv4NK4cvc56Solver13getRegExpSortEv"]], "solver::getroundingmodesort (c++ function)": [[43, "_CPPv4NK4cvc56Solver19getRoundingModeSortEv"]], "solver::getstatistics (c++ function)": [[43, "_CPPv4NK4cvc56Solver13getStatisticsEv"]], "solver::getstringsort (c++ function)": [[43, "_CPPv4NK4cvc56Solver13getStringSortEv"]], "solver::getsygusassumptions (c++ function)": [[43, "_CPPv4NK4cvc56Solver19getSygusAssumptionsEv"]], "solver::getsygusconstraints (c++ function)": [[43, "_CPPv4NK4cvc56Solver19getSygusConstraintsEv"]], "solver::getsynthsolution (c++ function)": [[43, "_CPPv4NK4cvc56Solver16getSynthSolutionERK4Term"]], "solver::getsynthsolutions (c++ function)": [[43, "_CPPv4NK4cvc56Solver17getSynthSolutionsERKNSt6vectorI4TermEE"]], "solver::gettermmanager (c++ function)": [[43, "_CPPv4NK4cvc56Solver14getTermManagerEv"]], "solver::gettimeoutcore (c++ function)": [[43, "_CPPv4NK4cvc56Solver14getTimeoutCoreEv"]], "solver::gettimeoutcoreassuming (c++ function)": [[43, "_CPPv4NK4cvc56Solver22getTimeoutCoreAssumingERKNSt6vectorI4TermEE"]], "solver::getunsatassumptions (c++ function)": [[43, "_CPPv4NK4cvc56Solver19getUnsatAssumptionsEv"]], "solver::getunsatcore (c++ function)": [[43, "_CPPv4NK4cvc56Solver12getUnsatCoreEv"]], "solver::getunsatcorelemmas (c++ function)": [[43, "_CPPv4NK4cvc56Solver18getUnsatCoreLemmasEv"]], "solver::getvalue (c++ function)": [[43, "_CPPv4NK4cvc56Solver8getValueERK4Term"], [43, "_CPPv4NK4cvc56Solver8getValueERKNSt6vectorI4TermEE"]], "solver::getvaluesepheap (c++ function)": [[43, "_CPPv4NK4cvc56Solver15getValueSepHeapEv"]], "solver::getvaluesepnil (c++ function)": [[43, "_CPPv4NK4cvc56Solver14getValueSepNilEv"]], "solver::getversion (c++ function)": [[43, "_CPPv4NK4cvc56Solver10getVersionEv"]], "solver::islogicset (c++ function)": [[43, "_CPPv4NK4cvc56Solver10isLogicSetEv"]], "solver::ismodelcoresymbol (c++ function)": [[43, "_CPPv4NK4cvc56Solver17isModelCoreSymbolERK4Term"]], "solver::isoutputon (c++ function)": [[43, "_CPPv4NK4cvc56Solver10isOutputOnERKNSt6stringE"]], "solver::mkabstractsort (c++ function)": [[43, "_CPPv4NK4cvc56Solver14mkAbstractSortE8SortKind"]], "solver::mkarraysort (c++ function)": [[43, "_CPPv4NK4cvc56Solver11mkArraySortERK4SortRK4Sort"]], "solver::mkbagsort (c++ function)": [[43, "_CPPv4NK4cvc56Solver9mkBagSortERK4Sort"]], "solver::mkbitvector (c++ function)": [[43, "_CPPv4NK4cvc56Solver11mkBitVectorE8uint32_t8uint64_t"], [43, "_CPPv4NK4cvc56Solver11mkBitVectorE8uint32_tRKNSt6stringE8uint32_t"]], "solver::mkbitvectorsort (c++ function)": [[43, "_CPPv4NK4cvc56Solver15mkBitVectorSortE8uint32_t"]], "solver::mkboolean (c++ function)": [[43, "_CPPv4NK4cvc56Solver9mkBooleanEb"]], "solver::mkcardinalityconstraint (c++ function)": [[43, "_CPPv4NK4cvc56Solver23mkCardinalityConstraintERK4Sort8uint32_t"]], "solver::mkconst (c++ function)": [[43, "_CPPv4NK4cvc56Solver7mkConstERK4SortRKNSt8optionalINSt6stringEEE"]], "solver::mkconstarray (c++ function)": [[43, "_CPPv4NK4cvc56Solver12mkConstArrayERK4SortRK4Term"]], "solver::mkdatatypeconstructordecl (c++ function)": [[43, "_CPPv4N4cvc56Solver25mkDatatypeConstructorDeclERKNSt6stringE"]], "solver::mkdatatypedecl (c++ function)": [[43, "_CPPv4N4cvc56Solver14mkDatatypeDeclERKNSt6stringERKNSt6vectorI4SortEEb"], [43, "_CPPv4N4cvc56Solver14mkDatatypeDeclERKNSt6stringEb"]], "solver::mkdatatypesort (c++ function)": [[43, "_CPPv4NK4cvc56Solver14mkDatatypeSortERK12DatatypeDecl"]], "solver::mkdatatypesorts (c++ function)": [[43, "_CPPv4NK4cvc56Solver15mkDatatypeSortsERKNSt6vectorI12DatatypeDeclEE"]], "solver::mkemptybag (c++ function)": [[43, "_CPPv4NK4cvc56Solver10mkEmptyBagERK4Sort"]], "solver::mkemptysequence (c++ function)": [[43, "_CPPv4NK4cvc56Solver15mkEmptySequenceERK4Sort"]], "solver::mkemptyset (c++ function)": [[43, "_CPPv4NK4cvc56Solver10mkEmptySetERK4Sort"]], "solver::mkfalse (c++ function)": [[43, "_CPPv4NK4cvc56Solver7mkFalseEv"]], "solver::mkfinitefieldelem (c++ function)": [[43, "_CPPv4NK4cvc56Solver17mkFiniteFieldElemERKNSt6stringERK4Sort8uint32_t"]], "solver::mkfinitefieldsort (c++ function)": [[43, "_CPPv4NK4cvc56Solver17mkFiniteFieldSortERKNSt6stringE8uint32_t"]], "solver::mkfloatingpoint (c++ function)": [[43, "_CPPv4NK4cvc56Solver15mkFloatingPointE8uint32_t8uint32_tRK4Term"], [43, "_CPPv4NK4cvc56Solver15mkFloatingPointERK4TermRK4TermRK4Term"]], "solver::mkfloatingpointnan (c++ function)": [[43, "_CPPv4NK4cvc56Solver18mkFloatingPointNaNE8uint32_t8uint32_t"]], "solver::mkfloatingpointneginf (c++ function)": [[43, "_CPPv4NK4cvc56Solver21mkFloatingPointNegInfE8uint32_t8uint32_t"]], "solver::mkfloatingpointnegzero (c++ function)": [[43, "_CPPv4NK4cvc56Solver22mkFloatingPointNegZeroE8uint32_t8uint32_t"]], "solver::mkfloatingpointposinf (c++ function)": [[43, "_CPPv4NK4cvc56Solver21mkFloatingPointPosInfE8uint32_t8uint32_t"]], "solver::mkfloatingpointposzero (c++ function)": [[43, "_CPPv4NK4cvc56Solver22mkFloatingPointPosZeroE8uint32_t8uint32_t"]], "solver::mkfloatingpointsort (c++ function)": [[43, "_CPPv4NK4cvc56Solver19mkFloatingPointSortE8uint32_t8uint32_t"]], "solver::mkfunctionsort (c++ function)": [[43, "_CPPv4NK4cvc56Solver14mkFunctionSortERKNSt6vectorI4SortEERK4Sort"]], "solver::mkgrammar (c++ function)": [[43, "_CPPv4NK4cvc56Solver9mkGrammarERKNSt6vectorI4TermEERKNSt6vectorI4TermEE"]], "solver::mkinteger (c++ function)": [[43, "_CPPv4NK4cvc56Solver9mkIntegerE7int64_t"], [43, "_CPPv4NK4cvc56Solver9mkIntegerERKNSt6stringE"]], "solver::mknullableisnull (c++ function)": [[43, "_CPPv4NK4cvc56Solver16mkNullableIsNullERK4Term"]], "solver::mknullableissome (c++ function)": [[43, "_CPPv4NK4cvc56Solver16mkNullableIsSomeERK4Term"]], "solver::mknullablelift (c++ function)": [[43, "_CPPv4NK4cvc56Solver14mkNullableLiftE4KindRKNSt6vectorI4TermEE"]], "solver::mknullablenull (c++ function)": [[43, "_CPPv4NK4cvc56Solver14mkNullableNullERK4Sort"]], "solver::mknullablesome (c++ function)": [[43, "_CPPv4NK4cvc56Solver14mkNullableSomeERK4Term"]], "solver::mknullablesort (c++ function)": [[43, "_CPPv4NK4cvc56Solver14mkNullableSortERK4Sort"]], "solver::mknullableval (c++ function)": [[43, "_CPPv4NK4cvc56Solver13mkNullableValERK4Term"]], "solver::mkop (c++ function)": [[43, "_CPPv4NK4cvc56Solver4mkOpE4KindRKNSt6stringE"], [43, "_CPPv4NK4cvc56Solver4mkOpE4KindRKNSt6vectorI8uint32_tEE"]], "solver::mkparamsort (c++ function)": [[43, "_CPPv4NK4cvc56Solver11mkParamSortERKNSt8optionalINSt6stringEEE"]], "solver::mkpi (c++ function)": [[43, "_CPPv4NK4cvc56Solver4mkPiEv"]], "solver::mkpredicatesort (c++ function)": [[43, "_CPPv4NK4cvc56Solver15mkPredicateSortERKNSt6vectorI4SortEE"]], "solver::mkreal (c++ function)": [[43, "_CPPv4NK4cvc56Solver6mkRealE7int64_t"], [43, "_CPPv4NK4cvc56Solver6mkRealE7int64_t7int64_t"], [43, "_CPPv4NK4cvc56Solver6mkRealERKNSt6stringE"]], "solver::mkrecordsort (c++ function)": [[43, "_CPPv4NK4cvc56Solver12mkRecordSortERKNSt6vectorINSt4pairINSt6stringE4SortEEEE"]], "solver::mkregexpall (c++ function)": [[43, "_CPPv4NK4cvc56Solver11mkRegexpAllEv"]], "solver::mkregexpallchar (c++ function)": [[43, "_CPPv4NK4cvc56Solver15mkRegexpAllcharEv"]], "solver::mkregexpnone (c++ function)": [[43, "_CPPv4NK4cvc56Solver12mkRegexpNoneEv"]], "solver::mkroundingmode (c++ function)": [[43, "_CPPv4NK4cvc56Solver14mkRoundingModeE12RoundingMode"]], "solver::mksepemp (c++ function)": [[43, "_CPPv4NK4cvc56Solver8mkSepEmpEv"]], "solver::mksepnil (c++ function)": [[43, "_CPPv4NK4cvc56Solver8mkSepNilERK4Sort"]], "solver::mksequencesort (c++ function)": [[43, "_CPPv4NK4cvc56Solver14mkSequenceSortERK4Sort"]], "solver::mksetsort (c++ function)": [[43, "_CPPv4NK4cvc56Solver9mkSetSortERK4Sort"]], "solver::mkstring (c++ function)": [[43, "_CPPv4NK4cvc56Solver8mkStringERKNSt6stringEb"], [43, "_CPPv4NK4cvc56Solver8mkStringERKNSt7wstringE"]], "solver::mkterm (c++ function)": [[43, "_CPPv4NK4cvc56Solver6mkTermE4KindRKNSt6vectorI4TermEE"], [43, "_CPPv4NK4cvc56Solver6mkTermERK2OpRKNSt6vectorI4TermEE"]], "solver::mktrue (c++ function)": [[43, "_CPPv4NK4cvc56Solver6mkTrueEv"]], "solver::mktuple (c++ function)": [[43, "_CPPv4NK4cvc56Solver7mkTupleERKNSt6vectorI4TermEE"]], "solver::mktuplesort (c++ function)": [[43, "_CPPv4NK4cvc56Solver11mkTupleSortERKNSt6vectorI4SortEE"]], "solver::mkuninterpretedsort (c++ function)": [[43, "_CPPv4NK4cvc56Solver19mkUninterpretedSortERKNSt8optionalINSt6stringEEE"]], "solver::mkuninterpretedsortconstructorsort (c++ function)": [[43, "_CPPv4NK4cvc56Solver34mkUninterpretedSortConstructorSortE6size_tRKNSt8optionalINSt6stringEEE"]], "solver::mkuniverseset (c++ function)": [[43, "_CPPv4NK4cvc56Solver13mkUniverseSetERK4Sort"]], "solver::mkunresolveddatatypesort (c++ function)": [[43, "_CPPv4NK4cvc56Solver24mkUnresolvedDatatypeSortERKNSt6stringE6size_t"]], "solver::mkvar (c++ function)": [[43, "_CPPv4NK4cvc56Solver5mkVarERK4SortRKNSt8optionalINSt6stringEEE"]], "solver::operator= (c++ function)": [[43, "_CPPv4N4cvc56SolveraSERK6Solver"]], "solver::pop (c++ function)": [[43, "_CPPv4NK4cvc56Solver3popE8uint32_t"]], "solver::printstatisticssafe (c++ function)": [[43, "_CPPv4NK4cvc56Solver19printStatisticsSafeEi"]], "solver::prooftostring (c++ function)": [[43, "_CPPv4NK4cvc56Solver13proofToStringE5ProofN5modes11ProofFormatERKNSt3mapIN4cvc54TermENSt6stringEEE"]], "solver::push (c++ function)": [[43, "_CPPv4NK4cvc56Solver4pushE8uint32_t"]], "solver::resetassertions (c++ function)": [[43, "_CPPv4NK4cvc56Solver15resetAssertionsEv"]], "solver::setinfo (c++ function)": [[43, "_CPPv4NK4cvc56Solver7setInfoERKNSt6stringERKNSt6stringE"]], "solver::setlogic (c++ function)": [[43, "_CPPv4NK4cvc56Solver8setLogicERKNSt6stringE"]], "solver::setoption (c++ function)": [[43, "_CPPv4NK4cvc56Solver9setOptionERKNSt6stringERKNSt6stringE"]], "solver::simplify (c++ function)": [[43, "_CPPv4N4cvc56Solver8simplifyERK4Termb"]], "solver::synthfun (c++ function)": [[43, "_CPPv4NK4cvc56Solver8synthFunERKNSt6stringERKNSt6vectorI4TermEE4SortR7Grammar"], [43, "_CPPv4NK4cvc56Solver8synthFunERKNSt6stringERKNSt6vectorI4TermEERK4Sort"]], "solver::~solver (c++ function)": [[43, "_CPPv4N4cvc56SolverD0Ev"]], "sort (c++ class)": [[44, "_CPPv4N4cvc54SortE"]], "sort::sort (c++ function)": [[44, "_CPPv4N4cvc54Sort4SortEv"]], "sort::getabstractedkind (c++ function)": [[44, "_CPPv4NK4cvc54Sort17getAbstractedKindEv"]], "sort::getarrayelementsort (c++ function)": [[44, "_CPPv4NK4cvc54Sort19getArrayElementSortEv"]], "sort::getarrayindexsort (c++ function)": [[44, "_CPPv4NK4cvc54Sort17getArrayIndexSortEv"]], "sort::getbagelementsort (c++ function)": [[44, "_CPPv4NK4cvc54Sort17getBagElementSortEv"]], "sort::getbitvectorsize (c++ function)": [[44, "_CPPv4NK4cvc54Sort16getBitVectorSizeEv"]], "sort::getdatatype (c++ function)": [[44, "_CPPv4NK4cvc54Sort11getDatatypeEv"]], "sort::getdatatypearity (c++ function)": [[44, "_CPPv4NK4cvc54Sort16getDatatypeArityEv"]], "sort::getdatatypeconstructorarity (c++ function)": [[44, "_CPPv4NK4cvc54Sort27getDatatypeConstructorArityEv"]], "sort::getdatatypeconstructorcodomainsort (c++ function)": [[44, "_CPPv4NK4cvc54Sort34getDatatypeConstructorCodomainSortEv"]], "sort::getdatatypeconstructordomainsorts (c++ function)": [[44, "_CPPv4NK4cvc54Sort33getDatatypeConstructorDomainSortsEv"]], "sort::getdatatypeselectorcodomainsort (c++ function)": [[44, "_CPPv4NK4cvc54Sort31getDatatypeSelectorCodomainSortEv"]], "sort::getdatatypeselectordomainsort (c++ function)": [[44, "_CPPv4NK4cvc54Sort29getDatatypeSelectorDomainSortEv"]], "sort::getdatatypetestercodomainsort (c++ function)": [[44, "_CPPv4NK4cvc54Sort29getDatatypeTesterCodomainSortEv"]], "sort::getdatatypetesterdomainsort (c++ function)": [[44, "_CPPv4NK4cvc54Sort27getDatatypeTesterDomainSortEv"]], "sort::getfinitefieldsize (c++ function)": [[44, "_CPPv4NK4cvc54Sort18getFiniteFieldSizeEv"]], "sort::getfloatingpointexponentsize (c++ function)": [[44, "_CPPv4NK4cvc54Sort28getFloatingPointExponentSizeEv"]], "sort::getfloatingpointsignificandsize (c++ function)": [[44, "_CPPv4NK4cvc54Sort31getFloatingPointSignificandSizeEv"]], "sort::getfunctionarity (c++ function)": [[44, "_CPPv4NK4cvc54Sort16getFunctionArityEv"]], "sort::getfunctioncodomainsort (c++ function)": [[44, "_CPPv4NK4cvc54Sort23getFunctionCodomainSortEv"]], "sort::getfunctiondomainsorts (c++ function)": [[44, "_CPPv4NK4cvc54Sort22getFunctionDomainSortsEv"]], "sort::getinstantiatedparameters (c++ function)": [[44, "_CPPv4NK4cvc54Sort25getInstantiatedParametersEv"]], "sort::getkind (c++ function)": [[44, "_CPPv4NK4cvc54Sort7getKindEv"]], "sort::getnullableelementsort (c++ function)": [[44, "_CPPv4NK4cvc54Sort22getNullableElementSortEv"]], "sort::getsequenceelementsort (c++ function)": [[44, "_CPPv4NK4cvc54Sort22getSequenceElementSortEv"]], "sort::getsetelementsort (c++ function)": [[44, "_CPPv4NK4cvc54Sort17getSetElementSortEv"]], "sort::getsymbol (c++ function)": [[44, "_CPPv4NK4cvc54Sort9getSymbolEv"]], "sort::gettuplelength (c++ function)": [[44, "_CPPv4NK4cvc54Sort14getTupleLengthEv"]], "sort::gettuplesorts (c++ function)": [[44, "_CPPv4NK4cvc54Sort13getTupleSortsEv"]], "sort::getuninterpretedsortconstructor (c++ function)": [[44, "_CPPv4NK4cvc54Sort31getUninterpretedSortConstructorEv"]], "sort::getuninterpretedsortconstructorarity (c++ function)": [[44, "_CPPv4NK4cvc54Sort36getUninterpretedSortConstructorArityEv"]], "sort::hassymbol (c++ function)": [[44, "_CPPv4NK4cvc54Sort9hasSymbolEv"]], "sort::instantiate (c++ function)": [[44, "_CPPv4NK4cvc54Sort11instantiateERKNSt6vectorI4SortEE"]], "sort::isabstract (c++ function)": [[44, "_CPPv4NK4cvc54Sort10isAbstractEv"]], "sort::isarray (c++ function)": [[44, "_CPPv4NK4cvc54Sort7isArrayEv"]], "sort::isbag (c++ function)": [[44, "_CPPv4NK4cvc54Sort5isBagEv"]], "sort::isbitvector (c++ function)": [[44, "_CPPv4NK4cvc54Sort11isBitVectorEv"]], "sort::isboolean (c++ function)": [[44, "_CPPv4NK4cvc54Sort9isBooleanEv"]], "sort::isdatatype (c++ function)": [[44, "_CPPv4NK4cvc54Sort10isDatatypeEv"]], "sort::isdatatypeconstructor (c++ function)": [[44, "_CPPv4NK4cvc54Sort21isDatatypeConstructorEv"]], "sort::isdatatypeselector (c++ function)": [[44, "_CPPv4NK4cvc54Sort18isDatatypeSelectorEv"]], "sort::isdatatypetester (c++ function)": [[44, "_CPPv4NK4cvc54Sort16isDatatypeTesterEv"]], "sort::isdatatypeupdater (c++ function)": [[44, "_CPPv4NK4cvc54Sort17isDatatypeUpdaterEv"]], "sort::isfinitefield (c++ function)": [[44, "_CPPv4NK4cvc54Sort13isFiniteFieldEv"]], "sort::isfloatingpoint (c++ function)": [[44, "_CPPv4NK4cvc54Sort15isFloatingPointEv"]], "sort::isfunction (c++ function)": [[44, "_CPPv4NK4cvc54Sort10isFunctionEv"]], "sort::isinstantiated (c++ function)": [[44, "_CPPv4NK4cvc54Sort14isInstantiatedEv"]], "sort::isinteger (c++ function)": [[44, "_CPPv4NK4cvc54Sort9isIntegerEv"]], "sort::isnull (c++ function)": [[44, "_CPPv4NK4cvc54Sort6isNullEv"]], "sort::isnullable (c++ function)": [[44, "_CPPv4NK4cvc54Sort10isNullableEv"]], "sort::ispredicate (c++ function)": [[44, "_CPPv4NK4cvc54Sort11isPredicateEv"]], "sort::isreal (c++ function)": [[44, "_CPPv4NK4cvc54Sort6isRealEv"]], "sort::isrecord (c++ function)": [[44, "_CPPv4NK4cvc54Sort8isRecordEv"]], "sort::isregexp (c++ function)": [[44, "_CPPv4NK4cvc54Sort8isRegExpEv"]], "sort::isroundingmode (c++ function)": [[44, "_CPPv4NK4cvc54Sort14isRoundingModeEv"]], "sort::issequence (c++ function)": [[44, "_CPPv4NK4cvc54Sort10isSequenceEv"]], "sort::isset (c++ function)": [[44, "_CPPv4NK4cvc54Sort5isSetEv"]], "sort::isstring (c++ function)": [[44, "_CPPv4NK4cvc54Sort8isStringEv"]], "sort::istuple (c++ function)": [[44, "_CPPv4NK4cvc54Sort7isTupleEv"]], "sort::isuninterpretedsort (c++ function)": [[44, "_CPPv4NK4cvc54Sort19isUninterpretedSortEv"]], "sort::isuninterpretedsortconstructor (c++ function)": [[44, "_CPPv4NK4cvc54Sort30isUninterpretedSortConstructorEv"]], "sort::operator!= (c++ function)": [[44, "_CPPv4NK4cvc54SortneERK4Sort"]], "sort::operator< (c++ function)": [[44, "_CPPv4NK4cvc54SortltERK4Sort"]], "sort::operator<= (c++ function)": [[44, "_CPPv4NK4cvc54SortleERK4Sort"]], "sort::operator== (c++ function)": [[44, "_CPPv4NK4cvc54SorteqERK4Sort"]], "sort::operator> (c++ function)": [[44, "_CPPv4NK4cvc54SortgtERK4Sort"]], "sort::operator>= (c++ function)": [[44, "_CPPv4NK4cvc54SortgeERK4Sort"]], "sort::substitute (c++ function)": [[44, "_CPPv4NK4cvc54Sort10substituteERK4SortRK4Sort"], [44, "_CPPv4NK4cvc54Sort10substituteERKNSt6vectorI4SortEERKNSt6vectorI4SortEE"]], "sort::tostream (c++ function)": [[44, "_CPPv4NK4cvc54Sort8toStreamERNSt7ostreamE"]], "sort::tostring (c++ function)": [[44, "_CPPv4NK4cvc54Sort8toStringEv"]], "sort::~sort (c++ function)": [[44, "_CPPv4N4cvc54SortD0Ev"]], "std::hash (c++ struct)": [[44, "_CPPv4IENSt4hashIN4cvc54SortEEE"]], "std::hash::operator() (c++ function)": [[44, "_CPPv4NKSt4hashIN4cvc54SortEEclERKN4cvc54SortE"]], "stat (c++ class)": [[45, "_CPPv4N4cvc54StatE"]], "stat::histogramdata (c++ type)": [[45, "_CPPv4N4cvc54Stat13HistogramDataE"]], "stat::stat (c++ function)": [[45, "_CPPv4N4cvc54Stat4StatERK4Stat"], [45, "_CPPv4N4cvc54Stat4StatEv"]], "stat::getdouble (c++ function)": [[45, "_CPPv4NK4cvc54Stat9getDoubleEv"]], "stat::gethistogram (c++ function)": [[45, "_CPPv4NK4cvc54Stat12getHistogramEv"]], "stat::getint (c++ function)": [[45, "_CPPv4NK4cvc54Stat6getIntEv"]], "stat::getstring (c++ function)": [[45, "_CPPv4NK4cvc54Stat9getStringEv"]], "stat::isdefault (c++ function)": [[45, "_CPPv4NK4cvc54Stat9isDefaultEv"]], "stat::isdouble (c++ function)": [[45, "_CPPv4NK4cvc54Stat8isDoubleEv"]], "stat::ishistogram (c++ function)": [[45, "_CPPv4NK4cvc54Stat11isHistogramEv"]], "stat::isint (c++ function)": [[45, "_CPPv4NK4cvc54Stat5isIntEv"]], "stat::isinternal (c++ function)": [[45, "_CPPv4NK4cvc54Stat10isInternalEv"]], "stat::isstring (c++ function)": [[45, "_CPPv4NK4cvc54Stat8isStringEv"]], "stat::operator<< (c++ function)": [[45, "_CPPv4N4cvc54StatlsERNSt7ostreamERK4Stat"]], "stat::operator= (c++ function)": [[45, "_CPPv4N4cvc54StataSERK4Stat"]], "stat::tostring (c++ function)": [[45, "_CPPv4NK4cvc54Stat8toStringEv"]], "stat::~stat (c++ function)": [[45, "_CPPv4N4cvc54StatD0Ev"]], "statistics (c++ class)": [[45, "_CPPv4N4cvc510StatisticsE"]], "statistics::begin (c++ function)": [[45, "_CPPv4NK4cvc510Statistics5beginEbb"]], "statistics::end (c++ function)": [[45, "_CPPv4NK4cvc510Statistics3endEv"]], "statistics::get (c++ function)": [[45, "_CPPv4N4cvc510Statistics3getERKNSt6stringE"]], "parser::symbolmanager (c++ class)": [[46, "_CPPv4N4cvc56parser13SymbolManagerE"]], "parser::symbolmanager::symbolmanager (c++ function)": [[46, "_CPPv4N4cvc56parser13SymbolManager13SymbolManagerEPN4cvc56SolverE"], [46, "_CPPv4N4cvc56parser13SymbolManager13SymbolManagerERN4cvc511TermManagerE"]], "parser::symbolmanager::getdeclaredsorts (c++ function)": [[46, "_CPPv4NK4cvc56parser13SymbolManager16getDeclaredSortsEv"]], "parser::symbolmanager::getdeclaredterms (c++ function)": [[46, "_CPPv4NK4cvc56parser13SymbolManager16getDeclaredTermsEv"]], "parser::symbolmanager::getlogic (c++ function)": [[46, "_CPPv4NK4cvc56parser13SymbolManager8getLogicEv"]], "parser::symbolmanager::getnamedterms (c++ function)": [[46, "_CPPv4NK4cvc56parser13SymbolManager13getNamedTermsEv"]], "parser::symbolmanager::islogicset (c++ function)": [[46, "_CPPv4NK4cvc56parser13SymbolManager10isLogicSetEv"]], "parser::symbolmanager::~symbolmanager (c++ function)": [[46, "_CPPv4N4cvc56parser13SymbolManagerD0Ev"]], "synthresult (c++ class)": [[47, "_CPPv4N4cvc511SynthResultE"]], "synthresult::synthresult (c++ function)": [[47, "_CPPv4N4cvc511SynthResult11SynthResultEv"]], "synthresult::hasnosolution (c++ function)": [[47, "_CPPv4NK4cvc511SynthResult13hasNoSolutionEv"]], "synthresult::hassolution (c++ function)": [[47, "_CPPv4NK4cvc511SynthResult11hasSolutionEv"]], "synthresult::isnull (c++ function)": [[47, "_CPPv4NK4cvc511SynthResult6isNullEv"]], "synthresult::isunknown (c++ function)": [[47, "_CPPv4NK4cvc511SynthResult9isUnknownEv"]], "synthresult::operator!= (c++ function)": [[47, "_CPPv4NK4cvc511SynthResultneERK11SynthResult"]], "synthresult::operator== (c++ function)": [[47, "_CPPv4NK4cvc511SynthResulteqERK11SynthResult"]], "synthresult::tostring (c++ function)": [[47, "_CPPv4NK4cvc511SynthResult8toStringEv"]], "term (c++ class)": [[48, "_CPPv4N4cvc54TermE"]], "term::term (c++ function)": [[48, "_CPPv4N4cvc54Term4TermEv"]], "term::andterm (c++ function)": [[48, "_CPPv4NK4cvc54Term7andTermERK4Term"]], "term::begin (c++ function)": [[48, "_CPPv4NK4cvc54Term5beginEv"]], "term::const_iterator (c++ class)": [[48, "_CPPv4N4cvc54Term14const_iteratorE"]], "term::const_iterator::const_iterator (c++ function)": [[48, "_CPPv4N4cvc54Term14const_iterator14const_iteratorEP11TermManagerRKNSt10shared_ptrIN8internal4NodeEEE8uint32_t"], [48, "_CPPv4N4cvc54Term14const_iterator14const_iteratorERK14const_iterator"], [48, "_CPPv4N4cvc54Term14const_iterator14const_iteratorEv"]], "term::const_iterator::difference_type (c++ type)": [[48, "_CPPv4N4cvc54Term14const_iterator15difference_typeE"]], "term::const_iterator::iterator_category (c++ type)": [[48, "_CPPv4N4cvc54Term14const_iterator17iterator_categoryE"]], "term::const_iterator::operator!= (c++ function)": [[48, "_CPPv4NK4cvc54Term14const_iteratorneERK14const_iterator"]], "term::const_iterator::operator* (c++ function)": [[48, "_CPPv4NK4cvc54Term14const_iteratormlEv"]], "term::const_iterator::operator++ (c++ function)": [[48, "_CPPv4N4cvc54Term14const_iteratorppEi"], [48, "_CPPv4N4cvc54Term14const_iteratorppEv"]], "term::const_iterator::operator= (c++ function)": [[48, "_CPPv4N4cvc54Term14const_iteratoraSERK14const_iterator"]], "term::const_iterator::operator== (c++ function)": [[48, "_CPPv4NK4cvc54Term14const_iteratoreqERK14const_iterator"]], "term::const_iterator::pointer (c++ type)": [[48, "_CPPv4N4cvc54Term14const_iterator7pointerE"]], "term::const_iterator::reference (c++ type)": [[48, "_CPPv4N4cvc54Term14const_iterator9referenceE"]], "term::const_iterator::value_type (c++ type)": [[48, "_CPPv4N4cvc54Term14const_iterator10value_typeE"]], "term::end (c++ function)": [[48, "_CPPv4NK4cvc54Term3endEv"]], "term::eqterm (c++ function)": [[48, "_CPPv4NK4cvc54Term6eqTermERK4Term"]], "term::getbitvectorvalue (c++ function)": [[48, "_CPPv4NK4cvc54Term17getBitVectorValueE8uint32_t"]], "term::getbooleanvalue (c++ function)": [[48, "_CPPv4NK4cvc54Term15getBooleanValueEv"]], "term::getcardinalityconstraint (c++ function)": [[48, "_CPPv4NK4cvc54Term24getCardinalityConstraintEv"]], "term::getconstarraybase (c++ function)": [[48, "_CPPv4NK4cvc54Term17getConstArrayBaseEv"]], "term::getfinitefieldvalue (c++ function)": [[48, "_CPPv4NK4cvc54Term19getFiniteFieldValueEv"]], "term::getfloatingpointvalue (c++ function)": [[48, "_CPPv4NK4cvc54Term21getFloatingPointValueEv"]], "term::getid (c++ function)": [[48, "_CPPv4NK4cvc54Term5getIdEv"]], "term::getint32value (c++ function)": [[48, "_CPPv4NK4cvc54Term13getInt32ValueEv"]], "term::getint64value (c++ function)": [[48, "_CPPv4NK4cvc54Term13getInt64ValueEv"]], "term::getintegervalue (c++ function)": [[48, "_CPPv4NK4cvc54Term15getIntegerValueEv"]], "term::getkind (c++ function)": [[48, "_CPPv4NK4cvc54Term7getKindEv"]], "term::getnumchildren (c++ function)": [[48, "_CPPv4NK4cvc54Term14getNumChildrenEv"]], "term::getop (c++ function)": [[48, "_CPPv4NK4cvc54Term5getOpEv"]], "term::getreal32value (c++ function)": [[48, "_CPPv4NK4cvc54Term14getReal32ValueEv"]], "term::getreal64value (c++ function)": [[48, "_CPPv4NK4cvc54Term14getReal64ValueEv"]], "term::getrealalgebraicnumberdefiningpolynomial (c++ function)": [[48, "_CPPv4NK4cvc54Term40getRealAlgebraicNumberDefiningPolynomialERK4Term"]], "term::getrealalgebraicnumberlowerbound (c++ function)": [[48, "_CPPv4NK4cvc54Term32getRealAlgebraicNumberLowerBoundEv"]], "term::getrealalgebraicnumberupperbound (c++ function)": [[48, "_CPPv4NK4cvc54Term32getRealAlgebraicNumberUpperBoundEv"]], "term::getrealorintegervaluesign (c++ function)": [[48, "_CPPv4NK4cvc54Term25getRealOrIntegerValueSignEv"]], "term::getrealvalue (c++ function)": [[48, "_CPPv4NK4cvc54Term12getRealValueEv"]], "term::getroundingmodevalue (c++ function)": [[48, "_CPPv4NK4cvc54Term20getRoundingModeValueEv"]], "term::getsequencevalue (c++ function)": [[48, "_CPPv4NK4cvc54Term16getSequenceValueEv"]], "term::getsetvalue (c++ function)": [[48, "_CPPv4NK4cvc54Term11getSetValueEv"]], "term::getskolemid (c++ function)": [[48, "_CPPv4NK4cvc54Term11getSkolemIdEv"]], "term::getskolemindices (c++ function)": [[48, "_CPPv4NK4cvc54Term16getSkolemIndicesEv"]], "term::getsort (c++ function)": [[48, "_CPPv4NK4cvc54Term7getSortEv"]], "term::getstringvalue (c++ function)": [[48, "_CPPv4NK4cvc54Term14getStringValueEv"]], "term::getsymbol (c++ function)": [[48, "_CPPv4NK4cvc54Term9getSymbolEv"]], "term::gettuplevalue (c++ function)": [[48, "_CPPv4NK4cvc54Term13getTupleValueEv"]], "term::getuint32value (c++ function)": [[48, "_CPPv4NK4cvc54Term14getUInt32ValueEv"]], "term::getuint64value (c++ function)": [[48, "_CPPv4NK4cvc54Term14getUInt64ValueEv"]], "term::getuninterpretedsortvalue (c++ function)": [[48, "_CPPv4NK4cvc54Term25getUninterpretedSortValueEv"]], "term::hasop (c++ function)": [[48, "_CPPv4NK4cvc54Term5hasOpEv"]], "term::hassymbol (c++ function)": [[48, "_CPPv4NK4cvc54Term9hasSymbolEv"]], "term::impterm (c++ function)": [[48, "_CPPv4NK4cvc54Term7impTermERK4Term"]], "term::isbitvectorvalue (c++ function)": [[48, "_CPPv4NK4cvc54Term16isBitVectorValueEv"]], "term::isbooleanvalue (c++ function)": [[48, "_CPPv4NK4cvc54Term14isBooleanValueEv"]], "term::iscardinalityconstraint (c++ function)": [[48, "_CPPv4NK4cvc54Term23isCardinalityConstraintEv"]], "term::isconstarray (c++ function)": [[48, "_CPPv4NK4cvc54Term12isConstArrayEv"]], "term::isfinitefieldvalue (c++ function)": [[48, "_CPPv4NK4cvc54Term18isFiniteFieldValueEv"]], "term::isfloatingpointnan (c++ function)": [[48, "_CPPv4NK4cvc54Term18isFloatingPointNaNEv"]], "term::isfloatingpointneginf (c++ function)": [[48, "_CPPv4NK4cvc54Term21isFloatingPointNegInfEv"]], "term::isfloatingpointnegzero (c++ function)": [[48, "_CPPv4NK4cvc54Term22isFloatingPointNegZeroEv"]], "term::isfloatingpointposinf (c++ function)": [[48, "_CPPv4NK4cvc54Term21isFloatingPointPosInfEv"]], "term::isfloatingpointposzero (c++ function)": [[48, "_CPPv4NK4cvc54Term22isFloatingPointPosZeroEv"]], "term::isfloatingpointvalue (c++ function)": [[48, "_CPPv4NK4cvc54Term20isFloatingPointValueEv"]], "term::isint32value (c++ function)": [[48, "_CPPv4NK4cvc54Term12isInt32ValueEv"]], "term::isint64value (c++ function)": [[48, "_CPPv4NK4cvc54Term12isInt64ValueEv"]], "term::isintegervalue (c++ function)": [[48, "_CPPv4NK4cvc54Term14isIntegerValueEv"]], "term::isnull (c++ function)": [[48, "_CPPv4NK4cvc54Term6isNullEv"]], "term::isreal32value (c++ function)": [[48, "_CPPv4NK4cvc54Term13isReal32ValueEv"]], "term::isreal64value (c++ function)": [[48, "_CPPv4NK4cvc54Term13isReal64ValueEv"]], "term::isrealalgebraicnumber (c++ function)": [[48, "_CPPv4NK4cvc54Term21isRealAlgebraicNumberEv"]], "term::isrealvalue (c++ function)": [[48, "_CPPv4NK4cvc54Term11isRealValueEv"]], "term::isroundingmodevalue (c++ function)": [[48, "_CPPv4NK4cvc54Term19isRoundingModeValueEv"]], "term::issequencevalue (c++ function)": [[48, "_CPPv4NK4cvc54Term15isSequenceValueEv"]], "term::issetvalue (c++ function)": [[48, "_CPPv4NK4cvc54Term10isSetValueEv"]], "term::isskolem (c++ function)": [[48, "_CPPv4NK4cvc54Term8isSkolemEv"]], "term::isstringvalue (c++ function)": [[48, "_CPPv4NK4cvc54Term13isStringValueEv"]], "term::istuplevalue (c++ function)": [[48, "_CPPv4NK4cvc54Term12isTupleValueEv"]], "term::isuint32value (c++ function)": [[48, "_CPPv4NK4cvc54Term13isUInt32ValueEv"]], "term::isuint64value (c++ function)": [[48, "_CPPv4NK4cvc54Term13isUInt64ValueEv"]], "term::isuninterpretedsortvalue (c++ function)": [[48, "_CPPv4NK4cvc54Term24isUninterpretedSortValueEv"]], "term::iteterm (c++ function)": [[48, "_CPPv4NK4cvc54Term7iteTermERK4TermRK4Term"]], "term::notterm (c++ function)": [[48, "_CPPv4NK4cvc54Term7notTermEv"]], "term::operator!= (c++ function)": [[48, "_CPPv4NK4cvc54TermneERK4Term"]], "term::operator< (c++ function)": [[48, "_CPPv4NK4cvc54TermltERK4Term"]], "term::operator<= (c++ function)": [[48, "_CPPv4NK4cvc54TermleERK4Term"]], "term::operator== (c++ function)": [[48, "_CPPv4NK4cvc54TermeqERK4Term"]], "term::operator> (c++ function)": [[48, "_CPPv4NK4cvc54TermgtERK4Term"]], "term::operator>= (c++ function)": [[48, "_CPPv4NK4cvc54TermgeERK4Term"]], "term::operator[] (c++ function)": [[48, "_CPPv4NK4cvc54TermixE6size_t"]], "term::orterm (c++ function)": [[48, "_CPPv4NK4cvc54Term6orTermERK4Term"]], "term::substitute (c++ function)": [[48, "_CPPv4NK4cvc54Term10substituteERK4TermRK4Term"], [48, "_CPPv4NK4cvc54Term10substituteERKNSt6vectorI4TermEERKNSt6vectorI4TermEE"]], "term::tostring (c++ function)": [[48, "_CPPv4NK4cvc54Term8toStringEv"]], "term::xorterm (c++ function)": [[48, "_CPPv4NK4cvc54Term7xorTermERK4Term"]], "term::~term (c++ function)": [[48, "_CPPv4N4cvc54TermD0Ev"]], "std::hash (c++ struct)": [[48, "_CPPv4IENSt4hashIN4cvc54TermEEE"]], "std::hash::operator() (c++ function)": [[48, "_CPPv4NKSt4hashIN4cvc54TermEEclERKN4cvc54TermE"]], "termmanager (c++ class)": [[49, "_CPPv4N4cvc511TermManagerE"]], "termmanager::termmanager (c++ function)": [[49, "_CPPv4N4cvc511TermManager11TermManagerEv"]], "termmanager::getbooleansort (c++ function)": [[49, "_CPPv4N4cvc511TermManager14getBooleanSortEv"]], "termmanager::getintegersort (c++ function)": [[49, "_CPPv4N4cvc511TermManager14getIntegerSortEv"]], "termmanager::getnumindicesforskolemid (c++ function)": [[49, "_CPPv4N4cvc511TermManager24getNumIndicesForSkolemIdE8SkolemId"]], "termmanager::getrealsort (c++ function)": [[49, "_CPPv4N4cvc511TermManager11getRealSortEv"]], "termmanager::getregexpsort (c++ function)": [[49, "_CPPv4N4cvc511TermManager13getRegExpSortEv"]], "termmanager::getroundingmodesort (c++ function)": [[49, "_CPPv4N4cvc511TermManager19getRoundingModeSortEv"]], "termmanager::getstatistics (c++ function)": [[49, "_CPPv4NK4cvc511TermManager13getStatisticsEv"]], "termmanager::getstringsort (c++ function)": [[49, "_CPPv4N4cvc511TermManager13getStringSortEv"]], "termmanager::mkabstractsort (c++ function)": [[49, "_CPPv4N4cvc511TermManager14mkAbstractSortE8SortKind"]], "termmanager::mkarraysort (c++ function)": [[49, "_CPPv4N4cvc511TermManager11mkArraySortERK4SortRK4Sort"]], "termmanager::mkbagsort (c++ function)": [[49, "_CPPv4N4cvc511TermManager9mkBagSortERK4Sort"]], "termmanager::mkbitvector (c++ function)": [[49, "_CPPv4N4cvc511TermManager11mkBitVectorE8uint32_t8uint64_t"], [49, "_CPPv4N4cvc511TermManager11mkBitVectorE8uint32_tRKNSt6stringE8uint32_t"]], "termmanager::mkbitvectorsort (c++ function)": [[49, "_CPPv4N4cvc511TermManager15mkBitVectorSortE8uint32_t"]], "termmanager::mkboolean (c++ function)": [[49, "_CPPv4N4cvc511TermManager9mkBooleanEb"]], "termmanager::mkcardinalityconstraint (c++ function)": [[49, "_CPPv4N4cvc511TermManager23mkCardinalityConstraintERK4Sort8uint32_t"]], "termmanager::mkconst (c++ function)": [[49, "_CPPv4N4cvc511TermManager7mkConstERK4SortRKNSt8optionalINSt6stringEEE"]], "termmanager::mkconstarray (c++ function)": [[49, "_CPPv4N4cvc511TermManager12mkConstArrayERK4SortRK4Term"]], "termmanager::mkdatatypeconstructordecl (c++ function)": [[49, "_CPPv4N4cvc511TermManager25mkDatatypeConstructorDeclERKNSt6stringE"]], "termmanager::mkdatatypedecl (c++ function)": [[49, "_CPPv4N4cvc511TermManager14mkDatatypeDeclERKNSt6stringERKNSt6vectorI4SortEEb"], [49, "_CPPv4N4cvc511TermManager14mkDatatypeDeclERKNSt6stringEb"]], "termmanager::mkdatatypesort (c++ function)": [[49, "_CPPv4N4cvc511TermManager14mkDatatypeSortERK12DatatypeDecl"]], "termmanager::mkdatatypesorts (c++ function)": [[49, "_CPPv4N4cvc511TermManager15mkDatatypeSortsERKNSt6vectorI12DatatypeDeclEE"]], "termmanager::mkemptybag (c++ function)": [[49, "_CPPv4N4cvc511TermManager10mkEmptyBagERK4Sort"]], "termmanager::mkemptysequence (c++ function)": [[49, "_CPPv4N4cvc511TermManager15mkEmptySequenceERK4Sort"]], "termmanager::mkemptyset (c++ function)": [[49, "_CPPv4N4cvc511TermManager10mkEmptySetERK4Sort"]], "termmanager::mkfalse (c++ function)": [[49, "_CPPv4N4cvc511TermManager7mkFalseEv"]], "termmanager::mkfinitefieldelem (c++ function)": [[49, "_CPPv4N4cvc511TermManager17mkFiniteFieldElemERKNSt6stringERK4Sort8uint32_t"]], "termmanager::mkfinitefieldsort (c++ function)": [[49, "_CPPv4N4cvc511TermManager17mkFiniteFieldSortERKNSt6stringE8uint32_t"]], "termmanager::mkfloatingpoint (c++ function)": [[49, "_CPPv4N4cvc511TermManager15mkFloatingPointE8uint32_t8uint32_tRK4Term"], [49, "_CPPv4N4cvc511TermManager15mkFloatingPointERK4TermRK4TermRK4Term"]], "termmanager::mkfloatingpointnan (c++ function)": [[49, "_CPPv4N4cvc511TermManager18mkFloatingPointNaNE8uint32_t8uint32_t"]], "termmanager::mkfloatingpointneginf (c++ function)": [[49, "_CPPv4N4cvc511TermManager21mkFloatingPointNegInfE8uint32_t8uint32_t"]], "termmanager::mkfloatingpointnegzero (c++ function)": [[49, "_CPPv4N4cvc511TermManager22mkFloatingPointNegZeroE8uint32_t8uint32_t"]], "termmanager::mkfloatingpointposinf (c++ function)": [[49, "_CPPv4N4cvc511TermManager21mkFloatingPointPosInfE8uint32_t8uint32_t"]], "termmanager::mkfloatingpointposzero (c++ function)": [[49, "_CPPv4N4cvc511TermManager22mkFloatingPointPosZeroE8uint32_t8uint32_t"]], "termmanager::mkfloatingpointsort (c++ function)": [[49, "_CPPv4N4cvc511TermManager19mkFloatingPointSortE8uint32_t8uint32_t"]], "termmanager::mkfunctionsort (c++ function)": [[49, "_CPPv4N4cvc511TermManager14mkFunctionSortERKNSt6vectorI4SortEERK4Sort"]], "termmanager::mkinteger (c++ function)": [[49, "_CPPv4N4cvc511TermManager9mkIntegerE7int64_t"], [49, "_CPPv4N4cvc511TermManager9mkIntegerERKNSt6stringE"]], "termmanager::mknullableisnull (c++ function)": [[49, "_CPPv4N4cvc511TermManager16mkNullableIsNullERK4Term"]], "termmanager::mknullableissome (c++ function)": [[49, "_CPPv4N4cvc511TermManager16mkNullableIsSomeERK4Term"]], "termmanager::mknullablelift (c++ function)": [[49, "_CPPv4N4cvc511TermManager14mkNullableLiftE4KindRKNSt6vectorI4TermEE"]], "termmanager::mknullablenull (c++ function)": [[49, "_CPPv4N4cvc511TermManager14mkNullableNullERK4Sort"]], "termmanager::mknullablesome (c++ function)": [[49, "_CPPv4N4cvc511TermManager14mkNullableSomeERK4Term"]], "termmanager::mknullablesort (c++ function)": [[49, "_CPPv4N4cvc511TermManager14mkNullableSortERK4Sort"]], "termmanager::mknullableval (c++ function)": [[49, "_CPPv4N4cvc511TermManager13mkNullableValERK4Term"]], "termmanager::mkop (c++ function)": [[49, "_CPPv4N4cvc511TermManager4mkOpE4KindRKNSt6stringE"], [49, "_CPPv4N4cvc511TermManager4mkOpE4KindRKNSt6vectorI8uint32_tEE"]], "termmanager::mkparamsort (c++ function)": [[49, "_CPPv4N4cvc511TermManager11mkParamSortERKNSt8optionalINSt6stringEEE"]], "termmanager::mkpi (c++ function)": [[49, "_CPPv4N4cvc511TermManager4mkPiEv"]], "termmanager::mkpredicatesort (c++ function)": [[49, "_CPPv4N4cvc511TermManager15mkPredicateSortERKNSt6vectorI4SortEE"]], "termmanager::mkreal (c++ function)": [[49, "_CPPv4N4cvc511TermManager6mkRealE7int64_t"], [49, "_CPPv4N4cvc511TermManager6mkRealE7int64_t7int64_t"], [49, "_CPPv4N4cvc511TermManager6mkRealERKNSt6stringE"]], "termmanager::mkrecordsort (c++ function)": [[49, "_CPPv4N4cvc511TermManager12mkRecordSortERKNSt6vectorINSt4pairINSt6stringE4SortEEEE"]], "termmanager::mkregexpall (c++ function)": [[49, "_CPPv4N4cvc511TermManager11mkRegexpAllEv"]], "termmanager::mkregexpallchar (c++ function)": [[49, "_CPPv4N4cvc511TermManager15mkRegexpAllcharEv"]], "termmanager::mkregexpnone (c++ function)": [[49, "_CPPv4N4cvc511TermManager12mkRegexpNoneEv"]], "termmanager::mkroundingmode (c++ function)": [[49, "_CPPv4N4cvc511TermManager14mkRoundingModeE12RoundingMode"]], "termmanager::mksepemp (c++ function)": [[49, "_CPPv4N4cvc511TermManager8mkSepEmpEv"]], "termmanager::mksepnil (c++ function)": [[49, "_CPPv4N4cvc511TermManager8mkSepNilERK4Sort"]], "termmanager::mksequencesort (c++ function)": [[49, "_CPPv4N4cvc511TermManager14mkSequenceSortERK4Sort"]], "termmanager::mksetsort (c++ function)": [[49, "_CPPv4N4cvc511TermManager9mkSetSortERK4Sort"]], "termmanager::mkskolem (c++ function)": [[49, "_CPPv4N4cvc511TermManager8mkSkolemE8SkolemIdRKNSt6vectorI4TermEE"]], "termmanager::mkstring (c++ function)": [[49, "_CPPv4N4cvc511TermManager8mkStringERKNSt6stringEb"], [49, "_CPPv4N4cvc511TermManager8mkStringERKNSt7wstringE"]], "termmanager::mkterm (c++ function)": [[49, "_CPPv4N4cvc511TermManager6mkTermE4KindRKNSt6vectorI4TermEE"], [49, "_CPPv4N4cvc511TermManager6mkTermERK2OpRKNSt6vectorI4TermEE"]], "termmanager::mktrue (c++ function)": [[49, "_CPPv4N4cvc511TermManager6mkTrueEv"]], "termmanager::mktuple (c++ function)": [[49, "_CPPv4N4cvc511TermManager7mkTupleERKNSt6vectorI4TermEE"]], "termmanager::mktuplesort (c++ function)": [[49, "_CPPv4N4cvc511TermManager11mkTupleSortERKNSt6vectorI4SortEE"]], "termmanager::mkuninterpretedsort (c++ function)": [[49, "_CPPv4N4cvc511TermManager19mkUninterpretedSortERKNSt8optionalINSt6stringEEE"]], "termmanager::mkuninterpretedsortconstructorsort (c++ function)": [[49, "_CPPv4N4cvc511TermManager34mkUninterpretedSortConstructorSortE6size_tRKNSt8optionalINSt6stringEEE"]], "termmanager::mkuniverseset (c++ function)": [[49, "_CPPv4N4cvc511TermManager13mkUniverseSetERK4Sort"]], "termmanager::mkunresolveddatatypesort (c++ function)": [[49, "_CPPv4N4cvc511TermManager24mkUnresolvedDatatypeSortERKNSt6stringE6size_t"]], "termmanager::mkvar (c++ function)": [[49, "_CPPv4N4cvc511TermManager5mkVarERK4SortRKNSt8optionalINSt6stringEEE"]], "termmanager::printstatisticssafe (c++ function)": [[49, "_CPPv4NK4cvc511TermManager19printStatisticsSafeEi"]], "termmanager::~termmanager (c++ function)": [[49, "_CPPv4N4cvc511TermManagerD0Ev"]], "kind (c++ enum)": [[51, "_CPPv4N4cvc54KindE"]], "kind::abs (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind3ABSE"]], "kind::add (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind3ADDE"]], "kind::and (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind3ANDE"]], "kind::apply_constructor (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind17APPLY_CONSTRUCTORE"]], "kind::apply_selector (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind14APPLY_SELECTORE"]], "kind::apply_tester (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind12APPLY_TESTERE"]], "kind::apply_uf (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind8APPLY_UFE"]], "kind::apply_updater (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13APPLY_UPDATERE"]], "kind::arccosecant (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind11ARCCOSECANTE"]], "kind::arccosine (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind9ARCCOSINEE"]], "kind::arccotangent (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind12ARCCOTANGENTE"]], "kind::arcsecant (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind9ARCSECANTE"]], "kind::arcsine (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind7ARCSINEE"]], "kind::arctangent (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind10ARCTANGENTE"]], "kind::bag_card (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind8BAG_CARDE"]], "kind::bag_choose (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind10BAG_CHOOSEE"]], "kind::bag_count (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind9BAG_COUNTE"]], "kind::bag_difference_remove (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind21BAG_DIFFERENCE_REMOVEE"]], "kind::bag_difference_subtract (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind23BAG_DIFFERENCE_SUBTRACTE"]], "kind::bag_empty (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind9BAG_EMPTYE"]], "kind::bag_filter (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind10BAG_FILTERE"]], "kind::bag_fold (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind8BAG_FOLDE"]], "kind::bag_inter_min (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13BAG_INTER_MINE"]], "kind::bag_make (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind8BAG_MAKEE"]], "kind::bag_map (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind7BAG_MAPE"]], "kind::bag_member (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind10BAG_MEMBERE"]], "kind::bag_partition (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13BAG_PARTITIONE"]], "kind::bag_setof (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind9BAG_SETOFE"]], "kind::bag_subbag (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind10BAG_SUBBAGE"]], "kind::bag_union_disjoint (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind18BAG_UNION_DISJOINTE"]], "kind::bag_union_max (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13BAG_UNION_MAXE"]], "kind::bitvector_add (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13BITVECTOR_ADDE"]], "kind::bitvector_and (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13BITVECTOR_ANDE"]], "kind::bitvector_ashr (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind14BITVECTOR_ASHRE"]], "kind::bitvector_bit (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13BITVECTOR_BITE"]], "kind::bitvector_comp (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind14BITVECTOR_COMPE"]], "kind::bitvector_concat (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind16BITVECTOR_CONCATE"]], "kind::bitvector_extract (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind17BITVECTOR_EXTRACTE"]], "kind::bitvector_from_bools (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind20BITVECTOR_FROM_BOOLSE"]], "kind::bitvector_ite (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13BITVECTOR_ITEE"]], "kind::bitvector_lshr (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind14BITVECTOR_LSHRE"]], "kind::bitvector_mult (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind14BITVECTOR_MULTE"]], "kind::bitvector_nand (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind14BITVECTOR_NANDE"]], "kind::bitvector_neg (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13BITVECTOR_NEGE"]], "kind::bitvector_nego (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind14BITVECTOR_NEGOE"]], "kind::bitvector_nor (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13BITVECTOR_NORE"]], "kind::bitvector_not (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13BITVECTOR_NOTE"]], "kind::bitvector_or (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind12BITVECTOR_ORE"]], "kind::bitvector_redand (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind16BITVECTOR_REDANDE"]], "kind::bitvector_redor (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind15BITVECTOR_REDORE"]], "kind::bitvector_repeat (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind16BITVECTOR_REPEATE"]], "kind::bitvector_rotate_left (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind21BITVECTOR_ROTATE_LEFTE"]], "kind::bitvector_rotate_right (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind22BITVECTOR_ROTATE_RIGHTE"]], "kind::bitvector_saddo (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind15BITVECTOR_SADDOE"]], "kind::bitvector_sdiv (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind14BITVECTOR_SDIVE"]], "kind::bitvector_sdivo (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind15BITVECTOR_SDIVOE"]], "kind::bitvector_sge (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13BITVECTOR_SGEE"]], "kind::bitvector_sgt (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13BITVECTOR_SGTE"]], "kind::bitvector_shl (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13BITVECTOR_SHLE"]], "kind::bitvector_sign_extend (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind21BITVECTOR_SIGN_EXTENDE"]], "kind::bitvector_sle (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13BITVECTOR_SLEE"]], "kind::bitvector_slt (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13BITVECTOR_SLTE"]], "kind::bitvector_sltbv (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind15BITVECTOR_SLTBVE"]], "kind::bitvector_smod (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind14BITVECTOR_SMODE"]], "kind::bitvector_smulo (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind15BITVECTOR_SMULOE"]], "kind::bitvector_srem (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind14BITVECTOR_SREME"]], "kind::bitvector_ssubo (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind15BITVECTOR_SSUBOE"]], "kind::bitvector_sub (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13BITVECTOR_SUBE"]], "kind::bitvector_to_nat (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind16BITVECTOR_TO_NATE"]], "kind::bitvector_uaddo (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind15BITVECTOR_UADDOE"]], "kind::bitvector_udiv (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind14BITVECTOR_UDIVE"]], "kind::bitvector_uge (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13BITVECTOR_UGEE"]], "kind::bitvector_ugt (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13BITVECTOR_UGTE"]], "kind::bitvector_ule (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13BITVECTOR_ULEE"]], "kind::bitvector_ult (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13BITVECTOR_ULTE"]], "kind::bitvector_ultbv (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind15BITVECTOR_ULTBVE"]], "kind::bitvector_umulo (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind15BITVECTOR_UMULOE"]], "kind::bitvector_urem (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind14BITVECTOR_UREME"]], "kind::bitvector_usubo (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind15BITVECTOR_USUBOE"]], "kind::bitvector_xnor (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind14BITVECTOR_XNORE"]], "kind::bitvector_xor (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13BITVECTOR_XORE"]], "kind::bitvector_zero_extend (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind21BITVECTOR_ZERO_EXTENDE"]], "kind::cardinality_constraint (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind22CARDINALITY_CONSTRAINTE"]], "kind::constant (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind8CONSTANTE"]], "kind::const_array (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind11CONST_ARRAYE"]], "kind::const_bitvector (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind15CONST_BITVECTORE"]], "kind::const_boolean (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13CONST_BOOLEANE"]], "kind::const_finite_field (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind18CONST_FINITE_FIELDE"]], "kind::const_floatingpoint (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind19CONST_FLOATINGPOINTE"]], "kind::const_integer (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13CONST_INTEGERE"]], "kind::const_rational (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind14CONST_RATIONALE"]], "kind::const_roundingmode (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind18CONST_ROUNDINGMODEE"]], "kind::const_sequence (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind14CONST_SEQUENCEE"]], "kind::const_string (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind12CONST_STRINGE"]], "kind::cosecant (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind8COSECANTE"]], "kind::cosine (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind6COSINEE"]], "kind::cotangent (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind9COTANGENTE"]], "kind::distinct (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind8DISTINCTE"]], "kind::divisible (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind9DIVISIBLEE"]], "kind::division (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind8DIVISIONE"]], "kind::division_total (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind14DIVISION_TOTALE"]], "kind::equal (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind5EQUALE"]], "kind::eq_range (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind8EQ_RANGEE"]], "kind::exists (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind6EXISTSE"]], "kind::exponential (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind11EXPONENTIALE"]], "kind::finite_field_add (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind16FINITE_FIELD_ADDE"]], "kind::finite_field_bitsum (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind19FINITE_FIELD_BITSUME"]], "kind::finite_field_mult (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind17FINITE_FIELD_MULTE"]], "kind::finite_field_neg (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind16FINITE_FIELD_NEGE"]], "kind::floatingpoint_abs (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind17FLOATINGPOINT_ABSE"]], "kind::floatingpoint_add (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind17FLOATINGPOINT_ADDE"]], "kind::floatingpoint_div (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind17FLOATINGPOINT_DIVE"]], "kind::floatingpoint_eq (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind16FLOATINGPOINT_EQE"]], "kind::floatingpoint_fma (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind17FLOATINGPOINT_FMAE"]], "kind::floatingpoint_fp (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind16FLOATINGPOINT_FPE"]], "kind::floatingpoint_geq (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind17FLOATINGPOINT_GEQE"]], "kind::floatingpoint_gt (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind16FLOATINGPOINT_GTE"]], "kind::floatingpoint_is_inf (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind20FLOATINGPOINT_IS_INFE"]], "kind::floatingpoint_is_nan (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind20FLOATINGPOINT_IS_NANE"]], "kind::floatingpoint_is_neg (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind20FLOATINGPOINT_IS_NEGE"]], "kind::floatingpoint_is_normal (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind23FLOATINGPOINT_IS_NORMALE"]], "kind::floatingpoint_is_pos (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind20FLOATINGPOINT_IS_POSE"]], "kind::floatingpoint_is_subnormal (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind26FLOATINGPOINT_IS_SUBNORMALE"]], "kind::floatingpoint_is_zero (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind21FLOATINGPOINT_IS_ZEROE"]], "kind::floatingpoint_leq (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind17FLOATINGPOINT_LEQE"]], "kind::floatingpoint_lt (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind16FLOATINGPOINT_LTE"]], "kind::floatingpoint_max (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind17FLOATINGPOINT_MAXE"]], "kind::floatingpoint_min (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind17FLOATINGPOINT_MINE"]], "kind::floatingpoint_mult (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind18FLOATINGPOINT_MULTE"]], "kind::floatingpoint_neg (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind17FLOATINGPOINT_NEGE"]], "kind::floatingpoint_rem (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind17FLOATINGPOINT_REME"]], "kind::floatingpoint_rti (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind17FLOATINGPOINT_RTIE"]], "kind::floatingpoint_sqrt (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind18FLOATINGPOINT_SQRTE"]], "kind::floatingpoint_sub (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind17FLOATINGPOINT_SUBE"]], "kind::floatingpoint_to_fp_from_fp (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind27FLOATINGPOINT_TO_FP_FROM_FPE"]], "kind::floatingpoint_to_fp_from_ieee_bv (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind32FLOATINGPOINT_TO_FP_FROM_IEEE_BVE"]], "kind::floatingpoint_to_fp_from_real (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind29FLOATINGPOINT_TO_FP_FROM_REALE"]], "kind::floatingpoint_to_fp_from_sbv (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind28FLOATINGPOINT_TO_FP_FROM_SBVE"]], "kind::floatingpoint_to_fp_from_ubv (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind28FLOATINGPOINT_TO_FP_FROM_UBVE"]], "kind::floatingpoint_to_real (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind21FLOATINGPOINT_TO_REALE"]], "kind::floatingpoint_to_sbv (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind20FLOATINGPOINT_TO_SBVE"]], "kind::floatingpoint_to_ubv (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind20FLOATINGPOINT_TO_UBVE"]], "kind::forall (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind6FORALLE"]], "kind::geq (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind3GEQE"]], "kind::gt (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind2GTE"]], "kind::ho_apply (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind8HO_APPLYE"]], "kind::iand (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind4IANDE"]], "kind::implies (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind7IMPLIESE"]], "kind::inst_add_to_pool (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind16INST_ADD_TO_POOLE"]], "kind::inst_attribute (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind14INST_ATTRIBUTEE"]], "kind::inst_no_pattern (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind15INST_NO_PATTERNE"]], "kind::inst_pattern (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind12INST_PATTERNE"]], "kind::inst_pattern_list (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind17INST_PATTERN_LISTE"]], "kind::inst_pool (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind9INST_POOLE"]], "kind::internal_kind (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13INTERNAL_KINDE"]], "kind::ints_division (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13INTS_DIVISIONE"]], "kind::ints_division_total (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind19INTS_DIVISION_TOTALE"]], "kind::ints_modulus (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind12INTS_MODULUSE"]], "kind::ints_modulus_total (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind18INTS_MODULUS_TOTALE"]], "kind::int_to_bitvector (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind16INT_TO_BITVECTORE"]], "kind::is_integer (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind10IS_INTEGERE"]], "kind::ite (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind3ITEE"]], "kind::lambda (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind6LAMBDAE"]], "kind::last_kind (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind9LAST_KINDE"]], "kind::leq (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind3LEQE"]], "kind::lt (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind2LTE"]], "kind::match (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind5MATCHE"]], "kind::match_bind_case (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind15MATCH_BIND_CASEE"]], "kind::match_case (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind10MATCH_CASEE"]], "kind::mult (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind4MULTE"]], "kind::neg (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind3NEGE"]], "kind::not (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind3NOTE"]], "kind::nullable_lift (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13NULLABLE_LIFTE"]], "kind::null_term (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind9NULL_TERME"]], "kind::or (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind2ORE"]], "kind::pi (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind2PIE"]], "kind::pow (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind3POWE"]], "kind::pow2 (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind4POW2E"]], "kind::regexp_all (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind10REGEXP_ALLE"]], "kind::regexp_allchar (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind14REGEXP_ALLCHARE"]], "kind::regexp_complement (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind17REGEXP_COMPLEMENTE"]], "kind::regexp_concat (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13REGEXP_CONCATE"]], "kind::regexp_diff (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind11REGEXP_DIFFE"]], "kind::regexp_inter (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind12REGEXP_INTERE"]], "kind::regexp_loop (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind11REGEXP_LOOPE"]], "kind::regexp_none (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind11REGEXP_NONEE"]], "kind::regexp_opt (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind10REGEXP_OPTE"]], "kind::regexp_plus (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind11REGEXP_PLUSE"]], "kind::regexp_range (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind12REGEXP_RANGEE"]], "kind::regexp_repeat (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13REGEXP_REPEATE"]], "kind::regexp_star (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind11REGEXP_STARE"]], "kind::regexp_union (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind12REGEXP_UNIONE"]], "kind::relation_aggregate (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind18RELATION_AGGREGATEE"]], "kind::relation_group (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind14RELATION_GROUPE"]], "kind::relation_iden (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13RELATION_IDENE"]], "kind::relation_join (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13RELATION_JOINE"]], "kind::relation_join_image (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind19RELATION_JOIN_IMAGEE"]], "kind::relation_product (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind16RELATION_PRODUCTE"]], "kind::relation_project (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind16RELATION_PROJECTE"]], "kind::relation_table_join (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind19RELATION_TABLE_JOINE"]], "kind::relation_tclosure (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind17RELATION_TCLOSUREE"]], "kind::relation_transpose (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind18RELATION_TRANSPOSEE"]], "kind::secant (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind6SECANTE"]], "kind::select (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind6SELECTE"]], "kind::sep_emp (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind7SEP_EMPE"]], "kind::sep_nil (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind7SEP_NILE"]], "kind::sep_pto (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind7SEP_PTOE"]], "kind::sep_star (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind8SEP_STARE"]], "kind::sep_wand (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind8SEP_WANDE"]], "kind::seq_at (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind6SEQ_ATE"]], "kind::seq_concat (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind10SEQ_CONCATE"]], "kind::seq_contains (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind12SEQ_CONTAINSE"]], "kind::seq_extract (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind11SEQ_EXTRACTE"]], "kind::seq_indexof (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind11SEQ_INDEXOFE"]], "kind::seq_length (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind10SEQ_LENGTHE"]], "kind::seq_nth (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind7SEQ_NTHE"]], "kind::seq_prefix (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind10SEQ_PREFIXE"]], "kind::seq_replace (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind11SEQ_REPLACEE"]], "kind::seq_replace_all (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind15SEQ_REPLACE_ALLE"]], "kind::seq_rev (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind7SEQ_REVE"]], "kind::seq_suffix (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind10SEQ_SUFFIXE"]], "kind::seq_unit (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind8SEQ_UNITE"]], "kind::seq_update (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind10SEQ_UPDATEE"]], "kind::set_all (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind7SET_ALLE"]], "kind::set_card (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind8SET_CARDE"]], "kind::set_choose (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind10SET_CHOOSEE"]], "kind::set_complement (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind14SET_COMPLEMENTE"]], "kind::set_comprehension (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind17SET_COMPREHENSIONE"]], "kind::set_empty (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind9SET_EMPTYE"]], "kind::set_filter (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind10SET_FILTERE"]], "kind::set_fold (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind8SET_FOLDE"]], "kind::set_insert (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind10SET_INSERTE"]], "kind::set_inter (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind9SET_INTERE"]], "kind::set_is_empty (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind12SET_IS_EMPTYE"]], "kind::set_is_singleton (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind16SET_IS_SINGLETONE"]], "kind::set_map (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind7SET_MAPE"]], "kind::set_member (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind10SET_MEMBERE"]], "kind::set_minus (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind9SET_MINUSE"]], "kind::set_singleton (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13SET_SINGLETONE"]], "kind::set_some (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind8SET_SOMEE"]], "kind::set_subset (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind10SET_SUBSETE"]], "kind::set_union (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind9SET_UNIONE"]], "kind::set_universe (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind12SET_UNIVERSEE"]], "kind::sexpr (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind5SEXPRE"]], "kind::sine (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind4SINEE"]], "kind::skolem (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind6SKOLEME"]], "kind::skolem_add_to_pool (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind18SKOLEM_ADD_TO_POOLE"]], "kind::sqrt (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind4SQRTE"]], "kind::store (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind5STOREE"]], "kind::string_charat (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13STRING_CHARATE"]], "kind::string_concat (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13STRING_CONCATE"]], "kind::string_contains (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind15STRING_CONTAINSE"]], "kind::string_from_code (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind16STRING_FROM_CODEE"]], "kind::string_from_int (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind15STRING_FROM_INTE"]], "kind::string_indexof (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind14STRING_INDEXOFE"]], "kind::string_indexof_re (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind17STRING_INDEXOF_REE"]], "kind::string_in_regexp (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind16STRING_IN_REGEXPE"]], "kind::string_is_digit (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind15STRING_IS_DIGITE"]], "kind::string_length (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13STRING_LENGTHE"]], "kind::string_leq (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind10STRING_LEQE"]], "kind::string_lt (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind9STRING_LTE"]], "kind::string_prefix (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13STRING_PREFIXE"]], "kind::string_replace (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind14STRING_REPLACEE"]], "kind::string_replace_all (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind18STRING_REPLACE_ALLE"]], "kind::string_replace_re (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind17STRING_REPLACE_REE"]], "kind::string_replace_re_all (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind21STRING_REPLACE_RE_ALLE"]], "kind::string_rev (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind10STRING_REVE"]], "kind::string_substr (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13STRING_SUBSTRE"]], "kind::string_suffix (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13STRING_SUFFIXE"]], "kind::string_to_code (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind14STRING_TO_CODEE"]], "kind::string_to_int (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13STRING_TO_INTE"]], "kind::string_to_lower (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind15STRING_TO_LOWERE"]], "kind::string_to_regexp (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind16STRING_TO_REGEXPE"]], "kind::string_to_upper (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind15STRING_TO_UPPERE"]], "kind::string_update (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13STRING_UPDATEE"]], "kind::sub (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind3SUBE"]], "kind::table_aggregate (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind15TABLE_AGGREGATEE"]], "kind::table_group (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind11TABLE_GROUPE"]], "kind::table_join (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind10TABLE_JOINE"]], "kind::table_product (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13TABLE_PRODUCTE"]], "kind::table_project (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13TABLE_PROJECTE"]], "kind::tangent (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind7TANGENTE"]], "kind::to_integer (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind10TO_INTEGERE"]], "kind::to_real (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind7TO_REALE"]], "kind::tuple_project (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13TUPLE_PROJECTE"]], "kind::undefined_kind (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind14UNDEFINED_KINDE"]], "kind::uninterpreted_sort_value (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind24UNINTERPRETED_SORT_VALUEE"]], "kind::variable (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind8VARIABLEE"]], "kind::variable_list (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind13VARIABLE_LISTE"]], "kind::witness (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind7WITNESSE"]], "kind::xor (c++ enumerator)": [[51, "_CPPv4N4cvc54Kind3XORE"]], "std::hash (c++ struct)": [[51, "_CPPv4IENSt4hashIN4cvc54KindEEE"]], "std::hash::operator() (c++ function)": [[51, "_CPPv4NKSt4hashIN4cvc54KindEEclEN4cvc54KindE"]], "std::to_string (c++ function)": [[51, "_CPPv4NSt9to_stringEN4cvc54KindE"], [52, "_CPPv4NSt9to_stringEN4cvc55modes11ProofFormatE"], [52, "_CPPv4NSt9to_stringEN4cvc55modes14LearnedLitTypeE"], [52, "_CPPv4NSt9to_stringEN4cvc55modes14ProofComponentE"], [52, "_CPPv4NSt9to_stringEN4cvc55modes15BlockModelsModeE"], [52, "_CPPv4NSt9to_stringEN4cvc55modes15FindSynthTargetE"], [53, "_CPPv4NSt9to_stringEN4cvc516ProofRewriteRuleE"], [53, "_CPPv4NSt9to_stringEN4cvc59ProofRuleE"], [54, "_CPPv4NSt9to_stringEN4cvc512RoundingModeE"], [55, "_CPPv4NSt9to_stringEN4cvc58SortKindE"], [56, "_CPPv4NSt9to_stringEN4cvc518UnknownExplanationE"]], "modes::blockmodelsmode (c++ enum)": [[52, "_CPPv4N4cvc55modes15BlockModelsModeE"]], "modes::blockmodelsmode::literals (c++ enumerator)": [[52, "_CPPv4N4cvc55modes15BlockModelsMode8LITERALSE"]], "modes::blockmodelsmode::values (c++ enumerator)": [[52, "_CPPv4N4cvc55modes15BlockModelsMode6VALUESE"]], "modes::findsynthtarget (c++ enum)": [[52, "_CPPv4N4cvc55modes15FindSynthTargetE"]], "modes::findsynthtarget::enum (c++ enumerator)": [[52, "_CPPv4N4cvc55modes15FindSynthTarget4ENUME"]], "modes::findsynthtarget::query (c++ enumerator)": [[52, "_CPPv4N4cvc55modes15FindSynthTarget5QUERYE"]], "modes::findsynthtarget::rewrite (c++ enumerator)": [[52, "_CPPv4N4cvc55modes15FindSynthTarget7REWRITEE"]], "modes::findsynthtarget::rewrite_input (c++ enumerator)": [[52, "_CPPv4N4cvc55modes15FindSynthTarget13REWRITE_INPUTE"]], "modes::findsynthtarget::rewrite_unsound (c++ enumerator)": [[52, "_CPPv4N4cvc55modes15FindSynthTarget15REWRITE_UNSOUNDE"]], "modes::learnedlittype (c++ enum)": [[52, "_CPPv4N4cvc55modes14LearnedLitTypeE"]], "modes::learnedlittype::constant_prop (c++ enumerator)": [[52, "_CPPv4N4cvc55modes14LearnedLitType13CONSTANT_PROPE"]], "modes::learnedlittype::input (c++ enumerator)": [[52, "_CPPv4N4cvc55modes14LearnedLitType5INPUTE"]], "modes::learnedlittype::internal (c++ enumerator)": [[52, "_CPPv4N4cvc55modes14LearnedLitType8INTERNALE"]], "modes::learnedlittype::preprocess (c++ enumerator)": [[52, "_CPPv4N4cvc55modes14LearnedLitType10PREPROCESSE"]], "modes::learnedlittype::preprocess_solved (c++ enumerator)": [[52, "_CPPv4N4cvc55modes14LearnedLitType17PREPROCESS_SOLVEDE"]], "modes::learnedlittype::solvable (c++ enumerator)": [[52, "_CPPv4N4cvc55modes14LearnedLitType8SOLVABLEE"]], "modes::learnedlittype::unknown (c++ enumerator)": [[52, "_CPPv4N4cvc55modes14LearnedLitType7UNKNOWNE"]], "modes::proofcomponent (c++ enum)": [[52, "_CPPv4N4cvc55modes14ProofComponentE"]], "modes::proofcomponent::full (c++ enumerator)": [[52, "_CPPv4N4cvc55modes14ProofComponent4FULLE"]], "modes::proofcomponent::preprocess (c++ enumerator)": [[52, "_CPPv4N4cvc55modes14ProofComponent10PREPROCESSE"]], "modes::proofcomponent::raw_preprocess (c++ enumerator)": [[52, "_CPPv4N4cvc55modes14ProofComponent14RAW_PREPROCESSE"]], "modes::proofcomponent::sat (c++ enumerator)": [[52, "_CPPv4N4cvc55modes14ProofComponent3SATE"]], "modes::proofcomponent::theory_lemmas (c++ enumerator)": [[52, "_CPPv4N4cvc55modes14ProofComponent13THEORY_LEMMASE"]], "modes::proofformat (c++ enum)": [[52, "_CPPv4N4cvc55modes11ProofFormatE"]], "modes::proofformat::alethe (c++ enumerator)": [[52, "_CPPv4N4cvc55modes11ProofFormat6ALETHEE"]], "modes::proofformat::cpc (c++ enumerator)": [[52, "_CPPv4N4cvc55modes11ProofFormat3CPCE"]], "modes::proofformat::default (c++ enumerator)": [[52, "_CPPv4N4cvc55modes11ProofFormat7DEFAULTE"]], "modes::proofformat::dot (c++ enumerator)": [[52, "_CPPv4N4cvc55modes11ProofFormat3DOTE"]], "modes::proofformat::lfsc (c++ enumerator)": [[52, "_CPPv4N4cvc55modes11ProofFormat4LFSCE"]], "modes::proofformat::none (c++ enumerator)": [[52, "_CPPv4N4cvc55modes11ProofFormat4NONEE"]], "modes::operator<< (c++ function)": [[52, "_CPPv4N4cvc55modeslsERNSt7ostreamE11ProofFormat"], [52, "_CPPv4N4cvc55modeslsERNSt7ostreamE14LearnedLitType"], [52, "_CPPv4N4cvc55modeslsERNSt7ostreamE14ProofComponent"], [52, "_CPPv4N4cvc55modeslsERNSt7ostreamE15BlockModelsMode"], [52, "_CPPv4N4cvc55modeslsERNSt7ostreamE15FindSynthTarget"]], "proofrewriterule (c++ enum)": [[53, "_CPPv4N4cvc516ProofRewriteRuleE"]], "proofrewriterule::arith_abs_elim_int (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18ARITH_ABS_ELIM_INTE"]], "proofrewriterule::arith_abs_elim_real (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19ARITH_ABS_ELIM_REALE"]], "proofrewriterule::arith_abs_eq (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule12ARITH_ABS_EQE"]], "proofrewriterule::arith_abs_int_gt (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16ARITH_ABS_INT_GTE"]], "proofrewriterule::arith_abs_real_gt (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17ARITH_ABS_REAL_GTE"]], "proofrewriterule::arith_cosecent_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19ARITH_COSECENT_ELIME"]], "proofrewriterule::arith_cosine_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17ARITH_COSINE_ELIME"]], "proofrewriterule::arith_cotangent_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule20ARITH_COTANGENT_ELIME"]], "proofrewriterule::arith_div_elim_to_real1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule23ARITH_DIV_ELIM_TO_REAL1E"]], "proofrewriterule::arith_div_elim_to_real2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule23ARITH_DIV_ELIM_TO_REAL2E"]], "proofrewriterule::arith_div_total_int (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19ARITH_DIV_TOTAL_INTE"]], "proofrewriterule::arith_div_total_real (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule20ARITH_DIV_TOTAL_REALE"]], "proofrewriterule::arith_div_total_zero_int (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule24ARITH_DIV_TOTAL_ZERO_INTE"]], "proofrewriterule::arith_div_total_zero_real (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule25ARITH_DIV_TOTAL_ZERO_REALE"]], "proofrewriterule::arith_elim_gt (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13ARITH_ELIM_GTE"]], "proofrewriterule::arith_elim_int_gt (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17ARITH_ELIM_INT_GTE"]], "proofrewriterule::arith_elim_int_lt (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17ARITH_ELIM_INT_LTE"]], "proofrewriterule::arith_elim_leq (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14ARITH_ELIM_LEQE"]], "proofrewriterule::arith_elim_lt (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13ARITH_ELIM_LTE"]], "proofrewriterule::arith_eq_elim_int (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17ARITH_EQ_ELIM_INTE"]], "proofrewriterule::arith_eq_elim_real (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18ARITH_EQ_ELIM_REALE"]], "proofrewriterule::arith_geq_norm1_int (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19ARITH_GEQ_NORM1_INTE"]], "proofrewriterule::arith_geq_norm1_real (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule20ARITH_GEQ_NORM1_REALE"]], "proofrewriterule::arith_geq_norm2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule15ARITH_GEQ_NORM2E"]], "proofrewriterule::arith_geq_tighten (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17ARITH_GEQ_TIGHTENE"]], "proofrewriterule::arith_int_div_total (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19ARITH_INT_DIV_TOTALE"]], "proofrewriterule::arith_int_div_total_one (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule23ARITH_INT_DIV_TOTAL_ONEE"]], "proofrewriterule::arith_int_div_total_zero (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule24ARITH_INT_DIV_TOTAL_ZEROE"]], "proofrewriterule::arith_int_mod_total (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19ARITH_INT_MOD_TOTALE"]], "proofrewriterule::arith_int_mod_total_one (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule23ARITH_INT_MOD_TOTAL_ONEE"]], "proofrewriterule::arith_int_mod_total_zero (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule24ARITH_INT_MOD_TOTAL_ZEROE"]], "proofrewriterule::arith_leq_norm (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14ARITH_LEQ_NORME"]], "proofrewriterule::arith_mult_dist (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule15ARITH_MULT_DISTE"]], "proofrewriterule::arith_mult_flatten (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18ARITH_MULT_FLATTENE"]], "proofrewriterule::arith_mul_one (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13ARITH_MUL_ONEE"]], "proofrewriterule::arith_mul_zero (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14ARITH_MUL_ZEROE"]], "proofrewriterule::arith_pi_not_int (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16ARITH_PI_NOT_INTE"]], "proofrewriterule::arith_plus_flatten (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18ARITH_PLUS_FLATTENE"]], "proofrewriterule::arith_pow_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14ARITH_POW_ELIME"]], "proofrewriterule::arith_refl_geq (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14ARITH_REFL_GEQE"]], "proofrewriterule::arith_refl_gt (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13ARITH_REFL_GTE"]], "proofrewriterule::arith_refl_leq (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14ARITH_REFL_LEQE"]], "proofrewriterule::arith_refl_lt (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13ARITH_REFL_LTE"]], "proofrewriterule::arith_secent_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17ARITH_SECENT_ELIME"]], "proofrewriterule::arith_sine_pi2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14ARITH_SINE_PI2E"]], "proofrewriterule::arith_sine_zero (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule15ARITH_SINE_ZEROE"]], "proofrewriterule::arith_string_pred_entail (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule24ARITH_STRING_PRED_ENTAILE"]], "proofrewriterule::arith_string_pred_safe_approx (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule29ARITH_STRING_PRED_SAFE_APPROXE"]], "proofrewriterule::arith_tangent_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18ARITH_TANGENT_ELIME"]], "proofrewriterule::arith_to_int_elim_to_real (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule25ARITH_TO_INT_ELIM_TO_REALE"]], "proofrewriterule::arith_to_real_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18ARITH_TO_REAL_ELIME"]], "proofrewriterule::arrays_eq_range_expand (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule22ARRAYS_EQ_RANGE_EXPANDE"]], "proofrewriterule::arrays_select_const (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19ARRAYS_SELECT_CONSTE"]], "proofrewriterule::array_read_over_write (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule21ARRAY_READ_OVER_WRITEE"]], "proofrewriterule::array_read_over_write2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule22ARRAY_READ_OVER_WRITE2E"]], "proofrewriterule::array_read_over_write_split (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule27ARRAY_READ_OVER_WRITE_SPLITE"]], "proofrewriterule::array_store_overwrite (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule21ARRAY_STORE_OVERWRITEE"]], "proofrewriterule::array_store_self (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16ARRAY_STORE_SELFE"]], "proofrewriterule::beta_reduce (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11BETA_REDUCEE"]], "proofrewriterule::bool_and_conf (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13BOOL_AND_CONFE"]], "proofrewriterule::bool_and_conf2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14BOOL_AND_CONF2E"]], "proofrewriterule::bool_and_de_morgan (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18BOOL_AND_DE_MORGANE"]], "proofrewriterule::bool_and_false (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14BOOL_AND_FALSEE"]], "proofrewriterule::bool_and_flatten (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16BOOL_AND_FLATTENE"]], "proofrewriterule::bool_double_not_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule20BOOL_DOUBLE_NOT_ELIME"]], "proofrewriterule::bool_eq_false (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13BOOL_EQ_FALSEE"]], "proofrewriterule::bool_eq_nrefl (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13BOOL_EQ_NREFLE"]], "proofrewriterule::bool_eq_true (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule12BOOL_EQ_TRUEE"]], "proofrewriterule::bool_implies_de_morgan (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule22BOOL_IMPLIES_DE_MORGANE"]], "proofrewriterule::bool_impl_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14BOOL_IMPL_ELIME"]], "proofrewriterule::bool_impl_false1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16BOOL_IMPL_FALSE1E"]], "proofrewriterule::bool_impl_false2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16BOOL_IMPL_FALSE2E"]], "proofrewriterule::bool_impl_true1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule15BOOL_IMPL_TRUE1E"]], "proofrewriterule::bool_impl_true2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule15BOOL_IMPL_TRUE2E"]], "proofrewriterule::bool_not_eq_elim1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17BOOL_NOT_EQ_ELIM1E"]], "proofrewriterule::bool_not_eq_elim2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17BOOL_NOT_EQ_ELIM2E"]], "proofrewriterule::bool_not_false (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14BOOL_NOT_FALSEE"]], "proofrewriterule::bool_not_ite_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17BOOL_NOT_ITE_ELIME"]], "proofrewriterule::bool_not_true (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13BOOL_NOT_TRUEE"]], "proofrewriterule::bool_not_xor_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17BOOL_NOT_XOR_ELIME"]], "proofrewriterule::bool_or_and_distrib (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19BOOL_OR_AND_DISTRIBE"]], "proofrewriterule::bool_or_de_morgan (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17BOOL_OR_DE_MORGANE"]], "proofrewriterule::bool_or_flatten (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule15BOOL_OR_FLATTENE"]], "proofrewriterule::bool_or_taut (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule12BOOL_OR_TAUTE"]], "proofrewriterule::bool_or_taut2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13BOOL_OR_TAUT2E"]], "proofrewriterule::bool_or_true (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule12BOOL_OR_TRUEE"]], "proofrewriterule::bool_xor_comm (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13BOOL_XOR_COMME"]], "proofrewriterule::bool_xor_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13BOOL_XOR_ELIME"]], "proofrewriterule::bool_xor_false (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14BOOL_XOR_FALSEE"]], "proofrewriterule::bool_xor_nrefl (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14BOOL_XOR_NREFLE"]], "proofrewriterule::bool_xor_refl (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13BOOL_XOR_REFLE"]], "proofrewriterule::bool_xor_true (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13BOOL_XOR_TRUEE"]], "proofrewriterule::bv_add_combine_like_terms (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule25BV_ADD_COMBINE_LIKE_TERMSE"]], "proofrewriterule::bv_add_two (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule10BV_ADD_TWOE"]], "proofrewriterule::bv_add_zero (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11BV_ADD_ZEROE"]], "proofrewriterule::bv_and_concat_pullup (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule20BV_AND_CONCAT_PULLUPE"]], "proofrewriterule::bv_and_flatten (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14BV_AND_FLATTENE"]], "proofrewriterule::bv_and_one (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule10BV_AND_ONEE"]], "proofrewriterule::bv_and_simplify_1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17BV_AND_SIMPLIFY_1E"]], "proofrewriterule::bv_and_simplify_2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17BV_AND_SIMPLIFY_2E"]], "proofrewriterule::bv_and_zero (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11BV_AND_ZEROE"]], "proofrewriterule::bv_ashr_by_const_0 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18BV_ASHR_BY_CONST_0E"]], "proofrewriterule::bv_ashr_by_const_1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18BV_ASHR_BY_CONST_1E"]], "proofrewriterule::bv_ashr_by_const_2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18BV_ASHR_BY_CONST_2E"]], "proofrewriterule::bv_ashr_zero (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule12BV_ASHR_ZEROE"]], "proofrewriterule::bv_bitwise_idemp_1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18BV_BITWISE_IDEMP_1E"]], "proofrewriterule::bv_bitwise_idemp_2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18BV_BITWISE_IDEMP_2E"]], "proofrewriterule::bv_bitwise_not_and (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18BV_BITWISE_NOT_ANDE"]], "proofrewriterule::bv_bitwise_not_or (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17BV_BITWISE_NOT_ORE"]], "proofrewriterule::bv_bitwise_slicing (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18BV_BITWISE_SLICINGE"]], "proofrewriterule::bv_commutative_add (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18BV_COMMUTATIVE_ADDE"]], "proofrewriterule::bv_commutative_and (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18BV_COMMUTATIVE_ANDE"]], "proofrewriterule::bv_commutative_mul (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18BV_COMMUTATIVE_MULE"]], "proofrewriterule::bv_commutative_or (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17BV_COMMUTATIVE_ORE"]], "proofrewriterule::bv_commutative_xor (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18BV_COMMUTATIVE_XORE"]], "proofrewriterule::bv_comp_eliminate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17BV_COMP_ELIMINATEE"]], "proofrewriterule::bv_concat_extract_merge (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule23BV_CONCAT_EXTRACT_MERGEE"]], "proofrewriterule::bv_concat_flatten (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17BV_CONCAT_FLATTENE"]], "proofrewriterule::bv_concat_merge_const (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule21BV_CONCAT_MERGE_CONSTE"]], "proofrewriterule::bv_concat_to_mult (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17BV_CONCAT_TO_MULTE"]], "proofrewriterule::bv_eq_extract_elim1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19BV_EQ_EXTRACT_ELIM1E"]], "proofrewriterule::bv_eq_extract_elim2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19BV_EQ_EXTRACT_ELIM2E"]], "proofrewriterule::bv_eq_extract_elim3 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19BV_EQ_EXTRACT_ELIM3E"]], "proofrewriterule::bv_extract_bitwise_and (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule22BV_EXTRACT_BITWISE_ANDE"]], "proofrewriterule::bv_extract_bitwise_or (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule21BV_EXTRACT_BITWISE_ORE"]], "proofrewriterule::bv_extract_bitwise_xor (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule22BV_EXTRACT_BITWISE_XORE"]], "proofrewriterule::bv_extract_concat_1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19BV_EXTRACT_CONCAT_1E"]], "proofrewriterule::bv_extract_concat_2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19BV_EXTRACT_CONCAT_2E"]], "proofrewriterule::bv_extract_concat_3 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19BV_EXTRACT_CONCAT_3E"]], "proofrewriterule::bv_extract_concat_4 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19BV_EXTRACT_CONCAT_4E"]], "proofrewriterule::bv_extract_extract (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18BV_EXTRACT_EXTRACTE"]], "proofrewriterule::bv_extract_mult_leading_bit (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule27BV_EXTRACT_MULT_LEADING_BITE"]], "proofrewriterule::bv_extract_not (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14BV_EXTRACT_NOTE"]], "proofrewriterule::bv_extract_sign_extend_1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule24BV_EXTRACT_SIGN_EXTEND_1E"]], "proofrewriterule::bv_extract_sign_extend_2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule24BV_EXTRACT_SIGN_EXTEND_2E"]], "proofrewriterule::bv_extract_sign_extend_3 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule24BV_EXTRACT_SIGN_EXTEND_3E"]], "proofrewriterule::bv_extract_whole (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16BV_EXTRACT_WHOLEE"]], "proofrewriterule::bv_ite_const_children_1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule23BV_ITE_CONST_CHILDREN_1E"]], "proofrewriterule::bv_ite_const_children_2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule23BV_ITE_CONST_CHILDREN_2E"]], "proofrewriterule::bv_ite_equal_children (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule21BV_ITE_EQUAL_CHILDRENE"]], "proofrewriterule::bv_ite_equal_cond_1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19BV_ITE_EQUAL_COND_1E"]], "proofrewriterule::bv_ite_equal_cond_2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19BV_ITE_EQUAL_COND_2E"]], "proofrewriterule::bv_ite_equal_cond_3 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19BV_ITE_EQUAL_COND_3E"]], "proofrewriterule::bv_ite_merge_else_else (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule22BV_ITE_MERGE_ELSE_ELSEE"]], "proofrewriterule::bv_ite_merge_else_if (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule20BV_ITE_MERGE_ELSE_IFE"]], "proofrewriterule::bv_ite_merge_then_else (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule22BV_ITE_MERGE_THEN_ELSEE"]], "proofrewriterule::bv_ite_merge_then_if (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule20BV_ITE_MERGE_THEN_IFE"]], "proofrewriterule::bv_lshr_by_const_0 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18BV_LSHR_BY_CONST_0E"]], "proofrewriterule::bv_lshr_by_const_1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18BV_LSHR_BY_CONST_1E"]], "proofrewriterule::bv_lshr_by_const_2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18BV_LSHR_BY_CONST_2E"]], "proofrewriterule::bv_lshr_zero (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule12BV_LSHR_ZEROE"]], "proofrewriterule::bv_lt_self (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule10BV_LT_SELFE"]], "proofrewriterule::bv_merge_sign_extend_1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule22BV_MERGE_SIGN_EXTEND_1E"]], "proofrewriterule::bv_merge_sign_extend_2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule22BV_MERGE_SIGN_EXTEND_2E"]], "proofrewriterule::bv_merge_sign_extend_3 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule22BV_MERGE_SIGN_EXTEND_3E"]], "proofrewriterule::bv_mult_distrib_1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17BV_MULT_DISTRIB_1E"]], "proofrewriterule::bv_mult_distrib_2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17BV_MULT_DISTRIB_2E"]], "proofrewriterule::bv_mult_distrib_const_add (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule25BV_MULT_DISTRIB_CONST_ADDE"]], "proofrewriterule::bv_mult_distrib_const_neg (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule25BV_MULT_DISTRIB_CONST_NEGE"]], "proofrewriterule::bv_mult_distrib_const_sub (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule25BV_MULT_DISTRIB_CONST_SUBE"]], "proofrewriterule::bv_mult_pow2_1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14BV_MULT_POW2_1E"]], "proofrewriterule::bv_mult_pow2_2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14BV_MULT_POW2_2E"]], "proofrewriterule::bv_mult_pow2_2b (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule15BV_MULT_POW2_2BE"]], "proofrewriterule::bv_mult_simplify (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16BV_MULT_SIMPLIFYE"]], "proofrewriterule::bv_mult_slt_mult_1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18BV_MULT_SLT_MULT_1E"]], "proofrewriterule::bv_mult_slt_mult_2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18BV_MULT_SLT_MULT_2E"]], "proofrewriterule::bv_mul_flatten (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14BV_MUL_FLATTENE"]], "proofrewriterule::bv_mul_one (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule10BV_MUL_ONEE"]], "proofrewriterule::bv_mul_zero (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11BV_MUL_ZEROE"]], "proofrewriterule::bv_nand_eliminate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17BV_NAND_ELIMINATEE"]], "proofrewriterule::bv_neg_add (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule10BV_NEG_ADDE"]], "proofrewriterule::bv_neg_idemp (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule12BV_NEG_IDEMPE"]], "proofrewriterule::bv_neg_mult (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11BV_NEG_MULTE"]], "proofrewriterule::bv_neg_sub (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule10BV_NEG_SUBE"]], "proofrewriterule::bv_nor_eliminate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16BV_NOR_ELIMINATEE"]], "proofrewriterule::bv_not_idemp (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule12BV_NOT_IDEMPE"]], "proofrewriterule::bv_not_neq (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule10BV_NOT_NEQE"]], "proofrewriterule::bv_not_sle (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule10BV_NOT_SLEE"]], "proofrewriterule::bv_not_ule (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule10BV_NOT_ULEE"]], "proofrewriterule::bv_not_ult (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule10BV_NOT_ULTE"]], "proofrewriterule::bv_not_xor (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule10BV_NOT_XORE"]], "proofrewriterule::bv_or_concat_pullup (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19BV_OR_CONCAT_PULLUPE"]], "proofrewriterule::bv_or_flatten (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13BV_OR_FLATTENE"]], "proofrewriterule::bv_or_one (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule9BV_OR_ONEE"]], "proofrewriterule::bv_or_simplify_1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16BV_OR_SIMPLIFY_1E"]], "proofrewriterule::bv_or_simplify_2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16BV_OR_SIMPLIFY_2E"]], "proofrewriterule::bv_or_zero (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule10BV_OR_ZEROE"]], "proofrewriterule::bv_redand_eliminate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19BV_REDAND_ELIMINATEE"]], "proofrewriterule::bv_redor_eliminate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18BV_REDOR_ELIMINATEE"]], "proofrewriterule::bv_repeat_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14BV_REPEAT_ELIME"]], "proofrewriterule::bv_rotate_left_eliminate_1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule26BV_ROTATE_LEFT_ELIMINATE_1E"]], "proofrewriterule::bv_rotate_left_eliminate_2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule26BV_ROTATE_LEFT_ELIMINATE_2E"]], "proofrewriterule::bv_rotate_right_eliminate_1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule27BV_ROTATE_RIGHT_ELIMINATE_1E"]], "proofrewriterule::bv_rotate_right_eliminate_2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule27BV_ROTATE_RIGHT_ELIMINATE_2E"]], "proofrewriterule::bv_saddo_eliminate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18BV_SADDO_ELIMINATEE"]], "proofrewriterule::bv_sdivo_eliminate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18BV_SDIVO_ELIMINATEE"]], "proofrewriterule::bv_sdiv_eliminate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17BV_SDIV_ELIMINATEE"]], "proofrewriterule::bv_sdiv_eliminate_fewer_bitwise_ops (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule35BV_SDIV_ELIMINATE_FEWER_BITWISE_OPSE"]], "proofrewriterule::bv_sge_eliminate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16BV_SGE_ELIMINATEE"]], "proofrewriterule::bv_sgt_eliminate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16BV_SGT_ELIMINATEE"]], "proofrewriterule::bv_shl_by_const_0 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17BV_SHL_BY_CONST_0E"]], "proofrewriterule::bv_shl_by_const_1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17BV_SHL_BY_CONST_1E"]], "proofrewriterule::bv_shl_by_const_2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17BV_SHL_BY_CONST_2E"]], "proofrewriterule::bv_shl_zero (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11BV_SHL_ZEROE"]], "proofrewriterule::bv_sign_extend_eliminate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule24BV_SIGN_EXTEND_ELIMINATEE"]], "proofrewriterule::bv_sign_extend_eliminate_0 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule26BV_SIGN_EXTEND_ELIMINATE_0E"]], "proofrewriterule::bv_sign_extend_eq_const_1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule25BV_SIGN_EXTEND_EQ_CONST_1E"]], "proofrewriterule::bv_sign_extend_eq_const_2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule25BV_SIGN_EXTEND_EQ_CONST_2E"]], "proofrewriterule::bv_sign_extend_ult_const_1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule26BV_SIGN_EXTEND_ULT_CONST_1E"]], "proofrewriterule::bv_sign_extend_ult_const_2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule26BV_SIGN_EXTEND_ULT_CONST_2E"]], "proofrewriterule::bv_sign_extend_ult_const_3 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule26BV_SIGN_EXTEND_ULT_CONST_3E"]], "proofrewriterule::bv_sign_extend_ult_const_4 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule26BV_SIGN_EXTEND_ULT_CONST_4E"]], "proofrewriterule::bv_sle_eliminate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16BV_SLE_ELIMINATEE"]], "proofrewriterule::bv_sle_self (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11BV_SLE_SELFE"]], "proofrewriterule::bv_slt_eliminate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16BV_SLT_ELIMINATEE"]], "proofrewriterule::bv_slt_zero (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11BV_SLT_ZEROE"]], "proofrewriterule::bv_smod_eliminate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17BV_SMOD_ELIMINATEE"]], "proofrewriterule::bv_smod_eliminate_fewer_bitwise_ops (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule35BV_SMOD_ELIMINATE_FEWER_BITWISE_OPSE"]], "proofrewriterule::bv_smulo_eliminate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18BV_SMULO_ELIMINATEE"]], "proofrewriterule::bv_srem_eliminate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17BV_SREM_ELIMINATEE"]], "proofrewriterule::bv_srem_eliminate_fewer_bitwise_ops (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule35BV_SREM_ELIMINATE_FEWER_BITWISE_OPSE"]], "proofrewriterule::bv_ssubo_eliminate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18BV_SSUBO_ELIMINATEE"]], "proofrewriterule::bv_sub_eliminate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16BV_SUB_ELIMINATEE"]], "proofrewriterule::bv_to_nat_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14BV_TO_NAT_ELIME"]], "proofrewriterule::bv_uaddo_eliminate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18BV_UADDO_ELIMINATEE"]], "proofrewriterule::bv_udiv_one (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11BV_UDIV_ONEE"]], "proofrewriterule::bv_udiv_pow2_not_one (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule20BV_UDIV_POW2_NOT_ONEE"]], "proofrewriterule::bv_udiv_zero (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule12BV_UDIV_ZEROE"]], "proofrewriterule::bv_uge_eliminate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16BV_UGE_ELIMINATEE"]], "proofrewriterule::bv_ugt_eliminate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16BV_UGT_ELIMINATEE"]], "proofrewriterule::bv_ugt_urem (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11BV_UGT_UREME"]], "proofrewriterule::bv_ule_eliminate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16BV_ULE_ELIMINATEE"]], "proofrewriterule::bv_ule_max (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule10BV_ULE_MAXE"]], "proofrewriterule::bv_ule_self (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11BV_ULE_SELFE"]], "proofrewriterule::bv_ule_zero (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11BV_ULE_ZEROE"]], "proofrewriterule::bv_ult_add_one (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14BV_ULT_ADD_ONEE"]], "proofrewriterule::bv_ult_one (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule10BV_ULT_ONEE"]], "proofrewriterule::bv_ult_ones (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11BV_ULT_ONESE"]], "proofrewriterule::bv_ult_self (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11BV_ULT_SELFE"]], "proofrewriterule::bv_ult_zero_1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13BV_ULT_ZERO_1E"]], "proofrewriterule::bv_ult_zero_2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13BV_ULT_ZERO_2E"]], "proofrewriterule::bv_umulo_eliminate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18BV_UMULO_ELIMINATEE"]], "proofrewriterule::bv_urem_one (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11BV_UREM_ONEE"]], "proofrewriterule::bv_urem_pow2_not_one (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule20BV_UREM_POW2_NOT_ONEE"]], "proofrewriterule::bv_urem_self (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule12BV_UREM_SELFE"]], "proofrewriterule::bv_usubo_eliminate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18BV_USUBO_ELIMINATEE"]], "proofrewriterule::bv_xnor_eliminate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17BV_XNOR_ELIMINATEE"]], "proofrewriterule::bv_xor_concat_pullup (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule20BV_XOR_CONCAT_PULLUPE"]], "proofrewriterule::bv_xor_duplicate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16BV_XOR_DUPLICATEE"]], "proofrewriterule::bv_xor_flatten (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14BV_XOR_FLATTENE"]], "proofrewriterule::bv_xor_not (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule10BV_XOR_NOTE"]], "proofrewriterule::bv_xor_ones (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11BV_XOR_ONESE"]], "proofrewriterule::bv_xor_simplify_1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17BV_XOR_SIMPLIFY_1E"]], "proofrewriterule::bv_xor_simplify_2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17BV_XOR_SIMPLIFY_2E"]], "proofrewriterule::bv_xor_simplify_3 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17BV_XOR_SIMPLIFY_3E"]], "proofrewriterule::bv_xor_zero (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11BV_XOR_ZEROE"]], "proofrewriterule::bv_zero_extend_eliminate (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule24BV_ZERO_EXTEND_ELIMINATEE"]], "proofrewriterule::bv_zero_extend_eliminate_0 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule26BV_ZERO_EXTEND_ELIMINATE_0E"]], "proofrewriterule::bv_zero_extend_eq_const_1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule25BV_ZERO_EXTEND_EQ_CONST_1E"]], "proofrewriterule::bv_zero_extend_eq_const_2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule25BV_ZERO_EXTEND_EQ_CONST_2E"]], "proofrewriterule::bv_zero_ule (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11BV_ZERO_ULEE"]], "proofrewriterule::distinct_binary_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule20DISTINCT_BINARY_ELIME"]], "proofrewriterule::distinct_card_conflict (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule22DISTINCT_CARD_CONFLICTE"]], "proofrewriterule::distinct_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13DISTINCT_ELIME"]], "proofrewriterule::dt_collapse_selector (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule20DT_COLLAPSE_SELECTORE"]], "proofrewriterule::dt_collapse_tester (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18DT_COLLAPSE_TESTERE"]], "proofrewriterule::dt_collapse_tester_singleton (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule28DT_COLLAPSE_TESTER_SINGLETONE"]], "proofrewriterule::dt_collapse_updater (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19DT_COLLAPSE_UPDATERE"]], "proofrewriterule::dt_cons_eq (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule10DT_CONS_EQE"]], "proofrewriterule::dt_cycle (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule8DT_CYCLEE"]], "proofrewriterule::dt_inst (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule7DT_INSTE"]], "proofrewriterule::dt_match_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13DT_MATCH_ELIME"]], "proofrewriterule::dt_updater_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule15DT_UPDATER_ELIME"]], "proofrewriterule::eq_cond_deq (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11EQ_COND_DEQE"]], "proofrewriterule::eq_ite_lift (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11EQ_ITE_LIFTE"]], "proofrewriterule::eq_refl (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule7EQ_REFLE"]], "proofrewriterule::eq_symm (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule7EQ_SYMME"]], "proofrewriterule::exists_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11EXISTS_ELIME"]], "proofrewriterule::int_to_bv_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14INT_TO_BV_ELIME"]], "proofrewriterule::ite_else_false (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14ITE_ELSE_FALSEE"]], "proofrewriterule::ite_else_lookahead (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18ITE_ELSE_LOOKAHEADE"]], "proofrewriterule::ite_else_lookahead_not_self (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule27ITE_ELSE_LOOKAHEAD_NOT_SELFE"]], "proofrewriterule::ite_else_lookahead_self (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule23ITE_ELSE_LOOKAHEAD_SELFE"]], "proofrewriterule::ite_else_neg_lookahead (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule22ITE_ELSE_NEG_LOOKAHEADE"]], "proofrewriterule::ite_else_true (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13ITE_ELSE_TRUEE"]], "proofrewriterule::ite_eq_branch (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13ITE_EQ_BRANCHE"]], "proofrewriterule::ite_expand (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule10ITE_EXPANDE"]], "proofrewriterule::ite_false_cond (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14ITE_FALSE_CONDE"]], "proofrewriterule::ite_neg_branch (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14ITE_NEG_BRANCHE"]], "proofrewriterule::ite_not_cond (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule12ITE_NOT_CONDE"]], "proofrewriterule::ite_then_false (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14ITE_THEN_FALSEE"]], "proofrewriterule::ite_then_lookahead (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18ITE_THEN_LOOKAHEADE"]], "proofrewriterule::ite_then_lookahead_not_self (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule27ITE_THEN_LOOKAHEAD_NOT_SELFE"]], "proofrewriterule::ite_then_lookahead_self (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule23ITE_THEN_LOOKAHEAD_SELFE"]], "proofrewriterule::ite_then_neg_lookahead (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule22ITE_THEN_NEG_LOOKAHEADE"]], "proofrewriterule::ite_then_true (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13ITE_THEN_TRUEE"]], "proofrewriterule::ite_true_cond (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13ITE_TRUE_CONDE"]], "proofrewriterule::lambda_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11LAMBDA_ELIME"]], "proofrewriterule::macro_arith_string_pred_entail (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule30MACRO_ARITH_STRING_PRED_ENTAILE"]], "proofrewriterule::macro_arrays_distinct_arrays (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule28MACRO_ARRAYS_DISTINCT_ARRAYSE"]], "proofrewriterule::macro_arrays_normalize_constant (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule31MACRO_ARRAYS_NORMALIZE_CONSTANTE"]], "proofrewriterule::macro_bool_nnf_norm (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19MACRO_BOOL_NNF_NORME"]], "proofrewriterule::macro_quant_merge_prenex (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule24MACRO_QUANT_MERGE_PRENEXE"]], "proofrewriterule::macro_quant_miniscope (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule21MACRO_QUANT_MINISCOPEE"]], "proofrewriterule::macro_quant_partition_connected_fv (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule34MACRO_QUANT_PARTITION_CONNECTED_FVE"]], "proofrewriterule::macro_quant_prenex (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18MACRO_QUANT_PRENEXE"]], "proofrewriterule::macro_quant_rewrite_body (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule24MACRO_QUANT_REWRITE_BODYE"]], "proofrewriterule::macro_quant_var_elim_eq (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule23MACRO_QUANT_VAR_ELIM_EQE"]], "proofrewriterule::macro_quant_var_elim_ineq (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule25MACRO_QUANT_VAR_ELIM_INEQE"]], "proofrewriterule::macro_substr_strip_sym_length (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule29MACRO_SUBSTR_STRIP_SYM_LENGTHE"]], "proofrewriterule::none (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule4NONEE"]], "proofrewriterule::quant_dt_split (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14QUANT_DT_SPLITE"]], "proofrewriterule::quant_merge_prenex (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18QUANT_MERGE_PRENEXE"]], "proofrewriterule::quant_miniscope_and (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19QUANT_MINISCOPE_ANDE"]], "proofrewriterule::quant_miniscope_ite (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19QUANT_MINISCOPE_ITEE"]], "proofrewriterule::quant_miniscope_or (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18QUANT_MINISCOPE_ORE"]], "proofrewriterule::quant_unused_vars (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17QUANT_UNUSED_VARSE"]], "proofrewriterule::quant_var_elim_eq (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17QUANT_VAR_ELIM_EQE"]], "proofrewriterule::re_all_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11RE_ALL_ELIME"]], "proofrewriterule::re_concat_emp (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13RE_CONCAT_EMPE"]], "proofrewriterule::re_concat_flatten (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17RE_CONCAT_FLATTENE"]], "proofrewriterule::re_concat_merge (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule15RE_CONCAT_MERGEE"]], "proofrewriterule::re_concat_none (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14RE_CONCAT_NONEE"]], "proofrewriterule::re_concat_star_repeat (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule21RE_CONCAT_STAR_REPEATE"]], "proofrewriterule::re_concat_star_swap (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19RE_CONCAT_STAR_SWAPE"]], "proofrewriterule::re_diff_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule12RE_DIFF_ELIME"]], "proofrewriterule::re_inter_all (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule12RE_INTER_ALLE"]], "proofrewriterule::re_inter_cstring (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16RE_INTER_CSTRINGE"]], "proofrewriterule::re_inter_cstring_neg (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule20RE_INTER_CSTRING_NEGE"]], "proofrewriterule::re_inter_dup (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule12RE_INTER_DUPE"]], "proofrewriterule::re_inter_flatten (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16RE_INTER_FLATTENE"]], "proofrewriterule::re_inter_none (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13RE_INTER_NONEE"]], "proofrewriterule::re_inter_union_inclusion (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule24RE_INTER_UNION_INCLUSIONE"]], "proofrewriterule::re_in_comp (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule10RE_IN_COMPE"]], "proofrewriterule::re_in_cstring (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13RE_IN_CSTRINGE"]], "proofrewriterule::re_in_empty (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11RE_IN_EMPTYE"]], "proofrewriterule::re_in_sigma (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11RE_IN_SIGMAE"]], "proofrewriterule::re_in_sigma_star (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16RE_IN_SIGMA_STARE"]], "proofrewriterule::re_loop_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule12RE_LOOP_ELIME"]], "proofrewriterule::re_loop_neg (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11RE_LOOP_NEGE"]], "proofrewriterule::re_opt_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11RE_OPT_ELIME"]], "proofrewriterule::re_star_none (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule12RE_STAR_NONEE"]], "proofrewriterule::re_union_all (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule12RE_UNION_ALLE"]], "proofrewriterule::re_union_dup (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule12RE_UNION_DUPE"]], "proofrewriterule::re_union_flatten (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16RE_UNION_FLATTENE"]], "proofrewriterule::re_union_none (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13RE_UNION_NONEE"]], "proofrewriterule::seq_len_empty (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13SEQ_LEN_EMPTYE"]], "proofrewriterule::seq_len_rev (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11SEQ_LEN_REVE"]], "proofrewriterule::seq_len_unit (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule12SEQ_LEN_UNITE"]], "proofrewriterule::seq_nth_unit (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule12SEQ_NTH_UNITE"]], "proofrewriterule::seq_rev_concat (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14SEQ_REV_CONCATE"]], "proofrewriterule::seq_rev_rev (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11SEQ_REV_REVE"]], "proofrewriterule::seq_rev_unit (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule12SEQ_REV_UNITE"]], "proofrewriterule::sets_card_emp (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13SETS_CARD_EMPE"]], "proofrewriterule::sets_card_minus (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule15SETS_CARD_MINUSE"]], "proofrewriterule::sets_card_singleton (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19SETS_CARD_SINGLETONE"]], "proofrewriterule::sets_card_union (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule15SETS_CARD_UNIONE"]], "proofrewriterule::sets_choose_singleton (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule21SETS_CHOOSE_SINGLETONE"]], "proofrewriterule::sets_eq_singleton_emp (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule21SETS_EQ_SINGLETON_EMPE"]], "proofrewriterule::sets_insert_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16SETS_INSERT_ELIME"]], "proofrewriterule::sets_inter_comm (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule15SETS_INTER_COMME"]], "proofrewriterule::sets_inter_emp1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule15SETS_INTER_EMP1E"]], "proofrewriterule::sets_inter_emp2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule15SETS_INTER_EMP2E"]], "proofrewriterule::sets_inter_member (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17SETS_INTER_MEMBERE"]], "proofrewriterule::sets_is_empty_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18SETS_IS_EMPTY_ELIME"]], "proofrewriterule::sets_is_empty_eval (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18SETS_IS_EMPTY_EVALE"]], "proofrewriterule::sets_member_emp (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule15SETS_MEMBER_EMPE"]], "proofrewriterule::sets_member_singleton (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule21SETS_MEMBER_SINGLETONE"]], "proofrewriterule::sets_minus_emp1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule15SETS_MINUS_EMP1E"]], "proofrewriterule::sets_minus_emp2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule15SETS_MINUS_EMP2E"]], "proofrewriterule::sets_minus_member (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17SETS_MINUS_MEMBERE"]], "proofrewriterule::sets_minus_self (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule15SETS_MINUS_SELFE"]], "proofrewriterule::sets_subset_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16SETS_SUBSET_ELIME"]], "proofrewriterule::sets_union_comm (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule15SETS_UNION_COMME"]], "proofrewriterule::sets_union_emp1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule15SETS_UNION_EMP1E"]], "proofrewriterule::sets_union_emp2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule15SETS_UNION_EMP2E"]], "proofrewriterule::sets_union_member (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17SETS_UNION_MEMBERE"]], "proofrewriterule::str_at_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11STR_AT_ELIME"]], "proofrewriterule::str_concat_clash (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16STR_CONCAT_CLASHE"]], "proofrewriterule::str_concat_clash2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17STR_CONCAT_CLASH2E"]], "proofrewriterule::str_concat_clash2_rev (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule21STR_CONCAT_CLASH2_REVE"]], "proofrewriterule::str_concat_clash_char (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule21STR_CONCAT_CLASH_CHARE"]], "proofrewriterule::str_concat_clash_char_rev (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule25STR_CONCAT_CLASH_CHAR_REVE"]], "proofrewriterule::str_concat_clash_rev (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule20STR_CONCAT_CLASH_REVE"]], "proofrewriterule::str_concat_flatten (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18STR_CONCAT_FLATTENE"]], "proofrewriterule::str_concat_flatten_eq (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule21STR_CONCAT_FLATTEN_EQE"]], "proofrewriterule::str_concat_flatten_eq_rev (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule25STR_CONCAT_FLATTEN_EQ_REVE"]], "proofrewriterule::str_concat_unify (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16STR_CONCAT_UNIFYE"]], "proofrewriterule::str_concat_unify_base (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule21STR_CONCAT_UNIFY_BASEE"]], "proofrewriterule::str_concat_unify_base_rev (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule25STR_CONCAT_UNIFY_BASE_REVE"]], "proofrewriterule::str_concat_unify_rev (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule20STR_CONCAT_UNIFY_REVE"]], "proofrewriterule::str_contains_concat_find (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule24STR_CONTAINS_CONCAT_FINDE"]], "proofrewriterule::str_contains_emp (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16STR_CONTAINS_EMPE"]], "proofrewriterule::str_contains_is_emp (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19STR_CONTAINS_IS_EMPE"]], "proofrewriterule::str_contains_leq_len_eq (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule23STR_CONTAINS_LEQ_LEN_EQE"]], "proofrewriterule::str_contains_lt_len (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19STR_CONTAINS_LT_LENE"]], "proofrewriterule::str_contains_refl (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17STR_CONTAINS_REFLE"]], "proofrewriterule::str_contains_split_char (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule23STR_CONTAINS_SPLIT_CHARE"]], "proofrewriterule::str_eq_ctn_false (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16STR_EQ_CTN_FALSEE"]], "proofrewriterule::str_eq_ctn_full_false1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule22STR_EQ_CTN_FULL_FALSE1E"]], "proofrewriterule::str_eq_ctn_full_false2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule22STR_EQ_CTN_FULL_FALSE2E"]], "proofrewriterule::str_indexof_contains_pre (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule24STR_INDEXOF_CONTAINS_PREE"]], "proofrewriterule::str_indexof_no_contains (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule23STR_INDEXOF_NO_CONTAINSE"]], "proofrewriterule::str_indexof_re_none (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19STR_INDEXOF_RE_NONEE"]], "proofrewriterule::str_indexof_self (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16STR_INDEXOF_SELFE"]], "proofrewriterule::str_in_re_concat_star_char (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule26STR_IN_RE_CONCAT_STAR_CHARE"]], "proofrewriterule::str_in_re_consume (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17STR_IN_RE_CONSUMEE"]], "proofrewriterule::str_in_re_contains (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18STR_IN_RE_CONTAINSE"]], "proofrewriterule::str_in_re_eval (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule14STR_IN_RE_EVALE"]], "proofrewriterule::str_in_re_inter_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule20STR_IN_RE_INTER_ELIME"]], "proofrewriterule::str_in_re_range_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule20STR_IN_RE_RANGE_ELIME"]], "proofrewriterule::str_in_re_req_unfold (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule20STR_IN_RE_REQ_UNFOLDE"]], "proofrewriterule::str_in_re_req_unfold_rev (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule24STR_IN_RE_REQ_UNFOLD_REVE"]], "proofrewriterule::str_in_re_sigma (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule15STR_IN_RE_SIGMAE"]], "proofrewriterule::str_in_re_sigma_star (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule20STR_IN_RE_SIGMA_STARE"]], "proofrewriterule::str_in_re_skip_unfold (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule21STR_IN_RE_SKIP_UNFOLDE"]], "proofrewriterule::str_in_re_skip_unfold_rev (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule25STR_IN_RE_SKIP_UNFOLD_REVE"]], "proofrewriterule::str_in_re_strip_char (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule20STR_IN_RE_STRIP_CHARE"]], "proofrewriterule::str_in_re_strip_char_rev (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule24STR_IN_RE_STRIP_CHAR_REVE"]], "proofrewriterule::str_in_re_strip_char_s_single (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule29STR_IN_RE_STRIP_CHAR_S_SINGLEE"]], "proofrewriterule::str_in_re_strip_char_s_single_rev (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule33STR_IN_RE_STRIP_CHAR_S_SINGLE_REVE"]], "proofrewriterule::str_in_re_strip_prefix (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule22STR_IN_RE_STRIP_PREFIXE"]], "proofrewriterule::str_in_re_strip_prefix_base (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule27STR_IN_RE_STRIP_PREFIX_BASEE"]], "proofrewriterule::str_in_re_strip_prefix_base_neg (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule31STR_IN_RE_STRIP_PREFIX_BASE_NEGE"]], "proofrewriterule::str_in_re_strip_prefix_base_neg_rev (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule35STR_IN_RE_STRIP_PREFIX_BASE_NEG_REVE"]], "proofrewriterule::str_in_re_strip_prefix_base_rev (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule31STR_IN_RE_STRIP_PREFIX_BASE_REVE"]], "proofrewriterule::str_in_re_strip_prefix_base_s_single (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule36STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLEE"]], "proofrewriterule::str_in_re_strip_prefix_base_s_single_neg (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule40STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEGE"]], "proofrewriterule::str_in_re_strip_prefix_base_s_single_neg_rev (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule44STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG_REVE"]], "proofrewriterule::str_in_re_strip_prefix_base_s_single_rev (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule40STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_REVE"]], "proofrewriterule::str_in_re_strip_prefix_neg (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule26STR_IN_RE_STRIP_PREFIX_NEGE"]], "proofrewriterule::str_in_re_strip_prefix_neg_rev (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule30STR_IN_RE_STRIP_PREFIX_NEG_REVE"]], "proofrewriterule::str_in_re_strip_prefix_rev (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule26STR_IN_RE_STRIP_PREFIX_REVE"]], "proofrewriterule::str_in_re_strip_prefix_srs_single (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule33STR_IN_RE_STRIP_PREFIX_SRS_SINGLEE"]], "proofrewriterule::str_in_re_strip_prefix_srs_single_neg (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule37STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEGE"]], "proofrewriterule::str_in_re_strip_prefix_srs_single_neg_rev (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule41STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG_REVE"]], "proofrewriterule::str_in_re_strip_prefix_srs_single_rev (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule37STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_REVE"]], "proofrewriterule::str_in_re_strip_prefix_sr_single (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule32STR_IN_RE_STRIP_PREFIX_SR_SINGLEE"]], "proofrewriterule::str_in_re_strip_prefix_sr_single_neg (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule36STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEGE"]], "proofrewriterule::str_in_re_strip_prefix_sr_single_neg_rev (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule40STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG_REVE"]], "proofrewriterule::str_in_re_strip_prefix_sr_single_rev (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule36STR_IN_RE_STRIP_PREFIX_SR_SINGLE_REVE"]], "proofrewriterule::str_in_re_strip_prefix_s_single (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule31STR_IN_RE_STRIP_PREFIX_S_SINGLEE"]], "proofrewriterule::str_in_re_strip_prefix_s_single_neg (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule35STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEGE"]], "proofrewriterule::str_in_re_strip_prefix_s_single_neg_rev (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule39STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG_REVE"]], "proofrewriterule::str_in_re_strip_prefix_s_single_rev (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule35STR_IN_RE_STRIP_PREFIX_S_SINGLE_REVE"]], "proofrewriterule::str_in_re_test_unfold (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule21STR_IN_RE_TEST_UNFOLDE"]], "proofrewriterule::str_in_re_test_unfold_rev (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule25STR_IN_RE_TEST_UNFOLD_REVE"]], "proofrewriterule::str_in_re_union_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule20STR_IN_RE_UNION_ELIME"]], "proofrewriterule::str_len_concat_rec (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18STR_LEN_CONCAT_RECE"]], "proofrewriterule::str_len_replace_inv (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19STR_LEN_REPLACE_INVE"]], "proofrewriterule::str_len_substr_in_range (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule23STR_LEN_SUBSTR_IN_RANGEE"]], "proofrewriterule::str_len_substr_ub1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18STR_LEN_SUBSTR_UB1E"]], "proofrewriterule::str_len_substr_ub2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18STR_LEN_SUBSTR_UB2E"]], "proofrewriterule::str_len_update_inv (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18STR_LEN_UPDATE_INVE"]], "proofrewriterule::str_leq_concat_false (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule20STR_LEQ_CONCAT_FALSEE"]], "proofrewriterule::str_leq_concat_true (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19STR_LEQ_CONCAT_TRUEE"]], "proofrewriterule::str_leq_empty (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule13STR_LEQ_EMPTYE"]], "proofrewriterule::str_leq_empty_eq (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16STR_LEQ_EMPTY_EQE"]], "proofrewriterule::str_lt_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule11STR_LT_ELIME"]], "proofrewriterule::str_prefixof_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17STR_PREFIXOF_ELIME"]], "proofrewriterule::str_prefixof_one (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16STR_PREFIXOF_ONEE"]], "proofrewriterule::str_replace_all_no_contains (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule27STR_REPLACE_ALL_NO_CONTAINSE"]], "proofrewriterule::str_replace_contains_pre (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule24STR_REPLACE_CONTAINS_PREE"]], "proofrewriterule::str_replace_empty (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17STR_REPLACE_EMPTYE"]], "proofrewriterule::str_replace_no_contains (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule23STR_REPLACE_NO_CONTAINSE"]], "proofrewriterule::str_replace_prefix (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18STR_REPLACE_PREFIXE"]], "proofrewriterule::str_replace_re_all_none (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule23STR_REPLACE_RE_ALL_NONEE"]], "proofrewriterule::str_replace_re_none (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19STR_REPLACE_RE_NONEE"]], "proofrewriterule::str_replace_self (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16STR_REPLACE_SELFE"]], "proofrewriterule::str_substr_combine1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19STR_SUBSTR_COMBINE1E"]], "proofrewriterule::str_substr_combine2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19STR_SUBSTR_COMBINE2E"]], "proofrewriterule::str_substr_combine3 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19STR_SUBSTR_COMBINE3E"]], "proofrewriterule::str_substr_combine4 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19STR_SUBSTR_COMBINE4E"]], "proofrewriterule::str_substr_concat1 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18STR_SUBSTR_CONCAT1E"]], "proofrewriterule::str_substr_concat2 (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18STR_SUBSTR_CONCAT2E"]], "proofrewriterule::str_substr_empty_range (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule22STR_SUBSTR_EMPTY_RANGEE"]], "proofrewriterule::str_substr_empty_start (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule22STR_SUBSTR_EMPTY_STARTE"]], "proofrewriterule::str_substr_empty_start_neg (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule26STR_SUBSTR_EMPTY_START_NEGE"]], "proofrewriterule::str_substr_empty_str (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule20STR_SUBSTR_EMPTY_STRE"]], "proofrewriterule::str_substr_eq_empty (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19STR_SUBSTR_EQ_EMPTYE"]], "proofrewriterule::str_substr_full (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule15STR_SUBSTR_FULLE"]], "proofrewriterule::str_substr_full_eq (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18STR_SUBSTR_FULL_EQE"]], "proofrewriterule::str_substr_len_include (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule22STR_SUBSTR_LEN_INCLUDEE"]], "proofrewriterule::str_substr_len_include_pre (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule26STR_SUBSTR_LEN_INCLUDE_PREE"]], "proofrewriterule::str_substr_len_skip (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19STR_SUBSTR_LEN_SKIPE"]], "proofrewriterule::str_suffixof_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule17STR_SUFFIXOF_ELIME"]], "proofrewriterule::str_suffixof_one (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16STR_SUFFIXOF_ONEE"]], "proofrewriterule::str_to_int_concat_neg_one (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule25STR_TO_INT_CONCAT_NEG_ONEE"]], "proofrewriterule::str_to_lower_concat (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19STR_TO_LOWER_CONCATE"]], "proofrewriterule::str_to_lower_from_int (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule21STR_TO_LOWER_FROM_INTE"]], "proofrewriterule::str_to_lower_len (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16STR_TO_LOWER_LENE"]], "proofrewriterule::str_to_lower_upper (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18STR_TO_LOWER_UPPERE"]], "proofrewriterule::str_to_upper_concat (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule19STR_TO_UPPER_CONCATE"]], "proofrewriterule::str_to_upper_from_int (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule21STR_TO_UPPER_FROM_INTE"]], "proofrewriterule::str_to_upper_len (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16STR_TO_UPPER_LENE"]], "proofrewriterule::str_to_upper_lower (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18STR_TO_UPPER_LOWERE"]], "proofrewriterule::uf_bv2nat_geq_elim (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule18UF_BV2NAT_GEQ_ELIME"]], "proofrewriterule::uf_bv2nat_int2bv (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16UF_BV2NAT_INT2BVE"]], "proofrewriterule::uf_bv2nat_int2bv_extend (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule23UF_BV2NAT_INT2BV_EXTENDE"]], "proofrewriterule::uf_bv2nat_int2bv_extract (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule24UF_BV2NAT_INT2BV_EXTRACTE"]], "proofrewriterule::uf_int2bv_bv2nat (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule16UF_INT2BV_BV2NATE"]], "proofrewriterule::uf_int2bv_bvule_equiv (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule21UF_INT2BV_BVULE_EQUIVE"]], "proofrewriterule::uf_int2bv_bvult_equiv (c++ enumerator)": [[53, "_CPPv4N4cvc516ProofRewriteRule21UF_INT2BV_BVULT_EQUIVE"]], "proofrule (c++ enum)": [[53, "_CPPv4N4cvc59ProofRuleE"]], "proofrule::aci_norm (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule8ACI_NORME"]], "proofrule::alethe_rule (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule11ALETHE_RULEE"]], "proofrule::alpha_equiv (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule11ALPHA_EQUIVE"]], "proofrule::and_elim (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule8AND_ELIME"]], "proofrule::and_intro (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule9AND_INTROE"]], "proofrule::arith_mult_abs_comparison (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule25ARITH_MULT_ABS_COMPARISONE"]], "proofrule::arith_mult_neg (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule14ARITH_MULT_NEGE"]], "proofrule::arith_mult_pos (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule14ARITH_MULT_POSE"]], "proofrule::arith_mult_sign (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule15ARITH_MULT_SIGNE"]], "proofrule::arith_mult_tangent (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule18ARITH_MULT_TANGENTE"]], "proofrule::arith_poly_norm (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule15ARITH_POLY_NORME"]], "proofrule::arith_poly_norm_rel (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule19ARITH_POLY_NORM_RELE"]], "proofrule::arith_reduction (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule15ARITH_REDUCTIONE"]], "proofrule::arith_sum_ub (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule12ARITH_SUM_UBE"]], "proofrule::arith_trans_exp_approx_above_neg (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule32ARITH_TRANS_EXP_APPROX_ABOVE_NEGE"]], "proofrule::arith_trans_exp_approx_above_pos (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule32ARITH_TRANS_EXP_APPROX_ABOVE_POSE"]], "proofrule::arith_trans_exp_approx_below (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule28ARITH_TRANS_EXP_APPROX_BELOWE"]], "proofrule::arith_trans_exp_neg (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule19ARITH_TRANS_EXP_NEGE"]], "proofrule::arith_trans_exp_positivity (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule26ARITH_TRANS_EXP_POSITIVITYE"]], "proofrule::arith_trans_exp_super_lin (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule25ARITH_TRANS_EXP_SUPER_LINE"]], "proofrule::arith_trans_exp_zero (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule20ARITH_TRANS_EXP_ZEROE"]], "proofrule::arith_trans_pi (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule14ARITH_TRANS_PIE"]], "proofrule::arith_trans_sine_approx_above_neg (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule33ARITH_TRANS_SINE_APPROX_ABOVE_NEGE"]], "proofrule::arith_trans_sine_approx_above_pos (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule33ARITH_TRANS_SINE_APPROX_ABOVE_POSE"]], "proofrule::arith_trans_sine_approx_below_neg (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule33ARITH_TRANS_SINE_APPROX_BELOW_NEGE"]], "proofrule::arith_trans_sine_approx_below_pos (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule33ARITH_TRANS_SINE_APPROX_BELOW_POSE"]], "proofrule::arith_trans_sine_bounds (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule23ARITH_TRANS_SINE_BOUNDSE"]], "proofrule::arith_trans_sine_shift (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule22ARITH_TRANS_SINE_SHIFTE"]], "proofrule::arith_trans_sine_symmetry (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule25ARITH_TRANS_SINE_SYMMETRYE"]], "proofrule::arith_trans_sine_tangent_pi (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule27ARITH_TRANS_SINE_TANGENT_PIE"]], "proofrule::arith_trans_sine_tangent_zero (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule29ARITH_TRANS_SINE_TANGENT_ZEROE"]], "proofrule::arith_trichotomy (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule16ARITH_TRICHOTOMYE"]], "proofrule::arrays_ext (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule10ARRAYS_EXTE"]], "proofrule::arrays_read_over_write (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule22ARRAYS_READ_OVER_WRITEE"]], "proofrule::arrays_read_over_write_1 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule24ARRAYS_READ_OVER_WRITE_1E"]], "proofrule::arrays_read_over_write_contra (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule29ARRAYS_READ_OVER_WRITE_CONTRAE"]], "proofrule::assume (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule6ASSUMEE"]], "proofrule::bv_bitblast_step (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule16BV_BITBLAST_STEPE"]], "proofrule::bv_eager_atom (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule13BV_EAGER_ATOME"]], "proofrule::chain_resolution (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule16CHAIN_RESOLUTIONE"]], "proofrule::cnf_and_neg (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule11CNF_AND_NEGE"]], "proofrule::cnf_and_pos (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule11CNF_AND_POSE"]], "proofrule::cnf_equiv_neg1 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule14CNF_EQUIV_NEG1E"]], "proofrule::cnf_equiv_neg2 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule14CNF_EQUIV_NEG2E"]], "proofrule::cnf_equiv_pos1 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule14CNF_EQUIV_POS1E"]], "proofrule::cnf_equiv_pos2 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule14CNF_EQUIV_POS2E"]], "proofrule::cnf_implies_neg1 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule16CNF_IMPLIES_NEG1E"]], "proofrule::cnf_implies_neg2 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule16CNF_IMPLIES_NEG2E"]], "proofrule::cnf_implies_pos (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule15CNF_IMPLIES_POSE"]], "proofrule::cnf_ite_neg1 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule12CNF_ITE_NEG1E"]], "proofrule::cnf_ite_neg2 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule12CNF_ITE_NEG2E"]], "proofrule::cnf_ite_neg3 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule12CNF_ITE_NEG3E"]], "proofrule::cnf_ite_pos1 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule12CNF_ITE_POS1E"]], "proofrule::cnf_ite_pos2 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule12CNF_ITE_POS2E"]], "proofrule::cnf_ite_pos3 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule12CNF_ITE_POS3E"]], "proofrule::cnf_or_neg (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule10CNF_OR_NEGE"]], "proofrule::cnf_or_pos (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule10CNF_OR_POSE"]], "proofrule::cnf_xor_neg1 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule12CNF_XOR_NEG1E"]], "proofrule::cnf_xor_neg2 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule12CNF_XOR_NEG2E"]], "proofrule::cnf_xor_pos1 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule12CNF_XOR_POS1E"]], "proofrule::cnf_xor_pos2 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule12CNF_XOR_POS2E"]], "proofrule::concat_conflict (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule15CONCAT_CONFLICTE"]], "proofrule::concat_conflict_deq (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule19CONCAT_CONFLICT_DEQE"]], "proofrule::concat_cprop (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule12CONCAT_CPROPE"]], "proofrule::concat_csplit (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule13CONCAT_CSPLITE"]], "proofrule::concat_eq (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule9CONCAT_EQE"]], "proofrule::concat_lprop (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule12CONCAT_LPROPE"]], "proofrule::concat_split (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule12CONCAT_SPLITE"]], "proofrule::concat_unify (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule12CONCAT_UNIFYE"]], "proofrule::cong (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule4CONGE"]], "proofrule::contra (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule6CONTRAE"]], "proofrule::drat_refutation (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule15DRAT_REFUTATIONE"]], "proofrule::dsl_rewrite (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule11DSL_REWRITEE"]], "proofrule::dt_clash (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule8DT_CLASHE"]], "proofrule::dt_split (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule8DT_SPLITE"]], "proofrule::encode_eq_intro (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule15ENCODE_EQ_INTROE"]], "proofrule::equiv_elim1 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule11EQUIV_ELIM1E"]], "proofrule::equiv_elim2 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule11EQUIV_ELIM2E"]], "proofrule::eq_resolve (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule10EQ_RESOLVEE"]], "proofrule::evaluate (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule8EVALUATEE"]], "proofrule::factoring (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule9FACTORINGE"]], "proofrule::false_elim (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule10FALSE_ELIME"]], "proofrule::false_intro (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule11FALSE_INTROE"]], "proofrule::ho_app_encode (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule13HO_APP_ENCODEE"]], "proofrule::ho_cong (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule7HO_CONGE"]], "proofrule::implies_elim (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule12IMPLIES_ELIME"]], "proofrule::instantiate (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule11INSTANTIATEE"]], "proofrule::int_tight_lb (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule12INT_TIGHT_LBE"]], "proofrule::int_tight_ub (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule12INT_TIGHT_UBE"]], "proofrule::ite_elim1 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule9ITE_ELIM1E"]], "proofrule::ite_elim2 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule9ITE_ELIM2E"]], "proofrule::ite_eq (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule6ITE_EQE"]], "proofrule::lfsc_rule (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule9LFSC_RULEE"]], "proofrule::macro_arith_scale_sum_ub (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule24MACRO_ARITH_SCALE_SUM_UBE"]], "proofrule::macro_bv_bitblast (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule17MACRO_BV_BITBLASTE"]], "proofrule::macro_resolution (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule16MACRO_RESOLUTIONE"]], "proofrule::macro_resolution_trust (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule22MACRO_RESOLUTION_TRUSTE"]], "proofrule::macro_rewrite (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule13MACRO_REWRITEE"]], "proofrule::macro_sr_eq_intro (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule17MACRO_SR_EQ_INTROE"]], "proofrule::macro_sr_pred_elim (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule18MACRO_SR_PRED_ELIME"]], "proofrule::macro_sr_pred_intro (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule19MACRO_SR_PRED_INTROE"]], "proofrule::macro_sr_pred_transform (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule23MACRO_SR_PRED_TRANSFORME"]], "proofrule::macro_string_inference (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule22MACRO_STRING_INFERENCEE"]], "proofrule::modus_ponens (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule12MODUS_PONENSE"]], "proofrule::nary_cong (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule9NARY_CONGE"]], "proofrule::not_and (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule7NOT_ANDE"]], "proofrule::not_equiv_elim1 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule15NOT_EQUIV_ELIM1E"]], "proofrule::not_equiv_elim2 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule15NOT_EQUIV_ELIM2E"]], "proofrule::not_implies_elim1 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule17NOT_IMPLIES_ELIM1E"]], "proofrule::not_implies_elim2 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule17NOT_IMPLIES_ELIM2E"]], "proofrule::not_ite_elim1 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule13NOT_ITE_ELIM1E"]], "proofrule::not_ite_elim2 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule13NOT_ITE_ELIM2E"]], "proofrule::not_not_elim (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule12NOT_NOT_ELIME"]], "proofrule::not_or_elim (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule11NOT_OR_ELIME"]], "proofrule::not_xor_elim1 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule13NOT_XOR_ELIM1E"]], "proofrule::not_xor_elim2 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule13NOT_XOR_ELIM2E"]], "proofrule::quant_var_reordering (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule20QUANT_VAR_REORDERINGE"]], "proofrule::refl (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule4REFLE"]], "proofrule::reordering (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule10REORDERINGE"]], "proofrule::resolution (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule10RESOLUTIONE"]], "proofrule::re_inter (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule8RE_INTERE"]], "proofrule::re_unfold_neg (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule13RE_UNFOLD_NEGE"]], "proofrule::re_unfold_neg_concat_fixed (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule26RE_UNFOLD_NEG_CONCAT_FIXEDE"]], "proofrule::re_unfold_pos (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule13RE_UNFOLD_POSE"]], "proofrule::sat_external_prove (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule18SAT_EXTERNAL_PROVEE"]], "proofrule::sat_refutation (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule14SAT_REFUTATIONE"]], "proofrule::scope (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule5SCOPEE"]], "proofrule::sets_ext (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule8SETS_EXTE"]], "proofrule::sets_filter_down (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule16SETS_FILTER_DOWNE"]], "proofrule::sets_filter_up (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule14SETS_FILTER_UPE"]], "proofrule::sets_singleton_inj (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule18SETS_SINGLETON_INJE"]], "proofrule::skolemize (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule9SKOLEMIZEE"]], "proofrule::skolem_intro (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule12SKOLEM_INTROE"]], "proofrule::split (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule5SPLITE"]], "proofrule::string_code_inj (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule15STRING_CODE_INJE"]], "proofrule::string_decompose (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule16STRING_DECOMPOSEE"]], "proofrule::string_eager_reduction (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule22STRING_EAGER_REDUCTIONE"]], "proofrule::string_ext (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule10STRING_EXTE"]], "proofrule::string_length_non_empty (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule23STRING_LENGTH_NON_EMPTYE"]], "proofrule::string_length_pos (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule17STRING_LENGTH_POSE"]], "proofrule::string_reduction (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule16STRING_REDUCTIONE"]], "proofrule::string_seq_unit_inj (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule19STRING_SEQ_UNIT_INJE"]], "proofrule::subs (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule4SUBSE"]], "proofrule::symm (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule4SYMME"]], "proofrule::theory_rewrite (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule14THEORY_REWRITEE"]], "proofrule::trans (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule5TRANSE"]], "proofrule::true_elim (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule9TRUE_ELIME"]], "proofrule::true_intro (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule10TRUE_INTROE"]], "proofrule::trust (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule5TRUSTE"]], "proofrule::trust_theory_rewrite (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule20TRUST_THEORY_REWRITEE"]], "proofrule::unknown (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule7UNKNOWNE"]], "proofrule::xor_elim1 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule9XOR_ELIM1E"]], "proofrule::xor_elim2 (c++ enumerator)": [[53, "_CPPv4N4cvc59ProofRule9XOR_ELIM2E"]], "std::hash (c++ struct)": [[53, "_CPPv4IENSt4hashIN4cvc516ProofRewriteRuleEEE"]], "std::hash::operator() (c++ function)": [[53, "_CPPv4NKSt4hashIN4cvc516ProofRewriteRuleEEclEN4cvc516ProofRewriteRuleE"]], "std::hash (c++ struct)": [[53, "_CPPv4IENSt4hashIN4cvc59ProofRuleEEE"]], "std::hash::operator() (c++ function)": [[53, "_CPPv4NKSt4hashIN4cvc59ProofRuleEEclEN4cvc59ProofRuleE"]], "roundingmode (c++ enum)": [[54, "_CPPv4N4cvc512RoundingModeE"]], "roundingmode::round_nearest_ties_to_away (c++ enumerator)": [[54, "_CPPv4N4cvc512RoundingMode26ROUND_NEAREST_TIES_TO_AWAYE"]], "roundingmode::round_nearest_ties_to_even (c++ enumerator)": [[54, "_CPPv4N4cvc512RoundingMode26ROUND_NEAREST_TIES_TO_EVENE"]], "roundingmode::round_toward_negative (c++ enumerator)": [[54, "_CPPv4N4cvc512RoundingMode21ROUND_TOWARD_NEGATIVEE"]], "roundingmode::round_toward_positive (c++ enumerator)": [[54, "_CPPv4N4cvc512RoundingMode21ROUND_TOWARD_POSITIVEE"]], "roundingmode::round_toward_zero (c++ enumerator)": [[54, "_CPPv4N4cvc512RoundingMode17ROUND_TOWARD_ZEROE"]], "sortkind (c++ enum)": [[55, "_CPPv4N4cvc58SortKindE"]], "sortkind::abstract_sort (c++ enumerator)": [[55, "_CPPv4N4cvc58SortKind13ABSTRACT_SORTE"]], "sortkind::array_sort (c++ enumerator)": [[55, "_CPPv4N4cvc58SortKind10ARRAY_SORTE"]], "sortkind::bag_sort (c++ enumerator)": [[55, "_CPPv4N4cvc58SortKind8BAG_SORTE"]], "sortkind::bitvector_sort (c++ enumerator)": [[55, "_CPPv4N4cvc58SortKind14BITVECTOR_SORTE"]], "sortkind::boolean_sort (c++ enumerator)": [[55, "_CPPv4N4cvc58SortKind12BOOLEAN_SORTE"]], "sortkind::datatype_sort (c++ enumerator)": [[55, "_CPPv4N4cvc58SortKind13DATATYPE_SORTE"]], "sortkind::finite_field_sort (c++ enumerator)": [[55, "_CPPv4N4cvc58SortKind17FINITE_FIELD_SORTE"]], "sortkind::floatingpoint_sort (c++ enumerator)": [[55, "_CPPv4N4cvc58SortKind18FLOATINGPOINT_SORTE"]], "sortkind::function_sort (c++ enumerator)": [[55, "_CPPv4N4cvc58SortKind13FUNCTION_SORTE"]], "sortkind::integer_sort (c++ enumerator)": [[55, "_CPPv4N4cvc58SortKind12INTEGER_SORTE"]], "sortkind::internal_sort_kind (c++ enumerator)": [[55, "_CPPv4N4cvc58SortKind18INTERNAL_SORT_KINDE"]], "sortkind::last_sort_kind (c++ enumerator)": [[55, "_CPPv4N4cvc58SortKind14LAST_SORT_KINDE"]], "sortkind::nullable_sort (c++ enumerator)": [[55, "_CPPv4N4cvc58SortKind13NULLABLE_SORTE"]], "sortkind::null_sort (c++ enumerator)": [[55, "_CPPv4N4cvc58SortKind9NULL_SORTE"]], "sortkind::real_sort (c++ enumerator)": [[55, "_CPPv4N4cvc58SortKind9REAL_SORTE"]], "sortkind::reglan_sort (c++ enumerator)": [[55, "_CPPv4N4cvc58SortKind11REGLAN_SORTE"]], "sortkind::roundingmode_sort (c++ enumerator)": [[55, "_CPPv4N4cvc58SortKind17ROUNDINGMODE_SORTE"]], "sortkind::sequence_sort (c++ enumerator)": [[55, "_CPPv4N4cvc58SortKind13SEQUENCE_SORTE"]], "sortkind::set_sort (c++ enumerator)": [[55, "_CPPv4N4cvc58SortKind8SET_SORTE"]], "sortkind::string_sort (c++ enumerator)": [[55, "_CPPv4N4cvc58SortKind11STRING_SORTE"]], "sortkind::tuple_sort (c++ enumerator)": [[55, "_CPPv4N4cvc58SortKind10TUPLE_SORTE"]], "sortkind::undefined_sort_kind (c++ enumerator)": [[55, "_CPPv4N4cvc58SortKind19UNDEFINED_SORT_KINDE"]], "sortkind::uninterpreted_sort (c++ enumerator)": [[55, "_CPPv4N4cvc58SortKind18UNINTERPRETED_SORTE"]], "std::hash (c++ struct)": [[55, "_CPPv4IENSt4hashIN4cvc58SortKindEEE"]], "std::hash::operator() (c++ function)": [[55, "_CPPv4NKSt4hashIN4cvc58SortKindEEclEN4cvc58SortKindE"]], "unknownexplanation (c++ enum)": [[56, "_CPPv4N4cvc518UnknownExplanationE"]], "unknownexplanation::incomplete (c++ enumerator)": [[56, "_CPPv4N4cvc518UnknownExplanation10INCOMPLETEE"]], "unknownexplanation::interrupted (c++ enumerator)": [[56, "_CPPv4N4cvc518UnknownExplanation11INTERRUPTEDE"]], "unknownexplanation::memout (c++ enumerator)": [[56, "_CPPv4N4cvc518UnknownExplanation6MEMOUTE"]], "unknownexplanation::other (c++ enumerator)": [[56, "_CPPv4N4cvc518UnknownExplanation5OTHERE"]], "unknownexplanation::requires_check_again (c++ enumerator)": [[56, "_CPPv4N4cvc518UnknownExplanation20REQUIRES_CHECK_AGAINE"]], "unknownexplanation::requires_full_check (c++ enumerator)": [[56, "_CPPv4N4cvc518UnknownExplanation19REQUIRES_FULL_CHECKE"]], "unknownexplanation::resourceout (c++ enumerator)": [[56, "_CPPv4N4cvc518UnknownExplanation11RESOURCEOUTE"]], "unknownexplanation::timeout (c++ enumerator)": [[56, "_CPPv4N4cvc518UnknownExplanation7TIMEOUTE"]], "unknownexplanation::unknown_reason (c++ enumerator)": [[56, "_CPPv4N4cvc518UnknownExplanation14UNKNOWN_REASONE"]], "unknownexplanation::unsupported (c++ enumerator)": [[56, "_CPPv4N4cvc518UnknownExplanation11UNSUPPORTEDE"]], "cvc5apiexception (c++ class)": [[57, "_CPPv4N4cvc516CVC5ApiExceptionE"]], "cvc5apiexception::cvc5apiexception (c++ function)": [[57, "_CPPv4N4cvc516CVC5ApiException16CVC5ApiExceptionERKNSt12stringstreamE"], [57, "_CPPv4N4cvc516CVC5ApiException16CVC5ApiExceptionERKNSt6stringE"]], "cvc5apiexception::getmessage (c++ function)": [[57, "_CPPv4NK4cvc516CVC5ApiException10getMessageEv"]], "cvc5apiexception::tostream (c++ function)": [[57, "_CPPv4NK4cvc516CVC5ApiException8toStreamERNSt7ostreamE"]], "cvc5apiexception::what (c++ function)": [[57, "_CPPv4NK4cvc516CVC5ApiException4whatEv"]], "cvc5apirecoverableexception (c++ class)": [[57, "_CPPv4N4cvc527CVC5ApiRecoverableExceptionE"]], "cvc5apirecoverableexception::cvc5apirecoverableexception (c++ function)": [[57, "_CPPv4N4cvc527CVC5ApiRecoverableException27CVC5ApiRecoverableExceptionERKNSt12stringstreamE"], [57, "_CPPv4N4cvc527CVC5ApiRecoverableException27CVC5ApiRecoverableExceptionERKNSt6stringE"]], "parser::parserexception (c++ class)": [[57, "_CPPv4N4cvc56parser15ParserExceptionE"]], "parser::parserexception::parserexception (c++ function)": [[57, "_CPPv4N4cvc56parser15ParserException15ParserExceptionEPKc"], [57, "_CPPv4N4cvc56parser15ParserException15ParserExceptionERKNSt6stringE"], [57, "_CPPv4N4cvc56parser15ParserException15ParserExceptionERKNSt6stringERKNSt6stringEmm"], [57, "_CPPv4N4cvc56parser15ParserException15ParserExceptionEv"]], "parser::parserexception::getcolumn (c++ function)": [[57, "_CPPv4NK4cvc56parser15ParserException9getColumnEv"]], "parser::parserexception::getfilename (c++ function)": [[57, "_CPPv4NK4cvc56parser15ParserException11getFilenameEv"]], "parser::parserexception::getline (c++ function)": [[57, "_CPPv4NK4cvc56parser15ParserException7getLineEv"]], "parser::parserexception::tostream (c++ function)": [[57, "_CPPv4NK4cvc56parser15ParserException8toStreamERNSt7ostreamE"]], "command (class in cvc5)": [[61, "cvc5.Command"]], "getcommandname() (cvc5.command method)": [[61, "cvc5.Command.getCommandName"]], "invoke() (cvc5.command method)": [[61, "cvc5.Command.invoke"]], "isnull() (cvc5.command method)": [[61, "cvc5.Command.isNull"]], "tostring() (cvc5.command method)": [[61, "cvc5.Command.toString"]], "datatype (class in cvc5)": [[62, "cvc5.Datatype"]], "__getitem__() (cvc5.datatype method)": [[62, "cvc5.Datatype.__getitem__"]], "__iter__() (cvc5.datatype method)": [[62, "cvc5.Datatype.__iter__"]], "getconstructor() (cvc5.datatype method)": [[62, "cvc5.Datatype.getConstructor"]], "getname() (cvc5.datatype method)": [[62, "cvc5.Datatype.getName"]], "getnumconstructors() (cvc5.datatype method)": [[62, "cvc5.Datatype.getNumConstructors"]], "getparameters() (cvc5.datatype method)": [[62, "cvc5.Datatype.getParameters"]], "getselector() (cvc5.datatype method)": [[62, "cvc5.Datatype.getSelector"]], "iscodatatype() (cvc5.datatype method)": [[62, "cvc5.Datatype.isCodatatype"]], "isfinite() (cvc5.datatype method)": [[62, "cvc5.Datatype.isFinite"]], "isnull() (cvc5.datatype method)": [[62, "cvc5.Datatype.isNull"]], "isparametric() (cvc5.datatype method)": [[62, "cvc5.Datatype.isParametric"]], "isrecord() (cvc5.datatype method)": [[62, "cvc5.Datatype.isRecord"]], "istuple() (cvc5.datatype method)": [[62, "cvc5.Datatype.isTuple"]], "iswellfounded() (cvc5.datatype method)": [[62, "cvc5.Datatype.isWellFounded"]], "datatypeconstructor (class in cvc5)": [[63, "cvc5.DatatypeConstructor"]], "__getitem__() (cvc5.datatypeconstructor method)": [[63, "cvc5.DatatypeConstructor.__getitem__"]], "__iter__() (cvc5.datatypeconstructor method)": [[63, "cvc5.DatatypeConstructor.__iter__"]], "getinstantiatedterm() (cvc5.datatypeconstructor method)": [[63, "cvc5.DatatypeConstructor.getInstantiatedTerm"]], "getname() (cvc5.datatypeconstructor method)": [[63, "cvc5.DatatypeConstructor.getName"]], "getnumselectors() (cvc5.datatypeconstructor method)": [[63, "cvc5.DatatypeConstructor.getNumSelectors"]], "getselector() (cvc5.datatypeconstructor method)": [[63, "cvc5.DatatypeConstructor.getSelector"]], "getterm() (cvc5.datatypeconstructor method)": [[63, "cvc5.DatatypeConstructor.getTerm"]], "gettesterterm() (cvc5.datatypeconstructor method)": [[63, "cvc5.DatatypeConstructor.getTesterTerm"]], "isnull() (cvc5.datatypeconstructor method)": [[63, "cvc5.DatatypeConstructor.isNull"]], "datatypeconstructordecl (class in cvc5)": [[64, "cvc5.DatatypeConstructorDecl"]], "addselector() (cvc5.datatypeconstructordecl method)": [[64, "cvc5.DatatypeConstructorDecl.addSelector"]], "addselectorself() (cvc5.datatypeconstructordecl method)": [[64, "cvc5.DatatypeConstructorDecl.addSelectorSelf"]], "addselectorunresolved() (cvc5.datatypeconstructordecl method)": [[64, "cvc5.DatatypeConstructorDecl.addSelectorUnresolved"]], "isnull() (cvc5.datatypeconstructordecl method)": [[64, "cvc5.DatatypeConstructorDecl.isNull"]], "datatypedecl (class in cvc5)": [[65, "cvc5.DatatypeDecl"]], "addconstructor() (cvc5.datatypedecl method)": [[65, "cvc5.DatatypeDecl.addConstructor"]], "getname() (cvc5.datatypedecl method)": [[65, "cvc5.DatatypeDecl.getName"]], "getnumconstructors() (cvc5.datatypedecl method)": [[65, "cvc5.DatatypeDecl.getNumConstructors"]], "isnull() (cvc5.datatypedecl method)": [[65, "cvc5.DatatypeDecl.isNull"]], "isparametric() (cvc5.datatypedecl method)": [[65, "cvc5.DatatypeDecl.isParametric"]], "datatypeselector (class in cvc5)": [[66, "cvc5.DatatypeSelector"]], "getcodomainsort() (cvc5.datatypeselector method)": [[66, "cvc5.DatatypeSelector.getCodomainSort"]], "getname() (cvc5.datatypeselector method)": [[66, "cvc5.DatatypeSelector.getName"]], "getterm() (cvc5.datatypeselector method)": [[66, "cvc5.DatatypeSelector.getTerm"]], "getupdaterterm() (cvc5.datatypeselector method)": [[66, "cvc5.DatatypeSelector.getUpdaterTerm"]], "isnull() (cvc5.datatypeselector method)": [[66, "cvc5.DatatypeSelector.isNull"]], "grammar (class in cvc5)": [[67, "cvc5.Grammar"]], "addanyconstant() (cvc5.grammar method)": [[67, "cvc5.Grammar.addAnyConstant"]], "addanyvariable() (cvc5.grammar method)": [[67, "cvc5.Grammar.addAnyVariable"]], "addrule() (cvc5.grammar method)": [[67, "cvc5.Grammar.addRule"]], "addrules() (cvc5.grammar method)": [[67, "cvc5.Grammar.addRules"]], "isnull() (cvc5.grammar method)": [[67, "cvc5.Grammar.isNull"]], "inputparser (class in cvc5)": [[68, "cvc5.InputParser"]], "appendincrementalstringinput() (cvc5.inputparser method)": [[68, "cvc5.InputParser.appendIncrementalStringInput"]], "done() (cvc5.inputparser method)": [[68, "cvc5.InputParser.done"]], "getsolver() (cvc5.inputparser method)": [[68, "cvc5.InputParser.getSolver"]], "getsymbolmanager() (cvc5.inputparser method)": [[68, "cvc5.InputParser.getSymbolManager"]], "nextcommand() (cvc5.inputparser method)": [[68, "cvc5.InputParser.nextCommand"]], "nextterm() (cvc5.inputparser method)": [[68, "cvc5.InputParser.nextTerm"]], "setfileinput() (cvc5.inputparser method)": [[68, "cvc5.InputParser.setFileInput"]], "setincrementalstringinput() (cvc5.inputparser method)": [[68, "cvc5.InputParser.setIncrementalStringInput"]], "setstringinput() (cvc5.inputparser method)": [[68, "cvc5.InputParser.setStringInput"]], "abs (cvc5.kind attribute)": [[69, "cvc5.Kind.ABS"]], "add (cvc5.kind attribute)": [[69, "cvc5.Kind.ADD"]], "and (cvc5.kind attribute)": [[69, "cvc5.Kind.AND"]], "apply_constructor (cvc5.kind attribute)": [[69, "cvc5.Kind.APPLY_CONSTRUCTOR"]], "apply_selector (cvc5.kind attribute)": [[69, "cvc5.Kind.APPLY_SELECTOR"]], "apply_tester (cvc5.kind attribute)": [[69, "cvc5.Kind.APPLY_TESTER"]], "apply_uf (cvc5.kind attribute)": [[69, "cvc5.Kind.APPLY_UF"]], "apply_updater (cvc5.kind attribute)": [[69, "cvc5.Kind.APPLY_UPDATER"]], "arccosecant (cvc5.kind attribute)": [[69, "cvc5.Kind.ARCCOSECANT"]], "arccosine (cvc5.kind attribute)": [[69, "cvc5.Kind.ARCCOSINE"]], "arccotangent (cvc5.kind attribute)": [[69, "cvc5.Kind.ARCCOTANGENT"]], "arcsecant (cvc5.kind attribute)": [[69, "cvc5.Kind.ARCSECANT"]], "arcsine (cvc5.kind attribute)": [[69, "cvc5.Kind.ARCSINE"]], "arctangent (cvc5.kind attribute)": [[69, "cvc5.Kind.ARCTANGENT"]], "bag_card (cvc5.kind attribute)": [[69, "cvc5.Kind.BAG_CARD"]], "bag_choose (cvc5.kind attribute)": [[69, "cvc5.Kind.BAG_CHOOSE"]], "bag_count (cvc5.kind attribute)": [[69, "cvc5.Kind.BAG_COUNT"]], "bag_difference_remove (cvc5.kind attribute)": [[69, "cvc5.Kind.BAG_DIFFERENCE_REMOVE"]], "bag_difference_subtract (cvc5.kind attribute)": [[69, "cvc5.Kind.BAG_DIFFERENCE_SUBTRACT"]], "bag_empty (cvc5.kind attribute)": [[69, "cvc5.Kind.BAG_EMPTY"]], "bag_filter (cvc5.kind attribute)": [[69, "cvc5.Kind.BAG_FILTER"]], "bag_fold (cvc5.kind attribute)": [[69, "cvc5.Kind.BAG_FOLD"]], "bag_inter_min (cvc5.kind attribute)": [[69, "cvc5.Kind.BAG_INTER_MIN"]], "bag_make (cvc5.kind attribute)": [[69, "cvc5.Kind.BAG_MAKE"]], "bag_map (cvc5.kind attribute)": [[69, "cvc5.Kind.BAG_MAP"]], "bag_member (cvc5.kind attribute)": [[69, "cvc5.Kind.BAG_MEMBER"]], "bag_partition (cvc5.kind attribute)": [[69, "cvc5.Kind.BAG_PARTITION"]], "bag_setof (cvc5.kind attribute)": [[69, "cvc5.Kind.BAG_SETOF"]], "bag_subbag (cvc5.kind attribute)": [[69, "cvc5.Kind.BAG_SUBBAG"]], "bag_union_disjoint (cvc5.kind attribute)": [[69, "cvc5.Kind.BAG_UNION_DISJOINT"]], "bag_union_max (cvc5.kind attribute)": [[69, "cvc5.Kind.BAG_UNION_MAX"]], "bitvector_add (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_ADD"]], "bitvector_and (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_AND"]], "bitvector_ashr (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_ASHR"]], "bitvector_bit (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_BIT"]], "bitvector_comp (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_COMP"]], "bitvector_concat (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_CONCAT"]], "bitvector_extract (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_EXTRACT"]], "bitvector_from_bools (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_FROM_BOOLS"]], "bitvector_ite (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_ITE"]], "bitvector_lshr (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_LSHR"]], "bitvector_mult (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_MULT"]], "bitvector_nand (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_NAND"]], "bitvector_neg (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_NEG"]], "bitvector_nego (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_NEGO"]], "bitvector_nor (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_NOR"]], "bitvector_not (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_NOT"]], "bitvector_or (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_OR"]], "bitvector_redand (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_REDAND"]], "bitvector_redor (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_REDOR"]], "bitvector_repeat (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_REPEAT"]], "bitvector_rotate_left (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_ROTATE_LEFT"]], "bitvector_rotate_right (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_ROTATE_RIGHT"]], "bitvector_saddo (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_SADDO"]], "bitvector_sdiv (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_SDIV"]], "bitvector_sdivo (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_SDIVO"]], "bitvector_sge (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_SGE"]], "bitvector_sgt (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_SGT"]], "bitvector_shl (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_SHL"]], "bitvector_sign_extend (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_SIGN_EXTEND"]], "bitvector_sle (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_SLE"]], "bitvector_slt (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_SLT"]], "bitvector_sltbv (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_SLTBV"]], "bitvector_smod (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_SMOD"]], "bitvector_smulo (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_SMULO"]], "bitvector_srem (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_SREM"]], "bitvector_ssubo (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_SSUBO"]], "bitvector_sub (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_SUB"]], "bitvector_to_nat (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_TO_NAT"]], "bitvector_uaddo (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_UADDO"]], "bitvector_udiv (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_UDIV"]], "bitvector_uge (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_UGE"]], "bitvector_ugt (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_UGT"]], "bitvector_ule (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_ULE"]], "bitvector_ult (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_ULT"]], "bitvector_ultbv (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_ULTBV"]], "bitvector_umulo (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_UMULO"]], "bitvector_urem (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_UREM"]], "bitvector_usubo (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_USUBO"]], "bitvector_xnor (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_XNOR"]], "bitvector_xor (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_XOR"]], "bitvector_zero_extend (cvc5.kind attribute)": [[69, "cvc5.Kind.BITVECTOR_ZERO_EXTEND"]], "cardinality_constraint (cvc5.kind attribute)": [[69, "cvc5.Kind.CARDINALITY_CONSTRAINT"]], "constant (cvc5.kind attribute)": [[69, "cvc5.Kind.CONSTANT"]], "const_array (cvc5.kind attribute)": [[69, "cvc5.Kind.CONST_ARRAY"]], "const_bitvector (cvc5.kind attribute)": [[69, "cvc5.Kind.CONST_BITVECTOR"]], "const_boolean (cvc5.kind attribute)": [[69, "cvc5.Kind.CONST_BOOLEAN"]], "const_finite_field (cvc5.kind attribute)": [[69, "cvc5.Kind.CONST_FINITE_FIELD"]], "const_floatingpoint (cvc5.kind attribute)": [[69, "cvc5.Kind.CONST_FLOATINGPOINT"]], "const_integer (cvc5.kind attribute)": [[69, "cvc5.Kind.CONST_INTEGER"]], "const_rational (cvc5.kind attribute)": [[69, "cvc5.Kind.CONST_RATIONAL"]], "const_roundingmode (cvc5.kind attribute)": [[69, "cvc5.Kind.CONST_ROUNDINGMODE"]], "const_sequence (cvc5.kind attribute)": [[69, "cvc5.Kind.CONST_SEQUENCE"]], "const_string (cvc5.kind attribute)": [[69, "cvc5.Kind.CONST_STRING"]], "cosecant (cvc5.kind attribute)": [[69, "cvc5.Kind.COSECANT"]], "cosine (cvc5.kind attribute)": [[69, "cvc5.Kind.COSINE"]], "cotangent (cvc5.kind attribute)": [[69, "cvc5.Kind.COTANGENT"]], "distinct (cvc5.kind attribute)": [[69, "cvc5.Kind.DISTINCT"]], "divisible (cvc5.kind attribute)": [[69, "cvc5.Kind.DIVISIBLE"]], "division (cvc5.kind attribute)": [[69, "cvc5.Kind.DIVISION"]], "division_total (cvc5.kind attribute)": [[69, "cvc5.Kind.DIVISION_TOTAL"]], "equal (cvc5.kind attribute)": [[69, "cvc5.Kind.EQUAL"]], "eq_range (cvc5.kind attribute)": [[69, "cvc5.Kind.EQ_RANGE"]], "exists (cvc5.kind attribute)": [[69, "cvc5.Kind.EXISTS"]], "exponential (cvc5.kind attribute)": [[69, "cvc5.Kind.EXPONENTIAL"]], "finite_field_add (cvc5.kind attribute)": [[69, "cvc5.Kind.FINITE_FIELD_ADD"]], "finite_field_bitsum (cvc5.kind attribute)": [[69, "cvc5.Kind.FINITE_FIELD_BITSUM"]], "finite_field_mult (cvc5.kind attribute)": [[69, "cvc5.Kind.FINITE_FIELD_MULT"]], "finite_field_neg (cvc5.kind attribute)": [[69, "cvc5.Kind.FINITE_FIELD_NEG"]], "floatingpoint_abs (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_ABS"]], "floatingpoint_add (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_ADD"]], "floatingpoint_div (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_DIV"]], "floatingpoint_eq (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_EQ"]], "floatingpoint_fma (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_FMA"]], "floatingpoint_fp (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_FP"]], "floatingpoint_geq (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_GEQ"]], "floatingpoint_gt (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_GT"]], "floatingpoint_is_inf (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_IS_INF"]], "floatingpoint_is_nan (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_IS_NAN"]], "floatingpoint_is_neg (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_IS_NEG"]], "floatingpoint_is_normal (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_IS_NORMAL"]], "floatingpoint_is_pos (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_IS_POS"]], "floatingpoint_is_subnormal (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_IS_SUBNORMAL"]], "floatingpoint_is_zero (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_IS_ZERO"]], "floatingpoint_leq (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_LEQ"]], "floatingpoint_lt (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_LT"]], "floatingpoint_max (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_MAX"]], "floatingpoint_min (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_MIN"]], "floatingpoint_mult (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_MULT"]], "floatingpoint_neg (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_NEG"]], "floatingpoint_rem (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_REM"]], "floatingpoint_rti (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_RTI"]], "floatingpoint_sqrt (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_SQRT"]], "floatingpoint_sub (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_SUB"]], "floatingpoint_to_fp_from_fp (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_TO_FP_FROM_FP"]], "floatingpoint_to_fp_from_ieee_bv (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_TO_FP_FROM_IEEE_BV"]], "floatingpoint_to_fp_from_real (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_TO_FP_FROM_REAL"]], "floatingpoint_to_fp_from_sbv (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_TO_FP_FROM_SBV"]], "floatingpoint_to_fp_from_ubv (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_TO_FP_FROM_UBV"]], "floatingpoint_to_real (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_TO_REAL"]], "floatingpoint_to_sbv (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_TO_SBV"]], "floatingpoint_to_ubv (cvc5.kind attribute)": [[69, "cvc5.Kind.FLOATINGPOINT_TO_UBV"]], "forall (cvc5.kind attribute)": [[69, "cvc5.Kind.FORALL"]], "geq (cvc5.kind attribute)": [[69, "cvc5.Kind.GEQ"]], "gt (cvc5.kind attribute)": [[69, "cvc5.Kind.GT"]], "ho_apply (cvc5.kind attribute)": [[69, "cvc5.Kind.HO_APPLY"]], "iand (cvc5.kind attribute)": [[69, "cvc5.Kind.IAND"]], "implies (cvc5.kind attribute)": [[69, "cvc5.Kind.IMPLIES"]], "inst_add_to_pool (cvc5.kind attribute)": [[69, "cvc5.Kind.INST_ADD_TO_POOL"]], "inst_attribute (cvc5.kind attribute)": [[69, "cvc5.Kind.INST_ATTRIBUTE"]], "inst_no_pattern (cvc5.kind attribute)": [[69, "cvc5.Kind.INST_NO_PATTERN"]], "inst_pattern (cvc5.kind attribute)": [[69, "cvc5.Kind.INST_PATTERN"]], "inst_pattern_list (cvc5.kind attribute)": [[69, "cvc5.Kind.INST_PATTERN_LIST"]], "inst_pool (cvc5.kind attribute)": [[69, "cvc5.Kind.INST_POOL"]], "internal_kind (cvc5.kind attribute)": [[69, "cvc5.Kind.INTERNAL_KIND"]], "ints_division (cvc5.kind attribute)": [[69, "cvc5.Kind.INTS_DIVISION"]], "ints_division_total (cvc5.kind attribute)": [[69, "cvc5.Kind.INTS_DIVISION_TOTAL"]], "ints_modulus (cvc5.kind attribute)": [[69, "cvc5.Kind.INTS_MODULUS"]], "ints_modulus_total (cvc5.kind attribute)": [[69, "cvc5.Kind.INTS_MODULUS_TOTAL"]], "int_to_bitvector (cvc5.kind attribute)": [[69, "cvc5.Kind.INT_TO_BITVECTOR"]], "is_integer (cvc5.kind attribute)": [[69, "cvc5.Kind.IS_INTEGER"]], "ite (cvc5.kind attribute)": [[69, "cvc5.Kind.ITE"]], "kind (class in cvc5)": [[69, "cvc5.Kind"]], "lambda (cvc5.kind attribute)": [[69, "cvc5.Kind.LAMBDA"]], "last_kind (cvc5.kind attribute)": [[69, "cvc5.Kind.LAST_KIND"]], "leq (cvc5.kind attribute)": [[69, "cvc5.Kind.LEQ"]], "lt (cvc5.kind attribute)": [[69, "cvc5.Kind.LT"]], "match (cvc5.kind attribute)": [[69, "cvc5.Kind.MATCH"]], "match_bind_case (cvc5.kind attribute)": [[69, "cvc5.Kind.MATCH_BIND_CASE"]], "match_case (cvc5.kind attribute)": [[69, "cvc5.Kind.MATCH_CASE"]], "mult (cvc5.kind attribute)": [[69, "cvc5.Kind.MULT"]], "neg (cvc5.kind attribute)": [[69, "cvc5.Kind.NEG"]], "not (cvc5.kind attribute)": [[69, "cvc5.Kind.NOT"]], "nullable_lift (cvc5.kind attribute)": [[69, "cvc5.Kind.NULLABLE_LIFT"]], "null_term (cvc5.kind attribute)": [[69, "cvc5.Kind.NULL_TERM"]], "or (cvc5.kind attribute)": [[69, "cvc5.Kind.OR"]], "pi (cvc5.kind attribute)": [[69, "cvc5.Kind.PI"]], "pow (cvc5.kind attribute)": [[69, "cvc5.Kind.POW"]], "pow2 (cvc5.kind attribute)": [[69, "cvc5.Kind.POW2"]], "regexp_all (cvc5.kind attribute)": [[69, "cvc5.Kind.REGEXP_ALL"]], "regexp_allchar (cvc5.kind attribute)": [[69, "cvc5.Kind.REGEXP_ALLCHAR"]], "regexp_complement (cvc5.kind attribute)": [[69, "cvc5.Kind.REGEXP_COMPLEMENT"]], "regexp_concat (cvc5.kind attribute)": [[69, "cvc5.Kind.REGEXP_CONCAT"]], "regexp_diff (cvc5.kind attribute)": [[69, "cvc5.Kind.REGEXP_DIFF"]], "regexp_inter (cvc5.kind attribute)": [[69, "cvc5.Kind.REGEXP_INTER"]], "regexp_loop (cvc5.kind attribute)": [[69, "cvc5.Kind.REGEXP_LOOP"]], "regexp_none (cvc5.kind attribute)": [[69, "cvc5.Kind.REGEXP_NONE"]], "regexp_opt (cvc5.kind attribute)": [[69, "cvc5.Kind.REGEXP_OPT"]], "regexp_plus (cvc5.kind attribute)": [[69, "cvc5.Kind.REGEXP_PLUS"]], "regexp_range (cvc5.kind attribute)": [[69, "cvc5.Kind.REGEXP_RANGE"]], "regexp_repeat (cvc5.kind attribute)": [[69, "cvc5.Kind.REGEXP_REPEAT"]], "regexp_star (cvc5.kind attribute)": [[69, "cvc5.Kind.REGEXP_STAR"]], "regexp_union (cvc5.kind attribute)": [[69, "cvc5.Kind.REGEXP_UNION"]], "relation_aggregate (cvc5.kind attribute)": [[69, "cvc5.Kind.RELATION_AGGREGATE"]], "relation_group (cvc5.kind attribute)": [[69, "cvc5.Kind.RELATION_GROUP"]], "relation_iden (cvc5.kind attribute)": [[69, "cvc5.Kind.RELATION_IDEN"]], "relation_join (cvc5.kind attribute)": [[69, "cvc5.Kind.RELATION_JOIN"]], "relation_join_image (cvc5.kind attribute)": [[69, "cvc5.Kind.RELATION_JOIN_IMAGE"]], "relation_product (cvc5.kind attribute)": [[69, "cvc5.Kind.RELATION_PRODUCT"]], "relation_project (cvc5.kind attribute)": [[69, "cvc5.Kind.RELATION_PROJECT"]], "relation_table_join (cvc5.kind attribute)": [[69, "cvc5.Kind.RELATION_TABLE_JOIN"]], "relation_tclosure (cvc5.kind attribute)": [[69, "cvc5.Kind.RELATION_TCLOSURE"]], "relation_transpose (cvc5.kind attribute)": [[69, "cvc5.Kind.RELATION_TRANSPOSE"]], "secant (cvc5.kind attribute)": [[69, "cvc5.Kind.SECANT"]], "select (cvc5.kind attribute)": [[69, "cvc5.Kind.SELECT"]], "sep_emp (cvc5.kind attribute)": [[69, "cvc5.Kind.SEP_EMP"]], "sep_nil (cvc5.kind attribute)": [[69, "cvc5.Kind.SEP_NIL"]], "sep_pto (cvc5.kind attribute)": [[69, "cvc5.Kind.SEP_PTO"]], "sep_star (cvc5.kind attribute)": [[69, "cvc5.Kind.SEP_STAR"]], "sep_wand (cvc5.kind attribute)": [[69, "cvc5.Kind.SEP_WAND"]], "seq_at (cvc5.kind attribute)": [[69, "cvc5.Kind.SEQ_AT"]], "seq_concat (cvc5.kind attribute)": [[69, "cvc5.Kind.SEQ_CONCAT"]], "seq_contains (cvc5.kind attribute)": [[69, "cvc5.Kind.SEQ_CONTAINS"]], "seq_extract (cvc5.kind attribute)": [[69, "cvc5.Kind.SEQ_EXTRACT"]], "seq_indexof (cvc5.kind attribute)": [[69, "cvc5.Kind.SEQ_INDEXOF"]], "seq_length (cvc5.kind attribute)": [[69, "cvc5.Kind.SEQ_LENGTH"]], "seq_nth (cvc5.kind attribute)": [[69, "cvc5.Kind.SEQ_NTH"]], "seq_prefix (cvc5.kind attribute)": [[69, "cvc5.Kind.SEQ_PREFIX"]], "seq_replace (cvc5.kind attribute)": [[69, "cvc5.Kind.SEQ_REPLACE"]], "seq_replace_all (cvc5.kind attribute)": [[69, "cvc5.Kind.SEQ_REPLACE_ALL"]], "seq_rev (cvc5.kind attribute)": [[69, "cvc5.Kind.SEQ_REV"]], "seq_suffix (cvc5.kind attribute)": [[69, "cvc5.Kind.SEQ_SUFFIX"]], "seq_unit (cvc5.kind attribute)": [[69, "cvc5.Kind.SEQ_UNIT"]], "seq_update (cvc5.kind attribute)": [[69, "cvc5.Kind.SEQ_UPDATE"]], "set_all (cvc5.kind attribute)": [[69, "cvc5.Kind.SET_ALL"]], "set_card (cvc5.kind attribute)": [[69, "cvc5.Kind.SET_CARD"]], "set_choose (cvc5.kind attribute)": [[69, "cvc5.Kind.SET_CHOOSE"]], "set_complement (cvc5.kind attribute)": [[69, "cvc5.Kind.SET_COMPLEMENT"]], "set_comprehension (cvc5.kind attribute)": [[69, "cvc5.Kind.SET_COMPREHENSION"]], "set_empty (cvc5.kind attribute)": [[69, "cvc5.Kind.SET_EMPTY"]], "set_filter (cvc5.kind attribute)": [[69, "cvc5.Kind.SET_FILTER"]], "set_fold (cvc5.kind attribute)": [[69, "cvc5.Kind.SET_FOLD"]], "set_insert (cvc5.kind attribute)": [[69, "cvc5.Kind.SET_INSERT"]], "set_inter (cvc5.kind attribute)": [[69, "cvc5.Kind.SET_INTER"]], "set_is_empty (cvc5.kind attribute)": [[69, "cvc5.Kind.SET_IS_EMPTY"]], "set_is_singleton (cvc5.kind attribute)": [[69, "cvc5.Kind.SET_IS_SINGLETON"]], "set_map (cvc5.kind attribute)": [[69, "cvc5.Kind.SET_MAP"]], "set_member (cvc5.kind attribute)": [[69, "cvc5.Kind.SET_MEMBER"]], "set_minus (cvc5.kind attribute)": [[69, "cvc5.Kind.SET_MINUS"]], "set_singleton (cvc5.kind attribute)": [[69, "cvc5.Kind.SET_SINGLETON"]], "set_some (cvc5.kind attribute)": [[69, "cvc5.Kind.SET_SOME"]], "set_subset (cvc5.kind attribute)": [[69, "cvc5.Kind.SET_SUBSET"]], "set_union (cvc5.kind attribute)": [[69, "cvc5.Kind.SET_UNION"]], "set_universe (cvc5.kind attribute)": [[69, "cvc5.Kind.SET_UNIVERSE"]], "sexpr (cvc5.kind attribute)": [[69, "cvc5.Kind.SEXPR"]], "sine (cvc5.kind attribute)": [[69, "cvc5.Kind.SINE"]], "skolem (cvc5.kind attribute)": [[69, "cvc5.Kind.SKOLEM"]], "skolem_add_to_pool (cvc5.kind attribute)": [[69, "cvc5.Kind.SKOLEM_ADD_TO_POOL"]], "sqrt (cvc5.kind attribute)": [[69, "cvc5.Kind.SQRT"]], "store (cvc5.kind attribute)": [[69, "cvc5.Kind.STORE"]], "string_charat (cvc5.kind attribute)": [[69, "cvc5.Kind.STRING_CHARAT"]], "string_concat (cvc5.kind attribute)": [[69, "cvc5.Kind.STRING_CONCAT"]], "string_contains (cvc5.kind attribute)": [[69, "cvc5.Kind.STRING_CONTAINS"]], "string_from_code (cvc5.kind attribute)": [[69, "cvc5.Kind.STRING_FROM_CODE"]], "string_from_int (cvc5.kind attribute)": [[69, "cvc5.Kind.STRING_FROM_INT"]], "string_indexof (cvc5.kind attribute)": [[69, "cvc5.Kind.STRING_INDEXOF"]], "string_indexof_re (cvc5.kind attribute)": [[69, "cvc5.Kind.STRING_INDEXOF_RE"]], "string_in_regexp (cvc5.kind attribute)": [[69, "cvc5.Kind.STRING_IN_REGEXP"]], "string_is_digit (cvc5.kind attribute)": [[69, "cvc5.Kind.STRING_IS_DIGIT"]], "string_length (cvc5.kind attribute)": [[69, "cvc5.Kind.STRING_LENGTH"]], "string_leq (cvc5.kind attribute)": [[69, "cvc5.Kind.STRING_LEQ"]], "string_lt (cvc5.kind attribute)": [[69, "cvc5.Kind.STRING_LT"]], "string_prefix (cvc5.kind attribute)": [[69, "cvc5.Kind.STRING_PREFIX"]], "string_replace (cvc5.kind attribute)": [[69, "cvc5.Kind.STRING_REPLACE"]], "string_replace_all (cvc5.kind attribute)": [[69, "cvc5.Kind.STRING_REPLACE_ALL"]], "string_replace_re (cvc5.kind attribute)": [[69, "cvc5.Kind.STRING_REPLACE_RE"]], "string_replace_re_all (cvc5.kind attribute)": [[69, "cvc5.Kind.STRING_REPLACE_RE_ALL"]], "string_rev (cvc5.kind attribute)": [[69, "cvc5.Kind.STRING_REV"]], "string_substr (cvc5.kind attribute)": [[69, "cvc5.Kind.STRING_SUBSTR"]], "string_suffix (cvc5.kind attribute)": [[69, "cvc5.Kind.STRING_SUFFIX"]], "string_to_code (cvc5.kind attribute)": [[69, "cvc5.Kind.STRING_TO_CODE"]], "string_to_int (cvc5.kind attribute)": [[69, "cvc5.Kind.STRING_TO_INT"]], "string_to_lower (cvc5.kind attribute)": [[69, "cvc5.Kind.STRING_TO_LOWER"]], "string_to_regexp (cvc5.kind attribute)": [[69, "cvc5.Kind.STRING_TO_REGEXP"]], "string_to_upper (cvc5.kind attribute)": [[69, "cvc5.Kind.STRING_TO_UPPER"]], "string_update (cvc5.kind attribute)": [[69, "cvc5.Kind.STRING_UPDATE"]], "sub (cvc5.kind attribute)": [[69, "cvc5.Kind.SUB"]], "table_aggregate (cvc5.kind attribute)": [[69, "cvc5.Kind.TABLE_AGGREGATE"]], "table_group (cvc5.kind attribute)": [[69, "cvc5.Kind.TABLE_GROUP"]], "table_join (cvc5.kind attribute)": [[69, "cvc5.Kind.TABLE_JOIN"]], "table_product (cvc5.kind attribute)": [[69, "cvc5.Kind.TABLE_PRODUCT"]], "table_project (cvc5.kind attribute)": [[69, "cvc5.Kind.TABLE_PROJECT"]], "tangent (cvc5.kind attribute)": [[69, "cvc5.Kind.TANGENT"]], "to_integer (cvc5.kind attribute)": [[69, "cvc5.Kind.TO_INTEGER"]], "to_real (cvc5.kind attribute)": [[69, "cvc5.Kind.TO_REAL"]], "tuple_project (cvc5.kind attribute)": [[69, "cvc5.Kind.TUPLE_PROJECT"]], "undefined_kind (cvc5.kind attribute)": [[69, "cvc5.Kind.UNDEFINED_KIND"]], "uninterpreted_sort_value (cvc5.kind attribute)": [[69, "cvc5.Kind.UNINTERPRETED_SORT_VALUE"]], "variable (cvc5.kind attribute)": [[69, "cvc5.Kind.VARIABLE"]], "variable_list (cvc5.kind attribute)": [[69, "cvc5.Kind.VARIABLE_LIST"]], "witness (cvc5.kind attribute)": [[69, "cvc5.Kind.WITNESS"]], "xor (cvc5.kind attribute)": [[69, "cvc5.Kind.XOR"]], "alethe (cvc5.proofformat attribute)": [[70, "cvc5.ProofFormat.ALETHE"]], "blockmodelsmode (class in cvc5)": [[70, "cvc5.BlockModelsMode"]], "constant_prop (cvc5.learnedlittype attribute)": [[70, "cvc5.LearnedLitType.CONSTANT_PROP"]], "cpc (cvc5.proofformat attribute)": [[70, "cvc5.ProofFormat.CPC"]], "default (cvc5.proofformat attribute)": [[70, "cvc5.ProofFormat.DEFAULT"]], "dot (cvc5.proofformat attribute)": [[70, "cvc5.ProofFormat.DOT"]], "enum (cvc5.findsynthtarget attribute)": [[70, "cvc5.FindSynthTarget.ENUM"]], "full (cvc5.proofcomponent attribute)": [[70, "cvc5.ProofComponent.FULL"]], "findsynthtarget (class in cvc5)": [[70, "cvc5.FindSynthTarget"]], "input (cvc5.learnedlittype attribute)": [[70, "cvc5.LearnedLitType.INPUT"]], "internal (cvc5.learnedlittype attribute)": [[70, "cvc5.LearnedLitType.INTERNAL"]], "lfsc (cvc5.proofformat attribute)": [[70, "cvc5.ProofFormat.LFSC"]], "literals (cvc5.blockmodelsmode attribute)": [[70, "cvc5.BlockModelsMode.LITERALS"]], "learnedlittype (class in cvc5)": [[70, "cvc5.LearnedLitType"]], "none (cvc5.proofformat attribute)": [[70, "cvc5.ProofFormat.NONE"]], "preprocess (cvc5.learnedlittype attribute)": [[70, "cvc5.LearnedLitType.PREPROCESS"]], "preprocess (cvc5.proofcomponent attribute)": [[70, "cvc5.ProofComponent.PREPROCESS"]], "preprocess_solved (cvc5.learnedlittype attribute)": [[70, "cvc5.LearnedLitType.PREPROCESS_SOLVED"]], "proofcomponent (class in cvc5)": [[70, "cvc5.ProofComponent"]], "proofformat (class in cvc5)": [[70, "cvc5.ProofFormat"]], "query (cvc5.findsynthtarget attribute)": [[70, "cvc5.FindSynthTarget.QUERY"]], "raw_preprocess (cvc5.proofcomponent attribute)": [[70, "cvc5.ProofComponent.RAW_PREPROCESS"]], "rewrite (cvc5.findsynthtarget attribute)": [[70, "cvc5.FindSynthTarget.REWRITE"]], "rewrite_input (cvc5.findsynthtarget attribute)": [[70, "cvc5.FindSynthTarget.REWRITE_INPUT"]], "rewrite_unsound (cvc5.findsynthtarget attribute)": [[70, "cvc5.FindSynthTarget.REWRITE_UNSOUND"]], "sat (cvc5.proofcomponent attribute)": [[70, "cvc5.ProofComponent.SAT"]], "solvable (cvc5.learnedlittype attribute)": [[70, "cvc5.LearnedLitType.SOLVABLE"]], "theory_lemmas (cvc5.proofcomponent attribute)": [[70, "cvc5.ProofComponent.THEORY_LEMMAS"]], "unknown (cvc5.learnedlittype attribute)": [[70, "cvc5.LearnedLitType.UNKNOWN"]], "values (cvc5.blockmodelsmode attribute)": [[70, "cvc5.BlockModelsMode.VALUES"]], "op (class in cvc5)": [[71, "cvc5.Op"]], "__getitem__() (cvc5.op method)": [[71, "cvc5.Op.__getitem__"]], "getkind() (cvc5.op method)": [[71, "cvc5.Op.getKind"]], "getnumindices() (cvc5.op method)": [[71, "cvc5.Op.getNumIndices"]], "isindexed() (cvc5.op method)": [[71, "cvc5.Op.isIndexed"]], "isnull() (cvc5.op method)": [[71, "cvc5.Op.isNull"]], "proof (class in cvc5)": [[73, "cvc5.Proof"]], "getarguments() (cvc5.proof method)": [[73, "cvc5.Proof.getArguments"]], "getchildren() (cvc5.proof method)": [[73, "cvc5.Proof.getChildren"]], "getresult() (cvc5.proof method)": [[73, "cvc5.Proof.getResult"]], "getrewriterule() (cvc5.proof method)": [[73, "cvc5.Proof.getRewriteRule"]], "getrule() (cvc5.proof method)": [[73, "cvc5.Proof.getRule"]], "aci_norm (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ACI_NORM"]], "alethe_rule (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ALETHE_RULE"]], "alpha_equiv (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ALPHA_EQUIV"]], "and_elim (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.AND_ELIM"]], "and_intro (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.AND_INTRO"]], "arith_abs_elim_int (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_ABS_ELIM_INT"]], "arith_abs_elim_real (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_ABS_ELIM_REAL"]], "arith_abs_eq (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_ABS_EQ"]], "arith_abs_int_gt (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_ABS_INT_GT"]], "arith_abs_real_gt (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_ABS_REAL_GT"]], "arith_cosecent_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_COSECENT_ELIM"]], "arith_cosine_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_COSINE_ELIM"]], "arith_cotangent_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_COTANGENT_ELIM"]], "arith_div_elim_to_real1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_DIV_ELIM_TO_REAL1"]], "arith_div_elim_to_real2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_DIV_ELIM_TO_REAL2"]], "arith_div_total_int (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_DIV_TOTAL_INT"]], "arith_div_total_real (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_DIV_TOTAL_REAL"]], "arith_div_total_zero_int (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_DIV_TOTAL_ZERO_INT"]], "arith_div_total_zero_real (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_DIV_TOTAL_ZERO_REAL"]], "arith_elim_gt (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_ELIM_GT"]], "arith_elim_int_gt (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_ELIM_INT_GT"]], "arith_elim_int_lt (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_ELIM_INT_LT"]], "arith_elim_leq (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_ELIM_LEQ"]], "arith_elim_lt (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_ELIM_LT"]], "arith_eq_elim_int (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_EQ_ELIM_INT"]], "arith_eq_elim_real (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_EQ_ELIM_REAL"]], "arith_geq_norm1_int (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_GEQ_NORM1_INT"]], "arith_geq_norm1_real (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_GEQ_NORM1_REAL"]], "arith_geq_norm2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_GEQ_NORM2"]], "arith_geq_tighten (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_GEQ_TIGHTEN"]], "arith_int_div_total (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_INT_DIV_TOTAL"]], "arith_int_div_total_one (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_INT_DIV_TOTAL_ONE"]], "arith_int_div_total_zero (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_INT_DIV_TOTAL_ZERO"]], "arith_int_mod_total (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_INT_MOD_TOTAL"]], "arith_int_mod_total_one (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_INT_MOD_TOTAL_ONE"]], "arith_int_mod_total_zero (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_INT_MOD_TOTAL_ZERO"]], "arith_leq_norm (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_LEQ_NORM"]], "arith_mult_abs_comparison (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_MULT_ABS_COMPARISON"]], "arith_mult_dist (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_MULT_DIST"]], "arith_mult_flatten (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_MULT_FLATTEN"]], "arith_mult_neg (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_MULT_NEG"]], "arith_mult_pos (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_MULT_POS"]], "arith_mult_sign (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_MULT_SIGN"]], "arith_mult_tangent (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_MULT_TANGENT"]], "arith_mul_one (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_MUL_ONE"]], "arith_mul_zero (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_MUL_ZERO"]], "arith_pi_not_int (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_PI_NOT_INT"]], "arith_plus_flatten (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_PLUS_FLATTEN"]], "arith_poly_norm (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_POLY_NORM"]], "arith_poly_norm_rel (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_POLY_NORM_REL"]], "arith_pow_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_POW_ELIM"]], "arith_reduction (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_REDUCTION"]], "arith_refl_geq (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_REFL_GEQ"]], "arith_refl_gt (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_REFL_GT"]], "arith_refl_leq (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_REFL_LEQ"]], "arith_refl_lt (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_REFL_LT"]], "arith_secent_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_SECENT_ELIM"]], "arith_sine_pi2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_SINE_PI2"]], "arith_sine_zero (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_SINE_ZERO"]], "arith_string_pred_entail (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_STRING_PRED_ENTAIL"]], "arith_string_pred_safe_approx (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_STRING_PRED_SAFE_APPROX"]], "arith_sum_ub (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_SUM_UB"]], "arith_tangent_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_TANGENT_ELIM"]], "arith_to_int_elim_to_real (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_TO_INT_ELIM_TO_REAL"]], "arith_to_real_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARITH_TO_REAL_ELIM"]], "arith_trans_exp_approx_above_neg (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_TRANS_EXP_APPROX_ABOVE_NEG"]], "arith_trans_exp_approx_above_pos (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_TRANS_EXP_APPROX_ABOVE_POS"]], "arith_trans_exp_approx_below (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_TRANS_EXP_APPROX_BELOW"]], "arith_trans_exp_neg (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_TRANS_EXP_NEG"]], "arith_trans_exp_positivity (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_TRANS_EXP_POSITIVITY"]], "arith_trans_exp_super_lin (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_TRANS_EXP_SUPER_LIN"]], "arith_trans_exp_zero (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_TRANS_EXP_ZERO"]], "arith_trans_pi (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_TRANS_PI"]], "arith_trans_sine_approx_above_neg (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_TRANS_SINE_APPROX_ABOVE_NEG"]], "arith_trans_sine_approx_above_pos (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_TRANS_SINE_APPROX_ABOVE_POS"]], "arith_trans_sine_approx_below_neg (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_TRANS_SINE_APPROX_BELOW_NEG"]], "arith_trans_sine_approx_below_pos (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_TRANS_SINE_APPROX_BELOW_POS"]], "arith_trans_sine_bounds (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_TRANS_SINE_BOUNDS"]], "arith_trans_sine_shift (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_TRANS_SINE_SHIFT"]], "arith_trans_sine_symmetry (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_TRANS_SINE_SYMMETRY"]], "arith_trans_sine_tangent_pi (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_TRANS_SINE_TANGENT_PI"]], "arith_trans_sine_tangent_zero (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_TRANS_SINE_TANGENT_ZERO"]], "arith_trichotomy (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARITH_TRICHOTOMY"]], "arrays_eq_range_expand (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARRAYS_EQ_RANGE_EXPAND"]], "arrays_ext (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARRAYS_EXT"]], "arrays_read_over_write (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARRAYS_READ_OVER_WRITE"]], "arrays_read_over_write_1 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARRAYS_READ_OVER_WRITE_1"]], "arrays_read_over_write_contra (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ARRAYS_READ_OVER_WRITE_CONTRA"]], "arrays_select_const (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARRAYS_SELECT_CONST"]], "array_read_over_write (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARRAY_READ_OVER_WRITE"]], "array_read_over_write2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARRAY_READ_OVER_WRITE2"]], "array_read_over_write_split (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARRAY_READ_OVER_WRITE_SPLIT"]], "array_store_overwrite (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARRAY_STORE_OVERWRITE"]], "array_store_self (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ARRAY_STORE_SELF"]], "assume (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ASSUME"]], "beta_reduce (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BETA_REDUCE"]], "bool_and_conf (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_AND_CONF"]], "bool_and_conf2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_AND_CONF2"]], "bool_and_de_morgan (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_AND_DE_MORGAN"]], "bool_and_false (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_AND_FALSE"]], "bool_and_flatten (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_AND_FLATTEN"]], "bool_double_not_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_DOUBLE_NOT_ELIM"]], "bool_eq_false (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_EQ_FALSE"]], "bool_eq_nrefl (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_EQ_NREFL"]], "bool_eq_true (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_EQ_TRUE"]], "bool_implies_de_morgan (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_IMPLIES_DE_MORGAN"]], "bool_impl_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_IMPL_ELIM"]], "bool_impl_false1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_IMPL_FALSE1"]], "bool_impl_false2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_IMPL_FALSE2"]], "bool_impl_true1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_IMPL_TRUE1"]], "bool_impl_true2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_IMPL_TRUE2"]], "bool_not_eq_elim1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_NOT_EQ_ELIM1"]], "bool_not_eq_elim2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_NOT_EQ_ELIM2"]], "bool_not_false (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_NOT_FALSE"]], "bool_not_ite_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_NOT_ITE_ELIM"]], "bool_not_true (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_NOT_TRUE"]], "bool_not_xor_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_NOT_XOR_ELIM"]], "bool_or_and_distrib (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_OR_AND_DISTRIB"]], "bool_or_de_morgan (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_OR_DE_MORGAN"]], "bool_or_flatten (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_OR_FLATTEN"]], "bool_or_taut (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_OR_TAUT"]], "bool_or_taut2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_OR_TAUT2"]], "bool_or_true (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_OR_TRUE"]], "bool_xor_comm (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_XOR_COMM"]], "bool_xor_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_XOR_ELIM"]], "bool_xor_false (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_XOR_FALSE"]], "bool_xor_nrefl (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_XOR_NREFL"]], "bool_xor_refl (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_XOR_REFL"]], "bool_xor_true (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BOOL_XOR_TRUE"]], "bv_add_combine_like_terms (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ADD_COMBINE_LIKE_TERMS"]], "bv_add_two (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ADD_TWO"]], "bv_add_zero (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ADD_ZERO"]], "bv_and_concat_pullup (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_AND_CONCAT_PULLUP"]], "bv_and_flatten (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_AND_FLATTEN"]], "bv_and_one (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_AND_ONE"]], "bv_and_simplify_1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_AND_SIMPLIFY_1"]], "bv_and_simplify_2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_AND_SIMPLIFY_2"]], "bv_and_zero (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_AND_ZERO"]], "bv_ashr_by_const_0 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ASHR_BY_CONST_0"]], "bv_ashr_by_const_1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ASHR_BY_CONST_1"]], "bv_ashr_by_const_2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ASHR_BY_CONST_2"]], "bv_ashr_zero (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ASHR_ZERO"]], "bv_bitblast_step (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.BV_BITBLAST_STEP"]], "bv_bitwise_idemp_1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_BITWISE_IDEMP_1"]], "bv_bitwise_idemp_2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_BITWISE_IDEMP_2"]], "bv_bitwise_not_and (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_BITWISE_NOT_AND"]], "bv_bitwise_not_or (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_BITWISE_NOT_OR"]], "bv_bitwise_slicing (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_BITWISE_SLICING"]], "bv_commutative_add (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_COMMUTATIVE_ADD"]], "bv_commutative_and (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_COMMUTATIVE_AND"]], "bv_commutative_mul (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_COMMUTATIVE_MUL"]], "bv_commutative_or (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_COMMUTATIVE_OR"]], "bv_commutative_xor (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_COMMUTATIVE_XOR"]], "bv_comp_eliminate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_COMP_ELIMINATE"]], "bv_concat_extract_merge (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_CONCAT_EXTRACT_MERGE"]], "bv_concat_flatten (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_CONCAT_FLATTEN"]], "bv_concat_merge_const (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_CONCAT_MERGE_CONST"]], "bv_concat_to_mult (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_CONCAT_TO_MULT"]], "bv_eager_atom (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.BV_EAGER_ATOM"]], "bv_eq_extract_elim1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_EQ_EXTRACT_ELIM1"]], "bv_eq_extract_elim2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_EQ_EXTRACT_ELIM2"]], "bv_eq_extract_elim3 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_EQ_EXTRACT_ELIM3"]], "bv_extract_bitwise_and (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_EXTRACT_BITWISE_AND"]], "bv_extract_bitwise_or (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_EXTRACT_BITWISE_OR"]], "bv_extract_bitwise_xor (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_EXTRACT_BITWISE_XOR"]], "bv_extract_concat_1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_EXTRACT_CONCAT_1"]], "bv_extract_concat_2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_EXTRACT_CONCAT_2"]], "bv_extract_concat_3 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_EXTRACT_CONCAT_3"]], "bv_extract_concat_4 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_EXTRACT_CONCAT_4"]], "bv_extract_extract (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_EXTRACT_EXTRACT"]], "bv_extract_mult_leading_bit (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_EXTRACT_MULT_LEADING_BIT"]], "bv_extract_not (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_EXTRACT_NOT"]], "bv_extract_sign_extend_1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_EXTRACT_SIGN_EXTEND_1"]], "bv_extract_sign_extend_2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_EXTRACT_SIGN_EXTEND_2"]], "bv_extract_sign_extend_3 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_EXTRACT_SIGN_EXTEND_3"]], "bv_extract_whole (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_EXTRACT_WHOLE"]], "bv_ite_const_children_1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ITE_CONST_CHILDREN_1"]], "bv_ite_const_children_2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ITE_CONST_CHILDREN_2"]], "bv_ite_equal_children (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ITE_EQUAL_CHILDREN"]], "bv_ite_equal_cond_1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ITE_EQUAL_COND_1"]], "bv_ite_equal_cond_2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ITE_EQUAL_COND_2"]], "bv_ite_equal_cond_3 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ITE_EQUAL_COND_3"]], "bv_ite_merge_else_else (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ITE_MERGE_ELSE_ELSE"]], "bv_ite_merge_else_if (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ITE_MERGE_ELSE_IF"]], "bv_ite_merge_then_else (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ITE_MERGE_THEN_ELSE"]], "bv_ite_merge_then_if (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ITE_MERGE_THEN_IF"]], "bv_lshr_by_const_0 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_LSHR_BY_CONST_0"]], "bv_lshr_by_const_1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_LSHR_BY_CONST_1"]], "bv_lshr_by_const_2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_LSHR_BY_CONST_2"]], "bv_lshr_zero (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_LSHR_ZERO"]], "bv_lt_self (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_LT_SELF"]], "bv_merge_sign_extend_1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_MERGE_SIGN_EXTEND_1"]], "bv_merge_sign_extend_2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_MERGE_SIGN_EXTEND_2"]], "bv_merge_sign_extend_3 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_MERGE_SIGN_EXTEND_3"]], "bv_mult_distrib_1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_MULT_DISTRIB_1"]], "bv_mult_distrib_2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_MULT_DISTRIB_2"]], "bv_mult_distrib_const_add (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_MULT_DISTRIB_CONST_ADD"]], "bv_mult_distrib_const_neg (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_MULT_DISTRIB_CONST_NEG"]], "bv_mult_distrib_const_sub (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_MULT_DISTRIB_CONST_SUB"]], "bv_mult_pow2_1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_MULT_POW2_1"]], "bv_mult_pow2_2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_MULT_POW2_2"]], "bv_mult_pow2_2b (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_MULT_POW2_2B"]], "bv_mult_simplify (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_MULT_SIMPLIFY"]], "bv_mult_slt_mult_1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_MULT_SLT_MULT_1"]], "bv_mult_slt_mult_2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_MULT_SLT_MULT_2"]], "bv_mul_flatten (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_MUL_FLATTEN"]], "bv_mul_one (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_MUL_ONE"]], "bv_mul_zero (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_MUL_ZERO"]], "bv_nand_eliminate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_NAND_ELIMINATE"]], "bv_neg_add (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_NEG_ADD"]], "bv_neg_idemp (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_NEG_IDEMP"]], "bv_neg_mult (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_NEG_MULT"]], "bv_neg_sub (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_NEG_SUB"]], "bv_nor_eliminate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_NOR_ELIMINATE"]], "bv_not_idemp (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_NOT_IDEMP"]], "bv_not_neq (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_NOT_NEQ"]], "bv_not_sle (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_NOT_SLE"]], "bv_not_ule (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_NOT_ULE"]], "bv_not_ult (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_NOT_ULT"]], "bv_not_xor (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_NOT_XOR"]], "bv_or_concat_pullup (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_OR_CONCAT_PULLUP"]], "bv_or_flatten (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_OR_FLATTEN"]], "bv_or_one (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_OR_ONE"]], "bv_or_simplify_1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_OR_SIMPLIFY_1"]], "bv_or_simplify_2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_OR_SIMPLIFY_2"]], "bv_or_zero (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_OR_ZERO"]], "bv_redand_eliminate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_REDAND_ELIMINATE"]], "bv_redor_eliminate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_REDOR_ELIMINATE"]], "bv_repeat_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_REPEAT_ELIM"]], "bv_rotate_left_eliminate_1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ROTATE_LEFT_ELIMINATE_1"]], "bv_rotate_left_eliminate_2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ROTATE_LEFT_ELIMINATE_2"]], "bv_rotate_right_eliminate_1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ROTATE_RIGHT_ELIMINATE_1"]], "bv_rotate_right_eliminate_2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ROTATE_RIGHT_ELIMINATE_2"]], "bv_saddo_eliminate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SADDO_ELIMINATE"]], "bv_sdivo_eliminate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SDIVO_ELIMINATE"]], "bv_sdiv_eliminate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SDIV_ELIMINATE"]], "bv_sdiv_eliminate_fewer_bitwise_ops (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SDIV_ELIMINATE_FEWER_BITWISE_OPS"]], "bv_sge_eliminate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SGE_ELIMINATE"]], "bv_sgt_eliminate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SGT_ELIMINATE"]], "bv_shl_by_const_0 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SHL_BY_CONST_0"]], "bv_shl_by_const_1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SHL_BY_CONST_1"]], "bv_shl_by_const_2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SHL_BY_CONST_2"]], "bv_shl_zero (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SHL_ZERO"]], "bv_sign_extend_eliminate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SIGN_EXTEND_ELIMINATE"]], "bv_sign_extend_eliminate_0 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SIGN_EXTEND_ELIMINATE_0"]], "bv_sign_extend_eq_const_1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SIGN_EXTEND_EQ_CONST_1"]], "bv_sign_extend_eq_const_2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SIGN_EXTEND_EQ_CONST_2"]], "bv_sign_extend_ult_const_1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SIGN_EXTEND_ULT_CONST_1"]], "bv_sign_extend_ult_const_2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SIGN_EXTEND_ULT_CONST_2"]], "bv_sign_extend_ult_const_3 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SIGN_EXTEND_ULT_CONST_3"]], "bv_sign_extend_ult_const_4 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SIGN_EXTEND_ULT_CONST_4"]], "bv_sle_eliminate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SLE_ELIMINATE"]], "bv_sle_self (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SLE_SELF"]], "bv_slt_eliminate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SLT_ELIMINATE"]], "bv_slt_zero (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SLT_ZERO"]], "bv_smod_eliminate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SMOD_ELIMINATE"]], "bv_smod_eliminate_fewer_bitwise_ops (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SMOD_ELIMINATE_FEWER_BITWISE_OPS"]], "bv_smulo_eliminate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SMULO_ELIMINATE"]], "bv_srem_eliminate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SREM_ELIMINATE"]], "bv_srem_eliminate_fewer_bitwise_ops (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SREM_ELIMINATE_FEWER_BITWISE_OPS"]], "bv_ssubo_eliminate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SSUBO_ELIMINATE"]], "bv_sub_eliminate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_SUB_ELIMINATE"]], "bv_to_nat_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_TO_NAT_ELIM"]], "bv_uaddo_eliminate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_UADDO_ELIMINATE"]], "bv_udiv_one (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_UDIV_ONE"]], "bv_udiv_pow2_not_one (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_UDIV_POW2_NOT_ONE"]], "bv_udiv_zero (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_UDIV_ZERO"]], "bv_uge_eliminate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_UGE_ELIMINATE"]], "bv_ugt_eliminate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_UGT_ELIMINATE"]], "bv_ugt_urem (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_UGT_UREM"]], "bv_ule_eliminate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ULE_ELIMINATE"]], "bv_ule_max (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ULE_MAX"]], "bv_ule_self (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ULE_SELF"]], "bv_ule_zero (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ULE_ZERO"]], "bv_ult_add_one (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ULT_ADD_ONE"]], "bv_ult_one (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ULT_ONE"]], "bv_ult_ones (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ULT_ONES"]], "bv_ult_self (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ULT_SELF"]], "bv_ult_zero_1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ULT_ZERO_1"]], "bv_ult_zero_2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ULT_ZERO_2"]], "bv_umulo_eliminate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_UMULO_ELIMINATE"]], "bv_urem_one (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_UREM_ONE"]], "bv_urem_pow2_not_one (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_UREM_POW2_NOT_ONE"]], "bv_urem_self (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_UREM_SELF"]], "bv_usubo_eliminate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_USUBO_ELIMINATE"]], "bv_xnor_eliminate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_XNOR_ELIMINATE"]], "bv_xor_concat_pullup (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_XOR_CONCAT_PULLUP"]], "bv_xor_duplicate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_XOR_DUPLICATE"]], "bv_xor_flatten (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_XOR_FLATTEN"]], "bv_xor_not (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_XOR_NOT"]], "bv_xor_ones (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_XOR_ONES"]], "bv_xor_simplify_1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_XOR_SIMPLIFY_1"]], "bv_xor_simplify_2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_XOR_SIMPLIFY_2"]], "bv_xor_simplify_3 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_XOR_SIMPLIFY_3"]], "bv_xor_zero (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_XOR_ZERO"]], "bv_zero_extend_eliminate (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ZERO_EXTEND_ELIMINATE"]], "bv_zero_extend_eliminate_0 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ZERO_EXTEND_ELIMINATE_0"]], "bv_zero_extend_eq_const_1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ZERO_EXTEND_EQ_CONST_1"]], "bv_zero_extend_eq_const_2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ZERO_EXTEND_EQ_CONST_2"]], "bv_zero_ule (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.BV_ZERO_ULE"]], "chain_resolution (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CHAIN_RESOLUTION"]], "cnf_and_neg (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CNF_AND_NEG"]], "cnf_and_pos (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CNF_AND_POS"]], "cnf_equiv_neg1 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CNF_EQUIV_NEG1"]], "cnf_equiv_neg2 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CNF_EQUIV_NEG2"]], "cnf_equiv_pos1 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CNF_EQUIV_POS1"]], "cnf_equiv_pos2 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CNF_EQUIV_POS2"]], "cnf_implies_neg1 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CNF_IMPLIES_NEG1"]], "cnf_implies_neg2 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CNF_IMPLIES_NEG2"]], "cnf_implies_pos (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CNF_IMPLIES_POS"]], "cnf_ite_neg1 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CNF_ITE_NEG1"]], "cnf_ite_neg2 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CNF_ITE_NEG2"]], "cnf_ite_neg3 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CNF_ITE_NEG3"]], "cnf_ite_pos1 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CNF_ITE_POS1"]], "cnf_ite_pos2 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CNF_ITE_POS2"]], "cnf_ite_pos3 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CNF_ITE_POS3"]], "cnf_or_neg (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CNF_OR_NEG"]], "cnf_or_pos (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CNF_OR_POS"]], "cnf_xor_neg1 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CNF_XOR_NEG1"]], "cnf_xor_neg2 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CNF_XOR_NEG2"]], "cnf_xor_pos1 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CNF_XOR_POS1"]], "cnf_xor_pos2 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CNF_XOR_POS2"]], "concat_conflict (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CONCAT_CONFLICT"]], "concat_conflict_deq (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CONCAT_CONFLICT_DEQ"]], "concat_cprop (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CONCAT_CPROP"]], "concat_csplit (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CONCAT_CSPLIT"]], "concat_eq (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CONCAT_EQ"]], "concat_lprop (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CONCAT_LPROP"]], "concat_split (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CONCAT_SPLIT"]], "concat_unify (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CONCAT_UNIFY"]], "cong (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CONG"]], "contra (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.CONTRA"]], "distinct_binary_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.DISTINCT_BINARY_ELIM"]], "distinct_card_conflict (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.DISTINCT_CARD_CONFLICT"]], "distinct_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.DISTINCT_ELIM"]], "drat_refutation (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.DRAT_REFUTATION"]], "dsl_rewrite (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.DSL_REWRITE"]], "dt_clash (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.DT_CLASH"]], "dt_collapse_selector (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.DT_COLLAPSE_SELECTOR"]], "dt_collapse_tester (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.DT_COLLAPSE_TESTER"]], "dt_collapse_tester_singleton (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.DT_COLLAPSE_TESTER_SINGLETON"]], "dt_collapse_updater (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.DT_COLLAPSE_UPDATER"]], "dt_cons_eq (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.DT_CONS_EQ"]], "dt_cycle (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.DT_CYCLE"]], "dt_inst (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.DT_INST"]], "dt_match_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.DT_MATCH_ELIM"]], "dt_split (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.DT_SPLIT"]], "dt_updater_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.DT_UPDATER_ELIM"]], "encode_eq_intro (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ENCODE_EQ_INTRO"]], "equiv_elim1 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.EQUIV_ELIM1"]], "equiv_elim2 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.EQUIV_ELIM2"]], "eq_cond_deq (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.EQ_COND_DEQ"]], "eq_ite_lift (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.EQ_ITE_LIFT"]], "eq_refl (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.EQ_REFL"]], "eq_resolve (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.EQ_RESOLVE"]], "eq_symm (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.EQ_SYMM"]], "evaluate (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.EVALUATE"]], "exists_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.EXISTS_ELIM"]], "factoring (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.FACTORING"]], "false_elim (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.FALSE_ELIM"]], "false_intro (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.FALSE_INTRO"]], "ho_app_encode (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.HO_APP_ENCODE"]], "ho_cong (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.HO_CONG"]], "implies_elim (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.IMPLIES_ELIM"]], "instantiate (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.INSTANTIATE"]], "int_tight_lb (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.INT_TIGHT_LB"]], "int_tight_ub (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.INT_TIGHT_UB"]], "int_to_bv_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.INT_TO_BV_ELIM"]], "ite_elim1 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ITE_ELIM1"]], "ite_elim2 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ITE_ELIM2"]], "ite_else_false (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ITE_ELSE_FALSE"]], "ite_else_lookahead (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ITE_ELSE_LOOKAHEAD"]], "ite_else_lookahead_not_self (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ITE_ELSE_LOOKAHEAD_NOT_SELF"]], "ite_else_lookahead_self (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ITE_ELSE_LOOKAHEAD_SELF"]], "ite_else_neg_lookahead (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ITE_ELSE_NEG_LOOKAHEAD"]], "ite_else_true (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ITE_ELSE_TRUE"]], "ite_eq (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.ITE_EQ"]], "ite_eq_branch (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ITE_EQ_BRANCH"]], "ite_expand (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ITE_EXPAND"]], "ite_false_cond (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ITE_FALSE_COND"]], "ite_neg_branch (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ITE_NEG_BRANCH"]], "ite_not_cond (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ITE_NOT_COND"]], "ite_then_false (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ITE_THEN_FALSE"]], "ite_then_lookahead (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ITE_THEN_LOOKAHEAD"]], "ite_then_lookahead_not_self (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ITE_THEN_LOOKAHEAD_NOT_SELF"]], "ite_then_lookahead_self (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ITE_THEN_LOOKAHEAD_SELF"]], "ite_then_neg_lookahead (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ITE_THEN_NEG_LOOKAHEAD"]], "ite_then_true (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ITE_THEN_TRUE"]], "ite_true_cond (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.ITE_TRUE_COND"]], "lambda_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.LAMBDA_ELIM"]], "lfsc_rule (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.LFSC_RULE"]], "macro_arith_scale_sum_ub (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.MACRO_ARITH_SCALE_SUM_UB"]], "macro_arith_string_pred_entail (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.MACRO_ARITH_STRING_PRED_ENTAIL"]], "macro_arrays_distinct_arrays (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.MACRO_ARRAYS_DISTINCT_ARRAYS"]], "macro_arrays_normalize_constant (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.MACRO_ARRAYS_NORMALIZE_CONSTANT"]], "macro_bool_nnf_norm (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.MACRO_BOOL_NNF_NORM"]], "macro_bv_bitblast (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.MACRO_BV_BITBLAST"]], "macro_quant_merge_prenex (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.MACRO_QUANT_MERGE_PRENEX"]], "macro_quant_miniscope (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.MACRO_QUANT_MINISCOPE"]], "macro_quant_partition_connected_fv (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.MACRO_QUANT_PARTITION_CONNECTED_FV"]], "macro_quant_prenex (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.MACRO_QUANT_PRENEX"]], "macro_quant_rewrite_body (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.MACRO_QUANT_REWRITE_BODY"]], "macro_quant_var_elim_eq (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.MACRO_QUANT_VAR_ELIM_EQ"]], "macro_quant_var_elim_ineq (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.MACRO_QUANT_VAR_ELIM_INEQ"]], "macro_resolution (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.MACRO_RESOLUTION"]], "macro_resolution_trust (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.MACRO_RESOLUTION_TRUST"]], "macro_rewrite (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.MACRO_REWRITE"]], "macro_sr_eq_intro (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.MACRO_SR_EQ_INTRO"]], "macro_sr_pred_elim (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.MACRO_SR_PRED_ELIM"]], "macro_sr_pred_intro (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.MACRO_SR_PRED_INTRO"]], "macro_sr_pred_transform (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.MACRO_SR_PRED_TRANSFORM"]], "macro_string_inference (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.MACRO_STRING_INFERENCE"]], "macro_substr_strip_sym_length (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.MACRO_SUBSTR_STRIP_SYM_LENGTH"]], "modus_ponens (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.MODUS_PONENS"]], "nary_cong (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.NARY_CONG"]], "none (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.NONE"]], "not_and (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.NOT_AND"]], "not_equiv_elim1 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.NOT_EQUIV_ELIM1"]], "not_equiv_elim2 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.NOT_EQUIV_ELIM2"]], "not_implies_elim1 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.NOT_IMPLIES_ELIM1"]], "not_implies_elim2 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.NOT_IMPLIES_ELIM2"]], "not_ite_elim1 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.NOT_ITE_ELIM1"]], "not_ite_elim2 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.NOT_ITE_ELIM2"]], "not_not_elim (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.NOT_NOT_ELIM"]], "not_or_elim (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.NOT_OR_ELIM"]], "not_xor_elim1 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.NOT_XOR_ELIM1"]], "not_xor_elim2 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.NOT_XOR_ELIM2"]], "proofrewriterule (class in cvc5)": [[74, "cvc5.ProofRewriteRule"]], "proofrule (class in cvc5)": [[74, "cvc5.ProofRule"]], "quant_dt_split (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.QUANT_DT_SPLIT"]], "quant_merge_prenex (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.QUANT_MERGE_PRENEX"]], "quant_miniscope_and (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.QUANT_MINISCOPE_AND"]], "quant_miniscope_ite (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.QUANT_MINISCOPE_ITE"]], "quant_miniscope_or (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.QUANT_MINISCOPE_OR"]], "quant_unused_vars (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.QUANT_UNUSED_VARS"]], "quant_var_elim_eq (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.QUANT_VAR_ELIM_EQ"]], "quant_var_reordering (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.QUANT_VAR_REORDERING"]], "refl (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.REFL"]], "reordering (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.REORDERING"]], "resolution (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.RESOLUTION"]], "re_all_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_ALL_ELIM"]], "re_concat_emp (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_CONCAT_EMP"]], "re_concat_flatten (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_CONCAT_FLATTEN"]], "re_concat_merge (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_CONCAT_MERGE"]], "re_concat_none (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_CONCAT_NONE"]], "re_concat_star_repeat (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_CONCAT_STAR_REPEAT"]], "re_concat_star_swap (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_CONCAT_STAR_SWAP"]], "re_diff_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_DIFF_ELIM"]], "re_inter (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.RE_INTER"]], "re_inter_all (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_INTER_ALL"]], "re_inter_cstring (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_INTER_CSTRING"]], "re_inter_cstring_neg (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_INTER_CSTRING_NEG"]], "re_inter_dup (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_INTER_DUP"]], "re_inter_flatten (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_INTER_FLATTEN"]], "re_inter_none (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_INTER_NONE"]], "re_inter_union_inclusion (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_INTER_UNION_INCLUSION"]], "re_in_comp (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_IN_COMP"]], "re_in_cstring (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_IN_CSTRING"]], "re_in_empty (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_IN_EMPTY"]], "re_in_sigma (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_IN_SIGMA"]], "re_in_sigma_star (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_IN_SIGMA_STAR"]], "re_loop_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_LOOP_ELIM"]], "re_loop_neg (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_LOOP_NEG"]], "re_opt_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_OPT_ELIM"]], "re_star_none (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_STAR_NONE"]], "re_unfold_neg (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.RE_UNFOLD_NEG"]], "re_unfold_neg_concat_fixed (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.RE_UNFOLD_NEG_CONCAT_FIXED"]], "re_unfold_pos (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.RE_UNFOLD_POS"]], "re_union_all (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_UNION_ALL"]], "re_union_dup (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_UNION_DUP"]], "re_union_flatten (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_UNION_FLATTEN"]], "re_union_none (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.RE_UNION_NONE"]], "sat_external_prove (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.SAT_EXTERNAL_PROVE"]], "sat_refutation (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.SAT_REFUTATION"]], "scope (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.SCOPE"]], "seq_len_empty (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SEQ_LEN_EMPTY"]], "seq_len_rev (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SEQ_LEN_REV"]], "seq_len_unit (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SEQ_LEN_UNIT"]], "seq_nth_unit (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SEQ_NTH_UNIT"]], "seq_rev_concat (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SEQ_REV_CONCAT"]], "seq_rev_rev (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SEQ_REV_REV"]], "seq_rev_unit (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SEQ_REV_UNIT"]], "sets_card_emp (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SETS_CARD_EMP"]], "sets_card_minus (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SETS_CARD_MINUS"]], "sets_card_singleton (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SETS_CARD_SINGLETON"]], "sets_card_union (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SETS_CARD_UNION"]], "sets_choose_singleton (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SETS_CHOOSE_SINGLETON"]], "sets_eq_singleton_emp (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SETS_EQ_SINGLETON_EMP"]], "sets_ext (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.SETS_EXT"]], "sets_filter_down (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.SETS_FILTER_DOWN"]], "sets_filter_up (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.SETS_FILTER_UP"]], "sets_insert_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SETS_INSERT_ELIM"]], "sets_inter_comm (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SETS_INTER_COMM"]], "sets_inter_emp1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SETS_INTER_EMP1"]], "sets_inter_emp2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SETS_INTER_EMP2"]], "sets_inter_member (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SETS_INTER_MEMBER"]], "sets_is_empty_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SETS_IS_EMPTY_ELIM"]], "sets_is_empty_eval (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SETS_IS_EMPTY_EVAL"]], "sets_member_emp (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SETS_MEMBER_EMP"]], "sets_member_singleton (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SETS_MEMBER_SINGLETON"]], "sets_minus_emp1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SETS_MINUS_EMP1"]], "sets_minus_emp2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SETS_MINUS_EMP2"]], "sets_minus_member (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SETS_MINUS_MEMBER"]], "sets_minus_self (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SETS_MINUS_SELF"]], "sets_singleton_inj (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.SETS_SINGLETON_INJ"]], "sets_subset_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SETS_SUBSET_ELIM"]], "sets_union_comm (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SETS_UNION_COMM"]], "sets_union_emp1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SETS_UNION_EMP1"]], "sets_union_emp2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SETS_UNION_EMP2"]], "sets_union_member (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.SETS_UNION_MEMBER"]], "skolemize (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.SKOLEMIZE"]], "skolem_intro (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.SKOLEM_INTRO"]], "split (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.SPLIT"]], "string_code_inj (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.STRING_CODE_INJ"]], "string_decompose (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.STRING_DECOMPOSE"]], "string_eager_reduction (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.STRING_EAGER_REDUCTION"]], "string_ext (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.STRING_EXT"]], "string_length_non_empty (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.STRING_LENGTH_NON_EMPTY"]], "string_length_pos (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.STRING_LENGTH_POS"]], "string_reduction (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.STRING_REDUCTION"]], "string_seq_unit_inj (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.STRING_SEQ_UNIT_INJ"]], "str_at_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_AT_ELIM"]], "str_concat_clash (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_CONCAT_CLASH"]], "str_concat_clash2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_CONCAT_CLASH2"]], "str_concat_clash2_rev (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_CONCAT_CLASH2_REV"]], "str_concat_clash_char (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_CONCAT_CLASH_CHAR"]], "str_concat_clash_char_rev (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_CONCAT_CLASH_CHAR_REV"]], "str_concat_clash_rev (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_CONCAT_CLASH_REV"]], "str_concat_flatten (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_CONCAT_FLATTEN"]], "str_concat_flatten_eq (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_CONCAT_FLATTEN_EQ"]], "str_concat_flatten_eq_rev (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_CONCAT_FLATTEN_EQ_REV"]], "str_concat_unify (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_CONCAT_UNIFY"]], "str_concat_unify_base (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_CONCAT_UNIFY_BASE"]], "str_concat_unify_base_rev (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_CONCAT_UNIFY_BASE_REV"]], "str_concat_unify_rev (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_CONCAT_UNIFY_REV"]], "str_contains_concat_find (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_CONTAINS_CONCAT_FIND"]], "str_contains_emp (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_CONTAINS_EMP"]], "str_contains_is_emp (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_CONTAINS_IS_EMP"]], "str_contains_leq_len_eq (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_CONTAINS_LEQ_LEN_EQ"]], "str_contains_lt_len (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_CONTAINS_LT_LEN"]], "str_contains_refl (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_CONTAINS_REFL"]], "str_contains_split_char (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_CONTAINS_SPLIT_CHAR"]], "str_eq_ctn_false (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_EQ_CTN_FALSE"]], "str_eq_ctn_full_false1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_EQ_CTN_FULL_FALSE1"]], "str_eq_ctn_full_false2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_EQ_CTN_FULL_FALSE2"]], "str_indexof_contains_pre (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_INDEXOF_CONTAINS_PRE"]], "str_indexof_no_contains (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_INDEXOF_NO_CONTAINS"]], "str_indexof_re_none (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_INDEXOF_RE_NONE"]], "str_indexof_self (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_INDEXOF_SELF"]], "str_in_re_concat_star_char (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_CONCAT_STAR_CHAR"]], "str_in_re_consume (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_CONSUME"]], "str_in_re_contains (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_CONTAINS"]], "str_in_re_eval (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_EVAL"]], "str_in_re_inter_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_INTER_ELIM"]], "str_in_re_range_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_RANGE_ELIM"]], "str_in_re_req_unfold (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_REQ_UNFOLD"]], "str_in_re_req_unfold_rev (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_REQ_UNFOLD_REV"]], "str_in_re_sigma (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_SIGMA"]], "str_in_re_sigma_star (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_SIGMA_STAR"]], "str_in_re_skip_unfold (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_SKIP_UNFOLD"]], "str_in_re_skip_unfold_rev (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_SKIP_UNFOLD_REV"]], "str_in_re_strip_char (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_CHAR"]], "str_in_re_strip_char_rev (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_CHAR_REV"]], "str_in_re_strip_char_s_single (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_CHAR_S_SINGLE"]], "str_in_re_strip_char_s_single_rev (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_CHAR_S_SINGLE_REV"]], "str_in_re_strip_prefix (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_PREFIX"]], "str_in_re_strip_prefix_base (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_PREFIX_BASE"]], "str_in_re_strip_prefix_base_neg (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_PREFIX_BASE_NEG"]], "str_in_re_strip_prefix_base_neg_rev (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_PREFIX_BASE_NEG_REV"]], "str_in_re_strip_prefix_base_rev (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_PREFIX_BASE_REV"]], "str_in_re_strip_prefix_base_s_single (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE"]], "str_in_re_strip_prefix_base_s_single_neg (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG"]], "str_in_re_strip_prefix_base_s_single_neg_rev (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG_REV"]], "str_in_re_strip_prefix_base_s_single_rev (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_REV"]], "str_in_re_strip_prefix_neg (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_PREFIX_NEG"]], "str_in_re_strip_prefix_neg_rev (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_PREFIX_NEG_REV"]], "str_in_re_strip_prefix_rev (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_PREFIX_REV"]], "str_in_re_strip_prefix_srs_single (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_PREFIX_SRS_SINGLE"]], "str_in_re_strip_prefix_srs_single_neg (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG"]], "str_in_re_strip_prefix_srs_single_neg_rev (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG_REV"]], "str_in_re_strip_prefix_srs_single_rev (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_REV"]], "str_in_re_strip_prefix_sr_single (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_PREFIX_SR_SINGLE"]], "str_in_re_strip_prefix_sr_single_neg (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG"]], "str_in_re_strip_prefix_sr_single_neg_rev (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG_REV"]], "str_in_re_strip_prefix_sr_single_rev (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_PREFIX_SR_SINGLE_REV"]], "str_in_re_strip_prefix_s_single (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_PREFIX_S_SINGLE"]], "str_in_re_strip_prefix_s_single_neg (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG"]], "str_in_re_strip_prefix_s_single_neg_rev (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG_REV"]], "str_in_re_strip_prefix_s_single_rev (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_STRIP_PREFIX_S_SINGLE_REV"]], "str_in_re_test_unfold (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_TEST_UNFOLD"]], "str_in_re_test_unfold_rev (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_TEST_UNFOLD_REV"]], "str_in_re_union_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_IN_RE_UNION_ELIM"]], "str_len_concat_rec (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_LEN_CONCAT_REC"]], "str_len_replace_inv (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_LEN_REPLACE_INV"]], "str_len_substr_in_range (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_LEN_SUBSTR_IN_RANGE"]], "str_len_substr_ub1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_LEN_SUBSTR_UB1"]], "str_len_substr_ub2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_LEN_SUBSTR_UB2"]], "str_len_update_inv (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_LEN_UPDATE_INV"]], "str_leq_concat_false (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_LEQ_CONCAT_FALSE"]], "str_leq_concat_true (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_LEQ_CONCAT_TRUE"]], "str_leq_empty (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_LEQ_EMPTY"]], "str_leq_empty_eq (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_LEQ_EMPTY_EQ"]], "str_lt_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_LT_ELIM"]], "str_prefixof_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_PREFIXOF_ELIM"]], "str_prefixof_one (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_PREFIXOF_ONE"]], "str_replace_all_no_contains (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_REPLACE_ALL_NO_CONTAINS"]], "str_replace_contains_pre (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_REPLACE_CONTAINS_PRE"]], "str_replace_empty (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_REPLACE_EMPTY"]], "str_replace_no_contains (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_REPLACE_NO_CONTAINS"]], "str_replace_prefix (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_REPLACE_PREFIX"]], "str_replace_re_all_none (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_REPLACE_RE_ALL_NONE"]], "str_replace_re_none (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_REPLACE_RE_NONE"]], "str_replace_self (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_REPLACE_SELF"]], "str_substr_combine1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_SUBSTR_COMBINE1"]], "str_substr_combine2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_SUBSTR_COMBINE2"]], "str_substr_combine3 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_SUBSTR_COMBINE3"]], "str_substr_combine4 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_SUBSTR_COMBINE4"]], "str_substr_concat1 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_SUBSTR_CONCAT1"]], "str_substr_concat2 (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_SUBSTR_CONCAT2"]], "str_substr_empty_range (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_SUBSTR_EMPTY_RANGE"]], "str_substr_empty_start (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_SUBSTR_EMPTY_START"]], "str_substr_empty_start_neg (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_SUBSTR_EMPTY_START_NEG"]], "str_substr_empty_str (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_SUBSTR_EMPTY_STR"]], "str_substr_eq_empty (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_SUBSTR_EQ_EMPTY"]], "str_substr_full (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_SUBSTR_FULL"]], "str_substr_full_eq (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_SUBSTR_FULL_EQ"]], "str_substr_len_include (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_SUBSTR_LEN_INCLUDE"]], "str_substr_len_include_pre (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_SUBSTR_LEN_INCLUDE_PRE"]], "str_substr_len_skip (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_SUBSTR_LEN_SKIP"]], "str_suffixof_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_SUFFIXOF_ELIM"]], "str_suffixof_one (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_SUFFIXOF_ONE"]], "str_to_int_concat_neg_one (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_TO_INT_CONCAT_NEG_ONE"]], "str_to_lower_concat (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_TO_LOWER_CONCAT"]], "str_to_lower_from_int (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_TO_LOWER_FROM_INT"]], "str_to_lower_len (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_TO_LOWER_LEN"]], "str_to_lower_upper (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_TO_LOWER_UPPER"]], "str_to_upper_concat (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_TO_UPPER_CONCAT"]], "str_to_upper_from_int (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_TO_UPPER_FROM_INT"]], "str_to_upper_len (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_TO_UPPER_LEN"]], "str_to_upper_lower (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.STR_TO_UPPER_LOWER"]], "subs (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.SUBS"]], "symm (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.SYMM"]], "theory_rewrite (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.THEORY_REWRITE"]], "trans (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.TRANS"]], "true_elim (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.TRUE_ELIM"]], "true_intro (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.TRUE_INTRO"]], "trust (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.TRUST"]], "trust_theory_rewrite (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.TRUST_THEORY_REWRITE"]], "uf_bv2nat_geq_elim (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.UF_BV2NAT_GEQ_ELIM"]], "uf_bv2nat_int2bv (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.UF_BV2NAT_INT2BV"]], "uf_bv2nat_int2bv_extend (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.UF_BV2NAT_INT2BV_EXTEND"]], "uf_bv2nat_int2bv_extract (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.UF_BV2NAT_INT2BV_EXTRACT"]], "uf_int2bv_bv2nat (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.UF_INT2BV_BV2NAT"]], "uf_int2bv_bvule_equiv (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.UF_INT2BV_BVULE_EQUIV"]], "uf_int2bv_bvult_equiv (cvc5.proofrewriterule attribute)": [[74, "cvc5.ProofRewriteRule.UF_INT2BV_BVULT_EQUIV"]], "unknown (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.UNKNOWN"]], "xor_elim1 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.XOR_ELIM1"]], "xor_elim2 (cvc5.proofrule attribute)": [[74, "cvc5.ProofRule.XOR_ELIM2"]], "result (class in cvc5)": [[77, "cvc5.Result"]], "getunknownexplanation() (cvc5.result method)": [[77, "cvc5.Result.getUnknownExplanation"]], "isnull() (cvc5.result method)": [[77, "cvc5.Result.isNull"]], "issat() (cvc5.result method)": [[77, "cvc5.Result.isSat"]], "isunknown() (cvc5.result method)": [[77, "cvc5.Result.isUnknown"]], "isunsat() (cvc5.result method)": [[77, "cvc5.Result.isUnsat"]], "round_nearest_ties_to_away (cvc5.roundingmode attribute)": [[78, "cvc5.RoundingMode.ROUND_NEAREST_TIES_TO_AWAY"]], "round_nearest_ties_to_even (cvc5.roundingmode attribute)": [[78, "cvc5.RoundingMode.ROUND_NEAREST_TIES_TO_EVEN"]], "round_toward_negative (cvc5.roundingmode attribute)": [[78, "cvc5.RoundingMode.ROUND_TOWARD_NEGATIVE"]], "round_toward_positive (cvc5.roundingmode attribute)": [[78, "cvc5.RoundingMode.ROUND_TOWARD_POSITIVE"]], "round_toward_zero (cvc5.roundingmode attribute)": [[78, "cvc5.RoundingMode.ROUND_TOWARD_ZERO"]], "roundingmode (class in cvc5)": [[78, "cvc5.RoundingMode"]], "solver (class in cvc5)": [[79, "cvc5.Solver"]], "addplugin() (cvc5.solver method)": [[79, "cvc5.Solver.addPlugin"]], "addsygusassume() (cvc5.solver method)": [[79, "cvc5.Solver.addSygusAssume"]], "addsygusconstraint() (cvc5.solver method)": [[79, "cvc5.Solver.addSygusConstraint"]], "addsygusinvconstraint() (cvc5.solver method)": [[79, "cvc5.Solver.addSygusInvConstraint"]], "assertformula() (cvc5.solver method)": [[79, "cvc5.Solver.assertFormula"]], "blockmodel() (cvc5.solver method)": [[79, "cvc5.Solver.blockModel"]], "blockmodelvalues() (cvc5.solver method)": [[79, "cvc5.Solver.blockModelValues"]], "checksat() (cvc5.solver method)": [[79, "cvc5.Solver.checkSat"]], "checksatassuming() (cvc5.solver method)": [[79, "cvc5.Solver.checkSatAssuming"]], "checksynth() (cvc5.solver method)": [[79, "cvc5.Solver.checkSynth"]], "checksynthnext() (cvc5.solver method)": [[79, "cvc5.Solver.checkSynthNext"]], "declaredatatype() (cvc5.solver method)": [[79, "cvc5.Solver.declareDatatype"]], "declarefun() (cvc5.solver method)": [[79, "cvc5.Solver.declareFun"]], "declarepool() (cvc5.solver method)": [[79, "cvc5.Solver.declarePool"]], "declaresepheap() (cvc5.solver method)": [[79, "cvc5.Solver.declareSepHeap"]], "declaresort() (cvc5.solver method)": [[79, "cvc5.Solver.declareSort"]], "declaresygusvar() (cvc5.solver method)": [[79, "cvc5.Solver.declareSygusVar"]], "definefun() (cvc5.solver method)": [[79, "cvc5.Solver.defineFun"]], "definefunrec() (cvc5.solver method)": [[79, "cvc5.Solver.defineFunRec"]], "definefunsrec() (cvc5.solver method)": [[79, "cvc5.Solver.defineFunsRec"]], "findsynth() (cvc5.solver method)": [[79, "cvc5.Solver.findSynth"]], "findsynthnext() (cvc5.solver method)": [[79, "cvc5.Solver.findSynthNext"]], "getabduct() (cvc5.solver method)": [[79, "cvc5.Solver.getAbduct"]], "getabductnext() (cvc5.solver method)": [[79, "cvc5.Solver.getAbductNext"]], "getassertions() (cvc5.solver method)": [[79, "cvc5.Solver.getAssertions"]], "getbooleansort() (cvc5.solver method)": [[79, "cvc5.Solver.getBooleanSort"]], "getdifficulty() (cvc5.solver method)": [[79, "cvc5.Solver.getDifficulty"]], "getinfo() (cvc5.solver method)": [[79, "cvc5.Solver.getInfo"]], "getinstantiations() (cvc5.solver method)": [[79, "cvc5.Solver.getInstantiations"]], "getintegersort() (cvc5.solver method)": [[79, "cvc5.Solver.getIntegerSort"]], "getinterpolant() (cvc5.solver method)": [[79, "cvc5.Solver.getInterpolant"]], "getinterpolantnext() (cvc5.solver method)": [[79, "cvc5.Solver.getInterpolantNext"]], "getlearnedliterals() (cvc5.solver method)": [[79, "cvc5.Solver.getLearnedLiterals"]], "getlogic() (cvc5.solver method)": [[79, "cvc5.Solver.getLogic"]], "getmodel() (cvc5.solver method)": [[79, "cvc5.Solver.getModel"]], "getmodeldomainelements() (cvc5.solver method)": [[79, "cvc5.Solver.getModelDomainElements"]], "getnumindicesforskolemid() (cvc5.solver method)": [[79, "cvc5.Solver.getNumIndicesForSkolemId"]], "getoption() (cvc5.solver method)": [[79, "cvc5.Solver.getOption"]], "getoptioninfo() (cvc5.solver method)": [[79, "cvc5.Solver.getOptionInfo"]], "getoptionnames() (cvc5.solver method)": [[79, "cvc5.Solver.getOptionNames"]], "getproof() (cvc5.solver method)": [[79, "cvc5.Solver.getProof"]], "getquantifierelimination() (cvc5.solver method)": [[79, "cvc5.Solver.getQuantifierElimination"]], "getquantifiereliminationdisjunct() (cvc5.solver method)": [[79, "cvc5.Solver.getQuantifierEliminationDisjunct"]], "getrealsort() (cvc5.solver method)": [[79, "cvc5.Solver.getRealSort"]], "getregexpsort() (cvc5.solver method)": [[79, "cvc5.Solver.getRegExpSort"]], "getroundingmodesort() (cvc5.solver method)": [[79, "cvc5.Solver.getRoundingModeSort"]], "getstatistics() (cvc5.solver method)": [[79, "cvc5.Solver.getStatistics"]], "getstringsort() (cvc5.solver method)": [[79, "cvc5.Solver.getStringSort"]], "getsygusassumptions() (cvc5.solver method)": [[79, "cvc5.Solver.getSygusAssumptions"]], "getsygusconstraints() (cvc5.solver method)": [[79, "cvc5.Solver.getSygusConstraints"]], "getsynthsolution() (cvc5.solver method)": [[79, "cvc5.Solver.getSynthSolution"]], "getsynthsolutions() (cvc5.solver method)": [[79, "cvc5.Solver.getSynthSolutions"]], "gettermmanager() (cvc5.solver method)": [[79, "cvc5.Solver.getTermManager"]], "gettimeoutcore() (cvc5.solver method)": [[79, "cvc5.Solver.getTimeoutCore"]], "gettimeoutcoreassuming() (cvc5.solver method)": [[79, "cvc5.Solver.getTimeoutCoreAssuming"]], "getunsatassumptions() (cvc5.solver method)": [[79, "cvc5.Solver.getUnsatAssumptions"]], "getunsatcore() (cvc5.solver method)": [[79, "cvc5.Solver.getUnsatCore"]], "getunsatcorelemmas() (cvc5.solver method)": [[79, "cvc5.Solver.getUnsatCoreLemmas"]], "getvalue() (cvc5.solver method)": [[79, "cvc5.Solver.getValue"]], "getvaluesepheap() (cvc5.solver method)": [[79, "cvc5.Solver.getValueSepHeap"]], "getvaluesepnil() (cvc5.solver method)": [[79, "cvc5.Solver.getValueSepNil"]], "getversion() (cvc5.solver method)": [[79, "cvc5.Solver.getVersion"]], "islogicset() (cvc5.solver method)": [[79, "cvc5.Solver.isLogicSet"]], "ismodelcoresymbol() (cvc5.solver method)": [[79, "cvc5.Solver.isModelCoreSymbol"]], "mkabstractsort() (cvc5.solver method)": [[79, "cvc5.Solver.mkAbstractSort"]], "mkarraysort() (cvc5.solver method)": [[79, "cvc5.Solver.mkArraySort"]], "mkbagsort() (cvc5.solver method)": [[79, "cvc5.Solver.mkBagSort"]], "mkbitvector() (cvc5.solver method)": [[79, "cvc5.Solver.mkBitVector"]], "mkbitvectorsort() (cvc5.solver method)": [[79, "cvc5.Solver.mkBitVectorSort"]], "mkboolean() (cvc5.solver method)": [[79, "cvc5.Solver.mkBoolean"]], "mkcardinalityconstraint() (cvc5.solver method)": [[79, "cvc5.Solver.mkCardinalityConstraint"]], "mkconst() (cvc5.solver method)": [[79, "cvc5.Solver.mkConst"]], "mkconstarray() (cvc5.solver method)": [[79, "cvc5.Solver.mkConstArray"]], "mkdatatypeconstructordecl() (cvc5.solver method)": [[79, "cvc5.Solver.mkDatatypeConstructorDecl"]], "mkdatatypedecl() (cvc5.solver method)": [[79, "cvc5.Solver.mkDatatypeDecl"]], "mkdatatypesort() (cvc5.solver method)": [[79, "cvc5.Solver.mkDatatypeSort"]], "mkdatatypesorts() (cvc5.solver method)": [[79, "cvc5.Solver.mkDatatypeSorts"]], "mkemptybag() (cvc5.solver method)": [[79, "cvc5.Solver.mkEmptyBag"]], "mkemptysequence() (cvc5.solver method)": [[79, "cvc5.Solver.mkEmptySequence"]], "mkemptyset() (cvc5.solver method)": [[79, "cvc5.Solver.mkEmptySet"]], "mkfalse() (cvc5.solver method)": [[79, "cvc5.Solver.mkFalse"]], "mkfinitefieldelem() (cvc5.solver method)": [[79, "cvc5.Solver.mkFiniteFieldElem"]], "mkfinitefieldsort() (cvc5.solver method)": [[79, "cvc5.Solver.mkFiniteFieldSort"]], "mkfloatingpoint() (cvc5.solver method)": [[79, "cvc5.Solver.mkFloatingPoint"]], "mkfloatingpointnan() (cvc5.solver method)": [[79, "cvc5.Solver.mkFloatingPointNaN"]], "mkfloatingpointneginf() (cvc5.solver method)": [[79, "cvc5.Solver.mkFloatingPointNegInf"]], "mkfloatingpointnegzero() (cvc5.solver method)": [[79, "cvc5.Solver.mkFloatingPointNegZero"]], "mkfloatingpointposinf() (cvc5.solver method)": [[79, "cvc5.Solver.mkFloatingPointPosInf"]], "mkfloatingpointposzero() (cvc5.solver method)": [[79, "cvc5.Solver.mkFloatingPointPosZero"]], "mkfloatingpointsort() (cvc5.solver method)": [[79, "cvc5.Solver.mkFloatingPointSort"]], "mkfunctionsort() (cvc5.solver method)": [[79, "cvc5.Solver.mkFunctionSort"]], "mkgrammar() (cvc5.solver method)": [[79, "cvc5.Solver.mkGrammar"]], "mkinteger() (cvc5.solver method)": [[79, "cvc5.Solver.mkInteger"]], "mknullableisnull() (cvc5.solver method)": [[79, "cvc5.Solver.mkNullableIsNull"]], "mknullableissome() (cvc5.solver method)": [[79, "cvc5.Solver.mkNullableIsSome"]], "mknullablelift() (cvc5.solver method)": [[79, "cvc5.Solver.mkNullableLift"]], "mknullablenull() (cvc5.solver method)": [[79, "cvc5.Solver.mkNullableNull"]], "mknullablesome() (cvc5.solver method)": [[79, "cvc5.Solver.mkNullableSome"]], "mknullablesort() (cvc5.solver method)": [[79, "cvc5.Solver.mkNullableSort"]], "mknullableval() (cvc5.solver method)": [[79, "cvc5.Solver.mkNullableVal"]], "mkop() (cvc5.solver method)": [[79, "cvc5.Solver.mkOp"]], "mkparamsort() (cvc5.solver method)": [[79, "cvc5.Solver.mkParamSort"]], "mkpi() (cvc5.solver method)": [[79, "cvc5.Solver.mkPi"]], "mkpredicatesort() (cvc5.solver method)": [[79, "cvc5.Solver.mkPredicateSort"]], "mkreal() (cvc5.solver method)": [[79, "cvc5.Solver.mkReal"]], "mkrecordsort() (cvc5.solver method)": [[79, "cvc5.Solver.mkRecordSort"]], "mkregexpall() (cvc5.solver method)": [[79, "cvc5.Solver.mkRegexpAll"]], "mkregexpallchar() (cvc5.solver method)": [[79, "cvc5.Solver.mkRegexpAllchar"]], "mkregexpnone() (cvc5.solver method)": [[79, "cvc5.Solver.mkRegexpNone"]], "mkroundingmode() (cvc5.solver method)": [[79, "cvc5.Solver.mkRoundingMode"]], "mksepemp() (cvc5.solver method)": [[79, "cvc5.Solver.mkSepEmp"]], "mksepnil() (cvc5.solver method)": [[79, "cvc5.Solver.mkSepNil"]], "mksequencesort() (cvc5.solver method)": [[79, "cvc5.Solver.mkSequenceSort"]], "mksetsort() (cvc5.solver method)": [[79, "cvc5.Solver.mkSetSort"]], "mkskolem() (cvc5.solver method)": [[79, "cvc5.Solver.mkSkolem"]], "mkstring() (cvc5.solver method)": [[79, "cvc5.Solver.mkString"]], "mkterm() (cvc5.solver method)": [[79, "cvc5.Solver.mkTerm"]], "mktrue() (cvc5.solver method)": [[79, "cvc5.Solver.mkTrue"]], "mktuple() (cvc5.solver method)": [[79, "cvc5.Solver.mkTuple"]], "mktuplesort() (cvc5.solver method)": [[79, "cvc5.Solver.mkTupleSort"]], "mkuninterpretedsort() (cvc5.solver method)": [[79, "cvc5.Solver.mkUninterpretedSort"]], "mkuninterpretedsortconstructorsort() (cvc5.solver method)": [[79, "cvc5.Solver.mkUninterpretedSortConstructorSort"]], "mkuniverseset() (cvc5.solver method)": [[79, "cvc5.Solver.mkUniverseSet"]], "mkunresolveddatatypesort() (cvc5.solver method)": [[79, "cvc5.Solver.mkUnresolvedDatatypeSort"]], "mkvar() (cvc5.solver method)": [[79, "cvc5.Solver.mkVar"]], "pop() (cvc5.solver method)": [[79, "cvc5.Solver.pop"]], "prooftostring() (cvc5.solver method)": [[79, "cvc5.Solver.proofToString"]], "push() (cvc5.solver method)": [[79, "cvc5.Solver.push"]], "resetassertions() (cvc5.solver method)": [[79, "cvc5.Solver.resetAssertions"]], "setinfo() (cvc5.solver method)": [[79, "cvc5.Solver.setInfo"]], "setlogic() (cvc5.solver method)": [[79, "cvc5.Solver.setLogic"]], "setoption() (cvc5.solver method)": [[79, "cvc5.Solver.setOption"]], "simplify() (cvc5.solver method)": [[79, "cvc5.Solver.simplify"]], "synthfun() (cvc5.solver method)": [[79, "cvc5.Solver.synthFun"]], "sort (class in cvc5)": [[80, "cvc5.Sort"]], "getabstractedkind() (cvc5.sort method)": [[80, "cvc5.Sort.getAbstractedKind"]], "getarrayelementsort() (cvc5.sort method)": [[80, "cvc5.Sort.getArrayElementSort"]], "getarrayindexsort() (cvc5.sort method)": [[80, "cvc5.Sort.getArrayIndexSort"]], "getbagelementsort() (cvc5.sort method)": [[80, "cvc5.Sort.getBagElementSort"]], "getbitvectorsize() (cvc5.sort method)": [[80, "cvc5.Sort.getBitVectorSize"]], "getdatatype() (cvc5.sort method)": [[80, "cvc5.Sort.getDatatype"]], "getdatatypearity() (cvc5.sort method)": [[80, "cvc5.Sort.getDatatypeArity"]], "getdatatypeconstructorarity() (cvc5.sort method)": [[80, "cvc5.Sort.getDatatypeConstructorArity"]], "getdatatypeconstructorcodomainsort() (cvc5.sort method)": [[80, "cvc5.Sort.getDatatypeConstructorCodomainSort"]], "getdatatypeconstructordomainsorts() (cvc5.sort method)": [[80, "cvc5.Sort.getDatatypeConstructorDomainSorts"]], "getdatatypeselectorcodomainsort() (cvc5.sort method)": [[80, "cvc5.Sort.getDatatypeSelectorCodomainSort"]], "getdatatypeselectordomainsort() (cvc5.sort method)": [[80, "cvc5.Sort.getDatatypeSelectorDomainSort"]], "getdatatypetestercodomainsort() (cvc5.sort method)": [[80, "cvc5.Sort.getDatatypeTesterCodomainSort"]], "getdatatypetesterdomainsort() (cvc5.sort method)": [[80, "cvc5.Sort.getDatatypeTesterDomainSort"]], "getfinitefieldsize() (cvc5.sort method)": [[80, "cvc5.Sort.getFiniteFieldSize"]], "getfloatingpointexponentsize() (cvc5.sort method)": [[80, "cvc5.Sort.getFloatingPointExponentSize"]], "getfloatingpointsignificandsize() (cvc5.sort method)": [[80, "cvc5.Sort.getFloatingPointSignificandSize"]], "getfunctionarity() (cvc5.sort method)": [[80, "cvc5.Sort.getFunctionArity"]], "getfunctioncodomainsort() (cvc5.sort method)": [[80, "cvc5.Sort.getFunctionCodomainSort"]], "getfunctiondomainsorts() (cvc5.sort method)": [[80, "cvc5.Sort.getFunctionDomainSorts"]], "getinstantiatedparameters() (cvc5.sort method)": [[80, "cvc5.Sort.getInstantiatedParameters"]], "getkind() (cvc5.sort method)": [[80, "cvc5.Sort.getKind"]], "getnullableelementsort() (cvc5.sort method)": [[80, "cvc5.Sort.getNullableElementSort"]], "getsequenceelementsort() (cvc5.sort method)": [[80, "cvc5.Sort.getSequenceElementSort"]], "getsetelementsort() (cvc5.sort method)": [[80, "cvc5.Sort.getSetElementSort"]], "getsymbol() (cvc5.sort method)": [[80, "cvc5.Sort.getSymbol"]], "gettuplelength() (cvc5.sort method)": [[80, "cvc5.Sort.getTupleLength"]], "gettuplesorts() (cvc5.sort method)": [[80, "cvc5.Sort.getTupleSorts"]], "getuninterpretedsortconstructor() (cvc5.sort method)": [[80, "cvc5.Sort.getUninterpretedSortConstructor"]], "getuninterpretedsortconstructorarity() (cvc5.sort method)": [[80, "cvc5.Sort.getUninterpretedSortConstructorArity"]], "hassymbol() (cvc5.sort method)": [[80, "cvc5.Sort.hasSymbol"]], "instantiate() (cvc5.sort method)": [[80, "cvc5.Sort.instantiate"]], "isabstract() (cvc5.sort method)": [[80, "cvc5.Sort.isAbstract"]], "isarray() (cvc5.sort method)": [[80, "cvc5.Sort.isArray"]], "isbag() (cvc5.sort method)": [[80, "cvc5.Sort.isBag"]], "isbitvector() (cvc5.sort method)": [[80, "cvc5.Sort.isBitVector"]], "isboolean() (cvc5.sort method)": [[80, "cvc5.Sort.isBoolean"]], "isdatatype() (cvc5.sort method)": [[80, "cvc5.Sort.isDatatype"]], "isdatatypeconstructor() (cvc5.sort method)": [[80, "cvc5.Sort.isDatatypeConstructor"]], "isdatatypeselector() (cvc5.sort method)": [[80, "cvc5.Sort.isDatatypeSelector"]], "isdatatypetester() (cvc5.sort method)": [[80, "cvc5.Sort.isDatatypeTester"]], "isdatatypeupdater() (cvc5.sort method)": [[80, "cvc5.Sort.isDatatypeUpdater"]], "isfinitefield() (cvc5.sort method)": [[80, "cvc5.Sort.isFiniteField"]], "isfloatingpoint() (cvc5.sort method)": [[80, "cvc5.Sort.isFloatingPoint"]], "isfunction() (cvc5.sort method)": [[80, "cvc5.Sort.isFunction"]], "isinstantiated() (cvc5.sort method)": [[80, "cvc5.Sort.isInstantiated"]], "isinteger() (cvc5.sort method)": [[80, "cvc5.Sort.isInteger"]], "isnull() (cvc5.sort method)": [[80, "cvc5.Sort.isNull"]], "isnullable() (cvc5.sort method)": [[80, "cvc5.Sort.isNullable"]], "ispredicate() (cvc5.sort method)": [[80, "cvc5.Sort.isPredicate"]], "isreal() (cvc5.sort method)": [[80, "cvc5.Sort.isReal"]], "isrecord() (cvc5.sort method)": [[80, "cvc5.Sort.isRecord"]], "isregexp() (cvc5.sort method)": [[80, "cvc5.Sort.isRegExp"]], "isroundingmode() (cvc5.sort method)": [[80, "cvc5.Sort.isRoundingMode"]], "issequence() (cvc5.sort method)": [[80, "cvc5.Sort.isSequence"]], "isset() (cvc5.sort method)": [[80, "cvc5.Sort.isSet"]], "isstring() (cvc5.sort method)": [[80, "cvc5.Sort.isString"]], "istuple() (cvc5.sort method)": [[80, "cvc5.Sort.isTuple"]], "isuninterpretedsort() (cvc5.sort method)": [[80, "cvc5.Sort.isUninterpretedSort"]], "isuninterpretedsortconstructor() (cvc5.sort method)": [[80, "cvc5.Sort.isUninterpretedSortConstructor"]], "substitute() (cvc5.sort method)": [[80, "cvc5.Sort.substitute"]], "abstract_sort (cvc5.sortkind attribute)": [[81, "cvc5.SortKind.ABSTRACT_SORT"]], "array_sort (cvc5.sortkind attribute)": [[81, "cvc5.SortKind.ARRAY_SORT"]], "bag_sort (cvc5.sortkind attribute)": [[81, "cvc5.SortKind.BAG_SORT"]], "bitvector_sort (cvc5.sortkind attribute)": [[81, "cvc5.SortKind.BITVECTOR_SORT"]], "boolean_sort (cvc5.sortkind attribute)": [[81, "cvc5.SortKind.BOOLEAN_SORT"]], "datatype_sort (cvc5.sortkind attribute)": [[81, "cvc5.SortKind.DATATYPE_SORT"]], "finite_field_sort (cvc5.sortkind attribute)": [[81, "cvc5.SortKind.FINITE_FIELD_SORT"]], "floatingpoint_sort (cvc5.sortkind attribute)": [[81, "cvc5.SortKind.FLOATINGPOINT_SORT"]], "function_sort (cvc5.sortkind attribute)": [[81, "cvc5.SortKind.FUNCTION_SORT"]], "integer_sort (cvc5.sortkind attribute)": [[81, "cvc5.SortKind.INTEGER_SORT"]], "internal_sort_kind (cvc5.sortkind attribute)": [[81, "cvc5.SortKind.INTERNAL_SORT_KIND"]], "last_sort_kind (cvc5.sortkind attribute)": [[81, "cvc5.SortKind.LAST_SORT_KIND"]], "nullable_sort (cvc5.sortkind attribute)": [[81, "cvc5.SortKind.NULLABLE_SORT"]], "null_sort (cvc5.sortkind attribute)": [[81, "cvc5.SortKind.NULL_SORT"]], "real_sort (cvc5.sortkind attribute)": [[81, "cvc5.SortKind.REAL_SORT"]], "reglan_sort (cvc5.sortkind attribute)": [[81, "cvc5.SortKind.REGLAN_SORT"]], "roundingmode_sort (cvc5.sortkind attribute)": [[81, "cvc5.SortKind.ROUNDINGMODE_SORT"]], "sequence_sort (cvc5.sortkind attribute)": [[81, "cvc5.SortKind.SEQUENCE_SORT"]], "set_sort (cvc5.sortkind attribute)": [[81, "cvc5.SortKind.SET_SORT"]], "string_sort (cvc5.sortkind attribute)": [[81, "cvc5.SortKind.STRING_SORT"]], "sortkind (class in cvc5)": [[81, "cvc5.SortKind"]], "tuple_sort (cvc5.sortkind attribute)": [[81, "cvc5.SortKind.TUPLE_SORT"]], "undefined_sort_kind (cvc5.sortkind attribute)": [[81, "cvc5.SortKind.UNDEFINED_SORT_KIND"]], "uninterpreted_sort (cvc5.sortkind attribute)": [[81, "cvc5.SortKind.UNINTERPRETED_SORT"]], "statistics (class in cvc5)": [[82, "cvc5.Statistics"]], "__getitem__() (cvc5.statistics method)": [[82, "cvc5.Statistics.__getitem__"]], "__iter__() (cvc5.statistics method)": [[82, "cvc5.Statistics.__iter__"]], "__next__() (cvc5.statistics method)": [[82, "cvc5.Statistics.__next__"]], "get() (cvc5.statistics method)": [[82, "cvc5.Statistics.get"]], "symbolmanager (class in cvc5)": [[83, "cvc5.SymbolManager"]], "getdeclaredsorts() (cvc5.symbolmanager method)": [[83, "cvc5.SymbolManager.getDeclaredSorts"]], "getdeclaredterms() (cvc5.symbolmanager method)": [[83, "cvc5.SymbolManager.getDeclaredTerms"]], "getlogic() (cvc5.symbolmanager method)": [[83, "cvc5.SymbolManager.getLogic"]], "getnamedterms() (cvc5.symbolmanager method)": [[83, "cvc5.SymbolManager.getNamedTerms"]], "islogicset() (cvc5.symbolmanager method)": [[83, "cvc5.SymbolManager.isLogicSet"]], "synthresult (class in cvc5)": [[84, "cvc5.SynthResult"]], "hasnosolution() (cvc5.synthresult method)": [[84, "cvc5.SynthResult.hasNoSolution"]], "hassolution() (cvc5.synthresult method)": [[84, "cvc5.SynthResult.hasSolution"]], "isnull() (cvc5.synthresult method)": [[84, "cvc5.SynthResult.isNull"]], "isunknown() (cvc5.synthresult method)": [[84, "cvc5.SynthResult.isUnknown"]], "term (class in cvc5)": [[85, "cvc5.Term"]], "__getitem__() (cvc5.term method)": [[85, "cvc5.Term.__getitem__"]], "__iter__() (cvc5.term method)": [[85, "cvc5.Term.__iter__"]], "andterm() (cvc5.term method)": [[85, "cvc5.Term.andTerm"]], "eqterm() (cvc5.term method)": [[85, "cvc5.Term.eqTerm"]], "getbitvectorvalue() (cvc5.term method)": [[85, "cvc5.Term.getBitVectorValue"]], "getbooleanvalue() (cvc5.term method)": [[85, "cvc5.Term.getBooleanValue"]], "getcardinalityconstraint() (cvc5.term method)": [[85, "cvc5.Term.getCardinalityConstraint"]], "getconstarraybase() (cvc5.term method)": [[85, "cvc5.Term.getConstArrayBase"]], "getfinitefieldvalue() (cvc5.term method)": [[85, "cvc5.Term.getFiniteFieldValue"]], "getfloatingpointvalue() (cvc5.term method)": [[85, "cvc5.Term.getFloatingPointValue"]], "getid() (cvc5.term method)": [[85, "cvc5.Term.getId"]], "getintegervalue() (cvc5.term method)": [[85, "cvc5.Term.getIntegerValue"]], "getkind() (cvc5.term method)": [[85, "cvc5.Term.getKind"]], "getnumchildren() (cvc5.term method)": [[85, "cvc5.Term.getNumChildren"]], "getop() (cvc5.term method)": [[85, "cvc5.Term.getOp"]], "getrealalgebraicnumberdefiningpolynomial() (cvc5.term method)": [[85, "cvc5.Term.getRealAlgebraicNumberDefiningPolynomial"]], "getrealalgebraicnumberlowerbound() (cvc5.term method)": [[85, "cvc5.Term.getRealAlgebraicNumberLowerBound"]], "getrealalgebraicnumberupperbound() (cvc5.term method)": [[85, "cvc5.Term.getRealAlgebraicNumberUpperBound"]], "getrealorintegervaluesign() (cvc5.term method)": [[85, "cvc5.Term.getRealOrIntegerValueSign"]], "getrealvalue() (cvc5.term method)": [[85, "cvc5.Term.getRealValue"]], "getroundingmodevalue() (cvc5.term method)": [[85, "cvc5.Term.getRoundingModeValue"]], "getsequencevalue() (cvc5.term method)": [[85, "cvc5.Term.getSequenceValue"]], "getsetvalue() (cvc5.term method)": [[85, "cvc5.Term.getSetValue"]], "getskolemid() (cvc5.term method)": [[85, "cvc5.Term.getSkolemId"]], "getskolemindices() (cvc5.term method)": [[85, "cvc5.Term.getSkolemIndices"]], "getsort() (cvc5.term method)": [[85, "cvc5.Term.getSort"]], "getstringvalue() (cvc5.term method)": [[85, "cvc5.Term.getStringValue"]], "getsymbol() (cvc5.term method)": [[85, "cvc5.Term.getSymbol"]], "gettuplevalue() (cvc5.term method)": [[85, "cvc5.Term.getTupleValue"]], "getuninterpretedsortvalue() (cvc5.term method)": [[85, "cvc5.Term.getUninterpretedSortValue"]], "hasop() (cvc5.term method)": [[85, "cvc5.Term.hasOp"]], "hassymbol() (cvc5.term method)": [[85, "cvc5.Term.hasSymbol"]], "impterm() (cvc5.term method)": [[85, "cvc5.Term.impTerm"]], "isbitvectorvalue() (cvc5.term method)": [[85, "cvc5.Term.isBitVectorValue"]], "isbooleanvalue() (cvc5.term method)": [[85, "cvc5.Term.isBooleanValue"]], "iscardinalityconstraint() (cvc5.term method)": [[85, "cvc5.Term.isCardinalityConstraint"]], "isconstarray() (cvc5.term method)": [[85, "cvc5.Term.isConstArray"]], "isfinitefieldvalue() (cvc5.term method)": [[85, "cvc5.Term.isFiniteFieldValue"]], "isfloatingpointnan() (cvc5.term method)": [[85, "cvc5.Term.isFloatingPointNaN"]], "isfloatingpointneginf() (cvc5.term method)": [[85, "cvc5.Term.isFloatingPointNegInf"]], "isfloatingpointnegzero() (cvc5.term method)": [[85, "cvc5.Term.isFloatingPointNegZero"]], "isfloatingpointposinf() (cvc5.term method)": [[85, "cvc5.Term.isFloatingPointPosInf"]], "isfloatingpointposzero() (cvc5.term method)": [[85, "cvc5.Term.isFloatingPointPosZero"]], "isfloatingpointvalue() (cvc5.term method)": [[85, "cvc5.Term.isFloatingPointValue"]], "isintegervalue() (cvc5.term method)": [[85, "cvc5.Term.isIntegerValue"]], "isnull() (cvc5.term method)": [[85, "cvc5.Term.isNull"]], "isrealalgebraicnumber() (cvc5.term method)": [[85, "cvc5.Term.isRealAlgebraicNumber"]], "isrealvalue() (cvc5.term method)": [[85, "cvc5.Term.isRealValue"]], "isroundingmodevalue() (cvc5.term method)": [[85, "cvc5.Term.isRoundingModeValue"]], "issequencevalue() (cvc5.term method)": [[85, "cvc5.Term.isSequenceValue"]], "issetvalue() (cvc5.term method)": [[85, "cvc5.Term.isSetValue"]], "isskolem() (cvc5.term method)": [[85, "cvc5.Term.isSkolem"]], "isstringvalue() (cvc5.term method)": [[85, "cvc5.Term.isStringValue"]], "istuplevalue() (cvc5.term method)": [[85, "cvc5.Term.isTupleValue"]], "isuninterpretedsortvalue() (cvc5.term method)": [[85, "cvc5.Term.isUninterpretedSortValue"]], "iteterm() (cvc5.term method)": [[85, "cvc5.Term.iteTerm"]], "notterm() (cvc5.term method)": [[85, "cvc5.Term.notTerm"]], "orterm() (cvc5.term method)": [[85, "cvc5.Term.orTerm"]], "substitute() (cvc5.term method)": [[85, "cvc5.Term.substitute"]], "topythonobj() (cvc5.term method)": [[85, "cvc5.Term.toPythonObj"]], "xorterm() (cvc5.term method)": [[85, "cvc5.Term.xorTerm"]], "termmanager (class in cvc5)": [[86, "cvc5.TermManager"]], "getbooleansort() (cvc5.termmanager method)": [[86, "cvc5.TermManager.getBooleanSort"]], "getintegersort() (cvc5.termmanager method)": [[86, "cvc5.TermManager.getIntegerSort"]], "getnumindicesforskolemid() (cvc5.termmanager method)": [[86, "cvc5.TermManager.getNumIndicesForSkolemId"]], "getrealsort() (cvc5.termmanager method)": [[86, "cvc5.TermManager.getRealSort"]], "getregexpsort() (cvc5.termmanager method)": [[86, "cvc5.TermManager.getRegExpSort"]], "getroundingmodesort() (cvc5.termmanager method)": [[86, "cvc5.TermManager.getRoundingModeSort"]], "getstatistics() (cvc5.termmanager method)": [[86, "cvc5.TermManager.getStatistics"]], "getstringsort() (cvc5.termmanager method)": [[86, "cvc5.TermManager.getStringSort"]], "mkabstractsort() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkAbstractSort"]], "mkarraysort() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkArraySort"]], "mkbagsort() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkBagSort"]], "mkbitvector() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkBitVector"]], "mkbitvectorsort() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkBitVectorSort"]], "mkboolean() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkBoolean"]], "mkcardinalityconstraint() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkCardinalityConstraint"]], "mkconst() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkConst"]], "mkconstarray() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkConstArray"]], "mkdatatypeconstructordecl() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkDatatypeConstructorDecl"]], "mkdatatypedecl() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkDatatypeDecl"]], "mkdatatypesort() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkDatatypeSort"]], "mkdatatypesorts() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkDatatypeSorts"]], "mkemptybag() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkEmptyBag"]], "mkemptysequence() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkEmptySequence"]], "mkemptyset() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkEmptySet"]], "mkfalse() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkFalse"]], "mkfinitefieldelem() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkFiniteFieldElem"]], "mkfinitefieldsort() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkFiniteFieldSort"]], "mkfloatingpoint() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkFloatingPoint"]], "mkfloatingpointnan() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkFloatingPointNaN"]], "mkfloatingpointneginf() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkFloatingPointNegInf"]], "mkfloatingpointnegzero() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkFloatingPointNegZero"]], "mkfloatingpointposinf() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkFloatingPointPosInf"]], "mkfloatingpointposzero() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkFloatingPointPosZero"]], "mkfloatingpointsort() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkFloatingPointSort"]], "mkfunctionsort() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkFunctionSort"]], "mkinteger() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkInteger"]], "mknullableisnull() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkNullableIsNull"]], "mknullableissome() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkNullableIsSome"]], "mknullablelift() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkNullableLift"]], "mknullablenull() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkNullableNull"]], "mknullablesome() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkNullableSome"]], "mknullablesort() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkNullableSort"]], "mknullableval() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkNullableVal"]], "mkop() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkOp"]], "mkparamsort() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkParamSort"]], "mkpi() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkPi"]], "mkpredicatesort() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkPredicateSort"]], "mkreal() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkReal"]], "mkrecordsort() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkRecordSort"]], "mkregexpall() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkRegexpAll"]], "mkregexpallchar() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkRegexpAllchar"]], "mkregexpnone() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkRegexpNone"]], "mkroundingmode() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkRoundingMode"]], "mksepemp() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkSepEmp"]], "mksepnil() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkSepNil"]], "mksequencesort() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkSequenceSort"]], "mksetsort() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkSetSort"]], "mkskolem() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkSkolem"]], "mkstring() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkString"]], "mkterm() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkTerm"]], "mktrue() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkTrue"]], "mktuple() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkTuple"]], "mktuplesort() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkTupleSort"]], "mkuninterpretedsort() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkUninterpretedSort"]], "mkuninterpretedsortconstructorsort() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkUninterpretedSortConstructorSort"]], "mkuniverseset() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkUniverseSet"]], "mkunresolveddatatypesort() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkUnresolvedDatatypeSort"]], "mkvar() (cvc5.termmanager method)": [[86, "cvc5.TermManager.mkVar"]], "incomplete (cvc5.unknownexplanation attribute)": [[87, "cvc5.UnknownExplanation.INCOMPLETE"]], "interrupted (cvc5.unknownexplanation attribute)": [[87, "cvc5.UnknownExplanation.INTERRUPTED"]], "memout (cvc5.unknownexplanation attribute)": [[87, "cvc5.UnknownExplanation.MEMOUT"]], "other (cvc5.unknownexplanation attribute)": [[87, "cvc5.UnknownExplanation.OTHER"]], "requires_check_again (cvc5.unknownexplanation attribute)": [[87, "cvc5.UnknownExplanation.REQUIRES_CHECK_AGAIN"]], "requires_full_check (cvc5.unknownexplanation attribute)": [[87, "cvc5.UnknownExplanation.REQUIRES_FULL_CHECK"]], "resourceout (cvc5.unknownexplanation attribute)": [[87, "cvc5.UnknownExplanation.RESOURCEOUT"]], "timeout (cvc5.unknownexplanation attribute)": [[87, "cvc5.UnknownExplanation.TIMEOUT"]], "unknown_reason (cvc5.unknownexplanation attribute)": [[87, "cvc5.UnknownExplanation.UNKNOWN_REASON"]], "unsupported (cvc5.unknownexplanation attribute)": [[87, "cvc5.UnknownExplanation.UNSUPPORTED"]], "unknownexplanation (class in cvc5)": [[87, "cvc5.UnknownExplanation"]], "add() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Add"]], "arccosecant() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Arccosecant"]], "arccosine() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Arccosine"]], "arccotangent() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Arccotangent"]], "arcsecant() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Arcsecant"]], "arcsine() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Arcsine"]], "arctangent() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Arctangent"]], "arithref (class in cvc5.pythonic)": [[89, "cvc5.pythonic.ArithRef"]], "arithsortref (class in cvc5.pythonic)": [[89, "cvc5.pythonic.ArithSortRef"]], "cbrt() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Cbrt"]], "cosecant() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Cosecant"]], "cosine() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Cosine"]], "cotangent() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Cotangent"]], "div() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Div"]], "exponential() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Exponential"]], "freshint() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.FreshInt"]], "freshreal() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.FreshReal"]], "geq() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Geq"]], "gt() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Gt"]], "int() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Int"]], "intnumref (class in cvc5.pythonic)": [[89, "cvc5.pythonic.IntNumRef"]], "intsort() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.IntSort"]], "intval() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.IntVal"]], "intvector() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.IntVector"]], "ints() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Ints"]], "intsmodulus() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.IntsModulus"]], "isint() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.IsInt"]], "leq() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Leq"]], "lt() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Lt"]], "mult() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Mult"]], "pi() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Pi"]], "pow() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Pow"]], "q() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Q"]], "ratnumref (class in cvc5.pythonic)": [[89, "cvc5.pythonic.RatNumRef"]], "ratval() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.RatVal"]], "real() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Real"]], "realsort() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.RealSort"]], "realval() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.RealVal"]], "realvector() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.RealVector"]], "reals() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Reals"]], "secant() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Secant"]], "sine() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Sine"]], "sqrt() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Sqrt"]], "sub() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Sub"]], "tangent() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.Tangent"]], "toint() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.ToInt"]], "toreal() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.ToReal"]], "uminus() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.UMinus"]], "__add__() (cvc5.pythonic.arithref method)": [[89, "cvc5.pythonic.ArithRef.__add__"]], "__div__() (cvc5.pythonic.arithref method)": [[89, "cvc5.pythonic.ArithRef.__div__"]], "__ge__() (cvc5.pythonic.arithref method)": [[89, "cvc5.pythonic.ArithRef.__ge__"]], "__gt__() (cvc5.pythonic.arithref method)": [[89, "cvc5.pythonic.ArithRef.__gt__"]], "__le__() (cvc5.pythonic.arithref method)": [[89, "cvc5.pythonic.ArithRef.__le__"]], "__lt__() (cvc5.pythonic.arithref method)": [[89, "cvc5.pythonic.ArithRef.__lt__"]], "__mod__() (cvc5.pythonic.arithref method)": [[89, "cvc5.pythonic.ArithRef.__mod__"]], "__mul__() (cvc5.pythonic.arithref method)": [[89, "cvc5.pythonic.ArithRef.__mul__"]], "__neg__() (cvc5.pythonic.arithref method)": [[89, "cvc5.pythonic.ArithRef.__neg__"]], "__pos__() (cvc5.pythonic.arithref method)": [[89, "cvc5.pythonic.ArithRef.__pos__"]], "__pow__() (cvc5.pythonic.arithref method)": [[89, "cvc5.pythonic.ArithRef.__pow__"]], "__radd__() (cvc5.pythonic.arithref method)": [[89, "cvc5.pythonic.ArithRef.__radd__"]], "__rdiv__() (cvc5.pythonic.arithref method)": [[89, "cvc5.pythonic.ArithRef.__rdiv__"]], "__rmod__() (cvc5.pythonic.arithref method)": [[89, "cvc5.pythonic.ArithRef.__rmod__"]], "__rmul__() (cvc5.pythonic.arithref method)": [[89, "cvc5.pythonic.ArithRef.__rmul__"]], "__rpow__() (cvc5.pythonic.arithref method)": [[89, "cvc5.pythonic.ArithRef.__rpow__"]], "__rsub__() (cvc5.pythonic.arithref method)": [[89, "cvc5.pythonic.ArithRef.__rsub__"]], "__rtruediv__() (cvc5.pythonic.arithref method)": [[89, "cvc5.pythonic.ArithRef.__rtruediv__"]], "__sub__() (cvc5.pythonic.arithref method)": [[89, "cvc5.pythonic.ArithRef.__sub__"]], "__truediv__() (cvc5.pythonic.arithref method)": [[89, "cvc5.pythonic.ArithRef.__truediv__"]], "as_binary_string() (cvc5.pythonic.intnumref method)": [[89, "cvc5.pythonic.IntNumRef.as_binary_string"]], "as_decimal() (cvc5.pythonic.ratnumref method)": [[89, "cvc5.pythonic.RatNumRef.as_decimal"]], "as_fraction() (cvc5.pythonic.ratnumref method)": [[89, "cvc5.pythonic.RatNumRef.as_fraction"]], "as_long() (cvc5.pythonic.intnumref method)": [[89, "cvc5.pythonic.IntNumRef.as_long"]], "as_long() (cvc5.pythonic.ratnumref method)": [[89, "cvc5.pythonic.RatNumRef.as_long"]], "as_string() (cvc5.pythonic.intnumref method)": [[89, "cvc5.pythonic.IntNumRef.as_string"]], "as_string() (cvc5.pythonic.ratnumref method)": [[89, "cvc5.pythonic.RatNumRef.as_string"]], "cast() (cvc5.pythonic.arithsortref method)": [[89, "cvc5.pythonic.ArithSortRef.cast"]], "denominator() (cvc5.pythonic.ratnumref method)": [[89, "cvc5.pythonic.RatNumRef.denominator"]], "denominator_as_long() (cvc5.pythonic.ratnumref method)": [[89, "cvc5.pythonic.RatNumRef.denominator_as_long"]], "is_add() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.is_add"]], "is_arith() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.is_arith"]], "is_arith_sort() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.is_arith_sort"]], "is_div() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.is_div"]], "is_ge() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.is_ge"]], "is_gt() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.is_gt"]], "is_idiv() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.is_idiv"]], "is_int() (cvc5.pythonic.arithref method)": [[89, "cvc5.pythonic.ArithRef.is_int"]], "is_int() (cvc5.pythonic.arithsortref method)": [[89, "cvc5.pythonic.ArithSortRef.is_int"]], "is_int() (cvc5.pythonic.ratnumref method)": [[89, "cvc5.pythonic.RatNumRef.is_int"]], "is_int() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.is_int"]], "is_int_value() (cvc5.pythonic.ratnumref method)": [[89, "cvc5.pythonic.RatNumRef.is_int_value"]], "is_int_value() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.is_int_value"]], "is_is_int() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.is_is_int"]], "is_le() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.is_le"]], "is_lt() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.is_lt"]], "is_mod() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.is_mod"]], "is_mul() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.is_mul"]], "is_rational_value() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.is_rational_value"]], "is_real() (cvc5.pythonic.arithref method)": [[89, "cvc5.pythonic.ArithRef.is_real"]], "is_real() (cvc5.pythonic.arithsortref method)": [[89, "cvc5.pythonic.ArithSortRef.is_real"]], "is_real() (cvc5.pythonic.ratnumref method)": [[89, "cvc5.pythonic.RatNumRef.is_real"]], "is_real() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.is_real"]], "is_sub() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.is_sub"]], "is_to_int() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.is_to_int"]], "is_to_real() (in module cvc5.pythonic)": [[89, "cvc5.pythonic.is_to_real"]], "numerator() (cvc5.pythonic.ratnumref method)": [[89, "cvc5.pythonic.RatNumRef.numerator"]], "numerator_as_long() (cvc5.pythonic.ratnumref method)": [[89, "cvc5.pythonic.RatNumRef.numerator_as_long"]], "sort() (cvc5.pythonic.arithref method)": [[89, "cvc5.pythonic.ArithRef.sort"]], "subsort() (cvc5.pythonic.arithsortref method)": [[89, "cvc5.pythonic.ArithSortRef.subsort"]], "array() (in module cvc5.pythonic)": [[90, "cvc5.pythonic.Array"]], "arrayref (class in cvc5.pythonic)": [[90, "cvc5.pythonic.ArrayRef"]], "arraysort() (in module cvc5.pythonic)": [[90, "cvc5.pythonic.ArraySort"]], "arraysortref (class in cvc5.pythonic)": [[90, "cvc5.pythonic.ArraySortRef"]], "constarray() (in module cvc5.pythonic)": [[90, "cvc5.pythonic.ConstArray"]], "k() (in module cvc5.pythonic)": [[90, "cvc5.pythonic.K"]], "select() (in module cvc5.pythonic)": [[90, "cvc5.pythonic.Select"]], "store() (in module cvc5.pythonic)": [[90, "cvc5.pythonic.Store"]], "update() (in module cvc5.pythonic)": [[90, "cvc5.pythonic.Update"]], "__getitem__() (cvc5.pythonic.arrayref method)": [[90, "cvc5.pythonic.ArrayRef.__getitem__"]], "arg() (cvc5.pythonic.arrayref method)": [[90, "cvc5.pythonic.ArrayRef.arg"]], "default() (cvc5.pythonic.arrayref method)": [[90, "cvc5.pythonic.ArrayRef.default"]], "domain() (cvc5.pythonic.arrayref method)": [[90, "cvc5.pythonic.ArrayRef.domain"]], "domain() (cvc5.pythonic.arraysortref method)": [[90, "cvc5.pythonic.ArraySortRef.domain"]], "is_k() (in module cvc5.pythonic)": [[90, "cvc5.pythonic.is_K"]], "is_array() (in module cvc5.pythonic)": [[90, "cvc5.pythonic.is_array"]], "is_array_sort() (in module cvc5.pythonic)": [[90, "cvc5.pythonic.is_array_sort"]], "is_const_array() (in module cvc5.pythonic)": [[90, "cvc5.pythonic.is_const_array"]], "is_select() (in module cvc5.pythonic)": [[90, "cvc5.pythonic.is_select"]], "is_store() (in module cvc5.pythonic)": [[90, "cvc5.pythonic.is_store"]], "is_update() (in module cvc5.pythonic)": [[90, "cvc5.pythonic.is_update"]], "range() (cvc5.pythonic.arrayref method)": [[90, "cvc5.pythonic.ArrayRef.range"]], "range() (cvc5.pythonic.arraysortref method)": [[90, "cvc5.pythonic.ArraySortRef.range"]], "sort() (cvc5.pythonic.arrayref method)": [[90, "cvc5.pythonic.ArrayRef.sort"]], "bv2int() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.BV2Int"]], "bvadd() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.BVAdd"]], "bvand() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.BVAnd"]], "bvmult() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.BVMult"]], "bvneg() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.BVNeg"]], "bvnot() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.BVNot"]], "bvor() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.BVOr"]], "bvredand() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.BVRedAnd"]], "bvredor() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.BVRedOr"]], "bvsub() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.BVSub"]], "bvxor() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.BVXor"]], "bitvec() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.BitVec"]], "bitvecnumref (class in cvc5.pythonic)": [[91, "cvc5.pythonic.BitVecNumRef"]], "bitvecref (class in cvc5.pythonic)": [[91, "cvc5.pythonic.BitVecRef"]], "bitvecsort() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.BitVecSort"]], "bitvecsortref (class in cvc5.pythonic)": [[91, "cvc5.pythonic.BitVecSortRef"]], "bitvecval() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.BitVecVal"]], "bitvecs() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.BitVecs"]], "concat() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.Concat"]], "extract() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.Extract"]], "int2bv() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.Int2BV"]], "lshr() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.LShR"]], "repeatbitvec() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.RepeatBitVec"]], "rotateleft() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.RotateLeft"]], "rotateright() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.RotateRight"]], "sdiv() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.SDiv"]], "sge() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.SGE"]], "sgt() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.SGT"]], "sle() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.SLE"]], "slt() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.SLT"]], "smod() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.SMod"]], "srem() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.SRem"]], "signext() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.SignExt"]], "udiv() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.UDiv"]], "uge() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.UGE"]], "ugt() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.UGT"]], "ule() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.ULE"]], "ult() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.ULT"]], "urem() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.URem"]], "zeroext() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.ZeroExt"]], "__add__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__add__"]], "__and__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__and__"]], "__div__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__div__"]], "__ge__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__ge__"]], "__gt__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__gt__"]], "__invert__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__invert__"]], "__le__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__le__"]], "__lshift__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__lshift__"]], "__lt__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__lt__"]], "__mod__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__mod__"]], "__mul__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__mul__"]], "__neg__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__neg__"]], "__or__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__or__"]], "__pos__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__pos__"]], "__radd__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__radd__"]], "__rand__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__rand__"]], "__rdiv__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__rdiv__"]], "__rlshift__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__rlshift__"]], "__rmod__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__rmod__"]], "__rmul__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__rmul__"]], "__ror__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__ror__"]], "__rrshift__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__rrshift__"]], "__rshift__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__rshift__"]], "__rsub__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__rsub__"]], "__rtruediv__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__rtruediv__"]], "__rxor__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__rxor__"]], "__sub__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__sub__"]], "__truediv__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__truediv__"]], "__xor__() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.__xor__"]], "as_long() (cvc5.pythonic.bitvecnumref method)": [[91, "cvc5.pythonic.BitVecNumRef.as_long"]], "as_signed_long() (cvc5.pythonic.bitvecnumref method)": [[91, "cvc5.pythonic.BitVecNumRef.as_signed_long"]], "cast() (cvc5.pythonic.bitvecsortref method)": [[91, "cvc5.pythonic.BitVecSortRef.cast"]], "is_bv() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.is_bv"]], "is_bv_sort() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.is_bv_sort"]], "is_bv_value() (in module cvc5.pythonic)": [[91, "cvc5.pythonic.is_bv_value"]], "size() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.size"]], "size() (cvc5.pythonic.bitvecsortref method)": [[91, "cvc5.pythonic.BitVecSortRef.size"]], "sort() (cvc5.pythonic.bitvecref method)": [[91, "cvc5.pythonic.BitVecRef.sort"]], "subsort() (cvc5.pythonic.bitvecsortref method)": [[91, "cvc5.pythonic.BitVecSortRef.subsort"]], "and() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.And"]], "bool() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.Bool"]], "boolref (class in cvc5.pythonic)": [[92, "cvc5.pythonic.BoolRef"]], "boolsort() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.BoolSort"]], "boolsortref (class in cvc5.pythonic)": [[92, "cvc5.pythonic.BoolSortRef"]], "boolval() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.BoolVal"]], "boolvector() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.BoolVector"]], "bools() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.Bools"]], "const() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.Const"]], "consts() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.Consts"]], "distinct() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.Distinct"]], "exprref (class in cvc5.pythonic)": [[92, "cvc5.pythonic.ExprRef"]], "freshbool() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.FreshBool"]], "freshconst() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.FreshConst"]], "freshfunction() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.FreshFunction"]], "funcdeclref (class in cvc5.pythonic)": [[92, "cvc5.pythonic.FuncDeclRef"]], "function() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.Function"]], "if() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.If"]], "implies() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.Implies"]], "not() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.Not"]], "or() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.Or"]], "sortref (class in cvc5.pythonic)": [[92, "cvc5.pythonic.SortRef"]], "xor() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.Xor"]], "__bool__() (cvc5.pythonic.exprref method)": [[92, "cvc5.pythonic.ExprRef.__bool__"]], "__call__() (cvc5.pythonic.funcdeclref method)": [[92, "cvc5.pythonic.FuncDeclRef.__call__"]], "__eq__() (cvc5.pythonic.exprref method)": [[92, "cvc5.pythonic.ExprRef.__eq__"]], "__eq__() (cvc5.pythonic.sortref method)": [[92, "cvc5.pythonic.SortRef.__eq__"]], "__hash__() (cvc5.pythonic.exprref method)": [[92, "cvc5.pythonic.ExprRef.__hash__"]], "__hash__() (cvc5.pythonic.sortref method)": [[92, "cvc5.pythonic.SortRef.__hash__"]], "__init__() (cvc5.pythonic.exprref method)": [[92, "cvc5.pythonic.ExprRef.__init__"]], "__init__() (cvc5.pythonic.sortref method)": [[92, "cvc5.pythonic.SortRef.__init__"]], "__mul__() (cvc5.pythonic.boolref method)": [[92, "cvc5.pythonic.BoolRef.__mul__"]], "__ne__() (cvc5.pythonic.exprref method)": [[92, "cvc5.pythonic.ExprRef.__ne__"]], "__ne__() (cvc5.pythonic.sortref method)": [[92, "cvc5.pythonic.SortRef.__ne__"]], "__nonzero__() (cvc5.pythonic.exprref method)": [[92, "cvc5.pythonic.ExprRef.__nonzero__"]], "__repr__() (cvc5.pythonic.exprref method)": [[92, "cvc5.pythonic.ExprRef.__repr__"]], "__repr__() (cvc5.pythonic.sortref method)": [[92, "cvc5.pythonic.SortRef.__repr__"]], "__rmul__() (cvc5.pythonic.boolref method)": [[92, "cvc5.pythonic.BoolRef.__rmul__"]], "__str__() (cvc5.pythonic.exprref method)": [[92, "cvc5.pythonic.ExprRef.__str__"]], "__str__() (cvc5.pythonic.sortref method)": [[92, "cvc5.pythonic.SortRef.__str__"]], "__weakref__ (cvc5.pythonic.exprref attribute)": [[92, "cvc5.pythonic.ExprRef.__weakref__"]], "__weakref__ (cvc5.pythonic.sortref attribute)": [[92, "cvc5.pythonic.SortRef.__weakref__"]], "arg() (cvc5.pythonic.exprref method)": [[92, "cvc5.pythonic.ExprRef.arg"]], "arity() (cvc5.pythonic.funcdeclref method)": [[92, "cvc5.pythonic.FuncDeclRef.arity"]], "as_ast() (cvc5.pythonic.exprref method)": [[92, "cvc5.pythonic.ExprRef.as_ast"]], "as_ast() (cvc5.pythonic.sortref method)": [[92, "cvc5.pythonic.SortRef.as_ast"]], "cast() (cvc5.pythonic.boolsortref method)": [[92, "cvc5.pythonic.BoolSortRef.cast"]], "cast() (cvc5.pythonic.sortref method)": [[92, "cvc5.pythonic.SortRef.cast"]], "children() (cvc5.pythonic.exprref method)": [[92, "cvc5.pythonic.ExprRef.children"]], "decl() (cvc5.pythonic.exprref method)": [[92, "cvc5.pythonic.ExprRef.decl"]], "domain() (cvc5.pythonic.funcdeclref method)": [[92, "cvc5.pythonic.FuncDeclRef.domain"]], "eq() (cvc5.pythonic.exprref method)": [[92, "cvc5.pythonic.ExprRef.eq"]], "eq() (cvc5.pythonic.sortref method)": [[92, "cvc5.pythonic.SortRef.eq"]], "get_id() (cvc5.pythonic.exprref method)": [[92, "cvc5.pythonic.ExprRef.get_id"]], "hash() (cvc5.pythonic.exprref method)": [[92, "cvc5.pythonic.ExprRef.hash"]], "hash() (cvc5.pythonic.sortref method)": [[92, "cvc5.pythonic.SortRef.hash"]], "is_and() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.is_and"]], "is_bool() (cvc5.pythonic.boolsortref method)": [[92, "cvc5.pythonic.BoolSortRef.is_bool"]], "is_bool() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.is_bool"]], "is_bool_value() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.is_bool_value"]], "is_const() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.is_const"]], "is_distinct() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.is_distinct"]], "is_eq() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.is_eq"]], "is_false() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.is_false"]], "is_func_decl() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.is_func_decl"]], "is_implies() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.is_implies"]], "is_int() (cvc5.pythonic.boolsortref method)": [[92, "cvc5.pythonic.BoolSortRef.is_int"]], "is_int() (cvc5.pythonic.exprref method)": [[92, "cvc5.pythonic.ExprRef.is_int"]], "is_int() (cvc5.pythonic.sortref method)": [[92, "cvc5.pythonic.SortRef.is_int"]], "is_not() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.is_not"]], "is_or() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.is_or"]], "is_true() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.is_true"]], "kind() (cvc5.pythonic.exprref method)": [[92, "cvc5.pythonic.ExprRef.kind"]], "mk_not() (in module cvc5.pythonic)": [[92, "cvc5.pythonic.mk_not"]], "name() (cvc5.pythonic.funcdeclref method)": [[92, "cvc5.pythonic.FuncDeclRef.name"]], "name() (cvc5.pythonic.sortref method)": [[92, "cvc5.pythonic.SortRef.name"]], "num_args() (cvc5.pythonic.exprref method)": [[92, "cvc5.pythonic.ExprRef.num_args"]], "range() (cvc5.pythonic.funcdeclref method)": [[92, "cvc5.pythonic.FuncDeclRef.range"]], "sexpr() (cvc5.pythonic.exprref method)": [[92, "cvc5.pythonic.ExprRef.sexpr"]], "sexpr() (cvc5.pythonic.sortref method)": [[92, "cvc5.pythonic.SortRef.sexpr"]], "sort() (cvc5.pythonic.boolref method)": [[92, "cvc5.pythonic.BoolRef.sort"]], "sort() (cvc5.pythonic.exprref method)": [[92, "cvc5.pythonic.ExprRef.sort"]], "subsort() (cvc5.pythonic.boolsortref method)": [[92, "cvc5.pythonic.BoolSortRef.subsort"]], "subsort() (cvc5.pythonic.sortref method)": [[92, "cvc5.pythonic.SortRef.subsort"]], "createdatatypes() (in module cvc5.pythonic)": [[93, "cvc5.pythonic.CreateDatatypes"]], "datatype (class in cvc5.pythonic)": [[93, "cvc5.pythonic.Datatype"]], "datatypeconstructorref (class in cvc5.pythonic)": [[93, "cvc5.pythonic.DatatypeConstructorRef"]], "datatyperecognizerref (class in cvc5.pythonic)": [[93, "cvc5.pythonic.DatatypeRecognizerRef"]], "datatyperef (class in cvc5.pythonic)": [[93, "cvc5.pythonic.DatatypeRef"]], "datatypeselectorref (class in cvc5.pythonic)": [[93, "cvc5.pythonic.DatatypeSelectorRef"]], "datatypesortref (class in cvc5.pythonic)": [[93, "cvc5.pythonic.DatatypeSortRef"]], "disjointsum() (in module cvc5.pythonic)": [[93, "cvc5.pythonic.DisjointSum"]], "tuplesort() (in module cvc5.pythonic)": [[93, "cvc5.pythonic.TupleSort"]], "__call__() (cvc5.pythonic.datatypeconstructorref method)": [[93, "cvc5.pythonic.DatatypeConstructorRef.__call__"]], "__call__() (cvc5.pythonic.datatyperecognizerref method)": [[93, "cvc5.pythonic.DatatypeRecognizerRef.__call__"]], "__call__() (cvc5.pythonic.datatypeselectorref method)": [[93, "cvc5.pythonic.DatatypeSelectorRef.__call__"]], "__init__() (cvc5.pythonic.datatype method)": [[93, "cvc5.pythonic.Datatype.__init__"]], "__init__() (cvc5.pythonic.datatypeconstructorref method)": [[93, "cvc5.pythonic.DatatypeConstructorRef.__init__"]], "__init__() (cvc5.pythonic.datatyperecognizerref method)": [[93, "cvc5.pythonic.DatatypeRecognizerRef.__init__"]], "__init__() (cvc5.pythonic.datatypeselectorref method)": [[93, "cvc5.pythonic.DatatypeSelectorRef.__init__"]], "__init__() (cvc5.pythonic.datatypesortref method)": [[93, "cvc5.pythonic.DatatypeSortRef.__init__"]], "__repr__() (cvc5.pythonic.datatype method)": [[93, "cvc5.pythonic.Datatype.__repr__"]], "__weakref__ (cvc5.pythonic.datatype attribute)": [[93, "cvc5.pythonic.Datatype.__weakref__"]], "accessor() (cvc5.pythonic.datatypesortref method)": [[93, "cvc5.pythonic.DatatypeSortRef.accessor"]], "arity() (cvc5.pythonic.datatypeconstructorref method)": [[93, "cvc5.pythonic.DatatypeConstructorRef.arity"]], "arity() (cvc5.pythonic.datatyperecognizerref method)": [[93, "cvc5.pythonic.DatatypeRecognizerRef.arity"]], "arity() (cvc5.pythonic.datatypeselectorref method)": [[93, "cvc5.pythonic.DatatypeSelectorRef.arity"]], "constructor() (cvc5.pythonic.datatypesortref method)": [[93, "cvc5.pythonic.DatatypeSortRef.constructor"]], "create() (cvc5.pythonic.datatype method)": [[93, "cvc5.pythonic.Datatype.create"]], "declare() (cvc5.pythonic.datatype method)": [[93, "cvc5.pythonic.Datatype.declare"]], "domain() (cvc5.pythonic.datatypeconstructorref method)": [[93, "cvc5.pythonic.DatatypeConstructorRef.domain"]], "domain() (cvc5.pythonic.datatyperecognizerref method)": [[93, "cvc5.pythonic.DatatypeRecognizerRef.domain"]], "domain() (cvc5.pythonic.datatypeselectorref method)": [[93, "cvc5.pythonic.DatatypeSelectorRef.domain"]], "num_constructors() (cvc5.pythonic.datatypesortref method)": [[93, "cvc5.pythonic.DatatypeSortRef.num_constructors"]], "range() (cvc5.pythonic.datatypeconstructorref method)": [[93, "cvc5.pythonic.DatatypeConstructorRef.range"]], "range() (cvc5.pythonic.datatyperecognizerref method)": [[93, "cvc5.pythonic.DatatypeRecognizerRef.range"]], "range() (cvc5.pythonic.datatypeselectorref method)": [[93, "cvc5.pythonic.DatatypeSelectorRef.range"]], "recognizer() (cvc5.pythonic.datatypesortref method)": [[93, "cvc5.pythonic.DatatypeSortRef.recognizer"]], "sort() (cvc5.pythonic.datatyperef method)": [[93, "cvc5.pythonic.DatatypeRef.sort"]], "ffadd() (in module cvc5.pythonic)": [[94, "cvc5.pythonic.FFAdd"]], "ffmult() (in module cvc5.pythonic)": [[94, "cvc5.pythonic.FFMult"]], "ffneg() (in module cvc5.pythonic)": [[94, "cvc5.pythonic.FFNeg"]], "ffsub() (in module cvc5.pythonic)": [[94, "cvc5.pythonic.FFSub"]], "finitefieldelem() (in module cvc5.pythonic)": [[94, "cvc5.pythonic.FiniteFieldElem"]], "finitefieldelems() (in module cvc5.pythonic)": [[94, "cvc5.pythonic.FiniteFieldElems"]], "finitefieldnumref (class in cvc5.pythonic)": [[94, "cvc5.pythonic.FiniteFieldNumRef"]], "finitefieldref (class in cvc5.pythonic)": [[94, "cvc5.pythonic.FiniteFieldRef"]], "finitefieldsort() (in module cvc5.pythonic)": [[94, "cvc5.pythonic.FiniteFieldSort"]], "finitefieldsortref (class in cvc5.pythonic)": [[94, "cvc5.pythonic.FiniteFieldSortRef"]], "finitefieldval() (in module cvc5.pythonic)": [[94, "cvc5.pythonic.FiniteFieldVal"]], "__add__() (cvc5.pythonic.finitefieldref method)": [[94, "cvc5.pythonic.FiniteFieldRef.__add__"]], "__mul__() (cvc5.pythonic.finitefieldref method)": [[94, "cvc5.pythonic.FiniteFieldRef.__mul__"]], "__neg__() (cvc5.pythonic.finitefieldref method)": [[94, "cvc5.pythonic.FiniteFieldRef.__neg__"]], "__pos__() (cvc5.pythonic.finitefieldref method)": [[94, "cvc5.pythonic.FiniteFieldRef.__pos__"]], "__radd__() (cvc5.pythonic.finitefieldref method)": [[94, "cvc5.pythonic.FiniteFieldRef.__radd__"]], "__rmul__() (cvc5.pythonic.finitefieldref method)": [[94, "cvc5.pythonic.FiniteFieldRef.__rmul__"]], "__rsub__() (cvc5.pythonic.finitefieldref method)": [[94, "cvc5.pythonic.FiniteFieldRef.__rsub__"]], "__sub__() (cvc5.pythonic.finitefieldref method)": [[94, "cvc5.pythonic.FiniteFieldRef.__sub__"]], "as_long() (cvc5.pythonic.finitefieldnumref method)": [[94, "cvc5.pythonic.FiniteFieldNumRef.as_long"]], "as_signed_long() (cvc5.pythonic.finitefieldnumref method)": [[94, "cvc5.pythonic.FiniteFieldNumRef.as_signed_long"]], "cast() (cvc5.pythonic.finitefieldsortref method)": [[94, "cvc5.pythonic.FiniteFieldSortRef.cast"]], "is_ff() (in module cvc5.pythonic)": [[94, "cvc5.pythonic.is_ff"]], "is_ff_sort() (in module cvc5.pythonic)": [[94, "cvc5.pythonic.is_ff_sort"]], "is_ff_value() (in module cvc5.pythonic)": [[94, "cvc5.pythonic.is_ff_value"]], "size() (cvc5.pythonic.finitefieldref method)": [[94, "cvc5.pythonic.FiniteFieldRef.size"]], "size() (cvc5.pythonic.finitefieldsortref method)": [[94, "cvc5.pythonic.FiniteFieldSortRef.size"]], "sort() (cvc5.pythonic.finitefieldref method)": [[94, "cvc5.pythonic.FiniteFieldRef.sort"]], "fp() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.FP"]], "fpnumref (class in cvc5.pythonic)": [[95, "cvc5.pythonic.FPNumRef"]], "fprmref (class in cvc5.pythonic)": [[95, "cvc5.pythonic.FPRMRef"]], "fpref (class in cvc5.pythonic)": [[95, "cvc5.pythonic.FPRef"]], "fpsort() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.FPSort"]], "fpsortref (class in cvc5.pythonic)": [[95, "cvc5.pythonic.FPSortRef"]], "fpval() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.FPVal"]], "fps() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.FPs"]], "float128() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.Float128"]], "float16() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.Float16"]], "float32() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.Float32"]], "float64() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.Float64"]], "floatdouble() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.FloatDouble"]], "floathalf() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.FloatHalf"]], "floatquadruple() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.FloatQuadruple"]], "floatsingle() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.FloatSingle"]], "rna() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.RNA"]], "rne() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.RNE"]], "rtn() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.RTN"]], "rtp() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.RTP"]], "rtz() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.RTZ"]], "roundnearesttiestoaway() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.RoundNearestTiesToAway"]], "roundnearesttiestoeven() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.RoundNearestTiesToEven"]], "roundtowardnegative() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.RoundTowardNegative"]], "roundtowardpositive() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.RoundTowardPositive"]], "roundtowardzero() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.RoundTowardZero"]], "__add__() (cvc5.pythonic.fpref method)": [[95, "cvc5.pythonic.FPRef.__add__"]], "__div__() (cvc5.pythonic.fpref method)": [[95, "cvc5.pythonic.FPRef.__div__"]], "__ge__() (cvc5.pythonic.fpref method)": [[95, "cvc5.pythonic.FPRef.__ge__"]], "__gt__() (cvc5.pythonic.fpref method)": [[95, "cvc5.pythonic.FPRef.__gt__"]], "__le__() (cvc5.pythonic.fpref method)": [[95, "cvc5.pythonic.FPRef.__le__"]], "__lt__() (cvc5.pythonic.fpref method)": [[95, "cvc5.pythonic.FPRef.__lt__"]], "__mod__() (cvc5.pythonic.fpref method)": [[95, "cvc5.pythonic.FPRef.__mod__"]], "__mul__() (cvc5.pythonic.fpref method)": [[95, "cvc5.pythonic.FPRef.__mul__"]], "__neg__() (cvc5.pythonic.fpref method)": [[95, "cvc5.pythonic.FPRef.__neg__"]], "__pos__() (cvc5.pythonic.fpref method)": [[95, "cvc5.pythonic.FPRef.__pos__"]], "__radd__() (cvc5.pythonic.fpref method)": [[95, "cvc5.pythonic.FPRef.__radd__"]], "__rdiv__() (cvc5.pythonic.fpref method)": [[95, "cvc5.pythonic.FPRef.__rdiv__"]], "__rmod__() (cvc5.pythonic.fpref method)": [[95, "cvc5.pythonic.FPRef.__rmod__"]], "__rmul__() (cvc5.pythonic.fpref method)": [[95, "cvc5.pythonic.FPRef.__rmul__"]], "__rsub__() (cvc5.pythonic.fpref method)": [[95, "cvc5.pythonic.FPRef.__rsub__"]], "__rtruediv__() (cvc5.pythonic.fpref method)": [[95, "cvc5.pythonic.FPRef.__rtruediv__"]], "__sub__() (cvc5.pythonic.fpref method)": [[95, "cvc5.pythonic.FPRef.__sub__"]], "__truediv__() (cvc5.pythonic.fpref method)": [[95, "cvc5.pythonic.FPRef.__truediv__"]], "as_string() (cvc5.pythonic.fpnumref method)": [[95, "cvc5.pythonic.FPNumRef.as_string"]], "as_string() (cvc5.pythonic.fprmref method)": [[95, "cvc5.pythonic.FPRMRef.as_string"]], "as_string() (cvc5.pythonic.fpref method)": [[95, "cvc5.pythonic.FPRef.as_string"]], "cast() (cvc5.pythonic.fpsortref method)": [[95, "cvc5.pythonic.FPSortRef.cast"]], "ebits() (cvc5.pythonic.fpref method)": [[95, "cvc5.pythonic.FPRef.ebits"]], "ebits() (cvc5.pythonic.fpsortref method)": [[95, "cvc5.pythonic.FPSortRef.ebits"]], "exponent() (cvc5.pythonic.fpnumref method)": [[95, "cvc5.pythonic.FPNumRef.exponent"]], "exponent_as_long() (cvc5.pythonic.fpnumref method)": [[95, "cvc5.pythonic.FPNumRef.exponent_as_long"]], "fpabs() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpAbs"]], "fpadd() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpAdd"]], "fpbvtofp() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpBVToFP"]], "fpdiv() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpDiv"]], "fpeq() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpEQ"]], "fpfma() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpFMA"]], "fpfp() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpFP"]], "fpfptofp() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpFPToFP"]], "fpgeq() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpGEQ"]], "fpgt() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpGT"]], "fpinfinity() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpInfinity"]], "fpisinf() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpIsInf"]], "fpisnan() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpIsNaN"]], "fpisnegative() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpIsNegative"]], "fpisnormal() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpIsNormal"]], "fpispositive() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpIsPositive"]], "fpissubnormal() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpIsSubnormal"]], "fpiszero() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpIsZero"]], "fpleq() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpLEQ"]], "fplt() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpLT"]], "fpmax() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpMax"]], "fpmin() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpMin"]], "fpminusinfinity() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpMinusInfinity"]], "fpminuszero() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpMinusZero"]], "fpmul() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpMul"]], "fpneq() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpNEQ"]], "fpnan() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpNaN"]], "fpneg() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpNeg"]], "fpplusinfinity() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpPlusInfinity"]], "fppluszero() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpPlusZero"]], "fprealtofp() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpRealToFP"]], "fprem() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpRem"]], "fproundtointegral() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpRoundToIntegral"]], "fpsignedtofp() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpSignedToFP"]], "fpsqrt() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpSqrt"]], "fpsub() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpSub"]], "fptofp() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpToFP"]], "fptofpunsigned() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpToFPUnsigned"]], "fptoreal() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpToReal"]], "fptosbv() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpToSBV"]], "fptoubv() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpToUBV"]], "fpunsignedtofp() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpUnsignedToFP"]], "fpzero() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.fpZero"]], "get_default_fp_sort() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.get_default_fp_sort"]], "get_default_rounding_mode() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.get_default_rounding_mode"]], "isinf() (cvc5.pythonic.fpnumref method)": [[95, "cvc5.pythonic.FPNumRef.isInf"]], "isnan() (cvc5.pythonic.fpnumref method)": [[95, "cvc5.pythonic.FPNumRef.isNaN"]], "isnegative() (cvc5.pythonic.fpnumref method)": [[95, "cvc5.pythonic.FPNumRef.isNegative"]], "isnormal() (cvc5.pythonic.fpnumref method)": [[95, "cvc5.pythonic.FPNumRef.isNormal"]], "ispositive() (cvc5.pythonic.fpnumref method)": [[95, "cvc5.pythonic.FPNumRef.isPositive"]], "issubnormal() (cvc5.pythonic.fpnumref method)": [[95, "cvc5.pythonic.FPNumRef.isSubnormal"]], "iszero() (cvc5.pythonic.fpnumref method)": [[95, "cvc5.pythonic.FPNumRef.isZero"]], "is_fp() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.is_fp"]], "is_fp_sort() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.is_fp_sort"]], "is_fp_value() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.is_fp_value"]], "is_fprm() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.is_fprm"]], "is_fprm_sort() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.is_fprm_sort"]], "is_fprm_value() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.is_fprm_value"]], "sbits() (cvc5.pythonic.fpref method)": [[95, "cvc5.pythonic.FPRef.sbits"]], "sbits() (cvc5.pythonic.fpsortref method)": [[95, "cvc5.pythonic.FPSortRef.sbits"]], "set_default_fp_sort() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.set_default_fp_sort"]], "set_default_rounding_mode() (in module cvc5.pythonic)": [[95, "cvc5.pythonic.set_default_rounding_mode"]], "sign() (cvc5.pythonic.fpnumref method)": [[95, "cvc5.pythonic.FPNumRef.sign"]], "significand() (cvc5.pythonic.fpnumref method)": [[95, "cvc5.pythonic.FPNumRef.significand"]], "significand_as_long() (cvc5.pythonic.fpnumref method)": [[95, "cvc5.pythonic.FPNumRef.significand_as_long"]], "sort() (cvc5.pythonic.fpref method)": [[95, "cvc5.pythonic.FPRef.sort"]], "smtexception (class in cvc5.pythonic)": [[96, "cvc5.pythonic.SMTException"]], "__init__() (cvc5.pythonic.smtexception method)": [[96, "cvc5.pythonic.SMTException.__init__"]], "__str__() (cvc5.pythonic.smtexception method)": [[96, "cvc5.pythonic.SMTException.__str__"]], "__weakref__ (cvc5.pythonic.smtexception attribute)": [[96, "cvc5.pythonic.SMTException.__weakref__"]], "is_app() (in module cvc5.pythonic)": [[96, "cvc5.pythonic.is_app"]], "is_app_of() (in module cvc5.pythonic)": [[96, "cvc5.pythonic.is_app_of"]], "is_expr() (in module cvc5.pythonic)": [[96, "cvc5.pythonic.is_expr"]], "is_sort() (in module cvc5.pythonic)": [[96, "cvc5.pythonic.is_sort"]], "exists() (in module cvc5.pythonic)": [[98, "cvc5.pythonic.Exists"]], "forall() (in module cvc5.pythonic)": [[98, "cvc5.pythonic.ForAll"]], "lambda() (in module cvc5.pythonic)": [[98, "cvc5.pythonic.Lambda"]], "quantifierref (class in cvc5.pythonic)": [[98, "cvc5.pythonic.QuantifierRef"]], "as_ast() (cvc5.pythonic.quantifierref method)": [[98, "cvc5.pythonic.QuantifierRef.as_ast"]], "body() (cvc5.pythonic.quantifierref method)": [[98, "cvc5.pythonic.QuantifierRef.body"]], "children() (cvc5.pythonic.quantifierref method)": [[98, "cvc5.pythonic.QuantifierRef.children"]], "is_exists() (cvc5.pythonic.quantifierref method)": [[98, "cvc5.pythonic.QuantifierRef.is_exists"]], "is_forall() (cvc5.pythonic.quantifierref method)": [[98, "cvc5.pythonic.QuantifierRef.is_forall"]], "is_lambda() (cvc5.pythonic.quantifierref method)": [[98, "cvc5.pythonic.QuantifierRef.is_lambda"]], "is_quantifier() (in module cvc5.pythonic)": [[98, "cvc5.pythonic.is_quantifier"]], "is_var() (in module cvc5.pythonic)": [[98, "cvc5.pythonic.is_var"]], "num_vars() (cvc5.pythonic.quantifierref method)": [[98, "cvc5.pythonic.QuantifierRef.num_vars"]], "sort() (cvc5.pythonic.quantifierref method)": [[98, "cvc5.pythonic.QuantifierRef.sort"]], "var_name() (cvc5.pythonic.quantifierref method)": [[98, "cvc5.pythonic.QuantifierRef.var_name"]], "var_sort() (cvc5.pythonic.quantifierref method)": [[98, "cvc5.pythonic.QuantifierRef.var_sort"]], "empty() (in module cvc5.pythonic)": [[100, "cvc5.pythonic.Empty"]], "length() (in module cvc5.pythonic)": [[100, "cvc5.pythonic.Length"], [103, "cvc5.pythonic.Length"]], "seqref (class in cvc5.pythonic)": [[100, "cvc5.pythonic.SeqRef"]], "seqsort() (in module cvc5.pythonic)": [[100, "cvc5.pythonic.SeqSort"]], "seqsortref (class in cvc5.pythonic)": [[100, "cvc5.pythonic.SeqSortRef"]], "sequpdate() (in module cvc5.pythonic)": [[100, "cvc5.pythonic.SeqUpdate"]], "subseq() (in module cvc5.pythonic)": [[100, "cvc5.pythonic.SubSeq"]], "unit() (in module cvc5.pythonic)": [[100, "cvc5.pythonic.Unit"]], "__add__() (cvc5.pythonic.seqref method)": [[100, "cvc5.pythonic.SeqRef.__add__"]], "__getitem__() (cvc5.pythonic.seqref method)": [[100, "cvc5.pythonic.SeqRef.__getitem__"]], "as_string() (cvc5.pythonic.seqref method)": [[100, "cvc5.pythonic.SeqRef.as_string"]], "at() (cvc5.pythonic.seqref method)": [[100, "cvc5.pythonic.SeqRef.at"]], "elem_sort() (cvc5.pythonic.seqsortref method)": [[100, "cvc5.pythonic.SeqSortRef.elem_sort"]], "is_string() (cvc5.pythonic.seqsortref method)": [[100, "cvc5.pythonic.SeqSortRef.is_string"]], "is_string_value() (cvc5.pythonic.seqref method)": [[100, "cvc5.pythonic.SeqRef.is_string_value"]], "emptyset() (in module cvc5.pythonic)": [[101, "cvc5.pythonic.EmptySet"]], "fullset() (in module cvc5.pythonic)": [[101, "cvc5.pythonic.FullSet"]], "ismember() (in module cvc5.pythonic)": [[101, "cvc5.pythonic.IsMember"]], "issubset() (in module cvc5.pythonic)": [[101, "cvc5.pythonic.IsSubset"]], "set() (in module cvc5.pythonic)": [[101, "cvc5.pythonic.Set"]], "setadd() (in module cvc5.pythonic)": [[101, "cvc5.pythonic.SetAdd"]], "setcomplement() (in module cvc5.pythonic)": [[101, "cvc5.pythonic.SetComplement"]], "setdel() (in module cvc5.pythonic)": [[101, "cvc5.pythonic.SetDel"]], "setdifference() (in module cvc5.pythonic)": [[101, "cvc5.pythonic.SetDifference"]], "setintersect() (in module cvc5.pythonic)": [[101, "cvc5.pythonic.SetIntersect"]], "setminus() (in module cvc5.pythonic)": [[101, "cvc5.pythonic.SetMinus"]], "setref (class in cvc5.pythonic)": [[101, "cvc5.pythonic.SetRef"]], "setsort() (in module cvc5.pythonic)": [[101, "cvc5.pythonic.SetSort"]], "setsortref (class in cvc5.pythonic)": [[101, "cvc5.pythonic.SetSortRef"]], "setunion() (in module cvc5.pythonic)": [[101, "cvc5.pythonic.SetUnion"]], "singleton() (in module cvc5.pythonic)": [[101, "cvc5.pythonic.Singleton"]], "__and__() (cvc5.pythonic.setref method)": [[101, "cvc5.pythonic.SetRef.__and__"]], "__getitem__() (cvc5.pythonic.setref method)": [[101, "cvc5.pythonic.SetRef.__getitem__"]], "__or__() (cvc5.pythonic.setref method)": [[101, "cvc5.pythonic.SetRef.__or__"]], "default() (cvc5.pythonic.setref method)": [[101, "cvc5.pythonic.SetRef.default"]], "domain() (cvc5.pythonic.setref method)": [[101, "cvc5.pythonic.SetRef.domain"]], "domain() (cvc5.pythonic.setsortref method)": [[101, "cvc5.pythonic.SetSortRef.domain"]], "range() (cvc5.pythonic.setref method)": [[101, "cvc5.pythonic.SetRef.range"]], "range() (cvc5.pythonic.setsortref method)": [[101, "cvc5.pythonic.SetSortRef.range"]], "sort() (cvc5.pythonic.setref method)": [[101, "cvc5.pythonic.SetRef.sort"]], "checksatresult (class in cvc5.pythonic)": [[102, "cvc5.pythonic.CheckSatResult"]], "modelref (class in cvc5.pythonic)": [[102, "cvc5.pythonic.ModelRef"]], "product() (in module cvc5.pythonic)": [[102, "cvc5.pythonic.Product"]], "simplesolver() (in module cvc5.pythonic)": [[102, "cvc5.pythonic.SimpleSolver"]], "solver (class in cvc5.pythonic)": [[102, "cvc5.pythonic.Solver"]], "solverfor() (in module cvc5.pythonic)": [[102, "cvc5.pythonic.SolverFor"]], "sum() (in module cvc5.pythonic)": [[102, "cvc5.pythonic.Sum"]], "__eq__() (cvc5.pythonic.checksatresult method)": [[102, "cvc5.pythonic.CheckSatResult.__eq__"]], "__getitem__() (cvc5.pythonic.modelref method)": [[102, "cvc5.pythonic.ModelRef.__getitem__"]], "__hash__ (cvc5.pythonic.checksatresult attribute)": [[102, "cvc5.pythonic.CheckSatResult.__hash__"]], "__iadd__() (cvc5.pythonic.solver method)": [[102, "cvc5.pythonic.Solver.__iadd__"]], "__init__() (cvc5.pythonic.checksatresult method)": [[102, "cvc5.pythonic.CheckSatResult.__init__"]], "__init__() (cvc5.pythonic.modelref method)": [[102, "cvc5.pythonic.ModelRef.__init__"]], "__init__() (cvc5.pythonic.solver method)": [[102, "cvc5.pythonic.Solver.__init__"]], "__len__() (cvc5.pythonic.modelref method)": [[102, "cvc5.pythonic.ModelRef.__len__"]], "__ne__() (cvc5.pythonic.checksatresult method)": [[102, "cvc5.pythonic.CheckSatResult.__ne__"]], "__repr__() (cvc5.pythonic.checksatresult method)": [[102, "cvc5.pythonic.CheckSatResult.__repr__"]], "__repr__() (cvc5.pythonic.modelref method)": [[102, "cvc5.pythonic.ModelRef.__repr__"]], "__repr__() (cvc5.pythonic.solver method)": [[102, "cvc5.pythonic.Solver.__repr__"]], "__weakref__ (cvc5.pythonic.checksatresult attribute)": [[102, "cvc5.pythonic.CheckSatResult.__weakref__"]], "__weakref__ (cvc5.pythonic.modelref attribute)": [[102, "cvc5.pythonic.ModelRef.__weakref__"]], "__weakref__ (cvc5.pythonic.solver attribute)": [[102, "cvc5.pythonic.Solver.__weakref__"]], "add() (cvc5.pythonic.solver method)": [[102, "cvc5.pythonic.Solver.add"]], "append() (cvc5.pythonic.solver method)": [[102, "cvc5.pythonic.Solver.append"]], "assert_exprs() (cvc5.pythonic.solver method)": [[102, "cvc5.pythonic.Solver.assert_exprs"]], "assertions() (cvc5.pythonic.solver method)": [[102, "cvc5.pythonic.Solver.assertions"]], "check() (cvc5.pythonic.solver method)": [[102, "cvc5.pythonic.Solver.check"]], "cvc5.pythonic.sat (built-in variable)": [[102, "cvc5.pythonic.sat"]], "cvc5.pythonic.unknown (built-in variable)": [[102, "cvc5.pythonic.unknown"]], "cvc5.pythonic.unsat (built-in variable)": [[102, "cvc5.pythonic.unsat"]], "decls() (cvc5.pythonic.modelref method)": [[102, "cvc5.pythonic.ModelRef.decls"]], "eval() (cvc5.pythonic.modelref method)": [[102, "cvc5.pythonic.ModelRef.eval"]], "evaluate() (cvc5.pythonic.modelref method)": [[102, "cvc5.pythonic.ModelRef.evaluate"]], "evaluate() (in module cvc5.pythonic)": [[102, "cvc5.pythonic.evaluate"]], "getoption() (cvc5.pythonic.solver method)": [[102, "cvc5.pythonic.Solver.getOption"]], "getoptioninfo() (cvc5.pythonic.solver method)": [[102, "cvc5.pythonic.Solver.getOptionInfo"]], "getoptionnames() (cvc5.pythonic.solver method)": [[102, "cvc5.pythonic.Solver.getOptionNames"]], "initfromlogic() (cvc5.pythonic.solver method)": [[102, "cvc5.pythonic.Solver.initFromLogic"]], "insert() (cvc5.pythonic.solver method)": [[102, "cvc5.pythonic.Solver.insert"]], "is_tautology() (in module cvc5.pythonic)": [[102, "cvc5.pythonic.is_tautology"]], "model() (cvc5.pythonic.solver method)": [[102, "cvc5.pythonic.Solver.model"]], "num_scopes() (cvc5.pythonic.solver method)": [[102, "cvc5.pythonic.Solver.num_scopes"]], "pop() (cvc5.pythonic.solver method)": [[102, "cvc5.pythonic.Solver.pop"]], "proof() (cvc5.pythonic.solver method)": [[102, "cvc5.pythonic.Solver.proof"]], "prove() (in module cvc5.pythonic)": [[102, "cvc5.pythonic.prove"]], "push() (cvc5.pythonic.solver method)": [[102, "cvc5.pythonic.Solver.push"]], "reason_unknown() (cvc5.pythonic.solver method)": [[102, "cvc5.pythonic.Solver.reason_unknown"]], "reset() (cvc5.pythonic.solver method)": [[102, "cvc5.pythonic.Solver.reset"]], "resetassertions() (cvc5.pythonic.solver method)": [[102, "cvc5.pythonic.Solver.resetAssertions"]], "set() (cvc5.pythonic.solver method)": [[102, "cvc5.pythonic.Solver.set"]], "setoption() (cvc5.pythonic.solver method)": [[102, "cvc5.pythonic.Solver.setOption"]], "sexpr() (cvc5.pythonic.solver method)": [[102, "cvc5.pythonic.Solver.sexpr"]], "simplify() (in module cvc5.pythonic)": [[102, "cvc5.pythonic.simplify"]], "solve() (in module cvc5.pythonic)": [[102, "cvc5.pythonic.solve"]], "solve_using() (in module cvc5.pythonic)": [[102, "cvc5.pythonic.solve_using"]], "statistics() (cvc5.pythonic.solver method)": [[102, "cvc5.pythonic.Solver.statistics"]], "substitute() (in module cvc5.pythonic)": [[102, "cvc5.pythonic.substitute"]], "unsat_core() (cvc5.pythonic.solver method)": [[102, "cvc5.pythonic.Solver.unsat_core"]], "vars() (cvc5.pythonic.modelref method)": [[102, "cvc5.pythonic.ModelRef.vars"]], "allchar() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.AllChar"]], "complement() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.Complement"]], "contains() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.Contains"]], "diff() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.Diff"]], "full() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.Full"]], "inre() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.InRe"]], "indexof() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.IndexOf"]], "inttostr() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.IntToStr"]], "intersect() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.Intersect"]], "loop() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.Loop"]], "option() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.Option"]], "plus() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.Plus"]], "prefixof() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.PrefixOf"]], "range() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.Range"]], "re() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.Re"]], "replace() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.Replace"]], "star() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.Star"]], "strfromcode() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.StrFromCode"]], "strtocode() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.StrToCode"]], "strtoint() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.StrToInt"]], "string() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.String"]], "stringref (class in cvc5.pythonic)": [[103, "cvc5.pythonic.StringRef"]], "stringsort() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.StringSort"]], "stringsortref (class in cvc5.pythonic)": [[103, "cvc5.pythonic.StringSortRef"]], "stringval() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.StringVal"]], "strings() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.Strings"]], "substring() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.SubString"]], "suffixof() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.SuffixOf"]], "union() (in module cvc5.pythonic)": [[103, "cvc5.pythonic.Union"]], "__ge__() (cvc5.pythonic.stringref method)": [[103, "cvc5.pythonic.StringRef.__ge__"]], "__getitem__() (cvc5.pythonic.stringref method)": [[103, "cvc5.pythonic.StringRef.__getitem__"]], "__gt__() (cvc5.pythonic.stringref method)": [[103, "cvc5.pythonic.StringRef.__gt__"]], "__le__() (cvc5.pythonic.stringref method)": [[103, "cvc5.pythonic.StringRef.__le__"]], "__lt__() (cvc5.pythonic.stringref method)": [[103, "cvc5.pythonic.StringRef.__lt__"]], "at() (cvc5.pythonic.stringref method)": [[103, "cvc5.pythonic.StringRef.at"]], "cast() (cvc5.pythonic.stringsortref method)": [[103, "cvc5.pythonic.StringSortRef.cast"]], "skolemid (c++ enum)": [[140, "_CPPv4N4cvc58SkolemIdE"]], "skolemid::arith_vts_delta (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId15ARITH_VTS_DELTAE"]], "skolemid::arith_vts_delta_free (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId20ARITH_VTS_DELTA_FREEE"]], "skolemid::arith_vts_infinity (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId18ARITH_VTS_INFINITYE"]], "skolemid::arith_vts_infinity_free (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId23ARITH_VTS_INFINITY_FREEE"]], "skolemid::array_deq_diff (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId14ARRAY_DEQ_DIFFE"]], "skolemid::bags_card_combine (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId17BAGS_CARD_COMBINEE"]], "skolemid::bags_choose (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId11BAGS_CHOOSEE"]], "skolemid::bags_deq_diff (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId13BAGS_DEQ_DIFFE"]], "skolemid::bags_distinct_elements (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId22BAGS_DISTINCT_ELEMENTSE"]], "skolemid::bags_distinct_elements_size (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId27BAGS_DISTINCT_ELEMENTS_SIZEE"]], "skolemid::bags_distinct_elements_union_disjoint (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId37BAGS_DISTINCT_ELEMENTS_UNION_DISJOINTE"]], "skolemid::bags_fold_card (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId14BAGS_FOLD_CARDE"]], "skolemid::bags_fold_combine (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId17BAGS_FOLD_COMBINEE"]], "skolemid::bags_fold_elements (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId18BAGS_FOLD_ELEMENTSE"]], "skolemid::bags_fold_union_disjoint (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId24BAGS_FOLD_UNION_DISJOINTE"]], "skolemid::bags_map_index (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId14BAGS_MAP_INDEXE"]], "skolemid::bags_map_preimage_injective (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId27BAGS_MAP_PREIMAGE_INJECTIVEE"]], "skolemid::bags_map_sum (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId12BAGS_MAP_SUME"]], "skolemid::bv_empty (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId8BV_EMPTYE"]], "skolemid::bv_to_int_uf (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId12BV_TO_INT_UFE"]], "skolemid::div_by_zero (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId11DIV_BY_ZEROE"]], "skolemid::fp_max_zero (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId11FP_MAX_ZEROE"]], "skolemid::fp_min_zero (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId11FP_MIN_ZEROE"]], "skolemid::fp_to_real (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId10FP_TO_REALE"]], "skolemid::fp_to_sbv (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId9FP_TO_SBVE"]], "skolemid::fp_to_ubv (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId9FP_TO_UBVE"]], "skolemid::ground_term (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId11GROUND_TERME"]], "skolemid::ho_deq_diff (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId11HO_DEQ_DIFFE"]], "skolemid::internal (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId8INTERNALE"]], "skolemid::int_div_by_zero (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId15INT_DIV_BY_ZEROE"]], "skolemid::mod_by_zero (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId11MOD_BY_ZEROE"]], "skolemid::none (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId4NONEE"]], "skolemid::purify (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId6PURIFYE"]], "skolemid::quantifiers_skolemize (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId21QUANTIFIERS_SKOLEMIZEE"]], "skolemid::relations_group_part (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId20RELATIONS_GROUP_PARTE"]], "skolemid::relations_group_part_element (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId28RELATIONS_GROUP_PART_ELEMENTE"]], "skolemid::re_first_match (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId14RE_FIRST_MATCHE"]], "skolemid::re_first_match_post (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId19RE_FIRST_MATCH_POSTE"]], "skolemid::re_first_match_pre (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId18RE_FIRST_MATCH_PREE"]], "skolemid::re_unfold_pos_component (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId23RE_UNFOLD_POS_COMPONENTE"]], "skolemid::sets_choose (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId11SETS_CHOOSEE"]], "skolemid::sets_deq_diff (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId13SETS_DEQ_DIFFE"]], "skolemid::sets_fold_card (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId14SETS_FOLD_CARDE"]], "skolemid::sets_fold_combine (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId17SETS_FOLD_COMBINEE"]], "skolemid::sets_fold_elements (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId18SETS_FOLD_ELEMENTSE"]], "skolemid::sets_fold_union (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId15SETS_FOLD_UNIONE"]], "skolemid::sets_map_down_element (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId21SETS_MAP_DOWN_ELEMENTE"]], "skolemid::shared_selector (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId15SHARED_SELECTORE"]], "skolemid::strings_deq_diff (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId16STRINGS_DEQ_DIFFE"]], "skolemid::strings_itos_result (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId19STRINGS_ITOS_RESULTE"]], "skolemid::strings_num_occur (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId17STRINGS_NUM_OCCURE"]], "skolemid::strings_num_occur_re (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId20STRINGS_NUM_OCCUR_REE"]], "skolemid::strings_occur_index (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId19STRINGS_OCCUR_INDEXE"]], "skolemid::strings_occur_index_re (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId22STRINGS_OCCUR_INDEX_REE"]], "skolemid::strings_occur_len_re (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId20STRINGS_OCCUR_LEN_REE"]], "skolemid::strings_replace_all_result (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId26STRINGS_REPLACE_ALL_RESULTE"]], "skolemid::strings_stoi_non_digit (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId22STRINGS_STOI_NON_DIGITE"]], "skolemid::strings_stoi_result (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId19STRINGS_STOI_RESULTE"]], "skolemid::tables_group_part (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId17TABLES_GROUP_PARTE"]], "skolemid::tables_group_part_element (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId25TABLES_GROUP_PART_ELEMENTE"]], "skolemid::transcendental_purify (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId21TRANSCENDENTAL_PURIFYE"]], "skolemid::transcendental_purify_arg (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId25TRANSCENDENTAL_PURIFY_ARGE"]], "skolemid::transcendental_sine_phase_shift (c++ enumerator)": [[140, "_CPPv4N4cvc58SkolemId31TRANSCENDENTAL_SINE_PHASE_SHIFTE"]]}}) \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/skolem-ids.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/skolem-ids.html new file mode 100644 index 0000000000..c9fee47656 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/skolem-ids.html @@ -0,0 +1,1027 @@ + + + + + + + + + + + + + Skolem Identifiers — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    +
      +
    • + +
    • +
    • +
    +
    +
    +
    +
    + +
    +

    Skolem Identifiers

    +
    +
    +enum class cvc5::SkolemId
    +

    The kind of a cvc5 skolem. A skolem is a (family of) internal functions or constants that are introduced by cvc5. These symbols are treated as uninterpreted internally. We track their definition for the purposes of formal bookkeeping for the user of features like proofs, lemma exporting, simplification and so on.

    +

    A skolem has an identifier and a set of “skolem indices”. The skolem indices are not children of the skolem function, but rather should be seen as the way of distinguishing skolems from the same family.

    +

    For example, the family of “array diff” skolems ARRAY_DEQ_DIFF witness the disequality between two arrays, which are its skolem indices.

    +

    Say that skolem k witnesses the disequality between two arrays A and B of type (Array Int Int). Then, k is a term whose skolem identifier is ARRAY_DEQ_DIFF, skolem indices are A and B, and whose type is Int.

    +

    Note the type of k is not (-> (Array Int Int) (Array Int Int) Int). Intuitively, this is due to the fact that cvc5 does not reason about array diff skolem as a function symbol. Furthermore, the array diff skolem that witnesses the disequality of arrays C and D is a separate skolem function k2 from this family, also of type Int, where internally k2 has no relation to k apart from having the same skolem identifier.

    +

    In contrast, cvc5 reasons about division-by-zero using a single skolem function whose identifier is DIV_BY_ZERO. This means its skolem indices are empty and the skolem has a functional type (-> Real Real).

    +

    Values:

    +
    +
    +enumerator INTERNAL
    +

    The identifier of the skolem is not exported. These skolems should not appear in any user-level API calls.

    +
    + +
    +
    +enumerator PURIFY
    +

    The purification skolem for a term. This is a variable that is semantically equivalent to the indexed term t.

    +

      +
    • Number of skolem indices: 1

        +
      • 1: The term t that this skolem purifies.

      • +
      +

    • +
    • Sort: The sort of t.

    • +
    +

    +
    + +
    +
    +enumerator GROUND_TERM
    +

    An arbitrary ground term of a given sort.

    +

      +
    • Number of skolem indices: 1

        +
      • 1: A term that represents the sort of the term.

      • +
      +

    • +
    • Sort: The sort given by the index.

    • +
    +

    +
    + +
    +
    +enumerator ARRAY_DEQ_DIFF
    +

    The array diff skolem, which is the witness k for the inference (=> (not (= A B)) (not (= (select A k) (select B k)))).

    +

      +
    • Number of skolem indices: 2

        +
      • 1: The first array of sort (Array T1 T2).

      • +
      • 2: The second array of sort (Array T1 T2).

      • +
      +

    • +
    • Sort: T1

    • +
    +

    +
    + +
    +
    +enumerator BV_EMPTY
    +

    The empty bitvector.

    +

      +
    • Number of skolem indices: 0

    • +
    • Type: (_ BitVec 0)

    • +
    +

    +
    + +
    +
    +enumerator DIV_BY_ZERO
    +

    The function for division by zero. This is semantically equivalent to the SMT-LIB term (lambda ((x Real)) (/ x 0.0)).

    +

      +
    • Number of skolem indices: 0

    • +
    • Sort: (-> Real Real)

    • +
    +

    +
    + +
    +
    +enumerator INT_DIV_BY_ZERO
    +

    The function for integer division by zero. This is semantically equivalent to the SMT-LIB term (lambda ((x Int)) (div x 0)).

    +

      +
    • Number of skolem indices: 0

    • +
    • Sort: (-> Int Int)

    • +
    +

    +
    + +
    +
    +enumerator MOD_BY_ZERO
    +

    The function for integer modulus by zero. This is semantically equivalent to the SMT-LIB term (lambda ((x Int)) (mod x 0)).

    +

      +
    • Number of skolem indices: 0

    • +
    • Sort: (-> Int Int)

    • +
    +

    +
    + +
    +
    +enumerator TRANSCENDENTAL_PURIFY
    +

    A function introduced to eliminate extended trancendental functions. Transcendental functions like sqrt, arccos, arcsin, etc. are replaced during processing with uninterpreted functions that are unique to each function.

    +

      +
    • Number of skolem indices: 1

        +
      • 1: A lambda corresponding to the function, e.g., (lambda ((x Real)) (sqrt x)).

      • +
      +

    • +
    • Sort: (-> Real Real)

    • +
    +

    +
    + +
    +
    +enumerator TRANSCENDENTAL_PURIFY_ARG
    +

    Argument used to purify trancendental function app (f x). For (sin x), this is a variable that is assumed to be in phase with x that is between -pi and pi.

    +

      +
    • Number of skolem indices: 1

        +
      • 1: The application of a trancendental function.

      • +
      +

    • +
    • Sort: Real

    • +
    +

    +
    + +
    +
    +enumerator TRANSCENDENTAL_SINE_PHASE_SHIFT
    +

    Argument used to reason about the phase shift of arguments to sine. In particular, this is an integral rational indicating the number of times :math:2\pi is added to a real value between :math:-\pi and :math:\pi to obtain the value of argument to sine.

    +

      +
    • Number of skolem indices: 1

        +
      • 1: The argument to sine.

      • +
      +

    • +
    • Sort: Real

    • +
    +

    +
    + +
    +
    +enumerator ARITH_VTS_DELTA
    +

    Used to reason about virtual term substitution. This term represents an infinitesimal. This skolem is expected to appear in instantiations and immediately be rewritten via virtual term substitution.

    +

      +
    • Number of skolem indices: 0

    • +
    • Sort: Real

    • +
    +

    +
    + +
    +
    +enumerator ARITH_VTS_DELTA_FREE
    +

    Used to reason about virtual term substitution. This term represents an infinitesimal. Unlike ARITH_VTS_DELTA, this skolem may appear in lemmas.

    +

      +
    • Number of skolem indices: 0

    • +
    • Sort: Real

    • +
    +

    +
    + +
    +
    +enumerator ARITH_VTS_INFINITY
    +

    Used to reason about virtual term substitution. This term represents infinity. This skolem is expected to appear in instantiations and immediately be rewritten via virtual term substitution.

    +

      +
    • Number of skolem indices: 0

        +
      • 1: A term that represents an arithmetic sort (Int or Real).

      • +
      +

    • +
    • Sort: The sort given by the index.

    • +
    +

    +
    + +
    +
    +enumerator ARITH_VTS_INFINITY_FREE
    +

    Used to reason about virtual term substitution. This term represents infinity. Unlike ARITH_VTS_INFINITY, this skolem may appear in lemmas.

    +

      +
    • Number of skolem indices: 0

        +
      • 1: A term that represents an arithmetic sort (Int or Real).

      • +
      +

    • +
    • Sort: The sort given by the index.

    • +
    +

    +
    + +
    +
    +enumerator SHARED_SELECTOR
    +

    A shared datatype selector, see Reynolds et. al. “Datatypes with Shared

    +

    Selectors”, IJCAR 2018. Represents a selector that can extract fields of multiple constructors.

    +

    +

      +
    • Number of skolem indices: 3

        +
      • 1: A term that represents the datatype we are extracting from.

      • +
      • 2: A term that represents the sort of field we are extracting.

      • +
      • 3: An integer n such that this shared selector returns the n^th subfield term of the given sort.

      • +
      +

    • +
    • Sort: A selector sort whose domain is given by first index, and whose codomain is the given by the second index.

    • +
    +

    +
    + +
    +
    +enumerator HO_DEQ_DIFF
    +

    The higher-roder diff skolem, which is the witness k for the inference (=> (not (= A B)) (not (= (A k1 ... kn) (B k1 ... kn)))).

    +

      +
    • Number of skolem indices: 2

        +
      • 1: The first function of sort (-> T1 ... Tn T).

      • +
      • 2: The second function of sort (-> T1 ... Tn T).

      • +
      • 3: The argument index i.

      • +
      +

    • +
    • Sort: Ti

    • +
    +

    +
    + +
    +
    +enumerator QUANTIFIERS_SKOLEMIZE
    +

    The n^th skolem for the negation of universally quantified formula Q.

    +

      +
    • Number of skolem indices: 2

        +
      • 1: The quantified formula Q.

      • +
      • 2: The index of the variable in the binder of Q to skolemize.

      • +
      +

    • +
    • Sort: The type of the variable referenced by the second index.

    • +
    +

    +
    + +
    +
    +enumerator STRINGS_NUM_OCCUR
    +

    An integer corresponding to the number of times a string occurs in another string. This is used to reason about str.replace_all.

    +

      +
    • Number of skolem indices: 2

        +
      • 1: The first string.

      • +
      • 2: The second string.

      • +
      +

    • +
    • Sort: Int

    • +
    +

    +
    + +
    +
    +enumerator STRINGS_OCCUR_INDEX
    +

    A function k such that for x = 0…n, (k x) is the end index of the x^th occurrence of a string b in string a, where n is the number of occurrences of b in a, and (= (k 0) 0). This is used to reason about str.replace_all.

    +

      +
    • Number of skolem indices: 2

        +
      • 1: The first string.

      • +
      • 2: The second string.

      • +
      +

    • +
    • Sort: (-> Int Int)

    • +
    +

    +
    + +
    +
    +enumerator STRINGS_NUM_OCCUR_RE
    +

    Analogous to STRINGS_NUM_OCCUR, but for regular expressions. An integer corresponding to the number of times a regular expression can be matched in a string. This is used to reason about str.replace_all_re.

    +

      +
    • Number of skolem indices: 2

        +
      • 1: The string to match.

      • +
      • 2: The regular expression to find.

      • +
      +

    • +
    • Sort: Int

    • +
    +

    +
    + +
    +
    +enumerator STRINGS_OCCUR_INDEX_RE
    +

    Analogous to STRINGS_OCCUR_INDEX, but for regular expressions. A function k such that for x = 0…n, (k x) is the end index of the x^th occurrence of a regular expression R in string a, where n is the number of occurrences of R in a, and (= (k 0) 0). This is used to reason about str.replace_all_re.

    +

      +
    • Number of skolem indices: 2

        +
      • 1: The string to match.

      • +
      • 2: The regular expression to find.

      • +
      +

    • +
    • Sort: (-> Int Int)

    • +
    +

    +
    + +
    +
    +enumerator STRINGS_OCCUR_LEN_RE
    +

    A function k where for x = 0…n, (k x) is the length of the x^th occurrence of R in a (excluding matches of empty strings) where R is a regular expression, n is the number of occurrences of R in a, and (= (k 0) 0).

    +

      +
    • Number of skolem indices: 2

        +
      • 1: The string to match.

      • +
      • 2: The regular expression to find.

      • +
      +

    • +
    • Sort: (-> Int Int)

    • +
    +

    +
    + +
    +
    +enumerator STRINGS_DEQ_DIFF
    +

    Difference index for string disequalities, such that k is the witness for the inference (=> (not (= a b)) (not (= (substr a k 1) (substr b k 1)))) where note that k may be out of bounds for at most of a,b.

    +

      +
    • Number of skolem indices: 2

        +
      • 1: The first string.

      • +
      • 2: The second string.

      • +
      +

    • +
    • Sort: Int

    • +
    +

    +
    + +
    +
    +enumerator STRINGS_REPLACE_ALL_RESULT
    +

    A function used to define intermediate results of str.replace_all and str.replace_re_all applications. This denotes a function that denotes the result of processing the string or sequence after processing the n^th occurrence of string or match of the regular expression in the given replace_all term.

    +

      +
    • Number of skolem indices: 1

        +
      • 1: The application of replace_all or replace_all_re.

      • +
      +

    • +
    • Sort: (-> Int S) where S is either String or (Seq T) for some T.

    • +
    +

    +
    + +
    +
    +enumerator STRINGS_ITOS_RESULT
    +

    A function used to define intermediate results of str.from_int applications. This is a function k denoting the result of processing the first n digits of the argument.

    +

      +
    • Number of skolem indices: 1

        +
      • 1: The argument to str.from_int.

      • +
      +

    • +
    • Sort: (-> Int Int)

    • +
    +

    +
    + +
    +
    +enumerator STRINGS_STOI_RESULT
    +

    A function used to define intermediate results of str.from_int applications. This is a function k of type (-> Int String) denoting the result of processing the first n characters of the argument.

    +

      +
    • Number of skolem indices: 1

        +
      • 1: The argument to str.to_int.

      • +
      +

    • +
    • Sort: (-> Int String)

    • +
    +

    +
    + +
    +
    +enumerator STRINGS_STOI_NON_DIGIT
    +

    A position containing a non-digit in a string, used when (str.to_int a) is equal to -1. This is an integer that returns a position for which the argument string is not a digit if one exists, or is unconstrained otherwise.

    +

      +
    • Number of skolem indices: 1

        +
      • 1: The argument to str.to_int.

      • +
      +

    • +
    • Sort: Int

    • +
    +

    +
    + +
    +
    +enumerator RE_FIRST_MATCH_PRE
    +

    The next three skolems are used to decompose the match of a regular expression in string.

    +

    For string a and regular expression R, this skolem is the prefix of string a before the first, shortest match of R in a. Formally, if (str.in_re a (re.++ (re.* re.allchar) R (re.* re.allchar))), then there exists strings k_pre, k_match, k_post such that: (= a (str.++ k_pre k_match k_post)) and (= (len k_pre) (indexof_re a R 0)) and (forall ((l Int)) (=> (< 0 l (len k_match)) (not (str.in_re (substr k_match 0 l) R)))) and (str.in_re k_match R) This skolem is k_pre, and the proceeding two skolems are k_match and k_post.

    +

      +
    • Number of skolem indices: 2

        +
      • 1: The string.

      • +
      • 2: The regular expression to match.

      • +
      +

    • +
    • Sort: String

    • +
    +

    +
    + +
    +
    +enumerator RE_FIRST_MATCH
    +

    For string a and regular expression R, this skolem is the string that the first, shortest match of R was matched to in a.

    +

      +
    • Number of skolem indices: 2

        +
      • 1: The string.

      • +
      • 2: The regular expression to match.

      • +
      +

    • +
    • Sort: String

    • +
    +

    +
    + +
    +
    +enumerator RE_FIRST_MATCH_POST
    +

    For string a and regular expression R, this skolem is the remainder of a after the first, shortest match of R in a.

    +

      +
    • Number of skolem indices: 2

        +
      • 1: The string.

      • +
      • 2: The regular expression to match.

      • +
      +

    • +
    • Sort: String

    • +
    +

    +
    + +
    +
    +enumerator RE_UNFOLD_POS_COMPONENT
    +

    Regular expression unfold component: if (str.in_re a R), where R is (re.++ R0 ... Rn), then the RE_UNFOLD_POS_COMPONENT for indices (a,R,i) is a string ki such that (= a (str.++ k0 ... kn)) and (str.in_re k0 R0) for i = 0, …, n.

    +

      +
    • Number of skolem indices: 3

        +
      • 1: The string.

      • +
      • 2: The regular expression.

      • +
      • 3: The index of the skolem.

      • +
      +

    • +
    • Sort: String

    • +
    +

    +
    + +
    +
    +enumerator BAGS_CARD_COMBINE
    +

    An uninterpreted function for bag.card operator: To compute (bag.card A), we need a function that counts multiplicities of distinct elements. We call this function combine of type Int -> Int where: combine(0) = 0. combine(i) = m(elements(i), A) + combine(i-1) for 1 <= i <= n. elements: a skolem function for (bag.fold f t A). See BAGS_DISTINCT_ELEMENTS. n: is the number of distinct elements in A.

    +

      +
    • Number of skolem indices: 1

        +
      • 1: the bag argument A.

      • +
      +

    • +
    • Sort: (-> Int Int)

    • +
    +

    +
    + +
    +
    +enumerator BAGS_DISTINCT_ELEMENTS_UNION_DISJOINT
    +

    An uninterpreted function for the union of distinct elements in a bag (Bag T). To compute operators like bag.card, we need a function for distinct elements in A of type (-> Int T) (see BAGS_DISTINCT_ELEMENTS). We also need to restrict the range [1, n] to only elements in the bag as follows: unionDisjoint(0) = bag.empty. unionDisjoint(i) = disjoint union of {<elements(i), m(elements(i), A)>} and unionDisjoint(i-1). unionDisjoint(n) = A.

    +

      +
    • Number of skolem indices: 1

        +
      • 1: the bag argument A of type (Bag T).

      • +
      +

    • +
    • Sort: (-> Int (Bag T))

    • +
    +

    +
    + +
    +
    +enumerator BAGS_FOLD_CARD
    +

    An uninterpreted function for bag.fold operator: To compute (bag.fold f t A), we need to guess the cardinality n of bag A using a skolem function with BAGS_FOLD_CARD id.

    +

      +
    • Number of skolem indices: 1

        +
      • 1: the bag argument A.

      • +
      +

    • +
    • Sort: Int

    • +
    +

    +
    + +
    +
    +enumerator BAGS_FOLD_COMBINE
    +

    An uninterpreted function for bag.fold operator: To compute (bag.fold f t A), we need a function that accumulates intermidiate values. We call this function combine of type Int -> T2 where: combine(0) = t combine(i) = f(elements(i), combine(i - 1)) for 1 <= i <= n. elements: a skolem function for (bag.fold f t A) see BAGS_FOLD_ELEMENTS. n: is the cardinality of A. T2: is the type of initial value t.

    +

      +
    • Number of skolem indices: 3

        +
      • 1: the function f of type (-> T1 T2).

      • +
      • 2: the initial value t of type T2.

      • +
      • 3: the bag argument A of type (Bag T1).

      • +
      +

    • +
    • Sort: (-> Int T2)

    • +
    +

    +
    + +
    +
    +enumerator BAGS_FOLD_ELEMENTS
    +

    An uninterpreted function for bag.fold operator: To compute (bag.fold f t A), we need a function for elements of A. We call this function elements of type (-> Int T1) where T1 is the type of elements of A. If the cardinality of A is n, then A is the disjoint union of {elements(i)} for 1 <= i <= n. See BAGS_FOLD_UNION_DISJOINT.

    +

      +
    • Number of skolem indices: 1

        +
      • 1: a bag argument A of type (Bag T1)

      • +
      +

    • +
    • Sort: (-> Int T1)

    • +
    +

    +
    + +
    +
    +enumerator BAGS_FOLD_UNION_DISJOINT
    +

    An uninterpreted function for bag.fold operator: To compute (bag.fold f t A), we need a function for elements of A which is given by elements defined in BAGS_FOLD_ELEMENTS. We also need unionDisjoint: (-> Int (Bag T1)) to compute the disjoint union such that: unionDisjoint(0) = bag.empty. unionDisjoint(i) = disjoint union of {elements(i)} and unionDisjoint (i-1). unionDisjoint(n) = A.

    +

      +
    • Number of skolem indices: 1

        +
      • 1: the bag argument A of type (Bag T1).

      • +
      +

    • +
    • Sort: (-> Int (Bag T1))

    • +
    +

    +
    + +
    +
    +enumerator BAGS_CHOOSE
    +

    An interpreted function uf for bag.choose operator: (bag.choose A) is replaced by (uf A) along with the inference that (>= (bag.count (uf A) A) 1) when A is non-empty. where T is the type of elements of A.

    +

      +
    • Number of skolem indices: 1

        +
      • 1: the bag to chose from, of type (Bag T).

      • +
      +

    • +
    • Sort: (-> (Bag T) T)

    • +
    +

    +
    + +
    +
    +enumerator BAGS_DISTINCT_ELEMENTS
    +

    An uninterpreted function for distinct elements of a bag A, which returns the n^th distinct element of the bag. See BAGS_DISTINCT_ELEMENTS_UNION_DISJOINT.

    +

      +
    • Number of skolem indices: 1

        +
      • 1: the bag argument A of type (Bag T).

      • +
      +

    • +
    • Sort: (-> Int T)

    • +
    +

    +
    + +
    +
    +enumerator BAGS_DISTINCT_ELEMENTS_SIZE
    +

    A skolem variable for the size of the distinct elements of a bag A.

    +

      +
    • Number of skolem indices: 1

        +
      • 1: the bag argument A.

      • +
      +

    • +
    • Sort: Int

    • +
    +

    +
    + +
    +
    +enumerator BAGS_MAP_PREIMAGE_INJECTIVE
    +

    A skolem for the preimage of an element y in (bag.map f A) such that (= (f x) y) where f: (-> E T) is an injective function.

    +

      +
    • Number of skolem indices: 3

        +
      • 1: the function f of type (-> E T).

      • +
      • 2: the bag argument A of (Bag E).

      • +
      • 3: the element argument y type T.

      • +
      +

    • +
    • Sort: E

    • +
    +

    +
    + +
    +
    +enumerator BAGS_MAP_INDEX
    +

    A skolem variable for the index that is unique per terms (bag.map f A), y, e where: f: (-> E T), A: (Bag E), y: T, e: E

    +

      +
    • Number of skolem indices: 5

        +
      • 1: a map term of the form (bag.map f A).

      • +
      • 2: a skolem function with id BAGS_DISTINCT_ELEMENTS.

      • +
      • 3: a skolem function with id BAGS_DISTINCT_ELEMENTS_SIZE.

      • +
      • 4: an element y of type T representing the mapped value.

      • +
      • 5: an element x of type E.

      • +
      +

    • +
    • Sort: Int

    • +
    +

    +
    + +
    +
    +enumerator BAGS_MAP_SUM
    +

    An uninterpreted function for bag.map operator: If bag A is {uf(1), …, uf(n)} (see BAGS_DISTINCT_ELEMENTS}, then the multiplicity of an element y in a bag (bag.map f A) is sum(n), where sum: (-> Int Int) is a skolem function such that: sum(0) = 0 sum(i) = sum (i-1) + (bag.count (uf i) A)

    +

      +
    • Number of skolem indices: 3

        +
      • 1: the function f of type (-> E T).

      • +
      • 2: the bag argument A of (Bag E).

      • +
      • 3: the element argument e type E.

      • +
      +

    • +
    • Sort: (-> Int Int)

    • +
    +

    +
    + +
    +
    +enumerator BAGS_DEQ_DIFF
    +

    The bag diff skolem, which is the witness k for the inference (=> (not (= A B)) (not (= (bag.count k A) (bag.count k B)))).

    +

      +
    • Number of skolem indices: 2

        +
      • 1: The first bag of type (Bag T).

      • +
      • 2: The second bag of type (Bag T).

      • +
      +

    • +
    • Sort: T

    • +
    +

    +
    + +
    +
    +enumerator TABLES_GROUP_PART
    +

    Given a group term ((_ table.group n1 ... nk) A) of type (Bag (Table T)), this skolem maps elements of A to their parts in the resulting partition.

    +

      +
    • Number of skolem indices: 1

        +
      • 1: a group term of the form ((_ table.group n1 ... nk) A).

      • +
      +

    • +
    • Sort: (-> T (Table T))

    • +
    +

    +
    + +
    +
    +enumerator TABLES_GROUP_PART_ELEMENT
    +

    Given a group term ((_ table.group n1 ... nk) A) of type (Bag (Table T)) and a part B of type (Table T), this function returns a skolem element that is a member of B if B is not empty.

    +

      +
    • Number of skolem indices: 2

        +
      • 1: a group term of the form ((_ table.group n1 ... nk) A).

      • +
      • 2: a table B of type (Table T).

      • +
      +

    • +
    • Sort: T

    • +
    +

    +
    + +
    +
    +enumerator RELATIONS_GROUP_PART
    +

    Given a group term ((_ rel.group n1 ... nk) A) of type (Set (Relation T)) this skolem maps elements of A to their parts in the resulting partition.

    +

      +
    • Number of skolem indices: 1

        +
      • 1: a relation of the form ((_ rel.group n1 ... nk) A).

      • +
      +

    • +
    • Sort: (-> T (Relation T))

    • +
    +

    +
    + +
    +
    +enumerator RELATIONS_GROUP_PART_ELEMENT
    +

    Given a group term ((_ rel.group n1 … nk) A) of type (Set (Relation T)) and a part B of type (Relation T), this function returns a skolem element that is a member of B if B is not empty.

    +

      +
    • Number of skolem indices: 2

        +
      • 1: a group term of the form ((_ rel.group n1 ... nk) A).

      • +
      • 2: a relation B of type (Relation T).

      • +
      +

    • +
    • Sort: T

    • +
    +

    +
    + +
    +
    +enumerator SETS_CHOOSE
    +

    An interpreted function for set.choose operator, where (set.choose A) is expanded to (uf A) along with the inference (set.member (uf A) A)) when A is non-empty, where uf: (-> (Set E) E) is this skolem function, and E is the type of elements of A.

    +

      +
    • Number of skolem indices: 1

        +
      • 1: a ground value for the type (Set E).

      • +
      +

    • +
    • Sort: (-> (Set E) E)

    • +
    +

    +
    + +
    +
    +enumerator SETS_DEQ_DIFF
    +

    The set diff skolem, which is the witness k for the inference (=> (not (= A B)) (not (= (set.member k A) (set.member k B)))).

    +

      +
    • Number of skolem indices: 2

        +
      • 1: The first set of type (Set E).

      • +
      • 2: The second set of type (Set E).

      • +
      +

    • +
    • Sort: E

    • +
    +

    +
    + +
    +
    +enumerator SETS_FOLD_CARD
    +

    An uninterpreted function for set.fold operator: To compute (set.fold f t A), we need to guess the cardinality n of set A using a skolem function with SETS_FOLD_CARD id.

    +

      +
    • Number of skolem indices: 1

        +
      • 1: the set argument A.

      • +
      +

    • +
    • Sort: Int

    • +
    +

    +
    + +
    +
    +enumerator SETS_FOLD_COMBINE
    +

    An uninterpreted function for set.fold operator: To compute (set.fold f t A), we need a function that accumulates intermidiate values. We call this function combine of type Int -> T2 where: combine(0) = t combine(i) = f(elements(i), combine(i - 1)) for 1 <= i <= n elements: a skolem function for (set.fold f t A) see SETS_FOLD_ELEMENTS n: is the cardinality of A T2: is the type of initial value t

    +

      +
    • Number of skolem indices: 3

        +
      • 1: the function f of type (-> T1 T2).

      • +
      • 2: the initial value t of type T2.

      • +
      • 3: the set argument A of type (Set T1).

      • +
      +

    • +
    • Sort: (-> Int T2)

    • +
    +

    +
    + +
    +
    +enumerator SETS_FOLD_ELEMENTS
    +

    An uninterpreted function for set.fold operator: To compute (set.fold f t A), we need a function for elements of A. We call this function elements of type (-> Int T) where T is the type of elements of A. If the cardinality of A is n, then A is the union of {elements(i)} for 1 <= i <= n. See SETS_FOLD_UNION_DISJOINT.

    +

      +
    • Number of skolem indices: 1

        +
      • 1: a set argument A of type (Set T).

      • +
      +

    • +
    • Sort: (-> Int T)

    • +
    +

    +
    + +
    +
    +enumerator SETS_FOLD_UNION
    +

    An uninterpreted function for set.fold operator: To compute (set.fold f t A), we need a function for elements of A which is given by elements defined in SETS_FOLD_ELEMENTS. We also need unionFn: (-> Int (Set E)) to compute the union such that: unionFn(0) = set.empty unionFn(i) = union of {elements(i)} and unionFn (i-1) unionFn(n) = A

    +

      +
    • Number of skolem indices: 1

        +
      • 1: a set argument A of type (Set E).

      • +
      +

    • +
    • Sort: (-> Int (Set E))

    • +
    +

    +
    + +
    +
    +enumerator SETS_MAP_DOWN_ELEMENT
    +

    A skolem variable that is unique per terms (set.map f A), y which is an element in (set.map f A). The skolem is constrained to be an element in A, and it is mapped to y by f.

    +

      +
    • Number of skolem indices: 2

        +
      • 1: a map term of the form (set.map f A) where A of type (Set E)

      • +
      • 2: the element argument y.

      • +
      +

    • +
    • Sort: E

    • +
    +

    +
    + +
    +
    +enumerator FP_MIN_ZERO
    +

    A skolem function that is unique per floating-point sort, introduced for the undefined zero case of fp.min.

    +

      +
    • Number of skolem indices: 1

        +
      • 1: The floating-point sort FP of the fp.min operator.

      • +
      +

    • +
    • Sort: (-> FP FP (_ BitVec 1))

    • +
    +

    +
    + +
    +
    +enumerator FP_MAX_ZERO
    +

    A skolem function that is unique per floating-point sort, introduced for the undefined zero case of fp.max.

    +

      +
    • Number of skolem indices: 1

        +
      • 1: The floating-point sort FP of the fp.max operator.

      • +
      +

    • +
    • Sort: (-> FP FP (_ BitVec 1))

    • +
    +

    +
    + +
    +
    +enumerator FP_TO_UBV
    +

    A skolem function introduced for the undefined out-ouf-bounds case of fp.to_ubv that is unique per floating-point sort and sort of the arguments to the operator.

    +

      +
    • Number of skolem indices: 2

        +
      • 1: The floating-point sort FP of operand of fp.to_ubv.

      • +
      • 2: The bit-vector sort BV to convert to.

      • +
      +

    • +
    • Sort: (-> RoundingMode FP BV)

    • +
    +

    +
    + +
    +
    +enumerator FP_TO_SBV
    +

    A skolem function introduced for the undefined out-ouf-bounds case of fp.to_sbv that is unique per floating-point sort and sort of the arguments to the operator.

    +

      +
    • Number of skolem indices: 2

        +
      • 1: The floating-point sort FP of operand of fp.to_sbv.

      • +
      • 2: The bit-vector sort BV to convert to.

      • +
      +

    • +
    • Sort: (-> RoundingMode FP BV)

    • +
    +

    +
    + +
    +
    +enumerator FP_TO_REAL
    +

    A skolem function introduced for the undefined of fp.to_real that is unique per floating-point sort.

    +

      +
    • Number of skolem indices: 1

        +
      • 1: The floating-point sort FP of the operand of fp.to_real.

      • +
      +

    • +
    • Sort: (-> FP Real)

    • +
    +

    +
    + +
    +
    +enumerator BV_TO_INT_UF
    +

    A skolem function introduced by the int-blaster. Given a function f with argument and/or return types that include bit-vectors, we get a function that replaces them by integer types. For example, if the original function is from BV and Strings to Strings, the resulting function is from Ints and Strings to Strings.

      +
    • Number of skolem indices: 1

        +
      • 1: the original function f, with BV sorts.

      • +
      +

    • +
    • Sort: (-> T1 … ( -> Tn’ T’)…) Where f has sort (->T1 … (-> Tn T)…) and Ti (T’) is Int if Ti (T) is BV and Ti’ (T’) is just Ti (T) otherwise.

    • +
    +

    +
    + +
    +
    +enumerator NONE
    +

    Indicates this is not a skolem.

    +
    + +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/_sphinx_javascript_frameworks_compat.js b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/_sphinx_javascript_frameworks_compat.js new file mode 100644 index 0000000000..81415803ec --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/_sphinx_javascript_frameworks_compat.js @@ -0,0 +1,123 @@ +/* Compatability shim for jQuery and underscores.js. + * + * Copyright Sphinx contributors + * Released under the two clause BSD licence + */ + +/** + * small helper function to urldecode strings + * + * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL + */ +jQuery.urldecode = function(x) { + if (!x) { + return x + } + return decodeURIComponent(x.replace(/\+/g, ' ')); +}; + +/** + * small helper function to urlencode strings + */ +jQuery.urlencode = encodeURIComponent; + +/** + * This function returns the parsed url parameters of the + * current request. Multiple values per key are supported, + * it will always return arrays of strings for the value parts. + */ +jQuery.getQueryParameters = function(s) { + if (typeof s === 'undefined') + s = document.location.search; + var parts = s.substr(s.indexOf('?') + 1).split('&'); + var result = {}; + for (var i = 0; i < parts.length; i++) { + var tmp = parts[i].split('=', 2); + var key = jQuery.urldecode(tmp[0]); + var value = jQuery.urldecode(tmp[1]); + if (key in result) + result[key].push(value); + else + result[key] = [value]; + } + return result; +}; + +/** + * highlight a given string on a jquery object by wrapping it in + * span elements with the given class name. + */ +jQuery.fn.highlightText = function(text, className) { + function highlight(node, addItems) { + if (node.nodeType === 3) { + var val = node.nodeValue; + var pos = val.toLowerCase().indexOf(text); + if (pos >= 0 && + !jQuery(node.parentNode).hasClass(className) && + !jQuery(node.parentNode).hasClass("nohighlight")) { + var span; + var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.className = className; + } + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + node.parentNode.insertBefore(span, node.parentNode.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling)); + node.nodeValue = val.substr(0, pos); + if (isInSVG) { + var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); + var bbox = node.parentElement.getBBox(); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute('class', className); + addItems.push({ + "parent": node.parentNode, + "target": rect}); + } + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this, addItems); + }); + } + } + var addItems = []; + var result = this.each(function() { + highlight(this, addItems); + }); + for (var i = 0; i < addItems.length; ++i) { + jQuery(addItems[i].parent).before(addItems[i].target); + } + return result; +}; + +/* + * backward compatibility for jQuery.browser + * This will be supported until firefox bug is fixed. + */ +if (!jQuery.browser) { + jQuery.uaMatch = function(ua) { + ua = ua.toLowerCase(); + + var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || + /(webkit)[ \/]([\w.]+)/.exec(ua) || + /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || + /(msie) ([\w.]+)/.exec(ua) || + ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || + []; + + return { + browser: match[ 1 ] || "", + version: match[ 2 ] || "0" + }; + }; + jQuery.browser = {}; + jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; +} diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/basic.css b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/basic.css new file mode 100644 index 0000000000..cfc60b86c7 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/basic.css @@ -0,0 +1,921 @@ +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +div.section::after { + display: block; + content: ''; + clear: left; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 230px; + margin-left: -100%; + font-size: 90%; + word-wrap: break-word; + overflow-wrap : break-word; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +div.sphinxsidebar #searchbox form.search { + overflow: hidden; +} + +div.sphinxsidebar #searchbox input[type="text"] { + float: left; + width: 80%; + padding: 0.25em; + box-sizing: border-box; +} + +div.sphinxsidebar #searchbox input[type="submit"] { + float: left; + width: 20%; + border-left: none; + padding: 0.25em; + box-sizing: border-box; +} + + +img { + border: 0; + max-width: 100%; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li p.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; + margin-left: auto; + margin-right: auto; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable ul { + margin-top: 0; + margin-bottom: 0; + list-style-type: none; +} + +table.indextable > tbody > tr > td > ul { + padding-left: 0em; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- domain module index --------------------------------------------------- */ + +table.modindextable td { + padding: 2px; + border-collapse: collapse; +} + +/* -- general body styles --------------------------------------------------- */ + +div.body { + min-width: 360px; + max-width: 800px; +} + +div.body p, div.body dd, div.body li, div.body blockquote { + -moz-hyphens: auto; + -ms-hyphens: auto; + -webkit-hyphens: auto; + hyphens: auto; +} + +a.headerlink { + visibility: hidden; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink, +caption:hover > a.headerlink, +p.caption:hover > a.headerlink, +div.code-block-caption:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, figure.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, figure.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, figure.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +img.align-default, figure.align-default, .figure.align-default { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-default { + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar, +aside.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px; + background-color: #ffe; + width: 40%; + float: right; + clear: right; + overflow-x: auto; +} + +p.sidebar-title { + font-weight: bold; +} + +nav.contents, +aside.topic, +div.admonition, div.topic, blockquote { + clear: left; +} + +/* -- topics ---------------------------------------------------------------- */ + +nav.contents, +aside.topic, +div.topic { + border: 1px solid #ccc; + padding: 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- content of sidebars/topics/admonitions -------------------------------- */ + +div.sidebar > :last-child, +aside.sidebar > :last-child, +nav.contents > :last-child, +aside.topic > :last-child, +div.topic > :last-child, +div.admonition > :last-child { + margin-bottom: 0; +} + +div.sidebar::after, +aside.sidebar::after, +nav.contents::after, +aside.topic::after, +div.topic::after, +div.admonition::after, +blockquote::after { + display: block; + content: ''; + clear: both; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + margin-top: 10px; + margin-bottom: 10px; + border: 0; + border-collapse: collapse; +} + +table.align-center { + margin-left: auto; + margin-right: auto; +} + +table.align-default { + margin-left: auto; + margin-right: auto; +} + +table caption span.caption-number { + font-style: italic; +} + +table caption span.caption-text { +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +th > :first-child, +td > :first-child { + margin-top: 0px; +} + +th > :last-child, +td > :last-child { + margin-bottom: 0px; +} + +/* -- figures --------------------------------------------------------------- */ + +div.figure, figure { + margin: 0.5em; + padding: 0.5em; +} + +div.figure p.caption, figcaption { + padding: 0.3em; +} + +div.figure p.caption span.caption-number, +figcaption span.caption-number { + font-style: italic; +} + +div.figure p.caption span.caption-text, +figcaption span.caption-text { +} + +/* -- field list styles ----------------------------------------------------- */ + +table.field-list td, table.field-list th { + border: 0 !important; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.field-name { + -moz-hyphens: manual; + -ms-hyphens: manual; + -webkit-hyphens: manual; + hyphens: manual; +} + +/* -- hlist styles ---------------------------------------------------------- */ + +table.hlist { + margin: 1em 0; +} + +table.hlist td { + vertical-align: top; +} + +/* -- object description styles --------------------------------------------- */ + +.sig { + font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; +} + +.sig-name, code.descname { + background-color: transparent; + font-weight: bold; +} + +.sig-name { + font-size: 1.1em; +} + +code.descname { + font-size: 1.2em; +} + +.sig-prename, code.descclassname { + background-color: transparent; +} + +.optional { + font-size: 1.3em; +} + +.sig-paren { + font-size: larger; +} + +.sig-param.n { + font-style: italic; +} + +/* C++ specific styling */ + +.sig-inline.c-texpr, +.sig-inline.cpp-texpr { + font-family: unset; +} + +.sig.c .k, .sig.c .kt, +.sig.cpp .k, .sig.cpp .kt { + color: #0033B3; +} + +.sig.c .m, +.sig.cpp .m { + color: #1750EB; +} + +.sig.c .s, .sig.c .sc, +.sig.cpp .s, .sig.cpp .sc { + color: #067D17; +} + + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +:not(li) > ol > li:first-child > :first-child, +:not(li) > ul > li:first-child > :first-child { + margin-top: 0px; +} + +:not(li) > ol > li:last-child > :last-child, +:not(li) > ul > li:last-child > :last-child { + margin-bottom: 0px; +} + +ol.simple ol p, +ol.simple ul p, +ul.simple ol p, +ul.simple ul p { + margin-top: 0; +} + +ol.simple > li:not(:first-child) > p, +ul.simple > li:not(:first-child) > p { + margin-top: 0; +} + +ol.simple p, +ul.simple p { + margin-bottom: 0; +} + +aside.footnote > span, +div.citation > span { + float: left; +} +aside.footnote > span:last-of-type, +div.citation > span:last-of-type { + padding-right: 0.5em; +} +aside.footnote > p { + margin-left: 2em; +} +div.citation > p { + margin-left: 4em; +} +aside.footnote > p:last-of-type, +div.citation > p:last-of-type { + margin-bottom: 0em; +} +aside.footnote > p:last-of-type:after, +div.citation > p:last-of-type:after { + content: ""; + clear: both; +} + +dl.field-list { + display: grid; + grid-template-columns: fit-content(30%) auto; +} + +dl.field-list > dt { + font-weight: bold; + word-break: break-word; + padding-left: 0.5em; + padding-right: 5px; +} + +dl.field-list > dd { + padding-left: 0.5em; + margin-top: 0em; + margin-left: 0em; + margin-bottom: 0em; +} + +dl { + margin-bottom: 15px; +} + +dd > :first-child { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +.sig dd { + margin-top: 0px; + margin-bottom: 0px; +} + +.sig dl { + margin-top: 0px; + margin-bottom: 0px; +} + +dl > dd:last-child, +dl > dd:last-child > :last-child { + margin-bottom: 0; +} + +dt:target, span.highlighted { + background-color: #fbe54e; +} + +rect.highlighted { + fill: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +.classifier:before { + font-style: normal; + margin: 0 0.5em; + content: ":"; + display: inline-block; +} + +abbr, acronym { + border-bottom: dotted 1px; + cursor: help; +} + +.translated { + background-color: rgba(207, 255, 207, 0.2) +} + +.untranslated { + background-color: rgba(255, 207, 207, 0.2) +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +pre, div[class*="highlight-"] { + clear: both; +} + +span.pre { + -moz-hyphens: none; + -ms-hyphens: none; + -webkit-hyphens: none; + hyphens: none; + white-space: nowrap; +} + +div[class*="highlight-"] { + margin: 1em 0; +} + +td.linenos pre { + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + display: block; +} + +table.highlighttable tbody { + display: block; +} + +table.highlighttable tr { + display: flex; +} + +table.highlighttable td { + margin: 0; + padding: 0; +} + +table.highlighttable td.linenos { + padding-right: 0.5em; +} + +table.highlighttable td.code { + flex: 1; + overflow: hidden; +} + +.highlight .hll { + display: block; +} + +div.highlight pre, +table.highlighttable pre { + margin: 0; +} + +div.code-block-caption + div { + margin-top: 0; +} + +div.code-block-caption { + margin-top: 1em; + padding: 2px 5px; + font-size: small; +} + +div.code-block-caption code { + background-color: transparent; +} + +table.highlighttable td.linenos, +span.linenos, +div.highlight span.gp { /* gp: Generic.Prompt */ + user-select: none; + -webkit-user-select: text; /* Safari fallback only */ + -webkit-user-select: none; /* Chrome/Safari */ + -moz-user-select: none; /* Firefox */ + -ms-user-select: none; /* IE10+ */ +} + +div.code-block-caption span.caption-number { + padding: 0.1em 0.3em; + font-style: italic; +} + +div.code-block-caption span.caption-text { +} + +div.literal-block-wrapper { + margin: 1em 0; +} + +code.xref, a code { + background-color: transparent; + font-weight: bold; +} + +h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +span.eqno a.headerlink { + position: absolute; + z-index: 1; +} + +div.math:hover a.headerlink { + visibility: visible; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/badge_only.css b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/badge_only.css new file mode 100644 index 0000000000..88ba55b965 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/badge_only.css @@ -0,0 +1 @@ +.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-style:normal;font-weight:400;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#FontAwesome) format("svg")}.fa:before{font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1}.fa:before,a .fa{text-decoration:inherit}.fa:before,a .fa,li .fa{display:inline-block}li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before,.icon-book:before{content:"\f02d"}.fa-caret-down:before,.icon-caret-down:before{content:"\f0d7"}.fa-caret-up:before,.icon-caret-up:before{content:"\f0d8"}.fa-caret-left:before,.icon-caret-left:before{content:"\f0d9"}.fa-caret-right:before,.icon-caret-right:before{content:"\f0da"}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60}.rst-versions .rst-current-version:after{clear:both;content:"";display:block}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions .rst-other-versions .rtd-current-item{font-weight:700}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}#flyout-search-form{padding:6px} \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/fonts/Roboto-Slab-Bold.woff b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/fonts/Roboto-Slab-Bold.woff new file mode 100644 index 0000000000..6cb6000018 Binary files /dev/null and b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/fonts/Roboto-Slab-Bold.woff differ diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/fonts/Roboto-Slab-Bold.woff2 b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/fonts/Roboto-Slab-Bold.woff2 new file mode 100644 index 0000000000..7059e23142 Binary files /dev/null and b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/fonts/Roboto-Slab-Bold.woff2 differ diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/fonts/Roboto-Slab-Regular.woff b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/fonts/Roboto-Slab-Regular.woff new file mode 100644 index 0000000000..f815f63f99 Binary files /dev/null and b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/fonts/Roboto-Slab-Regular.woff differ diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/fonts/Roboto-Slab-Regular.woff2 b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/fonts/Roboto-Slab-Regular.woff2 new file mode 100644 index 0000000000..f2c76e5bda Binary files /dev/null and b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/fonts/Roboto-Slab-Regular.woff2 differ diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/fonts/fontawesome-webfont.eot b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/fonts/fontawesome-webfont.eot new file mode 100644 index 0000000000..e9f60ca953 Binary files /dev/null and b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/fonts/fontawesome-webfont.eot differ diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/fonts/fontawesome-webfont.svg b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/fonts/fontawesome-webfont.svg new file mode 100644 index 0000000000..855c845e53 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/fonts/fontawesome-webfont.svg @@ -0,0 +1,2671 @@ + + + + +Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 + By ,,, +Copyright Dave Gandy 2016. All rights reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/fonts/fontawesome-webfont.ttf b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/fonts/fontawesome-webfont.ttf new file mode 100644 index 0000000000..35acda2fa1 Binary files /dev/null and b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/fonts/fontawesome-webfont.ttf differ diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/fonts/fontawesome-webfont.woff b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/fonts/fontawesome-webfont.woff new file mode 100644 index 0000000000..400014a4b0 Binary files /dev/null and b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/fonts/fontawesome-webfont.woff differ diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/fonts/fontawesome-webfont.woff2 b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/fonts/fontawesome-webfont.woff2 new file mode 100644 index 0000000000..4d13fc6040 Binary files /dev/null and b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/fonts/fontawesome-webfont.woff2 differ diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/fonts/lato-bold-italic.woff b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/fonts/lato-bold-italic.woff new file mode 100644 index 0000000000..88ad05b9ff Binary files /dev/null and b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/fonts/lato-bold-italic.woff differ diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/fonts/lato-bold-italic.woff2 b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/fonts/lato-bold-italic.woff2 new file mode 100644 index 0000000000..c4e3d804b5 Binary files /dev/null and b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/fonts/lato-bold-italic.woff2 differ diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/fonts/lato-bold.woff b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/fonts/lato-bold.woff new file mode 100644 index 0000000000..c6dff51f06 Binary files /dev/null and b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/fonts/lato-bold.woff differ diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/fonts/lato-bold.woff2 b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/fonts/lato-bold.woff2 new file mode 100644 index 0000000000..bb195043cf Binary files /dev/null and b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/fonts/lato-bold.woff2 differ diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/fonts/lato-normal-italic.woff b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/fonts/lato-normal-italic.woff new file mode 100644 index 0000000000..76114bc033 Binary files /dev/null and b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/fonts/lato-normal-italic.woff differ diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/fonts/lato-normal-italic.woff2 b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/fonts/lato-normal-italic.woff2 new file mode 100644 index 0000000000..3404f37e2e Binary files /dev/null and b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/fonts/lato-normal-italic.woff2 differ diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/fonts/lato-normal.woff b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/fonts/lato-normal.woff new file mode 100644 index 0000000000..ae1307ff5f Binary files /dev/null and b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/fonts/lato-normal.woff differ diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/fonts/lato-normal.woff2 b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/fonts/lato-normal.woff2 new file mode 100644 index 0000000000..3bf9843328 Binary files /dev/null and b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/fonts/lato-normal.woff2 differ diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/theme.css b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/theme.css new file mode 100644 index 0000000000..0f14f10646 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/css/theme.css @@ -0,0 +1,4 @@ +html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}[hidden],audio:not([controls]){display:none}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}blockquote{margin:0}dfn{font-style:italic}ins{background:#ff9;text-decoration:none}ins,mark{color:#000}mark{background:#ff0;font-style:italic;font-weight:700}.rst-content code,.rst-content tt,code,kbd,pre,samp{font-family:monospace,serif;_font-family:courier new,monospace;font-size:1em}pre{white-space:pre}q{quotes:none}q:after,q:before{content:"";content:none}small{font-size:85%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}dl,ol,ul{margin:0;padding:0;list-style:none;list-style-image:none}li{list-style:none}dd{margin:0}img{border:0;-ms-interpolation-mode:bicubic;vertical-align:middle;max-width:100%}svg:not(:root){overflow:hidden}figure,form{margin:0}label{cursor:pointer}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button;*overflow:visible}button[disabled],input[disabled]{cursor:default}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}textarea{resize:vertical}table{border-collapse:collapse;border-spacing:0}td{vertical-align:top}.chromeframe{margin:.2em 0;background:#ccc;color:#000;padding:.2em 0}.ir{display:block;border:0;text-indent:-999em;overflow:hidden;background-color:transparent;background-repeat:no-repeat;text-align:left;direction:ltr;*line-height:0}.ir br{display:none}.hidden{display:none!important;visibility:hidden}.visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.visuallyhidden.focusable:active,.visuallyhidden.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.invisible{visibility:hidden}.relative{position:relative}big,small{font-size:100%}@media print{body,html,section{background:none!important}*{box-shadow:none!important;text-shadow:none!important;filter:none!important;-ms-filter:none!important}a,a:visited{text-decoration:underline}.ir a:after,a[href^="#"]:after,a[href^="javascript:"]:after{content:""}blockquote,pre{page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}.rst-content .toctree-wrapper>p.caption,h2,h3,p{orphans:3;widows:3}.rst-content .toctree-wrapper>p.caption,h2,h3{page-break-after:avoid}}.btn,.fa:before,.icon:before,.rst-content .admonition,.rst-content .admonition-title:before,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .code-block-caption .headerlink:before,.rst-content .danger,.rst-content .eqno .headerlink:before,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content p .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-alert,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before,.wy-menu-vertical li button.toctree-expand:before,input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:FontAwesome;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713);src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix&v=4.7.0) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#fontawesomeregular) format("svg");font-weight:400;font-style:normal}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;width:2.14286em;top:.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa-pull-left.icon,.fa.fa-pull-left,.rst-content .code-block-caption .fa-pull-left.headerlink,.rst-content .eqno .fa-pull-left.headerlink,.rst-content .fa-pull-left.admonition-title,.rst-content code.download span.fa-pull-left:first-child,.rst-content dl dt .fa-pull-left.headerlink,.rst-content h1 .fa-pull-left.headerlink,.rst-content h2 .fa-pull-left.headerlink,.rst-content h3 .fa-pull-left.headerlink,.rst-content h4 .fa-pull-left.headerlink,.rst-content h5 .fa-pull-left.headerlink,.rst-content h6 .fa-pull-left.headerlink,.rst-content p .fa-pull-left.headerlink,.rst-content table>caption .fa-pull-left.headerlink,.rst-content tt.download span.fa-pull-left:first-child,.wy-menu-vertical li.current>a button.fa-pull-left.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-left.toctree-expand,.wy-menu-vertical li button.fa-pull-left.toctree-expand{margin-right:.3em}.fa-pull-right.icon,.fa.fa-pull-right,.rst-content .code-block-caption .fa-pull-right.headerlink,.rst-content .eqno .fa-pull-right.headerlink,.rst-content .fa-pull-right.admonition-title,.rst-content code.download span.fa-pull-right:first-child,.rst-content dl dt .fa-pull-right.headerlink,.rst-content h1 .fa-pull-right.headerlink,.rst-content h2 .fa-pull-right.headerlink,.rst-content h3 .fa-pull-right.headerlink,.rst-content h4 .fa-pull-right.headerlink,.rst-content h5 .fa-pull-right.headerlink,.rst-content h6 .fa-pull-right.headerlink,.rst-content p .fa-pull-right.headerlink,.rst-content table>caption .fa-pull-right.headerlink,.rst-content tt.download span.fa-pull-right:first-child,.wy-menu-vertical li.current>a button.fa-pull-right.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-right.toctree-expand,.wy-menu-vertical li button.fa-pull-right.toctree-expand{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left,.pull-left.icon,.rst-content .code-block-caption .pull-left.headerlink,.rst-content .eqno .pull-left.headerlink,.rst-content .pull-left.admonition-title,.rst-content code.download span.pull-left:first-child,.rst-content dl dt .pull-left.headerlink,.rst-content h1 .pull-left.headerlink,.rst-content h2 .pull-left.headerlink,.rst-content h3 .pull-left.headerlink,.rst-content h4 .pull-left.headerlink,.rst-content h5 .pull-left.headerlink,.rst-content h6 .pull-left.headerlink,.rst-content p .pull-left.headerlink,.rst-content table>caption .pull-left.headerlink,.rst-content tt.download span.pull-left:first-child,.wy-menu-vertical li.current>a button.pull-left.toctree-expand,.wy-menu-vertical li.on a button.pull-left.toctree-expand,.wy-menu-vertical li button.pull-left.toctree-expand{margin-right:.3em}.fa.pull-right,.pull-right.icon,.rst-content .code-block-caption .pull-right.headerlink,.rst-content .eqno .pull-right.headerlink,.rst-content .pull-right.admonition-title,.rst-content code.download span.pull-right:first-child,.rst-content dl dt .pull-right.headerlink,.rst-content h1 .pull-right.headerlink,.rst-content h2 .pull-right.headerlink,.rst-content h3 .pull-right.headerlink,.rst-content h4 .pull-right.headerlink,.rst-content h5 .pull-right.headerlink,.rst-content h6 .pull-right.headerlink,.rst-content p .pull-right.headerlink,.rst-content table>caption .pull-right.headerlink,.rst-content tt.download span.pull-right:first-child,.wy-menu-vertical li.current>a button.pull-right.toctree-expand,.wy-menu-vertical li.on a button.pull-right.toctree-expand,.wy-menu-vertical li button.pull-right.toctree-expand{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);-ms-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before,.icon-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-close:before,.fa-remove:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-cog:before,.fa-gear:before{content:""}.fa-trash-o:before{content:""}.fa-home:before,.icon-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before,.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-repeat:before,.fa-rotate-right:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before,.icon-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before{content:""}.fa-check-circle:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before,.rst-content .admonition-title:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before,.icon-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-exclamation-triangle:before,.fa-warning:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-cogs:before,.fa-gears:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before,.icon-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before,.icon-circle-arrow-left:before{content:""}.fa-arrow-circle-right:before,.icon-circle-arrow-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before,.icon-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-floppy-o:before,.fa-save:before{content:""}.fa-square:before{content:""}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before,.icon-caret-down:before,.wy-dropdown .caret:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-sort:before,.fa-unsorted:before{content:""}.fa-sort-desc:before,.fa-sort-down:before{content:""}.fa-sort-asc:before,.fa-sort-up:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-gavel:before,.fa-legal:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-bolt:before,.fa-flash:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-clipboard:before,.fa-paste:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-chain-broken:before,.fa-unlink:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:""}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:""}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:""}.fa-eur:before,.fa-euro:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-inr:before,.fa-rupee:before{content:""}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:""}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:""}.fa-krw:before,.fa-won:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before,.icon-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-try:before,.fa-turkish-lira:before{content:""}.fa-plus-square-o:before,.wy-menu-vertical li button.toctree-expand:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-bank:before,.fa-institution:before,.fa-university:before{content:""}.fa-graduation-cap:before,.fa-mortar-board:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:""}.fa-file-archive-o:before,.fa-file-zip-o:before{content:""}.fa-file-audio-o:before,.fa-file-sound-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-rebel:before,.fa-resistance:before{content:""}.fa-empire:before,.fa-ge:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-paper-plane:before,.fa-send:before{content:""}.fa-paper-plane-o:before,.fa-send-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-bed:before,.fa-hotel:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-y-combinator:before,.fa-yc:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery-full:before,.fa-battery:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-television:before,.fa-tv:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.fa-reddit-alien:before{content:""}.fa-edge:before{content:""}.fa-credit-card-alt:before{content:""}.fa-codiepie:before{content:""}.fa-modx:before{content:""}.fa-fort-awesome:before{content:""}.fa-usb:before{content:""}.fa-product-hunt:before{content:""}.fa-mixcloud:before{content:""}.fa-scribd:before{content:""}.fa-pause-circle:before{content:""}.fa-pause-circle-o:before{content:""}.fa-stop-circle:before{content:""}.fa-stop-circle-o:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-hashtag:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-percent:before{content:""}.fa-gitlab:before,.icon-gitlab:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpforms:before{content:""}.fa-envira:before{content:""}.fa-universal-access:before{content:""}.fa-wheelchair-alt:before{content:""}.fa-question-circle-o:before{content:""}.fa-blind:before{content:""}.fa-audio-description:before{content:""}.fa-volume-control-phone:before{content:""}.fa-braille:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before{content:""}.fa-deaf:before,.fa-deafness:before,.fa-hard-of-hearing:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-sign-language:before,.fa-signing:before{content:""}.fa-low-vision:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-pied-piper:before{content:""}.fa-first-order:before{content:""}.fa-yoast:before{content:""}.fa-themeisle:before{content:""}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:""}.fa-fa:before,.fa-font-awesome:before{content:""}.fa-handshake-o:before{content:""}.fa-envelope-open:before{content:""}.fa-envelope-open-o:before{content:""}.fa-linode:before{content:""}.fa-address-book:before{content:""}.fa-address-book-o:before{content:""}.fa-address-card:before,.fa-vcard:before{content:""}.fa-address-card-o:before,.fa-vcard-o:before{content:""}.fa-user-circle:before{content:""}.fa-user-circle-o:before{content:""}.fa-user-o:before{content:""}.fa-id-badge:before{content:""}.fa-drivers-license:before,.fa-id-card:before{content:""}.fa-drivers-license-o:before,.fa-id-card-o:before{content:""}.fa-quora:before{content:""}.fa-free-code-camp:before{content:""}.fa-telegram:before{content:""}.fa-thermometer-4:before,.fa-thermometer-full:before,.fa-thermometer:before{content:""}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:""}.fa-thermometer-2:before,.fa-thermometer-half:before{content:""}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:""}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:""}.fa-shower:before{content:""}.fa-bath:before,.fa-bathtub:before,.fa-s15:before{content:""}.fa-podcast:before{content:""}.fa-window-maximize:before{content:""}.fa-window-minimize:before{content:""}.fa-window-restore:before{content:""}.fa-times-rectangle:before,.fa-window-close:before{content:""}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:""}.fa-bandcamp:before{content:""}.fa-grav:before{content:""}.fa-etsy:before{content:""}.fa-imdb:before{content:""}.fa-ravelry:before{content:""}.fa-eercast:before{content:""}.fa-microchip:before{content:""}.fa-snowflake-o:before{content:""}.fa-superpowers:before{content:""}.fa-wpexplorer:before{content:""}.fa-meetup:before{content:""}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-dropdown .caret,.wy-inline-validate.wy-inline-validate-danger .wy-input-context,.wy-inline-validate.wy-inline-validate-info .wy-input-context,.wy-inline-validate.wy-inline-validate-success .wy-input-context,.wy-inline-validate.wy-inline-validate-warning .wy-input-context,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{font-family:inherit}.fa:before,.icon:before,.rst-content .admonition-title:before,.rst-content .code-block-caption .headerlink:before,.rst-content .eqno .headerlink:before,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content p .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before,.wy-menu-vertical li button.toctree-expand:before{font-family:FontAwesome;display:inline-block;font-style:normal;font-weight:400;line-height:1;text-decoration:inherit}.rst-content .code-block-caption a .headerlink,.rst-content .eqno a .headerlink,.rst-content a .admonition-title,.rst-content code.download a span:first-child,.rst-content dl dt a .headerlink,.rst-content h1 a .headerlink,.rst-content h2 a .headerlink,.rst-content h3 a .headerlink,.rst-content h4 a .headerlink,.rst-content h5 a .headerlink,.rst-content h6 a .headerlink,.rst-content p.caption a .headerlink,.rst-content p a .headerlink,.rst-content table>caption a .headerlink,.rst-content tt.download a span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li a button.toctree-expand,a .fa,a .icon,a .rst-content .admonition-title,a .rst-content .code-block-caption .headerlink,a .rst-content .eqno .headerlink,a .rst-content code.download span:first-child,a .rst-content dl dt .headerlink,a .rst-content h1 .headerlink,a .rst-content h2 .headerlink,a .rst-content h3 .headerlink,a .rst-content h4 .headerlink,a .rst-content h5 .headerlink,a .rst-content h6 .headerlink,a .rst-content p.caption .headerlink,a .rst-content p .headerlink,a .rst-content table>caption .headerlink,a .rst-content tt.download span:first-child,a .wy-menu-vertical li button.toctree-expand{display:inline-block;text-decoration:inherit}.btn .fa,.btn .icon,.btn .rst-content .admonition-title,.btn .rst-content .code-block-caption .headerlink,.btn .rst-content .eqno .headerlink,.btn .rst-content code.download span:first-child,.btn .rst-content dl dt .headerlink,.btn .rst-content h1 .headerlink,.btn .rst-content h2 .headerlink,.btn .rst-content h3 .headerlink,.btn .rst-content h4 .headerlink,.btn .rst-content h5 .headerlink,.btn .rst-content h6 .headerlink,.btn .rst-content p .headerlink,.btn .rst-content table>caption .headerlink,.btn .rst-content tt.download span:first-child,.btn .wy-menu-vertical li.current>a button.toctree-expand,.btn .wy-menu-vertical li.on a button.toctree-expand,.btn .wy-menu-vertical li button.toctree-expand,.nav .fa,.nav .icon,.nav .rst-content .admonition-title,.nav .rst-content .code-block-caption .headerlink,.nav .rst-content .eqno .headerlink,.nav .rst-content code.download span:first-child,.nav .rst-content dl dt .headerlink,.nav .rst-content h1 .headerlink,.nav .rst-content h2 .headerlink,.nav .rst-content h3 .headerlink,.nav .rst-content h4 .headerlink,.nav .rst-content h5 .headerlink,.nav .rst-content h6 .headerlink,.nav .rst-content p .headerlink,.nav .rst-content table>caption .headerlink,.nav .rst-content tt.download span:first-child,.nav .wy-menu-vertical li.current>a button.toctree-expand,.nav .wy-menu-vertical li.on a button.toctree-expand,.nav .wy-menu-vertical li button.toctree-expand,.rst-content .btn .admonition-title,.rst-content .code-block-caption .btn .headerlink,.rst-content .code-block-caption .nav .headerlink,.rst-content .eqno .btn .headerlink,.rst-content .eqno .nav .headerlink,.rst-content .nav .admonition-title,.rst-content code.download .btn span:first-child,.rst-content code.download .nav span:first-child,.rst-content dl dt .btn .headerlink,.rst-content dl dt .nav .headerlink,.rst-content h1 .btn .headerlink,.rst-content h1 .nav .headerlink,.rst-content h2 .btn .headerlink,.rst-content h2 .nav .headerlink,.rst-content h3 .btn .headerlink,.rst-content h3 .nav .headerlink,.rst-content h4 .btn .headerlink,.rst-content h4 .nav .headerlink,.rst-content h5 .btn .headerlink,.rst-content h5 .nav .headerlink,.rst-content h6 .btn .headerlink,.rst-content h6 .nav .headerlink,.rst-content p .btn .headerlink,.rst-content p .nav .headerlink,.rst-content table>caption .btn .headerlink,.rst-content table>caption .nav .headerlink,.rst-content tt.download .btn span:first-child,.rst-content tt.download .nav span:first-child,.wy-menu-vertical li .btn button.toctree-expand,.wy-menu-vertical li.current>a .btn button.toctree-expand,.wy-menu-vertical li.current>a .nav button.toctree-expand,.wy-menu-vertical li .nav button.toctree-expand,.wy-menu-vertical li.on a .btn button.toctree-expand,.wy-menu-vertical li.on a .nav button.toctree-expand{display:inline}.btn .fa-large.icon,.btn .fa.fa-large,.btn .rst-content .code-block-caption .fa-large.headerlink,.btn .rst-content .eqno .fa-large.headerlink,.btn .rst-content .fa-large.admonition-title,.btn .rst-content code.download span.fa-large:first-child,.btn .rst-content dl dt .fa-large.headerlink,.btn .rst-content h1 .fa-large.headerlink,.btn .rst-content h2 .fa-large.headerlink,.btn .rst-content h3 .fa-large.headerlink,.btn .rst-content h4 .fa-large.headerlink,.btn .rst-content h5 .fa-large.headerlink,.btn .rst-content h6 .fa-large.headerlink,.btn .rst-content p .fa-large.headerlink,.btn .rst-content table>caption .fa-large.headerlink,.btn .rst-content tt.download span.fa-large:first-child,.btn .wy-menu-vertical li button.fa-large.toctree-expand,.nav .fa-large.icon,.nav .fa.fa-large,.nav .rst-content .code-block-caption .fa-large.headerlink,.nav .rst-content .eqno .fa-large.headerlink,.nav .rst-content .fa-large.admonition-title,.nav .rst-content code.download span.fa-large:first-child,.nav .rst-content dl dt .fa-large.headerlink,.nav .rst-content h1 .fa-large.headerlink,.nav .rst-content h2 .fa-large.headerlink,.nav .rst-content h3 .fa-large.headerlink,.nav .rst-content h4 .fa-large.headerlink,.nav .rst-content h5 .fa-large.headerlink,.nav .rst-content h6 .fa-large.headerlink,.nav .rst-content p .fa-large.headerlink,.nav .rst-content table>caption .fa-large.headerlink,.nav .rst-content tt.download span.fa-large:first-child,.nav .wy-menu-vertical li button.fa-large.toctree-expand,.rst-content .btn .fa-large.admonition-title,.rst-content .code-block-caption .btn .fa-large.headerlink,.rst-content .code-block-caption .nav .fa-large.headerlink,.rst-content .eqno .btn .fa-large.headerlink,.rst-content .eqno .nav .fa-large.headerlink,.rst-content .nav .fa-large.admonition-title,.rst-content code.download .btn span.fa-large:first-child,.rst-content code.download .nav span.fa-large:first-child,.rst-content dl dt .btn .fa-large.headerlink,.rst-content dl dt .nav .fa-large.headerlink,.rst-content h1 .btn .fa-large.headerlink,.rst-content h1 .nav .fa-large.headerlink,.rst-content h2 .btn .fa-large.headerlink,.rst-content h2 .nav .fa-large.headerlink,.rst-content h3 .btn .fa-large.headerlink,.rst-content h3 .nav .fa-large.headerlink,.rst-content h4 .btn .fa-large.headerlink,.rst-content h4 .nav .fa-large.headerlink,.rst-content h5 .btn .fa-large.headerlink,.rst-content h5 .nav .fa-large.headerlink,.rst-content h6 .btn .fa-large.headerlink,.rst-content h6 .nav .fa-large.headerlink,.rst-content p .btn .fa-large.headerlink,.rst-content p .nav .fa-large.headerlink,.rst-content table>caption .btn .fa-large.headerlink,.rst-content table>caption .nav .fa-large.headerlink,.rst-content tt.download .btn span.fa-large:first-child,.rst-content tt.download .nav span.fa-large:first-child,.wy-menu-vertical li .btn button.fa-large.toctree-expand,.wy-menu-vertical li .nav button.fa-large.toctree-expand{line-height:.9em}.btn .fa-spin.icon,.btn .fa.fa-spin,.btn .rst-content .code-block-caption .fa-spin.headerlink,.btn .rst-content .eqno .fa-spin.headerlink,.btn .rst-content .fa-spin.admonition-title,.btn .rst-content code.download span.fa-spin:first-child,.btn .rst-content dl dt .fa-spin.headerlink,.btn .rst-content h1 .fa-spin.headerlink,.btn .rst-content h2 .fa-spin.headerlink,.btn .rst-content h3 .fa-spin.headerlink,.btn .rst-content h4 .fa-spin.headerlink,.btn .rst-content h5 .fa-spin.headerlink,.btn .rst-content h6 .fa-spin.headerlink,.btn .rst-content p .fa-spin.headerlink,.btn .rst-content table>caption .fa-spin.headerlink,.btn .rst-content tt.download span.fa-spin:first-child,.btn .wy-menu-vertical li button.fa-spin.toctree-expand,.nav .fa-spin.icon,.nav .fa.fa-spin,.nav .rst-content .code-block-caption .fa-spin.headerlink,.nav .rst-content .eqno .fa-spin.headerlink,.nav .rst-content .fa-spin.admonition-title,.nav .rst-content code.download span.fa-spin:first-child,.nav .rst-content dl dt .fa-spin.headerlink,.nav .rst-content h1 .fa-spin.headerlink,.nav .rst-content h2 .fa-spin.headerlink,.nav .rst-content h3 .fa-spin.headerlink,.nav .rst-content h4 .fa-spin.headerlink,.nav .rst-content h5 .fa-spin.headerlink,.nav .rst-content h6 .fa-spin.headerlink,.nav .rst-content p .fa-spin.headerlink,.nav .rst-content table>caption .fa-spin.headerlink,.nav .rst-content tt.download span.fa-spin:first-child,.nav .wy-menu-vertical li button.fa-spin.toctree-expand,.rst-content .btn .fa-spin.admonition-title,.rst-content .code-block-caption .btn .fa-spin.headerlink,.rst-content .code-block-caption .nav .fa-spin.headerlink,.rst-content .eqno .btn .fa-spin.headerlink,.rst-content .eqno .nav .fa-spin.headerlink,.rst-content .nav .fa-spin.admonition-title,.rst-content code.download .btn span.fa-spin:first-child,.rst-content code.download .nav span.fa-spin:first-child,.rst-content dl dt .btn .fa-spin.headerlink,.rst-content dl dt .nav .fa-spin.headerlink,.rst-content h1 .btn .fa-spin.headerlink,.rst-content h1 .nav .fa-spin.headerlink,.rst-content h2 .btn .fa-spin.headerlink,.rst-content h2 .nav .fa-spin.headerlink,.rst-content h3 .btn .fa-spin.headerlink,.rst-content h3 .nav .fa-spin.headerlink,.rst-content h4 .btn .fa-spin.headerlink,.rst-content h4 .nav .fa-spin.headerlink,.rst-content h5 .btn .fa-spin.headerlink,.rst-content h5 .nav .fa-spin.headerlink,.rst-content h6 .btn .fa-spin.headerlink,.rst-content h6 .nav .fa-spin.headerlink,.rst-content p .btn .fa-spin.headerlink,.rst-content p .nav .fa-spin.headerlink,.rst-content table>caption .btn .fa-spin.headerlink,.rst-content table>caption .nav .fa-spin.headerlink,.rst-content tt.download .btn span.fa-spin:first-child,.rst-content tt.download .nav span.fa-spin:first-child,.wy-menu-vertical li .btn button.fa-spin.toctree-expand,.wy-menu-vertical li .nav button.fa-spin.toctree-expand{display:inline-block}.btn.fa:before,.btn.icon:before,.rst-content .btn.admonition-title:before,.rst-content .code-block-caption .btn.headerlink:before,.rst-content .eqno .btn.headerlink:before,.rst-content code.download span.btn:first-child:before,.rst-content dl dt .btn.headerlink:before,.rst-content h1 .btn.headerlink:before,.rst-content h2 .btn.headerlink:before,.rst-content h3 .btn.headerlink:before,.rst-content h4 .btn.headerlink:before,.rst-content h5 .btn.headerlink:before,.rst-content h6 .btn.headerlink:before,.rst-content p .btn.headerlink:before,.rst-content table>caption .btn.headerlink:before,.rst-content tt.download span.btn:first-child:before,.wy-menu-vertical li button.btn.toctree-expand:before{opacity:.5;-webkit-transition:opacity .05s ease-in;-moz-transition:opacity .05s ease-in;transition:opacity .05s ease-in}.btn.fa:hover:before,.btn.icon:hover:before,.rst-content .btn.admonition-title:hover:before,.rst-content .code-block-caption .btn.headerlink:hover:before,.rst-content .eqno .btn.headerlink:hover:before,.rst-content code.download span.btn:first-child:hover:before,.rst-content dl dt .btn.headerlink:hover:before,.rst-content h1 .btn.headerlink:hover:before,.rst-content h2 .btn.headerlink:hover:before,.rst-content h3 .btn.headerlink:hover:before,.rst-content h4 .btn.headerlink:hover:before,.rst-content h5 .btn.headerlink:hover:before,.rst-content h6 .btn.headerlink:hover:before,.rst-content p .btn.headerlink:hover:before,.rst-content table>caption .btn.headerlink:hover:before,.rst-content tt.download span.btn:first-child:hover:before,.wy-menu-vertical li button.btn.toctree-expand:hover:before{opacity:1}.btn-mini .fa:before,.btn-mini .icon:before,.btn-mini .rst-content .admonition-title:before,.btn-mini .rst-content .code-block-caption .headerlink:before,.btn-mini .rst-content .eqno .headerlink:before,.btn-mini .rst-content code.download span:first-child:before,.btn-mini .rst-content dl dt .headerlink:before,.btn-mini .rst-content h1 .headerlink:before,.btn-mini .rst-content h2 .headerlink:before,.btn-mini .rst-content h3 .headerlink:before,.btn-mini .rst-content h4 .headerlink:before,.btn-mini .rst-content h5 .headerlink:before,.btn-mini .rst-content h6 .headerlink:before,.btn-mini .rst-content p .headerlink:before,.btn-mini .rst-content table>caption .headerlink:before,.btn-mini .rst-content tt.download span:first-child:before,.btn-mini .wy-menu-vertical li button.toctree-expand:before,.rst-content .btn-mini .admonition-title:before,.rst-content .code-block-caption .btn-mini .headerlink:before,.rst-content .eqno .btn-mini .headerlink:before,.rst-content code.download .btn-mini span:first-child:before,.rst-content dl dt .btn-mini .headerlink:before,.rst-content h1 .btn-mini .headerlink:before,.rst-content h2 .btn-mini .headerlink:before,.rst-content h3 .btn-mini .headerlink:before,.rst-content h4 .btn-mini .headerlink:before,.rst-content h5 .btn-mini .headerlink:before,.rst-content h6 .btn-mini .headerlink:before,.rst-content p .btn-mini .headerlink:before,.rst-content table>caption .btn-mini .headerlink:before,.rst-content tt.download .btn-mini span:first-child:before,.wy-menu-vertical li .btn-mini button.toctree-expand:before{font-size:14px;vertical-align:-15%}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.wy-alert{padding:12px;line-height:24px;margin-bottom:24px;background:#e7f2fa}.rst-content .admonition-title,.wy-alert-title{font-weight:700;display:block;color:#fff;background:#6ab0de;padding:6px 12px;margin:-12px -12px 12px}.rst-content .danger,.rst-content .error,.rst-content .wy-alert-danger.admonition,.rst-content .wy-alert-danger.admonition-todo,.rst-content .wy-alert-danger.attention,.rst-content .wy-alert-danger.caution,.rst-content .wy-alert-danger.hint,.rst-content .wy-alert-danger.important,.rst-content .wy-alert-danger.note,.rst-content .wy-alert-danger.seealso,.rst-content .wy-alert-danger.tip,.rst-content .wy-alert-danger.warning,.wy-alert.wy-alert-danger{background:#fdf3f2}.rst-content .danger .admonition-title,.rst-content .danger .wy-alert-title,.rst-content .error .admonition-title,.rst-content .error .wy-alert-title,.rst-content .wy-alert-danger.admonition-todo .admonition-title,.rst-content .wy-alert-danger.admonition-todo .wy-alert-title,.rst-content .wy-alert-danger.admonition .admonition-title,.rst-content .wy-alert-danger.admonition .wy-alert-title,.rst-content .wy-alert-danger.attention .admonition-title,.rst-content .wy-alert-danger.attention .wy-alert-title,.rst-content .wy-alert-danger.caution .admonition-title,.rst-content .wy-alert-danger.caution .wy-alert-title,.rst-content .wy-alert-danger.hint .admonition-title,.rst-content .wy-alert-danger.hint .wy-alert-title,.rst-content .wy-alert-danger.important .admonition-title,.rst-content .wy-alert-danger.important .wy-alert-title,.rst-content .wy-alert-danger.note .admonition-title,.rst-content .wy-alert-danger.note .wy-alert-title,.rst-content .wy-alert-danger.seealso .admonition-title,.rst-content .wy-alert-danger.seealso .wy-alert-title,.rst-content .wy-alert-danger.tip .admonition-title,.rst-content .wy-alert-danger.tip .wy-alert-title,.rst-content .wy-alert-danger.warning .admonition-title,.rst-content .wy-alert-danger.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-danger .admonition-title,.wy-alert.wy-alert-danger .rst-content .admonition-title,.wy-alert.wy-alert-danger .wy-alert-title{background:#f29f97}.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .warning,.rst-content .wy-alert-warning.admonition,.rst-content .wy-alert-warning.danger,.rst-content .wy-alert-warning.error,.rst-content .wy-alert-warning.hint,.rst-content .wy-alert-warning.important,.rst-content .wy-alert-warning.note,.rst-content .wy-alert-warning.seealso,.rst-content .wy-alert-warning.tip,.wy-alert.wy-alert-warning{background:#ffedcc}.rst-content .admonition-todo .admonition-title,.rst-content .admonition-todo .wy-alert-title,.rst-content .attention .admonition-title,.rst-content .attention .wy-alert-title,.rst-content .caution .admonition-title,.rst-content .caution .wy-alert-title,.rst-content .warning .admonition-title,.rst-content .warning .wy-alert-title,.rst-content .wy-alert-warning.admonition .admonition-title,.rst-content .wy-alert-warning.admonition .wy-alert-title,.rst-content .wy-alert-warning.danger .admonition-title,.rst-content .wy-alert-warning.danger .wy-alert-title,.rst-content .wy-alert-warning.error .admonition-title,.rst-content .wy-alert-warning.error .wy-alert-title,.rst-content .wy-alert-warning.hint .admonition-title,.rst-content .wy-alert-warning.hint .wy-alert-title,.rst-content .wy-alert-warning.important .admonition-title,.rst-content .wy-alert-warning.important .wy-alert-title,.rst-content .wy-alert-warning.note .admonition-title,.rst-content .wy-alert-warning.note .wy-alert-title,.rst-content .wy-alert-warning.seealso .admonition-title,.rst-content .wy-alert-warning.seealso .wy-alert-title,.rst-content .wy-alert-warning.tip .admonition-title,.rst-content .wy-alert-warning.tip .wy-alert-title,.rst-content .wy-alert.wy-alert-warning .admonition-title,.wy-alert.wy-alert-warning .rst-content .admonition-title,.wy-alert.wy-alert-warning .wy-alert-title{background:#f0b37e}.rst-content .note,.rst-content .seealso,.rst-content .wy-alert-info.admonition,.rst-content .wy-alert-info.admonition-todo,.rst-content .wy-alert-info.attention,.rst-content .wy-alert-info.caution,.rst-content .wy-alert-info.danger,.rst-content .wy-alert-info.error,.rst-content .wy-alert-info.hint,.rst-content .wy-alert-info.important,.rst-content .wy-alert-info.tip,.rst-content .wy-alert-info.warning,.wy-alert.wy-alert-info{background:#e7f2fa}.rst-content .note .admonition-title,.rst-content .note .wy-alert-title,.rst-content .seealso .admonition-title,.rst-content .seealso .wy-alert-title,.rst-content .wy-alert-info.admonition-todo .admonition-title,.rst-content .wy-alert-info.admonition-todo .wy-alert-title,.rst-content .wy-alert-info.admonition .admonition-title,.rst-content .wy-alert-info.admonition .wy-alert-title,.rst-content .wy-alert-info.attention .admonition-title,.rst-content .wy-alert-info.attention .wy-alert-title,.rst-content .wy-alert-info.caution .admonition-title,.rst-content .wy-alert-info.caution .wy-alert-title,.rst-content .wy-alert-info.danger .admonition-title,.rst-content .wy-alert-info.danger .wy-alert-title,.rst-content .wy-alert-info.error .admonition-title,.rst-content .wy-alert-info.error .wy-alert-title,.rst-content .wy-alert-info.hint .admonition-title,.rst-content .wy-alert-info.hint .wy-alert-title,.rst-content .wy-alert-info.important .admonition-title,.rst-content .wy-alert-info.important .wy-alert-title,.rst-content .wy-alert-info.tip .admonition-title,.rst-content .wy-alert-info.tip .wy-alert-title,.rst-content .wy-alert-info.warning .admonition-title,.rst-content .wy-alert-info.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-info .admonition-title,.wy-alert.wy-alert-info .rst-content .admonition-title,.wy-alert.wy-alert-info .wy-alert-title{background:#6ab0de}.rst-content .hint,.rst-content .important,.rst-content .tip,.rst-content .wy-alert-success.admonition,.rst-content .wy-alert-success.admonition-todo,.rst-content .wy-alert-success.attention,.rst-content .wy-alert-success.caution,.rst-content .wy-alert-success.danger,.rst-content .wy-alert-success.error,.rst-content .wy-alert-success.note,.rst-content .wy-alert-success.seealso,.rst-content .wy-alert-success.warning,.wy-alert.wy-alert-success{background:#dbfaf4}.rst-content .hint .admonition-title,.rst-content .hint .wy-alert-title,.rst-content .important .admonition-title,.rst-content .important .wy-alert-title,.rst-content .tip .admonition-title,.rst-content .tip .wy-alert-title,.rst-content .wy-alert-success.admonition-todo .admonition-title,.rst-content .wy-alert-success.admonition-todo .wy-alert-title,.rst-content .wy-alert-success.admonition .admonition-title,.rst-content .wy-alert-success.admonition .wy-alert-title,.rst-content .wy-alert-success.attention .admonition-title,.rst-content .wy-alert-success.attention .wy-alert-title,.rst-content .wy-alert-success.caution .admonition-title,.rst-content .wy-alert-success.caution .wy-alert-title,.rst-content .wy-alert-success.danger .admonition-title,.rst-content .wy-alert-success.danger .wy-alert-title,.rst-content .wy-alert-success.error .admonition-title,.rst-content .wy-alert-success.error .wy-alert-title,.rst-content .wy-alert-success.note .admonition-title,.rst-content .wy-alert-success.note .wy-alert-title,.rst-content .wy-alert-success.seealso .admonition-title,.rst-content .wy-alert-success.seealso .wy-alert-title,.rst-content .wy-alert-success.warning .admonition-title,.rst-content .wy-alert-success.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-success .admonition-title,.wy-alert.wy-alert-success .rst-content .admonition-title,.wy-alert.wy-alert-success .wy-alert-title{background:#1abc9c}.rst-content .wy-alert-neutral.admonition,.rst-content .wy-alert-neutral.admonition-todo,.rst-content .wy-alert-neutral.attention,.rst-content .wy-alert-neutral.caution,.rst-content .wy-alert-neutral.danger,.rst-content .wy-alert-neutral.error,.rst-content .wy-alert-neutral.hint,.rst-content .wy-alert-neutral.important,.rst-content .wy-alert-neutral.note,.rst-content .wy-alert-neutral.seealso,.rst-content .wy-alert-neutral.tip,.rst-content .wy-alert-neutral.warning,.wy-alert.wy-alert-neutral{background:#f3f6f6}.rst-content .wy-alert-neutral.admonition-todo .admonition-title,.rst-content .wy-alert-neutral.admonition-todo .wy-alert-title,.rst-content .wy-alert-neutral.admonition .admonition-title,.rst-content .wy-alert-neutral.admonition .wy-alert-title,.rst-content .wy-alert-neutral.attention .admonition-title,.rst-content .wy-alert-neutral.attention .wy-alert-title,.rst-content .wy-alert-neutral.caution .admonition-title,.rst-content .wy-alert-neutral.caution .wy-alert-title,.rst-content .wy-alert-neutral.danger .admonition-title,.rst-content .wy-alert-neutral.danger .wy-alert-title,.rst-content .wy-alert-neutral.error .admonition-title,.rst-content .wy-alert-neutral.error .wy-alert-title,.rst-content .wy-alert-neutral.hint .admonition-title,.rst-content .wy-alert-neutral.hint .wy-alert-title,.rst-content .wy-alert-neutral.important .admonition-title,.rst-content .wy-alert-neutral.important .wy-alert-title,.rst-content .wy-alert-neutral.note .admonition-title,.rst-content .wy-alert-neutral.note .wy-alert-title,.rst-content .wy-alert-neutral.seealso .admonition-title,.rst-content .wy-alert-neutral.seealso .wy-alert-title,.rst-content .wy-alert-neutral.tip .admonition-title,.rst-content .wy-alert-neutral.tip .wy-alert-title,.rst-content .wy-alert-neutral.warning .admonition-title,.rst-content .wy-alert-neutral.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-neutral .admonition-title,.wy-alert.wy-alert-neutral .rst-content .admonition-title,.wy-alert.wy-alert-neutral .wy-alert-title{color:#404040;background:#e1e4e5}.rst-content .wy-alert-neutral.admonition-todo a,.rst-content .wy-alert-neutral.admonition a,.rst-content .wy-alert-neutral.attention a,.rst-content .wy-alert-neutral.caution a,.rst-content .wy-alert-neutral.danger a,.rst-content .wy-alert-neutral.error a,.rst-content .wy-alert-neutral.hint a,.rst-content .wy-alert-neutral.important a,.rst-content .wy-alert-neutral.note a,.rst-content .wy-alert-neutral.seealso a,.rst-content .wy-alert-neutral.tip a,.rst-content .wy-alert-neutral.warning a,.wy-alert.wy-alert-neutral a{color:#2980b9}.rst-content .admonition-todo p:last-child,.rst-content .admonition p:last-child,.rst-content .attention p:last-child,.rst-content .caution p:last-child,.rst-content .danger p:last-child,.rst-content .error p:last-child,.rst-content .hint p:last-child,.rst-content .important p:last-child,.rst-content .note p:last-child,.rst-content .seealso p:last-child,.rst-content .tip p:last-child,.rst-content .warning p:last-child,.wy-alert p:last-child{margin-bottom:0}.wy-tray-container{position:fixed;bottom:0;left:0;z-index:600}.wy-tray-container li{display:block;width:300px;background:transparent;color:#fff;text-align:center;box-shadow:0 5px 5px 0 rgba(0,0,0,.1);padding:0 24px;min-width:20%;opacity:0;height:0;line-height:56px;overflow:hidden;-webkit-transition:all .3s ease-in;-moz-transition:all .3s ease-in;transition:all .3s ease-in}.wy-tray-container li.wy-tray-item-success{background:#27ae60}.wy-tray-container li.wy-tray-item-info{background:#2980b9}.wy-tray-container li.wy-tray-item-warning{background:#e67e22}.wy-tray-container li.wy-tray-item-danger{background:#e74c3c}.wy-tray-container li.on{opacity:1;height:56px}@media screen and (max-width:768px){.wy-tray-container{bottom:auto;top:0;width:100%}.wy-tray-container li{width:100%}}button{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle;cursor:pointer;line-height:normal;-webkit-appearance:button;*overflow:visible}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}button[disabled]{cursor:default}.btn{display:inline-block;border-radius:2px;line-height:normal;white-space:nowrap;text-align:center;cursor:pointer;font-size:100%;padding:6px 12px 8px;color:#fff;border:1px solid rgba(0,0,0,.1);background-color:#27ae60;text-decoration:none;font-weight:400;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 2px -1px hsla(0,0%,100%,.5),inset 0 -2px 0 0 rgba(0,0,0,.1);outline-none:false;vertical-align:middle;*display:inline;zoom:1;-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:all .1s linear;-moz-transition:all .1s linear;transition:all .1s linear}.btn-hover{background:#2e8ece;color:#fff}.btn:hover{background:#2cc36b;color:#fff}.btn:focus{background:#2cc36b;outline:0}.btn:active{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.05),inset 0 2px 0 0 rgba(0,0,0,.1);padding:8px 12px 6px}.btn:visited{color:#fff}.btn-disabled,.btn-disabled:active,.btn-disabled:focus,.btn-disabled:hover,.btn:disabled{background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);opacity:.4;cursor:not-allowed;box-shadow:none}.btn::-moz-focus-inner{padding:0;border:0}.btn-small{font-size:80%}.btn-info{background-color:#2980b9!important}.btn-info:hover{background-color:#2e8ece!important}.btn-neutral{background-color:#f3f6f6!important;color:#404040!important}.btn-neutral:hover{background-color:#e5ebeb!important;color:#404040}.btn-neutral:visited{color:#404040!important}.btn-success{background-color:#27ae60!important}.btn-success:hover{background-color:#295!important}.btn-danger{background-color:#e74c3c!important}.btn-danger:hover{background-color:#ea6153!important}.btn-warning{background-color:#e67e22!important}.btn-warning:hover{background-color:#e98b39!important}.btn-invert{background-color:#222}.btn-invert:hover{background-color:#2f2f2f!important}.btn-link{background-color:transparent!important;color:#2980b9;box-shadow:none;border-color:transparent!important}.btn-link:active,.btn-link:hover{background-color:transparent!important;color:#409ad5!important;box-shadow:none}.btn-link:visited{color:#9b59b6}.wy-btn-group .btn,.wy-control .btn{vertical-align:middle}.wy-btn-group{margin-bottom:24px;*zoom:1}.wy-btn-group:after,.wy-btn-group:before{display:table;content:""}.wy-btn-group:after{clear:both}.wy-dropdown{position:relative;display:inline-block}.wy-dropdown-active .wy-dropdown-menu{display:block}.wy-dropdown-menu{position:absolute;left:0;display:none;float:left;top:100%;min-width:100%;background:#fcfcfc;z-index:100;border:1px solid #cfd7dd;box-shadow:0 2px 2px 0 rgba(0,0,0,.1);padding:12px}.wy-dropdown-menu>dd>a{display:block;clear:both;color:#404040;white-space:nowrap;font-size:90%;padding:0 12px;cursor:pointer}.wy-dropdown-menu>dd>a:hover{background:#2980b9;color:#fff}.wy-dropdown-menu>dd.divider{border-top:1px solid #cfd7dd;margin:6px 0}.wy-dropdown-menu>dd.search{padding-bottom:12px}.wy-dropdown-menu>dd.search input[type=search]{width:100%}.wy-dropdown-menu>dd.call-to-action{background:#e3e3e3;text-transform:uppercase;font-weight:500;font-size:80%}.wy-dropdown-menu>dd.call-to-action:hover{background:#e3e3e3}.wy-dropdown-menu>dd.call-to-action .btn{color:#fff}.wy-dropdown.wy-dropdown-up .wy-dropdown-menu{bottom:100%;top:auto;left:auto;right:0}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu{background:#fcfcfc;margin-top:2px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a{padding:6px 12px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a:hover{background:#2980b9;color:#fff}.wy-dropdown.wy-dropdown-left .wy-dropdown-menu{right:0;left:auto;text-align:right}.wy-dropdown-arrow:before{content:" ";border-bottom:5px solid #f5f5f5;border-left:5px solid transparent;border-right:5px solid transparent;position:absolute;display:block;top:-4px;left:50%;margin-left:-3px}.wy-dropdown-arrow.wy-dropdown-arrow-left:before{left:11px}.wy-form-stacked select{display:block}.wy-form-aligned .wy-help-inline,.wy-form-aligned input,.wy-form-aligned label,.wy-form-aligned select,.wy-form-aligned textarea{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-form-aligned .wy-control-group>label{display:inline-block;vertical-align:middle;width:10em;margin:6px 12px 0 0;float:left}.wy-form-aligned .wy-control{float:left}.wy-form-aligned .wy-control label{display:block}.wy-form-aligned .wy-control select{margin-top:6px}fieldset{margin:0}fieldset,legend{border:0;padding:0}legend{width:100%;white-space:normal;margin-bottom:24px;font-size:150%;*margin-left:-7px}label,legend{display:block}label{margin:0 0 .3125em;color:#333;font-size:90%}input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}.wy-control-group{margin-bottom:24px;max-width:1200px;margin-left:auto;margin-right:auto;*zoom:1}.wy-control-group:after,.wy-control-group:before{display:table;content:""}.wy-control-group:after{clear:both}.wy-control-group.wy-control-group-required>label:after{content:" *";color:#e74c3c}.wy-control-group .wy-form-full,.wy-control-group .wy-form-halves,.wy-control-group .wy-form-thirds{padding-bottom:12px}.wy-control-group .wy-form-full input[type=color],.wy-control-group .wy-form-full input[type=date],.wy-control-group .wy-form-full input[type=datetime-local],.wy-control-group .wy-form-full input[type=datetime],.wy-control-group .wy-form-full input[type=email],.wy-control-group .wy-form-full input[type=month],.wy-control-group .wy-form-full input[type=number],.wy-control-group .wy-form-full input[type=password],.wy-control-group .wy-form-full input[type=search],.wy-control-group .wy-form-full input[type=tel],.wy-control-group .wy-form-full input[type=text],.wy-control-group .wy-form-full input[type=time],.wy-control-group .wy-form-full input[type=url],.wy-control-group .wy-form-full input[type=week],.wy-control-group .wy-form-full select,.wy-control-group .wy-form-halves input[type=color],.wy-control-group .wy-form-halves input[type=date],.wy-control-group .wy-form-halves input[type=datetime-local],.wy-control-group .wy-form-halves input[type=datetime],.wy-control-group .wy-form-halves input[type=email],.wy-control-group .wy-form-halves input[type=month],.wy-control-group .wy-form-halves input[type=number],.wy-control-group .wy-form-halves input[type=password],.wy-control-group .wy-form-halves input[type=search],.wy-control-group .wy-form-halves input[type=tel],.wy-control-group .wy-form-halves input[type=text],.wy-control-group .wy-form-halves input[type=time],.wy-control-group .wy-form-halves input[type=url],.wy-control-group .wy-form-halves input[type=week],.wy-control-group .wy-form-halves select,.wy-control-group .wy-form-thirds input[type=color],.wy-control-group .wy-form-thirds input[type=date],.wy-control-group .wy-form-thirds input[type=datetime-local],.wy-control-group .wy-form-thirds input[type=datetime],.wy-control-group .wy-form-thirds input[type=email],.wy-control-group .wy-form-thirds input[type=month],.wy-control-group .wy-form-thirds input[type=number],.wy-control-group .wy-form-thirds input[type=password],.wy-control-group .wy-form-thirds input[type=search],.wy-control-group .wy-form-thirds input[type=tel],.wy-control-group .wy-form-thirds input[type=text],.wy-control-group .wy-form-thirds input[type=time],.wy-control-group .wy-form-thirds input[type=url],.wy-control-group .wy-form-thirds input[type=week],.wy-control-group .wy-form-thirds select{width:100%}.wy-control-group .wy-form-full{float:left;display:block;width:100%;margin-right:0}.wy-control-group .wy-form-full:last-child{margin-right:0}.wy-control-group .wy-form-halves{float:left;display:block;margin-right:2.35765%;width:48.82117%}.wy-control-group .wy-form-halves:last-child,.wy-control-group .wy-form-halves:nth-of-type(2n){margin-right:0}.wy-control-group .wy-form-halves:nth-of-type(odd){clear:left}.wy-control-group .wy-form-thirds{float:left;display:block;margin-right:2.35765%;width:31.76157%}.wy-control-group .wy-form-thirds:last-child,.wy-control-group .wy-form-thirds:nth-of-type(3n){margin-right:0}.wy-control-group .wy-form-thirds:nth-of-type(3n+1){clear:left}.wy-control-group.wy-control-group-no-input .wy-control,.wy-control-no-input{margin:6px 0 0;font-size:90%}.wy-control-no-input{display:inline-block}.wy-control-group.fluid-input input[type=color],.wy-control-group.fluid-input input[type=date],.wy-control-group.fluid-input input[type=datetime-local],.wy-control-group.fluid-input input[type=datetime],.wy-control-group.fluid-input input[type=email],.wy-control-group.fluid-input input[type=month],.wy-control-group.fluid-input input[type=number],.wy-control-group.fluid-input input[type=password],.wy-control-group.fluid-input input[type=search],.wy-control-group.fluid-input input[type=tel],.wy-control-group.fluid-input input[type=text],.wy-control-group.fluid-input input[type=time],.wy-control-group.fluid-input input[type=url],.wy-control-group.fluid-input input[type=week]{width:100%}.wy-form-message-inline{padding-left:.3em;color:#666;font-size:90%}.wy-form-message{display:block;color:#999;font-size:70%;margin-top:.3125em;font-style:italic}.wy-form-message p{font-size:inherit;font-style:italic;margin-bottom:6px}.wy-form-message p:last-child{margin-bottom:0}input{line-height:normal}input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;*overflow:visible}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week]{-webkit-appearance:none;padding:6px;display:inline-block;border:1px solid #ccc;font-size:80%;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 3px #ddd;border-radius:0;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}input[type=datetime-local]{padding:.34375em .625em}input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{padding:0;margin-right:.3125em;*height:13px;*width:13px}input[type=checkbox],input[type=radio],input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus{outline:0;outline:thin dotted\9;border-color:#333}input.no-focus:focus{border-color:#ccc!important}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:thin dotted #333;outline:1px auto #129fea}input[type=color][disabled],input[type=date][disabled],input[type=datetime-local][disabled],input[type=datetime][disabled],input[type=email][disabled],input[type=month][disabled],input[type=number][disabled],input[type=password][disabled],input[type=search][disabled],input[type=tel][disabled],input[type=text][disabled],input[type=time][disabled],input[type=url][disabled],input[type=week][disabled]{cursor:not-allowed;background-color:#fafafa}input:focus:invalid,select:focus:invalid,textarea:focus:invalid{color:#e74c3c;border:1px solid #e74c3c}input:focus:invalid:focus,select:focus:invalid:focus,textarea:focus:invalid:focus{border-color:#e74c3c}input[type=checkbox]:focus:invalid:focus,input[type=file]:focus:invalid:focus,input[type=radio]:focus:invalid:focus{outline-color:#e74c3c}input.wy-input-large{padding:12px;font-size:100%}textarea{overflow:auto;vertical-align:top;width:100%;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif}select,textarea{padding:.5em .625em;display:inline-block;border:1px solid #ccc;font-size:80%;box-shadow:inset 0 1px 3px #ddd;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}select{border:1px solid #ccc;background-color:#fff}select[multiple]{height:auto}select:focus,textarea:focus{outline:0}input[readonly],select[disabled],select[readonly],textarea[disabled],textarea[readonly]{cursor:not-allowed;background-color:#fafafa}input[type=checkbox][disabled],input[type=radio][disabled]{cursor:not-allowed}.wy-checkbox,.wy-radio{margin:6px 0;color:#404040;display:block}.wy-checkbox input,.wy-radio input{vertical-align:baseline}.wy-form-message-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-input-prefix,.wy-input-suffix{white-space:nowrap;padding:6px}.wy-input-prefix .wy-input-context,.wy-input-suffix .wy-input-context{line-height:27px;padding:0 8px;display:inline-block;font-size:80%;background-color:#f3f6f6;border:1px solid #ccc;color:#999}.wy-input-suffix .wy-input-context{border-left:0}.wy-input-prefix .wy-input-context{border-right:0}.wy-switch{position:relative;display:block;height:24px;margin-top:12px;cursor:pointer}.wy-switch:before{left:0;top:0;width:36px;height:12px;background:#ccc}.wy-switch:after,.wy-switch:before{position:absolute;content:"";display:block;border-radius:4px;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.wy-switch:after{width:18px;height:18px;background:#999;left:-3px;top:-3px}.wy-switch span{position:absolute;left:48px;display:block;font-size:12px;color:#ccc;line-height:1}.wy-switch.active:before{background:#1e8449}.wy-switch.active:after{left:24px;background:#27ae60}.wy-switch.disabled{cursor:not-allowed;opacity:.8}.wy-control-group.wy-control-group-error .wy-form-message,.wy-control-group.wy-control-group-error>label{color:#e74c3c}.wy-control-group.wy-control-group-error input[type=color],.wy-control-group.wy-control-group-error input[type=date],.wy-control-group.wy-control-group-error input[type=datetime-local],.wy-control-group.wy-control-group-error input[type=datetime],.wy-control-group.wy-control-group-error input[type=email],.wy-control-group.wy-control-group-error input[type=month],.wy-control-group.wy-control-group-error input[type=number],.wy-control-group.wy-control-group-error input[type=password],.wy-control-group.wy-control-group-error input[type=search],.wy-control-group.wy-control-group-error input[type=tel],.wy-control-group.wy-control-group-error input[type=text],.wy-control-group.wy-control-group-error input[type=time],.wy-control-group.wy-control-group-error input[type=url],.wy-control-group.wy-control-group-error input[type=week],.wy-control-group.wy-control-group-error textarea{border:1px solid #e74c3c}.wy-inline-validate{white-space:nowrap}.wy-inline-validate .wy-input-context{padding:.5em .625em;display:inline-block;font-size:80%}.wy-inline-validate.wy-inline-validate-success .wy-input-context{color:#27ae60}.wy-inline-validate.wy-inline-validate-danger .wy-input-context{color:#e74c3c}.wy-inline-validate.wy-inline-validate-warning .wy-input-context{color:#e67e22}.wy-inline-validate.wy-inline-validate-info .wy-input-context{color:#2980b9}.rotate-90{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.rotate-180{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.rotate-270{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.mirror{-webkit-transform:scaleX(-1);-moz-transform:scaleX(-1);-ms-transform:scaleX(-1);-o-transform:scaleX(-1);transform:scaleX(-1)}.mirror.rotate-90{-webkit-transform:scaleX(-1) rotate(90deg);-moz-transform:scaleX(-1) rotate(90deg);-ms-transform:scaleX(-1) rotate(90deg);-o-transform:scaleX(-1) rotate(90deg);transform:scaleX(-1) rotate(90deg)}.mirror.rotate-180{-webkit-transform:scaleX(-1) rotate(180deg);-moz-transform:scaleX(-1) rotate(180deg);-ms-transform:scaleX(-1) rotate(180deg);-o-transform:scaleX(-1) rotate(180deg);transform:scaleX(-1) rotate(180deg)}.mirror.rotate-270{-webkit-transform:scaleX(-1) rotate(270deg);-moz-transform:scaleX(-1) rotate(270deg);-ms-transform:scaleX(-1) rotate(270deg);-o-transform:scaleX(-1) rotate(270deg);transform:scaleX(-1) rotate(270deg)}@media only screen and (max-width:480px){.wy-form button[type=submit]{margin:.7em 0 0}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=text],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week],.wy-form label{margin-bottom:.3em;display:block}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week]{margin-bottom:0}.wy-form-aligned .wy-control-group label{margin-bottom:.3em;text-align:left;display:block;width:100%}.wy-form-aligned .wy-control{margin:1.5em 0 0}.wy-form-message,.wy-form-message-inline,.wy-form .wy-help-inline{display:block;font-size:80%;padding:6px 0}}@media screen and (max-width:768px){.tablet-hide{display:none}}@media screen and (max-width:480px){.mobile-hide{display:none}}.float-left{float:left}.float-right{float:right}.full-width{width:100%}.rst-content table.docutils,.rst-content table.field-list,.wy-table{border-collapse:collapse;border-spacing:0;empty-cells:show;margin-bottom:24px}.rst-content table.docutils caption,.rst-content table.field-list caption,.wy-table caption{color:#000;font:italic 85%/1 arial,sans-serif;padding:1em 0;text-align:center}.rst-content table.docutils td,.rst-content table.docutils th,.rst-content table.field-list td,.rst-content table.field-list th,.wy-table td,.wy-table th{font-size:90%;margin:0;overflow:visible;padding:8px 16px}.rst-content table.docutils td:first-child,.rst-content table.docutils th:first-child,.rst-content table.field-list td:first-child,.rst-content table.field-list th:first-child,.wy-table td:first-child,.wy-table th:first-child{border-left-width:0}.rst-content table.docutils thead,.rst-content table.field-list thead,.wy-table thead{color:#000;text-align:left;vertical-align:bottom;white-space:nowrap}.rst-content table.docutils thead th,.rst-content table.field-list thead th,.wy-table thead th{font-weight:700;border-bottom:2px solid #e1e4e5}.rst-content table.docutils td,.rst-content table.field-list td,.wy-table td{background-color:transparent;vertical-align:middle}.rst-content table.docutils td p,.rst-content table.field-list td p,.wy-table td p{line-height:18px}.rst-content table.docutils td p:last-child,.rst-content table.field-list td p:last-child,.wy-table td p:last-child{margin-bottom:0}.rst-content table.docutils .wy-table-cell-min,.rst-content table.field-list .wy-table-cell-min,.wy-table .wy-table-cell-min{width:1%;padding-right:0}.rst-content table.docutils .wy-table-cell-min input[type=checkbox],.rst-content table.field-list .wy-table-cell-min input[type=checkbox],.wy-table .wy-table-cell-min input[type=checkbox]{margin:0}.wy-table-secondary{color:grey;font-size:90%}.wy-table-tertiary{color:grey;font-size:80%}.rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td,.wy-table-backed,.wy-table-odd td,.wy-table-striped tr:nth-child(2n-1) td{background-color:#f3f6f6}.rst-content table.docutils,.wy-table-bordered-all{border:1px solid #e1e4e5}.rst-content table.docutils td,.wy-table-bordered-all td{border-bottom:1px solid #e1e4e5;border-left:1px solid #e1e4e5}.rst-content table.docutils tbody>tr:last-child td,.wy-table-bordered-all tbody>tr:last-child td{border-bottom-width:0}.wy-table-bordered{border:1px solid #e1e4e5}.wy-table-bordered-rows td{border-bottom:1px solid #e1e4e5}.wy-table-bordered-rows tbody>tr:last-child td{border-bottom-width:0}.wy-table-horizontal td,.wy-table-horizontal th{border-width:0 0 1px;border-bottom:1px solid #e1e4e5}.wy-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.wy-table-responsive{margin-bottom:24px;max-width:100%;overflow:auto}.wy-table-responsive table{margin-bottom:0!important}.wy-table-responsive table td,.wy-table-responsive table th{white-space:nowrap}a{color:#2980b9;text-decoration:none;cursor:pointer}a:hover{color:#3091d1}a:visited{color:#9b59b6}html{height:100%}body,html{overflow-x:hidden}body{font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;font-weight:400;color:#404040;min-height:100%;background:#edf0f2}.wy-text-left{text-align:left}.wy-text-center{text-align:center}.wy-text-right{text-align:right}.wy-text-large{font-size:120%}.wy-text-normal{font-size:100%}.wy-text-small,small{font-size:80%}.wy-text-strike{text-decoration:line-through}.wy-text-warning{color:#e67e22!important}a.wy-text-warning:hover{color:#eb9950!important}.wy-text-info{color:#2980b9!important}a.wy-text-info:hover{color:#409ad5!important}.wy-text-success{color:#27ae60!important}a.wy-text-success:hover{color:#36d278!important}.wy-text-danger{color:#e74c3c!important}a.wy-text-danger:hover{color:#ed7669!important}.wy-text-neutral{color:#404040!important}a.wy-text-neutral:hover{color:#595959!important}.rst-content .toctree-wrapper>p.caption,h1,h2,h3,h4,h5,h6,legend{margin-top:0;font-weight:700;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif}p{line-height:24px;font-size:16px;margin:0 0 24px}h1{font-size:175%}.rst-content .toctree-wrapper>p.caption,h2{font-size:150%}h3{font-size:125%}h4{font-size:115%}h5{font-size:110%}h6{font-size:100%}hr{display:block;height:1px;border:0;border-top:1px solid #e1e4e5;margin:24px 0;padding:0}.rst-content code,.rst-content tt,code{white-space:nowrap;max-width:100%;background:#fff;border:1px solid #e1e4e5;font-size:75%;padding:0 5px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#e74c3c;overflow-x:auto}.rst-content tt.code-large,code.code-large{font-size:90%}.rst-content .section ul,.rst-content .toctree-wrapper ul,.rst-content section ul,.wy-plain-list-disc,article ul{list-style:disc;line-height:24px;margin-bottom:24px}.rst-content .section ul li,.rst-content .toctree-wrapper ul li,.rst-content section ul li,.wy-plain-list-disc li,article ul li{list-style:disc;margin-left:24px}.rst-content .section ul li p:last-child,.rst-content .section ul li ul,.rst-content .toctree-wrapper ul li p:last-child,.rst-content .toctree-wrapper ul li ul,.rst-content section ul li p:last-child,.rst-content section ul li ul,.wy-plain-list-disc li p:last-child,.wy-plain-list-disc li ul,article ul li p:last-child,article ul li ul{margin-bottom:0}.rst-content .section ul li li,.rst-content .toctree-wrapper ul li li,.rst-content section ul li li,.wy-plain-list-disc li li,article ul li li{list-style:circle}.rst-content .section ul li li li,.rst-content .toctree-wrapper ul li li li,.rst-content section ul li li li,.wy-plain-list-disc li li li,article ul li li li{list-style:square}.rst-content .section ul li ol li,.rst-content .toctree-wrapper ul li ol li,.rst-content section ul li ol li,.wy-plain-list-disc li ol li,article ul li ol li{list-style:decimal}.rst-content .section ol,.rst-content .section ol.arabic,.rst-content .toctree-wrapper ol,.rst-content .toctree-wrapper ol.arabic,.rst-content section ol,.rst-content section ol.arabic,.wy-plain-list-decimal,article ol{list-style:decimal;line-height:24px;margin-bottom:24px}.rst-content .section ol.arabic li,.rst-content .section ol li,.rst-content .toctree-wrapper ol.arabic li,.rst-content .toctree-wrapper ol li,.rst-content section ol.arabic li,.rst-content section ol li,.wy-plain-list-decimal li,article ol li{list-style:decimal;margin-left:24px}.rst-content .section ol.arabic li ul,.rst-content .section ol li p:last-child,.rst-content .section ol li ul,.rst-content .toctree-wrapper ol.arabic li ul,.rst-content .toctree-wrapper ol li p:last-child,.rst-content .toctree-wrapper ol li ul,.rst-content section ol.arabic li ul,.rst-content section ol li p:last-child,.rst-content section ol li ul,.wy-plain-list-decimal li p:last-child,.wy-plain-list-decimal li ul,article ol li p:last-child,article ol li ul{margin-bottom:0}.rst-content .section ol.arabic li ul li,.rst-content .section ol li ul li,.rst-content .toctree-wrapper ol.arabic li ul li,.rst-content .toctree-wrapper ol li ul li,.rst-content section ol.arabic li ul li,.rst-content section ol li ul li,.wy-plain-list-decimal li ul li,article ol li ul li{list-style:disc}.wy-breadcrumbs{*zoom:1}.wy-breadcrumbs:after,.wy-breadcrumbs:before{display:table;content:""}.wy-breadcrumbs:after{clear:both}.wy-breadcrumbs>li{display:inline-block;padding-top:5px}.wy-breadcrumbs>li.wy-breadcrumbs-aside{float:right}.rst-content .wy-breadcrumbs>li code,.rst-content .wy-breadcrumbs>li tt,.wy-breadcrumbs>li .rst-content tt,.wy-breadcrumbs>li code{all:inherit;color:inherit}.breadcrumb-item:before{content:"/";color:#bbb;font-size:13px;padding:0 6px 0 3px}.wy-breadcrumbs-extra{margin-bottom:0;color:#b3b3b3;font-size:80%;display:inline-block}@media screen and (max-width:480px){.wy-breadcrumbs-extra,.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}@media print{.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}html{font-size:16px}.wy-affix{position:fixed;top:1.618em}.wy-menu a:hover{text-decoration:none}.wy-menu-horiz{*zoom:1}.wy-menu-horiz:after,.wy-menu-horiz:before{display:table;content:""}.wy-menu-horiz:after{clear:both}.wy-menu-horiz li,.wy-menu-horiz ul{display:inline-block}.wy-menu-horiz li:hover{background:hsla(0,0%,100%,.1)}.wy-menu-horiz li.divide-left{border-left:1px solid #404040}.wy-menu-horiz li.divide-right{border-right:1px solid #404040}.wy-menu-horiz a{height:32px;display:inline-block;line-height:32px;padding:0 16px}.wy-menu-vertical{width:300px}.wy-menu-vertical header,.wy-menu-vertical p.caption{color:#55a5d9;height:32px;line-height:32px;padding:0 1.618em;margin:12px 0 0;display:block;font-weight:700;text-transform:uppercase;font-size:85%;white-space:nowrap}.wy-menu-vertical ul{margin-bottom:0}.wy-menu-vertical li.divide-top{border-top:1px solid #404040}.wy-menu-vertical li.divide-bottom{border-bottom:1px solid #404040}.wy-menu-vertical li.current{background:#e3e3e3}.wy-menu-vertical li.current a{color:grey;border-right:1px solid #c9c9c9;padding:.4045em 2.427em}.wy-menu-vertical li.current a:hover{background:#d6d6d6}.rst-content .wy-menu-vertical li tt,.wy-menu-vertical li .rst-content tt,.wy-menu-vertical li code{border:none;background:inherit;color:inherit;padding-left:0;padding-right:0}.wy-menu-vertical li button.toctree-expand{display:block;float:left;margin-left:-1.2em;line-height:18px;color:#4d4d4d;border:none;background:none;padding:0}.wy-menu-vertical li.current>a,.wy-menu-vertical li.on a{color:#404040;font-weight:700;position:relative;background:#fcfcfc;border:none;padding:.4045em 1.618em}.wy-menu-vertical li.current>a:hover,.wy-menu-vertical li.on a:hover{background:#fcfcfc}.wy-menu-vertical li.current>a:hover button.toctree-expand,.wy-menu-vertical li.on a:hover button.toctree-expand{color:grey}.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand{display:block;line-height:18px;color:#333}.wy-menu-vertical li.toctree-l1.current>a{border-bottom:1px solid #c9c9c9;border-top:1px solid #c9c9c9}.wy-menu-vertical .toctree-l1.current .toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .toctree-l11>ul{display:none}.wy-menu-vertical .toctree-l1.current .current.toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .current.toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .current.toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .current.toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .current.toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .current.toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .current.toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .current.toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .current.toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .current.toctree-l11>ul{display:block}.wy-menu-vertical li.toctree-l3,.wy-menu-vertical li.toctree-l4{font-size:.9em}.wy-menu-vertical li.toctree-l2 a,.wy-menu-vertical li.toctree-l3 a,.wy-menu-vertical li.toctree-l4 a,.wy-menu-vertical li.toctree-l5 a,.wy-menu-vertical li.toctree-l6 a,.wy-menu-vertical li.toctree-l7 a,.wy-menu-vertical li.toctree-l8 a,.wy-menu-vertical li.toctree-l9 a,.wy-menu-vertical li.toctree-l10 a{color:#404040}.wy-menu-vertical li.toctree-l2 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l3 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l4 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l5 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l6 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l7 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l8 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l9 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l10 a:hover button.toctree-expand{color:grey}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a,.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a,.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a,.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a,.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a,.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a,.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a,.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{display:block}.wy-menu-vertical li.toctree-l2.current>a{padding:.4045em 2.427em}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{padding:.4045em 1.618em .4045em 4.045em}.wy-menu-vertical li.toctree-l3.current>a{padding:.4045em 4.045em}.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{padding:.4045em 1.618em .4045em 5.663em}.wy-menu-vertical li.toctree-l4.current>a{padding:.4045em 5.663em}.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a{padding:.4045em 1.618em .4045em 7.281em}.wy-menu-vertical li.toctree-l5.current>a{padding:.4045em 7.281em}.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a{padding:.4045em 1.618em .4045em 8.899em}.wy-menu-vertical li.toctree-l6.current>a{padding:.4045em 8.899em}.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a{padding:.4045em 1.618em .4045em 10.517em}.wy-menu-vertical li.toctree-l7.current>a{padding:.4045em 10.517em}.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a{padding:.4045em 1.618em .4045em 12.135em}.wy-menu-vertical li.toctree-l8.current>a{padding:.4045em 12.135em}.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a{padding:.4045em 1.618em .4045em 13.753em}.wy-menu-vertical li.toctree-l9.current>a{padding:.4045em 13.753em}.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a{padding:.4045em 1.618em .4045em 15.371em}.wy-menu-vertical li.toctree-l10.current>a{padding:.4045em 15.371em}.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{padding:.4045em 1.618em .4045em 16.989em}.wy-menu-vertical li.toctree-l2.current>a,.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{background:#c9c9c9}.wy-menu-vertical li.toctree-l2 button.toctree-expand{color:#a3a3a3}.wy-menu-vertical li.toctree-l3.current>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{background:#bdbdbd}.wy-menu-vertical li.toctree-l3 button.toctree-expand{color:#969696}.wy-menu-vertical li.current ul{display:block}.wy-menu-vertical li ul{margin-bottom:0;display:none}.wy-menu-vertical li ul li a{margin-bottom:0;color:#d9d9d9;font-weight:400}.wy-menu-vertical a{line-height:18px;padding:.4045em 1.618em;display:block;position:relative;font-size:90%;color:#d9d9d9}.wy-menu-vertical a:hover{background-color:#4e4a4a;cursor:pointer}.wy-menu-vertical a:hover button.toctree-expand{color:#d9d9d9}.wy-menu-vertical a:active{background-color:#2980b9;cursor:pointer;color:#fff}.wy-menu-vertical a:active button.toctree-expand{color:#fff}.wy-side-nav-search{display:block;width:300px;padding:.809em;margin-bottom:.809em;z-index:200;background-color:#2980b9;text-align:center;color:#fcfcfc}.wy-side-nav-search input[type=text]{width:100%;border-radius:50px;padding:6px 12px;border-color:#2472a4}.wy-side-nav-search img{display:block;margin:auto auto .809em;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-side-nav-search .wy-dropdown>a,.wy-side-nav-search>a{color:#fcfcfc;font-size:100%;font-weight:700;display:inline-block;padding:4px 6px;margin-bottom:.809em;max-width:100%}.wy-side-nav-search .wy-dropdown>a:hover,.wy-side-nav-search .wy-dropdown>aactive,.wy-side-nav-search .wy-dropdown>afocus,.wy-side-nav-search>a:hover,.wy-side-nav-search>aactive,.wy-side-nav-search>afocus{background:hsla(0,0%,100%,.1)}.wy-side-nav-search .wy-dropdown>a img.logo,.wy-side-nav-search>a img.logo{display:block;margin:0 auto;height:auto;width:auto;border-radius:0;max-width:100%;background:transparent}.wy-side-nav-search .wy-dropdown>a.icon,.wy-side-nav-search>a.icon{display:block}.wy-side-nav-search .wy-dropdown>a.icon img.logo,.wy-side-nav-search>a.icon img.logo{margin-top:.85em}.wy-side-nav-search>div.switch-menus{position:relative;display:block;margin-top:-.4045em;margin-bottom:.809em;font-weight:400;color:hsla(0,0%,100%,.3)}.wy-side-nav-search>div.switch-menus>div.language-switch,.wy-side-nav-search>div.switch-menus>div.version-switch{display:inline-block;padding:.2em}.wy-side-nav-search>div.switch-menus>div.language-switch select,.wy-side-nav-search>div.switch-menus>div.version-switch select{display:inline-block;margin-right:-2rem;padding-right:2rem;max-width:240px;text-align-last:center;background:none;border:none;border-radius:0;box-shadow:none;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;font-size:1em;font-weight:400;color:hsla(0,0%,100%,.3);cursor:pointer;appearance:none;-webkit-appearance:none;-moz-appearance:none}.wy-side-nav-search>div.switch-menus>div.language-switch select:active,.wy-side-nav-search>div.switch-menus>div.language-switch select:focus,.wy-side-nav-search>div.switch-menus>div.language-switch select:hover,.wy-side-nav-search>div.switch-menus>div.version-switch select:active,.wy-side-nav-search>div.switch-menus>div.version-switch select:focus,.wy-side-nav-search>div.switch-menus>div.version-switch select:hover{background:hsla(0,0%,100%,.1);color:hsla(0,0%,100%,.5)}.wy-side-nav-search>div.switch-menus>div.language-switch select option,.wy-side-nav-search>div.switch-menus>div.version-switch select option{color:#000}.wy-side-nav-search>div.switch-menus>div.language-switch:has(>select):after,.wy-side-nav-search>div.switch-menus>div.version-switch:has(>select):after{display:inline-block;width:1.5em;height:100%;padding:.1em;content:"\f0d7";font-size:1em;line-height:1.2em;font-family:FontAwesome;text-align:center;pointer-events:none;box-sizing:border-box}.wy-nav .wy-menu-vertical header{color:#2980b9}.wy-nav .wy-menu-vertical a{color:#b3b3b3}.wy-nav .wy-menu-vertical a:hover{background-color:#2980b9;color:#fff}[data-menu-wrap]{-webkit-transition:all .2s ease-in;-moz-transition:all .2s ease-in;transition:all .2s ease-in;position:absolute;opacity:1;width:100%;opacity:0}[data-menu-wrap].move-center{left:0;right:auto;opacity:1}[data-menu-wrap].move-left{right:auto;left:-100%;opacity:0}[data-menu-wrap].move-right{right:-100%;left:auto;opacity:0}.wy-body-for-nav{background:#fcfcfc}.wy-grid-for-nav{position:absolute;width:100%;height:100%}.wy-nav-side{position:fixed;top:0;bottom:0;left:0;padding-bottom:2em;width:300px;overflow-x:hidden;overflow-y:hidden;min-height:100%;color:#9b9b9b;background:#343131;z-index:200}.wy-side-scroll{width:320px;position:relative;overflow-x:hidden;overflow-y:scroll;height:100%}.wy-nav-top{display:none;background:#2980b9;color:#fff;padding:.4045em .809em;position:relative;line-height:50px;text-align:center;font-size:100%;*zoom:1}.wy-nav-top:after,.wy-nav-top:before{display:table;content:""}.wy-nav-top:after{clear:both}.wy-nav-top a{color:#fff;font-weight:700}.wy-nav-top img{margin-right:12px;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-nav-top i{font-size:30px;float:left;cursor:pointer;padding-top:inherit}.wy-nav-content-wrap{margin-left:300px;background:#fcfcfc;min-height:100%}.wy-nav-content{padding:1.618em 3.236em;height:100%;max-width:800px;margin:auto}.wy-body-mask{position:fixed;width:100%;height:100%;background:rgba(0,0,0,.2);display:none;z-index:499}.wy-body-mask.on{display:block}footer{color:grey}footer p{margin-bottom:12px}.rst-content footer span.commit tt,footer span.commit .rst-content tt,footer span.commit code{padding:0;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:1em;background:none;border:none;color:grey}.rst-footer-buttons{*zoom:1}.rst-footer-buttons:after,.rst-footer-buttons:before{width:100%;display:table;content:""}.rst-footer-buttons:after{clear:both}.rst-breadcrumbs-buttons{margin-top:12px;*zoom:1}.rst-breadcrumbs-buttons:after,.rst-breadcrumbs-buttons:before{display:table;content:""}.rst-breadcrumbs-buttons:after{clear:both}#search-results .search li{margin-bottom:24px;border-bottom:1px solid #e1e4e5;padding-bottom:24px}#search-results .search li:first-child{border-top:1px solid #e1e4e5;padding-top:24px}#search-results .search li a{font-size:120%;margin-bottom:12px;display:inline-block}#search-results .context{color:grey;font-size:90%}.genindextable li>ul{margin-left:24px}@media screen and (max-width:768px){.wy-body-for-nav{background:#fcfcfc}.wy-nav-top{display:block}.wy-nav-side{left:-300px}.wy-nav-side.shift{width:85%;left:0}.wy-menu.wy-menu-vertical,.wy-side-nav-search,.wy-side-scroll{width:auto}.wy-nav-content-wrap{margin-left:0}.wy-nav-content-wrap .wy-nav-content{padding:1.618em}.wy-nav-content-wrap.shift{position:fixed;min-width:100%;left:85%;top:0;height:100%;overflow:hidden}}@media screen and (min-width:1100px){.wy-nav-content-wrap{background:rgba(0,0,0,.05)}.wy-nav-content{margin:0;background:#fcfcfc}}@media print{.rst-versions,.wy-nav-side,footer{display:none}.wy-nav-content-wrap{margin-left:0}}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60;*zoom:1}.rst-versions .rst-current-version:after,.rst-versions .rst-current-version:before{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-content .code-block-caption .rst-versions .rst-current-version .headerlink,.rst-content .eqno .rst-versions .rst-current-version .headerlink,.rst-content .rst-versions .rst-current-version .admonition-title,.rst-content code.download .rst-versions .rst-current-version span:first-child,.rst-content dl dt .rst-versions .rst-current-version .headerlink,.rst-content h1 .rst-versions .rst-current-version .headerlink,.rst-content h2 .rst-versions .rst-current-version .headerlink,.rst-content h3 .rst-versions .rst-current-version .headerlink,.rst-content h4 .rst-versions .rst-current-version .headerlink,.rst-content h5 .rst-versions .rst-current-version .headerlink,.rst-content h6 .rst-versions .rst-current-version .headerlink,.rst-content p .rst-versions .rst-current-version .headerlink,.rst-content table>caption .rst-versions .rst-current-version .headerlink,.rst-content tt.download .rst-versions .rst-current-version span:first-child,.rst-versions .rst-current-version .fa,.rst-versions .rst-current-version .icon,.rst-versions .rst-current-version .rst-content .admonition-title,.rst-versions .rst-current-version .rst-content .code-block-caption .headerlink,.rst-versions .rst-current-version .rst-content .eqno .headerlink,.rst-versions .rst-current-version .rst-content code.download span:first-child,.rst-versions .rst-current-version .rst-content dl dt .headerlink,.rst-versions .rst-current-version .rst-content h1 .headerlink,.rst-versions .rst-current-version .rst-content h2 .headerlink,.rst-versions .rst-current-version .rst-content h3 .headerlink,.rst-versions .rst-current-version .rst-content h4 .headerlink,.rst-versions .rst-current-version .rst-content h5 .headerlink,.rst-versions .rst-current-version .rst-content h6 .headerlink,.rst-versions .rst-current-version .rst-content p .headerlink,.rst-versions .rst-current-version .rst-content table>caption .headerlink,.rst-versions .rst-current-version .rst-content tt.download span:first-child,.rst-versions .rst-current-version .wy-menu-vertical li button.toctree-expand,.wy-menu-vertical li .rst-versions .rst-current-version button.toctree-expand{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions .rst-other-versions .rtd-current-item{font-weight:700}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}#flyout-search-form{padding:6px}.rst-content .toctree-wrapper>p.caption,.rst-content h1,.rst-content h2,.rst-content h3,.rst-content h4,.rst-content h5,.rst-content h6{margin-bottom:24px}.rst-content img{max-width:100%;height:auto}.rst-content div.figure,.rst-content figure{margin-bottom:24px}.rst-content div.figure .caption-text,.rst-content figure .caption-text{font-style:italic}.rst-content div.figure p:last-child.caption,.rst-content figure p:last-child.caption{margin-bottom:0}.rst-content div.figure.align-center,.rst-content figure.align-center{text-align:center}.rst-content .section>a>img,.rst-content .section>img,.rst-content section>a>img,.rst-content section>img{margin-bottom:24px}.rst-content abbr[title]{text-decoration:none}.rst-content.style-external-links a.reference.external:after{font-family:FontAwesome;content:"\f08e";color:#b3b3b3;vertical-align:super;font-size:60%;margin:0 .2em}.rst-content blockquote{margin-left:24px;line-height:24px;margin-bottom:24px}.rst-content pre.literal-block{white-space:pre;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;display:block;overflow:auto}.rst-content div[class^=highlight],.rst-content pre.literal-block{border:1px solid #e1e4e5;overflow-x:auto;margin:1px 0 24px}.rst-content div[class^=highlight] div[class^=highlight],.rst-content pre.literal-block div[class^=highlight]{padding:0;border:none;margin:0}.rst-content div[class^=highlight] td.code{width:100%}.rst-content .linenodiv pre{border-right:1px solid #e6e9ea;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;user-select:none;pointer-events:none}.rst-content div[class^=highlight] pre{white-space:pre;margin:0;padding:12px;display:block;overflow:auto}.rst-content div[class^=highlight] pre .hll{display:block;margin:0 -12px;padding:0 12px}.rst-content .linenodiv pre,.rst-content div[class^=highlight] pre,.rst-content pre.literal-block{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:12px;line-height:1.4}.rst-content div.highlight .gp,.rst-content div.highlight span.linenos{user-select:none;pointer-events:none}.rst-content div.highlight span.linenos{display:inline-block;padding-left:0;padding-right:12px;margin-right:12px;border-right:1px solid #e6e9ea}.rst-content .code-block-caption{font-style:italic;font-size:85%;line-height:1;padding:1em 0;text-align:center}@media print{.rst-content .codeblock,.rst-content div[class^=highlight],.rst-content div[class^=highlight] pre{white-space:pre-wrap}}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning{clear:both}.rst-content .admonition-todo .last,.rst-content .admonition-todo>:last-child,.rst-content .admonition .last,.rst-content .admonition>:last-child,.rst-content .attention .last,.rst-content .attention>:last-child,.rst-content .caution .last,.rst-content .caution>:last-child,.rst-content .danger .last,.rst-content .danger>:last-child,.rst-content .error .last,.rst-content .error>:last-child,.rst-content .hint .last,.rst-content .hint>:last-child,.rst-content .important .last,.rst-content .important>:last-child,.rst-content .note .last,.rst-content .note>:last-child,.rst-content .seealso .last,.rst-content .seealso>:last-child,.rst-content .tip .last,.rst-content .tip>:last-child,.rst-content .warning .last,.rst-content .warning>:last-child{margin-bottom:0}.rst-content .admonition-title:before{margin-right:4px}.rst-content .admonition table{border-color:rgba(0,0,0,.1)}.rst-content .admonition table td,.rst-content .admonition table th{background:transparent!important;border-color:rgba(0,0,0,.1)!important}.rst-content .section ol.loweralpha,.rst-content .section ol.loweralpha>li,.rst-content .toctree-wrapper ol.loweralpha,.rst-content .toctree-wrapper ol.loweralpha>li,.rst-content section ol.loweralpha,.rst-content section ol.loweralpha>li{list-style:lower-alpha}.rst-content .section ol.upperalpha,.rst-content .section ol.upperalpha>li,.rst-content .toctree-wrapper ol.upperalpha,.rst-content .toctree-wrapper ol.upperalpha>li,.rst-content section ol.upperalpha,.rst-content section ol.upperalpha>li{list-style:upper-alpha}.rst-content .section ol li>*,.rst-content .section ul li>*,.rst-content .toctree-wrapper ol li>*,.rst-content .toctree-wrapper ul li>*,.rst-content section ol li>*,.rst-content section ul li>*{margin-top:12px;margin-bottom:12px}.rst-content .section ol li>:first-child,.rst-content .section ul li>:first-child,.rst-content .toctree-wrapper ol li>:first-child,.rst-content .toctree-wrapper ul li>:first-child,.rst-content section ol li>:first-child,.rst-content section ul li>:first-child{margin-top:0}.rst-content .section ol li>p,.rst-content .section ol li>p:last-child,.rst-content .section ul li>p,.rst-content .section ul li>p:last-child,.rst-content .toctree-wrapper ol li>p,.rst-content .toctree-wrapper ol li>p:last-child,.rst-content .toctree-wrapper ul li>p,.rst-content .toctree-wrapper ul li>p:last-child,.rst-content section ol li>p,.rst-content section ol li>p:last-child,.rst-content section ul li>p,.rst-content section ul li>p:last-child{margin-bottom:12px}.rst-content .section ol li>p:only-child,.rst-content .section ol li>p:only-child:last-child,.rst-content .section ul li>p:only-child,.rst-content .section ul li>p:only-child:last-child,.rst-content .toctree-wrapper ol li>p:only-child,.rst-content .toctree-wrapper ol li>p:only-child:last-child,.rst-content .toctree-wrapper ul li>p:only-child,.rst-content .toctree-wrapper ul li>p:only-child:last-child,.rst-content section ol li>p:only-child,.rst-content section ol li>p:only-child:last-child,.rst-content section ul li>p:only-child,.rst-content section ul li>p:only-child:last-child{margin-bottom:0}.rst-content .section ol li>ol,.rst-content .section ol li>ul,.rst-content .section ul li>ol,.rst-content .section ul li>ul,.rst-content .toctree-wrapper ol li>ol,.rst-content .toctree-wrapper ol li>ul,.rst-content .toctree-wrapper ul li>ol,.rst-content .toctree-wrapper ul li>ul,.rst-content section ol li>ol,.rst-content section ol li>ul,.rst-content section ul li>ol,.rst-content section ul li>ul{margin-bottom:12px}.rst-content .section ol.simple li>*,.rst-content .section ol.simple li ol,.rst-content .section ol.simple li ul,.rst-content .section ul.simple li>*,.rst-content .section ul.simple li ol,.rst-content .section ul.simple li ul,.rst-content .toctree-wrapper ol.simple li>*,.rst-content .toctree-wrapper ol.simple li ol,.rst-content .toctree-wrapper ol.simple li ul,.rst-content .toctree-wrapper ul.simple li>*,.rst-content .toctree-wrapper ul.simple li ol,.rst-content .toctree-wrapper ul.simple li ul,.rst-content section ol.simple li>*,.rst-content section ol.simple li ol,.rst-content section ol.simple li ul,.rst-content section ul.simple li>*,.rst-content section ul.simple li ol,.rst-content section ul.simple li ul{margin-top:0;margin-bottom:0}.rst-content .line-block{margin-left:0;margin-bottom:24px;line-height:24px}.rst-content .line-block .line-block{margin-left:24px;margin-bottom:0}.rst-content .topic-title{font-weight:700;margin-bottom:12px}.rst-content .toc-backref{color:#404040}.rst-content .align-right{float:right;margin:0 0 24px 24px}.rst-content .align-left{float:left;margin:0 24px 24px 0}.rst-content .align-center{margin:auto}.rst-content .align-center:not(table){display:block}.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink{opacity:0;font-size:14px;font-family:FontAwesome;margin-left:.5em}.rst-content .code-block-caption .headerlink:focus,.rst-content .code-block-caption:hover .headerlink,.rst-content .eqno .headerlink:focus,.rst-content .eqno:hover .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink:focus,.rst-content .toctree-wrapper>p.caption:hover .headerlink,.rst-content dl dt .headerlink:focus,.rst-content dl dt:hover .headerlink,.rst-content h1 .headerlink:focus,.rst-content h1:hover .headerlink,.rst-content h2 .headerlink:focus,.rst-content h2:hover .headerlink,.rst-content h3 .headerlink:focus,.rst-content h3:hover .headerlink,.rst-content h4 .headerlink:focus,.rst-content h4:hover .headerlink,.rst-content h5 .headerlink:focus,.rst-content h5:hover .headerlink,.rst-content h6 .headerlink:focus,.rst-content h6:hover .headerlink,.rst-content p.caption .headerlink:focus,.rst-content p.caption:hover .headerlink,.rst-content p .headerlink:focus,.rst-content p:hover .headerlink,.rst-content table>caption .headerlink:focus,.rst-content table>caption:hover .headerlink{opacity:1}.rst-content p a{overflow-wrap:anywhere}.rst-content .wy-table td p,.rst-content .wy-table td ul,.rst-content .wy-table th p,.rst-content .wy-table th ul,.rst-content table.docutils td p,.rst-content table.docutils td ul,.rst-content table.docutils th p,.rst-content table.docutils th ul,.rst-content table.field-list td p,.rst-content table.field-list td ul,.rst-content table.field-list th p,.rst-content table.field-list th ul{font-size:inherit}.rst-content .btn:focus{outline:2px solid}.rst-content table>caption .headerlink:after{font-size:12px}.rst-content .centered{text-align:center}.rst-content .sidebar{float:right;width:40%;display:block;margin:0 0 24px 24px;padding:24px;background:#f3f6f6;border:1px solid #e1e4e5}.rst-content .sidebar dl,.rst-content .sidebar p,.rst-content .sidebar ul{font-size:90%}.rst-content .sidebar .last,.rst-content .sidebar>:last-child{margin-bottom:0}.rst-content .sidebar .sidebar-title{display:block;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif;font-weight:700;background:#e1e4e5;padding:6px 12px;margin:-24px -24px 24px;font-size:100%}.rst-content .highlighted{background:#f1c40f;box-shadow:0 0 0 2px #f1c40f;display:inline;font-weight:700}.rst-content .citation-reference,.rst-content .footnote-reference{vertical-align:baseline;position:relative;top:-.4em;line-height:0;font-size:90%}.rst-content .citation-reference>span.fn-bracket,.rst-content .footnote-reference>span.fn-bracket{display:none}.rst-content .hlist{width:100%}.rst-content dl dt span.classifier:before{content:" : "}.rst-content dl dt span.classifier-delimiter{display:none!important}html.writer-html4 .rst-content table.docutils.citation,html.writer-html4 .rst-content table.docutils.footnote{background:none;border:none}html.writer-html4 .rst-content table.docutils.citation td,html.writer-html4 .rst-content table.docutils.citation tr,html.writer-html4 .rst-content table.docutils.footnote td,html.writer-html4 .rst-content table.docutils.footnote tr{border:none;background-color:transparent!important;white-space:normal}html.writer-html4 .rst-content table.docutils.citation td.label,html.writer-html4 .rst-content table.docutils.footnote td.label{padding-left:0;padding-right:0;vertical-align:top}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{display:grid;grid-template-columns:auto minmax(80%,95%)}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{display:inline-grid;grid-template-columns:max-content auto}html.writer-html5 .rst-content aside.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content div.citation{display:grid;grid-template-columns:auto auto minmax(.65rem,auto) minmax(40%,95%)}html.writer-html5 .rst-content aside.citation>span.label,html.writer-html5 .rst-content aside.footnote>span.label,html.writer-html5 .rst-content div.citation>span.label{grid-column-start:1;grid-column-end:2}html.writer-html5 .rst-content aside.citation>span.backrefs,html.writer-html5 .rst-content aside.footnote>span.backrefs,html.writer-html5 .rst-content div.citation>span.backrefs{grid-column-start:2;grid-column-end:3;grid-row-start:1;grid-row-end:3}html.writer-html5 .rst-content aside.citation>p,html.writer-html5 .rst-content aside.footnote>p,html.writer-html5 .rst-content div.citation>p{grid-column-start:4;grid-column-end:5}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{margin-bottom:24px}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{padding-left:1rem}html.writer-html5 .rst-content dl.citation>dd,html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dd,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dd,html.writer-html5 .rst-content dl.footnote>dt{margin-bottom:0}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.footnote{font-size:.9rem}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.footnote>dt{margin:0 .5rem .5rem 0;line-height:1.2rem;word-break:break-all;font-weight:400}html.writer-html5 .rst-content dl.citation>dt>span.brackets:before,html.writer-html5 .rst-content dl.footnote>dt>span.brackets:before{content:"["}html.writer-html5 .rst-content dl.citation>dt>span.brackets:after,html.writer-html5 .rst-content dl.footnote>dt>span.brackets:after{content:"]"}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref{text-align:left;font-style:italic;margin-left:.65rem;word-break:break-word;word-spacing:-.1rem;max-width:5rem}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref>a,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref>a{word-break:keep-all}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref>a:not(:first-child):before,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref>a:not(:first-child):before{content:" "}html.writer-html5 .rst-content dl.citation>dd,html.writer-html5 .rst-content dl.footnote>dd{margin:0 0 .5rem;line-height:1.2rem}html.writer-html5 .rst-content dl.citation>dd p,html.writer-html5 .rst-content dl.footnote>dd p{font-size:.9rem}html.writer-html5 .rst-content aside.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content div.citation{padding-left:1rem;padding-right:1rem;font-size:.9rem;line-height:1.2rem}html.writer-html5 .rst-content aside.citation p,html.writer-html5 .rst-content aside.footnote p,html.writer-html5 .rst-content div.citation p{font-size:.9rem;line-height:1.2rem;margin-bottom:12px}html.writer-html5 .rst-content aside.citation span.backrefs,html.writer-html5 .rst-content aside.footnote span.backrefs,html.writer-html5 .rst-content div.citation span.backrefs{text-align:left;font-style:italic;margin-left:.65rem;word-break:break-word;word-spacing:-.1rem;max-width:5rem}html.writer-html5 .rst-content aside.citation span.backrefs>a,html.writer-html5 .rst-content aside.footnote span.backrefs>a,html.writer-html5 .rst-content div.citation span.backrefs>a{word-break:keep-all}html.writer-html5 .rst-content aside.citation span.backrefs>a:not(:first-child):before,html.writer-html5 .rst-content aside.footnote span.backrefs>a:not(:first-child):before,html.writer-html5 .rst-content div.citation span.backrefs>a:not(:first-child):before{content:" "}html.writer-html5 .rst-content aside.citation span.label,html.writer-html5 .rst-content aside.footnote span.label,html.writer-html5 .rst-content div.citation span.label{line-height:1.2rem}html.writer-html5 .rst-content aside.citation-list,html.writer-html5 .rst-content aside.footnote-list,html.writer-html5 .rst-content div.citation-list{margin-bottom:24px}html.writer-html5 .rst-content dl.option-list kbd{font-size:.9rem}.rst-content table.docutils.footnote,html.writer-html4 .rst-content table.docutils.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content aside.footnote-list aside.footnote,html.writer-html5 .rst-content div.citation-list>div.citation,html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.footnote{color:grey}.rst-content table.docutils.footnote code,.rst-content table.docutils.footnote tt,html.writer-html4 .rst-content table.docutils.citation code,html.writer-html4 .rst-content table.docutils.citation tt,html.writer-html5 .rst-content aside.footnote-list aside.footnote code,html.writer-html5 .rst-content aside.footnote-list aside.footnote tt,html.writer-html5 .rst-content aside.footnote code,html.writer-html5 .rst-content aside.footnote tt,html.writer-html5 .rst-content div.citation-list>div.citation code,html.writer-html5 .rst-content div.citation-list>div.citation tt,html.writer-html5 .rst-content dl.citation code,html.writer-html5 .rst-content dl.citation tt,html.writer-html5 .rst-content dl.footnote code,html.writer-html5 .rst-content dl.footnote tt{color:#555}.rst-content .wy-table-responsive.citation,.rst-content .wy-table-responsive.footnote{margin-bottom:0}.rst-content .wy-table-responsive.citation+:not(.citation),.rst-content .wy-table-responsive.footnote+:not(.footnote){margin-top:24px}.rst-content .wy-table-responsive.citation:last-child,.rst-content .wy-table-responsive.footnote:last-child{margin-bottom:24px}.rst-content table.docutils th{border-color:#e1e4e5}html.writer-html5 .rst-content table.docutils th{border:1px solid #e1e4e5}html.writer-html5 .rst-content table.docutils td>p,html.writer-html5 .rst-content table.docutils th>p{line-height:1rem;margin-bottom:0;font-size:.9rem}.rst-content table.docutils td .last,.rst-content table.docutils td .last>:last-child{margin-bottom:0}.rst-content table.field-list,.rst-content table.field-list td{border:none}.rst-content table.field-list td p{line-height:inherit}.rst-content table.field-list td>strong{display:inline-block}.rst-content table.field-list .field-name{padding-right:10px;text-align:left;white-space:nowrap}.rst-content table.field-list .field-body{text-align:left}.rst-content code,.rst-content tt{color:#000;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;padding:2px 5px}.rst-content code big,.rst-content code em,.rst-content tt big,.rst-content tt em{font-size:100%!important;line-height:normal}.rst-content code.literal,.rst-content tt.literal{color:#e74c3c;white-space:normal}.rst-content code.xref,.rst-content tt.xref,a .rst-content code,a .rst-content tt{font-weight:700;color:#404040;overflow-wrap:normal}.rst-content kbd,.rst-content pre,.rst-content samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace}.rst-content a code,.rst-content a tt{color:#2980b9}.rst-content dl{margin-bottom:24px}.rst-content dl dt{font-weight:700;margin-bottom:12px}.rst-content dl ol,.rst-content dl p,.rst-content dl table,.rst-content dl ul{margin-bottom:12px}.rst-content dl dd{margin:0 0 12px 24px;line-height:24px}.rst-content dl dd>ol:last-child,.rst-content dl dd>p:last-child,.rst-content dl dd>table:last-child,.rst-content dl dd>ul:last-child{margin-bottom:0}html.writer-html4 .rst-content dl:not(.docutils),html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple){margin-bottom:24px}html.writer-html4 .rst-content dl:not(.docutils)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt{display:table;margin:6px 0;font-size:90%;line-height:normal;background:#e7f2fa;color:#2980b9;border-top:3px solid #6ab0de;padding:6px;position:relative}html.writer-html4 .rst-content dl:not(.docutils)>dt:before,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt:before{color:#6ab0de}html.writer-html4 .rst-content dl:not(.docutils)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt{margin-bottom:6px;border:none;border-left:3px solid #ccc;background:#f0f0f0;color:#555}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils)>dt:first-child,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt:first-child{margin-top:0}html.writer-html4 .rst-content dl:not(.docutils) code.descclassname,html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descclassname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descname{background-color:transparent;border:none;padding:0;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descname{font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .optional,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .optional{display:inline-block;padding:0 4px;color:#000;font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .property,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .property{display:inline-block;padding-right:8px;max-width:100%}html.writer-html4 .rst-content dl:not(.docutils) .k,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .k{font-style:italic}html.writer-html4 .rst-content dl:not(.docutils) .descclassname,html.writer-html4 .rst-content dl:not(.docutils) .descname,html.writer-html4 .rst-content dl:not(.docutils) .sig-name,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .sig-name{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#000}.rst-content .viewcode-back,.rst-content .viewcode-link{display:inline-block;color:#27ae60;font-size:80%;padding-left:24px}.rst-content .viewcode-back{display:block;float:right}.rst-content p.rubric{margin-bottom:12px;font-weight:700}.rst-content code.download,.rst-content tt.download{background:inherit;padding:inherit;font-weight:400;font-family:inherit;font-size:inherit;color:inherit;border:inherit;white-space:inherit}.rst-content code.download span:first-child,.rst-content tt.download span:first-child{-webkit-font-smoothing:subpixel-antialiased}.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{margin-right:4px}.rst-content .guilabel,.rst-content .menuselection{font-size:80%;font-weight:700;border-radius:4px;padding:2.4px 6px;margin:auto 2px}.rst-content .guilabel,.rst-content .menuselection{border:1px solid #7fbbe3;background:#e7f2fa}.rst-content :not(dl.option-list)>:not(dt):not(kbd):not(.kbd)>.kbd,.rst-content :not(dl.option-list)>:not(dt):not(kbd):not(.kbd)>kbd{color:inherit;font-size:80%;background-color:#fff;border:1px solid #a6a6a6;border-radius:4px;box-shadow:0 2px grey;padding:2.4px 6px;margin:auto 0}.rst-content .versionmodified{font-style:italic}@media screen and (max-width:480px){.rst-content .sidebar{width:100%}}span[id*=MathJax-Span]{color:#404040}.math{text-align:center}@font-face{font-family:Lato;src:url(fonts/lato-normal.woff2?bd03a2cc277bbbc338d464e679fe9942) format("woff2"),url(fonts/lato-normal.woff?27bd77b9162d388cb8d4c4217c7c5e2a) format("woff");font-weight:400;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold.woff2?cccb897485813c7c256901dbca54ecf2) format("woff2"),url(fonts/lato-bold.woff?d878b6c29b10beca227e9eef4246111b) format("woff");font-weight:700;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold-italic.woff2?0b6bb6725576b072c5d0b02ecdd1900d) format("woff2"),url(fonts/lato-bold-italic.woff?9c7e4e9eb485b4a121c760e61bc3707c) format("woff");font-weight:700;font-style:italic;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-normal-italic.woff2?4eb103b4d12be57cb1d040ed5e162e9d) format("woff2"),url(fonts/lato-normal-italic.woff?f28f2d6482446544ef1ea1ccc6dd5892) format("woff");font-weight:400;font-style:italic;font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:400;src:url(fonts/Roboto-Slab-Regular.woff2?7abf5b8d04d26a2cafea937019bca958) format("woff2"),url(fonts/Roboto-Slab-Regular.woff?c1be9284088d487c5e3ff0a10a92e58c) format("woff");font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:700;src:url(fonts/Roboto-Slab-Bold.woff2?9984f4a9bda09be08e83f2506954adbe) format("woff2"),url(fonts/Roboto-Slab-Bold.woff?bed5564a116b05148e3b3bea6fb1162a) format("woff");font-display:block} \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/custom.css b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/custom.css new file mode 100644 index 0000000000..0647fc6e25 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/custom.css @@ -0,0 +1,109 @@ +.wy-nav-content { + background: #fcfffa; +} + +code { + border: 0px !important; +} + +code.xref { + color: unset !important; +} + +.rst-content code { + padding: 1px !important; + background: unset !important; +} + +.wy-side-nav-search { + background-color: #0099e6; +} + +.wy-breadcrumbs a { + color: #739900; +} + +.wy-breadcrumbs a:hover, a:focus { + color: #0099e6; +} + +.wy-side-nav-search input[type="text"] { + border-color: #0077b3; +} + +.wy-menu-vertical a { + color: #4dc3ff; +} + +.wy-menu-vertical a:visited { + color: #4dc3ff; +} + +.wy-menu-vertical a:hover, a:focus { + color: #ace600; +} + +a { + color: #0099e6; +} + +a:visited { + color: #0099e6; +} + +a:hover, a:focus { + color: #739900; +} + +.wy-nav-top { + color: #ace600; + background-color: #0099e6; +} + +.wy-nav-top a { + color: #ace600; +} + +.wy-side-nav-search > a { + color: #ace600; +} + +.wy-side-nav-search > a:hover, > a:focus, > a:visited { + color: #ace600; +} + +.highlight .o { + color: #ac7339; +} + +.highlight .k { + color: #2980b9; +} + +.highlight .m { + color: #ba2121; +} + +/* Removes margin of code blocks within tabs */ +.sphinx-tabs-panel div[class^="highlight"] { + margin: 1px 0 0 0; +} + +/* Adds a space between icon and content for fa icons */ +.icon-margin.fa::before { + margin-right: 0.25em; +} + +#c-api-class-hierarchy code { + font-size: 100%; + font-weight: normal; + font-family: "Lato","proxima-nova","Helvetica Neue","Arial","sans-serif"; +} + +.hide-toctree { + display: none; +} + +.expert-option { + opacity: 0.7; +} \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/doctools.js b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/doctools.js new file mode 100644 index 0000000000..d06a71d751 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/doctools.js @@ -0,0 +1,156 @@ +/* + * doctools.js + * ~~~~~~~~~~~ + * + * Base JavaScript utilities for all Sphinx HTML documentation. + * + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ +"use strict"; + +const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([ + "TEXTAREA", + "INPUT", + "SELECT", + "BUTTON", +]); + +const _ready = (callback) => { + if (document.readyState !== "loading") { + callback(); + } else { + document.addEventListener("DOMContentLoaded", callback); + } +}; + +/** + * Small JavaScript module for the documentation. + */ +const Documentation = { + init: () => { + Documentation.initDomainIndexTable(); + Documentation.initOnKeyListeners(); + }, + + /** + * i18n support + */ + TRANSLATIONS: {}, + PLURAL_EXPR: (n) => (n === 1 ? 0 : 1), + LOCALE: "unknown", + + // gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext: (string) => { + const translated = Documentation.TRANSLATIONS[string]; + switch (typeof translated) { + case "undefined": + return string; // no translation + case "string": + return translated; // translation exists + default: + return translated[0]; // (singular, plural) translation tuple exists + } + }, + + ngettext: (singular, plural, n) => { + const translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated !== "undefined") + return translated[Documentation.PLURAL_EXPR(n)]; + return n === 1 ? singular : plural; + }, + + addTranslations: (catalog) => { + Object.assign(Documentation.TRANSLATIONS, catalog.messages); + Documentation.PLURAL_EXPR = new Function( + "n", + `return (${catalog.plural_expr})` + ); + Documentation.LOCALE = catalog.locale; + }, + + /** + * helper function to focus on search bar + */ + focusSearchBar: () => { + document.querySelectorAll("input[name=q]")[0]?.focus(); + }, + + /** + * Initialise the domain index toggle buttons + */ + initDomainIndexTable: () => { + const toggler = (el) => { + const idNumber = el.id.substr(7); + const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`); + if (el.src.substr(-9) === "minus.png") { + el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`; + toggledRows.forEach((el) => (el.style.display = "none")); + } else { + el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`; + toggledRows.forEach((el) => (el.style.display = "")); + } + }; + + const togglerElements = document.querySelectorAll("img.toggler"); + togglerElements.forEach((el) => + el.addEventListener("click", (event) => toggler(event.currentTarget)) + ); + togglerElements.forEach((el) => (el.style.display = "")); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); + }, + + initOnKeyListeners: () => { + // only install a listener if it is really needed + if ( + !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && + !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS + ) + return; + + document.addEventListener("keydown", (event) => { + // bail for input elements + if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; + // bail with special keys + if (event.altKey || event.ctrlKey || event.metaKey) return; + + if (!event.shiftKey) { + switch (event.key) { + case "ArrowLeft": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const prevLink = document.querySelector('link[rel="prev"]'); + if (prevLink && prevLink.href) { + window.location.href = prevLink.href; + event.preventDefault(); + } + break; + case "ArrowRight": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const nextLink = document.querySelector('link[rel="next"]'); + if (nextLink && nextLink.href) { + window.location.href = nextLink.href; + event.preventDefault(); + } + break; + } + } + + // some keyboard layouts may need Shift to get / + switch (event.key) { + case "/": + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; + Documentation.focusSearchBar(); + event.preventDefault(); + } + }); + }, +}; + +// quick alias for translations +const _ = Documentation.gettext; + +_ready(Documentation.init); diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/documentation_options.js b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/documentation_options.js new file mode 100644 index 0000000000..b57ae3b839 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/documentation_options.js @@ -0,0 +1,14 @@ +var DOCUMENTATION_OPTIONS = { + URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), + VERSION: '', + LANGUAGE: 'en', + COLLAPSE_INDEX: false, + BUILDER: 'html', + FILE_SUFFIX: '.html', + LINK_SUFFIX: '.html', + HAS_SOURCE: true, + SOURCELINK_SUFFIX: '.txt', + NAVIGATION_WITH_KEYS: false, + SHOW_SEARCH_SUMMARY: true, + ENABLE_SEARCH_SHORTCUTS: true, +}; \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/file.png b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/file.png new file mode 100644 index 0000000000..a858a410e4 Binary files /dev/null and b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/file.png differ diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/jquery.js b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/jquery.js new file mode 100644 index 0000000000..c4c6022f29 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/jquery.js @@ -0,0 +1,2 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
    ",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0
    "),n("table.docutils.footnote").wrap("
    "),n("table.docutils.citation").wrap("
    "),n(".wy-menu-vertical ul").not(".simple").siblings("a").each((function(){var t=n(this);expand=n(''),expand.on("click",(function(n){return e.toggleCurrent(t),n.stopPropagation(),!1})),t.prepend(expand)}))},reset:function(){var n=encodeURI(window.location.hash)||"#";try{var e=$(".wy-menu-vertical"),t=e.find('[href="'+n+'"]');if(0===t.length){var i=$('.document [id="'+n.substring(1)+'"]').closest("div.section");0===(t=e.find('[href="#'+i.attr("id")+'"]')).length&&(t=e.find('[href="#"]'))}if(t.length>0){$(".wy-menu-vertical .current").removeClass("current").attr("aria-expanded","false"),t.addClass("current").attr("aria-expanded","true"),t.closest("li.toctree-l1").parent().addClass("current").attr("aria-expanded","true");for(let n=1;n<=10;n++)t.closest("li.toctree-l"+n).addClass("current").attr("aria-expanded","true");t[0].scrollIntoView()}}catch(n){console.log("Error expanding nav for anchor",n)}},onScroll:function(){this.winScroll=!1;var n=this.win.scrollTop(),e=n+this.winHeight,t=this.navBar.scrollTop()+(n-this.winPosition);n<0||e>this.docHeight||(this.navBar.scrollTop(t),this.winPosition=n)},onResize:function(){this.winResize=!1,this.winHeight=this.win.height(),this.docHeight=$(document).height()},hashChange:function(){this.linkScroll=!0,this.win.one("hashchange",(function(){this.linkScroll=!1}))},toggleCurrent:function(n){var e=n.closest("li");e.siblings("li.current").removeClass("current").attr("aria-expanded","false"),e.siblings().find("li.current").removeClass("current").attr("aria-expanded","false");var t=e.find("> ul li");t.length&&(t.removeClass("current").attr("aria-expanded","false"),e.toggleClass("current").attr("aria-expanded",(function(n,e){return"true"==e?"false":"true"})))}},"undefined"!=typeof window&&(window.SphinxRtdTheme={Navigation:n.exports.ThemeNav,StickyNav:n.exports.ThemeNav}),function(){for(var n=0,e=["ms","moz","webkit","o"],t=0;t a.language.name.localeCompare(b.language.name)); + + const languagesHTML = ` +
    +
    Languages
    + ${languages + .map( + (translation) => ` +
    + ${translation.language.code} +
    + `, + ) + .join("\n")} +
    + `; + return languagesHTML; + } + + function renderVersions(config) { + if (!config.versions.active.length) { + return ""; + } + const versionsHTML = ` +
    +
    Versions
    + ${config.versions.active + .map( + (version) => ` +
    + ${version.slug} +
    + `, + ) + .join("\n")} +
    + `; + return versionsHTML; + } + + function renderDownloads(config) { + if (!Object.keys(config.versions.current.downloads).length) { + return ""; + } + const downloadsNameDisplay = { + pdf: "PDF", + epub: "Epub", + htmlzip: "HTML", + }; + + const downloadsHTML = ` +
    +
    Downloads
    + ${Object.entries(config.versions.current.downloads) + .map( + ([name, url]) => ` +
    + ${downloadsNameDisplay[name]} +
    + `, + ) + .join("\n")} +
    + `; + return downloadsHTML; + } + + document.addEventListener("readthedocs-addons-data-ready", function (event) { + const config = event.detail.data(); + + const flyout = ` +
    + + Read the Docs + v: ${config.versions.current.slug} + + +
    +
    + ${renderLanguages(config)} + ${renderVersions(config)} + ${renderDownloads(config)} +
    +
    On Read the Docs
    +
    + Project Home +
    +
    + Builds +
    +
    + Downloads +
    +
    +
    +
    Search
    +
    +
    + +
    +
    +
    +
    + + Hosted by Read the Docs + +
    +
    + `; + + // Inject the generated flyout into the body HTML element. + document.body.insertAdjacentHTML("beforeend", flyout); + + // Trigger the Read the Docs Addons Search modal when clicking on the "Search docs" input from inside the flyout. + document + .querySelector("#flyout-search-form") + .addEventListener("focusin", () => { + const event = new CustomEvent("readthedocs-search-show"); + document.dispatchEvent(event); + }); + }) +} + +if (themeLanguageSelector || themeVersionSelector) { + function onSelectorSwitch(event) { + const option = event.target.selectedIndex; + const item = event.target.options[option]; + window.location.href = item.dataset.url; + } + + document.addEventListener("readthedocs-addons-data-ready", function (event) { + const config = event.detail.data(); + + const versionSwitch = document.querySelector( + "div.switch-menus > div.version-switch", + ); + if (themeVersionSelector) { + let versions = config.versions.active; + if (config.versions.current.hidden || config.versions.current.type === "external") { + versions.unshift(config.versions.current); + } + const versionSelect = ` + + `; + + versionSwitch.innerHTML = versionSelect; + versionSwitch.firstElementChild.addEventListener("change", onSelectorSwitch); + } + + const languageSwitch = document.querySelector( + "div.switch-menus > div.language-switch", + ); + + if (themeLanguageSelector) { + if (config.projects.translations.length) { + // Add the current language to the options on the selector + let languages = config.projects.translations.concat( + config.projects.current, + ); + languages = languages.sort((a, b) => + a.language.name.localeCompare(b.language.name), + ); + + const languageSelect = ` + + `; + + languageSwitch.innerHTML = languageSelect; + languageSwitch.firstElementChild.addEventListener("change", onSelectorSwitch); + } + else { + languageSwitch.remove(); + } + } + }); +} + +document.addEventListener("readthedocs-addons-data-ready", function (event) { + // Trigger the Read the Docs Addons Search modal when clicking on "Search docs" input from the topnav. + document + .querySelector("[role='search'] input") + .addEventListener("focusin", () => { + const event = new CustomEvent("readthedocs-search-show"); + document.dispatchEvent(event); + }); +}); \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/language_data.js b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/language_data.js new file mode 100644 index 0000000000..250f5665fa --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/language_data.js @@ -0,0 +1,199 @@ +/* + * language_data.js + * ~~~~~~~~~~~~~~~~ + * + * This script contains the language-specific data used by searchtools.js, + * namely the list of stopwords, stemmer, scorer and splitter. + * + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"]; + + +/* Non-minified version is copied as a separate JS file, is available */ + +/** + * Porter Stemmer + */ +var Stemmer = function() { + + var step2list = { + ational: 'ate', + tional: 'tion', + enci: 'ence', + anci: 'ance', + izer: 'ize', + bli: 'ble', + alli: 'al', + entli: 'ent', + eli: 'e', + ousli: 'ous', + ization: 'ize', + ation: 'ate', + ator: 'ate', + alism: 'al', + iveness: 'ive', + fulness: 'ful', + ousness: 'ous', + aliti: 'al', + iviti: 'ive', + biliti: 'ble', + logi: 'log' + }; + + var step3list = { + icate: 'ic', + ative: '', + alize: 'al', + iciti: 'ic', + ical: 'ic', + ful: '', + ness: '' + }; + + var c = "[^aeiou]"; // consonant + var v = "[aeiouy]"; // vowel + var C = c + "[^aeiouy]*"; // consonant sequence + var V = v + "[aeiou]*"; // vowel sequence + + var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 + var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 + var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 + var s_v = "^(" + C + ")?" + v; // vowel in stem + + this.stemWord = function (w) { + var stem; + var suffix; + var firstch; + var origword = w; + + if (w.length < 3) + return w; + + var re; + var re2; + var re3; + var re4; + + firstch = w.substr(0,1); + if (firstch == "y") + w = firstch.toUpperCase() + w.substr(1); + + // Step 1a + re = /^(.+?)(ss|i)es$/; + re2 = /^(.+?)([^s])s$/; + + if (re.test(w)) + w = w.replace(re,"$1$2"); + else if (re2.test(w)) + w = w.replace(re2,"$1$2"); + + // Step 1b + re = /^(.+?)eed$/; + re2 = /^(.+?)(ed|ing)$/; + if (re.test(w)) { + var fp = re.exec(w); + re = new RegExp(mgr0); + if (re.test(fp[1])) { + re = /.$/; + w = w.replace(re,""); + } + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + re2 = new RegExp(s_v); + if (re2.test(stem)) { + w = stem; + re2 = /(at|bl|iz)$/; + re3 = new RegExp("([^aeiouylsz])\\1$"); + re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re2.test(w)) + w = w + "e"; + else if (re3.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + else if (re4.test(w)) + w = w + "e"; + } + } + + // Step 1c + re = /^(.+?)y$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(s_v); + if (re.test(stem)) + w = stem + "i"; + } + + // Step 2 + re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step2list[suffix]; + } + + // Step 3 + re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step3list[suffix]; + } + + // Step 4 + re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; + re2 = /^(.+?)(s|t)(ion)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + if (re.test(stem)) + w = stem; + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1] + fp[2]; + re2 = new RegExp(mgr1); + if (re2.test(stem)) + w = stem; + } + + // Step 5 + re = /^(.+?)e$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + re2 = new RegExp(meq1); + re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) + w = stem; + } + re = /ll$/; + re2 = new RegExp(mgr1); + if (re.test(w) && re2.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + + // and turn initial Y back to y + if (firstch == "y") + w = firstch.toLowerCase() + w.substr(1); + return w; + } +} + diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/minus.png b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/minus.png new file mode 100644 index 0000000000..d96755fdaf Binary files /dev/null and b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/minus.png differ diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/plus.png b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/plus.png new file mode 100644 index 0000000000..7107cec93a Binary files /dev/null and b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/plus.png differ diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/pygments.css b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/pygments.css new file mode 100644 index 0000000000..84ab3030a9 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/pygments.css @@ -0,0 +1,75 @@ +pre { line-height: 125%; } +td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +.highlight .hll { background-color: #ffffcc } +.highlight { background: #f8f8f8; } +.highlight .c { color: #3D7B7B; font-style: italic } /* Comment */ +.highlight .err { border: 1px solid #FF0000 } /* Error */ +.highlight .k { color: #008000; font-weight: bold } /* Keyword */ +.highlight .o { color: #666666 } /* Operator */ +.highlight .ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */ +.highlight .cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */ +.highlight .cp { color: #9C6500 } /* Comment.Preproc */ +.highlight .cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */ +.highlight .c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */ +.highlight .cs { color: #3D7B7B; font-style: italic } /* Comment.Special */ +.highlight .gd { color: #A00000 } /* Generic.Deleted */ +.highlight .ge { font-style: italic } /* Generic.Emph */ +.highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */ +.highlight .gr { color: #E40000 } /* Generic.Error */ +.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ +.highlight .gi { color: #008400 } /* Generic.Inserted */ +.highlight .go { color: #717171 } /* Generic.Output */ +.highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */ +.highlight .gs { font-weight: bold } /* Generic.Strong */ +.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ +.highlight .gt { color: #0044DD } /* Generic.Traceback */ +.highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */ +.highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ +.highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ +.highlight .kp { color: #008000 } /* Keyword.Pseudo */ +.highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ +.highlight .kt { color: #B00040 } /* Keyword.Type */ +.highlight .m { color: #666666 } /* Literal.Number */ +.highlight .s { color: #BA2121 } /* Literal.String */ +.highlight .na { color: #687822 } /* Name.Attribute */ +.highlight .nb { color: #008000 } /* Name.Builtin */ +.highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */ +.highlight .no { color: #880000 } /* Name.Constant */ +.highlight .nd { color: #AA22FF } /* Name.Decorator */ +.highlight .ni { color: #717171; font-weight: bold } /* Name.Entity */ +.highlight .ne { color: #CB3F38; font-weight: bold } /* Name.Exception */ +.highlight .nf { color: #0000FF } /* Name.Function */ +.highlight .nl { color: #767600 } /* Name.Label */ +.highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ +.highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */ +.highlight .nv { color: #19177C } /* Name.Variable */ +.highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ +.highlight .w { color: #bbbbbb } /* Text.Whitespace */ +.highlight .mb { color: #666666 } /* Literal.Number.Bin */ +.highlight .mf { color: #666666 } /* Literal.Number.Float */ +.highlight .mh { color: #666666 } /* Literal.Number.Hex */ +.highlight .mi { color: #666666 } /* Literal.Number.Integer */ +.highlight .mo { color: #666666 } /* Literal.Number.Oct */ +.highlight .sa { color: #BA2121 } /* Literal.String.Affix */ +.highlight .sb { color: #BA2121 } /* Literal.String.Backtick */ +.highlight .sc { color: #BA2121 } /* Literal.String.Char */ +.highlight .dl { color: #BA2121 } /* Literal.String.Delimiter */ +.highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */ +.highlight .s2 { color: #BA2121 } /* Literal.String.Double */ +.highlight .se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */ +.highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */ +.highlight .si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */ +.highlight .sx { color: #008000 } /* Literal.String.Other */ +.highlight .sr { color: #A45A77 } /* Literal.String.Regex */ +.highlight .s1 { color: #BA2121 } /* Literal.String.Single */ +.highlight .ss { color: #19177C } /* Literal.String.Symbol */ +.highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */ +.highlight .fm { color: #0000FF } /* Name.Function.Magic */ +.highlight .vc { color: #19177C } /* Name.Variable.Class */ +.highlight .vg { color: #19177C } /* Name.Variable.Global */ +.highlight .vi { color: #19177C } /* Name.Variable.Instance */ +.highlight .vm { color: #19177C } /* Name.Variable.Magic */ +.highlight .il { color: #666666 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/searchtools.js b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/searchtools.js new file mode 100644 index 0000000000..97d56a74d8 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/searchtools.js @@ -0,0 +1,566 @@ +/* + * searchtools.js + * ~~~~~~~~~~~~~~~~ + * + * Sphinx JavaScript utilities for the full-text search. + * + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ +"use strict"; + +/** + * Simple result scoring code. + */ +if (typeof Scorer === "undefined") { + var Scorer = { + // Implement the following function to further tweak the score for each result + // The function takes a result array [docname, title, anchor, descr, score, filename] + // and returns the new score. + /* + score: result => { + const [docname, title, anchor, descr, score, filename] = result + return score + }, + */ + + // query matches the full name of an object + objNameMatch: 11, + // or matches in the last dotted part of the object name + objPartialMatch: 6, + // Additive scores depending on the priority of the object + objPrio: { + 0: 15, // used to be importantResults + 1: 5, // used to be objectResults + 2: -5, // used to be unimportantResults + }, + // Used when the priority is not in the mapping. + objPrioDefault: 0, + + // query found in title + title: 15, + partialTitle: 7, + // query found in terms + term: 5, + partialTerm: 2, + }; +} + +const _removeChildren = (element) => { + while (element && element.lastChild) element.removeChild(element.lastChild); +}; + +/** + * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping + */ +const _escapeRegExp = (string) => + string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string + +const _displayItem = (item, searchTerms) => { + const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; + const docUrlRoot = DOCUMENTATION_OPTIONS.URL_ROOT; + const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; + const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX; + const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; + + const [docName, title, anchor, descr, score, _filename] = item; + + let listItem = document.createElement("li"); + let requestUrl; + let linkUrl; + if (docBuilder === "dirhtml") { + // dirhtml builder + let dirname = docName + "/"; + if (dirname.match(/\/index\/$/)) + dirname = dirname.substring(0, dirname.length - 6); + else if (dirname === "index/") dirname = ""; + requestUrl = docUrlRoot + dirname; + linkUrl = requestUrl; + } else { + // normal html builders + requestUrl = docUrlRoot + docName + docFileSuffix; + linkUrl = docName + docLinkSuffix; + } + let linkEl = listItem.appendChild(document.createElement("a")); + linkEl.href = linkUrl + anchor; + linkEl.dataset.score = score; + linkEl.innerHTML = title; + if (descr) + listItem.appendChild(document.createElement("span")).innerHTML = + " (" + descr + ")"; + else if (showSearchSummary) + fetch(requestUrl) + .then((responseData) => responseData.text()) + .then((data) => { + if (data) + listItem.appendChild( + Search.makeSearchSummary(data, searchTerms) + ); + }); + Search.output.appendChild(listItem); +}; +const _finishSearch = (resultCount) => { + Search.stopPulse(); + Search.title.innerText = _("Search Results"); + if (!resultCount) + Search.status.innerText = Documentation.gettext( + "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories." + ); + else + Search.status.innerText = _( + `Search finished, found ${resultCount} page(s) matching the search query.` + ); +}; +const _displayNextItem = ( + results, + resultCount, + searchTerms +) => { + // results left, load the summary and display it + // this is intended to be dynamic (don't sub resultsCount) + if (results.length) { + _displayItem(results.pop(), searchTerms); + setTimeout( + () => _displayNextItem(results, resultCount, searchTerms), + 5 + ); + } + // search finished, update title and status message + else _finishSearch(resultCount); +}; + +/** + * Default splitQuery function. Can be overridden in ``sphinx.search`` with a + * custom function per language. + * + * The regular expression works by splitting the string on consecutive characters + * that are not Unicode letters, numbers, underscores, or emoji characters. + * This is the same as ``\W+`` in Python, preserving the surrogate pair area. + */ +if (typeof splitQuery === "undefined") { + var splitQuery = (query) => query + .split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu) + .filter(term => term) // remove remaining empty strings +} + +/** + * Search Module + */ +const Search = { + _index: null, + _queued_query: null, + _pulse_status: -1, + + htmlToText: (htmlString) => { + const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html'); + htmlElement.querySelectorAll(".headerlink").forEach((el) => { el.remove() }); + const docContent = htmlElement.querySelector('[role="main"]'); + if (docContent !== undefined) return docContent.textContent; + console.warn( + "Content block not found. Sphinx search tries to obtain it via '[role=main]'. Could you check your theme or template." + ); + return ""; + }, + + init: () => { + const query = new URLSearchParams(window.location.search).get("q"); + document + .querySelectorAll('input[name="q"]') + .forEach((el) => (el.value = query)); + if (query) Search.performSearch(query); + }, + + loadIndex: (url) => + (document.body.appendChild(document.createElement("script")).src = url), + + setIndex: (index) => { + Search._index = index; + if (Search._queued_query !== null) { + const query = Search._queued_query; + Search._queued_query = null; + Search.query(query); + } + }, + + hasIndex: () => Search._index !== null, + + deferQuery: (query) => (Search._queued_query = query), + + stopPulse: () => (Search._pulse_status = -1), + + startPulse: () => { + if (Search._pulse_status >= 0) return; + + const pulse = () => { + Search._pulse_status = (Search._pulse_status + 1) % 4; + Search.dots.innerText = ".".repeat(Search._pulse_status); + if (Search._pulse_status >= 0) window.setTimeout(pulse, 500); + }; + pulse(); + }, + + /** + * perform a search for something (or wait until index is loaded) + */ + performSearch: (query) => { + // create the required interface elements + const searchText = document.createElement("h2"); + searchText.textContent = _("Searching"); + const searchSummary = document.createElement("p"); + searchSummary.classList.add("search-summary"); + searchSummary.innerText = ""; + const searchList = document.createElement("ul"); + searchList.classList.add("search"); + + const out = document.getElementById("search-results"); + Search.title = out.appendChild(searchText); + Search.dots = Search.title.appendChild(document.createElement("span")); + Search.status = out.appendChild(searchSummary); + Search.output = out.appendChild(searchList); + + const searchProgress = document.getElementById("search-progress"); + // Some themes don't use the search progress node + if (searchProgress) { + searchProgress.innerText = _("Preparing search..."); + } + Search.startPulse(); + + // index already loaded, the browser was quick! + if (Search.hasIndex()) Search.query(query); + else Search.deferQuery(query); + }, + + /** + * execute search (requires search index to be loaded) + */ + query: (query) => { + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const titles = Search._index.titles; + const allTitles = Search._index.alltitles; + const indexEntries = Search._index.indexentries; + + // stem the search terms and add them to the correct list + const stemmer = new Stemmer(); + const searchTerms = new Set(); + const excludedTerms = new Set(); + const highlightTerms = new Set(); + const objectTerms = new Set(splitQuery(query.toLowerCase().trim())); + splitQuery(query.trim()).forEach((queryTerm) => { + const queryTermLower = queryTerm.toLowerCase(); + + // maybe skip this "word" + // stopwords array is from language_data.js + if ( + stopwords.indexOf(queryTermLower) !== -1 || + queryTerm.match(/^\d+$/) + ) + return; + + // stem the word + let word = stemmer.stemWord(queryTermLower); + // select the correct list + if (word[0] === "-") excludedTerms.add(word.substr(1)); + else { + searchTerms.add(word); + highlightTerms.add(queryTermLower); + } + }); + + if (SPHINX_HIGHLIGHT_ENABLED) { // set in sphinx_highlight.js + localStorage.setItem("sphinx_highlight_terms", [...highlightTerms].join(" ")) + } + + // console.debug("SEARCH: searching for:"); + // console.info("required: ", [...searchTerms]); + // console.info("excluded: ", [...excludedTerms]); + + // array of [docname, title, anchor, descr, score, filename] + let results = []; + _removeChildren(document.getElementById("search-progress")); + + const queryLower = query.toLowerCase(); + for (const [title, foundTitles] of Object.entries(allTitles)) { + if (title.toLowerCase().includes(queryLower) && (queryLower.length >= title.length/2)) { + for (const [file, id] of foundTitles) { + let score = Math.round(100 * queryLower.length / title.length) + results.push([ + docNames[file], + titles[file] !== title ? `${titles[file]} > ${title}` : title, + id !== null ? "#" + id : "", + null, + score, + filenames[file], + ]); + } + } + } + + // search for explicit entries in index directives + for (const [entry, foundEntries] of Object.entries(indexEntries)) { + if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) { + for (const [file, id] of foundEntries) { + let score = Math.round(100 * queryLower.length / entry.length) + results.push([ + docNames[file], + titles[file], + id ? "#" + id : "", + null, + score, + filenames[file], + ]); + } + } + } + + // lookup as object + objectTerms.forEach((term) => + results.push(...Search.performObjectSearch(term, objectTerms)) + ); + + // lookup as search terms in fulltext + results.push(...Search.performTermsSearch(searchTerms, excludedTerms)); + + // let the scorer override scores with a custom scoring function + if (Scorer.score) results.forEach((item) => (item[4] = Scorer.score(item))); + + // now sort the results by score (in opposite order of appearance, since the + // display function below uses pop() to retrieve items) and then + // alphabetically + results.sort((a, b) => { + const leftScore = a[4]; + const rightScore = b[4]; + if (leftScore === rightScore) { + // same score: sort alphabetically + const leftTitle = a[1].toLowerCase(); + const rightTitle = b[1].toLowerCase(); + if (leftTitle === rightTitle) return 0; + return leftTitle > rightTitle ? -1 : 1; // inverted is intentional + } + return leftScore > rightScore ? 1 : -1; + }); + + // remove duplicate search results + // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept + let seen = new Set(); + results = results.reverse().reduce((acc, result) => { + let resultStr = result.slice(0, 4).concat([result[5]]).map(v => String(v)).join(','); + if (!seen.has(resultStr)) { + acc.push(result); + seen.add(resultStr); + } + return acc; + }, []); + + results = results.reverse(); + + // for debugging + //Search.lastresults = results.slice(); // a copy + // console.info("search results:", Search.lastresults); + + // print the results + _displayNextItem(results, results.length, searchTerms); + }, + + /** + * search for object names + */ + performObjectSearch: (object, objectTerms) => { + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const objects = Search._index.objects; + const objNames = Search._index.objnames; + const titles = Search._index.titles; + + const results = []; + + const objectSearchCallback = (prefix, match) => { + const name = match[4] + const fullname = (prefix ? prefix + "." : "") + name; + const fullnameLower = fullname.toLowerCase(); + if (fullnameLower.indexOf(object) < 0) return; + + let score = 0; + const parts = fullnameLower.split("."); + + // check for different match types: exact matches of full name or + // "last name" (i.e. last dotted part) + if (fullnameLower === object || parts.slice(-1)[0] === object) + score += Scorer.objNameMatch; + else if (parts.slice(-1)[0].indexOf(object) > -1) + score += Scorer.objPartialMatch; // matches in last name + + const objName = objNames[match[1]][2]; + const title = titles[match[0]]; + + // If more than one term searched for, we require other words to be + // found in the name/title/description + const otherTerms = new Set(objectTerms); + otherTerms.delete(object); + if (otherTerms.size > 0) { + const haystack = `${prefix} ${name} ${objName} ${title}`.toLowerCase(); + if ( + [...otherTerms].some((otherTerm) => haystack.indexOf(otherTerm) < 0) + ) + return; + } + + let anchor = match[3]; + if (anchor === "") anchor = fullname; + else if (anchor === "-") anchor = objNames[match[1]][1] + "-" + fullname; + + const descr = objName + _(", in ") + title; + + // add custom score for some objects according to scorer + if (Scorer.objPrio.hasOwnProperty(match[2])) + score += Scorer.objPrio[match[2]]; + else score += Scorer.objPrioDefault; + + results.push([ + docNames[match[0]], + fullname, + "#" + anchor, + descr, + score, + filenames[match[0]], + ]); + }; + Object.keys(objects).forEach((prefix) => + objects[prefix].forEach((array) => + objectSearchCallback(prefix, array) + ) + ); + return results; + }, + + /** + * search for full-text terms in the index + */ + performTermsSearch: (searchTerms, excludedTerms) => { + // prepare search + const terms = Search._index.terms; + const titleTerms = Search._index.titleterms; + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const titles = Search._index.titles; + + const scoreMap = new Map(); + const fileMap = new Map(); + + // perform the search on the required terms + searchTerms.forEach((word) => { + const files = []; + const arr = [ + { files: terms[word], score: Scorer.term }, + { files: titleTerms[word], score: Scorer.title }, + ]; + // add support for partial matches + if (word.length > 2) { + const escapedWord = _escapeRegExp(word); + Object.keys(terms).forEach((term) => { + if (term.match(escapedWord) && !terms[word]) + arr.push({ files: terms[term], score: Scorer.partialTerm }); + }); + Object.keys(titleTerms).forEach((term) => { + if (term.match(escapedWord) && !titleTerms[word]) + arr.push({ files: titleTerms[word], score: Scorer.partialTitle }); + }); + } + + // no match but word was a required one + if (arr.every((record) => record.files === undefined)) return; + + // found search word in contents + arr.forEach((record) => { + if (record.files === undefined) return; + + let recordFiles = record.files; + if (recordFiles.length === undefined) recordFiles = [recordFiles]; + files.push(...recordFiles); + + // set score for the word in each file + recordFiles.forEach((file) => { + if (!scoreMap.has(file)) scoreMap.set(file, {}); + scoreMap.get(file)[word] = record.score; + }); + }); + + // create the mapping + files.forEach((file) => { + if (fileMap.has(file) && fileMap.get(file).indexOf(word) === -1) + fileMap.get(file).push(word); + else fileMap.set(file, [word]); + }); + }); + + // now check if the files don't contain excluded terms + const results = []; + for (const [file, wordList] of fileMap) { + // check if all requirements are matched + + // as search terms with length < 3 are discarded + const filteredTermCount = [...searchTerms].filter( + (term) => term.length > 2 + ).length; + if ( + wordList.length !== searchTerms.size && + wordList.length !== filteredTermCount + ) + continue; + + // ensure that none of the excluded terms is in the search result + if ( + [...excludedTerms].some( + (term) => + terms[term] === file || + titleTerms[term] === file || + (terms[term] || []).includes(file) || + (titleTerms[term] || []).includes(file) + ) + ) + break; + + // select one (max) score for the file. + const score = Math.max(...wordList.map((w) => scoreMap.get(file)[w])); + // add result to the result list + results.push([ + docNames[file], + titles[file], + "", + null, + score, + filenames[file], + ]); + } + return results; + }, + + /** + * helper function to return a node containing the + * search summary for a given text. keywords is a list + * of stemmed words. + */ + makeSearchSummary: (htmlText, keywords) => { + const text = Search.htmlToText(htmlText); + if (text === "") return null; + + const textLower = text.toLowerCase(); + const actualStartPosition = [...keywords] + .map((k) => textLower.indexOf(k.toLowerCase())) + .filter((i) => i > -1) + .slice(-1)[0]; + const startWithContext = Math.max(actualStartPosition - 120, 0); + + const top = startWithContext === 0 ? "" : "..."; + const tail = startWithContext + 240 < text.length ? "..." : ""; + + let summary = document.createElement("p"); + summary.classList.add("context"); + summary.textContent = top + text.substr(startWithContext, 240).trim() + tail; + + return summary; + }, +}; + +_ready(Search.init); diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/sphinx_highlight.js b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/sphinx_highlight.js new file mode 100644 index 0000000000..aae669d7ea --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/sphinx_highlight.js @@ -0,0 +1,144 @@ +/* Highlighting utilities for Sphinx HTML documentation. */ +"use strict"; + +const SPHINX_HIGHLIGHT_ENABLED = true + +/** + * highlight a given string on a node by wrapping it in + * span elements with the given class name. + */ +const _highlight = (node, addItems, text, className) => { + if (node.nodeType === Node.TEXT_NODE) { + const val = node.nodeValue; + const parent = node.parentNode; + const pos = val.toLowerCase().indexOf(text); + if ( + pos >= 0 && + !parent.classList.contains(className) && + !parent.classList.contains("nohighlight") + ) { + let span; + + const closestNode = parent.closest("body, svg, foreignObject"); + const isInSVG = closestNode && closestNode.matches("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.classList.add(className); + } + + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + parent.insertBefore( + span, + parent.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling + ) + ); + node.nodeValue = val.substr(0, pos); + + if (isInSVG) { + const rect = document.createElementNS( + "http://www.w3.org/2000/svg", + "rect" + ); + const bbox = parent.getBBox(); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute("class", className); + addItems.push({ parent: parent, target: rect }); + } + } + } else if (node.matches && !node.matches("button, select, textarea")) { + node.childNodes.forEach((el) => _highlight(el, addItems, text, className)); + } +}; +const _highlightText = (thisNode, text, className) => { + let addItems = []; + _highlight(thisNode, addItems, text, className); + addItems.forEach((obj) => + obj.parent.insertAdjacentElement("beforebegin", obj.target) + ); +}; + +/** + * Small JavaScript module for the documentation. + */ +const SphinxHighlight = { + + /** + * highlight the search words provided in localstorage in the text + */ + highlightSearchWords: () => { + if (!SPHINX_HIGHLIGHT_ENABLED) return; // bail if no highlight + + // get and clear terms from localstorage + const url = new URL(window.location); + const highlight = + localStorage.getItem("sphinx_highlight_terms") + || url.searchParams.get("highlight") + || ""; + localStorage.removeItem("sphinx_highlight_terms") + url.searchParams.delete("highlight"); + window.history.replaceState({}, "", url); + + // get individual terms from highlight string + const terms = highlight.toLowerCase().split(/\s+/).filter(x => x); + if (terms.length === 0) return; // nothing to do + + // There should never be more than one element matching "div.body" + const divBody = document.querySelectorAll("div.body"); + const body = divBody.length ? divBody[0] : document.querySelector("body"); + window.setTimeout(() => { + terms.forEach((term) => _highlightText(body, term, "highlighted")); + }, 10); + + const searchBox = document.getElementById("searchbox"); + if (searchBox === null) return; + searchBox.appendChild( + document + .createRange() + .createContextualFragment( + '" + ) + ); + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords: () => { + document + .querySelectorAll("#searchbox .highlight-link") + .forEach((el) => el.remove()); + document + .querySelectorAll("span.highlighted") + .forEach((el) => el.classList.remove("highlighted")); + localStorage.removeItem("sphinx_highlight_terms") + }, + + initEscapeListener: () => { + // only install a listener if it is really needed + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) return; + + document.addEventListener("keydown", (event) => { + // bail for input elements + if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; + // bail with special keys + if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) return; + if (DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS && (event.key === "Escape")) { + SphinxHighlight.hideSearchWords(); + event.preventDefault(); + } + }); + }, +}; + +_ready(SphinxHighlight.highlightSearchWords); +_ready(SphinxHighlight.initEscapeListener); diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/tabs.css b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/tabs.css new file mode 100644 index 0000000000..957ba60d69 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/tabs.css @@ -0,0 +1,89 @@ +.sphinx-tabs { + margin-bottom: 1rem; +} + +[role="tablist"] { + border-bottom: 1px solid #a0b3bf; +} + +.sphinx-tabs-tab { + position: relative; + font-family: Lato,'Helvetica Neue',Arial,Helvetica,sans-serif; + color: #1D5C87; + line-height: 24px; + margin: 0; + font-size: 16px; + font-weight: 400; + background-color: rgba(255, 255, 255, 0); + border-radius: 5px 5px 0 0; + border: 0; + padding: 1rem 1.5rem; + margin-bottom: 0; +} + +.sphinx-tabs-tab[aria-selected="true"] { + font-weight: 700; + border: 1px solid #a0b3bf; + border-bottom: 1px solid white; + margin: -1px; + background-color: white; +} + +.sphinx-tabs-tab:focus { + z-index: 1; + outline-offset: 1px; +} + +.sphinx-tabs-panel { + position: relative; + padding: 1rem; + border: 1px solid #a0b3bf; + margin: 0px -1px -1px -1px; + border-radius: 0 0 5px 5px; + border-top: 0; + background: white; +} + +.sphinx-tabs-panel.code-tab { + padding: 0.4rem; +} + +.sphinx-tab img { + margin-bottom: 24 px; +} + +/* Dark theme preference styling */ + +@media (prefers-color-scheme: dark) { + body[data-theme="auto"] .sphinx-tabs-panel { + color: white; + background-color: rgb(50, 50, 50); + } + + body[data-theme="auto"] .sphinx-tabs-tab { + color: white; + background-color: rgba(255, 255, 255, 0.05); + } + + body[data-theme="auto"] .sphinx-tabs-tab[aria-selected="true"] { + border-bottom: 1px solid rgb(50, 50, 50); + background-color: rgb(50, 50, 50); + } +} + +/* Explicit dark theme styling */ + +body[data-theme="dark"] .sphinx-tabs-panel { + color: white; + background-color: rgb(50, 50, 50); +} + +body[data-theme="dark"] .sphinx-tabs-tab { + color: white; + background-color: rgba(255, 255, 255, 0.05); +} + +body[data-theme="dark"] .sphinx-tabs-tab[aria-selected="true"] { + border-bottom: 2px solid rgb(50, 50, 50); + background-color: rgb(50, 50, 50); +} diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/tabs.js b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/tabs.js new file mode 100644 index 0000000000..48dc303c8c --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/static/tabs.js @@ -0,0 +1,145 @@ +try { + var session = window.sessionStorage || {}; +} catch (e) { + var session = {}; +} + +window.addEventListener("DOMContentLoaded", () => { + const allTabs = document.querySelectorAll('.sphinx-tabs-tab'); + const tabLists = document.querySelectorAll('[role="tablist"]'); + + allTabs.forEach(tab => { + tab.addEventListener("click", changeTabs); + }); + + tabLists.forEach(tabList => { + tabList.addEventListener("keydown", keyTabs); + }); + + // Restore group tab selection from session + const lastSelected = session.getItem('sphinx-tabs-last-selected'); + if (lastSelected != null) selectNamedTabs(lastSelected); +}); + +/** + * Key focus left and right between sibling elements using arrows + * @param {Node} e the element in focus when key was pressed + */ +function keyTabs(e) { + const tab = e.target; + let nextTab = null; + if (e.keyCode === 39 || e.keyCode === 37) { + tab.setAttribute("tabindex", -1); + // Move right + if (e.keyCode === 39) { + nextTab = tab.nextElementSibling; + if (nextTab === null) { + nextTab = tab.parentNode.firstElementChild; + } + // Move left + } else if (e.keyCode === 37) { + nextTab = tab.previousElementSibling; + if (nextTab === null) { + nextTab = tab.parentNode.lastElementChild; + } + } + } + + if (nextTab !== null) { + nextTab.setAttribute("tabindex", 0); + nextTab.focus(); + } +} + +/** + * Select or deselect clicked tab. If a group tab + * is selected, also select tab in other tabLists. + * @param {Node} e the element that was clicked + */ +function changeTabs(e) { + // Use this instead of the element that was clicked, in case it's a child + const notSelected = this.getAttribute("aria-selected") === "false"; + const positionBefore = this.parentNode.getBoundingClientRect().top; + const notClosable = !this.parentNode.classList.contains("closeable"); + + deselectTabList(this); + + if (notSelected || notClosable) { + selectTab(this); + const name = this.getAttribute("name"); + selectNamedTabs(name, this.id); + + if (this.classList.contains("group-tab")) { + // Persist during session + session.setItem('sphinx-tabs-last-selected', name); + } + } + + const positionAfter = this.parentNode.getBoundingClientRect().top; + const positionDelta = positionAfter - positionBefore; + // Scroll to offset content resizing + window.scrollTo(0, window.scrollY + positionDelta); +} + +/** + * Select tab and show associated panel. + * @param {Node} tab tab to select + */ +function selectTab(tab) { + tab.setAttribute("aria-selected", true); + + // Show the associated panel + document + .getElementById(tab.getAttribute("aria-controls")) + .removeAttribute("hidden"); +} + +/** + * Hide the panels associated with all tabs within the + * tablist containing this tab. + * @param {Node} tab a tab within the tablist to deselect + */ +function deselectTabList(tab) { + const parent = tab.parentNode; + const grandparent = parent.parentNode; + + Array.from(parent.children) + .forEach(t => t.setAttribute("aria-selected", false)); + + Array.from(grandparent.children) + .slice(1) // Skip tablist + .forEach(panel => panel.setAttribute("hidden", true)); +} + +/** + * Select grouped tabs with the same name, but no the tab + * with the given id. + * @param {Node} name name of grouped tab to be selected + * @param {Node} clickedId id of clicked tab + */ +function selectNamedTabs(name, clickedId=null) { + const groupedTabs = document.querySelectorAll(`.sphinx-tabs-tab[name="${name}"]`); + const tabLists = Array.from(groupedTabs).map(tab => tab.parentNode); + + tabLists + .forEach(tabList => { + // Don't want to change the tabList containing the clicked tab + const clickedTab = tabList.querySelector(`[id="${clickedId}"]`); + if (clickedTab === null ) { + // Select first tab with matching name + const tab = tabList.querySelector(`.sphinx-tabs-tab[name="${name}"]`); + deselectTabList(tab); + selectTab(tab); + } + }) +} + +if (typeof exports === 'undefined') { + exports = {}; +} + +exports.keyTabs = keyTabs; +exports.changeTabs = changeTabs; +exports.selectTab = selectTab; +exports.deselectTabList = deselectTabList; +exports.selectNamedTabs = selectNamedTabs; diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/statistics.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/statistics.html new file mode 100644 index 0000000000..5091f61c80 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/statistics.html @@ -0,0 +1,182 @@ + + + + + + + + + + + + + Statistics — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    +
      +
    • + +
    • +
    • +
    +
    +
    +
    +
    + +
    +

    Statistics

    +

    cvc5 collects a wide variety of statistics that give some insight on how it solves a particular input. +The statistics can be inspected via the Solver::getStatistics() API +function, or printed using the following options:

    +
      +
    • stats prints public statistics with non-default values

    • +
    • stats-all also prints statistics with default values

    • +
    • stats-internal also prints internal statistics

    • +
    • stats-every-query prints statistics after every (incremental) check

    • +
    +

    Statistics collection is only available if the ENABLE_STATISTICS cmake option +is set to true, which is the case for all but competition builds. +Statistics, obtained via Solver::getStatistics(), +are always a snapshot of the statistics values that is decoupled from the +solver object and will not change when the solver is used again or deallocated. +Individual statistics values can be obtained via the API either by iterating over the +Statistics object or by querying it by name.

    +

    A statistic value (of type Stat) has two general +properties, isInternal() and +isDefault(). +isInternal() indicates whether a +statistic is considered public or internal. Public statistics are considered to +be part of the public API and should therefore remain stable across different +minor versions of cvc5. There is no such guarantee for internal statistics. +isDefault() checks whether the +current value of a statistics is still the default value, or whether its value +was changed.

    +

    A statistic value can be any of the following types:

    +
      +
    • integer, more specifically a signed 64-bit integer (int64_t in C++).

    • +
    • double, a 64-bit floating-point value (double in C++).

    • +
    • string, a character sequence (std::string in C++). Timer statistics are +exported as string values as well, given as "<value>ms".

    • +
    • histogram, a mapping from some integral or enumeration type to their count. +The integral or enumeration types are exported as string representations +(std::map<std::string, uint64_t> in C++).

    • +
    +

    Printing statistics on the command line looks like this:

    +
    $ bin/cvc5 --stats ../test/regress/cli/regress0/auflia/bug336.smt2
    +unsat
    +driver::filename = ../test/regress/cli/regress0/auflia/bug336.smt2
    +global::totalTime = 3ms
    +theory::arith::inferencesLemma = { ARITH_SPLIT_DEQ: 1 }
    +theory::arrays::inferencesFact = { ARRAYS_READ_OVER_WRITE_1: 2 }
    +theory::arrays::inferencesLemma = { ARRAYS_EXT: 1, ARRAYS_READ_OVER_WRITE: 3 }
    +theory::builtin::inferencesLemma = { COMBINATION_SPLIT: 1 }
    +cvc5::CONSTANT = { UNKNOWN_TYPE_CONSTANT: 4, integer type: 4 }
    +cvc5::TERM = { AND: 1, APPLY_UF: 4, EQUAL: 4, NOT: 2, STORE: 2 }
    +cvc5::VARIABLE = { Boolean type: 5 }
    +
    +
    +

    Public statistics include some general information about the input file +(driver::filename and *), the overall runtime (global::totalTime) +and the lemmas each theory sent to the core solver (theory::*).

    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/theories/bags.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/theories/bags.html new file mode 100644 index 0000000000..950791fc79 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/theories/bags.html @@ -0,0 +1,654 @@ + + + + + + + + + + + + + Theory Reference: Bags — cvc5 documentation + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Theory Reference: Bags

    +
    +

    Finite Bags

    +

    cvc5 supports the theory of finite bags using the following sorts, constants, +functions and predicates.

    +

    For the C++ API examples in the table below, we assume that we have created +a cvc5::Solver solver object.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    SMTLIB language

    C++ API

    Logic String

    (set-logic ALL)

    solver.setLogic("ALL");

    Sort

    (Bag <Sort>)

    solver.mkBagSort(cvc5::Sort elementSort);

    Constants

    (declare-const X (Bag String))

    Sort s = solver.mkBagSort(solver.getStringSort());

    +

    Term X = solver.mkConst(s, "X");

    +

    Union disjoint

    (bag.union_disjoint X Y)

    Term Y = solver.mkConst(s, "Y");

    +

    Term t = solver.mkTerm(Kind::BAG_UNION_DISJOINT, {X, Y});

    +

    Union max

    (bag.union_max X Y)

    Term Y = solver.mkConst(s, "Y");

    +

    Term t = solver.mkTerm(Kind::BAG_UNION_MAX, {X, Y});

    +

    Intersection min

    (bag.inter_min X Y)

    Term t = solver.mkTerm(Kind::BAG_INTER_MIN, {X, Y});

    Difference subtract

    (bag.difference_subtract X Y)

    Term t = solver.mkTerm(Kind::BAG_DIFFERENCE_SUBTRACT, {X, Y});

    Duplicate elimination

    (bag.setof X)

    Term t = solver.mkTerm(Kind::BAG_SETOF, {X});

    Membership

    (bag.member x X)

    Term x = solver.mkConst(solver.getStringSort(), "x");

    +

    Term t = solver.mkTerm(Kind::BAG_MEMBER, {x, X});

    +

    Subbag

    (bag.subbag X Y)

    Term t = solver.mkTerm(Kind::BAG_SUBBAG, {X, Y});

    Emptybag

    (as bag.empty (Bag Int)) | Term t = solver.mkEmptyBag(s);

    Make bag

    (bag "a" 3)

    +
    Term t = solver.mkTerm(Kind::BAG_MAKE,

    {solver.mkString("a"), solver.mkInteger(1)});

    +
    +
    +
    +
    +

    Semantics

    +

    A bag (or a multiset) \(m\) can be defined as a function from the domain of its elements +to the set of natural numbers (i.e., \(m : D \rightarrow \mathbb{N}\)), +where \(m(e)\) represents the multiplicity of element \(e\) in the bag \(m\).

    +

    The semantics of supported bag operators is given in the table below.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Bag operator

    cvc5 operator

    Semantics

    union disjoint \(m_1 \uplus m_2\)

    bag.union_disjoint

    \(\forall e. \; (m_1 \uplus m_2)(e) = m_1(e) + m_2 (e)\)

    union max \(m_1 \cup m_2\)

    bag.union_max

    \(\forall e. \; (m_1 \cup m_2)(e) = max(m_1(e), m_2 (e))\)

    intersection \(m_1 \cap m_2\)

    bag.inter_min

    \(\forall e. \; (m_1 \cap m_2)(e) = min(m_1(e), m_2 (e))\)

    difference subtract \(m_1 \setminus m_2\)

    bag.difference_subtract

    \(\forall e. \; (m_1 \setminus m_2)(e) = max(m_1(e) - m_2 (e), 0)\)

    difference remove \(m_1 \setminus\setminus m_2\)

    bag.difference_remove

    \(\forall e. \; (m_1 \setminus\setminus m_2)(e) = ite(m_2(e) = 0, m_1(e), 0)\)

    setof \(\delta(m)\)

    bag.setof

    \(\forall e. \; (\delta(m))(e) = ite(1 \leq m(e), 1, 0)\)

    subbag \(m_1 \subseteq m_2\)

    bag.subbag

    \(\forall e. \; m_1(e) \leq m_2(e)\)

    equality \(m_1 = m_2\)

    =

    \(\forall e. \; m_1(e) = m_2(e)\)

    membership \(e \in m\)

    bag.member

    \(m(e) \geq 1\)

    +

    Below is a more extensive example on how to use finite bags:

    +
    +

    examples/api/cpp/bags.cpp

    +
      1/******************************************************************************
    +  2 * Top contributors (to current version):
    +  3 *   Mudathir Mohamed, Aina Niemetz
    +  4 *
    +  5 * This file is part of the cvc5 project.
    +  6 *
    +  7 * Copyright (c) 2009-2024 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 * A simple demonstration of reasoning about bags.
    + 14 */
    + 15
    + 16#include <cvc5/cvc5.h>
    + 17
    + 18#include <iostream>
    + 19
    + 20using namespace std;
    + 21using namespace cvc5;
    + 22
    + 23int main()
    + 24{
    + 25  TermManager tm;
    + 26  Solver slv(tm);
    + 27  slv.setLogic("ALL");
    + 28  // Produce models
    + 29  slv.setOption("produce-models", "true");
    + 30  slv.setOption("incremental", "true");
    + 31
    + 32  Sort bag = tm.mkBagSort(tm.getStringSort());
    + 33  Term A = tm.mkConst(bag, "A");
    + 34  Term B = tm.mkConst(bag, "B");
    + 35  Term C = tm.mkConst(bag, "C");
    + 36  Term x = tm.mkConst(tm.getStringSort(), "x");
    + 37
    + 38  Term intersectionAC = tm.mkTerm(Kind::BAG_INTER_MIN, {A, C});
    + 39  Term intersectionBC = tm.mkTerm(Kind::BAG_INTER_MIN, {B, C});
    + 40
    + 41  // union disjoint does not distribute over intersection
    + 42  {
    + 43    Term unionDisjointAB = tm.mkTerm(Kind::BAG_UNION_DISJOINT, {A, B});
    + 44    Term lhs = tm.mkTerm(Kind::BAG_INTER_MIN, {unionDisjointAB, C});
    + 45    Term rhs =
    + 46        tm.mkTerm(Kind::BAG_UNION_DISJOINT, {intersectionAC, intersectionBC});
    + 47    Term guess = tm.mkTerm(Kind::EQUAL, {lhs, rhs});
    + 48    cout << "cvc5 reports: " << guess.notTerm() << " is "
    + 49         << slv.checkSatAssuming(guess.notTerm()) << "." << endl;
    + 50
    + 51    cout << A << ": " << slv.getValue(A) << endl;
    + 52    cout << B << ": " << slv.getValue(B) << endl;
    + 53    cout << C << ": " << slv.getValue(C) << endl;
    + 54    cout << lhs << ": " << slv.getValue(lhs) << endl;
    + 55    cout << rhs << ": " << slv.getValue(rhs) << endl;
    + 56  }
    + 57
    + 58  // union max distributes over intersection
    + 59  {
    + 60    Term unionMaxAB = tm.mkTerm(Kind::BAG_UNION_MAX, {A, B});
    + 61    Term lhs = tm.mkTerm(Kind::BAG_INTER_MIN, {unionMaxAB, C});
    + 62    Term rhs = tm.mkTerm(Kind::BAG_UNION_MAX, {intersectionAC, intersectionBC});
    + 63    Term theorem = tm.mkTerm(Kind::EQUAL, {lhs, rhs});
    + 64    cout << "cvc5 reports: " << theorem.notTerm() << " is "
    + 65         << slv.checkSatAssuming(theorem.notTerm()) << "." << endl;
    + 66  }
    + 67
    + 68  // Verify emptbag is a subbag of any bag
    + 69  {
    + 70    Term emptybag = tm.mkEmptyBag(bag);
    + 71    Term theorem = tm.mkTerm(Kind::BAG_SUBBAG, {emptybag, A});
    + 72
    + 73    cout << "cvc5 reports: " << theorem.notTerm() << " is "
    + 74         << slv.checkSatAssuming(theorem.notTerm()) << "." << endl;
    + 75  }
    + 76
    + 77  // find an element with multiplicity 4 in the disjoint union of
    + 78  // ; {|"a", "a", "b", "b", "b"|} and {|"b", "c", "c"|}
    + 79
    + 80  {
    + 81    Term one = tm.mkInteger(1);
    + 82    Term two = tm.mkInteger(2);
    + 83    Term three = tm.mkInteger(3);
    + 84    Term four = tm.mkInteger(4);
    + 85    Term a = tm.mkString("a");
    + 86    Term b = tm.mkString("b");
    + 87    Term c = tm.mkString("c");
    + 88
    + 89    Term bag_a_2 = tm.mkTerm(Kind::BAG_MAKE, {a, two});
    + 90    Term bag_b_3 = tm.mkTerm(Kind::BAG_MAKE, {b, three});
    + 91    Term bag_b_1 = tm.mkTerm(Kind::BAG_MAKE, {b, one});
    + 92    Term bag_c_2 = tm.mkTerm(Kind::BAG_MAKE, {c, two});
    + 93    Term bag_a_2_b_3 = tm.mkTerm(Kind::BAG_UNION_DISJOINT, {bag_a_2, bag_b_3});
    + 94    Term bag_b_1_c_2 = tm.mkTerm(Kind::BAG_UNION_DISJOINT, {bag_b_1, bag_c_2});
    + 95    Term union_disjoint =
    + 96        tm.mkTerm(Kind::BAG_UNION_DISJOINT, {bag_a_2_b_3, bag_b_1_c_2});
    + 97
    + 98    Term count_x = tm.mkTerm(Kind::BAG_COUNT, {x, union_disjoint});
    + 99    Term e = tm.mkTerm(Kind::EQUAL, {four, count_x});
    +100    Result result = slv.checkSatAssuming(e);
    +101
    +102    cout << "cvc5 reports: " << e << " is " << result << "." << endl;
    +103    if (result.isSat())
    +104    {
    +105      cout << x << ": " << slv.getValue(x) << endl;
    +106    }
    +107  }
    +108}
    +
    +
    +
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/theories/datatypes.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/theories/datatypes.html new file mode 100644 index 0000000000..48b00fcd95 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/theories/datatypes.html @@ -0,0 +1,446 @@ + + + + + + + + + + + + + Theory Reference: Datatypes — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Theory Reference: Datatypes

    +

    cvc5 implements some extensions to the support for datatypes in SMT-LIB 2.

    +
    +

    Logic

    +

    To enable cvc5’s decision procedure for datatypes, include DT in the logic:

    +
    (set-logic QF_DT)
    +
    +
    +

    Alternatively, use the ALL logic:

    +
    (set-logic ALL)
    +
    +
    +
    +
    +

    Syntax

    +

    cvc5 supports the following syntax for declaring mutually recursive blocks of +datatypes in *.smt2 input files in the smt lib 2.6 format:

    +
    (declare-datatypes ((D1 n1) ... (Dk nk))
    + (((C1 (S11 T1) ... (S1i Ti)) ... (Cj ... ))
    +  ...
    +  ((...) ... (...)))
    +
    +
    +

    where D1 ... Dk are datatype types, C1 ... Cj are the constructors for +datatype D1, +S11 ... S1i are the selectors (or “destructors”) of constructor C1, and +each T1 ... Ti is a previously declared type or one of D1 ... Dk. +The numbers n1 ... nk denote the number of type +parameters for the datatype, where 0 is used for non-parametric datatypes.

    +

    In addition to declaring symbols for constructors and selectors, the above +command also allows for tester (or “discriminator”) indexed symbols of the form +(_ is C) for each constructor C, which are unary predicates which +evaluate to true iff their argument has top-symbol C. It also allows for +updater indexed symbols of the form (_ update Sij) for each selector Sij, +whose semantics are described below.

    +
    +
    +

    Semantics

    +

    The decision procedure for inductive datatypes is described in +[BST07].

    +
    +
    +

    Example Declarations

    +

    An enumeration:

    +
    (declare-datatypes ((Color 0))
    + (((Red) (Black))))
    +
    +
    +

    A List of Int with cons and nil as constructors:

    +
    (declare-datatypes ((list 0))
    + (((cons (head Int) (tail list)) (nil))))
    +
    +
    +

    A parametric List of T’s:

    +
    (declare-datatypes ((list 1))
    + ((par (T) ((cons (head T) (tail (list T))) (nil)))))
    +
    +
    +

    Mutual recursion:

    +
    (declare-datatypes ((list 0) (tree 0))
    + (((cons (head tree) (tail list)) (nil))
    +  ((node (data Int) (children list)))))
    +
    +
    +

    A (non-recursive) record type:

    +
    (declare-datatypes ((record 0))
    + (((rec (fname String) (lname String) (id Int)))))
    +
    +
    +
    +
    +

    Examples

    +
    (declare-datatypes ((list 0))
    +   (((cons (head Int) (tail list)) (nil))))
    + (declare-const a list)
    + (declare-const b list)
    + (assert (and (= (tail a) b) (not ((_ is nil) b)) (> (head b) 0)))
    + (check-sat)
    +
    +
    +
    (declare-datatypes ((record 0))
    +  (((rec (fname String) (lname String) (id Int)))))
    +(declare-const x record)
    +(assert (and (= (fname x) "John") (= (lname x) "Smith")))
    +(check-sat)
    +
    +
    +
    +
    +

    Datatype Updaters

    +

    Datatype updaters are a (non-standard) extension available in datatype logics. +The term:

    +
    ((_ update Sij) t u)
    +
    +
    +

    is equivalent to replacing the field of t denoted by the selector Sij +with the value u, or t itself if that selector does not apply to the +constructor symbol of t. For example, for the list datatype, we have that:

    +
    ((_ update head) (cons 4 nil) 7) = (cons 7 nil)
    +((_ update tail) (cons 4 nil) (cons 5 nil)) = (cons 4 (cons 5 nil))
    +((_ update head) nil 5) = nil
    +
    +
    +

    Note that datatype updaters can be seen as syntax sugar for an if-then-else +term that checks whether the constructor of t is the same as the one +associated with the given selector.

    +
    +
    +

    Parametric Datatypes

    +

    Instances of parametric datatypes must have their arguments instantiated with +concrete types. For instance, in the example:

    +
    (declare-datatypes ((list 1)) ((par (T) (cons (head T) (tail (list T))) (nil))))
    +
    +
    +

    To declare a list of Int, use the command:

    +
    (declare-const f (list Int))
    +
    +
    +

    Use of constructors that are ambiguously typed must be cast to a concrete type, +for instance all occurrences of nil for the above datatype must be cast with +the syntax:

    +
    (as nil (list Int))
    +
    +
    +
    +
    +

    Tuples

    +

    Tuples are a particular instance of an inductive datatype. cvc5 supports +special syntax for tuples as an extension of the SMT-LIB version 2 format. +For example:

    +
    (declare-const t (Tuple Int Int))
    +(assert (= ((_ tuple.select 0) t) 3))
    +(assert (not (= t (tuple 3 4))))
    +
    +
    +
    +
    +

    Codatatypes

    +

    cvc5 also supports co-inductive datatypes, as described in +[RB15].

    +

    The syntax for declaring mutually recursive coinductive datatype blocks is +identical to inductive datatypes, except that declare-datatypes is replaced +by declare-codatatypes. For example, the following declares the type denote +streams of Int:

    +
    (declare-codatatypes ((stream 0))
    + (((cons (head Int) (tail stream)))))
    +
    +
    +
    +
    +

    Syntax/API

    +

    For the C++ API examples in the table below, we assume that we have created +a cvc5::Solver solver object.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    SMTLIB language

    C++ API

    Logic String

    (set-logic QF_DT)

    solver.setLogic("QF_DT");

    Datatype Sort

    (declare-datatype ...)

    Sort s = solver.mkDatatypeSort(...);

    Datatype Sorts

    (declare-datatypes ...)

    std::vector<Sort> s = solver.mkDatatypeSorts(...);

    Constructor

    (Ci <Term_1>, ..., <Term_n>)

    Sort s = solver.mkDatatypeSort(...);

    +

    Datatype dt = s.getDatatype();

    +

    Term ci = dt[i].getTerm();

    +

    Term r = solver.mkTerm(Kind::APPLY_CONSTRUCTOR, {ci, <Term_1>, ..., <Term_n>});

    +

    Selector

    (Sij t)

    Sort s = solver.mkDatatypeSort(...);

    +

    Datatype dt = s.getDatatype();

    +

    Term sij = dt[i].getSelector(j).getTerm();

    +

    Term r = solver.mkTerm(Kind::APPLY_SELECTOR, {sij, t});

    +

    Updater

    ((_ update Sij) t u)

    Sort s = solver.mkDatatypeSort(...);

    +

    Datatype dt = s.getDatatype();

    +

    Term upd = dt[i].getSelector(j).getUpdaterTerm();

    +

    Term r = solver.mkTerm(Kind::APPLY_UPDATER, {upd, t, u});

    +

    Tester

    ((_ is Ci) t)

    Sort s = solver.mkDatatypeSort(...);

    +

    Datatype dt = s.getDatatype();

    +

    Term upd = dt[i].getTesterTerm();

    +

    Term r = solver.mkTerm(Kind::APPLY_TESTER, {upd, t, u});

    +

    Tuple Sort

    (Tuple <Sort_1>, ..., <Sort_n>)

    std::vector<cvc5::Sort> sorts = { ... };

    +

    Sort s = solver.mkTupleSort(sorts);

    +

    (declare-const t (Tuple Int Int))

    Sort s_int = solver.getIntegerSort();

    +

    Sort s = solver.mkTupleSort({s_int, s_int});

    +

    Term t = solver.mkConst(s, "t");

    +

    Tuple Constructor

    (tuple  <Term_1>, ..., <Term_n>)

    Term r = solver.mkTuple({<Term_1>, ..., <Term_n>});

    Unit Tuple Sort

    UnitTuple

    Sort s = solver.mkTupleSort({});

    Tuple Unit

    tuple.unit

    Term r = solver.mkTuple({});

    Tuple Selector

    ((_ tuple.select i) t)

    Sort s = solver.mkTupleSort(sorts);

    +

    Datatype dt = s.getDatatype();

    +

    Term sel = dt[0].getSelector(i).getTerm();

    +

    Term r = solver.mkTerm(Kind::APPLY_SELECTOR, {sel, t});

    +

    Tuple Updater

    ((_ tuple.update i) t u)

    Sort s = solver.mkTupleSort(sorts);

    +

    Datatype dt = s.getDatatype();

    +

    Term upd = dt[0].getSelector(i).getUpdaterTerm();

    +

    Term r = solver.mkTerm(Kind::APPLY_UPDATER, {upd, t, u});

    +

    Tuple Projection

    ((_ tuple.project i1 ... in) t)

    Sort s = solver.mkTupleSort(sorts);

    +

    Datatype dt = s.getDatatype();

    +

    Term proj = solver.mkOp(Kind::TUPLE_PROJECT, {i1, ..., in});

    +

    Term r = solver.mkTerm(Kind::TUPLE_PROJECT, {proj, t});

    +

    Record Sort

    n/a

    Sort s = mkRecordSort(const std::vector<std::pair<std::string, Sort>>& fields);

    n/a

    std::vector<std::pair<std::string, Sort>> fields;

    +

    fields.push_back(std::pair<std::string, Sort>("fst", solver.getIntegerSort()));

    +

    fields.push_back(std::pair<std::string, Sort>("snd", solver.getIntegerSort()));

    +

    Sort s = mkRecordSort(fields);

    +

    Record Constructor

    n/a

    Sort s = mkRecordSort(fields);

    +

    Datatype dt = s.getDatatype();

    +

    Term c = dt[0].getTerm();

    +

    Term r = solver.mkTerm(Kind::APPLY_CONSTRUCTOR, {c, <Term_1>, ..., <Term_n>});

    +

    Record Selector

    n/a

    Sort s = mkRecordSort(fields);

    +

    Datatype dt = s.getDatatype();

    +

    Term sel = dt[0].getSelector(name).getSelectorTerm();

    +

    Term r = solver.mkTerm(Kind::APPLY_SELECTOR, {sel, t});

    +

    Record Updater

    n/a

    Sort s = solver.mkRecordSort(sorts);

    +

    Datatype dt = s.getDatatype();

    +

    Term upd = dt[0].getSelector(name).getUpdaterTerm();

    +

    Term r = solver.mkTerm(Kind::APPLY_UPDATER, {upd, t, u});

    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/theories/finite_field.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/theories/finite_field.html new file mode 100644 index 0000000000..70f9e73a02 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/theories/finite_field.html @@ -0,0 +1,302 @@ + + + + + + + + + + + + + Theory Reference: Finite Fields — cvc5 documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Theory Reference: Finite Fields

    +
    +

    Note

    +
    +
    Currently, cvc5 only supports finite fields of prime order p.

    Such a field is isomorphic to the integers modulo p.

    +
    +
    +
    +
    +

    Semantics

    +

    First, for integer \(x\) and positive integer \(y\), define \((x \bmod y)\) as the unique integer \(r\) such that \(y = qx + r\) (where \(q\) is an integer) and \(0 \le r < q\). +NB: This is the remainder when so-called “floor division” is performed.

    +

    We interpret field sorts as prime fields and field terms as integers. In the following, let:

    +
      +
    • N be an integer numeral and \(N\) be its integer

    • +
    • p be a prime numeral and \(p\) be its prime

    • +
    • F be an SMT field sort (of order \(p\))

    • +
    • x and y be SMT field terms (of the same sort F) with interpretations \(x\) and \(y\)

    • +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    SMT construct

    Semantics

    Notes

    (_ FiniteField p)

    the field of order \(p\)

    represented as the integers modulo \(p\)

    (as ffN F)

    the integer \((N \bmod p)\)

    (ff.add x y)

    the integer \(((x + y) \bmod p)\)

    NB: ff.add is an n-ary operator

    (ff.mul x y)

    the integer \(((x \times y) \bmod p)\)

    NB: ff.mul is an n-ary operator

    (= x y)

    the Boolean \(x = y\)

    +
    +
    +

    Syntax

    +

    For the C++ API examples in the table below, we assume that we have created +a Solver object solver.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    SMT-LIB language

    C++ API

    Logic String

    use FF for finite fields

    +

    (set-logic QF_FF)

    +

    use FF for finite fields

    +

    solver.setLogic("QF_FF");

    +

    Sort

    (_ FiniteField <Prime Order>)

    solver.mkFiniteFieldSort(<Prime Order As String>);

    Constants

    (declare-const X (_ FiniteField 7))

    Sort s = solver.mkFiniteFieldSort("7");

    +

    Term X = solver.mkConst(s, "X");

    +

    Finite Field Value

    (as ff3 (_ FiniteField 7))

    Sort ffSort = solver.mkFiniteFieldSort("7");

    +

    Term t = solver.mkFiniteFieldElem("3", ffSort);

    +

    Addition

    (ff.add x y)

    Term t = solver.mkTerm(Kind::FINITE_FIELD_ADD, {x, y});

    Multiplication

    (ff.mul x y)

    Term t = solver.mkTerm(Kind::FINITE_FIELD_MULT, {x, y});

    Equality

    (= x y)

    Term t = solver.mkTerm(Kind::EQUAL, {x, y});

    +
    +
    +

    Examples

    +
    (set-logic QF_FF)
    +(set-info :status unsat)
    +(define-sort F () (_ FiniteField 3))
    +(declare-const x F)
    +(assert (= (ff.mul x x) (as ff-1 F)))
    +(check-sat)
    +; unsat
    +
    +
    +
    (set-logic QF_FF)
    +(set-info :status sat)
    +(define-sort F () (_ FiniteField 3))
    +(declare-const x F)
    +(assert (= (ff.mul x x) (as ff0 F)))
    +(check-sat)
    +; sat: (= x (as ff0 F)) is the only model
    +
    +
    +
    (set-logic QF_FF)
    +(set-info :status unsat)
    +(define-sort F () (_ FiniteField 3))
    +(declare-const x F)
    +(declare-const y F)
    +(declare-const z F)
    +(assert (= (ff.mul (ff.add x y z) (ff.add x y z)) (as ff-1 F)))
    +(check-sat)
    +; unsat
    +
    +
    +
    +
    +

    Experimental Extensions

    +

    These features of the theory are experimental; they may be removed in the +future:

    +
      +
    • ff.bitsum: an n-ary operator for bitsums: (ff.bitsum x0 x1 x2) is equivalent to \(x_0 + 2x_1 + 4x_2\).

    • +
    • ff.neg: unary negation

    • +
    +
    +
    +

    Solvers

    +

    Internally, cvc5 implements two solvers for the theory of finite fields.

    +
      +
    • The default solver is described in “Satisfiability Modulo Finite Fields” [OKTB23].

    • +
    • The --ff-solver split flag turns on an alternate solver from “Split Groebner Bases for Satisfiability Modulo Finite Fields” [OPB+24]. This solver may be better on field equations that encode bit-decomposition. See the paper for more information.

    • +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/theories/separation-logic.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/theories/separation-logic.html new file mode 100644 index 0000000000..d1636a03b2 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/theories/separation-logic.html @@ -0,0 +1,311 @@ + + + + + + + + + + + + + Theory Reference: Separation Logic — cvc5 documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Theory Reference: Separation Logic

    +

    cvc5 supports a syntax for separation logic as an extension of the SMT-LIB 2.6 +language.

    +
    +

    Signature

    +

    Given a (decidable) base theory \(T\), cvc5 implements a decision procedure +for quantifier-free \(SL(T)_{Loc,Data}\) formulas [RISK16], +where \(Loc\) and \(Data\) are any sort belonging to \(T\).

    +

    A \(SL(T)_{Loc,Data}\) formula is one from the following grammar:

    +
    F : L | sep.emp | (pto t u) | (sep F1 ... Fn) | (wand F1 F2) | ~F1 | F1 op ... op Fn
    +
    +
    +

    where op is any classical Boolean connective, t and u are terms +built from symbols in the signature of \(T\) of sort \(Loc\) and +\(Data\) respectively, and \(L\) is a \(T\)-literal.

    +

    The operator sep.emp denotes the empty heap constraint, the operator pto +denotes the points-to predicate, the operator sep denotes separation start +and is variadic, and the operator wand denote magic wand.

    +
    +
    +

    Semantics

    +

    A satisfiability relation \(I,h \models_{SL} \varphi\) is defined for +\(SL(T)_{Loc,Data}\) formulas \(\varphi\), +where \(I\) is an interpretation, and \(h\) is a heap.

    +

    The semantics of separation logic operators are as follows:

    + + + + + + + + + + + + + + + + + + + + + + + +

    \(I,h \models_{SL} L\)

    Iff

    \(I \models L\), if \(L\) is a \(T\)-literal

    \(I,h \models_{SL}\) (emp \(t \ u\))

    Iff

    \(h = \emptyset\)

    \(I,h \models_{SL}\) (pto \(t \ u\))

    Iff

    \(h = \{(t^I,u^I)\} \text{ and } t^I\not=nil^I\)

    \(I,h \models_{SL}\) (sep \(\phi_1 \ldots \phi_n)\)

    Iff

    there exist heaps \(h_1,\ldots,h_n\) s.t. \(h=h_1\uplus \ldots \uplus h_n\)

    +

    and \(I,h_i \models_{SL} \phi_i, i = 1,\ldots,n\)

    +

    \(I,h \models_{SL}\) (wand \(\phi_1 \ \phi_2\))

    Iff

    for all heaps \(h'\) if \(h'\#h\) and \(I,h' \models_{SL} \phi_1\)

    +

    then \(I,h'\uplus h \models_{SL} \phi_2\)

    +
    +

    where \(h_1 \uplus \ldots \uplus h_n\) denotes the disjoint union of heaps +\(h_1, \ldots, h_n\) and \(h'\#h\) denotes that heaps \(h'\) and +\(h\) are disjoint, and \(nil\) is a distinguished variable of sort +\(Loc\). +All classical Boolean connectives are interpreted as expected.

    +
    +
    +

    Syntax

    +

    Separation logic in cvc5 requires the QF_ALL logic, and for the types of the heap to be declared via the declare-heap command:

    +
    (declare-heap (T1 T2))
    +
    +
    +

    This command must be executed when the solver is in its Start mode (see page 52 of the SMT-LIB 2.6 standard [BFT17]). This command sets the location type of the heap \(Loc\) to \(T1\) and the data type \(Data\) to \(T2\), where \(T1\) and \(T2\) are any defined types. This command can only be executed once in any context, and is reset only via a reset command.

    +

    The syntax for the operators of separation logic is summarized in the following +table. For the C++ API examples in this table, we assume that we have created +a cvc5::Solver object.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    SMTLIB language

    C++ API

    Logic String

    (set-logic QF_ALL)

    solver.setLogic("QF_ALL");

    Empty Heap

    sep.emp

    solver.mkSepEmp();

    +

    where x and y are of sort <Sort_1> and <Sort_2>

    +

    Points-To

    (pto x y)

    solver.mkTerm(Kind::SEP_PTO, {x, y});

    Separation Star

    (sep c1 .. cn)

    solver.mkTerm(Kind::SEP_STAR, {c1, ..., cn});

    Magic Wand

    (wand c1 c1)

    solver.mkTerm(Kind::SEP_WAND, {c1, c2});

    Nil Element

    (as sep.nil <Sort>)

    solver.mkSepNil(cvc5::Sort sort);

    +
    +
    +

    Examples

    +

    The following input on heaps Int -> Int is unsatisfiable:

    +
    (set-logic QF_ALL)
    +(declare-heap (Int Int))
    +(set-info :status unsat)
    +(declare-const x Int)
    +(declare-const a Int)
    +(declare-const b Int)
    +(assert (and (pto x a) (pto x b)))
    +(assert (not (= a b)))
    +(check-sat)
    +
    +
    +

    The following input on heaps U -> Int is satisfiable. Notice that the +formula (not sep.emp) is satisfied by heaps U -> Int whose domain is +non-empty.

    +
    (set-logic QF_ALL)
    +(set-info :status sat)
    +(declare-sort U 0)
    +(declare-heap (U Int))
    +(declare-const x U)
    +(declare-const a Int)
    +(assert (and (not sep.emp) (pto x a)))
    +(check-sat)
    +
    +
    +

    The following input on heaps Int -> Node is satisfiable, where Node +denotes a user-defined inductive Theory Reference: Datatypes.

    +
    (set-logic QF_ALL)
    +(set-info :status sat)
    +(declare-const x Int)
    +(declare-const y Int)
    +(declare-const z Int)
    +(declare-datatype Node ((node (data Int) (left Int) (right Int))))
    +(declare-heap (Int Node))
    +(assert (pto x (node 0 y z)))
    +(check-sat)
    +
    +
    +
    +

    Note

    +

    Given a separation logic input, the sorts \(Loc\) and \(Data\) +declared via the declare-heap command must match all separation logic +predicates in the input. cvc5 does not accept an input such as:

    +
    (set-logic QF_ALL)
    +(declare-sort U 0)
    +(declare-heap (U Int))
    +(declare-const x U)
    +(assert (and (pto x 0) (pto 1 2)))
    +(check-sat)
    +
    +
    +

    since the second points-to predicate uses Int for its location type.

    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/theories/sequences.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/theories/sequences.html new file mode 100644 index 0000000000..a8d72f5115 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/theories/sequences.html @@ -0,0 +1,377 @@ + + + + + + + + + + + + + Theory Reference: Sequences — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Theory Reference: Sequences

    +
    +

    Note

    +

    cvc5 currently only supports sequences where the element sort either has an +infinite domain, e.g., sequences of integers, or a finite domain of a fixed +cardinality, e.g. bit-vectors.

    +
    +
    +

    Semantics

    +
    * (seq.empty (Seq S))
    +
    +  ⟦seq.empty⟧ = []
    +
    +* (seq.unit S (Seq S))
    +
    +  ⟦seq.unit⟧(x) = [x]
    +
    +* (seq.len (Seq S) Int)
    +
    +  ⟦seq.len⟧(s) is the length of the sequence s, denoted as |s|.
    +
    +* (seq.nth ((Seq S) Int) S)
    +
    +  ⟦seq.nth⟧(s, i) is the n-th element in the sequence s,
    +                  denoted as nth(s, i).
    +                  It is uninterpreted if i out of bounds,
    +                  i.e. i < 0 or i >= |s|.
    +
    +* (seq.update ((Seq S) Int (Seq S)) (Seq S))
    +
    +  ⟦seq.update⟧(s, i, sub) is a sequence obtained by updating the continuous
    +                          sub-sequence of s starting at index i by sub.
    +                          The updated sequence has the same length as |s|.
    +                          If i + |sub| > |s|,
    +                          the out of bounds part of sub is ignored.
    +                          If i out of bounds, i.e. i < 0 or i >= |s|,
    +                          the updated sequence remains same with s.
    +
    +* (seq.extract ((Seq S) Int Int) (Seq S))
    +
    +  ⟦seq.extract⟧(s, i, j) is the maximal sub-sequence of s that starts at
    +                         index i and has length at most j,
    +                         in case both i and j are non-negative and i is
    +                         smaller than |s|.
    +                         Otherwise, the return value is the empty sequence.
    +
    + * (seq.++ ((Seq S) (Seq S)) (Seq S))
    +
    +  ⟦seq.++⟧(s1, s2) is a sequence that is the concatenation of s1 and s2.
    +
    + * (seq.at ((Seq S) Int) (Seq S))
    +
    +  ⟦seq.at⟧(s, i) is a unit sequence that contains the i-th element of s as
    +                 the only element, or is the empty sequence if i < 0 or i > |s|.
    +
    + * (seq.contains ((Seq S) (Seq S)) Bool)
    +
    +  ⟦seq.contains⟧(s, sub) is true if sub is a continuous sub-sequence of s,
    +                         i.e. sub = seq.extract(s, i, j) for some i, j,
    +                         and false if otherwise.
    +
    + * (seq.indexof ((Seq S) (Seq S) Int) Int)
    +
    +  ⟦seq.indexof⟧(s, sub, i) is the first position of sub at or after i in s,
    +                           and -1 if there is no occurrence.
    +
    + * (seq.replace ((Seq S) (Seq S) (Seq S)) (Seq S))
    +
    +  ⟦seq.replace⟧(s, src, dst) is the sequence obtained by replacing the
    +                             first occurrence of src by dst in s.
    +                             It is s if there is no occurrence.
    +
    + * (seq.replace_all ((Seq S) (Seq S) (Seq S)) (Seq S))
    +
    +  ⟦seq.replace_all⟧(s, src, dst) is the sequence obtained by replacing all
    +                                 the occurrences of src by dst in s,
    +                                 in the order from left to right.
    +                                 It is s if there is no occurrence.
    +
    + * (seq.rev (Seq S) (Seq S))
    +
    +  ⟦seq.rev⟧(s) is the sequence obtained by reversing s.
    +
    + * (seq.prefixof ((Seq S) (Seq S)) Bool)
    +
    +  ⟦seq.prefixof⟧(pre s) is true if pre is a prefix of s, false otherwise.
    +
    + * (seq.suffixof ((Seq S) (Seq S)) Bool)
    +
    +  ⟦seq.suffixof⟧(suf s) is true if suf is a suffix of s, false otherwise.
    +
    +
    +
    +
    +

    Syntax

    +

    For the C++ API examples in the table below, we assume that we have created +a Solver object solver.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    SMT-LIB language

    C++ API

    Logic String

    use S for sequences and strings

    +

    (set-logic QF_SLIA)

    +

    use S for sequences and strings

    +

    solver.setLogic("QF_SLIA");

    +

    Sort

    (Seq <Sort>)

    solver.mkSequenceSort(<Sort>);

    Constants

    (declare-const X (Seq Int))

    Sort s = solver.mkSequenceSort(solver.getIntegerSort());

    +

    Term X = solver.mkConst(s, "X");

    +

    Empty sequence

    (as seq.empty (Seq Int))

    Sort intSort = solver.getIntegerSort();

    +

    Term t = solver.mkEmptySequence(intSort);

    +

    Unit sequence

    (seq.unit 1)

    Term t = solver.mkTerm(Kind::SEQ_UNIT, {solver.mkInteger(1)});

    Sequence length

    (seq.len X)

    Term t = solver.mkTerm(Kind::SEQ_LENGTH, {X});

    Element access

    (seq.nth X i)

    Term t = solver.mkTerm(Kind::SEQ_NTH, {X, i});

    Element update

    (seq.update X i Y)

    Term t = solver.mkTerm(Kind::SEQ_UPDATE, {X, i, Y});

    Extraction

    (seq.extract X i j)

    Term t = solver.mkTerm(Kind::SEQ_EXTRACT, {X, i, j});

    Concatenation

    (seq.++ X Y)

    Term t = solver.mkTerm(Kind::SEQ_CONCAT, {X, Y});

    Sub-sequence with +single element

    (seq.at X i)

    Term t = solver.mkTerm(Kind::SEQ_AT, {X, i});

    Sequence containment

    (seq.contains X Y)

    Term t = solver.mkTerm(Kind::SEQ_CONTAINS, {X, Y});

    Sequence indexof

    (seq.indexof X Y i)

    Term t = solver.mkTerm(Kind::SEQ_INDEXOF, {X, Y, i});

    Sub-sequence replace

    (seq.replace X Y Z)

    Term t = solver.mkTerm(Kind::SEQ_REPLACE, {X, Y, Z});

    Sub-sequence +replace all

    (seq.replace_all X Y Z)

    Term t = solver.mkTerm(Kind::SEQ_REPLACE_ALL, {X, Y, Z});

    Sequence reverse

    (seq.rev X)

    Term t = solver.mkTerm(Kind::SEQ_REV, {X});

    Sequence prefix of

    (seq.prefixof X Y)

    Term t = solver.mkTerm(Kind::SEQ_PREFIX, {X, Y});

    Sequence suffix of

    (seq.suffixof X Y)

    Term t = solver.mkTerm(Kind::SEQ_SUFFIX, {X, Y});

    +
    +
    +

    Examples

    +
    (set-logic QF_SLIA)
    +(set-info :status unsat)
    +(declare-fun x () (Seq Int))
    +(declare-fun y () (Seq Int))
    +(declare-fun z () (Seq Int))
    +(declare-fun a () Int)
    +(declare-fun b () Int)
    +(assert (= y (seq.update x 0 (seq.unit a))))
    +(assert (= z (seq.update x 0 (seq.unit b))))
    +(assert (not (= a b)))
    +(assert (= y z))
    +(assert (> (seq.len y) 0))
    +(check-sat)
    +
    +
    +
    (set-logic QF_SLIA)
    +(set-info :status unsat)
    +(declare-fun A () (Seq Int))
    +(declare-fun S () (Seq Int))
    +(declare-fun i () Int)
    +(assert (<= 0 i))
    +(assert (< i (- (seq.len A) 1)))
    +(assert (= S (seq.extract A i 1)))
    +(assert (distinct (seq.nth S 0) (seq.nth A i)))
    +(check-sat)
    +
    +
    +
    (set-logic QF_SLIA)
    +(set-info :status unsat)
    +(declare-fun x () (Seq Int))
    +(declare-fun y () (Seq Int))
    +(declare-fun a () Int)
    +(declare-fun b () Int)
    +(assert (= (seq.++ (seq.unit a) y) (seq.update x 0 (seq.unit b))))
    +(assert (not (= a b)))
    +(check-sat)
    +
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/theories/sets-and-relations.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/theories/sets-and-relations.html new file mode 100644 index 0000000000..a238dc01ab --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/theories/sets-and-relations.html @@ -0,0 +1,1236 @@ + + + + + + + + + + + + + Theory Reference: Sets and Relations — cvc5 documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Theory Reference: Sets and Relations

    +
    +

    Finite Sets

    +

    cvc5 supports the theory of finite sets using the following sorts, constants, +functions and predicates. More details can be found in [BBRT17].

    +

    For the C++ API examples in the table below, we assume that we have created +a cvc5::Solver solver object.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    SMTLIB language

    C++ API

    Logic String

    append FS for finite sets

    +

    (set-logic QF_UFLIAFS)

    +

    append FS for finite sets

    +

    solver.setLogic("QF_UFLIAFS");

    +

    Sort

    (Set <Sort>)

    solver.mkSetSort(cvc5::Sort elementSort);

    Constants

    (declare-const X (Set Int))

    Sort s = solver.mkSetSort(solver.getIntegerSort());

    +

    Term X = solver.mkConst(s, "X");

    +

    Union

    (set.union X Y)

    Term Y = solver.mkConst(s, "Y");

    +

    Term t = solver.mkTerm(Kind::SET_UNION, {X, Y});

    +

    Intersection

    (set.inter X Y)

    Term t = solver.mkTerm(Kind::SET_INTER, {X, Y});

    Minus

    (set.minus X Y)

    Term t = solver.mkTerm(Kind::SET_MINUS, {X, Y});

    Membership

    (set.member x X)

    Term x = solver.mkConst(solver.getIntegerSort(), "x");

    +

    Term t = solver.mkTerm(Kind::SET_MEMBER, {x, X});

    +

    Subset

    (set.subset X Y)

    Term t = solver.mkTerm(Kind::SET_SUBSET, {X, Y});

    Emptyset

    (as set.empty (Set Int))

    Term t = solver.mkEmptySet(s);

    Singleton Set

    (set.singleton 1)

    Term t = solver.mkTerm(Kind::SET_SINGLETON, {solver.mkInteger(1)});

    Emptyset tester

    (set.is_empty X)

    Term t = solver.mkTerm(Kind::SET_IS_EMPTY, {X});

    Singleton tester

    (set.is_singleton X)

    Term t = solver.mkTerm(Kind::SET_IS_SINGLETON, {X});

    Cardinality

    (set.card X)

    Term t = solver.mkTerm(Kind::SET_CARD, {X});

    Insert / Finite Sets

    (set.insert 1 2 3 (set.singleton 4))

    Term one = solver.mkInteger(1);

    +

    Term two = solver.mkInteger(2);

    +

    Term three = solver.mkInteger(3);

    +

    Term sgl = solver.mkTerm(Kind::SET_SINGLETON, {solver.mkInteger(4)});

    +

    Term t = solver.mkTerm(Kind::SET_INSERT, {one, two, three, sgl});

    +

    Complement

    (set.complement X)

    Term t = solver.mkTerm(Kind::SET_COMPLEMENT, {X});

    Universe Set

    (as set.universe (Set Int))

    Term t = solver.mkUniverseSet(s);

    +
    +

    Semantics

    +

    The semantics of most of the above operators (e.g., set.union, +set.inter, difference) are straightforward. +The semantics for the universe set and complement are more subtle and explained +in the following.

    +

    The universe set (as set.universe (Set T)) is not interpreted as the set +containing all elements of sort T. +Instead it may be interpreted as any set such that all sets of sort (Set T) +are interpreted as subsets of it. +In other words, it is the union of the interpretations of all (finite) sets in +our input.

    +

    For example:

    +
    (declare-fun x () (Set Int))
    +(declare-fun y () (Set Int))
    +(declare-fun z () (Set Int))
    +(assert (set.member 0 x))
    +(assert (set.member 1 y))
    +(assert (= z (as set.universe (Set Int))))
    +(check-sat)
    +
    +
    +

    Here, a possible model is:

    +
    (define-fun x () (set.singleton 0))
    +(define-fun y () (set.singleton 1))
    +(define-fun z () (set.union (set.singleton 1) (set.singleton 0)))
    +
    +
    +

    Notice that the universe set in this example is interpreted the same as z, +and is such that all sets in this example (x, y, and z) are subsets +of it.

    +

    The set complement operator for (Set T) is interpreted relative to the +interpretation of the universe set for (Set T), and not relative to the set +of all elements of sort T. +That is, for all sets X of sort (Set T), the complement operator is +such that (= (set.complement X) (set.minus (as set.universe (Set T)) X)) +holds in all models.

    +

    The motivation for these semantics is to ensure that the universe set for sort +T and applications of set complement can always be interpreted as a finite +set in (quantifier-free) inputs, even if the cardinality of T is infinite. +Above, notice that we were able to find a model for the universe set of sort +(Set Int) that contained two elements only.

    +
    +

    Note

    +

    In the presence of quantifiers, cvc5’s implementation of the above theory +allows infinite sets. +In particular, the following formula is SAT (even though cvc5 is not able to +say this):

    +
    (set-logic ALL)
    +(declare-fun x () (Set Int))
    +(assert (forall ((z Int) (set.member (* 2 z) x)))
    +(check-sat)
    +
    +
    +

    The reason for that is that making this formula (and similar ones) unsat is +counter-intuitive when quantifiers are present.

    +
    +

    Below is a more extensive example on how to use finite sets:

    +
    +

    examples/api/cpp/sets.cpp

    +
     1/******************************************************************************
    + 2 * Top contributors (to current version):
    + 3 *   Aina Niemetz, Kshitij Bansal, Andrew Reynolds
    + 4 *
    + 5 * This file is part of the cvc5 project.
    + 6 *
    + 7 * Copyright (c) 2009-2024 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 * A simple demonstration of reasoning about sets via the C++ API.
    +14 */
    +15
    +16#include <cvc5/cvc5.h>
    +17
    +18#include <iostream>
    +19
    +20using namespace std;
    +21using namespace cvc5;
    +22
    +23int main()
    +24{
    +25  TermManager tm;
    +26  Solver slv(tm);
    +27
    +28  // Optionally, set the logic. We need at least UF for equality predicate,
    +29  // integers (LIA) and sets (FS).
    +30  slv.setLogic("QF_UFLIAFS");
    +31
    +32  // Produce models
    +33  slv.setOption("produce-models", "true");
    +34
    +35  Sort integer = tm.getIntegerSort();
    +36  Sort set = tm.mkSetSort(integer);
    +37
    +38  // Verify union distributions over intersection
    +39  // (A union B) intersection C = (A intersection C) union (B intersection C)
    +40  {
    +41    Term A = tm.mkConst(set, "A");
    +42    Term B = tm.mkConst(set, "B");
    +43    Term C = tm.mkConst(set, "C");
    +44
    +45    Term unionAB = tm.mkTerm(Kind::SET_UNION, {A, B});
    +46    Term lhs = tm.mkTerm(Kind::SET_INTER, {unionAB, C});
    +47
    +48    Term intersectionAC = tm.mkTerm(Kind::SET_INTER, {A, C});
    +49    Term intersectionBC = tm.mkTerm(Kind::SET_INTER, {B, C});
    +50    Term rhs = tm.mkTerm(Kind::SET_UNION, {intersectionAC, intersectionBC});
    +51
    +52    Term theorem = tm.mkTerm(Kind::EQUAL, {lhs, rhs});
    +53
    +54    cout << "cvc5 reports: " << theorem << " is "
    +55         << slv.checkSatAssuming(theorem.notTerm()) << "." << endl;
    +56  }
    +57
    +58  // Verify emptset is a subset of any set
    +59  {
    +60    Term A = tm.mkConst(set, "A");
    +61    Term emptyset = tm.mkEmptySet(set);
    +62
    +63    Term theorem = tm.mkTerm(Kind::SET_SUBSET, {emptyset, A});
    +64
    +65    cout << "cvc5 reports: " << theorem << " is "
    +66         << slv.checkSatAssuming(theorem.notTerm()) << "." << endl;
    +67  }
    +68
    +69  // Find me an element in {1, 2} intersection {2, 3}, if there is one.
    +70  {
    +71    Term one = tm.mkInteger(1);
    +72    Term two = tm.mkInteger(2);
    +73    Term three = tm.mkInteger(3);
    +74
    +75    Term singleton_one = tm.mkTerm(Kind::SET_SINGLETON, {one});
    +76    Term singleton_two = tm.mkTerm(Kind::SET_SINGLETON, {two});
    +77    Term singleton_three = tm.mkTerm(Kind::SET_SINGLETON, {three});
    +78    Term one_two = tm.mkTerm(Kind::SET_UNION, {singleton_one, singleton_two});
    +79    Term two_three =
    +80        tm.mkTerm(Kind::SET_UNION, {singleton_two, singleton_three});
    +81    Term intersection = tm.mkTerm(Kind::SET_INTER, {one_two, two_three});
    +82
    +83    Term x = tm.mkConst(integer, "x");
    +84
    +85    Term e = tm.mkTerm(Kind::SET_MEMBER, {x, intersection});
    +86
    +87    Result result = slv.checkSatAssuming(e);
    +88    cout << "cvc5 reports: " << e << " is " << result << "." << endl;
    +89
    +90    if (result.isSat())
    +91    {
    +92      cout << "For instance, " << slv.getValue(x) << " is a member." << endl;
    +93    }
    +94  }
    +95}
    +
    +
    +
    +
    +
    +
    +

    Finite Relations

    +

    cvc5 also supports the theory of finite relations, using the following sorts, +constants, functions and predicates. +More details can be found in [MRTB17].

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    SMTLIB language

    C++ API

    Logic String

    (set-logic QF_ALL)

    solver.setLogic("QF_ALL");

    Tuple Sort

    (Tuple <Sort_1>, ..., <Sort_n>)

    std::vector<cvc5::Sort> sorts = { ... };

    +

    Sort s = solver.mkTupleSort(sorts);

    +

    (declare-const t (Tuple Int Int))

    Sort s_int = solver.getIntegerSort();

    +

    Sort s = solver.mkTupleSort({s_int, s_int});

    +

    Term t = solver.mkConst(s, "t");

    +

    Tuple Constructor

    (tuple <Term_1>, ..., <Term_n>)

    Term t = solver.mkTuple({Term_1>, ..., <Term_n>});

    Unit Tuple Sort

    UnitTuple

    Sort s = solver.mkTupleSort({});

    Unit Tuple

    tuple.unit

    Term t = solver.mkTuple({});

    Tuple Selector

    ((_ tuple.select i) t)

    Sort s = solver.mkTupleSort(sorts);

    +

    Datatype dt = s.getDatatype();

    +

    Term c = dt[0].getSelector();

    +

    Term t = solver.mkTerm(Kind::APPLY_SELECTOR, {s, t});

    +

    Relation Sort

    (Relation <Sort_1>, ..., <Sort_n>)

    +

    which is a syntax sugar for

    +

    (Set (Tuple <Sort_1>, ..., <Sort_n>))

    +

    Sort s = solver.mkSetSort(cvc5::Sort tupleSort);

    Constants

    (declare-const X (Set (Tuple Int Int)

    Sort s = solver.mkSetSort(solver.mkTupleSort({s_int, s_int});

    +

    Term X = solver.mkConst(s, "X");

    +

    Transpose

    (rel.transpose X)

    Term t = solver.mkTerm(Kind::RELATION_TRANSPOSE, X);

    Transitive Closure

    (rel.tclosure X)

    Term t = solver.mkTerm(Kind::RELATION_TCLOSURE, X);

    Join

    (rel.join X Y)

    Term t = solver.mkTerm(Kind::RELATION_JOIN, X, Y);

    Product

    (rel.product X Y)

    Term t = solver.mkTerm(Kind::RELATION_PRODUCT, X, Y);

    +

    Example:

    +
    +

    examples/api/cpp/relations.cpp

    +
      1/******************************************************************************
    +  2 * Top contributors (to current version):
    +  3 *   Mudathir Mohamed, Aina Niemetz, Mathias Preiner
    +  4 *
    +  5 * This file is part of the cvc5 project.
    +  6 *
    +  7 * Copyright (c) 2009-2024 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 * A simple demonstration of reasoning about relations via the C++ API.
    + 14 */
    + 15
    + 16#include <cvc5/cvc5.h>
    + 17
    + 18#include <iostream>
    + 19
    + 20using namespace cvc5;
    + 21
    + 22int main()
    + 23{
    + 24  TermManager tm;
    + 25  Solver solver(tm);
    + 26
    + 27  // Set the logic
    + 28  solver.setLogic("ALL");
    + 29
    + 30  // options
    + 31  solver.setOption("produce-models", "true");
    + 32  // we need finite model finding to answer sat problems with universal
    + 33  // quantified formulas
    + 34  solver.setOption("finite-model-find", "true");
    + 35  // we need sets extension to support set.universe operator
    + 36  solver.setOption("sets-exp", "true");
    + 37
    + 38  // (declare-sort Person 0)
    + 39  Sort personSort = tm.mkUninterpretedSort("Person");
    + 40
    + 41  // (Tuple Person)
    + 42  Sort tupleArity1 = tm.mkTupleSort({personSort});
    + 43  // (Relation Person)
    + 44  Sort relationArity1 = tm.mkSetSort(tupleArity1);
    + 45
    + 46  // (Tuple Person Person)
    + 47  Sort tupleArity2 = tm.mkTupleSort({personSort, personSort});
    + 48  // (Relation Person Person)
    + 49  Sort relationArity2 = tm.mkSetSort(tupleArity2);
    + 50
    + 51  // empty set
    + 52  Term emptySetTerm = tm.mkEmptySet(relationArity1);
    + 53
    + 54  // empty relation
    + 55  Term emptyRelationTerm = tm.mkEmptySet(relationArity2);
    + 56
    + 57  // universe set
    + 58  Term universeSet = tm.mkUniverseSet(relationArity1);
    + 59
    + 60  // variables
    + 61  Term people = tm.mkConst(relationArity1, "people");
    + 62  Term males = tm.mkConst(relationArity1, "males");
    + 63  Term females = tm.mkConst(relationArity1, "females");
    + 64  Term father = tm.mkConst(relationArity2, "father");
    + 65  Term mother = tm.mkConst(relationArity2, "mother");
    + 66  Term parent = tm.mkConst(relationArity2, "parent");
    + 67  Term ancestor = tm.mkConst(relationArity2, "ancestor");
    + 68  Term descendant = tm.mkConst(relationArity2, "descendant");
    + 69
    + 70  Term isEmpty1 = tm.mkTerm(Kind::EQUAL, {males, emptySetTerm});
    + 71  Term isEmpty2 = tm.mkTerm(Kind::EQUAL, {females, emptySetTerm});
    + 72
    + 73  // (assert (= people (as set.universe (Relation Person))))
    + 74  Term peopleAreTheUniverse = tm.mkTerm(Kind::EQUAL, {people, universeSet});
    + 75  // (assert (not (= males (as set.empty (Relation Person)))))
    + 76  Term maleSetIsNotEmpty = tm.mkTerm(Kind::NOT, {isEmpty1});
    + 77  // (assert (not (= females (as set.empty (Relation Person)))))
    + 78  Term femaleSetIsNotEmpty = tm.mkTerm(Kind::NOT, {isEmpty2});
    + 79
    + 80  // (assert (= (set.inter males females)
    + 81  //            (as set.empty (Relation Person))))
    + 82  Term malesFemalesIntersection = tm.mkTerm(Kind::SET_INTER, {males, females});
    + 83  Term malesAndFemalesAreDisjoint =
    + 84      tm.mkTerm(Kind::EQUAL, {malesFemalesIntersection, emptySetTerm});
    + 85
    + 86  // (assert (not (= father (as set.empty (Relation Person Person)))))
    + 87  // (assert (not (= mother (as set.empty (Relation Person Person)))))
    + 88  Term isEmpty3 = tm.mkTerm(Kind::EQUAL, {father, emptyRelationTerm});
    + 89  Term isEmpty4 = tm.mkTerm(Kind::EQUAL, {mother, emptyRelationTerm});
    + 90  Term fatherIsNotEmpty = tm.mkTerm(Kind::NOT, {isEmpty3});
    + 91  Term motherIsNotEmpty = tm.mkTerm(Kind::NOT, {isEmpty4});
    + 92
    + 93  // fathers are males
    + 94  // (assert (set.subset (rel.join father people) males))
    + 95  Term fathers = tm.mkTerm(Kind::RELATION_JOIN, {father, people});
    + 96  Term fathersAreMales = tm.mkTerm(Kind::SET_SUBSET, {fathers, males});
    + 97
    + 98  // mothers are females
    + 99  // (assert (set.subset (rel.join mother people) females))
    +100  Term mothers = tm.mkTerm(Kind::RELATION_JOIN, {mother, people});
    +101  Term mothersAreFemales = tm.mkTerm(Kind::SET_SUBSET, {mothers, females});
    +102
    +103  // (assert (= parent (set.union father mother)))
    +104  Term unionFatherMother = tm.mkTerm(Kind::SET_UNION, {father, mother});
    +105  Term parentIsFatherOrMother =
    +106      tm.mkTerm(Kind::EQUAL, {parent, unionFatherMother});
    +107
    +108  // (assert (= ancestor (rel.tclosure parent)))
    +109  Term transitiveClosure = tm.mkTerm(Kind::RELATION_TCLOSURE, {parent});
    +110  Term ancestorFormula = tm.mkTerm(Kind::EQUAL, {ancestor, transitiveClosure});
    +111
    +112  // (assert (= descendant (rel.transpose descendant)))
    +113  Term transpose = tm.mkTerm(Kind::RELATION_TRANSPOSE, {ancestor});
    +114  Term descendantFormula = tm.mkTerm(Kind::EQUAL, {descendant, transpose});
    +115
    +116  // (assert (forall ((x Person)) (not (set.member (tuple x x) ancestor))))
    +117  Term x = tm.mkVar(personSort, "x");
    +118  Term xxTuple = tm.mkTuple({x, x});
    +119  Term member = tm.mkTerm(Kind::SET_MEMBER, {xxTuple, ancestor});
    +120  Term notMember = tm.mkTerm(Kind::NOT, {member});
    +121
    +122  Term quantifiedVariables = tm.mkTerm(Kind::VARIABLE_LIST, {x});
    +123  Term noSelfAncestor =
    +124      tm.mkTerm(Kind::FORALL, {quantifiedVariables, notMember});
    +125
    +126  // formulas
    +127  solver.assertFormula(peopleAreTheUniverse);
    +128  solver.assertFormula(maleSetIsNotEmpty);
    +129  solver.assertFormula(femaleSetIsNotEmpty);
    +130  solver.assertFormula(malesAndFemalesAreDisjoint);
    +131  solver.assertFormula(fatherIsNotEmpty);
    +132  solver.assertFormula(motherIsNotEmpty);
    +133  solver.assertFormula(fathersAreMales);
    +134  solver.assertFormula(mothersAreFemales);
    +135  solver.assertFormula(parentIsFatherOrMother);
    +136  solver.assertFormula(descendantFormula);
    +137  solver.assertFormula(ancestorFormula);
    +138  solver.assertFormula(noSelfAncestor);
    +139
    +140  // check sat
    +141  Result result = solver.checkSat();
    +142
    +143  // output
    +144  std::cout << "Result     = " << result << std::endl;
    +145  std::cout << "people     = " << solver.getValue(people) << std::endl;
    +146  std::cout << "males      = " << solver.getValue(males) << std::endl;
    +147  std::cout << "females    = " << solver.getValue(females) << std::endl;
    +148  std::cout << "father     = " << solver.getValue(father) << std::endl;
    +149  std::cout << "mother     = " << solver.getValue(mother) << std::endl;
    +150  std::cout << "parent     = " << solver.getValue(parent) << std::endl;
    +151  std::cout << "descendant = " << solver.getValue(descendant) << std::endl;
    +152  std::cout << "ancestor   = " << solver.getValue(ancestor) << std::endl;
    +153}
    +
    +
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/theories/strings.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/theories/strings.html new file mode 100644 index 0000000000..93ea704046 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/theories/strings.html @@ -0,0 +1,210 @@ + + + + + + + + + + + + + Theory Reference: Strings — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Theory Reference: Strings

    +

    cvc5 supports all operators of the SMT-LIB standard for strings. It additionally +supports some non-standard operators that are described below.

    +
    +

    Semantics

    +
    * (str.indexof_re String RegLan Int Int)
    +
    +  Let w₂ = ⟦str.substr⟧(w, i, |w| - i)
    +
    +  - ⟦str.indexof_re⟧(w, L, i) = -1     if no substring of w₂ is in L or i < 0
    +
    +  - ⟦str.indexof_re⟧(w, L, i) = |u₁|
    +    where u₁, w₁ are the shortest words such that
    +      - w₂ = u₁w₁u₂
    +      - w₁ ∈ L
    +                                       if some substring of w₂ is in L and i > 0
    +
    +* (str.update String Int String)
    +
    +  - ⟦str.update⟧(w, i, w₂) = w         if i < 0 or i >= |w|
    +
    +  - ⟦str.update⟧(w, i, w₂) = u₁u₂u₃
    +    where
    +      - w = u₁w₃u₃
    +      - |w₃| = |u₂|
    +      - |u₁| = i
    +      - u₂u₄ = w₂
    +      - |u₂| = min(|w₂|, |w| - i)      otherwise
    +
    +* (str.rev String String)
    +
    +  ⟦str.rev⟧(w) is the string obtained by reversing w, e.g.,
    +  ⟦str.rev⟧("abc") = "cba".
    +
    +* (str.to_lower String String)
    +
    +  ⟦str.to_lower⟧(w) = w₂
    +  where
    +    - |w| = |w₂|
    +    - the i-th character ri in w₂ is:
    +
    +      code(ri) = code(si) + ite(65 <= code(si) <= 90, 32, 0)
    +
    +      where si is the i-th character in w
    +
    +  Note: This operator performs the case conversion for the ASCII portion of
    +  Unicode only.
    +
    +* (str.to_upper String String)
    +
    +  ⟦str.to_upper⟧(w) = w₂
    +  where
    +    - |w| = |w₂|
    +    - the i-th character ri in w₂ is:
    +
    +      code(ri) = code(si) - ite(97 <= code(si) <= 122, 32, 0)
    +
    +      where si is the i-th character in w
    +
    +  Note: This operator performs the case conversion for the ASCII portion of
    +  Unicode only.
    +
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/theories/theories.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/theories/theories.html new file mode 100644 index 0000000000..ec17ae1b03 --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/theories/theories.html @@ -0,0 +1,187 @@ + + + + + + + + + + + + + Theory References — cvc5 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    +
      +
    • + +
    • +
    • +
    +
    +
    +
    +
    + +
    +

    Theory References

    +

    cvc5 supports all theories that are currently standardized in SMT-LIB. +Additionally, it also implements several theories that are not (yet) +standardized, or that extend beyond the respective standardized theory. +Furthermore, cvc5 supports all combinations of all implemented theories as well +as combinations with datatypes, quantifiers, and uninterpreted functions (as +defined in the SMT-LIB standard).

    +
    +

    Standardized theories

    + +
    +
    +

    Non-standard or extended theories

    + +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/theories/transcendentals.html b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/theories/transcendentals.html new file mode 100644 index 0000000000..86eeb33c4e --- /dev/null +++ b/docs-pr11436-184757005d554c79e69a25e06567c832de3e2686/theories/transcendentals.html @@ -0,0 +1,376 @@ + + + + + + + + + + + + + Theory Reference: Transcendentals — cvc5 documentation + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Theory Reference: Transcendentals

    +

    cvc5 supports transcendental functions that naturally extend the nonlinear real arithmetic theories NRA and NIRA. +The theory consists of the constant \(\pi\) and function symbols for most common transcendental functions like, e.g., sin, cos and tan.

    +
    +

    Logic

    +

    To enable cvc5’s decision procedure for transcendentals, append T to the arithmetic logic that is being used:

    +
    (set-logic QF_NRAT)
    +
    +
    +

    Alternatively, use the ALL logic:

    +
    (set-logic ALL)
    +
    +
    +
    +
    +

    Syntax

    +

    cvc5 internally defines a constant real.pi of sort Real and the following unary function symbols from Real to Real:

    +
      +
    • the square root function sqrt

    • +
    • the exponential function exp

    • +
    • the sine function sin

    • +
    • the cosine function cos

    • +
    • the tangent function tan

    • +
    • the cosecant function csc

    • +
    • the secant function sec

    • +
    • the cotangent function cot

    • +
    • the arcsine function arcsin

    • +
    • the arccosine function arccos

    • +
    • the arctangent function arctan

    • +
    • the arccosecant function arccsc

    • +
    • the arcsecant function arcsec

    • +
    • the arccotangent function arccot

    • +
    +
    +
    +

    Semantics

    +

    Both the constant real.pi and all function symbols are defined on real numbers and are thus not subject to limited precision. That being said, cvc5 internally uses inexact techniques based on incremental linearization. +While real.pi is specified using a rational enclosing interval that is automatically refined on demand, the function symbols are approximated using tangent planes and secant lines using the techniques described in [CGI+18].

    +
    +
    +

    Examples

    +
    +

    examples/api/cpp/transcendentals.cpp

    +
     1/******************************************************************************
    + 2 * Top contributors (to current version):
    + 3 *   Gereon Kremer, Aina Niemetz, Mathias Preiner
    + 4 *
    + 5 * This file is part of the cvc5 project.
    + 6 *
    + 7 * Copyright (c) 2009-2024 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 * A simple demonstration of the transcendental extension.
    +14 */
    +15
    +16#include <iostream>
    +17
    +18#include <cvc5/cvc5.h>
    +19
    +20using namespace std;
    +21using namespace cvc5;
    +22
    +23int main()
    +24{
    +25  TermManager tm;
    +26  Solver slv(tm);
    +27  slv.setLogic("QF_NRAT");
    +28
    +29  Sort real = tm.getRealSort();
    +30
    +31  // Variables
    +32  Term x = tm.mkConst(real, "x");
    +33  Term y = tm.mkConst(real, "y");
    +34
    +35  // Helper terms
    +36  Term two = tm.mkReal(2);
    +37  Term pi = tm.mkPi();
    +38  Term twopi = tm.mkTerm(Kind::MULT, {two, pi});
    +39  Term ysq = tm.mkTerm(Kind::MULT, {y, y});
    +40  Term sinx = tm.mkTerm(Kind::SINE, {x});
    +41
    +42  // Formulas
    +43  Term x_gt_pi = tm.mkTerm(Kind::GT, {x, pi});
    +44  Term x_lt_pi = tm.mkTerm(Kind::LT, {x, twopi});
    +45  Term ysq_lt_sinx = tm.mkTerm(Kind::LT, {ysq, sinx});
    +46
    +47  slv.assertFormula(x_gt_pi);
    +48  slv.assertFormula(x_lt_pi);
    +49  slv.assertFormula(ysq_lt_sinx);
    +50
    +51  cout << "cvc5 should report UNSAT." << endl;
    +52  cout << "Result from cvc5 is: " << slv.checkSat() << endl;
    +53
    +54  return 0;
    +55}
    +
    +
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file